@tangle-network/sandbox-cli 0.21.64 → 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 +9 -8
  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
@@ -0,0 +1,630 @@
1
+ import { i as e } from "./rolldown-runtime-DArdT4gl.js";
2
+ import { n as t, t as n } from "./jsx-runtime-DPT6sCLq.js";
3
+ import { T as r, a as i, n as a, o } from "./primitives-znfPK9NP-B6UO7uDr.js";
4
+ import { t as s } from "./utils-BuObIC0n.js";
5
+ import { n as c } from "./workbench-E6_5q_oL.js";
6
+ import { i as l, n as u, r as d, t as f } from "./es2015-utW4DTOJ.js";
7
+ import { i as p, o as m, r as h, s as g, t as _ } from "./dist-4_KJz8ZM.js";
8
+ import { a as v, c as y, i as b, l as x, n as S, o as ee, r as C, s as te, t as w, u as ne } from "./dist-Dy-wrdTt.js";
9
+ import { p as T } from "./markdown-lADwhD7y.js";
10
+ import { a as E, i as D, n as re, t as O } from "./workspace-cKs9sGEO.js";
11
+ import { t as ie } from "./segmented-control-Di1mbQlP.js";
12
+ import { a as k, k as ae, o as oe, u as se } from "./ui-Co03nZUX.js";
13
+ import { d as A, t as j } from "./final-output-BYT-g-9j.js";
14
+ import { p as M } from "./data-CVHeKhrh.js";
15
+ import { agentFromParam as ce, agentParam as N } from "./RunPage-NtevWXBs.js";
16
+ //#region node_modules/.pnpm/@radix-ui+react-popover@1.3.1_@types+react-dom@19.3.0_@types+react@19.3.0__@types+react_e30c1a3361e595871e7a1c2e1a74b81d/node_modules/@radix-ui/react-popover/dist/index.mjs
17
+ var P = /* @__PURE__ */ e(t(), 1), F = n(), le = Object.defineProperty, I = (e, t) => le(e, "name", {
18
+ value: t,
19
+ configurable: !0
20
+ }), L = "Popover", [R, ue] = m(L, [b]), z = b(), [B, V] = R(L), H = /* @__PURE__ */ I((e) => {
21
+ let { __scopePopover: t, children: n, open: r, defaultOpen: i, onOpenChange: a, modal: o = !1 } = e, s = z(t), c = P.useRef(null), [l, u] = P.useState(!1), [d, f] = P.useState(0), [m, g] = P.useState(0), [_, v] = h({
22
+ prop: r,
23
+ defaultProp: i ?? !1,
24
+ onChange: a,
25
+ caller: L
26
+ });
27
+ return /* @__PURE__ */ (0, F.jsx)(w, {
28
+ ...s,
29
+ children: /* @__PURE__ */ (0, F.jsx)(B, {
30
+ scope: t,
31
+ contentId: p(),
32
+ titleId: p(),
33
+ descriptionId: p(),
34
+ titlePresent: d > 0,
35
+ descriptionPresent: m > 0,
36
+ setTitleCount: f,
37
+ setDescriptionCount: g,
38
+ triggerRef: c,
39
+ open: _,
40
+ onOpenChange: v,
41
+ onOpenToggle: P.useCallback(() => v((e) => !e), [v]),
42
+ hasCustomAnchor: l,
43
+ onCustomAnchorAdd: P.useCallback(() => u(!0), []),
44
+ onCustomAnchorRemove: P.useCallback(() => u(!1), []),
45
+ modal: o,
46
+ children: n
47
+ })
48
+ });
49
+ }, "Popover"), U = "PopoverTrigger", W = /* @__PURE__ */ P.forwardRef(/* @__PURE__ */ I(function(e, t) {
50
+ let { __scopePopover: n, ...r } = e, i = V(U, n), s = z(n), c = o(t, i.triggerRef), l = /* @__PURE__ */ (0, F.jsx)(a.button, {
51
+ type: "button",
52
+ "aria-haspopup": "dialog",
53
+ "aria-expanded": i.open,
54
+ "aria-controls": i.open ? i.contentId : void 0,
55
+ "data-state": Y(i.open),
56
+ ...r,
57
+ ref: c,
58
+ onClick: g(e.onClick, i.onOpenToggle)
59
+ });
60
+ return i.hasCustomAnchor ? l : /* @__PURE__ */ (0, F.jsx)(S, {
61
+ asChild: !0,
62
+ ...s,
63
+ children: l
64
+ });
65
+ }, "PopoverTrigger")), G = "PopoverPortal", [de, fe] = R(G, { forceMount: void 0 }), pe = /* @__PURE__ */ I((e) => {
66
+ let { __scopePopover: t, forceMount: n, children: r, container: i } = e, a = V(G, t);
67
+ return /* @__PURE__ */ (0, F.jsx)(de, {
68
+ scope: t,
69
+ forceMount: n,
70
+ children: /* @__PURE__ */ (0, F.jsx)(_, {
71
+ present: n || a.open,
72
+ children: /* @__PURE__ */ (0, F.jsx)(v, {
73
+ asChild: !0,
74
+ container: i,
75
+ children: r
76
+ })
77
+ })
78
+ });
79
+ }, "PopoverPortal"), K = "PopoverContent", q = /* @__PURE__ */ P.forwardRef(/* @__PURE__ */ I(function(e, t) {
80
+ let n = fe(K, e.__scopePopover), { forceMount: r = n.forceMount, ...i } = e, a = V(K, e.__scopePopover);
81
+ return /* @__PURE__ */ (0, F.jsx)(_, {
82
+ present: r || a.open,
83
+ children: a.modal ? /* @__PURE__ */ (0, F.jsx)(he, {
84
+ ...i,
85
+ ref: t
86
+ }) : /* @__PURE__ */ (0, F.jsx)(ge, {
87
+ ...i,
88
+ ref: t
89
+ })
90
+ });
91
+ }, "PopoverContent")), me = i("PopoverContent.RemoveScroll"), he = /* @__PURE__ */ P.forwardRef(/* @__PURE__ */ I(function(e, t) {
92
+ let n = V(K, e.__scopePopover), r = P.useRef(null), i = o(t, r), a = P.useRef(!1), { nodes: s, registry: c } = x();
93
+ return P.useEffect(() => {
94
+ let e = r.current;
95
+ if (e) return f(e);
96
+ }, []), /* @__PURE__ */ (0, F.jsx)(u, {
97
+ as: me,
98
+ allowPinchZoom: !0,
99
+ shards: P.useMemo(() => [r, ...s.map((e) => ({ current: e }))], [r, s]),
100
+ children: /* @__PURE__ */ (0, F.jsx)(J, {
101
+ ...e,
102
+ ref: i,
103
+ branchNodes: s,
104
+ branchRegistry: c,
105
+ trapFocus: n.open,
106
+ disableOutsidePointerEvents: !0,
107
+ onCloseAutoFocus: g(e.onCloseAutoFocus, (e) => {
108
+ e.preventDefault(), a.current || n.triggerRef.current?.focus();
109
+ }),
110
+ onPointerDownOutside: g(e.onPointerDownOutside, (e) => {
111
+ let t = e.detail.originalEvent, n = t.button === 0 && t.ctrlKey === !0, r = t.button === 2 || n;
112
+ a.current = r;
113
+ }, { checkForDefaultPrevented: !1 }),
114
+ onFocusOutside: g(e.onFocusOutside, (e) => e.preventDefault(), { checkForDefaultPrevented: !1 })
115
+ })
116
+ });
117
+ }, "PopoverContentModal")), ge = /* @__PURE__ */ P.forwardRef(/* @__PURE__ */ I(function(e, t) {
118
+ let n = V(K, e.__scopePopover), r = P.useRef(!1), i = P.useRef(!1);
119
+ return /* @__PURE__ */ (0, F.jsx)(J, {
120
+ ...e,
121
+ ref: t,
122
+ trapFocus: !1,
123
+ disableOutsidePointerEvents: !1,
124
+ onCloseAutoFocus: (t) => {
125
+ e.onCloseAutoFocus?.(t), t.defaultPrevented || (r.current || n.triggerRef.current?.focus(), t.preventDefault()), r.current = !1, i.current = !1;
126
+ },
127
+ onInteractOutside: (t) => {
128
+ e.onInteractOutside?.(t), t.defaultPrevented || (r.current = !0, t.detail.originalEvent.type === "pointerdown" && (i.current = !0));
129
+ let a = t.target;
130
+ n.triggerRef.current?.contains(a) && t.preventDefault(), t.detail.originalEvent.type === "focusin" && i.current && t.preventDefault();
131
+ }
132
+ });
133
+ }, "PopoverContentNonModal")), J = /* @__PURE__ */ P.forwardRef(/* @__PURE__ */ I(function(e, t) {
134
+ let { __scopePopover: n, trapFocus: r, onOpenAutoFocus: i, onCloseAutoFocus: a, disableOutsidePointerEvents: s, onEscapeKeyDown: c, onPointerDownOutside: l, onFocusOutside: u, onInteractOutside: f, "aria-describedby": p, branchNodes: m, branchRegistry: h, ...g } = e, _ = V(K, n), v = z(n), [b, x] = P.useState(null), S = o(t, x);
135
+ return y(b), d(), /* @__PURE__ */ (0, F.jsx)(te, {
136
+ registry: h,
137
+ children: /* @__PURE__ */ (0, F.jsx)(ee, {
138
+ asChild: !0,
139
+ loop: !0,
140
+ trapped: r,
141
+ branches: m,
142
+ onMountAutoFocus: i,
143
+ onUnmountAutoFocus: a,
144
+ children: /* @__PURE__ */ (0, F.jsx)(ne, {
145
+ asChild: !0,
146
+ disableOutsidePointerEvents: s,
147
+ onInteractOutside: f,
148
+ onEscapeKeyDown: c,
149
+ onPointerDownOutside: l,
150
+ onFocusOutside: u,
151
+ onDismiss: () => _.onOpenChange(!1),
152
+ deferPointerDownOutside: !0,
153
+ children: /* @__PURE__ */ (0, F.jsx)(C, {
154
+ "data-state": Y(_.open),
155
+ role: "dialog",
156
+ id: _.contentId,
157
+ "aria-labelledby": _.titlePresent ? _.titleId : void 0,
158
+ "aria-describedby": _.descriptionPresent ? X(p, _.descriptionId) : p,
159
+ ...v,
160
+ ...g,
161
+ ref: S,
162
+ style: {
163
+ ...g.style,
164
+ "--radix-popover-content-transform-origin": "var(--radix-popper-transform-origin)",
165
+ "--radix-popover-content-available-width": "var(--radix-popper-available-width)",
166
+ "--radix-popover-content-available-height": "var(--radix-popper-available-height)",
167
+ "--radix-popover-trigger-width": "var(--radix-popper-anchor-width)",
168
+ "--radix-popover-trigger-height": "var(--radix-popper-anchor-height)"
169
+ }
170
+ })
171
+ })
172
+ })
173
+ });
174
+ }, "PopoverContentImpl"));
175
+ function Y(e) {
176
+ return e ? "open" : "closed";
177
+ }
178
+ I(Y, "getState");
179
+ function X(...e) {
180
+ let t = /* @__PURE__ */ new Set();
181
+ for (let n of e) if (typeof n == "string") for (let e of String(n).trim().split(/\s+/)) e && t.add(e);
182
+ return t.size > 0 ? Array.from(t).join(" ") : void 0;
183
+ }
184
+ I(X, "concatAriaDescribedby");
185
+ //#endregion
186
+ //#region node_modules/.pnpm/@tangle-network+ui@11.51.1_@nanostores+react@1.1.0_nanostores@1.5.5_react@19.3.0__@shik_a7187ff5a73f27dfe4cc06a400b0c7a3/node_modules/@tangle-network/ui/dist/primitives/popover.js
187
+ var _e = H, ve = W, Z = P.forwardRef(({ className: e, align: t = "center", sideOffset: n = 4, asChild: i, children: a, ...o }, c) => /* @__PURE__ */ (0, F.jsx)(pe, { children: /* @__PURE__ */ (0, F.jsx)(q, {
188
+ ref: c,
189
+ align: t,
190
+ sideOffset: n,
191
+ className: s("z-50 w-72 max-w-[calc(100vw-2rem)] origin-(--radix-popover-content-transform-origin) rounded-xl border border-border bg-card p-4 text-foreground shadow-[var(--shadow-card)] outline-hidden", r, e),
192
+ ...o,
193
+ asChild: !0,
194
+ children: /* @__PURE__ */ (0, F.jsx)(l, {
195
+ kind: "popover",
196
+ asChild: i,
197
+ children: a
198
+ })
199
+ }) }));
200
+ Z.displayName = q.displayName;
201
+ //#endregion
202
+ //#region src/workspace/ref-file.tsx
203
+ var ye = /* @__PURE__ */ new Set([
204
+ "image",
205
+ "pdf",
206
+ "video",
207
+ "audio",
208
+ "spreadsheet",
209
+ "binary"
210
+ ]);
211
+ function Q(e, t, n, r) {
212
+ let i = M(!r && t && n ? `${e}/tree?ref=${encodeURIComponent(t)}` : null), a = r ? {
213
+ data: r,
214
+ error: void 0
215
+ } : i, o = !!(a.data && n && a.data.paths.includes(n)), s = a.data && o && t && n ? `${e}/blob?ref=${encodeURIComponent(t)}&path=${encodeURIComponent(n)}&expectedCommit=${a.data.commit}` : null, c = !!(n && ye.has(T(n))), l = A(c ? null : s, a.data?.commit);
216
+ return !t || !n ? { state: "idle" } : a.error ? {
217
+ state: "error",
218
+ error: `The code at ${t} is unavailable: ${a.error}`
219
+ } : a.data ? o ? c ? {
220
+ state: "binary",
221
+ href: s,
222
+ commit: a.data.commit
223
+ } : l.error ? {
224
+ state: "error",
225
+ error: l.error
226
+ } : l.text === void 0 ? { state: "loading" } : /[\u0000\uFFFD]/.test(l.text) ? {
227
+ state: "binary",
228
+ href: s,
229
+ commit: a.data.commit
230
+ } : {
231
+ state: "ready",
232
+ text: l.text,
233
+ commit: a.data.commit
234
+ } : a.data.cut ? {
235
+ state: "error",
236
+ error: `The file list at ${t} is incomplete, so this file's absence there cannot be shown.`
237
+ } : {
238
+ state: "absent",
239
+ commit: a.data.commit
240
+ } : { state: "loading" };
241
+ }
242
+ function be({ runUrl: e, base: t, head: n, path: r, headTree: i }) {
243
+ let a = Q(e, t, r), o = Q(e, n, r, i), s = [a, o].find((e) => e.state === "error");
244
+ if (s) return /* @__PURE__ */ (0, F.jsx)("p", {
245
+ className: "rj-muted",
246
+ role: "alert",
247
+ children: s.error
248
+ });
249
+ if (o.state === "loading" || a.state === "loading" || o.state === "idle") return /* @__PURE__ */ (0, F.jsxs)("p", {
250
+ className: "rj-muted",
251
+ role: "status",
252
+ children: [
253
+ "Reading ",
254
+ r,
255
+ "…"
256
+ ]
257
+ });
258
+ if (o.state === "absent" && (a.state === "absent" || a.state === "idle")) return /* @__PURE__ */ (0, F.jsxs)("p", {
259
+ className: "rj-muted",
260
+ role: "alert",
261
+ children: [
262
+ "This file is in neither ",
263
+ t ?? "an earlier release",
264
+ " nor ",
265
+ n,
266
+ "."
267
+ ]
268
+ });
269
+ let l = [a, o].find((e) => e.state === "binary");
270
+ if (l) return /* @__PURE__ */ (0, F.jsxs)("p", {
271
+ className: "rj-muted",
272
+ children: [
273
+ "A binary file has no text diff. ",
274
+ /* @__PURE__ */ (0, F.jsxs)("a", {
275
+ href: l.href,
276
+ download: r.split("/").pop(),
277
+ children: ["Download it at ", l.commit.slice(0, 12)]
278
+ }),
279
+ "."
280
+ ]
281
+ });
282
+ let u = !t || a.state === "absent", d = o.state === "absent";
283
+ return /* @__PURE__ */ (0, F.jsxs)(F.Fragment, { children: [(u || d) && /* @__PURE__ */ (0, F.jsx)("p", {
284
+ className: "rj-muted",
285
+ children: d ? `Not in ${n}: removed since ${t}.` : t ? `Not in ${t}: added in ${n}.` : `No earlier release: every line is new in ${n}.`
286
+ }), /* @__PURE__ */ (0, F.jsx)("div", {
287
+ className: "rj-diff",
288
+ children: /* @__PURE__ */ (0, F.jsx)(c, {
289
+ filename: r,
290
+ baseline: a.state === "ready" ? a.text : "",
291
+ current: o.state === "ready" ? o.text : "",
292
+ defaultWrap: !0
293
+ })
294
+ })] });
295
+ }
296
+ //#endregion
297
+ //#region src/workspace/run/Files.tsx
298
+ var xe = "Pages", Se = "Code", Ce = (e) => e.name.replaceAll("/", "∕");
299
+ function we(e, t) {
300
+ let [n, r] = (0, P.useState)(/* @__PURE__ */ new Map()), i = t.map((e) => e.id).join("|");
301
+ return (0, P.useEffect)(() => {
302
+ let n = new AbortController(), i = !0;
303
+ for (let a of t) fetch(`${e}/diff?base=main&head=${encodeURIComponent(a.id)}`, {
304
+ credentials: "same-origin",
305
+ signal: n.signal
306
+ }).then(async (e) => e.ok ? await e.json() : { error: `HTTP ${e.status}` }).catch((e) => ({ error: e instanceof Error ? e.message : "request failed" })).then((e) => {
307
+ i && r((t) => new Map(t).set(a.id, e));
308
+ });
309
+ return () => {
310
+ i = !1, n.abort();
311
+ };
312
+ }, [e, i]), n;
313
+ }
314
+ function Te({ api: e, runUrl: t, doc: n, m: r, route: i }) {
315
+ let a = M(`${t}/files`, r.live ? 15e3 : void 0), o = (0, P.useMemo)(() => {
316
+ if (!a.data) return null;
317
+ try {
318
+ return re(a.data, n.run.id, null, e);
319
+ } catch {
320
+ return null;
321
+ }
322
+ }, [
323
+ a.data,
324
+ n.run.id,
325
+ e
326
+ ]), s = (0, P.useMemo)(() => r.tree.filter((e) => e.node.hasCode).slice(0, 40), [r]), c = ce(r, n.run.id, i.params.get("scope")) ?? (i.params.get("scope") === "pages" ? "pages" : null), l = (0, P.useMemo)(() => c === "pages" ? [] : c ? s.filter((e) => e.id === c) : s, [s, c]), u = we(t, l), d = M(`${t}/tree?ref=main`), f = (0, P.useMemo)(() => {
327
+ let e = [];
328
+ if (c === null || c === "pages") for (let t of o?.items ?? []) e.push({
329
+ key: `page:${t.path}`,
330
+ kind: "page",
331
+ tree: `${xe}/${t.path.replace(/^pages\//, "")}`,
332
+ path: t.path,
333
+ file: t
334
+ });
335
+ let t = new Set(d.data?.paths ?? []);
336
+ for (let r of l) {
337
+ let i = u.get(r.id);
338
+ if (!(!i || "error" in i)) for (let a of i.files) e.push({
339
+ key: `code:${N(n.run.id, r.id)}:${a.path}`,
340
+ kind: "code",
341
+ tree: `${Se}/${Ce(r)}/${a.path}`,
342
+ path: a.path,
343
+ agent: r,
344
+ status: t.has(a.path) ? "M" : "A",
345
+ additions: a.additions,
346
+ deletions: a.deletions,
347
+ diff: i
348
+ });
349
+ }
350
+ return e;
351
+ }, [
352
+ o,
353
+ l,
354
+ u,
355
+ d.data,
356
+ c,
357
+ n.run.id
358
+ ]), p = (0, P.useMemo)(() => new Map(f.map((e) => [e.tree, e])), [f]), m = (0, P.useMemo)(() => Object.fromEntries(f.filter((e) => e.kind === "code").map((e) => [e.tree, e.kind === "code" && e.status === "A" ? "added" : "modified"])), [f]), h = i.params.get("file"), g = ae("(max-width: 720px)"), _ = f.find((e) => e.key === h) ?? (h || g ? null : f[0] ?? null), v = !o && !a.error ? "Reading the retained files…" : l.some((e) => !u.has(e.id)) && !f.length ? "Reading the agent branches…" : null, y = se(r, (e) => e.node.hasCode, (e) => {
359
+ let t = u.get(e.id);
360
+ return t ? "error" in t ? "not retained" : `${t.files.length} changed` : "";
361
+ }), b = /* @__PURE__ */ (0, F.jsx)(oe, {
362
+ label: "Files written by",
363
+ options: [{
364
+ id: "pages",
365
+ label: "Pages",
366
+ meta: o ? `${o.items.length} pages` : ""
367
+ }, ...y],
368
+ all: { label: "Pages and every branch" },
369
+ value: c,
370
+ placeholder: `Search ${s.length} branches`,
371
+ width: 300,
372
+ className: "rp-fscope",
373
+ onChange: (e) => i.go("files", {
374
+ scope: e === "pages" ? "pages" : e ? N(n.run.id, e) : null,
375
+ file: null
376
+ }),
377
+ children: c === "pages" ? "Pages" : c ? r.byId.get(c)?.name ?? "Branch" : "All files"
378
+ });
379
+ return /* @__PURE__ */ (0, F.jsx)("div", {
380
+ className: "rp-files",
381
+ children: /* @__PURE__ */ (0, F.jsx)(O, {
382
+ paths: f.map((e) => e.tree),
383
+ status: m,
384
+ selectedPath: _?.tree,
385
+ onSelect: (e) => {
386
+ let t = p.get(e);
387
+ t && i.go("files", { file: t.key });
388
+ },
389
+ onBack: () => i.go("files", { file: null }),
390
+ headerActions: b,
391
+ search: !0,
392
+ label: "Files",
393
+ expansionKey: `${n.run.id}:files`,
394
+ emptyState: /* @__PURE__ */ (0, F.jsx)("p", {
395
+ className: "ws-status",
396
+ role: a.error ? "alert" : "status",
397
+ children: a.error ? `The retained files are unavailable: ${a.error}` : v ?? "This run left no pages and no branch changed a file."
398
+ }),
399
+ preview: _ ? {
400
+ path: _.tree,
401
+ ...Ee(_, t, i.href("files", { file: _.key }))
402
+ } : void 0,
403
+ style: { height: "100%" }
404
+ })
405
+ });
406
+ }
407
+ function Ee(e, t, n) {
408
+ return {
409
+ actions: /* @__PURE__ */ (0, F.jsx)(De, {
410
+ entry: e,
411
+ runUrl: t,
412
+ link: n
413
+ }),
414
+ content: /* @__PURE__ */ (0, F.jsx)(ke, {
415
+ entry: e,
416
+ runUrl: t
417
+ }, e.key)
418
+ };
419
+ }
420
+ var $ = () => {
421
+ let [e, t] = (0, P.useState)(() => {
422
+ let e = new URLSearchParams(window.location.search).get("fileView");
423
+ return e === "source" || e === "diff" ? e : "preview";
424
+ });
425
+ return (0, P.useEffect)(() => {
426
+ let e = (e) => t(e.detail);
427
+ return window.addEventListener("rp-file-view", e), () => window.removeEventListener("rp-file-view", e);
428
+ }, []), [e, (e) => {
429
+ let t = new URLSearchParams(window.location.search);
430
+ e === "preview" ? t.delete("fileView") : t.set("fileView", e), window.history.replaceState(null, "", `${window.location.pathname}${t.size ? `?${t}` : ""}`), window.dispatchEvent(new CustomEvent("rp-file-view", { detail: e }));
431
+ }];
432
+ };
433
+ function De({ entry: e, runUrl: t, link: n }) {
434
+ let [r, i] = $(), [a, o] = (0, P.useState)(!1), s = e.path.split("/").pop() ?? e.path, c = T(e.path), l = [...c === "markdown" || c === "csv" ? [{
435
+ value: "preview",
436
+ label: "Preview"
437
+ }, {
438
+ value: "source",
439
+ label: "Source"
440
+ }] : [], ...e.kind === "code" ? [{
441
+ value: "diff",
442
+ label: "Changes"
443
+ }] : []], u = e.kind === "page" ? D(e.file) : `${t}/blob?ref=${encodeURIComponent(e.agent.id)}&path=${encodeURIComponent(e.path)}`;
444
+ return /* @__PURE__ */ (0, F.jsxs)("span", {
445
+ className: "rp-factions",
446
+ children: [l.length > 1 && /* @__PURE__ */ (0, F.jsx)(ie, {
447
+ "aria-label": "File view",
448
+ value: l.some((e) => e.value === r) ? r : l[0].value,
449
+ onValueChange: i,
450
+ options: l
451
+ }), /* @__PURE__ */ (0, F.jsxs)("span", {
452
+ className: "rp-group ph-hide",
453
+ children: [
454
+ u && /* @__PURE__ */ (0, F.jsx)("a", {
455
+ className: "rp-btn ic",
456
+ href: u,
457
+ download: s,
458
+ "aria-label": `Download ${s}`,
459
+ title: "Download",
460
+ children: /* @__PURE__ */ (0, F.jsx)(k, { name: "download" })
461
+ }),
462
+ /* @__PURE__ */ (0, F.jsx)("button", {
463
+ type: "button",
464
+ className: "rp-btn ic",
465
+ "aria-label": a ? "Link copied" : "Copy link",
466
+ title: a ? "Copied" : "Copy link",
467
+ onClick: () => {
468
+ navigator.clipboard?.writeText(new URL(n, window.location.href).toString()).then(() => {
469
+ o(!0), window.setTimeout(() => o(!1), 1500);
470
+ });
471
+ },
472
+ children: /* @__PURE__ */ (0, F.jsx)(k, { name: a ? "check" : "link" })
473
+ }),
474
+ /* @__PURE__ */ (0, F.jsxs)(_e, { children: [/* @__PURE__ */ (0, F.jsx)(ve, {
475
+ asChild: !0,
476
+ children: /* @__PURE__ */ (0, F.jsx)("button", {
477
+ type: "button",
478
+ className: "rp-btn ic",
479
+ "aria-label": "Provenance",
480
+ title: "Provenance",
481
+ children: /* @__PURE__ */ (0, F.jsx)(k, { name: "info" })
482
+ })
483
+ }), /* @__PURE__ */ (0, F.jsx)(Z, {
484
+ className: "rp-pop",
485
+ align: "end",
486
+ children: /* @__PURE__ */ (0, F.jsx)(Oe, { entry: e })
487
+ })] })
488
+ ]
489
+ })]
490
+ });
491
+ }
492
+ function Oe({ entry: e }) {
493
+ let t = e.path.split("/").pop();
494
+ if (e.kind === "page") {
495
+ let n = e.file;
496
+ return /* @__PURE__ */ (0, F.jsxs)(F.Fragment, { children: [/* @__PURE__ */ (0, F.jsxs)("div", {
497
+ className: "ph",
498
+ children: [/* @__PURE__ */ (0, F.jsx)("b", { children: t }), /* @__PURE__ */ (0, F.jsx)("span", { children: e.path })]
499
+ }), /* @__PURE__ */ (0, F.jsx)("div", {
500
+ className: "pb",
501
+ children: /* @__PURE__ */ (0, F.jsxs)("dl", { children: [
502
+ /* @__PURE__ */ (0, F.jsx)("dt", { children: "Source" }),
503
+ /* @__PURE__ */ (0, F.jsx)("dd", { children: n.source === "knowledge" ? "Knowledge page in the run's pages" : n.source }),
504
+ /* @__PURE__ */ (0, F.jsx)("dt", { children: "Size" }),
505
+ /* @__PURE__ */ (0, F.jsx)("dd", { children: j(n.bytes) }),
506
+ /* @__PURE__ */ (0, F.jsx)("dt", { children: n.sha256 ? "SHA-256" : "Git blob" }),
507
+ /* @__PURE__ */ (0, F.jsx)("dd", {
508
+ className: "mono",
509
+ children: n.sha256 ?? n.objectId ?? "not recorded"
510
+ }),
511
+ (n.alternates?.length ?? 0) > 0 && /* @__PURE__ */ (0, F.jsxs)(F.Fragment, { children: [/* @__PURE__ */ (0, F.jsx)("dt", { children: "Versions" }), /* @__PURE__ */ (0, F.jsxs)("dd", { children: [(n.alternates?.length ?? 0) + 1, " retained copies share this path"] })] })
512
+ ] })
513
+ })] });
514
+ }
515
+ return /* @__PURE__ */ (0, F.jsxs)(F.Fragment, { children: [/* @__PURE__ */ (0, F.jsxs)("div", {
516
+ className: "ph",
517
+ children: [/* @__PURE__ */ (0, F.jsx)("b", { children: t }), /* @__PURE__ */ (0, F.jsx)("span", { children: e.path })]
518
+ }), /* @__PURE__ */ (0, F.jsx)("div", {
519
+ className: "pb",
520
+ children: /* @__PURE__ */ (0, F.jsxs)("dl", { children: [
521
+ /* @__PURE__ */ (0, F.jsx)("dt", { children: "Branch" }),
522
+ /* @__PURE__ */ (0, F.jsx)("dd", { children: e.agent.name }),
523
+ /* @__PURE__ */ (0, F.jsx)("dt", { children: "Commit" }),
524
+ /* @__PURE__ */ (0, F.jsx)("dd", {
525
+ className: "mono",
526
+ children: e.diff.commit.slice(0, 12)
527
+ }),
528
+ /* @__PURE__ */ (0, F.jsx)("dt", { children: "Against main" }),
529
+ /* @__PURE__ */ (0, F.jsxs)("dd", { children: [
530
+ e.status === "A" ? "added" : "modified",
531
+ " · ",
532
+ /* @__PURE__ */ (0, F.jsxs)("span", {
533
+ className: "ok",
534
+ children: ["+", e.additions.toLocaleString("en-US")]
535
+ }),
536
+ " ",
537
+ /* @__PURE__ */ (0, F.jsxs)("span", {
538
+ className: "f",
539
+ children: ["−", e.deletions.toLocaleString("en-US")]
540
+ }),
541
+ " · base ",
542
+ /* @__PURE__ */ (0, F.jsx)("span", {
543
+ className: "mono",
544
+ children: e.diff.baseCommit.slice(0, 8)
545
+ })
546
+ ] })
547
+ ] })
548
+ })] });
549
+ }
550
+ function ke({ entry: e, runUrl: t }) {
551
+ let [n] = $(), r = e.path.split("/").pop() ?? e.path, i = T(e.path), a = i === "markdown" || i === "csv", o = [
552
+ "image",
553
+ "pdf",
554
+ "video",
555
+ "audio",
556
+ "spreadsheet",
557
+ "binary"
558
+ ].includes(i), s = e.kind === "page" ? D(e.file) : null, c = A(e.kind === "page" && !o ? s : null), l = Q(t, e.kind === "code" ? e.agent.id : null, e.kind === "code" ? e.path : null), u = n === "source" && a ? `${r}.txt` : r;
559
+ return e.kind === "code" && n === "diff" ? /* @__PURE__ */ (0, F.jsx)("div", {
560
+ className: "rp-doc",
561
+ children: /* @__PURE__ */ (0, F.jsx)(be, {
562
+ runUrl: t,
563
+ base: e.status === "A" ? null : "main",
564
+ head: e.agent.id,
565
+ path: e.path
566
+ })
567
+ }) : e.kind === "page" ? o && s ? /* @__PURE__ */ (0, F.jsx)("div", {
568
+ className: "rp-doc",
569
+ children: /* @__PURE__ */ (0, F.jsx)(E, {
570
+ filename: r,
571
+ blobUrl: s,
572
+ size: e.file.bytes ?? void 0,
573
+ hideHeader: !0
574
+ })
575
+ }) : c.error ? /* @__PURE__ */ (0, F.jsx)("p", {
576
+ className: "ws-status",
577
+ role: "alert",
578
+ children: c.error
579
+ }) : c.text === void 0 ? /* @__PURE__ */ (0, F.jsxs)("p", {
580
+ className: "ws-status",
581
+ role: "status",
582
+ children: [
583
+ "Reading ",
584
+ r,
585
+ "…"
586
+ ]
587
+ }) : /* @__PURE__ */ (0, F.jsx)("div", {
588
+ className: `rp-doc${n === "source" || !a ? " code" : ""}`,
589
+ children: /* @__PURE__ */ (0, F.jsx)(E, {
590
+ filename: u,
591
+ content: c.text,
592
+ hideHeader: !0
593
+ })
594
+ }) : l.state === "error" ? /* @__PURE__ */ (0, F.jsx)("p", {
595
+ className: "ws-status",
596
+ role: "alert",
597
+ children: l.error
598
+ }) : l.state === "absent" ? /* @__PURE__ */ (0, F.jsx)("p", {
599
+ className: "ws-status",
600
+ children: "This file is not on the branch any more."
601
+ }) : l.state === "binary" ? /* @__PURE__ */ (0, F.jsxs)("p", {
602
+ className: "ws-status",
603
+ children: [
604
+ "This file is not text. ",
605
+ /* @__PURE__ */ (0, F.jsxs)("a", {
606
+ href: l.href,
607
+ download: r,
608
+ children: ["Download it at ", l.commit.slice(0, 12)]
609
+ }),
610
+ "."
611
+ ]
612
+ }) : l.state === "ready" ? /* @__PURE__ */ (0, F.jsx)("div", {
613
+ className: `rp-doc${n === "source" || !a ? " code" : ""}`,
614
+ children: /* @__PURE__ */ (0, F.jsx)(E, {
615
+ filename: u,
616
+ content: l.text,
617
+ hideHeader: !0
618
+ })
619
+ }) : /* @__PURE__ */ (0, F.jsxs)("p", {
620
+ className: "ws-status",
621
+ role: "status",
622
+ children: [
623
+ "Reading ",
624
+ r,
625
+ "…"
626
+ ]
627
+ });
628
+ }
629
+ //#endregion
630
+ export { Te as Files };