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