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