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