@tonyclaw/agent-inspector 2.0.10 → 2.0.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.output/nitro.json +1 -1
- package/.output/public/assets/{CompareDrawer-BWMipEjS.js → CompareDrawer-C9OWdxHM.js} +1 -1
- package/.output/public/assets/{ProxyViewerContainer-DIAgurux.js → ProxyViewerContainer-CNzay4u8.js} +4 -4
- package/.output/public/assets/{ReplayDialog-DaSzZsvM.js → ReplayDialog-CwE6I1Pe.js} +1 -1
- package/.output/public/assets/RequestAnatomy-DEehC3yz.js +1 -0
- package/.output/public/assets/{ResponseView-CblEWDMx.js → ResponseView-CE5UsuUq.js} +1 -1
- package/.output/public/assets/{StreamingChunkSequence-B4atnL99.js → StreamingChunkSequence-CLcLZ7-W.js} +1 -1
- package/.output/public/assets/_sessionId-DE__tPTo.js +1 -0
- package/.output/public/assets/index-BFO4Jmw5.js +1 -0
- package/.output/public/assets/index-CDzZ7l_S.css +1 -0
- package/.output/public/assets/{main-DE6Y4-wV.js → main-D1Xanzu7.js} +2 -2
- package/.output/server/{_sessionId-61HO9rUI.mjs → _sessionId-D3IyPpws.mjs} +2 -2
- package/.output/server/_ssr/{CompareDrawer-CSPqneYm.mjs → CompareDrawer-BIMThqxy.mjs} +2 -2
- package/.output/server/_ssr/{ProxyViewerContainer-DrSMa5O7.mjs → ProxyViewerContainer-BiBdKWtj.mjs} +7 -7
- package/.output/server/_ssr/{ReplayDialog-Dn3naENv.mjs → ReplayDialog-D_wiDyM2.mjs} +3 -3
- package/.output/server/_ssr/{RequestAnatomy-D1X3f3AX.mjs → RequestAnatomy-5UiMTESr.mjs} +66 -5
- package/.output/server/_ssr/{ResponseView-CwXAWOoE.mjs → ResponseView-Drk5ghmL.mjs} +2 -2
- package/.output/server/_ssr/{StreamingChunkSequence-DRSR2FfN.mjs → StreamingChunkSequence-F889rmG0.mjs} +2 -2
- package/.output/server/_ssr/{index-D4zn5CAg.mjs → index-CaPniq9z.mjs} +2 -2
- package/.output/server/_ssr/index.mjs +2 -2
- package/.output/server/_ssr/{router-CSRaa_tu.mjs → router-C7S8FRth.mjs} +3 -3
- package/.output/server/{_tanstack-start-manifest_v-CfvVUYYj.mjs → _tanstack-start-manifest_v-CVTkFOdT.mjs} +1 -1
- package/.output/server/index.mjs +58 -58
- package/package.json +1 -1
- package/src/components/proxy-viewer/anatomy/RequestAnatomy.tsx +45 -1
- package/src/components/proxy-viewer/anatomy/contextIntelligence.ts +48 -1
- package/.output/public/assets/RequestAnatomy-BfQmPHCd.js +0 -1
- package/.output/public/assets/_sessionId-DUzYnZXV.js +0 -1
- package/.output/public/assets/index-CxhRsekH.css +0 -1
- package/.output/public/assets/index-jagRsQaV.js +0 -1
package/.output/server/index.mjs
CHANGED
|
@@ -38,100 +38,100 @@ const assets = {
|
|
|
38
38
|
"/assets/alibaba-TTwafVwX.svg": {
|
|
39
39
|
"type": "image/svg+xml",
|
|
40
40
|
"etag": '"171b-6dyV5K8QjiaY35sN9qNprh9zDIs"',
|
|
41
|
-
"mtime": "2026-06-
|
|
41
|
+
"mtime": "2026-06-23T08:36:33.058Z",
|
|
42
42
|
"size": 5915,
|
|
43
43
|
"path": "../public/assets/alibaba-TTwafVwX.svg"
|
|
44
44
|
},
|
|
45
|
-
"/assets/
|
|
46
|
-
"type": "
|
|
47
|
-
"etag": '"
|
|
48
|
-
"mtime": "2026-06-
|
|
49
|
-
"size":
|
|
50
|
-
"path": "../public/assets/
|
|
45
|
+
"/assets/minimax-BPMzvuL-.jpeg": {
|
|
46
|
+
"type": "image/jpeg",
|
|
47
|
+
"etag": '"1b06-IwivU89ko5UTMUM1/t7hn4sQK9A"',
|
|
48
|
+
"mtime": "2026-06-23T08:36:33.058Z",
|
|
49
|
+
"size": 6918,
|
|
50
|
+
"path": "../public/assets/minimax-BPMzvuL-.jpeg"
|
|
51
51
|
},
|
|
52
|
-
"/assets/CompareDrawer-
|
|
52
|
+
"/assets/CompareDrawer-C9OWdxHM.js": {
|
|
53
53
|
"type": "text/javascript; charset=utf-8",
|
|
54
|
-
"etag": '"49fe-
|
|
55
|
-
"mtime": "2026-06-
|
|
54
|
+
"etag": '"49fe-9KuSjKKkAoP6a0iGR+t3fm/p6YQ"',
|
|
55
|
+
"mtime": "2026-06-23T08:36:33.058Z",
|
|
56
56
|
"size": 18942,
|
|
57
|
-
"path": "../public/assets/CompareDrawer-
|
|
57
|
+
"path": "../public/assets/CompareDrawer-C9OWdxHM.js"
|
|
58
58
|
},
|
|
59
|
-
"/assets/index-
|
|
59
|
+
"/assets/index-CDzZ7l_S.css": {
|
|
60
60
|
"type": "text/css; charset=utf-8",
|
|
61
|
-
"etag": '"
|
|
62
|
-
"mtime": "2026-06-
|
|
63
|
-
"size":
|
|
64
|
-
"path": "../public/assets/index-
|
|
61
|
+
"etag": '"198f8-JSABQ5kb8kjFxUYWlMXh0v7U1/M"',
|
|
62
|
+
"mtime": "2026-06-23T08:36:33.058Z",
|
|
63
|
+
"size": 104696,
|
|
64
|
+
"path": "../public/assets/index-CDzZ7l_S.css"
|
|
65
65
|
},
|
|
66
|
-
"/assets/
|
|
66
|
+
"/assets/index-BFO4Jmw5.js": {
|
|
67
67
|
"type": "text/javascript; charset=utf-8",
|
|
68
|
-
"etag": '"
|
|
69
|
-
"mtime": "2026-06-
|
|
70
|
-
"size":
|
|
71
|
-
"path": "../public/assets/
|
|
68
|
+
"etag": '"74-Gu7fKa694PjJJnvtWQ6J0TLqtOk"',
|
|
69
|
+
"mtime": "2026-06-23T08:36:33.058Z",
|
|
70
|
+
"size": 116,
|
|
71
|
+
"path": "../public/assets/index-BFO4Jmw5.js"
|
|
72
72
|
},
|
|
73
|
-
"/assets/ReplayDialog-
|
|
73
|
+
"/assets/ReplayDialog-CwE6I1Pe.js": {
|
|
74
74
|
"type": "text/javascript; charset=utf-8",
|
|
75
|
-
"etag": '"2361-
|
|
76
|
-
"mtime": "2026-06-
|
|
75
|
+
"etag": '"2361-VL9x6j7BihuyZ9dMZsqM98VjmmI"',
|
|
76
|
+
"mtime": "2026-06-23T08:36:33.058Z",
|
|
77
77
|
"size": 9057,
|
|
78
|
-
"path": "../public/assets/ReplayDialog-
|
|
78
|
+
"path": "../public/assets/ReplayDialog-CwE6I1Pe.js"
|
|
79
79
|
},
|
|
80
|
-
"/assets/ResponseView-
|
|
80
|
+
"/assets/ResponseView-CE5UsuUq.js": {
|
|
81
81
|
"type": "text/javascript; charset=utf-8",
|
|
82
|
-
"etag": '"30cc-
|
|
83
|
-
"mtime": "2026-06-
|
|
82
|
+
"etag": '"30cc-iFUGYetD4rrl6vC/+kBARwOWLOk"',
|
|
83
|
+
"mtime": "2026-06-23T08:36:33.058Z",
|
|
84
84
|
"size": 12492,
|
|
85
|
-
"path": "../public/assets/ResponseView-
|
|
86
|
-
},
|
|
87
|
-
"/assets/RequestAnatomy-BfQmPHCd.js": {
|
|
88
|
-
"type": "text/javascript; charset=utf-8",
|
|
89
|
-
"etag": '"58ed-vl6OIMLA96fu3bgaH8iHwJjiMIQ"',
|
|
90
|
-
"mtime": "2026-06-23T07:22:07.084Z",
|
|
91
|
-
"size": 22765,
|
|
92
|
-
"path": "../public/assets/RequestAnatomy-BfQmPHCd.js"
|
|
93
|
-
},
|
|
94
|
-
"/assets/minimax-BPMzvuL-.jpeg": {
|
|
95
|
-
"type": "image/jpeg",
|
|
96
|
-
"etag": '"1b06-IwivU89ko5UTMUM1/t7hn4sQK9A"',
|
|
97
|
-
"mtime": "2026-06-23T07:22:07.083Z",
|
|
98
|
-
"size": 6918,
|
|
99
|
-
"path": "../public/assets/minimax-BPMzvuL-.jpeg"
|
|
85
|
+
"path": "../public/assets/ResponseView-CE5UsuUq.js"
|
|
100
86
|
},
|
|
101
|
-
"/assets/
|
|
87
|
+
"/assets/RequestAnatomy-DEehC3yz.js": {
|
|
102
88
|
"type": "text/javascript; charset=utf-8",
|
|
103
|
-
"etag": '"
|
|
104
|
-
"mtime": "2026-06-
|
|
105
|
-
"size":
|
|
106
|
-
"path": "../public/assets/
|
|
89
|
+
"etag": '"5e5e-pTc9BmNCScOTaCbusfi7M+/T6bI"',
|
|
90
|
+
"mtime": "2026-06-23T08:36:33.058Z",
|
|
91
|
+
"size": 24158,
|
|
92
|
+
"path": "../public/assets/RequestAnatomy-DEehC3yz.js"
|
|
107
93
|
},
|
|
108
94
|
"/assets/zhipuai-BPNAnxo-.svg": {
|
|
109
95
|
"type": "image/svg+xml",
|
|
110
96
|
"etag": '"2bf8-hNaLCTi89nOFCsIIfWpP/jrfo0s"',
|
|
111
|
-
"mtime": "2026-06-
|
|
97
|
+
"mtime": "2026-06-23T08:36:33.058Z",
|
|
112
98
|
"size": 11256,
|
|
113
99
|
"path": "../public/assets/zhipuai-BPNAnxo-.svg"
|
|
114
100
|
},
|
|
115
|
-
"/assets/_sessionId-
|
|
101
|
+
"/assets/_sessionId-DE__tPTo.js": {
|
|
116
102
|
"type": "text/javascript; charset=utf-8",
|
|
117
|
-
"etag": '"d2-
|
|
118
|
-
"mtime": "2026-06-
|
|
103
|
+
"etag": '"d2-xgLDkEVkcVSNakd4RdAiTyyL3dU"',
|
|
104
|
+
"mtime": "2026-06-23T08:36:33.058Z",
|
|
119
105
|
"size": 210,
|
|
120
|
-
"path": "../public/assets/_sessionId-
|
|
106
|
+
"path": "../public/assets/_sessionId-DE__tPTo.js"
|
|
107
|
+
},
|
|
108
|
+
"/assets/main-D1Xanzu7.js": {
|
|
109
|
+
"type": "text/javascript; charset=utf-8",
|
|
110
|
+
"etag": '"51726-1VCm3nooMYxuhh7dIY976qw9+Qs"',
|
|
111
|
+
"mtime": "2026-06-23T08:36:33.058Z",
|
|
112
|
+
"size": 333606,
|
|
113
|
+
"path": "../public/assets/main-D1Xanzu7.js"
|
|
121
114
|
},
|
|
122
115
|
"/assets/qwen-CONDcHqt.png": {
|
|
123
116
|
"type": "image/png",
|
|
124
117
|
"etag": '"572c3-cdJAPaHdOvFCGzuaQjagdgOu6XE"',
|
|
125
|
-
"mtime": "2026-06-
|
|
118
|
+
"mtime": "2026-06-23T08:36:33.058Z",
|
|
126
119
|
"size": 357059,
|
|
127
120
|
"path": "../public/assets/qwen-CONDcHqt.png"
|
|
128
121
|
},
|
|
129
|
-
"/assets/
|
|
122
|
+
"/assets/StreamingChunkSequence-CLcLZ7-W.js": {
|
|
123
|
+
"type": "text/javascript; charset=utf-8",
|
|
124
|
+
"etag": '"d5b-XSX42WCh8Ym5efHZ+MkzQ8m0l+I"',
|
|
125
|
+
"mtime": "2026-06-23T08:36:33.060Z",
|
|
126
|
+
"size": 3419,
|
|
127
|
+
"path": "../public/assets/StreamingChunkSequence-CLcLZ7-W.js"
|
|
128
|
+
},
|
|
129
|
+
"/assets/ProxyViewerContainer-CNzay4u8.js": {
|
|
130
130
|
"type": "text/javascript; charset=utf-8",
|
|
131
|
-
"etag": '"a3740-
|
|
132
|
-
"mtime": "2026-06-
|
|
131
|
+
"etag": '"a3740-n67V6FziV4gg7BgR5eQg3/G5GzY"',
|
|
132
|
+
"mtime": "2026-06-23T08:36:33.058Z",
|
|
133
133
|
"size": 669504,
|
|
134
|
-
"path": "../public/assets/ProxyViewerContainer-
|
|
134
|
+
"path": "../public/assets/ProxyViewerContainer-CNzay4u8.js"
|
|
135
135
|
}
|
|
136
136
|
};
|
|
137
137
|
function readAsset(id) {
|
package/package.json
CHANGED
|
@@ -9,6 +9,8 @@ import {
|
|
|
9
9
|
type ContextDiagnostic,
|
|
10
10
|
type DuplicateContextGroup,
|
|
11
11
|
type DuplicateContextSegment,
|
|
12
|
+
type ContextHealth,
|
|
13
|
+
type ContextHealthLevel,
|
|
12
14
|
type ContextIntelligence,
|
|
13
15
|
type ContextRiskLevel,
|
|
14
16
|
} from "./contextIntelligence";
|
|
@@ -63,6 +65,18 @@ const RISK_TEXT_CLASS: Record<ContextRiskLevel, string> = {
|
|
|
63
65
|
danger: "text-red-300",
|
|
64
66
|
};
|
|
65
67
|
|
|
68
|
+
const HEALTH_BADGE_CLASS: Record<ContextHealthLevel, string> = {
|
|
69
|
+
ok: "border-emerald-400/30 bg-emerald-400/8 text-emerald-200",
|
|
70
|
+
optimizable: "border-amber-400/30 bg-amber-400/8 text-amber-100",
|
|
71
|
+
risk: "border-red-400/35 bg-red-500/10 text-red-100",
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
const HEALTH_LABEL: Record<ContextHealthLevel, string> = {
|
|
75
|
+
ok: "OK",
|
|
76
|
+
optimizable: "Optimizable",
|
|
77
|
+
risk: "Risk",
|
|
78
|
+
};
|
|
79
|
+
|
|
66
80
|
function formatPercent(value: number): string {
|
|
67
81
|
if (value >= 10) return `${value.toFixed(0)}%`;
|
|
68
82
|
if (value >= 1) return `${value.toFixed(1)}%`;
|
|
@@ -110,6 +124,33 @@ function diagnosticTone(diagnostic: ContextDiagnostic): string {
|
|
|
110
124
|
}
|
|
111
125
|
}
|
|
112
126
|
|
|
127
|
+
function formatContextHealth(health: ContextHealth): string {
|
|
128
|
+
const label = HEALTH_LABEL[health.level];
|
|
129
|
+
if (health.level === "ok") return label;
|
|
130
|
+
const countLabel =
|
|
131
|
+
health.level === "risk"
|
|
132
|
+
? `${String(health.opportunityCount)} signal${health.opportunityCount === 1 ? "" : "s"}`
|
|
133
|
+
: `${String(health.opportunityCount)} opportunit${
|
|
134
|
+
health.opportunityCount === 1 ? "y" : "ies"
|
|
135
|
+
}`;
|
|
136
|
+
if (health.reclaimableTokens <= 0) return `${label} | ${countLabel}`;
|
|
137
|
+
return `${label} | ${countLabel} | ~${formatTokens(health.reclaimableTokens)} tokens`;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
function ContextHealthBadge({ health }: { health: ContextHealth }): JSX.Element {
|
|
141
|
+
return (
|
|
142
|
+
<span
|
|
143
|
+
className={cn(
|
|
144
|
+
"inline-flex h-5 max-w-full items-center rounded border px-1.5 font-mono text-[10px]",
|
|
145
|
+
HEALTH_BADGE_CLASS[health.level],
|
|
146
|
+
)}
|
|
147
|
+
aria-label={`Context health ${formatContextHealth(health)}`}
|
|
148
|
+
>
|
|
149
|
+
<span className="truncate">{formatContextHealth(health)}</span>
|
|
150
|
+
</span>
|
|
151
|
+
);
|
|
152
|
+
}
|
|
153
|
+
|
|
113
154
|
function ContextIntelligenceStrip({
|
|
114
155
|
intelligence,
|
|
115
156
|
}: {
|
|
@@ -437,7 +478,10 @@ export function RequestAnatomy({
|
|
|
437
478
|
<div className="px-4 py-3 space-y-3" data-testid="anatomy-root">
|
|
438
479
|
<div className="flex flex-wrap items-start justify-between gap-3">
|
|
439
480
|
<div className="min-w-0">
|
|
440
|
-
<div className="
|
|
481
|
+
<div className="flex min-w-0 flex-wrap items-center gap-2">
|
|
482
|
+
<div className="text-sm font-semibold text-foreground">Request Context</div>
|
|
483
|
+
{intelligence !== null && <ContextHealthBadge health={intelligence.health} />}
|
|
484
|
+
</div>
|
|
441
485
|
<div className={cn("mt-0.5 text-xs font-mono tabular-nums", summaryColorClass)}>
|
|
442
486
|
Estimated ~{formatTokens(total)} tokens | {providerInputLabel} | {contextLimitLabel} |{" "}
|
|
443
487
|
{usageLabel} | {segmentCountLabel}
|
|
@@ -8,6 +8,8 @@ export type ContextRiskLevel = "unknown" | "ok" | "watch" | "danger";
|
|
|
8
8
|
|
|
9
9
|
export type ContextWindowSource = "request" | "provider" | "model-rule" | "unknown";
|
|
10
10
|
|
|
11
|
+
export type ContextHealthLevel = "ok" | "optimizable" | "risk";
|
|
12
|
+
|
|
11
13
|
export type ContextWindow = {
|
|
12
14
|
tokens: number | null;
|
|
13
15
|
label: string;
|
|
@@ -46,6 +48,12 @@ export type DuplicateContextGroup = {
|
|
|
46
48
|
segments: DuplicateContextSegment[];
|
|
47
49
|
};
|
|
48
50
|
|
|
51
|
+
export type ContextHealth = {
|
|
52
|
+
level: ContextHealthLevel;
|
|
53
|
+
opportunityCount: number;
|
|
54
|
+
reclaimableTokens: number;
|
|
55
|
+
};
|
|
56
|
+
|
|
49
57
|
export type ContextIntelligence = {
|
|
50
58
|
model: string | null;
|
|
51
59
|
contextWindow: ContextWindow;
|
|
@@ -60,6 +68,7 @@ export type ContextIntelligence = {
|
|
|
60
68
|
largestRole: RoleUsage | null;
|
|
61
69
|
diagnostics: ContextDiagnostic[];
|
|
62
70
|
duplicateGroups: DuplicateContextGroup[];
|
|
71
|
+
health: ContextHealth;
|
|
63
72
|
};
|
|
64
73
|
|
|
65
74
|
type MatchMode = "prefix" | "includes";
|
|
@@ -551,6 +560,10 @@ function duplicateDiagnostic(
|
|
|
551
560
|
};
|
|
552
561
|
}
|
|
553
562
|
|
|
563
|
+
function duplicateReclaimableTokens(duplicateGroups: readonly DuplicateContextGroup[]): number {
|
|
564
|
+
return duplicateGroups.reduce((sum, group) => sum + group.repeatedTokens, 0);
|
|
565
|
+
}
|
|
566
|
+
|
|
554
567
|
function diagnosticsForRolePressure(
|
|
555
568
|
roleUsages: readonly RoleUsage[],
|
|
556
569
|
total: number,
|
|
@@ -606,6 +619,33 @@ function diagnosticsForRolePressure(
|
|
|
606
619
|
return diagnostics;
|
|
607
620
|
}
|
|
608
621
|
|
|
622
|
+
function contextHealth({
|
|
623
|
+
risk,
|
|
624
|
+
contextWindow,
|
|
625
|
+
diagnostics,
|
|
626
|
+
duplicateGroups,
|
|
627
|
+
}: {
|
|
628
|
+
risk: ContextRiskLevel;
|
|
629
|
+
contextWindow: ContextWindow;
|
|
630
|
+
diagnostics: readonly ContextDiagnostic[];
|
|
631
|
+
duplicateGroups: readonly DuplicateContextGroup[];
|
|
632
|
+
}): ContextHealth {
|
|
633
|
+
const diagnosticKinds = new Set(diagnostics.map((diagnostic) => diagnostic.kind));
|
|
634
|
+
let opportunityCount = diagnosticKinds.size;
|
|
635
|
+
if (risk === "watch" || risk === "danger") opportunityCount += 1;
|
|
636
|
+
if (contextWindow.source === "unknown") opportunityCount += 1;
|
|
637
|
+
|
|
638
|
+
const hasDangerDiagnostic = diagnostics.some((diagnostic) => diagnostic.severity === "danger");
|
|
639
|
+
const level: ContextHealthLevel =
|
|
640
|
+
risk === "danger" || hasDangerDiagnostic ? "risk" : opportunityCount > 0 ? "optimizable" : "ok";
|
|
641
|
+
|
|
642
|
+
return {
|
|
643
|
+
level,
|
|
644
|
+
opportunityCount,
|
|
645
|
+
reclaimableTokens: duplicateReclaimableTokens(duplicateGroups),
|
|
646
|
+
};
|
|
647
|
+
}
|
|
648
|
+
|
|
609
649
|
export function analyzeContextIntelligence({
|
|
610
650
|
segments,
|
|
611
651
|
inputTokens,
|
|
@@ -648,6 +688,7 @@ export function analyzeContextIntelligence({
|
|
|
648
688
|
messageSegmentCount,
|
|
649
689
|
);
|
|
650
690
|
if (duplicate !== null) diagnostics.unshift(duplicate);
|
|
691
|
+
const risk = riskLevel(usagePercent);
|
|
651
692
|
|
|
652
693
|
return {
|
|
653
694
|
model: requestModel,
|
|
@@ -658,11 +699,17 @@ export function analyzeContextIntelligence({
|
|
|
658
699
|
remainingInputTokens,
|
|
659
700
|
remainingAfterReserveTokens,
|
|
660
701
|
usagePercent,
|
|
661
|
-
riskLevel:
|
|
702
|
+
riskLevel: risk,
|
|
662
703
|
roleUsages,
|
|
663
704
|
largestRole,
|
|
664
705
|
diagnostics,
|
|
665
706
|
duplicateGroups,
|
|
707
|
+
health: contextHealth({
|
|
708
|
+
risk,
|
|
709
|
+
contextWindow,
|
|
710
|
+
diagnostics,
|
|
711
|
+
duplicateGroups,
|
|
712
|
+
}),
|
|
666
713
|
};
|
|
667
714
|
}
|
|
668
715
|
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as N,j as t}from"./main-DE6Y4-wV.js";import{c as re,F as Y,G as oe,H as ae,I as ie,K as le,f,s as K,b as T,t as M,v as O,w as A,u as ce}from"./ProxyViewerContainer-DIAgurux.js";const de=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]],ue=re("info",de),X=.75,J=.9,D=8e3,me=.35,Q=40,Z=160,xe=5,fe=8,he=18,pe=6e4,ge=.7,F=3e3,be=.3,H=160,ke=new Set(["answer","body","content","data","error","message","markdown","output","response","result","stderr","stdout","text","transcript"]),Ne=["context_window","contextWindow","context_length","contextLength","max_context_length","maxContextLength","max_input_tokens","maxInputTokens"],ve=["max_tokens","maxTokens","max_completion_tokens","maxCompletionTokens","max_output_tokens","maxOutputTokens"],we=[{family:"OpenAI GPT-4.1",tokens:1047576,mode:"prefix",patterns:["gpt-4.1"]},{family:"OpenAI GPT-4o",tokens:128e3,mode:"prefix",patterns:["gpt-4o"]},{family:"OpenAI o-series",tokens:128e3,mode:"prefix",patterns:["o1","o3","o4"]},{family:"Anthropic Claude",tokens:2e5,mode:"prefix",patterns:["claude-"]},{family:"DeepSeek V4",tokens:1e6,mode:"prefix",patterns:["deepseek-v4-pro","deepseek-v4-flash"]},{family:"DeepSeek",tokens:64e3,mode:"prefix",patterns:["deepseek-"]},{family:"MiniMax M3",tokens:1e6,mode:"includes",patterns:["minimax-m3"]},{family:"MiniMax M2",tokens:204800,mode:"includes",patterns:["minimax-m2.7","minimax-m2.5","minimax-m2.1"]}],je={system:"System",user:"User messages",assistant:"Assistant messages",tool:"Tool results",tools:"Tool definitions"};function Te(e){if(typeof e=="number")return Number.isFinite(e)&&e>0?Math.floor(e):null;if(typeof e=="string"){const n=Number(e);if(Number.isFinite(n)&&n>0)return Math.floor(n)}return null}function ee(e,n){for(const r of n){const s=Te(Y(e,r));if(s!==null)return s}return null}function ye(e){const n=Y(e,"model");if(typeof n!="string")return null;const r=n.trim();return r===""?null:r}function Ee(e,n){switch(n.mode){case"prefix":return n.patterns.some(r=>e.startsWith(r));case"includes":return n.patterns.some(r=>e.includes(r))}}function Se(e,n,r=[]){const s=ee(n,Ne);if(s!==null)return{tokens:s,label:"Request metadata",source:"request"};const o=oe(e,r);if(o!==null)return{tokens:o.tokens,label:`${o.providerName} config`,source:"provider"};if(e===null)return{tokens:null,label:"Unknown model",source:"unknown"};const a=e.trim().toLowerCase().replace(/\s+/g,"-");for(const l of we)if(Ee(a,l))return{tokens:l.tokens,label:`${l.family} local rule`,source:"model-rule"};return{tokens:null,label:"No local rule",source:"unknown"}}function _e(e){return e<0?0:e>1?1:e}function Ce(e){return e===null?"unknown":e>=J?"danger":e>=X?"watch":"ok"}function Le(e,n){return e.filter(r=>r.role===n).reduce((r,s)=>r+s.size,0)}function $e(e,n){return["system","user","assistant","tool","tools"].map(s=>{const o=Le(e,s);return{role:s,label:je[s],tokens:o,percent:n>0?o/n:0}}).filter(s=>s.tokens>0).sort((s,o)=>o.tokens-s.tokens)}function z(e){return e.replace(/\s+/g," ").trim().toLowerCase()}function Re(e){const n=e.replace(/\s+/g," ").trim();return n.length<=H?n:`${n.slice(0,H-3)}...`}function Ie(e){return{role:e.role,label:e.label,path:e.path,tokens:e.tokens,characters:e.characters}}function Pe(e){return{role:e.role,label:e.label,path:e.path,tokens:e.size,characters:e.characters,text:e.text}}function Me(e){const n=e.trim();return n.startsWith("{")||n.startsWith("[")}function Oe(e){if(!Me(e))return null;try{return JSON.parse(e)}catch{return null}}function Ae(e){return e.toLowerCase().replace(/[^a-z0-9]/g,"")}function De(e){for(let n=e.length-1;n>=0;n-=1){const r=e[n]??"";if(!(r.startsWith("[")&&r.endsWith("]")))return r}return null}function ze(e){const n=De(e);return n===null?!1:ke.has(Ae(n))}function Ue(e){return e.map(n=>n.startsWith("[")?n:`.${n}`).join("").replace(/^\./,"")}function We(e,n,r){const s=ie(n);if(s<Z)return null;const o=le(n);return o<Q?null:{role:e.role,label:`${e.label} ${Ue(r)}`,path:e.path,tokens:o,characters:s,text:n}}function U({value:e,segment:n,path:r,depth:s,candidates:o}){if(!(o.length>=fe)&&!(s>xe)){if(typeof e=="string"){if(!ze(r))return;const a=We(n,e,r);a!==null&&o.push(a);return}if(Array.isArray(e)){e.forEach((a,l)=>U({value:a,segment:n,path:[...r,`[${String(l)}]`],depth:s+1,candidates:o}));return}ae(e)&&Object.entries(e).forEach(([a,l])=>U({value:l,segment:n,path:[...r,a],depth:s+1,candidates:o}))}}function Ge(e){const n=Pe(e),r=Oe(e.text);if(r===null)return[n];const s=[];U({value:r,segment:e,path:[],depth:0,candidates:s});const o=z(e.text),a=new Set([o]),l=s.filter(m=>{const i=z(m.text);return i===""||a.has(i)?!1:(a.add(i),!0)});return[n,...l]}function Fe(e){const n=new Map;for(const s of e){const o=Ge(s);for(const a of o){if(a.tokens<Q||a.characters<Z)continue;const l=z(a.text);if(l==="")continue;const m=n.get(l);if(m===void 0){n.set(l,{tokens:a.tokens,candidates:[a]});continue}n.set(l,{tokens:m.tokens+a.tokens,candidates:[...m.candidates,a]})}}const r=[];for(const s of n.values()){if(s.candidates.length<2)continue;const o=s.candidates[0]??null;if(o===null)continue;const a=s.tokens-o.tokens;r.push({key:`${o.path}:${o.label}:${String(s.candidates.length)}:${String(s.tokens)}`,count:s.candidates.length,totalTokens:s.tokens,repeatedTokens:a,preview:Re(o.text),firstLabel:o.label,segments:s.candidates.map(Ie)})}return r.sort((s,o)=>o.repeatedTokens-s.repeatedTokens||o.totalTokens-s.totalTokens)}function He(e){if(e.length===0)return null;const n=e.length,r=e.reduce((o,a)=>o+a.count,0),s=e.reduce((o,a)=>o+a.repeatedTokens,0);return{kind:"duplicate",severity:s>=D?"danger":"watch",title:"Duplicate context",detail:`${String(r)} repeated blocks across ${String(n)} group${n===1?"":"s"}, ~${String(s)} repeated tokens.`}}function Be(e,n,r){const s=[],o=e.find(i=>i.role==="tools")??null;o!==null&&(o.tokens>=D||o.percent>=me&&o.tokens>=F)&&s.push({kind:"tool-schema",severity:o.tokens>=D?"danger":"watch",title:"Large tool schema",detail:`Tool definitions take ${Math.round(o.percent*100)}% of request context.`});const a=e.find(i=>i.role==="system")??null;a!==null&&a.tokens>=F&&a.percent>=be&&s.push({kind:"system-heavy",severity:"watch",title:"Large system prompt",detail:`System instructions take ${Math.round(a.percent*100)}% of request context.`});const l=e.filter(i=>i.role==="user"||i.role==="assistant"||i.role==="tool").reduce((i,c)=>i+c.tokens,0),m=n>0?l/n:0;return r>=he&&(l>=pe||m>=ge)&&s.push({kind:"history-bloat",severity:m>=.85?"danger":"watch",title:"Conversation history growth",detail:`${String(r)} message blocks take ${Math.round(m*100)}% of request context.`}),s}function qe({segments:e,inputTokens:n,parsed:r,model:s,providers:o=[]}){const a=e.reduce((E,u)=>E+u.size,0),l=s??ye(r),m=n??a,i=ee(r,ve),c=Se(l,r,o),h=i??0,v=c.tokens===null?null:m+h,x=c.tokens===null?null:c.tokens-m,k=c.tokens===null?null:c.tokens-m-h,w=c.tokens===null||v===null?null:_e(v/c.tokens),j=$e(e,a),d=j[0]??null,p=e.filter(E=>E.role!=="tools").length,b=Fe(e),y=He(b),S=Be(j,a,p);return y!==null&&S.unshift(y),{model:l,contextWindow:c,estimatedInputTokens:m,outputReserveTokens:i,windowUsedTokens:v,remainingInputTokens:x,remainingAfterReserveTokens:k,usagePercent:w,riskLevel:Ce(w),roleUsages:j,largestRole:d,diagnostics:S,duplicateGroups:b}}const _={watch:X,danger:J},te={system:"System",user:"User",assistant:"Assistant",tool:"Tool Results",tools:"Tool Definitions"},R={system:"bg-sky-500/70",user:"bg-emerald-500/70",assistant:"bg-violet-500/70",tool:"bg-sky-400/55",tools:"bg-slate-500/70"},Ve={system:"focus-visible:ring-sky-300",user:"focus-visible:ring-emerald-300",assistant:"focus-visible:ring-violet-300",tool:"focus-visible:ring-sky-300",tools:"focus-visible:ring-slate-300"},P=12,C=1,B=80,q=24;function Ye(e){return e.length<=q?e:`${e.slice(0,q-3)}...`}function Ke(e){const n=e.replace(/\s+/g," ").trim();return n.length<=B?n:`${n.slice(0,B)}...`}function L(e){return e>=10?`${e.toFixed(0)}%`:e>=1?`${e.toFixed(1)}%`:e>0?"<1%":"0%"}const Xe=N.memo(function({segments:n,totalTokens:r,showLabels:s=!0,onActivate:o}){const a=N.useMemo(()=>r>0?r:n.reduce((d,p)=>d+p.size,0),[n,r]),l=n.slice(0,P),m=n.slice(P),i=m.reduce((d,p)=>d+p.size,0),c=m.length,h=P,v=h+c-1,x=c>0,k=o!==void 0,w=N.useMemo(()=>l.reduce((d,p)=>d+p.size,0),[l]),j=N.useMemo(()=>`Request context: ~${f(a)} tokens across ${n.length} segment${n.length===1?"":"s"}`,[n.length,a]);return n.length===0||a<=0?t.jsx("div",{role:"img","aria-label":j,className:"h-6"}):t.jsx(K,{delayDuration:150,children:t.jsxs("div",{role:"img","aria-label":j,className:"flex flex-col gap-1.5",children:[t.jsxs("div",{className:"relative flex h-6 w-full overflow-hidden rounded border border-border/40 bg-muted/30","data-testid":"anatomy-segment-bar",children:[l.map((d,p)=>{const b=a>0?d.size/a*100:0,y=Math.max(C,b),S=T("h-full border-r border-background/80 last:border-r-0",k?"opacity-90 hover:opacity-100 focus:opacity-100 focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-1 focus-visible:ring-offset-background":"opacity-90",R[d.role],k?Ve[d.role]:""),E={width:`${y}%`},u=`${d.label}, ${L(b)}, ~${f(d.size)} tokens`;return t.jsxs(M,{children:[t.jsx(O,{asChild:!0,children:k?t.jsx("button",{type:"button",role:"button",tabIndex:0,onClick:()=>o(d),onKeyDown:g=>{(g.key==="Enter"||g.key===" ")&&(g.preventDefault(),o(d))},"data-anatomy-path":d.path,"aria-label":u,className:S,style:E}):t.jsx("span",{"aria-label":u,className:S,style:E})}),t.jsxs(A,{side:"bottom",className:"max-w-sm text-xs p-2 space-y-0.5",children:[t.jsxs("div",{className:"font-semibold",children:[d.label," - ",L(b)," - ~",f(d.size)," ","tokens"]}),t.jsx("div",{className:"text-muted-foreground",children:te[d.role]}),t.jsxs("div",{className:"text-muted-foreground",children:[d.characters.toLocaleString()," chars"]}),d.text.length>0&&t.jsx("div",{className:"text-muted-foreground/90 break-words whitespace-pre-wrap",children:Ke(d.text)})]})]},`${d.path}-${p}`)}),x&&t.jsxs(M,{children:[t.jsx(O,{asChild:!0,children:t.jsxs("div",{role:"img","aria-label":`${c} additional segments`,className:"flex h-full items-center justify-center bg-muted-foreground/30 px-1.5 text-[10px] font-mono text-background",style:{width:`${Math.max(C,i/a*100)}%`},children:["... +",c]})}),t.jsxs(A,{side:"bottom",className:"text-xs",children:[c," more segment",c===1?"":"s"," (indices"," ",h,"-",v,")"]})]})]}),s&&t.jsxs("div",{className:"flex w-full gap-1 text-[10px] text-muted-foreground",children:[l.map((d,p)=>{const b=a>0?d.size/a*100:0,y=Math.max(C,b);return t.jsxs("div",{className:"flex flex-col gap-0.5 truncate",style:{width:`${y}%`},title:`${d.label} - ${L(b)} - ~${f(d.size)} tokens`,children:[t.jsx("span",{className:"truncate font-mono text-foreground/80",children:Ye(d.label)}),t.jsxs("span",{className:"truncate font-mono text-muted-foreground/70",children:[L(b)," - ~",f(d.size)]})]},`label-${d.path}-${p}`)}),x&&t.jsxs("div",{className:"flex flex-col gap-0.5 truncate text-muted-foreground",style:{width:`${Math.max(C,i/a*100)}%`},children:[t.jsxs("span",{className:"truncate font-mono text-foreground/60",children:["... +",c]}),t.jsxs("span",{className:"truncate font-mono text-muted-foreground/60",children:["~",f(i)]})]})]}),w<a*.1&&t.jsx("div",{className:"h-0"})]})})}),Je=.25,Qe=5,Ze=4,et=6,tt=["system","user","assistant","tool","tools"],nt={system:"instructions",user:"user turns",assistant:"assistant turns",tool:"tool results",tools:"tool schemas"},st=[{value:"role",label:"By Role"},{value:"segment",label:"By Segment"}],rt={unknown:"bg-muted-foreground/50",ok:"bg-emerald-500/70",watch:"bg-amber-400/75",danger:"bg-red-500/80"},ot={unknown:"text-muted-foreground",ok:"text-emerald-400",watch:"text-amber-300",danger:"text-red-300"};function I(e){return e>=10?`${e.toFixed(0)}%`:e>=1?`${e.toFixed(1)}%`:e>0?"<1%":"0%"}function $(e){return e===null?"Unknown":I(e*100)}function V(e){return e===null?"Unknown":e<0?`-${f(Math.abs(e))}`:f(e)}function ne(e){return e.contextWindow.tokens===null?"Unknown":f(e.contextWindow.tokens)}function at(e){switch(e.contextWindow.source){case"request":return e.contextWindow.label;case"provider":return e.contextWindow.label;case"model-rule":return e.contextWindow.label;case"unknown":return e.model===null?e.contextWindow.label:`${e.contextWindow.label}: ${e.model}`}}function it(e){switch(e.severity){case"watch":return"border-amber-400/30 bg-amber-400/8 text-amber-100";case"danger":return"border-red-400/35 bg-red-500/10 text-red-100"}}function lt({intelligence:e}){const n=e.usagePercent===null?0:Math.max(1,e.usagePercent*100),r=e.outputReserveTokens===null?"No output reserve":`Output reserve ${f(e.outputReserveTokens)}`,s=e.largestRole,o=e.duplicateGroups.length===0?e.diagnostics:e.diagnostics.filter(a=>a.kind!=="duplicate");return t.jsxs("div",{className:"space-y-2",children:[t.jsxs("div",{className:"grid gap-x-4 gap-y-2 border-y border-border/60 py-2 text-xs sm:grid-cols-4",children:[t.jsxs("div",{className:"min-w-0",children:[t.jsx("div",{className:"text-[10px] font-medium uppercase text-muted-foreground",children:"Window"}),t.jsx("div",{className:"mt-0.5 truncate font-mono text-foreground",children:ne(e)}),t.jsx("div",{className:"truncate text-[11px] text-muted-foreground",children:at(e)})]}),t.jsxs("div",{className:"min-w-0",children:[t.jsx("div",{className:"text-[10px] font-medium uppercase text-muted-foreground",children:"Used"}),t.jsx("div",{className:T("mt-0.5 font-mono",ot[e.riskLevel]),children:$(e.usagePercent)}),t.jsx("div",{className:"truncate text-[11px] text-muted-foreground",children:r})]}),t.jsxs("div",{className:"min-w-0",children:[t.jsx("div",{className:"text-[10px] font-medium uppercase text-muted-foreground",children:"Remaining"}),t.jsx("div",{className:"mt-0.5 font-mono text-foreground",children:V(e.remainingAfterReserveTokens)}),t.jsxs("div",{className:"truncate text-[11px] text-muted-foreground",children:["Input only ",V(e.remainingInputTokens)]})]}),t.jsxs("div",{className:"min-w-0",children:[t.jsx("div",{className:"text-[10px] font-medium uppercase text-muted-foreground",children:"Largest"}),s===null?t.jsx("div",{className:"mt-0.5 text-muted-foreground",children:"Unknown"}):t.jsxs(t.Fragment,{children:[t.jsxs("div",{className:"mt-0.5 flex min-w-0 items-center gap-1.5",children:[t.jsx("span",{"aria-hidden":"true",className:T("size-2.5 shrink-0 rounded-[2px]",R[s.role])}),t.jsx("span",{className:"truncate text-foreground",children:s.label})]}),t.jsxs("div",{className:"truncate font-mono text-[11px] text-muted-foreground",children:[I(s.percent*100)," | ~",f(s.tokens)]})]})]})]}),e.contextWindow.tokens!==null&&t.jsxs("div",{className:"space-y-1.5",children:[t.jsxs("div",{className:"relative h-2 overflow-hidden rounded-full bg-muted/40",children:[t.jsx("div",{className:T("h-full rounded-full",rt[e.riskLevel]),style:{width:`${String(n)}%`}}),t.jsx("div",{"aria-hidden":"true",className:"absolute top-0 h-full w-px bg-amber-200/70",style:{left:`${String(_.watch*100)}%`}}),t.jsx("div",{"aria-hidden":"true",className:"absolute top-0 h-full w-px bg-red-200/80",style:{left:`${String(_.danger*100)}%`}})]}),t.jsxs("div",{className:"flex justify-between text-[10px] text-muted-foreground",children:[t.jsx("span",{children:"Context window"}),t.jsxs("span",{children:["Watch ",$(_.watch)," / Danger"," ",$(_.danger)]})]})]}),o.length>0&&t.jsx("div",{className:"grid gap-1.5 sm:grid-cols-2",children:o.map(a=>t.jsxs("div",{className:T("rounded border px-2 py-1.5 text-xs",it(a)),children:[t.jsx("div",{className:"font-medium",children:a.title}),t.jsx("div",{className:"mt-0.5 text-[11px] text-muted-foreground",children:a.detail})]},`${a.kind}-${a.title}`))})]})}function ct(e,n){return n.find(r=>r.path===e.path)??null}function dt({groups:e,segments:n,onSegmentActivate:r}){if(e.length===0)return null;const s=e.slice(0,Ze),o=e.length-s.length,a=e.reduce((l,m)=>l+m.repeatedTokens,0);return t.jsxs("section",{className:"space-y-2 rounded border border-border/70 bg-muted/15 p-2",children:[t.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[t.jsx("div",{className:"text-xs font-medium text-foreground",children:"Duplicate Content"}),t.jsxs("div",{className:"font-mono text-[11px] text-muted-foreground",children:[String(e.length)," group",e.length===1?"":"s"," | ~",f(a)," repeated"]})]}),t.jsx("div",{className:"space-y-2",children:s.map((l,m)=>{const i=l.segments.slice(0,et),c=l.segments.length-i.length;return t.jsxs("div",{className:"space-y-1.5 border-t border-border/50 pt-2 first:border-t-0 first:pt-0",children:[t.jsxs("div",{className:"flex min-w-0 items-center gap-2 text-xs",children:[t.jsx("span",{className:"w-5 shrink-0 text-right font-mono text-muted-foreground/70",children:String(m+1)}),t.jsx("span",{className:"min-w-0 flex-1 truncate text-foreground",children:l.firstLabel}),t.jsxs("span",{className:"shrink-0 font-mono text-muted-foreground",children:["x",String(l.count)," | ~",f(l.repeatedTokens)," saved"]})]}),l.preview.length>0&&t.jsx("div",{className:"ml-7 line-clamp-2 break-words rounded bg-background/40 px-2 py-1 font-mono text-[11px] leading-4 text-muted-foreground",children:l.preview}),t.jsxs("div",{className:"ml-7 flex flex-wrap gap-1",children:[i.map((h,v)=>{const x=ct(h,n),k=x===null||r===void 0?void 0:r,w=`${h.label} ~${f(h.tokens)}`;return k===void 0||x===null?t.jsx("span",{className:"inline-flex h-6 max-w-40 items-center rounded border border-border/60 px-1.5 text-[11px] text-muted-foreground",title:w,children:t.jsx("span",{className:"truncate",children:w})},`${h.path}-${v}`):t.jsx("button",{type:"button",onClick:()=>k(x),className:"inline-flex h-6 max-w-40 items-center rounded border border-border/60 px-1.5 text-[11px] text-muted-foreground hover:border-border hover:bg-muted/40 hover:text-foreground",title:"Jump to this duplicate block",children:t.jsx("span",{className:"truncate",children:w})},`${h.path}-${v}`)}),c>0&&t.jsxs("span",{className:"inline-flex h-6 items-center rounded border border-border/40 px-1.5 font-mono text-[11px] text-muted-foreground/70",children:["+",String(c)]})]})]},l.key)})}),o>0&&t.jsxs("div",{className:"border-t border-border/50 pt-2 font-mono text-[11px] text-muted-foreground",children:["+",String(o)," more duplicate group",o===1?"":"s"]})]})}function ut(e){const n=[];for(const r of tt){const s=e.filter(i=>i.role===r);if(s.length===0)continue;const o=s.reduce((i,c)=>i+c.size,0),a=s.reduce((i,c)=>i+c.characters,0),l=te[r],m=`${s.length} segment${s.length===1?"":"s"} grouped as ${nt[r]}`;n.push({role:r,label:l,size:o,characters:a,text:m,path:`role:${r}`})}return n}function mt(e){return[...e].sort((n,r)=>r.size-n.size).slice(0,Qe)}function ht({parsed:e,inputTokens:n,model:r=null,onSegmentActivate:s,segments:o}){const{providers:a}=ce(),[l,m]=N.useState("role"),i=N.useMemo(()=>o??null,[o]),c=N.useMemo(()=>(i??[]).reduce((u,g)=>u+g.size,0),[i]),h=N.useMemo(()=>i===null?[]:ut(i),[i]),v=N.useMemo(()=>i===null?[]:mt(i),[i]),x=N.useMemo(()=>i===null?null:qe({segments:i,inputTokens:n,parsed:e,model:r,providers:a}),[n,r,e,a,i]),k=N.useMemo(()=>i===null||n===null||c===0?!1:Math.abs(n-c)/Math.max(n,c)>=Je,[n,i,c]);if(i===null||i.length===0||e===null&&o===void 0)return null;const w=n!==null&&k?"text-amber-400":"text-muted-foreground",j=l==="role"?h:i,d=c>0?c:j.reduce((u,g)=>u+g.size,0),p=l==="segment"?s:void 0,b=`${String(i.length)} segment${i.length===1?"":"s"}`,y=n===null?"Provider input unknown":`Provider input ${f(n)}`,S=x===null?"Limit unknown":`Limit ${ne(x)}`,E=x===null?"Usage unknown":`${$(x.usagePercent)} used`;return t.jsx(K,{delayDuration:150,children:t.jsxs("div",{className:"px-4 py-3 space-y-3","data-testid":"anatomy-root",children:[t.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-3",children:[t.jsxs("div",{className:"min-w-0",children:[t.jsx("div",{className:"text-sm font-semibold text-foreground",children:"Request Context"}),t.jsxs("div",{className:T("mt-0.5 text-xs font-mono tabular-nums",w),children:["Estimated ~",f(c)," tokens | ",y," | ",S," |"," ",E," | ",b]})]}),t.jsx("div",{className:"inline-flex shrink-0 rounded border border-border bg-muted/20 p-0.5",role:"group","aria-label":"Context breakdown mode",children:st.map(u=>t.jsx("button",{type:"button","aria-pressed":l===u.value,onClick:()=>m(u.value),className:T("h-6 rounded-sm px-2 text-[11px] font-medium transition-colors",l===u.value?"bg-background text-foreground shadow-sm":"text-muted-foreground hover:text-foreground"),children:u.label},u.value))})]}),k&&t.jsxs("div",{className:"inline-flex items-center gap-1.5 text-xs text-amber-400",children:[t.jsxs(M,{children:[t.jsx(O,{asChild:!0,children:t.jsx("button",{type:"button",className:"inline-flex items-center hover:text-amber-300","aria-label":"Token estimate differs from provider input",children:t.jsx(ue,{className:"size-3.5"})})}),t.jsx(A,{className:"max-w-xs text-xs",children:"The bar uses a local token estimate. Provider input tokens remain the source of truth for billing and context-window usage."})]}),"Estimate differs from provider-reported input."]}),x!==null&&t.jsx(lt,{intelligence:x}),x!==null&&t.jsx(dt,{groups:x.duplicateGroups,segments:i,onSegmentActivate:s}),t.jsx(Xe,{segments:j,totalTokens:d,showLabels:l==="segment",onActivate:p}),t.jsx("div",{className:"flex flex-wrap items-center gap-x-3 gap-y-1.5 text-[11px] text-muted-foreground",children:h.map(u=>{const g=c>0?u.size/c*100:0;return t.jsxs("div",{className:"inline-flex items-center gap-1.5",children:[t.jsx("span",{"aria-hidden":"true",className:T("size-2.5 rounded-[2px]",R[u.role])}),t.jsx("span",{children:u.label}),t.jsx("span",{className:"font-mono text-muted-foreground/70",children:I(g)})]},u.role)})}),t.jsxs("div",{className:"space-y-1.5",children:[t.jsx("div",{className:"text-xs font-medium text-foreground",children:"Top Contributors"}),t.jsx("div",{className:"grid gap-1",children:v.map((u,g)=>{const se=c>0?u.size/c*100:0,W=s,G=t.jsxs(t.Fragment,{children:[t.jsx("span",{className:"w-5 shrink-0 text-right font-mono text-muted-foreground/70",children:String(g+1)}),t.jsx("span",{"aria-hidden":"true",className:T("size-2.5 shrink-0 rounded-[2px]",R[u.role])}),t.jsx("span",{className:"min-w-0 flex-1 truncate text-left",children:u.label}),t.jsxs("span",{className:"shrink-0 font-mono text-muted-foreground",children:[I(se)," | ~",f(u.size)]})]});return W!==void 0?t.jsx("button",{type:"button",onClick:()=>W(u),className:"flex h-7 items-center gap-2 rounded px-1.5 text-xs text-muted-foreground hover:bg-muted/40 hover:text-foreground",title:"Jump to this request block",children:G},`${u.path}-${g}`):t.jsx("div",{className:"flex h-7 items-center gap-2 rounded px-1.5 text-xs text-muted-foreground",children:G},`${u.path}-${g}`)})})]})]})})}export{ht as RequestAnatomy};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{R as s,j as e}from"./main-DE6Y4-wV.js";import{P as i}from"./ProxyViewerContainer-DIAgurux.js";function t(){const{sessionId:o}=s.useParams();return e.jsx(i,{initialSessionId:o},o)}export{t as component};
|