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