Lines 1-20javascript
1var AutotelDevtools=(function(Nt){"use strict";var Nk=Object.defineProperty;var Du=Nt=>{throw TypeError(Nt)};var Ak=(Nt,Rt,qt)=>Rt in Nt?Nk(Nt,Rt,{enumerable:!0,configurable:!0,writable:!0,value:qt}):Nt[Rt]=qt;var Ft=(Nt,Rt,qt)=>Ak(Nt,typeof Rt!="symbol"?Rt+"":Rt,qt),ul=(Nt,Rt,qt)=>Rt.has(Nt)||Du("Cannot "+qt);var W=(Nt,Rt,qt)=>(ul(Nt,Rt,"read from private field"),qt?qt.call(Nt):Rt.get(Nt)),lt=(Nt,Rt,qt)=>Rt.has(Nt)?Du("Cannot add the same private member more than once"):Rt instanceof WeakSet?Rt.add(Nt):Rt.set(Nt,qt),ct=(Nt,Rt,qt,$a)=>(ul(Nt,Rt,"write to private field"),$a?$a.call(Nt,qt):Rt.se ...
2\r\f \v\uFEFF`];function $f(e,t,n){var o=e==null?"":""+e;if(n){for(var a of Object.keys(n))if(n[a])o=o?o+" "+a:a;else if(o.length)for(var s=a.length,l=0;(l=o.indexOf(a,l))>=0;){var c=l+s;(l===0||xc.includes(o[l-1]))&&(c===o.length||xc.includes(o[c]))?o=(l===0?"":o.substring(0,l))+o.substring(c+1):l=c}}return o===""?null:o}function _c(e,t=!1){var n=t?" !important;":";",o="";for(var a of Object.keys(e)){var s=e[a];s!=null&&s!==""&&(o+=" "+a+": "+s+n)}return o}function Zs(e){return e[0]!=="-"||e[1]!=="-"?e.toLowerCase():e}function If(e,t){if(t){var n="",o,a;if(Array.isArray(t)?(o=t[0],a=t[1]):o=t ...
3 ${t.span.scope.version?`@${t.span.scope.version}`:""}`)),x(ge,Ye)};E(R,ge=>{t.span.scope?.name&&ge(K)})}var re=d(
4 ${r(l)===1?"match":"matches"}`)),x(ot,pt)},He=_(()=>r(s).trim());E(Ae,ot=>{r(He)&&ot(Le)})}x(Z,ie)};E(je,Z=>{r(n)==="waterfall"&&Z(de)})}var ye=d(je,2),dt=i(ye),tt=i(dt);{var ke=Z=>{{let ie=_(()=>r(o)?.spanId);fb(Z,{get trace(){return t.trace},onSpanSelect:a,get selectedSpanId(){return r(ie)},get query(){return r(s)},onMatchCount:$e=>Y(l,$e,!0)})}},we=Z=>{{let ie=_(()=>r(o)?.spanId);Eb(Z,{get trace(){return t.trace},onSpanSelect:a,get selectedSpanId(){return r(ie)}})}},Ve=Z=>{var ie=f1(),$e=i(ie);Ue($e,21,()=>t.trace.spans,Ae=>Ae.spanId,(Ae,Le)=>{{let He=_(()=>r(o)?.spanId===r(Le).sp ...
5 cost, tool, MCP, sub-agent & skill usage will appear here.</p></div> <div class="flex items-center gap-2 bg-subtle border border-line rounded-md px-3 py-2 font-mono text-xs text-fg"><!> <span></span> <!></div> <p class="text-[11px] text-fg-muted/80 max-w-md">Uses OTLP <span class="font-mono">http/protobuf</span> to <span class="font-mono">:4318</span> — not the gRPC setup from most
6 guides, which this receiver doesn't speak.</p></div>`),R1=y('<span class="flex items-center gap-1 px-2 py-1 bg-subtle rounded-md text-red-600"><!> </span>'),L1=y('<span class="px-2 py-1 bg-subtle rounded-md text-fg-muted font-mono"> </span>'),O1=y('<button><div class="flex items-center justify-between gap-2"><span class="font-mono text-xs text-fg truncate"> </span> <span class="text-[11px] text-fg-muted"> </span></div> <div class="flex items-center gap-2 mt-1 text-[11px] text-fg-muted"><span> </span> <span>·</span> <span> </span> <span>·</span> <span> </span></div></button>'),P1=y('<sp ...
7`)]),x(ce,te)};E(H,ce=>{t.span.warnings&&t.span.warnings.length>0&&ce(G)})}var V=d(H,2);{var C=ce=>{var te=s_(),Q=i(te),oe=i(Q),ae=d(Q,2);ar(ae,{get value(){return r(m)},label:"Copy model name",class:"opacity-0 group-hover:opacity-100 focus-visible:opacity-100 transition-opacity"}),N(()=>T(oe,r(m))),x(ce,te)};E(V,ce=>{r(m)!=="unknown"&&ce(C)})}var L=d(V,2),F=i(L),P=d(L,2),U=i(P);{var A=ce=>{var te=i_(),Q=i(te);N(oe=>T(Q,`trace ${oe??""}…`),[()=>t.span.traceId.slice(0,8)]),ee("click",te,function(...oe){t.onOpenTrace?.apply(this,oe)}),x(ce,te)},J=ce=>{var te=l_(),Q=i(te);N(oe=>{X(te,"title",t.sp ...
8 transcripts.</p></div>`),L_=y('<div class="p-4 text-sm text-fg-subtle italic">No conversation payload on this span. Enable content capture (<code class="text-xs">OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT=true</code>) in your instrumentation to see prompts and completions.</div>'),O_=y('<div class="p-3 space-y-2"></div>');function P_(e,t){ut(t,!0);const n=(v
10`)}const a={system:{wrap:"bg-subtle border-line",chip:"bg-hover text-fg-muted",label:"system",icon:em},user:{wrap:"bg-blue-500/10 border-blue-500/30",chip:"bg-blue-500/15 text-blue-600",label:"user",icon:wm},assistant:{wrap:"bg-emerald-500/10 border-emerald-500/30",chip:"bg-emerald-500/15 text-emerald-600",label:"assistant",icon:gr},tool:{wrap:"bg-amber-500/10 border-amber-500/30",chip:"bg-amber-500/15 text-amber-600",label:"tool",icon:Xn}};var s=It(),l=Ke(s);{var c=v=>{var f=It(),p=Ke(f);{var g=h=>{y_(h,()=>t.span)},b=h=>{k_(h,()=>t.span)},m=h=>{var w=L_();x(h,w)};E(p,h=>{t.span.operation===" ...
11 attributes (any of <code class="text-xs">gen_ai.system</code>, <code class="text-xs">gen_ai.provider.name</code>, or <code class="text-xs">gen_ai.operation.name</code>). Works with Vercel AI
12 SDK <code class="text-xs">experimental_telemetry</code>, Pydantic AI +
13 Logfire, OpenAI Agents v2, Anthropic, Google GenAI, LangChain, OpenLLMetry
14 — anything following the spec.</p></div>`),S2=y('<div class="flex flex-col h-full"><!> <div class="flex-1 overflow-hidden"><!></div></div>'),T2=y(`<div class="p-6 text-sm text-fg-subtle">Select a span (in List) to trace its run, or wait for a multi-span run
15 to arrive.</div>`),M2=y('<div class="flex flex-col h-full"><!> <!> <div class="flex-1 overflow-hidden"><!></div></div>'),$2=y('<div class="flex items-center justify-between px-3 pt-2"><button type="button" class="@md:hidden inline-flex items-center gap-1 px-1.5 py-0.5 rounded text-[11px] text-fg-subtle hover:text-fg hover:bg-hover transition-colors"><!> Back</button> <button type="button" class="ml-auto inline-flex items-center gap-1 px-1.5 py-0.5 rounded text-[11px] text-fg-subtle hover:text-fg hover:bg-hover transition-colors" title="Open this span in the Traces waterfall"><!> Open ...
16 AI tool calls and plain functions, with repeated calls collapsed into one
17 node (e.g. <code class="text-xs">calculate (5)</code>). Send a trace to
18 devtools and it appears here.</p></div>`),G2=y("<option> </option>"),H2=y('<select class="text-xs bg-surface border border-line rounded px-2 py-1 text-fg max-w-[16rem]"></select>'),K2=y('<div class="flex items-center gap-1.5 text-xs font-medium text-fg-muted"><!> </div>'),Y2=y("<span> </span>"),J2=y('<div class="flex items-center gap-1.5 px-2 py-0.5 rounded-full bg-accent/10 border border-accent/30 text-[11px] font-medium text-accent" title="Total LLM tokens and cost for this trace"><!> <!> <span class="font-mono text-accent/80"> </span></div>'),X2=y('<span class="text-[10px] text-fg-mut ...
19 ${r(f).count===1?"call":"calls"}`)},[()=>he(pe("inline-block w-2 h-2 rounded-sm",r(Q).dot))]),x(te,oe)};E(Je,te=>{r(f)&&te(ce)})}
Long lines were clipped for display.