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