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