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