autotel-devtools 27.2.1 → 28.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -248,6 +248,7 @@ severity_number >= 17 # logs: error and above
248
248
  parent_span_id = NULL # root spans only
249
249
  "user id" = "u-42" # quote a key a bare word can't spell
250
250
  checkout # bare words are free text
251
+ SAVE20 # ...including attribute *values*
251
252
  ```
252
253
 
253
254
  **Fields.** Traces: `service`, `name`, `kind`, `duration`, `status`, `trace_id`,
@@ -255,6 +256,12 @@ checkout # bare words are free text
255
256
  `trace_id`, `span_id`, `body`. **Anything else is looked up as an attribute**, so
256
257
  every attribute your services emit is queryable without being declared.
257
258
 
259
+ **Free text** matches those first-class fields _and every attribute value_ — so
260
+ the order id or coupon code you set with `ctx.setAttribute` finds its span when
261
+ you type it on its own. Attribute **keys** are not matched: every span carries
262
+ resource keys like `host.name` and `process.command`, so matching keys would
263
+ make ordinary words match everything. Search by key with `key = value`.
264
+
258
265
  `severity` and `severity_number` both exist on purpose: the text is what you
259
266
  read, but "error and above" is a numeric comparison and string ordering cannot
260
267
  express it.
package/dist/cli.cjs CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
- const require_http = require('./http-C6eqJu9T.cjs');
2
+ const require_http = require('./http-DD3SVQJp.cjs');
3
3
  const require_listen = require('./listen-l09RRHht.cjs');
4
- const require_grpc = require('./grpc-D-PgIW-i.cjs');
4
+ const require_grpc = require('./grpc-DB8OLUPR.cjs');
5
5
  let node_http = require("node:http");
6
6
  let node_fs = require("node:fs");
7
7
  let node_path = require("node:path");
package/dist/cli.js CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
- import { a as probePortHolder, g as hostHeaderIsLoopback, l as DevtoolsServer, r as resolveSourceRoot, t as attachDevtoolsRoutes } from "./http-KCnGSZXe.js";
2
+ import { a as probePortHolder, g as hostHeaderIsLoopback, l as DevtoolsServer, r as resolveSourceRoot, t as attachDevtoolsRoutes } from "./http-CHt5okyc.js";
3
3
  import { t as listenLoopbackDualStack } from "./listen-D-lLgfro.js";
4
- import { t as startOtlpGrpcReceiver } from "./grpc-CejDNrpg.js";
4
+ import { t as startOtlpGrpcReceiver } from "./grpc-BhGs5AGf.js";
5
5
  import { createServer } from "node:http";
6
6
  import { readFileSync } from "node:fs";
7
7
  import { dirname, resolve } from "node:path";
@@ -42,5 +42,5 @@ var AutotelDevtools=(function(e){Object.defineProperty(e,Symbol.toStringTag,{val
42
42
  returning the text plainly.`)},[()=>u(z(t).resultBytes),()=>u(Math.max(0,z(t).resultBytes-z(t).envelopeBytes))]),H(e,n)};W(_,e=>{z(t).envelopeCalls>0&&e(v)});var y=L(_,2),b=e=>{var n=pV(),r=L(F(n)),i=F(r,!0);D(r);var a=L(r),o=e=>{var n=fV(),r=L(I(n)),i=F(r,!0);D(r),R(e=>U(i,e),[()=>z(t).annotationsSent.filter(e=>!z(t).annotationsDropped.includes(e)).join(`, `)||`none`]),H(e,n)};W(a,e=>{z(t).annotationsDropped.length>0&&e(o)}),D(n),R(e=>U(i,e),[()=>z(t).annotationsSent.join(`, `)]),H(e,n)};W(y,e=>{z(t).annotationsSent.length>0&&e(b)});var x=L(y,2),S=e=>{var n=yV(),r=F(n),i=L(F(r),2),o=e=>{var t=mV(),n=F(t,!0);D(t),R(()=>U(n,z(a)?`Hide payloads`:`Reveal payloads`)),B(`click`,t,()=>P(a,!z(a))),H(e,t)},s=M(()=>z(t).recentCalls.some(e=>e.input||e.result));W(i,e=>{z(s)&&e(o)}),D(r);var c=L(r,2);G(c,21,()=>z(t).recentCalls,e=>e.spanId,(e,t)=>{var n=vV(),r=F(n),i=e=>{var n=hV(),r=F(n);D(n),R(()=>U(r,`#${z(t).seq??``}`)),H(e,n)};W(r,e=>{z(t).seq!==void 0&&e(i)});var a=L(r,2),o=F(a,!0);D(a);var s=L(a,2),c=e=>{var n=gV(),r=F(n,!0);D(n),R(()=>U(r,z(t).refusal??`refused`)),H(e,n)};W(s,e=>{z(t).refused&&e(c)});var l=L(s,2);let f;var p=F(l);D(l);var m=L(l,2),h=e=>{var n=_V(),r=F(n,!0);D(n),R(e=>U(r,e),[()=>d(z(t).result)]),H(e,n)};W(m,e=>{z(t).result&&e(h)}),D(n),R((e,n)=>{U(o,e),f=q(l,1,``,null,f,{"text-danger":z(t).error}),U(p,`${z(t).resultType??`result`??``} · ${n??``}`)},[()=>od(z(t).timestamp),()=>u(z(t).resultBytes)]),H(e,n)}),D(c),D(n),H(e,n)};W(x,e=>{z(t).recentCalls.length>0&&e(S)}),D(n),R(()=>{U(s,z(t).service),U(m,z(t).installationId)}),H(e,n)};W(_e,e=>{z(r)===z(n)&&e(ve)}),D(i),R((e,n,r)=>{U(p,z(t).name),U(ue,`${e??``} calls`),U(me,`${n??``} median result`),U(ge,r)},[()=>sd(z(t).calls),()=>u(z(t).medianResultBytes),()=>od(z(t).lastSeen)]),B(`click`,s,()=>P(r,z(r)===z(n)?null:z(n),!0)),H(e,i)}),D(re),R((e,t,n)=>{U(f,z(l).toolsOffered),U(h,e),U(_,`calls${z(l).errors>0?`, ${z(l).errors} failed`:``}`),b=q(y,1,`text-lg font-semibold`,null,b,{"text-warning":z(l).toolsWithDroppedAnnotations>0}),U(x,z(l).toolsWithDroppedAnnotations),U(w,t),U(ee,`result bytes${n??``}`)},[()=>sd(z(l).calls),()=>u(z(l).resultBytes),()=>z(l).envelopeBytes>0?` · ${u(z(l).envelopeBytes)} envelope`:``]),H(e,t)},b=e=>{var t=CV(),n=L(F(t),4);n.textContent=`npm install autotel-webmcp autotel-web
43
43
 
44
44
  import { instrumentWebMCP } from 'autotel-webmcp';
45
- instrumentWebMCP(); // before you register any tools`,Ke(2),D(t),H(e,t)};W(g,e=>{z(n).status===`loading`?e(_):z(n).status===`error`?e(v,1):z(c)&&z(l)&&z(c).tools.length>0?e(y,2):e(b,-1)}),D(f),B(`click`,h,()=>void s()),H(e,f),at()}ea([`click`]);var EV={traces:XA,agents:Ej,genai:ON,flow:xP,resources:jP,"service-map":lF,metrics:XR,logs:yz,errors:rB,security:xB,compare:IB,coverage:qB,webmcp:TV},DV=[{id:`traces`,label:`Traces`,icon:Up},{id:`agents`,label:`Agents`,icon:lp},{id:`genai`,label:`GenAI`,icon:Nh},{id:`flow`,label:`Flow`,icon:$h},{id:`resources`,label:`Resources`,icon:dp},{id:`service-map`,label:`Service Map`,icon:qm},{id:`metrics`,label:`Metrics`,icon:yp},{id:`logs`,label:`Logs`,icon:rm},{id:`errors`,label:`Errors`,icon:Gh},{id:`security`,label:`Security`,icon:kh},{id:`compare`,label:`Compare`,icon:hm},{id:`coverage`,label:`Coverage`,icon:_h},{id:`webmcp`,label:`WebMCP`,icon:tg}].filter(e=>EV[e.id]!==void 0),OV=DV.map(e=>e.id),kV=16,AV=48;function jV(e){let{isVertical:t,dock:n,axisSize:r,setSize:i,resetSize:a}=e,o=N(!1);return{get resizing(){return z(o)},onPointerDown:e=>{e.stopPropagation();let a=t(),s=a?`vertical`:`horizontal`,c=a?e.clientY:e.clientX,l=r(),u=n()===`bottom`||n()===`right`?-1:1;vy(e,{cursor:a?`ns-resize`:`ew-resize`,onStart:()=>P(o,!0),onMove:e=>{let t=a?e.clientY:e.clientX;i(s,l+(t-c)*u)},onEnd:()=>P(o,!1)})},onKeyDown:e=>{let a=t()?`vertical`:`horizontal`,o=e.shiftKey?AV:kV,s=t()?{ArrowUp:n()===`bottom`?o:-o,ArrowDown:n()===`bottom`?-o:o}:{ArrowLeft:n()===`right`?o:-o,ArrowRight:n()===`right`?-o:o};e.key in s&&(e.preventDefault(),i(a,r()+s[e.key]))},onDblClick:()=>a(t()?`vertical`:`horizontal`)}}function MV(e,t,n,r){let i={left:e,right:n-e,top:t,bottom:r-t};return Object.keys(i).reduce((e,t)=>i[t]<i[e]?t:e)}function NV(e){let{dock:t,pipActive:n,onDock:r}=e,i=N(!1),a=N(null);return{get dragging(){return z(i)},get dropTarget(){return z(a)},onHeaderPointerDown:e=>{e.button===0&&(e.target.closest(`button`)||n()||vy(e,{cursor:`grabbing`,onStart:()=>{P(i,!0),P(a,t(),!0)},onMove:e=>{P(a,MV(e.clientX,e.clientY,window.innerWidth,window.innerHeight),!0)},onEnd:()=>{P(i,!1),z(a)&&z(a)!==t()&&r(z(a)),P(a,null)}}))}}}function PV(e,t){it(t,!0);let n=M(()=>Bc.value),r=M(()=>EV[z(n)]??EV.traces);var i=la(),a=I(i),o=e=>{var t=la();Ra(I(t),()=>z(r),(e,t)=>{t(e,{})}),H(e,t)};W(a,e=>{z(r)&&e(o)}),H(e,i),at()}var FV=V(`<span class="absolute inset-0 rounded-full bg-success opacity-75 animate-ping" aria-hidden="true"></span>`),IV=V(`<span class="text-xs font-mono tabular-nums text-fg-subtle" title="Telemetry ingest rate"> </span>`),LV=V(`<span class="text-xs font-mono tabular-nums text-fg-subtle" title="Telemetry store usage and retention cap"> </span>`),RV=V(`<span> </span> <!> <!>`,1),zV=V(`<div role="status"><span class="relative inline-flex w-2 h-2 shrink-0"><!> <span aria-hidden="true"></span></span> <!></div>`);function BV(e,t){it(t,!0);let n=Z(t,`compact`,3,!1),r=M(()=>fl.value),i=M(()=>z(r)===`connected`?{dot:`bg-success`,label:`Connected`,text:`text-success`}:z(r)===`connecting`?{dot:`bg-warning animate-pulse`,label:`Connecting…`,text:`text-warning`}:{dot:`bg-danger`,label:`Disconnected`,text:`text-fg-subtle`}),a=M(()=>yl.value),o=N(!1);Lr(()=>{if(z(a),z(a)===0)return;P(o,!0);let e=setTimeout(()=>P(o,!1),900);return()=>clearTimeout(e)});let s=N(0);Lr(()=>{if(n())return;let e=()=>{P(s,Math.round(Cl(5e3).total),!0)};e();let t=setInterval(e,1e3);return()=>clearInterval(t)});let c=M(()=>!n()&&z(r)===`connected`&&z(s)>0),l=N(null);Lr(()=>{if(n()||z(r)!==`connected`)return;let e=!0,t=async()=>{let t=pl.value,n=(t?Zo(t):null)??globalThis.location?.origin;if(n)try{let t=await fetch(`${n}/api/stats`);t.ok&&e&&P(l,await t.json(),!0)}catch{}};t();let i=setInterval(t,3e4);return()=>{e=!1,clearInterval(i)}});function u(e){return e<1024**2?`${Math.round(e/1024)} KB`:e<1024**3?`${(e/1024**2).toFixed(1)} MB`:`${(e/1024**3).toFixed(1)} GB`}var d=zV(),f=F(d),p=F(f),m=e=>{H(e,FV())};W(p,e=>{z(o)&&z(r)===`connected`&&e(m)});var h=L(p,2);D(f);var g=L(f,2),_=e=>{var t=RV(),n=I(t),r=F(n,!0);D(n);var a=L(n,2),o=e=>{var t=IV(),n=F(t);D(t),R(()=>U(n,`· ${z(s)??``}/s`)),H(e,t)};W(a,e=>{z(c)&&e(o)});var d=L(a,2),f=e=>{var t=LV(),n=F(t);D(t),R((e,t)=>U(n,`· ${e??``} / ${t??``}`),[()=>u(z(l).bytesUsed),()=>u(z(l).maxBytes)]),H(e,t)};W(d,e=>{z(l)&&e(f)}),R(e=>{q(n,1,e),U(r,z(i).label)},[()=>K($(`text-xs font-medium`,z(i).text))]),H(e,t)};W(g,e=>{n()||e(_)}),D(d),R((e,t)=>{q(d,1,e),J(d,`aria-label`,`OTLP receiver: ${z(i).label}`),J(d,`title`,`OTLP receiver: ${z(i).label}${z(s)>0?` · ${z(s)}/s`:``}`),q(h,1,t)},[()=>K($(`flex items-center gap-1.5`,!n()&&`px-3 py-2`)),()=>K($(`relative inline-block w-2 h-2 rounded-full`,z(i).dot))]),H(e,d),at()}var VV=V(`<kbd class="inline-block px-1.5 py-0.5 font-mono text-xs font-semibold bg-hover border border-line rounded text-fg mr-1 last:mr-0 shadow-[0_1px_0_#d4d4d8]"> </kbd>`),HV=V(`<tr class="border-b border-line-subtle last:border-b-0"><td class="py-2.5 px-4 whitespace-nowrap align-middle w-[1%]"></td><td class="py-2.5 pr-4 pl-1 text-sm text-fg-muted align-middle"> </td></tr>`),UV=V(`<div class="fixed inset-0 z-[1000] flex items-center justify-center" role="dialog" aria-modal="true" aria-label="Keyboard shortcuts"><button type="button" aria-label="Close" class="absolute inset-0 bg-black/55 backdrop-blur-[2px] at-backdrop-in"></button> <div tabindex="-1" class="at-modal-in relative z-[1] bg-surface border border-line rounded-lg shadow-xl w-[480px] max-w-[90vw] max-h-[80vh] flex flex-col overflow-hidden outline-none"><div class="flex items-center justify-between px-4 py-3 border-b border-line bg-subtle flex-shrink-0"><span class="text-sm font-semibold text-fg">Keyboard Shortcuts</span> <button class="inline-flex items-center justify-center w-7 h-7 p-0 bg-transparent border border-line rounded cursor-pointer text-sm text-fg-subtle hover:bg-danger-bg hover:border-danger-border hover:text-danger transition-colors" title="Close (Esc)"><!></button></div> <div class="overflow-y-auto py-2"><table class="w-full border-collapse"><tbody></tbody></table></div></div></div>`);function WV(e,t){it(t,!0);let n=N(void 0);Lr(()=>{let e=e=>{e.key===`Escape`&&(e.stopPropagation(),t.onClose())},r=z(n);return r&&(r.addEventListener(`keydown`,e),r.focus()),window.addEventListener(`keydown`,e),()=>{r&&r.removeEventListener(`keydown`,e),window.removeEventListener(`keydown`,e)}});var r=UV(),i=F(r),a=L(i,2),o=F(a),s=L(F(o),2);rg(F(s),{size:14}),D(s),D(o);var c=L(o,2),l=F(c),u=F(l);G(u,21,()=>t.shortcuts,Oa,(e,t)=>{var n=HV(),r=F(n);G(r,21,()=>z(t).keys,Oa,(e,t)=>{var n=VV(),r=F(n,!0);D(n),R(()=>U(r,z(t)===`CmdOrCtrl`?xg?`⌘`:`Ctrl`:z(t)===`AltOrOpt`?xg?`⌥`:`Alt`:z(t))),H(e,n)}),D(r);var i=L(r),a=F(i,!0);D(i),D(n),R(()=>U(a,z(t).description)),H(e,n)}),D(u),D(l),D(c),D(a),Vo(a,e=>P(n,e),()=>z(n)),D(r),B(`click`,i,function(...e){t.onClose?.apply(this,e)}),B(`click`,s,function(...e){t.onClose?.apply(this,e)}),H(e,r),at()}ea([`click`]);var GV=V(`<div role="separator" aria-label="Resize panel" tabindex="0" title="Drag to resize · double-click to reset"><div></div> <div></div></div>`),KV=V(`<span class="text-fg-subtle/60 flex-shrink-0 pl-0.5" aria-hidden="true"><!></span>`),qV=V(`<span> </span>`),JV=V(`<button><!> <span> </span> <!></button>`),YV=V(`<button class="p-1.5 rounded-md text-fg-subtle hover:text-fg hover:bg-subtle transition-colors" title="Dock position (click to cycle: bottom → right → left) — or drag the header to an edge" aria-label="Change dock position"><!></button>`),XV=V(`<button class="p-1.5 rounded-md text-fg-subtle hover:text-fg hover:bg-subtle transition-colors"><!></button>`),ZV=V(`<button class="p-1.5 rounded-md text-fg-subtle hover:text-fg hover:bg-subtle transition-colors" title="Close (Esc)" aria-label="Close devtools"><!></button>`),QV=V(`<span class="px-2.5 py-1 rounded-md bg-accent text-white text-xs font-semibold shadow-lg"> </span>`),$V=V(`<div><!></div>`),eH=V(`<div class="fixed inset-0 z-[1001] pointer-events-none" aria-hidden="true"></div>`),tH=V(`<section aria-label="Autotel devtools"><!> <header><!> <div class="flex items-center gap-2 flex-shrink-0 pr-1 mr-0.5"><!> <span class="text-xs font-semibold tracking-tight text-fg hidden sm:inline">autotel</span></div> <nav class="flex items-center gap-0.5 overflow-x-auto min-w-0 flex-1 at-no-scrollbar" aria-label="Devtools sections"></nav> <div class="flex items-center gap-1 flex-shrink-0 pl-1"><!> <button class="p-1.5 rounded-md text-fg-subtle hover:text-fg hover:bg-subtle transition-colors" title="Keyboard shortcuts (?)" aria-label="Keyboard shortcuts"><!></button> <!> <!> <!></div></header> <div class="flex-1 min-h-0 overflow-hidden"><!></div> <!></section> <!>`,1);function nH(e,t){it(t,!0);let n=N(void 0),r=M(()=>Fc.value),i=M(()=>Bc.value),a=M(()=>Rc.value??`bottom`),o=M(()=>il.value),s=M(()=>zc.value),c=cg(),l=M(()=>z(a)===`bottom`||z(a)===`top`),u=M(()=>z(l)?z(o).vertical:z(o).horizontal),d=M(()=>al(z(l)?`vertical`:`horizontal`)),f=M(()=>su.value),p=M(()=>nu.value),m=M(()=>ru.value),h=M(()=>({genai:z(p)>0?z(p):void 0,flow:z(m)>0?z(m):void 0,errors:z(f)>0?z(f):void 0})),g=M(()=>DV.map(e=>({...e,badge:z(h)[e.id]}))),_=jV({isVertical:()=>z(l),dock:()=>z(a),axisSize:()=>z(u),setSize:ol,resetSize:sl}),v=NV({dock:()=>z(a),pipActive:()=>z(s),onDock:Lu});async function y(){if(z(s)){fg(()=>zc.value=!1);return}let e=z(n)?.getRootNode(),t=e instanceof ShadowRoot?e.host:null;t&&await dg(t,()=>zc.value=!1,{width:760,height:600})&&(zc.value=!0)}let b=globalThis.window!==void 0&&typeof window.matchMedia==`function`&&window.matchMedia(`(prefers-reduced-motion: reduce)`).matches;function x(e,{dock:t}){if(b||z(s))return{duration:0};let n=t===`left`||t===`right`?`X`:`Y`,r=t===`bottom`||t===`right`?1:-1;return{duration:240,easing:og,css:(e,t)=>`transform: translate${n}(${t*r*100}%)`}}let S=[`traces`,`genai`,`flow`,`service-map`,`metrics`,`logs`,`errors`],C=M(()=>$c.value);function w(){return Vc.value?vg:Bc.value===`traces`?_g:gg}Lr(()=>{let e=z(n)?.getRootNode(),t=e instanceof ShadowRoot||e instanceof Document?e:window,r=e=>{let t=e;if(t.key===`Escape`){if($c.value){tl();return}if(yg())return;if(zc.value){fg(()=>zc.value=!1);return}ju();return}if(t.key===`?`&&!yg()){t.preventDefault(),nl(w());return}if(!$c.value&&!yg()&&t.key>=`1`&&t.key<=`7`){let e=Number.parseInt(t.key,10)-1;e<S.length&&Mu(S[e])}};return t.addEventListener(`keydown`,r),()=>t.removeEventListener(`keydown`,r)});let T=M(()=>z(s)?`inset-0`:{bottom:`left-0 right-0 bottom-0`,top:`left-0 right-0 top-0`,right:`top-0 bottom-0 right-0`,left:`top-0 bottom-0 left-0`}[z(a)]),ee=M(()=>z(s)?``:{bottom:`border-t`,top:`border-b`,right:`border-l`,left:`border-r`}[z(a)]),te=M(()=>({bottom:`-top-1 left-0 right-0 h-2 cursor-ns-resize`,top:`-bottom-1 left-0 right-0 h-2 cursor-ns-resize`,right:`-left-1 top-0 bottom-0 w-2 cursor-ew-resize`,left:`-right-1 top-0 bottom-0 w-2 cursor-ew-resize`})[z(a)]),ne=M(()=>({bottom:`inset-x-0 top-1 h-px`,top:`inset-x-0 bottom-1 h-px`,right:`inset-y-0 left-1 w-px`,left:`inset-y-0 right-1 w-px`})[z(a)]),re=M(()=>z(s)?``:z(l)?`height: ${z(u)}px;`:`width: ${z(u)}px;`),ie=M(()=>z(s)?``:{bottom:`box-shadow: 0 -12px 32px -14px var(--at-shadow), 0 -2px 6px -4px var(--at-shadow);`,top:`box-shadow: 0 12px 32px -14px var(--at-shadow), 0 2px 6px -4px var(--at-shadow);`,right:`box-shadow: -12px 0 32px -14px var(--at-shadow), -2px 0 6px -4px var(--at-shadow);`,left:`box-shadow: 12px 0 32px -14px var(--at-shadow), 2px 0 6px -4px var(--at-shadow);`}[z(a)]),ae=M(()=>z(a)===`right`?$m:z(a)===`left`?Zm:Ym),oe=[{edge:`bottom`,pos:`left-0 right-0 bottom-0 h-24`,label:`Dock bottom`},{edge:`top`,pos:`left-0 right-0 top-0 h-24`,label:`Dock top`},{edge:`left`,pos:`top-0 bottom-0 left-0 w-44`,label:`Dock left`},{edge:`right`,pos:`top-0 bottom-0 right-0 w-44`,label:`Dock right`}];var se=la(),ce=I(se),le=e=>{var t=tH(),r=I(t),o=F(r),f=e=>{var t=GV(),n=F(t),r=L(n,2);D(t),R((e,i,a,o)=>{J(t,`aria-orientation`,z(l)?`horizontal`:`vertical`),J(t,`aria-valuenow`,e),J(t,`aria-valuemin`,z(d).min),J(t,`aria-valuemax`,z(d).max),q(t,1,i),q(n,1,a),q(r,1,o)},[()=>Math.round(z(u)),()=>K($(`absolute z-20 group touch-none select-none outline-none`,z(te))),()=>K($(`absolute bg-line-subtle transition-colors duration-150`,`group-hover:bg-accent group-focus-visible:bg-accent`,_.resizing&&`!bg-accent`,z(ne))),()=>K($(`absolute rounded-full bg-line transition-colors duration-150`,`group-hover:bg-accent group-focus-visible:bg-accent`,_.resizing&&`!bg-accent`,z(l)?`left-1/2 -translate-x-1/2 top-1/2 -translate-y-1/2 w-9 h-1`:`top-1/2 -translate-y-1/2 left-1/2 -translate-x-1/2 h-9 w-1`))]),B(`pointerdown`,t,function(...e){_.onPointerDown?.apply(this,e)}),B(`keydown`,t,function(...e){_.onKeyDown?.apply(this,e)}),B(`dblclick`,t,function(...e){_.onDblClick?.apply(this,e)}),H(e,t)};W(o,e=>{z(s)||e(f)});var p=L(o,2),m=F(p),h=e=>{var t=KV();ym(F(t),{size:14}),D(t),H(e,t)};W(m,e=>{z(s)||e(h)});var b=L(m,2);id(F(b),{width:18,height:18}),Ke(2),D(b);var S=L(b,2);G(S,21,()=>z(g),e=>e.id,(e,t)=>{let n=M(()=>z(t).icon),r=M(()=>z(i)===z(t).id);var a=JV(),o=F(a);{let e=M(()=>z(t).id===`errors`&&z(t).badge?`text-danger`:void 0);Ra(o,()=>z(n),(t,n)=>{n(t,{size:14,get class(){return z(e)}})})}var s=L(o,2),c=F(s,!0);D(s);var l=L(s,2),u=e=>{var n=qV(),r=F(n,!0);D(n),R(e=>{q(n,1,e),U(r,z(t).badge>99?`99+`:z(t).badge)},[()=>K($(`px-1.5 py-px text-[10px] font-semibold rounded-full`,z(t).id===`errors`?`bg-danger-bg text-danger`:`bg-accent/15 text-fg-muted`))]),H(e,n)};W(l,e=>{z(t).badge&&e(u)}),D(a),R(e=>{J(a,`aria-current`,z(r)?`page`:void 0),q(a,1,e),U(c,z(t).label)},[()=>K($(`flex items-center gap-1.5 px-2.5 h-8 rounded-md flex-shrink-0`,`text-xs transition-colors cursor-pointer`,z(r)?`bg-accent/12 text-fg font-semibold ring-1 ring-inset ring-accent/20`:`text-fg-subtle font-medium hover:text-fg hover:bg-subtle`))]),B(`click`,a,()=>Mu(z(t).id)),H(e,a)}),D(S);var se=L(S,2);{let e=e=>{let t=M(()=>z(ae));var n=la();Ra(I(n),()=>z(t),(e,t)=>{t(e,{size:15})}),H(e,n)};var ce=F(se);BV(ce,{compact:!0});var le=L(ce,2);jp(F(le),{size:15}),D(le);var E=L(le,2),ue=t=>{var n=YV(),r=F(n);e(r),D(n),B(`click`,n,function(...e){Ru?.apply(this,e)}),H(t,n)};W(E,e=>{z(s)||e(ue)});var de=L(E,2),fe=e=>{var t=XV(),n=F(t),r=e=>{zm(e,{size:15})},i=e=>{rh(e,{size:15})};W(n,e=>{z(s)?e(r):e(i,-1)}),D(t),R(()=>{J(t,`title`,z(s)?`Return to docked panel`:`Pop out to a separate window`),J(t,`aria-label`,z(s)?`Return to docked panel`:`Pop out to window`)}),B(`click`,t,y),H(e,t)};W(de,e=>{c&&e(fe)});var pe=L(de,2),me=e=>{var t=ZV();rg(F(t),{size:16}),D(t),B(`click`,t,function(...e){ju?.apply(this,e)}),H(e,t)};W(pe,e=>{z(s)||e(me)}),D(se),B(`click`,le,()=>nl(w()))}D(p);var he=L(p,2);PV(F(he),{}),D(he);var ge=L(he,2),_e=e=>{WV(e,{get shortcuts(){return z(C)},get onClose(){return tl}})};W(ge,e=>{z(C)&&e(_e)}),D(r),Vo(r,e=>P(n,e),()=>z(n));var ve=L(r,2),ye=e=>{var t=eH();G(t,21,()=>oe,e=>e.edge,(e,t)=>{let n=M(()=>v.dropTarget===z(t).edge);var r=$V(),i=F(r),a=e=>{var n=QV(),r=F(n,!0);D(n),R(()=>U(r,z(t).label)),H(e,n)};W(i,e=>{z(n)&&e(a)}),D(r),R(e=>q(r,1,e),[()=>K($(`absolute flex items-center justify-center transition-colors duration-100`,z(t).pos,z(n)?`bg-accent/15 ring-2 ring-inset ring-accent`:`bg-accent/5`))]),H(e,r)}),D(t),H(e,t)};W(ve,e=>{v.dragging&&e(ye)}),R((e,t)=>{q(r,1,e),oo(r,`${z(re)} ${z(ie)}`),q(p,1,t)},[()=>K($(`fixed z-[1000] flex flex-col`,`bg-surface text-fg`,z(T),z(ee),`border-line`)),()=>K($(`flex items-center gap-1 pl-2 pr-2 h-11 flex-shrink-0`,`border-b border-line bg-surface`,z(s)?``:`cursor-grab active:cursor-grabbing`))]),B(`pointerdown`,p,function(...e){v.onHeaderPointerDown?.apply(this,e)}),qa(3,r,()=>x,()=>({dock:z(a)})),H(e,t)};W(ce,e=>{z(r)&&e(le)}),H(e,se),at()}ea([`pointerdown`,`keydown`,`dblclick`,`click`]);var rH=V(`<button><!> </button>`),iH=V(`<nav></nav>`);function aH(e,t){it(t,!0);let n=Z(t,`orientation`,3,`horizontal`),r=M(()=>Bc.value);var i=iH();G(i,21,()=>DV,({id:e,label:t,icon:n})=>e,(e,t)=>{let n=()=>z(t).id,i=()=>z(t).label,a=()=>z(t).icon;var o=rH(),s=F(o);Ra(s,a,(e,t)=>{t(e,{size:14})});var c=L(s);D(o),R(e=>{q(o,1,e),U(c,` ${i()??``}`)},[()=>K($(`flex items-center gap-2 px-3 py-2 text-xs font-medium rounded transition-colors whitespace-nowrap`,z(r)===n()?`bg-accent text-white`:`text-fg-subtle hover:bg-hover hover:text-fg`))]),B(`click`,o,()=>Mu(n())),H(e,o)}),D(i),R(e=>q(i,1,e),[()=>K($(`flex gap-1 p-1`,n()===`vertical`?`flex-col w-48 border-r border-line`:`border-b border-line overflow-x-auto`))]),H(e,i),at()}ea([`click`]);var oH=V(`<!> <span class="font-medium">Snapshot mode</span> <span class="text-warning">— live updates paused.</span> <button class="ml-auto inline-flex items-center gap-1 px-2 py-0.5 rounded hover:bg-warning-bg transition-colors" title="Exit snapshot and clear data"><!> Exit</button>`,1),sH=V(`<span class="text-fg-subtle"> </span> <button class="ml-auto inline-flex items-center gap-1 px-2 py-0.5 rounded hover:bg-hover transition-colors disabled:opacity-40 disabled:cursor-not-allowed disabled:hover:bg-transparent"><!> Download snapshot</button> <button class="inline-flex items-center gap-1 px-2 py-0.5 rounded hover:bg-hover transition-colors" title="Load a snapshot file"><!> Load snapshot</button> <button class="inline-flex items-center gap-1 px-2 py-0.5 rounded hover:bg-hover hover:text-danger transition-colors" title="Clear all captured data — traces, logs, metrics and errors"><!> Clear</button>`,1),cH=V(`<span class="text-danger truncate"> </span>`),lH=V(`<span class="text-warning truncate"> </span>`),uH=V(`<div><!> <input type="file" accept="application/json,.json" class="hidden"/> <!> <!></div>`);function dH(e,t){it(t,!0);let n=N(void 0),r=N(null),i=N(null),a=M(()=>kl.value),o=M(()=>[{n:cl.value.length,one:`trace`,many:`traces`},{n:dl.value.length,one:`log`,many:`logs`},{n:ul.value.length,one:`error`,many:`errors`}].filter(e=>e.n>0).map(e=>`${e.n} ${e.n===1?e.one:e.many}`)),s=M(()=>z(o).length===0),c=()=>{P(r,null),P(i,null),Jy({traces:cl.value,logs:dl.value,errors:ul.value})},l=()=>{z(n)?.click()},u=()=>{P(r,null),P(i,null),Bu()},d=async e=>{P(r,null),P(i,null);let t=e.currentTarget,n=t.files?.[0];if(t.value=``,!n)return;let a=await Zy(n);if(!a.success||!a.snapshot){P(r,a.errors.join(`; `)||`Failed to load snapshot`,!0);return}a.warnings.length>0&&P(i,a.warnings.join(`; `),!0),ku(a.snapshot)};var f=uH(),p=F(f),m=e=>{var t=oH(),n=I(t);hp(n,{size:12});var r=L(n,6);rg(F(r),{size:12}),Ke(),D(r),B(`click`,r,function(...e){Au?.apply(this,e)}),H(e,t)},h=e=>{var t=sH(),n=I(t),r=F(n,!0);D(n);var i=L(n,2);hp(F(i),{size:12}),Ke(),D(i);var a=L(i,2);qh(F(a),{size:12}),Ke(),D(a);var d=L(a,2);Vh(F(d),{size:12}),Ke(),D(d),R(e=>{U(r,e),i.disabled=z(s),J(i,`title`,z(s)?`Nothing captured yet`:`Download a snapshot of traces, logs, errors and metrics`)},[()=>z(s)?`No data captured`:z(o).join(` · `)]),B(`click`,i,c),B(`click`,a,l),B(`click`,d,u),H(e,t)};W(p,e=>{z(a)?e(m):e(h,-1)});var g=L(p,2);Vo(g,e=>P(n,e),()=>z(n));var _=L(g,2),v=e=>{var t=cH(),n=F(t,!0);D(t),R(()=>{J(t,`title`,z(r)),U(n,z(r))}),H(e,t)};W(_,e=>{z(r)&&e(v)});var y=L(_,2),b=e=>{var t=lH(),n=F(t,!0);D(t),R(()=>{J(t,`title`,z(i)),U(n,z(i))}),H(e,t)};W(y,e=>{z(i)&&!z(r)&&e(b)}),D(f),R(e=>q(f,1,e),[()=>K($(`border-b border-line px-3 py-1.5 text-xs flex items-center gap-2`,z(a)?`bg-warning-bg text-warning`:`bg-subtle text-fg-muted`))]),B(`change`,g,d),H(e,f),at()}ea([`click`,`change`]);var fH=V(`<div class="flex h-screen w-screen bg-surface text-fg"><div class="hidden md:flex flex-col border-r border-line"><!> <div class="mt-auto p-2 border-t border-line flex flex-col gap-1"><!> <button class="flex items-center gap-2 px-3 py-2 text-xs text-fg-subtle hover:bg-hover hover:text-fg rounded transition-colors"><!> </button> <button class="flex items-center gap-2 px-3 py-2 text-xs text-fg-subtle hover:bg-hover hover:text-fg rounded transition-colors" title="Keyboard shortcuts (?)"><!> Shortcuts</button></div></div> <div class="flex-1 flex flex-col min-w-0"><!> <div class="md:hidden"><!></div> <div class="flex-1 overflow-hidden"><!></div></div> <!></div>`);function pH(e,t){it(t,!0);function n(){return Vc.value?vg:Bc.value===`traces`?_g:gg}let r=M(()=>Gc.value),i=M(()=>$c.value);Lr(()=>{Gc.value=Kc()});let a=N(void 0);Lr(()=>{let e=null,t=z(a)?.getRootNode();t instanceof ShadowRoot?e=t.host:globalThis.document!==void 0&&(e=document.documentElement),e&&e.setAttribute(`data-theme`,z(r))}),Lr(()=>{let e=e=>{if(e.key===`?`&&!yg()){e.preventDefault(),nl(n());return}if(!$c.value&&!yg()&&e.key>=`1`&&e.key<=`9`){let t=parseInt(e.key,10)-1;t<OV.length&&Mu(OV[t])}};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)});let o=M(()=>z(r)===`dark`?`Dark`:z(r)===`light`?`Light`:`System`);var s=fH(),c=F(s),l=F(c);aH(l,{orientation:`vertical`});var u=L(l,2),d=F(u);BV(d,{});var f=L(d,2),p=F(f),m=e=>{Gm(e,{size:14})},h=e=>{Fh(e,{size:14})},g=e=>{Um(e,{size:14})};W(p,e=>{z(r)===`dark`?e(m):z(r)===`light`?e(h,1):e(g,-1)});var _=L(p);D(f);var v=L(f,2);jp(F(v),{size:14}),Ke(),D(v),D(u),D(c);var y=L(c,2),b=F(y);dH(b,{});var x=L(b,2);aH(F(x),{orientation:`horizontal`}),D(x);var S=L(x,2);PV(F(S),{}),D(S),D(y);var C=L(y,2),w=e=>{WV(e,{get shortcuts(){return z(i)},get onClose(){return tl}})};W(C,e=>{z(i)&&e(w)}),D(s),Vo(s,e=>P(a,e),()=>z(a)),R(()=>{J(f,`title`,`Theme: ${z(o)} (click to cycle)`),U(_,` ${z(o)??``}`)}),B(`click`,f,function(...e){Jc?.apply(this,e)}),B(`click`,v,()=>el(n())),H(e,s),at()}ea([`click`]);var mH=250,hH=5e3;function gH(e={}){let t=e.now??(()=>Date.now()),n=e.debounceMs??mH,r=e.limit??hH,i=0,a=null,o=null,s=!1;function c(){let t=pl.value,n=e.baseUrl??(t?Zo(t):null)??globalThis.location?.origin??``;return{fetch:e.fetch??globalThis.fetch.bind(globalThis),baseUrl:n}}async function l(){if(s)return;let e=++i;a?.abort();let n=new AbortController;a=n;let o={query:``,window:ks(Cs(ml.value,t())),limit:r},l={...c(),signal:n.signal},[u,d]=await Promise.all([_H(o,l),vA(o,l)]);e!==i||s||(u.status===`ok`?(hl.value=u.traces,_l.value=`ready`):u.status===`error`&&(_l.value=`unavailable`),d.status===`ok`&&(gl.value=d.errors))}function u(){if(!s){if(o&&clearTimeout(o),n<=0){l();return}o=setTimeout(()=>{o=null,l()},n)}}return{refresh:l,invalidate:u,dispose(){s=!0,o&&clearTimeout(o),a?.abort()}}}async function _H(e,t){let n=[],r=new Set,i;do{let a=await hA({...e,cursor:i},t);if(a.status!==`ok`)return a;if(n.push(...a.traces),i=a.nextCursor??void 0,i&&r.has(i))return{status:`error`,message:`The trace query returned a repeated pagination cursor.`};i&&r.add(i)}while(i);return{status:`ok`,traces:n,nextCursor:null}}var vH=`data-autotel-portal`;function yH(e){let t=e.querySelector(`[${vH}]`);if(t)return t;let n=document.createElement(`div`);return n.setAttribute(vH,``),n.style.position=`absolute`,n.style.top=`0`,n.style.left=`0`,n.style.zIndex=`2147483000`,e.appendChild(n),n}function bH(){return document.modelContext}var xH=50,SH=20;function CH(e){return typeof e!=`number`||!Number.isFinite(e)?SH:Math.min(Math.max(Math.trunc(e),1),xH)}var wH="Filter expression, e.g. `service = api duration > 100`, `status = ERROR`, `name contains checkout`. Conditions side by side mean AND; `OR` and parentheses work. Empty string matches everything.",TH={type:`object`,properties:{query:{type:`string`,description:wH},limit:{type:`number`,description:`Rows to return, 1–${xH}. Defaults to ${SH}.`}}};function EH(e){return{traceId:e.traceId,name:e.rootSpan.name,service:e.service,status:e.status,durationMs:Math.round(e.duration),spans:e.spans.length,startedAt:new Date(e.startTime).toISOString(),...e.partial&&{partial:!0}}}function DH(e){return{spanId:e.spanId,parentSpanId:e.parentSpanId,name:e.name,kind:e.kind,durationMs:Math.round(e.duration),status:e.status.code,...e.status.message&&{statusMessage:e.status.message},attributes:e.attributes}}function OH(e){return{severity:e.severityText??`UNSET`,body:typeof e.body==`string`?e.body:JSON.stringify(e.body),service:e.resourceName,traceId:e.traceId,at:new Date(e.timestamp).toISOString()}}function kH(e){return e.status===`invalid`?`Invalid query: ${e.errors.map(e=>e.message).join(`; `)}`:e.status===`aborted`?`Query cancelled.`:`Devtools query failed: ${e.message}`}async function AH(e,t){try{let n=await e.execute(t??{});return typeof n==`string`?n:JSON.stringify(n)??``}catch(e){return`Error: ${e instanceof Error?e.message:String(e)}`}}function jH(e){return{autotel_query_traces:{description:`Search traces the local devtools receiver has stored. Returns one row per trace: id, root span name, service, status, duration and span count. Use autotel_get_trace for the spans of a specific trace.`,input:TH,execute:async t=>{let n=await hA({query:typeof t.query==`string`?t.query:``,limit:CH(t.limit)},e);return n.status===`ok`?{traces:n.traces.map(EH),truncated:n.nextCursor!==null}:kH(n)}},autotel_get_trace:{description:`Every span of one trace, by id: name, kind, duration, status and attributes. Use after autotel_query_traces has narrowed to a trace worth opening.`,input:{type:`object`,properties:{traceId:{type:`string`,description:`Trace id, as returned by autotel_query_traces.`}},required:[`traceId`]},execute:async t=>{let n=typeof t.traceId==`string`?t.traceId.trim():``;if(!n)return`traceId is required — take one from autotel_query_traces.`;let r=await hA({query:`trace_id = "${n}"`,limit:1},e);if(r.status!==`ok`)return kH(r);let i=r.traces[0];return i?{...EH(i),spans:i.spans.map(DH)}:`No stored trace with id ${n}.`}},autotel_list_errors:{description:`Failing operations grouped by fingerprint: type, message, occurrence count, affected services and sample trace ids. The first call to make when asked what is broken.`,input:{type:`object`,properties:{query:{type:`string`,description:wH}}},execute:async t=>{let n=await vA({query:typeof t.query==`string`?t.query:``},e);return n.status===`ok`?{errors:n.errors.map(e=>({type:e.type,message:e.message,count:e.count,service:e.service,lastSeen:new Date(e.lastSeen).toISOString(),sampleTraceIds:e.affectedTraces.slice(0,3)}))}:kH(n)}},autotel_query_logs:{description:`Search stored log records. Returns severity, body, service, and the trace id when the log was emitted inside one.`,input:TH,execute:async t=>{let n=await _A({query:typeof t.query==`string`?t.query:``,limit:CH(t.limit)},e);return n.status===`ok`?{logs:n.logs.map(OH),truncated:n.nextCursor!==null}:kH(n)}},autotel_webmcp_inventory:{description:`The WebMCP tool surface this page has exposed to agents, as recorded by autotel-webmcp: which tools were offered, how often they were called, and which annotations the browser silently discarded at registration. Use to check a page's own tools behave as written.`,execute:async()=>{let t=await yA({},e);if(t.status!==`ok`)return kH(t);let{summary:n,tools:r}=t.webmcp;return{summary:n,tools:r.map(e=>({name:e.name,offered:e.offered,calls:e.calls,hasInputSchema:e.hasInputSchema,annotationsDropped:e.annotationsDropped,labelMismatch:e.labelMismatch,redefined:e.redefined}))}}}}}function MH(e){let t=new AbortController,n=jH(e);return{async mount(){let e=bH();if(e)for(let[r,i]of Object.entries(n))await e.registerTool({name:r,description:i.description,annotations:{readOnlyHint:!0},...i.input&&{inputSchema:i.input},execute:e=>AH(i,e)},{signal:t.signal})},unmount(){t.abort()}}}var NH=V(`<!> <!>`,1),PH=V(`<div class="contents"><!></div>`);function FH(e,t){it(t,!0);function n(e){Mu(e.tab??`traces`),Nl.value=e.q??``,Pl.value=e.status??`all`,Fl.value=e.minDuration??0,ml.value=e.window??bs,Ml.value=e.sort??Zu,zl.value=e.genaiQuery??``,e.traceId&&Wc(e.traceId,e.spanId)}Lr(()=>{pl.value=t.wsUrl});let r=gH();Lr(()=>(r.refresh(),()=>r.dispose())),Lr(()=>{ml.value,cl.value.length,r.invalidate()});let i=N(void 0),a=N(void 0);Lr(()=>{if(!z(i))return;let e=z(i).getRootNode();P(a,yH(e instanceof ShadowRoot?e:document.body),!0)}),Lr(()=>{t.deepLink&&n(t.deepLink)}),Lr(()=>{let e=Uc.value;e&&cl.value.some(t=>t.traceId===e.traceId)&&(Nu(e.traceId,e.spanId??null),Mu(`traces`),Uc.value=null)});let o=null;Lr(()=>{if(t.mode!==`fullpage`)return;let e={tab:Bc.value,traceId:Vc.value??void 0,spanId:Hc.value??void 0,q:Nl.value||void 0,status:Pl.value,minDuration:Fl.value,window:ml.value,sort:Ml.value,genaiQuery:zl.value||void 0};if(Uc.value)return;let n=ed(e);if(n===location.hash)return;let r=td(o,e);o=e;let i=`${location.pathname}${location.search}${n}`;r===`push`?history.pushState(history.state,``,i):history.replaceState(history.state,``,i)}),Lr(()=>{if(t.mode!==`fullpage`)return;let e=()=>{let e=$u(location.hash);o=e,n(e)};return window.addEventListener(`hashchange`,e),()=>window.removeEventListener(`hashchange`,e)}),Lr(()=>{Wu(),es(Zo(t.wsUrl));let e=new Xo(t.wsUrl);fl.value=`connecting`;let n=e.onStatusChange(e=>{fl.value=e}),r=e.onMessage(Tu);return e.connect(),()=>{r(),n(),e.disconnect()}}),Lr(()=>{if(t.mode!==`fullpage`)return;let e=Zo(t.wsUrl);if(!e)return;let n=MH({fetch:globalThis.fetch.bind(globalThis),baseUrl:e});return n.mount(),()=>n.unmount()});var s=PH();iE(F(s),{get defaultPortalTo(){return z(a)},children:(e,n)=>{var r=la(),i=I(r),a=e=>{pH(e,{})},o=e=>{var t=NH(),n=I(t);Hf(n,{}),nH(L(n,2),{}),H(e,t)};W(i,e=>{t.mode===`fullpage`?e(a):e(o,-1)}),H(e,r)},$$slots:{default:!0}}),D(s),Vo(s,e=>P(i,e),()=>z(i)),H(e,s),at()}function IH(e,t){let n=pa(FH,{target:e,props:t});return()=>{_a(n)}}var LH=`/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
45
+ instrumentWebMCP(); // before you register any tools`,Ke(2),D(t),H(e,t)};W(g,e=>{z(n).status===`loading`?e(_):z(n).status===`error`?e(v,1):z(c)&&z(l)&&z(c).tools.length>0?e(y,2):e(b,-1)}),D(f),B(`click`,h,()=>void s()),H(e,f),at()}ea([`click`]);var EV={traces:XA,agents:Ej,genai:ON,flow:xP,resources:jP,"service-map":lF,metrics:XR,logs:yz,errors:rB,security:xB,compare:IB,coverage:qB,webmcp:TV},DV=[{id:`traces`,label:`Traces`,icon:Up},{id:`agents`,label:`Agents`,icon:lp},{id:`genai`,label:`GenAI`,icon:Nh},{id:`flow`,label:`Flow`,icon:$h},{id:`resources`,label:`Resources`,icon:dp},{id:`service-map`,label:`Service Map`,icon:qm},{id:`metrics`,label:`Metrics`,icon:yp},{id:`logs`,label:`Logs`,icon:rm},{id:`errors`,label:`Errors`,icon:Gh},{id:`security`,label:`Security`,icon:kh},{id:`compare`,label:`Compare`,icon:hm},{id:`coverage`,label:`Coverage`,icon:_h},{id:`webmcp`,label:`WebMCP`,icon:tg}].filter(e=>EV[e.id]!==void 0),OV=DV.map(e=>e.id),kV=16,AV=48;function jV(e){let{isVertical:t,dock:n,axisSize:r,setSize:i,resetSize:a}=e,o=N(!1);return{get resizing(){return z(o)},onPointerDown:e=>{e.stopPropagation();let a=t(),s=a?`vertical`:`horizontal`,c=a?e.clientY:e.clientX,l=r(),u=n()===`bottom`||n()===`right`?-1:1;vy(e,{cursor:a?`ns-resize`:`ew-resize`,onStart:()=>P(o,!0),onMove:e=>{let t=a?e.clientY:e.clientX;i(s,l+(t-c)*u)},onEnd:()=>P(o,!1)})},onKeyDown:e=>{let a=t()?`vertical`:`horizontal`,o=e.shiftKey?AV:kV,s=t()?{ArrowUp:n()===`bottom`?o:-o,ArrowDown:n()===`bottom`?-o:o}:{ArrowLeft:n()===`right`?o:-o,ArrowRight:n()===`right`?-o:o};e.key in s&&(e.preventDefault(),i(a,r()+s[e.key]))},onDblClick:()=>a(t()?`vertical`:`horizontal`)}}function MV(e,t,n,r){let i={left:e,right:n-e,top:t,bottom:r-t};return Object.keys(i).reduce((e,t)=>i[t]<i[e]?t:e)}function NV(e){let{dock:t,pipActive:n,onDock:r}=e,i=N(!1),a=N(null);return{get dragging(){return z(i)},get dropTarget(){return z(a)},onHeaderPointerDown:e=>{e.button===0&&(e.target.closest(`button`)||n()||vy(e,{cursor:`grabbing`,onStart:()=>{P(i,!0),P(a,t(),!0)},onMove:e=>{P(a,MV(e.clientX,e.clientY,window.innerWidth,window.innerHeight),!0)},onEnd:()=>{P(i,!1),z(a)&&z(a)!==t()&&r(z(a)),P(a,null)}}))}}}function PV(e,t){it(t,!0);let n=M(()=>Bc.value),r=M(()=>EV[z(n)]??EV.traces);var i=la(),a=I(i),o=e=>{var t=la();Ra(I(t),()=>z(r),(e,t)=>{t(e,{})}),H(e,t)};W(a,e=>{z(r)&&e(o)}),H(e,i),at()}var FV=V(`<span class="absolute inset-0 rounded-full bg-success opacity-75 animate-ping" aria-hidden="true"></span>`),IV=V(`<span class="text-xs font-mono tabular-nums text-fg-subtle" title="Telemetry ingest rate"> </span>`),LV=V(`<span class="text-xs font-mono tabular-nums text-fg-subtle" title="Telemetry store usage and retention cap"> </span>`),RV=V(`<span> </span> <!> <!>`,1),zV=V(`<div role="status"><span class="relative inline-flex w-2 h-2 shrink-0"><!> <span aria-hidden="true"></span></span> <!></div>`);function BV(e,t){it(t,!0);let n=Z(t,`compact`,3,!1),r=M(()=>fl.value),i=M(()=>z(r)===`connected`?{dot:`bg-success`,label:`Connected`,text:`text-success`}:z(r)===`connecting`?{dot:`bg-warning animate-pulse`,label:`Connecting…`,text:`text-warning`}:{dot:`bg-danger`,label:`Disconnected`,text:`text-fg-subtle`}),a=M(()=>yl.value),o=N(!1);Lr(()=>{if(z(a),z(a)===0)return;P(o,!0);let e=setTimeout(()=>P(o,!1),900);return()=>clearTimeout(e)});let s=N(0);Lr(()=>{if(n())return;let e=()=>{P(s,Math.round(Cl(5e3).total),!0)};e();let t=setInterval(e,1e3);return()=>clearInterval(t)});let c=M(()=>!n()&&z(r)===`connected`&&z(s)>0),l=N(null);Lr(()=>{if(n()||z(r)!==`connected`)return;let e=!0,t=async()=>{let t=pl.value,n=(t?Zo(t):null)??globalThis.location?.origin;if(n)try{let t=await fetch(`${n}/api/stats`);t.ok&&e&&P(l,await t.json(),!0)}catch{}};t();let i=setInterval(t,3e4);return()=>{e=!1,clearInterval(i)}});function u(e){return e<1024**2?`${Math.round(e/1024)} KB`:e<1024**3?`${(e/1024**2).toFixed(1)} MB`:`${(e/1024**3).toFixed(1)} GB`}var d=zV(),f=F(d),p=F(f),m=e=>{H(e,FV())};W(p,e=>{z(o)&&z(r)===`connected`&&e(m)});var h=L(p,2);D(f);var g=L(f,2),_=e=>{var t=RV(),n=I(t),r=F(n,!0);D(n);var a=L(n,2),o=e=>{var t=IV(),n=F(t);D(t),R(()=>U(n,`· ${z(s)??``}/s`)),H(e,t)};W(a,e=>{z(c)&&e(o)});var d=L(a,2),f=e=>{var t=LV(),n=F(t);D(t),R((e,t)=>U(n,`· ${e??``} / ${t??``}`),[()=>u(z(l).bytesUsed),()=>u(z(l).maxBytes)]),H(e,t)};W(d,e=>{z(l)&&e(f)}),R(e=>{q(n,1,e),U(r,z(i).label)},[()=>K($(`text-xs font-medium`,z(i).text))]),H(e,t)};W(g,e=>{n()||e(_)}),D(d),R((e,t)=>{q(d,1,e),J(d,`aria-label`,`OTLP receiver: ${z(i).label}`),J(d,`title`,`OTLP receiver: ${z(i).label}${z(s)>0?` · ${z(s)}/s`:``}`),q(h,1,t)},[()=>K($(`flex items-center gap-1.5`,!n()&&`px-3 py-2`)),()=>K($(`relative inline-block w-2 h-2 rounded-full`,z(i).dot))]),H(e,d),at()}var VV=V(`<kbd class="inline-block px-1.5 py-0.5 font-mono text-xs font-semibold bg-hover border border-line rounded text-fg mr-1 last:mr-0 shadow-[0_1px_0_#d4d4d8]"> </kbd>`),HV=V(`<tr class="border-b border-line-subtle last:border-b-0"><td class="py-2.5 px-4 whitespace-nowrap align-middle w-[1%]"></td><td class="py-2.5 pr-4 pl-1 text-sm text-fg-muted align-middle"> </td></tr>`),UV=V(`<div class="fixed inset-0 z-[1000] flex items-center justify-center" role="dialog" aria-modal="true" aria-label="Keyboard shortcuts"><button type="button" aria-label="Close" class="absolute inset-0 bg-black/55 backdrop-blur-[2px] at-backdrop-in"></button> <div tabindex="-1" class="at-modal-in relative z-[1] bg-surface border border-line rounded-lg shadow-xl w-[480px] max-w-[90vw] max-h-[80vh] flex flex-col overflow-hidden outline-none"><div class="flex items-center justify-between px-4 py-3 border-b border-line bg-subtle flex-shrink-0"><span class="text-sm font-semibold text-fg">Keyboard Shortcuts</span> <button class="inline-flex items-center justify-center w-7 h-7 p-0 bg-transparent border border-line rounded cursor-pointer text-sm text-fg-subtle hover:bg-danger-bg hover:border-danger-border hover:text-danger transition-colors" title="Close (Esc)"><!></button></div> <div class="overflow-y-auto py-2"><table class="w-full border-collapse"><tbody></tbody></table></div></div></div>`);function WV(e,t){it(t,!0);let n=N(void 0);Lr(()=>{let e=e=>{e.key===`Escape`&&(e.stopPropagation(),t.onClose())},r=z(n);return r&&(r.addEventListener(`keydown`,e),r.focus()),window.addEventListener(`keydown`,e),()=>{r&&r.removeEventListener(`keydown`,e),window.removeEventListener(`keydown`,e)}});var r=UV(),i=F(r),a=L(i,2),o=F(a),s=L(F(o),2);rg(F(s),{size:14}),D(s),D(o);var c=L(o,2),l=F(c),u=F(l);G(u,21,()=>t.shortcuts,Oa,(e,t)=>{var n=HV(),r=F(n);G(r,21,()=>z(t).keys,Oa,(e,t)=>{var n=VV(),r=F(n,!0);D(n),R(()=>U(r,z(t)===`CmdOrCtrl`?xg?`⌘`:`Ctrl`:z(t)===`AltOrOpt`?xg?`⌥`:`Alt`:z(t))),H(e,n)}),D(r);var i=L(r),a=F(i,!0);D(i),D(n),R(()=>U(a,z(t).description)),H(e,n)}),D(u),D(l),D(c),D(a),Vo(a,e=>P(n,e),()=>z(n)),D(r),B(`click`,i,function(...e){t.onClose?.apply(this,e)}),B(`click`,s,function(...e){t.onClose?.apply(this,e)}),H(e,r),at()}ea([`click`]);var GV=V(`<div role="separator" aria-label="Resize panel" tabindex="0" title="Drag to resize · double-click to reset"><div></div> <div></div></div>`),KV=V(`<span class="text-fg-subtle/60 flex-shrink-0 pl-0.5" aria-hidden="true"><!></span>`),qV=V(`<span> </span>`),JV=V(`<button><!> <span> </span> <!></button>`),YV=V(`<button class="p-1.5 rounded-md text-fg-subtle hover:text-fg hover:bg-subtle transition-colors" title="Dock position (click to cycle: bottom → right → left) — or drag the header to an edge" aria-label="Change dock position"><!></button>`),XV=V(`<button class="p-1.5 rounded-md text-fg-subtle hover:text-fg hover:bg-subtle transition-colors"><!></button>`),ZV=V(`<button class="p-1.5 rounded-md text-fg-subtle hover:text-fg hover:bg-subtle transition-colors" title="Close (Esc)" aria-label="Close devtools"><!></button>`),QV=V(`<span class="px-2.5 py-1 rounded-md bg-accent text-white text-xs font-semibold shadow-lg"> </span>`),$V=V(`<div><!></div>`),eH=V(`<div class="fixed inset-0 z-[1001] pointer-events-none" aria-hidden="true"></div>`),tH=V(`<section aria-label="Autotel devtools"><!> <header><!> <div class="flex items-center gap-2 flex-shrink-0 pr-1 mr-0.5"><!> <span class="text-xs font-semibold tracking-tight text-fg hidden sm:inline">autotel</span></div> <nav class="flex items-center gap-0.5 overflow-x-auto min-w-0 flex-1 at-no-scrollbar" aria-label="Devtools sections"></nav> <div class="flex items-center gap-1 flex-shrink-0 pl-1"><!> <button class="p-1.5 rounded-md text-fg-subtle hover:text-fg hover:bg-subtle transition-colors" title="Keyboard shortcuts (?)" aria-label="Keyboard shortcuts"><!></button> <!> <!> <!></div></header> <div class="flex-1 min-h-0 overflow-hidden"><!></div> <!></section> <!>`,1);function nH(e,t){it(t,!0);let n=N(void 0),r=M(()=>Fc.value),i=M(()=>Bc.value),a=M(()=>Rc.value??`bottom`),o=M(()=>il.value),s=M(()=>zc.value),c=cg(),l=M(()=>z(a)===`bottom`||z(a)===`top`),u=M(()=>z(l)?z(o).vertical:z(o).horizontal),d=M(()=>al(z(l)?`vertical`:`horizontal`)),f=M(()=>su.value),p=M(()=>nu.value),m=M(()=>ru.value),h=M(()=>({genai:z(p)>0?z(p):void 0,flow:z(m)>0?z(m):void 0,errors:z(f)>0?z(f):void 0})),g=M(()=>DV.map(e=>({...e,badge:z(h)[e.id]}))),_=jV({isVertical:()=>z(l),dock:()=>z(a),axisSize:()=>z(u),setSize:ol,resetSize:sl}),v=NV({dock:()=>z(a),pipActive:()=>z(s),onDock:Lu});async function y(){if(z(s)){fg(()=>zc.value=!1);return}let e=z(n)?.getRootNode(),t=e instanceof ShadowRoot?e.host:null;t&&await dg(t,()=>zc.value=!1,{width:760,height:600})&&(zc.value=!0)}let b=globalThis.window!==void 0&&typeof window.matchMedia==`function`&&window.matchMedia(`(prefers-reduced-motion: reduce)`).matches;function x(e,{dock:t}){if(b||z(s))return{duration:0};let n=t===`left`||t===`right`?`X`:`Y`,r=t===`bottom`||t===`right`?1:-1;return{duration:240,easing:og,css:(e,t)=>`transform: translate${n}(${t*r*100}%)`}}let S=[`traces`,`genai`,`flow`,`service-map`,`metrics`,`logs`,`errors`],C=M(()=>$c.value);function w(){return Vc.value?vg:Bc.value===`traces`?_g:gg}Lr(()=>{let e=z(n)?.getRootNode(),t=e instanceof ShadowRoot||e instanceof Document?e:window,r=e=>{let t=e;if(t.key===`Escape`){if($c.value){tl();return}if(yg())return;if(zc.value){fg(()=>zc.value=!1);return}ju();return}if(t.key===`?`&&!yg()){t.preventDefault(),nl(w());return}if(!$c.value&&!yg()&&t.key>=`1`&&t.key<=`7`){let e=Number.parseInt(t.key,10)-1;e<S.length&&Mu(S[e])}};return t.addEventListener(`keydown`,r),()=>t.removeEventListener(`keydown`,r)});let T=M(()=>z(s)?`inset-0`:{bottom:`left-0 right-0 bottom-0`,top:`left-0 right-0 top-0`,right:`top-0 bottom-0 right-0`,left:`top-0 bottom-0 left-0`}[z(a)]),ee=M(()=>z(s)?``:{bottom:`border-t`,top:`border-b`,right:`border-l`,left:`border-r`}[z(a)]),te=M(()=>({bottom:`-top-1 left-0 right-0 h-2 cursor-ns-resize`,top:`-bottom-1 left-0 right-0 h-2 cursor-ns-resize`,right:`-left-1 top-0 bottom-0 w-2 cursor-ew-resize`,left:`-right-1 top-0 bottom-0 w-2 cursor-ew-resize`})[z(a)]),ne=M(()=>({bottom:`inset-x-0 top-1 h-px`,top:`inset-x-0 bottom-1 h-px`,right:`inset-y-0 left-1 w-px`,left:`inset-y-0 right-1 w-px`})[z(a)]),re=M(()=>z(s)?``:z(l)?`height: ${z(u)}px;`:`width: ${z(u)}px;`),ie=M(()=>z(s)?``:{bottom:`box-shadow: 0 -12px 32px -14px var(--at-shadow), 0 -2px 6px -4px var(--at-shadow);`,top:`box-shadow: 0 12px 32px -14px var(--at-shadow), 0 2px 6px -4px var(--at-shadow);`,right:`box-shadow: -12px 0 32px -14px var(--at-shadow), -2px 0 6px -4px var(--at-shadow);`,left:`box-shadow: 12px 0 32px -14px var(--at-shadow), 2px 0 6px -4px var(--at-shadow);`}[z(a)]),ae=M(()=>z(a)===`right`?$m:z(a)===`left`?Zm:Ym),oe=[{edge:`bottom`,pos:`left-0 right-0 bottom-0 h-24`,label:`Dock bottom`},{edge:`top`,pos:`left-0 right-0 top-0 h-24`,label:`Dock top`},{edge:`left`,pos:`top-0 bottom-0 left-0 w-44`,label:`Dock left`},{edge:`right`,pos:`top-0 bottom-0 right-0 w-44`,label:`Dock right`}];var se=la(),ce=I(se),le=e=>{var t=tH(),r=I(t),o=F(r),f=e=>{var t=GV(),n=F(t),r=L(n,2);D(t),R((e,i,a,o)=>{J(t,`aria-orientation`,z(l)?`horizontal`:`vertical`),J(t,`aria-valuenow`,e),J(t,`aria-valuemin`,z(d).min),J(t,`aria-valuemax`,z(d).max),q(t,1,i),q(n,1,a),q(r,1,o)},[()=>Math.round(z(u)),()=>K($(`absolute z-20 group touch-none select-none outline-none`,z(te))),()=>K($(`absolute bg-line-subtle transition-colors duration-150`,`group-hover:bg-accent group-focus-visible:bg-accent`,_.resizing&&`!bg-accent`,z(ne))),()=>K($(`absolute rounded-full bg-line transition-colors duration-150`,`group-hover:bg-accent group-focus-visible:bg-accent`,_.resizing&&`!bg-accent`,z(l)?`left-1/2 -translate-x-1/2 top-1/2 -translate-y-1/2 w-9 h-1`:`top-1/2 -translate-y-1/2 left-1/2 -translate-x-1/2 h-9 w-1`))]),B(`pointerdown`,t,function(...e){_.onPointerDown?.apply(this,e)}),B(`keydown`,t,function(...e){_.onKeyDown?.apply(this,e)}),B(`dblclick`,t,function(...e){_.onDblClick?.apply(this,e)}),H(e,t)};W(o,e=>{z(s)||e(f)});var p=L(o,2),m=F(p),h=e=>{var t=KV();ym(F(t),{size:14}),D(t),H(e,t)};W(m,e=>{z(s)||e(h)});var b=L(m,2);id(F(b),{width:18,height:18}),Ke(2),D(b);var S=L(b,2);G(S,21,()=>z(g),e=>e.id,(e,t)=>{let n=M(()=>z(t).icon),r=M(()=>z(i)===z(t).id);var a=JV(),o=F(a);{let e=M(()=>z(t).id===`errors`&&z(t).badge?`text-danger`:void 0);Ra(o,()=>z(n),(t,n)=>{n(t,{size:14,get class(){return z(e)}})})}var s=L(o,2),c=F(s,!0);D(s);var l=L(s,2),u=e=>{var n=qV(),r=F(n,!0);D(n),R(e=>{q(n,1,e),U(r,z(t).badge>99?`99+`:z(t).badge)},[()=>K($(`px-1.5 py-px text-[10px] font-semibold rounded-full`,z(t).id===`errors`?`bg-danger-bg text-danger`:`bg-accent/15 text-fg-muted`))]),H(e,n)};W(l,e=>{z(t).badge&&e(u)}),D(a),R(e=>{J(a,`aria-current`,z(r)?`page`:void 0),q(a,1,e),U(c,z(t).label)},[()=>K($(`flex items-center gap-1.5 px-2.5 h-8 rounded-md flex-shrink-0`,`text-xs transition-colors cursor-pointer`,z(r)?`bg-accent/12 text-fg font-semibold ring-1 ring-inset ring-accent/20`:`text-fg-subtle font-medium hover:text-fg hover:bg-subtle`))]),B(`click`,a,()=>Mu(z(t).id)),H(e,a)}),D(S);var se=L(S,2);{let e=e=>{let t=M(()=>z(ae));var n=la();Ra(I(n),()=>z(t),(e,t)=>{t(e,{size:15})}),H(e,n)};var ce=F(se);BV(ce,{compact:!0});var le=L(ce,2);jp(F(le),{size:15}),D(le);var E=L(le,2),ue=t=>{var n=YV(),r=F(n);e(r),D(n),B(`click`,n,function(...e){Ru?.apply(this,e)}),H(t,n)};W(E,e=>{z(s)||e(ue)});var de=L(E,2),fe=e=>{var t=XV(),n=F(t),r=e=>{zm(e,{size:15})},i=e=>{rh(e,{size:15})};W(n,e=>{z(s)?e(r):e(i,-1)}),D(t),R(()=>{J(t,`title`,z(s)?`Return to docked panel`:`Pop out to a separate window`),J(t,`aria-label`,z(s)?`Return to docked panel`:`Pop out to window`)}),B(`click`,t,y),H(e,t)};W(de,e=>{c&&e(fe)});var pe=L(de,2),me=e=>{var t=ZV();rg(F(t),{size:16}),D(t),B(`click`,t,function(...e){ju?.apply(this,e)}),H(e,t)};W(pe,e=>{z(s)||e(me)}),D(se),B(`click`,le,()=>nl(w()))}D(p);var he=L(p,2);PV(F(he),{}),D(he);var ge=L(he,2),_e=e=>{WV(e,{get shortcuts(){return z(C)},get onClose(){return tl}})};W(ge,e=>{z(C)&&e(_e)}),D(r),Vo(r,e=>P(n,e),()=>z(n));var ve=L(r,2),ye=e=>{var t=eH();G(t,21,()=>oe,e=>e.edge,(e,t)=>{let n=M(()=>v.dropTarget===z(t).edge);var r=$V(),i=F(r),a=e=>{var n=QV(),r=F(n,!0);D(n),R(()=>U(r,z(t).label)),H(e,n)};W(i,e=>{z(n)&&e(a)}),D(r),R(e=>q(r,1,e),[()=>K($(`absolute flex items-center justify-center transition-colors duration-100`,z(t).pos,z(n)?`bg-accent/15 ring-2 ring-inset ring-accent`:`bg-accent/5`))]),H(e,r)}),D(t),H(e,t)};W(ve,e=>{v.dragging&&e(ye)}),R((e,t)=>{q(r,1,e),oo(r,`${z(re)} ${z(ie)}`),q(p,1,t)},[()=>K($(`fixed z-[1000] flex flex-col`,`bg-surface text-fg`,z(T),z(ee),`border-line`)),()=>K($(`flex items-center gap-1 pl-2 pr-2 h-11 flex-shrink-0`,`border-b border-line bg-surface`,z(s)?``:`cursor-grab active:cursor-grabbing`))]),B(`pointerdown`,p,function(...e){v.onHeaderPointerDown?.apply(this,e)}),qa(3,r,()=>x,()=>({dock:z(a)})),H(e,t)};W(ce,e=>{z(r)&&e(le)}),H(e,se),at()}ea([`pointerdown`,`keydown`,`dblclick`,`click`]);var rH=V(`<button><!> </button>`),iH=V(`<nav></nav>`);function aH(e,t){it(t,!0);let n=Z(t,`orientation`,3,`horizontal`),r=M(()=>Bc.value);var i=iH();G(i,21,()=>DV,({id:e,label:t,icon:n})=>e,(e,t)=>{let n=()=>z(t).id,i=()=>z(t).label,a=()=>z(t).icon;var o=rH(),s=F(o);Ra(s,a,(e,t)=>{t(e,{size:14})});var c=L(s);D(o),R(e=>{q(o,1,e),U(c,` ${i()??``}`)},[()=>K($(`flex items-center gap-2 px-3 py-2 text-xs font-medium rounded transition-colors whitespace-nowrap`,z(r)===n()?`bg-accent text-white`:`text-fg-subtle hover:bg-hover hover:text-fg`))]),B(`click`,o,()=>Mu(n())),H(e,o)}),D(i),R(e=>q(i,1,e),[()=>K($(`flex gap-1 p-1`,n()===`vertical`?`flex-col w-48 border-r border-line`:`border-b border-line overflow-x-auto`))]),H(e,i),at()}ea([`click`]);var oH=V(`<!> <span class="font-medium">Snapshot mode</span> <span class="text-warning">— live updates paused.</span> <button class="ml-auto inline-flex items-center gap-1 px-2 py-0.5 rounded hover:bg-warning-bg transition-colors" title="Exit snapshot and clear data"><!> Exit</button>`,1),sH=V(`<span class="text-fg-subtle"> </span> <button class="ml-auto inline-flex items-center gap-1 px-2 py-0.5 rounded hover:bg-hover transition-colors disabled:opacity-40 disabled:cursor-not-allowed disabled:hover:bg-transparent"><!> Download snapshot</button> <button class="inline-flex items-center gap-1 px-2 py-0.5 rounded hover:bg-hover transition-colors" title="Load a snapshot file"><!> Load snapshot</button> <button class="inline-flex items-center gap-1 px-2 py-0.5 rounded hover:bg-hover hover:text-danger transition-colors" title="Clear all captured data — traces, logs, metrics and errors"><!> Clear</button>`,1),cH=V(`<span class="text-danger truncate"> </span>`),lH=V(`<span class="text-warning truncate"> </span>`),uH=V(`<div><!> <input type="file" accept="application/json,.json" class="hidden"/> <!> <!></div>`);function dH(e,t){it(t,!0);let n=N(void 0),r=N(null),i=N(null),a=M(()=>kl.value),o=M(()=>[{n:cl.value.length,one:`trace`,many:`traces`},{n:dl.value.length,one:`log`,many:`logs`},{n:ul.value.length,one:`error`,many:`errors`}].filter(e=>e.n>0).map(e=>`${e.n} ${e.n===1?e.one:e.many}`)),s=M(()=>z(o).length===0),c=()=>{P(r,null),P(i,null),Jy({traces:cl.value,logs:dl.value,errors:ul.value})},l=()=>{z(n)?.click()},u=()=>{P(r,null),P(i,null),Bu()},d=async e=>{P(r,null),P(i,null);let t=e.currentTarget,n=t.files?.[0];if(t.value=``,!n)return;let a=await Zy(n);if(!a.success||!a.snapshot){P(r,a.errors.join(`; `)||`Failed to load snapshot`,!0);return}a.warnings.length>0&&P(i,a.warnings.join(`; `),!0),ku(a.snapshot)};var f=uH(),p=F(f),m=e=>{var t=oH(),n=I(t);hp(n,{size:12});var r=L(n,6);rg(F(r),{size:12}),Ke(),D(r),B(`click`,r,function(...e){Au?.apply(this,e)}),H(e,t)},h=e=>{var t=sH(),n=I(t),r=F(n,!0);D(n);var i=L(n,2);hp(F(i),{size:12}),Ke(),D(i);var a=L(i,2);qh(F(a),{size:12}),Ke(),D(a);var d=L(a,2);Vh(F(d),{size:12}),Ke(),D(d),R(e=>{U(r,e),i.disabled=z(s),J(i,`title`,z(s)?`Nothing captured yet`:`Download a snapshot of traces, logs, errors and metrics`)},[()=>z(s)?`No data captured`:z(o).join(` · `)]),B(`click`,i,c),B(`click`,a,l),B(`click`,d,u),H(e,t)};W(p,e=>{z(a)?e(m):e(h,-1)});var g=L(p,2);Vo(g,e=>P(n,e),()=>z(n));var _=L(g,2),v=e=>{var t=cH(),n=F(t,!0);D(t),R(()=>{J(t,`title`,z(r)),U(n,z(r))}),H(e,t)};W(_,e=>{z(r)&&e(v)});var y=L(_,2),b=e=>{var t=lH(),n=F(t,!0);D(t),R(()=>{J(t,`title`,z(i)),U(n,z(i))}),H(e,t)};W(y,e=>{z(i)&&!z(r)&&e(b)}),D(f),R(e=>q(f,1,e),[()=>K($(`border-b border-line px-3 py-1.5 text-xs flex items-center gap-2`,z(a)?`bg-warning-bg text-warning`:`bg-subtle text-fg-muted`))]),B(`change`,g,d),H(e,f),at()}ea([`click`,`change`]);var fH=V(`<div class="flex h-screen w-screen bg-surface text-fg"><div class="hidden md:flex flex-col border-r border-line"><!> <div class="mt-auto p-2 border-t border-line flex flex-col gap-1"><!> <button class="flex items-center gap-2 px-3 py-2 text-xs text-fg-subtle hover:bg-hover hover:text-fg rounded transition-colors"><!> </button> <button class="flex items-center gap-2 px-3 py-2 text-xs text-fg-subtle hover:bg-hover hover:text-fg rounded transition-colors" title="Keyboard shortcuts (?)"><!> Shortcuts</button></div></div> <div class="flex-1 flex flex-col min-w-0"><!> <div class="md:hidden"><!></div> <div class="flex-1 overflow-hidden"><!></div></div> <!></div>`);function pH(e,t){it(t,!0);function n(){return Vc.value?vg:Bc.value===`traces`?_g:gg}let r=M(()=>Gc.value),i=M(()=>$c.value);Lr(()=>{Gc.value=Kc()});let a=N(void 0);Lr(()=>{let e=null,t=z(a)?.getRootNode();t instanceof ShadowRoot?e=t.host:globalThis.document!==void 0&&(e=document.documentElement),e&&e.setAttribute(`data-theme`,z(r))}),Lr(()=>{let e=e=>{if(e.key===`?`&&!yg()){e.preventDefault(),nl(n());return}if(!$c.value&&!yg()&&e.key>=`1`&&e.key<=`9`){let t=parseInt(e.key,10)-1;t<OV.length&&Mu(OV[t])}};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)});let o=M(()=>z(r)===`dark`?`Dark`:z(r)===`light`?`Light`:`System`);var s=fH(),c=F(s),l=F(c);aH(l,{orientation:`vertical`});var u=L(l,2),d=F(u);BV(d,{});var f=L(d,2),p=F(f),m=e=>{Gm(e,{size:14})},h=e=>{Fh(e,{size:14})},g=e=>{Um(e,{size:14})};W(p,e=>{z(r)===`dark`?e(m):z(r)===`light`?e(h,1):e(g,-1)});var _=L(p);D(f);var v=L(f,2);jp(F(v),{size:14}),Ke(),D(v),D(u),D(c);var y=L(c,2),b=F(y);dH(b,{});var x=L(b,2);aH(F(x),{orientation:`horizontal`}),D(x);var S=L(x,2);PV(F(S),{}),D(S),D(y);var C=L(y,2),w=e=>{WV(e,{get shortcuts(){return z(i)},get onClose(){return tl}})};W(C,e=>{z(i)&&e(w)}),D(s),Vo(s,e=>P(a,e),()=>z(a)),R(()=>{J(f,`title`,`Theme: ${z(o)} (click to cycle)`),U(_,` ${z(o)??``}`)}),B(`click`,f,function(...e){Jc?.apply(this,e)}),B(`click`,v,()=>el(n())),H(e,s),at()}ea([`click`]);var mH=250,hH=5e3;function gH(e={}){let t=e.now??(()=>Date.now()),n=e.debounceMs??mH,r=e.limit??hH,i=0,a=null,o=null,s=!1;function c(){let t=pl.value,n=e.baseUrl??(t?Zo(t):null)??globalThis.location?.origin??``;return{fetch:e.fetch??globalThis.fetch.bind(globalThis),baseUrl:n}}async function l(){if(s)return;let e=++i;a?.abort();let n=new AbortController;a=n;let o={query:``,window:ks(Cs(ml.value,t())),limit:r},l={...c(),signal:n.signal},[u,d]=await Promise.all([_H(o,l),vA(o,l)]);e!==i||s||(u.status===`ok`?(hl.value=u.traces,_l.value=`ready`):u.status===`error`&&(_l.value=`unavailable`),d.status===`ok`&&(gl.value=d.errors))}function u(){if(!s){if(o&&clearTimeout(o),n<=0){l();return}o=setTimeout(()=>{o=null,l()},n)}}return{refresh:l,invalidate:u,dispose(){s=!0,o&&clearTimeout(o),a?.abort()}}}async function _H(e,t){let n=[],r=new Set,i;do{let a=await hA({...e,cursor:i},t);if(a.status!==`ok`)return a;if(n.push(...a.traces),i=a.nextCursor??void 0,i&&r.has(i))return{status:`error`,message:`The trace query returned a repeated pagination cursor.`};i&&r.add(i)}while(i);return{status:`ok`,traces:n,nextCursor:null}}var vH=`data-autotel-portal`;function yH(e){let t=e.querySelector(`[${vH}]`);if(t)return t;let n=document.createElement(`div`);return n.setAttribute(vH,``),n.style.position=`absolute`,n.style.top=`0`,n.style.left=`0`,n.style.zIndex=`2147483000`,e.appendChild(n),n}function bH(){return document.modelContext}var xH=50,SH=20;function CH(e){return typeof e!=`number`||!Number.isFinite(e)?SH:Math.min(Math.max(Math.trunc(e),1),xH)}var wH="Filter expression, e.g. `service = api duration > 100`, `status = ERROR`, `name contains checkout`. Conditions side by side mean AND; `OR` and parentheses work. A bare word is free text, matched against the span name, service, trace id and every attribute value. Empty string matches everything.",TH={type:`object`,properties:{query:{type:`string`,description:wH},limit:{type:`number`,description:`Rows to return, 1–${xH}. Defaults to ${SH}.`}}};function EH(e){return{traceId:e.traceId,name:e.rootSpan.name,service:e.service,status:e.status,durationMs:Math.round(e.duration),spans:e.spans.length,startedAt:new Date(e.startTime).toISOString(),...e.partial&&{partial:!0}}}function DH(e){return{spanId:e.spanId,parentSpanId:e.parentSpanId,name:e.name,kind:e.kind,durationMs:Math.round(e.duration),status:e.status.code,...e.status.message&&{statusMessage:e.status.message},attributes:e.attributes}}function OH(e){return{severity:e.severityText??`UNSET`,body:typeof e.body==`string`?e.body:JSON.stringify(e.body),service:e.resourceName,traceId:e.traceId,at:new Date(e.timestamp).toISOString()}}function kH(e){return e.status===`invalid`?`Invalid query: ${e.errors.map(e=>e.message).join(`; `)}`:e.status===`aborted`?`Query cancelled.`:`Devtools query failed: ${e.message}`}async function AH(e,t){try{let n=await e.execute(t??{});return typeof n==`string`?n:JSON.stringify(n)??``}catch(e){return`Error: ${e instanceof Error?e.message:String(e)}`}}function jH(e){return{autotel_query_traces:{description:`Search traces the local devtools receiver has stored. Returns one row per trace: id, root span name, service, status, duration and span count. Use autotel_get_trace for the spans of a specific trace.`,input:TH,execute:async t=>{let n=await hA({query:typeof t.query==`string`?t.query:``,limit:CH(t.limit)},e);return n.status===`ok`?{traces:n.traces.map(EH),truncated:n.nextCursor!==null}:kH(n)}},autotel_get_trace:{description:`Every span of one trace, by id: name, kind, duration, status and attributes. Use after autotel_query_traces has narrowed to a trace worth opening.`,input:{type:`object`,properties:{traceId:{type:`string`,description:`Trace id, as returned by autotel_query_traces.`}},required:[`traceId`]},execute:async t=>{let n=typeof t.traceId==`string`?t.traceId.trim():``;if(!n)return`traceId is required — take one from autotel_query_traces.`;let r=await hA({query:`trace_id = "${n}"`,limit:1},e);if(r.status!==`ok`)return kH(r);let i=r.traces[0];return i?{...EH(i),spans:i.spans.map(DH)}:`No stored trace with id ${n}.`}},autotel_list_errors:{description:`Failing operations grouped by fingerprint: type, message, occurrence count, affected services and sample trace ids. The first call to make when asked what is broken.`,input:{type:`object`,properties:{query:{type:`string`,description:wH}}},execute:async t=>{let n=await vA({query:typeof t.query==`string`?t.query:``},e);return n.status===`ok`?{errors:n.errors.map(e=>({type:e.type,message:e.message,count:e.count,service:e.service,lastSeen:new Date(e.lastSeen).toISOString(),sampleTraceIds:e.affectedTraces.slice(0,3)}))}:kH(n)}},autotel_query_logs:{description:`Search stored log records. Returns severity, body, service, and the trace id when the log was emitted inside one.`,input:TH,execute:async t=>{let n=await _A({query:typeof t.query==`string`?t.query:``,limit:CH(t.limit)},e);return n.status===`ok`?{logs:n.logs.map(OH),truncated:n.nextCursor!==null}:kH(n)}},autotel_webmcp_inventory:{description:`The WebMCP tool surface this page has exposed to agents, as recorded by autotel-webmcp: which tools were offered, how often they were called, and which annotations the browser silently discarded at registration. Use to check a page's own tools behave as written.`,execute:async()=>{let t=await yA({},e);if(t.status!==`ok`)return kH(t);let{summary:n,tools:r}=t.webmcp;return{summary:n,tools:r.map(e=>({name:e.name,offered:e.offered,calls:e.calls,hasInputSchema:e.hasInputSchema,annotationsDropped:e.annotationsDropped,labelMismatch:e.labelMismatch,redefined:e.redefined}))}}}}}function MH(e){let t=new AbortController,n=jH(e);return{async mount(){let e=bH();if(e)for(let[r,i]of Object.entries(n))await e.registerTool({name:r,description:i.description,annotations:{readOnlyHint:!0},...i.input&&{inputSchema:i.input},execute:e=>AH(i,e)},{signal:t.signal})},unmount(){t.abort()}}}var NH=V(`<!> <!>`,1),PH=V(`<div class="contents"><!></div>`);function FH(e,t){it(t,!0);function n(e){Mu(e.tab??`traces`),Nl.value=e.q??``,Pl.value=e.status??`all`,Fl.value=e.minDuration??0,ml.value=e.window??bs,Ml.value=e.sort??Zu,zl.value=e.genaiQuery??``,e.traceId&&Wc(e.traceId,e.spanId)}Lr(()=>{pl.value=t.wsUrl});let r=gH();Lr(()=>(r.refresh(),()=>r.dispose())),Lr(()=>{ml.value,cl.value.length,r.invalidate()});let i=N(void 0),a=N(void 0);Lr(()=>{if(!z(i))return;let e=z(i).getRootNode();P(a,yH(e instanceof ShadowRoot?e:document.body),!0)}),Lr(()=>{t.deepLink&&n(t.deepLink)}),Lr(()=>{let e=Uc.value;e&&cl.value.some(t=>t.traceId===e.traceId)&&(Nu(e.traceId,e.spanId??null),Mu(`traces`),Uc.value=null)});let o=null;Lr(()=>{if(t.mode!==`fullpage`)return;let e={tab:Bc.value,traceId:Vc.value??void 0,spanId:Hc.value??void 0,q:Nl.value||void 0,status:Pl.value,minDuration:Fl.value,window:ml.value,sort:Ml.value,genaiQuery:zl.value||void 0};if(Uc.value)return;let n=ed(e);if(n===location.hash)return;let r=td(o,e);o=e;let i=`${location.pathname}${location.search}${n}`;r===`push`?history.pushState(history.state,``,i):history.replaceState(history.state,``,i)}),Lr(()=>{if(t.mode!==`fullpage`)return;let e=()=>{let e=$u(location.hash);o=e,n(e)};return window.addEventListener(`hashchange`,e),()=>window.removeEventListener(`hashchange`,e)}),Lr(()=>{Wu(),es(Zo(t.wsUrl));let e=new Xo(t.wsUrl);fl.value=`connecting`;let n=e.onStatusChange(e=>{fl.value=e}),r=e.onMessage(Tu);return e.connect(),()=>{r(),n(),e.disconnect()}}),Lr(()=>{if(t.mode!==`fullpage`)return;let e=Zo(t.wsUrl);if(!e)return;let n=MH({fetch:globalThis.fetch.bind(globalThis),baseUrl:e});return n.mount(),()=>n.unmount()});var s=PH();iE(F(s),{get defaultPortalTo(){return z(a)},children:(e,n)=>{var r=la(),i=I(r),a=e=>{pH(e,{})},o=e=>{var t=NH(),n=I(t);Hf(n,{}),nH(L(n,2),{}),H(e,t)};W(i,e=>{t.mode===`fullpage`?e(a):e(o,-1)}),H(e,r)},$$slots:{default:!0}}),D(s),Vo(s,e=>P(i,e),()=>z(i)),H(e,s),at()}function IH(e,t){let n=pa(FH,{target:e,props:t});return()=>{_a(n)}}var LH=`/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
46
46
  @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-outline-style:solid}::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-outline-style:solid}}}@layer theme{:root,:host{--font-sans:"Hanken Grotesk", system-ui, -apple-system, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "SF Mono", monospace;--color-red-100:#ffe2e2;--color-red-400:#ff6568;--color-red-500:#fb2c36;--color-red-600:#e40014;--color-red-700:#bf000f;--color-orange-100:#ffedd5;--color-orange-400:#ff8b1a;--color-orange-500:#fe6e00;--color-orange-600:#f05100;--color-orange-700:#c53c00;--color-amber-100:#fef3c6;--color-amber-500:#f99c00;--color-amber-600:#dd7400;--color-amber-700:#b75000;--color-yellow-100:#fef9c2;--color-yellow-500:#edb200;--color-yellow-600:#cd8900;--color-green-100:#dcfce7;--color-green-400:#05df72;--color-green-500:#00c758;--color-green-600:#00a544;--color-emerald-500:#00bb7f;--color-emerald-600:#009767;--color-teal-500:#00baa7;--color-teal-600:#009588;--color-cyan-100:#cefafe;--color-cyan-500:#00b7d7;--color-cyan-600:#0092b5;--color-sky-500:#00a5ef;--color-sky-600:#0084cc;--color-blue-100:#dbeafe;--color-blue-400:#54a2ff;--color-blue-500:#3080ff;--color-blue-600:#155dfc;--color-indigo-500:#625fff;--color-indigo-600:#4f39f6;--color-violet-100:#ede9fe;--color-violet-500:#8d54ff;--color-violet-600:#7f22fe;--color-violet-700:#7008e7;--color-purple-100:#f3e8ff;--color-purple-400:#c07eff;--color-purple-500:#ac4bff;--color-purple-600:#9810fa;--color-fuchsia-500:#e12afb;--color-fuchsia-600:#c600db;--color-rose-500:#ff2357;--color-rose-600:#e70044;--color-gray-50:#f9fafb;--color-gray-100:#f3f4f6;--color-gray-400:#99a1af;--color-gray-500:#6a7282;--color-gray-900:#101828;--color-stone-500:#79716b;--color-stone-600:#57534d;--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-md:28rem;--container-lg:32rem;--container-xl:36rem;--container-2xl:42rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-wide:.025em;--tracking-wider:.05em;--leading-tight:1.25;--leading-snug:1.375;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--animate-spin:spin 1s linear infinite;--animate-ping:ping 1s cubic-bezier(0, 0, .2, 1) infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-surface:var(--at-surface);--color-subtle:var(--at-muted);--color-hover:var(--at-surface-hover);--color-code:var(--at-code);--color-fg:var(--at-text-primary);--color-fg-muted:var(--at-text-secondary);--color-fg-subtle:var(--at-text-muted);--color-line:var(--at-border);--color-line-subtle:var(--at-border-light);--color-accent:var(--at-accent);--color-danger:var(--at-error-text);--color-danger-bg:var(--at-error-bg);--color-danger-border:var(--at-error-border);--color-success:var(--at-ok-text);--color-success-bg:var(--at-ok-bg);--color-success-border:var(--at-ok-border);--color-warning:var(--at-warn-text);--color-warning-bg:var(--at-warn-bg);--color-warning-border:var(--at-warn-border);--color-selected:var(--at-selected-bg)}@supports (color:color(display-p3 0 0 0)){:root,:host{--color-red-100:color(display-p3 .980386 .889727 .887779);--color-red-400:color(display-p3 .933534 .431676 .423491);--color-red-500:color(display-p3 .903738 .262579 .253307);--color-red-600:color(display-p3 .830323 .140383 .133196);--color-red-700:color(display-p3 .692737 .116232 .104679);--color-orange-100:color(display-p3 .988762 .931393 .843273);--color-orange-400:color(display-p3 .950192 .561807 .211017);--color-orange-500:color(display-p3 .946589 .449788 .0757345);--color-orange-600:color(display-p3 .887467 .341665 .0219962);--color-orange-700:color(display-p3 .729844 .257256 .0511062);--color-amber-100:color(display-p3 .989391 .954583 .796328);--color-amber-500:color(display-p3 .93994 .620584 .0585367);--color-amber-600:color(display-p3 .827144 .467166 .0336006);--color-amber-700:color(display-p3 .67989 .32771 .0520514);--color-yellow-100:color(display-p3 .993436 .977463 .782913);--color-yellow-500:color(display-p3 .903651 .703062 .0745389);--color-yellow-600:color(display-p3 .776342 .542492 .041709);--color-green-100:color(display-p3 .885269 .984329 .910368);--color-green-400:color(display-p3 .399536 .862346 .49324);--color-green-500:color(display-p3 .308734 .774754 .374307);--color-green-600:color(display-p3 .243882 .640824 .294808);--color-emerald-500:color(display-p3 .267113 .726847 .508397);--color-emerald-600:color(display-p3 .206557 .589057 .413962);--color-teal-500:color(display-p3 .266569 .721518 .655462);--color-teal-600:color(display-p3 .207114 .579584 .53668);--color-cyan-100:color(display-p3 .843085 .97553 .992573);--color-cyan-500:color(display-p3 .246703 .710032 .841444);--color-cyan-600:color(display-p3 .193249 .564651 .707197);--color-sky-500:color(display-p3 .219113 .639027 .931479);--color-sky-600:color(display-p3 .162505 .509376 .796082);--color-blue-100:color(display-p3 .869214 .915931 .989622);--color-blue-400:color(display-p3 .397443 .62813 .992116);--color-blue-500:color(display-p3 .266422 .491219 .988624);--color-blue-600:color(display-p3 .174493 .358974 .950247);--color-indigo-500:color(display-p3 .380374 .372235 .971707);--color-indigo-600:color(display-p3 .297656 .227891 .929242);--color-violet-100:color(display-p3 .926222 .913546 .990178);--color-violet-500:color(display-p3 .523372 .329605 .990884);--color-violet-600:color(display-p3 .459951 .162666 .957985);--color-violet-700:color(display-p3 .40161 .0841901 .871151);--color-purple-100:color(display-p3 .945034 .910569 .992972);--color-purple-400:color(display-p3 .719919 .492497 .995173);--color-purple-500:color(display-p3 .629519 .30089 .990817);--color-purple-600:color(display-p3 .546729 .130167 .94439);--color-fuchsia-500:color(display-p3 .81268 .241966 .951571);--color-fuchsia-600:color(display-p3 .716587 .083681 .841036);--color-rose-500:color(display-p3 .921824 .240748 .355666);--color-rose-600:color(display-p3 .848792 .102011 .269259);--color-gray-50:color(display-p3 .977213 .98084 .985102);--color-gray-100:color(display-p3 .953567 .956796 .964321);--color-gray-400:color(display-p3 .605734 .630385 .680158);--color-gray-500:color(display-p3 .421287 .446085 .504784);--color-gray-900:color(display-p3 .070423 .0928982 .151928);--color-stone-500:color(display-p3 .467445 .443064 .42264);--color-stone-600:color(display-p3 .339543 .325291 .304619)}}@supports (color:lab(0% 0 0)){:root,:host{--color-red-100:lab(92.243% 10.2865 3.83865);--color-red-400:lab(63.7053% 60.745 31.3109);--color-red-500:lab(55.4814% 75.0732 48.8528);--color-red-600:lab(48.4493% 77.4328 61.5452);--color-red-700:lab(40.4273% 67.2623 53.7441);--color-orange-100:lab(94.7127% 3.58394 14.3151);--color-orange-400:lab(70.0429% 42.5156 75.8207);--color-orange-500:lab(64.272% 57.1788 90.3583);--color-orange-600:lab(57.1026% 64.2584 89.8886);--color-orange-700:lab(46.4615% 57.7275 70.8507);--color-amber-100:lab(95.916% -1.21653 23.111);--color-amber-500:lab(72.7183% 31.8672 97.9407);--color-amber-600:lab(60.3514% 40.5624 87.1228);--color-amber-700:lab(47.2709% 42.9082 69.2966);--color-yellow-100:lab(97.3564% -4.51407 27.344);--color-yellow-500:lab(76.3898% 14.5258 98.4589);--color-yellow-600:lab(62.7799% 22.4197 86.1544);--color-green-100:lab(96.1861% -13.8464 6.52365);--color-green-400:lab(78.503% -64.9265 39.7492);--color-green-500:lab(70.5521% -66.5147 45.8073);--color-green-600:lab(59.0978% -58.6621 41.2579);--color-emerald-500:lab(66.9756% -58.27 19.5419);--color-emerald-600:lab(55.0481% -49.9246 15.93);--color-teal-500:lab(67.3859% -49.0983 -2.63511);--color-teal-600:lab(55.0223% -41.0774 -3.90277);--color-cyan-100:lab(95.3146% -13.8285 -6.84732);--color-cyan-500:lab(67.805% -35.3952 -30.2018);--color-cyan-600:lab(55.1767% -26.7496 -30.5139);--color-sky-500:lab(63.3038% -18.433 -51.0407);--color-sky-600:lab(51.7754% -11.4712 -49.8349);--color-blue-100:lab(92.0301% -2.24757 -11.6453);--color-blue-400:lab(65.0361% -1.42065 -56.9802);--color-blue-500:lab(54.1736% 13.3369 -74.6839);--color-blue-600:lab(44.0605% 29.0279 -86.0352);--color-indigo-500:lab(48.295% 38.3129 -81.9673);--color-indigo-600:lab(38.4009% 52.6132 -92.3857);--color-violet-100:lab(93.0838% 4.35197 -9.88284);--color-violet-500:lab(49.9355% 55.1776 -81.8963);--color-violet-600:lab(41.088% 68.9966 -91.995);--color-violet-700:lab(35.2783% 67.9912 -88.793);--color-purple-100:lab(93.3333% 6.97437 -9.83434);--color-purple-400:lab(63.6946% 47.6127 -59.2066);--color-purple-500:lab(52.0183% 66.11 -78.2316);--color-purple-600:lab(43.0295% 75.21 -86.5669);--color-fuchsia-500:lab(56.4256% 83.132 -64.639);--color-fuchsia-600:lab(47.5131% 83.4271 -63.0363);--color-rose-500:lab(56.101% 79.4328 31.4532);--color-rose-600:lab(49.1882% 81.577 36.0311);--color-gray-50:lab(98.2596% -.247031 -.706708);--color-gray-100:lab(96.1596% -.0823438 -1.13575);--color-gray-400:lab(65.9269% -.832707 -8.17473);--color-gray-500:lab(47.7841% -.393182 -10.0268);--color-gray-900:lab(8.11897% .811279 -12.254);--color-stone-500:lab(48.1164% 2.35701 4.26852);--color-stone-600:lab(35.5168% 1.08604 4.07829)}}}@layer base{*,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::-webkit-file-upload-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::-webkit-file-upload-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:-webkit-any([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:-webkit-any([multiple],[size])) optgroup option{padding-inline-start:20px}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::-webkit-file-upload-button{margin-inline-end:4px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block-start:0;padding-block-end:0}::-webkit-datetime-edit-year-field{padding-block-start:0;padding-block-end:0}::-webkit-datetime-edit-month-field{padding-block-start:0;padding-block-end:0}::-webkit-datetime-edit-day-field{padding-block-start:0;padding-block-end:0}::-webkit-datetime-edit-hour-field{padding-block-start:0;padding-block-end:0}::-webkit-datetime-edit-minute-field{padding-block-start:0;padding-block-end:0}::-webkit-datetime-edit-second-field{padding-block-start:0;padding-block-end:0}::-webkit-datetime-edit-millisecond-field{padding-block-start:0;padding-block-end:0}::-webkit-datetime-edit-meridiem-field{padding-block-start:0;padding-block-end:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button{-webkit-appearance:button;appearance:button}input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;appearance:button}::-webkit-file-upload-button{-webkit-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.\\@container{container-type:inline-size}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{top:0;bottom:0;left:0;right:0}.inset-x-0{left:0;right:0}.inset-y-0{top:0;bottom:0}.-top-1{top:calc(var(--spacing) * -1)}.top-0{top:0}.top-0\\.5{top:calc(var(--spacing) * .5)}.top-1{top:var(--spacing)}.top-1\\/2{top:50%}.top-2{top:calc(var(--spacing) * 2)}.top-3{top:calc(var(--spacing) * 3)}.top-10{top:calc(var(--spacing) * 10)}.top-\\[7px\\]{top:7px}.top-\\[9px\\]{top:9px}.top-\\[calc\\(100\\%-2px\\)\\]{top:calc(100% - 2px)}.top-full{top:100%}.-right-1{right:calc(var(--spacing) * -1)}.-right-1\\.5{right:calc(var(--spacing) * -1.5)}.right-0{right:0}.right-1{right:var(--spacing)}.right-1\\.5{right:calc(var(--spacing) * 1.5)}.right-2{right:calc(var(--spacing) * 2)}.right-3{right:calc(var(--spacing) * 3)}.-bottom-1{bottom:calc(var(--spacing) * -1)}.bottom-0{bottom:0}.bottom-0\\.5{bottom:calc(var(--spacing) * .5)}.bottom-1{bottom:var(--spacing)}.bottom-3{bottom:calc(var(--spacing) * 3)}.-left-1{left:calc(var(--spacing) * -1)}.-left-1\\.5{left:calc(var(--spacing) * -1.5)}.-left-px{left:-1px}.left-0{left:0}.left-1{left:var(--spacing)}.left-1\\/2{left:50%}.left-2{left:calc(var(--spacing) * 2)}.isolate{isolation:isolate}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-50{z-index:50}.z-\\[1\\]{z-index:1}.z-\\[1000\\]{z-index:1000}.z-\\[1001\\]{z-index:1001}.z-\\[1100\\]{z-index:1100}.z-\\[1200\\]{z-index:1200}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.-m-1{margin:calc(var(--spacing) * -1)}.m-3{margin:calc(var(--spacing) * 3)}.m-4{margin:calc(var(--spacing) * 4)}.mx-4{margin-inline:calc(var(--spacing) * 4)}.mx-auto{margin-inline-start:auto;margin-inline-end:auto}.my-1{margin-block:var(--spacing)}.mt-0\\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-1\\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-auto{margin-top:auto}.mt-px{margin-top:1px}.mr-0\\.5{margin-right:calc(var(--spacing) * .5)}.mr-1{margin-right:var(--spacing)}.mr-1\\.5{margin-right:calc(var(--spacing) * 1.5)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mb-0\\.5{margin-bottom:calc(var(--spacing) * .5)}.mb-1{margin-bottom:var(--spacing)}.mb-1\\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.ml-0\\.5{margin-left:calc(var(--spacing) * .5)}.ml-1{margin-left:var(--spacing)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-auto{margin-left:auto}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.h-0\\.5{height:calc(var(--spacing) * .5)}.h-1{height:var(--spacing)}.h-1\\.5{height:calc(var(--spacing) * 1.5)}.h-1\\/2{height:50%}.h-2{height:calc(var(--spacing) * 2)}.h-2\\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-3\\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-11{height:calc(var(--spacing) * 11)}.h-24{height:calc(var(--spacing) * 24)}.h-\\[300px\\]{height:300px}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-48{max-height:calc(var(--spacing) * 48)}.max-h-\\[60vh\\]{max-height:60vh}.max-h-\\[80vh\\]{max-height:80vh}.max-h-\\[85vh\\]{max-height:85vh}.max-h-\\[160px\\]{max-height:160px}.max-h-\\[200px\\]{max-height:200px}.max-h-\\[240px\\]{max-height:240px}.min-h-0{min-height:0}.min-h-\\[120px\\]{min-height:120px}.w-0\\.5{width:calc(var(--spacing) * .5)}.w-1{width:var(--spacing)}.w-1\\.5{width:calc(var(--spacing) * 1.5)}.w-2{width:calc(var(--spacing) * 2)}.w-2\\.5{width:calc(var(--spacing) * 2.5)}.w-3{width:calc(var(--spacing) * 3)}.w-3\\.5{width:calc(var(--spacing) * 3.5)}.w-4{width:calc(var(--spacing) * 4)}.w-6{width:calc(var(--spacing) * 6)}.w-7{width:calc(var(--spacing) * 7)}.w-8{width:calc(var(--spacing) * 8)}.w-9{width:calc(var(--spacing) * 9)}.w-14{width:calc(var(--spacing) * 14)}.w-24{width:calc(var(--spacing) * 24)}.w-44{width:calc(var(--spacing) * 44)}.w-48{width:calc(var(--spacing) * 48)}.w-64{width:calc(var(--spacing) * 64)}.w-72{width:calc(var(--spacing) * 72)}.w-80{width:calc(var(--spacing) * 80)}.w-\\[1\\%\\]{width:1%}.w-\\[80px\\]{width:80px}.w-\\[200px\\]{width:200px}.w-\\[480px\\]{width:480px}.w-\\[min\\(560px\\,92vw\\)\\]{width:min(560px,92vw)}.w-\\[min\\(700px\\,92vw\\)\\]{width:min(700px,92vw)}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.w-px{width:1px}.w-screen{width:100vw}.max-w-2xl{max-width:var(--container-2xl)}.max-w-\\[10rem\\]{max-width:10rem}.max-w-\\[14rem\\]{max-width:14rem}.max-w-\\[16rem\\]{max-width:16rem}.max-w-\\[90vw\\]{max-width:90vw}.max-w-\\[200px\\]{max-width:200px}.max-w-\\[420px\\]{max-width:420px}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-xl{max-width:var(--container-xl)}.min-w-0{min-width:0}.min-w-\\[8px\\]{min-width:8px}.min-w-\\[16px\\]{min-width:16px}.min-w-\\[180px\\]{min-width:180px}.min-w-full{min-width:100%}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.border-collapse{border-collapse:collapse}.-translate-x-1\\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.scale-125{--tw-scale-x:125%;--tw-scale-y:125%;--tw-scale-z:125%;scale:var(--tw-scale-x) var(--tw-scale-y)}.-rotate-90{rotate:-90deg}.rotate-90{rotate:90deg}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-ping{animation:var(--animate-ping)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-col-resize{cursor:col-resize}.cursor-default{cursor:default}.cursor-ew-resize{cursor:ew-resize}.cursor-grab{cursor:grab}.cursor-grabbing{cursor:grabbing}.cursor-ns-resize{cursor:ns-resize}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.resize{resize:both}.resize-y{resize:vertical}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-\\[80px_1fr\\]{grid-template-columns:80px 1fr}.grid-cols-\\[100px_1fr\\]{grid-template-columns:100px 1fr}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0\\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-px{gap:1px}:where(.space-y-0>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:0;margin-block-end:0}:where(.space-y-0\\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}.gap-y-2{row-gap:calc(var(--spacing) * 2)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-line>:not(:last-child)){border-color:var(--color-line)}:where(.divide-line-subtle>:not(:last-child)){border-color:var(--color-line-subtle)}.self-stretch{align-self:stretch}.justify-self-end{justify-self:flex-end}.justify-self-start{justify-self:flex-start}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-\\[1px\\]{border-radius:1px}.rounded-full{border-radius:2147483647px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-accent,.border-accent\\/30{border-color:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.border-accent\\/30{border-color:color-mix(in oklab, var(--color-accent) 30%, transparent)}}.border-accent\\/40{border-color:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.border-accent\\/40{border-color:color-mix(in oklab, var(--color-accent) 40%, transparent)}}.border-amber-500\\/20{border-color:#f99c0033}@supports (color:color-mix(in lab, red, red)){.border-amber-500\\/20{border-color:color-mix(in oklab, var(--color-amber-500) 20%, transparent)}}.border-amber-500\\/30{border-color:#f99c004d}@supports (color:color-mix(in lab, red, red)){.border-amber-500\\/30{border-color:color-mix(in oklab, var(--color-amber-500) 30%, transparent)}}.border-blue-500\\/30{border-color:#3080ff4d}@supports (color:color-mix(in lab, red, red)){.border-blue-500\\/30{border-color:color-mix(in oklab, var(--color-blue-500) 30%, transparent)}}.border-cyan-500\\/30{border-color:#00b7d74d}@supports (color:color-mix(in lab, red, red)){.border-cyan-500\\/30{border-color:color-mix(in oklab, var(--color-cyan-500) 30%, transparent)}}.border-danger-border{border-color:var(--color-danger-border)}.border-danger\\/30{border-color:var(--color-danger)}@supports (color:color-mix(in lab, red, red)){.border-danger\\/30{border-color:color-mix(in oklab, var(--color-danger) 30%, transparent)}}.border-emerald-500\\/30{border-color:#00bb7f4d}@supports (color:color-mix(in lab, red, red)){.border-emerald-500\\/30{border-color:color-mix(in oklab, var(--color-emerald-500) 30%, transparent)}}.border-fuchsia-500\\/30{border-color:#e12afb4d}@supports (color:color-mix(in lab, red, red)){.border-fuchsia-500\\/30{border-color:color-mix(in oklab, var(--color-fuchsia-500) 30%, transparent)}}.border-green-500\\/30{border-color:#00c7584d}@supports (color:color-mix(in lab, red, red)){.border-green-500\\/30{border-color:color-mix(in oklab, var(--color-green-500) 30%, transparent)}}.border-indigo-500\\/30{border-color:#625fff4d}@supports (color:color-mix(in lab, red, red)){.border-indigo-500\\/30{border-color:color-mix(in oklab, var(--color-indigo-500) 30%, transparent)}}.border-line{border-color:var(--color-line)}.border-line-subtle{border-color:var(--color-line-subtle)}.border-line\\/50{border-color:var(--color-line)}@supports (color:color-mix(in lab, red, red)){.border-line\\/50{border-color:color-mix(in oklab, var(--color-line) 50%, transparent)}}.border-line\\/60{border-color:var(--color-line)}@supports (color:color-mix(in lab, red, red)){.border-line\\/60{border-color:color-mix(in oklab, var(--color-line) 60%, transparent)}}.border-orange-500\\/30{border-color:#fe6e004d}@supports (color:color-mix(in lab, red, red)){.border-orange-500\\/30{border-color:color-mix(in oklab, var(--color-orange-500) 30%, transparent)}}.border-purple-500\\/30{border-color:#ac4bff4d}@supports (color:color-mix(in lab, red, red)){.border-purple-500\\/30{border-color:color-mix(in oklab, var(--color-purple-500) 30%, transparent)}}.border-red-500\\/30{border-color:#fb2c364d}@supports (color:color-mix(in lab, red, red)){.border-red-500\\/30{border-color:color-mix(in oklab, var(--color-red-500) 30%, transparent)}}.border-stone-500\\/30{border-color:#79716b4d}@supports (color:color-mix(in lab, red, red)){.border-stone-500\\/30{border-color:color-mix(in oklab, var(--color-stone-500) 30%, transparent)}}.border-success-border{border-color:var(--color-success-border)}.border-violet-500\\/30{border-color:#8d54ff4d}@supports (color:color-mix(in lab, red, red)){.border-violet-500\\/30{border-color:color-mix(in oklab, var(--color-violet-500) 30%, transparent)}}.border-warning-border{border-color:var(--color-warning-border)}.border-white{border-color:var(--color-white)}.border-l-warning{border-left-color:var(--color-warning)}.\\!bg-accent{background-color:var(--color-accent)!important}.bg-accent,.bg-accent\\/5{background-color:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.bg-accent\\/5{background-color:color-mix(in oklab, var(--color-accent) 5%, transparent)}}.bg-accent\\/10{background-color:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.bg-accent\\/10{background-color:color-mix(in oklab, var(--color-accent) 10%, transparent)}}.bg-accent\\/12{background-color:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.bg-accent\\/12{background-color:color-mix(in oklab, var(--color-accent) 12%, transparent)}}.bg-accent\\/15{background-color:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.bg-accent\\/15{background-color:color-mix(in oklab, var(--color-accent) 15%, transparent)}}.bg-accent\\/70{background-color:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.bg-accent\\/70{background-color:color-mix(in oklab, var(--color-accent) 70%, transparent)}}.bg-amber-100{background-color:var(--color-amber-100)}.bg-amber-500{background-color:var(--color-amber-500)}.bg-amber-500\\/10{background-color:#f99c001a}@supports (color:color-mix(in lab, red, red)){.bg-amber-500\\/10{background-color:color-mix(in oklab, var(--color-amber-500) 10%, transparent)}}.bg-amber-500\\/15{background-color:#f99c0026}@supports (color:color-mix(in lab, red, red)){.bg-amber-500\\/15{background-color:color-mix(in oklab, var(--color-amber-500) 15%, transparent)}}.bg-black\\/55{background-color:#0000008c}@supports (color:color-mix(in lab, red, red)){.bg-black\\/55{background-color:color-mix(in oklab, var(--color-black) 55%, transparent)}}.bg-black\\/60{background-color:#0009}@supports (color:color-mix(in lab, red, red)){.bg-black\\/60{background-color:color-mix(in oklab, var(--color-black) 60%, transparent)}}.bg-blue-100{background-color:var(--color-blue-100)}.bg-blue-400{background-color:var(--color-blue-400)}.bg-blue-500{background-color:var(--color-blue-500)}.bg-blue-500\\/10{background-color:#3080ff1a}@supports (color:color-mix(in lab, red, red)){.bg-blue-500\\/10{background-color:color-mix(in oklab, var(--color-blue-500) 10%, transparent)}}.bg-blue-500\\/15{background-color:#3080ff26}@supports (color:color-mix(in lab, red, red)){.bg-blue-500\\/15{background-color:color-mix(in oklab, var(--color-blue-500) 15%, transparent)}}.bg-code{background-color:var(--color-code)}.bg-cyan-100{background-color:var(--color-cyan-100)}.bg-cyan-500\\/15{background-color:#00b7d726}@supports (color:color-mix(in lab, red, red)){.bg-cyan-500\\/15{background-color:color-mix(in oklab, var(--color-cyan-500) 15%, transparent)}}.bg-danger{background-color:var(--color-danger)}.bg-danger-bg,.bg-danger-bg\\/40{background-color:var(--color-danger-bg)}@supports (color:color-mix(in lab, red, red)){.bg-danger-bg\\/40{background-color:color-mix(in oklab, var(--color-danger-bg) 40%, transparent)}}.bg-danger\\/5{background-color:var(--color-danger)}@supports (color:color-mix(in lab, red, red)){.bg-danger\\/5{background-color:color-mix(in oklab, var(--color-danger) 5%, transparent)}}.bg-emerald-500{background-color:var(--color-emerald-500)}.bg-emerald-500\\/10{background-color:#00bb7f1a}@supports (color:color-mix(in lab, red, red)){.bg-emerald-500\\/10{background-color:color-mix(in oklab, var(--color-emerald-500) 10%, transparent)}}.bg-emerald-500\\/15{background-color:#00bb7f26}@supports (color:color-mix(in lab, red, red)){.bg-emerald-500\\/15{background-color:color-mix(in oklab, var(--color-emerald-500) 15%, transparent)}}.bg-fg-subtle{background-color:var(--color-fg-subtle)}.bg-fuchsia-500\\/15{background-color:#e12afb26}@supports (color:color-mix(in lab, red, red)){.bg-fuchsia-500\\/15{background-color:color-mix(in oklab, var(--color-fuchsia-500) 15%, transparent)}}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-400{background-color:var(--color-gray-400)}.bg-gray-500{background-color:var(--color-gray-500)}.bg-gray-900{background-color:var(--color-gray-900)}.bg-green-100{background-color:var(--color-green-100)}.bg-green-400{background-color:var(--color-green-400)}.bg-green-500{background-color:var(--color-green-500)}.bg-green-500\\/15{background-color:#00c75826}@supports (color:color-mix(in lab, red, red)){.bg-green-500\\/15{background-color:color-mix(in oklab, var(--color-green-500) 15%, transparent)}}.bg-hover{background-color:var(--color-hover)}.bg-indigo-500\\/15{background-color:#625fff26}@supports (color:color-mix(in lab, red, red)){.bg-indigo-500\\/15{background-color:color-mix(in oklab, var(--color-indigo-500) 15%, transparent)}}.bg-line{background-color:var(--color-line)}.bg-line-subtle{background-color:var(--color-line-subtle)}.bg-orange-100{background-color:var(--color-orange-100)}.bg-orange-400{background-color:var(--color-orange-400)}.bg-orange-500{background-color:var(--color-orange-500)}.bg-orange-500\\/15{background-color:#fe6e0026}@supports (color:color-mix(in lab, red, red)){.bg-orange-500\\/15{background-color:color-mix(in oklab, var(--color-orange-500) 15%, transparent)}}.bg-purple-100{background-color:var(--color-purple-100)}.bg-purple-400{background-color:var(--color-purple-400)}.bg-purple-500{background-color:var(--color-purple-500)}.bg-purple-500\\/15{background-color:#ac4bff26}@supports (color:color-mix(in lab, red, red)){.bg-purple-500\\/15{background-color:color-mix(in oklab, var(--color-purple-500) 15%, transparent)}}.bg-red-100{background-color:var(--color-red-100)}.bg-red-500{background-color:var(--color-red-500)}.bg-red-500\\/15{background-color:#fb2c3626}@supports (color:color-mix(in lab, red, red)){.bg-red-500\\/15{background-color:color-mix(in oklab, var(--color-red-500) 15%, transparent)}}.bg-rose-500{background-color:var(--color-rose-500)}.bg-selected{background-color:var(--color-selected)}.bg-sky-500{background-color:var(--color-sky-500)}.bg-stone-500\\/15{background-color:#79716b26}@supports (color:color-mix(in lab, red, red)){.bg-stone-500\\/15{background-color:color-mix(in oklab, var(--color-stone-500) 15%, transparent)}}.bg-subtle,.bg-subtle\\/40{background-color:var(--color-subtle)}@supports (color:color-mix(in lab, red, red)){.bg-subtle\\/40{background-color:color-mix(in oklab, var(--color-subtle) 40%, transparent)}}.bg-subtle\\/50{background-color:var(--color-subtle)}@supports (color:color-mix(in lab, red, red)){.bg-subtle\\/50{background-color:color-mix(in oklab, var(--color-subtle) 50%, transparent)}}.bg-subtle\\/60{background-color:var(--color-subtle)}@supports (color:color-mix(in lab, red, red)){.bg-subtle\\/60{background-color:color-mix(in oklab, var(--color-subtle) 60%, transparent)}}.bg-success{background-color:var(--color-success)}.bg-success-bg{background-color:var(--color-success-bg)}.bg-surface{background-color:var(--color-surface)}.bg-teal-500{background-color:var(--color-teal-500)}.bg-transparent{background-color:#0000}.bg-violet-100{background-color:var(--color-violet-100)}.bg-violet-500{background-color:var(--color-violet-500)}.bg-violet-500\\/10{background-color:#8d54ff1a}@supports (color:color-mix(in lab, red, red)){.bg-violet-500\\/10{background-color:color-mix(in oklab, var(--color-violet-500) 10%, transparent)}}.bg-violet-500\\/15{background-color:#8d54ff26}@supports (color:color-mix(in lab, red, red)){.bg-violet-500\\/15{background-color:color-mix(in oklab, var(--color-violet-500) 15%, transparent)}}.bg-warning{background-color:var(--color-warning)}.bg-warning-bg{background-color:var(--color-warning-bg)}.bg-warning\\/5{background-color:var(--color-warning)}@supports (color:color-mix(in lab, red, red)){.bg-warning\\/5{background-color:color-mix(in oklab, var(--color-warning) 5%, transparent)}}.bg-yellow-100{background-color:var(--color-yellow-100)}.fill-\\[var\\(--color-fg-subtle\\)\\]{fill:var(--color-fg-subtle)}.fill-amber-500\\/15{fill:#f99c0026}@supports (color:color-mix(in lab, red, red)){.fill-amber-500\\/15{fill:color-mix(in oklab, var(--color-amber-500) 15%, transparent)}}.fill-amber-600{fill:var(--color-amber-600)}.fill-blue-500\\/15{fill:#3080ff26}@supports (color:color-mix(in lab, red, red)){.fill-blue-500\\/15{fill:color-mix(in oklab, var(--color-blue-500) 15%, transparent)}}.fill-blue-600{fill:var(--color-blue-600)}.fill-danger{fill:var(--color-danger)}.fill-emerald-500\\/15{fill:#00bb7f26}@supports (color:color-mix(in lab, red, red)){.fill-emerald-500\\/15{fill:color-mix(in oklab, var(--color-emerald-500) 15%, transparent)}}.fill-emerald-600{fill:var(--color-emerald-600)}.fill-fg-muted{fill:var(--color-fg-muted)}.fill-fg-subtle{fill:var(--color-fg-subtle)}.fill-red-500{fill:var(--color-red-500)}.fill-rose-500\\/15{fill:#ff235726}@supports (color:color-mix(in lab, red, red)){.fill-rose-500\\/15{fill:color-mix(in oklab, var(--color-rose-500) 15%, transparent)}}.fill-rose-600{fill:var(--color-rose-600)}.fill-sky-500\\/15{fill:#00a5ef26}@supports (color:color-mix(in lab, red, red)){.fill-sky-500\\/15{fill:color-mix(in oklab, var(--color-sky-500) 15%, transparent)}}.fill-sky-600{fill:var(--color-sky-600)}.fill-teal-500\\/15{fill:#00baa726}@supports (color:color-mix(in lab, red, red)){.fill-teal-500\\/15{fill:color-mix(in oklab, var(--color-teal-500) 15%, transparent)}}.fill-teal-600{fill:var(--color-teal-600)}.fill-violet-500\\/15{fill:#8d54ff26}@supports (color:color-mix(in lab, red, red)){.fill-violet-500\\/15{fill:color-mix(in oklab, var(--color-violet-500) 15%, transparent)}}.fill-violet-600{fill:var(--color-violet-600)}.fill-warning{fill:var(--color-warning)}.fill-white{fill:var(--color-white)}.stroke-accent{stroke:var(--color-accent)}.stroke-amber-500\\/60{stroke:#f99c0099}@supports (color:color-mix(in lab, red, red)){.stroke-amber-500\\/60{stroke:color-mix(in oklab, var(--color-amber-500) 60%, transparent)}}.stroke-blue-500\\/60{stroke:#3080ff99}@supports (color:color-mix(in lab, red, red)){.stroke-blue-500\\/60{stroke:color-mix(in oklab, var(--color-blue-500) 60%, transparent)}}.stroke-emerald-500\\/60{stroke:#00bb7f99}@supports (color:color-mix(in lab, red, red)){.stroke-emerald-500\\/60{stroke:color-mix(in oklab, var(--color-emerald-500) 60%, transparent)}}.stroke-fg-subtle{stroke:var(--color-fg-subtle)}.stroke-red-500{stroke:var(--color-red-500)}.stroke-rose-500\\/60{stroke:#ff235799}@supports (color:color-mix(in lab, red, red)){.stroke-rose-500\\/60{stroke:color-mix(in oklab, var(--color-rose-500) 60%, transparent)}}.stroke-sky-500\\/60{stroke:#00a5ef99}@supports (color:color-mix(in lab, red, red)){.stroke-sky-500\\/60{stroke:color-mix(in oklab, var(--color-sky-500) 60%, transparent)}}.stroke-teal-500\\/60{stroke:#00baa799}@supports (color:color-mix(in lab, red, red)){.stroke-teal-500\\/60{stroke:color-mix(in oklab, var(--color-teal-500) 60%, transparent)}}.stroke-violet-500\\/60{stroke:#8d54ff99}@supports (color:color-mix(in lab, red, red)){.stroke-violet-500\\/60{stroke:color-mix(in oklab, var(--color-violet-500) 60%, transparent)}}.stroke-\\[2\\.5px\\]{stroke-width:2.5px}.p-0{padding:0}.p-0\\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:var(--spacing)}.p-1\\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.px-0\\.5{padding-inline:calc(var(--spacing) * .5)}.px-1{padding-inline:var(--spacing)}.px-1\\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0\\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-12{padding-block:calc(var(--spacing) * 12)}.py-px{padding-block-start:1px;padding-block-end:1px}.pt-0\\.5{padding-top:calc(var(--spacing) * .5)}.pt-1\\.5{padding-top:calc(var(--spacing) * 1.5)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pr-1{padding-right:var(--spacing)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pr-6{padding-right:calc(var(--spacing) * 6)}.pr-7{padding-right:calc(var(--spacing) * 7)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pb-1{padding-bottom:var(--spacing)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pl-0\\.5{padding-left:calc(var(--spacing) * .5)}.pl-1{padding-left:var(--spacing)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-6{padding-left:calc(var(--spacing) * 6)}.pl-7{padding-left:calc(var(--spacing) * 7)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\\[9px\\]{font-size:9px}.text-\\[10px\\]{font-size:10px}.text-\\[11px\\]{font-size:11px}.text-\\[12px\\]{font-size:12px}.leading-5{--tw-leading:calc(var(--spacing) * 5);line-height:calc(var(--spacing) * 5)}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.text-accent,.text-accent\\/80{color:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.text-accent\\/80{color:color-mix(in oklab, var(--color-accent) 80%, transparent)}}.text-amber-500{color:var(--color-amber-500)}.text-amber-600{color:var(--color-amber-600)}.text-amber-700{color:var(--color-amber-700)}.text-blue-500{color:var(--color-blue-500)}.text-blue-600{color:var(--color-blue-600)}.text-cyan-500{color:var(--color-cyan-500)}.text-cyan-600{color:var(--color-cyan-600)}.text-danger{color:var(--color-danger)}.text-emerald-500{color:var(--color-emerald-500)}.text-emerald-600{color:var(--color-emerald-600)}.text-fg{color:var(--color-fg)}.text-fg-muted,.text-fg-muted\\/70{color:var(--color-fg-muted)}@supports (color:color-mix(in lab, red, red)){.text-fg-muted\\/70{color:color-mix(in oklab, var(--color-fg-muted) 70%, transparent)}}.text-fg-muted\\/80{color:var(--color-fg-muted)}@supports (color:color-mix(in lab, red, red)){.text-fg-muted\\/80{color:color-mix(in oklab, var(--color-fg-muted) 80%, transparent)}}.text-fg-subtle,.text-fg-subtle\\/60{color:var(--color-fg-subtle)}@supports (color:color-mix(in lab, red, red)){.text-fg-subtle\\/60{color:color-mix(in oklab, var(--color-fg-subtle) 60%, transparent)}}.text-fuchsia-500{color:var(--color-fuchsia-500)}.text-fuchsia-600{color:var(--color-fuchsia-600)}.text-gray-50{color:var(--color-gray-50)}.text-gray-100{color:var(--color-gray-100)}.text-gray-500{color:var(--color-gray-500)}.text-gray-900{color:var(--color-gray-900)}.text-green-500{color:var(--color-green-500)}.text-green-600{color:var(--color-green-600)}.text-indigo-500{color:var(--color-indigo-500)}.text-indigo-600{color:var(--color-indigo-600)}.text-line{color:var(--color-line)}.text-line-subtle{color:var(--color-line-subtle)}.text-orange-600{color:var(--color-orange-600)}.text-orange-700{color:var(--color-orange-700)}.text-purple-500{color:var(--color-purple-500)}.text-purple-600{color:var(--color-purple-600)}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-red-700{color:var(--color-red-700)}.text-sky-500{color:var(--color-sky-500)}.text-sky-600{color:var(--color-sky-600)}.text-stone-600{color:var(--color-stone-600)}.text-success{color:var(--color-success)}.text-surface{color:var(--color-surface)}.text-violet-500{color:var(--color-violet-500)}.text-violet-600{color:var(--color-violet-600)}.text-violet-600\\/70{color:#7f22feb3}@supports (color:color-mix(in lab, red, red)){.text-violet-600\\/70{color:color-mix(in oklab, var(--color-violet-600) 70%, transparent)}}.text-violet-700{color:var(--color-violet-700)}.text-warning{color:var(--color-warning)}.text-white{color:var(--color-white)}.text-yellow-500{color:var(--color-yellow-500)}.text-yellow-600{color:var(--color-yellow-600)}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.normal-case{text-transform:none}.uppercase{text-transform:uppercase}.italic{font-style:italic}.not-italic{font-style:normal}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.underline{text-decoration-line:underline}.opacity-0{opacity:0}.opacity-20{opacity:.2}.opacity-30{opacity:.3}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\\[0_1px_0_\\#d4d4d8\\]{--tw-shadow:0 1px 0 var(--tw-shadow-color,#d4d4d8);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring,.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-accent,.ring-accent\\/20{--tw-ring-color:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.ring-accent\\/20{--tw-ring-color:color-mix(in oklab, var(--color-accent) 20%, transparent)}}.ring-danger{--tw-ring-color:var(--color-danger)}.ring-offset-1{--tw-ring-offset-width:1px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.invert{--tw-invert:invert(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur-\\[2px\\]{--tw-backdrop-blur:blur(2px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-100{--tw-duration:.1s;transition-duration:.1s}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.outline-none{--tw-outline-style:none;outline-style:none}.row-virtual{content-visibility:auto;contain-intrinsic-size:auto 32px}.select-none{-webkit-user-select:none;user-select:none}.ring-inset{--tw-ring-inset:inset}@media (hover:hover){.group-hover\\:bg-accent:is(:where(.group):hover *){background-color:var(--color-accent)}.group-hover\\:opacity-100:is(:where(.group):hover *){opacity:1}.group-hover\\/stat\\:underline:is(:where(.group\\/stat):hover *){text-decoration-line:underline}}.group-focus-visible\\:bg-accent:is(:where(.group):focus-visible *){background-color:var(--color-accent)}.last\\:mr-0:last-child{margin-right:0}.last\\:mb-0:last-child{margin-bottom:0}.last\\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}@media (hover:hover){.hover\\:scale-125:hover{--tw-scale-x:125%;--tw-scale-y:125%;--tw-scale-z:125%;scale:var(--tw-scale-x) var(--tw-scale-y)}.hover\\:border-danger-border:hover{border-color:var(--color-danger-border)}.hover\\:bg-accent:hover,.hover\\:bg-accent\\/5:hover{background-color:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-accent\\/5:hover{background-color:color-mix(in oklab, var(--color-accent) 5%, transparent)}}.hover\\:bg-accent\\/10:hover{background-color:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-accent\\/10:hover{background-color:color-mix(in oklab, var(--color-accent) 10%, transparent)}}.hover\\:bg-accent\\/15:hover{background-color:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-accent\\/15:hover{background-color:color-mix(in oklab, var(--color-accent) 15%, transparent)}}.hover\\:bg-accent\\/20:hover{background-color:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-accent\\/20:hover{background-color:color-mix(in oklab, var(--color-accent) 20%, transparent)}}.hover\\:bg-accent\\/90:hover{background-color:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-accent\\/90:hover{background-color:color-mix(in oklab, var(--color-accent) 90%, transparent)}}.hover\\:bg-blue-400:hover{background-color:var(--color-blue-400)}.hover\\:bg-danger-bg:hover,.hover\\:bg-danger-bg\\/60:hover{background-color:var(--color-danger-bg)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-danger-bg\\/60:hover{background-color:color-mix(in oklab, var(--color-danger-bg) 60%, transparent)}}.hover\\:bg-danger-bg\\/70:hover{background-color:var(--color-danger-bg)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-danger-bg\\/70:hover{background-color:color-mix(in oklab, var(--color-danger-bg) 70%, transparent)}}.hover\\:bg-danger-bg\\/80:hover{background-color:var(--color-danger-bg)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-danger-bg\\/80:hover{background-color:color-mix(in oklab, var(--color-danger-bg) 80%, transparent)}}.hover\\:bg-emerald-500\\/25:hover{background-color:#00bb7f40}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-emerald-500\\/25:hover{background-color:color-mix(in oklab, var(--color-emerald-500) 25%, transparent)}}.hover\\:bg-gray-400:hover{background-color:var(--color-gray-400)}.hover\\:bg-green-400:hover{background-color:var(--color-green-400)}.hover\\:bg-hover:hover,.hover\\:bg-hover\\/50:hover{background-color:var(--color-hover)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-hover\\/50:hover{background-color:color-mix(in oklab, var(--color-hover) 50%, transparent)}}.hover\\:bg-orange-400:hover{background-color:var(--color-orange-400)}.hover\\:bg-purple-400:hover{background-color:var(--color-purple-400)}.hover\\:bg-red-400:hover{background-color:var(--color-red-400)}.hover\\:bg-red-500\\/25:hover{background-color:#fb2c3640}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-red-500\\/25:hover{background-color:color-mix(in oklab, var(--color-red-500) 25%, transparent)}}.hover\\:bg-subtle:hover{background-color:var(--color-subtle)}.hover\\:bg-violet-500\\/25:hover{background-color:#8d54ff40}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-violet-500\\/25:hover{background-color:color-mix(in oklab, var(--color-violet-500) 25%, transparent)}}.hover\\:bg-warning-bg:hover,.hover\\:bg-warning-bg\\/80:hover{background-color:var(--color-warning-bg)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-warning-bg\\/80:hover{background-color:color-mix(in oklab, var(--color-warning-bg) 80%, transparent)}}.hover\\:text-accent:hover{color:var(--color-accent)}.hover\\:text-danger:hover{color:var(--color-danger)}.hover\\:text-fg:hover{color:var(--color-fg)}.hover\\:text-fg-muted:hover{color:var(--color-fg-muted)}.hover\\:underline:hover{text-decoration-line:underline}.hover\\:opacity-90:hover{opacity:.9}.hover\\:shadow-lg:hover{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}}.focus\\:border-accent:focus{border-color:var(--color-accent)}.focus\\:border-line:focus{border-color:var(--color-line)}.focus\\:ring-1:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\\:ring-accent:focus{--tw-ring-color:var(--color-accent)}.focus\\:ring-danger:focus{--tw-ring-color:var(--color-danger)}.focus\\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\\:bg-hover:focus-visible{background-color:var(--color-hover)}.focus-visible\\:opacity-100:focus-visible{opacity:1}.focus-visible\\:ring-1:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\\:ring-accent:focus-visible{--tw-ring-color:var(--color-accent)}.focus-visible\\:ring-offset-1:focus-visible{--tw-ring-offset-width:1px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus-visible\\:outline-2:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px}.focus-visible\\:outline-offset-2:focus-visible{outline-offset:2px}.focus-visible\\:outline-accent:focus-visible{outline-color:var(--color-accent)}.focus-visible\\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.active\\:cursor-grabbing:active{cursor:grabbing}.disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\\:opacity-30:disabled{opacity:.3}.disabled\\:opacity-40:disabled{opacity:.4}.disabled\\:opacity-50:disabled{opacity:.5}@media (hover:hover){.disabled\\:hover\\:bg-transparent:disabled:hover{background-color:#0000}}@media (min-width:40rem){.sm\\:inline{display:inline}.sm\\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}}@media (min-width:48rem){.md\\:flex{display:flex}.md\\:hidden{display:none}.md\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@container (width>=28rem){.\\@md\\:block{display:block}.\\@md\\:flex{display:flex}.\\@md\\:hidden{display:none}.\\@md\\:w-72{width:calc(var(--spacing) * 72)}.\\@md\\:shrink-0{flex-shrink:0}.\\@md\\:border-r{border-right-style:var(--tw-border-style);border-right-width:1px}}}*{box-sizing:border-box}:host,:root{--at-surface:#fcfdfe;--at-surface-hover:#f5f6f9;--at-muted:#f2f5f8;--at-code:#f3f6fa;--at-text-primary:#1a1f29;--at-text-secondary:#515864;--at-text-muted:#868d97;--at-border:#dfe1e5;--at-border-light:#eef0f3;--at-shadow:#171f2e1a;--at-accent:#3177dc;--at-error-bg:#ffecea;--at-error-text:#cc2827;--at-error-border:#f8a49d;--at-ok-bg:#e0fae4;--at-ok-text:#0e8c41;--at-ok-border:#89da9b;--at-warn-bg:#fff0d1;--at-warn-text:#a16500;--at-warn-border:#e5c379;--at-highlight-bg:#fff6d1;--at-selected-bg:#e9f3ff;--at-scrollbar-thumb:#ced1d6;--at-scrollbar-thumb-hover:#999fa8}@supports (color:color(display-p3 0 0 0)){:host,:root{--at-surface:color(display-p3 .989609 .992382 .997175);--at-surface-hover:color(display-p3 .960878 .966392 .975929);--at-muted:color(display-p3 .951795 .958673 .970576);--at-code:color(display-p3 .955784 .964045 .978342);--at-text-primary:color(display-p3 .106201 .12247 .157281);--at-text-secondary:color(display-p3 .323937 .346032 .388256);--at-text-muted:color(display-p3 .528711 .550898 .589512);--at-border:color(display-p3 .875378 .883503 .897566);--at-border-light:color(display-p3 .934839 .941694 .953557);--at-shadow:color(display-p3 .0979137 .121845 .174352/.1);--at-accent:color(display-p3 .266557 .461859 .837181);--at-error-bg:color(display-p3 1.00853 .923821 .911661);--at-error-text:color(display-p3 .7372 .221951 .191652);--at-error-border:color(display-p3 .924106 .659231 .626897);--at-ok-bg:color(display-p3 .896905 .977035 .900254);--at-ok-text:color(display-p3 .247857 .539374 .286752);--at-ok-border:color(display-p3 .609805 .847347 .627399);--at-warn-bg:color(display-p3 .997819 .943515 .816698);--at-warn-text:color(display-p3 .607081 .403503 .0845266);--at-warn-border:color(display-p3 .876737 .768181 .515098);--at-highlight-bg:color(display-p3 .994932 .96424 .830533);--at-selected-bg:color(display-p3 .910207 .951093 1.02232);--at-scrollbar-thumb:color(display-p3 .80912 .819793 .838278);--at-scrollbar-thumb-hover:color(display-p3 .60332 .622263 .655172)}}@supports (color:lab(0% 0 0)){:host,:root{--at-surface:lab(99.2988% -.132054 -.745118);--at-surface-hover:lab(96.9735% -.261605 -1.48877);--at-muted:lab(96.2747% -.325292 -1.86008);--at-code:lab(96.736% -.388592 -2.23104);--at-text-primary:lab(11.741% -.349499 -7.30943);--at-text-secondary:lab(37.2801% -.862852 -7.73156);--at-text-muted:lab(58.1854% -1.04666 -6.62941);--at-border:lab(89.5439% -.387847 -2.23061);--at-border-light:lab(94.7667% -.325233 -1.86);--at-shadow:lab(11.6682% -.113927 -10.842/.1);--at-accent:lab(49.8997% 5.63273 -59.1615);--at-error-bg:lab(95.0829% 9.19622 4.96011);--at-error-text:lab(45.8049% 62.9533 44.1);--at-error-border:lab(75.8489% 31.0226 17.1029);--at-ok-bg:lab(95.8936% -11.84 7.56052);--at-ok-text:lab(50.824% -45.5785 30.3918);--at-ok-border:lab(80.6679% -35.8792 23.2774);--at-warn-bg:lab(95.5261% 2.02972 19.535);--at-warn-text:lab(48.6413% 21.7782 63.415);--at-warn-border:lab(80.5062% 5.88706 41.41);--at-highlight-bg:lab(96.7959% -.972748 19.4827);--at-selected-bg:lab(95.2674% -1.71572 -11.035);--at-scrollbar-thumb:lab(83.7382% -.510752 -2.97043);--at-scrollbar-thumb-hover:lab(65.1562% -.902712 -5.53997)}}:host([data-theme=dark]),:root[data-theme=dark]{--at-surface:#151b25;--at-surface-hover:#1d2431;--at-muted:#191f2b;--at-code:#1b222d;--at-text-primary:#dfe5ed;--at-text-secondary:#9ca5b3;--at-text-muted:#727b88;--at-border:#2e3643;--at-border-light:#232934;--at-shadow:#00000073;--at-accent:#63a6ff;--at-error-bg:#742e2940;--at-error-text:#ff7f73;--at-error-border:#cf413a;--at-ok-bg:#39794933;--at-ok-text:#6ed889;--at-ok-border:#2e9e52;--at-warn-bg:#7e5d1d38;--at-warn-text:#f1bf5b;--at-warn-border:#b07b00;--at-highlight-bg:#b8a4571f;--at-selected-bg:#6087c22e;--at-scrollbar-thumb:#3d434d;--at-scrollbar-thumb-hover:#565e6c}@supports (color:color(display-p3 0 0 0)){:host([data-theme=dark]),:root[data-theme=dark]{--at-surface:color(display-p3 .0866362 .104012 .141551);--at-surface-hover:color(display-p3 .119527 .140938 .187194);--at-muted:color(display-p3 .10291 .122282 .164135);--at-code:color(display-p3 .112011 .131618 .173879);--at-text-primary:color(display-p3 .880198 .897517 .925177);--at-text-secondary:color(display-p3 .618009 .647763 .695453);--at-text-muted:color(display-p3 .454817 .481202 .527256);--at-border:color(display-p3 .187231 .209329 .256415);--at-border-light:color(display-p3 .14159 .16023 .200008);--at-shadow:color(display-p3 0 0 0/.45);--at-accent:color(display-p3 .445537 .644287 .978823);--at-error-bg:color(display-p3 .422373 .197971 .171651/.25);--at-error-text:color(display-p3 .938127 .52257 .468553);--at-error-border:color(display-p3 .751519 .297873 .256966);--at-ok-bg:color(display-p3 .287508 .467968 .304198/.2);--at-ok-text:color(display-p3 .538207 .838899 .565385);--at-ok-border:color(display-p3 .319936 .612208 .354223);--at-warn-bg:color(display-p3 .474062 .369044 .161788/.22);--at-warn-text:color(display-p3 .915105 .755059 .421563);--at-warn-border:color(display-p3 .660566 .489104 .15495);--at-highlight-bg:color(display-p3 .708898 .646062 .385093/.12);--at-selected-bg:color(display-p3 .407909 .526271 .742584/.18);--at-scrollbar-thumb:color(display-p3 .241934 .260441 .299404);--at-scrollbar-thumb-hover:color(display-p3 .342885 .367416 .419047)}}@supports (color:lab(0% 0 0)){:host([data-theme=dark]),:root[data-theme=dark]{--at-surface:lab(9.40435% -.26536 -8.00193);--at-surface-hover:lab(14.0233% -.313595 -9.45683);--at-muted:lab(11.7138% -.289485 -8.72938);--at-code:lab(12.8756% -.320837 -8.73908);--at-text-primary:lab(90.6923% -.891328 -4.41389);--at-text-secondary:lab(67.4629% -1.51783 -8.03232);--at-text-muted:lab(51.2096% -1.21292 -8.07107);--at-border:lab(22.1597% -.497714 -9.15806);--at-border-light:lab(16.373% -.418156 -8.05204);--at-shadow:lab(0% 0 0/.45);--at-accent:lab(66.6499% -1.4444 -52.3046);--at-error-bg:lab(29.4384% 31.1218 19.7271/.25);--at-error-text:lab(68.3188% 49.5998 30.86);--at-error-border:lab(49.5145% 56.3761 37.3383);--at-ok-bg:lab(45.5916% -30.0637 19.6786/.2);--at-ok-text:lab(78.7102% -45.0683 29.4705);--at-ok-border:lab(57.7987% -45.4011 30.0617);--at-warn-bg:lab(42.0282% 9.23485 40.2236/.22);--at-warn-text:lab(80.4197% 11.1201 56.0991);--at-warn-border:lab(55.853% 15.6735 62.0226);--at-highlight-bg:lab(67.9375% .259876 42.1122/.12);--at-selected-bg:lab(55.3782% -1.45972 -35.4324/.18);--at-scrollbar-thumb:lab(27.992% -.544697 -7.38333);--at-scrollbar-thumb-hover:lab(39.5702% -.685155 -9.23098)}}@media (prefers-color-scheme:dark){:host([data-theme=system]),:root[data-theme=system]{--at-surface:#151b25;--at-surface-hover:#1d2431;--at-muted:#191f2b;--at-code:#1b222d;--at-text-primary:#dfe5ed;--at-text-secondary:#9ca5b3;--at-text-muted:#727b88;--at-border:#2e3643;--at-border-light:#232934;--at-shadow:#00000073;--at-accent:#63a6ff;--at-error-bg:#742e2940;--at-error-text:#ff7f73;--at-error-border:#cf413a;--at-ok-bg:#39794933;--at-ok-text:#6ed889;--at-ok-border:#2e9e52;--at-highlight-bg:#b8a4571f;--at-selected-bg:#6087c22e;--at-scrollbar-thumb:#3d434d;--at-scrollbar-thumb-hover:#565e6c}@supports (color:color(display-p3 0 0 0)){:host([data-theme=system]),:root[data-theme=system]{--at-surface:color(display-p3 .0866362 .104012 .141551);--at-surface-hover:color(display-p3 .119527 .140938 .187194);--at-muted:color(display-p3 .10291 .122282 .164135);--at-code:color(display-p3 .112011 .131618 .173879);--at-text-primary:color(display-p3 .880198 .897517 .925177);--at-text-secondary:color(display-p3 .618009 .647763 .695453);--at-text-muted:color(display-p3 .454817 .481202 .527256);--at-border:color(display-p3 .187231 .209329 .256415);--at-border-light:color(display-p3 .14159 .16023 .200008);--at-shadow:color(display-p3 0 0 0/.45);--at-accent:color(display-p3 .445537 .644287 .978823);--at-error-bg:color(display-p3 .422373 .197971 .171651/.25);--at-error-text:color(display-p3 .938127 .52257 .468553);--at-error-border:color(display-p3 .751519 .297873 .256966);--at-ok-bg:color(display-p3 .287508 .467968 .304198/.2);--at-ok-text:color(display-p3 .538207 .838899 .565385);--at-ok-border:color(display-p3 .319936 .612208 .354223);--at-highlight-bg:color(display-p3 .708898 .646062 .385093/.12);--at-selected-bg:color(display-p3 .407909 .526271 .742584/.18);--at-scrollbar-thumb:color(display-p3 .241934 .260441 .299404);--at-scrollbar-thumb-hover:color(display-p3 .342885 .367416 .419047)}}@supports (color:lab(0% 0 0)){:host([data-theme=system]),:root[data-theme=system]{--at-surface:lab(9.40435% -.26536 -8.00193);--at-surface-hover:lab(14.0233% -.313595 -9.45683);--at-muted:lab(11.7138% -.289485 -8.72938);--at-code:lab(12.8756% -.320837 -8.73908);--at-text-primary:lab(90.6923% -.891328 -4.41389);--at-text-secondary:lab(67.4629% -1.51783 -8.03232);--at-text-muted:lab(51.2096% -1.21292 -8.07107);--at-border:lab(22.1597% -.497714 -9.15806);--at-border-light:lab(16.373% -.418156 -8.05204);--at-shadow:lab(0% 0 0/.45);--at-accent:lab(66.6499% -1.4444 -52.3046);--at-error-bg:lab(29.4384% 31.1218 19.7271/.25);--at-error-text:lab(68.3188% 49.5998 30.86);--at-error-border:lab(49.5145% 56.3761 37.3383);--at-ok-bg:lab(45.5916% -30.0637 19.6786/.2);--at-ok-text:lab(78.7102% -45.0683 29.4705);--at-ok-border:lab(57.7987% -45.4011 30.0617);--at-highlight-bg:lab(67.9375% .259876 42.1122/.12);--at-selected-bg:lab(55.3782% -1.45972 -35.4324/.18);--at-scrollbar-thumb:lab(27.992% -.544697 -7.38333);--at-scrollbar-thumb-hover:lab(39.5702% -.685155 -9.23098)}}}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--at-scrollbar-thumb,#d4d4d8);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--at-scrollbar-thumb-hover,#a1a1aa)}.waterfall-row:hover .waterfall-bar{filter:brightness(1.1)}.waterfall-bar{transition:all .15s ease-out}.trace-list-container{container-type:inline-size}.trace-grid{grid-template-columns:20px 104px minmax(0,1fr) 84px 52px 88px 60px 16px;align-items:center;gap:.75rem;display:grid}@container (width<=640px){.trace-grid{grid-template-columns:20px 92px minmax(0,1fr) 80px 58px 16px}.trace-col-spans,.trace-col-time{display:none}}@keyframes at-modal-in{0%{opacity:0;transform:translateY(6px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes at-fade-in{0%{opacity:0}to{opacity:1}}.at-modal-in{animation:.17s cubic-bezier(.22,1,.36,1) at-modal-in}.at-backdrop-in{animation:.17s ease-out at-fade-in}.at-wrap-anywhere{overflow-wrap:anywhere;word-break:normal}.at-no-scrollbar{scrollbar-width:none}.at-no-scrollbar::-webkit-scrollbar{display:none}@media (prefers-reduced-motion:reduce){.at-modal-in,.at-backdrop-in{animation:none}}.at-edge-label{paint-order:stroke;stroke:var(--color-surface);stroke-width:3px;stroke-linejoin:round}:where(a,button,[role=button],input,select,textarea,summary,[tabindex]:not([tabindex="-1"])):focus-visible{outline:2px solid var(--at-accent);outline-offset:2px}:where([data-focus-inset]):focus-visible{outline-offset:-2px}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@keyframes spin{to{transform:rotate(360deg)}}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}@keyframes pulse{50%{opacity:.5}}`,RH=class extends HTMLElement{constructor(...e){super(...e),x(this,`cleanup`,null)}connectedCallback(){let e=this.attachShadow({mode:`open`}),t=document.createElement(`link`);t.rel=`stylesheet`,t.href=`https://fonts.googleapis.com/css2?family=Hanken+Grotesk:wght@400;500;600;700&family=JetBrains+Mono:ital,wght@0,400;0,500;0,600;1,400&display=swap`,e.appendChild(t);let n=document.createElement(`style`);n.textContent=LH,e.appendChild(n);let r=this.getAttribute(`mode`)||`widget`,i=this.getAttribute(`ws-url`)||this.deriveWsUrl();this.cleanup=IH(e,{mode:r,wsUrl:i})}disconnectedCallback(){this.cleanup?.(),this.cleanup=null}deriveWsUrl(){return`ws://${location.host}/ws`}};x(RH,`observedAttributes`,[`mode`,`ws-url`]);function zH(){customElements.get(`autotel-devtools`)||customElements.define(`autotel-devtools`,RH)}var BH=document.currentScript;function VH(){let e=$u(location.hash);return Object.keys(e).length>0?e:void 0}function HH(){let e=VH();if(!BH?.src)return{mode:`widget`,wsUrl:`ws://${location.host}/ws`,deepLink:e};let t=new URL(BH.src),n=t.searchParams;return{mode:n.get(`mode`)||`widget`,wsUrl:n.get(`ws`)||`ws://${t.host}/ws`,deepLink:e}}function UH(){if(zH(),document.querySelector(`autotel-devtools`))return;let{mode:e,wsUrl:t,deepLink:n}=HH(),r=document.createElement(`div`);r.id=`autotel-devtools-root`,document.body.appendChild(r);let i=r.attachShadow({mode:`open`}),a=document.createElement(`style`);a.textContent=LH,i.appendChild(a),IH(i,{mode:e,wsUrl:t,deepLink:n})}return document.readyState===`loading`?document.addEventListener(`DOMContentLoaded`,UH):UH(),e.mountWidget=IH,e.registerElement=zH,e})({});
@@ -1,4 +1,4 @@
1
- import { c as decodeOtlpTraceRequest, o as decodeOtlpLogsRequest, s as decodeOtlpMetricsRequest } from "./http-KCnGSZXe.js";
1
+ import { c as decodeOtlpTraceRequest, o as decodeOtlpLogsRequest, s as decodeOtlpMetricsRequest } from "./http-CHt5okyc.js";
2
2
  import { Server, ServerCredentials, status } from "@grpc/grpc-js";
3
3
 
4
4
  //#region src/server/grpc.ts
@@ -1,4 +1,4 @@
1
- const require_http = require('./http-C6eqJu9T.cjs');
1
+ const require_http = require('./http-DD3SVQJp.cjs');
2
2
  let _grpc_grpc_js = require("@grpc/grpc-js");
3
3
 
4
4
  //#region src/server/grpc.ts
@@ -1,7 +1,7 @@
1
1
  import { i as encodeTraces } from "./wire-2Rmfg6IT.js";
2
2
  import { i as asString, n as asBoolean, o as stringAttr, r as asNumber, t as asObject } from "./json-fields-CPjKZ2WH.js";
3
3
  import { t as pickRoot } from "./trace-root-EHnvuA7f.js";
4
- import { a as compileWhere, t as parse } from "./parse-D_RmPPQs.js";
4
+ import { a as compileWhere, t as parse } from "./parse-CCZIhG-D.js";
5
5
  import { t as getResourceName } from "./resource-utils-B4UVvfnH.js";
6
6
  import { createServer } from "node:http";
7
7
  import { WebSocket, WebSocketServer } from "ws";
@@ -3642,7 +3642,7 @@ function attachDevtoolsRoutes(httpServer, devtools, options = {}) {
3642
3642
  if (req.headers.upgrade?.toLowerCase() === "websocket") return;
3643
3643
  res.setHeader("Access-Control-Allow-Origin", "*");
3644
3644
  res.setHeader("Access-Control-Allow-Methods", "GET, POST, DELETE, OPTIONS");
3645
- res.setHeader("Access-Control-Allow-Headers", "Content-Type");
3645
+ res.setHeader("Access-Control-Allow-Headers", req.headers["access-control-request-headers"] ?? "Content-Type");
3646
3646
  res.setHeader("x-autotel-devtools", getVersion());
3647
3647
  res.setHeader("Access-Control-Expose-Headers", "x-autotel-devtools");
3648
3648
  if (req.method === "OPTIONS") {
@@ -28,7 +28,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
28
28
  const require_wire = require('./wire-CHU1PkMo.cjs');
29
29
  const require_json_fields = require('./json-fields-DZFlNqT2.cjs');
30
30
  const require_trace_root = require('./trace-root-BMa667jK.cjs');
31
- const require_parse = require('./parse-BRlosZft.cjs');
31
+ const require_parse = require('./parse-BDF92kdK.cjs');
32
32
  const require_resource_utils = require('./resource-utils-DjHJB6uc.cjs');
33
33
  let node_http = require("node:http");
34
34
  let ws = require("ws");
@@ -3671,7 +3671,7 @@ function attachDevtoolsRoutes(httpServer, devtools, options = {}) {
3671
3671
  if (req.headers.upgrade?.toLowerCase() === "websocket") return;
3672
3672
  res.setHeader("Access-Control-Allow-Origin", "*");
3673
3673
  res.setHeader("Access-Control-Allow-Methods", "GET, POST, DELETE, OPTIONS");
3674
- res.setHeader("Access-Control-Allow-Headers", "Content-Type");
3674
+ res.setHeader("Access-Control-Allow-Headers", req.headers["access-control-request-headers"] ?? "Content-Type");
3675
3675
  res.setHeader("x-autotel-devtools", getVersion());
3676
3676
  res.setHeader("Access-Control-Expose-Headers", "x-autotel-devtools");
3677
3677
  if (req.method === "OPTIONS") {
package/dist/index.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
- const require_http = require('./http-C6eqJu9T.cjs');
2
+ const require_http = require('./http-DD3SVQJp.cjs');
3
3
  const require_listen = require('./listen-l09RRHht.cjs');
4
4
  const require_server_exporter = require('./server/exporter.cjs');
5
5
  const require_server_log_exporter = require('./server/log-exporter.cjs');
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { C as ErrorAggregator, g as hostHeaderIsLoopback, l as DevtoolsServer, r as resolveSourceRoot, t as attachDevtoolsRoutes } from "./http-KCnGSZXe.js";
1
+ import { C as ErrorAggregator, g as hostHeaderIsLoopback, l as DevtoolsServer, r as resolveSourceRoot, t as attachDevtoolsRoutes } from "./http-CHt5okyc.js";
2
2
  import { t as listenLoopbackDualStack } from "./listen-D-lLgfro.js";
3
3
  import { DevtoolsSpanExporter } from "./server/exporter.js";
4
4
  import { DevtoolsLogExporter } from "./server/log-exporter.js";
@@ -24,6 +24,11 @@ function emit(node, schema, params) {
24
24
  params.push(pattern);
25
25
  return `${targetSql(field, schema, params, { pathAlreadyPushed: false })} LIKE ? ESCAPE '${LIKE_ESCAPE}'`;
26
26
  });
27
+ const index = schema.attributeIndex;
28
+ if (index) {
29
+ params.push(index.signal, pattern, pattern);
30
+ clauses.push(`${index.entitySql} IN (SELECT entity_id FROM ${quoteIdent(index.table)} WHERE signal = ? AND (value_json LIKE ? ESCAPE '${LIKE_ESCAPE}' OR (json_valid(value_json) AND EXISTS (SELECT 1 FROM json_tree(value_json) jt WHERE jt.value LIKE ? ESCAPE '${LIKE_ESCAPE}'))))`);
31
+ }
27
32
  if (clauses.length === 0) return "1";
28
33
  if (clauses.length === 1) return clauses[0];
29
34
  return `(${clauses.join(" OR ")})`;
@@ -23,6 +23,11 @@ function emit(node, schema, params) {
23
23
  params.push(pattern);
24
24
  return `${targetSql(field, schema, params, { pathAlreadyPushed: false })} LIKE ? ESCAPE '${LIKE_ESCAPE}'`;
25
25
  });
26
+ const index = schema.attributeIndex;
27
+ if (index) {
28
+ params.push(index.signal, pattern, pattern);
29
+ clauses.push(`${index.entitySql} IN (SELECT entity_id FROM ${quoteIdent(index.table)} WHERE signal = ? AND (value_json LIKE ? ESCAPE '${LIKE_ESCAPE}' OR (json_valid(value_json) AND EXISTS (SELECT 1 FROM json_tree(value_json) jt WHERE jt.value LIKE ? ESCAPE '${LIKE_ESCAPE}'))))`);
30
+ }
26
31
  if (clauses.length === 0) return "1";
27
32
  if (clauses.length === 1) return clauses[0];
28
33
  return `(${clauses.join(" OR ")})`;
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
- const require_parse = require('../parse-BRlosZft.cjs');
2
+ const require_parse = require('../parse-BDF92kdK.cjs');
3
3
 
4
4
  exports.OPERATORS = require_parse.OPERATORS;
5
5
  exports.SIGIL_ALIASES = require_parse.SIGIL_ALIASES;
@@ -1,3 +1,3 @@
1
- import { a as compileWhere, i as SIGIL_ALIASES, n as tokenize, r as OPERATORS, t as parse } from "../parse-D_RmPPQs.js";
1
+ import { a as compileWhere, i as SIGIL_ALIASES, n as tokenize, r as OPERATORS, t as parse } from "../parse-CCZIhG-D.js";
2
2
 
3
3
  export { OPERATORS, SIGIL_ALIASES, compileWhere, parse, tokenize };
@@ -1,9 +1,9 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
- const require_http = require('../http-C6eqJu9T.cjs');
2
+ const require_http = require('../http-DD3SVQJp.cjs');
3
3
  const require_server_exporter = require('./exporter.cjs');
4
4
  const require_server_log_exporter = require('./log-exporter.cjs');
5
5
  const require_server_remote_exporter = require('./remote-exporter.cjs');
6
- const require_grpc = require('../grpc-D-PgIW-i.cjs');
6
+ const require_grpc = require('../grpc-DB8OLUPR.cjs');
7
7
 
8
8
  exports.DEVTOOLS_IDENTITY = require_http.DEVTOOLS_IDENTITY;
9
9
  exports.DevtoolsLogExporter = require_server_log_exporter.DevtoolsLogExporter;
@@ -1,7 +1,7 @@
1
- import { C as ErrorAggregator, S as resolveTelemetryLimits, _ as isLoopbackHostname, a as probePortHolder, b as appendWithLimit, c as decodeOtlpTraceRequest, d as parseOtlpLogs, f as parseOtlpTraces, g as hostHeaderIsLoopback, h as allowSensitiveRequest, i as DEVTOOLS_IDENTITY, l as DevtoolsServer, m as SPAN_SCHEMA, n as createDevtoolsHttpServer, o as decodeOtlpLogsRequest, p as DevtoolsStore, s as decodeOtlpMetricsRequest, t as attachDevtoolsRoutes, u as isProtobufContentType, v as originIsLoopback, x as applyTelemetryLimits, y as appendManyWithLimit } from "../http-KCnGSZXe.js";
1
+ import { C as ErrorAggregator, S as resolveTelemetryLimits, _ as isLoopbackHostname, a as probePortHolder, b as appendWithLimit, c as decodeOtlpTraceRequest, d as parseOtlpLogs, f as parseOtlpTraces, g as hostHeaderIsLoopback, h as allowSensitiveRequest, i as DEVTOOLS_IDENTITY, l as DevtoolsServer, m as SPAN_SCHEMA, n as createDevtoolsHttpServer, o as decodeOtlpLogsRequest, p as DevtoolsStore, s as decodeOtlpMetricsRequest, t as attachDevtoolsRoutes, u as isProtobufContentType, v as originIsLoopback, x as applyTelemetryLimits, y as appendManyWithLimit } from "../http-CHt5okyc.js";
2
2
  import { DevtoolsSpanExporter } from "./exporter.js";
3
3
  import { DevtoolsLogExporter } from "./log-exporter.js";
4
4
  import { DevtoolsRemoteExporter } from "./remote-exporter.js";
5
- import { t as startOtlpGrpcReceiver } from "../grpc-CejDNrpg.js";
5
+ import { t as startOtlpGrpcReceiver } from "../grpc-BhGs5AGf.js";
6
6
 
7
7
  export { DEVTOOLS_IDENTITY, DevtoolsLogExporter, DevtoolsRemoteExporter, DevtoolsServer, DevtoolsSpanExporter, DevtoolsStore, ErrorAggregator, SPAN_SCHEMA, allowSensitiveRequest, appendManyWithLimit, appendWithLimit, applyTelemetryLimits, attachDevtoolsRoutes, createDevtoolsHttpServer, decodeOtlpLogsRequest, decodeOtlpMetricsRequest, decodeOtlpTraceRequest, hostHeaderIsLoopback, isLoopbackHostname, isProtobufContentType, originIsLoopback, parseOtlpLogs, parseOtlpTraces, probePortHolder, resolveTelemetryLimits, startOtlpGrpcReceiver };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "autotel-devtools",
3
- "version": "27.2.1",
3
+ "version": "28.0.0",
4
4
  "description": "Standalone OTLP receiver with web UI for local development",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -109,7 +109,7 @@
109
109
  "webmcpable": "^0.5.0"
110
110
  },
111
111
  "peerDependencies": {
112
- "autotel": "7.6.2"
112
+ "autotel": "7.7.0"
113
113
  },
114
114
  "peerDependenciesMeta": {
115
115
  "autotel": {