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