@opengeni/react 3.7.0-canary.1 → 3.7.0-canary.3

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.
@@ -35,7 +35,7 @@ import {
35
35
  TooltipTrigger,
36
36
  useChatComposerController,
37
37
  useLightboxOptional
38
- } from "./chunk-INGB2N5R.js";
38
+ } from "./chunk-3IY6UZI6.js";
39
39
  import {
40
40
  ModelPolicyPicker
41
41
  } from "./chunk-4JFUT22W.js";
@@ -5753,6 +5753,27 @@ function StatusDot({ status, className }) {
5753
5753
  );
5754
5754
  }
5755
5755
 
5756
+ // src/components/child-session-link.tsx
5757
+ import { jsx as jsx16 } from "react/jsx-runtime";
5758
+ function ChildSessionLink({
5759
+ kind,
5760
+ sourceId,
5761
+ onOpenSession
5762
+ }) {
5763
+ if (!onOpenSession || !kind.startsWith("child_") || !/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(sourceId)) {
5764
+ return null;
5765
+ }
5766
+ return /* @__PURE__ */ jsx16(
5767
+ "button",
5768
+ {
5769
+ type: "button",
5770
+ onClick: () => onOpenSession(sourceId),
5771
+ className: "mt-1 rounded-og-sm text-og-xs font-medium text-og-accent underline-offset-4 hover:underline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-og-accent",
5772
+ children: "View session"
5773
+ }
5774
+ );
5775
+ }
5776
+
5756
5777
  // src/components/message-timeline.tsx
5757
5778
  import { dequal } from "dequal/lite";
5758
5779
  import {
@@ -6159,7 +6180,7 @@ var MACHINE_INPUT_META = {
6159
6180
  session_wait_timeout: "Wait ended",
6160
6181
  agent_message: "Agent update",
6161
6182
  agent_steer_instruction: "Agent direction",
6162
- child_terminal_result: "Agent finished",
6183
+ child_terminal_result: "Agent result received",
6163
6184
  media_generation_result: "Video update",
6164
6185
  child_requires_action: "Agent needs input",
6165
6186
  child_requires_action_resolved: "Agent unblocked",
@@ -6182,7 +6203,7 @@ function machineInputBatchLabel(members) {
6182
6203
  case "session_wait_timeout":
6183
6204
  return n === 1 ? "Wait ended" : `${n} waits ended`;
6184
6205
  case "child_terminal_result":
6185
- return n === 1 ? "Agent finished" : `${n} agents finished`;
6206
+ return n === 1 ? "Agent result received" : `${n} agent results received`;
6186
6207
  case "goal_continuation":
6187
6208
  return n === 1 ? "Goal continued" : `${n} goal continuations`;
6188
6209
  case "scheduled_occurrence":
@@ -6234,7 +6255,7 @@ function machineInputSummaryIsUseful(kind, cleanedSummary) {
6234
6255
  }
6235
6256
 
6236
6257
  // src/components/message-timeline.tsx
6237
- import { Fragment as Fragment5, jsx as jsx16, jsxs as jsxs11 } from "react/jsx-runtime";
6258
+ import { Fragment as Fragment5, jsx as jsx17, jsxs as jsxs11 } from "react/jsx-runtime";
6238
6259
  var TimelineAnnotationSelection = lazy3(() => import("./timeline-annotation-selection-3L7LHGG2.js"));
6239
6260
  var PIN_THRESHOLD_PX = 48;
6240
6261
  var JUMP_TO_LATEST_CATCHUP_DEBT_PX = 240;
@@ -7271,8 +7292,8 @@ function MessageTimeline({
7271
7292
  }
7272
7293
  releasePinAfterScrollSettled(node);
7273
7294
  };
7274
- return /* @__PURE__ */ jsx16(LightboxProvider, { children: /* @__PURE__ */ jsx16(FoldMemoryProvider, { value: foldMemoryRef.current, children: /* @__PURE__ */ jsx16(SeenActivityIdsProvider, { value: seenActivityIdsRef.current, children: /* @__PURE__ */ jsx16(TimelineComputeLabelProvider, { value: computeLabel ?? null, children: /* @__PURE__ */ jsx16(EntranceAnimationProvider, { value: false, children: /* @__PURE__ */ jsx16(TooltipProvider, { delayDuration: 400, children: /* @__PURE__ */ jsxs11("div", { className: cn("og-root relative flex min-h-0 flex-col", className), children: [
7275
- onAnnotate ? /* @__PURE__ */ jsx16(Suspense3, { fallback: null, children: /* @__PURE__ */ jsx16(
7295
+ 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: false, children: /* @__PURE__ */ jsx17(TooltipProvider, { delayDuration: 400, children: /* @__PURE__ */ jsxs11("div", { className: cn("og-root relative flex min-h-0 flex-col", className), children: [
7296
+ onAnnotate ? /* @__PURE__ */ jsx17(Suspense3, { fallback: null, children: /* @__PURE__ */ jsx17(
7276
7297
  TimelineAnnotationSelection,
7277
7298
  {
7278
7299
  rootRef: scrollRef,
@@ -7280,7 +7301,7 @@ function MessageTimeline({
7280
7301
  onAnnotate
7281
7302
  }
7282
7303
  ) }) : null,
7283
- /* @__PURE__ */ jsx16(
7304
+ /* @__PURE__ */ jsx17(
7284
7305
  "div",
7285
7306
  {
7286
7307
  ref: scrollRef,
@@ -7334,14 +7355,14 @@ function MessageTimeline({
7334
7355
  "min-h-0 flex-1 overflow-y-auto overscroll-contain px-4 pt-16 pb-6 sm:px-6 outline-hidden",
7335
7356
  autoFollow && pinned && !hasNewer ? "[overflow-anchor:none]" : "[overflow-anchor:auto]"
7336
7357
  ),
7337
- children: /* @__PURE__ */ jsx16(
7358
+ children: /* @__PURE__ */ jsx17(
7338
7359
  TimelineBeforeLayout,
7339
7360
  {
7340
7361
  capture: () => {
7341
7362
  readingAnchorRef.current = !pinnedRef.current && scrollRef.current ? captureTimelineAnchor(scrollRef.current) : null;
7342
7363
  },
7343
7364
  children: /* @__PURE__ */ jsxs11("div", { className: "relative mx-auto flex w-full max-w-3xl flex-col gap-5", children: [
7344
- /* @__PURE__ */ jsx16(AnimatePresence, { children: loadingOlder || loadingOldest || hasOlder && onJumpToStart && olderPrefetchArmed || underfillRetryReady ? (
7365
+ /* @__PURE__ */ jsx17(AnimatePresence, { children: loadingOlder || loadingOldest || hasOlder && onJumpToStart && olderPrefetchArmed || underfillRetryReady ? (
7345
7366
  // Reserved top gutter: controls scroll with history and cannot
7346
7367
  // cover a disclosure. Visibility never changes content height.
7347
7368
  /* @__PURE__ */ jsxs11(
@@ -7355,8 +7376,8 @@ function MessageTimeline({
7355
7376
  "aria-live": "polite",
7356
7377
  className: "pointer-events-none absolute inset-x-0 -top-11 z-10 flex justify-center",
7357
7378
  children: [
7358
- loadingOlder || loadingOldest ? /* @__PURE__ */ jsx16("span", { className: LOADING_CHIP_CLASS, children: /* @__PURE__ */ jsx16("span", { className: "og-shimmer-text", children: loadingOldest ? "Jumping to start\u2026" : "Loading earlier activity\u2026" }) }) : null,
7359
- hasOlder && !loadingOlder && !loadingOldest && (underfillRetryReady || onJumpToStart) ? /* @__PURE__ */ jsx16(
7379
+ 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,
7380
+ hasOlder && !loadingOlder && !loadingOldest && (underfillRetryReady || onJumpToStart) ? /* @__PURE__ */ jsx17(
7360
7381
  "button",
7361
7382
  {
7362
7383
  type: "button",
@@ -7400,13 +7421,13 @@ function MessageTimeline({
7400
7421
  }
7401
7422
  )
7402
7423
  ) : null }),
7403
- !groups.length ? emptyState ?? /* @__PURE__ */ jsx16("p", { className: "py-10 text-center text-og-menu text-og-fg-subtle", children: "No activity yet." }) : null,
7424
+ !groups.length ? emptyState ?? /* @__PURE__ */ jsx17("p", { className: "py-10 text-center text-og-menu text-og-fg-subtle", children: "No activity yet." }) : null,
7404
7425
  hasOlder && olderPrefetchArmed ? (
7405
7426
  // Overlaid, not a layout row: mounting/unmounting the sentinel
7406
7427
  // must never shift content (that shift was itself a wobble).
7407
7428
  // End at the scroll origin above the pt-16 gutter so the
7408
7429
  // observer and scrollTop cooldown share the same 400px band.
7409
- /* @__PURE__ */ jsx16(
7430
+ /* @__PURE__ */ jsx17(
7410
7431
  "div",
7411
7432
  {
7412
7433
  ref: topSentinelRef,
@@ -7418,7 +7439,7 @@ function MessageTimeline({
7418
7439
  )
7419
7440
  ) : null,
7420
7441
  groups.map(({ group, key, entranceEnabled }, index) => {
7421
- return /* @__PURE__ */ jsx16(
7442
+ return /* @__PURE__ */ jsx17(
7422
7443
  TimelineGroupEntry,
7423
7444
  {
7424
7445
  groupKey: key,
@@ -7431,8 +7452,8 @@ function MessageTimeline({
7431
7452
  key
7432
7453
  );
7433
7454
  }),
7434
- groups.length > 0 && trailingState ? /* @__PURE__ */ jsx16("div", { "data-og-timeline-trailing-state": "", children: trailingState }) : null,
7435
- hasNewer ? /* @__PURE__ */ jsx16(
7455
+ groups.length > 0 && trailingState ? /* @__PURE__ */ jsx17("div", { "data-og-timeline-trailing-state": "", children: trailingState }) : null,
7456
+ hasNewer ? /* @__PURE__ */ jsx17(
7436
7457
  "div",
7437
7458
  {
7438
7459
  ref: bottomSentinelRef,
@@ -7447,7 +7468,7 @@ function MessageTimeline({
7447
7468
  )
7448
7469
  }
7449
7470
  ),
7450
- /* @__PURE__ */ jsx16(AnimatePresence, { children: loadingNewer ? /* @__PURE__ */ jsx16(
7471
+ /* @__PURE__ */ jsx17(AnimatePresence, { children: loadingNewer ? /* @__PURE__ */ jsx17(
7451
7472
  motion.div,
7452
7473
  {
7453
7474
  initial: { opacity: 0, y: 6 },
@@ -7457,10 +7478,10 @@ function MessageTimeline({
7457
7478
  "data-og-loading-newer": "",
7458
7479
  "aria-live": "polite",
7459
7480
  className: "pointer-events-none absolute inset-x-0 bottom-14 z-10 flex justify-center",
7460
- children: /* @__PURE__ */ jsx16("span", { className: LOADING_CHIP_CLASS, children: /* @__PURE__ */ jsx16("span", { className: "og-shimmer-text", children: "Loading later activity\u2026" }) })
7481
+ children: /* @__PURE__ */ jsx17("span", { className: LOADING_CHIP_CLASS, children: /* @__PURE__ */ jsx17("span", { className: "og-shimmer-text", children: "Loading later activity\u2026" }) })
7461
7482
  }
7462
7483
  ) : null }),
7463
- /* @__PURE__ */ jsx16(AnimatePresence, { children: (!pinned && autoFollow || hasNewer || canSkipTipCatchup) && autoFollow ? /* @__PURE__ */ jsxs11(
7484
+ /* @__PURE__ */ jsx17(AnimatePresence, { children: (!pinned && autoFollow || hasNewer || canSkipTipCatchup) && autoFollow ? /* @__PURE__ */ jsxs11(
7464
7485
  motion.button,
7465
7486
  {
7466
7487
  type: "button",
@@ -7506,7 +7527,7 @@ function MessageTimeline({
7506
7527
  "hover:border-og-border-strong"
7507
7528
  ),
7508
7529
  children: [
7509
- /* @__PURE__ */ jsx16(ArrowDownIcon, { className: "size-3.5" }),
7530
+ /* @__PURE__ */ jsx17(ArrowDownIcon, { className: "size-3.5" }),
7510
7531
  "Jump to latest"
7511
7532
  ]
7512
7533
  }
@@ -7599,10 +7620,10 @@ var TimelineGroupRenderBoundary = class extends Component3 {
7599
7620
  role: "status",
7600
7621
  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",
7601
7622
  children: [
7602
- /* @__PURE__ */ jsx16(TriangleAlertIcon2, { "aria-hidden": "true", className: "mt-0.5 size-4 shrink-0" }),
7623
+ /* @__PURE__ */ jsx17(TriangleAlertIcon2, { "aria-hidden": "true", className: "mt-0.5 size-4 shrink-0" }),
7603
7624
  /* @__PURE__ */ jsxs11("div", { children: [
7604
- /* @__PURE__ */ jsx16("p", { className: "font-medium text-og-fg", children: "Timeline item unavailable" }),
7605
- /* @__PURE__ */ jsx16("p", { children: "This item could not be displayed. The rest of the conversation is still available." })
7625
+ /* @__PURE__ */ jsx17("p", { className: "font-medium text-og-fg", children: "Timeline item unavailable" }),
7626
+ /* @__PURE__ */ jsx17("p", { children: "This item could not be displayed. The rest of the conversation is still available." })
7606
7627
  ] })
7607
7628
  ]
7608
7629
  }
@@ -7621,7 +7642,7 @@ var TimelineGroupEntry = memo2(function TimelineGroupEntry2({
7621
7642
  }) {
7622
7643
  const { behavior, userMessageDisclosureContext } = context;
7623
7644
  const contextCompactionCount = group.kind === "turn" ? group.contextCompactionCount ?? 0 : group.kind === "activity" && nextGroup?.kind === "item" && nextGroup.item.kind === "context-compaction" && nextGroup.item.phase === "compacted" ? 1 : 0;
7624
- return /* @__PURE__ */ jsx16("div", { "data-og-timeline-group-anchor": "", "data-og-group-key": groupKey, children: /* @__PURE__ */ jsx16(EntranceAnimationProvider, { value: entranceEnabled, liveValue: liveEntranceEnabled, children: /* @__PURE__ */ jsx16(TimelineGroupRenderBoundary, { resetKeys: [group, behavior], children: /* @__PURE__ */ jsx16(UserMessageDisclosureProvider, { value: userMessageDisclosureContext, children: /* @__PURE__ */ jsx16(
7645
+ return /* @__PURE__ */ jsx17("div", { "data-og-timeline-group-anchor": "", "data-og-group-key": groupKey, children: /* @__PURE__ */ jsx17(EntranceAnimationProvider, { value: entranceEnabled, liveValue: liveEntranceEnabled, children: /* @__PURE__ */ jsx17(TimelineGroupRenderBoundary, { resetKeys: [group, behavior], children: /* @__PURE__ */ jsx17(UserMessageDisclosureProvider, { value: userMessageDisclosureContext, children: /* @__PURE__ */ jsx17(
7625
7646
  TimelineGroupView,
7626
7647
  {
7627
7648
  ...behavior,
@@ -7670,7 +7691,7 @@ var TimelineGroupView = memo2(function TimelineGroupView2({
7670
7691
  if (insideTurn) {
7671
7692
  const useNestedChip = nestClusterChips && activityShouldFold && !containsGeneratedImage;
7672
7693
  if (!useNestedChip) {
7673
- return /* @__PURE__ */ jsx16(
7694
+ return /* @__PURE__ */ jsx17(
7674
7695
  ActivityRail,
7675
7696
  {
7676
7697
  items: group.items,
@@ -7683,7 +7704,7 @@ var TimelineGroupView = memo2(function TimelineGroupView2({
7683
7704
  }
7684
7705
  );
7685
7706
  }
7686
- return /* @__PURE__ */ jsx16(
7707
+ return /* @__PURE__ */ jsx17(
7687
7708
  TurnSummary,
7688
7709
  {
7689
7710
  items: group.items,
@@ -7694,7 +7715,7 @@ var TimelineGroupView = memo2(function TimelineGroupView2({
7694
7715
  foldKey: group.id,
7695
7716
  facets: turnSummary?.facets,
7696
7717
  contextCompactionCount,
7697
- children: /* @__PURE__ */ jsx16(
7718
+ children: /* @__PURE__ */ jsx17(
7698
7719
  ActivityRail,
7699
7720
  {
7700
7721
  items: group.items,
@@ -7710,7 +7731,7 @@ var TimelineGroupView = memo2(function TimelineGroupView2({
7710
7731
  settleChrome ? "settle" : "rest"
7711
7732
  );
7712
7733
  }
7713
- return /* @__PURE__ */ jsx16(
7734
+ return /* @__PURE__ */ jsx17(
7714
7735
  TurnSummary,
7715
7736
  {
7716
7737
  items: group.items,
@@ -7721,7 +7742,7 @@ var TimelineGroupView = memo2(function TimelineGroupView2({
7721
7742
  facets: turnSummary?.facets,
7722
7743
  settleFold,
7723
7744
  contextCompactionCount,
7724
- children: /* @__PURE__ */ jsx16(FoldBody, { children: /* @__PURE__ */ jsx16(TurnRailFrame, { children: /* @__PURE__ */ jsx16(
7745
+ children: /* @__PURE__ */ jsx17(FoldBody, { children: /* @__PURE__ */ jsx17(TurnRailFrame, { children: /* @__PURE__ */ jsx17(
7725
7746
  ActivityRail,
7726
7747
  {
7727
7748
  items: group.items,
@@ -7741,7 +7762,7 @@ var TimelineGroupView = memo2(function TimelineGroupView2({
7741
7762
  const turnCopyText = collectTurnCopyText(group.groups, trailingAgentText);
7742
7763
  const body = group.groups.map((child) => {
7743
7764
  const key = timelineGroupKey(child);
7744
- return /* @__PURE__ */ jsx16(
7765
+ return /* @__PURE__ */ jsx17(
7745
7766
  TimelineGroupRenderBoundary,
7746
7767
  {
7747
7768
  resetKeys: [
@@ -7757,7 +7778,7 @@ var TimelineGroupView = memo2(function TimelineGroupView2({
7757
7778
  loadVideoArtifactPlayback,
7758
7779
  turnSummary
7759
7780
  ],
7760
- children: /* @__PURE__ */ jsx16(
7781
+ children: /* @__PURE__ */ jsx17(
7761
7782
  TimelineGroupView2,
7762
7783
  {
7763
7784
  group: child,
@@ -7779,7 +7800,7 @@ var TimelineGroupView = memo2(function TimelineGroupView2({
7779
7800
  key
7780
7801
  );
7781
7802
  });
7782
- return /* @__PURE__ */ jsx16(
7803
+ return /* @__PURE__ */ jsx17(
7783
7804
  TurnSummary,
7784
7805
  {
7785
7806
  items: activityItems,
@@ -7793,16 +7814,16 @@ var TimelineGroupView = memo2(function TimelineGroupView2({
7793
7814
  settleFold,
7794
7815
  copyText: insideTurn ? void 0 : turnCopyText,
7795
7816
  contextCompactionCount: contextCompactionCount ?? group.contextCompactionCount,
7796
- children: /* @__PURE__ */ jsx16(FoldBody, { children: insideTurn ? (
7817
+ children: /* @__PURE__ */ jsx17(FoldBody, { children: insideTurn ? (
7797
7818
  // A nested turn is already on an ancestor rail — its body just stacks
7798
7819
  // flush (the bare-node body already indents it), so no second rule.
7799
- /* @__PURE__ */ jsx16("div", { className: "flex flex-col gap-4", children: body })
7800
- ) : /* @__PURE__ */ jsx16(TurnRailFrame, { children: body }) })
7820
+ /* @__PURE__ */ jsx17("div", { className: "flex flex-col gap-4", children: body })
7821
+ ) : /* @__PURE__ */ jsx17(TurnRailFrame, { children: body }) })
7801
7822
  }
7802
7823
  );
7803
7824
  }
7804
7825
  case "item":
7805
- return /* @__PURE__ */ jsx16(
7826
+ return /* @__PURE__ */ jsx17(
7806
7827
  TimelineRow,
7807
7828
  {
7808
7829
  item: group.item,
@@ -7816,10 +7837,10 @@ var TimelineGroupView = memo2(function TimelineGroupView2({
7816
7837
  }
7817
7838
  });
7818
7839
  function FoldBody({ children }) {
7819
- return /* @__PURE__ */ jsx16(Fragment5, { children });
7840
+ return /* @__PURE__ */ jsx17(Fragment5, { children });
7820
7841
  }
7821
7842
  function TurnRailFrame({ children }) {
7822
- return /* @__PURE__ */ jsx16("div", { className: "flex flex-col gap-4 border-l-2 border-og-border pl-3 sm:pl-4", children });
7843
+ return /* @__PURE__ */ jsx17("div", { className: "flex flex-col gap-4 border-l-2 border-og-border pl-3 sm:pl-4", children });
7823
7844
  }
7824
7845
  function useLiveSettleFold(folded) {
7825
7846
  const previousFoldedRef = useRef10(folded);
@@ -7994,25 +8015,32 @@ function TimelineRow({
7994
8015
  }) {
7995
8016
  switch (item.kind) {
7996
8017
  case "user-message":
7997
- return /* @__PURE__ */ jsx16(UserMessageRow, { item, renderMessageText });
8018
+ return /* @__PURE__ */ jsx17(UserMessageRow, { item, renderMessageText });
7998
8019
  case "human-input":
7999
- return /* @__PURE__ */ jsx16(HumanInputConversationRow, { item });
8020
+ return /* @__PURE__ */ jsx17(HumanInputConversationRow, { item });
8000
8021
  case "agent-message":
8001
- return /* @__PURE__ */ jsx16(AgentMessageRow, { item, renderMessageText });
8022
+ return /* @__PURE__ */ jsx17(AgentMessageRow, { item, renderMessageText });
8002
8023
  case "worker-completion":
8003
- return /* @__PURE__ */ jsx16(WorkerCompletionRow, { item, onOpenSession });
8024
+ return /* @__PURE__ */ jsx17(WorkerCompletionRow, { item, onOpenSession });
8004
8025
  case "session-status":
8005
- return /* @__PURE__ */ jsx16(SessionStatusRow, { item });
8026
+ return /* @__PURE__ */ jsx17(SessionStatusRow, { item });
8006
8027
  case "goal":
8007
- return /* @__PURE__ */ jsx16(GoalRow, { item });
8028
+ return /* @__PURE__ */ jsx17(GoalRow, { item });
8008
8029
  case "machine-input-batch":
8009
- return /* @__PURE__ */ jsx16(MachineInputBatchRow, { item, loadVideoArtifactPlayback });
8030
+ return /* @__PURE__ */ jsx17(
8031
+ MachineInputBatchRow,
8032
+ {
8033
+ item,
8034
+ onOpenSession,
8035
+ loadVideoArtifactPlayback
8036
+ }
8037
+ );
8010
8038
  case "notice":
8011
- return /* @__PURE__ */ jsx16(NoticeRow, { item });
8039
+ return /* @__PURE__ */ jsx17(NoticeRow, { item });
8012
8040
  case "context-compaction":
8013
- return /* @__PURE__ */ jsx16(CompactionRow, { item });
8041
+ return /* @__PURE__ */ jsx17(CompactionRow, { item });
8014
8042
  case "auth-needed":
8015
- return /* @__PURE__ */ jsx16(
8043
+ return /* @__PURE__ */ jsx17(
8016
8044
  AuthNeededRow,
8017
8045
  {
8018
8046
  item,
@@ -8038,7 +8066,7 @@ function CompactionRow({ item }) {
8038
8066
  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";
8039
8067
  const subtitle = item.phase === "compacted" ? "Chat history above is unchanged" : item.phase === "skipped" ? compactionSkipSubtitle(item.skipReason) : null;
8040
8068
  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 : NEUTRAL_PILL;
8041
- return /* @__PURE__ */ jsx16("div", { className: cn(enter && "animate-og-enter", "flex justify-center"), children: /* @__PURE__ */ jsxs11(
8069
+ return /* @__PURE__ */ jsx17("div", { className: cn(enter && "animate-og-enter", "flex justify-center"), children: /* @__PURE__ */ jsxs11(
8042
8070
  "div",
8043
8071
  {
8044
8072
  className: cn(
@@ -8048,13 +8076,13 @@ function CompactionRow({ item }) {
8048
8076
  role: "status",
8049
8077
  children: [
8050
8078
  /* @__PURE__ */ jsxs11("span", { className: "inline-flex max-w-full items-center gap-1.5", children: [
8051
- /* @__PURE__ */ jsx16(ShrinkIcon, { className: "size-3.5 shrink-0" }),
8079
+ /* @__PURE__ */ jsx17(ShrinkIcon, { className: "size-3.5 shrink-0" }),
8052
8080
  /* @__PURE__ */ jsxs11("span", { className: "truncate", children: [
8053
8081
  title,
8054
8082
  trigger ? ` \xB7 ${trigger}` : ""
8055
8083
  ] })
8056
8084
  ] }),
8057
- subtitle ? /* @__PURE__ */ jsx16("span", { className: "truncate text-og-xs opacity-80", children: subtitle }) : null
8085
+ subtitle ? /* @__PURE__ */ jsx17("span", { className: "truncate text-og-xs opacity-80", children: subtitle }) : null
8058
8086
  ]
8059
8087
  }
8060
8088
  ) });
@@ -8074,7 +8102,7 @@ function compactionSkipSubtitle(reason) {
8074
8102
  }
8075
8103
  }
8076
8104
  function MessageFooterTime({ occurredAt }) {
8077
- return /* @__PURE__ */ jsx16(
8105
+ return /* @__PURE__ */ jsx17(
8078
8106
  "time",
8079
8107
  {
8080
8108
  dateTime: occurredAt,
@@ -8093,18 +8121,18 @@ function UserMessageRow({
8093
8121
  }) {
8094
8122
  const enter = useEntranceAnimation();
8095
8123
  const deliveryFailed = item.delivery?.state === "failed";
8096
- return /* @__PURE__ */ jsx16("div", { className: cn(enter && "animate-og-enter", "flex justify-end"), children: /* @__PURE__ */ jsxs11("div", { className: "flex max-w-[85%] min-w-0 flex-col items-end gap-1", children: [
8097
- /* @__PURE__ */ jsx16(
8124
+ return /* @__PURE__ */ jsx17("div", { className: cn(enter && "animate-og-enter", "flex justify-end"), children: /* @__PURE__ */ jsxs11("div", { className: "flex max-w-[85%] min-w-0 flex-col items-end gap-1", children: [
8125
+ /* @__PURE__ */ jsx17(
8098
8126
  CopyHoverFrame,
8099
8127
  {
8100
8128
  copyText: item.text || (item.annotations ?? []).map((annotation) => `${annotation.quote}
8101
8129
  ${annotation.note}`).join("\n\n"),
8102
8130
  label: "Copy message",
8103
8131
  className: "w-fit max-w-full min-w-0",
8104
- trailing: /* @__PURE__ */ jsx16(MessageFooterTime, { occurredAt: item.occurredAt }),
8132
+ trailing: /* @__PURE__ */ jsx17(MessageFooterTime, { occurredAt: item.occurredAt }),
8105
8133
  children: /* @__PURE__ */ jsxs11("div", { className: MESSAGE_BUBBLE_CLASS, children: [
8106
- item.text ? /* @__PURE__ */ jsx16("div", { "data-og-annotation-source-key": item.annotationSource?.eventId, children: renderMessageText ? renderMessageText(item.text, item) : /* @__PURE__ */ jsx16(UserMessageBody, { messageId: item.id, text: item.text, children: /* @__PURE__ */ jsx16(Markdown, { children: item.text }) }) }) : null,
8107
- (item.annotations?.length ?? 0) > 0 ? /* @__PURE__ */ jsx16(
8134
+ 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,
8135
+ (item.annotations?.length ?? 0) > 0 ? /* @__PURE__ */ jsx17(
8108
8136
  TimelineAnnotationsChip,
8109
8137
  {
8110
8138
  annotations: item.annotations ?? [],
@@ -8121,10 +8149,10 @@ ${annotation.note}`).join("\n\n"),
8121
8149
  className: "flex max-w-full items-center gap-2 px-1 text-og-xs text-og-status-failed",
8122
8150
  children: [
8123
8151
  /* @__PURE__ */ jsxs11("span", { className: "inline-flex items-center gap-1", title: item.delivery?.error, children: [
8124
- /* @__PURE__ */ jsx16(TriangleAlertIcon2, { className: "size-3.5 shrink-0", "aria-hidden": "true" }),
8125
- /* @__PURE__ */ jsx16("span", { children: "Message not sent" })
8152
+ /* @__PURE__ */ jsx17(TriangleAlertIcon2, { className: "size-3.5 shrink-0", "aria-hidden": "true" }),
8153
+ /* @__PURE__ */ jsx17("span", { children: "Message not sent" })
8126
8154
  ] }),
8127
- item.delivery?.onRetry ? /* @__PURE__ */ jsx16(
8155
+ item.delivery?.onRetry ? /* @__PURE__ */ jsx17(
8128
8156
  "button",
8129
8157
  {
8130
8158
  type: "button",
@@ -8133,7 +8161,7 @@ ${annotation.note}`).join("\n\n"),
8133
8161
  children: "Retry"
8134
8162
  }
8135
8163
  ) : null,
8136
- item.delivery?.onRemove ? /* @__PURE__ */ jsx16(
8164
+ item.delivery?.onRemove ? /* @__PURE__ */ jsx17(
8137
8165
  "button",
8138
8166
  {
8139
8167
  type: "button",
@@ -8162,10 +8190,10 @@ function HumanInputConversationRow({ item }) {
8162
8190
  "data-human-input-history": item.requestId,
8163
8191
  children: [
8164
8192
  /* @__PURE__ */ jsxs11("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: [
8165
- /* @__PURE__ */ jsx16("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__ */ jsx16(MessageCircleQuestionIcon3, { "aria-hidden": "true", className: "size-4" }) }),
8193
+ /* @__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" }) }),
8166
8194
  /* @__PURE__ */ jsxs11("div", { className: "min-w-0 flex-1", children: [
8167
- /* @__PURE__ */ jsx16("p", { className: "text-og-xs font-medium text-og-fg-subtle", children: "Agent asked" }),
8168
- /* @__PURE__ */ jsx16("div", { className: "mt-1.5 space-y-3", children: item.questions.length > 0 ? item.questions.map((question, index) => /* @__PURE__ */ jsxs11("div", { children: [
8195
+ /* @__PURE__ */ jsx17("p", { className: "text-og-xs font-medium text-og-fg-subtle", children: "Agent asked" }),
8196
+ /* @__PURE__ */ jsx17("div", { className: "mt-1.5 space-y-3", children: item.questions.length > 0 ? item.questions.map((question, index) => /* @__PURE__ */ jsxs11("div", { children: [
8169
8197
  question.label ? /* @__PURE__ */ jsxs11("p", { className: "text-og-sm font-semibold text-og-fg", children: [
8170
8198
  multipleQuestions ? /* @__PURE__ */ jsxs11("span", { className: "mr-1.5 tabular-nums text-og-fg-muted", children: [
8171
8199
  index + 1,
@@ -8191,19 +8219,19 @@ function HumanInputConversationRow({ item }) {
8191
8219
  ]
8192
8220
  }
8193
8221
  )
8194
- ] }, question.id)) : /* @__PURE__ */ jsx16("p", { className: "text-og-sm text-og-fg-muted", children: "The agent requested structured input." }) })
8222
+ ] }, question.id)) : /* @__PURE__ */ jsx17("p", { className: "text-og-sm text-og-fg-muted", children: "The agent requested structured input." }) })
8195
8223
  ] })
8196
8224
  ] }),
8197
- /* @__PURE__ */ jsx16("div", { className: "flex justify-end", children: /* @__PURE__ */ jsx16(
8225
+ /* @__PURE__ */ jsx17("div", { className: "flex justify-end", children: /* @__PURE__ */ jsx17(
8198
8226
  CopyHoverFrame,
8199
8227
  {
8200
8228
  copyText,
8201
8229
  label: "Copy answer",
8202
8230
  className: "w-fit max-w-[90%] min-w-0 sm:max-w-[82%]",
8203
- trailing: /* @__PURE__ */ jsx16(MessageFooterTime, { occurredAt: item.occurredAt }),
8231
+ trailing: /* @__PURE__ */ jsx17(MessageFooterTime, { occurredAt: item.occurredAt }),
8204
8232
  children: /* @__PURE__ */ jsxs11("div", { className: MESSAGE_BUBBLE_CLASS, children: [
8205
- /* @__PURE__ */ jsx16("p", { className: "text-og-xs font-medium text-og-fg-subtle", children: settledLabel }),
8206
- item.response.outcome === "answered" ? /* @__PURE__ */ jsx16("div", { className: "mt-1.5 space-y-3", children: item.answers.length > 0 ? item.answers.map((answer, answerIndex) => /* @__PURE__ */ jsxs11("div", { children: [
8233
+ /* @__PURE__ */ jsx17("p", { className: "text-og-xs font-medium text-og-fg-subtle", children: settledLabel }),
8234
+ 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__ */ jsxs11("div", { children: [
8207
8235
  multipleQuestions ? /* @__PURE__ */ jsxs11("p", { className: "text-og-sm font-semibold text-og-fg", children: [
8208
8236
  /* @__PURE__ */ jsxs11("span", { className: "mr-1.5 tabular-nums text-og-fg-muted", children: [
8209
8237
  questionNumberById.get(answer.questionId) ?? answerIndex + 1,
@@ -8212,8 +8240,8 @@ function HumanInputConversationRow({ item }) {
8212
8240
  " ",
8213
8241
  answer.label
8214
8242
  ] }) : null,
8215
- /* @__PURE__ */ jsx16("div", { className: cn("text-og-md text-og-fg", multipleQuestions && "mt-0.5"), children: answer.values.length > 1 ? /* @__PURE__ */ jsx16("ul", { className: "list-disc space-y-0.5 pl-5", children: answer.values.map((value) => /* @__PURE__ */ jsx16("li", { children: value }, `${answer.questionId}-${value}`)) }) : /* @__PURE__ */ jsx16("p", { children: answer.values[0] || "Answered" }) })
8216
- ] }, answer.questionId)) : /* @__PURE__ */ jsx16("p", { children: "Answered" }) }) : null
8243
+ /* @__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" }) })
8244
+ ] }, answer.questionId)) : /* @__PURE__ */ jsx17("p", { children: "Answered" }) }) : null
8217
8245
  ] })
8218
8246
  }
8219
8247
  ) })
@@ -8240,15 +8268,15 @@ function AgentMessageRow({
8240
8268
  renderMessageText
8241
8269
  }) {
8242
8270
  const enter = useEntranceAnimation();
8243
- const body = renderMessageText ? renderMessageText(item.text, item) : /* @__PURE__ */ jsx16(Markdown, { streaming: item.streaming, children: item.text });
8244
- return /* @__PURE__ */ jsx16("div", { "data-og-annotation-source-key": item.annotationSource?.eventId, children: /* @__PURE__ */ jsx16(
8271
+ const body = renderMessageText ? renderMessageText(item.text, item) : /* @__PURE__ */ jsx17(Markdown, { streaming: item.streaming, children: item.text });
8272
+ return /* @__PURE__ */ jsx17("div", { "data-og-annotation-source-key": item.annotationSource?.eventId, children: /* @__PURE__ */ jsx17(
8245
8273
  CopyHoverFrame,
8246
8274
  {
8247
8275
  copyText: item.text,
8248
8276
  label: "Copy message",
8249
8277
  align: "start",
8250
8278
  className: cn(enter && "animate-og-enter", "min-w-0 text-og-md leading-7 text-og-fg"),
8251
- trailing: item.streaming ? null : /* @__PURE__ */ jsx16(MessageFooterTime, { occurredAt: item.occurredAt }),
8279
+ trailing: item.streaming ? null : /* @__PURE__ */ jsx17(MessageFooterTime, { occurredAt: item.occurredAt }),
8252
8280
  children: body
8253
8281
  }
8254
8282
  ) });
@@ -8300,11 +8328,11 @@ function WorkerCompletionRow({
8300
8328
  ...showPausedReason ? [{ label: "Paused because", value: item.pausedReason.trim(), muted: true }] : []
8301
8329
  ];
8302
8330
  const hasDetails = details.length > 0;
8303
- return /* @__PURE__ */ jsx16("div", { className: cn(enter && "animate-og-enter", "min-w-0"), children: /* @__PURE__ */ jsxs11("div", { className: cn("flex flex-col gap-2 border-l-2 pl-3", meta.accentClass), children: [
8331
+ return /* @__PURE__ */ jsx17("div", { className: cn(enter && "animate-og-enter", "min-w-0"), children: /* @__PURE__ */ jsxs11("div", { className: cn("flex flex-col gap-2 border-l-2 pl-3", meta.accentClass), children: [
8304
8332
  /* @__PURE__ */ jsxs11("div", { className: "flex items-start gap-2.5", children: [
8305
- /* @__PURE__ */ jsx16("span", { className: cn("mt-0.5 shrink-0", meta.iconClass), children: /* @__PURE__ */ jsx16(Icon, { className: "size-4" }) }),
8306
- /* @__PURE__ */ jsx16("div", { className: "min-w-0 flex-1", children: /* @__PURE__ */ jsxs11("p", { className: "text-og-base leading-5 text-og-fg", children: [
8307
- /* @__PURE__ */ jsx16("span", { className: "font-medium", children: meta.label }),
8333
+ /* @__PURE__ */ jsx17("span", { className: cn("mt-0.5 shrink-0", meta.iconClass), children: /* @__PURE__ */ jsx17(Icon, { className: "size-4" }) }),
8334
+ /* @__PURE__ */ jsx17("div", { className: "min-w-0 flex-1", children: /* @__PURE__ */ jsxs11("p", { className: "text-og-base leading-5 text-og-fg", children: [
8335
+ /* @__PURE__ */ jsx17("span", { className: "font-medium", children: meta.label }),
8308
8336
  item.goalText ? /* @__PURE__ */ jsxs11("span", { className: "text-og-fg-muted", children: [
8309
8337
  " \xB7 ",
8310
8338
  truncate(item.goalText, 90)
@@ -8322,13 +8350,13 @@ function WorkerCompletionRow({
8322
8350
  ),
8323
8351
  children: [
8324
8352
  "View session",
8325
- /* @__PURE__ */ jsx16(ArrowRightIcon2, { className: "size-3.5" })
8353
+ /* @__PURE__ */ jsx17(ArrowRightIcon2, { className: "size-3.5" })
8326
8354
  ]
8327
8355
  }
8328
8356
  ) : null
8329
8357
  ] }),
8330
8358
  hasDetails ? /* @__PURE__ */ jsxs11(Collapsible2.Root, { open, onOpenChange: setOpen, children: [
8331
- /* @__PURE__ */ jsx16(Collapsible2.Trigger, { asChild: true, children: /* @__PURE__ */ jsxs11(
8359
+ /* @__PURE__ */ jsx17(Collapsible2.Trigger, { asChild: true, children: /* @__PURE__ */ jsxs11(
8332
8360
  "button",
8333
8361
  {
8334
8362
  type: "button",
@@ -8337,14 +8365,14 @@ function WorkerCompletionRow({
8337
8365
  "outline-hidden transition-colors duration-150 hover:text-og-fg-muted focus-visible:ring-2 focus-visible:ring-og-accent"
8338
8366
  ),
8339
8367
  children: [
8340
- /* @__PURE__ */ jsx16(ChevronRightIcon3, { className: "size-3 transition-transform duration-150 ease-og-in-out group-data-[state=open]/wc:rotate-90" }),
8368
+ /* @__PURE__ */ jsx17(ChevronRightIcon3, { className: "size-3 transition-transform duration-150 ease-og-in-out group-data-[state=open]/wc:rotate-90" }),
8341
8369
  open ? "Hide details" : "Show details"
8342
8370
  ]
8343
8371
  }
8344
8372
  ) }),
8345
- /* @__PURE__ */ jsx16(Collapsible2.Content, { className: "overflow-hidden data-[state=closed]:animate-og-collapse data-[state=open]:animate-og-expand", children: /* @__PURE__ */ jsx16("div", { className: "ml-1 mt-1.5 flex flex-col gap-2.5", children: details.map((detail) => /* @__PURE__ */ jsxs11("div", { className: "min-w-0", children: [
8346
- /* @__PURE__ */ jsx16("p", { className: "mb-1 text-og-xs font-medium uppercase tracking-[0.08em] text-og-fg-subtle", children: detail.label }),
8347
- /* @__PURE__ */ jsx16(
8373
+ /* @__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__ */ jsxs11("div", { className: "min-w-0", children: [
8374
+ /* @__PURE__ */ jsx17("p", { className: "mb-1 text-og-xs font-medium uppercase tracking-[0.08em] text-og-fg-subtle", children: detail.label }),
8375
+ /* @__PURE__ */ jsx17(
8348
8376
  "p",
8349
8377
  {
8350
8378
  className: cn(
@@ -8370,14 +8398,14 @@ function SessionStatusRow({ item }) {
8370
8398
  ),
8371
8399
  role: "status",
8372
8400
  children: [
8373
- /* @__PURE__ */ jsx16("span", { className: "h-px flex-1 bg-og-border" }),
8401
+ /* @__PURE__ */ jsx17("span", { className: "h-px flex-1 bg-og-border" }),
8374
8402
  /* @__PURE__ */ jsxs11("span", { className: "inline-flex items-center gap-1.5", children: [
8375
- /* @__PURE__ */ jsx16(StatusDot, { status: item.status, className: "size-1" }),
8403
+ /* @__PURE__ */ jsx17(StatusDot, { status: item.status, className: "size-1" }),
8376
8404
  meta.label.toLowerCase(),
8377
8405
  " \xB7 ",
8378
8406
  formatRelativeTime(item.occurredAt)
8379
8407
  ] }),
8380
- /* @__PURE__ */ jsx16("span", { className: "h-px flex-1 bg-og-border" })
8408
+ /* @__PURE__ */ jsx17("span", { className: "h-px flex-1 bg-og-border" })
8381
8409
  ]
8382
8410
  }
8383
8411
  );
@@ -8415,7 +8443,7 @@ function goalMeta(action) {
8415
8443
  function GoalRow({ item }) {
8416
8444
  const enter = useEntranceAnimation();
8417
8445
  const { label, pill, icon: Icon } = goalMeta(item.action);
8418
- return /* @__PURE__ */ jsx16("div", { className: cn(enter && "animate-og-enter", "flex justify-center"), children: /* @__PURE__ */ jsxs11(
8446
+ return /* @__PURE__ */ jsx17("div", { className: cn(enter && "animate-og-enter", "flex justify-center"), children: /* @__PURE__ */ jsxs11(
8419
8447
  "span",
8420
8448
  {
8421
8449
  className: cn(
@@ -8423,7 +8451,7 @@ function GoalRow({ item }) {
8423
8451
  pill
8424
8452
  ),
8425
8453
  children: [
8426
- /* @__PURE__ */ jsx16(Icon, { className: "size-3.5 shrink-0" }),
8454
+ /* @__PURE__ */ jsx17(Icon, { className: "size-3.5 shrink-0" }),
8427
8455
  /* @__PURE__ */ jsxs11("span", { className: "truncate", children: [
8428
8456
  label,
8429
8457
  item.text ? `: ${truncate(item.text, 90)}` : ""
@@ -8434,13 +8462,14 @@ function GoalRow({ item }) {
8434
8462
  }
8435
8463
  function MachineInputBatchRow({
8436
8464
  item,
8465
+ onOpenSession,
8437
8466
  loadVideoArtifactPlayback
8438
8467
  }) {
8439
8468
  const enter = useEntranceAnimation();
8440
8469
  const label = machineInputBatchLabel(item.members);
8441
8470
  const single = item.members.length === 1 ? item.members[0] : null;
8442
8471
  if (single?.kind === "media_generation_result" && single.result) {
8443
- return /* @__PURE__ */ jsx16(
8472
+ return /* @__PURE__ */ jsx17(
8444
8473
  VideoGenerationResultRow,
8445
8474
  {
8446
8475
  result: single.result,
@@ -8458,7 +8487,7 @@ function MachineInputBatchRow({
8458
8487
  "data-og-machine-input-batch": "",
8459
8488
  title: `Received ${formatClockTime(item.occurredAt)}`,
8460
8489
  children: [
8461
- /* @__PURE__ */ jsx16("summary", { className: "flex cursor-pointer list-none justify-center [&::-webkit-details-marker]:hidden", children: /* @__PURE__ */ jsxs11(
8490
+ /* @__PURE__ */ jsx17("summary", { className: "flex cursor-pointer list-none justify-center [&::-webkit-details-marker]:hidden", children: /* @__PURE__ */ jsxs11(
8462
8491
  "span",
8463
8492
  {
8464
8493
  className: cn(
@@ -8466,26 +8495,27 @@ function MachineInputBatchRow({
8466
8495
  NEUTRAL_PILL
8467
8496
  ),
8468
8497
  children: [
8469
- /* @__PURE__ */ jsx16(
8498
+ /* @__PURE__ */ jsx17(
8470
8499
  ChevronRightIcon3,
8471
8500
  {
8472
8501
  "aria-hidden": true,
8473
8502
  className: "size-3.5 shrink-0 transition-transform group-open:rotate-90"
8474
8503
  }
8475
8504
  ),
8476
- /* @__PURE__ */ jsx16("span", { className: "truncate", children: label })
8505
+ /* @__PURE__ */ jsx17("span", { className: "truncate", children: label })
8477
8506
  ]
8478
8507
  }
8479
8508
  ) }),
8480
8509
  /* @__PURE__ */ jsxs11("div", { className: "mx-auto mt-2 w-full max-w-lg space-y-2 border-t border-og-border/50 pt-2", children: [
8481
8510
  /* @__PURE__ */ jsxs11("p", { className: "text-og-xs text-og-fg-subtle", children: [
8482
8511
  "Received ",
8483
- /* @__PURE__ */ jsx16("time", { dateTime: item.occurredAt, children: formatClockTime(item.occurredAt) })
8512
+ /* @__PURE__ */ jsx17("time", { dateTime: item.occurredAt, children: formatClockTime(item.occurredAt) })
8484
8513
  ] }),
8485
- item.members.map((member) => /* @__PURE__ */ jsx16(
8514
+ item.members.map((member) => /* @__PURE__ */ jsx17(
8486
8515
  MachineInputRow,
8487
8516
  {
8488
8517
  member,
8518
+ onOpenSession,
8489
8519
  loadVideoArtifactPlayback
8490
8520
  },
8491
8521
  member.id
@@ -8494,15 +8524,16 @@ function MachineInputBatchRow({
8494
8524
  ]
8495
8525
  }
8496
8526
  ),
8497
- showCollapsedSummary ? /* @__PURE__ */ jsx16("p", { className: "max-w-lg px-3 text-center text-og-xs leading-4 text-og-fg-subtle", children: truncate(singleSummary, 160) }) : null
8527
+ 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
8498
8528
  ] });
8499
8529
  }
8500
8530
  function MachineInputRow({
8501
8531
  member,
8532
+ onOpenSession,
8502
8533
  loadVideoArtifactPlayback
8503
8534
  }) {
8504
8535
  if (member.kind === "media_generation_result" && member.result) {
8505
- return /* @__PURE__ */ jsx16(
8536
+ return /* @__PURE__ */ jsx17(
8506
8537
  VideoGenerationResultRow,
8507
8538
  {
8508
8539
  result: member.result,
@@ -8514,14 +8545,22 @@ function MachineInputRow({
8514
8545
  const source = readableMachineInputSource(member.sourceId);
8515
8546
  const summary = cleanMachineInputSummary(member.summary);
8516
8547
  return /* @__PURE__ */ jsxs11("div", { className: "flex min-w-0 items-start gap-2.5", children: [
8517
- /* @__PURE__ */ jsx16("span", { className: "mt-2 size-1.5 shrink-0 rounded-full bg-og-fg-subtle", "aria-hidden": true }),
8548
+ /* @__PURE__ */ jsx17("span", { className: "mt-2 size-1.5 shrink-0 rounded-full bg-og-fg-subtle", "aria-hidden": true }),
8518
8549
  /* @__PURE__ */ jsxs11("div", { className: "min-w-0 flex-1", children: [
8519
- /* @__PURE__ */ jsx16("span", { className: "text-og-control font-medium text-og-fg-muted", children: MACHINE_INPUT_META[member.kind] }),
8550
+ /* @__PURE__ */ jsx17("span", { className: "text-og-control font-medium text-og-fg-muted", children: MACHINE_INPUT_META[member.kind] }),
8520
8551
  source && /* @__PURE__ */ jsxs11("span", { className: "ml-1.5 text-og-control text-og-fg-subtle", children: [
8521
8552
  "from ",
8522
8553
  source
8523
8554
  ] }),
8524
- summary ? /* @__PURE__ */ jsx16("p", { className: "mt-0.5 whitespace-pre-wrap break-words text-og-menu leading-5 text-og-fg", children: truncate(summary, 320) }) : null
8555
+ 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,
8556
+ /* @__PURE__ */ jsx17(
8557
+ ChildSessionLink,
8558
+ {
8559
+ kind: member.kind,
8560
+ sourceId: member.sourceId,
8561
+ onOpenSession
8562
+ }
8563
+ )
8525
8564
  ] })
8526
8565
  ] });
8527
8566
  }
@@ -8541,10 +8580,10 @@ function VideoGenerationResultRow({
8541
8580
  ),
8542
8581
  children: [
8543
8582
  /* @__PURE__ */ jsxs11("div", { className: "flex items-center gap-2 text-og-sm font-medium text-og-status-failed", children: [
8544
- /* @__PURE__ */ jsx16(XCircleIcon, { "aria-hidden": true, className: "size-4" }),
8583
+ /* @__PURE__ */ jsx17(XCircleIcon, { "aria-hidden": true, className: "size-4" }),
8545
8584
  "Video generation failed"
8546
8585
  ] }),
8547
- /* @__PURE__ */ jsx16("p", { className: "mt-1 text-og-sm leading-5 text-og-fg-muted", children: result.boundedPublicReason })
8586
+ /* @__PURE__ */ jsx17("p", { className: "mt-1 text-og-sm leading-5 text-og-fg-muted", children: result.boundedPublicReason })
8548
8587
  ]
8549
8588
  }
8550
8589
  );
@@ -8561,17 +8600,17 @@ function VideoGenerationResultRow({
8561
8600
  compact && "max-w-lg"
8562
8601
  ),
8563
8602
  children: [
8564
- loadVideoArtifactPlayback ? /* @__PURE__ */ jsx16(
8603
+ loadVideoArtifactPlayback ? /* @__PURE__ */ jsx17(
8565
8604
  GeneratedVideoPlayer,
8566
8605
  {
8567
8606
  receipt,
8568
8607
  loadPlaybackSource: loadVideoArtifactPlayback,
8569
8608
  className: "rounded-none border-0 shadow-none"
8570
8609
  }
8571
- ) : /* @__PURE__ */ jsx16("div", { className: "flex aspect-video items-center justify-center bg-og-surface-2 text-og-fg-subtle", children: /* @__PURE__ */ jsx16(PlayIcon, { "aria-hidden": true, className: "size-6" }) }),
8610
+ ) : /* @__PURE__ */ jsx17("div", { className: "flex aspect-video items-center justify-center bg-og-surface-2 text-og-fg-subtle", children: /* @__PURE__ */ jsx17(PlayIcon, { "aria-hidden": true, className: "size-6" }) }),
8572
8611
  /* @__PURE__ */ jsxs11("div", { className: "flex items-center justify-between gap-4 px-3.5 py-2.5", children: [
8573
8612
  /* @__PURE__ */ jsxs11("div", { className: "min-w-0", children: [
8574
- /* @__PURE__ */ jsx16("p", { className: "text-og-sm font-medium text-og-fg", children: "Generated video" }),
8613
+ /* @__PURE__ */ jsx17("p", { className: "text-og-sm font-medium text-og-fg", children: "Generated video" }),
8575
8614
  /* @__PURE__ */ jsxs11("p", { className: "truncate text-og-xs text-og-fg-subtle", children: [
8576
8615
  facts.width,
8577
8616
  "\xD7",
@@ -8581,7 +8620,7 @@ function VideoGenerationResultRow({
8581
8620
  facts.hasAudio ? " \xB7 Audio" : ""
8582
8621
  ] })
8583
8622
  ] }),
8584
- /* @__PURE__ */ jsx16(CheckCircle2Icon, { "aria-label": "Ready", className: "size-4 shrink-0 text-og-status-success" })
8623
+ /* @__PURE__ */ jsx17(CheckCircle2Icon, { "aria-label": "Ready", className: "size-4 shrink-0 text-og-status-success" })
8585
8624
  ] })
8586
8625
  ]
8587
8626
  }
@@ -8604,7 +8643,7 @@ function NoticeRow({ item }) {
8604
8643
  role: item.recordedOutcome ? "note" : "status",
8605
8644
  "data-og-recorded-outcome": item.recordedOutcome ? "wait" : void 0,
8606
8645
  children: [
8607
- /* @__PURE__ */ jsx16(
8646
+ /* @__PURE__ */ jsx17(
8608
8647
  TriangleAlertIcon2,
8609
8648
  {
8610
8649
  className: cn("mt-0.5 size-4 shrink-0", item.tone === "cancelled" && "opacity-60")
@@ -8614,18 +8653,18 @@ function NoticeRow({ item }) {
8614
8653
  item.recordedOutcome ? /* @__PURE__ */ jsxs11("p", { className: "mb-1 text-og-control font-medium", children: [
8615
8654
  "Wait recorded",
8616
8655
  " ",
8617
- /* @__PURE__ */ jsx16("time", { dateTime: item.occurredAt, children: new Date(item.occurredAt).toLocaleString(void 0, {
8656
+ /* @__PURE__ */ jsx17("time", { dateTime: item.occurredAt, children: new Date(item.occurredAt).toLocaleString(void 0, {
8618
8657
  dateStyle: "medium",
8619
8658
  timeStyle: "short"
8620
8659
  }) })
8621
8660
  ] }) : null,
8622
- /* @__PURE__ */ jsx16("span", { className: "whitespace-pre-wrap break-words", children: item.text }),
8661
+ /* @__PURE__ */ jsx17("span", { className: "whitespace-pre-wrap break-words", children: item.text }),
8623
8662
  item.details ? /* @__PURE__ */ jsxs11("details", { className: "mt-2 text-og-control", children: [
8624
- /* @__PURE__ */ jsx16("summary", { className: "cursor-pointer font-medium", children: item.details.label }),
8625
- /* @__PURE__ */ jsx16("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) })
8663
+ /* @__PURE__ */ jsx17("summary", { className: "cursor-pointer font-medium", children: item.details.label }),
8664
+ /* @__PURE__ */ jsx17("pre", { className: "mt-2 max-h-64 overflow-auto whitespace-pre-wrap break-all rounded-og-sm bg-og-fg/5 p-2 font-mono", children: JSON.stringify(item.details.value, null, 2) })
8626
8665
  ] }) : null
8627
8666
  ] }),
8628
- item.action ? /* @__PURE__ */ jsx16(
8667
+ item.action ? /* @__PURE__ */ jsx17(
8629
8668
  "a",
8630
8669
  {
8631
8670
  className: "shrink-0 rounded-og-sm border border-current/25 px-2 py-1 text-og-control font-medium hover:bg-current/10",
@@ -8672,7 +8711,7 @@ function AuthNeededRow({
8672
8711
  return /* @__PURE__ */ jsxs11("div", { className: cn(enter && "animate-og-enter", "flex flex-col gap-2"), role: "status", children: [
8673
8712
  /* @__PURE__ */ jsxs11("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: [
8674
8713
  /* @__PURE__ */ jsxs11("div", { className: "flex min-w-0 flex-1 items-center gap-3", children: [
8675
- /* @__PURE__ */ jsx16(
8714
+ /* @__PURE__ */ jsx17(
8676
8715
  AuthProviderLogo,
8677
8716
  {
8678
8717
  src: resolveProviderLogo?.(item.providerDomain) ?? null,
@@ -8680,8 +8719,8 @@ function AuthNeededRow({
8680
8719
  }
8681
8720
  ),
8682
8721
  /* @__PURE__ */ jsxs11("div", { className: "min-w-0", children: [
8683
- /* @__PURE__ */ jsx16("p", { className: "truncate text-og-md font-medium text-og-fg", children: title }),
8684
- /* @__PURE__ */ jsx16("p", { className: "line-clamp-2 text-og-sm text-og-fg-subtle", children: reasonLine }),
8722
+ /* @__PURE__ */ jsx17("p", { className: "truncate text-og-md font-medium text-og-fg", children: title }),
8723
+ /* @__PURE__ */ jsx17("p", { className: "line-clamp-2 text-og-sm text-og-fg-subtle", children: reasonLine }),
8685
8724
  recommendation ? /* @__PURE__ */ jsxs11("p", { className: "mt-1 truncate text-og-xs text-og-fg-muted", children: [
8686
8725
  "Provider: ",
8687
8726
  item.providerDomain
@@ -8703,7 +8742,7 @@ function AuthNeededRow({
8703
8742
  "transition-colors hover:bg-og-accent-strong pointer-coarse:min-h-9"
8704
8743
  ),
8705
8744
  children: [
8706
- /* @__PURE__ */ jsx16(RefreshCwIcon, { className: "size-3.5", "aria-hidden": true }),
8745
+ /* @__PURE__ */ jsx17(RefreshCwIcon, { className: "size-3.5", "aria-hidden": true }),
8707
8746
  actionLabel
8708
8747
  ]
8709
8748
  }
@@ -8718,7 +8757,7 @@ function AuthNeededRow({
8718
8757
  "transition-colors hover:bg-og-accent-strong disabled:opacity-70 pointer-coarse:min-h-9"
8719
8758
  ),
8720
8759
  children: [
8721
- /* @__PURE__ */ jsx16(RefreshCwIcon, { className: cn("size-3.5", busy && "animate-og-spin"), "aria-hidden": true }),
8760
+ /* @__PURE__ */ jsx17(RefreshCwIcon, { className: cn("size-3.5", busy && "animate-og-spin"), "aria-hidden": true }),
8722
8761
  busy ? "Opening\u2026" : actionLabel
8723
8762
  ]
8724
8763
  }
@@ -8733,13 +8772,13 @@ function AuthNeededRow({
8733
8772
  "transition-colors hover:bg-og-accent-strong pointer-coarse:min-h-9"
8734
8773
  ),
8735
8774
  children: [
8736
- /* @__PURE__ */ jsx16(RefreshCwIcon, { className: "size-3.5", "aria-hidden": true }),
8775
+ /* @__PURE__ */ jsx17(RefreshCwIcon, { className: "size-3.5", "aria-hidden": true }),
8737
8776
  actionLabel
8738
8777
  ]
8739
8778
  }
8740
8779
  ) : null
8741
8780
  ] }),
8742
- !unavailable ? /* @__PURE__ */ jsx16("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,
8781
+ !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,
8743
8782
  failed ? /* @__PURE__ */ jsxs11("p", { className: "px-1 text-og-xs text-og-status-failed", children: [
8744
8783
  "Couldn't start ",
8745
8784
  missing ? "connecting" : "reconnecting",
@@ -8753,12 +8792,12 @@ function AuthProviderLogo({ src, label }) {
8753
8792
  const [failed, setFailed] = useState12(false);
8754
8793
  useEffect10(() => setFailed(false), [src]);
8755
8794
  const showImage = src && !failed;
8756
- return /* @__PURE__ */ jsx16(
8795
+ return /* @__PURE__ */ jsx17(
8757
8796
  "span",
8758
8797
  {
8759
8798
  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",
8760
8799
  "aria-hidden": true,
8761
- children: showImage ? /* @__PURE__ */ jsx16(
8800
+ children: showImage ? /* @__PURE__ */ jsx17(
8762
8801
  "img",
8763
8802
  {
8764
8803
  src,
@@ -8768,7 +8807,7 @@ function AuthProviderLogo({ src, label }) {
8768
8807
  className: "size-full object-contain p-1.5",
8769
8808
  onError: () => setFailed(true)
8770
8809
  }
8771
- ) : /* @__PURE__ */ jsx16("span", { children: monogram(label) })
8810
+ ) : /* @__PURE__ */ jsx17("span", { children: monogram(label) })
8772
8811
  }
8773
8812
  );
8774
8813
  }
@@ -8813,7 +8852,7 @@ function authReasonLine(reason) {
8813
8852
  // src/components/queue-surface.tsx
8814
8853
  import { Loader2Icon } from "lucide-react";
8815
8854
  import { lazy as lazy4, Suspense as Suspense4 } from "react";
8816
- import { jsx as jsx17, jsxs as jsxs12 } from "react/jsx-runtime";
8855
+ import { jsx as jsx18, jsxs as jsxs12 } from "react/jsx-runtime";
8817
8856
  var loadQueueSurface = () => import("./queue-surface-implementation-XL2A6PBM.js");
8818
8857
  var QueueSurface = createQueueSurface(loadQueueSurface);
8819
8858
  function createQueueSurface(loadImplementation) {
@@ -8824,21 +8863,21 @@ function createQueueSurface(loadImplementation) {
8824
8863
  const { queue } = props;
8825
8864
  if (queue.queue.length + queue.pendingInputs.length === 0) {
8826
8865
  if (!queue.stoppingPreviousAttempt && !queue.error && !queue.mutationError) return null;
8827
- return /* @__PURE__ */ jsx17(EmptyQueueStateSurface, { queue });
8866
+ return /* @__PURE__ */ jsx18(EmptyQueueStateSurface, { queue });
8828
8867
  }
8829
- return /* @__PURE__ */ jsx17(Suspense4, { fallback: /* @__PURE__ */ jsx17(QueueSurfaceFallback, {}), children: /* @__PURE__ */ jsx17(LazyQueueSurface, { ...props }) });
8868
+ return /* @__PURE__ */ jsx18(Suspense4, { fallback: /* @__PURE__ */ jsx18(QueueSurfaceFallback, {}), children: /* @__PURE__ */ jsx18(LazyQueueSurface, { ...props }) });
8830
8869
  };
8831
8870
  }
8832
8871
  function QueueSurfaceFallback() {
8833
- return /* @__PURE__ */ jsx17(
8872
+ return /* @__PURE__ */ jsx18(
8834
8873
  "div",
8835
8874
  {
8836
8875
  "aria-live": "polite",
8837
8876
  className: "og-root mx-auto mb-2 w-full max-w-3xl shrink-0 px-4 sm:px-6",
8838
8877
  "data-testid": "queue-surface-loading",
8839
8878
  role: "status",
8840
- children: /* @__PURE__ */ jsx17("div", { className: "overflow-hidden rounded-lg border border-border bg-surface/80 shadow-sm", children: /* @__PURE__ */ jsxs12("div", { className: "flex items-center gap-2 px-3 py-2 text-og-control text-fg-muted pointer-coarse:min-h-[44px]", children: [
8841
- /* @__PURE__ */ jsx17(
8879
+ children: /* @__PURE__ */ jsx18("div", { className: "overflow-hidden rounded-lg border border-border bg-surface/80 shadow-sm", children: /* @__PURE__ */ jsxs12("div", { className: "flex items-center gap-2 px-3 py-2 text-og-control text-fg-muted pointer-coarse:min-h-[44px]", children: [
8880
+ /* @__PURE__ */ jsx18(
8842
8881
  Loader2Icon,
8843
8882
  {
8844
8883
  "aria-hidden": "true",
@@ -8906,7 +8945,7 @@ function useWorkspaceModelCatalog(options) {
8906
8945
 
8907
8946
  // src/components/chat-composer.tsx
8908
8947
  import { LayoutGroup, motion as motion2 } from "motion/react";
8909
- import { Fragment as Fragment6, jsx as jsx18, jsxs as jsxs13 } from "react/jsx-runtime";
8948
+ import { Fragment as Fragment6, jsx as jsx19, jsxs as jsxs13 } from "react/jsx-runtime";
8910
8949
  function ChatComposer({
8911
8950
  composer,
8912
8951
  responsiveBasis,
@@ -8957,15 +8996,15 @@ function ChatComposer({
8957
8996
  attachments || models || controlsLeading || controlsStart || transcription
8958
8997
  );
8959
8998
  const stackActions = hasControls && Boolean(actionsStart);
8960
- return /* @__PURE__ */ jsx18(Fragment6, { children: /* @__PURE__ */ jsxs13(Root, { controller, responsiveBasis, className, children: [
8999
+ return /* @__PURE__ */ jsx19(Fragment6, { children: /* @__PURE__ */ jsxs13(Root, { controller, responsiveBasis, className, children: [
8961
9000
  /* @__PURE__ */ jsxs13(Frame, { children: [
8962
- /* @__PURE__ */ jsx18(CommandPalette, {}),
9001
+ /* @__PURE__ */ jsx19(CommandPalette, {}),
8963
9002
  /* @__PURE__ */ jsxs13(Surface, { children: [
8964
- /* @__PURE__ */ jsx18(PausedState, {}),
8965
- /* @__PURE__ */ jsx18(RestoredResources, {}),
8966
- /* @__PURE__ */ jsx18(Attachments, {}),
9003
+ /* @__PURE__ */ jsx19(PausedState, {}),
9004
+ /* @__PURE__ */ jsx19(RestoredResources, {}),
9005
+ /* @__PURE__ */ jsx19(Attachments, {}),
8967
9006
  header,
8968
- composer.annotations && composer.annotations.length > 0 ? /* @__PURE__ */ jsx18("div", { className: "px-3 pt-2 sm:px-4", children: /* @__PURE__ */ jsx18(
9007
+ composer.annotations && composer.annotations.length > 0 ? /* @__PURE__ */ jsx19("div", { className: "px-3 pt-2 sm:px-4", children: /* @__PURE__ */ jsx19(
8969
9008
  TimelineAnnotationsChip,
8970
9009
  {
8971
9010
  annotations: composer.annotations,
@@ -8976,8 +9015,8 @@ function ChatComposer({
8976
9015
  onRemove: composer.removeAnnotation
8977
9016
  }
8978
9017
  ) }) : null,
8979
- /* @__PURE__ */ jsx18(Input, { placeholder, autoFocus }),
8980
- controller.confirmState ? /* @__PURE__ */ jsx18(Confirmation, {}) : /* @__PURE__ */ jsx18(
9018
+ /* @__PURE__ */ jsx19(Input, { placeholder, autoFocus }),
9019
+ controller.confirmState ? /* @__PURE__ */ jsx19(Confirmation, {}) : /* @__PURE__ */ jsx19(
8981
9020
  Footer,
8982
9021
  {
8983
9022
  "data-og-stack-actions": stackActions ? "" : void 0,
@@ -8989,8 +9028,8 @@ function ChatComposer({
8989
9028
  className: stackActions ? "min-w-0 max-sm:flex-1 sm:w-auto" : void 0,
8990
9029
  children: [
8991
9030
  controlsLeading,
8992
- /* @__PURE__ */ jsx18(AttachButton, { className: attachButtonClassName }),
8993
- transcription ? /* @__PURE__ */ jsx18(
9031
+ /* @__PURE__ */ jsx19(AttachButton, { className: attachButtonClassName }),
9032
+ transcription ? /* @__PURE__ */ jsx19(
8994
9033
  ComposerTranscriptionControl,
8995
9034
  {
8996
9035
  ...transcription,
@@ -8998,13 +9037,13 @@ function ChatComposer({
8998
9037
  className: [transcription.className, transcriptionClassName].filter(Boolean).join(" ")
8999
9038
  }
9000
9039
  ) : null,
9001
- models ? /* @__PURE__ */ jsx18(
9040
+ models ? /* @__PURE__ */ jsx19(
9002
9041
  motion2.span,
9003
9042
  {
9004
9043
  layout: true,
9005
9044
  transition: { duration: 0.36, ease: [0.22, 1, 0.36, 1] },
9006
9045
  className: "inline-flex min-w-0",
9007
- children: /* @__PURE__ */ jsx18(
9046
+ children: /* @__PURE__ */ jsx19(
9008
9047
  ModelPicker,
9009
9048
  {
9010
9049
  models,
@@ -9014,7 +9053,7 @@ function ChatComposer({
9014
9053
  )
9015
9054
  }
9016
9055
  ) : null,
9017
- controlsStart ? /* @__PURE__ */ jsx18(
9056
+ controlsStart ? /* @__PURE__ */ jsx19(
9018
9057
  motion2.span,
9019
9058
  {
9020
9059
  layout: true,
@@ -9025,15 +9064,15 @@ function ChatComposer({
9025
9064
  ) : null
9026
9065
  ]
9027
9066
  }
9028
- ) : /* @__PURE__ */ jsx18(Hint, { children: hint }),
9067
+ ) : /* @__PURE__ */ jsx19(Hint, { children: hint }),
9029
9068
  /* @__PURE__ */ jsxs13(
9030
9069
  Actions,
9031
9070
  {
9032
9071
  className: stackActions ? "max-sm:shrink-0 sm:w-auto sm:justify-end" : void 0,
9033
9072
  children: [
9034
9073
  actionsStart,
9035
- /* @__PURE__ */ jsx18(PauseButton, {}),
9036
- /* @__PURE__ */ jsx18(SendButton, {})
9074
+ /* @__PURE__ */ jsx19(PauseButton, {}),
9075
+ /* @__PURE__ */ jsx19(SendButton, {})
9037
9076
  ]
9038
9077
  }
9039
9078
  )
@@ -9042,8 +9081,8 @@ function ChatComposer({
9042
9081
  )
9043
9082
  ] })
9044
9083
  ] }),
9045
- /* @__PURE__ */ jsx18(Help, {}),
9046
- /* @__PURE__ */ jsx18(Status, {})
9084
+ /* @__PURE__ */ jsx19(Help, {}),
9085
+ /* @__PURE__ */ jsx19(Status, {})
9047
9086
  ] }) });
9048
9087
  }
9049
9088
 
@@ -9102,9 +9141,9 @@ function conversationTimeline(items, queue, composer) {
9102
9141
  }
9103
9142
 
9104
9143
  // src/components/session-conversation.tsx
9105
- import { jsx as jsx19, jsxs as jsxs14 } from "react/jsx-runtime";
9144
+ import { jsx as jsx20, jsxs as jsxs14 } from "react/jsx-runtime";
9106
9145
  function SessionConversation(props) {
9107
- return /* @__PURE__ */ jsx19(Conversation, { ...props }, `${props.workspaceId ?? ""}:${props.sessionId}`);
9146
+ return /* @__PURE__ */ jsx20(Conversation, { ...props }, `${props.workspaceId ?? ""}:${props.sessionId}`);
9108
9147
  }
9109
9148
  function Conversation({
9110
9149
  sessionId,
@@ -9142,8 +9181,8 @@ function Conversation({
9142
9181
  style: { height },
9143
9182
  "data-og-conversation": "",
9144
9183
  children: [
9145
- error && /* @__PURE__ */ jsx19("p", { role: "alert", children: error.message }),
9146
- /* @__PURE__ */ jsx19(
9184
+ error && /* @__PURE__ */ jsx20("p", { role: "alert", children: error.message }),
9185
+ /* @__PURE__ */ jsx20(
9147
9186
  MessageTimeline,
9148
9187
  {
9149
9188
  className: "min-h-0 flex-1",
@@ -9166,7 +9205,7 @@ function Conversation({
9166
9205
  }
9167
9206
  ),
9168
9207
  /* @__PURE__ */ jsxs14("div", { className: "min-h-0 max-h-[40%] shrink-0 overflow-y-auto", "data-og-conversation-inputs": "", children: [
9169
- /* @__PURE__ */ jsx19(
9208
+ /* @__PURE__ */ jsx20(
9170
9209
  HumanInputSurface,
9171
9210
  {
9172
9211
  requests: human.requests,
@@ -9178,7 +9217,7 @@ function Conversation({
9178
9217
  autoFocus: false
9179
9218
  }
9180
9219
  ),
9181
- terminal ? /* @__PURE__ */ jsx19(QueueSurface, { queue, readOnly: true }) : /* @__PURE__ */ jsx19(
9220
+ terminal ? /* @__PURE__ */ jsx20(QueueSurface, { queue, readOnly: true }) : /* @__PURE__ */ jsx20(
9182
9221
  QueueSurface,
9183
9222
  {
9184
9223
  queue,
@@ -9187,13 +9226,13 @@ function Conversation({
9187
9226
  }
9188
9227
  )
9189
9228
  ] }),
9190
- /* @__PURE__ */ jsx19("div", { className: "shrink-0", "data-og-conversation-composer": "", children: /* @__PURE__ */ jsx19(
9229
+ /* @__PURE__ */ jsx20("div", { className: "shrink-0", "data-og-conversation-composer": "", children: /* @__PURE__ */ jsx20(
9191
9230
  ChatComposer,
9192
9231
  {
9193
9232
  ...composerProps,
9194
9233
  composer,
9195
9234
  disabled: terminal || composerProps?.disabled,
9196
- controlsStart: composerProps?.controlsStart ?? (composer.policy && /* @__PURE__ */ jsx19(
9235
+ controlsStart: composerProps?.controlsStart ?? (composer.policy && /* @__PURE__ */ jsx20(
9197
9236
  ModelPolicyPicker,
9198
9237
  {
9199
9238
  rows: catalog.rows,
@@ -9242,12 +9281,13 @@ import {
9242
9281
  } from "lucide-react";
9243
9282
  import { AnimatePresence as AnimatePresence2, motion as motion3, useReducedMotion } from "motion/react";
9244
9283
  import { useEffect as useEffect11, useId as useId3, useMemo as useMemo5, useRef as useRef12, useState as useState13 } from "react";
9245
- import { Fragment as Fragment7, jsx as jsx20, jsxs as jsxs15 } from "react/jsx-runtime";
9284
+ import { Fragment as Fragment7, jsx as jsx21, jsxs as jsxs15 } from "react/jsx-runtime";
9246
9285
  var GOAL_LABEL = {
9247
9286
  pursuing: "Pursuing",
9248
9287
  waiting: "Waiting",
9249
9288
  scheduled: "Waiting",
9250
9289
  blocked: "Blocked",
9290
+ session_failed: "Blocked by session failure",
9251
9291
  held: "Held",
9252
9292
  paused: "Paused",
9253
9293
  invariant_broken: "Needs attention",
@@ -9274,6 +9314,9 @@ function sessionChromeGoalPillLabel(state, record) {
9274
9314
  }
9275
9315
  function sessionChromeGoalPillExplanation(state, record) {
9276
9316
  const continuation = record?.continuation ?? null;
9317
+ if (state === "session_failed") {
9318
+ return "Resolve the session failure, then use Continue or send a message to continue this active goal.";
9319
+ }
9277
9320
  if (state === "paused") {
9278
9321
  return record?.pausedReason ? GOAL_PAUSED_REASON_EXPLANATION[record.pausedReason] ?? null : null;
9279
9322
  }
@@ -9325,9 +9368,10 @@ function sessionChromeShouldOfferQueue(input) {
9325
9368
  function objectValue(value) {
9326
9369
  return value !== null && typeof value === "object" && !Array.isArray(value) ? value : null;
9327
9370
  }
9328
- function sessionChromeGoalPillState(goalStatus, continuation) {
9371
+ function sessionChromeGoalPillState(goalStatus, continuation, sessionStatus) {
9329
9372
  if (goalStatus === "completed") return "completed";
9330
9373
  if (goalStatus === "paused") return "paused";
9374
+ if (sessionStatus === "failed") return "session_failed";
9331
9375
  if (!continuation) return "invariant_broken";
9332
9376
  if (continuation.state === "running") {
9333
9377
  return continuation.reason === "goal_turn_running" ? "pursuing" : continuation.reason === "human_turn_running" ? "waiting" : "invariant_broken";
@@ -9408,6 +9452,7 @@ function toneClass(tone, selected) {
9408
9452
  }
9409
9453
  function SessionChrome({
9410
9454
  compact = false,
9455
+ sessionStatus,
9411
9456
  queue,
9412
9457
  composer,
9413
9458
  goal,
@@ -9416,6 +9461,7 @@ function SessionChrome({
9416
9461
  commandsCount = 0,
9417
9462
  agentsSignal,
9418
9463
  onDismissIncoming,
9464
+ onOpenSession,
9419
9465
  readOnly = false,
9420
9466
  className,
9421
9467
  active: activeControlled,
@@ -9447,7 +9493,7 @@ function SessionChrome({
9447
9493
  const stopping = stoppingKind !== null;
9448
9494
  const canMutateQueue = !readOnly && composer !== void 0;
9449
9495
  const elapsed = useLiveElapsed(record?.createdAt, Boolean(record));
9450
- const goalState = record ? sessionChromeGoalPillState(record.status, record.continuation) : null;
9496
+ const goalState = record ? sessionChromeGoalPillState(record.status, record.continuation, sessionStatus) : null;
9451
9497
  const initialAuthoritativeQueuedCount = countAuthoritativeQueuedTurns(
9452
9498
  queue.queue,
9453
9499
  queue.mutationFor
@@ -9490,7 +9536,7 @@ function SessionChrome({
9490
9536
  tone: incoming.some(
9491
9537
  (item) => item.classification === "action_required" || item.classification === "failure"
9492
9538
  ) ? "waiting" : "neutral",
9493
- icon: /* @__PURE__ */ jsx20(InboxIcon, { className: "size-3" })
9539
+ icon: /* @__PURE__ */ jsx21(InboxIcon, { className: "size-3" })
9494
9540
  });
9495
9541
  }
9496
9542
  const queuedCount = queuedTurns.length + optimisticQueued.length;
@@ -9507,11 +9553,11 @@ function SessionChrome({
9507
9553
  label: queueProblem ? queuedCount > 0 ? `${queuedCount} queued \xB7 needs attention` : "Queue needs attention" : allVoiceRequests ? queuedCount === 1 ? "Voice request queued" : `${queuedCount} voice requests queued` : onlyVoiceHandoff ? "Voice handoff queued" : `${queuedCount} queued prompt${queuedCount === 1 ? "" : "s"}`,
9508
9554
  ...detail ? { detail } : {},
9509
9555
  tone: queueProblem ? "waiting" : "neutral",
9510
- icon: queueProblem ? /* @__PURE__ */ jsx20(TriangleAlertIcon3, { className: "size-3" }) : voiceOnly ? /* @__PURE__ */ jsx20(AudioLinesIcon, { className: "size-3" }) : /* @__PURE__ */ jsx20(ListOrderedIcon, { className: "size-3" })
9556
+ icon: queueProblem ? /* @__PURE__ */ jsx21(TriangleAlertIcon3, { className: "size-3" }) : voiceOnly ? /* @__PURE__ */ jsx21(AudioLinesIcon, { className: "size-3" }) : /* @__PURE__ */ jsx21(ListOrderedIcon, { className: "size-3" })
9511
9557
  });
9512
9558
  }
9513
9559
  if (record && goalState) {
9514
- const waiting = goalState === "waiting" || goalState === "blocked" || goalState === "held" || goalState === "paused";
9560
+ const waiting = goalState === "waiting" || goalState === "blocked" || goalState === "session_failed" || goalState === "held" || goalState === "paused";
9515
9561
  const explanation = sessionChromeGoalPillExplanation(goalState, record);
9516
9562
  rows.push({
9517
9563
  id: "goal",
@@ -9519,7 +9565,7 @@ function SessionChrome({
9519
9565
  detail: elapsed ? `${elapsed} \xB7 ${record.text}` : record.text,
9520
9566
  ...explanation ? { title: explanation } : {},
9521
9567
  tone: waiting ? "waiting" : goalState === "pursuing" || goalState === "scheduled" ? "accent" : "neutral",
9522
- icon: /* @__PURE__ */ jsx20(TargetIcon3, { className: "size-3" })
9568
+ icon: /* @__PURE__ */ jsx21(TargetIcon3, { className: "size-3" })
9523
9569
  });
9524
9570
  }
9525
9571
  if (agentsSignal && agentsSignal.count > 0) {
@@ -9529,7 +9575,7 @@ function SessionChrome({
9529
9575
  label: `${agentsSignal.count} agent${agentsSignal.count === 1 ? "" : "s"}`,
9530
9576
  ...detail ? { detail } : {},
9531
9577
  tone: agentsSignal.tone ?? "neutral",
9532
- icon: /* @__PURE__ */ jsx20(BotIcon3, { className: "size-3" })
9578
+ icon: /* @__PURE__ */ jsx21(BotIcon3, { className: "size-3" })
9533
9579
  });
9534
9580
  }
9535
9581
  if (commandsCount > 0 || active === "commands" && hasCommandsPanel) {
@@ -9537,7 +9583,7 @@ function SessionChrome({
9537
9583
  id: "commands",
9538
9584
  label: commandsCount > 0 ? `${commandsCount} command${commandsCount === 1 ? "" : "s"}` : "Commands",
9539
9585
  tone: commandsCount > 0 ? "running" : "neutral",
9540
- icon: /* @__PURE__ */ jsx20(TerminalIcon2, { className: "size-3" })
9586
+ icon: /* @__PURE__ */ jsx21(TerminalIcon2, { className: "size-3" })
9541
9587
  });
9542
9588
  }
9543
9589
  return rows;
@@ -9657,7 +9703,14 @@ function SessionChrome({
9657
9703
  const shellDuration = reduceMotion ? 0 : 0.22;
9658
9704
  const crossfadeDuration = reduceMotion ? 0 : 0.18;
9659
9705
  const ease = [0.22, 1, 0.36, 1];
9660
- const panelBody = active === "incoming" ? /* @__PURE__ */ jsx20(IncomingPanel, { inputs: incoming, onDismiss: onDismissIncoming }) : active === "queue" ? /* @__PURE__ */ jsx20(
9706
+ const panelBody = active === "incoming" ? /* @__PURE__ */ jsx21(
9707
+ IncomingPanel,
9708
+ {
9709
+ inputs: incoming,
9710
+ onDismiss: onDismissIncoming,
9711
+ onOpenSession
9712
+ }
9713
+ ) : active === "queue" ? /* @__PURE__ */ jsx21(
9661
9714
  QueuePanel,
9662
9715
  {
9663
9716
  turns: queuedTurns,
@@ -9708,8 +9761,8 @@ function SessionChrome({
9708
9761
  void queue.moveTurn(turnId, beforeTurnId);
9709
9762
  } : void 0
9710
9763
  }
9711
- ) : active === "goal" && record && goalState && goal ? /* @__PURE__ */ jsx20(GoalPanel, { goal, state: goalState, elapsed, readOnly }) : active === "commands" ? /* @__PURE__ */ jsx20("div", { "data-og-session-chrome-panel": "commands", children: commandsPanel }) : active === "agents" ? /* @__PURE__ */ jsx20("div", { "data-og-session-chrome-panel": "agents", children: agentsPanel ?? /* @__PURE__ */ jsx20("p", { className: "text-og-xs text-og-fg-muted", children: "No agent details." }) }) : null;
9712
- return /* @__PURE__ */ jsx20(TooltipProvider, { delayDuration: 300, children: /* @__PURE__ */ jsx20(
9764
+ ) : active === "goal" && record && goalState && goal ? /* @__PURE__ */ jsx21(GoalPanel, { goal, state: goalState, elapsed, readOnly }) : active === "commands" ? /* @__PURE__ */ jsx21("div", { "data-og-session-chrome-panel": "commands", children: commandsPanel }) : active === "agents" ? /* @__PURE__ */ jsx21("div", { "data-og-session-chrome-panel": "agents", children: agentsPanel ?? /* @__PURE__ */ jsx21("p", { className: "text-og-xs text-og-fg-muted", children: "No agent details." }) }) : null;
9765
+ return /* @__PURE__ */ jsx21(TooltipProvider, { delayDuration: 300, children: /* @__PURE__ */ jsx21(
9713
9766
  "div",
9714
9767
  {
9715
9768
  className: cn("og-session-chrome og-root w-full", className),
@@ -9732,7 +9785,7 @@ function SessionChrome({
9732
9785
  transitionTimingFunction: "var(--_og-session-chrome-ease)"
9733
9786
  },
9734
9787
  children: [
9735
- /* @__PURE__ */ jsx20(
9788
+ /* @__PURE__ */ jsx21(
9736
9789
  "div",
9737
9790
  {
9738
9791
  className: "relative",
@@ -9751,7 +9804,7 @@ function SessionChrome({
9751
9804
  gap: compact ? "10px" : "var(--og-session-chrome-chip-gap)"
9752
9805
  },
9753
9806
  children: [
9754
- /* @__PURE__ */ jsx20(
9807
+ /* @__PURE__ */ jsx21(
9755
9808
  motion3.div,
9756
9809
  {
9757
9810
  "aria-hidden": true,
@@ -9815,7 +9868,7 @@ function SessionChrome({
9815
9868
  paddingInline: "var(--og-session-chrome-chip-pad-x)"
9816
9869
  },
9817
9870
  children: [
9818
- signal.id === "queue" && queueArrivalNonce > 0 && !reduceMotion ? /* @__PURE__ */ jsx20(
9871
+ signal.id === "queue" && queueArrivalNonce > 0 && !reduceMotion ? /* @__PURE__ */ jsx21(
9819
9872
  motion3.span,
9820
9873
  {
9821
9874
  "aria-hidden": "true",
@@ -9827,7 +9880,7 @@ function SessionChrome({
9827
9880
  },
9828
9881
  queueArrivalNonce
9829
9882
  ) : null,
9830
- /* @__PURE__ */ jsx20("span", { className: cn("shrink-0", toneClass(signal.tone, selected)), children: signal.icon }),
9883
+ /* @__PURE__ */ jsx21("span", { className: cn("shrink-0", toneClass(signal.tone, selected)), children: signal.icon }),
9831
9884
  /* @__PURE__ */ jsxs15(
9832
9885
  "span",
9833
9886
  {
@@ -9842,33 +9895,33 @@ function SessionChrome({
9842
9895
  }
9843
9896
  ),
9844
9897
  signal.detail && !compact ? /* @__PURE__ */ jsxs15(Fragment7, { children: [
9845
- /* @__PURE__ */ jsx20("span", { "aria-hidden": true, className: "shrink-0 text-og-fg-subtle/60", children: "\xB7" }),
9846
- /* @__PURE__ */ jsx20("span", { className: "min-w-0 max-w-[8.5rem] truncate text-og-fg sm:max-w-[12rem]", children: signal.detail })
9898
+ /* @__PURE__ */ jsx21("span", { "aria-hidden": true, className: "shrink-0 text-og-fg-subtle/60", children: "\xB7" }),
9899
+ /* @__PURE__ */ jsx21("span", { className: "min-w-0 max-w-[8.5rem] truncate text-og-fg sm:max-w-[12rem]", children: signal.detail })
9847
9900
  ] }) : null,
9848
- selected && !compact ? /* @__PURE__ */ jsx20(
9901
+ selected && !compact ? /* @__PURE__ */ jsx21(
9849
9902
  "span",
9850
9903
  {
9851
9904
  "data-testid": "session-chrome-close",
9852
9905
  className: "ml-0.5 inline-flex size-4 shrink-0 items-center justify-center rounded-og-sm text-og-fg-subtle transition-colors group-hover:text-og-fg pointer-coarse:size-5",
9853
9906
  "aria-hidden": true,
9854
- children: /* @__PURE__ */ jsx20(XIcon, { className: "size-3" })
9907
+ children: /* @__PURE__ */ jsx21(XIcon, { className: "size-3" })
9855
9908
  }
9856
9909
  ) : null
9857
9910
  ]
9858
9911
  }
9859
9912
  ),
9860
9913
  signal.id === "goal" && goal && record && !readOnly ? /* @__PURE__ */ jsxs15("div", { className: cn("flex shrink-0 items-center pr-1", compact && "pl-0.5"), children: [
9861
- record.status === "active" || record.status === "paused" ? /* @__PURE__ */ jsx20(
9914
+ record.status === "active" || record.status === "paused" ? /* @__PURE__ */ jsx21(
9862
9915
  IconAction,
9863
9916
  {
9864
9917
  label: record.status === "paused" ? "Resume goal" : "Pause goal",
9865
9918
  tip: record.status === "paused" ? "Resume goal" : "Pause goal",
9866
9919
  disabled: goal.updating,
9867
9920
  onClick: () => void (record.status === "paused" ? goal.resume() : goal.pause("Paused from session chrome")),
9868
- children: goal.updating ? /* @__PURE__ */ jsx20(Loader2Icon2, { className: "size-3 animate-og-spin" }) : record.status === "paused" ? /* @__PURE__ */ jsx20(PlayIcon2, { className: "size-3" }) : /* @__PURE__ */ jsx20(PauseIcon2, { className: "size-3" })
9921
+ children: goal.updating ? /* @__PURE__ */ jsx21(Loader2Icon2, { className: "size-3 animate-og-spin" }) : record.status === "paused" ? /* @__PURE__ */ jsx21(PlayIcon2, { className: "size-3" }) : /* @__PURE__ */ jsx21(PauseIcon2, { className: "size-3" })
9869
9922
  }
9870
9923
  ) : null,
9871
- /* @__PURE__ */ jsx20(
9924
+ /* @__PURE__ */ jsx21(
9872
9925
  IconAction,
9873
9926
  {
9874
9927
  label: "Clear goal",
@@ -9876,10 +9929,10 @@ function SessionChrome({
9876
9929
  danger: true,
9877
9930
  disabled: goal.updating,
9878
9931
  onClick: () => void goal.deleteGoal(),
9879
- children: /* @__PURE__ */ jsx20(Trash2Icon2, { className: "size-3" })
9932
+ children: /* @__PURE__ */ jsx21(Trash2Icon2, { className: "size-3" })
9880
9933
  }
9881
9934
  )
9882
- ] }) : signal.id === "queue" && canMutateQueue && queuedTurns[0] ? /* @__PURE__ */ jsx20("div", { className: cn("flex shrink-0 items-center pr-1", compact && "pl-0.5"), children: /* @__PURE__ */ jsx20(
9935
+ ] }) : signal.id === "queue" && canMutateQueue && queuedTurns[0] ? /* @__PURE__ */ jsx21("div", { className: cn("flex shrink-0 items-center pr-1", compact && "pl-0.5"), children: /* @__PURE__ */ jsx21(
9883
9936
  IconAction,
9884
9937
  {
9885
9938
  label: "Steer first queued message",
@@ -9887,7 +9940,7 @@ function SessionChrome({
9887
9940
  tip: QUEUE_STEER_TIP,
9888
9941
  disabled: queue.mutating || Boolean(queue.mutationFor(queuedTurns[0].id)),
9889
9942
  onClick: () => void queue.steerTurn(queuedTurns[0].id),
9890
- children: /* @__PURE__ */ jsx20(CornerDownRightIcon, { className: "size-3" })
9943
+ children: /* @__PURE__ */ jsx21(CornerDownRightIcon, { className: "size-3" })
9891
9944
  }
9892
9945
  ) }) : null
9893
9946
  ]
@@ -9916,9 +9969,9 @@ function SessionChrome({
9916
9969
  activityOpen ? "bg-og-surface-3 text-og-fg" : "text-og-fg-muted hover:bg-og-surface-2 hover:text-og-fg"
9917
9970
  ),
9918
9971
  children: [
9919
- /* @__PURE__ */ jsx20(ActivityIcon, { className: "size-3.5" }),
9920
- /* @__PURE__ */ jsx20("span", { className: "sr-only", children: "Activity" }),
9921
- incoming.length > 0 ? /* @__PURE__ */ jsx20("span", { className: "size-1.5 rounded-full bg-og-accent" }) : null
9972
+ /* @__PURE__ */ jsx21(ActivityIcon, { className: "size-3.5" }),
9973
+ /* @__PURE__ */ jsx21("span", { className: "sr-only", children: "Activity" }),
9974
+ incoming.length > 0 ? /* @__PURE__ */ jsx21("span", { className: "size-1.5 rounded-full bg-og-accent" }) : null
9922
9975
  ]
9923
9976
  }
9924
9977
  ) : null,
@@ -9930,7 +9983,7 @@ function SessionChrome({
9930
9983
  className: "inline-flex min-h-[var(--og-session-chrome-chip-min-height)] items-center gap-1.5 px-1.5 text-og-xs text-og-fg-muted",
9931
9984
  "data-testid": "session-chrome-stopping",
9932
9985
  children: [
9933
- /* @__PURE__ */ jsx20(
9986
+ /* @__PURE__ */ jsx21(
9934
9987
  Loader2Icon2,
9935
9988
  {
9936
9989
  "aria-hidden": "true",
@@ -9946,7 +9999,7 @@ function SessionChrome({
9946
9999
  )
9947
10000
  }
9948
10001
  ),
9949
- /* @__PURE__ */ jsx20(AnimatePresence2, { initial: false, children: compact && activityOpen ? /* @__PURE__ */ jsx20(
10002
+ /* @__PURE__ */ jsx21(AnimatePresence2, { initial: false, children: compact && activityOpen ? /* @__PURE__ */ jsx21(
9950
10003
  motion3.div,
9951
10004
  {
9952
10005
  initial: { height: 0, opacity: 0 },
@@ -9954,7 +10007,7 @@ function SessionChrome({
9954
10007
  exit: { height: 0, opacity: 0 },
9955
10008
  transition: { duration: shellDuration, ease },
9956
10009
  style: { overflow: "hidden" },
9957
- children: /* @__PURE__ */ jsx20("div", { className: "mt-1 flex items-center gap-1 rounded-t-og-lg bg-og-surface-2/50 px-2 py-1", children: signals.filter((signal) => ["incoming", "agents", "commands"].includes(signal.id)).map((signal) => /* @__PURE__ */ jsxs15(
10010
+ children: /* @__PURE__ */ jsx21("div", { className: "mt-1 flex items-center gap-1 rounded-t-og-lg bg-og-surface-2/50 px-2 py-1", children: signals.filter((signal) => ["incoming", "agents", "commands"].includes(signal.id)).map((signal) => /* @__PURE__ */ jsxs15(
9958
10011
  "button",
9959
10012
  {
9960
10013
  type: "button",
@@ -9980,7 +10033,7 @@ function SessionChrome({
9980
10033
  "Goal action not confirmed. ",
9981
10034
  goal.mutationError.message
9982
10035
  ] }) : null,
9983
- /* @__PURE__ */ jsx20(
10036
+ /* @__PURE__ */ jsx21(
9984
10037
  "div",
9985
10038
  {
9986
10039
  id: panelId,
@@ -9996,7 +10049,7 @@ function SessionChrome({
9996
10049
  transitionDuration: "var(--og-session-chrome-duration)",
9997
10050
  transitionTimingFunction: "var(--_og-session-chrome-ease)"
9998
10051
  },
9999
- children: /* @__PURE__ */ jsx20("div", { className: "min-h-0 overflow-hidden", children: /* @__PURE__ */ jsxs15(
10052
+ children: /* @__PURE__ */ jsx21("div", { className: "min-h-0 overflow-hidden", children: /* @__PURE__ */ jsxs15(
10000
10053
  "div",
10001
10054
  {
10002
10055
  className: cn(
@@ -10009,7 +10062,7 @@ function SessionChrome({
10009
10062
  paddingBlock: "var(--og-session-chrome-panel-pad-y)"
10010
10063
  },
10011
10064
  children: [
10012
- /* @__PURE__ */ jsx20(AnimatePresence2, { initial: false, children: active && active !== "commands" && panelBody ? /* @__PURE__ */ jsx20(
10065
+ /* @__PURE__ */ jsx21(AnimatePresence2, { initial: false, children: active && active !== "commands" && panelBody ? /* @__PURE__ */ jsx21(
10013
10066
  motion3.div,
10014
10067
  {
10015
10068
  "data-og-session-chrome-panel-frame": active,
@@ -10027,7 +10080,7 @@ function SessionChrome({
10027
10080
  },
10028
10081
  active
10029
10082
  ) : null }),
10030
- active === "commands" ? /* @__PURE__ */ jsx20(
10083
+ active === "commands" ? /* @__PURE__ */ jsx21(
10031
10084
  motion3.div,
10032
10085
  {
10033
10086
  initial: reduceMotion ? false : { opacity: 0 },
@@ -10050,46 +10103,60 @@ function SessionChrome({
10050
10103
  }
10051
10104
  function IncomingPanel({
10052
10105
  inputs,
10053
- onDismiss
10106
+ onDismiss,
10107
+ onOpenSession
10054
10108
  }) {
10055
- return /* @__PURE__ */ jsx20(
10056
- "ul",
10057
- {
10058
- className: "flex flex-col gap-0.5",
10059
- "aria-label": "Incoming updates",
10060
- "data-og-session-chrome-panel": "incoming",
10061
- children: inputs.map((input) => /* @__PURE__ */ jsxs15(
10062
- "li",
10063
- {
10064
- className: "group flex items-start gap-1.5 rounded-og-sm px-1.5 py-1 transition-colors hover:bg-[var(--_og-session-chrome-row-hover)]",
10065
- children: [
10066
- /* @__PURE__ */ jsx20(
10067
- "span",
10068
- {
10069
- className: cn(
10070
- "mt-px shrink-0 rounded px-1 py-px text-[10px] font-medium leading-4",
10071
- input.classification === "action_required" || input.classification === "failure" ? "bg-og-status-waiting/12 text-og-status-waiting" : "bg-og-surface-3/80 text-og-fg-muted"
10072
- ),
10073
- children: pendingKindLabel(input.kind)
10074
- }
10075
- ),
10076
- /* @__PURE__ */ jsx20("p", { className: "min-w-0 flex-1 text-og-xs leading-4 text-og-fg", children: input.summary }),
10077
- onDismiss ? /* @__PURE__ */ jsx20("div", { className: "flex shrink-0 items-center gap-0.5 opacity-0 transition-opacity group-hover:opacity-100 focus-within:opacity-100 max-sm:opacity-100", children: /* @__PURE__ */ jsx20(
10078
- IconAction,
10079
- {
10080
- label: `Dismiss incoming ${pendingKindLabel(input.kind)}`,
10081
- tip: "Dismiss",
10082
- onClick: () => onDismiss(input.id),
10083
- danger: true,
10084
- children: /* @__PURE__ */ jsx20(Trash2Icon2, { className: "size-3" })
10085
- }
10086
- ) }) : null
10087
- ]
10088
- },
10089
- input.id
10090
- ))
10091
- }
10092
- );
10109
+ return /* @__PURE__ */ jsxs15("div", { children: [
10110
+ /* @__PURE__ */ jsx21("p", { className: "mb-2 text-og-xs text-og-fg-subtle", children: "Waiting to be included in an agent turn." }),
10111
+ /* @__PURE__ */ jsx21(
10112
+ "ul",
10113
+ {
10114
+ className: "flex flex-col gap-0.5",
10115
+ "aria-label": "Incoming updates",
10116
+ "data-og-session-chrome-panel": "incoming",
10117
+ children: inputs.map((input) => /* @__PURE__ */ jsxs15(
10118
+ "li",
10119
+ {
10120
+ className: "group flex items-start gap-1.5 rounded-og-sm px-1.5 py-1 transition-colors hover:bg-[var(--_og-session-chrome-row-hover)]",
10121
+ children: [
10122
+ /* @__PURE__ */ jsx21(
10123
+ "span",
10124
+ {
10125
+ className: cn(
10126
+ "mt-px shrink-0 rounded px-1 py-px text-[10px] font-medium leading-4",
10127
+ input.classification === "action_required" || input.classification === "failure" ? "bg-og-status-waiting/12 text-og-status-waiting" : "bg-og-surface-3/80 text-og-fg-muted"
10128
+ ),
10129
+ children: pendingKindLabel(input.kind)
10130
+ }
10131
+ ),
10132
+ /* @__PURE__ */ jsxs15("div", { className: "min-w-0 flex-1", children: [
10133
+ /* @__PURE__ */ jsx21("p", { className: "break-words text-og-xs leading-4 text-og-fg", children: input.summary }),
10134
+ /* @__PURE__ */ jsx21(
10135
+ ChildSessionLink,
10136
+ {
10137
+ kind: input.kind,
10138
+ sourceId: input.sourceId,
10139
+ onOpenSession
10140
+ }
10141
+ )
10142
+ ] }),
10143
+ onDismiss ? /* @__PURE__ */ jsx21("div", { className: "flex shrink-0 items-center gap-0.5 opacity-0 transition-opacity group-hover:opacity-100 focus-within:opacity-100 max-sm:opacity-100", children: /* @__PURE__ */ jsx21(
10144
+ IconAction,
10145
+ {
10146
+ label: `Dismiss incoming ${pendingKindLabel(input.kind)}`,
10147
+ tip: "Dismiss",
10148
+ onClick: () => onDismiss(input.id),
10149
+ danger: true,
10150
+ children: /* @__PURE__ */ jsx21(Trash2Icon2, { className: "size-3" })
10151
+ }
10152
+ ) }) : null
10153
+ ]
10154
+ },
10155
+ input.id
10156
+ ))
10157
+ }
10158
+ )
10159
+ ] });
10093
10160
  }
10094
10161
  function QueuePanel({
10095
10162
  turns,
@@ -10151,38 +10218,38 @@ function QueuePanel({
10151
10218
  className: "group flex flex-col gap-1 rounded-og-sm px-1.5 py-1 transition-colors hover:bg-[var(--_og-session-chrome-row-hover)]",
10152
10219
  children: [
10153
10220
  /* @__PURE__ */ jsxs15("div", { className: "flex items-start gap-1.5", children: [
10154
- voice ? /* @__PURE__ */ jsx20(
10221
+ voice ? /* @__PURE__ */ jsx21(
10155
10222
  AudioLinesIcon,
10156
10223
  {
10157
10224
  "aria-hidden": "true",
10158
10225
  className: "mt-0.5 size-3 shrink-0 text-og-accent"
10159
10226
  }
10160
- ) : /* @__PURE__ */ jsx20("span", { className: "mt-px shrink-0 font-og-mono text-[10px] leading-4 text-og-fg-subtle", children: index + 1 }),
10161
- /* @__PURE__ */ jsx20("p", { className: "min-w-0 flex-1 truncate text-og-xs leading-4 text-og-fg", children: presentation.text }),
10227
+ ) : /* @__PURE__ */ jsx21("span", { className: "mt-px shrink-0 font-og-mono text-[10px] leading-4 text-og-fg-subtle", children: index + 1 }),
10228
+ /* @__PURE__ */ jsx21("p", { className: "min-w-0 flex-1 truncate text-og-xs leading-4 text-og-fg", children: presentation.text }),
10162
10229
  showActions ? /* @__PURE__ */ jsxs15("div", { className: "flex shrink-0 items-center gap-0.5 opacity-0 transition-opacity group-hover:opacity-100 focus-within:opacity-100 max-sm:opacity-100", children: [
10163
10230
  onMove && turns.length > 1 ? /* @__PURE__ */ jsxs15(Fragment7, { children: [
10164
- /* @__PURE__ */ jsx20(
10231
+ /* @__PURE__ */ jsx21(
10165
10232
  IconAction,
10166
10233
  {
10167
10234
  label: `Move queued prompt ${index + 1} up`,
10168
10235
  tip: "Move up",
10169
10236
  disabled: settling || pending !== null || index === 0,
10170
10237
  onClick: () => onMove(turn.id, beforeUp),
10171
- children: /* @__PURE__ */ jsx20(ArrowUpIcon, { className: "size-3" })
10238
+ children: /* @__PURE__ */ jsx21(ArrowUpIcon, { className: "size-3" })
10172
10239
  }
10173
10240
  ),
10174
- /* @__PURE__ */ jsx20(
10241
+ /* @__PURE__ */ jsx21(
10175
10242
  IconAction,
10176
10243
  {
10177
10244
  label: `Move queued prompt ${index + 1} down`,
10178
10245
  tip: "Move down",
10179
10246
  disabled: settling || pending !== null || index >= turns.length - 1,
10180
10247
  onClick: () => onMove(turn.id, beforeDown),
10181
- children: /* @__PURE__ */ jsx20(ArrowDownIcon2, { className: "size-3" })
10248
+ children: /* @__PURE__ */ jsx21(ArrowDownIcon2, { className: "size-3" })
10182
10249
  }
10183
10250
  )
10184
10251
  ] }) : null,
10185
- onSteer ? /* @__PURE__ */ jsx20(
10252
+ onSteer ? /* @__PURE__ */ jsx21(
10186
10253
  IconAction,
10187
10254
  {
10188
10255
  label: `Steer queued prompt ${index + 1}`,
@@ -10190,20 +10257,20 @@ function QueuePanel({
10190
10257
  tip: QUEUE_STEER_TIP,
10191
10258
  disabled: settling || pending !== null,
10192
10259
  onClick: () => onSteer(turn.id),
10193
- children: pending === "steer" ? /* @__PURE__ */ jsx20(Loader2Icon2, { className: "size-3 animate-og-spin" }) : /* @__PURE__ */ jsx20(CornerDownRightIcon, { className: "size-3" })
10260
+ children: pending === "steer" ? /* @__PURE__ */ jsx21(Loader2Icon2, { className: "size-3 animate-og-spin" }) : /* @__PURE__ */ jsx21(CornerDownRightIcon, { className: "size-3" })
10194
10261
  }
10195
10262
  ) : null,
10196
- onEdit ? /* @__PURE__ */ jsx20(
10263
+ onEdit ? /* @__PURE__ */ jsx21(
10197
10264
  IconAction,
10198
10265
  {
10199
10266
  label: `Edit queued prompt ${index + 1}`,
10200
10267
  tip: QUEUE_EDIT_TIP,
10201
10268
  disabled: settling || pending !== null,
10202
10269
  onClick: () => onEdit(turn),
10203
- children: pending === "edit" ? /* @__PURE__ */ jsx20(Loader2Icon2, { className: "size-3 animate-og-spin" }) : /* @__PURE__ */ jsx20(PencilIcon, { className: "size-3" })
10270
+ children: pending === "edit" ? /* @__PURE__ */ jsx21(Loader2Icon2, { className: "size-3 animate-og-spin" }) : /* @__PURE__ */ jsx21(PencilIcon, { className: "size-3" })
10204
10271
  }
10205
10272
  ) : null,
10206
- onRemove ? /* @__PURE__ */ jsx20(
10273
+ onRemove ? /* @__PURE__ */ jsx21(
10207
10274
  IconAction,
10208
10275
  {
10209
10276
  label: `Remove queued prompt ${index + 1}`,
@@ -10211,16 +10278,16 @@ function QueuePanel({
10211
10278
  disabled: settling || pending !== null,
10212
10279
  onClick: () => onRemove(turn.id),
10213
10280
  danger: true,
10214
- children: pending === "delete" ? /* @__PURE__ */ jsx20(Loader2Icon2, { className: "size-3 animate-og-spin" }) : /* @__PURE__ */ jsx20(Trash2Icon2, { className: "size-3" })
10281
+ children: pending === "delete" ? /* @__PURE__ */ jsx21(Loader2Icon2, { className: "size-3 animate-og-spin" }) : /* @__PURE__ */ jsx21(Trash2Icon2, { className: "size-3" })
10215
10282
  }
10216
10283
  ) : null
10217
10284
  ] }) : null
10218
10285
  ] }),
10219
10286
  confirmingReplace ? /* @__PURE__ */ jsxs15("div", { className: "rounded-og-sm border border-og-status-waiting/30 bg-og-status-waiting/10 p-2 text-og-xs text-og-fg", children: [
10220
- /* @__PURE__ */ jsx20("p", { children: "Your composer already has a draft. Replace it with this queued prompt?" }),
10221
- /* @__PURE__ */ jsx20("p", { className: "mt-0.5 text-og-fg-muted", children: "The current draft will be permanently discarded; this queued prompt is preserved until you confirm." }),
10287
+ /* @__PURE__ */ jsx21("p", { children: "Your composer already has a draft. Replace it with this queued prompt?" }),
10288
+ /* @__PURE__ */ jsx21("p", { className: "mt-0.5 text-og-fg-muted", children: "The current draft will be permanently discarded; this queued prompt is preserved until you confirm." }),
10222
10289
  /* @__PURE__ */ jsxs15("div", { className: "mt-2 flex justify-end gap-1.5", children: [
10223
- /* @__PURE__ */ jsx20(
10290
+ /* @__PURE__ */ jsx21(
10224
10291
  "button",
10225
10292
  {
10226
10293
  type: "button",
@@ -10229,7 +10296,7 @@ function QueuePanel({
10229
10296
  children: "Keep current draft"
10230
10297
  }
10231
10298
  ),
10232
- /* @__PURE__ */ jsx20(
10299
+ /* @__PURE__ */ jsx21(
10233
10300
  "button",
10234
10301
  {
10235
10302
  type: "button",
@@ -10245,7 +10312,7 @@ function QueuePanel({
10245
10312
  turn.id
10246
10313
  );
10247
10314
  }),
10248
- /* @__PURE__ */ jsx20(AnimatePresence2, { initial: false, children: optimistic.map((message, index) => /* @__PURE__ */ jsxs15(
10315
+ /* @__PURE__ */ jsx21(AnimatePresence2, { initial: false, children: optimistic.map((message, index) => /* @__PURE__ */ jsxs15(
10249
10316
  motion3.li,
10250
10317
  {
10251
10318
  "aria-live": "polite",
@@ -10258,11 +10325,11 @@ function QueuePanel({
10258
10325
  message.state === "failed" ? "bg-og-danger/8 text-og-danger" : "bg-og-accent-soft/45"
10259
10326
  ),
10260
10327
  children: [
10261
- /* @__PURE__ */ jsx20("span", { className: "shrink-0 font-og-mono text-[10px] leading-4 text-og-fg-subtle", children: turns.length + index + 1 }),
10262
- /* @__PURE__ */ jsx20("p", { className: "min-w-0 flex-1 truncate text-og-xs leading-4 text-og-fg", children: message.text }),
10263
- /* @__PURE__ */ jsx20("span", { className: "sr-only", children: message.state === "failed" ? "Not confirmed" : message.state === "sending" ? "Placing in queue" : "Queued" }),
10328
+ /* @__PURE__ */ jsx21("span", { className: "shrink-0 font-og-mono text-[10px] leading-4 text-og-fg-subtle", children: turns.length + index + 1 }),
10329
+ /* @__PURE__ */ jsx21("p", { className: "min-w-0 flex-1 truncate text-og-xs leading-4 text-og-fg", children: message.text }),
10330
+ /* @__PURE__ */ jsx21("span", { className: "sr-only", children: message.state === "failed" ? "Not confirmed" : message.state === "sending" ? "Placing in queue" : "Queued" }),
10264
10331
  message.state === "failed" ? /* @__PURE__ */ jsxs15("div", { className: "flex shrink-0 items-center gap-1 text-[10px]", children: [
10265
- onRetryOptimistic ? /* @__PURE__ */ jsx20(
10332
+ onRetryOptimistic ? /* @__PURE__ */ jsx21(
10266
10333
  "button",
10267
10334
  {
10268
10335
  type: "button",
@@ -10271,23 +10338,23 @@ function QueuePanel({
10271
10338
  children: "Retry"
10272
10339
  }
10273
10340
  ) : null,
10274
- onRemoveOptimistic ? /* @__PURE__ */ jsx20(
10341
+ onRemoveOptimistic ? /* @__PURE__ */ jsx21(
10275
10342
  "button",
10276
10343
  {
10277
10344
  type: "button",
10278
10345
  "aria-label": "Dismiss unconfirmed queued prompt",
10279
10346
  className: "rounded-og-sm p-1 text-og-fg-muted hover:bg-og-surface-2 hover:text-og-fg pointer-coarse:min-h-11 pointer-coarse:min-w-11",
10280
10347
  onClick: () => onRemoveOptimistic(message.clientEventId),
10281
- children: /* @__PURE__ */ jsx20(XIcon, { className: "size-3" })
10348
+ children: /* @__PURE__ */ jsx21(XIcon, { className: "size-3" })
10282
10349
  }
10283
10350
  ) : null
10284
- ] }) : message.state === "sending" ? /* @__PURE__ */ jsx20(
10351
+ ] }) : message.state === "sending" ? /* @__PURE__ */ jsx21(
10285
10352
  Loader2Icon2,
10286
10353
  {
10287
10354
  "aria-hidden": "true",
10288
10355
  className: "size-3 shrink-0 animate-og-spin text-og-accent motion-reduce:animate-none"
10289
10356
  }
10290
- ) : /* @__PURE__ */ jsx20(CheckIcon3, { "aria-hidden": "true", className: "size-3 shrink-0 text-og-accent" })
10357
+ ) : /* @__PURE__ */ jsx21(CheckIcon3, { "aria-hidden": "true", className: "size-3 shrink-0 text-og-accent" })
10291
10358
  ]
10292
10359
  },
10293
10360
  message.clientEventId
@@ -10298,9 +10365,9 @@ function QueuePanel({
10298
10365
  role: "alert",
10299
10366
  className: "flex items-center gap-1.5 rounded-og-sm bg-og-danger/8 px-1.5 py-1 text-og-xs text-og-danger",
10300
10367
  children: [
10301
- /* @__PURE__ */ jsx20(TriangleAlertIcon3, { className: "size-3 shrink-0" }),
10302
- /* @__PURE__ */ jsx20("span", { className: "min-w-0 flex-1", children: "Queue unavailable." }),
10303
- /* @__PURE__ */ jsx20(
10368
+ /* @__PURE__ */ jsx21(TriangleAlertIcon3, { className: "size-3 shrink-0" }),
10369
+ /* @__PURE__ */ jsx21("span", { className: "min-w-0 flex-1", children: "Queue unavailable." }),
10370
+ /* @__PURE__ */ jsx21(
10304
10371
  "button",
10305
10372
  {
10306
10373
  type: "button",
@@ -10318,9 +10385,9 @@ function QueuePanel({
10318
10385
  role: "alert",
10319
10386
  className: "flex items-center gap-1.5 rounded-og-sm bg-og-danger/8 px-1.5 py-1 text-og-xs text-og-danger",
10320
10387
  children: [
10321
- /* @__PURE__ */ jsx20(TriangleAlertIcon3, { className: "size-3 shrink-0" }),
10322
- /* @__PURE__ */ jsx20("span", { className: "min-w-0 flex-1", children: "Not confirmed. Check the queue before retrying." }),
10323
- /* @__PURE__ */ jsx20(
10388
+ /* @__PURE__ */ jsx21(TriangleAlertIcon3, { className: "size-3 shrink-0" }),
10389
+ /* @__PURE__ */ jsx21("span", { className: "min-w-0 flex-1", children: "Not confirmed. Check the queue before retrying." }),
10390
+ /* @__PURE__ */ jsx21(
10324
10391
  "button",
10325
10392
  {
10326
10393
  type: "button",
@@ -10348,7 +10415,7 @@ function GoalPanel({
10348
10415
  const explanation = sessionChromeGoalPillExplanation(state, record);
10349
10416
  return /* @__PURE__ */ jsxs15("div", { className: "space-y-1.5", "data-og-session-chrome-panel": "goal", children: [
10350
10417
  /* @__PURE__ */ jsxs15("div", { className: "flex flex-wrap items-center gap-1.5 text-[10px] font-medium uppercase tracking-wider text-og-fg-subtle", children: [
10351
- /* @__PURE__ */ jsx20("span", { children: sessionChromeGoalPillLabel(state, record) }),
10418
+ /* @__PURE__ */ jsx21("span", { children: sessionChromeGoalPillLabel(state, record) }),
10352
10419
  elapsed ? /* @__PURE__ */ jsxs15("span", { className: "tabular-nums normal-case tracking-normal text-og-fg-muted", children: [
10353
10420
  "\xB7 Created ",
10354
10421
  elapsed,
@@ -10359,13 +10426,13 @@ function GoalPanel({
10359
10426
  record.version
10360
10427
  ] })
10361
10428
  ] }),
10362
- /* @__PURE__ */ jsx20("p", { className: "text-og-sm leading-5 text-og-fg", children: record.text }),
10429
+ /* @__PURE__ */ jsx21("p", { className: "text-og-sm leading-5 text-og-fg", children: record.text }),
10363
10430
  record.successCriteria ? /* @__PURE__ */ jsxs15("p", { className: "text-og-xs leading-4 text-og-fg-muted", children: [
10364
- /* @__PURE__ */ jsx20("span", { className: "font-medium text-og-fg", children: "Done when" }),
10431
+ /* @__PURE__ */ jsx21("span", { className: "font-medium text-og-fg", children: "Done when" }),
10365
10432
  " ",
10366
10433
  record.successCriteria
10367
10434
  ] }) : null,
10368
- explanation ? /* @__PURE__ */ jsx20(
10435
+ explanation ? /* @__PURE__ */ jsx21(
10369
10436
  "p",
10370
10437
  {
10371
10438
  "data-og-session-chrome-goal-explanation": true,
@@ -10373,7 +10440,7 @@ function GoalPanel({
10373
10440
  children: explanation
10374
10441
  }
10375
10442
  ) : null,
10376
- record.continuation?.lastError ? /* @__PURE__ */ jsx20("p", { className: "rounded-og-sm bg-og-status-waiting/10 px-1.5 py-1 text-og-xs leading-4 text-og-status-waiting", children: record.continuation.lastError }) : null,
10443
+ record.continuation?.lastError ? /* @__PURE__ */ jsx21("p", { className: "rounded-og-sm bg-og-status-waiting/10 px-1.5 py-1 text-og-xs leading-4 text-og-status-waiting", children: record.continuation.lastError }) : null,
10377
10444
  /* @__PURE__ */ jsxs15("div", { className: "flex flex-wrap items-center justify-between gap-1.5 pt-0.5", children: [
10378
10445
  /* @__PURE__ */ jsxs15("div", { className: "flex flex-wrap gap-1 text-[10px] text-og-fg-muted", children: [
10379
10446
  /* @__PURE__ */ jsxs15("span", { className: "rounded bg-og-surface-3/70 px-1 py-px", children: [
@@ -10394,7 +10461,7 @@ function GoalPanel({
10394
10461
  onClick: () => void (record.status === "paused" ? goal.resume() : goal.pause("Paused from session chrome")),
10395
10462
  className: "inline-flex h-6 items-center gap-1 rounded-og-sm px-1.5 text-og-xs font-medium text-og-fg-muted outline-hidden transition-colors hover:bg-og-surface-3/70 hover:text-og-fg focus-visible:ring-2 focus-visible:ring-og-accent/40 disabled:opacity-50",
10396
10463
  children: [
10397
- goal.updating ? /* @__PURE__ */ jsx20(Loader2Icon2, { className: "size-3 animate-og-spin" }) : record.status === "paused" ? /* @__PURE__ */ jsx20(PlayIcon2, { className: "size-3" }) : /* @__PURE__ */ jsx20(PauseIcon2, { className: "size-3" }),
10464
+ goal.updating ? /* @__PURE__ */ jsx21(Loader2Icon2, { className: "size-3 animate-og-spin" }) : record.status === "paused" ? /* @__PURE__ */ jsx21(PlayIcon2, { className: "size-3" }) : /* @__PURE__ */ jsx21(PauseIcon2, { className: "size-3" }),
10398
10465
  record.status === "paused" ? "Resume" : "Pause"
10399
10466
  ]
10400
10467
  }
@@ -10407,7 +10474,7 @@ function GoalPanel({
10407
10474
  onClick: () => void goal.deleteGoal(),
10408
10475
  className: "inline-flex h-6 items-center gap-1 rounded-og-sm px-1.5 text-og-xs font-medium text-og-fg-subtle outline-hidden transition-colors hover:bg-og-surface-3/70 hover:text-og-danger focus-visible:ring-2 focus-visible:ring-og-accent/40 disabled:opacity-50",
10409
10476
  children: [
10410
- /* @__PURE__ */ jsx20(Trash2Icon2, { className: "size-3" }),
10477
+ /* @__PURE__ */ jsx21(Trash2Icon2, { className: "size-3" }),
10411
10478
  "Clear"
10412
10479
  ]
10413
10480
  }
@@ -10417,8 +10484,8 @@ function GoalPanel({
10417
10484
  ] });
10418
10485
  }
10419
10486
  var QUEUE_STEER_TIP = /* @__PURE__ */ jsxs15("span", { className: "flex flex-col gap-0.5 text-left", children: [
10420
- /* @__PURE__ */ jsx20("span", { className: "font-medium", children: "Steer" }),
10421
- /* @__PURE__ */ jsx20("span", { className: "opacity-80", children: "Interrupt the current turn and send this message now" })
10487
+ /* @__PURE__ */ jsx21("span", { className: "font-medium", children: "Steer" }),
10488
+ /* @__PURE__ */ jsx21("span", { className: "opacity-80", children: "Interrupt the current turn and send this message now" })
10422
10489
  ] });
10423
10490
  var QUEUE_EDIT_TIP = "Edit in composer";
10424
10491
  var QUEUE_DELETE_TIP = "Delete this queued prompt";
@@ -10432,7 +10499,7 @@ function IconAction({
10432
10499
  children
10433
10500
  }) {
10434
10501
  return /* @__PURE__ */ jsxs15(Tooltip, { children: [
10435
- /* @__PURE__ */ jsx20(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxs15(
10502
+ /* @__PURE__ */ jsx21(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxs15(
10436
10503
  "button",
10437
10504
  {
10438
10505
  type: "button",
@@ -10453,14 +10520,14 @@ function IconAction({
10453
10520
  ]
10454
10521
  }
10455
10522
  ) }),
10456
- /* @__PURE__ */ jsx20(TooltipContent, { side: "top", children: tip })
10523
+ /* @__PURE__ */ jsx21(TooltipContent, { side: "top", children: tip })
10457
10524
  ] });
10458
10525
  }
10459
10526
 
10460
10527
  // src/components/session-commands-panel.tsx
10461
10528
  import { ChevronRightIcon as ChevronRightIcon4, Loader2Icon as Loader2Icon3, SquareIcon } from "lucide-react";
10462
10529
  import { useState as useState14 } from "react";
10463
- import { jsx as jsx21, jsxs as jsxs16 } from "react/jsx-runtime";
10530
+ import { jsx as jsx22, jsxs as jsxs16 } from "react/jsx-runtime";
10464
10531
  function SessionCommandsPanel({
10465
10532
  commands: state,
10466
10533
  readOnly = false
@@ -10482,10 +10549,10 @@ function SessionCommandsPanel({
10482
10549
  }
10483
10550
  };
10484
10551
  return /* @__PURE__ */ jsxs16("div", { className: "space-y-2 text-og-xs", "data-og-session-commands": "", children: [
10485
- state.loading && active.length === 0 ? /* @__PURE__ */ jsx21("p", { role: "status", className: "text-og-fg-muted", children: "Loading commands\u2026" }) : null,
10552
+ state.loading && active.length === 0 ? /* @__PURE__ */ jsx22("p", { role: "status", className: "text-og-fg-muted", children: "Loading commands\u2026" }) : null,
10486
10553
  state.error ? /* @__PURE__ */ jsxs16("div", { role: "alert", className: "flex items-center justify-between gap-2 text-og-danger", children: [
10487
- /* @__PURE__ */ jsx21("span", { children: "Commands unavailable." }),
10488
- /* @__PURE__ */ jsx21(
10554
+ /* @__PURE__ */ jsx22("span", { children: "Commands unavailable." }),
10555
+ /* @__PURE__ */ jsx22(
10489
10556
  "button",
10490
10557
  {
10491
10558
  type: "button",
@@ -10495,8 +10562,8 @@ function SessionCommandsPanel({
10495
10562
  }
10496
10563
  )
10497
10564
  ] }) : null,
10498
- !state.loading && !state.error && active.length === 0 ? /* @__PURE__ */ jsx21("p", { role: "status", className: "text-og-fg-muted", children: "No background commands running." }) : null,
10499
- active.length > 0 ? /* @__PURE__ */ jsx21("ul", { className: "max-h-64 overflow-y-auto overscroll-contain divide-y divide-og-border/40", children: active.map((command) => /* @__PURE__ */ jsxs16("li", { className: "flex items-start gap-3 py-2 first:pt-0 last:pb-0", children: [
10565
+ !state.loading && !state.error && active.length === 0 ? /* @__PURE__ */ jsx22("p", { role: "status", className: "text-og-fg-muted", children: "No background commands running." }) : null,
10566
+ active.length > 0 ? /* @__PURE__ */ jsx22("ul", { className: "max-h-64 overflow-y-auto overscroll-contain divide-y divide-og-border/40", children: active.map((command) => /* @__PURE__ */ jsxs16("li", { className: "flex items-start gap-3 py-2 first:pt-0 last:pb-0", children: [
10500
10567
  /* @__PURE__ */ jsxs16("div", { className: "min-w-0 flex-1", children: [
10501
10568
  /* @__PURE__ */ jsxs16("details", { className: "group/command", children: [
10502
10569
  /* @__PURE__ */ jsxs16(
@@ -10505,13 +10572,13 @@ function SessionCommandsPanel({
10505
10572
  className: "flex cursor-pointer list-none items-center gap-1.5 rounded-og-sm font-mono text-og-fg outline-hidden focus-visible:ring-2 focus-visible:ring-og-accent/40",
10506
10573
  title: "Expand command",
10507
10574
  children: [
10508
- /* @__PURE__ */ jsx21(ChevronRightIcon4, { className: "size-3 shrink-0 text-og-fg-subtle transition-transform group-open/command:rotate-90" }),
10509
- /* @__PURE__ */ jsx21("span", { className: "truncate", children: command.commandPreview || "Background command" })
10575
+ /* @__PURE__ */ jsx22(ChevronRightIcon4, { className: "size-3 shrink-0 text-og-fg-subtle transition-transform group-open/command:rotate-90" }),
10576
+ /* @__PURE__ */ jsx22("span", { className: "truncate", children: command.commandPreview || "Background command" })
10510
10577
  ]
10511
10578
  }
10512
10579
  ),
10513
10580
  /* @__PURE__ */ jsxs16("div", { className: "mt-2 space-y-1", children: [
10514
- /* @__PURE__ */ jsx21("p", { className: "whitespace-pre-wrap break-all font-mono text-og-fg-muted", children: command.commandPreview || "Background command" }),
10581
+ /* @__PURE__ */ jsx22("p", { className: "whitespace-pre-wrap break-all font-mono text-og-fg-muted", children: command.commandPreview || "Background command" }),
10515
10582
  /* @__PURE__ */ jsxs16(
10516
10583
  "time",
10517
10584
  {
@@ -10526,7 +10593,7 @@ function SessionCommandsPanel({
10526
10593
  )
10527
10594
  ] })
10528
10595
  ] }),
10529
- /* @__PURE__ */ jsx21("p", { className: "mt-1 text-og-fg-subtle", children: command.state === "stopping" ? "Stopping\u2026" : "Running" })
10596
+ /* @__PURE__ */ jsx22("p", { className: "mt-1 text-og-fg-subtle", children: command.state === "stopping" ? "Stopping\u2026" : "Running" })
10530
10597
  ] }),
10531
10598
  !readOnly ? /* @__PURE__ */ jsxs16(
10532
10599
  "button",
@@ -10537,13 +10604,13 @@ function SessionCommandsPanel({
10537
10604
  onClick: () => void stop(command.id),
10538
10605
  className: "inline-flex min-h-7 shrink-0 items-center gap-1 rounded-og-sm px-2 text-og-fg-muted outline-hidden hover:bg-og-surface-3/70 hover:text-og-fg focus-visible:ring-2 focus-visible:ring-og-accent/40 disabled:opacity-50 pointer-coarse:min-h-11",
10539
10606
  children: [
10540
- pending === command.id || command.state === "stopping" ? /* @__PURE__ */ jsx21(Loader2Icon3, { className: "size-3 animate-og-spin motion-reduce:animate-none" }) : /* @__PURE__ */ jsx21(SquareIcon, { className: "size-3" }),
10607
+ pending === command.id || command.state === "stopping" ? /* @__PURE__ */ jsx22(Loader2Icon3, { className: "size-3 animate-og-spin motion-reduce:animate-none" }) : /* @__PURE__ */ jsx22(SquareIcon, { className: "size-3" }),
10541
10608
  "Stop"
10542
10609
  ]
10543
10610
  }
10544
10611
  ) : null
10545
10612
  ] }, command.id)) }) : null,
10546
- error ? /* @__PURE__ */ jsx21("p", { role: "alert", className: "text-og-danger", children: error }) : null
10613
+ error ? /* @__PURE__ */ jsx22("p", { role: "alert", className: "text-og-danger", children: error }) : null
10547
10614
  ] });
10548
10615
  }
10549
10616
 
@@ -10611,4 +10678,4 @@ export {
10611
10678
  SessionChrome,
10612
10679
  SessionCommandsPanel
10613
10680
  };
10614
- //# sourceMappingURL=chunk-5IXTJTK3.js.map
10681
+ //# sourceMappingURL=chunk-2ZICNIGZ.js.map