From 2e9f7115040a53ff5ced5e6f76823646177fc3b7 Mon Sep 17 00:00:00 2001 From: lforst <8118419+lforst@users.noreply.github.com> Date: Fri, 11 Sep 2026 13:35:39 +0000 Subject: [PATCH 1/2] ref(ai-sdk)!: Remove AI SDK v3 support --- e2e/README.md | 2 +- e2e/config/pr-comment-scenarios.json | 8 - .../ai-sdk-v3-latest.cassette.json | 1148 ---------------- .../__cassettes__/ai-sdk-v3.cassette.json | 1151 ----------------- .../ai-sdk-v3-auto-hook.span-tree.json | 918 ------------- .../ai-sdk-v3-auto-hook.span-tree.txt | 833 ------------ .../ai-sdk-v3-latest-auto-hook.span-tree.json | 918 ------------- .../ai-sdk-v3-latest-auto-hook.span-tree.txt | 833 ------------ .../ai-sdk-v3-latest-wrapped.span-tree.json | 918 ------------- .../ai-sdk-v3-latest-wrapped.span-tree.txt | 833 ------------ .../ai-sdk-v3-wrapped.span-tree.json | 918 ------------- .../ai-sdk-v3-wrapped.span-tree.txt | 833 ------------ .../ai-sdk-instrumentation/package.json | 12 - .../ai-sdk-instrumentation/pnpm-lock.yaml | 574 -------- .../scenario.ai-sdk-v3.mjs | 21 - .../scenario.ai-sdk-v3.ts | 30 - .../ai-sdk-instrumentation/scenario.impl.mjs | 32 - integrations/val.town/deno.json | 3 +- integrations/val.town/deno.lock | 1102 ++++++++-------- integrations/val.town/vals/tutorial/code.ts | 2 +- js/package.json | 1 - js/scripts/pull-vendor.sh | 4 +- .../auto-instrumentations/configs/ai-sdk.ts | 244 +--- .../providers/ai-sdk-channels.ts | 18 - .../ai-sdk-instrumentation.streaming.test.ts | 22 +- .../providers/ai-sdk-instrumentation.test.ts | 57 +- .../providers/ai-sdk-instrumentation.ts | 61 +- .../cloudflare-think-instrumentation.ts | 24 +- js/src/vendor-sdk-types/ai-sdk-common.ts | 3 + js/src/vendor-sdk-types/ai-sdk-v3.ts | 12 - js/src/vendor-sdk-types/ai-sdk-v4.ts | 3 - js/src/vendor-sdk-types/ai-sdk-v5.ts | 6 - js/src/vendor-sdk-types/ai-sdk-v6.ts | 7 - js/src/vendor-sdk-types/ai-sdk.ts | 14 +- js/src/wrappers/ai-sdk/ai-sdk.ts | 12 +- 35 files changed, 672 insertions(+), 10905 deletions(-) delete mode 100644 e2e/scenarios/ai-sdk-instrumentation/__cassettes__/ai-sdk-v3-latest.cassette.json delete mode 100644 e2e/scenarios/ai-sdk-instrumentation/__cassettes__/ai-sdk-v3.cassette.json delete mode 100644 e2e/scenarios/ai-sdk-instrumentation/__snapshots__/ai-sdk-v3-auto-hook.span-tree.json delete mode 100644 e2e/scenarios/ai-sdk-instrumentation/__snapshots__/ai-sdk-v3-auto-hook.span-tree.txt delete mode 100644 e2e/scenarios/ai-sdk-instrumentation/__snapshots__/ai-sdk-v3-latest-auto-hook.span-tree.json delete mode 100644 e2e/scenarios/ai-sdk-instrumentation/__snapshots__/ai-sdk-v3-latest-auto-hook.span-tree.txt delete mode 100644 e2e/scenarios/ai-sdk-instrumentation/__snapshots__/ai-sdk-v3-latest-wrapped.span-tree.json delete mode 100644 e2e/scenarios/ai-sdk-instrumentation/__snapshots__/ai-sdk-v3-latest-wrapped.span-tree.txt delete mode 100644 e2e/scenarios/ai-sdk-instrumentation/__snapshots__/ai-sdk-v3-wrapped.span-tree.json delete mode 100644 e2e/scenarios/ai-sdk-instrumentation/__snapshots__/ai-sdk-v3-wrapped.span-tree.txt delete mode 100644 e2e/scenarios/ai-sdk-instrumentation/scenario.ai-sdk-v3.mjs delete mode 100644 e2e/scenarios/ai-sdk-instrumentation/scenario.ai-sdk-v3.ts delete mode 100644 js/src/vendor-sdk-types/ai-sdk-v3.ts delete mode 100644 js/src/vendor-sdk-types/ai-sdk-v4.ts delete mode 100644 js/src/vendor-sdk-types/ai-sdk-v5.ts delete mode 100644 js/src/vendor-sdk-types/ai-sdk-v6.ts diff --git a/e2e/README.md b/e2e/README.md index d9ac582ea..47bd2b00f 100644 --- a/e2e/README.md +++ b/e2e/README.md @@ -80,7 +80,7 @@ Wrapper scenarios often create a root span with `testRunId` metadata and then le - Find the scenario root span first. - Scope raw payload snapshots by `root_span_id` using `payloadRowsForRootSpan(...)`. - Prefer normalized span-tree snapshots from `matchSpanTreeSnapshot(...)`. The `.json` sibling is the structural contract, and the `.txt` sibling is the ASCII tree for review; both are asserted and should be updated together. -- If the wrapper has an explicit support matrix, reuse one shared test across version-specific scenario entries instead of duplicating the assertions. The AI SDK wrapper scenario uses this for supported v3-v6 package combinations. +- If the wrapper has an explicit support matrix, reuse one shared test across version-specific scenario entries instead of duplicating the assertions. The AI SDK wrapper scenario uses this for its supported package combinations. ### Runner-wrapper scenario pattern diff --git a/e2e/config/pr-comment-scenarios.json b/e2e/config/pr-comment-scenarios.json index e62bd5b84..f5ba3ad75 100644 --- a/e2e/config/pr-comment-scenarios.json +++ b/e2e/config/pr-comment-scenarios.json @@ -531,14 +531,6 @@ "label": "AI SDK Instrumentation", "metadataScenario": "ai-sdk-instrumentation", "variants": [ - { - "variantKey": "ai-sdk-v3", - "label": "v3 pinned" - }, - { - "variantKey": "ai-sdk-v3-latest", - "label": "v3 latest" - }, { "variantKey": "ai-sdk-v4", "label": "v4 pinned" diff --git a/e2e/scenarios/ai-sdk-instrumentation/__cassettes__/ai-sdk-v3-latest.cassette.json b/e2e/scenarios/ai-sdk-instrumentation/__cassettes__/ai-sdk-v3-latest.cassette.json deleted file mode 100644 index 69cb213ea..000000000 --- a/e2e/scenarios/ai-sdk-instrumentation/__cassettes__/ai-sdk-v3-latest.cassette.json +++ /dev/null @@ -1,1148 +0,0 @@ -{ - "entries": [ - { - "callIndex": 0, - "id": "2583f51940dc092e", - "matchKey": "POST api.openai.com/v1/chat/completions", - "recordedAt": "2026-08-12T03:20:49.537Z", - "request": { - "body": { - "kind": "json", - "value": { - "max_tokens": 24, - "messages": [ - { - "content": "Reply with the single token PARIS and no punctuation.", - "role": "user" - } - ], - "model": "gpt-4o-mini-2024-07-18", - "temperature": 0 - } - }, - "headers": {}, - "method": "POST", - "url": "https://api.openai.com/v1/chat/completions" - }, - "response": { - "body": { - "kind": "json", - "value": { - "choices": [ - { - "finish_reason": "stop", - "index": 0, - "logprobs": null, - "message": { - "annotations": [], - "content": "PARIS", - "refusal": null, - "role": "assistant" - } - } - ], - "created": 1786504849, - "id": "chatcmpl-EBtoH326GRbZwguUwwJzfA1rP6Ts8", - "model": "gpt-4o-mini-2024-07-18", - "object": "chat.completion", - "service_tier": "default", - "system_fingerprint": "fp_fabbcdf5d9", - "usage": { - "completion_tokens": 2, - "completion_tokens_details": { - "accepted_prediction_tokens": 0, - "audio_tokens": 0, - "reasoning_tokens": 0, - "rejected_prediction_tokens": 0 - }, - "prompt_tokens": 18, - "prompt_tokens_details": { - "audio_tokens": 0, - "cached_tokens": 0 - }, - "total_tokens": 20 - } - } - }, - "headers": { - "access-control-expose-headers": "X-Request-ID, CF-Ray, CF-Ray", - "alt-svc": "h3=\":443\"; ma=86400", - "cf-cache-status": "DYNAMIC", - "cf-ray": "a29c58ab7ea48029-IAD", - "connection": "keep-alive", - "content-encoding": "gzip", - "content-type": "application/json", - "date": "Wed, 12 Aug 2026 03:20:49 GMT", - "openai-organization": "braintrust-data", - "openai-processing-ms": "274", - "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": "149999985", - "x-ratelimit-reset-requests": "2ms", - "x-ratelimit-reset-tokens": "0s", - "x-request-id": "req_06b4b55bc7c94ccdb71d80a0aec0fee0" - }, - "status": 200, - "statusText": "OK" - } - }, - { - "callIndex": 1, - "id": "901ff936ff6b7255", - "matchKey": "POST api.openai.com/v1/chat/completions", - "recordedAt": "2026-08-12T03:20:49.997Z", - "request": { - "body": { - "kind": "json", - "value": { - "max_tokens": 32, - "messages": [ - { - "content": "Count from 1 to 3 and include the words one two three.", - "role": "user" - } - ], - "model": "gpt-4o-mini-2024-07-18", - "stream": true, - "temperature": 0 - } - }, - "headers": {}, - "method": "POST", - "url": "https://api.openai.com/v1/chat/completions" - }, - "response": { - "body": { - "chunks": [ - "data: {\"id\":\"chatcmpl-EBtoHHiQ2rImeNIBXy6wNKn48cg3c\",\"object\":\"chat.completion.chunk\",\"created\":1786504849,\"model\":\"gpt-4o-mini-2024-07-18\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_0950b7f384\",\"choices\":[{\"index\":0,\"delta\":{\"role\":\"assistant\",\"content\":\"\",\"refusal\":null},\"logprobs\":null,\"finish_reason\":null}],\"obfuscation\":\"QUqa0V\"}", - "data: {\"id\":\"chatcmpl-EBtoHHiQ2rImeNIBXy6wNKn48cg3c\",\"object\":\"chat.completion.chunk\",\"created\":1786504849,\"model\":\"gpt-4o-mini-2024-07-18\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_0950b7f384\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\"One\"},\"logprobs\":null,\"finish_reason\":null}],\"obfuscation\":\"WUiC1\"}", - "data: {\"id\":\"chatcmpl-EBtoHHiQ2rImeNIBXy6wNKn48cg3c\",\"object\":\"chat.completion.chunk\",\"created\":1786504849,\"model\":\"gpt-4o-mini-2024-07-18\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_0950b7f384\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\",\"},\"logprobs\":null,\"finish_reason\":null}],\"obfuscation\":\"hc4RV6V\"}", - "data: {\"id\":\"chatcmpl-EBtoHHiQ2rImeNIBXy6wNKn48cg3c\",\"object\":\"chat.completion.chunk\",\"created\":1786504849,\"model\":\"gpt-4o-mini-2024-07-18\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_0950b7f384\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" two\"},\"logprobs\":null,\"finish_reason\":null}],\"obfuscation\":\"5bTk\"}", - "data: {\"id\":\"chatcmpl-EBtoHHiQ2rImeNIBXy6wNKn48cg3c\",\"object\":\"chat.completion.chunk\",\"created\":1786504849,\"model\":\"gpt-4o-mini-2024-07-18\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_0950b7f384\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\",\"},\"logprobs\":null,\"finish_reason\":null}],\"obfuscation\":\"lX2OKZ9\"}", - "data: {\"id\":\"chatcmpl-EBtoHHiQ2rImeNIBXy6wNKn48cg3c\",\"object\":\"chat.completion.chunk\",\"created\":1786504849,\"model\":\"gpt-4o-mini-2024-07-18\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_0950b7f384\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" three\"},\"logprobs\":null,\"finish_reason\":null}],\"obfuscation\":\"Aa\"}", - "data: {\"id\":\"chatcmpl-EBtoHHiQ2rImeNIBXy6wNKn48cg3c\",\"object\":\"chat.completion.chunk\",\"created\":1786504849,\"model\":\"gpt-4o-mini-2024-07-18\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_0950b7f384\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\".\"},\"logprobs\":null,\"finish_reason\":null}],\"obfuscation\":\"ApL8mYr\"}", - "data: {\"id\":\"chatcmpl-EBtoHHiQ2rImeNIBXy6wNKn48cg3c\",\"object\":\"chat.completion.chunk\",\"created\":1786504849,\"model\":\"gpt-4o-mini-2024-07-18\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_0950b7f384\",\"choices\":[{\"index\":0,\"delta\":{},\"logprobs\":null,\"finish_reason\":\"stop\"}],\"obfuscation\":\"pn\"}", - "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": "a29c58adb81c8029-IAD", - "connection": "keep-alive", - "content-type": "text/event-stream; charset=utf-8", - "date": "Wed, 12 Aug 2026 03:20:49 GMT", - "openai-organization": "braintrust-data", - "openai-processing-ms": "230", - "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": "149999982", - "x-ratelimit-reset-requests": "2ms", - "x-ratelimit-reset-tokens": "0s", - "x-request-id": "req_4858eeb509ce41e692f1a591d072d2d9" - }, - "status": 200, - "statusText": "OK" - } - }, - { - "callIndex": 0, - "id": "49a95bf2b3466013", - "matchKey": "POST api.openai.com/v1/embeddings", - "recordedAt": "2026-08-12T03:20:50.133Z", - "request": { - "body": { - "kind": "json", - "value": { - "encoding_format": "float", - "input": ["Paris is the capital of France."], - "model": "text-embedding-3-small" - } - }, - "headers": {}, - "method": "POST", - "url": "https://api.openai.com/v1/embeddings" - }, - "response": { - "body": { - "kind": "json", - "value": { - "data": [ - { - "embedding": [ - 0.0196075439453125, 0.019073486328125, -0.01314544677734375, - -0.020660400390625, -0.0188140869140625, 0.029632568359375, - -0.0206298828125, 0.0236358642578125, 0.006320953369140625, - -0.01708984375, 0.004039764404296875, 0.0103607177734375, - -0.0289459228515625, 0.0068359375, -0.03192138671875, - 0.0251922607421875, -0.0282745361328125, 0.050262451171875, - 0.0914306640625, -0.02008056640625, 0.0222930908203125, - -0.01297760009765625, -0.0144805908203125, 0.034393310546875, - 0.052734375, -0.0011014938354492188, 0.00817108154296875, - 0.042510986328125, 0.0030460357666015625, 0.05987548828125, - 0.0164642333984375, -0.00787353515625, -0.00244903564453125, - 0.02423095703125, 0.01953125, -0.061065673828125, - -0.013336181640625, -0.03851318359375, 0.0079498291015625, - 0.0276641845703125, 0.0171051025390625, -0.02838134765625, - -0.0286865234375, 0.03277587890625, -0.035919189453125, - -0.047088623046875, -0.00940704345703125, -0.0224761962890625, - 0.02313232421875, -0.0037555694580078125, 0.045654296875, - -0.004848480224609375, 0.02020263671875, 0.00923919677734375, - 0.0044708251953125, 0.02252197265625, 0.03271484375, - 0.0433349609375, 0.0257110595703125, 0.0035400390625, - 0.051788330078125, 0.0206298828125, 0.04046630859375, - 0.01776123046875, -0.00559234619140625, 0.03271484375, - 0.021575927734375, 0.0322265625, 0.050048828125, - 0.02581787109375, 0.0187835693359375, 0.044342041015625, - -0.005947113037109375, 0.006748199462890625, 0.01885986328125, - 0.014678955078125, 0.004638671875, 0.038848876953125, - 0.0173492431640625, -0.03466796875, -0.0016269683837890625, - 0.01055908203125, 0.01372528076171875, -0.02166748046875, - -0.00677490234375, -0.01284027099609375, -0.00388336181640625, - 0.00274658203125, -0.002719879150390625, -0.0220794677734375, - 0.0014619827270507812, -0.01175689697265625, -0.0172119140625, - 0.015655517578125, -0.0308990478515625, 0.00458526611328125, - 0.0211334228515625, -0.04888916015625, -0.058837890625, - 0.02716064453125, 0.027862548828125, 0.001308441162109375, - -0.04681396484375, 0.0316162109375, 0.0155029296875, - -0.01544952392578125, 0.0004296302795410156, - -0.0005507469177246094, 0.01428985595703125, -0.0408935546875, - -0.021759033203125, 0.00412750244140625, -0.00025177001953125, - 0.032440185546875, -0.059783935546875, 0.01093292236328125, - 0.01397705078125, -0.00713348388671875, 0.031005859375, - -0.007572174072265625, -0.006343841552734375, - 0.0026073455810546875, -0.04180908203125, 0.040374755859375, - -0.03387451171875, -0.048248291015625, 0.006519317626953125, - 0.0264739990234375, 0.0227203369140625, -0.00856781005859375, - 0.004657745361328125, -0.044952392578125, 0.016876220703125, - 0.0258941650390625, 0.0506591796875, -0.00958251953125, - 0.033721923828125, -0.0057525634765625, 0.01751708984375, - 0.0177154541015625, -0.01558685302734375, 0.028533935546875, - -0.01058197021484375, 0.036529541015625, -0.0183258056640625, - -0.033843994140625, -0.031402587890625, 0.040069580078125, - 0.01015472412109375, -0.04278564453125, 0.016510009765625, - -0.0212554931640625, 0.00275421142578125, 0.0289459228515625, - -0.0037078857421875, -0.062103271484375, 0.01442718505859375, - -0.0018835067749023438, 0.0384521484375, 0.02569580078125, - -0.036865234375, 0.021331787109375, -0.046173095703125, - -0.016265869140625, -0.0034809112548828125, - 0.0081939697265625, -0.0090179443359375, -0.00542449951171875, - 0.011871337890625, 0.0159454345703125, -0.0235137939453125, - 0.00461578369140625, 0.051116943359375, 0.0389404296875, - 0.0225677490234375, -0.01392364501953125, -0.0185699462890625, - 0.08013916015625, 0.0262603759765625, -0.02142333984375, - -0.01103973388671875, -0.01428985595703125, 0.030731201171875, - -0.01473236083984375, 0.0189361572265625, 0.0250244140625, - -0.0206451416015625, -0.026885986328125, -0.0172882080078125, - 0.05322265625, 0.0615234375, -0.019073486328125, - 0.056396484375, -0.045440673828125, -0.06280517578125, - 0.0241546630859375, 0.0021800994873046875, - 0.006801605224609375, 0.0093231201171875, 0.00798797607421875, - -0.03924560546875, 0.04193115234375, -0.0056304931640625, - -0.00327301025390625, -0.01485443115234375, - 0.0191192626953125, -0.01004791259765625, -0.048309326171875, - 0.0295257568359375, -0.004802703857421875, - -0.0124359130859375, -0.00547027587890625, - -0.0262298583984375, 0.0384521484375, 0.03857421875, - -0.01038360595703125, 0.012908935546875, 0.034027099609375, - 0.0299072265625, -0.00550079345703125, 0.034637451171875, - 0.023406982421875, 0.0113067626953125, -0.01557159423828125, - -0.048919677734375, 0.055419921875, 0.052642822265625, - 0.00609588623046875, -0.044586181640625, 0.002712249755859375, - 0.00432586669921875, -0.028656005859375, -0.0147552490234375, - -0.015411376953125, -0.0269775390625, -0.01922607421875, - 0.003505706787109375, -0.0132598876953125, -0.04779052734375, - 0.019317626953125, -0.0338134765625, 0.01849365234375, - 0.01416015625, 0.0026702880859375, -0.00037384033203125, - 0.0026149749755859375, 0.01383209228515625, 0.037200927734375, - -0.0421142578125, 0.0126953125, 0.043365478515625, - -0.0171966552734375, -0.025360107421875, 0.017303466796875, - -0.03546142578125, 0.035125732421875, 0.006137847900390625, - -0.00630950927734375, -0.047698974609375, -0.0099029541015625, - 0.01043701171875, 0.0198974609375, -0.00995635986328125, - -0.0018243789672851562, -0.00839996337890625, - 0.0192108154296875, -0.0095977783203125, -0.023651123046875, - -0.0224609375, -0.030517578125, 0.03485107421875, - -0.0008287429809570312, -0.0177154541015625, 0.029052734375, - -0.020965576171875, 0.005268096923828125, -0.028167724609375, - 0.0009093284606933594, -0.001140594482421875, - 0.0157928466796875, -0.02178955078125, 0.0443115234375, - -0.01227569580078125, 0.01256561279296875, - -0.0095367431640625, -0.0198211669921875, 0.04046630859375, - 0.06732177734375, -0.032562255859375, 0.052032470703125, - 0.02166748046875, -0.021209716796875, -0.033935546875, - 0.0225982666015625, -0.008056640625, 0.006862640380859375, - 0.035552978515625, 0.0010929107666015625, - 0.006832122802734375, 0.012481689453125, -0.0239105224609375, - -0.0117950439453125, 0.004608154296875, 0.01525115966796875, - -0.049560546875, 0.048431396484375, -0.045501708984375, - 0.0196685791015625, 0.0521240234375, 0.00585174560546875, - -0.054107666015625, -0.036376953125, 0.04632568359375, - -0.06768798828125, -0.01151275634765625, 0.00713348388671875, - -0.0157928466796875, 0.0195770263671875, 0.03448486328125, - 0.01102447509765625, -0.00614166259765625, - 0.01256561279296875, 0.007549285888671875, - 0.0020580291748046875, -0.0272674560546875, 0.031707763671875, - 0.0144805908203125, 0.03839111328125, -0.0278778076171875, - -0.00634765625, 0.0008325576782226562, 0.00878143310546875, - -0.008514404296875, 0.06134033203125, -0.040191650390625, - -0.021484375, 0.003170013427734375, 0.029327392578125, - 0.003055572509765625, -0.00859832763671875, -0.02532958984375, - 0.0270538330078125, -0.035919189453125, 0.0270233154296875, - -0.0033893585205078125, -0.01428985595703125, 0.0377197265625, - 0.001129150390625, -0.005687713623046875, -0.03594970703125, - -0.0191802978515625, -0.0195770263671875, - 0.0004911422729492188, 0.0313720703125, -0.040771484375, - 0.0191802978515625, 0.06414794921875, 0.00946807861328125, - -0.05694580078125, 0.0130462646484375, -0.016510009765625, - -0.052764892578125, -0.0163116455078125, -0.018951416015625, - -0.03668212890625, -0.0084381103515625, - -0.0017042160034179688, -0.00557708740234375, - -0.03851318359375, 0.07061767578125, -0.049896240234375, - -0.0277252197265625, 0.0287322998046875, -0.02880859375, - 0.047088623046875, -0.030364990234375, -0.025054931640625, - -0.008270263671875, -0.04766845703125, -0.02618408203125, - -0.0643310546875, -0.002410888671875, 0.0355224609375, - -0.04705810546875, 0.03204345703125, 0.0369873046875, - 0.043701171875, -0.0550537109375, 0.01226043701171875, - -0.006168365478515625, 0.012237548828125, - 0.004772186279296875, 0.00537872314453125, 0.022552490234375, - -0.03302001953125, -0.0009675025939941406, -0.0103759765625, - -0.00447845458984375, -0.029510498046875, -0.0172576904296875, - 0.0028629302978515625, -0.0390625, 0.01015472412109375, - -0.006866455078125, 0.04296875, 0.028167724609375, - 0.0075225830078125, -0.01715087890625, 0.0215911865234375, - -0.0222625732421875, 0.006572723388671875, -0.037872314453125, - 0.015380859375, -0.003780364990234375, 0.0131683349609375, - 0.0540771484375, 0.0298919677734375, -0.07373046875, - 0.0330810546875, -0.02154541015625, 0.037506103515625, - 0.004802703857421875, -0.058837890625, 0.0113525390625, - 0.0028858184814453125, -0.007354736328125, - -0.01139068603515625, -0.06524658203125, -0.019317626953125, - 0.032623291015625, 0.00508880615234375, 0.021331787109375, - 0.0006260871887207031, -0.008514404296875, - 0.01102447509765625, 0.0150909423828125, 0.0099639892578125, - 0.01019287109375, -0.01428985595703125, 0.00167083740234375, - 0.047515869140625, -0.017364501953125, 0.01197052001953125, - -0.03564453125, -0.0462646484375, -0.017425537109375, - 0.055816650390625, 0.029937744140625, -0.045867919921875, - 0.06005859375, -0.0311737060546875, -0.00281524658203125, - -0.00878143310546875, -0.01318359375, -0.0246124267578125, - 0.0300140380859375, 0.0197296142578125, 0.0699462890625, - 0.00809478759765625, -0.03424072265625, 0.00490570068359375, - 0.046600341796875, -0.00392913818359375, 0.044769287109375, - 0.03271484375, 0.018768310546875, 0.0243072509765625, - 0.019378662109375, -0.038787841796875, -0.03131103515625, - 0.0158538818359375, 0.0335693359375, 0.0224456787109375, - 0.025848388671875, 0.007061004638671875, 0.0049285888671875, - -0.0595703125, 0.038726806640625, -0.0494384765625, - -0.06390380859375, -0.0011005401611328125, 0.0219268798828125, - -0.018798828125, 0.006317138671875, -0.0794677734375, - -0.00662994384765625, 0.00353240966796875, - 0.0020122528076171875, -0.0234527587890625, - 0.0159759521484375, 0.052032470703125, -0.038360595703125, - 0.01372528076171875, -0.00020372867584228516, - 0.021575927734375, -0.00679779052734375, -0.053985595703125, - -0.01056671142578125, -0.0272369384765625, - -0.0236053466796875, 0.023162841796875, 0.00165557861328125, - 0.0499267578125, 0.012908935546875, 0.033233642578125, - 0.08331298828125, 0.01042938232421875, 0.0039825439453125, - 0.00824737548828125, -0.0260772705078125, 0.0299530029296875, - -0.025299072265625, 0.032196044921875, 0.01166534423828125, - -0.010711669921875, -0.00376129150390625, -0.023162841796875, - 0.0157470703125, 0.01163482666015625, 0.002651214599609375, - 0.0198822021484375, 0.0246124267578125, -0.0152740478515625, - 0.004291534423828125, 0.032928466796875, 0.0141143798828125, - -0.024322509765625, -0.007518768310546875, 0.04766845703125, - -0.04901123046875, 0.0227508544921875, -0.0255584716796875, - -0.0141143798828125, -0.01641845703125, 0.0095367431640625, - 0.0183563232421875, 0.0184173583984375, 0.05340576171875, - 0.00008529424667358398, 0.03070068359375, - 0.0038967132568359375, -0.0161285400390625, - -0.006809234619140625, -0.0189361572265625, - -0.01512908935546875, -0.0167999267578125, 0.022003173828125, - -0.027374267578125, -0.03448486328125, -0.016998291015625, - -0.024627685546875, 0.045806884765625, -0.03558349609375, - -0.0439453125, -0.000728607177734375, -0.0036830902099609375, - -0.009368896484375, -0.0039520263671875, 0.026947021484375, - -0.01522064208984375, -0.00968170166015625, 0.06329345703125, - 0.037994384765625, 0.017242431640625, 0.0188751220703125, - 0.036865234375, 0.00426483154296875, 0.01039886474609375, - -0.01483154296875, -0.022216796875, -0.0118408203125, - 0.0484619140625, 0.01296234130859375, 0.0175018310546875, - 0.02081298828125, 0.0182037353515625, 0.010162353515625, - -0.003997802734375, -0.0299224853515625, 0.0654296875, - -0.0054168701171875, 0.01355743408203125, 0.032470703125, - -0.03521728515625, -0.04522705078125, 0.0218353271484375, - 0.0035457611083984375, -0.002376556396484375, -0.0419921875, - -0.0294342041015625, -0.0037860870361328125, - 0.01380157470703125, 0.0174713134765625, -0.0234527587890625, - 0.01428985595703125, 0.0014009475708007812, 0.01141357421875, - 0.0008606910705566406, -0.035858154296875, - -0.01201629638671875, 0.00235748291015625, 0.0251312255859375, - -0.019287109375, -0.0242156982421875, 0.01537322998046875, - -0.036956787109375, 0.00670623779296875, -0.0191650390625, - 0.0223846435546875, -0.007534027099609375, 0.0176849365234375, - -0.0187530517578125, 0.01541900634765625, 0.028289794921875, - -0.005496978759765625, 0.02801513671875, -0.02410888671875, - 0.023956298828125, -0.01284027099609375, -0.00730133056640625, - 0.01430511474609375, 0.03460693359375, -0.031982421875, - 0.0055694580078125, -0.005382537841796875, 0.047088623046875, - 0.0189361572265625, 0.0183868408203125, -0.0099945068359375, - -0.0172576904296875, 0.024444580078125, 0.0141754150390625, - 0.045562744140625, 0.0128021240234375, -0.0233917236328125, - -0.0251007080078125, -0.004085540771484375, - -0.0197906494140625, 0.008392333984375, -0.03021240234375, - 0.041046142578125, 0.0124664306640625, -0.0015897750854492188, - 0.0059967041015625, -0.006702423095703125, 0.0124664306640625, - 0.02105712890625, 0.04742431640625, 0.0295562744140625, - -0.04473876953125, 0.053680419921875, 0.0214385986328125, - -0.01190185546875, 0.003604888916015625, 0.004787445068359375, - 0.03082275390625, -0.00344085693359375, 0.0184173583984375, - -0.0284271240234375, 0.05914306640625, -0.0222625732421875, - -0.0287017822265625, 0.02880859375, -0.035003662109375, - -0.022186279296875, 0.0284881591796875, 0.0223388671875, - 0.0144500732421875, 0.043853759765625, 0.0281829833984375, - -0.047088623046875, -0.03582763671875, 0.04150390625, - 0.003925323486328125, 0.00934600830078125, -0.022003173828125, - -0.004741668701171875, -0.01403045654296875, - -0.04925537109375, -0.0005216598510742188, - -0.0065765380859375, 0.01715087890625, -0.0152130126953125, - 0.0200042724609375, -0.0130615234375, -0.0202484130859375, - -0.0025310516357421875, 0.0059661865234375, - 0.0185699462890625, -0.0101776123046875, -0.021728515625, - -0.01114654541015625, -0.0189361572265625, 0.0223541259765625, - 0.0265960693359375, -0.02960205078125, 0.019287109375, - -0.01416778564453125, 0.0121307373046875, 0.034515380859375, - -0.033782958984375, 0.000728607177734375, -0.03411865234375, - 0.00010061264038085938, 0.0010194778442382812, - 0.0228271484375, 0.009246826171875, -0.0114288330078125, - -0.00408935546875, 0.00986480712890625, -0.016845703125, - -0.039886474609375, -0.00739288330078125, - 0.007213592529296875, 0.0256805419921875, 0.01123809814453125, - 0.009185791015625, -0.03607177734375, 0.0251617431640625, - -0.017852783203125, -0.007503509521484375, -0.037750244140625, - -0.02001953125, -0.01474761962890625, -0.0113372802734375, - 0.0115814208984375, -0.00036406517028808594, - -0.014190673828125, -0.0032482147216796875, - 0.0017681121826171875, -0.0238494873046875, - -0.025299072265625, -0.0113525390625, 0.01398468017578125, - 0.01377105712890625, 0.01200103759765625, 0.00659942626953125, - -0.0007700920104980469, -0.05926513671875, 0.0075531005859375, - -0.033935546875, 0.00881195068359375, 0.002941131591796875, - -0.02313232421875, 0.02215576171875, 0.06939697265625, - -0.0294647216796875, -0.0032405853271484375, - -0.00983428955078125, -0.023223876953125, - -0.00310516357421875, -0.0014495849609375, - 0.01334381103515625, -0.0032253265380859375, 0.033447265625, - -0.0108642578125, 0.020355224609375, 0.0001189112663269043, - -0.0002608299255371094, -0.0404052734375, - 0.0038318634033203125, 0.0113983154296875, - -0.0255584716796875, -0.00572967529296875, 0.0184783935546875, - -0.0272064208984375, 0.01013946533203125, - -0.01021575927734375, -0.0146636962890625, - -0.0161285400390625, -0.022796630859375, 0.026214599609375, - -0.036590576171875, -0.0227813720703125, 0.0120086669921875, - 0.03369140625, -0.04632568359375, -0.012939453125, - -0.03302001953125, -0.035858154296875, 0.0019168853759765625, - -0.006450653076171875, 0.0162506103515625, 0.0193023681640625, - -0.00664520263671875, -0.01361083984375, 0.04168701171875, - -0.047821044921875, 0.011138916015625, -0.0188751220703125, - 0.00011795759201049805, -0.0157470703125, -0.01470947265625, - -0.01255035400390625, 0.0099334716796875, -0.0283355712890625, - 0.053131103515625, -0.02044677734375, -0.027008056640625, - -0.05059814453125, -0.01421356201171875, - 0.0009927749633789062, 0.0079803466796875, 0.0181884765625, - 0.0401611328125, 0.01983642578125, -0.028778076171875, - -0.004673004150390625, 0.0011386871337890625, - 0.0002682209014892578, -0.00746917724609375, - -0.038360595703125, -0.01195526123046875, -0.037689208984375, - 0.039764404296875, -0.0227813720703125, -0.00922393798828125, - -0.038116455078125, 0.0167388916015625, 0.01528167724609375, - -0.0020923614501953125, -0.0123291015625, - -0.007373809814453125, -0.04132080078125, 0.03277587890625, - -0.0265045166015625, 0.033172607421875, 0.0306549072265625, - -0.0022735595703125, 0.0080718994140625, -0.0269317626953125, - 0.0202178955078125, 0.0038299560546875, 0.022674560546875, - 0.00959014892578125, 0.039520263671875, 0.00336456298828125, - -0.0233917236328125, 0.0082855224609375, 0.01971435546875, - -0.035430908203125, 0.05047607421875, 0.006145477294921875, - -0.05767822265625, 0.00943756103515625, -0.005275726318359375, - 0.0142822265625, -0.012359619140625, -0.007305145263671875, - 0.006893157958984375, -0.023101806640625, 0.050323486328125, - -0.0291595458984375, 0.0227203369140625, -0.035614013671875, - 0.0396728515625, 0.00412750244140625, 0.034393310546875, - 0.00354766845703125, -0.032135009765625, -0.0251617431640625, - 0.003032684326171875, -0.0310211181640625, -0.033660888671875, - 0.0011720657348632812, -0.009918212890625, - -0.0187530517578125, -0.038116455078125, -0.0288543701171875, - 0.05987548828125, 0.005603790283203125, -0.032379150390625, - 0.0026187896728515625, 0.01201629638671875, - 0.001361846923828125, 0.0191497802734375, -0.00958251953125, - 0.01006317138671875, -0.01715087890625, -0.0546875, - -0.00728607177734375, 0.0243072509765625, 0.043853759765625, - -0.004398345947265625, -0.0305938720703125, - -0.0135650634765625, -0.0357666015625, -0.01088714599609375, - 0.01580810546875, 0.0311126708984375, 0.01107025146484375, - 0.0009198188781738281, 0.01346588134765625, - -0.00598907470703125, -0.031585693359375, 0.0192718505859375, - -0.0298919677734375, 0.024322509765625, -0.0038299560546875, - -0.03668212890625, -0.03363037109375, 0.01568603515625, - 0.027618408203125, -0.0020351409912109375, 0.029083251953125, - 0.0151824951171875, -0.025604248046875, -0.01169586181640625, - -0.003437042236328125, -0.030426025390625, -0.004547119140625, - -0.027496337890625, -0.017486572265625, 0.016510009765625, - 0.049224853515625, -0.044769287109375, 0.0099945068359375, - 0.03118896484375, -0.033172607421875, 0.018585205078125, - -0.032806396484375, 0.02734375, -0.03875732421875, - -0.05328369140625, 0.0248870849609375, 0.0003790855407714844, - -0.0165863037109375, -0.0008473396301269531, - 0.006267547607421875, -0.0216522216796875, - -0.004703521728515625, 0.0313720703125, -0.004276275634765625, - -0.0088653564453125, -0.01087188720703125, 0.032623291015625, - -0.046142578125, -0.0183563232421875, -0.00930023193359375, - 0.040618896484375, 0.006988525390625, 0.024169921875, - 0.007266998291015625, 0.013397216796875, 0.00238800048828125, - 0.00870513916015625, 0.02020263671875, -0.033050537109375, - 0.054840087890625, 0.023162841796875, -0.0002655982971191406, - -0.050750732421875, -0.023345947265625, -0.01496124267578125, - 0.02587890625, 0.00466156005859375, -0.01174163818359375, - 0.0265960693359375, -0.0006241798400878906, - -0.0022716522216796875, -0.0010480880737304688, - -0.01158905029296875, 0.0088043212890625, 0.01372528076171875, - -0.0122833251953125, 0.0022296905517578125, - -0.0183258056640625, 0.0221405029296875, 0.0283355712890625, - 0.042083740234375, -0.00858306884765625, -0.034881591796875, - 0.0240020751953125, 0.037689208984375, -0.01555633544921875, - -0.039154052734375, 0.05511474609375, 0.01129150390625, - 0.0042266845703125, 0.0019359588623046875, - -0.0081329345703125, 0.01029205322265625, - -0.002567291259765625, -0.0022258758544921875, - -0.0098876953125, -0.013153076171875, -0.035858154296875, - 0.01329803466796875, -0.01081085205078125, 0.0192718505859375, - 0.00901031494140625, 0.00010645389556884766, - 0.0134429931640625, -0.0038509368896484375, 0.01763916015625, - 0.0283355712890625, 0.01259613037109375, 0.00826263427734375, - 0.04632568359375, -0.054901123046875, -0.051239013671875, - 0.030975341796875, 0.0223846435546875, 0.0031890869140625, - -0.01381683349609375, -0.0230712890625, -0.00873565673828125, - 0.036590576171875, -0.010467529296875, -0.03173828125, - -0.004344940185546875, -0.03387451171875, - -0.00930023193359375, 0.0092620849609375, -0.0279541015625, - 0.0113372802734375, 0.0222930908203125, 0.0179901123046875, - -0.006481170654296875, -0.01105499267578125, - -0.005947113037109375, 0.005802154541015625, -0.0125732421875, - -0.00921630859375, -0.0013303756713867188, - -0.0197906494140625, -0.005924224853515625, - -0.0263214111328125, -0.01259613037109375, - -0.005962371826171875, 0.017303466796875, -0.0138397216796875, - -0.042022705078125, 0.0295562744140625, -0.015716552734375, - 0.0291748046875, 0.035552978515625, 0.00788116455078125, - -0.01380157470703125, -0.0011653900146484375, - -0.0090179443359375, -0.001216888427734375, - 0.0025177001953125, 0.0003676414489746094, 0.0197906494140625, - -0.02069091796875, 0.01342010498046875, 0.0030536651611328125, - 0.03173828125, -0.001850128173828125, -0.052215576171875, - -0.023193359375, -0.012176513671875, -0.0166778564453125, - -0.03997802734375, -0.041229248046875, -0.017974853515625, - -0.00385284423828125, 0.005035400390625, - -0.002956390380859375, 0.033843994140625, -0.01116943359375, - 0.0279083251953125, -0.0178070068359375, 0.024627685546875, - 0.032867431640625, 0.003444671630859375, 0.0240478515625, - -0.01445770263671875, 0.040771484375, -0.01230621337890625, - 0.00666046142578125, -0.008087158203125, 0.006805419921875, - -0.004276275634765625, 0.0221405029296875, -0.024749755859375, - 0.0400390625, 0.0138397216796875, 0.0361328125, - -0.0028705596923828125, -0.003787994384765625, - 0.06475830078125, 0.0302886962890625, -0.043304443359375, - -0.04559326171875, 0.020751953125, -0.0275115966796875, - -0.02569580078125, -0.01329803466796875, 0.003986358642578125, - 0.04998779296875, -0.0101776123046875, -0.0172119140625, - 0.048004150390625, 0.014007568359375, -0.0207061767578125, - -0.0168914794921875, 0.0146026611328125, 0.0286712646484375, - 0.03729248046875, -0.0244598388671875, 0.00667572021484375, - -0.0207366943359375, 0.03302001953125, 0.00540924072265625, - -0.0284576416015625, 0.01849365234375, -0.011444091796875, - 0.001476287841796875, -0.005615234375, 0.03778076171875, - 0.02642822265625, 0.01239776611328125, -0.01181793212890625, - 0.03521728515625, 0.013031005859375, 0.01139068603515625, - 0.00672149658203125, 0.024444580078125, 0.0197601318359375, - -0.0177001953125, -0.024200439453125, 0.0216827392578125, - -0.0004317760467529297, 0.00811767578125, -0.0131683349609375, - 0.0012493133544921875, -0.01227569580078125, - 0.0030918121337890625, 0.041107177734375, 0.012481689453125, - -0.029998779296875, -0.0092620849609375, -0.01904296875, - 0.0090484619140625, -0.0301055908203125, -0.00742340087890625, - -0.01364898681640625, 0.0297088623046875, 0.0328369140625, - -0.0116729736328125, 0.00152587890625, 0.045867919921875, - 0.0035400390625, -0.03497314453125, 0.023406982421875, - 0.03289794921875, -0.028076171875, 0.01800537109375, - 0.01024627685546875, -0.004169464111328125, -0.00396728515625, - -0.0245513916015625, -0.01021575927734375, -0.031585693359375, - -0.05474853515625, 0.0168304443359375, 0.026519775390625, - 0.0267333984375, -0.01230621337890625, -0.0149383544921875, - 0.0204620361328125, 0.015380859375, -0.0626220703125, - -0.0162353515625, 0.0220794677734375, -0.0171356201171875, - -0.01561737060546875, -0.035980224609375, 0.0192718505859375, - 0.043701171875, 0.0413818359375, 0.03314208984375, - 0.00016868114471435547, -0.000579833984375, - -0.0177154541015625, -0.037384033203125, 0.0377197265625, - 0.0264739990234375, 0.01340484619140625, 0.02313232421875, - 0.04119873046875, -0.0037288665771484375, -0.0226287841796875, - -0.0005016326904296875, 0.00885772705078125, - -0.0029125213623046875, 0.007633209228515625, 0.00732421875, - -0.0113983154296875, 0.00392913818359375, - -0.00774383544921875, -0.040008544921875, -0.0231781005859375, - 0.007091522216796875, -0.0286865234375, 0.032440185546875, - 0.0177001953125, -0.015167236328125, 0.0082550048828125, - -0.01465606689453125, 0.01073455810546875, - 0.007236480712890625, 0.00146484375, 0.03265380859375, - -0.0084686279296875, 0.0301361083984375, 0.0013427734375, - -0.01102447509765625, -0.0197906494140625, - 0.01364898681640625, -0.031219482421875, -0.0229034423828125, - 0.0275115966796875, 0.0003364086151123047, 0.050811767578125, - 0.0234222412109375, 0.01097869873046875, -0.017974853515625, - -0.0154876708984375, 0.016876220703125, 0.0070037841796875, - 0.00920867919921875, -0.0135040283203125, -0.019073486328125, - 0.028564453125, 0.00928497314453125, 0.030181884765625, - -0.01273345947265625, 0.00492095947265625, - 0.0024242401123046875, -0.06781005859375, -0.00714111328125, - 0.0021343231201171875, 0.003330230712890625, - -0.0007662773132324219, 0.019500732421875, 0.0095062255859375, - -0.0262298583984375, -0.00960540771484375, - 0.006473541259765625, 0.05169677734375, -0.017730712890625, - 0.0238037109375, -0.0214691162109375, 0.0304412841796875, - -0.0126190185546875, -0.03070068359375, -0.037078857421875, - 0.022369384765625, 0.034515380859375, -0.0205841064453125, - 0.004116058349609375, -0.038787841796875, -0.0221710205078125, - -0.024993896484375, -0.021453857421875, - -0.0003190040588378906, 0.0036602020263671875, - 0.0107269287109375, 0.0152435302734375, -0.016265869140625, - -0.0222930908203125, 0.0105133056640625, -0.0185546875, - -0.015045166015625, 0.0134735107421875, 0.002307891845703125, - 0.007579803466796875, -0.0022735595703125, 0.0276336669921875, - 0.0083160400390625, 0.01552581787109375, - -0.007038116455078125, 0.008331298828125, -0.0135955810546875, - 0.020721435546875, 0.050933837890625, 0.0147552490234375, - 0.0205841064453125, -0.00490570068359375, 0.038299560546875, - 0.0301055908203125, 0.05523681640625, 0.00766754150390625, - 0.00782012939453125, -0.00164794921875, 0.0191497802734375, - 0.002674102783203125, -0.017242431640625, 0.02203369140625, - -0.0187835693359375, 0.0350341796875, -0.01007080078125, - -0.04803466796875, 0.01506805419921875, -0.031646728515625, - 0.0182342529296875, 0.0239105224609375, 0.0435791015625, - 0.0156097412109375, -0.0275115966796875, 0.0169525146484375, - -0.0036716461181640625, 0.0154571533203125, - -0.00377655029296875, -0.003070831298828125, - 0.034332275390625, -0.0034275054931640625, - -0.0285797119140625, -0.03607177734375, - -0.0008091926574707031, -0.0127410888671875, -0.036376953125, - -0.007793426513671875, -0.043792724609375, 0.0270538330078125, - -0.058013916015625, -0.01438140869140625, - 0.007251739501953125, 0.045013427734375, 0.00720977783203125, - 0.0254058837890625, 0.054718017578125, 0.0061798095703125, - -0.0198822021484375, 0.010162353515625, -0.035919189453125, - 0.0014743804931640625, -0.0060577392578125, -0.02752685546875, - -0.01453399658203125, -0.0137481689453125, - -0.00218963623046875, -0.0038661956787109375, - 0.006755828857421875, 0.00434112548828125, -0.020294189453125, - 0.0181884765625, -0.004611968994140625, -0.0200042724609375, - 0.034454345703125, -0.0709228515625, -0.028533935546875, - 0.0260772705078125, -0.044677734375, 0.021240234375, - 0.032470703125, 0.0162811279296875, -0.01093292236328125, - -0.01284027099609375, -0.028900146484375, - 0.0009975433349609375, -0.0187835693359375, - 0.0098419189453125, 0.0171966552734375, 0.030670166015625, - 0.00463104248046875, -0.022796630859375, 0.0117950439453125, - -0.028472900390625, -0.021148681640625, -0.039337158203125, - 0.0176544189453125, -0.038238525390625, -0.039581298828125, - 0.002685546875, -0.01483154296875, 0.00533294677734375, - 0.0000928044319152832, 0.01045989990234375, -0.01025390625, - -0.0207061767578125, -0.025665283203125, 0.0222015380859375, - -0.0111083984375, 0.023406982421875, -0.0209197998046875, - -0.0036716461181640625, -0.037689208984375, - 0.0189056396484375, 0.0112457275390625, -0.016204833984375, - 0.0017604827880859375, 0.01241302490234375, - -0.0038776397705078125, -0.00168609619140625, 0.043701171875, - -0.0297698974609375, 0.005054473876953125, - -0.0214385986328125, -0.026611328125, -0.01385498046875, - 0.00682830810546875, -0.0007939338684082031, - 0.030181884765625, 0.051513671875, -0.04296875, - -0.037811279296875, -0.0005049705505371094, - 0.01035308837890625, 0.0136260986328125, 0.025604248046875, - 0.0211334228515625, -0.01605224609375, -0.0228118896484375, - -0.004764556884765625, 0.01377105712890625, - -0.01389312744140625, 0.0256805419921875, - 0.0035343170166015625, -0.026397705078125, - -0.0199737548828125, -0.018646240234375, -0.025054931640625, - 0.02752685546875, 0.01459503173828125, -0.002986907958984375, - 0.038421630859375, -0.0166168212890625, 0.00832366943359375, - 0.06048583984375, 0.0234527587890625, 0.01180267333984375, - 0.00638580322265625, -0.0140838623046875, -0.0074615478515625, - -0.00616455078125, -0.02105712890625, 0.000720977783203125, - -0.01064300537109375, 0.00774383544921875, 0.016632080078125, - 0.0108795166015625, -0.0135498046875, 0.00914764404296875, - 0.034332275390625, -0.01390838623046875, -0.037353515625, - -0.0296173095703125, 0.01849365234375, -0.0230255126953125, - 0.01108551025390625, -0.0214691162109375, 0.0247955322265625, - -0.00872802734375, 0.0184478759765625, 0.00928497314453125, - 0.0202484130859375, 0.0223541259765625, 0.006092071533203125, - 0.035430908203125, -0.035614013671875, -0.0004284381866455078, - -0.0036907196044921875, 0.0053863525390625, - 0.002460479736328125, 0.00722503662109375, - -0.0257110595703125, 0.00926971435546875, 0.00696563720703125, - -0.007740020751953125, 0.01490020751953125, -0.03143310546875, - 0.0160980224609375, -0.0022335052490234375, 0.0146484375, - 0.01129913330078125, 0.019683837890625, -0.0193634033203125, - 0.0092620849609375, 0.01381683349609375, 0.001338958740234375, - 0.01309967041015625, -0.0032100677490234375, - -0.00939178466796875, 0.02569580078125, 0.030731201171875, - 0.023895263671875, 0.0019083023071289062, -0.0124969482421875, - -0.01023101806640625, -0.03558349609375, 0.022857666015625, - -0.000028312206268310547, 0.0123291015625, 0.005157470703125, - -0.01056671142578125, 0.005367279052734375, 0.009490966796875, - 0.005687713623046875, -0.00585174560546875, - 0.01279449462890625, -0.01137542724609375, - 0.005809783935546875, 0.0124359130859375, - -0.006900787353515625, 0.04034423828125, -0.0111083984375, - -0.0012426376342773438, 0.0159454345703125, -0.0450439453125, - -0.01468658447265625, 0.00832366943359375, - -0.01213836669921875, -0.0028018951416015625, - 0.0014476776123046875, -0.00453948974609375, - -0.003498077392578125, -0.0117645263671875, - 0.00293731689453125, -0.0258941650390625, 0.008209228515625, - -0.00203704833984375, 0.0144195556640625, 0.036346435546875, - -0.0119476318359375, -0.03778076171875, 0.0245819091796875, - -0.035858154296875, 0.0084991455078125, 0.01824951171875, - 0.0088653564453125, -0.0467529296875, 0.01412200927734375, - 0.01203155517578125, -0.0232391357421875, - -0.00788116455078125, 0.0123443603515625, -0.031036376953125, - 0.003704071044921875, 0.0136260986328125, - 0.0031147003173828125, 0.0007843971252441406, - 0.00490570068359375 - ], - "index": 0, - "object": "embedding" - } - ], - "model": "text-embedding-3-small", - "object": "list", - "usage": { - "prompt_tokens": 7, - "total_tokens": 7 - } - } - }, - "headers": { - "access-control-expose-headers": "X-Request-ID, CF-Ray, CF-Ray", - "alt-svc": "h3=\":443\"; ma=86400", - "cf-cache-status": "DYNAMIC", - "cf-ray": "a29c58b09a1f8029-IAD", - "connection": "keep-alive", - "content-encoding": "gzip", - "content-type": "application/json", - "date": "Wed, 12 Aug 2026 03:20:50 GMT", - "openai-organization": "braintrust-data", - "openai-processing-ms": "53", - "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": "10000", - "x-ratelimit-limit-tokens": "10000000", - "x-ratelimit-remaining-requests": "9999", - "x-ratelimit-remaining-tokens": "9999993", - "x-ratelimit-reset-requests": "6ms", - "x-ratelimit-reset-tokens": "0s", - "x-request-id": "req_19802e0ed763486f94feced58ca31f72" - }, - "status": 200, - "statusText": "OK" - } - }, - { - "callIndex": 2, - "id": "f7a3ad27b5067191", - "matchKey": "POST api.openai.com/v1/chat/completions", - "recordedAt": "2026-08-12T03:20:50.707Z", - "request": { - "body": { - "kind": "json", - "value": { - "max_tokens": 128, - "messages": [ - { - "content": "You must inspect live weather via the provided get_weather tool before responding.", - "role": "system" - }, - { - "content": "Use the get_weather tool for Paris, France. If you do not call the tool, the answer is invalid.", - "role": "user" - } - ], - "model": "gpt-4o-mini-2024-07-18", - "temperature": 0, - "tool_choice": "auto", - "tools": [ - { - "function": { - "description": "Get the weather for a location", - "name": "get_weather", - "parameters": { - "$schema": "http://json-schema.org/draft-07/schema#", - "additionalProperties": false, - "properties": { - "location": { - "description": "The city and country", - "type": "string" - } - }, - "required": ["location"], - "type": "object" - } - }, - "type": "function" - } - ] - } - }, - "headers": {}, - "method": "POST", - "url": "https://api.openai.com/v1/chat/completions" - }, - "response": { - "body": { - "kind": "json", - "value": { - "choices": [ - { - "finish_reason": "tool_calls", - "index": 0, - "logprobs": null, - "message": { - "annotations": [], - "content": null, - "refusal": null, - "role": "assistant", - "tool_calls": [ - { - "function": { - "arguments": "{\"location\":\"Paris, France\"}", - "name": "get_weather" - }, - "id": "call_UMuGhN6ZkwsCp9em8q4OFyuV", - "type": "function" - } - ] - } - } - ], - "created": 1786504850, - "id": "chatcmpl-EBtoIGtRYm94JXcy7Q66tHaVUPGNP", - "model": "gpt-4o-mini-2024-07-18", - "object": "chat.completion", - "service_tier": "default", - "system_fingerprint": "fp_98fa25fd02", - "usage": { - "completion_tokens": 16, - "completion_tokens_details": { - "accepted_prediction_tokens": 0, - "audio_tokens": 0, - "reasoning_tokens": 0, - "rejected_prediction_tokens": 0 - }, - "prompt_tokens": 87, - "prompt_tokens_details": { - "audio_tokens": 0, - "cached_tokens": 0 - }, - "total_tokens": 103 - } - } - }, - "headers": { - "access-control-expose-headers": "X-Request-ID, CF-Ray, CF-Ray", - "alt-svc": "h3=\":443\"; ma=86400", - "cf-cache-status": "DYNAMIC", - "cf-ray": "a29c58b15ab98029-IAD", - "connection": "keep-alive", - "content-encoding": "gzip", - "content-type": "application/json", - "date": "Wed, 12 Aug 2026 03:20:50 GMT", - "openai-organization": "braintrust-data", - "openai-processing-ms": "501", - "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": "149999952", - "x-ratelimit-reset-requests": "2ms", - "x-ratelimit-reset-tokens": "0s", - "x-request-id": "req_efa3e17526274413b40f8e0ae1515236" - }, - "status": 200, - "statusText": "OK" - } - }, - { - "callIndex": 3, - "id": "26ad5653def30060", - "matchKey": "POST api.openai.com/v1/chat/completions", - "recordedAt": "2026-08-12T03:20:51.320Z", - "request": { - "body": { - "kind": "json", - "value": { - "max_tokens": 32, - "messages": [ - { - "content": "Return JSON with {\"city\":\"Paris\"}.", - "role": "user" - } - ], - "model": "gpt-4o-mini-2024-07-18", - "temperature": 0, - "tool_choice": { - "function": { - "name": "json" - }, - "type": "function" - }, - "tools": [ - { - "function": { - "description": "Respond with a JSON object.", - "name": "json", - "parameters": { - "$schema": "http://json-schema.org/draft-07/schema#", - "additionalProperties": false, - "properties": { - "city": { - "type": "string" - } - }, - "required": ["city"], - "type": "object" - } - }, - "type": "function" - } - ] - } - }, - "headers": {}, - "method": "POST", - "url": "https://api.openai.com/v1/chat/completions" - }, - "response": { - "body": { - "kind": "json", - "value": { - "choices": [ - { - "finish_reason": "stop", - "index": 0, - "logprobs": null, - "message": { - "annotations": [], - "content": null, - "refusal": null, - "role": "assistant", - "tool_calls": [ - { - "function": { - "arguments": "{\"city\":\"Paris\"}", - "name": "json" - }, - "id": "call_SQcqBNyCGzH6a0M9YVRrzVRh", - "type": "function" - } - ] - } - } - ], - "created": 1786504850, - "id": "chatcmpl-EBtoI7EcjbAELqo9caSK830h7MXBt", - "model": "gpt-4o-mini-2024-07-18", - "object": "chat.completion", - "service_tier": "default", - "system_fingerprint": "fp_9afcdcbeed", - "usage": { - "completion_tokens": 5, - "completion_tokens_details": { - "accepted_prediction_tokens": 0, - "audio_tokens": 0, - "reasoning_tokens": 0, - "rejected_prediction_tokens": 0 - }, - "prompt_tokens": 59, - "prompt_tokens_details": { - "audio_tokens": 0, - "cached_tokens": 0 - }, - "total_tokens": 64 - } - } - }, - "headers": { - "access-control-expose-headers": "X-Request-ID, CF-Ray, CF-Ray", - "alt-svc": "h3=\":443\"; ma=86400", - "cf-cache-status": "DYNAMIC", - "cf-ray": "a29c58b4ed388029-IAD", - "connection": "keep-alive", - "content-encoding": "gzip", - "content-type": "application/json", - "date": "Wed, 12 Aug 2026 03:20:51 GMT", - "openai-organization": "braintrust-data", - "openai-processing-ms": "547", - "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-reset-requests": "2ms", - "x-ratelimit-reset-tokens": "0s", - "x-request-id": "req_0688ec8d78b54eb1adf36824bad5e9a6" - }, - "status": 200, - "statusText": "OK" - } - }, - { - "callIndex": 4, - "id": "1e0515e907a8bb36", - "matchKey": "POST api.openai.com/v1/chat/completions", - "recordedAt": "2026-08-12T03:20:51.850Z", - "request": { - "body": { - "kind": "json", - "value": { - "max_tokens": 32, - "messages": [ - { - "content": "Stream JSON with {\"city\":\"Paris\"}.", - "role": "user" - } - ], - "model": "gpt-4o-mini-2024-07-18", - "stream": true, - "temperature": 0, - "tool_choice": { - "function": { - "name": "json" - }, - "type": "function" - }, - "tools": [ - { - "function": { - "description": "Respond with a JSON object.", - "name": "json", - "parameters": { - "$schema": "http://json-schema.org/draft-07/schema#", - "additionalProperties": false, - "properties": { - "city": { - "type": "string" - } - }, - "required": ["city"], - "type": "object" - } - }, - "type": "function" - } - ] - } - }, - "headers": {}, - "method": "POST", - "url": "https://api.openai.com/v1/chat/completions" - }, - "response": { - "body": { - "chunks": [ - "data: {\"id\":\"chatcmpl-EBtoJLtlpqaMMJdyJkkyM7JLsRTq7\",\"object\":\"chat.completion.chunk\",\"created\":1786504851,\"model\":\"gpt-4o-mini-2024-07-18\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_9afcdcbeed\",\"choices\":[{\"index\":0,\"delta\":{\"role\":\"assistant\",\"content\":null,\"tool_calls\":[{\"index\":0,\"id\":\"call_WqHLU3gBYZ0G7o9SdYcxHhpm\",\"type\":\"function\",\"function\":{\"name\":\"json\",\"arguments\":\"\"}}],\"refusal\":null},\"logprobs\":null,\"finish_reason\":null}],\"obfuscation\":\"kiOb2CCw\"}", - "data: {\"id\":\"chatcmpl-EBtoJLtlpqaMMJdyJkkyM7JLsRTq7\",\"object\":\"chat.completion.chunk\",\"created\":1786504851,\"model\":\"gpt-4o-mini-2024-07-18\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_9afcdcbeed\",\"choices\":[{\"index\":0,\"delta\":{\"tool_calls\":[{\"index\":0,\"function\":{\"arguments\":\"{\\\"\"}}]},\"logprobs\":null,\"finish_reason\":null}],\"obfuscation\":\"5XFod0Hptnw\"}", - "data: {\"id\":\"chatcmpl-EBtoJLtlpqaMMJdyJkkyM7JLsRTq7\",\"object\":\"chat.completion.chunk\",\"created\":1786504851,\"model\":\"gpt-4o-mini-2024-07-18\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_9afcdcbeed\",\"choices\":[{\"index\":0,\"delta\":{\"tool_calls\":[{\"index\":0,\"function\":{\"arguments\":\"city\"}}]},\"logprobs\":null,\"finish_reason\":null}],\"obfuscation\":\"KszwHb7sDw\"}", - "data: {\"id\":\"chatcmpl-EBtoJLtlpqaMMJdyJkkyM7JLsRTq7\",\"object\":\"chat.completion.chunk\",\"created\":1786504851,\"model\":\"gpt-4o-mini-2024-07-18\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_9afcdcbeed\",\"choices\":[{\"index\":0,\"delta\":{\"tool_calls\":[{\"index\":0,\"function\":{\"arguments\":\"\\\":\\\"\"}}]},\"logprobs\":null,\"finish_reason\":null}],\"obfuscation\":\"430kM2ZZd\"}", - "data: {\"id\":\"chatcmpl-EBtoJLtlpqaMMJdyJkkyM7JLsRTq7\",\"object\":\"chat.completion.chunk\",\"created\":1786504851,\"model\":\"gpt-4o-mini-2024-07-18\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_9afcdcbeed\",\"choices\":[{\"index\":0,\"delta\":{\"tool_calls\":[{\"index\":0,\"function\":{\"arguments\":\"Paris\"}}]},\"logprobs\":null,\"finish_reason\":null}],\"obfuscation\":\"mbpoFD0Rh\"}", - "data: {\"id\":\"chatcmpl-EBtoJLtlpqaMMJdyJkkyM7JLsRTq7\",\"object\":\"chat.completion.chunk\",\"created\":1786504851,\"model\":\"gpt-4o-mini-2024-07-18\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_9afcdcbeed\",\"choices\":[{\"index\":0,\"delta\":{\"tool_calls\":[{\"index\":0,\"function\":{\"arguments\":\"\\\"}\"}}]},\"logprobs\":null,\"finish_reason\":null}],\"obfuscation\":\"N3lxDJJGf8o\"}", - "data: {\"id\":\"chatcmpl-EBtoJLtlpqaMMJdyJkkyM7JLsRTq7\",\"object\":\"chat.completion.chunk\",\"created\":1786504851,\"model\":\"gpt-4o-mini-2024-07-18\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_9afcdcbeed\",\"choices\":[{\"index\":0,\"delta\":{},\"logprobs\":null,\"finish_reason\":\"stop\"}],\"obfuscation\":\"oc\"}", - "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": "a29c58b8cfd98029-IAD", - "connection": "keep-alive", - "content-type": "text/event-stream; charset=utf-8", - "date": "Wed, 12 Aug 2026 03:20:51 GMT", - "openai-organization": "braintrust-data", - "openai-processing-ms": "396", - "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-reset-requests": "2ms", - "x-ratelimit-reset-tokens": "0s", - "x-request-id": "req_261be71c049d4ae99c5544c36b60c3a5" - }, - "status": 200, - "statusText": "OK" - } - } - ], - "meta": { - "createdAt": "2026-07-06T14:02:52.301Z" - } -} diff --git a/e2e/scenarios/ai-sdk-instrumentation/__cassettes__/ai-sdk-v3.cassette.json b/e2e/scenarios/ai-sdk-instrumentation/__cassettes__/ai-sdk-v3.cassette.json deleted file mode 100644 index ac6394153..000000000 --- a/e2e/scenarios/ai-sdk-instrumentation/__cassettes__/ai-sdk-v3.cassette.json +++ /dev/null @@ -1,1151 +0,0 @@ -{ - "entries": [ - { - "callIndex": 0, - "id": "2583f51940dc092e", - "matchKey": "POST api.openai.com/v1/chat/completions", - "recordedAt": "2026-08-12T03:20:42.139Z", - "request": { - "body": { - "kind": "json", - "value": { - "max_tokens": 24, - "messages": [ - { - "content": "Reply with the single token PARIS and no punctuation.", - "role": "user" - } - ], - "model": "gpt-4o-mini-2024-07-18", - "temperature": 0 - } - }, - "headers": {}, - "method": "POST", - "url": "https://api.openai.com/v1/chat/completions" - }, - "response": { - "body": { - "kind": "json", - "value": { - "choices": [ - { - "finish_reason": "stop", - "index": 0, - "logprobs": null, - "message": { - "annotations": [], - "content": "PARIS", - "refusal": null, - "role": "assistant" - } - } - ], - "created": 1786504841, - "id": "chatcmpl-EBto9R78okjPTViSZCpqfiBBIKrs5", - "model": "gpt-4o-mini-2024-07-18", - "object": "chat.completion", - "service_tier": "default", - "system_fingerprint": "fp_fabbcdf5d9", - "usage": { - "completion_tokens": 2, - "completion_tokens_details": { - "accepted_prediction_tokens": 0, - "audio_tokens": 0, - "reasoning_tokens": 0, - "rejected_prediction_tokens": 0 - }, - "prompt_tokens": 18, - "prompt_tokens_details": { - "audio_tokens": 0, - "cached_tokens": 0 - }, - "total_tokens": 20 - } - } - }, - "headers": { - "access-control-expose-headers": "X-Request-ID, CF-Ray, CF-Ray", - "alt-svc": "h3=\":443\"; ma=86400", - "cf-cache-status": "DYNAMIC", - "cf-ray": "a29c587d3abe8029-IAD", - "connection": "keep-alive", - "content-encoding": "gzip", - "content-type": "application/json", - "date": "Wed, 12 Aug 2026 03:20:42 GMT", - "openai-organization": "braintrust-data", - "openai-processing-ms": "279", - "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": "149999985", - "x-ratelimit-reset-requests": "2ms", - "x-ratelimit-reset-tokens": "0s", - "x-request-id": "req_84791dd2fdbb49ceb596955e38420fe0" - }, - "status": 200, - "statusText": "OK" - } - }, - { - "callIndex": 1, - "id": "901ff936ff6b7255", - "matchKey": "POST api.openai.com/v1/chat/completions", - "recordedAt": "2026-08-12T03:20:42.559Z", - "request": { - "body": { - "kind": "json", - "value": { - "max_tokens": 32, - "messages": [ - { - "content": "Count from 1 to 3 and include the words one two three.", - "role": "user" - } - ], - "model": "gpt-4o-mini-2024-07-18", - "stream": true, - "temperature": 0 - } - }, - "headers": {}, - "method": "POST", - "url": "https://api.openai.com/v1/chat/completions" - }, - "response": { - "body": { - "chunks": [ - "data: {\"id\":\"chatcmpl-EBtoAKna8F7GKBPsPskHdBhRm8Byl\",\"object\":\"chat.completion.chunk\",\"created\":1786504842,\"model\":\"gpt-4o-mini-2024-07-18\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_0950b7f384\",\"choices\":[{\"index\":0,\"delta\":{\"role\":\"assistant\",\"content\":\"\",\"refusal\":null},\"logprobs\":null,\"finish_reason\":null}],\"obfuscation\":\"IbkBYq\"}", - "data: {\"id\":\"chatcmpl-EBtoAKna8F7GKBPsPskHdBhRm8Byl\",\"object\":\"chat.completion.chunk\",\"created\":1786504842,\"model\":\"gpt-4o-mini-2024-07-18\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_0950b7f384\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\"One\"},\"logprobs\":null,\"finish_reason\":null}],\"obfuscation\":\"B7cq1\"}", - "data: {\"id\":\"chatcmpl-EBtoAKna8F7GKBPsPskHdBhRm8Byl\",\"object\":\"chat.completion.chunk\",\"created\":1786504842,\"model\":\"gpt-4o-mini-2024-07-18\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_0950b7f384\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\",\"},\"logprobs\":null,\"finish_reason\":null}],\"obfuscation\":\"UZIccye\"}", - "data: {\"id\":\"chatcmpl-EBtoAKna8F7GKBPsPskHdBhRm8Byl\",\"object\":\"chat.completion.chunk\",\"created\":1786504842,\"model\":\"gpt-4o-mini-2024-07-18\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_0950b7f384\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" two\"},\"logprobs\":null,\"finish_reason\":null}],\"obfuscation\":\"pMpo\"}", - "data: {\"id\":\"chatcmpl-EBtoAKna8F7GKBPsPskHdBhRm8Byl\",\"object\":\"chat.completion.chunk\",\"created\":1786504842,\"model\":\"gpt-4o-mini-2024-07-18\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_0950b7f384\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\",\"},\"logprobs\":null,\"finish_reason\":null}],\"obfuscation\":\"J1nfxcN\"}", - "data: {\"id\":\"chatcmpl-EBtoAKna8F7GKBPsPskHdBhRm8Byl\",\"object\":\"chat.completion.chunk\",\"created\":1786504842,\"model\":\"gpt-4o-mini-2024-07-18\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_0950b7f384\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" three\"},\"logprobs\":null,\"finish_reason\":null}],\"obfuscation\":\"IA\"}", - "data: {\"id\":\"chatcmpl-EBtoAKna8F7GKBPsPskHdBhRm8Byl\",\"object\":\"chat.completion.chunk\",\"created\":1786504842,\"model\":\"gpt-4o-mini-2024-07-18\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_0950b7f384\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\".\"},\"logprobs\":null,\"finish_reason\":null}],\"obfuscation\":\"17pj5wD\"}", - "data: {\"id\":\"chatcmpl-EBtoAKna8F7GKBPsPskHdBhRm8Byl\",\"object\":\"chat.completion.chunk\",\"created\":1786504842,\"model\":\"gpt-4o-mini-2024-07-18\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_0950b7f384\",\"choices\":[{\"index\":0,\"delta\":{},\"logprobs\":null,\"finish_reason\":\"stop\"}],\"obfuscation\":\"PG\"}", - "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": "a29c587f7ce48029-IAD", - "connection": "keep-alive", - "content-type": "text/event-stream; charset=utf-8", - "date": "Wed, 12 Aug 2026 03:20:42 GMT", - "openai-organization": "braintrust-data", - "openai-processing-ms": "240", - "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": "149999985", - "x-ratelimit-reset-requests": "2ms", - "x-ratelimit-reset-tokens": "0s", - "x-request-id": "req_a35d2f97e1e047d9b705abdd4b39a9ae" - }, - "status": 200, - "statusText": "OK" - } - }, - { - "callIndex": 0, - "id": "49a95bf2b3466013", - "matchKey": "POST api.openai.com/v1/embeddings", - "recordedAt": "2026-08-12T03:20:42.754Z", - "request": { - "body": { - "kind": "json", - "value": { - "encoding_format": "float", - "input": ["Paris is the capital of France."], - "model": "text-embedding-3-small" - } - }, - "headers": {}, - "method": "POST", - "url": "https://api.openai.com/v1/embeddings" - }, - "response": { - "body": { - "kind": "json", - "value": { - "data": [ - { - "embedding": [ - 0.0196380615234375, 0.019073486328125, -0.01320648193359375, - -0.0206451416015625, -0.0188751220703125, 0.02972412109375, - -0.020599365234375, 0.023651123046875, 0.006359100341796875, - -0.017059326171875, 0.004039764404296875, 0.01035308837890625, - -0.028961181640625, 0.00681304931640625, -0.03192138671875, - 0.02520751953125, -0.0282440185546875, 0.0501708984375, - 0.09149169921875, -0.020050048828125, 0.022308349609375, - -0.01296234130859375, -0.01445770263671875, 0.03436279296875, - 0.052764892578125, -0.0010938644409179688, 0.0081634521484375, - 0.042510986328125, 0.003047943115234375, 0.059844970703125, - 0.0164337158203125, -0.0078582763671875, - -0.0024394989013671875, 0.02423095703125, 0.0195159912109375, - -0.061065673828125, -0.0133514404296875, -0.038421630859375, - 0.00791168212890625, 0.027679443359375, 0.01708984375, - -0.0284271240234375, -0.0287322998046875, 0.03277587890625, - -0.035919189453125, -0.04705810546875, -0.0094451904296875, - -0.022491455078125, 0.02313232421875, -0.0037364959716796875, - 0.045654296875, -0.00487518310546875, 0.020172119140625, - 0.009246826171875, 0.00449371337890625, 0.022552490234375, - 0.03277587890625, 0.0433349609375, 0.02569580078125, - 0.0035457611083984375, 0.051788330078125, 0.020599365234375, - 0.04046630859375, 0.0177459716796875, -0.0055999755859375, - 0.03271484375, 0.0215606689453125, 0.032257080078125, - 0.050048828125, 0.0258026123046875, 0.018768310546875, - 0.044342041015625, -0.005954742431640625, 0.00675201416015625, - 0.0188751220703125, 0.01470947265625, 0.00463104248046875, - 0.038787841796875, 0.017364501953125, -0.03466796875, - -0.0016241073608398438, 0.01056671142578125, - 0.0137481689453125, -0.0216827392578125, -0.00678253173828125, - -0.01279449462890625, -0.00383758544921875, - 0.0027370452880859375, -0.0027408599853515625, - -0.0220947265625, 0.0014705657958984375, -0.0117034912109375, - -0.0172882080078125, 0.015655517578125, -0.03094482421875, - 0.00457000732421875, 0.0211029052734375, -0.04888916015625, - -0.058837890625, 0.02716064453125, 0.0279083251953125, - 0.0013456344604492188, -0.046783447265625, 0.0316162109375, - 0.0154876708984375, -0.01546478271484375, - 0.00037980079650878906, -0.0005192756652832031, - 0.0143280029296875, -0.040924072265625, -0.021728515625, - 0.004119873046875, -0.0002334117889404297, 0.032440185546875, - -0.059783935546875, 0.01092529296875, 0.014007568359375, - -0.00711822509765625, 0.031036376953125, - -0.007556915283203125, -0.00634002685546875, 0.0025634765625, - -0.04180908203125, 0.0404052734375, -0.03387451171875, - -0.048248291015625, 0.00656890869140625, 0.0265350341796875, - 0.0227813720703125, -0.00855255126953125, 0.00469970703125, - -0.044952392578125, 0.01690673828125, 0.025909423828125, - 0.05059814453125, -0.0096282958984375, 0.033782958984375, - -0.00574493408203125, 0.0175018310546875, 0.01776123046875, - -0.015625, 0.0285797119140625, -0.01055908203125, - 0.0364990234375, -0.018280029296875, -0.0338134765625, - -0.0313720703125, 0.040069580078125, 0.0101470947265625, - -0.04278564453125, 0.0164794921875, -0.0212554931640625, - 0.00272369384765625, 0.0289459228515625, - -0.003696441650390625, -0.0621337890625, 0.014434814453125, - -0.00196075439453125, 0.0384521484375, 0.025665283203125, - -0.036865234375, 0.0212860107421875, -0.046142578125, - -0.0162811279296875, -0.0034656524658203125, - 0.00821685791015625, -0.00901031494140625, - -0.00539398193359375, 0.011871337890625, 0.0160064697265625, - -0.0234527587890625, 0.004573822021484375, 0.0511474609375, - 0.038909912109375, 0.0225677490234375, -0.0139312744140625, - -0.018524169921875, 0.08013916015625, 0.026275634765625, - -0.0214385986328125, -0.01105499267578125, - -0.01430511474609375, 0.03076171875, -0.01468658447265625, - 0.0189056396484375, 0.0250244140625, -0.0206146240234375, - -0.0269317626953125, -0.0172882080078125, 0.05322265625, - 0.061492919921875, -0.0190887451171875, 0.056365966796875, - -0.04541015625, -0.0628662109375, 0.0241546630859375, - 0.002185821533203125, 0.0067596435546875, 0.00933074951171875, - 0.0079803466796875, -0.039215087890625, 0.041900634765625, - -0.0055999755859375, -0.0033016204833984375, - -0.01486968994140625, 0.019073486328125, -0.0100555419921875, - -0.04833984375, 0.029510498046875, -0.00475311279296875, - -0.01241302490234375, -0.005481719970703125, - -0.0262298583984375, 0.038421630859375, 0.038543701171875, - -0.01038360595703125, 0.012939453125, 0.033966064453125, - 0.0299072265625, -0.005496978759765625, 0.03466796875, - 0.023406982421875, 0.0113525390625, -0.0155792236328125, - -0.048919677734375, 0.055419921875, 0.05267333984375, - 0.00608062744140625, -0.04461669921875, 0.002704620361328125, - 0.00434112548828125, -0.0286407470703125, - -0.01476287841796875, -0.01540374755859375, - -0.0269317626953125, -0.019195556640625, 0.0035400390625, - -0.01326751708984375, -0.047821044921875, 0.0193634033203125, - -0.033843994140625, 0.0185394287109375, 0.0141448974609375, - 0.0026836395263671875, -0.00033974647521972656, - 0.002651214599609375, 0.01383209228515625, 0.03717041015625, - -0.042083740234375, 0.01270294189453125, 0.04339599609375, - -0.0172119140625, -0.025360107421875, 0.0172576904296875, - -0.035430908203125, 0.035125732421875, 0.00611114501953125, - -0.00634002685546875, -0.047698974609375, - -0.00983428955078125, 0.0104217529296875, 0.019866943359375, - -0.00997161865234375, -0.0018606185913085938, - -0.008392333984375, 0.019195556640625, -0.00960540771484375, - -0.023651123046875, -0.022491455078125, -0.030517578125, - 0.034912109375, -0.0008358955383300781, -0.0177154541015625, - 0.0290985107421875, -0.020965576171875, 0.005283355712890625, - -0.028228759765625, 0.0008840560913085938, -0.001129150390625, - 0.015777587890625, -0.0218505859375, 0.0443115234375, - -0.01230621337890625, 0.01255035400390625, - -0.00955963134765625, -0.01983642578125, 0.04046630859375, - 0.0672607421875, -0.0325927734375, 0.052032470703125, - 0.02166748046875, -0.021240234375, -0.033966064453125, - 0.022613525390625, -0.008087158203125, 0.006885528564453125, - 0.03558349609375, 0.0010814666748046875, 0.006816864013671875, - 0.0125274658203125, -0.0239105224609375, -0.01180267333984375, - 0.004608154296875, 0.0152740478515625, -0.04949951171875, - 0.0484619140625, -0.045501708984375, 0.019683837890625, - 0.0521240234375, 0.005802154541015625, -0.054107666015625, - -0.03643798828125, 0.04638671875, -0.0677490234375, - -0.01151275634765625, 0.007213592529296875, - -0.0158538818359375, 0.019561767578125, 0.03448486328125, - 0.011016845703125, -0.0061187744140625, 0.0125732421875, - 0.007537841796875, 0.002048492431640625, -0.0272369384765625, - 0.03173828125, 0.01447296142578125, 0.03839111328125, - -0.02783203125, -0.0063323974609375, 0.0008225440979003906, - 0.00875091552734375, -0.00853729248046875, 0.06134033203125, - -0.0401611328125, -0.021484375, 0.0031414031982421875, - 0.029296875, 0.003040313720703125, -0.0085601806640625, - -0.0253448486328125, 0.0270233154296875, -0.035919189453125, - 0.0270233154296875, -0.0033855438232421875, - -0.01428985595703125, 0.0377197265625, 0.0011196136474609375, - -0.00563812255859375, -0.03594970703125, -0.0191650390625, - -0.0196075439453125, 0.0004887580871582031, 0.0313720703125, - -0.040771484375, 0.0192108154296875, 0.064208984375, - 0.0094451904296875, -0.05694580078125, 0.01303863525390625, - -0.0164947509765625, -0.052764892578125, -0.0163116455078125, - -0.018951416015625, -0.036712646484375, -0.0084228515625, - -0.0016994476318359375, -0.005573272705078125, - -0.03851318359375, 0.07061767578125, -0.049896240234375, - -0.027740478515625, 0.0287628173828125, -0.028839111328125, - 0.04705810546875, -0.0303955078125, -0.0250396728515625, - -0.008270263671875, -0.047637939453125, -0.0262298583984375, - -0.0643310546875, -0.0024242401123046875, 0.0355224609375, - -0.047149658203125, 0.032012939453125, 0.03704833984375, - 0.043701171875, -0.05511474609375, 0.01226806640625, - -0.006153106689453125, 0.012237548828125, 0.00476837158203125, - 0.00540924072265625, 0.02252197265625, -0.03302001953125, - -0.0009093284606933594, -0.0104217529296875, - -0.00444793701171875, -0.0295257568359375, - -0.0172882080078125, 0.002864837646484375, -0.039031982421875, - 0.01010894775390625, -0.006862640380859375, 0.042938232421875, - 0.028167724609375, 0.007511138916015625, -0.0171661376953125, - 0.0216217041015625, -0.022247314453125, 0.00659942626953125, - -0.03790283203125, 0.01537322998046875, - -0.0037822723388671875, 0.01319122314453125, - 0.054046630859375, 0.0298919677734375, -0.07373046875, - 0.033111572265625, -0.021514892578125, 0.03753662109375, - 0.004749298095703125, -0.058837890625, 0.01134490966796875, - 0.0028514862060546875, -0.007328033447265625, - -0.01137542724609375, -0.06524658203125, -0.0193023681640625, - 0.03265380859375, 0.00508880615234375, 0.0213623046875, - 0.0005936622619628906, -0.0084991455078125, - 0.0110015869140625, 0.01507568359375, 0.0099639892578125, - 0.01019287109375, -0.01430511474609375, 0.0016298294067382812, - 0.047576904296875, -0.017364501953125, 0.01197052001953125, - -0.03570556640625, -0.0462646484375, -0.0174102783203125, - 0.055755615234375, 0.0299072265625, -0.045867919921875, - 0.060028076171875, -0.031219482421875, -0.002826690673828125, - -0.0088043212890625, -0.01319122314453125, - -0.0246429443359375, 0.0300750732421875, 0.0197296142578125, - 0.06988525390625, 0.00811767578125, -0.03424072265625, - 0.004909515380859375, 0.046600341796875, - -0.0038928985595703125, 0.044769287109375, 0.032745361328125, - 0.018707275390625, 0.024261474609375, 0.0193939208984375, - -0.038818359375, -0.031280517578125, 0.015869140625, - 0.0335693359375, 0.0224456787109375, 0.02581787109375, - 0.007049560546875, 0.00487518310546875, -0.059600830078125, - 0.03875732421875, -0.0494384765625, -0.06390380859375, - -0.0011310577392578125, 0.021942138671875, - -0.0187530517578125, 0.0063018798828125, -0.0794677734375, - -0.00656890869140625, 0.00356292724609375, - 0.0019741058349609375, -0.0234832763671875, - 0.0159759521484375, 0.052032470703125, -0.038421630859375, - 0.01377105712890625, -0.00019228458404541016, - 0.0215606689453125, -0.006824493408203125, -0.053955078125, - -0.0105743408203125, -0.0272216796875, -0.02362060546875, - 0.023193359375, 0.0016756057739257812, 0.0499267578125, - 0.0129547119140625, 0.033172607421875, 0.08331298828125, - 0.0103759765625, 0.003932952880859375, 0.00826263427734375, - -0.0260772705078125, 0.0300445556640625, -0.0252685546875, - 0.0322265625, 0.01165008544921875, -0.01071929931640625, - -0.0037631988525390625, -0.02313232421875, 0.0157470703125, - 0.0116424560546875, 0.0026683807373046875, 0.0199127197265625, - 0.0246124267578125, -0.01528167724609375, 0.004302978515625, - 0.032928466796875, 0.01409149169921875, -0.024322509765625, - -0.007480621337890625, 0.04766845703125, -0.04901123046875, - 0.0227203369140625, -0.0255889892578125, -0.014129638671875, - -0.0164337158203125, 0.0095062255859375, 0.01837158203125, - 0.01837158203125, 0.05340576171875, 0.00007402896881103516, - 0.03070068359375, 0.003925323486328125, -0.0161285400390625, - -0.00675201416015625, -0.0189666748046875, - -0.01511383056640625, -0.0167999267578125, 0.0219573974609375, - -0.0273590087890625, -0.034515380859375, -0.01702880859375, - -0.024627685546875, 0.045806884765625, -0.03558349609375, - -0.0439453125, -0.0007295608520507812, -0.0037212371826171875, - -0.00934600830078125, -0.00396728515625, 0.0269317626953125, - -0.01520538330078125, -0.00968170166015625, 0.063232421875, - 0.0379638671875, 0.0172882080078125, 0.01885986328125, - 0.036865234375, 0.00424957275390625, 0.010406494140625, - -0.01483917236328125, -0.022186279296875, - -0.01180267333984375, 0.0484619140625, 0.01297760009765625, - 0.0174713134765625, 0.020751953125, 0.01824951171875, - 0.01013946533203125, -0.00399017333984375, -0.029998779296875, - 0.0654296875, -0.005413055419921875, 0.0135650634765625, - 0.032470703125, -0.03521728515625, -0.04522705078125, - 0.0218505859375, 0.003498077392578125, -0.002376556396484375, - -0.0419921875, -0.0294647216796875, -0.003753662109375, - 0.01380157470703125, 0.0174560546875, -0.0234375, - 0.01435089111328125, 0.0014057159423828125, - 0.0113372802734375, 0.000843048095703125, -0.035858154296875, - -0.01200103759765625, 0.0024013519287109375, - 0.0251007080078125, -0.0193023681640625, -0.0242462158203125, - 0.01535797119140625, -0.0369873046875, 0.00672149658203125, - -0.0191650390625, 0.022369384765625, -0.0075225830078125, - 0.0176544189453125, -0.0187530517578125, 0.0154266357421875, - 0.028350830078125, -0.00547027587890625, 0.0279541015625, - -0.0240631103515625, 0.02398681640625, -0.0128021240234375, - -0.007293701171875, 0.0142974853515625, 0.03460693359375, - -0.032012939453125, 0.005584716796875, -0.00534820556640625, - 0.04705810546875, 0.018890380859375, 0.0184326171875, - -0.01000213623046875, -0.0172882080078125, 0.0244140625, - 0.01416778564453125, 0.045562744140625, 0.012786865234375, - -0.0233917236328125, -0.025146484375, -0.00409698486328125, - -0.019775390625, 0.00835418701171875, -0.0301971435546875, - 0.041046142578125, 0.012481689453125, -0.0015058517456054688, - 0.0059967041015625, -0.00667572021484375, 0.01248931884765625, - 0.02105712890625, 0.04742431640625, 0.0295562744140625, - -0.04473876953125, 0.05364990234375, 0.021392822265625, - -0.01189422607421875, 0.003597259521484375, - 0.004817962646484375, 0.03076171875, -0.0034389495849609375, - 0.0184326171875, -0.0283966064453125, 0.05914306640625, - -0.0222625732421875, -0.0287017822265625, 0.028778076171875, - -0.0350341796875, -0.0222015380859375, 0.02850341796875, - 0.022308349609375, 0.01444244384765625, 0.04388427734375, - 0.028167724609375, -0.04718017578125, -0.03582763671875, - 0.04150390625, 0.003902435302734375, 0.0093536376953125, - -0.02203369140625, -0.004726409912109375, -0.0140228271484375, - -0.049285888671875, -0.0005688667297363281, -0.006591796875, - 0.0171356201171875, -0.01517486572265625, 0.0199432373046875, - -0.013031005859375, -0.0202789306640625, - -0.002544403076171875, 0.005962371826171875, 0.0185546875, - -0.01016998291015625, -0.021697998046875, - -0.01117706298828125, -0.0189361572265625, 0.0223541259765625, - 0.0265960693359375, -0.0296173095703125, 0.019287109375, - -0.0141754150390625, 0.01216888427734375, 0.034698486328125, - -0.033782958984375, 0.0007343292236328125, -0.034149169921875, - 0.0001068115234375, 0.0009908676147460938, 0.0228271484375, - 0.00920867919921875, -0.01145172119140625, - -0.004093170166015625, 0.00984954833984375, - -0.0168609619140625, -0.039886474609375, - -0.007373809814453125, 0.007198333740234375, - 0.025665283203125, 0.01123046875, 0.0092315673828125, - -0.03607177734375, 0.0251922607421875, -0.01788330078125, - -0.007472991943359375, -0.03778076171875, -0.0200042724609375, - -0.01473236083984375, -0.01132965087890625, 0.0115966796875, - -0.0003600120544433594, -0.014190673828125, - -0.0032367706298828125, 0.0017652511596679688, - -0.023895263671875, -0.02532958984375, -0.0113525390625, - 0.0139923095703125, 0.01377105712890625, 0.01204681396484375, - 0.00659942626953125, -0.0007576942443847656, - -0.05926513671875, 0.007549285888671875, -0.033905029296875, - 0.00885009765625, 0.00292205810546875, -0.023193359375, - 0.022186279296875, 0.06939697265625, -0.02947998046875, - -0.0032253265380859375, -0.009796142578125, - -0.0232391357421875, -0.0031147003173828125, - -0.0014448165893554688, 0.0133056640625, - -0.003246307373046875, 0.033447265625, -0.0108184814453125, - 0.02032470703125, 0.00016582012176513672, - -0.0002765655517578125, -0.0404052734375, 0.00383758544921875, - 0.01140594482421875, -0.025543212890625, - -0.005756378173828125, 0.0184478759765625, -0.027191162109375, - 0.010162353515625, -0.01020050048828125, -0.0146636962890625, - -0.01611328125, -0.0227813720703125, 0.0262298583984375, - -0.036590576171875, -0.0228118896484375, 0.01200103759765625, - 0.03369140625, -0.04632568359375, -0.012908935546875, - -0.033050537109375, -0.035858154296875, 0.001895904541015625, - -0.00644683837890625, 0.0162811279296875, 0.0193023681640625, - -0.00662994384765625, -0.01361846923828125, 0.04168701171875, - -0.0478515625, 0.01113128662109375, -0.018890380859375, - 0.00014603137969970703, -0.015716552734375, - -0.01471710205078125, -0.01258087158203125, 0.00994873046875, - -0.028350830078125, 0.05316162109375, -0.02044677734375, - -0.0269927978515625, -0.0506591796875, -0.0142364501953125, - 0.0009512901306152344, 0.00801849365234375, - 0.0181732177734375, 0.04010009765625, 0.01983642578125, - -0.028778076171875, -0.004695892333984375, - 0.0011377334594726562, 0.0002841949462890625, - -0.007450103759765625, -0.038360595703125, - -0.01195526123046875, -0.037689208984375, 0.03973388671875, - -0.0227813720703125, -0.0092620849609375, -0.038116455078125, - 0.0167388916015625, 0.01529693603515625, - -0.002117156982421875, -0.01233673095703125, - -0.00740814208984375, -0.04132080078125, 0.03277587890625, - -0.026519775390625, 0.033172607421875, 0.0306549072265625, - -0.0022640228271484375, 0.0081024169921875, - -0.0269317626953125, 0.020233154296875, 0.0038509368896484375, - 0.0226898193359375, 0.00959014892578125, 0.039459228515625, - 0.003368377685546875, -0.0233306884765625, 0.0083160400390625, - 0.01971435546875, -0.035430908203125, 0.0504150390625, - 0.006153106689453125, -0.05767822265625, 0.00940704345703125, - -0.005260467529296875, 0.01422882080078125, - -0.0123748779296875, -0.00731658935546875, - 0.006916046142578125, -0.0230865478515625, 0.05035400390625, - -0.0291595458984375, 0.022705078125, -0.03564453125, - 0.039642333984375, 0.004154205322265625, 0.03436279296875, - 0.0035457611083984375, -0.0321044921875, -0.025146484375, - 0.003063201904296875, -0.030975341796875, -0.033599853515625, - 0.0011835098266601562, -0.00994873046875, -0.018798828125, - -0.03802490234375, -0.0288848876953125, 0.05987548828125, - 0.005603790283203125, -0.032440185546875, - 0.0026149749755859375, 0.011993408203125, - 0.001346588134765625, 0.0190887451171875, -0.009613037109375, - 0.01007080078125, -0.0171356201171875, -0.0546875, - -0.007312774658203125, 0.0242767333984375, 0.04388427734375, - -0.00441741943359375, -0.030609130859375, -0.0135498046875, - -0.0357666015625, -0.0108795166015625, 0.0157928466796875, - 0.0311126708984375, 0.01108551025390625, - 0.0009121894836425781, 0.01349639892578125, - -0.005985260009765625, -0.031585693359375, 0.019256591796875, - -0.029876708984375, 0.02435302734375, -0.0038127899169921875, - -0.036712646484375, -0.033660888671875, 0.0157012939453125, - 0.027618408203125, -0.0020122528076171875, 0.0290679931640625, - 0.01519775390625, -0.025604248046875, -0.01172637939453125, - -0.003452301025390625, -0.0303955078125, -0.00453948974609375, - -0.027496337890625, -0.01751708984375, 0.0164794921875, - 0.049224853515625, -0.044769287109375, 0.0099639892578125, - 0.03118896484375, -0.033203125, 0.0185546875, - -0.03277587890625, 0.02734375, -0.038726806640625, - -0.053253173828125, 0.024932861328125, 0.00039267539978027344, - -0.016571044921875, -0.0008702278137207031, - 0.006275177001953125, -0.021728515625, -0.004669189453125, - 0.031402587890625, -0.0042877197265625, -0.0088653564453125, - -0.010894775390625, 0.032623291015625, -0.046173095703125, - -0.0183563232421875, -0.0092620849609375, 0.040618896484375, - 0.006977081298828125, 0.0242156982421875, - 0.007274627685546875, 0.0134124755859375, 0.00235748291015625, - 0.00870513916015625, 0.0201873779296875, -0.033050537109375, - 0.05487060546875, 0.0231170654296875, -0.0002980232238769531, - -0.050750732421875, -0.0233917236328125, -0.01499176025390625, - 0.02587890625, 0.00461578369140625, -0.01174163818359375, - 0.026611328125, -0.0006389617919921875, -0.002239227294921875, - -0.0010595321655273438, -0.01160430908203125, - 0.008819580078125, 0.01372528076171875, -0.01226806640625, - 0.002239227294921875, -0.0183258056640625, 0.0221405029296875, - 0.0283203125, 0.0421142578125, -0.00855255126953125, - -0.034881591796875, 0.0240020751953125, 0.0377197265625, - -0.0155029296875, -0.03912353515625, 0.055145263671875, - 0.011260986328125, 0.004222869873046875, - 0.0019702911376953125, -0.0081024169921875, - 0.0102691650390625, -0.0025806427001953125, - -0.0022258758544921875, -0.00988006591796875, - -0.013153076171875, -0.035858154296875, 0.0132598876953125, - -0.0107879638671875, 0.019256591796875, 0.009033203125, - 0.00010395050048828125, 0.01342010498046875, -0.00390625, - 0.0177001953125, 0.028350830078125, 0.0125732421875, - 0.00830841064453125, 0.04632568359375, -0.054901123046875, - -0.051239013671875, 0.031005859375, 0.02239990234375, - 0.0031948089599609375, -0.01383209228515625, -0.0230712890625, - -0.00870513916015625, 0.03656005859375, -0.01050567626953125, - -0.031768798828125, -0.00438690185546875, -0.033843994140625, - -0.00930023193359375, 0.00926971435546875, -0.0279541015625, - 0.01134490966796875, 0.02227783203125, 0.017974853515625, - -0.006488800048828125, -0.0110931396484375, - -0.005939483642578125, 0.005809783935546875, -0.0125732421875, - -0.0092620849609375, -0.0013303756713867188, - -0.0197906494140625, -0.005931854248046875, -0.02630615234375, - -0.01263427734375, -0.006008148193359375, 0.017303466796875, - -0.0138702392578125, -0.0419921875, 0.0295562744140625, - -0.015716552734375, 0.0291748046875, 0.0355224609375, - 0.00782012939453125, -0.013824462890625, - -0.0011453628540039062, -0.009033203125, - -0.0012044906616210938, 0.002529144287109375, - 0.0003771781921386719, 0.01983642578125, -0.0207061767578125, - 0.01340484619140625, 0.003055572509765625, 0.031707763671875, - -0.0019130706787109375, -0.05224609375, -0.023223876953125, - -0.012176513671875, -0.01666259765625, -0.040008544921875, - -0.041229248046875, -0.01800537109375, -0.0038776397705078125, - 0.005023956298828125, -0.0029544830322265625, - 0.03387451171875, -0.011199951171875, 0.0279388427734375, - -0.01776123046875, 0.0246124267578125, 0.032867431640625, - 0.0034275054931640625, 0.0240325927734375, -0.014434814453125, - 0.040771484375, -0.0123138427734375, 0.006633758544921875, - -0.00806427001953125, 0.006805419921875, -0.00426483154296875, - 0.0221405029296875, -0.024749755859375, 0.040069580078125, - 0.013824462890625, 0.0361328125, -0.0028667449951171875, - -0.0037746429443359375, 0.06475830078125, 0.030303955078125, - -0.043304443359375, -0.04559326171875, 0.0207366943359375, - -0.0275115966796875, -0.0256805419921875, -0.01324462890625, - 0.004016876220703125, 0.050048828125, -0.01021575927734375, - -0.0172119140625, 0.048004150390625, 0.0139617919921875, - -0.0207061767578125, -0.0168914794921875, 0.0146026611328125, - 0.0286407470703125, 0.037322998046875, -0.0244598388671875, - 0.006633758544921875, -0.0207366943359375, 0.03302001953125, - 0.005397796630859375, -0.0284423828125, 0.0184783935546875, - -0.01146697998046875, 0.0014848709106445312, - -0.005641937255859375, 0.03778076171875, 0.0264434814453125, - 0.0123748779296875, -0.01178741455078125, 0.03521728515625, - 0.013092041015625, 0.01140594482421875, 0.00672149658203125, - 0.024505615234375, 0.019775390625, -0.0177154541015625, - -0.0242156982421875, 0.02166748046875, -0.0004470348358154297, - 0.00811004638671875, -0.013153076171875, - 0.0012683868408203125, -0.01226806640625, - 0.003078460693359375, 0.041107177734375, 0.0124969482421875, - -0.030029296875, -0.0092620849609375, -0.01904296875, - 0.00907135009765625, -0.0301055908203125, - -0.007450103759765625, -0.01367950439453125, - 0.0297698974609375, 0.032867431640625, -0.0117034912109375, - 0.0015239715576171875, 0.045867919921875, 0.00350189208984375, - -0.034942626953125, 0.023406982421875, 0.03289794921875, - -0.0280914306640625, 0.018035888671875, 0.010223388671875, - -0.00412750244140625, -0.003978729248046875, - -0.024566650390625, -0.01024627685546875, -0.031585693359375, - -0.05474853515625, 0.016815185546875, 0.0265045166015625, - 0.02679443359375, -0.01230621337890625, -0.014892578125, - 0.02044677734375, 0.0153656005859375, -0.06256103515625, - -0.0162506103515625, 0.0221099853515625, -0.017120361328125, - -0.015594482421875, -0.035980224609375, 0.0192718505859375, - 0.043701171875, 0.0413818359375, 0.03314208984375, - 0.0001302957534790039, -0.00060272216796875, - -0.0177154541015625, -0.037384033203125, 0.037750244140625, - 0.0265045166015625, 0.01338958740234375, 0.0231170654296875, - 0.04119873046875, -0.0037441253662109375, -0.0226898193359375, - -0.000499725341796875, 0.00890350341796875, - -0.002899169921875, 0.007648468017578125, - 0.007366180419921875, -0.0113983154296875, - 0.003940582275390625, -0.007781982421875, -0.0400390625, - -0.0231781005859375, 0.007110595703125, -0.0287017822265625, - 0.032440185546875, 0.0176849365234375, -0.01515960693359375, - 0.00826263427734375, -0.0146636962890625, 0.01073455810546875, - 0.007213592529296875, 0.0014743804931640625, 0.03265380859375, - -0.00846099853515625, 0.03009033203125, 0.0013189315795898438, - -0.01103973388671875, -0.01983642578125, 0.0136566162109375, - -0.0312347412109375, -0.0228729248046875, 0.0274658203125, - 0.00033664703369140625, 0.050811767578125, 0.0234222412109375, - 0.011016845703125, -0.01800537109375, -0.0154876708984375, - 0.016876220703125, 0.006988525390625, 0.00920867919921875, - -0.01349639892578125, -0.0190887451171875, 0.028564453125, - 0.0092926025390625, 0.03021240234375, -0.01274871826171875, - 0.0049285888671875, 0.0024471282958984375, -0.06781005859375, - -0.007171630859375, 0.002124786376953125, 0.00334930419921875, - -0.0007500648498535156, 0.01947021484375, 0.0095367431640625, - -0.0262298583984375, -0.00958251953125, 0.00647735595703125, - 0.051727294921875, -0.0177154541015625, 0.0238189697265625, - -0.021453857421875, 0.030426025390625, -0.01262664794921875, - -0.0307159423828125, -0.037078857421875, 0.0223541259765625, - 0.03448486328125, -0.020599365234375, 0.0041046142578125, - -0.038787841796875, -0.0221710205078125, -0.0249786376953125, - -0.0214385986328125, -0.0003192424774169922, - 0.0036640167236328125, 0.0107574462890625, 0.0152435302734375, - -0.0162811279296875, -0.0222930908203125, 0.01052093505859375, - -0.0185699462890625, -0.01507568359375, 0.013458251953125, - 0.0023326873779296875, 0.00759124755859375, - -0.0022640228271484375, 0.0276336669921875, - 0.0083465576171875, 0.0155181884765625, -0.00701904296875, - 0.00833892822265625, -0.01355743408203125, 0.02069091796875, - 0.050933837890625, 0.01476287841796875, 0.0205841064453125, - -0.004924774169921875, 0.038299560546875, 0.0301361083984375, - 0.055267333984375, 0.00765228271484375, 0.00782012939453125, - -0.0016546249389648438, 0.0191497802734375, - 0.0026912689208984375, -0.0172119140625, 0.0219879150390625, - -0.0187835693359375, 0.035064697265625, -0.010101318359375, - -0.048065185546875, 0.0150604248046875, -0.031707763671875, - 0.0182647705078125, 0.02392578125, 0.043548583984375, - 0.01558685302734375, -0.0275115966796875, 0.01690673828125, - -0.003688812255859375, 0.01544952392578125, - -0.0037899017333984375, -0.0030841827392578125, - 0.0343017578125, -0.003437042236328125, -0.0285797119140625, - -0.03607177734375, -0.0008149147033691406, -0.01275634765625, - -0.036376953125, -0.007778167724609375, -0.04376220703125, - 0.027099609375, -0.05804443359375, -0.0144195556640625, - 0.0072479248046875, 0.045013427734375, 0.007221221923828125, - 0.025390625, 0.054718017578125, 0.00618743896484375, - -0.0198974609375, 0.0101470947265625, -0.035919189453125, - 0.00145721435546875, -0.00609588623046875, -0.027557373046875, - -0.01454925537109375, -0.0137176513671875, -0.002197265625, - -0.0038280487060546875, 0.006763458251953125, - 0.00432586669921875, -0.0203094482421875, 0.0181732177734375, - -0.00463104248046875, -0.0200042724609375, 0.03448486328125, - -0.0709228515625, -0.028533935546875, 0.0260162353515625, - -0.044677734375, 0.0212249755859375, 0.032501220703125, - 0.0163116455078125, -0.01091766357421875, - -0.01284027099609375, -0.028900146484375, - 0.0009822845458984375, -0.0187835693359375, - 0.0098114013671875, 0.0172119140625, 0.0307159423828125, - 0.004657745361328125, -0.0228271484375, 0.01180267333984375, - -0.028472900390625, -0.0211639404296875, -0.03936767578125, - 0.0176239013671875, -0.038238525390625, -0.03961181640625, - 0.0026645660400390625, -0.01483154296875, - 0.005336761474609375, 0.00011247396469116211, - 0.01042938232421875, -0.01023101806640625, -0.020721435546875, - -0.0256500244140625, 0.022186279296875, -0.01110076904296875, - 0.0234222412109375, -0.0209197998046875, - -0.0036983489990234375, -0.037628173828125, - 0.0189056396484375, 0.0112762451171875, -0.0162200927734375, - 0.00176239013671875, 0.01241302490234375, - -0.0038700103759765625, -0.0017251968383789062, - 0.043731689453125, -0.0298004150390625, 0.0050811767578125, - -0.0214385986328125, -0.0266265869140625, - -0.01386260986328125, 0.006877899169921875, - -0.0007877349853515625, 0.03021240234375, 0.051544189453125, - -0.04302978515625, -0.037811279296875, -0.0004911422729492188, - 0.0103607177734375, 0.0136260986328125, 0.025604248046875, - 0.0211639404296875, -0.0160675048828125, -0.022796630859375, - -0.004734039306640625, 0.013763427734375, - -0.01389312744140625, 0.0256195068359375, - 0.0035343170166015625, -0.026397705078125, - -0.0199432373046875, -0.018646240234375, -0.0250701904296875, - 0.0275421142578125, 0.0146026611328125, -0.002964019775390625, - 0.03839111328125, -0.0166168212890625, 0.00832366943359375, - 0.060455322265625, 0.0234527587890625, 0.0117950439453125, - 0.006397247314453125, -0.014068603515625, - -0.007488250732421875, -0.00616455078125, -0.0210723876953125, - 0.0007615089416503906, -0.01064300537109375, 0.00775146484375, - 0.016632080078125, 0.01084136962890625, -0.01355743408203125, - 0.0091552734375, 0.03436279296875, -0.013916015625, - -0.037353515625, -0.029632568359375, 0.018524169921875, - -0.0230712890625, 0.01107025146484375, -0.021484375, - 0.0247955322265625, -0.00873565673828125, 0.0184783935546875, - 0.00930023193359375, 0.0202484130859375, 0.0223541259765625, - 0.00608062744140625, 0.035430908203125, -0.035614013671875, - -0.0004277229309082031, -0.003662109375, 0.00539398193359375, - 0.0024127960205078125, 0.007221221923828125, - -0.0256805419921875, 0.00926971435546875, 0.00698089599609375, - -0.0077667236328125, 0.014862060546875, -0.031402587890625, - 0.0160675048828125, -0.0022525787353515625, - 0.01468658447265625, 0.01129913330078125, 0.019622802734375, - -0.0193939208984375, 0.00928497314453125, 0.013824462890625, - 0.0013227462768554688, 0.0131072998046875, - -0.0032062530517578125, -0.0093841552734375, - 0.0257415771484375, 0.0307464599609375, 0.02386474609375, - 0.0018949508666992188, -0.01251220703125, -0.010223388671875, - -0.035614013671875, 0.0228118896484375, - -0.000028192996978759766, 0.0123138427734375, 0.005126953125, - -0.010589599609375, 0.00533294677734375, 0.009490966796875, - 0.00566864013671875, -0.005893707275390625, - 0.01282501220703125, -0.0113372802734375, 0.00579071044921875, - 0.01239776611328125, -0.0068359375, 0.04034423828125, - -0.011077880859375, -0.0012264251708984375, 0.015899658203125, - -0.0450439453125, -0.01468658447265625, 0.0083160400390625, - -0.0121612548828125, -0.0027618408203125, - 0.0014629364013671875, -0.004535675048828125, - -0.0034885406494140625, -0.01180267333984375, 0.0029296875, - -0.025909423828125, 0.00821685791015625, - -0.0020427703857421875, 0.014404296875, 0.036346435546875, - -0.01197052001953125, -0.03778076171875, 0.0245819091796875, - -0.035858154296875, 0.00846099853515625, 0.0182342529296875, - 0.0088653564453125, -0.0467529296875, 0.01409912109375, - 0.01203155517578125, -0.0232696533203125, -0.0079498291015625, - 0.0123291015625, -0.0310516357421875, 0.00372314453125, - 0.0136260986328125, 0.00312042236328125, - 0.0007691383361816406, 0.004894256591796875 - ], - "index": 0, - "object": "embedding" - } - ], - "model": "text-embedding-3-small", - "object": "list", - "usage": { - "prompt_tokens": 7, - "total_tokens": 7 - } - } - }, - "headers": { - "access-control-expose-headers": "X-Request-ID, CF-Ray, CF-Ray", - "alt-svc": "h3=\":443\"; ma=86400", - "cf-cache-status": "DYNAMIC", - "cf-ray": "a29c58821f188029-IAD", - "connection": "keep-alive", - "content-encoding": "gzip", - "content-type": "application/json", - "date": "Wed, 12 Aug 2026 03:20:42 GMT", - "openai-organization": "braintrust-data", - "openai-processing-ms": "95", - "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": "10000", - "x-ratelimit-limit-tokens": "10000000", - "x-ratelimit-remaining-requests": "9999", - "x-ratelimit-remaining-tokens": "9999993", - "x-ratelimit-reset-requests": "6ms", - "x-ratelimit-reset-tokens": "0s", - "x-request-id": "req_1b8ae0d06d8d4e85b5adf955e9278634" - }, - "status": 200, - "statusText": "OK" - } - }, - { - "callIndex": 2, - "id": "f7a3ad27b5067191", - "matchKey": "POST api.openai.com/v1/chat/completions", - "recordedAt": "2026-08-12T03:20:43.286Z", - "request": { - "body": { - "kind": "json", - "value": { - "max_tokens": 128, - "messages": [ - { - "content": "You must inspect live weather via the provided get_weather tool before responding.", - "role": "system" - }, - { - "content": "Use the get_weather tool for Paris, France. If you do not call the tool, the answer is invalid.", - "role": "user" - } - ], - "model": "gpt-4o-mini-2024-07-18", - "temperature": 0, - "tool_choice": "auto", - "tools": [ - { - "function": { - "description": "Get the weather for a location", - "name": "get_weather", - "parameters": { - "$schema": "http://json-schema.org/draft-07/schema#", - "additionalProperties": false, - "properties": { - "location": { - "description": "The city and country", - "type": "string" - } - }, - "required": ["location"], - "type": "object" - } - }, - "type": "function" - } - ] - } - }, - "headers": {}, - "method": "POST", - "url": "https://api.openai.com/v1/chat/completions" - }, - "response": { - "body": { - "kind": "json", - "value": { - "choices": [ - { - "finish_reason": "tool_calls", - "index": 0, - "logprobs": null, - "message": { - "annotations": [], - "content": null, - "refusal": null, - "role": "assistant", - "tool_calls": [ - { - "function": { - "arguments": "{\"location\":\"Paris, France\"}", - "name": "get_weather" - }, - "id": "call_7m4SqfMove1q1WJKoZ9L8vBF", - "type": "function" - } - ] - } - } - ], - "created": 1786504842, - "id": "chatcmpl-EBtoAmVcdUeW509E4AjMQHaUMKh64", - "model": "gpt-4o-mini-2024-07-18", - "object": "chat.completion", - "service_tier": "default", - "system_fingerprint": "fp_98fa25fd02", - "usage": { - "completion_tokens": 16, - "completion_tokens_details": { - "accepted_prediction_tokens": 0, - "audio_tokens": 0, - "reasoning_tokens": 0, - "rejected_prediction_tokens": 0 - }, - "prompt_tokens": 87, - "prompt_tokens_details": { - "audio_tokens": 0, - "cached_tokens": 0 - }, - "total_tokens": 103 - } - } - }, - "headers": { - "access-control-expose-headers": "X-Request-ID, CF-Ray, CF-Ray", - "alt-svc": "h3=\":443\"; ma=86400", - "cf-cache-status": "DYNAMIC", - "cf-ray": "a29c58833ff58029-IAD", - "connection": "keep-alive", - "content-encoding": "gzip", - "content-type": "application/json", - "date": "Wed, 12 Aug 2026 03:20:43 GMT", - "openai-organization": "braintrust-data", - "openai-processing-ms": "461", - "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": "149999952", - "x-ratelimit-reset-requests": "2ms", - "x-ratelimit-reset-tokens": "0s", - "x-request-id": "req_441d4ebf09e94dbc93999d7b512958f2" - }, - "status": 200, - "statusText": "OK" - } - }, - { - "callIndex": 3, - "id": "26ad5653def30060", - "matchKey": "POST api.openai.com/v1/chat/completions", - "recordedAt": "2026-08-12T03:20:43.735Z", - "request": { - "body": { - "kind": "json", - "value": { - "max_tokens": 32, - "messages": [ - { - "content": "Return JSON with {\"city\":\"Paris\"}.", - "role": "user" - } - ], - "model": "gpt-4o-mini-2024-07-18", - "temperature": 0, - "tool_choice": { - "function": { - "name": "json" - }, - "type": "function" - }, - "tools": [ - { - "function": { - "description": "Respond with a JSON object.", - "name": "json", - "parameters": { - "$schema": "http://json-schema.org/draft-07/schema#", - "additionalProperties": false, - "properties": { - "city": { - "type": "string" - } - }, - "required": ["city"], - "type": "object" - } - }, - "type": "function" - } - ] - } - }, - "headers": {}, - "method": "POST", - "url": "https://api.openai.com/v1/chat/completions" - }, - "response": { - "body": { - "kind": "json", - "value": { - "choices": [ - { - "finish_reason": "stop", - "index": 0, - "logprobs": null, - "message": { - "annotations": [], - "content": null, - "refusal": null, - "role": "assistant", - "tool_calls": [ - { - "function": { - "arguments": "{\"city\":\"Paris\"}", - "name": "json" - }, - "id": "call_NaJO7RcNWWu9cXZ0MghmDigY", - "type": "function" - } - ] - } - } - ], - "created": 1786504843, - "id": "chatcmpl-EBtoBrlB2T86JYR73gtUJwn7DAbYf", - "model": "gpt-4o-mini-2024-07-18", - "object": "chat.completion", - "service_tier": "default", - "system_fingerprint": "fp_9afcdcbeed", - "usage": { - "completion_tokens": 5, - "completion_tokens_details": { - "accepted_prediction_tokens": 0, - "audio_tokens": 0, - "reasoning_tokens": 0, - "rejected_prediction_tokens": 0 - }, - "prompt_tokens": 59, - "prompt_tokens_details": { - "audio_tokens": 0, - "cached_tokens": 0 - }, - "total_tokens": 64 - } - } - }, - "headers": { - "access-control-expose-headers": "X-Request-ID, CF-Ray, CF-Ray", - "alt-svc": "h3=\":443\"; ma=86400", - "cf-cache-status": "DYNAMIC", - "cf-ray": "a29c58868ac18029-IAD", - "connection": "keep-alive", - "content-encoding": "gzip", - "content-type": "application/json", - "date": "Wed, 12 Aug 2026 03:20:43 GMT", - "openai-organization": "braintrust-data", - "openai-processing-ms": "380", - "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-reset-requests": "2ms", - "x-ratelimit-reset-tokens": "0s", - "x-request-id": "req_7ae5bcb488284eca9142bcc527b04043" - }, - "status": 200, - "statusText": "OK" - } - }, - { - "callIndex": 4, - "id": "1e0515e907a8bb36", - "matchKey": "POST api.openai.com/v1/chat/completions", - "recordedAt": "2026-08-12T03:20:44.319Z", - "request": { - "body": { - "kind": "json", - "value": { - "max_tokens": 32, - "messages": [ - { - "content": "Stream JSON with {\"city\":\"Paris\"}.", - "role": "user" - } - ], - "model": "gpt-4o-mini-2024-07-18", - "stream": true, - "temperature": 0, - "tool_choice": { - "function": { - "name": "json" - }, - "type": "function" - }, - "tools": [ - { - "function": { - "description": "Respond with a JSON object.", - "name": "json", - "parameters": { - "$schema": "http://json-schema.org/draft-07/schema#", - "additionalProperties": false, - "properties": { - "city": { - "type": "string" - } - }, - "required": ["city"], - "type": "object" - } - }, - "type": "function" - } - ] - } - }, - "headers": {}, - "method": "POST", - "url": "https://api.openai.com/v1/chat/completions" - }, - "response": { - "body": { - "chunks": [ - "data: {\"id\":\"chatcmpl-EBtoCBiLNVza52zxcVcNSx4yVdz3P\",\"object\":\"chat.completion.chunk\",\"created\":1786504844,\"model\":\"gpt-4o-mini-2024-07-18\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_9afcdcbeed\",\"choices\":[{\"index\":0,\"delta\":{\"role\":\"assistant\",\"content\":null,\"tool_calls\":[{\"index\":0,\"id\":\"call_jdXI9wWsrTj9Hoenr1l6mYu9\",\"type\":\"function\",\"function\":{\"name\":\"json\",\"arguments\":\"\"}}],\"refusal\":null},\"logprobs\":null,\"finish_reason\":null}],\"obfuscation\":\"OQrXmj1E\"}", - "data: {\"id\":\"chatcmpl-EBtoCBiLNVza52zxcVcNSx4yVdz3P\",\"object\":\"chat.completion.chunk\",\"created\":1786504844,\"model\":\"gpt-4o-mini-2024-07-18\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_9afcdcbeed\",\"choices\":[{\"index\":0,\"delta\":{\"tool_calls\":[{\"index\":0,\"function\":{\"arguments\":\"{\\\"\"}}]},\"logprobs\":null,\"finish_reason\":null}],\"obfuscation\":\"C9WUYk5oWce\"}", - "data: {\"id\":\"chatcmpl-EBtoCBiLNVza52zxcVcNSx4yVdz3P\",\"object\":\"chat.completion.chunk\",\"created\":1786504844,\"model\":\"gpt-4o-mini-2024-07-18\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_9afcdcbeed\",\"choices\":[{\"index\":0,\"delta\":{\"tool_calls\":[{\"index\":0,\"function\":{\"arguments\":\"city\"}}]},\"logprobs\":null,\"finish_reason\":null}],\"obfuscation\":\"8yFDeEuspJ\"}", - "data: {\"id\":\"chatcmpl-EBtoCBiLNVza52zxcVcNSx4yVdz3P\",\"object\":\"chat.completion.chunk\",\"created\":1786504844,\"model\":\"gpt-4o-mini-2024-07-18\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_9afcdcbeed\",\"choices\":[{\"index\":0,\"delta\":{\"tool_calls\":[{\"index\":0,\"function\":{\"arguments\":\"\\\":\\\"\"}}]},\"logprobs\":null,\"finish_reason\":null}],\"obfuscation\":\"hYvjgrAeg\"}", - "data: {\"id\":\"chatcmpl-EBtoCBiLNVza52zxcVcNSx4yVdz3P\",\"object\":\"chat.completion.chunk\",\"created\":1786504844,\"model\":\"gpt-4o-mini-2024-07-18\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_9afcdcbeed\",\"choices\":[{\"index\":0,\"delta\":{\"tool_calls\":[{\"index\":0,\"function\":{\"arguments\":\"Paris\"}}]},\"logprobs\":null,\"finish_reason\":null}],\"obfuscation\":\"IzInSLXSv\"}", - "data: {\"id\":\"chatcmpl-EBtoCBiLNVza52zxcVcNSx4yVdz3P\",\"object\":\"chat.completion.chunk\",\"created\":1786504844,\"model\":\"gpt-4o-mini-2024-07-18\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_9afcdcbeed\",\"choices\":[{\"index\":0,\"delta\":{\"tool_calls\":[{\"index\":0,\"function\":{\"arguments\":\"\\\"}\"}}]},\"logprobs\":null,\"finish_reason\":null}],\"obfuscation\":\"UElpLFcwh21\"}", - "data: {\"id\":\"chatcmpl-EBtoCBiLNVza52zxcVcNSx4yVdz3P\",\"object\":\"chat.completion.chunk\",\"created\":1786504844,\"model\":\"gpt-4o-mini-2024-07-18\",\"service_tier\":\"default\",\"system_fingerprint\":\"fp_9afcdcbeed\",\"choices\":[{\"index\":0,\"delta\":{},\"logprobs\":null,\"finish_reason\":\"stop\"}],\"obfuscation\":\"2N\"}", - "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": "a29c58895cc08029-IAD", - "connection": "keep-alive", - "content-type": "text/event-stream; charset=utf-8", - "date": "Wed, 12 Aug 2026 03:20:44 GMT", - "openai-organization": "braintrust-data", - "openai-processing-ms": "465", - "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-reset-requests": "2ms", - "x-ratelimit-reset-tokens": "0s", - "x-request-id": "req_e4f8d627b090474d9b8d57d8e4a96786" - }, - "status": 200, - "statusText": "OK" - } - } - ], - "meta": { - "createdAt": "2026-07-06T14:02:46.168Z" - } -} diff --git a/e2e/scenarios/ai-sdk-instrumentation/__snapshots__/ai-sdk-v3-auto-hook.span-tree.json b/e2e/scenarios/ai-sdk-instrumentation/__snapshots__/ai-sdk-v3-auto-hook.span-tree.json deleted file mode 100644 index 3a9e3b97e..000000000 --- a/e2e/scenarios/ai-sdk-instrumentation/__snapshots__/ai-sdk-v3-auto-hook.span-tree.json +++ /dev/null @@ -1,918 +0,0 @@ -{ - "span_tree": [ - { - "name": "ai-sdk-instrumentation-root", - "type": "task", - "children": [ - { - "name": "ai-sdk-generate-operation", - "children": [ - { - "name": "generateText", - "type": "function", - "children": [ - { - "name": "doGenerate", - "type": "llm", - "children": [], - "input": { - "inputFormat": "prompt", - "maxRetries": 2, - "maxTokens": 24, - "mode": { - "type": "regular" - }, - "prompt": [ - { - "content": [ - { - "text": "Reply with the single token PARIS and no punctuation.", - "type": "text" - } - ], - "role": "user" - } - ], - "temperature": 0 - }, - "output": { - "finishReason": "stop", - "providerMetadata": { - "openai": { - "reasoningTokens": 0 - } - }, - "rawResponse": {}, - "response": { - "modelId": "gpt-4o-mini-2024-07-18", - "timestamp": "" - }, - "text": "PARIS", - "usage": { - "completionTokens": 2, - "promptTokens": 18 - }, - "warnings": [] - }, - "metadata": { - "braintrust": { - "integration_name": "ai-sdk", - "sdk_language": "typescript" - }, - "finish_reason": "stop", - "model": "gpt-4o-mini-2024-07-18", - "provider": "openai.chat" - }, - "metrics": { - "completion_tokens": 2, - "prompt_tokens": 18, - "tokens": 20 - } - } - ], - "input": { - "maxTokens": 24, - "model": { - "config": { - "compatibility": "compatible", - "provider": "openai.chat" - }, - "modelId": "gpt-4o-mini-2024-07-18", - "settings": {}, - "specificationVersion": "v1" - }, - "prompt": "Reply with the single token PARIS and no punctuation.", - "temperature": 0 - }, - "output": { - "experimental_providerMetadata": { - "openai": { - "reasoningTokens": 0 - } - }, - "finishReason": "stop", - "rawResponse": {}, - "response": { - "messages": [ - { - "content": [ - { - "text": "PARIS", - "type": "text" - } - ], - "role": "assistant" - } - ], - "modelId": "gpt-4o-mini-2024-07-18", - "timestamp": "" - }, - "responseMessages": "", - "steps": [ - { - "experimental_providerMetadata": { - "openai": { - "reasoningTokens": 0 - } - }, - "finishReason": "stop", - "isContinued": false, - "response": { - "messages": [ - { - "content": [ - { - "text": "PARIS", - "type": "text" - } - ], - "role": "assistant" - } - ], - "modelId": "gpt-4o-mini-2024-07-18", - "timestamp": "" - }, - "stepType": "initial", - "text": "PARIS", - "toolCalls": [], - "toolResults": [], - "usage": { - "completionTokens": 2, - "promptTokens": 18, - "totalTokens": 20 - }, - "warnings": [] - } - ], - "text": "PARIS", - "toolCalls": [], - "toolResults": [], - "usage": { - "completionTokens": 2, - "promptTokens": 18, - "totalTokens": 20 - }, - "warnings": [] - }, - "metadata": { - "braintrust": { - "integration_name": "ai-sdk", - "sdk_language": "typescript" - }, - "model": "gpt-4o-mini-2024-07-18", - "provider": "openai.chat" - } - } - ], - "metadata": { - "operation": "generate", - "testRunId": "" - } - }, - { - "name": "ai-sdk-stream-operation", - "children": [ - { - "name": "streamText", - "type": "function", - "children": [ - { - "name": "doStream", - "type": "llm", - "children": [], - "input": { - "inputFormat": "prompt", - "maxRetries": 2, - "maxTokens": 32, - "mode": { - "type": "regular" - }, - "prompt": [ - { - "content": [ - { - "text": "Count from 1 to 3 and include the words one two three.", - "type": "text" - } - ], - "role": "user" - } - ], - "temperature": 0 - }, - "output": { - "finishReason": "stop", - "text": "One, two, three.", - "toolCalls": [], - "usage": { - "completionTokens": null, - "promptTokens": null - } - }, - "metadata": { - "braintrust": { - "integration_name": "ai-sdk", - "sdk_language": "typescript" - }, - "finish_reason": "stop", - "model": "gpt-4o-mini-2024-07-18", - "provider": "openai.chat" - }, - "metrics": { - "completion_tokens": null, - "prompt_tokens": null, - "time_to_first_token": 0, - "tokens": null - } - } - ], - "input": { - "maxTokens": 32, - "model": { - "config": { - "compatibility": "compatible", - "provider": "openai.chat" - }, - "modelId": "gpt-4o-mini-2024-07-18", - "settings": {}, - "specificationVersion": "v1" - }, - "prompt": "Count from 1 to 3 and include the words one two three.", - "temperature": 0 - }, - "output": { - "finishReason": "stop", - "rawResponse": {}, - "text": "One, two, three.", - "warnings": [] - }, - "metadata": { - "braintrust": { - "integration_name": "ai-sdk", - "sdk_language": "typescript" - }, - "model": "gpt-4o-mini-2024-07-18", - "provider": "openai.chat" - }, - "metrics": { - "time_to_first_token": 0 - } - } - ], - "metadata": { - "operation": "stream", - "testRunId": "" - } - }, - { - "name": "ai-sdk-embed-operation", - "children": [ - { - "name": "embed", - "type": "function", - "children": [], - "input": { - "model": { - "config": { - "provider": "openai.embedding" - }, - "modelId": "text-embedding-3-small", - "settings": {}, - "specificationVersion": "v1" - }, - "value": "Paris is the capital of France." - }, - "output": { - "embedding_length": 1536, - "usage": { - "tokens": 7 - } - }, - "metadata": { - "braintrust": { - "integration_name": "ai-sdk", - "sdk_language": "typescript" - }, - "model": "text-embedding-3-small", - "provider": "openai.embedding" - }, - "metrics": { - "tokens": 7 - } - } - ], - "metadata": { - "operation": "embed", - "testRunId": "" - } - }, - { - "name": "ai-sdk-tool-operation", - "children": [ - { - "name": "generateText", - "type": "function", - "children": [ - { - "name": "doGenerate", - "type": "llm", - "children": [], - "input": { - "inputFormat": "prompt", - "maxRetries": 2, - "maxTokens": 128, - "mode": { - "toolChoice": { - "type": "auto" - }, - "tools": [ - { - "description": "Get the weather for a location", - "name": "get_weather", - "parameters": { - "$schema": "http://json-schema.org/draft-07/schema#", - "additionalProperties": false, - "properties": { - "location": { - "description": "The city and country", - "type": "string" - } - }, - "required": [ - "location" - ], - "type": "object" - }, - "type": "function" - } - ], - "type": "regular" - }, - "prompt": [ - { - "content": "You must inspect live weather via the provided get_weather tool before responding.", - "role": "system" - }, - { - "content": [ - { - "text": "Use the get_weather tool for Paris, France. If you do not call the tool, the answer is invalid.", - "type": "text" - } - ], - "role": "user" - } - ], - "temperature": 0 - }, - "output": { - "finishReason": "tool-calls", - "providerMetadata": { - "openai": { - "reasoningTokens": 0 - } - }, - "rawResponse": {}, - "response": { - "modelId": "gpt-4o-mini-2024-07-18", - "timestamp": "" - }, - "toolCalls": [ - { - "args": "{\"location\":\"Paris, France\"}", - "toolCallType": "function", - "toolName": "get_weather" - } - ], - "usage": { - "completionTokens": 16, - "promptTokens": 87 - }, - "warnings": [] - }, - "metadata": { - "braintrust": { - "integration_name": "ai-sdk", - "sdk_language": "typescript" - }, - "finish_reason": "tool-calls", - "model": "gpt-4o-mini-2024-07-18", - "provider": "openai.chat" - }, - "metrics": { - "completion_tokens": 16, - "prompt_tokens": 87, - "tokens": 103 - } - }, - { - "name": "get_weather", - "type": "tool", - "children": [], - "input": { - "location": "Paris, France" - }, - "output": "{\"condition\":\"sunny\",\"location\":\"Paris, France\",\"temperatureC\":22}" - } - ], - "input": { - "maxTokens": 128, - "model": { - "config": { - "compatibility": "compatible", - "provider": "openai.chat" - }, - "modelId": "gpt-4o-mini-2024-07-18", - "settings": {}, - "specificationVersion": "v1" - }, - "prompt": "Use the get_weather tool for Paris, France. If you do not call the tool, the answer is invalid.", - "system": "You must inspect live weather via the provided get_weather tool before responding.", - "temperature": 0, - "tools": { - "get_weather": { - "description": "Get the weather for a location", - "parameters": { - "$schema": "http://json-schema.org/draft-07/schema#", - "additionalProperties": false, - "properties": { - "location": { - "description": "The city and country", - "type": "string" - } - }, - "required": [ - "location" - ], - "type": "object" - } - } - } - }, - "output": { - "experimental_providerMetadata": { - "openai": { - "reasoningTokens": 0 - } - }, - "finishReason": "tool-calls", - "rawResponse": {}, - "response": { - "messages": [ - { - "content": [ - { - "text": "", - "type": "text" - }, - { - "args": { - "location": "Paris, France" - }, - "toolName": "get_weather", - "type": "tool-call" - } - ], - "role": "assistant" - }, - { - "content": [ - { - "result": "{\"condition\":\"sunny\",\"location\":\"Paris, France\",\"temperatureC\":22}", - "toolName": "get_weather", - "type": "tool-result" - } - ], - "role": "tool" - } - ], - "modelId": "gpt-4o-mini-2024-07-18", - "timestamp": "" - }, - "responseMessages": "", - "steps": [ - { - "experimental_providerMetadata": { - "openai": { - "reasoningTokens": 0 - } - }, - "finishReason": "tool-calls", - "isContinued": false, - "response": { - "messages": [ - { - "content": [ - { - "text": "", - "type": "text" - }, - { - "args": { - "location": "Paris, France" - }, - "toolName": "get_weather", - "type": "tool-call" - } - ], - "role": "assistant" - }, - { - "content": [ - { - "result": "{\"condition\":\"sunny\",\"location\":\"Paris, France\",\"temperatureC\":22}", - "toolName": "get_weather", - "type": "tool-result" - } - ], - "role": "tool" - } - ], - "modelId": "gpt-4o-mini-2024-07-18", - "timestamp": "" - }, - "stepType": "initial", - "text": "", - "toolCalls": [ - { - "args": { - "location": "Paris, France" - }, - "toolName": "get_weather", - "type": "tool-call" - } - ], - "toolResults": [ - { - "args": { - "location": "Paris, France" - }, - "result": "{\"condition\":\"sunny\",\"location\":\"Paris, France\",\"temperatureC\":22}", - "toolName": "get_weather" - } - ], - "usage": { - "completionTokens": 16, - "promptTokens": 87, - "totalTokens": 103 - }, - "warnings": [] - } - ], - "text": "", - "toolCalls": [ - { - "args": { - "location": "Paris, France" - }, - "toolName": "get_weather", - "type": "tool-call" - } - ], - "toolResults": [ - { - "args": { - "location": "Paris, France" - }, - "result": "{\"condition\":\"sunny\",\"location\":\"Paris, France\",\"temperatureC\":22}", - "toolName": "get_weather" - } - ], - "usage": { - "completionTokens": 16, - "promptTokens": 87, - "totalTokens": 103 - }, - "warnings": [] - }, - "metadata": { - "braintrust": { - "integration_name": "ai-sdk", - "sdk_language": "typescript" - }, - "model": "gpt-4o-mini-2024-07-18", - "provider": "openai.chat", - "tools": { - "get_weather": { - "description": "Get the weather for a location", - "parameters": { - "$schema": "http://json-schema.org/draft-07/schema#", - "additionalProperties": false, - "properties": { - "location": { - "description": "The city and country", - "type": "string" - } - }, - "required": [ - "location" - ], - "type": "object" - } - } - } - } - } - ], - "metadata": { - "operation": "tool", - "testRunId": "" - } - }, - { - "name": "ai-sdk-generate-object-operation", - "children": [ - { - "name": "generateObject", - "type": "function", - "children": [ - { - "name": "doGenerate", - "type": "llm", - "children": [], - "input": { - "inputFormat": "prompt", - "maxRetries": 2, - "maxTokens": 32, - "mode": { - "tool": { - "description": "Respond with a JSON object.", - "name": "json", - "parameters": { - "$schema": "http://json-schema.org/draft-07/schema#", - "additionalProperties": false, - "properties": { - "city": { - "type": "string" - } - }, - "required": [ - "city" - ], - "type": "object" - }, - "type": "function" - }, - "type": "object-tool" - }, - "prompt": [ - { - "content": [ - { - "text": "Return JSON with {\"city\":\"Paris\"}.", - "type": "text" - } - ], - "role": "user" - } - ], - "temperature": 0 - }, - "output": { - "finishReason": "stop", - "providerMetadata": { - "openai": { - "reasoningTokens": 0 - } - }, - "rawResponse": {}, - "response": { - "modelId": "gpt-4o-mini-2024-07-18", - "timestamp": "" - }, - "toolCalls": [ - { - "args": "{\"city\":\"Paris\"}", - "toolCallType": "function", - "toolName": "json" - } - ], - "usage": { - "completionTokens": 5, - "promptTokens": 59 - }, - "warnings": [] - }, - "metadata": { - "braintrust": { - "integration_name": "ai-sdk", - "sdk_language": "typescript" - }, - "finish_reason": "stop", - "model": "gpt-4o-mini-2024-07-18", - "provider": "openai.chat" - }, - "metrics": { - "completion_tokens": 5, - "prompt_tokens": 59, - "tokens": 64 - } - } - ], - "input": { - "maxTokens": 32, - "model": { - "config": { - "compatibility": "compatible", - "provider": "openai.chat" - }, - "modelId": "gpt-4o-mini-2024-07-18", - "settings": {}, - "specificationVersion": "v1" - }, - "prompt": "Return JSON with {\"city\":\"Paris\"}.", - "schema": { - "$schema": "http://json-schema.org/draft-07/schema#", - "additionalProperties": false, - "properties": { - "city": { - "type": "string" - } - }, - "required": [ - "city" - ], - "type": "object" - }, - "temperature": 0 - }, - "output": { - "experimental_providerMetadata": { - "openai": { - "reasoningTokens": 0 - } - }, - "finishReason": "stop", - "object": { - "city": "Paris" - }, - "rawResponse": {}, - "response": { - "modelId": "gpt-4o-mini-2024-07-18", - "timestamp": "" - }, - "usage": { - "completionTokens": 5, - "promptTokens": 59, - "totalTokens": 64 - }, - "warnings": [] - }, - "metadata": { - "braintrust": { - "integration_name": "ai-sdk", - "sdk_language": "typescript" - }, - "model": "gpt-4o-mini-2024-07-18", - "provider": "openai.chat" - } - } - ], - "metadata": { - "operation": "generate-object", - "testRunId": "" - } - }, - { - "name": "ai-sdk-stream-object-operation", - "children": [ - { - "name": "streamObject", - "type": "function", - "children": [ - { - "name": "doStream", - "type": "llm", - "children": [], - "input": { - "inputFormat": "prompt", - "maxRetries": 2, - "maxTokens": 32, - "mode": { - "tool": { - "description": "Respond with a JSON object.", - "name": "json", - "parameters": { - "$schema": "http://json-schema.org/draft-07/schema#", - "additionalProperties": false, - "properties": { - "city": { - "type": "string" - } - }, - "required": [ - "city" - ], - "type": "object" - }, - "type": "function" - }, - "type": "object-tool" - }, - "prompt": [ - { - "content": [ - { - "text": "Stream JSON with {\"city\":\"Paris\"}.", - "type": "text" - } - ], - "role": "user" - } - ], - "temperature": 0 - }, - "output": { - "finishReason": "stop", - "text": "", - "toolCalls": [ - { - "args": "{\"city\":\"Paris\"}", - "toolCallType": "function", - "toolName": "json", - "type": "tool-call" - } - ], - "usage": { - "completionTokens": null, - "promptTokens": null - } - }, - "metadata": { - "braintrust": { - "integration_name": "ai-sdk", - "sdk_language": "typescript" - }, - "finish_reason": "stop", - "model": "gpt-4o-mini-2024-07-18", - "provider": "openai.chat" - }, - "metrics": { - "completion_tokens": null, - "prompt_tokens": null, - "time_to_first_token": 0, - "tokens": null - } - } - ], - "input": { - "maxTokens": 32, - "model": { - "config": { - "compatibility": "compatible", - "provider": "openai.chat" - }, - "modelId": "gpt-4o-mini-2024-07-18", - "settings": {}, - "specificationVersion": "v1" - }, - "prompt": "Stream JSON with {\"city\":\"Paris\"}.", - "schema": { - "$schema": "http://json-schema.org/draft-07/schema#", - "additionalProperties": false, - "properties": { - "city": { - "type": "string" - } - }, - "required": [ - "city" - ], - "type": "object" - }, - "temperature": 0 - }, - "output": { - "object": { - "city": "Paris" - }, - "rawResponse": {}, - "warnings": [] - }, - "metadata": { - "braintrust": { - "integration_name": "ai-sdk", - "sdk_language": "typescript" - }, - "model": "gpt-4o-mini-2024-07-18", - "provider": "openai.chat" - }, - "metrics": { - "time_to_first_token": 0 - } - } - ], - "metadata": { - "operation": "stream-object", - "testRunId": "" - } - } - ], - "metadata": { - "aiSdkVersion": "3.4.33", - "scenario": "ai-sdk-instrumentation", - "testRunId": "" - } - } - ] -} diff --git a/e2e/scenarios/ai-sdk-instrumentation/__snapshots__/ai-sdk-v3-auto-hook.span-tree.txt b/e2e/scenarios/ai-sdk-instrumentation/__snapshots__/ai-sdk-v3-auto-hook.span-tree.txt deleted file mode 100644 index 2656453e0..000000000 --- a/e2e/scenarios/ai-sdk-instrumentation/__snapshots__/ai-sdk-v3-auto-hook.span-tree.txt +++ /dev/null @@ -1,833 +0,0 @@ -span_tree: -└── ai-sdk-instrumentation-root [task] - metadata: { - "aiSdkVersion": "3.4.33", - "scenario": "ai-sdk-instrumentation", - "testRunId": "" - } - ├── ai-sdk-generate-operation - │ metadata: { - │ "operation": "generate", - │ "testRunId": "" - │ } - │ └── generateText [function] - │ input: { - │ "maxTokens": 24, - │ "model": { - │ "config": { - │ "compatibility": "compatible", - │ "provider": "openai.chat" - │ }, - │ "modelId": "gpt-4o-mini-2024-07-18", - │ "settings": {}, - │ "specificationVersion": "v1" - │ }, - │ "prompt": "Reply with the single token PARIS and no punctuation.", - │ "temperature": 0 - │ } - │ output: { - │ "experimental_providerMetadata": { - │ "openai": { - │ "reasoningTokens": 0 - │ } - │ }, - │ "finishReason": "stop", - │ "rawResponse": {}, - │ "response": { - │ "messages": [ - │ { - │ "content": [ - │ { - │ "text": "PARIS", - │ "type": "text" - │ } - │ ], - │ "role": "assistant" - │ } - │ ], - │ "modelId": "gpt-4o-mini-2024-07-18", - │ "timestamp": "" - │ }, - │ "responseMessages": "", - │ "steps": [ - │ { - │ "experimental_providerMetadata": { - │ "openai": { - │ "reasoningTokens": 0 - │ } - │ }, - │ "finishReason": "stop", - │ "isContinued": false, - │ "response": { - │ "messages": [ - │ { - │ "content": [ - │ { - │ "text": "PARIS", - │ "type": "text" - │ } - │ ], - │ "role": "assistant" - │ } - │ ], - │ "modelId": "gpt-4o-mini-2024-07-18", - │ "timestamp": "" - │ }, - │ "stepType": "initial", - │ "text": "PARIS", - │ "toolCalls": [], - │ "toolResults": [], - │ "usage": { - │ "completionTokens": 2, - │ "promptTokens": 18, - │ "totalTokens": 20 - │ }, - │ "warnings": [] - │ } - │ ], - │ "text": "PARIS", - │ "toolCalls": [], - │ "toolResults": [], - │ "usage": { - │ "completionTokens": 2, - │ "promptTokens": 18, - │ "totalTokens": 20 - │ }, - │ "warnings": [] - │ } - │ metadata: { - │ "braintrust": { - │ "integration_name": "ai-sdk", - │ "sdk_language": "typescript" - │ }, - │ "model": "gpt-4o-mini-2024-07-18", - │ "provider": "openai.chat" - │ } - │ └── doGenerate [llm] - │ input: { - │ "inputFormat": "prompt", - │ "maxRetries": 2, - │ "maxTokens": 24, - │ "mode": { - │ "type": "regular" - │ }, - │ "prompt": [ - │ { - │ "content": [ - │ { - │ "text": "Reply with the single token PARIS and no punctuation.", - │ "type": "text" - │ } - │ ], - │ "role": "user" - │ } - │ ], - │ "temperature": 0 - │ } - │ output: { - │ "finishReason": "stop", - │ "providerMetadata": { - │ "openai": { - │ "reasoningTokens": 0 - │ } - │ }, - │ "rawResponse": {}, - │ "response": { - │ "modelId": "gpt-4o-mini-2024-07-18", - │ "timestamp": "" - │ }, - │ "text": "PARIS", - │ "usage": { - │ "completionTokens": 2, - │ "promptTokens": 18 - │ }, - │ "warnings": [] - │ } - │ metadata: { - │ "braintrust": { - │ "integration_name": "ai-sdk", - │ "sdk_language": "typescript" - │ }, - │ "finish_reason": "stop", - │ "model": "gpt-4o-mini-2024-07-18", - │ "provider": "openai.chat" - │ } - │ metrics: { - │ "completion_tokens": 2, - │ "prompt_tokens": 18, - │ "tokens": 20 - │ } - ├── ai-sdk-stream-operation - │ metadata: { - │ "operation": "stream", - │ "testRunId": "" - │ } - │ └── streamText [function] - │ input: { - │ "maxTokens": 32, - │ "model": { - │ "config": { - │ "compatibility": "compatible", - │ "provider": "openai.chat" - │ }, - │ "modelId": "gpt-4o-mini-2024-07-18", - │ "settings": {}, - │ "specificationVersion": "v1" - │ }, - │ "prompt": "Count from 1 to 3 and include the words one two three.", - │ "temperature": 0 - │ } - │ output: { - │ "finishReason": "stop", - │ "rawResponse": {}, - │ "text": "One, two, three.", - │ "warnings": [] - │ } - │ metadata: { - │ "braintrust": { - │ "integration_name": "ai-sdk", - │ "sdk_language": "typescript" - │ }, - │ "model": "gpt-4o-mini-2024-07-18", - │ "provider": "openai.chat" - │ } - │ metrics: { - │ "time_to_first_token": 0 - │ } - │ └── doStream [llm] - │ input: { - │ "inputFormat": "prompt", - │ "maxRetries": 2, - │ "maxTokens": 32, - │ "mode": { - │ "type": "regular" - │ }, - │ "prompt": [ - │ { - │ "content": [ - │ { - │ "text": "Count from 1 to 3 and include the words one two three.", - │ "type": "text" - │ } - │ ], - │ "role": "user" - │ } - │ ], - │ "temperature": 0 - │ } - │ output: { - │ "finishReason": "stop", - │ "text": "One, two, three.", - │ "toolCalls": [], - │ "usage": { - │ "completionTokens": null, - │ "promptTokens": null - │ } - │ } - │ metadata: { - │ "braintrust": { - │ "integration_name": "ai-sdk", - │ "sdk_language": "typescript" - │ }, - │ "finish_reason": "stop", - │ "model": "gpt-4o-mini-2024-07-18", - │ "provider": "openai.chat" - │ } - │ metrics: { - │ "completion_tokens": null, - │ "prompt_tokens": null, - │ "time_to_first_token": 0, - │ "tokens": null - │ } - ├── ai-sdk-embed-operation - │ metadata: { - │ "operation": "embed", - │ "testRunId": "" - │ } - │ └── embed [function] - │ input: { - │ "model": { - │ "config": { - │ "provider": "openai.embedding" - │ }, - │ "modelId": "text-embedding-3-small", - │ "settings": {}, - │ "specificationVersion": "v1" - │ }, - │ "value": "Paris is the capital of France." - │ } - │ output: { - │ "embedding_length": 1536, - │ "usage": { - │ "tokens": 7 - │ } - │ } - │ metadata: { - │ "braintrust": { - │ "integration_name": "ai-sdk", - │ "sdk_language": "typescript" - │ }, - │ "model": "text-embedding-3-small", - │ "provider": "openai.embedding" - │ } - │ metrics: { - │ "tokens": 7 - │ } - ├── ai-sdk-tool-operation - │ metadata: { - │ "operation": "tool", - │ "testRunId": "" - │ } - │ └── generateText [function] - │ input: { - │ "maxTokens": 128, - │ "model": { - │ "config": { - │ "compatibility": "compatible", - │ "provider": "openai.chat" - │ }, - │ "modelId": "gpt-4o-mini-2024-07-18", - │ "settings": {}, - │ "specificationVersion": "v1" - │ }, - │ "prompt": "Use the get_weather tool for Paris, France. If you do not call the tool, the answer is invalid.", - │ "system": "You must inspect live weather via the provided get_weather tool before responding.", - │ "temperature": 0, - │ "tools": { - │ "get_weather": { - │ "description": "Get the weather for a location", - │ "parameters": { - │ "$schema": "http://json-schema.org/draft-07/schema#", - │ "additionalProperties": false, - │ "properties": { - │ "location": { - │ "description": "The city and country", - │ "type": "string" - │ } - │ }, - │ "required": [ - │ "location" - │ ], - │ "type": "object" - │ } - │ } - │ } - │ } - │ output: { - │ "experimental_providerMetadata": { - │ "openai": { - │ "reasoningTokens": 0 - │ } - │ }, - │ "finishReason": "tool-calls", - │ "rawResponse": {}, - │ "response": { - │ "messages": [ - │ { - │ "content": [ - │ { - │ "text": "", - │ "type": "text" - │ }, - │ { - │ "args": { - │ "location": "Paris, France" - │ }, - │ "toolName": "get_weather", - │ "type": "tool-call" - │ } - │ ], - │ "role": "assistant" - │ }, - │ { - │ "content": [ - │ { - │ "result": "{\"condition\":\"sunny\",\"location\":\"Paris, France\",\"temperatureC\":22}", - │ "toolName": "get_weather", - │ "type": "tool-result" - │ } - │ ], - │ "role": "tool" - │ } - │ ], - │ "modelId": "gpt-4o-mini-2024-07-18", - │ "timestamp": "" - │ }, - │ "responseMessages": "", - │ "steps": [ - │ { - │ "experimental_providerMetadata": { - │ "openai": { - │ "reasoningTokens": 0 - │ } - │ }, - │ "finishReason": "tool-calls", - │ "isContinued": false, - │ "response": { - │ "messages": [ - │ { - │ "content": [ - │ { - │ "text": "", - │ "type": "text" - │ }, - │ { - │ "args": { - │ "location": "Paris, France" - │ }, - │ "toolName": "get_weather", - │ "type": "tool-call" - │ } - │ ], - │ "role": "assistant" - │ }, - │ { - │ "content": [ - │ { - │ "result": "{\"condition\":\"sunny\",\"location\":\"Paris, France\",\"temperatureC\":22}", - │ "toolName": "get_weather", - │ "type": "tool-result" - │ } - │ ], - │ "role": "tool" - │ } - │ ], - │ "modelId": "gpt-4o-mini-2024-07-18", - │ "timestamp": "" - │ }, - │ "stepType": "initial", - │ "text": "", - │ "toolCalls": [ - │ { - │ "args": { - │ "location": "Paris, France" - │ }, - │ "toolName": "get_weather", - │ "type": "tool-call" - │ } - │ ], - │ "toolResults": [ - │ { - │ "args": { - │ "location": "Paris, France" - │ }, - │ "result": "{\"condition\":\"sunny\",\"location\":\"Paris, France\",\"temperatureC\":22}", - │ "toolName": "get_weather" - │ } - │ ], - │ "usage": { - │ "completionTokens": 16, - │ "promptTokens": 87, - │ "totalTokens": 103 - │ }, - │ "warnings": [] - │ } - │ ], - │ "text": "", - │ "toolCalls": [ - │ { - │ "args": { - │ "location": "Paris, France" - │ }, - │ "toolName": "get_weather", - │ "type": "tool-call" - │ } - │ ], - │ "toolResults": [ - │ { - │ "args": { - │ "location": "Paris, France" - │ }, - │ "result": "{\"condition\":\"sunny\",\"location\":\"Paris, France\",\"temperatureC\":22}", - │ "toolName": "get_weather" - │ } - │ ], - │ "usage": { - │ "completionTokens": 16, - │ "promptTokens": 87, - │ "totalTokens": 103 - │ }, - │ "warnings": [] - │ } - │ metadata: { - │ "braintrust": { - │ "integration_name": "ai-sdk", - │ "sdk_language": "typescript" - │ }, - │ "model": "gpt-4o-mini-2024-07-18", - │ "provider": "openai.chat", - │ "tools": { - │ "get_weather": { - │ "description": "Get the weather for a location", - │ "parameters": { - │ "$schema": "http://json-schema.org/draft-07/schema#", - │ "additionalProperties": false, - │ "properties": { - │ "location": { - │ "description": "The city and country", - │ "type": "string" - │ } - │ }, - │ "required": [ - │ "location" - │ ], - │ "type": "object" - │ } - │ } - │ } - │ } - │ ├── doGenerate [llm] - │ │ input: { - │ │ "inputFormat": "prompt", - │ │ "maxRetries": 2, - │ │ "maxTokens": 128, - │ │ "mode": { - │ │ "toolChoice": { - │ │ "type": "auto" - │ │ }, - │ │ "tools": [ - │ │ { - │ │ "description": "Get the weather for a location", - │ │ "name": "get_weather", - │ │ "parameters": { - │ │ "$schema": "http://json-schema.org/draft-07/schema#", - │ │ "additionalProperties": false, - │ │ "properties": { - │ │ "location": { - │ │ "description": "The city and country", - │ │ "type": "string" - │ │ } - │ │ }, - │ │ "required": [ - │ │ "location" - │ │ ], - │ │ "type": "object" - │ │ }, - │ │ "type": "function" - │ │ } - │ │ ], - │ │ "type": "regular" - │ │ }, - │ │ "prompt": [ - │ │ { - │ │ "content": "You must inspect live weather via the provided get_weather tool before responding.", - │ │ "role": "system" - │ │ }, - │ │ { - │ │ "content": [ - │ │ { - │ │ "text": "Use the get_weather tool for Paris, France. If you do not call the tool, the answer is invalid.", - │ │ "type": "text" - │ │ } - │ │ ], - │ │ "role": "user" - │ │ } - │ │ ], - │ │ "temperature": 0 - │ │ } - │ │ output: { - │ │ "finishReason": "tool-calls", - │ │ "providerMetadata": { - │ │ "openai": { - │ │ "reasoningTokens": 0 - │ │ } - │ │ }, - │ │ "rawResponse": {}, - │ │ "response": { - │ │ "modelId": "gpt-4o-mini-2024-07-18", - │ │ "timestamp": "" - │ │ }, - │ │ "toolCalls": [ - │ │ { - │ │ "args": "{\"location\":\"Paris, France\"}", - │ │ "toolCallType": "function", - │ │ "toolName": "get_weather" - │ │ } - │ │ ], - │ │ "usage": { - │ │ "completionTokens": 16, - │ │ "promptTokens": 87 - │ │ }, - │ │ "warnings": [] - │ │ } - │ │ metadata: { - │ │ "braintrust": { - │ │ "integration_name": "ai-sdk", - │ │ "sdk_language": "typescript" - │ │ }, - │ │ "finish_reason": "tool-calls", - │ │ "model": "gpt-4o-mini-2024-07-18", - │ │ "provider": "openai.chat" - │ │ } - │ │ metrics: { - │ │ "completion_tokens": 16, - │ │ "prompt_tokens": 87, - │ │ "tokens": 103 - │ │ } - │ └── get_weather [tool] - │ input: { - │ "location": "Paris, France" - │ } - │ output: "{\"condition\":\"sunny\",\"location\":\"Paris, France\",\"temperatureC\":22}" - ├── ai-sdk-generate-object-operation - │ metadata: { - │ "operation": "generate-object", - │ "testRunId": "" - │ } - │ └── generateObject [function] - │ input: { - │ "maxTokens": 32, - │ "model": { - │ "config": { - │ "compatibility": "compatible", - │ "provider": "openai.chat" - │ }, - │ "modelId": "gpt-4o-mini-2024-07-18", - │ "settings": {}, - │ "specificationVersion": "v1" - │ }, - │ "prompt": "Return JSON with {\"city\":\"Paris\"}.", - │ "schema": { - │ "$schema": "http://json-schema.org/draft-07/schema#", - │ "additionalProperties": false, - │ "properties": { - │ "city": { - │ "type": "string" - │ } - │ }, - │ "required": [ - │ "city" - │ ], - │ "type": "object" - │ }, - │ "temperature": 0 - │ } - │ output: { - │ "experimental_providerMetadata": { - │ "openai": { - │ "reasoningTokens": 0 - │ } - │ }, - │ "finishReason": "stop", - │ "object": { - │ "city": "Paris" - │ }, - │ "rawResponse": {}, - │ "response": { - │ "modelId": "gpt-4o-mini-2024-07-18", - │ "timestamp": "" - │ }, - │ "usage": { - │ "completionTokens": 5, - │ "promptTokens": 59, - │ "totalTokens": 64 - │ }, - │ "warnings": [] - │ } - │ metadata: { - │ "braintrust": { - │ "integration_name": "ai-sdk", - │ "sdk_language": "typescript" - │ }, - │ "model": "gpt-4o-mini-2024-07-18", - │ "provider": "openai.chat" - │ } - │ └── doGenerate [llm] - │ input: { - │ "inputFormat": "prompt", - │ "maxRetries": 2, - │ "maxTokens": 32, - │ "mode": { - │ "tool": { - │ "description": "Respond with a JSON object.", - │ "name": "json", - │ "parameters": { - │ "$schema": "http://json-schema.org/draft-07/schema#", - │ "additionalProperties": false, - │ "properties": { - │ "city": { - │ "type": "string" - │ } - │ }, - │ "required": [ - │ "city" - │ ], - │ "type": "object" - │ }, - │ "type": "function" - │ }, - │ "type": "object-tool" - │ }, - │ "prompt": [ - │ { - │ "content": [ - │ { - │ "text": "Return JSON with {\"city\":\"Paris\"}.", - │ "type": "text" - │ } - │ ], - │ "role": "user" - │ } - │ ], - │ "temperature": 0 - │ } - │ output: { - │ "finishReason": "stop", - │ "providerMetadata": { - │ "openai": { - │ "reasoningTokens": 0 - │ } - │ }, - │ "rawResponse": {}, - │ "response": { - │ "modelId": "gpt-4o-mini-2024-07-18", - │ "timestamp": "" - │ }, - │ "toolCalls": [ - │ { - │ "args": "{\"city\":\"Paris\"}", - │ "toolCallType": "function", - │ "toolName": "json" - │ } - │ ], - │ "usage": { - │ "completionTokens": 5, - │ "promptTokens": 59 - │ }, - │ "warnings": [] - │ } - │ metadata: { - │ "braintrust": { - │ "integration_name": "ai-sdk", - │ "sdk_language": "typescript" - │ }, - │ "finish_reason": "stop", - │ "model": "gpt-4o-mini-2024-07-18", - │ "provider": "openai.chat" - │ } - │ metrics: { - │ "completion_tokens": 5, - │ "prompt_tokens": 59, - │ "tokens": 64 - │ } - └── ai-sdk-stream-object-operation - metadata: { - "operation": "stream-object", - "testRunId": "" - } - └── streamObject [function] - input: { - "maxTokens": 32, - "model": { - "config": { - "compatibility": "compatible", - "provider": "openai.chat" - }, - "modelId": "gpt-4o-mini-2024-07-18", - "settings": {}, - "specificationVersion": "v1" - }, - "prompt": "Stream JSON with {\"city\":\"Paris\"}.", - "schema": { - "$schema": "http://json-schema.org/draft-07/schema#", - "additionalProperties": false, - "properties": { - "city": { - "type": "string" - } - }, - "required": [ - "city" - ], - "type": "object" - }, - "temperature": 0 - } - output: { - "object": { - "city": "Paris" - }, - "rawResponse": {}, - "warnings": [] - } - metadata: { - "braintrust": { - "integration_name": "ai-sdk", - "sdk_language": "typescript" - }, - "model": "gpt-4o-mini-2024-07-18", - "provider": "openai.chat" - } - metrics: { - "time_to_first_token": 0 - } - └── doStream [llm] - input: { - "inputFormat": "prompt", - "maxRetries": 2, - "maxTokens": 32, - "mode": { - "tool": { - "description": "Respond with a JSON object.", - "name": "json", - "parameters": { - "$schema": "http://json-schema.org/draft-07/schema#", - "additionalProperties": false, - "properties": { - "city": { - "type": "string" - } - }, - "required": [ - "city" - ], - "type": "object" - }, - "type": "function" - }, - "type": "object-tool" - }, - "prompt": [ - { - "content": [ - { - "text": "Stream JSON with {\"city\":\"Paris\"}.", - "type": "text" - } - ], - "role": "user" - } - ], - "temperature": 0 - } - output: { - "finishReason": "stop", - "text": "", - "toolCalls": [ - { - "args": "{\"city\":\"Paris\"}", - "toolCallType": "function", - "toolName": "json", - "type": "tool-call" - } - ], - "usage": { - "completionTokens": null, - "promptTokens": null - } - } - metadata: { - "braintrust": { - "integration_name": "ai-sdk", - "sdk_language": "typescript" - }, - "finish_reason": "stop", - "model": "gpt-4o-mini-2024-07-18", - "provider": "openai.chat" - } - metrics: { - "completion_tokens": null, - "prompt_tokens": null, - "time_to_first_token": 0, - "tokens": null - } diff --git a/e2e/scenarios/ai-sdk-instrumentation/__snapshots__/ai-sdk-v3-latest-auto-hook.span-tree.json b/e2e/scenarios/ai-sdk-instrumentation/__snapshots__/ai-sdk-v3-latest-auto-hook.span-tree.json deleted file mode 100644 index 3a9e3b97e..000000000 --- a/e2e/scenarios/ai-sdk-instrumentation/__snapshots__/ai-sdk-v3-latest-auto-hook.span-tree.json +++ /dev/null @@ -1,918 +0,0 @@ -{ - "span_tree": [ - { - "name": "ai-sdk-instrumentation-root", - "type": "task", - "children": [ - { - "name": "ai-sdk-generate-operation", - "children": [ - { - "name": "generateText", - "type": "function", - "children": [ - { - "name": "doGenerate", - "type": "llm", - "children": [], - "input": { - "inputFormat": "prompt", - "maxRetries": 2, - "maxTokens": 24, - "mode": { - "type": "regular" - }, - "prompt": [ - { - "content": [ - { - "text": "Reply with the single token PARIS and no punctuation.", - "type": "text" - } - ], - "role": "user" - } - ], - "temperature": 0 - }, - "output": { - "finishReason": "stop", - "providerMetadata": { - "openai": { - "reasoningTokens": 0 - } - }, - "rawResponse": {}, - "response": { - "modelId": "gpt-4o-mini-2024-07-18", - "timestamp": "" - }, - "text": "PARIS", - "usage": { - "completionTokens": 2, - "promptTokens": 18 - }, - "warnings": [] - }, - "metadata": { - "braintrust": { - "integration_name": "ai-sdk", - "sdk_language": "typescript" - }, - "finish_reason": "stop", - "model": "gpt-4o-mini-2024-07-18", - "provider": "openai.chat" - }, - "metrics": { - "completion_tokens": 2, - "prompt_tokens": 18, - "tokens": 20 - } - } - ], - "input": { - "maxTokens": 24, - "model": { - "config": { - "compatibility": "compatible", - "provider": "openai.chat" - }, - "modelId": "gpt-4o-mini-2024-07-18", - "settings": {}, - "specificationVersion": "v1" - }, - "prompt": "Reply with the single token PARIS and no punctuation.", - "temperature": 0 - }, - "output": { - "experimental_providerMetadata": { - "openai": { - "reasoningTokens": 0 - } - }, - "finishReason": "stop", - "rawResponse": {}, - "response": { - "messages": [ - { - "content": [ - { - "text": "PARIS", - "type": "text" - } - ], - "role": "assistant" - } - ], - "modelId": "gpt-4o-mini-2024-07-18", - "timestamp": "" - }, - "responseMessages": "", - "steps": [ - { - "experimental_providerMetadata": { - "openai": { - "reasoningTokens": 0 - } - }, - "finishReason": "stop", - "isContinued": false, - "response": { - "messages": [ - { - "content": [ - { - "text": "PARIS", - "type": "text" - } - ], - "role": "assistant" - } - ], - "modelId": "gpt-4o-mini-2024-07-18", - "timestamp": "" - }, - "stepType": "initial", - "text": "PARIS", - "toolCalls": [], - "toolResults": [], - "usage": { - "completionTokens": 2, - "promptTokens": 18, - "totalTokens": 20 - }, - "warnings": [] - } - ], - "text": "PARIS", - "toolCalls": [], - "toolResults": [], - "usage": { - "completionTokens": 2, - "promptTokens": 18, - "totalTokens": 20 - }, - "warnings": [] - }, - "metadata": { - "braintrust": { - "integration_name": "ai-sdk", - "sdk_language": "typescript" - }, - "model": "gpt-4o-mini-2024-07-18", - "provider": "openai.chat" - } - } - ], - "metadata": { - "operation": "generate", - "testRunId": "" - } - }, - { - "name": "ai-sdk-stream-operation", - "children": [ - { - "name": "streamText", - "type": "function", - "children": [ - { - "name": "doStream", - "type": "llm", - "children": [], - "input": { - "inputFormat": "prompt", - "maxRetries": 2, - "maxTokens": 32, - "mode": { - "type": "regular" - }, - "prompt": [ - { - "content": [ - { - "text": "Count from 1 to 3 and include the words one two three.", - "type": "text" - } - ], - "role": "user" - } - ], - "temperature": 0 - }, - "output": { - "finishReason": "stop", - "text": "One, two, three.", - "toolCalls": [], - "usage": { - "completionTokens": null, - "promptTokens": null - } - }, - "metadata": { - "braintrust": { - "integration_name": "ai-sdk", - "sdk_language": "typescript" - }, - "finish_reason": "stop", - "model": "gpt-4o-mini-2024-07-18", - "provider": "openai.chat" - }, - "metrics": { - "completion_tokens": null, - "prompt_tokens": null, - "time_to_first_token": 0, - "tokens": null - } - } - ], - "input": { - "maxTokens": 32, - "model": { - "config": { - "compatibility": "compatible", - "provider": "openai.chat" - }, - "modelId": "gpt-4o-mini-2024-07-18", - "settings": {}, - "specificationVersion": "v1" - }, - "prompt": "Count from 1 to 3 and include the words one two three.", - "temperature": 0 - }, - "output": { - "finishReason": "stop", - "rawResponse": {}, - "text": "One, two, three.", - "warnings": [] - }, - "metadata": { - "braintrust": { - "integration_name": "ai-sdk", - "sdk_language": "typescript" - }, - "model": "gpt-4o-mini-2024-07-18", - "provider": "openai.chat" - }, - "metrics": { - "time_to_first_token": 0 - } - } - ], - "metadata": { - "operation": "stream", - "testRunId": "" - } - }, - { - "name": "ai-sdk-embed-operation", - "children": [ - { - "name": "embed", - "type": "function", - "children": [], - "input": { - "model": { - "config": { - "provider": "openai.embedding" - }, - "modelId": "text-embedding-3-small", - "settings": {}, - "specificationVersion": "v1" - }, - "value": "Paris is the capital of France." - }, - "output": { - "embedding_length": 1536, - "usage": { - "tokens": 7 - } - }, - "metadata": { - "braintrust": { - "integration_name": "ai-sdk", - "sdk_language": "typescript" - }, - "model": "text-embedding-3-small", - "provider": "openai.embedding" - }, - "metrics": { - "tokens": 7 - } - } - ], - "metadata": { - "operation": "embed", - "testRunId": "" - } - }, - { - "name": "ai-sdk-tool-operation", - "children": [ - { - "name": "generateText", - "type": "function", - "children": [ - { - "name": "doGenerate", - "type": "llm", - "children": [], - "input": { - "inputFormat": "prompt", - "maxRetries": 2, - "maxTokens": 128, - "mode": { - "toolChoice": { - "type": "auto" - }, - "tools": [ - { - "description": "Get the weather for a location", - "name": "get_weather", - "parameters": { - "$schema": "http://json-schema.org/draft-07/schema#", - "additionalProperties": false, - "properties": { - "location": { - "description": "The city and country", - "type": "string" - } - }, - "required": [ - "location" - ], - "type": "object" - }, - "type": "function" - } - ], - "type": "regular" - }, - "prompt": [ - { - "content": "You must inspect live weather via the provided get_weather tool before responding.", - "role": "system" - }, - { - "content": [ - { - "text": "Use the get_weather tool for Paris, France. If you do not call the tool, the answer is invalid.", - "type": "text" - } - ], - "role": "user" - } - ], - "temperature": 0 - }, - "output": { - "finishReason": "tool-calls", - "providerMetadata": { - "openai": { - "reasoningTokens": 0 - } - }, - "rawResponse": {}, - "response": { - "modelId": "gpt-4o-mini-2024-07-18", - "timestamp": "" - }, - "toolCalls": [ - { - "args": "{\"location\":\"Paris, France\"}", - "toolCallType": "function", - "toolName": "get_weather" - } - ], - "usage": { - "completionTokens": 16, - "promptTokens": 87 - }, - "warnings": [] - }, - "metadata": { - "braintrust": { - "integration_name": "ai-sdk", - "sdk_language": "typescript" - }, - "finish_reason": "tool-calls", - "model": "gpt-4o-mini-2024-07-18", - "provider": "openai.chat" - }, - "metrics": { - "completion_tokens": 16, - "prompt_tokens": 87, - "tokens": 103 - } - }, - { - "name": "get_weather", - "type": "tool", - "children": [], - "input": { - "location": "Paris, France" - }, - "output": "{\"condition\":\"sunny\",\"location\":\"Paris, France\",\"temperatureC\":22}" - } - ], - "input": { - "maxTokens": 128, - "model": { - "config": { - "compatibility": "compatible", - "provider": "openai.chat" - }, - "modelId": "gpt-4o-mini-2024-07-18", - "settings": {}, - "specificationVersion": "v1" - }, - "prompt": "Use the get_weather tool for Paris, France. If you do not call the tool, the answer is invalid.", - "system": "You must inspect live weather via the provided get_weather tool before responding.", - "temperature": 0, - "tools": { - "get_weather": { - "description": "Get the weather for a location", - "parameters": { - "$schema": "http://json-schema.org/draft-07/schema#", - "additionalProperties": false, - "properties": { - "location": { - "description": "The city and country", - "type": "string" - } - }, - "required": [ - "location" - ], - "type": "object" - } - } - } - }, - "output": { - "experimental_providerMetadata": { - "openai": { - "reasoningTokens": 0 - } - }, - "finishReason": "tool-calls", - "rawResponse": {}, - "response": { - "messages": [ - { - "content": [ - { - "text": "", - "type": "text" - }, - { - "args": { - "location": "Paris, France" - }, - "toolName": "get_weather", - "type": "tool-call" - } - ], - "role": "assistant" - }, - { - "content": [ - { - "result": "{\"condition\":\"sunny\",\"location\":\"Paris, France\",\"temperatureC\":22}", - "toolName": "get_weather", - "type": "tool-result" - } - ], - "role": "tool" - } - ], - "modelId": "gpt-4o-mini-2024-07-18", - "timestamp": "" - }, - "responseMessages": "", - "steps": [ - { - "experimental_providerMetadata": { - "openai": { - "reasoningTokens": 0 - } - }, - "finishReason": "tool-calls", - "isContinued": false, - "response": { - "messages": [ - { - "content": [ - { - "text": "", - "type": "text" - }, - { - "args": { - "location": "Paris, France" - }, - "toolName": "get_weather", - "type": "tool-call" - } - ], - "role": "assistant" - }, - { - "content": [ - { - "result": "{\"condition\":\"sunny\",\"location\":\"Paris, France\",\"temperatureC\":22}", - "toolName": "get_weather", - "type": "tool-result" - } - ], - "role": "tool" - } - ], - "modelId": "gpt-4o-mini-2024-07-18", - "timestamp": "" - }, - "stepType": "initial", - "text": "", - "toolCalls": [ - { - "args": { - "location": "Paris, France" - }, - "toolName": "get_weather", - "type": "tool-call" - } - ], - "toolResults": [ - { - "args": { - "location": "Paris, France" - }, - "result": "{\"condition\":\"sunny\",\"location\":\"Paris, France\",\"temperatureC\":22}", - "toolName": "get_weather" - } - ], - "usage": { - "completionTokens": 16, - "promptTokens": 87, - "totalTokens": 103 - }, - "warnings": [] - } - ], - "text": "", - "toolCalls": [ - { - "args": { - "location": "Paris, France" - }, - "toolName": "get_weather", - "type": "tool-call" - } - ], - "toolResults": [ - { - "args": { - "location": "Paris, France" - }, - "result": "{\"condition\":\"sunny\",\"location\":\"Paris, France\",\"temperatureC\":22}", - "toolName": "get_weather" - } - ], - "usage": { - "completionTokens": 16, - "promptTokens": 87, - "totalTokens": 103 - }, - "warnings": [] - }, - "metadata": { - "braintrust": { - "integration_name": "ai-sdk", - "sdk_language": "typescript" - }, - "model": "gpt-4o-mini-2024-07-18", - "provider": "openai.chat", - "tools": { - "get_weather": { - "description": "Get the weather for a location", - "parameters": { - "$schema": "http://json-schema.org/draft-07/schema#", - "additionalProperties": false, - "properties": { - "location": { - "description": "The city and country", - "type": "string" - } - }, - "required": [ - "location" - ], - "type": "object" - } - } - } - } - } - ], - "metadata": { - "operation": "tool", - "testRunId": "" - } - }, - { - "name": "ai-sdk-generate-object-operation", - "children": [ - { - "name": "generateObject", - "type": "function", - "children": [ - { - "name": "doGenerate", - "type": "llm", - "children": [], - "input": { - "inputFormat": "prompt", - "maxRetries": 2, - "maxTokens": 32, - "mode": { - "tool": { - "description": "Respond with a JSON object.", - "name": "json", - "parameters": { - "$schema": "http://json-schema.org/draft-07/schema#", - "additionalProperties": false, - "properties": { - "city": { - "type": "string" - } - }, - "required": [ - "city" - ], - "type": "object" - }, - "type": "function" - }, - "type": "object-tool" - }, - "prompt": [ - { - "content": [ - { - "text": "Return JSON with {\"city\":\"Paris\"}.", - "type": "text" - } - ], - "role": "user" - } - ], - "temperature": 0 - }, - "output": { - "finishReason": "stop", - "providerMetadata": { - "openai": { - "reasoningTokens": 0 - } - }, - "rawResponse": {}, - "response": { - "modelId": "gpt-4o-mini-2024-07-18", - "timestamp": "" - }, - "toolCalls": [ - { - "args": "{\"city\":\"Paris\"}", - "toolCallType": "function", - "toolName": "json" - } - ], - "usage": { - "completionTokens": 5, - "promptTokens": 59 - }, - "warnings": [] - }, - "metadata": { - "braintrust": { - "integration_name": "ai-sdk", - "sdk_language": "typescript" - }, - "finish_reason": "stop", - "model": "gpt-4o-mini-2024-07-18", - "provider": "openai.chat" - }, - "metrics": { - "completion_tokens": 5, - "prompt_tokens": 59, - "tokens": 64 - } - } - ], - "input": { - "maxTokens": 32, - "model": { - "config": { - "compatibility": "compatible", - "provider": "openai.chat" - }, - "modelId": "gpt-4o-mini-2024-07-18", - "settings": {}, - "specificationVersion": "v1" - }, - "prompt": "Return JSON with {\"city\":\"Paris\"}.", - "schema": { - "$schema": "http://json-schema.org/draft-07/schema#", - "additionalProperties": false, - "properties": { - "city": { - "type": "string" - } - }, - "required": [ - "city" - ], - "type": "object" - }, - "temperature": 0 - }, - "output": { - "experimental_providerMetadata": { - "openai": { - "reasoningTokens": 0 - } - }, - "finishReason": "stop", - "object": { - "city": "Paris" - }, - "rawResponse": {}, - "response": { - "modelId": "gpt-4o-mini-2024-07-18", - "timestamp": "" - }, - "usage": { - "completionTokens": 5, - "promptTokens": 59, - "totalTokens": 64 - }, - "warnings": [] - }, - "metadata": { - "braintrust": { - "integration_name": "ai-sdk", - "sdk_language": "typescript" - }, - "model": "gpt-4o-mini-2024-07-18", - "provider": "openai.chat" - } - } - ], - "metadata": { - "operation": "generate-object", - "testRunId": "" - } - }, - { - "name": "ai-sdk-stream-object-operation", - "children": [ - { - "name": "streamObject", - "type": "function", - "children": [ - { - "name": "doStream", - "type": "llm", - "children": [], - "input": { - "inputFormat": "prompt", - "maxRetries": 2, - "maxTokens": 32, - "mode": { - "tool": { - "description": "Respond with a JSON object.", - "name": "json", - "parameters": { - "$schema": "http://json-schema.org/draft-07/schema#", - "additionalProperties": false, - "properties": { - "city": { - "type": "string" - } - }, - "required": [ - "city" - ], - "type": "object" - }, - "type": "function" - }, - "type": "object-tool" - }, - "prompt": [ - { - "content": [ - { - "text": "Stream JSON with {\"city\":\"Paris\"}.", - "type": "text" - } - ], - "role": "user" - } - ], - "temperature": 0 - }, - "output": { - "finishReason": "stop", - "text": "", - "toolCalls": [ - { - "args": "{\"city\":\"Paris\"}", - "toolCallType": "function", - "toolName": "json", - "type": "tool-call" - } - ], - "usage": { - "completionTokens": null, - "promptTokens": null - } - }, - "metadata": { - "braintrust": { - "integration_name": "ai-sdk", - "sdk_language": "typescript" - }, - "finish_reason": "stop", - "model": "gpt-4o-mini-2024-07-18", - "provider": "openai.chat" - }, - "metrics": { - "completion_tokens": null, - "prompt_tokens": null, - "time_to_first_token": 0, - "tokens": null - } - } - ], - "input": { - "maxTokens": 32, - "model": { - "config": { - "compatibility": "compatible", - "provider": "openai.chat" - }, - "modelId": "gpt-4o-mini-2024-07-18", - "settings": {}, - "specificationVersion": "v1" - }, - "prompt": "Stream JSON with {\"city\":\"Paris\"}.", - "schema": { - "$schema": "http://json-schema.org/draft-07/schema#", - "additionalProperties": false, - "properties": { - "city": { - "type": "string" - } - }, - "required": [ - "city" - ], - "type": "object" - }, - "temperature": 0 - }, - "output": { - "object": { - "city": "Paris" - }, - "rawResponse": {}, - "warnings": [] - }, - "metadata": { - "braintrust": { - "integration_name": "ai-sdk", - "sdk_language": "typescript" - }, - "model": "gpt-4o-mini-2024-07-18", - "provider": "openai.chat" - }, - "metrics": { - "time_to_first_token": 0 - } - } - ], - "metadata": { - "operation": "stream-object", - "testRunId": "" - } - } - ], - "metadata": { - "aiSdkVersion": "3.4.33", - "scenario": "ai-sdk-instrumentation", - "testRunId": "" - } - } - ] -} diff --git a/e2e/scenarios/ai-sdk-instrumentation/__snapshots__/ai-sdk-v3-latest-auto-hook.span-tree.txt b/e2e/scenarios/ai-sdk-instrumentation/__snapshots__/ai-sdk-v3-latest-auto-hook.span-tree.txt deleted file mode 100644 index 2656453e0..000000000 --- a/e2e/scenarios/ai-sdk-instrumentation/__snapshots__/ai-sdk-v3-latest-auto-hook.span-tree.txt +++ /dev/null @@ -1,833 +0,0 @@ -span_tree: -└── ai-sdk-instrumentation-root [task] - metadata: { - "aiSdkVersion": "3.4.33", - "scenario": "ai-sdk-instrumentation", - "testRunId": "" - } - ├── ai-sdk-generate-operation - │ metadata: { - │ "operation": "generate", - │ "testRunId": "" - │ } - │ └── generateText [function] - │ input: { - │ "maxTokens": 24, - │ "model": { - │ "config": { - │ "compatibility": "compatible", - │ "provider": "openai.chat" - │ }, - │ "modelId": "gpt-4o-mini-2024-07-18", - │ "settings": {}, - │ "specificationVersion": "v1" - │ }, - │ "prompt": "Reply with the single token PARIS and no punctuation.", - │ "temperature": 0 - │ } - │ output: { - │ "experimental_providerMetadata": { - │ "openai": { - │ "reasoningTokens": 0 - │ } - │ }, - │ "finishReason": "stop", - │ "rawResponse": {}, - │ "response": { - │ "messages": [ - │ { - │ "content": [ - │ { - │ "text": "PARIS", - │ "type": "text" - │ } - │ ], - │ "role": "assistant" - │ } - │ ], - │ "modelId": "gpt-4o-mini-2024-07-18", - │ "timestamp": "" - │ }, - │ "responseMessages": "", - │ "steps": [ - │ { - │ "experimental_providerMetadata": { - │ "openai": { - │ "reasoningTokens": 0 - │ } - │ }, - │ "finishReason": "stop", - │ "isContinued": false, - │ "response": { - │ "messages": [ - │ { - │ "content": [ - │ { - │ "text": "PARIS", - │ "type": "text" - │ } - │ ], - │ "role": "assistant" - │ } - │ ], - │ "modelId": "gpt-4o-mini-2024-07-18", - │ "timestamp": "" - │ }, - │ "stepType": "initial", - │ "text": "PARIS", - │ "toolCalls": [], - │ "toolResults": [], - │ "usage": { - │ "completionTokens": 2, - │ "promptTokens": 18, - │ "totalTokens": 20 - │ }, - │ "warnings": [] - │ } - │ ], - │ "text": "PARIS", - │ "toolCalls": [], - │ "toolResults": [], - │ "usage": { - │ "completionTokens": 2, - │ "promptTokens": 18, - │ "totalTokens": 20 - │ }, - │ "warnings": [] - │ } - │ metadata: { - │ "braintrust": { - │ "integration_name": "ai-sdk", - │ "sdk_language": "typescript" - │ }, - │ "model": "gpt-4o-mini-2024-07-18", - │ "provider": "openai.chat" - │ } - │ └── doGenerate [llm] - │ input: { - │ "inputFormat": "prompt", - │ "maxRetries": 2, - │ "maxTokens": 24, - │ "mode": { - │ "type": "regular" - │ }, - │ "prompt": [ - │ { - │ "content": [ - │ { - │ "text": "Reply with the single token PARIS and no punctuation.", - │ "type": "text" - │ } - │ ], - │ "role": "user" - │ } - │ ], - │ "temperature": 0 - │ } - │ output: { - │ "finishReason": "stop", - │ "providerMetadata": { - │ "openai": { - │ "reasoningTokens": 0 - │ } - │ }, - │ "rawResponse": {}, - │ "response": { - │ "modelId": "gpt-4o-mini-2024-07-18", - │ "timestamp": "" - │ }, - │ "text": "PARIS", - │ "usage": { - │ "completionTokens": 2, - │ "promptTokens": 18 - │ }, - │ "warnings": [] - │ } - │ metadata: { - │ "braintrust": { - │ "integration_name": "ai-sdk", - │ "sdk_language": "typescript" - │ }, - │ "finish_reason": "stop", - │ "model": "gpt-4o-mini-2024-07-18", - │ "provider": "openai.chat" - │ } - │ metrics: { - │ "completion_tokens": 2, - │ "prompt_tokens": 18, - │ "tokens": 20 - │ } - ├── ai-sdk-stream-operation - │ metadata: { - │ "operation": "stream", - │ "testRunId": "" - │ } - │ └── streamText [function] - │ input: { - │ "maxTokens": 32, - │ "model": { - │ "config": { - │ "compatibility": "compatible", - │ "provider": "openai.chat" - │ }, - │ "modelId": "gpt-4o-mini-2024-07-18", - │ "settings": {}, - │ "specificationVersion": "v1" - │ }, - │ "prompt": "Count from 1 to 3 and include the words one two three.", - │ "temperature": 0 - │ } - │ output: { - │ "finishReason": "stop", - │ "rawResponse": {}, - │ "text": "One, two, three.", - │ "warnings": [] - │ } - │ metadata: { - │ "braintrust": { - │ "integration_name": "ai-sdk", - │ "sdk_language": "typescript" - │ }, - │ "model": "gpt-4o-mini-2024-07-18", - │ "provider": "openai.chat" - │ } - │ metrics: { - │ "time_to_first_token": 0 - │ } - │ └── doStream [llm] - │ input: { - │ "inputFormat": "prompt", - │ "maxRetries": 2, - │ "maxTokens": 32, - │ "mode": { - │ "type": "regular" - │ }, - │ "prompt": [ - │ { - │ "content": [ - │ { - │ "text": "Count from 1 to 3 and include the words one two three.", - │ "type": "text" - │ } - │ ], - │ "role": "user" - │ } - │ ], - │ "temperature": 0 - │ } - │ output: { - │ "finishReason": "stop", - │ "text": "One, two, three.", - │ "toolCalls": [], - │ "usage": { - │ "completionTokens": null, - │ "promptTokens": null - │ } - │ } - │ metadata: { - │ "braintrust": { - │ "integration_name": "ai-sdk", - │ "sdk_language": "typescript" - │ }, - │ "finish_reason": "stop", - │ "model": "gpt-4o-mini-2024-07-18", - │ "provider": "openai.chat" - │ } - │ metrics: { - │ "completion_tokens": null, - │ "prompt_tokens": null, - │ "time_to_first_token": 0, - │ "tokens": null - │ } - ├── ai-sdk-embed-operation - │ metadata: { - │ "operation": "embed", - │ "testRunId": "" - │ } - │ └── embed [function] - │ input: { - │ "model": { - │ "config": { - │ "provider": "openai.embedding" - │ }, - │ "modelId": "text-embedding-3-small", - │ "settings": {}, - │ "specificationVersion": "v1" - │ }, - │ "value": "Paris is the capital of France." - │ } - │ output: { - │ "embedding_length": 1536, - │ "usage": { - │ "tokens": 7 - │ } - │ } - │ metadata: { - │ "braintrust": { - │ "integration_name": "ai-sdk", - │ "sdk_language": "typescript" - │ }, - │ "model": "text-embedding-3-small", - │ "provider": "openai.embedding" - │ } - │ metrics: { - │ "tokens": 7 - │ } - ├── ai-sdk-tool-operation - │ metadata: { - │ "operation": "tool", - │ "testRunId": "" - │ } - │ └── generateText [function] - │ input: { - │ "maxTokens": 128, - │ "model": { - │ "config": { - │ "compatibility": "compatible", - │ "provider": "openai.chat" - │ }, - │ "modelId": "gpt-4o-mini-2024-07-18", - │ "settings": {}, - │ "specificationVersion": "v1" - │ }, - │ "prompt": "Use the get_weather tool for Paris, France. If you do not call the tool, the answer is invalid.", - │ "system": "You must inspect live weather via the provided get_weather tool before responding.", - │ "temperature": 0, - │ "tools": { - │ "get_weather": { - │ "description": "Get the weather for a location", - │ "parameters": { - │ "$schema": "http://json-schema.org/draft-07/schema#", - │ "additionalProperties": false, - │ "properties": { - │ "location": { - │ "description": "The city and country", - │ "type": "string" - │ } - │ }, - │ "required": [ - │ "location" - │ ], - │ "type": "object" - │ } - │ } - │ } - │ } - │ output: { - │ "experimental_providerMetadata": { - │ "openai": { - │ "reasoningTokens": 0 - │ } - │ }, - │ "finishReason": "tool-calls", - │ "rawResponse": {}, - │ "response": { - │ "messages": [ - │ { - │ "content": [ - │ { - │ "text": "", - │ "type": "text" - │ }, - │ { - │ "args": { - │ "location": "Paris, France" - │ }, - │ "toolName": "get_weather", - │ "type": "tool-call" - │ } - │ ], - │ "role": "assistant" - │ }, - │ { - │ "content": [ - │ { - │ "result": "{\"condition\":\"sunny\",\"location\":\"Paris, France\",\"temperatureC\":22}", - │ "toolName": "get_weather", - │ "type": "tool-result" - │ } - │ ], - │ "role": "tool" - │ } - │ ], - │ "modelId": "gpt-4o-mini-2024-07-18", - │ "timestamp": "" - │ }, - │ "responseMessages": "", - │ "steps": [ - │ { - │ "experimental_providerMetadata": { - │ "openai": { - │ "reasoningTokens": 0 - │ } - │ }, - │ "finishReason": "tool-calls", - │ "isContinued": false, - │ "response": { - │ "messages": [ - │ { - │ "content": [ - │ { - │ "text": "", - │ "type": "text" - │ }, - │ { - │ "args": { - │ "location": "Paris, France" - │ }, - │ "toolName": "get_weather", - │ "type": "tool-call" - │ } - │ ], - │ "role": "assistant" - │ }, - │ { - │ "content": [ - │ { - │ "result": "{\"condition\":\"sunny\",\"location\":\"Paris, France\",\"temperatureC\":22}", - │ "toolName": "get_weather", - │ "type": "tool-result" - │ } - │ ], - │ "role": "tool" - │ } - │ ], - │ "modelId": "gpt-4o-mini-2024-07-18", - │ "timestamp": "" - │ }, - │ "stepType": "initial", - │ "text": "", - │ "toolCalls": [ - │ { - │ "args": { - │ "location": "Paris, France" - │ }, - │ "toolName": "get_weather", - │ "type": "tool-call" - │ } - │ ], - │ "toolResults": [ - │ { - │ "args": { - │ "location": "Paris, France" - │ }, - │ "result": "{\"condition\":\"sunny\",\"location\":\"Paris, France\",\"temperatureC\":22}", - │ "toolName": "get_weather" - │ } - │ ], - │ "usage": { - │ "completionTokens": 16, - │ "promptTokens": 87, - │ "totalTokens": 103 - │ }, - │ "warnings": [] - │ } - │ ], - │ "text": "", - │ "toolCalls": [ - │ { - │ "args": { - │ "location": "Paris, France" - │ }, - │ "toolName": "get_weather", - │ "type": "tool-call" - │ } - │ ], - │ "toolResults": [ - │ { - │ "args": { - │ "location": "Paris, France" - │ }, - │ "result": "{\"condition\":\"sunny\",\"location\":\"Paris, France\",\"temperatureC\":22}", - │ "toolName": "get_weather" - │ } - │ ], - │ "usage": { - │ "completionTokens": 16, - │ "promptTokens": 87, - │ "totalTokens": 103 - │ }, - │ "warnings": [] - │ } - │ metadata: { - │ "braintrust": { - │ "integration_name": "ai-sdk", - │ "sdk_language": "typescript" - │ }, - │ "model": "gpt-4o-mini-2024-07-18", - │ "provider": "openai.chat", - │ "tools": { - │ "get_weather": { - │ "description": "Get the weather for a location", - │ "parameters": { - │ "$schema": "http://json-schema.org/draft-07/schema#", - │ "additionalProperties": false, - │ "properties": { - │ "location": { - │ "description": "The city and country", - │ "type": "string" - │ } - │ }, - │ "required": [ - │ "location" - │ ], - │ "type": "object" - │ } - │ } - │ } - │ } - │ ├── doGenerate [llm] - │ │ input: { - │ │ "inputFormat": "prompt", - │ │ "maxRetries": 2, - │ │ "maxTokens": 128, - │ │ "mode": { - │ │ "toolChoice": { - │ │ "type": "auto" - │ │ }, - │ │ "tools": [ - │ │ { - │ │ "description": "Get the weather for a location", - │ │ "name": "get_weather", - │ │ "parameters": { - │ │ "$schema": "http://json-schema.org/draft-07/schema#", - │ │ "additionalProperties": false, - │ │ "properties": { - │ │ "location": { - │ │ "description": "The city and country", - │ │ "type": "string" - │ │ } - │ │ }, - │ │ "required": [ - │ │ "location" - │ │ ], - │ │ "type": "object" - │ │ }, - │ │ "type": "function" - │ │ } - │ │ ], - │ │ "type": "regular" - │ │ }, - │ │ "prompt": [ - │ │ { - │ │ "content": "You must inspect live weather via the provided get_weather tool before responding.", - │ │ "role": "system" - │ │ }, - │ │ { - │ │ "content": [ - │ │ { - │ │ "text": "Use the get_weather tool for Paris, France. If you do not call the tool, the answer is invalid.", - │ │ "type": "text" - │ │ } - │ │ ], - │ │ "role": "user" - │ │ } - │ │ ], - │ │ "temperature": 0 - │ │ } - │ │ output: { - │ │ "finishReason": "tool-calls", - │ │ "providerMetadata": { - │ │ "openai": { - │ │ "reasoningTokens": 0 - │ │ } - │ │ }, - │ │ "rawResponse": {}, - │ │ "response": { - │ │ "modelId": "gpt-4o-mini-2024-07-18", - │ │ "timestamp": "" - │ │ }, - │ │ "toolCalls": [ - │ │ { - │ │ "args": "{\"location\":\"Paris, France\"}", - │ │ "toolCallType": "function", - │ │ "toolName": "get_weather" - │ │ } - │ │ ], - │ │ "usage": { - │ │ "completionTokens": 16, - │ │ "promptTokens": 87 - │ │ }, - │ │ "warnings": [] - │ │ } - │ │ metadata: { - │ │ "braintrust": { - │ │ "integration_name": "ai-sdk", - │ │ "sdk_language": "typescript" - │ │ }, - │ │ "finish_reason": "tool-calls", - │ │ "model": "gpt-4o-mini-2024-07-18", - │ │ "provider": "openai.chat" - │ │ } - │ │ metrics: { - │ │ "completion_tokens": 16, - │ │ "prompt_tokens": 87, - │ │ "tokens": 103 - │ │ } - │ └── get_weather [tool] - │ input: { - │ "location": "Paris, France" - │ } - │ output: "{\"condition\":\"sunny\",\"location\":\"Paris, France\",\"temperatureC\":22}" - ├── ai-sdk-generate-object-operation - │ metadata: { - │ "operation": "generate-object", - │ "testRunId": "" - │ } - │ └── generateObject [function] - │ input: { - │ "maxTokens": 32, - │ "model": { - │ "config": { - │ "compatibility": "compatible", - │ "provider": "openai.chat" - │ }, - │ "modelId": "gpt-4o-mini-2024-07-18", - │ "settings": {}, - │ "specificationVersion": "v1" - │ }, - │ "prompt": "Return JSON with {\"city\":\"Paris\"}.", - │ "schema": { - │ "$schema": "http://json-schema.org/draft-07/schema#", - │ "additionalProperties": false, - │ "properties": { - │ "city": { - │ "type": "string" - │ } - │ }, - │ "required": [ - │ "city" - │ ], - │ "type": "object" - │ }, - │ "temperature": 0 - │ } - │ output: { - │ "experimental_providerMetadata": { - │ "openai": { - │ "reasoningTokens": 0 - │ } - │ }, - │ "finishReason": "stop", - │ "object": { - │ "city": "Paris" - │ }, - │ "rawResponse": {}, - │ "response": { - │ "modelId": "gpt-4o-mini-2024-07-18", - │ "timestamp": "" - │ }, - │ "usage": { - │ "completionTokens": 5, - │ "promptTokens": 59, - │ "totalTokens": 64 - │ }, - │ "warnings": [] - │ } - │ metadata: { - │ "braintrust": { - │ "integration_name": "ai-sdk", - │ "sdk_language": "typescript" - │ }, - │ "model": "gpt-4o-mini-2024-07-18", - │ "provider": "openai.chat" - │ } - │ └── doGenerate [llm] - │ input: { - │ "inputFormat": "prompt", - │ "maxRetries": 2, - │ "maxTokens": 32, - │ "mode": { - │ "tool": { - │ "description": "Respond with a JSON object.", - │ "name": "json", - │ "parameters": { - │ "$schema": "http://json-schema.org/draft-07/schema#", - │ "additionalProperties": false, - │ "properties": { - │ "city": { - │ "type": "string" - │ } - │ }, - │ "required": [ - │ "city" - │ ], - │ "type": "object" - │ }, - │ "type": "function" - │ }, - │ "type": "object-tool" - │ }, - │ "prompt": [ - │ { - │ "content": [ - │ { - │ "text": "Return JSON with {\"city\":\"Paris\"}.", - │ "type": "text" - │ } - │ ], - │ "role": "user" - │ } - │ ], - │ "temperature": 0 - │ } - │ output: { - │ "finishReason": "stop", - │ "providerMetadata": { - │ "openai": { - │ "reasoningTokens": 0 - │ } - │ }, - │ "rawResponse": {}, - │ "response": { - │ "modelId": "gpt-4o-mini-2024-07-18", - │ "timestamp": "" - │ }, - │ "toolCalls": [ - │ { - │ "args": "{\"city\":\"Paris\"}", - │ "toolCallType": "function", - │ "toolName": "json" - │ } - │ ], - │ "usage": { - │ "completionTokens": 5, - │ "promptTokens": 59 - │ }, - │ "warnings": [] - │ } - │ metadata: { - │ "braintrust": { - │ "integration_name": "ai-sdk", - │ "sdk_language": "typescript" - │ }, - │ "finish_reason": "stop", - │ "model": "gpt-4o-mini-2024-07-18", - │ "provider": "openai.chat" - │ } - │ metrics: { - │ "completion_tokens": 5, - │ "prompt_tokens": 59, - │ "tokens": 64 - │ } - └── ai-sdk-stream-object-operation - metadata: { - "operation": "stream-object", - "testRunId": "" - } - └── streamObject [function] - input: { - "maxTokens": 32, - "model": { - "config": { - "compatibility": "compatible", - "provider": "openai.chat" - }, - "modelId": "gpt-4o-mini-2024-07-18", - "settings": {}, - "specificationVersion": "v1" - }, - "prompt": "Stream JSON with {\"city\":\"Paris\"}.", - "schema": { - "$schema": "http://json-schema.org/draft-07/schema#", - "additionalProperties": false, - "properties": { - "city": { - "type": "string" - } - }, - "required": [ - "city" - ], - "type": "object" - }, - "temperature": 0 - } - output: { - "object": { - "city": "Paris" - }, - "rawResponse": {}, - "warnings": [] - } - metadata: { - "braintrust": { - "integration_name": "ai-sdk", - "sdk_language": "typescript" - }, - "model": "gpt-4o-mini-2024-07-18", - "provider": "openai.chat" - } - metrics: { - "time_to_first_token": 0 - } - └── doStream [llm] - input: { - "inputFormat": "prompt", - "maxRetries": 2, - "maxTokens": 32, - "mode": { - "tool": { - "description": "Respond with a JSON object.", - "name": "json", - "parameters": { - "$schema": "http://json-schema.org/draft-07/schema#", - "additionalProperties": false, - "properties": { - "city": { - "type": "string" - } - }, - "required": [ - "city" - ], - "type": "object" - }, - "type": "function" - }, - "type": "object-tool" - }, - "prompt": [ - { - "content": [ - { - "text": "Stream JSON with {\"city\":\"Paris\"}.", - "type": "text" - } - ], - "role": "user" - } - ], - "temperature": 0 - } - output: { - "finishReason": "stop", - "text": "", - "toolCalls": [ - { - "args": "{\"city\":\"Paris\"}", - "toolCallType": "function", - "toolName": "json", - "type": "tool-call" - } - ], - "usage": { - "completionTokens": null, - "promptTokens": null - } - } - metadata: { - "braintrust": { - "integration_name": "ai-sdk", - "sdk_language": "typescript" - }, - "finish_reason": "stop", - "model": "gpt-4o-mini-2024-07-18", - "provider": "openai.chat" - } - metrics: { - "completion_tokens": null, - "prompt_tokens": null, - "time_to_first_token": 0, - "tokens": null - } diff --git a/e2e/scenarios/ai-sdk-instrumentation/__snapshots__/ai-sdk-v3-latest-wrapped.span-tree.json b/e2e/scenarios/ai-sdk-instrumentation/__snapshots__/ai-sdk-v3-latest-wrapped.span-tree.json deleted file mode 100644 index 3a9e3b97e..000000000 --- a/e2e/scenarios/ai-sdk-instrumentation/__snapshots__/ai-sdk-v3-latest-wrapped.span-tree.json +++ /dev/null @@ -1,918 +0,0 @@ -{ - "span_tree": [ - { - "name": "ai-sdk-instrumentation-root", - "type": "task", - "children": [ - { - "name": "ai-sdk-generate-operation", - "children": [ - { - "name": "generateText", - "type": "function", - "children": [ - { - "name": "doGenerate", - "type": "llm", - "children": [], - "input": { - "inputFormat": "prompt", - "maxRetries": 2, - "maxTokens": 24, - "mode": { - "type": "regular" - }, - "prompt": [ - { - "content": [ - { - "text": "Reply with the single token PARIS and no punctuation.", - "type": "text" - } - ], - "role": "user" - } - ], - "temperature": 0 - }, - "output": { - "finishReason": "stop", - "providerMetadata": { - "openai": { - "reasoningTokens": 0 - } - }, - "rawResponse": {}, - "response": { - "modelId": "gpt-4o-mini-2024-07-18", - "timestamp": "" - }, - "text": "PARIS", - "usage": { - "completionTokens": 2, - "promptTokens": 18 - }, - "warnings": [] - }, - "metadata": { - "braintrust": { - "integration_name": "ai-sdk", - "sdk_language": "typescript" - }, - "finish_reason": "stop", - "model": "gpt-4o-mini-2024-07-18", - "provider": "openai.chat" - }, - "metrics": { - "completion_tokens": 2, - "prompt_tokens": 18, - "tokens": 20 - } - } - ], - "input": { - "maxTokens": 24, - "model": { - "config": { - "compatibility": "compatible", - "provider": "openai.chat" - }, - "modelId": "gpt-4o-mini-2024-07-18", - "settings": {}, - "specificationVersion": "v1" - }, - "prompt": "Reply with the single token PARIS and no punctuation.", - "temperature": 0 - }, - "output": { - "experimental_providerMetadata": { - "openai": { - "reasoningTokens": 0 - } - }, - "finishReason": "stop", - "rawResponse": {}, - "response": { - "messages": [ - { - "content": [ - { - "text": "PARIS", - "type": "text" - } - ], - "role": "assistant" - } - ], - "modelId": "gpt-4o-mini-2024-07-18", - "timestamp": "" - }, - "responseMessages": "", - "steps": [ - { - "experimental_providerMetadata": { - "openai": { - "reasoningTokens": 0 - } - }, - "finishReason": "stop", - "isContinued": false, - "response": { - "messages": [ - { - "content": [ - { - "text": "PARIS", - "type": "text" - } - ], - "role": "assistant" - } - ], - "modelId": "gpt-4o-mini-2024-07-18", - "timestamp": "" - }, - "stepType": "initial", - "text": "PARIS", - "toolCalls": [], - "toolResults": [], - "usage": { - "completionTokens": 2, - "promptTokens": 18, - "totalTokens": 20 - }, - "warnings": [] - } - ], - "text": "PARIS", - "toolCalls": [], - "toolResults": [], - "usage": { - "completionTokens": 2, - "promptTokens": 18, - "totalTokens": 20 - }, - "warnings": [] - }, - "metadata": { - "braintrust": { - "integration_name": "ai-sdk", - "sdk_language": "typescript" - }, - "model": "gpt-4o-mini-2024-07-18", - "provider": "openai.chat" - } - } - ], - "metadata": { - "operation": "generate", - "testRunId": "" - } - }, - { - "name": "ai-sdk-stream-operation", - "children": [ - { - "name": "streamText", - "type": "function", - "children": [ - { - "name": "doStream", - "type": "llm", - "children": [], - "input": { - "inputFormat": "prompt", - "maxRetries": 2, - "maxTokens": 32, - "mode": { - "type": "regular" - }, - "prompt": [ - { - "content": [ - { - "text": "Count from 1 to 3 and include the words one two three.", - "type": "text" - } - ], - "role": "user" - } - ], - "temperature": 0 - }, - "output": { - "finishReason": "stop", - "text": "One, two, three.", - "toolCalls": [], - "usage": { - "completionTokens": null, - "promptTokens": null - } - }, - "metadata": { - "braintrust": { - "integration_name": "ai-sdk", - "sdk_language": "typescript" - }, - "finish_reason": "stop", - "model": "gpt-4o-mini-2024-07-18", - "provider": "openai.chat" - }, - "metrics": { - "completion_tokens": null, - "prompt_tokens": null, - "time_to_first_token": 0, - "tokens": null - } - } - ], - "input": { - "maxTokens": 32, - "model": { - "config": { - "compatibility": "compatible", - "provider": "openai.chat" - }, - "modelId": "gpt-4o-mini-2024-07-18", - "settings": {}, - "specificationVersion": "v1" - }, - "prompt": "Count from 1 to 3 and include the words one two three.", - "temperature": 0 - }, - "output": { - "finishReason": "stop", - "rawResponse": {}, - "text": "One, two, three.", - "warnings": [] - }, - "metadata": { - "braintrust": { - "integration_name": "ai-sdk", - "sdk_language": "typescript" - }, - "model": "gpt-4o-mini-2024-07-18", - "provider": "openai.chat" - }, - "metrics": { - "time_to_first_token": 0 - } - } - ], - "metadata": { - "operation": "stream", - "testRunId": "" - } - }, - { - "name": "ai-sdk-embed-operation", - "children": [ - { - "name": "embed", - "type": "function", - "children": [], - "input": { - "model": { - "config": { - "provider": "openai.embedding" - }, - "modelId": "text-embedding-3-small", - "settings": {}, - "specificationVersion": "v1" - }, - "value": "Paris is the capital of France." - }, - "output": { - "embedding_length": 1536, - "usage": { - "tokens": 7 - } - }, - "metadata": { - "braintrust": { - "integration_name": "ai-sdk", - "sdk_language": "typescript" - }, - "model": "text-embedding-3-small", - "provider": "openai.embedding" - }, - "metrics": { - "tokens": 7 - } - } - ], - "metadata": { - "operation": "embed", - "testRunId": "" - } - }, - { - "name": "ai-sdk-tool-operation", - "children": [ - { - "name": "generateText", - "type": "function", - "children": [ - { - "name": "doGenerate", - "type": "llm", - "children": [], - "input": { - "inputFormat": "prompt", - "maxRetries": 2, - "maxTokens": 128, - "mode": { - "toolChoice": { - "type": "auto" - }, - "tools": [ - { - "description": "Get the weather for a location", - "name": "get_weather", - "parameters": { - "$schema": "http://json-schema.org/draft-07/schema#", - "additionalProperties": false, - "properties": { - "location": { - "description": "The city and country", - "type": "string" - } - }, - "required": [ - "location" - ], - "type": "object" - }, - "type": "function" - } - ], - "type": "regular" - }, - "prompt": [ - { - "content": "You must inspect live weather via the provided get_weather tool before responding.", - "role": "system" - }, - { - "content": [ - { - "text": "Use the get_weather tool for Paris, France. If you do not call the tool, the answer is invalid.", - "type": "text" - } - ], - "role": "user" - } - ], - "temperature": 0 - }, - "output": { - "finishReason": "tool-calls", - "providerMetadata": { - "openai": { - "reasoningTokens": 0 - } - }, - "rawResponse": {}, - "response": { - "modelId": "gpt-4o-mini-2024-07-18", - "timestamp": "" - }, - "toolCalls": [ - { - "args": "{\"location\":\"Paris, France\"}", - "toolCallType": "function", - "toolName": "get_weather" - } - ], - "usage": { - "completionTokens": 16, - "promptTokens": 87 - }, - "warnings": [] - }, - "metadata": { - "braintrust": { - "integration_name": "ai-sdk", - "sdk_language": "typescript" - }, - "finish_reason": "tool-calls", - "model": "gpt-4o-mini-2024-07-18", - "provider": "openai.chat" - }, - "metrics": { - "completion_tokens": 16, - "prompt_tokens": 87, - "tokens": 103 - } - }, - { - "name": "get_weather", - "type": "tool", - "children": [], - "input": { - "location": "Paris, France" - }, - "output": "{\"condition\":\"sunny\",\"location\":\"Paris, France\",\"temperatureC\":22}" - } - ], - "input": { - "maxTokens": 128, - "model": { - "config": { - "compatibility": "compatible", - "provider": "openai.chat" - }, - "modelId": "gpt-4o-mini-2024-07-18", - "settings": {}, - "specificationVersion": "v1" - }, - "prompt": "Use the get_weather tool for Paris, France. If you do not call the tool, the answer is invalid.", - "system": "You must inspect live weather via the provided get_weather tool before responding.", - "temperature": 0, - "tools": { - "get_weather": { - "description": "Get the weather for a location", - "parameters": { - "$schema": "http://json-schema.org/draft-07/schema#", - "additionalProperties": false, - "properties": { - "location": { - "description": "The city and country", - "type": "string" - } - }, - "required": [ - "location" - ], - "type": "object" - } - } - } - }, - "output": { - "experimental_providerMetadata": { - "openai": { - "reasoningTokens": 0 - } - }, - "finishReason": "tool-calls", - "rawResponse": {}, - "response": { - "messages": [ - { - "content": [ - { - "text": "", - "type": "text" - }, - { - "args": { - "location": "Paris, France" - }, - "toolName": "get_weather", - "type": "tool-call" - } - ], - "role": "assistant" - }, - { - "content": [ - { - "result": "{\"condition\":\"sunny\",\"location\":\"Paris, France\",\"temperatureC\":22}", - "toolName": "get_weather", - "type": "tool-result" - } - ], - "role": "tool" - } - ], - "modelId": "gpt-4o-mini-2024-07-18", - "timestamp": "" - }, - "responseMessages": "", - "steps": [ - { - "experimental_providerMetadata": { - "openai": { - "reasoningTokens": 0 - } - }, - "finishReason": "tool-calls", - "isContinued": false, - "response": { - "messages": [ - { - "content": [ - { - "text": "", - "type": "text" - }, - { - "args": { - "location": "Paris, France" - }, - "toolName": "get_weather", - "type": "tool-call" - } - ], - "role": "assistant" - }, - { - "content": [ - { - "result": "{\"condition\":\"sunny\",\"location\":\"Paris, France\",\"temperatureC\":22}", - "toolName": "get_weather", - "type": "tool-result" - } - ], - "role": "tool" - } - ], - "modelId": "gpt-4o-mini-2024-07-18", - "timestamp": "" - }, - "stepType": "initial", - "text": "", - "toolCalls": [ - { - "args": { - "location": "Paris, France" - }, - "toolName": "get_weather", - "type": "tool-call" - } - ], - "toolResults": [ - { - "args": { - "location": "Paris, France" - }, - "result": "{\"condition\":\"sunny\",\"location\":\"Paris, France\",\"temperatureC\":22}", - "toolName": "get_weather" - } - ], - "usage": { - "completionTokens": 16, - "promptTokens": 87, - "totalTokens": 103 - }, - "warnings": [] - } - ], - "text": "", - "toolCalls": [ - { - "args": { - "location": "Paris, France" - }, - "toolName": "get_weather", - "type": "tool-call" - } - ], - "toolResults": [ - { - "args": { - "location": "Paris, France" - }, - "result": "{\"condition\":\"sunny\",\"location\":\"Paris, France\",\"temperatureC\":22}", - "toolName": "get_weather" - } - ], - "usage": { - "completionTokens": 16, - "promptTokens": 87, - "totalTokens": 103 - }, - "warnings": [] - }, - "metadata": { - "braintrust": { - "integration_name": "ai-sdk", - "sdk_language": "typescript" - }, - "model": "gpt-4o-mini-2024-07-18", - "provider": "openai.chat", - "tools": { - "get_weather": { - "description": "Get the weather for a location", - "parameters": { - "$schema": "http://json-schema.org/draft-07/schema#", - "additionalProperties": false, - "properties": { - "location": { - "description": "The city and country", - "type": "string" - } - }, - "required": [ - "location" - ], - "type": "object" - } - } - } - } - } - ], - "metadata": { - "operation": "tool", - "testRunId": "" - } - }, - { - "name": "ai-sdk-generate-object-operation", - "children": [ - { - "name": "generateObject", - "type": "function", - "children": [ - { - "name": "doGenerate", - "type": "llm", - "children": [], - "input": { - "inputFormat": "prompt", - "maxRetries": 2, - "maxTokens": 32, - "mode": { - "tool": { - "description": "Respond with a JSON object.", - "name": "json", - "parameters": { - "$schema": "http://json-schema.org/draft-07/schema#", - "additionalProperties": false, - "properties": { - "city": { - "type": "string" - } - }, - "required": [ - "city" - ], - "type": "object" - }, - "type": "function" - }, - "type": "object-tool" - }, - "prompt": [ - { - "content": [ - { - "text": "Return JSON with {\"city\":\"Paris\"}.", - "type": "text" - } - ], - "role": "user" - } - ], - "temperature": 0 - }, - "output": { - "finishReason": "stop", - "providerMetadata": { - "openai": { - "reasoningTokens": 0 - } - }, - "rawResponse": {}, - "response": { - "modelId": "gpt-4o-mini-2024-07-18", - "timestamp": "" - }, - "toolCalls": [ - { - "args": "{\"city\":\"Paris\"}", - "toolCallType": "function", - "toolName": "json" - } - ], - "usage": { - "completionTokens": 5, - "promptTokens": 59 - }, - "warnings": [] - }, - "metadata": { - "braintrust": { - "integration_name": "ai-sdk", - "sdk_language": "typescript" - }, - "finish_reason": "stop", - "model": "gpt-4o-mini-2024-07-18", - "provider": "openai.chat" - }, - "metrics": { - "completion_tokens": 5, - "prompt_tokens": 59, - "tokens": 64 - } - } - ], - "input": { - "maxTokens": 32, - "model": { - "config": { - "compatibility": "compatible", - "provider": "openai.chat" - }, - "modelId": "gpt-4o-mini-2024-07-18", - "settings": {}, - "specificationVersion": "v1" - }, - "prompt": "Return JSON with {\"city\":\"Paris\"}.", - "schema": { - "$schema": "http://json-schema.org/draft-07/schema#", - "additionalProperties": false, - "properties": { - "city": { - "type": "string" - } - }, - "required": [ - "city" - ], - "type": "object" - }, - "temperature": 0 - }, - "output": { - "experimental_providerMetadata": { - "openai": { - "reasoningTokens": 0 - } - }, - "finishReason": "stop", - "object": { - "city": "Paris" - }, - "rawResponse": {}, - "response": { - "modelId": "gpt-4o-mini-2024-07-18", - "timestamp": "" - }, - "usage": { - "completionTokens": 5, - "promptTokens": 59, - "totalTokens": 64 - }, - "warnings": [] - }, - "metadata": { - "braintrust": { - "integration_name": "ai-sdk", - "sdk_language": "typescript" - }, - "model": "gpt-4o-mini-2024-07-18", - "provider": "openai.chat" - } - } - ], - "metadata": { - "operation": "generate-object", - "testRunId": "" - } - }, - { - "name": "ai-sdk-stream-object-operation", - "children": [ - { - "name": "streamObject", - "type": "function", - "children": [ - { - "name": "doStream", - "type": "llm", - "children": [], - "input": { - "inputFormat": "prompt", - "maxRetries": 2, - "maxTokens": 32, - "mode": { - "tool": { - "description": "Respond with a JSON object.", - "name": "json", - "parameters": { - "$schema": "http://json-schema.org/draft-07/schema#", - "additionalProperties": false, - "properties": { - "city": { - "type": "string" - } - }, - "required": [ - "city" - ], - "type": "object" - }, - "type": "function" - }, - "type": "object-tool" - }, - "prompt": [ - { - "content": [ - { - "text": "Stream JSON with {\"city\":\"Paris\"}.", - "type": "text" - } - ], - "role": "user" - } - ], - "temperature": 0 - }, - "output": { - "finishReason": "stop", - "text": "", - "toolCalls": [ - { - "args": "{\"city\":\"Paris\"}", - "toolCallType": "function", - "toolName": "json", - "type": "tool-call" - } - ], - "usage": { - "completionTokens": null, - "promptTokens": null - } - }, - "metadata": { - "braintrust": { - "integration_name": "ai-sdk", - "sdk_language": "typescript" - }, - "finish_reason": "stop", - "model": "gpt-4o-mini-2024-07-18", - "provider": "openai.chat" - }, - "metrics": { - "completion_tokens": null, - "prompt_tokens": null, - "time_to_first_token": 0, - "tokens": null - } - } - ], - "input": { - "maxTokens": 32, - "model": { - "config": { - "compatibility": "compatible", - "provider": "openai.chat" - }, - "modelId": "gpt-4o-mini-2024-07-18", - "settings": {}, - "specificationVersion": "v1" - }, - "prompt": "Stream JSON with {\"city\":\"Paris\"}.", - "schema": { - "$schema": "http://json-schema.org/draft-07/schema#", - "additionalProperties": false, - "properties": { - "city": { - "type": "string" - } - }, - "required": [ - "city" - ], - "type": "object" - }, - "temperature": 0 - }, - "output": { - "object": { - "city": "Paris" - }, - "rawResponse": {}, - "warnings": [] - }, - "metadata": { - "braintrust": { - "integration_name": "ai-sdk", - "sdk_language": "typescript" - }, - "model": "gpt-4o-mini-2024-07-18", - "provider": "openai.chat" - }, - "metrics": { - "time_to_first_token": 0 - } - } - ], - "metadata": { - "operation": "stream-object", - "testRunId": "" - } - } - ], - "metadata": { - "aiSdkVersion": "3.4.33", - "scenario": "ai-sdk-instrumentation", - "testRunId": "" - } - } - ] -} diff --git a/e2e/scenarios/ai-sdk-instrumentation/__snapshots__/ai-sdk-v3-latest-wrapped.span-tree.txt b/e2e/scenarios/ai-sdk-instrumentation/__snapshots__/ai-sdk-v3-latest-wrapped.span-tree.txt deleted file mode 100644 index 2656453e0..000000000 --- a/e2e/scenarios/ai-sdk-instrumentation/__snapshots__/ai-sdk-v3-latest-wrapped.span-tree.txt +++ /dev/null @@ -1,833 +0,0 @@ -span_tree: -└── ai-sdk-instrumentation-root [task] - metadata: { - "aiSdkVersion": "3.4.33", - "scenario": "ai-sdk-instrumentation", - "testRunId": "" - } - ├── ai-sdk-generate-operation - │ metadata: { - │ "operation": "generate", - │ "testRunId": "" - │ } - │ └── generateText [function] - │ input: { - │ "maxTokens": 24, - │ "model": { - │ "config": { - │ "compatibility": "compatible", - │ "provider": "openai.chat" - │ }, - │ "modelId": "gpt-4o-mini-2024-07-18", - │ "settings": {}, - │ "specificationVersion": "v1" - │ }, - │ "prompt": "Reply with the single token PARIS and no punctuation.", - │ "temperature": 0 - │ } - │ output: { - │ "experimental_providerMetadata": { - │ "openai": { - │ "reasoningTokens": 0 - │ } - │ }, - │ "finishReason": "stop", - │ "rawResponse": {}, - │ "response": { - │ "messages": [ - │ { - │ "content": [ - │ { - │ "text": "PARIS", - │ "type": "text" - │ } - │ ], - │ "role": "assistant" - │ } - │ ], - │ "modelId": "gpt-4o-mini-2024-07-18", - │ "timestamp": "" - │ }, - │ "responseMessages": "", - │ "steps": [ - │ { - │ "experimental_providerMetadata": { - │ "openai": { - │ "reasoningTokens": 0 - │ } - │ }, - │ "finishReason": "stop", - │ "isContinued": false, - │ "response": { - │ "messages": [ - │ { - │ "content": [ - │ { - │ "text": "PARIS", - │ "type": "text" - │ } - │ ], - │ "role": "assistant" - │ } - │ ], - │ "modelId": "gpt-4o-mini-2024-07-18", - │ "timestamp": "" - │ }, - │ "stepType": "initial", - │ "text": "PARIS", - │ "toolCalls": [], - │ "toolResults": [], - │ "usage": { - │ "completionTokens": 2, - │ "promptTokens": 18, - │ "totalTokens": 20 - │ }, - │ "warnings": [] - │ } - │ ], - │ "text": "PARIS", - │ "toolCalls": [], - │ "toolResults": [], - │ "usage": { - │ "completionTokens": 2, - │ "promptTokens": 18, - │ "totalTokens": 20 - │ }, - │ "warnings": [] - │ } - │ metadata: { - │ "braintrust": { - │ "integration_name": "ai-sdk", - │ "sdk_language": "typescript" - │ }, - │ "model": "gpt-4o-mini-2024-07-18", - │ "provider": "openai.chat" - │ } - │ └── doGenerate [llm] - │ input: { - │ "inputFormat": "prompt", - │ "maxRetries": 2, - │ "maxTokens": 24, - │ "mode": { - │ "type": "regular" - │ }, - │ "prompt": [ - │ { - │ "content": [ - │ { - │ "text": "Reply with the single token PARIS and no punctuation.", - │ "type": "text" - │ } - │ ], - │ "role": "user" - │ } - │ ], - │ "temperature": 0 - │ } - │ output: { - │ "finishReason": "stop", - │ "providerMetadata": { - │ "openai": { - │ "reasoningTokens": 0 - │ } - │ }, - │ "rawResponse": {}, - │ "response": { - │ "modelId": "gpt-4o-mini-2024-07-18", - │ "timestamp": "" - │ }, - │ "text": "PARIS", - │ "usage": { - │ "completionTokens": 2, - │ "promptTokens": 18 - │ }, - │ "warnings": [] - │ } - │ metadata: { - │ "braintrust": { - │ "integration_name": "ai-sdk", - │ "sdk_language": "typescript" - │ }, - │ "finish_reason": "stop", - │ "model": "gpt-4o-mini-2024-07-18", - │ "provider": "openai.chat" - │ } - │ metrics: { - │ "completion_tokens": 2, - │ "prompt_tokens": 18, - │ "tokens": 20 - │ } - ├── ai-sdk-stream-operation - │ metadata: { - │ "operation": "stream", - │ "testRunId": "" - │ } - │ └── streamText [function] - │ input: { - │ "maxTokens": 32, - │ "model": { - │ "config": { - │ "compatibility": "compatible", - │ "provider": "openai.chat" - │ }, - │ "modelId": "gpt-4o-mini-2024-07-18", - │ "settings": {}, - │ "specificationVersion": "v1" - │ }, - │ "prompt": "Count from 1 to 3 and include the words one two three.", - │ "temperature": 0 - │ } - │ output: { - │ "finishReason": "stop", - │ "rawResponse": {}, - │ "text": "One, two, three.", - │ "warnings": [] - │ } - │ metadata: { - │ "braintrust": { - │ "integration_name": "ai-sdk", - │ "sdk_language": "typescript" - │ }, - │ "model": "gpt-4o-mini-2024-07-18", - │ "provider": "openai.chat" - │ } - │ metrics: { - │ "time_to_first_token": 0 - │ } - │ └── doStream [llm] - │ input: { - │ "inputFormat": "prompt", - │ "maxRetries": 2, - │ "maxTokens": 32, - │ "mode": { - │ "type": "regular" - │ }, - │ "prompt": [ - │ { - │ "content": [ - │ { - │ "text": "Count from 1 to 3 and include the words one two three.", - │ "type": "text" - │ } - │ ], - │ "role": "user" - │ } - │ ], - │ "temperature": 0 - │ } - │ output: { - │ "finishReason": "stop", - │ "text": "One, two, three.", - │ "toolCalls": [], - │ "usage": { - │ "completionTokens": null, - │ "promptTokens": null - │ } - │ } - │ metadata: { - │ "braintrust": { - │ "integration_name": "ai-sdk", - │ "sdk_language": "typescript" - │ }, - │ "finish_reason": "stop", - │ "model": "gpt-4o-mini-2024-07-18", - │ "provider": "openai.chat" - │ } - │ metrics: { - │ "completion_tokens": null, - │ "prompt_tokens": null, - │ "time_to_first_token": 0, - │ "tokens": null - │ } - ├── ai-sdk-embed-operation - │ metadata: { - │ "operation": "embed", - │ "testRunId": "" - │ } - │ └── embed [function] - │ input: { - │ "model": { - │ "config": { - │ "provider": "openai.embedding" - │ }, - │ "modelId": "text-embedding-3-small", - │ "settings": {}, - │ "specificationVersion": "v1" - │ }, - │ "value": "Paris is the capital of France." - │ } - │ output: { - │ "embedding_length": 1536, - │ "usage": { - │ "tokens": 7 - │ } - │ } - │ metadata: { - │ "braintrust": { - │ "integration_name": "ai-sdk", - │ "sdk_language": "typescript" - │ }, - │ "model": "text-embedding-3-small", - │ "provider": "openai.embedding" - │ } - │ metrics: { - │ "tokens": 7 - │ } - ├── ai-sdk-tool-operation - │ metadata: { - │ "operation": "tool", - │ "testRunId": "" - │ } - │ └── generateText [function] - │ input: { - │ "maxTokens": 128, - │ "model": { - │ "config": { - │ "compatibility": "compatible", - │ "provider": "openai.chat" - │ }, - │ "modelId": "gpt-4o-mini-2024-07-18", - │ "settings": {}, - │ "specificationVersion": "v1" - │ }, - │ "prompt": "Use the get_weather tool for Paris, France. If you do not call the tool, the answer is invalid.", - │ "system": "You must inspect live weather via the provided get_weather tool before responding.", - │ "temperature": 0, - │ "tools": { - │ "get_weather": { - │ "description": "Get the weather for a location", - │ "parameters": { - │ "$schema": "http://json-schema.org/draft-07/schema#", - │ "additionalProperties": false, - │ "properties": { - │ "location": { - │ "description": "The city and country", - │ "type": "string" - │ } - │ }, - │ "required": [ - │ "location" - │ ], - │ "type": "object" - │ } - │ } - │ } - │ } - │ output: { - │ "experimental_providerMetadata": { - │ "openai": { - │ "reasoningTokens": 0 - │ } - │ }, - │ "finishReason": "tool-calls", - │ "rawResponse": {}, - │ "response": { - │ "messages": [ - │ { - │ "content": [ - │ { - │ "text": "", - │ "type": "text" - │ }, - │ { - │ "args": { - │ "location": "Paris, France" - │ }, - │ "toolName": "get_weather", - │ "type": "tool-call" - │ } - │ ], - │ "role": "assistant" - │ }, - │ { - │ "content": [ - │ { - │ "result": "{\"condition\":\"sunny\",\"location\":\"Paris, France\",\"temperatureC\":22}", - │ "toolName": "get_weather", - │ "type": "tool-result" - │ } - │ ], - │ "role": "tool" - │ } - │ ], - │ "modelId": "gpt-4o-mini-2024-07-18", - │ "timestamp": "" - │ }, - │ "responseMessages": "", - │ "steps": [ - │ { - │ "experimental_providerMetadata": { - │ "openai": { - │ "reasoningTokens": 0 - │ } - │ }, - │ "finishReason": "tool-calls", - │ "isContinued": false, - │ "response": { - │ "messages": [ - │ { - │ "content": [ - │ { - │ "text": "", - │ "type": "text" - │ }, - │ { - │ "args": { - │ "location": "Paris, France" - │ }, - │ "toolName": "get_weather", - │ "type": "tool-call" - │ } - │ ], - │ "role": "assistant" - │ }, - │ { - │ "content": [ - │ { - │ "result": "{\"condition\":\"sunny\",\"location\":\"Paris, France\",\"temperatureC\":22}", - │ "toolName": "get_weather", - │ "type": "tool-result" - │ } - │ ], - │ "role": "tool" - │ } - │ ], - │ "modelId": "gpt-4o-mini-2024-07-18", - │ "timestamp": "" - │ }, - │ "stepType": "initial", - │ "text": "", - │ "toolCalls": [ - │ { - │ "args": { - │ "location": "Paris, France" - │ }, - │ "toolName": "get_weather", - │ "type": "tool-call" - │ } - │ ], - │ "toolResults": [ - │ { - │ "args": { - │ "location": "Paris, France" - │ }, - │ "result": "{\"condition\":\"sunny\",\"location\":\"Paris, France\",\"temperatureC\":22}", - │ "toolName": "get_weather" - │ } - │ ], - │ "usage": { - │ "completionTokens": 16, - │ "promptTokens": 87, - │ "totalTokens": 103 - │ }, - │ "warnings": [] - │ } - │ ], - │ "text": "", - │ "toolCalls": [ - │ { - │ "args": { - │ "location": "Paris, France" - │ }, - │ "toolName": "get_weather", - │ "type": "tool-call" - │ } - │ ], - │ "toolResults": [ - │ { - │ "args": { - │ "location": "Paris, France" - │ }, - │ "result": "{\"condition\":\"sunny\",\"location\":\"Paris, France\",\"temperatureC\":22}", - │ "toolName": "get_weather" - │ } - │ ], - │ "usage": { - │ "completionTokens": 16, - │ "promptTokens": 87, - │ "totalTokens": 103 - │ }, - │ "warnings": [] - │ } - │ metadata: { - │ "braintrust": { - │ "integration_name": "ai-sdk", - │ "sdk_language": "typescript" - │ }, - │ "model": "gpt-4o-mini-2024-07-18", - │ "provider": "openai.chat", - │ "tools": { - │ "get_weather": { - │ "description": "Get the weather for a location", - │ "parameters": { - │ "$schema": "http://json-schema.org/draft-07/schema#", - │ "additionalProperties": false, - │ "properties": { - │ "location": { - │ "description": "The city and country", - │ "type": "string" - │ } - │ }, - │ "required": [ - │ "location" - │ ], - │ "type": "object" - │ } - │ } - │ } - │ } - │ ├── doGenerate [llm] - │ │ input: { - │ │ "inputFormat": "prompt", - │ │ "maxRetries": 2, - │ │ "maxTokens": 128, - │ │ "mode": { - │ │ "toolChoice": { - │ │ "type": "auto" - │ │ }, - │ │ "tools": [ - │ │ { - │ │ "description": "Get the weather for a location", - │ │ "name": "get_weather", - │ │ "parameters": { - │ │ "$schema": "http://json-schema.org/draft-07/schema#", - │ │ "additionalProperties": false, - │ │ "properties": { - │ │ "location": { - │ │ "description": "The city and country", - │ │ "type": "string" - │ │ } - │ │ }, - │ │ "required": [ - │ │ "location" - │ │ ], - │ │ "type": "object" - │ │ }, - │ │ "type": "function" - │ │ } - │ │ ], - │ │ "type": "regular" - │ │ }, - │ │ "prompt": [ - │ │ { - │ │ "content": "You must inspect live weather via the provided get_weather tool before responding.", - │ │ "role": "system" - │ │ }, - │ │ { - │ │ "content": [ - │ │ { - │ │ "text": "Use the get_weather tool for Paris, France. If you do not call the tool, the answer is invalid.", - │ │ "type": "text" - │ │ } - │ │ ], - │ │ "role": "user" - │ │ } - │ │ ], - │ │ "temperature": 0 - │ │ } - │ │ output: { - │ │ "finishReason": "tool-calls", - │ │ "providerMetadata": { - │ │ "openai": { - │ │ "reasoningTokens": 0 - │ │ } - │ │ }, - │ │ "rawResponse": {}, - │ │ "response": { - │ │ "modelId": "gpt-4o-mini-2024-07-18", - │ │ "timestamp": "" - │ │ }, - │ │ "toolCalls": [ - │ │ { - │ │ "args": "{\"location\":\"Paris, France\"}", - │ │ "toolCallType": "function", - │ │ "toolName": "get_weather" - │ │ } - │ │ ], - │ │ "usage": { - │ │ "completionTokens": 16, - │ │ "promptTokens": 87 - │ │ }, - │ │ "warnings": [] - │ │ } - │ │ metadata: { - │ │ "braintrust": { - │ │ "integration_name": "ai-sdk", - │ │ "sdk_language": "typescript" - │ │ }, - │ │ "finish_reason": "tool-calls", - │ │ "model": "gpt-4o-mini-2024-07-18", - │ │ "provider": "openai.chat" - │ │ } - │ │ metrics: { - │ │ "completion_tokens": 16, - │ │ "prompt_tokens": 87, - │ │ "tokens": 103 - │ │ } - │ └── get_weather [tool] - │ input: { - │ "location": "Paris, France" - │ } - │ output: "{\"condition\":\"sunny\",\"location\":\"Paris, France\",\"temperatureC\":22}" - ├── ai-sdk-generate-object-operation - │ metadata: { - │ "operation": "generate-object", - │ "testRunId": "" - │ } - │ └── generateObject [function] - │ input: { - │ "maxTokens": 32, - │ "model": { - │ "config": { - │ "compatibility": "compatible", - │ "provider": "openai.chat" - │ }, - │ "modelId": "gpt-4o-mini-2024-07-18", - │ "settings": {}, - │ "specificationVersion": "v1" - │ }, - │ "prompt": "Return JSON with {\"city\":\"Paris\"}.", - │ "schema": { - │ "$schema": "http://json-schema.org/draft-07/schema#", - │ "additionalProperties": false, - │ "properties": { - │ "city": { - │ "type": "string" - │ } - │ }, - │ "required": [ - │ "city" - │ ], - │ "type": "object" - │ }, - │ "temperature": 0 - │ } - │ output: { - │ "experimental_providerMetadata": { - │ "openai": { - │ "reasoningTokens": 0 - │ } - │ }, - │ "finishReason": "stop", - │ "object": { - │ "city": "Paris" - │ }, - │ "rawResponse": {}, - │ "response": { - │ "modelId": "gpt-4o-mini-2024-07-18", - │ "timestamp": "" - │ }, - │ "usage": { - │ "completionTokens": 5, - │ "promptTokens": 59, - │ "totalTokens": 64 - │ }, - │ "warnings": [] - │ } - │ metadata: { - │ "braintrust": { - │ "integration_name": "ai-sdk", - │ "sdk_language": "typescript" - │ }, - │ "model": "gpt-4o-mini-2024-07-18", - │ "provider": "openai.chat" - │ } - │ └── doGenerate [llm] - │ input: { - │ "inputFormat": "prompt", - │ "maxRetries": 2, - │ "maxTokens": 32, - │ "mode": { - │ "tool": { - │ "description": "Respond with a JSON object.", - │ "name": "json", - │ "parameters": { - │ "$schema": "http://json-schema.org/draft-07/schema#", - │ "additionalProperties": false, - │ "properties": { - │ "city": { - │ "type": "string" - │ } - │ }, - │ "required": [ - │ "city" - │ ], - │ "type": "object" - │ }, - │ "type": "function" - │ }, - │ "type": "object-tool" - │ }, - │ "prompt": [ - │ { - │ "content": [ - │ { - │ "text": "Return JSON with {\"city\":\"Paris\"}.", - │ "type": "text" - │ } - │ ], - │ "role": "user" - │ } - │ ], - │ "temperature": 0 - │ } - │ output: { - │ "finishReason": "stop", - │ "providerMetadata": { - │ "openai": { - │ "reasoningTokens": 0 - │ } - │ }, - │ "rawResponse": {}, - │ "response": { - │ "modelId": "gpt-4o-mini-2024-07-18", - │ "timestamp": "" - │ }, - │ "toolCalls": [ - │ { - │ "args": "{\"city\":\"Paris\"}", - │ "toolCallType": "function", - │ "toolName": "json" - │ } - │ ], - │ "usage": { - │ "completionTokens": 5, - │ "promptTokens": 59 - │ }, - │ "warnings": [] - │ } - │ metadata: { - │ "braintrust": { - │ "integration_name": "ai-sdk", - │ "sdk_language": "typescript" - │ }, - │ "finish_reason": "stop", - │ "model": "gpt-4o-mini-2024-07-18", - │ "provider": "openai.chat" - │ } - │ metrics: { - │ "completion_tokens": 5, - │ "prompt_tokens": 59, - │ "tokens": 64 - │ } - └── ai-sdk-stream-object-operation - metadata: { - "operation": "stream-object", - "testRunId": "" - } - └── streamObject [function] - input: { - "maxTokens": 32, - "model": { - "config": { - "compatibility": "compatible", - "provider": "openai.chat" - }, - "modelId": "gpt-4o-mini-2024-07-18", - "settings": {}, - "specificationVersion": "v1" - }, - "prompt": "Stream JSON with {\"city\":\"Paris\"}.", - "schema": { - "$schema": "http://json-schema.org/draft-07/schema#", - "additionalProperties": false, - "properties": { - "city": { - "type": "string" - } - }, - "required": [ - "city" - ], - "type": "object" - }, - "temperature": 0 - } - output: { - "object": { - "city": "Paris" - }, - "rawResponse": {}, - "warnings": [] - } - metadata: { - "braintrust": { - "integration_name": "ai-sdk", - "sdk_language": "typescript" - }, - "model": "gpt-4o-mini-2024-07-18", - "provider": "openai.chat" - } - metrics: { - "time_to_first_token": 0 - } - └── doStream [llm] - input: { - "inputFormat": "prompt", - "maxRetries": 2, - "maxTokens": 32, - "mode": { - "tool": { - "description": "Respond with a JSON object.", - "name": "json", - "parameters": { - "$schema": "http://json-schema.org/draft-07/schema#", - "additionalProperties": false, - "properties": { - "city": { - "type": "string" - } - }, - "required": [ - "city" - ], - "type": "object" - }, - "type": "function" - }, - "type": "object-tool" - }, - "prompt": [ - { - "content": [ - { - "text": "Stream JSON with {\"city\":\"Paris\"}.", - "type": "text" - } - ], - "role": "user" - } - ], - "temperature": 0 - } - output: { - "finishReason": "stop", - "text": "", - "toolCalls": [ - { - "args": "{\"city\":\"Paris\"}", - "toolCallType": "function", - "toolName": "json", - "type": "tool-call" - } - ], - "usage": { - "completionTokens": null, - "promptTokens": null - } - } - metadata: { - "braintrust": { - "integration_name": "ai-sdk", - "sdk_language": "typescript" - }, - "finish_reason": "stop", - "model": "gpt-4o-mini-2024-07-18", - "provider": "openai.chat" - } - metrics: { - "completion_tokens": null, - "prompt_tokens": null, - "time_to_first_token": 0, - "tokens": null - } diff --git a/e2e/scenarios/ai-sdk-instrumentation/__snapshots__/ai-sdk-v3-wrapped.span-tree.json b/e2e/scenarios/ai-sdk-instrumentation/__snapshots__/ai-sdk-v3-wrapped.span-tree.json deleted file mode 100644 index 3a9e3b97e..000000000 --- a/e2e/scenarios/ai-sdk-instrumentation/__snapshots__/ai-sdk-v3-wrapped.span-tree.json +++ /dev/null @@ -1,918 +0,0 @@ -{ - "span_tree": [ - { - "name": "ai-sdk-instrumentation-root", - "type": "task", - "children": [ - { - "name": "ai-sdk-generate-operation", - "children": [ - { - "name": "generateText", - "type": "function", - "children": [ - { - "name": "doGenerate", - "type": "llm", - "children": [], - "input": { - "inputFormat": "prompt", - "maxRetries": 2, - "maxTokens": 24, - "mode": { - "type": "regular" - }, - "prompt": [ - { - "content": [ - { - "text": "Reply with the single token PARIS and no punctuation.", - "type": "text" - } - ], - "role": "user" - } - ], - "temperature": 0 - }, - "output": { - "finishReason": "stop", - "providerMetadata": { - "openai": { - "reasoningTokens": 0 - } - }, - "rawResponse": {}, - "response": { - "modelId": "gpt-4o-mini-2024-07-18", - "timestamp": "" - }, - "text": "PARIS", - "usage": { - "completionTokens": 2, - "promptTokens": 18 - }, - "warnings": [] - }, - "metadata": { - "braintrust": { - "integration_name": "ai-sdk", - "sdk_language": "typescript" - }, - "finish_reason": "stop", - "model": "gpt-4o-mini-2024-07-18", - "provider": "openai.chat" - }, - "metrics": { - "completion_tokens": 2, - "prompt_tokens": 18, - "tokens": 20 - } - } - ], - "input": { - "maxTokens": 24, - "model": { - "config": { - "compatibility": "compatible", - "provider": "openai.chat" - }, - "modelId": "gpt-4o-mini-2024-07-18", - "settings": {}, - "specificationVersion": "v1" - }, - "prompt": "Reply with the single token PARIS and no punctuation.", - "temperature": 0 - }, - "output": { - "experimental_providerMetadata": { - "openai": { - "reasoningTokens": 0 - } - }, - "finishReason": "stop", - "rawResponse": {}, - "response": { - "messages": [ - { - "content": [ - { - "text": "PARIS", - "type": "text" - } - ], - "role": "assistant" - } - ], - "modelId": "gpt-4o-mini-2024-07-18", - "timestamp": "" - }, - "responseMessages": "", - "steps": [ - { - "experimental_providerMetadata": { - "openai": { - "reasoningTokens": 0 - } - }, - "finishReason": "stop", - "isContinued": false, - "response": { - "messages": [ - { - "content": [ - { - "text": "PARIS", - "type": "text" - } - ], - "role": "assistant" - } - ], - "modelId": "gpt-4o-mini-2024-07-18", - "timestamp": "" - }, - "stepType": "initial", - "text": "PARIS", - "toolCalls": [], - "toolResults": [], - "usage": { - "completionTokens": 2, - "promptTokens": 18, - "totalTokens": 20 - }, - "warnings": [] - } - ], - "text": "PARIS", - "toolCalls": [], - "toolResults": [], - "usage": { - "completionTokens": 2, - "promptTokens": 18, - "totalTokens": 20 - }, - "warnings": [] - }, - "metadata": { - "braintrust": { - "integration_name": "ai-sdk", - "sdk_language": "typescript" - }, - "model": "gpt-4o-mini-2024-07-18", - "provider": "openai.chat" - } - } - ], - "metadata": { - "operation": "generate", - "testRunId": "" - } - }, - { - "name": "ai-sdk-stream-operation", - "children": [ - { - "name": "streamText", - "type": "function", - "children": [ - { - "name": "doStream", - "type": "llm", - "children": [], - "input": { - "inputFormat": "prompt", - "maxRetries": 2, - "maxTokens": 32, - "mode": { - "type": "regular" - }, - "prompt": [ - { - "content": [ - { - "text": "Count from 1 to 3 and include the words one two three.", - "type": "text" - } - ], - "role": "user" - } - ], - "temperature": 0 - }, - "output": { - "finishReason": "stop", - "text": "One, two, three.", - "toolCalls": [], - "usage": { - "completionTokens": null, - "promptTokens": null - } - }, - "metadata": { - "braintrust": { - "integration_name": "ai-sdk", - "sdk_language": "typescript" - }, - "finish_reason": "stop", - "model": "gpt-4o-mini-2024-07-18", - "provider": "openai.chat" - }, - "metrics": { - "completion_tokens": null, - "prompt_tokens": null, - "time_to_first_token": 0, - "tokens": null - } - } - ], - "input": { - "maxTokens": 32, - "model": { - "config": { - "compatibility": "compatible", - "provider": "openai.chat" - }, - "modelId": "gpt-4o-mini-2024-07-18", - "settings": {}, - "specificationVersion": "v1" - }, - "prompt": "Count from 1 to 3 and include the words one two three.", - "temperature": 0 - }, - "output": { - "finishReason": "stop", - "rawResponse": {}, - "text": "One, two, three.", - "warnings": [] - }, - "metadata": { - "braintrust": { - "integration_name": "ai-sdk", - "sdk_language": "typescript" - }, - "model": "gpt-4o-mini-2024-07-18", - "provider": "openai.chat" - }, - "metrics": { - "time_to_first_token": 0 - } - } - ], - "metadata": { - "operation": "stream", - "testRunId": "" - } - }, - { - "name": "ai-sdk-embed-operation", - "children": [ - { - "name": "embed", - "type": "function", - "children": [], - "input": { - "model": { - "config": { - "provider": "openai.embedding" - }, - "modelId": "text-embedding-3-small", - "settings": {}, - "specificationVersion": "v1" - }, - "value": "Paris is the capital of France." - }, - "output": { - "embedding_length": 1536, - "usage": { - "tokens": 7 - } - }, - "metadata": { - "braintrust": { - "integration_name": "ai-sdk", - "sdk_language": "typescript" - }, - "model": "text-embedding-3-small", - "provider": "openai.embedding" - }, - "metrics": { - "tokens": 7 - } - } - ], - "metadata": { - "operation": "embed", - "testRunId": "" - } - }, - { - "name": "ai-sdk-tool-operation", - "children": [ - { - "name": "generateText", - "type": "function", - "children": [ - { - "name": "doGenerate", - "type": "llm", - "children": [], - "input": { - "inputFormat": "prompt", - "maxRetries": 2, - "maxTokens": 128, - "mode": { - "toolChoice": { - "type": "auto" - }, - "tools": [ - { - "description": "Get the weather for a location", - "name": "get_weather", - "parameters": { - "$schema": "http://json-schema.org/draft-07/schema#", - "additionalProperties": false, - "properties": { - "location": { - "description": "The city and country", - "type": "string" - } - }, - "required": [ - "location" - ], - "type": "object" - }, - "type": "function" - } - ], - "type": "regular" - }, - "prompt": [ - { - "content": "You must inspect live weather via the provided get_weather tool before responding.", - "role": "system" - }, - { - "content": [ - { - "text": "Use the get_weather tool for Paris, France. If you do not call the tool, the answer is invalid.", - "type": "text" - } - ], - "role": "user" - } - ], - "temperature": 0 - }, - "output": { - "finishReason": "tool-calls", - "providerMetadata": { - "openai": { - "reasoningTokens": 0 - } - }, - "rawResponse": {}, - "response": { - "modelId": "gpt-4o-mini-2024-07-18", - "timestamp": "" - }, - "toolCalls": [ - { - "args": "{\"location\":\"Paris, France\"}", - "toolCallType": "function", - "toolName": "get_weather" - } - ], - "usage": { - "completionTokens": 16, - "promptTokens": 87 - }, - "warnings": [] - }, - "metadata": { - "braintrust": { - "integration_name": "ai-sdk", - "sdk_language": "typescript" - }, - "finish_reason": "tool-calls", - "model": "gpt-4o-mini-2024-07-18", - "provider": "openai.chat" - }, - "metrics": { - "completion_tokens": 16, - "prompt_tokens": 87, - "tokens": 103 - } - }, - { - "name": "get_weather", - "type": "tool", - "children": [], - "input": { - "location": "Paris, France" - }, - "output": "{\"condition\":\"sunny\",\"location\":\"Paris, France\",\"temperatureC\":22}" - } - ], - "input": { - "maxTokens": 128, - "model": { - "config": { - "compatibility": "compatible", - "provider": "openai.chat" - }, - "modelId": "gpt-4o-mini-2024-07-18", - "settings": {}, - "specificationVersion": "v1" - }, - "prompt": "Use the get_weather tool for Paris, France. If you do not call the tool, the answer is invalid.", - "system": "You must inspect live weather via the provided get_weather tool before responding.", - "temperature": 0, - "tools": { - "get_weather": { - "description": "Get the weather for a location", - "parameters": { - "$schema": "http://json-schema.org/draft-07/schema#", - "additionalProperties": false, - "properties": { - "location": { - "description": "The city and country", - "type": "string" - } - }, - "required": [ - "location" - ], - "type": "object" - } - } - } - }, - "output": { - "experimental_providerMetadata": { - "openai": { - "reasoningTokens": 0 - } - }, - "finishReason": "tool-calls", - "rawResponse": {}, - "response": { - "messages": [ - { - "content": [ - { - "text": "", - "type": "text" - }, - { - "args": { - "location": "Paris, France" - }, - "toolName": "get_weather", - "type": "tool-call" - } - ], - "role": "assistant" - }, - { - "content": [ - { - "result": "{\"condition\":\"sunny\",\"location\":\"Paris, France\",\"temperatureC\":22}", - "toolName": "get_weather", - "type": "tool-result" - } - ], - "role": "tool" - } - ], - "modelId": "gpt-4o-mini-2024-07-18", - "timestamp": "" - }, - "responseMessages": "", - "steps": [ - { - "experimental_providerMetadata": { - "openai": { - "reasoningTokens": 0 - } - }, - "finishReason": "tool-calls", - "isContinued": false, - "response": { - "messages": [ - { - "content": [ - { - "text": "", - "type": "text" - }, - { - "args": { - "location": "Paris, France" - }, - "toolName": "get_weather", - "type": "tool-call" - } - ], - "role": "assistant" - }, - { - "content": [ - { - "result": "{\"condition\":\"sunny\",\"location\":\"Paris, France\",\"temperatureC\":22}", - "toolName": "get_weather", - "type": "tool-result" - } - ], - "role": "tool" - } - ], - "modelId": "gpt-4o-mini-2024-07-18", - "timestamp": "" - }, - "stepType": "initial", - "text": "", - "toolCalls": [ - { - "args": { - "location": "Paris, France" - }, - "toolName": "get_weather", - "type": "tool-call" - } - ], - "toolResults": [ - { - "args": { - "location": "Paris, France" - }, - "result": "{\"condition\":\"sunny\",\"location\":\"Paris, France\",\"temperatureC\":22}", - "toolName": "get_weather" - } - ], - "usage": { - "completionTokens": 16, - "promptTokens": 87, - "totalTokens": 103 - }, - "warnings": [] - } - ], - "text": "", - "toolCalls": [ - { - "args": { - "location": "Paris, France" - }, - "toolName": "get_weather", - "type": "tool-call" - } - ], - "toolResults": [ - { - "args": { - "location": "Paris, France" - }, - "result": "{\"condition\":\"sunny\",\"location\":\"Paris, France\",\"temperatureC\":22}", - "toolName": "get_weather" - } - ], - "usage": { - "completionTokens": 16, - "promptTokens": 87, - "totalTokens": 103 - }, - "warnings": [] - }, - "metadata": { - "braintrust": { - "integration_name": "ai-sdk", - "sdk_language": "typescript" - }, - "model": "gpt-4o-mini-2024-07-18", - "provider": "openai.chat", - "tools": { - "get_weather": { - "description": "Get the weather for a location", - "parameters": { - "$schema": "http://json-schema.org/draft-07/schema#", - "additionalProperties": false, - "properties": { - "location": { - "description": "The city and country", - "type": "string" - } - }, - "required": [ - "location" - ], - "type": "object" - } - } - } - } - } - ], - "metadata": { - "operation": "tool", - "testRunId": "" - } - }, - { - "name": "ai-sdk-generate-object-operation", - "children": [ - { - "name": "generateObject", - "type": "function", - "children": [ - { - "name": "doGenerate", - "type": "llm", - "children": [], - "input": { - "inputFormat": "prompt", - "maxRetries": 2, - "maxTokens": 32, - "mode": { - "tool": { - "description": "Respond with a JSON object.", - "name": "json", - "parameters": { - "$schema": "http://json-schema.org/draft-07/schema#", - "additionalProperties": false, - "properties": { - "city": { - "type": "string" - } - }, - "required": [ - "city" - ], - "type": "object" - }, - "type": "function" - }, - "type": "object-tool" - }, - "prompt": [ - { - "content": [ - { - "text": "Return JSON with {\"city\":\"Paris\"}.", - "type": "text" - } - ], - "role": "user" - } - ], - "temperature": 0 - }, - "output": { - "finishReason": "stop", - "providerMetadata": { - "openai": { - "reasoningTokens": 0 - } - }, - "rawResponse": {}, - "response": { - "modelId": "gpt-4o-mini-2024-07-18", - "timestamp": "" - }, - "toolCalls": [ - { - "args": "{\"city\":\"Paris\"}", - "toolCallType": "function", - "toolName": "json" - } - ], - "usage": { - "completionTokens": 5, - "promptTokens": 59 - }, - "warnings": [] - }, - "metadata": { - "braintrust": { - "integration_name": "ai-sdk", - "sdk_language": "typescript" - }, - "finish_reason": "stop", - "model": "gpt-4o-mini-2024-07-18", - "provider": "openai.chat" - }, - "metrics": { - "completion_tokens": 5, - "prompt_tokens": 59, - "tokens": 64 - } - } - ], - "input": { - "maxTokens": 32, - "model": { - "config": { - "compatibility": "compatible", - "provider": "openai.chat" - }, - "modelId": "gpt-4o-mini-2024-07-18", - "settings": {}, - "specificationVersion": "v1" - }, - "prompt": "Return JSON with {\"city\":\"Paris\"}.", - "schema": { - "$schema": "http://json-schema.org/draft-07/schema#", - "additionalProperties": false, - "properties": { - "city": { - "type": "string" - } - }, - "required": [ - "city" - ], - "type": "object" - }, - "temperature": 0 - }, - "output": { - "experimental_providerMetadata": { - "openai": { - "reasoningTokens": 0 - } - }, - "finishReason": "stop", - "object": { - "city": "Paris" - }, - "rawResponse": {}, - "response": { - "modelId": "gpt-4o-mini-2024-07-18", - "timestamp": "" - }, - "usage": { - "completionTokens": 5, - "promptTokens": 59, - "totalTokens": 64 - }, - "warnings": [] - }, - "metadata": { - "braintrust": { - "integration_name": "ai-sdk", - "sdk_language": "typescript" - }, - "model": "gpt-4o-mini-2024-07-18", - "provider": "openai.chat" - } - } - ], - "metadata": { - "operation": "generate-object", - "testRunId": "" - } - }, - { - "name": "ai-sdk-stream-object-operation", - "children": [ - { - "name": "streamObject", - "type": "function", - "children": [ - { - "name": "doStream", - "type": "llm", - "children": [], - "input": { - "inputFormat": "prompt", - "maxRetries": 2, - "maxTokens": 32, - "mode": { - "tool": { - "description": "Respond with a JSON object.", - "name": "json", - "parameters": { - "$schema": "http://json-schema.org/draft-07/schema#", - "additionalProperties": false, - "properties": { - "city": { - "type": "string" - } - }, - "required": [ - "city" - ], - "type": "object" - }, - "type": "function" - }, - "type": "object-tool" - }, - "prompt": [ - { - "content": [ - { - "text": "Stream JSON with {\"city\":\"Paris\"}.", - "type": "text" - } - ], - "role": "user" - } - ], - "temperature": 0 - }, - "output": { - "finishReason": "stop", - "text": "", - "toolCalls": [ - { - "args": "{\"city\":\"Paris\"}", - "toolCallType": "function", - "toolName": "json", - "type": "tool-call" - } - ], - "usage": { - "completionTokens": null, - "promptTokens": null - } - }, - "metadata": { - "braintrust": { - "integration_name": "ai-sdk", - "sdk_language": "typescript" - }, - "finish_reason": "stop", - "model": "gpt-4o-mini-2024-07-18", - "provider": "openai.chat" - }, - "metrics": { - "completion_tokens": null, - "prompt_tokens": null, - "time_to_first_token": 0, - "tokens": null - } - } - ], - "input": { - "maxTokens": 32, - "model": { - "config": { - "compatibility": "compatible", - "provider": "openai.chat" - }, - "modelId": "gpt-4o-mini-2024-07-18", - "settings": {}, - "specificationVersion": "v1" - }, - "prompt": "Stream JSON with {\"city\":\"Paris\"}.", - "schema": { - "$schema": "http://json-schema.org/draft-07/schema#", - "additionalProperties": false, - "properties": { - "city": { - "type": "string" - } - }, - "required": [ - "city" - ], - "type": "object" - }, - "temperature": 0 - }, - "output": { - "object": { - "city": "Paris" - }, - "rawResponse": {}, - "warnings": [] - }, - "metadata": { - "braintrust": { - "integration_name": "ai-sdk", - "sdk_language": "typescript" - }, - "model": "gpt-4o-mini-2024-07-18", - "provider": "openai.chat" - }, - "metrics": { - "time_to_first_token": 0 - } - } - ], - "metadata": { - "operation": "stream-object", - "testRunId": "" - } - } - ], - "metadata": { - "aiSdkVersion": "3.4.33", - "scenario": "ai-sdk-instrumentation", - "testRunId": "" - } - } - ] -} diff --git a/e2e/scenarios/ai-sdk-instrumentation/__snapshots__/ai-sdk-v3-wrapped.span-tree.txt b/e2e/scenarios/ai-sdk-instrumentation/__snapshots__/ai-sdk-v3-wrapped.span-tree.txt deleted file mode 100644 index 2656453e0..000000000 --- a/e2e/scenarios/ai-sdk-instrumentation/__snapshots__/ai-sdk-v3-wrapped.span-tree.txt +++ /dev/null @@ -1,833 +0,0 @@ -span_tree: -└── ai-sdk-instrumentation-root [task] - metadata: { - "aiSdkVersion": "3.4.33", - "scenario": "ai-sdk-instrumentation", - "testRunId": "" - } - ├── ai-sdk-generate-operation - │ metadata: { - │ "operation": "generate", - │ "testRunId": "" - │ } - │ └── generateText [function] - │ input: { - │ "maxTokens": 24, - │ "model": { - │ "config": { - │ "compatibility": "compatible", - │ "provider": "openai.chat" - │ }, - │ "modelId": "gpt-4o-mini-2024-07-18", - │ "settings": {}, - │ "specificationVersion": "v1" - │ }, - │ "prompt": "Reply with the single token PARIS and no punctuation.", - │ "temperature": 0 - │ } - │ output: { - │ "experimental_providerMetadata": { - │ "openai": { - │ "reasoningTokens": 0 - │ } - │ }, - │ "finishReason": "stop", - │ "rawResponse": {}, - │ "response": { - │ "messages": [ - │ { - │ "content": [ - │ { - │ "text": "PARIS", - │ "type": "text" - │ } - │ ], - │ "role": "assistant" - │ } - │ ], - │ "modelId": "gpt-4o-mini-2024-07-18", - │ "timestamp": "" - │ }, - │ "responseMessages": "", - │ "steps": [ - │ { - │ "experimental_providerMetadata": { - │ "openai": { - │ "reasoningTokens": 0 - │ } - │ }, - │ "finishReason": "stop", - │ "isContinued": false, - │ "response": { - │ "messages": [ - │ { - │ "content": [ - │ { - │ "text": "PARIS", - │ "type": "text" - │ } - │ ], - │ "role": "assistant" - │ } - │ ], - │ "modelId": "gpt-4o-mini-2024-07-18", - │ "timestamp": "" - │ }, - │ "stepType": "initial", - │ "text": "PARIS", - │ "toolCalls": [], - │ "toolResults": [], - │ "usage": { - │ "completionTokens": 2, - │ "promptTokens": 18, - │ "totalTokens": 20 - │ }, - │ "warnings": [] - │ } - │ ], - │ "text": "PARIS", - │ "toolCalls": [], - │ "toolResults": [], - │ "usage": { - │ "completionTokens": 2, - │ "promptTokens": 18, - │ "totalTokens": 20 - │ }, - │ "warnings": [] - │ } - │ metadata: { - │ "braintrust": { - │ "integration_name": "ai-sdk", - │ "sdk_language": "typescript" - │ }, - │ "model": "gpt-4o-mini-2024-07-18", - │ "provider": "openai.chat" - │ } - │ └── doGenerate [llm] - │ input: { - │ "inputFormat": "prompt", - │ "maxRetries": 2, - │ "maxTokens": 24, - │ "mode": { - │ "type": "regular" - │ }, - │ "prompt": [ - │ { - │ "content": [ - │ { - │ "text": "Reply with the single token PARIS and no punctuation.", - │ "type": "text" - │ } - │ ], - │ "role": "user" - │ } - │ ], - │ "temperature": 0 - │ } - │ output: { - │ "finishReason": "stop", - │ "providerMetadata": { - │ "openai": { - │ "reasoningTokens": 0 - │ } - │ }, - │ "rawResponse": {}, - │ "response": { - │ "modelId": "gpt-4o-mini-2024-07-18", - │ "timestamp": "" - │ }, - │ "text": "PARIS", - │ "usage": { - │ "completionTokens": 2, - │ "promptTokens": 18 - │ }, - │ "warnings": [] - │ } - │ metadata: { - │ "braintrust": { - │ "integration_name": "ai-sdk", - │ "sdk_language": "typescript" - │ }, - │ "finish_reason": "stop", - │ "model": "gpt-4o-mini-2024-07-18", - │ "provider": "openai.chat" - │ } - │ metrics: { - │ "completion_tokens": 2, - │ "prompt_tokens": 18, - │ "tokens": 20 - │ } - ├── ai-sdk-stream-operation - │ metadata: { - │ "operation": "stream", - │ "testRunId": "" - │ } - │ └── streamText [function] - │ input: { - │ "maxTokens": 32, - │ "model": { - │ "config": { - │ "compatibility": "compatible", - │ "provider": "openai.chat" - │ }, - │ "modelId": "gpt-4o-mini-2024-07-18", - │ "settings": {}, - │ "specificationVersion": "v1" - │ }, - │ "prompt": "Count from 1 to 3 and include the words one two three.", - │ "temperature": 0 - │ } - │ output: { - │ "finishReason": "stop", - │ "rawResponse": {}, - │ "text": "One, two, three.", - │ "warnings": [] - │ } - │ metadata: { - │ "braintrust": { - │ "integration_name": "ai-sdk", - │ "sdk_language": "typescript" - │ }, - │ "model": "gpt-4o-mini-2024-07-18", - │ "provider": "openai.chat" - │ } - │ metrics: { - │ "time_to_first_token": 0 - │ } - │ └── doStream [llm] - │ input: { - │ "inputFormat": "prompt", - │ "maxRetries": 2, - │ "maxTokens": 32, - │ "mode": { - │ "type": "regular" - │ }, - │ "prompt": [ - │ { - │ "content": [ - │ { - │ "text": "Count from 1 to 3 and include the words one two three.", - │ "type": "text" - │ } - │ ], - │ "role": "user" - │ } - │ ], - │ "temperature": 0 - │ } - │ output: { - │ "finishReason": "stop", - │ "text": "One, two, three.", - │ "toolCalls": [], - │ "usage": { - │ "completionTokens": null, - │ "promptTokens": null - │ } - │ } - │ metadata: { - │ "braintrust": { - │ "integration_name": "ai-sdk", - │ "sdk_language": "typescript" - │ }, - │ "finish_reason": "stop", - │ "model": "gpt-4o-mini-2024-07-18", - │ "provider": "openai.chat" - │ } - │ metrics: { - │ "completion_tokens": null, - │ "prompt_tokens": null, - │ "time_to_first_token": 0, - │ "tokens": null - │ } - ├── ai-sdk-embed-operation - │ metadata: { - │ "operation": "embed", - │ "testRunId": "" - │ } - │ └── embed [function] - │ input: { - │ "model": { - │ "config": { - │ "provider": "openai.embedding" - │ }, - │ "modelId": "text-embedding-3-small", - │ "settings": {}, - │ "specificationVersion": "v1" - │ }, - │ "value": "Paris is the capital of France." - │ } - │ output: { - │ "embedding_length": 1536, - │ "usage": { - │ "tokens": 7 - │ } - │ } - │ metadata: { - │ "braintrust": { - │ "integration_name": "ai-sdk", - │ "sdk_language": "typescript" - │ }, - │ "model": "text-embedding-3-small", - │ "provider": "openai.embedding" - │ } - │ metrics: { - │ "tokens": 7 - │ } - ├── ai-sdk-tool-operation - │ metadata: { - │ "operation": "tool", - │ "testRunId": "" - │ } - │ └── generateText [function] - │ input: { - │ "maxTokens": 128, - │ "model": { - │ "config": { - │ "compatibility": "compatible", - │ "provider": "openai.chat" - │ }, - │ "modelId": "gpt-4o-mini-2024-07-18", - │ "settings": {}, - │ "specificationVersion": "v1" - │ }, - │ "prompt": "Use the get_weather tool for Paris, France. If you do not call the tool, the answer is invalid.", - │ "system": "You must inspect live weather via the provided get_weather tool before responding.", - │ "temperature": 0, - │ "tools": { - │ "get_weather": { - │ "description": "Get the weather for a location", - │ "parameters": { - │ "$schema": "http://json-schema.org/draft-07/schema#", - │ "additionalProperties": false, - │ "properties": { - │ "location": { - │ "description": "The city and country", - │ "type": "string" - │ } - │ }, - │ "required": [ - │ "location" - │ ], - │ "type": "object" - │ } - │ } - │ } - │ } - │ output: { - │ "experimental_providerMetadata": { - │ "openai": { - │ "reasoningTokens": 0 - │ } - │ }, - │ "finishReason": "tool-calls", - │ "rawResponse": {}, - │ "response": { - │ "messages": [ - │ { - │ "content": [ - │ { - │ "text": "", - │ "type": "text" - │ }, - │ { - │ "args": { - │ "location": "Paris, France" - │ }, - │ "toolName": "get_weather", - │ "type": "tool-call" - │ } - │ ], - │ "role": "assistant" - │ }, - │ { - │ "content": [ - │ { - │ "result": "{\"condition\":\"sunny\",\"location\":\"Paris, France\",\"temperatureC\":22}", - │ "toolName": "get_weather", - │ "type": "tool-result" - │ } - │ ], - │ "role": "tool" - │ } - │ ], - │ "modelId": "gpt-4o-mini-2024-07-18", - │ "timestamp": "" - │ }, - │ "responseMessages": "", - │ "steps": [ - │ { - │ "experimental_providerMetadata": { - │ "openai": { - │ "reasoningTokens": 0 - │ } - │ }, - │ "finishReason": "tool-calls", - │ "isContinued": false, - │ "response": { - │ "messages": [ - │ { - │ "content": [ - │ { - │ "text": "", - │ "type": "text" - │ }, - │ { - │ "args": { - │ "location": "Paris, France" - │ }, - │ "toolName": "get_weather", - │ "type": "tool-call" - │ } - │ ], - │ "role": "assistant" - │ }, - │ { - │ "content": [ - │ { - │ "result": "{\"condition\":\"sunny\",\"location\":\"Paris, France\",\"temperatureC\":22}", - │ "toolName": "get_weather", - │ "type": "tool-result" - │ } - │ ], - │ "role": "tool" - │ } - │ ], - │ "modelId": "gpt-4o-mini-2024-07-18", - │ "timestamp": "" - │ }, - │ "stepType": "initial", - │ "text": "", - │ "toolCalls": [ - │ { - │ "args": { - │ "location": "Paris, France" - │ }, - │ "toolName": "get_weather", - │ "type": "tool-call" - │ } - │ ], - │ "toolResults": [ - │ { - │ "args": { - │ "location": "Paris, France" - │ }, - │ "result": "{\"condition\":\"sunny\",\"location\":\"Paris, France\",\"temperatureC\":22}", - │ "toolName": "get_weather" - │ } - │ ], - │ "usage": { - │ "completionTokens": 16, - │ "promptTokens": 87, - │ "totalTokens": 103 - │ }, - │ "warnings": [] - │ } - │ ], - │ "text": "", - │ "toolCalls": [ - │ { - │ "args": { - │ "location": "Paris, France" - │ }, - │ "toolName": "get_weather", - │ "type": "tool-call" - │ } - │ ], - │ "toolResults": [ - │ { - │ "args": { - │ "location": "Paris, France" - │ }, - │ "result": "{\"condition\":\"sunny\",\"location\":\"Paris, France\",\"temperatureC\":22}", - │ "toolName": "get_weather" - │ } - │ ], - │ "usage": { - │ "completionTokens": 16, - │ "promptTokens": 87, - │ "totalTokens": 103 - │ }, - │ "warnings": [] - │ } - │ metadata: { - │ "braintrust": { - │ "integration_name": "ai-sdk", - │ "sdk_language": "typescript" - │ }, - │ "model": "gpt-4o-mini-2024-07-18", - │ "provider": "openai.chat", - │ "tools": { - │ "get_weather": { - │ "description": "Get the weather for a location", - │ "parameters": { - │ "$schema": "http://json-schema.org/draft-07/schema#", - │ "additionalProperties": false, - │ "properties": { - │ "location": { - │ "description": "The city and country", - │ "type": "string" - │ } - │ }, - │ "required": [ - │ "location" - │ ], - │ "type": "object" - │ } - │ } - │ } - │ } - │ ├── doGenerate [llm] - │ │ input: { - │ │ "inputFormat": "prompt", - │ │ "maxRetries": 2, - │ │ "maxTokens": 128, - │ │ "mode": { - │ │ "toolChoice": { - │ │ "type": "auto" - │ │ }, - │ │ "tools": [ - │ │ { - │ │ "description": "Get the weather for a location", - │ │ "name": "get_weather", - │ │ "parameters": { - │ │ "$schema": "http://json-schema.org/draft-07/schema#", - │ │ "additionalProperties": false, - │ │ "properties": { - │ │ "location": { - │ │ "description": "The city and country", - │ │ "type": "string" - │ │ } - │ │ }, - │ │ "required": [ - │ │ "location" - │ │ ], - │ │ "type": "object" - │ │ }, - │ │ "type": "function" - │ │ } - │ │ ], - │ │ "type": "regular" - │ │ }, - │ │ "prompt": [ - │ │ { - │ │ "content": "You must inspect live weather via the provided get_weather tool before responding.", - │ │ "role": "system" - │ │ }, - │ │ { - │ │ "content": [ - │ │ { - │ │ "text": "Use the get_weather tool for Paris, France. If you do not call the tool, the answer is invalid.", - │ │ "type": "text" - │ │ } - │ │ ], - │ │ "role": "user" - │ │ } - │ │ ], - │ │ "temperature": 0 - │ │ } - │ │ output: { - │ │ "finishReason": "tool-calls", - │ │ "providerMetadata": { - │ │ "openai": { - │ │ "reasoningTokens": 0 - │ │ } - │ │ }, - │ │ "rawResponse": {}, - │ │ "response": { - │ │ "modelId": "gpt-4o-mini-2024-07-18", - │ │ "timestamp": "" - │ │ }, - │ │ "toolCalls": [ - │ │ { - │ │ "args": "{\"location\":\"Paris, France\"}", - │ │ "toolCallType": "function", - │ │ "toolName": "get_weather" - │ │ } - │ │ ], - │ │ "usage": { - │ │ "completionTokens": 16, - │ │ "promptTokens": 87 - │ │ }, - │ │ "warnings": [] - │ │ } - │ │ metadata: { - │ │ "braintrust": { - │ │ "integration_name": "ai-sdk", - │ │ "sdk_language": "typescript" - │ │ }, - │ │ "finish_reason": "tool-calls", - │ │ "model": "gpt-4o-mini-2024-07-18", - │ │ "provider": "openai.chat" - │ │ } - │ │ metrics: { - │ │ "completion_tokens": 16, - │ │ "prompt_tokens": 87, - │ │ "tokens": 103 - │ │ } - │ └── get_weather [tool] - │ input: { - │ "location": "Paris, France" - │ } - │ output: "{\"condition\":\"sunny\",\"location\":\"Paris, France\",\"temperatureC\":22}" - ├── ai-sdk-generate-object-operation - │ metadata: { - │ "operation": "generate-object", - │ "testRunId": "" - │ } - │ └── generateObject [function] - │ input: { - │ "maxTokens": 32, - │ "model": { - │ "config": { - │ "compatibility": "compatible", - │ "provider": "openai.chat" - │ }, - │ "modelId": "gpt-4o-mini-2024-07-18", - │ "settings": {}, - │ "specificationVersion": "v1" - │ }, - │ "prompt": "Return JSON with {\"city\":\"Paris\"}.", - │ "schema": { - │ "$schema": "http://json-schema.org/draft-07/schema#", - │ "additionalProperties": false, - │ "properties": { - │ "city": { - │ "type": "string" - │ } - │ }, - │ "required": [ - │ "city" - │ ], - │ "type": "object" - │ }, - │ "temperature": 0 - │ } - │ output: { - │ "experimental_providerMetadata": { - │ "openai": { - │ "reasoningTokens": 0 - │ } - │ }, - │ "finishReason": "stop", - │ "object": { - │ "city": "Paris" - │ }, - │ "rawResponse": {}, - │ "response": { - │ "modelId": "gpt-4o-mini-2024-07-18", - │ "timestamp": "" - │ }, - │ "usage": { - │ "completionTokens": 5, - │ "promptTokens": 59, - │ "totalTokens": 64 - │ }, - │ "warnings": [] - │ } - │ metadata: { - │ "braintrust": { - │ "integration_name": "ai-sdk", - │ "sdk_language": "typescript" - │ }, - │ "model": "gpt-4o-mini-2024-07-18", - │ "provider": "openai.chat" - │ } - │ └── doGenerate [llm] - │ input: { - │ "inputFormat": "prompt", - │ "maxRetries": 2, - │ "maxTokens": 32, - │ "mode": { - │ "tool": { - │ "description": "Respond with a JSON object.", - │ "name": "json", - │ "parameters": { - │ "$schema": "http://json-schema.org/draft-07/schema#", - │ "additionalProperties": false, - │ "properties": { - │ "city": { - │ "type": "string" - │ } - │ }, - │ "required": [ - │ "city" - │ ], - │ "type": "object" - │ }, - │ "type": "function" - │ }, - │ "type": "object-tool" - │ }, - │ "prompt": [ - │ { - │ "content": [ - │ { - │ "text": "Return JSON with {\"city\":\"Paris\"}.", - │ "type": "text" - │ } - │ ], - │ "role": "user" - │ } - │ ], - │ "temperature": 0 - │ } - │ output: { - │ "finishReason": "stop", - │ "providerMetadata": { - │ "openai": { - │ "reasoningTokens": 0 - │ } - │ }, - │ "rawResponse": {}, - │ "response": { - │ "modelId": "gpt-4o-mini-2024-07-18", - │ "timestamp": "" - │ }, - │ "toolCalls": [ - │ { - │ "args": "{\"city\":\"Paris\"}", - │ "toolCallType": "function", - │ "toolName": "json" - │ } - │ ], - │ "usage": { - │ "completionTokens": 5, - │ "promptTokens": 59 - │ }, - │ "warnings": [] - │ } - │ metadata: { - │ "braintrust": { - │ "integration_name": "ai-sdk", - │ "sdk_language": "typescript" - │ }, - │ "finish_reason": "stop", - │ "model": "gpt-4o-mini-2024-07-18", - │ "provider": "openai.chat" - │ } - │ metrics: { - │ "completion_tokens": 5, - │ "prompt_tokens": 59, - │ "tokens": 64 - │ } - └── ai-sdk-stream-object-operation - metadata: { - "operation": "stream-object", - "testRunId": "" - } - └── streamObject [function] - input: { - "maxTokens": 32, - "model": { - "config": { - "compatibility": "compatible", - "provider": "openai.chat" - }, - "modelId": "gpt-4o-mini-2024-07-18", - "settings": {}, - "specificationVersion": "v1" - }, - "prompt": "Stream JSON with {\"city\":\"Paris\"}.", - "schema": { - "$schema": "http://json-schema.org/draft-07/schema#", - "additionalProperties": false, - "properties": { - "city": { - "type": "string" - } - }, - "required": [ - "city" - ], - "type": "object" - }, - "temperature": 0 - } - output: { - "object": { - "city": "Paris" - }, - "rawResponse": {}, - "warnings": [] - } - metadata: { - "braintrust": { - "integration_name": "ai-sdk", - "sdk_language": "typescript" - }, - "model": "gpt-4o-mini-2024-07-18", - "provider": "openai.chat" - } - metrics: { - "time_to_first_token": 0 - } - └── doStream [llm] - input: { - "inputFormat": "prompt", - "maxRetries": 2, - "maxTokens": 32, - "mode": { - "tool": { - "description": "Respond with a JSON object.", - "name": "json", - "parameters": { - "$schema": "http://json-schema.org/draft-07/schema#", - "additionalProperties": false, - "properties": { - "city": { - "type": "string" - } - }, - "required": [ - "city" - ], - "type": "object" - }, - "type": "function" - }, - "type": "object-tool" - }, - "prompt": [ - { - "content": [ - { - "text": "Stream JSON with {\"city\":\"Paris\"}.", - "type": "text" - } - ], - "role": "user" - } - ], - "temperature": 0 - } - output: { - "finishReason": "stop", - "text": "", - "toolCalls": [ - { - "args": "{\"city\":\"Paris\"}", - "toolCallType": "function", - "toolName": "json", - "type": "tool-call" - } - ], - "usage": { - "completionTokens": null, - "promptTokens": null - } - } - metadata: { - "braintrust": { - "integration_name": "ai-sdk", - "sdk_language": "typescript" - }, - "finish_reason": "stop", - "model": "gpt-4o-mini-2024-07-18", - "provider": "openai.chat" - } - metrics: { - "completion_tokens": null, - "prompt_tokens": null, - "time_to_first_token": 0, - "tokens": null - } diff --git a/e2e/scenarios/ai-sdk-instrumentation/package.json b/e2e/scenarios/ai-sdk-instrumentation/package.json index b5ddbe320..cfa3648f8 100644 --- a/e2e/scenarios/ai-sdk-instrumentation/package.json +++ b/e2e/scenarios/ai-sdk-instrumentation/package.json @@ -4,14 +4,6 @@ "braintrustScenario": { "bump": { "dependencies": { - "ai-sdk-v3-latest": { - "package": "ai", - "range": "3" - }, - "ai-sdk-openai-v3-latest": { - "package": "@ai-sdk/openai", - "range": "0" - }, "ai-sdk-v4-latest": { "package": "ai", "range": "4" @@ -74,10 +66,6 @@ "dependencies": { "zod": "3.25.76", "ai": "7.0.8", - "ai-sdk-v3": "npm:ai@3.4.33", - "ai-sdk-v3-latest": "npm:ai@3.4.33", - "ai-sdk-openai-v3": "npm:@ai-sdk/openai@0.0.62", - "ai-sdk-openai-v3-latest": "npm:@ai-sdk/openai@0.0.72", "ai-sdk-v4": "npm:ai@4.3.19", "ai-sdk-v4-latest": "npm:ai@4.3.19", "ai-sdk-openai-v4": "npm:@ai-sdk/openai@1.3.24", diff --git a/e2e/scenarios/ai-sdk-instrumentation/pnpm-lock.yaml b/e2e/scenarios/ai-sdk-instrumentation/pnpm-lock.yaml index 78043204b..cd26bb249 100644 --- a/e2e/scenarios/ai-sdk-instrumentation/pnpm-lock.yaml +++ b/e2e/scenarios/ai-sdk-instrumentation/pnpm-lock.yaml @@ -56,12 +56,6 @@ importers: ai-sdk-cohere-v7-latest: specifier: npm:@ai-sdk/cohere@4.0.25 version: '@ai-sdk/cohere@4.0.25(zod@3.25.76)' - ai-sdk-openai-v3: - specifier: npm:@ai-sdk/openai@0.0.62 - version: '@ai-sdk/openai@0.0.62(zod@3.25.76)' - ai-sdk-openai-v3-latest: - specifier: npm:@ai-sdk/openai@0.0.72 - version: '@ai-sdk/openai@0.0.72(zod@3.25.76)' ai-sdk-openai-v4: specifier: npm:@ai-sdk/openai@1.3.24 version: '@ai-sdk/openai@1.3.24(zod@3.25.76)' @@ -86,12 +80,6 @@ importers: ai-sdk-openai-v7-latest: specifier: npm:@ai-sdk/openai@4.0.36 version: '@ai-sdk/openai@4.0.36(zod@3.25.76)' - ai-sdk-v3: - specifier: npm:ai@3.4.33 - version: ai@3.4.33(react@19.2.6)(sswr@2.2.0(svelte@5.55.9))(svelte@5.55.9)(vue@3.5.35)(zod@3.25.76) - ai-sdk-v3-latest: - specifier: npm:ai@3.4.33 - version: ai@3.4.33(react@19.2.6)(sswr@2.2.0(svelte@5.55.9))(svelte@5.55.9)(vue@3.5.35)(zod@3.25.76) ai-sdk-v4: specifier: npm:ai@4.3.19 version: ai@4.3.19(react@19.2.6)(zod@3.25.76) @@ -233,18 +221,6 @@ packages: peerDependencies: zod: ^3.25.76 || ^4.1.8 - '@ai-sdk/openai@0.0.62': - resolution: {integrity: sha512-qNQmTgZXGS3xyd6XsDGEMLWV3Ag3uAVPJxHVkZLDZ7Dubmgs3Mp8iupkwZ7JhD7TIBx8yifyyBuE1dnE70v8Ig==} - engines: {node: '>=18'} - peerDependencies: - zod: ^3.0.0 - - '@ai-sdk/openai@0.0.72': - resolution: {integrity: sha512-IKsgxIt6KJGkEHyMp975xW5VPmetwhI8g9H6dDmwvemBB41IRQa78YMNttiJqPcgmrZX2QfErOICv1gQvZ1gZg==} - engines: {node: '>=18'} - peerDependencies: - zod: ^3.0.0 - '@ai-sdk/openai@1.3.24': resolution: {integrity: sha512-GYXnGJTHRTZc4gJMSmFRgEQudjqd4PUN0ZjQhPwOAYH1yOAvQoG/Ikqs+HyISRbLPCrhbZnPKCNHuRU4OfpW0Q==} engines: {node: '>=18'} @@ -287,24 +263,6 @@ packages: peerDependencies: zod: ^3.25.76 || ^4.1.8 - '@ai-sdk/provider-utils@1.0.19': - resolution: {integrity: sha512-p02Fq5Mnc8T6nwRBN1Iaou8YXvN1sDS6hbmJaD5UaRbXjizbh+8rpFS/o7jqAHTwf3uHCDitP3pnODyHdc/CDQ==} - engines: {node: '>=18'} - peerDependencies: - zod: ^3.0.0 - peerDependenciesMeta: - zod: - optional: true - - '@ai-sdk/provider-utils@1.0.22': - resolution: {integrity: sha512-YHK2rpj++wnLVc9vPGzGFP3Pjeld2MwhKinetA0zKXOoHAT/Jit5O8kZsxcSlJPu9wvcGT1UGZEjZrtO7PfFOQ==} - engines: {node: '>=18'} - peerDependencies: - zod: ^3.0.0 - peerDependenciesMeta: - zod: - optional: true - '@ai-sdk/provider-utils@2.2.8': resolution: {integrity: sha512-fqhG+4sCVv8x7nFzYnFo19ryhAa3w096Kmc3hWxMQfW/TubPOmt3A6tYZhl4mUfQWWQMsuSkLrtjlWuXBVSGQA==} engines: {node: '>=18'} @@ -383,14 +341,6 @@ packages: peerDependencies: zod: ^3.25.76 || ^4.1.8 - '@ai-sdk/provider@0.0.23': - resolution: {integrity: sha512-oAc49O5+xypVrKM7EUU5P/Y4DUL4JZUWVxhejoAVOTOl3WZUEWsMbP3QZR+TrimQIsS0WR/n9UuF6U0jPdp0tQ==} - engines: {node: '>=18'} - - '@ai-sdk/provider@0.0.26': - resolution: {integrity: sha512-dQkfBDs2lTYpKM8389oopPdQgIU007GQyCbuPPrV+K6MtSII3HBfE0stUIMXUb44L+LK1t6GXPP7wjSzjO6uKg==} - engines: {node: '>=18'} - '@ai-sdk/provider@1.1.3': resolution: {integrity: sha512-qZMxYJ0qqX/RfnuIaab+zp8UAeJn/ygXXAffR5I4N0n1IrvA6qBsjc8hXLmBiMV2zoXlifkacF7sEFnYnjBcqg==} engines: {node: '>=18'} @@ -439,18 +389,6 @@ packages: resolution: {integrity: sha512-6or44XprPzKbr8zkmzosowSE0pxkvJcoojBL+mCZvPUt3kvXp3XSNqeVun9golb1acEfSo6yaEBRT18h2VU+1Q==} engines: {node: '>=22'} - '@ai-sdk/react@0.0.70': - resolution: {integrity: sha512-GnwbtjW4/4z7MleLiW+TOZC2M29eCg1tOUpuEiYFMmFNZK8mkrqM0PFZMo6UsYeUYMWqEOOcPOU9OQVJMJh7IQ==} - engines: {node: '>=18'} - peerDependencies: - react: ^18 || ^19 || ^19.0.0-rc - zod: ^3.0.0 - peerDependenciesMeta: - react: - optional: true - zod: - optional: true - '@ai-sdk/react@1.2.12': resolution: {integrity: sha512-jK1IZZ22evPZoQW3vlkZ7wvjYGYF+tRBKXtrcolduIkQ/m/sOAVcVeVDUDvh1T91xCnWCdUGCPZg2avZ90mv3g==} engines: {node: '>=18'} @@ -461,87 +399,18 @@ packages: zod: optional: true - '@ai-sdk/solid@0.0.54': - resolution: {integrity: sha512-96KWTVK+opdFeRubqrgaJXoNiDP89gNxFRWUp0PJOotZW816AbhUf4EnDjBjXTLjXL1n0h8tGSE9sZsRkj9wQQ==} - engines: {node: '>=18'} - peerDependencies: - solid-js: ^1.7.7 - peerDependenciesMeta: - solid-js: - optional: true - - '@ai-sdk/svelte@0.0.57': - resolution: {integrity: sha512-SyF9ItIR9ALP9yDNAD+2/5Vl1IT6kchgyDH8xkmhysfJI6WrvJbtO1wdQ0nylvPLcsPoYu+cAlz1krU4lFHcYw==} - engines: {node: '>=18'} - peerDependencies: - svelte: ^5.55.7 - peerDependenciesMeta: - svelte: - optional: true - - '@ai-sdk/ui-utils@0.0.50': - resolution: {integrity: sha512-Z5QYJVW+5XpSaJ4jYCCAVG7zIAuKOOdikhgpksneNmKvx61ACFaf98pmOd+xnjahl0pIlc/QIe6O4yVaJ1sEaw==} - engines: {node: '>=18'} - peerDependencies: - zod: ^3.0.0 - peerDependenciesMeta: - zod: - optional: true - '@ai-sdk/ui-utils@1.2.11': resolution: {integrity: sha512-3zcwCc8ezzFlwp3ZD15wAPjf2Au4s3vAbKsXQVyhxODHcmu0iyPO2Eua6D/vicq/AUm/BAo60r97O6HU+EI0+w==} engines: {node: '>=18'} peerDependencies: zod: ^3.23.8 - '@ai-sdk/vue@0.0.59': - resolution: {integrity: sha512-+ofYlnqdc8c4F6tM0IKF0+7NagZRAiqBJpGDJ+6EYhDW8FHLUP/JFBgu32SjxSxC6IKFZxEnl68ZoP/Z38EMlw==} - engines: {node: '>=18'} - peerDependencies: - vue: ^3.3.4 - peerDependenciesMeta: - vue: - optional: true - '@ai-sdk/workflow@1.0.8': resolution: {integrity: sha512-cCRvGNq3PORnsnE6DsWg8EltWCyC/Wu3QHOGRpN1pgtNrkeX+WbRZ6IX4JC6b7ibFC4hJUNzEunM+1yPkJ16kQ==} engines: {node: '>=22'} peerDependencies: zod: ^3.25.76 || ^4.1.8 - '@babel/helper-string-parser@7.29.7': - resolution: {integrity: sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-validator-identifier@7.29.7': - resolution: {integrity: sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==} - engines: {node: '>=6.9.0'} - - '@babel/parser@7.29.7': - resolution: {integrity: sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==} - engines: {node: '>=6.0.0'} - hasBin: true - - '@babel/types@7.29.7': - resolution: {integrity: sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==} - engines: {node: '>=6.9.0'} - - '@jridgewell/gen-mapping@0.3.13': - resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} - - '@jridgewell/remapping@2.3.5': - resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} - - '@jridgewell/resolve-uri@3.1.2': - resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} - engines: {node: '>=6.0.0'} - - '@jridgewell/sourcemap-codec@1.5.5': - resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} - - '@jridgewell/trace-mapping@0.3.31': - resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} - '@opentelemetry/api@1.9.0': resolution: {integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==} engines: {node: '>=8.0.0'} @@ -549,20 +418,9 @@ packages: '@standard-schema/spec@1.1.0': resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==} - '@sveltejs/acorn-typescript@1.0.10': - resolution: {integrity: sha512-4WfKk68eTih+MiJD4fSbxN7E8kVBmTMPWHUPYjvl2N0rMs53YLTT8/YjKU5Dtnz5LqDjl7LEw4U7lXR2W3J5WA==} - peerDependencies: - acorn: ^8.9.0 - '@types/diff-match-patch@1.0.36': resolution: {integrity: sha512-xFdR6tkm0MWvBfO8xXCSsinYxHcqkQUlcHeSpMC2ukzOb6lwQAfDmW+Qt0AvlGd8HpsS28qKsB+oPeJn9I39jg==} - '@types/estree@1.0.9': - resolution: {integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==} - - '@types/trusted-types@2.0.7': - resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} - '@vercel/oidc@3.0.3': resolution: {integrity: sha512-yNEQvPcVrK9sIe637+I0jD6leluPxzwJKx/Haw6F4H77CdDsszUn5V3o96LPziXkSNE2B83+Z3mjqGKBK/R6Gg==} engines: {node: '>= 20'} @@ -579,64 +437,9 @@ packages: resolution: {integrity: sha512-UycprH3T6n3jH0k44NHMa7pnFHGu/N05MjojYr+Mc6I7obkoLIJujSWwin1pCvdy/eOxrI/l3uDLQsmcrOb4ug==} engines: {node: '>= 20'} - '@vue/compiler-core@3.5.35': - resolution: {integrity: sha512-BUmHaR1J+O+CKZ9uJucdVTEr1LHsdyvv7vG3eNRhK3CczEHeMd/LtsHAuD7PbrxvI2envCY2v7HI1vC1aBRzKw==} - - '@vue/compiler-dom@3.5.35': - resolution: {integrity: sha512-k+bprkXxuqhVajgTx5mUHuir7TwQzUKOWR40ng1ncAqQRPnrLngGGgqVEEhOnTMlc8btHYVKmrP8s5Qyg0hvYA==} - - '@vue/compiler-sfc@3.5.35': - resolution: {integrity: sha512-G5VPMcXTSywXBgtFOZOnHKBxKSrwXUcvY1iaF5/hRcy7t0J6CH/d8ha9F4nzi00Fax1eLV0QHM7v4mQu68jydw==} - - '@vue/compiler-ssr@3.5.35': - resolution: {integrity: sha512-rGhAeXgdM7/ffTJGXT69rCCdTmjDewnFuUZfBQQHTdcEBeWdT5HCGY60y2ytLJr9/Dsu7IntUi5z/w0h6Rjnzw==} - - '@vue/reactivity@3.5.35': - resolution: {integrity: sha512-tVc+SsHConvh/Lz64qq1pP3rYArBmK42xonovEcxY74SQtvctZodG/zhq54P5dr38cVuw25d27cPNRdlMidpGQ==} - - '@vue/runtime-core@3.5.35': - resolution: {integrity: sha512-A/xFNX9loIcWDygeQuNCfKuh0CoYBzxhqEMNah5TSFg9Z53DrFYEN2qi5CU9necjM1OWYegYREUTHmXTmhfXtg==} - - '@vue/runtime-dom@3.5.35': - resolution: {integrity: sha512-odrJ1C391dbGnyDRh8U+rnP7J2amIEzfmRk5vXy7xi3aZhEXofTvpi0T4HJb6jlNqQZTNPR5MPHSB3RHNkIORA==} - - '@vue/server-renderer@3.5.35': - resolution: {integrity: sha512-NkebSOYdB97wi8OQcO3HqzZSlymJi/aWsN/7h74OSVhRTm6qGs3Jp3e0rCXynmWwSlKeRrnlIug+ilYoHBmQDA==} - peerDependencies: - vue: 3.5.35 - - '@vue/shared@3.5.35': - resolution: {integrity: sha512-zSbjL7gRXwks2ZQLRGCajBtBXEOXW9Ddhn/HvSdrGkE2dqGnumzW8XtusRrxrE9LvqtiqDXQ+A60Hp6mvdYxfA==} - '@workflow/serde@4.1.0': resolution: {integrity: sha512-pav4F2BoirECWR7Nf1TKt+2eETcBj7jj4cBefQ8VXQCA6NPkaKeLfj/zMgi+3zYV5ZIBT4GuUiphsj0/b9hPQQ==} - acorn@8.16.0: - resolution: {integrity: sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==} - engines: {node: '>=0.4.0'} - hasBin: true - - ai@3.4.33: - resolution: {integrity: sha512-plBlrVZKwPoRTmM8+D1sJac9Bq8eaa2jiZlHLZIWekKWI1yMWYZvCCEezY9ASPwRhULYDJB2VhKOBUUeg3S5JQ==} - engines: {node: '>=18'} - peerDependencies: - openai: ^4.42.0 - react: ^18 || ^19 || ^19.0.0-rc - sswr: ^2.1.0 - svelte: ^5.55.7 - zod: ^3.0.0 - peerDependenciesMeta: - openai: - optional: true - react: - optional: true - sswr: - optional: true - svelte: - optional: true - zod: - optional: true - ai@4.3.19: resolution: {integrity: sha512-dIE2bfNpqHN3r6IINp9znguYdhIOheKW2LDigAMrgt/upT3B8eBGPSCblENvaZGoq+hxaN9fSMzjWpbqloP+7Q==} engines: {node: '>=18'} @@ -686,57 +489,17 @@ packages: ajv@8.20.0: resolution: {integrity: sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==} - aria-query@5.3.1: - resolution: {integrity: sha512-Z/ZeOgVl7bcSYZ/u/rh0fOpvEpq//LZmdbkXyc7syVzjPAhfOa9ebsdTSjEBDU4vs5nC98Kfduj1uFo0qyET3g==} - engines: {node: '>= 0.4'} - - axobject-query@4.1.0: - resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} - engines: {node: '>= 0.4'} - chalk@5.6.2: resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} - clsx@2.1.1: - resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} - engines: {node: '>=6'} - - csstype@3.2.3: - resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==} - dequal@2.0.3: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} engines: {node: '>=6'} - devalue@5.8.1: - resolution: {integrity: sha512-4CXDYRBGqN+57wVJkuXBYmpAVUSg3L6JAQa/DFqm238G73E1wuyc/JhGQJzN7vUf/CMphYau2zXbfWzDR5aTEw==} - diff-match-patch@1.0.5: resolution: {integrity: sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw==} - entities@7.0.1: - resolution: {integrity: sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==} - engines: {node: '>=0.12'} - - esm-env@1.2.2: - resolution: {integrity: sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==} - - esrap@2.2.9: - resolution: {integrity: sha512-4KijP+NxCWthMCUC3qHbE6n4vCjqgJS1uAYKhuT/GWfFTf1Qyive2TgOjep+gzbSzRfnNyaN/UU9YmdOt8Eg0A==} - peerDependencies: - '@typescript-eslint/types': ^8.2.0 - peerDependenciesMeta: - '@typescript-eslint/types': - optional: true - - estree-walker@2.0.2: - resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} - - eventsource-parser@1.1.2: - resolution: {integrity: sha512-v0eOBUbiaFojBu2s2NPBfYUoRR9GjcDNvCXVaqEf5vVfpIAh9f8RCo4vXTP8c63QRKCFwoLpMpTdPwwhEKVgzA==} - engines: {node: '>=14.18'} - eventsource-parser@3.0.8: resolution: {integrity: sha512-70QWGkr4snxr0OXLRWsFLeRBIRPuQOvt4s8QYjmUlmlkyTZkRqS7EDVRZtzU3TiyDbXSzaOeF0XUKy8PchzukQ==} engines: {node: '>=18.0.0'} @@ -747,9 +510,6 @@ packages: fast-uri@3.1.5: resolution: {integrity: sha512-gHwA1O9LDIcKunMKhObS/HimwtehO1nPUECKAu5TpKgaO19fcWEl4bliWe1jWxVFvIXztJjjQ4L8XQ1EU9f7Jw==} - is-reference@3.0.3: - resolution: {integrity: sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==} - json-schema-traverse@1.0.0: resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} @@ -761,24 +521,11 @@ packages: engines: {node: ^18.0.0 || >=20.0.0} hasBin: true - locate-character@3.0.0: - resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==} - - magic-string@0.30.21: - resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} - nanoid@3.3.18: resolution: {integrity: sha512-DTg4MJbGMWkfi6VZFdNt2/caMbQy4Ou+Op/hJQvGEWcnVfoA1QA+xzRKAzw9jD6+GVOOeYr/mIcuDSdug6F6+w==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - picocolors@1.1.1: - resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} - - postcss@8.5.23: - resolution: {integrity: sha512-g50586zr4bZmwFiTlflMu8E0bDTb5I5gertgwAKmsdUlTQIhZtunzUlD1WSzwcVWPoAVpsrA6vlfCD7oXvRwgg==} - engines: {node: ^10 || ^12 || >=14} - react@19.2.6: resolution: {integrity: sha512-sfWGGfavi0xr8Pg0sVsyHMAOziVYKgPLNrS7ig+ivMNb3wbCBw3KxtflsGBAwD3gYQlE/AEZsTLgToRrSCjb0Q==} engines: {node: '>=0.10.0'} @@ -790,32 +537,11 @@ packages: secure-json-parse@2.7.0: resolution: {integrity: sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==} - source-map-js@1.2.1: - resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} - engines: {node: '>=0.10.0'} - - sswr@2.2.0: - resolution: {integrity: sha512-clTszLPZkmycALTHD1mXGU+mOtA/MIoLgS1KGTTzFNVm9rytQVykgRaP+z1zl572cz0bTqj4rFVoC2N+IGK4Sg==} - peerDependencies: - svelte: ^5.55.7 - - svelte@5.55.9: - resolution: {integrity: sha512-fTjjT8cHLDwigcu2j3pv7Jq04LklXevPB8uBgyHNiTXv+RMNvVnrjS4UEYrLMkhuq1vpCodHjiW+z/95SDs/fg==} - engines: {node: '>=18'} - swr@2.4.1: resolution: {integrity: sha512-2CC6CiKQtEwaEeNiqWTAw9PGykW8SR5zZX8MZk6TeAvEAnVS7Visz8WzphqgtQ8v2xz/4Q5K+j+SeMaKXeeQIA==} peerDependencies: react: ^16.11.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - swrev@4.0.0: - resolution: {integrity: sha512-LqVcOHSB4cPGgitD1riJ1Hh4vdmITOp+BkmfmXRh4hSF/t7EnS4iD+SOTmq7w5pPm/SiPeto4ADbKS6dHUDWFA==} - - swrv@1.2.0: - resolution: {integrity: sha512-lH/g4UcNyj+7lzK4eRGT4C68Q4EhQ6JtM9otPRIASfhhzfLWtbZPHcMuhuba7S9YVYuxkMUGImwMyGpfbkH07A==} - peerDependencies: - vue: '>=3.2.26 < 4' - throttleit@2.1.0: resolution: {integrity: sha512-nt6AMGKW1p/70DF/hGBdJB57B8Tspmbp5gfJ8ilhLnt7kkr2ye7hzD6NVG8GGErk2HWF34igrL2CXmNIkzKqKw==} engines: {node: '>=18'} @@ -833,17 +559,6 @@ packages: peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - vue@3.5.35: - resolution: {integrity: sha512-cx89fnr+0kVGHiNFG6y6s0bdjypJRFNZn6x3WPstNdQR1bi1mbB7h4v5IBGTsPJU3nK1+0Iqj3Zf+hZWMieR4Q==} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - zimmerframe@1.1.4: - resolution: {integrity: sha512-B58NGBEoc8Y9MWWCQGl/gq9xBCe4IiKM0a2x7GZdQKOW5Exr8S1W24J6OgM1njK8xCRGvAJIL/MxXHf6SkmQKQ==} - zod-to-json-schema@3.25.2: resolution: {integrity: sha512-O/PgfnpT1xKSDeQYSCfRI5Gy3hPf91mKVDuYLUHZJMiDFptvP41MSnWofm8dnCm0256ZNfZIM7DSzuSMAFnjHA==} peerDependencies: @@ -968,18 +683,6 @@ snapshots: '@vercel/oidc': 3.2.0 zod: 3.25.76 - '@ai-sdk/openai@0.0.62(zod@3.25.76)': - dependencies: - '@ai-sdk/provider': 0.0.23 - '@ai-sdk/provider-utils': 1.0.19(zod@3.25.76) - zod: 3.25.76 - - '@ai-sdk/openai@0.0.72(zod@3.25.76)': - dependencies: - '@ai-sdk/provider': 0.0.26 - '@ai-sdk/provider-utils': 1.0.22(zod@3.25.76) - zod: 3.25.76 - '@ai-sdk/openai@1.3.24(zod@3.25.76)': dependencies: '@ai-sdk/provider': 1.1.3 @@ -1022,24 +725,6 @@ snapshots: '@ai-sdk/provider-utils': 5.0.25(zod@3.25.76) zod: 3.25.76 - '@ai-sdk/provider-utils@1.0.19(zod@3.25.76)': - dependencies: - '@ai-sdk/provider': 0.0.23 - eventsource-parser: 1.1.2 - nanoid: 3.3.18 - secure-json-parse: 2.7.0 - optionalDependencies: - zod: 3.25.76 - - '@ai-sdk/provider-utils@1.0.22(zod@3.25.76)': - dependencies: - '@ai-sdk/provider': 0.0.26 - eventsource-parser: 1.1.2 - nanoid: 3.3.18 - secure-json-parse: 2.7.0 - optionalDependencies: - zod: 3.25.76 - '@ai-sdk/provider-utils@2.2.8(zod@3.25.76)': dependencies: '@ai-sdk/provider': 1.1.3 @@ -1137,14 +822,6 @@ snapshots: undici: 7.29.0 zod: 3.25.76 - '@ai-sdk/provider@0.0.23': - dependencies: - json-schema: 0.4.0 - - '@ai-sdk/provider@0.0.26': - dependencies: - json-schema: 0.4.0 - '@ai-sdk/provider@1.1.3': dependencies: json-schema: 0.4.0 @@ -1193,16 +870,6 @@ snapshots: dependencies: json-schema: 0.4.0 - '@ai-sdk/react@0.0.70(react@19.2.6)(zod@3.25.76)': - dependencies: - '@ai-sdk/provider-utils': 1.0.22(zod@3.25.76) - '@ai-sdk/ui-utils': 0.0.50(zod@3.25.76) - swr: 2.4.1(react@19.2.6) - throttleit: 2.1.0 - optionalDependencies: - react: 19.2.6 - zod: 3.25.76 - '@ai-sdk/react@1.2.12(react@19.2.6)(zod@3.25.76)': dependencies: '@ai-sdk/provider-utils': 2.2.8(zod@3.25.76) @@ -1213,33 +880,6 @@ snapshots: optionalDependencies: zod: 3.25.76 - '@ai-sdk/solid@0.0.54(zod@3.25.76)': - dependencies: - '@ai-sdk/provider-utils': 1.0.22(zod@3.25.76) - '@ai-sdk/ui-utils': 0.0.50(zod@3.25.76) - transitivePeerDependencies: - - zod - - '@ai-sdk/svelte@0.0.57(svelte@5.55.9)(zod@3.25.76)': - dependencies: - '@ai-sdk/provider-utils': 1.0.22(zod@3.25.76) - '@ai-sdk/ui-utils': 0.0.50(zod@3.25.76) - sswr: 2.2.0(svelte@5.55.9) - optionalDependencies: - svelte: 5.55.9 - transitivePeerDependencies: - - zod - - '@ai-sdk/ui-utils@0.0.50(zod@3.25.76)': - dependencies: - '@ai-sdk/provider': 0.0.26 - '@ai-sdk/provider-utils': 1.0.22(zod@3.25.76) - json-schema: 0.4.0 - secure-json-parse: 2.7.0 - zod-to-json-schema: 3.25.2(zod@3.25.76) - optionalDependencies: - zod: 3.25.76 - '@ai-sdk/ui-utils@1.2.11(zod@3.25.76)': dependencies: '@ai-sdk/provider': 1.1.3 @@ -1247,16 +887,6 @@ snapshots: zod: 3.25.76 zod-to-json-schema: 3.25.2(zod@3.25.76) - '@ai-sdk/vue@0.0.59(vue@3.5.35)(zod@3.25.76)': - dependencies: - '@ai-sdk/provider-utils': 1.0.22(zod@3.25.76) - '@ai-sdk/ui-utils': 0.0.50(zod@3.25.76) - swrv: 1.2.0(vue@3.5.35) - optionalDependencies: - vue: 3.5.35 - transitivePeerDependencies: - - zod - '@ai-sdk/workflow@1.0.8(zod@3.25.76)': dependencies: '@ai-sdk/provider': 4.0.1 @@ -1265,52 +895,12 @@ snapshots: ajv: 8.20.0 zod: 3.25.76 - '@babel/helper-string-parser@7.29.7': {} - - '@babel/helper-validator-identifier@7.29.7': {} - - '@babel/parser@7.29.7': - dependencies: - '@babel/types': 7.29.7 - - '@babel/types@7.29.7': - dependencies: - '@babel/helper-string-parser': 7.29.7 - '@babel/helper-validator-identifier': 7.29.7 - - '@jridgewell/gen-mapping@0.3.13': - dependencies: - '@jridgewell/sourcemap-codec': 1.5.5 - '@jridgewell/trace-mapping': 0.3.31 - - '@jridgewell/remapping@2.3.5': - dependencies: - '@jridgewell/gen-mapping': 0.3.13 - '@jridgewell/trace-mapping': 0.3.31 - - '@jridgewell/resolve-uri@3.1.2': {} - - '@jridgewell/sourcemap-codec@1.5.5': {} - - '@jridgewell/trace-mapping@0.3.31': - dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.5 - '@opentelemetry/api@1.9.0': {} '@standard-schema/spec@1.1.0': {} - '@sveltejs/acorn-typescript@1.0.10(acorn@8.16.0)': - dependencies: - acorn: 8.16.0 - '@types/diff-match-patch@1.0.36': {} - '@types/estree@1.0.9': {} - - '@types/trusted-types@2.0.7': {} - '@vercel/oidc@3.0.3': {} '@vercel/oidc@3.0.5': {} @@ -1319,88 +909,8 @@ snapshots: '@vercel/oidc@3.2.0': {} - '@vue/compiler-core@3.5.35': - dependencies: - '@babel/parser': 7.29.7 - '@vue/shared': 3.5.35 - entities: 7.0.1 - estree-walker: 2.0.2 - source-map-js: 1.2.1 - - '@vue/compiler-dom@3.5.35': - dependencies: - '@vue/compiler-core': 3.5.35 - '@vue/shared': 3.5.35 - - '@vue/compiler-sfc@3.5.35': - dependencies: - '@babel/parser': 7.29.7 - '@vue/compiler-core': 3.5.35 - '@vue/compiler-dom': 3.5.35 - '@vue/compiler-ssr': 3.5.35 - '@vue/shared': 3.5.35 - estree-walker: 2.0.2 - magic-string: 0.30.21 - postcss: 8.5.23 - source-map-js: 1.2.1 - - '@vue/compiler-ssr@3.5.35': - dependencies: - '@vue/compiler-dom': 3.5.35 - '@vue/shared': 3.5.35 - - '@vue/reactivity@3.5.35': - dependencies: - '@vue/shared': 3.5.35 - - '@vue/runtime-core@3.5.35': - dependencies: - '@vue/reactivity': 3.5.35 - '@vue/shared': 3.5.35 - - '@vue/runtime-dom@3.5.35': - dependencies: - '@vue/reactivity': 3.5.35 - '@vue/runtime-core': 3.5.35 - '@vue/shared': 3.5.35 - csstype: 3.2.3 - - '@vue/server-renderer@3.5.35(vue@3.5.35)': - dependencies: - '@vue/compiler-ssr': 3.5.35 - '@vue/shared': 3.5.35 - vue: 3.5.35 - - '@vue/shared@3.5.35': {} - '@workflow/serde@4.1.0': {} - acorn@8.16.0: {} - - ai@3.4.33(react@19.2.6)(sswr@2.2.0(svelte@5.55.9))(svelte@5.55.9)(vue@3.5.35)(zod@3.25.76): - dependencies: - '@ai-sdk/provider': 0.0.26 - '@ai-sdk/provider-utils': 1.0.22(zod@3.25.76) - '@ai-sdk/react': 0.0.70(react@19.2.6)(zod@3.25.76) - '@ai-sdk/solid': 0.0.54(zod@3.25.76) - '@ai-sdk/svelte': 0.0.57(svelte@5.55.9)(zod@3.25.76) - '@ai-sdk/ui-utils': 0.0.50(zod@3.25.76) - '@ai-sdk/vue': 0.0.59(vue@3.5.35)(zod@3.25.76) - '@opentelemetry/api': 1.9.0 - eventsource-parser: 1.1.2 - json-schema: 0.4.0 - jsondiffpatch: 0.6.0 - secure-json-parse: 2.7.0 - zod-to-json-schema: 3.25.2(zod@3.25.76) - optionalDependencies: - react: 19.2.6 - sswr: 2.2.0(svelte@5.55.9) - svelte: 5.55.9 - zod: 3.25.76 - transitivePeerDependencies: - - solid-js - - vue - ai@4.3.19(react@19.2.6)(zod@3.25.76): dependencies: '@ai-sdk/provider': 1.1.3 @@ -1466,44 +976,18 @@ snapshots: json-schema-traverse: 1.0.0 require-from-string: 2.0.2 - aria-query@5.3.1: {} - - axobject-query@4.1.0: {} - chalk@5.6.2: {} - clsx@2.1.1: {} - - csstype@3.2.3: {} - dequal@2.0.3: {} - devalue@5.8.1: {} - diff-match-patch@1.0.5: {} - entities@7.0.1: {} - - esm-env@1.2.2: {} - - esrap@2.2.9: - dependencies: - '@jridgewell/sourcemap-codec': 1.5.5 - - estree-walker@2.0.2: {} - - eventsource-parser@1.1.2: {} - eventsource-parser@3.0.8: {} fast-deep-equal@3.1.3: {} fast-uri@3.1.5: {} - is-reference@3.0.3: - dependencies: - '@types/estree': 1.0.9 - json-schema-traverse@1.0.0: {} json-schema@0.4.0: {} @@ -1514,68 +998,20 @@ snapshots: chalk: 5.6.2 diff-match-patch: 1.0.5 - locate-character@3.0.0: {} - - magic-string@0.30.21: - dependencies: - '@jridgewell/sourcemap-codec': 1.5.5 - nanoid@3.3.18: {} - picocolors@1.1.1: {} - - postcss@8.5.23: - dependencies: - nanoid: 3.3.18 - picocolors: 1.1.1 - source-map-js: 1.2.1 - react@19.2.6: {} require-from-string@2.0.2: {} secure-json-parse@2.7.0: {} - source-map-js@1.2.1: {} - - sswr@2.2.0(svelte@5.55.9): - dependencies: - svelte: 5.55.9 - swrev: 4.0.0 - - svelte@5.55.9: - dependencies: - '@jridgewell/remapping': 2.3.5 - '@jridgewell/sourcemap-codec': 1.5.5 - '@sveltejs/acorn-typescript': 1.0.10(acorn@8.16.0) - '@types/estree': 1.0.9 - '@types/trusted-types': 2.0.7 - acorn: 8.16.0 - aria-query: 5.3.1 - axobject-query: 4.1.0 - clsx: 2.1.1 - devalue: 5.8.1 - esm-env: 1.2.2 - esrap: 2.2.9 - is-reference: 3.0.3 - locate-character: 3.0.0 - magic-string: 0.30.21 - zimmerframe: 1.1.4 - transitivePeerDependencies: - - '@typescript-eslint/types' - swr@2.4.1(react@19.2.6): dependencies: dequal: 2.0.3 react: 19.2.6 use-sync-external-store: 1.6.0(react@19.2.6) - swrev@4.0.0: {} - - swrv@1.2.0(vue@3.5.35): - dependencies: - vue: 3.5.35 - throttleit@2.1.0: {} undici@6.28.0: {} @@ -1586,16 +1022,6 @@ snapshots: dependencies: react: 19.2.6 - vue@3.5.35: - dependencies: - '@vue/compiler-dom': 3.5.35 - '@vue/compiler-sfc': 3.5.35 - '@vue/runtime-dom': 3.5.35 - '@vue/server-renderer': 3.5.35(vue@3.5.35) - '@vue/shared': 3.5.35 - - zimmerframe@1.1.4: {} - zod-to-json-schema@3.25.2(zod@3.25.76): dependencies: zod: 3.25.76 diff --git a/e2e/scenarios/ai-sdk-instrumentation/scenario.ai-sdk-v3.mjs b/e2e/scenarios/ai-sdk-instrumentation/scenario.ai-sdk-v3.mjs deleted file mode 100644 index 451888c7a..000000000 --- a/e2e/scenarios/ai-sdk-instrumentation/scenario.ai-sdk-v3.mjs +++ /dev/null @@ -1,21 +0,0 @@ -const aiPackageName = process.env.AI_SDK_PACKAGE_NAME ?? "ai-sdk-v3-latest"; -const openaiPackageName = - process.env.AI_SDK_OPENAI_PACKAGE_NAME ?? "ai-sdk-openai-v3-latest"; -const ai = await import(aiPackageName); -const { createOpenAI, openai } = await import(openaiPackageName); -import { getInstalledPackageVersion } from "../../helpers/provider-runtime.mjs"; -import { runAutoAISDKInstrumentationOrExit } from "./scenario.impl.mjs"; - -runAutoAISDKInstrumentationOrExit({ - ai, - createOpenAI, - maxTokensKey: "maxTokens", - openai, - sdkVersion: await getInstalledPackageVersion(import.meta.url, aiPackageName), - supportsEmbedMany: false, - supportsGenerateObject: true, - supportsRerank: false, - supportsStreamObject: true, - supportsToolExecution: false, - toolSchemaKey: "parameters", -}); diff --git a/e2e/scenarios/ai-sdk-instrumentation/scenario.ai-sdk-v3.ts b/e2e/scenarios/ai-sdk-instrumentation/scenario.ai-sdk-v3.ts deleted file mode 100644 index cf589100c..000000000 --- a/e2e/scenarios/ai-sdk-instrumentation/scenario.ai-sdk-v3.ts +++ /dev/null @@ -1,30 +0,0 @@ -const aiPackageName = process.env.AI_SDK_PACKAGE_NAME ?? "ai-sdk-v3-latest"; -const openaiPackageName = - process.env.AI_SDK_OPENAI_PACKAGE_NAME ?? "ai-sdk-openai-v3-latest"; -import { - getInstalledPackageVersion, - runMain, -} from "../../helpers/scenario-runtime"; -import { runWrappedAISDKInstrumentation } from "./scenario.impl.mjs"; - -runMain(async () => { - const ai = await import(aiPackageName); - const { createOpenAI, openai } = await import(openaiPackageName); - - await runWrappedAISDKInstrumentation({ - ai, - createOpenAI, - maxTokensKey: "maxTokens", - openai, - sdkVersion: await getInstalledPackageVersion( - import.meta.url, - aiPackageName, - ), - supportsEmbedMany: false, - supportsGenerateObject: true, - supportsRerank: false, - supportsStreamObject: true, - supportsToolExecution: false, - toolSchemaKey: "parameters", - }); -}); diff --git a/e2e/scenarios/ai-sdk-instrumentation/scenario.impl.mjs b/e2e/scenarios/ai-sdk-instrumentation/scenario.impl.mjs index f09635def..347a946cf 100644 --- a/e2e/scenarios/ai-sdk-instrumentation/scenario.impl.mjs +++ b/e2e/scenarios/ai-sdk-instrumentation/scenario.impl.mjs @@ -13,38 +13,6 @@ const CACHE_PROMPT_PREFIX = "braintrust cache prefix ".repeat(900).trim(); const OPENAI_CACHE_KEY = "braintrust-ai-sdk-e2e-cache"; const CACHE_FILL_DELAY_MS = 5_000; export const AI_SDK_SCENARIO_SPECS = [ - { - autoEntry: "scenario.ai-sdk-v3.mjs", - dependencyName: "ai-sdk-v3", - maxTokensKey: "maxTokens", - openaiModuleName: "ai-sdk-openai-v3", - packageName: "ai-sdk-v3", - snapshotName: "ai-sdk-v3", - supportsEmbedMany: false, - supportsProviderCacheAssertions: false, - supportsGenerateObject: true, - supportsRerank: false, - supportsStreamObject: true, - supportsToolExecution: false, - toolSchemaKey: "parameters", - wrapperEntry: "scenario.ai-sdk-v3.ts", - }, - { - autoEntry: "scenario.ai-sdk-v3.mjs", - dependencyName: "ai-sdk-v3-latest", - maxTokensKey: "maxTokens", - openaiModuleName: "ai-sdk-openai-v3-latest", - packageName: "ai-sdk-v3-latest", - snapshotName: "ai-sdk-v3-latest", - supportsEmbedMany: false, - supportsProviderCacheAssertions: false, - supportsGenerateObject: true, - supportsRerank: false, - supportsStreamObject: true, - supportsToolExecution: false, - toolSchemaKey: "parameters", - wrapperEntry: "scenario.ai-sdk-v3.ts", - }, { autoEntry: "scenario.ai-sdk-v4.mjs", dependencyName: "ai-sdk-v4", diff --git a/integrations/val.town/deno.json b/integrations/val.town/deno.json index f21f43c25..c2fedfe7f 100644 --- a/integrations/val.town/deno.json +++ b/integrations/val.town/deno.json @@ -8,7 +8,6 @@ "@std/fs": "jsr:@std/fs@^1.0.14", "@std/path": "jsr:@std/path@^1.0.8", "autoevals": "npm:autoevals@^0.0.122", - "braintrust": "npm:braintrust@^0.0.187", - "zod": "npm:zod@^3.24.2" + "zod": "npm:zod@^3.25.34" } } diff --git a/integrations/val.town/deno.lock b/integrations/val.town/deno.lock index 50df406a5..62619ceb0 100644 --- a/integrations/val.town/deno.lock +++ b/integrations/val.town/deno.lock @@ -1,5 +1,5 @@ { - "version": "4", + "version": "5", "specifiers": { "jsr:@cliffy/ansi@^1.0.0-rc.7": "1.0.0-rc.7", "jsr:@cliffy/command@^1.0.0-rc.7": "1.0.0-rc.7", @@ -16,9 +16,8 @@ "jsr:@std/text@~1.0.7": "1.0.11", "npm:autoevals@*": "0.0.122_zod@3.24.2", "npm:autoevals@^0.0.122": "0.0.122_zod@3.24.2", - "npm:braintrust@*": "0.0.187_zod@3.24.2", - "npm:braintrust@^0.0.187": "0.0.187_zod@3.24.2", - "npm:zod@^3.24.2": "3.24.2" + "npm:braintrust@^3.30.0": "3.32.0_zod@3.25.76", + "npm:zod@^3.25.34": "3.25.76" }, "jsr": { "@cliffy/ansi@1.0.0-rc.7": { @@ -78,340 +77,256 @@ } }, "npm": { - "@ai-sdk/provider-utils@1.0.22_zod@3.24.2": { - "integrity": "sha512-YHK2rpj++wnLVc9vPGzGFP3Pjeld2MwhKinetA0zKXOoHAT/Jit5O8kZsxcSlJPu9wvcGT1UGZEjZrtO7PfFOQ==", + "@asteasolutions/zod-to-openapi@6.4.0_zod@3.24.2": { + "integrity": "sha512-8cxfF7AHHx2PqnN4Cd8/O8CBu/nVYJP9DpnfVLW3BFb66VJDnqI/CczZnkqMc3SNh6J9GiX7JbJ5T4BSP4HZ2Q==", "dependencies": [ - "@ai-sdk/provider@0.0.26", - "eventsource-parser", - "nanoid", - "secure-json-parse", - "zod" + "openapi3-ts" ] }, - "@ai-sdk/provider@0.0.26": { - "integrity": "sha512-dQkfBDs2lTYpKM8389oopPdQgIU007GQyCbuPPrV+K6MtSII3HBfE0stUIMXUb44L+LK1t6GXPP7wjSzjO6uKg==", - "dependencies": [ - "json-schema" - ] + "@braintrust/bt-darwin-arm64@0.12.0": { + "integrity": "sha512-mY6VW/3VwcOQOGN8sYHS6F0xzHTFwgZcNlj7zlQttI6OXOCGt/bhonGIqd03QBhxmj0M31ymSS7TqSeCK/RYIQ==", + "os": ["darwin"], + "cpu": ["arm64"] }, - "@ai-sdk/provider@1.0.10": { - "integrity": "sha512-pco8Zl9U0xwXI+nCLc0woMtxbvjU8hRmGTseAUiPHFLYAAL8trRPCukg69IDeinOvIeo1SmXxAIdWWPZOLb4Cg==", - "dependencies": [ - "json-schema" - ] + "@braintrust/bt-darwin-x64@0.12.0": { + "integrity": "sha512-woyRyDv2DfCF8+von+3X9f1cddAbFnKLSfCbEkrBQVc0ZsAM60as8nehYv7DkafJF/67yKFx/sUraV65sukesQ==", + "os": ["darwin"], + "cpu": ["x64"] }, - "@ai-sdk/react@0.0.70_zod@3.24.2": { - "integrity": "sha512-GnwbtjW4/4z7MleLiW+TOZC2M29eCg1tOUpuEiYFMmFNZK8mkrqM0PFZMo6UsYeUYMWqEOOcPOU9OQVJMJh7IQ==", - "dependencies": [ - "@ai-sdk/provider-utils", - "@ai-sdk/ui-utils", - "swr", - "throttleit", - "zod" - ] + "@braintrust/bt-linux-arm64@0.12.0": { + "integrity": "sha512-J9/7f3EIMKmFmSSQHQnAQLpUgB8YJENrOlkABjlTprBgsIYVgz7tSH7yg2P3ur+2Jem7PpGnrDxHGh/UjRfjsg==", + "os": ["linux"], + "cpu": ["arm64"] }, - "@ai-sdk/solid@0.0.54_zod@3.24.2": { - "integrity": "sha512-96KWTVK+opdFeRubqrgaJXoNiDP89gNxFRWUp0PJOotZW816AbhUf4EnDjBjXTLjXL1n0h8tGSE9sZsRkj9wQQ==", - "dependencies": [ - "@ai-sdk/provider-utils", - "@ai-sdk/ui-utils" - ] + "@braintrust/bt-linux-x64-musl@0.12.0": { + "integrity": "sha512-KnLgENOoztBXcH+mLFJe4bYzi67kSOuELOQrm4Hler35GjgaBMI1fFLIUjKRPAmyT9VIhBMhy1ICfGEFLueMEQ==", + "os": ["linux"], + "cpu": ["x64"] }, - "@ai-sdk/svelte@0.0.57_zod@3.24.2": { - "integrity": "sha512-SyF9ItIR9ALP9yDNAD+2/5Vl1IT6kchgyDH8xkmhysfJI6WrvJbtO1wdQ0nylvPLcsPoYu+cAlz1krU4lFHcYw==", - "dependencies": [ - "@ai-sdk/provider-utils", - "@ai-sdk/ui-utils", - "sswr" - ] + "@braintrust/bt-linux-x64@0.12.0": { + "integrity": "sha512-HJFbUl3HYYY1Ivw8OYBeIMcIsU9r7+fC9BzLWB5FdH7881ToKee2wbbLZssMCxFbMVeUxzEo+SzGD/1Z9Gk9CA==", + "os": ["linux"], + "cpu": ["x64"] }, - "@ai-sdk/ui-utils@0.0.50_zod@3.24.2": { - "integrity": "sha512-Z5QYJVW+5XpSaJ4jYCCAVG7zIAuKOOdikhgpksneNmKvx61ACFaf98pmOd+xnjahl0pIlc/QIe6O4yVaJ1sEaw==", - "dependencies": [ - "@ai-sdk/provider@0.0.26", - "@ai-sdk/provider-utils", - "json-schema", - "secure-json-parse", - "zod", - "zod-to-json-schema" - ] - }, - "@ai-sdk/vue@0.0.59_zod@3.24.2": { - "integrity": "sha512-+ofYlnqdc8c4F6tM0IKF0+7NagZRAiqBJpGDJ+6EYhDW8FHLUP/JFBgu32SjxSxC6IKFZxEnl68ZoP/Z38EMlw==", - "dependencies": [ - "@ai-sdk/provider-utils", - "@ai-sdk/ui-utils", - "swrv" - ] + "@braintrust/bt-win32-arm64@0.12.0": { + "integrity": "sha512-+7PkdBAmiqEJsWteGHP/Zs62F75PkHPA8m/ej4TOz/mHGKulUU0bZibw91KRqIB7J7jGi5ItvCiqkiGaLKLnyw==", + "os": ["win32"], + "cpu": ["arm64"] }, - "@ampproject/remapping@2.3.0": { - "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", - "dependencies": [ - "@jridgewell/gen-mapping", - "@jridgewell/trace-mapping" - ] - }, - "@asteasolutions/zod-to-openapi@6.4.0_zod@3.24.2": { - "integrity": "sha512-8cxfF7AHHx2PqnN4Cd8/O8CBu/nVYJP9DpnfVLW3BFb66VJDnqI/CczZnkqMc3SNh6J9GiX7JbJ5T4BSP4HZ2Q==", - "dependencies": [ - "openapi3-ts", - "zod" - ] - }, - "@babel/helper-string-parser@7.25.9": { - "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==" - }, - "@babel/helper-validator-identifier@7.25.9": { - "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==" - }, - "@babel/parser@7.26.9": { - "integrity": "sha512-81NWa1njQblgZbQHxWHpxxCzNsa3ZwvFqpUg7P+NNUU6f3UU2jBEg4OlF/J6rl8+PQGh1q6/zWScd001YwcA5A==", - "dependencies": [ - "@babel/types" - ] - }, - "@babel/types@7.26.9": { - "integrity": "sha512-Y3IR1cRnOxOCDvMmNiym7XpXQ93iGDDPHx+Zj+NM+rg0fBaShfQLkg+hKPaZCEvg5N/LeCo4+Rj/i3FuJsIQaw==", - "dependencies": [ - "@babel/helper-string-parser", - "@babel/helper-validator-identifier" - ] + "@braintrust/bt-win32-x64@0.12.0": { + "integrity": "sha512-Q0c+pVUGm82n/7N8QJ5s6j/G/Q0GFzqOaTipHjkmElLbAOOEcfRH/uljdtIPNBiEQcrzqirS0GmOgiFkeQ3Txg==", + "os": ["win32"], + "cpu": ["x64"] }, "@braintrust/core@0.0.81_zod@3.24.2": { "integrity": "sha512-izwl3I31sQu6qeDHZB+gYvqpKXNIHNXc7idBgrAolDXyQX2MtK9Wdnw1lnkjiXl5y2ww3gcLiy0jHDB3zaiOrw==", "dependencies": [ "@asteasolutions/zod-to-openapi", - "uuid", + "uuid@9.0.1", "zod" ] }, - "@esbuild/aix-ppc64@0.25.0": { - "integrity": "sha512-O7vun9Sf8DFjH2UtqK8Ku3LkquL9SZL8OLY1T5NZkA34+wG3OQF7cl4Ql8vdNzM6fzBbYfLaiRLIOZ+2FOCgBQ==" - }, - "@esbuild/android-arm64@0.25.0": { - "integrity": "sha512-grvv8WncGjDSyUBjN9yHXNt+cq0snxXbDxy5pJtzMKGmmpPxeAmAhWxXI+01lU5rwZomDgD3kJwulEnhTRUd6g==" - }, - "@esbuild/android-arm@0.25.0": { - "integrity": "sha512-PTyWCYYiU0+1eJKmw21lWtC+d08JDZPQ5g+kFyxP0V+es6VPPSUhM6zk8iImp2jbV6GwjX4pap0JFbUQN65X1g==" - }, - "@esbuild/android-x64@0.25.0": { - "integrity": "sha512-m/ix7SfKG5buCnxasr52+LI78SQ+wgdENi9CqyCXwjVR2X4Jkz+BpC3le3AoBPYTC9NHklwngVXvbJ9/Akhrfg==" - }, - "@esbuild/darwin-arm64@0.25.0": { - "integrity": "sha512-mVwdUb5SRkPayVadIOI78K7aAnPamoeFR2bT5nszFUZ9P8UpK4ratOdYbZZXYSqPKMHfS1wdHCJk1P1EZpRdvw==" - }, - "@esbuild/darwin-x64@0.25.0": { - "integrity": "sha512-DgDaYsPWFTS4S3nWpFcMn/33ZZwAAeAFKNHNa1QN0rI4pUjgqf0f7ONmXf6d22tqTY+H9FNdgeaAa+YIFUn2Rg==" - }, - "@esbuild/freebsd-arm64@0.25.0": { - "integrity": "sha512-VN4ocxy6dxefN1MepBx/iD1dH5K8qNtNe227I0mnTRjry8tj5MRk4zprLEdG8WPyAPb93/e4pSgi1SoHdgOa4w==" - }, - "@esbuild/freebsd-x64@0.25.0": { - "integrity": "sha512-mrSgt7lCh07FY+hDD1TxiTyIHyttn6vnjesnPoVDNmDfOmggTLXRv8Id5fNZey1gl/V2dyVK1VXXqVsQIiAk+A==" - }, - "@esbuild/linux-arm64@0.25.0": { - "integrity": "sha512-9QAQjTWNDM/Vk2bgBl17yWuZxZNQIF0OUUuPZRKoDtqF2k4EtYbpyiG5/Dk7nqeK6kIJWPYldkOcBqjXjrUlmg==" - }, - "@esbuild/linux-arm@0.25.0": { - "integrity": "sha512-vkB3IYj2IDo3g9xX7HqhPYxVkNQe8qTK55fraQyTzTX/fxaDtXiEnavv9geOsonh2Fd2RMB+i5cbhu2zMNWJwg==" - }, - "@esbuild/linux-ia32@0.25.0": { - "integrity": "sha512-43ET5bHbphBegyeqLb7I1eYn2P/JYGNmzzdidq/w0T8E2SsYL1U6un2NFROFRg1JZLTzdCoRomg8Rvf9M6W6Gg==" - }, - "@esbuild/linux-loong64@0.25.0": { - "integrity": "sha512-fC95c/xyNFueMhClxJmeRIj2yrSMdDfmqJnyOY4ZqsALkDrrKJfIg5NTMSzVBr5YW1jf+l7/cndBfP3MSDpoHw==" - }, - "@esbuild/linux-mips64el@0.25.0": { - "integrity": "sha512-nkAMFju7KDW73T1DdH7glcyIptm95a7Le8irTQNO/qtkoyypZAnjchQgooFUDQhNAy4iu08N79W4T4pMBwhPwQ==" - }, - "@esbuild/linux-ppc64@0.25.0": { - "integrity": "sha512-NhyOejdhRGS8Iwv+KKR2zTq2PpysF9XqY+Zk77vQHqNbo/PwZCzB5/h7VGuREZm1fixhs4Q/qWRSi5zmAiO4Fw==" - }, - "@esbuild/linux-riscv64@0.25.0": { - "integrity": "sha512-5S/rbP5OY+GHLC5qXp1y/Mx//e92L1YDqkiBbO9TQOvuFXM+iDqUNG5XopAnXoRH3FjIUDkeGcY1cgNvnXp/kA==" - }, - "@esbuild/linux-s390x@0.25.0": { - "integrity": "sha512-XM2BFsEBz0Fw37V0zU4CXfcfuACMrppsMFKdYY2WuTS3yi8O1nFOhil/xhKTmE1nPmVyvQJjJivgDT+xh8pXJA==" - }, - "@esbuild/linux-x64@0.25.0": { - "integrity": "sha512-9yl91rHw/cpwMCNytUDxwj2XjFpxML0y9HAOH9pNVQDpQrBxHy01Dx+vaMu0N1CKa/RzBD2hB4u//nfc+Sd3Cw==" - }, - "@esbuild/netbsd-arm64@0.25.0": { - "integrity": "sha512-RuG4PSMPFfrkH6UwCAqBzauBWTygTvb1nxWasEJooGSJ/NwRw7b2HOwyRTQIU97Hq37l3npXoZGYMy3b3xYvPw==" - }, - "@esbuild/netbsd-x64@0.25.0": { - "integrity": "sha512-jl+qisSB5jk01N5f7sPCsBENCOlPiS/xptD5yxOx2oqQfyourJwIKLRA2yqWdifj3owQZCL2sn6o08dBzZGQzA==" - }, - "@esbuild/openbsd-arm64@0.25.0": { - "integrity": "sha512-21sUNbq2r84YE+SJDfaQRvdgznTD8Xc0oc3p3iW/a1EVWeNj/SdUCbm5U0itZPQYRuRTW20fPMWMpcrciH2EJw==" - }, - "@esbuild/openbsd-x64@0.25.0": { - "integrity": "sha512-2gwwriSMPcCFRlPlKx3zLQhfN/2WjJ2NSlg5TKLQOJdV0mSxIcYNTMhk3H3ulL/cak+Xj0lY1Ym9ysDV1igceg==" - }, - "@esbuild/sunos-x64@0.25.0": { - "integrity": "sha512-bxI7ThgLzPrPz484/S9jLlvUAHYMzy6I0XiU1ZMeAEOBcS0VePBFxh1JjTQt3Xiat5b6Oh4x7UC7IwKQKIJRIg==" - }, - "@esbuild/win32-arm64@0.25.0": { - "integrity": "sha512-ZUAc2YK6JW89xTbXvftxdnYy3m4iHIkDtK3CLce8wg8M2L+YZhIvO1DKpxrd0Yr59AeNNkTiic9YLf6FTtXWMw==" - }, - "@esbuild/win32-ia32@0.25.0": { - "integrity": "sha512-eSNxISBu8XweVEWG31/JzjkIGbGIJN/TrRoiSVZwZ6pkC6VX4Im/WV2cz559/TXLcYbcrDN8JtKgd9DJVIo8GA==" - }, - "@esbuild/win32-x64@0.25.0": { - "integrity": "sha512-ZENoHJBxA20C2zFzh6AI4fT6RraMzjYw4xKWemRTRmRVtN9c5DcH9r/f2ihEkMjOW5eGgrwCslG/+Y/3bL+DHQ==" - }, - "@jridgewell/gen-mapping@0.3.8": { - "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", + "@colors/colors@1.5.0": { + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==" + }, + "@esbuild/aix-ppc64@0.28.1": { + "integrity": "sha512-Svl7tq8k/08+p6CXPpRjQ1fKX+1odH/BQbb48fV6fj3CWHhsoIOoY87w1oHXm0qEpkIK3ZfVgp0hed3XBXzXMQ==", + "os": ["aix"], + "cpu": ["ppc64"] + }, + "@esbuild/android-arm64@0.28.1": { + "integrity": "sha512-34EGEbCIAgosYz6goLcopX6Mo7NyGv9tfwEM2/7Ce2VcVRk568iSvniGWcUXIy7wEDR1wzolcxcriFVrWYcwBg==", + "os": ["android"], + "cpu": ["arm64"] + }, + "@esbuild/android-arm@0.28.1": { + "integrity": "sha512-0k2F129Xdio1TdJfzJ8sy1Q47vUD2NnwdhiAf7drUN1EBTfPf4hsFCtmMgu/6m8JSzsBrlmVjudMBQqOfG8usQ==", + "os": ["android"], + "cpu": ["arm"] + }, + "@esbuild/android-x64@0.28.1": { + "integrity": "sha512-dbwY7ltSMDWsRatcRpCnES4F+im88OCUgGZjy52shC7GqHRE/cYlxNbB4Z4UpJswpcc4Qxd2oE/ufM0p61IKng==", + "os": ["android"], + "cpu": ["x64"] + }, + "@esbuild/darwin-arm64@0.28.1": { + "integrity": "sha512-TZbWkQY7kvTAXbXUT7uVACR5cMHsDiSz9z7ZKAX/RTq/WJEk3QyRr0wZpNhBDX+/0CtdqUIJlOiodQcta6tY3Q==", + "os": ["darwin"], + "cpu": ["arm64"] + }, + "@esbuild/darwin-x64@0.28.1": { + "integrity": "sha512-zfdzgK9ACBNZLI/CyHTOx81SyNbM6YXn7rxSgX97VjyiPl9W1i4Ka4fgKECEoFCKGpvBj5qArWIGgQjOwkgskQ==", + "os": ["darwin"], + "cpu": ["x64"] + }, + "@esbuild/freebsd-arm64@0.28.1": { + "integrity": "sha512-wG2EA8ENdEI0qhkSZMjfqrdY+ziCYCPMmtZjjIwOmXFjmyzEHn+UUxk5of+SYsjtfs3VpnlC7QLzSI5hY/rOAw==", + "os": ["freebsd"], + "cpu": ["arm64"] + }, + "@esbuild/freebsd-x64@0.28.1": { + "integrity": "sha512-i7dZ9vQgnvSCzi/rYCXNgtF/U+eKZNJBzu3eTQbRgHnM7tNSizLOkRFAl3qzVc/Op/u5YkHHa4pf/3DOYHthLQ==", + "os": ["freebsd"], + "cpu": ["x64"] + }, + "@esbuild/linux-arm64@0.28.1": { + "integrity": "sha512-yHs+0uc8+nvEAfAfxrWQKK5peSNzBc4PegcMO0EJ2hT71uA7vB8Ihg2e77R2P7SG5uYjPbHlLLmve4LLLRCf0g==", + "os": ["linux"], + "cpu": ["arm64"] + }, + "@esbuild/linux-arm@0.28.1": { + "integrity": "sha512-qVXBOHQS+d5Y722GwJzJUtOLlX7km3CraOaGormF1pDtPd2C/l1SHRPgjLunLGe51Sh5YYWKMFDyV4SxgMQYTQ==", + "os": ["linux"], + "cpu": ["arm"] + }, + "@esbuild/linux-ia32@0.28.1": { + "integrity": "sha512-d1z4ZuP0ajrfz/FhGT4vv278rX8KnPPJx8i5+AtK7TYbx9Le9F1hyzurZpkEyjkGa9dUGhQow4C1NmeGvqxN2w==", + "os": ["linux"], + "cpu": ["ia32"] + }, + "@esbuild/linux-loong64@0.28.1": { + "integrity": "sha512-M5sRjUVZrkm1OAPR3dlOYzNmN+loZKGVi1VUQGrwuqLcbR6qeAz+famMhjASeH3YVKvZz+zT1jlh/keC3Rj/lg==", + "os": ["linux"], + "cpu": ["loong64"] + }, + "@esbuild/linux-mips64el@0.28.1": { + "integrity": "sha512-mRObBZeHh2OxcBFPWE/FjylkRgZdYuiTR3vaTozquCGOH14iP9oN4x4Ge81CoIDYQrXmIxpFumJBu5MtZpnQJQ==", + "os": ["linux"], + "cpu": ["mips64el"] + }, + "@esbuild/linux-ppc64@0.28.1": { + "integrity": "sha512-slScBsMAb3GFDcdrCgLwZtPYRoH2H/youv10QiZyRjmsP48fznoveWytSgCI/R0ZcUgpc0ZhIUEx6LHts8yrfQ==", + "os": ["linux"], + "cpu": ["ppc64"] + }, + "@esbuild/linux-riscv64@0.28.1": { + "integrity": "sha512-kw0owk1o0GFETUJyW0jc0G4Yzs0BHZn0JDZ8JRT088vjJYX777BAs1fDGxAC+q831qOs2DTC96mNsG2opdfyyQ==", + "os": ["linux"], + "cpu": ["riscv64"] + }, + "@esbuild/linux-s390x@0.28.1": { + "integrity": "sha512-/lAIjX8aYFRByhh6L5rYtPEDRqa9de/4V/juOXcta5frjvzXO4/sqEtyytse0g3zZFuWu5cDN0MkLz2qRDD2Ag==", + "os": ["linux"], + "cpu": ["s390x"] + }, + "@esbuild/linux-x64@0.28.1": { + "integrity": "sha512-u/anNYF2mmVOEDwLtnQ1wOr3EZ9sTNGLWrsYGYwHWzGA3Si84IOkHXlbWTD1NB+9/1lcnweYKO54uhxZydNzfA==", + "os": ["linux"], + "cpu": ["x64"] + }, + "@esbuild/netbsd-arm64@0.28.1": { + "integrity": "sha512-oks0DYbLwWMmaakTsCb+zL4E+aHRVLom9IJZOAthMQEPiQmydXHkziYEsGYRx0uNV/IjEKGAV941JzH02pflqw==", + "os": ["netbsd"], + "cpu": ["arm64"] + }, + "@esbuild/netbsd-x64@0.28.1": { + "integrity": "sha512-aeL6lAnN89Hz43Mlh1G8ARasbuoYvSITDEx0tHh5b7jJnHcssqgjy9Yx430GDpmCa6OyrKoS0aNRjKundRizGg==", + "os": ["netbsd"], + "cpu": ["x64"] + }, + "@esbuild/openbsd-arm64@0.28.1": { + "integrity": "sha512-MEFJe5C3R8pwXdZ5Y21oo6m7ePiS0d9pWucn99O/wvyJZChoIQKrQDxKrGeW8F5+T0okTHesAmDeiHDTIq0V/Q==", + "os": ["openbsd"], + "cpu": ["arm64"] + }, + "@esbuild/openbsd-x64@0.28.1": { + "integrity": "sha512-i/ZLIOafE0Z8cI/XANJAixoJL/uRAoS2xOA3rb0xN+KK0K177cMAsQYkzHtBrtMXAKuAc7HGgcWiZ/sRC1Nxgw==", + "os": ["openbsd"], + "cpu": ["x64"] + }, + "@esbuild/openharmony-arm64@0.28.1": { + "integrity": "sha512-ge+Z7EXFNt2BO1oAMsVpiQ8EwndV9i1xXerAeTIK7AtPs3bKFXQM7nlRxDSIUIMeueR1CNXxqztLzdNeReKBJg==", + "os": ["openharmony"], + "cpu": ["arm64"] + }, + "@esbuild/sunos-x64@0.28.1": { + "integrity": "sha512-BEjgtECkL3vY+SaSQ6nzVfiALUeFxpawyp8Jmf5PtYhf1Ug40N1h/hxlhts+f1FvSvarEigdxS3BlSMI2PJLcQ==", + "os": ["sunos"], + "cpu": ["x64"] + }, + "@esbuild/win32-arm64@0.28.1": { + "integrity": "sha512-lCv9eK/H6ZJWbE7bh2nw54CZ9M2nupBxJcTsdk/QQnWkdSjKGuxmmH8/GWrlT1eMmZfn4dGcCjRte397WqfQXA==", + "os": ["win32"], + "cpu": ["arm64"] + }, + "@esbuild/win32-ia32@0.28.1": { + "integrity": "sha512-zvb/mB2bSCoJOpoCBgYKKpX6YM6mJBlBUVUtVj41DlZJVEB6/0CKlRYxP5wWl1C1ILiCoAU5wZZ4q1P3qeS6Eg==", + "os": ["win32"], + "cpu": ["ia32"] + }, + "@esbuild/win32-x64@0.28.1": { + "integrity": "sha512-bm4Mowrv+GXMlpWX++EcXw/iLyd1o3+bJkC2DkWXYVvgZCqD/bSj9ctZeAMC3cIxgjRVR2Dufaiu4YPxr5gW1A==", + "os": ["win32"], + "cpu": ["x64"] + }, + "@jridgewell/gen-mapping@0.3.13": { + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", "dependencies": [ - "@jridgewell/set-array", "@jridgewell/sourcemap-codec", "@jridgewell/trace-mapping" ] }, + "@jridgewell/remapping@2.3.5": { + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "dependencies": [ + "@jridgewell/gen-mapping", + "@jridgewell/trace-mapping" + ] + }, "@jridgewell/resolve-uri@3.1.2": { "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==" }, - "@jridgewell/set-array@1.2.1": { - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==" + "@jridgewell/sourcemap-codec@1.6.0": { + "integrity": "sha512-T7jf+5zgsZHwNJ4lvQ7/aezbyk0nNX+zJVWpmHA7VYsEx7a7qr5Rg5IbtJFqkgze5Y2sruq1RUY8Q837Od7iFw==" }, - "@jridgewell/sourcemap-codec@1.5.0": { - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==" - }, - "@jridgewell/trace-mapping@0.3.25": { - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "@jridgewell/trace-mapping@0.3.31": { + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", "dependencies": [ "@jridgewell/resolve-uri", "@jridgewell/sourcemap-codec" ] }, - "@kwsites/file-exists@1.1.1": { - "integrity": "sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==", - "dependencies": [ - "debug" - ] - }, - "@kwsites/promise-deferred@1.1.1": { - "integrity": "sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==" - }, - "@next/env@14.2.24": { - "integrity": "sha512-LAm0Is2KHTNT6IT16lxT+suD0u+VVfYNQqM+EJTKuFRRuY2z+zj01kueWXPCxbMBDt0B5vONYzabHGUNbZYAhA==" - }, - "@opentelemetry/api@1.9.0": { - "integrity": "sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==" - }, - "@sveltejs/acorn-typescript@1.0.5_acorn@8.14.1": { - "integrity": "sha512-IwQk4yfwLdibDlrXVE04jTZYlLnwsTT2PIOQQGNLWfjavGifnk1JD1LcZjZaBTRcxZu2FfPfNLOE04DSu9lqtQ==", - "dependencies": [ - "acorn" - ] - }, - "@types/diff-match-patch@1.0.36": { - "integrity": "sha512-xFdR6tkm0MWvBfO8xXCSsinYxHcqkQUlcHeSpMC2ukzOb6lwQAfDmW+Qt0AvlGd8HpsS28qKsB+oPeJn9I39jg==" - }, - "@types/estree@1.0.6": { - "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==" + "@next/env@14.2.35": { + "integrity": "sha512-DuhvCtj4t9Gwrx80dmz2F4t/zKQ4ktN8WrMwOuVzkJfBilwAwGr6v16M5eI8yCuZ63H9TTuEU09Iu2HqkzFPVQ==" }, "@types/node-fetch@2.6.12": { "integrity": "sha512-8nneRWKCg3rMtF69nLQJnOYUcbafYeFSjqkw3jCRLsqkWFlHaoQrr5mXmofFGOx3DKn7UfmBMyov8ySvLRVldA==", "dependencies": [ - "@types/node@22.12.0", + "@types/node", "form-data" ] }, "@types/node@18.19.80": { "integrity": "sha512-kEWeMwMeIvxYkeg1gTc01awpwLbfMRZXdIhwRcakd/KlK53jmRC26LqcbIt7fnAQTu5GzlnWmzA3H6+l1u6xxQ==", "dependencies": [ - "undici-types@5.26.5" - ] - }, - "@types/node@22.12.0": { - "integrity": "sha512-Fll2FZ1riMjNmlmJOdAyY5pUbkftXslB5DgEzlIuNaiWhXd00FhWxVC/r4yV/4wBb9JfImTu+jiSvXTkJ7F/gA==", - "dependencies": [ - "undici-types@6.20.0" + "undici-types" ] }, "@vercel/functions@1.6.0": { "integrity": "sha512-R6FKQrYT5MZs5IE1SqeCJWxMuBdHawFcCZboKKw8p7s+6/mcd55Gx6tWmyKnQTyrSEA04NH73Tc9CbqpEle8RA==" }, - "@vue/compiler-core@3.5.13": { - "integrity": "sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==", - "dependencies": [ - "@babel/parser", - "@vue/shared", - "entities", - "estree-walker", - "source-map-js" - ] - }, - "@vue/compiler-dom@3.5.13": { - "integrity": "sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==", - "dependencies": [ - "@vue/compiler-core", - "@vue/shared" - ] - }, - "@vue/compiler-sfc@3.5.13": { - "integrity": "sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==", - "dependencies": [ - "@babel/parser", - "@vue/compiler-core", - "@vue/compiler-dom", - "@vue/compiler-ssr", - "@vue/shared", - "estree-walker", - "magic-string", - "postcss", - "source-map-js" - ] - }, - "@vue/compiler-ssr@3.5.13": { - "integrity": "sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==", - "dependencies": [ - "@vue/compiler-dom", - "@vue/shared" - ] - }, - "@vue/reactivity@3.5.13": { - "integrity": "sha512-NaCwtw8o48B9I6L1zl2p41OHo/2Z4wqYGGIK1Khu5T7yxrn+ATOixn/Udn2m+6kZKB/J7cuT9DbWWhRxqixACg==", - "dependencies": [ - "@vue/shared" - ] - }, - "@vue/runtime-core@3.5.13": { - "integrity": "sha512-Fj4YRQ3Az0WTZw1sFe+QDb0aXCerigEpw418pw1HBUKFtnQHWzwojaukAs2X/c9DQz4MQ4bsXTGlcpGxU/RCIw==", - "dependencies": [ - "@vue/reactivity", - "@vue/shared" - ] - }, - "@vue/runtime-dom@3.5.13": { - "integrity": "sha512-dLaj94s93NYLqjLiyFzVs9X6dWhTdAlEAciC3Moq7gzAc13VJUdCnjjRurNM6uTLFATRHexHCTu/Xp3eW6yoog==", + "abort-controller@3.0.0": { + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", "dependencies": [ - "@vue/reactivity", - "@vue/runtime-core", - "@vue/shared", - "csstype" + "event-target-shim" ] }, - "@vue/server-renderer@3.5.13_vue@3.5.13": { - "integrity": "sha512-wAi4IRJV/2SAW3htkTlB+dHeRmpTiVIK1OGLWV1yeStVSebSQQOwGwIq0D3ZIoBj2C2qpgz5+vX9iEBkTdk5YA==", + "accepts@2.0.0": { + "integrity": "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==", "dependencies": [ - "@vue/compiler-ssr", - "@vue/shared", - "vue" + "mime-types@3.0.2", + "negotiator" ] }, - "@vue/shared@3.5.13": { - "integrity": "sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==" - }, - "abort-controller@3.0.0": { - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "acorn-import-attributes@1.9.5_acorn@8.18.0": { + "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==", "dependencies": [ - "event-target-shim" + "acorn" ] }, - "acorn@8.14.1": { - "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==" + "acorn@8.18.0": { + "integrity": "sha512-lGq+9yr1/GuAWaVYIHRjvvySG5/4VfKIvC8EWxStPdcDh/Ka7FG3twP6v4d5BkravUilhIAsG4Qj83t02LWUPQ==", + "bin": true }, "agentkeepalive@4.6.0": { "integrity": "sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==", @@ -419,27 +334,8 @@ "humanize-ms" ] }, - "ai@3.4.33_zod@3.24.2": { - "integrity": "sha512-plBlrVZKwPoRTmM8+D1sJac9Bq8eaa2jiZlHLZIWekKWI1yMWYZvCCEezY9ASPwRhULYDJB2VhKOBUUeg3S5JQ==", - "dependencies": [ - "@ai-sdk/provider@0.0.26", - "@ai-sdk/provider-utils", - "@ai-sdk/react", - "@ai-sdk/solid", - "@ai-sdk/svelte", - "@ai-sdk/ui-utils", - "@ai-sdk/vue", - "@opentelemetry/api", - "eventsource-parser", - "json-schema", - "jsondiffpatch", - "secure-json-parse", - "zod", - "zod-to-json-schema" - ] - }, - "ajv@8.17.1": { - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "ajv@8.20.0": { + "integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==", "dependencies": [ "fast-deep-equal", "fast-uri", @@ -450,17 +346,12 @@ "ansi-regex@5.0.1": { "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" }, - "ansi-styles@4.3.0": { - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": [ - "color-convert" - ] - }, "argparse@2.0.1": { "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, - "aria-query@5.3.2": { - "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==" + "astring@1.9.0": { + "integrity": "sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==", + "bin": true }, "asynckit@0.4.0": { "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" @@ -477,49 +368,82 @@ "mustache", "openai", "zod", - "zod-to-json-schema" + "zod-to-json-schema@3.25.2_zod@3.24.2" ] }, - "axobject-query@4.1.0": { - "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==" - }, - "balanced-match@1.0.2": { - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + "balanced-match@4.0.4": { + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==" }, "binary-search@1.3.6": { "integrity": "sha512-nbE1WxOTTrUWIfsfZ4aHGYu5DOuNkbxGokjV6Z2kxfJK3uaAb8zNK1muzOeipoLHZjInT4Br88BHpzevc681xA==" }, - "brace-expansion@2.0.1": { - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "body-parser@2.3.0": { + "integrity": "sha512-2cGmJupaNgg+QUwVLAucDuWuoMZ6EX9iHDRswZ5lsNYEmwPaRknMPCLZz07yTzVq/83p4o/wzbDZbBrTvGGTIw==", + "dependencies": [ + "bytes", + "content-type@2.1.0", + "debug", + "http-errors", + "iconv-lite", + "on-finished", + "qs", + "raw-body", + "type-is" + ] + }, + "brace-expansion@5.0.9": { + "integrity": "sha512-ScQ4IuvIEF1TMlP7Zt+vjJ//9zlPb2SDcxWxM3bk8s6t6GGdJ7KO1dCcTidOPJKePW30LE/2cT7wCyPho9/Wxg==", "dependencies": [ "balanced-match" ] }, - "braintrust@0.0.187_zod@3.24.2": { - "integrity": "sha512-sDq/IHFqsbA6iJoMnf747uXT7SRCS0x925+h3+DSQIPdtxK0xp41/k/jTaVjpKaeCQjdp3jyQ8lpGiYqVtE6rQ==", + "braintrust@3.32.0_zod@3.25.76": { + "integrity": "sha512-dAY6Q3XYMyqDW5A9+8RNUKBqDhBbDVB55xrKpMaCXvnTz1psXYSlkzFta6sox+WHs6PHZR539+lufOexoUfRNg==", "dependencies": [ - "@ai-sdk/provider@1.0.10", - "@braintrust/core", "@next/env", "@vercel/functions", - "ai", + "acorn", + "acorn-import-attributes", + "ajv", "argparse", - "chalk@4.1.2", + "astring", + "cjs-module-lexer", "cli-progress", + "cli-table3", + "cors", "dotenv", "esbuild", + "esquery", "eventsource-parser", - "graceful-fs", + "express", + "http-errors", + "meriyah", "minimatch", + "module-details-from-path", "mustache", "pluralize", - "simple-git", - "slugify", + "semifies", "source-map", - "uuid", + "termi-link", + "unplugin", + "uuid@11.1.1", "zod", - "zod-to-json-schema" - ] + "zod-to-json-schema@3.25.2_zod@3.25.76" + ], + "optionalDependencies": [ + "@braintrust/bt-darwin-arm64", + "@braintrust/bt-darwin-x64", + "@braintrust/bt-linux-arm64", + "@braintrust/bt-linux-x64", + "@braintrust/bt-linux-x64-musl", + "@braintrust/bt-win32-arm64", + "@braintrust/bt-win32-x64" + ], + "scripts": true, + "bin": true + }, + "bytes@3.1.2": { + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" }, "call-bind-apply-helpers@1.0.2": { "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", @@ -528,37 +452,34 @@ "function-bind" ] }, - "chalk@4.1.2": { - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "call-bound@1.0.4": { + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", "dependencies": [ - "ansi-styles", - "supports-color" + "call-bind-apply-helpers", + "get-intrinsic" ] }, - "chalk@5.4.1": { - "integrity": "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==" - }, "cheminfo-types@1.8.1": { "integrity": "sha512-FRcpVkox+cRovffgqNdDFQ1eUav+i/Vq/CUd1hcfEl2bevntFlzznL+jE8g4twl6ElB7gZjCko6pYpXyMn+6dA==" }, + "cjs-module-lexer@2.2.1": { + "integrity": "sha512-Ca8swihM+/4yKecYHY52kgJd300hi2lADU/a1RxNTRe+RJ9jvqQlESpbz9DnG9mowez8qwXHB8qYdIUw9e+F5Q==" + }, "cli-progress@3.12.0": { "integrity": "sha512-tRkV3HJ1ASwm19THiiLIXLO7Im7wlTuKnvkYaTkyoAPefqjNg7W7DHKUlGRxy9vxDvbyCYQkQozvptuMkGCg8A==", "dependencies": [ "string-width" ] }, - "clsx@2.1.1": { - "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==" - }, - "color-convert@2.0.1": { - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "cli-table3@0.6.5": { + "integrity": "sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==", "dependencies": [ - "color-name" + "string-width" + ], + "optionalDependencies": [ + "@colors/colors" ] }, - "color-name@1.1.4": { - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, "combined-stream@1.0.8": { "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "dependencies": [ @@ -588,11 +509,30 @@ "validate.io-function" ] }, - "csstype@3.1.3": { - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + "content-disposition@1.1.0": { + "integrity": "sha512-5jRCH9Z/+DRP7rkvY83B+yGIGX96OYdJmzngqnw2SBSxqCFPd0w2km3s5iawpGX8krnwSGmF0FW5Nhr0Hfai3g==" + }, + "content-type@1.0.5": { + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==" + }, + "content-type@2.1.0": { + "integrity": "sha512-mj7UPXE0jaqaOsukNZRUEfEi2AcL7C/vwmwcHV0O97eO1E1pxBZuyjlZrx5seTaNBg1U6+o35wpa35Qfcc+7ag==" }, - "debug@4.4.0": { - "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "cookie-signature@1.2.2": { + "integrity": "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==" + }, + "cookie@0.7.2": { + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==" + }, + "cors@2.8.6": { + "integrity": "sha512-tJtZBBHA6vjIAaF6EnIaq6laBBP9aq/Y3ouVJjEfoHbRBcHBAHYcMh/w8LDrk2PvIMMq8gmopa5D4V8RmbrxGw==", + "dependencies": [ + "object-assign", + "vary" + ] + }, + "debug@4.4.3": { + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", "dependencies": [ "ms" ] @@ -600,14 +540,11 @@ "delayed-stream@1.0.0": { "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" }, - "dequal@2.0.3": { - "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==" - }, - "diff-match-patch@1.0.5": { - "integrity": "sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw==" + "depd@2.0.0": { + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" }, - "dotenv@16.4.7": { - "integrity": "sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==" + "dotenv@16.6.1": { + "integrity": "sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==" }, "dunder-proto@1.0.1": { "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", @@ -617,11 +554,14 @@ "gopd" ] }, + "ee-first@1.1.1": { + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, "emoji-regex@8.0.0": { "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, - "entities@4.5.0": { - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==" + "encodeurl@2.0.0": { + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==" }, "es-define-property@1.0.1": { "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==" @@ -644,9 +584,9 @@ "hasown" ] }, - "esbuild@0.25.0": { - "integrity": "sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw==", - "dependencies": [ + "esbuild@0.28.1": { + "integrity": "sha512-HrJrvZv5ayxBzPfwphOoNzkzOIIlifzk0KJrGK2c8R4+LKpMtpYLQeUdjnwjWv/LZlkH2laZk+4w78pi99D4Vw==", + "optionalDependencies": [ "@esbuild/aix-ppc64", "@esbuild/android-arm", "@esbuild/android-arm64", @@ -668,23 +608,29 @@ "@esbuild/netbsd-x64", "@esbuild/openbsd-arm64", "@esbuild/openbsd-x64", + "@esbuild/openharmony-arm64", "@esbuild/sunos-x64", "@esbuild/win32-arm64", "@esbuild/win32-ia32", "@esbuild/win32-x64" - ] + ], + "scripts": true, + "bin": true }, - "esm-env@1.2.2": { - "integrity": "sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==" + "escape-html@1.0.3": { + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" }, - "esrap@1.4.5": { - "integrity": "sha512-CjNMjkBWWZeHn+VX+gS8YvFwJ5+NDhg8aWZBSFJPR8qQduDNjbJodA2WcwCm7uQa5Rjqj+nZvVmceg1RbHFB9g==", + "esquery@1.7.0": { + "integrity": "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==", "dependencies": [ - "@jridgewell/sourcemap-codec" + "estraverse" ] }, - "estree-walker@2.0.2": { - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + "estraverse@5.3.0": { + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==" + }, + "etag@1.8.1": { + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" }, "event-target-shim@5.0.1": { "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==" @@ -692,6 +638,39 @@ "eventsource-parser@1.1.2": { "integrity": "sha512-v0eOBUbiaFojBu2s2NPBfYUoRR9GjcDNvCXVaqEf5vVfpIAh9f8RCo4vXTP8c63QRKCFwoLpMpTdPwwhEKVgzA==" }, + "express@5.2.1": { + "integrity": "sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==", + "dependencies": [ + "accepts", + "body-parser", + "content-disposition", + "content-type@1.0.5", + "cookie", + "cookie-signature", + "debug", + "depd", + "encodeurl", + "escape-html", + "etag", + "finalhandler", + "fresh", + "http-errors", + "merge-descriptors", + "mime-types@3.0.2", + "on-finished", + "once", + "parseurl", + "proxy-addr", + "qs", + "range-parser", + "router", + "send", + "serve-static", + "statuses", + "type-is", + "vary" + ] + }, "fast-deep-equal@3.1.3": { "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, @@ -701,6 +680,17 @@ "fft.js@4.0.4": { "integrity": "sha512-f9c00hphOgeQTlDyavwTtu6RiK8AIFjD6+jvXkNkpeQ7rirK3uFWVpalkoS4LAwbdX7mfZ8aoBfFVQX1Re/8aw==" }, + "finalhandler@2.1.1": { + "integrity": "sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA==", + "dependencies": [ + "debug", + "encodeurl", + "escape-html", + "on-finished", + "parseurl", + "statuses" + ] + }, "form-data-encoder@1.7.2": { "integrity": "sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==" }, @@ -710,7 +700,7 @@ "asynckit", "combined-stream", "es-set-tostringtag", - "mime-types" + "mime-types@2.1.35" ] }, "formdata-node@4.4.1": { @@ -720,6 +710,12 @@ "web-streams-polyfill@4.0.0-beta.3" ] }, + "forwarded@0.2.0": { + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" + }, + "fresh@2.0.0": { + "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==" + }, "function-bind@1.1.2": { "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" }, @@ -748,12 +744,6 @@ "gopd@1.2.0": { "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==" }, - "graceful-fs@4.2.11": { - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" - }, - "has-flag@4.0.0": { - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, "has-symbols@1.1.0": { "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==" }, @@ -769,26 +759,45 @@ "function-bind" ] }, + "http-errors@2.0.1": { + "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", + "dependencies": [ + "depd", + "inherits", + "setprototypeof", + "statuses", + "toidentifier" + ] + }, "humanize-ms@1.2.1": { "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", "dependencies": [ "ms" ] }, + "iconv-lite@0.7.3": { + "integrity": "sha512-IKXpvIzjnC9XTAUbVBcMfGS0EPaIXtW6v+zr+RRp+hqULEpo0owZax6wyRwPOJbWbzjYspQwusTsfVr0ifh4uQ==", + "dependencies": [ + "safer-buffer" + ] + }, + "inherits@2.0.4": { + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, "install@0.13.0": { "integrity": "sha512-zDml/jzr2PKU9I8J/xyZBQn8rPCAY//UOYNmR01XwNwyfhEWObo2SWfSl1+0tm1u6PhxLwDnfsT/6jB7OUxqFA==" }, + "ipaddr.js@1.9.1": { + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" + }, "is-any-array@2.0.1": { "integrity": "sha512-UtilS7hLRu++wb/WBAw9bNuP1Eg04Ivn1vERJck8zJthEvXCBEBpGR/33u/xLKWEQf95803oalHrVDptcAvFdQ==" }, "is-fullwidth-code-point@3.0.0": { "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" }, - "is-reference@3.0.3": { - "integrity": "sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==", - "dependencies": [ - "@types/estree" - ] + "is-promise@4.0.0": { + "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==" }, "js-levenshtein@1.1.6": { "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==" @@ -797,22 +806,12 @@ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dependencies": [ "argparse" - ] + ], + "bin": true }, "json-schema-traverse@1.0.0": { "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" }, - "json-schema@0.4.0": { - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" - }, - "jsondiffpatch@0.6.0": { - "integrity": "sha512-3QItJOXp2AP1uv7waBkao5nCvhEv+QmJAd38Ybq7wNI74Q+BBmnLn4EDKz6yI9xGAIQoUF87qHt+kc1IVxB4zQ==", - "dependencies": [ - "@types/diff-match-patch", - "chalk@5.4.1", - "diff-match-patch" - ] - }, "linear-sum-assignment@1.0.7": { "integrity": "sha512-jfLoSGwZNyjfY8eK4ayhjfcIu3BfWvP6sWieYzYI3AWldwXVoWEz1gtrQL10v/8YltYLBunqNjeVFXPMUs+MJg==", "dependencies": [ @@ -822,29 +821,38 @@ "ml-spectra-processing" ] }, - "locate-character@3.0.0": { - "integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==" - }, - "magic-string@0.30.17": { - "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", - "dependencies": [ - "@jridgewell/sourcemap-codec" - ] - }, "math-intrinsics@1.1.0": { "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==" }, + "media-typer@1.1.1": { + "integrity": "sha512-yz3xRaG20c6/BOzvYoDaGtPmGscs7YivItZEEqe6GbwNfHuxu9YNmvnEkMzKldAGY4/80pRcQRZSEnhquk9XuQ==" + }, + "merge-descriptors@2.0.0": { + "integrity": "sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==" + }, + "meriyah@6.1.4": { + "integrity": "sha512-Sz8FzjzI0kN13GK/6MVEsVzMZEPvOhnmmI1lU5+/1cGOiK3QUahntrNNtdVeihrO7t9JpoH75iMNXg6R6uWflQ==" + }, "mime-db@1.52.0": { "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" }, + "mime-db@1.54.0": { + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==" + }, "mime-types@2.1.35": { "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "dependencies": [ - "mime-db" + "mime-db@1.52.0" ] }, - "minimatch@9.0.5": { - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "mime-types@3.0.2": { + "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", + "dependencies": [ + "mime-db@1.54.0" + ] + }, + "minimatch@10.2.6": { + "integrity": "sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==", "dependencies": [ "brace-expansion" ] @@ -890,17 +898,25 @@ "ml-xsadd@3.0.1": { "integrity": "sha512-Fz2q6dwgzGM8wYKGArTUTZDGa4lQFA2Vi6orjGeTVRy22ZnQFKlJuwS9n8NRviqz1KHAHAzdKJwbnYhdo38uYg==" }, + "module-details-from-path@1.0.4": { + "integrity": "sha512-EGWKgxALGMgzvxYF1UyGTy0HXX/2vHLkw6+NvDKW2jypWbHpjQuj4UMcqQWXHERJhVGKikolT06G3bcKe4fi7w==" + }, "ms@2.1.3": { "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" }, "mustache@4.2.0": { - "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==" + "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==", + "bin": true }, - "nanoid@3.3.9": { - "integrity": "sha512-SppoicMGpZvbF1l3z4x7No3OlIjP7QJvC9XR7AhZr1kL133KHnKPztkKDc+Ir4aJ/1VhTySrtKhrsycmrMQfvg==" + "negotiator@1.1.0": { + "integrity": "sha512-NMPBRMJgiQHjbd8phG3Vebdx4kZ1H121rbl5IkMqeOsahptB9BKo/d7oJ3zTXqTgagn2bWlNSXkh0QUGM31RYg==", + "dependencies": [ + "content-type@2.1.0" + ] }, "node-domexception@1.0.0": { - "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==" + "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", + "deprecated": true }, "node-fetch@2.7.0": { "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", @@ -908,10 +924,28 @@ "whatwg-url" ] }, + "object-assign@4.1.1": { + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" + }, + "object-inspect@1.13.4": { + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==" + }, + "on-finished@2.4.1": { + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dependencies": [ + "ee-first" + ] + }, + "once@1.4.0": { + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": [ + "wrappy" + ] + }, "openai@4.47.1": { "integrity": "sha512-WWSxhC/69ZhYWxH/OBsLEirIjUcfpQ5+ihkXKp06hmeYXgBBIUCa9IptMzYx6NdkiOCsSGYCnTIsxaic3AjRCQ==", "dependencies": [ - "@types/node@18.19.80", + "@types/node", "@types/node-fetch", "abort-controller", "agentkeepalive", @@ -919,7 +953,8 @@ "formdata-node", "node-fetch", "web-streams-polyfill@3.3.3" - ] + ], + "bin": true }, "openapi3-ts@4.4.0": { "integrity": "sha512-9asTNB9IkKEzWMcHmVZE7Ts3kC9G7AFHfs8i7caD8HbI76gEjdkId4z/AkP83xdZsH7PLAnnbl47qZkXuxpArw==", @@ -927,129 +962,187 @@ "yaml" ] }, - "picocolors@1.1.1": { - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" + "parseurl@1.3.3": { + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + }, + "path-to-regexp@8.4.2": { + "integrity": "sha512-qRcuIdP69NPm4qbACK+aDogI5CBDMi1jKe0ry5rSQJz8JVLsC7jV8XpiJjGRLLol3N+R5ihGYcrPLTno6pAdBA==" + }, + "picomatch@4.0.7": { + "integrity": "sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==" }, "pluralize@8.0.0": { "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==" }, - "postcss@8.5.3": { - "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==", + "proxy-addr@2.0.7": { + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dependencies": [ + "forwarded", + "ipaddr.js" + ] + }, + "qs@6.16.0": { + "integrity": "sha512-h6fhOIaRrID2CbEY2fqs+7t+UXZo+MLAnU5gRIq85uFtdiUPCdsApMlHhXogKVM4HM2DVbIjGNTTYH2OcmP1vA==", "dependencies": [ - "nanoid", - "picocolors", - "source-map-js" + "es-define-property", + "side-channel" ] }, - "react@19.0.0": { - "integrity": "sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==" + "range-parser@1.3.0": { + "integrity": "sha512-hek2mFQpPuI4E1BBKrSto+BU3e3x4xuarsbiwr3+lf7p44juvFMV0XFWQAP3xUyqXA4RrXLIoaSUGbSt056ZMw==" + }, + "raw-body@3.0.2": { + "integrity": "sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==", + "dependencies": [ + "bytes", + "http-errors", + "iconv-lite", + "unpipe" + ] }, "require-from-string@2.0.2": { "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==" }, - "secure-json-parse@2.7.0": { - "integrity": "sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==" - }, - "simple-git@3.27.0": { - "integrity": "sha512-ivHoFS9Yi9GY49ogc6/YAi3Fl9ROnF4VyubNylgCkA+RVqLaKWnDSzXOVzya8csELIaWaYNutsEuAhZrtOjozA==", + "router@2.2.0": { + "integrity": "sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==", "dependencies": [ - "@kwsites/file-exists", - "@kwsites/promise-deferred", - "debug" + "debug", + "depd", + "is-promise", + "parseurl", + "path-to-regexp" ] }, - "slugify@1.6.6": { - "integrity": "sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==" - }, - "source-map-js@1.2.1": { - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==" + "safer-buffer@2.1.2": { + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, - "source-map@0.7.4": { - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==" + "semifies@1.0.0": { + "integrity": "sha512-xXR3KGeoxTNWPD4aBvL5NUpMTT7WMANr3EWnaS190QVkY52lqqcVRD7Q05UVbBhiWDGWMlJEUam9m7uFFGVScw==" }, - "sswr@2.2.0_svelte@5.22.6__acorn@8.14.1": { - "integrity": "sha512-clTszLPZkmycALTHD1mXGU+mOtA/MIoLgS1KGTTzFNVm9rytQVykgRaP+z1zl572cz0bTqj4rFVoC2N+IGK4Sg==", + "send@1.2.1": { + "integrity": "sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==", "dependencies": [ - "svelte", - "swrev" + "debug", + "encodeurl", + "escape-html", + "etag", + "fresh", + "http-errors", + "mime-types@3.0.2", + "ms", + "on-finished", + "range-parser", + "statuses" ] }, - "string-width@4.2.3": { - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "serve-static@2.2.1": { + "integrity": "sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw==", "dependencies": [ - "emoji-regex", - "is-fullwidth-code-point", - "strip-ansi" + "encodeurl", + "escape-html", + "parseurl", + "send" ] }, - "strip-ansi@6.0.1": { - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "setprototypeof@1.2.0": { + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "side-channel-list@1.0.1": { + "integrity": "sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==", "dependencies": [ - "ansi-regex" + "es-errors", + "object-inspect" ] }, - "supports-color@7.2.0": { - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "side-channel-map@1.0.1": { + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", "dependencies": [ - "has-flag" + "call-bound", + "es-errors", + "get-intrinsic", + "object-inspect" ] }, - "svelte@5.22.6_acorn@8.14.1": { - "integrity": "sha512-dxHyh3USJyayafSt5I5QD7KuoCM5ZGdIOtLQiKHEro7tymdh0jMcNkiSBVHW+LOA2jEqZEHhyfwN6/pCjx0Fug==", + "side-channel-weakmap@1.0.2": { + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", "dependencies": [ - "@ampproject/remapping", - "@jridgewell/sourcemap-codec", - "@sveltejs/acorn-typescript", - "@types/estree", - "acorn", - "aria-query", - "axobject-query", - "clsx", - "esm-env", - "esrap", - "is-reference", - "locate-character", - "magic-string", - "zimmerframe" + "call-bound", + "es-errors", + "get-intrinsic", + "object-inspect", + "side-channel-map" ] }, - "swr@2.3.3_react@19.0.0": { - "integrity": "sha512-dshNvs3ExOqtZ6kJBaAsabhPdHyeY4P2cKwRCniDVifBMoG/SVI7tfLWqPXriVspf2Rg4tPzXJTnwaihIeFw2A==", + "side-channel@1.1.1": { + "integrity": "sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ==", "dependencies": [ - "dequal", - "react", - "use-sync-external-store" + "es-errors", + "object-inspect", + "side-channel-list", + "side-channel-map", + "side-channel-weakmap" ] }, - "swrev@4.0.0": { - "integrity": "sha512-LqVcOHSB4cPGgitD1riJ1Hh4vdmITOp+BkmfmXRh4hSF/t7EnS4iD+SOTmq7w5pPm/SiPeto4ADbKS6dHUDWFA==" + "source-map@0.7.6": { + "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==" + }, + "statuses@2.0.2": { + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==" + }, + "string-width@4.2.3": { + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": [ + "emoji-regex", + "is-fullwidth-code-point", + "strip-ansi" + ] }, - "swrv@1.1.0_vue@3.5.13": { - "integrity": "sha512-pjllRDr2s0iTwiE5Isvip51dZGR7GjLH1gCSVyE8bQnbAx6xackXsFdojau+1O5u98yHF5V73HQGOFxKUXO9gQ==", + "strip-ansi@6.0.1": { + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dependencies": [ - "vue" + "ansi-regex" ] }, - "throttleit@2.1.0": { - "integrity": "sha512-nt6AMGKW1p/70DF/hGBdJB57B8Tspmbp5gfJ8ilhLnt7kkr2ye7hzD6NVG8GGErk2HWF34igrL2CXmNIkzKqKw==" + "termi-link@1.1.0": { + "integrity": "sha512-2qSN6TnomHgVLtk+htSWbaYs4Rd2MH/RU7VpHTy6MBstyNyWbM4yKd1DCYpE3fDg8dmGWojXCngNi/MHCzGuAA==" + }, + "toidentifier@1.0.1": { + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" }, "tr46@0.0.3": { "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" }, + "type-is@2.1.0": { + "integrity": "sha512-faYHw0anBbc/kWF3zFTEnxSFOAGUX9GFbOBthvDdLsIlEoWOFOtS0zgCiQYwIskL9iGXZL3kAXD8OoZ4GmMATA==", + "dependencies": [ + "content-type@2.1.0", + "media-typer", + "mime-types@3.0.2" + ] + }, "undici-types@5.26.5": { "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" }, - "undici-types@6.20.0": { - "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==" + "unpipe@1.0.0": { + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" }, - "use-sync-external-store@1.4.0_react@19.0.0": { - "integrity": "sha512-9WXSPC5fMv61vaupRkCKCxsPxBocVnwakBEkMIHHpkTTg6icbJtg6jzgtLDm4bl3cSHAca52rYWih0k4K3PfHw==", + "unplugin@2.3.11": { + "integrity": "sha512-5uKD0nqiYVzlmCRs01Fhs2BdkEgBS3SAVP6ndrBsuK42iC2+JHyxM05Rm9G8+5mkmRtzMZGY8Ct5+mliZxU/Ww==", "dependencies": [ - "react" + "@jridgewell/remapping", + "acorn", + "picomatch", + "webpack-virtual-modules" ] }, + "uuid@11.1.1": { + "integrity": "sha512-vIYxrBCC/N/K+Js3qSN88go7kIfNPssr/hHCesKCQNAjmgvYS2oqr69kIufEG+O4+PfezOH4EbIeHCfFov8ZgQ==", + "bin": true + }, "uuid@9.0.1": { - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==" + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "deprecated": true, + "bin": true }, "validate.io-array@1.0.6": { "integrity": "sha512-DeOy7CnPEziggrOO5CZhVKJw6S3Yi7e9e65R1Nl/RTN1vTQKnzjfvks0/8kQ40FP/dsjRAOd4hxmJ7uLa6vxkg==" @@ -1057,15 +1150,8 @@ "validate.io-function@1.0.2": { "integrity": "sha512-LlFybRJEriSuBnUhQyG5bwglhh50EpTL2ul23MPIuR1odjO7XaMLFV8vHGwp7AZciFxtYOeiSCT5st+XSPONiQ==" }, - "vue@3.5.13": { - "integrity": "sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==", - "dependencies": [ - "@vue/compiler-dom", - "@vue/compiler-sfc", - "@vue/runtime-dom", - "@vue/server-renderer", - "@vue/shared" - ] + "vary@1.1.2": { + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==" }, "web-streams-polyfill@3.3.3": { "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==" @@ -1076,6 +1162,9 @@ "webidl-conversions@3.0.1": { "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" }, + "webpack-virtual-modules@0.6.2": { + "integrity": "sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==" + }, "whatwg-url@5.0.0": { "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", "dependencies": [ @@ -1083,20 +1172,24 @@ "webidl-conversions" ] }, + "wrappy@1.0.2": { + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, "yaml@2.7.0": { - "integrity": "sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==" + "integrity": "sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==", + "bin": true }, - "zimmerframe@1.1.2": { - "integrity": "sha512-rAbqEGa8ovJy4pyBxZM70hg4pE6gDgaQ0Sl9M3enG3I0d6H4XSAM3GeNGLKnsBpuijUow064sf7ww1nutC5/3w==" + "zod-to-json-schema@3.25.2_zod@3.24.2": { + "integrity": "sha512-O/PgfnpT1xKSDeQYSCfRI5Gy3hPf91mKVDuYLUHZJMiDFptvP41MSnWofm8dnCm0256ZNfZIM7DSzuSMAFnjHA==" }, - "zod-to-json-schema@3.24.3_zod@3.24.2": { - "integrity": "sha512-HIAfWdYIt1sssHfYZFCXp4rU1w2r8hVVXYIlmoa0r0gABLs5di3RCqPU5DDROogVz1pAdYBaz7HK5n9pSUNs3A==", + "zod-to-json-schema@3.25.2_zod@3.25.76": { + "integrity": "sha512-O/PgfnpT1xKSDeQYSCfRI5Gy3hPf91mKVDuYLUHZJMiDFptvP41MSnWofm8dnCm0256ZNfZIM7DSzuSMAFnjHA==", "dependencies": [ "zod" ] }, - "zod@3.24.2": { - "integrity": "sha512-lY7CDW43ECgW9u1TcT3IoXHflywfVqDYze4waEz812jR/bZ8FHDsl7pFQoSZTz5N+2NqRXs8GBwnAwo3ZNxqhQ==" + "zod@3.25.76": { + "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==" } }, "redirects": { @@ -1114,8 +1207,7 @@ "jsr:@std/fs@^1.0.14", "jsr:@std/path@^1.0.8", "npm:autoevals@^0.0.122", - "npm:braintrust@^0.0.187", - "npm:zod@^3.24.2" + "npm:zod@^3.25.34" ] } } diff --git a/integrations/val.town/vals/tutorial/code.ts b/integrations/val.town/vals/tutorial/code.ts index d4f8e830c..14d1f98fd 100644 --- a/integrations/val.town/vals/tutorial/code.ts +++ b/integrations/val.town/vals/tutorial/code.ts @@ -1,5 +1,5 @@ import { LevenshteinScorer } from "npm:autoevals"; -import { Eval } from "npm:braintrust"; +import { Eval } from "npm:braintrust@^3.30.0"; Eval("Say Hi Bot", { data: () => { diff --git a/js/package.json b/js/package.json index f67c7c68e..d4e150877 100644 --- a/js/package.json +++ b/js/package.json @@ -133,7 +133,6 @@ "test:otel-no-deps": "vitest run src/otel/otel-no-deps.test.ts --reporter=verbose", "test:ai-sdk-v1": "vitest run src/wrappers/ai-sdk-v1.test.ts", "test:ai-sdk-v2": "vitest run src/wrappers/ai-sdk-v2.test.ts src/wrappers/ai-sdk-v1.test.ts", - "test:ai-sdk-v3": "vitest run src/wrappers/ai-sdk-v3.test.ts", "test:mastra": "vitest run src/wrappers/mastra.test.ts", "test:vitest": "pnpm --filter @braintrust/vitest-wrapper-tests test", "bench": "tsx src/queue.bench.ts", diff --git a/js/scripts/pull-vendor.sh b/js/scripts/pull-vendor.sh index d5c7844a9..2fee7812f 100755 --- a/js/scripts/pull-vendor.sh +++ b/js/scripts/pull-vendor.sh @@ -31,7 +31,7 @@ show_usage() { echo " versions - Comma-separated list of major versions to track (e.g., v3,v4,v5)" echo "" echo "Examples:" - echo " $0 https://github.com/vercel/ai.git v3,v4,v5" + echo " $0 https://github.com/vercel/ai.git v4,v5,v6,v7" echo " $0 https://github.com/openai/openai-node.git v3,v4" echo " $0 https://github.com/anthropics/anthropic-sdk-typescript.git v0.20,v0.21" echo "" @@ -285,7 +285,7 @@ Run the pull script to update to the latest tags: cd sdk/js # Example for vercel/ai (uses ai@X.Y.Z tag format) -./scripts/pull-vendor.sh https://github.com/vercel/ai.git v3,v4,v5,v6 +./scripts/pull-vendor.sh https://github.com/vercel/ai.git v4,v5,v6,v7 # Example for OpenAI SDK ./scripts/pull-vendor.sh https://github.com/openai/openai-node.git v3,v4 diff --git a/js/src/auto-instrumentations/configs/ai-sdk.ts b/js/src/auto-instrumentations/configs/ai-sdk.ts index c33be8800..858a8526c 100644 --- a/js/src/auto-instrumentations/configs/ai-sdk.ts +++ b/js/src/auto-instrumentations/configs/ai-sdk.ts @@ -39,31 +39,26 @@ export const aiSDKConfigs: InstrumentationConfig[] = [ }, })), - // generateText - async function - { - channelName: aiSDKChannels.generateText.channelName, - module: { - name: "ai", - versionRange: ">=3.0.0 <7.0.0", - filePath: "dist/index.mjs", - }, - functionQuery: { - functionName: "generateText", - kind: "Async", - }, - }, - { - channelName: aiSDKChannels.generateText.channelName, - module: { - name: "ai", - versionRange: ">=3.0.0 <7.0.0", - filePath: "dist/index.js", - }, - functionQuery: { - functionName: "generateText", - kind: "Async", - }, - }, + // Async generation and embedding functions supported by AI SDK v4-v6. + ...[ + ["generateText", aiSDKChannels.generateText.channelName], + ["generateObject", aiSDKChannels.generateObject.channelName], + ["embed", aiSDKChannels.embed.channelName], + ["embedMany", aiSDKChannels.embedMany.channelName], + ].flatMap(([functionName, channelName]) => + ["dist/index.mjs", "dist/index.js"].map((filePath) => ({ + channelName, + module: { + name: "ai", + versionRange: ">=4.0.0 <7.0.0", + filePath, + }, + functionQuery: { + functionName, + kind: "Async" as const, + }, + })), + ), // generateImage - stable in v6+, experimental alias in v5 ...[ @@ -93,135 +88,24 @@ export const aiSDKConfigs: InstrumentationConfig[] = [ })), ), - // streamText - async function (v3 only, before the sync refactor in v4) - { - channelName: aiSDKChannels.streamText.channelName, - module: { - name: "ai", - versionRange: ">=3.0.0 <4.0.0", - filePath: "dist/index.mjs", - }, - functionQuery: { - functionName: "streamText", - kind: "Async", - }, - }, - - // streamText - sync function returning stream (v4+) - { - channelName: aiSDKChannels.streamTextSync.channelName, - module: { - name: "ai", - versionRange: ">=4.0.0 <7.0.0", - filePath: "dist/index.mjs", - }, - functionQuery: { - functionName: "streamText", - kind: "Sync", - }, - }, - { - channelName: aiSDKChannels.streamText.channelName, - module: { - name: "ai", - versionRange: ">=3.0.0 <4.0.0", - filePath: "dist/index.js", - }, - functionQuery: { - functionName: "streamText", - kind: "Async", - }, - }, - { - channelName: aiSDKChannels.streamTextSync.channelName, - module: { - name: "ai", - versionRange: ">=4.0.0 <7.0.0", - filePath: "dist/index.js", - }, - functionQuery: { - functionName: "streamText", - kind: "Sync", - }, - }, - - // generateObject - async function - { - channelName: aiSDKChannels.generateObject.channelName, - module: { - name: "ai", - versionRange: ">=3.0.0 <7.0.0", - filePath: "dist/index.mjs", - }, - functionQuery: { - functionName: "generateObject", - kind: "Async", - }, - }, - { - channelName: aiSDKChannels.generateObject.channelName, - module: { - name: "ai", - versionRange: ">=3.0.0 <7.0.0", - filePath: "dist/index.js", - }, - functionQuery: { - functionName: "generateObject", - kind: "Async", - }, - }, - - // embed - async function - { - channelName: aiSDKChannels.embed.channelName, - module: { - name: "ai", - versionRange: ">=3.0.0 <7.0.0", - filePath: "dist/index.mjs", - }, - functionQuery: { - functionName: "embed", - kind: "Async", - }, - }, - { - channelName: aiSDKChannels.embed.channelName, - module: { - name: "ai", - versionRange: ">=3.0.0 <7.0.0", - filePath: "dist/index.js", - }, - functionQuery: { - functionName: "embed", - kind: "Async", - }, - }, - - // embedMany - async function - { - channelName: aiSDKChannels.embedMany.channelName, - module: { - name: "ai", - versionRange: ">=3.0.0 <7.0.0", - filePath: "dist/index.mjs", - }, - functionQuery: { - functionName: "embedMany", - kind: "Async", - }, - }, - { - channelName: aiSDKChannels.embedMany.channelName, - module: { - name: "ai", - versionRange: ">=3.0.0 <7.0.0", - filePath: "dist/index.js", - }, - functionQuery: { - functionName: "embedMany", - kind: "Async", - }, - }, + // Streaming functions are synchronous starting in AI SDK v4. + ...[ + ["streamText", aiSDKChannels.streamTextSync.channelName], + ["streamObject", aiSDKChannels.streamObjectSync.channelName], + ].flatMap(([functionName, channelName]) => + ["dist/index.mjs", "dist/index.js"].map((filePath) => ({ + channelName, + module: { + name: "ai", + versionRange: ">=4.0.0 <7.0.0", + filePath, + }, + functionQuery: { + functionName, + kind: "Sync" as const, + }, + })), + ), // rerank - async function { @@ -277,58 +161,6 @@ export const aiSDKConfigs: InstrumentationConfig[] = [ }, }, - // streamObject - async function (v3 only, before the sync refactor in v4) - { - channelName: aiSDKChannels.streamObject.channelName, - module: { - name: "ai", - versionRange: ">=3.0.0 <4.0.0", - filePath: "dist/index.mjs", - }, - functionQuery: { - functionName: "streamObject", - kind: "Async", - }, - }, - - // streamObject - sync function returning stream (v4+) - { - channelName: aiSDKChannels.streamObjectSync.channelName, - module: { - name: "ai", - versionRange: ">=4.0.0 <7.0.0", - filePath: "dist/index.mjs", - }, - functionQuery: { - functionName: "streamObject", - kind: "Sync", - }, - }, - { - channelName: aiSDKChannels.streamObject.channelName, - module: { - name: "ai", - versionRange: ">=3.0.0 <4.0.0", - filePath: "dist/index.js", - }, - functionQuery: { - functionName: "streamObject", - kind: "Async", - }, - }, - { - channelName: aiSDKChannels.streamObjectSync.channelName, - module: { - name: "ai", - versionRange: ">=4.0.0 <7.0.0", - filePath: "dist/index.js", - }, - functionQuery: { - functionName: "streamObject", - kind: "Sync", - }, - }, - // Agent.generate - async method (v5 only) // The compiled AI SDK bundle emits this as an anonymous class method, so we // target the first async `generate` method in the file instead of a class name. diff --git a/js/src/instrumentation/providers/ai-sdk-channels.ts b/js/src/instrumentation/providers/ai-sdk-channels.ts index ea3f4a880..4f17cf8dd 100644 --- a/js/src/instrumentation/providers/ai-sdk-channels.ts +++ b/js/src/instrumentation/providers/ai-sdk-channels.ts @@ -47,15 +47,6 @@ export const aiSDKChannels = defineChannels( channelName: "generateImage", kind: "async", }), - streamText: channel< - [AISDKCallParams], - AISDKStreamResult, - AISDKChannelContext, - unknown - >({ - channelName: "streamText", - kind: "async", - }), streamTextSync: channel< [AISDKCallParams], AISDKResult, @@ -74,15 +65,6 @@ export const aiSDKChannels = defineChannels( channelName: "generateObject", kind: "async", }), - streamObject: channel< - [AISDKCallParams], - AISDKStreamResult, - AISDKChannelContext, - unknown - >({ - channelName: "streamObject", - kind: "async", - }), streamObjectSync: channel< [AISDKCallParams], AISDKResult, diff --git a/js/src/instrumentation/providers/ai-sdk-instrumentation.streaming.test.ts b/js/src/instrumentation/providers/ai-sdk-instrumentation.streaming.test.ts index 1921dfa02..2250168b2 100644 --- a/js/src/instrumentation/providers/ai-sdk-instrumentation.streaming.test.ts +++ b/js/src/instrumentation/providers/ai-sdk-instrumentation.streaming.test.ts @@ -133,7 +133,7 @@ describe("AI SDK streaming instrumentation", () => { prompt: "Say hello.", maxOutputTokens: 16, }; - const result = (await aiSDKChannels.streamText.tracePromise( + const result = (await aiSDKChannels.generateText.tracePromise( async () => params.model.doStream(params), { arguments: [params], @@ -196,7 +196,7 @@ describe("AI SDK streaming instrumentation", () => { prompt: "Say hello.", maxOutputTokens: 16, }; - const result = (await aiSDKChannels.streamText.tracePromise( + const result = (await aiSDKChannels.generateText.tracePromise( async () => params.model.doStream(params), { arguments: [params], @@ -829,8 +829,8 @@ describe("AI SDK streaming instrumentation", () => { const contentDelayMs = 80; let sentContent = false; - const result = (await aiSDKChannels.streamText.tracePromise( - async () => ({ + const result = aiSDKChannels.streamTextSync.traceSync( + () => ({ baseStream: new ReadableStream({ start(controller) { controller.enqueue({ type: "stream-start", warnings: [] }); @@ -866,7 +866,7 @@ describe("AI SDK streaming instrumentation", () => { }, ], } as any, - )) as any; + ) as any; const reader = result.baseStream.getReader(); while (true) { @@ -890,8 +890,8 @@ describe("AI SDK streaming instrumentation", () => { expect(await backgroundLogger.drain()).toHaveLength(0); let chunkSent = false; - const result = (await aiSDKChannels.streamText.tracePromise( - async () => { + const result = aiSDKChannels.streamTextSync.traceSync( + () => { const resultRecord = { baseStream: new ReadableStream({ pull(controller) { @@ -939,7 +939,7 @@ describe("AI SDK streaming instrumentation", () => { }, ], } as any, - )) as any; + ) as any; expect(Object.getOwnPropertyDescriptor(result, "textStream")?.get).toEqual( expect.any(Function), @@ -962,8 +962,8 @@ describe("AI SDK streaming instrumentation", () => { test("async iterable stream accessors preserve ReadableStream methods", async () => { expect(await backgroundLogger.drain()).toHaveLength(0); - const result = (await aiSDKChannels.streamText.tracePromise( - async () => { + const result = aiSDKChannels.streamTextSync.traceSync( + () => { const resultRecord = { stream: new ReadableStream({ start(controller) { @@ -998,7 +998,7 @@ describe("AI SDK streaming instrumentation", () => { }, ], } as any, - )) as any; + ) as any; expect(result.stream.pipeThrough).toEqual(expect.any(Function)); expect(result.stream.getReader).toEqual(expect.any(Function)); diff --git a/js/src/instrumentation/providers/ai-sdk-instrumentation.test.ts b/js/src/instrumentation/providers/ai-sdk-instrumentation.test.ts index 5fd33dd6b..242eef3f4 100644 --- a/js/src/instrumentation/providers/ai-sdk-instrumentation.test.ts +++ b/js/src/instrumentation/providers/ai-sdk-instrumentation.test.ts @@ -879,32 +879,6 @@ describe("AI SDK utility functions", () => { const result = omit(obj, []); expect(result).toEqual({ a: 1, b: 2 }); }); - - it("should handle complex AI SDK paths", () => { - const obj = { - roundtrips: [ - { - request: { body: "sensitive" }, - response: { headers: "sensitive" }, - }, - ], - rawResponse: { headers: "sensitive" }, - }; - const result = omit(obj, [ - "roundtrips[].request.body", - "roundtrips[].response.headers", - "rawResponse.headers", - ]); - expect(result).toEqual({ - roundtrips: [ - { - request: { body: "" }, - response: { headers: "" }, - }, - ], - rawResponse: { headers: "" }, - }); - }); }); describe("extractGetterValues", () => { @@ -1477,16 +1451,16 @@ describe("AI SDK utility functions", () => { it("should omit specified paths", () => { const output = { text: "Hello", - roundtrips: [ + steps: [ { request: { body: "sensitive" }, response: { data: "ok" }, }, ], }; - const result = processAISDKOutput(output, ["roundtrips[].request.body"]); - expect(result.roundtrips[0].request.body).toBe(""); - expect(result.roundtrips[0].response.data).toBe("ok"); + const result = processAISDKOutput(output, ["steps[].request.body"]); + expect(result.steps[0].request.body).toBe(""); + expect(result.steps[0].response.data).toBe("ok"); }); it("preserves user headers fields while omitting configured transport headers", () => { @@ -1539,21 +1513,6 @@ describe("AI SDK utility functions", () => { id: "provider-response-id", }, ], - roundtrips: [ - { - request: { - headers: { authorization: "secret" }, - body: "secret-roundtrip-request-body", - providerPayload: { - headers: { authorization: "nested-roundtrip-request-secret" }, - }, - }, - response: { - headers: { authorization: "secret" }, - id: "roundtrip-response-id", - }, - }, - ], steps: [ { request: { @@ -1607,7 +1566,6 @@ describe("AI SDK utility functions", () => { }); const serializedResult = JSON.stringify(result); expect(serializedResult).not.toContain("secret-request-body"); - expect(serializedResult).not.toContain("secret-roundtrip-request-body"); expect(serializedResult).not.toContain("secret-step-request-body"); expect(serializedResult).not.toContain("authorization"); expect(result.request).not.toHaveProperty("headers"); @@ -1623,13 +1581,6 @@ describe("AI SDK utility functions", () => { ); expect(result.rawResponse).not.toHaveProperty("headers"); expect(result.responses[0]).not.toHaveProperty("headers"); - if (result.roundtrips) { - expect(result.roundtrips[0].request).not.toHaveProperty("headers"); - expect(result.roundtrips[0].request.providerPayload).not.toHaveProperty( - "headers", - ); - expect(result.roundtrips[0].response).not.toHaveProperty("headers"); - } expect(result.steps[0].request).not.toHaveProperty("headers"); expect(result.steps[0].request.providerPayload).not.toHaveProperty( "headers", diff --git a/js/src/instrumentation/providers/ai-sdk-instrumentation.ts b/js/src/instrumentation/providers/ai-sdk-instrumentation.ts index ae0093a31..81215040c 100644 --- a/js/src/instrumentation/providers/ai-sdk-instrumentation.ts +++ b/js/src/instrumentation/providers/ai-sdk-instrumentation.ts @@ -79,7 +79,7 @@ import { BRAINTRUST_AI_SDK_V7_OPERATION_KEY as AI_SDK_V7_OPERATION_KEY } from ". interface AISDKInstrumentationConfig { /** * List of JSON paths to remove from output field. - * Uses dot notation with array wildcards: "roundtrips[].request.body" + * Uses dot notation with array wildcards: "steps[].request.body" */ denyOutputPaths?: string[]; } @@ -89,10 +89,6 @@ interface AISDKInstrumentationConfig { * These contain redundant or verbose data that's not useful for tracing. */ export const DEFAULT_DENY_OUTPUT_PATHS: string[] = [ - // v3 - "roundtrips[].request.body", - "roundtrips[].request.headers", - "roundtrips[].response.headers", "rawResponse.headers", "responseMessages", // v5 @@ -122,8 +118,6 @@ const TRANSPORT_PAYLOAD_ROOT_PATHS = [ "request", "response", "responses[]", - "roundtrips[].request", - "roundtrips[].response", "steps[].request", "steps[].response", "steps[].responses[]", @@ -232,32 +226,7 @@ class AISDKInstrumentationConsumer { extractMetrics: (result) => extractTokenMetrics(result), }); - // streamText - function returning stream - traceStreamingChannel(aiSDKChannels.streamText, { - name: "streamText", - type: SpanTypeAttribute.FUNCTION, - shouldTrace: () => currentCloudflareThinkSpan() === undefined, - extractInput: ([params], event, span) => - prepareAISDKCallInput(params, event, span, denyOutputPaths), - extractOutput: (result, endEvent) => - processAISDKOutput( - result, - resolveDenyOutputPaths(endEvent, denyOutputPaths), - ), - extractMetrics: (result, startTime, endEvent) => - extractTopLevelAISDKMetrics(result, endEvent, startTime), - aggregateChunks: aggregateAISDKChunks, - patchResult: ({ endEvent, result, span, startTime }) => - patchAISDKStreamingResult({ - defaultDenyOutputPaths: denyOutputPaths, - endEvent, - result, - span, - startTime, - }), - }); - - // streamText - sync function returning stream (v4+, used by auto-hook) + // streamText - sync function returning stream traceSyncStreamChannel(aiSDKChannels.streamTextSync, { name: "streamText", type: SpanTypeAttribute.FUNCTION, @@ -292,31 +261,7 @@ class AISDKInstrumentationConsumer { aggregateChunks: aggregateAISDKChunks, }); - // streamObject - function returning stream - traceStreamingChannel(aiSDKChannels.streamObject, { - name: "streamObject", - type: SpanTypeAttribute.FUNCTION, - extractInput: ([params], event, span) => - prepareAISDKCallInput(params, event, span, denyOutputPaths), - extractOutput: (result, endEvent) => - processAISDKOutput( - result, - resolveDenyOutputPaths(endEvent, denyOutputPaths), - ), - extractMetrics: (result, startTime, endEvent) => - extractTopLevelAISDKMetrics(result, endEvent, startTime), - aggregateChunks: aggregateAISDKChunks, - patchResult: ({ endEvent, result, span, startTime }) => - patchAISDKStreamingResult({ - defaultDenyOutputPaths: denyOutputPaths, - endEvent, - result, - span, - startTime, - }), - }); - - // streamObject - sync function returning stream (v4+, used by auto-hook) + // streamObject - sync function returning stream traceSyncStreamChannel(aiSDKChannels.streamObjectSync, { name: "streamObject", type: SpanTypeAttribute.FUNCTION, diff --git a/js/src/instrumentation/providers/cloudflare-think-instrumentation.ts b/js/src/instrumentation/providers/cloudflare-think-instrumentation.ts index 17751542a..d19a5f95b 100644 --- a/js/src/instrumentation/providers/cloudflare-think-instrumentation.ts +++ b/js/src/instrumentation/providers/cloudflare-think-instrumentation.ts @@ -39,9 +39,7 @@ type ThinkRunState = { startTime: number; }; -type AISDKStreamEvent = - | ChannelMessage - | ChannelMessage; +type AISDKStreamEvent = ChannelMessage; const THINK_STATE_ID = Symbol.for("braintrust.cloudflare-think.state-id"); @@ -51,7 +49,6 @@ class CloudflareThinkInstrumentationConsumer { public register(): void { this.subscribeToThinkRuns(); this.subscribeToAISDKStreamTextSync(); - this.subscribeToAISDKStreamTextAsync(); } private subscribeToThinkRuns(): void { @@ -161,25 +158,6 @@ class CloudflareThinkInstrumentationConsumer { channel.subscribe(handlers); } - private subscribeToAISDKStreamTextAsync(): void { - const channel = aiSDKChannels.streamText.tracingChannel(); - const handlers: IsoChannelHandlers< - ChannelMessage - > = { - start: (event) => { - this.startAISDKStream(event); - }, - asyncEnd: (event) => { - this.endAISDKStream(event); - }, - error: (event) => { - this.errorAISDKStream(event); - }, - }; - - channel.subscribe(handlers); - } - private startAISDKStream(event: AISDKStreamEvent): void { const runState = this.currentState(); if (!runState || runState.finalized) { diff --git a/js/src/vendor-sdk-types/ai-sdk-common.ts b/js/src/vendor-sdk-types/ai-sdk-common.ts index 5c8d406ba..a7f814cfc 100644 --- a/js/src/vendor-sdk-types/ai-sdk-common.ts +++ b/js/src/vendor-sdk-types/ai-sdk-common.ts @@ -370,6 +370,9 @@ export interface AISDKProviderResolver { } export interface AISDKNamespaceBase { + Agent?: AISDKAgentClass; + Experimental_Agent?: AISDKAgentClass; + ToolLoopAgent?: AISDKAgentClass; generateText: AISDKGenerateFunction; generateImage?: AISDKGenerateImageFunction; experimental_generateImage?: AISDKGenerateImageFunction; diff --git a/js/src/vendor-sdk-types/ai-sdk-v3.ts b/js/src/vendor-sdk-types/ai-sdk-v3.ts deleted file mode 100644 index 266324d14..000000000 --- a/js/src/vendor-sdk-types/ai-sdk-v3.ts +++ /dev/null @@ -1,12 +0,0 @@ -import type { - AISDKGenerateFunction, - AISDKNamespaceBase, - AISDKStreamFunction, -} from "./ai-sdk-common"; - -export interface AISDKV3 extends AISDKNamespaceBase { - experimental_generateText?: AISDKGenerateFunction; - experimental_streamText?: AISDKStreamFunction; - experimental_generateObject?: AISDKGenerateFunction; - experimental_streamObject?: AISDKStreamFunction; -} diff --git a/js/src/vendor-sdk-types/ai-sdk-v4.ts b/js/src/vendor-sdk-types/ai-sdk-v4.ts deleted file mode 100644 index 5aa750e74..000000000 --- a/js/src/vendor-sdk-types/ai-sdk-v4.ts +++ /dev/null @@ -1,3 +0,0 @@ -import type { AISDKNamespaceBase } from "./ai-sdk-common"; - -export type AISDKV4 = AISDKNamespaceBase; diff --git a/js/src/vendor-sdk-types/ai-sdk-v5.ts b/js/src/vendor-sdk-types/ai-sdk-v5.ts deleted file mode 100644 index ce1bb3d97..000000000 --- a/js/src/vendor-sdk-types/ai-sdk-v5.ts +++ /dev/null @@ -1,6 +0,0 @@ -import type { AISDKAgentClass, AISDKNamespaceBase } from "./ai-sdk-common"; - -export interface AISDKV5 extends AISDKNamespaceBase { - Agent?: AISDKAgentClass; - Experimental_Agent?: AISDKAgentClass; -} diff --git a/js/src/vendor-sdk-types/ai-sdk-v6.ts b/js/src/vendor-sdk-types/ai-sdk-v6.ts deleted file mode 100644 index 339cc07b4..000000000 --- a/js/src/vendor-sdk-types/ai-sdk-v6.ts +++ /dev/null @@ -1,7 +0,0 @@ -import type { AISDKAgentClass, AISDKNamespaceBase } from "./ai-sdk-common"; - -export interface AISDKV6 extends AISDKNamespaceBase { - Agent?: AISDKAgentClass; - Experimental_Agent?: AISDKAgentClass; - ToolLoopAgent?: AISDKAgentClass; -} diff --git a/js/src/vendor-sdk-types/ai-sdk.ts b/js/src/vendor-sdk-types/ai-sdk.ts index 4f36a0d22..cbf304a43 100644 --- a/js/src/vendor-sdk-types/ai-sdk.ts +++ b/js/src/vendor-sdk-types/ai-sdk.ts @@ -22,6 +22,7 @@ import type { AISDKModelStreamChunk, AISDKOutputObject, AISDKOutputResponseFormat, + AISDKNamespaceBase, AISDKRerankFunction, AISDKRerankParams, AISDKRerankResult, @@ -32,18 +33,7 @@ import type { AISDKUsage, AISDKWorkflowAgentClass, } from "./ai-sdk-common"; -import type { AISDKV3 } from "./ai-sdk-v3"; -import type { AISDKV4 } from "./ai-sdk-v4"; -import type { AISDKV5 } from "./ai-sdk-v5"; -import type { AISDKV6 } from "./ai-sdk-v6"; - -export type AISDKVersion = - | { majorVersion: 3; sdk: AISDKV3 } - | { majorVersion: 4; sdk: AISDKV4 } - | { majorVersion: 5; sdk: AISDKV5 } - | { majorVersion: 6; sdk: AISDKV6 }; - -export type AISDK = AISDKVersion["sdk"]; +export type AISDK = AISDKNamespaceBase; export type { AISDKAgentClass, diff --git a/js/src/wrappers/ai-sdk/ai-sdk.ts b/js/src/wrappers/ai-sdk/ai-sdk.ts index 396fa733e..52184723f 100644 --- a/js/src/wrappers/ai-sdk/ai-sdk.ts +++ b/js/src/wrappers/ai-sdk/ai-sdk.ts @@ -625,8 +625,8 @@ const wrapRerank = ( const makeStreamWrapper = ( channel: - | typeof aiSDKChannels.streamText - | typeof aiSDKChannels.streamObject + | typeof aiSDKChannels.streamTextSync + | typeof aiSDKChannels.streamObjectSync | typeof aiSDKChannels.agentStream | typeof harnessAgentChannels.stream | typeof harnessAgentChannels.continueStream @@ -656,6 +656,10 @@ const makeStreamWrapper = ( }), }); + if ("traceSync" in channel) { + return channel.traceSync(() => streamText(tracedParams) as any, context); + } + return channel.tracePromise(() => streamText(tracedParams) as any, context); }; Object.defineProperty(wrapper, "name", { value: name, writable: false }); @@ -668,7 +672,7 @@ const wrapStreamText = ( aiSDK?: AISDK, ) => { return makeStreamWrapper( - aiSDKChannels.streamText, + aiSDKChannels.streamTextSync, "streamText", streamText, { aiSDK }, @@ -682,7 +686,7 @@ const wrapStreamObject = ( aiSDK?: AISDK, ) => { return makeStreamWrapper( - aiSDKChannels.streamObject, + aiSDKChannels.streamObjectSync, "streamObject", streamObject, { aiSDK }, From a6aa4d40a91a7451ab8a264305f12481f332575b Mon Sep 17 00:00:00 2001 From: lforst <8118419+lforst@users.noreply.github.com> Date: Fri, 11 Sep 2026 13:40:52 +0000 Subject: [PATCH 2/2] Update PR #2474 --- .changeset/remove-ai-sdk-v3.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/remove-ai-sdk-v3.md diff --git a/.changeset/remove-ai-sdk-v3.md b/.changeset/remove-ai-sdk-v3.md new file mode 100644 index 000000000..987c8fed2 --- /dev/null +++ b/.changeset/remove-ai-sdk-v3.md @@ -0,0 +1,5 @@ +--- +"braintrust": major +--- + +ref(ai-sdk)!: Remove AI SDK v3 support