@tangle-network/sandbox-cli 0.21.63 → 0.21.65

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.
Files changed (136) hide show
  1. package/README.md +31 -3
  2. package/SKILL.md +29 -1
  3. package/dist/graph-native-CS_TmaCK.mjs +1 -0
  4. package/dist/graph-viewer/Analytics-bWsqhurt.js +1001 -0
  5. package/dist/graph-viewer/{AnswerStrip-DhwqOyxI.js → AnswerStrip-COxV7gLW.js} +2 -2
  6. package/dist/graph-viewer/Checks-CQGmKcQ0.js +164 -0
  7. package/dist/graph-viewer/Conversations-DgCshBAf.js +627 -0
  8. package/dist/graph-viewer/{Files-DtZhf0ii.js → Files-CvIOGrAs.js} +81 -90
  9. package/dist/graph-viewer/LiveRun-DHmsr6F7.js +311 -0
  10. package/dist/graph-viewer/{Outputs-QET3nPPp.js → Outputs-rwBg_x36.js} +4 -4
  11. package/dist/graph-viewer/Overview-C150tkVa.js +194 -0
  12. package/dist/graph-viewer/{RunOverview-DJQDAMIx.js → RunOverview-CSqsunqf.js} +2 -2
  13. package/dist/graph-viewer/RunPage-F_prVwiV.js +286 -0
  14. package/dist/graph-viewer/Timeline-BFDywlmz.js +335 -0
  15. package/dist/graph-viewer/Today-BdDuqZGF.js +623 -0
  16. package/dist/graph-viewer/Topology-SAfGtd5u.js +238 -0
  17. package/dist/graph-viewer/Traces-BYqXaS_s.js +254 -0
  18. package/dist/graph-viewer/{WallPages-4d9QUZDq.js → WallPages-MM70VZrC.js} +48 -30
  19. package/dist/graph-viewer/agent-runtime.js +55 -55
  20. package/dist/graph-viewer/{data-BJmP7F1M.js → data-DTGmre1W.js} +31 -27
  21. package/dist/graph-viewer/harness-sessions.js +1 -1
  22. package/dist/graph-viewer/index.js +1357 -1392
  23. package/dist/graph-viewer/{lazy-pages-DM0cZM10.js → lazy-pages-BYuq_L_n.js} +9 -5
  24. package/dist/graph-viewer/{outputs-model-CGdvjkQh.js → outputs-model-CHTx8rMz.js} +2 -2
  25. package/dist/graph-viewer/{viewer/plain-words-CgvxtEOa.js → plain-words-BrMHl0On.js} +9 -4
  26. package/dist/graph-viewer/receipt.js +2 -2
  27. package/dist/graph-viewer/record-CsP_3NJS.js +612 -0
  28. package/dist/graph-viewer/record-part-CuT9Xw37.js +334 -0
  29. package/dist/graph-viewer/record.js +2 -336
  30. package/dist/graph-viewer/report-viewer.js +65 -65
  31. package/dist/graph-viewer/report.js +1 -1
  32. package/dist/graph-viewer/research-publication.js +1 -1
  33. package/dist/graph-viewer/{run-files-C1NgzM0l.js → run-files-BckQDdTD.js} +1 -1
  34. package/dist/graph-viewer/{run-receipt-Bvi4-KVM.js → run-receipt-Bt2iXJUy.js} +1 -0
  35. package/dist/graph-viewer/schemas/agent-workspace.play.v1.json +3 -0
  36. package/dist/graph-viewer/schemas/agent-workspace.plays.v1.json +2 -0
  37. package/dist/graph-viewer/schemas/agent-workspace.run.v1.json +1 -0
  38. package/dist/graph-viewer/styles.css +4559 -2385
  39. package/dist/graph-viewer/trace-spans.js +1 -1
  40. package/dist/graph-viewer/ui-xa5w5bEN.js +889 -0
  41. package/dist/graph-viewer/viewer/{AgentGraphCanvas-CMdOlSlh-4EervjeC.js → AgentGraphCanvas-B74GN1o6-BZEumF7-.js} +2610 -2707
  42. package/dist/graph-viewer/viewer/Analytics-E3XS570U.js +1002 -0
  43. package/dist/graph-viewer/viewer/{AnswerStrip-CGUyXuYH.js → AnswerStrip-B7xMU57A.js} +2 -2
  44. package/dist/graph-viewer/viewer/Checks-CJ5XSHbv.js +165 -0
  45. package/dist/graph-viewer/viewer/Conversations-AX8G7Qyl.js +904 -0
  46. package/dist/graph-viewer/viewer/Files-DxL1576V.js +630 -0
  47. package/dist/graph-viewer/viewer/LiveRun-B-BckyEj.js +820 -0
  48. package/dist/graph-viewer/viewer/{Outputs-CumGyjQo.js → Outputs-BoIpgfMv.js} +24 -23
  49. package/dist/graph-viewer/viewer/Overview-Dzg5XJgy.js +436 -0
  50. package/dist/graph-viewer/viewer/RunPage-NtevWXBs.js +285 -0
  51. package/dist/graph-viewer/viewer/{Scores-ZS16yk0n.js → Scores-Dgv4WePL.js} +3 -3
  52. package/dist/graph-viewer/viewer/Timeline-CzY3LVDu.js +335 -0
  53. package/dist/graph-viewer/viewer/Today-Bi9IIwuh.js +623 -0
  54. package/dist/graph-viewer/viewer/Topology-CzjqSFXH.js +239 -0
  55. package/dist/graph-viewer/viewer/Traces-CMX0H1VU.js +254 -0
  56. package/dist/graph-viewer/viewer/{WallPages-CzWpyIfp.js → WallPages-Clj4bORg.js} +50 -32
  57. package/dist/graph-viewer/viewer/addon-webgl-BSCscllv.js +4027 -0
  58. package/dist/graph-viewer/viewer/agent-record-BrP-ENHg.css +2 -0
  59. package/dist/graph-viewer/viewer/{bot-D6Nrej7Z.js → bot-BaQU59LG.js} +1 -1
  60. package/dist/graph-viewer/viewer/{chevron-right-D_5IKLxu.js → chevron-right-Xn05jYLT.js} +1 -1
  61. package/dist/graph-viewer/viewer/{createLucideIcon-yH0cxLMy.js → createLucideIcon-BSphcoOJ.js} +1 -1
  62. package/dist/graph-viewer/viewer/dashboard-D3JhmRhe-DSl0zhkw.js +371 -0
  63. package/dist/graph-viewer/viewer/{data-CkWfWr7i.js → data-CVHeKhrh.js} +144 -139
  64. package/dist/graph-viewer/viewer/dist-4_KJz8ZM.js +349 -0
  65. package/dist/graph-viewer/viewer/dist-Dy-wrdTt.js +1615 -0
  66. package/dist/graph-viewer/viewer/es2015-utW4DTOJ.js +3506 -0
  67. package/dist/graph-viewer/viewer/{final-output-kwY11u9X.js → final-output-BYT-g-9j.js} +1 -1
  68. package/dist/graph-viewer/viewer/flow-waterfall-model-DvrgPLGS-BdThSFH-.js +2696 -0
  69. package/dist/graph-viewer/viewer/git-branch-BzTbIcYL.js +28 -0
  70. package/dist/graph-viewer/viewer/{highlights-Btsi5OXl.js → highlights-DWeSCtiR.js} +4 -4
  71. package/dist/graph-viewer/viewer/jsx-runtime-DPT6sCLq.js +319 -0
  72. package/dist/graph-viewer/viewer/lazy-pages-ChiMJ8r_.js +803 -0
  73. package/dist/graph-viewer/viewer/{markdown-CX_sVrXB.js → markdown-lADwhD7y.js} +2324 -2608
  74. package/dist/graph-viewer/viewer/model-brand-bTcMjQtB-RSb7EbGB.js +476 -0
  75. package/dist/graph-viewer/viewer/{page-header-Brq611fd.js → page-header-QbUg8F8i.js} +12 -11
  76. package/dist/graph-viewer/{plain-words-CgvxtEOa.js → viewer/plain-words-BrMHl0On.js} +9 -4
  77. package/dist/graph-viewer/viewer/primitives-znfPK9NP-B6UO7uDr.js +346 -0
  78. package/dist/graph-viewer/viewer/react-DQ7E2Epi.js +4254 -0
  79. package/dist/graph-viewer/viewer/{react-dom-t1L4_-il.js → react-dom-BEusmvQH.js} +1 -1
  80. package/dist/graph-viewer/viewer/record-DZnT6SWN-H-ul3U3a.js +3523 -0
  81. package/dist/graph-viewer/viewer/record-W39D5MO-.js +1 -0
  82. package/dist/graph-viewer/viewer/record-part-CbweyYoV.js +335 -0
  83. package/dist/graph-viewer/viewer/{segmented-control-BaJmvTNd.js → segmented-control-Di1mbQlP.js} +27 -26
  84. package/dist/graph-viewer/viewer/{shiki-Qnby7Sh6.js → shiki-BfNNlmfZ.js} +15 -15
  85. package/dist/graph-viewer/viewer/status-meta-S0kV_RDp.js +273 -0
  86. package/dist/graph-viewer/viewer/{stream-tokenizer-CWtnjmRd.js → stream-tokenizer-B5wWaM3U.js} +12 -12
  87. package/dist/graph-viewer/viewer/{themes-1i1fzpRk.js → themes-DuRxHiga.js} +1 -1
  88. package/dist/graph-viewer/viewer/ui-Co03nZUX.js +889 -0
  89. package/dist/graph-viewer/viewer/utils-BuObIC0n.js +1815 -0
  90. package/dist/graph-viewer/viewer/workbench-E6_5q_oL.js +28351 -0
  91. package/dist/graph-viewer/viewer/workflows--mZpHYqo.js +3298 -0
  92. package/dist/graph-viewer/viewer/workspace-cKs9sGEO.js +2468 -0
  93. package/dist/graph-viewer/{workspace-model-Ewf17pTW.js → workspace-model-BkPl_J8E.js} +1 -1
  94. package/dist/graph-viewer/workspace-viewer.js +7452 -7489
  95. package/dist/graph-viewer/workspace.js +1 -1
  96. package/dist/index.mjs +27 -22
  97. package/package.json +10 -9
  98. package/dist/graph-viewer/Analytics-DFWW8Phh.js +0 -938
  99. package/dist/graph-viewer/Checks-qgqV4xgV.js +0 -155
  100. package/dist/graph-viewer/Conversations-CGB45kpj.js +0 -545
  101. package/dist/graph-viewer/LiveRun-C21wUKAY.js +0 -210
  102. package/dist/graph-viewer/Overview-BjeLsA2I.js +0 -506
  103. package/dist/graph-viewer/RunPage-CkkcBEUe.js +0 -258
  104. package/dist/graph-viewer/Timeline-C2Xolk0t.js +0 -293
  105. package/dist/graph-viewer/Today-BVVDtSVN.js +0 -660
  106. package/dist/graph-viewer/Topology-DO5XX8e4.js +0 -545
  107. package/dist/graph-viewer/Traces-BhMxjNgw.js +0 -259
  108. package/dist/graph-viewer/part-events-BrLrg_EV.js +0 -276
  109. package/dist/graph-viewer/record-part-CZal_IMH.js +0 -1408
  110. package/dist/graph-viewer/ui-D8QZRsC3.js +0 -938
  111. package/dist/graph-viewer/viewer/Analytics-DD__nbLm.js +0 -939
  112. package/dist/graph-viewer/viewer/Checks-Ds5M7eAW.js +0 -156
  113. package/dist/graph-viewer/viewer/Conversations-C1n0EBBd.js +0 -819
  114. package/dist/graph-viewer/viewer/Files-Cjr7NMU_.js +0 -448
  115. package/dist/graph-viewer/viewer/LiveRun-uPTkPSjo.js +0 -6772
  116. package/dist/graph-viewer/viewer/Overview-4Umk14_2.js +0 -507
  117. package/dist/graph-viewer/viewer/RunPage-DZlBW7Va.js +0 -257
  118. package/dist/graph-viewer/viewer/Timeline-BnK6-yBR.js +0 -294
  119. package/dist/graph-viewer/viewer/Today-a_-oNigi.js +0 -660
  120. package/dist/graph-viewer/viewer/Topology-CQPCLQT6.js +0 -546
  121. package/dist/graph-viewer/viewer/Traces-C0IGk0L4.js +0 -259
  122. package/dist/graph-viewer/viewer/WorkflowGraph-DZ3xejKE-jRXKeSrg.js +0 -1559
  123. package/dist/graph-viewer/viewer/agent-record-Dw772ROs.css +0 -2
  124. package/dist/graph-viewer/viewer/agent-timeline-Cs9Qbpvo.js +0 -1798
  125. package/dist/graph-viewer/viewer/dist-C1-7EfoW.js +0 -488
  126. package/dist/graph-viewer/viewer/file-text-m7a3piQF.js +0 -47
  127. package/dist/graph-viewer/viewer/jsx-runtime-DQWyJOhv.js +0 -2136
  128. package/dist/graph-viewer/viewer/lazy-pages-BowaGsg-.js +0 -20
  129. package/dist/graph-viewer/viewer/model-brand-bTcMjQtB-fagiBQam.js +0 -723
  130. package/dist/graph-viewer/viewer/popover-CvOAjlnk.js +0 -5329
  131. package/dist/graph-viewer/viewer/react-CY3IbSNO.js +0 -4262
  132. package/dist/graph-viewer/viewer/record-part-D3_Anfpe.js +0 -1329
  133. package/dist/graph-viewer/viewer/terminal-83J_I4Ne.js +0 -52
  134. package/dist/graph-viewer/viewer/ui-C9b1rIUH.js +0 -938
  135. package/dist/graph-viewer/viewer/workspace-CekmOBs3.js +0 -25100
  136. package/dist/graph-viewer/viewer/x-DOc2URqZ.js +0 -56
@@ -1,259 +0,0 @@
1
- import { C as e, E as t, M as n, S as r, _ as i, d as a, l as o, o as s, p as c, u as l, v as u } from "./ui-D8QZRsC3.js";
2
- import { agentParam as d } from "./RunPage-CkkcBEUe.js";
3
- import { useEffect as f, useMemo as p, useRef as m, useState as h } from "react";
4
- import { Fragment as g, jsx as _, jsxs as v } from "react/jsx-runtime";
5
- import { SegmentedControl as y } from "@tangle-network/ui/primitives";
6
- //#region src/workspace/run/Traces.tsx
7
- var b = 34;
8
- function x({ m: x, doc: S, agent: C, route: w }) {
9
- let T = w.params.get("agent") ? C : null, [E, D] = h("all"), [O, k] = h(0), A = p(() => x.steps.filter((e) => !T || e.agent.id === T), [x, T]), j = p(() => ({
10
- all: A.length,
11
- model: A.filter((e) => e.step.kind === "model").length,
12
- tool: A.filter((e) => e.step.kind === "tool").length,
13
- failed: A.filter((e) => e.step.failed).length
14
- }), [A]), M = p(() => A.filter(({ step: e }) => E === "all" || (E === "failed" ? e.failed : e.kind === E)), [A, E]), N = p(() => Math.log10(Math.max(10, ...M.map((e) => e.step.d))), [M]), P = m(null), F = i(P, M.length, b, 8);
15
- f(() => {
16
- k(0), P.current && (P.current.scrollTop = 0);
17
- }, [E, T]);
18
- let I = r(x.t0), L = (e, t = !1) => {
19
- let n = Math.max(0, Math.min(M.length - 1, e));
20
- k(n);
21
- let r = P.current;
22
- if (r && t) {
23
- let e = n * b;
24
- e < r.scrollTop ? r.scrollTop = e : e + b + 36 > r.scrollTop + r.clientHeight && (r.scrollTop = e + b + 36 - r.clientHeight), requestAnimationFrame(() => r.querySelector(`[data-i="${n}"]`)?.focus());
25
- }
26
- }, R = (e) => {
27
- (e.key === "ArrowDown" || e.key === "ArrowUp") && (e.preventDefault(), L(O + (e.key === "ArrowDown" ? 1 : -1), !0));
28
- }, z = M[O], B = a(x, (e) => e.steps.length > 0, (t) => `${e(t.steps.length)} steps`);
29
- return /* @__PURE__ */ v("section", {
30
- className: "rp-card rp-traces",
31
- "aria-label": "Traces",
32
- children: [/* @__PURE__ */ v("div", {
33
- className: "rp-hd rp-hd-tools",
34
- style: { paddingLeft: 8 },
35
- children: [/* @__PURE__ */ _(s, {
36
- label: "Agent",
37
- options: B,
38
- groups: l(x),
39
- all: {
40
- label: "All agents",
41
- meta: `${e(x.totals.steps)} steps`
42
- },
43
- value: T,
44
- width: 340,
45
- placeholder: `Search ${B.length} agents`,
46
- style: { width: 260 },
47
- onChange: (e) => w.go("traces", { agent: e ? d(S.run.id, e) : null }),
48
- children: T ? x.byId.get(T)?.name : "All agents"
49
- }), /* @__PURE__ */ _(y, {
50
- "aria-label": "Kind",
51
- value: E,
52
- onValueChange: D,
53
- options: [
54
- "all",
55
- "model",
56
- "tool",
57
- "failed"
58
- ].map((t) => ({
59
- value: t,
60
- label: t === "all" ? "All" : t[0].toUpperCase() + t.slice(1),
61
- adornment: /* @__PURE__ */ _("span", {
62
- className: "ct",
63
- children: e(j[t])
64
- })
65
- }))
66
- })]
67
- }), /* @__PURE__ */ v("div", {
68
- className: "rp-trw",
69
- children: [/* @__PURE__ */ v("div", {
70
- className: "rp-tbl",
71
- ref: P,
72
- role: "grid",
73
- "aria-label": "Spans",
74
- "aria-rowcount": M.length,
75
- onKeyDown: R,
76
- children: [
77
- /* @__PURE__ */ v("div", {
78
- className: "rp-tr th",
79
- role: "row",
80
- children: [
81
- /* @__PURE__ */ v("span", {
82
- role: "columnheader",
83
- children: ["Start", /* @__PURE__ */ _("span", {
84
- className: "ph-hide",
85
- children: " (UTC)"
86
- })]
87
- }),
88
- /* @__PURE__ */ _("span", {
89
- role: "columnheader",
90
- children: "Agent"
91
- }),
92
- /* @__PURE__ */ _("span", {
93
- role: "columnheader",
94
- children: "Kind"
95
- }),
96
- /* @__PURE__ */ _("span", {
97
- role: "columnheader",
98
- children: "Name"
99
- }),
100
- /* @__PURE__ */ _("span", {
101
- role: "columnheader",
102
- className: "r",
103
- children: "Duration"
104
- }),
105
- /* @__PURE__ */ _("span", {
106
- role: "columnheader",
107
- children: "Status"
108
- })
109
- ]
110
- }),
111
- /* @__PURE__ */ _("div", { style: { height: F.before } }),
112
- M.slice(F.first, F.last).map(({ agent: e, step: n }, r) => {
113
- let i = F.first + r;
114
- return /* @__PURE__ */ v("div", {
115
- "data-i": i,
116
- className: `rp-tr${n.failed ? " failed" : ""}`,
117
- role: "row",
118
- "aria-selected": i === O,
119
- tabIndex: i === O ? 0 : -1,
120
- onClick: () => L(i),
121
- children: [
122
- /* @__PURE__ */ _("span", {
123
- className: "m",
124
- children: I(n.t)
125
- }),
126
- /* @__PURE__ */ _("span", {
127
- title: e.name,
128
- children: c(e, 30)
129
- }),
130
- /* @__PURE__ */ v("span", {
131
- className: "kind",
132
- children: [/* @__PURE__ */ _("i", { className: n.kind }), n.kind]
133
- }),
134
- /* @__PURE__ */ _("span", {
135
- className: "m nm",
136
- title: n.kind === "tool" ? `${n.tool}${n.target ? ` ${n.target}` : ""}` : void 0,
137
- children: n.kind === "model" ? n.model?.split("/").pop() ?? e.model ?? "model" : n.kind === "tool" ? /* @__PURE__ */ v(g, { children: [n.tool, n.target && /* @__PURE__ */ v("span", {
138
- className: "muted",
139
- children: [" ", n.target]
140
- })] }) : /* @__PURE__ */ _("span", {
141
- className: "muted",
142
- children: "waiting on a spawned agent"
143
- })
144
- }),
145
- /* @__PURE__ */ v("span", {
146
- className: "m r dur",
147
- children: [/* @__PURE__ */ _("b", { style: { width: Math.max(2, Math.log10(Math.max(n.d, 1)) / N * 56) } }), t(n.d)]
148
- }),
149
- /* @__PURE__ */ _("span", { children: n.failed ? /* @__PURE__ */ _("span", {
150
- className: "f",
151
- children: "✕ failed"
152
- }) : /* @__PURE__ */ _("span", {
153
- className: "dim",
154
- children: "ok"
155
- }) })
156
- ]
157
- }, i);
158
- }),
159
- /* @__PURE__ */ _("div", { style: { height: F.after } })
160
- ]
161
- }), /* @__PURE__ */ v("aside", {
162
- className: "rp-trd",
163
- "aria-label": "Span",
164
- children: [/* @__PURE__ */ _("div", {
165
- className: "rp-trd-h",
166
- children: "Span"
167
- }), /* @__PURE__ */ _("div", {
168
- className: "rp-scroll",
169
- children: z ? /* @__PURE__ */ v(g, { children: [
170
- /* @__PURE__ */ _("h5", {
171
- className: "rp-subh",
172
- children: "This span"
173
- }),
174
- /* @__PURE__ */ v("dl", {
175
- className: "rp-kv",
176
- children: [
177
- /* @__PURE__ */ _("dt", { children: "Agent" }),
178
- /* @__PURE__ */ _("dd", { children: z.agent.name }),
179
- /* @__PURE__ */ _("dt", { children: z.step.kind === "tool" ? "Tool" : z.step.kind === "model" ? "Model" : "Kind" }),
180
- /* @__PURE__ */ _("dd", { children: z.step.kind === "tool" ? `${z.step.tool ?? "tool"}${z.step.target ? ` ${z.step.target}` : ""}` : z.step.kind === "model" ? z.step.model ?? z.agent.node.model ?? "model" : "waiting on a spawned agent" }),
181
- /* @__PURE__ */ _("dt", { children: "Started" }),
182
- /* @__PURE__ */ v("dd", { children: [new Date(x.t0 + z.step.t).toISOString().slice(0, 19).replace("T", " "), " UTC"] }),
183
- /* @__PURE__ */ _("dt", { children: "Duration" }),
184
- /* @__PURE__ */ v("dd", { children: [t(z.step.d), z.step.latency === null ? "" : ` · first token ${t(z.step.latency)}`] }),
185
- z.step.tokens && /* @__PURE__ */ v(g, { children: [/* @__PURE__ */ _("dt", { children: "Tokens" }), /* @__PURE__ */ v("dd", { children: [
186
- u(z.step.tokens.input),
187
- " in · ",
188
- u(z.step.tokens.output),
189
- " out · ",
190
- u(z.step.tokens.cacheRead),
191
- " cached"
192
- ] })] }),
193
- z.step.usd !== null && /* @__PURE__ */ v(g, { children: [/* @__PURE__ */ _("dt", { children: "Cost" }), /* @__PURE__ */ _("dd", { children: n(z.step.usd) })] }),
194
- /* @__PURE__ */ _("dt", { children: "Status" }),
195
- /* @__PURE__ */ _("dd", { children: z.step.failed ? /* @__PURE__ */ _("span", {
196
- className: "f",
197
- children: "✕ failed"
198
- }) : "ok" })
199
- ]
200
- }),
201
- /* @__PURE__ */ v("details", {
202
- className: "rp-raw",
203
- children: [/* @__PURE__ */ _("summary", { children: "Raw span" }), /* @__PURE__ */ _("pre", {
204
- className: "rp-json",
205
- children: JSON.stringify({
206
- agent: z.agent.name,
207
- kind: z.step.kind,
208
- ...z.step.kind === "tool" ? { tool: z.step.tool } : z.step.kind === "model" ? { model: z.step.model ?? z.agent.node.model } : {},
209
- ...z.step.target ? { target: z.step.target } : {},
210
- startedAt: new Date(x.t0 + z.step.t).toISOString(),
211
- durationMs: z.step.d,
212
- failed: z.step.failed,
213
- ...z.step.latency === null ? {} : { latencyMs: z.step.latency },
214
- tokens: z.step.tokens,
215
- ...z.step.usd === null ? {} : { billedUsd: z.step.usd }
216
- }, null, 2)
217
- })]
218
- }),
219
- /* @__PURE__ */ v("h5", {
220
- className: "rp-subh",
221
- children: [z.agent.name, ", whole run"]
222
- }),
223
- /* @__PURE__ */ v("dl", {
224
- className: "rp-kv",
225
- children: [
226
- /* @__PURE__ */ _("dt", { children: "Tokens" }),
227
- /* @__PURE__ */ v("dd", { children: [u(z.agent.tokens), z.agent.byClass ? ` · ${u(z.agent.byClass.input)} in · ${u(z.agent.byClass.output)} out · ${u(z.agent.byClass.cacheRead)} cached` : ""] }),
228
- /* @__PURE__ */ _("dt", { children: "Cost" }),
229
- /* @__PURE__ */ _("dd", { children: o(z.agent) }),
230
- /* @__PURE__ */ _("dt", { children: "Model calls" }),
231
- /* @__PURE__ */ v("dd", { children: [
232
- e(z.agent.modelCalls),
233
- " · p50 ",
234
- t(z.agent.latency.p50),
235
- " · p99 ",
236
- t(z.agent.latency.p99)
237
- ] }),
238
- /* @__PURE__ */ _("dt", { children: "Tool calls" }),
239
- /* @__PURE__ */ v("dd", { children: [
240
- e(z.agent.toolCalls),
241
- " · ",
242
- z.agent.toolFailures,
243
- " failed"
244
- ] }),
245
- /* @__PURE__ */ _("dt", { children: "Restarts" }),
246
- /* @__PURE__ */ _("dd", { children: z.agent.restarts.length })
247
- ]
248
- })
249
- ] }) : /* @__PURE__ */ _("p", {
250
- className: "ws-status",
251
- children: "No span matches."
252
- })
253
- })]
254
- })]
255
- })]
256
- });
257
- }
258
- //#endregion
259
- export { x as Traces };
@@ -1,276 +0,0 @@
1
- //#region src/adapters/part-events.ts
2
- var e = (e) => typeof e == "string" ? e : e == null ? "" : JSON.stringify(e), t = (e) => typeof e == "number" && Number.isFinite(e) ? e : void 0, n = (e) => {
3
- if (typeof e != "string" && typeof e != "number") return null;
4
- let t = new Date(typeof e == "number" && e < 1e11 ? e * 1e3 : e);
5
- return Number.isFinite(t.valueOf()) && t.valueOf() >= Date.UTC(2001, 0, 1) && t.valueOf() < Date.UTC(2100, 0, 1) ? t.toISOString() : null;
6
- };
7
- function r(r, i, a, o, s, c, l) {
8
- let u = 0, d = [], f = /* @__PURE__ */ new Map(), p = /* @__PURE__ */ new Map(), m = [], h = i.start ? Date.parse(i.start) : null, g, _ = null, v = [];
9
- s.forEach((e, n) => {
10
- let r = e?.data ?? {};
11
- if (e?.type === "message.part.updated" && r.part?.id) {
12
- let e = r.part, i = t(e.state?.time?.start) ?? t(e.time?.start);
13
- i !== void 0 && (h = Math.max(h ?? 0, i)), f.has(e.id) || d.push(e.id);
14
- let a = f.get(e.id);
15
- f.set(e.id, {
16
- part: e,
17
- index: n,
18
- firstMs: a?.firstMs ?? h
19
- });
20
- let o = t(e.state?.time?.end) ?? t(e.time?.end);
21
- o !== void 0 && (h = Math.max(h ?? 0, o));
22
- } else if (e?.type === "raw" && r.event?.type === "item.completed" && r.event.item?.id) {
23
- let e = r.event.item;
24
- p.has(e.id) || m.push(e.id), p.set(e.id, {
25
- item: e,
26
- index: n,
27
- firstMs: h
28
- });
29
- } else e?.type === "raw" && r.event?.role === "tool" && typeof r.event.tool_call_id == "string" ? v.push({
30
- index: n,
31
- at: h,
32
- kind: "tool-result",
33
- data: r.event
34
- }) : e?.type === "raw" && r.event?.type === "rate_limit_event" ? v.push({
35
- index: n,
36
- at: h,
37
- kind: "rate-limit",
38
- data: r.event.rate_limit_info ?? {}
39
- }) : e?.type === "done" ? _ = {
40
- data: r,
41
- usage: e.usage,
42
- index: n
43
- } : e?.type === "result" && r.outcome && r.outcome.type !== "completed" && v.push({
44
- index: n,
45
- at: h,
46
- kind: "execution-error",
47
- data: r.outcome
48
- });
49
- });
50
- let y = (e) => n(e ?? void 0) ?? i.start ?? null;
51
- for (let n of d) {
52
- let { part: s, index: d } = f.get(n), p = f.get(n).firstMs;
53
- if (s.type === "text" || s.type === "reasoning") {
54
- let l = e(s.text);
55
- if (!l) continue;
56
- let f = r.clip(l, () => c.full(d, [
57
- "data",
58
- "part",
59
- "text"
60
- ], l)), m = y(t(s.time?.start) ?? p);
61
- if (!m) continue;
62
- r.emit({
63
- node: i.id,
64
- at: m,
65
- kind: "message",
66
- category: "reasoning",
67
- label: "assistant",
68
- source: {
69
- path: a,
70
- sha256: o.sha256,
71
- ...c.where(d)
72
- },
73
- detail: {
74
- role: "assistant",
75
- nativeRecordId: n,
76
- ...s.type === "text" ? { publicText: f.text } : { reasoning: f.text },
77
- ...f.clip ? { clip: f.clip } : {},
78
- ...s.time?.start ? {} : { atBasis: "carried" }
79
- }
80
- }), u++, g = r.events.at(-1);
81
- } else if (s.type === "tool") {
82
- let f = s.state ?? {}, m = e(s.tool), h = e(s.callID || n), g = l(m, f.input), _ = r.clip(JSON.stringify(f.input ?? {}), () => c.full(d, [
83
- "data",
84
- "part",
85
- "state",
86
- "input"
87
- ], f.input ?? {})), v = t(f.time?.start) ?? p, b = y(v);
88
- if (!b) continue;
89
- let x = f.status === "completed" || f.status === "error";
90
- if (r.emit({
91
- node: i.id,
92
- at: b,
93
- kind: "message",
94
- category: g,
95
- label: `assistant · ${m}`,
96
- source: {
97
- path: a,
98
- sha256: o.sha256,
99
- ...c.where(d),
100
- ...x ? { item: 0 } : {}
101
- },
102
- detail: {
103
- role: "assistant",
104
- nativeRecordId: n,
105
- publicToolCalls: [{
106
- id: h,
107
- name: m,
108
- input: _.text,
109
- ..._.clip ? { clip: _.clip } : {}
110
- }]
111
- }
112
- }), u++, x) {
113
- let s = f.status === "error" ? "error" : "output", l = e(f[s]), u = r.clip(l, () => c.full(d, [
114
- "data",
115
- "part",
116
- "state",
117
- s
118
- ], f[s])), p = t(f.time?.end);
119
- r.emit({
120
- node: i.id,
121
- at: y(p ?? v),
122
- kind: "tool-result",
123
- category: g,
124
- label: `tool result · ${m}`,
125
- source: {
126
- path: a,
127
- sha256: o.sha256,
128
- ...c.where(d),
129
- item: 1
130
- },
131
- detail: {
132
- role: "toolResult",
133
- nativeRecordId: n,
134
- toolCallId: h,
135
- isError: f.status === "error",
136
- publicText: u.text,
137
- ...u.clip ? { clip: u.clip } : {},
138
- ...p !== void 0 && v != null ? { durationMs: Math.max(0, p - v) } : {}
139
- }
140
- });
141
- }
142
- }
143
- }
144
- for (let t of m) {
145
- let { item: n, index: s, firstMs: d } = p.get(t);
146
- if (n.type !== "command_execution" && n.type !== "mcp_tool_call" && n.type !== "web_search" && n.type !== "file_change") continue;
147
- let f = y(d);
148
- if (!f) continue;
149
- let m = n.type === "mcp_tool_call" ? e(n.tool ?? n.name) : n.type, h = n.type === "command_execution" ? { command: n.command } : n.type === "web_search" ? { query: n.query } : n.type === "file_change" ? { changes: n.changes } : n.arguments ?? {}, g = r.clip(JSON.stringify(h), () => c.full(s, [
150
- "data",
151
- "event",
152
- "item"
153
- ], n)), _ = l(m, h);
154
- r.emit({
155
- node: i.id,
156
- at: f,
157
- kind: "message",
158
- category: _,
159
- label: `assistant · ${m}`,
160
- source: {
161
- path: a,
162
- sha256: o.sha256,
163
- ...c.where(s),
164
- item: 0
165
- },
166
- detail: {
167
- role: "assistant",
168
- nativeRecordId: e(t),
169
- publicToolCalls: [{
170
- id: e(t),
171
- name: m,
172
- input: g.text,
173
- ...g.clip ? { clip: g.clip } : {}
174
- }]
175
- }
176
- });
177
- let v = e(n.aggregated_output ?? n.result ?? n.output ?? n.status), b = r.clip(v, () => c.full(s, [
178
- "data",
179
- "event",
180
- "item"
181
- ], n));
182
- r.emit({
183
- node: i.id,
184
- at: f,
185
- kind: "tool-result",
186
- category: _,
187
- label: `tool result · ${m}`,
188
- source: {
189
- path: a,
190
- sha256: o.sha256,
191
- ...c.where(s),
192
- item: 1
193
- },
194
- detail: {
195
- role: "toolResult",
196
- nativeRecordId: e(t),
197
- toolCallId: e(t),
198
- isError: typeof n.exit_code == "number" && n.exit_code !== 0 || n.status === "failed",
199
- publicText: b.text,
200
- ...b.clip ? { clip: b.clip } : {},
201
- atBasis: "carried"
202
- }
203
- }), u += 2;
204
- }
205
- for (let n of v) {
206
- let s = y(n.at);
207
- if (!s) continue;
208
- if (n.kind === "tool-result") {
209
- let t = n.data.content, l = typeof t == "string" ? t : Array.isArray(t) ? t.map((t) => e(t?.text ?? t)).join("\n") : e(t), d = r.clip(l, () => c.full(n.index, [
210
- "data",
211
- "event",
212
- "content"
213
- ], t));
214
- r.emit({
215
- node: i.id,
216
- at: s,
217
- kind: "tool-result",
218
- category: "other",
219
- label: "tool result",
220
- source: {
221
- path: a,
222
- sha256: o.sha256,
223
- ...c.where(n.index)
224
- },
225
- detail: {
226
- role: "toolResult",
227
- toolCallId: e(n.data.tool_call_id),
228
- isError: /<system>ERROR/.test(l),
229
- publicText: d.text,
230
- ...d.clip ? { clip: d.clip } : {},
231
- atBasis: "carried"
232
- }
233
- }), u++;
234
- continue;
235
- }
236
- let l = n.data.rateLimitType ?? null, d = l ? t(n.data.unifiedWindows?.[l]?.utilization) ?? null : null;
237
- r.emit({
238
- node: i.id,
239
- at: s,
240
- kind: n.kind,
241
- category: "lifecycle",
242
- label: n.kind === "rate-limit" ? `rate limit · ${l ?? "window unknown"}` : "execution error",
243
- source: {
244
- path: a,
245
- sha256: o.sha256,
246
- ...c.where(n.index)
247
- },
248
- detail: n.kind === "rate-limit" ? {
249
- rateLimit: {
250
- window: l,
251
- utilization: d,
252
- status: n.data.status ?? null
253
- },
254
- data: r.compactValue(n.data)
255
- } : {
256
- responseStatus: "error",
257
- isError: !0,
258
- publicText: r.clip(e(n.data.error ?? n.data), null).text
259
- }
260
- });
261
- }
262
- if (_) {
263
- let e = _.data?.effectiveBackend;
264
- typeof e?.model == "string" && (i.servedModel ??= e.model, i.modelSource ??= "effective backend");
265
- let n = _.usage ?? _.data?.tokenUsage, o = t(n?.cost) ?? t(_.data?.totalCostUsd), s = g ?? [...r.events].reverse().find((e) => e.node === i.id && e.source?.path === r.sourcePath(a)), c = (_.data?.tokensKnown === !1 || _.tokensKnown === !1) && !t(n?.inputTokens) && !t(n?.outputTokens) && !t(n?.cacheReadInputTokens) && !t(n?.cacheCreationInputTokens) && !o;
266
- s && n && !c && (s.detail.usage = {
267
- input: t(n.inputTokens),
268
- output: t(n.outputTokens),
269
- cacheRead: t(n.cacheReadInputTokens),
270
- cacheWrite: t(n.cacheCreationInputTokens)
271
- }, s.detail.usageScope = "execution-total", o !== void 0 && (s.detail.costListUsd = o, s.detail.usdKnown = !1));
272
- }
273
- return u;
274
- }
275
- //#endregion
276
- export { r as t };