@devqubit/ui 0.1.10-beta-1 → 0.1.10
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/README.md +2 -3
- package/dist/components/RunsTable/RunsTable.d.ts +1 -2
- package/dist/components/RunsTable/RunsTable.d.ts.map +1 -1
- package/dist/components/ui/index.d.ts +2 -2
- package/dist/components/ui/index.d.ts.map +1 -1
- package/dist/components/ui/primitives.d.ts +0 -10
- package/dist/components/ui/primitives.d.ts.map +1 -1
- package/dist/index.cjs +8 -8
- package/dist/index.js +1036 -1165
- package/dist/pages/ArtifactPage.d.ts.map +1 -1
- package/dist/pages/DiffPage.d.ts.map +1 -1
- package/dist/pages/GroupDetailPage.d.ts.map +1 -1
- package/dist/pages/RunDetailPage.d.ts.map +1 -1
- package/dist/pages/RunsPage.d.ts.map +1 -1
- package/dist/pages/SearchPage.d.ts.map +1 -1
- package/dist/style.css +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,106 +1,106 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { useLocation as
|
|
3
|
-
var
|
|
4
|
-
var
|
|
5
|
-
function
|
|
6
|
-
if (
|
|
7
|
-
|
|
8
|
-
var s =
|
|
9
|
-
function
|
|
10
|
-
var
|
|
11
|
-
|
|
12
|
-
for (
|
|
13
|
-
if (
|
|
14
|
-
return { $$typeof: n, type:
|
|
1
|
+
import yr, { useState as U, useEffect as We, useContext as Rr, useCallback as me, createContext as wr, useRef as vr, forwardRef as Ve } from "react";
|
|
2
|
+
import { useLocation as is, Link as M, useSearchParams as Ce, useParams as Ye, useNavigate as cs, Navigate as ls, createBrowserRouter as os, RouterProvider as ds } from "react-router-dom";
|
|
3
|
+
var Se = { exports: {} }, ue = {};
|
|
4
|
+
var br;
|
|
5
|
+
function us() {
|
|
6
|
+
if (br) return ue;
|
|
7
|
+
br = 1;
|
|
8
|
+
var s = yr, n = /* @__PURE__ */ Symbol.for("react.element"), t = /* @__PURE__ */ Symbol.for("react.fragment"), a = Object.prototype.hasOwnProperty, d = s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner, h = { key: !0, ref: !0, __self: !0, __source: !0 };
|
|
9
|
+
function f(i, x, o) {
|
|
10
|
+
var p, $ = {}, _ = null, G = null;
|
|
11
|
+
o !== void 0 && (_ = "" + o), x.key !== void 0 && (_ = "" + x.key), x.ref !== void 0 && (G = x.ref);
|
|
12
|
+
for (p in x) a.call(x, p) && !h.hasOwnProperty(p) && ($[p] = x[p]);
|
|
13
|
+
if (i && i.defaultProps) for (p in x = i.defaultProps, x) $[p] === void 0 && ($[p] = x[p]);
|
|
14
|
+
return { $$typeof: n, type: i, key: _, ref: G, props: $, _owner: d.current };
|
|
15
15
|
}
|
|
16
|
-
return
|
|
17
|
-
}
|
|
18
|
-
var
|
|
19
|
-
var
|
|
20
|
-
function
|
|
21
|
-
return
|
|
22
|
-
var s =
|
|
23
|
-
function
|
|
16
|
+
return ue.Fragment = t, ue.jsx = f, ue.jsxs = f, ue;
|
|
17
|
+
}
|
|
18
|
+
var he = {};
|
|
19
|
+
var Nr;
|
|
20
|
+
function hs() {
|
|
21
|
+
return Nr || (Nr = 1, process.env.NODE_ENV !== "production" && (function() {
|
|
22
|
+
var s = yr, n = /* @__PURE__ */ Symbol.for("react.element"), t = /* @__PURE__ */ Symbol.for("react.portal"), a = /* @__PURE__ */ Symbol.for("react.fragment"), d = /* @__PURE__ */ Symbol.for("react.strict_mode"), h = /* @__PURE__ */ Symbol.for("react.profiler"), f = /* @__PURE__ */ Symbol.for("react.provider"), i = /* @__PURE__ */ Symbol.for("react.context"), x = /* @__PURE__ */ Symbol.for("react.forward_ref"), o = /* @__PURE__ */ Symbol.for("react.suspense"), p = /* @__PURE__ */ Symbol.for("react.suspense_list"), $ = /* @__PURE__ */ Symbol.for("react.memo"), _ = /* @__PURE__ */ Symbol.for("react.lazy"), G = /* @__PURE__ */ Symbol.for("react.offscreen"), J = Symbol.iterator, ce = "@@iterator";
|
|
23
|
+
function ge(r) {
|
|
24
24
|
if (r === null || typeof r != "object")
|
|
25
25
|
return null;
|
|
26
|
-
var l =
|
|
26
|
+
var l = J && r[J] || r[ce];
|
|
27
27
|
return typeof l == "function" ? l : null;
|
|
28
28
|
}
|
|
29
|
-
var
|
|
30
|
-
function
|
|
29
|
+
var X = s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
|
|
30
|
+
function C(r) {
|
|
31
31
|
{
|
|
32
|
-
for (var l = arguments.length,
|
|
33
|
-
|
|
34
|
-
|
|
32
|
+
for (var l = arguments.length, u = new Array(l > 1 ? l - 1 : 0), j = 1; j < l; j++)
|
|
33
|
+
u[j - 1] = arguments[j];
|
|
34
|
+
ve("error", r, u);
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
|
-
function
|
|
37
|
+
function ve(r, l, u) {
|
|
38
38
|
{
|
|
39
|
-
var
|
|
40
|
-
|
|
41
|
-
var
|
|
42
|
-
return String(
|
|
39
|
+
var j = X.ReactDebugCurrentFrame, y = j.getStackAddendum();
|
|
40
|
+
y !== "" && (l += "%s", u = u.concat([y]));
|
|
41
|
+
var R = u.map(function(N) {
|
|
42
|
+
return String(N);
|
|
43
43
|
});
|
|
44
|
-
|
|
44
|
+
R.unshift("Warning: " + l), Function.prototype.apply.call(console[r], console, R);
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
|
-
var
|
|
48
|
-
|
|
49
|
-
function
|
|
50
|
-
return !!(typeof r == "string" || typeof r == "function" || r ===
|
|
47
|
+
var le = !1, be = !1, De = !1, ke = !1, Ae = !1, w;
|
|
48
|
+
w = /* @__PURE__ */ Symbol.for("react.module.reference");
|
|
49
|
+
function D(r) {
|
|
50
|
+
return !!(typeof r == "string" || typeof r == "function" || r === a || r === h || Ae || r === d || r === o || r === p || ke || r === G || le || be || De || typeof r == "object" && r !== null && (r.$$typeof === _ || r.$$typeof === $ || r.$$typeof === f || r.$$typeof === i || r.$$typeof === x || // This needs to include all possible module reference object
|
|
51
51
|
// types supported by any Flight configuration anywhere since
|
|
52
52
|
// we don't know which Flight build this will end up being used
|
|
53
53
|
// with.
|
|
54
|
-
r.$$typeof ===
|
|
54
|
+
r.$$typeof === w || r.getModuleId !== void 0));
|
|
55
55
|
}
|
|
56
|
-
function
|
|
57
|
-
var
|
|
58
|
-
if (
|
|
59
|
-
return
|
|
60
|
-
var
|
|
61
|
-
return
|
|
56
|
+
function Ne(r, l, u) {
|
|
57
|
+
var j = r.displayName;
|
|
58
|
+
if (j)
|
|
59
|
+
return j;
|
|
60
|
+
var y = l.displayName || l.name || "";
|
|
61
|
+
return y !== "" ? u + "(" + y + ")" : u;
|
|
62
62
|
}
|
|
63
|
-
function
|
|
63
|
+
function _e(r) {
|
|
64
64
|
return r.displayName || "Context";
|
|
65
65
|
}
|
|
66
|
-
function
|
|
66
|
+
function W(r) {
|
|
67
67
|
if (r == null)
|
|
68
68
|
return null;
|
|
69
|
-
if (typeof r.tag == "number" &&
|
|
69
|
+
if (typeof r.tag == "number" && C("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."), typeof r == "function")
|
|
70
70
|
return r.displayName || r.name || null;
|
|
71
71
|
if (typeof r == "string")
|
|
72
72
|
return r;
|
|
73
73
|
switch (r) {
|
|
74
|
-
case
|
|
74
|
+
case a:
|
|
75
75
|
return "Fragment";
|
|
76
76
|
case t:
|
|
77
77
|
return "Portal";
|
|
78
|
-
case
|
|
78
|
+
case h:
|
|
79
79
|
return "Profiler";
|
|
80
80
|
case d:
|
|
81
81
|
return "StrictMode";
|
|
82
|
-
case
|
|
82
|
+
case o:
|
|
83
83
|
return "Suspense";
|
|
84
|
-
case
|
|
84
|
+
case p:
|
|
85
85
|
return "SuspenseList";
|
|
86
86
|
}
|
|
87
87
|
if (typeof r == "object")
|
|
88
88
|
switch (r.$$typeof) {
|
|
89
|
-
case
|
|
89
|
+
case i:
|
|
90
90
|
var l = r;
|
|
91
|
-
return
|
|
92
|
-
case m:
|
|
93
|
-
var h = r;
|
|
94
|
-
return Ee(h._context) + ".Provider";
|
|
95
|
-
case u:
|
|
96
|
-
return Ie(r, r.render, "ForwardRef");
|
|
91
|
+
return _e(l) + ".Consumer";
|
|
97
92
|
case f:
|
|
98
|
-
var
|
|
99
|
-
return
|
|
100
|
-
case
|
|
101
|
-
|
|
93
|
+
var u = r;
|
|
94
|
+
return _e(u._context) + ".Provider";
|
|
95
|
+
case x:
|
|
96
|
+
return Ne(r, r.render, "ForwardRef");
|
|
97
|
+
case $:
|
|
98
|
+
var j = r.displayName || null;
|
|
99
|
+
return j !== null ? j : W(r.type) || "Memo";
|
|
100
|
+
case _: {
|
|
101
|
+
var y = r, R = y._payload, N = y._init;
|
|
102
102
|
try {
|
|
103
|
-
return
|
|
103
|
+
return W(N(R));
|
|
104
104
|
} catch {
|
|
105
105
|
return null;
|
|
106
106
|
}
|
|
@@ -108,18 +108,18 @@ function ms() {
|
|
|
108
108
|
}
|
|
109
109
|
return null;
|
|
110
110
|
}
|
|
111
|
-
var
|
|
112
|
-
function
|
|
111
|
+
var ee = Object.assign, oe = 0, He, Xe, Qe, Ze, er, rr, sr;
|
|
112
|
+
function nr() {
|
|
113
113
|
}
|
|
114
|
-
|
|
115
|
-
function
|
|
114
|
+
nr.__reactDisabledLog = !0;
|
|
115
|
+
function Ar() {
|
|
116
116
|
{
|
|
117
|
-
if (
|
|
118
|
-
|
|
117
|
+
if (oe === 0) {
|
|
118
|
+
He = console.log, Xe = console.info, Qe = console.warn, Ze = console.error, er = console.group, rr = console.groupCollapsed, sr = console.groupEnd;
|
|
119
119
|
var r = {
|
|
120
120
|
configurable: !0,
|
|
121
121
|
enumerable: !0,
|
|
122
|
-
value:
|
|
122
|
+
value: nr,
|
|
123
123
|
writable: !0
|
|
124
124
|
};
|
|
125
125
|
Object.defineProperties(console, {
|
|
@@ -132,332 +132,332 @@ function ms() {
|
|
|
132
132
|
groupEnd: r
|
|
133
133
|
});
|
|
134
134
|
}
|
|
135
|
-
|
|
135
|
+
oe++;
|
|
136
136
|
}
|
|
137
137
|
}
|
|
138
|
-
function
|
|
138
|
+
function Or() {
|
|
139
139
|
{
|
|
140
|
-
if (
|
|
140
|
+
if (oe--, oe === 0) {
|
|
141
141
|
var r = {
|
|
142
142
|
configurable: !0,
|
|
143
143
|
enumerable: !0,
|
|
144
144
|
writable: !0
|
|
145
145
|
};
|
|
146
146
|
Object.defineProperties(console, {
|
|
147
|
-
log:
|
|
148
|
-
value:
|
|
147
|
+
log: ee({}, r, {
|
|
148
|
+
value: He
|
|
149
|
+
}),
|
|
150
|
+
info: ee({}, r, {
|
|
151
|
+
value: Xe
|
|
149
152
|
}),
|
|
150
|
-
|
|
151
|
-
value:
|
|
153
|
+
warn: ee({}, r, {
|
|
154
|
+
value: Qe
|
|
152
155
|
}),
|
|
153
|
-
|
|
154
|
-
value:
|
|
156
|
+
error: ee({}, r, {
|
|
157
|
+
value: Ze
|
|
155
158
|
}),
|
|
156
|
-
|
|
159
|
+
group: ee({}, r, {
|
|
157
160
|
value: er
|
|
158
161
|
}),
|
|
159
|
-
|
|
162
|
+
groupCollapsed: ee({}, r, {
|
|
160
163
|
value: rr
|
|
161
164
|
}),
|
|
162
|
-
|
|
165
|
+
groupEnd: ee({}, r, {
|
|
163
166
|
value: sr
|
|
164
|
-
}),
|
|
165
|
-
groupEnd: C({}, r, {
|
|
166
|
-
value: nr
|
|
167
167
|
})
|
|
168
168
|
});
|
|
169
169
|
}
|
|
170
|
-
|
|
170
|
+
oe < 0 && C("disabledDepth fell below zero. This is a bug in React. Please file an issue.");
|
|
171
171
|
}
|
|
172
172
|
}
|
|
173
|
-
var
|
|
174
|
-
function
|
|
173
|
+
var Oe = X.ReactCurrentDispatcher, Fe;
|
|
174
|
+
function ye(r, l, u) {
|
|
175
175
|
{
|
|
176
|
-
if (
|
|
176
|
+
if (Fe === void 0)
|
|
177
177
|
try {
|
|
178
178
|
throw Error();
|
|
179
|
-
} catch (
|
|
180
|
-
var
|
|
181
|
-
|
|
179
|
+
} catch (y) {
|
|
180
|
+
var j = y.stack.trim().match(/\n( *(at )?)/);
|
|
181
|
+
Fe = j && j[1] || "";
|
|
182
182
|
}
|
|
183
183
|
return `
|
|
184
|
-
` +
|
|
184
|
+
` + Fe + r;
|
|
185
185
|
}
|
|
186
186
|
}
|
|
187
|
-
var
|
|
187
|
+
var $e = !1, Re;
|
|
188
188
|
{
|
|
189
|
-
var
|
|
190
|
-
|
|
189
|
+
var Fr = typeof WeakMap == "function" ? WeakMap : Map;
|
|
190
|
+
Re = new Fr();
|
|
191
191
|
}
|
|
192
|
-
function
|
|
193
|
-
if (!r ||
|
|
192
|
+
function tr(r, l) {
|
|
193
|
+
if (!r || $e)
|
|
194
194
|
return "";
|
|
195
195
|
{
|
|
196
|
-
var
|
|
197
|
-
if (
|
|
198
|
-
return
|
|
196
|
+
var u = Re.get(r);
|
|
197
|
+
if (u !== void 0)
|
|
198
|
+
return u;
|
|
199
199
|
}
|
|
200
|
-
var
|
|
201
|
-
|
|
202
|
-
var
|
|
200
|
+
var j;
|
|
201
|
+
$e = !0;
|
|
202
|
+
var y = Error.prepareStackTrace;
|
|
203
203
|
Error.prepareStackTrace = void 0;
|
|
204
|
-
var
|
|
205
|
-
|
|
204
|
+
var R;
|
|
205
|
+
R = Oe.current, Oe.current = null, Ar();
|
|
206
206
|
try {
|
|
207
207
|
if (l) {
|
|
208
|
-
var
|
|
208
|
+
var N = function() {
|
|
209
209
|
throw Error();
|
|
210
210
|
};
|
|
211
|
-
if (Object.defineProperty(
|
|
211
|
+
if (Object.defineProperty(N.prototype, "props", {
|
|
212
212
|
set: function() {
|
|
213
213
|
throw Error();
|
|
214
214
|
}
|
|
215
215
|
}), typeof Reflect == "object" && Reflect.construct) {
|
|
216
216
|
try {
|
|
217
|
-
Reflect.construct(
|
|
218
|
-
} catch (
|
|
219
|
-
|
|
217
|
+
Reflect.construct(N, []);
|
|
218
|
+
} catch (L) {
|
|
219
|
+
j = L;
|
|
220
220
|
}
|
|
221
|
-
Reflect.construct(r, [],
|
|
221
|
+
Reflect.construct(r, [], N);
|
|
222
222
|
} else {
|
|
223
223
|
try {
|
|
224
|
-
|
|
225
|
-
} catch (
|
|
226
|
-
|
|
224
|
+
N.call();
|
|
225
|
+
} catch (L) {
|
|
226
|
+
j = L;
|
|
227
227
|
}
|
|
228
|
-
r.call(
|
|
228
|
+
r.call(N.prototype);
|
|
229
229
|
}
|
|
230
230
|
} else {
|
|
231
231
|
try {
|
|
232
232
|
throw Error();
|
|
233
|
-
} catch (
|
|
234
|
-
|
|
233
|
+
} catch (L) {
|
|
234
|
+
j = L;
|
|
235
235
|
}
|
|
236
236
|
r();
|
|
237
237
|
}
|
|
238
|
-
} catch (
|
|
239
|
-
if (
|
|
240
|
-
for (var
|
|
241
|
-
`),
|
|
242
|
-
`),
|
|
243
|
-
|
|
244
|
-
for (;
|
|
245
|
-
if (
|
|
246
|
-
if (
|
|
238
|
+
} catch (L) {
|
|
239
|
+
if (L && j && typeof L.stack == "string") {
|
|
240
|
+
for (var g = L.stack.split(`
|
|
241
|
+
`), I = j.stack.split(`
|
|
242
|
+
`), E = g.length - 1, T = I.length - 1; E >= 1 && T >= 0 && g[E] !== I[T]; )
|
|
243
|
+
T--;
|
|
244
|
+
for (; E >= 1 && T >= 0; E--, T--)
|
|
245
|
+
if (g[E] !== I[T]) {
|
|
246
|
+
if (E !== 1 || T !== 1)
|
|
247
247
|
do
|
|
248
|
-
if (
|
|
249
|
-
var
|
|
250
|
-
` +
|
|
251
|
-
return r.displayName &&
|
|
248
|
+
if (E--, T--, T < 0 || g[E] !== I[T]) {
|
|
249
|
+
var z = `
|
|
250
|
+
` + g[E].replace(" at new ", " at ");
|
|
251
|
+
return r.displayName && z.includes("<anonymous>") && (z = z.replace("<anonymous>", r.displayName)), typeof r == "function" && Re.set(r, z), z;
|
|
252
252
|
}
|
|
253
|
-
while (
|
|
253
|
+
while (E >= 1 && T >= 0);
|
|
254
254
|
break;
|
|
255
255
|
}
|
|
256
256
|
}
|
|
257
257
|
} finally {
|
|
258
|
-
|
|
258
|
+
$e = !1, Oe.current = R, Or(), Error.prepareStackTrace = y;
|
|
259
259
|
}
|
|
260
|
-
var
|
|
261
|
-
return typeof r == "function" &&
|
|
260
|
+
var ie = r ? r.displayName || r.name : "", re = ie ? ye(ie) : "";
|
|
261
|
+
return typeof r == "function" && Re.set(r, re), re;
|
|
262
262
|
}
|
|
263
|
-
function
|
|
264
|
-
return
|
|
263
|
+
function $r(r, l, u) {
|
|
264
|
+
return tr(r, !1);
|
|
265
265
|
}
|
|
266
|
-
function
|
|
266
|
+
function Br(r) {
|
|
267
267
|
var l = r.prototype;
|
|
268
268
|
return !!(l && l.isReactComponent);
|
|
269
269
|
}
|
|
270
|
-
function
|
|
270
|
+
function we(r, l, u) {
|
|
271
271
|
if (r == null)
|
|
272
272
|
return "";
|
|
273
273
|
if (typeof r == "function")
|
|
274
|
-
return
|
|
274
|
+
return tr(r, Br(r));
|
|
275
275
|
if (typeof r == "string")
|
|
276
|
-
return
|
|
276
|
+
return ye(r);
|
|
277
277
|
switch (r) {
|
|
278
|
-
case
|
|
279
|
-
return
|
|
280
|
-
case
|
|
281
|
-
return
|
|
278
|
+
case o:
|
|
279
|
+
return ye("Suspense");
|
|
280
|
+
case p:
|
|
281
|
+
return ye("SuspenseList");
|
|
282
282
|
}
|
|
283
283
|
if (typeof r == "object")
|
|
284
284
|
switch (r.$$typeof) {
|
|
285
|
-
case
|
|
286
|
-
return
|
|
287
|
-
case
|
|
288
|
-
return
|
|
289
|
-
case
|
|
290
|
-
var
|
|
285
|
+
case x:
|
|
286
|
+
return $r(r.render);
|
|
287
|
+
case $:
|
|
288
|
+
return we(r.type, l, u);
|
|
289
|
+
case _: {
|
|
290
|
+
var j = r, y = j._payload, R = j._init;
|
|
291
291
|
try {
|
|
292
|
-
return
|
|
292
|
+
return we(R(y), l, u);
|
|
293
293
|
} catch {
|
|
294
294
|
}
|
|
295
295
|
}
|
|
296
296
|
}
|
|
297
297
|
return "";
|
|
298
298
|
}
|
|
299
|
-
var
|
|
300
|
-
function
|
|
299
|
+
var de = Object.prototype.hasOwnProperty, ar = {}, ir = X.ReactDebugCurrentFrame;
|
|
300
|
+
function Ee(r) {
|
|
301
301
|
if (r) {
|
|
302
|
-
var l = r._owner,
|
|
303
|
-
|
|
302
|
+
var l = r._owner, u = we(r.type, r._source, l ? l.type : null);
|
|
303
|
+
ir.setExtraStackFrame(u);
|
|
304
304
|
} else
|
|
305
|
-
|
|
305
|
+
ir.setExtraStackFrame(null);
|
|
306
306
|
}
|
|
307
|
-
function
|
|
307
|
+
function Ir(r, l, u, j, y) {
|
|
308
308
|
{
|
|
309
|
-
var
|
|
310
|
-
for (var
|
|
311
|
-
if (
|
|
312
|
-
var
|
|
309
|
+
var R = Function.call.bind(de);
|
|
310
|
+
for (var N in r)
|
|
311
|
+
if (R(r, N)) {
|
|
312
|
+
var g = void 0;
|
|
313
313
|
try {
|
|
314
|
-
if (typeof r[
|
|
315
|
-
var
|
|
316
|
-
throw
|
|
314
|
+
if (typeof r[N] != "function") {
|
|
315
|
+
var I = Error((j || "React class") + ": " + u + " type `" + N + "` is invalid; it must be a function, usually from the `prop-types` package, but received `" + typeof r[N] + "`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");
|
|
316
|
+
throw I.name = "Invariant Violation", I;
|
|
317
317
|
}
|
|
318
|
-
|
|
319
|
-
} catch (
|
|
320
|
-
|
|
318
|
+
g = r[N](l, N, j, u, null, "SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED");
|
|
319
|
+
} catch (E) {
|
|
320
|
+
g = E;
|
|
321
321
|
}
|
|
322
|
-
|
|
322
|
+
g && !(g instanceof Error) && (Ee(y), C("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).", j || "React class", u, N, typeof g), Ee(null)), g instanceof Error && !(g.message in ar) && (ar[g.message] = !0, Ee(y), C("Failed %s type: %s", u, g.message), Ee(null));
|
|
323
323
|
}
|
|
324
324
|
}
|
|
325
325
|
}
|
|
326
|
-
var
|
|
327
|
-
function
|
|
328
|
-
return
|
|
326
|
+
var Lr = Array.isArray;
|
|
327
|
+
function Be(r) {
|
|
328
|
+
return Lr(r);
|
|
329
329
|
}
|
|
330
|
-
function
|
|
330
|
+
function Ur(r) {
|
|
331
331
|
{
|
|
332
|
-
var l = typeof Symbol == "function" && Symbol.toStringTag,
|
|
333
|
-
return
|
|
332
|
+
var l = typeof Symbol == "function" && Symbol.toStringTag, u = l && r[Symbol.toStringTag] || r.constructor.name || "Object";
|
|
333
|
+
return u;
|
|
334
334
|
}
|
|
335
335
|
}
|
|
336
|
-
function
|
|
336
|
+
function Mr(r) {
|
|
337
337
|
try {
|
|
338
|
-
return
|
|
338
|
+
return cr(r), !1;
|
|
339
339
|
} catch {
|
|
340
340
|
return !0;
|
|
341
341
|
}
|
|
342
342
|
}
|
|
343
|
-
function
|
|
343
|
+
function cr(r) {
|
|
344
344
|
return "" + r;
|
|
345
345
|
}
|
|
346
|
-
function
|
|
347
|
-
if (
|
|
348
|
-
return
|
|
346
|
+
function lr(r) {
|
|
347
|
+
if (Mr(r))
|
|
348
|
+
return C("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.", Ur(r)), cr(r);
|
|
349
349
|
}
|
|
350
|
-
var
|
|
350
|
+
var or = X.ReactCurrentOwner, qr = {
|
|
351
351
|
key: !0,
|
|
352
352
|
ref: !0,
|
|
353
353
|
__self: !0,
|
|
354
354
|
__source: !0
|
|
355
|
-
},
|
|
356
|
-
function
|
|
357
|
-
if (
|
|
355
|
+
}, dr, ur;
|
|
356
|
+
function Gr(r) {
|
|
357
|
+
if (de.call(r, "ref")) {
|
|
358
358
|
var l = Object.getOwnPropertyDescriptor(r, "ref").get;
|
|
359
359
|
if (l && l.isReactWarning)
|
|
360
360
|
return !1;
|
|
361
361
|
}
|
|
362
362
|
return r.ref !== void 0;
|
|
363
363
|
}
|
|
364
|
-
function
|
|
365
|
-
if (
|
|
364
|
+
function Wr(r) {
|
|
365
|
+
if (de.call(r, "key")) {
|
|
366
366
|
var l = Object.getOwnPropertyDescriptor(r, "key").get;
|
|
367
367
|
if (l && l.isReactWarning)
|
|
368
368
|
return !1;
|
|
369
369
|
}
|
|
370
370
|
return r.key !== void 0;
|
|
371
371
|
}
|
|
372
|
-
function
|
|
373
|
-
typeof r.ref == "string" &&
|
|
372
|
+
function Vr(r, l) {
|
|
373
|
+
typeof r.ref == "string" && or.current;
|
|
374
374
|
}
|
|
375
|
-
function
|
|
375
|
+
function Yr(r, l) {
|
|
376
376
|
{
|
|
377
|
-
var
|
|
378
|
-
|
|
377
|
+
var u = function() {
|
|
378
|
+
dr || (dr = !0, C("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)", l));
|
|
379
379
|
};
|
|
380
|
-
|
|
381
|
-
get:
|
|
380
|
+
u.isReactWarning = !0, Object.defineProperty(r, "key", {
|
|
381
|
+
get: u,
|
|
382
382
|
configurable: !0
|
|
383
383
|
});
|
|
384
384
|
}
|
|
385
385
|
}
|
|
386
|
-
function
|
|
386
|
+
function zr(r, l) {
|
|
387
387
|
{
|
|
388
|
-
var
|
|
389
|
-
|
|
388
|
+
var u = function() {
|
|
389
|
+
ur || (ur = !0, C("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)", l));
|
|
390
390
|
};
|
|
391
|
-
|
|
392
|
-
get:
|
|
391
|
+
u.isReactWarning = !0, Object.defineProperty(r, "ref", {
|
|
392
|
+
get: u,
|
|
393
393
|
configurable: !0
|
|
394
394
|
});
|
|
395
395
|
}
|
|
396
396
|
}
|
|
397
|
-
var
|
|
398
|
-
var
|
|
397
|
+
var Kr = function(r, l, u, j, y, R, N) {
|
|
398
|
+
var g = {
|
|
399
399
|
// This tag allows us to uniquely identify this as a React Element
|
|
400
400
|
$$typeof: n,
|
|
401
401
|
// Built-in properties that belong on the element
|
|
402
402
|
type: r,
|
|
403
403
|
key: l,
|
|
404
|
-
ref:
|
|
405
|
-
props:
|
|
404
|
+
ref: u,
|
|
405
|
+
props: N,
|
|
406
406
|
// Record the component responsible for creating this element.
|
|
407
|
-
_owner:
|
|
407
|
+
_owner: R
|
|
408
408
|
};
|
|
409
|
-
return
|
|
409
|
+
return g._store = {}, Object.defineProperty(g._store, "validated", {
|
|
410
410
|
configurable: !1,
|
|
411
411
|
enumerable: !1,
|
|
412
412
|
writable: !0,
|
|
413
413
|
value: !1
|
|
414
|
-
}), Object.defineProperty(
|
|
414
|
+
}), Object.defineProperty(g, "_self", {
|
|
415
415
|
configurable: !1,
|
|
416
416
|
enumerable: !1,
|
|
417
417
|
writable: !1,
|
|
418
|
-
value:
|
|
419
|
-
}), Object.defineProperty(
|
|
418
|
+
value: j
|
|
419
|
+
}), Object.defineProperty(g, "_source", {
|
|
420
420
|
configurable: !1,
|
|
421
421
|
enumerable: !1,
|
|
422
422
|
writable: !1,
|
|
423
|
-
value:
|
|
424
|
-
}), Object.freeze && (Object.freeze(
|
|
423
|
+
value: y
|
|
424
|
+
}), Object.freeze && (Object.freeze(g.props), Object.freeze(g)), g;
|
|
425
425
|
};
|
|
426
|
-
function
|
|
426
|
+
function Jr(r, l, u, j, y) {
|
|
427
427
|
{
|
|
428
|
-
var
|
|
429
|
-
|
|
430
|
-
for (
|
|
431
|
-
|
|
428
|
+
var R, N = {}, g = null, I = null;
|
|
429
|
+
u !== void 0 && (lr(u), g = "" + u), Wr(l) && (lr(l.key), g = "" + l.key), Gr(l) && (I = l.ref, Vr(l, y));
|
|
430
|
+
for (R in l)
|
|
431
|
+
de.call(l, R) && !qr.hasOwnProperty(R) && (N[R] = l[R]);
|
|
432
432
|
if (r && r.defaultProps) {
|
|
433
|
-
var
|
|
434
|
-
for (
|
|
435
|
-
|
|
433
|
+
var E = r.defaultProps;
|
|
434
|
+
for (R in E)
|
|
435
|
+
N[R] === void 0 && (N[R] = E[R]);
|
|
436
436
|
}
|
|
437
|
-
if (
|
|
438
|
-
var
|
|
439
|
-
|
|
437
|
+
if (g || I) {
|
|
438
|
+
var T = typeof r == "function" ? r.displayName || r.name || "Unknown" : r;
|
|
439
|
+
g && Yr(N, T), I && zr(N, T);
|
|
440
440
|
}
|
|
441
|
-
return
|
|
441
|
+
return Kr(r, g, I, y, j, or.current, N);
|
|
442
442
|
}
|
|
443
443
|
}
|
|
444
|
-
var
|
|
445
|
-
function
|
|
444
|
+
var Ie = X.ReactCurrentOwner, hr = X.ReactDebugCurrentFrame;
|
|
445
|
+
function ae(r) {
|
|
446
446
|
if (r) {
|
|
447
|
-
var l = r._owner,
|
|
448
|
-
|
|
447
|
+
var l = r._owner, u = we(r.type, r._source, l ? l.type : null);
|
|
448
|
+
hr.setExtraStackFrame(u);
|
|
449
449
|
} else
|
|
450
|
-
|
|
450
|
+
hr.setExtraStackFrame(null);
|
|
451
451
|
}
|
|
452
|
-
var
|
|
453
|
-
|
|
454
|
-
function
|
|
452
|
+
var Le;
|
|
453
|
+
Le = !1;
|
|
454
|
+
function Ue(r) {
|
|
455
455
|
return typeof r == "object" && r !== null && r.$$typeof === n;
|
|
456
456
|
}
|
|
457
|
-
function
|
|
457
|
+
function xr() {
|
|
458
458
|
{
|
|
459
|
-
if (
|
|
460
|
-
var r =
|
|
459
|
+
if (Ie.current) {
|
|
460
|
+
var r = W(Ie.current.type);
|
|
461
461
|
if (r)
|
|
462
462
|
return `
|
|
463
463
|
|
|
@@ -466,18 +466,18 @@ Check the render method of \`` + r + "`.";
|
|
|
466
466
|
return "";
|
|
467
467
|
}
|
|
468
468
|
}
|
|
469
|
-
function
|
|
469
|
+
function Hr(r) {
|
|
470
470
|
return "";
|
|
471
471
|
}
|
|
472
|
-
var
|
|
473
|
-
function
|
|
472
|
+
var mr = {};
|
|
473
|
+
function Xr(r) {
|
|
474
474
|
{
|
|
475
|
-
var l =
|
|
475
|
+
var l = xr();
|
|
476
476
|
if (!l) {
|
|
477
|
-
var
|
|
478
|
-
|
|
477
|
+
var u = typeof r == "string" ? r : r.displayName || r.name;
|
|
478
|
+
u && (l = `
|
|
479
479
|
|
|
480
|
-
Check the top-level render call using <` +
|
|
480
|
+
Check the top-level render call using <` + u + ">.");
|
|
481
481
|
}
|
|
482
482
|
return l;
|
|
483
483
|
}
|
|
@@ -487,136 +487,136 @@ Check the top-level render call using <` + h + ">.");
|
|
|
487
487
|
if (!r._store || r._store.validated || r.key != null)
|
|
488
488
|
return;
|
|
489
489
|
r._store.validated = !0;
|
|
490
|
-
var
|
|
491
|
-
if (
|
|
490
|
+
var u = Xr(l);
|
|
491
|
+
if (mr[u])
|
|
492
492
|
return;
|
|
493
|
-
|
|
494
|
-
var
|
|
495
|
-
r && r._owner && r._owner !==
|
|
493
|
+
mr[u] = !0;
|
|
494
|
+
var j = "";
|
|
495
|
+
r && r._owner && r._owner !== Ie.current && (j = " It was passed a child from " + W(r._owner.type) + "."), ae(r), C('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.', u, j), ae(null);
|
|
496
496
|
}
|
|
497
497
|
}
|
|
498
|
-
function
|
|
498
|
+
function jr(r, l) {
|
|
499
499
|
{
|
|
500
500
|
if (typeof r != "object")
|
|
501
501
|
return;
|
|
502
|
-
if (
|
|
503
|
-
for (var
|
|
504
|
-
var
|
|
505
|
-
|
|
502
|
+
if (Be(r))
|
|
503
|
+
for (var u = 0; u < r.length; u++) {
|
|
504
|
+
var j = r[u];
|
|
505
|
+
Ue(j) && fr(j, l);
|
|
506
506
|
}
|
|
507
|
-
else if (
|
|
507
|
+
else if (Ue(r))
|
|
508
508
|
r._store && (r._store.validated = !0);
|
|
509
509
|
else if (r) {
|
|
510
|
-
var
|
|
511
|
-
if (typeof
|
|
512
|
-
for (var
|
|
513
|
-
|
|
510
|
+
var y = ge(r);
|
|
511
|
+
if (typeof y == "function" && y !== r.entries)
|
|
512
|
+
for (var R = y.call(r), N; !(N = R.next()).done; )
|
|
513
|
+
Ue(N.value) && fr(N.value, l);
|
|
514
514
|
}
|
|
515
515
|
}
|
|
516
516
|
}
|
|
517
|
-
function
|
|
517
|
+
function Qr(r) {
|
|
518
518
|
{
|
|
519
519
|
var l = r.type;
|
|
520
520
|
if (l == null || typeof l == "string")
|
|
521
521
|
return;
|
|
522
|
-
var
|
|
522
|
+
var u;
|
|
523
523
|
if (typeof l == "function")
|
|
524
|
-
|
|
525
|
-
else if (typeof l == "object" && (l.$$typeof ===
|
|
524
|
+
u = l.propTypes;
|
|
525
|
+
else if (typeof l == "object" && (l.$$typeof === x || // Note: Memo only checks outer props here.
|
|
526
526
|
// Inner props are checked in the reconciler.
|
|
527
|
-
l.$$typeof ===
|
|
528
|
-
|
|
527
|
+
l.$$typeof === $))
|
|
528
|
+
u = l.propTypes;
|
|
529
529
|
else
|
|
530
530
|
return;
|
|
531
|
-
if (
|
|
532
|
-
var
|
|
533
|
-
|
|
534
|
-
} else if (l.PropTypes !== void 0 && !
|
|
535
|
-
|
|
536
|
-
var
|
|
537
|
-
|
|
531
|
+
if (u) {
|
|
532
|
+
var j = W(l);
|
|
533
|
+
Ir(u, r.props, "prop", j, r);
|
|
534
|
+
} else if (l.PropTypes !== void 0 && !Le) {
|
|
535
|
+
Le = !0;
|
|
536
|
+
var y = W(l);
|
|
537
|
+
C("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?", y || "Unknown");
|
|
538
538
|
}
|
|
539
|
-
typeof l.getDefaultProps == "function" && !l.getDefaultProps.isReactClassApproved &&
|
|
539
|
+
typeof l.getDefaultProps == "function" && !l.getDefaultProps.isReactClassApproved && C("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.");
|
|
540
540
|
}
|
|
541
541
|
}
|
|
542
|
-
function
|
|
542
|
+
function Zr(r) {
|
|
543
543
|
{
|
|
544
|
-
for (var l = Object.keys(r.props),
|
|
545
|
-
var
|
|
546
|
-
if (
|
|
547
|
-
|
|
544
|
+
for (var l = Object.keys(r.props), u = 0; u < l.length; u++) {
|
|
545
|
+
var j = l[u];
|
|
546
|
+
if (j !== "children" && j !== "key") {
|
|
547
|
+
ae(r), C("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.", j), ae(null);
|
|
548
548
|
break;
|
|
549
549
|
}
|
|
550
550
|
}
|
|
551
|
-
r.ref !== null && (
|
|
551
|
+
r.ref !== null && (ae(r), C("Invalid attribute `ref` supplied to `React.Fragment`."), ae(null));
|
|
552
552
|
}
|
|
553
553
|
}
|
|
554
|
-
var
|
|
555
|
-
function
|
|
554
|
+
var pr = {};
|
|
555
|
+
function gr(r, l, u, j, y, R) {
|
|
556
556
|
{
|
|
557
|
-
var
|
|
558
|
-
if (!
|
|
559
|
-
var
|
|
560
|
-
(r === void 0 || typeof r == "object" && r !== null && Object.keys(r).length === 0) && (
|
|
561
|
-
var
|
|
562
|
-
|
|
563
|
-
var
|
|
564
|
-
r === null ?
|
|
557
|
+
var N = D(r);
|
|
558
|
+
if (!N) {
|
|
559
|
+
var g = "";
|
|
560
|
+
(r === void 0 || typeof r == "object" && r !== null && Object.keys(r).length === 0) && (g += " You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.");
|
|
561
|
+
var I = Hr();
|
|
562
|
+
I ? g += I : g += xr();
|
|
563
|
+
var E;
|
|
564
|
+
r === null ? E = "null" : Be(r) ? E = "array" : r !== void 0 && r.$$typeof === n ? (E = "<" + (W(r.type) || "Unknown") + " />", g = " Did you accidentally export a JSX literal instead of a component?") : E = typeof r, C("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s", E, g);
|
|
565
565
|
}
|
|
566
|
-
var
|
|
567
|
-
if (
|
|
568
|
-
return
|
|
569
|
-
if (
|
|
570
|
-
var
|
|
571
|
-
if (
|
|
572
|
-
if (
|
|
573
|
-
if (
|
|
574
|
-
for (var
|
|
575
|
-
|
|
576
|
-
Object.freeze && Object.freeze(
|
|
566
|
+
var T = Jr(r, l, u, y, R);
|
|
567
|
+
if (T == null)
|
|
568
|
+
return T;
|
|
569
|
+
if (N) {
|
|
570
|
+
var z = l.children;
|
|
571
|
+
if (z !== void 0)
|
|
572
|
+
if (j)
|
|
573
|
+
if (Be(z)) {
|
|
574
|
+
for (var ie = 0; ie < z.length; ie++)
|
|
575
|
+
jr(z[ie], r);
|
|
576
|
+
Object.freeze && Object.freeze(z);
|
|
577
577
|
} else
|
|
578
|
-
|
|
578
|
+
C("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");
|
|
579
579
|
else
|
|
580
|
-
|
|
580
|
+
jr(z, r);
|
|
581
581
|
}
|
|
582
|
-
if (
|
|
583
|
-
var
|
|
584
|
-
return
|
|
585
|
-
}),
|
|
586
|
-
if (!
|
|
587
|
-
var
|
|
588
|
-
|
|
582
|
+
if (de.call(l, "key")) {
|
|
583
|
+
var re = W(r), L = Object.keys(l).filter(function(as) {
|
|
584
|
+
return as !== "key";
|
|
585
|
+
}), Me = L.length > 0 ? "{key: someKey, " + L.join(": ..., ") + ": ...}" : "{key: someKey}";
|
|
586
|
+
if (!pr[re + Me]) {
|
|
587
|
+
var ts = L.length > 0 ? "{" + L.join(": ..., ") + ": ...}" : "{}";
|
|
588
|
+
C(`A props object containing a "key" prop is being spread into JSX:
|
|
589
589
|
let props = %s;
|
|
590
590
|
<%s {...props} />
|
|
591
591
|
React keys must be passed directly to JSX without using spread:
|
|
592
592
|
let props = %s;
|
|
593
|
-
<%s key={someKey} {...props} />`,
|
|
593
|
+
<%s key={someKey} {...props} />`, Me, re, ts, re), pr[re + Me] = !0;
|
|
594
594
|
}
|
|
595
595
|
}
|
|
596
|
-
return r ===
|
|
596
|
+
return r === a ? Zr(T) : Qr(T), T;
|
|
597
597
|
}
|
|
598
598
|
}
|
|
599
|
-
function
|
|
600
|
-
return
|
|
599
|
+
function es(r, l, u) {
|
|
600
|
+
return gr(r, l, u, !0);
|
|
601
601
|
}
|
|
602
|
-
function
|
|
603
|
-
return
|
|
602
|
+
function rs(r, l, u) {
|
|
603
|
+
return gr(r, l, u, !1);
|
|
604
604
|
}
|
|
605
|
-
var
|
|
606
|
-
|
|
607
|
-
})()),
|
|
605
|
+
var ss = rs, ns = es;
|
|
606
|
+
he.Fragment = a, he.jsx = ss, he.jsxs = ns;
|
|
607
|
+
})()), he;
|
|
608
608
|
}
|
|
609
609
|
var _r;
|
|
610
|
-
function
|
|
611
|
-
return _r || (_r = 1, process.env.NODE_ENV === "production" ?
|
|
610
|
+
function xs() {
|
|
611
|
+
return _r || (_r = 1, process.env.NODE_ENV === "production" ? Se.exports = us() : Se.exports = hs()), Se.exports;
|
|
612
612
|
}
|
|
613
|
-
var e =
|
|
614
|
-
class
|
|
613
|
+
var e = xs();
|
|
614
|
+
class fe extends Error {
|
|
615
615
|
constructor(n, t) {
|
|
616
616
|
super(t), this.status = n, this.name = "ApiError";
|
|
617
617
|
}
|
|
618
618
|
}
|
|
619
|
-
class
|
|
619
|
+
class ms {
|
|
620
620
|
baseUrl;
|
|
621
621
|
headers;
|
|
622
622
|
constructor(n = {}) {
|
|
@@ -625,27 +625,27 @@ class fs {
|
|
|
625
625
|
...n.headers
|
|
626
626
|
};
|
|
627
627
|
}
|
|
628
|
-
async request(n, t,
|
|
628
|
+
async request(n, t, a = {}) {
|
|
629
629
|
let d = `${this.baseUrl}${t}`;
|
|
630
|
-
if (
|
|
631
|
-
const
|
|
632
|
-
Object.entries(
|
|
633
|
-
|
|
630
|
+
if (a.params) {
|
|
631
|
+
const f = new URLSearchParams();
|
|
632
|
+
Object.entries(a.params).forEach(([x, o]) => {
|
|
633
|
+
o != null && o !== "" && f.set(x, String(o));
|
|
634
634
|
});
|
|
635
|
-
const
|
|
636
|
-
|
|
635
|
+
const i = f.toString();
|
|
636
|
+
i && (d += `?${i}`);
|
|
637
637
|
}
|
|
638
|
-
const
|
|
638
|
+
const h = await fetch(d, {
|
|
639
639
|
method: n,
|
|
640
640
|
headers: this.headers,
|
|
641
|
-
body:
|
|
641
|
+
body: a.body ? JSON.stringify(a.body) : void 0
|
|
642
642
|
});
|
|
643
|
-
if (!
|
|
644
|
-
const
|
|
645
|
-
throw new
|
|
643
|
+
if (!h.ok) {
|
|
644
|
+
const f = await h.json().catch(() => ({ detail: "Unknown error" }));
|
|
645
|
+
throw new fe(h.status, f.detail || h.statusText);
|
|
646
646
|
}
|
|
647
|
-
if (!(
|
|
648
|
-
return
|
|
647
|
+
if (!(h.status === 204 || h.headers.get("content-length") === "0"))
|
|
648
|
+
return h.json();
|
|
649
649
|
}
|
|
650
650
|
async getCapabilities() {
|
|
651
651
|
return this.request("GET", "/api/v1/capabilities");
|
|
@@ -685,56 +685,56 @@ class fs {
|
|
|
685
685
|
return `${this.baseUrl}/api/runs/${n}/artifacts/${t}/raw`;
|
|
686
686
|
}
|
|
687
687
|
}
|
|
688
|
-
const
|
|
689
|
-
function
|
|
688
|
+
const fs = new ms(), Er = wr(null);
|
|
689
|
+
function js({
|
|
690
690
|
children: s,
|
|
691
|
-
api: n =
|
|
691
|
+
api: n = fs,
|
|
692
692
|
initialWorkspace: t = null
|
|
693
693
|
}) {
|
|
694
|
-
const [
|
|
695
|
-
return
|
|
694
|
+
const [a, d] = U(null), [h, f] = U(t);
|
|
695
|
+
return We(() => {
|
|
696
696
|
n.getCapabilities().then(d).catch(console.error);
|
|
697
|
-
}, [n]), /* @__PURE__ */ e.jsx(
|
|
697
|
+
}, [n]), /* @__PURE__ */ e.jsx(Er.Provider, { value: { api: n, capabilities: a, currentWorkspace: h, setCurrentWorkspace: f }, children: s });
|
|
698
698
|
}
|
|
699
|
-
function
|
|
700
|
-
const s =
|
|
699
|
+
function Y() {
|
|
700
|
+
const s = Rr(Er);
|
|
701
701
|
if (!s) throw new Error("useApp must be used within AppProvider");
|
|
702
702
|
return s;
|
|
703
703
|
}
|
|
704
|
-
function
|
|
705
|
-
const [t,
|
|
704
|
+
function ne(s, n = []) {
|
|
705
|
+
const [t, a] = U({
|
|
706
706
|
data: null,
|
|
707
707
|
loading: !0,
|
|
708
708
|
error: null
|
|
709
|
-
}), d =
|
|
710
|
-
|
|
711
|
-
const
|
|
712
|
-
|
|
709
|
+
}), d = vr(!0), h = vr(s);
|
|
710
|
+
h.current = s;
|
|
711
|
+
const f = me(async () => {
|
|
712
|
+
a((i) => ({ ...i, loading: !0, error: null }));
|
|
713
713
|
try {
|
|
714
|
-
const
|
|
715
|
-
d.current &&
|
|
716
|
-
} catch (
|
|
717
|
-
d.current &&
|
|
714
|
+
const i = await h.current();
|
|
715
|
+
d.current && a({ data: i, loading: !1, error: null });
|
|
716
|
+
} catch (i) {
|
|
717
|
+
d.current && a({
|
|
718
718
|
data: null,
|
|
719
719
|
loading: !1,
|
|
720
|
-
error:
|
|
720
|
+
error: i instanceof fe ? i : new fe(500, String(i))
|
|
721
721
|
});
|
|
722
722
|
}
|
|
723
723
|
}, []);
|
|
724
|
-
return
|
|
724
|
+
return We(() => (d.current = !0, f(), () => {
|
|
725
725
|
d.current = !1;
|
|
726
|
-
}), n), { ...t, refetch:
|
|
726
|
+
}), n), { ...t, refetch: f };
|
|
727
727
|
}
|
|
728
|
-
function
|
|
729
|
-
const { api: n, currentWorkspace: t } =
|
|
730
|
-
return
|
|
728
|
+
function Sr(s) {
|
|
729
|
+
const { api: n, currentWorkspace: t } = Y();
|
|
730
|
+
return ne(
|
|
731
731
|
() => n.listRuns({ ...s, workspace: t?.id }),
|
|
732
732
|
[n, t?.id, s?.project, s?.status, s?.q, s?.limit]
|
|
733
733
|
);
|
|
734
734
|
}
|
|
735
735
|
function Pr(s) {
|
|
736
|
-
const { api: n } =
|
|
737
|
-
return
|
|
736
|
+
const { api: n } = Y();
|
|
737
|
+
return ne(
|
|
738
738
|
async () => {
|
|
739
739
|
const { run: t } = await n.getRun(s);
|
|
740
740
|
return t;
|
|
@@ -742,9 +742,9 @@ function Pr(s) {
|
|
|
742
742
|
[n, s]
|
|
743
743
|
);
|
|
744
744
|
}
|
|
745
|
-
function
|
|
746
|
-
const { api: s, currentWorkspace: n } =
|
|
747
|
-
return
|
|
745
|
+
function ze() {
|
|
746
|
+
const { api: s, currentWorkspace: n } = Y();
|
|
747
|
+
return ne(
|
|
748
748
|
async () => {
|
|
749
749
|
const { projects: t } = await s.listProjects({ workspace: n?.id });
|
|
750
750
|
return t;
|
|
@@ -752,150 +752,150 @@ function $e() {
|
|
|
752
752
|
[s, n?.id]
|
|
753
753
|
);
|
|
754
754
|
}
|
|
755
|
-
function
|
|
756
|
-
const { api: n, currentWorkspace: t } =
|
|
757
|
-
return
|
|
755
|
+
function ps(s) {
|
|
756
|
+
const { api: n, currentWorkspace: t } = Y();
|
|
757
|
+
return ne(
|
|
758
758
|
async () => {
|
|
759
|
-
const { groups:
|
|
760
|
-
return
|
|
759
|
+
const { groups: a } = await n.listGroups({ ...s, workspace: t?.id });
|
|
760
|
+
return a;
|
|
761
761
|
},
|
|
762
762
|
[n, t?.id, s?.project]
|
|
763
763
|
);
|
|
764
764
|
}
|
|
765
|
-
function
|
|
766
|
-
const { api: n } =
|
|
767
|
-
return
|
|
765
|
+
function gs(s) {
|
|
766
|
+
const { api: n } = Y();
|
|
767
|
+
return ne(
|
|
768
768
|
() => n.getGroup(s),
|
|
769
769
|
[n, s]
|
|
770
770
|
);
|
|
771
771
|
}
|
|
772
|
-
function
|
|
773
|
-
const { api: t } =
|
|
774
|
-
return
|
|
772
|
+
function vs(s, n) {
|
|
773
|
+
const { api: t } = Y();
|
|
774
|
+
return ne(
|
|
775
775
|
() => t.getDiff(s, n),
|
|
776
776
|
[t, s, n]
|
|
777
777
|
);
|
|
778
778
|
}
|
|
779
|
-
function
|
|
780
|
-
const { api: t } =
|
|
781
|
-
return
|
|
779
|
+
function bs(s, n) {
|
|
780
|
+
const { api: t } = Y();
|
|
781
|
+
return ne(
|
|
782
782
|
() => t.getArtifact(s, n),
|
|
783
783
|
[t, s, n]
|
|
784
784
|
);
|
|
785
785
|
}
|
|
786
|
-
function
|
|
787
|
-
const [n, t] =
|
|
788
|
-
return { mutate:
|
|
786
|
+
function je(s) {
|
|
787
|
+
const [n, t] = U(!1), [a, d] = U(null);
|
|
788
|
+
return { mutate: me(async (...f) => {
|
|
789
789
|
t(!0), d(null);
|
|
790
790
|
try {
|
|
791
|
-
return await s(...
|
|
792
|
-
} catch (
|
|
793
|
-
const
|
|
794
|
-
throw d(
|
|
791
|
+
return await s(...f);
|
|
792
|
+
} catch (i) {
|
|
793
|
+
const x = i instanceof fe ? i : new fe(500, String(i));
|
|
794
|
+
throw d(x), x;
|
|
795
795
|
} finally {
|
|
796
796
|
t(!1);
|
|
797
797
|
}
|
|
798
|
-
}, [s]), loading: n, error:
|
|
798
|
+
}, [s]), loading: n, error: a };
|
|
799
799
|
}
|
|
800
|
-
function
|
|
800
|
+
function K(s) {
|
|
801
801
|
return s?.slice(0, 8) ?? "";
|
|
802
802
|
}
|
|
803
|
-
function
|
|
803
|
+
function qe(s) {
|
|
804
804
|
return s?.slice(0, 12) ?? "N/A";
|
|
805
805
|
}
|
|
806
|
-
function
|
|
807
|
-
const n = new Date(s),
|
|
808
|
-
if (
|
|
809
|
-
if (
|
|
810
|
-
const
|
|
811
|
-
return `${
|
|
806
|
+
function Te(s) {
|
|
807
|
+
const n = new Date(s), a = Math.floor(((/* @__PURE__ */ new Date()).getTime() - n.getTime()) / 1e3);
|
|
808
|
+
if (a < 60) return "just now";
|
|
809
|
+
if (a < 3600) {
|
|
810
|
+
const h = Math.floor(a / 60);
|
|
811
|
+
return `${h} minute${h !== 1 ? "s" : ""} ago`;
|
|
812
812
|
}
|
|
813
|
-
if (
|
|
814
|
-
const
|
|
815
|
-
return `${
|
|
813
|
+
if (a < 86400) {
|
|
814
|
+
const h = Math.floor(a / 3600);
|
|
815
|
+
return `${h} hour${h !== 1 ? "s" : ""} ago`;
|
|
816
816
|
}
|
|
817
|
-
if (
|
|
818
|
-
const
|
|
819
|
-
return `${
|
|
817
|
+
if (a < 2592e3) {
|
|
818
|
+
const h = Math.floor(a / 86400);
|
|
819
|
+
return `${h} day${h !== 1 ? "s" : ""} ago`;
|
|
820
820
|
}
|
|
821
|
-
if (
|
|
822
|
-
const
|
|
823
|
-
return `${
|
|
821
|
+
if (a < 31536e3) {
|
|
822
|
+
const h = Math.floor(a / 2592e3);
|
|
823
|
+
return `${h} month${h !== 1 ? "s" : ""} ago`;
|
|
824
824
|
}
|
|
825
|
-
const d = Math.floor(
|
|
825
|
+
const d = Math.floor(a / 31536e3);
|
|
826
826
|
return `${d} year${d !== 1 ? "s" : ""} ago`;
|
|
827
827
|
}
|
|
828
|
-
function
|
|
828
|
+
function Ns(s, n = 6) {
|
|
829
829
|
return typeof s != "number" || isNaN(s) ? String(s) : Number(s.toPrecision(n)).toString();
|
|
830
830
|
}
|
|
831
|
-
function
|
|
831
|
+
function Pe(s) {
|
|
832
832
|
return s < 1024 ? `${s} bytes` : s < 1048576 ? `${(s / 1024).toFixed(1)} KB` : `${(s / 1048576).toFixed(1)} MB`;
|
|
833
833
|
}
|
|
834
|
-
function
|
|
834
|
+
function _s(s) {
|
|
835
835
|
return JSON.stringify(s, null, 2);
|
|
836
836
|
}
|
|
837
|
-
function
|
|
837
|
+
function ys(s, n = 60) {
|
|
838
838
|
return s ? s.length <= n ? s : s.slice(0, n - 3) + "..." : "";
|
|
839
839
|
}
|
|
840
|
-
function
|
|
840
|
+
function Ws(s, n) {
|
|
841
841
|
const t = new URLSearchParams();
|
|
842
|
-
Object.entries(n).forEach(([d,
|
|
843
|
-
|
|
842
|
+
Object.entries(n).forEach(([d, h]) => {
|
|
843
|
+
h != null && h !== "" && t.set(d, String(h));
|
|
844
844
|
});
|
|
845
|
-
const
|
|
846
|
-
return
|
|
845
|
+
const a = t.toString();
|
|
846
|
+
return a ? `${s}?${a}` : s;
|
|
847
847
|
}
|
|
848
|
-
function
|
|
848
|
+
function A(...s) {
|
|
849
849
|
return s.filter(Boolean).join(" ");
|
|
850
850
|
}
|
|
851
|
-
const
|
|
851
|
+
const Rs = [
|
|
852
852
|
{ href: "/runs", label: "Runs", matchPaths: ["/runs"] },
|
|
853
853
|
{ href: "/projects", label: "Projects", matchPaths: ["/projects"] },
|
|
854
854
|
{ href: "/groups", label: "Groups", matchPaths: ["/groups"] },
|
|
855
855
|
{ href: "/diff", label: "Compare", matchPaths: ["/diff"] },
|
|
856
856
|
{ href: "/search", label: "Search", matchPaths: ["/search"] }
|
|
857
|
-
],
|
|
858
|
-
function
|
|
857
|
+
], Tr = wr(null);
|
|
858
|
+
function Vs({
|
|
859
859
|
config: s,
|
|
860
860
|
children: n
|
|
861
861
|
}) {
|
|
862
|
-
return /* @__PURE__ */ e.jsx(
|
|
862
|
+
return /* @__PURE__ */ e.jsx(Tr.Provider, { value: s, children: n });
|
|
863
863
|
}
|
|
864
|
-
function
|
|
865
|
-
return
|
|
864
|
+
function ws() {
|
|
865
|
+
return Rr(Tr);
|
|
866
866
|
}
|
|
867
|
-
function
|
|
868
|
-
const t =
|
|
867
|
+
function q({ children: s, config: n }) {
|
|
868
|
+
const t = is(), d = { ...ws(), ...n }, h = d?.navLinks ?? Rs, f = [
|
|
869
869
|
...d?.prependNavLinks ?? [],
|
|
870
|
-
...
|
|
870
|
+
...h,
|
|
871
871
|
...d?.appendNavLinks ?? []
|
|
872
|
-
],
|
|
873
|
-
return /* @__PURE__ */ e.jsxs("div", { className: "min-h-screen bg-
|
|
874
|
-
/* @__PURE__ */ e.jsx("header", { className: "bg-gray-900 h-14 sticky top-0 z-50
|
|
872
|
+
], i = d?.logo ?? { text: "devqubit", icon: "⚛" }, x = (o) => o.matchPaths ? o.matchPaths.some((p) => t.pathname.startsWith(p)) : t.pathname === o.href;
|
|
873
|
+
return /* @__PURE__ */ e.jsxs("div", { className: "min-h-screen bg-primary-bg", children: [
|
|
874
|
+
/* @__PURE__ */ e.jsx("header", { className: "bg-gray-900 h-14 sticky top-0 z-50", children: /* @__PURE__ */ e.jsxs("div", { className: "max-w-container mx-auto px-6 h-full flex items-center justify-between", children: [
|
|
875
875
|
/* @__PURE__ */ e.jsxs("div", { className: "flex items-center gap-8", children: [
|
|
876
|
-
/* @__PURE__ */ e.jsxs(
|
|
877
|
-
|
|
878
|
-
|
|
876
|
+
/* @__PURE__ */ e.jsxs(M, { to: "/", className: "text-lg font-bold text-primary hover:text-primary-light flex items-center gap-1.5", children: [
|
|
877
|
+
i.icon && /* @__PURE__ */ e.jsx("span", { children: i.icon }),
|
|
878
|
+
i.text
|
|
879
879
|
] }),
|
|
880
|
-
/* @__PURE__ */ e.jsx("nav", { className: "flex gap-1", children:
|
|
881
|
-
|
|
880
|
+
/* @__PURE__ */ e.jsx("nav", { className: "flex gap-1", children: f.map((o) => /* @__PURE__ */ e.jsx(
|
|
881
|
+
M,
|
|
882
882
|
{
|
|
883
|
-
to:
|
|
884
|
-
className:
|
|
885
|
-
"px-3 py-
|
|
886
|
-
|
|
883
|
+
to: o.href,
|
|
884
|
+
className: A(
|
|
885
|
+
"px-3 py-2 rounded-md text-sm font-medium transition-all",
|
|
886
|
+
x(o) ? "text-white bg-primary/20" : "text-gray-400 hover:text-white hover:bg-white/10"
|
|
887
887
|
),
|
|
888
|
-
children:
|
|
888
|
+
children: o.label
|
|
889
889
|
},
|
|
890
|
-
|
|
890
|
+
o.href
|
|
891
891
|
)) })
|
|
892
892
|
] }),
|
|
893
893
|
/* @__PURE__ */ e.jsx("div", { className: "flex items-center gap-4", children: d?.headerRight })
|
|
894
894
|
] }) }),
|
|
895
|
-
/* @__PURE__ */ e.jsx("main", { className: "max-w-container mx-auto p-6
|
|
895
|
+
/* @__PURE__ */ e.jsx("main", { className: "max-w-container mx-auto p-6", children: s })
|
|
896
896
|
] });
|
|
897
897
|
}
|
|
898
|
-
function
|
|
898
|
+
function pe({ title: s, subtitle: n, actions: t }) {
|
|
899
899
|
return /* @__PURE__ */ e.jsxs("div", { className: "flex items-start justify-between mb-6 gap-4 flex-wrap", children: [
|
|
900
900
|
/* @__PURE__ */ e.jsxs("div", { children: [
|
|
901
901
|
/* @__PURE__ */ e.jsx("h1", { className: "text-2xl font-semibold text-gray-900 flex items-center gap-2 flex-wrap", children: s }),
|
|
@@ -904,22 +904,22 @@ function _e({ title: s, subtitle: n, actions: t }) {
|
|
|
904
904
|
t && /* @__PURE__ */ e.jsx("div", { className: "flex gap-2", children: t })
|
|
905
905
|
] });
|
|
906
906
|
}
|
|
907
|
-
function B({ variant: s = "gray", className: n, children: t, ...
|
|
908
|
-
return /* @__PURE__ */ e.jsx("span", { className:
|
|
907
|
+
function B({ variant: s = "gray", className: n, children: t, ...a }) {
|
|
908
|
+
return /* @__PURE__ */ e.jsx("span", { className: A("badge", `badge-${s}`, n), ...a, children: t });
|
|
909
909
|
}
|
|
910
|
-
const
|
|
911
|
-
({ variant: s = "secondary", size: n = "default", loading: t, className:
|
|
910
|
+
const k = Ve(
|
|
911
|
+
({ variant: s = "secondary", size: n = "default", loading: t, className: a, children: d, disabled: h, ...f }, i) => /* @__PURE__ */ e.jsxs(
|
|
912
912
|
"button",
|
|
913
913
|
{
|
|
914
|
-
ref:
|
|
915
|
-
className:
|
|
914
|
+
ref: i,
|
|
915
|
+
className: A(
|
|
916
916
|
"btn",
|
|
917
917
|
s === "ghost-danger" ? "btn-ghost-danger" : `btn-${s}`,
|
|
918
918
|
n === "sm" && "btn-sm",
|
|
919
|
-
|
|
919
|
+
a
|
|
920
920
|
),
|
|
921
|
-
disabled:
|
|
922
|
-
...
|
|
921
|
+
disabled: h || t,
|
|
922
|
+
...f,
|
|
923
923
|
children: [
|
|
924
924
|
t && /* @__PURE__ */ e.jsx(V, {}),
|
|
925
925
|
d
|
|
@@ -927,100 +927,93 @@ const F = He(
|
|
|
927
927
|
}
|
|
928
928
|
)
|
|
929
929
|
);
|
|
930
|
-
|
|
931
|
-
function
|
|
932
|
-
return /* @__PURE__ */ e.jsx("div", { className:
|
|
930
|
+
k.displayName = "Button";
|
|
931
|
+
function v({ className: s, children: n, ...t }) {
|
|
932
|
+
return /* @__PURE__ */ e.jsx("div", { className: A("card", s), ...t, children: n });
|
|
933
933
|
}
|
|
934
|
-
function
|
|
935
|
-
return /* @__PURE__ */ e.jsx("div", { className:
|
|
934
|
+
function S({ className: s, children: n, ...t }) {
|
|
935
|
+
return /* @__PURE__ */ e.jsx("div", { className: A("card-header", s), ...t, children: n });
|
|
936
936
|
}
|
|
937
|
-
function
|
|
938
|
-
return /* @__PURE__ */ e.jsx("h3", { className:
|
|
937
|
+
function P({ className: s, children: n, ...t }) {
|
|
938
|
+
return /* @__PURE__ */ e.jsx("h3", { className: A("card-title", s), ...t, children: n });
|
|
939
939
|
}
|
|
940
|
-
function Ys({ variant: s = "info", className: n, children: t, ...
|
|
941
|
-
return /* @__PURE__ */ e.jsx("div", { className:
|
|
940
|
+
function Ys({ variant: s = "info", className: n, children: t, ...a }) {
|
|
941
|
+
return /* @__PURE__ */ e.jsx("div", { className: A("alert", `alert-${s}`, n), ...a, children: t });
|
|
942
942
|
}
|
|
943
943
|
function V({ className: s, ...n }) {
|
|
944
|
-
return /* @__PURE__ */ e.jsx("span", { className:
|
|
944
|
+
return /* @__PURE__ */ e.jsx("span", { className: A("spinner", s), ...n });
|
|
945
945
|
}
|
|
946
|
-
function
|
|
947
|
-
return /* @__PURE__ */ e.jsxs("div", { className:
|
|
946
|
+
function te({ message: s, hint: n, className: t, ...a }) {
|
|
947
|
+
return /* @__PURE__ */ e.jsxs("div", { className: A("empty-state", t), ...a, children: [
|
|
948
948
|
/* @__PURE__ */ e.jsx("p", { children: s }),
|
|
949
949
|
n && /* @__PURE__ */ e.jsx("p", { className: "text-sm text-muted mt-2", children: n })
|
|
950
950
|
] });
|
|
951
951
|
}
|
|
952
|
-
function
|
|
953
|
-
return /* @__PURE__ */ e.jsx("dl", { className:
|
|
954
|
-
/* @__PURE__ */ e.jsx("dt", { children:
|
|
952
|
+
function Ge({ items: s, className: n, ...t }) {
|
|
953
|
+
return /* @__PURE__ */ e.jsx("dl", { className: A("kv-list", n), ...t, children: s.map(({ label: a, value: d }) => /* @__PURE__ */ e.jsxs("div", { className: "contents", children: [
|
|
954
|
+
/* @__PURE__ */ e.jsx("dt", { children: a }),
|
|
955
955
|
/* @__PURE__ */ e.jsx("dd", { children: d })
|
|
956
|
-
] },
|
|
956
|
+
] }, a)) });
|
|
957
957
|
}
|
|
958
|
-
function
|
|
958
|
+
function Es({ open: s, onClose: n, title: t, children: a, actions: d }) {
|
|
959
959
|
return s ? /* @__PURE__ */ e.jsx(
|
|
960
960
|
"div",
|
|
961
961
|
{
|
|
962
|
-
className:
|
|
963
|
-
onClick: (
|
|
964
|
-
children: /* @__PURE__ */ e.jsxs("div", { className: "modal", onClick: (
|
|
962
|
+
className: A("modal-backdrop", s && "active"),
|
|
963
|
+
onClick: (h) => h.target === h.currentTarget && n(),
|
|
964
|
+
children: /* @__PURE__ */ e.jsxs("div", { className: "modal", onClick: (h) => h.stopPropagation(), children: [
|
|
965
965
|
/* @__PURE__ */ e.jsx("h3", { className: "modal-title", children: t }),
|
|
966
|
-
/* @__PURE__ */ e.jsx("div", { className: "modal-body", children:
|
|
966
|
+
/* @__PURE__ */ e.jsx("div", { className: "modal-body", children: a }),
|
|
967
967
|
d && /* @__PURE__ */ e.jsx("div", { className: "modal-actions", children: d })
|
|
968
968
|
] })
|
|
969
969
|
}
|
|
970
970
|
) : null;
|
|
971
971
|
}
|
|
972
|
-
function
|
|
972
|
+
function Ss({ message: s, variant: n = "info", visible: t, onClose: a }) {
|
|
973
973
|
if (!t) return null;
|
|
974
974
|
const d = {
|
|
975
|
-
success: "
|
|
976
|
-
error: "
|
|
977
|
-
info: "
|
|
978
|
-
}[n], o = {
|
|
979
|
-
success: "text-[#059669]",
|
|
980
|
-
error: "text-[#DC4A4A]",
|
|
981
|
-
info: "text-[#2563EB]"
|
|
975
|
+
success: "bg-success-bg text-[#065f46] border-[#a7f3d0]",
|
|
976
|
+
error: "bg-danger-bg text-[#991b1b] border-[#fecaca]",
|
|
977
|
+
info: "bg-info-bg text-[#1e40af] border-[#bfdbfe]"
|
|
982
978
|
}[n];
|
|
983
|
-
return /* @__PURE__ */ e.
|
|
984
|
-
/* @__PURE__ */ e.jsx("span", { className: $("mr-2 font-bold", o), children: d }),
|
|
985
|
-
s
|
|
986
|
-
] });
|
|
979
|
+
return /* @__PURE__ */ e.jsx("div", { className: A("toast", d), onClick: a, children: s });
|
|
987
980
|
}
|
|
988
|
-
function
|
|
989
|
-
return /* @__PURE__ */ e.jsx("div", { className:
|
|
981
|
+
function H({ children: s, className: n }) {
|
|
982
|
+
return /* @__PURE__ */ e.jsx("div", { className: A("form-group", n), children: s });
|
|
990
983
|
}
|
|
991
|
-
function
|
|
992
|
-
return /* @__PURE__ */ e.jsx("label", { className:
|
|
984
|
+
function Z({ className: s, children: n, ...t }) {
|
|
985
|
+
return /* @__PURE__ */ e.jsx("label", { className: A("form-label", s), ...t, children: n });
|
|
993
986
|
}
|
|
994
|
-
const
|
|
995
|
-
({ className: s, ...n }, t) => /* @__PURE__ */ e.jsx("input", { ref: t, className:
|
|
987
|
+
const Ke = Ve(
|
|
988
|
+
({ className: s, ...n }, t) => /* @__PURE__ */ e.jsx("input", { ref: t, className: A("form-input", s), ...n })
|
|
996
989
|
);
|
|
997
|
-
|
|
998
|
-
const
|
|
999
|
-
({ className: s, children: n, ...t },
|
|
990
|
+
Ke.displayName = "Input";
|
|
991
|
+
const se = Ve(
|
|
992
|
+
({ className: s, children: n, ...t }, a) => /* @__PURE__ */ e.jsx("select", { ref: a, className: A("form-input", s), ...t, children: n })
|
|
1000
993
|
);
|
|
1001
|
-
|
|
1002
|
-
function
|
|
1003
|
-
return /* @__PURE__ */ e.jsx("div", { className:
|
|
994
|
+
se.displayName = "Select";
|
|
995
|
+
function Cr({ children: s, className: n }) {
|
|
996
|
+
return /* @__PURE__ */ e.jsx("div", { className: A("form-row", n), children: s });
|
|
1004
997
|
}
|
|
1005
|
-
function
|
|
1006
|
-
return /* @__PURE__ */ e.jsx("table", { className:
|
|
998
|
+
function O({ className: s, children: n, ...t }) {
|
|
999
|
+
return /* @__PURE__ */ e.jsx("table", { className: A("table", s), ...t, children: n });
|
|
1007
1000
|
}
|
|
1008
|
-
function
|
|
1001
|
+
function Q({ className: s, children: n, ...t }) {
|
|
1009
1002
|
return /* @__PURE__ */ e.jsx("thead", { className: s, ...t, children: n });
|
|
1010
1003
|
}
|
|
1011
|
-
function
|
|
1004
|
+
function F({ className: s, children: n, ...t }) {
|
|
1012
1005
|
return /* @__PURE__ */ e.jsx("tbody", { className: s, ...t, children: n });
|
|
1013
1006
|
}
|
|
1014
|
-
function
|
|
1007
|
+
function m({ className: s, children: n, ...t }) {
|
|
1015
1008
|
return /* @__PURE__ */ e.jsx("tr", { className: s, ...t, children: n });
|
|
1016
1009
|
}
|
|
1017
|
-
function
|
|
1010
|
+
function b({ className: s, children: n, ...t }) {
|
|
1018
1011
|
return /* @__PURE__ */ e.jsx("th", { className: s, ...t, children: n });
|
|
1019
1012
|
}
|
|
1020
1013
|
function c({ className: s, children: n, ...t }) {
|
|
1021
1014
|
return /* @__PURE__ */ e.jsx("td", { className: s, ...t, children: n });
|
|
1022
1015
|
}
|
|
1023
|
-
function
|
|
1016
|
+
function Dr({ status: s }) {
|
|
1024
1017
|
const n = {
|
|
1025
1018
|
FINISHED: "success",
|
|
1026
1019
|
FAILED: "danger",
|
|
@@ -1029,122 +1022,85 @@ function Ar({ status: s }) {
|
|
|
1029
1022
|
}[s];
|
|
1030
1023
|
return /* @__PURE__ */ e.jsx(B, { variant: n, children: s });
|
|
1031
1024
|
}
|
|
1032
|
-
function
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
/* @__PURE__ */ e.jsx(
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
/* @__PURE__ */ e.jsx(
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
children: "Delete"
|
|
1065
|
-
}
|
|
1066
|
-
)
|
|
1067
|
-
] }) })
|
|
1068
|
-
] }, u.run_id)) })
|
|
1069
|
-
] }),
|
|
1070
|
-
/* @__PURE__ */ e.jsxs(
|
|
1071
|
-
Dr,
|
|
1072
|
-
{
|
|
1073
|
-
open: !!o,
|
|
1074
|
-
onClose: () => m(null),
|
|
1075
|
-
title: "Delete Run",
|
|
1076
|
-
actions: /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
|
|
1077
|
-
/* @__PURE__ */ e.jsx(F, { variant: "secondary", onClick: () => m(null), children: "Cancel" }),
|
|
1078
|
-
/* @__PURE__ */ e.jsxs(F, { variant: "danger", onClick: a, disabled: t, children: [
|
|
1079
|
-
t && /* @__PURE__ */ e.jsx(V, {}),
|
|
1080
|
-
"Delete"
|
|
1081
|
-
] })
|
|
1082
|
-
] }),
|
|
1083
|
-
children: [
|
|
1084
|
-
/* @__PURE__ */ e.jsx("p", { children: "Are you sure you want to delete this run?" }),
|
|
1085
|
-
o && /* @__PURE__ */ e.jsx("p", { className: "font-mono text-sm mt-2", children: z(o.run_id) }),
|
|
1086
|
-
/* @__PURE__ */ e.jsx("p", { className: "text-sm text-danger mt-2", children: "This action cannot be undone." })
|
|
1087
|
-
]
|
|
1088
|
-
}
|
|
1089
|
-
)
|
|
1025
|
+
function Je({ runs: s, onDelete: n, loading: t, emptyHint: a }) {
|
|
1026
|
+
return s.length ? /* @__PURE__ */ e.jsxs(O, { children: [
|
|
1027
|
+
/* @__PURE__ */ e.jsx(Q, { children: /* @__PURE__ */ e.jsxs(m, { children: [
|
|
1028
|
+
/* @__PURE__ */ e.jsx(b, { children: "Run ID" }),
|
|
1029
|
+
/* @__PURE__ */ e.jsx(b, { children: "Name" }),
|
|
1030
|
+
/* @__PURE__ */ e.jsx(b, { children: "Project" }),
|
|
1031
|
+
/* @__PURE__ */ e.jsx(b, { children: "Status" }),
|
|
1032
|
+
/* @__PURE__ */ e.jsx(b, { children: "Created" }),
|
|
1033
|
+
/* @__PURE__ */ e.jsx(b, { children: "Actions" })
|
|
1034
|
+
] }) }),
|
|
1035
|
+
/* @__PURE__ */ e.jsx(F, { children: s.map((d) => /* @__PURE__ */ e.jsxs(m, { children: [
|
|
1036
|
+
/* @__PURE__ */ e.jsx(c, { children: /* @__PURE__ */ e.jsx(M, { to: `/runs/${d.run_id}`, className: "font-mono", children: K(d.run_id) }) }),
|
|
1037
|
+
/* @__PURE__ */ e.jsx(c, { children: d.run_name || "—" }),
|
|
1038
|
+
/* @__PURE__ */ e.jsx(c, { children: d.project }),
|
|
1039
|
+
/* @__PURE__ */ e.jsx(c, { children: /* @__PURE__ */ e.jsx(Dr, { status: d.status }) }),
|
|
1040
|
+
/* @__PURE__ */ e.jsx(c, { className: "text-muted", children: Te(d.created_at) }),
|
|
1041
|
+
/* @__PURE__ */ e.jsx(c, { children: /* @__PURE__ */ e.jsxs("div", { className: "flex gap-2", children: [
|
|
1042
|
+
/* @__PURE__ */ e.jsx(M, { to: `/runs/${d.run_id}`, children: /* @__PURE__ */ e.jsx(k, { variant: "secondary", size: "sm", children: "View" }) }),
|
|
1043
|
+
n && /* @__PURE__ */ e.jsx(
|
|
1044
|
+
k,
|
|
1045
|
+
{
|
|
1046
|
+
variant: "ghost-danger",
|
|
1047
|
+
size: "sm",
|
|
1048
|
+
onClick: () => {
|
|
1049
|
+
confirm(`Delete run ${K(d.run_id)}? This cannot be undone.`) && n(d.run_id);
|
|
1050
|
+
},
|
|
1051
|
+
disabled: t,
|
|
1052
|
+
children: "Delete"
|
|
1053
|
+
}
|
|
1054
|
+
)
|
|
1055
|
+
] }) })
|
|
1056
|
+
] }, d.run_id)) })
|
|
1090
1057
|
] }) : /* @__PURE__ */ e.jsx(
|
|
1091
|
-
|
|
1058
|
+
te,
|
|
1092
1059
|
{
|
|
1093
1060
|
message: "No runs found",
|
|
1094
|
-
hint:
|
|
1061
|
+
hint: a ?? "Try adjusting your filters"
|
|
1095
1062
|
}
|
|
1096
1063
|
);
|
|
1097
1064
|
}
|
|
1098
|
-
function
|
|
1099
|
-
const [s, n] =
|
|
1065
|
+
function Ps() {
|
|
1066
|
+
const [s, n] = Ce(), { api: t } = Y(), { data: a } = ze(), [d, h] = U({
|
|
1100
1067
|
project: s.get("project") || "",
|
|
1101
1068
|
status: s.get("status") || "",
|
|
1102
1069
|
q: s.get("q") || "",
|
|
1103
1070
|
limit: parseInt(s.get("limit") || "25", 10)
|
|
1104
|
-
}), { data:
|
|
1105
|
-
|
|
1106
|
-
if (d) {
|
|
1107
|
-
const w = setTimeout(() => o(null), 3e3);
|
|
1108
|
-
return () => clearTimeout(w);
|
|
1109
|
-
}
|
|
1110
|
-
}, [d]);
|
|
1111
|
-
const R = be((w, Q) => {
|
|
1112
|
-
a((H) => ({ ...H, [w]: Q }));
|
|
1071
|
+
}), { data: f, loading: i, refetch: x } = Sr(d), o = je((_) => t.deleteRun(_)), p = me((_, G) => {
|
|
1072
|
+
h((ce) => ({ ...ce, [_]: G }));
|
|
1113
1073
|
const J = new URLSearchParams(s);
|
|
1114
|
-
|
|
1115
|
-
}, [s, n]),
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
1120
|
-
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
/* @__PURE__ */ e.jsx(_e, { title: "Runs" }),
|
|
1124
|
-
/* @__PURE__ */ e.jsx(N, { className: "mb-4", children: /* @__PURE__ */ e.jsxs(kr, { children: [
|
|
1125
|
-
/* @__PURE__ */ e.jsxs(X, { children: [
|
|
1126
|
-
/* @__PURE__ */ e.jsx(re, { htmlFor: "project", children: "Project" }),
|
|
1074
|
+
G ? J.set(_, String(G)) : J.delete(_), n(J, { replace: !0 });
|
|
1075
|
+
}, [s, n]), $ = me(async (_) => {
|
|
1076
|
+
await o.mutate(_), x();
|
|
1077
|
+
}, [o, x]);
|
|
1078
|
+
return /* @__PURE__ */ e.jsxs(q, { children: [
|
|
1079
|
+
/* @__PURE__ */ e.jsx(pe, { title: "Runs" }),
|
|
1080
|
+
/* @__PURE__ */ e.jsx(v, { className: "mb-4", children: /* @__PURE__ */ e.jsxs(Cr, { children: [
|
|
1081
|
+
/* @__PURE__ */ e.jsxs(H, { children: [
|
|
1082
|
+
/* @__PURE__ */ e.jsx(Z, { htmlFor: "project", children: "Project" }),
|
|
1127
1083
|
/* @__PURE__ */ e.jsxs(
|
|
1128
|
-
|
|
1084
|
+
se,
|
|
1129
1085
|
{
|
|
1130
1086
|
id: "project",
|
|
1131
|
-
value:
|
|
1132
|
-
onChange: (
|
|
1087
|
+
value: d.project,
|
|
1088
|
+
onChange: (_) => p("project", _.target.value),
|
|
1133
1089
|
children: [
|
|
1134
1090
|
/* @__PURE__ */ e.jsx("option", { value: "", children: "All projects" }),
|
|
1135
|
-
|
|
1091
|
+
a?.map((_) => /* @__PURE__ */ e.jsx("option", { value: _.name, children: _.name }, _.name))
|
|
1136
1092
|
]
|
|
1137
1093
|
}
|
|
1138
1094
|
)
|
|
1139
1095
|
] }),
|
|
1140
|
-
/* @__PURE__ */ e.jsxs(
|
|
1141
|
-
/* @__PURE__ */ e.jsx(
|
|
1096
|
+
/* @__PURE__ */ e.jsxs(H, { children: [
|
|
1097
|
+
/* @__PURE__ */ e.jsx(Z, { htmlFor: "status", children: "Status" }),
|
|
1142
1098
|
/* @__PURE__ */ e.jsxs(
|
|
1143
|
-
|
|
1099
|
+
se,
|
|
1144
1100
|
{
|
|
1145
1101
|
id: "status",
|
|
1146
|
-
value:
|
|
1147
|
-
onChange: (
|
|
1102
|
+
value: d.status,
|
|
1103
|
+
onChange: (_) => p("status", _.target.value),
|
|
1148
1104
|
children: [
|
|
1149
1105
|
/* @__PURE__ */ e.jsx("option", { value: "", children: "All" }),
|
|
1150
1106
|
/* @__PURE__ */ e.jsx("option", { value: "FINISHED", children: "Finished" }),
|
|
@@ -1154,26 +1110,26 @@ function Cs() {
|
|
|
1154
1110
|
}
|
|
1155
1111
|
)
|
|
1156
1112
|
] }),
|
|
1157
|
-
/* @__PURE__ */ e.jsxs(
|
|
1158
|
-
/* @__PURE__ */ e.jsx(
|
|
1113
|
+
/* @__PURE__ */ e.jsxs(H, { children: [
|
|
1114
|
+
/* @__PURE__ */ e.jsx(Z, { htmlFor: "q", children: "Query" }),
|
|
1159
1115
|
/* @__PURE__ */ e.jsx(
|
|
1160
|
-
|
|
1116
|
+
Ke,
|
|
1161
1117
|
{
|
|
1162
1118
|
id: "q",
|
|
1163
|
-
value:
|
|
1164
|
-
onChange: (
|
|
1119
|
+
value: d.q,
|
|
1120
|
+
onChange: (_) => p("q", _.target.value),
|
|
1165
1121
|
placeholder: "metric.fidelity > 0.9"
|
|
1166
1122
|
}
|
|
1167
1123
|
)
|
|
1168
1124
|
] }),
|
|
1169
|
-
/* @__PURE__ */ e.jsxs(
|
|
1170
|
-
/* @__PURE__ */ e.jsx(
|
|
1125
|
+
/* @__PURE__ */ e.jsxs(H, { children: [
|
|
1126
|
+
/* @__PURE__ */ e.jsx(Z, { htmlFor: "limit", children: "Limit" }),
|
|
1171
1127
|
/* @__PURE__ */ e.jsxs(
|
|
1172
|
-
|
|
1128
|
+
se,
|
|
1173
1129
|
{
|
|
1174
1130
|
id: "limit",
|
|
1175
|
-
value:
|
|
1176
|
-
onChange: (
|
|
1131
|
+
value: d.limit,
|
|
1132
|
+
onChange: (_) => p("limit", parseInt(_.target.value, 10)),
|
|
1177
1133
|
children: [
|
|
1178
1134
|
/* @__PURE__ */ e.jsx("option", { value: "25", children: "25" }),
|
|
1179
1135
|
/* @__PURE__ */ e.jsx("option", { value: "50", children: "50" }),
|
|
@@ -1182,83 +1138,73 @@ function Cs() {
|
|
|
1182
1138
|
}
|
|
1183
1139
|
)
|
|
1184
1140
|
] }),
|
|
1185
|
-
/* @__PURE__ */ e.jsxs(
|
|
1186
|
-
/* @__PURE__ */ e.jsx(
|
|
1187
|
-
|
|
1141
|
+
/* @__PURE__ */ e.jsxs(H, { className: "flex items-end gap-2", children: [
|
|
1142
|
+
/* @__PURE__ */ e.jsx(k, { variant: "primary", onClick: () => x(), children: "Filter" }),
|
|
1143
|
+
i && /* @__PURE__ */ e.jsx(V, {})
|
|
1188
1144
|
] })
|
|
1189
1145
|
] }) }),
|
|
1190
|
-
/* @__PURE__ */ e.jsx(
|
|
1191
|
-
|
|
1192
|
-
{
|
|
1193
|
-
runs: u?.runs ?? [],
|
|
1194
|
-
onDelete: K,
|
|
1195
|
-
loading: f.loading,
|
|
1196
|
-
baselineRunId: m.project ? i?.find((w) => w.name === m.project)?.baseline?.run_id : void 0
|
|
1197
|
-
}
|
|
1198
|
-
) }),
|
|
1199
|
-
d && /* @__PURE__ */ e.jsx(
|
|
1200
|
-
Be,
|
|
1146
|
+
/* @__PURE__ */ e.jsx(v, { children: i && !f ? /* @__PURE__ */ e.jsx("div", { className: "flex justify-center py-8", children: /* @__PURE__ */ e.jsx(V, {}) }) : /* @__PURE__ */ e.jsx(
|
|
1147
|
+
Je,
|
|
1201
1148
|
{
|
|
1202
|
-
|
|
1203
|
-
|
|
1204
|
-
|
|
1205
|
-
onClose: () => o(null)
|
|
1149
|
+
runs: f?.runs ?? [],
|
|
1150
|
+
onDelete: $,
|
|
1151
|
+
loading: o.loading
|
|
1206
1152
|
}
|
|
1207
|
-
)
|
|
1153
|
+
) })
|
|
1208
1154
|
] });
|
|
1209
1155
|
}
|
|
1210
|
-
function
|
|
1156
|
+
function Ts({ projects: s, currentWorkspace: n }) {
|
|
1211
1157
|
if (!s.length)
|
|
1212
1158
|
return /* @__PURE__ */ e.jsx(
|
|
1213
|
-
|
|
1159
|
+
te,
|
|
1214
1160
|
{
|
|
1215
1161
|
message: "No projects yet",
|
|
1216
1162
|
hint: "Projects are created automatically when you log runs"
|
|
1217
1163
|
}
|
|
1218
1164
|
);
|
|
1219
|
-
const t = (
|
|
1220
|
-
const d = new URLSearchParams({ project:
|
|
1165
|
+
const t = (a) => {
|
|
1166
|
+
const d = new URLSearchParams({ project: a });
|
|
1221
1167
|
return n && d.set("workspace", n.id), `/runs?${d}`;
|
|
1222
1168
|
};
|
|
1223
|
-
return /* @__PURE__ */ e.jsxs(
|
|
1224
|
-
/* @__PURE__ */ e.jsx(
|
|
1225
|
-
/* @__PURE__ */ e.jsx(
|
|
1226
|
-
/* @__PURE__ */ e.jsx(
|
|
1227
|
-
/* @__PURE__ */ e.jsx(
|
|
1228
|
-
/* @__PURE__ */ e.jsx(
|
|
1169
|
+
return /* @__PURE__ */ e.jsxs(O, { children: [
|
|
1170
|
+
/* @__PURE__ */ e.jsx(Q, { children: /* @__PURE__ */ e.jsxs(m, { children: [
|
|
1171
|
+
/* @__PURE__ */ e.jsx(b, { children: "Project" }),
|
|
1172
|
+
/* @__PURE__ */ e.jsx(b, { children: "Runs" }),
|
|
1173
|
+
/* @__PURE__ */ e.jsx(b, { children: "Baseline" }),
|
|
1174
|
+
/* @__PURE__ */ e.jsx(b, {})
|
|
1229
1175
|
] }) }),
|
|
1230
|
-
/* @__PURE__ */ e.jsx(
|
|
1176
|
+
/* @__PURE__ */ e.jsx(F, { children: s.map((a) => /* @__PURE__ */ e.jsxs(m, { children: [
|
|
1231
1177
|
/* @__PURE__ */ e.jsxs(c, { children: [
|
|
1232
|
-
/* @__PURE__ */ e.jsx("span", { className: "font-medium", children:
|
|
1233
|
-
|
|
1178
|
+
/* @__PURE__ */ e.jsx("span", { className: "font-medium", children: a.name }),
|
|
1179
|
+
a.description && /* @__PURE__ */ e.jsx("p", { className: "text-muted text-sm", children: ys(a.description) })
|
|
1234
1180
|
] }),
|
|
1235
|
-
/* @__PURE__ */ e.jsx(c, { children: /* @__PURE__ */ e.jsx(B, { variant: "gray", children:
|
|
1236
|
-
/* @__PURE__ */ e.jsx(c, { children:
|
|
1237
|
-
/* @__PURE__ */ e.jsx(
|
|
1238
|
-
|
|
1181
|
+
/* @__PURE__ */ e.jsx(c, { children: /* @__PURE__ */ e.jsx(B, { variant: "gray", children: a.run_count ?? 0 }) }),
|
|
1182
|
+
/* @__PURE__ */ e.jsx(c, { children: a.baseline ? /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
|
|
1183
|
+
/* @__PURE__ */ e.jsx(M, { to: `/runs/${a.baseline.run_id}`, className: "font-mono text-sm", children: K(a.baseline.run_id) }),
|
|
1184
|
+
a.baseline.run_name && /* @__PURE__ */ e.jsx("p", { className: "text-muted text-sm", children: a.baseline.run_name })
|
|
1239
1185
|
] }) : /* @__PURE__ */ e.jsx("span", { className: "text-muted", children: "—" }) }),
|
|
1240
|
-
/* @__PURE__ */ e.jsx(c, { className: "text-right", children: /* @__PURE__ */ e.jsx(
|
|
1241
|
-
] },
|
|
1186
|
+
/* @__PURE__ */ e.jsx(c, { className: "text-right", children: /* @__PURE__ */ e.jsx(M, { to: t(a.name), children: /* @__PURE__ */ e.jsx(k, { variant: "secondary", size: "sm", children: "View Runs" }) }) })
|
|
1187
|
+
] }, a.name)) })
|
|
1242
1188
|
] });
|
|
1243
1189
|
}
|
|
1244
|
-
function
|
|
1245
|
-
return s.length ? /* @__PURE__ */ e.jsxs(
|
|
1246
|
-
/* @__PURE__ */ e.jsx(
|
|
1247
|
-
/* @__PURE__ */ e.jsx(
|
|
1248
|
-
/* @__PURE__ */ e.jsx(
|
|
1249
|
-
/* @__PURE__ */ e.jsx(
|
|
1250
|
-
/* @__PURE__ */ e.jsx(
|
|
1251
|
-
/* @__PURE__ */ e.jsx(
|
|
1190
|
+
function Cs({ groups: s }) {
|
|
1191
|
+
return s.length ? /* @__PURE__ */ e.jsxs(O, { children: [
|
|
1192
|
+
/* @__PURE__ */ e.jsx(Q, { children: /* @__PURE__ */ e.jsxs(m, { children: [
|
|
1193
|
+
/* @__PURE__ */ e.jsx(b, { children: "Group ID" }),
|
|
1194
|
+
/* @__PURE__ */ e.jsx(b, { children: "Name" }),
|
|
1195
|
+
/* @__PURE__ */ e.jsx(b, { children: "Project" }),
|
|
1196
|
+
/* @__PURE__ */ e.jsx(b, { children: "Runs" }),
|
|
1197
|
+
/* @__PURE__ */ e.jsx(b, { children: "Actions" })
|
|
1252
1198
|
] }) }),
|
|
1253
|
-
/* @__PURE__ */ e.jsx(
|
|
1254
|
-
/* @__PURE__ */ e.jsx(c, { className: "font-mono", children:
|
|
1199
|
+
/* @__PURE__ */ e.jsx(F, { children: s.map((n) => /* @__PURE__ */ e.jsxs(m, { children: [
|
|
1200
|
+
/* @__PURE__ */ e.jsx(c, { className: "font-mono", children: K(n.group_id) }),
|
|
1255
1201
|
/* @__PURE__ */ e.jsx(c, { children: n.group_name || "—" }),
|
|
1256
1202
|
/* @__PURE__ */ e.jsx(c, { children: n.project }),
|
|
1257
1203
|
/* @__PURE__ */ e.jsx(c, { children: /* @__PURE__ */ e.jsx(B, { variant: "gray", children: n.run_count }) }),
|
|
1258
|
-
/* @__PURE__ */ e.jsx(c, { children: /* @__PURE__ */ e.jsx(
|
|
1204
|
+
/* @__PURE__ */ e.jsx(c, { children: /* @__PURE__ */ e.jsx(M, { to: `/groups/${n.group_id}`, children: /* @__PURE__ */ e.jsx(k, { variant: "secondary", size: "sm", children: "View Runs" }) }) })
|
|
1259
1205
|
] }, n.group_id)) })
|
|
1260
1206
|
] }) : /* @__PURE__ */ e.jsx(
|
|
1261
|
-
|
|
1207
|
+
te,
|
|
1262
1208
|
{
|
|
1263
1209
|
message: "No groups found",
|
|
1264
1210
|
hint: "Groups are created when runs have a group_id set"
|
|
@@ -1266,325 +1212,282 @@ function Ss({ groups: s }) {
|
|
|
1266
1212
|
);
|
|
1267
1213
|
}
|
|
1268
1214
|
function Ds() {
|
|
1269
|
-
const { runId: s } =
|
|
1270
|
-
() => t.setBaseline(
|
|
1271
|
-
), { mutate:
|
|
1215
|
+
const { runId: s } = Ye(), n = cs(), { api: t } = Y(), { data: a, loading: d, error: h, refetch: f } = Pr(s), [i, x] = U(!1), [o, p] = U(null), { mutate: $, loading: _ } = je(
|
|
1216
|
+
() => t.setBaseline(a.project, a.run_id)
|
|
1217
|
+
), { mutate: G, loading: J } = je(
|
|
1272
1218
|
() => t.deleteRun(s)
|
|
1273
|
-
)
|
|
1274
|
-
if (
|
|
1275
|
-
if (
|
|
1276
|
-
const
|
|
1277
|
-
return () => clearTimeout(
|
|
1219
|
+
);
|
|
1220
|
+
if (We(() => {
|
|
1221
|
+
if (o) {
|
|
1222
|
+
const w = setTimeout(() => p(null), 3e3);
|
|
1223
|
+
return () => clearTimeout(w);
|
|
1278
1224
|
}
|
|
1279
|
-
}, [
|
|
1280
|
-
return /* @__PURE__ */ e.jsx(
|
|
1281
|
-
if (
|
|
1282
|
-
return /* @__PURE__ */ e.jsx(
|
|
1283
|
-
|
|
1225
|
+
}, [o]), d)
|
|
1226
|
+
return /* @__PURE__ */ e.jsx(q, { children: /* @__PURE__ */ e.jsx("div", { className: "flex justify-center py-12", children: /* @__PURE__ */ e.jsx(V, {}) }) });
|
|
1227
|
+
if (h || !a)
|
|
1228
|
+
return /* @__PURE__ */ e.jsx(q, { children: /* @__PURE__ */ e.jsx(v, { children: /* @__PURE__ */ e.jsx(
|
|
1229
|
+
te,
|
|
1284
1230
|
{
|
|
1285
1231
|
message: "Run not found",
|
|
1286
|
-
hint:
|
|
1232
|
+
hint: h?.message || `Run ${s} does not exist`
|
|
1287
1233
|
}
|
|
1288
1234
|
) }) });
|
|
1289
|
-
const
|
|
1235
|
+
const ce = a.backend || {}, ge = a.fingerprints || {}, X = a.data?.params || {}, C = a.data?.metrics || {}, ve = a.data?.tags || {}, le = a.artifacts || [], be = a.errors || [], De = async () => {
|
|
1236
|
+
await $(), f();
|
|
1237
|
+
}, ke = async () => {
|
|
1238
|
+
await G(), n("/runs");
|
|
1239
|
+
}, Ae = async (w) => {
|
|
1290
1240
|
try {
|
|
1291
|
-
|
|
1241
|
+
const D = t.getArtifactDownloadUrl(a.run_id, w), Ne = await fetch(D);
|
|
1242
|
+
if (!Ne.ok) throw new Error("Download failed");
|
|
1243
|
+
const _e = await Ne.blob(), W = document.createElement("a");
|
|
1244
|
+
W.href = URL.createObjectURL(_e), W.download = `artifact-${w}`, W.click(), URL.revokeObjectURL(W.href), p({ message: "Download started", variant: "success" });
|
|
1292
1245
|
} catch {
|
|
1293
|
-
|
|
1294
|
-
}
|
|
1295
|
-
}, Ie = async () => {
|
|
1296
|
-
try {
|
|
1297
|
-
await Q(), g(!1), R({ message: "Run deleted", variant: "success" }), setTimeout(() => n("/runs"), 1e3);
|
|
1298
|
-
} catch {
|
|
1299
|
-
R({ message: "Failed to delete run", variant: "error" }), g(!1);
|
|
1300
|
-
}
|
|
1301
|
-
}, Ee = async (b) => {
|
|
1302
|
-
const C = de[b];
|
|
1303
|
-
try {
|
|
1304
|
-
const se = t.getArtifactDownloadUrl(i.run_id, b), je = await fetch(se);
|
|
1305
|
-
if (!je.ok) throw new Error("Download failed");
|
|
1306
|
-
const Te = await je.blob(), ne = document.createElement("a");
|
|
1307
|
-
ne.href = URL.createObjectURL(Te), ne.download = C?.kind || `artifact-${b}`, ne.click(), URL.revokeObjectURL(ne.href), R({ message: "Download started", variant: "success" });
|
|
1308
|
-
} catch {
|
|
1309
|
-
R({ message: "Download failed", variant: "error" });
|
|
1246
|
+
p({ message: "Download failed", variant: "error" });
|
|
1310
1247
|
}
|
|
1311
1248
|
};
|
|
1312
|
-
return /* @__PURE__ */ e.jsxs(
|
|
1313
|
-
P && /* @__PURE__ */ e.jsxs("div", { className: "alert alert-info mb-4", children: [
|
|
1314
|
-
'This run is the current baseline for project "',
|
|
1315
|
-
i.project,
|
|
1316
|
-
'"'
|
|
1317
|
-
] }),
|
|
1249
|
+
return /* @__PURE__ */ e.jsxs(q, { children: [
|
|
1318
1250
|
/* @__PURE__ */ e.jsxs("div", { className: "page-header", children: [
|
|
1319
1251
|
/* @__PURE__ */ e.jsxs("div", { children: [
|
|
1320
|
-
/* @__PURE__ */ e.jsx("h1", { className: "page-title", children:
|
|
1321
|
-
/* @__PURE__ */ e.jsx("p", { className: "text-muted text-sm font-mono", children:
|
|
1252
|
+
/* @__PURE__ */ e.jsx("h1", { className: "page-title", children: a.run_name || "Unnamed Run" }),
|
|
1253
|
+
/* @__PURE__ */ e.jsx("p", { className: "text-muted text-sm font-mono", children: a.run_id })
|
|
1322
1254
|
] }),
|
|
1323
1255
|
/* @__PURE__ */ e.jsxs("div", { className: "flex gap-2", children: [
|
|
1324
|
-
|
|
1325
|
-
|
|
1256
|
+
/* @__PURE__ */ e.jsxs(k, { variant: "secondary", size: "sm", onClick: De, disabled: _, children: [
|
|
1257
|
+
_ && /* @__PURE__ */ e.jsx(V, {}),
|
|
1326
1258
|
"Set as Baseline"
|
|
1327
1259
|
] }),
|
|
1328
|
-
/* @__PURE__ */ e.jsx(
|
|
1260
|
+
/* @__PURE__ */ e.jsx(k, { variant: "ghost-danger", size: "sm", onClick: () => x(!0), children: "Delete" })
|
|
1329
1261
|
] })
|
|
1330
1262
|
] }),
|
|
1331
1263
|
/* @__PURE__ */ e.jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4 mb-4", children: [
|
|
1332
|
-
/* @__PURE__ */ e.jsxs(
|
|
1333
|
-
/* @__PURE__ */ e.jsx(
|
|
1334
|
-
/* @__PURE__ */ e.jsx(
|
|
1335
|
-
{ label: "Project", value: /* @__PURE__ */ e.jsx(
|
|
1336
|
-
{ label: "Name", value:
|
|
1337
|
-
{ label: "Adapter", value:
|
|
1338
|
-
{ label: "Status", value: /* @__PURE__ */ e.jsx(
|
|
1339
|
-
{ label: "Created", value: `${
|
|
1340
|
-
{ label: "Backend", value:
|
|
1341
|
-
...
|
|
1264
|
+
/* @__PURE__ */ e.jsxs(v, { children: [
|
|
1265
|
+
/* @__PURE__ */ e.jsx(S, { children: /* @__PURE__ */ e.jsx(P, { children: "Overview" }) }),
|
|
1266
|
+
/* @__PURE__ */ e.jsx(Ge, { items: [
|
|
1267
|
+
{ label: "Project", value: /* @__PURE__ */ e.jsx(M, { to: `/runs?project=${a.project}`, children: a.project }) },
|
|
1268
|
+
{ label: "Name", value: a.run_name || "—" },
|
|
1269
|
+
{ label: "Adapter", value: a.adapter || "N/A" },
|
|
1270
|
+
{ label: "Status", value: /* @__PURE__ */ e.jsx(Dr, { status: a.status }) },
|
|
1271
|
+
{ label: "Created", value: `${a.created_at} (${Te(a.created_at)})` },
|
|
1272
|
+
{ label: "Backend", value: ce.name || "N/A" },
|
|
1273
|
+
...a.group_id ? [{
|
|
1342
1274
|
label: "Group",
|
|
1343
|
-
value: /* @__PURE__ */ e.jsx(
|
|
1275
|
+
value: /* @__PURE__ */ e.jsx(M, { to: `/groups/${a.group_id}`, children: a.group_name || K(a.group_id) })
|
|
1344
1276
|
}] : []
|
|
1345
1277
|
] })
|
|
1346
1278
|
] }),
|
|
1347
|
-
/* @__PURE__ */ e.jsxs(
|
|
1348
|
-
/* @__PURE__ */ e.jsx(
|
|
1349
|
-
/* @__PURE__ */ e.jsx(
|
|
1350
|
-
{ label: "Run", value: /* @__PURE__ */ e.jsx("span", { className: "font-mono text-sm truncate", children:
|
|
1351
|
-
{ label: "Program", value: /* @__PURE__ */ e.jsx("span", { className: "font-mono text-sm truncate", children:
|
|
1279
|
+
/* @__PURE__ */ e.jsxs(v, { children: [
|
|
1280
|
+
/* @__PURE__ */ e.jsx(S, { children: /* @__PURE__ */ e.jsx(P, { children: "Fingerprints" }) }),
|
|
1281
|
+
/* @__PURE__ */ e.jsx(Ge, { items: [
|
|
1282
|
+
{ label: "Run", value: /* @__PURE__ */ e.jsx("span", { className: "font-mono text-sm truncate", children: ge.run || "N/A" }) },
|
|
1283
|
+
{ label: "Program", value: /* @__PURE__ */ e.jsx("span", { className: "font-mono text-sm truncate", children: ge.program || "N/A" }) }
|
|
1352
1284
|
] })
|
|
1353
1285
|
] })
|
|
1354
1286
|
] }),
|
|
1355
1287
|
/* @__PURE__ */ e.jsxs("div", { className: "grid grid-cols-1 md:grid-cols-3 gap-4 mb-4", children: [
|
|
1356
|
-
/* @__PURE__ */ e.jsxs(
|
|
1357
|
-
/* @__PURE__ */ e.jsx(
|
|
1358
|
-
Object.keys(
|
|
1359
|
-
/* @__PURE__ */ e.jsx(c, { children:
|
|
1360
|
-
/* @__PURE__ */ e.jsx(c, { className: "font-mono", children: String(
|
|
1361
|
-
] },
|
|
1288
|
+
/* @__PURE__ */ e.jsxs(v, { children: [
|
|
1289
|
+
/* @__PURE__ */ e.jsx(S, { children: /* @__PURE__ */ e.jsx(P, { children: "Parameters" }) }),
|
|
1290
|
+
Object.keys(X).length ? /* @__PURE__ */ e.jsx(O, { children: /* @__PURE__ */ e.jsx(F, { children: Object.entries(X).map(([w, D]) => /* @__PURE__ */ e.jsxs(m, { children: [
|
|
1291
|
+
/* @__PURE__ */ e.jsx(c, { children: w }),
|
|
1292
|
+
/* @__PURE__ */ e.jsx(c, { className: "font-mono", children: String(D) })
|
|
1293
|
+
] }, w)) }) }) : /* @__PURE__ */ e.jsx("p", { className: "text-muted", children: "No parameters" })
|
|
1362
1294
|
] }),
|
|
1363
|
-
/* @__PURE__ */ e.jsxs(
|
|
1364
|
-
/* @__PURE__ */ e.jsx(
|
|
1365
|
-
Object.keys(
|
|
1366
|
-
/* @__PURE__ */ e.jsx(c, { children:
|
|
1367
|
-
/* @__PURE__ */ e.jsx(c, { className: "font-mono", children: typeof
|
|
1368
|
-
] },
|
|
1295
|
+
/* @__PURE__ */ e.jsxs(v, { children: [
|
|
1296
|
+
/* @__PURE__ */ e.jsx(S, { children: /* @__PURE__ */ e.jsx(P, { children: "Metrics" }) }),
|
|
1297
|
+
Object.keys(C).length ? /* @__PURE__ */ e.jsx(O, { children: /* @__PURE__ */ e.jsx(F, { children: Object.entries(C).map(([w, D]) => /* @__PURE__ */ e.jsxs(m, { children: [
|
|
1298
|
+
/* @__PURE__ */ e.jsx(c, { children: w }),
|
|
1299
|
+
/* @__PURE__ */ e.jsx(c, { className: "font-mono", children: typeof D == "number" ? Ns(D) : String(D) })
|
|
1300
|
+
] }, w)) }) }) : /* @__PURE__ */ e.jsx("p", { className: "text-muted", children: "No metrics" })
|
|
1369
1301
|
] }),
|
|
1370
|
-
/* @__PURE__ */ e.jsxs(
|
|
1371
|
-
/* @__PURE__ */ e.jsx(
|
|
1372
|
-
Object.keys(
|
|
1373
|
-
|
|
1302
|
+
/* @__PURE__ */ e.jsxs(v, { children: [
|
|
1303
|
+
/* @__PURE__ */ e.jsx(S, { children: /* @__PURE__ */ e.jsx(P, { children: "Tags" }) }),
|
|
1304
|
+
Object.keys(ve).length ? /* @__PURE__ */ e.jsx("div", { className: "flex flex-wrap gap-2", children: Object.entries(ve).map(([w, D]) => /* @__PURE__ */ e.jsxs(B, { variant: "gray", children: [
|
|
1305
|
+
w,
|
|
1374
1306
|
": ",
|
|
1375
|
-
String(
|
|
1376
|
-
] },
|
|
1307
|
+
String(D)
|
|
1308
|
+
] }, w)) }) : /* @__PURE__ */ e.jsx("p", { className: "text-muted", children: "No tags" })
|
|
1377
1309
|
] })
|
|
1378
1310
|
] }),
|
|
1379
|
-
/* @__PURE__ */ e.jsxs(
|
|
1380
|
-
/* @__PURE__ */ e.jsx(
|
|
1311
|
+
/* @__PURE__ */ e.jsxs(v, { className: "mb-4", children: [
|
|
1312
|
+
/* @__PURE__ */ e.jsx(S, { children: /* @__PURE__ */ e.jsxs(P, { children: [
|
|
1381
1313
|
"Artifacts (",
|
|
1382
|
-
|
|
1314
|
+
le.length,
|
|
1383
1315
|
")"
|
|
1384
1316
|
] }) }),
|
|
1385
|
-
|
|
1386
|
-
/* @__PURE__ */ e.jsx(
|
|
1387
|
-
/* @__PURE__ */ e.jsx(
|
|
1388
|
-
/* @__PURE__ */ e.jsx(
|
|
1389
|
-
/* @__PURE__ */ e.jsx(
|
|
1390
|
-
/* @__PURE__ */ e.jsx(
|
|
1391
|
-
/* @__PURE__ */ e.jsx(
|
|
1392
|
-
/* @__PURE__ */ e.jsx(
|
|
1317
|
+
le.length ? /* @__PURE__ */ e.jsxs(O, { children: [
|
|
1318
|
+
/* @__PURE__ */ e.jsx(Q, { children: /* @__PURE__ */ e.jsxs(m, { children: [
|
|
1319
|
+
/* @__PURE__ */ e.jsx(b, { children: "#" }),
|
|
1320
|
+
/* @__PURE__ */ e.jsx(b, { children: "Kind" }),
|
|
1321
|
+
/* @__PURE__ */ e.jsx(b, { children: "Role" }),
|
|
1322
|
+
/* @__PURE__ */ e.jsx(b, { children: "Media Type" }),
|
|
1323
|
+
/* @__PURE__ */ e.jsx(b, { children: "Digest" }),
|
|
1324
|
+
/* @__PURE__ */ e.jsx(b, { children: "Actions" })
|
|
1393
1325
|
] }) }),
|
|
1394
|
-
/* @__PURE__ */ e.jsx(
|
|
1395
|
-
/* @__PURE__ */ e.jsx(c, { children:
|
|
1396
|
-
/* @__PURE__ */ e.jsx(c, { className: "font-mono text-sm", children:
|
|
1397
|
-
/* @__PURE__ */ e.jsx(c, { children: /* @__PURE__ */ e.jsx(B, { variant: "gray", children:
|
|
1398
|
-
/* @__PURE__ */ e.jsx(c, { className: "text-muted text-sm", children:
|
|
1399
|
-
/* @__PURE__ */ e.jsx(c, { className: "font-mono text-sm", children:
|
|
1326
|
+
/* @__PURE__ */ e.jsx(F, { children: le.map((w, D) => /* @__PURE__ */ e.jsxs(m, { children: [
|
|
1327
|
+
/* @__PURE__ */ e.jsx(c, { children: D }),
|
|
1328
|
+
/* @__PURE__ */ e.jsx(c, { className: "font-mono text-sm", children: w.kind }),
|
|
1329
|
+
/* @__PURE__ */ e.jsx(c, { children: /* @__PURE__ */ e.jsx(B, { variant: "gray", children: w.role }) }),
|
|
1330
|
+
/* @__PURE__ */ e.jsx(c, { className: "text-muted text-sm", children: w.media_type }),
|
|
1331
|
+
/* @__PURE__ */ e.jsx(c, { className: "font-mono text-sm", children: qe(w.digest) }),
|
|
1400
1332
|
/* @__PURE__ */ e.jsx(c, { children: /* @__PURE__ */ e.jsxs("div", { className: "flex gap-2", children: [
|
|
1401
|
-
/* @__PURE__ */ e.jsx(
|
|
1402
|
-
/* @__PURE__ */ e.jsx(
|
|
1333
|
+
/* @__PURE__ */ e.jsx(M, { to: `/runs/${a.run_id}/artifacts/${D}`, children: /* @__PURE__ */ e.jsx(k, { variant: "secondary", size: "sm", children: "View" }) }),
|
|
1334
|
+
/* @__PURE__ */ e.jsx(k, { variant: "secondary", size: "sm", onClick: () => Ae(D), children: "Download" })
|
|
1403
1335
|
] }) })
|
|
1404
|
-
] },
|
|
1336
|
+
] }, D)) })
|
|
1405
1337
|
] }) : /* @__PURE__ */ e.jsx("p", { className: "text-muted", children: "No artifacts" })
|
|
1406
1338
|
] }),
|
|
1407
|
-
|
|
1408
|
-
/* @__PURE__ */ e.jsx(
|
|
1409
|
-
|
|
1410
|
-
/* @__PURE__ */ e.jsx("strong", { children:
|
|
1339
|
+
be.length > 0 && /* @__PURE__ */ e.jsxs(v, { children: [
|
|
1340
|
+
/* @__PURE__ */ e.jsx(S, { children: /* @__PURE__ */ e.jsx(P, { className: "text-danger", children: "Errors" }) }),
|
|
1341
|
+
be.map((w, D) => /* @__PURE__ */ e.jsxs("div", { className: "mb-2", children: [
|
|
1342
|
+
/* @__PURE__ */ e.jsx("strong", { children: w.type }),
|
|
1411
1343
|
": ",
|
|
1412
|
-
|
|
1413
|
-
|
|
1414
|
-
] },
|
|
1344
|
+
w.message,
|
|
1345
|
+
w.traceback && /* @__PURE__ */ e.jsx("pre", { className: "mt-2", children: w.traceback })
|
|
1346
|
+
] }, D))
|
|
1415
1347
|
] }),
|
|
1416
1348
|
/* @__PURE__ */ e.jsxs(
|
|
1417
|
-
|
|
1349
|
+
Es,
|
|
1418
1350
|
{
|
|
1419
|
-
open:
|
|
1420
|
-
onClose: () =>
|
|
1351
|
+
open: i,
|
|
1352
|
+
onClose: () => x(!1),
|
|
1421
1353
|
title: "Delete Run",
|
|
1422
1354
|
actions: /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
|
|
1423
|
-
/* @__PURE__ */ e.jsx(
|
|
1424
|
-
/* @__PURE__ */ e.jsxs(
|
|
1355
|
+
/* @__PURE__ */ e.jsx(k, { variant: "secondary", onClick: () => x(!1), children: "Cancel" }),
|
|
1356
|
+
/* @__PURE__ */ e.jsxs(k, { variant: "danger", onClick: ke, disabled: J, children: [
|
|
1425
1357
|
J && /* @__PURE__ */ e.jsx(V, {}),
|
|
1426
1358
|
"Delete"
|
|
1427
1359
|
] })
|
|
1428
1360
|
] }),
|
|
1429
1361
|
children: [
|
|
1430
1362
|
/* @__PURE__ */ e.jsx("p", { children: "Are you sure you want to delete this run?" }),
|
|
1431
|
-
/* @__PURE__ */ e.jsx("p", { className: "font-mono text-sm mt-2", children:
|
|
1363
|
+
/* @__PURE__ */ e.jsx("p", { className: "font-mono text-sm mt-2", children: K(a.run_id) }),
|
|
1432
1364
|
/* @__PURE__ */ e.jsx("p", { className: "text-sm text-danger mt-2", children: "This action cannot be undone." })
|
|
1433
1365
|
]
|
|
1434
1366
|
}
|
|
1435
1367
|
),
|
|
1436
|
-
|
|
1437
|
-
|
|
1368
|
+
o && /* @__PURE__ */ e.jsx(
|
|
1369
|
+
Ss,
|
|
1438
1370
|
{
|
|
1439
|
-
message:
|
|
1440
|
-
variant:
|
|
1441
|
-
visible: !!
|
|
1442
|
-
onClose: () =>
|
|
1371
|
+
message: o.message,
|
|
1372
|
+
variant: o.variant,
|
|
1373
|
+
visible: !!o,
|
|
1374
|
+
onClose: () => p(null)
|
|
1443
1375
|
}
|
|
1444
1376
|
)
|
|
1445
1377
|
] });
|
|
1446
1378
|
}
|
|
1447
1379
|
function ks() {
|
|
1448
|
-
const { currentWorkspace: s } =
|
|
1449
|
-
return /* @__PURE__ */ e.jsxs(
|
|
1450
|
-
/* @__PURE__ */ e.jsx(
|
|
1451
|
-
/* @__PURE__ */ e.jsx(
|
|
1380
|
+
const { currentWorkspace: s } = Y(), { data: n, loading: t } = ze();
|
|
1381
|
+
return /* @__PURE__ */ e.jsxs(q, { children: [
|
|
1382
|
+
/* @__PURE__ */ e.jsx(pe, { title: "Projects" }),
|
|
1383
|
+
/* @__PURE__ */ e.jsx(v, { children: t ? /* @__PURE__ */ e.jsx("div", { className: "flex justify-center py-8", children: /* @__PURE__ */ e.jsx(V, {}) }) : /* @__PURE__ */ e.jsx(Ts, { projects: n ?? [], currentWorkspace: s }) })
|
|
1452
1384
|
] });
|
|
1453
1385
|
}
|
|
1454
1386
|
function As() {
|
|
1455
|
-
const [s, n] =
|
|
1456
|
-
d(
|
|
1457
|
-
const
|
|
1458
|
-
|
|
1387
|
+
const [s, n] = Ce(), { data: t } = ze(), [a, d] = U(s.get("project") || ""), { data: h, loading: f, refetch: i } = ps({ project: a || void 0 }), x = me((o) => {
|
|
1388
|
+
d(o);
|
|
1389
|
+
const p = new URLSearchParams(s);
|
|
1390
|
+
o ? p.set("project", o) : p.delete("project"), n(p, { replace: !0 });
|
|
1459
1391
|
}, [s, n]);
|
|
1460
|
-
return /* @__PURE__ */ e.jsxs(
|
|
1461
|
-
/* @__PURE__ */ e.jsx(
|
|
1462
|
-
/* @__PURE__ */ e.jsx(
|
|
1463
|
-
/* @__PURE__ */ e.jsxs(
|
|
1464
|
-
/* @__PURE__ */ e.jsx(
|
|
1392
|
+
return /* @__PURE__ */ e.jsxs(q, { children: [
|
|
1393
|
+
/* @__PURE__ */ e.jsx(pe, { title: "Run Groups" }),
|
|
1394
|
+
/* @__PURE__ */ e.jsx(v, { className: "mb-4", children: /* @__PURE__ */ e.jsxs(Cr, { children: [
|
|
1395
|
+
/* @__PURE__ */ e.jsxs(H, { children: [
|
|
1396
|
+
/* @__PURE__ */ e.jsx(Z, { htmlFor: "project", children: "Project" }),
|
|
1465
1397
|
/* @__PURE__ */ e.jsxs(
|
|
1466
|
-
|
|
1398
|
+
se,
|
|
1467
1399
|
{
|
|
1468
1400
|
id: "project",
|
|
1469
|
-
value:
|
|
1470
|
-
onChange: (
|
|
1401
|
+
value: a,
|
|
1402
|
+
onChange: (o) => x(o.target.value),
|
|
1471
1403
|
children: [
|
|
1472
1404
|
/* @__PURE__ */ e.jsx("option", { value: "", children: "All projects" }),
|
|
1473
|
-
t?.map((
|
|
1405
|
+
t?.map((o) => /* @__PURE__ */ e.jsx("option", { value: o.name, children: o.name }, o.name))
|
|
1474
1406
|
]
|
|
1475
1407
|
}
|
|
1476
1408
|
)
|
|
1477
1409
|
] }),
|
|
1478
|
-
/* @__PURE__ */ e.jsxs(
|
|
1479
|
-
/* @__PURE__ */ e.jsx(
|
|
1480
|
-
|
|
1410
|
+
/* @__PURE__ */ e.jsxs(H, { className: "flex items-end gap-2", children: [
|
|
1411
|
+
/* @__PURE__ */ e.jsx(k, { variant: "primary", onClick: () => i(), children: "Filter" }),
|
|
1412
|
+
f && /* @__PURE__ */ e.jsx(V, {})
|
|
1481
1413
|
] })
|
|
1482
1414
|
] }) }),
|
|
1483
|
-
/* @__PURE__ */ e.jsx(
|
|
1415
|
+
/* @__PURE__ */ e.jsx(v, { children: f && !h ? /* @__PURE__ */ e.jsx("div", { className: "flex justify-center py-8", children: /* @__PURE__ */ e.jsx(V, {}) }) : /* @__PURE__ */ e.jsx(Cs, { groups: h ?? [] }) })
|
|
1484
1416
|
] });
|
|
1485
1417
|
}
|
|
1486
|
-
function
|
|
1487
|
-
const { groupId: s } =
|
|
1488
|
-
|
|
1489
|
-
if (m) {
|
|
1490
|
-
const g = setTimeout(() => a(null), 3e3);
|
|
1491
|
-
return () => clearTimeout(g);
|
|
1492
|
-
}
|
|
1493
|
-
}, [m]);
|
|
1494
|
-
const x = async (g) => {
|
|
1495
|
-
try {
|
|
1496
|
-
await u.mutate(g), a({ message: "Run deleted", variant: "success" }), o();
|
|
1497
|
-
} catch {
|
|
1498
|
-
a({ message: "Failed to delete run", variant: "error" });
|
|
1499
|
-
}
|
|
1418
|
+
function Os() {
|
|
1419
|
+
const { groupId: s } = Ye(), { api: n } = Y(), { data: t, loading: a, error: d, refetch: h } = gs(s), f = je((x) => n.deleteRun(x)), i = async (x) => {
|
|
1420
|
+
await f.mutate(x), h();
|
|
1500
1421
|
};
|
|
1501
|
-
return
|
|
1422
|
+
return a ? /* @__PURE__ */ e.jsx(q, { children: /* @__PURE__ */ e.jsx("div", { className: "flex justify-center py-12", children: /* @__PURE__ */ e.jsx(V, {}) }) }) : d || !t ? /* @__PURE__ */ e.jsx(q, { children: /* @__PURE__ */ e.jsx(v, { children: /* @__PURE__ */ e.jsx(te, { message: "Group not found", hint: d?.message }) }) }) : /* @__PURE__ */ e.jsxs(q, { children: [
|
|
1502
1423
|
/* @__PURE__ */ e.jsx(
|
|
1503
|
-
|
|
1424
|
+
pe,
|
|
1504
1425
|
{
|
|
1505
1426
|
title: /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
|
|
1506
1427
|
"Group ",
|
|
1507
|
-
/* @__PURE__ */ e.jsx("span", { className: "font-mono", children:
|
|
1428
|
+
/* @__PURE__ */ e.jsx("span", { className: "font-mono", children: K(s) })
|
|
1508
1429
|
] }),
|
|
1509
1430
|
subtitle: /* @__PURE__ */ e.jsx("span", { className: "font-mono text-muted", children: s })
|
|
1510
1431
|
}
|
|
1511
1432
|
),
|
|
1512
|
-
/* @__PURE__ */ e.jsxs(
|
|
1513
|
-
/* @__PURE__ */ e.jsx(
|
|
1433
|
+
/* @__PURE__ */ e.jsxs(v, { children: [
|
|
1434
|
+
/* @__PURE__ */ e.jsx(S, { children: /* @__PURE__ */ e.jsxs(P, { children: [
|
|
1514
1435
|
"Runs in Group (",
|
|
1515
1436
|
t.runs.length,
|
|
1516
1437
|
")"
|
|
1517
1438
|
] }) }),
|
|
1518
1439
|
/* @__PURE__ */ e.jsx(
|
|
1519
|
-
|
|
1440
|
+
Je,
|
|
1520
1441
|
{
|
|
1521
1442
|
runs: t.runs,
|
|
1522
|
-
onDelete:
|
|
1523
|
-
loading:
|
|
1443
|
+
onDelete: i,
|
|
1444
|
+
loading: f.loading
|
|
1524
1445
|
}
|
|
1525
1446
|
)
|
|
1526
|
-
] })
|
|
1527
|
-
m && /* @__PURE__ */ e.jsx(
|
|
1528
|
-
Be,
|
|
1529
|
-
{
|
|
1530
|
-
message: m.message,
|
|
1531
|
-
variant: m.variant,
|
|
1532
|
-
visible: !!m,
|
|
1533
|
-
onClose: () => a(null)
|
|
1534
|
-
}
|
|
1535
|
-
)
|
|
1447
|
+
] })
|
|
1536
1448
|
] });
|
|
1537
1449
|
}
|
|
1538
|
-
function
|
|
1450
|
+
function xe({ match: s, yesText: n = "✓ Match", noText: t = "✗ Different" }) {
|
|
1539
1451
|
return /* @__PURE__ */ e.jsx("span", { className: s ? "diff-match" : "diff-mismatch", children: s ? n : t });
|
|
1540
1452
|
}
|
|
1541
|
-
function
|
|
1542
|
-
const [s, n] =
|
|
1543
|
-
|
|
1544
|
-
x("Please select both runs to compare");
|
|
1545
|
-
return;
|
|
1546
|
-
}
|
|
1547
|
-
x(""), n({ a: d, b: m });
|
|
1453
|
+
function Fs() {
|
|
1454
|
+
const [s, n] = Ce(), { data: t } = Sr({ limit: 100 }), a = t?.runs ?? [], [d, h] = U(s.get("a") || ""), [f, i] = U(s.get("b") || ""), x = (o) => {
|
|
1455
|
+
o.preventDefault(), d && f && n({ a: d, b: f });
|
|
1548
1456
|
};
|
|
1549
1457
|
return /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
|
|
1550
|
-
/* @__PURE__ */ e.jsx(
|
|
1458
|
+
/* @__PURE__ */ e.jsx(v, { children: /* @__PURE__ */ e.jsxs("form", { onSubmit: x, children: [
|
|
1551
1459
|
/* @__PURE__ */ e.jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4 mb-4", children: [
|
|
1552
|
-
/* @__PURE__ */ e.jsxs(
|
|
1553
|
-
/* @__PURE__ */ e.jsx(
|
|
1554
|
-
/* @__PURE__ */ e.jsxs(
|
|
1555
|
-
o(f.target.value), x("");
|
|
1556
|
-
}, children: [
|
|
1460
|
+
/* @__PURE__ */ e.jsxs(H, { children: [
|
|
1461
|
+
/* @__PURE__ */ e.jsx(Z, { htmlFor: "a", children: "Run A (Baseline)" }),
|
|
1462
|
+
/* @__PURE__ */ e.jsxs(se, { id: "a", value: d, onChange: (o) => h(o.target.value), required: !0, children: [
|
|
1557
1463
|
/* @__PURE__ */ e.jsx("option", { value: "", children: "Select run..." }),
|
|
1558
|
-
|
|
1559
|
-
|
|
1464
|
+
a.map((o) => /* @__PURE__ */ e.jsxs("option", { value: o.run_id, children: [
|
|
1465
|
+
o.run_name || "Unnamed",
|
|
1560
1466
|
" (",
|
|
1561
|
-
|
|
1467
|
+
K(o.run_id),
|
|
1562
1468
|
") — ",
|
|
1563
|
-
|
|
1564
|
-
] },
|
|
1469
|
+
o.project
|
|
1470
|
+
] }, o.run_id))
|
|
1565
1471
|
] })
|
|
1566
1472
|
] }),
|
|
1567
|
-
/* @__PURE__ */ e.jsxs(
|
|
1568
|
-
/* @__PURE__ */ e.jsx(
|
|
1569
|
-
/* @__PURE__ */ e.jsxs(
|
|
1570
|
-
a(f.target.value), x("");
|
|
1571
|
-
}, children: [
|
|
1473
|
+
/* @__PURE__ */ e.jsxs(H, { children: [
|
|
1474
|
+
/* @__PURE__ */ e.jsx(Z, { htmlFor: "b", children: "Run B (Candidate)" }),
|
|
1475
|
+
/* @__PURE__ */ e.jsxs(se, { id: "b", value: f, onChange: (o) => i(o.target.value), required: !0, children: [
|
|
1572
1476
|
/* @__PURE__ */ e.jsx("option", { value: "", children: "Select run..." }),
|
|
1573
|
-
|
|
1574
|
-
|
|
1477
|
+
a.map((o) => /* @__PURE__ */ e.jsxs("option", { value: o.run_id, children: [
|
|
1478
|
+
o.run_name || "Unnamed",
|
|
1575
1479
|
" (",
|
|
1576
|
-
|
|
1480
|
+
K(o.run_id),
|
|
1577
1481
|
") — ",
|
|
1578
|
-
|
|
1579
|
-
] },
|
|
1482
|
+
o.project
|
|
1483
|
+
] }, o.run_id))
|
|
1580
1484
|
] })
|
|
1581
1485
|
] })
|
|
1582
1486
|
] }),
|
|
1583
|
-
|
|
1584
|
-
/* @__PURE__ */ e.jsx("div", { className: "pt-2", children: /* @__PURE__ */ e.jsx(F, { type: "submit", variant: "primary", children: "Compare" }) })
|
|
1487
|
+
/* @__PURE__ */ e.jsx(k, { type: "submit", variant: "primary", disabled: !d || !f, children: "Compare" })
|
|
1585
1488
|
] }) }),
|
|
1586
|
-
/* @__PURE__ */ e.jsxs(
|
|
1587
|
-
/* @__PURE__ */ e.jsx(
|
|
1489
|
+
/* @__PURE__ */ e.jsxs(v, { className: "mt-4", children: [
|
|
1490
|
+
/* @__PURE__ */ e.jsx(S, { children: /* @__PURE__ */ e.jsx(P, { children: "Tips" }) }),
|
|
1588
1491
|
/* @__PURE__ */ e.jsxs("ul", { className: "text-muted text-sm list-disc pl-6 space-y-1", children: [
|
|
1589
1492
|
/* @__PURE__ */ e.jsx("li", { children: "Select two runs to compare their parameters, metrics, and artifacts" }),
|
|
1590
1493
|
/* @__PURE__ */ e.jsx("li", { children: "The diff will show changed values and compute TVD for result distributions" }),
|
|
@@ -1594,370 +1497,363 @@ function Os() {
|
|
|
1594
1497
|
] });
|
|
1595
1498
|
}
|
|
1596
1499
|
function $s({ runIdA: s, runIdB: n }) {
|
|
1597
|
-
const { data: t, loading:
|
|
1598
|
-
if (
|
|
1599
|
-
if (d || !t) return /* @__PURE__ */ e.jsx(
|
|
1600
|
-
const { run_a:
|
|
1500
|
+
const { data: t, loading: a, error: d } = vs(s, n);
|
|
1501
|
+
if (a) return /* @__PURE__ */ e.jsx("div", { className: "flex justify-center py-12", children: /* @__PURE__ */ e.jsx(V, {}) });
|
|
1502
|
+
if (d || !t) return /* @__PURE__ */ e.jsx(v, { children: /* @__PURE__ */ e.jsx(te, { message: "Failed to load diff", hint: d?.message }) });
|
|
1503
|
+
const { run_a: h, run_b: f, report: i } = t;
|
|
1601
1504
|
return /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
|
|
1602
|
-
|
|
1505
|
+
i.warnings && i.warnings.length > 0 && /* @__PURE__ */ e.jsxs("div", { className: "alert alert-warning mb-4", children: [
|
|
1603
1506
|
/* @__PURE__ */ e.jsx("strong", { children: "Warnings:" }),
|
|
1604
|
-
/* @__PURE__ */ e.jsx("ul", { className: "list-disc pl-6 mt-1", children:
|
|
1507
|
+
/* @__PURE__ */ e.jsx("ul", { className: "list-disc pl-6 mt-1", children: i.warnings.map((x, o) => /* @__PURE__ */ e.jsx("li", { children: x }, o)) })
|
|
1605
1508
|
] }),
|
|
1606
|
-
/* @__PURE__ */ e.jsx(
|
|
1509
|
+
/* @__PURE__ */ e.jsx(v, { className: "mb-4", children: /* @__PURE__ */ e.jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4", children: [
|
|
1607
1510
|
/* @__PURE__ */ e.jsxs("div", { children: [
|
|
1608
1511
|
/* @__PURE__ */ e.jsx("h3", { className: "text-sm text-muted uppercase tracking-wider mb-1", children: "Run A (Baseline)" }),
|
|
1609
|
-
/* @__PURE__ */ e.jsx("p", { children: /* @__PURE__ */ e.jsx(
|
|
1610
|
-
/* @__PURE__ */ e.jsx("p", { className: "font-mono text-sm text-muted", children:
|
|
1512
|
+
/* @__PURE__ */ e.jsx("p", { children: /* @__PURE__ */ e.jsx(M, { to: `/runs/${h.run_id}`, children: h.run_name || "Unnamed Run" }) }),
|
|
1513
|
+
/* @__PURE__ */ e.jsx("p", { className: "font-mono text-sm text-muted", children: K(h.run_id) }),
|
|
1611
1514
|
/* @__PURE__ */ e.jsxs("p", { className: "text-muted text-sm", children: [
|
|
1612
|
-
|
|
1515
|
+
h.project,
|
|
1613
1516
|
" · ",
|
|
1614
|
-
|
|
1517
|
+
Te(h.created_at)
|
|
1615
1518
|
] })
|
|
1616
1519
|
] }),
|
|
1617
1520
|
/* @__PURE__ */ e.jsxs("div", { children: [
|
|
1618
1521
|
/* @__PURE__ */ e.jsx("h3", { className: "text-sm text-muted uppercase tracking-wider mb-1", children: "Run B (Candidate)" }),
|
|
1619
|
-
/* @__PURE__ */ e.jsx("p", { children: /* @__PURE__ */ e.jsx(
|
|
1620
|
-
/* @__PURE__ */ e.jsx("p", { className: "font-mono text-sm text-muted", children:
|
|
1522
|
+
/* @__PURE__ */ e.jsx("p", { children: /* @__PURE__ */ e.jsx(M, { to: `/runs/${f.run_id}`, children: f.run_name || "Unnamed Run" }) }),
|
|
1523
|
+
/* @__PURE__ */ e.jsx("p", { className: "font-mono text-sm text-muted", children: K(f.run_id) }),
|
|
1621
1524
|
/* @__PURE__ */ e.jsxs("p", { className: "text-muted text-sm", children: [
|
|
1622
|
-
|
|
1525
|
+
f.project,
|
|
1623
1526
|
" · ",
|
|
1624
|
-
|
|
1527
|
+
Te(f.created_at)
|
|
1625
1528
|
] })
|
|
1626
1529
|
] })
|
|
1627
1530
|
] }) }),
|
|
1628
1531
|
/* @__PURE__ */ e.jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4 mb-4", children: [
|
|
1629
|
-
/* @__PURE__ */ e.jsxs(
|
|
1630
|
-
/* @__PURE__ */ e.jsx(
|
|
1631
|
-
/* @__PURE__ */ e.jsx(
|
|
1632
|
-
/* @__PURE__ */ e.jsxs(
|
|
1532
|
+
/* @__PURE__ */ e.jsxs(v, { children: [
|
|
1533
|
+
/* @__PURE__ */ e.jsx(S, { children: /* @__PURE__ */ e.jsx(P, { children: "Metadata" }) }),
|
|
1534
|
+
/* @__PURE__ */ e.jsx(O, { children: /* @__PURE__ */ e.jsxs(F, { children: [
|
|
1535
|
+
/* @__PURE__ */ e.jsxs(m, { children: [
|
|
1633
1536
|
/* @__PURE__ */ e.jsx(c, { children: "Project" }),
|
|
1634
|
-
/* @__PURE__ */ e.jsx(c, { children: /* @__PURE__ */ e.jsx(
|
|
1537
|
+
/* @__PURE__ */ e.jsx(c, { children: /* @__PURE__ */ e.jsx(xe, { match: i.metadata.project_match }) })
|
|
1635
1538
|
] }),
|
|
1636
|
-
/* @__PURE__ */ e.jsxs(
|
|
1539
|
+
/* @__PURE__ */ e.jsxs(m, { children: [
|
|
1637
1540
|
/* @__PURE__ */ e.jsx(c, { children: "Backend" }),
|
|
1638
|
-
/* @__PURE__ */ e.jsx(c, { children: /* @__PURE__ */ e.jsx(
|
|
1541
|
+
/* @__PURE__ */ e.jsx(c, { children: /* @__PURE__ */ e.jsx(xe, { match: i.metadata.backend_match }) })
|
|
1639
1542
|
] }),
|
|
1640
|
-
!
|
|
1641
|
-
/* @__PURE__ */ e.jsxs(
|
|
1543
|
+
!i.metadata.project_match && /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
|
|
1544
|
+
/* @__PURE__ */ e.jsxs(m, { children: [
|
|
1642
1545
|
/* @__PURE__ */ e.jsx(c, { className: "text-muted text-sm", children: "Project A" }),
|
|
1643
|
-
/* @__PURE__ */ e.jsx(c, { className: "font-mono text-sm", children:
|
|
1546
|
+
/* @__PURE__ */ e.jsx(c, { className: "font-mono text-sm", children: i.metadata.project_a || "N/A" })
|
|
1644
1547
|
] }),
|
|
1645
|
-
/* @__PURE__ */ e.jsxs(
|
|
1548
|
+
/* @__PURE__ */ e.jsxs(m, { children: [
|
|
1646
1549
|
/* @__PURE__ */ e.jsx(c, { className: "text-muted text-sm", children: "Project B" }),
|
|
1647
|
-
/* @__PURE__ */ e.jsx(c, { className: "font-mono text-sm", children:
|
|
1550
|
+
/* @__PURE__ */ e.jsx(c, { className: "font-mono text-sm", children: i.metadata.project_b || "N/A" })
|
|
1648
1551
|
] })
|
|
1649
1552
|
] }),
|
|
1650
|
-
!
|
|
1651
|
-
/* @__PURE__ */ e.jsxs(
|
|
1553
|
+
!i.metadata.backend_match && /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
|
|
1554
|
+
/* @__PURE__ */ e.jsxs(m, { children: [
|
|
1652
1555
|
/* @__PURE__ */ e.jsx(c, { className: "text-muted text-sm", children: "Backend A" }),
|
|
1653
|
-
/* @__PURE__ */ e.jsx(c, { className: "font-mono text-sm", children:
|
|
1556
|
+
/* @__PURE__ */ e.jsx(c, { className: "font-mono text-sm", children: i.metadata.backend_a || "N/A" })
|
|
1654
1557
|
] }),
|
|
1655
|
-
/* @__PURE__ */ e.jsxs(
|
|
1558
|
+
/* @__PURE__ */ e.jsxs(m, { children: [
|
|
1656
1559
|
/* @__PURE__ */ e.jsx(c, { className: "text-muted text-sm", children: "Backend B" }),
|
|
1657
|
-
/* @__PURE__ */ e.jsx(c, { className: "font-mono text-sm", children:
|
|
1560
|
+
/* @__PURE__ */ e.jsx(c, { className: "font-mono text-sm", children: i.metadata.backend_b || "N/A" })
|
|
1658
1561
|
] })
|
|
1659
1562
|
] })
|
|
1660
1563
|
] }) })
|
|
1661
1564
|
] }),
|
|
1662
|
-
/* @__PURE__ */ e.jsxs(
|
|
1663
|
-
/* @__PURE__ */ e.jsx(
|
|
1664
|
-
/* @__PURE__ */ e.jsx(
|
|
1665
|
-
/* @__PURE__ */ e.jsxs(
|
|
1565
|
+
/* @__PURE__ */ e.jsxs(v, { children: [
|
|
1566
|
+
/* @__PURE__ */ e.jsx(S, { children: /* @__PURE__ */ e.jsx(P, { children: "Fingerprints" }) }),
|
|
1567
|
+
/* @__PURE__ */ e.jsx(O, { children: /* @__PURE__ */ e.jsxs(F, { children: [
|
|
1568
|
+
/* @__PURE__ */ e.jsxs(m, { children: [
|
|
1666
1569
|
/* @__PURE__ */ e.jsx(c, { children: "Run A" }),
|
|
1667
|
-
/* @__PURE__ */ e.jsx(c, { className: "font-mono text-sm", children:
|
|
1570
|
+
/* @__PURE__ */ e.jsx(c, { className: "font-mono text-sm", children: qe(i.fingerprints.a) })
|
|
1668
1571
|
] }),
|
|
1669
|
-
/* @__PURE__ */ e.jsxs(
|
|
1572
|
+
/* @__PURE__ */ e.jsxs(m, { children: [
|
|
1670
1573
|
/* @__PURE__ */ e.jsx(c, { children: "Run B" }),
|
|
1671
|
-
/* @__PURE__ */ e.jsx(c, { className: "font-mono text-sm", children:
|
|
1574
|
+
/* @__PURE__ */ e.jsx(c, { className: "font-mono text-sm", children: qe(i.fingerprints.b) })
|
|
1672
1575
|
] }),
|
|
1673
|
-
/* @__PURE__ */ e.jsxs(
|
|
1576
|
+
/* @__PURE__ */ e.jsxs(m, { children: [
|
|
1674
1577
|
/* @__PURE__ */ e.jsx(c, { children: "Match" }),
|
|
1675
|
-
/* @__PURE__ */ e.jsx(c, { children: /* @__PURE__ */ e.jsx(
|
|
1578
|
+
/* @__PURE__ */ e.jsx(c, { children: /* @__PURE__ */ e.jsx(xe, { match: i.fingerprints.a === i.fingerprints.b, yesText: "✓ Yes", noText: "✗ No" }) })
|
|
1676
1579
|
] })
|
|
1677
1580
|
] }) })
|
|
1678
1581
|
] })
|
|
1679
1582
|
] }),
|
|
1680
1583
|
/* @__PURE__ */ e.jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4 mb-4", children: [
|
|
1681
|
-
/* @__PURE__ */ e.jsxs(
|
|
1682
|
-
/* @__PURE__ */ e.jsx(
|
|
1584
|
+
/* @__PURE__ */ e.jsxs(v, { children: [
|
|
1585
|
+
/* @__PURE__ */ e.jsx(S, { children: /* @__PURE__ */ e.jsxs(P, { children: [
|
|
1683
1586
|
"Program",
|
|
1684
|
-
|
|
1587
|
+
i.program.exact_match ? /* @__PURE__ */ e.jsx(B, { variant: "success", children: "Exact Match" }) : i.program.structural_match ? /* @__PURE__ */ e.jsx(B, { variant: "info", children: "Structural Match" }) : /* @__PURE__ */ e.jsx(B, { variant: "warning", children: "Different" })
|
|
1685
1588
|
] }) }),
|
|
1686
|
-
/* @__PURE__ */ e.jsx(
|
|
1687
|
-
/* @__PURE__ */ e.jsxs(
|
|
1589
|
+
/* @__PURE__ */ e.jsx(O, { children: /* @__PURE__ */ e.jsxs(F, { children: [
|
|
1590
|
+
/* @__PURE__ */ e.jsxs(m, { children: [
|
|
1688
1591
|
/* @__PURE__ */ e.jsx(c, { children: "Exact Match" }),
|
|
1689
|
-
/* @__PURE__ */ e.jsx(c, { children: /* @__PURE__ */ e.jsx(
|
|
1592
|
+
/* @__PURE__ */ e.jsx(c, { children: /* @__PURE__ */ e.jsx(xe, { match: i.program.exact_match, yesText: "✓ Yes", noText: "✗ No" }) })
|
|
1690
1593
|
] }),
|
|
1691
|
-
/* @__PURE__ */ e.jsxs(
|
|
1594
|
+
/* @__PURE__ */ e.jsxs(m, { children: [
|
|
1692
1595
|
/* @__PURE__ */ e.jsx(c, { children: "Structural Match" }),
|
|
1693
|
-
/* @__PURE__ */ e.jsx(c, { children: /* @__PURE__ */ e.jsx(
|
|
1596
|
+
/* @__PURE__ */ e.jsx(c, { children: /* @__PURE__ */ e.jsx(xe, { match: i.program.structural_match, yesText: "✓ Yes", noText: "✗ No" }) })
|
|
1694
1597
|
] })
|
|
1695
1598
|
] }) })
|
|
1696
1599
|
] }),
|
|
1697
|
-
/* @__PURE__ */ e.jsxs(
|
|
1698
|
-
/* @__PURE__ */ e.jsx(
|
|
1600
|
+
/* @__PURE__ */ e.jsxs(v, { children: [
|
|
1601
|
+
/* @__PURE__ */ e.jsx(S, { children: /* @__PURE__ */ e.jsxs(P, { children: [
|
|
1699
1602
|
"Device Calibration",
|
|
1700
|
-
|
|
1603
|
+
i.device_drift?.significant_drift ? /* @__PURE__ */ e.jsx(B, { variant: "warning", children: "Drifted" }) : i.device_drift?.has_calibration_data ? /* @__PURE__ */ e.jsx(B, { variant: "success", children: "Stable" }) : /* @__PURE__ */ e.jsx(B, { variant: "gray", children: "N/A" })
|
|
1701
1604
|
] }) }),
|
|
1702
|
-
|
|
1605
|
+
i.device_drift?.significant_drift ? /* @__PURE__ */ e.jsx("p", { className: "text-sm text-warning", children: "⚠ Significant calibration drift detected" }) : i.device_drift?.has_calibration_data ? /* @__PURE__ */ e.jsx("p", { className: "text-muted", children: "Calibration within acceptable thresholds" }) : /* @__PURE__ */ e.jsx("p", { className: "text-muted", children: "No calibration data available" })
|
|
1703
1606
|
] })
|
|
1704
1607
|
] }),
|
|
1705
|
-
/* @__PURE__ */ e.jsxs(
|
|
1706
|
-
/* @__PURE__ */ e.jsx(
|
|
1608
|
+
/* @__PURE__ */ e.jsxs(v, { className: "mb-4", children: [
|
|
1609
|
+
/* @__PURE__ */ e.jsx(S, { children: /* @__PURE__ */ e.jsxs(P, { children: [
|
|
1707
1610
|
"Parameters ",
|
|
1708
|
-
/* @__PURE__ */ e.jsx(B, { variant:
|
|
1611
|
+
/* @__PURE__ */ e.jsx(B, { variant: i.params.match ? "success" : "warning", children: i.params.match ? "Match" : "Different" })
|
|
1709
1612
|
] }) }),
|
|
1710
|
-
|
|
1711
|
-
/* @__PURE__ */ e.jsx(
|
|
1712
|
-
/* @__PURE__ */ e.jsx(
|
|
1713
|
-
/* @__PURE__ */ e.jsx(
|
|
1714
|
-
/* @__PURE__ */ e.jsx(
|
|
1613
|
+
i.params.match ? /* @__PURE__ */ e.jsx("p", { className: "text-muted", children: "All parameters match" }) : /* @__PURE__ */ e.jsx(e.Fragment, { children: i.params.changed && Object.keys(i.params.changed).length > 0 && /* @__PURE__ */ e.jsxs(O, { children: [
|
|
1614
|
+
/* @__PURE__ */ e.jsx(Q, { children: /* @__PURE__ */ e.jsxs(m, { children: [
|
|
1615
|
+
/* @__PURE__ */ e.jsx(b, { children: "Parameter" }),
|
|
1616
|
+
/* @__PURE__ */ e.jsx(b, { children: "Run A" }),
|
|
1617
|
+
/* @__PURE__ */ e.jsx(b, { children: "Run B" })
|
|
1715
1618
|
] }) }),
|
|
1716
|
-
/* @__PURE__ */ e.jsx(
|
|
1717
|
-
/* @__PURE__ */ e.jsx(c, { children:
|
|
1718
|
-
/* @__PURE__ */ e.jsx(c, { className: "font-mono", children: String(
|
|
1719
|
-
/* @__PURE__ */ e.jsx(c, { className: "font-mono", children: String(
|
|
1720
|
-
] },
|
|
1619
|
+
/* @__PURE__ */ e.jsx(F, { children: Object.entries(i.params.changed).map(([x, o]) => /* @__PURE__ */ e.jsxs(m, { children: [
|
|
1620
|
+
/* @__PURE__ */ e.jsx(c, { children: x }),
|
|
1621
|
+
/* @__PURE__ */ e.jsx(c, { className: "font-mono", children: String(o.a) }),
|
|
1622
|
+
/* @__PURE__ */ e.jsx(c, { className: "font-mono", children: String(o.b) })
|
|
1623
|
+
] }, x)) })
|
|
1721
1624
|
] }) })
|
|
1722
1625
|
] }),
|
|
1723
|
-
/* @__PURE__ */ e.jsxs(
|
|
1724
|
-
/* @__PURE__ */ e.jsx(
|
|
1626
|
+
/* @__PURE__ */ e.jsxs(v, { className: "mb-4", children: [
|
|
1627
|
+
/* @__PURE__ */ e.jsx(S, { children: /* @__PURE__ */ e.jsxs(P, { children: [
|
|
1725
1628
|
"Metrics ",
|
|
1726
|
-
/* @__PURE__ */ e.jsx(B, { variant:
|
|
1629
|
+
/* @__PURE__ */ e.jsx(B, { variant: i.metrics.match ? "success" : "warning", children: i.metrics.match ? "Match" : "Different" })
|
|
1727
1630
|
] }) }),
|
|
1728
|
-
|
|
1729
|
-
/* @__PURE__ */ e.jsx(
|
|
1730
|
-
/* @__PURE__ */ e.jsx(
|
|
1731
|
-
/* @__PURE__ */ e.jsx(
|
|
1732
|
-
/* @__PURE__ */ e.jsx(
|
|
1631
|
+
i.metrics.match ? /* @__PURE__ */ e.jsx("p", { className: "text-muted", children: "All metrics match" }) : /* @__PURE__ */ e.jsx(e.Fragment, { children: i.metrics.changed && Object.keys(i.metrics.changed).length > 0 && /* @__PURE__ */ e.jsxs(O, { children: [
|
|
1632
|
+
/* @__PURE__ */ e.jsx(Q, { children: /* @__PURE__ */ e.jsxs(m, { children: [
|
|
1633
|
+
/* @__PURE__ */ e.jsx(b, { children: "Metric" }),
|
|
1634
|
+
/* @__PURE__ */ e.jsx(b, { children: "Run A" }),
|
|
1635
|
+
/* @__PURE__ */ e.jsx(b, { children: "Run B" })
|
|
1733
1636
|
] }) }),
|
|
1734
|
-
/* @__PURE__ */ e.jsx(
|
|
1735
|
-
/* @__PURE__ */ e.jsx(c, { children:
|
|
1736
|
-
/* @__PURE__ */ e.jsx(c, { className: "font-mono", children:
|
|
1737
|
-
/* @__PURE__ */ e.jsx(c, { className: "font-mono", children:
|
|
1738
|
-
] },
|
|
1637
|
+
/* @__PURE__ */ e.jsx(F, { children: Object.entries(i.metrics.changed).map(([x, o]) => /* @__PURE__ */ e.jsxs(m, { children: [
|
|
1638
|
+
/* @__PURE__ */ e.jsx(c, { children: x }),
|
|
1639
|
+
/* @__PURE__ */ e.jsx(c, { className: "font-mono", children: o.a }),
|
|
1640
|
+
/* @__PURE__ */ e.jsx(c, { className: "font-mono", children: o.b })
|
|
1641
|
+
] }, x)) })
|
|
1739
1642
|
] }) })
|
|
1740
1643
|
] }),
|
|
1741
|
-
|
|
1742
|
-
/* @__PURE__ */ e.jsx(
|
|
1644
|
+
i.circuit_diff && /* @__PURE__ */ e.jsxs(v, { className: "mb-4", children: [
|
|
1645
|
+
/* @__PURE__ */ e.jsx(S, { children: /* @__PURE__ */ e.jsxs(P, { children: [
|
|
1743
1646
|
"Circuit",
|
|
1744
|
-
/* @__PURE__ */ e.jsx(B, { variant:
|
|
1647
|
+
/* @__PURE__ */ e.jsx(B, { variant: i.circuit_diff.match ? "success" : "warning", children: i.circuit_diff.match ? "Match" : "Different" })
|
|
1745
1648
|
] }) }),
|
|
1746
|
-
|
|
1747
|
-
|
|
1649
|
+
i.circuit_diff.match ? /* @__PURE__ */ e.jsx("p", { className: "text-muted", children: "Circuit structure matches" }) : /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
|
|
1650
|
+
i.circuit_diff.changed && Object.keys(i.circuit_diff.changed).length > 0 && /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
|
|
1748
1651
|
/* @__PURE__ */ e.jsx("h4", { className: "text-sm text-muted mb-2", children: "Changed" }),
|
|
1749
|
-
/* @__PURE__ */ e.jsxs(
|
|
1750
|
-
/* @__PURE__ */ e.jsx(
|
|
1751
|
-
/* @__PURE__ */ e.jsx(
|
|
1752
|
-
/* @__PURE__ */ e.jsx(
|
|
1753
|
-
/* @__PURE__ */ e.jsx(
|
|
1754
|
-
/* @__PURE__ */ e.jsx(
|
|
1652
|
+
/* @__PURE__ */ e.jsxs(O, { children: [
|
|
1653
|
+
/* @__PURE__ */ e.jsx(Q, { children: /* @__PURE__ */ e.jsxs(m, { children: [
|
|
1654
|
+
/* @__PURE__ */ e.jsx(b, { children: "Property" }),
|
|
1655
|
+
/* @__PURE__ */ e.jsx(b, { children: "Run A" }),
|
|
1656
|
+
/* @__PURE__ */ e.jsx(b, { children: "Run B" }),
|
|
1657
|
+
/* @__PURE__ */ e.jsx(b, { children: "Delta" })
|
|
1755
1658
|
] }) }),
|
|
1756
|
-
/* @__PURE__ */ e.jsx(
|
|
1757
|
-
/* @__PURE__ */ e.jsx(c, { children:
|
|
1758
|
-
/* @__PURE__ */ e.jsx(c, { className: "font-mono", children: String(
|
|
1759
|
-
/* @__PURE__ */ e.jsx(c, { className: "font-mono", children: String(
|
|
1760
|
-
/* @__PURE__ */ e.jsx(c, { className: "font-mono", children:
|
|
1761
|
-
|
|
1762
|
-
|
|
1763
|
-
|
|
1659
|
+
/* @__PURE__ */ e.jsx(F, { children: Object.entries(i.circuit_diff.changed).map(([x, o]) => /* @__PURE__ */ e.jsxs(m, { children: [
|
|
1660
|
+
/* @__PURE__ */ e.jsx(c, { children: o.label || x }),
|
|
1661
|
+
/* @__PURE__ */ e.jsx(c, { className: "font-mono", children: String(o.a) }),
|
|
1662
|
+
/* @__PURE__ */ e.jsx(c, { className: "font-mono", children: String(o.b) }),
|
|
1663
|
+
/* @__PURE__ */ e.jsx(c, { className: "font-mono", children: o.delta != null && /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
|
|
1664
|
+
o.delta > 0 ? "+" : "",
|
|
1665
|
+
o.delta,
|
|
1666
|
+
o.pct != null && ` (${o.pct > 0 ? "+" : ""}${o.pct.toFixed(1)}%)`
|
|
1764
1667
|
] }) })
|
|
1765
|
-
] },
|
|
1668
|
+
] }, x)) })
|
|
1766
1669
|
] })
|
|
1767
1670
|
] }),
|
|
1768
|
-
|
|
1671
|
+
i.circuit_diff.is_clifford_changed && /* @__PURE__ */ e.jsxs("div", { className: "mt-4", children: [
|
|
1769
1672
|
/* @__PURE__ */ e.jsx("h4", { className: "text-sm text-muted mb-2", children: "Clifford Status" }),
|
|
1770
|
-
/* @__PURE__ */ e.jsx(
|
|
1771
|
-
/* @__PURE__ */ e.jsxs(
|
|
1673
|
+
/* @__PURE__ */ e.jsx(O, { children: /* @__PURE__ */ e.jsxs(F, { children: [
|
|
1674
|
+
/* @__PURE__ */ e.jsxs(m, { children: [
|
|
1772
1675
|
/* @__PURE__ */ e.jsx(c, { children: "Run A" }),
|
|
1773
|
-
/* @__PURE__ */ e.jsx(c, { className: "font-mono", children:
|
|
1676
|
+
/* @__PURE__ */ e.jsx(c, { className: "font-mono", children: i.circuit_diff.is_clifford_a != null ? String(i.circuit_diff.is_clifford_a) : "unknown" })
|
|
1774
1677
|
] }),
|
|
1775
|
-
/* @__PURE__ */ e.jsxs(
|
|
1678
|
+
/* @__PURE__ */ e.jsxs(m, { children: [
|
|
1776
1679
|
/* @__PURE__ */ e.jsx(c, { children: "Run B" }),
|
|
1777
|
-
/* @__PURE__ */ e.jsx(c, { className: "font-mono", children:
|
|
1680
|
+
/* @__PURE__ */ e.jsx(c, { className: "font-mono", children: i.circuit_diff.is_clifford_b != null ? String(i.circuit_diff.is_clifford_b) : "unknown" })
|
|
1778
1681
|
] })
|
|
1779
1682
|
] }) })
|
|
1780
1683
|
] }),
|
|
1781
|
-
|
|
1684
|
+
i.circuit_diff.added_gates && i.circuit_diff.added_gates.length > 0 && /* @__PURE__ */ e.jsxs("div", { className: "mt-4", children: [
|
|
1782
1685
|
/* @__PURE__ */ e.jsx("h4", { className: "text-sm text-muted mb-2", children: "New Gate Types (in B)" }),
|
|
1783
|
-
/* @__PURE__ */ e.jsx("p", { className: "font-mono text-sm", children:
|
|
1686
|
+
/* @__PURE__ */ e.jsx("p", { className: "font-mono text-sm", children: i.circuit_diff.added_gates.join(", ") })
|
|
1784
1687
|
] }),
|
|
1785
|
-
|
|
1688
|
+
i.circuit_diff.removed_gates && i.circuit_diff.removed_gates.length > 0 && /* @__PURE__ */ e.jsxs("div", { className: "mt-4", children: [
|
|
1786
1689
|
/* @__PURE__ */ e.jsx("h4", { className: "text-sm text-muted mb-2", children: "Removed Gate Types (from A)" }),
|
|
1787
|
-
/* @__PURE__ */ e.jsx("p", { className: "font-mono text-sm", children:
|
|
1690
|
+
/* @__PURE__ */ e.jsx("p", { className: "font-mono text-sm", children: i.circuit_diff.removed_gates.join(", ") })
|
|
1788
1691
|
] })
|
|
1789
1692
|
] })
|
|
1790
1693
|
] }),
|
|
1791
|
-
|
|
1792
|
-
/* @__PURE__ */ e.jsx(
|
|
1793
|
-
/* @__PURE__ */ e.jsx(
|
|
1794
|
-
/* @__PURE__ */ e.jsxs(
|
|
1694
|
+
i.tvd != null && /* @__PURE__ */ e.jsxs(v, { className: "mb-4", children: [
|
|
1695
|
+
/* @__PURE__ */ e.jsx(S, { children: /* @__PURE__ */ e.jsx(P, { children: "Results" }) }),
|
|
1696
|
+
/* @__PURE__ */ e.jsx(O, { children: /* @__PURE__ */ e.jsxs(F, { children: [
|
|
1697
|
+
/* @__PURE__ */ e.jsxs(m, { children: [
|
|
1795
1698
|
/* @__PURE__ */ e.jsx(c, { children: "Total Variation Distance (TVD)" }),
|
|
1796
|
-
/* @__PURE__ */ e.jsx(c, { className: "font-mono", children:
|
|
1699
|
+
/* @__PURE__ */ e.jsx(c, { className: "font-mono", children: i.tvd.toFixed(6) })
|
|
1797
1700
|
] }),
|
|
1798
|
-
|
|
1701
|
+
i.shots && /* @__PURE__ */ e.jsxs(m, { children: [
|
|
1799
1702
|
/* @__PURE__ */ e.jsx(c, { children: "Total Shots (A / B)" }),
|
|
1800
1703
|
/* @__PURE__ */ e.jsxs(c, { className: "font-mono", children: [
|
|
1801
|
-
|
|
1704
|
+
i.shots.a,
|
|
1802
1705
|
" / ",
|
|
1803
|
-
|
|
1706
|
+
i.shots.b
|
|
1804
1707
|
] })
|
|
1805
1708
|
] }),
|
|
1806
|
-
|
|
1709
|
+
i.noise_context?.noise_p95 && /* @__PURE__ */ e.jsxs(m, { children: [
|
|
1807
1710
|
/* @__PURE__ */ e.jsx(c, { children: "Noise Threshold (p95)" }),
|
|
1808
|
-
/* @__PURE__ */ e.jsx(c, { className: "font-mono", children:
|
|
1711
|
+
/* @__PURE__ */ e.jsx(c, { className: "font-mono", children: i.noise_context.noise_p95.toFixed(6) })
|
|
1809
1712
|
] }),
|
|
1810
|
-
|
|
1713
|
+
i.noise_context?.p_value != null && /* @__PURE__ */ e.jsxs(m, { children: [
|
|
1811
1714
|
/* @__PURE__ */ e.jsx(c, { children: "p-value" }),
|
|
1812
|
-
/* @__PURE__ */ e.jsx(c, { className: "font-mono", children:
|
|
1715
|
+
/* @__PURE__ */ e.jsx(c, { className: "font-mono", children: i.noise_context.p_value.toFixed(3) })
|
|
1813
1716
|
] })
|
|
1814
1717
|
] }) }),
|
|
1815
|
-
|
|
1718
|
+
i.tvd > 0 && i.noise_context && /* @__PURE__ */ e.jsx("p", { className: "text-sm mt-4", children: i.noise_context.p_value != null ? i.noise_context.p_value >= 0.1 ? /* @__PURE__ */ e.jsx("span", { className: "text-success", children: "✓ Consistent with sampling noise — difference is not statistically significant." }) : i.noise_context.p_value >= 0.05 ? /* @__PURE__ */ e.jsxs("span", { className: "text-warning", children: [
|
|
1816
1719
|
"⚠ Borderline (p=",
|
|
1817
|
-
|
|
1720
|
+
i.noise_context.p_value.toFixed(2),
|
|
1818
1721
|
"). Consider increasing shots."
|
|
1819
1722
|
] }) : /* @__PURE__ */ e.jsxs("span", { className: "text-danger", children: [
|
|
1820
1723
|
"✗ Statistically significant difference (p=",
|
|
1821
|
-
|
|
1724
|
+
i.noise_context.p_value.toFixed(2),
|
|
1822
1725
|
") — results show meaningful divergence."
|
|
1823
|
-
] }) :
|
|
1726
|
+
] }) : i.noise_context.noise_ratio != null ? i.noise_context.noise_ratio < 1.5 ? /* @__PURE__ */ e.jsx("span", { className: "text-success", children: "✓ TVD is within expected shot noise range." }) : i.noise_context.noise_ratio < 3 ? /* @__PURE__ */ e.jsxs("span", { className: "text-warning", children: [
|
|
1824
1727
|
"⚠ Ambiguous (",
|
|
1825
|
-
|
|
1728
|
+
i.noise_context.noise_ratio.toFixed(1),
|
|
1826
1729
|
"× expected noise). Consider increasing shots."
|
|
1827
1730
|
] }) : /* @__PURE__ */ e.jsxs("span", { className: "text-danger", children: [
|
|
1828
1731
|
"✗ TVD exceeds expected noise (",
|
|
1829
|
-
|
|
1732
|
+
i.noise_context.noise_ratio.toFixed(1),
|
|
1830
1733
|
"×) — results show meaningful differences."
|
|
1831
1734
|
] }) : null })
|
|
1832
1735
|
] })
|
|
1833
1736
|
] });
|
|
1834
1737
|
}
|
|
1835
1738
|
function Bs() {
|
|
1836
|
-
const [s] =
|
|
1837
|
-
return /* @__PURE__ */ e.jsxs(
|
|
1739
|
+
const [s] = Ce(), n = s.get("a"), t = s.get("b"), a = n && t;
|
|
1740
|
+
return /* @__PURE__ */ e.jsxs(q, { children: [
|
|
1838
1741
|
/* @__PURE__ */ e.jsx("div", { className: "page-header", children: /* @__PURE__ */ e.jsxs("div", { children: [
|
|
1839
1742
|
/* @__PURE__ */ e.jsxs("h1", { className: "page-title", children: [
|
|
1840
1743
|
"Compare Runs",
|
|
1841
|
-
|
|
1744
|
+
a && /* @__PURE__ */ e.jsx(B, { variant: "info", children: "Comparing" })
|
|
1842
1745
|
] }),
|
|
1843
|
-
|
|
1746
|
+
a && /* @__PURE__ */ e.jsx("p", { className: "text-muted text-sm", children: /* @__PURE__ */ e.jsx(M, { to: "/diff", children: "← Select different runs" }) })
|
|
1844
1747
|
] }) }),
|
|
1845
|
-
|
|
1748
|
+
a ? /* @__PURE__ */ e.jsx($s, { runIdA: n, runIdB: t }) : /* @__PURE__ */ e.jsx(Fs, {})
|
|
1846
1749
|
] });
|
|
1847
1750
|
}
|
|
1848
|
-
function
|
|
1849
|
-
const { api: s } =
|
|
1850
|
-
const
|
|
1851
|
-
return d(
|
|
1852
|
-
}),
|
|
1853
|
-
|
|
1854
|
-
u("Please enter a search query");
|
|
1855
|
-
return;
|
|
1856
|
-
}
|
|
1857
|
-
u(""), x();
|
|
1751
|
+
function Is() {
|
|
1752
|
+
const { api: s } = Y(), [n, t] = U(""), [a, d] = U(null), [h, f] = U(!1), { mutate: i, loading: x } = je(async () => {
|
|
1753
|
+
const p = await s.listRuns({ q: n, limit: 100 });
|
|
1754
|
+
return d(p.runs), f(!0), p;
|
|
1755
|
+
}), o = (p) => {
|
|
1756
|
+
p.preventDefault(), n.trim() && i();
|
|
1858
1757
|
};
|
|
1859
|
-
return /* @__PURE__ */ e.jsxs(
|
|
1758
|
+
return /* @__PURE__ */ e.jsxs(q, { children: [
|
|
1860
1759
|
/* @__PURE__ */ e.jsx("div", { className: "page-header", children: /* @__PURE__ */ e.jsx("h1", { className: "page-title", children: "Search Runs" }) }),
|
|
1861
|
-
/* @__PURE__ */ e.jsx(
|
|
1862
|
-
/* @__PURE__ */ e.jsxs(
|
|
1863
|
-
/* @__PURE__ */ e.jsx(
|
|
1760
|
+
/* @__PURE__ */ e.jsx(v, { className: "mb-4", children: /* @__PURE__ */ e.jsxs("form", { onSubmit: o, children: [
|
|
1761
|
+
/* @__PURE__ */ e.jsxs(H, { children: [
|
|
1762
|
+
/* @__PURE__ */ e.jsx(Z, { htmlFor: "q", children: "Query" }),
|
|
1864
1763
|
/* @__PURE__ */ e.jsx(
|
|
1865
|
-
|
|
1764
|
+
Ke,
|
|
1866
1765
|
{
|
|
1867
1766
|
id: "q",
|
|
1868
1767
|
type: "text",
|
|
1869
1768
|
value: n,
|
|
1870
|
-
onChange: (
|
|
1871
|
-
t(R.target.value), u("");
|
|
1872
|
-
},
|
|
1769
|
+
onChange: (p) => t(p.target.value),
|
|
1873
1770
|
placeholder: "metric.fidelity > 0.95 and params.shots = 1000",
|
|
1874
1771
|
className: "font-mono"
|
|
1875
1772
|
}
|
|
1876
1773
|
)
|
|
1877
1774
|
] }),
|
|
1878
|
-
|
|
1879
|
-
|
|
1880
|
-
|
|
1881
|
-
g && /* @__PURE__ */ e.jsx(V, {}),
|
|
1775
|
+
/* @__PURE__ */ e.jsxs("div", { className: "flex gap-2 items-center", children: [
|
|
1776
|
+
/* @__PURE__ */ e.jsxs(k, { type: "submit", variant: "primary", disabled: x || !n.trim(), children: [
|
|
1777
|
+
x && /* @__PURE__ */ e.jsx(V, {}),
|
|
1882
1778
|
"Search"
|
|
1883
1779
|
] }),
|
|
1884
|
-
|
|
1780
|
+
x && /* @__PURE__ */ e.jsx("span", { className: "text-muted text-sm", children: "Searching..." })
|
|
1885
1781
|
] })
|
|
1886
1782
|
] }) }),
|
|
1887
|
-
|
|
1783
|
+
h && a && /* @__PURE__ */ e.jsx(v, { className: "mb-4", children: a.length > 0 ? /* @__PURE__ */ e.jsx(Je, { runs: a }) : /* @__PURE__ */ e.jsx("p", { className: "text-muted text-center py-8", children: "No runs match your query" }) }),
|
|
1888
1784
|
/* @__PURE__ */ e.jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4", children: [
|
|
1889
|
-
/* @__PURE__ */ e.jsxs(
|
|
1890
|
-
/* @__PURE__ */ e.jsx(
|
|
1891
|
-
/* @__PURE__ */ e.jsxs(
|
|
1892
|
-
/* @__PURE__ */ e.jsx(
|
|
1893
|
-
/* @__PURE__ */ e.jsx(
|
|
1894
|
-
/* @__PURE__ */ e.jsx(
|
|
1785
|
+
/* @__PURE__ */ e.jsxs(v, { children: [
|
|
1786
|
+
/* @__PURE__ */ e.jsx(S, { children: /* @__PURE__ */ e.jsx(P, { children: "Query Syntax" }) }),
|
|
1787
|
+
/* @__PURE__ */ e.jsxs(O, { children: [
|
|
1788
|
+
/* @__PURE__ */ e.jsx(Q, { children: /* @__PURE__ */ e.jsxs(m, { children: [
|
|
1789
|
+
/* @__PURE__ */ e.jsx(b, { children: "Field" }),
|
|
1790
|
+
/* @__PURE__ */ e.jsx(b, { children: "Description" })
|
|
1895
1791
|
] }) }),
|
|
1896
|
-
/* @__PURE__ */ e.jsxs(
|
|
1897
|
-
/* @__PURE__ */ e.jsxs(
|
|
1792
|
+
/* @__PURE__ */ e.jsxs(F, { children: [
|
|
1793
|
+
/* @__PURE__ */ e.jsxs(m, { children: [
|
|
1898
1794
|
/* @__PURE__ */ e.jsx(c, { className: "font-mono", children: "params.X" }),
|
|
1899
1795
|
/* @__PURE__ */ e.jsx(c, { children: "Parameter value" })
|
|
1900
1796
|
] }),
|
|
1901
|
-
/* @__PURE__ */ e.jsxs(
|
|
1797
|
+
/* @__PURE__ */ e.jsxs(m, { children: [
|
|
1902
1798
|
/* @__PURE__ */ e.jsx(c, { className: "font-mono", children: "metric.X" }),
|
|
1903
1799
|
/* @__PURE__ */ e.jsx(c, { children: "Metric value" })
|
|
1904
1800
|
] }),
|
|
1905
|
-
/* @__PURE__ */ e.jsxs(
|
|
1801
|
+
/* @__PURE__ */ e.jsxs(m, { children: [
|
|
1906
1802
|
/* @__PURE__ */ e.jsx(c, { className: "font-mono", children: "tags.X" }),
|
|
1907
1803
|
/* @__PURE__ */ e.jsx(c, { children: "Tag value" })
|
|
1908
1804
|
] }),
|
|
1909
|
-
/* @__PURE__ */ e.jsxs(
|
|
1805
|
+
/* @__PURE__ */ e.jsxs(m, { children: [
|
|
1910
1806
|
/* @__PURE__ */ e.jsx(c, { className: "font-mono", children: "status" }),
|
|
1911
1807
|
/* @__PURE__ */ e.jsx(c, { children: "Run status" })
|
|
1912
1808
|
] }),
|
|
1913
|
-
/* @__PURE__ */ e.jsxs(
|
|
1809
|
+
/* @__PURE__ */ e.jsxs(m, { children: [
|
|
1914
1810
|
/* @__PURE__ */ e.jsx(c, { className: "font-mono", children: "project" }),
|
|
1915
1811
|
/* @__PURE__ */ e.jsx(c, { children: "Project name" })
|
|
1916
1812
|
] }),
|
|
1917
|
-
/* @__PURE__ */ e.jsxs(
|
|
1813
|
+
/* @__PURE__ */ e.jsxs(m, { children: [
|
|
1918
1814
|
/* @__PURE__ */ e.jsx(c, { className: "font-mono", children: "backend" }),
|
|
1919
1815
|
/* @__PURE__ */ e.jsx(c, { children: "Backend name" })
|
|
1920
1816
|
] })
|
|
1921
1817
|
] })
|
|
1922
1818
|
] })
|
|
1923
1819
|
] }),
|
|
1924
|
-
/* @__PURE__ */ e.jsxs(
|
|
1925
|
-
/* @__PURE__ */ e.jsx(
|
|
1926
|
-
/* @__PURE__ */ e.jsxs(
|
|
1927
|
-
/* @__PURE__ */ e.jsx(
|
|
1928
|
-
/* @__PURE__ */ e.jsx(
|
|
1929
|
-
/* @__PURE__ */ e.jsx(
|
|
1820
|
+
/* @__PURE__ */ e.jsxs(v, { children: [
|
|
1821
|
+
/* @__PURE__ */ e.jsx(S, { children: /* @__PURE__ */ e.jsx(P, { children: "Operators" }) }),
|
|
1822
|
+
/* @__PURE__ */ e.jsxs(O, { children: [
|
|
1823
|
+
/* @__PURE__ */ e.jsx(Q, { children: /* @__PURE__ */ e.jsxs(m, { children: [
|
|
1824
|
+
/* @__PURE__ */ e.jsx(b, { children: "Operator" }),
|
|
1825
|
+
/* @__PURE__ */ e.jsx(b, { children: "Description" })
|
|
1930
1826
|
] }) }),
|
|
1931
|
-
/* @__PURE__ */ e.jsxs(
|
|
1932
|
-
/* @__PURE__ */ e.jsxs(
|
|
1827
|
+
/* @__PURE__ */ e.jsxs(F, { children: [
|
|
1828
|
+
/* @__PURE__ */ e.jsxs(m, { children: [
|
|
1933
1829
|
/* @__PURE__ */ e.jsx(c, { className: "font-mono", children: "=" }),
|
|
1934
1830
|
/* @__PURE__ */ e.jsx(c, { children: "Equals" })
|
|
1935
1831
|
] }),
|
|
1936
|
-
/* @__PURE__ */ e.jsxs(
|
|
1832
|
+
/* @__PURE__ */ e.jsxs(m, { children: [
|
|
1937
1833
|
/* @__PURE__ */ e.jsx(c, { className: "font-mono", children: "!=" }),
|
|
1938
1834
|
/* @__PURE__ */ e.jsx(c, { children: "Not equals" })
|
|
1939
1835
|
] }),
|
|
1940
|
-
/* @__PURE__ */ e.jsxs(
|
|
1836
|
+
/* @__PURE__ */ e.jsxs(m, { children: [
|
|
1941
1837
|
/* @__PURE__ */ e.jsx(c, { className: "font-mono", children: ">" }),
|
|
1942
1838
|
/* @__PURE__ */ e.jsx(c, { children: "Greater than" })
|
|
1943
1839
|
] }),
|
|
1944
|
-
/* @__PURE__ */ e.jsxs(
|
|
1840
|
+
/* @__PURE__ */ e.jsxs(m, { children: [
|
|
1945
1841
|
/* @__PURE__ */ e.jsx(c, { className: "font-mono", children: ">=" }),
|
|
1946
1842
|
/* @__PURE__ */ e.jsx(c, { children: "Greater or equal" })
|
|
1947
1843
|
] }),
|
|
1948
|
-
/* @__PURE__ */ e.jsxs(
|
|
1844
|
+
/* @__PURE__ */ e.jsxs(m, { children: [
|
|
1949
1845
|
/* @__PURE__ */ e.jsx(c, { className: "font-mono", children: "<" }),
|
|
1950
1846
|
/* @__PURE__ */ e.jsx(c, { children: "Less than" })
|
|
1951
1847
|
] }),
|
|
1952
|
-
/* @__PURE__ */ e.jsxs(
|
|
1848
|
+
/* @__PURE__ */ e.jsxs(m, { children: [
|
|
1953
1849
|
/* @__PURE__ */ e.jsx(c, { className: "font-mono", children: "<=" }),
|
|
1954
1850
|
/* @__PURE__ */ e.jsx(c, { children: "Less or equal" })
|
|
1955
1851
|
] }),
|
|
1956
|
-
/* @__PURE__ */ e.jsxs(
|
|
1852
|
+
/* @__PURE__ */ e.jsxs(m, { children: [
|
|
1957
1853
|
/* @__PURE__ */ e.jsx(c, { className: "font-mono", children: "~" }),
|
|
1958
1854
|
/* @__PURE__ */ e.jsx(c, { children: "Contains" })
|
|
1959
1855
|
] }),
|
|
1960
|
-
/* @__PURE__ */ e.jsxs(
|
|
1856
|
+
/* @__PURE__ */ e.jsxs(m, { children: [
|
|
1961
1857
|
/* @__PURE__ */ e.jsx(c, { className: "font-mono", children: "and" }),
|
|
1962
1858
|
/* @__PURE__ */ e.jsx(c, { children: "Combine conditions" })
|
|
1963
1859
|
] })
|
|
@@ -1965,26 +1861,26 @@ function Ls() {
|
|
|
1965
1861
|
] })
|
|
1966
1862
|
] })
|
|
1967
1863
|
] }),
|
|
1968
|
-
/* @__PURE__ */ e.jsxs(
|
|
1969
|
-
/* @__PURE__ */ e.jsx(
|
|
1970
|
-
/* @__PURE__ */ e.jsx(
|
|
1971
|
-
/* @__PURE__ */ e.jsxs(
|
|
1864
|
+
/* @__PURE__ */ e.jsxs(v, { className: "mt-4", children: [
|
|
1865
|
+
/* @__PURE__ */ e.jsx(S, { children: /* @__PURE__ */ e.jsx(P, { children: "Examples" }) }),
|
|
1866
|
+
/* @__PURE__ */ e.jsx(O, { children: /* @__PURE__ */ e.jsxs(F, { children: [
|
|
1867
|
+
/* @__PURE__ */ e.jsxs(m, { children: [
|
|
1972
1868
|
/* @__PURE__ */ e.jsx(c, { className: "font-mono", children: "metric.fidelity > 0.95" }),
|
|
1973
1869
|
/* @__PURE__ */ e.jsx(c, { children: "High fidelity runs" })
|
|
1974
1870
|
] }),
|
|
1975
|
-
/* @__PURE__ */ e.jsxs(
|
|
1871
|
+
/* @__PURE__ */ e.jsxs(m, { children: [
|
|
1976
1872
|
/* @__PURE__ */ e.jsx(c, { className: "font-mono", children: "params.shots = 1000 and status = FINISHED" }),
|
|
1977
1873
|
/* @__PURE__ */ e.jsx(c, { children: "Finished runs with 1000 shots" })
|
|
1978
1874
|
] }),
|
|
1979
|
-
/* @__PURE__ */ e.jsxs(
|
|
1875
|
+
/* @__PURE__ */ e.jsxs(m, { children: [
|
|
1980
1876
|
/* @__PURE__ */ e.jsx(c, { className: "font-mono", children: "tags.backend ~ ibm" }),
|
|
1981
1877
|
/* @__PURE__ */ e.jsx(c, { children: "Runs with IBM backends" })
|
|
1982
1878
|
] }),
|
|
1983
|
-
/* @__PURE__ */ e.jsxs(
|
|
1879
|
+
/* @__PURE__ */ e.jsxs(m, { children: [
|
|
1984
1880
|
/* @__PURE__ */ e.jsx(c, { className: "font-mono", children: "metric.error < 0.01" }),
|
|
1985
1881
|
/* @__PURE__ */ e.jsx(c, { children: "Low error runs" })
|
|
1986
1882
|
] }),
|
|
1987
|
-
/* @__PURE__ */ e.jsxs(
|
|
1883
|
+
/* @__PURE__ */ e.jsxs(m, { children: [
|
|
1988
1884
|
/* @__PURE__ */ e.jsx(c, { className: "font-mono", children: "project = vqe and metric.energy < -2.0" }),
|
|
1989
1885
|
/* @__PURE__ */ e.jsx(c, { children: "VQE runs with low energy" })
|
|
1990
1886
|
] })
|
|
@@ -1992,169 +1888,144 @@ function Ls() {
|
|
|
1992
1888
|
] })
|
|
1993
1889
|
] });
|
|
1994
1890
|
}
|
|
1995
|
-
function
|
|
1996
|
-
const { runId: s, index: n } =
|
|
1997
|
-
|
|
1998
|
-
|
|
1999
|
-
|
|
2000
|
-
|
|
2001
|
-
|
|
2002
|
-
|
|
2003
|
-
const g = async () => {
|
|
2004
|
-
try {
|
|
2005
|
-
const P = i.getArtifactDownloadUrl(s, t), le = await fetch(P);
|
|
2006
|
-
if (!le.ok) throw new Error("Download failed");
|
|
2007
|
-
const oe = await le.blob(), Z = document.createElement("a");
|
|
2008
|
-
Z.href = URL.createObjectURL(oe), Z.download = f?.kind || `artifact-${t}`, Z.click(), URL.revokeObjectURL(Z.href), x({ message: "Download started", variant: "success" });
|
|
2009
|
-
} catch {
|
|
2010
|
-
x({ message: "Download failed", variant: "error" });
|
|
2011
|
-
}
|
|
2012
|
-
};
|
|
2013
|
-
if (m)
|
|
2014
|
-
return /* @__PURE__ */ e.jsx(G, { children: /* @__PURE__ */ e.jsx("div", { className: "flex justify-center py-12", children: /* @__PURE__ */ e.jsx(V, {}) }) });
|
|
2015
|
-
if (a || !o)
|
|
2016
|
-
return /* @__PURE__ */ e.jsx(G, { children: /* @__PURE__ */ e.jsx(N, { children: /* @__PURE__ */ e.jsx(ce, { message: "Artifact not found", hint: a?.message }) }) });
|
|
2017
|
-
const { artifact: f, size: R, content: K, content_json: w, preview_available: Q, error: J } = o, H = 10 * 1024 * 1024;
|
|
2018
|
-
return /* @__PURE__ */ e.jsxs(G, { children: [
|
|
1891
|
+
function Ls() {
|
|
1892
|
+
const { runId: s, index: n } = Ye(), t = parseInt(n, 10), { api: a } = Y(), { data: d } = Pr(s), { data: h, loading: f, error: i } = bs(s, t);
|
|
1893
|
+
if (f)
|
|
1894
|
+
return /* @__PURE__ */ e.jsx(q, { children: /* @__PURE__ */ e.jsx("div", { className: "flex justify-center py-12", children: /* @__PURE__ */ e.jsx(V, {}) }) });
|
|
1895
|
+
if (i || !h)
|
|
1896
|
+
return /* @__PURE__ */ e.jsx(q, { children: /* @__PURE__ */ e.jsx(v, { children: /* @__PURE__ */ e.jsx(te, { message: "Artifact not found", hint: i?.message }) }) });
|
|
1897
|
+
const { artifact: x, size: o, content: p, content_json: $, preview_available: _, error: G } = h, J = 10 * 1024 * 1024;
|
|
1898
|
+
return /* @__PURE__ */ e.jsxs(q, { children: [
|
|
2019
1899
|
/* @__PURE__ */ e.jsx(
|
|
2020
|
-
|
|
1900
|
+
pe,
|
|
2021
1901
|
{
|
|
2022
|
-
title:
|
|
1902
|
+
title: x.kind,
|
|
2023
1903
|
subtitle: /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
|
|
2024
1904
|
"← Back to run ",
|
|
2025
|
-
/* @__PURE__ */ e.jsxs(
|
|
2026
|
-
|
|
1905
|
+
/* @__PURE__ */ e.jsxs(M, { to: `/runs/${s}`, children: [
|
|
1906
|
+
K(s),
|
|
2027
1907
|
d?.run_name && ` — ${d.run_name}`
|
|
2028
1908
|
] })
|
|
2029
1909
|
] }),
|
|
2030
|
-
actions: /* @__PURE__ */ e.jsx(
|
|
1910
|
+
actions: /* @__PURE__ */ e.jsx("a", { href: a.getArtifactDownloadUrl(s, t), children: /* @__PURE__ */ e.jsx(k, { variant: "primary", children: "Download" }) })
|
|
2031
1911
|
}
|
|
2032
1912
|
),
|
|
2033
|
-
/* @__PURE__ */ e.jsx(
|
|
2034
|
-
{ label: "Kind", value: /* @__PURE__ */ e.jsx("span", { className: "font-mono", children:
|
|
2035
|
-
{ label: "Role", value: /* @__PURE__ */ e.jsx(B, { variant: "gray", children:
|
|
2036
|
-
{ label: "Media Type", value:
|
|
2037
|
-
{ label: "Digest", value: /* @__PURE__ */ e.jsx("span", { className: "font-mono text-sm", children:
|
|
2038
|
-
{ label: "Size", value:
|
|
1913
|
+
/* @__PURE__ */ e.jsx(v, { className: "mb-4", children: /* @__PURE__ */ e.jsx(Ge, { items: [
|
|
1914
|
+
{ label: "Kind", value: /* @__PURE__ */ e.jsx("span", { className: "font-mono", children: x.kind }) },
|
|
1915
|
+
{ label: "Role", value: /* @__PURE__ */ e.jsx(B, { variant: "gray", children: x.role }) },
|
|
1916
|
+
{ label: "Media Type", value: x.media_type },
|
|
1917
|
+
{ label: "Digest", value: /* @__PURE__ */ e.jsx("span", { className: "font-mono text-sm", children: x.digest }) },
|
|
1918
|
+
{ label: "Size", value: Pe(o) }
|
|
2039
1919
|
] }) }),
|
|
2040
|
-
/* @__PURE__ */ e.jsxs(
|
|
2041
|
-
/* @__PURE__ */ e.jsx(
|
|
2042
|
-
|
|
1920
|
+
/* @__PURE__ */ e.jsxs(v, { children: [
|
|
1921
|
+
/* @__PURE__ */ e.jsx(S, { children: /* @__PURE__ */ e.jsx(P, { children: "Content" }) }),
|
|
1922
|
+
G ? /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
|
|
2043
1923
|
/* @__PURE__ */ e.jsxs("p", { className: "text-sm text-danger", children: [
|
|
2044
|
-
"Error loading artifact: ",
|
|
2045
|
-
|
|
1924
|
+
"⚠ Error loading artifact: ",
|
|
1925
|
+
G
|
|
2046
1926
|
] }),
|
|
2047
|
-
/* @__PURE__ */ e.jsx("p", { className: "text-muted mt-2", children: /* @__PURE__ */ e.jsx(
|
|
2048
|
-
] }) :
|
|
1927
|
+
/* @__PURE__ */ e.jsx("p", { className: "text-muted mt-2", children: /* @__PURE__ */ e.jsx("a", { href: a.getArtifactDownloadUrl(s, t), children: /* @__PURE__ */ e.jsx(k, { variant: "primary", children: "Download to view" }) }) })
|
|
1928
|
+
] }) : _ ? $ ? /* @__PURE__ */ e.jsx("pre", { children: _s($) }) : p ? /* @__PURE__ */ e.jsx("pre", { children: p }) : /* @__PURE__ */ e.jsxs("p", { className: "text-muted", children: [
|
|
2049
1929
|
"Binary content (",
|
|
2050
|
-
|
|
1930
|
+
Pe(o),
|
|
2051
1931
|
") — download to view"
|
|
2052
1932
|
] }) : /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
|
|
2053
1933
|
/* @__PURE__ */ e.jsxs("p", { className: "text-muted", children: [
|
|
2054
1934
|
/* @__PURE__ */ e.jsx("strong", { children: "Artifact too large for preview" }),
|
|
2055
1935
|
" (",
|
|
2056
|
-
|
|
1936
|
+
Pe(o),
|
|
2057
1937
|
" exceeds ",
|
|
2058
|
-
|
|
1938
|
+
Pe(J),
|
|
2059
1939
|
" limit)"
|
|
2060
1940
|
] }),
|
|
2061
1941
|
/* @__PURE__ */ e.jsx("p", { className: "text-sm text-muted mt-2", children: "Download the artifact to view its contents." }),
|
|
2062
|
-
/* @__PURE__ */ e.jsx("p", { className: "mt-4", children: /* @__PURE__ */ e.jsx(
|
|
1942
|
+
/* @__PURE__ */ e.jsx("p", { className: "mt-4", children: /* @__PURE__ */ e.jsx("a", { href: a.getArtifactDownloadUrl(s, t), children: /* @__PURE__ */ e.jsx(k, { variant: "primary", children: "Download" }) }) })
|
|
2063
1943
|
] })
|
|
2064
|
-
] })
|
|
2065
|
-
u && /* @__PURE__ */ e.jsx(
|
|
2066
|
-
Be,
|
|
2067
|
-
{
|
|
2068
|
-
message: u.message,
|
|
2069
|
-
variant: u.variant,
|
|
2070
|
-
visible: !!u,
|
|
2071
|
-
onClose: () => x(null)
|
|
2072
|
-
}
|
|
2073
|
-
)
|
|
1944
|
+
] })
|
|
2074
1945
|
] });
|
|
2075
1946
|
}
|
|
2076
1947
|
const Us = [
|
|
2077
|
-
{ path: "/", element: /* @__PURE__ */ e.jsx(
|
|
2078
|
-
{ path: "/runs", element: /* @__PURE__ */ e.jsx(
|
|
1948
|
+
{ path: "/", element: /* @__PURE__ */ e.jsx(ls, { to: "/runs", replace: !0 }) },
|
|
1949
|
+
{ path: "/runs", element: /* @__PURE__ */ e.jsx(Ps, {}) },
|
|
2079
1950
|
{ path: "/runs/:runId", element: /* @__PURE__ */ e.jsx(Ds, {}) },
|
|
2080
|
-
{ path: "/runs/:runId/artifacts/:index", element: /* @__PURE__ */ e.jsx(
|
|
1951
|
+
{ path: "/runs/:runId/artifacts/:index", element: /* @__PURE__ */ e.jsx(Ls, {}) },
|
|
2081
1952
|
{ path: "/projects", element: /* @__PURE__ */ e.jsx(ks, {}) },
|
|
2082
1953
|
{ path: "/groups", element: /* @__PURE__ */ e.jsx(As, {}) },
|
|
2083
|
-
{ path: "/groups/:groupId", element: /* @__PURE__ */ e.jsx(
|
|
1954
|
+
{ path: "/groups/:groupId", element: /* @__PURE__ */ e.jsx(Os, {}) },
|
|
2084
1955
|
{ path: "/diff", element: /* @__PURE__ */ e.jsx(Bs, {}) },
|
|
2085
|
-
{ path: "/search", element: /* @__PURE__ */ e.jsx(
|
|
1956
|
+
{ path: "/search", element: /* @__PURE__ */ e.jsx(Is, {}) }
|
|
2086
1957
|
];
|
|
2087
|
-
function
|
|
2088
|
-
return
|
|
1958
|
+
function kr(s = []) {
|
|
1959
|
+
return os([...Us, ...s]);
|
|
2089
1960
|
}
|
|
2090
|
-
const Ms =
|
|
1961
|
+
const Ms = kr();
|
|
2091
1962
|
function zs({ additionalRoutes: s, ...n }) {
|
|
2092
|
-
const t = s?.length ?
|
|
2093
|
-
return /* @__PURE__ */ e.jsx(
|
|
1963
|
+
const t = s?.length ? kr(s) : Ms;
|
|
1964
|
+
return /* @__PURE__ */ e.jsx(js, { ...n, children: /* @__PURE__ */ e.jsx(ds, { router: t }) });
|
|
2094
1965
|
}
|
|
2095
1966
|
export {
|
|
2096
1967
|
Ys as Alert,
|
|
2097
|
-
|
|
2098
|
-
|
|
1968
|
+
ms as ApiClient,
|
|
1969
|
+
fe as ApiError,
|
|
2099
1970
|
zs as App,
|
|
2100
|
-
|
|
2101
|
-
|
|
1971
|
+
js as AppProvider,
|
|
1972
|
+
Ls as ArtifactPage,
|
|
2102
1973
|
B as Badge,
|
|
2103
|
-
|
|
2104
|
-
|
|
2105
|
-
|
|
2106
|
-
|
|
1974
|
+
k as Button,
|
|
1975
|
+
v as Card,
|
|
1976
|
+
S as CardHeader,
|
|
1977
|
+
P as CardTitle,
|
|
2107
1978
|
Bs as DiffPage,
|
|
2108
|
-
|
|
2109
|
-
|
|
2110
|
-
|
|
2111
|
-
|
|
1979
|
+
te as EmptyState,
|
|
1980
|
+
H as FormGroup,
|
|
1981
|
+
Cr as FormRow,
|
|
1982
|
+
Os as GroupDetailPage,
|
|
2112
1983
|
As as GroupsPage,
|
|
2113
|
-
|
|
2114
|
-
|
|
2115
|
-
|
|
2116
|
-
|
|
2117
|
-
|
|
2118
|
-
|
|
2119
|
-
|
|
2120
|
-
|
|
1984
|
+
Cs as GroupsTable,
|
|
1985
|
+
Ke as Input,
|
|
1986
|
+
Ge as KVList,
|
|
1987
|
+
Z as Label,
|
|
1988
|
+
q as Layout,
|
|
1989
|
+
Vs as LayoutConfigProvider,
|
|
1990
|
+
Es as Modal,
|
|
1991
|
+
pe as PageHeader,
|
|
2121
1992
|
ks as ProjectsPage,
|
|
2122
|
-
|
|
1993
|
+
Ts as ProjectsTable,
|
|
2123
1994
|
Ds as RunDetailPage,
|
|
2124
|
-
|
|
2125
|
-
|
|
2126
|
-
|
|
2127
|
-
|
|
1995
|
+
Ps as RunsPage,
|
|
1996
|
+
Je as RunsTable,
|
|
1997
|
+
Is as SearchPage,
|
|
1998
|
+
se as Select,
|
|
2128
1999
|
V as Spinner,
|
|
2129
|
-
|
|
2130
|
-
|
|
2131
|
-
|
|
2000
|
+
Dr as StatusBadge,
|
|
2001
|
+
O as Table,
|
|
2002
|
+
F as TableBody,
|
|
2132
2003
|
c as TableCell,
|
|
2133
|
-
|
|
2134
|
-
|
|
2135
|
-
|
|
2136
|
-
|
|
2137
|
-
|
|
2138
|
-
|
|
2139
|
-
|
|
2004
|
+
Q as TableHead,
|
|
2005
|
+
b as TableHeader,
|
|
2006
|
+
m as TableRow,
|
|
2007
|
+
Ss as Toast,
|
|
2008
|
+
fs as api,
|
|
2009
|
+
Ws as buildUrl,
|
|
2010
|
+
A as cn,
|
|
2140
2011
|
Us as coreRoutes,
|
|
2141
|
-
|
|
2142
|
-
|
|
2143
|
-
|
|
2144
|
-
|
|
2012
|
+
kr as createRouter,
|
|
2013
|
+
Pe as formatBytes,
|
|
2014
|
+
Ns as formatNumber,
|
|
2015
|
+
_s as jsonPretty,
|
|
2145
2016
|
Ms as router,
|
|
2146
|
-
|
|
2147
|
-
|
|
2148
|
-
|
|
2149
|
-
|
|
2150
|
-
|
|
2151
|
-
|
|
2152
|
-
|
|
2153
|
-
|
|
2154
|
-
|
|
2155
|
-
|
|
2156
|
-
|
|
2157
|
-
|
|
2017
|
+
qe as shortDigest,
|
|
2018
|
+
K as shortId,
|
|
2019
|
+
Te as timeAgo,
|
|
2020
|
+
ys as truncate,
|
|
2021
|
+
Y as useApp,
|
|
2022
|
+
bs as useArtifact,
|
|
2023
|
+
vs as useDiff,
|
|
2024
|
+
gs as useGroup,
|
|
2025
|
+
ps as useGroups,
|
|
2026
|
+
ws as useLayoutConfig,
|
|
2027
|
+
je as useMutation,
|
|
2028
|
+
ze as useProjects,
|
|
2158
2029
|
Pr as useRun,
|
|
2159
|
-
|
|
2030
|
+
Sr as useRuns
|
|
2160
2031
|
};
|