@opengeni/react 2.5.0-canary.2 → 3.0.0-canary.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +15 -0
- package/dist/accounts.d.ts +64 -0
- package/dist/accounts.js +746 -0
- package/dist/accounts.js.map +1 -0
- package/dist/{browser-viewer-GXUICIAG.js → browser-viewer-AEFHUYZK.js} +3 -3
- package/dist/{chunk-MXJGO7LE.js → chunk-D3UIAJKY.js} +52 -2
- package/dist/chunk-D3UIAJKY.js.map +1 -0
- package/dist/{chunk-QGBJ6GHG.js → chunk-ELIYWBZR.js} +4 -4
- package/dist/{chunk-6H6S5V4Z.js → chunk-HQVCKCLG.js} +758 -871
- package/dist/chunk-HQVCKCLG.js.map +1 -0
- package/dist/{chunk-T7VAYG2I.js → chunk-MZ2G2XBA.js} +54 -2
- package/dist/chunk-MZ2G2XBA.js.map +1 -0
- package/dist/{chunk-X4JAFD5R.js → chunk-OAM4WAAM.js} +4 -4
- package/dist/{chunk-ZUT5QSQB.js → chunk-RGALCTWO.js} +57 -17
- package/dist/{chunk-ZUT5QSQB.js.map → chunk-RGALCTWO.js.map} +1 -1
- package/dist/chunk-YFKJ7VZH.js +268 -0
- package/dist/chunk-YFKJ7VZH.js.map +1 -0
- package/dist/{chunk-ATQJEWCA.js → chunk-YJFGAFBD.js} +124 -50
- package/dist/chunk-YJFGAFBD.js.map +1 -0
- package/dist/components/composer.d.ts +8 -0
- package/dist/components/file-browser.d.ts +4 -1
- package/dist/components/sandbox-files.d.ts +4 -1
- package/dist/components/sandbox-workspace.d.ts +5 -0
- package/dist/composer.js +3 -3
- package/dist/{computer-viewer-ZOP4Q7A7.js → computer-viewer-FWEZISW4.js} +3 -3
- package/dist/embedded-session-client.d.ts +23 -0
- package/dist/file-node-visibility.d.ts +15 -0
- package/dist/hooks/use-file-attachments.d.ts +9 -2
- package/dist/human-input.d.ts +3 -1
- package/dist/index.d.ts +5 -1
- package/dist/index.js +139 -53
- package/dist/index.js.map +1 -1
- package/dist/interaction.js +3 -3
- package/dist/session-ui.js +4 -4
- package/dist/session.d.ts +2 -0
- package/dist/session.js +7 -5
- package/dist/timeline/index.d.ts +1 -0
- package/dist/timeline/screenshot-lightbox.d.ts +16 -1
- package/package.json +6 -2
- package/src/accounts.tsx +970 -0
- package/src/components/chat-composer.tsx +88 -84
- package/src/components/composer.tsx +53 -11
- package/src/components/file-browser.tsx +33 -20
- package/src/components/human-input-surface.tsx +10 -6
- package/src/components/message-timeline.tsx +37 -9
- package/src/components/sandbox-files.tsx +42 -2
- package/src/components/sandbox-workspace.tsx +10 -0
- package/src/embedded-session-client.ts +104 -0
- package/src/file-node-visibility.ts +66 -0
- package/src/hooks/use-composer.ts +64 -2
- package/src/hooks/use-file-attachments.ts +38 -6
- package/src/hooks/use-human-input.ts +31 -4
- package/src/human-input.ts +12 -1
- package/src/index.ts +12 -0
- package/src/session.ts +5 -0
- package/src/timeline/index.ts +1 -0
- package/src/timeline/screenshot-lightbox.tsx +93 -29
- package/styles/compiled.css +11 -1
- package/styles/tokens.css +3 -1
- package/dist/chunk-6H6S5V4Z.js.map +0 -1
- package/dist/chunk-ATQJEWCA.js.map +0 -1
- package/dist/chunk-FK6VG4LL.js +0 -90
- package/dist/chunk-FK6VG4LL.js.map +0 -1
- package/dist/chunk-MXJGO7LE.js.map +0 -1
- package/dist/chunk-T7VAYG2I.js.map +0 -1
- /package/dist/{browser-viewer-GXUICIAG.js.map → browser-viewer-AEFHUYZK.js.map} +0 -0
- /package/dist/{chunk-QGBJ6GHG.js.map → chunk-ELIYWBZR.js.map} +0 -0
- /package/dist/{chunk-X4JAFD5R.js.map → chunk-OAM4WAAM.js.map} +0 -0
- /package/dist/{computer-viewer-ZOP4Q7A7.js.map → computer-viewer-FWEZISW4.js.map} +0 -0
|
@@ -2,23 +2,27 @@ import {
|
|
|
2
2
|
buildTimeline,
|
|
3
3
|
groupTimeline,
|
|
4
4
|
invokeOlderHistoryLoaderWithReceiptCapture,
|
|
5
|
+
isActionableHumanInputRequest,
|
|
5
6
|
mcpToolLeaf,
|
|
6
7
|
toolDisplayName
|
|
7
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-D3UIAJKY.js";
|
|
8
9
|
import {
|
|
9
10
|
EmptyQueueStateSurface,
|
|
10
11
|
TimelineAnnotationsChip,
|
|
11
12
|
requestQueueDraftEdit
|
|
12
13
|
} from "./chunk-WSK7G5LE.js";
|
|
13
14
|
import {
|
|
15
|
+
LightboxProvider,
|
|
14
16
|
Tooltip,
|
|
15
17
|
TooltipContent,
|
|
16
18
|
TooltipProvider,
|
|
17
|
-
TooltipTrigger
|
|
18
|
-
|
|
19
|
+
TooltipTrigger,
|
|
20
|
+
useLightboxOptional
|
|
21
|
+
} from "./chunk-YFKJ7VZH.js";
|
|
19
22
|
import {
|
|
20
|
-
|
|
21
|
-
|
|
23
|
+
copyTextToClipboard,
|
|
24
|
+
tableElementToTsv
|
|
25
|
+
} from "./chunk-JVYQRRC4.js";
|
|
22
26
|
import {
|
|
23
27
|
formatBytes,
|
|
24
28
|
formatClockTime,
|
|
@@ -30,10 +34,6 @@ import {
|
|
|
30
34
|
import {
|
|
31
35
|
cn
|
|
32
36
|
} from "./chunk-22KP6LR5.js";
|
|
33
|
-
import {
|
|
34
|
-
copyTextToClipboard,
|
|
35
|
-
tableElementToTsv
|
|
36
|
-
} from "./chunk-JVYQRRC4.js";
|
|
37
37
|
|
|
38
38
|
// src/components/queue-surface.tsx
|
|
39
39
|
import { Loader2Icon } from "lucide-react";
|
|
@@ -1674,7 +1674,8 @@ function HumanInputSurface({
|
|
|
1674
1674
|
}) {
|
|
1675
1675
|
const batchTotalRef = useRef3(0);
|
|
1676
1676
|
const ordered = useMemo2(() => {
|
|
1677
|
-
|
|
1677
|
+
const now = Date.now();
|
|
1678
|
+
return requests.filter((request) => isActionableHumanInputRequest(request, now)).sort((a, b) => {
|
|
1678
1679
|
const aAt = a.createdAt ? Date.parse(a.createdAt) : 0;
|
|
1679
1680
|
const bAt = b.createdAt ? Date.parse(b.createdAt) : 0;
|
|
1680
1681
|
if (aAt !== bAt) return aAt - bAt;
|
|
@@ -2221,147 +2222,16 @@ function useForcedDefaultOpen() {
|
|
|
2221
2222
|
return useContext(DisclosureDefaultsContext);
|
|
2222
2223
|
}
|
|
2223
2224
|
|
|
2224
|
-
// src/timeline/screenshot-lightbox.tsx
|
|
2225
|
-
import { DownloadIcon, XIcon as XIcon2 } from "lucide-react";
|
|
2226
|
-
import { AnimatePresence as AnimatePresence2, motion as motion2 } from "motion/react";
|
|
2227
|
-
import { createContext as createContext2, useCallback, useContext as useContext2, useMemo as useMemo3, useState as useState3 } from "react";
|
|
2228
|
-
import { Dialog } from "radix-ui";
|
|
2229
|
-
import { Fragment as Fragment3, jsx as jsx6, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
2230
|
-
var LightboxContext = createContext2(null);
|
|
2231
|
-
function useLightbox() {
|
|
2232
|
-
return useContext2(LightboxContext) ?? NOOP;
|
|
2233
|
-
}
|
|
2234
|
-
function useLightboxOptional() {
|
|
2235
|
-
return useContext2(LightboxContext);
|
|
2236
|
-
}
|
|
2237
|
-
var NOOP = { open: () => {
|
|
2238
|
-
} };
|
|
2239
|
-
function LightboxProvider({ children }) {
|
|
2240
|
-
const ancestor = useContext2(LightboxContext);
|
|
2241
|
-
if (ancestor) {
|
|
2242
|
-
return /* @__PURE__ */ jsx6(Fragment3, { children });
|
|
2243
|
-
}
|
|
2244
|
-
return /* @__PURE__ */ jsx6(LightboxRoot, { children });
|
|
2245
|
-
}
|
|
2246
|
-
function LightboxRoot({ children }) {
|
|
2247
|
-
const [state, setState] = useState3(null);
|
|
2248
|
-
const [tokenSource, setTokenSource] = useState3(null);
|
|
2249
|
-
const portalStyle = usePortalTokenStyle(tokenSource);
|
|
2250
|
-
const open = useCallback(
|
|
2251
|
-
(src, caption, source, label = "Screenshot", downloadFilename) => {
|
|
2252
|
-
setTokenSource(source ?? null);
|
|
2253
|
-
setState({
|
|
2254
|
-
src,
|
|
2255
|
-
label,
|
|
2256
|
-
...caption ? { caption } : {},
|
|
2257
|
-
...downloadFilename ? { downloadFilename } : {}
|
|
2258
|
-
});
|
|
2259
|
-
},
|
|
2260
|
-
[]
|
|
2261
|
-
);
|
|
2262
|
-
const close = useCallback(() => {
|
|
2263
|
-
setState(null);
|
|
2264
|
-
setTokenSource(null);
|
|
2265
|
-
}, []);
|
|
2266
|
-
const controller = useMemo3(() => ({ open }), [open]);
|
|
2267
|
-
return /* @__PURE__ */ jsxs4(LightboxContext.Provider, { value: controller, children: [
|
|
2268
|
-
children,
|
|
2269
|
-
/* @__PURE__ */ jsx6(Dialog.Root, { open: state !== null, onOpenChange: (next) => !next && close(), children: /* @__PURE__ */ jsx6(AnimatePresence2, { children: state !== null ? /* @__PURE__ */ jsxs4(Dialog.Portal, { forceMount: true, children: [
|
|
2270
|
-
/* @__PURE__ */ jsx6(Dialog.Overlay, { asChild: true, forceMount: true, children: /* @__PURE__ */ jsx6(
|
|
2271
|
-
motion2.div,
|
|
2272
|
-
{
|
|
2273
|
-
initial: { opacity: 0 },
|
|
2274
|
-
animate: { opacity: 1 },
|
|
2275
|
-
exit: { opacity: 0 },
|
|
2276
|
-
transition: { duration: 0.15 },
|
|
2277
|
-
className: "og-root fixed inset-0 z-50 bg-black/90 backdrop-blur-md",
|
|
2278
|
-
style: portalStyle
|
|
2279
|
-
}
|
|
2280
|
-
) }),
|
|
2281
|
-
/* @__PURE__ */ jsx6(
|
|
2282
|
-
Dialog.Content,
|
|
2283
|
-
{
|
|
2284
|
-
asChild: true,
|
|
2285
|
-
forceMount: true,
|
|
2286
|
-
"aria-label": state.label,
|
|
2287
|
-
onOpenAutoFocus: (event) => event.preventDefault(),
|
|
2288
|
-
children: /* @__PURE__ */ jsxs4(
|
|
2289
|
-
motion2.div,
|
|
2290
|
-
{
|
|
2291
|
-
initial: { opacity: 0, scale: 0.98 },
|
|
2292
|
-
animate: { opacity: 1, scale: 1 },
|
|
2293
|
-
exit: { opacity: 0, scale: 0.98 },
|
|
2294
|
-
transition: { duration: 0.18, ease: [0.16, 1, 0.3, 1] },
|
|
2295
|
-
onClick: (event) => {
|
|
2296
|
-
if (event.target === event.currentTarget) {
|
|
2297
|
-
close();
|
|
2298
|
-
}
|
|
2299
|
-
},
|
|
2300
|
-
className: "og-root fixed inset-0 z-50 flex items-center justify-center p-6 sm:p-12",
|
|
2301
|
-
style: portalStyle,
|
|
2302
|
-
children: [
|
|
2303
|
-
/* @__PURE__ */ jsx6(Dialog.Title, { className: "sr-only", children: state.label }),
|
|
2304
|
-
/* @__PURE__ */ jsx6(Dialog.Description, { className: "sr-only", children: state.caption ?? `Expanded ${state.label.toLowerCase()}` }),
|
|
2305
|
-
/* @__PURE__ */ jsxs4("figure", { className: "m-0 flex max-h-full max-w-5xl flex-col items-center gap-3", children: [
|
|
2306
|
-
/* @__PURE__ */ jsxs4("div", { className: "relative flex min-h-0 w-fit max-w-full", children: [
|
|
2307
|
-
/* @__PURE__ */ jsx6(
|
|
2308
|
-
"img",
|
|
2309
|
-
{
|
|
2310
|
-
src: state.src,
|
|
2311
|
-
alt: state.caption ?? state.label,
|
|
2312
|
-
className: "min-h-0 max-h-[82vh] w-auto max-w-full rounded-og-md border border-white/10 object-contain shadow-og-lg"
|
|
2313
|
-
}
|
|
2314
|
-
),
|
|
2315
|
-
/* @__PURE__ */ jsxs4("div", { className: "absolute -right-3 -top-3 flex items-center gap-2", children: [
|
|
2316
|
-
state.downloadFilename ? /* @__PURE__ */ jsx6(
|
|
2317
|
-
"a",
|
|
2318
|
-
{
|
|
2319
|
-
href: state.src,
|
|
2320
|
-
download: state.downloadFilename,
|
|
2321
|
-
className: cn(
|
|
2322
|
-
"inline-flex size-9 items-center justify-center rounded-full",
|
|
2323
|
-
"border border-white/15 bg-black/60 text-white/70 backdrop-blur",
|
|
2324
|
-
"transition-colors hover:border-white/30 hover:text-white"
|
|
2325
|
-
),
|
|
2326
|
-
"aria-label": `Download ${state.downloadFilename}`,
|
|
2327
|
-
children: /* @__PURE__ */ jsx6(DownloadIcon, { className: "size-4" })
|
|
2328
|
-
}
|
|
2329
|
-
) : null,
|
|
2330
|
-
/* @__PURE__ */ jsx6(
|
|
2331
|
-
Dialog.Close,
|
|
2332
|
-
{
|
|
2333
|
-
className: cn(
|
|
2334
|
-
"inline-flex size-9 items-center justify-center rounded-full",
|
|
2335
|
-
"border border-white/15 bg-black/60 text-white/70 backdrop-blur",
|
|
2336
|
-
"transition-colors hover:border-white/30 hover:text-white"
|
|
2337
|
-
),
|
|
2338
|
-
"aria-label": "Close",
|
|
2339
|
-
children: /* @__PURE__ */ jsx6(XIcon2, { className: "size-4" })
|
|
2340
|
-
}
|
|
2341
|
-
)
|
|
2342
|
-
] })
|
|
2343
|
-
] }),
|
|
2344
|
-
state.caption ? /* @__PURE__ */ jsx6("figcaption", { className: "max-w-2xl text-center font-og-mono text-og-xs text-white/55", children: state.caption }) : /* @__PURE__ */ jsx6("figcaption", { className: "font-og-mono text-og-xs uppercase tracking-[0.1em] text-white/35", children: "Esc or click outside to close" })
|
|
2345
|
-
] })
|
|
2346
|
-
]
|
|
2347
|
-
}
|
|
2348
|
-
)
|
|
2349
|
-
}
|
|
2350
|
-
)
|
|
2351
|
-
] }) : null }) })
|
|
2352
|
-
] });
|
|
2353
|
-
}
|
|
2354
|
-
|
|
2355
2225
|
// src/timeline/shared.tsx
|
|
2356
2226
|
import { CameraIcon, CameraOffIcon, ChevronRightIcon } from "lucide-react";
|
|
2357
|
-
import { createContext as
|
|
2358
|
-
import { Fragment as
|
|
2359
|
-
var ToolCallTruncationContext =
|
|
2227
|
+
import { createContext as createContext2, useContext as useContext2, useState as useState3 } from "react";
|
|
2228
|
+
import { Fragment as Fragment3, jsx as jsx6, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
2229
|
+
var ToolCallTruncationContext = createContext2(null);
|
|
2360
2230
|
function ToolCallTruncationProvider({
|
|
2361
2231
|
value,
|
|
2362
2232
|
children
|
|
2363
2233
|
}) {
|
|
2364
|
-
return /* @__PURE__ */
|
|
2234
|
+
return /* @__PURE__ */ jsx6(ToolCallTruncationContext.Provider, { value, children });
|
|
2365
2235
|
}
|
|
2366
2236
|
var ICON_TONE = {
|
|
2367
2237
|
accent: "text-og-accent",
|
|
@@ -2387,8 +2257,8 @@ function ActivityDisclosure({
|
|
|
2387
2257
|
const iconTone = failed && iconToneProp === "muted" ? "failed" : iconToneProp;
|
|
2388
2258
|
const chip = chipProp ?? (failed ? { tone: "bad", text: "failed" } : cancelled ? { tone: "interrupted", text: "interrupted" } : void 0);
|
|
2389
2259
|
const forcedDefaultOpen = useForcedDefaultOpen();
|
|
2390
|
-
const [open, setOpen] =
|
|
2391
|
-
const truncation =
|
|
2260
|
+
const [open, setOpen] = useState3(defaultOpen ?? forcedDefaultOpen ?? false);
|
|
2261
|
+
const truncation = useContext2(ToolCallTruncationContext);
|
|
2392
2262
|
const hasBody = expandable && (children != null || truncation != null);
|
|
2393
2263
|
const previewVisible = preview != null && !open;
|
|
2394
2264
|
const rowClass = cn(
|
|
@@ -2398,10 +2268,10 @@ function ActivityDisclosure({
|
|
|
2398
2268
|
// 44px mobile minimum without loosening the dense desktop rail.
|
|
2399
2269
|
"pointer-coarse:min-h-11 pointer-coarse:py-2.5"
|
|
2400
2270
|
);
|
|
2401
|
-
const inner = /* @__PURE__ */
|
|
2402
|
-
hasBody ? /* @__PURE__ */
|
|
2403
|
-
/* @__PURE__ */
|
|
2404
|
-
/* @__PURE__ */
|
|
2271
|
+
const inner = /* @__PURE__ */ jsxs4(Fragment3, { children: [
|
|
2272
|
+
hasBody ? /* @__PURE__ */ jsx6(ChevronRightIcon, { className: "size-3.5 shrink-0 text-og-fg-subtle transition-transform duration-[var(--_og-duration-disclose)] ease-og-in-out group-data-[state=open]/disclosure:rotate-90" }) : /* @__PURE__ */ jsx6("span", { className: "size-3.5 shrink-0" }),
|
|
2273
|
+
/* @__PURE__ */ jsx6("span", { className: cn("shrink-0", ICON_TONE[iconTone]), children: icon }),
|
|
2274
|
+
/* @__PURE__ */ jsx6(
|
|
2405
2275
|
"span",
|
|
2406
2276
|
{
|
|
2407
2277
|
className: cn(
|
|
@@ -2412,15 +2282,15 @@ function ActivityDisclosure({
|
|
|
2412
2282
|
children: title
|
|
2413
2283
|
}
|
|
2414
2284
|
),
|
|
2415
|
-
previewVisible && !media ? /* @__PURE__ */
|
|
2416
|
-
media && !open ? /* @__PURE__ */
|
|
2285
|
+
previewVisible && !media ? /* @__PURE__ */ jsx6("span", { className: "min-w-0 flex-1 truncate text-og-sm text-og-fg-subtle", children: preview }) : /* @__PURE__ */ jsx6("span", { className: "flex-1" }),
|
|
2286
|
+
media && !open ? /* @__PURE__ */ jsx6("span", { className: "ml-auto flex shrink-0 items-center gap-2 pl-2", children: media }) : chip && !open ? /* @__PURE__ */ jsx6("span", { className: "ml-auto shrink-0 pl-2", children: /* @__PURE__ */ jsx6(Chip, { chip }) }) : null
|
|
2417
2287
|
] });
|
|
2418
2288
|
const dataStatus = cancelled ? "cancelled" : failed ? "failed" : void 0;
|
|
2419
2289
|
if (!hasBody) {
|
|
2420
|
-
return /* @__PURE__ */
|
|
2290
|
+
return /* @__PURE__ */ jsx6("div", { className: cn(rowClass, "cursor-default"), "data-status": dataStatus, children: inner });
|
|
2421
2291
|
}
|
|
2422
|
-
return /* @__PURE__ */
|
|
2423
|
-
/* @__PURE__ */
|
|
2292
|
+
return /* @__PURE__ */ jsxs4("div", { children: [
|
|
2293
|
+
/* @__PURE__ */ jsx6(
|
|
2424
2294
|
"div",
|
|
2425
2295
|
{
|
|
2426
2296
|
role: "button",
|
|
@@ -2443,37 +2313,37 @@ function ActivityDisclosure({
|
|
|
2443
2313
|
children: inner
|
|
2444
2314
|
}
|
|
2445
2315
|
),
|
|
2446
|
-
open ? /* @__PURE__ */
|
|
2316
|
+
open ? /* @__PURE__ */ jsxs4("div", { className: "mb-2 ml-7 mt-1.5 flex flex-col gap-2 overflow-hidden animate-og-expand", children: [
|
|
2447
2317
|
children,
|
|
2448
|
-
truncation ? /* @__PURE__ */
|
|
2318
|
+
truncation ? /* @__PURE__ */ jsx6(ToolCallTruncationNotice, { truncation }) : null
|
|
2449
2319
|
] }) : null
|
|
2450
2320
|
] });
|
|
2451
2321
|
}
|
|
2452
2322
|
function ToolCallTruncationNotice({ truncation }) {
|
|
2453
2323
|
const fullEvidence = truncation.fullEvidence.available ? "retained" : truncation.fullEvidence.reason ?? "unavailable";
|
|
2454
|
-
return /* @__PURE__ */
|
|
2324
|
+
return /* @__PURE__ */ jsxs4("div", { "data-og-tool-output-truncation": "", className: "text-og-sm leading-5 text-og-fg-subtle", children: [
|
|
2455
2325
|
"Output bounded at ",
|
|
2456
|
-
/* @__PURE__ */
|
|
2326
|
+
/* @__PURE__ */ jsx6("code", { className: "font-og-mono", children: truncation.surface }),
|
|
2457
2327
|
truncation.omittedBytes != null && truncation.omittedBytes > 0 ? ` \xB7 ${truncation.omittedBytes.toLocaleString()} bytes omitted` : null,
|
|
2458
2328
|
" \xB7 reason ",
|
|
2459
|
-
/* @__PURE__ */
|
|
2329
|
+
/* @__PURE__ */ jsx6("code", { className: "font-og-mono", children: truncation.reason }),
|
|
2460
2330
|
" \xB7 full evidence ",
|
|
2461
|
-
/* @__PURE__ */
|
|
2331
|
+
/* @__PURE__ */ jsx6("code", { className: "font-og-mono", children: fullEvidence })
|
|
2462
2332
|
] });
|
|
2463
2333
|
}
|
|
2464
2334
|
function Chip({ chip }) {
|
|
2465
2335
|
const base = "inline-flex items-center font-og-mono text-og-xs leading-none";
|
|
2466
2336
|
const withText = chip.text ? "gap-1.5" : "gap-0";
|
|
2467
2337
|
if (chip.tone === "bad") {
|
|
2468
|
-
return /* @__PURE__ */
|
|
2469
|
-
/* @__PURE__ */
|
|
2338
|
+
return /* @__PURE__ */ jsxs4("span", { className: cn(base, withText, "text-og-status-failed"), children: [
|
|
2339
|
+
/* @__PURE__ */ jsx6("span", { className: "size-1.5 rounded-full bg-og-status-failed" }),
|
|
2470
2340
|
chip.text
|
|
2471
2341
|
] });
|
|
2472
2342
|
}
|
|
2473
2343
|
if (chip.tone === "interrupted") {
|
|
2474
|
-
return /* @__PURE__ */
|
|
2344
|
+
return /* @__PURE__ */ jsx6("span", { className: cn(base, "text-og-fg-subtle og-cancelled-chip"), children: chip.text });
|
|
2475
2345
|
}
|
|
2476
|
-
return /* @__PURE__ */
|
|
2346
|
+
return /* @__PURE__ */ jsx6("span", { className: cn(base, "text-og-fg-subtle"), children: chip.text });
|
|
2477
2347
|
}
|
|
2478
2348
|
function TermBlock({
|
|
2479
2349
|
command,
|
|
@@ -2483,14 +2353,14 @@ function TermBlock({
|
|
|
2483
2353
|
tailLines = 12,
|
|
2484
2354
|
failed
|
|
2485
2355
|
}) {
|
|
2486
|
-
const [full, setFull] =
|
|
2356
|
+
const [full, setFull] = useState3(false);
|
|
2487
2357
|
const empty = output.trim() === "";
|
|
2488
2358
|
const lines = output.split("\n");
|
|
2489
2359
|
const big = lines.length > tailLines + 4;
|
|
2490
2360
|
const shown = full || !big ? output : lines.slice(-tailLines).join("\n");
|
|
2491
2361
|
const showMore = big && !full;
|
|
2492
2362
|
const showHeader = command != null || workdir != null;
|
|
2493
|
-
return /* @__PURE__ */
|
|
2363
|
+
return /* @__PURE__ */ jsxs4(
|
|
2494
2364
|
"div",
|
|
2495
2365
|
{
|
|
2496
2366
|
className: cn(
|
|
@@ -2498,16 +2368,16 @@ function TermBlock({
|
|
|
2498
2368
|
failed ? "border-og-status-failed/50" : live ? "border-og-status-running/50" : "border-og-border"
|
|
2499
2369
|
),
|
|
2500
2370
|
children: [
|
|
2501
|
-
showHeader ? /* @__PURE__ */
|
|
2502
|
-
/* @__PURE__ */
|
|
2503
|
-
command != null ? /* @__PURE__ */
|
|
2504
|
-
workdir ? /* @__PURE__ */
|
|
2371
|
+
showHeader ? /* @__PURE__ */ jsxs4("div", { className: "flex items-center gap-2 pb-1", children: [
|
|
2372
|
+
/* @__PURE__ */ jsx6("span", { className: "select-none text-og-status-idle", children: "$" }),
|
|
2373
|
+
command != null ? /* @__PURE__ */ jsx6("span", { className: "min-w-0 flex-1 truncate font-og-mono text-og-sm text-og-fg-muted", children: command }) : /* @__PURE__ */ jsx6("span", { className: "flex-1" }),
|
|
2374
|
+
workdir ? /* @__PURE__ */ jsx6("span", { className: "shrink-0 font-og-mono text-og-xs text-og-fg-subtle", children: workdir }) : null
|
|
2505
2375
|
] }) : null,
|
|
2506
|
-
empty ? /* @__PURE__ */
|
|
2376
|
+
empty ? /* @__PURE__ */ jsx6("p", { className: "font-og-mono text-og-xs italic text-og-fg-subtle", children: "(no output)" }) : /* @__PURE__ */ jsxs4("pre", { className: "max-h-72 overflow-auto whitespace-pre-wrap break-all font-og-mono text-og-xs leading-5 text-og-fg-muted", children: [
|
|
2507
2377
|
shown,
|
|
2508
|
-
live ? /* @__PURE__ */
|
|
2378
|
+
live ? /* @__PURE__ */ jsx6("span", { className: "ml-px inline-block h-[1em] w-[2px] translate-y-[2px] animate-og-blink bg-og-accent align-middle" }) : null
|
|
2509
2379
|
] }),
|
|
2510
|
-
showMore ? /* @__PURE__ */
|
|
2380
|
+
showMore ? /* @__PURE__ */ jsxs4(
|
|
2511
2381
|
"button",
|
|
2512
2382
|
{
|
|
2513
2383
|
type: "button",
|
|
@@ -2533,7 +2403,7 @@ function PayloadBlock({
|
|
|
2533
2403
|
if (!text || text.trim() === "") {
|
|
2534
2404
|
return null;
|
|
2535
2405
|
}
|
|
2536
|
-
return /* @__PURE__ */
|
|
2406
|
+
return /* @__PURE__ */ jsxs4(
|
|
2537
2407
|
"div",
|
|
2538
2408
|
{
|
|
2539
2409
|
className: cn(
|
|
@@ -2541,8 +2411,8 @@ function PayloadBlock({
|
|
|
2541
2411
|
failed ? "border-og-status-failed/50" : "border-og-border"
|
|
2542
2412
|
),
|
|
2543
2413
|
children: [
|
|
2544
|
-
/* @__PURE__ */
|
|
2545
|
-
/* @__PURE__ */
|
|
2414
|
+
/* @__PURE__ */ jsx6("p", { className: "mb-1 text-og-xs font-medium uppercase tracking-[0.08em] text-og-fg-subtle", children: label }),
|
|
2415
|
+
/* @__PURE__ */ jsx6(
|
|
2546
2416
|
"pre",
|
|
2547
2417
|
{
|
|
2548
2418
|
className: cn(
|
|
@@ -2561,13 +2431,13 @@ function BodyNote({
|
|
|
2561
2431
|
tone
|
|
2562
2432
|
}) {
|
|
2563
2433
|
if (tone === "error") {
|
|
2564
|
-
return /* @__PURE__ */
|
|
2434
|
+
return /* @__PURE__ */ jsx6("div", { className: "border-l-2 border-og-status-failed/50 pl-3 font-og-mono text-og-xs leading-5 text-og-status-failed", children });
|
|
2565
2435
|
}
|
|
2566
|
-
return /* @__PURE__ */
|
|
2436
|
+
return /* @__PURE__ */ jsx6("p", { className: "px-0.5 text-og-sm italic leading-5 text-og-fg-subtle", children });
|
|
2567
2437
|
}
|
|
2568
2438
|
var MEDIA_BOX = "h-7 w-[52px] shrink-0 rounded-og-xs border border-og-border";
|
|
2569
2439
|
function MediaSkeleton() {
|
|
2570
|
-
return /* @__PURE__ */
|
|
2440
|
+
return /* @__PURE__ */ jsxs4(
|
|
2571
2441
|
"span",
|
|
2572
2442
|
{
|
|
2573
2443
|
className: cn(
|
|
@@ -2575,14 +2445,14 @@ function MediaSkeleton() {
|
|
|
2575
2445
|
"relative inline-flex items-center justify-center overflow-hidden bg-og-surface-2"
|
|
2576
2446
|
),
|
|
2577
2447
|
children: [
|
|
2578
|
-
/* @__PURE__ */
|
|
2579
|
-
/* @__PURE__ */
|
|
2448
|
+
/* @__PURE__ */ jsx6("span", { className: "absolute inset-0 animate-og-pulse bg-og-surface-3/50" }),
|
|
2449
|
+
/* @__PURE__ */ jsx6(CameraIcon, { className: "relative size-3.5 text-og-fg-subtle" })
|
|
2580
2450
|
]
|
|
2581
2451
|
}
|
|
2582
2452
|
);
|
|
2583
2453
|
}
|
|
2584
2454
|
function MediaEmpty() {
|
|
2585
|
-
return /* @__PURE__ */
|
|
2455
|
+
return /* @__PURE__ */ jsx6("span", { className: cn(MEDIA_BOX, "inline-flex items-center justify-center bg-og-bg"), children: /* @__PURE__ */ jsx6(CameraOffIcon, { className: "size-3.5 text-og-fg-subtle" }) });
|
|
2586
2456
|
}
|
|
2587
2457
|
function Thumbnail({
|
|
2588
2458
|
src,
|
|
@@ -2593,11 +2463,11 @@ function Thumbnail({
|
|
|
2593
2463
|
downloadFilename
|
|
2594
2464
|
}) {
|
|
2595
2465
|
const lightbox = useLightboxOptional();
|
|
2596
|
-
const [failed, setFailed] =
|
|
2466
|
+
const [failed, setFailed] = useState3(false);
|
|
2597
2467
|
if (failed) {
|
|
2598
|
-
return /* @__PURE__ */
|
|
2468
|
+
return /* @__PURE__ */ jsx6(MediaEmpty, {});
|
|
2599
2469
|
}
|
|
2600
|
-
const img = /* @__PURE__ */
|
|
2470
|
+
const img = /* @__PURE__ */ jsx6(
|
|
2601
2471
|
"img",
|
|
2602
2472
|
{
|
|
2603
2473
|
src,
|
|
@@ -2607,9 +2477,9 @@ function Thumbnail({
|
|
|
2607
2477
|
}
|
|
2608
2478
|
);
|
|
2609
2479
|
if (!lightbox) {
|
|
2610
|
-
return /* @__PURE__ */
|
|
2480
|
+
return /* @__PURE__ */ jsx6("span", { className: cn(MEDIA_BOX, "inline-flex overflow-hidden bg-og-bg"), children: img });
|
|
2611
2481
|
}
|
|
2612
|
-
return /* @__PURE__ */
|
|
2482
|
+
return /* @__PURE__ */ jsx6(
|
|
2613
2483
|
"button",
|
|
2614
2484
|
{
|
|
2615
2485
|
type: "button",
|
|
@@ -2641,9 +2511,9 @@ function ScreenshotFigure({
|
|
|
2641
2511
|
downloadFilename
|
|
2642
2512
|
}) {
|
|
2643
2513
|
const lightbox = useLightboxOptional();
|
|
2644
|
-
const [failed, setFailed] =
|
|
2514
|
+
const [failed, setFailed] = useState3(false);
|
|
2645
2515
|
const surface = "block w-full overflow-hidden rounded-og-md border border-og-border bg-og-bg";
|
|
2646
|
-
const img = /* @__PURE__ */
|
|
2516
|
+
const img = /* @__PURE__ */ jsx6(
|
|
2647
2517
|
"img",
|
|
2648
2518
|
{
|
|
2649
2519
|
src,
|
|
@@ -2652,8 +2522,8 @@ function ScreenshotFigure({
|
|
|
2652
2522
|
className: "max-h-80 w-full object-contain"
|
|
2653
2523
|
}
|
|
2654
2524
|
);
|
|
2655
|
-
return /* @__PURE__ */
|
|
2656
|
-
failed ? /* @__PURE__ */
|
|
2525
|
+
return /* @__PURE__ */ jsxs4("figure", { className: "m-0 min-w-0", children: [
|
|
2526
|
+
failed ? /* @__PURE__ */ jsx6("div", { className: "rounded-og-md border border-og-border bg-og-bg px-3 py-6 text-center font-og-mono text-og-xs text-og-fg-subtle", children: "image unavailable" }) : lightbox ? /* @__PURE__ */ jsx6(
|
|
2657
2527
|
"button",
|
|
2658
2528
|
{
|
|
2659
2529
|
type: "button",
|
|
@@ -2662,8 +2532,8 @@ function ScreenshotFigure({
|
|
|
2662
2532
|
"aria-label": expandLabel,
|
|
2663
2533
|
children: img
|
|
2664
2534
|
}
|
|
2665
|
-
) : /* @__PURE__ */
|
|
2666
|
-
caption ? /* @__PURE__ */
|
|
2535
|
+
) : /* @__PURE__ */ jsx6("div", { className: surface, children: img }),
|
|
2536
|
+
caption ? /* @__PURE__ */ jsx6("figcaption", { className: "mt-1.5 font-og-mono text-og-xs text-og-fg-subtle", children: caption }) : null
|
|
2667
2537
|
] });
|
|
2668
2538
|
}
|
|
2669
2539
|
|
|
@@ -2701,9 +2571,9 @@ import {
|
|
|
2701
2571
|
lazy as lazy2,
|
|
2702
2572
|
Suspense as Suspense2,
|
|
2703
2573
|
useEffect as useEffect4,
|
|
2704
|
-
useState as
|
|
2574
|
+
useState as useState4
|
|
2705
2575
|
} from "react";
|
|
2706
|
-
import { jsx as
|
|
2576
|
+
import { jsx as jsx7 } from "react/jsx-runtime";
|
|
2707
2577
|
var LazyPatchDiff = lazy2(async () => {
|
|
2708
2578
|
const mod = await import("@pierre/diffs/react");
|
|
2709
2579
|
return { default: mod.PatchDiff };
|
|
@@ -2720,8 +2590,8 @@ function PierreDiff({
|
|
|
2720
2590
|
overflow = "wrap",
|
|
2721
2591
|
className
|
|
2722
2592
|
}) {
|
|
2723
|
-
const [failed, setFailed] =
|
|
2724
|
-
const [forcedColors, setForcedColors] =
|
|
2593
|
+
const [failed, setFailed] = useState4(false);
|
|
2594
|
+
const [forcedColors, setForcedColors] = useState4(false);
|
|
2725
2595
|
useEffect4(() => {
|
|
2726
2596
|
if (typeof window === "undefined" || typeof window.matchMedia !== "function") return;
|
|
2727
2597
|
const query2 = window.matchMedia("(forced-colors: active)");
|
|
@@ -2741,12 +2611,12 @@ function PierreDiff({
|
|
|
2741
2611
|
};
|
|
2742
2612
|
}, [plain]);
|
|
2743
2613
|
if (plain || failed || forcedColors) {
|
|
2744
|
-
return /* @__PURE__ */
|
|
2614
|
+
return /* @__PURE__ */ jsx7(
|
|
2745
2615
|
"div",
|
|
2746
2616
|
{
|
|
2747
2617
|
className,
|
|
2748
2618
|
"data-opengeni-plain-diff": forcedColors ? "forced-colors" : "fallback",
|
|
2749
|
-
children: fallback ?? /* @__PURE__ */
|
|
2619
|
+
children: fallback ?? /* @__PURE__ */ jsx7(PlainPatch, { diff })
|
|
2750
2620
|
}
|
|
2751
2621
|
);
|
|
2752
2622
|
}
|
|
@@ -2780,7 +2650,7 @@ function PierreDiff({
|
|
|
2780
2650
|
"--diffs-font-size": "var(--og-code-font-size)",
|
|
2781
2651
|
"--diffs-line-height": "var(--og-code-line-height)"
|
|
2782
2652
|
};
|
|
2783
|
-
return /* @__PURE__ */
|
|
2653
|
+
return /* @__PURE__ */ jsx7("div", { className: cn("min-w-0", className), "data-opengeni-pierre-diff": true, style: pierreVars, children: /* @__PURE__ */ jsx7(Suspense2, { fallback: loading ?? /* @__PURE__ */ jsx7(DiffSkeleton, {}), children: diff.map((file) => /* @__PURE__ */ jsx7("div", { className: "mb-2", children: /* @__PURE__ */ jsx7(
|
|
2784
2654
|
LazyPatchDiff,
|
|
2785
2655
|
{
|
|
2786
2656
|
patch: gitFileDiffToPatch(file),
|
|
@@ -2790,20 +2660,20 @@ function PierreDiff({
|
|
|
2790
2660
|
) }, file.path)) }) });
|
|
2791
2661
|
}
|
|
2792
2662
|
function DiffSkeleton() {
|
|
2793
|
-
return /* @__PURE__ */
|
|
2663
|
+
return /* @__PURE__ */ jsx7("div", { className: "p-3 text-og-sm text-og-fg-subtle", children: "Loading diff\u2026" });
|
|
2794
2664
|
}
|
|
2795
2665
|
function PlainPatch({ diff }) {
|
|
2796
2666
|
if (diff.length === 0) {
|
|
2797
|
-
return /* @__PURE__ */
|
|
2667
|
+
return /* @__PURE__ */ jsx7("div", { className: "p-3 text-og-sm text-og-fg-subtle", children: "No changes" });
|
|
2798
2668
|
}
|
|
2799
|
-
return /* @__PURE__ */
|
|
2669
|
+
return /* @__PURE__ */ jsx7("div", { className: "min-w-0", children: diff.map((file) => /* @__PURE__ */ jsx7(
|
|
2800
2670
|
"pre",
|
|
2801
2671
|
{
|
|
2802
2672
|
"aria-label": `Diff for ${file.path}`,
|
|
2803
2673
|
className: "mb-2 overflow-auto whitespace-pre rounded-og-sm border border-og-border bg-og-bg/60 p-2.5 font-og-mono text-og-xs leading-5",
|
|
2804
2674
|
role: "region",
|
|
2805
2675
|
tabIndex: 0,
|
|
2806
|
-
children: gitFileDiffToPatch(file).split("\n").map((line, index) => /* @__PURE__ */
|
|
2676
|
+
children: gitFileDiffToPatch(file).split("\n").map((line, index) => /* @__PURE__ */ jsx7(
|
|
2807
2677
|
"span",
|
|
2808
2678
|
{
|
|
2809
2679
|
className: cn(
|
|
@@ -2829,7 +2699,7 @@ import {
|
|
|
2829
2699
|
CalendarClockIcon,
|
|
2830
2700
|
CameraIcon as CameraIcon2,
|
|
2831
2701
|
CameraOffIcon as CameraOffIcon2,
|
|
2832
|
-
DownloadIcon
|
|
2702
|
+
DownloadIcon,
|
|
2833
2703
|
FileDiffIcon,
|
|
2834
2704
|
FileSearchIcon,
|
|
2835
2705
|
FolderGitIcon,
|
|
@@ -2854,23 +2724,23 @@ import {
|
|
|
2854
2724
|
VideoIcon,
|
|
2855
2725
|
WrenchIcon
|
|
2856
2726
|
} from "lucide-react";
|
|
2857
|
-
import { useEffect as useEffect6, useRef as useRef4, useState as
|
|
2727
|
+
import { useEffect as useEffect6, useRef as useRef4, useState as useState7 } from "react";
|
|
2858
2728
|
|
|
2859
2729
|
// src/timeline/compute-label.tsx
|
|
2860
|
-
import { createContext as
|
|
2861
|
-
var TimelineComputeLabelContext =
|
|
2730
|
+
import { createContext as createContext3, useContext as useContext3 } from "react";
|
|
2731
|
+
var TimelineComputeLabelContext = createContext3(null);
|
|
2862
2732
|
var TimelineComputeLabelProvider = TimelineComputeLabelContext.Provider;
|
|
2863
2733
|
function useTimelineComputeLabel() {
|
|
2864
|
-
return
|
|
2734
|
+
return useContext3(TimelineComputeLabelContext);
|
|
2865
2735
|
}
|
|
2866
2736
|
|
|
2867
2737
|
// src/timeline/tool-diff.tsx
|
|
2868
|
-
import { useState as
|
|
2738
|
+
import { useState as useState6 } from "react";
|
|
2869
2739
|
|
|
2870
2740
|
// src/lib/use-theme-type.ts
|
|
2871
|
-
import { useEffect as useEffect5, useState as
|
|
2741
|
+
import { useEffect as useEffect5, useState as useState5 } from "react";
|
|
2872
2742
|
function useThemeType(forced) {
|
|
2873
|
-
const [detected, setDetected] =
|
|
2743
|
+
const [detected, setDetected] = useState5("dark");
|
|
2874
2744
|
useEffect5(() => {
|
|
2875
2745
|
if (forced || typeof document === "undefined") return;
|
|
2876
2746
|
const read = () => {
|
|
@@ -2891,20 +2761,20 @@ function useThemeType(forced) {
|
|
|
2891
2761
|
}
|
|
2892
2762
|
|
|
2893
2763
|
// src/timeline/tool-diff.tsx
|
|
2894
|
-
import { jsx as
|
|
2764
|
+
import { jsx as jsx8, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
2895
2765
|
function ToolDiff({ files }) {
|
|
2896
|
-
const [layout, setLayout] =
|
|
2766
|
+
const [layout, setLayout] = useState6("unified");
|
|
2897
2767
|
const themeType = useThemeType(void 0);
|
|
2898
|
-
return /* @__PURE__ */
|
|
2899
|
-
/* @__PURE__ */
|
|
2900
|
-
/* @__PURE__ */
|
|
2768
|
+
return /* @__PURE__ */ jsxs5("div", { className: "min-w-0", children: [
|
|
2769
|
+
/* @__PURE__ */ jsx8("div", { className: "mb-1.5 flex justify-end", children: /* @__PURE__ */ jsx8(LayoutToggle, { layout, onChange: setLayout }) }),
|
|
2770
|
+
/* @__PURE__ */ jsx8(PierreDiff, { diff: files, layout, themeType })
|
|
2901
2771
|
] });
|
|
2902
2772
|
}
|
|
2903
2773
|
function LayoutToggle({
|
|
2904
2774
|
layout,
|
|
2905
2775
|
onChange
|
|
2906
2776
|
}) {
|
|
2907
|
-
return /* @__PURE__ */
|
|
2777
|
+
return /* @__PURE__ */ jsx8("div", { className: "inline-flex items-center gap-px rounded-og-xs border border-og-border p-px", children: ["unified", "split"].map((value) => /* @__PURE__ */ jsx8(
|
|
2908
2778
|
"button",
|
|
2909
2779
|
{
|
|
2910
2780
|
type: "button",
|
|
@@ -2925,9 +2795,9 @@ function RawPatch({ diff }) {
|
|
|
2925
2795
|
occurrences.set(line, occurrence);
|
|
2926
2796
|
return { key: `${line}\0${occurrence}`, line };
|
|
2927
2797
|
});
|
|
2928
|
-
return /* @__PURE__ */
|
|
2929
|
-
/* @__PURE__ */
|
|
2930
|
-
/* @__PURE__ */
|
|
2798
|
+
return /* @__PURE__ */ jsxs5("div", { className: "min-w-0", children: [
|
|
2799
|
+
/* @__PURE__ */ jsx8("p", { className: "mb-1 text-og-xs font-medium uppercase tracking-[0.08em] text-og-fg-subtle", children: "raw patch (could not parse hunks)" }),
|
|
2800
|
+
/* @__PURE__ */ jsx8("pre", { className: "max-h-72 overflow-auto border-l-2 border-og-border pl-3 font-og-mono text-og-xs leading-5", children: lines.map(({ key, line }) => /* @__PURE__ */ jsx8(
|
|
2931
2801
|
"span",
|
|
2932
2802
|
{
|
|
2933
2803
|
className: cn(
|
|
@@ -2942,12 +2812,12 @@ function RawPatch({ diff }) {
|
|
|
2942
2812
|
}
|
|
2943
2813
|
|
|
2944
2814
|
// src/timeline/tool-renderers.tsx
|
|
2945
|
-
import { jsx as
|
|
2815
|
+
import { jsx as jsx9, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
2946
2816
|
var ICON_SIZE = "size-3.5";
|
|
2947
2817
|
function RunningPreview({ children }) {
|
|
2948
|
-
return /* @__PURE__ */
|
|
2949
|
-
/* @__PURE__ */
|
|
2950
|
-
/* @__PURE__ */
|
|
2818
|
+
return /* @__PURE__ */ jsxs6("span", { className: "inline-flex items-center gap-1.5", children: [
|
|
2819
|
+
/* @__PURE__ */ jsx9("span", { className: "size-1.5 shrink-0 animate-og-pulse rounded-full bg-og-status-running" }),
|
|
2820
|
+
/* @__PURE__ */ jsx9("span", { className: "min-w-0 truncate", children })
|
|
2951
2821
|
] });
|
|
2952
2822
|
}
|
|
2953
2823
|
function withComputePreview(label, preview) {
|
|
@@ -2965,46 +2835,46 @@ function ExecRenderer({ item }) {
|
|
|
2965
2835
|
const title = `$ ${cmd}`;
|
|
2966
2836
|
const computeLabel = useTimelineComputeLabel();
|
|
2967
2837
|
if (item.status === "failed" && out === void 0) {
|
|
2968
|
-
return /* @__PURE__ */
|
|
2838
|
+
return /* @__PURE__ */ jsx9(
|
|
2969
2839
|
ActivityDisclosure,
|
|
2970
2840
|
{
|
|
2971
|
-
icon: /* @__PURE__ */
|
|
2841
|
+
icon: /* @__PURE__ */ jsx9(TerminalIcon, { className: ICON_SIZE }),
|
|
2972
2842
|
iconTone: "failed",
|
|
2973
2843
|
title,
|
|
2974
2844
|
titleMono: true,
|
|
2975
2845
|
chip: { tone: "bad", text: "failed" },
|
|
2976
2846
|
preview: withComputePreview(computeLabel, "output lost \u2014 NUL byte could not be stored"),
|
|
2977
|
-
children: /* @__PURE__ */
|
|
2847
|
+
children: /* @__PURE__ */ jsx9(BodyNote, { tone: "error", children: "output contained a NUL byte and could not be stored; the turn failed on this tool's output insert \u2014 no output event ever arrived." })
|
|
2978
2848
|
}
|
|
2979
2849
|
);
|
|
2980
2850
|
}
|
|
2981
2851
|
if (item.status === "failed" && (out == null || out === "")) {
|
|
2982
|
-
return /* @__PURE__ */
|
|
2852
|
+
return /* @__PURE__ */ jsx9(
|
|
2983
2853
|
ActivityDisclosure,
|
|
2984
2854
|
{
|
|
2985
|
-
icon: /* @__PURE__ */
|
|
2855
|
+
icon: /* @__PURE__ */ jsx9(TerminalIcon, { className: ICON_SIZE }),
|
|
2986
2856
|
iconTone: "failed",
|
|
2987
2857
|
title,
|
|
2988
2858
|
titleMono: true,
|
|
2989
2859
|
chip: { tone: "bad", text: "failed" },
|
|
2990
2860
|
preview: withComputePreview(computeLabel, "tool call failed"),
|
|
2991
|
-
children: /* @__PURE__ */
|
|
2861
|
+
children: /* @__PURE__ */ jsx9(BodyNote, { tone: "error", children: "the tool call failed with no output." })
|
|
2992
2862
|
}
|
|
2993
2863
|
);
|
|
2994
2864
|
}
|
|
2995
2865
|
if (running) {
|
|
2996
2866
|
const streamed = typeof out === "string" ? stripExecBanner(out) : "";
|
|
2997
2867
|
const runningPreview = streamed ? `${streamed.split("\n").length} lines` : "running\u2026";
|
|
2998
|
-
return /* @__PURE__ */
|
|
2868
|
+
return /* @__PURE__ */ jsx9(
|
|
2999
2869
|
ActivityDisclosure,
|
|
3000
2870
|
{
|
|
3001
|
-
icon: /* @__PURE__ */
|
|
2871
|
+
icon: /* @__PURE__ */ jsx9(TerminalIcon, { className: ICON_SIZE }),
|
|
3002
2872
|
iconTone: "running",
|
|
3003
2873
|
title,
|
|
3004
2874
|
titleMono: true,
|
|
3005
2875
|
running: true,
|
|
3006
|
-
preview: /* @__PURE__ */
|
|
3007
|
-
children: /* @__PURE__ */
|
|
2876
|
+
preview: /* @__PURE__ */ jsx9(RunningPreview, { children: withComputePreview(computeLabel, runningPreview) }),
|
|
2877
|
+
children: /* @__PURE__ */ jsx9(TermBlock, { command: null, workdir, output: streamed, live: true })
|
|
3008
2878
|
}
|
|
3009
2879
|
);
|
|
3010
2880
|
}
|
|
@@ -3025,10 +2895,10 @@ function ExecRenderer({ item }) {
|
|
|
3025
2895
|
const truncated = execTruncated(text);
|
|
3026
2896
|
const preview = withComputePreview(computeLabel, truncated ? `\u22EF truncated \xB7 ${peek}` : peek);
|
|
3027
2897
|
const body = binary ? "(binary output suppressed)" : stripped;
|
|
3028
|
-
return /* @__PURE__ */
|
|
2898
|
+
return /* @__PURE__ */ jsxs6(
|
|
3029
2899
|
ActivityDisclosure,
|
|
3030
2900
|
{
|
|
3031
|
-
icon: /* @__PURE__ */
|
|
2901
|
+
icon: /* @__PURE__ */ jsx9(TerminalIcon, { className: ICON_SIZE }),
|
|
3032
2902
|
iconTone,
|
|
3033
2903
|
title,
|
|
3034
2904
|
titleMono: true,
|
|
@@ -3037,7 +2907,7 @@ function ExecRenderer({ item }) {
|
|
|
3037
2907
|
cancelled: item.status === "cancelled",
|
|
3038
2908
|
preview,
|
|
3039
2909
|
children: [
|
|
3040
|
-
/* @__PURE__ */
|
|
2910
|
+
/* @__PURE__ */ jsx9(
|
|
3041
2911
|
TermBlock,
|
|
3042
2912
|
{
|
|
3043
2913
|
command: null,
|
|
@@ -3046,7 +2916,7 @@ function ExecRenderer({ item }) {
|
|
|
3046
2916
|
failed: item.status === "failed" || exitCode != null && exitCode !== 0
|
|
3047
2917
|
}
|
|
3048
2918
|
),
|
|
3049
|
-
bgSession != null ? /* @__PURE__ */
|
|
2919
|
+
bgSession != null ? /* @__PURE__ */ jsxs6(BodyNote, { children: [
|
|
3050
2920
|
"\u21B3 session ",
|
|
3051
2921
|
bgSession,
|
|
3052
2922
|
" \u2014 a later write_stdin can target this PTY."
|
|
@@ -3065,16 +2935,16 @@ function WriteStdinRenderer({ item }) {
|
|
|
3065
2935
|
const exitCode = sandboxCommandExitCode(text);
|
|
3066
2936
|
const stripped = stripExecBanner(text);
|
|
3067
2937
|
if (running) {
|
|
3068
|
-
return /* @__PURE__ */
|
|
2938
|
+
return /* @__PURE__ */ jsx9(
|
|
3069
2939
|
ActivityDisclosure,
|
|
3070
2940
|
{
|
|
3071
|
-
icon: /* @__PURE__ */
|
|
2941
|
+
icon: /* @__PURE__ */ jsx9(KeyboardIcon, { className: ICON_SIZE }),
|
|
3072
2942
|
iconTone: "running",
|
|
3073
2943
|
title: `session ${sessionId} \u2190 ${keys || "\u2205"}`,
|
|
3074
2944
|
titleMono: true,
|
|
3075
2945
|
running: true,
|
|
3076
|
-
preview: /* @__PURE__ */
|
|
3077
|
-
children: /* @__PURE__ */
|
|
2946
|
+
preview: /* @__PURE__ */ jsx9(RunningPreview, { children: "sending\u2026" }),
|
|
2947
|
+
children: /* @__PURE__ */ jsxs6(BodyNote, { children: [
|
|
3078
2948
|
"sending input to session ",
|
|
3079
2949
|
sessionId,
|
|
3080
2950
|
"\u2026"
|
|
@@ -3088,10 +2958,10 @@ function WriteStdinRenderer({ item }) {
|
|
|
3088
2958
|
} else if (exitCode != null && exitCode !== 0) {
|
|
3089
2959
|
chip = { tone: "bad", text: `exit ${exitCode}` };
|
|
3090
2960
|
}
|
|
3091
|
-
return /* @__PURE__ */
|
|
2961
|
+
return /* @__PURE__ */ jsx9(
|
|
3092
2962
|
ActivityDisclosure,
|
|
3093
2963
|
{
|
|
3094
|
-
icon: /* @__PURE__ */
|
|
2964
|
+
icon: /* @__PURE__ */ jsx9(KeyboardIcon, { className: ICON_SIZE }),
|
|
3095
2965
|
iconTone: lost ? "failed" : "muted",
|
|
3096
2966
|
title: `session ${sessionId} \u2190 ${keys || "\u2205"}`,
|
|
3097
2967
|
titleMono: true,
|
|
@@ -3099,7 +2969,7 @@ function WriteStdinRenderer({ item }) {
|
|
|
3099
2969
|
failed: item.status === "failed",
|
|
3100
2970
|
cancelled: item.status === "cancelled",
|
|
3101
2971
|
preview: lost ? `session ${sessionId} PTY vanished` : tailPeek(stripped) || "sent",
|
|
3102
|
-
children: lost ? /* @__PURE__ */
|
|
2972
|
+
children: lost ? /* @__PURE__ */ jsx9(BodyNote, { tone: "error", children: stripped || text }) : /* @__PURE__ */ jsx9(TermBlock, { command: `write_stdin \u2192 session ${sessionId}`, output: stripped })
|
|
3103
2973
|
}
|
|
3104
2974
|
);
|
|
3105
2975
|
}
|
|
@@ -3122,12 +2992,12 @@ function PathPreview({
|
|
|
3122
2992
|
add,
|
|
3123
2993
|
del
|
|
3124
2994
|
}) {
|
|
3125
|
-
return /* @__PURE__ */
|
|
3126
|
-
/* @__PURE__ */
|
|
3127
|
-
/* @__PURE__ */
|
|
3128
|
-
/* @__PURE__ */
|
|
2995
|
+
return /* @__PURE__ */ jsxs6("span", { className: "inline-flex items-center gap-2 truncate font-og-mono", children: [
|
|
2996
|
+
/* @__PURE__ */ jsxs6("span", { className: "truncate", children: [
|
|
2997
|
+
/* @__PURE__ */ jsx9("span", { className: "text-og-fg-subtle", children: dirname(path) }),
|
|
2998
|
+
/* @__PURE__ */ jsx9("span", { className: "text-og-fg-muted", children: basename(path) })
|
|
3129
2999
|
] }),
|
|
3130
|
-
add != null || del != null ? /* @__PURE__ */
|
|
3000
|
+
add != null || del != null ? /* @__PURE__ */ jsxs6("span", { className: "shrink-0 text-og-fg-subtle", children: [
|
|
3131
3001
|
add != null ? `+${add}` : "",
|
|
3132
3002
|
add != null && del != null ? " " : "",
|
|
3133
3003
|
del != null ? `\u2212${del}` : ""
|
|
@@ -3143,35 +3013,35 @@ function ApplyPatchRenderer({ item }) {
|
|
|
3143
3013
|
if (running) {
|
|
3144
3014
|
const fileCount = ops.length;
|
|
3145
3015
|
const titleVerb = firstOp ? `Applying ${basename(firstOp.path)}` : "Applying patch";
|
|
3146
|
-
return /* @__PURE__ */
|
|
3016
|
+
return /* @__PURE__ */ jsx9(
|
|
3147
3017
|
ActivityDisclosure,
|
|
3148
3018
|
{
|
|
3149
|
-
icon: /* @__PURE__ */
|
|
3019
|
+
icon: /* @__PURE__ */ jsx9(FileDiffIcon, { className: ICON_SIZE }),
|
|
3150
3020
|
iconTone: "running",
|
|
3151
3021
|
title: fileCount > 1 ? `Applying ${fileCount} files` : titleVerb,
|
|
3152
3022
|
running: true,
|
|
3153
|
-
preview: /* @__PURE__ */
|
|
3023
|
+
preview: /* @__PURE__ */ jsx9(RunningPreview, { children: fileCount > 1 ? `${fileCount} files` : firstOp ? firstOp.path : "applying\u2026" }),
|
|
3154
3024
|
children: ops.map((op, index) => {
|
|
3155
3025
|
const file2 = safeParseOp(op);
|
|
3156
3026
|
const key = `${op.type}:${op.path}:${index}`;
|
|
3157
|
-
return file2 ? /* @__PURE__ */
|
|
3158
|
-
/* @__PURE__ */
|
|
3159
|
-
/* @__PURE__ */
|
|
3027
|
+
return file2 ? /* @__PURE__ */ jsx9(ToolDiff, { files: [file2] }, key) : /* @__PURE__ */ jsxs6("div", { children: [
|
|
3028
|
+
/* @__PURE__ */ jsx9("p", { className: "mb-1 font-og-mono text-og-xs text-og-fg-muted", children: op.path }),
|
|
3029
|
+
/* @__PURE__ */ jsx9(RawPatch, { diff: op.diff ?? "" })
|
|
3160
3030
|
] }, key);
|
|
3161
3031
|
})
|
|
3162
3032
|
}
|
|
3163
3033
|
);
|
|
3164
3034
|
}
|
|
3165
3035
|
if (failed) {
|
|
3166
|
-
return /* @__PURE__ */
|
|
3036
|
+
return /* @__PURE__ */ jsx9(
|
|
3167
3037
|
ActivityDisclosure,
|
|
3168
3038
|
{
|
|
3169
|
-
icon: /* @__PURE__ */
|
|
3039
|
+
icon: /* @__PURE__ */ jsx9(FileDiffIcon, { className: ICON_SIZE }),
|
|
3170
3040
|
iconTone: "failed",
|
|
3171
3041
|
title: firstOp ? `${verbForOp(firstOp)} ${basename(firstOp.path)}` : "apply_patch",
|
|
3172
3042
|
chip: { tone: "bad", text: "failed" },
|
|
3173
3043
|
preview: typeof item.output === "string" ? item.output : "patch failed",
|
|
3174
|
-
children: /* @__PURE__ */
|
|
3044
|
+
children: /* @__PURE__ */ jsx9(PayloadBlock, { label: "Error", value: item.output, failed: true })
|
|
3175
3045
|
}
|
|
3176
3046
|
);
|
|
3177
3047
|
}
|
|
@@ -3180,19 +3050,19 @@ function ApplyPatchRenderer({ item }) {
|
|
|
3180
3050
|
const goodFiles = parsed.filter((f) => f !== null);
|
|
3181
3051
|
const add = goodFiles.reduce((n, f) => n + f.additions, 0);
|
|
3182
3052
|
const del = goodFiles.reduce((n, f) => n + f.deletions, 0);
|
|
3183
|
-
return /* @__PURE__ */
|
|
3053
|
+
return /* @__PURE__ */ jsx9(
|
|
3184
3054
|
ActivityDisclosure,
|
|
3185
3055
|
{
|
|
3186
|
-
icon: /* @__PURE__ */
|
|
3056
|
+
icon: /* @__PURE__ */ jsx9(FileDiffIcon, { className: ICON_SIZE }),
|
|
3187
3057
|
iconTone: "accent",
|
|
3188
3058
|
title: `Edited ${ops.length} files`,
|
|
3189
3059
|
cancelled,
|
|
3190
|
-
preview: /* @__PURE__ */
|
|
3191
|
-
/* @__PURE__ */
|
|
3060
|
+
preview: /* @__PURE__ */ jsxs6("span", { className: "inline-flex items-center gap-2 font-og-mono", children: [
|
|
3061
|
+
/* @__PURE__ */ jsxs6("span", { className: "text-og-fg-muted", children: [
|
|
3192
3062
|
ops.length,
|
|
3193
3063
|
" files"
|
|
3194
3064
|
] }),
|
|
3195
|
-
/* @__PURE__ */
|
|
3065
|
+
/* @__PURE__ */ jsxs6("span", { className: "text-og-fg-subtle", children: [
|
|
3196
3066
|
"+",
|
|
3197
3067
|
add,
|
|
3198
3068
|
" \u2212",
|
|
@@ -3202,56 +3072,56 @@ function ApplyPatchRenderer({ item }) {
|
|
|
3202
3072
|
children: ops.map((op, index) => {
|
|
3203
3073
|
const file2 = parsed[index];
|
|
3204
3074
|
const key = `${op.type}:${op.path}:${index}`;
|
|
3205
|
-
return file2 ? /* @__PURE__ */
|
|
3206
|
-
/* @__PURE__ */
|
|
3207
|
-
/* @__PURE__ */
|
|
3075
|
+
return file2 ? /* @__PURE__ */ jsx9(ToolDiff, { files: [file2] }, key) : /* @__PURE__ */ jsxs6("div", { children: [
|
|
3076
|
+
/* @__PURE__ */ jsx9("p", { className: "mb-1 font-og-mono text-og-xs text-og-fg-muted", children: op.path }),
|
|
3077
|
+
/* @__PURE__ */ jsx9(RawPatch, { diff: op.diff ?? "" })
|
|
3208
3078
|
] }, key);
|
|
3209
3079
|
})
|
|
3210
3080
|
}
|
|
3211
3081
|
);
|
|
3212
3082
|
}
|
|
3213
3083
|
if (!firstOp) {
|
|
3214
|
-
return /* @__PURE__ */
|
|
3084
|
+
return /* @__PURE__ */ jsx9(GenericRenderer, { item });
|
|
3215
3085
|
}
|
|
3216
3086
|
if (firstOp.type === "delete_file") {
|
|
3217
|
-
return /* @__PURE__ */
|
|
3087
|
+
return /* @__PURE__ */ jsx9(
|
|
3218
3088
|
ActivityDisclosure,
|
|
3219
3089
|
{
|
|
3220
|
-
icon: /* @__PURE__ */
|
|
3090
|
+
icon: /* @__PURE__ */ jsx9(FileDiffIcon, { className: ICON_SIZE }),
|
|
3221
3091
|
iconTone: "failed",
|
|
3222
3092
|
title: `Deleted ${basename(firstOp.path)}`,
|
|
3223
3093
|
cancelled,
|
|
3224
|
-
preview: /* @__PURE__ */
|
|
3225
|
-
children: /* @__PURE__ */
|
|
3094
|
+
preview: /* @__PURE__ */ jsx9(PathPreview, { path: firstOp.path }),
|
|
3095
|
+
children: /* @__PURE__ */ jsx9(BodyNote, { children: "File deleted \u2014 no diff to show." })
|
|
3226
3096
|
}
|
|
3227
3097
|
);
|
|
3228
3098
|
}
|
|
3229
3099
|
const file = safeParseOp(firstOp);
|
|
3230
3100
|
if (!file) {
|
|
3231
|
-
return /* @__PURE__ */
|
|
3101
|
+
return /* @__PURE__ */ jsx9(
|
|
3232
3102
|
ActivityDisclosure,
|
|
3233
3103
|
{
|
|
3234
|
-
icon: /* @__PURE__ */
|
|
3104
|
+
icon: /* @__PURE__ */ jsx9(FileDiffIcon, { className: ICON_SIZE }),
|
|
3235
3105
|
iconTone: "accent",
|
|
3236
3106
|
title: `${verbForOp(firstOp)} ${basename(firstOp.path)}`,
|
|
3237
3107
|
cancelled,
|
|
3238
|
-
preview: /* @__PURE__ */
|
|
3239
|
-
/* @__PURE__ */
|
|
3240
|
-
/* @__PURE__ */
|
|
3108
|
+
preview: /* @__PURE__ */ jsxs6("span", { className: "inline-flex items-center gap-2 font-og-mono", children: [
|
|
3109
|
+
/* @__PURE__ */ jsx9("span", { className: "text-og-fg-muted", children: basename(firstOp.path) }),
|
|
3110
|
+
/* @__PURE__ */ jsx9("span", { className: "text-og-fg-subtle", children: "malformed V4A" })
|
|
3241
3111
|
] }),
|
|
3242
|
-
children: /* @__PURE__ */
|
|
3112
|
+
children: /* @__PURE__ */ jsx9(RawPatch, { diff: firstOp.diff ?? "" })
|
|
3243
3113
|
}
|
|
3244
3114
|
);
|
|
3245
3115
|
}
|
|
3246
|
-
return /* @__PURE__ */
|
|
3116
|
+
return /* @__PURE__ */ jsx9(
|
|
3247
3117
|
ActivityDisclosure,
|
|
3248
3118
|
{
|
|
3249
|
-
icon: /* @__PURE__ */
|
|
3119
|
+
icon: /* @__PURE__ */ jsx9(FileDiffIcon, { className: ICON_SIZE }),
|
|
3250
3120
|
iconTone: "accent",
|
|
3251
3121
|
title: `${verbForOp(firstOp)} ${basename(file.path)}`,
|
|
3252
3122
|
cancelled,
|
|
3253
|
-
preview: /* @__PURE__ */
|
|
3254
|
-
children: /* @__PURE__ */
|
|
3123
|
+
preview: /* @__PURE__ */ jsx9(PathPreview, { path: file.path, add: file.additions, del: file.deletions }),
|
|
3124
|
+
children: /* @__PURE__ */ jsx9(ToolDiff, { files: [file] })
|
|
3255
3125
|
}
|
|
3256
3126
|
);
|
|
3257
3127
|
}
|
|
@@ -3326,40 +3196,40 @@ function ComputerCallRenderer({ item, loadRetainedScreenshot }) {
|
|
|
3326
3196
|
const countSuffix = actions.length > 1 ? ` \xB7${actions.length}` : "";
|
|
3327
3197
|
const isShot = action?.type === "screenshot";
|
|
3328
3198
|
if (running) {
|
|
3329
|
-
return /* @__PURE__ */
|
|
3199
|
+
return /* @__PURE__ */ jsx9(
|
|
3330
3200
|
ActivityDisclosure,
|
|
3331
3201
|
{
|
|
3332
|
-
icon: isShot ? /* @__PURE__ */
|
|
3202
|
+
icon: isShot ? /* @__PURE__ */ jsx9(CameraIcon2, { className: ICON_SIZE }) : /* @__PURE__ */ jsx9(MousePointer2Icon, { className: ICON_SIZE }),
|
|
3333
3203
|
iconTone: "running",
|
|
3334
3204
|
title: verb,
|
|
3335
3205
|
running: true,
|
|
3336
|
-
media: /* @__PURE__ */
|
|
3337
|
-
children: /* @__PURE__ */
|
|
3206
|
+
media: /* @__PURE__ */ jsx9(MediaSkeleton, {}),
|
|
3207
|
+
children: /* @__PURE__ */ jsx9(BodyNote, { children: "capturing frame\u2026" })
|
|
3338
3208
|
}
|
|
3339
3209
|
);
|
|
3340
3210
|
}
|
|
3341
3211
|
if (readOnly) {
|
|
3342
|
-
return /* @__PURE__ */
|
|
3212
|
+
return /* @__PURE__ */ jsx9(
|
|
3343
3213
|
ActivityDisclosure,
|
|
3344
3214
|
{
|
|
3345
|
-
icon: /* @__PURE__ */
|
|
3215
|
+
icon: /* @__PURE__ */ jsx9(MousePointer2Icon, { className: ICON_SIZE }),
|
|
3346
3216
|
iconTone: "failed",
|
|
3347
3217
|
title: verb,
|
|
3348
3218
|
chip: { tone: "bad", text: "read-only" },
|
|
3349
3219
|
preview: "write actions disabled",
|
|
3350
|
-
children: /* @__PURE__ */
|
|
3220
|
+
children: /* @__PURE__ */ jsx9(BodyNote, { tone: "error", children: "computer-use is read-only \u2014 write actions are disabled." })
|
|
3351
3221
|
}
|
|
3352
3222
|
);
|
|
3353
3223
|
}
|
|
3354
3224
|
if (rejected) {
|
|
3355
|
-
return /* @__PURE__ */
|
|
3225
|
+
return /* @__PURE__ */ jsx9(
|
|
3356
3226
|
ActivityDisclosure,
|
|
3357
3227
|
{
|
|
3358
|
-
icon: /* @__PURE__ */
|
|
3228
|
+
icon: /* @__PURE__ */ jsx9(LockIcon, { className: ICON_SIZE }),
|
|
3359
3229
|
iconTone: "muted",
|
|
3360
3230
|
title: verb,
|
|
3361
3231
|
preview: "approval rejected \u2014 this action did not run",
|
|
3362
|
-
children: /* @__PURE__ */
|
|
3232
|
+
children: /* @__PURE__ */ jsx9(BodyNote, { children: "approval rejected \u2014 this action did not run." })
|
|
3363
3233
|
}
|
|
3364
3234
|
);
|
|
3365
3235
|
}
|
|
@@ -3368,17 +3238,17 @@ function ComputerCallRenderer({ item, loadRetainedScreenshot }) {
|
|
|
3368
3238
|
if (retained) {
|
|
3369
3239
|
if (!retained.available) {
|
|
3370
3240
|
const state = retained.reason === "expired" || retained.reason === "deleted" ? retained.reason : "unavailable";
|
|
3371
|
-
return /* @__PURE__ */
|
|
3241
|
+
return /* @__PURE__ */ jsx9(
|
|
3372
3242
|
ActivityDisclosure,
|
|
3373
3243
|
{
|
|
3374
|
-
icon: /* @__PURE__ */
|
|
3244
|
+
icon: /* @__PURE__ */ jsx9(CameraOffIcon2, { className: ICON_SIZE }),
|
|
3375
3245
|
iconTone: isFailed ? "failed" : "muted",
|
|
3376
3246
|
title: `${verb}${countSuffix} \xB7 ${state}`,
|
|
3377
3247
|
failed: isFailed,
|
|
3378
3248
|
cancelled: isCancelled,
|
|
3379
3249
|
preview: `screenshot ${state}`,
|
|
3380
|
-
media: /* @__PURE__ */
|
|
3381
|
-
children: /* @__PURE__ */
|
|
3250
|
+
media: /* @__PURE__ */ jsx9(MediaEmpty, {}),
|
|
3251
|
+
children: /* @__PURE__ */ jsxs6(BodyNote, { tone: isFailed ? "error" : void 0, children: [
|
|
3382
3252
|
"Screenshot ",
|
|
3383
3253
|
state,
|
|
3384
3254
|
": ",
|
|
@@ -3388,7 +3258,7 @@ function ComputerCallRenderer({ item, loadRetainedScreenshot }) {
|
|
|
3388
3258
|
}
|
|
3389
3259
|
);
|
|
3390
3260
|
}
|
|
3391
|
-
return /* @__PURE__ */
|
|
3261
|
+
return /* @__PURE__ */ jsx9(
|
|
3392
3262
|
RetainedSessionImageDisclosure,
|
|
3393
3263
|
{
|
|
3394
3264
|
artifact: retained,
|
|
@@ -3396,7 +3266,7 @@ function ComputerCallRenderer({ item, loadRetainedScreenshot }) {
|
|
|
3396
3266
|
title: `${verb}${countSuffix}`,
|
|
3397
3267
|
caption: `${verb}${countSuffix}`,
|
|
3398
3268
|
noun: "screenshot",
|
|
3399
|
-
icon: /* @__PURE__ */
|
|
3269
|
+
icon: /* @__PURE__ */ jsx9(CameraIcon2, { className: ICON_SIZE }),
|
|
3400
3270
|
lightboxLabel: "Screenshot",
|
|
3401
3271
|
batched,
|
|
3402
3272
|
failed: isFailed,
|
|
@@ -3406,18 +3276,18 @@ function ComputerCallRenderer({ item, loadRetainedScreenshot }) {
|
|
|
3406
3276
|
}
|
|
3407
3277
|
if (shotUrl) {
|
|
3408
3278
|
const caption = `${verb}${actions.length > 1 ? ` (+${actions.length - 1} more)` : ""}`;
|
|
3409
|
-
return /* @__PURE__ */
|
|
3279
|
+
return /* @__PURE__ */ jsxs6(
|
|
3410
3280
|
ActivityDisclosure,
|
|
3411
3281
|
{
|
|
3412
|
-
icon: isShot ? /* @__PURE__ */
|
|
3282
|
+
icon: isShot ? /* @__PURE__ */ jsx9(CameraIcon2, { className: ICON_SIZE }) : /* @__PURE__ */ jsx9(MousePointer2Icon, { className: ICON_SIZE }),
|
|
3413
3283
|
iconTone: isFailed ? "failed" : "accent",
|
|
3414
3284
|
title: `${verb}${countSuffix}`,
|
|
3415
3285
|
failed: isFailed,
|
|
3416
3286
|
cancelled: isCancelled,
|
|
3417
|
-
media: /* @__PURE__ */
|
|
3287
|
+
media: /* @__PURE__ */ jsx9(Thumbnail, { src: shotUrl, caption }),
|
|
3418
3288
|
children: [
|
|
3419
|
-
/* @__PURE__ */
|
|
3420
|
-
batched ? /* @__PURE__ */
|
|
3289
|
+
/* @__PURE__ */ jsx9(ScreenshotFigure, { src: shotUrl, caption }),
|
|
3290
|
+
batched ? /* @__PURE__ */ jsxs6(BodyNote, { children: [
|
|
3421
3291
|
"batched: ",
|
|
3422
3292
|
batched
|
|
3423
3293
|
] }) : null
|
|
@@ -3426,23 +3296,23 @@ function ComputerCallRenderer({ item, loadRetainedScreenshot }) {
|
|
|
3426
3296
|
);
|
|
3427
3297
|
}
|
|
3428
3298
|
if (omittedMedia) {
|
|
3429
|
-
return /* @__PURE__ */
|
|
3299
|
+
return /* @__PURE__ */ jsxs6(
|
|
3430
3300
|
ActivityDisclosure,
|
|
3431
3301
|
{
|
|
3432
|
-
icon: /* @__PURE__ */
|
|
3302
|
+
icon: /* @__PURE__ */ jsx9(CameraOffIcon2, { className: ICON_SIZE }),
|
|
3433
3303
|
iconTone: isFailed ? "failed" : "muted",
|
|
3434
3304
|
title: `${verb}${countSuffix} \xB7 image omitted \xB7 not retained`,
|
|
3435
3305
|
failed: isFailed,
|
|
3436
3306
|
cancelled: isCancelled,
|
|
3437
3307
|
preview: "inline image omitted \xB7 not retained",
|
|
3438
|
-
media: /* @__PURE__ */
|
|
3308
|
+
media: /* @__PURE__ */ jsx9(MediaEmpty, {}),
|
|
3439
3309
|
children: [
|
|
3440
|
-
/* @__PURE__ */
|
|
3310
|
+
/* @__PURE__ */ jsxs6(BodyNote, { children: [
|
|
3441
3311
|
"The inline ",
|
|
3442
3312
|
omittedMedia.mediaType,
|
|
3443
3313
|
" output was omitted from the audit timeline and its source bytes were not retained."
|
|
3444
3314
|
] }),
|
|
3445
|
-
batched ? /* @__PURE__ */
|
|
3315
|
+
batched ? /* @__PURE__ */ jsxs6(BodyNote, { children: [
|
|
3446
3316
|
"batched: ",
|
|
3447
3317
|
batched
|
|
3448
3318
|
] }) : null
|
|
@@ -3451,35 +3321,35 @@ function ComputerCallRenderer({ item, loadRetainedScreenshot }) {
|
|
|
3451
3321
|
);
|
|
3452
3322
|
}
|
|
3453
3323
|
if (empty) {
|
|
3454
|
-
return /* @__PURE__ */
|
|
3324
|
+
return /* @__PURE__ */ jsx9(
|
|
3455
3325
|
ActivityDisclosure,
|
|
3456
3326
|
{
|
|
3457
|
-
icon: /* @__PURE__ */
|
|
3327
|
+
icon: /* @__PURE__ */ jsx9(CameraOffIcon2, { className: ICON_SIZE }),
|
|
3458
3328
|
iconTone: isFailed ? "failed" : "muted",
|
|
3459
3329
|
title: verb,
|
|
3460
3330
|
failed: isFailed,
|
|
3461
3331
|
cancelled: isCancelled,
|
|
3462
|
-
media: /* @__PURE__ */
|
|
3463
|
-
children: /* @__PURE__ */
|
|
3332
|
+
media: /* @__PURE__ */ jsx9(MediaEmpty, {}),
|
|
3333
|
+
children: /* @__PURE__ */ jsx9(BodyNote, { children: isFailed ? "computer_call failed \u2014 no image returned." : isCancelled ? "computer_call interrupted \u2014 no image returned." : "(no image) \u2014 the session returned an empty screenshot." })
|
|
3464
3334
|
}
|
|
3465
3335
|
);
|
|
3466
3336
|
}
|
|
3467
|
-
return /* @__PURE__ */
|
|
3337
|
+
return /* @__PURE__ */ jsx9(
|
|
3468
3338
|
ActivityDisclosure,
|
|
3469
3339
|
{
|
|
3470
|
-
icon: /* @__PURE__ */
|
|
3340
|
+
icon: /* @__PURE__ */ jsx9(MousePointer2Icon, { className: ICON_SIZE }),
|
|
3471
3341
|
iconTone: isFailed ? "failed" : "accent",
|
|
3472
3342
|
title: verb,
|
|
3473
3343
|
failed: isFailed,
|
|
3474
3344
|
cancelled: isCancelled,
|
|
3475
3345
|
preview: batched ?? void 0,
|
|
3476
3346
|
expandable: batched != null,
|
|
3477
|
-
children: batched ? /* @__PURE__ */
|
|
3347
|
+
children: batched ? /* @__PURE__ */ jsx9(BodyNote, { children: batched }) : null
|
|
3478
3348
|
}
|
|
3479
3349
|
);
|
|
3480
3350
|
}
|
|
3481
3351
|
function useRetainedImageObjectUrl(artifact, load) {
|
|
3482
|
-
const [state, setState] =
|
|
3352
|
+
const [state, setState] = useState7({ kind: "loading" });
|
|
3483
3353
|
const artifactValue = retainedArtifactValue(artifact);
|
|
3484
3354
|
const stableArtifactRef = useRef4({ value: artifactValue, artifact });
|
|
3485
3355
|
if (stableArtifactRef.current.value !== artifactValue) {
|
|
@@ -3558,7 +3428,7 @@ function RetainedSessionImageDisclosure({
|
|
|
3558
3428
|
}) {
|
|
3559
3429
|
const state = useRetainedImageObjectUrl(artifact, load);
|
|
3560
3430
|
const downloadFilename = retainedImageFilename(artifact);
|
|
3561
|
-
return /* @__PURE__ */
|
|
3431
|
+
return /* @__PURE__ */ jsxs6(
|
|
3562
3432
|
ActivityDisclosure,
|
|
3563
3433
|
{
|
|
3564
3434
|
icon,
|
|
@@ -3567,7 +3437,7 @@ function RetainedSessionImageDisclosure({
|
|
|
3567
3437
|
failed,
|
|
3568
3438
|
cancelled,
|
|
3569
3439
|
preview: state.kind === "loading" ? `loading retained ${noun}\u2026` : state.kind === "error" ? `${noun} retrieval failed` : state.kind === "unavailable" ? `${noun} ${state.label}` : void 0,
|
|
3570
|
-
media: state.kind === "ready" ? /* @__PURE__ */
|
|
3440
|
+
media: state.kind === "ready" ? /* @__PURE__ */ jsx9(
|
|
3571
3441
|
Thumbnail,
|
|
3572
3442
|
{
|
|
3573
3443
|
src: state.url,
|
|
@@ -3577,9 +3447,9 @@ function RetainedSessionImageDisclosure({
|
|
|
3577
3447
|
lightboxLabel,
|
|
3578
3448
|
downloadFilename
|
|
3579
3449
|
}
|
|
3580
|
-
) : state.kind === "loading" ? /* @__PURE__ */
|
|
3450
|
+
) : state.kind === "loading" ? /* @__PURE__ */ jsx9(MediaSkeleton, {}) : /* @__PURE__ */ jsx9(MediaEmpty, {}),
|
|
3581
3451
|
children: [
|
|
3582
|
-
state.kind === "ready" ? /* @__PURE__ */
|
|
3452
|
+
state.kind === "ready" ? /* @__PURE__ */ jsx9(
|
|
3583
3453
|
ScreenshotFigure,
|
|
3584
3454
|
{
|
|
3585
3455
|
src: state.url,
|
|
@@ -3589,21 +3459,21 @@ function RetainedSessionImageDisclosure({
|
|
|
3589
3459
|
lightboxLabel,
|
|
3590
3460
|
downloadFilename
|
|
3591
3461
|
}
|
|
3592
|
-
) : state.kind === "loading" ? /* @__PURE__ */
|
|
3462
|
+
) : state.kind === "loading" ? /* @__PURE__ */ jsxs6(BodyNote, { children: [
|
|
3593
3463
|
"Loading the retained ",
|
|
3594
3464
|
noun,
|
|
3595
3465
|
"\u2026"
|
|
3596
|
-
] }) : state.kind === "unavailable" ? /* @__PURE__ */
|
|
3466
|
+
] }) : state.kind === "unavailable" ? /* @__PURE__ */ jsxs6(BodyNote, { children: [
|
|
3597
3467
|
noun === "screenshot" ? "Screenshot" : "Image",
|
|
3598
3468
|
" ",
|
|
3599
3469
|
state.label,
|
|
3600
3470
|
"."
|
|
3601
|
-
] }) : /* @__PURE__ */
|
|
3471
|
+
] }) : /* @__PURE__ */ jsxs6(BodyNote, { tone: "error", children: [
|
|
3602
3472
|
noun === "screenshot" ? "Screenshot" : "Image",
|
|
3603
3473
|
" retrieval failed: ",
|
|
3604
3474
|
state.message
|
|
3605
3475
|
] }),
|
|
3606
|
-
batched ? /* @__PURE__ */
|
|
3476
|
+
batched ? /* @__PURE__ */ jsxs6(BodyNote, { children: [
|
|
3607
3477
|
"batched: ",
|
|
3608
3478
|
batched
|
|
3609
3479
|
] }) : null
|
|
@@ -3617,21 +3487,21 @@ function GeneratedImageRenderer({ item, loadRetainedArtifact }) {
|
|
|
3617
3487
|
const raw = item.raw && typeof item.raw === "object" && !Array.isArray(item.raw) ? item.raw : null;
|
|
3618
3488
|
const receipt = generatedImageReceipt(item.output) ?? generatedImageReceipt(raw?.output);
|
|
3619
3489
|
if (item.status === "running") {
|
|
3620
|
-
return /* @__PURE__ */
|
|
3490
|
+
return /* @__PURE__ */ jsx9(
|
|
3621
3491
|
ActivityDisclosure,
|
|
3622
3492
|
{
|
|
3623
|
-
icon: /* @__PURE__ */
|
|
3493
|
+
icon: /* @__PURE__ */ jsx9(ImageIcon, { className: ICON_SIZE }),
|
|
3624
3494
|
iconTone: "running",
|
|
3625
3495
|
title: "Generating image",
|
|
3626
3496
|
running: true,
|
|
3627
|
-
preview: /* @__PURE__ */
|
|
3628
|
-
media: /* @__PURE__ */
|
|
3629
|
-
children: prompt ? /* @__PURE__ */
|
|
3497
|
+
preview: /* @__PURE__ */ jsx9(RunningPreview, { children: truncatePreview(prompt, 72) || "creating\u2026" }),
|
|
3498
|
+
media: /* @__PURE__ */ jsx9(MediaSkeleton, {}),
|
|
3499
|
+
children: prompt ? /* @__PURE__ */ jsx9(BodyNote, { children: prompt }) : null
|
|
3630
3500
|
}
|
|
3631
3501
|
);
|
|
3632
3502
|
}
|
|
3633
|
-
if (!receipt) return /* @__PURE__ */
|
|
3634
|
-
return /* @__PURE__ */
|
|
3503
|
+
if (!receipt) return /* @__PURE__ */ jsx9(GenericRenderer, { item });
|
|
3504
|
+
return /* @__PURE__ */ jsx9(
|
|
3635
3505
|
GeneratedImageDisclosure,
|
|
3636
3506
|
{
|
|
3637
3507
|
receipt,
|
|
@@ -3650,10 +3520,10 @@ function GeneratedVideoRenderer({ item }) {
|
|
|
3650
3520
|
const failed = item.status === "failed";
|
|
3651
3521
|
const cancelled = item.status === "cancelled";
|
|
3652
3522
|
const running = item.status === "running";
|
|
3653
|
-
return /* @__PURE__ */
|
|
3523
|
+
return /* @__PURE__ */ jsxs6(
|
|
3654
3524
|
ActivityDisclosure,
|
|
3655
3525
|
{
|
|
3656
|
-
icon: /* @__PURE__ */
|
|
3526
|
+
icon: /* @__PURE__ */ jsx9(VideoIcon, { className: ICON_SIZE }),
|
|
3657
3527
|
iconTone: failed ? "failed" : running ? "running" : accepted ? "accent" : "muted",
|
|
3658
3528
|
title: running ? "Starting video generation" : accepted ? "Generating video" : "Generate video",
|
|
3659
3529
|
running,
|
|
@@ -3661,8 +3531,8 @@ function GeneratedVideoRenderer({ item }) {
|
|
|
3661
3531
|
cancelled,
|
|
3662
3532
|
preview: truncatePreview(prompt, 88) || (accepted ? "request accepted" : void 0),
|
|
3663
3533
|
children: [
|
|
3664
|
-
prompt ? /* @__PURE__ */
|
|
3665
|
-
accepted ? /* @__PURE__ */
|
|
3534
|
+
prompt ? /* @__PURE__ */ jsx9(BodyNote, { children: prompt }) : null,
|
|
3535
|
+
accepted ? /* @__PURE__ */ jsx9(BodyNote, { children: "The video will appear here when it is ready." }) : item.output !== void 0 ? /* @__PURE__ */ jsx9(PayloadBlock, { label: "Output", value: item.output }) : null
|
|
3666
3536
|
]
|
|
3667
3537
|
}
|
|
3668
3538
|
);
|
|
@@ -3670,21 +3540,21 @@ function GeneratedVideoRenderer({ item }) {
|
|
|
3670
3540
|
function SandboxFilePublishRenderer({ item, loadRetainedArtifact }) {
|
|
3671
3541
|
const { text: output, isError } = unwrapMcpOutput(item.output);
|
|
3672
3542
|
const receipt = parseSandboxFileArtifactReceipt(output);
|
|
3673
|
-
const [downloadState, setDownloadState] =
|
|
3543
|
+
const [downloadState, setDownloadState] = useState7("idle");
|
|
3674
3544
|
if (item.status === "running") {
|
|
3675
|
-
return /* @__PURE__ */
|
|
3545
|
+
return /* @__PURE__ */ jsx9(
|
|
3676
3546
|
ActivityDisclosure,
|
|
3677
3547
|
{
|
|
3678
|
-
icon: /* @__PURE__ */
|
|
3548
|
+
icon: /* @__PURE__ */ jsx9(DownloadIcon, { className: ICON_SIZE }),
|
|
3679
3549
|
iconTone: "running",
|
|
3680
3550
|
title: "Publishing file",
|
|
3681
3551
|
running: true,
|
|
3682
|
-
preview: /* @__PURE__ */
|
|
3552
|
+
preview: /* @__PURE__ */ jsx9(RunningPreview, { children: "retaining workspace bytes\u2026" })
|
|
3683
3553
|
}
|
|
3684
3554
|
);
|
|
3685
3555
|
}
|
|
3686
3556
|
if (!receipt || isError || item.status === "failed") {
|
|
3687
|
-
return /* @__PURE__ */
|
|
3557
|
+
return /* @__PURE__ */ jsx9(GenericRenderer, { item });
|
|
3688
3558
|
}
|
|
3689
3559
|
const download = async () => {
|
|
3690
3560
|
if (!loadRetainedArtifact) {
|
|
@@ -3714,15 +3584,15 @@ function SandboxFilePublishRenderer({ item, loadRetainedArtifact }) {
|
|
|
3714
3584
|
if (urlToRevoke) setTimeout(() => URL.revokeObjectURL(urlToRevoke), 0);
|
|
3715
3585
|
}
|
|
3716
3586
|
};
|
|
3717
|
-
return /* @__PURE__ */
|
|
3587
|
+
return /* @__PURE__ */ jsx9(
|
|
3718
3588
|
ActivityDisclosure,
|
|
3719
3589
|
{
|
|
3720
|
-
icon: /* @__PURE__ */
|
|
3590
|
+
icon: /* @__PURE__ */ jsx9(DownloadIcon, { className: ICON_SIZE }),
|
|
3721
3591
|
iconTone: "accent",
|
|
3722
3592
|
title: `Published ${receipt.filename}`,
|
|
3723
3593
|
defaultOpen: true,
|
|
3724
3594
|
preview: formatBytes(receipt.artifact.originalBytes),
|
|
3725
|
-
children: /* @__PURE__ */
|
|
3595
|
+
children: /* @__PURE__ */ jsxs6(
|
|
3726
3596
|
"button",
|
|
3727
3597
|
{
|
|
3728
3598
|
type: "button",
|
|
@@ -3730,7 +3600,7 @@ function SandboxFilePublishRenderer({ item, loadRetainedArtifact }) {
|
|
|
3730
3600
|
disabled: downloadState === "loading",
|
|
3731
3601
|
className: "inline-flex items-center gap-1.5 rounded-og-sm border border-og-border px-2.5 py-1.5 text-og-sm font-medium text-og-fg transition-colors hover:border-og-border-strong hover:bg-og-surface-2 disabled:cursor-wait disabled:opacity-60",
|
|
3732
3602
|
children: [
|
|
3733
|
-
/* @__PURE__ */
|
|
3603
|
+
/* @__PURE__ */ jsx9(DownloadIcon, { className: "size-3.5" }),
|
|
3734
3604
|
downloadState === "loading" ? "Preparing\u2026" : downloadState === "error" ? "Retry download" : "Download"
|
|
3735
3605
|
]
|
|
3736
3606
|
}
|
|
@@ -3749,17 +3619,17 @@ function GeneratedImageDisclosure({
|
|
|
3749
3619
|
const dimensions = receipt.artifact.dimensions;
|
|
3750
3620
|
const title = failed ? "Image generation failed" : "Generated image";
|
|
3751
3621
|
const caption = prompt || `Generated image \xB7 ${dimensions.width}\xD7${dimensions.height}`;
|
|
3752
|
-
return /* @__PURE__ */
|
|
3622
|
+
return /* @__PURE__ */ jsxs6(
|
|
3753
3623
|
ActivityDisclosure,
|
|
3754
3624
|
{
|
|
3755
|
-
icon: /* @__PURE__ */
|
|
3625
|
+
icon: /* @__PURE__ */ jsx9(ImageIcon, { className: ICON_SIZE }),
|
|
3756
3626
|
iconTone: failed ? "failed" : state.kind === "ready" ? "accent" : "muted",
|
|
3757
3627
|
title,
|
|
3758
3628
|
defaultOpen: !failed && !cancelled,
|
|
3759
3629
|
failed,
|
|
3760
3630
|
cancelled,
|
|
3761
3631
|
preview: state.kind === "loading" ? "loading image\u2026" : state.kind === "error" ? "image retrieval failed" : state.kind === "unavailable" ? `image ${state.label}` : truncatePreview(prompt, 88) || `${dimensions.width}\xD7${dimensions.height}`,
|
|
3762
|
-
media: state.kind === "ready" ? /* @__PURE__ */
|
|
3632
|
+
media: state.kind === "ready" ? /* @__PURE__ */ jsx9(
|
|
3763
3633
|
Thumbnail,
|
|
3764
3634
|
{
|
|
3765
3635
|
src: state.url,
|
|
@@ -3768,9 +3638,9 @@ function GeneratedImageDisclosure({
|
|
|
3768
3638
|
expandLabel: "Expand generated image",
|
|
3769
3639
|
lightboxLabel: "Generated image"
|
|
3770
3640
|
}
|
|
3771
|
-
) : state.kind === "loading" ? /* @__PURE__ */
|
|
3641
|
+
) : state.kind === "loading" ? /* @__PURE__ */ jsx9(MediaSkeleton, {}) : /* @__PURE__ */ jsx9(MediaEmpty, {}),
|
|
3772
3642
|
children: [
|
|
3773
|
-
state.kind === "ready" ? /* @__PURE__ */
|
|
3643
|
+
state.kind === "ready" ? /* @__PURE__ */ jsx9(
|
|
3774
3644
|
ScreenshotFigure,
|
|
3775
3645
|
{
|
|
3776
3646
|
src: state.url,
|
|
@@ -3779,12 +3649,12 @@ function GeneratedImageDisclosure({
|
|
|
3779
3649
|
expandLabel: "Expand generated image",
|
|
3780
3650
|
lightboxLabel: "Generated image"
|
|
3781
3651
|
}
|
|
3782
|
-
) : state.kind === "loading" ? /* @__PURE__ */
|
|
3652
|
+
) : state.kind === "loading" ? /* @__PURE__ */ jsx9(BodyNote, { children: "Loading the generated image\u2026" }) : state.kind === "unavailable" ? /* @__PURE__ */ jsxs6(BodyNote, { children: [
|
|
3783
3653
|
"Image ",
|
|
3784
3654
|
state.label,
|
|
3785
3655
|
"."
|
|
3786
|
-
] }) : /* @__PURE__ */
|
|
3787
|
-
/* @__PURE__ */
|
|
3656
|
+
] }) : /* @__PURE__ */ jsx9(BodyNote, { tone: "error", children: "Image retrieval failed." }),
|
|
3657
|
+
/* @__PURE__ */ jsxs6(BodyNote, { children: [
|
|
3788
3658
|
dimensions.width,
|
|
3789
3659
|
"\xD7",
|
|
3790
3660
|
dimensions.height,
|
|
@@ -3855,38 +3725,38 @@ function WebSearchRenderer({ item }) {
|
|
|
3855
3725
|
return { key: `${contentKey}\0${occurrence}`, result };
|
|
3856
3726
|
});
|
|
3857
3727
|
if (running) {
|
|
3858
|
-
return /* @__PURE__ */
|
|
3728
|
+
return /* @__PURE__ */ jsx9(
|
|
3859
3729
|
ActivityDisclosure,
|
|
3860
3730
|
{
|
|
3861
|
-
icon: /* @__PURE__ */
|
|
3731
|
+
icon: /* @__PURE__ */ jsx9(SearchIcon, { className: ICON_SIZE }),
|
|
3862
3732
|
iconTone: "running",
|
|
3863
3733
|
title: runningTitle,
|
|
3864
3734
|
running: true,
|
|
3865
|
-
preview: /* @__PURE__ */
|
|
3866
|
-
children: /* @__PURE__ */
|
|
3735
|
+
preview: /* @__PURE__ */ jsx9(RunningPreview, { children: `${query2}${variants}` }),
|
|
3736
|
+
children: /* @__PURE__ */ jsx9(BodyNote, { children: "searching\u2026 results fold into the model context (no output event)." })
|
|
3867
3737
|
}
|
|
3868
3738
|
);
|
|
3869
3739
|
}
|
|
3870
|
-
return /* @__PURE__ */
|
|
3740
|
+
return /* @__PURE__ */ jsx9(
|
|
3871
3741
|
ActivityDisclosure,
|
|
3872
3742
|
{
|
|
3873
|
-
icon: /* @__PURE__ */
|
|
3743
|
+
icon: /* @__PURE__ */ jsx9(SearchIcon, { className: ICON_SIZE }),
|
|
3874
3744
|
iconTone: "muted",
|
|
3875
3745
|
title: completedTitle,
|
|
3876
3746
|
preview: `${query2}${variants}`,
|
|
3877
3747
|
failed: item.status === "failed",
|
|
3878
3748
|
cancelled: item.status === "cancelled",
|
|
3879
|
-
children: keyedResults && keyedResults.length ? /* @__PURE__ */
|
|
3880
|
-
/* @__PURE__ */
|
|
3881
|
-
/* @__PURE__ */
|
|
3882
|
-
/* @__PURE__ */
|
|
3749
|
+
children: keyedResults && keyedResults.length ? /* @__PURE__ */ jsx9("ul", { className: "flex flex-col gap-2", children: keyedResults.map(({ key, result }) => /* @__PURE__ */ jsxs6("li", { className: "flex gap-2.5", children: [
|
|
3750
|
+
/* @__PURE__ */ jsx9(GlobeIcon, { className: "mt-0.5 size-3.5 shrink-0 text-og-fg-subtle" }),
|
|
3751
|
+
/* @__PURE__ */ jsxs6("div", { className: "min-w-0", children: [
|
|
3752
|
+
/* @__PURE__ */ jsxs6("p", { className: "truncate text-og-base text-og-fg", children: [
|
|
3883
3753
|
result.title,
|
|
3884
3754
|
" ",
|
|
3885
|
-
/* @__PURE__ */
|
|
3755
|
+
/* @__PURE__ */ jsx9("span", { className: "text-og-fg-subtle", children: result.domain })
|
|
3886
3756
|
] }),
|
|
3887
|
-
/* @__PURE__ */
|
|
3757
|
+
/* @__PURE__ */ jsx9("p", { className: "text-og-sm leading-5 text-og-fg-muted", children: result.snippet })
|
|
3888
3758
|
] })
|
|
3889
|
-
] }, key)) }) : /* @__PURE__ */
|
|
3759
|
+
] }, key)) }) : /* @__PURE__ */ jsx9(BodyNote, { children: "results folded into model context \u2014 no list available." })
|
|
3890
3760
|
}
|
|
3891
3761
|
);
|
|
3892
3762
|
}
|
|
@@ -3905,16 +3775,16 @@ function ViewImageRenderer({ item, loadRetainedScreenshot }) {
|
|
|
3905
3775
|
const retained = retainedScreenshotMetadata(out);
|
|
3906
3776
|
const omittedMedia = mediaPreviewFact(out);
|
|
3907
3777
|
if (item.status === "running") {
|
|
3908
|
-
return /* @__PURE__ */
|
|
3778
|
+
return /* @__PURE__ */ jsx9(
|
|
3909
3779
|
ActivityDisclosure,
|
|
3910
3780
|
{
|
|
3911
|
-
icon: /* @__PURE__ */
|
|
3781
|
+
icon: /* @__PURE__ */ jsx9(ImageIcon, { className: ICON_SIZE }),
|
|
3912
3782
|
iconTone: "running",
|
|
3913
3783
|
title: `View ${basename(path)}`,
|
|
3914
3784
|
running: true,
|
|
3915
|
-
preview: /* @__PURE__ */
|
|
3916
|
-
media: /* @__PURE__ */
|
|
3917
|
-
children: /* @__PURE__ */
|
|
3785
|
+
preview: /* @__PURE__ */ jsx9(RunningPreview, { children: "reading\u2026" }),
|
|
3786
|
+
media: /* @__PURE__ */ jsx9(MediaSkeleton, {}),
|
|
3787
|
+
children: /* @__PURE__ */ jsx9(BodyNote, { children: "reading image\u2026" })
|
|
3918
3788
|
}
|
|
3919
3789
|
);
|
|
3920
3790
|
}
|
|
@@ -3924,17 +3794,17 @@ function ViewImageRenderer({ item, loadRetainedScreenshot }) {
|
|
|
3924
3794
|
const title = `Viewed ${basename(path)}`;
|
|
3925
3795
|
if (!retained.available) {
|
|
3926
3796
|
const state = retained.reason === "expired" || retained.reason === "deleted" ? retained.reason : "unavailable";
|
|
3927
|
-
return /* @__PURE__ */
|
|
3797
|
+
return /* @__PURE__ */ jsx9(
|
|
3928
3798
|
ActivityDisclosure,
|
|
3929
3799
|
{
|
|
3930
|
-
icon: /* @__PURE__ */
|
|
3800
|
+
icon: /* @__PURE__ */ jsx9(ImageIcon, { className: ICON_SIZE }),
|
|
3931
3801
|
iconTone: viewFailed ? "failed" : "muted",
|
|
3932
3802
|
title: `${title} \xB7 ${state}`,
|
|
3933
3803
|
failed: viewFailed,
|
|
3934
3804
|
cancelled: viewCancelled,
|
|
3935
3805
|
preview: `image ${state}`,
|
|
3936
|
-
media: /* @__PURE__ */
|
|
3937
|
-
children: /* @__PURE__ */
|
|
3806
|
+
media: /* @__PURE__ */ jsx9(MediaEmpty, {}),
|
|
3807
|
+
children: /* @__PURE__ */ jsxs6(BodyNote, { tone: viewFailed ? "error" : void 0, children: [
|
|
3938
3808
|
"Image ",
|
|
3939
3809
|
state,
|
|
3940
3810
|
": ",
|
|
@@ -3944,7 +3814,7 @@ function ViewImageRenderer({ item, loadRetainedScreenshot }) {
|
|
|
3944
3814
|
}
|
|
3945
3815
|
);
|
|
3946
3816
|
}
|
|
3947
|
-
return /* @__PURE__ */
|
|
3817
|
+
return /* @__PURE__ */ jsx9(
|
|
3948
3818
|
RetainedSessionImageDisclosure,
|
|
3949
3819
|
{
|
|
3950
3820
|
artifact: retained,
|
|
@@ -3952,7 +3822,7 @@ function ViewImageRenderer({ item, loadRetainedScreenshot }) {
|
|
|
3952
3822
|
title,
|
|
3953
3823
|
caption: path || title,
|
|
3954
3824
|
noun: "image",
|
|
3955
|
-
icon: /* @__PURE__ */
|
|
3825
|
+
icon: /* @__PURE__ */ jsx9(ImageIcon, { className: ICON_SIZE }),
|
|
3956
3826
|
lightboxLabel: "Image",
|
|
3957
3827
|
batched: null,
|
|
3958
3828
|
failed: viewFailed,
|
|
@@ -3963,44 +3833,44 @@ function ViewImageRenderer({ item, loadRetainedScreenshot }) {
|
|
|
3963
3833
|
const errMatch = VIEW_IMAGE_ERRORS.find((p) => text.includes(p));
|
|
3964
3834
|
if (errMatch) {
|
|
3965
3835
|
const tooBig = text.includes("exceeded the allowed size");
|
|
3966
|
-
return /* @__PURE__ */
|
|
3836
|
+
return /* @__PURE__ */ jsx9(
|
|
3967
3837
|
ActivityDisclosure,
|
|
3968
3838
|
{
|
|
3969
|
-
icon: /* @__PURE__ */
|
|
3839
|
+
icon: /* @__PURE__ */ jsx9(ImageIcon, { className: ICON_SIZE }),
|
|
3970
3840
|
iconTone: "failed",
|
|
3971
3841
|
title: `View ${basename(path)}`,
|
|
3972
3842
|
chip: { tone: "bad", text: tooBig ? "too large" : "error" },
|
|
3973
3843
|
preview: text,
|
|
3974
|
-
children: /* @__PURE__ */
|
|
3844
|
+
children: /* @__PURE__ */ jsx9(BodyNote, { tone: "error", children: text })
|
|
3975
3845
|
}
|
|
3976
3846
|
);
|
|
3977
3847
|
}
|
|
3978
3848
|
if (text.startsWith("OpenAI file reference:")) {
|
|
3979
|
-
return /* @__PURE__ */
|
|
3849
|
+
return /* @__PURE__ */ jsx9(
|
|
3980
3850
|
ActivityDisclosure,
|
|
3981
3851
|
{
|
|
3982
|
-
icon: /* @__PURE__ */
|
|
3852
|
+
icon: /* @__PURE__ */ jsx9(ImageIcon, { className: ICON_SIZE }),
|
|
3983
3853
|
iconTone: viewFailed ? "failed" : "muted",
|
|
3984
3854
|
title: `Viewed ${basename(path)}`,
|
|
3985
3855
|
failed: viewFailed,
|
|
3986
3856
|
cancelled: viewCancelled,
|
|
3987
3857
|
preview: path,
|
|
3988
|
-
children: /* @__PURE__ */
|
|
3858
|
+
children: /* @__PURE__ */ jsx9(BodyNote, { children: text })
|
|
3989
3859
|
}
|
|
3990
3860
|
);
|
|
3991
3861
|
}
|
|
3992
3862
|
if (omittedMedia) {
|
|
3993
|
-
return /* @__PURE__ */
|
|
3863
|
+
return /* @__PURE__ */ jsx9(
|
|
3994
3864
|
ActivityDisclosure,
|
|
3995
3865
|
{
|
|
3996
|
-
icon: /* @__PURE__ */
|
|
3866
|
+
icon: /* @__PURE__ */ jsx9(ImageIcon, { className: ICON_SIZE }),
|
|
3997
3867
|
iconTone: viewFailed ? "failed" : "muted",
|
|
3998
3868
|
title: `Viewed ${basename(path)} \xB7 image omitted \xB7 not retained`,
|
|
3999
3869
|
failed: viewFailed,
|
|
4000
3870
|
cancelled: viewCancelled,
|
|
4001
3871
|
preview: "inline image omitted \xB7 not retained",
|
|
4002
|
-
media: /* @__PURE__ */
|
|
4003
|
-
children: /* @__PURE__ */
|
|
3872
|
+
media: /* @__PURE__ */ jsx9(MediaEmpty, {}),
|
|
3873
|
+
children: /* @__PURE__ */ jsxs6(BodyNote, { children: [
|
|
4004
3874
|
"The inline ",
|
|
4005
3875
|
omittedMedia.mediaType,
|
|
4006
3876
|
" output was omitted from the audit timeline and its source bytes were not retained."
|
|
@@ -4009,79 +3879,79 @@ function ViewImageRenderer({ item, loadRetainedScreenshot }) {
|
|
|
4009
3879
|
);
|
|
4010
3880
|
}
|
|
4011
3881
|
if (text.includes("No image data")) {
|
|
4012
|
-
return /* @__PURE__ */
|
|
3882
|
+
return /* @__PURE__ */ jsx9(
|
|
4013
3883
|
ActivityDisclosure,
|
|
4014
3884
|
{
|
|
4015
|
-
icon: /* @__PURE__ */
|
|
3885
|
+
icon: /* @__PURE__ */ jsx9(ImageIcon, { className: ICON_SIZE }),
|
|
4016
3886
|
iconTone: viewFailed ? "failed" : "muted",
|
|
4017
3887
|
title: `Viewed ${basename(path)}`,
|
|
4018
3888
|
failed: viewFailed,
|
|
4019
3889
|
cancelled: viewCancelled,
|
|
4020
3890
|
preview: "(no image)",
|
|
4021
|
-
children: /* @__PURE__ */
|
|
3891
|
+
children: /* @__PURE__ */ jsx9(BodyNote, { children: viewFailed ? "view_image failed \u2014 no image data returned." : viewCancelled ? "view_image interrupted." : "(no image) \u2014 the sandbox session returned no image data." })
|
|
4022
3892
|
}
|
|
4023
3893
|
);
|
|
4024
3894
|
}
|
|
4025
3895
|
if (text.startsWith("data:")) {
|
|
4026
|
-
return /* @__PURE__ */
|
|
3896
|
+
return /* @__PURE__ */ jsx9(
|
|
4027
3897
|
ActivityDisclosure,
|
|
4028
3898
|
{
|
|
4029
|
-
icon: /* @__PURE__ */
|
|
3899
|
+
icon: /* @__PURE__ */ jsx9(ImageIcon, { className: ICON_SIZE }),
|
|
4030
3900
|
iconTone: viewFailed ? "failed" : "accent",
|
|
4031
3901
|
title: `Viewed ${basename(path)}`,
|
|
4032
3902
|
failed: viewFailed,
|
|
4033
3903
|
cancelled: viewCancelled,
|
|
4034
|
-
media: /* @__PURE__ */
|
|
4035
|
-
children: /* @__PURE__ */
|
|
3904
|
+
media: /* @__PURE__ */ jsx9(Thumbnail, { src: text, caption: path, alt: path }),
|
|
3905
|
+
children: /* @__PURE__ */ jsx9(ScreenshotFigure, { src: text, caption: path, alt: path })
|
|
4036
3906
|
}
|
|
4037
3907
|
);
|
|
4038
3908
|
}
|
|
4039
|
-
return /* @__PURE__ */
|
|
3909
|
+
return /* @__PURE__ */ jsx9(GenericRenderer, { item });
|
|
4040
3910
|
}
|
|
4041
3911
|
function SecretSetRenderer({ item }) {
|
|
4042
3912
|
const args = parseToolArgs(item.arguments);
|
|
4043
3913
|
const name = typeof args.name === "string" ? args.name : "variable";
|
|
4044
3914
|
if (item.status === "running") {
|
|
4045
|
-
return /* @__PURE__ */
|
|
3915
|
+
return /* @__PURE__ */ jsx9(
|
|
4046
3916
|
ActivityDisclosure,
|
|
4047
3917
|
{
|
|
4048
|
-
icon: /* @__PURE__ */
|
|
3918
|
+
icon: /* @__PURE__ */ jsx9(KeyRoundIcon, { className: ICON_SIZE }),
|
|
4049
3919
|
iconTone: "running",
|
|
4050
3920
|
title: `Set ${name}`,
|
|
4051
3921
|
running: true,
|
|
4052
|
-
preview: /* @__PURE__ */
|
|
4053
|
-
children: /* @__PURE__ */
|
|
3922
|
+
preview: /* @__PURE__ */ jsx9(RunningPreview, { children: "setting\u2026" }),
|
|
3923
|
+
children: /* @__PURE__ */ jsx9(PayloadBlock, { label: "Arguments", value: args })
|
|
4054
3924
|
}
|
|
4055
3925
|
);
|
|
4056
3926
|
}
|
|
4057
3927
|
if (item.status === "failed") {
|
|
4058
3928
|
const errorText = typeof item.output === "string" ? item.output : null;
|
|
4059
|
-
return /* @__PURE__ */
|
|
3929
|
+
return /* @__PURE__ */ jsxs6(
|
|
4060
3930
|
ActivityDisclosure,
|
|
4061
3931
|
{
|
|
4062
|
-
icon: /* @__PURE__ */
|
|
3932
|
+
icon: /* @__PURE__ */ jsx9(KeyRoundIcon, { className: ICON_SIZE }),
|
|
4063
3933
|
iconTone: "failed",
|
|
4064
3934
|
title: `Set ${name}`,
|
|
4065
3935
|
failed: true,
|
|
4066
3936
|
preview: errorText ?? "variable write failed",
|
|
4067
3937
|
children: [
|
|
4068
|
-
/* @__PURE__ */
|
|
4069
|
-
errorText ? /* @__PURE__ */
|
|
3938
|
+
/* @__PURE__ */ jsx9(PayloadBlock, { label: "Arguments", value: args }),
|
|
3939
|
+
errorText ? /* @__PURE__ */ jsx9(PayloadBlock, { label: "Error", value: errorText, failed: true }) : /* @__PURE__ */ jsx9(BodyNote, { tone: "error", children: "the tool call failed with no output." })
|
|
4070
3940
|
]
|
|
4071
3941
|
}
|
|
4072
3942
|
);
|
|
4073
3943
|
}
|
|
4074
|
-
return /* @__PURE__ */
|
|
3944
|
+
return /* @__PURE__ */ jsxs6(
|
|
4075
3945
|
ActivityDisclosure,
|
|
4076
3946
|
{
|
|
4077
|
-
icon: /* @__PURE__ */
|
|
3947
|
+
icon: /* @__PURE__ */ jsx9(KeyRoundIcon, { className: ICON_SIZE }),
|
|
4078
3948
|
iconTone: "muted",
|
|
4079
3949
|
title: `Set ${name}`,
|
|
4080
3950
|
cancelled: item.status === "cancelled",
|
|
4081
3951
|
preview: "exact value preserved",
|
|
4082
3952
|
children: [
|
|
4083
|
-
/* @__PURE__ */
|
|
4084
|
-
/* @__PURE__ */
|
|
3953
|
+
/* @__PURE__ */ jsx9(PayloadBlock, { label: "Arguments", value: args }),
|
|
3954
|
+
/* @__PURE__ */ jsx9(BodyNote, { children: "The configured value is preserved exactly and available through authorized secret reads." })
|
|
4085
3955
|
]
|
|
4086
3956
|
}
|
|
4087
3957
|
);
|
|
@@ -4174,31 +4044,31 @@ function toolSearchPreview(tools, cancelled) {
|
|
|
4174
4044
|
}
|
|
4175
4045
|
function ToolSearchRenderer({ item }) {
|
|
4176
4046
|
const query2 = toolSearchQuery(item);
|
|
4177
|
-
const icon = /* @__PURE__ */
|
|
4047
|
+
const icon = /* @__PURE__ */ jsx9(PackageSearchIcon, { className: ICON_SIZE });
|
|
4178
4048
|
const running = item.status === "running";
|
|
4179
4049
|
const queryPreview = query2 ? truncatePreview(query2, 64) : "";
|
|
4180
4050
|
if (running) {
|
|
4181
|
-
return /* @__PURE__ */
|
|
4051
|
+
return /* @__PURE__ */ jsxs6(
|
|
4182
4052
|
ActivityDisclosure,
|
|
4183
4053
|
{
|
|
4184
4054
|
icon,
|
|
4185
4055
|
iconTone: "running",
|
|
4186
4056
|
title: "Looking up tools",
|
|
4187
4057
|
running: true,
|
|
4188
|
-
preview: queryPreview ? /* @__PURE__ */
|
|
4058
|
+
preview: queryPreview ? /* @__PURE__ */ jsx9(RunningPreview, { children: queryPreview }) : /* @__PURE__ */ jsx9(RunningPreview, { children: "Matching capabilities\u2026" }),
|
|
4189
4059
|
children: [
|
|
4190
|
-
query2 ? /* @__PURE__ */
|
|
4060
|
+
query2 ? /* @__PURE__ */ jsxs6(BodyNote, { children: [
|
|
4191
4061
|
"capability query: ",
|
|
4192
4062
|
query2
|
|
4193
4063
|
] }) : null,
|
|
4194
|
-
/* @__PURE__ */
|
|
4064
|
+
/* @__PURE__ */ jsx9(PayloadBlock, { label: "Arguments", value: parseToolArgs(item.arguments) })
|
|
4195
4065
|
]
|
|
4196
4066
|
}
|
|
4197
4067
|
);
|
|
4198
4068
|
}
|
|
4199
4069
|
const { text: outText, isError } = unwrapMcpOutput(item.output);
|
|
4200
4070
|
if ((isError || item.status === "failed") && item.status !== "cancelled") {
|
|
4201
|
-
return /* @__PURE__ */
|
|
4071
|
+
return /* @__PURE__ */ jsxs6(
|
|
4202
4072
|
ActivityDisclosure,
|
|
4203
4073
|
{
|
|
4204
4074
|
icon,
|
|
@@ -4207,19 +4077,19 @@ function ToolSearchRenderer({ item }) {
|
|
|
4207
4077
|
failed: true,
|
|
4208
4078
|
preview: truncatePreview(outText, 80) || queryPreview || "Lookup failed",
|
|
4209
4079
|
children: [
|
|
4210
|
-
query2 ? /* @__PURE__ */
|
|
4080
|
+
query2 ? /* @__PURE__ */ jsxs6(BodyNote, { children: [
|
|
4211
4081
|
"capability query: ",
|
|
4212
4082
|
query2
|
|
4213
4083
|
] }) : null,
|
|
4214
|
-
/* @__PURE__ */
|
|
4215
|
-
/* @__PURE__ */
|
|
4084
|
+
/* @__PURE__ */ jsx9(PayloadBlock, { label: "Arguments", value: parseToolArgs(item.arguments) }),
|
|
4085
|
+
/* @__PURE__ */ jsx9(PayloadBlock, { label: "Error", value: outText, failed: true })
|
|
4216
4086
|
]
|
|
4217
4087
|
}
|
|
4218
4088
|
);
|
|
4219
4089
|
}
|
|
4220
4090
|
const tools = parseDisclosedTools(item.output);
|
|
4221
4091
|
const preview = toolSearchPreview(tools, item.status === "cancelled");
|
|
4222
|
-
return /* @__PURE__ */
|
|
4092
|
+
return /* @__PURE__ */ jsxs6(
|
|
4223
4093
|
ActivityDisclosure,
|
|
4224
4094
|
{
|
|
4225
4095
|
icon,
|
|
@@ -4228,23 +4098,23 @@ function ToolSearchRenderer({ item }) {
|
|
|
4228
4098
|
cancelled: item.status === "cancelled",
|
|
4229
4099
|
preview,
|
|
4230
4100
|
children: [
|
|
4231
|
-
query2 ? /* @__PURE__ */
|
|
4101
|
+
query2 ? /* @__PURE__ */ jsxs6(BodyNote, { children: [
|
|
4232
4102
|
"capability query: ",
|
|
4233
4103
|
query2
|
|
4234
4104
|
] }) : null,
|
|
4235
|
-
tools && tools.length > 0 ? /* @__PURE__ */
|
|
4236
|
-
tools.slice(0, 12).map((tool) => /* @__PURE__ */
|
|
4237
|
-
tool.source ? /* @__PURE__ */
|
|
4238
|
-
/* @__PURE__ */
|
|
4105
|
+
tools && tools.length > 0 ? /* @__PURE__ */ jsxs6("ul", { className: "grid gap-1.5", children: [
|
|
4106
|
+
tools.slice(0, 12).map((tool) => /* @__PURE__ */ jsxs6("li", { className: "flex min-w-0 items-baseline gap-2", children: [
|
|
4107
|
+
tool.source ? /* @__PURE__ */ jsx9("span", { className: "shrink-0 text-og-xs text-og-fg-subtle", children: tool.source }) : null,
|
|
4108
|
+
/* @__PURE__ */ jsx9("span", { className: "truncate font-mono text-og-sm text-og-fg", children: tool.leaf })
|
|
4239
4109
|
] }, tool.name)),
|
|
4240
|
-
tools.length > 12 ? /* @__PURE__ */
|
|
4110
|
+
tools.length > 12 ? /* @__PURE__ */ jsxs6("li", { className: "text-og-xs text-og-fg-muted", children: [
|
|
4241
4111
|
"+",
|
|
4242
4112
|
tools.length - 12,
|
|
4243
4113
|
" more"
|
|
4244
4114
|
] }) : null
|
|
4245
|
-
] }) : tools && tools.length === 0 ? /* @__PURE__ */
|
|
4246
|
-
/* @__PURE__ */
|
|
4247
|
-
tools == null && outText ? /* @__PURE__ */
|
|
4115
|
+
] }) : tools && tools.length === 0 ? /* @__PURE__ */ jsx9(BodyNote, { children: "no deferred tools matched this capability query." }) : null,
|
|
4116
|
+
/* @__PURE__ */ jsx9(PayloadBlock, { label: "Arguments", value: parseToolArgs(item.arguments) }),
|
|
4117
|
+
tools == null && outText ? /* @__PURE__ */ jsx9(PayloadBlock, { label: "Result", value: outText }) : null
|
|
4248
4118
|
]
|
|
4249
4119
|
}
|
|
4250
4120
|
);
|
|
@@ -4255,52 +4125,52 @@ function DocsSearchRenderer({ item }) {
|
|
|
4255
4125
|
const title = query2 ? `Search \u201C${truncatePreview(query2, 48)}\u201D` : toolDisplayName(item.name);
|
|
4256
4126
|
const running = item.status === "running";
|
|
4257
4127
|
if (running) {
|
|
4258
|
-
return /* @__PURE__ */
|
|
4128
|
+
return /* @__PURE__ */ jsx9(
|
|
4259
4129
|
ActivityDisclosure,
|
|
4260
4130
|
{
|
|
4261
|
-
icon: /* @__PURE__ */
|
|
4131
|
+
icon: /* @__PURE__ */ jsx9(FileSearchIcon, { className: ICON_SIZE }),
|
|
4262
4132
|
iconTone: "running",
|
|
4263
4133
|
title,
|
|
4264
4134
|
running: true,
|
|
4265
|
-
preview: /* @__PURE__ */
|
|
4266
|
-
children: /* @__PURE__ */
|
|
4135
|
+
preview: /* @__PURE__ */ jsx9(RunningPreview, { children: "Searching\u2026" }),
|
|
4136
|
+
children: /* @__PURE__ */ jsx9(PayloadBlock, { label: "Arguments", value: args })
|
|
4267
4137
|
}
|
|
4268
4138
|
);
|
|
4269
4139
|
}
|
|
4270
4140
|
const { text: outText, isError } = unwrapMcpOutput(item.output);
|
|
4271
4141
|
if ((isError || item.status === "failed") && item.status !== "cancelled") {
|
|
4272
|
-
return /* @__PURE__ */
|
|
4142
|
+
return /* @__PURE__ */ jsxs6(
|
|
4273
4143
|
ActivityDisclosure,
|
|
4274
4144
|
{
|
|
4275
|
-
icon: /* @__PURE__ */
|
|
4145
|
+
icon: /* @__PURE__ */ jsx9(FileSearchIcon, { className: ICON_SIZE }),
|
|
4276
4146
|
iconTone: "failed",
|
|
4277
4147
|
title,
|
|
4278
4148
|
failed: true,
|
|
4279
4149
|
preview: truncatePreview(outText, 80) || "Search failed",
|
|
4280
4150
|
children: [
|
|
4281
|
-
/* @__PURE__ */
|
|
4282
|
-
/* @__PURE__ */
|
|
4151
|
+
/* @__PURE__ */ jsx9(PayloadBlock, { label: "Arguments", value: args }),
|
|
4152
|
+
/* @__PURE__ */ jsx9(PayloadBlock, { label: "Error", value: outText, failed: true })
|
|
4283
4153
|
]
|
|
4284
4154
|
}
|
|
4285
4155
|
);
|
|
4286
4156
|
}
|
|
4287
4157
|
const hits = parseSearchHits(outText);
|
|
4288
4158
|
const preview = item.status === "cancelled" ? void 0 : hits ? hits.length === 0 ? "No hits" : `${hits.length} hit${hits.length === 1 ? "" : "s"}` : "Done";
|
|
4289
|
-
return /* @__PURE__ */
|
|
4159
|
+
return /* @__PURE__ */ jsxs6(
|
|
4290
4160
|
ActivityDisclosure,
|
|
4291
4161
|
{
|
|
4292
|
-
icon: /* @__PURE__ */
|
|
4162
|
+
icon: /* @__PURE__ */ jsx9(FileSearchIcon, { className: ICON_SIZE }),
|
|
4293
4163
|
iconTone: "muted",
|
|
4294
4164
|
title,
|
|
4295
4165
|
cancelled: item.status === "cancelled",
|
|
4296
4166
|
preview,
|
|
4297
4167
|
children: [
|
|
4298
|
-
hits && hits.length > 0 ? /* @__PURE__ */
|
|
4299
|
-
/* @__PURE__ */
|
|
4300
|
-
hit.snippet ? /* @__PURE__ */
|
|
4168
|
+
hits && hits.length > 0 ? /* @__PURE__ */ jsx9("ul", { className: "grid gap-2", children: hits.slice(0, 8).map((hit) => /* @__PURE__ */ jsxs6("li", { className: "min-w-0", children: [
|
|
4169
|
+
/* @__PURE__ */ jsx9("div", { className: "truncate text-og-sm font-medium text-og-fg", children: hit.title }),
|
|
4170
|
+
hit.snippet ? /* @__PURE__ */ jsx9("div", { className: "mt-0.5 line-clamp-2 text-og-xs text-og-fg-muted", children: hit.snippet }) : null
|
|
4301
4171
|
] }, `${hit.title}\0${hit.snippet}`)) }) : null,
|
|
4302
|
-
/* @__PURE__ */
|
|
4303
|
-
/* @__PURE__ */
|
|
4172
|
+
/* @__PURE__ */ jsx9(PayloadBlock, { label: "Arguments", value: args }),
|
|
4173
|
+
/* @__PURE__ */ jsx9(PayloadBlock, { label: "Result", value: outText })
|
|
4304
4174
|
]
|
|
4305
4175
|
}
|
|
4306
4176
|
);
|
|
@@ -4310,23 +4180,23 @@ function SetSessionTitleRenderer({ item }) {
|
|
|
4310
4180
|
const titleArg = typeof args.title === "string" ? args.title.trim() : "";
|
|
4311
4181
|
const display = toolDisplayName(item.name);
|
|
4312
4182
|
const previewTitle = titleArg ? truncatePreview(titleArg, 72) : "";
|
|
4313
|
-
const icon = /* @__PURE__ */
|
|
4183
|
+
const icon = /* @__PURE__ */ jsx9(MessagesSquareIcon, { className: ICON_SIZE });
|
|
4314
4184
|
if (item.status === "running") {
|
|
4315
|
-
return /* @__PURE__ */
|
|
4185
|
+
return /* @__PURE__ */ jsx9(
|
|
4316
4186
|
ActivityDisclosure,
|
|
4317
4187
|
{
|
|
4318
4188
|
icon,
|
|
4319
4189
|
iconTone: "running",
|
|
4320
4190
|
title: display,
|
|
4321
4191
|
running: true,
|
|
4322
|
-
preview: previewTitle ? /* @__PURE__ */
|
|
4323
|
-
children: /* @__PURE__ */
|
|
4192
|
+
preview: previewTitle ? /* @__PURE__ */ jsx9(RunningPreview, { children: previewTitle }) : /* @__PURE__ */ jsx9(RunningPreview, { children: "Setting title\u2026" }),
|
|
4193
|
+
children: /* @__PURE__ */ jsx9(PayloadBlock, { label: "Arguments", value: args })
|
|
4324
4194
|
}
|
|
4325
4195
|
);
|
|
4326
4196
|
}
|
|
4327
4197
|
const { text: outText, isError } = unwrapMcpOutput(item.output);
|
|
4328
4198
|
if ((isError || item.status === "failed") && item.status !== "cancelled") {
|
|
4329
|
-
return /* @__PURE__ */
|
|
4199
|
+
return /* @__PURE__ */ jsxs6(
|
|
4330
4200
|
ActivityDisclosure,
|
|
4331
4201
|
{
|
|
4332
4202
|
icon,
|
|
@@ -4335,8 +4205,8 @@ function SetSessionTitleRenderer({ item }) {
|
|
|
4335
4205
|
failed: true,
|
|
4336
4206
|
preview: truncatePreview(outText, 80) || "Rename failed",
|
|
4337
4207
|
children: [
|
|
4338
|
-
/* @__PURE__ */
|
|
4339
|
-
/* @__PURE__ */
|
|
4208
|
+
/* @__PURE__ */ jsx9(PayloadBlock, { label: "Arguments", value: args }),
|
|
4209
|
+
/* @__PURE__ */ jsx9(PayloadBlock, { label: "Error", value: outText, failed: true })
|
|
4340
4210
|
]
|
|
4341
4211
|
}
|
|
4342
4212
|
);
|
|
@@ -4351,7 +4221,7 @@ function SetSessionTitleRenderer({ item }) {
|
|
|
4351
4221
|
}
|
|
4352
4222
|
}
|
|
4353
4223
|
}
|
|
4354
|
-
return /* @__PURE__ */
|
|
4224
|
+
return /* @__PURE__ */ jsxs6(
|
|
4355
4225
|
ActivityDisclosure,
|
|
4356
4226
|
{
|
|
4357
4227
|
icon,
|
|
@@ -4360,8 +4230,8 @@ function SetSessionTitleRenderer({ item }) {
|
|
|
4360
4230
|
cancelled: item.status === "cancelled",
|
|
4361
4231
|
preview: item.status === "cancelled" ? void 0 : settledTitle || void 0,
|
|
4362
4232
|
children: [
|
|
4363
|
-
/* @__PURE__ */
|
|
4364
|
-
outText ? /* @__PURE__ */
|
|
4233
|
+
/* @__PURE__ */ jsx9(PayloadBlock, { label: "Arguments", value: args }),
|
|
4234
|
+
outText ? /* @__PURE__ */ jsx9(PayloadBlock, { label: "Result", value: outText }) : null
|
|
4365
4235
|
]
|
|
4366
4236
|
}
|
|
4367
4237
|
);
|
|
@@ -4388,46 +4258,46 @@ function MemoryProposeRenderer({ item }) {
|
|
|
4388
4258
|
const title = "Propose memory";
|
|
4389
4259
|
const running = item.status === "running";
|
|
4390
4260
|
if (running) {
|
|
4391
|
-
return /* @__PURE__ */
|
|
4261
|
+
return /* @__PURE__ */ jsx9(
|
|
4392
4262
|
ActivityDisclosure,
|
|
4393
4263
|
{
|
|
4394
|
-
icon: /* @__PURE__ */
|
|
4264
|
+
icon: /* @__PURE__ */ jsx9(BrainCircuitIcon, { className: ICON_SIZE }),
|
|
4395
4265
|
iconTone: "running",
|
|
4396
4266
|
title,
|
|
4397
4267
|
running: true,
|
|
4398
|
-
preview: /* @__PURE__ */
|
|
4399
|
-
children: /* @__PURE__ */
|
|
4268
|
+
preview: /* @__PURE__ */ jsx9(RunningPreview, { children: "Proposing\u2026" }),
|
|
4269
|
+
children: /* @__PURE__ */ jsx9(PayloadBlock, { label: "Arguments", value: args })
|
|
4400
4270
|
}
|
|
4401
4271
|
);
|
|
4402
4272
|
}
|
|
4403
4273
|
const { text: outText, isError } = unwrapMcpOutput(item.output);
|
|
4404
4274
|
if ((isError || item.status === "failed") && item.status !== "cancelled") {
|
|
4405
|
-
return /* @__PURE__ */
|
|
4275
|
+
return /* @__PURE__ */ jsxs6(
|
|
4406
4276
|
ActivityDisclosure,
|
|
4407
4277
|
{
|
|
4408
|
-
icon: /* @__PURE__ */
|
|
4278
|
+
icon: /* @__PURE__ */ jsx9(BrainCircuitIcon, { className: ICON_SIZE }),
|
|
4409
4279
|
iconTone: "failed",
|
|
4410
4280
|
title,
|
|
4411
4281
|
failed: true,
|
|
4412
4282
|
preview: truncatePreview(outText, 80) || "Propose failed",
|
|
4413
4283
|
children: [
|
|
4414
|
-
text ? /* @__PURE__ */
|
|
4415
|
-
/* @__PURE__ */
|
|
4284
|
+
text ? /* @__PURE__ */ jsx9(BodyNote, { children: text }) : null,
|
|
4285
|
+
/* @__PURE__ */ jsx9(PayloadBlock, { label: "Error", value: outText, failed: true })
|
|
4416
4286
|
]
|
|
4417
4287
|
}
|
|
4418
4288
|
);
|
|
4419
4289
|
}
|
|
4420
|
-
return /* @__PURE__ */
|
|
4290
|
+
return /* @__PURE__ */ jsxs6(
|
|
4421
4291
|
ActivityDisclosure,
|
|
4422
4292
|
{
|
|
4423
|
-
icon: /* @__PURE__ */
|
|
4293
|
+
icon: /* @__PURE__ */ jsx9(BrainCircuitIcon, { className: ICON_SIZE }),
|
|
4424
4294
|
iconTone: "muted",
|
|
4425
4295
|
title,
|
|
4426
4296
|
cancelled: item.status === "cancelled",
|
|
4427
4297
|
preview: text ? truncatePreview(text, 90) : "Done",
|
|
4428
4298
|
children: [
|
|
4429
|
-
text ? /* @__PURE__ */
|
|
4430
|
-
/* @__PURE__ */
|
|
4299
|
+
text ? /* @__PURE__ */ jsx9(BodyNote, { children: text }) : null,
|
|
4300
|
+
/* @__PURE__ */ jsx9(PayloadBlock, { label: "Result", value: outText })
|
|
4431
4301
|
]
|
|
4432
4302
|
}
|
|
4433
4303
|
);
|
|
@@ -4453,24 +4323,24 @@ function askToolPreview(args) {
|
|
|
4453
4323
|
function AskRenderer({ item }) {
|
|
4454
4324
|
const args = parseToolArgs(item.arguments);
|
|
4455
4325
|
const preview = askToolPreview(args);
|
|
4456
|
-
const icon = /* @__PURE__ */
|
|
4326
|
+
const icon = /* @__PURE__ */ jsx9(MessageCircleQuestionIcon2, { className: ICON_SIZE });
|
|
4457
4327
|
const title = "Ask";
|
|
4458
4328
|
if (item.status === "running") {
|
|
4459
|
-
return /* @__PURE__ */
|
|
4329
|
+
return /* @__PURE__ */ jsx9(
|
|
4460
4330
|
ActivityDisclosure,
|
|
4461
4331
|
{
|
|
4462
4332
|
icon,
|
|
4463
4333
|
iconTone: "running",
|
|
4464
4334
|
title,
|
|
4465
4335
|
running: true,
|
|
4466
|
-
preview: preview ? /* @__PURE__ */
|
|
4467
|
-
children: /* @__PURE__ */
|
|
4336
|
+
preview: preview ? /* @__PURE__ */ jsx9(RunningPreview, { children: preview }) : /* @__PURE__ */ jsx9(RunningPreview, { children: "Waiting\u2026" }),
|
|
4337
|
+
children: /* @__PURE__ */ jsx9(PayloadBlock, { label: "Arguments", value: args })
|
|
4468
4338
|
}
|
|
4469
4339
|
);
|
|
4470
4340
|
}
|
|
4471
4341
|
const { text: outText, isError } = unwrapMcpOutput(item.output);
|
|
4472
4342
|
if ((isError || item.status === "failed") && item.status !== "cancelled") {
|
|
4473
|
-
return /* @__PURE__ */
|
|
4343
|
+
return /* @__PURE__ */ jsxs6(
|
|
4474
4344
|
ActivityDisclosure,
|
|
4475
4345
|
{
|
|
4476
4346
|
icon,
|
|
@@ -4479,13 +4349,13 @@ function AskRenderer({ item }) {
|
|
|
4479
4349
|
chip: { tone: "bad", text: "error" },
|
|
4480
4350
|
preview: truncatePreview(outText, 80) || preview || "Error",
|
|
4481
4351
|
children: [
|
|
4482
|
-
/* @__PURE__ */
|
|
4483
|
-
/* @__PURE__ */
|
|
4352
|
+
/* @__PURE__ */ jsx9(PayloadBlock, { label: "Arguments", value: args }),
|
|
4353
|
+
/* @__PURE__ */ jsx9(PayloadBlock, { label: "Error", value: outText, failed: true })
|
|
4484
4354
|
]
|
|
4485
4355
|
}
|
|
4486
4356
|
);
|
|
4487
4357
|
}
|
|
4488
|
-
return /* @__PURE__ */
|
|
4358
|
+
return /* @__PURE__ */ jsxs6(
|
|
4489
4359
|
ActivityDisclosure,
|
|
4490
4360
|
{
|
|
4491
4361
|
icon,
|
|
@@ -4494,8 +4364,8 @@ function AskRenderer({ item }) {
|
|
|
4494
4364
|
cancelled: item.status === "cancelled",
|
|
4495
4365
|
preview: item.status === "cancelled" ? void 0 : preview ?? void 0,
|
|
4496
4366
|
children: [
|
|
4497
|
-
/* @__PURE__ */
|
|
4498
|
-
outText ? /* @__PURE__ */
|
|
4367
|
+
/* @__PURE__ */ jsx9(PayloadBlock, { label: "Arguments", value: args }),
|
|
4368
|
+
outText ? /* @__PURE__ */ jsx9(PayloadBlock, { label: "Result", value: outText }) : null
|
|
4499
4369
|
]
|
|
4500
4370
|
}
|
|
4501
4371
|
);
|
|
@@ -4531,23 +4401,23 @@ function RunOnRenderer({ item }) {
|
|
|
4531
4401
|
const targetName = runOnTargetName(item.output);
|
|
4532
4402
|
const title = targetName ? `Run on ${targetName}` : "Run on";
|
|
4533
4403
|
const opPreview = runOnOpPreview(parsedArgs);
|
|
4534
|
-
const icon = /* @__PURE__ */
|
|
4404
|
+
const icon = /* @__PURE__ */ jsx9(ServerIcon, { className: ICON_SIZE });
|
|
4535
4405
|
if (item.status === "running") {
|
|
4536
|
-
return /* @__PURE__ */
|
|
4406
|
+
return /* @__PURE__ */ jsx9(
|
|
4537
4407
|
ActivityDisclosure,
|
|
4538
4408
|
{
|
|
4539
4409
|
icon,
|
|
4540
4410
|
iconTone: "running",
|
|
4541
4411
|
title,
|
|
4542
4412
|
running: true,
|
|
4543
|
-
preview: opPreview ? /* @__PURE__ */
|
|
4544
|
-
children: /* @__PURE__ */
|
|
4413
|
+
preview: opPreview ? /* @__PURE__ */ jsx9(RunningPreview, { children: opPreview }) : /* @__PURE__ */ jsx9(RunningPreview, { children: "Running\u2026" }),
|
|
4414
|
+
children: /* @__PURE__ */ jsx9(PayloadBlock, { label: "Arguments", value: args })
|
|
4545
4415
|
}
|
|
4546
4416
|
);
|
|
4547
4417
|
}
|
|
4548
4418
|
const { text: outText, isError } = unwrapMcpOutput(item.output);
|
|
4549
4419
|
if ((isError || item.status === "failed") && item.status !== "cancelled") {
|
|
4550
|
-
return /* @__PURE__ */
|
|
4420
|
+
return /* @__PURE__ */ jsxs6(
|
|
4551
4421
|
ActivityDisclosure,
|
|
4552
4422
|
{
|
|
4553
4423
|
icon,
|
|
@@ -4556,13 +4426,13 @@ function RunOnRenderer({ item }) {
|
|
|
4556
4426
|
chip: { tone: "bad", text: "error" },
|
|
4557
4427
|
preview: truncatePreview(outText, 80) || opPreview || "Error",
|
|
4558
4428
|
children: [
|
|
4559
|
-
/* @__PURE__ */
|
|
4560
|
-
/* @__PURE__ */
|
|
4429
|
+
/* @__PURE__ */ jsx9(PayloadBlock, { label: "Arguments", value: args }),
|
|
4430
|
+
/* @__PURE__ */ jsx9(PayloadBlock, { label: "Error", value: outText, failed: true })
|
|
4561
4431
|
]
|
|
4562
4432
|
}
|
|
4563
4433
|
);
|
|
4564
4434
|
}
|
|
4565
|
-
return /* @__PURE__ */
|
|
4435
|
+
return /* @__PURE__ */ jsxs6(
|
|
4566
4436
|
ActivityDisclosure,
|
|
4567
4437
|
{
|
|
4568
4438
|
icon,
|
|
@@ -4571,8 +4441,8 @@ function RunOnRenderer({ item }) {
|
|
|
4571
4441
|
cancelled: item.status === "cancelled",
|
|
4572
4442
|
preview: item.status === "cancelled" ? void 0 : opPreview ?? void 0,
|
|
4573
4443
|
children: [
|
|
4574
|
-
/* @__PURE__ */
|
|
4575
|
-
outText ? /* @__PURE__ */
|
|
4444
|
+
/* @__PURE__ */ jsx9(PayloadBlock, { label: "Arguments", value: args }),
|
|
4445
|
+
outText ? /* @__PURE__ */ jsx9(PayloadBlock, { label: "Result", value: outText }) : null
|
|
4576
4446
|
]
|
|
4577
4447
|
}
|
|
4578
4448
|
);
|
|
@@ -4581,24 +4451,24 @@ function GenericRenderer({ item }) {
|
|
|
4581
4451
|
const running = item.status === "running";
|
|
4582
4452
|
const args = parseToolArgs(item.arguments);
|
|
4583
4453
|
const display = toolDisplayName(item.name);
|
|
4584
|
-
const icon = /* @__PURE__ */
|
|
4454
|
+
const icon = /* @__PURE__ */ jsx9(GenericToolIcon, { name: item.name });
|
|
4585
4455
|
const goalPreview = goalToolPreview(item.name, args);
|
|
4586
4456
|
if (running) {
|
|
4587
|
-
return /* @__PURE__ */
|
|
4457
|
+
return /* @__PURE__ */ jsx9(
|
|
4588
4458
|
ActivityDisclosure,
|
|
4589
4459
|
{
|
|
4590
4460
|
icon,
|
|
4591
4461
|
iconTone: "running",
|
|
4592
4462
|
title: display,
|
|
4593
4463
|
running: true,
|
|
4594
|
-
preview: goalPreview ?? /* @__PURE__ */
|
|
4595
|
-
children: /* @__PURE__ */
|
|
4464
|
+
preview: goalPreview ?? /* @__PURE__ */ jsx9(RunningPreview, { children: "Running\u2026" }),
|
|
4465
|
+
children: /* @__PURE__ */ jsx9(PayloadBlock, { label: "Arguments", value: args })
|
|
4596
4466
|
}
|
|
4597
4467
|
);
|
|
4598
4468
|
}
|
|
4599
4469
|
const { text: outText, isError } = unwrapMcpOutput(item.output);
|
|
4600
4470
|
if ((isError || item.status === "failed") && item.status !== "cancelled") {
|
|
4601
|
-
return /* @__PURE__ */
|
|
4471
|
+
return /* @__PURE__ */ jsxs6(
|
|
4602
4472
|
ActivityDisclosure,
|
|
4603
4473
|
{
|
|
4604
4474
|
icon,
|
|
@@ -4607,13 +4477,13 @@ function GenericRenderer({ item }) {
|
|
|
4607
4477
|
chip: { tone: "bad", text: "error" },
|
|
4608
4478
|
preview: truncatePreview(outText, 80) || "Error",
|
|
4609
4479
|
children: [
|
|
4610
|
-
/* @__PURE__ */
|
|
4611
|
-
/* @__PURE__ */
|
|
4480
|
+
/* @__PURE__ */ jsx9(PayloadBlock, { label: "Arguments", value: args }),
|
|
4481
|
+
/* @__PURE__ */ jsx9(PayloadBlock, { label: "Error", value: outText, failed: true })
|
|
4612
4482
|
]
|
|
4613
4483
|
}
|
|
4614
4484
|
);
|
|
4615
4485
|
}
|
|
4616
|
-
return /* @__PURE__ */
|
|
4486
|
+
return /* @__PURE__ */ jsxs6(
|
|
4617
4487
|
ActivityDisclosure,
|
|
4618
4488
|
{
|
|
4619
4489
|
icon,
|
|
@@ -4622,8 +4492,8 @@ function GenericRenderer({ item }) {
|
|
|
4622
4492
|
cancelled: item.status === "cancelled",
|
|
4623
4493
|
preview: item.status === "cancelled" ? void 0 : goalPreview ?? "Done",
|
|
4624
4494
|
children: [
|
|
4625
|
-
/* @__PURE__ */
|
|
4626
|
-
/* @__PURE__ */
|
|
4495
|
+
/* @__PURE__ */ jsx9(PayloadBlock, { label: "Arguments", value: args }),
|
|
4496
|
+
/* @__PURE__ */ jsx9(PayloadBlock, { label: "Result", value: outText })
|
|
4627
4497
|
]
|
|
4628
4498
|
}
|
|
4629
4499
|
);
|
|
@@ -4650,7 +4520,7 @@ function truncatePreview(text, max) {
|
|
|
4650
4520
|
function GenericToolIcon({ name }) {
|
|
4651
4521
|
const leaf = mcpToolLeaf(name);
|
|
4652
4522
|
const Icon = leaf === "request_human_input" ? MessageCircleQuestionIcon2 : leaf.startsWith("goal_") ? TargetIcon : leaf.startsWith("memory_") || leaf === "preference_registry_summary" || leaf === "preference_registry_get" ? BrainCircuitIcon : leaf.startsWith("session_") || leaf === "sessions_list" || leaf === "set_session_title" || leaf === "set_other_session_title" ? MessagesSquareIcon : leaf.startsWith("sandbox") || leaf === "sandboxes_list" || leaf === "run_on" ? ServerIcon : leaf.startsWith("rig_") ? ServerCogIcon : leaf.startsWith("scheduled_") ? CalendarClockIcon : leaf.startsWith("artifacts_") ? PanelsTopLeftIcon : leaf.startsWith("social_") ? Share2Icon : leaf.startsWith("slack_") ? MessageSquareIcon : leaf.startsWith("github_") ? FolderGitIcon : leaf.startsWith("variable_") ? BoxIcon : leaf.startsWith("environment_") ? KeyRoundIcon : leaf.includes("document") || leaf.includes("knowledge") || leaf === "list_document_bases" ? FileSearchIcon : leaf === "tool_search" ? PackageSearchIcon : leaf === "load_skill" ? PlugIcon : WrenchIcon;
|
|
4653
|
-
return /* @__PURE__ */
|
|
4523
|
+
return /* @__PURE__ */ jsx9(Icon, { className: ICON_SIZE });
|
|
4654
4524
|
}
|
|
4655
4525
|
var BASE_ENTRIES = [
|
|
4656
4526
|
// Provider-native items carry `raw.type` on the wire — this is their source of
|
|
@@ -4697,8 +4567,8 @@ function createDefaultToolRegistry(options = {}) {
|
|
|
4697
4567
|
|
|
4698
4568
|
// src/components/copy-button.tsx
|
|
4699
4569
|
import { CheckIcon as CheckIcon2, CopyIcon } from "lucide-react";
|
|
4700
|
-
import { useEffect as useEffect7, useRef as useRef5, useState as
|
|
4701
|
-
import { jsx as
|
|
4570
|
+
import { useEffect as useEffect7, useRef as useRef5, useState as useState8 } from "react";
|
|
4571
|
+
import { jsx as jsx10, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
4702
4572
|
var COPIED_MS = 1600;
|
|
4703
4573
|
function CopyButton({
|
|
4704
4574
|
text,
|
|
@@ -4706,8 +4576,8 @@ function CopyButton({
|
|
|
4706
4576
|
className,
|
|
4707
4577
|
reveal = "group-hover"
|
|
4708
4578
|
}) {
|
|
4709
|
-
const [copied, setCopied] =
|
|
4710
|
-
const [tipOpen, setTipOpen] =
|
|
4579
|
+
const [copied, setCopied] = useState8(false);
|
|
4580
|
+
const [tipOpen, setTipOpen] = useState8(false);
|
|
4711
4581
|
const timerRef = useRef5(null);
|
|
4712
4582
|
useEffect7(() => {
|
|
4713
4583
|
return () => {
|
|
@@ -4741,7 +4611,7 @@ function CopyButton({
|
|
|
4741
4611
|
}
|
|
4742
4612
|
};
|
|
4743
4613
|
const tip = copied ? "Copied" : label;
|
|
4744
|
-
return /* @__PURE__ */
|
|
4614
|
+
return /* @__PURE__ */ jsxs7(
|
|
4745
4615
|
Tooltip,
|
|
4746
4616
|
{
|
|
4747
4617
|
open: copied ? true : tipOpen,
|
|
@@ -4751,7 +4621,7 @@ function CopyButton({
|
|
|
4751
4621
|
}
|
|
4752
4622
|
},
|
|
4753
4623
|
children: [
|
|
4754
|
-
/* @__PURE__ */
|
|
4624
|
+
/* @__PURE__ */ jsx10(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx10(
|
|
4755
4625
|
"button",
|
|
4756
4626
|
{
|
|
4757
4627
|
type: "button",
|
|
@@ -4768,10 +4638,10 @@ function CopyButton({
|
|
|
4768
4638
|
copied && "opacity-100 text-og-accent",
|
|
4769
4639
|
className
|
|
4770
4640
|
),
|
|
4771
|
-
children: copied ? /* @__PURE__ */
|
|
4641
|
+
children: copied ? /* @__PURE__ */ jsx10(CheckIcon2, { className: "size-3.5", "aria-hidden": true }) : /* @__PURE__ */ jsx10(CopyIcon, { className: "size-3.5", "aria-hidden": true })
|
|
4772
4642
|
}
|
|
4773
4643
|
) }),
|
|
4774
|
-
/* @__PURE__ */
|
|
4644
|
+
/* @__PURE__ */ jsx10(TooltipContent, { side: "top", children: tip })
|
|
4775
4645
|
]
|
|
4776
4646
|
}
|
|
4777
4647
|
);
|
|
@@ -4785,11 +4655,11 @@ function CopyHoverFrame({
|
|
|
4785
4655
|
trailing
|
|
4786
4656
|
}) {
|
|
4787
4657
|
if (copyText.trim().length === 0) {
|
|
4788
|
-
return /* @__PURE__ */
|
|
4658
|
+
return /* @__PURE__ */ jsx10("div", { className, children });
|
|
4789
4659
|
}
|
|
4790
|
-
return /* @__PURE__ */
|
|
4660
|
+
return /* @__PURE__ */ jsxs7("div", { className: cn("group/copy", className), children: [
|
|
4791
4661
|
children,
|
|
4792
|
-
/* @__PURE__ */
|
|
4662
|
+
/* @__PURE__ */ jsxs7(
|
|
4793
4663
|
"div",
|
|
4794
4664
|
{
|
|
4795
4665
|
className: cn(
|
|
@@ -4797,7 +4667,7 @@ function CopyHoverFrame({
|
|
|
4797
4667
|
align === "end" ? "justify-end" : "justify-start"
|
|
4798
4668
|
),
|
|
4799
4669
|
children: [
|
|
4800
|
-
/* @__PURE__ */
|
|
4670
|
+
/* @__PURE__ */ jsx10(CopyButton, { text: copyText, label, reveal: "group-hover" }),
|
|
4801
4671
|
trailing
|
|
4802
4672
|
]
|
|
4803
4673
|
}
|
|
@@ -4811,10 +4681,10 @@ import {
|
|
|
4811
4681
|
isValidElement,
|
|
4812
4682
|
memo,
|
|
4813
4683
|
useEffect as useEffect8,
|
|
4814
|
-
useMemo as
|
|
4684
|
+
useMemo as useMemo3,
|
|
4815
4685
|
useReducer,
|
|
4816
4686
|
useRef as useRef6,
|
|
4817
|
-
useState as
|
|
4687
|
+
useState as useState9
|
|
4818
4688
|
} from "react";
|
|
4819
4689
|
import ReactMarkdown, {
|
|
4820
4690
|
defaultUrlTransform
|
|
@@ -5101,9 +4971,9 @@ function rehypeStreamReveal(options) {
|
|
|
5101
4971
|
}
|
|
5102
4972
|
|
|
5103
4973
|
// src/components/markdown.tsx
|
|
5104
|
-
import { jsx as
|
|
4974
|
+
import { jsx as jsx11, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
5105
4975
|
var baseComponents = {
|
|
5106
|
-
h1: ({ children, ...props }) => /* @__PURE__ */
|
|
4976
|
+
h1: ({ children, ...props }) => /* @__PURE__ */ jsx11(
|
|
5107
4977
|
"h1",
|
|
5108
4978
|
{
|
|
5109
4979
|
className: "mt-5 mb-2.5 text-xl font-semibold tracking-tight text-og-fg first:mt-0",
|
|
@@ -5111,8 +4981,8 @@ var baseComponents = {
|
|
|
5111
4981
|
children
|
|
5112
4982
|
}
|
|
5113
4983
|
),
|
|
5114
|
-
h2: ({ children, ...props }) => /* @__PURE__ */
|
|
5115
|
-
h3: ({ children, ...props }) => /* @__PURE__ */
|
|
4984
|
+
h2: ({ children, ...props }) => /* @__PURE__ */ jsx11("h2", { className: "mt-5 mb-2 text-lg font-semibold tracking-tight text-og-fg first:mt-0", ...props, children }),
|
|
4985
|
+
h3: ({ children, ...props }) => /* @__PURE__ */ jsx11(
|
|
5116
4986
|
"h3",
|
|
5117
4987
|
{
|
|
5118
4988
|
className: "mt-4 mb-1.5 text-og-md font-semibold tracking-tight text-og-fg first:mt-0",
|
|
@@ -5120,7 +4990,7 @@ var baseComponents = {
|
|
|
5120
4990
|
children
|
|
5121
4991
|
}
|
|
5122
4992
|
),
|
|
5123
|
-
h4: ({ children, ...props }) => /* @__PURE__ */
|
|
4993
|
+
h4: ({ children, ...props }) => /* @__PURE__ */ jsx11(
|
|
5124
4994
|
"h4",
|
|
5125
4995
|
{
|
|
5126
4996
|
className: "mt-4 mb-1.5 text-og-sm font-semibold uppercase tracking-[0.04em] text-og-fg-muted first:mt-0",
|
|
@@ -5128,10 +4998,10 @@ var baseComponents = {
|
|
|
5128
4998
|
children
|
|
5129
4999
|
}
|
|
5130
5000
|
),
|
|
5131
|
-
p: ({ children, ...props }) => /* @__PURE__ */
|
|
5132
|
-
strong: ({ children, ...props }) => /* @__PURE__ */
|
|
5133
|
-
em: ({ children, ...props }) => /* @__PURE__ */
|
|
5134
|
-
ul: ({ children, ...props }) => /* @__PURE__ */
|
|
5001
|
+
p: ({ children, ...props }) => /* @__PURE__ */ jsx11("p", { className: "my-2.5 leading-7 first:mt-0 last:mb-0", ...props, children }),
|
|
5002
|
+
strong: ({ children, ...props }) => /* @__PURE__ */ jsx11("strong", { className: "font-semibold text-og-fg", ...props, children }),
|
|
5003
|
+
em: ({ children, ...props }) => /* @__PURE__ */ jsx11("em", { className: "italic", ...props, children }),
|
|
5004
|
+
ul: ({ children, ...props }) => /* @__PURE__ */ jsx11(
|
|
5135
5005
|
"ul",
|
|
5136
5006
|
{
|
|
5137
5007
|
className: "my-2.5 ml-5 flex list-disc flex-col gap-1 marker:text-og-fg-subtle first:mt-0 last:mb-0",
|
|
@@ -5139,7 +5009,7 @@ var baseComponents = {
|
|
|
5139
5009
|
children
|
|
5140
5010
|
}
|
|
5141
5011
|
),
|
|
5142
|
-
ol: ({ children, ...props }) => /* @__PURE__ */
|
|
5012
|
+
ol: ({ children, ...props }) => /* @__PURE__ */ jsx11(
|
|
5143
5013
|
"ol",
|
|
5144
5014
|
{
|
|
5145
5015
|
className: "my-2.5 ml-5 flex list-decimal flex-col gap-1 marker:text-og-fg-subtle first:mt-0 last:mb-0",
|
|
@@ -5150,7 +5020,7 @@ var baseComponents = {
|
|
|
5150
5020
|
// GFM task-list items carry a leading checkbox <input>; `list-none` + a
|
|
5151
5021
|
// negative margin pull the checkbox back to the bullet column so it aligns
|
|
5152
5022
|
// with the text.
|
|
5153
|
-
li: ({ children, ...props }) => /* @__PURE__ */
|
|
5023
|
+
li: ({ children, ...props }) => /* @__PURE__ */ jsx11(
|
|
5154
5024
|
"li",
|
|
5155
5025
|
{
|
|
5156
5026
|
className: "leading-7 marker:text-og-fg-subtle [&>ul]:my-1 [&>ol]:my-1 [&:has(>input)]:list-none [&:has(>input)]:-ml-5",
|
|
@@ -5158,7 +5028,7 @@ var baseComponents = {
|
|
|
5158
5028
|
children
|
|
5159
5029
|
}
|
|
5160
5030
|
),
|
|
5161
|
-
input: ({ type, ...props }) => type === "checkbox" ? /* @__PURE__ */
|
|
5031
|
+
input: ({ type, ...props }) => type === "checkbox" ? /* @__PURE__ */ jsx11(
|
|
5162
5032
|
"input",
|
|
5163
5033
|
{
|
|
5164
5034
|
...props,
|
|
@@ -5166,8 +5036,8 @@ var baseComponents = {
|
|
|
5166
5036
|
disabled: true,
|
|
5167
5037
|
className: "mr-2 size-3.5 translate-y-[2px] cursor-default accent-og-accent align-baseline"
|
|
5168
5038
|
}
|
|
5169
|
-
) : /* @__PURE__ */
|
|
5170
|
-
blockquote: ({ children, ...props }) => /* @__PURE__ */
|
|
5039
|
+
) : /* @__PURE__ */ jsx11("input", { type, ...props }),
|
|
5040
|
+
blockquote: ({ children, ...props }) => /* @__PURE__ */ jsx11(
|
|
5171
5041
|
"blockquote",
|
|
5172
5042
|
{
|
|
5173
5043
|
className: "my-3 border-l-2 border-og-border-strong pl-3.5 text-og-fg-muted [&>p]:my-1.5 first:mt-0 last:mb-0",
|
|
@@ -5175,11 +5045,11 @@ var baseComponents = {
|
|
|
5175
5045
|
children
|
|
5176
5046
|
}
|
|
5177
5047
|
),
|
|
5178
|
-
hr: (props) => /* @__PURE__ */
|
|
5048
|
+
hr: (props) => /* @__PURE__ */ jsx11("hr", { className: "my-4 border-0 border-t border-og-border", ...props }),
|
|
5179
5049
|
// Inline `code` vs fenced code blocks. react-markdown v10 no longer passes an
|
|
5180
5050
|
// `inline` flag; a fenced block is a <code> whose parent is <pre> (styled by
|
|
5181
5051
|
// the `pre` renderer), so a `code` reaching here is treated as inline.
|
|
5182
|
-
code: ({ children, className: _className, ...props }) => /* @__PURE__ */
|
|
5052
|
+
code: ({ children, className: _className, ...props }) => /* @__PURE__ */ jsx11(
|
|
5183
5053
|
"code",
|
|
5184
5054
|
{
|
|
5185
5055
|
className: "rounded-og-xs bg-og-surface-1 px-1 py-0.5 font-og-mono text-og-sm text-og-fg",
|
|
@@ -5188,11 +5058,11 @@ var baseComponents = {
|
|
|
5188
5058
|
}
|
|
5189
5059
|
),
|
|
5190
5060
|
// Fenced code — quiet mono block (no card / no nested vertical scroll).
|
|
5191
|
-
pre: ({ children }) => /* @__PURE__ */
|
|
5061
|
+
pre: ({ children }) => /* @__PURE__ */ jsx11(MarkdownCodeBlock, { children }),
|
|
5192
5062
|
// Tables stay unboxed (hairline rules); hover reveals a TSV copy control.
|
|
5193
|
-
table: ({ children, ...props }) => /* @__PURE__ */
|
|
5194
|
-
thead: ({ children, ...props }) => /* @__PURE__ */
|
|
5195
|
-
th: ({ children, ...props }) => /* @__PURE__ */
|
|
5063
|
+
table: ({ children, ...props }) => /* @__PURE__ */ jsx11(MarkdownTable, { ...props, children }),
|
|
5064
|
+
thead: ({ children, ...props }) => /* @__PURE__ */ jsx11("thead", { ...props, children }),
|
|
5065
|
+
th: ({ children, ...props }) => /* @__PURE__ */ jsx11(
|
|
5196
5066
|
"th",
|
|
5197
5067
|
{
|
|
5198
5068
|
className: "border-b border-og-border px-0 py-1.5 pr-4 text-left font-medium text-og-fg first:pl-0",
|
|
@@ -5200,7 +5070,7 @@ var baseComponents = {
|
|
|
5200
5070
|
children
|
|
5201
5071
|
}
|
|
5202
5072
|
),
|
|
5203
|
-
td: ({ children, ...props }) => /* @__PURE__ */
|
|
5073
|
+
td: ({ children, ...props }) => /* @__PURE__ */ jsx11(
|
|
5204
5074
|
"td",
|
|
5205
5075
|
{
|
|
5206
5076
|
className: "border-b border-og-border/70 px-0 py-1.5 pr-4 align-top text-og-fg-muted [tr:last-child>&]:border-b-0",
|
|
@@ -5208,7 +5078,7 @@ var baseComponents = {
|
|
|
5208
5078
|
children
|
|
5209
5079
|
}
|
|
5210
5080
|
),
|
|
5211
|
-
img: ({ alt, src, ...props }) => src ? /* @__PURE__ */
|
|
5081
|
+
img: ({ alt, src, ...props }) => src ? /* @__PURE__ */ jsx11(
|
|
5212
5082
|
"img",
|
|
5213
5083
|
{
|
|
5214
5084
|
alt: alt ?? "",
|
|
@@ -5216,7 +5086,7 @@ var baseComponents = {
|
|
|
5216
5086
|
className: "my-3 max-w-full rounded-og-md border border-og-border",
|
|
5217
5087
|
...props
|
|
5218
5088
|
}
|
|
5219
|
-
) : alt ? /* @__PURE__ */
|
|
5089
|
+
) : alt ? /* @__PURE__ */ jsx11("span", { className: "text-og-fg-subtle", "aria-disabled": "true", children: alt }) : null
|
|
5220
5090
|
};
|
|
5221
5091
|
var MARKDOWN_LINK_CLASS = "break-words font-medium text-og-accent-strong underline-offset-2 hover:underline";
|
|
5222
5092
|
function markdownComponents(onSandboxFile) {
|
|
@@ -5225,10 +5095,10 @@ function markdownComponents(onSandboxFile) {
|
|
|
5225
5095
|
a: ({ children, href, ...props }) => {
|
|
5226
5096
|
const location = sandboxFileLocationFromHref(href);
|
|
5227
5097
|
if (location !== null) {
|
|
5228
|
-
return /* @__PURE__ */
|
|
5098
|
+
return /* @__PURE__ */ jsx11(SandboxMarkdownLink, { location, onSandboxFile, children });
|
|
5229
5099
|
}
|
|
5230
5100
|
if (isSandboxHref(href) || !href) {
|
|
5231
|
-
return /* @__PURE__ */
|
|
5101
|
+
return /* @__PURE__ */ jsx11(
|
|
5232
5102
|
"span",
|
|
5233
5103
|
{
|
|
5234
5104
|
className: "break-words font-medium text-og-fg-subtle underline decoration-dotted underline-offset-2",
|
|
@@ -5238,7 +5108,7 @@ function markdownComponents(onSandboxFile) {
|
|
|
5238
5108
|
}
|
|
5239
5109
|
);
|
|
5240
5110
|
}
|
|
5241
|
-
return /* @__PURE__ */
|
|
5111
|
+
return /* @__PURE__ */ jsx11(
|
|
5242
5112
|
"a",
|
|
5243
5113
|
{
|
|
5244
5114
|
className: MARKDOWN_LINK_CLASS,
|
|
@@ -5257,10 +5127,10 @@ function SandboxMarkdownLink({
|
|
|
5257
5127
|
onSandboxFile,
|
|
5258
5128
|
children
|
|
5259
5129
|
}) {
|
|
5260
|
-
const [state, setState] =
|
|
5130
|
+
const [state, setState] = useState9("idle");
|
|
5261
5131
|
const { path, line } = location;
|
|
5262
5132
|
if (!onSandboxFile) {
|
|
5263
|
-
return /* @__PURE__ */
|
|
5133
|
+
return /* @__PURE__ */ jsx11(
|
|
5264
5134
|
"span",
|
|
5265
5135
|
{
|
|
5266
5136
|
className: "break-words font-medium text-og-fg-subtle underline decoration-dotted underline-offset-2",
|
|
@@ -5271,7 +5141,7 @@ function SandboxMarkdownLink({
|
|
|
5271
5141
|
);
|
|
5272
5142
|
}
|
|
5273
5143
|
const idleTitle = line !== null ? `Open ${path} at line ${line}` : `Open ${path}`;
|
|
5274
|
-
return /* @__PURE__ */
|
|
5144
|
+
return /* @__PURE__ */ jsxs8(
|
|
5275
5145
|
"button",
|
|
5276
5146
|
{
|
|
5277
5147
|
type: "button",
|
|
@@ -5360,12 +5230,12 @@ function fenceLanguage(children) {
|
|
|
5360
5230
|
function MarkdownCodeBlock({ children }) {
|
|
5361
5231
|
const code = nodeText(children).replace(/\n$/, "");
|
|
5362
5232
|
const language = fenceLanguage(children);
|
|
5363
|
-
return /* @__PURE__ */
|
|
5364
|
-
/* @__PURE__ */
|
|
5365
|
-
language ? /* @__PURE__ */
|
|
5366
|
-
/* @__PURE__ */
|
|
5233
|
+
return /* @__PURE__ */ jsxs8("div", { className: "group/copy relative mt-3 first:mt-0", children: [
|
|
5234
|
+
/* @__PURE__ */ jsxs8("div", { className: "pointer-events-none absolute top-1.5 right-1.5 z-10 flex items-center gap-1", children: [
|
|
5235
|
+
language ? /* @__PURE__ */ jsx11("span", { className: "rounded px-1 py-0.5 font-og-mono text-[10px] uppercase tracking-wide text-og-fg-subtle/80 opacity-0 transition-opacity group-hover/copy:opacity-100 pointer-coarse:opacity-70", children: language }) : null,
|
|
5236
|
+
/* @__PURE__ */ jsx11("div", { className: "pointer-events-auto", children: /* @__PURE__ */ jsx11(CopyButton, { text: code, label: "Copy code", reveal: "group-hover" }) })
|
|
5367
5237
|
] }),
|
|
5368
|
-
/* @__PURE__ */
|
|
5238
|
+
/* @__PURE__ */ jsx11(
|
|
5369
5239
|
"pre",
|
|
5370
5240
|
{
|
|
5371
5241
|
tabIndex: 0,
|
|
@@ -5377,8 +5247,8 @@ function MarkdownCodeBlock({ children }) {
|
|
|
5377
5247
|
}
|
|
5378
5248
|
function MarkdownTable({ children, className, ...props }) {
|
|
5379
5249
|
const tableRef = useRef6(null);
|
|
5380
|
-
return /* @__PURE__ */
|
|
5381
|
-
/* @__PURE__ */
|
|
5250
|
+
return /* @__PURE__ */ jsxs8("div", { className: "group/copy relative mt-3 max-w-full first:mt-0", children: [
|
|
5251
|
+
/* @__PURE__ */ jsx11("div", { className: "pointer-events-none absolute top-0 right-0 z-10", children: /* @__PURE__ */ jsx11("div", { className: "pointer-events-auto", children: /* @__PURE__ */ jsx11(
|
|
5382
5252
|
CopyButton,
|
|
5383
5253
|
{
|
|
5384
5254
|
text: () => tableElementToTsv(tableRef.current),
|
|
@@ -5386,7 +5256,7 @@ function MarkdownTable({ children, className, ...props }) {
|
|
|
5386
5256
|
reveal: "group-hover"
|
|
5387
5257
|
}
|
|
5388
5258
|
) }) }),
|
|
5389
|
-
/* @__PURE__ */
|
|
5259
|
+
/* @__PURE__ */ jsx11("div", { className: "overflow-x-auto", tabIndex: 0, children: /* @__PURE__ */ jsx11(
|
|
5390
5260
|
"table",
|
|
5391
5261
|
{
|
|
5392
5262
|
ref: tableRef,
|
|
@@ -5401,7 +5271,7 @@ function MarkdownImpl({ children, className, streaming = false, onSandboxFile })
|
|
|
5401
5271
|
const revealRef = useRef6(null);
|
|
5402
5272
|
const bodyRef = useRef6(null);
|
|
5403
5273
|
const [, bump] = useReducer((n) => n + 1, 0);
|
|
5404
|
-
const [settling, setSettling] =
|
|
5274
|
+
const [settling, setSettling] = useState9(false);
|
|
5405
5275
|
const hadRevealRef = useRef6(false);
|
|
5406
5276
|
const now = typeof performance !== "undefined" ? performance.now() : Date.now();
|
|
5407
5277
|
const crystallize = (mutate) => {
|
|
@@ -5460,8 +5330,8 @@ function MarkdownImpl({ children, className, streaming = false, onSandboxFile })
|
|
|
5460
5330
|
return () => clearTimeout(timer);
|
|
5461
5331
|
}, [streaming]);
|
|
5462
5332
|
const parseText = streaming || revealActive ? softenStreamingMarkdown(children) : children;
|
|
5463
|
-
const components =
|
|
5464
|
-
return /* @__PURE__ */
|
|
5333
|
+
const components = useMemo3(() => markdownComponents(onSandboxFile), [onSandboxFile]);
|
|
5334
|
+
return /* @__PURE__ */ jsx11(TooltipProvider, { delayDuration: 400, children: /* @__PURE__ */ jsx11(
|
|
5465
5335
|
"div",
|
|
5466
5336
|
{
|
|
5467
5337
|
ref: bodyRef,
|
|
@@ -5470,7 +5340,7 @@ function MarkdownImpl({ children, className, streaming = false, onSandboxFile })
|
|
|
5470
5340
|
settling && "og-markdown-settle",
|
|
5471
5341
|
className
|
|
5472
5342
|
),
|
|
5473
|
-
children: /* @__PURE__ */
|
|
5343
|
+
children: /* @__PURE__ */ jsx11(
|
|
5474
5344
|
ReactMarkdown,
|
|
5475
5345
|
{
|
|
5476
5346
|
remarkPlugins: [remarkGfm],
|
|
@@ -5491,28 +5361,28 @@ import { lazy as lazy3, Suspense as Suspense3, useLayoutEffect, useRef as useRef
|
|
|
5491
5361
|
import { jsx as rowJsx, jsxs as rowJsxs } from "react/jsx-runtime";
|
|
5492
5362
|
|
|
5493
5363
|
// src/timeline/entrance.tsx
|
|
5494
|
-
import { createContext as
|
|
5495
|
-
var EntranceAnimationContext =
|
|
5364
|
+
import { createContext as createContext4, useContext as useContext4, useRef as useRef7 } from "react";
|
|
5365
|
+
var EntranceAnimationContext = createContext4(true);
|
|
5496
5366
|
var EntranceAnimationProvider = EntranceAnimationContext.Provider;
|
|
5497
5367
|
function useEntranceAnimationLive() {
|
|
5498
|
-
return
|
|
5368
|
+
return useContext4(EntranceAnimationContext);
|
|
5499
5369
|
}
|
|
5500
5370
|
function useEntranceAnimation() {
|
|
5501
|
-
const enabled =
|
|
5371
|
+
const enabled = useContext4(EntranceAnimationContext);
|
|
5502
5372
|
const captured = useRef7(enabled);
|
|
5503
5373
|
return captured.current;
|
|
5504
5374
|
}
|
|
5505
5375
|
|
|
5506
5376
|
// src/timeline/seen-activity-ids.ts
|
|
5507
|
-
import { createContext as
|
|
5508
|
-
var SeenActivityIdsContext =
|
|
5377
|
+
import { createContext as createContext5, useContext as useContext5 } from "react";
|
|
5378
|
+
var SeenActivityIdsContext = createContext5(null);
|
|
5509
5379
|
var SeenActivityIdsProvider = SeenActivityIdsContext.Provider;
|
|
5510
5380
|
function useSeenActivityIds() {
|
|
5511
|
-
return
|
|
5381
|
+
return useContext5(SeenActivityIdsContext);
|
|
5512
5382
|
}
|
|
5513
5383
|
|
|
5514
5384
|
// src/timeline/activity-rail.tsx
|
|
5515
|
-
import { Fragment as
|
|
5385
|
+
import { Fragment as Fragment4, jsx as jsx12, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
5516
5386
|
var LazyFleetDecisionRow = lazy3(() => import("./fleet-decision-row-GGCAT4E4.js"));
|
|
5517
5387
|
var LazyPlatformActivityRow = lazy3(() => import("./platform-activity-row-BJHUHXAT.js"));
|
|
5518
5388
|
function familyOf(item) {
|
|
@@ -5556,7 +5426,7 @@ function ActivityRail({
|
|
|
5556
5426
|
}
|
|
5557
5427
|
}
|
|
5558
5428
|
});
|
|
5559
|
-
return /* @__PURE__ */
|
|
5429
|
+
return /* @__PURE__ */ jsx12(
|
|
5560
5430
|
"div",
|
|
5561
5431
|
{
|
|
5562
5432
|
className: cn(
|
|
@@ -5580,7 +5450,7 @@ function ActivityRail({
|
|
|
5580
5450
|
loadRetainedScreenshot,
|
|
5581
5451
|
loadRetainedArtifact
|
|
5582
5452
|
);
|
|
5583
|
-
return /* @__PURE__ */
|
|
5453
|
+
return /* @__PURE__ */ jsx12(
|
|
5584
5454
|
"div",
|
|
5585
5455
|
{
|
|
5586
5456
|
"data-og-timeline-row-anchor": "",
|
|
@@ -5603,7 +5473,7 @@ function renderActivity(item, toolRegistry, onOpenSession, onMemoryClick, loadRe
|
|
|
5603
5473
|
case "reasoning":
|
|
5604
5474
|
case "sandbox":
|
|
5605
5475
|
case "startup-phase":
|
|
5606
|
-
return /* @__PURE__ */
|
|
5476
|
+
return /* @__PURE__ */ jsx12(Suspense3, { fallback: null, children: /* @__PURE__ */ jsx12(
|
|
5607
5477
|
LazyPlatformActivityRow,
|
|
5608
5478
|
{
|
|
5609
5479
|
item,
|
|
@@ -5619,7 +5489,7 @@ function renderActivity(item, toolRegistry, onOpenSession, onMemoryClick, loadRe
|
|
|
5619
5489
|
) });
|
|
5620
5490
|
case "tool-call": {
|
|
5621
5491
|
const Renderer = toolRegistry.resolve(item);
|
|
5622
|
-
return /* @__PURE__ */
|
|
5492
|
+
return /* @__PURE__ */ jsx12(ToolCallTruncationProvider, { value: item.truncation ?? null, children: /* @__PURE__ */ jsx12(
|
|
5623
5493
|
Renderer,
|
|
5624
5494
|
{
|
|
5625
5495
|
item,
|
|
@@ -5629,11 +5499,11 @@ function renderActivity(item, toolRegistry, onOpenSession, onMemoryClick, loadRe
|
|
|
5629
5499
|
) });
|
|
5630
5500
|
}
|
|
5631
5501
|
case "worker":
|
|
5632
|
-
return /* @__PURE__ */
|
|
5502
|
+
return /* @__PURE__ */ jsx12(WorkerRow, { item, onOpenSession });
|
|
5633
5503
|
case "memory":
|
|
5634
|
-
return /* @__PURE__ */
|
|
5504
|
+
return /* @__PURE__ */ jsx12(MemoryRow, { item, onMemoryClick });
|
|
5635
5505
|
case "fleet-decision":
|
|
5636
|
-
return /* @__PURE__ */
|
|
5506
|
+
return /* @__PURE__ */ jsx12(Suspense3, { fallback: null, children: /* @__PURE__ */ jsx12(
|
|
5637
5507
|
LazyFleetDecisionRow,
|
|
5638
5508
|
{
|
|
5639
5509
|
item,
|
|
@@ -5663,37 +5533,37 @@ function MemoryRow({
|
|
|
5663
5533
|
const superseded = corrected && Boolean(item.replacementPreview);
|
|
5664
5534
|
const targetId = corrected ? item.replacementMemoryId ?? item.memoryId : item.memoryId;
|
|
5665
5535
|
const deepLink = Boolean(onMemoryClick);
|
|
5666
|
-
return /* @__PURE__ */
|
|
5536
|
+
return /* @__PURE__ */ jsxs9(
|
|
5667
5537
|
ActivityDisclosure,
|
|
5668
5538
|
{
|
|
5669
|
-
icon: /* @__PURE__ */
|
|
5539
|
+
icon: /* @__PURE__ */ jsx12(BrainCircuitIcon2, { className: "size-3.5" }),
|
|
5670
5540
|
iconTone: "muted",
|
|
5671
|
-
title: /* @__PURE__ */
|
|
5672
|
-
/* @__PURE__ */
|
|
5673
|
-
kindLabel ? /* @__PURE__ */
|
|
5541
|
+
title: /* @__PURE__ */ jsxs9("span", { className: "inline-flex min-w-0 items-center gap-2", children: [
|
|
5542
|
+
/* @__PURE__ */ jsx12("span", { className: "shrink-0", children: corrected ? "Updated memory" : "Saved to memory" }),
|
|
5543
|
+
kindLabel ? /* @__PURE__ */ jsx12("span", { className: "shrink-0 rounded-og-xs bg-og-surface-2 px-1.5 py-px text-og-xs font-normal leading-tight text-og-fg-subtle", children: kindLabel }) : null
|
|
5674
5544
|
] }),
|
|
5675
5545
|
preview: superseded ? item.replacementPreview : item.preview,
|
|
5676
5546
|
children: [
|
|
5677
5547
|
superseded ? (
|
|
5678
5548
|
// The correction as a before → after: the old memory struck through and
|
|
5679
5549
|
// dimmed, the new text in the ordinary body weight below it.
|
|
5680
|
-
/* @__PURE__ */
|
|
5681
|
-
/* @__PURE__ */
|
|
5682
|
-
/* @__PURE__ */
|
|
5550
|
+
/* @__PURE__ */ jsxs9("div", { className: "flex flex-col gap-1.5", children: [
|
|
5551
|
+
/* @__PURE__ */ jsx12("p", { className: "whitespace-pre-wrap text-og-sm leading-6 text-og-fg-subtle line-through", children: item.preview }),
|
|
5552
|
+
/* @__PURE__ */ jsx12("p", { className: "whitespace-pre-wrap text-og-base leading-6 text-og-fg-muted", children: item.replacementPreview })
|
|
5683
5553
|
] })
|
|
5684
5554
|
) : corrected && item.action === "updated" ? (
|
|
5685
5555
|
// Edited in place, no replacement record: the memory is still live, so
|
|
5686
5556
|
// show its current text — NOT the archived treatment.
|
|
5687
|
-
/* @__PURE__ */
|
|
5688
|
-
/* @__PURE__ */
|
|
5689
|
-
/* @__PURE__ */
|
|
5557
|
+
/* @__PURE__ */ jsxs9(Fragment4, { children: [
|
|
5558
|
+
/* @__PURE__ */ jsx12("p", { className: "whitespace-pre-wrap text-og-base leading-6 text-og-fg-muted", children: item.preview }),
|
|
5559
|
+
/* @__PURE__ */ jsx12(BodyNote, { tone: "muted", children: "Updated in place." })
|
|
5690
5560
|
] })
|
|
5691
5561
|
) : corrected ? (
|
|
5692
5562
|
// A correction with no replacement (and not an in-place update) archived the record.
|
|
5693
|
-
/* @__PURE__ */
|
|
5694
|
-
) : /* @__PURE__ */
|
|
5695
|
-
item.deduped ? /* @__PURE__ */
|
|
5696
|
-
deepLink ? /* @__PURE__ */
|
|
5563
|
+
/* @__PURE__ */ jsx12(BodyNote, { tone: "muted", children: "Archived." })
|
|
5564
|
+
) : /* @__PURE__ */ jsx12("p", { className: "whitespace-pre-wrap text-og-base leading-6 text-og-fg-muted", children: item.preview }),
|
|
5565
|
+
item.deduped ? /* @__PURE__ */ jsx12(BodyNote, { tone: "muted", children: "Merged into an existing memory." }) : null,
|
|
5566
|
+
deepLink ? /* @__PURE__ */ jsxs9(
|
|
5697
5567
|
"button",
|
|
5698
5568
|
{
|
|
5699
5569
|
type: "button",
|
|
@@ -5704,7 +5574,7 @@ function MemoryRow({
|
|
|
5704
5574
|
),
|
|
5705
5575
|
children: [
|
|
5706
5576
|
"View in memory",
|
|
5707
|
-
/* @__PURE__ */
|
|
5577
|
+
/* @__PURE__ */ jsx12(ArrowRightIcon, { className: "size-3.5 transition-transform duration-150 group-hover/memlink:translate-x-0.5" })
|
|
5708
5578
|
]
|
|
5709
5579
|
}
|
|
5710
5580
|
) : null
|
|
@@ -5722,11 +5592,11 @@ function WorkerRow({
|
|
|
5722
5592
|
const title = item.action === "spawn" ? running ? "Spawning worker" : failed ? "Worker spawn failed" : cancelled ? "Worker interrupted" : "Worker spawned" : running ? "Messaging worker" : failed ? "Worker message failed" : cancelled ? "Worker interrupted" : "Worker messaged";
|
|
5723
5593
|
const sessionId = item.workerSessionId;
|
|
5724
5594
|
const deepLink = Boolean(sessionId) && Boolean(onOpenSession) && !failed && !cancelled;
|
|
5725
|
-
const inner = /* @__PURE__ */
|
|
5726
|
-
/* @__PURE__ */
|
|
5727
|
-
/* @__PURE__ */
|
|
5728
|
-
/* @__PURE__ */
|
|
5729
|
-
/* @__PURE__ */
|
|
5595
|
+
const inner = /* @__PURE__ */ jsxs9(Fragment4, { children: [
|
|
5596
|
+
/* @__PURE__ */ jsx12("span", { className: "size-3.5 shrink-0", "aria-hidden": true }),
|
|
5597
|
+
/* @__PURE__ */ jsx12("span", { className: cn("mt-px shrink-0", failed ? "text-og-status-failed" : "text-og-accent"), children: /* @__PURE__ */ jsx12(BotIcon2, { className: "size-3.5" }) }),
|
|
5598
|
+
/* @__PURE__ */ jsxs9("div", { className: "min-w-0 flex-1", children: [
|
|
5599
|
+
/* @__PURE__ */ jsx12(
|
|
5730
5600
|
"span",
|
|
5731
5601
|
{
|
|
5732
5602
|
className: cn(
|
|
@@ -5736,16 +5606,16 @@ function WorkerRow({
|
|
|
5736
5606
|
children: title
|
|
5737
5607
|
}
|
|
5738
5608
|
),
|
|
5739
|
-
item.prompt ? /* @__PURE__ */
|
|
5740
|
-
failed && item.failure ? /* @__PURE__ */
|
|
5741
|
-
/* @__PURE__ */
|
|
5742
|
-
/* @__PURE__ */
|
|
5609
|
+
item.prompt ? /* @__PURE__ */ jsx12("p", { className: "mt-0.5 truncate text-og-sm text-og-fg-muted", children: truncate(item.prompt, 140) }) : null,
|
|
5610
|
+
failed && item.failure ? /* @__PURE__ */ jsxs9("div", { className: "mt-1 min-w-0 text-og-sm text-og-status-failed", children: [
|
|
5611
|
+
/* @__PURE__ */ jsx12("p", { className: "font-og-mono text-og-xs", children: item.failure.code }),
|
|
5612
|
+
/* @__PURE__ */ jsx12("p", { className: "mt-0.5 break-words", children: item.failure.message })
|
|
5743
5613
|
] }) : null
|
|
5744
5614
|
] }),
|
|
5745
|
-
failed ? /* @__PURE__ */
|
|
5746
|
-
/* @__PURE__ */
|
|
5615
|
+
failed ? /* @__PURE__ */ jsxs9("span", { className: "inline-flex shrink-0 self-center items-center gap-1.5 font-og-mono text-og-xs leading-none text-og-status-failed", children: [
|
|
5616
|
+
/* @__PURE__ */ jsx12("span", { className: "size-1.5 rounded-full bg-og-status-failed" }),
|
|
5747
5617
|
"failed"
|
|
5748
|
-
] }) : cancelled ? /* @__PURE__ */
|
|
5618
|
+
] }) : cancelled ? /* @__PURE__ */ jsx12("span", { className: "og-cancelled-chip shrink-0 self-center font-og-mono text-og-xs leading-none text-og-fg-subtle", children: "interrupted" }) : deepLink ? /* @__PURE__ */ jsx12(
|
|
5749
5619
|
ArrowRightIcon,
|
|
5750
5620
|
{
|
|
5751
5621
|
"aria-hidden": true,
|
|
@@ -5754,7 +5624,7 @@ function WorkerRow({
|
|
|
5754
5624
|
) : null
|
|
5755
5625
|
] });
|
|
5756
5626
|
if (deepLink && sessionId && onOpenSession) {
|
|
5757
|
-
return /* @__PURE__ */
|
|
5627
|
+
return /* @__PURE__ */ jsx12(
|
|
5758
5628
|
"button",
|
|
5759
5629
|
{
|
|
5760
5630
|
type: "button",
|
|
@@ -5768,28 +5638,28 @@ function WorkerRow({
|
|
|
5768
5638
|
}
|
|
5769
5639
|
);
|
|
5770
5640
|
}
|
|
5771
|
-
return /* @__PURE__ */
|
|
5641
|
+
return /* @__PURE__ */ jsx12("div", { className: "flex items-start gap-2 px-1.5 py-1.5", children: inner });
|
|
5772
5642
|
}
|
|
5773
5643
|
|
|
5774
5644
|
// src/timeline/turn-summary.tsx
|
|
5775
5645
|
import { ChevronRightIcon as ChevronRightIcon2, CircleSlashIcon, TriangleAlertIcon as TriangleAlertIcon2 } from "lucide-react";
|
|
5776
5646
|
import {
|
|
5777
5647
|
Component,
|
|
5778
|
-
createContext as
|
|
5779
|
-
useContext as
|
|
5648
|
+
createContext as createContext7,
|
|
5649
|
+
useContext as useContext7,
|
|
5780
5650
|
useEffect as useEffect9,
|
|
5781
|
-
useMemo as
|
|
5651
|
+
useMemo as useMemo4,
|
|
5782
5652
|
useRef as useRef9,
|
|
5783
|
-
useState as
|
|
5653
|
+
useState as useState10
|
|
5784
5654
|
} from "react";
|
|
5785
5655
|
import { Collapsible } from "radix-ui";
|
|
5786
5656
|
|
|
5787
5657
|
// src/timeline/fold-memory.ts
|
|
5788
|
-
import { createContext as
|
|
5789
|
-
var FoldMemoryContext =
|
|
5658
|
+
import { createContext as createContext6, useContext as useContext6 } from "react";
|
|
5659
|
+
var FoldMemoryContext = createContext6(null);
|
|
5790
5660
|
var FoldMemoryProvider = FoldMemoryContext.Provider;
|
|
5791
5661
|
function useFoldMemory() {
|
|
5792
|
-
return
|
|
5662
|
+
return useContext6(FoldMemoryContext);
|
|
5793
5663
|
}
|
|
5794
5664
|
function inheritFoldRestingState(memory, targetKey, sourceKeys) {
|
|
5795
5665
|
if (memory.has(targetKey) || sourceKeys.length !== 1) {
|
|
@@ -5802,10 +5672,10 @@ function inheritFoldRestingState(memory, targetKey, sourceKeys) {
|
|
|
5802
5672
|
}
|
|
5803
5673
|
|
|
5804
5674
|
// src/timeline/turn-summary.tsx
|
|
5805
|
-
import { Fragment as
|
|
5806
|
-
var TurnSettleChromeContext =
|
|
5675
|
+
import { Fragment as Fragment5, jsx as jsx13, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
5676
|
+
var TurnSettleChromeContext = createContext7(false);
|
|
5807
5677
|
function useTurnSettleOpen() {
|
|
5808
|
-
return
|
|
5678
|
+
return useContext7(TurnSettleChromeContext);
|
|
5809
5679
|
}
|
|
5810
5680
|
var BUILT_IN_TURN_SUMMARY_FACET_IDS = [
|
|
5811
5681
|
"steps",
|
|
@@ -5838,11 +5708,11 @@ function TurnSummary({
|
|
|
5838
5708
|
const remembered = foldKey !== void 0 ? foldMemory?.get(foldKey) : void 0;
|
|
5839
5709
|
const restingOpen = remembered === "closed" ? false : remembered === "open" ? true : defaultOpen ?? forcedDefaultOpen ?? false;
|
|
5840
5710
|
const initialSettle = Boolean(settleFold) && !restingOpen && remembered === void 0;
|
|
5841
|
-
const [settling, setSettling] =
|
|
5842
|
-
const [open, setOpen] =
|
|
5843
|
-
const [settlePhase, setSettlePhase] =
|
|
5844
|
-
const [nestSuppressLatch, setNestSuppressLatch] =
|
|
5845
|
-
const [expandReady, setExpandReady] =
|
|
5711
|
+
const [settling, setSettling] = useState10(initialSettle);
|
|
5712
|
+
const [open, setOpen] = useState10(initialSettle ? true : restingOpen);
|
|
5713
|
+
const [settlePhase, setSettlePhase] = useState10(initialSettle);
|
|
5714
|
+
const [nestSuppressLatch, setNestSuppressLatch] = useState10(initialSettle);
|
|
5715
|
+
const [expandReady, setExpandReady] = useState10(!initialSettle);
|
|
5846
5716
|
const settleTimerRef = useRef9(null);
|
|
5847
5717
|
const settleCloseDoneRef = useRef9(null);
|
|
5848
5718
|
const nestLatchClearRef = useRef9(null);
|
|
@@ -5940,10 +5810,10 @@ function TurnSummary({
|
|
|
5940
5810
|
}
|
|
5941
5811
|
};
|
|
5942
5812
|
const enter = useEntranceAnimation();
|
|
5943
|
-
const [allowEnterAnimation] =
|
|
5813
|
+
const [allowEnterAnimation] = useState10(
|
|
5944
5814
|
() => Boolean(enter && !bare && !initialSettle && !restingOpen)
|
|
5945
5815
|
);
|
|
5946
|
-
const context =
|
|
5816
|
+
const context = useMemo4(
|
|
5947
5817
|
() => createTurnSummaryContext(
|
|
5948
5818
|
items,
|
|
5949
5819
|
outcome,
|
|
@@ -5953,11 +5823,11 @@ function TurnSummary({
|
|
|
5953
5823
|
),
|
|
5954
5824
|
[items, outcome, failureText, durationMs, settling, settlePhase, contextCompactionCount]
|
|
5955
5825
|
);
|
|
5956
|
-
const facetDefinitions =
|
|
5826
|
+
const facetDefinitions = useMemo4(
|
|
5957
5827
|
() => resolveTurnSummaryFacets(facetConfiguration),
|
|
5958
5828
|
[facetConfiguration]
|
|
5959
5829
|
);
|
|
5960
|
-
const facets =
|
|
5830
|
+
const facets = useMemo4(
|
|
5961
5831
|
() => facetDefinitions.flatMap((facet) => {
|
|
5962
5832
|
try {
|
|
5963
5833
|
const result = facet.summarize(context);
|
|
@@ -5973,15 +5843,15 @@ function TurnSummary({
|
|
|
5973
5843
|
const copyable = Boolean(
|
|
5974
5844
|
copyText && copyText.trim().length > 0 && !bare && !liveShell && !open && !settlePhase
|
|
5975
5845
|
);
|
|
5976
|
-
return /* @__PURE__ */
|
|
5977
|
-
/* @__PURE__ */
|
|
5846
|
+
return /* @__PURE__ */ jsx13(TurnSettleChromeContext.Provider, { value: settleChrome, children: /* @__PURE__ */ jsxs10("div", { className: cn(copyable && "group/copy relative"), children: [
|
|
5847
|
+
/* @__PURE__ */ jsxs10(
|
|
5978
5848
|
Collapsible.Root,
|
|
5979
5849
|
{
|
|
5980
5850
|
open,
|
|
5981
5851
|
onOpenChange,
|
|
5982
5852
|
className: allowEnterAnimation && !liveShell ? "animate-og-enter" : void 0,
|
|
5983
5853
|
children: [
|
|
5984
|
-
/* @__PURE__ */
|
|
5854
|
+
/* @__PURE__ */ jsxs10(
|
|
5985
5855
|
Collapsible.Trigger,
|
|
5986
5856
|
{
|
|
5987
5857
|
className: cn(
|
|
@@ -6004,7 +5874,7 @@ function TurnSummary({
|
|
|
6004
5874
|
liveShell && "text-og-fg-subtle"
|
|
6005
5875
|
),
|
|
6006
5876
|
children: [
|
|
6007
|
-
/* @__PURE__ */
|
|
5877
|
+
/* @__PURE__ */ jsx13(
|
|
6008
5878
|
ChevronRightIcon2,
|
|
6009
5879
|
{
|
|
6010
5880
|
className: cn(
|
|
@@ -6013,7 +5883,7 @@ function TurnSummary({
|
|
|
6013
5883
|
)
|
|
6014
5884
|
}
|
|
6015
5885
|
),
|
|
6016
|
-
outcome === "complete" ? null : /* @__PURE__ */
|
|
5886
|
+
outcome === "complete" ? null : /* @__PURE__ */ jsx13(
|
|
6017
5887
|
"span",
|
|
6018
5888
|
{
|
|
6019
5889
|
className: cn(
|
|
@@ -6021,30 +5891,30 @@ function TurnSummary({
|
|
|
6021
5891
|
bare ? "size-3.5" : "size-5",
|
|
6022
5892
|
outcome === "failed" ? "text-og-status-failed" : "text-og-fg-subtle"
|
|
6023
5893
|
),
|
|
6024
|
-
children: outcome === "failed" ? /* @__PURE__ */
|
|
5894
|
+
children: outcome === "failed" ? /* @__PURE__ */ jsx13(TriangleAlertIcon2, { className: "size-3" }) : outcome === "cancelled" ? /* @__PURE__ */ jsx13(CircleSlashIcon, { className: "size-3" }) : /* @__PURE__ */ jsx13("span", { className: "size-1.5 animate-og-pulse rounded-full bg-og-fg-subtle" })
|
|
6025
5895
|
}
|
|
6026
5896
|
),
|
|
6027
|
-
/* @__PURE__ */
|
|
5897
|
+
/* @__PURE__ */ jsxs10(
|
|
6028
5898
|
"span",
|
|
6029
5899
|
{
|
|
6030
5900
|
className: cn("min-w-0 flex-1 truncate", bare ? "text-og-sm" : "text-og-fg-muted"),
|
|
6031
5901
|
children: [
|
|
6032
|
-
facets.map(({ facet, result }, index) => /* @__PURE__ */
|
|
5902
|
+
facets.map(({ facet, result }, index) => /* @__PURE__ */ jsx13(FacetRenderBoundary, { children: /* @__PURE__ */ jsxs10(Fragment5, { children: [
|
|
6033
5903
|
index > 0 ? " \xB7 " : null,
|
|
6034
|
-
/* @__PURE__ */
|
|
6035
|
-
result.icon ? /* @__PURE__ */
|
|
5904
|
+
/* @__PURE__ */ jsxs10("span", { "aria-label": result.ariaLabel, title: result.title, children: [
|
|
5905
|
+
result.icon ? /* @__PURE__ */ jsx13("span", { "aria-hidden": true, className: "mr-1 inline-flex align-[-0.125em]", children: result.icon }) : null,
|
|
6036
5906
|
result.content
|
|
6037
5907
|
] })
|
|
6038
5908
|
] }) }, facet.id)),
|
|
6039
|
-
outcome === "failed" && failureText ? /* @__PURE__ */
|
|
5909
|
+
outcome === "failed" && failureText ? /* @__PURE__ */ jsxs10("span", { className: "text-og-status-failed", children: [
|
|
6040
5910
|
" \xB7 ",
|
|
6041
5911
|
failureText
|
|
6042
5912
|
] }) : null,
|
|
6043
|
-
outcome === "cancelled" ? /* @__PURE__ */
|
|
5913
|
+
outcome === "cancelled" ? /* @__PURE__ */ jsx13("span", { className: "text-og-fg-subtle", children: " \xB7 interrupted" }) : null
|
|
6044
5914
|
]
|
|
6045
5915
|
}
|
|
6046
5916
|
),
|
|
6047
|
-
/* @__PURE__ */
|
|
5917
|
+
/* @__PURE__ */ jsx13(
|
|
6048
5918
|
"span",
|
|
6049
5919
|
{
|
|
6050
5920
|
"aria-hidden": true,
|
|
@@ -6061,7 +5931,7 @@ function TurnSummary({
|
|
|
6061
5931
|
]
|
|
6062
5932
|
}
|
|
6063
5933
|
),
|
|
6064
|
-
/* @__PURE__ */
|
|
5934
|
+
/* @__PURE__ */ jsx13(
|
|
6065
5935
|
Collapsible.Content,
|
|
6066
5936
|
{
|
|
6067
5937
|
...nestSuppressLatch ? { forceMount: true } : {},
|
|
@@ -6072,13 +5942,13 @@ function TurnSummary({
|
|
|
6072
5942
|
// Auto-close: slow settle. Manual close (settlePhase cleared): fast.
|
|
6073
5943
|
settlePhase ? "data-[state=closed]:animate-og-settle-collapse" : "data-[state=closed]:animate-og-collapse"
|
|
6074
5944
|
),
|
|
6075
|
-
children: /* @__PURE__ */
|
|
5945
|
+
children: /* @__PURE__ */ jsx13("div", { className: bare ? "pt-1 pl-5" : "pt-2", children })
|
|
6076
5946
|
}
|
|
6077
5947
|
)
|
|
6078
5948
|
]
|
|
6079
5949
|
}
|
|
6080
5950
|
),
|
|
6081
|
-
copyable ? /* @__PURE__ */
|
|
5951
|
+
copyable ? /* @__PURE__ */ jsx13("div", { className: "pointer-events-none absolute top-1.5 right-0 z-10", children: /* @__PURE__ */ jsx13("div", { className: "pointer-events-auto", children: /* @__PURE__ */ jsx13(CopyButton, { text: copyText, label: "Copy turn", reveal: "group-hover" }) }) }) : null
|
|
6082
5952
|
] }) });
|
|
6083
5953
|
}
|
|
6084
5954
|
function createTurnSummaryContext(items, outcome, failureText, durationMs, contextCompactionCount) {
|
|
@@ -6232,15 +6102,15 @@ function formatDurationFacet(durationMs) {
|
|
|
6232
6102
|
|
|
6233
6103
|
// src/components/user-message-body.tsx
|
|
6234
6104
|
import {
|
|
6235
|
-
createContext as
|
|
6236
|
-
useCallback
|
|
6237
|
-
useContext as
|
|
6105
|
+
createContext as createContext8,
|
|
6106
|
+
useCallback,
|
|
6107
|
+
useContext as useContext8,
|
|
6238
6108
|
useId as useId3,
|
|
6239
6109
|
useLayoutEffect as useLayoutEffect2,
|
|
6240
6110
|
useRef as useRef10,
|
|
6241
|
-
useState as
|
|
6111
|
+
useState as useState11
|
|
6242
6112
|
} from "react";
|
|
6243
|
-
import { jsx as
|
|
6113
|
+
import { jsx as jsx14, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
6244
6114
|
var FALLBACK_LINE_THRESHOLD = 12;
|
|
6245
6115
|
var FALLBACK_TEXT_THRESHOLD = 900;
|
|
6246
6116
|
var FALLBACK_UNBROKEN_THRESHOLD = 260;
|
|
@@ -6378,20 +6248,20 @@ function observeSharedResize(element, callback) {
|
|
|
6378
6248
|
}
|
|
6379
6249
|
};
|
|
6380
6250
|
}
|
|
6381
|
-
var UserMessageDisclosureContext =
|
|
6251
|
+
var UserMessageDisclosureContext = createContext8(null);
|
|
6382
6252
|
function UserMessageDisclosureProvider({
|
|
6383
6253
|
value,
|
|
6384
6254
|
children
|
|
6385
6255
|
}) {
|
|
6386
|
-
return /* @__PURE__ */
|
|
6256
|
+
return /* @__PURE__ */ jsx14(UserMessageDisclosureContext.Provider, { value, children });
|
|
6387
6257
|
}
|
|
6388
6258
|
function userMessageLikelyNeedsDisclosure(text) {
|
|
6389
6259
|
const lines = text.split(/\r?\n/);
|
|
6390
6260
|
return lines.length > FALLBACK_LINE_THRESHOLD || text.length > FALLBACK_TEXT_THRESHOLD || lines.some((line) => line.length > FALLBACK_UNBROKEN_THRESHOLD);
|
|
6391
6261
|
}
|
|
6392
6262
|
function UserMessageBody({ messageId, text, children, className }) {
|
|
6393
|
-
const disclosure =
|
|
6394
|
-
const [expanded, setExpanded] =
|
|
6263
|
+
const disclosure = useContext8(UserMessageDisclosureContext);
|
|
6264
|
+
const [expanded, setExpanded] = useState11(
|
|
6395
6265
|
() => disclosure?.expandedByMessageId.get(messageId) ?? false
|
|
6396
6266
|
);
|
|
6397
6267
|
const collapsibleRef = useRef10(userMessageLikelyNeedsDisclosure(text));
|
|
@@ -6409,7 +6279,7 @@ function UserMessageBody({ messageId, text, children, className }) {
|
|
|
6409
6279
|
const contentId = `og-user-message-${useId3().replace(/:/g, "")}`;
|
|
6410
6280
|
const collapsible = collapsibleRef.current;
|
|
6411
6281
|
const collapsed = collapsible && !expanded;
|
|
6412
|
-
const syncDisclosurePresentation =
|
|
6282
|
+
const syncDisclosurePresentation = useCallback((nextCollapsible) => {
|
|
6413
6283
|
collapsibleRef.current = nextCollapsible;
|
|
6414
6284
|
const nextCollapsed = nextCollapsible && !expandedRef.current;
|
|
6415
6285
|
const clip = clipRef.current;
|
|
@@ -6419,7 +6289,7 @@ function UserMessageBody({ messageId, text, children, className }) {
|
|
|
6419
6289
|
if (fadeRef.current) fadeRef.current.hidden = !nextCollapsed;
|
|
6420
6290
|
if (disclosureControlRef.current) disclosureControlRef.current.hidden = !nextCollapsible;
|
|
6421
6291
|
}, []);
|
|
6422
|
-
const restoreManagedInertDescendants =
|
|
6292
|
+
const restoreManagedInertDescendants = useCallback(() => {
|
|
6423
6293
|
for (const descendant of managedInertDescendantsRef.current) {
|
|
6424
6294
|
if (descendant.hasAttribute("data-og-user-message-managed-inert")) {
|
|
6425
6295
|
descendant.removeAttribute("inert");
|
|
@@ -6428,7 +6298,7 @@ function UserMessageBody({ messageId, text, children, className }) {
|
|
|
6428
6298
|
}
|
|
6429
6299
|
managedInertDescendantsRef.current.clear();
|
|
6430
6300
|
}, []);
|
|
6431
|
-
const syncCollapsedInteractivity =
|
|
6301
|
+
const syncCollapsedInteractivity = useCallback(() => {
|
|
6432
6302
|
restoreManagedInertDescendants();
|
|
6433
6303
|
if (!collapsibleRef.current || expandedRef.current) {
|
|
6434
6304
|
return;
|
|
@@ -6455,7 +6325,7 @@ function UserMessageBody({ messageId, text, children, className }) {
|
|
|
6455
6325
|
managedInertDescendantsRef.current.add(descendant);
|
|
6456
6326
|
}
|
|
6457
6327
|
}, [restoreManagedInertDescendants]);
|
|
6458
|
-
const readCollapsible =
|
|
6328
|
+
const readCollapsible = useCallback(() => {
|
|
6459
6329
|
const content = contentRef.current;
|
|
6460
6330
|
const threshold = thresholdRef.current;
|
|
6461
6331
|
if (!content || !threshold) {
|
|
@@ -6468,7 +6338,7 @@ function UserMessageBody({ messageId, text, children, className }) {
|
|
|
6468
6338
|
);
|
|
6469
6339
|
return renderedHeight > 0 && collapseHeight > 0 ? renderedHeight > collapseHeight + 1 : userMessageLikelyNeedsDisclosure(text);
|
|
6470
6340
|
}, [text]);
|
|
6471
|
-
const measure =
|
|
6341
|
+
const measure = useCallback(() => {
|
|
6472
6342
|
const view = rootRef.current?.ownerDocument.defaultView;
|
|
6473
6343
|
if (!view) {
|
|
6474
6344
|
syncDisclosurePresentation(readCollapsible());
|
|
@@ -6533,7 +6403,7 @@ function UserMessageBody({ messageId, text, children, className }) {
|
|
|
6533
6403
|
disclosure?.expandedByMessageId.set(messageId, next);
|
|
6534
6404
|
setExpanded(next);
|
|
6535
6405
|
};
|
|
6536
|
-
return /* @__PURE__ */
|
|
6406
|
+
return /* @__PURE__ */ jsxs11(
|
|
6537
6407
|
"div",
|
|
6538
6408
|
{
|
|
6539
6409
|
ref: rootRef,
|
|
@@ -6542,7 +6412,7 @@ function UserMessageBody({ messageId, text, children, className }) {
|
|
|
6542
6412
|
"data-og-expanded": expanded ? "true" : "false",
|
|
6543
6413
|
className: cn("relative min-w-0", className),
|
|
6544
6414
|
children: [
|
|
6545
|
-
/* @__PURE__ */
|
|
6415
|
+
/* @__PURE__ */ jsx14(
|
|
6546
6416
|
"span",
|
|
6547
6417
|
{
|
|
6548
6418
|
ref: thresholdRef,
|
|
@@ -6550,7 +6420,7 @@ function UserMessageBody({ messageId, text, children, className }) {
|
|
|
6550
6420
|
className: "pointer-events-none absolute h-56 w-0 invisible sm:h-72"
|
|
6551
6421
|
}
|
|
6552
6422
|
),
|
|
6553
|
-
/* @__PURE__ */
|
|
6423
|
+
/* @__PURE__ */ jsxs11(
|
|
6554
6424
|
"div",
|
|
6555
6425
|
{
|
|
6556
6426
|
ref: clipRef,
|
|
@@ -6558,7 +6428,7 @@ function UserMessageBody({ messageId, text, children, className }) {
|
|
|
6558
6428
|
"data-og-user-message-clip": "",
|
|
6559
6429
|
className: cn("relative min-w-0", collapsed && "max-h-56 overflow-hidden sm:max-h-72"),
|
|
6560
6430
|
children: [
|
|
6561
|
-
/* @__PURE__ */
|
|
6431
|
+
/* @__PURE__ */ jsx14(
|
|
6562
6432
|
"div",
|
|
6563
6433
|
{
|
|
6564
6434
|
ref: contentRef,
|
|
@@ -6567,7 +6437,7 @@ function UserMessageBody({ messageId, text, children, className }) {
|
|
|
6567
6437
|
children
|
|
6568
6438
|
}
|
|
6569
6439
|
),
|
|
6570
|
-
/* @__PURE__ */
|
|
6440
|
+
/* @__PURE__ */ jsx14(
|
|
6571
6441
|
"span",
|
|
6572
6442
|
{
|
|
6573
6443
|
ref: fadeRef,
|
|
@@ -6580,7 +6450,7 @@ function UserMessageBody({ messageId, text, children, className }) {
|
|
|
6580
6450
|
]
|
|
6581
6451
|
}
|
|
6582
6452
|
),
|
|
6583
|
-
/* @__PURE__ */
|
|
6453
|
+
/* @__PURE__ */ jsx14(
|
|
6584
6454
|
"button",
|
|
6585
6455
|
{
|
|
6586
6456
|
ref: disclosureControlRef,
|
|
@@ -6600,16 +6470,16 @@ function UserMessageBody({ messageId, text, children, className }) {
|
|
|
6600
6470
|
}
|
|
6601
6471
|
|
|
6602
6472
|
// src/components/generated-video-player.tsx
|
|
6603
|
-
import { useEffect as useEffect10, useState as
|
|
6604
|
-
import { jsx as
|
|
6473
|
+
import { useEffect as useEffect10, useState as useState12 } from "react";
|
|
6474
|
+
import { jsx as jsx15 } from "react/jsx-runtime";
|
|
6605
6475
|
function GeneratedVideoPlayer({
|
|
6606
6476
|
receipt,
|
|
6607
6477
|
loadPlaybackSource,
|
|
6608
6478
|
className,
|
|
6609
6479
|
label = "Generated video"
|
|
6610
6480
|
}) {
|
|
6611
|
-
const [retry, setRetry] =
|
|
6612
|
-
const [state, setState] =
|
|
6481
|
+
const [retry, setRetry] = useState12(0);
|
|
6482
|
+
const [state, setState] = useState12({ kind: "loading" });
|
|
6613
6483
|
useEffect10(() => {
|
|
6614
6484
|
const controller = new AbortController();
|
|
6615
6485
|
setState({ kind: "loading" });
|
|
@@ -6628,7 +6498,7 @@ function GeneratedVideoPlayer({
|
|
|
6628
6498
|
return () => controller.abort();
|
|
6629
6499
|
}, [loadPlaybackSource, receipt.artifact.artifactId, retry]);
|
|
6630
6500
|
if (state.kind === "loading") {
|
|
6631
|
-
return /* @__PURE__ */
|
|
6501
|
+
return /* @__PURE__ */ jsx15(
|
|
6632
6502
|
"div",
|
|
6633
6503
|
{
|
|
6634
6504
|
"aria-label": `Loading ${label.toLowerCase()}`,
|
|
@@ -6640,7 +6510,7 @@ function GeneratedVideoPlayer({
|
|
|
6640
6510
|
);
|
|
6641
6511
|
}
|
|
6642
6512
|
if (state.kind === "error") {
|
|
6643
|
-
return /* @__PURE__ */
|
|
6513
|
+
return /* @__PURE__ */ jsx15(
|
|
6644
6514
|
"div",
|
|
6645
6515
|
{
|
|
6646
6516
|
role: "status",
|
|
@@ -6652,7 +6522,7 @@ function GeneratedVideoPlayer({
|
|
|
6652
6522
|
}
|
|
6653
6523
|
);
|
|
6654
6524
|
}
|
|
6655
|
-
return /* @__PURE__ */
|
|
6525
|
+
return /* @__PURE__ */ jsx15(
|
|
6656
6526
|
"video",
|
|
6657
6527
|
{
|
|
6658
6528
|
"aria-label": label,
|
|
@@ -6674,7 +6544,7 @@ function GeneratedVideoPlayer({
|
|
|
6674
6544
|
}
|
|
6675
6545
|
|
|
6676
6546
|
// src/components/session-status.tsx
|
|
6677
|
-
import { jsx as
|
|
6547
|
+
import { jsx as jsx16, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
6678
6548
|
var SESSION_STATUS_META = {
|
|
6679
6549
|
queued: {
|
|
6680
6550
|
label: "Starting",
|
|
@@ -6727,7 +6597,7 @@ var SESSION_STATUS_META = {
|
|
|
6727
6597
|
};
|
|
6728
6598
|
function SessionStatus({ status, label, size = "md", className }) {
|
|
6729
6599
|
const meta = SESSION_STATUS_META[status];
|
|
6730
|
-
return /* @__PURE__ */
|
|
6600
|
+
return /* @__PURE__ */ jsxs12(
|
|
6731
6601
|
"span",
|
|
6732
6602
|
{
|
|
6733
6603
|
"data-status": status,
|
|
@@ -6738,7 +6608,7 @@ function SessionStatus({ status, label, size = "md", className }) {
|
|
|
6738
6608
|
className
|
|
6739
6609
|
),
|
|
6740
6610
|
children: [
|
|
6741
|
-
/* @__PURE__ */
|
|
6611
|
+
/* @__PURE__ */ jsx16(StatusDot, { status, className: size === "sm" ? "size-1" : "size-1.5" }),
|
|
6742
6612
|
label ?? meta.label
|
|
6743
6613
|
]
|
|
6744
6614
|
}
|
|
@@ -6746,7 +6616,7 @@ function SessionStatus({ status, label, size = "md", className }) {
|
|
|
6746
6616
|
}
|
|
6747
6617
|
function StatusDot({ status, className }) {
|
|
6748
6618
|
const meta = SESSION_STATUS_META[status];
|
|
6749
|
-
return /* @__PURE__ */
|
|
6619
|
+
return /* @__PURE__ */ jsx16(
|
|
6750
6620
|
"span",
|
|
6751
6621
|
{
|
|
6752
6622
|
className: cn(
|
|
@@ -6754,7 +6624,7 @@ function StatusDot({ status, className }) {
|
|
|
6754
6624
|
meta.dotClassName,
|
|
6755
6625
|
className
|
|
6756
6626
|
),
|
|
6757
|
-
children: meta.pulse ? /* @__PURE__ */
|
|
6627
|
+
children: meta.pulse ? /* @__PURE__ */ jsx16("span", { className: cn("absolute inset-0 animate-og-pulse rounded-full", meta.dotClassName) }) : null
|
|
6758
6628
|
}
|
|
6759
6629
|
);
|
|
6760
6630
|
}
|
|
@@ -6779,19 +6649,19 @@ import {
|
|
|
6779
6649
|
TriangleAlertIcon as TriangleAlertIcon3,
|
|
6780
6650
|
XCircleIcon
|
|
6781
6651
|
} from "lucide-react";
|
|
6782
|
-
import { AnimatePresence as
|
|
6652
|
+
import { AnimatePresence as AnimatePresence2, motion as motion2 } from "motion/react";
|
|
6783
6653
|
import { Collapsible as Collapsible2 } from "radix-ui";
|
|
6784
6654
|
import {
|
|
6785
6655
|
Component as Component2,
|
|
6786
6656
|
Suspense as Suspense4,
|
|
6787
6657
|
lazy as lazy4,
|
|
6788
6658
|
memo as memo2,
|
|
6789
|
-
useCallback as
|
|
6659
|
+
useCallback as useCallback2,
|
|
6790
6660
|
useEffect as useEffect11,
|
|
6791
6661
|
useLayoutEffect as useLayoutEffect3,
|
|
6792
|
-
useMemo as
|
|
6662
|
+
useMemo as useMemo5,
|
|
6793
6663
|
useRef as useRef11,
|
|
6794
|
-
useState as
|
|
6664
|
+
useState as useState13
|
|
6795
6665
|
} from "react";
|
|
6796
6666
|
|
|
6797
6667
|
// src/components/tip-follow.ts
|
|
@@ -7141,9 +7011,10 @@ function machineInputSummaryIsUseful(kind, cleanedSummary) {
|
|
|
7141
7011
|
}
|
|
7142
7012
|
|
|
7143
7013
|
// src/components/message-timeline.tsx
|
|
7144
|
-
import { Fragment as
|
|
7014
|
+
import { Fragment as Fragment6, jsx as jsx17, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
7145
7015
|
var TimelineAnnotationSelection = lazy4(() => import("./timeline-annotation-selection-3L7LHGG2.js"));
|
|
7146
7016
|
var PIN_THRESHOLD_PX = 48;
|
|
7017
|
+
var JUMP_TO_LATEST_CATCHUP_DEBT_PX = 240;
|
|
7147
7018
|
var OLDER_PREFETCH_MARGIN_PX = 400;
|
|
7148
7019
|
var OLDER_PREFETCH_ROOT_MARGIN = `${OLDER_PREFETCH_MARGIN_PX}px 0px 0px 0px`;
|
|
7149
7020
|
var PRIMARY_ACTION_CLASS = "inline-flex w-full shrink-0 items-center justify-center gap-1.5 rounded-og-md bg-og-accent px-3 py-1.5 text-og-menu font-medium text-og-accent-fg sm:w-auto";
|
|
@@ -7242,7 +7113,7 @@ function MessageTimeline({
|
|
|
7242
7113
|
emptyState,
|
|
7243
7114
|
className
|
|
7244
7115
|
}) {
|
|
7245
|
-
const resolvedItems =
|
|
7116
|
+
const resolvedItems = useMemo5(() => {
|
|
7246
7117
|
const projectedItems = items ?? buildTimeline(events ?? []);
|
|
7247
7118
|
if (!shouldRenderAuthNeeded) {
|
|
7248
7119
|
return projectedItems;
|
|
@@ -7253,8 +7124,8 @@ function MessageTimeline({
|
|
|
7253
7124
|
}, [items, events, shouldRenderAuthNeeded]);
|
|
7254
7125
|
const sourceItems = items || events;
|
|
7255
7126
|
const olderBoundaryKey = sourceItems?.[0]?.id;
|
|
7256
|
-
const allGroups =
|
|
7257
|
-
const annotationSources =
|
|
7127
|
+
const allGroups = useMemo5(() => groupTimeline(resolvedItems), [resolvedItems]);
|
|
7128
|
+
const annotationSources = useMemo5(() => {
|
|
7258
7129
|
const sources = /* @__PURE__ */ new Map();
|
|
7259
7130
|
for (const item of resolvedItems) {
|
|
7260
7131
|
if ((item.kind === "user-message" || item.kind === "agent-message" || item.kind === "tool-call") && item.annotationSource) {
|
|
@@ -7268,18 +7139,20 @@ function MessageTimeline({
|
|
|
7268
7139
|
const topSentinelRef = useRef11(null);
|
|
7269
7140
|
const bottomSentinelRef = useRef11(null);
|
|
7270
7141
|
const previousBulkFirstKeyRef = useRef11(void 0);
|
|
7271
|
-
const [pinned, setPinned] =
|
|
7272
|
-
const [
|
|
7142
|
+
const [pinned, setPinned] = useState13(true);
|
|
7143
|
+
const [canSkipTipCatchup, setCanSkipTipCatchup] = useState13(false);
|
|
7144
|
+
const canSkipTipCatchupRef = useRef11(false);
|
|
7145
|
+
const [bulkActive, setBulkActive] = useState13(true);
|
|
7273
7146
|
const olderPrefetchArmedRef = useRef11(false);
|
|
7274
|
-
const [olderPrefetchArmed, setOlderPrefetchArmed] =
|
|
7147
|
+
const [olderPrefetchArmed, setOlderPrefetchArmed] = useState13(false);
|
|
7275
7148
|
const olderLoadAttemptRef = useRef11(null);
|
|
7276
|
-
const [underfillSettledAttempt, setUnderfillSettledAttempt] =
|
|
7149
|
+
const [underfillSettledAttempt, setUnderfillSettledAttempt] = useState13(
|
|
7277
7150
|
null
|
|
7278
7151
|
);
|
|
7279
7152
|
const underfillRetryReadyRef = useRef11(false);
|
|
7280
7153
|
const resizeFollowRafRef = useRef11(null);
|
|
7281
7154
|
const firstGroupKey = allGroups[0] ? timelineGroupKey(allGroups[0]) : null;
|
|
7282
|
-
const [revealed, setRevealed] =
|
|
7155
|
+
const [revealed, setRevealed] = useState13(resolvedItems[0]?.id === "c");
|
|
7283
7156
|
const pinnedRef = useRef11(true);
|
|
7284
7157
|
const hasNewerRef = useRef11(hasNewer);
|
|
7285
7158
|
hasNewerRef.current = hasNewer;
|
|
@@ -7307,13 +7180,25 @@ function MessageTimeline({
|
|
|
7307
7180
|
const underfillRetryReady = underfillRetryReadyRef.current = !!(underfillSettledAttempt && underfillSettledAttempt === olderLoadAttemptRef.current && hasOlder && onLoadOlder && !loadingOlder);
|
|
7308
7181
|
const firstKeyChangedForBulk = previousBulkFirstKeyRef.current !== void 0 && previousBulkFirstKeyRef.current !== firstGroupKey;
|
|
7309
7182
|
const bulkRender = allGroups.length > 0 && (bulkActive || firstKeyChangedForBulk);
|
|
7310
|
-
const
|
|
7311
|
-
if (
|
|
7312
|
-
|
|
7313
|
-
|
|
7183
|
+
const applyCanSkipTipCatchup = useCallback2((value) => {
|
|
7184
|
+
if (canSkipTipCatchupRef.current !== value) {
|
|
7185
|
+
canSkipTipCatchupRef.current = value;
|
|
7186
|
+
setCanSkipTipCatchup(value);
|
|
7314
7187
|
}
|
|
7315
7188
|
}, []);
|
|
7316
|
-
const
|
|
7189
|
+
const applyPinned = useCallback2(
|
|
7190
|
+
(value) => {
|
|
7191
|
+
if (pinnedRef.current !== value) {
|
|
7192
|
+
pinnedRef.current = value;
|
|
7193
|
+
setPinned(value);
|
|
7194
|
+
}
|
|
7195
|
+
if (!value) {
|
|
7196
|
+
applyCanSkipTipCatchup(false);
|
|
7197
|
+
}
|
|
7198
|
+
},
|
|
7199
|
+
[applyCanSkipTipCatchup]
|
|
7200
|
+
);
|
|
7201
|
+
const rearmOlderPrefetchAfterLeavingTop = useCallback2((node) => {
|
|
7317
7202
|
if (node.scrollTop > OLDER_PREFETCH_MARGIN_PX) {
|
|
7318
7203
|
const state = olderLoadAttemptRef.current?.[1];
|
|
7319
7204
|
if (state === 2 || state === 3) {
|
|
@@ -7325,13 +7210,13 @@ function MessageTimeline({
|
|
|
7325
7210
|
revealedRef.current = revealed;
|
|
7326
7211
|
const followRef = useRef11(createTipFollowState());
|
|
7327
7212
|
const followFrameRef = useRef11(null);
|
|
7328
|
-
const syncScrollBaseline =
|
|
7213
|
+
const syncScrollBaseline = useCallback2((node) => {
|
|
7329
7214
|
lastScrollTopRef.current = node.scrollTop;
|
|
7330
7215
|
lastMaxScrollRef.current = maxScrollOf(node);
|
|
7331
7216
|
lastScrollHeightRef.current = node.scrollHeight;
|
|
7332
7217
|
lastClientHeightRef.current = node.clientHeight;
|
|
7333
7218
|
}, []);
|
|
7334
|
-
const writeScrollTop =
|
|
7219
|
+
const writeScrollTop = useCallback2((node, top) => {
|
|
7335
7220
|
const next = Math.max(0, top);
|
|
7336
7221
|
const before = node.scrollTop;
|
|
7337
7222
|
if (before === next) {
|
|
@@ -7343,24 +7228,24 @@ function MessageTimeline({
|
|
|
7343
7228
|
programmaticScrollRef.current -= 1;
|
|
7344
7229
|
}
|
|
7345
7230
|
}, []);
|
|
7346
|
-
const cancelLeaveFallback =
|
|
7231
|
+
const cancelLeaveFallback = useCallback2(() => {
|
|
7347
7232
|
if (leaveFallbackRafRef.current != null) {
|
|
7348
7233
|
cancelFrame(leaveFallbackRafRef.current);
|
|
7349
7234
|
leaveFallbackRafRef.current = null;
|
|
7350
7235
|
}
|
|
7351
7236
|
}, []);
|
|
7352
|
-
const clearPendingReaderLeave =
|
|
7237
|
+
const clearPendingReaderLeave = useCallback2(() => {
|
|
7353
7238
|
pendingReaderLeaveRef.current = false;
|
|
7354
7239
|
cancelLeaveFallback();
|
|
7355
7240
|
}, [cancelLeaveFallback]);
|
|
7356
|
-
const stopFollow =
|
|
7241
|
+
const stopFollow = useCallback2(() => {
|
|
7357
7242
|
followRef.current = tipFollowCancel(followRef.current);
|
|
7358
7243
|
if (followFrameRef.current != null) {
|
|
7359
7244
|
cancelFrame(followFrameRef.current);
|
|
7360
7245
|
followFrameRef.current = null;
|
|
7361
7246
|
}
|
|
7362
7247
|
}, []);
|
|
7363
|
-
const releasePinFromReader =
|
|
7248
|
+
const releasePinFromReader = useCallback2(
|
|
7364
7249
|
(node) => {
|
|
7365
7250
|
if (!autoFollow || !pinnedRef.current || hasNewerRef.current) {
|
|
7366
7251
|
return;
|
|
@@ -7382,7 +7267,7 @@ function MessageTimeline({
|
|
|
7382
7267
|
},
|
|
7383
7268
|
[autoFollow, applyPinned, clearPendingReaderLeave, stopFollow]
|
|
7384
7269
|
);
|
|
7385
|
-
const releasePinAfterScrollSettled =
|
|
7270
|
+
const releasePinAfterScrollSettled = useCallback2(
|
|
7386
7271
|
(node) => {
|
|
7387
7272
|
if (!autoFollow || !pinnedRef.current || hasNewerRef.current) {
|
|
7388
7273
|
return;
|
|
@@ -7402,7 +7287,7 @@ function MessageTimeline({
|
|
|
7402
7287
|
},
|
|
7403
7288
|
[autoFollow, clearPendingReaderLeave, rearmOlderPrefetchAfterLeavingTop, releasePinFromReader]
|
|
7404
7289
|
);
|
|
7405
|
-
const scheduleLeaveFallback =
|
|
7290
|
+
const scheduleLeaveFallback = useCallback2(() => {
|
|
7406
7291
|
if (supportsScrollEndEvent()) {
|
|
7407
7292
|
return;
|
|
7408
7293
|
}
|
|
@@ -7449,7 +7334,7 @@ function MessageTimeline({
|
|
|
7449
7334
|
const node = event.currentTarget instanceof HTMLElement ? event.currentTarget : scrollRef.current;
|
|
7450
7335
|
releasePinFromReader(node);
|
|
7451
7336
|
};
|
|
7452
|
-
const snapToBottom =
|
|
7337
|
+
const snapToBottom = useCallback2(
|
|
7453
7338
|
(node) => {
|
|
7454
7339
|
stopFollow();
|
|
7455
7340
|
cancelLeaveFallback();
|
|
@@ -7461,10 +7346,11 @@ function MessageTimeline({
|
|
|
7461
7346
|
lastClientHeight: node.clientHeight,
|
|
7462
7347
|
cameraTop: null
|
|
7463
7348
|
};
|
|
7349
|
+
applyCanSkipTipCatchup(false);
|
|
7464
7350
|
},
|
|
7465
|
-
[cancelLeaveFallback, stopFollow, syncScrollBaseline, writeScrollTop]
|
|
7351
|
+
[applyCanSkipTipCatchup, cancelLeaveFallback, stopFollow, syncScrollBaseline, writeScrollTop]
|
|
7466
7352
|
);
|
|
7467
|
-
const beginUserMessageDisclosureChange =
|
|
7353
|
+
const beginUserMessageDisclosureChange = useCallback2(
|
|
7468
7354
|
(messageBody, disclosureControl) => {
|
|
7469
7355
|
const node = scrollRef.current;
|
|
7470
7356
|
if (!node || !node.contains(messageBody)) {
|
|
@@ -7502,14 +7388,14 @@ function MessageTimeline({
|
|
|
7502
7388
|
},
|
|
7503
7389
|
[applyPinned, autoFollow, snapToBottom, syncScrollBaseline, writeScrollTop]
|
|
7504
7390
|
);
|
|
7505
|
-
const userMessageDisclosureContext =
|
|
7391
|
+
const userMessageDisclosureContext = useMemo5(
|
|
7506
7392
|
() => ({
|
|
7507
7393
|
expandedByMessageId: userMessageDisclosureMemoryRef.current,
|
|
7508
7394
|
beginChange: beginUserMessageDisclosureChange
|
|
7509
7395
|
}),
|
|
7510
7396
|
[beginUserMessageDisclosureChange]
|
|
7511
7397
|
);
|
|
7512
|
-
const requestOlderIfUnderfilled =
|
|
7398
|
+
const requestOlderIfUnderfilled = useCallback2(
|
|
7513
7399
|
(node, retry) => {
|
|
7514
7400
|
let currentAttempt = olderLoadAttemptRef.current;
|
|
7515
7401
|
if (retry && (currentAttempt !== retry || retry[0] !== olderBoundaryKey)) {
|
|
@@ -7541,7 +7427,7 @@ function MessageTimeline({
|
|
|
7541
7427
|
const driveFollowRef = useRef11(
|
|
7542
7428
|
requestOlderIfUnderfilled
|
|
7543
7429
|
);
|
|
7544
|
-
const driveFollow =
|
|
7430
|
+
const driveFollow = useCallback2(
|
|
7545
7431
|
(node, nowMs) => {
|
|
7546
7432
|
if (!pinnedRef.current || hasNewerRef.current) {
|
|
7547
7433
|
stopFollow();
|
|
@@ -7610,6 +7496,9 @@ function MessageTimeline({
|
|
|
7610
7496
|
followRef.current = result.state;
|
|
7611
7497
|
writeScrollTop(node, result.scrollTop);
|
|
7612
7498
|
syncScrollBaseline(node);
|
|
7499
|
+
applyCanSkipTipCatchup(
|
|
7500
|
+
result.state.running && maxScrollOf(node) - node.scrollTop >= JUMP_TO_LATEST_CATCHUP_DEBT_PX
|
|
7501
|
+
);
|
|
7613
7502
|
if (result.state.running) {
|
|
7614
7503
|
cancelLeaveFallback();
|
|
7615
7504
|
if (followFrameRef.current == null) {
|
|
@@ -7626,7 +7515,7 @@ function MessageTimeline({
|
|
|
7626
7515
|
followFrameRef.current = null;
|
|
7627
7516
|
}
|
|
7628
7517
|
},
|
|
7629
|
-
[cancelLeaveFallback, stopFollow, syncScrollBaseline, writeScrollTop]
|
|
7518
|
+
[applyCanSkipTipCatchup, cancelLeaveFallback, stopFollow, syncScrollBaseline, writeScrollTop]
|
|
7630
7519
|
);
|
|
7631
7520
|
driveFollowRef.current = driveFollow;
|
|
7632
7521
|
useEffect11(() => stopFollow, [stopFollow]);
|
|
@@ -8060,8 +7949,8 @@ function MessageTimeline({
|
|
|
8060
7949
|
}
|
|
8061
7950
|
releasePinAfterScrollSettled(node);
|
|
8062
7951
|
};
|
|
8063
|
-
return /* @__PURE__ */
|
|
8064
|
-
onAnnotate ? /* @__PURE__ */
|
|
7952
|
+
return /* @__PURE__ */ jsx17(LightboxProvider, { children: /* @__PURE__ */ jsx17(FoldMemoryProvider, { value: foldMemoryRef.current, children: /* @__PURE__ */ jsx17(SeenActivityIdsProvider, { value: seenActivityIdsRef.current, children: /* @__PURE__ */ jsx17(TimelineComputeLabelProvider, { value: computeLabel ?? null, children: /* @__PURE__ */ jsx17(EntranceAnimationProvider, { value: !bulkRender, children: /* @__PURE__ */ jsx17(TooltipProvider, { delayDuration: 400, children: /* @__PURE__ */ jsxs13("div", { className: cn("og-root relative flex min-h-0 flex-col", className), children: [
|
|
7953
|
+
onAnnotate ? /* @__PURE__ */ jsx17(Suspense4, { fallback: null, children: /* @__PURE__ */ jsx17(
|
|
8065
7954
|
TimelineAnnotationSelection,
|
|
8066
7955
|
{
|
|
8067
7956
|
rootRef: scrollRef,
|
|
@@ -8069,7 +7958,7 @@ function MessageTimeline({
|
|
|
8069
7958
|
onAnnotate
|
|
8070
7959
|
}
|
|
8071
7960
|
) }) : null,
|
|
8072
|
-
/* @__PURE__ */
|
|
7961
|
+
/* @__PURE__ */ jsx17(
|
|
8073
7962
|
"div",
|
|
8074
7963
|
{
|
|
8075
7964
|
ref: scrollRef,
|
|
@@ -8088,12 +7977,12 @@ function MessageTimeline({
|
|
|
8088
7977
|
"min-h-0 flex-1 overflow-y-auto overscroll-contain px-4 py-6 sm:px-6 outline-hidden",
|
|
8089
7978
|
autoFollow && pinned && !hasNewer ? "[overflow-anchor:none]" : "[overflow-anchor:auto]"
|
|
8090
7979
|
),
|
|
8091
|
-
children: /* @__PURE__ */
|
|
8092
|
-
!groups.length ? emptyState ?? /* @__PURE__ */
|
|
7980
|
+
children: /* @__PURE__ */ jsxs13("div", { className: "relative mx-auto flex w-full max-w-3xl flex-col gap-5", children: [
|
|
7981
|
+
!groups.length ? emptyState ?? /* @__PURE__ */ jsx17("p", { className: "py-10 text-center text-og-menu text-og-fg-subtle", children: "No activity yet." }) : null,
|
|
8093
7982
|
hasOlder && olderPrefetchArmed ? (
|
|
8094
7983
|
// Overlaid, not a layout row: mounting/unmounting the sentinel
|
|
8095
7984
|
// must never shift content (that shift was itself a wobble).
|
|
8096
|
-
/* @__PURE__ */
|
|
7985
|
+
/* @__PURE__ */ jsx17(
|
|
8097
7986
|
"div",
|
|
8098
7987
|
{
|
|
8099
7988
|
ref: topSentinelRef,
|
|
@@ -8107,7 +7996,7 @@ function MessageTimeline({
|
|
|
8107
7996
|
groups.map(({ group, key }, index) => {
|
|
8108
7997
|
const next = groups[index + 1]?.group;
|
|
8109
7998
|
const contextCompactionCount = group.kind === "turn" ? group.contextCompactionCount ?? 0 : group.kind === "activity" && next?.kind === "item" && next.item.kind === "context-compaction" && next.item.phase === "compacted" ? 1 : 0;
|
|
8110
|
-
return /* @__PURE__ */
|
|
7999
|
+
return /* @__PURE__ */ jsx17("div", { "data-og-timeline-group-anchor": "", "data-og-group-key": key, children: /* @__PURE__ */ jsx17(
|
|
8111
8000
|
TimelineGroupRenderBoundary,
|
|
8112
8001
|
{
|
|
8113
8002
|
resetKeys: [
|
|
@@ -8123,7 +8012,7 @@ function MessageTimeline({
|
|
|
8123
8012
|
loadVideoArtifactPlayback,
|
|
8124
8013
|
turnSummary
|
|
8125
8014
|
],
|
|
8126
|
-
children: /* @__PURE__ */
|
|
8015
|
+
children: /* @__PURE__ */ jsx17(UserMessageDisclosureProvider, { value: userMessageDisclosureContext, children: /* @__PURE__ */ jsx17(
|
|
8127
8016
|
TimelineGroupView,
|
|
8128
8017
|
{
|
|
8129
8018
|
group,
|
|
@@ -8145,8 +8034,8 @@ function MessageTimeline({
|
|
|
8145
8034
|
}
|
|
8146
8035
|
) }, key);
|
|
8147
8036
|
}),
|
|
8148
|
-
groups.length > 0 && trailingState ? /* @__PURE__ */
|
|
8149
|
-
hasNewer ? /* @__PURE__ */
|
|
8037
|
+
groups.length > 0 && trailingState ? /* @__PURE__ */ jsx17("div", { "data-og-timeline-trailing-state": "", children: trailingState }) : null,
|
|
8038
|
+
hasNewer ? /* @__PURE__ */ jsx17(
|
|
8150
8039
|
"div",
|
|
8151
8040
|
{
|
|
8152
8041
|
ref: bottomSentinelRef,
|
|
@@ -8159,11 +8048,11 @@ function MessageTimeline({
|
|
|
8159
8048
|
] })
|
|
8160
8049
|
}
|
|
8161
8050
|
),
|
|
8162
|
-
/* @__PURE__ */
|
|
8051
|
+
/* @__PURE__ */ jsx17(AnimatePresence2, { children: loadingOlder || loadingOldest || hasOlder && onJumpToStart && olderPrefetchArmed || underfillRetryReady ? (
|
|
8163
8052
|
// Floating over the scroller (not a timeline row) so showing and
|
|
8164
8053
|
// hiding it never reflows history under the reader.
|
|
8165
|
-
/* @__PURE__ */
|
|
8166
|
-
|
|
8054
|
+
/* @__PURE__ */ jsxs13(
|
|
8055
|
+
motion2.div,
|
|
8167
8056
|
{
|
|
8168
8057
|
initial: { opacity: 0, y: -6 },
|
|
8169
8058
|
animate: { opacity: 1, y: 0 },
|
|
@@ -8173,8 +8062,8 @@ function MessageTimeline({
|
|
|
8173
8062
|
"aria-live": "polite",
|
|
8174
8063
|
className: "absolute inset-x-0 top-3 z-10 flex justify-center",
|
|
8175
8064
|
children: [
|
|
8176
|
-
loadingOlder || loadingOldest ? /* @__PURE__ */
|
|
8177
|
-
hasOlder && !loadingOlder && !loadingOldest && (underfillRetryReady || onJumpToStart) ? /* @__PURE__ */
|
|
8065
|
+
loadingOlder || loadingOldest ? /* @__PURE__ */ jsx17("span", { className: LOADING_CHIP_CLASS, children: /* @__PURE__ */ jsx17("span", { className: "og-shimmer-text", children: loadingOldest ? "Jumping to start\u2026" : "Loading earlier activity\u2026" }) }) : null,
|
|
8066
|
+
hasOlder && !loadingOlder && !loadingOldest && (underfillRetryReady || onJumpToStart) ? /* @__PURE__ */ jsx17(
|
|
8178
8067
|
"button",
|
|
8179
8068
|
{
|
|
8180
8069
|
type: "button",
|
|
@@ -8218,8 +8107,8 @@ function MessageTimeline({
|
|
|
8218
8107
|
}
|
|
8219
8108
|
)
|
|
8220
8109
|
) : null }),
|
|
8221
|
-
/* @__PURE__ */
|
|
8222
|
-
|
|
8110
|
+
/* @__PURE__ */ jsx17(AnimatePresence2, { children: loadingNewer ? /* @__PURE__ */ jsx17(
|
|
8111
|
+
motion2.div,
|
|
8223
8112
|
{
|
|
8224
8113
|
initial: { opacity: 0, y: 6 },
|
|
8225
8114
|
animate: { opacity: 1, y: 0 },
|
|
@@ -8228,13 +8117,14 @@ function MessageTimeline({
|
|
|
8228
8117
|
"data-og-loading-newer": "",
|
|
8229
8118
|
"aria-live": "polite",
|
|
8230
8119
|
className: "pointer-events-none absolute inset-x-0 bottom-14 z-10 flex justify-center",
|
|
8231
|
-
children: /* @__PURE__ */
|
|
8120
|
+
children: /* @__PURE__ */ jsx17("span", { className: LOADING_CHIP_CLASS, children: /* @__PURE__ */ jsx17("span", { className: "og-shimmer-text", children: "Loading later activity\u2026" }) })
|
|
8232
8121
|
}
|
|
8233
8122
|
) : null }),
|
|
8234
|
-
/* @__PURE__ */
|
|
8235
|
-
|
|
8123
|
+
/* @__PURE__ */ jsx17(AnimatePresence2, { children: (!pinned && autoFollow || hasNewer || canSkipTipCatchup) && autoFollow ? /* @__PURE__ */ jsxs13(
|
|
8124
|
+
motion2.button,
|
|
8236
8125
|
{
|
|
8237
8126
|
type: "button",
|
|
8127
|
+
"data-og-jump-to-latest": "",
|
|
8238
8128
|
initial: { opacity: 0, y: 8 },
|
|
8239
8129
|
animate: { opacity: 1, y: 0 },
|
|
8240
8130
|
exit: { opacity: 0, y: 8 },
|
|
@@ -8276,7 +8166,7 @@ function MessageTimeline({
|
|
|
8276
8166
|
"hover:border-og-border-strong"
|
|
8277
8167
|
),
|
|
8278
8168
|
children: [
|
|
8279
|
-
/* @__PURE__ */
|
|
8169
|
+
/* @__PURE__ */ jsx17(ArrowDownIcon2, { className: "size-3.5" }),
|
|
8280
8170
|
"Jump to latest"
|
|
8281
8171
|
]
|
|
8282
8172
|
}
|
|
@@ -8285,7 +8175,7 @@ function MessageTimeline({
|
|
|
8285
8175
|
}
|
|
8286
8176
|
function useStableTimelineGroupKeys(allGroups) {
|
|
8287
8177
|
const previousRef = useRef11([]);
|
|
8288
|
-
const keyedGroups =
|
|
8178
|
+
const keyedGroups = useMemo5(() => {
|
|
8289
8179
|
const previousByItemId = /* @__PURE__ */ new Map();
|
|
8290
8180
|
for (const previous of previousRef.current) {
|
|
8291
8181
|
for (const itemId of timelineGroupItemIds(previous.group)) {
|
|
@@ -8351,17 +8241,17 @@ var TimelineGroupRenderBoundary = class extends Component2 {
|
|
|
8351
8241
|
}
|
|
8352
8242
|
render() {
|
|
8353
8243
|
if (this.state.failed) {
|
|
8354
|
-
return /* @__PURE__ */
|
|
8244
|
+
return /* @__PURE__ */ jsxs13(
|
|
8355
8245
|
"div",
|
|
8356
8246
|
{
|
|
8357
8247
|
"data-testid": "timeline-group-render-error",
|
|
8358
8248
|
role: "status",
|
|
8359
8249
|
className: "flex items-start gap-2 rounded-lg border border-og-border bg-og-surface-muted px-3 py-2 text-og-menu text-og-fg-muted",
|
|
8360
8250
|
children: [
|
|
8361
|
-
/* @__PURE__ */
|
|
8362
|
-
/* @__PURE__ */
|
|
8363
|
-
/* @__PURE__ */
|
|
8364
|
-
/* @__PURE__ */
|
|
8251
|
+
/* @__PURE__ */ jsx17(TriangleAlertIcon3, { "aria-hidden": "true", className: "mt-0.5 size-4 shrink-0" }),
|
|
8252
|
+
/* @__PURE__ */ jsxs13("div", { children: [
|
|
8253
|
+
/* @__PURE__ */ jsx17("p", { className: "font-medium text-og-fg", children: "Timeline item unavailable" }),
|
|
8254
|
+
/* @__PURE__ */ jsx17("p", { children: "This item could not be displayed. The rest of the conversation is still available." })
|
|
8365
8255
|
] })
|
|
8366
8256
|
]
|
|
8367
8257
|
}
|
|
@@ -8408,7 +8298,7 @@ var TimelineGroupView = memo2(function TimelineGroupView2({
|
|
|
8408
8298
|
if (insideTurn) {
|
|
8409
8299
|
const useNestedChip = nestClusterChips && activityShouldFold && !containsGeneratedImage;
|
|
8410
8300
|
if (!useNestedChip) {
|
|
8411
|
-
return /* @__PURE__ */
|
|
8301
|
+
return /* @__PURE__ */ jsx17(
|
|
8412
8302
|
ActivityRail,
|
|
8413
8303
|
{
|
|
8414
8304
|
items: group.items,
|
|
@@ -8421,7 +8311,7 @@ var TimelineGroupView = memo2(function TimelineGroupView2({
|
|
|
8421
8311
|
}
|
|
8422
8312
|
);
|
|
8423
8313
|
}
|
|
8424
|
-
return /* @__PURE__ */
|
|
8314
|
+
return /* @__PURE__ */ jsx17(
|
|
8425
8315
|
TurnSummary,
|
|
8426
8316
|
{
|
|
8427
8317
|
items: group.items,
|
|
@@ -8432,7 +8322,7 @@ var TimelineGroupView = memo2(function TimelineGroupView2({
|
|
|
8432
8322
|
foldKey: group.id,
|
|
8433
8323
|
facets: turnSummary?.facets,
|
|
8434
8324
|
contextCompactionCount,
|
|
8435
|
-
children: /* @__PURE__ */
|
|
8325
|
+
children: /* @__PURE__ */ jsx17(
|
|
8436
8326
|
ActivityRail,
|
|
8437
8327
|
{
|
|
8438
8328
|
items: group.items,
|
|
@@ -8448,7 +8338,7 @@ var TimelineGroupView = memo2(function TimelineGroupView2({
|
|
|
8448
8338
|
settleChrome ? "settle" : "rest"
|
|
8449
8339
|
);
|
|
8450
8340
|
}
|
|
8451
|
-
return /* @__PURE__ */
|
|
8341
|
+
return /* @__PURE__ */ jsx17(
|
|
8452
8342
|
TurnSummary,
|
|
8453
8343
|
{
|
|
8454
8344
|
items: group.items,
|
|
@@ -8459,7 +8349,7 @@ var TimelineGroupView = memo2(function TimelineGroupView2({
|
|
|
8459
8349
|
facets: turnSummary?.facets,
|
|
8460
8350
|
settleFold,
|
|
8461
8351
|
contextCompactionCount,
|
|
8462
|
-
children: /* @__PURE__ */
|
|
8352
|
+
children: /* @__PURE__ */ jsx17(FoldBody, { children: /* @__PURE__ */ jsx17(TurnRailFrame, { children: /* @__PURE__ */ jsx17(
|
|
8463
8353
|
ActivityRail,
|
|
8464
8354
|
{
|
|
8465
8355
|
items: group.items,
|
|
@@ -8479,7 +8369,7 @@ var TimelineGroupView = memo2(function TimelineGroupView2({
|
|
|
8479
8369
|
const turnCopyText = collectTurnCopyText(group.groups, trailingAgentText);
|
|
8480
8370
|
const body = group.groups.map((child) => {
|
|
8481
8371
|
const key = timelineGroupKey(child);
|
|
8482
|
-
return /* @__PURE__ */
|
|
8372
|
+
return /* @__PURE__ */ jsx17(
|
|
8483
8373
|
TimelineGroupRenderBoundary,
|
|
8484
8374
|
{
|
|
8485
8375
|
resetKeys: [
|
|
@@ -8495,7 +8385,7 @@ var TimelineGroupView = memo2(function TimelineGroupView2({
|
|
|
8495
8385
|
loadVideoArtifactPlayback,
|
|
8496
8386
|
turnSummary
|
|
8497
8387
|
],
|
|
8498
|
-
children: /* @__PURE__ */
|
|
8388
|
+
children: /* @__PURE__ */ jsx17(
|
|
8499
8389
|
TimelineGroupView2,
|
|
8500
8390
|
{
|
|
8501
8391
|
group: child,
|
|
@@ -8517,7 +8407,7 @@ var TimelineGroupView = memo2(function TimelineGroupView2({
|
|
|
8517
8407
|
key
|
|
8518
8408
|
);
|
|
8519
8409
|
});
|
|
8520
|
-
return /* @__PURE__ */
|
|
8410
|
+
return /* @__PURE__ */ jsx17(
|
|
8521
8411
|
TurnSummary,
|
|
8522
8412
|
{
|
|
8523
8413
|
items: activityItems,
|
|
@@ -8531,16 +8421,16 @@ var TimelineGroupView = memo2(function TimelineGroupView2({
|
|
|
8531
8421
|
settleFold,
|
|
8532
8422
|
copyText: insideTurn ? void 0 : turnCopyText,
|
|
8533
8423
|
contextCompactionCount: contextCompactionCount ?? group.contextCompactionCount,
|
|
8534
|
-
children: /* @__PURE__ */
|
|
8424
|
+
children: /* @__PURE__ */ jsx17(FoldBody, { children: insideTurn ? (
|
|
8535
8425
|
// A nested turn is already on an ancestor rail — its body just stacks
|
|
8536
8426
|
// flush (the bare-node body already indents it), so no second rule.
|
|
8537
|
-
/* @__PURE__ */
|
|
8538
|
-
) : /* @__PURE__ */
|
|
8427
|
+
/* @__PURE__ */ jsx17("div", { className: "flex flex-col gap-4", children: body })
|
|
8428
|
+
) : /* @__PURE__ */ jsx17(TurnRailFrame, { children: body }) })
|
|
8539
8429
|
}
|
|
8540
8430
|
);
|
|
8541
8431
|
}
|
|
8542
8432
|
case "item":
|
|
8543
|
-
return /* @__PURE__ */
|
|
8433
|
+
return /* @__PURE__ */ jsx17(
|
|
8544
8434
|
TimelineRow,
|
|
8545
8435
|
{
|
|
8546
8436
|
item: group.item,
|
|
@@ -8554,10 +8444,10 @@ var TimelineGroupView = memo2(function TimelineGroupView2({
|
|
|
8554
8444
|
}
|
|
8555
8445
|
});
|
|
8556
8446
|
function FoldBody({ children }) {
|
|
8557
|
-
return /* @__PURE__ */
|
|
8447
|
+
return /* @__PURE__ */ jsx17(Fragment6, { children });
|
|
8558
8448
|
}
|
|
8559
8449
|
function TurnRailFrame({ children }) {
|
|
8560
|
-
return /* @__PURE__ */
|
|
8450
|
+
return /* @__PURE__ */ jsx17("div", { className: "flex flex-col gap-4 border-l-2 border-og-border pl-3 sm:pl-4", children });
|
|
8561
8451
|
}
|
|
8562
8452
|
function useLiveSettleFold(folded) {
|
|
8563
8453
|
const previousFoldedRef = useRef11(folded);
|
|
@@ -8732,25 +8622,25 @@ function TimelineRow({
|
|
|
8732
8622
|
}) {
|
|
8733
8623
|
switch (item.kind) {
|
|
8734
8624
|
case "user-message":
|
|
8735
|
-
return /* @__PURE__ */
|
|
8625
|
+
return /* @__PURE__ */ jsx17(UserMessageRow, { item, renderMessageText });
|
|
8736
8626
|
case "human-input":
|
|
8737
|
-
return /* @__PURE__ */
|
|
8627
|
+
return /* @__PURE__ */ jsx17(HumanInputConversationRow, { item });
|
|
8738
8628
|
case "agent-message":
|
|
8739
|
-
return /* @__PURE__ */
|
|
8629
|
+
return /* @__PURE__ */ jsx17(AgentMessageRow, { item, renderMessageText });
|
|
8740
8630
|
case "worker-completion":
|
|
8741
|
-
return /* @__PURE__ */
|
|
8631
|
+
return /* @__PURE__ */ jsx17(WorkerCompletionRow, { item, onOpenSession });
|
|
8742
8632
|
case "session-status":
|
|
8743
|
-
return /* @__PURE__ */
|
|
8633
|
+
return /* @__PURE__ */ jsx17(SessionStatusRow, { item });
|
|
8744
8634
|
case "goal":
|
|
8745
|
-
return /* @__PURE__ */
|
|
8635
|
+
return /* @__PURE__ */ jsx17(GoalRow, { item });
|
|
8746
8636
|
case "machine-input-batch":
|
|
8747
|
-
return /* @__PURE__ */
|
|
8637
|
+
return /* @__PURE__ */ jsx17(MachineInputBatchRow, { item, loadVideoArtifactPlayback });
|
|
8748
8638
|
case "notice":
|
|
8749
|
-
return /* @__PURE__ */
|
|
8639
|
+
return /* @__PURE__ */ jsx17(NoticeRow, { item });
|
|
8750
8640
|
case "context-compaction":
|
|
8751
|
-
return /* @__PURE__ */
|
|
8641
|
+
return /* @__PURE__ */ jsx17(CompactionRow, { item });
|
|
8752
8642
|
case "auth-needed":
|
|
8753
|
-
return /* @__PURE__ */
|
|
8643
|
+
return /* @__PURE__ */ jsx17(
|
|
8754
8644
|
AuthNeededRow,
|
|
8755
8645
|
{
|
|
8756
8646
|
item,
|
|
@@ -8776,7 +8666,7 @@ function CompactionRow({ item }) {
|
|
|
8776
8666
|
const title = item.phase === "started" ? "Compacting conversation history\u2026" : item.phase === "compacted" ? before && after ? `Conversation history compacted \xB7 ~${before} \u2192 ~${after} estimated history tokens` : "Conversation history compacted" : "Couldn\u2019t compact conversation history";
|
|
8777
8667
|
const subtitle = item.phase === "compacted" ? "Chat history above is unchanged" : item.phase === "skipped" ? compactionSkipSubtitle(item.skipReason) : null;
|
|
8778
8668
|
const pill = item.phase === "skipped" && item.skipReason === "summarization_failed" ? "border-og-status-failed/35 bg-og-status-failed/10 text-og-status-failed" : item.phase === "started" ? WAITING_PILL_CLASS : "border-og-border bg-og-surface-1 text-og-fg-muted";
|
|
8779
|
-
return /* @__PURE__ */
|
|
8669
|
+
return /* @__PURE__ */ jsx17("div", { className: cn(enter && "animate-og-enter", "flex justify-center"), children: /* @__PURE__ */ jsxs13(
|
|
8780
8670
|
"div",
|
|
8781
8671
|
{
|
|
8782
8672
|
className: cn(
|
|
@@ -8785,14 +8675,14 @@ function CompactionRow({ item }) {
|
|
|
8785
8675
|
),
|
|
8786
8676
|
role: "status",
|
|
8787
8677
|
children: [
|
|
8788
|
-
/* @__PURE__ */
|
|
8789
|
-
/* @__PURE__ */
|
|
8790
|
-
/* @__PURE__ */
|
|
8678
|
+
/* @__PURE__ */ jsxs13("span", { className: "inline-flex max-w-full items-center gap-1.5", children: [
|
|
8679
|
+
/* @__PURE__ */ jsx17(ShrinkIcon, { className: "size-3.5 shrink-0" }),
|
|
8680
|
+
/* @__PURE__ */ jsxs13("span", { className: "truncate", children: [
|
|
8791
8681
|
title,
|
|
8792
8682
|
trigger ? ` \xB7 ${trigger}` : ""
|
|
8793
8683
|
] })
|
|
8794
8684
|
] }),
|
|
8795
|
-
subtitle ? /* @__PURE__ */
|
|
8685
|
+
subtitle ? /* @__PURE__ */ jsx17("span", { className: "truncate text-og-xs opacity-80", children: subtitle }) : null
|
|
8796
8686
|
]
|
|
8797
8687
|
}
|
|
8798
8688
|
) });
|
|
@@ -8812,7 +8702,7 @@ function compactionSkipSubtitle(reason) {
|
|
|
8812
8702
|
}
|
|
8813
8703
|
}
|
|
8814
8704
|
function MessageFooterTime({ occurredAt }) {
|
|
8815
|
-
return /* @__PURE__ */
|
|
8705
|
+
return /* @__PURE__ */ jsx17(
|
|
8816
8706
|
"time",
|
|
8817
8707
|
{
|
|
8818
8708
|
dateTime: occurredAt,
|
|
@@ -8831,18 +8721,18 @@ function UserMessageRow({
|
|
|
8831
8721
|
}) {
|
|
8832
8722
|
const enter = useEntranceAnimation();
|
|
8833
8723
|
const deliveryFailed = item.delivery?.state === "failed";
|
|
8834
|
-
return /* @__PURE__ */
|
|
8835
|
-
/* @__PURE__ */
|
|
8724
|
+
return /* @__PURE__ */ jsx17("div", { className: cn(enter && "animate-og-enter", "flex justify-end"), children: /* @__PURE__ */ jsxs13("div", { className: "flex max-w-[85%] min-w-0 flex-col items-end gap-1", children: [
|
|
8725
|
+
/* @__PURE__ */ jsx17(
|
|
8836
8726
|
CopyHoverFrame,
|
|
8837
8727
|
{
|
|
8838
8728
|
copyText: item.text || (item.annotations ?? []).map((annotation) => `${annotation.quote}
|
|
8839
8729
|
${annotation.note}`).join("\n\n"),
|
|
8840
8730
|
label: "Copy message",
|
|
8841
8731
|
className: "w-fit max-w-full min-w-0",
|
|
8842
|
-
trailing: /* @__PURE__ */
|
|
8843
|
-
children: /* @__PURE__ */
|
|
8844
|
-
item.text ? /* @__PURE__ */
|
|
8845
|
-
(item.annotations?.length ?? 0) > 0 ? /* @__PURE__ */
|
|
8732
|
+
trailing: /* @__PURE__ */ jsx17(MessageFooterTime, { occurredAt: item.occurredAt }),
|
|
8733
|
+
children: /* @__PURE__ */ jsxs13("div", { className: MESSAGE_BUBBLE_CLASS, children: [
|
|
8734
|
+
item.text ? /* @__PURE__ */ jsx17("div", { "data-og-annotation-source-key": item.annotationSource?.eventId, children: renderMessageText ? renderMessageText(item.text, item) : /* @__PURE__ */ jsx17(UserMessageBody, { messageId: item.id, text: item.text, children: /* @__PURE__ */ jsx17(Markdown, { children: item.text }) }) }) : null,
|
|
8735
|
+
(item.annotations?.length ?? 0) > 0 ? /* @__PURE__ */ jsx17(
|
|
8846
8736
|
TimelineAnnotationsChip,
|
|
8847
8737
|
{
|
|
8848
8738
|
annotations: item.annotations ?? [],
|
|
@@ -8852,17 +8742,17 @@ ${annotation.note}`).join("\n\n"),
|
|
|
8852
8742
|
] })
|
|
8853
8743
|
}
|
|
8854
8744
|
),
|
|
8855
|
-
deliveryFailed ? /* @__PURE__ */
|
|
8745
|
+
deliveryFailed ? /* @__PURE__ */ jsxs13(
|
|
8856
8746
|
"div",
|
|
8857
8747
|
{
|
|
8858
8748
|
role: "status",
|
|
8859
8749
|
className: "flex max-w-full items-center gap-2 px-1 text-og-xs text-og-status-failed",
|
|
8860
8750
|
children: [
|
|
8861
|
-
/* @__PURE__ */
|
|
8862
|
-
/* @__PURE__ */
|
|
8863
|
-
/* @__PURE__ */
|
|
8751
|
+
/* @__PURE__ */ jsxs13("span", { className: "inline-flex items-center gap-1", title: item.delivery?.error, children: [
|
|
8752
|
+
/* @__PURE__ */ jsx17(TriangleAlertIcon3, { className: "size-3.5 shrink-0", "aria-hidden": "true" }),
|
|
8753
|
+
/* @__PURE__ */ jsx17("span", { children: "Message not sent" })
|
|
8864
8754
|
] }),
|
|
8865
|
-
item.delivery?.onRetry ? /* @__PURE__ */
|
|
8755
|
+
item.delivery?.onRetry ? /* @__PURE__ */ jsx17(
|
|
8866
8756
|
"button",
|
|
8867
8757
|
{
|
|
8868
8758
|
type: "button",
|
|
@@ -8871,7 +8761,7 @@ ${annotation.note}`).join("\n\n"),
|
|
|
8871
8761
|
children: "Retry"
|
|
8872
8762
|
}
|
|
8873
8763
|
) : null,
|
|
8874
|
-
item.delivery?.onRemove ? /* @__PURE__ */
|
|
8764
|
+
item.delivery?.onRemove ? /* @__PURE__ */ jsx17(
|
|
8875
8765
|
"button",
|
|
8876
8766
|
{
|
|
8877
8767
|
type: "button",
|
|
@@ -8893,26 +8783,26 @@ function HumanInputConversationRow({ item }) {
|
|
|
8893
8783
|
);
|
|
8894
8784
|
const settledLabel = item.response.outcome === "answered" ? "You answered" : item.response.outcome === "skipped" ? "Skipped" : item.response.outcome === "expired" ? "Expired" : "Cancelled";
|
|
8895
8785
|
const copyText = humanInputConversationCopyText(item, settledLabel);
|
|
8896
|
-
return /* @__PURE__ */
|
|
8786
|
+
return /* @__PURE__ */ jsxs13(
|
|
8897
8787
|
"div",
|
|
8898
8788
|
{
|
|
8899
8789
|
className: cn(enter && "animate-og-enter", "flex w-full flex-col gap-2.5"),
|
|
8900
8790
|
"data-human-input-history": item.requestId,
|
|
8901
8791
|
children: [
|
|
8902
|
-
/* @__PURE__ */
|
|
8903
|
-
/* @__PURE__ */
|
|
8904
|
-
/* @__PURE__ */
|
|
8905
|
-
/* @__PURE__ */
|
|
8906
|
-
/* @__PURE__ */
|
|
8907
|
-
question.label ? /* @__PURE__ */
|
|
8908
|
-
multipleQuestions ? /* @__PURE__ */
|
|
8792
|
+
/* @__PURE__ */ jsxs13("div", { className: "flex max-w-[90%] items-start gap-3 rounded-og-lg rounded-bl-og-xs border border-og-border bg-og-surface-1 px-3.5 py-3 sm:max-w-[82%]", children: [
|
|
8793
|
+
/* @__PURE__ */ jsx17("span", { className: "mt-0.5 inline-flex size-8 shrink-0 items-center justify-center rounded-og-md bg-og-status-waiting/10 text-og-status-waiting", children: /* @__PURE__ */ jsx17(MessageCircleQuestionIcon3, { "aria-hidden": "true", className: "size-4" }) }),
|
|
8794
|
+
/* @__PURE__ */ jsxs13("div", { className: "min-w-0 flex-1", children: [
|
|
8795
|
+
/* @__PURE__ */ jsx17("p", { className: "text-og-xs font-medium text-og-fg-subtle", children: "Agent asked" }),
|
|
8796
|
+
/* @__PURE__ */ jsx17("div", { className: "mt-1.5 space-y-3", children: item.questions.length > 0 ? item.questions.map((question, index) => /* @__PURE__ */ jsxs13("div", { children: [
|
|
8797
|
+
question.label ? /* @__PURE__ */ jsxs13("p", { className: "text-og-sm font-semibold text-og-fg", children: [
|
|
8798
|
+
multipleQuestions ? /* @__PURE__ */ jsxs13("span", { className: "mr-1.5 tabular-nums text-og-fg-muted", children: [
|
|
8909
8799
|
index + 1,
|
|
8910
8800
|
"."
|
|
8911
8801
|
] }) : null,
|
|
8912
8802
|
multipleQuestions ? " " : null,
|
|
8913
8803
|
question.label
|
|
8914
8804
|
] }) : null,
|
|
8915
|
-
/* @__PURE__ */
|
|
8805
|
+
/* @__PURE__ */ jsxs13(
|
|
8916
8806
|
"p",
|
|
8917
8807
|
{
|
|
8918
8808
|
className: cn(
|
|
@@ -8920,7 +8810,7 @@ function HumanInputConversationRow({ item }) {
|
|
|
8920
8810
|
question.label && "mt-0.5 text-og-sm text-og-fg-muted"
|
|
8921
8811
|
),
|
|
8922
8812
|
children: [
|
|
8923
|
-
!question.label && multipleQuestions ? /* @__PURE__ */
|
|
8813
|
+
!question.label && multipleQuestions ? /* @__PURE__ */ jsxs13("span", { className: "mr-1.5 tabular-nums text-og-fg-muted", children: [
|
|
8924
8814
|
index + 1,
|
|
8925
8815
|
"."
|
|
8926
8816
|
] }) : null,
|
|
@@ -8929,29 +8819,29 @@ function HumanInputConversationRow({ item }) {
|
|
|
8929
8819
|
]
|
|
8930
8820
|
}
|
|
8931
8821
|
)
|
|
8932
|
-
] }, question.id)) : /* @__PURE__ */
|
|
8822
|
+
] }, question.id)) : /* @__PURE__ */ jsx17("p", { className: "text-og-sm text-og-fg-muted", children: "The agent requested structured input." }) })
|
|
8933
8823
|
] })
|
|
8934
8824
|
] }),
|
|
8935
|
-
/* @__PURE__ */
|
|
8825
|
+
/* @__PURE__ */ jsx17("div", { className: "flex justify-end", children: /* @__PURE__ */ jsx17(
|
|
8936
8826
|
CopyHoverFrame,
|
|
8937
8827
|
{
|
|
8938
8828
|
copyText,
|
|
8939
8829
|
label: "Copy answer",
|
|
8940
8830
|
className: "w-fit max-w-[90%] min-w-0 sm:max-w-[82%]",
|
|
8941
|
-
trailing: /* @__PURE__ */
|
|
8942
|
-
children: /* @__PURE__ */
|
|
8943
|
-
/* @__PURE__ */
|
|
8944
|
-
item.response.outcome === "answered" ? /* @__PURE__ */
|
|
8945
|
-
multipleQuestions ? /* @__PURE__ */
|
|
8946
|
-
/* @__PURE__ */
|
|
8831
|
+
trailing: /* @__PURE__ */ jsx17(MessageFooterTime, { occurredAt: item.occurredAt }),
|
|
8832
|
+
children: /* @__PURE__ */ jsxs13("div", { className: MESSAGE_BUBBLE_CLASS, children: [
|
|
8833
|
+
/* @__PURE__ */ jsx17("p", { className: "text-og-xs font-medium text-og-fg-subtle", children: settledLabel }),
|
|
8834
|
+
item.response.outcome === "answered" ? /* @__PURE__ */ jsx17("div", { className: "mt-1.5 space-y-3", children: item.answers.length > 0 ? item.answers.map((answer, answerIndex) => /* @__PURE__ */ jsxs13("div", { children: [
|
|
8835
|
+
multipleQuestions ? /* @__PURE__ */ jsxs13("p", { className: "text-og-sm font-semibold text-og-fg", children: [
|
|
8836
|
+
/* @__PURE__ */ jsxs13("span", { className: "mr-1.5 tabular-nums text-og-fg-muted", children: [
|
|
8947
8837
|
questionNumberById.get(answer.questionId) ?? answerIndex + 1,
|
|
8948
8838
|
"."
|
|
8949
8839
|
] }),
|
|
8950
8840
|
" ",
|
|
8951
8841
|
answer.label
|
|
8952
8842
|
] }) : null,
|
|
8953
|
-
/* @__PURE__ */
|
|
8954
|
-
] }, answer.questionId)) : /* @__PURE__ */
|
|
8843
|
+
/* @__PURE__ */ jsx17("div", { className: cn("text-og-md text-og-fg", multipleQuestions && "mt-0.5"), children: answer.values.length > 1 ? /* @__PURE__ */ jsx17("ul", { className: "list-disc space-y-0.5 pl-5", children: answer.values.map((value) => /* @__PURE__ */ jsx17("li", { children: value }, `${answer.questionId}-${value}`)) }) : /* @__PURE__ */ jsx17("p", { children: answer.values[0] || "Answered" }) })
|
|
8844
|
+
] }, answer.questionId)) : /* @__PURE__ */ jsx17("p", { children: "Answered" }) }) : null
|
|
8955
8845
|
] })
|
|
8956
8846
|
}
|
|
8957
8847
|
) })
|
|
@@ -8978,15 +8868,15 @@ function AgentMessageRow({
|
|
|
8978
8868
|
renderMessageText
|
|
8979
8869
|
}) {
|
|
8980
8870
|
const enter = useEntranceAnimation();
|
|
8981
|
-
const body = renderMessageText ? renderMessageText(item.text, item) : /* @__PURE__ */
|
|
8982
|
-
return /* @__PURE__ */
|
|
8871
|
+
const body = renderMessageText ? renderMessageText(item.text, item) : /* @__PURE__ */ jsx17(Markdown, { streaming: item.streaming, children: item.text });
|
|
8872
|
+
return /* @__PURE__ */ jsx17("div", { "data-og-annotation-source-key": item.annotationSource?.eventId, children: /* @__PURE__ */ jsx17(
|
|
8983
8873
|
CopyHoverFrame,
|
|
8984
8874
|
{
|
|
8985
8875
|
copyText: item.text,
|
|
8986
8876
|
label: "Copy message",
|
|
8987
8877
|
align: "start",
|
|
8988
8878
|
className: cn(enter && "animate-og-enter", "min-w-0 text-og-md leading-7 text-og-fg"),
|
|
8989
|
-
trailing: item.streaming ? null : /* @__PURE__ */
|
|
8879
|
+
trailing: item.streaming ? null : /* @__PURE__ */ jsx17(MessageFooterTime, { occurredAt: item.occurredAt }),
|
|
8990
8880
|
children: body
|
|
8991
8881
|
}
|
|
8992
8882
|
) });
|
|
@@ -9028,7 +8918,7 @@ function WorkerCompletionRow({
|
|
|
9028
8918
|
onOpenSession
|
|
9029
8919
|
}) {
|
|
9030
8920
|
const enter = useEntranceAnimation();
|
|
9031
|
-
const [open, setOpen] =
|
|
8921
|
+
const [open, setOpen] = useState13(false);
|
|
9032
8922
|
const meta = workerCompletionMeta(item);
|
|
9033
8923
|
const Icon = meta.icon;
|
|
9034
8924
|
const showPausedReason = item.childStatus !== "failed" && item.goalStatus === "paused" && !!item.pausedReason?.trim();
|
|
@@ -9038,17 +8928,17 @@ function WorkerCompletionRow({
|
|
|
9038
8928
|
...showPausedReason ? [{ label: "Paused because", value: item.pausedReason.trim(), muted: true }] : []
|
|
9039
8929
|
];
|
|
9040
8930
|
const hasDetails = details.length > 0;
|
|
9041
|
-
return /* @__PURE__ */
|
|
9042
|
-
/* @__PURE__ */
|
|
9043
|
-
/* @__PURE__ */
|
|
9044
|
-
/* @__PURE__ */
|
|
9045
|
-
/* @__PURE__ */
|
|
9046
|
-
item.goalText ? /* @__PURE__ */
|
|
8931
|
+
return /* @__PURE__ */ jsx17("div", { className: cn(enter && "animate-og-enter", "min-w-0"), children: /* @__PURE__ */ jsxs13("div", { className: cn("flex flex-col gap-2 border-l-2 pl-3", meta.accentClass), children: [
|
|
8932
|
+
/* @__PURE__ */ jsxs13("div", { className: "flex items-start gap-2.5", children: [
|
|
8933
|
+
/* @__PURE__ */ jsx17("span", { className: cn("mt-0.5 shrink-0", meta.iconClass), children: /* @__PURE__ */ jsx17(Icon, { className: "size-4" }) }),
|
|
8934
|
+
/* @__PURE__ */ jsx17("div", { className: "min-w-0 flex-1", children: /* @__PURE__ */ jsxs13("p", { className: "text-og-base leading-5 text-og-fg", children: [
|
|
8935
|
+
/* @__PURE__ */ jsx17("span", { className: "font-medium", children: meta.label }),
|
|
8936
|
+
item.goalText ? /* @__PURE__ */ jsxs13("span", { className: "text-og-fg-muted", children: [
|
|
9047
8937
|
" \xB7 ",
|
|
9048
8938
|
truncate(item.goalText, 90)
|
|
9049
8939
|
] }) : null
|
|
9050
8940
|
] }) }),
|
|
9051
|
-
item.childSessionId && onOpenSession ? /* @__PURE__ */
|
|
8941
|
+
item.childSessionId && onOpenSession ? /* @__PURE__ */ jsxs13(
|
|
9052
8942
|
"button",
|
|
9053
8943
|
{
|
|
9054
8944
|
type: "button",
|
|
@@ -9060,13 +8950,13 @@ function WorkerCompletionRow({
|
|
|
9060
8950
|
),
|
|
9061
8951
|
children: [
|
|
9062
8952
|
"View session",
|
|
9063
|
-
/* @__PURE__ */
|
|
8953
|
+
/* @__PURE__ */ jsx17(ArrowRightIcon2, { className: "size-3.5" })
|
|
9064
8954
|
]
|
|
9065
8955
|
}
|
|
9066
8956
|
) : null
|
|
9067
8957
|
] }),
|
|
9068
|
-
hasDetails ? /* @__PURE__ */
|
|
9069
|
-
/* @__PURE__ */
|
|
8958
|
+
hasDetails ? /* @__PURE__ */ jsxs13(Collapsible2.Root, { open, onOpenChange: setOpen, children: [
|
|
8959
|
+
/* @__PURE__ */ jsx17(Collapsible2.Trigger, { asChild: true, children: /* @__PURE__ */ jsxs13(
|
|
9070
8960
|
"button",
|
|
9071
8961
|
{
|
|
9072
8962
|
type: "button",
|
|
@@ -9075,14 +8965,14 @@ function WorkerCompletionRow({
|
|
|
9075
8965
|
"outline-hidden transition-colors duration-150 hover:text-og-fg-muted focus-visible:ring-2 focus-visible:ring-og-accent"
|
|
9076
8966
|
),
|
|
9077
8967
|
children: [
|
|
9078
|
-
/* @__PURE__ */
|
|
8968
|
+
/* @__PURE__ */ jsx17(ChevronRightIcon3, { className: "size-3 transition-transform duration-150 ease-og-in-out group-data-[state=open]/wc:rotate-90" }),
|
|
9079
8969
|
open ? "Hide details" : "Show details"
|
|
9080
8970
|
]
|
|
9081
8971
|
}
|
|
9082
8972
|
) }),
|
|
9083
|
-
/* @__PURE__ */
|
|
9084
|
-
/* @__PURE__ */
|
|
9085
|
-
/* @__PURE__ */
|
|
8973
|
+
/* @__PURE__ */ jsx17(Collapsible2.Content, { className: "overflow-hidden data-[state=closed]:animate-og-collapse data-[state=open]:animate-og-expand", children: /* @__PURE__ */ jsx17("div", { className: "ml-1 mt-1.5 flex flex-col gap-2.5", children: details.map((detail) => /* @__PURE__ */ jsxs13("div", { className: "min-w-0", children: [
|
|
8974
|
+
/* @__PURE__ */ jsx17("p", { className: "mb-1 text-og-xs font-medium uppercase tracking-[0.08em] text-og-fg-subtle", children: detail.label }),
|
|
8975
|
+
/* @__PURE__ */ jsx17(
|
|
9086
8976
|
"p",
|
|
9087
8977
|
{
|
|
9088
8978
|
className: cn(
|
|
@@ -9099,7 +8989,7 @@ function WorkerCompletionRow({
|
|
|
9099
8989
|
function SessionStatusRow({ item }) {
|
|
9100
8990
|
const enter = useEntranceAnimation();
|
|
9101
8991
|
const meta = SESSION_STATUS_META[item.status];
|
|
9102
|
-
return /* @__PURE__ */
|
|
8992
|
+
return /* @__PURE__ */ jsxs13(
|
|
9103
8993
|
"div",
|
|
9104
8994
|
{
|
|
9105
8995
|
className: cn(
|
|
@@ -9108,14 +8998,14 @@ function SessionStatusRow({ item }) {
|
|
|
9108
8998
|
),
|
|
9109
8999
|
role: "status",
|
|
9110
9000
|
children: [
|
|
9111
|
-
/* @__PURE__ */
|
|
9112
|
-
/* @__PURE__ */
|
|
9113
|
-
/* @__PURE__ */
|
|
9001
|
+
/* @__PURE__ */ jsx17("span", { className: "h-px flex-1 bg-og-border" }),
|
|
9002
|
+
/* @__PURE__ */ jsxs13("span", { className: "inline-flex items-center gap-1.5", children: [
|
|
9003
|
+
/* @__PURE__ */ jsx17(StatusDot, { status: item.status, className: "size-1" }),
|
|
9114
9004
|
meta.label.toLowerCase(),
|
|
9115
9005
|
" \xB7 ",
|
|
9116
9006
|
formatRelativeTime(item.occurredAt)
|
|
9117
9007
|
] }),
|
|
9118
|
-
/* @__PURE__ */
|
|
9008
|
+
/* @__PURE__ */ jsx17("span", { className: "h-px flex-1 bg-og-border" })
|
|
9119
9009
|
]
|
|
9120
9010
|
}
|
|
9121
9011
|
);
|
|
@@ -9150,7 +9040,7 @@ var GOAL_META = {
|
|
|
9150
9040
|
function GoalRow({ item }) {
|
|
9151
9041
|
const enter = useEntranceAnimation();
|
|
9152
9042
|
const { label, pill, icon: Icon } = GOAL_META[item.action];
|
|
9153
|
-
return /* @__PURE__ */
|
|
9043
|
+
return /* @__PURE__ */ jsx17("div", { className: cn(enter && "animate-og-enter", "flex justify-center"), children: /* @__PURE__ */ jsxs13(
|
|
9154
9044
|
"span",
|
|
9155
9045
|
{
|
|
9156
9046
|
className: cn(
|
|
@@ -9158,8 +9048,8 @@ function GoalRow({ item }) {
|
|
|
9158
9048
|
pill
|
|
9159
9049
|
),
|
|
9160
9050
|
children: [
|
|
9161
|
-
/* @__PURE__ */
|
|
9162
|
-
/* @__PURE__ */
|
|
9051
|
+
/* @__PURE__ */ jsx17(Icon, { className: "size-3.5 shrink-0" }),
|
|
9052
|
+
/* @__PURE__ */ jsxs13("span", { className: "truncate", children: [
|
|
9163
9053
|
label,
|
|
9164
9054
|
item.text ? `: ${truncate(item.text, 90)}` : ""
|
|
9165
9055
|
] })
|
|
@@ -9175,7 +9065,7 @@ function MachineInputBatchRow({
|
|
|
9175
9065
|
const label = machineInputBatchLabel(item.members);
|
|
9176
9066
|
const single = item.members.length === 1 ? item.members[0] : null;
|
|
9177
9067
|
if (single?.kind === "media_generation_result" && single.result) {
|
|
9178
|
-
return /* @__PURE__ */
|
|
9068
|
+
return /* @__PURE__ */ jsx17(
|
|
9179
9069
|
VideoGenerationResultRow,
|
|
9180
9070
|
{
|
|
9181
9071
|
result: single.result,
|
|
@@ -9185,9 +9075,9 @@ function MachineInputBatchRow({
|
|
|
9185
9075
|
}
|
|
9186
9076
|
const singleSummary = single ? cleanMachineInputSummary(single.summary) : "";
|
|
9187
9077
|
const showCollapsedSummary = single != null && machineInputSummaryIsUseful(single.kind, singleSummary);
|
|
9188
|
-
return /* @__PURE__ */
|
|
9189
|
-
/* @__PURE__ */
|
|
9190
|
-
/* @__PURE__ */
|
|
9078
|
+
return /* @__PURE__ */ jsxs13("div", { className: cn(enter && "animate-og-enter", "flex flex-col items-center gap-1.5"), children: [
|
|
9079
|
+
/* @__PURE__ */ jsxs13("details", { className: "group w-full max-w-full", "data-og-machine-input-batch": "", children: [
|
|
9080
|
+
/* @__PURE__ */ jsx17("summary", { className: "flex cursor-pointer list-none justify-center [&::-webkit-details-marker]:hidden", children: /* @__PURE__ */ jsxs13(
|
|
9191
9081
|
"span",
|
|
9192
9082
|
{
|
|
9193
9083
|
className: cn(
|
|
@@ -9195,18 +9085,18 @@ function MachineInputBatchRow({
|
|
|
9195
9085
|
NEUTRAL_PILL
|
|
9196
9086
|
),
|
|
9197
9087
|
children: [
|
|
9198
|
-
/* @__PURE__ */
|
|
9088
|
+
/* @__PURE__ */ jsx17(
|
|
9199
9089
|
ChevronRightIcon3,
|
|
9200
9090
|
{
|
|
9201
9091
|
"aria-hidden": true,
|
|
9202
9092
|
className: "size-3.5 shrink-0 transition-transform group-open:rotate-90"
|
|
9203
9093
|
}
|
|
9204
9094
|
),
|
|
9205
|
-
/* @__PURE__ */
|
|
9095
|
+
/* @__PURE__ */ jsx17("span", { className: "truncate", children: label })
|
|
9206
9096
|
]
|
|
9207
9097
|
}
|
|
9208
9098
|
) }),
|
|
9209
|
-
/* @__PURE__ */
|
|
9099
|
+
/* @__PURE__ */ jsx17("div", { className: "mx-auto mt-2 w-full max-w-lg space-y-2 border-t border-og-border/50 pt-2", children: item.members.map((member) => /* @__PURE__ */ jsx17(
|
|
9210
9100
|
MachineInputRow,
|
|
9211
9101
|
{
|
|
9212
9102
|
member,
|
|
@@ -9215,7 +9105,7 @@ function MachineInputBatchRow({
|
|
|
9215
9105
|
member.id
|
|
9216
9106
|
)) })
|
|
9217
9107
|
] }),
|
|
9218
|
-
showCollapsedSummary ? /* @__PURE__ */
|
|
9108
|
+
showCollapsedSummary ? /* @__PURE__ */ jsx17("p", { className: "max-w-lg px-3 text-center text-og-xs leading-4 text-og-fg-subtle", children: truncate(singleSummary, 160) }) : null
|
|
9219
9109
|
] });
|
|
9220
9110
|
}
|
|
9221
9111
|
function MachineInputRow({
|
|
@@ -9223,7 +9113,7 @@ function MachineInputRow({
|
|
|
9223
9113
|
loadVideoArtifactPlayback
|
|
9224
9114
|
}) {
|
|
9225
9115
|
if (member.kind === "media_generation_result" && member.result) {
|
|
9226
|
-
return /* @__PURE__ */
|
|
9116
|
+
return /* @__PURE__ */ jsx17(
|
|
9227
9117
|
VideoGenerationResultRow,
|
|
9228
9118
|
{
|
|
9229
9119
|
result: member.result,
|
|
@@ -9234,15 +9124,15 @@ function MachineInputRow({
|
|
|
9234
9124
|
}
|
|
9235
9125
|
const source = readableMachineInputSource(member.sourceId);
|
|
9236
9126
|
const summary = cleanMachineInputSummary(member.summary);
|
|
9237
|
-
return /* @__PURE__ */
|
|
9238
|
-
/* @__PURE__ */
|
|
9239
|
-
/* @__PURE__ */
|
|
9240
|
-
/* @__PURE__ */
|
|
9241
|
-
source && /* @__PURE__ */
|
|
9127
|
+
return /* @__PURE__ */ jsxs13("div", { className: "flex min-w-0 items-start gap-2.5", children: [
|
|
9128
|
+
/* @__PURE__ */ jsx17("span", { className: "mt-2 size-1.5 shrink-0 rounded-full bg-og-fg-subtle", "aria-hidden": true }),
|
|
9129
|
+
/* @__PURE__ */ jsxs13("div", { className: "min-w-0 flex-1", children: [
|
|
9130
|
+
/* @__PURE__ */ jsx17("span", { className: "text-og-control font-medium text-og-fg-muted", children: MACHINE_INPUT_META[member.kind] }),
|
|
9131
|
+
source && /* @__PURE__ */ jsxs13("span", { className: "ml-1.5 text-og-control text-og-fg-subtle", children: [
|
|
9242
9132
|
"from ",
|
|
9243
9133
|
source
|
|
9244
9134
|
] }),
|
|
9245
|
-
summary ? /* @__PURE__ */
|
|
9135
|
+
summary ? /* @__PURE__ */ jsx17("p", { className: "mt-0.5 whitespace-pre-wrap break-words text-og-menu leading-5 text-og-fg", children: truncate(summary, 320) }) : null
|
|
9246
9136
|
] })
|
|
9247
9137
|
] });
|
|
9248
9138
|
}
|
|
@@ -9253,7 +9143,7 @@ function VideoGenerationResultRow({
|
|
|
9253
9143
|
}) {
|
|
9254
9144
|
const enter = useEntranceAnimation();
|
|
9255
9145
|
if (result.status !== "ready") {
|
|
9256
|
-
return /* @__PURE__ */
|
|
9146
|
+
return /* @__PURE__ */ jsxs13(
|
|
9257
9147
|
"div",
|
|
9258
9148
|
{
|
|
9259
9149
|
className: cn(
|
|
@@ -9261,18 +9151,18 @@ function VideoGenerationResultRow({
|
|
|
9261
9151
|
"mx-auto w-full max-w-lg rounded-og-md border border-og-status-failed/30 bg-og-status-failed/5 px-3.5 py-3"
|
|
9262
9152
|
),
|
|
9263
9153
|
children: [
|
|
9264
|
-
/* @__PURE__ */
|
|
9265
|
-
/* @__PURE__ */
|
|
9154
|
+
/* @__PURE__ */ jsxs13("div", { className: "flex items-center gap-2 text-og-sm font-medium text-og-status-failed", children: [
|
|
9155
|
+
/* @__PURE__ */ jsx17(XCircleIcon, { "aria-hidden": true, className: "size-4" }),
|
|
9266
9156
|
"Video generation failed"
|
|
9267
9157
|
] }),
|
|
9268
|
-
/* @__PURE__ */
|
|
9158
|
+
/* @__PURE__ */ jsx17("p", { className: "mt-1 text-og-sm leading-5 text-og-fg-muted", children: result.boundedPublicReason })
|
|
9269
9159
|
]
|
|
9270
9160
|
}
|
|
9271
9161
|
);
|
|
9272
9162
|
}
|
|
9273
9163
|
const { receipt } = result;
|
|
9274
9164
|
const facts = receipt.video;
|
|
9275
|
-
return /* @__PURE__ */
|
|
9165
|
+
return /* @__PURE__ */ jsxs13(
|
|
9276
9166
|
"section",
|
|
9277
9167
|
{
|
|
9278
9168
|
"aria-label": "Generated video",
|
|
@@ -9282,18 +9172,18 @@ function VideoGenerationResultRow({
|
|
|
9282
9172
|
compact && "max-w-lg"
|
|
9283
9173
|
),
|
|
9284
9174
|
children: [
|
|
9285
|
-
loadVideoArtifactPlayback ? /* @__PURE__ */
|
|
9175
|
+
loadVideoArtifactPlayback ? /* @__PURE__ */ jsx17(
|
|
9286
9176
|
GeneratedVideoPlayer,
|
|
9287
9177
|
{
|
|
9288
9178
|
receipt,
|
|
9289
9179
|
loadPlaybackSource: loadVideoArtifactPlayback,
|
|
9290
9180
|
className: "rounded-none border-0 shadow-none"
|
|
9291
9181
|
}
|
|
9292
|
-
) : /* @__PURE__ */
|
|
9293
|
-
/* @__PURE__ */
|
|
9294
|
-
/* @__PURE__ */
|
|
9295
|
-
/* @__PURE__ */
|
|
9296
|
-
/* @__PURE__ */
|
|
9182
|
+
) : /* @__PURE__ */ jsx17("div", { className: "flex aspect-video items-center justify-center bg-og-surface-2 text-og-fg-subtle", children: /* @__PURE__ */ jsx17(PlayIcon2, { "aria-hidden": true, className: "size-6" }) }),
|
|
9183
|
+
/* @__PURE__ */ jsxs13("div", { className: "flex items-center justify-between gap-4 px-3.5 py-2.5", children: [
|
|
9184
|
+
/* @__PURE__ */ jsxs13("div", { className: "min-w-0", children: [
|
|
9185
|
+
/* @__PURE__ */ jsx17("p", { className: "text-og-sm font-medium text-og-fg", children: "Generated video" }),
|
|
9186
|
+
/* @__PURE__ */ jsxs13("p", { className: "truncate text-og-xs text-og-fg-subtle", children: [
|
|
9297
9187
|
facts.width,
|
|
9298
9188
|
"\xD7",
|
|
9299
9189
|
facts.height,
|
|
@@ -9302,7 +9192,7 @@ function VideoGenerationResultRow({
|
|
|
9302
9192
|
facts.hasAudio ? " \xB7 Audio" : ""
|
|
9303
9193
|
] })
|
|
9304
9194
|
] }),
|
|
9305
|
-
/* @__PURE__ */
|
|
9195
|
+
/* @__PURE__ */ jsx17(CheckCircle2Icon, { "aria-label": "Ready", className: "size-4 shrink-0 text-og-status-success" })
|
|
9306
9196
|
] })
|
|
9307
9197
|
]
|
|
9308
9198
|
}
|
|
@@ -9314,7 +9204,7 @@ function formatVideoDuration(seconds) {
|
|
|
9314
9204
|
function NoticeRow({ item }) {
|
|
9315
9205
|
const enter = useEntranceAnimation();
|
|
9316
9206
|
const tone = item.tone === "failed" ? "border-og-status-failed/35 bg-og-status-failed/10 text-og-status-failed" : item.tone === "waiting" ? WAITING_PILL_CLASS : "border-og-border bg-og-surface-1 text-og-fg-muted";
|
|
9317
|
-
return /* @__PURE__ */
|
|
9207
|
+
return /* @__PURE__ */ jsxs13(
|
|
9318
9208
|
"div",
|
|
9319
9209
|
{
|
|
9320
9210
|
className: cn(
|
|
@@ -9324,20 +9214,20 @@ function NoticeRow({ item }) {
|
|
|
9324
9214
|
),
|
|
9325
9215
|
role: "status",
|
|
9326
9216
|
children: [
|
|
9327
|
-
/* @__PURE__ */
|
|
9217
|
+
/* @__PURE__ */ jsx17(
|
|
9328
9218
|
TriangleAlertIcon3,
|
|
9329
9219
|
{
|
|
9330
9220
|
className: cn("mt-0.5 size-4 shrink-0", item.tone === "cancelled" && "opacity-60")
|
|
9331
9221
|
}
|
|
9332
9222
|
),
|
|
9333
|
-
/* @__PURE__ */
|
|
9334
|
-
/* @__PURE__ */
|
|
9335
|
-
item.details ? /* @__PURE__ */
|
|
9336
|
-
/* @__PURE__ */
|
|
9337
|
-
/* @__PURE__ */
|
|
9223
|
+
/* @__PURE__ */ jsxs13("div", { className: "min-w-0 flex-1", children: [
|
|
9224
|
+
/* @__PURE__ */ jsx17("span", { className: "whitespace-pre-wrap break-words", children: item.text }),
|
|
9225
|
+
item.details ? /* @__PURE__ */ jsxs13("details", { className: "mt-2 text-og-control", children: [
|
|
9226
|
+
/* @__PURE__ */ jsx17("summary", { className: "cursor-pointer font-medium", children: item.details.label }),
|
|
9227
|
+
/* @__PURE__ */ jsx17("pre", { className: "mt-2 max-h-64 overflow-auto whitespace-pre-wrap break-all rounded-og-sm bg-black/5 p-2 font-mono dark:bg-white/5", children: JSON.stringify(item.details.value, null, 2) })
|
|
9338
9228
|
] }) : null
|
|
9339
9229
|
] }),
|
|
9340
|
-
item.action ? /* @__PURE__ */
|
|
9230
|
+
item.action ? /* @__PURE__ */ jsx17(
|
|
9341
9231
|
"a",
|
|
9342
9232
|
{
|
|
9343
9233
|
className: "shrink-0 rounded-og-sm border border-current/25 px-2 py-1 text-og-control font-medium hover:bg-current/10",
|
|
@@ -9357,8 +9247,8 @@ function AuthNeededRow({
|
|
|
9357
9247
|
resolveProviderLogo
|
|
9358
9248
|
}) {
|
|
9359
9249
|
const enter = useEntranceAnimation();
|
|
9360
|
-
const [busy, setBusy] =
|
|
9361
|
-
const [failed, setFailed] =
|
|
9250
|
+
const [busy, setBusy] = useState13(false);
|
|
9251
|
+
const [failed, setFailed] = useState13(false);
|
|
9362
9252
|
const recommendation = item.capability ?? null;
|
|
9363
9253
|
const provider = recommendation?.name ?? (item.serverId === "codex_apps" ? "Codex Apps" : providerLabel(item.providerDomain));
|
|
9364
9254
|
const unavailable = item.reason === "personal_authority_unavailable" || item.reason === "unsupported_auth" || item.reason === "resource_scope_unavailable";
|
|
@@ -9380,30 +9270,30 @@ function AuthNeededRow({
|
|
|
9380
9270
|
setBusy(false);
|
|
9381
9271
|
}
|
|
9382
9272
|
};
|
|
9383
|
-
return /* @__PURE__ */
|
|
9384
|
-
/* @__PURE__ */
|
|
9385
|
-
/* @__PURE__ */
|
|
9386
|
-
/* @__PURE__ */
|
|
9273
|
+
return /* @__PURE__ */ jsxs13("div", { className: cn(enter && "animate-og-enter", "flex flex-col gap-2"), role: "status", children: [
|
|
9274
|
+
/* @__PURE__ */ jsxs13("div", { className: "flex flex-col gap-3 rounded-og-lg border border-og-border bg-og-surface-1 px-3.5 py-3 sm:flex-row sm:items-center", children: [
|
|
9275
|
+
/* @__PURE__ */ jsxs13("div", { className: "flex min-w-0 flex-1 items-center gap-3", children: [
|
|
9276
|
+
/* @__PURE__ */ jsx17(
|
|
9387
9277
|
AuthProviderLogo,
|
|
9388
9278
|
{
|
|
9389
9279
|
src: resolveProviderLogo?.(item.providerDomain) ?? null,
|
|
9390
9280
|
label: provider
|
|
9391
9281
|
}
|
|
9392
9282
|
),
|
|
9393
|
-
/* @__PURE__ */
|
|
9394
|
-
/* @__PURE__ */
|
|
9395
|
-
/* @__PURE__ */
|
|
9396
|
-
recommendation ? /* @__PURE__ */
|
|
9283
|
+
/* @__PURE__ */ jsxs13("div", { className: "min-w-0", children: [
|
|
9284
|
+
/* @__PURE__ */ jsx17("p", { className: "truncate text-og-md font-medium text-og-fg", children: title }),
|
|
9285
|
+
/* @__PURE__ */ jsx17("p", { className: "line-clamp-2 text-og-sm text-og-fg-subtle", children: reasonLine }),
|
|
9286
|
+
recommendation ? /* @__PURE__ */ jsxs13("p", { className: "mt-1 truncate text-og-xs text-og-fg-muted", children: [
|
|
9397
9287
|
"Provider: ",
|
|
9398
9288
|
item.providerDomain
|
|
9399
9289
|
] }) : null,
|
|
9400
|
-
recommendation && recommendation.requiredVariables.length > 0 ? /* @__PURE__ */
|
|
9290
|
+
recommendation && recommendation.requiredVariables.length > 0 ? /* @__PURE__ */ jsxs13("p", { className: "mt-1 truncate text-og-xs text-og-fg-muted", children: [
|
|
9401
9291
|
"Needs variables: ",
|
|
9402
9292
|
recommendation.requiredVariables.join(", ")
|
|
9403
9293
|
] }) : null
|
|
9404
9294
|
] })
|
|
9405
9295
|
] }),
|
|
9406
|
-
!unavailable && onReconnect ? /* @__PURE__ */
|
|
9296
|
+
!unavailable && onReconnect ? /* @__PURE__ */ jsxs13(
|
|
9407
9297
|
"button",
|
|
9408
9298
|
{
|
|
9409
9299
|
type: "button",
|
|
@@ -9414,11 +9304,11 @@ function AuthNeededRow({
|
|
|
9414
9304
|
"transition-colors hover:bg-og-accent-strong disabled:opacity-70 pointer-coarse:min-h-9"
|
|
9415
9305
|
),
|
|
9416
9306
|
children: [
|
|
9417
|
-
/* @__PURE__ */
|
|
9307
|
+
/* @__PURE__ */ jsx17(RefreshCwIcon, { className: cn("size-3.5", busy && "animate-og-spin"), "aria-hidden": true }),
|
|
9418
9308
|
busy ? "Opening\u2026" : actionLabel
|
|
9419
9309
|
]
|
|
9420
9310
|
}
|
|
9421
|
-
) : !unavailable && item.authorizationUrl ? /* @__PURE__ */
|
|
9311
|
+
) : !unavailable && item.authorizationUrl ? /* @__PURE__ */ jsxs13(
|
|
9422
9312
|
"a",
|
|
9423
9313
|
{
|
|
9424
9314
|
href: item.authorizationUrl,
|
|
@@ -9429,14 +9319,14 @@ function AuthNeededRow({
|
|
|
9429
9319
|
"transition-colors hover:bg-og-accent-strong pointer-coarse:min-h-9"
|
|
9430
9320
|
),
|
|
9431
9321
|
children: [
|
|
9432
|
-
/* @__PURE__ */
|
|
9322
|
+
/* @__PURE__ */ jsx17(RefreshCwIcon, { className: "size-3.5", "aria-hidden": true }),
|
|
9433
9323
|
actionLabel
|
|
9434
9324
|
]
|
|
9435
9325
|
}
|
|
9436
9326
|
) : null
|
|
9437
9327
|
] }),
|
|
9438
|
-
!unavailable ? /* @__PURE__ */
|
|
9439
|
-
failed ? /* @__PURE__ */
|
|
9328
|
+
!unavailable ? /* @__PURE__ */ jsx17("p", { className: "px-1 text-og-xs text-og-fg-subtle", children: recommendation ? "No access has been granted. Review and confirm the provider before continuing." : `This tool call wasn't replayed. After ${missing ? "connecting" : "reconnecting"}, send a new message to try again.` }) : null,
|
|
9329
|
+
failed ? /* @__PURE__ */ jsxs13("p", { className: "px-1 text-og-xs text-og-status-failed", children: [
|
|
9440
9330
|
"Couldn't start ",
|
|
9441
9331
|
missing ? "connecting" : "reconnecting",
|
|
9442
9332
|
" ",
|
|
@@ -9446,15 +9336,15 @@ function AuthNeededRow({
|
|
|
9446
9336
|
] });
|
|
9447
9337
|
}
|
|
9448
9338
|
function AuthProviderLogo({ src, label }) {
|
|
9449
|
-
const [failed, setFailed] =
|
|
9339
|
+
const [failed, setFailed] = useState13(false);
|
|
9450
9340
|
useEffect11(() => setFailed(false), [src]);
|
|
9451
9341
|
const showImage = src && !failed;
|
|
9452
|
-
return /* @__PURE__ */
|
|
9342
|
+
return /* @__PURE__ */ jsx17(
|
|
9453
9343
|
"span",
|
|
9454
9344
|
{
|
|
9455
9345
|
className: "relative flex size-10 shrink-0 items-center justify-center overflow-hidden rounded-og-md border border-og-border bg-og-surface-2 text-og-menu font-semibold text-og-fg-muted",
|
|
9456
9346
|
"aria-hidden": true,
|
|
9457
|
-
children: showImage ? /* @__PURE__ */
|
|
9347
|
+
children: showImage ? /* @__PURE__ */ jsx17(
|
|
9458
9348
|
"img",
|
|
9459
9349
|
{
|
|
9460
9350
|
src,
|
|
@@ -9464,7 +9354,7 @@ function AuthProviderLogo({ src, label }) {
|
|
|
9464
9354
|
className: "size-full object-contain p-1.5",
|
|
9465
9355
|
onError: () => setFailed(true)
|
|
9466
9356
|
}
|
|
9467
|
-
) : /* @__PURE__ */
|
|
9357
|
+
) : /* @__PURE__ */ jsx17("span", { children: monogram(label) })
|
|
9468
9358
|
}
|
|
9469
9359
|
);
|
|
9470
9360
|
}
|
|
@@ -9534,9 +9424,6 @@ export {
|
|
|
9534
9424
|
tailPeek,
|
|
9535
9425
|
unwrapMcpOutput,
|
|
9536
9426
|
DisclosureDefaultsProvider,
|
|
9537
|
-
useLightbox,
|
|
9538
|
-
useLightboxOptional,
|
|
9539
|
-
LightboxProvider,
|
|
9540
9427
|
ActivityDisclosure,
|
|
9541
9428
|
TermBlock,
|
|
9542
9429
|
PayloadBlock,
|
|
@@ -9568,4 +9455,4 @@ export {
|
|
|
9568
9455
|
MessageTimeline,
|
|
9569
9456
|
TimelineRow
|
|
9570
9457
|
};
|
|
9571
|
-
//# sourceMappingURL=chunk-
|
|
9458
|
+
//# sourceMappingURL=chunk-HQVCKCLG.js.map
|