[{"data":1,"prerenderedAt":1730},["ShallowReactive",2],{"navigation_docs":3,"-logging-ai-sdk-telemetry":427,"-logging-ai-sdk-telemetry-surround":1725},[4,35,159,201,289,324,411],{"title":5,"path":6,"stem":7,"children":8,"page":34},"Getting Started","\u002Fgetting-started","1.getting-started",[9,14,19,24,29],{"title":10,"path":11,"stem":12,"icon":13},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F1.introduction","i-lucide-info",{"title":15,"path":16,"stem":17,"icon":18},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F2.installation","i-lucide-download",{"title":20,"path":21,"stem":22,"icon":23},"Quick Start","\u002Fgetting-started\u002Fquick-start","1.getting-started\u002F3.quick-start","i-lucide-zap",{"title":25,"path":26,"stem":27,"icon":28},"Agent Skills","\u002Fgetting-started\u002Fagent-skills","1.getting-started\u002F4.agent-skills","i-lucide-sparkles",{"title":30,"path":31,"stem":32,"icon":33},"vs Other Loggers","\u002Fgetting-started\u002Fvs-other-loggers","1.getting-started\u002F5.vs-other-loggers","i-lucide-scale",false,{"title":36,"path":37,"stem":38,"children":39,"page":34},"Logging","\u002Flogging","2.logging",[40,45,50,55,60,65,70,99,127],{"title":41,"path":42,"stem":43,"icon":44},"Overview","\u002Flogging\u002Foverview","2.logging\u002F0.overview","i-lucide-list",{"title":46,"path":47,"stem":48,"icon":49},"Simple Logging","\u002Flogging\u002Fsimple-logging","2.logging\u002F1.simple-logging","i-lucide-terminal",{"title":51,"path":52,"stem":53,"icon":54},"Wide Events","\u002Flogging\u002Fwide-events","2.logging\u002F2.wide-events","i-lucide-layers",{"title":56,"path":57,"stem":58,"icon":59},"Structured Errors","\u002Flogging\u002Fstructured-errors","2.logging\u002F3.structured-errors","i-lucide-shield-alert",{"title":61,"path":62,"stem":63,"icon":64},"Catalogs","\u002Flogging\u002Fcatalogs","2.logging\u002F4.catalogs","i-lucide-book-open",{"title":66,"path":67,"stem":68,"icon":69},"Client Logging","\u002Flogging\u002Fclient-logging","2.logging\u002F5.client-logging","i-lucide-monitor",{"title":71,"icon":72,"path":73,"stem":74,"children":75,"page":34},"AI SDK","i-simple-icons-vercel","\u002Flogging\u002Fai-sdk","2.logging\u002F6.ai-sdk",[76,79,84,89,94],{"title":41,"path":77,"stem":78,"icon":44},"\u002Flogging\u002Fai-sdk\u002Foverview","2.logging\u002F6.ai-sdk\u002F01.overview",{"title":80,"path":81,"stem":82,"icon":83},"Usage","\u002Flogging\u002Fai-sdk\u002Fusage","2.logging\u002F6.ai-sdk\u002F02.usage","i-lucide-code",{"title":85,"path":86,"stem":87,"icon":88},"Options","\u002Flogging\u002Fai-sdk\u002Foptions","2.logging\u002F6.ai-sdk\u002F03.options","i-lucide-sliders",{"title":90,"path":91,"stem":92,"icon":93},"Metadata","\u002Flogging\u002Fai-sdk\u002Fmetadata","2.logging\u002F6.ai-sdk\u002F04.metadata","i-lucide-database",{"title":95,"path":96,"stem":97,"icon":98},"Telemetry","\u002Flogging\u002Fai-sdk\u002Ftelemetry","2.logging\u002F6.ai-sdk\u002F05.telemetry","i-lucide-activity",{"title":100,"icon":101,"path":102,"stem":103,"children":104,"page":34},"Better Auth","i-simple-icons-betterauth","\u002Flogging\u002Fbetter-auth","2.logging\u002F7.better-auth",[105,108,113,118,122],{"title":41,"path":106,"stem":107,"icon":44},"\u002Flogging\u002Fbetter-auth\u002Foverview","2.logging\u002F7.better-auth\u002F01.overview",{"title":109,"path":110,"stem":111,"icon":112},"Identify User","\u002Flogging\u002Fbetter-auth\u002Fidentify-user","2.logging\u002F7.better-auth\u002F02.identify-user","i-lucide-user-check",{"title":114,"path":115,"stem":116,"icon":117},"Middleware","\u002Flogging\u002Fbetter-auth\u002Fmiddleware","2.logging\u002F7.better-auth\u002F03.middleware","i-lucide-shield",{"title":119,"path":120,"stem":121,"icon":69},"Client Sync","\u002Flogging\u002Fbetter-auth\u002Fclient-sync","2.logging\u002F7.better-auth\u002F04.client-sync",{"title":123,"path":124,"stem":125,"icon":126},"Performance","\u002Flogging\u002Fbetter-auth\u002Fperformance","2.logging\u002F7.better-auth\u002F05.performance","i-lucide-gauge",{"title":128,"icon":129,"path":130,"stem":131,"children":132,"page":34},"Audit Logs","i-lucide-shield-check","\u002Flogging\u002Faudit","2.logging\u002F8.audit",[133,136,141,146,151,155],{"title":41,"path":134,"stem":135,"icon":44},"\u002Flogging\u002Faudit\u002Foverview","2.logging\u002F8.audit\u002F01.overview",{"title":137,"path":138,"stem":139,"icon":140},"Schema","\u002Flogging\u002Faudit\u002Fschema","2.logging\u002F8.audit\u002F02.schema","i-lucide-file-text",{"title":142,"path":143,"stem":144,"icon":145},"Recording","\u002Flogging\u002Faudit\u002Frecording","2.logging\u002F8.audit\u002F03.recording","i-lucide-pen-line",{"title":147,"path":148,"stem":149,"icon":150},"Drains","\u002Flogging\u002Faudit\u002Fpipeline","2.logging\u002F8.audit\u002F04.pipeline","i-lucide-link",{"title":152,"path":153,"stem":154,"icon":129},"Compliance","\u002Flogging\u002Faudit\u002Fcompliance","2.logging\u002F8.audit\u002F05.compliance",{"title":156,"path":157,"stem":158,"icon":64},"Recipes","\u002Flogging\u002Faudit\u002Frecipes","2.logging\u002F8.audit\u002F06.recipes",{"title":160,"path":161,"stem":162,"children":163,"page":34},"Core Concepts","\u002Fcore-concepts","3.core-concepts",[164,169,174,179,184,188,191,196],{"title":165,"path":166,"stem":167,"icon":168},"Lifecycle","\u002Fcore-concepts\u002Flifecycle","3.core-concepts\u002F0.lifecycle","i-lucide-arrow-right-left",{"title":170,"path":171,"stem":172,"icon":173},"Configuration","\u002Fcore-concepts\u002Fconfiguration","3.core-concepts\u002F1.configuration","i-lucide-settings",{"title":175,"path":176,"stem":177,"icon":178},"Sampling","\u002Fcore-concepts\u002Fsampling","3.core-concepts\u002F2.sampling","i-lucide-filter",{"title":180,"path":181,"stem":182,"icon":183},"Typed Fields","\u002Fcore-concepts\u002Ftyped-fields","3.core-concepts\u002F3.typed-fields","i-simple-icons-typescript",{"title":185,"path":186,"stem":187,"icon":129},"Best Practices","\u002Fcore-concepts\u002Fbest-practices","3.core-concepts\u002F4.best-practices",{"title":123,"path":189,"stem":190,"icon":126},"\u002Fcore-concepts\u002Fperformance","3.core-concepts\u002F5.performance",{"title":192,"path":193,"stem":194,"icon":195},"Vite Plugin","\u002Fcore-concepts\u002Fvite-plugin","3.core-concepts\u002F6.vite-plugin","i-custom-vite",{"title":197,"path":198,"stem":199,"icon":200},"Auto-Redaction","\u002Fcore-concepts\u002Fredaction","3.core-concepts\u002F7.redaction","i-lucide-eye-off",{"title":202,"path":203,"stem":204,"children":205,"page":34},"Frameworks","\u002Fframeworks","4.frameworks",[206,210,215,220,225,230,235,240,245,250,255,260,265,270,274,279,284],{"title":41,"path":207,"stem":208,"icon":209},"\u002Fframeworks\u002Foverview","4.frameworks\u002F00.overview","i-lucide-layout-grid",{"title":211,"path":212,"stem":213,"icon":214},"Nuxt","\u002Fframeworks\u002Fnuxt","4.frameworks\u002F01.nuxt","i-simple-icons-nuxtdotjs",{"title":216,"path":217,"stem":218,"icon":219},"Next.js","\u002Fframeworks\u002Fnextjs","4.frameworks\u002F02.nextjs","i-simple-icons-nextdotjs",{"title":221,"path":222,"stem":223,"icon":224},"SvelteKit","\u002Fframeworks\u002Fsveltekit","4.frameworks\u002F03.sveltekit","i-simple-icons-svelte",{"title":226,"path":227,"stem":228,"icon":229},"Nitro","\u002Fframeworks\u002Fnitro","4.frameworks\u002F04.nitro","i-custom-nitro",{"title":231,"path":232,"stem":233,"icon":234},"TanStack Start","\u002Fframeworks\u002Ftanstack-start","4.frameworks\u002F05.tanstack-start","i-custom-tanstack",{"title":236,"path":237,"stem":238,"icon":239},"NestJS","\u002Fframeworks\u002Fnestjs","4.frameworks\u002F06.nestjs","i-simple-icons-nestjs",{"title":241,"path":242,"stem":243,"icon":244},"Express","\u002Fframeworks\u002Fexpress","4.frameworks\u002F07.express","i-simple-icons-express",{"title":246,"path":247,"stem":248,"icon":249},"Hono","\u002Fframeworks\u002Fhono","4.frameworks\u002F08.hono","i-simple-icons-hono",{"title":251,"path":252,"stem":253,"icon":254},"Fastify","\u002Fframeworks\u002Ffastify","4.frameworks\u002F09.fastify","i-simple-icons-fastify",{"title":256,"path":257,"stem":258,"icon":259},"Elysia","\u002Fframeworks\u002Felysia","4.frameworks\u002F10.elysia","i-custom-elysia",{"title":261,"path":262,"stem":263,"icon":264},"React Router","\u002Fframeworks\u002Freact-router","4.frameworks\u002F11.react-router","i-custom-reactrouter",{"title":266,"path":267,"stem":268,"icon":269},"Cloudflare Workers","\u002Fframeworks\u002Fcloudflare-workers","4.frameworks\u002F12.cloudflare-workers","i-simple-icons-cloudflare",{"title":271,"path":272,"stem":273,"icon":183},"Standalone","\u002Fframeworks\u002Fstandalone","4.frameworks\u002F13.standalone",{"title":275,"path":276,"stem":277,"icon":278},"Astro","\u002Fframeworks\u002Fastro","4.frameworks\u002F14.astro","i-simple-icons-astro",{"title":280,"path":281,"stem":282,"icon":283},"AWS Lambda","\u002Fframeworks\u002Faws-lambda","4.frameworks\u002F16.aws-lambda","i-custom-lambda",{"title":285,"path":286,"stem":287,"icon":288},"Custom Integration","\u002Fframeworks\u002Fcustom-integration","4.frameworks\u002F17.custom-integration","i-lucide-puzzle",{"title":290,"path":291,"stem":292,"children":293,"page":34},"Build on top","\u002Fbuild-on-top","5.build-on-top",[294,297,302,307,311,315,320],{"title":41,"path":295,"stem":296,"icon":54},"\u002Fbuild-on-top\u002Foverview","5.build-on-top\u002F0.overview",{"title":298,"path":299,"stem":300,"icon":301},"Stream","\u002Fbuild-on-top\u002Fstream","5.build-on-top\u002F1.stream","i-lucide-radio-tower",{"title":303,"path":304,"stem":305,"icon":306},"FS reader","\u002Fbuild-on-top\u002Ffs-reader","5.build-on-top\u002F2.fs-reader","i-lucide-folder-search",{"title":156,"path":308,"stem":309,"icon":310},"\u002Fbuild-on-top\u002Fconsumer-recipes","5.build-on-top\u002F3.consumer-recipes","i-lucide-chef-hat",{"title":312,"path":313,"stem":314,"icon":288},"Pipeline extension","\u002Fbuild-on-top\u002Fpipeline-extension","5.build-on-top\u002F4.pipeline-extension",{"title":316,"path":317,"stem":318,"icon":319},"Sinks","\u002Fbuild-on-top\u002Fsinks","5.build-on-top\u002F5.sinks","i-lucide-share-2",{"title":321,"path":322,"stem":323,"icon":288},"Framework integration","\u002Fbuild-on-top\u002Fframework-integration","5.build-on-top\u002F6.framework-integration",{"title":325,"path":326,"stem":327,"children":328,"page":34},"Adapters","\u002Fadapters","6.adapters",[329,332,372,387],{"title":41,"path":330,"stem":331,"icon":44},"\u002Fadapters\u002Foverview","6.adapters\u002F01.overview",{"title":333,"path":334,"stem":335,"children":336,"page":34},"Cloud destinations","\u002Fadapters\u002Fcloud","6.adapters\u002F02.cloud",[337,342,347,352,357,362,367],{"title":338,"path":339,"stem":340,"icon":341},"Axiom","\u002Fadapters\u002Fcloud\u002Faxiom","6.adapters\u002F02.cloud\u002F01.axiom","i-custom-axiom",{"title":343,"path":344,"stem":345,"icon":346},"OTLP","\u002Fadapters\u002Fcloud\u002Fotlp","6.adapters\u002F02.cloud\u002F02.otlp","i-simple-icons-opentelemetry",{"title":348,"path":349,"stem":350,"icon":351},"PostHog","\u002Fadapters\u002Fcloud\u002Fposthog","6.adapters\u002F02.cloud\u002F03.posthog","i-simple-icons-posthog",{"title":353,"path":354,"stem":355,"icon":356},"Sentry","\u002Fadapters\u002Fcloud\u002Fsentry","6.adapters\u002F02.cloud\u002F04.sentry","i-simple-icons-sentry",{"title":358,"path":359,"stem":360,"icon":361},"Better Stack","\u002Fadapters\u002Fcloud\u002Fbetter-stack","6.adapters\u002F02.cloud\u002F05.better-stack","i-simple-icons-betterstack",{"title":363,"path":364,"stem":365,"icon":366},"Datadog","\u002Fadapters\u002Fcloud\u002Fdatadog","6.adapters\u002F02.cloud\u002F06.datadog","i-simple-icons-datadog",{"title":368,"path":369,"stem":370,"icon":371},"HyperDX","\u002Fadapters\u002Fcloud\u002Fhyperdx","6.adapters\u002F02.cloud\u002F07.hyperdx","i-custom-hyperdx",{"title":373,"path":374,"stem":375,"children":376,"page":34},"Self-hosted","\u002Fadapters\u002Fself-hosted","6.adapters\u002F03.self-hosted",[377,382],{"title":378,"path":379,"stem":380,"icon":381},"File System","\u002Fadapters\u002Fself-hosted\u002Ffs","6.adapters\u002F03.self-hosted\u002F01.fs","i-lucide-hard-drive",{"title":383,"path":384,"stem":385,"icon":386},"NuxtHub","\u002Fadapters\u002Fself-hosted\u002Fnuxthub","6.adapters\u002F03.self-hosted\u002F02.nuxthub","i-simple-icons-nuxt",{"title":388,"path":389,"stem":390,"children":391,"page":34},"Building blocks","\u002Fadapters\u002Fbuilding-blocks","6.adapters\u002F04.building-blocks",[392,397,402,406],{"title":393,"path":394,"stem":395,"icon":396},"Pipeline","\u002Fadapters\u002Fbuilding-blocks\u002Fpipeline","6.adapters\u002F04.building-blocks\u002F01.pipeline","i-lucide-workflow",{"title":398,"path":399,"stem":400,"icon":401},"HTTP","\u002Fadapters\u002Fbuilding-blocks\u002Fhttp","6.adapters\u002F04.building-blocks\u002F02.http","i-lucide-globe",{"title":403,"path":404,"stem":405,"icon":83},"Custom Adapters","\u002Fadapters\u002Fbuilding-blocks\u002Fcustom","6.adapters\u002F04.building-blocks\u002F03.custom",{"title":407,"path":408,"stem":409,"icon":410},"Toolkit","\u002Fadapters\u002Fbuilding-blocks\u002Ftoolkit","6.adapters\u002F04.building-blocks\u002F04.toolkit","i-lucide-blocks",{"title":412,"path":413,"stem":414,"children":415,"page":34},"Enrichers","\u002Fenrichers","7.enrichers",[416,419,423],{"title":41,"path":417,"stem":418,"icon":28},"\u002Fenrichers\u002Foverview","7.enrichers\u002F1.overview",{"title":420,"path":421,"stem":422,"icon":288},"Built-in","\u002Fenrichers\u002Fbuilt-in","7.enrichers\u002F2.built-in",{"title":424,"path":425,"stem":426,"icon":83},"Custom","\u002Fenrichers\u002Fcustom","7.enrichers\u002F3.custom",{"id":428,"title":429,"body":430,"description":1713,"extension":1714,"links":1715,"meta":1721,"navigation":1722,"path":96,"seo":1723,"stem":97,"__hash__":1724},"docs\u002F2.logging\u002F6.ai-sdk\u002F05.telemetry.md","Deeper Telemetry",{"type":431,"value":432,"toc":1707},"minimark",[433,449,454,465,795,798,1166,1170,1173,1293,1297,1366,1369,1373,1381,1558,1568,1682,1703],[434,435,436,440,441,444,445,448],"p",{},[437,438,439],"code",{},"createAILogger"," covers tokens, model info, and streaming metrics. For deeper observability — per-tool execution timing, success\u002Ffailure tracking, and total generation wall time — add ",[437,442,443],{},"createEvlogIntegration()"," on top. It implements the AI SDK's ",[437,446,447],{},"TelemetryIntegration"," interface and captures data middleware alone cannot see.",[450,451,453],"h2",{"id":452},"combined-with-middleware-recommended","Combined with middleware (recommended)",[434,455,456,457,460,461,464],{},"When passed an ",[437,458,459],{},"AILogger",", the integration shares its accumulator. Both paths write to the same ",[437,462,463],{},"ai.*"," field:",[466,467,473],"pre",{"className":468,"code":469,"filename":470,"language":471,"meta":472,"style":472},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { generateText } from 'ai'\nimport { createAILogger, createEvlogIntegration } from 'evlog\u002Fai'\n\nexport default defineEventHandler(async (event) => {\n  const log = useLogger(event)\n  const ai = createAILogger(log)\n\n  const result = await generateText({\n    model: ai.wrap('anthropic\u002Fclaude-sonnet-4.6'),\n    tools: { getWeather, searchDB },\n    experimental_telemetry: {\n      isEnabled: true,\n      integrations: [createEvlogIntegration(ai)],\n    },\n  })\n\n  return { text: result.text }\n})\n","server\u002Fapi\u002Fagent.post.ts","typescript","",[437,474,475,508,535,542,578,601,620,625,645,677,698,708,722,745,751,759,764,787],{"__ignoreMap":472},[476,477,480,484,488,492,495,498,501,505],"span",{"class":478,"line":479},"line",1,[476,481,483],{"class":482},"s7zQu","import",[476,485,487],{"class":486},"sMK4o"," {",[476,489,491],{"class":490},"sTEyZ"," generateText",[476,493,494],{"class":486}," }",[476,496,497],{"class":482}," from",[476,499,500],{"class":486}," '",[476,502,504],{"class":503},"sfazB","ai",[476,506,507],{"class":486},"'\n",[476,509,511,513,515,518,521,524,526,528,530,533],{"class":478,"line":510},2,[476,512,483],{"class":482},[476,514,487],{"class":486},[476,516,517],{"class":490}," createAILogger",[476,519,520],{"class":486},",",[476,522,523],{"class":490}," createEvlogIntegration",[476,525,494],{"class":486},[476,527,497],{"class":482},[476,529,500],{"class":486},[476,531,532],{"class":503},"evlog\u002Fai",[476,534,507],{"class":486},[476,536,538],{"class":478,"line":537},3,[476,539,541],{"emptyLinePlaceholder":540},true,"\n",[476,543,545,548,551,555,558,562,565,569,572,575],{"class":478,"line":544},4,[476,546,547],{"class":482},"export",[476,549,550],{"class":482}," default",[476,552,554],{"class":553},"s2Zo4"," defineEventHandler",[476,556,557],{"class":490},"(",[476,559,561],{"class":560},"spNyl","async",[476,563,564],{"class":486}," (",[476,566,568],{"class":567},"sHdIc","event",[476,570,571],{"class":486},")",[476,573,574],{"class":560}," =>",[476,576,577],{"class":486}," {\n",[476,579,581,584,587,590,593,596,598],{"class":478,"line":580},5,[476,582,583],{"class":560},"  const",[476,585,586],{"class":490}," log",[476,588,589],{"class":486}," =",[476,591,592],{"class":553}," useLogger",[476,594,557],{"class":595},"swJcz",[476,597,568],{"class":490},[476,599,600],{"class":595},")\n",[476,602,604,606,609,611,613,615,618],{"class":478,"line":603},6,[476,605,583],{"class":560},[476,607,608],{"class":490}," ai",[476,610,589],{"class":486},[476,612,517],{"class":553},[476,614,557],{"class":595},[476,616,617],{"class":490},"log",[476,619,600],{"class":595},[476,621,623],{"class":478,"line":622},7,[476,624,541],{"emptyLinePlaceholder":540},[476,626,628,630,633,635,638,640,642],{"class":478,"line":627},8,[476,629,583],{"class":560},[476,631,632],{"class":490}," result",[476,634,589],{"class":486},[476,636,637],{"class":482}," await",[476,639,491],{"class":553},[476,641,557],{"class":595},[476,643,644],{"class":486},"{\n",[476,646,648,651,654,656,659,662,664,667,670,672,674],{"class":478,"line":647},9,[476,649,650],{"class":595},"    model",[476,652,653],{"class":486},":",[476,655,608],{"class":490},[476,657,658],{"class":486},".",[476,660,661],{"class":553},"wrap",[476,663,557],{"class":595},[476,665,666],{"class":486},"'",[476,668,669],{"class":503},"anthropic\u002Fclaude-sonnet-4.6",[476,671,666],{"class":486},[476,673,571],{"class":595},[476,675,676],{"class":486},",\n",[476,678,680,683,685,687,690,692,695],{"class":478,"line":679},10,[476,681,682],{"class":595},"    tools",[476,684,653],{"class":486},[476,686,487],{"class":486},[476,688,689],{"class":490}," getWeather",[476,691,520],{"class":486},[476,693,694],{"class":490}," searchDB",[476,696,697],{"class":486}," },\n",[476,699,701,704,706],{"class":478,"line":700},11,[476,702,703],{"class":595},"    experimental_telemetry",[476,705,653],{"class":486},[476,707,577],{"class":486},[476,709,711,714,716,720],{"class":478,"line":710},12,[476,712,713],{"class":595},"      isEnabled",[476,715,653],{"class":486},[476,717,719],{"class":718},"sfNiH"," true",[476,721,676],{"class":486},[476,723,725,728,730,733,736,738,740,743],{"class":478,"line":724},13,[476,726,727],{"class":595},"      integrations",[476,729,653],{"class":486},[476,731,732],{"class":595}," [",[476,734,735],{"class":553},"createEvlogIntegration",[476,737,557],{"class":595},[476,739,504],{"class":490},[476,741,742],{"class":595},")]",[476,744,676],{"class":486},[476,746,748],{"class":478,"line":747},14,[476,749,750],{"class":486},"    },\n",[476,752,754,757],{"class":478,"line":753},15,[476,755,756],{"class":486},"  }",[476,758,600],{"class":595},[476,760,762],{"class":478,"line":761},16,[476,763,541],{"emptyLinePlaceholder":540},[476,765,767,770,772,775,777,779,781,784],{"class":478,"line":766},17,[476,768,769],{"class":482},"  return",[476,771,487],{"class":486},[476,773,774],{"class":595}," text",[476,776,653],{"class":486},[476,778,632],{"class":490},[476,780,658],{"class":486},[476,782,783],{"class":490},"text",[476,785,786],{"class":486}," }\n",[476,788,790,793],{"class":478,"line":789},18,[476,791,792],{"class":486},"}",[476,794,600],{"class":490},[434,796,797],{},"Your wide event now includes per-tool timing:",[466,799,804],{"className":800,"code":801,"filename":802,"language":803,"meta":472,"style":472},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"ai\": {\n    \"calls\": 2,\n    \"steps\": 2,\n    \"model\": \"claude-sonnet-4.6\",\n    \"provider\": \"anthropic\",\n    \"inputTokens\": 3500,\n    \"outputTokens\": 800,\n    \"totalTokens\": 4300,\n    \"toolCalls\": [\"getWeather\", \"searchDB\"],\n    \"tools\": [\n      { \"name\": \"getWeather\", \"durationMs\": 150, \"success\": true },\n      { \"name\": \"searchDB\", \"durationMs\": 45, \"success\": true }\n    ],\n    \"totalDurationMs\": 2340,\n    \"msToFirstChunk\": 180,\n    \"msToFinish\": 2100,\n    \"tokensPerSecond\": 380\n  }\n}\n","Wide Event","json",[437,805,806,810,824,843,858,879,899,915,931,947,979,993,1042,1087,1092,1108,1124,1140,1154,1160],{"__ignoreMap":472},[476,807,808],{"class":478,"line":479},[476,809,644],{"class":486},[476,811,812,815,817,820,822],{"class":478,"line":510},[476,813,814],{"class":486},"  \"",[476,816,504],{"class":560},[476,818,819],{"class":486},"\"",[476,821,653],{"class":486},[476,823,577],{"class":486},[476,825,826,829,833,835,837,841],{"class":478,"line":537},[476,827,828],{"class":486},"    \"",[476,830,832],{"class":831},"sBMFI","calls",[476,834,819],{"class":486},[476,836,653],{"class":486},[476,838,840],{"class":839},"sbssI"," 2",[476,842,676],{"class":486},[476,844,845,847,850,852,854,856],{"class":478,"line":544},[476,846,828],{"class":486},[476,848,849],{"class":831},"steps",[476,851,819],{"class":486},[476,853,653],{"class":486},[476,855,840],{"class":839},[476,857,676],{"class":486},[476,859,860,862,865,867,869,872,875,877],{"class":478,"line":580},[476,861,828],{"class":486},[476,863,864],{"class":831},"model",[476,866,819],{"class":486},[476,868,653],{"class":486},[476,870,871],{"class":486}," \"",[476,873,874],{"class":503},"claude-sonnet-4.6",[476,876,819],{"class":486},[476,878,676],{"class":486},[476,880,881,883,886,888,890,892,895,897],{"class":478,"line":603},[476,882,828],{"class":486},[476,884,885],{"class":831},"provider",[476,887,819],{"class":486},[476,889,653],{"class":486},[476,891,871],{"class":486},[476,893,894],{"class":503},"anthropic",[476,896,819],{"class":486},[476,898,676],{"class":486},[476,900,901,903,906,908,910,913],{"class":478,"line":622},[476,902,828],{"class":486},[476,904,905],{"class":831},"inputTokens",[476,907,819],{"class":486},[476,909,653],{"class":486},[476,911,912],{"class":839}," 3500",[476,914,676],{"class":486},[476,916,917,919,922,924,926,929],{"class":478,"line":627},[476,918,828],{"class":486},[476,920,921],{"class":831},"outputTokens",[476,923,819],{"class":486},[476,925,653],{"class":486},[476,927,928],{"class":839}," 800",[476,930,676],{"class":486},[476,932,933,935,938,940,942,945],{"class":478,"line":647},[476,934,828],{"class":486},[476,936,937],{"class":831},"totalTokens",[476,939,819],{"class":486},[476,941,653],{"class":486},[476,943,944],{"class":839}," 4300",[476,946,676],{"class":486},[476,948,949,951,954,956,958,960,962,965,967,969,971,974,976],{"class":478,"line":679},[476,950,828],{"class":486},[476,952,953],{"class":831},"toolCalls",[476,955,819],{"class":486},[476,957,653],{"class":486},[476,959,732],{"class":486},[476,961,819],{"class":486},[476,963,964],{"class":503},"getWeather",[476,966,819],{"class":486},[476,968,520],{"class":486},[476,970,871],{"class":486},[476,972,973],{"class":503},"searchDB",[476,975,819],{"class":486},[476,977,978],{"class":486},"],\n",[476,980,981,983,986,988,990],{"class":478,"line":700},[476,982,828],{"class":486},[476,984,985],{"class":831},"tools",[476,987,819],{"class":486},[476,989,653],{"class":486},[476,991,992],{"class":486}," [\n",[476,994,995,998,1000,1003,1005,1007,1009,1011,1013,1015,1017,1020,1022,1024,1027,1029,1031,1034,1036,1038,1040],{"class":478,"line":710},[476,996,997],{"class":486},"      {",[476,999,871],{"class":486},[476,1001,1002],{"class":839},"name",[476,1004,819],{"class":486},[476,1006,653],{"class":486},[476,1008,871],{"class":486},[476,1010,964],{"class":503},[476,1012,819],{"class":486},[476,1014,520],{"class":486},[476,1016,871],{"class":486},[476,1018,1019],{"class":839},"durationMs",[476,1021,819],{"class":486},[476,1023,653],{"class":486},[476,1025,1026],{"class":839}," 150",[476,1028,520],{"class":486},[476,1030,871],{"class":486},[476,1032,1033],{"class":839},"success",[476,1035,819],{"class":486},[476,1037,653],{"class":486},[476,1039,719],{"class":486},[476,1041,697],{"class":486},[476,1043,1044,1046,1048,1050,1052,1054,1056,1058,1060,1062,1064,1066,1068,1070,1073,1075,1077,1079,1081,1083,1085],{"class":478,"line":724},[476,1045,997],{"class":486},[476,1047,871],{"class":486},[476,1049,1002],{"class":839},[476,1051,819],{"class":486},[476,1053,653],{"class":486},[476,1055,871],{"class":486},[476,1057,973],{"class":503},[476,1059,819],{"class":486},[476,1061,520],{"class":486},[476,1063,871],{"class":486},[476,1065,1019],{"class":839},[476,1067,819],{"class":486},[476,1069,653],{"class":486},[476,1071,1072],{"class":839}," 45",[476,1074,520],{"class":486},[476,1076,871],{"class":486},[476,1078,1033],{"class":839},[476,1080,819],{"class":486},[476,1082,653],{"class":486},[476,1084,719],{"class":486},[476,1086,786],{"class":486},[476,1088,1089],{"class":478,"line":747},[476,1090,1091],{"class":486},"    ],\n",[476,1093,1094,1096,1099,1101,1103,1106],{"class":478,"line":753},[476,1095,828],{"class":486},[476,1097,1098],{"class":831},"totalDurationMs",[476,1100,819],{"class":486},[476,1102,653],{"class":486},[476,1104,1105],{"class":839}," 2340",[476,1107,676],{"class":486},[476,1109,1110,1112,1115,1117,1119,1122],{"class":478,"line":761},[476,1111,828],{"class":486},[476,1113,1114],{"class":831},"msToFirstChunk",[476,1116,819],{"class":486},[476,1118,653],{"class":486},[476,1120,1121],{"class":839}," 180",[476,1123,676],{"class":486},[476,1125,1126,1128,1131,1133,1135,1138],{"class":478,"line":766},[476,1127,828],{"class":486},[476,1129,1130],{"class":831},"msToFinish",[476,1132,819],{"class":486},[476,1134,653],{"class":486},[476,1136,1137],{"class":839}," 2100",[476,1139,676],{"class":486},[476,1141,1142,1144,1147,1149,1151],{"class":478,"line":789},[476,1143,828],{"class":486},[476,1145,1146],{"class":831},"tokensPerSecond",[476,1148,819],{"class":486},[476,1150,653],{"class":486},[476,1152,1153],{"class":839}," 380\n",[476,1155,1157],{"class":478,"line":1156},19,[476,1158,1159],{"class":486},"  }\n",[476,1161,1163],{"class":478,"line":1162},20,[476,1164,1165],{"class":486},"}\n",[450,1167,1169],{"id":1168},"standalone-without-middleware","Standalone (without middleware)",[434,1171,1172],{},"If your model is already wrapped (e.g. by another middleware), pass the request logger directly:",[466,1174,1177],{"className":468,"code":1175,"filename":1176,"language":471,"meta":472,"style":472},"import { createEvlogIntegration } from 'evlog\u002Fai'\n\nconst integration = createEvlogIntegration(log)\n\nconst result = await generateText({\n  model: somePreWrappedModel,\n  experimental_telemetry: {\n    isEnabled: true,\n    integrations: [integration],\n  },\n})\n","server\u002Fapi\u002Fchat.post.ts",[437,1178,1179,1197,1201,1217,1221,1238,1250,1259,1270,1282,1287],{"__ignoreMap":472},[476,1180,1181,1183,1185,1187,1189,1191,1193,1195],{"class":478,"line":479},[476,1182,483],{"class":482},[476,1184,487],{"class":486},[476,1186,523],{"class":490},[476,1188,494],{"class":486},[476,1190,497],{"class":482},[476,1192,500],{"class":486},[476,1194,532],{"class":503},[476,1196,507],{"class":486},[476,1198,1199],{"class":478,"line":510},[476,1200,541],{"emptyLinePlaceholder":540},[476,1202,1203,1206,1209,1212,1214],{"class":478,"line":537},[476,1204,1205],{"class":560},"const",[476,1207,1208],{"class":490}," integration ",[476,1210,1211],{"class":486},"=",[476,1213,523],{"class":553},[476,1215,1216],{"class":490},"(log)\n",[476,1218,1219],{"class":478,"line":544},[476,1220,541],{"emptyLinePlaceholder":540},[476,1222,1223,1225,1228,1230,1232,1234,1236],{"class":478,"line":580},[476,1224,1205],{"class":560},[476,1226,1227],{"class":490}," result ",[476,1229,1211],{"class":486},[476,1231,637],{"class":482},[476,1233,491],{"class":553},[476,1235,557],{"class":490},[476,1237,644],{"class":486},[476,1239,1240,1243,1245,1248],{"class":478,"line":603},[476,1241,1242],{"class":595},"  model",[476,1244,653],{"class":486},[476,1246,1247],{"class":490}," somePreWrappedModel",[476,1249,676],{"class":486},[476,1251,1252,1255,1257],{"class":478,"line":622},[476,1253,1254],{"class":595},"  experimental_telemetry",[476,1256,653],{"class":486},[476,1258,577],{"class":486},[476,1260,1261,1264,1266,1268],{"class":478,"line":627},[476,1262,1263],{"class":595},"    isEnabled",[476,1265,653],{"class":486},[476,1267,719],{"class":718},[476,1269,676],{"class":486},[476,1271,1272,1275,1277,1280],{"class":478,"line":647},[476,1273,1274],{"class":595},"    integrations",[476,1276,653],{"class":486},[476,1278,1279],{"class":490}," [integration]",[476,1281,676],{"class":486},[476,1283,1284],{"class":478,"line":679},[476,1285,1286],{"class":486},"  },\n",[476,1288,1289,1291],{"class":478,"line":700},[476,1290,792],{"class":486},[476,1292,600],{"class":490},[450,1294,1296],{"id":1295},"what-the-integration-captures","What the integration captures",[1298,1299,1300,1316],"table",{},[1301,1302,1303],"thead",{},[1304,1305,1306,1310,1313],"tr",{},[1307,1308,1309],"th",{},"Data",[1307,1311,1312],{},"Source",[1307,1314,1315],{},"Description",[1317,1318,1319,1347],"tbody",{},[1304,1320,1321,1327,1332],{},[1322,1323,1324],"td",{},[437,1325,1326],{},"ai.tools[]",[1322,1328,1329],{},[437,1330,1331],{},"onToolCallFinish",[1322,1333,1334,1335,1337,1338,1337,1340,1342,1343,1346],{},"Per-tool ",[437,1336,1002],{},", ",[437,1339,1019],{},[437,1341,1033],{},", and ",[437,1344,1345],{},"error"," (if failed)",[1304,1348,1349,1354,1363],{},[1322,1350,1351],{},[437,1352,1353],{},"ai.totalDurationMs",[1322,1355,1356,1359,1360],{},[437,1357,1358],{},"onStart"," → ",[437,1361,1362],{},"onFinish",[1322,1364,1365],{},"Total wall time from generation start to completion",[434,1367,1368],{},"The middleware captures tokens, model info, and streaming metrics. The integration captures tool execution timing. Together, they give you complete AI observability.",[450,1370,1372],{"id":1371},"composability","Composability",[434,1374,1375,1378,1379,653],{},[437,1376,1377],{},"ai.wrap()"," works with models that are already wrapped by other tools. If you use supermemory, guardrails middleware, or any other model wrapper, pass the wrapped model to ",[437,1380,1377],{},[466,1382,1384],{"className":468,"code":1383,"filename":1176,"language":471,"meta":472,"style":472},"import { createAILogger } from 'evlog\u002Fai'\nimport { withSupermemory } from '@supermemory\u002Ftools\u002Fai-sdk'\nimport { createGateway } from 'ai'\n\nconst gateway = createGateway({ ... })\nconst ai = createAILogger(log)\nconst base = gateway('anthropic\u002Fclaude-sonnet-4.6')\nconst model = ai.wrap(withSupermemory(base, 'your-org-id', { mode: 'full' }))\n",[437,1385,1386,1404,1424,1443,1447,1470,1483,1505],{"__ignoreMap":472},[476,1387,1388,1390,1392,1394,1396,1398,1400,1402],{"class":478,"line":479},[476,1389,483],{"class":482},[476,1391,487],{"class":486},[476,1393,517],{"class":490},[476,1395,494],{"class":486},[476,1397,497],{"class":482},[476,1399,500],{"class":486},[476,1401,532],{"class":503},[476,1403,507],{"class":486},[476,1405,1406,1408,1410,1413,1415,1417,1419,1422],{"class":478,"line":510},[476,1407,483],{"class":482},[476,1409,487],{"class":486},[476,1411,1412],{"class":490}," withSupermemory",[476,1414,494],{"class":486},[476,1416,497],{"class":482},[476,1418,500],{"class":486},[476,1420,1421],{"class":503},"@supermemory\u002Ftools\u002Fai-sdk",[476,1423,507],{"class":486},[476,1425,1426,1428,1430,1433,1435,1437,1439,1441],{"class":478,"line":537},[476,1427,483],{"class":482},[476,1429,487],{"class":486},[476,1431,1432],{"class":490}," createGateway",[476,1434,494],{"class":486},[476,1436,497],{"class":482},[476,1438,500],{"class":486},[476,1440,504],{"class":503},[476,1442,507],{"class":486},[476,1444,1445],{"class":478,"line":544},[476,1446,541],{"emptyLinePlaceholder":540},[476,1448,1449,1451,1454,1456,1458,1460,1463,1466,1468],{"class":478,"line":580},[476,1450,1205],{"class":560},[476,1452,1453],{"class":490}," gateway ",[476,1455,1211],{"class":486},[476,1457,1432],{"class":553},[476,1459,557],{"class":490},[476,1461,1462],{"class":486},"{",[476,1464,1465],{"class":486}," ...",[476,1467,494],{"class":486},[476,1469,600],{"class":490},[476,1471,1472,1474,1477,1479,1481],{"class":478,"line":603},[476,1473,1205],{"class":560},[476,1475,1476],{"class":490}," ai ",[476,1478,1211],{"class":486},[476,1480,517],{"class":553},[476,1482,1216],{"class":490},[476,1484,1485,1487,1490,1492,1495,1497,1499,1501,1503],{"class":478,"line":622},[476,1486,1205],{"class":560},[476,1488,1489],{"class":490}," base ",[476,1491,1211],{"class":486},[476,1493,1494],{"class":553}," gateway",[476,1496,557],{"class":490},[476,1498,666],{"class":486},[476,1500,669],{"class":503},[476,1502,666],{"class":486},[476,1504,600],{"class":490},[476,1506,1507,1509,1512,1514,1516,1518,1520,1522,1525,1528,1530,1532,1535,1537,1539,1541,1544,1546,1548,1551,1553,1555],{"class":478,"line":627},[476,1508,1205],{"class":560},[476,1510,1511],{"class":490}," model ",[476,1513,1211],{"class":486},[476,1515,608],{"class":490},[476,1517,658],{"class":486},[476,1519,661],{"class":553},[476,1521,557],{"class":490},[476,1523,1524],{"class":553},"withSupermemory",[476,1526,1527],{"class":490},"(base",[476,1529,520],{"class":486},[476,1531,500],{"class":486},[476,1533,1534],{"class":503},"your-org-id",[476,1536,666],{"class":486},[476,1538,520],{"class":486},[476,1540,487],{"class":486},[476,1542,1543],{"class":595}," mode",[476,1545,653],{"class":486},[476,1547,500],{"class":486},[476,1549,1550],{"class":503},"full",[476,1552,666],{"class":486},[476,1554,494],{"class":486},[476,1556,1557],{"class":490},"))\n",[434,1559,1560,1561,1564,1565,653],{},"For explicit middleware composition, use ",[437,1562,1563],{},"createAIMiddleware"," to get the raw middleware and compose it yourself via ",[437,1566,1567],{},"wrapLanguageModel",[466,1569,1571],{"className":468,"code":1570,"filename":1176,"language":471,"meta":472,"style":472},"import { createAIMiddleware } from 'evlog\u002Fai'\nimport { wrapLanguageModel } from 'ai'\n\nconst model = wrapLanguageModel({\n  model: base,\n  middleware: [createAIMiddleware(log, { toolInputs: true }), otherMiddleware],\n})\n",[437,1572,1573,1592,1611,1615,1629,1640,1676],{"__ignoreMap":472},[476,1574,1575,1577,1579,1582,1584,1586,1588,1590],{"class":478,"line":479},[476,1576,483],{"class":482},[476,1578,487],{"class":486},[476,1580,1581],{"class":490}," createAIMiddleware",[476,1583,494],{"class":486},[476,1585,497],{"class":482},[476,1587,500],{"class":486},[476,1589,532],{"class":503},[476,1591,507],{"class":486},[476,1593,1594,1596,1598,1601,1603,1605,1607,1609],{"class":478,"line":510},[476,1595,483],{"class":482},[476,1597,487],{"class":486},[476,1599,1600],{"class":490}," wrapLanguageModel",[476,1602,494],{"class":486},[476,1604,497],{"class":482},[476,1606,500],{"class":486},[476,1608,504],{"class":503},[476,1610,507],{"class":486},[476,1612,1613],{"class":478,"line":537},[476,1614,541],{"emptyLinePlaceholder":540},[476,1616,1617,1619,1621,1623,1625,1627],{"class":478,"line":544},[476,1618,1205],{"class":560},[476,1620,1511],{"class":490},[476,1622,1211],{"class":486},[476,1624,1600],{"class":553},[476,1626,557],{"class":490},[476,1628,644],{"class":486},[476,1630,1631,1633,1635,1638],{"class":478,"line":580},[476,1632,1242],{"class":595},[476,1634,653],{"class":486},[476,1636,1637],{"class":490}," base",[476,1639,676],{"class":486},[476,1641,1642,1645,1647,1649,1651,1654,1656,1658,1661,1663,1665,1667,1669,1671,1674],{"class":478,"line":603},[476,1643,1644],{"class":595},"  middleware",[476,1646,653],{"class":486},[476,1648,732],{"class":490},[476,1650,1563],{"class":553},[476,1652,1653],{"class":490},"(log",[476,1655,520],{"class":486},[476,1657,487],{"class":486},[476,1659,1660],{"class":595}," toolInputs",[476,1662,653],{"class":486},[476,1664,719],{"class":718},[476,1666,494],{"class":486},[476,1668,571],{"class":490},[476,1670,520],{"class":486},[476,1672,1673],{"class":490}," otherMiddleware]",[476,1675,676],{"class":486},[476,1677,1678,1680],{"class":478,"line":622},[476,1679,792],{"class":486},[476,1681,600],{"class":490},[434,1683,1684,1686,1687,1689,1690,1692,1693,1696,1697,1699,1700,1702],{},[437,1685,1563],{}," returns the same middleware that ",[437,1688,439],{}," uses internally. The difference: ",[437,1691,1563],{}," does not include ",[437,1694,1695],{},"captureEmbed"," (embedding models don't use middleware). Use ",[437,1698,439],{}," for the full API, ",[437,1701,1563],{}," when you need explicit middleware ordering.",[1704,1705,1706],"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 .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}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 .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}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}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":472,"searchDepth":510,"depth":510,"links":1708},[1709,1710,1711,1712],{"id":452,"depth":510,"text":453},{"id":1168,"depth":510,"text":1169},{"id":1295,"depth":510,"text":1296},{"id":1371,"depth":510,"text":1372},"Add tool execution timing and total wall time with createEvlogIntegration. Compose with other middleware like supermemory or guardrails.","md",[1716,1719],{"label":41,"icon":44,"to":77,"color":1717,"variant":1718},"neutral","subtle",{"label":1720,"icon":83,"to":81,"color":1717,"variant":1718},"Usage Patterns",{},{"title":95,"icon":98},{"title":429,"description":1713},"WhbBRzREyxKmgO14d6e8TZxaYaYlecS7spxQ6m5kUtw",[1726,1728],{"title":90,"path":91,"stem":92,"description":1727,"icon":93,"children":-1},"Read AI metadata from your handler — persist it, surface it to end-users, bill against it, or stream incremental progress to the client.",{"title":41,"path":106,"stem":107,"description":1729,"icon":44,"children":-1},"Automatically identify users on every request. Every wide event includes who made the request — userId, user profile, and session metadata — with zero manual work.",1778347788931]