[{"data":1,"prerenderedAt":3041},["ShallowReactive",2],{"navigation_docs":3,"-logging-ai-sdk-usage":547,"-logging-ai-sdk-usage-surround":3036},[4,35,159,201,289,446,531],{"title":5,"path":6,"stem":7,"children":8,"page":34},"Getting Started","\u002Fgetting-started","1.getting-started",[9,14,19,24,29],{"title":10,"path":11,"stem":12,"icon":13},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F1.introduction","i-lucide-info",{"title":15,"path":16,"stem":17,"icon":18},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F2.installation","i-lucide-download",{"title":20,"path":21,"stem":22,"icon":23},"Quick Start","\u002Fgetting-started\u002Fquick-start","1.getting-started\u002F3.quick-start","i-lucide-zap",{"title":25,"path":26,"stem":27,"icon":28},"Agent Skills","\u002Fgetting-started\u002Fagent-skills","1.getting-started\u002F4.agent-skills","i-lucide-sparkles",{"title":30,"path":31,"stem":32,"icon":33},"vs Other Loggers","\u002Fgetting-started\u002Fvs-other-loggers","1.getting-started\u002F5.vs-other-loggers","i-lucide-scale",false,{"title":36,"path":37,"stem":38,"children":39,"page":34},"Logging","\u002Flogging","2.logging",[40,45,50,55,60,65,70,99,127],{"title":41,"path":42,"stem":43,"icon":44},"Overview","\u002Flogging\u002Foverview","2.logging\u002F0.overview","i-lucide-list",{"title":46,"path":47,"stem":48,"icon":49},"Simple Logging","\u002Flogging\u002Fsimple-logging","2.logging\u002F1.simple-logging","i-lucide-terminal",{"title":51,"path":52,"stem":53,"icon":54},"Wide Events","\u002Flogging\u002Fwide-events","2.logging\u002F2.wide-events","i-lucide-layers",{"title":56,"path":57,"stem":58,"icon":59},"Structured Errors","\u002Flogging\u002Fstructured-errors","2.logging\u002F3.structured-errors","i-lucide-shield-alert",{"title":61,"path":62,"stem":63,"icon":64},"Catalogs","\u002Flogging\u002Fcatalogs","2.logging\u002F4.catalogs","i-lucide-book-open",{"title":66,"path":67,"stem":68,"icon":69},"Client Logging","\u002Flogging\u002Fclient-logging","2.logging\u002F5.client-logging","i-lucide-monitor",{"title":71,"icon":72,"path":73,"stem":74,"children":75,"page":34},"AI SDK","i-simple-icons-vercel","\u002Flogging\u002Fai-sdk","2.logging\u002F6.ai-sdk",[76,79,84,89,94],{"title":41,"path":77,"stem":78,"icon":44},"\u002Flogging\u002Fai-sdk\u002Foverview","2.logging\u002F6.ai-sdk\u002F01.overview",{"title":80,"path":81,"stem":82,"icon":83},"Usage","\u002Flogging\u002Fai-sdk\u002Fusage","2.logging\u002F6.ai-sdk\u002F02.usage","i-lucide-code",{"title":85,"path":86,"stem":87,"icon":88},"Options","\u002Flogging\u002Fai-sdk\u002Foptions","2.logging\u002F6.ai-sdk\u002F03.options","i-lucide-sliders",{"title":90,"path":91,"stem":92,"icon":93},"Metadata","\u002Flogging\u002Fai-sdk\u002Fmetadata","2.logging\u002F6.ai-sdk\u002F04.metadata","i-lucide-database",{"title":95,"path":96,"stem":97,"icon":98},"Telemetry","\u002Flogging\u002Fai-sdk\u002Ftelemetry","2.logging\u002F6.ai-sdk\u002F05.telemetry","i-lucide-activity",{"title":100,"icon":101,"path":102,"stem":103,"children":104,"page":34},"Better Auth","i-simple-icons-betterauth","\u002Flogging\u002Fbetter-auth","2.logging\u002F7.better-auth",[105,108,113,118,122],{"title":41,"path":106,"stem":107,"icon":44},"\u002Flogging\u002Fbetter-auth\u002Foverview","2.logging\u002F7.better-auth\u002F01.overview",{"title":109,"path":110,"stem":111,"icon":112},"Identify User","\u002Flogging\u002Fbetter-auth\u002Fidentify-user","2.logging\u002F7.better-auth\u002F02.identify-user","i-lucide-user-check",{"title":114,"path":115,"stem":116,"icon":117},"Middleware","\u002Flogging\u002Fbetter-auth\u002Fmiddleware","2.logging\u002F7.better-auth\u002F03.middleware","i-lucide-shield",{"title":119,"path":120,"stem":121,"icon":69},"Client Sync","\u002Flogging\u002Fbetter-auth\u002Fclient-sync","2.logging\u002F7.better-auth\u002F04.client-sync",{"title":123,"path":124,"stem":125,"icon":126},"Performance","\u002Flogging\u002Fbetter-auth\u002Fperformance","2.logging\u002F7.better-auth\u002F05.performance","i-lucide-gauge",{"title":128,"icon":129,"path":130,"stem":131,"children":132,"page":34},"Audit Logs","i-lucide-shield-check","\u002Flogging\u002Faudit","2.logging\u002F8.audit",[133,136,141,146,151,155],{"title":41,"path":134,"stem":135,"icon":44},"\u002Flogging\u002Faudit\u002Foverview","2.logging\u002F8.audit\u002F01.overview",{"title":137,"path":138,"stem":139,"icon":140},"Schema","\u002Flogging\u002Faudit\u002Fschema","2.logging\u002F8.audit\u002F02.schema","i-lucide-file-text",{"title":142,"path":143,"stem":144,"icon":145},"Recording","\u002Flogging\u002Faudit\u002Frecording","2.logging\u002F8.audit\u002F03.recording","i-lucide-pen-line",{"title":147,"path":148,"stem":149,"icon":150},"Drains","\u002Flogging\u002Faudit\u002Fpipeline","2.logging\u002F8.audit\u002F04.pipeline","i-lucide-link",{"title":152,"path":153,"stem":154,"icon":129},"Compliance","\u002Flogging\u002Faudit\u002Fcompliance","2.logging\u002F8.audit\u002F05.compliance",{"title":156,"path":157,"stem":158,"icon":64},"Recipes","\u002Flogging\u002Faudit\u002Frecipes","2.logging\u002F8.audit\u002F06.recipes",{"title":160,"path":161,"stem":162,"children":163,"page":34},"Core Concepts","\u002Fcore-concepts","3.core-concepts",[164,169,174,179,184,188,191,196],{"title":165,"path":166,"stem":167,"icon":168},"Lifecycle","\u002Fcore-concepts\u002Flifecycle","3.core-concepts\u002F0.lifecycle","i-lucide-arrow-right-left",{"title":170,"path":171,"stem":172,"icon":173},"Configuration","\u002Fcore-concepts\u002Fconfiguration","3.core-concepts\u002F1.configuration","i-lucide-settings",{"title":175,"path":176,"stem":177,"icon":178},"Sampling","\u002Fcore-concepts\u002Fsampling","3.core-concepts\u002F2.sampling","i-lucide-filter",{"title":180,"path":181,"stem":182,"icon":183},"Typed Fields","\u002Fcore-concepts\u002Ftyped-fields","3.core-concepts\u002F3.typed-fields","i-simple-icons-typescript",{"title":185,"path":186,"stem":187,"icon":129},"Best Practices","\u002Fcore-concepts\u002Fbest-practices","3.core-concepts\u002F4.best-practices",{"title":123,"path":189,"stem":190,"icon":126},"\u002Fcore-concepts\u002Fperformance","3.core-concepts\u002F5.performance",{"title":192,"path":193,"stem":194,"icon":195},"Vite Plugin","\u002Fcore-concepts\u002Fvite-plugin","3.core-concepts\u002F6.vite-plugin","i-custom-vite",{"title":197,"path":198,"stem":199,"icon":200},"Auto-Redaction","\u002Fcore-concepts\u002Fredaction","3.core-concepts\u002F7.redaction","i-lucide-eye-off",{"title":202,"path":203,"stem":204,"children":205,"page":34},"Frameworks","\u002Fframeworks","4.frameworks",[206,210,215,220,225,230,235,240,245,250,255,260,265,270,274,279,284],{"title":41,"path":207,"stem":208,"icon":209},"\u002Fframeworks\u002Foverview","4.frameworks\u002F00.overview","i-lucide-layout-grid",{"title":211,"path":212,"stem":213,"icon":214},"Nuxt","\u002Fframeworks\u002Fnuxt","4.frameworks\u002F01.nuxt","i-simple-icons-nuxtdotjs",{"title":216,"path":217,"stem":218,"icon":219},"Next.js","\u002Fframeworks\u002Fnextjs","4.frameworks\u002F02.nextjs","i-simple-icons-nextdotjs",{"title":221,"path":222,"stem":223,"icon":224},"SvelteKit","\u002Fframeworks\u002Fsveltekit","4.frameworks\u002F03.sveltekit","i-simple-icons-svelte",{"title":226,"path":227,"stem":228,"icon":229},"Nitro","\u002Fframeworks\u002Fnitro","4.frameworks\u002F04.nitro","i-custom-nitro",{"title":231,"path":232,"stem":233,"icon":234},"TanStack Start","\u002Fframeworks\u002Ftanstack-start","4.frameworks\u002F05.tanstack-start","i-custom-tanstack",{"title":236,"path":237,"stem":238,"icon":239},"NestJS","\u002Fframeworks\u002Fnestjs","4.frameworks\u002F06.nestjs","i-simple-icons-nestjs",{"title":241,"path":242,"stem":243,"icon":244},"Express","\u002Fframeworks\u002Fexpress","4.frameworks\u002F07.express","i-simple-icons-express",{"title":246,"path":247,"stem":248,"icon":249},"Hono","\u002Fframeworks\u002Fhono","4.frameworks\u002F08.hono","i-simple-icons-hono",{"title":251,"path":252,"stem":253,"icon":254},"Fastify","\u002Fframeworks\u002Ffastify","4.frameworks\u002F09.fastify","i-simple-icons-fastify",{"title":256,"path":257,"stem":258,"icon":259},"Elysia","\u002Fframeworks\u002Felysia","4.frameworks\u002F10.elysia","i-custom-elysia",{"title":261,"path":262,"stem":263,"icon":264},"React Router","\u002Fframeworks\u002Freact-router","4.frameworks\u002F11.react-router","i-custom-reactrouter",{"title":266,"path":267,"stem":268,"icon":269},"Cloudflare Workers","\u002Fframeworks\u002Fcloudflare-workers","4.frameworks\u002F12.cloudflare-workers","i-simple-icons-cloudflare",{"title":271,"path":272,"stem":273,"icon":183},"Standalone","\u002Fframeworks\u002Fstandalone","4.frameworks\u002F13.standalone",{"title":275,"path":276,"stem":277,"icon":278},"Astro","\u002Fframeworks\u002Fastro","4.frameworks\u002F14.astro","i-simple-icons-astro",{"title":280,"path":281,"stem":282,"icon":283},"AWS Lambda","\u002Fframeworks\u002Faws-lambda","4.frameworks\u002F16.aws-lambda","i-custom-lambda",{"title":285,"path":286,"stem":287,"icon":288},"Custom Integration","\u002Fframeworks\u002Fcustom-integration","4.frameworks\u002F17.custom-integration","i-lucide-puzzle",{"title":290,"path":291,"stem":292,"children":293,"page":34},"Build on top","\u002Fbuild-on-top","5.build-on-top",[294,297,325,346,373,400,428],{"title":41,"path":295,"stem":296,"icon":54},"\u002Fbuild-on-top\u002Foverview","5.build-on-top\u002F0.overview",{"title":298,"path":299,"stem":300,"children":301,"page":34},"Observers","\u002Fbuild-on-top\u002Fobservers","5.build-on-top\u002Fobservers",[302,306,311,316,321],{"title":41,"path":303,"stem":304,"icon":305},"\u002Fbuild-on-top\u002Fobservers\u002Foverview","5.build-on-top\u002Fobservers\u002F1.overview","i-lucide-eye",{"title":307,"path":308,"stem":309,"icon":310},"Stream API","\u002Fbuild-on-top\u002Fobservers\u002Fin-process-stream","5.build-on-top\u002Fobservers\u002F2.in-process-stream","i-lucide-radio-tower",{"title":312,"path":313,"stem":314,"icon":315},"Stream server","\u002Fbuild-on-top\u002Fobservers\u002Fstream-server","5.build-on-top\u002Fobservers\u002F3.stream-server","i-lucide-radio",{"title":317,"path":318,"stem":319,"icon":320},"FS reader","\u002Fbuild-on-top\u002Fobservers\u002Ffs-reader","5.build-on-top\u002Fobservers\u002F4.fs-reader","i-lucide-folder-search",{"title":156,"path":322,"stem":323,"icon":324},"\u002Fbuild-on-top\u002Fobservers\u002Fconsumer-recipes","5.build-on-top\u002Fobservers\u002F5.consumer-recipes","i-lucide-chef-hat",{"title":326,"path":327,"stem":328,"children":329,"page":34},"Pipeline","\u002Fbuild-on-top\u002Fpipeline","5.build-on-top\u002Fpipeline",[330,334,338,342],{"title":41,"path":331,"stem":332,"icon":333},"\u002Fbuild-on-top\u002Fpipeline\u002Foverview","5.build-on-top\u002Fpipeline\u002F1.overview","i-lucide-workflow",{"title":335,"path":336,"stem":337,"icon":288},"Plugins","\u002Fbuild-on-top\u002Fpipeline\u002Fplugins","5.build-on-top\u002Fpipeline\u002F2.plugins",{"title":339,"path":340,"stem":341,"icon":28},"Custom enrichers","\u002Fbuild-on-top\u002Fpipeline\u002Fcustom-enrichers","5.build-on-top\u002Fpipeline\u002F3.custom-enrichers",{"title":343,"path":344,"stem":345,"icon":178},"Tail sampling","\u002Fbuild-on-top\u002Fpipeline\u002Ftail-sampling","5.build-on-top\u002Fpipeline\u002F4.tail-sampling",{"title":347,"path":348,"stem":349,"children":350,"page":34},"Scenarios","\u002Fbuild-on-top\u002Fscenarios","5.build-on-top\u002Fscenarios",[351,355,359,364,368],{"title":41,"path":352,"stem":353,"icon":354},"\u002Fbuild-on-top\u002Fscenarios\u002Foverview","5.build-on-top\u002Fscenarios\u002F0.overview","i-lucide-clipboard-list",{"title":356,"path":357,"stem":358,"icon":49},"Local debugging toolkit","\u002Fbuild-on-top\u002Fscenarios\u002Flocal-debugging-toolkit","5.build-on-top\u002Fscenarios\u002F1.local-debugging-toolkit",{"title":360,"path":361,"stem":362,"icon":363},"Tenant-aware logging","\u002Fbuild-on-top\u002Fscenarios\u002Ftenant-aware-logging","5.build-on-top\u002Fscenarios\u002F2.tenant-aware-logging","i-lucide-users",{"title":365,"path":366,"stem":367,"icon":129},"Compliance audit","\u002Fbuild-on-top\u002Fscenarios\u002Fcompliance-audit","5.build-on-top\u002Fscenarios\u002F3.compliance-audit",{"title":369,"path":370,"stem":371,"icon":372},"Cross-app error vocab","\u002Fbuild-on-top\u002Fscenarios\u002Fcross-app-error-vocab","5.build-on-top\u002Fscenarios\u002F4.cross-app-error-vocab","i-lucide-book",{"title":374,"path":375,"stem":376,"children":377,"page":34},"Shared packages","\u002Fbuild-on-top\u002Fshared","5.build-on-top\u002Fshared",[378,382,386,391,395],{"title":41,"path":379,"stem":380,"icon":381},"\u002Fbuild-on-top\u002Fshared\u002Foverview","5.build-on-top\u002Fshared\u002F1.overview","i-lucide-package",{"title":383,"path":384,"stem":385,"icon":381},"Catalogs as packages","\u002Fbuild-on-top\u002Fshared\u002Fcatalogs-as-packages","5.build-on-top\u002Fshared\u002F2.catalogs-as-packages",{"title":387,"path":388,"stem":389,"icon":390},"Drains as packages","\u002Fbuild-on-top\u002Fshared\u002Fdrains-as-packages","5.build-on-top\u002Fshared\u002F3.drains-as-packages","i-lucide-package-2",{"title":392,"path":393,"stem":394,"icon":28},"Enrichers as packages","\u002Fbuild-on-top\u002Fshared\u002Fenrichers-as-packages","5.build-on-top\u002Fshared\u002F4.enrichers-as-packages",{"title":396,"path":397,"stem":398,"icon":399},"Integration as package","\u002Fbuild-on-top\u002Fshared\u002Fintegration-as-package","5.build-on-top\u002Fshared\u002F5.integration-as-package","i-lucide-package-check",{"title":401,"path":402,"stem":403,"children":404,"page":34},"Sinks","\u002Fbuild-on-top\u002Fsinks","5.build-on-top\u002Fsinks",[405,409,414,418,423],{"title":41,"path":406,"stem":407,"icon":408},"\u002Fbuild-on-top\u002Fsinks\u002Foverview","5.build-on-top\u002Fsinks\u002F1.overview","i-lucide-arrow-up-from-line",{"title":410,"path":411,"stem":412,"icon":413},"Custom drains","\u002Fbuild-on-top\u002Fsinks\u002Fcustom-drains","5.build-on-top\u002Fsinks\u002F2.custom-drains","i-lucide-code-2",{"title":415,"path":416,"stem":417,"icon":333},"Drain pipeline","\u002Fbuild-on-top\u002Fsinks\u002Fdrain-pipeline","5.build-on-top\u002Fsinks\u002F3.drain-pipeline",{"title":419,"path":420,"stem":421,"icon":422},"Identity headers","\u002Fbuild-on-top\u002Fsinks\u002Fidentity-headers","5.build-on-top\u002Fsinks\u002F4.identity-headers","i-lucide-fingerprint",{"title":424,"path":425,"stem":426,"icon":427},"Fanout","\u002Fbuild-on-top\u002Fsinks\u002Ffanout-and-multi-drain","5.build-on-top\u002Fsinks\u002F5.fanout-and-multi-drain","i-lucide-share-2",{"title":429,"path":430,"stem":431,"children":432,"page":34},"Sources","\u002Fbuild-on-top\u002Fsources","5.build-on-top\u002Fsources",[433,437,441],{"title":41,"path":434,"stem":435,"icon":436},"\u002Fbuild-on-top\u002Fsources\u002Foverview","5.build-on-top\u002Fsources\u002F1.overview","i-lucide-arrow-down-to-line",{"title":438,"path":439,"stem":440,"icon":288},"Custom framework","\u002Fbuild-on-top\u002Fsources\u002Fcustom-framework","5.build-on-top\u002Fsources\u002F2.custom-framework",{"title":442,"path":443,"stem":444,"icon":445},"Middleware toolkit","\u002Fbuild-on-top\u002Fsources\u002Fmiddleware-toolkit","5.build-on-top\u002Fsources\u002F3.middleware-toolkit","i-lucide-wrench",{"title":447,"path":448,"stem":449,"children":450,"page":34},"Adapters","\u002Fadapters","6.adapters",[451,454,494,509],{"title":41,"path":452,"stem":453,"icon":44},"\u002Fadapters\u002Foverview","6.adapters\u002F01.overview",{"title":455,"path":456,"stem":457,"children":458,"page":34},"Cloud destinations","\u002Fadapters\u002Fcloud","6.adapters\u002F02.cloud",[459,464,469,474,479,484,489],{"title":460,"path":461,"stem":462,"icon":463},"Axiom","\u002Fadapters\u002Fcloud\u002Faxiom","6.adapters\u002F02.cloud\u002F01.axiom","i-custom-axiom",{"title":465,"path":466,"stem":467,"icon":468},"OTLP","\u002Fadapters\u002Fcloud\u002Fotlp","6.adapters\u002F02.cloud\u002F02.otlp","i-simple-icons-opentelemetry",{"title":470,"path":471,"stem":472,"icon":473},"PostHog","\u002Fadapters\u002Fcloud\u002Fposthog","6.adapters\u002F02.cloud\u002F03.posthog","i-simple-icons-posthog",{"title":475,"path":476,"stem":477,"icon":478},"Sentry","\u002Fadapters\u002Fcloud\u002Fsentry","6.adapters\u002F02.cloud\u002F04.sentry","i-simple-icons-sentry",{"title":480,"path":481,"stem":482,"icon":483},"Better Stack","\u002Fadapters\u002Fcloud\u002Fbetter-stack","6.adapters\u002F02.cloud\u002F05.better-stack","i-simple-icons-betterstack",{"title":485,"path":486,"stem":487,"icon":488},"Datadog","\u002Fadapters\u002Fcloud\u002Fdatadog","6.adapters\u002F02.cloud\u002F06.datadog","i-simple-icons-datadog",{"title":490,"path":491,"stem":492,"icon":493},"HyperDX","\u002Fadapters\u002Fcloud\u002Fhyperdx","6.adapters\u002F02.cloud\u002F07.hyperdx","i-custom-hyperdx",{"title":495,"path":496,"stem":497,"children":498,"page":34},"Self-hosted","\u002Fadapters\u002Fself-hosted","6.adapters\u002F03.self-hosted",[499,504],{"title":500,"path":501,"stem":502,"icon":503},"File System","\u002Fadapters\u002Fself-hosted\u002Ffs","6.adapters\u002F03.self-hosted\u002F01.fs","i-lucide-hard-drive",{"title":505,"path":506,"stem":507,"icon":508},"NuxtHub","\u002Fadapters\u002Fself-hosted\u002Fnuxthub","6.adapters\u002F03.self-hosted\u002F02.nuxthub","i-simple-icons-nuxt",{"title":510,"path":511,"stem":512,"children":513,"page":34},"Building blocks","\u002Fadapters\u002Fbuilding-blocks","6.adapters\u002F04.building-blocks",[514,517,522,526],{"title":326,"path":515,"stem":516,"icon":333},"\u002Fadapters\u002Fbuilding-blocks\u002Fpipeline","6.adapters\u002F04.building-blocks\u002F01.pipeline",{"title":518,"path":519,"stem":520,"icon":521},"HTTP","\u002Fadapters\u002Fbuilding-blocks\u002Fhttp","6.adapters\u002F04.building-blocks\u002F02.http","i-lucide-globe",{"title":523,"path":524,"stem":525,"icon":83},"Custom Adapters","\u002Fadapters\u002Fbuilding-blocks\u002Fcustom","6.adapters\u002F04.building-blocks\u002F03.custom",{"title":527,"path":528,"stem":529,"icon":530},"Toolkit","\u002Fadapters\u002Fbuilding-blocks\u002Ftoolkit","6.adapters\u002F04.building-blocks\u002F04.toolkit","i-lucide-blocks",{"title":532,"path":533,"stem":534,"children":535,"page":34},"Enrichers","\u002Fenrichers","7.enrichers",[536,539,543],{"title":41,"path":537,"stem":538,"icon":28},"\u002Fenrichers\u002Foverview","7.enrichers\u002F1.overview",{"title":540,"path":541,"stem":542,"icon":288},"Built-in","\u002Fenrichers\u002Fbuilt-in","7.enrichers\u002F2.built-in",{"title":544,"path":545,"stem":546,"icon":83},"Custom","\u002Fenrichers\u002Fcustom","7.enrichers\u002F3.custom",{"id":548,"title":549,"body":550,"description":3025,"extension":3026,"links":3027,"meta":3032,"navigation":3033,"path":81,"seo":3034,"stem":82,"__hash__":3035},"docs\u002F2.logging\u002F6.ai-sdk\u002F02.usage.md","Usage Patterns",{"type":551,"value":552,"toc":3017},"minimark",[553,566,571,574,940,947,951,954,1150,1154,1157,1473,1476,2100,2111,2115,2122,2493,2500,2621,2625,2635,2944,2948,2954,3013],[554,555,556,557,561,562,565],"p",{},"Every pattern below uses the same ",[558,559,560],"code",{},"createAILogger(log)"," setup. Wrap the model with ",[558,563,564],{},"ai.wrap()"," and the middleware accumulates tokens, tools, and timing on the wide event automatically.",[567,568,570],"h2",{"id":569},"streamtext","streamText",[554,572,573],{},"The most common pattern — streaming chat with full observability:",[575,576,582],"pre",{"className":577,"code":578,"filename":579,"language":580,"meta":581,"style":581},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { streamText } from 'ai'\nimport { createAILogger } from 'evlog\u002Fai'\n\nexport default defineEventHandler(async (event) => {\n  const log = useLogger(event)\n  const ai = createAILogger(log)\n  const { messages } = await readBody(event)\n\n  log.set({ action: 'chat', messagesCount: messages.length })\n\n  const result = streamText({\n    model: ai.wrap('anthropic\u002Fclaude-sonnet-4.6'),\n    messages,\n    onFinish: ({ text }) => {\n      saveConversation(text)\n    },\n  })\n\n  return result.toTextStreamResponse()\n})\n","server\u002Fapi\u002Fchat.post.ts","typescript","",[558,583,584,617,638,645,681,704,723,749,754,804,809,826,855,863,884,897,903,911,916,932],{"__ignoreMap":581},[585,586,589,593,597,601,604,607,610,614],"span",{"class":587,"line":588},"line",1,[585,590,592],{"class":591},"s7zQu","import",[585,594,596],{"class":595},"sMK4o"," {",[585,598,600],{"class":599},"sTEyZ"," streamText",[585,602,603],{"class":595}," }",[585,605,606],{"class":591}," from",[585,608,609],{"class":595}," '",[585,611,613],{"class":612},"sfazB","ai",[585,615,616],{"class":595},"'\n",[585,618,620,622,624,627,629,631,633,636],{"class":587,"line":619},2,[585,621,592],{"class":591},[585,623,596],{"class":595},[585,625,626],{"class":599}," createAILogger",[585,628,603],{"class":595},[585,630,606],{"class":591},[585,632,609],{"class":595},[585,634,635],{"class":612},"evlog\u002Fai",[585,637,616],{"class":595},[585,639,641],{"class":587,"line":640},3,[585,642,644],{"emptyLinePlaceholder":643},true,"\n",[585,646,648,651,654,658,661,665,668,672,675,678],{"class":587,"line":647},4,[585,649,650],{"class":591},"export",[585,652,653],{"class":591}," default",[585,655,657],{"class":656},"s2Zo4"," defineEventHandler",[585,659,660],{"class":599},"(",[585,662,664],{"class":663},"spNyl","async",[585,666,667],{"class":595}," (",[585,669,671],{"class":670},"sHdIc","event",[585,673,674],{"class":595},")",[585,676,677],{"class":663}," =>",[585,679,680],{"class":595}," {\n",[585,682,684,687,690,693,696,699,701],{"class":587,"line":683},5,[585,685,686],{"class":663},"  const",[585,688,689],{"class":599}," log",[585,691,692],{"class":595}," =",[585,694,695],{"class":656}," useLogger",[585,697,660],{"class":698},"swJcz",[585,700,671],{"class":599},[585,702,703],{"class":698},")\n",[585,705,707,709,712,714,716,718,721],{"class":587,"line":706},6,[585,708,686],{"class":663},[585,710,711],{"class":599}," ai",[585,713,692],{"class":595},[585,715,626],{"class":656},[585,717,660],{"class":698},[585,719,720],{"class":599},"log",[585,722,703],{"class":698},[585,724,726,728,730,733,735,737,740,743,745,747],{"class":587,"line":725},7,[585,727,686],{"class":663},[585,729,596],{"class":595},[585,731,732],{"class":599}," messages",[585,734,603],{"class":595},[585,736,692],{"class":595},[585,738,739],{"class":591}," await",[585,741,742],{"class":656}," readBody",[585,744,660],{"class":698},[585,746,671],{"class":599},[585,748,703],{"class":698},[585,750,752],{"class":587,"line":751},8,[585,753,644],{"emptyLinePlaceholder":643},[585,755,757,760,763,766,768,771,774,777,779,782,785,788,791,793,795,797,800,802],{"class":587,"line":756},9,[585,758,759],{"class":599},"  log",[585,761,762],{"class":595},".",[585,764,765],{"class":656},"set",[585,767,660],{"class":698},[585,769,770],{"class":595},"{",[585,772,773],{"class":698}," action",[585,775,776],{"class":595},":",[585,778,609],{"class":595},[585,780,781],{"class":612},"chat",[585,783,784],{"class":595},"'",[585,786,787],{"class":595},",",[585,789,790],{"class":698}," messagesCount",[585,792,776],{"class":595},[585,794,732],{"class":599},[585,796,762],{"class":595},[585,798,799],{"class":599},"length",[585,801,603],{"class":595},[585,803,703],{"class":698},[585,805,807],{"class":587,"line":806},10,[585,808,644],{"emptyLinePlaceholder":643},[585,810,812,814,817,819,821,823],{"class":587,"line":811},11,[585,813,686],{"class":663},[585,815,816],{"class":599}," result",[585,818,692],{"class":595},[585,820,600],{"class":656},[585,822,660],{"class":698},[585,824,825],{"class":595},"{\n",[585,827,829,832,834,836,838,841,843,845,848,850,852],{"class":587,"line":828},12,[585,830,831],{"class":698},"    model",[585,833,776],{"class":595},[585,835,711],{"class":599},[585,837,762],{"class":595},[585,839,840],{"class":656},"wrap",[585,842,660],{"class":698},[585,844,784],{"class":595},[585,846,847],{"class":612},"anthropic\u002Fclaude-sonnet-4.6",[585,849,784],{"class":595},[585,851,674],{"class":698},[585,853,854],{"class":595},",\n",[585,856,858,861],{"class":587,"line":857},13,[585,859,860],{"class":599},"    messages",[585,862,854],{"class":595},[585,864,866,869,871,874,877,880,882],{"class":587,"line":865},14,[585,867,868],{"class":656},"    onFinish",[585,870,776],{"class":595},[585,872,873],{"class":595}," ({",[585,875,876],{"class":670}," text",[585,878,879],{"class":595}," })",[585,881,677],{"class":663},[585,883,680],{"class":595},[585,885,887,890,892,895],{"class":587,"line":886},15,[585,888,889],{"class":656},"      saveConversation",[585,891,660],{"class":698},[585,893,894],{"class":599},"text",[585,896,703],{"class":698},[585,898,900],{"class":587,"line":899},16,[585,901,902],{"class":595},"    },\n",[585,904,906,909],{"class":587,"line":905},17,[585,907,908],{"class":595},"  }",[585,910,703],{"class":698},[585,912,914],{"class":587,"line":913},18,[585,915,644],{"emptyLinePlaceholder":643},[585,917,919,922,924,926,929],{"class":587,"line":918},19,[585,920,921],{"class":591},"  return",[585,923,816],{"class":599},[585,925,762],{"class":595},[585,927,928],{"class":656},"toTextStreamResponse",[585,930,931],{"class":698},"()\n",[585,933,935,938],{"class":587,"line":934},20,[585,936,937],{"class":595},"}",[585,939,703],{"class":599},[554,941,942,943,946],{},"The middleware never touches your ",[558,944,945],{},"onFinish"," callback — your code runs as usual.",[567,948,950],{"id":949},"generatetext","generateText",[554,952,953],{},"Synchronous generation. The middleware captures the result automatically:",[575,955,958],{"className":577,"code":956,"filename":957,"language":580,"meta":581,"style":581},"import { generateText } from 'ai'\nimport { createAILogger } from 'evlog\u002Fai'\n\nexport default defineEventHandler(async (event) => {\n  const log = useLogger(event)\n  const ai = createAILogger(log)\n\n  const result = await generateText({\n    model: ai.wrap('anthropic\u002Fclaude-sonnet-4.6'),\n    prompt: 'Summarize this document',\n  })\n\n  return { text: result.text }\n})\n","server\u002Fapi\u002Fsummarize.post.ts",[558,959,960,979,997,1001,1023,1039,1055,1059,1075,1099,1115,1121,1125,1144],{"__ignoreMap":581},[585,961,962,964,966,969,971,973,975,977],{"class":587,"line":588},[585,963,592],{"class":591},[585,965,596],{"class":595},[585,967,968],{"class":599}," generateText",[585,970,603],{"class":595},[585,972,606],{"class":591},[585,974,609],{"class":595},[585,976,613],{"class":612},[585,978,616],{"class":595},[585,980,981,983,985,987,989,991,993,995],{"class":587,"line":619},[585,982,592],{"class":591},[585,984,596],{"class":595},[585,986,626],{"class":599},[585,988,603],{"class":595},[585,990,606],{"class":591},[585,992,609],{"class":595},[585,994,635],{"class":612},[585,996,616],{"class":595},[585,998,999],{"class":587,"line":640},[585,1000,644],{"emptyLinePlaceholder":643},[585,1002,1003,1005,1007,1009,1011,1013,1015,1017,1019,1021],{"class":587,"line":647},[585,1004,650],{"class":591},[585,1006,653],{"class":591},[585,1008,657],{"class":656},[585,1010,660],{"class":599},[585,1012,664],{"class":663},[585,1014,667],{"class":595},[585,1016,671],{"class":670},[585,1018,674],{"class":595},[585,1020,677],{"class":663},[585,1022,680],{"class":595},[585,1024,1025,1027,1029,1031,1033,1035,1037],{"class":587,"line":683},[585,1026,686],{"class":663},[585,1028,689],{"class":599},[585,1030,692],{"class":595},[585,1032,695],{"class":656},[585,1034,660],{"class":698},[585,1036,671],{"class":599},[585,1038,703],{"class":698},[585,1040,1041,1043,1045,1047,1049,1051,1053],{"class":587,"line":706},[585,1042,686],{"class":663},[585,1044,711],{"class":599},[585,1046,692],{"class":595},[585,1048,626],{"class":656},[585,1050,660],{"class":698},[585,1052,720],{"class":599},[585,1054,703],{"class":698},[585,1056,1057],{"class":587,"line":725},[585,1058,644],{"emptyLinePlaceholder":643},[585,1060,1061,1063,1065,1067,1069,1071,1073],{"class":587,"line":751},[585,1062,686],{"class":663},[585,1064,816],{"class":599},[585,1066,692],{"class":595},[585,1068,739],{"class":591},[585,1070,968],{"class":656},[585,1072,660],{"class":698},[585,1074,825],{"class":595},[585,1076,1077,1079,1081,1083,1085,1087,1089,1091,1093,1095,1097],{"class":587,"line":756},[585,1078,831],{"class":698},[585,1080,776],{"class":595},[585,1082,711],{"class":599},[585,1084,762],{"class":595},[585,1086,840],{"class":656},[585,1088,660],{"class":698},[585,1090,784],{"class":595},[585,1092,847],{"class":612},[585,1094,784],{"class":595},[585,1096,674],{"class":698},[585,1098,854],{"class":595},[585,1100,1101,1104,1106,1108,1111,1113],{"class":587,"line":806},[585,1102,1103],{"class":698},"    prompt",[585,1105,776],{"class":595},[585,1107,609],{"class":595},[585,1109,1110],{"class":612},"Summarize this document",[585,1112,784],{"class":595},[585,1114,854],{"class":595},[585,1116,1117,1119],{"class":587,"line":811},[585,1118,908],{"class":595},[585,1120,703],{"class":698},[585,1122,1123],{"class":587,"line":828},[585,1124,644],{"emptyLinePlaceholder":643},[585,1126,1127,1129,1131,1133,1135,1137,1139,1141],{"class":587,"line":857},[585,1128,921],{"class":591},[585,1130,596],{"class":595},[585,1132,876],{"class":698},[585,1134,776],{"class":595},[585,1136,816],{"class":599},[585,1138,762],{"class":595},[585,1140,894],{"class":599},[585,1142,1143],{"class":595}," }\n",[585,1145,1146,1148],{"class":587,"line":865},[585,1147,937],{"class":595},[585,1149,703],{"class":599},[567,1151,1153],{"id":1152},"multi-step-agents","Multi-step Agents",[554,1155,1156],{},"The middleware fires for each step automatically. Steps, tool calls, and tokens are accumulated across the agent loop:",[575,1158,1161],{"className":577,"code":1159,"filename":1160,"language":580,"meta":581,"style":581},"import { ToolLoopAgent, createAgentUIStreamResponse, stepCountIs } from 'ai'\nimport { useLogger } from 'evlog'\nimport { createAILogger } from 'evlog\u002Fai'\n\nexport default defineEventHandler(async (event) => {\n  const log = useLogger(event)\n  const { messages } = await readBody(event)\n  const ai = createAILogger(log, {\n    toolInputs: { maxLength: 500 },\n  })\n\n  const agent = new ToolLoopAgent({\n    model: ai.wrap('anthropic\u002Fclaude-sonnet-4.6'),\n    tools: { searchWeb, queryDatabase },\n    stopWhen: stepCountIs(5),\n  })\n\n  return createAgentUIStreamResponse({\n    agent,\n    uiMessages: messages,\n  })\n})\n","server\u002Fapi\u002Fagent.post.ts",[558,1162,1163,1192,1211,1229,1233,1255,1271,1293,1311,1332,1338,1342,1360,1384,1403,1421,1427,1431,1441,1448,1459,1466],{"__ignoreMap":581},[585,1164,1165,1167,1169,1172,1174,1177,1179,1182,1184,1186,1188,1190],{"class":587,"line":588},[585,1166,592],{"class":591},[585,1168,596],{"class":595},[585,1170,1171],{"class":599}," ToolLoopAgent",[585,1173,787],{"class":595},[585,1175,1176],{"class":599}," createAgentUIStreamResponse",[585,1178,787],{"class":595},[585,1180,1181],{"class":599}," stepCountIs",[585,1183,603],{"class":595},[585,1185,606],{"class":591},[585,1187,609],{"class":595},[585,1189,613],{"class":612},[585,1191,616],{"class":595},[585,1193,1194,1196,1198,1200,1202,1204,1206,1209],{"class":587,"line":619},[585,1195,592],{"class":591},[585,1197,596],{"class":595},[585,1199,695],{"class":599},[585,1201,603],{"class":595},[585,1203,606],{"class":591},[585,1205,609],{"class":595},[585,1207,1208],{"class":612},"evlog",[585,1210,616],{"class":595},[585,1212,1213,1215,1217,1219,1221,1223,1225,1227],{"class":587,"line":640},[585,1214,592],{"class":591},[585,1216,596],{"class":595},[585,1218,626],{"class":599},[585,1220,603],{"class":595},[585,1222,606],{"class":591},[585,1224,609],{"class":595},[585,1226,635],{"class":612},[585,1228,616],{"class":595},[585,1230,1231],{"class":587,"line":647},[585,1232,644],{"emptyLinePlaceholder":643},[585,1234,1235,1237,1239,1241,1243,1245,1247,1249,1251,1253],{"class":587,"line":683},[585,1236,650],{"class":591},[585,1238,653],{"class":591},[585,1240,657],{"class":656},[585,1242,660],{"class":599},[585,1244,664],{"class":663},[585,1246,667],{"class":595},[585,1248,671],{"class":670},[585,1250,674],{"class":595},[585,1252,677],{"class":663},[585,1254,680],{"class":595},[585,1256,1257,1259,1261,1263,1265,1267,1269],{"class":587,"line":706},[585,1258,686],{"class":663},[585,1260,689],{"class":599},[585,1262,692],{"class":595},[585,1264,695],{"class":656},[585,1266,660],{"class":698},[585,1268,671],{"class":599},[585,1270,703],{"class":698},[585,1272,1273,1275,1277,1279,1281,1283,1285,1287,1289,1291],{"class":587,"line":725},[585,1274,686],{"class":663},[585,1276,596],{"class":595},[585,1278,732],{"class":599},[585,1280,603],{"class":595},[585,1282,692],{"class":595},[585,1284,739],{"class":591},[585,1286,742],{"class":656},[585,1288,660],{"class":698},[585,1290,671],{"class":599},[585,1292,703],{"class":698},[585,1294,1295,1297,1299,1301,1303,1305,1307,1309],{"class":587,"line":751},[585,1296,686],{"class":663},[585,1298,711],{"class":599},[585,1300,692],{"class":595},[585,1302,626],{"class":656},[585,1304,660],{"class":698},[585,1306,720],{"class":599},[585,1308,787],{"class":595},[585,1310,680],{"class":595},[585,1312,1313,1316,1318,1320,1323,1325,1329],{"class":587,"line":756},[585,1314,1315],{"class":698},"    toolInputs",[585,1317,776],{"class":595},[585,1319,596],{"class":595},[585,1321,1322],{"class":698}," maxLength",[585,1324,776],{"class":595},[585,1326,1328],{"class":1327},"sbssI"," 500",[585,1330,1331],{"class":595}," },\n",[585,1333,1334,1336],{"class":587,"line":806},[585,1335,908],{"class":595},[585,1337,703],{"class":698},[585,1339,1340],{"class":587,"line":811},[585,1341,644],{"emptyLinePlaceholder":643},[585,1343,1344,1346,1349,1351,1354,1356,1358],{"class":587,"line":828},[585,1345,686],{"class":663},[585,1347,1348],{"class":599}," agent",[585,1350,692],{"class":595},[585,1352,1353],{"class":595}," new",[585,1355,1171],{"class":656},[585,1357,660],{"class":698},[585,1359,825],{"class":595},[585,1361,1362,1364,1366,1368,1370,1372,1374,1376,1378,1380,1382],{"class":587,"line":857},[585,1363,831],{"class":698},[585,1365,776],{"class":595},[585,1367,711],{"class":599},[585,1369,762],{"class":595},[585,1371,840],{"class":656},[585,1373,660],{"class":698},[585,1375,784],{"class":595},[585,1377,847],{"class":612},[585,1379,784],{"class":595},[585,1381,674],{"class":698},[585,1383,854],{"class":595},[585,1385,1386,1389,1391,1393,1396,1398,1401],{"class":587,"line":865},[585,1387,1388],{"class":698},"    tools",[585,1390,776],{"class":595},[585,1392,596],{"class":595},[585,1394,1395],{"class":599}," searchWeb",[585,1397,787],{"class":595},[585,1399,1400],{"class":599}," queryDatabase",[585,1402,1331],{"class":595},[585,1404,1405,1408,1410,1412,1414,1417,1419],{"class":587,"line":886},[585,1406,1407],{"class":698},"    stopWhen",[585,1409,776],{"class":595},[585,1411,1181],{"class":656},[585,1413,660],{"class":698},[585,1415,1416],{"class":1327},"5",[585,1418,674],{"class":698},[585,1420,854],{"class":595},[585,1422,1423,1425],{"class":587,"line":899},[585,1424,908],{"class":595},[585,1426,703],{"class":698},[585,1428,1429],{"class":587,"line":905},[585,1430,644],{"emptyLinePlaceholder":643},[585,1432,1433,1435,1437,1439],{"class":587,"line":913},[585,1434,921],{"class":591},[585,1436,1176],{"class":656},[585,1438,660],{"class":698},[585,1440,825],{"class":595},[585,1442,1443,1446],{"class":587,"line":918},[585,1444,1445],{"class":599},"    agent",[585,1447,854],{"class":595},[585,1449,1450,1453,1455,1457],{"class":587,"line":934},[585,1451,1452],{"class":698},"    uiMessages",[585,1454,776],{"class":595},[585,1456,732],{"class":599},[585,1458,854],{"class":595},[585,1460,1462,1464],{"class":587,"line":1461},21,[585,1463,908],{"class":595},[585,1465,703],{"class":698},[585,1467,1469,1471],{"class":587,"line":1468},22,[585,1470,937],{"class":595},[585,1472,703],{"class":599},[554,1474,1475],{},"Wide event after a 3-step agent run:",[575,1477,1482],{"className":1478,"code":1479,"filename":1480,"language":1481,"meta":581,"style":581},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"ai\": {\n    \"calls\": 3,\n    \"steps\": 3,\n    \"model\": \"claude-sonnet-4.6\",\n    \"provider\": \"anthropic\",\n    \"inputTokens\": 4500,\n    \"outputTokens\": 1200,\n    \"totalTokens\": 5700,\n    \"finishReason\": \"stop\",\n    \"toolCalls\": [\n      { \"name\": \"searchWeb\", \"input\": { \"query\": \"TypeScript 6.0 features\" } },\n      { \"name\": \"queryDatabase\", \"input\": { \"sql\": \"SELECT * FROM docs WHERE topic = 'typescript'\" } },\n      { \"name\": \"searchWeb\", \"input\": { \"query\": \"TypeScript 6.0 release date\" } }\n    ],\n    \"responseId\": \"msg_01XFDUDYJgAACzvnptvVoYEL\",\n    \"stepsUsage\": [\n      { \"model\": \"claude-sonnet-4.6\", \"inputTokens\": 1200, \"outputTokens\": 300, \"toolCalls\": [\"searchWeb\"] },\n      { \"model\": \"claude-sonnet-4.6\", \"inputTokens\": 1500, \"outputTokens\": 400, \"toolCalls\": [\"queryDatabase\", \"searchWeb\"] },\n      { \"model\": \"claude-sonnet-4.6\", \"inputTokens\": 1800, \"outputTokens\": 500 }\n    ],\n    \"msToFirstChunk\": 312,\n    \"msToFinish\": 8200,\n    \"tokensPerSecond\": 146\n  }\n}\n","Wide Event","json",[558,1483,1484,1488,1502,1520,1535,1556,1576,1592,1608,1624,1644,1658,1712,1763,1812,1817,1837,1850,1917,1991,2036,2040,2056,2073,2088,2094],{"__ignoreMap":581},[585,1485,1486],{"class":587,"line":588},[585,1487,825],{"class":595},[585,1489,1490,1493,1495,1498,1500],{"class":587,"line":619},[585,1491,1492],{"class":595},"  \"",[585,1494,613],{"class":663},[585,1496,1497],{"class":595},"\"",[585,1499,776],{"class":595},[585,1501,680],{"class":595},[585,1503,1504,1507,1511,1513,1515,1518],{"class":587,"line":640},[585,1505,1506],{"class":595},"    \"",[585,1508,1510],{"class":1509},"sBMFI","calls",[585,1512,1497],{"class":595},[585,1514,776],{"class":595},[585,1516,1517],{"class":1327}," 3",[585,1519,854],{"class":595},[585,1521,1522,1524,1527,1529,1531,1533],{"class":587,"line":647},[585,1523,1506],{"class":595},[585,1525,1526],{"class":1509},"steps",[585,1528,1497],{"class":595},[585,1530,776],{"class":595},[585,1532,1517],{"class":1327},[585,1534,854],{"class":595},[585,1536,1537,1539,1542,1544,1546,1549,1552,1554],{"class":587,"line":683},[585,1538,1506],{"class":595},[585,1540,1541],{"class":1509},"model",[585,1543,1497],{"class":595},[585,1545,776],{"class":595},[585,1547,1548],{"class":595}," \"",[585,1550,1551],{"class":612},"claude-sonnet-4.6",[585,1553,1497],{"class":595},[585,1555,854],{"class":595},[585,1557,1558,1560,1563,1565,1567,1569,1572,1574],{"class":587,"line":706},[585,1559,1506],{"class":595},[585,1561,1562],{"class":1509},"provider",[585,1564,1497],{"class":595},[585,1566,776],{"class":595},[585,1568,1548],{"class":595},[585,1570,1571],{"class":612},"anthropic",[585,1573,1497],{"class":595},[585,1575,854],{"class":595},[585,1577,1578,1580,1583,1585,1587,1590],{"class":587,"line":725},[585,1579,1506],{"class":595},[585,1581,1582],{"class":1509},"inputTokens",[585,1584,1497],{"class":595},[585,1586,776],{"class":595},[585,1588,1589],{"class":1327}," 4500",[585,1591,854],{"class":595},[585,1593,1594,1596,1599,1601,1603,1606],{"class":587,"line":751},[585,1595,1506],{"class":595},[585,1597,1598],{"class":1509},"outputTokens",[585,1600,1497],{"class":595},[585,1602,776],{"class":595},[585,1604,1605],{"class":1327}," 1200",[585,1607,854],{"class":595},[585,1609,1610,1612,1615,1617,1619,1622],{"class":587,"line":756},[585,1611,1506],{"class":595},[585,1613,1614],{"class":1509},"totalTokens",[585,1616,1497],{"class":595},[585,1618,776],{"class":595},[585,1620,1621],{"class":1327}," 5700",[585,1623,854],{"class":595},[585,1625,1626,1628,1631,1633,1635,1637,1640,1642],{"class":587,"line":806},[585,1627,1506],{"class":595},[585,1629,1630],{"class":1509},"finishReason",[585,1632,1497],{"class":595},[585,1634,776],{"class":595},[585,1636,1548],{"class":595},[585,1638,1639],{"class":612},"stop",[585,1641,1497],{"class":595},[585,1643,854],{"class":595},[585,1645,1646,1648,1651,1653,1655],{"class":587,"line":811},[585,1647,1506],{"class":595},[585,1649,1650],{"class":1509},"toolCalls",[585,1652,1497],{"class":595},[585,1654,776],{"class":595},[585,1656,1657],{"class":595}," [\n",[585,1659,1660,1663,1665,1668,1670,1672,1674,1677,1679,1681,1683,1686,1688,1690,1692,1694,1697,1699,1701,1703,1706,1708,1710],{"class":587,"line":828},[585,1661,1662],{"class":595},"      {",[585,1664,1548],{"class":595},[585,1666,1667],{"class":1327},"name",[585,1669,1497],{"class":595},[585,1671,776],{"class":595},[585,1673,1548],{"class":595},[585,1675,1676],{"class":612},"searchWeb",[585,1678,1497],{"class":595},[585,1680,787],{"class":595},[585,1682,1548],{"class":595},[585,1684,1685],{"class":1327},"input",[585,1687,1497],{"class":595},[585,1689,776],{"class":595},[585,1691,596],{"class":595},[585,1693,1548],{"class":595},[585,1695,1696],{"class":698},"query",[585,1698,1497],{"class":595},[585,1700,776],{"class":595},[585,1702,1548],{"class":595},[585,1704,1705],{"class":612},"TypeScript 6.0 features",[585,1707,1497],{"class":595},[585,1709,603],{"class":595},[585,1711,1331],{"class":595},[585,1713,1714,1716,1718,1720,1722,1724,1726,1729,1731,1733,1735,1737,1739,1741,1743,1745,1748,1750,1752,1754,1757,1759,1761],{"class":587,"line":857},[585,1715,1662],{"class":595},[585,1717,1548],{"class":595},[585,1719,1667],{"class":1327},[585,1721,1497],{"class":595},[585,1723,776],{"class":595},[585,1725,1548],{"class":595},[585,1727,1728],{"class":612},"queryDatabase",[585,1730,1497],{"class":595},[585,1732,787],{"class":595},[585,1734,1548],{"class":595},[585,1736,1685],{"class":1327},[585,1738,1497],{"class":595},[585,1740,776],{"class":595},[585,1742,596],{"class":595},[585,1744,1548],{"class":595},[585,1746,1747],{"class":698},"sql",[585,1749,1497],{"class":595},[585,1751,776],{"class":595},[585,1753,1548],{"class":595},[585,1755,1756],{"class":612},"SELECT * FROM docs WHERE topic = 'typescript'",[585,1758,1497],{"class":595},[585,1760,603],{"class":595},[585,1762,1331],{"class":595},[585,1764,1765,1767,1769,1771,1773,1775,1777,1779,1781,1783,1785,1787,1789,1791,1793,1795,1797,1799,1801,1803,1806,1808,1810],{"class":587,"line":865},[585,1766,1662],{"class":595},[585,1768,1548],{"class":595},[585,1770,1667],{"class":1327},[585,1772,1497],{"class":595},[585,1774,776],{"class":595},[585,1776,1548],{"class":595},[585,1778,1676],{"class":612},[585,1780,1497],{"class":595},[585,1782,787],{"class":595},[585,1784,1548],{"class":595},[585,1786,1685],{"class":1327},[585,1788,1497],{"class":595},[585,1790,776],{"class":595},[585,1792,596],{"class":595},[585,1794,1548],{"class":595},[585,1796,1696],{"class":698},[585,1798,1497],{"class":595},[585,1800,776],{"class":595},[585,1802,1548],{"class":595},[585,1804,1805],{"class":612},"TypeScript 6.0 release date",[585,1807,1497],{"class":595},[585,1809,603],{"class":595},[585,1811,1143],{"class":595},[585,1813,1814],{"class":587,"line":886},[585,1815,1816],{"class":595},"    ],\n",[585,1818,1819,1821,1824,1826,1828,1830,1833,1835],{"class":587,"line":899},[585,1820,1506],{"class":595},[585,1822,1823],{"class":1509},"responseId",[585,1825,1497],{"class":595},[585,1827,776],{"class":595},[585,1829,1548],{"class":595},[585,1831,1832],{"class":612},"msg_01XFDUDYJgAACzvnptvVoYEL",[585,1834,1497],{"class":595},[585,1836,854],{"class":595},[585,1838,1839,1841,1844,1846,1848],{"class":587,"line":905},[585,1840,1506],{"class":595},[585,1842,1843],{"class":1509},"stepsUsage",[585,1845,1497],{"class":595},[585,1847,776],{"class":595},[585,1849,1657],{"class":595},[585,1851,1852,1854,1856,1858,1860,1862,1864,1866,1868,1870,1872,1874,1876,1878,1880,1882,1884,1886,1888,1890,1893,1895,1897,1899,1901,1903,1906,1908,1910,1912,1915],{"class":587,"line":913},[585,1853,1662],{"class":595},[585,1855,1548],{"class":595},[585,1857,1541],{"class":1327},[585,1859,1497],{"class":595},[585,1861,776],{"class":595},[585,1863,1548],{"class":595},[585,1865,1551],{"class":612},[585,1867,1497],{"class":595},[585,1869,787],{"class":595},[585,1871,1548],{"class":595},[585,1873,1582],{"class":1327},[585,1875,1497],{"class":595},[585,1877,776],{"class":595},[585,1879,1605],{"class":1327},[585,1881,787],{"class":595},[585,1883,1548],{"class":595},[585,1885,1598],{"class":1327},[585,1887,1497],{"class":595},[585,1889,776],{"class":595},[585,1891,1892],{"class":1327}," 300",[585,1894,787],{"class":595},[585,1896,1548],{"class":595},[585,1898,1650],{"class":1327},[585,1900,1497],{"class":595},[585,1902,776],{"class":595},[585,1904,1905],{"class":595}," [",[585,1907,1497],{"class":595},[585,1909,1676],{"class":612},[585,1911,1497],{"class":595},[585,1913,1914],{"class":595},"]",[585,1916,1331],{"class":595},[585,1918,1919,1921,1923,1925,1927,1929,1931,1933,1935,1937,1939,1941,1943,1945,1948,1950,1952,1954,1956,1958,1961,1963,1965,1967,1969,1971,1973,1975,1977,1979,1981,1983,1985,1987,1989],{"class":587,"line":918},[585,1920,1662],{"class":595},[585,1922,1548],{"class":595},[585,1924,1541],{"class":1327},[585,1926,1497],{"class":595},[585,1928,776],{"class":595},[585,1930,1548],{"class":595},[585,1932,1551],{"class":612},[585,1934,1497],{"class":595},[585,1936,787],{"class":595},[585,1938,1548],{"class":595},[585,1940,1582],{"class":1327},[585,1942,1497],{"class":595},[585,1944,776],{"class":595},[585,1946,1947],{"class":1327}," 1500",[585,1949,787],{"class":595},[585,1951,1548],{"class":595},[585,1953,1598],{"class":1327},[585,1955,1497],{"class":595},[585,1957,776],{"class":595},[585,1959,1960],{"class":1327}," 400",[585,1962,787],{"class":595},[585,1964,1548],{"class":595},[585,1966,1650],{"class":1327},[585,1968,1497],{"class":595},[585,1970,776],{"class":595},[585,1972,1905],{"class":595},[585,1974,1497],{"class":595},[585,1976,1728],{"class":612},[585,1978,1497],{"class":595},[585,1980,787],{"class":595},[585,1982,1548],{"class":595},[585,1984,1676],{"class":612},[585,1986,1497],{"class":595},[585,1988,1914],{"class":595},[585,1990,1331],{"class":595},[585,1992,1993,1995,1997,1999,2001,2003,2005,2007,2009,2011,2013,2015,2017,2019,2022,2024,2026,2028,2030,2032,2034],{"class":587,"line":934},[585,1994,1662],{"class":595},[585,1996,1548],{"class":595},[585,1998,1541],{"class":1327},[585,2000,1497],{"class":595},[585,2002,776],{"class":595},[585,2004,1548],{"class":595},[585,2006,1551],{"class":612},[585,2008,1497],{"class":595},[585,2010,787],{"class":595},[585,2012,1548],{"class":595},[585,2014,1582],{"class":1327},[585,2016,1497],{"class":595},[585,2018,776],{"class":595},[585,2020,2021],{"class":1327}," 1800",[585,2023,787],{"class":595},[585,2025,1548],{"class":595},[585,2027,1598],{"class":1327},[585,2029,1497],{"class":595},[585,2031,776],{"class":595},[585,2033,1328],{"class":1327},[585,2035,1143],{"class":595},[585,2037,2038],{"class":587,"line":1461},[585,2039,1816],{"class":595},[585,2041,2042,2044,2047,2049,2051,2054],{"class":587,"line":1468},[585,2043,1506],{"class":595},[585,2045,2046],{"class":1509},"msToFirstChunk",[585,2048,1497],{"class":595},[585,2050,776],{"class":595},[585,2052,2053],{"class":1327}," 312",[585,2055,854],{"class":595},[585,2057,2059,2061,2064,2066,2068,2071],{"class":587,"line":2058},23,[585,2060,1506],{"class":595},[585,2062,2063],{"class":1509},"msToFinish",[585,2065,1497],{"class":595},[585,2067,776],{"class":595},[585,2069,2070],{"class":1327}," 8200",[585,2072,854],{"class":595},[585,2074,2076,2078,2081,2083,2085],{"class":587,"line":2075},24,[585,2077,1506],{"class":595},[585,2079,2080],{"class":1509},"tokensPerSecond",[585,2082,1497],{"class":595},[585,2084,776],{"class":595},[585,2086,2087],{"class":1327}," 146\n",[585,2089,2091],{"class":587,"line":2090},25,[585,2092,2093],{"class":595},"  }\n",[585,2095,2097],{"class":587,"line":2096},26,[585,2098,2099],{"class":595},"}\n",[2101,2102,2103,2104,2110],"tip",{},"Pair this with ",[2105,2106,2107],"a",{"href":96},[558,2108,2109],{},"createEvlogIntegration"," to also capture per-tool execution timing and the agent's total wall time.",[567,2112,2114],{"id":2113},"rag-embed-generate","RAG (embed + generate)",[554,2116,2117,2118,2121],{},"Embedding models use a different type that cannot be wrapped with middleware. Use ",[558,2119,2120],{},"captureEmbed"," instead:",[575,2123,2126],{"className":577,"code":2124,"filename":2125,"language":580,"meta":581,"style":581},"import { embed, generateText } from 'ai'\nimport { useLogger } from 'evlog'\nimport { createAILogger } from 'evlog\u002Fai'\n\nexport default defineEventHandler(async (event) => {\n  const log = useLogger(event)\n  const ai = createAILogger(log)\n\n  const { embedding, usage } = await embed({\n    model: openai.embedding('text-embedding-3-small'),\n    value: query,\n  })\n  ai.captureEmbed({\n    usage,\n    model: 'text-embedding-3-small',\n    dimensions: 1536,\n  })\n\n  const docs = await findSimilar(embedding)\n\n  const result = await generateText({\n    model: ai.wrap('anthropic\u002Fclaude-sonnet-4.6'),\n    prompt: buildPrompt(docs),\n  })\n\n  return { text: result.text }\n})\n","server\u002Fapi\u002Frag.post.ts",[558,2127,2128,2151,2169,2187,2191,2213,2229,2245,2249,2275,2302,2314,2320,2333,2340,2354,2366,2372,2376,2396,2400,2416,2440,2458,2464,2468,2486],{"__ignoreMap":581},[585,2129,2130,2132,2134,2137,2139,2141,2143,2145,2147,2149],{"class":587,"line":588},[585,2131,592],{"class":591},[585,2133,596],{"class":595},[585,2135,2136],{"class":599}," embed",[585,2138,787],{"class":595},[585,2140,968],{"class":599},[585,2142,603],{"class":595},[585,2144,606],{"class":591},[585,2146,609],{"class":595},[585,2148,613],{"class":612},[585,2150,616],{"class":595},[585,2152,2153,2155,2157,2159,2161,2163,2165,2167],{"class":587,"line":619},[585,2154,592],{"class":591},[585,2156,596],{"class":595},[585,2158,695],{"class":599},[585,2160,603],{"class":595},[585,2162,606],{"class":591},[585,2164,609],{"class":595},[585,2166,1208],{"class":612},[585,2168,616],{"class":595},[585,2170,2171,2173,2175,2177,2179,2181,2183,2185],{"class":587,"line":640},[585,2172,592],{"class":591},[585,2174,596],{"class":595},[585,2176,626],{"class":599},[585,2178,603],{"class":595},[585,2180,606],{"class":591},[585,2182,609],{"class":595},[585,2184,635],{"class":612},[585,2186,616],{"class":595},[585,2188,2189],{"class":587,"line":647},[585,2190,644],{"emptyLinePlaceholder":643},[585,2192,2193,2195,2197,2199,2201,2203,2205,2207,2209,2211],{"class":587,"line":683},[585,2194,650],{"class":591},[585,2196,653],{"class":591},[585,2198,657],{"class":656},[585,2200,660],{"class":599},[585,2202,664],{"class":663},[585,2204,667],{"class":595},[585,2206,671],{"class":670},[585,2208,674],{"class":595},[585,2210,677],{"class":663},[585,2212,680],{"class":595},[585,2214,2215,2217,2219,2221,2223,2225,2227],{"class":587,"line":706},[585,2216,686],{"class":663},[585,2218,689],{"class":599},[585,2220,692],{"class":595},[585,2222,695],{"class":656},[585,2224,660],{"class":698},[585,2226,671],{"class":599},[585,2228,703],{"class":698},[585,2230,2231,2233,2235,2237,2239,2241,2243],{"class":587,"line":725},[585,2232,686],{"class":663},[585,2234,711],{"class":599},[585,2236,692],{"class":595},[585,2238,626],{"class":656},[585,2240,660],{"class":698},[585,2242,720],{"class":599},[585,2244,703],{"class":698},[585,2246,2247],{"class":587,"line":751},[585,2248,644],{"emptyLinePlaceholder":643},[585,2250,2251,2253,2255,2258,2260,2263,2265,2267,2269,2271,2273],{"class":587,"line":756},[585,2252,686],{"class":663},[585,2254,596],{"class":595},[585,2256,2257],{"class":599}," embedding",[585,2259,787],{"class":595},[585,2261,2262],{"class":599}," usage",[585,2264,603],{"class":595},[585,2266,692],{"class":595},[585,2268,739],{"class":591},[585,2270,2136],{"class":656},[585,2272,660],{"class":698},[585,2274,825],{"class":595},[585,2276,2277,2279,2281,2284,2286,2289,2291,2293,2296,2298,2300],{"class":587,"line":806},[585,2278,831],{"class":698},[585,2280,776],{"class":595},[585,2282,2283],{"class":599}," openai",[585,2285,762],{"class":595},[585,2287,2288],{"class":656},"embedding",[585,2290,660],{"class":698},[585,2292,784],{"class":595},[585,2294,2295],{"class":612},"text-embedding-3-small",[585,2297,784],{"class":595},[585,2299,674],{"class":698},[585,2301,854],{"class":595},[585,2303,2304,2307,2309,2312],{"class":587,"line":811},[585,2305,2306],{"class":698},"    value",[585,2308,776],{"class":595},[585,2310,2311],{"class":599}," query",[585,2313,854],{"class":595},[585,2315,2316,2318],{"class":587,"line":828},[585,2317,908],{"class":595},[585,2319,703],{"class":698},[585,2321,2322,2325,2327,2329,2331],{"class":587,"line":857},[585,2323,2324],{"class":599},"  ai",[585,2326,762],{"class":595},[585,2328,2120],{"class":656},[585,2330,660],{"class":698},[585,2332,825],{"class":595},[585,2334,2335,2338],{"class":587,"line":865},[585,2336,2337],{"class":599},"    usage",[585,2339,854],{"class":595},[585,2341,2342,2344,2346,2348,2350,2352],{"class":587,"line":886},[585,2343,831],{"class":698},[585,2345,776],{"class":595},[585,2347,609],{"class":595},[585,2349,2295],{"class":612},[585,2351,784],{"class":595},[585,2353,854],{"class":595},[585,2355,2356,2359,2361,2364],{"class":587,"line":899},[585,2357,2358],{"class":698},"    dimensions",[585,2360,776],{"class":595},[585,2362,2363],{"class":1327}," 1536",[585,2365,854],{"class":595},[585,2367,2368,2370],{"class":587,"line":905},[585,2369,908],{"class":595},[585,2371,703],{"class":698},[585,2373,2374],{"class":587,"line":913},[585,2375,644],{"emptyLinePlaceholder":643},[585,2377,2378,2380,2383,2385,2387,2390,2392,2394],{"class":587,"line":918},[585,2379,686],{"class":663},[585,2381,2382],{"class":599}," docs",[585,2384,692],{"class":595},[585,2386,739],{"class":591},[585,2388,2389],{"class":656}," findSimilar",[585,2391,660],{"class":698},[585,2393,2288],{"class":599},[585,2395,703],{"class":698},[585,2397,2398],{"class":587,"line":934},[585,2399,644],{"emptyLinePlaceholder":643},[585,2401,2402,2404,2406,2408,2410,2412,2414],{"class":587,"line":1461},[585,2403,686],{"class":663},[585,2405,816],{"class":599},[585,2407,692],{"class":595},[585,2409,739],{"class":591},[585,2411,968],{"class":656},[585,2413,660],{"class":698},[585,2415,825],{"class":595},[585,2417,2418,2420,2422,2424,2426,2428,2430,2432,2434,2436,2438],{"class":587,"line":1468},[585,2419,831],{"class":698},[585,2421,776],{"class":595},[585,2423,711],{"class":599},[585,2425,762],{"class":595},[585,2427,840],{"class":656},[585,2429,660],{"class":698},[585,2431,784],{"class":595},[585,2433,847],{"class":612},[585,2435,784],{"class":595},[585,2437,674],{"class":698},[585,2439,854],{"class":595},[585,2441,2442,2444,2446,2449,2451,2454,2456],{"class":587,"line":2058},[585,2443,1103],{"class":698},[585,2445,776],{"class":595},[585,2447,2448],{"class":656}," buildPrompt",[585,2450,660],{"class":698},[585,2452,2453],{"class":599},"docs",[585,2455,674],{"class":698},[585,2457,854],{"class":595},[585,2459,2460,2462],{"class":587,"line":2075},[585,2461,908],{"class":595},[585,2463,703],{"class":698},[585,2465,2466],{"class":587,"line":2090},[585,2467,644],{"emptyLinePlaceholder":643},[585,2469,2470,2472,2474,2476,2478,2480,2482,2484],{"class":587,"line":2096},[585,2471,921],{"class":591},[585,2473,596],{"class":595},[585,2475,876],{"class":698},[585,2477,776],{"class":595},[585,2479,816],{"class":599},[585,2481,762],{"class":595},[585,2483,894],{"class":599},[585,2485,1143],{"class":595},[585,2487,2489,2491],{"class":587,"line":2488},27,[585,2490,937],{"class":595},[585,2492,703],{"class":599},[554,2494,2495,2496,2499],{},"For ",[558,2497,2498],{},"embedMany",", pass the batch count:",[575,2501,2503],{"className":577,"code":2502,"language":580,"meta":581,"style":581},"const { embeddings, usage } = await embedMany({\n  model: openai.embedding('text-embedding-3-small'),\n  values: documents,\n})\nai.captureEmbed({ usage, model: 'text-embedding-3-small', count: documents.length })\n",[558,2504,2505,2533,2558,2570,2576],{"__ignoreMap":581},[585,2506,2507,2510,2512,2515,2517,2520,2522,2524,2526,2529,2531],{"class":587,"line":588},[585,2508,2509],{"class":663},"const",[585,2511,596],{"class":595},[585,2513,2514],{"class":599}," embeddings",[585,2516,787],{"class":595},[585,2518,2519],{"class":599}," usage ",[585,2521,937],{"class":595},[585,2523,692],{"class":595},[585,2525,739],{"class":591},[585,2527,2528],{"class":656}," embedMany",[585,2530,660],{"class":599},[585,2532,825],{"class":595},[585,2534,2535,2538,2540,2542,2544,2546,2548,2550,2552,2554,2556],{"class":587,"line":619},[585,2536,2537],{"class":698},"  model",[585,2539,776],{"class":595},[585,2541,2283],{"class":599},[585,2543,762],{"class":595},[585,2545,2288],{"class":656},[585,2547,660],{"class":599},[585,2549,784],{"class":595},[585,2551,2295],{"class":612},[585,2553,784],{"class":595},[585,2555,674],{"class":599},[585,2557,854],{"class":595},[585,2559,2560,2563,2565,2568],{"class":587,"line":640},[585,2561,2562],{"class":698},"  values",[585,2564,776],{"class":595},[585,2566,2567],{"class":599}," documents",[585,2569,854],{"class":595},[585,2571,2572,2574],{"class":587,"line":647},[585,2573,937],{"class":595},[585,2575,703],{"class":599},[585,2577,2578,2580,2582,2584,2586,2588,2590,2592,2595,2597,2599,2601,2603,2605,2608,2610,2612,2614,2617,2619],{"class":587,"line":683},[585,2579,613],{"class":599},[585,2581,762],{"class":595},[585,2583,2120],{"class":656},[585,2585,660],{"class":599},[585,2587,770],{"class":595},[585,2589,2262],{"class":599},[585,2591,787],{"class":595},[585,2593,2594],{"class":698}," model",[585,2596,776],{"class":595},[585,2598,609],{"class":595},[585,2600,2295],{"class":612},[585,2602,784],{"class":595},[585,2604,787],{"class":595},[585,2606,2607],{"class":698}," count",[585,2609,776],{"class":595},[585,2611,2567],{"class":599},[585,2613,762],{"class":595},[585,2615,2616],{"class":599},"length ",[585,2618,937],{"class":595},[585,2620,703],{"class":599},[567,2622,2624],{"id":2623},"multiple-models","Multiple Models",[554,2626,2627,2628,2630,2631,2634],{},"Wrap each model separately — they share the same accumulator. When more than one model is used, the wide event includes both ",[558,2629,1541],{}," (last model) and ",[558,2632,2633],{},"models"," (all unique models):",[2636,2637,2638,2792],"code-group",{},[575,2639,2641],{"className":577,"code":2640,"filename":579,"language":580,"meta":581,"style":581},"const ai = createAILogger(log)\n\nconst fast = ai.wrap('anthropic\u002Fclaude-haiku-4.5')\nconst smart = ai.wrap('anthropic\u002Fclaude-sonnet-4.6')\n\nconst classification = await generateText({ model: fast, prompt: classifyPrompt })\nconst response = await generateText({ model: smart, prompt: detailedPrompt })\n",[558,2642,2643,2658,2662,2688,2713,2717,2755],{"__ignoreMap":581},[585,2644,2645,2647,2650,2653,2655],{"class":587,"line":588},[585,2646,2509],{"class":663},[585,2648,2649],{"class":599}," ai ",[585,2651,2652],{"class":595},"=",[585,2654,626],{"class":656},[585,2656,2657],{"class":599},"(log)\n",[585,2659,2660],{"class":587,"line":619},[585,2661,644],{"emptyLinePlaceholder":643},[585,2663,2664,2666,2669,2671,2673,2675,2677,2679,2681,2684,2686],{"class":587,"line":640},[585,2665,2509],{"class":663},[585,2667,2668],{"class":599}," fast ",[585,2670,2652],{"class":595},[585,2672,711],{"class":599},[585,2674,762],{"class":595},[585,2676,840],{"class":656},[585,2678,660],{"class":599},[585,2680,784],{"class":595},[585,2682,2683],{"class":612},"anthropic\u002Fclaude-haiku-4.5",[585,2685,784],{"class":595},[585,2687,703],{"class":599},[585,2689,2690,2692,2695,2697,2699,2701,2703,2705,2707,2709,2711],{"class":587,"line":647},[585,2691,2509],{"class":663},[585,2693,2694],{"class":599}," smart ",[585,2696,2652],{"class":595},[585,2698,711],{"class":599},[585,2700,762],{"class":595},[585,2702,840],{"class":656},[585,2704,660],{"class":599},[585,2706,784],{"class":595},[585,2708,847],{"class":612},[585,2710,784],{"class":595},[585,2712,703],{"class":599},[585,2714,2715],{"class":587,"line":683},[585,2716,644],{"emptyLinePlaceholder":643},[585,2718,2719,2721,2724,2726,2728,2730,2732,2734,2736,2738,2741,2743,2746,2748,2751,2753],{"class":587,"line":706},[585,2720,2509],{"class":663},[585,2722,2723],{"class":599}," classification ",[585,2725,2652],{"class":595},[585,2727,739],{"class":591},[585,2729,968],{"class":656},[585,2731,660],{"class":599},[585,2733,770],{"class":595},[585,2735,2594],{"class":698},[585,2737,776],{"class":595},[585,2739,2740],{"class":599}," fast",[585,2742,787],{"class":595},[585,2744,2745],{"class":698}," prompt",[585,2747,776],{"class":595},[585,2749,2750],{"class":599}," classifyPrompt ",[585,2752,937],{"class":595},[585,2754,703],{"class":599},[585,2756,2757,2759,2762,2764,2766,2768,2770,2772,2774,2776,2779,2781,2783,2785,2788,2790],{"class":587,"line":725},[585,2758,2509],{"class":663},[585,2760,2761],{"class":599}," response ",[585,2763,2652],{"class":595},[585,2765,739],{"class":591},[585,2767,968],{"class":656},[585,2769,660],{"class":599},[585,2771,770],{"class":595},[585,2773,2594],{"class":698},[585,2775,776],{"class":595},[585,2777,2778],{"class":599}," smart",[585,2780,787],{"class":595},[585,2782,2745],{"class":698},[585,2784,776],{"class":595},[585,2786,2787],{"class":599}," detailedPrompt ",[585,2789,937],{"class":595},[585,2791,703],{"class":599},[575,2793,2795],{"className":1478,"code":2794,"filename":1480,"language":1481,"meta":581,"style":581},"{\n  \"ai\": {\n    \"calls\": 2,\n    \"model\": \"claude-sonnet-4.6\",\n    \"models\": [\"claude-haiku-4.5\", \"claude-sonnet-4.6\"],\n    \"provider\": \"anthropic\",\n    \"inputTokens\": 450,\n    \"outputTokens\": 300,\n    \"totalTokens\": 750\n  }\n}\n",[558,2796,2797,2801,2813,2828,2846,2876,2894,2909,2923,2936,2940],{"__ignoreMap":581},[585,2798,2799],{"class":587,"line":588},[585,2800,825],{"class":595},[585,2802,2803,2805,2807,2809,2811],{"class":587,"line":619},[585,2804,1492],{"class":595},[585,2806,613],{"class":663},[585,2808,1497],{"class":595},[585,2810,776],{"class":595},[585,2812,680],{"class":595},[585,2814,2815,2817,2819,2821,2823,2826],{"class":587,"line":640},[585,2816,1506],{"class":595},[585,2818,1510],{"class":1509},[585,2820,1497],{"class":595},[585,2822,776],{"class":595},[585,2824,2825],{"class":1327}," 2",[585,2827,854],{"class":595},[585,2829,2830,2832,2834,2836,2838,2840,2842,2844],{"class":587,"line":647},[585,2831,1506],{"class":595},[585,2833,1541],{"class":1509},[585,2835,1497],{"class":595},[585,2837,776],{"class":595},[585,2839,1548],{"class":595},[585,2841,1551],{"class":612},[585,2843,1497],{"class":595},[585,2845,854],{"class":595},[585,2847,2848,2850,2852,2854,2856,2858,2860,2863,2865,2867,2869,2871,2873],{"class":587,"line":683},[585,2849,1506],{"class":595},[585,2851,2633],{"class":1509},[585,2853,1497],{"class":595},[585,2855,776],{"class":595},[585,2857,1905],{"class":595},[585,2859,1497],{"class":595},[585,2861,2862],{"class":612},"claude-haiku-4.5",[585,2864,1497],{"class":595},[585,2866,787],{"class":595},[585,2868,1548],{"class":595},[585,2870,1551],{"class":612},[585,2872,1497],{"class":595},[585,2874,2875],{"class":595},"],\n",[585,2877,2878,2880,2882,2884,2886,2888,2890,2892],{"class":587,"line":706},[585,2879,1506],{"class":595},[585,2881,1562],{"class":1509},[585,2883,1497],{"class":595},[585,2885,776],{"class":595},[585,2887,1548],{"class":595},[585,2889,1571],{"class":612},[585,2891,1497],{"class":595},[585,2893,854],{"class":595},[585,2895,2896,2898,2900,2902,2904,2907],{"class":587,"line":725},[585,2897,1506],{"class":595},[585,2899,1582],{"class":1509},[585,2901,1497],{"class":595},[585,2903,776],{"class":595},[585,2905,2906],{"class":1327}," 450",[585,2908,854],{"class":595},[585,2910,2911,2913,2915,2917,2919,2921],{"class":587,"line":751},[585,2912,1506],{"class":595},[585,2914,1598],{"class":1509},[585,2916,1497],{"class":595},[585,2918,776],{"class":595},[585,2920,1892],{"class":1327},[585,2922,854],{"class":595},[585,2924,2925,2927,2929,2931,2933],{"class":587,"line":756},[585,2926,1506],{"class":595},[585,2928,1614],{"class":1509},[585,2930,1497],{"class":595},[585,2932,776],{"class":595},[585,2934,2935],{"class":1327}," 750\n",[585,2937,2938],{"class":587,"line":806},[585,2939,2093],{"class":595},[585,2941,2942],{"class":587,"line":811},[585,2943,2099],{"class":595},[567,2945,2947],{"id":2946},"model-object-support","Model Object Support",[554,2949,2950,2953],{},[558,2951,2952],{},"wrap()"," also accepts model objects from provider SDKs if you prefer explicit imports:",[575,2955,2957],{"className":577,"code":2956,"filename":579,"language":580,"meta":581,"style":581},"import { anthropic } from '@ai-sdk\u002Fanthropic'\n\nconst model = ai.wrap(anthropic('claude-sonnet-4.6'))\n",[558,2958,2959,2979,2983],{"__ignoreMap":581},[585,2960,2961,2963,2965,2968,2970,2972,2974,2977],{"class":587,"line":588},[585,2962,592],{"class":591},[585,2964,596],{"class":595},[585,2966,2967],{"class":599}," anthropic",[585,2969,603],{"class":595},[585,2971,606],{"class":591},[585,2973,609],{"class":595},[585,2975,2976],{"class":612},"@ai-sdk\u002Fanthropic",[585,2978,616],{"class":595},[585,2980,2981],{"class":587,"line":619},[585,2982,644],{"emptyLinePlaceholder":643},[585,2984,2985,2987,2990,2992,2994,2996,2998,3000,3002,3004,3006,3008,3010],{"class":587,"line":640},[585,2986,2509],{"class":663},[585,2988,2989],{"class":599}," model ",[585,2991,2652],{"class":595},[585,2993,711],{"class":599},[585,2995,762],{"class":595},[585,2997,840],{"class":656},[585,2999,660],{"class":599},[585,3001,1571],{"class":656},[585,3003,660],{"class":599},[585,3005,784],{"class":595},[585,3007,1551],{"class":612},[585,3009,784],{"class":595},[585,3011,3012],{"class":599},"))\n",[3014,3015,3016],"style",{},"html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}",{"title":581,"searchDepth":619,"depth":619,"links":3018},[3019,3020,3021,3022,3023,3024],{"id":569,"depth":619,"text":570},{"id":949,"depth":619,"text":950},{"id":1152,"depth":619,"text":1153},{"id":2113,"depth":619,"text":2114},{"id":2623,"depth":619,"text":2624},{"id":2946,"depth":619,"text":2947},"streamText, generateText, multi-step agents, RAG, and multiple models — every common AI SDK pattern wired into evlog.","md",[3028,3031],{"label":41,"icon":44,"to":77,"color":3029,"variant":3030},"neutral","subtle",{"label":85,"icon":88,"to":86,"color":3029,"variant":3030},{},{"title":80,"icon":83},{"title":549,"description":3025},"lK8l0WrY-PF9qGYAfIfZ1cDtz7NWY1p36RH02sRxM20",[3037,3039],{"title":41,"path":77,"stem":78,"description":3038,"icon":44,"children":-1},"Capture token usage, tool calls, model info, and streaming metrics from the Vercel AI SDK into wide events. Wrap your model and get full AI observability with one line.",{"title":85,"path":86,"stem":87,"description":3040,"icon":88,"children":-1},"Configure tool input capture (with redaction and truncation), enable cost estimation per model, and handle errors during AI calls.",1778338246141]