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