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