[{"data":1,"prerenderedAt":1665},["ShallowReactive",2],{"navigation_docs":3,"-use-cases-signals-ask":602,"-use-cases-signals-ask-surround":1660},[4,35,85,138,318,479,538,577],{"title":5,"path":6,"stem":7,"children":8,"page":34},"Start","\u002Fstart","1.start",[9,14,19,24,29],{"title":10,"path":11,"stem":12,"icon":13},"Introduction","\u002Fstart\u002Fintroduction","1.start\u002F1.introduction","i-lucide-info",{"title":15,"path":16,"stem":17,"icon":18},"Why start with evlog","\u002Fstart\u002Fwhy-evlog","1.start\u002F2.why-evlog","i-lucide-rocket",{"title":20,"path":21,"stem":22,"icon":23},"Installation","\u002Fstart\u002Finstallation","1.start\u002F3.installation","i-lucide-download",{"title":25,"path":26,"stem":27,"icon":28},"Quick Start","\u002Fstart\u002Fquick-start","1.start\u002F4.quick-start","i-lucide-zap",{"title":30,"path":31,"stem":32,"icon":33},"Choose your logger","\u002Fstart\u002Ftypescript-logging-library","1.start\u002F5.typescript-logging-library","i-lucide-file-code",false,{"title":36,"path":37,"stem":38,"children":39,"page":34},"Learn","\u002Flearn","2.learn",[40,45,50,55,60,65,70,75,80],{"title":41,"path":42,"stem":43,"icon":44},"Overview","\u002Flearn\u002Foverview","2.learn\u002F0.overview","i-lucide-list",{"title":46,"path":47,"stem":48,"icon":49},"Simple Logging","\u002Flearn\u002Fsimple-logging","2.learn\u002F1.simple-logging","i-lucide-terminal",{"title":51,"path":52,"stem":53,"icon":54},"Wide Events","\u002Flearn\u002Fwide-events","2.learn\u002F2.wide-events","i-lucide-layers",{"title":56,"path":57,"stem":58,"icon":59},"Structured Errors","\u002Flearn\u002Fstructured-errors","2.learn\u002F3.structured-errors","i-lucide-shield-alert",{"title":61,"path":62,"stem":63,"icon":64},"Lifecycle","\u002Flearn\u002Flifecycle","2.learn\u002F4.lifecycle","i-lucide-arrow-right-left",{"title":66,"path":67,"stem":68,"icon":69},"Sampling","\u002Flearn\u002Fsampling","2.learn\u002F5.sampling","i-lucide-filter",{"title":71,"path":72,"stem":73,"icon":74},"Auto-Redaction","\u002Flearn\u002Fredaction","2.learn\u002F6.redaction","i-lucide-eye-off",{"title":76,"path":77,"stem":78,"icon":79},"Typed Fields","\u002Flearn\u002Ftyped-fields","2.learn\u002F7.typed-fields","i-simple-icons-typescript",{"title":81,"path":82,"stem":83,"icon":84},"Catalogs","\u002Flearn\u002Fcatalogs","2.learn\u002F8.catalogs","i-lucide-book-open",{"title":86,"path":87,"stem":88,"children":89,"page":34},"CLI","\u002Fcli","3.cli",[90,93,98,103,108,113,118,123,128,133],{"title":41,"path":91,"stem":92,"icon":49},"\u002Fcli\u002Foverview","3.cli\u002F0.overview",{"title":94,"path":95,"stem":96,"icon":97},"init","\u002Fcli\u002Finit","3.cli\u002F1.init","i-lucide-wand-sparkles",{"title":99,"path":100,"stem":101,"icon":102},"map","\u002Fcli\u002Fmap","3.cli\u002F2.map","i-lucide-radar",{"title":104,"path":105,"stem":106,"icon":107},"Rules","\u002Fcli\u002Frules","3.cli\u002F3.rules","i-lucide-list-checks",{"title":109,"path":110,"stem":111,"icon":112},"Scoring","\u002Fcli\u002Fscoring","3.cli\u002F4.scoring","i-lucide-gauge",{"title":114,"path":115,"stem":116,"icon":117},"CI","\u002Fcli\u002Fci","3.cli\u002F5.ci","i-lucide-git-pull-request",{"title":119,"path":120,"stem":121,"icon":122},"doctor","\u002Fcli\u002Fdoctor","3.cli\u002F6.doctor","i-lucide-stethoscope",{"title":124,"path":125,"stem":126,"icon":127},"telemetry","\u002Fcli\u002Ftelemetry","3.cli\u002F7.telemetry","i-lucide-bar-chart-3",{"title":129,"path":130,"stem":131,"icon":132},"agents","\u002Fcli\u002Fagents","3.cli\u002F8.agents","i-lucide-bot",{"title":134,"path":135,"stem":136,"icon":137},"Observability Score","\u002Fcli\u002Fobservability-score","3.cli\u002F9.observability-score","i-lucide-activity",{"title":139,"path":140,"stem":141,"children":142,"page":34},"Integrate","\u002Fintegrate","4.integrate",[143,147,230],{"title":41,"path":144,"stem":145,"icon":146},"\u002Fintegrate\u002Foverview","4.integrate\u002F0.overview","i-lucide-plug",{"title":148,"path":149,"stem":150,"children":151,"page":34},"Adapters","\u002Fintegrate\u002Fadapters","4.integrate\u002Fadapters",[152,155,185,210],{"title":41,"path":153,"stem":154,"icon":44},"\u002Fintegrate\u002Fadapters\u002Foverview","4.integrate\u002Fadapters\u002F01.overview",{"title":156,"path":157,"stem":158,"children":159,"page":34},"Cloud","\u002Fintegrate\u002Fadapters\u002Fcloud","4.integrate\u002Fadapters\u002Fcloud",[160,165,170,175,180],{"title":161,"path":162,"stem":163,"icon":164},"Axiom","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Faxiom","4.integrate\u002Fadapters\u002Fcloud\u002F01.axiom","i-custom-axiom",{"title":166,"path":167,"stem":168,"icon":169},"PostHog","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fposthog","4.integrate\u002Fadapters\u002Fcloud\u002F02.posthog","i-simple-icons-posthog",{"title":171,"path":172,"stem":173,"icon":174},"Sentry","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fsentry","4.integrate\u002Fadapters\u002Fcloud\u002F03.sentry","i-simple-icons-sentry",{"title":176,"path":177,"stem":178,"icon":179},"Better Stack","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fbetter-stack","4.integrate\u002Fadapters\u002Fcloud\u002F04.better-stack","i-simple-icons-betterstack",{"title":181,"path":182,"stem":183,"icon":184},"Datadog","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fdatadog","4.integrate\u002Fadapters\u002Fcloud\u002F05.datadog","i-simple-icons-datadog",{"title":186,"path":187,"stem":188,"children":189,"page":34},"Cloud or Self-Hosted","\u002Fintegrate\u002Fadapters\u002Fhybrid","4.integrate\u002Fadapters\u002Fhybrid",[190,195,200,205],{"title":191,"path":192,"stem":193,"icon":194},"Grafana Loki","\u002Fintegrate\u002Fadapters\u002Fhybrid\u002Floki","4.integrate\u002Fadapters\u002Fhybrid\u002F01.loki","i-simple-icons-grafana",{"title":196,"path":197,"stem":198,"icon":199},"ClickHouse","\u002Fintegrate\u002Fadapters\u002Fhybrid\u002Fclickhouse","4.integrate\u002Fadapters\u002Fhybrid\u002F02.clickhouse","i-simple-icons-clickhouse",{"title":201,"path":202,"stem":203,"icon":204},"OTLP","\u002Fintegrate\u002Fadapters\u002Fhybrid\u002Fotlp","4.integrate\u002Fadapters\u002Fhybrid\u002F03.otlp","i-simple-icons-opentelemetry",{"title":206,"path":207,"stem":208,"icon":209},"HyperDX","\u002Fintegrate\u002Fadapters\u002Fhybrid\u002Fhyperdx","4.integrate\u002Fadapters\u002Fhybrid\u002F04.hyperdx","i-custom-hyperdx",{"title":211,"path":212,"stem":213,"children":214,"page":34},"Self-Hosted","\u002Fintegrate\u002Fadapters\u002Fself-hosted","4.integrate\u002Fadapters\u002Fself-hosted",[215,220,225],{"title":216,"path":217,"stem":218,"icon":219},"File System","\u002Fintegrate\u002Fadapters\u002Fself-hosted\u002Ffs","4.integrate\u002Fadapters\u002Fself-hosted\u002F01.fs","i-lucide-hard-drive",{"title":221,"path":222,"stem":223,"icon":224},"NuxtHub","\u002Fintegrate\u002Fadapters\u002Fself-hosted\u002Fnuxthub","4.integrate\u002Fadapters\u002Fself-hosted\u002F02.nuxthub","i-simple-icons-nuxt",{"title":226,"path":227,"stem":228,"icon":229},"Memory","\u002Fintegrate\u002Fadapters\u002Fself-hosted\u002Fmemory","4.integrate\u002Fadapters\u002Fself-hosted\u002F03.memory","i-lucide-cpu",{"title":231,"path":232,"stem":233,"children":234,"page":34},"Frameworks","\u002Fintegrate\u002Fframeworks","4.integrate\u002Fframeworks",[235,239,244,249,254,259,264,269,274,279,284,289,294,299,303,308,313],{"title":41,"path":236,"stem":237,"icon":238},"\u002Fintegrate\u002Fframeworks\u002Foverview","4.integrate\u002Fframeworks\u002F00.overview","i-lucide-layout-grid",{"title":240,"path":241,"stem":242,"icon":243},"Nuxt","\u002Fintegrate\u002Fframeworks\u002Fnuxt","4.integrate\u002Fframeworks\u002F01.nuxt","i-simple-icons-nuxtdotjs",{"title":245,"path":246,"stem":247,"icon":248},"Next.js","\u002Fintegrate\u002Fframeworks\u002Fnextjs","4.integrate\u002Fframeworks\u002F02.nextjs","i-simple-icons-nextdotjs",{"title":250,"path":251,"stem":252,"icon":253},"SvelteKit","\u002Fintegrate\u002Fframeworks\u002Fsveltekit","4.integrate\u002Fframeworks\u002F03.sveltekit","i-simple-icons-svelte",{"title":255,"path":256,"stem":257,"icon":258},"Nitro","\u002Fintegrate\u002Fframeworks\u002Fnitro","4.integrate\u002Fframeworks\u002F04.nitro","i-custom-nitro",{"title":260,"path":261,"stem":262,"icon":263},"TanStack Start","\u002Fintegrate\u002Fframeworks\u002Ftanstack-start","4.integrate\u002Fframeworks\u002F05.tanstack-start","i-custom-tanstack",{"title":265,"path":266,"stem":267,"icon":268},"NestJS","\u002Fintegrate\u002Fframeworks\u002Fnestjs","4.integrate\u002Fframeworks\u002F06.nestjs","i-simple-icons-nestjs",{"title":270,"path":271,"stem":272,"icon":273},"Express","\u002Fintegrate\u002Fframeworks\u002Fexpress","4.integrate\u002Fframeworks\u002F07.express","i-simple-icons-express",{"title":275,"path":276,"stem":277,"icon":278},"Hono","\u002Fintegrate\u002Fframeworks\u002Fhono","4.integrate\u002Fframeworks\u002F08.hono","i-simple-icons-hono",{"title":280,"path":281,"stem":282,"icon":283},"Fastify","\u002Fintegrate\u002Fframeworks\u002Ffastify","4.integrate\u002Fframeworks\u002F09.fastify","i-simple-icons-fastify",{"title":285,"path":286,"stem":287,"icon":288},"Elysia","\u002Fintegrate\u002Fframeworks\u002Felysia","4.integrate\u002Fframeworks\u002F10.elysia","i-custom-elysia",{"title":290,"path":291,"stem":292,"icon":293},"React Router","\u002Fintegrate\u002Fframeworks\u002Freact-router","4.integrate\u002Fframeworks\u002F11.react-router","i-custom-reactrouter",{"title":295,"path":296,"stem":297,"icon":298},"Cloudflare Workers","\u002Fintegrate\u002Fframeworks\u002Fcloudflare-workers","4.integrate\u002Fframeworks\u002F12.cloudflare-workers","i-simple-icons-cloudflare",{"title":300,"path":301,"stem":302,"icon":79},"Standalone","\u002Fintegrate\u002Fframeworks\u002Fstandalone","4.integrate\u002Fframeworks\u002F13.standalone",{"title":304,"path":305,"stem":306,"icon":307},"Astro","\u002Fintegrate\u002Fframeworks\u002Fastro","4.integrate\u002Fframeworks\u002F14.astro","i-simple-icons-astro",{"title":309,"path":310,"stem":311,"icon":312},"oRPC","\u002Fintegrate\u002Fframeworks\u002Forpc","4.integrate\u002Fframeworks\u002F15.orpc","i-lucide-network",{"title":314,"path":315,"stem":316,"icon":317},"AWS Lambda","\u002Fintegrate\u002Fframeworks\u002Faws-lambda","4.integrate\u002Fframeworks\u002F16.aws-lambda","i-custom-lambda",{"title":319,"path":320,"stem":321,"children":322,"page":34},"Use Cases","\u002Fuse-cases","5.use-cases",[323,326,331,359,386,418,439,444,449,453],{"title":41,"path":324,"stem":325,"icon":107},"\u002Fuse-cases\u002Foverview","5.use-cases\u002F0.overview",{"title":327,"path":328,"stem":329,"icon":330},"Client Logging","\u002Fuse-cases\u002Fclient-logging","5.use-cases\u002F1.client-logging","i-lucide-monitor",{"title":332,"icon":333,"path":334,"stem":335,"children":336,"page":34},"AI SDK","i-simple-icons-vercel","\u002Fuse-cases\u002Fai-sdk","5.use-cases\u002F2.ai-sdk",[337,340,345,350,355],{"title":41,"path":338,"stem":339,"icon":44},"\u002Fuse-cases\u002Fai-sdk\u002Foverview","5.use-cases\u002F2.ai-sdk\u002F01.overview",{"title":341,"path":342,"stem":343,"icon":344},"Usage","\u002Fuse-cases\u002Fai-sdk\u002Fusage","5.use-cases\u002F2.ai-sdk\u002F02.usage","i-lucide-code",{"title":346,"path":347,"stem":348,"icon":349},"Options","\u002Fuse-cases\u002Fai-sdk\u002Foptions","5.use-cases\u002F2.ai-sdk\u002F03.options","i-lucide-sliders",{"title":351,"path":352,"stem":353,"icon":354},"Metadata","\u002Fuse-cases\u002Fai-sdk\u002Fmetadata","5.use-cases\u002F2.ai-sdk\u002F04.metadata","i-lucide-database",{"title":356,"path":357,"stem":358,"icon":137},"Telemetry","\u002Fuse-cases\u002Fai-sdk\u002Ftelemetry","5.use-cases\u002F2.ai-sdk\u002F05.telemetry",{"title":360,"icon":361,"path":362,"stem":363,"children":364,"page":34},"Better Auth","i-simple-icons-betterauth","\u002Fuse-cases\u002Fbetter-auth","5.use-cases\u002F3.better-auth",[365,368,373,378,382],{"title":41,"path":366,"stem":367,"icon":44},"\u002Fuse-cases\u002Fbetter-auth\u002Foverview","5.use-cases\u002F3.better-auth\u002F01.overview",{"title":369,"path":370,"stem":371,"icon":372},"Identify User","\u002Fuse-cases\u002Fbetter-auth\u002Fidentify-user","5.use-cases\u002F3.better-auth\u002F02.identify-user","i-lucide-user-check",{"title":374,"path":375,"stem":376,"icon":377},"Middleware","\u002Fuse-cases\u002Fbetter-auth\u002Fmiddleware","5.use-cases\u002F3.better-auth\u002F03.middleware","i-lucide-shield",{"title":379,"path":380,"stem":381,"icon":330},"Client Sync","\u002Fuse-cases\u002Fbetter-auth\u002Fclient-sync","5.use-cases\u002F3.better-auth\u002F04.client-sync",{"title":383,"path":384,"stem":385,"icon":112},"Performance","\u002Fuse-cases\u002Fbetter-auth\u002Fperformance","5.use-cases\u002F3.better-auth\u002F05.performance",{"title":387,"icon":388,"path":389,"stem":390,"children":391,"page":34},"Audit Logs","i-lucide-shield-check","\u002Fuse-cases\u002Faudit","5.use-cases\u002F4.audit",[392,395,400,405,410,414],{"title":41,"path":393,"stem":394,"icon":44},"\u002Fuse-cases\u002Faudit\u002Foverview","5.use-cases\u002F4.audit\u002F01.overview",{"title":396,"path":397,"stem":398,"icon":399},"Schema","\u002Fuse-cases\u002Faudit\u002Fschema","5.use-cases\u002F4.audit\u002F02.schema","i-lucide-file-text",{"title":401,"path":402,"stem":403,"icon":404},"Recording","\u002Fuse-cases\u002Faudit\u002Frecording","5.use-cases\u002F4.audit\u002F03.recording","i-lucide-pen-line",{"title":406,"path":407,"stem":408,"icon":409},"Drains","\u002Fuse-cases\u002Faudit\u002Fpipeline","5.use-cases\u002F4.audit\u002F04.pipeline","i-lucide-link",{"title":411,"path":412,"stem":413,"icon":388},"Compliance","\u002Fuse-cases\u002Faudit\u002Fcompliance","5.use-cases\u002F4.audit\u002F05.compliance",{"title":415,"path":416,"stem":417,"icon":84},"Recipes","\u002Fuse-cases\u002Faudit\u002Frecipes","5.use-cases\u002F4.audit\u002F06.recipes",{"title":356,"icon":112,"path":419,"stem":420,"children":421,"page":34},"\u002Fuse-cases\u002Ftelemetry","5.use-cases\u002F4.telemetry",[422,425,430,435],{"title":41,"path":423,"stem":424,"icon":44},"\u002Fuse-cases\u002Ftelemetry\u002Foverview","5.use-cases\u002F4.telemetry\u002F01.overview",{"title":426,"path":427,"stem":428,"icon":429},"Setup","\u002Fuse-cases\u002Ftelemetry\u002Fsetup","5.use-cases\u002F4.telemetry\u002F02.setup","i-lucide-wrench",{"title":431,"path":432,"stem":433,"icon":434},"Ingest","\u002Fuse-cases\u002Ftelemetry\u002Fingest","5.use-cases\u002F4.telemetry\u002F03.ingest","i-lucide-server",{"title":436,"path":437,"stem":438,"icon":84},"Reference","\u002Fuse-cases\u002Ftelemetry\u002Freference","5.use-cases\u002F4.telemetry\u002F04.reference",{"title":440,"path":441,"stem":442,"icon":443},"Enrichers","\u002Fuse-cases\u002Fenrichers","5.use-cases\u002F5.enrichers","i-lucide-sparkles",{"title":445,"path":446,"stem":447,"icon":448},"eve","\u002Fuse-cases\u002Feve","5.use-cases\u002F5.eve","i-custom-eve",{"title":450,"path":451,"stem":452,"icon":434},"Node.js request logging","\u002Fuse-cases\u002Fstructured-logging-nodejs","5.use-cases\u002F6.structured-logging-nodejs",{"title":454,"icon":455,"path":456,"stem":457,"children":458,"page":34},"Signals","i-lucide-scan-search","\u002Fuse-cases\u002Fsignals","5.use-cases\u002F7.signals",[459,462,467,472,475],{"title":41,"path":460,"stem":461,"icon":44},"\u002Fuse-cases\u002Fsignals\u002Foverview","5.use-cases\u002F7.signals\u002F01.overview",{"title":463,"path":464,"stem":465,"icon":466},"What You Can Ask","\u002Fuse-cases\u002Fsignals\u002Fask","5.use-cases\u002F7.signals\u002F02.ask","i-lucide-message-circle-question",{"title":468,"path":469,"stem":470,"icon":471},"What It Costs","\u002Fuse-cases\u002Fsignals\u002Fcost","5.use-cases\u002F7.signals\u002F03.cost","i-lucide-coins",{"title":436,"path":473,"stem":474,"icon":84},"\u002Fuse-cases\u002Fsignals\u002Freference","5.use-cases\u002F7.signals\u002F04.reference",{"title":415,"path":476,"stem":477,"icon":478},"\u002Fuse-cases\u002Fsignals\u002Frecipes","5.use-cases\u002F7.signals\u002F05.recipes","i-lucide-lightbulb",{"title":480,"path":481,"stem":482,"children":483,"page":34},"Extend","\u002Fextend","6.extend",[484,488,493,498,502,507,511,515,519,523,528,533],{"title":41,"path":485,"stem":486,"icon":487},"\u002Fextend\u002Foverview","6.extend\u002F0.overview","i-lucide-blocks",{"title":489,"path":490,"stem":491,"icon":492},"Stream","\u002Fextend\u002Fstream","6.extend\u002F1.stream","i-lucide-radio-tower",{"title":494,"path":495,"stem":496,"icon":497},"Custom framework","\u002Fextend\u002Fcustom-framework","6.extend\u002F10.custom-framework","i-lucide-puzzle",{"title":499,"path":500,"stem":501,"icon":492},"Diagnostics channel","\u002Fextend\u002Fdiagnostics-channel","6.extend\u002F11.diagnostics-channel",{"title":503,"path":504,"stem":505,"icon":506},"FS reader","\u002Fextend\u002Ffs-reader","6.extend\u002F2.fs-reader","i-lucide-folder-search",{"title":415,"path":508,"stem":509,"icon":510},"\u002Fextend\u002Fconsumer-recipes","6.extend\u002F3.consumer-recipes","i-lucide-chef-hat",{"title":512,"path":513,"stem":514,"icon":487},"Plugins","\u002Fextend\u002Fplugins","6.extend\u002F4.plugins",{"title":516,"path":517,"stem":518,"icon":443},"Custom enrichers","\u002Fextend\u002Fcustom-enrichers","6.extend\u002F5.custom-enrichers",{"title":520,"path":521,"stem":522,"icon":69},"Tail sampling","\u002Fextend\u002Ftail-sampling","6.extend\u002F6.tail-sampling",{"title":524,"path":525,"stem":526,"icon":527},"Identity headers","\u002Fextend\u002Fidentity-headers","6.extend\u002F7.identity-headers","i-lucide-fingerprint",{"title":529,"path":530,"stem":531,"icon":532},"Custom drains","\u002Fextend\u002Fcustom-drains","6.extend\u002F8.custom-drains","i-lucide-share-2",{"title":534,"path":535,"stem":536,"icon":537},"Drain pipeline","\u002Fextend\u002Fdrain-pipeline","6.extend\u002F9.drain-pipeline","i-lucide-workflow",{"title":436,"path":539,"stem":540,"children":541,"page":34},"\u002Freference","7.reference",[542,546,551,554,559,563,568,572],{"title":41,"path":543,"stem":544,"icon":545},"\u002Freference\u002Foverview","7.reference\u002F0.overview","i-lucide-book-marked",{"title":547,"path":548,"stem":549,"icon":550},"Configuration","\u002Freference\u002Fconfiguration","7.reference\u002F1.configuration","i-lucide-settings",{"title":383,"path":552,"stem":553,"icon":112},"\u002Freference\u002Fperformance","7.reference\u002F2.performance",{"title":555,"path":556,"stem":557,"icon":558},"Vite Plugin","\u002Freference\u002Fvite-plugin","7.reference\u002F3.vite-plugin","i-custom-vite",{"title":560,"path":561,"stem":562,"icon":388},"Best Practices","\u002Freference\u002Fbest-practices","7.reference\u002F4.best-practices",{"title":564,"path":565,"stem":566,"icon":567},"vs Other Loggers","\u002Freference\u002Fvs-other-loggers","7.reference\u002F5.vs-other-loggers","i-lucide-scale",{"title":569,"path":570,"stem":571,"icon":443},"Agent Skills","\u002Freference\u002Fagent-skills","7.reference\u002F6.agent-skills",{"title":573,"path":574,"stem":575,"icon":576},"Cost","\u002Freference\u002Fcost","7.reference\u002F7.cost","i-lucide-receipt",{"title":578,"path":579,"stem":580,"children":581,"page":34},"Compare","\u002Fcompare","8.compare",[582,586,590,594,598],{"title":583,"path":584,"stem":585,"icon":567},"evlog vs Pino","\u002Fcompare\u002Fpino","8.compare\u002F1.pino",{"title":587,"path":588,"stem":589,"icon":204},"evlog vs OpenTelemetry","\u002Fcompare\u002Fopentelemetry","8.compare\u002F2.opentelemetry",{"title":591,"path":592,"stem":593,"icon":567},"evlog vs LogTape","\u002Fcompare\u002Flogtape","8.compare\u002F3.logtape",{"title":595,"path":596,"stem":597,"icon":567},"evlog vs Winston: formats and request events","\u002Fcompare\u002Fwinston","8.compare\u002F4.winston",{"title":599,"path":600,"stem":601,"icon":567},"evlog vs Consola: reporters and request context","\u002Fcompare\u002Fconsola","8.compare\u002F5.consola",{"id":603,"title":463,"body":604,"description":1649,"extension":1650,"links":1651,"meta":1656,"navigation":1657,"path":464,"seo":1658,"stem":465,"__hash__":1659},"docs\u002F5.use-cases\u002F7.signals\u002F02.ask.md",{"type":605,"value":606,"toc":1641},"minimark",[607,611,721,726,737,952,1001,1011,1015,1021,1170,1218,1235,1239,1252,1379,1438,1465,1473,1487,1516,1594,1598,1601,1631,1637],[608,609,610],"p",{},"Every signal is one question about one event. The shape of the input decides the shape of the answer, and the shape of the answer decides what you can do with the column.",[612,613,614,633],"table",{},[615,616,617],"thead",{},[618,619,620,624,627,630],"tr",{},[621,622,623],"th",{},"You want to",[621,625,626],{},"Write",[621,628,629],{},"You get",[621,631,632],{},"Do this with it",[634,635,636,667,694],"tbody",{},[618,637,638,642,648,657],{},[639,640,641],"td",{},"Flag events",[639,643,644],{},[645,646,647],"code",{},"ask",[639,649,650,653,654],{},[645,651,652],{},"value: boolean",", ",[645,655,656],{},"confidence",[639,658,659,662,663,666],{},[645,660,661],{},"WHERE signals.x.value = true",", or ",[645,664,665],{},"keep"," the event",[618,668,669,672,680,689],{},[639,670,671],{},"Categorise events",[639,673,674,676,677],{},[645,675,647],{}," + ",[645,678,679],{},"choice",[639,681,682,685,686,688],{},[645,683,684],{},"value"," is one option name, ",[645,687,656],{}," when the model gives one",[639,690,691],{},[645,692,693],{},"GROUP BY signals.x.value",[618,695,696,699,706,716],{},[639,697,698],{},"Rank events",[639,700,701,676,703],{},[645,702,647],{},[645,704,705],{},"score",[639,707,708,710,711,713,714,688],{},[645,709,684],{}," is a level name, ",[645,712,705],{}," between levels, ",[645,715,656],{},[639,717,718],{},[645,719,720],{},"ORDER BY signals.x.score DESC",[722,723,725],"h2",{"id":724},"flag-a-yesno-with-a-probability","Flag: a yes\u002Fno with a probability",[608,727,728,729,732,733,736],{},"The shortest form. The model returns P(yes), and the column reads ",[645,730,731],{},"value: true, confidence: 0.9",". ",[645,734,735],{},"criteria"," is optional and tells the model what each answer looks like, which raises confidence on borderline events:",[738,739,745],"pre",{"className":740,"code":741,"filename":742,"language":743,"meta":744,"style":744},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { defineSignal } from '@evlog\u002Fsignals'\n\nexport const retryable = defineSignal({\n  name: 'retryable',\n  when: e => (e.status ?? 0) >= 500,\n  ask: 'Would the same request most likely succeed if retried in a few seconds?',\n  criteria: {\n    true: 'Timeout, connection reset, rate limit, transient upstream error',\n    false: 'Bug, bad data, missing resource',\n  },\n})\n","signals\u002Fretryable.ts","typescript","",[645,746,747,780,787,812,833,875,892,903,920,937,943],{"__ignoreMap":744},[748,749,752,756,760,764,767,770,773,777],"span",{"class":750,"line":751},"line",1,[748,753,755],{"class":754},"s7zQu","import",[748,757,759],{"class":758},"sMK4o"," {",[748,761,763],{"class":762},"sTEyZ"," defineSignal",[748,765,766],{"class":758}," }",[748,768,769],{"class":754}," from",[748,771,772],{"class":758}," '",[748,774,776],{"class":775},"sfazB","@evlog\u002Fsignals",[748,778,779],{"class":758},"'\n",[748,781,783],{"class":750,"line":782},2,[748,784,786],{"emptyLinePlaceholder":785},true,"\n",[748,788,790,793,797,800,803,806,809],{"class":750,"line":789},3,[748,791,792],{"class":754},"export",[748,794,796],{"class":795},"spNyl"," const",[748,798,799],{"class":762}," retryable ",[748,801,802],{"class":758},"=",[748,804,763],{"class":805},"s2Zo4",[748,807,808],{"class":762},"(",[748,810,811],{"class":758},"{\n",[748,813,815,819,822,824,827,830],{"class":750,"line":814},4,[748,816,818],{"class":817},"swJcz","  name",[748,820,821],{"class":758},":",[748,823,772],{"class":758},[748,825,826],{"class":775},"retryable",[748,828,829],{"class":758},"'",[748,831,832],{"class":758},",\n",[748,834,836,839,841,845,848,851,854,857,860,864,867,870,873],{"class":750,"line":835},5,[748,837,838],{"class":805},"  when",[748,840,821],{"class":758},[748,842,844],{"class":843},"sHdIc"," e",[748,846,847],{"class":795}," =>",[748,849,850],{"class":762}," (e",[748,852,853],{"class":758},".",[748,855,856],{"class":762},"status ",[748,858,859],{"class":758},"??",[748,861,863],{"class":862},"sbssI"," 0",[748,865,866],{"class":762},") ",[748,868,869],{"class":758},">=",[748,871,872],{"class":862}," 500",[748,874,832],{"class":758},[748,876,878,881,883,885,888,890],{"class":750,"line":877},6,[748,879,880],{"class":817},"  ask",[748,882,821],{"class":758},[748,884,772],{"class":758},[748,886,887],{"class":775},"Would the same request most likely succeed if retried in a few seconds?",[748,889,829],{"class":758},[748,891,832],{"class":758},[748,893,895,898,900],{"class":750,"line":894},7,[748,896,897],{"class":817},"  criteria",[748,899,821],{"class":758},[748,901,902],{"class":758}," {\n",[748,904,906,909,911,913,916,918],{"class":750,"line":905},8,[748,907,908],{"class":817},"    true",[748,910,821],{"class":758},[748,912,772],{"class":758},[748,914,915],{"class":775},"Timeout, connection reset, rate limit, transient upstream error",[748,917,829],{"class":758},[748,919,832],{"class":758},[748,921,923,926,928,930,933,935],{"class":750,"line":922},9,[748,924,925],{"class":817},"    false",[748,927,821],{"class":758},[748,929,772],{"class":758},[748,931,932],{"class":775},"Bug, bad data, missing resource",[748,934,829],{"class":758},[748,936,832],{"class":758},[748,938,940],{"class":750,"line":939},10,[748,941,942],{"class":758},"  },\n",[748,944,946,949],{"class":750,"line":945},11,[748,947,948],{"class":758},"}",[748,950,951],{"class":762},")\n",[738,953,958],{"className":954,"code":955,"filename":956,"language":957,"meta":744,"style":744},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\"retryable\": { \"value\": true, \"confidence\": 0.9 }\n","column","json",[645,959,960],{"__ignoreMap":744},[748,961,962,965,967,969,972,975,978,980,982,984,987,989,991,993,995,998],{"class":750,"line":751},[748,963,964],{"class":758},"\"",[748,966,826],{"class":775},[748,968,964],{"class":758},[748,970,971],{"class":762},": ",[748,973,974],{"class":758},"{",[748,976,977],{"class":758}," \"",[748,979,684],{"class":795},[748,981,964],{"class":758},[748,983,821],{"class":758},[748,985,986],{"class":758}," true,",[748,988,977],{"class":758},[748,990,656],{"class":795},[748,992,964],{"class":758},[748,994,821],{"class":758},[748,996,997],{"class":862}," 0.9",[748,999,1000],{"class":758}," }\n",[608,1002,1003,1004,1006,1007,1010],{},"This is the shape for ",[645,1005,665],{},": a retry policy, a \"did the customer get what they came for\", a \"does this deserve a reviewer\". The verdict is a boolean, so ",[645,1008,1009],{},"keep: v => v.value && v.confidence > 0.8"," reads as written.",[722,1012,1014],{"id":1013},"categorise-one-option-out-of-a-list","Categorise: one option out of a list",[608,1016,1017,1018,1020],{},"Name the options, each with the description the model matches against. The column's ",[645,1019,684],{}," is one of the keys, which makes it the shape to reach for when the question is \"which kind\":",[738,1022,1025],{"className":740,"code":1023,"filename":1024,"language":743,"meta":744,"style":744},"export 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, missing permission, client mistake',\n    app: 'A bug, a misconfiguration or a validation error in our own code',\n    upstream: 'A third-party dependency failed, timed out or rate-limited us',\n  },\n})\n","signals\u002Ffault.ts",[645,1026,1027,1044,1059,1088,1103,1112,1128,1144,1160,1164],{"__ignoreMap":744},[748,1028,1029,1031,1033,1036,1038,1040,1042],{"class":750,"line":751},[748,1030,792],{"class":754},[748,1032,796],{"class":795},[748,1034,1035],{"class":762}," fault ",[748,1037,802],{"class":758},[748,1039,763],{"class":805},[748,1041,808],{"class":762},[748,1043,811],{"class":758},[748,1045,1046,1048,1050,1052,1055,1057],{"class":750,"line":782},[748,1047,818],{"class":817},[748,1049,821],{"class":758},[748,1051,772],{"class":758},[748,1053,1054],{"class":775},"fault",[748,1056,829],{"class":758},[748,1058,832],{"class":758},[748,1060,1061,1063,1065,1067,1069,1071,1073,1075,1077,1079,1081,1083,1086],{"class":750,"line":789},[748,1062,838],{"class":805},[748,1064,821],{"class":758},[748,1066,844],{"class":843},[748,1068,847],{"class":795},[748,1070,850],{"class":762},[748,1072,853],{"class":758},[748,1074,856],{"class":762},[748,1076,859],{"class":758},[748,1078,863],{"class":862},[748,1080,866],{"class":762},[748,1082,869],{"class":758},[748,1084,1085],{"class":862}," 400",[748,1087,832],{"class":758},[748,1089,1090,1092,1094,1096,1099,1101],{"class":750,"line":814},[748,1091,880],{"class":817},[748,1093,821],{"class":758},[748,1095,772],{"class":758},[748,1097,1098],{"class":775},"Who is responsible for this failure?",[748,1100,829],{"class":758},[748,1102,832],{"class":758},[748,1104,1105,1108,1110],{"class":750,"line":835},[748,1106,1107],{"class":817},"  choice",[748,1109,821],{"class":758},[748,1111,902],{"class":758},[748,1113,1114,1117,1119,1121,1124,1126],{"class":750,"line":877},[748,1115,1116],{"class":817},"    client",[748,1118,821],{"class":758},[748,1120,772],{"class":758},[748,1122,1123],{"class":775},"Bad input, expired session, missing permission, client mistake",[748,1125,829],{"class":758},[748,1127,832],{"class":758},[748,1129,1130,1133,1135,1137,1140,1142],{"class":750,"line":894},[748,1131,1132],{"class":817},"    app",[748,1134,821],{"class":758},[748,1136,772],{"class":758},[748,1138,1139],{"class":775},"A bug, a misconfiguration or a validation error in our own code",[748,1141,829],{"class":758},[748,1143,832],{"class":758},[748,1145,1146,1149,1151,1153,1156,1158],{"class":750,"line":905},[748,1147,1148],{"class":817},"    upstream",[748,1150,821],{"class":758},[748,1152,772],{"class":758},[748,1154,1155],{"class":775},"A third-party dependency failed, timed out or rate-limited us",[748,1157,829],{"class":758},[748,1159,832],{"class":758},[748,1161,1162],{"class":750,"line":922},[748,1163,942],{"class":758},[748,1165,1166,1168],{"class":750,"line":939},[748,1167,948],{"class":758},[748,1169,951],{"class":762},[738,1171,1173],{"className":954,"code":1172,"filename":956,"language":957,"meta":744,"style":744},"\"fault\": { \"value\": \"upstream\", \"confidence\": 0.93 }\n",[645,1174,1175],{"__ignoreMap":744},[748,1176,1177,1179,1181,1183,1185,1187,1189,1191,1193,1195,1197,1200,1202,1205,1207,1209,1211,1213,1216],{"class":750,"line":751},[748,1178,964],{"class":758},[748,1180,1054],{"class":775},[748,1182,964],{"class":758},[748,1184,971],{"class":762},[748,1186,974],{"class":758},[748,1188,977],{"class":758},[748,1190,684],{"class":795},[748,1192,964],{"class":758},[748,1194,821],{"class":758},[748,1196,977],{"class":758},[748,1198,1199],{"class":775},"upstream",[748,1201,964],{"class":758},[748,1203,1204],{"class":758},",",[748,1206,977],{"class":758},[748,1208,656],{"class":795},[748,1210,964],{"class":758},[748,1212,821],{"class":758},[748,1214,1215],{"class":862}," 0.93",[748,1217,1000],{"class":758},[608,1219,1220,1221,653,1223,1226,1227,1230,1231,1234],{},"In ",[645,1222,665],{},[645,1224,1225],{},"v.value"," autocompletes to the option names, so ",[645,1228,1229],{},"v.value === 'app'"," is checked by the compiler. Add an ",[645,1232,1233],{},"unknown"," option when the event may not carry the answer; without it the model picks the least wrong of the others, and you lose the signal that your events are missing a field.",[722,1236,1238],{"id":1237},"rank-a-position-on-a-rubric","Rank: a position on a rubric",[608,1240,1241,1242,1244,1245,1247,1248,1251],{},"Ordered levels, lowest first. The column carries the most likely level as ",[645,1243,684],{}," and the probability-weighted position as ",[645,1246,705],{},", so ",[645,1249,1250],{},"severity.score > 1.5"," reads as \"closer to page than to watch\":",[738,1253,1256],{"className":740,"code":1254,"filename":1255,"language":743,"meta":744,"style":744},"export const severity = defineSignal({\n  name: 'severity',\n  when: e => (e.status ?? 0) >= 500,\n  ask: 'How urgent is this failure for the on-call engineer?',\n  score: ['noise', 'watch', 'page'],\n})\n","signals\u002Fseverity.ts",[645,1257,1258,1275,1290,1318,1333,1373],{"__ignoreMap":744},[748,1259,1260,1262,1264,1267,1269,1271,1273],{"class":750,"line":751},[748,1261,792],{"class":754},[748,1263,796],{"class":795},[748,1265,1266],{"class":762}," severity ",[748,1268,802],{"class":758},[748,1270,763],{"class":805},[748,1272,808],{"class":762},[748,1274,811],{"class":758},[748,1276,1277,1279,1281,1283,1286,1288],{"class":750,"line":782},[748,1278,818],{"class":817},[748,1280,821],{"class":758},[748,1282,772],{"class":758},[748,1284,1285],{"class":775},"severity",[748,1287,829],{"class":758},[748,1289,832],{"class":758},[748,1291,1292,1294,1296,1298,1300,1302,1304,1306,1308,1310,1312,1314,1316],{"class":750,"line":789},[748,1293,838],{"class":805},[748,1295,821],{"class":758},[748,1297,844],{"class":843},[748,1299,847],{"class":795},[748,1301,850],{"class":762},[748,1303,853],{"class":758},[748,1305,856],{"class":762},[748,1307,859],{"class":758},[748,1309,863],{"class":862},[748,1311,866],{"class":762},[748,1313,869],{"class":758},[748,1315,872],{"class":862},[748,1317,832],{"class":758},[748,1319,1320,1322,1324,1326,1329,1331],{"class":750,"line":814},[748,1321,880],{"class":817},[748,1323,821],{"class":758},[748,1325,772],{"class":758},[748,1327,1328],{"class":775},"How urgent is this failure for the on-call engineer?",[748,1330,829],{"class":758},[748,1332,832],{"class":758},[748,1334,1335,1338,1340,1343,1345,1348,1350,1352,1354,1357,1359,1361,1363,1366,1368,1371],{"class":750,"line":835},[748,1336,1337],{"class":817},"  score",[748,1339,821],{"class":758},[748,1341,1342],{"class":762}," [",[748,1344,829],{"class":758},[748,1346,1347],{"class":775},"noise",[748,1349,829],{"class":758},[748,1351,1204],{"class":758},[748,1353,772],{"class":758},[748,1355,1356],{"class":775},"watch",[748,1358,829],{"class":758},[748,1360,1204],{"class":758},[748,1362,772],{"class":758},[748,1364,1365],{"class":775},"page",[748,1367,829],{"class":758},[748,1369,1370],{"class":762},"]",[748,1372,832],{"class":758},[748,1374,1375,1377],{"class":750,"line":877},[748,1376,948],{"class":758},[748,1378,951],{"class":762},[738,1380,1382],{"className":954,"code":1381,"filename":956,"language":957,"meta":744,"style":744},"\"severity\": { \"value\": \"watch\", \"score\": 1.2, \"confidence\": 0.6 }\n",[645,1383,1384],{"__ignoreMap":744},[748,1385,1386,1388,1390,1392,1394,1396,1398,1400,1402,1404,1406,1408,1410,1412,1414,1416,1418,1420,1423,1425,1427,1429,1431,1433,1436],{"class":750,"line":751},[748,1387,964],{"class":758},[748,1389,1285],{"class":775},[748,1391,964],{"class":758},[748,1393,971],{"class":762},[748,1395,974],{"class":758},[748,1397,977],{"class":758},[748,1399,684],{"class":795},[748,1401,964],{"class":758},[748,1403,821],{"class":758},[748,1405,977],{"class":758},[748,1407,1356],{"class":775},[748,1409,964],{"class":758},[748,1411,1204],{"class":758},[748,1413,977],{"class":758},[748,1415,705],{"class":795},[748,1417,964],{"class":758},[748,1419,821],{"class":758},[748,1421,1422],{"class":862}," 1.2",[748,1424,1204],{"class":758},[748,1426,977],{"class":758},[748,1428,656],{"class":795},[748,1430,964],{"class":758},[748,1432,821],{"class":758},[748,1434,1435],{"class":862}," 0.6",[748,1437,1000],{"class":758},[608,1439,1440,1441,1443,1444,1446,1447,1450,1451,1453,1454,1456,1457,1459,1460,1453,1462,1464],{},"Use ",[645,1442,705],{}," to sort and ",[645,1445,684],{}," to bucket. The confidence of a score signal is the probability of the top level, so a ",[645,1448,1449],{},"0.6"," here says the model was between ",[645,1452,1356],{}," and ",[645,1455,1365],{},". A model that answers without a distribution leaves ",[645,1458,656],{}," off choice and score columns; ",[645,1461,684],{},[645,1463,705],{}," are still there.",[722,1466,1468,1469,1472],{"id":1467},"scope-with-when-always","Scope with ",[645,1470,1471],{},"when",", always",[608,1474,1475,1477,1478,1481,1482,1484,1485,853],{},[645,1476,1471],{}," is a plain predicate and runs before anything else. No model call happens when it returns ",[645,1479,1480],{},"false",", which is what keeps a signal cheap: ",[645,1483,1054],{}," above costs nothing on the 99% of requests that succeed. It is required on any signal with ",[645,1486,665],{},[608,1488,1489,1490,1493,1494,653,1497,653,1500,1453,1503,1506,1507,1509,1510,1513,1514,821],{},"The event a signal sees is the wide event in ",[645,1491,1492],{},"enrich",", or the request context plus ",[645,1495,1496],{},"status",[645,1498,1499],{},"path",[645,1501,1502],{},"method",[645,1504,1505],{},"durationMs"," in ",[645,1508,665],{},". The fields evlog sets are typed; what your handlers logged with ",[645,1511,1512],{},"log.set()"," is there too, as ",[645,1515,1233],{},[738,1517,1519],{"className":740,"code":1518,"language":743,"meta":744,"style":744},"when: e => e.status === 200 && (e.payment as { provider?: string } | undefined)?.provider === 'stripe'\n",[645,1520,1521],{"__ignoreMap":744},[748,1522,1523,1526,1528,1530,1532,1534,1536,1538,1541,1544,1547,1549,1551,1554,1557,1559,1562,1565,1568,1570,1573,1576,1579,1582,1585,1587,1589,1592],{"class":750,"line":751},[748,1524,1471],{"class":1525},"sBMFI",[748,1527,821],{"class":758},[748,1529,844],{"class":843},[748,1531,847],{"class":795},[748,1533,844],{"class":762},[748,1535,853],{"class":758},[748,1537,856],{"class":762},[748,1539,1540],{"class":758},"===",[748,1542,1543],{"class":862}," 200",[748,1545,1546],{"class":758}," &&",[748,1548,850],{"class":762},[748,1550,853],{"class":758},[748,1552,1553],{"class":762},"payment ",[748,1555,1556],{"class":754},"as",[748,1558,759],{"class":758},[748,1560,1561],{"class":817}," provider",[748,1563,1564],{"class":758},"?:",[748,1566,1567],{"class":1525}," string",[748,1569,766],{"class":758},[748,1571,1572],{"class":758}," |",[748,1574,1575],{"class":1525}," undefined",[748,1577,1578],{"class":762},")",[748,1580,1581],{"class":758},"?.",[748,1583,1584],{"class":762},"provider ",[748,1586,1540],{"class":758},[748,1588,772],{"class":758},[748,1590,1591],{"class":775},"stripe",[748,1593,779],{"class":758},[722,1595,1597],{"id":1596},"write-a-question-the-model-can-answer","Write a question the model can answer",[608,1599,1600],{},"The model reads the event and the question, nothing else. Three checks before you ship one:",[1602,1603,1604,1612,1618],"ol",{},[1605,1606,1607,1611],"li",{},[1608,1609,1610],"strong",{},"The answer is in the event."," \"Would a retry succeed\" works because the error name and status are there. \"Is this user about to churn\" does not.",[1605,1613,1614,1617],{},[1608,1615,1616],{},"The answer is one value."," \"Was it slow, and was it our fault\" is two signals.",[1605,1619,1620,1623,1624,1626,1627,1630],{},[1608,1621,1622],{},"A rule could not do it."," If ",[645,1625,1471],{}," alone answers the question, you do not need the model. ",[645,1628,1629],{},"status >= 500"," is a rule. \"Transient or permanent\" is not.",[608,1632,1633,1636],{},[1634,1635,415],"a",{"href":476}," has twelve questions that pass, and the ones that do not.",[1638,1639,1640],"style",{},"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 .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}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}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 .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}",{"title":744,"searchDepth":782,"depth":782,"links":1642},[1643,1644,1645,1646,1648],{"id":724,"depth":782,"text":725},{"id":1013,"depth":782,"text":1014},{"id":1237,"depth":782,"text":1238},{"id":1467,"depth":782,"text":1647},"Scope with when, always",{"id":1596,"depth":782,"text":1597},"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.","md",[1652,1655],{"label":41,"icon":44,"to":460,"color":1653,"variant":1654},"neutral","subtle",{"label":436,"icon":84,"to":473,"color":1653,"variant":1654},{},{"title":463,"icon":466},{"title":463,"description":1649},"sXjofvsft9W4KA5CYkaqu5s1LTk3yQoVlHiUK0rSQfE",[1661,1663],{"title":41,"path":460,"stem":461,"description":1662,"icon":44,"children":-1},"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.",{"title":468,"path":469,"stem":470,"description":1664,"icon":471,"children":-1},"About $6 per 100k judged events, 1,200 calls a minute, up to 2 s before a kept event drains, and the event leaving your process. Each with its lever.",1791034607954]