[{"data":1,"prerenderedAt":2643},["ShallowReactive",2],{"navigation_docs":3,"-use-cases-telemetry-setup":529,"-use-cases-telemetry-setup-surround":2638},[4,30,80,128,308,440,499],{"title":5,"path":6,"stem":7,"children":8,"page":29},"Start","\u002Fstart","1.start",[9,14,19,24],{"title":10,"path":11,"stem":12,"icon":13},"Introduction","\u002Fstart\u002Fintroduction","1.start\u002F1.introduction","i-lucide-info",{"title":15,"path":16,"stem":17,"icon":18},"Why start with evlog","\u002Fstart\u002Fwhy-evlog","1.start\u002F2.why-evlog","i-lucide-rocket",{"title":20,"path":21,"stem":22,"icon":23},"Installation","\u002Fstart\u002Finstallation","1.start\u002F3.installation","i-lucide-download",{"title":25,"path":26,"stem":27,"icon":28},"Quick Start","\u002Fstart\u002Fquick-start","1.start\u002F4.quick-start","i-lucide-zap",false,{"title":31,"path":32,"stem":33,"children":34,"page":29},"Learn","\u002Flearn","2.learn",[35,40,45,50,55,60,65,70,75],{"title":36,"path":37,"stem":38,"icon":39},"Overview","\u002Flearn\u002Foverview","2.learn\u002F0.overview","i-lucide-list",{"title":41,"path":42,"stem":43,"icon":44},"Simple Logging","\u002Flearn\u002Fsimple-logging","2.learn\u002F1.simple-logging","i-lucide-terminal",{"title":46,"path":47,"stem":48,"icon":49},"Wide Events","\u002Flearn\u002Fwide-events","2.learn\u002F2.wide-events","i-lucide-layers",{"title":51,"path":52,"stem":53,"icon":54},"Structured Errors","\u002Flearn\u002Fstructured-errors","2.learn\u002F3.structured-errors","i-lucide-shield-alert",{"title":56,"path":57,"stem":58,"icon":59},"Lifecycle","\u002Flearn\u002Flifecycle","2.learn\u002F4.lifecycle","i-lucide-arrow-right-left",{"title":61,"path":62,"stem":63,"icon":64},"Sampling","\u002Flearn\u002Fsampling","2.learn\u002F5.sampling","i-lucide-filter",{"title":66,"path":67,"stem":68,"icon":69},"Auto-Redaction","\u002Flearn\u002Fredaction","2.learn\u002F6.redaction","i-lucide-eye-off",{"title":71,"path":72,"stem":73,"icon":74},"Typed Fields","\u002Flearn\u002Ftyped-fields","2.learn\u002F7.typed-fields","i-simple-icons-typescript",{"title":76,"path":77,"stem":78,"icon":79},"Catalogs","\u002Flearn\u002Fcatalogs","2.learn\u002F8.catalogs","i-lucide-book-open",{"title":81,"path":82,"stem":83,"children":84,"page":29},"CLI","\u002Fcli","3.cli",[85,88,93,98,103,108,113,118,123],{"title":36,"path":86,"stem":87,"icon":44},"\u002Fcli\u002Foverview","3.cli\u002F0.overview",{"title":89,"path":90,"stem":91,"icon":92},"init","\u002Fcli\u002Finit","3.cli\u002F1.init","i-lucide-wand-sparkles",{"title":94,"path":95,"stem":96,"icon":97},"map","\u002Fcli\u002Fmap","3.cli\u002F2.map","i-lucide-radar",{"title":99,"path":100,"stem":101,"icon":102},"Rules","\u002Fcli\u002Frules","3.cli\u002F3.rules","i-lucide-list-checks",{"title":104,"path":105,"stem":106,"icon":107},"Scoring","\u002Fcli\u002Fscoring","3.cli\u002F4.scoring","i-lucide-gauge",{"title":109,"path":110,"stem":111,"icon":112},"CI","\u002Fcli\u002Fci","3.cli\u002F5.ci","i-lucide-git-pull-request",{"title":114,"path":115,"stem":116,"icon":117},"doctor","\u002Fcli\u002Fdoctor","3.cli\u002F6.doctor","i-lucide-stethoscope",{"title":119,"path":120,"stem":121,"icon":122},"telemetry","\u002Fcli\u002Ftelemetry","3.cli\u002F7.telemetry","i-lucide-bar-chart-3",{"title":124,"path":125,"stem":126,"icon":127},"agents","\u002Fcli\u002Fagents","3.cli\u002F8.agents","i-lucide-bot",{"title":129,"path":130,"stem":131,"children":132,"page":29},"Integrate","\u002Fintegrate","4.integrate",[133,137,220],{"title":36,"path":134,"stem":135,"icon":136},"\u002Fintegrate\u002Foverview","4.integrate\u002F0.overview","i-lucide-plug",{"title":138,"path":139,"stem":140,"children":141,"page":29},"Adapters","\u002Fintegrate\u002Fadapters","4.integrate\u002Fadapters",[142,145,175,200],{"title":36,"path":143,"stem":144,"icon":39},"\u002Fintegrate\u002Fadapters\u002Foverview","4.integrate\u002Fadapters\u002F01.overview",{"title":146,"path":147,"stem":148,"children":149,"page":29},"Cloud","\u002Fintegrate\u002Fadapters\u002Fcloud","4.integrate\u002Fadapters\u002Fcloud",[150,155,160,165,170],{"title":151,"path":152,"stem":153,"icon":154},"Axiom","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Faxiom","4.integrate\u002Fadapters\u002Fcloud\u002F01.axiom","i-custom-axiom",{"title":156,"path":157,"stem":158,"icon":159},"PostHog","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fposthog","4.integrate\u002Fadapters\u002Fcloud\u002F02.posthog","i-simple-icons-posthog",{"title":161,"path":162,"stem":163,"icon":164},"Sentry","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fsentry","4.integrate\u002Fadapters\u002Fcloud\u002F03.sentry","i-simple-icons-sentry",{"title":166,"path":167,"stem":168,"icon":169},"Better Stack","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fbetter-stack","4.integrate\u002Fadapters\u002Fcloud\u002F04.better-stack","i-simple-icons-betterstack",{"title":171,"path":172,"stem":173,"icon":174},"Datadog","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fdatadog","4.integrate\u002Fadapters\u002Fcloud\u002F05.datadog","i-simple-icons-datadog",{"title":176,"path":177,"stem":178,"children":179,"page":29},"Cloud or Self-Hosted","\u002Fintegrate\u002Fadapters\u002Fhybrid","4.integrate\u002Fadapters\u002Fhybrid",[180,185,190,195],{"title":181,"path":182,"stem":183,"icon":184},"Grafana Loki","\u002Fintegrate\u002Fadapters\u002Fhybrid\u002Floki","4.integrate\u002Fadapters\u002Fhybrid\u002F01.loki","i-simple-icons-grafana",{"title":186,"path":187,"stem":188,"icon":189},"ClickHouse","\u002Fintegrate\u002Fadapters\u002Fhybrid\u002Fclickhouse","4.integrate\u002Fadapters\u002Fhybrid\u002F02.clickhouse","i-simple-icons-clickhouse",{"title":191,"path":192,"stem":193,"icon":194},"OTLP","\u002Fintegrate\u002Fadapters\u002Fhybrid\u002Fotlp","4.integrate\u002Fadapters\u002Fhybrid\u002F03.otlp","i-simple-icons-opentelemetry",{"title":196,"path":197,"stem":198,"icon":199},"HyperDX","\u002Fintegrate\u002Fadapters\u002Fhybrid\u002Fhyperdx","4.integrate\u002Fadapters\u002Fhybrid\u002F04.hyperdx","i-custom-hyperdx",{"title":201,"path":202,"stem":203,"children":204,"page":29},"Self-Hosted","\u002Fintegrate\u002Fadapters\u002Fself-hosted","4.integrate\u002Fadapters\u002Fself-hosted",[205,210,215],{"title":206,"path":207,"stem":208,"icon":209},"File System","\u002Fintegrate\u002Fadapters\u002Fself-hosted\u002Ffs","4.integrate\u002Fadapters\u002Fself-hosted\u002F01.fs","i-lucide-hard-drive",{"title":211,"path":212,"stem":213,"icon":214},"NuxtHub","\u002Fintegrate\u002Fadapters\u002Fself-hosted\u002Fnuxthub","4.integrate\u002Fadapters\u002Fself-hosted\u002F02.nuxthub","i-simple-icons-nuxt",{"title":216,"path":217,"stem":218,"icon":219},"Memory","\u002Fintegrate\u002Fadapters\u002Fself-hosted\u002Fmemory","4.integrate\u002Fadapters\u002Fself-hosted\u002F03.memory","i-lucide-cpu",{"title":221,"path":222,"stem":223,"children":224,"page":29},"Frameworks","\u002Fintegrate\u002Fframeworks","4.integrate\u002Fframeworks",[225,229,234,239,244,249,254,259,264,269,274,279,284,289,293,298,303],{"title":36,"path":226,"stem":227,"icon":228},"\u002Fintegrate\u002Fframeworks\u002Foverview","4.integrate\u002Fframeworks\u002F00.overview","i-lucide-layout-grid",{"title":230,"path":231,"stem":232,"icon":233},"Nuxt","\u002Fintegrate\u002Fframeworks\u002Fnuxt","4.integrate\u002Fframeworks\u002F01.nuxt","i-simple-icons-nuxtdotjs",{"title":235,"path":236,"stem":237,"icon":238},"Next.js","\u002Fintegrate\u002Fframeworks\u002Fnextjs","4.integrate\u002Fframeworks\u002F02.nextjs","i-simple-icons-nextdotjs",{"title":240,"path":241,"stem":242,"icon":243},"SvelteKit","\u002Fintegrate\u002Fframeworks\u002Fsveltekit","4.integrate\u002Fframeworks\u002F03.sveltekit","i-simple-icons-svelte",{"title":245,"path":246,"stem":247,"icon":248},"Nitro","\u002Fintegrate\u002Fframeworks\u002Fnitro","4.integrate\u002Fframeworks\u002F04.nitro","i-custom-nitro",{"title":250,"path":251,"stem":252,"icon":253},"TanStack Start","\u002Fintegrate\u002Fframeworks\u002Ftanstack-start","4.integrate\u002Fframeworks\u002F05.tanstack-start","i-custom-tanstack",{"title":255,"path":256,"stem":257,"icon":258},"NestJS","\u002Fintegrate\u002Fframeworks\u002Fnestjs","4.integrate\u002Fframeworks\u002F06.nestjs","i-simple-icons-nestjs",{"title":260,"path":261,"stem":262,"icon":263},"Express","\u002Fintegrate\u002Fframeworks\u002Fexpress","4.integrate\u002Fframeworks\u002F07.express","i-simple-icons-express",{"title":265,"path":266,"stem":267,"icon":268},"Hono","\u002Fintegrate\u002Fframeworks\u002Fhono","4.integrate\u002Fframeworks\u002F08.hono","i-simple-icons-hono",{"title":270,"path":271,"stem":272,"icon":273},"Fastify","\u002Fintegrate\u002Fframeworks\u002Ffastify","4.integrate\u002Fframeworks\u002F09.fastify","i-simple-icons-fastify",{"title":275,"path":276,"stem":277,"icon":278},"Elysia","\u002Fintegrate\u002Fframeworks\u002Felysia","4.integrate\u002Fframeworks\u002F10.elysia","i-custom-elysia",{"title":280,"path":281,"stem":282,"icon":283},"React Router","\u002Fintegrate\u002Fframeworks\u002Freact-router","4.integrate\u002Fframeworks\u002F11.react-router","i-custom-reactrouter",{"title":285,"path":286,"stem":287,"icon":288},"Cloudflare Workers","\u002Fintegrate\u002Fframeworks\u002Fcloudflare-workers","4.integrate\u002Fframeworks\u002F12.cloudflare-workers","i-simple-icons-cloudflare",{"title":290,"path":291,"stem":292,"icon":74},"Standalone","\u002Fintegrate\u002Fframeworks\u002Fstandalone","4.integrate\u002Fframeworks\u002F13.standalone",{"title":294,"path":295,"stem":296,"icon":297},"Astro","\u002Fintegrate\u002Fframeworks\u002Fastro","4.integrate\u002Fframeworks\u002F14.astro","i-simple-icons-astro",{"title":299,"path":300,"stem":301,"icon":302},"oRPC","\u002Fintegrate\u002Fframeworks\u002Forpc","4.integrate\u002Fframeworks\u002F15.orpc","i-lucide-network",{"title":304,"path":305,"stem":306,"icon":307},"AWS Lambda","\u002Fintegrate\u002Fframeworks\u002Faws-lambda","4.integrate\u002Fframeworks\u002F16.aws-lambda","i-custom-lambda",{"title":309,"path":310,"stem":311,"children":312,"page":29},"Use Cases","\u002Fuse-cases","5.use-cases",[313,316,321,350,377,409,430,435],{"title":36,"path":314,"stem":315,"icon":102},"\u002Fuse-cases\u002Foverview","5.use-cases\u002F0.overview",{"title":317,"path":318,"stem":319,"icon":320},"Client Logging","\u002Fuse-cases\u002Fclient-logging","5.use-cases\u002F1.client-logging","i-lucide-monitor",{"title":322,"icon":323,"path":324,"stem":325,"children":326,"page":29},"AI SDK","i-simple-icons-vercel","\u002Fuse-cases\u002Fai-sdk","5.use-cases\u002F2.ai-sdk",[327,330,335,340,345],{"title":36,"path":328,"stem":329,"icon":39},"\u002Fuse-cases\u002Fai-sdk\u002Foverview","5.use-cases\u002F2.ai-sdk\u002F01.overview",{"title":331,"path":332,"stem":333,"icon":334},"Usage","\u002Fuse-cases\u002Fai-sdk\u002Fusage","5.use-cases\u002F2.ai-sdk\u002F02.usage","i-lucide-code",{"title":336,"path":337,"stem":338,"icon":339},"Options","\u002Fuse-cases\u002Fai-sdk\u002Foptions","5.use-cases\u002F2.ai-sdk\u002F03.options","i-lucide-sliders",{"title":341,"path":342,"stem":343,"icon":344},"Metadata","\u002Fuse-cases\u002Fai-sdk\u002Fmetadata","5.use-cases\u002F2.ai-sdk\u002F04.metadata","i-lucide-database",{"title":346,"path":347,"stem":348,"icon":349},"Telemetry","\u002Fuse-cases\u002Fai-sdk\u002Ftelemetry","5.use-cases\u002F2.ai-sdk\u002F05.telemetry","i-lucide-activity",{"title":351,"icon":352,"path":353,"stem":354,"children":355,"page":29},"Better Auth","i-simple-icons-betterauth","\u002Fuse-cases\u002Fbetter-auth","5.use-cases\u002F3.better-auth",[356,359,364,369,373],{"title":36,"path":357,"stem":358,"icon":39},"\u002Fuse-cases\u002Fbetter-auth\u002Foverview","5.use-cases\u002F3.better-auth\u002F01.overview",{"title":360,"path":361,"stem":362,"icon":363},"Identify User","\u002Fuse-cases\u002Fbetter-auth\u002Fidentify-user","5.use-cases\u002F3.better-auth\u002F02.identify-user","i-lucide-user-check",{"title":365,"path":366,"stem":367,"icon":368},"Middleware","\u002Fuse-cases\u002Fbetter-auth\u002Fmiddleware","5.use-cases\u002F3.better-auth\u002F03.middleware","i-lucide-shield",{"title":370,"path":371,"stem":372,"icon":320},"Client Sync","\u002Fuse-cases\u002Fbetter-auth\u002Fclient-sync","5.use-cases\u002F3.better-auth\u002F04.client-sync",{"title":374,"path":375,"stem":376,"icon":107},"Performance","\u002Fuse-cases\u002Fbetter-auth\u002Fperformance","5.use-cases\u002F3.better-auth\u002F05.performance",{"title":378,"icon":379,"path":380,"stem":381,"children":382,"page":29},"Audit Logs","i-lucide-shield-check","\u002Fuse-cases\u002Faudit","5.use-cases\u002F4.audit",[383,386,391,396,401,405],{"title":36,"path":384,"stem":385,"icon":39},"\u002Fuse-cases\u002Faudit\u002Foverview","5.use-cases\u002F4.audit\u002F01.overview",{"title":387,"path":388,"stem":389,"icon":390},"Schema","\u002Fuse-cases\u002Faudit\u002Fschema","5.use-cases\u002F4.audit\u002F02.schema","i-lucide-file-text",{"title":392,"path":393,"stem":394,"icon":395},"Recording","\u002Fuse-cases\u002Faudit\u002Frecording","5.use-cases\u002F4.audit\u002F03.recording","i-lucide-pen-line",{"title":397,"path":398,"stem":399,"icon":400},"Drains","\u002Fuse-cases\u002Faudit\u002Fpipeline","5.use-cases\u002F4.audit\u002F04.pipeline","i-lucide-link",{"title":402,"path":403,"stem":404,"icon":379},"Compliance","\u002Fuse-cases\u002Faudit\u002Fcompliance","5.use-cases\u002F4.audit\u002F05.compliance",{"title":406,"path":407,"stem":408,"icon":79},"Recipes","\u002Fuse-cases\u002Faudit\u002Frecipes","5.use-cases\u002F4.audit\u002F06.recipes",{"title":346,"icon":107,"path":410,"stem":411,"children":412,"page":29},"\u002Fuse-cases\u002Ftelemetry","5.use-cases\u002F4.telemetry",[413,416,421,426],{"title":36,"path":414,"stem":415,"icon":39},"\u002Fuse-cases\u002Ftelemetry\u002Foverview","5.use-cases\u002F4.telemetry\u002F01.overview",{"title":417,"path":418,"stem":419,"icon":420},"Setup","\u002Fuse-cases\u002Ftelemetry\u002Fsetup","5.use-cases\u002F4.telemetry\u002F02.setup","i-lucide-wrench",{"title":422,"path":423,"stem":424,"icon":425},"Ingest","\u002Fuse-cases\u002Ftelemetry\u002Fingest","5.use-cases\u002F4.telemetry\u002F03.ingest","i-lucide-server",{"title":427,"path":428,"stem":429,"icon":79},"Reference","\u002Fuse-cases\u002Ftelemetry\u002Freference","5.use-cases\u002F4.telemetry\u002F04.reference",{"title":431,"path":432,"stem":433,"icon":434},"Enrichers","\u002Fuse-cases\u002Fenrichers","5.use-cases\u002F5.enrichers","i-lucide-sparkles",{"title":436,"path":437,"stem":438,"icon":439},"eve","\u002Fuse-cases\u002Feve","5.use-cases\u002F5.eve","i-custom-eve",{"title":441,"path":442,"stem":443,"children":444,"page":29},"Extend","\u002Fextend","6.extend",[445,449,454,459,463,468,472,476,480,484,489,494],{"title":36,"path":446,"stem":447,"icon":448},"\u002Fextend\u002Foverview","6.extend\u002F0.overview","i-lucide-blocks",{"title":450,"path":451,"stem":452,"icon":453},"Stream","\u002Fextend\u002Fstream","6.extend\u002F1.stream","i-lucide-radio-tower",{"title":455,"path":456,"stem":457,"icon":458},"Custom framework","\u002Fextend\u002Fcustom-framework","6.extend\u002F10.custom-framework","i-lucide-puzzle",{"title":460,"path":461,"stem":462,"icon":453},"Diagnostics channel","\u002Fextend\u002Fdiagnostics-channel","6.extend\u002F11.diagnostics-channel",{"title":464,"path":465,"stem":466,"icon":467},"FS reader","\u002Fextend\u002Ffs-reader","6.extend\u002F2.fs-reader","i-lucide-folder-search",{"title":406,"path":469,"stem":470,"icon":471},"\u002Fextend\u002Fconsumer-recipes","6.extend\u002F3.consumer-recipes","i-lucide-chef-hat",{"title":473,"path":474,"stem":475,"icon":448},"Plugins","\u002Fextend\u002Fplugins","6.extend\u002F4.plugins",{"title":477,"path":478,"stem":479,"icon":434},"Custom enrichers","\u002Fextend\u002Fcustom-enrichers","6.extend\u002F5.custom-enrichers",{"title":481,"path":482,"stem":483,"icon":64},"Tail sampling","\u002Fextend\u002Ftail-sampling","6.extend\u002F6.tail-sampling",{"title":485,"path":486,"stem":487,"icon":488},"Identity headers","\u002Fextend\u002Fidentity-headers","6.extend\u002F7.identity-headers","i-lucide-fingerprint",{"title":490,"path":491,"stem":492,"icon":493},"Custom drains","\u002Fextend\u002Fcustom-drains","6.extend\u002F8.custom-drains","i-lucide-share-2",{"title":495,"path":496,"stem":497,"icon":498},"Drain pipeline","\u002Fextend\u002Fdrain-pipeline","6.extend\u002F9.drain-pipeline","i-lucide-workflow",{"title":427,"path":500,"stem":501,"children":502,"page":29},"\u002Freference","7.reference",[503,508,511,516,520,525],{"title":504,"path":505,"stem":506,"icon":507},"Configuration","\u002Freference\u002Fconfiguration","7.reference\u002F1.configuration","i-lucide-settings",{"title":374,"path":509,"stem":510,"icon":107},"\u002Freference\u002Fperformance","7.reference\u002F2.performance",{"title":512,"path":513,"stem":514,"icon":515},"Vite Plugin","\u002Freference\u002Fvite-plugin","7.reference\u002F3.vite-plugin","i-custom-vite",{"title":517,"path":518,"stem":519,"icon":379},"Best Practices","\u002Freference\u002Fbest-practices","7.reference\u002F4.best-practices",{"title":521,"path":522,"stem":523,"icon":524},"vs Other Loggers","\u002Freference\u002Fvs-other-loggers","7.reference\u002F5.vs-other-loggers","i-lucide-scale",{"title":526,"path":527,"stem":528,"icon":434},"Agent Skills","\u002Freference\u002Fagent-skills","7.reference\u002F6.agent-skills",{"id":530,"title":531,"body":532,"description":2626,"extension":2627,"links":2628,"meta":2634,"navigation":2635,"path":418,"seo":2636,"stem":419,"__hash__":2637},"docs\u002F5.use-cases\u002F4.telemetry\u002F02.setup.md","Telemetry Setup",{"type":533,"value":534,"toc":2617},"minimark",[535,540,544,633,687,706,710,728,1195,1200,1209,1317,1328,1332,1339,1905,1919,1971,1978,2173,2177,2187,2382,2412,2568,2572,2610,2613],[536,537,539],"h2",{"id":538},"configure-delivery","Configure delivery",[541,542,543],"p",{},"Point the CLI at your ingestion URL when you ship it — baked into the binary, overridable per environment:",[545,546,552],"pre",{"className":547,"code":548,"filename":549,"language":550,"meta":551,"style":551},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","withTelemetry(command, {\n  name: TOOL,\n  version: VERSION,\n  endpoint: 'https:\u002F\u002Ftelemetry.my-tool.dev\u002Fapi\u002Ftelemetry\u002Fingest',\n})\n","src\u002Findex.ts","ts","",[553,554,555,575,591,604,624],"code",{"__ignoreMap":551},[556,557,560,564,568,572],"span",{"class":558,"line":559},"line",1,[556,561,563],{"class":562},"s2Zo4","withTelemetry",[556,565,567],{"class":566},"sTEyZ","(command",[556,569,571],{"class":570},"sMK4o",",",[556,573,574],{"class":570}," {\n",[556,576,578,582,585,588],{"class":558,"line":577},2,[556,579,581],{"class":580},"swJcz","  name",[556,583,584],{"class":570},":",[556,586,587],{"class":566}," TOOL",[556,589,590],{"class":570},",\n",[556,592,594,597,599,602],{"class":558,"line":593},3,[556,595,596],{"class":580},"  version",[556,598,584],{"class":570},[556,600,601],{"class":566}," VERSION",[556,603,590],{"class":570},[556,605,607,610,612,615,619,622],{"class":558,"line":606},4,[556,608,609],{"class":580},"  endpoint",[556,611,584],{"class":570},[556,613,614],{"class":570}," '",[556,616,618],{"class":617},"sfazB","https:\u002F\u002Ftelemetry.my-tool.dev\u002Fapi\u002Ftelemetry\u002Fingest",[556,620,621],{"class":570},"'",[556,623,590],{"class":570},[556,625,627,630],{"class":558,"line":626},5,[556,628,629],{"class":570},"}",[556,631,632],{"class":566},")\n",[634,635,636,649],"table",{},[637,638,639],"thead",{},[640,641,642,646],"tr",{},[643,644,645],"th",{},"Override",[643,647,648],{},"Effect",[650,651,652,663,677],"tbody",{},[640,653,654,660],{},[655,656,657],"td",{},[553,658,659],{},"EVLOG_TELEMETRY_ENDPOINT",[655,661,662],{},"Replaces the baked-in URL (staging, self-hosted)",[640,664,665,674],{},[655,666,667,670,671],{},[553,668,669],{},"EVLOG_TELEMETRY=0"," \u002F ",[553,672,673],{},"DO_NOT_TRACK=1",[655,675,676],{},"No recording, no send",[640,678,679,684],{},[655,680,681],{},[553,682,683],{},"EVLOG_TELEMETRY_DEBUG=1",[655,685,686],{},"Print payloads to stderr without sending",[541,688,689,690,693,694,697,698,701,702,705],{},"The built-in HTTP drain POSTs ",[553,691,692],{},"Content-Type: application\u002Fjson"," with body ",[553,695,696],{},"{ events: RunEvent[] }"," and a 400ms timeout. On success (",[553,699,700],{},"res.ok","), delivered keys are removed from the outbox. ",[553,703,704],{},"flush()"," is capped at 500ms and never throws.",[536,707,709],{"id":708},"setup-with-citty","Setup with citty",[541,711,712,713,716,717,719,720,723,724,727],{},"Wrap your root command in ",[553,714,715],{},"withTelemetry()"," — typically in ",[553,718,549],{},", the file that calls ",[553,721,722],{},"runMain()",". Subcommands can live in the same file or in ",[553,725,726],{},"src\u002Fcommands\u002F*.ts","; only the entrypoint needs the wrapper.",[545,729,731],{"className":547,"code":730,"filename":549,"language":550,"meta":551,"style":551},"import { defineCommand, runMain } from 'citty'\nimport { withTelemetry, defineTelemetryCommands } from '@evlog\u002Ftelemetry'\nimport { doctorCommand } from '.\u002Fcommands\u002Fdoctor'\nimport { syncCommand } from '.\u002Fcommands\u002Fsync'\n\nconst TOOL = 'my-tool'\nconst VERSION = '1.0.0'\n\nexport const main = withTelemetry(\n  defineCommand({\n    meta: { name: 'my-tool', description: '…', version: VERSION },\n    subCommands: {\n      doctor: doctorCommand,\n      sync: syncCommand,\n      telemetry: defineTelemetryCommands({ name: TOOL }),\n    },\n  }),\n  {\n    name: TOOL,\n    version: VERSION,\n    endpoint: 'https:\u002F\u002Ftelemetry.my-tool.dev\u002Fapi\u002Ftelemetry\u002Fingest',\n    collect: {\n      flags: { format: ['json', 'csv'] },\n      fields: { framework: ['nuxt', 'next'] },\n    },\n  },\n)\n\nrunMain(main)\n",[553,732,733,764,789,809,829,835,855,872,877,896,908,955,965,977,989,1017,1023,1033,1039,1051,1063,1079,1089,1128,1165,1170,1176,1181,1186],{"__ignoreMap":551},[556,734,735,739,742,745,747,750,753,756,758,761],{"class":558,"line":559},[556,736,738],{"class":737},"s7zQu","import",[556,740,741],{"class":570}," {",[556,743,744],{"class":566}," defineCommand",[556,746,571],{"class":570},[556,748,749],{"class":566}," runMain",[556,751,752],{"class":570}," }",[556,754,755],{"class":737}," from",[556,757,614],{"class":570},[556,759,760],{"class":617},"citty",[556,762,763],{"class":570},"'\n",[556,765,766,768,770,773,775,778,780,782,784,787],{"class":558,"line":577},[556,767,738],{"class":737},[556,769,741],{"class":570},[556,771,772],{"class":566}," withTelemetry",[556,774,571],{"class":570},[556,776,777],{"class":566}," defineTelemetryCommands",[556,779,752],{"class":570},[556,781,755],{"class":737},[556,783,614],{"class":570},[556,785,786],{"class":617},"@evlog\u002Ftelemetry",[556,788,763],{"class":570},[556,790,791,793,795,798,800,802,804,807],{"class":558,"line":593},[556,792,738],{"class":737},[556,794,741],{"class":570},[556,796,797],{"class":566}," doctorCommand",[556,799,752],{"class":570},[556,801,755],{"class":737},[556,803,614],{"class":570},[556,805,806],{"class":617},".\u002Fcommands\u002Fdoctor",[556,808,763],{"class":570},[556,810,811,813,815,818,820,822,824,827],{"class":558,"line":606},[556,812,738],{"class":737},[556,814,741],{"class":570},[556,816,817],{"class":566}," syncCommand",[556,819,752],{"class":570},[556,821,755],{"class":737},[556,823,614],{"class":570},[556,825,826],{"class":617},".\u002Fcommands\u002Fsync",[556,828,763],{"class":570},[556,830,831],{"class":558,"line":626},[556,832,834],{"emptyLinePlaceholder":833},true,"\n",[556,836,838,842,845,848,850,853],{"class":558,"line":837},6,[556,839,841],{"class":840},"spNyl","const",[556,843,844],{"class":566}," TOOL ",[556,846,847],{"class":570},"=",[556,849,614],{"class":570},[556,851,852],{"class":617},"my-tool",[556,854,763],{"class":570},[556,856,858,860,863,865,867,870],{"class":558,"line":857},7,[556,859,841],{"class":840},[556,861,862],{"class":566}," VERSION ",[556,864,847],{"class":570},[556,866,614],{"class":570},[556,868,869],{"class":617},"1.0.0",[556,871,763],{"class":570},[556,873,875],{"class":558,"line":874},8,[556,876,834],{"emptyLinePlaceholder":833},[556,878,880,883,886,889,891,893],{"class":558,"line":879},9,[556,881,882],{"class":737},"export",[556,884,885],{"class":840}," const",[556,887,888],{"class":566}," main ",[556,890,847],{"class":570},[556,892,772],{"class":562},[556,894,895],{"class":566},"(\n",[556,897,899,902,905],{"class":558,"line":898},10,[556,900,901],{"class":562},"  defineCommand",[556,903,904],{"class":566},"(",[556,906,907],{"class":570},"{\n",[556,909,911,914,916,918,921,923,925,927,929,931,934,936,938,941,943,945,948,950,952],{"class":558,"line":910},11,[556,912,913],{"class":580},"    meta",[556,915,584],{"class":570},[556,917,741],{"class":570},[556,919,920],{"class":580}," name",[556,922,584],{"class":570},[556,924,614],{"class":570},[556,926,852],{"class":617},[556,928,621],{"class":570},[556,930,571],{"class":570},[556,932,933],{"class":580}," description",[556,935,584],{"class":570},[556,937,614],{"class":570},[556,939,940],{"class":617},"…",[556,942,621],{"class":570},[556,944,571],{"class":570},[556,946,947],{"class":580}," version",[556,949,584],{"class":570},[556,951,862],{"class":566},[556,953,954],{"class":570},"},\n",[556,956,958,961,963],{"class":558,"line":957},12,[556,959,960],{"class":580},"    subCommands",[556,962,584],{"class":570},[556,964,574],{"class":570},[556,966,968,971,973,975],{"class":558,"line":967},13,[556,969,970],{"class":580},"      doctor",[556,972,584],{"class":570},[556,974,797],{"class":566},[556,976,590],{"class":570},[556,978,980,983,985,987],{"class":558,"line":979},14,[556,981,982],{"class":580},"      sync",[556,984,584],{"class":570},[556,986,817],{"class":566},[556,988,590],{"class":570},[556,990,992,995,997,999,1001,1004,1006,1008,1010,1012,1015],{"class":558,"line":991},15,[556,993,994],{"class":580},"      telemetry",[556,996,584],{"class":570},[556,998,777],{"class":562},[556,1000,904],{"class":566},[556,1002,1003],{"class":570},"{",[556,1005,920],{"class":580},[556,1007,584],{"class":570},[556,1009,844],{"class":566},[556,1011,629],{"class":570},[556,1013,1014],{"class":566},")",[556,1016,590],{"class":570},[556,1018,1020],{"class":558,"line":1019},16,[556,1021,1022],{"class":570},"    },\n",[556,1024,1026,1029,1031],{"class":558,"line":1025},17,[556,1027,1028],{"class":570},"  }",[556,1030,1014],{"class":566},[556,1032,590],{"class":570},[556,1034,1036],{"class":558,"line":1035},18,[556,1037,1038],{"class":570},"  {\n",[556,1040,1042,1045,1047,1049],{"class":558,"line":1041},19,[556,1043,1044],{"class":580},"    name",[556,1046,584],{"class":570},[556,1048,587],{"class":566},[556,1050,590],{"class":570},[556,1052,1054,1057,1059,1061],{"class":558,"line":1053},20,[556,1055,1056],{"class":580},"    version",[556,1058,584],{"class":570},[556,1060,601],{"class":566},[556,1062,590],{"class":570},[556,1064,1066,1069,1071,1073,1075,1077],{"class":558,"line":1065},21,[556,1067,1068],{"class":580},"    endpoint",[556,1070,584],{"class":570},[556,1072,614],{"class":570},[556,1074,618],{"class":617},[556,1076,621],{"class":570},[556,1078,590],{"class":570},[556,1080,1082,1085,1087],{"class":558,"line":1081},22,[556,1083,1084],{"class":580},"    collect",[556,1086,584],{"class":570},[556,1088,574],{"class":570},[556,1090,1092,1095,1097,1099,1102,1104,1107,1109,1112,1114,1116,1118,1121,1123,1126],{"class":558,"line":1091},23,[556,1093,1094],{"class":580},"      flags",[556,1096,584],{"class":570},[556,1098,741],{"class":570},[556,1100,1101],{"class":580}," format",[556,1103,584],{"class":570},[556,1105,1106],{"class":566}," [",[556,1108,621],{"class":570},[556,1110,1111],{"class":617},"json",[556,1113,621],{"class":570},[556,1115,571],{"class":570},[556,1117,614],{"class":570},[556,1119,1120],{"class":617},"csv",[556,1122,621],{"class":570},[556,1124,1125],{"class":566},"] ",[556,1127,954],{"class":570},[556,1129,1131,1134,1136,1138,1141,1143,1145,1147,1150,1152,1154,1156,1159,1161,1163],{"class":558,"line":1130},24,[556,1132,1133],{"class":580},"      fields",[556,1135,584],{"class":570},[556,1137,741],{"class":570},[556,1139,1140],{"class":580}," framework",[556,1142,584],{"class":570},[556,1144,1106],{"class":566},[556,1146,621],{"class":570},[556,1148,1149],{"class":617},"nuxt",[556,1151,621],{"class":570},[556,1153,571],{"class":570},[556,1155,614],{"class":570},[556,1157,1158],{"class":617},"next",[556,1160,621],{"class":570},[556,1162,1125],{"class":566},[556,1164,954],{"class":570},[556,1166,1168],{"class":558,"line":1167},25,[556,1169,1022],{"class":570},[556,1171,1173],{"class":558,"line":1172},26,[556,1174,1175],{"class":570},"  },\n",[556,1177,1179],{"class":558,"line":1178},27,[556,1180,632],{"class":566},[556,1182,1184],{"class":558,"line":1183},28,[556,1185,834],{"emptyLinePlaceholder":833},[556,1187,1189,1192],{"class":558,"line":1188},29,[556,1190,1191],{"class":562},"runMain",[556,1193,1194],{"class":566},"(main)\n",[1196,1197,1199],"h3",{"id":1198},"what-gets-recorded-automatically","What gets recorded automatically",[541,1201,1202,1204,1205,1208],{},[553,1203,563],{}," walks your citty tree. Each ",[553,1206,1207],{},"run"," handler produces one event — no per-command telemetry boilerplate.",[634,1210,1211,1229],{},[637,1212,1213],{},[640,1214,1215,1218,1223],{},[643,1216,1217],{},"Invocation",[643,1219,1220],{},[553,1221,1222],{},"event.command",[643,1224,1225,1226],{},"Notes on ",[553,1227,1228],{},"flags",[650,1230,1231,1248,1264,1282,1302],{},[640,1232,1233,1238,1242],{},[655,1234,1235],{},[553,1236,1237],{},"my-tool doctor",[655,1239,1240],{},[553,1241,114],{},[655,1243,1244,1247],{},[553,1245,1246],{},"{}"," — nothing was passed, and defaults are not choices",[640,1249,1250,1255,1259],{},[655,1251,1252],{},[553,1253,1254],{},"my-tool doctor --json",[655,1256,1257],{},[553,1258,114],{},[655,1260,1261],{},[553,1262,1263],{},"{ json: true }",[640,1265,1266,1271,1276],{},[655,1267,1268],{},[553,1269,1270],{},"my-tool sync --dry-run --output .\u002Fout",[655,1272,1273],{},[553,1274,1275],{},"sync",[655,1277,1278,1281],{},[553,1279,1280],{},"{ dryRun: true, output: \"\u003Cset>\" }"," — the path itself is never sent",[640,1283,1284,1289,1293],{},[655,1285,1286],{},[553,1287,1288],{},"my-tool sync --format json",[655,1290,1291],{},[553,1292,1275],{},[655,1294,1295,1298,1299],{},[553,1296,1297],{},"{ format: \"json\" }"," only if allowlisted in ",[553,1300,1301],{},"collect.flags",[640,1303,1304,1309,1314],{},[655,1305,1306],{},[553,1307,1308],{},"my-tool telemetry status",[655,1310,1311],{},[553,1312,1313],{},"telemetry status",[655,1315,1316],{},"nested subcommands join with a space",[541,1318,1319,1320,1323,1324,1327],{},"The root ",[553,1321,1322],{},"meta.name"," is not prefixed when the root only delegates to ",[553,1325,1326],{},"subCommands",".",[1196,1329,1331],{"id":1330},"enriching-a-run","Enriching a run",[541,1333,1334,1335,1338],{},"Call ",[553,1336,1337],{},"telemetry.set()"," anywhere inside a command handler — or in helpers that run on the same async stack (the run context is preserved via AsyncLocalStorage).",[1340,1341,1342],"code-collapse",{},[545,1343,1346],{"className":547,"code":1344,"filename":1345,"language":550,"meta":551,"style":551},"import { telemetry } from '@evlog\u002Ftelemetry'\nimport { existsSync } from 'node:fs'\nimport { resolveConfigPath } from '..\u002Flib\u002Fconfig'\n\nasync function runHealthChecks() {\n  let checksFailed = 0\n  let checksWarn = 0\n\n  const configPath = resolveConfigPath()\n  if (!existsSync(configPath)) {\n    checksFailed++\n  }\n\n  try {\n    await fetch('https:\u002F\u002Fregistry.npmjs.org\u002Fmy-tool')\n  } catch {\n    checksWarn++\n  }\n\n  \u002F\u002F Counters land in event.custom on the wide event for this run\n  telemetry.set({ checksFailed, checksWarn })\n  return checksFailed === 0\n}\n\nexport const doctorCommand = {\n  meta: { name: 'doctor', description: 'Check environment' },\n  args: {\n    json: { type: 'boolean', alias: 'j' },\n  },\n  async run({ args }: { args: { json?: boolean } }) {\n    const ok = await runHealthChecks()\n    if (!ok) {\n      throw Object.assign(new Error('Health checks failed'), { code: 'DOCTOR_FAILED' })\n    }\n    if (!args.json) process.stdout.write('ok\\n')\n  },\n}\n","src\u002Fcommands\u002Fdoctor.ts",[553,1347,1348,1367,1387,1407,1411,1427,1442,1453,1457,1472,1496,1504,1509,1513,1520,1539,1548,1555,1559,1563,1569,1593,1605,1610,1614,1627,1662,1671,1708,1712,1756,1774,1792,1845,1851,1895,1900],{"__ignoreMap":551},[556,1349,1350,1352,1354,1357,1359,1361,1363,1365],{"class":558,"line":559},[556,1351,738],{"class":737},[556,1353,741],{"class":570},[556,1355,1356],{"class":566}," telemetry",[556,1358,752],{"class":570},[556,1360,755],{"class":737},[556,1362,614],{"class":570},[556,1364,786],{"class":617},[556,1366,763],{"class":570},[556,1368,1369,1371,1373,1376,1378,1380,1382,1385],{"class":558,"line":577},[556,1370,738],{"class":737},[556,1372,741],{"class":570},[556,1374,1375],{"class":566}," existsSync",[556,1377,752],{"class":570},[556,1379,755],{"class":737},[556,1381,614],{"class":570},[556,1383,1384],{"class":617},"node:fs",[556,1386,763],{"class":570},[556,1388,1389,1391,1393,1396,1398,1400,1402,1405],{"class":558,"line":593},[556,1390,738],{"class":737},[556,1392,741],{"class":570},[556,1394,1395],{"class":566}," resolveConfigPath",[556,1397,752],{"class":570},[556,1399,755],{"class":737},[556,1401,614],{"class":570},[556,1403,1404],{"class":617},"..\u002Flib\u002Fconfig",[556,1406,763],{"class":570},[556,1408,1409],{"class":558,"line":606},[556,1410,834],{"emptyLinePlaceholder":833},[556,1412,1413,1416,1419,1422,1425],{"class":558,"line":626},[556,1414,1415],{"class":840},"async",[556,1417,1418],{"class":840}," function",[556,1420,1421],{"class":562}," runHealthChecks",[556,1423,1424],{"class":570},"()",[556,1426,574],{"class":570},[556,1428,1429,1432,1435,1438],{"class":558,"line":837},[556,1430,1431],{"class":840},"  let",[556,1433,1434],{"class":566}," checksFailed",[556,1436,1437],{"class":570}," =",[556,1439,1441],{"class":1440},"sbssI"," 0\n",[556,1443,1444,1446,1449,1451],{"class":558,"line":857},[556,1445,1431],{"class":840},[556,1447,1448],{"class":566}," checksWarn",[556,1450,1437],{"class":570},[556,1452,1441],{"class":1440},[556,1454,1455],{"class":558,"line":874},[556,1456,834],{"emptyLinePlaceholder":833},[556,1458,1459,1462,1465,1467,1469],{"class":558,"line":879},[556,1460,1461],{"class":840},"  const",[556,1463,1464],{"class":566}," configPath",[556,1466,1437],{"class":570},[556,1468,1395],{"class":562},[556,1470,1471],{"class":580},"()\n",[556,1473,1474,1477,1480,1483,1486,1488,1491,1494],{"class":558,"line":898},[556,1475,1476],{"class":737},"  if",[556,1478,1479],{"class":580}," (",[556,1481,1482],{"class":570},"!",[556,1484,1485],{"class":562},"existsSync",[556,1487,904],{"class":580},[556,1489,1490],{"class":566},"configPath",[556,1492,1493],{"class":580},")) ",[556,1495,907],{"class":570},[556,1497,1498,1501],{"class":558,"line":910},[556,1499,1500],{"class":566},"    checksFailed",[556,1502,1503],{"class":570},"++\n",[556,1505,1506],{"class":558,"line":957},[556,1507,1508],{"class":570},"  }\n",[556,1510,1511],{"class":558,"line":967},[556,1512,834],{"emptyLinePlaceholder":833},[556,1514,1515,1518],{"class":558,"line":979},[556,1516,1517],{"class":737},"  try",[556,1519,574],{"class":570},[556,1521,1522,1525,1528,1530,1532,1535,1537],{"class":558,"line":991},[556,1523,1524],{"class":737},"    await",[556,1526,1527],{"class":562}," fetch",[556,1529,904],{"class":580},[556,1531,621],{"class":570},[556,1533,1534],{"class":617},"https:\u002F\u002Fregistry.npmjs.org\u002Fmy-tool",[556,1536,621],{"class":570},[556,1538,632],{"class":580},[556,1540,1541,1543,1546],{"class":558,"line":1019},[556,1542,1028],{"class":570},[556,1544,1545],{"class":737}," catch",[556,1547,574],{"class":570},[556,1549,1550,1553],{"class":558,"line":1025},[556,1551,1552],{"class":566},"    checksWarn",[556,1554,1503],{"class":570},[556,1556,1557],{"class":558,"line":1035},[556,1558,1508],{"class":570},[556,1560,1561],{"class":558,"line":1041},[556,1562,834],{"emptyLinePlaceholder":833},[556,1564,1565],{"class":558,"line":1053},[556,1566,1568],{"class":1567},"sHwdD","  \u002F\u002F Counters land in event.custom on the wide event for this run\n",[556,1570,1571,1574,1576,1579,1581,1583,1585,1587,1589,1591],{"class":558,"line":1065},[556,1572,1573],{"class":566},"  telemetry",[556,1575,1327],{"class":570},[556,1577,1578],{"class":562},"set",[556,1580,904],{"class":580},[556,1582,1003],{"class":570},[556,1584,1434],{"class":566},[556,1586,571],{"class":570},[556,1588,1448],{"class":566},[556,1590,752],{"class":570},[556,1592,632],{"class":580},[556,1594,1595,1598,1600,1603],{"class":558,"line":1081},[556,1596,1597],{"class":737},"  return",[556,1599,1434],{"class":566},[556,1601,1602],{"class":570}," ===",[556,1604,1441],{"class":1440},[556,1606,1607],{"class":558,"line":1091},[556,1608,1609],{"class":570},"}\n",[556,1611,1612],{"class":558,"line":1130},[556,1613,834],{"emptyLinePlaceholder":833},[556,1615,1616,1618,1620,1623,1625],{"class":558,"line":1167},[556,1617,882],{"class":737},[556,1619,885],{"class":840},[556,1621,1622],{"class":566}," doctorCommand ",[556,1624,847],{"class":570},[556,1626,574],{"class":570},[556,1628,1629,1632,1634,1636,1638,1640,1642,1644,1646,1648,1650,1652,1654,1657,1659],{"class":558,"line":1172},[556,1630,1631],{"class":580},"  meta",[556,1633,584],{"class":570},[556,1635,741],{"class":570},[556,1637,920],{"class":580},[556,1639,584],{"class":570},[556,1641,614],{"class":570},[556,1643,114],{"class":617},[556,1645,621],{"class":570},[556,1647,571],{"class":570},[556,1649,933],{"class":580},[556,1651,584],{"class":570},[556,1653,614],{"class":570},[556,1655,1656],{"class":617},"Check environment",[556,1658,621],{"class":570},[556,1660,1661],{"class":570}," },\n",[556,1663,1664,1667,1669],{"class":558,"line":1178},[556,1665,1666],{"class":580},"  args",[556,1668,584],{"class":570},[556,1670,574],{"class":570},[556,1672,1673,1676,1678,1680,1683,1685,1687,1690,1692,1694,1697,1699,1701,1704,1706],{"class":558,"line":1183},[556,1674,1675],{"class":580},"    json",[556,1677,584],{"class":570},[556,1679,741],{"class":570},[556,1681,1682],{"class":580}," type",[556,1684,584],{"class":570},[556,1686,614],{"class":570},[556,1688,1689],{"class":617},"boolean",[556,1691,621],{"class":570},[556,1693,571],{"class":570},[556,1695,1696],{"class":580}," alias",[556,1698,584],{"class":570},[556,1700,614],{"class":570},[556,1702,1703],{"class":617},"j",[556,1705,621],{"class":570},[556,1707,1661],{"class":570},[556,1709,1710],{"class":558,"line":1188},[556,1711,1175],{"class":570},[556,1713,1715,1718,1721,1724,1728,1731,1733,1735,1737,1739,1742,1745,1749,1751,1754],{"class":558,"line":1714},30,[556,1716,1717],{"class":840},"  async",[556,1719,1720],{"class":580}," run",[556,1722,1723],{"class":570},"({",[556,1725,1727],{"class":1726},"sHdIc"," args",[556,1729,1730],{"class":570}," }:",[556,1732,741],{"class":570},[556,1734,1727],{"class":580},[556,1736,584],{"class":570},[556,1738,741],{"class":570},[556,1740,1741],{"class":580}," json",[556,1743,1744],{"class":570},"?:",[556,1746,1748],{"class":1747},"sBMFI"," boolean",[556,1750,752],{"class":570},[556,1752,1753],{"class":570}," })",[556,1755,574],{"class":570},[556,1757,1759,1762,1765,1767,1770,1772],{"class":558,"line":1758},31,[556,1760,1761],{"class":840},"    const",[556,1763,1764],{"class":566}," ok",[556,1766,1437],{"class":570},[556,1768,1769],{"class":737}," await",[556,1771,1421],{"class":562},[556,1773,1471],{"class":580},[556,1775,1777,1780,1782,1784,1787,1790],{"class":558,"line":1776},32,[556,1778,1779],{"class":737},"    if",[556,1781,1479],{"class":580},[556,1783,1482],{"class":570},[556,1785,1786],{"class":566},"ok",[556,1788,1789],{"class":580},") ",[556,1791,907],{"class":570},[556,1793,1795,1798,1801,1803,1806,1808,1811,1814,1816,1818,1821,1823,1825,1827,1829,1832,1834,1836,1839,1841,1843],{"class":558,"line":1794},33,[556,1796,1797],{"class":737},"      throw",[556,1799,1800],{"class":566}," Object",[556,1802,1327],{"class":570},[556,1804,1805],{"class":562},"assign",[556,1807,904],{"class":580},[556,1809,1810],{"class":570},"new",[556,1812,1813],{"class":562}," Error",[556,1815,904],{"class":580},[556,1817,621],{"class":570},[556,1819,1820],{"class":617},"Health checks failed",[556,1822,621],{"class":570},[556,1824,1014],{"class":580},[556,1826,571],{"class":570},[556,1828,741],{"class":570},[556,1830,1831],{"class":580}," code",[556,1833,584],{"class":570},[556,1835,614],{"class":570},[556,1837,1838],{"class":617},"DOCTOR_FAILED",[556,1840,621],{"class":570},[556,1842,752],{"class":570},[556,1844,632],{"class":580},[556,1846,1848],{"class":558,"line":1847},34,[556,1849,1850],{"class":570},"    }\n",[556,1852,1854,1856,1858,1860,1863,1865,1867,1869,1872,1874,1877,1879,1882,1884,1886,1888,1891,1893],{"class":558,"line":1853},35,[556,1855,1779],{"class":737},[556,1857,1479],{"class":580},[556,1859,1482],{"class":570},[556,1861,1862],{"class":566},"args",[556,1864,1327],{"class":570},[556,1866,1111],{"class":566},[556,1868,1789],{"class":580},[556,1870,1871],{"class":566},"process",[556,1873,1327],{"class":570},[556,1875,1876],{"class":566},"stdout",[556,1878,1327],{"class":570},[556,1880,1881],{"class":562},"write",[556,1883,904],{"class":580},[556,1885,621],{"class":570},[556,1887,1786],{"class":617},[556,1889,1890],{"class":566},"\\n",[556,1892,621],{"class":570},[556,1894,632],{"class":580},[556,1896,1898],{"class":558,"line":1897},36,[556,1899,1175],{"class":570},[556,1901,1903],{"class":558,"line":1902},37,[556,1904,1609],{"class":570},[541,1906,1907,1908,1910,1911,1914,1915,1918],{},"Throw an error with a ",[553,1909,553],{}," property and ",[553,1912,1913],{},"outcome: \"error\""," plus ",[553,1916,1917],{},"errorCode"," are recorded automatically:",[545,1920,1922],{"className":547,"code":1921,"filename":1345,"language":550,"meta":551,"style":551},"throw Object.assign(new Error('Config missing'), { code: 'CONFIG_NOT_FOUND' })\n",[553,1923,1924],{"__ignoreMap":551},[556,1925,1926,1929,1931,1933,1935,1937,1939,1941,1943,1945,1948,1950,1952,1954,1956,1958,1960,1962,1965,1967,1969],{"class":558,"line":559},[556,1927,1928],{"class":737},"throw",[556,1930,1800],{"class":566},[556,1932,1327],{"class":570},[556,1934,1805],{"class":562},[556,1936,904],{"class":566},[556,1938,1810],{"class":570},[556,1940,1813],{"class":562},[556,1942,904],{"class":566},[556,1944,621],{"class":570},[556,1946,1947],{"class":617},"Config missing",[556,1949,621],{"class":570},[556,1951,1014],{"class":566},[556,1953,571],{"class":570},[556,1955,741],{"class":570},[556,1957,1831],{"class":580},[556,1959,584],{"class":570},[556,1961,614],{"class":570},[556,1963,1964],{"class":617},"CONFIG_NOT_FOUND",[556,1966,621],{"class":570},[556,1968,752],{"class":570},[556,1970,632],{"class":566},[541,1972,1973,1974,1977],{},"A minimal sync handler for comparison — flags are auto-captured, you only ",[553,1975,1976],{},"set()"," business counters:",[545,1979,1982],{"className":547,"code":1980,"filename":1981,"language":550,"meta":551,"style":551},"import { telemetry } from '@evlog\u002Ftelemetry'\n\nexport const syncCommand = {\n  meta: { name: 'sync', description: 'Pull remote state' },\n  args: {\n    dryRun: { type: 'boolean' },\n    output: { type: 'string', description: 'Output path' },\n  },\n  async run() {\n    const itemsSynced = await pullRemoteState()\n    telemetry.set({ itemsSynced })\n  },\n}\n","src\u002Fcommands\u002Fsync.ts",[553,1983,1984,2002,2006,2019,2052,2060,2081,2116,2120,2130,2146,2165,2169],{"__ignoreMap":551},[556,1985,1986,1988,1990,1992,1994,1996,1998,2000],{"class":558,"line":559},[556,1987,738],{"class":737},[556,1989,741],{"class":570},[556,1991,1356],{"class":566},[556,1993,752],{"class":570},[556,1995,755],{"class":737},[556,1997,614],{"class":570},[556,1999,786],{"class":617},[556,2001,763],{"class":570},[556,2003,2004],{"class":558,"line":577},[556,2005,834],{"emptyLinePlaceholder":833},[556,2007,2008,2010,2012,2015,2017],{"class":558,"line":593},[556,2009,882],{"class":737},[556,2011,885],{"class":840},[556,2013,2014],{"class":566}," syncCommand ",[556,2016,847],{"class":570},[556,2018,574],{"class":570},[556,2020,2021,2023,2025,2027,2029,2031,2033,2035,2037,2039,2041,2043,2045,2048,2050],{"class":558,"line":606},[556,2022,1631],{"class":580},[556,2024,584],{"class":570},[556,2026,741],{"class":570},[556,2028,920],{"class":580},[556,2030,584],{"class":570},[556,2032,614],{"class":570},[556,2034,1275],{"class":617},[556,2036,621],{"class":570},[556,2038,571],{"class":570},[556,2040,933],{"class":580},[556,2042,584],{"class":570},[556,2044,614],{"class":570},[556,2046,2047],{"class":617},"Pull remote state",[556,2049,621],{"class":570},[556,2051,1661],{"class":570},[556,2053,2054,2056,2058],{"class":558,"line":626},[556,2055,1666],{"class":580},[556,2057,584],{"class":570},[556,2059,574],{"class":570},[556,2061,2062,2065,2067,2069,2071,2073,2075,2077,2079],{"class":558,"line":837},[556,2063,2064],{"class":580},"    dryRun",[556,2066,584],{"class":570},[556,2068,741],{"class":570},[556,2070,1682],{"class":580},[556,2072,584],{"class":570},[556,2074,614],{"class":570},[556,2076,1689],{"class":617},[556,2078,621],{"class":570},[556,2080,1661],{"class":570},[556,2082,2083,2086,2088,2090,2092,2094,2096,2099,2101,2103,2105,2107,2109,2112,2114],{"class":558,"line":857},[556,2084,2085],{"class":580},"    output",[556,2087,584],{"class":570},[556,2089,741],{"class":570},[556,2091,1682],{"class":580},[556,2093,584],{"class":570},[556,2095,614],{"class":570},[556,2097,2098],{"class":617},"string",[556,2100,621],{"class":570},[556,2102,571],{"class":570},[556,2104,933],{"class":580},[556,2106,584],{"class":570},[556,2108,614],{"class":570},[556,2110,2111],{"class":617},"Output path",[556,2113,621],{"class":570},[556,2115,1661],{"class":570},[556,2117,2118],{"class":558,"line":874},[556,2119,1175],{"class":570},[556,2121,2122,2124,2126,2128],{"class":558,"line":879},[556,2123,1717],{"class":840},[556,2125,1720],{"class":580},[556,2127,1424],{"class":570},[556,2129,574],{"class":570},[556,2131,2132,2134,2137,2139,2141,2144],{"class":558,"line":898},[556,2133,1761],{"class":840},[556,2135,2136],{"class":566}," itemsSynced",[556,2138,1437],{"class":570},[556,2140,1769],{"class":737},[556,2142,2143],{"class":562}," pullRemoteState",[556,2145,1471],{"class":580},[556,2147,2148,2151,2153,2155,2157,2159,2161,2163],{"class":558,"line":910},[556,2149,2150],{"class":566},"    telemetry",[556,2152,1327],{"class":570},[556,2154,1578],{"class":562},[556,2156,904],{"class":580},[556,2158,1003],{"class":570},[556,2160,2136],{"class":566},[556,2162,752],{"class":570},[556,2164,632],{"class":580},[556,2166,2167],{"class":558,"line":957},[556,2168,1175],{"class":570},[556,2170,2171],{"class":558,"line":967},[556,2172,1609],{"class":570},[536,2174,2176],{"id":2175},"setup-without-citty","Setup without citty",[541,2178,2179,2180,2183,2184,584],{},"For scripts, migrators, or custom CLIs, use ",[553,2181,2182],{},"createTelemetry()"," and wrap each logical run with ",[553,2185,2186],{},"t.run()",[545,2188,2191],{"className":547,"code":2189,"filename":2190,"language":550,"meta":551,"style":551},"import { createTelemetry, telemetry } from '@evlog\u002Ftelemetry'\n\nconst t = createTelemetry({ name: 'my-migrator', version: '2.0.0' })\n\nawait t.run('migrate', async () => {\n  const rows = await migrateBatch()\n  telemetry.set({ rowsMigrated: rows.length, batchSize: 500 })\n})\n\nawait t.flush() \u002F\u002F optional — also runs at end of each t.run()\n","scripts\u002Fmigrate.ts",[553,2192,2193,2216,2220,2263,2267,2301,2317,2355,2361,2365],{"__ignoreMap":551},[556,2194,2195,2197,2199,2202,2204,2206,2208,2210,2212,2214],{"class":558,"line":559},[556,2196,738],{"class":737},[556,2198,741],{"class":570},[556,2200,2201],{"class":566}," createTelemetry",[556,2203,571],{"class":570},[556,2205,1356],{"class":566},[556,2207,752],{"class":570},[556,2209,755],{"class":737},[556,2211,614],{"class":570},[556,2213,786],{"class":617},[556,2215,763],{"class":570},[556,2217,2218],{"class":558,"line":577},[556,2219,834],{"emptyLinePlaceholder":833},[556,2221,2222,2224,2227,2229,2231,2233,2235,2237,2239,2241,2244,2246,2248,2250,2252,2254,2257,2259,2261],{"class":558,"line":593},[556,2223,841],{"class":840},[556,2225,2226],{"class":566}," t ",[556,2228,847],{"class":570},[556,2230,2201],{"class":562},[556,2232,904],{"class":566},[556,2234,1003],{"class":570},[556,2236,920],{"class":580},[556,2238,584],{"class":570},[556,2240,614],{"class":570},[556,2242,2243],{"class":617},"my-migrator",[556,2245,621],{"class":570},[556,2247,571],{"class":570},[556,2249,947],{"class":580},[556,2251,584],{"class":570},[556,2253,614],{"class":570},[556,2255,2256],{"class":617},"2.0.0",[556,2258,621],{"class":570},[556,2260,752],{"class":570},[556,2262,632],{"class":566},[556,2264,2265],{"class":558,"line":606},[556,2266,834],{"emptyLinePlaceholder":833},[556,2268,2269,2272,2275,2277,2279,2281,2283,2286,2288,2290,2293,2296,2299],{"class":558,"line":626},[556,2270,2271],{"class":737},"await",[556,2273,2274],{"class":566}," t",[556,2276,1327],{"class":570},[556,2278,1207],{"class":562},[556,2280,904],{"class":566},[556,2282,621],{"class":570},[556,2284,2285],{"class":617},"migrate",[556,2287,621],{"class":570},[556,2289,571],{"class":570},[556,2291,2292],{"class":840}," async",[556,2294,2295],{"class":570}," ()",[556,2297,2298],{"class":840}," =>",[556,2300,574],{"class":570},[556,2302,2303,2305,2308,2310,2312,2315],{"class":558,"line":837},[556,2304,1461],{"class":840},[556,2306,2307],{"class":566}," rows",[556,2309,1437],{"class":570},[556,2311,1769],{"class":737},[556,2313,2314],{"class":562}," migrateBatch",[556,2316,1471],{"class":580},[556,2318,2319,2321,2323,2325,2327,2329,2332,2334,2336,2338,2341,2343,2346,2348,2351,2353],{"class":558,"line":857},[556,2320,1573],{"class":566},[556,2322,1327],{"class":570},[556,2324,1578],{"class":562},[556,2326,904],{"class":580},[556,2328,1003],{"class":570},[556,2330,2331],{"class":580}," rowsMigrated",[556,2333,584],{"class":570},[556,2335,2307],{"class":566},[556,2337,1327],{"class":570},[556,2339,2340],{"class":566},"length",[556,2342,571],{"class":570},[556,2344,2345],{"class":580}," batchSize",[556,2347,584],{"class":570},[556,2349,2350],{"class":1440}," 500",[556,2352,752],{"class":570},[556,2354,632],{"class":580},[556,2356,2357,2359],{"class":558,"line":874},[556,2358,629],{"class":570},[556,2360,632],{"class":566},[556,2362,2363],{"class":558,"line":879},[556,2364,834],{"emptyLinePlaceholder":833},[556,2366,2367,2369,2371,2373,2376,2379],{"class":558,"line":898},[556,2368,2271],{"class":737},[556,2370,2274],{"class":566},[556,2372,1327],{"class":570},[556,2374,2375],{"class":562},"flush",[556,2377,2378],{"class":566},"() ",[556,2380,2381],{"class":1567},"\u002F\u002F optional — also runs at end of each t.run()\n",[541,2383,2384,2385,2388,2389,2392,2393,2396,2397,2400,2401,2404,2405,670,2408,2411],{},"GitHub Actions: swap ",[553,2386,2387],{},"createTelemetry"," for ",[553,2390,2391],{},"createGitHubActionsTelemetry()"," in the same file — it adds ",[553,2394,2395],{},"ghaAction"," and ",[553,2398,2399],{},"ghaEvent"," to ",[553,2402,2403],{},"custom"," from ",[553,2406,2407],{},"GITHUB_ACTION",[553,2409,2410],{},"GITHUB_EVENT_NAME"," only (never repo content).",[545,2413,2416],{"className":547,"code":2414,"filename":2415,"language":550,"meta":551,"style":551},"import { createGitHubActionsTelemetry, telemetry } from '@evlog\u002Ftelemetry'\n\nconst t = createGitHubActionsTelemetry({ name: 'my-action', version: '1.0.0' })\n\nawait t.run('report', async () => {\n  const artifacts = await collectArtifacts()\n  telemetry.set({ artifactCount: artifacts.length })\n})\n","scripts\u002Fci-report.ts",[553,2417,2418,2441,2445,2486,2490,2519,2535,2562],{"__ignoreMap":551},[556,2419,2420,2422,2424,2427,2429,2431,2433,2435,2437,2439],{"class":558,"line":559},[556,2421,738],{"class":737},[556,2423,741],{"class":570},[556,2425,2426],{"class":566}," createGitHubActionsTelemetry",[556,2428,571],{"class":570},[556,2430,1356],{"class":566},[556,2432,752],{"class":570},[556,2434,755],{"class":737},[556,2436,614],{"class":570},[556,2438,786],{"class":617},[556,2440,763],{"class":570},[556,2442,2443],{"class":558,"line":577},[556,2444,834],{"emptyLinePlaceholder":833},[556,2446,2447,2449,2451,2453,2455,2457,2459,2461,2463,2465,2468,2470,2472,2474,2476,2478,2480,2482,2484],{"class":558,"line":593},[556,2448,841],{"class":840},[556,2450,2226],{"class":566},[556,2452,847],{"class":570},[556,2454,2426],{"class":562},[556,2456,904],{"class":566},[556,2458,1003],{"class":570},[556,2460,920],{"class":580},[556,2462,584],{"class":570},[556,2464,614],{"class":570},[556,2466,2467],{"class":617},"my-action",[556,2469,621],{"class":570},[556,2471,571],{"class":570},[556,2473,947],{"class":580},[556,2475,584],{"class":570},[556,2477,614],{"class":570},[556,2479,869],{"class":617},[556,2481,621],{"class":570},[556,2483,752],{"class":570},[556,2485,632],{"class":566},[556,2487,2488],{"class":558,"line":606},[556,2489,834],{"emptyLinePlaceholder":833},[556,2491,2492,2494,2496,2498,2500,2502,2504,2507,2509,2511,2513,2515,2517],{"class":558,"line":626},[556,2493,2271],{"class":737},[556,2495,2274],{"class":566},[556,2497,1327],{"class":570},[556,2499,1207],{"class":562},[556,2501,904],{"class":566},[556,2503,621],{"class":570},[556,2505,2506],{"class":617},"report",[556,2508,621],{"class":570},[556,2510,571],{"class":570},[556,2512,2292],{"class":840},[556,2514,2295],{"class":570},[556,2516,2298],{"class":840},[556,2518,574],{"class":570},[556,2520,2521,2523,2526,2528,2530,2533],{"class":558,"line":837},[556,2522,1461],{"class":840},[556,2524,2525],{"class":566}," artifacts",[556,2527,1437],{"class":570},[556,2529,1769],{"class":737},[556,2531,2532],{"class":562}," collectArtifacts",[556,2534,1471],{"class":580},[556,2536,2537,2539,2541,2543,2545,2547,2550,2552,2554,2556,2558,2560],{"class":558,"line":857},[556,2538,1573],{"class":566},[556,2540,1327],{"class":570},[556,2542,1578],{"class":562},[556,2544,904],{"class":580},[556,2546,1003],{"class":570},[556,2548,2549],{"class":580}," artifactCount",[556,2551,584],{"class":570},[556,2553,2525],{"class":566},[556,2555,1327],{"class":570},[556,2557,2340],{"class":566},[556,2559,752],{"class":570},[556,2561,632],{"class":580},[556,2563,2564,2566],{"class":558,"line":874},[556,2565,629],{"class":570},[556,2567,632],{"class":566},[536,2569,2571],{"id":2570},"debug","Debug",[545,2573,2577],{"className":2574,"code":2575,"language":2576,"meta":551,"style":551},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","EVLOG_TELEMETRY_DEBUG=1 my-tool doctor\nEVLOG_TELEMETRY=0 my-tool sync\n","bash",[553,2578,2579,2595],{"__ignoreMap":551},[556,2580,2581,2584,2586,2589,2592],{"class":558,"line":559},[556,2582,2583],{"class":566},"EVLOG_TELEMETRY_DEBUG",[556,2585,847],{"class":570},[556,2587,2588],{"class":617},"1",[556,2590,2591],{"class":1747}," my-tool",[556,2593,2594],{"class":617}," doctor\n",[556,2596,2597,2600,2602,2605,2607],{"class":558,"line":577},[556,2598,2599],{"class":566},"EVLOG_TELEMETRY",[556,2601,847],{"class":570},[556,2603,2604],{"class":617},"0",[556,2606,2591],{"class":1747},[556,2608,2609],{"class":617}," sync\n",[541,2611,2612],{},"Debug mode prints would-be payloads to stderr. Nothing is sent unless an endpoint is configured and delivery succeeds.",[2614,2615,2616],"style",{},"html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}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 .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 .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 .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}",{"title":551,"searchDepth":577,"depth":577,"links":2618},[2619,2620,2624,2625],{"id":538,"depth":577,"text":539},{"id":708,"depth":577,"text":709,"children":2621},[2622,2623],{"id":1198,"depth":593,"text":1199},{"id":1330,"depth":593,"text":1331},{"id":2175,"depth":577,"text":2176},{"id":2570,"depth":577,"text":2571},"Wire @evlog\u002Ftelemetry into citty CLIs, standalone scripts, and GitHub Actions — delivery config, automatic flag capture, telemetry.set(), and debug mode.","md",[2629,2632,2633],{"label":36,"icon":39,"to":414,"color":2630,"variant":2631},"neutral","subtle",{"label":422,"icon":425,"to":423,"color":2630,"variant":2631},{"label":427,"icon":79,"to":428,"color":2630,"variant":2631},{},{"title":417,"icon":420},{"title":531,"description":2626},"zsC4jkj4B4QMmFDZXGjeRuvYwZ6VyYcHWeZrNGXGo4s",[2639,2641],{"title":36,"path":414,"stem":415,"description":2640,"icon":39,"children":-1},"Wide-event telemetry for CLIs and automation — evlog's one-event-per-run model for tools on user machines, with privacy-safe flags, consent, outbox, and auto-generated disclosure.",{"title":422,"path":423,"stem":424,"description":2642,"icon":425,"children":-1},"Build a server ingestion endpoint for @evlog\u002Ftelemetry — semi-public threat model, parseIngestBody validation, framework routes, idempotent storage, and rate limiting.",1786126590290]