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