edgeone 1.6.3 → 1.6.4-beta.1

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.
@@ -13,25 +13,16 @@ from typing import Any, Callable
13
13
  from urllib.parse import parse_qs
14
14
  import httpx
15
15
 
16
- # --- Observability bootstrap (deferred for fast cold start) ---
17
- # Moved to _ensure_observability() called by background preload thread
18
- # or lazily on first request. This avoids blocking startup with OTel imports.
19
- _obs_initialized = False
20
-
21
-
22
- def _ensure_observability():
23
- """Initialize observability (idempotent). Called by preload thread or first request."""
24
- global _obs_initialized
25
- if _obs_initialized:
26
- return
27
- _obs_initialized = True
28
- _obs_entries_raw = os.environ.get("AGENT_OBSERVABILITY_ENTRIES", "")
29
- if _obs_entries_raw:
30
- try:
31
- from _platform._observability import setup as _obs_setup
32
- _obs_setup(json.loads(_obs_entries_raw))
33
- except Exception as _obs_err:
34
- print(f"[observability] setup failed: {_obs_err}", file=sys.stderr, flush=True)
16
+ # --- Observability bootstrap (must run before user code imports) ---
17
+ # Reads entry names from AGENT_OBSERVABILITY_ENTRIES env var (set by main.py
18
+ # or the dev runner). Idempotent safe to call multiple times.
19
+ _obs_entries_raw = os.environ.get("AGENT_OBSERVABILITY_ENTRIES", "")
20
+ if _obs_entries_raw:
21
+ try:
22
+ from _platform._observability import setup as _obs_setup
23
+ _obs_setup(json.loads(_obs_entries_raw))
24
+ except Exception as _obs_err:
25
+ print(f"[observability] setup failed: {_obs_err}", file=sys.stderr, flush=True)
35
26
 
36
27
  from .store import InMemoryStore, BlobBackedStore
37
28
  from .runtime import AgentRuntime, RouteEntry
@@ -464,58 +455,22 @@ _registry: dict[str, RouteEntry] = {}
464
455
  # 加载失败的路由:route_path → 失败原因。404 响应时回显,避免静默 404 难以排查。
465
456
  _failed_routes: dict[str, str] = {}
466
457
 
467
-
468
- # --- Lazy route loading for fast cold start ---
469
- # Routes are NOT imported at startup. Instead, each route module is loaded
470
- # on first access (or by the background preload thread). This avoids blocking
471
- # the health check with heavy imports (langchain, langgraph, pydantic, etc.).
472
-
473
- class _LazyRouteEntry:
474
- """Lazy-loading wrapper for RouteEntry. Defers importlib.import_module() to first access."""
475
-
476
- __slots__ = ('_module_path', '_is_index', '_handler', '_loaded', '_load_error')
477
-
478
- def __init__(self, module_path: str, is_index: bool):
479
- self._module_path = module_path
480
- self._is_index = is_index
481
- self._handler = None
482
- self._loaded = False
483
- self._load_error: str | None = None
484
-
485
- @property
486
- def handler(self):
487
- if not self._loaded:
488
- self._do_load()
489
- if self._load_error:
490
- raise ImportError(self._load_error)
491
- return self._handler
492
-
493
- @property
494
- def is_index(self):
495
- return self._is_index
496
-
497
- @property
498
- def module_path(self):
499
- return self._module_path
500
-
501
- def _do_load(self):
502
- """Actually import the module and resolve the handler."""
503
- try:
504
- mod = importlib.import_module(self._module_path)
505
- handler = getattr(mod, "handler", None)
506
- if handler is None:
507
- self._load_error = f"module '{self._module_path}' has no 'handler' function"
508
- else:
509
- self._handler = handler
510
- except Exception as e:
511
- self._load_error = f"failed to import '{self._module_path}': {e}"
512
- self._loaded = True
513
-
514
-
515
458
  for route_path, info in _route_table_raw.items():
516
459
  module_path = info["module"]
517
460
  is_index = info.get("isIndex", False)
518
- _registry[route_path] = _LazyRouteEntry(module_path, is_index)
461
+ try:
462
+ mod = importlib.import_module(module_path)
463
+ handler = getattr(mod, "handler", None)
464
+ if handler is None:
465
+ reason = f"module '{module_path}' has no 'handler' function"
466
+ print(f"[agent-python] WARNING: {reason}, skipping", file=sys.stderr, flush=True)
467
+ _failed_routes[route_path] = reason
468
+ continue
469
+ _registry[route_path] = RouteEntry(handler=handler, is_index=is_index, module_path=module_path)
470
+ except Exception as e:
471
+ reason = f"failed to import '{module_path}': {e}"
472
+ print(f"[agent-python] ERROR loading {module_path}: {e}", file=sys.stderr, flush=True)
473
+ _failed_routes[route_path] = reason
519
474
 
520
475
  _runtime = AgentRuntime(
521
476
  registry=_registry,
@@ -525,46 +480,13 @@ _runtime = AgentRuntime(
525
480
  failed_routes=_failed_routes,
526
481
  )
527
482
 
528
- print(f"[agent-python] Registered {len(_registry)} routes (lazy), timeout={_timeout}s", file=sys.stderr, flush=True)
529
-
530
-
531
- # --- Background preload thread ---
532
- # After uvicorn binds the port and health check passes, this thread
533
- # pre-imports all route modules in the background. If a request arrives
534
- # before preload completes, the lazy handler property will block and
535
- # import synchronously (no failure, just slower first request).
536
-
537
- import threading
538
-
539
-
540
- def _background_preload():
541
- """Preload routes + observability in background after startup."""
542
- import time
543
- time.sleep(0.05) # yield to let uvicorn finish port binding
544
-
545
- # 1. Initialize observability first (lighter, needed for spans)
546
- _ensure_observability()
547
-
548
- # 2. Trigger lazy loading for all routes
549
- for route_path, entry in _registry.items():
550
- try:
551
- _ = entry.handler
552
- except Exception as e:
553
- _failed_routes[route_path] = str(e)
554
- print(f"[agent-python] ERROR loading {entry.module_path}: {e}", file=sys.stderr, flush=True)
555
-
556
- loaded_count = sum(1 for e in _registry.values() if e._loaded and e._load_error is None)
557
- if _failed_routes:
558
- print(
559
- f"[agent-python] Preload done: {loaded_count}/{len(_registry)} routes loaded, "
560
- f"{len(_failed_routes)} failed: {', '.join(_failed_routes.keys())}",
561
- file=sys.stderr, flush=True,
562
- )
563
- else:
564
- print(f"[agent-python] Preload done: {loaded_count}/{len(_registry)} routes loaded", file=sys.stderr, flush=True)
565
-
566
-
567
- threading.Thread(target=_background_preload, daemon=True, name="agent-preload").start()
483
+ print(f"[agent-python] Loaded {len(_registry)} routes, timeout={_timeout}s", file=sys.stderr, flush=True)
484
+ if _failed_routes:
485
+ print(
486
+ f"[agent-python] WARNING: {len(_failed_routes)} route(s) failed to load: "
487
+ f"{', '.join(_failed_routes.keys())}",
488
+ file=sys.stderr, flush=True,
489
+ )
568
490
 
569
491
 
570
492
  # --- ASGI app ---
@@ -589,11 +511,6 @@ async def app(scope: dict, receive, send) -> None:
589
511
  if scope["type"] != "http":
590
512
  return
591
513
 
592
- # Ensure observability is initialized before processing requests.
593
- # Usually already done by background preload, but if a request arrives
594
- # before preload completes, this ensures instrumentation is active.
595
- _ensure_observability()
596
-
597
514
  # Read body
598
515
  body_parts = []
599
516
  while True:
@@ -0,0 +1,4 @@
1
+ import{r as at}from"./react-hnpCyKql.js";import{r as nt,a as rt,l as lt,b as ut}from"./tea-Slf_ajmf.js";import{r as st}from"./moment-BYRO94Ou.js";import{c as ot,j as it}from"./highlight-ClXAL37H.js";var h=at,v=rt,i=nt,$e=lt,Be=ut,ct=st,dt=ot,mt=it;function ce(e){return e&&e.__esModule?e:{default:e}}var a=ce(h),q=ce(ct),Ke=ce(dt),ft=ce(mt);function G(e){return String(e).padStart(2,"0")}function xe(e){const t=new Date(e);return`${G(t.getMonth()+1)}-${G(t.getDate())} ${G(t.getHours())}:${G(t.getMinutes())}:${G(t.getSeconds())}`}function Ve(e){const t=typeof e=="number"?e:Number(String(e).trim());return Number.isFinite(t)?t>=1e12?xe(t):t>=1e9?xe(t*1e3):String(e):String(e)}function gt({dataSource:e,color:t="#5B9DFF",...n}){const r=e.map(u=>Ve(u.Name)),l=[{data:e.map(u=>u.Data)}];return a.default.createElement(Be.CoreLine,{...n,color:[t],grid:{show:!0,left:0,right:0,top:16,bottom:0},xAxis:{data:r,axisLine:{show:!1,lineStyle:{}},axisTick:{show:!1},axisLabel:{color:"#9CA3AF",margin:10},splitLine:{show:!1}},yAxis:{axisLine:{show:!1,lineStyle:{}},axisTick:{show:!1},axisLabel:{color:"#9CA3AF",formatter:u=>`${u} `},splitLine:{show:!0}},series:l})}function ht({dataSource:e,color:t,...n}){const r=Array.from(new Set(e.map(o=>Ve(o.Name)))),u=Array.from(new Set(e.map(o=>o.Type))).map(o=>({name:o,data:e.filter(s=>s.Type===o).map(s=>s.Data)}));return a.default.createElement(Be.CompareLine,{...n,color:t,grid:{show:!0,left:0,right:0,top:16,bottom:0},xAxis:{data:r,axisLine:{show:!1,lineStyle:{}},axisTick:{show:!1},axisLabel:{color:"#9CA3AF",margin:10},splitLine:{show:!1}},yAxis:{axisLine:{show:!1,lineStyle:{}},axisTick:{show:!1},axisLabel:{color:"#9CA3AF",formatter:o=>`${o} `},splitLine:{show:!0}},series:u})}function Pe({children:e,loading:t}){return a.default.createElement("div",{className:"agent-obs-loading"},a.default.createElement("div",{className:"agent-obs-loading-content"},e),a.default.createElement("div",{className:`agent-obs-loading-mask${t?"":" agent-obs-loading-mask--hidden"}`},a.default.createElement(v.Icon,{type:"loading"})))}function pt(){return a.default.createElement("svg",{width:"550",height:"181",viewBox:"0 0 550 181",fill:"none",xmlns:"http://www.w3.org/2000/svg"},a.default.createElement("line",{y1:"90.5",x2:"550",y2:"90.5",stroke:"#F0F0F0"}),a.default.createElement("line",{y1:"180.5",x2:"550",y2:"180.5",stroke:"#F0F0F0"}),a.default.createElement("line",{y1:"0.5",x2:"550",y2:"0.5",stroke:"#F0F0F0"}))}function Et(){return a.default.createElement("div",{className:"agent-obs-empty"},a.default.createElement("div",{className:"agent-obs-empty-bg"},a.default.createElement(pt,null)),a.default.createElement("div",{className:"agent-obs-empty-text"},i.t("暂无数据")))}var Le=260;function vt({title:e,unit:t,data:n,jumpTo:r,loading:l,isMultiLine:u,openInNewTab:o}){const s=!l&&(!n||n.length===0),c=a.default.createElement("div",{className:"agent-obs-card-header"},a.default.createElement("div",{className:"agent-obs-card-titlebox"},a.default.createElement("div",{className:"agent-obs-card-title"},e),t&&a.default.createElement("div",{className:"agent-obs-card-unit"},t)),r&&a.default.createElement("div",{className:"agent-obs-card-jump"},a.default.createElement($e.ChevronRightIcon,{size:24}))),m=r?a.default.createElement("a",{className:"agent-obs-card-link",href:r,target:o?"_blank":void 0,rel:o?"noopener noreferrer":void 0},c):c,d=()=>{if(!n||n.length===0)return a.default.createElement("div",{className:"agent-obs-card-empty",style:{height:Le}},s?a.default.createElement(Et,null):null);const f=u?ht:gt;return a.default.createElement(f,{height:Le,smooth:!0,size:2,dataSource:n})};return a.default.createElement(v.Card,{className:"agent-obs-card",bordered:!1},a.default.createElement(v.Card.Body,{className:"agent-obs-card-body"},m,a.default.createElement("div",{className:"agent-obs-card-chart"},a.default.createElement(Pe,{loading:l},d()))))}var je={agent_call:"Agent 调用",agent_call_chart:"Agent 调用",agent_success_rate:"Agent 成功率",agent_success_rate_chart:"Agent 成功率",llm_call:"LLM 调用",llm_call_chart:"LLM 调用",llm_avg_latency:"LLM 调用平均耗时",llm_avg_latency_chart:"LLM 调用平均耗时",token_total:"Token 总消耗",token_total_chart:"Token 总消耗",avg_token_per_llm:"平均 Token/LLM 调用",avg_token_per_llm_chart:"平均 Token/LLM 调用"},Fe={agent_call:"次",agent_call_chart:"次",agent_success_rate:"%",agent_success_rate_chart:"%",llm_call:"次",llm_call_chart:"次",llm_avg_latency:"s",llm_avg_latency_chart:"s"};function _e(e){if(e)return i.t(e)}function qe(e,t){return _e(je[e]||t)||e}function ye(e,t){return e in je?_e(Fe[e]):_e(Fe[e]||t)}function bt(e,t){if(e===0)return"flat";const n=e>0;return((t??"higherIsBetter")==="higherIsBetter"?n:!n)?"up":"down"}function X(e){const t=typeof e=="number"?e:Number(e.trim());if(!Number.isFinite(t))return String(e);const n=t.toFixed(2).replace(/\.00$/,"").replace(/(\.\d)0$/,"$1");return n==="-0"?"0":n}var kt=new Set(["token_total","avg_token_per_llm"]);function _t(e){const t=typeof e.Value=="number"?e.Value:Number(e.Value.trim());return Number.isFinite(t)&&t===0?{valueText:"-"}:!kt.has(e.Key)||!Number.isFinite(t)?{valueText:X(e.Value),unit:ye(e.Key,e.Unit)}:t>=1e8?{valueText:X(t/1e8),unit:i.t("亿")}:t>=1e4?{valueText:X(t/1e4),unit:i.t("万")}:{valueText:X(e.Value),unit:ye(e.Key,e.Unit)}}function yt(){return[{Key:"agent_call",Label:i.t("Agent 调用"),Value:"-"},{Key:"agent_success_rate",Label:i.t("Agent 成功率"),Value:"-",Unit:"%"},{Key:"llm_call",Label:i.t("LLM 调用"),Value:"-"},{Key:"llm_avg_latency",Label:i.t("LLM 调用平均耗时"),Value:"-",Unit:"s"},{Key:"token_total",Label:i.t("Token 总消耗"),Value:"-"},{Key:"avg_token_per_llm",Label:i.t("平均 Token/LLM 调用"),Value:"-"}]}var Ct=new Set(["agent_success_rate","llm_avg_latency"]);function Nt({item:e}){const t=typeof e.Yoy=="number"&&!Ct.has(e.Key),{valueText:n,unit:r}=_t(e);return a.default.createElement("div",{className:"agent-obs-overview-cell"},a.default.createElement("div",{className:"agent-obs-overview-label"},qe(e.Key,e.Label)),a.default.createElement("div",{className:"agent-obs-overview-value-row"},a.default.createElement("span",{className:"agent-obs-overview-value"},n),r&&a.default.createElement("span",{className:"agent-obs-overview-unit"},r)),t&&a.default.createElement("div",{className:"agent-obs-overview-delta"},a.default.createElement("span",{className:"agent-obs-overview-delta-label"},i.t("日同比")),a.default.createElement("span",{className:`agent-obs-overview-delta-value agent-obs-overview-delta-value--${bt(e.Yoy,e.DeltaSemantic)}`},e.Yoy>0?"+":"",X(e.Yoy),"%")))}function wt({items:e,title:t,loading:n}){const l=!!e&&e.length>0?e:n?yt():[];if(l.length===0)return null;const u=!!n;return a.default.createElement(v.Card,{className:"agent-obs-overview",bordered:!1},a.default.createElement(v.Card.Body,null,a.default.createElement("div",{className:"agent-obs-overview-title"},t?i.t(t):i.t("用量概览")),a.default.createElement("div",{className:u?"agent-obs-overview-grid agent-obs-overview-grid--loading":"agent-obs-overview-grid"},l.map(o=>a.default.createElement(Nt,{key:o.Key,item:o})),u&&a.default.createElement("div",{className:"agent-obs-overview-loading-mask"},a.default.createElement(v.Icon,{type:"loading"})))))}function ze(e){const[t,n]=h.useState(!1),r=h.useCallback(()=>{t||(n(!0),e().catch(()=>{}).then(()=>n(!1)))},[t,e]);return{refreshing:t,trigger:r}}var de=7;function xt(){return[{value:"1hour",text:i.t("近1小时")},{value:"6hour",text:i.t("近6小时")},{value:"24hour",text:i.t("近24小时")},{value:"3day",text:i.t("近3天")},{value:"7day",text:i.t("近7天")}]}function Lt(){return[{value:"30min",text:i.t("近30分钟")},{value:"1hour",text:i.t("近1小时")},{value:"6hour",text:i.t("近6小时")},{value:"24hour",text:i.t("近24小时")},{value:"3day",text:i.t("近3天")},{value:"7day",text:i.t("近7天")}]}function Ft(e){const t=q.default();return{"1hour":[t.clone().subtract(1,"hour"),t.clone()],"6hour":[t.clone().subtract(6,"hours"),t.clone()],"24hour":[t.clone().subtract(24,"hours"),t.clone()],"3day":[t.clone().subtract(3,"days"),t.clone()],"7day":[t.clone().subtract(de,"days"),t.clone()]}[e]||null}function Mt(e){const t=q.default();return{"30min":[t.clone().subtract(30,"minutes"),t.clone()],"1hour":[t.clone().subtract(1,"hour"),t.clone()],"6hour":[t.clone().subtract(6,"hours"),t.clone()],"24hour":[t.clone().subtract(24,"hours"),t.clone()],"3day":[t.clone().subtract(3,"days"),t.clone()],"7day":[t.clone().subtract(de,"days"),t.clone()]}[e]||null}function Ue(e){const t=q.default(),n=t.clone().subtract(de,"days").startOf("day");return!(e.isAfter(t,"day")||e.isBefore(n,"day"))}function Ye(e,t){const n=q.default(),r=n.clone().subtract(de,"days"),l=n.format("YYYY-MM-DD"),u=r.format("YYYY-MM-DD"),o=e==null?void 0:e[t==="start"?0:1],s=o?o.format("YYYY-MM-DD"):l;return{disabledHours:()=>{const c=[];if(s===l)for(let m=n.hour()+1;m<=23;m++)c.push(m);if(s===u)for(let m=0;m<r.hour();m++)c.push(m);return c},disabledMinutes:c=>{const m=[];if(s===l&&c===n.hour())for(let d=n.minute()+1;d<=59;d++)m.push(d);if(s===u&&c===r.hour())for(let d=0;d<r.minute();d++)m.push(d);return m},disabledSeconds:(c,m)=>{const d=[];if(s===l&&c===n.hour()&&m===n.minute())for(let f=n.second()+1;f<=59;f++)d.push(f);if(s===u&&c===r.hour()&&m===r.minute())for(let f=0;f<r.second();f++)d.push(f);return d}}}var{RangePicker:Tt}=v.DatePicker,At=()=>e=>{const t=q.default();return{"15min":[t.clone().subtract(15,"minutes"),t.clone()],"1hour":[t.clone().subtract(1,"hour"),t.clone()],"6hour":[t.clone().subtract(6,"hours"),t.clone()],"12hour":[t.clone().subtract(12,"hours"),t.clone()],"24hour":[t.clone().subtract(24,"hours"),t.clone()]}[e]||null};function It(){return[{value:"15min",text:i.t("近15分钟")},{value:"1hour",text:i.t("近1小时")},{value:"6hour",text:i.t("近6小时")},{value:"12hour",text:i.t("近12小时")},{value:"24hour",text:i.t("近24小时")}]}var St=({onChange:e,defaultValue:t=null,defaultSegmentValue:n="15min",quickOptions:r=It(),rangeGenerator:l=At(),className:u,style:o,selectStyle:s,selectClassName:c,rangePickerStyle:m,rangePickerClassName:d,disabledDate:f,disabledTime:g,showTime:p={format:"HH:mm:ss",minuteStep:1,secondStep:1},placeholder:b=[i.t("开始时间"),i.t("结束时间")],selectPlaceholder:x=i.t("请选择时间范围")})=>{const[k,N]=h.useState(n),[M,A]=h.useState(()=>!t&&n?l(n):t);function B(F){const[S,V]=F;return r.reduce((z,Z)=>{const E=l(Z.value);if(E){const y=V.diff(S,"minutes"),C=E[1].diff(E[0],"minutes");if(Math.abs(y-C)<=1&&V.diff(q.default(),"minutes")<=1)return Z.value}return z},null)}const w=F=>{N(F);const S=l(F);S&&(A(S),e==null||e(S,F))},T=F=>{A(F);const S=B(F);N(S),e==null||e(F,S)};return a.default.createElement("div",{className:u,style:o},a.default.createElement(v.Select,{appearance:"button",options:r,value:k||void 0,onChange:w,placeholder:x,className:c,style:s,listWidth:130}),a.default.createElement(Tt,{showTime:p,value:M||void 0,onChange:T,disabledDate:f,disabledTime:g,placeholder:b,className:d,style:m}))},Ge=St;function We(){return[{value:"all",text:i.t("全部环境")},{value:"production",text:i.t("生产环境")},{value:"preview",text:i.t("预览环境")}]}function Rt({selectedEnvironment:e,selectedTimeRange:t,customRange:n,onEnvironmentChange:r,onTimeChange:l,refreshFunction:u}){const o=h.useMemo(We,[]),s=h.useMemo(Lt,[]),{refreshing:c,trigger:m}=ze(u),d=`${t||"custom"}-${n?n[0].valueOf():"null"}`;return a.default.createElement(v.Card,{className:"agent-obs-filter"},a.default.createElement(v.Card.Body,{className:"agent-obs-filter-body"},a.default.createElement(v.Space,{wrap:!0},a.default.createElement(v.Select,{appearance:"button",options:o,value:e,onChange:f=>r(f),listWidth:130}),a.default.createElement(Ge,{key:d,defaultSegmentValue:t,defaultValue:n,quickOptions:s,rangeGenerator:Mt,disabledDate:Ue,disabledTime:Ye,onChange:l,className:"quick-date-picker",selectClassName:"time-range-select",selectStyle:{marginRight:"-1px"},rangePickerClassName:"time-range-picker",showTime:{format:"HH:mm:ss",minuteStep:1,secondStep:1},placeholder:[i.t("开始时间"),i.t("结束时间")],selectPlaceholder:i.t("请选择时间范围")}),a.default.createElement(v.Button,{icon:"refresh",className:`agent-obs-filter-refresh${c?" agent-obs-filter-refresh--rotating":""}`,onClick:m}),a.default.createElement(v.Bubble,{content:i.t("数据延迟 < 10min")},a.default.createElement("span",{className:"agent-obs-filter-tip"},a.default.createElement($e.ErrorCircleIcon,null))))))}function Dt(e,t){const n=h.useRef(e);h.useEffect(()=>{const r=n.current;Object.keys(e).some(u=>r[u]!==e[u])&&(n.current=e,t==null||t(e))},[e])}var Ot={environment:"all",timeRange:"24hour",customRange:null};function $t({overview:e,charts:t,loading:n,defaultFilter:r,onFilterChange:l,onRefresh:u,columns:o=2}){const[s,c]=h.useState({...Ot,...r});Dt(s,l);const m=f=>c(g=>({...g,...f})),d=async()=>{u?await u(s):l==null||l(s)};return a.default.createElement("div",{className:"agent-obs"},a.default.createElement(Rt,{selectedEnvironment:s.environment,selectedTimeRange:s.timeRange,customRange:s.customRange,onEnvironmentChange:f=>m({environment:f}),onTimeChange:(f,g)=>{m(g?{timeRange:g,customRange:null}:{customRange:f,timeRange:null})},refreshFunction:d}),(n||e&&e.length>0)&&a.default.createElement(wt,{items:e,loading:n}),a.default.createElement(Bt,{charts:t??[],columns:o,loading:n}))}function Bt({charts:e,columns:t,loading:n}){const r=Math.max(1,Math.floor(24/t)),l=e.length>0?e:n?Kt():[],u=Vt(l,t);return a.default.createElement(a.default.Fragment,null,u.map((o,s)=>a.default.createElement(v.Row,{key:s},o.map((c,m)=>a.default.createElement(v.Col,{key:c.Key,span:r,style:m%2===0?{paddingLeft:0}:{paddingRight:0}},a.default.createElement(vt,{title:qe(c.Key,c.Title),unit:ye(c.Key,c.Unit),data:c.Series,isMultiLine:c.IsMultiLine,jumpTo:c.jumpTo,openInNewTab:c.openInNewTab,loading:n}))))))}function Kt(){return[{Key:"agent_call_chart",Title:i.t("Agent 调用"),Unit:i.t("次"),Series:[]},{Key:"agent_success_rate_chart",Title:i.t("Agent 成功率"),Unit:"%",Series:[]},{Key:"llm_call_chart",Title:i.t("LLM 调用"),Unit:i.t("次"),Series:[]},{Key:"llm_avg_latency_chart",Title:i.t("LLM 调用平均耗时"),Unit:"s",Series:[]},{Key:"token_total_chart",Title:i.t("Token 总消耗"),Series:[]},{Key:"avg_token_per_llm_chart",Title:i.t("平均 Token/LLM 调用"),Series:[]}]}function Vt(e,t){if(t<=0)return[e];const n=[];for(let r=0;r<e.length;r+=t)n.push(e.slice(r,r+t));return n}function Pt({environment:e,timeRange:t,customRange:n,keyword:r,onEnvironmentChange:l,onTimeChange:u,onKeywordChange:o,onSearchSubmit:s,refreshFunction:c}){const m=h.useMemo(We,[]),d=h.useMemo(xt,[]),{refreshing:f,trigger:g}=ze(c),p=`${t||"custom"}-${n?n[0].valueOf():"null"}`;return a.default.createElement(v.Card,{className:"filter-card agent-obs-traces-filter"},a.default.createElement(v.Card.Body,null,a.default.createElement(v.Justify,{className:"justify--grow-left",left:a.default.createElement(v.Space,{wrap:!0},a.default.createElement(v.Select,{appearance:"button",options:m,value:e,onChange:b=>l(b),className:"log-filter-select",listWidth:130}),a.default.createElement(Ge,{key:p,defaultSegmentValue:t,defaultValue:n,quickOptions:d,rangeGenerator:Ft,disabledDate:Ue,disabledTime:Ye,onChange:u,className:"quick-date-picker",selectClassName:"time-range-select",selectStyle:{marginRight:"-1px"},rangePickerClassName:"time-range-picker",showTime:{format:"HH:mm:ss",minuteStep:1,secondStep:1},placeholder:[i.t("开始时间"),i.t("结束时间")],selectPlaceholder:i.t("请选择时间范围")}),a.default.createElement(v.SearchBox,{style:{margin:"0px 10px"},className:"log-filter-search",placeholder:i.t("可根据 run-id 和 conversation-id 搜索"),value:r,onChange:b=>o(b),onSearch:b=>s(b||""),onPressEnter:()=>s(r),onClear:()=>{o(""),s("")}}),a.default.createElement(v.Button,{type:"primary",onClick:g,loading:f},i.t("刷新")))})))}var{filterable:jt,stylize:qt}=v.Table.addons,se="-";function zt(e){return{all:"",production:i.t("生产"),preview:i.t("预览"),dev:i.t("开发"),development:i.t("开发")}[e]||e}function Ce(e){return{success:i.t("成功"),failed:i.t("失败")}[e]}function Ut(){return[{value:"success",text:Ce("success")},{value:"failed",text:Ce("failed")}]}var Yt={environment:"all",timeRange:"1hour",customRange:null,statuses:[],keyword:"",pageIndex:1,pageSize:10};function Gt(e){return e.HasError?"failed":"success"}function Wt(e){return e??se}function Ht(e){return e?q.default(e).format("YYYY-MM-DD HH:mm:ss.SSS"):se}function Xt({rows:e,pagination:t,loading:n,onRowClick:r,onQueryChange:l,defaultQuery:u}){const o=h.useMemo(Ut,[]),[s,c]=h.useState({...Yt,...u}),m=(g,p=!0)=>{c(b=>{const x={...b,...g,...p?{pageIndex:1}:{}};return l==null||l(x),x})},d=h.useMemo(()=>[{key:"traceId",header:i.t("TraceId (run-id)"),width:260,render:g=>a.default.createElement("a",{className:"agent-obs-traces-trace-id",onClick:p=>{p.preventDefault(),r==null||r(g)},href:"#"},g.TraceId)},{key:"env",header:i.t("环境"),width:80,render:g=>{const p=g.Env||"all";if(p==="all")return se;const b=String(p).replace(/[^a-zA-Z0-9_-]/g,"-");return a.default.createElement(v.Badge,{className:`agent-obs-traces-env agent-obs-traces-env--${b}`},zt(p))}},{key:"status",header:i.t("状态"),width:100,render:g=>{const p=Gt(g);return a.default.createElement("span",{className:`agent-obs-traces-status agent-obs-traces-status--${p}`},Ce(p))}},{key:"totalTokens",header:i.t("Total Tokens"),width:140,render:g=>Wt(g.TotalToken)},{key:"durationMs",header:i.t("响应时间(秒)"),width:160,render:g=>g.DurationMs!=null?(Math.ceil(g.DurationMs/100)/10).toFixed(1):se},{key:"startTime",header:i.t("开始时间"),width:200,render:g=>Ht(g.StartTimeMs)}],[r]),f=()=>{if(n&&e.length===0)return a.default.createElement(v.StatusTip,{status:"loading"});if(!n&&e.length===0)return a.default.createElement(v.StatusTip,{status:"empty"})};return a.default.createElement("div",{className:"agent-obs-traces"},a.default.createElement(v.Card,null,a.default.createElement("div",{className:"agent-obs-traces-wrapper"},a.default.createElement(Pe,{loading:n&&e.length>0},a.default.createElement(v.Table,{className:"agent-obs-traces-table",records:e,recordKey:g=>g.TraceId,columns:d,bordered:!1,topTip:f(),bottomTip:e.length>0?a.default.createElement(v.Pagination,{recordCount:t.total,pageSizeOptions:[10,20,30,50,100],pageSize:t.pageSize,pageIndex:t.pageIndex,stateTextVisible:!0,pageSizeVisible:!0,pageIndexVisible:!0,jumpVisible:!0,endJumpVisible:!0,disabled:n,onPagingChange:({pageIndex:g,pageSize:p})=>{m({pageIndex:g,pageSize:p},!1)}}):void 0,addons:[jt({type:"multiple",column:"status",value:s.statuses,onChange:g=>m({statuses:g}),all:{value:"__all__",text:i.t("全部")},options:o}),qt({bodyClassName:"agent-obs-traces-table-body",bodyStyle:{borderBottom:"none"}})]})))))}var Qt={environment:"all",timeRange:"24hour",customRange:null,keyword:""};function Zt({rows:e,pagination:t,loading:n,onRowClick:r,defaultFilter:l,onQueryChange:u,onRefresh:o}){const[s,c]=h.useState({...Qt,...l}),[m,d]=h.useState(s.keyword),f=h.useRef({environment:s.environment,timeRange:s.timeRange,customRange:s.customRange,statuses:[],keyword:s.keyword,pageIndex:1,pageSize:t.pageSize}),g=()=>{u==null||u({...f.current,environment:s.environment,timeRange:s.timeRange,customRange:s.customRange,keyword:s.keyword})},p=h.useRef(s);h.useEffect(()=>{const k=p.current;Object.keys(s).some(M=>k[M]!==s[M])&&(p.current=s,f.current={...f.current,pageIndex:1},g())},[s]);const b=k=>c(N=>({...N,...k})),x=async()=>{const k=(m||"").trim();k!==m&&d(k);const N={...f.current,environment:s.environment,timeRange:s.timeRange,customRange:s.customRange,keyword:k,pageIndex:k!==s.keyword?1:f.current.pageIndex};if(k!==s.keyword){const M={...s,keyword:k};p.current=M,f.current={...f.current,pageIndex:1},c(M)}o?await o(N):u==null||u(N)};return a.default.createElement("div",{className:"agent-obs"},a.default.createElement(Pt,{environment:s.environment,timeRange:s.timeRange,customRange:s.customRange,keyword:m,onEnvironmentChange:k=>b({environment:k}),onTimeChange:(k,N)=>{b(N?{timeRange:N,customRange:null}:{customRange:k,timeRange:null})},onKeywordChange:d,onSearchSubmit:k=>{const N=(k||"").trim();d(N),N!==s.keyword&&b({keyword:N})},refreshFunction:x}),a.default.createElement(Xt,{rows:e,pagination:t,loading:n,onRowClick:r,defaultQuery:f.current,onQueryChange:k=>{f.current=k,g()}}))}var Jt=["AGENT","CHAIN","LLM","TOOL","RETRIEVER","RERANKER","EMBEDDING","EVALUATOR","GUARDRAIL","PROMPT","MANUAL","INTERNAL"];function ee(e){if(!e)return null;const t=e.trim().toUpperCase();return t==="GENERATION"?"LLM":Jt.includes(t)?t:null}var oe="langfuse.";function D(e,t){var n;const r=`${oe}${t}`,l=(n=e.Tags)==null?void 0:n.find(u=>u.Key===r);return l==null?void 0:l.Value}function j(e,t){for(const n of t){const r=D(e,n);if(r!==void 0&&r!=="")return r}}function He(e){const t=ee(D(e,"openinference.span.kind"));if(t)return t;const n=ee(D(e,"gen_ai.span.kind"));if(n)return n;const r=D(e,"span.kind"),l=ee(r);if(l)return l;for(const o of e.Tags||[]){const s=ee(o.Value);if(s)return s}const u=(e.OperationName||"").toLowerCase();return u.includes("chat")||u.includes("llm")||u.includes("openai")?"LLM":u.includes("tool")||u.includes("get_")?"TOOL":u.includes("retriev")?"RETRIEVER":u.includes("embed")?"EMBEDDING":u.includes("prompt")?"PROMPT":u.includes("agent")?"AGENT":"UNKNOWN"}function ea(e){const t=fe(e,"openinference.span.kind")||fe(e,"gen_ai.span.kind")||fe(e,"span.kind");return t||He(e)}function fe(e,t){const n=D(e,t);if(typeof n!="string")return;const r=n.trim();return r||void 0}function Xe(e){const t=D(e,"error");if(t)return t.toLowerCase()==="true";const n=D(e,"statusCode")||D(e,"otel.status_code");return n?n==="2"||n.toUpperCase()==="ERROR":!1}function ta(e){return j(e,["exception.message","exception.type","status_message","otel.status_description","error.message"])}function Qe(e){const t=e.StartTime/1e3,n=e.Duration/1e3,r=t+n,l=u=>{if(u===void 0||u==="")return;const o=Number(u);return Number.isFinite(o)?o:void 0};return{startMs:t,endMs:r,durationMs:n,model:j(e,["llm.model_name","gen_ai.response.model","gen_ai.request.model"]),inputTokens:l(j(e,["llm.token_count.prompt","gen_ai.usage.input_tokens","gen_ai.usage.prompt_tokens"])),outputTokens:l(j(e,["llm.token_count.completion","gen_ai.usage.completion_tokens","gen_ai.usage.output_tokens"])),totalTokens:l(j(e,["llm.token_count.total","gen_ai.usage.total_tokens"])),cost:l(D(e,"llm.cost"))}}function Me(e,t){const n=e.get(t);if(n)return n;const r={toolCalls:new Map};return e.set(t,r),r}function aa(e,t){const n=e.toolCalls.get(t);if(n)return n;const r={};return e.toolCalls.set(t,r),r}function na(e){const t=e.trim();if(!t.startsWith("{")&&!t.startsWith("["))return e;try{return JSON.stringify(JSON.parse(t),null,2)}catch{return e}}function Te(e,t){const n=`${oe}${t}`,r=new Map;(e.Tags||[]).forEach(u=>{if(!u.Key.startsWith(`${n}.`)||!u.Value)return;const o=u.Key.slice(n.length+1),s=o.match(/^(\d+)\.message\.(role|content)$/);if(s){const m=Me(r,Number(s[1]));s[2]==="role"&&(m.role=u.Value),s[2]==="content"&&(m.content=u.Value);return}const c=o.match(/^(\d+)\.message\.tool_calls\.(\d+)\.tool_call\.function\.(name|arguments)$/);if(c){const m=Me(r,Number(c[1])),d=aa(m,Number(c[2]));c[3]==="name"&&(d.name=u.Value),c[3]==="arguments"&&(d.arguments=u.Value)}});const l=[];return Array.from(r.entries()).sort(([u],[o])=>u-o).forEach(([,u])=>{u.content&&l.push(u.role?`${u.role}: ${u.content}`:u.content),Array.from(u.toolCalls.entries()).sort(([o],[s])=>o-s).forEach(([o,s])=>{const c=[s.name?`Tool: ${s.name}`:`Tool #${o+1}`];s.arguments&&c.push(`Arguments: ${na(s.arguments)}`),l.push(c.join(`
2
+ `))})}),l.length?l.join(`
3
+
4
+ `):void 0}function ra(e){const t=Te(e,"llm.input_messages"),n=Te(e,"llm.output_messages");return{input:t||j(e,["input.value","gen_ai.prompt"]),output:n||j(e,["output.value","gen_ai.completion"])}}function la(e){const t=new Set(["input.value","output.value","input.mime_type","output.mime_type","tapm.relocated","tapm.source_pipeline","topic.id","index.app.id","time_bucket","peer.service","component","status_code_xx","traceID","origin.operation","service.instance"]),n=["llm.input_messages.","llm.output_messages."];return(e.Tags||[]).filter(r=>r.Key&&r.Key.startsWith(oe)).map(r=>({Key:r.Key.slice(oe.length),Value:r.Value})).filter(r=>r.Key&&!t.has(r.Key)&&!n.some(l=>r.Key.startsWith(l)))}function ua(e){const n=(e.References||[]).find(r=>r.RefType==="CHILD_OF"&&r.SpanId);return(n==null?void 0:n.SpanId)||null}function sa(e){const t=new Map;for(const l of e){const u=Qe(l);t.set(l.SpanId,{span:l,spanId:l.SpanId,parentId:ua(l),kind:He(l),children:[],startMs:u.startMs,endMs:u.endMs,durationMs:u.durationMs,hasError:Xe(l)})}const n=[];for(const l of t.values())l.parentId&&t.has(l.parentId)?t.get(l.parentId).children.push(l):n.push(l);const r=l=>{l.sort((u,o)=>u.startMs-o.startMs),l.forEach(u=>r(u.children))};return r(n),n}var O=168,ie=56,Ae=56,te=28,ge=48,Ie=40;function oa(e){const t=[],n=[],r=new Map,l=d=>{if(r.has(d.spanId))return r.get(d.spanId);if(d.children.length===0)return r.set(d.spanId,O),O;const f=d.children.reduce((p,b,x)=>p+l(b)+(x>0?te:0),0),g=Math.max(O,f);return r.set(d.spanId,g),g},u=(d,f,g)=>{const p=l(d),x=g+p/2-O/2,k=Ie+f*(ie+Ae);t.push({id:d.spanId,x,y:k,level:f,node:d});let N=g+(p-d.children.reduce((A,B,w)=>A+l(B)+(w>0?te:0),0))/2,M=Number.NEGATIVE_INFINITY;d.children.forEach(A=>{const B=l(A),w=A.startMs<M?"parallel":"seq";u(A,f+1,N),n.push({from:d.spanId,to:A.spanId,label:w,dashed:w==="parallel"||A.kind==="LLM"}),M=Math.max(M,A.endMs),N+=B+te})};let o=ge;e.forEach(d=>{const f=l(d);u(d,0,o),o+=f+te*2});const s=Math.max(...t.map(d=>d.x+O),ge*2)+ge,c=Math.max(...t.map(d=>d.level),0),m=Ie*2+(c+1)*ie+c*Ae;return{nodes:t,edges:n,width:s,height:m}}function me(e){return!Number.isFinite(e)||e<0?"-":e<1?`${e.toFixed(2)}ms`:e<1e3?`${e.toFixed(e<10?2:1)}ms`:`${(e/1e3).toFixed(2)}s`}function he(e){return e==null||!Number.isFinite(e)?"-":e.toLocaleString()}function ia(e){if(!e)return"-";const t=new Date(e),n=(r,l=2)=>String(r).padStart(l,"0");return`${t.getFullYear()}-${n(t.getMonth()+1)}-${n(t.getDate())} ${n(t.getHours())}:${n(t.getMinutes())}:${n(t.getSeconds())}`}function Ze(e){if(!e)return null;const t=e.trim();if(!t.startsWith("{")&&!t.startsWith("["))return null;try{return JSON.parse(t)}catch{return null}}function $({size:e=16,className:t,style:n,label:r,viewBox:l,children:u}){return a.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:e,height:e,viewBox:l,fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round","aria-label":i.t(r),className:t,style:n},u)}function ca(e){return a.default.createElement($,{...e,label:"AGENT",viewBox:"2 0.25 20 20"},a.default.createElement("rect",{x:"5",y:"7",width:"14",height:"11",rx:"2.5"}),a.default.createElement("path",{d:"M12 4v3"}),a.default.createElement("circle",{cx:"12",cy:"3.5",r:"1"}),a.default.createElement("circle",{cx:"9.5",cy:"12",r:"1.1"}),a.default.createElement("circle",{cx:"14.5",cy:"12",r:"1.1"}),a.default.createElement("path",{d:"M9.5 15.5h5"}),a.default.createElement("path",{d:"M3.5 12.5v2M20.5 12.5v2"}))}function da(e){return a.default.createElement($,{...e,label:"CHAIN",viewBox:"2 2 20 20"},a.default.createElement("path",{d:"M9.5 14.5a3.5 3.5 0 0 1 0-4.95l2.12-2.12a3.5 3.5 0 0 1 4.95 4.95l-1.06 1.06"}),a.default.createElement("path",{d:"M14.5 9.5a3.5 3.5 0 0 1 0 4.95l-2.12 2.12a3.5 3.5 0 0 1-4.95-4.95l1.06-1.06"}))}function ma(e){return a.default.createElement($,{...e,label:"EMBEDDING",viewBox:"2.9 2.9 18.2 18.2"},a.default.createElement("circle",{cx:"6",cy:"6",r:"1.6"}),a.default.createElement("circle",{cx:"18",cy:"6",r:"1.6"}),a.default.createElement("circle",{cx:"6",cy:"18",r:"1.6"}),a.default.createElement("circle",{cx:"18",cy:"18",r:"1.6"}),a.default.createElement("circle",{cx:"12",cy:"12",r:"2.2"}),a.default.createElement("path",{d:"M7.4 7.4 10.4 10.4M16.6 7.4l-3 3M7.4 16.6l3-3M16.6 16.6l-3-3"}))}function fa(e){return a.default.createElement($,{...e,label:"EVALUATOR",viewBox:"2.5 2.5 19 19"},a.default.createElement("path",{d:"M12 4v16"}),a.default.createElement("path",{d:"M5 9h14"}),a.default.createElement("path",{d:"M8 9 5 15a3 3 0 0 0 6 0L8 9Z"}),a.default.createElement("path",{d:"M16 9l-3 6a3 3 0 0 0 6 0l-3-6Z"}),a.default.createElement("path",{d:"M8 20h8"}))}function ga(e){return a.default.createElement($,{...e,label:"GUARDRAIL",viewBox:"1.5 1.5 21 21"},a.default.createElement("path",{d:"M12 3 4 6v6c0 4.5 3.4 8.4 8 9 4.6-.6 8-4.5 8-9V6l-8-3Z"}),a.default.createElement("path",{d:"m9 12 2 2 4-4"}))}function ha({size:e=16,className:t,style:n}){return a.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:e,height:e,viewBox:"0 0 16 16",fill:"currentColor",stroke:"none","aria-label":i.t("LLM"),className:t,style:n},a.default.createElement("path",{d:"M6.75098 2.91992C6.96271 2.80436 7.21893 2.80436 7.43066 2.91992C7.6754 3.05361 7.83917 3.54583 8.16699 4.5293L8.38477 5.18262C8.56011 5.70865 8.64848 5.97198 8.79785 6.19043C8.93022 6.38394 9.09751 6.55122 9.29102 6.68359C9.50951 6.83305 9.77263 6.92128 10.2988 7.09668L10.9531 7.31445C11.936 7.64209 12.4277 7.80621 12.5615 8.05078C12.6771 8.26252 12.6771 8.51873 12.5615 8.73047C12.4279 8.9752 11.9364 9.13905 10.9531 9.4668L10.2988 9.68555C9.77276 9.8609 9.50948 9.94826 9.29102 10.0977C9.09752 10.23 8.93022 10.3973 8.79785 10.5908C8.64839 10.8093 8.56016 11.0724 8.38477 11.5986L8.16699 12.2529C7.8393 13.236 7.67528 13.7275 7.43066 13.8613C7.21893 13.9769 6.96271 13.9769 6.75098 13.8613C6.50636 13.7275 6.34234 13.236 6.01465 12.2529L5.79688 11.5986C5.62148 11.0724 5.53325 10.8093 5.38379 10.5908C5.25142 10.3973 5.08412 10.23 4.89062 10.0977C4.67216 9.94826 4.40888 9.8609 3.88281 9.68555L3.22852 9.4668C2.24527 9.13905 1.75373 8.9752 1.62012 8.73047C1.50455 8.51873 1.50455 8.26252 1.62012 8.05078C1.75398 7.80621 2.2456 7.64209 3.22852 7.31445L3.88281 7.09668C4.40901 6.92128 4.67213 6.83305 4.89062 6.68359C5.08413 6.55122 5.25142 6.38394 5.38379 6.19043C5.53316 5.97198 5.62153 5.70865 5.79688 5.18262L6.01465 4.5293C6.34247 3.54583 6.50624 3.05361 6.75098 2.91992ZM12.8184 0.693359C12.9088 0.64411 13.0179 0.64411 13.1084 0.693359C13.2132 0.750535 13.2836 0.961008 13.4238 1.38184L13.5596 1.78809C13.6346 2.01303 13.6724 2.12529 13.7363 2.21875C13.793 2.30158 13.8644 2.37303 13.9473 2.42969C14.0407 2.49361 14.153 2.53147 14.3779 2.60645L14.7842 2.74219C15.205 2.88246 15.4155 2.95286 15.4727 3.05762C15.5219 3.14809 15.5219 3.25719 15.4727 3.34766C15.4155 3.45241 15.205 3.52281 14.7842 3.66309L14.3779 3.79883C14.153 3.87381 14.0407 3.91166 13.9473 3.97559C13.8644 4.03225 13.793 4.10369 13.7363 4.18652C13.6724 4.27998 13.6346 4.39225 13.5596 4.61719L13.4238 5.02344C13.2836 5.44427 13.2132 5.65474 13.1084 5.71191C13.0179 5.76116 12.9088 5.76116 12.8184 5.71191C12.7136 5.65474 12.6432 5.44427 12.5029 5.02344L12.3672 4.61719C12.2922 4.39225 12.2544 4.27998 12.1904 4.18652C12.1338 4.10369 12.0623 4.03225 11.9795 3.97559C11.886 3.91166 11.7738 3.87381 11.5488 3.79883L11.1426 3.66309C10.7218 3.52281 10.5113 3.45241 10.4541 3.34766C10.4049 3.25719 10.4049 3.14809 10.4541 3.05762C10.5113 2.95286 10.7218 2.88246 11.1426 2.74219L11.5488 2.60645C11.7738 2.53147 11.886 2.49361 11.9795 2.42969C12.0623 2.37303 12.1338 2.30158 12.1904 2.21875C12.2544 2.12529 12.2922 2.01303 12.3672 1.78809L12.5029 1.38184C12.6432 0.961008 12.7136 0.750535 12.8184 0.693359Z"}))}function pa(e){return a.default.createElement($,{...e,label:"PROMPT",viewBox:"3.5 2.5 19 19"},a.default.createElement("path",{d:"M5 5h14v10H9l-4 4V5Z"}),a.default.createElement("path",{d:"M8.5 9.5h7M8.5 12h4.5"}),a.default.createElement("path",{d:"m17 17 1.5 1.5L21 16"}))}function Ea(e){return a.default.createElement($,{...e,label:"RERANKER",viewBox:"2.5 2 20 20"},a.default.createElement("path",{d:"M4 7h10"}),a.default.createElement("path",{d:"M4 12h7"}),a.default.createElement("path",{d:"M4 17h12"}),a.default.createElement("path",{d:"M18 4v16"}),a.default.createElement("path",{d:"m15 7 3-3 3 3"}),a.default.createElement("path",{d:"m15 17 3 3 3-3"}))}function va(e){return a.default.createElement($,{...e,label:"RETRIEVER",viewBox:"1.5 1.75 21 21"},a.default.createElement("ellipse",{cx:"9",cy:"6",rx:"6",ry:"2.5"}),a.default.createElement("path",{d:"M3 6v6c0 1.38 2.69 2.5 6 2.5s6-1.12 6-2.5V6"}),a.default.createElement("path",{d:"M3 12v4c0 1.38 2.69 2.5 6 2.5 1 0 1.96-.1 2.82-.28"}),a.default.createElement("circle",{cx:"17",cy:"17",r:"3"}),a.default.createElement("path",{d:"m21 21-1.8-1.8"}))}function ba({size:e=16,className:t,style:n}){return a.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:e,height:e,viewBox:"0 0 16 16",fill:"currentColor",stroke:"none","aria-label":i.t("TOOL"),className:t,style:n},a.default.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M12.3473 7.71709C11.4282 8.63549 10.0466 8.78881 8.95807 8.20271L4.22084 12.938C3.90023 13.2583 3.38052 13.2583 3.05951 12.938C2.7393 12.6173 2.7393 12.0985 3.05951 11.7778L7.79754 7.04251C7.21188 5.95517 7.36538 4.57517 8.28405 3.65677C8.83493 3.1063 9.55371 2.84447 10.2753 2.83566C9.51933 3.63956 9.52933 4.90145 10.3157 5.68733C11.1016 6.47281 12.3641 6.48282 13.1684 5.72737C13.1596 6.44839 12.8982 7.16662 12.3473 7.71709ZM13.6565 4.14959C13.4542 4.37699 13.1184 4.66644 12.6371 5.10722C12.1274 5.61647 11.4058 5.61647 10.8961 5.10722C10.386 4.59718 10.386 3.87656 10.8961 3.36692C11.3659 2.89731 11.8708 2.34122 11.8628 2.33882C10.4976 1.70907 8.82854 1.95249 7.7036 3.07667C6.6782 4.10116 6.38598 5.57683 6.81733 6.86235L2.47945 11.1981C1.83823 11.8387 1.83823 12.8776 2.47945 13.5181C3.12068 14.1587 4.16007 14.1587 4.80129 13.5181L9.13875 9.18276C10.426 9.61473 11.9023 9.32169 12.9277 8.2972C14.0511 7.17422 14.2846 5.51278 13.6565 4.14959Z"}))}function ka(e){return a.default.createElement($,{...e,label:"MANUAL",viewBox:"0 0 24 24"},a.default.createElement("path",{d:"M15.5 4.5 19.5 8.5 9 19l-4.5 1L5.5 15.5 15.5 4.5Z"}),a.default.createElement("path",{d:"m13.5 6.5 4 4"}),a.default.createElement("path",{d:"M5.5 15.5 9 19"}))}function Se(e){return a.default.createElement($,{...e,label:"UNKNOWN",viewBox:"0 0 24 24"},a.default.createElement("path",{d:"M8 4 Q5 4 5 7 L5 10 Q5 12 3 12 Q5 12 5 14 L5 17 Q5 20 8 20"}),a.default.createElement("path",{d:"M16 4 Q19 4 19 7 L19 10 Q19 12 21 12 Q19 12 19 14 L19 17 Q19 20 16 20"}),a.default.createElement("circle",{cx:"12",cy:"12",r:"1.4",fill:"currentColor",stroke:"none"}))}var Re={AGENT:ca,CHAIN:da,LLM:ha,TOOL:ba,RETRIEVER:va,RERANKER:Ea,EMBEDDING:ma,EVALUATOR:fa,GUARDRAIL:ga,PROMPT:pa,MANUAL:ka,INTERNAL:Se,UNKNOWN:Se};function _a({kind:e,...t}){const n=Re[e]||Re.UNKNOWN;return a.default.createElement(n,{...t})}var Q=20,K=32,ae="#A8A29E",pe=6,Ee=16,ne=e=>e*Q+Q/2;function ya({ancestorsIsLast:e,isLast:t,isRoot:n,hasChildren:r,isExpanded:l,onToggle:u}){const o=e.length,c=(o+1)*Q,m=K/2,d=[];if(e.forEach((p,b)=>{if(p)return;const x=ne(b)+.5;d.push(a.default.createElement("line",{key:`anc-${b}`,x1:x,y1:-.5,x2:x,y2:K+.5,stroke:ae,strokeWidth:1,shapeRendering:"crispEdges"}))}),!n){const p=ne(o-1)+.5,b=ne(o),x=t?m-pe:K+.5;d.push(a.default.createElement("line",{key:"vline",x1:p,y1:-.5,x2:p,y2:x,stroke:ae,strokeWidth:1,shapeRendering:"crispEdges"}));const k=`M ${p} ${m-pe} Q ${p} ${m} ${p+pe} ${m} L ${b} ${m}`;d.push(a.default.createElement("path",{key:"arc",d:k,fill:"none",stroke:ae,strokeWidth:1}))}if(r&&l){const p=ne(o)+.5;d.push(a.default.createElement("line",{key:"vdown",x1:p,y1:m+Ee/2,x2:p,y2:K+.5,stroke:ae,strokeWidth:1,shapeRendering:"crispEdges"}))}const f=o*Q+(Q-Ee)/2,g=(K-Ee)/2;return a.default.createElement("span",{className:"agent-obs-td-tree-indent",style:{width:c,flex:`0 0 ${c}px`,height:K}},a.default.createElement("svg",{className:"agent-obs-td-tree-lines",width:c,height:K,viewBox:`0 0 ${c} ${K}`,"aria-hidden":"true"},d),a.default.createElement("span",{className:"agent-obs-td-tree-control",style:{left:f,top:g}},r?a.default.createElement("span",{className:`agent-obs-td-tree-expander ${l?"agent-obs-td-tree-expander--expanded":""}`,onClick:p=>{p.stopPropagation(),u()}},a.default.createElement("svg",{width:"10",height:"10",viewBox:"0 0 10 10","aria-hidden":"true"},a.default.createElement("path",{d:"M2.5 3.5 L5 6 L7.5 3.5",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}))):a.default.createElement("span",{className:"agent-obs-td-tree-leaf-dot"})))}function Je(e){const{node:t,depth:n,ancestorsIsLast:r,isLast:l,expanded:u,toggle:o,activeId:s,onActiveChange:c}=e,m=t.children.length>0,d=u.has(t.spanId),f=s===t.spanId;return a.default.createElement(a.default.Fragment,null,a.default.createElement("div",{className:`agent-obs-td-tree-row ${f?"agent-obs-td-tree-row--active":""} ${t.hasError?"agent-obs-td-tree-row--error":""}`,onClick:()=>c(t.spanId)},a.default.createElement(ya,{ancestorsIsLast:r,isLast:l,isRoot:n===0,hasChildren:m,isExpanded:d,onToggle:()=>o(t.spanId)}),a.default.createElement("div",{className:"agent-obs-td-tree-row-content"},a.default.createElement("span",{className:"agent-obs-td-tree-icon"},a.default.createElement(_a,{kind:t.kind,size:t.kind==="UNKNOWN"||t.kind==="INTERNAL"?14:16})),a.default.createElement("span",{className:"agent-obs-td-tree-name",title:t.span.OperationName},t.span.OperationName),a.default.createElement("span",{className:"agent-obs-td-tree-dur"},me(t.durationMs)))),m&&d&&t.children.map((g,p)=>a.default.createElement(Je,{key:g.spanId,node:g,depth:n+1,ancestorsIsLast:[...r,p===t.children.length-1],isLast:p===t.children.length-1,expanded:u,toggle:o,activeId:s,onActiveChange:c})))}function Ca(e){const t=[],n=r=>{t.push(r.spanId),r.children.forEach(n)};return e.forEach(n),t}function Na({roots:e,activeId:t,onActiveChange:n}){const[r,l]=h.useState(()=>new Set(Ca(e))),u=o=>{l(s=>{const c=new Set(s);return c.has(o)?c.delete(o):c.add(o),c})};return a.default.createElement("div",{className:"agent-obs-td-tree"},e.map((o,s)=>a.default.createElement(Je,{key:o.spanId,node:o,depth:0,ancestorsIsLast:[],isLast:s===e.length-1,expanded:r,toggle:u,activeId:t,onActiveChange:n})))}function wa(e){const t=[],n=(r,l)=>{t.push({node:r,depth:l}),r.children.forEach(u=>n(u,l+1))};return e.forEach(r=>n(r,0)),t}function xa(e){return e>3e4?"#F36C06":e>1e4?"#EAB308":e>3e3?"#3B82F6":"#22C55E"}function ve(e){if(!Number.isFinite(e)||e<=0)return"0s";const t=e/1e3,n=t<1?t.toFixed(2):t.toFixed(1);return`${parseFloat(n)}s`}var La=14;function Fa({roots:e,activeId:t,onActiveChange:n}){const r=h.useMemo(()=>wa(e),[e]),{traceStart:l,totalMs:u}=h.useMemo(()=>{if(!r.length)return{traceStart:0,totalMs:0};const c=Math.min(...r.map(d=>d.node.startMs)),m=Math.max(...r.map(d=>d.node.startMs+d.node.durationMs));return{traceStart:c,totalMs:m-c}},[r]),o=[ve(0),ve(u/2),ve(u)],s=["start","mid","end"];return a.default.createElement("div",{className:"agent-obs-td-timeline-wrapper"},a.default.createElement("div",{className:"agent-obs-td-timeline-axis"},a.default.createElement("div",{className:"agent-obs-td-timeline-axis-label"},i.t("Span")),a.default.createElement("div",{className:"agent-obs-td-timeline-axis-track"},o.map((c,m)=>a.default.createElement(v.Text,{key:m,className:`agent-obs-td-timeline-axis-tick agent-obs-td-timeline-axis-tick--${s[m]}`},c))),a.default.createElement("div",{className:"agent-obs-td-timeline-axis-dur"},i.t("Duration"))),a.default.createElement("div",{className:"agent-obs-td-timeline"},r.map(({node:c,depth:m})=>{const d=u>0?(c.startMs-l)/u*100:0,f=u>0?Math.max(c.durationMs/u*100,.2):0,g=t===c.spanId,p=c.hasError?"#e54545":xa(c.durationMs);return a.default.createElement("div",{key:c.spanId,className:`agent-obs-td-timeline-row ${g?"agent-obs-td-timeline-row--active":""}`,onClick:()=>n(c.spanId)},a.default.createElement("div",{className:"agent-obs-td-timeline-label",style:{paddingLeft:m*La}},a.default.createElement("span",{className:"agent-obs-td-timeline-label-op",title:c.span.OperationName},c.span.OperationName)),a.default.createElement("div",{className:"agent-obs-td-timeline-track"},a.default.createElement("div",{className:"agent-obs-td-timeline-track-line"}),a.default.createElement("div",{className:"agent-obs-td-timeline-bar",style:{left:`${d}%`,width:`${f}%`,background:p}})),a.default.createElement("div",{className:"agent-obs-td-timeline-dur"},me(c.durationMs)))})))}var et=.25,tt=2,re=.1,le=24;function Ma(e,t=22){return e?e.length>t?`${e.slice(0,t-1)}…`:e:""}function Ta(e,t,n,r){const l=Math.max((r-t)/2,20);return`M ${e} ${t} C ${e} ${t+l}, ${n} ${r-l}, ${n} ${r}`}function be(e){return Math.min(tt,Math.max(et,e))}function Aa(e){return e==="parallel"?i.t("Parallel"):i.t("Sequential")}function Ia({roots:e,activeId:t,onActiveChange:n}){const r=h.useMemo(()=>oa(e),[e]),l=h.useMemo(()=>{const E=new Map;return r.nodes.forEach(y=>E.set(y.id,{x:y.x,y:y.y})),E},[r]),u=h.useRef(null),[o,s]=h.useState({w:0,h:0}),[c,m]=h.useState(1),[d,f]=h.useState({x:0,y:0}),[g,p]=h.useState(!1),b=h.useCallback((E,y,C,_)=>{if(E<le*2+1||y<le*2+1||!C||!_)return{scale:1,x:0,y:0};const L=be(Math.min((E-le*2)/C,(y-le*2)/_,1));return{scale:L,x:(E-C*L)/2,y:(y-_*L)/2}},[]),x=h.useCallback(()=>{const E=b(o.w,o.h,r.width,r.height);m(E.scale),f({x:E.x,y:E.y})},[b,o.w,o.h,r.width,r.height]),k=h.useRef(""),N=`${r.width}x${r.height}`;h.useLayoutEffect(()=>{const E=u.current;if(!E)return;const y=E.clientWidth,C=E.clientHeight;if(s({w:y,h:C}),y>0&&C>0&&r.width>0&&r.height>0){const I=b(y,C,r.width,r.height);m(I.scale),f({x:I.x,y:I.y}),k.current=N,p(!0)}let _=0;const L=new ResizeObserver(()=>{cancelAnimationFrame(_),_=requestAnimationFrame(()=>{const I=E.clientWidth,P=E.clientHeight;s(R=>R.w===I&&R.h===P?R:{w:I,h:P})})});return L.observe(E),()=>{cancelAnimationFrame(_),L.disconnect()}},[]),h.useEffect(()=>{if(!o.w||!o.h||!r.width||!r.height||k.current===N)return;k.current=N;const E=b(o.w,o.h,r.width,r.height);m(E.scale),f({x:E.x,y:E.y}),p(!0)},[N,o.w,o.h,r.width,r.height,b]);const M=h.useCallback((E,y,C)=>{m(_=>{const L=be(E);return L===_?_:(f(I=>({x:y-(y-I.x)*(L/_),y:C-(C-I.y)*(L/_)})),L)})},[]),A=()=>M(c+re,o.w/2,o.h/2),B=()=>M(c-re,o.w/2,o.h/2);h.useEffect(()=>{const E=u.current;if(!E)return;const y=C=>{C.preventDefault();const _=E.getBoundingClientRect(),L=C.clientX-_.left,I=C.clientY-_.top,P=C.deltaY<0?1+re:1/(1+re);m(R=>{const U=be(R*P);return U===R?R:(f(J=>({x:L-(L-J.x)*(U/R),y:I-(I-J.y)*(U/R)})),U)})};return E.addEventListener("wheel",y,{passive:!1}),()=>E.removeEventListener("wheel",y)},[]);const w=h.useRef({active:!1,startX:0,startY:0,originX:0,originY:0}),[T,F]=h.useState(!1),S=E=>{E.button!==0||E.target.closest(".agent-obs-td-graph-node")||(w.current={active:!0,startX:E.clientX,startY:E.clientY,originX:d.x,originY:d.y},F(!0),E.preventDefault())};h.useEffect(()=>{if(!T)return;const E=C=>{if(!w.current.active)return;const _=C.clientX-w.current.startX,L=C.clientY-w.current.startY;f({x:w.current.originX+_,y:w.current.originY+L})},y=()=>{w.current.active=!1,F(!1)};return window.addEventListener("mousemove",E),window.addEventListener("mouseup",y),()=>{window.removeEventListener("mousemove",E),window.removeEventListener("mouseup",y)}},[T]);const V=Math.round(c*100),z=c<tt-1e-6,Z=c>et+1e-6;return a.default.createElement("div",{ref:u,className:`agent-obs-td-graph${T?" agent-obs-td-graph--panning":""}`,onMouseDown:S},a.default.createElement("svg",{className:"agent-obs-td-graph-svg",width:o.w||r.width,height:o.h||r.height},g&&a.default.createElement("g",{transform:`translate(${d.x}, ${d.y}) scale(${c})`},a.default.createElement("g",null,r.edges.map((E,y)=>{const C=l.get(E.from),_=l.get(E.to);if(!C||!_)return null;const L=C.x+O/2,I=C.y+ie,P=_.x+O/2,R=_.y,U=(L+P)/2,J=(I+R)/2;return a.default.createElement("g",{key:`edge-${y}`},a.default.createElement("path",{className:`agent-obs-td-graph-edge ${E.dashed?"agent-obs-td-graph-edge--dashed":""}`,d:Ta(L,I,P,R)}),a.default.createElement("text",{className:"agent-obs-td-graph-edge-label",x:U,y:J,textAnchor:"middle",dy:"-2"},Aa(E.label)))})),a.default.createElement("g",null,r.nodes.map(E=>{const{x:y,y:C,node:_}=E,L=t===_.spanId;return a.default.createElement("g",{key:_.spanId,className:`agent-obs-td-graph-node agent-obs-td-graph-node--${_.kind}${_.hasError?" agent-obs-td-graph-node--error":""}${L?" agent-obs-td-graph-node--active":""}`,transform:`translate(${y}, ${C})`,onClick:()=>n(_.spanId)},a.default.createElement("rect",{className:"agent-obs-td-graph-node-box",width:O,height:ie,rx:8,ry:8}),a.default.createElement("text",{className:"agent-obs-td-graph-node-op",x:O/2,y:22,textAnchor:"middle"},a.default.createElement("title",null,_.span.OperationName),Ma(_.span.OperationName,22)),a.default.createElement("text",{className:"agent-obs-td-graph-node-dur",x:O/2,y:40,textAnchor:"middle"},me(_.durationMs)))})))),a.default.createElement("div",{className:"agent-obs-td-graph-toolbar",onMouseDown:E=>E.stopPropagation(),onWheel:E=>E.stopPropagation()},a.default.createElement("button",{type:"button",className:"agent-obs-td-graph-toolbar-btn",onClick:A,disabled:!z,"aria-label":i.t("zoom in")},"+"),a.default.createElement("span",{className:"agent-obs-td-graph-toolbar-percent"},V,"%"),a.default.createElement("button",{type:"button",className:"agent-obs-td-graph-toolbar-btn",onClick:B,disabled:!Z,"aria-label":i.t("zoom out")},"−"),a.default.createElement("span",{className:"agent-obs-td-graph-toolbar-divider"}),a.default.createElement("button",{type:"button",className:"agent-obs-td-graph-toolbar-btn agent-obs-td-graph-toolbar-fit",onClick:x,"aria-label":i.t("fit to view")},a.default.createElement("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none"},a.default.createElement("path",{d:"M2 5V2h3M14 5V2h-3M2 11v3h3M14 11v3h-3",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})))))}var De=!1;function Sa(){De||(Ke.default.registerLanguage("json",ft.default),De=!0)}function Ra(e,t=2){const n=JSON.stringify(e,null,t);return Sa(),Ke.default.highlight(n,{language:"json"}).value}function Da({span:e,closeBtn:t}){if(!e)return a.default.createElement("div",{className:"agent-obs-td-detail"},a.default.createElement("div",{className:"agent-obs-td-detail-header"},a.default.createElement("span",{className:"agent-obs-td-detail-header-title"}),t),a.default.createElement("div",{className:"agent-obs-td-detail-empty"},i.t("请选择左侧节点查看详情")));const n=ea(e),r=Qe(e),l=ra(e),u=la(e),o=Xe(e),s=o?ta(e):void 0,c=D(e,"agent.conversation_id")||D(e,"session.id");return a.default.createElement("div",{className:"agent-obs-td-detail"},a.default.createElement("div",{className:"agent-obs-td-detail-header"},a.default.createElement("span",{className:"agent-obs-td-detail-header-title",title:e.OperationName},e.OperationName),a.default.createElement("span",{className:`agent-obs-td-detail-badge ${o?"agent-obs-td-detail-badge--error":"agent-obs-td-detail-badge--ok"}`},o?i.t("ERROR"):i.t("OK")),t),a.default.createElement("div",{className:"agent-obs-td-detail-metrics"},a.default.createElement(W,{label:i.t("Total Tokens"),value:he(r.totalTokens)}),a.default.createElement(W,{label:i.t("Tokens in"),value:he(r.inputTokens)}),a.default.createElement(W,{label:i.t("Tokens out"),value:he(r.outputTokens)}),a.default.createElement(W,{label:i.t("Duration"),value:me(r.durationMs)}),a.default.createElement(W,{label:i.t("Model"),value:r.model||"-"})),a.default.createElement("div",{className:"agent-obs-td-detail-info"},a.default.createElement("div",{className:"agent-obs-td-detail-pills"},a.default.createElement(H,{label:i.t("Timestamp"),value:ia(r.startMs)}),a.default.createElement(H,{label:i.t("SpanId"),value:e.SpanId}),a.default.createElement(H,{label:i.t("TraceId"),value:D(e,"traceID")||e.TraceId}),a.default.createElement(H,{label:i.t("SpanKind"),value:n}),a.default.createElement(H,{label:i.t("ConversionID"),value:c??"-"})),l.input&&l.output&&a.default.createElement(a.default.Fragment,null,a.default.createElement(ke,{title:i.t("Input"),value:l.input}),a.default.createElement(ke,{title:i.t("Output"),value:l.output})),s&&a.default.createElement(ke,{title:i.t("Error"),value:s,titleClassName:"agent-obs-td-detail-io-title--error"})),a.default.createElement("div",{className:"agent-obs-td-detail-attrs-wrap"},a.default.createElement(Va,{attrs:u,io:l})))}function W({label:e,value:t}){return a.default.createElement("div",{className:"agent-obs-td-detail-metric"},a.default.createElement("div",{className:"agent-obs-td-detail-metric-label"},e),a.default.createElement("div",{className:"agent-obs-td-detail-metric-value",title:typeof t=="string"?t:void 0},t))}function H({label:e,value:t}){return a.default.createElement("div",{className:"agent-obs-td-detail-pill",title:`${e}: ${t}`},a.default.createElement("span",{className:"agent-obs-td-detail-pill-label"},e),a.default.createElement("span",{className:"agent-obs-td-detail-pill-value"},t))}function ue(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Y(e){return typeof e=="string"&&e.trim()?e.trim():void 0}function Ne(e,t=0){if(t>6||e===null||e===void 0)return null;if(Array.isArray(e)){for(const n of e){const r=Ne(n,t+1);if(r)return r}return null}if(!ue(e))return null;if(Array.isArray(e.messages)&&e.messages.length)return e.messages;for(const n of Object.keys(e)){const r=Ne(e[n],t+1);if(r)return r}return null}function Oa(e){if(typeof e=="string")return e.trim()||void 0;if(!ue(e))return;const t=Y(e.content)||Y(e.text);if(t)return t;const n=ue(e.data)?e.data:null;if(n){const l=Y(n.content)||Y(n.text);if(l)return l}const r=ue(e.kwargs)?e.kwargs:null;if(r){const l=Y(r.content)||Y(r.text);if(l)return l}}function $a(e){const t=Ze(e);if(t===null)return e;const n=Ne(t);if(n&&n.length)for(let r=n.length-1;r>=0;r-=1){const l=Oa(n[r]);if(l)return l}return e}function ke({title:e,value:t,titleClassName:n}){const r=$a(t);return a.default.createElement("div",{className:"agent-obs-td-detail-io"},a.default.createElement("div",{className:`agent-obs-td-detail-io-title ${n||""}`},e),a.default.createElement("pre",{className:"agent-obs-td-detail-io-content"},r))}var Ba=["llm","gen_ai","openai"];function Ka(e,t){return t.some(n=>e===n||e.startsWith(`${n}.`))}function Oe(e){return Ka(e,Ba)}function Va({attrs:e,io:t}){const n=h.useMemo(()=>{const s=[];return t.input&&s.push({Key:"input.value",Value:t.input}),t.output&&s.push({Key:"output.value",Value:t.output}),s},[t.input,t.output]),r=h.useMemo(()=>e.filter(s=>Oe(s.Key)),[e]),l=h.useMemo(()=>e.filter(s=>!Oe(s.Key)),[e]),u=r.length>0,o=h.useMemo(()=>[...n,...l],[n,l]);return u?a.default.createElement(Pa,{llmAttrs:r,otherAttrs:o}):a.default.createElement(v.Tabs,{tabs:[{id:"span",label:i.t("Span Attributes")}],activeId:"span"},a.default.createElement(v.TabPanel,{id:"span"},a.default.createElement(we,{attrs:o})))}function Pa({llmAttrs:e,otherAttrs:t}){const[n,r]=h.useState("llm"),l=[{id:"llm",label:i.t("LLM Attributes")},{id:"other",label:i.t("Other Attributes")}];return a.default.createElement(v.Tabs,{tabs:l,activeId:n,onActive:u=>r(u.id)},a.default.createElement(v.TabPanel,{id:"llm"},a.default.createElement(we,{attrs:e})),a.default.createElement(v.TabPanel,{id:"other"},a.default.createElement(we,{attrs:t})))}function we({attrs:e}){return e.length?a.default.createElement("div",{className:"agent-obs-td-detail-attrs"},e.map((t,n)=>a.default.createElement(ja,{key:`${t.Key}-${n}`,attr:t}))):a.default.createElement("div",{className:"agent-obs-td-detail-attrs-empty"},i.t("无属性"))}function ja({attr:e}){const[t,n]=h.useState(!1),[r,l]=h.useState(!1),u=h.useRef(null),o=h.useMemo(()=>Ze(e.Value),[e.Value]),s=e.Value||"-",c=o!==null;h.useLayoutEffect(()=>{if(t&&!c)return;const g=u.current;if(!g)return;const p=()=>{l(g.scrollWidth>g.clientWidth+1)};if(p(),typeof ResizeObserver>"u")return;const b=new ResizeObserver(p);return b.observe(g),()=>b.disconnect()},[s,t,c]);const m=c||r,d=t&&!c?"agent-obs-td-detail-attr-value--expanded":"",f=!t||c?s:void 0;return a.default.createElement("div",{className:"agent-obs-td-detail-attr"},a.default.createElement("div",{className:"agent-obs-td-detail-attr-main"},m?a.default.createElement("span",{className:`agent-obs-td-detail-attr-caret ${t?"agent-obs-td-detail-attr-caret--expanded":""}`,onClick:()=>n(g=>!g)},"▶"):a.default.createElement("span",{className:"agent-obs-td-detail-attr-caret agent-obs-td-detail-attr-caret--placeholder"}),a.default.createElement("span",{className:"agent-obs-td-detail-attr-key",title:e.Key},e.Key),a.default.createElement("span",{ref:u,className:`agent-obs-td-detail-attr-value ${d}`,title:f},s)),m&&t&&o!==null&&a.default.createElement("pre",{className:"agent-obs-td-detail-attr-json hljs",dangerouslySetInnerHTML:{__html:Ra(o)}}))}function qa(){return[{id:"tree",label:i.t("Tree")},{id:"timeline",label:i.t("Timeline")},{id:"graph",label:i.t("Graph")}]}function za({visible:e,onClose:t,traceId:n,fetchDetail:r,defaultTab:l="tree",width:u="80vw"}){const[o,s]=h.useState(l),[c,m]=h.useState(null),[d,f]=h.useState(!1),[g,p]=h.useState(null),[b,x]=h.useState(null);h.useEffect(()=>{if(!e||!n)return;let w=!1;return f(!0),p(null),m(null),x(null),r(n).then(T=>{var F;if(!w&&(m(T),(F=T==null?void 0:T.Spans)!=null&&F.length)){const S=T.Spans.reduce((V,z)=>V.StartTime<z.StartTime?V:z);x(S.SpanId)}}).catch(T=>{w||p((T==null?void 0:T.message)||i.t("加载失败"))}).finally(()=>{w||f(!1)}),()=>{w=!0}},[e,n,r]),h.useEffect(()=>{e||s(l)},[e,l]);const{roots:k,spanMap:N}=h.useMemo(()=>{var w;if(!((w=c==null?void 0:c.Spans)!=null&&w.length))return{roots:[],spanMap:new Map};const T=new Map;return c.Spans.forEach(F=>T.set(F.SpanId,F)),{roots:sa(c.Spans),spanMap:T}},[c]),M=b&&N.get(b)||null,A=h.useMemo(qa,[]),B=()=>d?a.default.createElement("div",{className:"agent-obs-td-drawer-loading"},a.default.createElement(v.LoadingTip,null)):g?a.default.createElement("div",{className:"agent-obs-td-drawer-error"},a.default.createElement(v.Alert,{type:"error"},g)):!c||!k.length?a.default.createElement("div",{className:"agent-obs-td-drawer-empty"},i.t("暂无数据")):o==="tree"?a.default.createElement(Na,{roots:k,activeId:b,onActiveChange:x}):o==="timeline"?a.default.createElement(Fa,{roots:k,activeId:b,onActiveChange:x}):a.default.createElement(Ia,{roots:k,activeId:b,onActiveChange:x});return a.default.createElement(v.Drawer,{className:"agent-obs-td-drawer",style:{width:u,height:"calc(100vh - 50px)",boxSizing:"border-box"},visible:e,placement:"right",size:"xl",title:null,disableCloseIcon:!0,onClose:t,outerClickClosable:!0,showMask:!0},a.default.createElement("div",{className:"agent-obs-td-drawer-body"},a.default.createElement("div",{className:"agent-obs-td-drawer-left"},a.default.createElement(v.Tabs,{className:"agent-obs-td-drawer-tabs",style:{height:40},variant:"card-outline",tabs:A,animated:!1,defaultActiveId:o,onActive:w=>s(w.id)}),a.default.createElement("div",{style:{paddingLeft:10},className:`agent-obs-td-drawer-view${o==="graph"?" agent-obs-td-drawer-view--graph":""}`},B())),a.default.createElement("div",{className:"agent-obs-td-drawer-right"},d||g?null:a.default.createElement(Da,{span:M,closeBtn:a.default.createElement("button",{type:"button",className:"agent-obs-td-drawer-close",onClick:t,"aria-label":i.t("关闭")},a.default.createElement(v.Icon,{type:"close",size:20}))}))))}var Ua={zh:{k_0st2kno:"Agent 成功率",k_1vdb2c7:"Agent 调用",k_00hhj74:"ConversionID",k_1opac2j:"Duration",k_03sgcnx:"ERROR",k_037uk0t:"Error",k_030ock3:"Input",k_1l3vgxz:"LLM Attributes",k_13bt4df:"LLM 调用",k_0xyt54m:"LLM 调用平均耗时",k_1tv2hle:"LLM 调用次数",k_02vcuqy:"Model",k_003hnfl:"OK",k_130omsu:"Other Attributes",k_0sl6zfe:"Output",k_151iedo:"Sequential",k_0yhbajy:"Parallel",k_11rfpuu:"Span Attributes",k_0yisj0j:"Tree",k_01oqkxq:"Timeline",k_02yf5ih:"Graph",k_1len88c:"TraceId (RunId)",k_0yj2fzd:"Span",k_0rakmad:"zoom in",k_0jw4x30:"zoom out",k_04p9rpk:"fit to view",k_03r8nh8:"AGENT",k_03jowco:"CHAIN",k_038v7ai:"EMBEDDING",k_0e3gmau:"EVALUATOR",k_0uolhdi:"GUARDRAIL",k_037699k:"LLM",k_1ga8ach:"PROMPT",k_1sjjr8z:"RERANKER",k_1babzmh:"RETRIEVER",k_0yjq7ul:"TOOL",k_1bemrrz:"MANUAL",k_1a804jx:"UNKNOWN",k_0j7hjgk:"SpanId",k_1dcdm1t:"SpanKind",k_1tkqbyj:"Timestamp",k_16wdblm:"Token 总消耗",k_1087kga:"Tokens in",k_0csyyqr:"Tokens out",k_1pugrjj:"Total Tokens",k_1tn04w9:"TraceId",k_00046ua:"万",k_00046tr:"个",k_00046qi:"亿",k_002r79h:"全部",k_17cbs21:"全部环境",k_002qzi3:"关闭",k_003lxmq:"刷新",k_0f8b3ws:"加载失败",k_003m8qf:"参数",k_0pa2i2z:"可根据 run-id 和 conversation-id 搜索",k_14tn4z1:"响应时间(秒)",k_002umy9:"失败",k_003pmuv:"工具",k_10z70rn:"平均 Token/LLM 调用",k_003qqk4:"开发",k_0by9bfw:"开始时间",k_003qe0a:"成功",k_1f3mps5:"数据延迟 < 10min",k_03cutj0:"无属性",k_03e5hqz:"日同比",k_13qhqgp:"暂无数据",k_0004138:"次",k_003nzwy:"状态",k_003s37t:"环境",k_003twt9:"生产",k_17bw8lt:"生产环境",k_0fwgfbc:"用量概览",k_0bycnor:"结束时间",k_0mvqrk5:"请选择左侧节点查看详情",k_0ld10w7:"请选择时间范围",k_1gd9xqm:"近12小时",k_0vd4sg9:"近15分钟",k_126g2v0:"近1小时",k_1gd9wh7:"近24小时",k_0vd6ff2:"近30分钟",k_126g2vv:"近6小时",k_03g9k26:"近3天",k_03g9k5m:"近7天",k_002uzrd:"预览",k_17c63b9:"预览环境"},en:{k_0st2kno:"Agent Success Rate",k_1vdb2c7:"Agent Calls",k_00hhj74:"Conversation ID",k_1opac2j:"Duration",k_03sgcnx:"ERROR",k_037uk0t:"Error",k_030ock3:"Input",k_1l3vgxz:"LLM Attributes",k_13bt4df:"LLM Calls",k_0xyt54m:"Average LLM Latency",k_1tv2hle:"LLM Calls",k_02vcuqy:"Model",k_003hnfl:"OK",k_130omsu:"Other Attributes",k_0sl6zfe:"Output",k_151iedo:"Sequential",k_0yhbajy:"Parallel",k_11rfpuu:"Span Attributes",k_0yisj0j:"Tree",k_01oqkxq:"Timeline",k_02yf5ih:"Graph",k_1len88c:"Trace ID (Run ID)",k_0yj2fzd:"Span",k_0rakmad:"Zoom in",k_0jw4x30:"Zoom out",k_04p9rpk:"Fit to view",k_03r8nh8:"AGENT",k_03jowco:"CHAIN",k_038v7ai:"EMBEDDING",k_0e3gmau:"EVALUATOR",k_0uolhdi:"GUARDRAIL",k_037699k:"LLM",k_1ga8ach:"PROMPT",k_1sjjr8z:"RERANKER",k_1babzmh:"RETRIEVER",k_0yjq7ul:"TOOL",k_1bemrrz:"MANUAL",k_1a804jx:"UNKNOWN",k_0j7hjgk:"Span ID",k_1dcdm1t:"Span Kind",k_1tkqbyj:"Timestamp",k_16wdblm:"Total Token Usage",k_1087kga:"Tokens In",k_0csyyqr:"Tokens Out",k_1pugrjj:"Total Tokens",k_1tn04w9:"Trace ID",k_00046ua:"Ten Thousand",k_00046tr:"items",k_00046qi:"Billion",k_002r79h:"All",k_17cbs21:"All Environments",k_002qzi3:"Close",k_003lxmq:"Refresh",k_0f8b3ws:"Load Failed",k_003m8qf:"Parameters",k_0pa2i2z:"Search by run-id or conversation-id",k_14tn4z1:"Response Time (s)",k_002umy9:"Failed",k_003pmuv:"Tool",k_10z70rn:"Average Tokens per LLM Call",k_003qqk4:"Development",k_0by9bfw:"Start Time",k_003qe0a:"Success",k_1f3mps5:"Data latency < 10 min",k_03cutj0:"No attributes",k_03e5hqz:"Day-over-day",k_13qhqgp:"No Data",k_0004138:"times",k_003nzwy:"Status",k_003s37t:"Environment",k_003twt9:"Production",k_17bw8lt:"Production Environment",k_0fwgfbc:"Usage Overview",k_0bycnor:"End Time",k_0mvqrk5:"Select a node on the left to view details",k_0ld10w7:"Select a time range",k_1gd9xqm:"Last 12 Hours",k_0vd4sg9:"Last 15 Minutes",k_126g2v0:"Last 1 Hour",k_1gd9wh7:"Last 24 Hours",k_0vd6ff2:"Last 30 Minutes",k_126g2vv:"Last 6 Hours",k_03g9k26:"Last 3 Days",k_03g9k5m:"Last 7 Days",k_002uzrd:"Preview",k_17c63b9:"Preview Environment"}},Xa=$t,Qa=Zt,Za=za,Ja=Ua;export{Xa as A,Za as T,Ja as a,Qa as b};
@@ -0,0 +1 @@
1
+ .agent-obs-loading{position:relative;width:100%}.agent-obs-loading-content{width:100%}.agent-obs-loading-mask{position:absolute;top:0;left:0;right:0;bottom:0;background-color:#fff9;transition:opacity .3s ease-in;z-index:10;display:flex;justify-content:center;align-items:center}.agent-obs-loading-mask--hidden{opacity:0;pointer-events:none}.agent-obs-empty{width:100%;height:100%;position:relative}.agent-obs-empty-bg{height:100%;padding-top:3px;display:flex;justify-content:center;align-items:center}.agent-obs-empty-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background-color:#fff;padding:4px;font-size:12px;color:#888;line-height:1.4}.agent-obs-filter{margin-bottom:10px}.agent-obs-filter-body{position:relative}.agent-obs-filter-tip{position:absolute;right:20px;top:30px;transform:translateY(-50%)}@keyframes agent-obs-filter-rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.agent-obs-filter-refresh:hover{background-color:#fff!important}.agent-obs-filter-refresh--rotating{animation:agent-obs-filter-rotate 1s linear infinite}.agent-obs-traces-filter{margin-bottom:20px}.agent-obs-traces-filter .filter-actions{display:inline-flex;align-items:center;gap:8px;flex-wrap:nowrap}.agent-obs-traces-filter .log-filter-search{width:280px!important}.agent-obs-traces-filter .quick-date-picker{display:inline-flex;align-items:center}.agent-obs-traces-filter .quick-date-picker .time-range-picker [class*=-datetimepicker__input][class*=-datepicker__input--range]{width:315px}.agent-obs-overview{margin-bottom:10px;min-height:160px}.agent-obs-overview-title{font-size:14px;font-weight:600;color:#000;margin-bottom:16px}.agent-obs-overview-grid{position:relative;display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px 0}.agent-obs-overview-grid--loading .agent-obs-overview-cell{visibility:hidden}.agent-obs-overview-loading-mask{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center}.agent-obs-overview-cell{position:relative;display:flex;flex-direction:column;gap:8px;padding:0 24px}.agent-obs-overview-cell:after{content:"";position:absolute;right:0;top:8px;bottom:8px;width:1px;background-color:#e5e5e5}.agent-obs-overview-cell:last-child:after{display:none}.agent-obs-overview-cell:first-child{padding-left:0}.agent-obs-overview-label{font-size:14px;color:#000;line-height:1.4}.agent-obs-overview-value-row{display:flex;align-items:baseline}.agent-obs-overview-value{font-size:24px;font-weight:500;color:#000;line-height:1.2}.agent-obs-overview-unit{font-size:14px;color:#888;margin-left:2px}.agent-obs-overview-delta{font-size:12px;line-height:1.4}.agent-obs-overview-delta-label{color:#888;margin-right:6px}.agent-obs-overview-delta-value--up{color:#16a34a}.agent-obs-overview-delta-value--down{color:#e54545}.agent-obs-overview-delta-value--flat{color:#888}.agent-obs-card-body{padding:24px}.agent-obs-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px}.agent-obs-card-titlebox{display:flex;flex-direction:column;gap:6px}.agent-obs-card-title{font-size:14px;font-weight:600;color:#000;line-height:1.4}.agent-obs-card-unit{font-size:12px;color:#888;line-height:1.4}.agent-obs-card-jump{cursor:pointer;display:flex;align-items:center;color:#000}.agent-obs-card-link{text-decoration:none;color:inherit;display:block}.agent-obs-card-chart{margin-top:8px}.agent-obs-card-empty{width:100%;display:flex;justify-content:center;align-items:center}.agent-obs-traces-wrapper{background-color:#fff;padding:16px 20px}.agent-obs-traces-table [class*=-table__header] [class*=-dropdown-filter]{display:flex;align-items:center;padding:0}.agent-obs-traces-table [class*=-table__header] [class*=-dropdown-filter] .ruyi-icon.ruyi-icon-filter{position:static;margin-left:4px;flex:0 0 auto}.agent-obs-traces-trace-id{color:var(--tea-color-text-brand-default, #006eff);cursor:pointer;text-decoration:none}.agent-obs-traces-trace-id:hover{color:var(--tea-color-text-brand-hover, #006eff);text-decoration:none}.agent-obs-traces-trace-id:visited{color:var(--tea-color-text-brand-default, #006eff)}.agent-obs-traces-env--production{background-color:#e8f5ec;color:#16a34a}.agent-obs-traces-env--preview{background-color:#e8f1ff;color:#006eff}.agent-obs-traces-status--success{color:var(--tea-color-text-success-default, #16a34a)}.agent-obs-traces-status--failed,.agent-obs-traces-status--timeout{color:var(--tea-color-text-error-default, #e54545)}.agent-obs-traces-status--running{color:var(--tea-color-text-weak, #888)}.agent-obs-td-drawer [class$=-drawer__body-inner],.agent-obs-td-drawer [class*="-drawer__body-inner "]{height:100%!important}.agent-obs-td-drawer>[class$=-drawer__body],.agent-obs-td-drawer>[class*="-drawer__body "]{padding-top:0!important;padding-left:0!important;padding-right:0!important}.agent-obs-td-drawer [class$=-tabs__tabitem],.agent-obs-td-drawer [class*="-tabs__tabitem "]{margin-right:0!important;line-height:30px!important}.agent-obs-td-drawer-tabs{margin-bottom:12px}.agent-obs-td-drawer-close{flex:0 0 auto;border:none;background:transparent;cursor:pointer;color:#888;padding:8px;display:inline-flex;align-items:center;justify-content:center;border-radius:4px;transition:background .15s}.agent-obs-td-drawer-close:hover{background:#f0f2f5;color:#000}.agent-obs-td-drawer-body{display:flex;height:100%;min-height:0}.agent-obs-td-drawer-left{width:480px;border-right:1px solid #e5e5e5;display:flex;flex-direction:column;min-height:0;overflow:hidden;height:100%}.agent-obs-td-drawer-view{flex:1 1 auto;min-height:0;overflow:auto}.agent-obs-td-drawer-view--graph{overflow:hidden}.agent-obs-td-drawer-right{flex:1;height:100%;overflow:auto;padding:20px 24px;background:#fff;position:relative}.agent-obs-td-drawer-loading,.agent-obs-td-drawer-error,.agent-obs-td-drawer-empty{padding:60px 16px;display:flex;justify-content:center;align-items:center;color:#888;font-size:13px;width:100%}.agent-obs-td-tree{display:flex;flex-direction:column;font-size:13px;color:#000}.agent-obs-td-tree-row{display:flex;align-items:center;height:32px;box-sizing:border-box;padding:0 8px 0 0;cursor:pointer;border-radius:4px;position:relative}.agent-obs-td-tree-row:hover .agent-obs-td-tree-row-content{background:#f0f2f5}.agent-obs-td-tree-row--active .agent-obs-td-tree-row-content{background:#eef3ff}.agent-obs-td-tree-row--active .agent-obs-td-tree-icon{color:#1c66e5}.agent-obs-td-tree-row--active .agent-obs-td-tree-name,.agent-obs-td-tree-row--active .agent-obs-td-tree-dur{color:#006eff}.agent-obs-td-tree-row--error .agent-obs-td-tree-name{color:#e54545}.agent-obs-td-tree-row-content{flex:1 1 auto;min-width:0;display:flex;align-items:center;height:100%;border-radius:4px}.agent-obs-td-tree-indent{position:relative;align-self:stretch;display:block}.agent-obs-td-tree-lines{display:block}.agent-obs-td-tree-control{position:absolute;width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center}.agent-obs-td-tree-expander{width:16px;height:16px;border-radius:50%;background:#eceae7;color:#666;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .15s}.agent-obs-td-tree-expander:hover{background:#e0ddda}.agent-obs-td-tree-expander:not(.agent-obs-td-tree-expander--expanded){transform:rotate(-90deg)}.agent-obs-td-tree-leaf-dot{width:6px;height:6px;border-radius:50%;background:#a8a29e;display:inline-block}.agent-obs-td-tree-icon{flex:0 0 auto;display:inline-flex;color:#333;margin-left:6px;margin-right:8px}.agent-obs-td-tree-name{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.agent-obs-td-tree-dur{flex:0 0 auto;font-size:12px;color:#a8a29e;margin-left:auto;padding-left:12px;padding-right:8px;font-variant-numeric:tabular-nums}.agent-obs-td-timeline-wrapper{display:flex;flex-direction:column;font-size:13px}.agent-obs-td-timeline-axis{position:sticky;top:0;z-index:2;background:#fff;display:flex;align-items:center;gap:8px;border-bottom:1px solid #e5e5e5;padding:6px 8px;font-size:12px;color:#a8a29e}.agent-obs-td-timeline-axis-label{flex:0 0 200px}.agent-obs-td-timeline-axis-track{flex:1 1 auto;position:relative;display:flex;font-size:11px}.agent-obs-td-timeline-axis-dur{flex:0 0 70px;text-align:right}.agent-obs-td-timeline-axis-tick{flex:1 1 0}.agent-obs-td-timeline-axis-tick--start{text-align:left}.agent-obs-td-timeline-axis-tick--mid{text-align:center}.agent-obs-td-timeline-axis-tick--end{text-align:right}.agent-obs-td-timeline-row{display:flex;align-items:center;gap:8px;padding:6px 8px;cursor:pointer;border-radius:4px}.agent-obs-td-timeline-row:hover{background:#f0f2f5}.agent-obs-td-timeline-row--active{background:#eef3ff}.agent-obs-td-timeline-label{flex:0 0 200px;display:flex;align-items:center;gap:6px;overflow:hidden}.agent-obs-td-timeline-label-icon{flex:0 0 auto;display:inline-flex;color:#333}.agent-obs-td-timeline-label-op{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.agent-obs-td-timeline-track{flex:1 1 auto;position:relative;height:16px}.agent-obs-td-timeline-track-line{position:absolute;left:0;right:0;top:50%;height:1px;background:#e9ecf1;transform:translateY(-50%)}.agent-obs-td-timeline-bar{position:absolute;top:50%;height:10px;transform:translateY(-50%);border-radius:2px;min-width:2px}.agent-obs-td-timeline-dur{flex:0 0 70px;font-size:12px;color:#a8a29e;text-align:right;font-variant-numeric:tabular-nums}.agent-obs-td-graph{position:relative;width:100%;height:100%;overflow:hidden;background:#fff;cursor:grab;-webkit-user-select:none;user-select:none}.agent-obs-td-graph--panning{cursor:grabbing}.agent-obs-td-graph-svg{display:block;width:100%;height:100%}.agent-obs-td-graph-toolbar{position:absolute;top:12px;right:16px;display:inline-flex;align-items:center;height:36px;padding:0 6px;background:#fff;border:1px solid #e5e5e5;border-radius:8px;box-shadow:0 2px 8px #0000000f;cursor:default;-webkit-user-select:none;user-select:none;z-index:2}.agent-obs-td-graph-toolbar-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:transparent;border:none;border-radius:4px;color:#000;font-size:18px;line-height:1;cursor:pointer;transition:background-color .15s}.agent-obs-td-graph-toolbar-btn:hover:not(:disabled){background:#f3f4f6}.agent-obs-td-graph-toolbar-btn:disabled{color:#cbd5e1;cursor:not-allowed}.agent-obs-td-graph-toolbar-percent{min-width:44px;padding:0 4px;color:#000;font-size:13px;font-variant-numeric:tabular-nums;text-align:center}.agent-obs-td-graph-toolbar-divider{width:1px;height:18px;margin:0 4px;background:#e5e5e5}.agent-obs-td-graph-toolbar-fit{color:#006eff}.agent-obs-td-graph-node{cursor:pointer}.agent-obs-td-graph-node-box{fill:#fff;stroke-width:2}.agent-obs-td-graph-node--AGENT .agent-obs-td-graph-node-box{stroke:#4e5ff2;fill:#eef0ff}.agent-obs-td-graph-node--CHAIN .agent-obs-td-graph-node-box,.agent-obs-td-graph-node--TOOL .agent-obs-td-graph-node-box{stroke:#16a34a;fill:#e9f6ef}.agent-obs-td-graph-node--LLM .agent-obs-td-graph-node-box{stroke:#7b61ff;fill:#f1edff}.agent-obs-td-graph-node--RETRIEVER .agent-obs-td-graph-node-box,.agent-obs-td-graph-node--RERANKER .agent-obs-td-graph-node-box{stroke:#0ea5e9;fill:#e6f4fb}.agent-obs-td-graph-node--EMBEDDING .agent-obs-td-graph-node-box{stroke:#f59e0b;fill:#fdf3e1}.agent-obs-td-graph-node--EVALUATOR .agent-obs-td-graph-node-box,.agent-obs-td-graph-node--GUARDRAIL .agent-obs-td-graph-node-box{stroke:#e54545;fill:#fde8e8}.agent-obs-td-graph-node--PROMPT .agent-obs-td-graph-node-box{stroke:#8b5cf6;fill:#f1edff}.agent-obs-td-graph-node--UNKNOWN .agent-obs-td-graph-node-box{stroke:#a8a29e;fill:#f6f7f9}.agent-obs-td-graph-node--error .agent-obs-td-graph-node-box{stroke:#e54545!important}.agent-obs-td-graph-node--active .agent-obs-td-graph-node-box{stroke-width:3}.agent-obs-td-graph-node-op{font-size:13px;font-weight:500;fill:#000}.agent-obs-td-graph-node-dur{font-size:12px;fill:#a8a29e}.agent-obs-td-graph-node--LLM .agent-obs-td-graph-node-op{fill:#7b61ff}.agent-obs-td-graph-edge{stroke:#a8a29e;stroke-width:1.5;fill:none}.agent-obs-td-graph-edge--dashed{stroke-dasharray:4 4;stroke:#7b61ff;opacity:.7}.agent-obs-td-graph-edge-label{font-size:11px;fill:#a8a29e}.agent-obs-td-detail{font-size:13px;color:#000}.agent-obs-td-detail-empty{padding:40px 16px;color:#888;font-size:13px;text-align:center}.agent-obs-td-detail-header{display:flex;align-items:center;gap:8px;margin-bottom:14px}.agent-obs-td-detail-header-icon{flex:0 0 auto;display:inline-flex;color:#7b61ff}.agent-obs-td-detail-header-title{flex:1 1 auto;font-size:16px;font-weight:600;color:#000;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.agent-obs-td-detail-badge{flex:0 0 auto;padding:2px 10px;border-radius:10px;font-size:12px;font-weight:500}.agent-obs-td-detail-badge--ok{background:#d7f7e3;color:#16a34a}.agent-obs-td-detail-badge--error{background:#fdd7d7;color:#e54545}.agent-obs-td-detail-metrics{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-bottom:14px}.agent-obs-td-detail-metric{background:#f5f6f8;border-radius:4px;padding:10px 12px;min-width:0}.agent-obs-td-detail-metric-label{font-size:12px;color:#888;line-height:1.4;margin-bottom:2px}.agent-obs-td-detail-metric-value{font-size:14px;font-weight:500;color:#000;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.agent-obs-td-detail-info{background-color:#f3f4f7;padding:15px 30px;display:flex;gap:20px;flex-direction:column;margin:0 -24px}.agent-obs-td-detail-pills{display:flex;flex-wrap:wrap;gap:16px}.agent-obs-td-detail-pill{display:inline-flex;align-items:center;gap:8px;background:#d6d3d1;border-radius:4px;padding:4px 10px;font-size:12px;max-width:100%;overflow:hidden}.agent-obs-td-detail-pill-label{color:#888;flex:0 0 auto}.agent-obs-td-detail-pill-value{color:#000;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums}.agent-obs-td-detail-io{padding:12px 14px;background-color:#fff}.agent-obs-td-detail-io-title{font-size:12px;color:#888;margin-bottom:8px}.agent-obs-td-detail-io-title--error{color:#e54545}.agent-obs-td-detail-io-content{font-size:13px;color:#000;white-space:pre-wrap;word-break:break-word;max-height:180px;overflow:auto;font-family:Menlo,Consolas,Courier New,monospace;line-height:1.5;margin:0}.agent-obs-td-detail-io-empty{color:#888;font-family:inherit}.agent-obs-td-detail-attrs-wrap{margin-top:16px;padding-top:8px}.agent-obs-td-detail-attrs{display:flex;flex-direction:column}.agent-obs-td-detail-attrs-empty{padding:16px;font-size:12px;color:#888}.agent-obs-td-detail-attr{border-bottom:1px solid #e5e5e5;padding:8px 0}.agent-obs-td-detail-attr:last-child{border-bottom:none}.agent-obs-td-detail-attr-main{display:flex;align-items:flex-start;gap:8px;font-size:12px;font-family:Menlo,Consolas,Courier New,monospace}.agent-obs-td-detail-attr-caret{flex:0 0 14px;width:14px;height:14px;display:inline-flex;align-items:center;justify-content:center;color:#a8a29e;font-size:8px;cursor:pointer;transition:transform .15s;margin-top:2px}.agent-obs-td-detail-attr-caret--placeholder{cursor:default;visibility:hidden}.agent-obs-td-detail-attr-caret--expanded{transform:rotate(90deg)}.agent-obs-td-detail-attr-key{flex:0 0 280px;max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#000}.agent-obs-td-detail-attr-value{flex:1 1 auto;min-width:0;color:#000;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.agent-obs-td-detail-attr-value--expanded{white-space:pre-wrap;word-break:break-word;overflow:visible}.agent-obs-td-detail-attr-json{margin:8px 0 0 22px;padding:10px 12px;background:#f5f6f8;border-radius:4px;font-size:12px;color:#000;font-family:Menlo,Consolas,Courier New,monospace;white-space:pre;overflow:auto;max-height:300px}.hljs{background:transparent}.hljs .hljs-attr{color:#0550ae}.hljs .hljs-string{color:#0a7b30}.hljs .hljs-number,.hljs .hljs-literal{color:#cf222e}.hljs .hljs-punctuation{color:#57606a}
@@ -1 +1 @@
1
- import{r as c,j as n,R as y}from"./react-hnpCyKql.js";import{i as I,g as E,L as f,N as m,M as h}from"./tea-Slf_ajmf.js";import{a as w,T as b,A as O,b as M}from"./agent-obs-Dvi4IpEy.js";import{c as F}from"./react-dom-ZzBHVjtL.js";import"./moment-BYRO94Ou.js";import"./highlight-ClXAL37H.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))r(o);new MutationObserver(o=>{for(const i of o)if(i.type==="childList")for(const l of i.addedNodes)l.tagName==="LINK"&&l.rel==="modulepreload"&&r(l)}).observe(document,{childList:!0,subtree:!0});function s(o){const i={};return o.integrity&&(i.integrity=o.integrity),o.referrerPolicy&&(i.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?i.credentials="include":o.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function r(o){if(o.ep)return;o.ep=!0;const i=s(o);fetch(o.href,i)}})();const x="edgeone_studio_lang",T=["zh","en"];function P(){try{const t=window.localStorage.getItem(x);if(t&&T.includes(t))return t}catch{}return(navigator.language||"").toLowerCase().startsWith("zh")?"zh":"en"}const p=P();window.VERSION=p;const _=w[p]||w.zh||{};I.init({translation:_});const C=new Set;function A(e){return C.add(e),()=>C.delete(e)}function k(e){if(!T.includes(e)||e===S)return;const t=E();if(!t){try{window.localStorage.setItem(x,e)}catch{}window.location.reload();return}const s=w[e]||{};t.addResourceBundle(e,"translation",s,!0,!0),t.changeLanguage(e);try{window.localStorage.setItem(x,e)}catch{}S=e,C.forEach(r=>r(e))}let S=p;window.__EDGEONE_STUDIO_SWITCH_LANG__=k;const N=["/agent-metrics","/agent-traces","/agent-studio"],B="/agent-metrics";function v(){try{const e=window.location.pathname;for(const t of N)if(e===t||e.startsWith(`${t}/`))return t}catch{}return B}function j(){return`${v()}/v1`}async function z(e){const t=new URLSearchParams;t.set("limit",String(e.pageSize??10)),t.set("offset",String(((e.pageIndex??1)-1)*(e.pageSize??10))),e.keyword&&t.set("keyword",e.keyword),e.statuses&&e.statuses.length===1&&t.set("statusGroup",e.statuses[0]),e.timeRange&&t.set("timeRange",e.timeRange),e.customRange&&(t.set("startedAtMin",String(e.customRange[0].valueOf())),t.set("startedAtMax",String(e.customRange[1].valueOf())));const s=await fetch(`${j()}/traces.list?${t.toString()}`);if(!s.ok)throw new Error(`fetch traces failed: ${s.status}`);const r=await s.json();return{rows:r.Traces||[],pagination:{pageIndex:e.pageIndex??1,pageSize:e.pageSize??10,total:r.Total??0}}}const L="agent.request:";function U(e){var t;return(t=e==null?void 0:e.Spans)!=null&&t.length?{...e,Spans:e.Spans.map(s=>({...s,...typeof s.OperationName=="string"&&s.OperationName.startsWith(L)?{OperationName:s.OperationName.slice(L.length)}:{}}))}:e}async function D(e){const t=await fetch(`${j()}/traces/${encodeURIComponent(e)}.detail`);if(!t.ok)throw new Error(`fetch trace detail failed: ${t.status}`);const s=await t.json();return U(s)}async function W(e={}){const t=new URLSearchParams;e.timeRange&&t.set("timeRange",e.timeRange),e.startTimeMs&&t.set("startedAtMin",String(e.startTimeMs)),e.endTimeMs&&t.set("startedAtMax",String(e.endTimeMs));const s=await fetch(`${j()}/metrics?${t.toString()}`);if(!s.ok)throw new Error(`fetch metrics failed: ${s.status}`);return s.json()}const $={overview:"/agent-metrics",traces:"/agent-traces"},H={"/agent-metrics":"overview","/agent-traces":"traces","/agent-studio":"overview"},G={environment:"all",timeRange:"24hour",customRange:null,statuses:[],keyword:"",pageIndex:1,pageSize:10};function R(){try{return H[v()]??"overview"}catch{return"overview"}}function V(e){try{const t=$[e];if(v()===t)return;const r=new URL(window.location.href);r.pathname=t,window.history.pushState({tab:e},"",r.toString())}catch{}}function X({initialLang:e}){const[t,s]=c.useState(()=>R()),[r,o]=c.useState(e);c.useEffect(()=>A(o),[]);const[i,l]=c.useState(!1),[a,d]=c.useState(null),g=c.useCallback(u=>{s(u),V(u)},[]);return c.useEffect(()=>{const u=()=>s(R());return window.addEventListener("popstate",u),()=>window.removeEventListener("popstate",u)},[]),n.jsxs(f,{className:"agent-studio-app",children:[n.jsx(m,{left:n.jsx(m.Item,{type:"logo",children:n.jsx(K,{})}),right:n.jsx(m.Item,{type:"default",children:n.jsx(Z,{current:r})})}),n.jsxs(f.Body,{children:[n.jsx(f.Sider,{children:n.jsx(h,{theme:"dark",children:n.jsxs(h.Group,{title:"Observability",children:[n.jsx(h.Item,{title:"Agent Metrics",icon:n.jsx(Q,{}),selected:t==="overview",onClick:()=>g("overview")}),n.jsx(h.Item,{title:"Agent Traces",icon:n.jsx(Y,{}),selected:t==="traces",onClick:()=>g("traces")})]})})}),n.jsxs(f.Content,{children:[t==="overview"&&n.jsx(J,{}),t==="traces"&&n.jsx(q,{onRowClick:u=>{d(u.TraceId),l(!0)}})]},r)]}),n.jsx(b,{visible:i,traceId:a,fetchDetail:u=>D(u),onClose:()=>l(!1)})]})}function K(){return n.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6},children:[n.jsxs("svg",{width:"28",height:"28",viewBox:"0 0 28 28",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-hidden":!0,children:[n.jsx("path",{d:"M27.7784 16.4944C27.924 15.6849 28 14.8513 28 14C28 13.2803 27.9457 12.5734 27.841 11.8829C27.8005 11.6162 27.5679 11.424 27.2981 11.424H18.2935C17.999 11.424 17.7846 11.1446 17.8608 10.86L18.9267 6.88207C19.0054 6.58829 19.2716 6.384 19.5758 6.384H24.9239C25.2793 6.384 25.4903 5.99169 25.2795 5.70554C22.7306 2.24513 18.6275 0 14 0C6.26801 0 0 6.26801 0 14C0 17.5202 1.29921 20.7369 3.44429 23.1969C3.67271 23.4588 4.0922 23.3504 4.18175 23.0146L7.27934 11.3986C7.33622 11.1853 7.17545 10.976 6.95468 10.976H4.26421C3.96986 10.976 3.75549 10.697 3.83134 10.4126L4.70485 7.13693C4.77038 6.89118 4.99334 6.72137 5.24762 6.7161C8.17874 6.65542 11.0752 5.88815 13.647 4.4841C13.9129 4.33898 14.2342 4.58196 14.1561 4.87457L8.45823 26.2418C8.37314 26.5608 8.53186 26.8961 8.83881 27.0179C10.4359 27.6517 12.1773 28 14 28C18.4191 28 22.3599 25.9526 24.9257 22.7546C25.153 22.4713 24.9444 22.064 24.5811 22.064H15.4425C15.148 22.064 14.9336 21.7846 15.0098 21.5L16.0757 17.5221C16.1544 17.2283 16.4207 17.024 16.7248 17.024H27.1324C27.4479 17.024 27.7226 16.8049 27.7784 16.4944Z",fill:"url(#edgeone-logo-grad)"}),n.jsx("defs",{children:n.jsxs("linearGradient",{id:"edgeone-logo-grad",x1:"4.816",y1:"2.352",x2:"22.288",y2:"23.184",gradientUnits:"userSpaceOnUse",children:[n.jsx("stop",{stopColor:"#00DDFF"}),n.jsx("stop",{offset:"1",stopColor:"#0C60F2"})]})})]}),n.jsx("span",{style:{fontFamily:"Oxygen, system-ui, -apple-system, sans-serif",fontSize:18,fontWeight:700,color:"#FFFFFF",letterSpacing:"-0.18px",lineHeight:1.33},children:"EdgeOne Makers"})]})}function Q(){return n.jsxs("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",children:[n.jsx("path",{d:"M2.5 2.5V15.8333C2.5 16.2754 2.67559 16.6993 2.98816 17.0118C3.30072 17.3244 3.72464 17.5 4.16667 17.5H17.5",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"}),n.jsx("path",{d:"M15 14.1667V7.5",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"}),n.jsx("path",{d:"M10.8335 14.1667V4.16675",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"}),n.jsx("path",{d:"M6.6665 14.1667V11.6667",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})]})}function Y(){return n.jsxs("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",children:[n.jsx("path",{d:"M2.06202 12.3481C1.97868 12.1236 1.97868 11.8766 2.06202 11.6521C2.87372 9.68397 4.25153 8.00116 6.02079 6.81701C7.79004 5.63287 9.87106 5.00073 12 5.00073C14.129 5.00073 16.21 5.63287 17.9792 6.81701C19.7485 8.00116 21.1263 9.68397 21.938 11.6521C22.0214 11.8766 22.0214 12.1236 21.938 12.3481C21.1263 14.3163 19.7485 15.9991 17.9792 17.1832C16.21 18.3674 14.129 18.9995 12 18.9995C9.87106 18.9995 7.79004 18.3674 6.02079 17.1832C4.25153 15.9991 2.87372 14.3163 2.06202 12.3481Z",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"}),n.jsx("circle",{cx:"12",cy:"12",r:"3",stroke:"currentColor",strokeWidth:"2"})]})}function Z(e){const t=s=>{s!==e.current&&k(s)};return n.jsx("div",{style:{display:"inline-flex",gap:2,padding:2,background:"rgba(255, 255, 255, 0.08)",borderRadius:6,fontSize:12},children:["zh","en"].map(s=>{const r=s===e.current;return n.jsx("button",{onClick:()=>t(s),style:{border:"none",padding:"3px 12px",borderRadius:4,cursor:r?"default":"pointer",background:r?"#FFFFFF":"transparent",color:r?"#000000":"rgba(255, 255, 255, 0.55)",fontWeight:r?600:400,transition:"background-color 0.15s ease, color 0.15s ease"},children:s==="zh"?"中":"EN"},s)})})}function J(){const[e,t]=c.useState([]),[s,r]=c.useState([]),[o,i]=c.useState(!0),l=c.useCallback(a=>{i(!0);const d=a==null?void 0:a.customRange;return W({environment:a==null?void 0:a.environment,timeRange:d?null:a==null?void 0:a.timeRange,startTimeMs:d?d[0].valueOf():null,endTimeMs:d?d[1].valueOf():null}).then(g=>{t(g.overview),r(g.charts)}).finally(()=>i(!1))},[]);return c.useEffect(()=>{l()},[l]),n.jsxs(n.Fragment,{children:[n.jsx(f.Content.Header,{showBackButton:!1,title:"Metrics"}),n.jsx(f.Content.Body,{full:!0,children:n.jsx("div",{style:{padding:16},children:n.jsx(O,{overview:e,charts:s,loading:o,onFilterChange:a=>{l(a)},onRefresh:l})})})]})}function q(e){const[t,s]=c.useState([]),[r,o]=c.useState({pageIndex:1,pageSize:10,total:0}),[i,l]=c.useState(!0),a=c.useCallback(d=>(l(!0),z(d).then(g=>{s(g.rows),o(g.pagination)}).finally(()=>l(!1))),[]);return c.useEffect(()=>{a(G)},[a]),n.jsxs(n.Fragment,{children:[n.jsx(f.Content.Header,{showBackButton:!1,title:"Traces"}),n.jsx(f.Content.Body,{full:!0,children:n.jsx("div",{style:{padding:16},children:n.jsx(M,{rows:t,pagination:r,loading:i,onQueryChange:d=>{a(d)},onRefresh:a,onRowClick:e.onRowClick})})})]})}F.createRoot(document.getElementById("root")).render(n.jsx(y.StrictMode,{children:n.jsx(X,{initialLang:p})}));
1
+ import{r as c,j as n,R as y}from"./react-hnpCyKql.js";import{i as I,g as E,L as f,N as m,M as h}from"./tea-Slf_ajmf.js";import{a as w,T as b,A as O,b as M}from"./agent-obs-BpTIot8x.js";import{c as F}from"./react-dom-ZzBHVjtL.js";import"./moment-BYRO94Ou.js";import"./highlight-ClXAL37H.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))r(o);new MutationObserver(o=>{for(const i of o)if(i.type==="childList")for(const l of i.addedNodes)l.tagName==="LINK"&&l.rel==="modulepreload"&&r(l)}).observe(document,{childList:!0,subtree:!0});function s(o){const i={};return o.integrity&&(i.integrity=o.integrity),o.referrerPolicy&&(i.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?i.credentials="include":o.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function r(o){if(o.ep)return;o.ep=!0;const i=s(o);fetch(o.href,i)}})();const x="edgeone_studio_lang",T=["zh","en"];function P(){try{const t=window.localStorage.getItem(x);if(t&&T.includes(t))return t}catch{}return(navigator.language||"").toLowerCase().startsWith("zh")?"zh":"en"}const p=P();window.VERSION=p;const _=w[p]||w.zh||{};I.init({translation:_});const C=new Set;function A(e){return C.add(e),()=>C.delete(e)}function k(e){if(!T.includes(e)||e===S)return;const t=E();if(!t){try{window.localStorage.setItem(x,e)}catch{}window.location.reload();return}const s=w[e]||{};t.addResourceBundle(e,"translation",s,!0,!0),t.changeLanguage(e);try{window.localStorage.setItem(x,e)}catch{}S=e,C.forEach(r=>r(e))}let S=p;window.__EDGEONE_STUDIO_SWITCH_LANG__=k;const N=["/agent-metrics","/agent-traces","/agent-studio"],B="/agent-metrics";function v(){try{const e=window.location.pathname;for(const t of N)if(e===t||e.startsWith(`${t}/`))return t}catch{}return B}function j(){return`${v()}/v1`}async function z(e){const t=new URLSearchParams;t.set("limit",String(e.pageSize??10)),t.set("offset",String(((e.pageIndex??1)-1)*(e.pageSize??10))),e.keyword&&t.set("keyword",e.keyword),e.statuses&&e.statuses.length===1&&t.set("statusGroup",e.statuses[0]),e.timeRange&&t.set("timeRange",e.timeRange),e.customRange&&(t.set("startedAtMin",String(e.customRange[0].valueOf())),t.set("startedAtMax",String(e.customRange[1].valueOf())));const s=await fetch(`${j()}/traces.list?${t.toString()}`);if(!s.ok)throw new Error(`fetch traces failed: ${s.status}`);const r=await s.json();return{rows:r.Traces||[],pagination:{pageIndex:e.pageIndex??1,pageSize:e.pageSize??10,total:r.Total??0}}}const L="agent.request:";function U(e){var t;return(t=e==null?void 0:e.Spans)!=null&&t.length?{...e,Spans:e.Spans.map(s=>({...s,...typeof s.OperationName=="string"&&s.OperationName.startsWith(L)?{OperationName:s.OperationName.slice(L.length)}:{}}))}:e}async function D(e){const t=await fetch(`${j()}/traces/${encodeURIComponent(e)}.detail`);if(!t.ok)throw new Error(`fetch trace detail failed: ${t.status}`);const s=await t.json();return U(s)}async function W(e={}){const t=new URLSearchParams;e.timeRange&&t.set("timeRange",e.timeRange),e.startTimeMs&&t.set("startedAtMin",String(e.startTimeMs)),e.endTimeMs&&t.set("startedAtMax",String(e.endTimeMs));const s=await fetch(`${j()}/metrics?${t.toString()}`);if(!s.ok)throw new Error(`fetch metrics failed: ${s.status}`);return s.json()}const $={overview:"/agent-metrics",traces:"/agent-traces"},H={"/agent-metrics":"overview","/agent-traces":"traces","/agent-studio":"overview"},G={environment:"all",timeRange:"24hour",customRange:null,statuses:[],keyword:"",pageIndex:1,pageSize:10};function R(){try{return H[v()]??"overview"}catch{return"overview"}}function V(e){try{const t=$[e];if(v()===t)return;const r=new URL(window.location.href);r.pathname=t,window.history.pushState({tab:e},"",r.toString())}catch{}}function X({initialLang:e}){const[t,s]=c.useState(()=>R()),[r,o]=c.useState(e);c.useEffect(()=>A(o),[]);const[i,l]=c.useState(!1),[a,d]=c.useState(null),g=c.useCallback(u=>{s(u),V(u)},[]);return c.useEffect(()=>{const u=()=>s(R());return window.addEventListener("popstate",u),()=>window.removeEventListener("popstate",u)},[]),n.jsxs(f,{className:"agent-studio-app",children:[n.jsx(m,{left:n.jsx(m.Item,{type:"logo",children:n.jsx(K,{})}),right:n.jsx(m.Item,{type:"default",children:n.jsx(Z,{current:r})})}),n.jsxs(f.Body,{children:[n.jsx(f.Sider,{children:n.jsx(h,{theme:"dark",children:n.jsxs(h.Group,{title:"Observability",children:[n.jsx(h.Item,{title:"Agent Metrics",icon:n.jsx(Q,{}),selected:t==="overview",onClick:()=>g("overview")}),n.jsx(h.Item,{title:"Agent Traces",icon:n.jsx(Y,{}),selected:t==="traces",onClick:()=>g("traces")})]})})}),n.jsxs(f.Content,{children:[t==="overview"&&n.jsx(J,{}),t==="traces"&&n.jsx(q,{onRowClick:u=>{d(u.TraceId),l(!0)}})]},r)]}),n.jsx(b,{visible:i,traceId:a,fetchDetail:u=>D(u),onClose:()=>l(!1)})]})}function K(){return n.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6},children:[n.jsxs("svg",{width:"28",height:"28",viewBox:"0 0 28 28",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-hidden":!0,children:[n.jsx("path",{d:"M27.7784 16.4944C27.924 15.6849 28 14.8513 28 14C28 13.2803 27.9457 12.5734 27.841 11.8829C27.8005 11.6162 27.5679 11.424 27.2981 11.424H18.2935C17.999 11.424 17.7846 11.1446 17.8608 10.86L18.9267 6.88207C19.0054 6.58829 19.2716 6.384 19.5758 6.384H24.9239C25.2793 6.384 25.4903 5.99169 25.2795 5.70554C22.7306 2.24513 18.6275 0 14 0C6.26801 0 0 6.26801 0 14C0 17.5202 1.29921 20.7369 3.44429 23.1969C3.67271 23.4588 4.0922 23.3504 4.18175 23.0146L7.27934 11.3986C7.33622 11.1853 7.17545 10.976 6.95468 10.976H4.26421C3.96986 10.976 3.75549 10.697 3.83134 10.4126L4.70485 7.13693C4.77038 6.89118 4.99334 6.72137 5.24762 6.7161C8.17874 6.65542 11.0752 5.88815 13.647 4.4841C13.9129 4.33898 14.2342 4.58196 14.1561 4.87457L8.45823 26.2418C8.37314 26.5608 8.53186 26.8961 8.83881 27.0179C10.4359 27.6517 12.1773 28 14 28C18.4191 28 22.3599 25.9526 24.9257 22.7546C25.153 22.4713 24.9444 22.064 24.5811 22.064H15.4425C15.148 22.064 14.9336 21.7846 15.0098 21.5L16.0757 17.5221C16.1544 17.2283 16.4207 17.024 16.7248 17.024H27.1324C27.4479 17.024 27.7226 16.8049 27.7784 16.4944Z",fill:"url(#edgeone-logo-grad)"}),n.jsx("defs",{children:n.jsxs("linearGradient",{id:"edgeone-logo-grad",x1:"4.816",y1:"2.352",x2:"22.288",y2:"23.184",gradientUnits:"userSpaceOnUse",children:[n.jsx("stop",{stopColor:"#00DDFF"}),n.jsx("stop",{offset:"1",stopColor:"#0C60F2"})]})})]}),n.jsx("span",{style:{fontFamily:"Oxygen, system-ui, -apple-system, sans-serif",fontSize:18,fontWeight:700,color:"#FFFFFF",letterSpacing:"-0.18px",lineHeight:1.33},children:"EdgeOne Makers"})]})}function Q(){return n.jsxs("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",children:[n.jsx("path",{d:"M2.5 2.5V15.8333C2.5 16.2754 2.67559 16.6993 2.98816 17.0118C3.30072 17.3244 3.72464 17.5 4.16667 17.5H17.5",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"}),n.jsx("path",{d:"M15 14.1667V7.5",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"}),n.jsx("path",{d:"M10.8335 14.1667V4.16675",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"}),n.jsx("path",{d:"M6.6665 14.1667V11.6667",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})]})}function Y(){return n.jsxs("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",children:[n.jsx("path",{d:"M2.06202 12.3481C1.97868 12.1236 1.97868 11.8766 2.06202 11.6521C2.87372 9.68397 4.25153 8.00116 6.02079 6.81701C7.79004 5.63287 9.87106 5.00073 12 5.00073C14.129 5.00073 16.21 5.63287 17.9792 6.81701C19.7485 8.00116 21.1263 9.68397 21.938 11.6521C22.0214 11.8766 22.0214 12.1236 21.938 12.3481C21.1263 14.3163 19.7485 15.9991 17.9792 17.1832C16.21 18.3674 14.129 18.9995 12 18.9995C9.87106 18.9995 7.79004 18.3674 6.02079 17.1832C4.25153 15.9991 2.87372 14.3163 2.06202 12.3481Z",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"}),n.jsx("circle",{cx:"12",cy:"12",r:"3",stroke:"currentColor",strokeWidth:"2"})]})}function Z(e){const t=s=>{s!==e.current&&k(s)};return n.jsx("div",{style:{display:"inline-flex",gap:2,padding:2,background:"rgba(255, 255, 255, 0.08)",borderRadius:6,fontSize:12},children:["zh","en"].map(s=>{const r=s===e.current;return n.jsx("button",{onClick:()=>t(s),style:{border:"none",padding:"3px 12px",borderRadius:4,cursor:r?"default":"pointer",background:r?"#FFFFFF":"transparent",color:r?"#000000":"rgba(255, 255, 255, 0.55)",fontWeight:r?600:400,transition:"background-color 0.15s ease, color 0.15s ease"},children:s==="zh"?"中":"EN"},s)})})}function J(){const[e,t]=c.useState([]),[s,r]=c.useState([]),[o,i]=c.useState(!0),l=c.useCallback(a=>{i(!0);const d=a==null?void 0:a.customRange;return W({environment:a==null?void 0:a.environment,timeRange:d?null:a==null?void 0:a.timeRange,startTimeMs:d?d[0].valueOf():null,endTimeMs:d?d[1].valueOf():null}).then(g=>{t(g.overview),r(g.charts)}).finally(()=>i(!1))},[]);return c.useEffect(()=>{l()},[l]),n.jsxs(n.Fragment,{children:[n.jsx(f.Content.Header,{showBackButton:!1,title:"Metrics"}),n.jsx(f.Content.Body,{full:!0,children:n.jsx("div",{style:{padding:16},children:n.jsx(O,{overview:e,charts:s,loading:o,onFilterChange:a=>{l(a)},onRefresh:l})})})]})}function q(e){const[t,s]=c.useState([]),[r,o]=c.useState({pageIndex:1,pageSize:10,total:0}),[i,l]=c.useState(!0),a=c.useCallback(d=>(l(!0),z(d).then(g=>{s(g.rows),o(g.pagination)}).finally(()=>l(!1))),[]);return c.useEffect(()=>{a(G)},[a]),n.jsxs(n.Fragment,{children:[n.jsx(f.Content.Header,{showBackButton:!1,title:"Traces"}),n.jsx(f.Content.Body,{full:!0,children:n.jsx("div",{style:{padding:16},children:n.jsx(M,{rows:t,pagination:r,loading:i,onQueryChange:d=>{a(d)},onRefresh:a,onRowClick:e.onRowClick})})})]})}F.createRoot(document.getElementById("root")).render(n.jsx(y.StrictMode,{children:n.jsx(X,{initialLang:p})}));
@@ -14,15 +14,15 @@
14
14
  background: #f7f8fa;
15
15
  }
16
16
  </style>
17
- <script type="module" crossorigin src="./assets/index-DD3d108t.js"></script>
17
+ <script type="module" crossorigin src="./assets/index-DN8YhmEp.js"></script>
18
18
  <link rel="modulepreload" crossorigin href="./assets/react-hnpCyKql.js">
19
19
  <link rel="modulepreload" crossorigin href="./assets/react-dom-ZzBHVjtL.js">
20
20
  <link rel="modulepreload" crossorigin href="./assets/moment-BYRO94Ou.js">
21
21
  <link rel="modulepreload" crossorigin href="./assets/tea-Slf_ajmf.js">
22
22
  <link rel="modulepreload" crossorigin href="./assets/highlight-ClXAL37H.js">
23
- <link rel="modulepreload" crossorigin href="./assets/agent-obs-Dvi4IpEy.js">
23
+ <link rel="modulepreload" crossorigin href="./assets/agent-obs-BpTIot8x.js">
24
24
  <link rel="stylesheet" crossorigin href="./assets/tea-CADagUwM.css">
25
- <link rel="stylesheet" crossorigin href="./assets/agent-obs-qDJCE0TQ.css">
25
+ <link rel="stylesheet" crossorigin href="./assets/agent-obs-CEOY4DZz.css">
26
26
  <link rel="stylesheet" crossorigin href="./assets/index-Cz5oQnXW.css">
27
27
  </head>
28
28
  <body>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "edgeone",
3
- "version": "1.6.3",
3
+ "version": "1.6.4-beta.1",
4
4
  "description": "Command-line interface for TencentCloud Pages Functions",
5
5
  "bin": {
6
6
  "edgeone": "./edgeone-bin/edgeone.js"