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