efficient-shell 10.1.0 → 10.2.1

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 (376) hide show
  1. package/README.md +1 -1
  2. package/dist/{Browser-2S5V2RRU.js → Browser-YHMFQIN5.js} +14 -14
  3. package/dist/Calculator-NSYIXONM.js +29 -0
  4. package/dist/CurrencyConverter-YQ2AZ7ZG.js +21 -0
  5. package/dist/Documents-CMCZA5PH.js +52 -0
  6. package/dist/Files-UW65YMFW.js +88 -0
  7. package/dist/Notepad-RSYZ7HZA.js +24 -0
  8. package/dist/{PdfViewer-WNKGFJD6.js → PdfViewer-Z4YKDHIH.js} +1 -1
  9. package/dist/{PomodoroTimer-TGUTV47T.js → PomodoroTimer-5KCWCL62.js} +12 -12
  10. package/dist/{Preview-76A4GKGI.js → Preview-PK4QI7SK.js} +41 -41
  11. package/dist/Sidebar-QCUDD4OU.js +44 -0
  12. package/dist/Spreadsheet-MQR4TQGV.js +37 -0
  13. package/dist/Stock-DMW2REHR.js +16 -0
  14. package/dist/{Weather-2EGADOTH.js → Weather-PN7XVCZY.js} +14 -14
  15. package/dist/{WorldClock-U5DIGLOY.js → WorldClock-JYLOJCUS.js} +9 -9
  16. package/dist/ai/index.js +59 -59
  17. package/dist/apps/index.js +1 -1
  18. package/dist/bin/media-host-check.js +1 -1
  19. package/dist/bin/ui-check.js +1 -1
  20. package/dist/brand.css +1 -1
  21. package/dist/charts/BoxPlotChart.js +1 -1
  22. package/dist/charts/CandlestickChart.js +1 -1
  23. package/dist/charts/CartesianPlot.js +1 -1
  24. package/dist/charts/ChartBrush.js +1 -1
  25. package/dist/charts/ChartFrame.js +1 -1
  26. package/dist/charts/ChartSkeleton.js +1 -1
  27. package/dist/charts/ChartTooltip.js +1 -1
  28. package/dist/charts/ChordChart.js +1 -1
  29. package/dist/charts/ColumnChart.js +1 -1
  30. package/dist/charts/FunnelChart.js +1 -1
  31. package/dist/charts/HeatmapChart.js +1 -1
  32. package/dist/charts/HistogramChart.js +1 -1
  33. package/dist/charts/Meter.js +1 -1
  34. package/dist/charts/PieChart.js +1 -1
  35. package/dist/charts/RadarChart.js +1 -1
  36. package/dist/charts/RadialBarChart.js +1 -1
  37. package/dist/charts/RangeChart.js +1 -1
  38. package/dist/charts/RankedBars.js +1 -1
  39. package/dist/charts/SankeyChart.js +1 -1
  40. package/dist/charts/ScatterChart.js +1 -1
  41. package/dist/charts/SpecChart.js +1 -1
  42. package/dist/charts/StatTile.js +1 -1
  43. package/dist/charts/SunburstChart.js +1 -1
  44. package/dist/charts/TimeSeriesChart.js +1 -1
  45. package/dist/charts/TreemapChart.js +1 -1
  46. package/dist/charts/WaterfallChart.js +1 -1
  47. package/dist/chunk-2JG5JU4M.js +8 -0
  48. package/dist/{chunk-5VSP3TYU.js → chunk-2K2W6VIR.js} +1 -1
  49. package/dist/{chunk-QXRRAADR.js → chunk-2SY76NFO.js} +4 -4
  50. package/dist/{chunk-BMXMSAQE.js → chunk-2VTO64YC.js} +7 -7
  51. package/dist/{chunk-HL6JSDN3.js → chunk-34URULVW.js} +1 -1
  52. package/dist/{chunk-RZR3OAKV.js → chunk-35DG7Y4M.js} +1 -1
  53. package/dist/{chunk-MH6DI6YY.js → chunk-37U326EL.js} +12 -12
  54. package/dist/{chunk-YL6LLHJA.js → chunk-3CPB3WP2.js} +18 -18
  55. package/dist/{chunk-CKPVXDKX.js → chunk-3ELLBQPS.js} +3 -3
  56. package/dist/{chunk-A6RB4PIX.js → chunk-3NW5LD7D.js} +4 -4
  57. package/dist/{chunk-BNQRPLBW.js → chunk-3RORPK2J.js} +1 -1
  58. package/dist/{chunk-U5DMF2TX.js → chunk-4BYJQU37.js} +1 -1
  59. package/dist/chunk-4PAWQEXM.js +1 -0
  60. package/dist/{chunk-CUA6CREW.js → chunk-5S3YYN7M.js} +7 -7
  61. package/dist/{chunk-Q5YM65DZ.js → chunk-632N62BY.js} +8 -8
  62. package/dist/{chunk-LOYCPZUB.js → chunk-63L5ORRZ.js} +1 -1
  63. package/dist/{chunk-B7HW6XZD.js → chunk-67JCJ2MG.js} +1 -1
  64. package/dist/chunk-6OMCCEYA.js +1 -0
  65. package/dist/{chunk-4VDGVF5T.js → chunk-6PFZK6ED.js} +1 -1
  66. package/dist/{chunk-P6LB3I3D.js → chunk-6RX4PVBU.js} +1 -1
  67. package/dist/chunk-6XBWM453.js +6 -0
  68. package/dist/{chunk-ZG2HMC7S.js → chunk-7SMV6G4Z.js} +1 -1
  69. package/dist/{chunk-X6YT3I5F.js → chunk-7X3XNVES.js} +1 -1
  70. package/dist/{chunk-WUMHSI4U.js → chunk-7X5FABQS.js} +1 -1
  71. package/dist/{chunk-JZK3UDOT.js → chunk-7YOQS3C6.js} +1 -1
  72. package/dist/{chunk-TDLU6GF5.js → chunk-7Z4PTLDL.js} +4 -4
  73. package/dist/{chunk-2OJ3HGFY.js → chunk-A4HJDSRA.js} +6 -6
  74. package/dist/chunk-A5BV6NFA.js +7 -0
  75. package/dist/{chunk-42XMT5JN.js → chunk-AJO72CPB.js} +2 -2
  76. package/dist/chunk-AKJHVOSD.js +8 -0
  77. package/dist/{chunk-OQW42DOR.js → chunk-AKM6JBMD.js} +1 -1
  78. package/dist/chunk-AM2F5ZXH.js +2 -0
  79. package/dist/{chunk-4WZRNPIG.js → chunk-AUWTGM65.js} +1 -1
  80. package/dist/chunk-B73AXE6P.js +1 -0
  81. package/dist/{chunk-V4RYE6KA.js → chunk-C2P2Z6HU.js} +11 -11
  82. package/dist/{chunk-WKSNTMEJ.js → chunk-CAVADOJK.js} +1 -1
  83. package/dist/chunk-CBEKJTXU.js +9 -0
  84. package/dist/{chunk-Q4LBBFLO.js → chunk-CGQAKGPT.js} +6 -6
  85. package/dist/{chunk-AEQFFD5I.js → chunk-CHBRMAJV.js} +1 -1
  86. package/dist/{chunk-2OE5VVBE.js → chunk-CPZ42W2B.js} +1 -1
  87. package/dist/{chunk-BDAKGS7O.js → chunk-D7F442OZ.js} +1 -1
  88. package/dist/{chunk-BZPPDYEE.js → chunk-DDCMMOB4.js} +1 -1
  89. package/dist/{chunk-5VTRKWKO.js → chunk-DKGZPVLL.js} +1 -1
  90. package/dist/{chunk-XABYSSXW.js → chunk-DLNIRZNR.js} +1 -1
  91. package/dist/{chunk-RBIGSJ2J.js → chunk-DRDYZ633.js} +2 -2
  92. package/dist/{chunk-FS2KWQJW.js → chunk-E5MVH3SH.js} +10 -10
  93. package/dist/chunk-EU3JZGV2.js +14 -0
  94. package/dist/{chunk-GGIFS34Z.js → chunk-EYZZW6SO.js} +5 -5
  95. package/dist/{chunk-43T5JGFB.js → chunk-EZEYKCI6.js} +1 -1
  96. package/dist/{chunk-DTJRIWFR.js → chunk-F27JJHNJ.js} +1 -1
  97. package/dist/{chunk-7ILNRFEV.js → chunk-FFIQPFUR.js} +1 -1
  98. package/dist/{chunk-TLRCTNUF.js → chunk-G4GVLK44.js} +1 -1
  99. package/dist/chunk-G5NQOV7L.js +6 -0
  100. package/dist/{chunk-JB3WKDD7.js → chunk-GGK27H67.js} +1 -1
  101. package/dist/{chunk-2YLG32JY.js → chunk-GISDIVFK.js} +1 -1
  102. package/dist/{chunk-FFASZGNZ.js → chunk-GNHLVGG5.js} +3 -3
  103. package/dist/{chunk-6FPDOEOX.js → chunk-GSKLHUQ6.js} +1 -1
  104. package/dist/{chunk-GY67Y5SN.js → chunk-H4HB5OET.js} +1 -1
  105. package/dist/{chunk-6L2UAAGT.js → chunk-HNBGLF4B.js} +1 -1
  106. package/dist/{chunk-YJSX6JAC.js → chunk-I2XGPTCN.js} +1 -1
  107. package/dist/{chunk-NHH2MXFU.js → chunk-I4VIEGCX.js} +1 -1
  108. package/dist/chunk-IKNG7EFQ.js +12 -0
  109. package/dist/{chunk-RQNZ2PVW.js → chunk-INNIWRVU.js} +4 -4
  110. package/dist/{chunk-J53OQCKC.js → chunk-IOJNSX4N.js} +7 -7
  111. package/dist/{chunk-JKZJVQIB.js → chunk-IPFWXM2Y.js} +6 -6
  112. package/dist/{chunk-K7PCBUDC.js → chunk-JRZ7PPVJ.js} +6 -6
  113. package/dist/chunk-JSGQWVYH.js +7 -0
  114. package/dist/{chunk-ZCV377AG.js → chunk-KEPJWZJZ.js} +3 -3
  115. package/dist/{chunk-JJP54OT4.js → chunk-KJ4CBZEQ.js} +1 -1
  116. package/dist/{chunk-XHMIJ7S3.js → chunk-KP2THXEI.js} +6 -6
  117. package/dist/{chunk-GKK7DR2H.js → chunk-LCJRTJXT.js} +9 -9
  118. package/dist/{chunk-Q3MNSM7W.js → chunk-LDE5IV2M.js} +4 -4
  119. package/dist/{chunk-MZ26SYFY.js → chunk-LEDUD23S.js} +1 -1
  120. package/dist/{chunk-7TONF2PM.js → chunk-LOFYSLC7.js} +9 -9
  121. package/dist/{chunk-AGLBDT7X.js → chunk-LTKXAHS3.js} +8 -8
  122. package/dist/{chunk-BMQCUHSD.js → chunk-M22B3Y5Y.js} +1 -1
  123. package/dist/{chunk-CLQFP42I.js → chunk-MBXLROCD.js} +1 -1
  124. package/dist/{chunk-KCV7BFKJ.js → chunk-MCDM2G4W.js} +1 -1
  125. package/dist/{chunk-R4Q5653D.js → chunk-MNXRAZJV.js} +20 -20
  126. package/dist/{chunk-VC42SDAC.js → chunk-MQU3PZUS.js} +1 -1
  127. package/dist/{chunk-TYK7VN73.js → chunk-MTX5LMJD.js} +17 -17
  128. package/dist/{chunk-OZAAIE4E.js → chunk-MVZRZTQP.js} +1 -1
  129. package/dist/{chunk-NNOA7AVG.js → chunk-MXH3UPCH.js} +5 -5
  130. package/dist/{chunk-ZLHPCPXS.js → chunk-N4DI5F74.js} +18 -18
  131. package/dist/{chunk-EIUCHQI2.js → chunk-N67QX3WW.js} +2 -2
  132. package/dist/{chunk-XQQNA246.js → chunk-O42AN43Q.js} +1 -1
  133. package/dist/{chunk-MLKY5ESV.js → chunk-O45WQK57.js} +1 -1
  134. package/dist/{chunk-RSIGTZMU.js → chunk-O4V5PEA3.js} +1 -1
  135. package/dist/{chunk-M554OMPA.js → chunk-O6JJIR4H.js} +1 -1
  136. package/dist/{chunk-APXQMZSV.js → chunk-O7DW2BKY.js} +26 -26
  137. package/dist/{chunk-UB5TLWZN.js → chunk-ON67HF5K.js} +8 -8
  138. package/dist/{chunk-KZQAGXME.js → chunk-ORIGX2H5.js} +4 -4
  139. package/dist/{chunk-JRBQLRAZ.js → chunk-OZBM2XFQ.js} +1 -1
  140. package/dist/{chunk-ZRZ5LOW3.js → chunk-PBWUEBJ5.js} +1 -1
  141. package/dist/chunk-PJQGYKN6.js +11 -0
  142. package/dist/chunk-PN65IIYN.js +8 -0
  143. package/dist/chunk-PUF75SMJ.js +1 -0
  144. package/dist/{chunk-5EX6XXUX.js → chunk-PXDDCD5X.js} +1 -1
  145. package/dist/{chunk-RKFEJ5CX.js → chunk-PXQG5EIH.js} +1 -1
  146. package/dist/{chunk-5VDT4762.js → chunk-QEKOEIOQ.js} +2 -2
  147. package/dist/{chunk-GMRZX2ET.js → chunk-QHOBK35Y.js} +1 -1
  148. package/dist/{chunk-UDKOJB2B.js → chunk-QL4757YL.js} +2 -2
  149. package/dist/{chunk-7VCAMNCH.js → chunk-QP4UPCXQ.js} +1 -1
  150. package/dist/chunk-QQPIQCT7.js +11 -0
  151. package/dist/{chunk-CL7SBEBQ.js → chunk-QYRMFGES.js} +1 -1
  152. package/dist/{chunk-3V6ZERBS.js → chunk-RBQWIHYD.js} +1 -1
  153. package/dist/chunk-RCPFUDPS.js +4 -0
  154. package/dist/chunk-RP3GUVAI.js +100 -0
  155. package/dist/chunk-RPYFOQM2.js +6 -0
  156. package/dist/chunk-SDI2UGAG.js +1 -0
  157. package/dist/{chunk-53KQSCMG.js → chunk-SDQIXE5M.js} +9 -9
  158. package/dist/{chunk-NW7Z3G7P.js → chunk-SF654IHN.js} +13 -13
  159. package/dist/{chunk-LPDI5NL6.js → chunk-SO6X4CII.js} +2 -2
  160. package/dist/{chunk-VP63OOO4.js → chunk-SOECV4V5.js} +3 -3
  161. package/dist/chunk-SWN3LSQX.js +12 -0
  162. package/dist/{chunk-TBPHW42V.js → chunk-TKJBZIHT.js} +1 -1
  163. package/dist/chunk-TMNAHOJ7.js +9 -0
  164. package/dist/{chunk-CBGKLHPB.js → chunk-TOVKWNI2.js} +6 -6
  165. package/dist/{chunk-PF5CKD4C.js → chunk-TVH7IZQ4.js} +2 -2
  166. package/dist/{chunk-LNARMEEZ.js → chunk-TXDA7TTP.js} +1 -1
  167. package/dist/{chunk-SKY2NBTQ.js → chunk-UBOP6HFI.js} +5 -5
  168. package/dist/{chunk-J7CIBRDS.js → chunk-UDRMZ22J.js} +1 -1
  169. package/dist/{chunk-IWJRSC7M.js → chunk-ULAGXDOL.js} +1 -1
  170. package/dist/{chunk-O6ABVKHU.js → chunk-ULXCDM7Y.js} +10 -10
  171. package/dist/{chunk-MVQMAIZM.js → chunk-UPQW4GCT.js} +1 -1
  172. package/dist/{chunk-E3RHEEA6.js → chunk-URERZUX5.js} +1 -1
  173. package/dist/{chunk-RPMWF42S.js → chunk-UTWJKSET.js} +5 -5
  174. package/dist/{chunk-SWO4VPOB.js → chunk-UWIZX3RK.js} +1 -1
  175. package/dist/{chunk-EQN65XOO.js → chunk-UYRITNQW.js} +4 -4
  176. package/dist/{chunk-LFVUDFVU.js → chunk-VJJMWJPZ.js} +1 -1
  177. package/dist/{chunk-QSW3YHPK.js → chunk-VKKK4WLS.js} +4 -4
  178. package/dist/{chunk-JJYAYMY7.js → chunk-VTFZ6W2D.js} +2 -2
  179. package/dist/chunk-W35N7SL3.js +8 -0
  180. package/dist/{chunk-IWEL2ZCV.js → chunk-W5CJD54C.js} +1 -1
  181. package/dist/{chunk-45XXERGA.js → chunk-W6SC3ZNO.js} +2 -2
  182. package/dist/{chunk-ZF545DXX.js → chunk-W6URVLQF.js} +14 -14
  183. package/dist/{chunk-R5EJJ6HC.js → chunk-WINNA7LS.js} +1 -1
  184. package/dist/chunk-WMEYNKXZ.js +22 -0
  185. package/dist/{chunk-DKQWFQAV.js → chunk-WN5HHHLO.js} +1 -1
  186. package/dist/chunk-WTTSB4SV.js +3 -0
  187. package/dist/{chunk-XZBQ3XXD.js → chunk-XDQGIW4X.js} +1 -1
  188. package/dist/{chunk-4UX6ET7G.js → chunk-XKDBYJHF.js} +1 -1
  189. package/dist/chunk-XLYCWGTK.js +4 -0
  190. package/dist/{chunk-HI6IE5HI.js → chunk-XO7URRTM.js} +1 -1
  191. package/dist/chunk-Y3R267FV.js +15 -0
  192. package/dist/chunk-YATWJMLM.js +29 -0
  193. package/dist/{chunk-Y23TGQFN.js → chunk-YCOYCPAH.js} +3 -3
  194. package/dist/chunk-YGSU5KCP.js +9 -0
  195. package/dist/{chunk-VMDBVXDJ.js → chunk-YJLLLO5R.js} +1 -1
  196. package/dist/chunk-YMYY5G6V.js +1 -0
  197. package/dist/{chunk-BDFZNLFQ.js → chunk-YWDEFPSW.js} +3 -3
  198. package/dist/{chunk-FMC2XNSP.js → chunk-ZNAVCHBV.js} +6 -6
  199. package/dist/{chunk-B7AHMB3U.js → chunk-ZURB2DCM.js} +1 -1
  200. package/dist/{chunk-NQJKANUP.js → chunk-ZUS7FXKE.js} +13 -13
  201. package/dist/{chunk-3V74SUZO.js → chunk-ZZOBG6GP.js} +17 -17
  202. package/dist/chunk-ZZVE64OI.js +2 -0
  203. package/dist/data/DataTable.js +1 -1
  204. package/dist/data/Kanban.js +1 -1
  205. package/dist/data/ListFooter.js +1 -1
  206. package/dist/data/ListLoadError.js +1 -1
  207. package/dist/data/Pagination.js +1 -1
  208. package/dist/file-intake/index.js +1 -1
  209. package/dist/format/index.js +1 -1
  210. package/dist/forms/AlignmentGrid.js +1 -1
  211. package/dist/forms/BorderInput.js +1 -1
  212. package/dist/forms/BrandAssetEditor.js +1 -1
  213. package/dist/forms/Button.js +1 -1
  214. package/dist/forms/Calendar.js +1 -1
  215. package/dist/forms/ColorPicker.js +1 -1
  216. package/dist/forms/ComposerAttachments.js +1 -1
  217. package/dist/forms/CornersInput.js +1 -1
  218. package/dist/forms/DatePicker.js +1 -1
  219. package/dist/forms/DateRangePicker.js +1 -1
  220. package/dist/forms/DateTimePicker.js +1 -1
  221. package/dist/forms/DisplayChips.js +1 -1
  222. package/dist/forms/FilePicker.js +1 -1
  223. package/dist/forms/FormErrorSummary.js +1 -1
  224. package/dist/forms/IconButton.js +1 -1
  225. package/dist/forms/IconPicker.js +1 -1
  226. package/dist/forms/ImageFocusPoint.js +1 -1
  227. package/dist/forms/InputNumber.js +1 -1
  228. package/dist/forms/LinkPicker.js +1 -1
  229. package/dist/forms/MediaLibrary.js +1 -1
  230. package/dist/forms/MediaUploadField.js +1 -1
  231. package/dist/forms/MediaUploadGrid.js +1 -1
  232. package/dist/forms/MediaUsedInList.js +1 -1
  233. package/dist/forms/NumericKeypad.js +1 -1
  234. package/dist/forms/PictureTiles.js +1 -1
  235. package/dist/forms/PositionInput.js +1 -1
  236. package/dist/forms/Segmented.js +1 -1
  237. package/dist/forms/Select.js +1 -1
  238. package/dist/forms/SidesInput.js +1 -1
  239. package/dist/forms/Slider.js +1 -1
  240. package/dist/forms/Snippet.js +1 -1
  241. package/dist/forms/SplitButton.js +1 -1
  242. package/dist/forms/TagInput.js +1 -1
  243. package/dist/forms/TextToolbar.js +1 -1
  244. package/dist/forms/TimePicker.js +1 -1
  245. package/dist/forms/WidthsBar.js +1 -1
  246. package/dist/forms/mediaLibraryMenu.js +1 -1
  247. package/dist/forms/mediaMoveItems.js +1 -1
  248. package/dist/forms/textAlign.js +1 -1
  249. package/dist/forms/useFileIntake.js +1 -1
  250. package/dist/hooks/useTheme.d.ts +1 -1
  251. package/dist/icons/efficient-glyphs.js +1 -1
  252. package/dist/icons/efficient-looks.js +1 -1
  253. package/dist/icons/efficient.js +1 -1
  254. package/dist/icons/index.js +1 -1
  255. package/dist/icons/looks/map.js +1 -1
  256. package/dist/icons/sets.js +1 -1
  257. package/dist/index.d.ts +2 -1
  258. package/dist/index.js +152 -152
  259. package/dist/locales/zh-Hans.js +1 -1
  260. package/dist/map/index.js +8 -8
  261. package/dist/page-tabs/index.js +5 -5
  262. package/dist/pdf/index.js +1 -1
  263. package/dist/shell/Accordion.js +1 -1
  264. package/dist/shell/AppUpdateBanner.js +1 -1
  265. package/dist/shell/Avatar.js +1 -1
  266. package/dist/shell/Banner.js +1 -1
  267. package/dist/shell/Breadcrumbs.js +1 -1
  268. package/dist/shell/BudgetBar.js +1 -1
  269. package/dist/shell/Card.js +1 -1
  270. package/dist/shell/ColoredBadge.js +1 -1
  271. package/dist/shell/ConfirmDialog.js +1 -1
  272. package/dist/shell/ContainerFillChart.js +1 -1
  273. package/dist/shell/ContextMenu.js +1 -1
  274. package/dist/shell/CountBadge.js +1 -1
  275. package/dist/shell/Dialog.d.ts +15 -2
  276. package/dist/shell/Dialog.js +1 -1
  277. package/dist/shell/Drawer.d.ts +5 -1
  278. package/dist/shell/Drawer.js +1 -1
  279. package/dist/shell/DropdownMenu.js +1 -1
  280. package/dist/shell/EditableGrid.js +1 -1
  281. package/dist/shell/EmptyState.js +1 -1
  282. package/dist/shell/FloatingBar.js +1 -1
  283. package/dist/shell/GlobalSearch.js +1 -1
  284. package/dist/shell/HelpCenter.js +1 -1
  285. package/dist/shell/IconRail.js +1 -1
  286. package/dist/shell/ImageLightbox.js +1 -1
  287. package/dist/shell/ItemCount.js +1 -1
  288. package/dist/shell/LanguageSelect.js +1 -1
  289. package/dist/shell/Markdown.js +1 -1
  290. package/dist/shell/MetricBar.js +1 -1
  291. package/dist/shell/MetricBarLegend.js +1 -1
  292. package/dist/shell/MilestoneTimeline.js +1 -1
  293. package/dist/shell/PageHeader.js +1 -1
  294. package/dist/shell/PopupMenu.js +1 -1
  295. package/dist/shell/ProductionTimeline.js +1 -1
  296. package/dist/shell/ResizeHandle.js +1 -1
  297. package/dist/shell/Result.js +1 -1
  298. package/dist/shell/SearchableSelect.js +1 -1
  299. package/dist/shell/SettingReset.js +1 -1
  300. package/dist/shell/SettingRow.js +1 -1
  301. package/dist/shell/SidebarLayout.js +1 -1
  302. package/dist/shell/SidebarNav.js +1 -1
  303. package/dist/shell/SortableList.js +1 -1
  304. package/dist/shell/Statistic.js +1 -1
  305. package/dist/shell/StatusBadge.js +1 -1
  306. package/dist/shell/Tabs.js +1 -1
  307. package/dist/shell/TimeAgo.js +1 -1
  308. package/dist/shell/TimelineTrack.js +1 -1
  309. package/dist/shell/Tooltip.js +1 -1
  310. package/dist/shell/TopNav.js +1 -1
  311. package/dist/shell/TransferProgress.js +1 -1
  312. package/dist/shell/Tree.js +1 -1
  313. package/dist/shell/discardGuard.d.ts +43 -0
  314. package/dist/shell/discardGuard.js +2 -0
  315. package/dist/shell/language.js +1 -1
  316. package/dist/shell/strings.d.ts +6 -0
  317. package/dist/shell/strings.js +1 -1
  318. package/dist/shell/toast.js +1 -1
  319. package/dist/telemetry/index.js +1 -1
  320. package/dist/templates/AuthScreen.js +1 -1
  321. package/dist/templates/ChatTemplate.js +1 -1
  322. package/dist/templates/CheckoutTemplate.js +1 -1
  323. package/dist/templates/DashboardTemplate.js +1 -1
  324. package/dist/templates/DataTablePage.js +1 -1
  325. package/dist/templates/EmailTemplate.js +1 -1
  326. package/dist/templates/ErrorBoundary.d.ts +1 -1
  327. package/dist/templates/ErrorBoundary.js +1 -1
  328. package/dist/templates/ErrorPage.js +1 -1
  329. package/dist/templates/FormLayoutPage.js +1 -1
  330. package/dist/templates/GalleryTemplate.js +1 -1
  331. package/dist/ui/index.d.ts +1 -0
  332. package/dist/ui/index.js +1 -1
  333. package/dist/ui.css +5 -0
  334. package/dist/utils/glass.d.ts +4 -2
  335. package/dist/utils/glass.js +1 -1
  336. package/dist/version.js +1 -1
  337. package/package.json +1 -1
  338. package/dist/Calculator-N2NLSDTW.js +0 -29
  339. package/dist/CurrencyConverter-HW5HW3RH.js +0 -21
  340. package/dist/Documents-JTURYN4D.js +0 -52
  341. package/dist/Files-GP2LAGME.js +0 -88
  342. package/dist/Notepad-OV66ANUO.js +0 -24
  343. package/dist/Sidebar-4OI4LP6G.js +0 -44
  344. package/dist/Spreadsheet-FU5QIZA3.js +0 -37
  345. package/dist/Stock-FEVMKWMS.js +0 -16
  346. package/dist/chunk-2SLQD57V.js +0 -6
  347. package/dist/chunk-44PGFMSX.js +0 -8
  348. package/dist/chunk-4AJRHTTB.js +0 -1
  349. package/dist/chunk-5GUBNCTP.js +0 -1
  350. package/dist/chunk-6B4F5DWV.js +0 -4
  351. package/dist/chunk-A3VJ4PRU.js +0 -11
  352. package/dist/chunk-ACVKU6YW.js +0 -7
  353. package/dist/chunk-AG2OLB3E.js +0 -15
  354. package/dist/chunk-AKVB5TQD.js +0 -29
  355. package/dist/chunk-ANTH2FBS.js +0 -100
  356. package/dist/chunk-AXL7VTNM.js +0 -11
  357. package/dist/chunk-BCDG4N6L.js +0 -6
  358. package/dist/chunk-DY2M6BIG.js +0 -12
  359. package/dist/chunk-F7A6K3D5.js +0 -9
  360. package/dist/chunk-GZYTCHPX.js +0 -8
  361. package/dist/chunk-IGEFUHYE.js +0 -12
  362. package/dist/chunk-K64JRGNE.js +0 -6
  363. package/dist/chunk-KE5U4KKG.js +0 -4
  364. package/dist/chunk-N6VP75F5.js +0 -3
  365. package/dist/chunk-OPB3I4JH.js +0 -8
  366. package/dist/chunk-PYQ6DD3F.js +0 -1
  367. package/dist/chunk-QASKQDUR.js +0 -22
  368. package/dist/chunk-QMUAY24U.js +0 -8
  369. package/dist/chunk-RUTUVS4H.js +0 -1
  370. package/dist/chunk-SKETTGCJ.js +0 -2
  371. package/dist/chunk-UP442DPT.js +0 -9
  372. package/dist/chunk-VO3ZB7C6.js +0 -14
  373. package/dist/chunk-W244OMOU.js +0 -7
  374. package/dist/chunk-X2PZMXDP.js +0 -1
  375. package/dist/chunk-YVTKTWZX.js +0 -9
  376. package/dist/chunk-ZN2BFSQR.js +0 -2
package/dist/ai/index.js CHANGED
@@ -1,60 +1,60 @@
1
1
  "use client";
2
- import{StepChain as e,StepChainItem as t}from"../chunk-P5YFQ4IQ.js";import{Markdown as n}from"../chunk-CLQFP42I.js";import{Divider as a}from"../chunk-DFOFEBYX.js";import{Textarea_default as r}from"../chunk-PB7G6CJ7.js";import"../chunk-UJUTS6LJ.js";import"../chunk-PJPK2ADX.js";import{useContextMenu as o,ContextMenu as s}from"../chunk-45XXERGA.js";import{Banner as l}from"../chunk-6FPDOEOX.js";import"../chunk-BZPPDYEE.js";import{Input_default as i}from"../chunk-MAMWQCJ6.js";import"../chunk-AYZY3YNC.js";import{AttachButton as c,AttachmentDropZone as d}from"../chunk-GGIFS34Z.js";import{CloseGlyph as p}from"../chunk-B7HW6XZD.js";import"../chunk-EQN65XOO.js";import{IconButton_default as u}from"../chunk-RUTUVS4H.js";import{useFileIntake as m,humanSize as h,FileIntakeAlert as f}from"../chunk-P6LB3I3D.js";import{parseChartSpec as g}from"../chunk-CR7T435F.js";import{SpecChart as y}from"../chunk-RZR3OAKV.js";import{formatBytes as b}from"../chunk-X2S2XDZI.js";import"../chunk-5OTS2G3M.js";import"../chunk-36BRD5J3.js";import"../chunk-QASKQDUR.js";import"../chunk-RQNZ2PVW.js";import"../chunk-CK2YOGUS.js";import"../chunk-IWEL2ZCV.js";import"../chunk-VFC6QUEN.js";import"../chunk-F7A6K3D5.js";import"../chunk-465RRWBY.js";import{ChartSkeleton as v}from"../chunk-BMQCUHSD.js";import"../chunk-CNYAHYE6.js";import"../chunk-MH6DI6YY.js";import"../chunk-5QFPTDQF.js";import"../chunk-URHGHXDN.js";import"../chunk-LNARMEEZ.js";import{Button_default as x}from"../chunk-NHH2MXFU.js";import"../chunk-UQYNPYF4.js";import{Icon as w}from"../chunk-KKSVRIMP.js";import"../chunk-J75ZT2JQ.js";import"../chunk-HL6JSDN3.js";import{SpinnerRing as k}from"../chunk-R2VKEMZH.js";import"../chunk-MRJKZWWV.js";import"../chunk-OZAAIE4E.js";import"../chunk-BCDG4N6L.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import"../chunk-D65T4H6J.js";import"../chunk-TLRCTNUF.js";import"../chunk-DTJRIWFR.js";import"../chunk-OPB3I4JH.js";import"../chunk-7VCAMNCH.js";import"../chunk-2JWPNR2U.js";import"../chunk-MAFUXCPZ.js";import"../chunk-TZFACUMR.js";import"../chunk-TWVUQUUD.js";import{useShellStrings as N}from"../chunk-X2PZMXDP.js";import"../chunk-C3QOHMR6.js";import{useRef as A,Fragment as C,useState as j,useEffect as S,useId as $,useCallback as O,useMemo as R}from"react";import{isToolUIPart as T,getToolName as _,DefaultChatTransport as I,lastAssistantMessageIsCompleteWithApprovalResponses as M}from"ai";import{jsx as D,jsxs as F,Fragment as E}from"react/jsx-runtime";import{useChat as P}from"@ai-sdk/react";function B(e){if(!T(e))return null;const t=e;return{toolName:_(e),toolCallId:t.toolCallId,state:t.state,input:t.input,output:t.output,errorText:t.errorText,approvalId:t.approval?.id,approved:t.approval?.approved}}function z(e){const t=/* @__PURE__ */new Map;for(const n of e.parts){if("data-tool-summary"!==n.type)continue;const e=n.data;e&&"string"==typeof e.tool_call_id&&Array.isArray(e.rows)&&e.rows.length>0&&t.set(e.tool_call_id,e)}return t}function L(e){const t=/* @__PURE__ */new Map;for(const n of e.parts){if("data-file"!==n.type)continue;const e=n.data;e&&"string"==typeof e.id&&"string"==typeof e.filename&&t.set(e.id,e)}return[...t.values()]}function U(e){return e.parts.map(e=>"text"===e.type?e.text:"").join("")}var H="efficient-attachment:";function J(e){return{type:"file",mediaType:e.content_type,filename:e.filename,url:`${H}${e.id}`,providerMetadata:{efficient:{size:e.size}}}}function W(e){const t=[];for(const n of e.parts){if("file"!==n.type||!n.url.startsWith(H))continue;const e=n.providerMetadata?.efficient?.size;t.push({id:n.url.slice(21),filename:n.filename??"",content_type:n.mediaType,size:"number"==typeof e?e:0})}return t}var Y=/* @__PURE__ */new Set(["data-conversation","data-plan","data-followups","data-tool-summary","data-error","data-file","data-approval","data-busy"]);function Q(e,t){const n=e[e.length-1];if(!n)throw new Error("assistant chat: no message to send");if("user"===n.role){const e=U(n).trim();if(!e)throw new Error("assistant chat: empty message");const a=W(n).map(e=>e.id);return{conversation_id:t,text:e,approvals:[],...a.length>0?{attachments:a}:{}}}const a=function(e){const t=[];for(const n of e.parts){if(!T(n))continue;const e=n;if("approval-responded"!==e.state||!e.approval||"boolean"!=typeof e.approval.approved)continue;const a={approval_id:e.approval.id,approved:e.approval.approved};e.approval.reason&&(a.reason=e.approval.reason),t.push(a)}return t}(n);if(0===a.length)throw new Error("assistant chat: no approval decision to send");return{conversation_id:t,text:null,approvals:a}}function q(e,t){const n=t.trim();if(!n)return!1;const a=n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return new RegExp(`(^|[^\\p{L}\\p{N}_])${a}(?![\\p{L}\\p{N}_])`,"iu").test(e)}function Z(e,t){return q(e,t)?e:`${t.trim()} ${e.trimStart()}`}function X(e){const t=e.map(e=>e.name).filter(Boolean);return t.length<=1?t[0]??"":`${t.slice(0,-1).join(", ")} and ${t[t.length-1]}`}var G=/* @__PURE__ */new Set(["proposed","approved","running"]);function K(e){return G.has(e.status)}function V(e){const t=[];for(const n of e.parts)"data-plan"===n.type&&t.push(n.data);return t}function ee(e){const t=/* @__PURE__ */new Map;for(const n of e)for(const e of V(n))t.delete(e.id),t.set(e.id,e);return t}function te(e){const t=[...ee(e).values()],n=t[t.length-1];if(!n)return null;if(K(n))return n;const a=e[e.length-1];return a&&"assistant"===a.role&&V(a).some(e=>e.id===n.id)?n:null}function ne(e){const t={};return e.source&&e.source!==e.role&&(t.source=e.source),e.author&&(t.author=e.author),e.asked_by&&(t.askedBy=e.asked_by),"assistant"===e.role&&e.run_id&&(t.run_id=e.run_id,t.rating=e.rating??null),Object.keys(t).length>0?{metadata:t}:{}}function ae(e){const t=e.messages.filter(e=>e.text).map(e=>({id:e.id,role:e.role,parts:[...(e.attachments??[]).map(J),{type:"text",text:e.text},...(e.files??[]).map(e=>({type:"data-file",id:`file-${e.id}`,data:e}))],...ne(e)})),n=(e.plans??[]).filter(K);return(e.pending_approvals.length>0||n.length>0)&&t.push({id:`pending-approvals-${e.id}`,role:"assistant",parts:[...n.map(e=>({type:"data-plan",id:e.id,data:e})),...e.pending_approvals.map(e=>({type:`tool-${e.tool_name}`,toolCallId:e.tool_call_id??e.approval_id,state:"approval-requested",input:e.input,approval:{id:e.approval_id}}))]}),t}function re(e,t){const n=e?.message?.trim();if(!n)return t;if(n.startsWith("{")){try{const e=JSON.parse(n);for(const t of["detail","errorText","message","title","error"]){const n=e[t];if("string"==typeof n&&n.trim())return n.trim()}}catch{return t}return t}return n.startsWith("<")||n.length>400?t:n}var oe=/^(load failed|failed to fetch|network ?error( when attempting to fetch resource)?|(the )?network connection was lost|error in input stream|terminated)\.?$/i;function se(e){return!(!e||"AbortError"===e.name)&&oe.test(e.message?.trim()??"")}var le=/* @__PURE__ */new Set(["budget_reached","not_permitted"]);function ie(e,t,n){return se(e)?{text:n.connectionDropped,retryable:!0}:{text:re(e,n.genericError),retryable:!(t&&le.has(t))}}function ce(e){const t=e[e.length-1];if(!t)return!1;if("user"===t.role)return""!==U(t).trim();const n=e[e.length-2];return!(!n||"user"!==n.role||!U(n).trim())&&!t.parts.some(e=>void 0!==B(e)?.approvalId)}function de({labels:e,placeholder:t,busy:n,focusWhen:a,onSend:o,onStop:s,onNewChat:l,actions:i,attachments:g,people:y}){const[b,v]=j(""),C=A(null),$=function(e){const[t,n]=j([]),a=A(0),r=A(!0);S(()=>()=>{r.current=!1},[]);const o=e?.upload,s=O(e=>{if(o)for(const t of e){const e=a.current++;n(n=>[...n,{key:e,name:t.name,size:t.size}]),o(t).then(t=>{r.current&&n(n=>n.map(n=>n.key===e?{...n,attachment:t}:n))},t=>{const a=t instanceof Error&&t.message?t.message:String(t);r.current&&n(t=>t.map(t=>t.key===e?{...t,error:a}:t))})}},[o]),l=t.some(e=>!e.attachment&&!e.error),i=t.flatMap(e=>e.attachment?[e.attachment]:[]);return{pending:t,add:s,remove:e=>n(t=>t.filter(t=>t.key!==e)),clear:()=>n([]),uploading:l,ready:i}}(g),R=N().files,T=m({accept:g?.accept,maxSizeBytes:g?.maxSizeBytes,maxFiles:g?.maxFiles??5,acceptHint:g?.acceptHint,currentCount:$.pending.length,disabled:!g,onAccept:$.add});S(()=>{a&&C.current?.focus()},[a]);const _=n||$.uploading||!b.trim(),I=()=>{_||(o(b,$.ready),v(""),$.clear(),T.clearRejections())},M=!!y&&(q(b,e.assistantMention)||$.pending.length>0),E=y?/* @__PURE__ */F("div",{className:"flex items-center gap-2 px-3 pt-2 text-xs",children:[
3
- /* @__PURE__ */D("span",{role:"status",className:"min-w-0 flex-1 truncate "+(M?"text-accent-text":"text-ink-faint"),children:M?e.toAssistant:e.toPeople.replace("{names}",y)}),!M&&/* @__PURE__ */D(x,{type:"button",size:"sm",variant:"ghost",onClick:()=>{v(t=>Z(t,e.assistantMention)),C.current?.focus()},children:e.askAssistant})]}):null,P=/* @__PURE__ */F("form",{className:("flex items-end gap-2 p-3 "+(g||y?"":"border-t border-gray-200")).trim(),onSubmit:e=>{e.preventDefault(),I()},children:[l&&/* @__PURE__ */D(u,{type:"button",variant:"ghost","aria-label":e.newChat,title:e.newChat,onClick:l,children:/* @__PURE__ */D(w,{name:"add"})}),g&&/* @__PURE__ */D(c,{variant:"icon",label:e.attach,onClick:T.open,disabled:n}),
4
- /* @__PURE__ */D("div",{className:"min-w-0 flex-1",children:/* @__PURE__ */D(r,{ref:C,"aria-label":e.inputLabel,placeholder:t,rows:1,autoGrow:!0,value:b,onChange:e=>v(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||e.nativeEvent.isComposing||(e.preventDefault(),I())},className:"max-h-32"})}),i?.map(e=>e.icon?/* @__PURE__ */D(u,{type:"button",variant:"ghost","aria-label":e.label,title:e.label,disabled:!b.trim(),onClick:()=>e.onSelect(b.trim()),children:/* @__PURE__ */D(w,{name:e.icon})},e.key):/* @__PURE__ */D(x,{type:"button",variant:"ghost",disabled:!b.trim(),onClick:()=>e.onSelect(b.trim()),children:e.label},e.key)),/* @__PURE__ */D(x,n?{type:"button",variant:"secondary",onClick:s,children:e.stop}:{type:"submit",disabled:_,children:e.send})]});return g?/* @__PURE__ */F(d,{intake:T,className:"border-t border-gray-200",children:[E,$.pending.length>0&&/* @__PURE__ */D("ul",{className:"flex flex-wrap gap-2 px-3 pt-3",children:$.pending.map(t=>/* @__PURE__ */F("li",{className:"flex max-w-full items-center gap-2 rounded-md border py-1 pl-2 pr-1 text-xs "+(t.error?"border-red-200 bg-red-50 text-red-700":"border-gray-200 bg-gray-50 text-gray-700"),children:[t.attachment||t.error?/* @__PURE__ */D(w,{name:"page",size:14,"aria-hidden":"true"}):/* @__PURE__ */D("span",{role:"status","aria-label":e.attaching,className:"inline-flex",children:/* @__PURE__ */D(k,{className:"h-3 w-3"})}),
5
- /* @__PURE__ */D("span",{className:"min-w-0 truncate",title:t.error??t.name,children:t.name}),
6
- /* @__PURE__ */D("span",{className:"shrink-0 tabular-nums text-gray-400",children:h(t.size,R)}),
7
- /* @__PURE__ */D("button",{type:"button",onClick:()=>$.remove(t.key),"aria-label":e.removeAttachment.replace("{name}",t.name),className:"shrink-0 rounded p-0.5 text-gray-400 hover:bg-gray-200 hover:text-gray-600",children:/* @__PURE__ */D(p,{className:"h-3.5 w-3.5"})})]},t.key))}),$.pending.some(e=>e.error)&&/* @__PURE__ */D("ul",{role:"alert",className:"flex flex-col gap-0.5 px-3 pt-1",children:$.pending.flatMap(e=>e.error?[/* @__PURE__ */D("li",{className:"text-xs text-red-600",children:`${e.name}: ${e.error}`},e.key)]:[])}),
8
- /* @__PURE__ */D(f,{rejections:T.rejections,className:"px-3 pt-1"}),P]}):E?/* @__PURE__ */F("div",{className:"border-t border-line",children:[E,P]}):P}function pe(e){const t=e.replace(/^tool-/,"").replace(/([a-z0-9])([A-Z])/g,"$1 $2").replace(/[_\-.]+/g," ").trim().toLowerCase();return t?t.charAt(0).toUpperCase()+t.slice(1):e}var ue={propose_plan:{label:"Plan the changes",running:"Planning the changes",done:"Planned the changes"}};function me(e,t){const n=t?.[e]??ue[e];return"string"==typeof n?{label:n}:n??{label:pe(e)}}function he(e,t){return me(e,t).label}function fe(e){return e&&"object"==typeof e&&!Array.isArray(e)?e:{}}function ge(e,t,n){const a=me(e,n).describe;if(!a)return"";try{return a(fe(t))?.trim()??""}catch{return""}}function ye(e,t){return null==e?"":"boolean"==typeof e?e?"Yes":"No":"object"!=typeof e?String(e):Array.isArray(e)?e.map(e=>ye(e,t+1)).filter(Boolean).join(", "):t>=3?"…":Object.entries(e).map(([e,n])=>{const a=ye(n,t+1);return a?`${pe(e)}: ${a}`:""}).filter(Boolean).join("; ")}function be(e){const t=fe(e),n=[];for(const[e,a]of Object.entries(t)){if(e.startsWith("_"))continue;const t=ye(a,0);t&&n.push({label:pe(e),value:t})}return 0===n.length&&null!=e&&"object"!=typeof e&&n.push({label:"Value",value:ye(e,0)}),n}var ve={proposed:"planProposed",approved:"planApproved",running:"planRunning",completed:"planCompleted",failed:"planFailed",denied:"planDenied",expired:"planExpired"},xe={pending:"pending",running:"active",done:"complete",failed:"failed",skipped:"skipped"};function we(e,t){const n=ge(e.tool_name,e.input,t);return`${he(e.tool_name,t)}${n?` ${n}`:""}`}function ke(e,t){return e.replace(/\{(\w+)\}/g,(e,n)=>n in t?String(t[n]):e)}function Ne(e,t){const n=e.steps.filter(e=>"done"===e.status).length;return`${ke(t.planSummary,{done:n,total:e.steps.length})} · ${t[ve[e.status]]}`}function Ae({plan:n,labels:a}){/* @__PURE__ */
9
- return D("section",{"aria-label":a.plan,className:"border-t border-gray-200 bg-white px-3 py-2",children:/* @__PURE__ */D(e,{summary:Ne(n,a),busy:K(n),label:a.plan,children:n.steps.map(e=>/* @__PURE__ */D(t,{label:e.title,status:xe[e.status],description:"done"!==e.status&&e.result_summary?e.result_summary:void 0},e.id))})})}function Ce({approvalId:e,plan:t,input:n,labels:a,toolLabels:r,onApprove:o}){const s=function(e,t){if(e)return e.steps.map(e=>({key:e.id,title:e.title,tool_name:e.tool_name,input:e.input}));const n=t?.steps;return Array.isArray(n)?n.map((e,t)=>{const n=e??{};return{key:String(t),title:"string"==typeof n.title?n.title:"",tool_name:"string"==typeof n.tool?n.tool:"",input:n.args}}):[]}(t,n),l=ke(a.planApprovalHeading,{count:s.length});/* @__PURE__ */
10
- return F("div",{role:"group","aria-label":l,className:"rounded-lg border border-amber-300 bg-amber-50 p-3 text-sm",children:[
11
- /* @__PURE__ */D("div",{className:"font-medium text-gray-900",children:l}),
12
- /* @__PURE__ */D("ol",{className:"mt-2 list-decimal space-y-2 pl-5",children:s.map(e=>{const t=be(e.input);/* @__PURE__ */
13
- return F("li",{children:[
14
- /* @__PURE__ */D("div",{className:"font-medium text-gray-900",children:we(e,r)}),e.title&&/* @__PURE__ */D("div",{className:"text-xs text-gray-600",children:e.title}),t.length>0&&/* @__PURE__ */D("dl",{className:"mt-1 grid grid-cols-[max-content_1fr] gap-x-3 gap-y-1 text-xs",children:t.map(e=>/* @__PURE__ */F("div",{className:"contents",children:[
15
- /* @__PURE__ */D("dt",{className:"text-gray-500",children:e.label}),
16
- /* @__PURE__ */D("dd",{className:"min-w-0 break-words text-gray-800",children:e.value})]},e.label))})]},e.key)})}),
17
- /* @__PURE__ */F("div",{className:"mt-3 flex gap-2",children:[
18
- /* @__PURE__ */D(x,{size:"sm",onClick:()=>o(e,!0),children:a.approvePlan}),
19
- /* @__PURE__ */D(x,{size:"sm",variant:"secondary",onClick:()=>o(e,!1),children:a.deny})]})]})}function je({questions:e,label:t,onAsk:n}){return 0===e.length?null:/* @__PURE__ */D("div",{role:"group","aria-label":t,className:"flex flex-wrap gap-2 pl-1",children:e.map(e=>/* @__PURE__ */D(x,{size:"sm",variant:"secondary",onClick:()=>n(e),children:e},e))})}function Se({initial:e,labels:t,onRate:n}){const[a,r]=j(e??null),[o,s]=j(!1),[l,c]=j(""),[d,p]=j(!1),[m,h]=j(!1),[f,g]=j(!1),y=async e=>{const t=a;r(e),h(!1),g(!0);try{return await n(e),!0}catch{return r(t),h(!0),!1}finally{g(!1)}},b=e=>{const n="up"===e?t.rateUp:t.rateDown;/* @__PURE__ */
20
- return D(u,{size:"sm","aria-label":n,title:n,"aria-pressed":a?.verdict===e,disabled:f,onClick:()=>{(async e=>{if(p(!1),a?.verdict===e)return s(!1),void await y(null);const t=await y({verdict:e,note:""});s(t&&"down"===e),c("")})(e)},children:/* @__PURE__ */D(w,{name:"hand-thumb-up",className:"down"===e?"h-3.5 w-3.5 rotate-180":"h-3.5 w-3.5"})})};/* @__PURE__ */
21
- return F("div",{role:"group","aria-label":t.rateAnswer,className:"flex min-w-0 flex-1 flex-col gap-1",children:[
22
- /* @__PURE__ */F("div",{className:"flex items-center gap-1",children:[b("up"),b("down"),d&&/* @__PURE__ */D("span",{role:"status",className:"px-1 text-xs text-gray-500",children:t.rateThanks}),m&&/* @__PURE__ */D("span",{role:"alert",className:"px-1 text-xs text-red-600",children:t.rateFailed})]}),o&&/* @__PURE__ */F("form",{className:"flex items-center gap-2",onSubmit:e=>{(async e=>{e.preventDefault();const t=l.trim();t&&!await y({verdict:"down",note:t})||(s(!1),p(Boolean(t)))})(e)},children:[
23
- /* @__PURE__ */D("div",{className:"min-w-0 flex-1",children:/* @__PURE__ */D(i,{size:"sm","aria-label":t.rateNote,placeholder:t.rateNote,maxLength:500,value:l,onChange:e=>c(e.target.value),autoFocus:!0})}),
24
- /* @__PURE__ */D(x,{type:"submit",size:"sm",variant:"secondary",disabled:f||!l.trim(),children:t.rateNoteSend}),
25
- /* @__PURE__ */D(x,{type:"button",size:"sm",variant:"ghost",onClick:()=>s(!1),children:t.rateNoteSkip})]})]})}function $e({rows:e,label:t}){/* @__PURE__ */
26
- return D("dl",{"aria-label":t,className:"grid grid-cols-[max-content_1fr] gap-x-3 gap-y-1 text-xs",children:e.map((e,t)=>/* @__PURE__ */F("div",{className:"contents",children:[
27
- /* @__PURE__ */D("dt",{className:"text-gray-500",children:e.label}),
28
- /* @__PURE__ */D("dd",{className:"min-w-0 break-words "+(e.warn?"font-medium text-amber-700":"text-gray-800"),children:e.value})]},`${e.label}-${t}`))})}function Oe({tool:e,toolLabels:t,labels:n,onApprove:a}){const r=ge(e.toolName,e.input,t),o=be(e.input),s=e.approvalId,l=`${n.approvalNeeded}: ${he(e.toolName,t)}${r?` ${r}`:""}`;/* @__PURE__ */
29
- return F("div",{role:"group","aria-label":l,className:"rounded-lg border border-amber-300 bg-amber-50 p-3 text-sm",children:[
30
- /* @__PURE__ */D("div",{className:"font-medium text-gray-900",children:l}),o.length>0&&/* @__PURE__ */D("div",{className:"mt-2",children:/* @__PURE__ */D($e,{rows:o})}),
31
- /* @__PURE__ */F("div",{className:"mt-3 flex gap-2",children:[
32
- /* @__PURE__ */D(x,{size:"sm",onClick:()=>a(s,!0),children:n.approve}),
33
- /* @__PURE__ */D(x,{size:"sm",variant:"secondary",onClick:()=>a(s,!1),children:n.deny})]})]})}var Re={running:"active",done:"complete",failed:"failed",declined:"stopped",waiting:"waiting"};function Te(e,t,n){return function(e,t,n,a,r,o){const s=me(n,r),l=ge(n,a,r),i=(e,t)=>({kind:e,base:t,subject:l,text:l?`${t} ${l}`:t});switch(e){case"output-available":return i("done",s.done??s.label);case"output-error":return i("failed",`${s.label} ${o.toolFailed}`);case"output-denied":return i("declined",`${s.label} ${o.toolDeclined}`);case"approval-requested":return i("waiting",`${o.approvalNeeded}: ${s.label}`);case"approval-responded":return!1===t?i("declined",`${s.label} — ${o.declined}`):i("running",`${o.approved}: ${s.running??s.label}`);default:return i("running",s.running??s.label)}}(e.state,e.approved,e.toolName,e.input,t,n)}function _e({tool:e,summary:n,toolLabels:a,labels:r,showOutput:o}){const s=Te(e,a,r),l=be(e.input),i=o&&"output-available"===e.state?be(e.output):[],c=o&&"output-error"===e.state&&e.errorText?e.errorText:"",d="output-available"===e.state&&n?n.rows:[];let p=null;return(l.length>0||i.length>0||c)&&(p=/* @__PURE__ */F("details",{className:d.length>0?"mt-1":void 0,children:[
34
- /* @__PURE__ */D("summary",{className:"cursor-pointer select-none",children:r.details}),
35
- /* @__PURE__ */F("div",{className:"mt-1 space-y-2",children:[l.length>0&&/* @__PURE__ */D($e,{rows:l}),i.length>0&&/* @__PURE__ */D($e,{rows:i}),c&&/* @__PURE__ */D("div",{className:"text-red-600",children:c})]})]})),/* @__PURE__ */F(t,{label:s.base,description:s.subject||void 0,status:Re[s.kind],children:[d.length>0&&/* @__PURE__ */D($e,{rows:d,label:r.stepSources}),p]})}function Ie(e,t){return e>0&&t>=100?e/(t/1e3):null}function Me(e){return Math.ceil(e.length/4)}var De=(e,t)=>e.replace(/\{(\w+)\}/g,(e,n)=>t[n]??e),Fe=e=>Math.round(e).toLocaleString();function Ee(e,t){const n=Ie(e.output_tokens,e.generation_ms);return null===n?De(t.replyTokens,{tokens:Fe(e.output_tokens)}):De(t.replyStats,{tokens:Fe(e.output_tokens),seconds:(e.generation_ms/1e3).toFixed(1),rate:Fe(n)})}function Pe(e,t,n){const a=t>=1e3?Ie(Me(e),t):null;return null===a?n.streaming:De(n.streamingRate,{rate:Fe(a)})}function Be(e){if("chart"!==e.lang)return null;if(!e.closed)/* @__PURE__ */return D(v,{height:200});const t=g(e.code);return t?/* @__PURE__ */D(y,{spec:t}):null}function ze(e,t){return"approval-responded"===e.state&&t.some(t=>{return t.toolName===e.toolName&&"approval-requested"!==t.state&&(t.toolCallId===e.toolCallId||(n=t.input,a=e.input,JSON.stringify(n)===JSON.stringify(a)));var n,a})}function Le(e,t,n,a){const r=e.flatMap(e=>"tool"===e.kind?[Te(e.tool,n,a)]:[]);if(t){const e=r.find(e=>"running"===e.kind);return e?e.base:a.working}const o=[...new Set(r.map(e=>e.base))];return o.length>0?o.join(" · "):a.reasoning}function Ue({message:e,live:t,labels:n}){const a=U(e),r=a.length>0,o=A(null),[s,l]=j(0);S(()=>{if(!t)return;null===o.current&&(o.current=performance.now());const e=setInterval(()=>l(performance.now()-(o.current??performance.now())),500);return()=>clearInterval(e)},[t]);const i=e.metadata?.usage;let c=null;return t?c=r?Pe(a,s,n):null:i&&(c=Ee(i,n)),c?/* @__PURE__ */D("div",{className:"px-1 text-xs leading-6 tabular-nums text-gray-500",children:c}):null}function He({files:e,labels:t,onOpen:n}){const a="flex max-w-full items-center gap-2 rounded-md border border-gray-200 bg-white px-2 py-1 text-xs text-gray-700";/* @__PURE__ */
36
- return D("ul",{className:"flex max-w-[85%] flex-wrap justify-end gap-2",children:e.map(e=>{const r=/* @__PURE__ */F(E,{children:[
37
- /* @__PURE__ */D(w,{name:"page",size:14,"aria-hidden":"true",className:"shrink-0"}),
38
- /* @__PURE__ */D("span",{className:"min-w-0 truncate",children:e.filename})]});/* @__PURE__ */
39
- return D("li",{className:"max-w-full",children:n?/* @__PURE__ */D("button",{type:"button",className:`${a} hover:bg-gray-50`,title:t.openAttachment.replace("{name}",e.filename),onClick:()=>n(e),children:r}):/* @__PURE__ */D("span",{className:a,children:r})},e.id)})})}function Je(e){return["xlsx"===e.kind?"Excel":String(e.kind||"").toUpperCase(),b(e.size)].filter(Boolean).join(" · ")}function We({file:e,labels:t,onOpen:n}){const a=/* @__PURE__ */F(E,{children:["pdf"===e.kind?/* @__PURE__ */D(w,{name:"document",size:20,className:"shrink-0"}):/* @__PURE__ */D(w,{name:"table",size:20,className:"shrink-0"}),
40
- /* @__PURE__ */F("span",{className:"min-w-0 flex-1",children:[
41
- /* @__PURE__ */D("span",{className:"block truncate text-sm font-medium text-gray-800",children:e.filename}),
42
- /* @__PURE__ */D("span",{className:"block text-xs text-gray-500",children:Je(e)})]})]}),r="flex w-full max-w-sm items-center gap-2 rounded-lg border border-gray-200 bg-gray-50 px-3 py-2 text-left";return n?/* @__PURE__ */D("button",{type:"button",className:`${r} hover:border-blue-300 hover:bg-blue-50 focus:outline-none focus-visible:ring-2 focus-visible:ring-blue-500`,"data-assistant-file":e.id,"aria-label":t.openFile.replace("{name}",e.filename),onClick:()=>n(e),children:a}):/* @__PURE__ */D("div",{className:r,"data-assistant-file":e.id,children:a})}function Ye({message:e,labels:t,showCopy:n,actions:r,answer:o}){const[s,l]=j(!1);S(()=>{if(!s)return;const e=setTimeout(()=>l(!1),1500);return()=>clearTimeout(e)},[s]);const i=U(e);if(!i.trim()||!n&&!r?.length)return null;const c=async()=>{const e=Array.from(o.current?.querySelectorAll("[data-answer-text]")??[]);l(await async function(e,t){const n="undefined"!=typeof navigator?navigator.clipboard:void 0;if(!n)return!1;try{return t&&"undefined"!=typeof ClipboardItem&&n.write?(await n.write([new ClipboardItem({"text/html":new Blob([t],{type:"text/html"}),"text/plain":new Blob([e],{type:"text/plain"})})]),!0):(await n.writeText(e),!0)}catch{return!1}}(i,function(e){return e.map(e=>{const t=e.cloneNode(!0);return t.querySelectorAll("button, [data-chat-chrome]").forEach(e=>e.remove()),t.querySelectorAll("[class]").forEach(e=>e.removeAttribute("class")),t.removeAttribute("class"),t.querySelectorAll("table").forEach(e=>e.setAttribute("style","border-collapse:collapse")),t.querySelectorAll("th, td").forEach(e=>e.setAttribute("style","border:1px solid #d0d5dd;padding:4px 8px;text-align:left;vertical-align:top")),t.innerHTML.trim()}).filter(Boolean).join("\n")}(e)))},d=[];return n&&d.push(
43
- /* @__PURE__ */D(x,{size:"sm",variant:"ghost",leftIcon:/* @__PURE__ */D(w,{name:s?"check":"copy",look:"mini",className:"h-3.5 w-3.5","aria-hidden":"true"}),onClick:()=>{c()},children:s?t.copied:t.copyAnswer},"copy")),r?.forEach(t=>d.push(
44
- /* @__PURE__ */D(x,{size:"sm",variant:"ghost",leftIcon:t.icon?/* @__PURE__ */D(w,{name:t.icon,look:"mini",className:"h-3.5 w-3.5","aria-hidden":"true"}):void 0,onClick:()=>t.onSelect({id:e.id,text:i}),children:t.label},t.key))),/* @__PURE__ */D("div",{className:"ml-auto flex items-center gap-0.5","data-chat-chrome":"",children:d.map((e,t)=>/* @__PURE__ */F(C,{children:[t>0&&/* @__PURE__ */D("span",{className:"flex h-3",children:/* @__PURE__ */D(a,{orientation:"vertical"})}),e]},t))})}function Qe({text:e,actions:t,files:n,labels:a,onOpenAttachment:r}){const l=o(),i=/* @__PURE__ */D("div",{className:"max-w-[85%] whitespace-pre-wrap break-words rounded-2xl bg-blue-600 px-3 py-2 text-sm text-white",children:e}),c=n.length>0?/* @__PURE__ */D(He,{files:n,labels:a,onOpen:r}):null;return t?.length?/* @__PURE__ */F("div",{className:c?"flex flex-col items-end gap-2":"flex justify-end",onContextMenu:e=>l.open(e,void 0),children:[c,i,l.state&&/* @__PURE__ */D(s,{...l.props,"aria-label":e,items:t.map(t=>({key:t.key,label:t.label,onSelect:()=>t.onSelect(e)}))})]}):c?/* @__PURE__ */F("div",{className:"flex flex-col items-end gap-2",children:[c,i]}):/* @__PURE__ */D("div",{className:"flex justify-end",children:i})}function qe({message:a,toolLabels:r,labels:o,showReasoning:s,showToolOutput:l,showUsage:i,live:c,onApprove:d,plans:p,userActions:u,tableActions:m,onLinkClick:h,onOpenAttachment:f,onOpenFile:g,renderDataPart:y,showCopy:b,answerActions:v,onRate:x}){const w=a.metadata?.source,k=A(null);if("system"===w){const e=U(a);return e?/* @__PURE__ */D("div",{className:"text-center text-xs text-gray-500",children:e}):null}if("user"===a.role){const e=U(a);if(!e)return null;const t=a.metadata?.author;return t?/* @__PURE__ */F("div",{className:"flex flex-col items-start gap-0.5",children:[
45
- /* @__PURE__ */D("div",{className:"px-1 text-xs text-ink-faint",children:t.name}),
46
- /* @__PURE__ */D("div",{className:"max-w-[85%] whitespace-pre-wrap break-words rounded-2xl border border-line bg-surface-sunken px-3 py-2 text-sm text-ink",children:e})]}):/* @__PURE__ */D(Qe,{text:e,actions:u,files:W(a),labels:o,onOpenAttachment:f})}const N=a.parts.map(B),j=z(a),S=[],$=/* @__PURE__ */new Set,O=[];let R=-1;const T=e=>{R<0&&(R=S.push(null)-1),O.push(e)};if(a.parts.forEach((e,t)=>{if("text"===e.type)return void(e.text.trim()&&S.push(
47
- /* @__PURE__ */D("div",{"data-answer-text":"",children:/* @__PURE__ */D(n,{renderFence:Be,tableActions:c?void 0:m,onLinkClick:h,children:e.text})},t)));if("data-file"===e.type){const t=e.data;return void(t&&"string"==typeof t.id&&!$.has(t.id)&&($.add(t.id),S.push(/* @__PURE__ */D(We,{file:t,labels:o,onOpen:g},`file-${t.id}`))))}if(y&&e.type.startsWith("data-")&&!Y.has(e.type)){const n=y(e,a);return void(n&&S.push(/* @__PURE__ */D(C,{children:n},`data-${t}`)))}if("reasoning"===e.type)return void(s&&e.text.trim()&&T({kind:"reasoning",key:`r${t}`,text:e.text}));const l=N[t];l&&(ze(l,N.slice(t+1).filter(e=>null!==e))||("approval-requested"===l.state&&l.approvalId&&"propose_plan"===l.toolName?S.push(
48
- /* @__PURE__ */D(Ce,{approvalId:l.approvalId,plan:p?.get(l.approvalId),input:l.input,labels:o,toolLabels:r,onApprove:d},l.toolCallId)):"approval-requested"===l.state&&l.approvalId?S.push(
49
- /* @__PURE__ */D(Oe,{tool:l,toolLabels:r,labels:o,onApprove:d},l.toolCallId)):T({kind:"tool",key:l.toolCallId,tool:l})))}),R>=0&&(S[R]=/* @__PURE__ */D(e,{summary:Le(O,c,r,o),busy:c,label:o.steps,children:O.map(e=>"tool"===e.kind?/* @__PURE__ */D(_e,{tool:e.tool,summary:j.get(e.tool.toolCallId),toolLabels:r,labels:o,showOutput:l},e.key):/* @__PURE__ */D(t,{status:"complete",label:/* @__PURE__ */F("details",{children:[
50
- /* @__PURE__ */D("summary",{className:"cursor-pointer select-none",children:o.reasoning}),
51
- /* @__PURE__ */D("div",{className:"mt-1 whitespace-pre-wrap text-gray-500",children:e.text})]})},e.key))},"chain")),0===S.length)return null;const _=/* @__PURE__ */F("div",{ref:k,className:"max-w-[92%] min-w-0 space-y-2 rounded-2xl bg-white px-3 py-2 text-gray-800 shadow-sm",children:["staff"===w&&/* @__PURE__ */D("div",{className:"text-xs font-medium text-blue-600",children:o.teamName}),a.metadata?.askedBy&&/* @__PURE__ */D("div",{className:"text-xs text-ink-faint",children:o.askedBy.replace("{name}",a.metadata.askedBy.name)}),S]}),I=c?null:/* @__PURE__ */D(Ye,{message:a,labels:o,showCopy:!0===b,actions:v,answer:k}),M=i&&!w,E=a.metadata?.run_id,P=Boolean(x&&E&&!c&&!w);return M||P||I?/* @__PURE__ */F("div",{className:"flex flex-col items-start gap-1",children:[_,
52
- /* @__PURE__ */F("div",{className:"flex w-full max-w-[92%] flex-wrap items-start gap-x-2 gap-y-1",children:[
53
- /* @__PURE__ */F("div",{className:"flex min-w-0 flex-1 items-start gap-1",children:[M&&/* @__PURE__ */D(Ue,{message:a,live:c,labels:o}),P&&x&&E&&/* @__PURE__ */D(Se,{initial:a.metadata?.rating,labels:o,onRate:e=>x(E,e)})]}),I]})]}):/* @__PURE__ */D("div",{className:"flex justify-start",children:_})}function Ze(e){const{messages:t,status:n,error:a,history:r,labels:o}=e,s=A(null),i=R(()=>function(e){const t=/* @__PURE__ */new Map;for(const n of ee(e).values())t.set(n.approval_id,n);return t}(t),[t]),c=a?ie(a,e.errorCode??null,o):null,d=t[t.length-1],p="ready"!==n||a||e.handedOver||"assistant"!==d?.role||!e.onAsk?[]:e.followups??[];return S(()=>{const e=s.current;e&&(e.scrollTop=e.scrollHeight)},[t,n]),/* @__PURE__ */F("div",{ref:s,role:"log","aria-label":e.title,"aria-live":"polite","aria-busy":"submitted"===n||"streaming"===n,className:"flex min-h-0 flex-1 flex-col gap-3 overflow-auto bg-gray-50 p-3",children:["loading"===r&&/* @__PURE__ */F("div",{role:"status",className:"flex items-center gap-2 text-xs text-gray-500",children:[
54
- /* @__PURE__ */D(k,{className:"h-3 w-3"}),o.loadingHistory]}),"failed"===r&&/* @__PURE__ */D(l,{tone:"warning",children:o.historyFailed}),0===t.length&&"idle"===r&&/* @__PURE__ */D("p",{className:"m-auto text-center text-sm text-gray-500",children:o.emptyState}),t.map((a,r)=>/* @__PURE__ */D(qe,{live:r===t.length-1&&("submitted"===n||"streaming"===n),message:a,toolLabels:e.toolLabels,labels:o,showReasoning:e.showReasoning,showToolOutput:e.showToolOutput,showUsage:e.showUsage,tableActions:e.tableActions,onApprove:e.onApprove,onLinkClick:e.onLinkClick,onOpenFile:e.onOpenFile,renderDataPart:e.renderDataPart,plans:i,userActions:e.userMessageActions,onOpenAttachment:e.onOpenAttachment,showCopy:e.showCopy,answerActions:e.answerActions,onRate:e.onRate},a.id)),e.onAsk&&/* @__PURE__ */D(je,{questions:p,label:o.followups,onAsk:e.onAsk}),e.handedOver&&/* @__PURE__ */D("div",{role:"status",className:"text-center text-xs text-gray-500",children:o.teamJoined}),"submitted"===n&&/* @__PURE__ */F("div",{role:"status",className:"flex items-center gap-2 text-xs text-gray-500",children:[
55
- /* @__PURE__ */D(k,{className:"h-3 w-3"}),o.thinking]}),c&&/* @__PURE__ */F("div",{role:"alert",className:"flex flex-col items-start gap-2",children:[
56
- /* @__PURE__ */D(l,{tone:"danger",children:c.text}),c.retryable&&e.onRetry&&"error"===n&&/* @__PURE__ */D(x,{size:"sm",variant:"secondary",onClick:e.onRetry,children:o.retry})]})]})}var Xe={title:"Assistant",placeholder:"Ask a question…",inputLabel:"Message to the assistant",send:"Send",stop:"Stop",newChat:"New chat",open:"Open assistant",close:"Close assistant",thinking:"Thinking",loadingHistory:"Loading the conversation",historyFailed:"The earlier conversation could not be loaded.",emptyState:"Ask me anything to get started.",approvalNeeded:"Approval needed",approve:"Approve",deny:"Deny",approved:"Approved",declined:"Declined",toolFailed:"did not complete",toolDeclined:"was not approved",details:"Details",stepSources:"Where these figures came from",reasoning:"Reasoning",genericError:"Something went wrong. Please try again.",connectionDropped:"The connection dropped. Your question may still be answering; reopen the chat in a moment.",retry:"Retry",working:"Working",steps:"Steps",teamName:"Team",teamJoined:"A team member has joined",plan:"Plan",planSummary:"Plan: {done} of {total} done",planProposed:"waiting for your approval",planApproved:"approved, starting",planRunning:"in progress",planCompleted:"finished",planFailed:"stopped — not every step ran",planDenied:"not approved — nothing was changed",planExpired:"expired — nothing was changed",planApprovalHeading:"Approve this plan of {count} steps",approvePlan:"Approve plan",replyStats:"{tokens} tokens · {seconds} s · {rate} tok/s",replyTokens:"{tokens} tokens",streaming:"Streaming",streamingRate:"Streaming · ~{rate} tok/s",followups:"Suggested follow-up questions",attach:"Attach a file",attaching:"Uploading",removeAttachment:"Remove {name}",openAttachment:"Open {name}",copyAnswer:"Copy",copied:"Copied",readOnly:"You can read this chat but not continue it.",rateAnswer:"Rate this answer",rateUp:"Helpful",rateDown:"Not helpful",rateNote:"What was wrong? (optional)",rateNoteSend:"Send",rateNoteSkip:"Skip",rateThanks:"Thanks for telling us.",rateFailed:"Your rating could not be saved.",openFile:"Open {name}",assistantMention:"@Assistant",toPeople:"To {names} only. The assistant won’t reply.",toAssistant:"The assistant will reply. Everyone in the chat sees it.",askAssistant:"Ask the assistant",peoplePlaceholder:"Message {names}, or type {mention} to ask",askedBy:"Asked by {name}",sayFailed:"Your message didn’t send. Try again."},Ge=(e,t)=>`${e.replace(/\/+$/,"")}/${t}`;function Ke(e){return Ge(e,"assistant/chat/")}function Ve(e,t){return Ge(e,`assistant/chat/${encodeURIComponent(t)}/`)}function et(e){const t=e.metadata;return Boolean(t?.source||t?.author||t?.askedBy)}function tt(e){return e.parts.map(e=>e.approval?.id??"").filter(Boolean).sort().join(",")}function nt(e){const t=A(e);t.current=e;const n=A(e.conversationId?{id:e.conversationId}:null),[a,r]=j("idle"),[o,s]=j(!1),[l,i]=j(null),[c,d]=j([]),[p,u]=j([]),[m,h]=j(!1),[f,g]=j(n.current),y=O(e=>{n.current=e,g(e)},[]),b=O((e,n)=>(t.current.fetch??fetch)(e,n),[]),v=R(()=>new I({api:Ke(e.apiBase),fetch:b,prepareSendMessagesRequest:async({messages:e})=>{const{apiBase:a,getHeaders:r,credentials:o}=t.current;return{api:Ke(a),body:Q(e,n.current?.id??null),headers:await(r?.())??{},...o?{credentials:o}:{}}}}),[b]),x=P({transport:v,sendAutomaticallyWhen:M,onData:e=>{if(!Y.has(e.type))return void t.current.onDataPart?.(e);if("data-error"===e.type)return void i(e.data.code);if("data-followups"===e.type)return void d(function(e){const t=e?.questions;if(!Array.isArray(t))return[];const n=[];for(const e of t){if("string"!=typeof e)continue;const t=e.trim();!t||t.includes("\n")||n.includes(t)||n.push(t)}return n.slice(0,3)}(e.data));if("data-conversation"!==e.type)return;const{id:a,guest_token:r}=e.data,o=n.current,s=r??(o?.id===a?o.guestToken:void 0);o&&o.id===a&&o.guestToken===s||(y(s?{id:a,guestToken:s}:{id:a}),t.current.onConversation?.(n.current))}}),{setMessages:w,stop:k}=x,N=O(async(e,n)=>{const{apiBase:a,getHeaders:o,credentials:l,onConversation:i}=t.current;r("loading"),d([]);try{const t=await b(Ve(a,e),{method:"GET",headers:await(o?.())??{},...l?{credentials:l}:{},signal:n});if(n.aborted)return;if(404===t.status)return y(null),i?.(null),void r("idle");if(!t.ok)throw new Error(`history ${t.status}`);const c=await t.json();if(n.aborted)return;s(!0===c.handed_over),u(c.people??[]),w(e=>e.length>0?e:ae(c)),r("idle")}catch{n.aborted||r("failed")}},[b,w,y]),C=e.conversationId??null;S(()=>{if(C===(n.current?.id??null)&&x.messages.length>0)return;if(null===C)return n.current&&(y(null),k(),w([]),d([]),u([])),void r("idle");n.current?.id===C||y({id:C});const e=new AbortController;return N(C,e.signal),()=>e.abort()},[C,N,w,k,y]);const $=O(async e=>{const a=n.current?.id;if(a)try{const{apiBase:r,getHeaders:o,credentials:l}=t.current,i=await b(Ve(r,a),{method:"GET",headers:await(o?.())??{},...l?{credentials:l}:{},...e?{signal:e}:{}});if(!i.ok||e?.aborted||n.current?.id!==a)return;const c=await i.json();s(!0===c.handed_over),u(c.people??[]);const d=ae(c),p=d.filter(et),m=d.find(e=>e.id===`pending-approvals-${a}`);if(0===p.length&&!m)return;w(e=>{const t=new Set(e.map(e=>e.id)),n=p.filter(e=>!t.has(e.id));let a=n.length>0?[...e,...n]:e;const r=new Set(a.filter(e=>e.id!==m?.id).flatMap(e=>tt(e).split(",").filter(Boolean)));if(m&&!tt(m).split(",").every(e=>r.has(e))){const e=a.find(e=>e.id===m.id);e?tt(e)!==tt(m)&&(a=[...a.filter(e=>e.id!==m.id),m]):a=[...a,m]}return a})}catch{}},[b,w]),T=A($);T.current=$;const{status:_}=x,D="submitted"===_||"streaming"===_,F=A(!1),E=A(!1),B=!!e.subscribe;S(()=>{const e=F.current&&!D;if(F.current=D,!e)return;if(B&&!E.current)return;E.current=!1;const t=new AbortController;return T.current(t.signal),()=>t.abort()},[D,B]);const z=A(D);z.current=D;const L=f?.id,U=f?.guestToken;S(()=>{const e=n.current,a=t.current.subscribe;if(e&&a)return a(e,()=>{z.current?E.current=!0:T.current()})??void 0},[L,U]);const H=O((e,t=[])=>{const n=e.trim();n&&(i(null),d([]),h(!1),x.sendMessage(t.length>0?{text:n,files:t.map(J)}:{text:n}))},[x]),W=O(async e=>{const a=n.current?.id;if(a){h(!1),d([]);try{const{apiBase:n,getHeaders:r,credentials:o}=t.current,s=await b(function(e,t){return Ge(e,`assistant/chat/${encodeURIComponent(t)}/messages/`)}(n,a),{method:"POST",headers:{"Content-Type":"application/json",...await(r?.())??{}},body:JSON.stringify({text:e}),...o?{credentials:o}:{}});if(!s.ok)throw new Error(`say ${s.status}`);const l=await s.json(),[i]=ae({id:a,messages:[l],pending_approvals:[]});i&&w(e=>e.some(e=>e.id===i.id)?e:[...e,i])}catch{h(!0)}}},[b,w]),X=e.mention??"",G=p.length>0,K=O((e,t=[])=>{const n=e.trim();n&&(!G||0!==t.length||q(n,X)?H(n,t):W(n))},[H,W,G,X]),V=O(e=>H(G?Z(e,X):e),[H,G,X]),ee=O(()=>{ce(x.messages)&&(i(null),d([]),x.regenerate())},[x]),te=O((e,t)=>{i(null),d([]),x.addToolApprovalResponse({id:e,approved:t})},[x]),ne=O(()=>{k(),y(null),w([]),r("idle"),s(!1),i(null),d([]),u([]),h(!1),t.current.onConversation?.(null)},[w,k,y]);return{conversationId:f?.id??null,messages:x.messages,status:x.status,error:x.error,errorCode:l,canRetry:ce(x.messages),retry:ee,historyState:a,handedOver:o,followups:c,people:p,sayFailed:m,send:K,askAssistant:V,stop:k,approve:te,reset:ne}}function at(e){const t={...Xe,...e.labels},n=e.variant??"panel",a=nt({...e,mention:t.assistantMention}),r=X(a.people),o="submitted"===a.status||"streaming"===a.status,s=A(e.onBusyChange);s.current=e.onBusyChange,S(()=>{s.current?.(o)},[o]);const l="window"===n,i=e.showHeader??"window"!==n,c=e.title??t.title,d=te(a.messages),p=!0===e.readOnly,{onRate:m}=e,{conversationId:h}=a,f=A(!1),{send:g}=a;return S(()=>{f.current||p||e.conversationId||!e.initialQuestion?.trim()||(f.current=!0,g(e.initialQuestion))},[]),/* @__PURE__ */F("section",{"aria-label":c,className:`flex h-full min-h-0 flex-col bg-white text-gray-900 ${e.className??""}`.trim(),children:[i&&/* @__PURE__ */F("header",{className:"flex items-center gap-2 border-b border-gray-200 px-3 py-2",children:[
57
- /* @__PURE__ */D("h2",{className:"min-w-0 flex-1 truncate text-sm font-semibold",children:c}),a.messages.length>0&&/* @__PURE__ */D(x,{size:"sm",variant:"ghost",onClick:a.reset,children:t.newChat}),e.onClose&&/* @__PURE__ */D(u,{size:"sm","aria-label":t.close,onClick:e.onClose,children:/* @__PURE__ */D(w,{name:"close"})})]}),
58
- /* @__PURE__ */D(Ze,{messages:a.messages,status:a.status,error:a.error,errorCode:a.errorCode,history:a.historyState,handedOver:a.handedOver,labels:t,title:c,toolLabels:e.toolLabels,showReasoning:l&&!0===e.showReasoning,showToolOutput:l,showUsage:l&&!0===e.showUsage,tableActions:e.tableActions,onApprove:a.approve,onLinkClick:e.onLinkClick,onOpenFile:e.onOpenFile,renderDataPart:e.renderDataPart,userMessageActions:p?void 0:e.userMessageActions,showCopy:e.showCopy??l,answerActions:e.answerActions,onOpenAttachment:e.attachments?.onOpen,followups:a.followups,onAsk:p?void 0:a.askAssistant,onRetry:p?void 0:a.canRetry?a.retry:void 0,onRate:m&&h&&!p?(e,t)=>m({conversationId:h,runId:e,rating:t}):void 0}),d&&/* @__PURE__ */D(Ae,{plan:d,labels:t},d.id),!p&&e.composerTop,!p&&a.sayFailed&&/* @__PURE__ */D("p",{role:"alert",className:"border-t border-line px-3 py-2 text-xs text-danger-text",children:t.sayFailed}),p?/* @__PURE__ */D("p",{role:"note",className:"border-t border-gray-200 px-3 py-2 text-xs text-gray-500",children:t.readOnly}):/* @__PURE__ */D(de,{labels:t,placeholder:r?t.peoplePlaceholder.replace("{names}",r).replace("{mention}",t.assistantMention):e.placeholder??t.placeholder,people:r||void 0,busy:o,focusWhen:e.focusComposer,onSend:a.send,onStop:a.stop,onNewChat:!i&&!1!==e.showNewChat&&a.messages.length>0?a.reset:void 0,actions:e.composerActions,attachments:e.attachments})]})}function rt(e){const t={...Xe,...e.labels},[n,a]=j(e.defaultOpen??!1),r=$(),o=A(null),s=A(n),l=t=>{a(t),e.onOpenChange?.(t)};return S(()=>{s.current&&!n&&o.current?.focus(),s.current=n},[n]),/* @__PURE__ */F("div",{className:"rosh-assistant",style:{display:"contents"},children:[n&&/* @__PURE__ */D("div",{id:r,role:"dialog","aria-label":e.title??t.title,onKeyDown:e=>{"Escape"===e.key&&l(!1)},className:"fixed inset-x-2 bottom-20 z-[var(--z-window,1000)] h-[min(34rem,calc(100dvh-6rem))] overflow-hidden rounded-xl border border-gray-200 shadow-xl sm:inset-x-auto sm:right-4 sm:w-96",children:/* @__PURE__ */D(at,{...e,onClose:()=>l(!1),focusComposer:!0})}),
59
- /* @__PURE__ */D("button",{ref:o,type:"button","aria-expanded":n,"aria-controls":n?r:void 0,"aria-label":n?t.close:t.open,onClick:()=>l(!n),className:"fixed bottom-4 right-4 z-[var(--z-window,1000)] flex h-12 w-12 items-center justify-center rounded-full shadow-lg bg-[var(--assistant-launcher-bg,var(--color-blue-600))] text-[var(--assistant-launcher-ink,var(--color-white))] hover:bg-[var(--assistant-launcher-bg-hover,var(--color-blue-700))] focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--assistant-launcher-bg,var(--color-blue-600))]",children:/* @__PURE__ */D(w,n?{name:"close",size:20}:{name:"chat-bubble-left-right",size:22})})]})}function ot(e){if("bubble"===e.variant)/* @__PURE__ */return D(rt,{...e});const t="window"!==e.variant;/* @__PURE__ */
60
- return D(at,{...e,className:`${t?"border-l border-gray-200":""} ${e.className??""}`.trim()})}export{Oe as ApprovalCard,ot as AssistantChat,qe as AssistantMessage,Xe as DEFAULT_ASSISTANT_CHAT_LABELS,Y as OWN_DATA_PARTS,Ce as PlanApprovalCard,Ae as PlanChecklist,_e as ToolStep,Z as addressedToAssistant,J as attachmentPart,W as attachmentsOf,Q as buildRequestBody,Me as estimateTokens,ie as failureView,L as filesOf,Ee as finishedStats,se as isDroppedConnection,Pe as liveStats,q as mentionsAssistant,ae as messagesFromHistory,X as peopleNames,te as pinnedPlan,ee as plansOf,Ie as tokensPerSecond,z as toolSummariesOf};
2
+ import{StepChain as e,StepChainItem as t}from"../chunk-P5YFQ4IQ.js";import{Markdown as n}from"../chunk-MBXLROCD.js";import{Divider as a}from"../chunk-DFOFEBYX.js";import{Textarea_default as r}from"../chunk-PB7G6CJ7.js";import"../chunk-UJUTS6LJ.js";import"../chunk-PJPK2ADX.js";import{useContextMenu as o,ContextMenu as s}from"../chunk-W6SC3ZNO.js";import{Banner as l}from"../chunk-GSKLHUQ6.js";import"../chunk-DDCMMOB4.js";import{Input_default as i}from"../chunk-MAMWQCJ6.js";import{AttachButton as c,AttachmentDropZone as d}from"../chunk-EYZZW6SO.js";import{IconButton_default as p}from"../chunk-PUF75SMJ.js";import"../chunk-AYZY3YNC.js";import{CloseGlyph as u}from"../chunk-67JCJ2MG.js";import"../chunk-UYRITNQW.js";import{useFileIntake as m,humanSize as h,FileIntakeAlert as f}from"../chunk-6RX4PVBU.js";import{parseChartSpec as g}from"../chunk-CR7T435F.js";import{SpecChart as y}from"../chunk-35DG7Y4M.js";import{formatBytes as b}from"../chunk-X2S2XDZI.js";import"../chunk-5OTS2G3M.js";import"../chunk-36BRD5J3.js";import"../chunk-WMEYNKXZ.js";import"../chunk-INNIWRVU.js";import"../chunk-CK2YOGUS.js";import"../chunk-W5CJD54C.js";import"../chunk-VFC6QUEN.js";import"../chunk-CBEKJTXU.js";import"../chunk-465RRWBY.js";import{ChartSkeleton as v}from"../chunk-M22B3Y5Y.js";import"../chunk-CNYAHYE6.js";import"../chunk-37U326EL.js";import"../chunk-URHGHXDN.js";import"../chunk-5QFPTDQF.js";import"../chunk-TXDA7TTP.js";import{Button_default as x}from"../chunk-I4VIEGCX.js";import"../chunk-UQYNPYF4.js";import"../chunk-34URULVW.js";import{Icon as w}from"../chunk-KKSVRIMP.js";import"../chunk-J75ZT2JQ.js";import{SpinnerRing as k}from"../chunk-R2VKEMZH.js";import"../chunk-MRJKZWWV.js";import"../chunk-MVZRZTQP.js";import"../chunk-6XBWM453.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import"../chunk-D65T4H6J.js";import"../chunk-G4GVLK44.js";import"../chunk-F27JJHNJ.js";import"../chunk-2JG5JU4M.js";import"../chunk-QP4UPCXQ.js";import"../chunk-2JWPNR2U.js";import"../chunk-MAFUXCPZ.js";import"../chunk-TZFACUMR.js";import"../chunk-TWVUQUUD.js";import{useShellStrings as N}from"../chunk-4PAWQEXM.js";import"../chunk-C3QOHMR6.js";import{useRef as A,Fragment as C,useState as j,useEffect as S,useId as $,useCallback as T,useMemo as O}from"react";import{isToolUIPart as M,getToolName as _,DefaultChatTransport as R,lastAssistantMessageIsCompleteWithApprovalResponses as I}from"ai";import{jsx as B,jsxs as P,Fragment as D}from"react/jsx-runtime";import{useChat as F}from"@ai-sdk/react";function z(e){if(!M(e))return null;const t=e;return{toolName:_(e),toolCallId:t.toolCallId,state:t.state,input:t.input,output:t.output,errorText:t.errorText,approvalId:t.approval?.id,approved:t.approval?.approved}}function E(e){const t=/* @__PURE__ */new Map;for(const n of e.parts){if("data-tool-summary"!==n.type)continue;const e=n.data;e&&"string"==typeof e.tool_call_id&&Array.isArray(e.rows)&&e.rows.length>0&&t.set(e.tool_call_id,e)}return t}function U(e){const t=/* @__PURE__ */new Map;for(const n of e.parts){if("data-file"!==n.type)continue;const e=n.data;e&&"string"==typeof e.id&&"string"==typeof e.filename&&t.set(e.id,e)}return[...t.values()]}function L(e){return e.parts.map(e=>"text"===e.type?e.text:"").join("")}var J="efficient-attachment:";function W(e){return{type:"file",mediaType:e.content_type,filename:e.filename,url:`${J}${e.id}`,providerMetadata:{efficient:{size:e.size}}}}function H(e){const t=[];for(const n of e.parts){if("file"!==n.type||!n.url.startsWith(J))continue;const e=n.providerMetadata?.efficient?.size;t.push({id:n.url.slice(21),filename:n.filename??"",content_type:n.mediaType,size:"number"==typeof e?e:0})}return t}var Y=/* @__PURE__ */new Set(["data-conversation","data-plan","data-followups","data-tool-summary","data-error","data-file","data-approval","data-busy"]);function Q(e,t){const n=e[e.length-1];if(!n)throw new Error("assistant chat: no message to send");if("user"===n.role){const e=L(n).trim();if(!e)throw new Error("assistant chat: empty message");const a=H(n).map(e=>e.id);return{conversation_id:t,text:e,approvals:[],...a.length>0?{attachments:a}:{}}}const a=function(e){const t=[];for(const n of e.parts){if(!M(n))continue;const e=n;if("approval-responded"!==e.state||!e.approval||"boolean"!=typeof e.approval.approved)continue;const a={approval_id:e.approval.id,approved:e.approval.approved};e.approval.reason&&(a.reason=e.approval.reason),t.push(a)}return t}(n);if(0===a.length)throw new Error("assistant chat: no approval decision to send");return{conversation_id:t,text:null,approvals:a}}function q(e,t){const n=t.trim();if(!n)return!1;const a=n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return new RegExp(`(^|[^\\p{L}\\p{N}_])${a}(?![\\p{L}\\p{N}_])`,"iu").test(e)}function G(e,t){return q(e,t)?e:`${t.trim()} ${e.trimStart()}`}function X(e){const t=e.map(e=>e.name).filter(Boolean);return t.length<=1?t[0]??"":`${t.slice(0,-1).join(", ")} and ${t[t.length-1]}`}var Z=/* @__PURE__ */new Set(["proposed","approved","running"]);function K(e){return Z.has(e.status)}function V(e){const t=[];for(const n of e.parts)"data-plan"===n.type&&t.push(n.data);return t}function ee(e){const t=/* @__PURE__ */new Map;for(const n of e)for(const e of V(n))t.delete(e.id),t.set(e.id,e);return t}function te(e){const t=[...ee(e).values()],n=t[t.length-1];if(!n)return null;if(K(n))return n;const a=e[e.length-1];return a&&"assistant"===a.role&&V(a).some(e=>e.id===n.id)?n:null}function ne(e){const t={};return e.source&&e.source!==e.role&&(t.source=e.source),e.author&&(t.author=e.author),e.asked_by&&(t.askedBy=e.asked_by),"assistant"===e.role&&e.run_id&&(t.run_id=e.run_id,t.rating=e.rating??null),Object.keys(t).length>0?{metadata:t}:{}}function ae(e){const t=e.messages.filter(e=>e.text).map(e=>({id:e.id,role:e.role,parts:[...(e.attachments??[]).map(W),{type:"text",text:e.text},...(e.files??[]).map(e=>({type:"data-file",id:`file-${e.id}`,data:e}))],...ne(e)})),n=(e.plans??[]).filter(K);return(e.pending_approvals.length>0||n.length>0)&&t.push({id:`pending-approvals-${e.id}`,role:"assistant",parts:[...n.map(e=>({type:"data-plan",id:e.id,data:e})),...e.pending_approvals.map(e=>({type:`tool-${e.tool_name}`,toolCallId:e.tool_call_id??e.approval_id,state:"approval-requested",input:e.input,approval:{id:e.approval_id}}))]}),t}function re(e,t){const n=e?.message?.trim();if(!n)return t;if(n.startsWith("{")){try{const e=JSON.parse(n);for(const t of["detail","errorText","message","title","error"]){const n=e[t];if("string"==typeof n&&n.trim())return n.trim()}}catch{return t}return t}return n.startsWith("<")||n.length>400?t:n}var oe=/^(load failed|failed to fetch|network ?error( when attempting to fetch resource)?|(the )?network connection was lost|error in input stream|terminated)\.?$/i;function se(e){return!(!e||"AbortError"===e.name)&&oe.test(e.message?.trim()??"")}var le=/* @__PURE__ */new Set(["budget_reached","not_permitted"]);function ie(e,t,n){return se(e)?{text:n.connectionDropped,retryable:!0}:{text:re(e,n.genericError),retryable:!(t&&le.has(t))}}function ce(e){const t=e[e.length-1];if(!t)return!1;if("user"===t.role)return""!==L(t).trim();const n=e[e.length-2];return!(!n||"user"!==n.role||!L(n).trim())&&!t.parts.some(e=>void 0!==z(e)?.approvalId)}function de({labels:e,placeholder:t,busy:n,focusWhen:a,onSend:o,onStop:s,onNewChat:l,actions:i,attachments:g,people:y}){const[b,v]=j(""),C=A(null),$=function(e){const[t,n]=j([]),a=A(0),r=A(!0);S(()=>()=>{r.current=!1},[]);const o=e?.upload,s=T(e=>{if(o)for(const t of e){const e=a.current++;n(n=>[...n,{key:e,name:t.name,size:t.size}]),o(t).then(t=>{r.current&&n(n=>n.map(n=>n.key===e?{...n,attachment:t}:n))},t=>{const a=t instanceof Error&&t.message?t.message:String(t);r.current&&n(t=>t.map(t=>t.key===e?{...t,error:a}:t))})}},[o]),l=t.some(e=>!e.attachment&&!e.error),i=t.flatMap(e=>e.attachment?[e.attachment]:[]);return{pending:t,add:s,remove:e=>n(t=>t.filter(t=>t.key!==e)),clear:()=>n([]),uploading:l,ready:i}}(g),O=N().files,M=m({accept:g?.accept,maxSizeBytes:g?.maxSizeBytes,maxFiles:g?.maxFiles??5,acceptHint:g?.acceptHint,currentCount:$.pending.length,disabled:!g,onAccept:$.add});S(()=>{a&&C.current?.focus()},[a]);const _=n||$.uploading||!b.trim(),R=()=>{_||(o(b,$.ready),v(""),$.clear(),M.clearRejections())},I=!!y&&(q(b,e.assistantMention)||$.pending.length>0),D=y?/* @__PURE__ */P("div",{className:"flex items-center gap-2 px-3 pt-2 text-xs",children:[
3
+ /* @__PURE__ */B("span",{role:"status",className:"min-w-0 flex-1 truncate "+(I?"text-accent-text":"text-ink-faint"),children:I?e.toAssistant:e.toPeople.replace("{names}",y)}),!I&&/* @__PURE__ */B(x,{type:"button",size:"sm",variant:"ghost",onClick:()=>{v(t=>G(t,e.assistantMention)),C.current?.focus()},children:e.askAssistant})]}):null,F=/* @__PURE__ */P("form",{className:("flex items-end gap-2 p-3 "+(g||y?"":"border-t border-gray-200")).trim(),onSubmit:e=>{e.preventDefault(),R()},children:[l&&/* @__PURE__ */B(p,{type:"button",variant:"ghost","aria-label":e.newChat,title:e.newChat,onClick:l,children:/* @__PURE__ */B(w,{name:"add"})}),g&&/* @__PURE__ */B(c,{variant:"icon",label:e.attach,onClick:M.open,disabled:n}),
4
+ /* @__PURE__ */B("div",{className:"min-w-0 flex-1",children:/* @__PURE__ */B(r,{ref:C,"aria-label":e.inputLabel,placeholder:t,rows:1,autoGrow:!0,value:b,onChange:e=>v(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||e.nativeEvent.isComposing||(e.preventDefault(),R())},className:"max-h-32"})}),i?.map(e=>e.icon?/* @__PURE__ */B(p,{type:"button",variant:"ghost","aria-label":e.label,title:e.label,disabled:!b.trim(),onClick:()=>e.onSelect(b.trim()),children:/* @__PURE__ */B(w,{name:e.icon})},e.key):/* @__PURE__ */B(x,{type:"button",variant:"ghost",disabled:!b.trim(),onClick:()=>e.onSelect(b.trim()),children:e.label},e.key)),/* @__PURE__ */B(x,n?{type:"button",variant:"secondary",onClick:s,children:e.stop}:{type:"submit",disabled:_,children:e.send})]});return g?/* @__PURE__ */P(d,{intake:M,className:"border-t border-gray-200",children:[D,$.pending.length>0&&/* @__PURE__ */B("ul",{className:"flex flex-wrap gap-2 px-3 pt-3",children:$.pending.map(t=>/* @__PURE__ */P("li",{className:"flex max-w-full items-center gap-2 rounded-md border py-1 pl-2 pr-1 text-xs "+(t.error?"border-red-200 bg-red-50 text-red-700":"border-gray-200 bg-gray-50 text-gray-700"),children:[t.attachment||t.error?/* @__PURE__ */B(w,{name:"page",size:14,"aria-hidden":"true"}):/* @__PURE__ */B("span",{role:"status","aria-label":e.attaching,className:"inline-flex",children:/* @__PURE__ */B(k,{className:"h-3 w-3"})}),
5
+ /* @__PURE__ */B("span",{className:"min-w-0 truncate",title:t.error??t.name,children:t.name}),
6
+ /* @__PURE__ */B("span",{className:"shrink-0 tabular-nums text-gray-400",children:h(t.size,O)}),
7
+ /* @__PURE__ */B("button",{type:"button",onClick:()=>$.remove(t.key),"aria-label":e.removeAttachment.replace("{name}",t.name),className:"shrink-0 rounded p-0.5 text-gray-400 hover:bg-gray-200 hover:text-gray-600",children:/* @__PURE__ */B(u,{className:"h-3.5 w-3.5"})})]},t.key))}),$.pending.some(e=>e.error)&&/* @__PURE__ */B("ul",{role:"alert",className:"flex flex-col gap-0.5 px-3 pt-1",children:$.pending.flatMap(e=>e.error?[/* @__PURE__ */B("li",{className:"text-xs text-red-600",children:`${e.name}: ${e.error}`},e.key)]:[])}),
8
+ /* @__PURE__ */B(f,{rejections:M.rejections,className:"px-3 pt-1"}),F]}):D?/* @__PURE__ */P("div",{className:"border-t border-line",children:[D,F]}):F}function pe(e){const t=e.replace(/^tool-/,"").replace(/([a-z0-9])([A-Z])/g,"$1 $2").replace(/[_\-.]+/g," ").trim().toLowerCase();return t?t.charAt(0).toUpperCase()+t.slice(1):e}var ue={propose_plan:{label:"Plan the changes",running:"Planning the changes",done:"Planned the changes"}};function me(e,t){const n=t?.[e]??ue[e];return"string"==typeof n?{label:n}:n??{label:pe(e)}}function he(e,t){return me(e,t).label}function fe(e){return e&&"object"==typeof e&&!Array.isArray(e)?e:{}}function ge(e,t,n){const a=me(e,n).describe;if(!a)return"";try{return a(fe(t))?.trim()??""}catch{return""}}function ye(e,t){return null==e?"":"boolean"==typeof e?e?"Yes":"No":"object"!=typeof e?String(e):Array.isArray(e)?e.map(e=>ye(e,t+1)).filter(Boolean).join(", "):t>=3?"…":Object.entries(e).map(([e,n])=>{const a=ye(n,t+1);return a?`${pe(e)}: ${a}`:""}).filter(Boolean).join("; ")}function be(e){const t=fe(e),n=[];for(const[e,a]of Object.entries(t)){if(e.startsWith("_"))continue;const t=ye(a,0);t&&n.push({label:pe(e),value:t})}return 0===n.length&&null!=e&&"object"!=typeof e&&n.push({label:"Value",value:ye(e,0)}),n}var ve={proposed:"planProposed",approved:"planApproved",running:"planRunning",completed:"planCompleted",failed:"planFailed",denied:"planDenied",expired:"planExpired"},xe={pending:"pending",running:"active",done:"complete",failed:"failed",skipped:"skipped"};function we(e,t){const n=ge(e.tool_name,e.input,t);return`${he(e.tool_name,t)}${n?` ${n}`:""}`}function ke(e,t){return e.replace(/\{(\w+)\}/g,(e,n)=>n in t?String(t[n]):e)}function Ne(e,t){const n=e.steps.filter(e=>"done"===e.status).length;return`${ke(t.planSummary,{done:n,total:e.steps.length})} · ${t[ve[e.status]]}`}function Ae({plan:n,labels:a}){/* @__PURE__ */
9
+ return B("section",{"aria-label":a.plan,className:"border-t border-gray-200 bg-white px-3 py-2",children:/* @__PURE__ */B(e,{summary:Ne(n,a),busy:K(n),label:a.plan,children:n.steps.map(e=>/* @__PURE__ */B(t,{label:e.title,status:xe[e.status],description:"done"!==e.status&&e.result_summary?e.result_summary:void 0},e.id))})})}function Ce({approvalId:e,plan:t,input:n,labels:a,toolLabels:r,onApprove:o}){const s=function(e,t){if(e)return e.steps.map(e=>({key:e.id,title:e.title,tool_name:e.tool_name,input:e.input}));const n=t?.steps;return Array.isArray(n)?n.map((e,t)=>{const n=e??{};return{key:String(t),title:"string"==typeof n.title?n.title:"",tool_name:"string"==typeof n.tool?n.tool:"",input:n.args}}):[]}(t,n),l=ke(a.planApprovalHeading,{count:s.length});/* @__PURE__ */
10
+ return P("div",{role:"group","aria-label":l,className:"rounded-lg border border-amber-300 bg-amber-50 p-3 text-sm",children:[
11
+ /* @__PURE__ */B("div",{className:"font-medium text-gray-900",children:l}),
12
+ /* @__PURE__ */B("ol",{className:"mt-2 list-decimal space-y-2 pl-5",children:s.map(e=>{const t=be(e.input);/* @__PURE__ */
13
+ return P("li",{children:[
14
+ /* @__PURE__ */B("div",{className:"font-medium text-gray-900",children:we(e,r)}),e.title&&/* @__PURE__ */B("div",{className:"text-xs text-gray-600",children:e.title}),t.length>0&&/* @__PURE__ */B("dl",{className:"mt-1 grid grid-cols-[max-content_1fr] gap-x-3 gap-y-1 text-xs",children:t.map(e=>/* @__PURE__ */P("div",{className:"contents",children:[
15
+ /* @__PURE__ */B("dt",{className:"text-gray-500",children:e.label}),
16
+ /* @__PURE__ */B("dd",{className:"min-w-0 break-words text-gray-800",children:e.value})]},e.label))})]},e.key)})}),
17
+ /* @__PURE__ */P("div",{className:"mt-3 flex gap-2",children:[
18
+ /* @__PURE__ */B(x,{size:"sm",onClick:()=>o(e,!0),children:a.approvePlan}),
19
+ /* @__PURE__ */B(x,{size:"sm",variant:"secondary",onClick:()=>o(e,!1),children:a.deny})]})]})}function je({questions:e,label:t,onAsk:n}){return 0===e.length?null:/* @__PURE__ */B("div",{role:"group","aria-label":t,className:"flex flex-wrap gap-2 pl-1",children:e.map(e=>/* @__PURE__ */B(x,{size:"sm",variant:"secondary",onClick:()=>n(e),children:e},e))})}function Se({initial:e,labels:t,onRate:n}){const[a,r]=j(e??null),[o,s]=j(!1),[l,c]=j(""),[d,u]=j(!1),[m,h]=j(!1),[f,g]=j(!1),y=async e=>{const t=a;r(e),h(!1),g(!0);try{return await n(e),!0}catch{return r(t),h(!0),!1}finally{g(!1)}},b=e=>{const n="up"===e?t.rateUp:t.rateDown;/* @__PURE__ */
20
+ return B(p,{size:"sm","aria-label":n,title:n,"aria-pressed":a?.verdict===e,disabled:f,onClick:()=>{(async e=>{if(u(!1),a?.verdict===e)return s(!1),void await y(null);const t=await y({verdict:e,note:""});s(t&&"down"===e),c("")})(e)},children:/* @__PURE__ */B(w,{name:"hand-thumb-up",className:"down"===e?"h-3.5 w-3.5 rotate-180":"h-3.5 w-3.5"})})};/* @__PURE__ */
21
+ return P("div",{role:"group","aria-label":t.rateAnswer,className:"flex min-w-0 flex-1 flex-col gap-1",children:[
22
+ /* @__PURE__ */P("div",{className:"flex items-center gap-1",children:[b("up"),b("down"),d&&/* @__PURE__ */B("span",{role:"status",className:"px-1 text-xs text-gray-500",children:t.rateThanks}),m&&/* @__PURE__ */B("span",{role:"alert",className:"px-1 text-xs text-red-600",children:t.rateFailed})]}),o&&/* @__PURE__ */P("form",{className:"flex items-center gap-2",onSubmit:e=>{(async e=>{e.preventDefault();const t=l.trim();t&&!await y({verdict:"down",note:t})||(s(!1),u(Boolean(t)))})(e)},children:[
23
+ /* @__PURE__ */B("div",{className:"min-w-0 flex-1",children:/* @__PURE__ */B(i,{size:"sm","aria-label":t.rateNote,placeholder:t.rateNote,maxLength:500,value:l,onChange:e=>c(e.target.value),autoFocus:!0})}),
24
+ /* @__PURE__ */B(x,{type:"submit",size:"sm",variant:"secondary",disabled:f||!l.trim(),children:t.rateNoteSend}),
25
+ /* @__PURE__ */B(x,{type:"button",size:"sm",variant:"ghost",onClick:()=>s(!1),children:t.rateNoteSkip})]})]})}function $e({rows:e,label:t}){/* @__PURE__ */
26
+ return B("dl",{"aria-label":t,className:"grid grid-cols-[max-content_1fr] gap-x-3 gap-y-1 text-xs",children:e.map((e,t)=>/* @__PURE__ */P("div",{className:"contents",children:[
27
+ /* @__PURE__ */B("dt",{className:"text-gray-500",children:e.label}),
28
+ /* @__PURE__ */B("dd",{className:"min-w-0 break-words "+(e.warn?"font-medium text-amber-700":"text-gray-800"),children:e.value})]},`${e.label}-${t}`))})}function Te({tool:e,toolLabels:t,labels:n,onApprove:a}){const r=ge(e.toolName,e.input,t),o=be(e.input),s=e.approvalId,l=`${n.approvalNeeded}: ${he(e.toolName,t)}${r?` ${r}`:""}`;/* @__PURE__ */
29
+ return P("div",{role:"group","aria-label":l,className:"rounded-lg border border-amber-300 bg-amber-50 p-3 text-sm",children:[
30
+ /* @__PURE__ */B("div",{className:"font-medium text-gray-900",children:l}),o.length>0&&/* @__PURE__ */B("div",{className:"mt-2",children:/* @__PURE__ */B($e,{rows:o})}),
31
+ /* @__PURE__ */P("div",{className:"mt-3 flex gap-2",children:[
32
+ /* @__PURE__ */B(x,{size:"sm",onClick:()=>a(s,!0),children:n.approve}),
33
+ /* @__PURE__ */B(x,{size:"sm",variant:"secondary",onClick:()=>a(s,!1),children:n.deny})]})]})}var Oe={running:"active",done:"complete",failed:"failed",declined:"stopped",waiting:"waiting"};function Me(e,t,n){return function(e,t,n,a,r,o){const s=me(n,r),l=ge(n,a,r),i=(e,t)=>({kind:e,base:t,subject:l,text:l?`${t} ${l}`:t});switch(e){case"output-available":return i("done",s.done??s.label);case"output-error":return i("failed",`${s.label} ${o.toolFailed}`);case"output-denied":return i("declined",`${s.label} ${o.toolDeclined}`);case"approval-requested":return i("waiting",`${o.approvalNeeded}: ${s.label}`);case"approval-responded":return!1===t?i("declined",`${s.label} — ${o.declined}`):i("running",`${o.approved}: ${s.running??s.label}`);default:return i("running",s.running??s.label)}}(e.state,e.approved,e.toolName,e.input,t,n)}function _e({tool:e,summary:n,toolLabels:a,labels:r,showOutput:o}){const s=Me(e,a,r),l=be(e.input),i=o&&"output-available"===e.state?be(e.output):[],c=o&&"output-error"===e.state&&e.errorText?e.errorText:"",d="output-available"===e.state&&n?n.rows:[];let p=null;return(l.length>0||i.length>0||c)&&(p=/* @__PURE__ */P("details",{className:d.length>0?"mt-1":void 0,children:[
34
+ /* @__PURE__ */B("summary",{className:"cursor-pointer select-none",children:r.details}),
35
+ /* @__PURE__ */P("div",{className:"mt-1 space-y-2",children:[l.length>0&&/* @__PURE__ */B($e,{rows:l}),i.length>0&&/* @__PURE__ */B($e,{rows:i}),c&&/* @__PURE__ */B("div",{className:"text-red-600",children:c})]})]})),/* @__PURE__ */P(t,{label:s.base,description:s.subject||void 0,status:Oe[s.kind],children:[d.length>0&&/* @__PURE__ */B($e,{rows:d,label:r.stepSources}),p]})}function Re(e,t){return e>0&&t>=100?e/(t/1e3):null}function Ie(e){return Math.ceil(e.length/4)}var Be=(e,t)=>e.replace(/\{(\w+)\}/g,(e,n)=>t[n]??e),Pe=e=>Math.round(e).toLocaleString();function De(e,t){const n=Re(e.output_tokens,e.generation_ms);return null===n?Be(t.replyTokens,{tokens:Pe(e.output_tokens)}):Be(t.replyStats,{tokens:Pe(e.output_tokens),seconds:(e.generation_ms/1e3).toFixed(1),rate:Pe(n)})}function Fe(e,t,n){const a=t>=1e3?Re(Ie(e),t):null;return null===a?n.streaming:Be(n.streamingRate,{rate:Pe(a)})}function ze(e){if("chart"!==e.lang)return null;if(!e.closed)/* @__PURE__ */return B(v,{height:200});const t=g(e.code);return t?/* @__PURE__ */B(y,{spec:t}):null}function Ee(e,t){return"approval-responded"===e.state&&t.some(t=>{return t.toolName===e.toolName&&"approval-requested"!==t.state&&(t.toolCallId===e.toolCallId||(n=t.input,a=e.input,JSON.stringify(n)===JSON.stringify(a)));var n,a})}function Ue(e,t,n,a){const r=e.flatMap(e=>"tool"===e.kind?[Me(e.tool,n,a)]:[]);if(t){const e=r.find(e=>"running"===e.kind);return e?e.base:a.working}const o=[...new Set(r.map(e=>e.base))];return o.length>0?o.join(" · "):a.reasoning}function Le({message:e,live:t,labels:n}){const a=L(e),r=a.length>0,o=A(null),[s,l]=j(0);S(()=>{if(!t)return;null===o.current&&(o.current=performance.now());const e=setInterval(()=>l(performance.now()-(o.current??performance.now())),500);return()=>clearInterval(e)},[t]);const i=e.metadata?.usage;let c=null;return t?c=r?Fe(a,s,n):null:i&&(c=De(i,n)),c?/* @__PURE__ */B("div",{className:"px-1 text-xs leading-6 tabular-nums text-gray-500",children:c}):null}function Je({files:e,labels:t,onOpen:n}){const a="flex max-w-full items-center gap-2 rounded-md border border-gray-200 bg-white px-2 py-1 text-xs text-gray-700";/* @__PURE__ */
36
+ return B("ul",{className:"flex max-w-[85%] flex-wrap justify-end gap-2",children:e.map(e=>{const r=/* @__PURE__ */P(D,{children:[
37
+ /* @__PURE__ */B(w,{name:"page",size:14,"aria-hidden":"true",className:"shrink-0"}),
38
+ /* @__PURE__ */B("span",{className:"min-w-0 truncate",children:e.filename})]});/* @__PURE__ */
39
+ return B("li",{className:"max-w-full",children:n?/* @__PURE__ */B("button",{type:"button",className:`${a} hover:bg-gray-50`,title:t.openAttachment.replace("{name}",e.filename),onClick:()=>n(e),children:r}):/* @__PURE__ */B("span",{className:a,children:r})},e.id)})})}function We(e){return["xlsx"===e.kind?"Excel":String(e.kind||"").toUpperCase(),b(e.size)].filter(Boolean).join(" · ")}function He({file:e,labels:t,onOpen:n}){const a=/* @__PURE__ */P(D,{children:["pdf"===e.kind?/* @__PURE__ */B(w,{name:"document",size:20,className:"shrink-0"}):/* @__PURE__ */B(w,{name:"table",size:20,className:"shrink-0"}),
40
+ /* @__PURE__ */P("span",{className:"min-w-0 flex-1",children:[
41
+ /* @__PURE__ */B("span",{className:"block truncate text-sm font-medium text-gray-800",children:e.filename}),
42
+ /* @__PURE__ */B("span",{className:"block text-xs text-gray-500",children:We(e)})]})]}),r="flex w-full max-w-sm items-center gap-2 rounded-lg border border-gray-200 bg-gray-50 px-3 py-2 text-left";return n?/* @__PURE__ */B("button",{type:"button",className:`${r} hover:border-blue-300 hover:bg-blue-50 focus:outline-none focus-visible:ring-2 focus-visible:ring-blue-500`,"data-assistant-file":e.id,"aria-label":t.openFile.replace("{name}",e.filename),onClick:()=>n(e),children:a}):/* @__PURE__ */B("div",{className:r,"data-assistant-file":e.id,children:a})}function Ye({message:e,labels:t,showCopy:n,actions:r,answer:o}){const[s,l]=j(!1);S(()=>{if(!s)return;const e=setTimeout(()=>l(!1),1500);return()=>clearTimeout(e)},[s]);const i=L(e);if(!i.trim()||!n&&!r?.length)return null;const c=async()=>{const e=Array.from(o.current?.querySelectorAll("[data-answer-text]")??[]);l(await async function(e,t){const n="undefined"!=typeof navigator?navigator.clipboard:void 0;if(!n)return!1;try{return t&&"undefined"!=typeof ClipboardItem&&n.write?(await n.write([new ClipboardItem({"text/html":new Blob([t],{type:"text/html"}),"text/plain":new Blob([e],{type:"text/plain"})})]),!0):(await n.writeText(e),!0)}catch{return!1}}(i,function(e){return e.map(e=>{const t=e.cloneNode(!0);return t.querySelectorAll("button, [data-chat-chrome]").forEach(e=>e.remove()),t.querySelectorAll("[class]").forEach(e=>e.removeAttribute("class")),t.removeAttribute("class"),t.querySelectorAll("table").forEach(e=>e.setAttribute("style","border-collapse:collapse")),t.querySelectorAll("th, td").forEach(e=>e.setAttribute("style","border:1px solid #d0d5dd;padding:4px 8px;text-align:left;vertical-align:top")),t.innerHTML.trim()}).filter(Boolean).join("\n")}(e)))},d=[];return n&&d.push(
43
+ /* @__PURE__ */B(x,{size:"sm",variant:"ghost",leftIcon:/* @__PURE__ */B(w,{name:s?"check":"copy",look:"mini",className:"h-3.5 w-3.5","aria-hidden":"true"}),onClick:()=>{c()},children:s?t.copied:t.copyAnswer},"copy")),r?.forEach(t=>d.push(
44
+ /* @__PURE__ */B(x,{size:"sm",variant:"ghost",leftIcon:t.icon?/* @__PURE__ */B(w,{name:t.icon,look:"mini",className:"h-3.5 w-3.5","aria-hidden":"true"}):void 0,onClick:()=>t.onSelect({id:e.id,text:i}),children:t.label},t.key))),/* @__PURE__ */B("div",{className:"ml-auto flex items-center gap-0.5","data-chat-chrome":"",children:d.map((e,t)=>/* @__PURE__ */P(C,{children:[t>0&&/* @__PURE__ */B("span",{className:"flex h-3",children:/* @__PURE__ */B(a,{orientation:"vertical"})}),e]},t))})}function Qe({text:e,actions:t,files:n,labels:a,onOpenAttachment:r}){const l=o(),i=/* @__PURE__ */B("div",{className:"max-w-[85%] whitespace-pre-wrap break-words rounded-2xl bg-blue-600 px-3 py-2 text-sm text-white",children:e}),c=n.length>0?/* @__PURE__ */B(Je,{files:n,labels:a,onOpen:r}):null;return t?.length?/* @__PURE__ */P("div",{className:c?"flex flex-col items-end gap-2":"flex justify-end",onContextMenu:e=>l.open(e,void 0),children:[c,i,l.state&&/* @__PURE__ */B(s,{...l.props,"aria-label":e,items:t.map(t=>({key:t.key,label:t.label,onSelect:()=>t.onSelect(e)}))})]}):c?/* @__PURE__ */P("div",{className:"flex flex-col items-end gap-2",children:[c,i]}):/* @__PURE__ */B("div",{className:"flex justify-end",children:i})}function qe({message:a,toolLabels:r,labels:o,showReasoning:s,showToolOutput:l,showUsage:i,live:c,onApprove:d,plans:p,userActions:u,tableActions:m,onLinkClick:h,onOpenAttachment:f,onOpenFile:g,renderDataPart:y,showCopy:b,answerActions:v,onRate:x}){const w=a.metadata?.source,k=A(null);if("system"===w){const e=L(a);return e?/* @__PURE__ */B("div",{className:"text-center text-xs text-gray-500",children:e}):null}if("user"===a.role){const e=L(a);if(!e)return null;const t=a.metadata?.author;return t?/* @__PURE__ */P("div",{className:"flex flex-col items-start gap-0.5",children:[
45
+ /* @__PURE__ */B("div",{className:"px-1 text-xs text-ink-faint",children:t.name}),
46
+ /* @__PURE__ */B("div",{className:"max-w-[85%] whitespace-pre-wrap break-words rounded-2xl border border-line bg-surface-sunken px-3 py-2 text-sm text-ink",children:e})]}):/* @__PURE__ */B(Qe,{text:e,actions:u,files:H(a),labels:o,onOpenAttachment:f})}const N=a.parts.map(z),j=E(a),S=[],$=/* @__PURE__ */new Set,T=[];let O=-1;const M=e=>{O<0&&(O=S.push(null)-1),T.push(e)};if(a.parts.forEach((e,t)=>{if("text"===e.type)return void(e.text.trim()&&S.push(
47
+ /* @__PURE__ */B("div",{"data-answer-text":"",children:/* @__PURE__ */B(n,{renderFence:ze,tableActions:c?void 0:m,onLinkClick:h,children:e.text})},t)));if("data-file"===e.type){const t=e.data;return void(t&&"string"==typeof t.id&&!$.has(t.id)&&($.add(t.id),S.push(/* @__PURE__ */B(He,{file:t,labels:o,onOpen:g},`file-${t.id}`))))}if(y&&e.type.startsWith("data-")&&!Y.has(e.type)){const n=y(e,a);return void(n&&S.push(/* @__PURE__ */B(C,{children:n},`data-${t}`)))}if("reasoning"===e.type)return void(s&&e.text.trim()&&M({kind:"reasoning",key:`r${t}`,text:e.text}));const l=N[t];l&&(Ee(l,N.slice(t+1).filter(e=>null!==e))||("approval-requested"===l.state&&l.approvalId&&"propose_plan"===l.toolName?S.push(
48
+ /* @__PURE__ */B(Ce,{approvalId:l.approvalId,plan:p?.get(l.approvalId),input:l.input,labels:o,toolLabels:r,onApprove:d},l.toolCallId)):"approval-requested"===l.state&&l.approvalId?S.push(
49
+ /* @__PURE__ */B(Te,{tool:l,toolLabels:r,labels:o,onApprove:d},l.toolCallId)):M({kind:"tool",key:l.toolCallId,tool:l})))}),O>=0&&(S[O]=/* @__PURE__ */B(e,{summary:Ue(T,c,r,o),busy:c,label:o.steps,children:T.map(e=>"tool"===e.kind?/* @__PURE__ */B(_e,{tool:e.tool,summary:j.get(e.tool.toolCallId),toolLabels:r,labels:o,showOutput:l},e.key):/* @__PURE__ */B(t,{status:"complete",label:/* @__PURE__ */P("details",{children:[
50
+ /* @__PURE__ */B("summary",{className:"cursor-pointer select-none",children:o.reasoning}),
51
+ /* @__PURE__ */B("div",{className:"mt-1 whitespace-pre-wrap text-gray-500",children:e.text})]})},e.key))},"chain")),0===S.length)return null;const _=/* @__PURE__ */P("div",{ref:k,className:"max-w-[92%] min-w-0 space-y-2 rounded-2xl bg-white px-3 py-2 text-gray-800 shadow-sm",children:["staff"===w&&/* @__PURE__ */B("div",{className:"text-xs font-medium text-blue-600",children:o.teamName}),a.metadata?.askedBy&&/* @__PURE__ */B("div",{className:"text-xs text-ink-faint",children:o.askedBy.replace("{name}",a.metadata.askedBy.name)}),S]}),R=c?null:/* @__PURE__ */B(Ye,{message:a,labels:o,showCopy:!0===b,actions:v,answer:k}),I=i&&!w,D=a.metadata?.run_id,F=Boolean(x&&D&&!c&&!w);return I||F||R?/* @__PURE__ */P("div",{className:"flex flex-col items-start gap-1",children:[_,
52
+ /* @__PURE__ */P("div",{className:"flex w-full max-w-[92%] flex-wrap items-start gap-x-2 gap-y-1",children:[
53
+ /* @__PURE__ */P("div",{className:"flex min-w-0 flex-1 items-start gap-1",children:[I&&/* @__PURE__ */B(Le,{message:a,live:c,labels:o}),F&&x&&D&&/* @__PURE__ */B(Se,{initial:a.metadata?.rating,labels:o,onRate:e=>x(D,e)})]}),R]})]}):/* @__PURE__ */B("div",{className:"flex justify-start",children:_})}function Ge(e){const{messages:t,status:n,error:a,history:r,labels:o}=e,s=A(null),i=O(()=>function(e){const t=/* @__PURE__ */new Map;for(const n of ee(e).values())t.set(n.approval_id,n);return t}(t),[t]),c=a?ie(a,e.errorCode??null,o):null,d=t[t.length-1],p="ready"!==n||a||e.handedOver||"assistant"!==d?.role||!e.onAsk?[]:e.followups??[];return S(()=>{const e=s.current;e&&(e.scrollTop=e.scrollHeight)},[t,n]),/* @__PURE__ */P("div",{ref:s,role:"log","aria-label":e.title,"aria-live":"polite","aria-busy":"submitted"===n||"streaming"===n,className:"flex min-h-0 flex-1 flex-col gap-3 overflow-auto bg-gray-50 p-3",children:["loading"===r&&/* @__PURE__ */P("div",{role:"status",className:"flex items-center gap-2 text-xs text-gray-500",children:[
54
+ /* @__PURE__ */B(k,{className:"h-3 w-3"}),o.loadingHistory]}),"failed"===r&&/* @__PURE__ */B(l,{tone:"warning",children:o.historyFailed}),0===t.length&&"idle"===r&&/* @__PURE__ */B("p",{className:"m-auto text-center text-sm text-gray-500",children:o.emptyState}),t.map((a,r)=>/* @__PURE__ */B(qe,{live:r===t.length-1&&("submitted"===n||"streaming"===n),message:a,toolLabels:e.toolLabels,labels:o,showReasoning:e.showReasoning,showToolOutput:e.showToolOutput,showUsage:e.showUsage,tableActions:e.tableActions,onApprove:e.onApprove,onLinkClick:e.onLinkClick,onOpenFile:e.onOpenFile,renderDataPart:e.renderDataPart,plans:i,userActions:e.userMessageActions,onOpenAttachment:e.onOpenAttachment,showCopy:e.showCopy,answerActions:e.answerActions,onRate:e.onRate},a.id)),e.onAsk&&/* @__PURE__ */B(je,{questions:p,label:o.followups,onAsk:e.onAsk}),e.handedOver&&/* @__PURE__ */B("div",{role:"status",className:"text-center text-xs text-gray-500",children:o.teamJoined}),"submitted"===n&&/* @__PURE__ */P("div",{role:"status",className:"flex items-center gap-2 text-xs text-gray-500",children:[
55
+ /* @__PURE__ */B(k,{className:"h-3 w-3"}),o.thinking]}),c&&/* @__PURE__ */P("div",{role:"alert",className:"flex flex-col items-start gap-2",children:[
56
+ /* @__PURE__ */B(l,{tone:"danger",children:c.text}),c.retryable&&e.onRetry&&"error"===n&&/* @__PURE__ */B(x,{size:"sm",variant:"secondary",onClick:e.onRetry,children:o.retry})]})]})}var Xe={title:"Assistant",placeholder:"Ask a question…",inputLabel:"Message to the assistant",send:"Send",stop:"Stop",newChat:"New chat",open:"Open assistant",close:"Close assistant",thinking:"Thinking",loadingHistory:"Loading the conversation",historyFailed:"The earlier conversation could not be loaded.",emptyState:"Ask me anything to get started.",approvalNeeded:"Approval needed",approve:"Approve",deny:"Deny",approved:"Approved",declined:"Declined",toolFailed:"did not complete",toolDeclined:"was not approved",details:"Details",stepSources:"Where these figures came from",reasoning:"Reasoning",genericError:"Something went wrong. Please try again.",connectionDropped:"The connection dropped. Your question may still be answering; reopen the chat in a moment.",retry:"Retry",working:"Working",steps:"Steps",teamName:"Team",teamJoined:"A team member has joined",plan:"Plan",planSummary:"Plan: {done} of {total} done",planProposed:"waiting for your approval",planApproved:"approved, starting",planRunning:"in progress",planCompleted:"finished",planFailed:"stopped — not every step ran",planDenied:"not approved — nothing was changed",planExpired:"expired — nothing was changed",planApprovalHeading:"Approve this plan of {count} steps",approvePlan:"Approve plan",replyStats:"{tokens} tokens · {seconds} s · {rate} tok/s",replyTokens:"{tokens} tokens",streaming:"Streaming",streamingRate:"Streaming · ~{rate} tok/s",followups:"Suggested follow-up questions",attach:"Attach a file",attaching:"Uploading",removeAttachment:"Remove {name}",openAttachment:"Open {name}",copyAnswer:"Copy",copied:"Copied",readOnly:"You can read this chat but not continue it.",rateAnswer:"Rate this answer",rateUp:"Helpful",rateDown:"Not helpful",rateNote:"What was wrong? (optional)",rateNoteSend:"Send",rateNoteSkip:"Skip",rateThanks:"Thanks for telling us.",rateFailed:"Your rating could not be saved.",openFile:"Open {name}",assistantMention:"@Assistant",toPeople:"To {names} only. The assistant won’t reply.",toAssistant:"The assistant will reply. Everyone in the chat sees it.",askAssistant:"Ask the assistant",peoplePlaceholder:"Message {names}, or type {mention} to ask",askedBy:"Asked by {name}",sayFailed:"Your message didn’t send. Try again."},Ze=(e,t)=>`${e.replace(/\/+$/,"")}/${t}`;function Ke(e){return Ze(e,"assistant/chat/")}function Ve(e,t){return Ze(e,`assistant/chat/${encodeURIComponent(t)}/`)}function et(e){const t=e.metadata;return Boolean(t?.source||t?.author||t?.askedBy)}function tt(e){return e.parts.map(e=>e.approval?.id??"").filter(Boolean).sort().join(",")}function nt(e){const t=A(e);t.current=e;const n=A(e.conversationId?{id:e.conversationId}:null),[a,r]=j("idle"),[o,s]=j(!1),[l,i]=j(null),[c,d]=j([]),[p,u]=j([]),[m,h]=j(!1),[f,g]=j(n.current),y=T(e=>{n.current=e,g(e)},[]),b=T((e,n)=>(t.current.fetch??fetch)(e,n),[]),v=O(()=>new R({api:Ke(e.apiBase),fetch:b,prepareSendMessagesRequest:async({messages:e})=>{const{apiBase:a,getHeaders:r,credentials:o}=t.current;return{api:Ke(a),body:Q(e,n.current?.id??null),headers:await(r?.())??{},...o?{credentials:o}:{}}}}),[b]),x=F({transport:v,sendAutomaticallyWhen:I,onData:e=>{if(!Y.has(e.type))return void t.current.onDataPart?.(e);if("data-error"===e.type)return void i(e.data.code);if("data-followups"===e.type)return void d(function(e){const t=e?.questions;if(!Array.isArray(t))return[];const n=[];for(const e of t){if("string"!=typeof e)continue;const t=e.trim();!t||t.includes("\n")||n.includes(t)||n.push(t)}return n.slice(0,3)}(e.data));if("data-conversation"!==e.type)return;const{id:a,guest_token:r}=e.data,o=n.current,s=r??(o?.id===a?o.guestToken:void 0);o&&o.id===a&&o.guestToken===s||(y(s?{id:a,guestToken:s}:{id:a}),t.current.onConversation?.(n.current))}}),{setMessages:w,stop:k}=x,N=T(async(e,n)=>{const{apiBase:a,getHeaders:o,credentials:l,onConversation:i}=t.current;r("loading"),d([]);try{const t=await b(Ve(a,e),{method:"GET",headers:await(o?.())??{},...l?{credentials:l}:{},signal:n});if(n.aborted)return;if(404===t.status)return y(null),i?.(null),void r("idle");if(!t.ok)throw new Error(`history ${t.status}`);const c=await t.json();if(n.aborted)return;s(!0===c.handed_over),u(c.people??[]),w(e=>e.length>0?e:ae(c)),r("idle")}catch{n.aborted||r("failed")}},[b,w,y]),C=e.conversationId??null;S(()=>{if(C===(n.current?.id??null)&&x.messages.length>0)return;if(null===C)return n.current&&(y(null),k(),w([]),d([]),u([])),void r("idle");n.current?.id===C||y({id:C});const e=new AbortController;return N(C,e.signal),()=>e.abort()},[C,N,w,k,y]);const $=T(async e=>{const a=n.current?.id;if(a)try{const{apiBase:r,getHeaders:o,credentials:l}=t.current,i=await b(Ve(r,a),{method:"GET",headers:await(o?.())??{},...l?{credentials:l}:{},...e?{signal:e}:{}});if(!i.ok||e?.aborted||n.current?.id!==a)return;const c=await i.json();s(!0===c.handed_over),u(c.people??[]);const d=ae(c),p=d.filter(et),m=d.find(e=>e.id===`pending-approvals-${a}`);if(0===p.length&&!m)return;w(e=>{const t=new Set(e.map(e=>e.id)),n=p.filter(e=>!t.has(e.id));let a=n.length>0?[...e,...n]:e;const r=new Set(a.filter(e=>e.id!==m?.id).flatMap(e=>tt(e).split(",").filter(Boolean)));if(m&&!tt(m).split(",").every(e=>r.has(e))){const e=a.find(e=>e.id===m.id);e?tt(e)!==tt(m)&&(a=[...a.filter(e=>e.id!==m.id),m]):a=[...a,m]}return a})}catch{}},[b,w]),M=A($);M.current=$;const{status:_}=x,B="submitted"===_||"streaming"===_,P=A(!1),D=A(!1),z=!!e.subscribe;S(()=>{const e=P.current&&!B;if(P.current=B,!e)return;if(z&&!D.current)return;D.current=!1;const t=new AbortController;return M.current(t.signal),()=>t.abort()},[B,z]);const E=A(B);E.current=B;const U=f?.id,L=f?.guestToken;S(()=>{const e=n.current,a=t.current.subscribe;if(e&&a)return a(e,()=>{E.current?D.current=!0:M.current()})??void 0},[U,L]);const J=T((e,t=[])=>{const n=e.trim();n&&(i(null),d([]),h(!1),x.sendMessage(t.length>0?{text:n,files:t.map(W)}:{text:n}))},[x]),H=T(async e=>{const a=n.current?.id;if(a){h(!1),d([]);try{const{apiBase:n,getHeaders:r,credentials:o}=t.current,s=await b(function(e,t){return Ze(e,`assistant/chat/${encodeURIComponent(t)}/messages/`)}(n,a),{method:"POST",headers:{"Content-Type":"application/json",...await(r?.())??{}},body:JSON.stringify({text:e}),...o?{credentials:o}:{}});if(!s.ok)throw new Error(`say ${s.status}`);const l=await s.json(),[i]=ae({id:a,messages:[l],pending_approvals:[]});i&&w(e=>e.some(e=>e.id===i.id)?e:[...e,i])}catch{h(!0)}}},[b,w]),X=e.mention??"",Z=p.length>0,K=T((e,t=[])=>{const n=e.trim();n&&(!Z||0!==t.length||q(n,X)?J(n,t):H(n))},[J,H,Z,X]),V=T(e=>J(Z?G(e,X):e),[J,Z,X]),ee=T(()=>{ce(x.messages)&&(i(null),d([]),x.regenerate())},[x]),te=T((e,t)=>{i(null),d([]),x.addToolApprovalResponse({id:e,approved:t})},[x]),ne=T(()=>{k(),y(null),w([]),r("idle"),s(!1),i(null),d([]),u([]),h(!1),t.current.onConversation?.(null)},[w,k,y]);return{conversationId:f?.id??null,messages:x.messages,status:x.status,error:x.error,errorCode:l,canRetry:ce(x.messages),retry:ee,historyState:a,handedOver:o,followups:c,people:p,sayFailed:m,send:K,askAssistant:V,stop:k,approve:te,reset:ne}}function at(e){const t={...Xe,...e.labels},n=e.variant??"panel",a=nt({...e,mention:t.assistantMention}),r=X(a.people),o="submitted"===a.status||"streaming"===a.status,s=A(e.onBusyChange);s.current=e.onBusyChange,S(()=>{s.current?.(o)},[o]);const l="window"===n,i=e.showHeader??"window"!==n,c=e.title??t.title,d=te(a.messages),u=!0===e.readOnly,{onRate:m}=e,{conversationId:h}=a,f=A(!1),{send:g}=a;return S(()=>{f.current||u||e.conversationId||!e.initialQuestion?.trim()||(f.current=!0,g(e.initialQuestion))},[]),/* @__PURE__ */P("section",{"aria-label":c,className:`flex h-full min-h-0 flex-col bg-white text-gray-900 ${e.className??""}`.trim(),children:[i&&/* @__PURE__ */P("header",{className:"flex items-center gap-2 border-b border-gray-200 px-3 py-2",children:[
57
+ /* @__PURE__ */B("h2",{className:"min-w-0 flex-1 truncate text-sm font-semibold",children:c}),a.messages.length>0&&/* @__PURE__ */B(x,{size:"sm",variant:"ghost",onClick:a.reset,children:t.newChat}),e.onClose&&/* @__PURE__ */B(p,{size:"sm","aria-label":t.close,onClick:e.onClose,children:/* @__PURE__ */B(w,{name:"close"})})]}),
58
+ /* @__PURE__ */B(Ge,{messages:a.messages,status:a.status,error:a.error,errorCode:a.errorCode,history:a.historyState,handedOver:a.handedOver,labels:t,title:c,toolLabels:e.toolLabels,showReasoning:l&&!0===e.showReasoning,showToolOutput:l,showUsage:l&&!0===e.showUsage,tableActions:e.tableActions,onApprove:a.approve,onLinkClick:e.onLinkClick,onOpenFile:e.onOpenFile,renderDataPart:e.renderDataPart,userMessageActions:u?void 0:e.userMessageActions,showCopy:e.showCopy??l,answerActions:e.answerActions,onOpenAttachment:e.attachments?.onOpen,followups:a.followups,onAsk:u?void 0:a.askAssistant,onRetry:u?void 0:a.canRetry?a.retry:void 0,onRate:m&&h&&!u?(e,t)=>m({conversationId:h,runId:e,rating:t}):void 0}),d&&/* @__PURE__ */B(Ae,{plan:d,labels:t},d.id),!u&&e.composerTop,!u&&a.sayFailed&&/* @__PURE__ */B("p",{role:"alert",className:"border-t border-line px-3 py-2 text-xs text-danger-text",children:t.sayFailed}),u?/* @__PURE__ */B("p",{role:"note",className:"border-t border-gray-200 px-3 py-2 text-xs text-gray-500",children:t.readOnly}):/* @__PURE__ */B(de,{labels:t,placeholder:r?t.peoplePlaceholder.replace("{names}",r).replace("{mention}",t.assistantMention):e.placeholder??t.placeholder,people:r||void 0,busy:o,focusWhen:e.focusComposer,onSend:a.send,onStop:a.stop,onNewChat:!i&&!1!==e.showNewChat&&a.messages.length>0?a.reset:void 0,actions:e.composerActions,attachments:e.attachments})]})}function rt(e){const t={...Xe,...e.labels},[n,a]=j(e.defaultOpen??!1),r=$(),o=A(null),s=A(n),l=t=>{a(t),e.onOpenChange?.(t)};return S(()=>{s.current&&!n&&o.current?.focus(),s.current=n},[n]),/* @__PURE__ */P("div",{className:"rosh-assistant",style:{display:"contents"},children:[n&&/* @__PURE__ */B("div",{id:r,role:"dialog","aria-label":e.title??t.title,onKeyDown:e=>{"Escape"===e.key&&l(!1)},className:"fixed inset-x-2 bottom-20 z-[var(--z-window,1000)] h-[min(34rem,calc(100dvh-6rem))] overflow-hidden rounded-xl border border-gray-200 shadow-xl sm:inset-x-auto sm:right-4 sm:w-96",children:/* @__PURE__ */B(at,{...e,onClose:()=>l(!1),focusComposer:!0})}),
59
+ /* @__PURE__ */B("button",{ref:o,type:"button","aria-expanded":n,"aria-controls":n?r:void 0,"aria-label":n?t.close:t.open,onClick:()=>l(!n),className:"fixed bottom-4 right-4 z-[var(--z-window,1000)] flex h-12 w-12 items-center justify-center rounded-full shadow-lg bg-[var(--assistant-launcher-bg,var(--color-blue-600))] text-[var(--assistant-launcher-ink,var(--color-white))] hover:bg-[var(--assistant-launcher-bg-hover,var(--color-blue-700))] focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--assistant-launcher-bg,var(--color-blue-600))]",children:/* @__PURE__ */B(w,n?{name:"close",size:20}:{name:"chat-bubble-left-right",size:22})})]})}function ot(e){if("bubble"===e.variant)/* @__PURE__ */return B(rt,{...e});const t="window"!==e.variant;/* @__PURE__ */
60
+ return B(at,{...e,className:`${t?"border-l border-gray-200":""} ${e.className??""}`.trim()})}export{Te as ApprovalCard,ot as AssistantChat,qe as AssistantMessage,Xe as DEFAULT_ASSISTANT_CHAT_LABELS,Y as OWN_DATA_PARTS,Ce as PlanApprovalCard,Ae as PlanChecklist,_e as ToolStep,G as addressedToAssistant,W as attachmentPart,H as attachmentsOf,Q as buildRequestBody,Ie as estimateTokens,ie as failureView,U as filesOf,De as finishedStats,se as isDroppedConnection,Fe as liveStats,q as mentionsAssistant,ae as messagesFromHistory,X as peopleNames,te as pinnedPlan,ee as plansOf,Re as tokensPerSecond,E as toolSummariesOf};
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- export{openFilesInTrashMode,setFilesDemoTree}from"../chunk-MUMQ6PW7.js";export{setBrowserStartUrl}from"../chunk-LWLCNQY7.js";export{BUILTIN_APP_INFO}from"../chunk-UDKOJB2B.js";import"../chunk-XAROKI7X.js";import{setPdfPreview as e}from"../chunk-ESL5TDNA.js";export{setPdfPreview}from"../chunk-ESL5TDNA.js";import{setSpreadsheetPreview as t}from"../chunk-VTVSMRFX.js";export{setSpreadsheetPreview}from"../chunk-VTVSMRFX.js";import"../chunk-ANTH2FBS.js";import"../chunk-CY5N5OA3.js";import"../chunk-AW7TOB6N.js";import"../chunk-KNUR2UEG.js";import"../chunk-JDCM2VHG.js";import"../chunk-E3RHEEA6.js";import"../chunk-ZDMZM7HD.js";import"../chunk-5A7MWTXX.js";import"../chunk-3V6ZERBS.js";import"../chunk-TYK7VN73.js";import"../chunk-6B4F5DWV.js";import"../chunk-GMRZX2ET.js";import"../chunk-4AJRHTTB.js";import"../chunk-VWGWZY7A.js";import"../chunk-PKXQDCNR.js";import{toast_default as o}from"../chunk-OQW42DOR.js";import"../chunk-RKFEJ5CX.js";import"../chunk-UGTRSRIW.js";import"../chunk-CDAJKLGL.js";import"../chunk-KC3EX26K.js";import"../chunk-PYQ6DD3F.js";import"../chunk-MH6DI6YY.js";import"../chunk-5QFPTDQF.js";import"../chunk-URHGHXDN.js";import"../chunk-LNARMEEZ.js";import"../chunk-NHH2MXFU.js";import"../chunk-UQYNPYF4.js";import"../chunk-KKSVRIMP.js";import"../chunk-J75ZT2JQ.js";import"../chunk-HL6JSDN3.js";import"../chunk-R2VKEMZH.js";import"../chunk-MRJKZWWV.js";import"../chunk-OZAAIE4E.js";import"../chunk-BCDG4N6L.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import"../chunk-D65T4H6J.js";import"../chunk-DTJRIWFR.js";import"../chunk-TWVUQUUD.js";import{currentShellStrings as r}from"../chunk-X2PZMXDP.js";import"../chunk-C3QOHMR6.js";import{lazy as n}from"react";function i(e){const t=/\.([a-z0-9]+)(?:[?#].*)?$/i.exec((e||"").trim());return t?t[1].toLowerCase():""}var s=/* @__PURE__ */new Set(["csv","tsv"]),c=/* @__PURE__ */new Set(["xlsx","xls","xlsm","ods"]),m=/* @__PURE__ */new Set(["png","jpg","jpeg","gif","webp","bmp","svg","avif"]),p=/* @__PURE__ */new Set(["step","stp","stl","obj","gltf","glb","3mf","iges","igs"]);function l(e){const t=i(e);return"pdf"===t?"pdf":"dxf"===t?"dxf":s.has(t)?"csv":m.has(t)?"image":p.has(t)?"3d":null}function a(e){window.open(e,"_blank","noopener,noreferrer")}async function u(e,t,o){if(t.fetchBlob)return(await t.fetchBlob(o)).text();const r=await fetch(e);if(!r.ok)throw new Error(`fetch failed: ${r.status}`);return r.text()}function h(e,t){return(e instanceof Error?e.message:"")||t}async function j(n,s,m={}){const p=r().attachment,j=n?.url||"",k=n?.filename||p.fallbackName;if(!j&&!m.fetchBlob)return void o.error(p.noLink);const d=l(k)??l(j);if("csv"===d){try{t({csv:await u(j,m,n),filename:k}),s("/spreadsheet")}catch{o.error(p.spreadsheetFailed),j&&a(j)}return}if(c.has(i(k)||i(j)))return o.error(p.workbookUnavailable),void(j&&a(j));if(!d)return j?(o.info(p.noViewer),void a(j)):void o.error(p.noLink);if(!m.fetchBlob)return e({url:j,filename:k,kind:d}),void s("/preview");const f=e({filename:k,kind:d,converting:!0,convertingMessage:m.loadingMessage||p.loading});s("/preview");try{const e=await m.fetchBlob(n);f.update({url:URL.createObjectURL(e),filename:k,kind:d})}catch(e){f.update({filename:k,kind:d,converting:!1,convertingMessage:h(e,p.loadFailed)})}}var k=n(()=>import("../Calculator-N2NLSDTW.js")),d=n(()=>import("../Spreadsheet-FU5QIZA3.js")),f=n(()=>import("../Weather-2EGADOTH.js")),w=n(()=>import("../CurrencyConverter-HW5HW3RH.js")),g=n(()=>import("../PomodoroTimer-TGUTV47T.js")),T=n(()=>import("../Notepad-OV66ANUO.js")),D=n(()=>import("../WorldClock-U5DIGLOY.js")),v=n(()=>import("../Stock-FEVMKWMS.js")),S=n(()=>import("../Preview-76A4GKGI.js")),b=n(()=>import("../PdfViewer-WNKGFJD6.js")),R=n(()=>import("../Documents-JTURYN4D.js")),N=n(()=>import("../Files-GP2LAGME.js")),M=n(()=>import("../Browser-2S5V2RRU.js")),U={"/calculator":{component:k,label:"Calculator",size:"sm",allowPinOnTop:!0,utility:!0,widget:!0,dimensions:[280,420]},"/spreadsheet":{component:d,label:"Spreadsheets",size:"2xl",appStyle:!0,multiInstance:!0},"/notepad":{component:T,label:"Notepad",size:"lg",allowPinOnTop:!0,flushBody:!0},"/weather":{component:f,label:"Weather",size:"sm",utility:!0,widget:!0,autoHeight:!0,dimensions:[320,400]},"/currency":{component:w,label:"Currency Converter",size:"sm",utility:!0,widget:!0,autoHeight:!0,dimensions:[320,480]},"/pomodoro":{component:g,label:"Pomodoro Timer",size:"sm",utility:!0,widget:!0,dimensions:[320,600]},"/world-clock":{component:D,label:"World Clock",size:"sm",utility:!0,widget:!0,autoHeight:!0,dimensions:[320,480]},"/stock":{component:v,label:"Stocks",size:"sm",utility:!0,widget:!0,autoHeight:!0,dimensions:[320,360]}},W={"/preview":{component:S,label:"Preview",size:"2xl",appStyle:!0,multiInstance:!0},"/documents":{component:R,label:"Documents",size:"xl",appStyle:!0,multiInstance:!0},"/files":{component:N,label:"Files",size:"xl",appStyle:!0}},H={"/browser":{component:M,label:"Browser",size:"2xl",appStyle:!0,multiInstance:!0}},P={...U,...W,...H};export{M as Browser,k as Calculator,w as CurrencyConverter,R as Documents,N as Files,T as Notepad,b as PdfViewer,g as PomodoroTimer,S as Preview,d as Spreadsheet,v as Stock,f as Weather,D as WorldClock,l as attachmentKind,P as bundledApps,W as documentApps,j as openAttachment,U as utilityApps,H as webApps};
2
+ export{openFilesInTrashMode,setFilesDemoTree}from"../chunk-MUMQ6PW7.js";export{setBrowserStartUrl}from"../chunk-LWLCNQY7.js";export{BUILTIN_APP_INFO}from"../chunk-QL4757YL.js";import"../chunk-XAROKI7X.js";import{setPdfPreview as e}from"../chunk-ESL5TDNA.js";export{setPdfPreview}from"../chunk-ESL5TDNA.js";import{setSpreadsheetPreview as t}from"../chunk-VTVSMRFX.js";export{setSpreadsheetPreview}from"../chunk-VTVSMRFX.js";import"../chunk-RP3GUVAI.js";import"../chunk-CY5N5OA3.js";import"../chunk-AW7TOB6N.js";import"../chunk-KNUR2UEG.js";import"../chunk-JDCM2VHG.js";import"../chunk-URERZUX5.js";import"../chunk-ZDMZM7HD.js";import"../chunk-5A7MWTXX.js";import"../chunk-RBQWIHYD.js";import"../chunk-MTX5LMJD.js";import"../chunk-XLYCWGTK.js";import"../chunk-KC3EX26K.js";import"../chunk-QHOBK35Y.js";import"../chunk-SDI2UGAG.js";import"../chunk-YMYY5G6V.js";import"../chunk-VWGWZY7A.js";import"../chunk-PKXQDCNR.js";import{toast_default as o}from"../chunk-AKM6JBMD.js";import"../chunk-UGTRSRIW.js";import"../chunk-PXQG5EIH.js";import"../chunk-CDAJKLGL.js";import"../chunk-6OMCCEYA.js";import"../chunk-37U326EL.js";import"../chunk-URHGHXDN.js";import"../chunk-5QFPTDQF.js";import"../chunk-TXDA7TTP.js";import"../chunk-I4VIEGCX.js";import"../chunk-UQYNPYF4.js";import"../chunk-34URULVW.js";import"../chunk-KKSVRIMP.js";import"../chunk-J75ZT2JQ.js";import"../chunk-R2VKEMZH.js";import"../chunk-MRJKZWWV.js";import"../chunk-MVZRZTQP.js";import"../chunk-6XBWM453.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import"../chunk-D65T4H6J.js";import"../chunk-F27JJHNJ.js";import"../chunk-TWVUQUUD.js";import{currentShellStrings as r}from"../chunk-4PAWQEXM.js";import"../chunk-C3QOHMR6.js";import{lazy as n}from"react";function i(e){const t=/\.([a-z0-9]+)(?:[?#].*)?$/i.exec((e||"").trim());return t?t[1].toLowerCase():""}var s=/* @__PURE__ */new Set(["csv","tsv"]),c=/* @__PURE__ */new Set(["xlsx","xls","xlsm","ods"]),m=/* @__PURE__ */new Set(["png","jpg","jpeg","gif","webp","bmp","svg","avif"]),p=/* @__PURE__ */new Set(["step","stp","stl","obj","gltf","glb","3mf","iges","igs"]);function l(e){const t=i(e);return"pdf"===t?"pdf":"dxf"===t?"dxf":s.has(t)?"csv":m.has(t)?"image":p.has(t)?"3d":null}function a(e){window.open(e,"_blank","noopener,noreferrer")}async function u(e,t,o){if(t.fetchBlob)return(await t.fetchBlob(o)).text();const r=await fetch(e);if(!r.ok)throw new Error(`fetch failed: ${r.status}`);return r.text()}function h(e,t){return(e instanceof Error?e.message:"")||t}async function j(n,s,m={}){const p=r().attachment,j=n?.url||"",k=n?.filename||p.fallbackName;if(!j&&!m.fetchBlob)return void o.error(p.noLink);const d=l(k)??l(j);if("csv"===d){try{t({csv:await u(j,m,n),filename:k}),s("/spreadsheet")}catch{o.error(p.spreadsheetFailed),j&&a(j)}return}if(c.has(i(k)||i(j)))return o.error(p.workbookUnavailable),void(j&&a(j));if(!d)return j?(o.info(p.noViewer),void a(j)):void o.error(p.noLink);if(!m.fetchBlob)return e({url:j,filename:k,kind:d}),void s("/preview");const f=e({filename:k,kind:d,converting:!0,convertingMessage:m.loadingMessage||p.loading});s("/preview");try{const e=await m.fetchBlob(n);f.update({url:URL.createObjectURL(e),filename:k,kind:d})}catch(e){f.update({filename:k,kind:d,converting:!1,convertingMessage:h(e,p.loadFailed)})}}var k=n(()=>import("../Calculator-NSYIXONM.js")),d=n(()=>import("../Spreadsheet-MQR4TQGV.js")),f=n(()=>import("../Weather-PN7XVCZY.js")),w=n(()=>import("../CurrencyConverter-YQ2AZ7ZG.js")),M=n(()=>import("../PomodoroTimer-5KCWCL62.js")),g=n(()=>import("../Notepad-RSYZ7HZA.js")),v=n(()=>import("../WorldClock-JYLOJCUS.js")),b=n(()=>import("../Stock-DMW2REHR.js")),S=n(()=>import("../Preview-PK4QI7SK.js")),C=n(()=>import("../PdfViewer-Z4YKDHIH.js")),P=n(()=>import("../Documents-CMCZA5PH.js")),T=n(()=>import("../Files-UW65YMFW.js")),R=n(()=>import("../Browser-YHMFQIN5.js")),U={"/calculator":{component:k,label:"Calculator",size:"sm",allowPinOnTop:!0,utility:!0,widget:!0,dimensions:[280,420]},"/spreadsheet":{component:d,label:"Spreadsheets",size:"2xl",appStyle:!0,multiInstance:!0},"/notepad":{component:g,label:"Notepad",size:"lg",allowPinOnTop:!0,flushBody:!0},"/weather":{component:f,label:"Weather",size:"sm",utility:!0,widget:!0,autoHeight:!0,dimensions:[320,400]},"/currency":{component:w,label:"Currency Converter",size:"sm",utility:!0,widget:!0,autoHeight:!0,dimensions:[320,480]},"/pomodoro":{component:M,label:"Pomodoro Timer",size:"sm",utility:!0,widget:!0,dimensions:[320,600]},"/world-clock":{component:v,label:"World Clock",size:"sm",utility:!0,widget:!0,autoHeight:!0,dimensions:[320,480]},"/stock":{component:b,label:"Stocks",size:"sm",utility:!0,widget:!0,autoHeight:!0,dimensions:[320,360]}},W={"/preview":{component:S,label:"Preview",size:"2xl",appStyle:!0,multiInstance:!0},"/documents":{component:P,label:"Documents",size:"xl",appStyle:!0,multiInstance:!0},"/files":{component:T,label:"Files",size:"xl",appStyle:!0}},L={"/browser":{component:R,label:"Browser",size:"2xl",appStyle:!0,multiInstance:!0}},D={...U,...W,...L};export{R as Browser,k as Calculator,w as CurrencyConverter,P as Documents,T as Files,g as Notepad,C as PdfViewer,M as PomodoroTimer,S as Preview,d as Spreadsheet,b as Stock,f as Weather,v as WorldClock,l as attachmentKind,D as bundledApps,W as documentApps,j as openAttachment,U as utilityApps,L as webApps};
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- import{createRequire as e}from"module";import{join as n}from"path";import{existsSync as t,readFileSync as i,readdirSync as r}from"fs";var o=/[.+^$()|[\]\\]/g;function s(e){let n="",t=0;for(let i=0;i<e.length;i++){const r=e[i];"*"===r?"*"===e[i+1]?"/"===e[i+2]?(n+="(?:[^/]+/)*",i+=2):(n+=".*",i+=1):n+="[^/]*":"?"===r?n+="[^/]":"{"===r?(n+="(?:",t+=1):"}"===r&&t>0?(n+=")",t-=1):n+=","===r&&t>0?"|":r.replace(o,"\\$&")}if(0!==t)throw new Error(`unbalanced { in glob "${e}"`);return new RegExp(`^${n}$`)}function a(e){const n=e.map(s);return e=>n.some(n=>n.test(e))}var c=new Set(["node_modules",".git"]),g=new Set(["dist","coverage",".next",".turbo"]);function l(e){const n=e.search(/[*?{]/),t=-1===n?e:e.slice(0,n),i=t.lastIndexOf("/");return-1===i?"":t.slice(0,i)}function u(e,t){const i=a(t),o=[...new Set(t.map(l))].sort(),s=o.filter(e=>!o.some(n=>n!==e&&(""===n||e.startsWith(`${n}/`)))),u=new Set,d=t=>{let o;try{o=r(n(e,t),{withFileTypes:!0})}catch{return}for(const e of o){const n=t?`${t}/${e.name}`:e.name;e.isDirectory()?c.has(e.name)||""===t&&g.has(e.name)||d(n):e.isFile()&&i(n)&&u.add(n)}};for(const e of s)d(e);return[...u].sort(h)}var h=(e,n)=>e<n?-1:e>n?1:0,d={busy:{words:["Accepting","Adding","Applying","Approving","Arranging","Asking","Assigning","Booking","Building","Calculating","Cancelling","Capturing","Changing","Checking","Choosing","Closing","Combining","Comparing","Completing","Confirming","Connecting","Converting","Copying","Correcting","Counting","Creating","Deleting","Detaching","Downloading","Drawing","Duplicating","Emailing","Ending","Exporting","Fetching","Filing","Finding","Flushing","Generating","Grouping","Importing","Linking","Loading","Locating","Looking","Making","Marking","Matching","Measuring","Merging","Moving","Opening","Ordering","Paying","Pending","Posting","Preparing","Previewing","Pricing","Processing","Provisioning","Publishing","Purging","Pushing","Queued","Queuing","Quoting","Re-booking","Re-importing","Re-opening","Reading","Rebooting","Rebuilding","Receiving","Reconciling","Reconnecting","Recording","Refreshing","Refunding","Regenerating","Registering","Reinstating","Rejecting","Removing","Reopening","Requesting","Resending","Resetting","Resolving","Restarting","Restoring","Resuming","Retrying","Reversing","Reverting","Running","Saving","Searching","Sending","Setting","Settling","Sharing","Signing","Splitting","Starting","Submitting","Suggesting","Switching","Syncing","Taking","Testing","Transferring","Typing","Updating","Uploading","Verifying","Waiting","Withdrawing","Working"]}};new Set((d.busy?.words??[]).map(e=>e.toLowerCase()));var f=class extends Error{},m=new Set(["$schema","schema","include","exclude","allow"]),p=e=>"object"==typeof e&&null!==e&&!Array.isArray(e),w=e=>"string"==typeof e&&""!==e.trim();var y="d3as2htf4hwbtr.cloudfront.net",S={dealer:{bucket:"inovit-dealer-portal-assets",hosts:["d201q0i87q901p.cloudfront.net"],key_pattern:"^marketing/"},media:{bucket:"regis-media-production",hosts:["media.regis.design","d21nnr9ivf9hcc.cloudfront.net"],key_pattern:"^[a-z0-9_]+/storefront/(?!uploads/thumbs/)"},site:{bucket:"inovit-ecommerce-media",hosts:["cdn.inovit.com","dhxlibd8r3td0.cloudfront.net"],key_pattern:"^images/"}},$=Object.values(S),R=Object.freeze([...new Set([...$.flatMap(e=>e.hosts),y,...$.map(e=>e.bucket)])].sort()),b=new RegExp([...R.map(e=>{return`(?<![\\w-])${n=e,n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}(?![\\w-])`;var n}),"(?<![\\w-])[a-z0-9]+\\.cloudfront\\.net(?![\\w-])","(?<![\\w-])(?:[a-z0-9-]+\\.)*s3(?:[.-][a-z0-9-]+)*\\.amazonaws\\.com(?![\\w-])","s3://"].join("|"),"gi");function k(e,n,t){const i=e.createSourceFile(n,t,e.ScriptTarget.Latest,!0,function(e,n){return n.endsWith(".tsx")?e.ScriptKind.TSX:n.endsWith(".jsx")?e.ScriptKind.JSX:/\.[cm]?js$/.test(n)?e.ScriptKind.JS:e.ScriptKind.TS}(e,n)),r=[],o=(e,n)=>{const t=i.getLineAndCharacterOfPosition(e.getStart(i)).line+1;for(const e of function(e){return[...e.matchAll(b)].map(e=>({match:e[0],index:e.index??0}))}(n)){const i=n.slice(0,e.index);r.push({line:t+(i.match(/\n/g)?.length??0),match:e.match})}},s=n=>{e.isStringLiteral(n)||e.isNoSubstitutionTemplateLiteral(n)||e.isTemplateHead(n)||e.isTemplateMiddle(n)||e.isTemplateTail(n)?o(n,n.text):e.isRegularExpressionLiteral(n)&&o(n,n.text.replace(/\\(.)/g,"$1")),e.forEachChild(n,s)};return s(i),r}var v="media-host-check.config.json",x="efficient-shell-media-host-check",C=`${x}: no code writes a media origin; files are reached through the storage backend, the API's URL, media() or imageCopyUrl() (harness API-15, SSOT-2).\n\n ${x} check this repository; exits 1 on a finding\n ${x} --json print the result as JSON\n\nRefused in any string, template or regular expression: every host and bucket in\nthe image-copies contract, any *.cloudfront.net host, any S3 endpoint, and s3://.\nReads ${v} in the current directory.`;function A(e,t,r){const o=[],s=a(r.exclude);for(const e of r.include)0===u(t,[e]).length&&o.push(`include "${e}" matches no file; delete it`);const c=u(t,r.include).filter(e=>(e=>/\.(?:[cm]?[jt]s|[jt]sx)$/.test(e)&&!e.endsWith(".d.ts"))(e)&&!s(e)),g=[];for(const r of c)for(const o of k(e,r,i(n(t,r),"utf8")))g.push({file:r,...o});const l=(e,n)=>e.toLowerCase()===n.toLowerCase();for(const e of r.allow)g.some(n=>n.file===e.file&&l(e.match,n.match))||o.push(`allow ${e.file} "${e.match}" matches nothing any more; delete it`);return{files:c.length,findings:g.filter(e=>!(e=>r.allow.some(n=>n.file===e.file&&l(n.match,e.match)))(e)),problems:o}}process.exitCode=function(e,r){let o=!1;for(const n of e){if("--help"===n||"-h"===n)return r.out(C),0;if("--version"===n||"-v"===n)return r.out(r.version),0;if("--json"!==n)return r.err(`${x}: unknown argument "${n}"\n\n${C}`),2;o=!0}const s=n(r.cwd,v);if(!t(s))return r.err(`${x}: no ${v} in ${r.cwd}. Run it from the repository root.`),2;let a;try{const e=function(e,n="media-host-check.config.json"){const t=[];if(!p(e))throw new f(`${n}: expected an object`);for(const n of Object.keys(e))m.has(n)||t.push(`unknown key "${n}"`);1!==e.schema&&t.push('"schema" must be 1');const i=(n,i)=>{const r=e[n];return void 0!==r||i?!Array.isArray(r)||!r.every(w)||i&&0===r.length?(t.push(`"${n}" must be ${i?"a non-empty":"an"} array of globs`),[]):r:[]},r=i("include",!0),o=i("exclude",!1),s=[];void 0===e.allow||Array.isArray(e.allow)||t.push('"allow" must be an array');for(const[n,i]of(Array.isArray(e.allow)?e.allow:[]).entries()){if(!(p(i)&&w(i.file)&&w(i.match)&&w(i.reason))){t.push(`allow[${n}] needs "file", "match" and "reason", each a non-empty string`);continue}const e=Object.keys(i).filter(e=>!["file","match","reason"].includes(e));e.length&&t.push(`allow[${n}] has unknown keys: ${e.join(", ")}`),s.push({file:i.file,match:i.match,reason:i.reason})}if(t.length)throw new f(`${n}:\n ${t.join("\n ")}`);return{schema:1,include:r,exclude:o,allow:s}}(JSON.parse(i(s,"utf8")),v);a=A(r.loadTypeScript(),r.cwd,e)}catch(e){return r.err(`${x}: ${e instanceof f||e instanceof SyntaxError?e.message:String(e)}`),2}const c=a.findings.length>0||a.problems.length>0;if(o)return r.out(JSON.stringify({ok:!c,...a},null,2)),c?1:0;if(!c)return r.out(`${x}: ${a.files} files, no media origin written in code (harness API-15, SSOT-2).`),0;for(const e of a.findings)r.err(`${e.file}:${e.line} "${e.match}" is a media origin written in code.`);for(const e of a.problems)r.err(`${v}: ${e}`);return a.findings.length&&r.err(`\nReach the file through the storage backend, the URL the API returns, media() or imageCopyUrl() (harness API-15, SSOT-2). An origin that must stay goes in "allow" in ${v}, with its reason.`),1}(process.argv.slice(2),{cwd:process.cwd(),out:e=>console.log(e),err:e=>console.error(e),loadTypeScript:()=>function(t){for(const i of[n(process.cwd(),"package.json"),t])try{return e(i)("typescript")}catch{}throw new Error("typescript is not installed")}(import.meta.url),version:"10.1.0"});
2
+ import{createRequire as e}from"module";import{join as n}from"path";import{existsSync as t,readFileSync as i,readdirSync as r}from"fs";var o=/[.+^$()|[\]\\]/g;function s(e){let n="",t=0;for(let i=0;i<e.length;i++){const r=e[i];"*"===r?"*"===e[i+1]?"/"===e[i+2]?(n+="(?:[^/]+/)*",i+=2):(n+=".*",i+=1):n+="[^/]*":"?"===r?n+="[^/]":"{"===r?(n+="(?:",t+=1):"}"===r&&t>0?(n+=")",t-=1):n+=","===r&&t>0?"|":r.replace(o,"\\$&")}if(0!==t)throw new Error(`unbalanced { in glob "${e}"`);return new RegExp(`^${n}$`)}function a(e){const n=e.map(s);return e=>n.some(n=>n.test(e))}var c=new Set(["node_modules",".git"]),g=new Set(["dist","coverage",".next",".turbo"]);function l(e){const n=e.search(/[*?{]/),t=-1===n?e:e.slice(0,n),i=t.lastIndexOf("/");return-1===i?"":t.slice(0,i)}function u(e,t){const i=a(t),o=[...new Set(t.map(l))].sort(),s=o.filter(e=>!o.some(n=>n!==e&&(""===n||e.startsWith(`${n}/`)))),u=new Set,d=t=>{let o;try{o=r(n(e,t),{withFileTypes:!0})}catch{return}for(const e of o){const n=t?`${t}/${e.name}`:e.name;e.isDirectory()?c.has(e.name)||""===t&&g.has(e.name)||d(n):e.isFile()&&i(n)&&u.add(n)}};for(const e of s)d(e);return[...u].sort(h)}var h=(e,n)=>e<n?-1:e>n?1:0,d={busy:{words:["Accepting","Adding","Applying","Approving","Arranging","Asking","Assigning","Booking","Building","Calculating","Cancelling","Capturing","Changing","Checking","Choosing","Closing","Combining","Comparing","Completing","Confirming","Connecting","Converting","Copying","Correcting","Counting","Creating","Deleting","Detaching","Downloading","Drawing","Duplicating","Emailing","Ending","Exporting","Fetching","Filing","Finding","Flushing","Generating","Grouping","Importing","Linking","Loading","Locating","Looking","Making","Marking","Matching","Measuring","Merging","Moving","Opening","Ordering","Paying","Pending","Posting","Preparing","Previewing","Pricing","Processing","Provisioning","Publishing","Purging","Pushing","Queued","Queuing","Quoting","Re-booking","Re-importing","Re-opening","Reading","Rebooting","Rebuilding","Receiving","Reconciling","Reconnecting","Recording","Refreshing","Refunding","Regenerating","Registering","Reinstating","Rejecting","Removing","Reopening","Requesting","Resending","Resetting","Resolving","Restarting","Restoring","Resuming","Retrying","Reversing","Reverting","Running","Saving","Searching","Sending","Setting","Settling","Sharing","Signing","Splitting","Starting","Submitting","Suggesting","Switching","Syncing","Taking","Testing","Transferring","Typing","Updating","Uploading","Verifying","Waiting","Withdrawing","Working"]}};new Set((d.busy?.words??[]).map(e=>e.toLowerCase()));var f=class extends Error{},m=new Set(["$schema","schema","include","exclude","allow"]),p=e=>"object"==typeof e&&null!==e&&!Array.isArray(e),w=e=>"string"==typeof e&&""!==e.trim();var y="d3as2htf4hwbtr.cloudfront.net",S={dealer:{bucket:"inovit-dealer-portal-assets",hosts:["d201q0i87q901p.cloudfront.net"],key_pattern:"^marketing/"},media:{bucket:"regis-media-production",hosts:["media.regis.design","d21nnr9ivf9hcc.cloudfront.net"],key_pattern:"^[a-z0-9_]+/storefront/(?!uploads/thumbs/)"},site:{bucket:"inovit-ecommerce-media",hosts:["cdn.inovit.com","dhxlibd8r3td0.cloudfront.net"],key_pattern:"^images/"}},$=Object.values(S),R=Object.freeze([...new Set([...$.flatMap(e=>e.hosts),y,...$.map(e=>e.bucket)])].sort()),b=new RegExp([...R.map(e=>{return`(?<![\\w-])${n=e,n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}(?![\\w-])`;var n}),"(?<![\\w-])[a-z0-9]+\\.cloudfront\\.net(?![\\w-])","(?<![\\w-])(?:[a-z0-9-]+\\.)*s3(?:[.-][a-z0-9-]+)*\\.amazonaws\\.com(?![\\w-])","s3://"].join("|"),"gi");function k(e,n,t){const i=e.createSourceFile(n,t,e.ScriptTarget.Latest,!0,function(e,n){return n.endsWith(".tsx")?e.ScriptKind.TSX:n.endsWith(".jsx")?e.ScriptKind.JSX:/\.[cm]?js$/.test(n)?e.ScriptKind.JS:e.ScriptKind.TS}(e,n)),r=[],o=(e,n)=>{const t=i.getLineAndCharacterOfPosition(e.getStart(i)).line+1;for(const e of function(e){return[...e.matchAll(b)].map(e=>({match:e[0],index:e.index??0}))}(n)){const i=n.slice(0,e.index);r.push({line:t+(i.match(/\n/g)?.length??0),match:e.match})}},s=n=>{e.isStringLiteral(n)||e.isNoSubstitutionTemplateLiteral(n)||e.isTemplateHead(n)||e.isTemplateMiddle(n)||e.isTemplateTail(n)?o(n,n.text):e.isRegularExpressionLiteral(n)&&o(n,n.text.replace(/\\(.)/g,"$1")),e.forEachChild(n,s)};return s(i),r}var v="media-host-check.config.json",x="efficient-shell-media-host-check",C=`${x}: no code writes a media origin; files are reached through the storage backend, the API's URL, media() or imageCopyUrl() (harness API-15, SSOT-2).\n\n ${x} check this repository; exits 1 on a finding\n ${x} --json print the result as JSON\n\nRefused in any string, template or regular expression: every host and bucket in\nthe image-copies contract, any *.cloudfront.net host, any S3 endpoint, and s3://.\nReads ${v} in the current directory.`;function A(e,t,r){const o=[],s=a(r.exclude);for(const e of r.include)0===u(t,[e]).length&&o.push(`include "${e}" matches no file; delete it`);const c=u(t,r.include).filter(e=>(e=>/\.(?:[cm]?[jt]s|[jt]sx)$/.test(e)&&!e.endsWith(".d.ts"))(e)&&!s(e)),g=[];for(const r of c)for(const o of k(e,r,i(n(t,r),"utf8")))g.push({file:r,...o});const l=(e,n)=>e.toLowerCase()===n.toLowerCase();for(const e of r.allow)g.some(n=>n.file===e.file&&l(e.match,n.match))||o.push(`allow ${e.file} "${e.match}" matches nothing any more; delete it`);return{files:c.length,findings:g.filter(e=>!(e=>r.allow.some(n=>n.file===e.file&&l(n.match,e.match)))(e)),problems:o}}process.exitCode=function(e,r){let o=!1;for(const n of e){if("--help"===n||"-h"===n)return r.out(C),0;if("--version"===n||"-v"===n)return r.out(r.version),0;if("--json"!==n)return r.err(`${x}: unknown argument "${n}"\n\n${C}`),2;o=!0}const s=n(r.cwd,v);if(!t(s))return r.err(`${x}: no ${v} in ${r.cwd}. Run it from the repository root.`),2;let a;try{const e=function(e,n="media-host-check.config.json"){const t=[];if(!p(e))throw new f(`${n}: expected an object`);for(const n of Object.keys(e))m.has(n)||t.push(`unknown key "${n}"`);1!==e.schema&&t.push('"schema" must be 1');const i=(n,i)=>{const r=e[n];return void 0!==r||i?!Array.isArray(r)||!r.every(w)||i&&0===r.length?(t.push(`"${n}" must be ${i?"a non-empty":"an"} array of globs`),[]):r:[]},r=i("include",!0),o=i("exclude",!1),s=[];void 0===e.allow||Array.isArray(e.allow)||t.push('"allow" must be an array');for(const[n,i]of(Array.isArray(e.allow)?e.allow:[]).entries()){if(!(p(i)&&w(i.file)&&w(i.match)&&w(i.reason))){t.push(`allow[${n}] needs "file", "match" and "reason", each a non-empty string`);continue}const e=Object.keys(i).filter(e=>!["file","match","reason"].includes(e));e.length&&t.push(`allow[${n}] has unknown keys: ${e.join(", ")}`),s.push({file:i.file,match:i.match,reason:i.reason})}if(t.length)throw new f(`${n}:\n ${t.join("\n ")}`);return{schema:1,include:r,exclude:o,allow:s}}(JSON.parse(i(s,"utf8")),v);a=A(r.loadTypeScript(),r.cwd,e)}catch(e){return r.err(`${x}: ${e instanceof f||e instanceof SyntaxError?e.message:String(e)}`),2}const c=a.findings.length>0||a.problems.length>0;if(o)return r.out(JSON.stringify({ok:!c,...a},null,2)),c?1:0;if(!c)return r.out(`${x}: ${a.files} files, no media origin written in code (harness API-15, SSOT-2).`),0;for(const e of a.findings)r.err(`${e.file}:${e.line} "${e.match}" is a media origin written in code.`);for(const e of a.problems)r.err(`${v}: ${e}`);return a.findings.length&&r.err(`\nReach the file through the storage backend, the URL the API returns, media() or imageCopyUrl() (harness API-15, SSOT-2). An origin that must stay goes in "allow" in ${v}, with its reason.`),1}(process.argv.slice(2),{cwd:process.cwd(),out:e=>console.log(e),err:e=>console.error(e),loadTypeScript:()=>function(t){for(const i of[n(process.cwd(),"package.json"),t])try{return e(i)("typescript")}catch{}throw new Error("typescript is not installed")}(import.meta.url),version:"10.2.1"});