@qredence/fleet 0.6.2 → 0.6.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.
Files changed (78) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/web/client/assets/DialogTitle-DiAm7YNe.js +1 -0
  3. package/dist/web/client/assets/alert-dialog-CYE37KMM.js +1 -0
  4. package/dist/web/client/assets/{artifacts-panel-DmQghvw8.js → artifacts-panel-ClDpGWOU.js} +1 -1
  5. package/dist/web/client/assets/{chat-C24kD2SP.js → chat-BVMnC5Qh.js} +1 -1
  6. package/dist/web/client/assets/{chat-command-palette-BIwjhE6s.js → chat-command-palette-YuyaJNbi.js} +1 -1
  7. package/dist/web/client/assets/{citations-BUvM92nt.js → citations-DXqV2NLy.js} +1 -1
  8. package/dist/web/client/assets/command-Cw4X8Bpk.js +1 -0
  9. package/dist/web/client/assets/dialog-BzcIOvFC.js +1 -0
  10. package/dist/web/client/assets/{fork-picker-dialog-CpwEwsxA.js → fork-picker-dialog-BYRr-xTy.js} +1 -1
  11. package/dist/web/client/assets/git-branch-CTq9aACS.js +1 -0
  12. package/dist/web/client/assets/globals-BtCXZXL_.css +2 -0
  13. package/dist/web/client/assets/{index-BGnQeUYE.js → index-B9aXxpOv.js} +2 -2
  14. package/dist/web/client/assets/{model-selector-list-CRZCXeBf.js → model-selector-list-CHD8lMAl.js} +1 -1
  15. package/dist/web/client/assets/{openui-renderer-Bkkx5kmA.js → openui-renderer-C4e9FOVR.js} +8 -8
  16. package/dist/web/client/assets/provider-catalog-ClVvphe0.js +1 -0
  17. package/dist/web/client/assets/provider-label-CwZ-KDxk.js +1 -0
  18. package/dist/web/client/assets/right-panel-registry-BnYCffmM.js +2 -0
  19. package/dist/web/client/assets/routes-DUontXSG.js +16 -0
  20. package/dist/web/client/assets/{session-tool-renderer-3E3cv8D0.js → session-tool-renderer-Bd3dsE2D.js} +3 -3
  21. package/dist/web/client/assets/session-tree-panel-CM4_wwrM.js +1 -0
  22. package/dist/web/client/assets/settings-dialog-DMTD9m6z.js +2 -0
  23. package/dist/web/client/assets/sparkles-BY5MFyk6.js +1 -0
  24. package/dist/web/client/assets/{subagent-chat-panel-C5ukYiUx.js → subagent-chat-panel-BESrXxAR.js} +1 -1
  25. package/dist/web/client/assets/{subagent-transcript-lqNcSVbH.js → subagent-transcript-CAqFJfMj.js} +1 -1
  26. package/dist/web/client/assets/{subagents-panel-SJKhaVTr.js → subagents-panel-8aKOwWLs.js} +1 -1
  27. package/dist/web/client/assets/{virtualized-turn-list-BgUgX6tM.js → virtualized-turn-list-mL3ONUUA.js} +3 -3
  28. package/dist/web/client/bundle-budget.json +6 -6
  29. package/dist/web/server/{_tanstack-start-manifest_v-BDPifIFN-DTSNCHBX.js → _tanstack-start-manifest_v-Cm8xE-Rb-TMLYN3GY.js} +15 -13
  30. package/dist/web/server/{artifacts-panel-BN3DgqfV-N73J6N5Y.js → artifacts-panel-CwLVBqyi-CDORJY75.js} +21 -20
  31. package/dist/web/server/{chat-command-palette-G8awyZRw-2QE7FXGT.js → chat-command-palette-DUha04ia-5OV7WVJZ.js} +11 -9
  32. package/dist/web/server/{chunk-ZOVXMNJM.js → chunk-3Q3QKLHC.js} +5 -96
  33. package/dist/web/server/{chunk-6SOMNRAX.js → chunk-ADYZWC5L.js} +12 -12
  34. package/dist/web/server/{chunk-CW6KZUKT.js → chunk-B2LF64HM.js} +1 -1
  35. package/dist/web/server/{chunk-YMPJMHXZ.js → chunk-DP26GVWH.js} +3 -2
  36. package/dist/web/server/chunk-ETCO5KZK.js +113 -0
  37. package/dist/web/server/{chunk-ENGEUJIH.js → chunk-FMAYMBRS.js} +22 -20
  38. package/dist/web/server/{chunk-WB2LJC3R.js → chunk-FTLJ66KU.js} +4 -4
  39. package/dist/web/server/{chunk-OSMP55KI.js → chunk-H5D5DX3K.js} +1 -20
  40. package/dist/web/server/chunk-HGVJEUV4.js +102 -0
  41. package/dist/web/server/{chunk-FT74GAAH.js → chunk-KZ35W5M7.js} +27 -27
  42. package/dist/web/server/{chunk-CCYLHNZJ.js → chunk-O2IC376F.js} +46 -3
  43. package/dist/web/server/chunk-OMPXUTMX.js +33 -0
  44. package/dist/web/server/{chunk-BUXJSBE3.js → chunk-RJNGEU6C.js} +1 -1
  45. package/dist/web/server/{chunk-O2UYZT3Z.js → chunk-T2UTBHJ4.js} +48 -4
  46. package/dist/web/server/{chunk-NMBH57JT.js → chunk-TU2WNRAL.js} +6 -6
  47. package/dist/web/server/{chunk-JPDRUSUD.js → chunk-UM3RHJNZ.js} +1 -1
  48. package/dist/web/server/{chunk-4OTHKQMG.js → chunk-V5IFFLZQ.js} +4 -4
  49. package/dist/web/server/{chunk-EDAWH2MT.js → chunk-XEG4JTND.js} +2 -2
  50. package/dist/web/server/{chunk-NCK2FJAD.js → chunk-XSOUURPF.js} +2 -2
  51. package/dist/web/server/{chunk-ESM7OCRL.js → chunk-YCCF676T.js} +3 -3
  52. package/dist/web/server/{chunk-JVOW2NWC.js → chunk-YDDDSVNB.js} +7 -100
  53. package/dist/web/server/{fork-picker-dialog-YKlapaxN-DR5L74ST.js → fork-picker-dialog-DeMiLZtS-WTRTTP64.js} +4 -3
  54. package/dist/web/server/{message-queue-Demph1x4-RBJUC3AT.js → message-queue-Demph1x4-GGXJUUKO.js} +4 -4
  55. package/dist/web/server/{model-selector-list-BmzLiCx9-TK6JGGKU.js → model-selector-list-BeGQHwKV-UJYFO4KX.js} +9 -8
  56. package/dist/web/server/{openui-renderer-moJGf0LA-QCU3PI6H.js → openui-renderer-B4z18Brm-HSMKJ47D.js} +13 -12
  57. package/dist/web/server/{router-CPdFlpbe-LAD4MNZB.js → router-DfG45nTQ-3VXEUYG5.js} +278 -56
  58. package/dist/web/server/{routes-hkom6S6L-DUPPQHPY.js → routes-B9F9UfF1-UN2IVBMJ.js} +271 -117
  59. package/dist/web/server/server.js +2 -2
  60. package/dist/web/server/{session-tool-renderer-CglQ2ky7-2JVYNZG2.js → session-tool-renderer-CT65wuet-RQBMXHEZ.js} +11 -10
  61. package/dist/web/server/session-tree-panel-rS0t1wbf-HNA6AJBY.js +229 -0
  62. package/dist/web/server/{settings-dialog-BCEfmgtP-T3WQEZHB.js → settings-dialog-CqkrDSnm-LFEKSS7Y.js} +38 -34
  63. package/dist/web/server/{subagent-chat-panel-BTwI1kdB-LKBWA4GD.js → subagent-chat-panel-Cf7QdDqH-DPPSVLSY.js} +18 -17
  64. package/dist/web/server/{subagents-panel-8Z9_csoV-HYMEEBHB.js → subagents-panel-_JsUw-6t-MZWM5P45.js} +18 -17
  65. package/package.json +1 -1
  66. package/dist/web/client/assets/command-Dv96gATQ.js +0 -1
  67. package/dist/web/client/assets/dialog-BCb4rQh0.js +0 -1
  68. package/dist/web/client/assets/globals-DCtBkCSD.css +0 -2
  69. package/dist/web/client/assets/provider-catalog-C0XBIasJ.js +0 -1
  70. package/dist/web/client/assets/provider-label-Cka0ep0S.js +0 -1
  71. package/dist/web/client/assets/right-panel-registry-BCW7fQTG.js +0 -2
  72. package/dist/web/client/assets/routes-BWe5Iz-2.js +0 -16
  73. package/dist/web/client/assets/settings-dialog-B8lHq2tT.js +0 -2
  74. package/dist/web/client/assets/sparkles-D8XIY8pN.js +0 -1
  75. package/dist/web/server/{chunk-43S5N7SH.js → chunk-5RTGRTPD.js} +3 -3
  76. package/dist/web/server/{chunk-OMEDERPG.js → chunk-S2IBIJIG.js} +3 -3
  77. package/dist/web/server/{chunk-IXGLKAPN.js → chunk-TR2GA5OF.js} +3 -3
  78. package/dist/web/server/{workspace-panel-BHEB9nRM-TS62SYBA.js → workspace-panel-BHEB9nRM-Y6KGIVGP.js} +2 -2
@@ -1,48 +1,3 @@
1
- import {
2
- Library,
3
- RIGHT_PANEL_LAUNCHER_DEFINITIONS,
4
- getRightPanelDefinition
5
- } from "./chunk-O2UYZT3Z.js";
6
- import {
7
- AlertDialog,
8
- AlertDialogAction,
9
- AlertDialogCancel,
10
- AlertDialogContent,
11
- AlertDialogDescription,
12
- AlertDialogFooter,
13
- AlertDialogTitle,
14
- ArrowLeft,
15
- ProviderBrandIcon,
16
- Settings,
17
- Spinner,
18
- Trash2,
19
- formatProviderLabel
20
- } from "./chunk-ZOVXMNJM.js";
21
- import {
22
- Pencil
23
- } from "./chunk-M5RSPNYN.js";
24
- import {
25
- CHAT_COLUMN_CLASS,
26
- CHAT_HEADER_LAYER_CLASS,
27
- CHROME_PILL_ACTIVE_CLASS,
28
- CHROME_PILL_CLASS,
29
- CHROME_PILL_INACTIVE_CLASS,
30
- COMPOSER_ADD_BUTTON_CLASS,
31
- HIT_AREA_EXPAND_DENSE_CLASS,
32
- PANEL_OVERLAY_CLASS,
33
- SUGGESTION_ITEM_CLASS
34
- } from "./chunk-7HXCGBUP.js";
35
- import {
36
- Plus,
37
- RightPanelProvider,
38
- useChatPanelDataContext,
39
- useWorkspaceTreeContext
40
- } from "./chunk-33QA7BQJ.js";
41
- import {
42
- ArrowUp,
43
- PromptInput
44
- } from "./chunk-DLA5TLKX.js";
45
- import "./chunk-7CNGNFFK.js";
46
1
  import {
47
2
  ChatCommandsResponseSchema,
48
3
  ChatMcpDeleteRequestSchema,
@@ -66,6 +21,9 @@ import {
66
21
  MotionConfig,
67
22
  NETWORK_DISCONNECTED_MESSAGE,
68
23
  SVGVisualElement,
24
+ SessionTreeNavigateRequestSchema,
25
+ SessionTreeNavigateResponseSchema,
26
+ SessionTreeSnapshotResponseSchema,
69
27
  WorkspaceFileResponseSchema,
70
28
  WorkspaceTreeResponseSchema,
71
29
  animateSingleValue,
@@ -83,10 +41,48 @@ import {
83
41
  useMutation,
84
42
  useQuery,
85
43
  useQueryClient
86
- } from "./chunk-CCYLHNZJ.js";
44
+ } from "./chunk-O2IC376F.js";
45
+ import {
46
+ Library,
47
+ RIGHT_PANEL_LAUNCHER_DEFINITIONS,
48
+ getRightPanelDefinition
49
+ } from "./chunk-T2UTBHJ4.js";
50
+ import {
51
+ ArrowLeft,
52
+ ProviderBrandIcon,
53
+ Settings,
54
+ Spinner,
55
+ Trash2,
56
+ formatProviderLabel
57
+ } from "./chunk-3Q3QKLHC.js";
87
58
  import {
88
59
  useUiPreferences
89
60
  } from "./chunk-4EBSM4JR.js";
61
+ import {
62
+ Pencil
63
+ } from "./chunk-M5RSPNYN.js";
64
+ import {
65
+ CHAT_COLUMN_CLASS,
66
+ CHAT_HEADER_LAYER_CLASS,
67
+ CHROME_PILL_ACTIVE_CLASS,
68
+ CHROME_PILL_CLASS,
69
+ CHROME_PILL_INACTIVE_CLASS,
70
+ COMPOSER_ADD_BUTTON_CLASS,
71
+ HIT_AREA_EXPAND_DENSE_CLASS,
72
+ PANEL_OVERLAY_CLASS,
73
+ SUGGESTION_ITEM_CLASS
74
+ } from "./chunk-7HXCGBUP.js";
75
+ import {
76
+ Plus,
77
+ RightPanelProvider,
78
+ useChatPanelDataContext,
79
+ useWorkspaceTreeContext
80
+ } from "./chunk-33QA7BQJ.js";
81
+ import {
82
+ ArrowUp,
83
+ PromptInput
84
+ } from "./chunk-DLA5TLKX.js";
85
+ import "./chunk-7CNGNFFK.js";
90
86
  import {
91
87
  ChevronLeft,
92
88
  FileAttachment,
@@ -102,17 +98,17 @@ import {
102
98
  groupMessages,
103
99
  normalizeAssistantToolParts,
104
100
  orderedRlmChildren
105
- } from "./chunk-4OTHKQMG.js";
101
+ } from "./chunk-V5IFFLZQ.js";
106
102
  import {
107
103
  RefreshCw
108
104
  } from "./chunk-OKL5ZRVB.js";
109
105
  import {
110
106
  notify
111
- } from "./chunk-BUXJSBE3.js";
107
+ } from "./chunk-RJNGEU6C.js";
108
+ import "./chunk-TR2GA5OF.js";
112
109
  import {
113
110
  Bot
114
111
  } from "./chunk-UCA4WN66.js";
115
- import "./chunk-IXGLKAPN.js";
116
112
  import {
117
113
  BookOpenText,
118
114
  CitationList,
@@ -121,10 +117,17 @@ import {
121
117
  LogOut,
122
118
  MessageCircleQuestionMark,
123
119
  useHoverCapable
124
- } from "./chunk-NCK2FJAD.js";
120
+ } from "./chunk-XSOUURPF.js";
121
+ import {
122
+ elevatedMenu,
123
+ field,
124
+ floating,
125
+ mono,
126
+ paper
127
+ } from "./chunk-RXUMFFUV.js";
125
128
  import {
126
129
  Sparkles
127
- } from "./chunk-OSMP55KI.js";
130
+ } from "./chunk-H5D5DX3K.js";
128
131
  import {
129
132
  CHROME_MOBILE_MAX_WIDTH_QUERY,
130
133
  DESKTOP_PANEL_ONLY,
@@ -143,14 +146,14 @@ import {
143
146
  toModelOption,
144
147
  toModelSelection
145
148
  } from "./chunk-7UTDOTOU.js";
146
- import {
147
- Folder
148
- } from "./chunk-GS2IZGRC.js";
149
149
  import {
150
150
  disambiguateSessionLabel,
151
151
  fallbackSessionLabel,
152
152
  sessionListTitle
153
153
  } from "./chunk-PTCKOR23.js";
154
+ import {
155
+ Folder
156
+ } from "./chunk-GS2IZGRC.js";
154
157
  import {
155
158
  readStoredValue,
156
159
  removeStoredValue,
@@ -159,19 +162,22 @@ import {
159
162
  import {
160
163
  resolveWorkspacePanelTarget
161
164
  } from "./chunk-7NZ3FJDA.js";
165
+ import {
166
+ AlertDialog,
167
+ AlertDialogAction,
168
+ AlertDialogCancel,
169
+ AlertDialogContent,
170
+ AlertDialogDescription,
171
+ AlertDialogFooter,
172
+ AlertDialogTitle
173
+ } from "./chunk-HGVJEUV4.js";
174
+ import "./chunk-OMPXUTMX.js";
162
175
  import {
163
176
  Gauge
164
177
  } from "./chunk-3IHTZSBY.js";
165
178
  import {
166
179
  Search
167
180
  } from "./chunk-JIULUYHT.js";
168
- import {
169
- elevatedMenu,
170
- field,
171
- floating,
172
- mono,
173
- paper
174
- } from "./chunk-RXUMFFUV.js";
175
181
  import {
176
182
  derivePrimeAgentArtifactRuns
177
183
  } from "./chunk-ZNFXBGLK.js";
@@ -191,10 +197,10 @@ import {
191
197
  AnimatePresence,
192
198
  useReducedMotion
193
199
  } from "./chunk-CAPTFJOC.js";
200
+ import "./chunk-K6PTNSCW.js";
194
201
  import {
195
202
  ChevronRight
196
203
  } from "./chunk-3C4CFCIS.js";
197
- import "./chunk-K6PTNSCW.js";
198
204
  import {
199
205
  EASE_DRAWER,
200
206
  EASE_IN_OUT,
@@ -227,21 +233,7 @@ import {
227
233
  Badge,
228
234
  UiErrorBoundary,
229
235
  decodeOpenPanelActionMessage
230
- } from "./chunk-EDAWH2MT.js";
231
- import {
232
- CompositeList,
233
- Select,
234
- getDisabledMountTransitionStyles,
235
- isElementDisabled,
236
- useAnchorPositioning,
237
- useAnchoredPopupScrollLock,
238
- useClick,
239
- useCompositeListItem,
240
- useDirection,
241
- useOpenMethodTriggerProps,
242
- usePositioner,
243
- useToolbarRootContext
244
- } from "./chunk-6SOMNRAX.js";
236
+ } from "./chunk-XEG4JTND.js";
245
237
  import {
246
238
  ChatOpenUIArtifactUpsertRequestSchema,
247
239
  ChatOpenUIArtifactUpsertResponseSchema,
@@ -265,7 +257,21 @@ import {
265
257
  UploadedAttachmentSchema,
266
258
  WorkspaceRelativePathSchema,
267
259
  external_exports
268
- } from "./chunk-YMPJMHXZ.js";
260
+ } from "./chunk-DP26GVWH.js";
261
+ import {
262
+ CompositeList,
263
+ Select,
264
+ getDisabledMountTransitionStyles,
265
+ isElementDisabled,
266
+ useAnchorPositioning,
267
+ useAnchoredPopupScrollLock,
268
+ useClick,
269
+ useCompositeListItem,
270
+ useDirection,
271
+ useOpenMethodTriggerProps,
272
+ usePositioner,
273
+ useToolbarRootContext
274
+ } from "./chunk-ADYZWC5L.js";
269
275
  import "./chunk-RJOANOT4.js";
270
276
  import {
271
277
  segmentOpenUIContent
@@ -273,21 +279,35 @@ import {
273
279
  import {
274
280
  ChevronUp
275
281
  } from "./chunk-BQROC4PL.js";
282
+ import {
283
+ ChevronDown
284
+ } from "./chunk-WWJF4RO2.js";
276
285
  import {
277
286
  Input
278
- } from "./chunk-43S5N7SH.js";
287
+ } from "./chunk-5RTGRTPD.js";
279
288
  import {
280
- ARROW_DOWN,
281
- ARROW_LEFT,
282
- ARROW_RIGHT,
283
- ARROW_UP,
284
- COMPOSITE_KEYS,
285
289
  Dialog,
286
290
  DialogContent,
287
291
  DialogDescription,
288
292
  DialogFooter,
289
293
  DialogHeader,
290
- DialogTitle,
294
+ DialogTitle
295
+ } from "./chunk-ETCO5KZK.js";
296
+ import {
297
+ Check
298
+ } from "./chunk-4QD4PCVP.js";
299
+ import {
300
+ useControlled
301
+ } from "./chunk-OVJYUWSQ.js";
302
+ import {
303
+ X
304
+ } from "./chunk-JBLHIEVG.js";
305
+ import {
306
+ ARROW_DOWN,
307
+ ARROW_LEFT,
308
+ ARROW_RIGHT,
309
+ ARROW_UP,
310
+ COMPOSITE_KEYS,
291
311
  FOCUSABLE_POPUP_PROPS,
292
312
  FloatingFocusManager,
293
313
  FloatingNode,
@@ -321,7 +341,7 @@ import {
321
341
  usePopupRootSync,
322
342
  useSurface,
323
343
  useTriggerDataForwarding
324
- } from "./chunk-JVOW2NWC.js";
344
+ } from "./chunk-YDDDSVNB.js";
325
345
  import {
326
346
  Button,
327
347
  CLICK_TRIGGER_IDENTIFIER,
@@ -355,18 +375,6 @@ import {
355
375
  import {
356
376
  cva
357
377
  } from "./chunk-TLNZNR7C.js";
358
- import {
359
- Check
360
- } from "./chunk-4QD4PCVP.js";
361
- import {
362
- X
363
- } from "./chunk-JBLHIEVG.js";
364
- import {
365
- ChevronDown
366
- } from "./chunk-WWJF4RO2.js";
367
- import {
368
- useControlled
369
- } from "./chunk-OVJYUWSQ.js";
370
378
  import {
371
379
  useBaseUiId,
372
380
  useValueAsRef
@@ -428,7 +436,7 @@ import "./chunk-JDCCC7A7.js";
428
436
  import "./chunk-L547YHC4.js";
429
437
  import "./chunk-MLKGABMK.js";
430
438
 
431
- // web/app/dist/server/assets/routes-hkom6S6L.js
439
+ // web/app/dist/server/assets/routes-B9F9UfF1.js
432
440
  import * as React$1 from "react";
433
441
  import { Suspense, cloneElement, createContext as createContext2, createElement, forwardRef as forwardRef2, isValidElement, lazy, memo, useCallback as useCallback2, useContext as useContext2, useEffect as useEffect2, useEffectEvent, useId, useLayoutEffect, useMemo as useMemo2, useReducer, useRef as useRef2, useState as useState2, useSyncExternalStore } from "react";
434
442
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
@@ -6865,7 +6873,7 @@ function SessionSidebarProjectList({ projectActionsOpen, setProjectActionsOpen,
6865
6873
  }
6866
6874
  function fleetVersion() {
6867
6875
  try {
6868
- return "0.6.2";
6876
+ return "0.6.3";
6869
6877
  } catch {
6870
6878
  return "dev";
6871
6879
  }
@@ -9095,7 +9103,7 @@ function InputQuestionBar({ questionBar, navigation, roundedTop, onDismiss }) {
9095
9103
  ]
9096
9104
  });
9097
9105
  }
9098
- var LazyModelSelectorList = lazy(() => import("./model-selector-list-BmzLiCx9-TK6JGGKU.js").then(({ ModelSelectorList: ModelSelectorList2 }) => ({ default: ModelSelectorList2 })));
9106
+ var LazyModelSelectorList = lazy(() => import("./model-selector-list-BeGQHwKV-UJYFO4KX.js").then(({ ModelSelectorList: ModelSelectorList2 }) => ({ default: ModelSelectorList2 })));
9099
9107
  function ModelSelectorList(props) {
9100
9108
  return /* @__PURE__ */ jsx(Suspense, {
9101
9109
  fallback: /* @__PURE__ */ jsx("div", {
@@ -9867,7 +9875,7 @@ function iconFor(kind) {
9867
9875
  return kind;
9868
9876
  }
9869
9877
  }
9870
- var LazySessionToolRenderer = lazy(() => import("./session-tool-renderer-CglQ2ky7-2JVYNZG2.js").then((n) => n.n).then(({ SessionToolRenderer: SessionToolRenderer2 }) => ({ default: SessionToolRenderer2 })));
9878
+ var LazySessionToolRenderer = lazy(() => import("./session-tool-renderer-CT65wuet-RQBMXHEZ.js").then((n) => n.n).then(({ SessionToolRenderer: SessionToolRenderer2 }) => ({ default: SessionToolRenderer2 })));
9871
9879
  function SessionToolRenderer(props) {
9872
9880
  return /* @__PURE__ */ jsx(Suspense, {
9873
9881
  fallback: /* @__PURE__ */ jsx("div", {
@@ -9910,7 +9918,7 @@ function PromptSuggestions(props) {
9910
9918
  })
9911
9919
  });
9912
9920
  }
9913
- var LazyMessageQueue = lazy(() => import("./message-queue-Demph1x4-RBJUC3AT.js").then(({ MessageQueue: MessageQueue2 }) => ({ default: MessageQueue2 })));
9921
+ var LazyMessageQueue = lazy(() => import("./message-queue-Demph1x4-GGXJUUKO.js").then(({ MessageQueue: MessageQueue2 }) => ({ default: MessageQueue2 })));
9914
9922
  function MessageQueue(props) {
9915
9923
  return /* @__PURE__ */ jsx(Suspense, {
9916
9924
  fallback: null,
@@ -10019,10 +10027,11 @@ function AssistantMessage({ messages, isLast, isStreaming, suppressQuestionTool,
10019
10027
  function sameMessages(previous, next) {
10020
10028
  return previous.length === next.length && previous.every((message, index) => message === next[index]);
10021
10029
  }
10022
- var ConversationTurnView = memo(function ConversationTurnView2({ turn, state, rendering, activity, windowed = false, animateIn }) {
10030
+ var ConversationTurnView = memo(function ConversationTurnView2({ turn, state, rendering, activity, windowed = false, animateIn, highlightedMessageId }) {
10023
10031
  const shouldAnimate = animateIn ?? !state.isStreaming;
10032
+ const isHighlighted = highlightedMessageId && (turn.user?.id === highlightedMessageId || turn.assistants.some((message) => message.id === highlightedMessageId)) || false;
10024
10033
  return /* @__PURE__ */ jsxs("div", {
10025
- className: "flex flex-col gap-[var(--density-gap)]",
10034
+ className: cn("flex flex-col gap-[var(--density-gap)] rounded-lg transition-colors", isHighlighted ? "bg-foreground/6 ring-1 ring-foreground/15" : void 0),
10026
10035
  style: windowed ? void 0 : {
10027
10036
  contentVisibility: "auto",
10028
10037
  containIntrinsicSize: "auto 400px"
@@ -10045,7 +10054,7 @@ var ConversationTurnView = memo(function ConversationTurnView2({ turn, state, re
10045
10054
  animateIn: shouldAnimate
10046
10055
  }) : null]
10047
10056
  });
10048
- }, (previous, next) => previous.turn.user === next.turn.user && sameMessages(previous.turn.assistants, next.turn.assistants) && previous.state.isLast === next.state.isLast && previous.state.isStreaming === next.state.isStreaming && previous.state.suppressQuestionTool === next.state.suppressQuestionTool && previous.rendering.toolRenderers === next.rendering.toolRenderers && previous.rendering.onOpenUIAction === next.rendering.onOpenUIAction && previous.rendering.onOpenUIArtifactReady === next.rendering.onOpenUIArtifactReady && previous.rendering.onOpenArtifact === next.rendering.onOpenArtifact && previous.activity.label === next.activity.label && previous.activity.presentation === next.activity.presentation && previous.activity.artifactRuns === next.activity.artifactRuns && previous.windowed === next.windowed && previous.animateIn === next.animateIn);
10057
+ }, (previous, next) => previous.turn.user === next.turn.user && sameMessages(previous.turn.assistants, next.turn.assistants) && previous.state.isLast === next.state.isLast && previous.state.isStreaming === next.state.isStreaming && previous.state.suppressQuestionTool === next.state.suppressQuestionTool && previous.rendering.toolRenderers === next.rendering.toolRenderers && previous.rendering.onOpenUIAction === next.rendering.onOpenUIAction && previous.rendering.onOpenUIArtifactReady === next.rendering.onOpenUIArtifactReady && previous.rendering.onOpenArtifact === next.rendering.onOpenArtifact && previous.activity.label === next.activity.label && previous.activity.presentation === next.activity.presentation && previous.activity.artifactRuns === next.activity.artifactRuns && previous.windowed === next.windowed && previous.animateIn === next.animateIn && previous.highlightedMessageId === next.highlightedMessageId);
10049
10058
  function isLifecycleNotice(label) {
10050
10059
  if (!label) return false;
10051
10060
  return /queued|steered|retry|compact|reset|recover|sign in/i.test(label);
@@ -10077,7 +10086,7 @@ var MemoChatComposerHost = memo(ChatComposerHost);
10077
10086
  function getConversationTurnKey(turn, turnIndex) {
10078
10087
  return turn.user?.id ?? turn.assistants[0]?.id ?? `assistant-turn-${turnIndex}`;
10079
10088
  }
10080
- function AgentChat({ toolRenderers, suggestions, status, onStop, onSend, inputBar, className, messages, error, suppressQuestionTool = false, onOpenUIAction, activityLabel, presentation, artifactRuns, onOpenArtifact, onOpenUIArtifactReady, queue, onDeleteQueuedMessage, onEditQueuedMessage }) {
10089
+ function AgentChat({ toolRenderers, suggestions, status, onStop, onSend, inputBar, className, messages, error, suppressQuestionTool = false, onOpenUIAction, activityLabel, presentation, artifactRuns, onOpenArtifact, onOpenUIArtifactReady, queue, onDeleteQueuedMessage, onEditQueuedMessage, highlightedMessageId }) {
10081
10090
  const draftSetterRef = useRef2(null);
10082
10091
  const viewportRef = useRef2(null);
10083
10092
  const seenTurnKeysRef = useRef2(/* @__PURE__ */ new Set());
@@ -10142,11 +10151,13 @@ function AgentChat({ toolRenderers, suggestions, status, onStop, onSend, inputBa
10142
10151
  rendering,
10143
10152
  activity: isLast ? activityForLast : activityForRest,
10144
10153
  windowed,
10145
- animateIn: firstAppearance && !(isLast && isStreaming)
10154
+ animateIn: firstAppearance && !(isLast && isStreaming),
10155
+ highlightedMessageId
10146
10156
  });
10147
10157
  }, [
10148
10158
  activityForLast,
10149
10159
  activityForRest,
10160
+ highlightedMessageId,
10150
10161
  isStreaming,
10151
10162
  rendering,
10152
10163
  stateForLast,
@@ -10221,7 +10232,7 @@ function AgentChat({ toolRenderers, suggestions, status, onStop, onSend, inputBa
10221
10232
  ]
10222
10233
  });
10223
10234
  }
10224
- function ChatPanel({ messages, status, error, workspaceName, activityLabel, presentation, artifactRuns, queue, onDeleteQueuedMessage, onEditQueuedMessage, onOpenArtifact, onOpenUIArtifactReady, inputSuggestionItems, suppressQuestionTool, inputBar, onSend, onOpenUIAction, onStop, onQuestionAnswer }) {
10235
+ function ChatPanel({ messages, highlightedMessageId, status, error, workspaceName, activityLabel, presentation, artifactRuns, queue, onDeleteQueuedMessage, onEditQueuedMessage, onOpenArtifact, onOpenUIArtifactReady, inputSuggestionItems, suppressQuestionTool, inputBar, onSend, onOpenUIAction, onStop, onQuestionAnswer }) {
10225
10236
  const handleSend = useCallback2((msg) => {
10226
10237
  onSend(msg.content, msg.altKey);
10227
10238
  }, [onSend]);
@@ -10244,6 +10255,7 @@ function ChatPanel({ messages, status, error, workspaceName, activityLabel, pres
10244
10255
  "data-fleet-chat-focus": true,
10245
10256
  children: /* @__PURE__ */ jsx(UiErrorBoundary, { children: /* @__PURE__ */ jsx(AgentChat, {
10246
10257
  messages,
10258
+ highlightedMessageId,
10247
10259
  status,
10248
10260
  onSend: handleSend,
10249
10261
  onOpenUIAction: handleOpenUIAction,
@@ -10266,9 +10278,9 @@ function ChatPanel({ messages, status, error, workspaceName, activityLabel, pres
10266
10278
  }) })
10267
10279
  });
10268
10280
  }
10269
- var LazyChatCommandPalette = lazy(() => import("./chat-command-palette-G8awyZRw-2QE7FXGT.js").then(({ ChatCommandPalette }) => ({ default: ChatCommandPalette })));
10270
- var LazySettingsDialog = lazy(() => import("./settings-dialog-BCEfmgtP-T3WQEZHB.js").then(({ SettingsDialog }) => ({ default: SettingsDialog })));
10271
- var LazyForkPickerDialog = lazy(() => import("./fork-picker-dialog-YKlapaxN-DR5L74ST.js").then(({ ForkPickerDialog }) => ({ default: ForkPickerDialog })));
10281
+ var LazyChatCommandPalette = lazy(() => import("./chat-command-palette-DUha04ia-5OV7WVJZ.js").then(({ ChatCommandPalette }) => ({ default: ChatCommandPalette })));
10282
+ var LazySettingsDialog = lazy(() => import("./settings-dialog-CqkrDSnm-LFEKSS7Y.js").then(({ SettingsDialog }) => ({ default: SettingsDialog })));
10283
+ var LazyForkPickerDialog = lazy(() => import("./fork-picker-dialog-DeMiLZtS-WTRTTP64.js").then(({ ForkPickerDialog }) => ({ default: ForkPickerDialog })));
10272
10284
  function ChatCommandPaletteOverlay({ chrome, conversation, dialogs, panels, session }) {
10273
10285
  return /* @__PURE__ */ jsx(Fragment$1, { children: dialogs.commandPaletteOpen ? /* @__PURE__ */ jsx(Suspense, {
10274
10286
  fallback: null,
@@ -10566,6 +10578,17 @@ var chatClient = {
10566
10578
  if (!response.ok) throw new ChatRequestError(response.status, await response.text());
10567
10579
  return external_exports.object({ attachments: external_exports.array(UploadedAttachmentSchema) }).parse(await response.json()).attachments;
10568
10580
  },
10581
+ async getSessionTree(sessionId) {
10582
+ return fetchValidatedJson(`/api/chat/session-tree?${new URLSearchParams({ sessionId })}`, SessionTreeSnapshotResponseSchema).then((response) => response.snapshot);
10583
+ },
10584
+ async navigateSessionTree(request) {
10585
+ const body = SessionTreeNavigateRequestSchema.parse(request);
10586
+ return fetchValidatedJson("/api/chat/session-tree", SessionTreeNavigateResponseSchema, {
10587
+ method: "POST",
10588
+ headers: { "Content-Type": "application/json" },
10589
+ body: JSON.stringify(body)
10590
+ }).then((response) => response.snapshot);
10591
+ },
10569
10592
  async loadSession(metadata) {
10570
10593
  return fetchValidatedJson(`/api/chat/session?${metadataUrl({
10571
10594
  ...metadata,
@@ -14777,7 +14800,7 @@ function useThrottledTranscriptSummary(messages, status, transcriptKey) {
14777
14800
  const idleSummary = useMemo2(() => summarizeChatTranscript(messages), [messages]);
14778
14801
  return live ? throttled : idleSummary;
14779
14802
  }
14780
- function useRightPanelContextValue({ activityLabel, artifactRuns, chatMode, handleThemePreferenceChange, isLoadingMcp, isLoadingProviders, isUpdatingMcp, isUpdatingProvider, loadSession, loadSubagentSession, loadWorkspaceFile: loadWorkspaceFile2, messages, onOpenSubagentTab, modelKey, models, modelCatalog, onDiscoverModels, onMcpOAuth, onOAuthLogin, onRemoveMcp, onRemoveProvider, onUpdateMcp, onUpdateProvider, openWorkspacePath, planLabel, presentation, mcpConnections, providers, queue, refreshResources, refreshWorkspace, resources, resourcesError, resourcesLoading, rightPanel, reopenRightPanel, saveSettings, selectedArtifactId, sessionId, selectedWorkspacePath, setRightPanel, setSelectedWorkspacePath, settings, settingsError, settingsLoading, status, thinkingLevel, themePreference, workspaceError, workspaceLoading, workspaceTree }) {
14803
+ function useRightPanelContextValue({ activityLabel, artifactRuns, chatMode, handleThemePreferenceChange, isLoadingMcp, isLoadingProviders, isUpdatingMcp, isUpdatingProvider, loadSession, loadSubagentSession, loadWorkspaceFile: loadWorkspaceFile2, messages, onOpenSubagentTab, modelKey, models, modelCatalog, onDiscoverModels, onMcpOAuth, onOAuthLogin, onRemoveMcp, onRemoveProvider, onUpdateMcp, onUpdateProvider, openWorkspacePath, planLabel, presentation, mcpConnections, providers, queue, refreshResources, refreshWorkspace, resources, resourcesError, resourcesLoading, rightPanel, reopenRightPanel, saveSettings, selectedArtifactId, sessionId, selectedWorkspacePath, setRightPanel, setSelectedWorkspacePath, settings, settingsError, settingsLoading, status, thinkingLevel, themePreference, workspaceError, workspaceLoading, workspaceTree, sessionTreeSnapshot, sessionTreeLoading, sessionTreeError, selectedSessionTreeEntryId, isSessionTreeStreaming, refreshSessionTree, selectSessionTreeEntry, rewindSessionTree }) {
14781
14804
  const transcriptSummary = useThrottledTranscriptSummary(messages, status, sessionId ?? "");
14782
14805
  const publishedArtifactRuns = useThrottledWhileLive(artifactRuns, status, sessionId ?? "");
14783
14806
  const chatPanelData = useMemo2(() => ({
@@ -14803,7 +14826,15 @@ function useRightPanelContextValue({ activityLabel, artifactRuns, chatMode, hand
14803
14826
  sessionId,
14804
14827
  setRightPanel,
14805
14828
  status,
14806
- thinkingLevel
14829
+ thinkingLevel,
14830
+ sessionTreeSnapshot,
14831
+ sessionTreeLoading,
14832
+ sessionTreeError,
14833
+ selectedSessionTreeEntryId,
14834
+ isSessionTreeStreaming,
14835
+ refreshSessionTree,
14836
+ selectSessionTreeEntry,
14837
+ rewindSessionTree
14807
14838
  }), [
14808
14839
  activityLabel,
14809
14840
  publishedArtifactRuns,
@@ -14827,7 +14858,15 @@ function useRightPanelContextValue({ activityLabel, artifactRuns, chatMode, hand
14827
14858
  sessionId,
14828
14859
  setRightPanel,
14829
14860
  status,
14830
- thinkingLevel
14861
+ thinkingLevel,
14862
+ sessionTreeSnapshot,
14863
+ sessionTreeLoading,
14864
+ sessionTreeError,
14865
+ selectedSessionTreeEntryId,
14866
+ isSessionTreeStreaming,
14867
+ refreshSessionTree,
14868
+ selectSessionTreeEntry,
14869
+ rewindSessionTree
14831
14870
  ]);
14832
14871
  const workspaceTreeContext = useMemo2(() => ({
14833
14872
  loadWorkspaceFile: loadWorkspaceFile2,
@@ -14896,6 +14935,102 @@ function useRightPanelContextValue({ activityLabel, artifactRuns, chatMode, hand
14896
14935
  workspaceTreeContext
14897
14936
  };
14898
14937
  }
14938
+ function useSessionTree({ sessionMetadata, status, resumeSession, rightPanel }) {
14939
+ const sessionId = sessionMetadata.sessionId;
14940
+ const [snapshot, setSnapshot] = useState2(null);
14941
+ const [loading, setLoading] = useState2(false);
14942
+ const [error, setError] = useState2(null);
14943
+ const [selectedEntryId, setSelectedEntryId] = useState2(null);
14944
+ const [highlightedMessageId, setHighlightedMessageId] = useState2(null);
14945
+ const treeGenerationRef = useRef2(0);
14946
+ const refreshSessionTree = useCallback2(async () => {
14947
+ if (!sessionId) {
14948
+ setSnapshot(null);
14949
+ setError(null);
14950
+ setLoading(false);
14951
+ return;
14952
+ }
14953
+ const refreshGeneration = treeGenerationRef.current;
14954
+ setLoading(true);
14955
+ setError(null);
14956
+ try {
14957
+ const next = await chatClient.getSessionTree(sessionId);
14958
+ if (treeGenerationRef.current !== refreshGeneration) return;
14959
+ setSnapshot(next);
14960
+ } catch (refreshError) {
14961
+ if (treeGenerationRef.current !== refreshGeneration) return;
14962
+ setError(refreshError instanceof Error ? refreshError.message : String(refreshError));
14963
+ } finally {
14964
+ if (treeGenerationRef.current === refreshGeneration) setLoading(false);
14965
+ }
14966
+ }, [sessionId]);
14967
+ useEffect2(() => {
14968
+ if (rightPanel !== "session-tree") return;
14969
+ refreshSessionTree();
14970
+ }, [refreshSessionTree, rightPanel]);
14971
+ useEffect2(() => {
14972
+ treeGenerationRef.current += 1;
14973
+ setLoading(false);
14974
+ setSelectedEntryId(null);
14975
+ setHighlightedMessageId(null);
14976
+ setSnapshot(null);
14977
+ setError(null);
14978
+ }, [sessionId]);
14979
+ return {
14980
+ sessionTreeSnapshot: snapshot,
14981
+ sessionTreeLoading: loading,
14982
+ sessionTreeError: error,
14983
+ selectedSessionTreeEntryId: selectedEntryId,
14984
+ highlightedTranscriptMessageId: highlightedMessageId,
14985
+ refreshSessionTree,
14986
+ selectSessionTreeEntry: useCallback2((entryId, messageId) => {
14987
+ setSelectedEntryId(entryId);
14988
+ setHighlightedMessageId(messageId ?? null);
14989
+ }, []),
14990
+ rewindSessionTree: useCallback2(async (entryId, expectedLeafId) => {
14991
+ if (!sessionId) throw new Error("No active session to rewind.");
14992
+ const rewindSessionId = sessionId;
14993
+ const rewindMetadata = sessionMetadata;
14994
+ const rewindGeneration = ++treeGenerationRef.current;
14995
+ const isCurrentRewind = () => treeGenerationRef.current === rewindGeneration;
14996
+ setLoading(true);
14997
+ setError(null);
14998
+ try {
14999
+ await chatClient.navigateSessionTree({
15000
+ sessionId: rewindSessionId,
15001
+ targetEntryId: entryId,
15002
+ ...expectedLeafId ? { expectedLeafId } : {}
15003
+ });
15004
+ if (!isCurrentRewind()) throw new Error("Session changed during rewind.");
15005
+ setHighlightedMessageId(null);
15006
+ const resumed = await resumeSession(rewindMetadata);
15007
+ if (!isCurrentRewind()) throw new Error("Session changed during rewind.");
15008
+ if (!resumed) throw new Error("Failed to resume session after rewind.");
15009
+ const after = await chatClient.getSessionTree(rewindSessionId);
15010
+ if (!isCurrentRewind()) throw new Error("Session changed during rewind.");
15011
+ setSnapshot(after);
15012
+ setSelectedEntryId(after.leafId);
15013
+ } catch (rewindError) {
15014
+ if (isCurrentRewind()) try {
15015
+ const after = await chatClient.getSessionTree(rewindSessionId);
15016
+ if (isCurrentRewind()) {
15017
+ setSnapshot(after);
15018
+ setSelectedEntryId(after.leafId);
15019
+ }
15020
+ } catch {
15021
+ }
15022
+ throw rewindError;
15023
+ } finally {
15024
+ if (isCurrentRewind()) setLoading(false);
15025
+ }
15026
+ }, [
15027
+ resumeSession,
15028
+ sessionMetadata,
15029
+ sessionId
15030
+ ]),
15031
+ isSessionTreeStreaming: status === "streaming" || status === "submitted"
15032
+ };
15033
+ }
14899
15034
  var WORKSPACE_SUGGESTION_PREFIX = "workspace:";
14900
15035
  function flattenWorkspaceNodes(nodes, result = []) {
14901
15036
  for (const node of nodes) {
@@ -15298,6 +15433,15 @@ function useChatWorkspaceData() {
15298
15433
  presentation,
15299
15434
  rootSessionId: sessionMetadata.sessionId
15300
15435
  });
15436
+ const sessionTree = useSessionTree({
15437
+ sessionMetadata: {
15438
+ sessionId: sessionMetadata.sessionId,
15439
+ projectId: sessionMetadata.projectId ?? activeProjectId
15440
+ },
15441
+ status,
15442
+ resumeSession: resumeSessionForWorkspaceWithResult,
15443
+ rightPanel
15444
+ });
15301
15445
  const onDiscoverModels = useCallback2(async (providerId) => {
15302
15446
  return (await discoverModelsMutation.mutateAsync(providerId)).models.map(toModelOption);
15303
15447
  }, [discoverModelsMutation]);
@@ -15352,7 +15496,15 @@ function useChatWorkspaceData() {
15352
15496
  themePreference,
15353
15497
  workspaceError,
15354
15498
  workspaceLoading,
15355
- workspaceTree
15499
+ workspaceTree,
15500
+ sessionTreeSnapshot: sessionTree.sessionTreeSnapshot,
15501
+ sessionTreeLoading: sessionTree.sessionTreeLoading,
15502
+ sessionTreeError: sessionTree.sessionTreeError,
15503
+ selectedSessionTreeEntryId: sessionTree.selectedSessionTreeEntryId,
15504
+ isSessionTreeStreaming: sessionTree.isSessionTreeStreaming,
15505
+ refreshSessionTree: () => void sessionTree.refreshSessionTree(),
15506
+ selectSessionTreeEntry: sessionTree.selectSessionTreeEntry,
15507
+ rewindSessionTree: sessionTree.rewindSessionTree
15356
15508
  });
15357
15509
  const header = useChatWorkspaceHeader({
15358
15510
  activeTabId: agentTabs.activeTabId,
@@ -15388,6 +15540,7 @@ function useChatWorkspaceData() {
15388
15540
  deleteQueuedMessage,
15389
15541
  editQueuedMessage,
15390
15542
  error,
15543
+ highlightedTranscriptMessageId: sessionTree.highlightedTranscriptMessageId,
15391
15544
  messages,
15392
15545
  openArtifact,
15393
15546
  openPanelAction: openProjectPanelAction,
@@ -15457,7 +15610,7 @@ function useChatWorkspaceData() {
15457
15610
  }
15458
15611
  };
15459
15612
  }
15460
- var LazySubagentChatPanel = lazy(() => import("./subagent-chat-panel-BTwI1kdB-LKBWA4GD.js").then(({ SubagentChatPanel }) => ({ default: SubagentChatPanel })));
15613
+ var LazySubagentChatPanel = lazy(() => import("./subagent-chat-panel-Cf7QdDqH-DPPSVLSY.js").then(({ SubagentChatPanel }) => ({ default: SubagentChatPanel })));
15461
15614
  function ChatWorkspaceShell() {
15462
15615
  const { session, conversation, composer, panels, dialogs, chrome, agentTabs } = useChatWorkspaceData();
15463
15616
  const toggleCommandPalette = useCallback2(() => {
@@ -15531,6 +15684,7 @@ function ChatWorkspaceShell() {
15531
15684
  const inputBar = useChatInputBarProps(composer, session.activeSessionId);
15532
15685
  const activeConversationPanel = agentTabs.activeTabId === "main" || !agentTabs.selectedChild ? /* @__PURE__ */ jsx(ChatPanel, {
15533
15686
  messages: conversation.messages,
15687
+ highlightedMessageId: conversation.highlightedTranscriptMessageId ?? void 0,
15534
15688
  status: conversation.status,
15535
15689
  error: conversation.error ?? void 0,
15536
15690
  workspaceName: activeProjectName,
@@ -2024,7 +2024,7 @@ function getResponse() {
2024
2024
  }
2025
2025
  var HEADERS = { TSS_SHELL: "X-TSS_SHELL" };
2026
2026
  async function getStartManifest(matchedRoutes) {
2027
- const { tsrStartManifest } = await import("./_tanstack-start-manifest_v-BDPifIFN-DTSNCHBX.js");
2027
+ const { tsrStartManifest } = await import("./_tanstack-start-manifest_v-Cm8xE-Rb-TMLYN3GY.js");
2028
2028
  const startManifest = tsrStartManifest();
2029
2029
  let routes = startManifest.routes;
2030
2030
  routes[rootRouteId];
@@ -4982,7 +4982,7 @@ var getBaseManifest = getProdBaseManifest;
4982
4982
  var createEarlyHintsForRequest = createEarlyHintsCollector;
4983
4983
  async function loadEntries() {
4984
4984
  const [routerEntry, startEntry, pluginAdapters] = await Promise.all([
4985
- import("./router-CPdFlpbe-LAD4MNZB.js"),
4985
+ import("./router-DfG45nTQ-3VXEUYG5.js"),
4986
4986
  import("./start-DVUbMfrb-ELVIFRUY.js"),
4987
4987
  import("./empty-plugin-adapters-Cqtvkauv-6XWFDBYT.js")
4988
4988
  ]);