@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
@@ -0,0 +1,102 @@
1
+ import {
2
+ DialogBackdrop,
3
+ DialogClose,
4
+ DialogDescription,
5
+ DialogPopup,
6
+ DialogPortal,
7
+ DialogTitle,
8
+ SurfaceProvider,
9
+ surfaceClasses,
10
+ useRenderDialogRoot,
11
+ useSurface
12
+ } from "./chunk-YDDDSVNB.js";
13
+ import {
14
+ Button
15
+ } from "./chunk-HQ5TEXHT.js";
16
+ import {
17
+ cn
18
+ } from "./chunk-CHEC7TWB.js";
19
+
20
+ // web/app/dist/server/assets/alert-dialog-DXAUDAzT.js
21
+ import { jsx, jsxs } from "react/jsx-runtime";
22
+ function AlertDialogRoot(props) {
23
+ return useRenderDialogRoot("alert-dialog", props);
24
+ }
25
+ var DIALOG_SURFACE_OFFSET = 4;
26
+ function AlertDialog({ ...props }) {
27
+ return /* @__PURE__ */ jsx(AlertDialogRoot, {
28
+ "data-slot": "alert-dialog",
29
+ ...props
30
+ });
31
+ }
32
+ function AlertDialogPortal({ ...props }) {
33
+ return /* @__PURE__ */ jsx(DialogPortal, {
34
+ "data-slot": "alert-dialog-portal",
35
+ ...props
36
+ });
37
+ }
38
+ function AlertDialogBackdrop({ className, ...props }) {
39
+ return /* @__PURE__ */ jsx(DialogBackdrop, {
40
+ "data-slot": "alert-dialog-backdrop",
41
+ className: cn("fixed inset-0 isolate z-[60] bg-black/10 supports-backdrop-filter:backdrop-blur-xs data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0", className),
42
+ ...props
43
+ });
44
+ }
45
+ function AlertDialogContent({ className, children, ...props }) {
46
+ const substrate = useSurface();
47
+ const level = Math.min(substrate + DIALOG_SURFACE_OFFSET, 8);
48
+ return /* @__PURE__ */ jsxs(AlertDialogPortal, { children: [/* @__PURE__ */ jsx(AlertDialogBackdrop, {}), /* @__PURE__ */ jsx(DialogPopup, {
49
+ "data-slot": "alert-dialog-content",
50
+ className: cn("fixed top-1/2 left-1/2 z-[60] grid w-full max-w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 gap-4 rounded-xl p-6 text-sm text-popover-foreground outline-none sm:max-w-md data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95", surfaceClasses(level), className),
51
+ ...props,
52
+ children: /* @__PURE__ */ jsx(SurfaceProvider, {
53
+ value: level,
54
+ children
55
+ })
56
+ })] });
57
+ }
58
+ function AlertDialogTitle({ className, ...props }) {
59
+ return /* @__PURE__ */ jsx(DialogTitle, {
60
+ "data-slot": "alert-dialog-title",
61
+ className: cn("font-heading text-base leading-none font-medium", className),
62
+ ...props
63
+ });
64
+ }
65
+ function AlertDialogDescription({ className, ...props }) {
66
+ return /* @__PURE__ */ jsx(DialogDescription, {
67
+ "data-slot": "alert-dialog-description",
68
+ className: cn("text-sm text-pretty text-muted-foreground", className),
69
+ ...props
70
+ });
71
+ }
72
+ function AlertDialogFooter({ className, ...props }) {
73
+ return /* @__PURE__ */ jsx("div", {
74
+ "data-slot": "alert-dialog-footer",
75
+ className: cn("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end", className),
76
+ ...props
77
+ });
78
+ }
79
+ function AlertDialogCancel({ ...props }) {
80
+ return /* @__PURE__ */ jsx(DialogClose, {
81
+ "data-slot": "alert-dialog-cancel",
82
+ render: /* @__PURE__ */ jsx(Button, { variant: "outline" }),
83
+ ...props
84
+ });
85
+ }
86
+ function AlertDialogAction({ ...props }) {
87
+ return /* @__PURE__ */ jsx(DialogClose, {
88
+ "data-slot": "alert-dialog-action",
89
+ render: /* @__PURE__ */ jsx(Button, { variant: "destructive" }),
90
+ ...props
91
+ });
92
+ }
93
+
94
+ export {
95
+ AlertDialog,
96
+ AlertDialogContent,
97
+ AlertDialogTitle,
98
+ AlertDialogDescription,
99
+ AlertDialogFooter,
100
+ AlertDialogCancel,
101
+ AlertDialogAction
102
+ };
@@ -1,3 +1,11 @@
1
+ import {
2
+ Card,
3
+ CardContent,
4
+ CardDescription,
5
+ CardHeader,
6
+ CardTitle,
7
+ validateAndNormalizeOpenUIHtmlArtifact
8
+ } from "./chunk-UM3RHJNZ.js";
1
9
  import {
2
10
  Alert,
3
11
  AlertDescription,
@@ -6,12 +14,21 @@ import {
6
14
  FieldLabel,
7
15
  Separator,
8
16
  Switch
9
- } from "./chunk-WB2LJC3R.js";
17
+ } from "./chunk-FTLJ66KU.js";
10
18
  import {
11
19
  Badge,
12
20
  UiErrorBoundary,
13
21
  encodeOpenPanelActionMessage
14
- } from "./chunk-EDAWH2MT.js";
22
+ } from "./chunk-XEG4JTND.js";
23
+ import {
24
+ OpenPanelActionSchema,
25
+ RightPanelIdSchema,
26
+ WorkspaceRelativePathSchema,
27
+ external_exports,
28
+ object,
29
+ registry,
30
+ toJSONSchema
31
+ } from "./chunk-DP26GVWH.js";
15
32
  import {
16
33
  Select,
17
34
  arrow$2,
@@ -24,24 +41,7 @@ import {
24
41
  shift,
25
42
  size,
26
43
  useFloating
27
- } from "./chunk-6SOMNRAX.js";
28
- import {
29
- Card,
30
- CardContent,
31
- CardDescription,
32
- CardHeader,
33
- CardTitle,
34
- validateAndNormalizeOpenUIHtmlArtifact
35
- } from "./chunk-JPDRUSUD.js";
36
- import {
37
- OpenPanelActionSchema,
38
- RightPanelIdSchema,
39
- WorkspaceRelativePathSchema,
40
- external_exports,
41
- object,
42
- registry,
43
- toJSONSchema
44
- } from "./chunk-YMPJMHXZ.js";
44
+ } from "./chunk-ADYZWC5L.js";
45
45
  import {
46
46
  segmentOpenUIContent
47
47
  } from "./chunk-NFRJDPB3.js";
@@ -49,6 +49,9 @@ import {
49
49
  ChevronUp,
50
50
  isSafeExternalUrl
51
51
  } from "./chunk-BQROC4PL.js";
52
+ import {
53
+ ChevronDown
54
+ } from "./chunk-WWJF4RO2.js";
52
55
  import {
53
56
  Dialog as Dialog2,
54
57
  DialogContent as DialogContent2,
@@ -79,21 +82,18 @@ import {
79
82
  } from "./chunk-7PQTPSEE.js";
80
83
  import {
81
84
  Input
82
- } from "./chunk-43S5N7SH.js";
85
+ } from "./chunk-5RTGRTPD.js";
83
86
  import {
84
87
  Dialog,
85
88
  DialogContent,
86
89
  DialogHeader,
87
90
  DialogTitle
88
- } from "./chunk-JVOW2NWC.js";
91
+ } from "./chunk-ETCO5KZK.js";
89
92
  import {
90
93
  Button,
91
94
  require_with_selector,
92
95
  visuallyHidden
93
96
  } from "./chunk-HQ5TEXHT.js";
94
- import {
95
- ChevronDown
96
- } from "./chunk-WWJF4RO2.js";
97
97
  import {
98
98
  useBaseUiId
99
99
  } from "./chunk-E5HALE4M.js";
@@ -132,7 +132,7 @@ import {
132
132
  __toESM
133
133
  } from "./chunk-L547YHC4.js";
134
134
 
135
- // web/app/dist/server/assets/openui-renderer-moJGf0LA.js
135
+ // web/app/dist/server/assets/openui-renderer-B4z18Brm.js
136
136
  import * as React2 from "react";
137
137
  import React, { Children, Component as Component2, Fragment as Fragment2, PureComponent, cloneElement as cloneElement2, createContext as createContext2, createElement as createElement2, forwardRef as forwardRef2, isValidElement as isValidElement2, memo as memo2, useCallback as useCallback2, useContext as useContext2, useEffect as useEffect2, useId as useId2, useImperativeHandle, useInsertionEffect, useLayoutEffect as useLayoutEffect3, useMemo as useMemo2, useRef as useRef2, useState as useState2, useSyncExternalStore } from "react";
138
138
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
@@ -100272,7 +100272,7 @@ function PanelActionComponent({ props: { focus, label, panel, relativePath } })
100272
100272
  }
100273
100273
  var PanelActionDef = defineComponent$1({
100274
100274
  name: "PanelAction",
100275
- description: "A trusted local action that opens Resources, Workspace, Artifacts, REPL, Subagents, or Session insights. relativePath selects a contained workspace-relative path and is valid only for Workspace and Artifacts panels.",
100275
+ description: "A trusted local action that opens Resources, Workspace, Artifacts, REPL, Subagents, Session insights, or Session tree. relativePath selects a contained workspace-relative path and is valid only for Workspace and Artifacts panels.",
100276
100276
  props: external_exports.object({
100277
100277
  label: external_exports.string().describe("Visible action label"),
100278
100278
  panel: RightPanelIdSchema,
@@ -66,13 +66,14 @@ import {
66
66
  ChatDeliveryModeSchema,
67
67
  ChatThinkingLevelSchema,
68
68
  ChatTransportSchema,
69
+ SessionIdSchema,
69
70
  external_exports,
70
71
  nonEmptyStringSchema,
71
72
  nonNegativeIntSchema,
72
73
  positiveIntSchema
73
- } from "./chunk-YMPJMHXZ.js";
74
+ } from "./chunk-DP26GVWH.js";
74
75
 
75
- // web/app/dist/server/assets/chat-protocol.zod-DV6B0Wk2.js
76
+ // web/app/dist/server/assets/chat-protocol.zod-gvwn378O.js
76
77
  import { useContext, useMemo } from "react";
77
78
  import { jsx } from "react/jsx-runtime";
78
79
  var pipe = (...transformers) => transformers.reduce((a, b) => (v) => b(a(v)));
@@ -1880,7 +1881,11 @@ var NETWORK_DISCONNECTED_MESSAGE = "Fleet Prime is not connected to the Prime Ag
1880
1881
  var FLEET_ADAPTER_CAPABILITIES = {
1881
1882
  protocolVersion: 1,
1882
1883
  schemaRevision: 2,
1883
- features: ["reasoning-summary-v1", "mcp-connections-v1"]
1884
+ features: [
1885
+ "reasoning-summary-v1",
1886
+ "mcp-connections-v1",
1887
+ "session-tree-v1"
1888
+ ]
1884
1889
  };
1885
1890
  var ChatModelInfoSchema = external_exports.object({
1886
1891
  key: external_exports.string(),
@@ -2127,6 +2132,41 @@ var ChatMcpOAuthLoginResponseSchema = external_exports.object({
2127
2132
  }).openapi({ description: "MCP OAuth login snapshot" });
2128
2133
  external_exports.object({ message: external_exports.string() }).openapi({ description: "Error response" });
2129
2134
  external_exports.object({ status: external_exports.literal("ok") }).openapi({ description: "Health check response" });
2135
+ var SessionTreeNodeRoleSchema = external_exports.enum([
2136
+ "user",
2137
+ "assistant",
2138
+ "system",
2139
+ "unknown"
2140
+ ]);
2141
+ var SessionTreeNodeKindSchema = external_exports.enum([
2142
+ "message",
2143
+ "system",
2144
+ "other"
2145
+ ]);
2146
+ var SessionTreeNodeSchema = external_exports.lazy(() => external_exports.object({
2147
+ id: external_exports.string().min(1),
2148
+ parentId: external_exports.string().min(1).optional(),
2149
+ kind: SessionTreeNodeKindSchema,
2150
+ role: SessionTreeNodeRoleSchema.optional(),
2151
+ label: external_exports.string(),
2152
+ preview: external_exports.string(),
2153
+ isLeaf: external_exports.boolean(),
2154
+ isOnActiveBranch: external_exports.boolean(),
2155
+ messageIndex: external_exports.number().int().nonnegative().optional(),
2156
+ children: external_exports.array(SessionTreeNodeSchema)
2157
+ }).openapi({ description: "Browser-safe session tree node" }));
2158
+ var SessionTreeSnapshotSchema = external_exports.object({
2159
+ sessionId: SessionIdSchema,
2160
+ leafId: external_exports.string().min(1).nullable(),
2161
+ nodes: external_exports.array(SessionTreeNodeSchema)
2162
+ }).openapi({ description: "Session entry tree snapshot for the active branch and branches" });
2163
+ var SessionTreeSnapshotResponseSchema = external_exports.object({ snapshot: SessionTreeSnapshotSchema }).openapi({ description: "Session tree read response" });
2164
+ var SessionTreeNavigateRequestSchema = external_exports.object({
2165
+ sessionId: SessionIdSchema,
2166
+ targetEntryId: external_exports.string().min(1).max(256),
2167
+ expectedLeafId: external_exports.string().min(1).max(256).optional()
2168
+ }).openapi({ description: "Navigate the live session tree to an earlier entry" });
2169
+ var SessionTreeNavigateResponseSchema = external_exports.object({ snapshot: SessionTreeSnapshotSchema }).openapi({ description: "Session tree navigate response with authoritative snapshot" });
2130
2170
  var chatResourcePathSchema = nonEmptyStringSchema.max(1024);
2131
2171
  var chatResourcePathArraySchema = external_exports.array(chatResourcePathSchema);
2132
2172
  var chatResourcePathUpdateArraySchema = chatResourcePathArraySchema.max(100);
@@ -4568,6 +4608,9 @@ export {
4568
4608
  ChatMcpDeleteRequestSchema,
4569
4609
  ChatMcpOAuthLoginRequestSchema,
4570
4610
  ChatMcpOAuthLoginResponseSchema,
4611
+ SessionTreeSnapshotResponseSchema,
4612
+ SessionTreeNavigateRequestSchema,
4613
+ SessionTreeNavigateResponseSchema,
4571
4614
  ChatSettingsUpdateRequestSchema,
4572
4615
  ChatSettingsResponseSchema,
4573
4616
  useQueryClient,
@@ -0,0 +1,33 @@
1
+ import {
2
+ createLucideIcon
3
+ } from "./chunk-4ZIEVI5O.js";
4
+
5
+ // web/app/dist/server/assets/git-branch-C-tKgXNV.js
6
+ var GitBranch = createLucideIcon("git-branch", [
7
+ ["path", {
8
+ d: "M15 6a9 9 0 0 0-9 9V3",
9
+ key: "1cii5b"
10
+ }],
11
+ ["circle", {
12
+ cx: "18",
13
+ cy: "6",
14
+ r: "3",
15
+ key: "1h7g24"
16
+ }],
17
+ ["circle", {
18
+ cx: "6",
19
+ cy: "18",
20
+ r: "3",
21
+ key: "fqmcym"
22
+ }]
23
+ ]);
24
+
25
+ export {
26
+ GitBranch
27
+ };
28
+ /**
29
+ * @license lucide-react v1.38.0 - ISC
30
+ *
31
+ * This source code is licensed under the ISC license.
32
+ * See the LICENSE file in the root directory of this source tree.
33
+ */
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  toast
3
- } from "./chunk-IXGLKAPN.js";
3
+ } from "./chunk-TR2GA5OF.js";
4
4
 
5
5
  // web/app/dist/server/assets/notify-CKgkObb6.js
6
6
  function addToast(title, type) {
@@ -8,6 +8,9 @@ import {
8
8
  import {
9
9
  Folder
10
10
  } from "./chunk-GS2IZGRC.js";
11
+ import {
12
+ GitBranch
13
+ } from "./chunk-OMPXUTMX.js";
11
14
  import {
12
15
  Skeleton
13
16
  } from "./chunk-NZ6KQT2X.js";
@@ -21,7 +24,7 @@ import {
21
24
  createLucideIcon
22
25
  } from "./chunk-4ZIEVI5O.js";
23
26
 
24
- // web/app/dist/server/assets/right-panel-registry-CKV-wYHG.js
27
+ // web/app/dist/server/assets/right-panel-registry-BwCjUEa7.js
25
28
  import { Suspense, lazy } from "react";
26
29
  import { jsx, jsxs } from "react/jsx-runtime";
27
30
  var Activity = createLucideIcon("activity", [["path", {
@@ -46,12 +49,13 @@ var Library = createLucideIcon("library", [
46
49
  key: "6qkkli"
47
50
  }]
48
51
  ]);
49
- var LazyArtifactsPanel = lazy(() => import("./artifacts-panel-BN3DgqfV-N73J6N5Y.js").then(({ ArtifactsPanelContent }) => ({ default: ArtifactsPanelContent })));
52
+ var LazyArtifactsPanel = lazy(() => import("./artifacts-panel-CwLVBqyi-CDORJY75.js").then(({ ArtifactsPanelContent }) => ({ default: ArtifactsPanelContent })));
50
53
  var LazyResourcesPanel = lazy(() => import("./resources-panel-ChUliWV--JITAGS6Q.js").then(({ ResourcesPanelContent }) => ({ default: ResourcesPanelContent })));
51
54
  var LazySessionInsightsPanel = lazy(() => import("./session-insights-panel-xgrkX1Rp-FDNURBXZ.js").then(({ SessionInsightsPanel }) => ({ default: SessionInsightsPanel })));
52
55
  var LazyReplPanel = lazy(() => import("./repl-panel-CgUF1qUw-3DFD2V53.js").then(({ ReplPanelContent }) => ({ default: ReplPanelContent })));
53
- var LazySubagentsPanel = lazy(() => import("./subagents-panel-8Z9_csoV-HYMEEBHB.js").then(({ SubagentsPanelContent }) => ({ default: SubagentsPanelContent })));
54
- var LazyWorkspacePanel = lazy(() => import("./workspace-panel-BHEB9nRM-TS62SYBA.js").then(({ WorkspacePanelContent }) => ({ default: WorkspacePanelContent })));
56
+ var LazySubagentsPanel = lazy(() => import("./subagents-panel-_JsUw-6t-MZWM5P45.js").then(({ SubagentsPanelContent }) => ({ default: SubagentsPanelContent })));
57
+ var LazyWorkspacePanel = lazy(() => import("./workspace-panel-BHEB9nRM-Y6KGIVGP.js").then(({ WorkspacePanelContent }) => ({ default: WorkspacePanelContent })));
58
+ var LazySessionTreePanel = lazy(() => import("./session-tree-panel-rS0t1wbf-HNA6AJBY.js").then(({ SessionTreePanel }) => ({ default: SessionTreePanel })));
55
59
  function PanelFallback() {
56
60
  return /* @__PURE__ */ jsxs("div", {
57
61
  className: "flex min-h-32 flex-col gap-3 p-4",
@@ -142,6 +146,23 @@ function SubagentsContent() {
142
146
  })
143
147
  });
144
148
  }
149
+ function SessionTreeContent() {
150
+ const data = useChatPanelDataContext();
151
+ return /* @__PURE__ */ jsx(Suspense, {
152
+ fallback: /* @__PURE__ */ jsx(PanelFallback, {}),
153
+ children: /* @__PURE__ */ jsx(LazySessionTreePanel, {
154
+ sessionId: data.sessionId,
155
+ snapshot: data.sessionTreeSnapshot,
156
+ loading: data.sessionTreeLoading,
157
+ error: data.sessionTreeError,
158
+ isStreaming: data.isSessionTreeStreaming,
159
+ selectedEntryId: data.selectedSessionTreeEntryId,
160
+ onSelectEntry: data.selectSessionTreeEntry,
161
+ onRefresh: data.refreshSessionTree,
162
+ onRewind: data.rewindSessionTree
163
+ })
164
+ });
165
+ }
145
166
  var RIGHT_PANEL_REGISTRY = {
146
167
  resources: {
147
168
  id: "resources",
@@ -268,6 +289,29 @@ var RIGHT_PANEL_REGISTRY = {
268
289
  loadingSource: void 0,
269
290
  refreshSource: void 0,
270
291
  component: SessionInsightsContent
292
+ },
293
+ "session-tree": {
294
+ id: "session-tree",
295
+ order: 6,
296
+ title: "Session tree",
297
+ ariaLabel: "Session tree",
298
+ commandLabel: "Open Session Tree",
299
+ commandKeywords: [
300
+ "session",
301
+ "tree",
302
+ "branch",
303
+ "rewind",
304
+ "history",
305
+ "panels"
306
+ ],
307
+ icon: GitBranch,
308
+ dataTestid: "pi-session-tree-canvas",
309
+ mobileDataTestid: "pi-session-tree-mobile-panel",
310
+ showInLauncher: true,
311
+ badgeSource: void 0,
312
+ loadingSource: void 0,
313
+ refreshSource: void 0,
314
+ component: SessionTreeContent
271
315
  }
272
316
  };
273
317
  var RIGHT_PANEL_LAUNCHER_DEFINITIONS = Object.values(RIGHT_PANEL_REGISTRY).sort((left, right) => left.order - right.order).filter((definition) => definition.showInLauncher !== false);
@@ -12,7 +12,7 @@ import {
12
12
  normalizeAssistantToolParts,
13
13
  orderedRlmChildren,
14
14
  rlmStatusIcon
15
- } from "./chunk-4OTHKQMG.js";
15
+ } from "./chunk-V5IFFLZQ.js";
16
16
  import {
17
17
  RefreshCw
18
18
  } from "./chunk-OKL5ZRVB.js";
@@ -21,7 +21,7 @@ import {
21
21
  } from "./chunk-UCA4WN66.js";
22
22
  import {
23
23
  SessionToolRenderer
24
- } from "./chunk-ENGEUJIH.js";
24
+ } from "./chunk-FMAYMBRS.js";
25
25
  import {
26
26
  ToolTimeline
27
27
  } from "./chunk-UDD5W4CR.js";
@@ -32,12 +32,12 @@ import {
32
32
  CircleCheck,
33
33
  LoaderCircle
34
34
  } from "./chunk-TNL4YV63.js";
35
- import {
36
- Button
37
- } from "./chunk-HQ5TEXHT.js";
38
35
  import {
39
36
  ChevronDown
40
37
  } from "./chunk-WWJF4RO2.js";
38
+ import {
39
+ Button
40
+ } from "./chunk-HQ5TEXHT.js";
41
41
  import {
42
42
  CircleAlert
43
43
  } from "./chunk-KBWUBWVJ.js";
@@ -45,7 +45,7 @@ import {
45
45
  cn
46
46
  } from "./chunk-CHEC7TWB.js";
47
47
 
48
- // web/app/dist/server/assets/subagent-transcript-GfgSxFhq.js
48
+ // web/app/dist/server/assets/subagent-transcript-QCgJP1XK.js
49
49
  import { useCallback, useEffect, useMemo, useRef, useState } from "react";
50
50
  import { jsx, jsxs } from "react/jsx-runtime";
51
51
  function SubagentList({ children, tree, className }) {
@@ -2,7 +2,7 @@ import {
2
2
  cn
3
3
  } from "./chunk-CHEC7TWB.js";
4
4
 
5
- // web/app/dist/server/assets/src-NUUYwsJS.js
5
+ // web/app/dist/server/assets/src-Cc2hY_FC.js
6
6
  import { jsx } from "react/jsx-runtime";
7
7
  function Card({ className, size = "default", ...props }) {
8
8
  return /* @__PURE__ */ jsx("div", {
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  notify
3
- } from "./chunk-BUXJSBE3.js";
3
+ } from "./chunk-RJNGEU6C.js";
4
4
  import {
5
5
  useHoverCapable
6
- } from "./chunk-NCK2FJAD.js";
6
+ } from "./chunk-XSOUURPF.js";
7
7
  import {
8
8
  LazyMarkdown
9
9
  } from "./chunk-7NZ3FJDA.js";
@@ -47,7 +47,7 @@ import {
47
47
  cn
48
48
  } from "./chunk-CHEC7TWB.js";
49
49
 
50
- // web/app/dist/server/assets/virtualized-turn-list-Coc3IbGL.js
50
+ // web/app/dist/server/assets/virtualized-turn-list-Bxk-Y62M.js
51
51
  import { Fragment, Suspense, cloneElement, createContext, lazy, memo, useCallback, useContext, useEffect, useEffectEvent, useId, useLayoutEffect, useMemo, useRef, useState } from "react";
52
52
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
53
53
  import { createPortal } from "react-dom";
@@ -1544,7 +1544,7 @@ function groupMessages(messages) {
1544
1544
  if (current) turns.push(current);
1545
1545
  return turns;
1546
1546
  }
1547
- var LazyGenerativeTextRenderer = lazy(() => import("./openui-renderer-moJGf0LA-QCU3PI6H.js").then((n) => n.n).then(({ GenerativeTextRenderer }) => ({ default: GenerativeTextRenderer })));
1547
+ var LazyGenerativeTextRenderer = lazy(() => import("./openui-renderer-B4z18Brm-HSMKJ47D.js").then((n) => n.n).then(({ GenerativeTextRenderer }) => ({ default: GenerativeTextRenderer })));
1548
1548
  function PlainTextFallback({ className, content }) {
1549
1549
  return /* @__PURE__ */ jsx("div", {
1550
1550
  className: className ? `${className} whitespace-pre-wrap` : "whitespace-pre-wrap",
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  OpenPanelActionSchema
3
- } from "./chunk-YMPJMHXZ.js";
3
+ } from "./chunk-DP26GVWH.js";
4
4
  import {
5
5
  cva
6
6
  } from "./chunk-TLNZNR7C.js";
@@ -12,7 +12,7 @@ import {
12
12
  cn
13
13
  } from "./chunk-CHEC7TWB.js";
14
14
 
15
- // web/app/dist/server/assets/ui-error-boundary-DZYDdHqH.js
15
+ // web/app/dist/server/assets/ui-error-boundary-CDIAlpN5.js
16
16
  import { Component, createContext, createElement } from "react";
17
17
  import { jsx, jsxs } from "react/jsx-runtime";
18
18
  var OPEN_PANEL_ACTION_PREFIX = "fleet-prime:open-panel:";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  ExternalLink
3
- } from "./chunk-OSMP55KI.js";
3
+ } from "./chunk-H5D5DX3K.js";
4
4
  import {
5
5
  AgentDisclosure
6
6
  } from "./chunk-WU6X3GPJ.js";
@@ -27,7 +27,7 @@ import {
27
27
  cn
28
28
  } from "./chunk-CHEC7TWB.js";
29
29
 
30
- // web/app/dist/server/assets/citations-DWvO3MWr.js
30
+ // web/app/dist/server/assets/citations-tHv2x53K.js
31
31
  import { useCallback, useEffect, useId, useState } from "react";
32
32
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
33
33
  var BookOpenText = createLucideIcon("book-open-text", [
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  InputGroup,
3
3
  InputGroupAddon
4
- } from "./chunk-CW6KZUKT.js";
4
+ } from "./chunk-B2LF64HM.js";
5
5
  import {
6
6
  Search
7
7
  } from "./chunk-JIULUYHT.js";
@@ -20,7 +20,7 @@ import {
20
20
  DialogDescription,
21
21
  DialogHeader,
22
22
  DialogTitle
23
- } from "./chunk-JVOW2NWC.js";
23
+ } from "./chunk-ETCO5KZK.js";
24
24
  import {
25
25
  Check
26
26
  } from "./chunk-4QD4PCVP.js";
@@ -28,7 +28,7 @@ import {
28
28
  cn
29
29
  } from "./chunk-CHEC7TWB.js";
30
30
 
31
- // web/app/dist/server/assets/command-DPkFEeYy.js
31
+ // web/app/dist/server/assets/command-DAfN00no.js
32
32
  import * as t from "react";
33
33
  import { jsx, jsxs } from "react/jsx-runtime";
34
34
  var U = 1;