@cartanova/qgrid-cli 2.11.0 → 2.11.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundle/web-dist/client/assets/index-C96h3feE.js +32 -0
- package/bundle/web-dist/client/assets/logs-DBM6U0QD.js +1 -0
- package/bundle/web-dist/client/assets/monit-BBjXa7vB.js +1 -0
- package/bundle/web-dist/client/assets/plus-BsQdY7PS.js +1 -0
- package/bundle/web-dist/client/assets/refresh-cw-D9IUmT23.js +1 -0
- package/bundle/web-dist/client/assets/request-model-Bpp_rkK8.js +1 -0
- package/bundle/web-dist/client/assets/routes-Crz_PQzi.js +5 -0
- package/bundle/web-dist/client/assets/{services.generated-CefiDXEv.js → services.generated-B5lc3aIC.js} +1 -1
- package/bundle/web-dist/client/assets/settings-Cdwm3OBB.js +1 -0
- package/bundle/web-dist/client/assets/show-DBUhALT1.js +2 -0
- package/bundle/web-dist/client/assets/tokens-CVQAVJTo.js +1 -0
- package/bundle/web-dist/client/assets/use-oauth-login-flow-BfxYI4Oh.js +1 -0
- package/bundle/web-dist/client/assets/use-update-token-mutation-qKBC2sn7.js +1 -0
- package/bundle/web-dist/client/assets/vendor-react-DH4kUfK2.js +9 -0
- package/bundle/web-dist/client/assets/vendor-tanstack-DRPs09ai.js +1 -0
- package/bundle/web-dist/client/index.html +4 -4
- package/bundle/web-dist/server/assets/{lazyRouteComponent-D8iTIHyn.js → lazyRouteComponent-AKiHfZWp.js} +2 -2
- package/bundle/web-dist/server/assets/logs-B7QmGJq3.js +513 -0
- package/bundle/web-dist/server/assets/{monit-B2hqorPe.js → monit-DFt7x3bh.js} +117 -375
- package/bundle/web-dist/server/assets/plus-DaYQRpBt.js +19 -0
- package/bundle/web-dist/server/assets/{react-dom-BIYQzBqG.js → react-dom-Cv23mm1K.js} +1 -1
- package/bundle/web-dist/server/assets/refresh-cw-BpXNsAy-.js +23 -0
- package/bundle/web-dist/server/assets/{request-model-I6OdODSH.js → request-model-eHE6YbaF.js} +6 -15
- package/bundle/web-dist/server/assets/{routes-B95YlUv2.js → routes-_Y-PJfgO.js} +203 -679
- package/bundle/web-dist/server/assets/{services.generated-DQATJ6qf.js → services.generated-CMJ8AHbO.js} +3796 -4012
- package/bundle/web-dist/server/assets/settings-JwJKxn2e.js +461 -0
- package/bundle/web-dist/server/assets/{show-Bxaj3rhH.js → show-BEv6z1v_.js} +368 -1270
- package/bundle/web-dist/server/assets/tokens-CNT4mI-f.js +560 -0
- package/bundle/web-dist/server/assets/{use-oauth-login-flow-CKDHgc3U.js → use-oauth-login-flow-jkAkT3X6.js} +16 -50
- package/bundle/web-dist/server/assets/{use-update-token-mutation-BEbgOzaa.js → use-update-token-mutation-Sm6kh02m.js} +1 -1
- package/bundle/web-dist/server/entry-server.generated.js +1130 -2626
- package/package.json +1 -1
- package/bundle/web-dist/client/assets/index-BA7uQ-6c.js +0 -31
- package/bundle/web-dist/client/assets/logs-C47OJGEI.js +0 -1
- package/bundle/web-dist/client/assets/monit-BS9no0dU.js +0 -4
- package/bundle/web-dist/client/assets/plus-sdACTfH0.js +0 -1
- package/bundle/web-dist/client/assets/refresh-cw-CY8o_1cT.js +0 -1
- package/bundle/web-dist/client/assets/request-model-BRtFuZvj.js +0 -1
- package/bundle/web-dist/client/assets/routes-kqgkUxE8.js +0 -5
- package/bundle/web-dist/client/assets/settings-DNDvFGSw.js +0 -1
- package/bundle/web-dist/client/assets/show-u8Np69q3.js +0 -2
- package/bundle/web-dist/client/assets/tokens-QvP410NW.js +0 -1
- package/bundle/web-dist/client/assets/use-oauth-login-flow-Bzdh28Ws.js +0 -1
- package/bundle/web-dist/client/assets/use-update-token-mutation-CfJKaxmR.js +0 -1
- package/bundle/web-dist/client/assets/vendor-react-CUFFrVN9.js +0 -244
- package/bundle/web-dist/client/assets/vendor-tanstack-Bf_jag9G.js +0 -1
- package/bundle/web-dist/server/assets/logs-B3OTd9hy.js +0 -825
- package/bundle/web-dist/server/assets/plus-DwG7h9kq.js +0 -28
- package/bundle/web-dist/server/assets/refresh-cw-mMBkwOq0.js +0 -44
- package/bundle/web-dist/server/assets/settings-C3gbGk0m.js +0 -830
- package/bundle/web-dist/server/assets/tokens-CZjH3cB7.js +0 -1038
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { a as Link } from "./lazyRouteComponent-
|
|
1
|
+
import { $ as __toESM, C as number, E as union, M as require_jsx_runtime, N as require_react, S as looseObject, T as string, X as __commonJSMin, b as json, h as array, i as RequestLogStepService, k as useQuery, l as isSonamuError, r as RequestLogService, w as object } from "./services.generated-CMJ8AHbO.js";
|
|
2
|
+
import { a as Link } from "./lazyRouteComponent-AKiHfZWp.js";
|
|
3
3
|
import { c as remarkGfm, l as Markdown, o as lucideX, t as Route } from "../entry-server.generated.js";
|
|
4
4
|
import { n as formatMicroUsd, t as cacheHitRate } from "./cost-BC9yzyA9.js";
|
|
5
|
-
import { n as lucideZap, t as requestModelDisplay } from "./request-model-
|
|
5
|
+
import { n as lucideZap, t as requestModelDisplay } from "./request-model-eHE6YbaF.js";
|
|
6
6
|
//#region ../../node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/extends.js
|
|
7
7
|
var require_extends = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
8
8
|
function _extends() {
|
|
@@ -1835,130 +1835,80 @@ var lightTheme = {
|
|
|
1835
1835
|
};
|
|
1836
1836
|
//#endregion
|
|
1837
1837
|
//#region ~icons/lucide/arrow-left.jsx
|
|
1838
|
-
var
|
|
1839
|
-
var _jsxFileName$4 = "~icons/lucide/arrow-left.jsx";
|
|
1840
|
-
var lucideArrowLeft = (props) => /* @__PURE__ */ (0, import_jsx_dev_runtime.jsxDEV)("svg", {
|
|
1838
|
+
var lucideArrowLeft = (props) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("svg", {
|
|
1841
1839
|
viewBox: "0 0 24 24",
|
|
1842
1840
|
width: "1.2em",
|
|
1843
1841
|
height: "1.2em",
|
|
1844
1842
|
...props,
|
|
1845
|
-
children: /* @__PURE__ */ (0,
|
|
1843
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", {
|
|
1846
1844
|
fill: "none",
|
|
1847
1845
|
stroke: "currentColor",
|
|
1848
1846
|
strokeLinecap: "round",
|
|
1849
1847
|
strokeLinejoin: "round",
|
|
1850
1848
|
strokeWidth: 2,
|
|
1851
1849
|
d: "m12 19l-7-7l7-7m7 7H5"
|
|
1852
|
-
}
|
|
1853
|
-
|
|
1854
|
-
lineNumber: 2,
|
|
1855
|
-
columnNumber: 99
|
|
1856
|
-
}, void 0)
|
|
1857
|
-
}, void 0, false, {
|
|
1858
|
-
fileName: _jsxFileName$4,
|
|
1859
|
-
lineNumber: 2,
|
|
1860
|
-
columnNumber: 34
|
|
1861
|
-
}, void 0);
|
|
1850
|
+
})
|
|
1851
|
+
});
|
|
1862
1852
|
//#endregion
|
|
1863
1853
|
//#region ~icons/lucide/check.jsx
|
|
1864
|
-
var
|
|
1865
|
-
var lucideCheck = (props) => /* @__PURE__ */ (0, import_jsx_dev_runtime.jsxDEV)("svg", {
|
|
1854
|
+
var lucideCheck = (props) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("svg", {
|
|
1866
1855
|
viewBox: "0 0 24 24",
|
|
1867
1856
|
width: "1.2em",
|
|
1868
1857
|
height: "1.2em",
|
|
1869
1858
|
...props,
|
|
1870
|
-
children: /* @__PURE__ */ (0,
|
|
1859
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", {
|
|
1871
1860
|
fill: "none",
|
|
1872
1861
|
stroke: "currentColor",
|
|
1873
1862
|
strokeLinecap: "round",
|
|
1874
1863
|
strokeLinejoin: "round",
|
|
1875
1864
|
strokeWidth: 2,
|
|
1876
1865
|
d: "M20 6L9 17l-5-5"
|
|
1877
|
-
}
|
|
1878
|
-
|
|
1879
|
-
lineNumber: 2,
|
|
1880
|
-
columnNumber: 95
|
|
1881
|
-
}, void 0)
|
|
1882
|
-
}, void 0, false, {
|
|
1883
|
-
fileName: _jsxFileName$3,
|
|
1884
|
-
lineNumber: 2,
|
|
1885
|
-
columnNumber: 30
|
|
1886
|
-
}, void 0);
|
|
1866
|
+
})
|
|
1867
|
+
});
|
|
1887
1868
|
//#endregion
|
|
1888
1869
|
//#region ~icons/lucide/chevron-down.jsx
|
|
1889
|
-
var
|
|
1890
|
-
var lucideChevronDown = (props) => /* @__PURE__ */ (0, import_jsx_dev_runtime.jsxDEV)("svg", {
|
|
1870
|
+
var lucideChevronDown = (props) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("svg", {
|
|
1891
1871
|
viewBox: "0 0 24 24",
|
|
1892
1872
|
width: "1.2em",
|
|
1893
1873
|
height: "1.2em",
|
|
1894
1874
|
...props,
|
|
1895
|
-
children: /* @__PURE__ */ (0,
|
|
1875
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", {
|
|
1896
1876
|
fill: "none",
|
|
1897
1877
|
stroke: "currentColor",
|
|
1898
1878
|
strokeLinecap: "round",
|
|
1899
1879
|
strokeLinejoin: "round",
|
|
1900
1880
|
strokeWidth: 2,
|
|
1901
1881
|
d: "m6 9l6 6l6-6"
|
|
1902
|
-
}
|
|
1903
|
-
|
|
1904
|
-
lineNumber: 2,
|
|
1905
|
-
columnNumber: 101
|
|
1906
|
-
}, void 0)
|
|
1907
|
-
}, void 0, false, {
|
|
1908
|
-
fileName: _jsxFileName$2,
|
|
1909
|
-
lineNumber: 2,
|
|
1910
|
-
columnNumber: 36
|
|
1911
|
-
}, void 0);
|
|
1882
|
+
})
|
|
1883
|
+
});
|
|
1912
1884
|
//#endregion
|
|
1913
1885
|
//#region ~icons/lucide/copy.jsx
|
|
1914
|
-
var
|
|
1915
|
-
var lucideCopy = (props) => /* @__PURE__ */ (0, import_jsx_dev_runtime.jsxDEV)("svg", {
|
|
1886
|
+
var lucideCopy = (props) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("svg", {
|
|
1916
1887
|
viewBox: "0 0 24 24",
|
|
1917
1888
|
width: "1.2em",
|
|
1918
1889
|
height: "1.2em",
|
|
1919
1890
|
...props,
|
|
1920
|
-
children: /* @__PURE__ */ (0,
|
|
1891
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("g", {
|
|
1921
1892
|
fill: "none",
|
|
1922
1893
|
stroke: "currentColor",
|
|
1923
1894
|
strokeLinecap: "round",
|
|
1924
1895
|
strokeLinejoin: "round",
|
|
1925
1896
|
strokeWidth: 2,
|
|
1926
|
-
children: [/* @__PURE__ */ (0,
|
|
1897
|
+
children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("rect", {
|
|
1927
1898
|
width: 14,
|
|
1928
1899
|
height: 14,
|
|
1929
1900
|
x: 8,
|
|
1930
1901
|
y: 8,
|
|
1931
1902
|
rx: 2,
|
|
1932
1903
|
ry: 2
|
|
1933
|
-
},
|
|
1934
|
-
|
|
1935
|
-
|
|
1936
|
-
columnNumber: 192
|
|
1937
|
-
}, void 0), /* @__PURE__ */ (0, import_jsx_dev_runtime.jsxDEV)("path", { d: "M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2" }, void 0, false, {
|
|
1938
|
-
fileName: _jsxFileName$1,
|
|
1939
|
-
lineNumber: 2,
|
|
1940
|
-
columnNumber: 249
|
|
1941
|
-
}, void 0)]
|
|
1942
|
-
}, void 0, true, {
|
|
1943
|
-
fileName: _jsxFileName$1,
|
|
1944
|
-
lineNumber: 2,
|
|
1945
|
-
columnNumber: 94
|
|
1946
|
-
}, void 0)
|
|
1947
|
-
}, void 0, false, {
|
|
1948
|
-
fileName: _jsxFileName$1,
|
|
1949
|
-
lineNumber: 2,
|
|
1950
|
-
columnNumber: 29
|
|
1951
|
-
}, void 0);
|
|
1904
|
+
}), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { d: "M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2" })]
|
|
1905
|
+
})
|
|
1906
|
+
});
|
|
1952
1907
|
//#endregion
|
|
1953
1908
|
//#region src/routes/requests/show.tsx?tsr-split=component
|
|
1954
|
-
var _jsxFileName = "/home/runner/work/qgrid/qgrid/packages/web/src/routes/requests/show.tsx?tsr-split=component";
|
|
1955
1909
|
function RequestShowPage() {
|
|
1956
1910
|
const { id } = Route.useSearch();
|
|
1957
|
-
return /* @__PURE__ */ (0,
|
|
1958
|
-
fileName: _jsxFileName,
|
|
1959
|
-
lineNumber: 28,
|
|
1960
|
-
columnNumber: 10
|
|
1961
|
-
}, this);
|
|
1911
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(RequestDetail, { id });
|
|
1962
1912
|
}
|
|
1963
1913
|
function formatNum(n) {
|
|
1964
1914
|
return n.toLocaleString();
|
|
@@ -1994,24 +1944,12 @@ function CopyButton({ text, dark }) {
|
|
|
1994
1944
|
navigator.clipboard.writeText(text);
|
|
1995
1945
|
setCopied(true);
|
|
1996
1946
|
};
|
|
1997
|
-
return /* @__PURE__ */ (0,
|
|
1947
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", {
|
|
1998
1948
|
type: "button",
|
|
1999
1949
|
className: `absolute top-2 right-2 p-1 rounded transition-colors ${dark ? "text-sand-500 hover:text-sand-300" : "text-sand-400 hover:text-sand-600"}`,
|
|
2000
1950
|
onClick: handleCopy,
|
|
2001
|
-
children: copied ? /* @__PURE__ */ (0,
|
|
2002
|
-
|
|
2003
|
-
lineNumber: 82,
|
|
2004
|
-
columnNumber: 17
|
|
2005
|
-
}, this) : /* @__PURE__ */ (0, import_jsx_dev_runtime.jsxDEV)(lucideCopy, { className: "size-3.5" }, void 0, false, {
|
|
2006
|
-
fileName: _jsxFileName,
|
|
2007
|
-
lineNumber: 82,
|
|
2008
|
-
columnNumber: 68
|
|
2009
|
-
}, this)
|
|
2010
|
-
}, void 0, false, {
|
|
2011
|
-
fileName: _jsxFileName,
|
|
2012
|
-
lineNumber: 81,
|
|
2013
|
-
columnNumber: 10
|
|
2014
|
-
}, this);
|
|
1951
|
+
children: copied ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(lucideCheck, { className: "size-3.5 text-sage-500" }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(lucideCopy, { className: "size-3.5" })
|
|
1952
|
+
});
|
|
2015
1953
|
}
|
|
2016
1954
|
var DATA_IMAGE_TAG_RE = /<img\s+[^>]*src=["'](data:image\/[^"']+;base64,[^"']+)["'][^>]*(?:alt=["']([^"']*)["'][^>]*)?\/?>/gi;
|
|
2017
1955
|
function parseImageSegments(text) {
|
|
@@ -2039,178 +1977,94 @@ function parseImageSegments(text) {
|
|
|
2039
1977
|
function ImageAwareContent({ text, markdown }) {
|
|
2040
1978
|
const [viewerSrc, setViewerSrc] = (0, import_react.useState)(null);
|
|
2041
1979
|
const segments = parseImageSegments(text);
|
|
2042
|
-
if (!segments.some((segment) => segment.type === "image")) return markdown ? /* @__PURE__ */ (0,
|
|
1980
|
+
if (!segments.some((segment) => segment.type === "image")) return markdown ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
|
|
2043
1981
|
className: "prose prose-sm prose-qgrid max-w-none",
|
|
2044
|
-
children: /* @__PURE__ */ (0,
|
|
1982
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Markdown, {
|
|
2045
1983
|
remarkPlugins: [remarkGfm],
|
|
2046
1984
|
children: text
|
|
2047
|
-
}
|
|
2048
|
-
|
|
2049
|
-
lineNumber: 128,
|
|
2050
|
-
columnNumber: 9
|
|
2051
|
-
}, this)
|
|
2052
|
-
}, void 0, false, {
|
|
2053
|
-
fileName: _jsxFileName,
|
|
2054
|
-
lineNumber: 127,
|
|
2055
|
-
columnNumber: 23
|
|
2056
|
-
}, this) : /* @__PURE__ */ (0, import_jsx_dev_runtime.jsxDEV)("pre", {
|
|
1985
|
+
})
|
|
1986
|
+
}) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)("pre", {
|
|
2057
1987
|
className: "text-sm text-sand-800 whitespace-pre-wrap wrap-break-word font-mono leading-relaxed",
|
|
2058
1988
|
children: text
|
|
2059
|
-
}
|
|
2060
|
-
|
|
2061
|
-
lineNumber: 129,
|
|
2062
|
-
columnNumber: 16
|
|
2063
|
-
}, this);
|
|
2064
|
-
return /* @__PURE__ */ (0, import_jsx_dev_runtime.jsxDEV)("div", {
|
|
1989
|
+
});
|
|
1990
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
2065
1991
|
className: "space-y-3",
|
|
2066
|
-
children: [segments.map((segment, index) => segment.type === "text" ? markdown ? /* @__PURE__ */ (0,
|
|
1992
|
+
children: [segments.map((segment, index) => segment.type === "text" ? markdown ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
|
|
2067
1993
|
className: "prose prose-sm prose-qgrid max-w-none",
|
|
2068
|
-
children: /* @__PURE__ */ (0,
|
|
1994
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Markdown, {
|
|
2069
1995
|
remarkPlugins: [remarkGfm],
|
|
2070
1996
|
children: segment.text
|
|
2071
|
-
}
|
|
2072
|
-
|
|
2073
|
-
lineNumber: 135,
|
|
2074
|
-
columnNumber: 15
|
|
2075
|
-
}, this)
|
|
2076
|
-
}, `text-${index}`, false, {
|
|
2077
|
-
fileName: _jsxFileName,
|
|
2078
|
-
lineNumber: 134,
|
|
2079
|
-
columnNumber: 78
|
|
2080
|
-
}, this) : /* @__PURE__ */ (0, import_jsx_dev_runtime.jsxDEV)("pre", {
|
|
1997
|
+
})
|
|
1998
|
+
}, `text-${index}`) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)("pre", {
|
|
2081
1999
|
className: "text-sm text-sand-800 whitespace-pre-wrap wrap-break-word font-mono leading-relaxed",
|
|
2082
2000
|
children: segment.text
|
|
2083
|
-
}, `text-${index}
|
|
2084
|
-
fileName: _jsxFileName,
|
|
2085
|
-
lineNumber: 136,
|
|
2086
|
-
columnNumber: 22
|
|
2087
|
-
}, this) : /* @__PURE__ */ (0, import_jsx_dev_runtime.jsxDEV)("button", {
|
|
2001
|
+
}, `text-${index}`) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", {
|
|
2088
2002
|
type: "button",
|
|
2089
2003
|
className: "block max-w-full rounded-md border border-sand-200 overflow-hidden bg-white hover:border-sienna-300 transition-colors",
|
|
2090
2004
|
onClick: () => setViewerSrc(segment.src),
|
|
2091
2005
|
title: "Open image",
|
|
2092
|
-
children: /* @__PURE__ */ (0,
|
|
2006
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("img", {
|
|
2093
2007
|
src: segment.src,
|
|
2094
2008
|
alt: segment.alt,
|
|
2095
2009
|
className: "max-h-[520px] max-w-full object-contain",
|
|
2096
2010
|
loading: "lazy"
|
|
2097
|
-
}
|
|
2098
|
-
|
|
2099
|
-
lineNumber: 139,
|
|
2100
|
-
columnNumber: 13
|
|
2101
|
-
}, this)
|
|
2102
|
-
}, `image-${index}`, false, {
|
|
2103
|
-
fileName: _jsxFileName,
|
|
2104
|
-
lineNumber: 138,
|
|
2105
|
-
columnNumber: 22
|
|
2106
|
-
}, this)), viewerSrc && /* @__PURE__ */ (void 0)("div", {
|
|
2011
|
+
})
|
|
2012
|
+
}, `image-${index}`)), viewerSrc && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
2107
2013
|
className: "fixed inset-0 z-50 bg-black/70 p-4 flex items-center justify-center",
|
|
2108
2014
|
onClick: () => setViewerSrc(null),
|
|
2109
|
-
children: [/* @__PURE__ */ (
|
|
2015
|
+
children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", {
|
|
2110
2016
|
type: "button",
|
|
2111
2017
|
className: "absolute top-4 right-4 p-2 rounded-full bg-white/90 text-sand-700 hover:bg-white",
|
|
2112
2018
|
onClick: () => setViewerSrc(null),
|
|
2113
2019
|
title: "Close image",
|
|
2114
|
-
children: /* @__PURE__ */ (
|
|
2115
|
-
|
|
2116
|
-
lineNumber: 143,
|
|
2117
|
-
columnNumber: 13
|
|
2118
|
-
}, this)
|
|
2119
|
-
}, void 0, false, {
|
|
2120
|
-
fileName: _jsxFileName,
|
|
2121
|
-
lineNumber: 142,
|
|
2122
|
-
columnNumber: 11
|
|
2123
|
-
}, this), /* @__PURE__ */ (void 0)("img", {
|
|
2020
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(lucideX, { className: "size-5" })
|
|
2021
|
+
}), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("img", {
|
|
2124
2022
|
src: viewerSrc,
|
|
2125
2023
|
alt: "generated preview",
|
|
2126
2024
|
className: "max-h-full max-w-full object-contain rounded-md bg-white",
|
|
2127
2025
|
onClick: (e) => e.stopPropagation()
|
|
2128
|
-
}
|
|
2129
|
-
|
|
2130
|
-
|
|
2131
|
-
columnNumber: 11
|
|
2132
|
-
}, this)]
|
|
2133
|
-
}, void 0, true, {
|
|
2134
|
-
fileName: _jsxFileName,
|
|
2135
|
-
lineNumber: 141,
|
|
2136
|
-
columnNumber: 21
|
|
2137
|
-
}, this)]
|
|
2138
|
-
}, void 0, true, {
|
|
2139
|
-
fileName: _jsxFileName,
|
|
2140
|
-
lineNumber: 133,
|
|
2141
|
-
columnNumber: 10
|
|
2142
|
-
}, this);
|
|
2026
|
+
})]
|
|
2027
|
+
})]
|
|
2028
|
+
});
|
|
2143
2029
|
}
|
|
2144
2030
|
function FormattedContent({ text, markdown }) {
|
|
2145
2031
|
const parsed = tryParseJson(text);
|
|
2146
2032
|
const [mode, setMode] = (0, import_react.useState)("pretty");
|
|
2147
2033
|
const jsonContainer = parsed.ok && parsed.value instanceof Object ? parsed.value : null;
|
|
2148
2034
|
if (!parsed.ok || jsonContainer === null) {
|
|
2149
|
-
if (markdown) return /* @__PURE__ */ (0,
|
|
2035
|
+
if (markdown) return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ImageAwareContent, {
|
|
2150
2036
|
text,
|
|
2151
2037
|
markdown: true
|
|
2152
|
-
}
|
|
2153
|
-
|
|
2154
|
-
lineNumber: 163,
|
|
2155
|
-
columnNumber: 14
|
|
2156
|
-
}, this);
|
|
2157
|
-
return /* @__PURE__ */ (0, import_jsx_dev_runtime.jsxDEV)(ImageAwareContent, { text: parsed.ok ? JSON.stringify(parsed.value, null, 2) : text }, void 0, false, {
|
|
2158
|
-
fileName: _jsxFileName,
|
|
2159
|
-
lineNumber: 165,
|
|
2160
|
-
columnNumber: 12
|
|
2161
|
-
}, this);
|
|
2038
|
+
});
|
|
2039
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ImageAwareContent, { text: parsed.ok ? JSON.stringify(parsed.value, null, 2) : text });
|
|
2162
2040
|
}
|
|
2163
|
-
return /* @__PURE__ */ (0,
|
|
2041
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
2164
2042
|
className: "flex gap-1 mb-2",
|
|
2165
|
-
children: [/* @__PURE__ */ (0,
|
|
2043
|
+
children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", {
|
|
2166
2044
|
type: "button",
|
|
2167
2045
|
className: `px-2 py-0.5 text-[10px] rounded-md transition-colors ${mode === "plain" ? "bg-sand-200 text-sand-700" : "text-sand-400 hover:text-sand-600"}`,
|
|
2168
2046
|
onClick: () => setMode("plain"),
|
|
2169
2047
|
children: "Plain"
|
|
2170
|
-
},
|
|
2171
|
-
fileName: _jsxFileName,
|
|
2172
|
-
lineNumber: 169,
|
|
2173
|
-
columnNumber: 9
|
|
2174
|
-
}, this), /* @__PURE__ */ (0, import_jsx_dev_runtime.jsxDEV)("button", {
|
|
2048
|
+
}), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", {
|
|
2175
2049
|
type: "button",
|
|
2176
2050
|
className: `px-2 py-0.5 text-[10px] rounded-md transition-colors ${mode === "pretty" ? "bg-sand-200 text-sand-700" : "text-sand-400 hover:text-sand-600"}`,
|
|
2177
2051
|
onClick: () => setMode("pretty"),
|
|
2178
2052
|
children: "Pretty"
|
|
2179
|
-
}
|
|
2180
|
-
|
|
2181
|
-
lineNumber: 172,
|
|
2182
|
-
columnNumber: 9
|
|
2183
|
-
}, this)]
|
|
2184
|
-
}, void 0, true, {
|
|
2185
|
-
fileName: _jsxFileName,
|
|
2186
|
-
lineNumber: 168,
|
|
2187
|
-
columnNumber: 7
|
|
2188
|
-
}, this), mode === "pretty" ? /* @__PURE__ */ (0, import_jsx_dev_runtime.jsxDEV)(JsonView, {
|
|
2053
|
+
})]
|
|
2054
|
+
}), mode === "pretty" ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(JsonView, {
|
|
2189
2055
|
value: jsonContainer,
|
|
2190
2056
|
style: lightTheme,
|
|
2191
2057
|
displayDataTypes: false,
|
|
2192
2058
|
enableClipboard: true,
|
|
2193
2059
|
collapsed: false
|
|
2194
|
-
}
|
|
2195
|
-
fileName: _jsxFileName,
|
|
2196
|
-
lineNumber: 176,
|
|
2197
|
-
columnNumber: 28
|
|
2198
|
-
}, this) : /* @__PURE__ */ (0, import_jsx_dev_runtime.jsxDEV)("pre", {
|
|
2060
|
+
}) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)("pre", {
|
|
2199
2061
|
className: "text-sm text-sand-800 whitespace-pre-wrap wrap-break-word font-mono leading-relaxed",
|
|
2200
2062
|
children: JSON.stringify(parsed.value, null, 2)
|
|
2201
|
-
}
|
|
2202
|
-
fileName: _jsxFileName,
|
|
2203
|
-
lineNumber: 176,
|
|
2204
|
-
columnNumber: 143
|
|
2205
|
-
}, this)] }, void 0, true, {
|
|
2206
|
-
fileName: _jsxFileName,
|
|
2207
|
-
lineNumber: 167,
|
|
2208
|
-
columnNumber: 10
|
|
2209
|
-
}, this);
|
|
2063
|
+
})] });
|
|
2210
2064
|
}
|
|
2211
2065
|
function Section({ title, defaultOpen = true, headerMetadata, onOpenChange, children }) {
|
|
2212
2066
|
const [open, setOpen] = (0, import_react.useState)(defaultOpen);
|
|
2213
|
-
return /* @__PURE__ */ (0,
|
|
2067
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("details", {
|
|
2214
2068
|
open,
|
|
2215
2069
|
className: "group panel overflow-hidden",
|
|
2216
2070
|
onToggle: (event) => {
|
|
@@ -2218,72 +2072,36 @@ function Section({ title, defaultOpen = true, headerMetadata, onOpenChange, chil
|
|
|
2218
2072
|
setOpen(nextOpen);
|
|
2219
2073
|
onOpenChange?.(nextOpen);
|
|
2220
2074
|
},
|
|
2221
|
-
children: [/* @__PURE__ */ (0,
|
|
2075
|
+
children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("summary", {
|
|
2222
2076
|
className: "panel-header flex min-w-0 items-center gap-1.5 whitespace-nowrap cursor-pointer select-none list-none px-4 py-2.5",
|
|
2223
2077
|
children: [
|
|
2224
|
-
/* @__PURE__ */ (0,
|
|
2225
|
-
|
|
2226
|
-
lineNumber: 201,
|
|
2227
|
-
columnNumber: 9
|
|
2228
|
-
}, this),
|
|
2229
|
-
/* @__PURE__ */ (0, import_jsx_dev_runtime.jsxDEV)("span", {
|
|
2078
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(lucideChevronDown, { className: "size-3.5 shrink-0 text-sand-400 transition-transform group-open:rotate-0 -rotate-90" }),
|
|
2079
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
|
|
2230
2080
|
className: "shrink-0 text-[11px] uppercase tracking-wider text-sand-500 font-medium",
|
|
2231
2081
|
children: title
|
|
2232
|
-
},
|
|
2233
|
-
|
|
2234
|
-
lineNumber: 202,
|
|
2235
|
-
columnNumber: 9
|
|
2236
|
-
}, this),
|
|
2237
|
-
headerMetadata && /* @__PURE__ */ (void 0)("span", {
|
|
2082
|
+
}),
|
|
2083
|
+
headerMetadata && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
|
|
2238
2084
|
className: "flex min-w-0 flex-1 items-center gap-1.5 overflow-hidden whitespace-nowrap text-[11px] normal-case text-sand-400",
|
|
2239
2085
|
children: headerMetadata
|
|
2240
|
-
}
|
|
2241
|
-
fileName: _jsxFileName,
|
|
2242
|
-
lineNumber: 205,
|
|
2243
|
-
columnNumber: 28
|
|
2244
|
-
}, this)
|
|
2086
|
+
})
|
|
2245
2087
|
]
|
|
2246
|
-
},
|
|
2247
|
-
fileName: _jsxFileName,
|
|
2248
|
-
lineNumber: 200,
|
|
2249
|
-
columnNumber: 7
|
|
2250
|
-
}, this), /* @__PURE__ */ (0, import_jsx_dev_runtime.jsxDEV)("div", {
|
|
2088
|
+
}), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
|
|
2251
2089
|
className: "p-4",
|
|
2252
2090
|
children
|
|
2253
|
-
}
|
|
2254
|
-
|
|
2255
|
-
lineNumber: 209,
|
|
2256
|
-
columnNumber: 7
|
|
2257
|
-
}, this)]
|
|
2258
|
-
}, void 0, true, {
|
|
2259
|
-
fileName: _jsxFileName,
|
|
2260
|
-
lineNumber: 195,
|
|
2261
|
-
columnNumber: 10
|
|
2262
|
-
}, this);
|
|
2091
|
+
})]
|
|
2092
|
+
});
|
|
2263
2093
|
}
|
|
2264
2094
|
function Metric({ label, value }) {
|
|
2265
|
-
return /* @__PURE__ */ (0,
|
|
2095
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
2266
2096
|
className: "min-w-0",
|
|
2267
|
-
children: [/* @__PURE__ */ (0,
|
|
2097
|
+
children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("dt", {
|
|
2268
2098
|
className: "text-[10px] uppercase tracking-wider text-sand-400 font-medium truncate",
|
|
2269
2099
|
children: label
|
|
2270
|
-
},
|
|
2271
|
-
fileName: _jsxFileName,
|
|
2272
|
-
lineNumber: 220,
|
|
2273
|
-
columnNumber: 7
|
|
2274
|
-
}, this), /* @__PURE__ */ (0, import_jsx_dev_runtime.jsxDEV)("dd", {
|
|
2100
|
+
}), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("dd", {
|
|
2275
2101
|
className: "text-[15px] font-semibold text-sand-800 tabular-nums mt-0.5 truncate",
|
|
2276
2102
|
children: value
|
|
2277
|
-
}
|
|
2278
|
-
|
|
2279
|
-
lineNumber: 223,
|
|
2280
|
-
columnNumber: 7
|
|
2281
|
-
}, this)]
|
|
2282
|
-
}, void 0, true, {
|
|
2283
|
-
fileName: _jsxFileName,
|
|
2284
|
-
lineNumber: 219,
|
|
2285
|
-
columnNumber: 10
|
|
2286
|
-
}, this);
|
|
2103
|
+
})]
|
|
2104
|
+
});
|
|
2287
2105
|
}
|
|
2288
2106
|
var STATUS_STYLE = new Map([
|
|
2289
2107
|
["running", "bg-blue-100 text-blue-600"],
|
|
@@ -2292,42 +2110,22 @@ var STATUS_STYLE = new Map([
|
|
|
2292
2110
|
["aborted", "bg-caution-400/15 text-caution-500"]
|
|
2293
2111
|
]);
|
|
2294
2112
|
function ErrorPanel({ message }) {
|
|
2295
|
-
return /* @__PURE__ */ (0,
|
|
2113
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
2296
2114
|
className: "panel overflow-hidden border border-red-200 bg-red-50/60",
|
|
2297
|
-
children: [/* @__PURE__ */ (0,
|
|
2115
|
+
children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
|
|
2298
2116
|
className: "px-4 py-2.5 border-b border-red-100 flex items-center gap-1.5",
|
|
2299
|
-
children: /* @__PURE__ */ (0,
|
|
2117
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
|
|
2300
2118
|
className: "text-[11px] uppercase tracking-wider text-red-600 font-medium",
|
|
2301
2119
|
children: "Error"
|
|
2302
|
-
}
|
|
2303
|
-
|
|
2304
|
-
lineNumber: 236,
|
|
2305
|
-
columnNumber: 9
|
|
2306
|
-
}, this)
|
|
2307
|
-
}, void 0, false, {
|
|
2308
|
-
fileName: _jsxFileName,
|
|
2309
|
-
lineNumber: 235,
|
|
2310
|
-
columnNumber: 7
|
|
2311
|
-
}, this), /* @__PURE__ */ (0, import_jsx_dev_runtime.jsxDEV)("div", {
|
|
2120
|
+
})
|
|
2121
|
+
}), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
|
|
2312
2122
|
className: "p-4",
|
|
2313
|
-
children: /* @__PURE__ */ (0,
|
|
2123
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("pre", {
|
|
2314
2124
|
className: "text-[12px] text-red-700 whitespace-pre-wrap break-words font-mono leading-relaxed max-h-80 overflow-auto",
|
|
2315
2125
|
children: message
|
|
2316
|
-
}
|
|
2317
|
-
|
|
2318
|
-
|
|
2319
|
-
columnNumber: 9
|
|
2320
|
-
}, this)
|
|
2321
|
-
}, void 0, false, {
|
|
2322
|
-
fileName: _jsxFileName,
|
|
2323
|
-
lineNumber: 238,
|
|
2324
|
-
columnNumber: 7
|
|
2325
|
-
}, this)]
|
|
2326
|
-
}, void 0, true, {
|
|
2327
|
-
fileName: _jsxFileName,
|
|
2328
|
-
lineNumber: 234,
|
|
2329
|
-
columnNumber: 10
|
|
2330
|
-
}, this);
|
|
2126
|
+
})
|
|
2127
|
+
})]
|
|
2128
|
+
});
|
|
2331
2129
|
}
|
|
2332
2130
|
function HeaderBar({ data }) {
|
|
2333
2131
|
const isRunning = data.status === "running";
|
|
@@ -2338,227 +2136,119 @@ function HeaderBar({ data }) {
|
|
|
2338
2136
|
imageCostMethod: data.image_cost_method
|
|
2339
2137
|
});
|
|
2340
2138
|
const hasRequestedOnly = !isRunning && data.requested_model_name !== null && data.model_name === null;
|
|
2341
|
-
return /* @__PURE__ */ (0,
|
|
2139
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
2342
2140
|
className: "panel overflow-hidden px-4 py-3 flex flex-wrap items-center gap-x-2 gap-y-1.5 sm:px-5",
|
|
2343
2141
|
children: [
|
|
2344
|
-
/* @__PURE__ */ (0,
|
|
2142
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
|
|
2345
2143
|
className: "text-[15px] font-semibold text-sand-900 break-all",
|
|
2346
2144
|
children: modelDisplay.label === "—" ? "Unknown model" : modelDisplay.label
|
|
2347
|
-
},
|
|
2348
|
-
|
|
2349
|
-
lineNumber: 261,
|
|
2350
|
-
columnNumber: 7
|
|
2351
|
-
}, this),
|
|
2352
|
-
hasRequestedOnly && /* @__PURE__ */ (void 0)("span", {
|
|
2145
|
+
}),
|
|
2146
|
+
hasRequestedOnly && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
|
|
2353
2147
|
className: "text-[10px] text-sand-400",
|
|
2354
2148
|
children: "요청"
|
|
2355
|
-
},
|
|
2356
|
-
|
|
2357
|
-
lineNumber: 264,
|
|
2358
|
-
columnNumber: 28
|
|
2359
|
-
}, this),
|
|
2360
|
-
data.service_tier === "fast" && /* @__PURE__ */ (void 0)("span", {
|
|
2149
|
+
}),
|
|
2150
|
+
data.service_tier === "fast" && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
|
|
2361
2151
|
title: "Fast 모드",
|
|
2362
2152
|
className: "inline-flex shrink-0",
|
|
2363
|
-
children: /* @__PURE__ */ (
|
|
2153
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(lucideZap, {
|
|
2364
2154
|
"aria-label": "Fast 모드",
|
|
2365
2155
|
className: "size-3.5 text-[#1877F2] [&_path]:fill-current"
|
|
2366
|
-
}
|
|
2367
|
-
|
|
2368
|
-
|
|
2369
|
-
columnNumber: 11
|
|
2370
|
-
}, this)
|
|
2371
|
-
}, void 0, false, {
|
|
2372
|
-
fileName: _jsxFileName,
|
|
2373
|
-
lineNumber: 265,
|
|
2374
|
-
columnNumber: 40
|
|
2375
|
-
}, this),
|
|
2376
|
-
!isRunning && (data.fallback_count ?? 0) > 0 && /* @__PURE__ */ (void 0)("span", {
|
|
2156
|
+
})
|
|
2157
|
+
}),
|
|
2158
|
+
!isRunning && (data.fallback_count ?? 0) > 0 && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
|
|
2377
2159
|
className: "text-[10px] px-1.5 py-0.5 rounded-full bg-caution-400/15 text-caution-500 font-medium uppercase",
|
|
2378
2160
|
children: ["fallback ×", data.fallback_count]
|
|
2379
|
-
},
|
|
2380
|
-
|
|
2381
|
-
lineNumber: 268,
|
|
2382
|
-
columnNumber: 56
|
|
2383
|
-
}, this),
|
|
2384
|
-
!isRunning && data.status !== "succeeded" && /* @__PURE__ */ (void 0)("span", {
|
|
2161
|
+
}),
|
|
2162
|
+
!isRunning && data.status !== "succeeded" && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
|
|
2385
2163
|
className: `text-[10px] px-1.5 py-0.5 rounded-full font-medium uppercase ${STATUS_STYLE.get(data.status) ?? "bg-sand-100 text-sand-500"}`,
|
|
2386
2164
|
children: data.status
|
|
2387
|
-
},
|
|
2388
|
-
|
|
2389
|
-
lineNumber: 271,
|
|
2390
|
-
columnNumber: 53
|
|
2391
|
-
}, this),
|
|
2392
|
-
data.response_json_ok === false && /* @__PURE__ */ (void 0)("span", {
|
|
2165
|
+
}),
|
|
2166
|
+
data.response_json_ok === false && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
|
|
2393
2167
|
title: "structured 요청의 응답이 JSON 파싱에 실패했습니다",
|
|
2394
2168
|
className: "text-[10px] px-1.5 py-0.5 rounded-full bg-caution-400/15 text-caution-500 font-medium uppercase",
|
|
2395
2169
|
children: "broken json"
|
|
2396
|
-
},
|
|
2397
|
-
|
|
2398
|
-
lineNumber: 274,
|
|
2399
|
-
columnNumber: 43
|
|
2400
|
-
}, this),
|
|
2401
|
-
data.effort && /* @__PURE__ */ (void 0)("span", {
|
|
2170
|
+
}),
|
|
2171
|
+
data.effort && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
|
|
2402
2172
|
className: "text-[11px] px-1.5 py-0.5 rounded-md bg-sand-100 text-sand-500 font-mono",
|
|
2403
2173
|
children: ["effort=", data.effort]
|
|
2404
|
-
},
|
|
2405
|
-
|
|
2406
|
-
lineNumber: 277,
|
|
2407
|
-
columnNumber: 23
|
|
2408
|
-
}, this),
|
|
2409
|
-
data.project_name && /* @__PURE__ */ (void 0)("span", {
|
|
2174
|
+
}),
|
|
2175
|
+
data.project_name && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
|
|
2410
2176
|
className: "text-[12px] text-sand-400",
|
|
2411
2177
|
children: ["· project=", data.project_name]
|
|
2412
|
-
},
|
|
2413
|
-
|
|
2414
|
-
lineNumber: 280,
|
|
2415
|
-
columnNumber: 29
|
|
2416
|
-
}, this),
|
|
2417
|
-
/* @__PURE__ */ (0, import_jsx_dev_runtime.jsxDEV)("span", {
|
|
2178
|
+
}),
|
|
2179
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
|
|
2418
2180
|
className: "ml-auto text-[11px] text-sand-400",
|
|
2419
2181
|
children: data.token_name
|
|
2420
|
-
}
|
|
2421
|
-
fileName: _jsxFileName,
|
|
2422
|
-
lineNumber: 281,
|
|
2423
|
-
columnNumber: 7
|
|
2424
|
-
}, this)
|
|
2182
|
+
})
|
|
2425
2183
|
]
|
|
2426
|
-
}
|
|
2427
|
-
fileName: _jsxFileName,
|
|
2428
|
-
lineNumber: 260,
|
|
2429
|
-
columnNumber: 5
|
|
2430
|
-
}, this);
|
|
2184
|
+
});
|
|
2431
2185
|
}
|
|
2432
2186
|
function MetricsPanel({ data, toolCallCount }) {
|
|
2433
2187
|
const tokensPerSecEnabled = isTokensPerSecEnabled(data);
|
|
2434
|
-
return /* @__PURE__ */ (0,
|
|
2188
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
2435
2189
|
className: "panel overflow-hidden px-5 py-3 space-y-3",
|
|
2436
|
-
children: [/* @__PURE__ */ (0,
|
|
2190
|
+
children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
2437
2191
|
className: "grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-5 gap-x-6 gap-y-3",
|
|
2438
2192
|
children: [
|
|
2439
|
-
/* @__PURE__ */ (0,
|
|
2193
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Metric, {
|
|
2440
2194
|
label: "Duration",
|
|
2441
2195
|
value: `${(data.duration_ms / 1e3).toFixed(1)}s`
|
|
2442
|
-
},
|
|
2443
|
-
|
|
2444
|
-
lineNumber: 295,
|
|
2445
|
-
columnNumber: 9
|
|
2446
|
-
}, this),
|
|
2447
|
-
/* @__PURE__ */ (0, import_jsx_dev_runtime.jsxDEV)(Metric, {
|
|
2196
|
+
}),
|
|
2197
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Metric, {
|
|
2448
2198
|
label: "TTFT",
|
|
2449
2199
|
value: formatRunTtftMs(data.ttft_ms)
|
|
2450
|
-
},
|
|
2451
|
-
|
|
2452
|
-
lineNumber: 296,
|
|
2453
|
-
columnNumber: 9
|
|
2454
|
-
}, this),
|
|
2455
|
-
/* @__PURE__ */ (0, import_jsx_dev_runtime.jsxDEV)(Metric, {
|
|
2200
|
+
}),
|
|
2201
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Metric, {
|
|
2456
2202
|
label: "Tokens/sec",
|
|
2457
2203
|
value: formatTokensPerSec(data.output_tokens, data.duration_ms, data.ttft_ms, tokensPerSecEnabled)
|
|
2458
|
-
},
|
|
2459
|
-
|
|
2460
|
-
lineNumber: 297,
|
|
2461
|
-
columnNumber: 9
|
|
2462
|
-
}, this),
|
|
2463
|
-
/* @__PURE__ */ (0, import_jsx_dev_runtime.jsxDEV)(Metric, {
|
|
2204
|
+
}),
|
|
2205
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Metric, {
|
|
2464
2206
|
label: "Driver",
|
|
2465
2207
|
value: data.cost_usd !== null ? formatMicroUsd(data.cost_usd) : "—"
|
|
2466
|
-
},
|
|
2467
|
-
|
|
2468
|
-
lineNumber: 298,
|
|
2469
|
-
columnNumber: 9
|
|
2470
|
-
}, this),
|
|
2471
|
-
/* @__PURE__ */ (0, import_jsx_dev_runtime.jsxDEV)(Metric, {
|
|
2208
|
+
}),
|
|
2209
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Metric, {
|
|
2472
2210
|
label: "Image",
|
|
2473
2211
|
value: data.image_cost_usd !== null ? formatMicroUsd(data.image_cost_usd) : "—"
|
|
2474
|
-
},
|
|
2475
|
-
|
|
2476
|
-
lineNumber: 299,
|
|
2477
|
-
columnNumber: 9
|
|
2478
|
-
}, this),
|
|
2479
|
-
/* @__PURE__ */ (0, import_jsx_dev_runtime.jsxDEV)(Metric, {
|
|
2212
|
+
}),
|
|
2213
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Metric, {
|
|
2480
2214
|
label: "Tool Calls",
|
|
2481
2215
|
value: `${toolCallCount}회`
|
|
2482
|
-
}
|
|
2483
|
-
fileName: _jsxFileName,
|
|
2484
|
-
lineNumber: 300,
|
|
2485
|
-
columnNumber: 9
|
|
2486
|
-
}, this)
|
|
2216
|
+
})
|
|
2487
2217
|
]
|
|
2488
|
-
},
|
|
2489
|
-
fileName: _jsxFileName,
|
|
2490
|
-
lineNumber: 294,
|
|
2491
|
-
columnNumber: 7
|
|
2492
|
-
}, this), /* @__PURE__ */ (0, import_jsx_dev_runtime.jsxDEV)("div", {
|
|
2218
|
+
}), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
2493
2219
|
className: "border-t border-sand-100/60 pt-3 grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-5 gap-x-6 gap-y-3",
|
|
2494
2220
|
children: [
|
|
2495
|
-
/* @__PURE__ */ (0,
|
|
2221
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Metric, {
|
|
2496
2222
|
label: "Input",
|
|
2497
2223
|
value: formatNum(data.input_tokens)
|
|
2498
|
-
},
|
|
2499
|
-
|
|
2500
|
-
lineNumber: 303,
|
|
2501
|
-
columnNumber: 9
|
|
2502
|
-
}, this),
|
|
2503
|
-
/* @__PURE__ */ (0, import_jsx_dev_runtime.jsxDEV)(Metric, {
|
|
2224
|
+
}),
|
|
2225
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Metric, {
|
|
2504
2226
|
label: "Output",
|
|
2505
2227
|
value: formatNum(data.output_tokens)
|
|
2506
|
-
},
|
|
2507
|
-
|
|
2508
|
-
lineNumber: 304,
|
|
2509
|
-
columnNumber: 9
|
|
2510
|
-
}, this),
|
|
2511
|
-
/* @__PURE__ */ (0, import_jsx_dev_runtime.jsxDEV)(Metric, {
|
|
2228
|
+
}),
|
|
2229
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Metric, {
|
|
2512
2230
|
label: "Cache Read",
|
|
2513
2231
|
value: formatNum(data.cache_read_tokens)
|
|
2514
|
-
},
|
|
2515
|
-
|
|
2516
|
-
lineNumber: 305,
|
|
2517
|
-
columnNumber: 9
|
|
2518
|
-
}, this),
|
|
2519
|
-
/* @__PURE__ */ (0, import_jsx_dev_runtime.jsxDEV)(Metric, {
|
|
2232
|
+
}),
|
|
2233
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Metric, {
|
|
2520
2234
|
label: "Cache Write",
|
|
2521
2235
|
value: formatNum(data.cache_creation_tokens)
|
|
2522
|
-
},
|
|
2523
|
-
|
|
2524
|
-
lineNumber: 306,
|
|
2525
|
-
columnNumber: 9
|
|
2526
|
-
}, this),
|
|
2527
|
-
/* @__PURE__ */ (0, import_jsx_dev_runtime.jsxDEV)(Metric, {
|
|
2236
|
+
}),
|
|
2237
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Metric, {
|
|
2528
2238
|
label: "Cache Write (5m)",
|
|
2529
2239
|
value: data.cache_creation_5m_tokens === null ? "—" : formatNum(data.cache_creation_5m_tokens)
|
|
2530
|
-
},
|
|
2531
|
-
|
|
2532
|
-
lineNumber: 307,
|
|
2533
|
-
columnNumber: 9
|
|
2534
|
-
}, this),
|
|
2535
|
-
/* @__PURE__ */ (0, import_jsx_dev_runtime.jsxDEV)(Metric, {
|
|
2240
|
+
}),
|
|
2241
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Metric, {
|
|
2536
2242
|
label: "Cache Write (1h)",
|
|
2537
2243
|
value: data.cache_creation_1h_tokens === null ? "—" : formatNum(data.cache_creation_1h_tokens)
|
|
2538
|
-
},
|
|
2539
|
-
|
|
2540
|
-
lineNumber: 308,
|
|
2541
|
-
columnNumber: 9
|
|
2542
|
-
}, this),
|
|
2543
|
-
/* @__PURE__ */ (0, import_jsx_dev_runtime.jsxDEV)(Metric, {
|
|
2244
|
+
}),
|
|
2245
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Metric, {
|
|
2544
2246
|
label: "Cache Hit",
|
|
2545
2247
|
value: cacheHitRate(data)
|
|
2546
|
-
}
|
|
2547
|
-
fileName: _jsxFileName,
|
|
2548
|
-
lineNumber: 309,
|
|
2549
|
-
columnNumber: 9
|
|
2550
|
-
}, this)
|
|
2248
|
+
})
|
|
2551
2249
|
]
|
|
2552
|
-
}
|
|
2553
|
-
|
|
2554
|
-
lineNumber: 302,
|
|
2555
|
-
columnNumber: 7
|
|
2556
|
-
}, this)]
|
|
2557
|
-
}, void 0, true, {
|
|
2558
|
-
fileName: _jsxFileName,
|
|
2559
|
-
lineNumber: 293,
|
|
2560
|
-
columnNumber: 10
|
|
2561
|
-
}, this);
|
|
2250
|
+
})]
|
|
2251
|
+
});
|
|
2562
2252
|
}
|
|
2563
2253
|
var ToolInputImage = object({
|
|
2564
2254
|
mediaType: string().optional(),
|
|
@@ -2606,28 +2296,16 @@ function formatTokensPerSec(outputTokens, durationMs, ttftMs, enabled) {
|
|
|
2606
2296
|
return `${Math.round(outputTokens / (generationMs / 1e3)).toLocaleString()} tok/s`;
|
|
2607
2297
|
}
|
|
2608
2298
|
function CompactMetric({ label, value }) {
|
|
2609
|
-
return /* @__PURE__ */ (0,
|
|
2299
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
2610
2300
|
className: "min-w-0 self-end",
|
|
2611
|
-
children: [label && /* @__PURE__ */ (
|
|
2301
|
+
children: [label && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
|
|
2612
2302
|
className: "text-[10px] uppercase tracking-wider text-sand-400 font-medium truncate",
|
|
2613
2303
|
children: label
|
|
2614
|
-
},
|
|
2615
|
-
fileName: _jsxFileName,
|
|
2616
|
-
lineNumber: 419,
|
|
2617
|
-
columnNumber: 17
|
|
2618
|
-
}, this), /* @__PURE__ */ (0, import_jsx_dev_runtime.jsxDEV)("div", {
|
|
2304
|
+
}), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
|
|
2619
2305
|
className: "mt-0.5 text-[13px] font-semibold text-sand-800 tabular-nums truncate",
|
|
2620
2306
|
children: value
|
|
2621
|
-
}
|
|
2622
|
-
|
|
2623
|
-
lineNumber: 422,
|
|
2624
|
-
columnNumber: 7
|
|
2625
|
-
}, this)]
|
|
2626
|
-
}, void 0, true, {
|
|
2627
|
-
fileName: _jsxFileName,
|
|
2628
|
-
lineNumber: 418,
|
|
2629
|
-
columnNumber: 5
|
|
2630
|
-
}, this);
|
|
2307
|
+
})]
|
|
2308
|
+
});
|
|
2631
2309
|
}
|
|
2632
2310
|
function getToolInputImages(args) {
|
|
2633
2311
|
const parsedArgs = ToolInputArgs.safeParse(args);
|
|
@@ -2674,28 +2352,20 @@ function ToolInputImages({ images }) {
|
|
|
2674
2352
|
} : null;
|
|
2675
2353
|
}).filter((item) => item !== null);
|
|
2676
2354
|
if (renderableImages.length === 0) return null;
|
|
2677
|
-
return /* @__PURE__ */ (0,
|
|
2355
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
|
|
2678
2356
|
className: "text-[10px] uppercase tracking-wider text-sand-400 font-medium px-2",
|
|
2679
2357
|
children: "Input Images"
|
|
2680
|
-
},
|
|
2681
|
-
fileName: _jsxFileName,
|
|
2682
|
-
lineNumber: 483,
|
|
2683
|
-
columnNumber: 7
|
|
2684
|
-
}, this), /* @__PURE__ */ (0, import_jsx_dev_runtime.jsxDEV)("div", {
|
|
2358
|
+
}), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
|
|
2685
2359
|
className: "mt-1 grid grid-cols-1 sm:grid-cols-2 gap-2",
|
|
2686
2360
|
children: renderableImages.map(({ image, index, src }) => {
|
|
2687
|
-
return /* @__PURE__ */ (0,
|
|
2361
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
2688
2362
|
className: "rounded-md border border-sand-200 bg-white overflow-hidden",
|
|
2689
|
-
children: [/* @__PURE__ */ (0,
|
|
2363
|
+
children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("img", {
|
|
2690
2364
|
src,
|
|
2691
2365
|
alt: `reference ${index + 1}`,
|
|
2692
2366
|
className: "max-h-64 w-full object-contain bg-white",
|
|
2693
2367
|
loading: "lazy"
|
|
2694
|
-
},
|
|
2695
|
-
fileName: _jsxFileName,
|
|
2696
|
-
lineNumber: 493,
|
|
2697
|
-
columnNumber: 15
|
|
2698
|
-
}, this), /* @__PURE__ */ (0, import_jsx_dev_runtime.jsxDEV)("div", {
|
|
2368
|
+
}), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
2699
2369
|
className: "px-2 py-1 text-[10px] text-sand-500 font-mono border-t border-sand-100",
|
|
2700
2370
|
children: [
|
|
2701
2371
|
image.mediaType ?? "image",
|
|
@@ -2703,35 +2373,15 @@ function ToolInputImages({ images }) {
|
|
|
2703
2373
|
" ",
|
|
2704
2374
|
image.byteSize !== void 0 ? `${image.byteSize.toLocaleString()} bytes` : "url"
|
|
2705
2375
|
]
|
|
2706
|
-
}
|
|
2707
|
-
|
|
2708
|
-
lineNumber: 494,
|
|
2709
|
-
columnNumber: 15
|
|
2710
|
-
}, this)]
|
|
2711
|
-
}, `${image.mediaType ?? "image"}-${index}`, true, {
|
|
2712
|
-
fileName: _jsxFileName,
|
|
2713
|
-
lineNumber: 492,
|
|
2714
|
-
columnNumber: 16
|
|
2715
|
-
}, this);
|
|
2376
|
+
})]
|
|
2377
|
+
}, `${image.mediaType ?? "image"}-${index}`);
|
|
2716
2378
|
})
|
|
2717
|
-
}
|
|
2718
|
-
fileName: _jsxFileName,
|
|
2719
|
-
lineNumber: 486,
|
|
2720
|
-
columnNumber: 7
|
|
2721
|
-
}, this)] }, void 0, true, {
|
|
2722
|
-
fileName: _jsxFileName,
|
|
2723
|
-
lineNumber: 482,
|
|
2724
|
-
columnNumber: 10
|
|
2725
|
-
}, this);
|
|
2379
|
+
})] });
|
|
2726
2380
|
}
|
|
2727
2381
|
function RequestInputImages({ images, stepId }) {
|
|
2728
2382
|
const { data: detail } = RequestLogStepService.useRequestLogStep("I", stepId ?? 0, { enabled: images === null && stepId !== null });
|
|
2729
2383
|
const args = detail ? safeParseJson(detail.tool_args) : null;
|
|
2730
|
-
return /* @__PURE__ */ (0,
|
|
2731
|
-
fileName: _jsxFileName,
|
|
2732
|
-
lineNumber: 518,
|
|
2733
|
-
columnNumber: 10
|
|
2734
|
-
}, this);
|
|
2384
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ToolInputImages, { images: images ?? getToolInputImages(args) });
|
|
2735
2385
|
}
|
|
2736
2386
|
function ToolCallItem({ entry }) {
|
|
2737
2387
|
const hasError = !!entry.error;
|
|
@@ -2742,427 +2392,199 @@ function ToolCallItem({ entry }) {
|
|
|
2742
2392
|
const resultText = string().safeParse(result);
|
|
2743
2393
|
const responseText = resultText.success ? resultText.data : JSON.stringify(result);
|
|
2744
2394
|
const error = detail?.error ?? entry.error;
|
|
2745
|
-
return /* @__PURE__ */ (0,
|
|
2395
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("details", {
|
|
2746
2396
|
className: "group/tool",
|
|
2747
2397
|
onToggle: (e) => setOpened(e.currentTarget.open),
|
|
2748
|
-
children: [/* @__PURE__ */ (0,
|
|
2398
|
+
children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("summary", {
|
|
2749
2399
|
className: "flex items-center gap-2 px-3 py-2 cursor-pointer select-none list-none hover:bg-sand-50 transition-colors rounded-md",
|
|
2750
2400
|
children: [
|
|
2751
|
-
/* @__PURE__ */ (0,
|
|
2752
|
-
|
|
2753
|
-
lineNumber: 540,
|
|
2754
|
-
columnNumber: 9
|
|
2755
|
-
}, this),
|
|
2756
|
-
/* @__PURE__ */ (0, import_jsx_dev_runtime.jsxDEV)("span", {
|
|
2401
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(lucideChevronDown, { className: "size-3 text-sand-400 transition-transform group-open/tool:rotate-0 -rotate-90 shrink-0" }),
|
|
2402
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
|
|
2757
2403
|
className: "text-[10px] px-1.5 py-0.5 rounded bg-sand-100 text-sand-500 font-mono shrink-0",
|
|
2758
2404
|
children: ["call ", entry.callIndex + 1]
|
|
2759
|
-
},
|
|
2760
|
-
|
|
2761
|
-
lineNumber: 541,
|
|
2762
|
-
columnNumber: 9
|
|
2763
|
-
}, this),
|
|
2764
|
-
/* @__PURE__ */ (0, import_jsx_dev_runtime.jsxDEV)("span", {
|
|
2405
|
+
}),
|
|
2406
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
|
|
2765
2407
|
className: "text-[13px] font-medium text-sand-800 font-mono truncate",
|
|
2766
2408
|
children: entry.toolName
|
|
2767
|
-
},
|
|
2768
|
-
|
|
2769
|
-
lineNumber: 544,
|
|
2770
|
-
columnNumber: 9
|
|
2771
|
-
}, this),
|
|
2772
|
-
hasError && /* @__PURE__ */ (void 0)("span", {
|
|
2409
|
+
}),
|
|
2410
|
+
hasError && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
|
|
2773
2411
|
className: "text-[10px] px-1.5 py-0.5 rounded-full bg-red-100 text-red-600 font-medium uppercase shrink-0",
|
|
2774
2412
|
children: "error"
|
|
2775
|
-
},
|
|
2776
|
-
|
|
2777
|
-
lineNumber: 547,
|
|
2778
|
-
columnNumber: 22
|
|
2779
|
-
}, this),
|
|
2780
|
-
/* @__PURE__ */ (0, import_jsx_dev_runtime.jsxDEV)("span", {
|
|
2413
|
+
}),
|
|
2414
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
|
|
2781
2415
|
className: "ml-auto text-[11px] text-sand-400 tabular-nums shrink-0",
|
|
2782
2416
|
children: formatDurationMs(entry.durationMs)
|
|
2783
|
-
}
|
|
2784
|
-
fileName: _jsxFileName,
|
|
2785
|
-
lineNumber: 550,
|
|
2786
|
-
columnNumber: 9
|
|
2787
|
-
}, this)
|
|
2417
|
+
})
|
|
2788
2418
|
]
|
|
2789
|
-
},
|
|
2790
|
-
fileName: _jsxFileName,
|
|
2791
|
-
lineNumber: 539,
|
|
2792
|
-
columnNumber: 7
|
|
2793
|
-
}, this), opened && /* @__PURE__ */ (void 0)("div", {
|
|
2419
|
+
}), opened && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
2794
2420
|
className: "mt-1 mx-1 mb-3 space-y-2",
|
|
2795
2421
|
children: [
|
|
2796
|
-
/* @__PURE__ */ (
|
|
2422
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
|
|
2797
2423
|
className: "text-[10px] uppercase tracking-wider text-sand-400 font-medium px-2",
|
|
2798
2424
|
children: "Request"
|
|
2799
|
-
},
|
|
2800
|
-
fileName: _jsxFileName,
|
|
2801
|
-
lineNumber: 556,
|
|
2802
|
-
columnNumber: 13
|
|
2803
|
-
}, this), /* @__PURE__ */ (void 0)("div", {
|
|
2425
|
+
}), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
|
|
2804
2426
|
className: "mt-1 rounded-md bg-sand-50 p-3 overflow-auto",
|
|
2805
|
-
children: /* @__PURE__ */ (
|
|
2806
|
-
|
|
2807
|
-
|
|
2808
|
-
columnNumber: 15
|
|
2809
|
-
}, this)
|
|
2810
|
-
}, void 0, false, {
|
|
2811
|
-
fileName: _jsxFileName,
|
|
2812
|
-
lineNumber: 559,
|
|
2813
|
-
columnNumber: 13
|
|
2814
|
-
}, this)] }, void 0, true, {
|
|
2815
|
-
fileName: _jsxFileName,
|
|
2816
|
-
lineNumber: 555,
|
|
2817
|
-
columnNumber: 11
|
|
2818
|
-
}, this),
|
|
2819
|
-
error && /* @__PURE__ */ (void 0)("div", { children: [/* @__PURE__ */ (void 0)("span", {
|
|
2427
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(FormattedContent, { text: detail ? JSON.stringify(displayArgs) : "Loading..." })
|
|
2428
|
+
})] }),
|
|
2429
|
+
error && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
|
|
2820
2430
|
className: "text-[10px] uppercase tracking-wider text-red-500 font-medium px-2",
|
|
2821
2431
|
children: "Error"
|
|
2822
|
-
},
|
|
2823
|
-
fileName: _jsxFileName,
|
|
2824
|
-
lineNumber: 564,
|
|
2825
|
-
columnNumber: 15
|
|
2826
|
-
}, this), /* @__PURE__ */ (void 0)("div", {
|
|
2432
|
+
}), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
|
|
2827
2433
|
className: "mt-1 rounded-md bg-red-50 border border-red-100 p-3 overflow-auto",
|
|
2828
|
-
children: /* @__PURE__ */ (
|
|
2829
|
-
|
|
2830
|
-
|
|
2831
|
-
columnNumber: 17
|
|
2832
|
-
}, this)
|
|
2833
|
-
}, void 0, false, {
|
|
2834
|
-
fileName: _jsxFileName,
|
|
2835
|
-
lineNumber: 567,
|
|
2836
|
-
columnNumber: 15
|
|
2837
|
-
}, this)] }, void 0, true, {
|
|
2838
|
-
fileName: _jsxFileName,
|
|
2839
|
-
lineNumber: 563,
|
|
2840
|
-
columnNumber: 21
|
|
2841
|
-
}, this),
|
|
2842
|
-
/* @__PURE__ */ (void 0)("div", { children: [/* @__PURE__ */ (void 0)("span", {
|
|
2434
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(FormattedContent, { text: error })
|
|
2435
|
+
})] }),
|
|
2436
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
|
|
2843
2437
|
className: "text-[10px] uppercase tracking-wider text-sand-400 font-medium px-2",
|
|
2844
2438
|
children: "Response"
|
|
2845
|
-
},
|
|
2846
|
-
fileName: _jsxFileName,
|
|
2847
|
-
lineNumber: 572,
|
|
2848
|
-
columnNumber: 13
|
|
2849
|
-
}, this), /* @__PURE__ */ (void 0)("div", {
|
|
2439
|
+
}), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
|
|
2850
2440
|
className: "mt-1 rounded-md bg-sand-50 p-3 overflow-auto",
|
|
2851
|
-
children: /* @__PURE__ */ (
|
|
2441
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(FormattedContent, {
|
|
2852
2442
|
text: detail ? responseText : "Loading...",
|
|
2853
2443
|
markdown: true
|
|
2854
|
-
}
|
|
2855
|
-
|
|
2856
|
-
lineNumber: 576,
|
|
2857
|
-
columnNumber: 15
|
|
2858
|
-
}, this)
|
|
2859
|
-
}, void 0, false, {
|
|
2860
|
-
fileName: _jsxFileName,
|
|
2861
|
-
lineNumber: 575,
|
|
2862
|
-
columnNumber: 13
|
|
2863
|
-
}, this)] }, void 0, true, {
|
|
2864
|
-
fileName: _jsxFileName,
|
|
2865
|
-
lineNumber: 571,
|
|
2866
|
-
columnNumber: 11
|
|
2867
|
-
}, this)
|
|
2444
|
+
})
|
|
2445
|
+
})] })
|
|
2868
2446
|
]
|
|
2869
|
-
}
|
|
2870
|
-
|
|
2871
|
-
lineNumber: 554,
|
|
2872
|
-
columnNumber: 18
|
|
2873
|
-
}, this)]
|
|
2874
|
-
}, void 0, true, {
|
|
2875
|
-
fileName: _jsxFileName,
|
|
2876
|
-
lineNumber: 538,
|
|
2877
|
-
columnNumber: 10
|
|
2878
|
-
}, this);
|
|
2447
|
+
})]
|
|
2448
|
+
});
|
|
2879
2449
|
}
|
|
2880
2450
|
function ReasoningBlock({ stepId }) {
|
|
2881
2451
|
const [opened, setOpened] = (0, import_react.useState)(false);
|
|
2882
2452
|
const { data: detail } = RequestLogStepService.useRequestLogStep("A", stepId, { enabled: opened });
|
|
2883
2453
|
const reasoningText = detail?.reasoning_text ?? null;
|
|
2884
|
-
return /* @__PURE__ */ (0,
|
|
2454
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("details", {
|
|
2885
2455
|
className: "group/reason mt-3",
|
|
2886
2456
|
onToggle: (e) => setOpened(e.currentTarget.open),
|
|
2887
|
-
children: [/* @__PURE__ */ (0,
|
|
2457
|
+
children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("summary", {
|
|
2888
2458
|
className: "flex items-center gap-2 cursor-pointer select-none list-none",
|
|
2889
|
-
children: [/* @__PURE__ */ (0,
|
|
2890
|
-
fileName: _jsxFileName,
|
|
2891
|
-
lineNumber: 596,
|
|
2892
|
-
columnNumber: 9
|
|
2893
|
-
}, this), /* @__PURE__ */ (0, import_jsx_dev_runtime.jsxDEV)("span", {
|
|
2459
|
+
children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(lucideChevronDown, { className: "size-3 text-sand-400 transition-transform group-open/reason:rotate-0 -rotate-90 shrink-0" }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
|
|
2894
2460
|
className: "text-[10px] uppercase tracking-wider text-sand-500 font-medium",
|
|
2895
2461
|
children: "Reasoning"
|
|
2896
|
-
}
|
|
2897
|
-
|
|
2898
|
-
lineNumber: 597,
|
|
2899
|
-
columnNumber: 9
|
|
2900
|
-
}, this)]
|
|
2901
|
-
}, void 0, true, {
|
|
2902
|
-
fileName: _jsxFileName,
|
|
2903
|
-
lineNumber: 595,
|
|
2904
|
-
columnNumber: 7
|
|
2905
|
-
}, this), opened && /* @__PURE__ */ (void 0)("div", {
|
|
2462
|
+
})]
|
|
2463
|
+
}), opened && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
|
|
2906
2464
|
className: "mt-2 rounded-md bg-white/70 border border-sand-100 p-3 overflow-auto",
|
|
2907
|
-
children: reasoningText ? /* @__PURE__ */ (
|
|
2465
|
+
children: reasoningText ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(FormattedContent, {
|
|
2908
2466
|
text: reasoningText,
|
|
2909
2467
|
markdown: true
|
|
2910
|
-
}
|
|
2911
|
-
fileName: _jsxFileName,
|
|
2912
|
-
lineNumber: 602,
|
|
2913
|
-
columnNumber: 28
|
|
2914
|
-
}, this) : !detail ? /* @__PURE__ */ (void 0)("p", {
|
|
2468
|
+
}) : !detail ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", {
|
|
2915
2469
|
className: "text-sm text-sand-400",
|
|
2916
2470
|
children: "Loading..."
|
|
2917
|
-
}
|
|
2918
|
-
fileName: _jsxFileName,
|
|
2919
|
-
lineNumber: 602,
|
|
2920
|
-
columnNumber: 91
|
|
2921
|
-
}, this) : /* @__PURE__ */ (void 0)("p", {
|
|
2471
|
+
}) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", {
|
|
2922
2472
|
className: "text-sm text-sand-400",
|
|
2923
2473
|
children: "No reasoning text captured."
|
|
2924
|
-
}
|
|
2925
|
-
|
|
2926
|
-
|
|
2927
|
-
columnNumber: 145
|
|
2928
|
-
}, this)
|
|
2929
|
-
}, void 0, false, {
|
|
2930
|
-
fileName: _jsxFileName,
|
|
2931
|
-
lineNumber: 601,
|
|
2932
|
-
columnNumber: 18
|
|
2933
|
-
}, this)]
|
|
2934
|
-
}, void 0, true, {
|
|
2935
|
-
fileName: _jsxFileName,
|
|
2936
|
-
lineNumber: 594,
|
|
2937
|
-
columnNumber: 10
|
|
2938
|
-
}, this);
|
|
2474
|
+
})
|
|
2475
|
+
})]
|
|
2476
|
+
});
|
|
2939
2477
|
}
|
|
2940
2478
|
function StepTreeItem({ entry, tokensPerSecEnabled }) {
|
|
2941
2479
|
const generate = entry.generate;
|
|
2942
2480
|
const hasReasoning = generate !== null && generate.reasoningTokens !== null && generate.reasoningTokens !== void 0 && generate.reasoningTokens > 0;
|
|
2943
2481
|
const errorCount = entry.toolCalls.filter((toolCall) => toolCall.error).length;
|
|
2944
|
-
return /* @__PURE__ */ (0,
|
|
2482
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("details", {
|
|
2945
2483
|
open: true,
|
|
2946
2484
|
className: "group/step border-l border-sand-200 pl-3",
|
|
2947
|
-
children: [/* @__PURE__ */ (0,
|
|
2485
|
+
children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("summary", {
|
|
2948
2486
|
className: "flex items-center gap-2 py-2 cursor-pointer select-none list-none",
|
|
2949
2487
|
children: [
|
|
2950
|
-
/* @__PURE__ */ (0,
|
|
2951
|
-
|
|
2952
|
-
lineNumber: 618,
|
|
2953
|
-
columnNumber: 9
|
|
2954
|
-
}, this),
|
|
2955
|
-
/* @__PURE__ */ (0, import_jsx_dev_runtime.jsxDEV)("span", {
|
|
2488
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(lucideChevronDown, { className: "size-3.5 text-sand-400 transition-transform group-open/step:rotate-0 -rotate-90 shrink-0" }),
|
|
2489
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
|
|
2956
2490
|
className: "text-[10px] px-1.5 py-0.5 rounded bg-sienna-100 text-sienna-700 font-mono shrink-0",
|
|
2957
2491
|
children: ["step ", entry.stepIndex + 1]
|
|
2958
|
-
},
|
|
2959
|
-
|
|
2960
|
-
lineNumber: 619,
|
|
2961
|
-
columnNumber: 9
|
|
2962
|
-
}, this),
|
|
2963
|
-
/* @__PURE__ */ (0, import_jsx_dev_runtime.jsxDEV)("span", {
|
|
2492
|
+
}),
|
|
2493
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
|
|
2964
2494
|
className: "text-[13px] font-semibold text-sand-900",
|
|
2965
2495
|
children: "LLM call"
|
|
2966
|
-
},
|
|
2967
|
-
|
|
2968
|
-
lineNumber: 622,
|
|
2969
|
-
columnNumber: 9
|
|
2970
|
-
}, this),
|
|
2971
|
-
generate?.finishReason && /* @__PURE__ */ (void 0)("span", {
|
|
2496
|
+
}),
|
|
2497
|
+
generate?.finishReason && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
|
|
2972
2498
|
className: "text-[10px] px-1.5 py-0.5 rounded bg-sand-100 text-sand-500 font-mono shrink-0",
|
|
2973
2499
|
children: generate.finishReason
|
|
2974
|
-
},
|
|
2975
|
-
|
|
2976
|
-
lineNumber: 623,
|
|
2977
|
-
columnNumber: 36
|
|
2978
|
-
}, this),
|
|
2979
|
-
generate && (generate.fallbackCount ?? 0) > 0 && /* @__PURE__ */ (void 0)("span", {
|
|
2500
|
+
}),
|
|
2501
|
+
generate && (generate.fallbackCount ?? 0) > 0 && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
|
|
2980
2502
|
className: "text-[10px] px-1.5 py-0.5 rounded-full bg-caution-400/15 text-caution-500 font-medium uppercase shrink-0",
|
|
2981
2503
|
children: [
|
|
2982
2504
|
generate.requestedModelName,
|
|
2983
2505
|
" → ",
|
|
2984
2506
|
generate.modelName
|
|
2985
2507
|
]
|
|
2986
|
-
},
|
|
2987
|
-
|
|
2988
|
-
lineNumber: 626,
|
|
2989
|
-
columnNumber: 59
|
|
2990
|
-
}, this),
|
|
2991
|
-
hasReasoning && /* @__PURE__ */ (void 0)("span", {
|
|
2508
|
+
}),
|
|
2509
|
+
hasReasoning && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
|
|
2992
2510
|
className: "text-[10px] px-1.5 py-0.5 rounded bg-blue-100 text-blue-600 font-medium shrink-0",
|
|
2993
2511
|
children: "reasoning"
|
|
2994
|
-
},
|
|
2995
|
-
|
|
2996
|
-
lineNumber: 629,
|
|
2997
|
-
columnNumber: 26
|
|
2998
|
-
}, this),
|
|
2999
|
-
errorCount > 0 && /* @__PURE__ */ (void 0)("span", {
|
|
2512
|
+
}),
|
|
2513
|
+
errorCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
|
|
3000
2514
|
className: "text-[10px] px-1.5 py-0.5 rounded-full bg-red-100 text-red-600 font-medium uppercase shrink-0",
|
|
3001
2515
|
children: [errorCount, " error"]
|
|
3002
|
-
},
|
|
3003
|
-
|
|
3004
|
-
lineNumber: 632,
|
|
3005
|
-
columnNumber: 28
|
|
3006
|
-
}, this),
|
|
3007
|
-
/* @__PURE__ */ (0, import_jsx_dev_runtime.jsxDEV)("span", {
|
|
2516
|
+
}),
|
|
2517
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
|
|
3008
2518
|
className: "ml-auto text-[11px] text-sand-400 tabular-nums shrink-0",
|
|
3009
2519
|
children: [entry.toolCalls.length, " tools"]
|
|
3010
|
-
}
|
|
3011
|
-
fileName: _jsxFileName,
|
|
3012
|
-
lineNumber: 635,
|
|
3013
|
-
columnNumber: 9
|
|
3014
|
-
}, this)
|
|
2520
|
+
})
|
|
3015
2521
|
]
|
|
3016
|
-
},
|
|
3017
|
-
fileName: _jsxFileName,
|
|
3018
|
-
lineNumber: 617,
|
|
3019
|
-
columnNumber: 7
|
|
3020
|
-
}, this), /* @__PURE__ */ (0, import_jsx_dev_runtime.jsxDEV)("div", {
|
|
2522
|
+
}), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
3021
2523
|
className: "ml-4 mb-4 space-y-3",
|
|
3022
|
-
children: [generate && /* @__PURE__ */ (
|
|
2524
|
+
children: [generate && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
3023
2525
|
className: "rounded-md border border-sand-100 bg-sand-50/70 p-3",
|
|
3024
|
-
children: [/* @__PURE__ */ (
|
|
2526
|
+
children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
3025
2527
|
className: "grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 xl:grid-cols-8 gap-x-4 gap-y-3",
|
|
3026
2528
|
children: [
|
|
3027
|
-
/* @__PURE__ */ (
|
|
2529
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(CompactMetric, {
|
|
3028
2530
|
label: "Duration",
|
|
3029
2531
|
value: formatDurationMs(generate.durationMs)
|
|
3030
|
-
},
|
|
3031
|
-
|
|
3032
|
-
lineNumber: 643,
|
|
3033
|
-
columnNumber: 15
|
|
3034
|
-
}, this),
|
|
3035
|
-
/* @__PURE__ */ (void 0)(CompactMetric, {
|
|
2532
|
+
}),
|
|
2533
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(CompactMetric, {
|
|
3036
2534
|
label: "TTFT",
|
|
3037
2535
|
value: formatRunTtftMs(generate.ttftMs)
|
|
3038
|
-
},
|
|
3039
|
-
|
|
3040
|
-
lineNumber: 644,
|
|
3041
|
-
columnNumber: 15
|
|
3042
|
-
}, this),
|
|
3043
|
-
/* @__PURE__ */ (void 0)(CompactMetric, {
|
|
2536
|
+
}),
|
|
2537
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(CompactMetric, {
|
|
3044
2538
|
label: "Tokens/sec",
|
|
3045
2539
|
value: formatTokensPerSec(generate.outputTokens, generate.durationMs, generate.ttftMs, tokensPerSecEnabled)
|
|
3046
|
-
},
|
|
3047
|
-
|
|
3048
|
-
lineNumber: 645,
|
|
3049
|
-
columnNumber: 15
|
|
3050
|
-
}, this),
|
|
3051
|
-
/* @__PURE__ */ (void 0)(CompactMetric, {
|
|
2540
|
+
}),
|
|
2541
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(CompactMetric, {
|
|
3052
2542
|
label: "Input",
|
|
3053
2543
|
value: formatNum(generate.inputTokens ?? 0)
|
|
3054
|
-
},
|
|
3055
|
-
|
|
3056
|
-
lineNumber: 646,
|
|
3057
|
-
columnNumber: 15
|
|
3058
|
-
}, this),
|
|
3059
|
-
/* @__PURE__ */ (void 0)(CompactMetric, {
|
|
2544
|
+
}),
|
|
2545
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(CompactMetric, {
|
|
3060
2546
|
label: "Output",
|
|
3061
2547
|
value: formatNum(generate.outputTokens ?? 0)
|
|
3062
|
-
},
|
|
3063
|
-
|
|
3064
|
-
lineNumber: 647,
|
|
3065
|
-
columnNumber: 15
|
|
3066
|
-
}, this),
|
|
3067
|
-
/* @__PURE__ */ (void 0)(CompactMetric, {
|
|
2548
|
+
}),
|
|
2549
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(CompactMetric, {
|
|
3068
2550
|
label: "Cache Read",
|
|
3069
2551
|
value: formatNum(generate.cacheReadTokens ?? 0)
|
|
3070
|
-
},
|
|
3071
|
-
|
|
3072
|
-
lineNumber: 648,
|
|
3073
|
-
columnNumber: 15
|
|
3074
|
-
}, this),
|
|
3075
|
-
/* @__PURE__ */ (void 0)(CompactMetric, {
|
|
2552
|
+
}),
|
|
2553
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(CompactMetric, {
|
|
3076
2554
|
label: "Cache Write",
|
|
3077
2555
|
value: formatNum(generate.cacheCreationTokens ?? 0)
|
|
3078
|
-
},
|
|
3079
|
-
|
|
3080
|
-
lineNumber: 649,
|
|
3081
|
-
columnNumber: 15
|
|
3082
|
-
}, this),
|
|
3083
|
-
/* @__PURE__ */ (void 0)(CompactMetric, {
|
|
2556
|
+
}),
|
|
2557
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(CompactMetric, {
|
|
3084
2558
|
label: "Cache 5m / 1h",
|
|
3085
2559
|
value: `${generate.cacheCreation5mTokens === null ? "—" : formatNum(generate.cacheCreation5mTokens)} / ${generate.cacheCreation1hTokens === null ? "—" : formatNum(generate.cacheCreation1hTokens)}`
|
|
3086
|
-
},
|
|
3087
|
-
|
|
3088
|
-
|
|
3089
|
-
columnNumber: 15
|
|
3090
|
-
}, this),
|
|
3091
|
-
/* @__PURE__ */ (void 0)(CompactMetric, { value: generate.costUsd === null ? "—" : formatMicroUsd(generate.costUsd) }, void 0, false, {
|
|
3092
|
-
fileName: _jsxFileName,
|
|
3093
|
-
lineNumber: 651,
|
|
3094
|
-
columnNumber: 15
|
|
3095
|
-
}, this),
|
|
3096
|
-
/* @__PURE__ */ (void 0)(CompactMetric, {
|
|
2560
|
+
}),
|
|
2561
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(CompactMetric, { value: generate.costUsd === null ? "—" : formatMicroUsd(generate.costUsd) }),
|
|
2562
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(CompactMetric, {
|
|
3097
2563
|
label: "Reasoning",
|
|
3098
2564
|
value: generate.reasoningTokens !== null && generate.reasoningTokens !== void 0 ? formatNum(generate.reasoningTokens) : "—"
|
|
3099
|
-
}
|
|
3100
|
-
fileName: _jsxFileName,
|
|
3101
|
-
lineNumber: 652,
|
|
3102
|
-
columnNumber: 15
|
|
3103
|
-
}, this)
|
|
2565
|
+
})
|
|
3104
2566
|
]
|
|
3105
|
-
},
|
|
3106
|
-
|
|
3107
|
-
lineNumber: 642,
|
|
3108
|
-
columnNumber: 13
|
|
3109
|
-
}, this), hasReasoning && /* @__PURE__ */ (void 0)(ReasoningBlock, { stepId: generate.id }, void 0, false, {
|
|
3110
|
-
fileName: _jsxFileName,
|
|
3111
|
-
lineNumber: 655,
|
|
3112
|
-
columnNumber: 30
|
|
3113
|
-
}, this)]
|
|
3114
|
-
}, void 0, true, {
|
|
3115
|
-
fileName: _jsxFileName,
|
|
3116
|
-
lineNumber: 641,
|
|
3117
|
-
columnNumber: 22
|
|
3118
|
-
}, this), entry.toolCalls.length > 0 && /* @__PURE__ */ (void 0)("div", {
|
|
2567
|
+
}), hasReasoning && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ReasoningBlock, { stepId: generate.id })]
|
|
2568
|
+
}), entry.toolCalls.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
|
|
3119
2569
|
className: "space-y-0.5",
|
|
3120
|
-
children: entry.toolCalls.map((toolCall) => /* @__PURE__ */ (
|
|
3121
|
-
|
|
3122
|
-
|
|
3123
|
-
|
|
3124
|
-
}, this))
|
|
3125
|
-
}, void 0, false, {
|
|
3126
|
-
fileName: _jsxFileName,
|
|
3127
|
-
lineNumber: 658,
|
|
3128
|
-
columnNumber: 40
|
|
3129
|
-
}, this)]
|
|
3130
|
-
}, void 0, true, {
|
|
3131
|
-
fileName: _jsxFileName,
|
|
3132
|
-
lineNumber: 640,
|
|
3133
|
-
columnNumber: 7
|
|
3134
|
-
}, this)]
|
|
3135
|
-
}, void 0, true, {
|
|
3136
|
-
fileName: _jsxFileName,
|
|
3137
|
-
lineNumber: 616,
|
|
3138
|
-
columnNumber: 10
|
|
3139
|
-
}, this);
|
|
2570
|
+
children: entry.toolCalls.map((toolCall) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ToolCallItem, { entry: toolCall }, `${toolCall.stepIndex}-${toolCall.callIndex}-${toolCall.toolCallId}`))
|
|
2571
|
+
})]
|
|
2572
|
+
})]
|
|
2573
|
+
});
|
|
3140
2574
|
}
|
|
3141
2575
|
function StepTreeSection({ steps, tokensPerSecEnabled }) {
|
|
3142
2576
|
const toolCallCount = steps.reduce((sum, step) => sum + step.toolCalls.length, 0);
|
|
3143
|
-
return /* @__PURE__ */ (0,
|
|
2577
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Section, {
|
|
3144
2578
|
title: `Steps (${steps.length} steps · ${toolCallCount} tool calls)`,
|
|
3145
2579
|
defaultOpen: true,
|
|
3146
|
-
children: /* @__PURE__ */ (0,
|
|
2580
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
|
|
3147
2581
|
className: "space-y-1",
|
|
3148
|
-
children: steps.map((step) => /* @__PURE__ */ (0,
|
|
2582
|
+
children: steps.map((step) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(StepTreeItem, {
|
|
3149
2583
|
entry: step,
|
|
3150
2584
|
tokensPerSecEnabled
|
|
3151
|
-
}, step.stepIndex
|
|
3152
|
-
|
|
3153
|
-
|
|
3154
|
-
columnNumber: 28
|
|
3155
|
-
}, this))
|
|
3156
|
-
}, void 0, false, {
|
|
3157
|
-
fileName: _jsxFileName,
|
|
3158
|
-
lineNumber: 673,
|
|
3159
|
-
columnNumber: 7
|
|
3160
|
-
}, this)
|
|
3161
|
-
}, void 0, false, {
|
|
3162
|
-
fileName: _jsxFileName,
|
|
3163
|
-
lineNumber: 672,
|
|
3164
|
-
columnNumber: 10
|
|
3165
|
-
}, this);
|
|
2585
|
+
}, step.stepIndex))
|
|
2586
|
+
})
|
|
2587
|
+
});
|
|
3166
2588
|
}
|
|
3167
2589
|
function buildStepTree(steps) {
|
|
3168
2590
|
const grouped = /* @__PURE__ */ new Map();
|
|
@@ -3242,66 +2664,34 @@ function extractText(content) {
|
|
|
3242
2664
|
return JSON.stringify(content);
|
|
3243
2665
|
}
|
|
3244
2666
|
function MonoPre({ className, children }) {
|
|
3245
|
-
return /* @__PURE__ */ (0,
|
|
2667
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("pre", {
|
|
3246
2668
|
className: `text-[12px] text-sand-700 whitespace-pre-wrap wrap-break-word font-mono leading-relaxed max-h-40 overflow-auto ${className ?? ""}`,
|
|
3247
2669
|
children
|
|
3248
|
-
}
|
|
3249
|
-
fileName: _jsxFileName,
|
|
3250
|
-
lineNumber: 774,
|
|
3251
|
-
columnNumber: 10
|
|
3252
|
-
}, this);
|
|
2670
|
+
});
|
|
3253
2671
|
}
|
|
3254
2672
|
function HistorySection({ history }) {
|
|
3255
|
-
return /* @__PURE__ */ (0,
|
|
2673
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Section, {
|
|
3256
2674
|
title: "History",
|
|
3257
2675
|
defaultOpen: false,
|
|
3258
|
-
children: /* @__PURE__ */ (0,
|
|
2676
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
|
|
3259
2677
|
className: "space-y-1.5",
|
|
3260
2678
|
children: history.map((item, i) => {
|
|
3261
2679
|
const content = HistoryContent.safeParse(item.content);
|
|
3262
|
-
return /* @__PURE__ */ (0,
|
|
2680
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
3263
2681
|
className: `rounded-md px-3 py-2 ${historyItemBg(item)}`,
|
|
3264
2682
|
children: [
|
|
3265
|
-
/* @__PURE__ */ (0,
|
|
2683
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
|
|
3266
2684
|
className: "text-[10px] uppercase tracking-wider text-sand-500 font-medium mb-1",
|
|
3267
2685
|
children: historyItemLabel(item)
|
|
3268
|
-
},
|
|
3269
|
-
|
|
3270
|
-
|
|
3271
|
-
|
|
3272
|
-
}, this),
|
|
3273
|
-
item.content !== null && item.content !== void 0 && /* @__PURE__ */ (void 0)(MonoPre, { children: content.success ? extractText(content.data) : JSON.stringify(item.content) }, void 0, false, {
|
|
3274
|
-
fileName: _jsxFileName,
|
|
3275
|
-
lineNumber: 791,
|
|
3276
|
-
columnNumber: 71
|
|
3277
|
-
}, this),
|
|
3278
|
-
item.arguments && /* @__PURE__ */ (void 0)(MonoPre, { children: item.arguments }, void 0, false, {
|
|
3279
|
-
fileName: _jsxFileName,
|
|
3280
|
-
lineNumber: 794,
|
|
3281
|
-
columnNumber: 34
|
|
3282
|
-
}, this),
|
|
3283
|
-
item.output && /* @__PURE__ */ (void 0)(MonoPre, { children: item.output }, void 0, false, {
|
|
3284
|
-
fileName: _jsxFileName,
|
|
3285
|
-
lineNumber: 795,
|
|
3286
|
-
columnNumber: 31
|
|
3287
|
-
}, this)
|
|
2686
|
+
}),
|
|
2687
|
+
item.content !== null && item.content !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(MonoPre, { children: content.success ? extractText(content.data) : JSON.stringify(item.content) }),
|
|
2688
|
+
item.arguments && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(MonoPre, { children: item.arguments }),
|
|
2689
|
+
item.output && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(MonoPre, { children: item.output })
|
|
3288
2690
|
]
|
|
3289
|
-
}, `hist-${i}
|
|
3290
|
-
fileName: _jsxFileName,
|
|
3291
|
-
lineNumber: 787,
|
|
3292
|
-
columnNumber: 16
|
|
3293
|
-
}, this);
|
|
2691
|
+
}, `hist-${i}`);
|
|
3294
2692
|
})
|
|
3295
|
-
}
|
|
3296
|
-
|
|
3297
|
-
lineNumber: 784,
|
|
3298
|
-
columnNumber: 7
|
|
3299
|
-
}, this)
|
|
3300
|
-
}, void 0, false, {
|
|
3301
|
-
fileName: _jsxFileName,
|
|
3302
|
-
lineNumber: 783,
|
|
3303
|
-
columnNumber: 10
|
|
3304
|
-
}, this);
|
|
2693
|
+
})
|
|
2694
|
+
});
|
|
3305
2695
|
}
|
|
3306
2696
|
var TOOL_NAME_PREVIEW_CHARACTERS = 60;
|
|
3307
2697
|
var TOOL_NAME_COMPACT_PREVIEW_CHARACTERS = 30;
|
|
@@ -3321,145 +2711,81 @@ function ToolsHeaderMetadata({ tools }) {
|
|
|
3321
2711
|
const wide = toolNamePreview(tools);
|
|
3322
2712
|
const compact = toolNamePreview(tools, TOOL_NAME_COMPACT_PREVIEW_CHARACTERS);
|
|
3323
2713
|
const mobile = toolNamePreview(tools, TOOL_NAME_MOBILE_PREVIEW_CHARACTERS);
|
|
3324
|
-
return /* @__PURE__ */ (0,
|
|
3325
|
-
/* @__PURE__ */ (0,
|
|
2714
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
|
|
2715
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
|
|
3326
2716
|
className: "shrink-0",
|
|
3327
2717
|
children: "·"
|
|
3328
|
-
},
|
|
3329
|
-
|
|
3330
|
-
lineNumber: 829,
|
|
3331
|
-
columnNumber: 7
|
|
3332
|
-
}, this),
|
|
3333
|
-
wide.names.length > 0 && /* @__PURE__ */ (void 0)("span", {
|
|
2718
|
+
}),
|
|
2719
|
+
wide.names.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
|
|
3334
2720
|
className: "hidden shrink-0 xl:inline",
|
|
3335
2721
|
children: wide.names.join(", ")
|
|
3336
|
-
},
|
|
3337
|
-
|
|
3338
|
-
lineNumber: 830,
|
|
3339
|
-
columnNumber: 33
|
|
3340
|
-
}, this),
|
|
3341
|
-
wide.omittedCount > 0 && /* @__PURE__ */ (void 0)("span", {
|
|
2722
|
+
}),
|
|
2723
|
+
wide.omittedCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
|
|
3342
2724
|
className: "hidden shrink-0 xl:inline",
|
|
3343
2725
|
children: ["+", wide.omittedCount]
|
|
3344
|
-
},
|
|
3345
|
-
|
|
3346
|
-
lineNumber: 831,
|
|
3347
|
-
columnNumber: 33
|
|
3348
|
-
}, this),
|
|
3349
|
-
compact.names.length > 0 && /* @__PURE__ */ (void 0)("span", {
|
|
2726
|
+
}),
|
|
2727
|
+
compact.names.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
|
|
3350
2728
|
className: "hidden shrink-0 sm:inline xl:hidden",
|
|
3351
2729
|
children: compact.names.join(", ")
|
|
3352
|
-
},
|
|
3353
|
-
|
|
3354
|
-
lineNumber: 832,
|
|
3355
|
-
columnNumber: 36
|
|
3356
|
-
}, this),
|
|
3357
|
-
compact.omittedCount > 0 && /* @__PURE__ */ (void 0)("span", {
|
|
2730
|
+
}),
|
|
2731
|
+
compact.omittedCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
|
|
3358
2732
|
className: "hidden shrink-0 sm:inline xl:hidden",
|
|
3359
2733
|
children: ["+", compact.omittedCount]
|
|
3360
|
-
},
|
|
3361
|
-
|
|
3362
|
-
lineNumber: 833,
|
|
3363
|
-
columnNumber: 36
|
|
3364
|
-
}, this),
|
|
3365
|
-
mobile.names.length > 0 && /* @__PURE__ */ (void 0)("span", {
|
|
2734
|
+
}),
|
|
2735
|
+
mobile.names.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
|
|
3366
2736
|
className: "shrink-0 sm:hidden",
|
|
3367
2737
|
children: mobile.names.join(", ")
|
|
3368
|
-
},
|
|
3369
|
-
|
|
3370
|
-
lineNumber: 834,
|
|
3371
|
-
columnNumber: 35
|
|
3372
|
-
}, this),
|
|
3373
|
-
mobile.omittedCount > 0 && /* @__PURE__ */ (void 0)("span", {
|
|
2738
|
+
}),
|
|
2739
|
+
mobile.omittedCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
|
|
3374
2740
|
className: "shrink-0 sm:hidden",
|
|
3375
2741
|
children: ["+", mobile.omittedCount]
|
|
3376
|
-
}
|
|
3377
|
-
|
|
3378
|
-
lineNumber: 835,
|
|
3379
|
-
columnNumber: 35
|
|
3380
|
-
}, this)
|
|
3381
|
-
] }, void 0, true);
|
|
2742
|
+
})
|
|
2743
|
+
] });
|
|
3382
2744
|
}
|
|
3383
2745
|
function ToolInputZod({ code, fullCode }) {
|
|
3384
2746
|
const highlighted = (0, import_react.useMemo)(() => highlightTypeText(code), [code]);
|
|
3385
|
-
return /* @__PURE__ */ (0,
|
|
2747
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("pre", {
|
|
3386
2748
|
"data-zod-parameter-schema": true,
|
|
3387
2749
|
className: `max-h-64 overflow-auto rounded-md bg-sand-900 px-3 py-2.5 font-mono text-[11px] leading-relaxed whitespace-pre text-sand-200 ${fullCode ? "cursor-help outline-none focus-visible:ring-2 focus-visible:ring-sienna-300" : ""}`,
|
|
3388
2750
|
tabIndex: fullCode ? 0 : void 0,
|
|
3389
2751
|
title: fullCode,
|
|
3390
|
-
children: fullCode ? /* @__PURE__ */ (0,
|
|
2752
|
+
children: fullCode ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
|
|
3391
2753
|
"aria-hidden": "true",
|
|
3392
2754
|
children: highlighted
|
|
3393
|
-
},
|
|
3394
|
-
fileName: _jsxFileName,
|
|
3395
|
-
lineNumber: 848,
|
|
3396
|
-
columnNumber: 11
|
|
3397
|
-
}, this), /* @__PURE__ */ (0, import_jsx_dev_runtime.jsxDEV)("span", {
|
|
2755
|
+
}), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
|
|
3398
2756
|
className: "sr-only",
|
|
3399
2757
|
children: fullCode
|
|
3400
|
-
}
|
|
3401
|
-
|
|
3402
|
-
lineNumber: 849,
|
|
3403
|
-
columnNumber: 11
|
|
3404
|
-
}, this)] }, void 0, true) : highlighted
|
|
3405
|
-
}, void 0, false, {
|
|
3406
|
-
fileName: _jsxFileName,
|
|
3407
|
-
lineNumber: 846,
|
|
3408
|
-
columnNumber: 10
|
|
3409
|
-
}, this);
|
|
2758
|
+
})] }) : highlighted
|
|
2759
|
+
});
|
|
3410
2760
|
}
|
|
3411
2761
|
function ToolCard({ tool }) {
|
|
3412
|
-
return /* @__PURE__ */ (0,
|
|
2762
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
3413
2763
|
className: "min-w-0 rounded-md border border-sand-100 bg-sand-50/70 p-3",
|
|
3414
2764
|
children: [
|
|
3415
|
-
/* @__PURE__ */ (0,
|
|
2765
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
|
|
3416
2766
|
className: "break-all font-mono text-[13px] font-semibold text-sand-900",
|
|
3417
2767
|
children: tool.name
|
|
3418
|
-
},
|
|
3419
|
-
|
|
3420
|
-
lineNumber: 859,
|
|
3421
|
-
columnNumber: 7
|
|
3422
|
-
}, this),
|
|
3423
|
-
tool.description && /* @__PURE__ */ (void 0)("p", {
|
|
2768
|
+
}),
|
|
2769
|
+
tool.description && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", {
|
|
3424
2770
|
className: "mt-2 text-[12px] leading-relaxed text-sand-700",
|
|
3425
2771
|
children: tool.description
|
|
3426
|
-
},
|
|
3427
|
-
|
|
3428
|
-
lineNumber: 860,
|
|
3429
|
-
columnNumber: 28
|
|
3430
|
-
}, this),
|
|
3431
|
-
/* @__PURE__ */ (0, import_jsx_dev_runtime.jsxDEV)("div", {
|
|
2772
|
+
}),
|
|
2773
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
3432
2774
|
className: "mt-3",
|
|
3433
|
-
children: [/* @__PURE__ */ (0,
|
|
2775
|
+
children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
3434
2776
|
className: "mb-1.5 text-[10px] font-medium uppercase tracking-wider text-sand-400",
|
|
3435
2777
|
children: [
|
|
3436
2778
|
"Parameters (",
|
|
3437
2779
|
tool.parameterCount,
|
|
3438
2780
|
")"
|
|
3439
2781
|
]
|
|
3440
|
-
},
|
|
3441
|
-
fileName: _jsxFileName,
|
|
3442
|
-
lineNumber: 862,
|
|
3443
|
-
columnNumber: 9
|
|
3444
|
-
}, this), /* @__PURE__ */ (0, import_jsx_dev_runtime.jsxDEV)(ToolInputZod, {
|
|
2782
|
+
}), /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ToolInputZod, {
|
|
3445
2783
|
code: tool.inputZod,
|
|
3446
2784
|
fullCode: tool.fullInputZod
|
|
3447
|
-
}
|
|
3448
|
-
|
|
3449
|
-
lineNumber: 865,
|
|
3450
|
-
columnNumber: 9
|
|
3451
|
-
}, this)]
|
|
3452
|
-
}, void 0, true, {
|
|
3453
|
-
fileName: _jsxFileName,
|
|
3454
|
-
lineNumber: 861,
|
|
3455
|
-
columnNumber: 7
|
|
3456
|
-
}, this)
|
|
2785
|
+
})]
|
|
2786
|
+
})
|
|
3457
2787
|
]
|
|
3458
|
-
}
|
|
3459
|
-
fileName: _jsxFileName,
|
|
3460
|
-
lineNumber: 858,
|
|
3461
|
-
columnNumber: 10
|
|
3462
|
-
}, this);
|
|
2788
|
+
});
|
|
3463
2789
|
}
|
|
3464
2790
|
function ToolsPanel({ id, tools }) {
|
|
3465
2791
|
const [open, setOpen] = (0, import_react.useState)(false);
|
|
@@ -3471,46 +2797,22 @@ function ToolsPanel({ id, tools }) {
|
|
|
3471
2797
|
refetchOnReconnect: false
|
|
3472
2798
|
});
|
|
3473
2799
|
const hasView = query.data !== void 0 && query.data.length > 0;
|
|
3474
|
-
return /* @__PURE__ */ (0,
|
|
2800
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Section, {
|
|
3475
2801
|
title: `Tools (${tools.length})`,
|
|
3476
2802
|
defaultOpen: false,
|
|
3477
|
-
headerMetadata: /* @__PURE__ */ (0,
|
|
3478
|
-
fileName: _jsxFileName,
|
|
3479
|
-
lineNumber: 885,
|
|
3480
|
-
columnNumber: 89
|
|
3481
|
-
}, this),
|
|
2803
|
+
headerMetadata: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ToolsHeaderMetadata, { tools }),
|
|
3482
2804
|
onOpenChange: setOpen,
|
|
3483
|
-
children: query.isFetching && !hasView ? /* @__PURE__ */ (0,
|
|
2805
|
+
children: query.isFetching && !hasView ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", {
|
|
3484
2806
|
className: "text-[12px] text-sand-400",
|
|
3485
2807
|
children: "Loading tool contracts…"
|
|
3486
|
-
}
|
|
3487
|
-
fileName: _jsxFileName,
|
|
3488
|
-
lineNumber: 886,
|
|
3489
|
-
columnNumber: 39
|
|
3490
|
-
}, this) : query.isError || !hasView ? /* @__PURE__ */ (0, import_jsx_dev_runtime.jsxDEV)("p", {
|
|
2808
|
+
}) : query.isError || !hasView ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", {
|
|
3491
2809
|
className: "text-[12px] text-sand-400",
|
|
3492
2810
|
children: "Tool contracts could not be loaded."
|
|
3493
|
-
}
|
|
3494
|
-
fileName: _jsxFileName,
|
|
3495
|
-
lineNumber: 886,
|
|
3496
|
-
columnNumber: 138
|
|
3497
|
-
}, this) : /* @__PURE__ */ (0, import_jsx_dev_runtime.jsxDEV)("div", {
|
|
2811
|
+
}) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
|
|
3498
2812
|
className: "space-y-2",
|
|
3499
|
-
children: query.data.map((tool, index) => /* @__PURE__ */ (0,
|
|
3500
|
-
|
|
3501
|
-
|
|
3502
|
-
columnNumber: 44
|
|
3503
|
-
}, this))
|
|
3504
|
-
}, void 0, false, {
|
|
3505
|
-
fileName: _jsxFileName,
|
|
3506
|
-
lineNumber: 886,
|
|
3507
|
-
columnNumber: 221
|
|
3508
|
-
}, this)
|
|
3509
|
-
}, void 0, false, {
|
|
3510
|
-
fileName: _jsxFileName,
|
|
3511
|
-
lineNumber: 885,
|
|
3512
|
-
columnNumber: 10
|
|
3513
|
-
}, this);
|
|
2813
|
+
children: query.data.map((tool, index) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ToolCard, { tool }, `${tool.name}-${index}`))
|
|
2814
|
+
})
|
|
2815
|
+
});
|
|
3514
2816
|
}
|
|
3515
2817
|
var TYPE_TOKEN_RE = /("(?:[^"\\]|\\.)*")|(\b\d+(?:\.\d+)?\b)|(\btype\b|\bz\b(?=\.))|(\b(?:string|number|boolean|null|unknown|Record)\b)|([{}[\]()<>|?:,.=])|([A-Za-z_$][\w$]*)|(\s+|.)/g;
|
|
3516
2818
|
function highlightTypeText(text) {
|
|
@@ -3519,50 +2821,30 @@ function highlightTypeText(text) {
|
|
|
3519
2821
|
for (const match of text.matchAll(TYPE_TOKEN_RE)) {
|
|
3520
2822
|
const [token, str, num, kw, builtin, punct, ident] = match;
|
|
3521
2823
|
const key = `${match.index}-${token}`;
|
|
3522
|
-
if (str || num) nodes.push(/* @__PURE__ */ (0,
|
|
2824
|
+
if (str || num) nodes.push(/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
|
|
3523
2825
|
className: "text-sage-400",
|
|
3524
2826
|
children: token
|
|
3525
|
-
}, key
|
|
3526
|
-
fileName: _jsxFileName,
|
|
3527
|
-
lineNumber: 902,
|
|
3528
|
-
columnNumber: 18
|
|
3529
|
-
}, this));
|
|
2827
|
+
}, key));
|
|
3530
2828
|
else if (kw) {
|
|
3531
2829
|
afterTypeKeyword = token === "type";
|
|
3532
|
-
nodes.push(/* @__PURE__ */ (0,
|
|
2830
|
+
nodes.push(/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
|
|
3533
2831
|
className: "text-sienna-400",
|
|
3534
2832
|
children: token
|
|
3535
|
-
}, key
|
|
3536
|
-
|
|
3537
|
-
lineNumber: 908,
|
|
3538
|
-
columnNumber: 18
|
|
3539
|
-
}, this));
|
|
3540
|
-
} else if (builtin) nodes.push(/* @__PURE__ */ (0, import_jsx_dev_runtime.jsxDEV)("span", {
|
|
2833
|
+
}, key));
|
|
2834
|
+
} else if (builtin) nodes.push(/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
|
|
3541
2835
|
className: "text-blue-300",
|
|
3542
2836
|
children: token
|
|
3543
|
-
}, key
|
|
3544
|
-
|
|
3545
|
-
lineNumber: 912,
|
|
3546
|
-
columnNumber: 18
|
|
3547
|
-
}, this));
|
|
3548
|
-
else if (punct) nodes.push(/* @__PURE__ */ (0, import_jsx_dev_runtime.jsxDEV)("span", {
|
|
2837
|
+
}, key));
|
|
2838
|
+
else if (punct) nodes.push(/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
|
|
3549
2839
|
className: "text-sand-500",
|
|
3550
2840
|
children: token
|
|
3551
|
-
}, key
|
|
3552
|
-
fileName: _jsxFileName,
|
|
3553
|
-
lineNumber: 916,
|
|
3554
|
-
columnNumber: 18
|
|
3555
|
-
}, this));
|
|
2841
|
+
}, key));
|
|
3556
2842
|
else if (ident && afterTypeKeyword) {
|
|
3557
2843
|
afterTypeKeyword = false;
|
|
3558
|
-
nodes.push(/* @__PURE__ */ (0,
|
|
2844
|
+
nodes.push(/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
|
|
3559
2845
|
className: "font-semibold text-sand-50",
|
|
3560
2846
|
children: token
|
|
3561
|
-
}, key
|
|
3562
|
-
fileName: _jsxFileName,
|
|
3563
|
-
lineNumber: 922,
|
|
3564
|
-
columnNumber: 18
|
|
3565
|
-
}, this));
|
|
2847
|
+
}, key));
|
|
3566
2848
|
} else nodes.push(token);
|
|
3567
2849
|
}
|
|
3568
2850
|
return nodes;
|
|
@@ -3574,18 +2856,14 @@ function ResponseTypePanel({ id }) {
|
|
|
3574
2856
|
const code = mode === "zod" ? zod ?? typescript : typescript ?? zod;
|
|
3575
2857
|
const highlighted = (0, import_react.useMemo)(() => code === null ? null : highlightTypeText(code), [code]);
|
|
3576
2858
|
if (!data || code === null || highlighted === null) return null;
|
|
3577
|
-
return /* @__PURE__ */ (0,
|
|
2859
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
3578
2860
|
className: "panel overflow-hidden",
|
|
3579
|
-
children: [/* @__PURE__ */ (0,
|
|
2861
|
+
children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
3580
2862
|
className: "panel-header flex items-center px-4 py-2",
|
|
3581
|
-
children: [/* @__PURE__ */ (0,
|
|
2863
|
+
children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
|
|
3582
2864
|
className: "text-[11px] uppercase tracking-wider text-sand-500 font-medium",
|
|
3583
2865
|
children: "Response Type"
|
|
3584
|
-
},
|
|
3585
|
-
fileName: _jsxFileName,
|
|
3586
|
-
lineNumber: 954,
|
|
3587
|
-
columnNumber: 9
|
|
3588
|
-
}, this), /* @__PURE__ */ (0, import_jsx_dev_runtime.jsxDEV)("div", {
|
|
2866
|
+
}), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
|
|
3589
2867
|
className: "ml-auto flex gap-1",
|
|
3590
2868
|
children: [{
|
|
3591
2869
|
value: "zod",
|
|
@@ -3595,53 +2873,25 @@ function ResponseTypePanel({ id }) {
|
|
|
3595
2873
|
value: "ts",
|
|
3596
2874
|
label: "ts",
|
|
3597
2875
|
available: typescript !== null
|
|
3598
|
-
}].map((option) => /* @__PURE__ */ (0,
|
|
2876
|
+
}].map((option) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", {
|
|
3599
2877
|
type: "button",
|
|
3600
2878
|
disabled: !option.available,
|
|
3601
2879
|
className: `px-3 py-1 text-[12px] font-mono rounded-md transition-colors ${mode === option.value ? "bg-sand-200 text-sand-700" : "text-sand-400 hover:text-sand-600 disabled:text-sand-300 disabled:cursor-not-allowed"}`,
|
|
3602
2880
|
onClick: () => setMode(option.value),
|
|
3603
2881
|
children: option.label
|
|
3604
|
-
}, option.value
|
|
3605
|
-
|
|
3606
|
-
|
|
3607
|
-
columnNumber: 36
|
|
3608
|
-
}, this))
|
|
3609
|
-
}, void 0, false, {
|
|
3610
|
-
fileName: _jsxFileName,
|
|
3611
|
-
lineNumber: 957,
|
|
3612
|
-
columnNumber: 9
|
|
3613
|
-
}, this)]
|
|
3614
|
-
}, void 0, true, {
|
|
3615
|
-
fileName: _jsxFileName,
|
|
3616
|
-
lineNumber: 953,
|
|
3617
|
-
columnNumber: 7
|
|
3618
|
-
}, this), /* @__PURE__ */ (0, import_jsx_dev_runtime.jsxDEV)("div", {
|
|
2882
|
+
}, option.value))
|
|
2883
|
+
})]
|
|
2884
|
+
}), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
3619
2885
|
className: "relative",
|
|
3620
|
-
children: [/* @__PURE__ */ (0,
|
|
2886
|
+
children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(CopyButton, {
|
|
3621
2887
|
text: code,
|
|
3622
2888
|
dark: true
|
|
3623
|
-
},
|
|
3624
|
-
fileName: _jsxFileName,
|
|
3625
|
-
lineNumber: 972,
|
|
3626
|
-
columnNumber: 9
|
|
3627
|
-
}, this), /* @__PURE__ */ (0, import_jsx_dev_runtime.jsxDEV)("pre", {
|
|
2889
|
+
}), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("pre", {
|
|
3628
2890
|
className: "bg-sand-900 px-4 py-3 text-[12px] text-sand-200 whitespace-pre-wrap wrap-break-word font-mono leading-relaxed max-h-64 overflow-auto",
|
|
3629
2891
|
children: highlighted
|
|
3630
|
-
}
|
|
3631
|
-
|
|
3632
|
-
|
|
3633
|
-
columnNumber: 9
|
|
3634
|
-
}, this)]
|
|
3635
|
-
}, void 0, true, {
|
|
3636
|
-
fileName: _jsxFileName,
|
|
3637
|
-
lineNumber: 971,
|
|
3638
|
-
columnNumber: 7
|
|
3639
|
-
}, this)]
|
|
3640
|
-
}, void 0, true, {
|
|
3641
|
-
fileName: _jsxFileName,
|
|
3642
|
-
lineNumber: 952,
|
|
3643
|
-
columnNumber: 10
|
|
3644
|
-
}, this);
|
|
2892
|
+
})]
|
|
2893
|
+
})]
|
|
2894
|
+
});
|
|
3645
2895
|
}
|
|
3646
2896
|
function RequestDetail({ id }) {
|
|
3647
2897
|
const { data, isLoading, error, isError } = RequestLogService.useRequestLog("A", id);
|
|
@@ -3652,58 +2902,26 @@ function RequestDetail({ id }) {
|
|
|
3652
2902
|
orderBy: "id-asc"
|
|
3653
2903
|
});
|
|
3654
2904
|
const stepTree = buildStepTree(stepsData?.rows ?? []);
|
|
3655
|
-
if (isLoading || isStepsLoading) return /* @__PURE__ */ (0,
|
|
2905
|
+
if (isLoading || isStepsLoading) return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
3656
2906
|
className: "max-w-6xl mx-auto space-y-4",
|
|
3657
2907
|
children: [
|
|
3658
|
-
/* @__PURE__ */ (0,
|
|
3659
|
-
|
|
3660
|
-
|
|
3661
|
-
columnNumber: 9
|
|
3662
|
-
}, this),
|
|
3663
|
-
/* @__PURE__ */ (0, import_jsx_dev_runtime.jsxDEV)("div", { className: "h-40 panel animate-pulse" }, void 0, false, {
|
|
3664
|
-
fileName: _jsxFileName,
|
|
3665
|
-
lineNumber: 1006,
|
|
3666
|
-
columnNumber: 9
|
|
3667
|
-
}, this),
|
|
3668
|
-
/* @__PURE__ */ (0, import_jsx_dev_runtime.jsxDEV)("div", { className: "h-32 panel animate-pulse" }, void 0, false, {
|
|
3669
|
-
fileName: _jsxFileName,
|
|
3670
|
-
lineNumber: 1007,
|
|
3671
|
-
columnNumber: 9
|
|
3672
|
-
}, this)
|
|
2908
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "h-4 w-32 bg-sand-200 rounded animate-pulse" }),
|
|
2909
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "h-40 panel animate-pulse" }),
|
|
2910
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "h-32 panel animate-pulse" })
|
|
3673
2911
|
]
|
|
3674
|
-
}
|
|
3675
|
-
|
|
3676
|
-
lineNumber: 1004,
|
|
3677
|
-
columnNumber: 12
|
|
3678
|
-
}, this);
|
|
3679
|
-
if (isError || isStepsError || !data) return /* @__PURE__ */ (0, import_jsx_dev_runtime.jsxDEV)("div", {
|
|
2912
|
+
});
|
|
2913
|
+
if (isError || isStepsError || !data) return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
3680
2914
|
className: "max-w-6xl mx-auto",
|
|
3681
|
-
children: [/* @__PURE__ */ (0,
|
|
2915
|
+
children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Link, {
|
|
3682
2916
|
to: "/logs",
|
|
3683
2917
|
className: "flex items-center gap-1 text-[13px] text-sand-500 hover:text-sienna-500 mb-4",
|
|
3684
|
-
children: [/* @__PURE__ */ (0,
|
|
3685
|
-
|
|
3686
|
-
lineNumber: 1013,
|
|
3687
|
-
columnNumber: 11
|
|
3688
|
-
}, this), "Back to Logs"]
|
|
3689
|
-
}, void 0, true, {
|
|
3690
|
-
fileName: _jsxFileName,
|
|
3691
|
-
lineNumber: 1012,
|
|
3692
|
-
columnNumber: 9
|
|
3693
|
-
}, this), /* @__PURE__ */ (0, import_jsx_dev_runtime.jsxDEV)("p", {
|
|
2918
|
+
children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(lucideArrowLeft, { className: "size-3.5" }), "Back to Logs"]
|
|
2919
|
+
}), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", {
|
|
3694
2920
|
role: "alert",
|
|
3695
2921
|
className: "text-danger-500 text-sm",
|
|
3696
2922
|
children: isError ? isSonamuError(error) && error.code === 404 ? "Request not found." : "Failed to load request." : isStepsError ? "Failed to load request steps." : "Request not found."
|
|
3697
|
-
}
|
|
3698
|
-
|
|
3699
|
-
lineNumber: 1016,
|
|
3700
|
-
columnNumber: 9
|
|
3701
|
-
}, this)]
|
|
3702
|
-
}, void 0, true, {
|
|
3703
|
-
fileName: _jsxFileName,
|
|
3704
|
-
lineNumber: 1011,
|
|
3705
|
-
columnNumber: 12
|
|
3706
|
-
}, this);
|
|
2923
|
+
})]
|
|
2924
|
+
});
|
|
3707
2925
|
const toolCalls = stepTree.flatMap((step) => step.toolCalls);
|
|
3708
2926
|
const firstImageGenerationStepId = toolCalls.find((toolCall) => toolCall.toolName === "image_generation")?.id ?? null;
|
|
3709
2927
|
const hasSteps = stepTree.length > 0;
|
|
@@ -3712,210 +2930,90 @@ function RequestDetail({ id }) {
|
|
|
3712
2930
|
const hasHistory = history !== null && history.length > 0;
|
|
3713
2931
|
const tools = data.tools ?? null;
|
|
3714
2932
|
const hasTools = tools !== null && tools.length > 0;
|
|
3715
|
-
const responseTypePanel = data.is_structured ? /* @__PURE__ */ (0,
|
|
3716
|
-
|
|
3717
|
-
lineNumber: 1031,
|
|
3718
|
-
columnNumber: 50
|
|
3719
|
-
}, this) : null;
|
|
3720
|
-
const promptSections = /* @__PURE__ */ (0, import_jsx_dev_runtime.jsxDEV)("div", {
|
|
2933
|
+
const responseTypePanel = data.is_structured ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ResponseTypePanel, { id }) : null;
|
|
2934
|
+
const promptSections = /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
3721
2935
|
className: "space-y-4",
|
|
3722
|
-
children: [/* @__PURE__ */ (0,
|
|
2936
|
+
children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Section, {
|
|
3723
2937
|
title: "System",
|
|
3724
|
-
children: /* @__PURE__ */ (0,
|
|
2938
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
3725
2939
|
className: "relative",
|
|
3726
|
-
children: [/* @__PURE__ */ (0,
|
|
3727
|
-
fileName: _jsxFileName,
|
|
3728
|
-
lineNumber: 1035,
|
|
3729
|
-
columnNumber: 11
|
|
3730
|
-
}, this), /* @__PURE__ */ (0, import_jsx_dev_runtime.jsxDEV)(FormattedContent, {
|
|
2940
|
+
children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(CopyButton, { text: data.system_prompt ?? "null" }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)(FormattedContent, {
|
|
3731
2941
|
text: data.system_prompt ?? "null",
|
|
3732
2942
|
markdown: true
|
|
3733
|
-
}
|
|
3734
|
-
|
|
3735
|
-
|
|
3736
|
-
columnNumber: 11
|
|
3737
|
-
}, this)]
|
|
3738
|
-
}, void 0, true, {
|
|
3739
|
-
fileName: _jsxFileName,
|
|
3740
|
-
lineNumber: 1034,
|
|
3741
|
-
columnNumber: 9
|
|
3742
|
-
}, this)
|
|
3743
|
-
}, void 0, false, {
|
|
3744
|
-
fileName: _jsxFileName,
|
|
3745
|
-
lineNumber: 1033,
|
|
3746
|
-
columnNumber: 7
|
|
3747
|
-
}, this), /* @__PURE__ */ (0, import_jsx_dev_runtime.jsxDEV)(Section, {
|
|
2943
|
+
})]
|
|
2944
|
+
})
|
|
2945
|
+
}), /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Section, {
|
|
3748
2946
|
title: "User",
|
|
3749
|
-
children: /* @__PURE__ */ (0,
|
|
2947
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
3750
2948
|
className: "space-y-3",
|
|
3751
|
-
children: [/* @__PURE__ */ (0,
|
|
2949
|
+
children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
3752
2950
|
className: "relative",
|
|
3753
|
-
children: [/* @__PURE__ */ (0,
|
|
3754
|
-
fileName: _jsxFileName,
|
|
3755
|
-
lineNumber: 1042,
|
|
3756
|
-
columnNumber: 13
|
|
3757
|
-
}, this), /* @__PURE__ */ (0, import_jsx_dev_runtime.jsxDEV)(FormattedContent, {
|
|
2951
|
+
children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(CopyButton, { text: data.user_prompt ?? "null" }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)(FormattedContent, {
|
|
3758
2952
|
text: data.user_prompt ?? "null",
|
|
3759
2953
|
markdown: true
|
|
3760
|
-
}
|
|
3761
|
-
|
|
3762
|
-
lineNumber: 1043,
|
|
3763
|
-
columnNumber: 13
|
|
3764
|
-
}, this)]
|
|
3765
|
-
}, void 0, true, {
|
|
3766
|
-
fileName: _jsxFileName,
|
|
3767
|
-
lineNumber: 1041,
|
|
3768
|
-
columnNumber: 11
|
|
3769
|
-
}, this), /* @__PURE__ */ (0, import_jsx_dev_runtime.jsxDEV)(RequestInputImages, {
|
|
2954
|
+
})]
|
|
2955
|
+
}), /* @__PURE__ */ (0, import_jsx_runtime.jsx)(RequestInputImages, {
|
|
3770
2956
|
images: data.input_images,
|
|
3771
2957
|
stepId: firstImageGenerationStepId
|
|
3772
|
-
}
|
|
3773
|
-
|
|
3774
|
-
|
|
3775
|
-
|
|
3776
|
-
|
|
3777
|
-
}, void 0, true, {
|
|
3778
|
-
fileName: _jsxFileName,
|
|
3779
|
-
lineNumber: 1040,
|
|
3780
|
-
columnNumber: 9
|
|
3781
|
-
}, this)
|
|
3782
|
-
}, void 0, false, {
|
|
3783
|
-
fileName: _jsxFileName,
|
|
3784
|
-
lineNumber: 1039,
|
|
3785
|
-
columnNumber: 7
|
|
3786
|
-
}, this)]
|
|
3787
|
-
}, void 0, true, {
|
|
3788
|
-
fileName: _jsxFileName,
|
|
3789
|
-
lineNumber: 1032,
|
|
3790
|
-
columnNumber: 26
|
|
3791
|
-
}, this);
|
|
3792
|
-
return /* @__PURE__ */ (0, import_jsx_dev_runtime.jsxDEV)("div", {
|
|
2958
|
+
})]
|
|
2959
|
+
})
|
|
2960
|
+
})]
|
|
2961
|
+
});
|
|
2962
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
3793
2963
|
className: `mx-auto space-y-4 ${hasSteps ? "max-w-[120rem]" : "max-w-6xl"}`,
|
|
3794
2964
|
children: [
|
|
3795
|
-
/* @__PURE__ */ (0,
|
|
2965
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Link, {
|
|
3796
2966
|
to: "/logs",
|
|
3797
2967
|
className: "inline-flex items-center gap-1 text-[13px] text-sand-500 hover:text-sienna-500 transition-colors",
|
|
3798
|
-
children: [/* @__PURE__ */ (0,
|
|
3799
|
-
|
|
3800
|
-
|
|
3801
|
-
|
|
3802
|
-
|
|
3803
|
-
|
|
3804
|
-
fileName: _jsxFileName,
|
|
3805
|
-
lineNumber: 1050,
|
|
3806
|
-
columnNumber: 7
|
|
3807
|
-
}, this),
|
|
3808
|
-
/* @__PURE__ */ (0, import_jsx_dev_runtime.jsxDEV)(HeaderBar, { data }, void 0, false, {
|
|
3809
|
-
fileName: _jsxFileName,
|
|
3810
|
-
lineNumber: 1055,
|
|
3811
|
-
columnNumber: 7
|
|
3812
|
-
}, this),
|
|
3813
|
-
data.error_message && /* @__PURE__ */ (void 0)(ErrorPanel, { message: data.error_message }, void 0, false, {
|
|
3814
|
-
fileName: _jsxFileName,
|
|
3815
|
-
lineNumber: 1057,
|
|
3816
|
-
columnNumber: 30
|
|
3817
|
-
}, this),
|
|
3818
|
-
hasHistory && /* @__PURE__ */ (void 0)(HistorySection, { history }, void 0, false, {
|
|
3819
|
-
fileName: _jsxFileName,
|
|
3820
|
-
lineNumber: 1059,
|
|
3821
|
-
columnNumber: 22
|
|
3822
|
-
}, this),
|
|
3823
|
-
hasSteps ? /* @__PURE__ */ (0, import_jsx_dev_runtime.jsxDEV)("div", {
|
|
2968
|
+
children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(lucideArrowLeft, { className: "size-3.5" }), "Back to Logs"]
|
|
2969
|
+
}),
|
|
2970
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(HeaderBar, { data }),
|
|
2971
|
+
data.error_message && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ErrorPanel, { message: data.error_message }),
|
|
2972
|
+
hasHistory && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(HistorySection, { history }),
|
|
2973
|
+
hasSteps ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
3824
2974
|
className: "flex flex-col lg:flex-row gap-4 items-stretch lg:items-start",
|
|
3825
|
-
children: [/* @__PURE__ */ (0,
|
|
2975
|
+
children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
3826
2976
|
className: "order-1 lg:order-2 flex-1 min-w-0 space-y-4",
|
|
3827
2977
|
children: [
|
|
3828
2978
|
responseTypePanel,
|
|
3829
|
-
hasTools && /* @__PURE__ */ (
|
|
2979
|
+
hasTools && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ToolsPanel, {
|
|
3830
2980
|
id,
|
|
3831
2981
|
tools
|
|
3832
|
-
},
|
|
3833
|
-
|
|
3834
|
-
lineNumber: 1067,
|
|
3835
|
-
columnNumber: 26
|
|
3836
|
-
}, this),
|
|
3837
|
-
/* @__PURE__ */ (0, import_jsx_dev_runtime.jsxDEV)(StepTreeSection, {
|
|
2982
|
+
}),
|
|
2983
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(StepTreeSection, {
|
|
3838
2984
|
steps: stepTree,
|
|
3839
2985
|
tokensPerSecEnabled
|
|
3840
|
-
}
|
|
3841
|
-
fileName: _jsxFileName,
|
|
3842
|
-
lineNumber: 1068,
|
|
3843
|
-
columnNumber: 13
|
|
3844
|
-
}, this)
|
|
2986
|
+
})
|
|
3845
2987
|
]
|
|
3846
|
-
},
|
|
3847
|
-
fileName: _jsxFileName,
|
|
3848
|
-
lineNumber: 1065,
|
|
3849
|
-
columnNumber: 11
|
|
3850
|
-
}, this), /* @__PURE__ */ (0, import_jsx_dev_runtime.jsxDEV)("div", {
|
|
2988
|
+
}), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
|
|
3851
2989
|
className: "order-2 lg:order-1 flex-1 min-w-0",
|
|
3852
2990
|
children: promptSections
|
|
3853
|
-
}
|
|
3854
|
-
|
|
3855
|
-
lineNumber: 1070,
|
|
3856
|
-
columnNumber: 11
|
|
3857
|
-
}, this)]
|
|
3858
|
-
}, void 0, true, {
|
|
3859
|
-
fileName: _jsxFileName,
|
|
3860
|
-
lineNumber: 1064,
|
|
3861
|
-
columnNumber: 5
|
|
3862
|
-
}, this) : /* @__PURE__ */ (0, import_jsx_dev_runtime.jsxDEV)(import_jsx_dev_runtime.Fragment, { children: [
|
|
2991
|
+
})]
|
|
2992
|
+
}) : /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
|
|
3863
2993
|
responseTypePanel,
|
|
3864
|
-
hasTools && /* @__PURE__ */ (
|
|
2994
|
+
hasTools && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ToolsPanel, {
|
|
3865
2995
|
id,
|
|
3866
2996
|
tools
|
|
3867
|
-
},
|
|
3868
|
-
fileName: _jsxFileName,
|
|
3869
|
-
lineNumber: 1073,
|
|
3870
|
-
columnNumber: 24
|
|
3871
|
-
}, this),
|
|
2997
|
+
}),
|
|
3872
2998
|
promptSections
|
|
3873
|
-
] }
|
|
3874
|
-
/* @__PURE__ */ (0,
|
|
2999
|
+
] }),
|
|
3000
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Section, {
|
|
3875
3001
|
title: "Response",
|
|
3876
|
-
children: /* @__PURE__ */ (0,
|
|
3002
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
3877
3003
|
className: "relative",
|
|
3878
|
-
children: [/* @__PURE__ */ (0,
|
|
3879
|
-
fileName: _jsxFileName,
|
|
3880
|
-
lineNumber: 1079,
|
|
3881
|
-
columnNumber: 11
|
|
3882
|
-
}, this), /* @__PURE__ */ (0, import_jsx_dev_runtime.jsxDEV)(FormattedContent, {
|
|
3004
|
+
children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(CopyButton, { text: data.response }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)(FormattedContent, {
|
|
3883
3005
|
text: data.response,
|
|
3884
3006
|
markdown: true
|
|
3885
|
-
}
|
|
3886
|
-
|
|
3887
|
-
|
|
3888
|
-
|
|
3889
|
-
}, this)]
|
|
3890
|
-
}, void 0, true, {
|
|
3891
|
-
fileName: _jsxFileName,
|
|
3892
|
-
lineNumber: 1078,
|
|
3893
|
-
columnNumber: 9
|
|
3894
|
-
}, this)
|
|
3895
|
-
}, void 0, false, {
|
|
3896
|
-
fileName: _jsxFileName,
|
|
3897
|
-
lineNumber: 1077,
|
|
3898
|
-
columnNumber: 7
|
|
3899
|
-
}, this),
|
|
3900
|
-
/* @__PURE__ */ (0, import_jsx_dev_runtime.jsxDEV)(MetricsPanel, {
|
|
3007
|
+
})]
|
|
3008
|
+
})
|
|
3009
|
+
}),
|
|
3010
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(MetricsPanel, {
|
|
3901
3011
|
data,
|
|
3902
3012
|
toolCallCount: toolCalls.length
|
|
3903
|
-
},
|
|
3904
|
-
|
|
3905
|
-
lineNumber: 1084,
|
|
3906
|
-
columnNumber: 7
|
|
3907
|
-
}, this),
|
|
3908
|
-
/* @__PURE__ */ (0, import_jsx_dev_runtime.jsxDEV)("div", { className: "pb-8" }, void 0, false, {
|
|
3909
|
-
fileName: _jsxFileName,
|
|
3910
|
-
lineNumber: 1086,
|
|
3911
|
-
columnNumber: 7
|
|
3912
|
-
}, this)
|
|
3013
|
+
}),
|
|
3014
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "pb-8" })
|
|
3913
3015
|
]
|
|
3914
|
-
}
|
|
3915
|
-
fileName: _jsxFileName,
|
|
3916
|
-
lineNumber: 1049,
|
|
3917
|
-
columnNumber: 10
|
|
3918
|
-
}, this);
|
|
3016
|
+
});
|
|
3919
3017
|
}
|
|
3920
3018
|
//#endregion
|
|
3921
3019
|
export { RequestShowPage as component };
|