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