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