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