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