[{"data":1,"prerenderedAt":2151},["ShallowReactive",2],{"navigation_docs":3,"-use-cases-ai-sdk-overview":520,"-use-cases-ai-sdk-overview-surround":2146},[4,30,80,123,303,435,490],{"title":5,"path":6,"stem":7,"children":8,"page":29},"Start","\u002Fstart","1.start",[9,14,19,24],{"title":10,"path":11,"stem":12,"icon":13},"Introduction","\u002Fstart\u002Fintroduction","1.start\u002F1.introduction","i-lucide-info",{"title":15,"path":16,"stem":17,"icon":18},"Why start with evlog","\u002Fstart\u002Fwhy-evlog","1.start\u002F2.why-evlog","i-lucide-rocket",{"title":20,"path":21,"stem":22,"icon":23},"Installation","\u002Fstart\u002Finstallation","1.start\u002F3.installation","i-lucide-download",{"title":25,"path":26,"stem":27,"icon":28},"Quick Start","\u002Fstart\u002Fquick-start","1.start\u002F4.quick-start","i-lucide-zap",false,{"title":31,"path":32,"stem":33,"children":34,"page":29},"Learn","\u002Flearn","2.learn",[35,40,45,50,55,60,65,70,75],{"title":36,"path":37,"stem":38,"icon":39},"Overview","\u002Flearn\u002Foverview","2.learn\u002F0.overview","i-lucide-list",{"title":41,"path":42,"stem":43,"icon":44},"Simple Logging","\u002Flearn\u002Fsimple-logging","2.learn\u002F1.simple-logging","i-lucide-terminal",{"title":46,"path":47,"stem":48,"icon":49},"Wide Events","\u002Flearn\u002Fwide-events","2.learn\u002F2.wide-events","i-lucide-layers",{"title":51,"path":52,"stem":53,"icon":54},"Structured Errors","\u002Flearn\u002Fstructured-errors","2.learn\u002F3.structured-errors","i-lucide-shield-alert",{"title":56,"path":57,"stem":58,"icon":59},"Lifecycle","\u002Flearn\u002Flifecycle","2.learn\u002F4.lifecycle","i-lucide-arrow-right-left",{"title":61,"path":62,"stem":63,"icon":64},"Sampling","\u002Flearn\u002Fsampling","2.learn\u002F5.sampling","i-lucide-filter",{"title":66,"path":67,"stem":68,"icon":69},"Auto-Redaction","\u002Flearn\u002Fredaction","2.learn\u002F6.redaction","i-lucide-eye-off",{"title":71,"path":72,"stem":73,"icon":74},"Typed Fields","\u002Flearn\u002Ftyped-fields","2.learn\u002F7.typed-fields","i-simple-icons-typescript",{"title":76,"path":77,"stem":78,"icon":79},"Catalogs","\u002Flearn\u002Fcatalogs","2.learn\u002F8.catalogs","i-lucide-book-open",{"title":81,"path":82,"stem":83,"children":84,"page":29},"CLI","\u002Fcli","3.cli",[85,88,93,98,103,108,113,118],{"title":36,"path":86,"stem":87,"icon":44},"\u002Fcli\u002Foverview","3.cli\u002F0.overview",{"title":89,"path":90,"stem":91,"icon":92},"init","\u002Fcli\u002Finit","3.cli\u002F1.init","i-lucide-wand-sparkles",{"title":94,"path":95,"stem":96,"icon":97},"map","\u002Fcli\u002Fmap","3.cli\u002F2.map","i-lucide-radar",{"title":99,"path":100,"stem":101,"icon":102},"Rules","\u002Fcli\u002Frules","3.cli\u002F3.rules","i-lucide-list-checks",{"title":104,"path":105,"stem":106,"icon":107},"Scoring","\u002Fcli\u002Fscoring","3.cli\u002F4.scoring","i-lucide-gauge",{"title":109,"path":110,"stem":111,"icon":112},"CI","\u002Fcli\u002Fci","3.cli\u002F5.ci","i-lucide-git-pull-request",{"title":114,"path":115,"stem":116,"icon":117},"doctor","\u002Fcli\u002Fdoctor","3.cli\u002F6.doctor","i-lucide-stethoscope",{"title":119,"path":120,"stem":121,"icon":122},"telemetry","\u002Fcli\u002Ftelemetry","3.cli\u002F7.telemetry","i-lucide-bar-chart-3",{"title":124,"path":125,"stem":126,"children":127,"page":29},"Integrate","\u002Fintegrate","4.integrate",[128,132,215],{"title":36,"path":129,"stem":130,"icon":131},"\u002Fintegrate\u002Foverview","4.integrate\u002F0.overview","i-lucide-plug",{"title":133,"path":134,"stem":135,"children":136,"page":29},"Adapters","\u002Fintegrate\u002Fadapters","4.integrate\u002Fadapters",[137,140,170,195],{"title":36,"path":138,"stem":139,"icon":39},"\u002Fintegrate\u002Fadapters\u002Foverview","4.integrate\u002Fadapters\u002F01.overview",{"title":141,"path":142,"stem":143,"children":144,"page":29},"Cloud","\u002Fintegrate\u002Fadapters\u002Fcloud","4.integrate\u002Fadapters\u002Fcloud",[145,150,155,160,165],{"title":146,"path":147,"stem":148,"icon":149},"Axiom","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Faxiom","4.integrate\u002Fadapters\u002Fcloud\u002F01.axiom","i-custom-axiom",{"title":151,"path":152,"stem":153,"icon":154},"PostHog","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fposthog","4.integrate\u002Fadapters\u002Fcloud\u002F02.posthog","i-simple-icons-posthog",{"title":156,"path":157,"stem":158,"icon":159},"Sentry","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fsentry","4.integrate\u002Fadapters\u002Fcloud\u002F03.sentry","i-simple-icons-sentry",{"title":161,"path":162,"stem":163,"icon":164},"Better Stack","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fbetter-stack","4.integrate\u002Fadapters\u002Fcloud\u002F04.better-stack","i-simple-icons-betterstack",{"title":166,"path":167,"stem":168,"icon":169},"Datadog","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fdatadog","4.integrate\u002Fadapters\u002Fcloud\u002F05.datadog","i-simple-icons-datadog",{"title":171,"path":172,"stem":173,"children":174,"page":29},"Cloud or Self-Hosted","\u002Fintegrate\u002Fadapters\u002Fhybrid","4.integrate\u002Fadapters\u002Fhybrid",[175,180,185,190],{"title":176,"path":177,"stem":178,"icon":179},"Grafana Loki","\u002Fintegrate\u002Fadapters\u002Fhybrid\u002Floki","4.integrate\u002Fadapters\u002Fhybrid\u002F01.loki","i-simple-icons-grafana",{"title":181,"path":182,"stem":183,"icon":184},"ClickHouse","\u002Fintegrate\u002Fadapters\u002Fhybrid\u002Fclickhouse","4.integrate\u002Fadapters\u002Fhybrid\u002F02.clickhouse","i-simple-icons-clickhouse",{"title":186,"path":187,"stem":188,"icon":189},"OTLP","\u002Fintegrate\u002Fadapters\u002Fhybrid\u002Fotlp","4.integrate\u002Fadapters\u002Fhybrid\u002F03.otlp","i-simple-icons-opentelemetry",{"title":191,"path":192,"stem":193,"icon":194},"HyperDX","\u002Fintegrate\u002Fadapters\u002Fhybrid\u002Fhyperdx","4.integrate\u002Fadapters\u002Fhybrid\u002F04.hyperdx","i-custom-hyperdx",{"title":196,"path":197,"stem":198,"children":199,"page":29},"Self-Hosted","\u002Fintegrate\u002Fadapters\u002Fself-hosted","4.integrate\u002Fadapters\u002Fself-hosted",[200,205,210],{"title":201,"path":202,"stem":203,"icon":204},"File System","\u002Fintegrate\u002Fadapters\u002Fself-hosted\u002Ffs","4.integrate\u002Fadapters\u002Fself-hosted\u002F01.fs","i-lucide-hard-drive",{"title":206,"path":207,"stem":208,"icon":209},"NuxtHub","\u002Fintegrate\u002Fadapters\u002Fself-hosted\u002Fnuxthub","4.integrate\u002Fadapters\u002Fself-hosted\u002F02.nuxthub","i-simple-icons-nuxt",{"title":211,"path":212,"stem":213,"icon":214},"Memory","\u002Fintegrate\u002Fadapters\u002Fself-hosted\u002Fmemory","4.integrate\u002Fadapters\u002Fself-hosted\u002F03.memory","i-lucide-cpu",{"title":216,"path":217,"stem":218,"children":219,"page":29},"Frameworks","\u002Fintegrate\u002Fframeworks","4.integrate\u002Fframeworks",[220,224,229,234,239,244,249,254,259,264,269,274,279,284,288,293,298],{"title":36,"path":221,"stem":222,"icon":223},"\u002Fintegrate\u002Fframeworks\u002Foverview","4.integrate\u002Fframeworks\u002F00.overview","i-lucide-layout-grid",{"title":225,"path":226,"stem":227,"icon":228},"Nuxt","\u002Fintegrate\u002Fframeworks\u002Fnuxt","4.integrate\u002Fframeworks\u002F01.nuxt","i-simple-icons-nuxtdotjs",{"title":230,"path":231,"stem":232,"icon":233},"Next.js","\u002Fintegrate\u002Fframeworks\u002Fnextjs","4.integrate\u002Fframeworks\u002F02.nextjs","i-simple-icons-nextdotjs",{"title":235,"path":236,"stem":237,"icon":238},"SvelteKit","\u002Fintegrate\u002Fframeworks\u002Fsveltekit","4.integrate\u002Fframeworks\u002F03.sveltekit","i-simple-icons-svelte",{"title":240,"path":241,"stem":242,"icon":243},"Nitro","\u002Fintegrate\u002Fframeworks\u002Fnitro","4.integrate\u002Fframeworks\u002F04.nitro","i-custom-nitro",{"title":245,"path":246,"stem":247,"icon":248},"TanStack Start","\u002Fintegrate\u002Fframeworks\u002Ftanstack-start","4.integrate\u002Fframeworks\u002F05.tanstack-start","i-custom-tanstack",{"title":250,"path":251,"stem":252,"icon":253},"NestJS","\u002Fintegrate\u002Fframeworks\u002Fnestjs","4.integrate\u002Fframeworks\u002F06.nestjs","i-simple-icons-nestjs",{"title":255,"path":256,"stem":257,"icon":258},"Express","\u002Fintegrate\u002Fframeworks\u002Fexpress","4.integrate\u002Fframeworks\u002F07.express","i-simple-icons-express",{"title":260,"path":261,"stem":262,"icon":263},"Hono","\u002Fintegrate\u002Fframeworks\u002Fhono","4.integrate\u002Fframeworks\u002F08.hono","i-simple-icons-hono",{"title":265,"path":266,"stem":267,"icon":268},"Fastify","\u002Fintegrate\u002Fframeworks\u002Ffastify","4.integrate\u002Fframeworks\u002F09.fastify","i-simple-icons-fastify",{"title":270,"path":271,"stem":272,"icon":273},"Elysia","\u002Fintegrate\u002Fframeworks\u002Felysia","4.integrate\u002Fframeworks\u002F10.elysia","i-custom-elysia",{"title":275,"path":276,"stem":277,"icon":278},"React Router","\u002Fintegrate\u002Fframeworks\u002Freact-router","4.integrate\u002Fframeworks\u002F11.react-router","i-custom-reactrouter",{"title":280,"path":281,"stem":282,"icon":283},"Cloudflare Workers","\u002Fintegrate\u002Fframeworks\u002Fcloudflare-workers","4.integrate\u002Fframeworks\u002F12.cloudflare-workers","i-simple-icons-cloudflare",{"title":285,"path":286,"stem":287,"icon":74},"Standalone","\u002Fintegrate\u002Fframeworks\u002Fstandalone","4.integrate\u002Fframeworks\u002F13.standalone",{"title":289,"path":290,"stem":291,"icon":292},"Astro","\u002Fintegrate\u002Fframeworks\u002Fastro","4.integrate\u002Fframeworks\u002F14.astro","i-simple-icons-astro",{"title":294,"path":295,"stem":296,"icon":297},"oRPC","\u002Fintegrate\u002Fframeworks\u002Forpc","4.integrate\u002Fframeworks\u002F15.orpc","i-lucide-network",{"title":299,"path":300,"stem":301,"icon":302},"AWS Lambda","\u002Fintegrate\u002Fframeworks\u002Faws-lambda","4.integrate\u002Fframeworks\u002F16.aws-lambda","i-custom-lambda",{"title":304,"path":305,"stem":306,"children":307,"page":29},"Use Cases","\u002Fuse-cases","5.use-cases",[308,311,316,345,372,404,425,430],{"title":36,"path":309,"stem":310,"icon":102},"\u002Fuse-cases\u002Foverview","5.use-cases\u002F0.overview",{"title":312,"path":313,"stem":314,"icon":315},"Client Logging","\u002Fuse-cases\u002Fclient-logging","5.use-cases\u002F1.client-logging","i-lucide-monitor",{"title":317,"icon":318,"path":319,"stem":320,"children":321,"page":29},"AI SDK","i-simple-icons-vercel","\u002Fuse-cases\u002Fai-sdk","5.use-cases\u002F2.ai-sdk",[322,325,330,335,340],{"title":36,"path":323,"stem":324,"icon":39},"\u002Fuse-cases\u002Fai-sdk\u002Foverview","5.use-cases\u002F2.ai-sdk\u002F01.overview",{"title":326,"path":327,"stem":328,"icon":329},"Usage","\u002Fuse-cases\u002Fai-sdk\u002Fusage","5.use-cases\u002F2.ai-sdk\u002F02.usage","i-lucide-code",{"title":331,"path":332,"stem":333,"icon":334},"Options","\u002Fuse-cases\u002Fai-sdk\u002Foptions","5.use-cases\u002F2.ai-sdk\u002F03.options","i-lucide-sliders",{"title":336,"path":337,"stem":338,"icon":339},"Metadata","\u002Fuse-cases\u002Fai-sdk\u002Fmetadata","5.use-cases\u002F2.ai-sdk\u002F04.metadata","i-lucide-database",{"title":341,"path":342,"stem":343,"icon":344},"Telemetry","\u002Fuse-cases\u002Fai-sdk\u002Ftelemetry","5.use-cases\u002F2.ai-sdk\u002F05.telemetry","i-lucide-activity",{"title":346,"icon":347,"path":348,"stem":349,"children":350,"page":29},"Better Auth","i-simple-icons-betterauth","\u002Fuse-cases\u002Fbetter-auth","5.use-cases\u002F3.better-auth",[351,354,359,364,368],{"title":36,"path":352,"stem":353,"icon":39},"\u002Fuse-cases\u002Fbetter-auth\u002Foverview","5.use-cases\u002F3.better-auth\u002F01.overview",{"title":355,"path":356,"stem":357,"icon":358},"Identify User","\u002Fuse-cases\u002Fbetter-auth\u002Fidentify-user","5.use-cases\u002F3.better-auth\u002F02.identify-user","i-lucide-user-check",{"title":360,"path":361,"stem":362,"icon":363},"Middleware","\u002Fuse-cases\u002Fbetter-auth\u002Fmiddleware","5.use-cases\u002F3.better-auth\u002F03.middleware","i-lucide-shield",{"title":365,"path":366,"stem":367,"icon":315},"Client Sync","\u002Fuse-cases\u002Fbetter-auth\u002Fclient-sync","5.use-cases\u002F3.better-auth\u002F04.client-sync",{"title":369,"path":370,"stem":371,"icon":107},"Performance","\u002Fuse-cases\u002Fbetter-auth\u002Fperformance","5.use-cases\u002F3.better-auth\u002F05.performance",{"title":373,"icon":374,"path":375,"stem":376,"children":377,"page":29},"Audit Logs","i-lucide-shield-check","\u002Fuse-cases\u002Faudit","5.use-cases\u002F4.audit",[378,381,386,391,396,400],{"title":36,"path":379,"stem":380,"icon":39},"\u002Fuse-cases\u002Faudit\u002Foverview","5.use-cases\u002F4.audit\u002F01.overview",{"title":382,"path":383,"stem":384,"icon":385},"Schema","\u002Fuse-cases\u002Faudit\u002Fschema","5.use-cases\u002F4.audit\u002F02.schema","i-lucide-file-text",{"title":387,"path":388,"stem":389,"icon":390},"Recording","\u002Fuse-cases\u002Faudit\u002Frecording","5.use-cases\u002F4.audit\u002F03.recording","i-lucide-pen-line",{"title":392,"path":393,"stem":394,"icon":395},"Drains","\u002Fuse-cases\u002Faudit\u002Fpipeline","5.use-cases\u002F4.audit\u002F04.pipeline","i-lucide-link",{"title":397,"path":398,"stem":399,"icon":374},"Compliance","\u002Fuse-cases\u002Faudit\u002Fcompliance","5.use-cases\u002F4.audit\u002F05.compliance",{"title":401,"path":402,"stem":403,"icon":79},"Recipes","\u002Fuse-cases\u002Faudit\u002Frecipes","5.use-cases\u002F4.audit\u002F06.recipes",{"title":341,"icon":107,"path":405,"stem":406,"children":407,"page":29},"\u002Fuse-cases\u002Ftelemetry","5.use-cases\u002F4.telemetry",[408,411,416,421],{"title":36,"path":409,"stem":410,"icon":39},"\u002Fuse-cases\u002Ftelemetry\u002Foverview","5.use-cases\u002F4.telemetry\u002F01.overview",{"title":412,"path":413,"stem":414,"icon":415},"Setup","\u002Fuse-cases\u002Ftelemetry\u002Fsetup","5.use-cases\u002F4.telemetry\u002F02.setup","i-lucide-wrench",{"title":417,"path":418,"stem":419,"icon":420},"Ingest","\u002Fuse-cases\u002Ftelemetry\u002Fingest","5.use-cases\u002F4.telemetry\u002F03.ingest","i-lucide-server",{"title":422,"path":423,"stem":424,"icon":79},"Reference","\u002Fuse-cases\u002Ftelemetry\u002Freference","5.use-cases\u002F4.telemetry\u002F04.reference",{"title":426,"path":427,"stem":428,"icon":429},"Enrichers","\u002Fuse-cases\u002Fenrichers","5.use-cases\u002F5.enrichers","i-lucide-sparkles",{"title":431,"path":432,"stem":433,"icon":434},"eve","\u002Fuse-cases\u002Feve","5.use-cases\u002F5.eve","i-custom-eve",{"title":436,"path":437,"stem":438,"children":439,"page":29},"Extend","\u002Fextend","6.extend",[440,444,449,454,459,463,467,471,475,480,485],{"title":36,"path":441,"stem":442,"icon":443},"\u002Fextend\u002Foverview","6.extend\u002F0.overview","i-lucide-blocks",{"title":445,"path":446,"stem":447,"icon":448},"Stream","\u002Fextend\u002Fstream","6.extend\u002F1.stream","i-lucide-radio-tower",{"title":450,"path":451,"stem":452,"icon":453},"Custom framework","\u002Fextend\u002Fcustom-framework","6.extend\u002F10.custom-framework","i-lucide-puzzle",{"title":455,"path":456,"stem":457,"icon":458},"FS reader","\u002Fextend\u002Ffs-reader","6.extend\u002F2.fs-reader","i-lucide-folder-search",{"title":401,"path":460,"stem":461,"icon":462},"\u002Fextend\u002Fconsumer-recipes","6.extend\u002F3.consumer-recipes","i-lucide-chef-hat",{"title":464,"path":465,"stem":466,"icon":443},"Plugins","\u002Fextend\u002Fplugins","6.extend\u002F4.plugins",{"title":468,"path":469,"stem":470,"icon":429},"Custom enrichers","\u002Fextend\u002Fcustom-enrichers","6.extend\u002F5.custom-enrichers",{"title":472,"path":473,"stem":474,"icon":64},"Tail sampling","\u002Fextend\u002Ftail-sampling","6.extend\u002F6.tail-sampling",{"title":476,"path":477,"stem":478,"icon":479},"Identity headers","\u002Fextend\u002Fidentity-headers","6.extend\u002F7.identity-headers","i-lucide-fingerprint",{"title":481,"path":482,"stem":483,"icon":484},"Custom drains","\u002Fextend\u002Fcustom-drains","6.extend\u002F8.custom-drains","i-lucide-share-2",{"title":486,"path":487,"stem":488,"icon":489},"Drain pipeline","\u002Fextend\u002Fdrain-pipeline","6.extend\u002F9.drain-pipeline","i-lucide-workflow",{"title":422,"path":491,"stem":492,"children":493,"page":29},"\u002Freference","7.reference",[494,499,502,507,511,516],{"title":495,"path":496,"stem":497,"icon":498},"Configuration","\u002Freference\u002Fconfiguration","7.reference\u002F1.configuration","i-lucide-settings",{"title":369,"path":500,"stem":501,"icon":107},"\u002Freference\u002Fperformance","7.reference\u002F2.performance",{"title":503,"path":504,"stem":505,"icon":506},"Vite Plugin","\u002Freference\u002Fvite-plugin","7.reference\u002F3.vite-plugin","i-custom-vite",{"title":508,"path":509,"stem":510,"icon":374},"Best Practices","\u002Freference\u002Fbest-practices","7.reference\u002F4.best-practices",{"title":512,"path":513,"stem":514,"icon":515},"vs Other Loggers","\u002Freference\u002Fvs-other-loggers","7.reference\u002F5.vs-other-loggers","i-lucide-scale",{"title":517,"path":518,"stem":519,"icon":429},"Agent Skills","\u002Freference\u002Fagent-skills","7.reference\u002F6.agent-skills",{"id":521,"title":522,"body":523,"description":2133,"extension":2134,"links":2135,"meta":2142,"navigation":2143,"path":323,"seo":2144,"stem":324,"__hash__":2145},"docs\u002F5.use-cases\u002F2.ai-sdk\u002F01.overview.md","AI SDK Integration",{"type":524,"value":525,"toc":2126},"minimark",[526,534,587,592,595,666,669,672,675,999,1002,1327,1331,1341,1449,1452,1456,1485,1489,1494,2122],[527,528,529,533],"p",{},[530,531,532],"code",{},"evlog\u002Fai"," gives you full AI observability by wrapping your model with middleware. Token usage, tool calls, streaming performance, cache hits, reasoning tokens, and cost estimation — all captured into the wide event automatically.",[535,536,539,542,573],"prompt",{":actions":537,"description":538,"icon":318},"[\"copy\",\"cursor\",\"claude\"]","Add AI observability with evlog",[527,540,541],{},"Add AI observability to my app with evlog.",[543,544,545,549,552,555,558,561,564,567,570],"ul",{},[546,547,548],"li",{},"Install the AI SDK: pnpm add ai",[546,550,551],{},"Import createAILogger from 'evlog\u002Fai'",[546,553,554],{},"Create an AI logger with createAILogger(log) where log is your request logger",[546,556,557],{},"Wrap your model with ai.wrap('anthropic\u002Fclaude-sonnet-4.6') and pass it to generateText, streamText, etc.",[546,559,560],{},"Token usage, tool calls, streaming metrics, and errors are captured automatically into the wide event",[546,562,563],{},"For deeper observability (tool execution timing, total generation wall time), add createEvlogIntegration(ai) to telemetry.integrations",[546,565,566],{},"For embedding calls, use ai.captureEmbed({ usage, model, dimensions, count }) after embed() or embedMany()",[546,568,569],{},"For cost estimation, pass a cost map: createAILogger(log, { cost: { 'claude-sonnet-4.6': { input: 3, output: 15 } } })",[546,571,572],{},"Works with all frameworks: Nuxt, Express, Hono, Fastify, NestJS, Elysia, standalone",[527,574,575,576,582,583],{},"Docs: ",[577,578,579],"a",{"href":579,"rel":580},"https:\u002F\u002Fwww.evlog.dev\u002Fuse-cases\u002Fai-sdk\u002Foverview",[581],"nofollow","\nAdapters: ",[577,584,585],{"href":585,"rel":586},"https:\u002F\u002Fwww.evlog.dev\u002Fintegrate\u002Fadapters\u002Foverview",[581],[588,589,591],"h2",{"id":590},"install","Install",[527,593,594],{},"Add the AI SDK as a dependency:",[596,597,598,623,637,651],"code-group",{},[599,600,606],"pre",{"className":601,"code":602,"filename":603,"language":604,"meta":605,"style":605},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","pnpm add ai\n","pnpm","bash","",[530,607,608],{"__ignoreMap":605},[609,610,613,616,620],"span",{"class":611,"line":612},"line",1,[609,614,603],{"class":615},"sBMFI",[609,617,619],{"class":618},"sfazB"," add",[609,621,622],{"class":618}," ai\n",[599,624,627],{"className":601,"code":625,"filename":626,"language":604,"meta":605,"style":605},"bun add ai\n","bun",[530,628,629],{"__ignoreMap":605},[609,630,631,633,635],{"class":611,"line":612},[609,632,626],{"class":615},[609,634,619],{"class":618},[609,636,622],{"class":618},[599,638,641],{"className":601,"code":639,"filename":640,"language":604,"meta":605,"style":605},"yarn add ai\n","yarn",[530,642,643],{"__ignoreMap":605},[609,644,645,647,649],{"class":611,"line":612},[609,646,640],{"class":615},[609,648,619],{"class":618},[609,650,622],{"class":618},[599,652,655],{"className":601,"code":653,"filename":654,"language":604,"meta":605,"style":605},"npm install ai\n","npm",[530,656,657],{"__ignoreMap":605},[609,658,659,661,664],{"class":611,"line":612},[609,660,654],{"class":615},[609,662,663],{"class":618}," install",[609,665,622],{"class":618},[588,667,25],{"id":668},"quick-start",[670,671],"ai-sdk-wide-event",{},[527,673,674],{},"Two lines to add, one param to change:",[596,676,677,807],{},[599,678,683],{"className":679,"code":680,"filename":681,"language":682,"meta":605,"style":605},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","export default defineEventHandler(async (event) => {\n  const result = streamText({\n    model: 'anthropic\u002Fclaude-sonnet-4.6',\n    messages,\n  })\n  return result.toTextStreamResponse()\n})\n","Before","typescript",[530,684,685,723,744,765,773,782,799],{"__ignoreMap":605},[609,686,687,691,694,698,702,706,710,714,717,720],{"class":611,"line":612},[609,688,690],{"class":689},"s7zQu","export",[609,692,693],{"class":689}," default",[609,695,697],{"class":696},"s2Zo4"," defineEventHandler",[609,699,701],{"class":700},"sTEyZ","(",[609,703,705],{"class":704},"spNyl","async",[609,707,709],{"class":708},"sMK4o"," (",[609,711,713],{"class":712},"sHdIc","event",[609,715,716],{"class":708},")",[609,718,719],{"class":704}," =>",[609,721,722],{"class":708}," {\n",[609,724,726,729,732,735,738,741],{"class":611,"line":725},2,[609,727,728],{"class":704},"  const",[609,730,731],{"class":700}," result",[609,733,734],{"class":708}," =",[609,736,737],{"class":696}," streamText",[609,739,701],{"class":740},"swJcz",[609,742,743],{"class":708},"{\n",[609,745,747,750,753,756,759,762],{"class":611,"line":746},3,[609,748,749],{"class":740},"    model",[609,751,752],{"class":708},":",[609,754,755],{"class":708}," '",[609,757,758],{"class":618},"anthropic\u002Fclaude-sonnet-4.6",[609,760,761],{"class":708},"'",[609,763,764],{"class":708},",\n",[609,766,768,771],{"class":611,"line":767},4,[609,769,770],{"class":700},"    messages",[609,772,764],{"class":708},[609,774,776,779],{"class":611,"line":775},5,[609,777,778],{"class":708},"  }",[609,780,781],{"class":740},")\n",[609,783,785,788,790,793,796],{"class":611,"line":784},6,[609,786,787],{"class":689},"  return",[609,789,731],{"class":700},[609,791,792],{"class":708},".",[609,794,795],{"class":696},"toTextStreamResponse",[609,797,798],{"class":740},"()\n",[609,800,802,805],{"class":611,"line":801},7,[609,803,804],{"class":708},"}",[609,806,781],{"class":700},[599,808,811],{"className":679,"code":809,"filename":810,"language":682,"meta":605,"style":605},"import { 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 result = streamText({\n    model: ai.wrap('anthropic\u002Fclaude-sonnet-4.6'),\n    messages,\n  })\n  return result.toTextStreamResponse()\n})\n","After",[530,812,813,838,857,863,885,902,920,924,939,965,972,979,992],{"__ignoreMap":605},[609,814,815,818,821,824,827,830,832,835],{"class":611,"line":612},[609,816,817],{"class":689},"import",[609,819,820],{"class":708}," {",[609,822,823],{"class":700}," useLogger",[609,825,826],{"class":708}," }",[609,828,829],{"class":689}," from",[609,831,755],{"class":708},[609,833,834],{"class":618},"evlog",[609,836,837],{"class":708},"'\n",[609,839,840,842,844,847,849,851,853,855],{"class":611,"line":725},[609,841,817],{"class":689},[609,843,820],{"class":708},[609,845,846],{"class":700}," createAILogger",[609,848,826],{"class":708},[609,850,829],{"class":689},[609,852,755],{"class":708},[609,854,532],{"class":618},[609,856,837],{"class":708},[609,858,859],{"class":611,"line":746},[609,860,862],{"emptyLinePlaceholder":861},true,"\n",[609,864,865,867,869,871,873,875,877,879,881,883],{"class":611,"line":767},[609,866,690],{"class":689},[609,868,693],{"class":689},[609,870,697],{"class":696},[609,872,701],{"class":700},[609,874,705],{"class":704},[609,876,709],{"class":708},[609,878,713],{"class":712},[609,880,716],{"class":708},[609,882,719],{"class":704},[609,884,722],{"class":708},[609,886,887,889,892,894,896,898,900],{"class":611,"line":775},[609,888,728],{"class":704},[609,890,891],{"class":700}," log",[609,893,734],{"class":708},[609,895,823],{"class":696},[609,897,701],{"class":740},[609,899,713],{"class":700},[609,901,781],{"class":740},[609,903,904,906,909,911,913,915,918],{"class":611,"line":784},[609,905,728],{"class":704},[609,907,908],{"class":700}," ai",[609,910,734],{"class":708},[609,912,846],{"class":696},[609,914,701],{"class":740},[609,916,917],{"class":700},"log",[609,919,781],{"class":740},[609,921,922],{"class":611,"line":801},[609,923,862],{"emptyLinePlaceholder":861},[609,925,927,929,931,933,935,937],{"class":611,"line":926},8,[609,928,728],{"class":704},[609,930,731],{"class":700},[609,932,734],{"class":708},[609,934,737],{"class":696},[609,936,701],{"class":740},[609,938,743],{"class":708},[609,940,942,944,946,948,950,953,955,957,959,961,963],{"class":611,"line":941},9,[609,943,749],{"class":740},[609,945,752],{"class":708},[609,947,908],{"class":700},[609,949,792],{"class":708},[609,951,952],{"class":696},"wrap",[609,954,701],{"class":740},[609,956,761],{"class":708},[609,958,758],{"class":618},[609,960,761],{"class":708},[609,962,716],{"class":740},[609,964,764],{"class":708},[609,966,968,970],{"class":611,"line":967},10,[609,969,770],{"class":700},[609,971,764],{"class":708},[609,973,975,977],{"class":611,"line":974},11,[609,976,778],{"class":708},[609,978,781],{"class":740},[609,980,982,984,986,988,990],{"class":611,"line":981},12,[609,983,787],{"class":689},[609,985,731],{"class":700},[609,987,792],{"class":708},[609,989,795],{"class":696},[609,991,798],{"class":740},[609,993,995,997],{"class":611,"line":994},13,[609,996,804],{"class":708},[609,998,781],{"class":700},[527,1000,1001],{},"Your wide event now includes:",[599,1003,1008],{"className":1004,"code":1005,"filename":1006,"language":1007,"meta":605,"style":605},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"method\": \"POST\",\n  \"path\": \"\u002Fapi\u002Fchat\",\n  \"status\": 200,\n  \"duration\": \"4.5s\",\n  \"durationMs\": 4512,\n  \"ai\": {\n    \"calls\": 1,\n    \"model\": \"claude-sonnet-4.6\",\n    \"provider\": \"anthropic\",\n    \"inputTokens\": 3312,\n    \"outputTokens\": 814,\n    \"totalTokens\": 4126,\n    \"reasoningTokens\": 225,\n    \"finishReason\": \"stop\",\n    \"msToFirstChunk\": 234,\n    \"msToFinish\": 4500,\n    \"tokensPerSecond\": 180\n  }\n}\n","Wide Event","json",[530,1009,1010,1014,1037,1057,1074,1094,1110,1123,1140,1160,1180,1196,1212,1228,1245,1266,1283,1300,1315,1321],{"__ignoreMap":605},[609,1011,1012],{"class":611,"line":612},[609,1013,743],{"class":708},[609,1015,1016,1019,1022,1025,1027,1030,1033,1035],{"class":611,"line":725},[609,1017,1018],{"class":708},"  \"",[609,1020,1021],{"class":704},"method",[609,1023,1024],{"class":708},"\"",[609,1026,752],{"class":708},[609,1028,1029],{"class":708}," \"",[609,1031,1032],{"class":618},"POST",[609,1034,1024],{"class":708},[609,1036,764],{"class":708},[609,1038,1039,1041,1044,1046,1048,1050,1053,1055],{"class":611,"line":746},[609,1040,1018],{"class":708},[609,1042,1043],{"class":704},"path",[609,1045,1024],{"class":708},[609,1047,752],{"class":708},[609,1049,1029],{"class":708},[609,1051,1052],{"class":618},"\u002Fapi\u002Fchat",[609,1054,1024],{"class":708},[609,1056,764],{"class":708},[609,1058,1059,1061,1064,1066,1068,1072],{"class":611,"line":767},[609,1060,1018],{"class":708},[609,1062,1063],{"class":704},"status",[609,1065,1024],{"class":708},[609,1067,752],{"class":708},[609,1069,1071],{"class":1070},"sbssI"," 200",[609,1073,764],{"class":708},[609,1075,1076,1078,1081,1083,1085,1087,1090,1092],{"class":611,"line":775},[609,1077,1018],{"class":708},[609,1079,1080],{"class":704},"duration",[609,1082,1024],{"class":708},[609,1084,752],{"class":708},[609,1086,1029],{"class":708},[609,1088,1089],{"class":618},"4.5s",[609,1091,1024],{"class":708},[609,1093,764],{"class":708},[609,1095,1096,1098,1101,1103,1105,1108],{"class":611,"line":784},[609,1097,1018],{"class":708},[609,1099,1100],{"class":704},"durationMs",[609,1102,1024],{"class":708},[609,1104,752],{"class":708},[609,1106,1107],{"class":1070}," 4512",[609,1109,764],{"class":708},[609,1111,1112,1114,1117,1119,1121],{"class":611,"line":801},[609,1113,1018],{"class":708},[609,1115,1116],{"class":704},"ai",[609,1118,1024],{"class":708},[609,1120,752],{"class":708},[609,1122,722],{"class":708},[609,1124,1125,1128,1131,1133,1135,1138],{"class":611,"line":926},[609,1126,1127],{"class":708},"    \"",[609,1129,1130],{"class":615},"calls",[609,1132,1024],{"class":708},[609,1134,752],{"class":708},[609,1136,1137],{"class":1070}," 1",[609,1139,764],{"class":708},[609,1141,1142,1144,1147,1149,1151,1153,1156,1158],{"class":611,"line":941},[609,1143,1127],{"class":708},[609,1145,1146],{"class":615},"model",[609,1148,1024],{"class":708},[609,1150,752],{"class":708},[609,1152,1029],{"class":708},[609,1154,1155],{"class":618},"claude-sonnet-4.6",[609,1157,1024],{"class":708},[609,1159,764],{"class":708},[609,1161,1162,1164,1167,1169,1171,1173,1176,1178],{"class":611,"line":967},[609,1163,1127],{"class":708},[609,1165,1166],{"class":615},"provider",[609,1168,1024],{"class":708},[609,1170,752],{"class":708},[609,1172,1029],{"class":708},[609,1174,1175],{"class":618},"anthropic",[609,1177,1024],{"class":708},[609,1179,764],{"class":708},[609,1181,1182,1184,1187,1189,1191,1194],{"class":611,"line":974},[609,1183,1127],{"class":708},[609,1185,1186],{"class":615},"inputTokens",[609,1188,1024],{"class":708},[609,1190,752],{"class":708},[609,1192,1193],{"class":1070}," 3312",[609,1195,764],{"class":708},[609,1197,1198,1200,1203,1205,1207,1210],{"class":611,"line":981},[609,1199,1127],{"class":708},[609,1201,1202],{"class":615},"outputTokens",[609,1204,1024],{"class":708},[609,1206,752],{"class":708},[609,1208,1209],{"class":1070}," 814",[609,1211,764],{"class":708},[609,1213,1214,1216,1219,1221,1223,1226],{"class":611,"line":994},[609,1215,1127],{"class":708},[609,1217,1218],{"class":615},"totalTokens",[609,1220,1024],{"class":708},[609,1222,752],{"class":708},[609,1224,1225],{"class":1070}," 4126",[609,1227,764],{"class":708},[609,1229,1231,1233,1236,1238,1240,1243],{"class":611,"line":1230},14,[609,1232,1127],{"class":708},[609,1234,1235],{"class":615},"reasoningTokens",[609,1237,1024],{"class":708},[609,1239,752],{"class":708},[609,1241,1242],{"class":1070}," 225",[609,1244,764],{"class":708},[609,1246,1248,1250,1253,1255,1257,1259,1262,1264],{"class":611,"line":1247},15,[609,1249,1127],{"class":708},[609,1251,1252],{"class":615},"finishReason",[609,1254,1024],{"class":708},[609,1256,752],{"class":708},[609,1258,1029],{"class":708},[609,1260,1261],{"class":618},"stop",[609,1263,1024],{"class":708},[609,1265,764],{"class":708},[609,1267,1269,1271,1274,1276,1278,1281],{"class":611,"line":1268},16,[609,1270,1127],{"class":708},[609,1272,1273],{"class":615},"msToFirstChunk",[609,1275,1024],{"class":708},[609,1277,752],{"class":708},[609,1279,1280],{"class":1070}," 234",[609,1282,764],{"class":708},[609,1284,1286,1288,1291,1293,1295,1298],{"class":611,"line":1285},17,[609,1287,1127],{"class":708},[609,1289,1290],{"class":615},"msToFinish",[609,1292,1024],{"class":708},[609,1294,752],{"class":708},[609,1296,1297],{"class":1070}," 4500",[609,1299,764],{"class":708},[609,1301,1303,1305,1308,1310,1312],{"class":611,"line":1302},18,[609,1304,1127],{"class":708},[609,1306,1307],{"class":615},"tokensPerSecond",[609,1309,1024],{"class":708},[609,1311,752],{"class":708},[609,1313,1314],{"class":1070}," 180\n",[609,1316,1318],{"class":611,"line":1317},19,[609,1319,1320],{"class":708},"  }\n",[609,1322,1324],{"class":611,"line":1323},20,[609,1325,1326],{"class":708},"}\n",[588,1328,1330],{"id":1329},"how-it-works","How It Works",[527,1332,1333,1336,1337,1340],{},[530,1334,1335],{},"createAILogger(log, options?)"," returns an ",[530,1338,1339],{},"AILogger"," with the following methods:",[1342,1343,1344,1357],"table",{},[1345,1346,1347],"thead",{},[1348,1349,1350,1354],"tr",{},[1351,1352,1353],"th",{},"Method",[1351,1355,1356],{},"Description",[1358,1359,1360,1394,1412,1425,1439],"tbody",{},[1348,1361,1362,1368],{},[1363,1364,1365],"td",{},[530,1366,1367],{},"wrap(model)",[1363,1369,1370,1371,1374,1375,1378,1379,1382,1383,1386,1387,1390,1391,792],{},"Wraps a language model with middleware. Accepts a model string (e.g. ",[530,1372,1373],{},"'anthropic\u002Fclaude-sonnet-4.6'",") or a ",[530,1376,1377],{},"LanguageModelV3"," \u002F ",[530,1380,1381],{},"LanguageModelV4"," object. Works with ",[530,1384,1385],{},"generateText",", ",[530,1388,1389],{},"streamText",", and ",[530,1392,1393],{},"ToolLoopAgent",[1348,1395,1396,1401],{},[1363,1397,1398],{},[530,1399,1400],{},"captureEmbed(result)",[1363,1402,1403,1404,1407,1408,1411],{},"Manually captures token usage, model info, and dimensions from ",[530,1405,1406],{},"embed()"," or ",[530,1409,1410],{},"embedMany()"," results.",[1348,1413,1414,1419],{},[1363,1415,1416],{},[530,1417,1418],{},"getMetadata()",[1363,1420,1421,1422,792],{},"Returns a snapshot of the current execution metadata. See ",[577,1423,1424],{"href":337},"Access Metadata",[1348,1426,1427,1432],{},[1363,1428,1429],{},[530,1430,1431],{},"getEstimatedCost()",[1363,1433,1434,1435,1438],{},"Returns the current estimated cost in dollars when a ",[530,1436,1437],{},"cost"," map is configured.",[1348,1440,1441,1446],{},[1363,1442,1443],{},[530,1444,1445],{},"onUpdate(callback)",[1363,1447,1448],{},"Subscribe to metadata updates. Fires on every step, embed, error, and integration finish.",[527,1450,1451],{},"The middleware intercepts calls at the provider level. It does not touch your callbacks, prompts, or responses. Captured data flows through the normal evlog pipeline (sampling, enrichers, drains) and lands in Axiom, Better Stack, or wherever you drain to.",[588,1453,1455],{"id":1454},"where-to-next","Where to next",[1457,1458,1459,1468,1471,1477],"card-group",{},[1460,1461,1463,1386,1465,1467],"card",{"icon":329,"title":1462,"to":327},"Usage Patterns",[530,1464,1389],{},[530,1466,1385],{},", multi-step agents, RAG, multiple models — every common pattern, ready to copy.",[1460,1469,1470],{"icon":334,"title":331,"to":332},"Capture tool inputs (with redaction and truncation), enable cost estimation, and handle errors.",[1460,1472,1473,1474,1476],{"icon":339,"title":1424,"to":337},"Read the captured ",[530,1475,1116],{}," data inside your handler — persist it, bill against it, or stream it to the client.",[1460,1478,1480,1481,1484],{"icon":344,"title":1479,"to":342},"Deeper Telemetry","Add tool execution timing and total wall time with ",[530,1482,1483],{},"createEvlogIntegration",". Compose with other middlewares.",[588,1486,1488],{"id":1487},"works-with-all-frameworks","Works With All Frameworks",[527,1490,1491,1493],{},[530,1492,532],{}," works with any framework that evlog supports:",[596,1495,1496,1571,1688,1781,1877,1966,2036],{},[599,1497,1499],{"className":679,"code":1498,"filename":225,"language":682,"meta":605,"style":605},"import { useLogger } from 'evlog'\nimport { createAILogger } from 'evlog\u002Fai'\n\nconst log = useLogger(event)\nconst ai = createAILogger(log)\n",[530,1500,1501,1519,1537,1541,1557],{"__ignoreMap":605},[609,1502,1503,1505,1507,1509,1511,1513,1515,1517],{"class":611,"line":612},[609,1504,817],{"class":689},[609,1506,820],{"class":708},[609,1508,823],{"class":700},[609,1510,826],{"class":708},[609,1512,829],{"class":689},[609,1514,755],{"class":708},[609,1516,834],{"class":618},[609,1518,837],{"class":708},[609,1520,1521,1523,1525,1527,1529,1531,1533,1535],{"class":611,"line":725},[609,1522,817],{"class":689},[609,1524,820],{"class":708},[609,1526,846],{"class":700},[609,1528,826],{"class":708},[609,1530,829],{"class":689},[609,1532,755],{"class":708},[609,1534,532],{"class":618},[609,1536,837],{"class":708},[609,1538,1539],{"class":611,"line":746},[609,1540,862],{"emptyLinePlaceholder":861},[609,1542,1543,1546,1549,1552,1554],{"class":611,"line":767},[609,1544,1545],{"class":704},"const",[609,1547,1548],{"class":700}," log ",[609,1550,1551],{"class":708},"=",[609,1553,823],{"class":696},[609,1555,1556],{"class":700},"(event)\n",[609,1558,1559,1561,1564,1566,1568],{"class":611,"line":775},[609,1560,1545],{"class":704},[609,1562,1563],{"class":700}," ai ",[609,1565,1551],{"class":708},[609,1567,846],{"class":696},[609,1569,1570],{"class":700},"(log)\n",[599,1572,1574],{"className":679,"code":1573,"filename":230,"language":682,"meta":605,"style":605},"import { withEvlog, useLogger } from '@\u002Flib\u002Fevlog'\nimport { createAILogger } from 'evlog\u002Fai'\n\nexport const POST = withEvlog(async () => {\n  const log = useLogger()\n  const ai = createAILogger(log)\n  \u002F\u002F ...\n})\n",[530,1575,1576,1601,1619,1623,1648,1660,1676,1682],{"__ignoreMap":605},[609,1577,1578,1580,1582,1585,1588,1590,1592,1594,1596,1599],{"class":611,"line":612},[609,1579,817],{"class":689},[609,1581,820],{"class":708},[609,1583,1584],{"class":700}," withEvlog",[609,1586,1587],{"class":708},",",[609,1589,823],{"class":700},[609,1591,826],{"class":708},[609,1593,829],{"class":689},[609,1595,755],{"class":708},[609,1597,1598],{"class":618},"@\u002Flib\u002Fevlog",[609,1600,837],{"class":708},[609,1602,1603,1605,1607,1609,1611,1613,1615,1617],{"class":611,"line":725},[609,1604,817],{"class":689},[609,1606,820],{"class":708},[609,1608,846],{"class":700},[609,1610,826],{"class":708},[609,1612,829],{"class":689},[609,1614,755],{"class":708},[609,1616,532],{"class":618},[609,1618,837],{"class":708},[609,1620,1621],{"class":611,"line":746},[609,1622,862],{"emptyLinePlaceholder":861},[609,1624,1625,1627,1630,1633,1635,1637,1639,1641,1644,1646],{"class":611,"line":767},[609,1626,690],{"class":689},[609,1628,1629],{"class":704}," const",[609,1631,1632],{"class":700}," POST ",[609,1634,1551],{"class":708},[609,1636,1584],{"class":696},[609,1638,701],{"class":700},[609,1640,705],{"class":704},[609,1642,1643],{"class":708}," ()",[609,1645,719],{"class":704},[609,1647,722],{"class":708},[609,1649,1650,1652,1654,1656,1658],{"class":611,"line":775},[609,1651,728],{"class":704},[609,1653,891],{"class":700},[609,1655,734],{"class":708},[609,1657,823],{"class":696},[609,1659,798],{"class":740},[609,1661,1662,1664,1666,1668,1670,1672,1674],{"class":611,"line":784},[609,1663,728],{"class":704},[609,1665,908],{"class":700},[609,1667,734],{"class":708},[609,1669,846],{"class":696},[609,1671,701],{"class":740},[609,1673,917],{"class":700},[609,1675,781],{"class":740},[609,1677,1678],{"class":611,"line":801},[609,1679,1681],{"class":1680},"sHwdD","  \u002F\u002F ...\n",[609,1683,1684,1686],{"class":611,"line":926},[609,1685,804],{"class":708},[609,1687,781],{"class":700},[599,1689,1691],{"className":679,"code":1690,"filename":255,"language":682,"meta":605,"style":605},"import { createAILogger } from 'evlog\u002Fai'\n\napp.post('\u002Fapi\u002Fchat', (req, res) => {\n  const ai = createAILogger(req.log)\n  \u002F\u002F ...\n})\n",[530,1692,1693,1711,1715,1751,1771,1775],{"__ignoreMap":605},[609,1694,1695,1697,1699,1701,1703,1705,1707,1709],{"class":611,"line":612},[609,1696,817],{"class":689},[609,1698,820],{"class":708},[609,1700,846],{"class":700},[609,1702,826],{"class":708},[609,1704,829],{"class":689},[609,1706,755],{"class":708},[609,1708,532],{"class":618},[609,1710,837],{"class":708},[609,1712,1713],{"class":611,"line":725},[609,1714,862],{"emptyLinePlaceholder":861},[609,1716,1717,1720,1722,1725,1727,1729,1731,1733,1735,1737,1740,1742,1745,1747,1749],{"class":611,"line":746},[609,1718,1719],{"class":700},"app",[609,1721,792],{"class":708},[609,1723,1724],{"class":696},"post",[609,1726,701],{"class":700},[609,1728,761],{"class":708},[609,1730,1052],{"class":618},[609,1732,761],{"class":708},[609,1734,1587],{"class":708},[609,1736,709],{"class":708},[609,1738,1739],{"class":712},"req",[609,1741,1587],{"class":708},[609,1743,1744],{"class":712}," res",[609,1746,716],{"class":708},[609,1748,719],{"class":704},[609,1750,722],{"class":708},[609,1752,1753,1755,1757,1759,1761,1763,1765,1767,1769],{"class":611,"line":767},[609,1754,728],{"class":704},[609,1756,908],{"class":700},[609,1758,734],{"class":708},[609,1760,846],{"class":696},[609,1762,701],{"class":740},[609,1764,1739],{"class":700},[609,1766,792],{"class":708},[609,1768,917],{"class":700},[609,1770,781],{"class":740},[609,1772,1773],{"class":611,"line":775},[609,1774,1681],{"class":1680},[609,1776,1777,1779],{"class":611,"line":784},[609,1778,804],{"class":708},[609,1780,781],{"class":700},[599,1782,1784],{"className":679,"code":1783,"filename":260,"language":682,"meta":605,"style":605},"import { createAILogger } from 'evlog\u002Fai'\n\napp.post('\u002Fapi\u002Fchat', (c) => {\n  const ai = createAILogger(c.get('log'))\n  \u002F\u002F ...\n})\n",[530,1785,1786,1804,1808,1837,1867,1871],{"__ignoreMap":605},[609,1787,1788,1790,1792,1794,1796,1798,1800,1802],{"class":611,"line":612},[609,1789,817],{"class":689},[609,1791,820],{"class":708},[609,1793,846],{"class":700},[609,1795,826],{"class":708},[609,1797,829],{"class":689},[609,1799,755],{"class":708},[609,1801,532],{"class":618},[609,1803,837],{"class":708},[609,1805,1806],{"class":611,"line":725},[609,1807,862],{"emptyLinePlaceholder":861},[609,1809,1810,1812,1814,1816,1818,1820,1822,1824,1826,1828,1831,1833,1835],{"class":611,"line":746},[609,1811,1719],{"class":700},[609,1813,792],{"class":708},[609,1815,1724],{"class":696},[609,1817,701],{"class":700},[609,1819,761],{"class":708},[609,1821,1052],{"class":618},[609,1823,761],{"class":708},[609,1825,1587],{"class":708},[609,1827,709],{"class":708},[609,1829,1830],{"class":712},"c",[609,1832,716],{"class":708},[609,1834,719],{"class":704},[609,1836,722],{"class":708},[609,1838,1839,1841,1843,1845,1847,1849,1851,1853,1856,1858,1860,1862,1864],{"class":611,"line":767},[609,1840,728],{"class":704},[609,1842,908],{"class":700},[609,1844,734],{"class":708},[609,1846,846],{"class":696},[609,1848,701],{"class":740},[609,1850,1830],{"class":700},[609,1852,792],{"class":708},[609,1854,1855],{"class":696},"get",[609,1857,701],{"class":740},[609,1859,761],{"class":708},[609,1861,917],{"class":618},[609,1863,761],{"class":708},[609,1865,1866],{"class":740},"))\n",[609,1868,1869],{"class":611,"line":775},[609,1870,1681],{"class":1680},[609,1872,1873,1875],{"class":611,"line":784},[609,1874,804],{"class":708},[609,1876,781],{"class":700},[599,1878,1880],{"className":679,"code":1879,"filename":265,"language":682,"meta":605,"style":605},"import { createAILogger } from 'evlog\u002Fai'\n\napp.post('\u002Fapi\u002Fchat', async (request) => {\n  const ai = createAILogger(request.log)\n  \u002F\u002F ...\n})\n",[530,1881,1882,1900,1904,1936,1956,1960],{"__ignoreMap":605},[609,1883,1884,1886,1888,1890,1892,1894,1896,1898],{"class":611,"line":612},[609,1885,817],{"class":689},[609,1887,820],{"class":708},[609,1889,846],{"class":700},[609,1891,826],{"class":708},[609,1893,829],{"class":689},[609,1895,755],{"class":708},[609,1897,532],{"class":618},[609,1899,837],{"class":708},[609,1901,1902],{"class":611,"line":725},[609,1903,862],{"emptyLinePlaceholder":861},[609,1905,1906,1908,1910,1912,1914,1916,1918,1920,1922,1925,1927,1930,1932,1934],{"class":611,"line":746},[609,1907,1719],{"class":700},[609,1909,792],{"class":708},[609,1911,1724],{"class":696},[609,1913,701],{"class":700},[609,1915,761],{"class":708},[609,1917,1052],{"class":618},[609,1919,761],{"class":708},[609,1921,1587],{"class":708},[609,1923,1924],{"class":704}," async",[609,1926,709],{"class":708},[609,1928,1929],{"class":712},"request",[609,1931,716],{"class":708},[609,1933,719],{"class":704},[609,1935,722],{"class":708},[609,1937,1938,1940,1942,1944,1946,1948,1950,1952,1954],{"class":611,"line":767},[609,1939,728],{"class":704},[609,1941,908],{"class":700},[609,1943,734],{"class":708},[609,1945,846],{"class":696},[609,1947,701],{"class":740},[609,1949,1929],{"class":700},[609,1951,792],{"class":708},[609,1953,917],{"class":700},[609,1955,781],{"class":740},[609,1957,1958],{"class":611,"line":775},[609,1959,1681],{"class":1680},[609,1961,1962,1964],{"class":611,"line":784},[609,1963,804],{"class":708},[609,1965,781],{"class":700},[599,1967,1969],{"className":679,"code":1968,"filename":250,"language":682,"meta":605,"style":605},"import { useLogger } from 'evlog\u002Fnestjs'\nimport { createAILogger } from 'evlog\u002Fai'\n\nconst log = useLogger()\nconst ai = createAILogger(log)\n",[530,1970,1971,1990,2008,2012,2024],{"__ignoreMap":605},[609,1972,1973,1975,1977,1979,1981,1983,1985,1988],{"class":611,"line":612},[609,1974,817],{"class":689},[609,1976,820],{"class":708},[609,1978,823],{"class":700},[609,1980,826],{"class":708},[609,1982,829],{"class":689},[609,1984,755],{"class":708},[609,1986,1987],{"class":618},"evlog\u002Fnestjs",[609,1989,837],{"class":708},[609,1991,1992,1994,1996,1998,2000,2002,2004,2006],{"class":611,"line":725},[609,1993,817],{"class":689},[609,1995,820],{"class":708},[609,1997,846],{"class":700},[609,1999,826],{"class":708},[609,2001,829],{"class":689},[609,2003,755],{"class":708},[609,2005,532],{"class":618},[609,2007,837],{"class":708},[609,2009,2010],{"class":611,"line":746},[609,2011,862],{"emptyLinePlaceholder":861},[609,2013,2014,2016,2018,2020,2022],{"class":611,"line":767},[609,2015,1545],{"class":704},[609,2017,1548],{"class":700},[609,2019,1551],{"class":708},[609,2021,823],{"class":696},[609,2023,798],{"class":700},[609,2025,2026,2028,2030,2032,2034],{"class":611,"line":775},[609,2027,1545],{"class":704},[609,2029,1563],{"class":700},[609,2031,1551],{"class":708},[609,2033,846],{"class":696},[609,2035,1570],{"class":700},[599,2037,2039],{"className":679,"code":2038,"filename":285,"language":682,"meta":605,"style":605},"import { createLogger } from 'evlog'\nimport { createAILogger } from 'evlog\u002Fai'\n\nconst log = createLogger()\nconst ai = createAILogger(log)\n\u002F\u002F ...\nlog.emit()\n",[530,2040,2041,2060,2078,2082,2094,2106,2111],{"__ignoreMap":605},[609,2042,2043,2045,2047,2050,2052,2054,2056,2058],{"class":611,"line":612},[609,2044,817],{"class":689},[609,2046,820],{"class":708},[609,2048,2049],{"class":700}," createLogger",[609,2051,826],{"class":708},[609,2053,829],{"class":689},[609,2055,755],{"class":708},[609,2057,834],{"class":618},[609,2059,837],{"class":708},[609,2061,2062,2064,2066,2068,2070,2072,2074,2076],{"class":611,"line":725},[609,2063,817],{"class":689},[609,2065,820],{"class":708},[609,2067,846],{"class":700},[609,2069,826],{"class":708},[609,2071,829],{"class":689},[609,2073,755],{"class":708},[609,2075,532],{"class":618},[609,2077,837],{"class":708},[609,2079,2080],{"class":611,"line":746},[609,2081,862],{"emptyLinePlaceholder":861},[609,2083,2084,2086,2088,2090,2092],{"class":611,"line":767},[609,2085,1545],{"class":704},[609,2087,1548],{"class":700},[609,2089,1551],{"class":708},[609,2091,2049],{"class":696},[609,2093,798],{"class":700},[609,2095,2096,2098,2100,2102,2104],{"class":611,"line":775},[609,2097,1545],{"class":704},[609,2099,1563],{"class":700},[609,2101,1551],{"class":708},[609,2103,846],{"class":696},[609,2105,1570],{"class":700},[609,2107,2108],{"class":611,"line":784},[609,2109,2110],{"class":1680},"\u002F\u002F ...\n",[609,2112,2113,2115,2117,2120],{"class":611,"line":801},[609,2114,917],{"class":700},[609,2116,792],{"class":708},[609,2118,2119],{"class":696},"emit",[609,2121,798],{"class":700},[2123,2124,2125],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}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 .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 .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}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 pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}",{"title":605,"searchDepth":725,"depth":725,"links":2127},[2128,2129,2130,2131,2132],{"id":590,"depth":725,"text":591},{"id":668,"depth":725,"text":25},{"id":1329,"depth":725,"text":1330},{"id":1454,"depth":725,"text":1455},{"id":1487,"depth":725,"text":1488},"Capture token usage, tool calls, model info, and streaming metrics from the Vercel AI SDK into wide events. Wrap your model and get full AI observability with one line.","md",[2136,2139,2140,2141],{"label":1462,"icon":329,"to":327,"color":2137,"variant":2138},"neutral","subtle",{"label":331,"icon":334,"to":332,"color":2137,"variant":2138},{"label":1424,"icon":339,"to":337,"color":2137,"variant":2138},{"label":1479,"icon":344,"to":342,"color":2137,"variant":2138},{},{"title":36,"icon":39},{"title":522,"description":2133},"afR8MOWgyqjN03Jwl-Q1YlMSqKPyBPd1hGsUvUA-lvM",[2147,2149],{"title":312,"path":313,"stem":314,"description":2148,"icon":315,"children":-1},"Capture browser events with structured logging. Same API as the server, with automatic console styling, user identity context, and optional server transport.",{"title":326,"path":327,"stem":328,"description":2150,"icon":329,"children":-1},"streamText, generateText, multi-step agents, RAG, and multiple models — every common AI SDK pattern wired into evlog.",1785679379028]