@qredence/fleet 0.5.0 → 0.5.5

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 (122) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/README.md +8 -1
  3. package/bin/fleet-prime.mjs +6 -0
  4. package/dist/web/client/assets/action-swap-roll-DX5o_33Q.js +1 -0
  5. package/dist/web/client/assets/artifacts-panel-C3yewUBP.js +1 -0
  6. package/dist/web/client/assets/artifacts-utils-N_kUFbz2.js +1 -0
  7. package/dist/web/client/assets/bot-Bs7QWJ2q.js +1 -0
  8. package/dist/web/client/assets/{chat-C64Sv6V-.js → chat-W-yOMyG_.js} +5 -5
  9. package/dist/web/client/assets/chat-command-palette-D0xDK1j4.js +1 -0
  10. package/dist/web/client/assets/command-CQzrtjyj.js +2 -0
  11. package/dist/web/client/assets/ease-vFBiNFNK.js +9 -0
  12. package/dist/web/client/assets/{fleet-pi-tool-renderer-ZKiX6Ob_.js → fleet-pi-tool-renderer-B0Y7ou0U.js} +28 -30
  13. package/dist/web/client/assets/generative-text-renderer-SS9c1kNX.js +6 -0
  14. package/dist/web/client/assets/globals-D_Hy9bT1.css +2 -0
  15. package/dist/web/client/assets/horizontal-resize-C1TpRLNC.js +1 -0
  16. package/dist/web/client/assets/index-C9FloFgj.js +12 -0
  17. package/dist/web/client/assets/{input-Clyn18XG.js → input-CqC82Agz.js} +1 -1
  18. package/dist/web/client/assets/{input-group-MxDAWX3j.js → input-group-H0TG-mkU.js} +1 -1
  19. package/dist/web/client/assets/ipython-tool-BrMePqD-.js +3 -0
  20. package/dist/web/client/assets/markdown-DG7pUdsX.js +2 -0
  21. package/dist/web/client/assets/{markdown-code-pIaEVDUU.js → markdown-code-BgMzpy7O.js} +1 -1
  22. package/dist/web/client/assets/notify-Duj26eeZ.js +1 -0
  23. package/dist/web/client/assets/{openui-renderer-NLUpAS3h.js → openui-renderer-CCfQqUfE.js} +5 -5
  24. package/dist/web/client/assets/openui-utils-DawGoQNp.js +1 -0
  25. package/dist/web/client/assets/prime-agent-artifacts-C-g1VPiW.js +5 -0
  26. package/dist/web/client/assets/{provider-catalog-Gx9qaHBM.js → provider-catalog-BZhZuKSz.js} +1 -1
  27. package/dist/web/client/assets/provider-label-jKm8v18u.js +1 -0
  28. package/dist/web/client/assets/range-65lubOFp.js +2 -0
  29. package/dist/web/client/assets/repl-panel-CCh4ly7J.js +1 -0
  30. package/dist/web/client/assets/resource-helpers-ULlyU8qK.js +2 -0
  31. package/dist/web/client/assets/resources-panel-DSU7VGX2.js +1 -0
  32. package/dist/web/client/assets/routes-DSTyx_J0.js +16 -0
  33. package/dist/web/client/assets/session-insights-panel-CQdT90Op.js +1 -0
  34. package/dist/web/client/assets/settings-dialog-CkfpTKfM.js +1 -0
  35. package/dist/web/client/assets/skeleton-loaders-fStjEeRP.js +1 -0
  36. package/dist/web/client/assets/square-terminal-BYTN_I86.js +1 -0
  37. package/dist/web/client/assets/subagent-chat-panel-D-qw4uWb.js +1 -0
  38. package/dist/web/client/assets/subagent-transcript-C7oRwEEP.js +1 -0
  39. package/dist/web/client/assets/subagents-panel-aSMWZP9p.js +1 -0
  40. package/dist/web/client/assets/{switch-ojzdMno9.js → switch-BFEBpUEU.js} +1 -1
  41. package/dist/web/client/assets/{tool-result-QvhjpNGX.js → tool-result-C2NvnN32.js} +3 -3
  42. package/dist/web/client/assets/ui-preferences-DUEFuJFj.js +1 -0
  43. package/dist/web/client/assets/workspace-panel-CjdXlEvd.js +1 -0
  44. package/dist/web/client/assets/workspace-path-nav-C0AQNZyy.js +1 -0
  45. package/dist/web/server/{_tanstack-start-manifest_v-uZddQetG-MNZGQOSA.js → _tanstack-start-manifest_v-DZc7dwm7-6ZQLGXB7.js} +23 -16
  46. package/dist/web/server/{artifacts-panel-knpQvJ-q-WJLZ76QB.js → artifacts-panel-Bt7YUzm4-NCBMXJ25.js} +39 -72
  47. package/dist/web/server/{chat-command-palette-CPv5GmGJ-22J32S6P.js → chat-command-palette-Co1L3rUY-RQLNME4T.js} +43 -20
  48. package/dist/web/server/{chunk-5277VI3D.js → chunk-2V6B62OF.js} +213 -275
  49. package/dist/web/server/{chunk-W7LNJCRJ.js → chunk-3HUI75QM.js} +75 -67
  50. package/dist/web/server/{chunk-I3FDTJFO.js → chunk-46VQY7SG.js} +6 -87
  51. package/dist/web/server/{chunk-PRT4QYOB.js → chunk-4UBOIY2S.js} +2 -35
  52. package/dist/web/server/{chunk-WTYNN6EV.js → chunk-54II5QXQ.js} +23 -1
  53. package/dist/web/server/chunk-56HSKUBD.js +1805 -0
  54. package/dist/web/server/{chunk-RPROZ2JC.js → chunk-5RQ6QAZX.js} +133 -133
  55. package/dist/web/server/{chunk-APN3LVRT.js → chunk-6D524OCJ.js} +201 -204
  56. package/dist/web/server/chunk-6GMKRR3C.js +161 -0
  57. package/dist/web/server/chunk-74QOI457.js +45 -0
  58. package/dist/web/server/{chunk-UBUXV2TW.js → chunk-AECEK3K7.js} +8 -8
  59. package/dist/web/server/chunk-AQ66E5OW.js +33 -0
  60. package/dist/web/server/{chunk-JD6EWZCU.js → chunk-AWFOBHH4.js} +50 -50
  61. package/dist/web/server/{chunk-MK3P3OBZ.js → chunk-BEMDNODD.js} +5 -5
  62. package/dist/web/server/{chunk-X2TUFLTP.js → chunk-BLVCDQ7E.js} +438 -438
  63. package/dist/web/server/chunk-FZRBAPUM.js +48 -0
  64. package/dist/web/server/chunk-G5BCQQ5N.js +34 -0
  65. package/dist/web/server/chunk-KOIPYBJF.js +3773 -0
  66. package/dist/web/server/{chunk-XYYNYFFD.js → chunk-LSIHVSUT.js} +2 -2
  67. package/dist/web/server/{chunk-KVHPE5XH.js → chunk-MDYA4NXK.js} +22 -8
  68. package/dist/web/server/chunk-NFRJDPB3.js +52 -0
  69. package/dist/web/server/chunk-P66QQWUM.js +67 -0
  70. package/dist/web/server/{chunk-4KFMONRT.js → chunk-PDRD2X5G.js} +9 -9
  71. package/dist/web/server/{chunk-XXNFEXDU.js → chunk-QJBEWT4E.js} +2 -70
  72. package/dist/web/server/{chunk-AQWTGP35.js → chunk-RX62LUDV.js} +8 -8
  73. package/dist/web/server/chunk-SR65ARVS.js +192 -0
  74. package/dist/web/server/{chunk-WK7CQS2N.js → chunk-SZ65K4CO.js} +48 -48
  75. package/dist/web/server/{chunk-C7EKOPZU.js → chunk-TO3YPLNZ.js} +89 -89
  76. package/dist/web/server/{chunk-IFV5M33X.js → chunk-UKINNXJY.js} +12 -26
  77. package/dist/web/server/chunk-VGDP4YDU.js +401 -0
  78. package/dist/web/server/{fleet-pi-tool-renderer-5vYFNeZS-IHKMLT7W.js → chunk-VRLTWOVJ.js} +46 -393
  79. package/dist/web/server/{chunk-KDSISV4P.js → chunk-WN77JNYY.js} +2 -50
  80. package/dist/web/server/{chunk-OADQILSQ.js → chunk-WZNZQNI4.js} +267 -3667
  81. package/dist/web/server/{chunk-KAWYGHDN.js → chunk-XFVL5ITL.js} +2354 -2314
  82. package/dist/web/server/{chunk-ZX3XOSYO.js → chunk-XLCTCC4W.js} +3 -3
  83. package/dist/web/server/{chunk-TTQ75CXC.js → chunk-Y4MHIA7B.js} +97 -40
  84. package/dist/web/server/fleet-pi-tool-renderer-CE45vM6T-2UQN6RJM.js +37 -0
  85. package/dist/web/server/{fork-picker-dialog-BZzfxdQd-C6SPHFAW.js → fork-picker-dialog-DCzuGelH-TN2Q5OXI.js} +5 -5
  86. package/dist/web/server/{markdown-Ct_q4D-z-VFWZRBTY.js → markdown-Boni3lHk-AZGKDNAR.js} +1 -1
  87. package/dist/web/server/{markdown-code-C_ih1bX1-5CIWT3CH.js → markdown-code-BrWukbg3-D2GN4Y77.js} +2 -2
  88. package/dist/web/server/{openui-renderer-BT5jL0Yf-XYLLN5U6.js → openui-renderer-c36_GYes-HX46N4M5.js} +14 -13
  89. package/dist/web/server/repl-panel-D9E8nkQy-L45ZNG2V.js +118 -0
  90. package/dist/web/server/{resources-panel-DNCVHTIg-PJYMXVGE.js → resources-panel-CwKh4U9f-D3VDEMDW.js} +6 -6
  91. package/dist/web/server/{router-DDxOMz3K-HRBXILHM.js → router-_ZpegqiQ-QIE44PIB.js} +1811 -1334
  92. package/dist/web/server/{routes-BX4Tv-6R-FHIZYUWW.js → routes-Ct81-8Tq-LHRMOS7R.js} +3958 -4534
  93. package/dist/web/server/server.js +3 -3
  94. package/dist/web/server/{session-insights-panel-gYkkAE8H-W4O74Z7H.js → session-insights-panel-BHZyKDTo-LRMAMA3O.js} +5 -3
  95. package/dist/web/server/{settings-dialog-BTBFLQ1P-ZENQ4KWK.js → settings-dialog-B4uUS6f--AZ4I4ZOT.js} +179 -193
  96. package/dist/web/server/{start-CLAD7RcD-56S4BWMM.js → start-BYVnok_H-IA6TWGA3.js} +1 -1
  97. package/dist/web/server/subagent-chat-panel-C97S3WID-DLOAD5TG.js +63 -0
  98. package/dist/web/server/subagents-panel-iHpvMIZy-LI6XK66M.js +181 -0
  99. package/dist/web/server/{chunk-5SZXUN3Y.js → workspace-panel-CHPoiXEo-YB4WS3MK.js} +29 -16
  100. package/package.json +15 -7
  101. package/dist/web/client/assets/artifacts-panel-8TyrNBM_.js +0 -1
  102. package/dist/web/client/assets/chat-command-palette-HpsmKfLO.js +0 -1
  103. package/dist/web/client/assets/collapsible-WCSnxhr2.js +0 -1
  104. package/dist/web/client/assets/command-DgfiCKcY.js +0 -2
  105. package/dist/web/client/assets/globals-BmxtUHFx.css +0 -2
  106. package/dist/web/client/assets/horizontal-resize-B76jjn5v.js +0 -1
  107. package/dist/web/client/assets/index-0pBr_bKy.js +0 -12
  108. package/dist/web/client/assets/markdown-BXWmNJo7.js +0 -2
  109. package/dist/web/client/assets/prime-agent-artifacts-k9JiTDZM.js +0 -5
  110. package/dist/web/client/assets/provider-brand-icon-VCebsuTD.js +0 -1
  111. package/dist/web/client/assets/range-KAaLzImH.js +0 -2
  112. package/dist/web/client/assets/resources-panel-BWuKeyrb.js +0 -1
  113. package/dist/web/client/assets/routes-BPRw0UzV.js +0 -20
  114. package/dist/web/client/assets/session-insights-panel-CPymkzZT.js +0 -1
  115. package/dist/web/client/assets/settings-dialog-6p8mjg8t.js +0 -1
  116. package/dist/web/client/assets/shared-DAI9OAw0.js +0 -2
  117. package/dist/web/client/assets/skeleton-loaders-qxIkJKCA.js +0 -1
  118. package/dist/web/client/assets/workspace-panel-C67-fqw4.js +0 -1
  119. package/dist/web/client/assets/workspace-path-nav-BrQHo6es.js +0 -9
  120. package/dist/web/server/chunk-KJ4UUAEU.js +0 -83
  121. package/dist/web/server/chunk-NGI44XRR.js +0 -334
  122. package/dist/web/server/workspace-panel-BNAXF57q-EQCBPEG4.js +0 -28
@@ -1,3 +1,12 @@
1
+ import {
2
+ AnimatePresence,
3
+ EASE_OUT,
4
+ EASE_OUT_CSS,
5
+ SPRING_SWAP,
6
+ m,
7
+ motion,
8
+ useReducedMotion
9
+ } from "./chunk-QJBEWT4E.js";
1
10
  import {
2
11
  useControlled
3
12
  } from "./chunk-NLIUTTKL.js";
@@ -5,7 +14,7 @@ import {
5
14
  useBaseUiId,
6
15
  useTransitionStatus,
7
16
  useValueAsRef
8
- } from "./chunk-XYYNYFFD.js";
17
+ } from "./chunk-LSIHVSUT.js";
9
18
  import {
10
19
  AnimationFrame,
11
20
  TransitionStatusDataAttributes,
@@ -24,16 +33,7 @@ import {
24
33
  useOpenChangeComplete,
25
34
  useRenderElement,
26
35
  useStableCallback
27
- } from "./chunk-X2TUFLTP.js";
28
- import {
29
- AnimatePresence,
30
- EASE_OUT,
31
- EASE_OUT_CSS,
32
- SPRING_SWAP,
33
- m,
34
- motion,
35
- useReducedMotion
36
- } from "./chunk-XXNFEXDU.js";
36
+ } from "./chunk-BLVCDQ7E.js";
37
37
  import {
38
38
  createLucideIcon
39
39
  } from "./chunk-E26EAQIM.js";
@@ -41,10 +41,26 @@ import {
41
41
  cn
42
42
  } from "./chunk-DJMHPJBP.js";
43
43
 
44
- // web/app/dist/server/assets/collapsible-2yfyYLEf.js
44
+ // web/app/dist/server/assets/action-swap-roll-M0BD_qdn.js
45
45
  import * as React$1 from "react";
46
46
  import { useLayoutEffect, useRef as useRef2, useState as useState2 } from "react";
47
47
  import { jsx, jsxs } from "react/jsx-runtime";
48
+ var CircleX = createLucideIcon("circle-x", [
49
+ ["circle", {
50
+ cx: "12",
51
+ cy: "12",
52
+ r: "10",
53
+ key: "1mglay"
54
+ }],
55
+ ["path", {
56
+ d: "m15 9-6 6",
57
+ key: "1uzhvr"
58
+ }],
59
+ ["path", {
60
+ d: "m9 9 6 6",
61
+ key: "z0biqf"
62
+ }]
63
+ ]);
48
64
  var Copy = createLucideIcon("copy", [["rect", {
49
65
  width: "14",
50
66
  height: "14",
@@ -75,198 +91,10 @@ var FileCodeCorner = createLucideIcon("file-code-corner", [
75
91
  key: "lsp7cz"
76
92
  }]
77
93
  ]);
78
- var SquareTerminal = createLucideIcon("square-terminal", [
79
- ["path", {
80
- d: "m7 11 2-2-2-2",
81
- key: "1lz0vl"
82
- }],
83
- ["path", {
84
- d: "M11 13h4",
85
- key: "1p7l4v"
86
- }],
87
- ["rect", {
88
- width: "18",
89
- height: "18",
90
- x: "3",
91
- y: "3",
92
- rx: "2",
93
- ry: "2",
94
- key: "1m3agn"
95
- }]
96
- ]);
97
94
  var Wrench = createLucideIcon("wrench", [["path", {
98
95
  d: "M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z",
99
96
  key: "1ngwbx"
100
97
  }]]);
101
- function AgentDisclosure({ open, openHeight = "auto", className, style, transition, ...props }) {
102
- const reduce = useReducedMotion() ?? false;
103
- return /* @__PURE__ */ jsx(motion.div, {
104
- ...props,
105
- "aria-hidden": !open,
106
- inert: !open,
107
- initial: false,
108
- animate: reduce ? { opacity: open ? 1 : 0 } : {
109
- opacity: open ? 1 : 0,
110
- clipPath: open ? "inset(0 0 0% 0)" : "inset(0 0 100% 0)",
111
- y: open ? 0 : -4
112
- },
113
- transition: transition ?? {
114
- duration: reduce ? 0 : open ? 0.22 : 0.14,
115
- ease: EASE_OUT
116
- },
117
- className: cn("overflow-hidden", className),
118
- style: {
119
- ...style,
120
- height: open ? openHeight : 0,
121
- pointerEvents: open ? void 0 : "none",
122
- transformOrigin: "top"
123
- }
124
- });
125
- }
126
- var BLUR_TRANSITION = {
127
- duration: 0.2,
128
- ease: "easeInOut"
129
- };
130
- var ROLL_TRANSITION = SPRING_SWAP;
131
- var ROLL_EXIT_TRANSITION = {
132
- duration: 0.14,
133
- ease: EASE_OUT
134
- };
135
- var SWAP_BLUR = "blur(8px)";
136
- var ROLL_BLUR = "blur(3px)";
137
- var CASCADE_STAGGER = 0.025;
138
- var CASCADE_LETTER_VARIANTS = {
139
- initial: {
140
- opacity: 0,
141
- y: "105%",
142
- filter: ROLL_BLUR
143
- },
144
- animate: (delay = 0) => ({
145
- opacity: 1,
146
- y: "0%",
147
- filter: "blur(0px)",
148
- transition: {
149
- ...SPRING_SWAP,
150
- delay
151
- }
152
- }),
153
- exit: (delay = 0) => ({
154
- opacity: 0,
155
- y: "-105%",
156
- filter: ROLL_BLUR,
157
- transition: {
158
- duration: 0.16,
159
- ease: EASE_OUT,
160
- delay: delay * 0.5
161
- }
162
- })
163
- };
164
- var TEXT_VARIANTS = {
165
- blur: {
166
- initial: {
167
- opacity: 0,
168
- scale: 0.94,
169
- filter: SWAP_BLUR
170
- },
171
- animate: {
172
- opacity: 1,
173
- scale: 1,
174
- filter: "blur(0px)",
175
- transition: BLUR_TRANSITION
176
- },
177
- exit: {
178
- opacity: 0,
179
- scale: 0.94,
180
- filter: SWAP_BLUR,
181
- transition: BLUR_TRANSITION
182
- }
183
- },
184
- roll: {
185
- initial: {
186
- opacity: 0,
187
- y: "90%",
188
- filter: ROLL_BLUR
189
- },
190
- animate: {
191
- opacity: 1,
192
- y: "0%",
193
- filter: "blur(0px)",
194
- transition: ROLL_TRANSITION
195
- },
196
- exit: {
197
- opacity: 0,
198
- y: "-90%",
199
- filter: ROLL_BLUR,
200
- transition: ROLL_EXIT_TRANSITION
201
- }
202
- }
203
- };
204
- function ActionSwapText({ value, children, animation = "blur", className }) {
205
- const reduce = useReducedMotion();
206
- const measureRef = useRef2(null);
207
- const [width, setWidth] = useState2();
208
- useLayoutEffect(() => {
209
- const nextWidth = measureRef.current?.offsetWidth;
210
- if (!nextWidth) return;
211
- setWidth((currentWidth) => currentWidth === nextWidth ? currentWidth : nextWidth);
212
- });
213
- const label = typeof children === "string" ? children : null;
214
- const cascade = animation === "cascade" && label !== null && !reduce;
215
- const coreAnimation = animation === "cascade" ? "roll" : animation;
216
- return /* @__PURE__ */ jsxs("span", {
217
- className: cn("relative inline-block overflow-hidden whitespace-nowrap align-bottom", className),
218
- style: {
219
- width,
220
- transition: reduce ? void 0 : `width 220ms ${EASE_OUT_CSS}`
221
- },
222
- children: [
223
- /* @__PURE__ */ jsx("span", {
224
- ref: measureRef,
225
- "aria-hidden": true,
226
- className: "invisible inline-block whitespace-nowrap",
227
- children
228
- }),
229
- cascade ? /* @__PURE__ */ jsx("span", {
230
- className: "sr-only",
231
- children: label
232
- }) : null,
233
- /* @__PURE__ */ jsx(AnimatePresence, {
234
- initial: false,
235
- children: cascade ? /* @__PURE__ */ jsx(m.span, {
236
- "aria-hidden": true,
237
- initial: "initial",
238
- animate: "animate",
239
- exit: "exit",
240
- className: "absolute left-0 top-0 inline-block whitespace-pre",
241
- children: label.split("").map((char, i) => /* @__PURE__ */ jsx(m.span, {
242
- custom: i * CASCADE_STAGGER,
243
- variants: CASCADE_LETTER_VARIANTS,
244
- className: "inline-block whitespace-pre",
245
- children: char
246
- }, i))
247
- }, `cascade-${value}`) : /* @__PURE__ */ jsx(m.span, {
248
- variants: TEXT_VARIANTS[coreAnimation],
249
- initial: reduce ? false : "initial",
250
- animate: reduce ? {
251
- opacity: 1,
252
- filter: "blur(0px)",
253
- scale: 1,
254
- y: 0
255
- } : "animate",
256
- exit: reduce ? void 0 : "exit",
257
- className: "absolute left-0 top-0 inline-block",
258
- children
259
- }, `${animation}-${value}`)
260
- })
261
- ]
262
- });
263
- }
264
- function ActionSwapRollText(props) {
265
- return /* @__PURE__ */ jsx(ActionSwapText, {
266
- ...props,
267
- animation: "roll"
268
- });
269
- }
270
98
  function useCollapsibleRoot(parameters) {
271
99
  const { open: openParam, defaultOpen, onOpenChange, disabled } = parameters;
272
100
  const [open, setOpen] = useControlled({
@@ -724,17 +552,186 @@ function CollapsibleContent({ ...props }) {
724
552
  ...props
725
553
  });
726
554
  }
555
+ function AgentDisclosure({ open, openHeight = "auto", className, style, transition, ...props }) {
556
+ const reduce = useReducedMotion() ?? false;
557
+ return /* @__PURE__ */ jsx(motion.div, {
558
+ ...props,
559
+ "aria-hidden": !open,
560
+ inert: !open,
561
+ initial: false,
562
+ animate: reduce ? { opacity: open ? 1 : 0 } : {
563
+ opacity: open ? 1 : 0,
564
+ clipPath: open ? "inset(0 0 0% 0)" : "inset(0 0 100% 0)",
565
+ y: open ? 0 : -4
566
+ },
567
+ transition: transition ?? {
568
+ duration: reduce ? 0 : open ? 0.22 : 0.14,
569
+ ease: EASE_OUT
570
+ },
571
+ className: cn("overflow-hidden", className),
572
+ style: {
573
+ ...style,
574
+ height: open ? openHeight : 0,
575
+ pointerEvents: open ? void 0 : "none",
576
+ transformOrigin: "top"
577
+ }
578
+ });
579
+ }
580
+ var BLUR_TRANSITION = {
581
+ duration: 0.2,
582
+ ease: "easeInOut"
583
+ };
584
+ var ROLL_TRANSITION = SPRING_SWAP;
585
+ var ROLL_EXIT_TRANSITION = {
586
+ duration: 0.14,
587
+ ease: EASE_OUT
588
+ };
589
+ var SWAP_BLUR = "blur(8px)";
590
+ var ROLL_BLUR = "blur(3px)";
591
+ var CASCADE_STAGGER = 0.025;
592
+ var CASCADE_LETTER_VARIANTS = {
593
+ initial: {
594
+ opacity: 0,
595
+ y: "105%",
596
+ filter: ROLL_BLUR
597
+ },
598
+ animate: (delay = 0) => ({
599
+ opacity: 1,
600
+ y: "0%",
601
+ filter: "blur(0px)",
602
+ transition: {
603
+ ...SPRING_SWAP,
604
+ delay
605
+ }
606
+ }),
607
+ exit: (delay = 0) => ({
608
+ opacity: 0,
609
+ y: "-105%",
610
+ filter: ROLL_BLUR,
611
+ transition: {
612
+ duration: 0.16,
613
+ ease: EASE_OUT,
614
+ delay: delay * 0.5
615
+ }
616
+ })
617
+ };
618
+ var TEXT_VARIANTS = {
619
+ blur: {
620
+ initial: {
621
+ opacity: 0,
622
+ scale: 0.94,
623
+ filter: SWAP_BLUR
624
+ },
625
+ animate: {
626
+ opacity: 1,
627
+ scale: 1,
628
+ filter: "blur(0px)",
629
+ transition: BLUR_TRANSITION
630
+ },
631
+ exit: {
632
+ opacity: 0,
633
+ scale: 0.94,
634
+ filter: SWAP_BLUR,
635
+ transition: BLUR_TRANSITION
636
+ }
637
+ },
638
+ roll: {
639
+ initial: {
640
+ opacity: 0,
641
+ y: "90%",
642
+ filter: ROLL_BLUR
643
+ },
644
+ animate: {
645
+ opacity: 1,
646
+ y: "0%",
647
+ filter: "blur(0px)",
648
+ transition: ROLL_TRANSITION
649
+ },
650
+ exit: {
651
+ opacity: 0,
652
+ y: "-90%",
653
+ filter: ROLL_BLUR,
654
+ transition: ROLL_EXIT_TRANSITION
655
+ }
656
+ }
657
+ };
658
+ function ActionSwapText({ value, children, animation = "blur", className }) {
659
+ const reduce = useReducedMotion();
660
+ const measureRef = useRef2(null);
661
+ const [width, setWidth] = useState2();
662
+ useLayoutEffect(() => {
663
+ const nextWidth = measureRef.current?.offsetWidth;
664
+ if (!nextWidth) return;
665
+ setWidth((currentWidth) => currentWidth === nextWidth ? currentWidth : nextWidth);
666
+ });
667
+ const label = typeof children === "string" ? children : null;
668
+ const cascade = animation === "cascade" && label !== null && !reduce;
669
+ const coreAnimation = animation === "cascade" ? "roll" : animation;
670
+ return /* @__PURE__ */ jsxs("span", {
671
+ className: cn("relative inline-block overflow-hidden whitespace-nowrap align-bottom", className),
672
+ style: {
673
+ width,
674
+ transition: reduce ? void 0 : `width 220ms ${EASE_OUT_CSS}`
675
+ },
676
+ children: [
677
+ /* @__PURE__ */ jsx("span", {
678
+ ref: measureRef,
679
+ "aria-hidden": true,
680
+ className: "invisible inline-block whitespace-nowrap",
681
+ children
682
+ }),
683
+ cascade ? /* @__PURE__ */ jsx("span", {
684
+ className: "sr-only",
685
+ children: label
686
+ }) : null,
687
+ /* @__PURE__ */ jsx(AnimatePresence, {
688
+ initial: false,
689
+ children: cascade ? /* @__PURE__ */ jsx(m.span, {
690
+ "aria-hidden": true,
691
+ initial: "initial",
692
+ animate: "animate",
693
+ exit: "exit",
694
+ className: "absolute left-0 top-0 inline-block whitespace-pre",
695
+ children: label.split("").map((char, i) => /* @__PURE__ */ jsx(m.span, {
696
+ custom: i * CASCADE_STAGGER,
697
+ variants: CASCADE_LETTER_VARIANTS,
698
+ className: "inline-block whitespace-pre",
699
+ children: char
700
+ }, i))
701
+ }, `cascade-${value}`) : /* @__PURE__ */ jsx(m.span, {
702
+ variants: TEXT_VARIANTS[coreAnimation],
703
+ initial: reduce ? false : "initial",
704
+ animate: reduce ? {
705
+ opacity: 1,
706
+ filter: "blur(0px)",
707
+ scale: 1,
708
+ y: 0
709
+ } : "animate",
710
+ exit: reduce ? void 0 : "exit",
711
+ className: "absolute left-0 top-0 inline-block",
712
+ children
713
+ }, `${animation}-${value}`)
714
+ })
715
+ ]
716
+ });
717
+ }
718
+ function ActionSwapRollText(props) {
719
+ return /* @__PURE__ */ jsx(ActionSwapText, {
720
+ ...props,
721
+ animation: "roll"
722
+ });
723
+ }
727
724
 
728
725
  export {
726
+ CircleX,
729
727
  Copy,
730
728
  FileCodeCorner,
731
- SquareTerminal,
732
729
  Wrench,
733
- AgentDisclosure,
734
- ActionSwapRollText,
735
730
  Collapsible,
736
731
  CollapsibleTrigger2 as CollapsibleTrigger,
737
- CollapsibleContent
732
+ CollapsibleContent,
733
+ AgentDisclosure,
734
+ ActionSwapRollText
738
735
  };
739
736
  /**
740
737
  * @license lucide-react v1.33.0 - ISC
@@ -0,0 +1,161 @@
1
+ import {
2
+ getResourceChipTitle,
3
+ resourceKey
4
+ } from "./chunk-46VQY7SG.js";
5
+ import {
6
+ Skeleton
7
+ } from "./chunk-EAJTWMK5.js";
8
+
9
+ // web/app/dist/server/assets/skeleton-loaders-BLPxdCxA.js
10
+ import { jsx, jsxs } from "react/jsx-runtime";
11
+ function ResourceNotice({ description, icon: Icon, title }) {
12
+ return /* @__PURE__ */ jsxs("div", {
13
+ className: "my-1.5 rounded-sm bg-foreground/5 px-2.5 py-2",
14
+ children: [/* @__PURE__ */ jsxs("div", {
15
+ className: "flex items-center gap-2 text-label font-medium text-foreground/65",
16
+ children: [/* @__PURE__ */ jsx(Icon, { className: "size-3.5" }), /* @__PURE__ */ jsx("span", { children: title })]
17
+ }), /* @__PURE__ */ jsx("p", {
18
+ className: "mt-1 text-[11px] leading-4 text-foreground/40",
19
+ children: description
20
+ })]
21
+ });
22
+ }
23
+ function ResourceChipSection({ id, icon: Icon, items, label }) {
24
+ return /* @__PURE__ */ jsxs("section", {
25
+ id: `resource-section-${id}`,
26
+ className: "flex min-w-0 flex-col gap-2 py-2.5",
27
+ "aria-label": `${label} resources`,
28
+ children: [/* @__PURE__ */ jsxs("div", {
29
+ className: "flex min-w-0 items-center text-body leading-5 text-foreground/45",
30
+ children: [/* @__PURE__ */ jsx("span", {
31
+ className: "truncate underline decoration-foreground/25 underline-offset-2",
32
+ children: label
33
+ }), /* @__PURE__ */ jsx("span", {
34
+ className: "ml-1 shrink-0 text-[11px] leading-4 text-foreground/30 tabular-nums no-underline",
35
+ children: items.length
36
+ })]
37
+ }), /* @__PURE__ */ jsx("ul", {
38
+ className: "flex min-w-0 flex-col items-stretch gap-1.5",
39
+ "data-testid": `resource-chip-section-${label.toLowerCase()}`,
40
+ children: items.length === 0 ? /* @__PURE__ */ jsx("li", {
41
+ className: "inline-flex h-7.5 items-center rounded-lg border border-border/60 bg-background px-3 text-body leading-5 text-foreground/35 shadow-[0_1px_4px_-1px_rgba(0,0,0,0.06)]",
42
+ children: "Empty"
43
+ }) : items.map((item) => /* @__PURE__ */ jsx(ResourceChip, {
44
+ icon: Icon,
45
+ item,
46
+ stacked: true
47
+ }, resourceKey(item)))
48
+ })]
49
+ });
50
+ }
51
+ function ResourceChip({ icon, item, stacked = false }) {
52
+ const title = getResourceChipTitle(item);
53
+ return /* @__PURE__ */ jsxs("li", {
54
+ className: `max-w-full rounded-lg border border-border/70 bg-background px-2.5 text-body leading-5 text-foreground/80 shadow-[0_1px_4px_-1px_rgba(0,0,0,0.06)] ${stacked ? "flex min-h-9 w-full min-w-0 items-center gap-2 py-1.5" : "inline-flex h-7.5 items-center gap-1"}`,
55
+ "aria-label": title,
56
+ "data-testid": "resource-chip",
57
+ title,
58
+ children: [
59
+ /* @__PURE__ */ jsxs("div", {
60
+ className: "flex min-w-0 flex-1 items-center gap-2",
61
+ children: [/* @__PURE__ */ jsx(ResourceChipIcon, { icon }), /* @__PURE__ */ jsx("span", {
62
+ className: "min-w-0 truncate",
63
+ children: item.name
64
+ })]
65
+ }),
66
+ item.source && /* @__PURE__ */ jsx("span", {
67
+ className: "max-w-20 shrink-0 truncate rounded-[5px] bg-foreground/5 px-1.5 py-0.5 text-[10px] leading-3 text-foreground/35",
68
+ children: item.source
69
+ }),
70
+ item.activationStatus && /* @__PURE__ */ jsx("span", {
71
+ className: "max-w-24 shrink-0 truncate rounded-[5px] bg-foreground/5 px-1.5 py-0.5 text-[10px] leading-3 text-foreground/35",
72
+ children: item.activationStatus
73
+ })
74
+ ]
75
+ });
76
+ }
77
+ function ResourceChipIcon({ icon: Icon }) {
78
+ return /* @__PURE__ */ jsx("span", {
79
+ className: "inline-flex size-5 shrink-0 items-center justify-center rounded-full bg-foreground/4 text-foreground/45",
80
+ children: /* @__PURE__ */ jsx(Icon, { className: "size-3.5" })
81
+ });
82
+ }
83
+ function ResourcesSkeleton() {
84
+ return /* @__PURE__ */ jsxs("div", {
85
+ className: "flex flex-col gap-4 p-1",
86
+ children: [
87
+ /* @__PURE__ */ jsxs("div", {
88
+ className: "flex flex-col gap-2",
89
+ children: [/* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-24" }), /* @__PURE__ */ jsxs("div", {
90
+ className: "flex flex-wrap gap-1.5",
91
+ children: [
92
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-7 w-20 rounded-full" }),
93
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-7 w-24 rounded-full" }),
94
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-7 w-16 rounded-full" }),
95
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-7 w-28 rounded-full" })
96
+ ]
97
+ })]
98
+ }),
99
+ /* @__PURE__ */ jsxs("div", {
100
+ className: "flex flex-col gap-2",
101
+ children: [/* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-28" }), /* @__PURE__ */ jsxs("div", {
102
+ className: "flex flex-wrap gap-1.5",
103
+ children: [
104
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-7 w-22 rounded-full" }),
105
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-7 w-18 rounded-full" }),
106
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-7 w-26 rounded-full" })
107
+ ]
108
+ })]
109
+ }),
110
+ /* @__PURE__ */ jsxs("div", {
111
+ className: "flex flex-col gap-2",
112
+ children: [/* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-20" }), /* @__PURE__ */ jsxs("div", {
113
+ className: "flex flex-wrap gap-1.5",
114
+ children: [
115
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-7 w-24 rounded-full" }),
116
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-7 w-20 rounded-full" }),
117
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-7 w-30 rounded-full" })
118
+ ]
119
+ })]
120
+ })
121
+ ]
122
+ });
123
+ }
124
+ function WorkspaceSkeleton() {
125
+ return /* @__PURE__ */ jsxs("div", {
126
+ className: "flex flex-col gap-2 p-1",
127
+ children: [
128
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-7 w-full rounded-sm" }),
129
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-6 w-[90%]" }),
130
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-6 w-[85%]" }),
131
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-6 w-[70%]" }),
132
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-6 w-[80%]" }),
133
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-6 w-[60%]" }),
134
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-6 w-[75%]" }),
135
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-6 w-[55%]" })
136
+ ]
137
+ });
138
+ }
139
+ function WorkspacePreviewSkeleton() {
140
+ return /* @__PURE__ */ jsxs("div", {
141
+ className: "flex flex-col gap-3 p-2",
142
+ children: [
143
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-3/4" }),
144
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-full" }),
145
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-[95%]" }),
146
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-[80%]" }),
147
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-full" }),
148
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-[70%]" }),
149
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-[90%]" }),
150
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-[60%]" })
151
+ ]
152
+ });
153
+ }
154
+
155
+ export {
156
+ ResourceNotice,
157
+ ResourceChipSection,
158
+ ResourcesSkeleton,
159
+ WorkspaceSkeleton,
160
+ WorkspacePreviewSkeleton
161
+ };
@@ -0,0 +1,45 @@
1
+ import {
2
+ createLucideIcon
3
+ } from "./chunk-E26EAQIM.js";
4
+
5
+ // web/app/dist/server/assets/bot-DuGeyHj5.js
6
+ var Bot = createLucideIcon("bot", [
7
+ ["path", {
8
+ d: "M12 8V4H8",
9
+ key: "hb8ula"
10
+ }],
11
+ ["rect", {
12
+ width: "16",
13
+ height: "12",
14
+ x: "4",
15
+ y: "8",
16
+ rx: "2",
17
+ key: "enze0r"
18
+ }],
19
+ ["path", {
20
+ d: "M2 14h2",
21
+ key: "vft8re"
22
+ }],
23
+ ["path", {
24
+ d: "M20 14h2",
25
+ key: "4cs60a"
26
+ }],
27
+ ["path", {
28
+ d: "M15 13v2",
29
+ key: "1xurst"
30
+ }],
31
+ ["path", {
32
+ d: "M9 13v2",
33
+ key: "rq6x2g"
34
+ }]
35
+ ]);
36
+
37
+ export {
38
+ Bot
39
+ };
40
+ /**
41
+ * @license lucide-react v1.33.0 - ISC
42
+ *
43
+ * This source code is licensed under the ISC license.
44
+ * See the LICENSE file in the root directory of this source tree.
45
+ */
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  useValueChanged
3
- } from "./chunk-C7EKOPZU.js";
3
+ } from "./chunk-TO3YPLNZ.js";
4
4
  import {
5
5
  fieldValidityMapping,
6
6
  useFieldRootContext,
@@ -8,18 +8,18 @@ import {
8
8
  useLabelableContext,
9
9
  useLabelableId,
10
10
  useRegisterFieldControl
11
- } from "./chunk-JD6EWZCU.js";
11
+ } from "./chunk-AWFOBHH4.js";
12
12
  import {
13
13
  useControlled
14
14
  } from "./chunk-NLIUTTKL.js";
15
- import {
16
- useBaseUiId
17
- } from "./chunk-XYYNYFFD.js";
18
15
  import {
19
16
  cva,
20
17
  visuallyHidden,
21
18
  visuallyHiddenInput
22
- } from "./chunk-RPROZ2JC.js";
19
+ } from "./chunk-5RQ6QAZX.js";
20
+ import {
21
+ useBaseUiId
22
+ } from "./chunk-LSIHVSUT.js";
23
23
  import {
24
24
  EMPTY_OBJECT,
25
25
  createChangeEventDetails,
@@ -30,12 +30,12 @@ import {
30
30
  useIsoLayoutEffect,
31
31
  useMergedRefs,
32
32
  useRenderElement
33
- } from "./chunk-X2TUFLTP.js";
33
+ } from "./chunk-BLVCDQ7E.js";
34
34
  import {
35
35
  cn
36
36
  } from "./chunk-DJMHPJBP.js";
37
37
 
38
- // web/app/dist/server/assets/switch-D2L-y5YJ.js
38
+ // web/app/dist/server/assets/switch-DDzirFxz.js
39
39
  import * as React$1 from "react";
40
40
  import "react";
41
41
  import { jsx, jsxs } from "react/jsx-runtime";