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