@qredence/fleet 0.5.5 → 0.5.7

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 (183) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/web/client/assets/action-swap-roll-BB8DFMuf.js +1 -0
  3. package/dist/web/client/assets/agent-activity-CDcDNVC6.js +1 -0
  4. package/dist/web/client/assets/agent-disclosure-B8SnhQXL.js +1 -0
  5. package/dist/web/client/assets/analytics-stub-B8MIkiDB.js +1 -0
  6. package/dist/web/client/assets/artifacts-panel-CmHYXfoo.js +1 -0
  7. package/dist/web/client/assets/button-BV9NafmI.js +1 -0
  8. package/dist/web/client/assets/chat-command-palette-DiG-i3uJ.js +1 -0
  9. package/dist/web/client/assets/check-JjHKAZas.js +1 -0
  10. package/dist/web/client/assets/chevron-up-CnSvySGH.js +1 -0
  11. package/dist/web/client/assets/circle-alert-CONlFReH.js +1 -0
  12. package/dist/web/client/assets/circle-x-CkKCB__4.js +1 -0
  13. package/dist/web/client/assets/citations-CpTFUvx7.js +2 -0
  14. package/dist/web/client/assets/collapsible-BoXtZZWN.js +1 -0
  15. package/dist/web/client/assets/command-Cx-UYeQ9.js +1 -0
  16. package/dist/web/client/assets/createBaseUIEventDetails-DV0dQrBX.js +1 -0
  17. package/dist/web/client/assets/dialog-Dh7WpGIu.js +1 -0
  18. package/dist/web/client/assets/dist-BPaFisIZ.js +41 -0
  19. package/dist/web/client/assets/earth-DGZXAN5r.js +1 -0
  20. package/dist/web/client/assets/ease-u56MhKYS.js +1 -0
  21. package/dist/web/client/assets/file-text-T-NcAlZs.js +1 -0
  22. package/dist/web/client/assets/fleet-message-queue-B6zAK-hX.js +1 -0
  23. package/dist/web/client/assets/{fleet-pi-tool-renderer-B0Y7ou0U.js → fleet-pi-tool-renderer-Btq9mDUe.js} +28 -28
  24. package/dist/web/client/assets/fleet-reasoning-panel-MtbSdoCv.js +1 -0
  25. package/dist/web/client/assets/fleet-subagent-list-iszvrvy_.js +1 -0
  26. package/dist/web/client/assets/fleet-tool-timeline-COzPrwr8.js +1 -0
  27. package/dist/web/client/assets/{fork-picker-dialog-C2cVJUbf.js → fork-picker-dialog-CAhWx0G5.js} +1 -1
  28. package/dist/web/client/assets/gauge-DNpstbBn.js +1 -0
  29. package/dist/web/client/assets/generative-text-renderer-C1JrmYfx.js +6 -0
  30. package/dist/web/client/assets/globals-Bfr0jrPq.css +2 -0
  31. package/dist/web/client/assets/horizontal-resize-Bl3AyBJg.js +1 -0
  32. package/dist/web/client/assets/image-BbPmlw-n.js +1 -0
  33. package/dist/web/client/assets/index-QgUwd4m8.js +12 -0
  34. package/dist/web/client/assets/input-Bol3TP4v.js +1 -0
  35. package/dist/web/client/assets/input-group-D5gi9zBK.js +1 -0
  36. package/dist/web/client/assets/{markdown-DG7pUdsX.js → markdown-RD_ydkyD.js} +2 -2
  37. package/dist/web/client/assets/{markdown-code-BgMzpy7O.js → markdown-code-ETqXqY8E.js} +1 -1
  38. package/dist/web/client/assets/message-square-hbDao-A1.js +1 -0
  39. package/dist/web/client/assets/model-selector-list-CJY9pyt2.js +1 -0
  40. package/dist/web/client/assets/notify-DKTqXChG.js +1 -0
  41. package/dist/web/client/assets/{openui-renderer-CCfQqUfE.js → openui-renderer-BZMghkzQ.js} +7 -7
  42. package/dist/web/client/assets/prompt-suggestions-CXM6knMK.js +1 -0
  43. package/dist/web/client/assets/provider-catalog-CHKFGwHr.js +1 -0
  44. package/dist/web/client/assets/provider-label-KkqVX1CI.js +1 -0
  45. package/dist/web/client/assets/range-BWOHiLNe.js +1 -0
  46. package/dist/web/client/assets/refresh-cw-IThTJ3j-.js +1 -0
  47. package/dist/web/client/assets/{resource-helpers-ULlyU8qK.js → resource-helpers-Q2T0YCMO.js} +1 -1
  48. package/dist/web/client/assets/resources-panel-Bo8dfUdm.js +1 -0
  49. package/dist/web/client/assets/right-panel-context-B2VAZ2p4.js +1 -0
  50. package/dist/web/client/assets/right-panel-registry-C5fQcBKw.js +2 -0
  51. package/dist/web/client/assets/routes-C1hRkRkv.js +16 -0
  52. package/dist/web/client/assets/safe-external-url-D3PJJIcM.js +1 -0
  53. package/dist/web/client/assets/settings-dialog-CvvM6T0m.js +1 -0
  54. package/dist/web/client/assets/{sparkles-C5H3Jtgf.js → shield-check-CkA2viVW.js} +1 -1
  55. package/dist/web/client/assets/{skeleton-loaders-fStjEeRP.js → skeleton-loaders-DjGv9LLA.js} +1 -1
  56. package/dist/web/client/assets/sparkles-DuclzqlE.js +1 -0
  57. package/dist/web/client/assets/{subagent-chat-panel-D-qw4uWb.js → subagent-chat-panel-tGCg6gcn.js} +1 -1
  58. package/dist/web/client/assets/subagent-transcript-NO0PR8RU.js +1 -0
  59. package/dist/web/client/assets/subagent-utils-CQbaJ1g-.js +1 -0
  60. package/dist/web/client/assets/subagents-panel-BkFLsQQY.js +1 -0
  61. package/dist/web/client/assets/surfaces-cW-gp56p.js +1 -0
  62. package/dist/web/client/assets/switch-CcOFiQBK.js +1 -0
  63. package/dist/web/client/assets/terminal-DOS1s1gm.js +1 -0
  64. package/dist/web/client/assets/toast-ATq44uAL.js +1 -0
  65. package/dist/web/client/assets/tool-result-pklnrxSW.js +4 -0
  66. package/dist/web/client/assets/use-reduced-motion-eORd7fqW.js +9 -0
  67. package/dist/web/client/assets/useBaseUiId-CHqXB2UQ.js +1 -0
  68. package/dist/web/client/assets/useControlled-CJJ9BOQB.js +1 -0
  69. package/dist/web/client/assets/workspace-panel-BmMW7h7b.js +1 -0
  70. package/dist/web/client/assets/wrench-BJNNe07k.js +1 -0
  71. package/dist/web/client/assets/x-CsRC_tCI.js +1 -0
  72. package/dist/web/client/bundle-budget.json +10 -0
  73. package/dist/web/server/{_tanstack-start-manifest_v-DZc7dwm7-6ZQLGXB7.js → _tanstack-start-manifest_v-B4BnRTa_-DR7WQTT5.js} +35 -27
  74. package/dist/web/server/agent-activity-Dx6AlDhN-JXOL2EXK.js +514 -0
  75. package/dist/web/server/{artifacts-panel-Bt7YUzm4-NCBMXJ25.js → artifacts-panel-CloS3-ij-XWYXKL6A.js} +26 -18
  76. package/dist/web/server/{chat-command-palette-Co1L3rUY-RQLNME4T.js → chat-command-palette-Cc0uGvNm-GKENKTO7.js} +23 -18
  77. package/dist/web/server/{chunk-2V6B62OF.js → chunk-3B6M63AO.js} +12 -15
  78. package/dist/web/server/chunk-3D4Z32XA.js +22 -0
  79. package/dist/web/server/{chunk-SR65ARVS.js → chunk-3SSHBMDS.js} +16 -12
  80. package/dist/web/server/chunk-4PQ6OD6J.js +22 -0
  81. package/dist/web/server/chunk-56SEDI5N.js +19 -0
  82. package/dist/web/server/chunk-6QNW66XR.js +19 -0
  83. package/dist/web/server/chunk-744IIIDL.js +19 -0
  84. package/dist/web/server/{chunk-52SJQXO4.js → chunk-7PQTPSEE.js} +568 -568
  85. package/dist/web/server/{chunk-LSIHVSUT.js → chunk-7SR6WDM2.js} +2 -2
  86. package/dist/web/server/chunk-ANL4B775.js +60 -0
  87. package/dist/web/server/chunk-BNQWMQHD.js +35 -0
  88. package/dist/web/server/{chunk-BLVCDQ7E.js → chunk-C5X6G26O.js} +1 -19
  89. package/dist/web/server/chunk-C66BSNA6.js +42 -0
  90. package/dist/web/server/{chunk-XLCTCC4W.js → chunk-DEUBJJZN.js} +4 -59
  91. package/dist/web/server/chunk-E365EOXJ.js +35 -0
  92. package/dist/web/server/{chunk-5WZFFNFY.js → chunk-EFAGCVZ3.js} +2 -23
  93. package/dist/web/server/{chunk-56HSKUBD.js → chunk-EGQ6ZX4D.js} +23 -298
  94. package/dist/web/server/{chunk-TO3YPLNZ.js → chunk-EKBKGAWX.js} +12 -10
  95. package/dist/web/server/{chunk-5RQ6QAZX.js → chunk-F6MGAW3L.js} +2 -2
  96. package/dist/web/server/chunk-GABXCOY3.js +37 -0
  97. package/dist/web/server/chunk-GV7DJIHY.js +36 -0
  98. package/dist/web/server/{chunk-6D524OCJ.js → chunk-HSJMLO36.js} +6 -253
  99. package/dist/web/server/{chunk-46VQY7SG.js → chunk-HU4AIJV3.js} +4 -4
  100. package/dist/web/server/{chunk-PDRD2X5G.js → chunk-HZY3LBGP.js} +145 -1
  101. package/dist/web/server/{chunk-UKINNXJY.js → chunk-J6MRJXUH.js} +22 -15
  102. package/dist/web/server/{chunk-RX62LUDV.js → chunk-JOSTE7WK.js} +7 -5
  103. package/dist/web/server/{chunk-QJBEWT4E.js → chunk-K3BXQG3N.js} +27 -292
  104. package/dist/web/server/chunk-K4ESBQ3R.js +20 -0
  105. package/dist/web/server/{chunk-3HUI75QM.js → chunk-KZSM3BHO.js} +16 -107
  106. package/dist/web/server/chunk-L46H6IDX.js +13 -0
  107. package/dist/web/server/chunk-LNGWHEE6.js +206 -0
  108. package/dist/web/server/{chunk-WZNZQNI4.js → chunk-MOSVTKH5.js} +39 -36
  109. package/dist/web/server/{chunk-MDYA4NXK.js → chunk-NJRYX4A2.js} +4 -4
  110. package/dist/web/server/chunk-NNMZQN7Q.js +296 -0
  111. package/dist/web/server/{chunk-AWFOBHH4.js → chunk-NPPG2GTW.js} +7 -7
  112. package/dist/web/server/{chunk-Y4MHIA7B.js → chunk-PJNYH5SR.js} +7 -295
  113. package/dist/web/server/{chunk-7APYEQIO.js → chunk-QAE5SXDK.js} +1 -24
  114. package/dist/web/server/chunk-QTFCJGOY.js +189 -0
  115. package/dist/web/server/{chunk-AECEK3K7.js → chunk-RANJ6OJ3.js} +9 -9
  116. package/dist/web/server/chunk-RPBSDXJ4.js +62 -0
  117. package/dist/web/server/{chunk-VRLTWOVJ.js → chunk-RYHIJMFD.js} +57 -33
  118. package/dist/web/server/{chunk-NLIUTTKL.js → chunk-S3PQ6HKH.js} +1 -16
  119. package/dist/web/server/chunk-SG4W4SPQ.js +31 -0
  120. package/dist/web/server/{chunk-LESNF5O4.js → chunk-T23OO4SC.js} +2 -11
  121. package/dist/web/server/{chunk-BEMDNODD.js → chunk-UNZJQ7CY.js} +6 -4
  122. package/dist/web/server/chunk-V3S6BVXO.js +22 -0
  123. package/dist/web/server/{chunk-SZ65K4CO.js → chunk-W5GRNHV5.js} +6 -4
  124. package/dist/web/server/{chunk-FZRBAPUM.js → chunk-XKYEXPLQ.js} +2 -17
  125. package/dist/web/server/{chunk-6GMKRR3C.js → chunk-XNYQSCB2.js} +2 -2
  126. package/dist/web/server/chunk-YHXAXJ6I.js +22 -0
  127. package/dist/web/server/chunk-YLMXYMLG.js +86 -0
  128. package/dist/web/server/chunk-YNGDUWCF.js +56 -0
  129. package/dist/web/server/chunk-ZJFA4F5X.js +280 -0
  130. package/dist/web/server/fleet-message-queue-Bn0_3Efe-G4BZR2EU.js +74 -0
  131. package/dist/web/server/fleet-pi-tool-renderer-C52SZmPx-CIAH3IV7.js +51 -0
  132. package/dist/web/server/fleet-reasoning-panel-C_e7wzVm-SDHEWDQT.js +199 -0
  133. package/dist/web/server/fleet-subagent-list-CQltKswG-EKCMQHDI.js +18 -0
  134. package/dist/web/server/fleet-tool-timeline-KENErMKg-HTN7SW3D.js +16 -0
  135. package/dist/web/server/{fork-picker-dialog-DCzuGelH-TN2Q5OXI.js → fork-picker-dialog-DK9YGQuB-4QEFWRU4.js} +6 -5
  136. package/dist/web/server/{markdown-Boni3lHk-AZGKDNAR.js → markdown-QcSUaLyd-6DJUK5NC.js} +1 -1
  137. package/dist/web/server/{markdown-code-BrWukbg3-D2GN4Y77.js → markdown-code-Dyo1_13a-52ZQZSPE.js} +2 -2
  138. package/dist/web/server/model-selector-list-CEfWjRc--GBW2GUO6.js +289 -0
  139. package/dist/web/server/{openui-renderer-c36_GYes-HX46N4M5.js → openui-renderer-Dk0Ak9cW-MUJQHDAS.js} +16 -13
  140. package/dist/web/server/prompt-suggestions-BOmHi4-J-C563CHFU.js +30 -0
  141. package/dist/web/server/{resources-panel-CwKh4U9f-D3VDEMDW.js → resources-panel-B03M8bEp-SZG726N5.js} +7 -6
  142. package/dist/web/server/{router-_ZpegqiQ-QIE44PIB.js → router-BE9HcX2W-JMQ3JWE5.js} +39 -24
  143. package/dist/web/server/{routes-Ct81-8Tq-LHRMOS7R.js → routes-CJTRGB1Z-WJKXJFFT.js} +704 -1463
  144. package/dist/web/server/server.js +2 -2
  145. package/dist/web/server/{settings-dialog-B4uUS6f--AZ4I4ZOT.js → settings-dialog-yDibpbBH-TCLJ7NRJ.js} +42 -31
  146. package/dist/web/server/{subagent-chat-panel-C97S3WID-DLOAD5TG.js → subagent-chat-panel-B1YoZIKO-DFRUDQJ2.js} +39 -20
  147. package/dist/web/server/{subagents-panel-iHpvMIZy-LI6XK66M.js → subagents-panel-dJJwpsEL-FTWWCHND.js} +41 -22
  148. package/dist/web/server/{workspace-panel-CHPoiXEo-YB4WS3MK.js → workspace-panel-BC_H8Jri-5MHAEQQS.js} +22 -18
  149. package/package.json +1 -1
  150. package/dist/web/client/assets/action-swap-roll-DX5o_33Q.js +0 -1
  151. package/dist/web/client/assets/analytics-stub-Jh3lkb8P.js +0 -1
  152. package/dist/web/client/assets/artifacts-panel-C3yewUBP.js +0 -1
  153. package/dist/web/client/assets/button-0At5xSyU.js +0 -1
  154. package/dist/web/client/assets/chat-command-palette-D0xDK1j4.js +0 -1
  155. package/dist/web/client/assets/command-CQzrtjyj.js +0 -2
  156. package/dist/web/client/assets/dialog-DZ44tBtH.js +0 -1
  157. package/dist/web/client/assets/dist-MNgIFxqY.js +0 -41
  158. package/dist/web/client/assets/ease-vFBiNFNK.js +0 -9
  159. package/dist/web/client/assets/file-text-BhQ0ZnoU.js +0 -1
  160. package/dist/web/client/assets/generative-text-renderer-SS9c1kNX.js +0 -6
  161. package/dist/web/client/assets/globals-D_Hy9bT1.css +0 -2
  162. package/dist/web/client/assets/horizontal-resize-C1TpRLNC.js +0 -1
  163. package/dist/web/client/assets/index-C9FloFgj.js +0 -12
  164. package/dist/web/client/assets/input-CqC82Agz.js +0 -1
  165. package/dist/web/client/assets/input-group-H0TG-mkU.js +0 -1
  166. package/dist/web/client/assets/notify-Duj26eeZ.js +0 -1
  167. package/dist/web/client/assets/provider-catalog-BZhZuKSz.js +0 -1
  168. package/dist/web/client/assets/provider-label-jKm8v18u.js +0 -1
  169. package/dist/web/client/assets/range-65lubOFp.js +0 -2
  170. package/dist/web/client/assets/resources-panel-DSU7VGX2.js +0 -1
  171. package/dist/web/client/assets/routes-DSTyx_J0.js +0 -16
  172. package/dist/web/client/assets/safe-external-url-Bl_78dpZ.js +0 -1
  173. package/dist/web/client/assets/settings-dialog-CkfpTKfM.js +0 -1
  174. package/dist/web/client/assets/subagent-transcript-C7oRwEEP.js +0 -1
  175. package/dist/web/client/assets/subagents-panel-aSMWZP9p.js +0 -1
  176. package/dist/web/client/assets/switch-BFEBpUEU.js +0 -1
  177. package/dist/web/client/assets/toast-C4s7FYYa.js +0 -1
  178. package/dist/web/client/assets/tool-result-C2NvnN32.js +0 -4
  179. package/dist/web/client/assets/useBaseUiId-B9f7fokB.js +0 -1
  180. package/dist/web/client/assets/useControlled-CoY1jSuL.js +0 -1
  181. package/dist/web/client/assets/workspace-panel-CjdXlEvd.js +0 -1
  182. package/dist/web/client/assets/x-BgciQ7_C.js +0 -1
  183. package/dist/web/server/fleet-pi-tool-renderer-CE45vM6T-2UQN6RJM.js +0 -37
@@ -10,12 +10,9 @@ import {
10
10
  drag,
11
11
  gestureAnimations,
12
12
  getInitializedFeatureDefinitions,
13
- hasReducedMotionListener,
14
- initPrefersReducedMotion,
15
13
  isAnimationControls,
16
14
  isControllingVariants,
17
15
  isForcedMotionValue,
18
- isHTMLElement,
19
16
  isMotionValue,
20
17
  isRefObject,
21
18
  isSVGComponent,
@@ -25,280 +22,26 @@ import {
25
22
  layout,
26
23
  loadFeatures,
27
24
  optimizedAppearDataAttribute,
28
- prefersReducedMotion,
29
25
  resolveMotionValue,
30
26
  resolveVariantFromProps,
31
27
  scrapeMotionValuesFromProps,
32
- scrapeMotionValuesFromProps$1,
33
- usePresence
28
+ scrapeMotionValuesFromProps$1
34
29
  } from "./chunk-FAGDMGLK.js";
35
30
 
36
- // web/app/dist/server/assets/ease-wRsoBG43.js
37
- import * as React$1 from "react";
38
- import { Children, Fragment, createContext, createElement, forwardRef, isValidElement, useCallback as useCallback2, useContext, useEffect as useEffect2, useId, useInsertionEffect, useLayoutEffect, useMemo, useRef, useState } from "react";
39
- import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
31
+ // web/app/dist/server/assets/ease-DwEWQF3m.js
32
+ import { Fragment, createContext, createElement, forwardRef, useCallback, useContext, useEffect, useInsertionEffect, useLayoutEffect, useMemo, useRef } from "react";
33
+ import { jsx, jsxs } from "react/jsx-runtime";
40
34
  function useConstant(init) {
41
35
  const ref = useRef(null);
42
36
  if (ref.current === null) ref.current = init();
43
37
  return ref.current;
44
38
  }
45
- var useIsomorphicLayoutEffect = typeof window !== "undefined" ? useLayoutEffect : useEffect2;
39
+ var useIsomorphicLayoutEffect = typeof window !== "undefined" ? useLayoutEffect : useEffect;
46
40
  var MotionConfigContext = createContext({
47
41
  transformPagePoint: (p) => p,
48
42
  isStatic: false,
49
43
  reducedMotion: "never"
50
44
  });
51
- function setRef(ref, value) {
52
- if (typeof ref === "function") return ref(value);
53
- else if (ref !== null && ref !== void 0) ref.current = value;
54
- }
55
- function composeRefs(...refs) {
56
- return (node) => {
57
- let hasCleanup = false;
58
- const cleanups = refs.map((ref) => {
59
- const cleanup = setRef(ref, node);
60
- if (!hasCleanup && typeof cleanup === "function") hasCleanup = true;
61
- return cleanup;
62
- });
63
- if (hasCleanup) return () => {
64
- for (let i = 0; i < cleanups.length; i++) {
65
- const cleanup = cleanups[i];
66
- if (typeof cleanup === "function") cleanup();
67
- else setRef(refs[i], null);
68
- }
69
- };
70
- };
71
- }
72
- function useComposedRefs(...refs) {
73
- return React$1.useCallback(composeRefs(...refs), refs);
74
- }
75
- var PopChildMeasure = class extends React$1.Component {
76
- getSnapshotBeforeUpdate(prevProps) {
77
- const element = this.props.childRef.current;
78
- if (isHTMLElement(element) && prevProps.isPresent && !this.props.isPresent && this.props.pop !== false) {
79
- const parent = element.offsetParent;
80
- const parentWidth = isHTMLElement(parent) ? parent.offsetWidth || 0 : 0;
81
- const parentHeight = isHTMLElement(parent) ? parent.offsetHeight || 0 : 0;
82
- const computedStyle = getComputedStyle(element);
83
- const size = this.props.sizeRef.current;
84
- size.height = parseFloat(computedStyle.height);
85
- size.width = parseFloat(computedStyle.width);
86
- size.top = element.offsetTop;
87
- size.left = element.offsetLeft;
88
- size.right = parentWidth - size.width - size.left;
89
- size.bottom = parentHeight - size.height - size.top;
90
- size.direction = computedStyle.direction;
91
- }
92
- return null;
93
- }
94
- /**
95
- * Required with getSnapshotBeforeUpdate to stop React complaining.
96
- */
97
- componentDidUpdate() {
98
- }
99
- render() {
100
- return this.props.children;
101
- }
102
- };
103
- function PopChild({ children, isPresent, anchorX, anchorY, root, pop }) {
104
- const id = useId();
105
- const ref = useRef(null);
106
- const size = useRef({
107
- width: 0,
108
- height: 0,
109
- top: 0,
110
- left: 0,
111
- right: 0,
112
- bottom: 0,
113
- direction: "ltr"
114
- });
115
- const { nonce } = useContext(MotionConfigContext);
116
- const composedRef = useComposedRefs(ref, pop !== false ? children.props?.ref ?? children?.ref : void 0);
117
- useInsertionEffect(() => {
118
- const { width, height, top, left, right, bottom, direction } = size.current;
119
- if (isPresent || pop === false || !ref.current || !width || !height) return;
120
- const isRTL = direction === "rtl";
121
- const x = anchorX === "left" ? isRTL ? `right: ${right}` : `left: ${left}` : isRTL ? `left: ${left}` : `right: ${right}`;
122
- const y = anchorY === "bottom" ? `bottom: ${bottom}` : `top: ${top}`;
123
- ref.current.dataset.motionPopId = id;
124
- const style = document.createElement("style");
125
- if (nonce) style.nonce = nonce;
126
- const parent = root ?? document.head;
127
- parent.appendChild(style);
128
- if (style.sheet) style.sheet.insertRule(`
129
- [data-motion-pop-id="${id}"] {
130
- position: absolute !important;
131
- width: ${width}px !important;
132
- height: ${height}px !important;
133
- ${x}px !important;
134
- ${y}px !important;
135
- }
136
- `);
137
- return () => {
138
- ref.current?.removeAttribute("data-motion-pop-id");
139
- if (parent.contains(style)) parent.removeChild(style);
140
- };
141
- }, [isPresent]);
142
- return jsx(PopChildMeasure, {
143
- isPresent,
144
- childRef: ref,
145
- sizeRef: size,
146
- pop,
147
- children: pop === false ? children : React$1.cloneElement(children, { ref: composedRef })
148
- });
149
- }
150
- var PresenceChild = ({ children, initial, isPresent, onExitComplete, custom, presenceAffectsLayout, mode, anchorX, anchorY, root }) => {
151
- const presenceChildren = useConstant(newChildrenMap);
152
- const id = useId();
153
- const isPresentRef = useRef(isPresent);
154
- const onExitCompleteRef = useRef(onExitComplete);
155
- useIsomorphicLayoutEffect(() => {
156
- isPresentRef.current = isPresent;
157
- onExitCompleteRef.current = onExitComplete;
158
- });
159
- let isReusedContext = true;
160
- let context = useMemo(() => {
161
- isReusedContext = false;
162
- return {
163
- id,
164
- initial,
165
- isPresent,
166
- custom,
167
- onExitComplete: (childId) => {
168
- presenceChildren.set(childId, true);
169
- for (const isComplete of presenceChildren.values()) if (!isComplete) return;
170
- onExitComplete && onExitComplete();
171
- },
172
- register: (childId) => {
173
- presenceChildren.set(childId, false);
174
- return () => {
175
- presenceChildren.delete(childId);
176
- !isPresentRef.current && !presenceChildren.size && onExitCompleteRef.current?.();
177
- };
178
- }
179
- };
180
- }, [
181
- isPresent,
182
- presenceChildren,
183
- onExitComplete
184
- ]);
185
- if (presenceAffectsLayout && isReusedContext) context = { ...context };
186
- useMemo(() => {
187
- presenceChildren.forEach((_, key) => presenceChildren.set(key, false));
188
- }, [isPresent]);
189
- React$1.useEffect(() => {
190
- !isPresent && !presenceChildren.size && onExitComplete && onExitComplete();
191
- }, [isPresent]);
192
- children = jsx(PopChild, {
193
- pop: mode === "popLayout",
194
- isPresent,
195
- anchorX,
196
- anchorY,
197
- root,
198
- children
199
- });
200
- return jsx(PresenceContext.Provider, {
201
- value: context,
202
- children
203
- });
204
- };
205
- function newChildrenMap() {
206
- return /* @__PURE__ */ new Map();
207
- }
208
- var getChildKey = (child) => child.key || "";
209
- function onlyElements(children) {
210
- const filtered = [];
211
- Children.forEach(children, (child) => {
212
- if (isValidElement(child)) filtered.push(child);
213
- });
214
- return filtered;
215
- }
216
- var AnimatePresence = ({ children, custom, initial = true, onExitComplete, presenceAffectsLayout = true, mode = "sync", propagate = false, anchorX = "left", anchorY = "top", root }) => {
217
- const [isParentPresent, safeToRemove] = usePresence(propagate);
218
- const presentChildren = useMemo(() => onlyElements(children), [children]);
219
- const presentKeys = propagate && !isParentPresent ? [] : presentChildren.map(getChildKey);
220
- const isInitialRender = useRef(true);
221
- const pendingPresentChildren = useRef(presentChildren);
222
- const exitComplete = useConstant(() => /* @__PURE__ */ new Map());
223
- const exitingComponents = useRef(/* @__PURE__ */ new Set());
224
- const [diffedChildren, setDiffedChildren] = useState(presentChildren);
225
- const [renderedChildren, setRenderedChildren] = useState(presentChildren);
226
- useIsomorphicLayoutEffect(() => {
227
- if (propagate && !isParentPresent && !renderedChildren.length) safeToRemove?.();
228
- }, [
229
- isParentPresent,
230
- propagate,
231
- renderedChildren.length,
232
- safeToRemove
233
- ]);
234
- useIsomorphicLayoutEffect(() => {
235
- isInitialRender.current = false;
236
- pendingPresentChildren.current = presentChildren;
237
- for (let i = 0; i < renderedChildren.length; i++) {
238
- const key = getChildKey(renderedChildren[i]);
239
- if (!presentKeys.includes(key)) {
240
- if (exitComplete.get(key) !== true) exitComplete.set(key, false);
241
- } else {
242
- exitComplete.delete(key);
243
- exitingComponents.current.delete(key);
244
- }
245
- }
246
- }, [
247
- renderedChildren,
248
- presentKeys.length,
249
- presentKeys.join("-")
250
- ]);
251
- const exitingChildren = [];
252
- if (presentChildren !== diffedChildren) {
253
- let nextChildren = [...presentChildren];
254
- let insertionIndex = 0;
255
- for (const child of renderedChildren) {
256
- const presentIndex = presentKeys.indexOf(getChildKey(child));
257
- if (presentIndex === -1) {
258
- nextChildren.splice(insertionIndex++, 0, child);
259
- exitingChildren.push(child);
260
- } else insertionIndex = presentIndex + exitingChildren.length + 1;
261
- }
262
- if (mode === "wait" && exitingChildren.length) nextChildren = exitingChildren;
263
- setRenderedChildren(onlyElements(nextChildren));
264
- setDiffedChildren(presentChildren);
265
- return null;
266
- }
267
- const { forceRender } = useContext(LayoutGroupContext);
268
- return jsx(Fragment$1, { children: renderedChildren.map((child) => {
269
- const key = getChildKey(child);
270
- const isPresent = propagate && !isParentPresent ? false : presentChildren === renderedChildren || presentKeys.includes(key);
271
- const onExit = () => {
272
- if (exitingComponents.current.has(key)) return;
273
- if (exitComplete.has(key)) {
274
- exitingComponents.current.add(key);
275
- exitComplete.set(key, true);
276
- } else return;
277
- let isEveryExitComplete = true;
278
- exitComplete.forEach((isExitComplete) => {
279
- if (!isExitComplete) isEveryExitComplete = false;
280
- });
281
- if (isEveryExitComplete) {
282
- forceRender?.();
283
- setRenderedChildren(pendingPresentChildren.current);
284
- propagate && safeToRemove?.();
285
- onExitComplete && onExitComplete();
286
- }
287
- };
288
- return jsx(PresenceChild, {
289
- isPresent,
290
- initial: !isInitialRender.current || initial ? void 0 : false,
291
- custom,
292
- presenceAffectsLayout,
293
- mode,
294
- root,
295
- onExitComplete: isPresent ? void 0 : onExit,
296
- anchorX,
297
- anchorY,
298
- children: child
299
- }, key);
300
- }) });
301
- };
302
45
  var MotionContext = /* @__PURE__ */ createContext({});
303
46
  function getCurrentTreeVariants(props, context) {
304
47
  if (isControllingVariants(props)) {
@@ -359,10 +102,10 @@ var createSvgRenderState = () => ({
359
102
  ...createHtmlRenderState(),
360
103
  attrs: {}
361
104
  });
362
- function useSVGProps(props, visualState, _isStatic, Component2) {
105
+ function useSVGProps(props, visualState, _isStatic, Component) {
363
106
  const visualProps = useMemo(() => {
364
107
  const state = createSvgRenderState();
365
- buildSVGAttrs(state, visualState, isSVGTag(Component2), props.transformTemplate, props.style);
108
+ buildSVGAttrs(state, visualState, isSVGTag(Component), props.transformTemplate, props.style);
366
109
  return {
367
110
  ...state.attrs,
368
111
  style: { ...state.style }
@@ -426,17 +169,17 @@ function filterProps(props, isDom, forwardMotionProps, isValidProp) {
426
169
  }
427
170
  return filteredProps;
428
171
  }
429
- function useRender(Component2, props, ref, { latestValues }, isStatic, forwardMotionProps = false, isSVG, isValidProp) {
430
- const visualProps = (isSVG ?? isSVGComponent(Component2) ? useSVGProps : useHTMLProps)(props, latestValues, isStatic, Component2);
431
- const filteredProps = filterProps(props, typeof Component2 === "string", forwardMotionProps, isValidProp);
432
- const elementProps = Component2 !== Fragment ? {
172
+ function useRender(Component, props, ref, { latestValues }, isStatic, forwardMotionProps = false, isSVG, isValidProp) {
173
+ const visualProps = (isSVG ?? isSVGComponent(Component) ? useSVGProps : useHTMLProps)(props, latestValues, isStatic, Component);
174
+ const filteredProps = filterProps(props, typeof Component === "string", forwardMotionProps, isValidProp);
175
+ const elementProps = Component !== Fragment ? {
433
176
  ...filteredProps,
434
177
  ...visualProps,
435
178
  ref
436
179
  } : {};
437
180
  const { children } = props;
438
181
  const renderedChildren = useMemo(() => isMotionValue(children) ? children.get() : children, [children]);
439
- return createElement(Component2, {
182
+ return createElement(Component, {
440
183
  ...elementProps,
441
184
  children: renderedChildren
442
185
  });
@@ -502,7 +245,7 @@ function useMotionRef(visualState, visualElement, externalRef) {
502
245
  externalRefContainer.current = externalRef;
503
246
  });
504
247
  const refCleanup = useRef(null);
505
- return useCallback2((instance) => {
248
+ return useCallback((instance) => {
506
249
  if (instance) visualState.onMount?.(instance);
507
250
  if (visualElement) instance ? visualElement.mount(instance) : visualElement.unmount();
508
251
  const ref = externalRefContainer.current;
@@ -517,7 +260,7 @@ function useMotionRef(visualState, visualElement, externalRef) {
517
260
  } else if (ref) ref.current = instance;
518
261
  }, [visualElement]);
519
262
  }
520
- function useVisualElement(Component2, visualState, props, createVisualElement, ProjectionNodeConstructor, isSVG) {
263
+ function useVisualElement(Component, visualState, props, createVisualElement, ProjectionNodeConstructor, isSVG) {
521
264
  const { visualElement: parent } = useContext(MotionContext);
522
265
  const lazyContext = useContext(LazyContext);
523
266
  const presenceContext = useContext(PresenceContext);
@@ -528,7 +271,7 @@ function useVisualElement(Component2, visualState, props, createVisualElement, P
528
271
  const hasMountedOnce = useRef(false);
529
272
  createVisualElement = createVisualElement || lazyContext.renderer;
530
273
  if (!visualElementRef.current && createVisualElement) {
531
- visualElementRef.current = createVisualElement(Component2, {
274
+ visualElementRef.current = createVisualElement(Component, {
532
275
  visualState,
533
276
  parent,
534
277
  props,
@@ -558,7 +301,7 @@ function useVisualElement(Component2, visualState, props, createVisualElement, P
558
301
  visualElement.scheduleRenderMicrotask();
559
302
  if (wantsHandoff.current && visualElement.animationState) visualElement.animationState.animateChanges();
560
303
  });
561
- useEffect2(() => {
304
+ useEffect(() => {
562
305
  if (!visualElement) return;
563
306
  if (!wantsHandoff.current && visualElement.animationState) visualElement.animationState.animateChanges();
564
307
  if (wantsHandoff.current) {
@@ -598,9 +341,9 @@ function getClosestProjectingNode(visualElement) {
598
341
  if (!visualElement) return void 0;
599
342
  return visualElement.options.allowProjection !== false ? visualElement.projection : getClosestProjectingNode(visualElement.parent);
600
343
  }
601
- function createMotionComponent(Component2, { forwardMotionProps = false, type } = {}, preloadedFeatures, createVisualElement) {
344
+ function createMotionComponent(Component, { forwardMotionProps = false, type } = {}, preloadedFeatures, createVisualElement) {
602
345
  preloadedFeatures && loadFeatures(preloadedFeatures);
603
- const isSVG = type ? type === "svg" : isSVGComponent(Component2);
346
+ const isSVG = type ? type === "svg" : isSVGComponent(Component);
604
347
  const useVisualState = isSVG ? useSVGVisualState : useHTMLVisualState;
605
348
  function MotionDOMComponent(props, externalRef) {
606
349
  let MeasureLayout;
@@ -616,19 +359,19 @@ function createMotionComponent(Component2, { forwardMotionProps = false, type }
616
359
  useStrictMode(configAndProps, preloadedFeatures);
617
360
  const layoutProjection = getProjectionFunctionality(configAndProps);
618
361
  MeasureLayout = layoutProjection.MeasureLayout;
619
- context.visualElement = useVisualElement(Component2, visualState, configAndProps, createVisualElement, layoutProjection.ProjectionNode, isSVG);
362
+ context.visualElement = useVisualElement(Component, visualState, configAndProps, createVisualElement, layoutProjection.ProjectionNode, isSVG);
620
363
  }
621
364
  return jsxs(MotionContext.Provider, {
622
365
  value: context,
623
366
  children: [MeasureLayout && context.visualElement ? jsx(MeasureLayout, {
624
367
  visualElement: context.visualElement,
625
368
  ...configAndProps
626
- }) : null, useRender(Component2, props, useMotionRef(visualState, context.visualElement, externalRef), visualState, isStatic, forwardMotionProps, isSVG, isValidProp)]
369
+ }) : null, useRender(Component, props, useMotionRef(visualState, context.visualElement, externalRef), visualState, isStatic, forwardMotionProps, isSVG, isValidProp)]
627
370
  });
628
371
  }
629
- MotionDOMComponent.displayName = `motion.${typeof Component2 === "string" ? Component2 : `create(${Component2.displayName ?? Component2.name ?? ""})`}`;
372
+ MotionDOMComponent.displayName = `motion.${typeof Component === "string" ? Component : `create(${Component.displayName ?? Component.name ?? ""})`}`;
630
373
  const ForwardRefMotionComponent = forwardRef(MotionDOMComponent);
631
- ForwardRefMotionComponent[motionComponentSymbol] = Component2;
374
+ ForwardRefMotionComponent[motionComponentSymbol] = Component;
632
375
  return ForwardRefMotionComponent;
633
376
  }
634
377
  function useLayoutId({ layoutId }) {
@@ -653,11 +396,11 @@ function getProjectionFunctionality(props) {
653
396
  function createMotionProxy(preloadedFeatures, createVisualElement) {
654
397
  if (typeof Proxy === "undefined") return createMotionComponent;
655
398
  const componentCache = /* @__PURE__ */ new Map();
656
- const factory = (Component2, options) => {
657
- return createMotionComponent(Component2, options, preloadedFeatures, createVisualElement);
399
+ const factory = (Component, options) => {
400
+ return createMotionComponent(Component, options, preloadedFeatures, createVisualElement);
658
401
  };
659
- const deprecatedFactoryFunction = (Component2, options) => {
660
- return factory(Component2, options);
402
+ const deprecatedFactoryFunction = (Component, options) => {
403
+ return factory(Component, options);
661
404
  };
662
405
  return new Proxy(deprecatedFactoryFunction, {
663
406
  /**
@@ -673,18 +416,12 @@ function createMotionProxy(preloadedFeatures, createVisualElement) {
673
416
  });
674
417
  }
675
418
  var m$1 = /* @__PURE__ */ createMotionProxy();
676
- var motion$1 = /* @__PURE__ */ createMotionProxy({
419
+ var motion = /* @__PURE__ */ createMotionProxy({
677
420
  ...animations,
678
421
  ...gestureAnimations,
679
422
  ...drag,
680
423
  ...layout
681
424
  }, createDomVisualElement);
682
- function useReducedMotion() {
683
- !hasReducedMotionListener.current && initPrefersReducedMotion();
684
- const [shouldReduceMotion] = useState(prefersReducedMotion.current);
685
- return shouldReduceMotion;
686
- }
687
- var motion = motion$1;
688
425
  var m = m$1;
689
426
  var EASE_OUT = [
690
427
  0.16,
@@ -744,8 +481,6 @@ export {
744
481
  useConstant,
745
482
  useIsomorphicLayoutEffect,
746
483
  MotionConfigContext,
747
- AnimatePresence,
748
- useReducedMotion,
749
484
  motion,
750
485
  m,
751
486
  EASE_OUT,
@@ -0,0 +1,20 @@
1
+ import {
2
+ toast
3
+ } from "./chunk-W5GRNHV5.js";
4
+
5
+ // web/app/dist/server/assets/notify-CsiZeM1b.js
6
+ function addToast(title, type) {
7
+ return toast.add({
8
+ title,
9
+ type
10
+ });
11
+ }
12
+ var notify = Object.assign((title) => addToast(title), {
13
+ success: (title) => addToast(title, "success"),
14
+ error: (title) => addToast(title, "error"),
15
+ message: (title) => addToast(title, "info")
16
+ });
17
+
18
+ export {
19
+ notify
20
+ };
@@ -1,20 +1,25 @@
1
+ import {
2
+ Earth
3
+ } from "./chunk-E365EOXJ.js";
1
4
  import {
2
5
  ExternalLink
3
- } from "./chunk-5WZFFNFY.js";
6
+ } from "./chunk-EFAGCVZ3.js";
4
7
  import {
5
8
  AgentDisclosure
6
- } from "./chunk-6D524OCJ.js";
9
+ } from "./chunk-C66BSNA6.js";
7
10
  import {
8
11
  AnimatePresence,
12
+ useReducedMotion
13
+ } from "./chunk-ZJFA4F5X.js";
14
+ import {
9
15
  EASE_OUT,
10
16
  SPRING_LAYOUT,
11
17
  SPRING_SWAP,
12
- m,
13
- useReducedMotion
14
- } from "./chunk-QJBEWT4E.js";
18
+ m
19
+ } from "./chunk-K3BXQG3N.js";
15
20
  import {
16
21
  isSafeExternalUrl
17
- } from "./chunk-LESNF5O4.js";
22
+ } from "./chunk-L46H6IDX.js";
18
23
  import {
19
24
  ChevronDown
20
25
  } from "./chunk-QLY3L4A2.js";
@@ -25,8 +30,8 @@ import {
25
30
  cn
26
31
  } from "./chunk-DJMHPJBP.js";
27
32
 
28
- // web/app/dist/server/assets/range-CqBJEIcv.js
29
- import { Suspense, lazy, useCallback, useEffect, useId, useLayoutEffect, useRef, useState } from "react";
33
+ // web/app/dist/server/assets/citations-D49azWWL.js
34
+ import { Suspense, lazy, useCallback, useEffect, useId, useState } from "react";
30
35
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
31
36
  var BookOpenText = createLucideIcon("book-open-text", [
32
37
  ["path", {
@@ -54,26 +59,6 @@ var BookOpenText = createLucideIcon("book-open-text", [
54
59
  key: "1k7j9f"
55
60
  }]
56
61
  ]);
57
- var Earth = createLucideIcon("earth", [
58
- ["path", {
59
- d: "M21.54 15H17a2 2 0 0 0-2 2v4.54",
60
- key: "1djwo0"
61
- }],
62
- ["path", {
63
- d: "M7 3.34V5a3 3 0 0 0 3 3a2 2 0 0 1 2 2c0 1.1.9 2 2 2a2 2 0 0 0 2-2c0-1.1.9-2 2-2h3.17",
64
- key: "1tzkfa"
65
- }],
66
- ["path", {
67
- d: "M11 21.95V18a2 2 0 0 0-2-2a2 2 0 0 1-2-2v-1a2 2 0 0 0-2-2H2.05",
68
- key: "14pb5j"
69
- }],
70
- ["circle", {
71
- cx: "12",
72
- cy: "12",
73
- r: "10",
74
- key: "1mglay"
75
- }]
76
- ]);
77
62
  var ListTodo = createLucideIcon("list-todo", [
78
63
  ["path", {
79
64
  d: "M13 5h8",
@@ -128,13 +113,6 @@ var MessageCircleQuestionMark = createLucideIcon("message-circle-question-mark",
128
113
  key: "p32p05"
129
114
  }]
130
115
  ]);
131
- var Terminal = createLucideIcon("terminal", [["path", {
132
- d: "M12 19h8",
133
- key: "baeox8"
134
- }], ["path", {
135
- d: "m4 17 6-6-6-6",
136
- key: "1yngyt"
137
- }]]);
138
116
  function useHoverCapable() {
139
117
  const [canHover, setCanHover] = useState(false);
140
118
  useEffect(() => {
@@ -147,7 +125,7 @@ function useHoverCapable() {
147
125
  }, []);
148
126
  return canHover;
149
127
  }
150
- var MarkdownContent = lazy(() => import("./markdown-Boni3lHk-AZGKDNAR.js").then((n) => n.a).then(({ Markdown }) => ({ default: Markdown })));
128
+ var MarkdownContent = lazy(() => import("./markdown-QcSUaLyd-6DJUK5NC.js").then((n) => n.a).then(({ Markdown }) => ({ default: Markdown })));
151
129
  function LazyMarkdown(props) {
152
130
  return /* @__PURE__ */ jsx(Suspense, {
153
131
  fallback: /* @__PURE__ */ jsx("div", {
@@ -179,6 +157,7 @@ function CitationFavicon({ url, className }) {
179
157
  alt: "",
180
158
  width: 16,
181
159
  height: 16,
160
+ loading: "lazy",
182
161
  referrerPolicy: "no-referrer",
183
162
  onError: () => setFailedUrl(favicon),
184
163
  className: "size-4 rounded-sm object-contain"
@@ -319,88 +298,18 @@ function Citations({ citations, title = "Sources", open, defaultOpen = false, on
319
298
  })]
320
299
  });
321
300
  }
322
- var paper = "bg-background shadow-[0_1px_2px_rgba(0,0,0,0.04),0_12px_32px_-16px_rgba(0,0,0,0.12)] dark:bg-popover dark:shadow-none";
323
- var floating = "bg-background shadow-[0_2px_8px_rgba(0,0,0,0.05),0_20px_48px_-16px_rgba(0,0,0,0.18)] dark:bg-popover dark:shadow-[0_20px_48px_-16px_rgba(0,0,0,0.55)]";
324
- var field = "bg-foreground/[0.04] dark:bg-foreground/[0.06]";
325
- var labelSwap = "col-start-1 row-start-1 flex w-max items-center gap-1.5 leading-none transition-[opacity,filter] duration-300 ease-[cubic-bezier(0.23,1,0.32,1)] motion-reduce:transition-none";
326
- var labelSwapIn = "opacity-100 blur-none";
327
- var labelSwapOut = "pointer-events-none select-none opacity-0 blur-[2px]";
328
- var collapsePanel = "h-(--collapsible-panel-height) overflow-hidden transition-[height] duration-200 ease-[cubic-bezier(0.32,0.72,0,1)] data-[ending-style]:h-0 data-[starting-style]:h-0 motion-reduce:transition-none";
329
- var mono = "font-mono text-[11px] tracking-tight";
330
- function ShimmerLabel({ active = true, className, ...props }) {
331
- return /* @__PURE__ */ jsx("span", {
332
- className: cn(active && "shimmer motion-reduce:animate-none", className),
333
- ...props
334
- });
335
- }
336
- function SwapLabel({ active, children, className }) {
337
- const firstLayerRef = useRef(null);
338
- const secondLayerRef = useRef(null);
339
- const [width, setWidth] = useState(null);
340
- useLayoutEffect(() => {
341
- const target = (active === 0 ? firstLayerRef : secondLayerRef).current;
342
- if (!target) return void 0;
343
- const measure = () => setWidth(Math.ceil(target.getBoundingClientRect().width));
344
- measure();
345
- const observer = new ResizeObserver(measure);
346
- observer.observe(target);
347
- return () => observer.disconnect();
348
- }, [active]);
349
- return /* @__PURE__ */ jsxs("span", {
350
- style: width === null ? void 0 : { width },
351
- className: cn("grid overflow-x-clip transition-[width] duration-300 ease-[cubic-bezier(0.23,1,0.32,1)] motion-reduce:transition-none", className),
352
- children: [/* @__PURE__ */ jsx("span", {
353
- ref: firstLayerRef,
354
- "aria-hidden": active !== 0,
355
- className: cn(labelSwap, active === 0 ? labelSwapIn : labelSwapOut),
356
- children: children[0]
357
- }), /* @__PURE__ */ jsx("span", {
358
- ref: secondLayerRef,
359
- "aria-hidden": active !== 1,
360
- className: cn(labelSwap, active === 1 ? labelSwapIn : labelSwapOut),
361
- children: children[1]
362
- })]
363
- });
364
- }
365
- function clamp(value, min, max) {
366
- if (Number.isNaN(value)) return min;
367
- return Math.min(max, Math.max(min, value));
368
- }
369
- function take(items, count) {
370
- return items.slice(0, Math.floor(clamp(count, 0, items.length)));
371
- }
372
- function pct(value, total) {
373
- if (!(total > 0)) return 0;
374
- return clamp(value / total * 100, 0, 100);
375
- }
376
- function progressOf(index, total) {
377
- if (!(total > 0)) return 0;
378
- return Math.floor(clamp(index, 0, total));
379
- }
380
301
 
381
302
  export {
382
303
  BookOpenText,
383
- Earth,
384
304
  ListTodo,
385
305
  LogOut,
386
306
  MessageCircleQuestionMark,
387
- Terminal,
388
307
  useHoverCapable,
389
308
  LazyMarkdown,
390
309
  PI_TOOL_RENDERERS,
391
310
  CitationStack,
392
311
  CitationList,
393
- Citations,
394
- paper,
395
- floating,
396
- field,
397
- collapsePanel,
398
- mono,
399
- ShimmerLabel,
400
- SwapLabel,
401
- take,
402
- pct,
403
- progressOf
312
+ Citations
404
313
  };
405
314
  /**
406
315
  * @license lucide-react v1.33.0 - ISC
@@ -0,0 +1,13 @@
1
+ // web/app/dist/server/assets/safe-external-url-BrYK1TTB.js
2
+ function isSafeExternalUrl(value) {
3
+ try {
4
+ const url = new URL(value);
5
+ return url.protocol === "http:" || url.protocol === "https:";
6
+ } catch {
7
+ return false;
8
+ }
9
+ }
10
+
11
+ export {
12
+ isSafeExternalUrl
13
+ };