[{"data":1,"prerenderedAt":4592},["ShallowReactive",2],{"navigation_docs":3,"-use-cases-eve":538,"-use-cases-eve-surround":4587},[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":4576,"extension":4577,"links":4578,"meta":4583,"navigation":4584,"path":437,"seo":4585,"stem":438,"__hash__":4586},"docs\u002F5.use-cases\u002F5.eve.md",{"type":541,"value":542,"toc":4555},"minimark",[543,575,593,638,643,714,717,722,802,806,813,1019,1030,1034,1060,1069,1350,1370,1374,1411,1415,1418,2101,2104,2487,2530,2534,2537,2767,2771,2777,2815,2831,2842,2944,2962,2966,2982,2992,3517,3530,3540,3573,3580,3583,3678,3685,3689,3692,3946,4012,4015,4160,4163,4169,4424,4428,4451,4455,4495,4517,4521,4551],[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    \"model\": \"deepseek\u002Fdeepseek-v4-flash\",\n    \"provider\": \"deepseek\",\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, \"inputTokens\": 8900 },\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,1848,1869,1886,1902,1919,1936,1957,1972,2034,2083,2089,2095],{"__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,1841,1844,1846],{"class":738,"line":1829},19,[736,1831,1561],{"class":828},[736,1833,1834],{"class":742},"model",[736,1836,1440],{"class":828},[736,1838,812],{"class":828},[736,1840,1445],{"class":828},[736,1842,1843],{"class":745},"deepseek\u002Fdeepseek-v4-flash",[736,1845,1440],{"class":828},[736,1847,945],{"class":828},[736,1849,1851,1853,1856,1858,1860,1862,1865,1867],{"class":738,"line":1850},20,[736,1852,1561],{"class":828},[736,1854,1855],{"class":742},"provider",[736,1857,1440],{"class":828},[736,1859,812],{"class":828},[736,1861,1445],{"class":828},[736,1863,1864],{"class":745},"deepseek",[736,1866,1440],{"class":828},[736,1868,945],{"class":828},[736,1870,1872,1874,1877,1879,1881,1884],{"class":738,"line":1871},21,[736,1873,1561],{"class":828},[736,1875,1876],{"class":742},"calls",[736,1878,1440],{"class":828},[736,1880,812],{"class":828},[736,1882,1883],{"class":1485}," 2",[736,1885,945],{"class":828},[736,1887,1889,1891,1894,1896,1898,1900],{"class":738,"line":1888},22,[736,1890,1561],{"class":828},[736,1892,1893],{"class":742},"steps",[736,1895,1440],{"class":828},[736,1897,812],{"class":828},[736,1899,1883],{"class":1485},[736,1901,945],{"class":828},[736,1903,1905,1907,1910,1912,1914,1917],{"class":738,"line":1904},23,[736,1906,1561],{"class":828},[736,1908,1909],{"class":742},"inputTokens",[736,1911,1440],{"class":828},[736,1913,812],{"class":828},[736,1915,1916],{"class":1485}," 11724",[736,1918,945],{"class":828},[736,1920,1922,1924,1927,1929,1931,1934],{"class":738,"line":1921},24,[736,1923,1561],{"class":828},[736,1925,1926],{"class":742},"outputTokens",[736,1928,1440],{"class":828},[736,1930,812],{"class":828},[736,1932,1933],{"class":1485}," 282",[736,1935,945],{"class":828},[736,1937,1939,1941,1944,1946,1948,1950,1953,1955],{"class":738,"line":1938},25,[736,1940,1561],{"class":828},[736,1942,1943],{"class":742},"finishReason",[736,1945,1440],{"class":828},[736,1947,812],{"class":828},[736,1949,1445],{"class":828},[736,1951,1952],{"class":745},"tool-calls",[736,1954,1440],{"class":828},[736,1956,945],{"class":828},[736,1958,1960,1962,1965,1967,1969],{"class":738,"line":1959},26,[736,1961,1561],{"class":828},[736,1963,1964],{"class":742},"tools",[736,1966,1440],{"class":828},[736,1968,812],{"class":828},[736,1970,1971],{"class":828}," [\n",[736,1973,1975,1978,1980,1983,1985,1987,1989,1992,1994,1996,1998,2000,2002,2004,2007,2009,2011,2014,2016,2018,2021,2023,2025,2027,2029,2032],{"class":738,"line":1974},27,[736,1976,1977],{"class":828},"      {",[736,1979,1445],{"class":828},[736,1981,1982],{"class":1485},"name",[736,1984,1440],{"class":828},[736,1986,812],{"class":828},[736,1988,1445],{"class":828},[736,1990,1991],{"class":745},"lookup_customer",[736,1993,1440],{"class":828},[736,1995,1296],{"class":828},[736,1997,1445],{"class":828},[736,1999,1515],{"class":1485},[736,2001,1440],{"class":828},[736,2003,812],{"class":828},[736,2005,2006],{"class":1485}," 26",[736,2008,1296],{"class":828},[736,2010,1445],{"class":828},[736,2012,2013],{"class":1485},"success",[736,2015,1440],{"class":828},[736,2017,812],{"class":828},[736,2019,2020],{"class":828}," true,",[736,2022,1445],{"class":828},[736,2024,1909],{"class":1485},[736,2026,1440],{"class":828},[736,2028,812],{"class":828},[736,2030,2031],{"class":1485}," 8900",[736,2033,929],{"class":828},[736,2035,2037,2039,2041,2043,2045,2047,2049,2052,2054,2056,2058,2060,2062,2064,2067,2069,2071,2073,2075,2077,2080],{"class":738,"line":2036},28,[736,2038,1977],{"class":828},[736,2040,1445],{"class":828},[736,2042,1982],{"class":1485},[736,2044,1440],{"class":828},[736,2046,812],{"class":828},[736,2048,1445],{"class":828},[736,2050,2051],{"class":745},"lookup_order",[736,2053,1440],{"class":828},[736,2055,1296],{"class":828},[736,2057,1445],{"class":828},[736,2059,1515],{"class":1485},[736,2061,1440],{"class":828},[736,2063,812],{"class":828},[736,2065,2066],{"class":1485}," 13",[736,2068,1296],{"class":828},[736,2070,1445],{"class":828},[736,2072,2013],{"class":1485},[736,2074,1440],{"class":828},[736,2076,812],{"class":828},[736,2078,2079],{"class":828}," true",[736,2081,2082],{"class":828}," }\n",[736,2084,2086],{"class":738,"line":2085},29,[736,2087,2088],{"class":828},"    ]\n",[736,2090,2092],{"class":738,"line":2091},30,[736,2093,2094],{"class":828},"  }\n",[736,2096,2098],{"class":738,"line":2097},31,[736,2099,2100],{"class":828},"}\n",[544,2102,2103],{},"After approval, the next turn carries the outcome:",[726,2105,2108],{"className":1420,"code":2106,"filename":2107,"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,2109,2110,2114,2133,2145,2163,2182,2197,2210,2214,2272,2349,2394,2406,2461,2479,2483],{"__ignoreMap":732},[736,2111,2112],{"class":738,"line":739},[736,2113,893],{"class":828},[736,2115,2116,2118,2120,2122,2124,2126,2129,2131],{"class":738,"line":850},[736,2117,1434],{"class":828},[736,2119,1459],{"class":966},[736,2121,1440],{"class":828},[736,2123,812],{"class":828},[736,2125,1445],{"class":828},[736,2127,2128],{"class":745},"\u002Fsessions\u002Fsess_abc\u002Fturns\u002Fturn_1",[736,2130,1440],{"class":828},[736,2132,945],{"class":828},[736,2134,2135,2137,2139,2141,2143],{"class":738,"line":871},[736,2136,1434],{"class":828},[736,2138,436],{"class":966},[736,2140,1440],{"class":828},[736,2142,812],{"class":828},[736,2144,970],{"class":828},[736,2146,2147,2149,2151,2153,2155,2157,2159,2161],{"class":738,"line":878},[736,2148,1561],{"class":828},[736,2150,1564],{"class":742},[736,2152,1440],{"class":828},[736,2154,812],{"class":828},[736,2156,1445],{"class":828},[736,2158,1573],{"class":745},[736,2160,1440],{"class":828},[736,2162,945],{"class":828},[736,2164,2165,2167,2169,2171,2173,2175,2178,2180],{"class":738,"line":896},[736,2166,1561],{"class":828},[736,2168,1584],{"class":742},[736,2170,1440],{"class":828},[736,2172,812],{"class":828},[736,2174,1445],{"class":828},[736,2176,2177],{"class":745},"turn_1",[736,2179,1440],{"class":828},[736,2181,945],{"class":828},[736,2183,2184,2186,2188,2190,2192,2195],{"class":738,"line":932},[736,2185,1561],{"class":828},[736,2187,1604],{"class":742},[736,2189,1440],{"class":828},[736,2191,812],{"class":828},[736,2193,2194],{"class":1485}," 1",[736,2196,945],{"class":828},[736,2198,2199,2201,2203,2205,2207],{"class":738,"line":948},[736,2200,1561],{"class":828},[736,2202,1640],{"class":742},[736,2204,1440],{"class":828},[736,2206,812],{"class":828},[736,2208,2209],{"class":1485}," 2\n",[736,2211,2212],{"class":738,"line":973},[736,2213,1009],{"class":828},[736,2215,2216,2218,2221,2223,2225,2227,2229,2231,2233,2235,2237,2239,2241,2243,2245,2247,2249,2251,2253,2255,2257,2259,2261,2263,2265,2268,2270],{"class":738,"line":1006},[736,2217,1434],{"class":828},[736,2219,2220],{"class":966},"refund",[736,2222,1440],{"class":828},[736,2224,812],{"class":828},[736,2226,829],{"class":828},[736,2228,1445],{"class":828},[736,2230,1244],{"class":742},[736,2232,1440],{"class":828},[736,2234,812],{"class":828},[736,2236,1445],{"class":828},[736,2238,1728],{"class":745},[736,2240,1440],{"class":828},[736,2242,1296],{"class":828},[736,2244,1445],{"class":828},[736,2246,1308],{"class":742},[736,2248,1440],{"class":828},[736,2250,812],{"class":828},[736,2252,1743],{"class":1485},[736,2254,1296],{"class":828},[736,2256,1445],{"class":828},[736,2258,1322],{"class":742},[736,2260,1440],{"class":828},[736,2262,812],{"class":828},[736,2264,1445],{"class":828},[736,2266,2267],{"class":745},"refunded",[736,2269,1440],{"class":828},[736,2271,929],{"class":828},[736,2273,2274,2276,2279,2281,2283,2285,2287,2290,2292,2294,2296,2299,2301,2303,2305,2308,2310,2312,2314,2316,2319,2321,2323,2325,2327,2329,2331,2333,2335,2337,2339,2341,2343,2345,2347],{"class":738,"line":1012},[736,2275,1434],{"class":828},[736,2277,2278],{"class":966},"audit",[736,2280,1440],{"class":828},[736,2282,812],{"class":828},[736,2284,829],{"class":828},[736,2286,1445],{"class":828},[736,2288,2289],{"class":742},"action",[736,2291,1440],{"class":828},[736,2293,812],{"class":828},[736,2295,1445],{"class":828},[736,2297,2298],{"class":745},"refund.issued",[736,2300,1440],{"class":828},[736,2302,1296],{"class":828},[736,2304,1445],{"class":828},[736,2306,2307],{"class":742},"target",[736,2309,1440],{"class":828},[736,2311,812],{"class":828},[736,2313,829],{"class":828},[736,2315,1445],{"class":828},[736,2317,2318],{"class":1485},"type",[736,2320,1440],{"class":828},[736,2322,812],{"class":828},[736,2324,1445],{"class":828},[736,2326,1709],{"class":745},[736,2328,1440],{"class":828},[736,2330,1296],{"class":828},[736,2332,1445],{"class":828},[736,2334,1293],{"class":1485},[736,2336,1440],{"class":828},[736,2338,812],{"class":828},[736,2340,1445],{"class":828},[736,2342,1728],{"class":745},[736,2344,1440],{"class":828},[736,2346,836],{"class":828},[736,2348,929],{"class":828},[736,2350,2351,2353,2355,2357,2359,2361,2363,2365,2367,2369,2371,2374,2376,2378,2380,2382,2384,2386,2388,2390,2392],{"class":738,"line":1263},[736,2352,1434],{"class":828},[736,2354,1771],{"class":966},[736,2356,1440],{"class":828},[736,2358,812],{"class":828},[736,2360,829],{"class":828},[736,2362,1445],{"class":828},[736,2364,1322],{"class":742},[736,2366,1440],{"class":828},[736,2368,812],{"class":828},[736,2370,1445],{"class":828},[736,2372,2373],{"class":745},"approved",[736,2375,1440],{"class":828},[736,2377,1296],{"class":828},[736,2379,1445],{"class":828},[736,2381,1799],{"class":742},[736,2383,1440],{"class":828},[736,2385,812],{"class":828},[736,2387,1445],{"class":828},[736,2389,1808],{"class":745},[736,2391,1440],{"class":828},[736,2393,929],{"class":828},[736,2395,2396,2398,2400,2402,2404],{"class":738,"line":1331},[736,2397,1434],{"class":828},[736,2399,1820],{"class":966},[736,2401,1440],{"class":828},[736,2403,812],{"class":828},[736,2405,970],{"class":828},[736,2407,2408,2410,2412,2414,2416,2419,2421,2423,2425,2427,2429,2431,2433,2435,2437,2439,2441,2443,2446,2448,2450,2452,2454,2456,2458],{"class":738,"line":1340},[736,2409,1561],{"class":828},[736,2411,1964],{"class":742},[736,2413,1440],{"class":828},[736,2415,812],{"class":828},[736,2417,2418],{"class":828}," [{",[736,2420,1445],{"class":828},[736,2422,1982],{"class":1485},[736,2424,1440],{"class":828},[736,2426,812],{"class":828},[736,2428,1445],{"class":828},[736,2430,1808],{"class":745},[736,2432,1440],{"class":828},[736,2434,1296],{"class":828},[736,2436,1445],{"class":828},[736,2438,1515],{"class":1485},[736,2440,1440],{"class":828},[736,2442,812],{"class":828},[736,2444,2445],{"class":1485}," 993",[736,2447,1296],{"class":828},[736,2449,1445],{"class":828},[736,2451,2013],{"class":1485},[736,2453,1440],{"class":828},[736,2455,812],{"class":828},[736,2457,2079],{"class":828},[736,2459,2460],{"class":828}," }],\n",[736,2462,2463,2465,2467,2469,2471,2473,2476],{"class":738,"line":1345},[736,2464,1561],{"class":828},[736,2466,1943],{"class":742},[736,2468,1440],{"class":828},[736,2470,812],{"class":828},[736,2472,1445],{"class":828},[736,2474,2475],{"class":745},"stop",[736,2477,2478],{"class":828},"\"\n",[736,2480,2481],{"class":738,"line":1654},[736,2482,2094],{"class":828},[736,2484,2485],{"class":738,"line":1704},[736,2486,2100],{"class":828},[544,2488,2489,2490,2493,2494,2493,2497,2500,2501,2503,2504,2507,2508,2511,2512,2515,2516,2493,2518,2493,2521,2493,2524,2493,2527,979],{},"Token usage and tool executions are accumulated from eve stream events (",[563,2491,2492],{},"step.completed",", ",[563,2495,2496],{},"actions.requested",[563,2498,2499],{},"action.result","). Business fields set via ",[563,2502,1054],{}," carry across turns in the same session. Link turns in analytics with ",[563,2505,2506],{},"eve.sessionId"," + ",[563,2509,2510],{},"eve.turnSequence",", and each event stays self-contained. ",[563,2513,2514],{},"eve.phase"," is only set for non-routine endings: ",[563,2517,1629],{},[563,2519,2520],{},"awaiting-authorization",[563,2522,2523],{},"rejected",[563,2525,2526],{},"cancelled",[563,2528,2529],{},"failed",[718,2531,2533],{"id":2532},"everything-the-turn-can-report","Everything the turn can report",[544,2535,2536],{},"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,2538,2539,2549],{},[647,2540,2541],{},[650,2542,2543,2546],{},[653,2544,2545],{},"Field",[653,2547,2548],{},"What it tells you",[660,2550,2551,2571,2598,2611,2628,2642,2655,2665,2681,2691,2701,2715,2732,2757],{},[650,2552,2553,2558],{},[665,2554,2555],{},[563,2556,2557],{},"eve.runtime",[665,2559,2560,2561,2564,2565,2564,2568],{},"eve version, agent id, model, and the deployed ",[563,2562,2563],{},"gitSha"," \u002F ",[563,2566,2567],{},"gitBranch",[563,2569,2570],{},"deployedAt",[650,2572,2573,2578],{},[665,2574,2575],{},[563,2576,2577],{},"eve.caller",[665,2579,2580,2581,2493,2584,588,2587,2590,2591,588,2594,2597],{},"Who triggered the turn: ",[563,2582,2583],{},"principalId",[563,2585,2586],{},"principalType",[563,2588,2589],{},"authenticator",". On a multi-user channel this is what you group cost and volume by. ",[563,2592,2593],{},"subject",[563,2595,2596],{},"attributes"," are never recorded — a channel may put a name or an email in them",[650,2599,2600,2605],{},[665,2601,2602],{},[563,2603,2604],{},"eve.parent",[665,2606,2607,2608],{},"Parent and root session ids for a subagent run — rebuild the delegation tree with ",[563,2609,2610],{},"rootSessionId",[650,2612,2613,2618],{},[665,2614,2615],{},[563,2616,2617],{},"eve.authorizations",[665,2619,2620,2621,2493,2624,2627],{},"Connection sign-ins with their ",[563,2622,2623],{},"outcome",[563,2625,2626],{},"reason"," and duration",[650,2629,2630,2635],{},[665,2631,2632],{},[563,2633,2634],{},"eve.compaction",[665,2636,2637,2638,2641],{},"How many compactions ran, on which model, and ",[563,2639,2640],{},"inputTokensAtTrigger"," — how full the context was when the first one fired",[650,2643,2644,2652],{},[665,2645,2646,2564,2649],{},[563,2647,2648],{},"eve.stepFailures",[563,2650,2651],{},"eve.failedSteps",[665,2653,2654],{},"Model calls that failed, including on a turn that then succeeded on retry",[650,2656,2657,2662],{},[665,2658,2659],{},[563,2660,2661],{},"eve.subagents",[665,2663,2664],{},"Delegations with their status and duration",[650,2666,2667,2672],{},[665,2668,2669],{},[563,2670,2671],{},"eve.reasoning",[665,2673,2674,588,2677,2680],{},[563,2675,2676],{},"blocks",[563,2678,2679],{},"chars"," — the size of the model's thinking, never its content",[650,2682,2683,2688],{},[665,2684,2685],{},[563,2686,2687],{},"eve.result",[665,2689,2690],{},"The structured result, for an agent with an output schema",[650,2692,2693,2698],{},[665,2694,2695],{},[563,2696,2697],{},"eve.contextCleared",[665,2699,2700],{},"The durable history was wiped during this turn",[650,2702,2703,2708],{},[665,2704,2705],{},[563,2706,2707],{},"message.responseChars",[665,2709,2710,2711,2714],{},"Length of the agent's response, recorded whatever the ",[563,2712,2713],{},"message"," mode",[650,2716,2717,2722],{},[665,2718,2719],{},[563,2720,2721],{},"ai.costUsd",[665,2723,2724,2725,2728,2729],{},"Cost as reported by eve. ",[563,2726,2727],{},"ai.estimatedCost"," is the fallback computed from ",[563,2730,2731],{},"cost",[650,2733,2734,2742],{},[665,2735,2736,2564,2739],{},[563,2737,2738],{},"ai.model",[563,2740,2741],{},"ai.provider",[665,2743,2744,2745,2747,2748,2750,2751,2753,2754],{},"The gateway slug (",[563,2746,1843],{},") and the resolved provider (",[563,2749,1864],{},") that served the turn. ",[563,2752,2741],{}," is split from the model id eve reports on ",[563,2755,2756],{},"session.started",[650,2758,2759,2764],{},[665,2760,2761],{},[563,2762,2763],{},"ai.tools[].inputTokens",[665,2765,2766],{},"The input tokens a tool result added to the next model call: the delta between the step that called the tool and the step that consumed its result. Parallel results in one step share the delta evenly; left unset when the turn ended before the result was consumed, or when a compaction reset the context",[639,2768,2770],{"id":2769},"correlate-traces-with-wide-events","Correlate traces with wide events",[544,2772,2773,2774,2776],{},"A wide event and an Agent Runs span describe the same turn, but nothing joins them on its own. ",[563,2775,708],{}," stamps evlog's turn identity onto eve's AI SDK spans:",[726,2778,2780],{"className":815,"code":2779,"filename":565,"language":817,"meta":732,"style":732},"import { defineEvlogInstrumentation } from 'evlog\u002Feve'\n\nexport default defineEvlogInstrumentation()\n",[563,2781,2782,2801,2805],{"__ignoreMap":732},[736,2783,2784,2786,2788,2791,2793,2795,2797,2799],{"class":738,"line":739},[736,2785,825],{"class":824},[736,2787,829],{"class":828},[736,2789,2790],{"class":832}," defineEvlogInstrumentation",[736,2792,836],{"class":828},[736,2794,839],{"class":824},[736,2796,842],{"class":828},[736,2798,569],{"class":745},[736,2800,847],{"class":828},[736,2802,2803],{"class":738,"line":850},[736,2804,875],{"emptyLinePlaceholder":874},[736,2806,2807,2809,2811,2813],{"class":738,"line":871},[736,2808,881],{"class":824},[736,2810,884],{"class":824},[736,2812,2790],{"class":887},[736,2814,1260],{"class":832},[544,2816,2817,2818,588,2821,2824,2825,588,2828,2830],{},"Every model-call span, and its children, then carries ",[563,2819,2820],{},"evlog.request_id",[563,2822,2823],{},"evlog.session_id",", the same values the wide event reports as ",[563,2826,2827],{},"requestId",[563,2829,2506],{},". Jump from a trace in Braintrust, Datadog or Agent Runs straight to the event in your drain, and back.",[544,2832,2833,2834,2837,2838,2841],{},"Without ",[563,2835,2836],{},"setup",", OpenTelemetry export is untouched: eve keeps writing its local traces, readable with ",[563,2839,2840],{},"eve traces",". Pass one to export elsewhere:",[726,2843,2845],{"className":815,"code":2844,"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,2846,2847,2865,2885,2889,2901,2938],{"__ignoreMap":732},[736,2848,2849,2851,2853,2855,2857,2859,2861,2863],{"class":738,"line":739},[736,2850,825],{"class":824},[736,2852,829],{"class":828},[736,2854,2790],{"class":832},[736,2856,836],{"class":828},[736,2858,839],{"class":824},[736,2860,842],{"class":828},[736,2862,569],{"class":745},[736,2864,847],{"class":828},[736,2866,2867,2869,2871,2874,2876,2878,2880,2883],{"class":738,"line":850},[736,2868,825],{"class":824},[736,2870,829],{"class":828},[736,2872,2873],{"class":832}," registerOTel",[736,2875,836],{"class":828},[736,2877,839],{"class":824},[736,2879,842],{"class":828},[736,2881,2882],{"class":745},"@vercel\u002Fotel",[736,2884,847],{"class":828},[736,2886,2887],{"class":738,"line":871},[736,2888,875],{"emptyLinePlaceholder":874},[736,2890,2891,2893,2895,2897,2899],{"class":738,"line":878},[736,2892,881],{"class":824},[736,2894,884],{"class":824},[736,2896,2790],{"class":887},[736,2898,890],{"class":832},[736,2900,893],{"class":828},[736,2902,2903,2906,2908,2911,2914,2916,2918,2920,2922,2924,2927,2929,2932,2934,2936],{"class":738,"line":896},[736,2904,2905],{"class":887},"  setup",[736,2907,812],{"class":828},[736,2909,2910],{"class":828}," ({",[736,2912,2913],{"class":959}," agentName",[736,2915,1221],{"class":828},[736,2917,967],{"class":966},[736,2919,2873],{"class":887},[736,2921,890],{"class":832},[736,2923,1184],{"class":828},[736,2925,2926],{"class":899}," serviceName",[736,2928,812],{"class":828},[736,2930,2931],{"class":832}," agentName ",[736,2933,1015],{"class":828},[736,2935,963],{"class":832},[736,2937,945],{"class":828},[736,2939,2940,2942],{"class":738,"line":932},[736,2941,1015],{"class":828},[736,2943,1018],{"class":832},[544,2945,2946,2493,2949,2493,2952,588,2955,2958,2959,979],{},[563,2947,2948],{},"functionId",[563,2950,2951],{},"recordInputs",[563,2953,2954],{},"recordOutputs",[563,2956,2957],{},"traceChannelRequests"," pass straight through to eve's ",[563,2960,2961],{},"defineInstrumentation",[718,2963,2965],{"id":2964},"alongside-another-observability-backend","Alongside another observability backend",[544,2967,2968,2970,2971,2973,2974,2977,2978,2981],{},[563,2969,708],{}," is the shortcut for an agent whose instrumentation is evlog's alone. It owns the file, and an agent has exactly one ",[563,2972,565],{},", so every observability item in eve's registry writes that same path, which is why ",[563,2975,2976],{},"eve add instrumentation\u002Fsentry"," after ",[563,2979,2980],{},"eve add instrumentation\u002Fposthog"," refuses rather than clobbering the first.",[544,2983,2984,2985,2987,2988,2991],{},"Once another backend is in play, write the file yourself with eve's own ",[563,2986,2961],{}," and spread ",[563,2989,2990],{},"evlogRuntimeContext"," into your runtime context. evlog contributes attributes to your instrumentation instead of wrapping it:",[726,2993,2995],{"className":815,"code":2994,"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,2996,2997,3022,3042,3065,3085,3104,3108,3120,3126,3131,3136,3156,3167,3176,3194,3215,3225,3241,3261,3305,3313,3320,3329,3338,3361,3395,3419,3426,3435,3450,3455,3487,3493,3499,3505,3510],{"__ignoreMap":732},[736,2998,2999,3001,3003,3006,3008,3011,3013,3015,3017,3020],{"class":738,"line":739},[736,3000,825],{"class":824},[736,3002,829],{"class":828},[736,3004,3005],{"class":832}," BatchSpanProcessor",[736,3007,1296],{"class":828},[736,3009,3010],{"class":832}," SimpleSpanProcessor",[736,3012,836],{"class":828},[736,3014,839],{"class":824},[736,3016,842],{"class":828},[736,3018,3019],{"class":745},"@opentelemetry\u002Fsdk-trace-base",[736,3021,847],{"class":828},[736,3023,3024,3026,3028,3031,3033,3035,3037,3040],{"class":738,"line":850},[736,3025,825],{"class":824},[736,3027,829],{"class":828},[736,3029,3030],{"class":832}," PostHogTraceExporter",[736,3032,836],{"class":828},[736,3034,839],{"class":824},[736,3036,842],{"class":828},[736,3038,3039],{"class":745},"@posthog\u002Fai\u002Fotel",[736,3041,847],{"class":828},[736,3043,3044,3046,3048,3051,3053,3055,3057,3059,3061,3063],{"class":738,"line":871},[736,3045,825],{"class":824},[736,3047,829],{"class":828},[736,3049,3050],{"class":832}," OTLPHttpProtoTraceExporter",[736,3052,1296],{"class":828},[736,3054,2873],{"class":832},[736,3056,836],{"class":828},[736,3058,839],{"class":824},[736,3060,842],{"class":828},[736,3062,2882],{"class":745},[736,3064,847],{"class":828},[736,3066,3067,3069,3071,3074,3076,3078,3080,3083],{"class":738,"line":878},[736,3068,825],{"class":824},[736,3070,829],{"class":828},[736,3072,3073],{"class":832}," defineInstrumentation",[736,3075,836],{"class":828},[736,3077,839],{"class":824},[736,3079,842],{"class":828},[736,3081,3082],{"class":745},"eve\u002Finstrumentation",[736,3084,847],{"class":828},[736,3086,3087,3089,3091,3094,3096,3098,3100,3102],{"class":738,"line":896},[736,3088,825],{"class":824},[736,3090,829],{"class":828},[736,3092,3093],{"class":832}," evlogRuntimeContext",[736,3095,836],{"class":828},[736,3097,839],{"class":824},[736,3099,842],{"class":828},[736,3101,569],{"class":745},[736,3103,847],{"class":828},[736,3105,3106],{"class":738,"line":932},[736,3107,875],{"emptyLinePlaceholder":874},[736,3109,3110,3112,3114,3116,3118],{"class":738,"line":948},[736,3111,881],{"class":824},[736,3113,884],{"class":824},[736,3115,3073],{"class":887},[736,3117,890],{"class":832},[736,3119,893],{"class":828},[736,3121,3122],{"class":738,"line":973},[736,3123,3125],{"class":3124},"sHwdD","  \u002F\u002F One provider, one span processor per backend. Items that generate\n",[736,3127,3128],{"class":738,"line":1006},[736,3129,3130],{"class":3124},"  \u002F\u002F `traceExporter` (Sentry, Datadog, Arize, Jaeger, Braintrust, Honeycomb)\n",[736,3132,3133],{"class":738,"line":1012},[736,3134,3135],{"class":3124},"  \u002F\u002F become an entry in this array. Call registerOTel once, not once per backend.\n",[736,3137,3138,3140,3142,3144,3146,3148,3150,3152,3154],{"class":738,"line":1263},[736,3139,2905],{"class":887},[736,3141,812],{"class":828},[736,3143,2910],{"class":828},[736,3145,2913],{"class":959},[736,3147,1221],{"class":828},[736,3149,967],{"class":966},[736,3151,2873],{"class":887},[736,3153,890],{"class":832},[736,3155,893],{"class":828},[736,3157,3158,3161,3163,3165],{"class":738,"line":1331},[736,3159,3160],{"class":899},"    serviceName",[736,3162,812],{"class":828},[736,3164,2913],{"class":832},[736,3166,945],{"class":828},[736,3168,3169,3172,3174],{"class":738,"line":1340},[736,3170,3171],{"class":899},"    spanProcessors",[736,3173,812],{"class":828},[736,3175,1971],{"class":832},[736,3177,3178,3181,3183,3185,3188,3190,3192],{"class":738,"line":1345},[736,3179,3180],{"class":828},"      new",[736,3182,3010],{"class":887},[736,3184,890],{"class":832},[736,3186,3187],{"class":828},"new",[736,3189,3030],{"class":887},[736,3191,890],{"class":832},[736,3193,893],{"class":828},[736,3195,3196,3199,3201,3203,3205,3207,3209,3212],{"class":738,"line":1654},[736,3197,3198],{"class":899},"        projectToken",[736,3200,812],{"class":828},[736,3202,993],{"class":832},[736,3204,979],{"class":828},[736,3206,998],{"class":832},[736,3208,979],{"class":828},[736,3210,3211],{"class":832},"POSTHOG_PROJECT_TOKEN",[736,3213,3214],{"class":828},"!,\n",[736,3216,3217,3220,3223],{"class":738,"line":1704},[736,3218,3219],{"class":828},"      }",[736,3221,3222],{"class":832},"))",[736,3224,945],{"class":828},[736,3226,3227,3229,3231,3233,3235,3237,3239],{"class":738,"line":1766},[736,3228,3180],{"class":828},[736,3230,3005],{"class":887},[736,3232,890],{"class":832},[736,3234,3187],{"class":828},[736,3236,3050],{"class":887},[736,3238,890],{"class":832},[736,3240,893],{"class":828},[736,3242,3243,3246,3248,3250,3252,3254,3256,3259],{"class":738,"line":1815},[736,3244,3245],{"class":899},"        url",[736,3247,812],{"class":828},[736,3249,993],{"class":832},[736,3251,979],{"class":828},[736,3253,998],{"class":832},[736,3255,979],{"class":828},[736,3257,3258],{"class":832},"SENTRY_OTLP_TRACES_ENDPOINT",[736,3260,3214],{"class":828},[736,3262,3263,3266,3268,3270,3272,3275,3277,3279,3282,3285,3288,3291,3293,3295,3297,3300,3303],{"class":738,"line":1829},[736,3264,3265],{"class":899},"        headers",[736,3267,812],{"class":828},[736,3269,829],{"class":828},[736,3271,842],{"class":828},[736,3273,3274],{"class":899},"x-sentry-auth",[736,3276,924],{"class":828},[736,3278,812],{"class":828},[736,3280,3281],{"class":828}," `",[736,3283,3284],{"class":745},"sentry sentry_key=",[736,3286,3287],{"class":828},"${",[736,3289,3290],{"class":832},"process",[736,3292,979],{"class":828},[736,3294,998],{"class":832},[736,3296,979],{"class":828},[736,3298,3299],{"class":832},"SENTRY_PUBLIC_KEY",[736,3301,3302],{"class":828},"}`",[736,3304,929],{"class":828},[736,3306,3307,3309,3311],{"class":738,"line":1850},[736,3308,3219],{"class":828},[736,3310,3222],{"class":832},[736,3312,945],{"class":828},[736,3314,3315,3318],{"class":738,"line":1871},[736,3316,3317],{"class":832},"    ]",[736,3319,945],{"class":828},[736,3321,3322,3325,3327],{"class":738,"line":1888},[736,3323,3324],{"class":828},"  }",[736,3326,963],{"class":832},[736,3328,945],{"class":828},[736,3330,3331,3334,3336],{"class":738,"line":1904},[736,3332,3333],{"class":899},"  events",[736,3335,812],{"class":828},[736,3337,970],{"class":828},[736,3339,3340,3343,3346,3348,3350,3352,3355,3357,3359],{"class":738,"line":1921},[736,3341,3342],{"class":828},"    '",[736,3344,3345],{"class":899},"step.started",[736,3347,924],{"class":828},[736,3349,812],{"class":828},[736,3351,956],{"class":828},[736,3353,3354],{"class":959},"input",[736,3356,963],{"class":828},[736,3358,967],{"class":966},[736,3360,970],{"class":828},[736,3362,3363,3366,3369,3371,3374,3376,3379,3381,3384,3386,3389,3392],{"class":738,"line":1938},[736,3364,3365],{"class":966},"      const",[736,3367,3368],{"class":832}," principalId",[736,3370,990],{"class":828},[736,3372,3373],{"class":832}," input",[736,3375,979],{"class":828},[736,3377,3378],{"class":832},"session",[736,3380,979],{"class":828},[736,3382,3383],{"class":832},"auth",[736,3385,979],{"class":828},[736,3387,3388],{"class":832},"initiator",[736,3390,3391],{"class":828},"?.",[736,3393,3394],{"class":832},"principalId\n",[736,3396,3397,3400,3402,3404,3406,3408,3410,3412,3415,3417],{"class":738,"line":1959},[736,3398,3399],{"class":828},"        ??",[736,3401,3373],{"class":832},[736,3403,979],{"class":828},[736,3405,3378],{"class":832},[736,3407,979],{"class":828},[736,3409,3383],{"class":832},[736,3411,979],{"class":828},[736,3413,3414],{"class":832},"current",[736,3416,3391],{"class":828},[736,3418,3394],{"class":832},[736,3420,3421,3424],{"class":738,"line":1974},[736,3422,3423],{"class":824},"      return",[736,3425,970],{"class":828},[736,3427,3428,3431,3433],{"class":738,"line":2036},[736,3429,3430],{"class":899},"        runtimeContext",[736,3432,812],{"class":828},[736,3434,970],{"class":828},[736,3436,3437,3440,3442,3444,3446,3448],{"class":738,"line":2085},[736,3438,3439],{"class":828},"          ...",[736,3441,2990],{"class":887},[736,3443,890],{"class":899},[736,3445,3354],{"class":832},[736,3447,963],{"class":899},[736,3449,945],{"class":828},[736,3451,3452],{"class":738,"line":2091},[736,3453,3454],{"class":3124},"          \u002F\u002F Omitted rather than blank: an empty attribute reads as an empty id.\n",[736,3456,3457,3459,3461,3463,3466,3468,3471,3473,3475,3477,3480,3483,3485],{"class":738,"line":2097},[736,3458,3439],{"class":828},[736,3460,890],{"class":899},[736,3462,2583],{"class":832},[736,3464,3465],{"class":828}," ?",[736,3467,829],{"class":828},[736,3469,3470],{"class":899}," posthog_distinct_id",[736,3472,812],{"class":828},[736,3474,3368],{"class":832},[736,3476,836],{"class":828},[736,3478,3479],{"class":828}," :",[736,3481,3482],{"class":828}," {}",[736,3484,963],{"class":899},[736,3486,945],{"class":828},[736,3488,3490],{"class":738,"line":3489},32,[736,3491,3492],{"class":828},"        },\n",[736,3494,3496],{"class":738,"line":3495},33,[736,3497,3498],{"class":828},"      }\n",[736,3500,3502],{"class":738,"line":3501},34,[736,3503,3504],{"class":828},"    },\n",[736,3506,3508],{"class":738,"line":3507},35,[736,3509,1009],{"class":828},[736,3511,3513,3515],{"class":738,"line":3512},36,[736,3514,1015],{"class":828},[736,3516,1018],{"class":832},[544,3518,3519,3521,3522,3525,3526,3529],{},[563,3520,2990],{}," returns ",[563,3523,3524],{},"undefined"," outside a tracked turn, and spreading that adds nothing. PostHog is the only registry item that also uses ",[563,3527,3528],{},"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,3531,3532,3533,3536,3537,3539],{},"Spans and wide events stay joined by attribute, not by trace id: an agent turn has no inbound ",[563,3534,3535],{},"traceparent"," to inherit, so ",[563,3538,2820],{}," is what carries across.",[576,3541,3544,3550,3551,2564,3554,3557,3558,3561,3562,3565,3566,3569,3570,3572],{"color":3542,"icon":3543},"warning","i-lucide-triangle-alert",[554,3545,3546,3547,979],{},"PostHog drops ",[563,3548,3549],{},"evlog.*"," Its exporter forwards the whole span, but the server-side conversion into ",[563,3552,3553],{},"$ai_generation",[563,3555,3556],{},"$ai_span"," events keeps only attributes prefixed ",[563,3559,3560],{},"posthog_",", and strips that prefix. To join on PostHog, repeat the ids under names that survive, since ",[563,3563,3564],{},"posthog_evlog_request_id"," arrives as ",[563,3567,3568],{},"evlog_request_id",". Other OTLP backends receive ",[563,3571,3549],{}," unchanged.",[544,3574,3575,3576,3579],{},"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,3577,3578],{},"posthog_*"," attributes onto every child span is what closes the gap.",[544,3581,3582],{},"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,3584,3586],{"className":815,"code":3585,"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,3587,3588,3608,3626,3630,3642,3672],{"__ignoreMap":732},[736,3589,3590,3592,3594,3597,3599,3601,3603,3606],{"class":738,"line":739},[736,3591,825],{"class":824},[736,3593,829],{"class":828},[736,3595,3596],{"class":832}," createPostHogDrain",[736,3598,836],{"class":828},[736,3600,839],{"class":824},[736,3602,842],{"class":828},[736,3604,3605],{"class":745},"evlog\u002Fposthog",[736,3607,847],{"class":828},[736,3609,3610,3612,3614,3616,3618,3620,3622,3624],{"class":738,"line":850},[736,3611,825],{"class":824},[736,3613,829],{"class":828},[736,3615,833],{"class":832},[736,3617,836],{"class":828},[736,3619,839],{"class":824},[736,3621,842],{"class":828},[736,3623,569],{"class":745},[736,3625,847],{"class":828},[736,3627,3628],{"class":738,"line":871},[736,3629,875],{"emptyLinePlaceholder":874},[736,3631,3632,3634,3636,3638,3640],{"class":738,"line":878},[736,3633,881],{"class":824},[736,3635,884],{"class":824},[736,3637,833],{"class":887},[736,3639,890],{"class":832},[736,3641,893],{"class":828},[736,3643,3644,3646,3648,3650,3652,3654,3657,3659,3661,3664,3666,3668,3670],{"class":738,"line":896},[736,3645,935],{"class":899},[736,3647,812],{"class":828},[736,3649,3596],{"class":887},[736,3651,890],{"class":832},[736,3653,1184],{"class":828},[736,3655,3656],{"class":899}," distinctIdField",[736,3658,812],{"class":828},[736,3660,842],{"class":828},[736,3662,3663],{"class":745},"eve.caller.principalId",[736,3665,924],{"class":828},[736,3667,836],{"class":828},[736,3669,963],{"class":832},[736,3671,945],{"class":828},[736,3673,3674,3676],{"class":738,"line":932},[736,3675,1015],{"class":828},[736,3677,1018],{"class":832},[544,3679,3680,3681,979],{},"Turns then land on the same PostHog person as the LLM traces they produced. See the ",[547,3682,3684],{"href":3683},"\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fposthog#link-a-log-to-a-person-and-a-session-replay","PostHog adapter",[639,3686,3688],{"id":3687},"production","Production",[544,3690,3691],{},"Long-running eve agents should disable terminal pretty-printing and use a non-blocking drain:",[726,3693,3695],{"className":815,"code":3694,"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,3696,3697,3715,3733,3753,3757,3806,3815,3819,3823,3835,3843,3877,3890,3918,3922,3928,3940],{"__ignoreMap":732},[736,3698,3699,3701,3703,3705,3707,3709,3711,3713],{"class":738,"line":739},[736,3700,825],{"class":824},[736,3702,829],{"class":828},[736,3704,833],{"class":832},[736,3706,836],{"class":828},[736,3708,839],{"class":824},[736,3710,842],{"class":828},[736,3712,569],{"class":745},[736,3714,847],{"class":828},[736,3716,3717,3719,3721,3723,3725,3727,3729,3731],{"class":738,"line":850},[736,3718,825],{"class":824},[736,3720,829],{"class":828},[736,3722,857],{"class":832},[736,3724,836],{"class":828},[736,3726,839],{"class":824},[736,3728,842],{"class":828},[736,3730,866],{"class":745},[736,3732,847],{"class":828},[736,3734,3735,3737,3739,3742,3744,3746,3748,3751],{"class":738,"line":871},[736,3736,825],{"class":824},[736,3738,829],{"class":828},[736,3740,3741],{"class":832}," createDrainPipeline",[736,3743,836],{"class":828},[736,3745,839],{"class":824},[736,3747,842],{"class":828},[736,3749,3750],{"class":745},"evlog\u002Fpipeline",[736,3752,847],{"class":828},[736,3754,3755],{"class":738,"line":878},[736,3756,875],{"emptyLinePlaceholder":874},[736,3758,3759,3762,3765,3768,3770,3772,3774,3777,3779,3781,3784,3786,3789,3791,3794,3796,3799,3801,3803],{"class":738,"line":896},[736,3760,3761],{"class":966},"const",[736,3763,3764],{"class":832}," drain ",[736,3766,3767],{"class":828},"=",[736,3769,3741],{"class":887},[736,3771,890],{"class":832},[736,3773,1184],{"class":828},[736,3775,3776],{"class":899}," batch",[736,3778,812],{"class":828},[736,3780,829],{"class":828},[736,3782,3783],{"class":899}," size",[736,3785,812],{"class":828},[736,3787,3788],{"class":1485}," 50",[736,3790,1296],{"class":828},[736,3792,3793],{"class":899}," intervalMs",[736,3795,812],{"class":828},[736,3797,3798],{"class":1485}," 5000",[736,3800,836],{"class":828},[736,3802,836],{"class":828},[736,3804,3805],{"class":832},")(\n",[736,3807,3808,3811,3813],{"class":738,"line":932},[736,3809,3810],{"class":887},"  createAxiomDrain",[736,3812,942],{"class":832},[736,3814,945],{"class":828},[736,3816,3817],{"class":738,"line":948},[736,3818,1018],{"class":832},[736,3820,3821],{"class":738,"line":973},[736,3822,875],{"emptyLinePlaceholder":874},[736,3824,3825,3827,3829,3831,3833],{"class":738,"line":1006},[736,3826,881],{"class":824},[736,3828,884],{"class":824},[736,3830,833],{"class":887},[736,3832,890],{"class":832},[736,3834,893],{"class":828},[736,3836,3837,3839,3841],{"class":738,"line":1012},[736,3838,900],{"class":899},[736,3840,812],{"class":828},[736,3842,970],{"class":828},[736,3844,3845,3848,3850,3852,3854,3856,3858,3860,3862,3864,3867,3869,3871,3873,3875],{"class":738,"line":1263},[736,3846,3847],{"class":899},"    env",[736,3849,812],{"class":828},[736,3851,829],{"class":828},[736,3853,914],{"class":899},[736,3855,812],{"class":828},[736,3857,842],{"class":828},[736,3859,921],{"class":745},[736,3861,924],{"class":828},[736,3863,1296],{"class":828},[736,3865,3866],{"class":899}," environment",[736,3868,812],{"class":828},[736,3870,842],{"class":828},[736,3872,3687],{"class":745},[736,3874,924],{"class":828},[736,3876,929],{"class":828},[736,3878,3879,3882,3884,3888],{"class":738,"line":1331},[736,3880,3881],{"class":899},"    pretty",[736,3883,812],{"class":828},[736,3885,3887],{"class":3886},"sfNiH"," false",[736,3889,945],{"class":828},[736,3891,3892,3895,3897,3899,3902,3904,3906,3909,3911,3914,3916],{"class":738,"line":1340},[736,3893,3894],{"class":899},"    sampling",[736,3896,812],{"class":828},[736,3898,829],{"class":828},[736,3900,3901],{"class":899}," rates",[736,3903,812],{"class":828},[736,3905,829],{"class":828},[736,3907,3908],{"class":899}," info",[736,3910,812],{"class":828},[736,3912,3913],{"class":1485}," 10",[736,3915,836],{"class":828},[736,3917,929],{"class":828},[736,3919,3920],{"class":738,"line":1345},[736,3921,1009],{"class":828},[736,3923,3924,3926],{"class":738,"line":1654},[736,3925,935],{"class":832},[736,3927,945],{"class":828},[736,3929,3930,3933,3935,3938],{"class":738,"line":1704},[736,3931,3932],{"class":899},"  maxSessions",[736,3934,812],{"class":828},[736,3936,3937],{"class":1485}," 256",[736,3939,945],{"class":828},[736,3941,3942,3944],{"class":738,"line":1766},[736,3943,1015],{"class":828},[736,3945,1018],{"class":832},[644,3947,3948,3958],{},[647,3949,3950],{},[650,3951,3952,3955],{},[653,3953,3954],{},"Concern",[653,3956,3957],{},"Recommendation",[660,3959,3960,3971,3979,3990,4004],{},[650,3961,3962,3965],{},[665,3963,3964],{},"Terminal output",[665,3966,3967,3970],{},[563,3968,3969],{},"init.pretty: false"," — pretty-print is for local dev only",[650,3972,3973,3976],{},[665,3974,3975],{},"Drain latency",[665,3977,3978],{},"Batch or async HTTP drains; never block the turn on I\u002FO",[650,3980,3981,3984],{},[665,3982,3983],{},"Head sampling",[665,3985,3986,3989],{},[563,3987,3988],{},"init.sampling.rates"," — eve emits one event per turn, not per token",[650,3991,3992,3994],{},[665,3993,216],{},[665,3995,3996,3999,4000,4003],{},[563,3997,3998],{},"maxSessions"," (default ",[563,4001,4002],{},"256",") evicts oldest idle session state",[650,4005,4006,4009],{},[665,4007,4008],{},"Load",[665,4010,4011],{},"Hook handlers are O(1) per stream event; cost is dominated by your drain",[639,4013,336],{"id":4014},"options",[644,4016,4017,4027],{},[647,4018,4019],{},[650,4020,4021,4024],{},[653,4022,4023],{},"Option",[653,4025,4026],{},"Description",[660,4028,4029,4042,4063,4083,4099,4112,4133,4144],{},[650,4030,4031,4035],{},[665,4032,4033],{},[563,4034,89],{},[665,4036,4037,4038,4041],{},"Passed to ",[563,4039,4040],{},"initLogger()"," on first hook invocation",[650,4043,4044,4058],{},[665,4045,4046,2564,4049,2564,4052,2564,4055],{},[563,4047,4048],{},"drain",[563,4050,4051],{},"enrich",[563,4053,4054],{},"keep",[563,4056,4057],{},"plugins",[665,4059,4060,4061,963],{},"Same as HTTP integrations (",[547,4062,4057],{"href":474},[650,4064,4065,4069],{},[665,4066,4067],{},[563,4068,2713],{},[665,4070,4071,4074,4075,4078,4079,4082],{},[563,4072,4073],{},"'omit'"," (default), ",[563,4076,4077],{},"'preview'"," or ",[563,4080,4081],{},"'full'"," — how much of the user message and the agent response to record",[650,4084,4085,4090],{},[665,4086,4087],{},[563,4088,4089],{},"messagePreviewLength",[665,4091,4092,4093,4095,4096,963],{},"Characters kept in ",[563,4094,4077],{}," mode (default ",[563,4097,4098],{},"500",[650,4100,4101,4106],{},[665,4102,4103],{},[563,4104,4105],{},"sessionEvent",[665,4107,4108,4111],{},[563,4109,4110],{},"true"," emits one extra event per session, rolling up its turns",[650,4113,4114,4120],{},[665,4115,4116,2564,4118],{},[563,4117,2731],{},[563,4119,1834],{},[665,4121,4122,4123,1384,4126,4129,4130,4132],{},"Fallback token pricing (",[563,4124,4125],{},"ModelCost",[563,4127,4128],{},"evlog\u002Fai",") → ",[563,4131,2727],{},", used only when eve reports no cost",[650,4134,4135,4139],{},[665,4136,4137],{},[563,4138,3998],{},[665,4140,4141,4142,963],{},"In-memory session cap for context carry-over (default ",[563,4143,4002],{},[650,4145,4146,4154],{},[665,4147,4148,2564,4151],{},[563,4149,4150],{},"include",[563,4152,4153],{},"exclude",[665,4155,4156,4157,963],{},"Route-style filters on turn paths (",[563,4158,4159],{},"\u002Fsessions\u002F*\u002Fturns\u002F*",[639,4161,481],{"id":4162},"tail-sampling",[544,4164,4165,4166,4168],{},"Use ",[563,4167,4054],{}," to force-keep turns with failed tools or high token usage:",[726,4170,4172],{"className":815,"code":4171,"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,4173,4174,4186,4198,4215,4241,4252,4261,4285,4296,4338,4368,4414,4418],{"__ignoreMap":732},[736,4175,4176,4178,4180,4182,4184],{"class":738,"line":739},[736,4177,881],{"class":824},[736,4179,884],{"class":824},[736,4181,833],{"class":887},[736,4183,890],{"class":832},[736,4185,893],{"class":828},[736,4187,4188,4190,4192,4194,4196],{"class":738,"line":850},[736,4189,935],{"class":899},[736,4191,812],{"class":828},[736,4193,857],{"class":887},[736,4195,942],{"class":832},[736,4197,945],{"class":828},[736,4199,4200,4203,4205,4207,4209,4211,4213],{"class":738,"line":871},[736,4201,4202],{"class":887},"  keep",[736,4204,812],{"class":828},[736,4206,956],{"class":828},[736,4208,960],{"class":959},[736,4210,963],{"class":828},[736,4212,967],{"class":966},[736,4214,970],{"class":828},[736,4216,4217,4219,4222,4224,4227,4229,4232,4234,4236,4239],{"class":738,"line":878},[736,4218,1228],{"class":966},[736,4220,4221],{"class":832}," ai",[736,4223,990],{"class":828},[736,4225,4226],{"class":832}," ctx",[736,4228,979],{"class":828},[736,4230,4231],{"class":832},"context",[736,4233,979],{"class":828},[736,4235,1820],{"class":832},[736,4237,4238],{"class":824}," as",[736,4240,970],{"class":828},[736,4242,4243,4246,4249],{"class":738,"line":896},[736,4244,4245],{"class":899},"      inputTokens",[736,4247,4248],{"class":828},"?:",[736,4250,4251],{"class":742}," number\n",[736,4253,4254,4257,4259],{"class":738,"line":932},[736,4255,4256],{"class":899},"      outputTokens",[736,4258,4248],{"class":828},[736,4260,4251],{"class":742},[736,4262,4263,4266,4268,4271,4274,4277,4279,4282],{"class":738,"line":948},[736,4264,4265],{"class":899},"      tools",[736,4267,4248],{"class":828},[736,4269,4270],{"class":742}," Array",[736,4272,4273],{"class":828},"\u003C{",[736,4275,4276],{"class":899}," success",[736,4278,812],{"class":828},[736,4280,4281],{"class":742}," boolean",[736,4283,4284],{"class":828}," }>\n",[736,4286,4287,4290,4293],{"class":738,"line":973},[736,4288,4289],{"class":828},"    }",[736,4291,4292],{"class":828}," |",[736,4294,4295],{"class":742}," undefined\n",[736,4297,4298,4300,4303,4305,4307,4309,4311,4313,4316,4318,4321,4324,4326,4328,4330,4332,4334,4336],{"class":738,"line":1006},[736,4299,1228],{"class":966},[736,4301,4302],{"class":832}," totalTokens",[736,4304,990],{"class":828},[736,4306,956],{"class":899},[736,4308,1820],{"class":832},[736,4310,3391],{"class":828},[736,4312,1909],{"class":832},[736,4314,4315],{"class":828}," ??",[736,4317,1611],{"class":1485},[736,4319,4320],{"class":899},") ",[736,4322,4323],{"class":828},"+",[736,4325,956],{"class":899},[736,4327,1820],{"class":832},[736,4329,3391],{"class":828},[736,4331,1926],{"class":832},[736,4333,4315],{"class":828},[736,4335,1611],{"class":1485},[736,4337,1018],{"class":899},[736,4339,4340,4343,4345,4348,4351,4354,4356,4358,4360,4363,4365],{"class":738,"line":1012},[736,4341,4342],{"class":824},"    if",[736,4344,956],{"class":899},[736,4346,4347],{"class":832},"totalTokens",[736,4349,4350],{"class":828}," >",[736,4352,4353],{"class":1485}," 10_000",[736,4355,4320],{"class":899},[736,4357,960],{"class":832},[736,4359,979],{"class":828},[736,4361,4362],{"class":832},"shouldKeep",[736,4364,990],{"class":828},[736,4366,4367],{"class":3886}," true\n",[736,4369,4370,4372,4374,4376,4378,4380,4382,4385,4387,4390,4392,4395,4397,4399,4401,4404,4406,4408,4410,4412],{"class":738,"line":1263},[736,4371,4342],{"class":824},[736,4373,956],{"class":899},[736,4375,1820],{"class":832},[736,4377,3391],{"class":828},[736,4379,1964],{"class":832},[736,4381,3391],{"class":828},[736,4383,4384],{"class":887},"some",[736,4386,890],{"class":899},[736,4388,4389],{"class":959},"t",[736,4391,967],{"class":966},[736,4393,4394],{"class":828}," !",[736,4396,4389],{"class":832},[736,4398,979],{"class":828},[736,4400,2013],{"class":832},[736,4402,4403],{"class":899},")) ",[736,4405,960],{"class":832},[736,4407,979],{"class":828},[736,4409,4362],{"class":832},[736,4411,990],{"class":828},[736,4413,4367],{"class":3886},[736,4415,4416],{"class":738,"line":1331},[736,4417,1009],{"class":828},[736,4419,4420,4422],{"class":738,"line":1340},[736,4421,1015],{"class":828},[736,4423,1018],{"class":832},[639,4425,4427],{"id":4426},"audit-logs","Audit logs",[544,4429,4430,4431,4433,4434,4437,4438,4441,4442,4445,4446,1380,4448,979],{},"Combine with ",[547,4432,378],{"href":384},": register ",[563,4435,4436],{},"auditEnricher()"," via ",[563,4439,4440],{},"init.plugins"," or a global plugin, and call ",[563,4443,4444],{},"log.audit()"," inside tools when a human approval gate fires. Tool rejections surface on ",[563,4447,2499],{},[563,4449,4450],{},"status: \"rejected\"",[639,4452,4454],{"id":4453},"run-locally","Run locally",[726,4456,4458],{"className":728,"code":4457,"language":731,"meta":732,"style":732},"git clone https:\u002F\u002Fgithub.com\u002FHugoRCD\u002Fevlog\ncd evlog\npnpm install\npnpm example eve\n",[563,4459,4460,4471,4479,4486],{"__ignoreMap":732},[736,4461,4462,4465,4468],{"class":738,"line":739},[736,4463,4464],{"class":742},"git",[736,4466,4467],{"class":745}," clone",[736,4469,4470],{"class":745}," https:\u002F\u002Fgithub.com\u002FHugoRCD\u002Fevlog\n",[736,4472,4473,4476],{"class":738,"line":850},[736,4474,4475],{"class":887},"cd",[736,4477,4478],{"class":745}," evlog\n",[736,4480,4481,4483],{"class":738,"line":871},[736,4482,730],{"class":742},[736,4484,4485],{"class":745}," install\n",[736,4487,4488,4490,4493],{"class":738,"line":878},[736,4489,730],{"class":742},[736,4491,4492],{"class":745}," example",[736,4494,752],{"class":745},[544,4496,4497,4498,4501,4502,4505,4506,4509,4510,4516],{},"The ",[563,4499,4500],{},"examples\u002Feve"," project is a ",[554,4503,4504],{},"support refund copilot"," (Clearbill SaaS): lookup customer → lookup order → issue refund, with eve approvals when amount > $100. Run ",[563,4507,4508],{},"pnpm example eve",", open ",[554,4511,4512],{},[547,4513,4514],{"href":4514,"rel":4515},"http:\u002F\u002Flocalhost:3000",[551],", and click a starter prompt.",[639,4518,4520],{"id":4519},"what-to-read-next","What to read next",[602,4522,4523,4531,4539,4545],{},[605,4524,4525,4530],{},[547,4526,4529],{"href":4527,"rel":4528},"https:\u002F\u002Feve.dev\u002Fdocs\u002Fguides\u002Fhooks",[551],"eve hooks guide",": stream event vocabulary",[605,4532,4533,4538],{},[547,4534,4537],{"href":4535,"rel":4536},"https:\u002F\u002Feve.dev\u002Fdocs\u002Fguides\u002Finstrumentation",[551],"eve instrumentation",": OTel spans (complementary)",[605,4540,4541,4544],{},[547,4542,4543],{"href":328},"AI SDK use case",": when you own the model loop directly",[605,4546,4547,4550],{},[547,4548,4549],{"href":143},"Adapters overview",": drain destinations",[4552,4553,4554],"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":4556},[4557,4558,4564,4567,4570,4571,4572,4573,4574,4575],{"id":641,"depth":850,"text":642},{"id":716,"depth":850,"text":25,"children":4559},[4560,4561,4562,4563],{"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":4565},[4566],{"id":2532,"depth":871,"text":2533},{"id":2769,"depth":850,"text":2770,"children":4568},[4569],{"id":2964,"depth":871,"text":2965},{"id":3687,"depth":850,"text":3688},{"id":4014,"depth":850,"text":336},{"id":4162,"depth":850,"text":481},{"id":4426,"depth":850,"text":4427},{"id":4453,"depth":850,"text":4454},{"id":4519,"depth":850,"text":4520},"One evlog wide event per eve agent turn: token usage, tool executions, and business context, through your own drains and tail sampling.","md",[4579],{"label":4580,"icon":4581,"to":1065,"color":1352,"variant":4582},"Source Code","i-simple-icons-github","subtle",{},{"title":436,"icon":439},{"title":436,"description":4576},"lURvX7jVlI3MLvdXKOgd9tAnC3HfAgbx9g-m-oWDZok",[4588,4590],{"title":431,"path":432,"stem":433,"description":4589,"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":4591,"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.",1787764849865]