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