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