[{"data":1,"prerenderedAt":4506},["ShallowReactive",2],{"navigation_docs":3,"-use-cases-eve":538,"-use-cases-eve-surround":4501},[4,30,80,128,308,440,499],{"title":5,"path":6,"stem":7,"children":8,"page":29},"Start","\u002Fstart","1.start",[9,14,19,24],{"title":10,"path":11,"stem":12,"icon":13},"Introduction","\u002Fstart\u002Fintroduction","1.start\u002F1.introduction","i-lucide-info",{"title":15,"path":16,"stem":17,"icon":18},"Why start with evlog","\u002Fstart\u002Fwhy-evlog","1.start\u002F2.why-evlog","i-lucide-rocket",{"title":20,"path":21,"stem":22,"icon":23},"Installation","\u002Fstart\u002Finstallation","1.start\u002F3.installation","i-lucide-download",{"title":25,"path":26,"stem":27,"icon":28},"Quick Start","\u002Fstart\u002Fquick-start","1.start\u002F4.quick-start","i-lucide-zap",false,{"title":31,"path":32,"stem":33,"children":34,"page":29},"Learn","\u002Flearn","2.learn",[35,40,45,50,55,60,65,70,75],{"title":36,"path":37,"stem":38,"icon":39},"Overview","\u002Flearn\u002Foverview","2.learn\u002F0.overview","i-lucide-list",{"title":41,"path":42,"stem":43,"icon":44},"Simple Logging","\u002Flearn\u002Fsimple-logging","2.learn\u002F1.simple-logging","i-lucide-terminal",{"title":46,"path":47,"stem":48,"icon":49},"Wide Events","\u002Flearn\u002Fwide-events","2.learn\u002F2.wide-events","i-lucide-layers",{"title":51,"path":52,"stem":53,"icon":54},"Structured Errors","\u002Flearn\u002Fstructured-errors","2.learn\u002F3.structured-errors","i-lucide-shield-alert",{"title":56,"path":57,"stem":58,"icon":59},"Lifecycle","\u002Flearn\u002Flifecycle","2.learn\u002F4.lifecycle","i-lucide-arrow-right-left",{"title":61,"path":62,"stem":63,"icon":64},"Sampling","\u002Flearn\u002Fsampling","2.learn\u002F5.sampling","i-lucide-filter",{"title":66,"path":67,"stem":68,"icon":69},"Auto-Redaction","\u002Flearn\u002Fredaction","2.learn\u002F6.redaction","i-lucide-eye-off",{"title":71,"path":72,"stem":73,"icon":74},"Typed Fields","\u002Flearn\u002Ftyped-fields","2.learn\u002F7.typed-fields","i-simple-icons-typescript",{"title":76,"path":77,"stem":78,"icon":79},"Catalogs","\u002Flearn\u002Fcatalogs","2.learn\u002F8.catalogs","i-lucide-book-open",{"title":81,"path":82,"stem":83,"children":84,"page":29},"CLI","\u002Fcli","3.cli",[85,88,93,98,103,108,113,118,123],{"title":36,"path":86,"stem":87,"icon":44},"\u002Fcli\u002Foverview","3.cli\u002F0.overview",{"title":89,"path":90,"stem":91,"icon":92},"init","\u002Fcli\u002Finit","3.cli\u002F1.init","i-lucide-wand-sparkles",{"title":94,"path":95,"stem":96,"icon":97},"map","\u002Fcli\u002Fmap","3.cli\u002F2.map","i-lucide-radar",{"title":99,"path":100,"stem":101,"icon":102},"Rules","\u002Fcli\u002Frules","3.cli\u002F3.rules","i-lucide-list-checks",{"title":104,"path":105,"stem":106,"icon":107},"Scoring","\u002Fcli\u002Fscoring","3.cli\u002F4.scoring","i-lucide-gauge",{"title":109,"path":110,"stem":111,"icon":112},"CI","\u002Fcli\u002Fci","3.cli\u002F5.ci","i-lucide-git-pull-request",{"title":114,"path":115,"stem":116,"icon":117},"doctor","\u002Fcli\u002Fdoctor","3.cli\u002F6.doctor","i-lucide-stethoscope",{"title":119,"path":120,"stem":121,"icon":122},"telemetry","\u002Fcli\u002Ftelemetry","3.cli\u002F7.telemetry","i-lucide-bar-chart-3",{"title":124,"path":125,"stem":126,"icon":127},"agents","\u002Fcli\u002Fagents","3.cli\u002F8.agents","i-lucide-bot",{"title":129,"path":130,"stem":131,"children":132,"page":29},"Integrate","\u002Fintegrate","4.integrate",[133,137,220],{"title":36,"path":134,"stem":135,"icon":136},"\u002Fintegrate\u002Foverview","4.integrate\u002F0.overview","i-lucide-plug",{"title":138,"path":139,"stem":140,"children":141,"page":29},"Adapters","\u002Fintegrate\u002Fadapters","4.integrate\u002Fadapters",[142,145,175,200],{"title":36,"path":143,"stem":144,"icon":39},"\u002Fintegrate\u002Fadapters\u002Foverview","4.integrate\u002Fadapters\u002F01.overview",{"title":146,"path":147,"stem":148,"children":149,"page":29},"Cloud","\u002Fintegrate\u002Fadapters\u002Fcloud","4.integrate\u002Fadapters\u002Fcloud",[150,155,160,165,170],{"title":151,"path":152,"stem":153,"icon":154},"Axiom","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Faxiom","4.integrate\u002Fadapters\u002Fcloud\u002F01.axiom","i-custom-axiom",{"title":156,"path":157,"stem":158,"icon":159},"PostHog","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fposthog","4.integrate\u002Fadapters\u002Fcloud\u002F02.posthog","i-simple-icons-posthog",{"title":161,"path":162,"stem":163,"icon":164},"Sentry","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fsentry","4.integrate\u002Fadapters\u002Fcloud\u002F03.sentry","i-simple-icons-sentry",{"title":166,"path":167,"stem":168,"icon":169},"Better Stack","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fbetter-stack","4.integrate\u002Fadapters\u002Fcloud\u002F04.better-stack","i-simple-icons-betterstack",{"title":171,"path":172,"stem":173,"icon":174},"Datadog","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fdatadog","4.integrate\u002Fadapters\u002Fcloud\u002F05.datadog","i-simple-icons-datadog",{"title":176,"path":177,"stem":178,"children":179,"page":29},"Cloud or Self-Hosted","\u002Fintegrate\u002Fadapters\u002Fhybrid","4.integrate\u002Fadapters\u002Fhybrid",[180,185,190,195],{"title":181,"path":182,"stem":183,"icon":184},"Grafana Loki","\u002Fintegrate\u002Fadapters\u002Fhybrid\u002Floki","4.integrate\u002Fadapters\u002Fhybrid\u002F01.loki","i-simple-icons-grafana",{"title":186,"path":187,"stem":188,"icon":189},"ClickHouse","\u002Fintegrate\u002Fadapters\u002Fhybrid\u002Fclickhouse","4.integrate\u002Fadapters\u002Fhybrid\u002F02.clickhouse","i-simple-icons-clickhouse",{"title":191,"path":192,"stem":193,"icon":194},"OTLP","\u002Fintegrate\u002Fadapters\u002Fhybrid\u002Fotlp","4.integrate\u002Fadapters\u002Fhybrid\u002F03.otlp","i-simple-icons-opentelemetry",{"title":196,"path":197,"stem":198,"icon":199},"HyperDX","\u002Fintegrate\u002Fadapters\u002Fhybrid\u002Fhyperdx","4.integrate\u002Fadapters\u002Fhybrid\u002F04.hyperdx","i-custom-hyperdx",{"title":201,"path":202,"stem":203,"children":204,"page":29},"Self-Hosted","\u002Fintegrate\u002Fadapters\u002Fself-hosted","4.integrate\u002Fadapters\u002Fself-hosted",[205,210,215],{"title":206,"path":207,"stem":208,"icon":209},"File System","\u002Fintegrate\u002Fadapters\u002Fself-hosted\u002Ffs","4.integrate\u002Fadapters\u002Fself-hosted\u002F01.fs","i-lucide-hard-drive",{"title":211,"path":212,"stem":213,"icon":214},"NuxtHub","\u002Fintegrate\u002Fadapters\u002Fself-hosted\u002Fnuxthub","4.integrate\u002Fadapters\u002Fself-hosted\u002F02.nuxthub","i-simple-icons-nuxt",{"title":216,"path":217,"stem":218,"icon":219},"Memory","\u002Fintegrate\u002Fadapters\u002Fself-hosted\u002Fmemory","4.integrate\u002Fadapters\u002Fself-hosted\u002F03.memory","i-lucide-cpu",{"title":221,"path":222,"stem":223,"children":224,"page":29},"Frameworks","\u002Fintegrate\u002Fframeworks","4.integrate\u002Fframeworks",[225,229,234,239,244,249,254,259,264,269,274,279,284,289,293,298,303],{"title":36,"path":226,"stem":227,"icon":228},"\u002Fintegrate\u002Fframeworks\u002Foverview","4.integrate\u002Fframeworks\u002F00.overview","i-lucide-layout-grid",{"title":230,"path":231,"stem":232,"icon":233},"Nuxt","\u002Fintegrate\u002Fframeworks\u002Fnuxt","4.integrate\u002Fframeworks\u002F01.nuxt","i-simple-icons-nuxtdotjs",{"title":235,"path":236,"stem":237,"icon":238},"Next.js","\u002Fintegrate\u002Fframeworks\u002Fnextjs","4.integrate\u002Fframeworks\u002F02.nextjs","i-simple-icons-nextdotjs",{"title":240,"path":241,"stem":242,"icon":243},"SvelteKit","\u002Fintegrate\u002Fframeworks\u002Fsveltekit","4.integrate\u002Fframeworks\u002F03.sveltekit","i-simple-icons-svelte",{"title":245,"path":246,"stem":247,"icon":248},"Nitro","\u002Fintegrate\u002Fframeworks\u002Fnitro","4.integrate\u002Fframeworks\u002F04.nitro","i-custom-nitro",{"title":250,"path":251,"stem":252,"icon":253},"TanStack Start","\u002Fintegrate\u002Fframeworks\u002Ftanstack-start","4.integrate\u002Fframeworks\u002F05.tanstack-start","i-custom-tanstack",{"title":255,"path":256,"stem":257,"icon":258},"NestJS","\u002Fintegrate\u002Fframeworks\u002Fnestjs","4.integrate\u002Fframeworks\u002F06.nestjs","i-simple-icons-nestjs",{"title":260,"path":261,"stem":262,"icon":263},"Express","\u002Fintegrate\u002Fframeworks\u002Fexpress","4.integrate\u002Fframeworks\u002F07.express","i-simple-icons-express",{"title":265,"path":266,"stem":267,"icon":268},"Hono","\u002Fintegrate\u002Fframeworks\u002Fhono","4.integrate\u002Fframeworks\u002F08.hono","i-simple-icons-hono",{"title":270,"path":271,"stem":272,"icon":273},"Fastify","\u002Fintegrate\u002Fframeworks\u002Ffastify","4.integrate\u002Fframeworks\u002F09.fastify","i-simple-icons-fastify",{"title":275,"path":276,"stem":277,"icon":278},"Elysia","\u002Fintegrate\u002Fframeworks\u002Felysia","4.integrate\u002Fframeworks\u002F10.elysia","i-custom-elysia",{"title":280,"path":281,"stem":282,"icon":283},"React Router","\u002Fintegrate\u002Fframeworks\u002Freact-router","4.integrate\u002Fframeworks\u002F11.react-router","i-custom-reactrouter",{"title":285,"path":286,"stem":287,"icon":288},"Cloudflare Workers","\u002Fintegrate\u002Fframeworks\u002Fcloudflare-workers","4.integrate\u002Fframeworks\u002F12.cloudflare-workers","i-simple-icons-cloudflare",{"title":290,"path":291,"stem":292,"icon":74},"Standalone","\u002Fintegrate\u002Fframeworks\u002Fstandalone","4.integrate\u002Fframeworks\u002F13.standalone",{"title":294,"path":295,"stem":296,"icon":297},"Astro","\u002Fintegrate\u002Fframeworks\u002Fastro","4.integrate\u002Fframeworks\u002F14.astro","i-simple-icons-astro",{"title":299,"path":300,"stem":301,"icon":302},"oRPC","\u002Fintegrate\u002Fframeworks\u002Forpc","4.integrate\u002Fframeworks\u002F15.orpc","i-lucide-network",{"title":304,"path":305,"stem":306,"icon":307},"AWS Lambda","\u002Fintegrate\u002Fframeworks\u002Faws-lambda","4.integrate\u002Fframeworks\u002F16.aws-lambda","i-custom-lambda",{"title":309,"path":310,"stem":311,"children":312,"page":29},"Use Cases","\u002Fuse-cases","5.use-cases",[313,316,321,350,377,409,430,435],{"title":36,"path":314,"stem":315,"icon":102},"\u002Fuse-cases\u002Foverview","5.use-cases\u002F0.overview",{"title":317,"path":318,"stem":319,"icon":320},"Client Logging","\u002Fuse-cases\u002Fclient-logging","5.use-cases\u002F1.client-logging","i-lucide-monitor",{"title":322,"icon":323,"path":324,"stem":325,"children":326,"page":29},"AI SDK","i-simple-icons-vercel","\u002Fuse-cases\u002Fai-sdk","5.use-cases\u002F2.ai-sdk",[327,330,335,340,345],{"title":36,"path":328,"stem":329,"icon":39},"\u002Fuse-cases\u002Fai-sdk\u002Foverview","5.use-cases\u002F2.ai-sdk\u002F01.overview",{"title":331,"path":332,"stem":333,"icon":334},"Usage","\u002Fuse-cases\u002Fai-sdk\u002Fusage","5.use-cases\u002F2.ai-sdk\u002F02.usage","i-lucide-code",{"title":336,"path":337,"stem":338,"icon":339},"Options","\u002Fuse-cases\u002Fai-sdk\u002Foptions","5.use-cases\u002F2.ai-sdk\u002F03.options","i-lucide-sliders",{"title":341,"path":342,"stem":343,"icon":344},"Metadata","\u002Fuse-cases\u002Fai-sdk\u002Fmetadata","5.use-cases\u002F2.ai-sdk\u002F04.metadata","i-lucide-database",{"title":346,"path":347,"stem":348,"icon":349},"Telemetry","\u002Fuse-cases\u002Fai-sdk\u002Ftelemetry","5.use-cases\u002F2.ai-sdk\u002F05.telemetry","i-lucide-activity",{"title":351,"icon":352,"path":353,"stem":354,"children":355,"page":29},"Better Auth","i-simple-icons-betterauth","\u002Fuse-cases\u002Fbetter-auth","5.use-cases\u002F3.better-auth",[356,359,364,369,373],{"title":36,"path":357,"stem":358,"icon":39},"\u002Fuse-cases\u002Fbetter-auth\u002Foverview","5.use-cases\u002F3.better-auth\u002F01.overview",{"title":360,"path":361,"stem":362,"icon":363},"Identify User","\u002Fuse-cases\u002Fbetter-auth\u002Fidentify-user","5.use-cases\u002F3.better-auth\u002F02.identify-user","i-lucide-user-check",{"title":365,"path":366,"stem":367,"icon":368},"Middleware","\u002Fuse-cases\u002Fbetter-auth\u002Fmiddleware","5.use-cases\u002F3.better-auth\u002F03.middleware","i-lucide-shield",{"title":370,"path":371,"stem":372,"icon":320},"Client Sync","\u002Fuse-cases\u002Fbetter-auth\u002Fclient-sync","5.use-cases\u002F3.better-auth\u002F04.client-sync",{"title":374,"path":375,"stem":376,"icon":107},"Performance","\u002Fuse-cases\u002Fbetter-auth\u002Fperformance","5.use-cases\u002F3.better-auth\u002F05.performance",{"title":378,"icon":379,"path":380,"stem":381,"children":382,"page":29},"Audit Logs","i-lucide-shield-check","\u002Fuse-cases\u002Faudit","5.use-cases\u002F4.audit",[383,386,391,396,401,405],{"title":36,"path":384,"stem":385,"icon":39},"\u002Fuse-cases\u002Faudit\u002Foverview","5.use-cases\u002F4.audit\u002F01.overview",{"title":387,"path":388,"stem":389,"icon":390},"Schema","\u002Fuse-cases\u002Faudit\u002Fschema","5.use-cases\u002F4.audit\u002F02.schema","i-lucide-file-text",{"title":392,"path":393,"stem":394,"icon":395},"Recording","\u002Fuse-cases\u002Faudit\u002Frecording","5.use-cases\u002F4.audit\u002F03.recording","i-lucide-pen-line",{"title":397,"path":398,"stem":399,"icon":400},"Drains","\u002Fuse-cases\u002Faudit\u002Fpipeline","5.use-cases\u002F4.audit\u002F04.pipeline","i-lucide-link",{"title":402,"path":403,"stem":404,"icon":379},"Compliance","\u002Fuse-cases\u002Faudit\u002Fcompliance","5.use-cases\u002F4.audit\u002F05.compliance",{"title":406,"path":407,"stem":408,"icon":79},"Recipes","\u002Fuse-cases\u002Faudit\u002Frecipes","5.use-cases\u002F4.audit\u002F06.recipes",{"title":346,"icon":107,"path":410,"stem":411,"children":412,"page":29},"\u002Fuse-cases\u002Ftelemetry","5.use-cases\u002F4.telemetry",[413,416,421,426],{"title":36,"path":414,"stem":415,"icon":39},"\u002Fuse-cases\u002Ftelemetry\u002Foverview","5.use-cases\u002F4.telemetry\u002F01.overview",{"title":417,"path":418,"stem":419,"icon":420},"Setup","\u002Fuse-cases\u002Ftelemetry\u002Fsetup","5.use-cases\u002F4.telemetry\u002F02.setup","i-lucide-wrench",{"title":422,"path":423,"stem":424,"icon":425},"Ingest","\u002Fuse-cases\u002Ftelemetry\u002Fingest","5.use-cases\u002F4.telemetry\u002F03.ingest","i-lucide-server",{"title":427,"path":428,"stem":429,"icon":79},"Reference","\u002Fuse-cases\u002Ftelemetry\u002Freference","5.use-cases\u002F4.telemetry\u002F04.reference",{"title":431,"path":432,"stem":433,"icon":434},"Enrichers","\u002Fuse-cases\u002Fenrichers","5.use-cases\u002F5.enrichers","i-lucide-sparkles",{"title":436,"path":437,"stem":438,"icon":439},"eve","\u002Fuse-cases\u002Feve","5.use-cases\u002F5.eve","i-custom-eve",{"title":441,"path":442,"stem":443,"children":444,"page":29},"Extend","\u002Fextend","6.extend",[445,449,454,459,463,468,472,476,480,484,489,494],{"title":36,"path":446,"stem":447,"icon":448},"\u002Fextend\u002Foverview","6.extend\u002F0.overview","i-lucide-blocks",{"title":450,"path":451,"stem":452,"icon":453},"Stream","\u002Fextend\u002Fstream","6.extend\u002F1.stream","i-lucide-radio-tower",{"title":455,"path":456,"stem":457,"icon":458},"Custom framework","\u002Fextend\u002Fcustom-framework","6.extend\u002F10.custom-framework","i-lucide-puzzle",{"title":460,"path":461,"stem":462,"icon":453},"Diagnostics channel","\u002Fextend\u002Fdiagnostics-channel","6.extend\u002F11.diagnostics-channel",{"title":464,"path":465,"stem":466,"icon":467},"FS reader","\u002Fextend\u002Ffs-reader","6.extend\u002F2.fs-reader","i-lucide-folder-search",{"title":406,"path":469,"stem":470,"icon":471},"\u002Fextend\u002Fconsumer-recipes","6.extend\u002F3.consumer-recipes","i-lucide-chef-hat",{"title":473,"path":474,"stem":475,"icon":448},"Plugins","\u002Fextend\u002Fplugins","6.extend\u002F4.plugins",{"title":477,"path":478,"stem":479,"icon":434},"Custom enrichers","\u002Fextend\u002Fcustom-enrichers","6.extend\u002F5.custom-enrichers",{"title":481,"path":482,"stem":483,"icon":64},"Tail sampling","\u002Fextend\u002Ftail-sampling","6.extend\u002F6.tail-sampling",{"title":485,"path":486,"stem":487,"icon":488},"Identity headers","\u002Fextend\u002Fidentity-headers","6.extend\u002F7.identity-headers","i-lucide-fingerprint",{"title":490,"path":491,"stem":492,"icon":493},"Custom drains","\u002Fextend\u002Fcustom-drains","6.extend\u002F8.custom-drains","i-lucide-share-2",{"title":495,"path":496,"stem":497,"icon":498},"Drain pipeline","\u002Fextend\u002Fdrain-pipeline","6.extend\u002F9.drain-pipeline","i-lucide-workflow",{"title":427,"path":500,"stem":501,"children":502,"page":29},"\u002Freference","7.reference",[503,507,512,515,520,524,529,533],{"title":36,"path":504,"stem":505,"icon":506},"\u002Freference\u002Foverview","7.reference\u002F0.overview","i-lucide-book-marked",{"title":508,"path":509,"stem":510,"icon":511},"Configuration","\u002Freference\u002Fconfiguration","7.reference\u002F1.configuration","i-lucide-settings",{"title":374,"path":513,"stem":514,"icon":107},"\u002Freference\u002Fperformance","7.reference\u002F2.performance",{"title":516,"path":517,"stem":518,"icon":519},"Vite Plugin","\u002Freference\u002Fvite-plugin","7.reference\u002F3.vite-plugin","i-custom-vite",{"title":521,"path":522,"stem":523,"icon":379},"Best Practices","\u002Freference\u002Fbest-practices","7.reference\u002F4.best-practices",{"title":525,"path":526,"stem":527,"icon":528},"vs Other Loggers","\u002Freference\u002Fvs-other-loggers","7.reference\u002F5.vs-other-loggers","i-lucide-scale",{"title":530,"path":531,"stem":532,"icon":434},"Agent Skills","\u002Freference\u002Fagent-skills","7.reference\u002F6.agent-skills",{"title":534,"path":535,"stem":536,"icon":537},"Cost","\u002Freference\u002Fcost","7.reference\u002F7.cost","i-lucide-receipt",{"id":539,"title":436,"body":540,"description":4490,"extension":4491,"links":4492,"meta":4497,"navigation":4498,"path":437,"seo":4499,"stem":438,"__hash__":4500},"docs\u002F5.use-cases\u002F5.eve.md",{"type":541,"value":542,"toc":4469},"minimark",[543,575,593,638,643,714,717,722,802,806,813,1019,1030,1034,1060,1069,1350,1370,1374,1411,1415,1418,2047,2050,2433,2476,2480,2483,2678,2682,2688,2726,2742,2753,2855,2873,2877,2893,2903,3430,3443,3453,3486,3493,3496,3591,3598,3602,3605,3859,3925,3928,4074,4077,4083,4338,4342,4365,4369,4409,4431,4435,4465],[544,545,546,552,553,557,558,561,562,566,567,570,571,574],"p",{},[547,548,436],"a",{"href":549,"rel":550},"https:\u002F\u002Feve.dev\u002Fdocs\u002Fintroduction",[551],"nofollow"," ships built-in observability: ",[554,555,556],"strong",{},"Agent Runs"," on Vercel and optional ",[554,559,560],{},"OpenTelemetry"," spans via ",[563,564,565],"code",{},"agent\u002Finstrumentation.ts",". ",[563,568,569],{},"evlog\u002Feve"," adds a third layer: ",[554,572,573],{},"exportable wide events"," per turn with your full evlog pipeline (drains, enrichers, tail sampling, audit).",[576,577,579,581,582,585,586,588,589,592],"callout",{"color":578,"icon":13},"info",[563,580,569],{}," requires ",[554,583,584],{},"eve 0.30 or later",". eve is still in beta and stream event shapes may change before GA, so pin ",[563,587,436],{}," and ",[563,590,591],{},"evlog"," versions in production agents.",[594,595,598,601,626],"prompt",{":actions":596,"description":597,"icon":439},"[\"copy\",\"cursor\",\"claude\"]","Add evlog wide events to my eve agent",[544,599,600],{},"Add evlog wide events to my eve agent.",[602,603,604,608,611,614,617,620,623],"ul",{},[605,606,607],"li",{},"Install evlog: pnpm add evlog",[605,609,610],{},"Create agent\u002Fhooks\u002Fevlog.ts with defineEvlogHook from 'evlog\u002Feve'",[605,612,613],{},"Pass drain, enrich, and keep options (same as HTTP middleware integrations)",[605,615,616],{},"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",[605,618,619],{},"User message content is omitted by default (message: 'omit'); use 'preview' or 'full' only after reviewing PII policy",[605,621,622],{},"Optionally add agent\u002Finstrumentation.ts with defineEvlogInstrumentation from 'evlog\u002Feve' to join OTel spans to the wide events",[605,624,625],{},"Keep eve Agent Runs. evlog\u002Feve is additive",[544,627,628,629,633,634],{},"Docs: ",[547,630,631],{"href":631,"rel":632},"https:\u002F\u002Fwww.evlog.dev\u002Fuse-cases\u002Feve",[551],"\nAdapters: ",[547,635,636],{"href":636,"rel":637},"https:\u002F\u002Fwww.evlog.dev\u002Fintegrate\u002Fadapters\u002Foverview",[551],[639,640,642],"h2",{"id":641},"when-to-use-what","When to use what",[644,645,646,659],"table",{},[647,648,649],"thead",{},[650,651,652,656],"tr",{},[653,654,655],"th",{},"Need",[653,657,658],{},"Use",[660,661,662,674,686,697],"tbody",{},[650,663,664,668],{},[665,666,667],"td",{},"Debug a session in Vercel",[665,669,670,671,673],{},"eve ",[554,672,556],{}," (automatic)",[650,675,676,679],{},[665,677,678],{},"Span-level traces in Datadog \u002F Honeycomb",[665,680,670,681,685],{},[554,682,683],{},[563,684,565],{}," + OTel exporter",[650,687,688,691],{},[665,689,690],{},"Wide events to Axiom \u002F Better Stack \u002F FS, billing, audit, tail sampling",[665,692,693],{},[554,694,695],{},[563,696,569],{},[650,698,699,702],{},[665,700,701],{},"Jumping from a span to its wide event, and back",[665,703,704,709,710],{},[554,705,706],{},[563,707,708],{},"defineEvlogInstrumentation()"," — ",[547,711,713],{"href":712},"#correlate-traces-with-wide-events","below",[639,715,25],{"id":716},"quick-start",[718,719,721],"h3",{"id":720},"_1-install","1. Install",[723,724,725,753,769,785],"code-group",{},[726,727,733],"pre",{"className":728,"code":729,"filename":730,"language":731,"meta":732,"style":732},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","pnpm add evlog eve\n","pnpm","bash","",[563,734,735],{"__ignoreMap":732},[736,737,740,743,747,750],"span",{"class":738,"line":739},"line",1,[736,741,730],{"class":742},"sBMFI",[736,744,746],{"class":745},"sfazB"," add",[736,748,749],{"class":745}," evlog",[736,751,752],{"class":745}," eve\n",[726,754,757],{"className":728,"code":755,"filename":756,"language":731,"meta":732,"style":732},"bun add evlog eve\n","bun",[563,758,759],{"__ignoreMap":732},[736,760,761,763,765,767],{"class":738,"line":739},[736,762,756],{"class":742},[736,764,746],{"class":745},[736,766,749],{"class":745},[736,768,752],{"class":745},[726,770,773],{"className":728,"code":771,"filename":772,"language":731,"meta":732,"style":732},"yarn add evlog eve\n","yarn",[563,774,775],{"__ignoreMap":732},[736,776,777,779,781,783],{"class":738,"line":739},[736,778,772],{"class":742},[736,780,746],{"class":745},[736,782,749],{"class":745},[736,784,752],{"class":745},[726,786,789],{"className":728,"code":787,"filename":788,"language":731,"meta":732,"style":732},"npm install evlog eve\n","npm",[563,790,791],{"__ignoreMap":732},[736,792,793,795,798,800],{"class":738,"line":739},[736,794,788],{"class":742},[736,796,797],{"class":745}," install",[736,799,749],{"class":745},[736,801,752],{"class":745},[718,803,805],{"id":804},"_2-add-the-hook","2. Add the hook",[544,807,808,809,812],{},"Create ",[563,810,811],{},"agent\u002Fhooks\u002Fevlog.ts",":",[726,814,818],{"className":815,"code":816,"filename":811,"language":817,"meta":732,"style":732},"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",[563,819,820,848,869,876,894,930,946,971,1004,1010],{"__ignoreMap":732},[736,821,822,826,830,834,837,840,843,845],{"class":738,"line":739},[736,823,825],{"class":824},"s7zQu","import",[736,827,829],{"class":828},"sMK4o"," {",[736,831,833],{"class":832},"sTEyZ"," defineEvlogHook",[736,835,836],{"class":828}," }",[736,838,839],{"class":824}," from",[736,841,842],{"class":828}," '",[736,844,569],{"class":745},[736,846,847],{"class":828},"'\n",[736,849,851,853,855,858,860,862,864,867],{"class":738,"line":850},2,[736,852,825],{"class":824},[736,854,829],{"class":828},[736,856,857],{"class":832}," createAxiomDrain",[736,859,836],{"class":828},[736,861,839],{"class":824},[736,863,842],{"class":828},[736,865,866],{"class":745},"evlog\u002Faxiom",[736,868,847],{"class":828},[736,870,872],{"class":738,"line":871},3,[736,873,875],{"emptyLinePlaceholder":874},true,"\n",[736,877,879,882,885,888,891],{"class":738,"line":878},4,[736,880,881],{"class":824},"export",[736,883,884],{"class":824}," default",[736,886,833],{"class":887},"s2Zo4",[736,889,890],{"class":832},"(",[736,892,893],{"class":828},"{\n",[736,895,897,901,903,905,908,910,912,915,917,919,922,925,927],{"class":738,"line":896},5,[736,898,900],{"class":899},"swJcz","  init",[736,902,812],{"class":828},[736,904,829],{"class":828},[736,906,907],{"class":899}," env",[736,909,812],{"class":828},[736,911,829],{"class":828},[736,913,914],{"class":899}," service",[736,916,812],{"class":828},[736,918,842],{"class":828},[736,920,921],{"class":745},"my-agent",[736,923,924],{"class":828},"'",[736,926,836],{"class":828},[736,928,929],{"class":828}," },\n",[736,931,933,936,938,940,943],{"class":738,"line":932},6,[736,934,935],{"class":899},"  drain",[736,937,812],{"class":828},[736,939,857],{"class":887},[736,941,942],{"class":832},"()",[736,944,945],{"class":828},",\n",[736,947,949,952,954,957,961,964,968],{"class":738,"line":948},7,[736,950,951],{"class":887},"  enrich",[736,953,812],{"class":828},[736,955,956],{"class":828}," (",[736,958,960],{"class":959},"sHdIc","ctx",[736,962,963],{"class":828},")",[736,965,967],{"class":966},"spNyl"," =>",[736,969,970],{"class":828}," {\n",[736,972,974,977,980,983,985,988,991,994,996,999,1001],{"class":738,"line":973},8,[736,975,976],{"class":832},"    ctx",[736,978,979],{"class":828},".",[736,981,982],{"class":832},"event",[736,984,979],{"class":828},[736,986,987],{"class":832},"region",[736,989,990],{"class":828}," =",[736,992,993],{"class":832}," process",[736,995,979],{"class":828},[736,997,998],{"class":832},"env",[736,1000,979],{"class":828},[736,1002,1003],{"class":832},"VERCEL_REGION\n",[736,1005,1007],{"class":738,"line":1006},9,[736,1008,1009],{"class":828},"  },\n",[736,1011,1013,1016],{"class":738,"line":1012},10,[736,1014,1015],{"class":828},"}",[736,1017,1018],{"class":832},")\n",[544,1020,1021,1022,1025,1026,1029],{},"eve auto-discovers hook files under ",[563,1023,1024],{},"agent\u002Fhooks\u002F",". No HTTP middleware, because the unit of work is an agent ",[554,1027,1028],{},"turn",", not a request.",[718,1031,1033],{"id":1032},"_3-log-business-context-from-tools","3. Log business context from tools",[544,1035,1036,1039,1040,1043,1044,1047,1048,1051,1052,1055,1056,1059],{},[563,1037,1038],{},"defineEvlogHook()"," binds the turn logger via ",[554,1041,1042],{},"AsyncLocalStorage"," on ",[563,1045,1046],{},"turn.started",". Inside tool ",[563,1049,1050],{},"execute()"," handlers, call ",[563,1053,1054],{},"useLogger()"," with no arguments, the same ergonomics as ",[563,1057,1058],{},"useLogger(event)"," in Nuxt or Hono.",[544,1061,1062,1063,1068],{},"In the ",[547,1064,1067],{"href":1065,"rel":1066},"https:\u002F\u002Fgithub.com\u002FHugoRCD\u002Fevlog\u002Ftree\u002Fmain\u002Fexamples\u002Feve",[551],"example agent",", support tools attach customer and order context as the agent works a refund:",[726,1070,1073],{"className":815,"code":1071,"filename":1072,"language":817,"meta":732,"style":732},"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",[563,1074,1075,1095,1114,1134,1138,1150,1166,1206,1224,1247,1261,1329,1338,1343],{"__ignoreMap":732},[736,1076,1077,1079,1081,1084,1086,1088,1090,1093],{"class":738,"line":739},[736,1078,825],{"class":824},[736,1080,829],{"class":828},[736,1082,1083],{"class":832}," defineTool",[736,1085,836],{"class":828},[736,1087,839],{"class":824},[736,1089,842],{"class":828},[736,1091,1092],{"class":745},"eve\u002Ftools",[736,1094,847],{"class":828},[736,1096,1097,1099,1101,1104,1106,1108,1110,1112],{"class":738,"line":850},[736,1098,825],{"class":824},[736,1100,829],{"class":828},[736,1102,1103],{"class":832}," useLogger",[736,1105,836],{"class":828},[736,1107,839],{"class":824},[736,1109,842],{"class":828},[736,1111,569],{"class":745},[736,1113,847],{"class":828},[736,1115,1116,1118,1120,1123,1125,1127,1129,1132],{"class":738,"line":871},[736,1117,825],{"class":824},[736,1119,829],{"class":828},[736,1121,1122],{"class":832}," z",[736,1124,836],{"class":828},[736,1126,839],{"class":824},[736,1128,842],{"class":828},[736,1130,1131],{"class":745},"zod",[736,1133,847],{"class":828},[736,1135,1136],{"class":738,"line":878},[736,1137,875],{"emptyLinePlaceholder":874},[736,1139,1140,1142,1144,1146,1148],{"class":738,"line":896},[736,1141,881],{"class":824},[736,1143,884],{"class":824},[736,1145,1083],{"class":887},[736,1147,890],{"class":832},[736,1149,893],{"class":828},[736,1151,1152,1155,1157,1159,1162,1164],{"class":738,"line":932},[736,1153,1154],{"class":899},"  description",[736,1156,812],{"class":828},[736,1158,842],{"class":828},[736,1160,1161],{"class":745},"Look up an order by id.",[736,1163,924],{"class":828},[736,1165,945],{"class":828},[736,1167,1168,1171,1173,1175,1177,1180,1182,1185,1188,1190,1192,1194,1197,1200,1202,1204],{"class":738,"line":948},[736,1169,1170],{"class":899},"  inputSchema",[736,1172,812],{"class":828},[736,1174,1122],{"class":832},[736,1176,979],{"class":828},[736,1178,1179],{"class":887},"object",[736,1181,890],{"class":832},[736,1183,1184],{"class":828},"{",[736,1186,1187],{"class":899}," orderId",[736,1189,812],{"class":828},[736,1191,1122],{"class":832},[736,1193,979],{"class":828},[736,1195,1196],{"class":887},"string",[736,1198,1199],{"class":832},"() ",[736,1201,1015],{"class":828},[736,1203,963],{"class":832},[736,1205,945],{"class":828},[736,1207,1208,1211,1214,1217,1219,1222],{"class":738,"line":973},[736,1209,1210],{"class":966},"  async",[736,1212,1213],{"class":899}," execute",[736,1215,1216],{"class":828},"({",[736,1218,1187],{"class":959},[736,1220,1221],{"class":828}," })",[736,1223,970],{"class":828},[736,1225,1226,1229,1232,1234,1237,1240,1242,1245],{"class":738,"line":1006},[736,1227,1228],{"class":966},"    const",[736,1230,1231],{"class":832}," order",[736,1233,990],{"class":828},[736,1235,1236],{"class":824}," await",[736,1238,1239],{"class":887}," fetchOrder",[736,1241,890],{"class":899},[736,1243,1244],{"class":832},"orderId",[736,1246,1018],{"class":899},[736,1248,1249,1251,1254,1256,1258],{"class":738,"line":1012},[736,1250,1228],{"class":966},[736,1252,1253],{"class":832}," log",[736,1255,990],{"class":828},[736,1257,1103],{"class":887},[736,1259,1260],{"class":899},"()\n",[736,1262,1264,1267,1269,1272,1274,1276,1278,1280,1282,1285,1287,1289,1291,1294,1297,1300,1302,1304,1306,1309,1311,1314,1316,1318,1320,1323,1325,1327],{"class":738,"line":1263},11,[736,1265,1266],{"class":832},"    log",[736,1268,979],{"class":828},[736,1270,1271],{"class":887},"set",[736,1273,890],{"class":899},[736,1275,1184],{"class":828},[736,1277,1231],{"class":899},[736,1279,812],{"class":828},[736,1281,829],{"class":828},[736,1283,1284],{"class":899}," id",[736,1286,812],{"class":828},[736,1288,1231],{"class":832},[736,1290,979],{"class":828},[736,1292,1293],{"class":832},"id",[736,1295,1296],{"class":828},",",[736,1298,1299],{"class":899}," amount",[736,1301,812],{"class":828},[736,1303,1231],{"class":832},[736,1305,979],{"class":828},[736,1307,1308],{"class":832},"amount",[736,1310,1296],{"class":828},[736,1312,1313],{"class":899}," status",[736,1315,812],{"class":828},[736,1317,1231],{"class":832},[736,1319,979],{"class":828},[736,1321,1322],{"class":832},"status",[736,1324,836],{"class":828},[736,1326,836],{"class":828},[736,1328,1018],{"class":899},[736,1330,1332,1335],{"class":738,"line":1331},12,[736,1333,1334],{"class":824},"    return",[736,1336,1337],{"class":832}," order\n",[736,1339,1341],{"class":738,"line":1340},13,[736,1342,1009],{"class":828},[736,1344,1346,1348],{"class":738,"line":1345},14,[736,1347,1015],{"class":828},[736,1349,1018],{"class":832},[576,1351,1353,1356,1357,1359,1360,1362,1363,1366,1367,1369],{"color":1352,"icon":136},"neutral",[554,1354,1355],{},"Fallback:"," if ",[563,1358,1054],{}," throws outside a turn, pass eve tool ",[563,1361,960],{},": ",[563,1364,1365],{},"useLogger(ctx)",". This covers separate hook\u002Ftool bundles or runtimes where AsyncLocalStorage does not propagate. With a standard eve agent layout and ",[563,1368,811],{}," registered, you should not need it.",[718,1371,1373],{"id":1372},"_4-nextjs-web-chat-optional","4. Next.js web chat (optional)",[544,1375,1376,1377,1380,1381,1384,1385,1388,1389,1384,1392,1395,1396,1399,1400,1403,1404,1407,1408,979],{},"Wrap ",[563,1378,1379],{},"next.config.ts"," with ",[563,1382,1383],{},"withEve()"," from ",[563,1386,1387],{},"eve\u002Fnext"," and use ",[563,1390,1391],{},"useEveAgent()",[563,1393,1394],{},"eve\u002Freact"," in your app. eve starts alongside ",[563,1397,1398],{},"next dev"," and proxies ",[563,1401,1402],{},"\u002Feve\u002Fv1\u002F*"," on the same origin, so tool calls, approvals, and ",[563,1405,1406],{},"ask_question"," work out of the box. See the ",[547,1409,1067],{"href":1065,"rel":1410},[551],[639,1412,1414],{"id":1413},"wide-event-shape","Wide event shape",[544,1416,1417],{},"Each completed turn emits one event:",[726,1419,1424],{"className":1420,"code":1421,"filename":1422,"language":1423,"meta":732,"style":732},"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  \"durationMs\": 7903,\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",[563,1425,1426,1430,1453,1473,1489,1509,1525,1545,1557,1578,1598,1614,1634,1648,1652,1702,1764,1813,1827,1844,1860,1877,1894,1915,1930,1981,2029,2035,2041],{"__ignoreMap":732},[736,1427,1428],{"class":738,"line":739},[736,1429,893],{"class":828},[736,1431,1432,1435,1438,1441,1443,1446,1449,1451],{"class":738,"line":850},[736,1433,1434],{"class":828},"  \"",[736,1436,1437],{"class":966},"method",[736,1439,1440],{"class":828},"\"",[736,1442,812],{"class":828},[736,1444,1445],{"class":828}," \"",[736,1447,1448],{"class":745},"EVE",[736,1450,1440],{"class":828},[736,1452,945],{"class":828},[736,1454,1455,1457,1460,1462,1464,1466,1469,1471],{"class":738,"line":871},[736,1456,1434],{"class":828},[736,1458,1459],{"class":966},"path",[736,1461,1440],{"class":828},[736,1463,812],{"class":828},[736,1465,1445],{"class":828},[736,1467,1468],{"class":745},"\u002Fsessions\u002Fsess_abc\u002Fturns\u002Fturn_0",[736,1470,1440],{"class":828},[736,1472,945],{"class":828},[736,1474,1475,1477,1479,1481,1483,1487],{"class":738,"line":878},[736,1476,1434],{"class":828},[736,1478,1322],{"class":966},[736,1480,1440],{"class":828},[736,1482,812],{"class":828},[736,1484,1486],{"class":1485},"sbssI"," 200",[736,1488,945],{"class":828},[736,1490,1491,1493,1496,1498,1500,1502,1505,1507],{"class":738,"line":896},[736,1492,1434],{"class":828},[736,1494,1495],{"class":966},"duration",[736,1497,1440],{"class":828},[736,1499,812],{"class":828},[736,1501,1445],{"class":828},[736,1503,1504],{"class":745},"7.9s",[736,1506,1440],{"class":828},[736,1508,945],{"class":828},[736,1510,1511,1513,1516,1518,1520,1523],{"class":738,"line":932},[736,1512,1434],{"class":828},[736,1514,1515],{"class":966},"durationMs",[736,1517,1440],{"class":828},[736,1519,812],{"class":828},[736,1521,1522],{"class":1485}," 7903",[736,1524,945],{"class":828},[736,1526,1527,1529,1532,1534,1536,1538,1541,1543],{"class":738,"line":948},[736,1528,1434],{"class":828},[736,1530,1531],{"class":966},"service",[736,1533,1440],{"class":828},[736,1535,812],{"class":828},[736,1537,1445],{"class":828},[736,1539,1540],{"class":745},"clearbill-support-agent",[736,1542,1440],{"class":828},[736,1544,945],{"class":828},[736,1546,1547,1549,1551,1553,1555],{"class":738,"line":973},[736,1548,1434],{"class":828},[736,1550,436],{"class":966},[736,1552,1440],{"class":828},[736,1554,812],{"class":828},[736,1556,970],{"class":828},[736,1558,1559,1562,1565,1567,1569,1571,1574,1576],{"class":738,"line":1006},[736,1560,1561],{"class":828},"    \"",[736,1563,1564],{"class":742},"sessionId",[736,1566,1440],{"class":828},[736,1568,812],{"class":828},[736,1570,1445],{"class":828},[736,1572,1573],{"class":745},"sess_abc",[736,1575,1440],{"class":828},[736,1577,945],{"class":828},[736,1579,1580,1582,1585,1587,1589,1591,1594,1596],{"class":738,"line":1012},[736,1581,1561],{"class":828},[736,1583,1584],{"class":742},"turnId",[736,1586,1440],{"class":828},[736,1588,812],{"class":828},[736,1590,1445],{"class":828},[736,1592,1593],{"class":745},"turn_0",[736,1595,1440],{"class":828},[736,1597,945],{"class":828},[736,1599,1600,1602,1605,1607,1609,1612],{"class":738,"line":1263},[736,1601,1561],{"class":828},[736,1603,1604],{"class":742},"turnSequence",[736,1606,1440],{"class":828},[736,1608,812],{"class":828},[736,1610,1611],{"class":1485}," 0",[736,1613,945],{"class":828},[736,1615,1616,1618,1621,1623,1625,1627,1630,1632],{"class":738,"line":1331},[736,1617,1561],{"class":828},[736,1619,1620],{"class":742},"phase",[736,1622,1440],{"class":828},[736,1624,812],{"class":828},[736,1626,1445],{"class":828},[736,1628,1629],{"class":745},"awaiting-approval",[736,1631,1440],{"class":828},[736,1633,945],{"class":828},[736,1635,1636,1638,1641,1643,1645],{"class":738,"line":1340},[736,1637,1561],{"class":828},[736,1639,1640],{"class":742},"sessionTurns",[736,1642,1440],{"class":828},[736,1644,812],{"class":828},[736,1646,1647],{"class":1485}," 1\n",[736,1649,1650],{"class":738,"line":1345},[736,1651,1009],{"class":828},[736,1653,1655,1657,1660,1662,1664,1666,1668,1671,1673,1675,1677,1680,1682,1684,1686,1689,1691,1693,1695,1698,1700],{"class":738,"line":1654},15,[736,1656,1434],{"class":828},[736,1658,1659],{"class":966},"customer",[736,1661,1440],{"class":828},[736,1663,812],{"class":828},[736,1665,829],{"class":828},[736,1667,1445],{"class":828},[736,1669,1670],{"class":742},"slug",[736,1672,1440],{"class":828},[736,1674,812],{"class":828},[736,1676,1445],{"class":828},[736,1678,1679],{"class":745},"acme-corp",[736,1681,1440],{"class":828},[736,1683,1296],{"class":828},[736,1685,1445],{"class":828},[736,1687,1688],{"class":742},"plan",[736,1690,1440],{"class":828},[736,1692,812],{"class":828},[736,1694,1445],{"class":828},[736,1696,1697],{"class":745},"enterprise",[736,1699,1440],{"class":828},[736,1701,929],{"class":828},[736,1703,1705,1707,1710,1712,1714,1716,1718,1720,1722,1724,1726,1729,1731,1733,1735,1737,1739,1741,1744,1746,1748,1751,1753,1755,1757,1760,1762],{"class":738,"line":1704},16,[736,1706,1434],{"class":828},[736,1708,1709],{"class":966},"order",[736,1711,1440],{"class":828},[736,1713,812],{"class":828},[736,1715,829],{"class":828},[736,1717,1445],{"class":828},[736,1719,1293],{"class":742},[736,1721,1440],{"class":828},[736,1723,812],{"class":828},[736,1725,1445],{"class":828},[736,1727,1728],{"class":745},"4821",[736,1730,1440],{"class":828},[736,1732,1296],{"class":828},[736,1734,1445],{"class":828},[736,1736,1308],{"class":742},[736,1738,1440],{"class":828},[736,1740,812],{"class":828},[736,1742,1743],{"class":1485}," 890",[736,1745,1296],{"class":828},[736,1747,1445],{"class":828},[736,1749,1750],{"class":742},"currency",[736,1752,1440],{"class":828},[736,1754,812],{"class":828},[736,1756,1445],{"class":828},[736,1758,1759],{"class":745},"USD",[736,1761,1440],{"class":828},[736,1763,929],{"class":828},[736,1765,1767,1769,1772,1774,1776,1778,1780,1782,1784,1786,1788,1791,1793,1795,1797,1800,1802,1804,1806,1809,1811],{"class":738,"line":1766},17,[736,1768,1434],{"class":828},[736,1770,1771],{"class":966},"approval",[736,1773,1440],{"class":828},[736,1775,812],{"class":828},[736,1777,829],{"class":828},[736,1779,1445],{"class":828},[736,1781,1322],{"class":742},[736,1783,1440],{"class":828},[736,1785,812],{"class":828},[736,1787,1445],{"class":828},[736,1789,1790],{"class":745},"pending",[736,1792,1440],{"class":828},[736,1794,1296],{"class":828},[736,1796,1445],{"class":828},[736,1798,1799],{"class":742},"tool",[736,1801,1440],{"class":828},[736,1803,812],{"class":828},[736,1805,1445],{"class":828},[736,1807,1808],{"class":745},"issue_refund",[736,1810,1440],{"class":828},[736,1812,929],{"class":828},[736,1814,1816,1818,1821,1823,1825],{"class":738,"line":1815},18,[736,1817,1434],{"class":828},[736,1819,1820],{"class":966},"ai",[736,1822,1440],{"class":828},[736,1824,812],{"class":828},[736,1826,970],{"class":828},[736,1828,1830,1832,1835,1837,1839,1842],{"class":738,"line":1829},19,[736,1831,1561],{"class":828},[736,1833,1834],{"class":742},"calls",[736,1836,1440],{"class":828},[736,1838,812],{"class":828},[736,1840,1841],{"class":1485}," 2",[736,1843,945],{"class":828},[736,1845,1847,1849,1852,1854,1856,1858],{"class":738,"line":1846},20,[736,1848,1561],{"class":828},[736,1850,1851],{"class":742},"steps",[736,1853,1440],{"class":828},[736,1855,812],{"class":828},[736,1857,1841],{"class":1485},[736,1859,945],{"class":828},[736,1861,1863,1865,1868,1870,1872,1875],{"class":738,"line":1862},21,[736,1864,1561],{"class":828},[736,1866,1867],{"class":742},"inputTokens",[736,1869,1440],{"class":828},[736,1871,812],{"class":828},[736,1873,1874],{"class":1485}," 11724",[736,1876,945],{"class":828},[736,1878,1880,1882,1885,1887,1889,1892],{"class":738,"line":1879},22,[736,1881,1561],{"class":828},[736,1883,1884],{"class":742},"outputTokens",[736,1886,1440],{"class":828},[736,1888,812],{"class":828},[736,1890,1891],{"class":1485}," 282",[736,1893,945],{"class":828},[736,1895,1897,1899,1902,1904,1906,1908,1911,1913],{"class":738,"line":1896},23,[736,1898,1561],{"class":828},[736,1900,1901],{"class":742},"finishReason",[736,1903,1440],{"class":828},[736,1905,812],{"class":828},[736,1907,1445],{"class":828},[736,1909,1910],{"class":745},"tool-calls",[736,1912,1440],{"class":828},[736,1914,945],{"class":828},[736,1916,1918,1920,1923,1925,1927],{"class":738,"line":1917},24,[736,1919,1561],{"class":828},[736,1921,1922],{"class":742},"tools",[736,1924,1440],{"class":828},[736,1926,812],{"class":828},[736,1928,1929],{"class":828}," [\n",[736,1931,1933,1936,1938,1941,1943,1945,1947,1950,1952,1954,1956,1958,1960,1962,1965,1967,1969,1972,1974,1976,1979],{"class":738,"line":1932},25,[736,1934,1935],{"class":828},"      {",[736,1937,1445],{"class":828},[736,1939,1940],{"class":1485},"name",[736,1942,1440],{"class":828},[736,1944,812],{"class":828},[736,1946,1445],{"class":828},[736,1948,1949],{"class":745},"lookup_customer",[736,1951,1440],{"class":828},[736,1953,1296],{"class":828},[736,1955,1445],{"class":828},[736,1957,1515],{"class":1485},[736,1959,1440],{"class":828},[736,1961,812],{"class":828},[736,1963,1964],{"class":1485}," 26",[736,1966,1296],{"class":828},[736,1968,1445],{"class":828},[736,1970,1971],{"class":1485},"success",[736,1973,1440],{"class":828},[736,1975,812],{"class":828},[736,1977,1978],{"class":828}," true",[736,1980,929],{"class":828},[736,1982,1984,1986,1988,1990,1992,1994,1996,1999,2001,2003,2005,2007,2009,2011,2014,2016,2018,2020,2022,2024,2026],{"class":738,"line":1983},26,[736,1985,1935],{"class":828},[736,1987,1445],{"class":828},[736,1989,1940],{"class":1485},[736,1991,1440],{"class":828},[736,1993,812],{"class":828},[736,1995,1445],{"class":828},[736,1997,1998],{"class":745},"lookup_order",[736,2000,1440],{"class":828},[736,2002,1296],{"class":828},[736,2004,1445],{"class":828},[736,2006,1515],{"class":1485},[736,2008,1440],{"class":828},[736,2010,812],{"class":828},[736,2012,2013],{"class":1485}," 13",[736,2015,1296],{"class":828},[736,2017,1445],{"class":828},[736,2019,1971],{"class":1485},[736,2021,1440],{"class":828},[736,2023,812],{"class":828},[736,2025,1978],{"class":828},[736,2027,2028],{"class":828}," }\n",[736,2030,2032],{"class":738,"line":2031},27,[736,2033,2034],{"class":828},"    ]\n",[736,2036,2038],{"class":738,"line":2037},28,[736,2039,2040],{"class":828},"  }\n",[736,2042,2044],{"class":738,"line":2043},29,[736,2045,2046],{"class":828},"}\n",[544,2048,2049],{},"After approval, the next turn carries the outcome:",[726,2051,2054],{"className":1420,"code":2052,"filename":2053,"language":1423,"meta":732,"style":732},"{\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",[563,2055,2056,2060,2079,2091,2109,2128,2143,2156,2160,2218,2295,2340,2352,2407,2425,2429],{"__ignoreMap":732},[736,2057,2058],{"class":738,"line":739},[736,2059,893],{"class":828},[736,2061,2062,2064,2066,2068,2070,2072,2075,2077],{"class":738,"line":850},[736,2063,1434],{"class":828},[736,2065,1459],{"class":966},[736,2067,1440],{"class":828},[736,2069,812],{"class":828},[736,2071,1445],{"class":828},[736,2073,2074],{"class":745},"\u002Fsessions\u002Fsess_abc\u002Fturns\u002Fturn_1",[736,2076,1440],{"class":828},[736,2078,945],{"class":828},[736,2080,2081,2083,2085,2087,2089],{"class":738,"line":871},[736,2082,1434],{"class":828},[736,2084,436],{"class":966},[736,2086,1440],{"class":828},[736,2088,812],{"class":828},[736,2090,970],{"class":828},[736,2092,2093,2095,2097,2099,2101,2103,2105,2107],{"class":738,"line":878},[736,2094,1561],{"class":828},[736,2096,1564],{"class":742},[736,2098,1440],{"class":828},[736,2100,812],{"class":828},[736,2102,1445],{"class":828},[736,2104,1573],{"class":745},[736,2106,1440],{"class":828},[736,2108,945],{"class":828},[736,2110,2111,2113,2115,2117,2119,2121,2124,2126],{"class":738,"line":896},[736,2112,1561],{"class":828},[736,2114,1584],{"class":742},[736,2116,1440],{"class":828},[736,2118,812],{"class":828},[736,2120,1445],{"class":828},[736,2122,2123],{"class":745},"turn_1",[736,2125,1440],{"class":828},[736,2127,945],{"class":828},[736,2129,2130,2132,2134,2136,2138,2141],{"class":738,"line":932},[736,2131,1561],{"class":828},[736,2133,1604],{"class":742},[736,2135,1440],{"class":828},[736,2137,812],{"class":828},[736,2139,2140],{"class":1485}," 1",[736,2142,945],{"class":828},[736,2144,2145,2147,2149,2151,2153],{"class":738,"line":948},[736,2146,1561],{"class":828},[736,2148,1640],{"class":742},[736,2150,1440],{"class":828},[736,2152,812],{"class":828},[736,2154,2155],{"class":1485}," 2\n",[736,2157,2158],{"class":738,"line":973},[736,2159,1009],{"class":828},[736,2161,2162,2164,2167,2169,2171,2173,2175,2177,2179,2181,2183,2185,2187,2189,2191,2193,2195,2197,2199,2201,2203,2205,2207,2209,2211,2214,2216],{"class":738,"line":1006},[736,2163,1434],{"class":828},[736,2165,2166],{"class":966},"refund",[736,2168,1440],{"class":828},[736,2170,812],{"class":828},[736,2172,829],{"class":828},[736,2174,1445],{"class":828},[736,2176,1244],{"class":742},[736,2178,1440],{"class":828},[736,2180,812],{"class":828},[736,2182,1445],{"class":828},[736,2184,1728],{"class":745},[736,2186,1440],{"class":828},[736,2188,1296],{"class":828},[736,2190,1445],{"class":828},[736,2192,1308],{"class":742},[736,2194,1440],{"class":828},[736,2196,812],{"class":828},[736,2198,1743],{"class":1485},[736,2200,1296],{"class":828},[736,2202,1445],{"class":828},[736,2204,1322],{"class":742},[736,2206,1440],{"class":828},[736,2208,812],{"class":828},[736,2210,1445],{"class":828},[736,2212,2213],{"class":745},"refunded",[736,2215,1440],{"class":828},[736,2217,929],{"class":828},[736,2219,2220,2222,2225,2227,2229,2231,2233,2236,2238,2240,2242,2245,2247,2249,2251,2254,2256,2258,2260,2262,2265,2267,2269,2271,2273,2275,2277,2279,2281,2283,2285,2287,2289,2291,2293],{"class":738,"line":1012},[736,2221,1434],{"class":828},[736,2223,2224],{"class":966},"audit",[736,2226,1440],{"class":828},[736,2228,812],{"class":828},[736,2230,829],{"class":828},[736,2232,1445],{"class":828},[736,2234,2235],{"class":742},"action",[736,2237,1440],{"class":828},[736,2239,812],{"class":828},[736,2241,1445],{"class":828},[736,2243,2244],{"class":745},"refund.issued",[736,2246,1440],{"class":828},[736,2248,1296],{"class":828},[736,2250,1445],{"class":828},[736,2252,2253],{"class":742},"target",[736,2255,1440],{"class":828},[736,2257,812],{"class":828},[736,2259,829],{"class":828},[736,2261,1445],{"class":828},[736,2263,2264],{"class":1485},"type",[736,2266,1440],{"class":828},[736,2268,812],{"class":828},[736,2270,1445],{"class":828},[736,2272,1709],{"class":745},[736,2274,1440],{"class":828},[736,2276,1296],{"class":828},[736,2278,1445],{"class":828},[736,2280,1293],{"class":1485},[736,2282,1440],{"class":828},[736,2284,812],{"class":828},[736,2286,1445],{"class":828},[736,2288,1728],{"class":745},[736,2290,1440],{"class":828},[736,2292,836],{"class":828},[736,2294,929],{"class":828},[736,2296,2297,2299,2301,2303,2305,2307,2309,2311,2313,2315,2317,2320,2322,2324,2326,2328,2330,2332,2334,2336,2338],{"class":738,"line":1263},[736,2298,1434],{"class":828},[736,2300,1771],{"class":966},[736,2302,1440],{"class":828},[736,2304,812],{"class":828},[736,2306,829],{"class":828},[736,2308,1445],{"class":828},[736,2310,1322],{"class":742},[736,2312,1440],{"class":828},[736,2314,812],{"class":828},[736,2316,1445],{"class":828},[736,2318,2319],{"class":745},"approved",[736,2321,1440],{"class":828},[736,2323,1296],{"class":828},[736,2325,1445],{"class":828},[736,2327,1799],{"class":742},[736,2329,1440],{"class":828},[736,2331,812],{"class":828},[736,2333,1445],{"class":828},[736,2335,1808],{"class":745},[736,2337,1440],{"class":828},[736,2339,929],{"class":828},[736,2341,2342,2344,2346,2348,2350],{"class":738,"line":1331},[736,2343,1434],{"class":828},[736,2345,1820],{"class":966},[736,2347,1440],{"class":828},[736,2349,812],{"class":828},[736,2351,970],{"class":828},[736,2353,2354,2356,2358,2360,2362,2365,2367,2369,2371,2373,2375,2377,2379,2381,2383,2385,2387,2389,2392,2394,2396,2398,2400,2402,2404],{"class":738,"line":1340},[736,2355,1561],{"class":828},[736,2357,1922],{"class":742},[736,2359,1440],{"class":828},[736,2361,812],{"class":828},[736,2363,2364],{"class":828}," [{",[736,2366,1445],{"class":828},[736,2368,1940],{"class":1485},[736,2370,1440],{"class":828},[736,2372,812],{"class":828},[736,2374,1445],{"class":828},[736,2376,1808],{"class":745},[736,2378,1440],{"class":828},[736,2380,1296],{"class":828},[736,2382,1445],{"class":828},[736,2384,1515],{"class":1485},[736,2386,1440],{"class":828},[736,2388,812],{"class":828},[736,2390,2391],{"class":1485}," 993",[736,2393,1296],{"class":828},[736,2395,1445],{"class":828},[736,2397,1971],{"class":1485},[736,2399,1440],{"class":828},[736,2401,812],{"class":828},[736,2403,1978],{"class":828},[736,2405,2406],{"class":828}," }],\n",[736,2408,2409,2411,2413,2415,2417,2419,2422],{"class":738,"line":1345},[736,2410,1561],{"class":828},[736,2412,1901],{"class":742},[736,2414,1440],{"class":828},[736,2416,812],{"class":828},[736,2418,1445],{"class":828},[736,2420,2421],{"class":745},"stop",[736,2423,2424],{"class":828},"\"\n",[736,2426,2427],{"class":738,"line":1654},[736,2428,2040],{"class":828},[736,2430,2431],{"class":738,"line":1704},[736,2432,2046],{"class":828},[544,2434,2435,2436,2439,2440,2439,2443,2446,2447,2449,2450,2453,2454,2457,2458,2461,2462,2439,2464,2439,2467,2439,2470,2439,2473,979],{},"Token usage and tool executions are accumulated from eve stream events (",[563,2437,2438],{},"step.completed",", ",[563,2441,2442],{},"actions.requested",[563,2444,2445],{},"action.result","). Business fields set via ",[563,2448,1054],{}," carry across turns in the same session. Link turns in analytics with ",[563,2451,2452],{},"eve.sessionId"," + ",[563,2455,2456],{},"eve.turnSequence",", and each event stays self-contained. ",[563,2459,2460],{},"eve.phase"," is only set for non-routine endings: ",[563,2463,1629],{},[563,2465,2466],{},"awaiting-authorization",[563,2468,2469],{},"rejected",[563,2471,2472],{},"cancelled",[563,2474,2475],{},"failed",[718,2477,2479],{"id":2478},"everything-the-turn-can-report","Everything the turn can report",[544,2481,2482],{},"Beyond the identifiers above, a turn records what eve reports about it. Every field is optional and appears only when the turn produced it.",[644,2484,2485,2495],{},[647,2486,2487],{},[650,2488,2489,2492],{},[653,2490,2491],{},"Field",[653,2493,2494],{},"What it tells you",[660,2496,2497,2517,2544,2557,2574,2588,2601,2611,2627,2637,2647,2661],{},[650,2498,2499,2504],{},[665,2500,2501],{},[563,2502,2503],{},"eve.runtime",[665,2505,2506,2507,2510,2511,2510,2514],{},"eve version, agent id, model, and the deployed ",[563,2508,2509],{},"gitSha"," \u002F ",[563,2512,2513],{},"gitBranch",[563,2515,2516],{},"deployedAt",[650,2518,2519,2524],{},[665,2520,2521],{},[563,2522,2523],{},"eve.caller",[665,2525,2526,2527,2439,2530,588,2533,2536,2537,588,2540,2543],{},"Who triggered the turn: ",[563,2528,2529],{},"principalId",[563,2531,2532],{},"principalType",[563,2534,2535],{},"authenticator",". On a multi-user channel this is what you group cost and volume by. ",[563,2538,2539],{},"subject",[563,2541,2542],{},"attributes"," are never recorded — a channel may put a name or an email in them",[650,2545,2546,2551],{},[665,2547,2548],{},[563,2549,2550],{},"eve.parent",[665,2552,2553,2554],{},"Parent and root session ids for a subagent run — rebuild the delegation tree with ",[563,2555,2556],{},"rootSessionId",[650,2558,2559,2564],{},[665,2560,2561],{},[563,2562,2563],{},"eve.authorizations",[665,2565,2566,2567,2439,2570,2573],{},"Connection sign-ins with their ",[563,2568,2569],{},"outcome",[563,2571,2572],{},"reason"," and duration",[650,2575,2576,2581],{},[665,2577,2578],{},[563,2579,2580],{},"eve.compaction",[665,2582,2583,2584,2587],{},"How many compactions ran, on which model, and ",[563,2585,2586],{},"inputTokensAtTrigger"," — how full the context was when the first one fired",[650,2589,2590,2598],{},[665,2591,2592,2510,2595],{},[563,2593,2594],{},"eve.stepFailures",[563,2596,2597],{},"eve.failedSteps",[665,2599,2600],{},"Model calls that failed, including on a turn that then succeeded on retry",[650,2602,2603,2608],{},[665,2604,2605],{},[563,2606,2607],{},"eve.subagents",[665,2609,2610],{},"Delegations with their status and duration",[650,2612,2613,2618],{},[665,2614,2615],{},[563,2616,2617],{},"eve.reasoning",[665,2619,2620,588,2623,2626],{},[563,2621,2622],{},"blocks",[563,2624,2625],{},"chars"," — the size of the model's thinking, never its content",[650,2628,2629,2634],{},[665,2630,2631],{},[563,2632,2633],{},"eve.result",[665,2635,2636],{},"The structured result, for an agent with an output schema",[650,2638,2639,2644],{},[665,2640,2641],{},[563,2642,2643],{},"eve.contextCleared",[665,2645,2646],{},"The durable history was wiped during this turn",[650,2648,2649,2654],{},[665,2650,2651],{},[563,2652,2653],{},"message.responseChars",[665,2655,2656,2657,2660],{},"Length of the agent's response, recorded whatever the ",[563,2658,2659],{},"message"," mode",[650,2662,2663,2668],{},[665,2664,2665],{},[563,2666,2667],{},"ai.costUsd",[665,2669,2670,2671,2674,2675],{},"Cost as reported by eve. ",[563,2672,2673],{},"ai.estimatedCost"," is the fallback computed from ",[563,2676,2677],{},"cost",[639,2679,2681],{"id":2680},"correlate-traces-with-wide-events","Correlate traces with wide events",[544,2683,2684,2685,2687],{},"A wide event and an Agent Runs span describe the same turn, but nothing joins them on its own. ",[563,2686,708],{}," stamps evlog's turn identity onto eve's AI SDK spans:",[726,2689,2691],{"className":815,"code":2690,"filename":565,"language":817,"meta":732,"style":732},"import { defineEvlogInstrumentation } from 'evlog\u002Feve'\n\nexport default defineEvlogInstrumentation()\n",[563,2692,2693,2712,2716],{"__ignoreMap":732},[736,2694,2695,2697,2699,2702,2704,2706,2708,2710],{"class":738,"line":739},[736,2696,825],{"class":824},[736,2698,829],{"class":828},[736,2700,2701],{"class":832}," defineEvlogInstrumentation",[736,2703,836],{"class":828},[736,2705,839],{"class":824},[736,2707,842],{"class":828},[736,2709,569],{"class":745},[736,2711,847],{"class":828},[736,2713,2714],{"class":738,"line":850},[736,2715,875],{"emptyLinePlaceholder":874},[736,2717,2718,2720,2722,2724],{"class":738,"line":871},[736,2719,881],{"class":824},[736,2721,884],{"class":824},[736,2723,2701],{"class":887},[736,2725,1260],{"class":832},[544,2727,2728,2729,588,2732,2735,2736,588,2739,2741],{},"Every model-call span, and its children, then carries ",[563,2730,2731],{},"evlog.request_id",[563,2733,2734],{},"evlog.session_id",", the same values the wide event reports as ",[563,2737,2738],{},"requestId",[563,2740,2452],{},". Jump from a trace in Braintrust, Datadog or Agent Runs straight to the event in your drain, and back.",[544,2743,2744,2745,2748,2749,2752],{},"Without ",[563,2746,2747],{},"setup",", OpenTelemetry export is untouched: eve keeps writing its local traces, readable with ",[563,2750,2751],{},"eve traces",". Pass one to export elsewhere:",[726,2754,2756],{"className":815,"code":2755,"filename":565,"language":817,"meta":732,"style":732},"import { defineEvlogInstrumentation } from 'evlog\u002Feve'\nimport { registerOTel } from '@vercel\u002Fotel'\n\nexport default defineEvlogInstrumentation({\n  setup: ({ agentName }) => registerOTel({ serviceName: agentName }),\n})\n",[563,2757,2758,2776,2796,2800,2812,2849],{"__ignoreMap":732},[736,2759,2760,2762,2764,2766,2768,2770,2772,2774],{"class":738,"line":739},[736,2761,825],{"class":824},[736,2763,829],{"class":828},[736,2765,2701],{"class":832},[736,2767,836],{"class":828},[736,2769,839],{"class":824},[736,2771,842],{"class":828},[736,2773,569],{"class":745},[736,2775,847],{"class":828},[736,2777,2778,2780,2782,2785,2787,2789,2791,2794],{"class":738,"line":850},[736,2779,825],{"class":824},[736,2781,829],{"class":828},[736,2783,2784],{"class":832}," registerOTel",[736,2786,836],{"class":828},[736,2788,839],{"class":824},[736,2790,842],{"class":828},[736,2792,2793],{"class":745},"@vercel\u002Fotel",[736,2795,847],{"class":828},[736,2797,2798],{"class":738,"line":871},[736,2799,875],{"emptyLinePlaceholder":874},[736,2801,2802,2804,2806,2808,2810],{"class":738,"line":878},[736,2803,881],{"class":824},[736,2805,884],{"class":824},[736,2807,2701],{"class":887},[736,2809,890],{"class":832},[736,2811,893],{"class":828},[736,2813,2814,2817,2819,2822,2825,2827,2829,2831,2833,2835,2838,2840,2843,2845,2847],{"class":738,"line":896},[736,2815,2816],{"class":887},"  setup",[736,2818,812],{"class":828},[736,2820,2821],{"class":828}," ({",[736,2823,2824],{"class":959}," agentName",[736,2826,1221],{"class":828},[736,2828,967],{"class":966},[736,2830,2784],{"class":887},[736,2832,890],{"class":832},[736,2834,1184],{"class":828},[736,2836,2837],{"class":899}," serviceName",[736,2839,812],{"class":828},[736,2841,2842],{"class":832}," agentName ",[736,2844,1015],{"class":828},[736,2846,963],{"class":832},[736,2848,945],{"class":828},[736,2850,2851,2853],{"class":738,"line":932},[736,2852,1015],{"class":828},[736,2854,1018],{"class":832},[544,2856,2857,2439,2860,2439,2863,588,2866,2869,2870,979],{},[563,2858,2859],{},"functionId",[563,2861,2862],{},"recordInputs",[563,2864,2865],{},"recordOutputs",[563,2867,2868],{},"traceChannelRequests"," pass straight through to eve's ",[563,2871,2872],{},"defineInstrumentation",[718,2874,2876],{"id":2875},"alongside-another-observability-backend","Alongside another observability backend",[544,2878,2879,2881,2882,2884,2885,2888,2889,2892],{},[563,2880,708],{}," is the shortcut for an agent whose instrumentation is evlog's alone. It owns the file, and an agent has exactly one ",[563,2883,565],{},", so every observability item in eve's registry writes that same path, which is why ",[563,2886,2887],{},"eve add instrumentation\u002Fsentry"," after ",[563,2890,2891],{},"eve add instrumentation\u002Fposthog"," refuses rather than clobbering the first.",[544,2894,2895,2896,2898,2899,2902],{},"Once another backend is in play, write the file yourself with eve's own ",[563,2897,2872],{}," and spread ",[563,2900,2901],{},"evlogRuntimeContext"," into your runtime context. evlog contributes attributes to your instrumentation instead of wrapping it:",[726,2904,2906],{"className":815,"code":2905,"filename":565,"language":817,"meta":732,"style":732},"import { BatchSpanProcessor, SimpleSpanProcessor } from '@opentelemetry\u002Fsdk-trace-base'\nimport { PostHogTraceExporter } from '@posthog\u002Fai\u002Fotel'\nimport { OTLPHttpProtoTraceExporter, registerOTel } from '@vercel\u002Fotel'\nimport { defineInstrumentation } from 'eve\u002Finstrumentation'\nimport { evlogRuntimeContext } from 'evlog\u002Feve'\n\nexport default defineInstrumentation({\n  \u002F\u002F One provider, one span processor per backend. Items that generate\n  \u002F\u002F `traceExporter` (Sentry, Datadog, Arize, Jaeger, Braintrust, Honeycomb)\n  \u002F\u002F become an entry in this array. Call registerOTel once, not once per backend.\n  setup: ({ agentName }) => registerOTel({\n    serviceName: agentName,\n    spanProcessors: [\n      new SimpleSpanProcessor(new PostHogTraceExporter({\n        projectToken: process.env.POSTHOG_PROJECT_TOKEN!,\n      })),\n      new BatchSpanProcessor(new OTLPHttpProtoTraceExporter({\n        url: process.env.SENTRY_OTLP_TRACES_ENDPOINT!,\n        headers: { 'x-sentry-auth': `sentry sentry_key=${process.env.SENTRY_PUBLIC_KEY}` },\n      })),\n    ],\n  }),\n  events: {\n    'step.started': (input) => {\n      const principalId = input.session.auth.initiator?.principalId\n        ?? input.session.auth.current?.principalId\n      return {\n        runtimeContext: {\n          ...evlogRuntimeContext(input),\n          \u002F\u002F Omitted rather than blank: an empty attribute reads as an empty id.\n          ...(principalId ? { posthog_distinct_id: principalId } : {}),\n        },\n      }\n    },\n  },\n})\n",[563,2907,2908,2933,2953,2976,2996,3015,3019,3031,3037,3042,3047,3067,3078,3087,3105,3126,3136,3152,3172,3216,3224,3231,3240,3249,3272,3306,3330,3337,3346,3361,3367,3400,3406,3412,3418,3423],{"__ignoreMap":732},[736,2909,2910,2912,2914,2917,2919,2922,2924,2926,2928,2931],{"class":738,"line":739},[736,2911,825],{"class":824},[736,2913,829],{"class":828},[736,2915,2916],{"class":832}," BatchSpanProcessor",[736,2918,1296],{"class":828},[736,2920,2921],{"class":832}," SimpleSpanProcessor",[736,2923,836],{"class":828},[736,2925,839],{"class":824},[736,2927,842],{"class":828},[736,2929,2930],{"class":745},"@opentelemetry\u002Fsdk-trace-base",[736,2932,847],{"class":828},[736,2934,2935,2937,2939,2942,2944,2946,2948,2951],{"class":738,"line":850},[736,2936,825],{"class":824},[736,2938,829],{"class":828},[736,2940,2941],{"class":832}," PostHogTraceExporter",[736,2943,836],{"class":828},[736,2945,839],{"class":824},[736,2947,842],{"class":828},[736,2949,2950],{"class":745},"@posthog\u002Fai\u002Fotel",[736,2952,847],{"class":828},[736,2954,2955,2957,2959,2962,2964,2966,2968,2970,2972,2974],{"class":738,"line":871},[736,2956,825],{"class":824},[736,2958,829],{"class":828},[736,2960,2961],{"class":832}," OTLPHttpProtoTraceExporter",[736,2963,1296],{"class":828},[736,2965,2784],{"class":832},[736,2967,836],{"class":828},[736,2969,839],{"class":824},[736,2971,842],{"class":828},[736,2973,2793],{"class":745},[736,2975,847],{"class":828},[736,2977,2978,2980,2982,2985,2987,2989,2991,2994],{"class":738,"line":878},[736,2979,825],{"class":824},[736,2981,829],{"class":828},[736,2983,2984],{"class":832}," defineInstrumentation",[736,2986,836],{"class":828},[736,2988,839],{"class":824},[736,2990,842],{"class":828},[736,2992,2993],{"class":745},"eve\u002Finstrumentation",[736,2995,847],{"class":828},[736,2997,2998,3000,3002,3005,3007,3009,3011,3013],{"class":738,"line":896},[736,2999,825],{"class":824},[736,3001,829],{"class":828},[736,3003,3004],{"class":832}," evlogRuntimeContext",[736,3006,836],{"class":828},[736,3008,839],{"class":824},[736,3010,842],{"class":828},[736,3012,569],{"class":745},[736,3014,847],{"class":828},[736,3016,3017],{"class":738,"line":932},[736,3018,875],{"emptyLinePlaceholder":874},[736,3020,3021,3023,3025,3027,3029],{"class":738,"line":948},[736,3022,881],{"class":824},[736,3024,884],{"class":824},[736,3026,2984],{"class":887},[736,3028,890],{"class":832},[736,3030,893],{"class":828},[736,3032,3033],{"class":738,"line":973},[736,3034,3036],{"class":3035},"sHwdD","  \u002F\u002F One provider, one span processor per backend. Items that generate\n",[736,3038,3039],{"class":738,"line":1006},[736,3040,3041],{"class":3035},"  \u002F\u002F `traceExporter` (Sentry, Datadog, Arize, Jaeger, Braintrust, Honeycomb)\n",[736,3043,3044],{"class":738,"line":1012},[736,3045,3046],{"class":3035},"  \u002F\u002F become an entry in this array. Call registerOTel once, not once per backend.\n",[736,3048,3049,3051,3053,3055,3057,3059,3061,3063,3065],{"class":738,"line":1263},[736,3050,2816],{"class":887},[736,3052,812],{"class":828},[736,3054,2821],{"class":828},[736,3056,2824],{"class":959},[736,3058,1221],{"class":828},[736,3060,967],{"class":966},[736,3062,2784],{"class":887},[736,3064,890],{"class":832},[736,3066,893],{"class":828},[736,3068,3069,3072,3074,3076],{"class":738,"line":1331},[736,3070,3071],{"class":899},"    serviceName",[736,3073,812],{"class":828},[736,3075,2824],{"class":832},[736,3077,945],{"class":828},[736,3079,3080,3083,3085],{"class":738,"line":1340},[736,3081,3082],{"class":899},"    spanProcessors",[736,3084,812],{"class":828},[736,3086,1929],{"class":832},[736,3088,3089,3092,3094,3096,3099,3101,3103],{"class":738,"line":1345},[736,3090,3091],{"class":828},"      new",[736,3093,2921],{"class":887},[736,3095,890],{"class":832},[736,3097,3098],{"class":828},"new",[736,3100,2941],{"class":887},[736,3102,890],{"class":832},[736,3104,893],{"class":828},[736,3106,3107,3110,3112,3114,3116,3118,3120,3123],{"class":738,"line":1654},[736,3108,3109],{"class":899},"        projectToken",[736,3111,812],{"class":828},[736,3113,993],{"class":832},[736,3115,979],{"class":828},[736,3117,998],{"class":832},[736,3119,979],{"class":828},[736,3121,3122],{"class":832},"POSTHOG_PROJECT_TOKEN",[736,3124,3125],{"class":828},"!,\n",[736,3127,3128,3131,3134],{"class":738,"line":1704},[736,3129,3130],{"class":828},"      }",[736,3132,3133],{"class":832},"))",[736,3135,945],{"class":828},[736,3137,3138,3140,3142,3144,3146,3148,3150],{"class":738,"line":1766},[736,3139,3091],{"class":828},[736,3141,2916],{"class":887},[736,3143,890],{"class":832},[736,3145,3098],{"class":828},[736,3147,2961],{"class":887},[736,3149,890],{"class":832},[736,3151,893],{"class":828},[736,3153,3154,3157,3159,3161,3163,3165,3167,3170],{"class":738,"line":1815},[736,3155,3156],{"class":899},"        url",[736,3158,812],{"class":828},[736,3160,993],{"class":832},[736,3162,979],{"class":828},[736,3164,998],{"class":832},[736,3166,979],{"class":828},[736,3168,3169],{"class":832},"SENTRY_OTLP_TRACES_ENDPOINT",[736,3171,3125],{"class":828},[736,3173,3174,3177,3179,3181,3183,3186,3188,3190,3193,3196,3199,3202,3204,3206,3208,3211,3214],{"class":738,"line":1829},[736,3175,3176],{"class":899},"        headers",[736,3178,812],{"class":828},[736,3180,829],{"class":828},[736,3182,842],{"class":828},[736,3184,3185],{"class":899},"x-sentry-auth",[736,3187,924],{"class":828},[736,3189,812],{"class":828},[736,3191,3192],{"class":828}," `",[736,3194,3195],{"class":745},"sentry sentry_key=",[736,3197,3198],{"class":828},"${",[736,3200,3201],{"class":832},"process",[736,3203,979],{"class":828},[736,3205,998],{"class":832},[736,3207,979],{"class":828},[736,3209,3210],{"class":832},"SENTRY_PUBLIC_KEY",[736,3212,3213],{"class":828},"}`",[736,3215,929],{"class":828},[736,3217,3218,3220,3222],{"class":738,"line":1846},[736,3219,3130],{"class":828},[736,3221,3133],{"class":832},[736,3223,945],{"class":828},[736,3225,3226,3229],{"class":738,"line":1862},[736,3227,3228],{"class":832},"    ]",[736,3230,945],{"class":828},[736,3232,3233,3236,3238],{"class":738,"line":1879},[736,3234,3235],{"class":828},"  }",[736,3237,963],{"class":832},[736,3239,945],{"class":828},[736,3241,3242,3245,3247],{"class":738,"line":1896},[736,3243,3244],{"class":899},"  events",[736,3246,812],{"class":828},[736,3248,970],{"class":828},[736,3250,3251,3254,3257,3259,3261,3263,3266,3268,3270],{"class":738,"line":1917},[736,3252,3253],{"class":828},"    '",[736,3255,3256],{"class":899},"step.started",[736,3258,924],{"class":828},[736,3260,812],{"class":828},[736,3262,956],{"class":828},[736,3264,3265],{"class":959},"input",[736,3267,963],{"class":828},[736,3269,967],{"class":966},[736,3271,970],{"class":828},[736,3273,3274,3277,3280,3282,3285,3287,3290,3292,3295,3297,3300,3303],{"class":738,"line":1932},[736,3275,3276],{"class":966},"      const",[736,3278,3279],{"class":832}," principalId",[736,3281,990],{"class":828},[736,3283,3284],{"class":832}," input",[736,3286,979],{"class":828},[736,3288,3289],{"class":832},"session",[736,3291,979],{"class":828},[736,3293,3294],{"class":832},"auth",[736,3296,979],{"class":828},[736,3298,3299],{"class":832},"initiator",[736,3301,3302],{"class":828},"?.",[736,3304,3305],{"class":832},"principalId\n",[736,3307,3308,3311,3313,3315,3317,3319,3321,3323,3326,3328],{"class":738,"line":1983},[736,3309,3310],{"class":828},"        ??",[736,3312,3284],{"class":832},[736,3314,979],{"class":828},[736,3316,3289],{"class":832},[736,3318,979],{"class":828},[736,3320,3294],{"class":832},[736,3322,979],{"class":828},[736,3324,3325],{"class":832},"current",[736,3327,3302],{"class":828},[736,3329,3305],{"class":832},[736,3331,3332,3335],{"class":738,"line":2031},[736,3333,3334],{"class":824},"      return",[736,3336,970],{"class":828},[736,3338,3339,3342,3344],{"class":738,"line":2037},[736,3340,3341],{"class":899},"        runtimeContext",[736,3343,812],{"class":828},[736,3345,970],{"class":828},[736,3347,3348,3351,3353,3355,3357,3359],{"class":738,"line":2043},[736,3349,3350],{"class":828},"          ...",[736,3352,2901],{"class":887},[736,3354,890],{"class":899},[736,3356,3265],{"class":832},[736,3358,963],{"class":899},[736,3360,945],{"class":828},[736,3362,3364],{"class":738,"line":3363},30,[736,3365,3366],{"class":3035},"          \u002F\u002F Omitted rather than blank: an empty attribute reads as an empty id.\n",[736,3368,3370,3372,3374,3376,3379,3381,3384,3386,3388,3390,3393,3396,3398],{"class":738,"line":3369},31,[736,3371,3350],{"class":828},[736,3373,890],{"class":899},[736,3375,2529],{"class":832},[736,3377,3378],{"class":828}," ?",[736,3380,829],{"class":828},[736,3382,3383],{"class":899}," posthog_distinct_id",[736,3385,812],{"class":828},[736,3387,3279],{"class":832},[736,3389,836],{"class":828},[736,3391,3392],{"class":828}," :",[736,3394,3395],{"class":828}," {}",[736,3397,963],{"class":899},[736,3399,945],{"class":828},[736,3401,3403],{"class":738,"line":3402},32,[736,3404,3405],{"class":828},"        },\n",[736,3407,3409],{"class":738,"line":3408},33,[736,3410,3411],{"class":828},"      }\n",[736,3413,3415],{"class":738,"line":3414},34,[736,3416,3417],{"class":828},"    },\n",[736,3419,3421],{"class":738,"line":3420},35,[736,3422,1009],{"class":828},[736,3424,3426,3428],{"class":738,"line":3425},36,[736,3427,1015],{"class":828},[736,3429,1018],{"class":832},[544,3431,3432,3434,3435,3438,3439,3442],{},[563,3433,2901],{}," returns ",[563,3436,3437],{},"undefined"," outside a tracked turn, and spreading that adds nothing. PostHog is the only registry item that also uses ",[563,3440,3441],{},"events","; the rest only need their span processor. Keep each generated file open while you merge: the env vars and exporter options are the parts worth copying exactly.",[544,3444,3445,3446,3449,3450,3452],{},"Spans and wide events stay joined by attribute, not by trace id: an agent turn has no inbound ",[563,3447,3448],{},"traceparent"," to inherit, so ",[563,3451,2731],{}," is what carries across.",[576,3454,3457,3463,3464,2510,3467,3470,3471,3474,3475,3478,3479,3482,3483,3485],{"color":3455,"icon":3456},"warning","i-lucide-triangle-alert",[554,3458,3459,3460,979],{},"PostHog drops ",[563,3461,3462],{},"evlog.*"," Its exporter forwards the whole span, but the server-side conversion into ",[563,3465,3466],{},"$ai_generation",[563,3468,3469],{},"$ai_span"," events keeps only attributes prefixed ",[563,3472,3473],{},"posthog_",", and strips that prefix. To join on PostHog, repeat the ids under names that survive, since ",[563,3476,3477],{},"posthog_evlog_request_id"," arrives as ",[563,3480,3481],{},"evlog_request_id",". Other OTLP backends receive ",[563,3484,3462],{}," unchanged.",[544,3487,3488,3489,3492],{},"eve applies the runtime context to the step span only, so the generation spans beneath it inherit nothing. On PostHog that means cost lands on events with no identity and no environment. A span processor that copies the turn's ",[563,3490,3491],{},"posthog_*"," attributes onto every child span is what closes the gap.",[544,3494,3495],{},"To close the loop the other way, send the agent's own wide events to PostHog Logs and point the drain at the same principal:",[726,3497,3499],{"className":815,"code":3498,"filename":811,"language":817,"meta":732,"style":732},"import { createPostHogDrain } from 'evlog\u002Fposthog'\nimport { defineEvlogHook } from 'evlog\u002Feve'\n\nexport default defineEvlogHook({\n  drain: createPostHogDrain({ distinctIdField: 'eve.caller.principalId' }),\n})\n",[563,3500,3501,3521,3539,3543,3555,3585],{"__ignoreMap":732},[736,3502,3503,3505,3507,3510,3512,3514,3516,3519],{"class":738,"line":739},[736,3504,825],{"class":824},[736,3506,829],{"class":828},[736,3508,3509],{"class":832}," createPostHogDrain",[736,3511,836],{"class":828},[736,3513,839],{"class":824},[736,3515,842],{"class":828},[736,3517,3518],{"class":745},"evlog\u002Fposthog",[736,3520,847],{"class":828},[736,3522,3523,3525,3527,3529,3531,3533,3535,3537],{"class":738,"line":850},[736,3524,825],{"class":824},[736,3526,829],{"class":828},[736,3528,833],{"class":832},[736,3530,836],{"class":828},[736,3532,839],{"class":824},[736,3534,842],{"class":828},[736,3536,569],{"class":745},[736,3538,847],{"class":828},[736,3540,3541],{"class":738,"line":871},[736,3542,875],{"emptyLinePlaceholder":874},[736,3544,3545,3547,3549,3551,3553],{"class":738,"line":878},[736,3546,881],{"class":824},[736,3548,884],{"class":824},[736,3550,833],{"class":887},[736,3552,890],{"class":832},[736,3554,893],{"class":828},[736,3556,3557,3559,3561,3563,3565,3567,3570,3572,3574,3577,3579,3581,3583],{"class":738,"line":896},[736,3558,935],{"class":899},[736,3560,812],{"class":828},[736,3562,3509],{"class":887},[736,3564,890],{"class":832},[736,3566,1184],{"class":828},[736,3568,3569],{"class":899}," distinctIdField",[736,3571,812],{"class":828},[736,3573,842],{"class":828},[736,3575,3576],{"class":745},"eve.caller.principalId",[736,3578,924],{"class":828},[736,3580,836],{"class":828},[736,3582,963],{"class":832},[736,3584,945],{"class":828},[736,3586,3587,3589],{"class":738,"line":932},[736,3588,1015],{"class":828},[736,3590,1018],{"class":832},[544,3592,3593,3594,979],{},"Turns then land on the same PostHog person as the LLM traces they produced. See the ",[547,3595,3597],{"href":3596},"\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fposthog#link-a-log-to-a-person-and-a-session-replay","PostHog adapter",[639,3599,3601],{"id":3600},"production","Production",[544,3603,3604],{},"Long-running eve agents should disable terminal pretty-printing and use a non-blocking drain:",[726,3606,3608],{"className":815,"code":3607,"filename":811,"language":817,"meta":732,"style":732},"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",[563,3609,3610,3628,3646,3666,3670,3719,3728,3732,3736,3748,3756,3790,3803,3831,3835,3841,3853],{"__ignoreMap":732},[736,3611,3612,3614,3616,3618,3620,3622,3624,3626],{"class":738,"line":739},[736,3613,825],{"class":824},[736,3615,829],{"class":828},[736,3617,833],{"class":832},[736,3619,836],{"class":828},[736,3621,839],{"class":824},[736,3623,842],{"class":828},[736,3625,569],{"class":745},[736,3627,847],{"class":828},[736,3629,3630,3632,3634,3636,3638,3640,3642,3644],{"class":738,"line":850},[736,3631,825],{"class":824},[736,3633,829],{"class":828},[736,3635,857],{"class":832},[736,3637,836],{"class":828},[736,3639,839],{"class":824},[736,3641,842],{"class":828},[736,3643,866],{"class":745},[736,3645,847],{"class":828},[736,3647,3648,3650,3652,3655,3657,3659,3661,3664],{"class":738,"line":871},[736,3649,825],{"class":824},[736,3651,829],{"class":828},[736,3653,3654],{"class":832}," createDrainPipeline",[736,3656,836],{"class":828},[736,3658,839],{"class":824},[736,3660,842],{"class":828},[736,3662,3663],{"class":745},"evlog\u002Fpipeline",[736,3665,847],{"class":828},[736,3667,3668],{"class":738,"line":878},[736,3669,875],{"emptyLinePlaceholder":874},[736,3671,3672,3675,3678,3681,3683,3685,3687,3690,3692,3694,3697,3699,3702,3704,3707,3709,3712,3714,3716],{"class":738,"line":896},[736,3673,3674],{"class":966},"const",[736,3676,3677],{"class":832}," drain ",[736,3679,3680],{"class":828},"=",[736,3682,3654],{"class":887},[736,3684,890],{"class":832},[736,3686,1184],{"class":828},[736,3688,3689],{"class":899}," batch",[736,3691,812],{"class":828},[736,3693,829],{"class":828},[736,3695,3696],{"class":899}," size",[736,3698,812],{"class":828},[736,3700,3701],{"class":1485}," 50",[736,3703,1296],{"class":828},[736,3705,3706],{"class":899}," intervalMs",[736,3708,812],{"class":828},[736,3710,3711],{"class":1485}," 5000",[736,3713,836],{"class":828},[736,3715,836],{"class":828},[736,3717,3718],{"class":832},")(\n",[736,3720,3721,3724,3726],{"class":738,"line":932},[736,3722,3723],{"class":887},"  createAxiomDrain",[736,3725,942],{"class":832},[736,3727,945],{"class":828},[736,3729,3730],{"class":738,"line":948},[736,3731,1018],{"class":832},[736,3733,3734],{"class":738,"line":973},[736,3735,875],{"emptyLinePlaceholder":874},[736,3737,3738,3740,3742,3744,3746],{"class":738,"line":1006},[736,3739,881],{"class":824},[736,3741,884],{"class":824},[736,3743,833],{"class":887},[736,3745,890],{"class":832},[736,3747,893],{"class":828},[736,3749,3750,3752,3754],{"class":738,"line":1012},[736,3751,900],{"class":899},[736,3753,812],{"class":828},[736,3755,970],{"class":828},[736,3757,3758,3761,3763,3765,3767,3769,3771,3773,3775,3777,3780,3782,3784,3786,3788],{"class":738,"line":1263},[736,3759,3760],{"class":899},"    env",[736,3762,812],{"class":828},[736,3764,829],{"class":828},[736,3766,914],{"class":899},[736,3768,812],{"class":828},[736,3770,842],{"class":828},[736,3772,921],{"class":745},[736,3774,924],{"class":828},[736,3776,1296],{"class":828},[736,3778,3779],{"class":899}," environment",[736,3781,812],{"class":828},[736,3783,842],{"class":828},[736,3785,3600],{"class":745},[736,3787,924],{"class":828},[736,3789,929],{"class":828},[736,3791,3792,3795,3797,3801],{"class":738,"line":1331},[736,3793,3794],{"class":899},"    pretty",[736,3796,812],{"class":828},[736,3798,3800],{"class":3799},"sfNiH"," false",[736,3802,945],{"class":828},[736,3804,3805,3808,3810,3812,3815,3817,3819,3822,3824,3827,3829],{"class":738,"line":1340},[736,3806,3807],{"class":899},"    sampling",[736,3809,812],{"class":828},[736,3811,829],{"class":828},[736,3813,3814],{"class":899}," rates",[736,3816,812],{"class":828},[736,3818,829],{"class":828},[736,3820,3821],{"class":899}," info",[736,3823,812],{"class":828},[736,3825,3826],{"class":1485}," 10",[736,3828,836],{"class":828},[736,3830,929],{"class":828},[736,3832,3833],{"class":738,"line":1345},[736,3834,1009],{"class":828},[736,3836,3837,3839],{"class":738,"line":1654},[736,3838,935],{"class":832},[736,3840,945],{"class":828},[736,3842,3843,3846,3848,3851],{"class":738,"line":1704},[736,3844,3845],{"class":899},"  maxSessions",[736,3847,812],{"class":828},[736,3849,3850],{"class":1485}," 256",[736,3852,945],{"class":828},[736,3854,3855,3857],{"class":738,"line":1766},[736,3856,1015],{"class":828},[736,3858,1018],{"class":832},[644,3860,3861,3871],{},[647,3862,3863],{},[650,3864,3865,3868],{},[653,3866,3867],{},"Concern",[653,3869,3870],{},"Recommendation",[660,3872,3873,3884,3892,3903,3917],{},[650,3874,3875,3878],{},[665,3876,3877],{},"Terminal output",[665,3879,3880,3883],{},[563,3881,3882],{},"init.pretty: false"," — pretty-print is for local dev only",[650,3885,3886,3889],{},[665,3887,3888],{},"Drain latency",[665,3890,3891],{},"Batch or async HTTP drains; never block the turn on I\u002FO",[650,3893,3894,3897],{},[665,3895,3896],{},"Head sampling",[665,3898,3899,3902],{},[563,3900,3901],{},"init.sampling.rates"," — eve emits one event per turn, not per token",[650,3904,3905,3907],{},[665,3906,216],{},[665,3908,3909,3912,3913,3916],{},[563,3910,3911],{},"maxSessions"," (default ",[563,3914,3915],{},"256",") evicts oldest idle session state",[650,3918,3919,3922],{},[665,3920,3921],{},"Load",[665,3923,3924],{},"Hook handlers are O(1) per stream event; cost is dominated by your drain",[639,3926,336],{"id":3927},"options",[644,3929,3930,3940],{},[647,3931,3932],{},[650,3933,3934,3937],{},[653,3935,3936],{},"Option",[653,3938,3939],{},"Description",[660,3941,3942,3955,3976,3996,4012,4025,4047,4058],{},[650,3943,3944,3948],{},[665,3945,3946],{},[563,3947,89],{},[665,3949,3950,3951,3954],{},"Passed to ",[563,3952,3953],{},"initLogger()"," on first hook invocation",[650,3956,3957,3971],{},[665,3958,3959,2510,3962,2510,3965,2510,3968],{},[563,3960,3961],{},"drain",[563,3963,3964],{},"enrich",[563,3966,3967],{},"keep",[563,3969,3970],{},"plugins",[665,3972,3973,3974,963],{},"Same as HTTP integrations (",[547,3975,3970],{"href":474},[650,3977,3978,3982],{},[665,3979,3980],{},[563,3981,2659],{},[665,3983,3984,3987,3988,3991,3992,3995],{},[563,3985,3986],{},"'omit'"," (default), ",[563,3989,3990],{},"'preview'"," or ",[563,3993,3994],{},"'full'"," — how much of the user message and the agent response to record",[650,3997,3998,4003],{},[665,3999,4000],{},[563,4001,4002],{},"messagePreviewLength",[665,4004,4005,4006,4008,4009,963],{},"Characters kept in ",[563,4007,3990],{}," mode (default ",[563,4010,4011],{},"500",[650,4013,4014,4019],{},[665,4015,4016],{},[563,4017,4018],{},"sessionEvent",[665,4020,4021,4024],{},[563,4022,4023],{},"true"," emits one extra event per session, rolling up its turns",[650,4026,4027,4034],{},[665,4028,4029,2510,4031],{},[563,4030,2677],{},[563,4032,4033],{},"model",[665,4035,4036,4037,1384,4040,4043,4044,4046],{},"Fallback token pricing (",[563,4038,4039],{},"ModelCost",[563,4041,4042],{},"evlog\u002Fai",") → ",[563,4045,2673],{},", used only when eve reports no cost",[650,4048,4049,4053],{},[665,4050,4051],{},[563,4052,3911],{},[665,4054,4055,4056,963],{},"In-memory session cap for context carry-over (default ",[563,4057,3915],{},[650,4059,4060,4068],{},[665,4061,4062,2510,4065],{},[563,4063,4064],{},"include",[563,4066,4067],{},"exclude",[665,4069,4070,4071,963],{},"Route-style filters on turn paths (",[563,4072,4073],{},"\u002Fsessions\u002F*\u002Fturns\u002F*",[639,4075,481],{"id":4076},"tail-sampling",[544,4078,4079,4080,4082],{},"Use ",[563,4081,3967],{}," to force-keep turns with failed tools or high token usage:",[726,4084,4086],{"className":815,"code":4085,"filename":811,"language":817,"meta":732,"style":732},"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",[563,4087,4088,4100,4112,4129,4155,4166,4175,4199,4210,4252,4282,4328,4332],{"__ignoreMap":732},[736,4089,4090,4092,4094,4096,4098],{"class":738,"line":739},[736,4091,881],{"class":824},[736,4093,884],{"class":824},[736,4095,833],{"class":887},[736,4097,890],{"class":832},[736,4099,893],{"class":828},[736,4101,4102,4104,4106,4108,4110],{"class":738,"line":850},[736,4103,935],{"class":899},[736,4105,812],{"class":828},[736,4107,857],{"class":887},[736,4109,942],{"class":832},[736,4111,945],{"class":828},[736,4113,4114,4117,4119,4121,4123,4125,4127],{"class":738,"line":871},[736,4115,4116],{"class":887},"  keep",[736,4118,812],{"class":828},[736,4120,956],{"class":828},[736,4122,960],{"class":959},[736,4124,963],{"class":828},[736,4126,967],{"class":966},[736,4128,970],{"class":828},[736,4130,4131,4133,4136,4138,4141,4143,4146,4148,4150,4153],{"class":738,"line":878},[736,4132,1228],{"class":966},[736,4134,4135],{"class":832}," ai",[736,4137,990],{"class":828},[736,4139,4140],{"class":832}," ctx",[736,4142,979],{"class":828},[736,4144,4145],{"class":832},"context",[736,4147,979],{"class":828},[736,4149,1820],{"class":832},[736,4151,4152],{"class":824}," as",[736,4154,970],{"class":828},[736,4156,4157,4160,4163],{"class":738,"line":896},[736,4158,4159],{"class":899},"      inputTokens",[736,4161,4162],{"class":828},"?:",[736,4164,4165],{"class":742}," number\n",[736,4167,4168,4171,4173],{"class":738,"line":932},[736,4169,4170],{"class":899},"      outputTokens",[736,4172,4162],{"class":828},[736,4174,4165],{"class":742},[736,4176,4177,4180,4182,4185,4188,4191,4193,4196],{"class":738,"line":948},[736,4178,4179],{"class":899},"      tools",[736,4181,4162],{"class":828},[736,4183,4184],{"class":742}," Array",[736,4186,4187],{"class":828},"\u003C{",[736,4189,4190],{"class":899}," success",[736,4192,812],{"class":828},[736,4194,4195],{"class":742}," boolean",[736,4197,4198],{"class":828}," }>\n",[736,4200,4201,4204,4207],{"class":738,"line":973},[736,4202,4203],{"class":828},"    }",[736,4205,4206],{"class":828}," |",[736,4208,4209],{"class":742}," undefined\n",[736,4211,4212,4214,4217,4219,4221,4223,4225,4227,4230,4232,4235,4238,4240,4242,4244,4246,4248,4250],{"class":738,"line":1006},[736,4213,1228],{"class":966},[736,4215,4216],{"class":832}," totalTokens",[736,4218,990],{"class":828},[736,4220,956],{"class":899},[736,4222,1820],{"class":832},[736,4224,3302],{"class":828},[736,4226,1867],{"class":832},[736,4228,4229],{"class":828}," ??",[736,4231,1611],{"class":1485},[736,4233,4234],{"class":899},") ",[736,4236,4237],{"class":828},"+",[736,4239,956],{"class":899},[736,4241,1820],{"class":832},[736,4243,3302],{"class":828},[736,4245,1884],{"class":832},[736,4247,4229],{"class":828},[736,4249,1611],{"class":1485},[736,4251,1018],{"class":899},[736,4253,4254,4257,4259,4262,4265,4268,4270,4272,4274,4277,4279],{"class":738,"line":1012},[736,4255,4256],{"class":824},"    if",[736,4258,956],{"class":899},[736,4260,4261],{"class":832},"totalTokens",[736,4263,4264],{"class":828}," >",[736,4266,4267],{"class":1485}," 10_000",[736,4269,4234],{"class":899},[736,4271,960],{"class":832},[736,4273,979],{"class":828},[736,4275,4276],{"class":832},"shouldKeep",[736,4278,990],{"class":828},[736,4280,4281],{"class":3799}," true\n",[736,4283,4284,4286,4288,4290,4292,4294,4296,4299,4301,4304,4306,4309,4311,4313,4315,4318,4320,4322,4324,4326],{"class":738,"line":1263},[736,4285,4256],{"class":824},[736,4287,956],{"class":899},[736,4289,1820],{"class":832},[736,4291,3302],{"class":828},[736,4293,1922],{"class":832},[736,4295,3302],{"class":828},[736,4297,4298],{"class":887},"some",[736,4300,890],{"class":899},[736,4302,4303],{"class":959},"t",[736,4305,967],{"class":966},[736,4307,4308],{"class":828}," !",[736,4310,4303],{"class":832},[736,4312,979],{"class":828},[736,4314,1971],{"class":832},[736,4316,4317],{"class":899},")) ",[736,4319,960],{"class":832},[736,4321,979],{"class":828},[736,4323,4276],{"class":832},[736,4325,990],{"class":828},[736,4327,4281],{"class":3799},[736,4329,4330],{"class":738,"line":1331},[736,4331,1009],{"class":828},[736,4333,4334,4336],{"class":738,"line":1340},[736,4335,1015],{"class":828},[736,4337,1018],{"class":832},[639,4339,4341],{"id":4340},"audit-logs","Audit logs",[544,4343,4344,4345,4347,4348,4351,4352,4355,4356,4359,4360,1380,4362,979],{},"Combine with ",[547,4346,378],{"href":384},": register ",[563,4349,4350],{},"auditEnricher()"," via ",[563,4353,4354],{},"init.plugins"," or a global plugin, and call ",[563,4357,4358],{},"log.audit()"," inside tools when a human approval gate fires. Tool rejections surface on ",[563,4361,2445],{},[563,4363,4364],{},"status: \"rejected\"",[639,4366,4368],{"id":4367},"run-locally","Run locally",[726,4370,4372],{"className":728,"code":4371,"language":731,"meta":732,"style":732},"git clone https:\u002F\u002Fgithub.com\u002FHugoRCD\u002Fevlog\ncd evlog\npnpm install\npnpm example eve\n",[563,4373,4374,4385,4393,4400],{"__ignoreMap":732},[736,4375,4376,4379,4382],{"class":738,"line":739},[736,4377,4378],{"class":742},"git",[736,4380,4381],{"class":745}," clone",[736,4383,4384],{"class":745}," https:\u002F\u002Fgithub.com\u002FHugoRCD\u002Fevlog\n",[736,4386,4387,4390],{"class":738,"line":850},[736,4388,4389],{"class":887},"cd",[736,4391,4392],{"class":745}," evlog\n",[736,4394,4395,4397],{"class":738,"line":871},[736,4396,730],{"class":742},[736,4398,4399],{"class":745}," install\n",[736,4401,4402,4404,4407],{"class":738,"line":878},[736,4403,730],{"class":742},[736,4405,4406],{"class":745}," example",[736,4408,752],{"class":745},[544,4410,4411,4412,4415,4416,4419,4420,4423,4424,4430],{},"The ",[563,4413,4414],{},"examples\u002Feve"," project is a ",[554,4417,4418],{},"support refund copilot"," (Clearbill SaaS): lookup customer → lookup order → issue refund, with eve approvals when amount > $100. Run ",[563,4421,4422],{},"pnpm example eve",", open ",[554,4425,4426],{},[547,4427,4428],{"href":4428,"rel":4429},"http:\u002F\u002Flocalhost:3000",[551],", and click a starter prompt.",[639,4432,4434],{"id":4433},"what-to-read-next","What to read next",[602,4436,4437,4445,4453,4459],{},[605,4438,4439,4444],{},[547,4440,4443],{"href":4441,"rel":4442},"https:\u002F\u002Feve.dev\u002Fdocs\u002Fguides\u002Fhooks",[551],"eve hooks guide",": stream event vocabulary",[605,4446,4447,4452],{},[547,4448,4451],{"href":4449,"rel":4450},"https:\u002F\u002Feve.dev\u002Fdocs\u002Fguides\u002Finstrumentation",[551],"eve instrumentation",": OTel spans (complementary)",[605,4454,4455,4458],{},[547,4456,4457],{"href":328},"AI SDK use case",": when you own the model loop directly",[605,4460,4461,4464],{},[547,4462,4463],{"href":143},"Adapters overview",": drain destinations",[4466,4467,4468],"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 .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}",{"title":732,"searchDepth":850,"depth":850,"links":4470},[4471,4472,4478,4481,4484,4485,4486,4487,4488,4489],{"id":641,"depth":850,"text":642},{"id":716,"depth":850,"text":25,"children":4473},[4474,4475,4476,4477],{"id":720,"depth":871,"text":721},{"id":804,"depth":871,"text":805},{"id":1032,"depth":871,"text":1033},{"id":1372,"depth":871,"text":1373},{"id":1413,"depth":850,"text":1414,"children":4479},[4480],{"id":2478,"depth":871,"text":2479},{"id":2680,"depth":850,"text":2681,"children":4482},[4483],{"id":2875,"depth":871,"text":2876},{"id":3600,"depth":850,"text":3601},{"id":3927,"depth":850,"text":336},{"id":4076,"depth":850,"text":481},{"id":4340,"depth":850,"text":4341},{"id":4367,"depth":850,"text":4368},{"id":4433,"depth":850,"text":4434},"One evlog wide event per eve agent turn: token usage, tool executions, and business context, through your own drains and tail sampling.","md",[4493],{"label":4494,"icon":4495,"to":1065,"color":1352,"variant":4496},"Source Code","i-simple-icons-github","subtle",{},{"title":436,"icon":439},{"title":436,"description":4490},"55ud0dV2DxdsOfXP29OwX5KhkbFgwZMy8PR7P4aNNts",[4502,4504],{"title":431,"path":432,"stem":433,"description":4503,"icon":434,"children":-1},"Add derived context to every wide event, from user agent and geo to your own computed fields.",{"title":36,"path":446,"stem":447,"description":4505,"icon":448,"children":-1},"Observe what flows through the pipeline, plug into it, or build your own bricks. The map of every extension point evlog exposes.",1786817427706]