@qredence/fleet 0.5.10 → 0.5.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +15 -0
- package/dist/web/client/assets/agent-activity-CwMDU7aP.js +1 -0
- package/dist/web/client/assets/artifacts-panel-CQmFEF_H.js +1 -0
- package/dist/web/client/assets/{chat-command-palette-DfYSPPXI.js → chat-command-palette-CmHTS3rs.js} +1 -1
- package/dist/web/client/assets/{chat-C8XDWWXz.js → chat-yh02zgA7.js} +1 -1
- package/dist/web/client/assets/{citations-BQ_pr_9_.js → citations-C_tPOJE_.js} +1 -1
- package/dist/web/client/assets/{fleet-message-queue-zWM5-y18.js → fleet-message-queue-DUz6Hfrf.js} +1 -1
- package/dist/web/client/assets/{fleet-pi-tool-renderer-AJoMbXBa.js → fleet-pi-tool-renderer-BEDIO3al.js} +4 -4
- package/dist/web/client/assets/fleet-reasoning-panel-CbkO7u-v.js +1 -0
- package/dist/web/client/assets/{fleet-subagent-list-BnRnrWKS.js → fleet-subagent-list-iKUtLJKZ.js} +1 -1
- package/dist/web/client/assets/fleet-tool-timeline-C8heL7ae.js +1 -0
- package/dist/web/client/assets/{fork-picker-dialog-CkcSekBl.js → fork-picker-dialog-ByBOGVsa.js} +1 -1
- package/dist/web/client/assets/globals-B_I1Eq1u.css +2 -0
- package/dist/web/client/assets/horizontal-resize-qK6eRhIG.js +1 -0
- package/dist/web/client/assets/{index-DlnHLDpx.js → index-C1zOjrMK.js} +3 -3
- package/dist/web/client/assets/{ipython-tool-BrMePqD-.js → ipython-tool-ldJ9F1Cw.js} +1 -1
- package/dist/web/client/assets/model-selector-list-DsKTuAgS.js +1 -0
- package/dist/web/client/assets/{openui-renderer-DwYFJdbe.js → openui-renderer-J3dhPpL4.js} +5 -5
- package/dist/web/client/assets/prompt-input-qPIXZ-Rb.js +1 -0
- package/dist/web/client/assets/prompt-suggestions-Cc--lSNR.js +1 -0
- package/dist/web/client/assets/{provider-label-BCJh04J5.js → provider-label-Dpr7djG9.js} +1 -1
- package/dist/web/client/assets/repl-panel-DsPX04Xr.js +1 -0
- package/dist/web/client/assets/{resources-panel-Bo8dfUdm.js → resources-panel-D867-goy.js} +1 -1
- package/dist/web/client/assets/right-panel-registry-DewpBWHM.js +2 -0
- package/dist/web/client/assets/routes-vNkVToAF.js +16 -0
- package/dist/web/client/assets/safe-storage-s25GrfpH.js +1 -0
- package/dist/web/client/assets/session-insights-panel-YnaXvTpi.js +1 -0
- package/dist/web/client/assets/settings-dialog-B-v4me3Y.js +1 -0
- package/dist/web/client/assets/skeleton-loaders-C9vHwAYV.js +1 -0
- package/dist/web/client/assets/{subagent-chat-panel-DseoO31p.js → subagent-chat-panel-DkVUumrP.js} +1 -1
- package/dist/web/client/assets/subagent-transcript-D8wmQxXe.js +1 -0
- package/dist/web/client/assets/subagents-panel-BMp2Ego0.js +1 -0
- package/dist/web/client/assets/{surfaces-cW-gp56p.js → surfaces-DI-U-_2a.js} +1 -1
- package/dist/web/client/assets/tool-result-DfnPN0FQ.js +4 -0
- package/dist/web/client/assets/ui-preferences-CImQGZm_.js +1 -0
- package/dist/web/client/assets/virtualized-turn-list-DMJENRY0.js +6 -0
- package/dist/web/client/assets/{workspace-panel-DI1W3ce9.js → workspace-panel-G6yMpKJ8.js} +1 -1
- package/dist/web/client/bundle-budget.json +6 -6
- package/dist/web/server/{_tanstack-start-manifest_v-Cdx6hy2i-I7A5YJRU.js → _tanstack-start-manifest_v-po4woX6g-AUGCOEZ2.js} +14 -13
- package/dist/web/server/{agent-activity-B-JMvecd-SLE3GGY2.js → agent-activity-CS2rbF_C-A3R26CYH.js} +2 -2
- package/dist/web/server/{artifacts-panel-DLMK1O8P-42T45JMA.js → artifacts-panel-8GGUCtOd-X5TNKTY2.js} +12 -12
- package/dist/web/server/{chat-command-palette-CdYwoTMe-4LBAZF7K.js → chat-command-palette-Dgl5tqWn-72LLEWUD.js} +2 -2
- package/dist/web/server/{chunk-K5ESTT4A.js → chunk-7MDZVLIY.js} +11 -3
- package/dist/web/server/{chunk-EBCYJSBR.js → chunk-7SD2ZSEA.js} +3 -3
- package/dist/web/server/{chunk-M564UIEY.js → chunk-ABBWBBSS.js} +8 -8
- package/dist/web/server/{chunk-KNJUSMBT.js → chunk-BXWAUTTH.js} +2 -2
- package/dist/web/server/{chunk-54II5QXQ.js → chunk-ETTDO4UO.js} +6 -3
- package/dist/web/server/{chunk-EHNIN245.js → chunk-GETSIVNU.js} +5 -5
- package/dist/web/server/{chunk-NRDG2ISJ.js → chunk-GGT2ZKDB.js} +49 -49
- package/dist/web/server/{chunk-X2R5YPQZ.js → chunk-IJPCV6DH.js} +3 -2
- package/dist/web/server/{chunk-AJJ2S5FF.js → chunk-JQDLJ7KI.js} +20 -20
- package/dist/web/server/{chunk-VHBFU4TG.js → chunk-JUROEEWM.js} +43 -14
- package/dist/web/server/{chunk-TCH3U26B.js → chunk-MIW4LJTV.js} +2 -2
- package/dist/web/server/{chunk-2TRF62K5.js → chunk-N6NOTURM.js} +3 -3
- package/dist/web/server/{chunk-5XX7RKJ6.js → chunk-NXJ32VFR.js} +5 -5
- package/dist/web/server/{chunk-EOVMHQ2H.js → chunk-O4OTWWPF.js} +7 -7
- package/dist/web/server/{chunk-OB5OSYJK.js → chunk-RNOJACWQ.js} +53 -29
- package/dist/web/server/chunk-SZJUXVWG.js +40 -0
- package/dist/web/server/{chunk-6AW2XFTZ.js → chunk-WILCIZYU.js} +194 -10
- package/dist/web/server/{chunk-FED63ZHU.js → chunk-WKV2Z4KO.js} +10 -5
- package/dist/web/server/{chunk-ANL4B775.js → chunk-XLNCWZMZ.js} +2 -2
- package/dist/web/server/{chunk-GM32R7JW.js → chunk-YKVGQBZA.js} +10 -8
- package/dist/web/server/{chunk-3PIUR75R.js → chunk-YXXRP3NS.js} +9 -9
- package/dist/web/server/{fleet-message-queue-BxycG26e-2XLOTCLP.js → fleet-message-queue-j0DCU5Xy-5HKBHMPV.js} +2 -2
- package/dist/web/server/{fleet-pi-tool-renderer-RIeVlM9J-D6MISCQC.js → fleet-pi-tool-renderer-umKunT3K-O4GBH35V.js} +5 -5
- package/dist/web/server/{fleet-reasoning-panel-D_K48UOT-GN2PA6KT.js → fleet-reasoning-panel-BxC2COxi-GPLMQSTT.js} +9 -9
- package/dist/web/server/{fleet-subagent-list-5luKtpds-3OTVFHJQ.js → fleet-subagent-list-CpSYzCIq-JDH2LHSS.js} +1 -1
- package/dist/web/server/{fleet-tool-timeline-DwRqQgOj-HUFLGMDV.js → fleet-tool-timeline-IB36_PB2-XJENTO6I.js} +1 -1
- package/dist/web/server/{fork-picker-dialog-B9yGc8Au-IL63F2DN.js → fork-picker-dialog-DlINz9UQ-UWIXFDJX.js} +3 -3
- package/dist/web/server/{model-selector-list-cb2-ewoA-KIVU6LD3.js → model-selector-list-OYnzNbyu-HBGCNF2L.js} +5 -5
- package/dist/web/server/{openui-renderer-Czy5Vo2L-BLXPJD65.js → openui-renderer-Cj7kfqyL-EKJ6JTTQ.js} +4 -4
- package/dist/web/server/{prompt-suggestions-BOmHi4-J-C563CHFU.js → prompt-suggestions-D4AEEY7K-RZSP7PWV.js} +3 -3
- package/dist/web/server/{repl-panel-yyxhwe4c-7U6HXYPS.js → repl-panel-D5KsoJik-BQKO53JO.js} +9 -9
- package/dist/web/server/{resources-panel-j4fAIi9g-5C267IXV.js → resources-panel-CE5pD4vy-V5FXBTYC.js} +2 -2
- package/dist/web/server/{router-CgSWrAYc-5UBYSZTJ.js → router-Ci1wxI7I-E2AYMNON.js} +253 -76
- package/dist/web/server/{routes-CP_BBhD0-BAWQYGKY.js → routes-CRpm9-Sa-IYK6MUJO.js} +705 -537
- package/dist/web/server/server.js +2 -2
- package/dist/web/server/{session-insights-panel-BHZyKDTo-LRMAMA3O.js → session-insights-panel-CUhdgvRt-VB2HUCQP.js} +4 -4
- package/dist/web/server/{settings-dialog-CxHe8nym-KKXDPTIW.js → settings-dialog-BvkgNflv-GPJ6COQO.js} +14 -10
- package/dist/web/server/{subagent-chat-panel-DlSsM59d-DBW7DI3T.js → subagent-chat-panel-CMuvW9Sd-M5TEEGQW.js} +11 -11
- package/dist/web/server/{subagents-panel-Txzk8oDb-NRKLASYN.js → subagents-panel-DgfB6_Yy-4INEPE3Y.js} +13 -13
- package/dist/web/server/{workspace-panel-BOs-58Cv-SWQBMZSB.js → workspace-panel-bpwj-Veu-Q2CEJMN4.js} +4 -3
- package/package.json +1 -1
- package/dist/web/client/assets/agent-activity-CDcDNVC6.js +0 -1
- package/dist/web/client/assets/artifacts-panel-CObI-DMt.js +0 -1
- package/dist/web/client/assets/fleet-reasoning-panel-MtbSdoCv.js +0 -1
- package/dist/web/client/assets/fleet-tool-timeline-COzPrwr8.js +0 -1
- package/dist/web/client/assets/generative-text-renderer-CDKHv-v_.js +0 -6
- package/dist/web/client/assets/globals-DisQPFtV.css +0 -2
- package/dist/web/client/assets/horizontal-resize-Bl3AyBJg.js +0 -1
- package/dist/web/client/assets/model-selector-list-DQaPFUYt.js +0 -1
- package/dist/web/client/assets/prompt-input-DZ4cho_e.js +0 -1
- package/dist/web/client/assets/prompt-suggestions-CXM6knMK.js +0 -1
- package/dist/web/client/assets/repl-panel-BDQ5MEgV.js +0 -1
- package/dist/web/client/assets/right-panel-registry-VVRPktV3.js +0 -2
- package/dist/web/client/assets/routes-DAikUNzO.js +0 -16
- package/dist/web/client/assets/session-insights-panel-CQdT90Op.js +0 -1
- package/dist/web/client/assets/settings-dialog-DS64KmwC.js +0 -1
- package/dist/web/client/assets/skeleton-loaders-DjGv9LLA.js +0 -1
- package/dist/web/client/assets/subagent-transcript-cxVKYnh9.js +0 -1
- package/dist/web/client/assets/subagents-panel-CHC96I68.js +0 -1
- package/dist/web/client/assets/tool-result-Baj3CdL_.js +0 -4
- package/dist/web/client/assets/ui-preferences-DUEFuJFj.js +0 -1
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
import {
|
|
8
8
|
LazyMarkdown,
|
|
9
9
|
useHoverCapable
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-N6NOTURM.js";
|
|
11
11
|
import {
|
|
12
12
|
Copy
|
|
13
13
|
} from "./chunk-2ATMSG7U.js";
|
|
@@ -42,8 +42,8 @@ import {
|
|
|
42
42
|
cn
|
|
43
43
|
} from "./chunk-DJMHPJBP.js";
|
|
44
44
|
|
|
45
|
-
// web/app/dist/server/assets/
|
|
46
|
-
import { Suspense, cloneElement, createContext, lazy, memo, useCallback, useContext, useEffect, useEffectEvent, useId, useLayoutEffect, useMemo, useRef, useState } from "react";
|
|
45
|
+
// web/app/dist/server/assets/virtualized-turn-list-CVAfBX0T.js
|
|
46
|
+
import { Fragment, Suspense, cloneElement, createContext, lazy, memo, useCallback, useContext, useEffect, useEffectEvent, useId, useLayoutEffect, useMemo, useRef, useState } from "react";
|
|
47
47
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
48
48
|
import { createPortal } from "react-dom";
|
|
49
49
|
var ChevronLeft = createLucideIcon("chevron-left", [["path", {
|
|
@@ -669,7 +669,7 @@ function MessageScroller({ followOutput = true, followThreshold = 56, smooth = t
|
|
|
669
669
|
children: /* @__PURE__ */ jsx("div", {
|
|
670
670
|
ref: contentRef,
|
|
671
671
|
role: "log",
|
|
672
|
-
"aria-live": "polite",
|
|
672
|
+
"aria-live": busy ? "off" : "polite",
|
|
673
673
|
"aria-relevant": "additions text",
|
|
674
674
|
"aria-busy": busy,
|
|
675
675
|
className: contentClassName,
|
|
@@ -971,7 +971,7 @@ function FileAttachment({ id, filename, size, isImage, url, onRemove, className,
|
|
|
971
971
|
title: filename,
|
|
972
972
|
children: filename
|
|
973
973
|
}), size !== void 0 && /* @__PURE__ */ jsx("span", {
|
|
974
|
-
className: "text-[
|
|
974
|
+
className: "text-[0.625rem] text-muted-foreground",
|
|
975
975
|
children: formatFileSize(size)
|
|
976
976
|
})]
|
|
977
977
|
})] }),
|
|
@@ -1153,7 +1153,7 @@ function PayloadPart({ part }) {
|
|
|
1153
1153
|
children: part.title
|
|
1154
1154
|
}),
|
|
1155
1155
|
part.text ? /* @__PURE__ */ jsx("pre", {
|
|
1156
|
-
className: "m-0 whitespace-pre-wrap break-words
|
|
1156
|
+
className: "m-0 whitespace-pre-wrap break-words p-3 font-mono text-xs leading-5 text-foreground/80",
|
|
1157
1157
|
children: part.text
|
|
1158
1158
|
}) : null,
|
|
1159
1159
|
payload ? /* @__PURE__ */ jsxs("details", {
|
|
@@ -1257,7 +1257,7 @@ function CopyButton({ text, onCopied }) {
|
|
|
1257
1257
|
onMouseDown: (event) => event.stopPropagation(),
|
|
1258
1258
|
className: cn("flex size-6 items-center justify-center rounded-md transition-[background-color,opacity,transform] duration-150 ease-out active:scale-[0.97]", "bg-transparent opacity-50 hover:bg-an-foreground/10 hover:opacity-100"),
|
|
1259
1259
|
children: /* @__PURE__ */ jsxs("div", {
|
|
1260
|
-
className: "relative
|
|
1260
|
+
className: "relative size-3.5",
|
|
1261
1261
|
children: [/* @__PURE__ */ jsx(Copy, { className: cn("absolute inset-0 h-3.5 w-3.5 text-an-foreground-muted transition-[opacity,transform] duration-150 ease-out", copied ? "scale-50 opacity-0" : "scale-100 opacity-100") }), /* @__PURE__ */ jsx(Check, { className: cn("absolute inset-0 h-3.5 w-3.5 text-an-foreground-muted transition-[opacity,transform] duration-150 ease-out", copied ? "scale-100 opacity-100" : "scale-50 opacity-0") })]
|
|
1262
1262
|
})
|
|
1263
1263
|
});
|
|
@@ -1416,7 +1416,7 @@ function buildAssistantElements(parts, opts) {
|
|
|
1416
1416
|
}
|
|
1417
1417
|
const text = textChunks.join("\n\n");
|
|
1418
1418
|
if (text) elems.push(/* @__PURE__ */ jsx("div", {
|
|
1419
|
-
className: "group/assistant-text text-[
|
|
1419
|
+
className: "group/assistant-text text-[0.875rem]",
|
|
1420
1420
|
children: /* @__PURE__ */ jsx(TextRendererComponent, {
|
|
1421
1421
|
content: text,
|
|
1422
1422
|
isStreaming,
|
|
@@ -1487,7 +1487,7 @@ function groupMessages(messages) {
|
|
|
1487
1487
|
if (current) turns.push(current);
|
|
1488
1488
|
return turns;
|
|
1489
1489
|
}
|
|
1490
|
-
var LazyGenerativeTextRenderer = lazy(() => import("./openui-renderer-
|
|
1490
|
+
var LazyGenerativeTextRenderer = lazy(() => import("./openui-renderer-Cj7kfqyL-EKJ6JTTQ.js").then((n) => n.n).then(({ GenerativeTextRenderer }) => ({ default: GenerativeTextRenderer })));
|
|
1491
1491
|
function PlainTextFallback({ className, content }) {
|
|
1492
1492
|
return /* @__PURE__ */ jsx("div", {
|
|
1493
1493
|
className: className ? `${className} whitespace-pre-wrap` : "whitespace-pre-wrap",
|
|
@@ -1507,6 +1507,189 @@ function FleetGenerativeTextRenderer(props) {
|
|
|
1507
1507
|
children: /* @__PURE__ */ jsx(LazyGenerativeTextRenderer, { ...props })
|
|
1508
1508
|
});
|
|
1509
1509
|
}
|
|
1510
|
+
function findItemAtOffset(offsets, target, itemCount) {
|
|
1511
|
+
if (itemCount === 0) return 0;
|
|
1512
|
+
let low = 0;
|
|
1513
|
+
let high = itemCount;
|
|
1514
|
+
while (low < high) {
|
|
1515
|
+
const middle = Math.floor((low + high) / 2);
|
|
1516
|
+
if (offsets[middle] <= target) low = middle + 1;
|
|
1517
|
+
else high = middle;
|
|
1518
|
+
}
|
|
1519
|
+
return Math.max(0, Math.min(itemCount - 1, low - 1));
|
|
1520
|
+
}
|
|
1521
|
+
function buildOffsets(itemKeys, measuredHeights, estimateSize, itemGap) {
|
|
1522
|
+
const offsets = [0];
|
|
1523
|
+
for (const [index, key] of itemKeys.entries()) offsets.push(offsets[offsets.length - 1] + (measuredHeights.get(key) ?? estimateSize) + (index < itemKeys.length - 1 ? itemGap : 0));
|
|
1524
|
+
return offsets;
|
|
1525
|
+
}
|
|
1526
|
+
function VirtualizedTurnList({ estimateSize, getItemKey, itemGap = 0, items, overscan = 1.5, renderItem, viewportRef }) {
|
|
1527
|
+
const itemKeys = useMemo(() => items.map((item, index) => getItemKey(item, index)), [getItemKey, items]);
|
|
1528
|
+
const shouldVirtualize = items.length >= 40;
|
|
1529
|
+
const [measuredHeights, setMeasuredHeights] = useState(() => /* @__PURE__ */ new Map());
|
|
1530
|
+
const [viewport, setViewport] = useState({
|
|
1531
|
+
height: 0,
|
|
1532
|
+
scrollTop: 0
|
|
1533
|
+
});
|
|
1534
|
+
const itemKeysRef = useRef(itemKeys);
|
|
1535
|
+
const measuredHeightsRef = useRef(measuredHeights);
|
|
1536
|
+
const estimateSizeRef = useRef(estimateSize);
|
|
1537
|
+
const itemGapRef = useRef(itemGap);
|
|
1538
|
+
const offsetsRef = useRef([0]);
|
|
1539
|
+
const pendingScrollAdjustmentRef = useRef(0);
|
|
1540
|
+
const rowNodesRef = useRef(/* @__PURE__ */ new Map());
|
|
1541
|
+
const rowKeysRef = useRef(/* @__PURE__ */ new WeakMap());
|
|
1542
|
+
const rowObserverRef = useRef(null);
|
|
1543
|
+
const updateViewport = useCallback(() => {
|
|
1544
|
+
const element = viewportRef.current;
|
|
1545
|
+
if (!element) return;
|
|
1546
|
+
const next = {
|
|
1547
|
+
height: element.clientHeight,
|
|
1548
|
+
scrollTop: element.scrollTop
|
|
1549
|
+
};
|
|
1550
|
+
setViewport((current) => current.height === next.height && current.scrollTop === next.scrollTop ? current : next);
|
|
1551
|
+
}, [viewportRef]);
|
|
1552
|
+
const setRowRef = useCallback((key, node) => {
|
|
1553
|
+
const previous = rowNodesRef.current.get(key);
|
|
1554
|
+
if (previous && previous !== node) {
|
|
1555
|
+
rowObserverRef.current?.unobserve(previous);
|
|
1556
|
+
rowNodesRef.current.delete(key);
|
|
1557
|
+
}
|
|
1558
|
+
if (!node) return;
|
|
1559
|
+
rowNodesRef.current.set(key, node);
|
|
1560
|
+
rowKeysRef.current.set(node, key);
|
|
1561
|
+
rowObserverRef.current?.observe(node);
|
|
1562
|
+
}, []);
|
|
1563
|
+
const offsets = useMemo(() => {
|
|
1564
|
+
return buildOffsets(itemKeys, measuredHeights, estimateSize, itemGap);
|
|
1565
|
+
}, [
|
|
1566
|
+
estimateSize,
|
|
1567
|
+
itemGap,
|
|
1568
|
+
itemKeys,
|
|
1569
|
+
measuredHeights
|
|
1570
|
+
]);
|
|
1571
|
+
useLayoutEffect(() => {
|
|
1572
|
+
updateViewport();
|
|
1573
|
+
}, [items.length, updateViewport]);
|
|
1574
|
+
useLayoutEffect(() => {
|
|
1575
|
+
itemKeysRef.current = itemKeys;
|
|
1576
|
+
measuredHeightsRef.current = measuredHeights;
|
|
1577
|
+
estimateSizeRef.current = estimateSize;
|
|
1578
|
+
itemGapRef.current = itemGap;
|
|
1579
|
+
offsetsRef.current = offsets;
|
|
1580
|
+
}, [
|
|
1581
|
+
estimateSize,
|
|
1582
|
+
itemGap,
|
|
1583
|
+
itemKeys,
|
|
1584
|
+
measuredHeights,
|
|
1585
|
+
offsets
|
|
1586
|
+
]);
|
|
1587
|
+
useEffect(() => {
|
|
1588
|
+
const element = viewportRef.current;
|
|
1589
|
+
if (!element) return;
|
|
1590
|
+
element.addEventListener("scroll", updateViewport, { passive: true });
|
|
1591
|
+
window.addEventListener("resize", updateViewport);
|
|
1592
|
+
updateViewport();
|
|
1593
|
+
let viewportObserver;
|
|
1594
|
+
if (typeof ResizeObserver !== "undefined") {
|
|
1595
|
+
viewportObserver = new ResizeObserver(updateViewport);
|
|
1596
|
+
viewportObserver.observe(element);
|
|
1597
|
+
}
|
|
1598
|
+
return () => {
|
|
1599
|
+
element.removeEventListener("scroll", updateViewport);
|
|
1600
|
+
window.removeEventListener("resize", updateViewport);
|
|
1601
|
+
viewportObserver?.disconnect();
|
|
1602
|
+
};
|
|
1603
|
+
}, [updateViewport, viewportRef]);
|
|
1604
|
+
const updateMeasuredHeights = useCallback((entries) => {
|
|
1605
|
+
const current = measuredHeightsRef.current;
|
|
1606
|
+
let next = current;
|
|
1607
|
+
for (const entry of entries) {
|
|
1608
|
+
const key = rowKeysRef.current.get(entry.target);
|
|
1609
|
+
const height = entry.contentRect.height;
|
|
1610
|
+
if (!key || height <= 0 || current.get(key) === height) continue;
|
|
1611
|
+
if (next === current) next = new Map(current);
|
|
1612
|
+
next.set(key, height);
|
|
1613
|
+
}
|
|
1614
|
+
if (next === current) return;
|
|
1615
|
+
const element = viewportRef.current;
|
|
1616
|
+
const itemKeys2 = itemKeysRef.current;
|
|
1617
|
+
const nextOffsets = buildOffsets(itemKeys2, next, estimateSizeRef.current, itemGapRef.current);
|
|
1618
|
+
if (element && itemKeys2.length > 0) {
|
|
1619
|
+
const beforeOffsets = offsetsRef.current;
|
|
1620
|
+
const anchorIndex = findItemAtOffset(beforeOffsets, Math.max(0, element.scrollTop), itemKeys2.length);
|
|
1621
|
+
const anchorKey = itemKeys2[anchorIndex];
|
|
1622
|
+
if (anchorKey && anchorIndex > 0) {
|
|
1623
|
+
const offsetDelta = (nextOffsets[itemKeys2.indexOf(anchorKey)] ?? 0) - (beforeOffsets[anchorIndex] ?? 0);
|
|
1624
|
+
if (offsetDelta !== 0) pendingScrollAdjustmentRef.current += offsetDelta;
|
|
1625
|
+
}
|
|
1626
|
+
}
|
|
1627
|
+
measuredHeightsRef.current = next;
|
|
1628
|
+
offsetsRef.current = nextOffsets;
|
|
1629
|
+
setMeasuredHeights(next);
|
|
1630
|
+
}, [viewportRef]);
|
|
1631
|
+
useLayoutEffect(() => {
|
|
1632
|
+
if (!shouldVirtualize || typeof ResizeObserver === "undefined") return;
|
|
1633
|
+
const observer = new ResizeObserver((entries) => updateMeasuredHeights(entries));
|
|
1634
|
+
rowObserverRef.current = observer;
|
|
1635
|
+
for (const node of rowNodesRef.current.values()) observer.observe(node);
|
|
1636
|
+
return () => {
|
|
1637
|
+
observer.disconnect();
|
|
1638
|
+
if (rowObserverRef.current === observer) rowObserverRef.current = null;
|
|
1639
|
+
};
|
|
1640
|
+
}, [shouldVirtualize, updateMeasuredHeights]);
|
|
1641
|
+
useEffect(() => {
|
|
1642
|
+
const current = measuredHeightsRef.current;
|
|
1643
|
+
if (current.size === 0) return;
|
|
1644
|
+
const validKeys = new Set(itemKeys);
|
|
1645
|
+
const next = new Map([...current].filter(([key]) => validKeys.has(key)));
|
|
1646
|
+
if (next.size === current.size) return;
|
|
1647
|
+
measuredHeightsRef.current = next;
|
|
1648
|
+
setMeasuredHeights(next);
|
|
1649
|
+
}, [itemKeys]);
|
|
1650
|
+
useLayoutEffect(() => {
|
|
1651
|
+
const adjustment = pendingScrollAdjustmentRef.current;
|
|
1652
|
+
const element = viewportRef.current;
|
|
1653
|
+
if (!element || adjustment === 0) return;
|
|
1654
|
+
element.scrollTop += adjustment;
|
|
1655
|
+
pendingScrollAdjustmentRef.current = 0;
|
|
1656
|
+
updateViewport();
|
|
1657
|
+
}, [
|
|
1658
|
+
measuredHeights,
|
|
1659
|
+
updateViewport,
|
|
1660
|
+
viewportRef
|
|
1661
|
+
]);
|
|
1662
|
+
if (!shouldVirtualize) return /* @__PURE__ */ jsx(Fragment$1, { children: items.map((item, index) => /* @__PURE__ */ jsx(Fragment, { children: renderItem(item, index) }, itemKeys[index])) });
|
|
1663
|
+
const totalHeight = offsets[offsets.length - 1] ?? 0;
|
|
1664
|
+
const overscanDistance = Math.max(estimateSize, viewport.height * overscan);
|
|
1665
|
+
const firstVisible = findItemAtOffset(offsets, Math.max(0, viewport.scrollTop - overscanDistance), items.length);
|
|
1666
|
+
const lastVisible = Math.min(items.length - 1, findItemAtOffset(offsets, viewport.scrollTop + viewport.height + overscanDistance, items.length) + 1);
|
|
1667
|
+
return /* @__PURE__ */ jsx("div", {
|
|
1668
|
+
"data-rendered-turn-count": lastVisible - firstVisible + 1,
|
|
1669
|
+
"data-total-turn-count": items.length,
|
|
1670
|
+
"data-virtualized-transcript": "true",
|
|
1671
|
+
style: {
|
|
1672
|
+
height: totalHeight,
|
|
1673
|
+
position: "relative",
|
|
1674
|
+
width: "100%"
|
|
1675
|
+
},
|
|
1676
|
+
children: items.slice(firstVisible, lastVisible + 1).map((item, index) => {
|
|
1677
|
+
const itemIndex = firstVisible + index;
|
|
1678
|
+
const key = itemKeys[itemIndex];
|
|
1679
|
+
return /* @__PURE__ */ jsx("div", {
|
|
1680
|
+
ref: (node) => setRowRef(key, node),
|
|
1681
|
+
"data-virtualized-turn-index": itemIndex,
|
|
1682
|
+
style: {
|
|
1683
|
+
left: 0,
|
|
1684
|
+
position: "absolute",
|
|
1685
|
+
right: 0,
|
|
1686
|
+
top: offsets[itemIndex]
|
|
1687
|
+
},
|
|
1688
|
+
children: renderItem(item, itemIndex)
|
|
1689
|
+
}, key);
|
|
1690
|
+
})
|
|
1691
|
+
});
|
|
1692
|
+
}
|
|
1510
1693
|
|
|
1511
1694
|
export {
|
|
1512
1695
|
ChevronLeft,
|
|
@@ -1520,7 +1703,8 @@ export {
|
|
|
1520
1703
|
normalizeAssistantToolParts,
|
|
1521
1704
|
buildAssistantElements,
|
|
1522
1705
|
groupMessages,
|
|
1523
|
-
FleetGenerativeTextRenderer
|
|
1706
|
+
FleetGenerativeTextRenderer,
|
|
1707
|
+
VirtualizedTurnList
|
|
1524
1708
|
};
|
|
1525
1709
|
/**
|
|
1526
1710
|
* @license lucide-react v1.38.0 - ISC
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
redactSessionLabelSecrets
|
|
3
3
|
} from "./chunk-QK4CHLVV.js";
|
|
4
|
+
import {
|
|
5
|
+
readStoredValue,
|
|
6
|
+
writeStoredValue
|
|
7
|
+
} from "./chunk-SZJUXVWG.js";
|
|
4
8
|
import {
|
|
5
9
|
AnimatePresence,
|
|
6
10
|
useReducedMotion
|
|
@@ -16,7 +20,7 @@ import {
|
|
|
16
20
|
cn
|
|
17
21
|
} from "./chunk-DJMHPJBP.js";
|
|
18
22
|
|
|
19
|
-
// web/app/dist/server/assets/horizontal-resize-
|
|
23
|
+
// web/app/dist/server/assets/horizontal-resize-2lm4rtju.js
|
|
20
24
|
import { Children, cloneElement, forwardRef, isValidElement, useId, useState } from "react";
|
|
21
25
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
22
26
|
var File = createLucideIcon("file", [["path", {
|
|
@@ -30,7 +34,7 @@ var FolderOpen = createLucideIcon("folder-open", [["path", {
|
|
|
30
34
|
d: "m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",
|
|
31
35
|
key: "usdka0"
|
|
32
36
|
}]]);
|
|
33
|
-
var RESOURCE_CANVAS_VIEWPORT_RATIO = 0.
|
|
37
|
+
var RESOURCE_CANVAS_VIEWPORT_RATIO = 0.4;
|
|
34
38
|
var DESKTOP_PANEL_ONLY = "min-[960px]:hidden";
|
|
35
39
|
var WORKSPACE_SPLIT_HIDDEN_BLOCK = "hidden min-[640px]:block";
|
|
36
40
|
var WORKSPACE_SPLIT_GAP_RESET = "min-[640px]:gap-0";
|
|
@@ -184,12 +188,13 @@ function isDaytonaNotConnectedError(error) {
|
|
|
184
188
|
}
|
|
185
189
|
function readStoredWidth(storageKey, defaultWidth, clamp) {
|
|
186
190
|
if (typeof window === "undefined") return defaultWidth;
|
|
187
|
-
const
|
|
191
|
+
const stored = readStoredValue(storageKey);
|
|
192
|
+
if (stored === null) return defaultWidth;
|
|
193
|
+
const value = Number(stored);
|
|
188
194
|
return Number.isFinite(value) ? clamp(value) : defaultWidth;
|
|
189
195
|
}
|
|
190
196
|
function storeStoredWidth(storageKey, width) {
|
|
191
|
-
|
|
192
|
-
window.localStorage.setItem(storageKey, String(Math.round(width)));
|
|
197
|
+
writeStoredValue(storageKey, String(Math.round(width)));
|
|
193
198
|
}
|
|
194
199
|
function startHorizontalResize({ event, getNextWidth, onWidthChange, startWidth, startX }) {
|
|
195
200
|
event.preventDefault();
|
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
cn
|
|
3
3
|
} from "./chunk-DJMHPJBP.js";
|
|
4
4
|
|
|
5
|
-
// web/app/dist/server/assets/surfaces-
|
|
5
|
+
// web/app/dist/server/assets/surfaces-DlT92b6L.js
|
|
6
6
|
import { useLayoutEffect, useRef, useState } from "react";
|
|
7
7
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
8
8
|
var paper = "bg-background shadow-[0_1px_2px_rgba(0,0,0,0.04),0_12px_32px_-16px_rgba(0,0,0,0.12)] dark:bg-popover dark:shadow-none";
|
|
@@ -12,7 +12,7 @@ var labelSwap = "col-start-1 row-start-1 flex w-max items-center gap-1.5 leading
|
|
|
12
12
|
var labelSwapIn = "opacity-100 blur-none";
|
|
13
13
|
var labelSwapOut = "pointer-events-none select-none opacity-0 blur-[2px]";
|
|
14
14
|
var collapsePanel = "h-(--collapsible-panel-height) overflow-hidden transition-[height] duration-200 ease-[cubic-bezier(0.32,0.72,0,1)] data-[ending-style]:h-0 data-[starting-style]:h-0 motion-reduce:transition-none";
|
|
15
|
-
var mono = "font-mono text-[
|
|
15
|
+
var mono = "font-mono text-[0.6875rem] tracking-tight";
|
|
16
16
|
function ShimmerLabel({ active = true, className, ...props }) {
|
|
17
17
|
return /* @__PURE__ */ jsx("span", {
|
|
18
18
|
className: cn(active && "shimmer motion-reduce:animate-none", className),
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
} from "./chunk-PVJCTQFK.js";
|
|
7
7
|
import {
|
|
8
8
|
useHoverCapable
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-N6NOTURM.js";
|
|
10
10
|
import {
|
|
11
11
|
LoaderCircle
|
|
12
12
|
} from "./chunk-TNL4YV63.js";
|
|
@@ -50,7 +50,7 @@ import {
|
|
|
50
50
|
cn
|
|
51
51
|
} from "./chunk-DJMHPJBP.js";
|
|
52
52
|
|
|
53
|
-
// web/app/dist/server/assets/prompt-input-
|
|
53
|
+
// web/app/dist/server/assets/prompt-input-CQuyIgBz.js
|
|
54
54
|
import { cloneElement, createContext, forwardRef, isValidElement, useCallback, useContext, useEffect, useEffectEvent, useId, useInsertionEffect, useLayoutEffect, useMemo, useRef, useState, useSyncExternalStore } from "react";
|
|
55
55
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
56
56
|
import { createPortal } from "react-dom";
|
|
@@ -498,15 +498,15 @@ forwardRef(function StatefulButton({ state = "idle", children, loadingText = "Lo
|
|
|
498
498
|
children: [
|
|
499
499
|
state === "loading" ? /* @__PURE__ */ jsx(IconSlot, {
|
|
500
500
|
keyId: "loading-icon",
|
|
501
|
-
children: /* @__PURE__ */ jsx(LoaderCircle, { className: "
|
|
501
|
+
children: /* @__PURE__ */ jsx(LoaderCircle, { className: "size-4 animate-spin" })
|
|
502
502
|
}) : null,
|
|
503
503
|
state === "success" ? /* @__PURE__ */ jsx(IconSlot, {
|
|
504
504
|
keyId: "success-icon",
|
|
505
|
-
children: /* @__PURE__ */ jsx(Check, { className: "
|
|
505
|
+
children: /* @__PURE__ */ jsx(Check, { className: "size-4" })
|
|
506
506
|
}) : null,
|
|
507
507
|
state === "error" ? /* @__PURE__ */ jsx(IconSlot, {
|
|
508
508
|
keyId: "error-icon",
|
|
509
|
-
children: /* @__PURE__ */ jsx(X, { className: "
|
|
509
|
+
children: /* @__PURE__ */ jsx(X, { className: "size-4" })
|
|
510
510
|
}) : null
|
|
511
511
|
]
|
|
512
512
|
}),
|
|
@@ -894,7 +894,7 @@ function AnimatedSelectTrigger({ className, children }) {
|
|
|
894
894
|
animate: { rotate: ctx.open ? 180 : 0 },
|
|
895
895
|
transition: ctx.reduce ? { duration: 0 } : CHEVRON_TRANSITION,
|
|
896
896
|
className: "text-muted-foreground",
|
|
897
|
-
children: /* @__PURE__ */ jsx(ChevronDown, { className: "
|
|
897
|
+
children: /* @__PURE__ */ jsx(ChevronDown, { className: "size-4" })
|
|
898
898
|
})]
|
|
899
899
|
});
|
|
900
900
|
}
|
|
@@ -1028,7 +1028,7 @@ function AnimatedSelectItem({ value, disabled = false, className, children }) {
|
|
|
1028
1028
|
disabled,
|
|
1029
1029
|
onClick: () => ctx.select(value),
|
|
1030
1030
|
className: cn("flex w-full items-center justify-between gap-2 rounded-lg px-2.5 py-1.5 text-left text-sm outline-none transition-colors", selected ? "bg-muted text-foreground" : "text-muted-foreground hover:bg-muted hover:text-foreground focus-visible:bg-muted", "disabled:pointer-events-none disabled:opacity-50", className),
|
|
1031
|
-
children: [children, selected ? /* @__PURE__ */ jsx(Check, { className: "
|
|
1031
|
+
children: [children, selected ? /* @__PURE__ */ jsx(Check, { className: "size-3.5 shrink-0" }) : null]
|
|
1032
1032
|
})
|
|
1033
1033
|
});
|
|
1034
1034
|
}
|
|
@@ -1059,7 +1059,9 @@ function PromptInput({ value, defaultValue = "", onValueChange, models = [], mod
|
|
|
1059
1059
|
resizeTextarea();
|
|
1060
1060
|
}, [resizeTextarea]);
|
|
1061
1061
|
const resizeRef = useRef(resizeTextarea);
|
|
1062
|
-
|
|
1062
|
+
useEffect(() => {
|
|
1063
|
+
resizeRef.current = resizeTextarea;
|
|
1064
|
+
});
|
|
1063
1065
|
useEffect(() => {
|
|
1064
1066
|
const textarea = textareaRef.current;
|
|
1065
1067
|
if (!textarea || typeof ResizeObserver === "undefined") return;
|
|
@@ -43,7 +43,7 @@ import {
|
|
|
43
43
|
cn
|
|
44
44
|
} from "./chunk-DJMHPJBP.js";
|
|
45
45
|
|
|
46
|
-
// web/app/dist/server/assets/tool-result-
|
|
46
|
+
// web/app/dist/server/assets/tool-result-Dd8SJ9RU.js
|
|
47
47
|
import { useCallback, useEffect, useId, useLayoutEffect, useMemo, useRef, useState } from "react";
|
|
48
48
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
49
49
|
var Ban = createLucideIcon("ban", [["circle", {
|
|
@@ -226,11 +226,11 @@ function CodeBlock({ code, language = "typescript", languageLabel, filename, sta
|
|
|
226
226
|
children: filename
|
|
227
227
|
}) : null,
|
|
228
228
|
/* @__PURE__ */ jsx("span", {
|
|
229
|
-
className: "text-[
|
|
229
|
+
className: "text-[0.625rem] font-medium uppercase tracking-wide text-muted-foreground/55",
|
|
230
230
|
children: resolvedLanguageLabel
|
|
231
231
|
}),
|
|
232
232
|
showStatus ? /* @__PURE__ */ jsxs("span", {
|
|
233
|
-
className: cn("ml-auto inline-flex shrink-0 items-center gap-1 text-[
|
|
233
|
+
className: cn("ml-auto inline-flex shrink-0 items-center gap-1 text-[0.625rem] font-medium", streaming ? "text-blue-600 dark:text-blue-400" : "text-emerald-600 dark:text-emerald-400"),
|
|
234
234
|
children: [streaming ? /* @__PURE__ */ jsx(LoaderCircle, { className: cn("size-3", !reduce && "animate-spin") }) : /* @__PURE__ */ jsx(Check, { className: "size-3" }), streaming ? "Writing" : "Ready"]
|
|
235
235
|
}) : null,
|
|
236
236
|
copyable || onCopy ? /* @__PURE__ */ jsx(m.button, {
|
|
@@ -247,7 +247,7 @@ function CodeBlock({ code, language = "typescript", languageLabel, filename, sta
|
|
|
247
247
|
}), /* @__PURE__ */ jsx("div", {
|
|
248
248
|
ref: viewportRef,
|
|
249
249
|
role: streaming ? "log" : void 0,
|
|
250
|
-
"aria-live": streaming ? "
|
|
250
|
+
"aria-live": streaming ? "off" : void 0,
|
|
251
251
|
className: "overflow-auto border-t border-foreground/[0.06] py-2 [scrollbar-color:color-mix(in_oklab,var(--muted-foreground)_35%,transparent)_transparent] [scrollbar-width:thin]",
|
|
252
252
|
style: { maxHeight },
|
|
253
253
|
children: /* @__PURE__ */ jsx("pre", {
|
|
@@ -395,7 +395,7 @@ function FileDiff({ file, lines, status = "streaming", open, defaultOpen = true,
|
|
|
395
395
|
children: [/* @__PURE__ */ jsx("div", {
|
|
396
396
|
ref: viewportRef,
|
|
397
397
|
"data-slot": "file-diff-viewport",
|
|
398
|
-
"aria-live": "polite",
|
|
398
|
+
"aria-live": streaming ? "off" : "polite",
|
|
399
399
|
className: "scrollbar-hide overflow-auto",
|
|
400
400
|
style: { maxHeight },
|
|
401
401
|
children: /* @__PURE__ */ jsxs("div", {
|
|
@@ -490,7 +490,7 @@ function ToolResultOutput({ children, language: _language = "bash", label, class
|
|
|
490
490
|
return /* @__PURE__ */ jsxs("div", {
|
|
491
491
|
className: "space-y-1.5",
|
|
492
492
|
children: [label ? /* @__PURE__ */ jsx("div", {
|
|
493
|
-
className: "px-0.5 text-[
|
|
493
|
+
className: "px-0.5 text-[0.625rem] font-medium uppercase tracking-[0.12em] text-muted-foreground/60",
|
|
494
494
|
children: label
|
|
495
495
|
}) : null, /* @__PURE__ */ jsx("pre", {
|
|
496
496
|
className: cn("m-0 whitespace-pre-wrap break-words font-mono text-xs leading-5 text-foreground/80", className),
|
|
@@ -585,7 +585,7 @@ function ToolResult({ tool, title, children, status = "running", kind = "custom"
|
|
|
585
585
|
})
|
|
586
586
|
}) : null,
|
|
587
587
|
/* @__PURE__ */ jsx("span", {
|
|
588
|
-
className: "min-w-0 truncate font-mono text-[
|
|
588
|
+
className: "min-w-0 truncate font-mono text-[0.6875rem] text-muted-foreground/55",
|
|
589
589
|
children: /* @__PURE__ */ jsx(ActionSwapRollText, {
|
|
590
590
|
value: toolKey,
|
|
591
591
|
children: tool
|
|
@@ -594,7 +594,7 @@ function ToolResult({ tool, title, children, status = "running", kind = "custom"
|
|
|
594
594
|
]
|
|
595
595
|
}),
|
|
596
596
|
/* @__PURE__ */ jsxs("span", {
|
|
597
|
-
className: cn("inline-flex shrink-0 items-center gap-1 text-[
|
|
597
|
+
className: cn("inline-flex shrink-0 items-center gap-1 text-[0.6875rem] font-medium", getStatusClass(status)),
|
|
598
598
|
children: [/* @__PURE__ */ jsx(StatusIcon, {
|
|
599
599
|
status,
|
|
600
600
|
reduce
|
|
@@ -644,7 +644,7 @@ function ToolResult({ tool, title, children, status = "running", kind = "custom"
|
|
|
644
644
|
children: /* @__PURE__ */ jsx(RotateCcw, { className: "size-3.5" })
|
|
645
645
|
}) : null,
|
|
646
646
|
/* @__PURE__ */ jsx("span", {
|
|
647
|
-
className: "ml-auto text-[
|
|
647
|
+
className: "ml-auto text-[0.6875rem] text-muted-foreground/55",
|
|
648
648
|
children: /* @__PURE__ */ jsx(ActionSwapRollText, {
|
|
649
649
|
value: status,
|
|
650
650
|
children: statusLabel
|
|
@@ -17,7 +17,7 @@ import "./chunk-JDCCC7A7.js";
|
|
|
17
17
|
import "./chunk-L547YHC4.js";
|
|
18
18
|
import "./chunk-MLKGABMK.js";
|
|
19
19
|
|
|
20
|
-
// web/app/dist/server/assets/fleet-message-queue-
|
|
20
|
+
// web/app/dist/server/assets/fleet-message-queue-j0DCU5Xy.js
|
|
21
21
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
22
22
|
var LANES = [{
|
|
23
23
|
key: "steering",
|
|
@@ -50,7 +50,7 @@ function FleetMessageQueue({ queue, onDelete, className }) {
|
|
|
50
50
|
className: "flex min-w-0 items-center gap-2 rounded-lg bg-background/80 px-2 py-1.5 text-sm",
|
|
51
51
|
children: [
|
|
52
52
|
/* @__PURE__ */ jsx("span", {
|
|
53
|
-
className: "shrink-0 text-[
|
|
53
|
+
className: "shrink-0 text-[0.625rem] font-medium uppercase tracking-wide text-muted-foreground",
|
|
54
54
|
children: label
|
|
55
55
|
}),
|
|
56
56
|
/* @__PURE__ */ jsx("span", {
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
FleetPiToolRenderer,
|
|
3
3
|
fleet_pi_tool_renderer_exports
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-
|
|
4
|
+
} from "./chunk-JQDLJ7KI.js";
|
|
5
|
+
import "./chunk-N6NOTURM.js";
|
|
6
6
|
import "./chunk-QPNUGF3V.js";
|
|
7
7
|
import "./chunk-V3S6BVXO.js";
|
|
8
|
-
import "./chunk-
|
|
8
|
+
import "./chunk-XLNCWZMZ.js";
|
|
9
9
|
import "./chunk-2ST2ULW7.js";
|
|
10
10
|
import "./chunk-BLSX7WHW.js";
|
|
11
11
|
import "./chunk-3JMESBAT.js";
|
|
@@ -13,7 +13,7 @@ import "./chunk-XA42CHF2.js";
|
|
|
13
13
|
import "./chunk-P66QQWUM.js";
|
|
14
14
|
import "./chunk-JIULUYHT.js";
|
|
15
15
|
import "./chunk-LY5XOHHU.js";
|
|
16
|
-
import "./chunk-
|
|
16
|
+
import "./chunk-YXXRP3NS.js";
|
|
17
17
|
import "./chunk-2ATMSG7U.js";
|
|
18
18
|
import "./chunk-HFQTI7AX.js";
|
|
19
19
|
import "./chunk-HSJMLO36.js";
|
|
@@ -36,7 +36,7 @@ import "./chunk-C5X6G26O.js";
|
|
|
36
36
|
import "./chunk-ST5I2PLN.js";
|
|
37
37
|
import "./chunk-AR7O7JXD.js";
|
|
38
38
|
import "./chunk-ZCVWADNW.js";
|
|
39
|
-
import "./chunk-
|
|
39
|
+
import "./chunk-NXJ32VFR.js";
|
|
40
40
|
import "./chunk-X7D6GFQU.js";
|
|
41
41
|
import "./chunk-BYXBJQAS.js";
|
|
42
42
|
import "./chunk-4ZIEVI5O.js";
|
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
ShimmerLabel,
|
|
6
6
|
SwapLabel,
|
|
7
7
|
collapsePanel
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-XLNCWZMZ.js";
|
|
9
9
|
import {
|
|
10
10
|
Collapsible,
|
|
11
11
|
CollapsibleContent,
|
|
@@ -24,7 +24,7 @@ import {
|
|
|
24
24
|
import "./chunk-JDCCC7A7.js";
|
|
25
25
|
import "./chunk-MLKGABMK.js";
|
|
26
26
|
|
|
27
|
-
// web/app/dist/server/assets/fleet-reasoning-panel-
|
|
27
|
+
// web/app/dist/server/assets/fleet-reasoning-panel-BxC2COxi.js
|
|
28
28
|
import { useMemo, useState } from "react";
|
|
29
29
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
30
30
|
var CELL_SHAPES = {
|
|
@@ -66,7 +66,7 @@ function ThinkingIndicator({ label, elapsed, className, ...props }) {
|
|
|
66
66
|
children: label
|
|
67
67
|
}, label),
|
|
68
68
|
elapsed !== void 0 && /* @__PURE__ */ jsx("span", {
|
|
69
|
-
className: cn("font-mono text-[
|
|
69
|
+
className: cn("font-mono text-[0.6875rem] tracking-tight", "text-foreground/30 tabular-nums"),
|
|
70
70
|
children: elapsed
|
|
71
71
|
})
|
|
72
72
|
]
|
|
@@ -80,7 +80,7 @@ function ReasoningPanel({ steps, visibleSteps, streaming, streamingLabel = "Thin
|
|
|
80
80
|
onOpenChange,
|
|
81
81
|
className: cn("w-full max-w-sm", className),
|
|
82
82
|
children: [/* @__PURE__ */ jsxs(CollapsibleTrigger, {
|
|
83
|
-
className: "group/trigger text-foreground/55 hover:text-foreground/90 flex items-center gap-1.5 py-1 text-[
|
|
83
|
+
className: "group/trigger text-foreground/55 hover:text-foreground/90 flex items-center gap-1.5 py-1 text-[0.84375rem] transition-[color,scale] outline-none active:scale-[0.98]",
|
|
84
84
|
children: [/* @__PURE__ */ jsxs(SwapLabel, {
|
|
85
85
|
active: streaming ? 0 : 1,
|
|
86
86
|
className: "text-start",
|
|
@@ -89,7 +89,7 @@ function ReasoningPanel({ steps, visibleSteps, streaming, streamingLabel = "Thin
|
|
|
89
89
|
className: "relative inline-block leading-none",
|
|
90
90
|
children: streamingLabel
|
|
91
91
|
}), elapsed !== void 0 && /* @__PURE__ */ jsx("span", {
|
|
92
|
-
className: cn("font-mono text-[
|
|
92
|
+
className: cn("font-mono text-[0.6875rem] tracking-tight", "text-foreground/30 tabular-nums"),
|
|
93
93
|
children: elapsed
|
|
94
94
|
})] }), /* @__PURE__ */ jsx(Fragment$1, { children: restingLabel })]
|
|
95
95
|
}), /* @__PURE__ */ jsx(ChevronDown, { className: "size-3.5 shrink-0 opacity-60 transition-transform duration-200 ease-[cubic-bezier(0.32,0.72,0,1)] group-data-open/trigger:rotate-180 group-data-panel-open/trigger:rotate-180 motion-reduce:transition-none" })]
|
|
@@ -107,10 +107,10 @@ function ReasoningPanel({ steps, visibleSteps, streaming, streamingLabel = "Thin
|
|
|
107
107
|
}), /* @__PURE__ */ jsxs("span", {
|
|
108
108
|
className: "flex min-w-0 flex-1 flex-col",
|
|
109
109
|
children: [/* @__PURE__ */ jsx("p", {
|
|
110
|
-
className: "text-foreground/90 text-[
|
|
110
|
+
className: "text-foreground/90 text-[0.84375rem] font-medium",
|
|
111
111
|
children: step.title
|
|
112
112
|
}), /* @__PURE__ */ jsx("p", {
|
|
113
|
-
className: "text-foreground/50 mt-0.5 text-[
|
|
113
|
+
className: "text-foreground/50 mt-0.5 text-[0.8125rem] leading-relaxed break-words",
|
|
114
114
|
children: step.body
|
|
115
115
|
})]
|
|
116
116
|
})]
|
|
@@ -143,7 +143,7 @@ function FleetReasoningPanel({ presentation, className, streamingOverride }) {
|
|
|
143
143
|
children: activeStep?.body ? /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(ThinkingIndicator, {
|
|
144
144
|
label: activeLabel,
|
|
145
145
|
elapsed,
|
|
146
|
-
className: "text-[
|
|
146
|
+
className: "text-[0.8125rem]"
|
|
147
147
|
}), /* @__PURE__ */ jsx("p", {
|
|
148
148
|
className: "pl-4 text-xs font-normal text-muted-foreground",
|
|
149
149
|
children: activeStep.body
|
|
@@ -151,7 +151,7 @@ function FleetReasoningPanel({ presentation, className, streamingOverride }) {
|
|
|
151
151
|
label: activeLabel,
|
|
152
152
|
tick: Math.floor((presentation.elapsedMs ?? 0) / 250),
|
|
153
153
|
variant: "dots",
|
|
154
|
-
className: "items-start gap-2
|
|
154
|
+
className: "items-start gap-2 p-1 text-left"
|
|
155
155
|
})
|
|
156
156
|
}) : null, /* @__PURE__ */ jsx(ReasoningPanel, {
|
|
157
157
|
steps,
|
|
@@ -15,7 +15,7 @@ import "./chunk-JDCCC7A7.js";
|
|
|
15
15
|
import "./chunk-L547YHC4.js";
|
|
16
16
|
import "./chunk-MLKGABMK.js";
|
|
17
17
|
|
|
18
|
-
// web/app/dist/server/assets/fork-picker-dialog-
|
|
18
|
+
// web/app/dist/server/assets/fork-picker-dialog-DlINz9UQ.js
|
|
19
19
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
20
20
|
function ForkPickerDialog({ entries, onOpenChange, onPick }) {
|
|
21
21
|
const open = entries !== null && entries.length > 0;
|
|
@@ -28,7 +28,7 @@ function ForkPickerDialog({ entries, onOpenChange, onPick }) {
|
|
|
28
28
|
className: "flex max-h-[min(420px,60vh)] flex-col gap-1 overflow-y-auto",
|
|
29
29
|
children: (entries ?? []).map((entry) => /* @__PURE__ */ jsxs("button", {
|
|
30
30
|
type: "button",
|
|
31
|
-
className: "flex w-full cursor-pointer flex-col gap-0.5 rounded-md
|
|
31
|
+
className: "flex w-full cursor-pointer flex-col gap-0.5 rounded-md p-2 text-left text-[0.8125rem] leading-5 hover:bg-foreground/6",
|
|
32
32
|
onClick: () => {
|
|
33
33
|
onPick(entry.id);
|
|
34
34
|
onOpenChange(false);
|
|
@@ -37,7 +37,7 @@ function ForkPickerDialog({ entries, onOpenChange, onPick }) {
|
|
|
37
37
|
className: "truncate font-medium",
|
|
38
38
|
children: entry.preview
|
|
39
39
|
}), /* @__PURE__ */ jsx("span", {
|
|
40
|
-
className: "truncate font-mono text-[
|
|
40
|
+
className: "truncate font-mono text-[0.6875rem] text-foreground/40",
|
|
41
41
|
children: entry.id
|
|
42
42
|
})]
|
|
43
43
|
}, entry.id))
|