[{"data":1,"prerenderedAt":3242},["ShallowReactive",2],{"navigation_docs":3,"-use-cases-signals-overview":612,"-use-cases-signals-overview-surround":3237},[4,35,85,148,328,489,548,587],{"title":5,"path":6,"stem":7,"children":8,"page":34},"Start","\u002Fstart","1.start",[9,14,19,24,29],{"title":10,"path":11,"stem":12,"icon":13},"Introduction","\u002Fstart\u002Fintroduction","1.start\u002F1.introduction","i-lucide-info",{"title":15,"path":16,"stem":17,"icon":18},"Why start with evlog","\u002Fstart\u002Fwhy-evlog","1.start\u002F2.why-evlog","i-lucide-rocket",{"title":20,"path":21,"stem":22,"icon":23},"Installation","\u002Fstart\u002Finstallation","1.start\u002F3.installation","i-lucide-download",{"title":25,"path":26,"stem":27,"icon":28},"Quick Start","\u002Fstart\u002Fquick-start","1.start\u002F4.quick-start","i-lucide-zap",{"title":30,"path":31,"stem":32,"icon":33},"Choose your logger","\u002Fstart\u002Ftypescript-logging-library","1.start\u002F5.typescript-logging-library","i-lucide-file-code",false,{"title":36,"path":37,"stem":38,"children":39,"page":34},"Learn","\u002Flearn","2.learn",[40,45,50,55,60,65,70,75,80],{"title":41,"path":42,"stem":43,"icon":44},"Overview","\u002Flearn\u002Foverview","2.learn\u002F0.overview","i-lucide-list",{"title":46,"path":47,"stem":48,"icon":49},"Simple Logging","\u002Flearn\u002Fsimple-logging","2.learn\u002F1.simple-logging","i-lucide-terminal",{"title":51,"path":52,"stem":53,"icon":54},"Wide Events","\u002Flearn\u002Fwide-events","2.learn\u002F2.wide-events","i-lucide-layers",{"title":56,"path":57,"stem":58,"icon":59},"Structured Errors","\u002Flearn\u002Fstructured-errors","2.learn\u002F3.structured-errors","i-lucide-shield-alert",{"title":61,"path":62,"stem":63,"icon":64},"Lifecycle","\u002Flearn\u002Flifecycle","2.learn\u002F4.lifecycle","i-lucide-arrow-right-left",{"title":66,"path":67,"stem":68,"icon":69},"Sampling","\u002Flearn\u002Fsampling","2.learn\u002F5.sampling","i-lucide-filter",{"title":71,"path":72,"stem":73,"icon":74},"Auto-Redaction","\u002Flearn\u002Fredaction","2.learn\u002F6.redaction","i-lucide-eye-off",{"title":76,"path":77,"stem":78,"icon":79},"Typed Fields","\u002Flearn\u002Ftyped-fields","2.learn\u002F7.typed-fields","i-simple-icons-typescript",{"title":81,"path":82,"stem":83,"icon":84},"Catalogs","\u002Flearn\u002Fcatalogs","2.learn\u002F8.catalogs","i-lucide-book-open",{"title":86,"path":87,"stem":88,"children":89,"page":34},"CLI","\u002Fcli","3.cli",[90,93,98,103,108,113,118,123,128,133,138,143],{"title":41,"path":91,"stem":92,"icon":49},"\u002Fcli\u002Foverview","3.cli\u002F0.overview",{"title":94,"path":95,"stem":96,"icon":97},"init","\u002Fcli\u002Finit","3.cli\u002F1.init","i-lucide-wand-sparkles",{"title":99,"path":100,"stem":101,"icon":102},"logs","\u002Fcli\u002Flogs","3.cli\u002F10.logs","i-lucide-scroll-text",{"title":104,"path":105,"stem":106,"icon":107},"config","\u002Fcli\u002Fconfig","3.cli\u002F11.config","i-lucide-settings-2",{"title":109,"path":110,"stem":111,"icon":112},"map","\u002Fcli\u002Fmap","3.cli\u002F2.map","i-lucide-radar",{"title":114,"path":115,"stem":116,"icon":117},"Rules","\u002Fcli\u002Frules","3.cli\u002F3.rules","i-lucide-list-checks",{"title":119,"path":120,"stem":121,"icon":122},"Scoring","\u002Fcli\u002Fscoring","3.cli\u002F4.scoring","i-lucide-gauge",{"title":124,"path":125,"stem":126,"icon":127},"CI","\u002Fcli\u002Fci","3.cli\u002F5.ci","i-lucide-git-pull-request",{"title":129,"path":130,"stem":131,"icon":132},"doctor","\u002Fcli\u002Fdoctor","3.cli\u002F6.doctor","i-lucide-stethoscope",{"title":134,"path":135,"stem":136,"icon":137},"telemetry","\u002Fcli\u002Ftelemetry","3.cli\u002F7.telemetry","i-lucide-bar-chart-3",{"title":139,"path":140,"stem":141,"icon":142},"agents","\u002Fcli\u002Fagents","3.cli\u002F8.agents","i-lucide-bot",{"title":144,"path":145,"stem":146,"icon":147},"Observability Score","\u002Fcli\u002Fobservability-score","3.cli\u002F9.observability-score","i-lucide-activity",{"title":149,"path":150,"stem":151,"children":152,"page":34},"Integrate","\u002Fintegrate","4.integrate",[153,157,240],{"title":41,"path":154,"stem":155,"icon":156},"\u002Fintegrate\u002Foverview","4.integrate\u002F0.overview","i-lucide-plug",{"title":158,"path":159,"stem":160,"children":161,"page":34},"Adapters","\u002Fintegrate\u002Fadapters","4.integrate\u002Fadapters",[162,165,195,220],{"title":41,"path":163,"stem":164,"icon":44},"\u002Fintegrate\u002Fadapters\u002Foverview","4.integrate\u002Fadapters\u002F01.overview",{"title":166,"path":167,"stem":168,"children":169,"page":34},"Cloud","\u002Fintegrate\u002Fadapters\u002Fcloud","4.integrate\u002Fadapters\u002Fcloud",[170,175,180,185,190],{"title":171,"path":172,"stem":173,"icon":174},"Axiom","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Faxiom","4.integrate\u002Fadapters\u002Fcloud\u002F01.axiom","i-custom-axiom",{"title":176,"path":177,"stem":178,"icon":179},"PostHog","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fposthog","4.integrate\u002Fadapters\u002Fcloud\u002F02.posthog","i-simple-icons-posthog",{"title":181,"path":182,"stem":183,"icon":184},"Sentry","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fsentry","4.integrate\u002Fadapters\u002Fcloud\u002F03.sentry","i-simple-icons-sentry",{"title":186,"path":187,"stem":188,"icon":189},"Better Stack","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fbetter-stack","4.integrate\u002Fadapters\u002Fcloud\u002F04.better-stack","i-simple-icons-betterstack",{"title":191,"path":192,"stem":193,"icon":194},"Datadog","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fdatadog","4.integrate\u002Fadapters\u002Fcloud\u002F05.datadog","i-simple-icons-datadog",{"title":196,"path":197,"stem":198,"children":199,"page":34},"Cloud or Self-Hosted","\u002Fintegrate\u002Fadapters\u002Fhybrid","4.integrate\u002Fadapters\u002Fhybrid",[200,205,210,215],{"title":201,"path":202,"stem":203,"icon":204},"Grafana Loki","\u002Fintegrate\u002Fadapters\u002Fhybrid\u002Floki","4.integrate\u002Fadapters\u002Fhybrid\u002F01.loki","i-simple-icons-grafana",{"title":206,"path":207,"stem":208,"icon":209},"ClickHouse","\u002Fintegrate\u002Fadapters\u002Fhybrid\u002Fclickhouse","4.integrate\u002Fadapters\u002Fhybrid\u002F02.clickhouse","i-simple-icons-clickhouse",{"title":211,"path":212,"stem":213,"icon":214},"OTLP","\u002Fintegrate\u002Fadapters\u002Fhybrid\u002Fotlp","4.integrate\u002Fadapters\u002Fhybrid\u002F03.otlp","i-simple-icons-opentelemetry",{"title":216,"path":217,"stem":218,"icon":219},"HyperDX","\u002Fintegrate\u002Fadapters\u002Fhybrid\u002Fhyperdx","4.integrate\u002Fadapters\u002Fhybrid\u002F04.hyperdx","i-custom-hyperdx",{"title":221,"path":222,"stem":223,"children":224,"page":34},"Self-Hosted","\u002Fintegrate\u002Fadapters\u002Fself-hosted","4.integrate\u002Fadapters\u002Fself-hosted",[225,230,235],{"title":226,"path":227,"stem":228,"icon":229},"File System","\u002Fintegrate\u002Fadapters\u002Fself-hosted\u002Ffs","4.integrate\u002Fadapters\u002Fself-hosted\u002F01.fs","i-lucide-hard-drive",{"title":231,"path":232,"stem":233,"icon":234},"NuxtHub","\u002Fintegrate\u002Fadapters\u002Fself-hosted\u002Fnuxthub","4.integrate\u002Fadapters\u002Fself-hosted\u002F02.nuxthub","i-simple-icons-nuxt",{"title":236,"path":237,"stem":238,"icon":239},"Memory","\u002Fintegrate\u002Fadapters\u002Fself-hosted\u002Fmemory","4.integrate\u002Fadapters\u002Fself-hosted\u002F03.memory","i-lucide-cpu",{"title":241,"path":242,"stem":243,"children":244,"page":34},"Frameworks","\u002Fintegrate\u002Fframeworks","4.integrate\u002Fframeworks",[245,249,254,259,264,269,274,279,284,289,294,299,304,309,313,318,323],{"title":41,"path":246,"stem":247,"icon":248},"\u002Fintegrate\u002Fframeworks\u002Foverview","4.integrate\u002Fframeworks\u002F00.overview","i-lucide-layout-grid",{"title":250,"path":251,"stem":252,"icon":253},"Nuxt","\u002Fintegrate\u002Fframeworks\u002Fnuxt","4.integrate\u002Fframeworks\u002F01.nuxt","i-simple-icons-nuxtdotjs",{"title":255,"path":256,"stem":257,"icon":258},"Next.js","\u002Fintegrate\u002Fframeworks\u002Fnextjs","4.integrate\u002Fframeworks\u002F02.nextjs","i-simple-icons-nextdotjs",{"title":260,"path":261,"stem":262,"icon":263},"SvelteKit","\u002Fintegrate\u002Fframeworks\u002Fsveltekit","4.integrate\u002Fframeworks\u002F03.sveltekit","i-simple-icons-svelte",{"title":265,"path":266,"stem":267,"icon":268},"Nitro","\u002Fintegrate\u002Fframeworks\u002Fnitro","4.integrate\u002Fframeworks\u002F04.nitro","i-custom-nitro",{"title":270,"path":271,"stem":272,"icon":273},"TanStack Start","\u002Fintegrate\u002Fframeworks\u002Ftanstack-start","4.integrate\u002Fframeworks\u002F05.tanstack-start","i-custom-tanstack",{"title":275,"path":276,"stem":277,"icon":278},"NestJS","\u002Fintegrate\u002Fframeworks\u002Fnestjs","4.integrate\u002Fframeworks\u002F06.nestjs","i-simple-icons-nestjs",{"title":280,"path":281,"stem":282,"icon":283},"Express","\u002Fintegrate\u002Fframeworks\u002Fexpress","4.integrate\u002Fframeworks\u002F07.express","i-simple-icons-express",{"title":285,"path":286,"stem":287,"icon":288},"Hono","\u002Fintegrate\u002Fframeworks\u002Fhono","4.integrate\u002Fframeworks\u002F08.hono","i-simple-icons-hono",{"title":290,"path":291,"stem":292,"icon":293},"Fastify","\u002Fintegrate\u002Fframeworks\u002Ffastify","4.integrate\u002Fframeworks\u002F09.fastify","i-simple-icons-fastify",{"title":295,"path":296,"stem":297,"icon":298},"Elysia","\u002Fintegrate\u002Fframeworks\u002Felysia","4.integrate\u002Fframeworks\u002F10.elysia","i-custom-elysia",{"title":300,"path":301,"stem":302,"icon":303},"React Router","\u002Fintegrate\u002Fframeworks\u002Freact-router","4.integrate\u002Fframeworks\u002F11.react-router","i-custom-reactrouter",{"title":305,"path":306,"stem":307,"icon":308},"Cloudflare Workers","\u002Fintegrate\u002Fframeworks\u002Fcloudflare-workers","4.integrate\u002Fframeworks\u002F12.cloudflare-workers","i-simple-icons-cloudflare",{"title":310,"path":311,"stem":312,"icon":79},"Standalone","\u002Fintegrate\u002Fframeworks\u002Fstandalone","4.integrate\u002Fframeworks\u002F13.standalone",{"title":314,"path":315,"stem":316,"icon":317},"Astro","\u002Fintegrate\u002Fframeworks\u002Fastro","4.integrate\u002Fframeworks\u002F14.astro","i-simple-icons-astro",{"title":319,"path":320,"stem":321,"icon":322},"oRPC","\u002Fintegrate\u002Fframeworks\u002Forpc","4.integrate\u002Fframeworks\u002F15.orpc","i-lucide-network",{"title":324,"path":325,"stem":326,"icon":327},"AWS Lambda","\u002Fintegrate\u002Fframeworks\u002Faws-lambda","4.integrate\u002Fframeworks\u002F16.aws-lambda","i-custom-lambda",{"title":329,"path":330,"stem":331,"children":332,"page":34},"Use Cases","\u002Fuse-cases","5.use-cases",[333,336,341,369,396,428,449,454,459,463],{"title":41,"path":334,"stem":335,"icon":117},"\u002Fuse-cases\u002Foverview","5.use-cases\u002F0.overview",{"title":337,"path":338,"stem":339,"icon":340},"Client Logging","\u002Fuse-cases\u002Fclient-logging","5.use-cases\u002F1.client-logging","i-lucide-monitor",{"title":342,"icon":343,"path":344,"stem":345,"children":346,"page":34},"AI SDK","i-simple-icons-vercel","\u002Fuse-cases\u002Fai-sdk","5.use-cases\u002F2.ai-sdk",[347,350,355,360,365],{"title":41,"path":348,"stem":349,"icon":44},"\u002Fuse-cases\u002Fai-sdk\u002Foverview","5.use-cases\u002F2.ai-sdk\u002F01.overview",{"title":351,"path":352,"stem":353,"icon":354},"Usage","\u002Fuse-cases\u002Fai-sdk\u002Fusage","5.use-cases\u002F2.ai-sdk\u002F02.usage","i-lucide-code",{"title":356,"path":357,"stem":358,"icon":359},"Options","\u002Fuse-cases\u002Fai-sdk\u002Foptions","5.use-cases\u002F2.ai-sdk\u002F03.options","i-lucide-sliders",{"title":361,"path":362,"stem":363,"icon":364},"Metadata","\u002Fuse-cases\u002Fai-sdk\u002Fmetadata","5.use-cases\u002F2.ai-sdk\u002F04.metadata","i-lucide-database",{"title":366,"path":367,"stem":368,"icon":147},"Telemetry","\u002Fuse-cases\u002Fai-sdk\u002Ftelemetry","5.use-cases\u002F2.ai-sdk\u002F05.telemetry",{"title":370,"icon":371,"path":372,"stem":373,"children":374,"page":34},"Better Auth","i-simple-icons-betterauth","\u002Fuse-cases\u002Fbetter-auth","5.use-cases\u002F3.better-auth",[375,378,383,388,392],{"title":41,"path":376,"stem":377,"icon":44},"\u002Fuse-cases\u002Fbetter-auth\u002Foverview","5.use-cases\u002F3.better-auth\u002F01.overview",{"title":379,"path":380,"stem":381,"icon":382},"Identify User","\u002Fuse-cases\u002Fbetter-auth\u002Fidentify-user","5.use-cases\u002F3.better-auth\u002F02.identify-user","i-lucide-user-check",{"title":384,"path":385,"stem":386,"icon":387},"Middleware","\u002Fuse-cases\u002Fbetter-auth\u002Fmiddleware","5.use-cases\u002F3.better-auth\u002F03.middleware","i-lucide-shield",{"title":389,"path":390,"stem":391,"icon":340},"Client Sync","\u002Fuse-cases\u002Fbetter-auth\u002Fclient-sync","5.use-cases\u002F3.better-auth\u002F04.client-sync",{"title":393,"path":394,"stem":395,"icon":122},"Performance","\u002Fuse-cases\u002Fbetter-auth\u002Fperformance","5.use-cases\u002F3.better-auth\u002F05.performance",{"title":397,"icon":398,"path":399,"stem":400,"children":401,"page":34},"Audit Logs","i-lucide-shield-check","\u002Fuse-cases\u002Faudit","5.use-cases\u002F4.audit",[402,405,410,415,420,424],{"title":41,"path":403,"stem":404,"icon":44},"\u002Fuse-cases\u002Faudit\u002Foverview","5.use-cases\u002F4.audit\u002F01.overview",{"title":406,"path":407,"stem":408,"icon":409},"Schema","\u002Fuse-cases\u002Faudit\u002Fschema","5.use-cases\u002F4.audit\u002F02.schema","i-lucide-file-text",{"title":411,"path":412,"stem":413,"icon":414},"Recording","\u002Fuse-cases\u002Faudit\u002Frecording","5.use-cases\u002F4.audit\u002F03.recording","i-lucide-pen-line",{"title":416,"path":417,"stem":418,"icon":419},"Drains","\u002Fuse-cases\u002Faudit\u002Fpipeline","5.use-cases\u002F4.audit\u002F04.pipeline","i-lucide-link",{"title":421,"path":422,"stem":423,"icon":398},"Compliance","\u002Fuse-cases\u002Faudit\u002Fcompliance","5.use-cases\u002F4.audit\u002F05.compliance",{"title":425,"path":426,"stem":427,"icon":84},"Recipes","\u002Fuse-cases\u002Faudit\u002Frecipes","5.use-cases\u002F4.audit\u002F06.recipes",{"title":366,"icon":122,"path":429,"stem":430,"children":431,"page":34},"\u002Fuse-cases\u002Ftelemetry","5.use-cases\u002F4.telemetry",[432,435,440,445],{"title":41,"path":433,"stem":434,"icon":44},"\u002Fuse-cases\u002Ftelemetry\u002Foverview","5.use-cases\u002F4.telemetry\u002F01.overview",{"title":436,"path":437,"stem":438,"icon":439},"Setup","\u002Fuse-cases\u002Ftelemetry\u002Fsetup","5.use-cases\u002F4.telemetry\u002F02.setup","i-lucide-wrench",{"title":441,"path":442,"stem":443,"icon":444},"Ingest","\u002Fuse-cases\u002Ftelemetry\u002Fingest","5.use-cases\u002F4.telemetry\u002F03.ingest","i-lucide-server",{"title":446,"path":447,"stem":448,"icon":84},"Reference","\u002Fuse-cases\u002Ftelemetry\u002Freference","5.use-cases\u002F4.telemetry\u002F04.reference",{"title":450,"path":451,"stem":452,"icon":453},"Enrichers","\u002Fuse-cases\u002Fenrichers","5.use-cases\u002F5.enrichers","i-lucide-sparkles",{"title":455,"path":456,"stem":457,"icon":458},"eve","\u002Fuse-cases\u002Feve","5.use-cases\u002F5.eve","i-custom-eve",{"title":460,"path":461,"stem":462,"icon":444},"Node.js request logging","\u002Fuse-cases\u002Fstructured-logging-nodejs","5.use-cases\u002F6.structured-logging-nodejs",{"title":464,"icon":465,"path":466,"stem":467,"children":468,"page":34},"Signals","i-lucide-scan-search","\u002Fuse-cases\u002Fsignals","5.use-cases\u002F7.signals",[469,472,477,482,485],{"title":41,"path":470,"stem":471,"icon":44},"\u002Fuse-cases\u002Fsignals\u002Foverview","5.use-cases\u002F7.signals\u002F01.overview",{"title":473,"path":474,"stem":475,"icon":476},"What You Can Ask","\u002Fuse-cases\u002Fsignals\u002Fask","5.use-cases\u002F7.signals\u002F02.ask","i-lucide-message-circle-question",{"title":478,"path":479,"stem":480,"icon":481},"What It Costs","\u002Fuse-cases\u002Fsignals\u002Fcost","5.use-cases\u002F7.signals\u002F03.cost","i-lucide-coins",{"title":446,"path":483,"stem":484,"icon":84},"\u002Fuse-cases\u002Fsignals\u002Freference","5.use-cases\u002F7.signals\u002F04.reference",{"title":425,"path":486,"stem":487,"icon":488},"\u002Fuse-cases\u002Fsignals\u002Frecipes","5.use-cases\u002F7.signals\u002F05.recipes","i-lucide-lightbulb",{"title":490,"path":491,"stem":492,"children":493,"page":34},"Extend","\u002Fextend","6.extend",[494,498,503,508,512,517,521,525,529,533,538,543],{"title":41,"path":495,"stem":496,"icon":497},"\u002Fextend\u002Foverview","6.extend\u002F0.overview","i-lucide-blocks",{"title":499,"path":500,"stem":501,"icon":502},"Stream","\u002Fextend\u002Fstream","6.extend\u002F1.stream","i-lucide-radio-tower",{"title":504,"path":505,"stem":506,"icon":507},"Custom framework","\u002Fextend\u002Fcustom-framework","6.extend\u002F10.custom-framework","i-lucide-puzzle",{"title":509,"path":510,"stem":511,"icon":502},"Diagnostics channel","\u002Fextend\u002Fdiagnostics-channel","6.extend\u002F11.diagnostics-channel",{"title":513,"path":514,"stem":515,"icon":516},"FS reader","\u002Fextend\u002Ffs-reader","6.extend\u002F2.fs-reader","i-lucide-folder-search",{"title":425,"path":518,"stem":519,"icon":520},"\u002Fextend\u002Fconsumer-recipes","6.extend\u002F3.consumer-recipes","i-lucide-chef-hat",{"title":522,"path":523,"stem":524,"icon":497},"Plugins","\u002Fextend\u002Fplugins","6.extend\u002F4.plugins",{"title":526,"path":527,"stem":528,"icon":453},"Custom enrichers","\u002Fextend\u002Fcustom-enrichers","6.extend\u002F5.custom-enrichers",{"title":530,"path":531,"stem":532,"icon":69},"Tail sampling","\u002Fextend\u002Ftail-sampling","6.extend\u002F6.tail-sampling",{"title":534,"path":535,"stem":536,"icon":537},"Identity headers","\u002Fextend\u002Fidentity-headers","6.extend\u002F7.identity-headers","i-lucide-fingerprint",{"title":539,"path":540,"stem":541,"icon":542},"Custom drains","\u002Fextend\u002Fcustom-drains","6.extend\u002F8.custom-drains","i-lucide-share-2",{"title":544,"path":545,"stem":546,"icon":547},"Drain pipeline","\u002Fextend\u002Fdrain-pipeline","6.extend\u002F9.drain-pipeline","i-lucide-workflow",{"title":446,"path":549,"stem":550,"children":551,"page":34},"\u002Freference","7.reference",[552,556,561,564,569,573,578,582],{"title":41,"path":553,"stem":554,"icon":555},"\u002Freference\u002Foverview","7.reference\u002F0.overview","i-lucide-book-marked",{"title":557,"path":558,"stem":559,"icon":560},"Configuration","\u002Freference\u002Fconfiguration","7.reference\u002F1.configuration","i-lucide-settings",{"title":393,"path":562,"stem":563,"icon":122},"\u002Freference\u002Fperformance","7.reference\u002F2.performance",{"title":565,"path":566,"stem":567,"icon":568},"Vite Plugin","\u002Freference\u002Fvite-plugin","7.reference\u002F3.vite-plugin","i-custom-vite",{"title":570,"path":571,"stem":572,"icon":398},"Best Practices","\u002Freference\u002Fbest-practices","7.reference\u002F4.best-practices",{"title":574,"path":575,"stem":576,"icon":577},"vs Other Loggers","\u002Freference\u002Fvs-other-loggers","7.reference\u002F5.vs-other-loggers","i-lucide-scale",{"title":579,"path":580,"stem":581,"icon":453},"Agent Skills","\u002Freference\u002Fagent-skills","7.reference\u002F6.agent-skills",{"title":583,"path":584,"stem":585,"icon":586},"Cost","\u002Freference\u002Fcost","7.reference\u002F7.cost","i-lucide-receipt",{"title":588,"path":589,"stem":590,"children":591,"page":34},"Compare","\u002Fcompare","8.compare",[592,596,600,604,608],{"title":593,"path":594,"stem":595,"icon":577},"evlog vs Pino","\u002Fcompare\u002Fpino","8.compare\u002F1.pino",{"title":597,"path":598,"stem":599,"icon":214},"evlog vs OpenTelemetry","\u002Fcompare\u002Fopentelemetry","8.compare\u002F2.opentelemetry",{"title":601,"path":602,"stem":603,"icon":577},"evlog vs LogTape","\u002Fcompare\u002Flogtape","8.compare\u002F3.logtape",{"title":605,"path":606,"stem":607,"icon":577},"evlog vs Winston: formats and request events","\u002Fcompare\u002Fwinston","8.compare\u002F4.winston",{"title":609,"path":610,"stem":611,"icon":577},"evlog vs Consola: reporters and request context","\u002Fcompare\u002Fconsola","8.compare\u002F5.consola",{"id":613,"title":464,"body":614,"description":3225,"extension":3226,"links":3227,"meta":3233,"navigation":3234,"path":470,"seo":3235,"stem":471,"__hash__":3236},"docs\u002F5.use-cases\u002F7.signals\u002F01.overview.md",{"type":615,"value":616,"toc":3214},"minimark",[617,621,628,633,636,639,646,649,692,696,744,3005,3009,3023,3026,3029,3166,3179,3183,3210],[618,619,620],"p",{},"Your logs tell you a request returned 502. A signal tells you it was Stripe, that a retry would have worked, and that it is not worth waking anyone. Your logs tell you a checkout returned 200. A signal tells you the customer left without an order.",[618,622,623,627],{},[624,625,626],"code",{},"@evlog\u002Fsignals"," asks a decision model one question per event and writes the answer onto the event as a column, with a confidence. You query it like any other field.",[629,630,632],"h2",{"id":631},"what-you-get","What you get",[618,634,635],{},"A signal is a question in English, attached to the events it applies to. When an event matches, the model reads it, answers with a probability for each option, and the answer is written back onto the event as a typed column:",[637,638],"signal-ask",{},[618,640,641,642,645],{},"The question is the whole configuration. There is no prompt to tune and no parser to write: a yes\u002Fno gives a boolean, a list of options gives one of them, an ordered rubric gives a level and a position. Every column carries the model's confidence, so ",[624,643,644],{},"WHERE signals.fault.value = 'upstream' AND signals.fault.confidence > 0.9"," is a query, not a guess.",[618,647,648],{},"Three things that gives you, that a rule on the event's fields could not:",[650,651,652,672,682],"ul",{},[653,654,655,659,660,663,664,667,668,671],"li",{},[656,657,658],"strong",{},"Every error gets a reason."," ",[624,661,662],{},"fault=upstream"," on the Stripe 502, ",[624,665,666],{},"fault=app"," on the null deref. Two 5xx that look identical on a status chart are two rows in a ",[624,669,670],{},"GROUP BY",". Over a week that is a number: how much of your error budget is yours.",[653,673,674,677,678,681],{},[656,675,676],{},"A 200 can be a failure."," A checkout that answered 200 and created no order, a webhook acknowledged and dropped, an agent looping on the same tool call. No field on those events says anything is wrong; a signal with ",[624,679,680],{},"keep"," carries them past sampling, and the next section shows that.",[653,683,684,687,688,691],{},[656,685,686],{},"It costs nothing you would notice."," A decision model answers in one short call, every due signal in it: 15 requests in the demo run came to 14 calls, 1,569 input tokens, $0.00007. ",[689,690,478],"a",{"href":479}," has what that becomes at your traffic.",[629,693,695],{"id":694},"add-your-first-signal","Add your first signal",[697,698,701,704,736],"prompt",{":actions":699,"description":700,"icon":465},"[\"copy\",\"cursor\",\"claude\"]","Add signals to an evlog app",[618,702,703],{},"Add @evlog\u002Fsignals to my evlog app.",[650,705,706,709,717,723,726,733],{},[653,707,708],{},"Install: pnpm add @evlog\u002Fsignals ai (ai 7.0.105 or later)",[653,710,711,712,716],{},"Define signals with defineSignal({ name, when, ask }) plus choice: {...} for a pick-one answer or score: ",[713,714,715],"span",{},"..."," for a rubric; keep: v => ... promotes the event past sampling",[653,718,719,720,722],{},"Register with createSignals({ signals }): on Nuxt or Nitro hook plugin.keep on 'evlog:emit:keep' and plugin.enrich on 'evlog:enrich' in a server plugin; on Next.js or standalone pass it in initLogger({ plugins: ",[713,721,715],{}," }); on Hono, Express, Fastify or Elysia pass it in the middleware's plugins option",[653,724,725],{},"Set AI_GATEWAY_API_KEY (default model typesafe-ai\u002Fjev through AI Gateway)",[653,727,728,729],{},"Verdicts land on event.signals.",[730,731,732],"name",{},".{ value, confidence } in stdout and in every drain",[653,734,735],{},"In tests, pass evaluate from scriptedEvaluate() in @evlog\u002Fsignals\u002Ftesting so no model is called",[618,737,738,739],{},"Docs: ",[689,740,741],{"href":741,"rel":742},"https:\u002F\u002Fwww.evlog.dev\u002Fuse-cases\u002Fsignals\u002Foverview",[743],"nofollow",[745,746,748,753,781,792,796,799,1024,1028,1042,2798,2802,2805,2994],"steps",{"level":747},"3",[749,750,752],"h3",{"id":751},"install","Install",[754,755,761],"pre",{"className":756,"code":757,"filename":758,"language":759,"meta":760,"style":760},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","pnpm add @evlog\u002Fsignals ai\n","Terminal","bash","",[624,762,763],{"__ignoreMap":760},[713,764,767,771,775,778],{"class":765,"line":766},"line",1,[713,768,770],{"class":769},"sBMFI","pnpm",[713,772,774],{"class":773},"sfazB"," add",[713,776,777],{"class":773}," @evlog\u002Fsignals",[713,779,780],{"class":773}," ai\n",[618,782,783,784,787,788,791],{},"The default model is ",[624,785,786],{},"typesafe-ai\u002Fjev"," through Vercel AI Gateway. Set ",[624,789,790],{},"AI_GATEWAY_API_KEY",", or nothing on Vercel, where OIDC is picked up.",[749,793,795],{"id":794},"write-the-question","Write the question",[618,797,798],{},"A signal is a name, a predicate that decides which events it applies to, and the question. This one labels every failure:",[754,800,805],{"className":801,"code":802,"filename":803,"language":804,"meta":760,"style":760},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { defineSignal } from '@evlog\u002Fsignals'\n\nexport const fault = defineSignal({\n  name: 'fault',\n  when: e => (e.status ?? 0) >= 400,\n  ask: 'Who is responsible for this failure?',\n  choice: {\n    client: 'Bad input, expired session, client mistake',\n    app: 'A bug or misconfiguration in our own code',\n    upstream: 'A third-party dependency failed',\n  },\n})\n","server\u002Fsignals.ts","typescript",[624,806,807,835,842,867,888,930,947,958,975,992,1009,1015],{"__ignoreMap":760},[713,808,809,813,817,821,824,827,830,832],{"class":765,"line":766},[713,810,812],{"class":811},"s7zQu","import",[713,814,816],{"class":815},"sMK4o"," {",[713,818,820],{"class":819},"sTEyZ"," defineSignal",[713,822,823],{"class":815}," }",[713,825,826],{"class":811}," from",[713,828,829],{"class":815}," '",[713,831,626],{"class":773},[713,833,834],{"class":815},"'\n",[713,836,838],{"class":765,"line":837},2,[713,839,841],{"emptyLinePlaceholder":840},true,"\n",[713,843,845,848,852,855,858,861,864],{"class":765,"line":844},3,[713,846,847],{"class":811},"export",[713,849,851],{"class":850},"spNyl"," const",[713,853,854],{"class":819}," fault ",[713,856,857],{"class":815},"=",[713,859,820],{"class":860},"s2Zo4",[713,862,863],{"class":819},"(",[713,865,866],{"class":815},"{\n",[713,868,870,874,877,879,882,885],{"class":765,"line":869},4,[713,871,873],{"class":872},"swJcz","  name",[713,875,876],{"class":815},":",[713,878,829],{"class":815},[713,880,881],{"class":773},"fault",[713,883,884],{"class":815},"'",[713,886,887],{"class":815},",\n",[713,889,891,894,896,900,903,906,909,912,915,919,922,925,928],{"class":765,"line":890},5,[713,892,893],{"class":860},"  when",[713,895,876],{"class":815},[713,897,899],{"class":898},"sHdIc"," e",[713,901,902],{"class":850}," =>",[713,904,905],{"class":819}," (e",[713,907,908],{"class":815},".",[713,910,911],{"class":819},"status ",[713,913,914],{"class":815},"??",[713,916,918],{"class":917},"sbssI"," 0",[713,920,921],{"class":819},") ",[713,923,924],{"class":815},">=",[713,926,927],{"class":917}," 400",[713,929,887],{"class":815},[713,931,933,936,938,940,943,945],{"class":765,"line":932},6,[713,934,935],{"class":872},"  ask",[713,937,876],{"class":815},[713,939,829],{"class":815},[713,941,942],{"class":773},"Who is responsible for this failure?",[713,944,884],{"class":815},[713,946,887],{"class":815},[713,948,950,953,955],{"class":765,"line":949},7,[713,951,952],{"class":872},"  choice",[713,954,876],{"class":815},[713,956,957],{"class":815}," {\n",[713,959,961,964,966,968,971,973],{"class":765,"line":960},8,[713,962,963],{"class":872},"    client",[713,965,876],{"class":815},[713,967,829],{"class":815},[713,969,970],{"class":773},"Bad input, expired session, client mistake",[713,972,884],{"class":815},[713,974,887],{"class":815},[713,976,978,981,983,985,988,990],{"class":765,"line":977},9,[713,979,980],{"class":872},"    app",[713,982,876],{"class":815},[713,984,829],{"class":815},[713,986,987],{"class":773},"A bug or misconfiguration in our own code",[713,989,884],{"class":815},[713,991,887],{"class":815},[713,993,995,998,1000,1002,1005,1007],{"class":765,"line":994},10,[713,996,997],{"class":872},"    upstream",[713,999,876],{"class":815},[713,1001,829],{"class":815},[713,1003,1004],{"class":773},"A third-party dependency failed",[713,1006,884],{"class":815},[713,1008,887],{"class":815},[713,1010,1012],{"class":765,"line":1011},11,[713,1013,1014],{"class":815},"  },\n",[713,1016,1018,1021],{"class":765,"line":1017},12,[713,1019,1020],{"class":815},"}",[713,1022,1023],{"class":819},")\n",[749,1025,1027],{"id":1026},"register-it","Register it",[618,1029,1030,1033,1034,1037,1038,1041],{},[624,1031,1032],{},"createSignals"," returns an evlog ",[689,1035,1036],{"href":523},"plugin",". Nuxt and Nitro expose the two hooks directly; every other integration takes it in a ",[624,1039,1040],{},"plugins"," array:",[1043,1044,1045,1226,1405,1510,1628,1804,1939,2049,2155,2265,2371,2477,2596,2702],"framework-tabs",{},[754,1046,1049],{"className":801,"code":1047,"filename":250,"language":804,"meta":1048,"style":760},"import { createSignals } from '@evlog\u002Fsignals'\nimport { fault } from '..\u002Fsignals'\n\nexport default defineNitroPlugin((nitroApp) => {\n  const plugin = createSignals({ signals: [fault] })\n  nitroApp.hooks.hook('evlog:emit:keep', plugin.keep)\n  nitroApp.hooks.hook('evlog:enrich', plugin.enrich)\n})\n","server\u002Fplugins\u002Fevlog-signals.ts",[624,1050,1051,1070,1090,1094,1118,1153,1188,1220],{"__ignoreMap":760},[713,1052,1053,1055,1057,1060,1062,1064,1066,1068],{"class":765,"line":766},[713,1054,812],{"class":811},[713,1056,816],{"class":815},[713,1058,1059],{"class":819}," createSignals",[713,1061,823],{"class":815},[713,1063,826],{"class":811},[713,1065,829],{"class":815},[713,1067,626],{"class":773},[713,1069,834],{"class":815},[713,1071,1072,1074,1076,1079,1081,1083,1085,1088],{"class":765,"line":837},[713,1073,812],{"class":811},[713,1075,816],{"class":815},[713,1077,1078],{"class":819}," fault",[713,1080,823],{"class":815},[713,1082,826],{"class":811},[713,1084,829],{"class":815},[713,1086,1087],{"class":773},"..\u002Fsignals",[713,1089,834],{"class":815},[713,1091,1092],{"class":765,"line":844},[713,1093,841],{"emptyLinePlaceholder":840},[713,1095,1096,1098,1101,1104,1106,1108,1111,1114,1116],{"class":765,"line":869},[713,1097,847],{"class":811},[713,1099,1100],{"class":811}," default",[713,1102,1103],{"class":860}," defineNitroPlugin",[713,1105,863],{"class":819},[713,1107,863],{"class":815},[713,1109,1110],{"class":898},"nitroApp",[713,1112,1113],{"class":815},")",[713,1115,902],{"class":850},[713,1117,957],{"class":815},[713,1119,1120,1123,1126,1129,1131,1133,1136,1139,1141,1144,1146,1149,1151],{"class":765,"line":890},[713,1121,1122],{"class":850},"  const",[713,1124,1125],{"class":819}," plugin",[713,1127,1128],{"class":815}," =",[713,1130,1059],{"class":860},[713,1132,863],{"class":872},[713,1134,1135],{"class":815},"{",[713,1137,1138],{"class":872}," signals",[713,1140,876],{"class":815},[713,1142,1143],{"class":872}," [",[713,1145,881],{"class":819},[713,1147,1148],{"class":872},"] ",[713,1150,1020],{"class":815},[713,1152,1023],{"class":872},[713,1154,1155,1158,1160,1163,1165,1168,1170,1172,1175,1177,1180,1182,1184,1186],{"class":765,"line":932},[713,1156,1157],{"class":819},"  nitroApp",[713,1159,908],{"class":815},[713,1161,1162],{"class":819},"hooks",[713,1164,908],{"class":815},[713,1166,1167],{"class":860},"hook",[713,1169,863],{"class":872},[713,1171,884],{"class":815},[713,1173,1174],{"class":773},"evlog:emit:keep",[713,1176,884],{"class":815},[713,1178,1179],{"class":815},",",[713,1181,1125],{"class":819},[713,1183,908],{"class":815},[713,1185,680],{"class":819},[713,1187,1023],{"class":872},[713,1189,1190,1192,1194,1196,1198,1200,1202,1204,1207,1209,1211,1213,1215,1218],{"class":765,"line":949},[713,1191,1157],{"class":819},[713,1193,908],{"class":815},[713,1195,1162],{"class":819},[713,1197,908],{"class":815},[713,1199,1167],{"class":860},[713,1201,863],{"class":872},[713,1203,884],{"class":815},[713,1205,1206],{"class":773},"evlog:enrich",[713,1208,884],{"class":815},[713,1210,1179],{"class":815},[713,1212,1125],{"class":819},[713,1214,908],{"class":815},[713,1216,1217],{"class":819},"enrich",[713,1219,1023],{"class":872},[713,1221,1222,1224],{"class":765,"line":960},[713,1223,1020],{"class":815},[713,1225,1023],{"class":819},[754,1227,1229],{"className":801,"code":1228,"filename":265,"language":804,"meta":1048,"style":760},"import { definePlugin } from 'nitro'\nimport { createSignals } from '@evlog\u002Fsignals'\nimport { fault } from '..\u002Fsignals'\n\nexport default definePlugin((nitroApp) => {\n  const plugin = createSignals({ signals: [fault] })\n  nitroApp.hooks.hook('evlog:emit:keep', plugin.keep)\n  nitroApp.hooks.hook('evlog:enrich', plugin.enrich)\n})\n",[624,1230,1231,1251,1269,1287,1291,1311,1339,1369,1399],{"__ignoreMap":760},[713,1232,1233,1235,1237,1240,1242,1244,1246,1249],{"class":765,"line":766},[713,1234,812],{"class":811},[713,1236,816],{"class":815},[713,1238,1239],{"class":819}," definePlugin",[713,1241,823],{"class":815},[713,1243,826],{"class":811},[713,1245,829],{"class":815},[713,1247,1248],{"class":773},"nitro",[713,1250,834],{"class":815},[713,1252,1253,1255,1257,1259,1261,1263,1265,1267],{"class":765,"line":837},[713,1254,812],{"class":811},[713,1256,816],{"class":815},[713,1258,1059],{"class":819},[713,1260,823],{"class":815},[713,1262,826],{"class":811},[713,1264,829],{"class":815},[713,1266,626],{"class":773},[713,1268,834],{"class":815},[713,1270,1271,1273,1275,1277,1279,1281,1283,1285],{"class":765,"line":844},[713,1272,812],{"class":811},[713,1274,816],{"class":815},[713,1276,1078],{"class":819},[713,1278,823],{"class":815},[713,1280,826],{"class":811},[713,1282,829],{"class":815},[713,1284,1087],{"class":773},[713,1286,834],{"class":815},[713,1288,1289],{"class":765,"line":869},[713,1290,841],{"emptyLinePlaceholder":840},[713,1292,1293,1295,1297,1299,1301,1303,1305,1307,1309],{"class":765,"line":890},[713,1294,847],{"class":811},[713,1296,1100],{"class":811},[713,1298,1239],{"class":860},[713,1300,863],{"class":819},[713,1302,863],{"class":815},[713,1304,1110],{"class":898},[713,1306,1113],{"class":815},[713,1308,902],{"class":850},[713,1310,957],{"class":815},[713,1312,1313,1315,1317,1319,1321,1323,1325,1327,1329,1331,1333,1335,1337],{"class":765,"line":932},[713,1314,1122],{"class":850},[713,1316,1125],{"class":819},[713,1318,1128],{"class":815},[713,1320,1059],{"class":860},[713,1322,863],{"class":872},[713,1324,1135],{"class":815},[713,1326,1138],{"class":872},[713,1328,876],{"class":815},[713,1330,1143],{"class":872},[713,1332,881],{"class":819},[713,1334,1148],{"class":872},[713,1336,1020],{"class":815},[713,1338,1023],{"class":872},[713,1340,1341,1343,1345,1347,1349,1351,1353,1355,1357,1359,1361,1363,1365,1367],{"class":765,"line":949},[713,1342,1157],{"class":819},[713,1344,908],{"class":815},[713,1346,1162],{"class":819},[713,1348,908],{"class":815},[713,1350,1167],{"class":860},[713,1352,863],{"class":872},[713,1354,884],{"class":815},[713,1356,1174],{"class":773},[713,1358,884],{"class":815},[713,1360,1179],{"class":815},[713,1362,1125],{"class":819},[713,1364,908],{"class":815},[713,1366,680],{"class":819},[713,1368,1023],{"class":872},[713,1370,1371,1373,1375,1377,1379,1381,1383,1385,1387,1389,1391,1393,1395,1397],{"class":765,"line":960},[713,1372,1157],{"class":819},[713,1374,908],{"class":815},[713,1376,1162],{"class":819},[713,1378,908],{"class":815},[713,1380,1167],{"class":860},[713,1382,863],{"class":872},[713,1384,884],{"class":815},[713,1386,1206],{"class":773},[713,1388,884],{"class":815},[713,1390,1179],{"class":815},[713,1392,1125],{"class":819},[713,1394,908],{"class":815},[713,1396,1217],{"class":819},[713,1398,1023],{"class":872},[713,1400,1401,1403],{"class":765,"line":977},[713,1402,1020],{"class":815},[713,1404,1023],{"class":819},[754,1406,1409],{"className":801,"code":1407,"filename":255,"language":804,"meta":1408,"style":760},"import { initLogger } from 'evlog'\nimport { createSignals } from '@evlog\u002Fsignals'\nimport { fault } from '.\u002Fsignals'\n\ninitLogger({ plugins: [createSignals({ signals: [fault] })] })\n","lib\u002Fevlog.ts",[624,1410,1411,1431,1449,1468,1472],{"__ignoreMap":760},[713,1412,1413,1415,1417,1420,1422,1424,1426,1429],{"class":765,"line":766},[713,1414,812],{"class":811},[713,1416,816],{"class":815},[713,1418,1419],{"class":819}," initLogger",[713,1421,823],{"class":815},[713,1423,826],{"class":811},[713,1425,829],{"class":815},[713,1427,1428],{"class":773},"evlog",[713,1430,834],{"class":815},[713,1432,1433,1435,1437,1439,1441,1443,1445,1447],{"class":765,"line":837},[713,1434,812],{"class":811},[713,1436,816],{"class":815},[713,1438,1059],{"class":819},[713,1440,823],{"class":815},[713,1442,826],{"class":811},[713,1444,829],{"class":815},[713,1446,626],{"class":773},[713,1448,834],{"class":815},[713,1450,1451,1453,1455,1457,1459,1461,1463,1466],{"class":765,"line":844},[713,1452,812],{"class":811},[713,1454,816],{"class":815},[713,1456,1078],{"class":819},[713,1458,823],{"class":815},[713,1460,826],{"class":811},[713,1462,829],{"class":815},[713,1464,1465],{"class":773},".\u002Fsignals",[713,1467,834],{"class":815},[713,1469,1470],{"class":765,"line":869},[713,1471,841],{"emptyLinePlaceholder":840},[713,1473,1474,1477,1479,1481,1484,1486,1488,1490,1492,1494,1496,1498,1501,1503,1506,1508],{"class":765,"line":890},[713,1475,1476],{"class":860},"initLogger",[713,1478,863],{"class":819},[713,1480,1135],{"class":815},[713,1482,1483],{"class":872}," plugins",[713,1485,876],{"class":815},[713,1487,1143],{"class":819},[713,1489,1032],{"class":860},[713,1491,863],{"class":819},[713,1493,1135],{"class":815},[713,1495,1138],{"class":872},[713,1497,876],{"class":815},[713,1499,1500],{"class":819}," [fault] ",[713,1502,1020],{"class":815},[713,1504,1505],{"class":819},")] ",[713,1507,1020],{"class":815},[713,1509,1023],{"class":819},[754,1511,1514],{"className":801,"code":1512,"filename":260,"language":804,"meta":1513,"style":760},"import { createEvlogHooks } from 'evlog\u002Fsveltekit'\nimport { createSignals } from '@evlog\u002Fsignals'\nimport { fault } from '.\u002Fsignals'\n\nexport const { handle, handleError } = createEvlogHooks({ plugins: [createSignals({ signals: [fault] })] })\n","src\u002Fhooks.server.ts",[624,1515,1516,1536,1554,1572,1576],{"__ignoreMap":760},[713,1517,1518,1520,1522,1525,1527,1529,1531,1534],{"class":765,"line":766},[713,1519,812],{"class":811},[713,1521,816],{"class":815},[713,1523,1524],{"class":819}," createEvlogHooks",[713,1526,823],{"class":815},[713,1528,826],{"class":811},[713,1530,829],{"class":815},[713,1532,1533],{"class":773},"evlog\u002Fsveltekit",[713,1535,834],{"class":815},[713,1537,1538,1540,1542,1544,1546,1548,1550,1552],{"class":765,"line":837},[713,1539,812],{"class":811},[713,1541,816],{"class":815},[713,1543,1059],{"class":819},[713,1545,823],{"class":815},[713,1547,826],{"class":811},[713,1549,829],{"class":815},[713,1551,626],{"class":773},[713,1553,834],{"class":815},[713,1555,1556,1558,1560,1562,1564,1566,1568,1570],{"class":765,"line":844},[713,1557,812],{"class":811},[713,1559,816],{"class":815},[713,1561,1078],{"class":819},[713,1563,823],{"class":815},[713,1565,826],{"class":811},[713,1567,829],{"class":815},[713,1569,1465],{"class":773},[713,1571,834],{"class":815},[713,1573,1574],{"class":765,"line":869},[713,1575,841],{"emptyLinePlaceholder":840},[713,1577,1578,1580,1582,1584,1587,1589,1592,1594,1596,1598,1600,1602,1604,1606,1608,1610,1612,1614,1616,1618,1620,1622,1624,1626],{"class":765,"line":890},[713,1579,847],{"class":811},[713,1581,851],{"class":850},[713,1583,816],{"class":815},[713,1585,1586],{"class":819}," handle",[713,1588,1179],{"class":815},[713,1590,1591],{"class":819}," handleError ",[713,1593,1020],{"class":815},[713,1595,1128],{"class":815},[713,1597,1524],{"class":860},[713,1599,863],{"class":819},[713,1601,1135],{"class":815},[713,1603,1483],{"class":872},[713,1605,876],{"class":815},[713,1607,1143],{"class":819},[713,1609,1032],{"class":860},[713,1611,863],{"class":819},[713,1613,1135],{"class":815},[713,1615,1138],{"class":872},[713,1617,876],{"class":815},[713,1619,1500],{"class":819},[713,1621,1020],{"class":815},[713,1623,1505],{"class":819},[713,1625,1020],{"class":815},[713,1627,1023],{"class":819},[754,1629,1630],{"className":801,"code":1228,"filename":270,"language":804,"meta":1048,"style":760},[624,1631,1632,1650,1668,1686,1690,1710,1738,1768,1798],{"__ignoreMap":760},[713,1633,1634,1636,1638,1640,1642,1644,1646,1648],{"class":765,"line":766},[713,1635,812],{"class":811},[713,1637,816],{"class":815},[713,1639,1239],{"class":819},[713,1641,823],{"class":815},[713,1643,826],{"class":811},[713,1645,829],{"class":815},[713,1647,1248],{"class":773},[713,1649,834],{"class":815},[713,1651,1652,1654,1656,1658,1660,1662,1664,1666],{"class":765,"line":837},[713,1653,812],{"class":811},[713,1655,816],{"class":815},[713,1657,1059],{"class":819},[713,1659,823],{"class":815},[713,1661,826],{"class":811},[713,1663,829],{"class":815},[713,1665,626],{"class":773},[713,1667,834],{"class":815},[713,1669,1670,1672,1674,1676,1678,1680,1682,1684],{"class":765,"line":844},[713,1671,812],{"class":811},[713,1673,816],{"class":815},[713,1675,1078],{"class":819},[713,1677,823],{"class":815},[713,1679,826],{"class":811},[713,1681,829],{"class":815},[713,1683,1087],{"class":773},[713,1685,834],{"class":815},[713,1687,1688],{"class":765,"line":869},[713,1689,841],{"emptyLinePlaceholder":840},[713,1691,1692,1694,1696,1698,1700,1702,1704,1706,1708],{"class":765,"line":890},[713,1693,847],{"class":811},[713,1695,1100],{"class":811},[713,1697,1239],{"class":860},[713,1699,863],{"class":819},[713,1701,863],{"class":815},[713,1703,1110],{"class":898},[713,1705,1113],{"class":815},[713,1707,902],{"class":850},[713,1709,957],{"class":815},[713,1711,1712,1714,1716,1718,1720,1722,1724,1726,1728,1730,1732,1734,1736],{"class":765,"line":932},[713,1713,1122],{"class":850},[713,1715,1125],{"class":819},[713,1717,1128],{"class":815},[713,1719,1059],{"class":860},[713,1721,863],{"class":872},[713,1723,1135],{"class":815},[713,1725,1138],{"class":872},[713,1727,876],{"class":815},[713,1729,1143],{"class":872},[713,1731,881],{"class":819},[713,1733,1148],{"class":872},[713,1735,1020],{"class":815},[713,1737,1023],{"class":872},[713,1739,1740,1742,1744,1746,1748,1750,1752,1754,1756,1758,1760,1762,1764,1766],{"class":765,"line":949},[713,1741,1157],{"class":819},[713,1743,908],{"class":815},[713,1745,1162],{"class":819},[713,1747,908],{"class":815},[713,1749,1167],{"class":860},[713,1751,863],{"class":872},[713,1753,884],{"class":815},[713,1755,1174],{"class":773},[713,1757,884],{"class":815},[713,1759,1179],{"class":815},[713,1761,1125],{"class":819},[713,1763,908],{"class":815},[713,1765,680],{"class":819},[713,1767,1023],{"class":872},[713,1769,1770,1772,1774,1776,1778,1780,1782,1784,1786,1788,1790,1792,1794,1796],{"class":765,"line":960},[713,1771,1157],{"class":819},[713,1773,908],{"class":815},[713,1775,1162],{"class":819},[713,1777,908],{"class":815},[713,1779,1167],{"class":860},[713,1781,863],{"class":872},[713,1783,884],{"class":815},[713,1785,1206],{"class":773},[713,1787,884],{"class":815},[713,1789,1179],{"class":815},[713,1791,1125],{"class":819},[713,1793,908],{"class":815},[713,1795,1217],{"class":819},[713,1797,1023],{"class":872},[713,1799,1800,1802],{"class":765,"line":977},[713,1801,1020],{"class":815},[713,1803,1023],{"class":819},[754,1805,1808],{"className":801,"code":1806,"filename":300,"language":804,"meta":1807,"style":760},"import { evlog } from 'evlog\u002Freact-router'\nimport { createSignals } from '@evlog\u002Fsignals'\nimport { fault } from '.\u002Fsignals'\n\nexport const middleware: Route.MiddlewareFunction[] = [\n  evlog({ plugins: [createSignals({ signals: [fault] })] }),\n]\n","app\u002Froot.tsx",[624,1809,1810,1830,1848,1866,1870,1897,1934],{"__ignoreMap":760},[713,1811,1812,1814,1816,1819,1821,1823,1825,1828],{"class":765,"line":766},[713,1813,812],{"class":811},[713,1815,816],{"class":815},[713,1817,1818],{"class":819}," evlog",[713,1820,823],{"class":815},[713,1822,826],{"class":811},[713,1824,829],{"class":815},[713,1826,1827],{"class":773},"evlog\u002Freact-router",[713,1829,834],{"class":815},[713,1831,1832,1834,1836,1838,1840,1842,1844,1846],{"class":765,"line":837},[713,1833,812],{"class":811},[713,1835,816],{"class":815},[713,1837,1059],{"class":819},[713,1839,823],{"class":815},[713,1841,826],{"class":811},[713,1843,829],{"class":815},[713,1845,626],{"class":773},[713,1847,834],{"class":815},[713,1849,1850,1852,1854,1856,1858,1860,1862,1864],{"class":765,"line":844},[713,1851,812],{"class":811},[713,1853,816],{"class":815},[713,1855,1078],{"class":819},[713,1857,823],{"class":815},[713,1859,826],{"class":811},[713,1861,829],{"class":815},[713,1863,1465],{"class":773},[713,1865,834],{"class":815},[713,1867,1868],{"class":765,"line":869},[713,1869,841],{"emptyLinePlaceholder":840},[713,1871,1872,1874,1876,1879,1881,1884,1886,1889,1892,1894],{"class":765,"line":890},[713,1873,847],{"class":811},[713,1875,851],{"class":850},[713,1877,1878],{"class":819}," middleware",[713,1880,876],{"class":815},[713,1882,1883],{"class":769}," Route",[713,1885,908],{"class":815},[713,1887,1888],{"class":769},"MiddlewareFunction",[713,1890,1891],{"class":819},"[] ",[713,1893,857],{"class":815},[713,1895,1896],{"class":819}," [\n",[713,1898,1899,1902,1904,1906,1908,1910,1912,1914,1916,1918,1920,1922,1924,1926,1928,1930,1932],{"class":765,"line":932},[713,1900,1901],{"class":860},"  evlog",[713,1903,863],{"class":819},[713,1905,1135],{"class":815},[713,1907,1483],{"class":872},[713,1909,876],{"class":815},[713,1911,1143],{"class":819},[713,1913,1032],{"class":860},[713,1915,863],{"class":819},[713,1917,1135],{"class":815},[713,1919,1138],{"class":872},[713,1921,876],{"class":815},[713,1923,1500],{"class":819},[713,1925,1020],{"class":815},[713,1927,1505],{"class":819},[713,1929,1020],{"class":815},[713,1931,1113],{"class":819},[713,1933,887],{"class":815},[713,1935,1936],{"class":765,"line":949},[713,1937,1938],{"class":819},"]\n",[754,1940,1943],{"className":801,"code":1941,"filename":285,"language":804,"meta":1942,"style":760},"import { evlog } from 'evlog\u002Fhono'\nimport { createSignals } from '@evlog\u002Fsignals'\nimport { fault } from '.\u002Fsignals'\n\napp.use(evlog({ plugins: [createSignals({ signals: [fault] })] }))\n","src\u002Findex.ts",[624,1944,1945,1964,1982,2000,2004],{"__ignoreMap":760},[713,1946,1947,1949,1951,1953,1955,1957,1959,1962],{"class":765,"line":766},[713,1948,812],{"class":811},[713,1950,816],{"class":815},[713,1952,1818],{"class":819},[713,1954,823],{"class":815},[713,1956,826],{"class":811},[713,1958,829],{"class":815},[713,1960,1961],{"class":773},"evlog\u002Fhono",[713,1963,834],{"class":815},[713,1965,1966,1968,1970,1972,1974,1976,1978,1980],{"class":765,"line":837},[713,1967,812],{"class":811},[713,1969,816],{"class":815},[713,1971,1059],{"class":819},[713,1973,823],{"class":815},[713,1975,826],{"class":811},[713,1977,829],{"class":815},[713,1979,626],{"class":773},[713,1981,834],{"class":815},[713,1983,1984,1986,1988,1990,1992,1994,1996,1998],{"class":765,"line":844},[713,1985,812],{"class":811},[713,1987,816],{"class":815},[713,1989,1078],{"class":819},[713,1991,823],{"class":815},[713,1993,826],{"class":811},[713,1995,829],{"class":815},[713,1997,1465],{"class":773},[713,1999,834],{"class":815},[713,2001,2002],{"class":765,"line":869},[713,2003,841],{"emptyLinePlaceholder":840},[713,2005,2006,2009,2011,2014,2016,2018,2020,2022,2024,2026,2028,2030,2032,2034,2036,2038,2040,2042,2044,2046],{"class":765,"line":890},[713,2007,2008],{"class":819},"app",[713,2010,908],{"class":815},[713,2012,2013],{"class":860},"use",[713,2015,863],{"class":819},[713,2017,1428],{"class":860},[713,2019,863],{"class":819},[713,2021,1135],{"class":815},[713,2023,1483],{"class":872},[713,2025,876],{"class":815},[713,2027,1143],{"class":819},[713,2029,1032],{"class":860},[713,2031,863],{"class":819},[713,2033,1135],{"class":815},[713,2035,1138],{"class":872},[713,2037,876],{"class":815},[713,2039,1500],{"class":819},[713,2041,1020],{"class":815},[713,2043,1505],{"class":819},[713,2045,1020],{"class":815},[713,2047,2048],{"class":819},"))\n",[754,2050,2052],{"className":801,"code":2051,"filename":280,"language":804,"meta":1942,"style":760},"import { evlog } from 'evlog\u002Fexpress'\nimport { createSignals } from '@evlog\u002Fsignals'\nimport { fault } from '.\u002Fsignals'\n\napp.use(evlog({ plugins: [createSignals({ signals: [fault] })] }))\n",[624,2053,2054,2073,2091,2109,2113],{"__ignoreMap":760},[713,2055,2056,2058,2060,2062,2064,2066,2068,2071],{"class":765,"line":766},[713,2057,812],{"class":811},[713,2059,816],{"class":815},[713,2061,1818],{"class":819},[713,2063,823],{"class":815},[713,2065,826],{"class":811},[713,2067,829],{"class":815},[713,2069,2070],{"class":773},"evlog\u002Fexpress",[713,2072,834],{"class":815},[713,2074,2075,2077,2079,2081,2083,2085,2087,2089],{"class":765,"line":837},[713,2076,812],{"class":811},[713,2078,816],{"class":815},[713,2080,1059],{"class":819},[713,2082,823],{"class":815},[713,2084,826],{"class":811},[713,2086,829],{"class":815},[713,2088,626],{"class":773},[713,2090,834],{"class":815},[713,2092,2093,2095,2097,2099,2101,2103,2105,2107],{"class":765,"line":844},[713,2094,812],{"class":811},[713,2096,816],{"class":815},[713,2098,1078],{"class":819},[713,2100,823],{"class":815},[713,2102,826],{"class":811},[713,2104,829],{"class":815},[713,2106,1465],{"class":773},[713,2108,834],{"class":815},[713,2110,2111],{"class":765,"line":869},[713,2112,841],{"emptyLinePlaceholder":840},[713,2114,2115,2117,2119,2121,2123,2125,2127,2129,2131,2133,2135,2137,2139,2141,2143,2145,2147,2149,2151,2153],{"class":765,"line":890},[713,2116,2008],{"class":819},[713,2118,908],{"class":815},[713,2120,2013],{"class":860},[713,2122,863],{"class":819},[713,2124,1428],{"class":860},[713,2126,863],{"class":819},[713,2128,1135],{"class":815},[713,2130,1483],{"class":872},[713,2132,876],{"class":815},[713,2134,1143],{"class":819},[713,2136,1032],{"class":860},[713,2138,863],{"class":819},[713,2140,1135],{"class":815},[713,2142,1138],{"class":872},[713,2144,876],{"class":815},[713,2146,1500],{"class":819},[713,2148,1020],{"class":815},[713,2150,1505],{"class":819},[713,2152,1020],{"class":815},[713,2154,2048],{"class":819},[754,2156,2158],{"className":801,"code":2157,"filename":290,"language":804,"meta":1942,"style":760},"import { evlog } from 'evlog\u002Ffastify'\nimport { createSignals } from '@evlog\u002Fsignals'\nimport { fault } from '.\u002Fsignals'\n\nawait app.register(evlog, { plugins: [createSignals({ signals: [fault] })] })\n",[624,2159,2160,2179,2197,2215,2219],{"__ignoreMap":760},[713,2161,2162,2164,2166,2168,2170,2172,2174,2177],{"class":765,"line":766},[713,2163,812],{"class":811},[713,2165,816],{"class":815},[713,2167,1818],{"class":819},[713,2169,823],{"class":815},[713,2171,826],{"class":811},[713,2173,829],{"class":815},[713,2175,2176],{"class":773},"evlog\u002Ffastify",[713,2178,834],{"class":815},[713,2180,2181,2183,2185,2187,2189,2191,2193,2195],{"class":765,"line":837},[713,2182,812],{"class":811},[713,2184,816],{"class":815},[713,2186,1059],{"class":819},[713,2188,823],{"class":815},[713,2190,826],{"class":811},[713,2192,829],{"class":815},[713,2194,626],{"class":773},[713,2196,834],{"class":815},[713,2198,2199,2201,2203,2205,2207,2209,2211,2213],{"class":765,"line":844},[713,2200,812],{"class":811},[713,2202,816],{"class":815},[713,2204,1078],{"class":819},[713,2206,823],{"class":815},[713,2208,826],{"class":811},[713,2210,829],{"class":815},[713,2212,1465],{"class":773},[713,2214,834],{"class":815},[713,2216,2217],{"class":765,"line":869},[713,2218,841],{"emptyLinePlaceholder":840},[713,2220,2221,2224,2227,2229,2232,2235,2237,2239,2241,2243,2245,2247,2249,2251,2253,2255,2257,2259,2261,2263],{"class":765,"line":890},[713,2222,2223],{"class":811},"await",[713,2225,2226],{"class":819}," app",[713,2228,908],{"class":815},[713,2230,2231],{"class":860},"register",[713,2233,2234],{"class":819},"(evlog",[713,2236,1179],{"class":815},[713,2238,816],{"class":815},[713,2240,1483],{"class":872},[713,2242,876],{"class":815},[713,2244,1143],{"class":819},[713,2246,1032],{"class":860},[713,2248,863],{"class":819},[713,2250,1135],{"class":815},[713,2252,1138],{"class":872},[713,2254,876],{"class":815},[713,2256,1500],{"class":819},[713,2258,1020],{"class":815},[713,2260,1505],{"class":819},[713,2262,1020],{"class":815},[713,2264,1023],{"class":819},[754,2266,2268],{"className":801,"code":2267,"filename":295,"language":804,"meta":1942,"style":760},"import { evlog } from 'evlog\u002Felysia'\nimport { createSignals } from '@evlog\u002Fsignals'\nimport { fault } from '.\u002Fsignals'\n\napp.use(evlog({ plugins: [createSignals({ signals: [fault] })] }))\n",[624,2269,2270,2289,2307,2325,2329],{"__ignoreMap":760},[713,2271,2272,2274,2276,2278,2280,2282,2284,2287],{"class":765,"line":766},[713,2273,812],{"class":811},[713,2275,816],{"class":815},[713,2277,1818],{"class":819},[713,2279,823],{"class":815},[713,2281,826],{"class":811},[713,2283,829],{"class":815},[713,2285,2286],{"class":773},"evlog\u002Felysia",[713,2288,834],{"class":815},[713,2290,2291,2293,2295,2297,2299,2301,2303,2305],{"class":765,"line":837},[713,2292,812],{"class":811},[713,2294,816],{"class":815},[713,2296,1059],{"class":819},[713,2298,823],{"class":815},[713,2300,826],{"class":811},[713,2302,829],{"class":815},[713,2304,626],{"class":773},[713,2306,834],{"class":815},[713,2308,2309,2311,2313,2315,2317,2319,2321,2323],{"class":765,"line":844},[713,2310,812],{"class":811},[713,2312,816],{"class":815},[713,2314,1078],{"class":819},[713,2316,823],{"class":815},[713,2318,826],{"class":811},[713,2320,829],{"class":815},[713,2322,1465],{"class":773},[713,2324,834],{"class":815},[713,2326,2327],{"class":765,"line":869},[713,2328,841],{"emptyLinePlaceholder":840},[713,2330,2331,2333,2335,2337,2339,2341,2343,2345,2347,2349,2351,2353,2355,2357,2359,2361,2363,2365,2367,2369],{"class":765,"line":890},[713,2332,2008],{"class":819},[713,2334,908],{"class":815},[713,2336,2013],{"class":860},[713,2338,863],{"class":819},[713,2340,1428],{"class":860},[713,2342,863],{"class":819},[713,2344,1135],{"class":815},[713,2346,1483],{"class":872},[713,2348,876],{"class":815},[713,2350,1143],{"class":819},[713,2352,1032],{"class":860},[713,2354,863],{"class":819},[713,2356,1135],{"class":815},[713,2358,1138],{"class":872},[713,2360,876],{"class":815},[713,2362,1500],{"class":819},[713,2364,1020],{"class":815},[713,2366,1505],{"class":819},[713,2368,1020],{"class":815},[713,2370,2048],{"class":819},[754,2372,2375],{"className":801,"code":2373,"filename":275,"language":804,"meta":2374,"style":760},"import { EvlogModule } from 'evlog\u002Fnestjs'\nimport { createSignals } from '@evlog\u002Fsignals'\nimport { fault } from '.\u002Fsignals'\n\nEvlogModule.forRoot({ plugins: [createSignals({ signals: [fault] })] })\n","src\u002Fapp.module.ts",[624,2376,2377,2397,2415,2433,2437],{"__ignoreMap":760},[713,2378,2379,2381,2383,2386,2388,2390,2392,2395],{"class":765,"line":766},[713,2380,812],{"class":811},[713,2382,816],{"class":815},[713,2384,2385],{"class":819}," EvlogModule",[713,2387,823],{"class":815},[713,2389,826],{"class":811},[713,2391,829],{"class":815},[713,2393,2394],{"class":773},"evlog\u002Fnestjs",[713,2396,834],{"class":815},[713,2398,2399,2401,2403,2405,2407,2409,2411,2413],{"class":765,"line":837},[713,2400,812],{"class":811},[713,2402,816],{"class":815},[713,2404,1059],{"class":819},[713,2406,823],{"class":815},[713,2408,826],{"class":811},[713,2410,829],{"class":815},[713,2412,626],{"class":773},[713,2414,834],{"class":815},[713,2416,2417,2419,2421,2423,2425,2427,2429,2431],{"class":765,"line":844},[713,2418,812],{"class":811},[713,2420,816],{"class":815},[713,2422,1078],{"class":819},[713,2424,823],{"class":815},[713,2426,826],{"class":811},[713,2428,829],{"class":815},[713,2430,1465],{"class":773},[713,2432,834],{"class":815},[713,2434,2435],{"class":765,"line":869},[713,2436,841],{"emptyLinePlaceholder":840},[713,2438,2439,2442,2444,2447,2449,2451,2453,2455,2457,2459,2461,2463,2465,2467,2469,2471,2473,2475],{"class":765,"line":890},[713,2440,2441],{"class":819},"EvlogModule",[713,2443,908],{"class":815},[713,2445,2446],{"class":860},"forRoot",[713,2448,863],{"class":819},[713,2450,1135],{"class":815},[713,2452,1483],{"class":872},[713,2454,876],{"class":815},[713,2456,1143],{"class":819},[713,2458,1032],{"class":860},[713,2460,863],{"class":819},[713,2462,1135],{"class":815},[713,2464,1138],{"class":872},[713,2466,876],{"class":815},[713,2468,1500],{"class":819},[713,2470,1020],{"class":815},[713,2472,1505],{"class":819},[713,2474,1020],{"class":815},[713,2476,1023],{"class":819},[754,2478,2481],{"className":801,"code":2479,"filename":319,"language":804,"meta":2480,"style":760},"import { withEvlog } from 'evlog\u002Forpc'\nimport { createSignals } from '@evlog\u002Fsignals'\nimport { fault } from '.\u002Fsignals'\n\nconst handler = withEvlog(new RPCHandler(router), { plugins: [createSignals({ signals: [fault] })] })\n","server\u002Forpc.ts",[624,2482,2483,2503,2521,2539,2543],{"__ignoreMap":760},[713,2484,2485,2487,2489,2492,2494,2496,2498,2501],{"class":765,"line":766},[713,2486,812],{"class":811},[713,2488,816],{"class":815},[713,2490,2491],{"class":819}," withEvlog",[713,2493,823],{"class":815},[713,2495,826],{"class":811},[713,2497,829],{"class":815},[713,2499,2500],{"class":773},"evlog\u002Forpc",[713,2502,834],{"class":815},[713,2504,2505,2507,2509,2511,2513,2515,2517,2519],{"class":765,"line":837},[713,2506,812],{"class":811},[713,2508,816],{"class":815},[713,2510,1059],{"class":819},[713,2512,823],{"class":815},[713,2514,826],{"class":811},[713,2516,829],{"class":815},[713,2518,626],{"class":773},[713,2520,834],{"class":815},[713,2522,2523,2525,2527,2529,2531,2533,2535,2537],{"class":765,"line":844},[713,2524,812],{"class":811},[713,2526,816],{"class":815},[713,2528,1078],{"class":819},[713,2530,823],{"class":815},[713,2532,826],{"class":811},[713,2534,829],{"class":815},[713,2536,1465],{"class":773},[713,2538,834],{"class":815},[713,2540,2541],{"class":765,"line":869},[713,2542,841],{"emptyLinePlaceholder":840},[713,2544,2545,2548,2551,2553,2555,2557,2560,2563,2566,2568,2570,2572,2574,2576,2578,2580,2582,2584,2586,2588,2590,2592,2594],{"class":765,"line":890},[713,2546,2547],{"class":850},"const",[713,2549,2550],{"class":819}," handler ",[713,2552,857],{"class":815},[713,2554,2491],{"class":860},[713,2556,863],{"class":819},[713,2558,2559],{"class":815},"new",[713,2561,2562],{"class":860}," RPCHandler",[713,2564,2565],{"class":819},"(router)",[713,2567,1179],{"class":815},[713,2569,816],{"class":815},[713,2571,1483],{"class":872},[713,2573,876],{"class":815},[713,2575,1143],{"class":819},[713,2577,1032],{"class":860},[713,2579,863],{"class":819},[713,2581,1135],{"class":815},[713,2583,1138],{"class":872},[713,2585,876],{"class":815},[713,2587,1500],{"class":819},[713,2589,1020],{"class":815},[713,2591,1505],{"class":819},[713,2593,1020],{"class":815},[713,2595,1023],{"class":819},[754,2597,2600],{"className":801,"code":2598,"filename":305,"language":804,"meta":2599,"style":760},"import { withEvlog } from 'evlog\u002Fworkers'\nimport { createSignals } from '@evlog\u002Fsignals'\nimport { fault } from '.\u002Fsignals'\n\nexport default withEvlog(handler, { plugins: [createSignals({ signals: [fault] })] })\n","src\u002Fworker.ts",[624,2601,2602,2621,2639,2657,2661],{"__ignoreMap":760},[713,2603,2604,2606,2608,2610,2612,2614,2616,2619],{"class":765,"line":766},[713,2605,812],{"class":811},[713,2607,816],{"class":815},[713,2609,2491],{"class":819},[713,2611,823],{"class":815},[713,2613,826],{"class":811},[713,2615,829],{"class":815},[713,2617,2618],{"class":773},"evlog\u002Fworkers",[713,2620,834],{"class":815},[713,2622,2623,2625,2627,2629,2631,2633,2635,2637],{"class":765,"line":837},[713,2624,812],{"class":811},[713,2626,816],{"class":815},[713,2628,1059],{"class":819},[713,2630,823],{"class":815},[713,2632,826],{"class":811},[713,2634,829],{"class":815},[713,2636,626],{"class":773},[713,2638,834],{"class":815},[713,2640,2641,2643,2645,2647,2649,2651,2653,2655],{"class":765,"line":844},[713,2642,812],{"class":811},[713,2644,816],{"class":815},[713,2646,1078],{"class":819},[713,2648,823],{"class":815},[713,2650,826],{"class":811},[713,2652,829],{"class":815},[713,2654,1465],{"class":773},[713,2656,834],{"class":815},[713,2658,2659],{"class":765,"line":869},[713,2660,841],{"emptyLinePlaceholder":840},[713,2662,2663,2665,2667,2669,2672,2674,2676,2678,2680,2682,2684,2686,2688,2690,2692,2694,2696,2698,2700],{"class":765,"line":890},[713,2664,847],{"class":811},[713,2666,1100],{"class":811},[713,2668,2491],{"class":860},[713,2670,2671],{"class":819},"(handler",[713,2673,1179],{"class":815},[713,2675,816],{"class":815},[713,2677,1483],{"class":872},[713,2679,876],{"class":815},[713,2681,1143],{"class":819},[713,2683,1032],{"class":860},[713,2685,863],{"class":819},[713,2687,1135],{"class":815},[713,2689,1138],{"class":872},[713,2691,876],{"class":815},[713,2693,1500],{"class":819},[713,2695,1020],{"class":815},[713,2697,1505],{"class":819},[713,2699,1020],{"class":815},[713,2701,1023],{"class":819},[754,2703,2704],{"className":801,"code":1407,"filename":310,"language":804,"meta":760,"style":760},[624,2705,2706,2724,2742,2760,2764],{"__ignoreMap":760},[713,2707,2708,2710,2712,2714,2716,2718,2720,2722],{"class":765,"line":766},[713,2709,812],{"class":811},[713,2711,816],{"class":815},[713,2713,1419],{"class":819},[713,2715,823],{"class":815},[713,2717,826],{"class":811},[713,2719,829],{"class":815},[713,2721,1428],{"class":773},[713,2723,834],{"class":815},[713,2725,2726,2728,2730,2732,2734,2736,2738,2740],{"class":765,"line":837},[713,2727,812],{"class":811},[713,2729,816],{"class":815},[713,2731,1059],{"class":819},[713,2733,823],{"class":815},[713,2735,826],{"class":811},[713,2737,829],{"class":815},[713,2739,626],{"class":773},[713,2741,834],{"class":815},[713,2743,2744,2746,2748,2750,2752,2754,2756,2758],{"class":765,"line":844},[713,2745,812],{"class":811},[713,2747,816],{"class":815},[713,2749,1078],{"class":819},[713,2751,823],{"class":815},[713,2753,826],{"class":811},[713,2755,829],{"class":815},[713,2757,1465],{"class":773},[713,2759,834],{"class":815},[713,2761,2762],{"class":765,"line":869},[713,2763,841],{"emptyLinePlaceholder":840},[713,2765,2766,2768,2770,2772,2774,2776,2778,2780,2782,2784,2786,2788,2790,2792,2794,2796],{"class":765,"line":890},[713,2767,1476],{"class":860},[713,2769,863],{"class":819},[713,2771,1135],{"class":815},[713,2773,1483],{"class":872},[713,2775,876],{"class":815},[713,2777,1143],{"class":819},[713,2779,1032],{"class":860},[713,2781,863],{"class":819},[713,2783,1135],{"class":815},[713,2785,1138],{"class":872},[713,2787,876],{"class":815},[713,2789,1500],{"class":819},[713,2791,1020],{"class":815},[713,2793,1505],{"class":819},[713,2795,1020],{"class":815},[713,2797,1023],{"class":819},[749,2799,2801],{"id":2800},"read-the-column","Read the column",[618,2803,2804],{},"The next 500 that reaches your drain carries the answer:",[754,2806,2811],{"className":2807,"code":2808,"filename":2809,"language":2810,"meta":760,"style":760},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"method\": \"POST\",\n  \"path\": \"\u002Fapi\u002Fcheckout\",\n  \"status\": 502,\n  \"error\": { \"name\": \"FetchError\", \"message\": \"request to https:\u002F\u002Fapi.stripe.com\u002F... failed, reason: read ECONNRESET\" },\n  \"signals\": {\n    \"fault\": { \"value\": \"upstream\", \"confidence\": 0.93 }\n  }\n}\n","Wide Event","json",[624,2812,2813,2817,2840,2860,2876,2925,2938,2984,2989],{"__ignoreMap":760},[713,2814,2815],{"class":765,"line":766},[713,2816,866],{"class":815},[713,2818,2819,2822,2825,2828,2830,2833,2836,2838],{"class":765,"line":837},[713,2820,2821],{"class":815},"  \"",[713,2823,2824],{"class":850},"method",[713,2826,2827],{"class":815},"\"",[713,2829,876],{"class":815},[713,2831,2832],{"class":815}," \"",[713,2834,2835],{"class":773},"POST",[713,2837,2827],{"class":815},[713,2839,887],{"class":815},[713,2841,2842,2844,2847,2849,2851,2853,2856,2858],{"class":765,"line":844},[713,2843,2821],{"class":815},[713,2845,2846],{"class":850},"path",[713,2848,2827],{"class":815},[713,2850,876],{"class":815},[713,2852,2832],{"class":815},[713,2854,2855],{"class":773},"\u002Fapi\u002Fcheckout",[713,2857,2827],{"class":815},[713,2859,887],{"class":815},[713,2861,2862,2864,2867,2869,2871,2874],{"class":765,"line":869},[713,2863,2821],{"class":815},[713,2865,2866],{"class":850},"status",[713,2868,2827],{"class":815},[713,2870,876],{"class":815},[713,2872,2873],{"class":917}," 502",[713,2875,887],{"class":815},[713,2877,2878,2880,2883,2885,2887,2889,2891,2893,2895,2897,2899,2902,2904,2906,2908,2911,2913,2915,2917,2920,2922],{"class":765,"line":890},[713,2879,2821],{"class":815},[713,2881,2882],{"class":850},"error",[713,2884,2827],{"class":815},[713,2886,876],{"class":815},[713,2888,816],{"class":815},[713,2890,2832],{"class":815},[713,2892,730],{"class":769},[713,2894,2827],{"class":815},[713,2896,876],{"class":815},[713,2898,2832],{"class":815},[713,2900,2901],{"class":773},"FetchError",[713,2903,2827],{"class":815},[713,2905,1179],{"class":815},[713,2907,2832],{"class":815},[713,2909,2910],{"class":769},"message",[713,2912,2827],{"class":815},[713,2914,876],{"class":815},[713,2916,2832],{"class":815},[713,2918,2919],{"class":773},"request to https:\u002F\u002Fapi.stripe.com\u002F... failed, reason: read ECONNRESET",[713,2921,2827],{"class":815},[713,2923,2924],{"class":815}," },\n",[713,2926,2927,2929,2932,2934,2936],{"class":765,"line":932},[713,2928,2821],{"class":815},[713,2930,2931],{"class":850},"signals",[713,2933,2827],{"class":815},[713,2935,876],{"class":815},[713,2937,957],{"class":815},[713,2939,2940,2943,2945,2947,2949,2951,2953,2956,2958,2960,2962,2965,2967,2969,2971,2974,2976,2978,2981],{"class":765,"line":949},[713,2941,2942],{"class":815},"    \"",[713,2944,881],{"class":769},[713,2946,2827],{"class":815},[713,2948,876],{"class":815},[713,2950,816],{"class":815},[713,2952,2832],{"class":815},[713,2954,2955],{"class":917},"value",[713,2957,2827],{"class":815},[713,2959,876],{"class":815},[713,2961,2832],{"class":815},[713,2963,2964],{"class":773},"upstream",[713,2966,2827],{"class":815},[713,2968,1179],{"class":815},[713,2970,2832],{"class":815},[713,2972,2973],{"class":917},"confidence",[713,2975,2827],{"class":815},[713,2977,876],{"class":815},[713,2979,2980],{"class":917}," 0.93",[713,2982,2983],{"class":815}," }\n",[713,2985,2986],{"class":765,"line":960},[713,2987,2988],{"class":815},"  }\n",[713,2990,2991],{"class":765,"line":977},[713,2992,2993],{"class":815},"}\n",[618,2995,2996,2998,2999,3001,3002,908],{},[624,2997,2955],{}," is the answer, ",[624,3000,2973],{}," is its probability (always on a yes\u002Fno, on choice and score when the model returns a distribution). Columns are written before the console line, so they show in the dev terminal, in platform logs such as Vercel, and in every ",[689,3003,3004],{"href":163},"drain",[629,3006,3008],{"id":3007},"then-keep-what-sampling-drops","Then keep what sampling drops",[618,3010,3011,3012,3014,3015,3018,3019,3022],{},"Add ",[624,3013,680],{}," to a signal and a ",[624,3016,3017],{},"true"," verdict forces the event past sampling. Six requests on a production rule, ",[624,3020,3021],{},"info"," kept at 0%: sampling keeps the two errors, and three of the four 200s come back because a signal said so:",[3024,3025],"signals-judge",{},[618,3027,3028],{},"This is the signal that rescued the silent checkout:",[754,3030,3032],{"className":801,"code":3031,"filename":803,"language":804,"meta":760,"style":760},"export const silentFailure = defineSignal({\n  name: 'silent-failure',\n  when: e => e.status === 200 && e.path === '\u002Fapi\u002Fcheckout',\n  ask: 'Returned 200, but the customer did not get what they came for',\n  keep: v => v.value && v.confidence > 0.8,\n})\n",[624,3033,3034,3051,3066,3108,3123,3160],{"__ignoreMap":760},[713,3035,3036,3038,3040,3043,3045,3047,3049],{"class":765,"line":766},[713,3037,847],{"class":811},[713,3039,851],{"class":850},[713,3041,3042],{"class":819}," silentFailure ",[713,3044,857],{"class":815},[713,3046,820],{"class":860},[713,3048,863],{"class":819},[713,3050,866],{"class":815},[713,3052,3053,3055,3057,3059,3062,3064],{"class":765,"line":837},[713,3054,873],{"class":872},[713,3056,876],{"class":815},[713,3058,829],{"class":815},[713,3060,3061],{"class":773},"silent-failure",[713,3063,884],{"class":815},[713,3065,887],{"class":815},[713,3067,3068,3070,3072,3074,3076,3078,3080,3082,3085,3088,3091,3093,3095,3098,3100,3102,3104,3106],{"class":765,"line":844},[713,3069,893],{"class":860},[713,3071,876],{"class":815},[713,3073,899],{"class":898},[713,3075,902],{"class":850},[713,3077,899],{"class":819},[713,3079,908],{"class":815},[713,3081,911],{"class":819},[713,3083,3084],{"class":815},"===",[713,3086,3087],{"class":917}," 200",[713,3089,3090],{"class":815}," &&",[713,3092,899],{"class":819},[713,3094,908],{"class":815},[713,3096,3097],{"class":819},"path ",[713,3099,3084],{"class":815},[713,3101,829],{"class":815},[713,3103,2855],{"class":773},[713,3105,884],{"class":815},[713,3107,887],{"class":815},[713,3109,3110,3112,3114,3116,3119,3121],{"class":765,"line":869},[713,3111,935],{"class":872},[713,3113,876],{"class":815},[713,3115,829],{"class":815},[713,3117,3118],{"class":773},"Returned 200, but the customer did not get what they came for",[713,3120,884],{"class":815},[713,3122,887],{"class":815},[713,3124,3125,3128,3130,3133,3135,3137,3139,3142,3145,3147,3149,3152,3155,3158],{"class":765,"line":890},[713,3126,3127],{"class":860},"  keep",[713,3129,876],{"class":815},[713,3131,3132],{"class":898}," v",[713,3134,902],{"class":850},[713,3136,3132],{"class":819},[713,3138,908],{"class":815},[713,3140,3141],{"class":819},"value ",[713,3143,3144],{"class":815},"&&",[713,3146,3132],{"class":819},[713,3148,908],{"class":815},[713,3150,3151],{"class":819},"confidence ",[713,3153,3154],{"class":815},">",[713,3156,3157],{"class":917}," 0.8",[713,3159,887],{"class":815},[713,3161,3162,3164],{"class":765,"line":932},[713,3163,1020],{"class":815},[713,3165,1023],{"class":819},[618,3167,3168,3170,3171,3174,3175,3178],{},[624,3169,680],{}," only promotes. It never drops an event a ",[689,3172,3173],{"href":67},"sampling rule"," would have kept, and the promoted event carries ",[624,3176,3177],{},"kept: true"," on the column so your counts stay honest.",[629,3180,3182],{"id":3181},"where-to-next","Where to next",[3184,3185,3186,3190,3193,3207],"card-group",{},[3187,3188,3189],"card",{"icon":476,"title":473,"to":474},"Yes\u002Fno, pick one, or a rubric. Which shape gives you which column, and how to write a question the model can actually answer.",[3187,3191,3192],{"icon":481,"title":478,"to":479},"Price per event, the rate limit that binds first, latency on the keep path, and what leaves your process.",[3187,3194,3195,3196,3199,3200,3202,3203,3206],{"icon":84,"title":446,"to":483},"Every option of ",[624,3197,3198],{},"defineSignal"," and ",[624,3201,1032],{},", the column format, ",[624,3204,3205],{},"stats()",", and the test helpers, on one page.",[3187,3208,3209],{"icon":488,"title":425,"to":486},"Three signals most apps want on day one, and nine more to copy from.",[3211,3212,3213],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":760,"searchDepth":837,"depth":837,"links":3215},[3216,3217,3223,3224],{"id":631,"depth":837,"text":632},{"id":694,"depth":837,"text":695,"children":3218},[3219,3220,3221,3222],{"id":751,"depth":844,"text":752},{"id":794,"depth":844,"text":795},{"id":1026,"depth":844,"text":1027},{"id":2800,"depth":844,"text":2801},{"id":3007,"depth":837,"text":3008},{"id":3181,"depth":837,"text":3182},"Ask a model one question about each request and get the answer back as a column: who broke it, is it worth paging, did the customer get what they came for.","md",[3228,3231,3232],{"label":473,"icon":476,"to":474,"color":3229,"variant":3230},"neutral","subtle",{"label":478,"icon":481,"to":479,"color":3229,"variant":3230},{"label":446,"icon":84,"to":483,"color":3229,"variant":3230},{},{"title":41,"icon":44},{"title":464,"description":3225},"lWjv1fiYMEMNvP_WBhX0sfukwuQFPK1-3rjifaHENQU",[3238,3240],{"title":460,"path":461,"stem":462,"description":3239,"icon":444,"children":-1},"Build a Node.js HTTP handler with structured request logs, explicit outcomes, error context, and a JSON event you can query.",{"title":473,"path":474,"stem":475,"description":3241,"icon":476,"children":-1},"Three question shapes, each with the column it produces: a yes\u002Fno with a probability, one option out of a list, or a position on a rubric.",1791704401602]