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