efficient-shell 10.16.0 → 10.17.0
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.
- package/dist/{Browser-RI5X7GMK.js → Browser-Q5BYSSW3.js} +14 -14
- package/dist/Calculator-6NJNSIRN.js +29 -0
- package/dist/{CurrencyConverter-2GUEE7ZR.js → CurrencyConverter-42IHLJVV.js} +8 -8
- package/dist/{Documents-GI346UL5.js → Documents-GGEPMWB5.js} +21 -21
- package/dist/Files-OVNXUYOV.js +88 -0
- package/dist/{Notepad-HRZKLHO3.js → Notepad-L2LOWTSE.js} +10 -10
- package/dist/{PdfViewer-LU5JKHSG.js → PdfViewer-Y3SAVADX.js} +1 -1
- package/dist/{PomodoroTimer-QYCTTTPZ.js → PomodoroTimer-PD7POYX5.js} +68 -68
- package/dist/{Preview-LSGN5GN7.js → Preview-HM2Z3EJO.js} +25 -25
- package/dist/Sidebar-2HHICMZZ.js +44 -0
- package/dist/{Spreadsheet-7JBZY6KJ.js → Spreadsheet-2E4TQ64O.js} +13 -13
- package/dist/{Stock-ZVQT25IE.js → Stock-IABQRSXZ.js} +3 -3
- package/dist/{Weather-RAUDLLVU.js → Weather-4QPYOENN.js} +22 -22
- package/dist/{WorldClock-2XBWZ6SZ.js → WorldClock-3ZVRBLEW.js} +6 -6
- package/dist/ai/index.d.ts +1 -1
- package/dist/ai/index.js +80 -80
- package/dist/apps/index.js +1 -1
- package/dist/bin/media-host-check.js +1 -1
- package/dist/bin/ui-check.js +1 -1
- package/dist/charts/BoxPlotChart.js +1 -1
- package/dist/charts/CandlestickChart.js +1 -1
- package/dist/charts/CartesianPlot.js +1 -1
- package/dist/charts/ChartBrush.js +1 -1
- package/dist/charts/ChartFrame.js +1 -1
- package/dist/charts/ChartSkeleton.js +1 -1
- package/dist/charts/ChordChart.js +1 -1
- package/dist/charts/ColumnChart.js +1 -1
- package/dist/charts/FunnelChart.js +1 -1
- package/dist/charts/HeatmapChart.js +1 -1
- package/dist/charts/HistogramChart.js +1 -1
- package/dist/charts/Meter.js +1 -1
- package/dist/charts/PieChart.js +1 -1
- package/dist/charts/RadarChart.js +1 -1
- package/dist/charts/RadialBarChart.js +1 -1
- package/dist/charts/RangeChart.js +1 -1
- package/dist/charts/RankedBars.js +1 -1
- package/dist/charts/SankeyChart.js +1 -1
- package/dist/charts/ScatterChart.js +1 -1
- package/dist/charts/SpecChart.js +1 -1
- package/dist/charts/StatTile.js +1 -1
- package/dist/charts/SunburstChart.js +1 -1
- package/dist/charts/TimeSeriesChart.js +1 -1
- package/dist/charts/TreemapChart.js +1 -1
- package/dist/charts/WaterfallChart.js +1 -1
- package/dist/{chunk-W6URVLQF.js → chunk-22RQC4EW.js} +14 -14
- package/dist/chunk-26RTJKHD.js +2 -0
- package/dist/{chunk-F2R3UFNQ.js → chunk-2E2SUEEE.js} +1 -1
- package/dist/chunk-2H6YNMBE.js +14 -0
- package/dist/{chunk-7HTRLRVO.js → chunk-2YSGXZOL.js} +50 -50
- package/dist/{chunk-M22B3Y5Y.js → chunk-3IUPYCW3.js} +1 -1
- package/dist/{chunk-JGTGQGHY.js → chunk-3PR5YMWZ.js} +1 -1
- package/dist/{chunk-MNSKGMVZ.js → chunk-3UXXA2CS.js} +8 -8
- package/dist/{chunk-XDBG4HPV.js → chunk-4EZIWLJJ.js} +1 -1
- package/dist/{chunk-E3753CWP.js → chunk-4HBSQGRI.js} +1 -1
- package/dist/{chunk-EZEYKCI6.js → chunk-4ULRP4Y4.js} +1 -1
- package/dist/{chunk-LDE5IV2M.js → chunk-54NMFQMW.js} +4 -4
- package/dist/{chunk-DRDYZ633.js → chunk-5QGBVTGS.js} +2 -2
- package/dist/{chunk-57HN6MPC.js → chunk-5SIOCKCK.js} +2 -2
- package/dist/{chunk-ISJPW2FZ.js → chunk-5TDQPZDB.js} +10 -10
- package/dist/chunk-5TQLUPZD.js +6 -0
- package/dist/{chunk-D7F442OZ.js → chunk-5WYRAJ5F.js} +1 -1
- package/dist/chunk-67MQ5S32.js +8 -0
- package/dist/chunk-6JSXIEH2.js +4 -0
- package/dist/{chunk-ULXCDM7Y.js → chunk-6V4INP7J.js} +10 -10
- package/dist/{chunk-7NBSBGLX.js → chunk-77AQNJE2.js} +8 -8
- package/dist/{chunk-Y3R267FV.js → chunk-77MOYIQW.js} +10 -10
- package/dist/{chunk-AKM6JBMD.js → chunk-7ELJQL7J.js} +1 -1
- package/dist/chunk-7INZ7O3A.js +5 -0
- package/dist/{chunk-UPQW4GCT.js → chunk-7TZV6G2F.js} +1 -1
- package/dist/{chunk-X6BFVDB4.js → chunk-7VBXIIEC.js} +2 -2
- package/dist/{chunk-UWIZX3RK.js → chunk-A42MKJA3.js} +1 -1
- package/dist/{chunk-DKGZPVLL.js → chunk-AFYLVV74.js} +1 -1
- package/dist/{chunk-H4HB5OET.js → chunk-AWKJZSTO.js} +1 -1
- package/dist/{chunk-H32EQG5Z.js → chunk-AYDW63LV.js} +9 -9
- package/dist/chunk-B23RG53S.js +14 -0
- package/dist/chunk-B3CN55UI.js +2 -0
- package/dist/{chunk-CPZ42W2B.js → chunk-C6Y7B73Q.js} +1 -1
- package/dist/{chunk-QP4UPCXQ.js → chunk-C764JODK.js} +1 -1
- package/dist/{chunk-LEDUD23S.js → chunk-CLTRQ7AQ.js} +1 -1
- package/dist/chunk-CUHUZBFH.js +29 -0
- package/dist/chunk-CXYHFGUY.js +9 -0
- package/dist/{chunk-TM33D3CE.js → chunk-DCRLJMQ6.js} +1 -1
- package/dist/{chunk-AOK3BHRT.js → chunk-DGZAQXTW.js} +4 -4
- package/dist/{chunk-UYRITNQW.js → chunk-DHIQ46C5.js} +1 -1
- package/dist/{chunk-IOJNSX4N.js → chunk-DQQKG46I.js} +7 -7
- package/dist/chunk-DYNJ2H6R.js +8 -0
- package/dist/{chunk-INNIWRVU.js → chunk-E6GDAV5R.js} +2 -2
- package/dist/{chunk-N3TOHWFF.js → chunk-ECJKIPWU.js} +1 -1
- package/dist/chunk-EJUNGVK2.js +22 -0
- package/dist/{chunk-3EJ64VKE.js → chunk-EN5NXWT6.js} +1 -1
- package/dist/{chunk-MCDM2G4W.js → chunk-EOWUUOVE.js} +1 -1
- package/dist/{chunk-7TNAOZZ2.js → chunk-EPY34L26.js} +1 -1
- package/dist/{chunk-PVZGSCCB.js → chunk-FACWYKL6.js} +6 -6
- package/dist/{chunk-6AS5PHHK.js → chunk-FKRPQDFX.js} +17 -17
- package/dist/{chunk-QHOBK35Y.js → chunk-FOFZI62F.js} +1 -1
- package/dist/{chunk-7ZP64SC7.js → chunk-FS6EOU4G.js} +1 -1
- package/dist/chunk-GDQJBQ5B.js +1 -0
- package/dist/{chunk-YOSUCCHG.js → chunk-GEP4FROW.js} +3 -3
- package/dist/chunk-HJCUDXLV.js +1 -0
- package/dist/{chunk-S6FBMSFU.js → chunk-HJW67KA7.js} +2 -2
- package/dist/{chunk-7X5FABQS.js → chunk-HV47GP2C.js} +1 -1
- package/dist/{chunk-74OUAR6L.js → chunk-I33SVQ7P.js} +6 -6
- package/dist/{chunk-KJ4CBZEQ.js → chunk-IMDGMUE3.js} +1 -1
- package/dist/{chunk-HNBGLF4B.js → chunk-JFV5CQN4.js} +1 -1
- package/dist/{chunk-7MSC3Z5H.js → chunk-JH4ZCPHW.js} +8 -8
- package/dist/chunk-JIGFR7Z3.js +11 -0
- package/dist/chunk-JNQKBN5M.js +7 -0
- package/dist/{chunk-OOLPDASG.js → chunk-JSG2AKCG.js} +1 -1
- package/dist/{chunk-6RX4PVBU.js → chunk-JTMEFXRL.js} +1 -1
- package/dist/{chunk-4QJOEHM6.js → chunk-JYIH2EBG.js} +1 -1
- package/dist/chunk-K4JQ3FQI.js +2 -0
- package/dist/{chunk-ULAGXDOL.js → chunk-LXL2UCUR.js} +1 -1
- package/dist/{chunk-I2XGPTCN.js → chunk-LYHJHUQH.js} +1 -1
- package/dist/{chunk-JSGQWVYH.js → chunk-MJGK6QTO.js} +7 -7
- package/dist/{chunk-PYAJCN2Q.js → chunk-MNNZGO2E.js} +1 -1
- package/dist/{chunk-XTCXX5LJ.js → chunk-MS5APD3V.js} +1 -1
- package/dist/chunk-MUXGWDEH.js +2 -0
- package/dist/{chunk-PCFBDXLN.js → chunk-N6CS2FO2.js} +1 -1
- package/dist/{chunk-2SY76NFO.js → chunk-NFB7PARJ.js} +4 -4
- package/dist/{chunk-K4ANB6AF.js → chunk-NNZFC4O7.js} +1 -1
- package/dist/{chunk-MHB52H2Y.js → chunk-NU5HN3FZ.js} +12 -12
- package/dist/{chunk-QYSEYYV7.js → chunk-NVD4AI5Y.js} +1 -1
- package/dist/{chunk-AJO72CPB.js → chunk-O47HKK6E.js} +2 -2
- package/dist/{chunk-BJXDOM2N.js → chunk-OBJGUJIE.js} +1 -1
- package/dist/{chunk-AUWTGM65.js → chunk-OH5L6HYW.js} +3 -3
- package/dist/{chunk-WINNA7LS.js → chunk-OORL6BIG.js} +1 -1
- package/dist/{chunk-KTA77U3P.js → chunk-OP5DOO3K.js} +4 -4
- package/dist/{chunk-ZURB2DCM.js → chunk-OPN4I565.js} +1 -1
- package/dist/{chunk-7SMV6G4Z.js → chunk-ORIXCEKO.js} +1 -1
- package/dist/{chunk-TOVKWNI2.js → chunk-P3RXXWXN.js} +6 -6
- package/dist/{chunk-ON67HF5K.js → chunk-PCTOL2FX.js} +8 -8
- package/dist/{chunk-XZGGJHJC.js → chunk-PLK2WHZG.js} +17 -17
- package/dist/{chunk-QDQ347RL.js → chunk-PW52RXPI.js} +1 -1
- package/dist/chunk-QDKAA3HR.js +2 -0
- package/dist/chunk-QHPVAXHR.js +6 -0
- package/dist/chunk-QO5E33DH.js +8 -0
- package/dist/{chunk-7HLC352T.js → chunk-QRYSL6QU.js} +16 -16
- package/dist/{chunk-LPXMHYTM.js → chunk-QVZKRROQ.js} +1 -1
- package/dist/{chunk-EXJXOKUU.js → chunk-QYL26AB4.js} +1 -1
- package/dist/{chunk-SDQIXE5M.js → chunk-RBBIAIPH.js} +8 -8
- package/dist/{chunk-TVH7IZQ4.js → chunk-REWKL7MX.js} +2 -2
- package/dist/{chunk-L4IW77TD.js → chunk-RT4WOEVS.js} +4 -4
- package/dist/{chunk-SG4LO2AN.js → chunk-RUGQO7YF.js} +11 -11
- package/dist/{chunk-MTEFYFUO.js → chunk-RVRDDTEG.js} +1 -1
- package/dist/{chunk-D4I3U7UE.js → chunk-RXCGE2AY.js} +1 -1
- package/dist/{chunk-UDRMZ22J.js → chunk-S74LKSUB.js} +1 -1
- package/dist/{chunk-QYRMFGES.js → chunk-SAP4YI2Y.js} +1 -1
- package/dist/{chunk-CKKUFDZ3.js → chunk-SDDV3UCN.js} +18 -18
- package/dist/{chunk-KEPJWZJZ.js → chunk-SL77N7VT.js} +3 -3
- package/dist/chunk-SLU45G5J.js +19 -0
- package/dist/{chunk-5RE6R3XC.js → chunk-SXNQHIBY.js} +1 -1
- package/dist/{chunk-GGK27H67.js → chunk-TGGUYAWA.js} +1 -1
- package/dist/chunk-TGXO3CDO.js +2 -0
- package/dist/chunk-TLMFVEMC.js +9 -0
- package/dist/{chunk-MQU3PZUS.js → chunk-TMMNCXQT.js} +1 -1
- package/dist/{chunk-CQV3VSI2.js → chunk-UDKTAG57.js} +1 -1
- package/dist/{chunk-UTWJKSET.js → chunk-UEISJFZH.js} +5 -5
- package/dist/{chunk-CBEKJTXU.js → chunk-UYRMW5MO.js} +5 -5
- package/dist/{chunk-RLJHRDDW.js → chunk-V6Y4OC6K.js} +8 -8
- package/dist/{chunk-W5CJD54C.js → chunk-VAK5FQXH.js} +1 -1
- package/dist/{chunk-WB4P4QE2.js → chunk-VDUXPMOQ.js} +1 -1
- package/dist/{chunk-O7DW2BKY.js → chunk-VHF3CJVO.js} +28 -28
- package/dist/{chunk-KTVXPGGB.js → chunk-VIQ6OME2.js} +8 -8
- package/dist/{chunk-7UTPXU6K.js → chunk-VN4KSRZ5.js} +1 -1
- package/dist/{chunk-RPYFOQM2.js → chunk-VQCSHJEF.js} +2 -2
- package/dist/chunk-VWIYC2NB.js +13 -0
- package/dist/chunk-WRQ4A5QY.js +1 -0
- package/dist/{chunk-3LDXURVU.js → chunk-WTYQF7XJ.js} +2 -2
- package/dist/{chunk-GPJO34QP.js → chunk-WYFMSL4Q.js} +8 -8
- package/dist/{chunk-FEQDZTZ7.js → chunk-XCHAU2UN.js} +6 -6
- package/dist/chunk-XGJQVIEG.js +2 -0
- package/dist/{chunk-VTFZ6W2D.js → chunk-XLWMM53L.js} +1 -1
- package/dist/{chunk-VKKK4WLS.js → chunk-XQZL6JDD.js} +6 -6
- package/dist/{chunk-JEH5EVIG.js → chunk-XSJHN2GD.js} +1 -1
- package/dist/{chunk-BNJWZAQE.js → chunk-XYBI57KO.js} +12 -12
- package/dist/{chunk-3AH524CN.js → chunk-XYECIBVX.js} +1 -1
- package/dist/{chunk-LO5T2K4B.js → chunk-Y62TTKSY.js} +3 -3
- package/dist/{chunk-6C6TRDNI.js → chunk-YG2TWBDH.js} +1 -1
- package/dist/{chunk-SHKBDFSE.js → chunk-YILGAEW3.js} +1 -1
- package/dist/chunk-YJ5IHIAI.js +2 -0
- package/dist/{chunk-FWVC4A2O.js → chunk-YJXS7BR5.js} +1 -1
- package/dist/{chunk-NBVHJZVS.js → chunk-YQFGRYEF.js} +12 -12
- package/dist/{chunk-4G2C6J4I.js → chunk-YSDPFDAG.js} +1 -1
- package/dist/{chunk-B7UCXROE.js → chunk-Z5A4EY2R.js} +1 -1
- package/dist/{chunk-ZW3IDCP2.js → chunk-ZGOHRLXG.js} +1 -1
- package/dist/{chunk-5UYZ75F3.js → chunk-ZHAWOZA7.js} +11 -11
- package/dist/{chunk-IKNG7EFQ.js → chunk-ZQKA2XKH.js} +8 -8
- package/dist/data/DataTable.js +1 -1
- package/dist/data/Kanban.js +1 -1
- package/dist/data/ListFooter.js +1 -1
- package/dist/data/ListLoadError.js +1 -1
- package/dist/data/Pagination.js +1 -1
- package/dist/file-intake/index.js +1 -1
- package/dist/forms/BorderInput.js +1 -1
- package/dist/forms/BrandAssetEditor.js +1 -1
- package/dist/forms/Calendar.js +1 -1
- package/dist/forms/ColorPicker.js +1 -1
- package/dist/forms/ComposerAttachments.js +1 -1
- package/dist/forms/CornersInput.js +1 -1
- package/dist/forms/DatePicker.js +1 -1
- package/dist/forms/DateRangePicker.js +1 -1
- package/dist/forms/DateTimePicker.js +1 -1
- package/dist/forms/DisplayChips.js +1 -1
- package/dist/forms/FilePicker.js +1 -1
- package/dist/forms/FormErrorSummary.js +1 -1
- package/dist/forms/IconPicker.js +1 -1
- package/dist/forms/ImageFocusPoint.js +1 -1
- package/dist/forms/InputNumber.js +1 -1
- package/dist/forms/LinkPicker.js +1 -1
- package/dist/forms/MediaLibrary.js +1 -1
- package/dist/forms/MediaUploadField.js +1 -1
- package/dist/forms/MediaUploadGrid.js +1 -1
- package/dist/forms/MediaUsedInList.js +1 -1
- package/dist/forms/NumericKeypad.js +1 -1
- package/dist/forms/PositionInput.js +1 -1
- package/dist/forms/Select.d.ts +1 -1
- package/dist/forms/Select.js +1 -1
- package/dist/forms/SidesInput.js +1 -1
- package/dist/forms/Slider.js +1 -1
- package/dist/forms/Snippet.js +1 -1
- package/dist/forms/TagInput.js +1 -1
- package/dist/forms/TextToolbar.d.ts +1 -1
- package/dist/forms/TextToolbar.js +1 -1
- package/dist/forms/TimePicker.js +1 -1
- package/dist/forms/WidthsBar.js +1 -1
- package/dist/forms/mediaLibraryMenu.js +1 -1
- package/dist/forms/mediaMoveItems.js +1 -1
- package/dist/forms/textAlign.d.ts +1 -1
- package/dist/forms/textAlign.js +1 -1
- package/dist/forms/useFileIntake.js +1 -1
- package/dist/hooks/useTheme.d.ts +1 -1
- package/dist/icons/efficient-glyphs.d.ts +2 -0
- package/dist/icons/efficient-glyphs.js +1 -1
- package/dist/icons/efficient-looks.d.ts +4 -0
- package/dist/icons/efficient-looks.js +1 -1
- package/dist/icons/efficient-meanings.d.ts +2 -0
- package/dist/icons/efficient-meanings.js +1 -1
- package/dist/icons/efficient.d.ts +2 -0
- package/dist/icons/efficient.js +1 -1
- package/dist/icons/glyphs/SeparatorSlashIcon.d.ts +8 -0
- package/dist/icons/glyphs/SeparatorSlashIcon.js +1 -0
- package/dist/icons/glyphs/SeparatorTriangleIcon.d.ts +8 -0
- package/dist/icons/glyphs/SeparatorTriangleIcon.js +1 -0
- package/dist/icons/index.d.ts +2 -2
- package/dist/icons/index.js +1 -1
- package/dist/icons/looks/SeparatorSlashMiniIcon.d.ts +8 -0
- package/dist/icons/looks/SeparatorSlashMiniIcon.js +1 -0
- package/dist/icons/looks/SeparatorSlashSolidIcon.d.ts +8 -0
- package/dist/icons/looks/SeparatorSlashSolidIcon.js +1 -0
- package/dist/icons/looks/SeparatorTriangleMiniIcon.d.ts +8 -0
- package/dist/icons/looks/SeparatorTriangleMiniIcon.js +1 -0
- package/dist/icons/looks/SeparatorTriangleSolidIcon.d.ts +8 -0
- package/dist/icons/looks/SeparatorTriangleSolidIcon.js +1 -0
- package/dist/icons/looks/map.js +1 -1
- package/dist/icons/sets.js +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.js +172 -172
- package/dist/locales/zh-Hans.js +1 -1
- package/dist/map/index.js +7 -7
- package/dist/{names-Bmx_9y41.d.ts → names-CkQuQ47O.d.ts} +1 -1
- package/dist/page-tabs/index.js +5 -5
- package/dist/pdf/index.js +1 -1
- package/dist/shell/Accordion.js +1 -1
- package/dist/shell/AppUpdateBanner.js +1 -1
- package/dist/shell/Avatar.js +1 -1
- package/dist/shell/Banner.js +1 -1
- package/dist/shell/Breadcrumbs.js +1 -1
- package/dist/shell/BudgetBar.js +1 -1
- package/dist/shell/Card.js +1 -1
- package/dist/shell/ColoredBadge.js +1 -1
- package/dist/shell/ConfirmDialog.js +1 -1
- package/dist/shell/ContainerFillChart.js +1 -1
- package/dist/shell/CountBadge.js +1 -1
- package/dist/shell/Dialog.js +1 -1
- package/dist/shell/Drawer.js +1 -1
- package/dist/shell/EditableGrid.js +1 -1
- package/dist/shell/EmptyState.js +1 -1
- package/dist/shell/GlobalSearch.js +1 -1
- package/dist/shell/HelpCenter.js +1 -1
- package/dist/shell/IconRail.js +1 -1
- package/dist/shell/ImageLightbox.js +1 -1
- package/dist/shell/ItemCount.js +1 -1
- package/dist/shell/LanguageSelect.js +1 -1
- package/dist/shell/Markdown.d.ts +1 -1
- package/dist/shell/Markdown.js +1 -1
- package/dist/shell/MetricBar.js +1 -1
- package/dist/shell/MetricBarLegend.js +1 -1
- package/dist/shell/MilestoneTimeline.js +1 -1
- package/dist/shell/PageHeader.js +1 -1
- package/dist/shell/ProductionTimeline.js +1 -1
- package/dist/shell/ResizeHandle.js +1 -1
- package/dist/shell/Result.js +1 -1
- package/dist/shell/SearchableSelect.js +1 -1
- package/dist/shell/SettingReset.js +1 -1
- package/dist/shell/SettingRow.js +1 -1
- package/dist/shell/SidebarLayout.js +1 -1
- package/dist/shell/SidebarNav.js +1 -1
- package/dist/shell/SortableList.js +1 -1
- package/dist/shell/Statistic.js +1 -1
- package/dist/shell/TimeAgo.js +1 -1
- package/dist/shell/TimelineTrack.js +1 -1
- package/dist/shell/TransferProgress.js +1 -1
- package/dist/shell/Tree.js +1 -1
- package/dist/shell/discardGuard.js +1 -1
- package/dist/shell/language.js +1 -1
- package/dist/shell/strings.d.ts +6 -0
- package/dist/shell/strings.js +1 -1
- package/dist/shell/toast.js +1 -1
- package/dist/telemetry/index.js +1 -1
- package/dist/templates/AuthScreen.js +1 -1
- package/dist/templates/ChatTemplate.js +1 -1
- package/dist/templates/CheckoutTemplate.js +1 -1
- package/dist/templates/DashboardTemplate.js +1 -1
- package/dist/templates/DataTablePage.js +1 -1
- package/dist/templates/EmailTemplate.js +1 -1
- package/dist/templates/ErrorBoundary.d.ts +1 -1
- package/dist/templates/ErrorBoundary.js +1 -1
- package/dist/templates/ErrorPage.js +1 -1
- package/dist/templates/FormLayoutPage.js +1 -1
- package/dist/templates/GalleryTemplate.js +1 -1
- package/dist/ui/index.d.ts +1 -1
- package/dist/ui/index.js +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
- package/dist/Calculator-Y566OMJZ.js +0 -29
- package/dist/Files-UA23KXN7.js +0 -88
- package/dist/Sidebar-2P26444H.js +0 -44
- package/dist/chunk-2JG5JU4M.js +0 -8
- package/dist/chunk-4PAWQEXM.js +0 -1
- package/dist/chunk-7XYTJPWW.js +0 -29
- package/dist/chunk-COJYPNKF.js +0 -2
- package/dist/chunk-DWR7MYQU.js +0 -7
- package/dist/chunk-EU3JZGV2.js +0 -14
- package/dist/chunk-JJW43QPS.js +0 -9
- package/dist/chunk-LCJRTJXT.js +0 -13
- package/dist/chunk-LU6NA4RU.js +0 -5
- package/dist/chunk-M4K6FLIY.js +0 -1
- package/dist/chunk-PJQGYKN6.js +0 -11
- package/dist/chunk-PN65IIYN.js +0 -8
- package/dist/chunk-Q6YNMNUH.js +0 -6
- package/dist/chunk-RCPFUDPS.js +0 -4
- package/dist/chunk-RRUHQLUY.js +0 -14
- package/dist/chunk-TMNAHOJ7.js +0 -9
- package/dist/chunk-UBMY23AG.js +0 -6
- package/dist/chunk-VNACNNCJ.js +0 -19
- package/dist/chunk-W35N7SL3.js +0 -8
- package/dist/chunk-W4OBVKN4.js +0 -1
- package/dist/chunk-WMEYNKXZ.js +0 -22
- package/dist/chunk-ZZVE64OI.js +0 -2
- /package/dist/{chunk-6V6ANLHW.js → chunk-Y2AGVGOP.js} +0 -0
package/dist/ai/index.js
CHANGED
|
@@ -1,81 +1,81 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import{StepChainItem as e,StepChain as t}from"../chunk-RDYFZHT3.js";import{Markdown as n}from"../chunk-
|
|
3
|
-
/* @__PURE__ */
|
|
4
|
-
/* @__PURE__ */
|
|
5
|
-
/* @__PURE__ */
|
|
6
|
-
/* @__PURE__ */
|
|
7
|
-
/* @__PURE__ */
|
|
8
|
-
/* @__PURE__ */
|
|
9
|
-
/* @__PURE__ */
|
|
10
|
-
/* @__PURE__ */
|
|
11
|
-
return
|
|
12
|
-
/* @__PURE__ */
|
|
13
|
-
/* @__PURE__ */
|
|
14
|
-
/* @__PURE__ */
|
|
15
|
-
/* @__PURE__ */
|
|
16
|
-
return
|
|
17
|
-
/* @__PURE__ */
|
|
18
|
-
/* @__PURE__ */
|
|
19
|
-
return
|
|
20
|
-
/* @__PURE__ */
|
|
21
|
-
/* @__PURE__ */
|
|
22
|
-
return
|
|
23
|
-
/* @__PURE__ */
|
|
24
|
-
/* @__PURE__ */
|
|
25
|
-
/* @__PURE__ */
|
|
26
|
-
/* @__PURE__ */
|
|
27
|
-
return
|
|
28
|
-
/* @__PURE__ */
|
|
29
|
-
/* @__PURE__ */
|
|
30
|
-
/* @__PURE__ */
|
|
31
|
-
/* @__PURE__ */
|
|
32
|
-
return
|
|
33
|
-
/* @__PURE__ */
|
|
34
|
-
/* @__PURE__ */
|
|
35
|
-
/* @__PURE__ */
|
|
36
|
-
/* @__PURE__ */
|
|
37
|
-
/* @__PURE__ */
|
|
38
|
-
/* @__PURE__ */
|
|
39
|
-
return
|
|
40
|
-
return
|
|
41
|
-
/* @__PURE__ */
|
|
42
|
-
/* @__PURE__ */
|
|
43
|
-
return
|
|
44
|
-
/* @__PURE__ */
|
|
45
|
-
/* @__PURE__ */
|
|
46
|
-
/* @__PURE__ */
|
|
47
|
-
/* @__PURE__ */
|
|
48
|
-
return
|
|
49
|
-
return
|
|
50
|
-
/* @__PURE__ */
|
|
51
|
-
/* @__PURE__ */
|
|
52
|
-
/* @__PURE__ */
|
|
53
|
-
/* @__PURE__ */
|
|
54
|
-
return
|
|
55
|
-
/* @__PURE__ */
|
|
56
|
-
/* @__PURE__ */
|
|
57
|
-
return
|
|
58
|
-
/* @__PURE__ */
|
|
59
|
-
/* @__PURE__ */
|
|
60
|
-
/* @__PURE__ */
|
|
61
|
-
/* @__PURE__ */
|
|
62
|
-
/* @__PURE__ */
|
|
63
|
-
/* @__PURE__ */
|
|
64
|
-
/* @__PURE__ */
|
|
65
|
-
/* @__PURE__ */
|
|
66
|
-
/* @__PURE__ */
|
|
67
|
-
/* @__PURE__ */
|
|
68
|
-
/* @__PURE__ */
|
|
69
|
-
/* @__PURE__ */
|
|
70
|
-
return
|
|
71
|
-
/* @__PURE__ */
|
|
72
|
-
/* @__PURE__ */
|
|
73
|
-
/* @__PURE__ */
|
|
74
|
-
/* @__PURE__ */
|
|
75
|
-
/* @__PURE__ */
|
|
76
|
-
/* @__PURE__ */
|
|
77
|
-
/* @__PURE__ */
|
|
78
|
-
/* @__PURE__ */
|
|
79
|
-
/* @__PURE__ */
|
|
80
|
-
/* @__PURE__ */
|
|
81
|
-
return
|
|
2
|
+
import{StepChainItem as e,StepChain as t}from"../chunk-RDYFZHT3.js";import{Markdown as n}from"../chunk-3PR5YMWZ.js";import{Divider as a}from"../chunk-DFOFEBYX.js";import"../chunk-UJUTS6LJ.js";import"../chunk-PJPK2ADX.js";import{useContextMenu as r,ContextMenu as s}from"../chunk-W3OWPBQL.js";import{Banner as o}from"../chunk-ZGOHRLXG.js";import"../chunk-4UKGVLFP.js";import{Input_default as i}from"../chunk-MAMWQCJ6.js";import{AttachmentDropZone as l}from"../chunk-4HBSQGRI.js";import{IconButton_default as c}from"../chunk-PUF75SMJ.js";import"../chunk-AYZY3YNC.js";import{CloseGlyph as d}from"../chunk-Z5A4EY2R.js";import"../chunk-DHIQ46C5.js";import{useFileIntake as p,humanSize as u,FileIntakeAlert as m}from"../chunk-JTMEFXRL.js";import{parseChartSpec as h}from"../chunk-CR7T435F.js";import{SpecChart as f}from"../chunk-PW52RXPI.js";import{formatBytes as g}from"../chunk-GEYM4WN3.js";import"../chunk-Y3JW2GW5.js";import"../chunk-36BRD5J3.js";import"../chunk-LF27WIN2.js";import"../chunk-EJUNGVK2.js";import"../chunk-E6GDAV5R.js";import"../chunk-CK2YOGUS.js";import"../chunk-VAK5FQXH.js";import"../chunk-VFC6QUEN.js";import"../chunk-UYRMW5MO.js";import"../chunk-465RRWBY.js";import{ChartSkeleton as x}from"../chunk-3IUPYCW3.js";import"../chunk-CNYAHYE6.js";import"../chunk-4WEFGKJL.js";import"../chunk-URHGHXDN.js";import"../chunk-5QFPTDQF.js";import"../chunk-TXDA7TTP.js";import{Button_default as b}from"../chunk-I4VIEGCX.js";import"../chunk-UQYNPYF4.js";import"../chunk-34URULVW.js";import{Icon as v}from"../chunk-2UO47XB4.js";import"../chunk-J75ZT2JQ.js";import{SpinnerRing as y}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-QO5E33DH.js";import"../chunk-C764JODK.js";import"../chunk-2JWPNR2U.js";import"../chunk-MAFUXCPZ.js";import"../chunk-TZFACUMR.js";import"../chunk-TWVUQUUD.js";import{useShellStrings as w}from"../chunk-GDQJBQ5B.js";import"../chunk-C3QOHMR6.js";import{useRef as k,Fragment as N,useState as A,useEffect as C,useId as j,useCallback as T,useMemo as O}from"react";import{isToolUIPart as S,getToolName as $,DefaultChatTransport as _,lastAssistantMessageIsCompleteWithApprovalResponses as F}from"ai";import{jsxs as R,jsx as I,Fragment as D}from"react/jsx-runtime";import{useChat as M}from"@ai-sdk/react";function L(e){if(!S(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 P(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 B(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 E(e){return e.parts.map(e=>"text"===e.type?e.text:"").join("")}var U="efficient-attachment:";function z(e){return{type:"file",mediaType:e.content_type,filename:e.filename,url:`${U}${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(U))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 H=/* @__PURE__ */new Set(["data-conversation","data-plan","data-followups","data-tool-summary","data-error","data-file","data-approval","data-busy"]);function J(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=E(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(!S(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}}var Y=e=>e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");function G(e,t,n=""){const a=[t.trim(),n.trim()].filter(Boolean).map(Y);return 0!==a.length&&new RegExp(`(^|[^\\p{L}\\p{N}_@])(?:${a.join("|")})(?![\\p{L}\\p{N}_@])`,"iu").test(e)}function q(e,t){return G(e,t)?e:`${t.trim()} ${e.trimStart()}`}function Q(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 K=/* @__PURE__ */new Set(["proposed","approved","running"]);function V(e){return K.has(e.status)}function Z(e){const t=[];for(const n of e.parts)"data-plan"===n.type&&t.push(n.data);return t}function X(e){const t=/* @__PURE__ */new Map;for(const n of e)for(const e of Z(n))t.delete(e.id),t.set(e.id,e);return t}function ee(e){const t=[...X(e).values()],n=t[t.length-1];if(!n)return null;if(V(n))return n;const a=e[e.length-1];return a&&"assistant"===a.role&&Z(a).some(e=>e.id===n.id)?n:null}function te(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 ne(e,t){const n=/* @__PURE__ */new Map;for(const a of e.parts){if("data-approval"!==a.type)continue;const e=a.data,r=e?.[t];"string"==typeof e?.approval_id&&"string"==typeof r&&r&&n.set(e.approval_id,r)}return n}function ae(e){const t=e.messages.filter(e=>e.text).map(e=>({id:e.id,role:e.role,parts:[...(e.attachments??[]).map(z),{type:"text",text:e.text},...(e.files??[]).map(e=>({type:"data-file",id:`file-${e.id}`,data:e}))],...te(e)})),n=(e.plans??[]).filter(V);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}})),...e.pending_approvals.filter(e=>e.expires_at||e.notice).map(e=>({type:"data-approval",id:e.approval_id,data:{approval_id:e.approval_id,expires_at:e.expires_at,...e.notice?{notice:e.notice}:{}}}))]}),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()}for(const t of Object.values(e)){const e=Array.isArray(t)?t[0]:void 0;if("string"==typeof e&&e.trim()&&e.length<=400)return e.trim()}}catch{return t}return t}return n.startsWith("<")||n.length>400?t:n}var se=/^(load failed|failed to fetch|network ?error( when attempting to fetch resource)?|(the )?network connection was lost|error in input stream|terminated)\.?$/i;function oe(e){return!(!e||"AbortError"===e.name)&&se.test(e.message?.trim()??"")}var ie=/* @__PURE__ */new Set(["budget_reached","not_permitted"]);function le(e,t,n){return oe(e)?{text:n.connectionDropped,retryable:!0}:{text:re(e,n.genericError),retryable:!(t&&ie.has(t))}}function ce(e){const t=e[e.length-1];if(!t)return!1;if("user"===t.role)return""!==E(t).trim();const n=e[e.length-2];return!(!n||"user"!==n.role||!E(n).trim())&&!t.parts.some(e=>void 0!==L(e)?.approvalId)}function de({labels:e,placeholder:t,busy:n,focusWhen:a,onSend:r,onStop:s,onNewChat:o,actions:i,attachments:h,people:f,assistantDecides:g,deciding:x}){const[N,j]=A(""),[O,S]=A(!1),$=k(null),_=function(e){const[t,n]=A([]),a=k(0),r=k(!0);C(()=>()=>{r.current=!1},[]);const s=e?.upload,o=T(e=>{if(s)for(const t of e){const e=a.current++;n(n=>[...n,{key:e,name:t.name,size:t.size}]),s(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))})}},[s]),i=t.some(e=>!e.attachment&&!e.error),l=t.flatMap(e=>e.attachment?[e.attachment]:[]);return{pending:t,add:o,remove:e=>n(t=>t.filter(t=>t.key!==e)),clear:()=>n([]),uploading:i,ready:l}}(h),F=w().files,D=p({accept:h?.accept,maxSizeBytes:h?.maxSizeBytes,maxFiles:h?.maxFiles??5,acceptHint:h?.acceptHint,currentCount:_.pending.length,disabled:!h,onAccept:_.add});C(()=>{a&&$.current?.focus()},[a]);const M=()=>{const e=$.current;e&&(e.style.height="auto",e.style.height=`${e.scrollHeight}px`)};C(M,[N]);const L=n||x||_.uploading||!N.trim(),P=()=>{L||(r(N,_.ready,{peopleOnly:!!g&&O}),j(""),_.clear(),D.clearRejections())},B=!!f&&(G(N,e.assistantMention,e.assistantName)||_.pending.length>0),E=!!g&&!O,U=B?e.toAssistant:x?e.deciding:E?e.assistantDecides:e.toPeople.replace("{names}",f??""),z=B||x?null:g?{label:E?e.peopleOnly:e.letAssistantDecide,onClick:()=>S(E)}:{label:e.askAssistant,onClick:()=>j(t=>q(t,e.assistantMention))},W=f?/* @__PURE__ */R("div",{className:"flex items-center gap-2 px-3 pt-1 text-xs",children:[
|
|
3
|
+
/* @__PURE__ */I("span",{role:"status",className:"min-w-0 flex-1 truncate "+(B?"text-accent-text":"text-ink-faint"),children:U}),z&&/* @__PURE__ */I(b,{type:"button",size:"sm",variant:"ghost",onClick:()=>{z.onClick(),$.current?.focus()},children:z.label})]}):null,H=/* @__PURE__ */R("form",{className:"flex items-end gap-1 p-1",onSubmit:e=>{e.preventDefault(),P()},children:[o&&/* @__PURE__ */I(c,{type:"button",variant:"ghost","aria-label":e.newChat,title:e.newChat,onClick:o,children:/* @__PURE__ */I(v,{name:"compose"})}),h&&/* @__PURE__ */I(c,{type:"button",variant:"ghost","aria-label":e.attach,title:e.attach,onClick:D.open,disabled:n,children:/* @__PURE__ */I(v,{name:"add"})}),
|
|
4
|
+
/* @__PURE__ */I("textarea",{ref:$,"aria-label":e.inputLabel,placeholder:t,rows:1,value:N,onChange:e=>j(e.target.value),onInput:M,onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||e.nativeEvent.isComposing||(e.preventDefault(),P())},className:"block max-h-48 min-w-0 flex-1 resize-none overflow-y-auto bg-transparent py-1 text-sm leading-6 text-ink-strong outline-none placeholder:text-[color:var(--ink-placeholder)] "+(o||h?"px-1":"px-2")}),i?.map(e=>e.icon?/* @__PURE__ */I(c,{type:"button",variant:"ghost","aria-label":e.label,title:e.label,disabled:!N.trim(),onClick:()=>e.onSelect(N.trim()),children:/* @__PURE__ */I(v,{name:e.icon})},e.key):/* @__PURE__ */I(b,{type:"button",variant:"ghost",disabled:!N.trim(),onClick:()=>e.onSelect(N.trim()),children:e.label},e.key)),/* @__PURE__ */I(c,n?{type:"button",variant:"ghost","aria-label":e.stop,title:e.stop,onClick:s,children:/* @__PURE__ */I(v,{name:"stop-circle"})}:{type:"submit",variant:"ghost","aria-label":e.send,title:e.send,disabled:L,children:x?/* @__PURE__ */I(y,{className:"h-4 w-4"}):/* @__PURE__ */I(v,{name:"enter"})})]}),J="rounded-2xl border border-line bg-surface shadow-sm transition-colors focus-within:border-line-strong";return h?/* @__PURE__ */R(l,{intake:D,className:"px-3 pt-2 pb-3",children:[
|
|
5
|
+
/* @__PURE__ */R("div",{className:J,children:[_.pending.length>0&&/* @__PURE__ */I("ul",{className:"flex flex-wrap gap-2 px-3 pt-3",children:_.pending.map(t=>/* @__PURE__ */R("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__ */I(v,{name:"page",size:14,"aria-hidden":"true"}):/* @__PURE__ */I("span",{role:"status","aria-label":e.attaching,className:"inline-flex",children:/* @__PURE__ */I(y,{className:"h-3 w-3"})}),
|
|
6
|
+
/* @__PURE__ */I("span",{className:"min-w-0 truncate",title:t.error??t.name,children:t.name}),
|
|
7
|
+
/* @__PURE__ */I("span",{className:"shrink-0 tabular-nums text-gray-400",children:u(t.size,F)}),
|
|
8
|
+
/* @__PURE__ */I("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__ */I(d,{className:"h-3.5 w-3.5"})})]},t.key))}),_.pending.some(e=>e.error)&&/* @__PURE__ */I("ul",{role:"alert",className:"flex flex-col gap-0.5 px-3 pt-1",children:_.pending.flatMap(e=>e.error?[/* @__PURE__ */I("li",{className:"text-xs text-red-600",children:`${e.name}: ${e.error}`},e.key)]:[])}),
|
|
9
|
+
/* @__PURE__ */I(m,{rejections:D.rejections,className:"px-3 pt-1"}),H]}),W]}):/* @__PURE__ */R("div",{className:"px-3 pt-2 pb-3",children:[
|
|
10
|
+
/* @__PURE__ */I("div",{className:J,children:H}),W]})}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,t){const n=me(e,t);return n.done??n.label}function ge(e){return e&&"object"==typeof e&&!Array.isArray(e)?e:{}}function xe(e,t,n){const a=me(e,n).describe;if(!a)return"";try{return a(ge(t))?.trim()??""}catch{return""}}function be(e,t){return null==e?"":"boolean"==typeof e?e?"Yes":"No":"object"!=typeof e?String(e):Array.isArray(e)?e.map(e=>be(e,t+1)).filter(Boolean).join(", "):t>=3?"…":Object.entries(e).map(([e,n])=>{const a=be(n,t+1);return a?`${pe(e)}: ${a}`:""}).filter(Boolean).join("; ")}function ve(e){const t=ge(e),n=[];for(const[e,a]of Object.entries(t)){if(e.startsWith("_"))continue;const t=be(a,0);t&&n.push({label:pe(e),value:t})}return 0===n.length&&null!=e&&"object"!=typeof e&&n.push({label:"Value",value:be(e,0)}),n}function ye(e,t){const n={answers:0,counted:0,inputTokens:0,outputTokens:0,rate:null};let a=0;const r=[],s=/* @__PURE__ */new Set,o=/* @__PURE__ */new Map;for(const i of e){if("user"===i.role){const e=i.metadata?.author?.name??null;for(const t of W(i))s.has(t.id)||(s.add(t.id),r.push({kind:"attached",attachment:t,from:e}));continue}if("assistant"!==i.role)continue;if(i.metadata?.source)continue;n.answers+=1;const e=i.metadata?.usage;e&&(n.counted+=1,n.inputTokens+=e.input_tokens,n.outputTokens+=e.output_tokens,a+=e.generation_ms);for(const e of B(i))s.has(e.id)||(s.add(e.id),r.push({kind:"made",file:e}));const l=/* @__PURE__ */new Set;for(const e of i.parts){const n=L(e);if(!n||"output-available"!==n.state||l.has(n.toolCallId))continue;l.add(n.toolCallId);const a=fe(n.toolName,t);o.set(a,(o.get(a)??0)+1)}}return n.outputTokens>0&&a>=100&&(n.rate=n.outputTokens/(a/1e3)),{usage:n,files:r,tools:[...o].map(([e,t])=>({label:e,count:t})).sort((e,t)=>t.count-e.count)}}function we(e){return e<1e3?String(Math.round(e)):e<1e6?`${(e/1e3).toFixed(e<1e5?1:0).replace(/\.0$/,"")}k`:`${(e/1e6).toFixed(1).replace(/\.0$/,"")}M`}function ke(e,t){return e>0&&t>=100?e/(t/1e3):null}function Ne(e){return Math.ceil(e.length/4)}var Ae=(e,t)=>e.replace(/\{(\w+)\}/g,(e,n)=>t[n]??e),Ce=e=>Math.round(e).toLocaleString();function je(e,t){const n=ke(e.output_tokens,e.generation_ms);return null===n?Ae(t.replyTokens,{tokens:Ce(e.output_tokens)}):Ae(t.replyStats,{tokens:Ce(e.output_tokens),seconds:(e.generation_ms/1e3).toFixed(1),rate:Ce(n)})}function Te(e,t,n){const a=t>=1e3?ke(Ne(e),t):null;return null===a?n.streaming:Ae(n.streamingRate,{rate:Ce(a)})}var Oe=(e,t)=>e.replace(/\{(\w+)\}/g,(e,n)=>t[n]??e);function Se({title:e,aside:t,children:n}){/* @__PURE__ */
|
|
11
|
+
return R("details",{open:!0,className:"group rounded-lg border border-line bg-surface px-3 py-2",children:[
|
|
12
|
+
/* @__PURE__ */R("summary",{className:"flex cursor-pointer select-none list-none items-center gap-1 text-sm font-medium text-ink-strong [&::-webkit-details-marker]:hidden",children:[
|
|
13
|
+
/* @__PURE__ */I("span",{children:e}),
|
|
14
|
+
/* @__PURE__ */I(v,{name:"chevron-down",size:14,"aria-hidden":"true",className:"-rotate-90 transition-transform group-open:rotate-0"}),t&&/* @__PURE__ */I("span",{className:"ml-auto text-xs font-normal text-ink-faint",children:t})]}),
|
|
15
|
+
/* @__PURE__ */I("div",{className:"mt-2",children:n})]})}function $e({rows:e}){/* @__PURE__ */
|
|
16
|
+
return I("dl",{className:"grid grid-cols-[auto_minmax(0,1fr)] gap-x-3 gap-y-1 text-xs",children:e.map(e=>/* @__PURE__ */R("div",{className:"contents",children:[
|
|
17
|
+
/* @__PURE__ */I("dt",{className:"text-ink-faint",children:e.label}),
|
|
18
|
+
/* @__PURE__ */I("dd",{className:"min-w-0 text-right text-ink",children:e.value})]},e.key))})}function _e(e){return"pdf"===e?"document":"csv"===e||"xlsx"===e?"table":"page"}function Fe({entry:e,labels:t,assistantName:n,onOpenFile:a,onOpenAttachment:r}){const s="made"===e.kind,o=s?e.file.filename:e.attachment.filename,i=s?e.file.kind:o.split(".").pop()?.toLowerCase()??"",l=s?n:e.from??t.detailsYou,c=s?a&&(()=>a(e.file)):r&&(()=>r(e.attachment));/* @__PURE__ */
|
|
19
|
+
return R("li",{className:"flex min-w-0 items-center gap-2 text-xs",children:[
|
|
20
|
+
/* @__PURE__ */I(v,{name:_e(i),size:14,"aria-hidden":"true",className:"shrink-0"}),c?/* @__PURE__ */I("button",{type:"button",onClick:c,title:o,"aria-label":Oe(t.openFile,{name:o}),className:"min-w-0 flex-1 truncate text-left text-accent-text hover:underline",children:o}):/* @__PURE__ */I("span",{className:"min-w-0 flex-1 truncate text-ink",title:o,children:o}),
|
|
21
|
+
/* @__PURE__ */I("span",{className:"shrink-0 text-ink-faint",children:l})]})}function Re({messages:e,facts:t,toolLabels:n,labels:a,assistantName:r,onOpenFile:s,onOpenAttachment:o}){const{usage:i,files:l,tools:c}=ye(e,n),d=c.reduce((e,t)=>e+t.count,0),p=i.counted<i.answers,u=p?/* @__PURE__ */I("p",{className:"mt-2 text-xs text-ink-faint",children:a.detailsUsagePartial}):null;/* @__PURE__ */
|
|
22
|
+
return R("aside",{"aria-label":a.detailsPanel,className:"flex w-64 shrink-0 flex-col gap-2 overflow-y-auto border-l border-line bg-surface-sunken p-2",children:[t&&t.length>0&&/* @__PURE__ */I(Se,{title:a.detailsChat,children:/* @__PURE__ */I($e,{rows:t})}),
|
|
23
|
+
/* @__PURE__ */R(Se,{title:a.detailsUsage,aside:1===i.answers?a.detailsOneAnswer:Oe(a.detailsAnswers,{count:Ce(i.answers)}),children:[
|
|
24
|
+
/* @__PURE__ */I($e,{rows:[{key:"in",label:a.detailsTokensIn,value:i.counted>0?we(i.inputTokens):"—"},{key:"out",label:a.detailsTokensOut,value:i.counted>0?we(i.outputTokens):"—"},...null===i.rate?[]:[{key:"rate",label:a.detailsSpeed,value:Oe(a.detailsRate,{rate:Ce(i.rate)})}]]}),u]}),
|
|
25
|
+
/* @__PURE__ */I(Se,{title:a.detailsFiles,aside:l.length>0?Ce(l.length):void 0,children:l.length>0?/* @__PURE__ */I("ul",{className:"flex flex-col gap-1",children:l.map(e=>/* @__PURE__ */I(Fe,{entry:e,labels:a,assistantName:r,onOpenFile:s,onOpenAttachment:o},"made"===e.kind?e.file.id:e.attachment.id))}):/* @__PURE__ */I("p",{className:"text-xs text-ink-faint",children:a.detailsNoFiles})}),
|
|
26
|
+
/* @__PURE__ */R(Se,{title:a.detailsTools,aside:d>0?Ce(d):void 0,children:[c.length>0&&/* @__PURE__ */I($e,{rows:c.map(e=>({key:e.label,label:e.label,value:Ce(e.count)}))}),0===c.length&&!p&&/* @__PURE__ */I("p",{className:"text-xs text-ink-faint",children:a.detailsNoTools}),u]})]})}function Ie({rows:e,label:t}){/* @__PURE__ */
|
|
27
|
+
return I("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__ */R("div",{className:"contents",children:[
|
|
28
|
+
/* @__PURE__ */I("dt",{className:"text-gray-500",children:e.label}),
|
|
29
|
+
/* @__PURE__ */I("dd",{className:"min-w-0 break-words "+(e.warn?"font-medium text-amber-700":"text-gray-800"),children:e.value})]},`${e.label}-${t}`))})}function De({approvalId:e,expiresAt:t,expired:n=!1,approveLabel:a,labels:r,onApprove:s}){const o=function(e){const t=e?Date.parse(e):Number.NaN,[n,a]=A(()=>Number.isFinite(t)&&t<=Date.now());return C(()=>{if(!Number.isFinite(t))return;const e=t-Date.now();if(e<=0)return void a(!0);if(a(!1),e>2147483647)return;const n=setTimeout(()=>a(!0),e);return()=>clearTimeout(n)},[t]),n}(t)||n;return o?/* @__PURE__ */I("p",{role:"note",className:"mt-3 text-xs text-ink-faint",children:r.approvalExpired}):/* @__PURE__ */R("div",{className:"mt-3 flex gap-2",children:[
|
|
30
|
+
/* @__PURE__ */I(b,{size:"sm",onClick:()=>s(e,!0),children:a}),
|
|
31
|
+
/* @__PURE__ */I(b,{size:"sm",variant:"secondary",onClick:()=>s(e,!1),children:r.deny})]})}function Me({tool:e,toolLabels:t,labels:n,onApprove:a,expiresAt:r,notice:s}){const o=xe(e.toolName,e.input,t),i=ve(e.input),l=e.approvalId,c=`${n.approvalNeeded}: ${he(e.toolName,t)}${o?` ${o}`:""}`;/* @__PURE__ */
|
|
32
|
+
return R("div",{role:"group","aria-label":c,className:"rounded-lg border border-amber-300 bg-amber-50 p-3 text-sm",children:[
|
|
33
|
+
/* @__PURE__ */I("div",{className:"font-medium text-gray-900",children:c}),s&&/* @__PURE__ */R("p",{role:"note",className:"mt-2 flex items-start gap-1 text-xs font-medium text-warning-text",children:[
|
|
34
|
+
/* @__PURE__ */I(v,{name:"warning",size:14,"aria-hidden":"true",className:"mt-0.5 shrink-0"}),
|
|
35
|
+
/* @__PURE__ */I("span",{children:s})]}),i.length>0&&/* @__PURE__ */I("div",{className:"mt-2",children:/* @__PURE__ */I(Ie,{rows:i})}),
|
|
36
|
+
/* @__PURE__ */I(De,{approvalId:l,expiresAt:r,approveLabel:n.approve,labels:n,onApprove:a})]})}var Le={running:"active",done:"complete",failed:"failed",declined:"stopped",waiting:"waiting"};function Pe(e,t,n){return function(e,t,n,a,r,s){const o=me(n,r),i=xe(n,a,r),l=(e,t)=>({kind:e,base:t,subject:i,text:i?`${t} ${i}`:t});switch(e){case"output-available":return l("done",o.done??o.label);case"output-error":return l("failed",`${o.label} ${s.toolFailed}`);case"output-denied":return l("declined",`${o.label} ${s.toolDeclined}`);case"approval-requested":return l("waiting",`${s.approvalNeeded}: ${o.label}`);case"approval-responded":return!1===t?l("declined",`${o.label} — ${s.declined}`):l("running",`${s.approved}: ${o.running??o.label}`);default:return l("running",o.running??o.label)}}(e.state,e.approved,e.toolName,e.input,t,n)}function Be({tool:t,summary:n,toolLabels:a,labels:r,showOutput:s}){const o=Pe(t,a,r),i=ve(t.input),l=s&&"output-available"===t.state?ve(t.output):[],c=s&&"output-error"===t.state&&t.errorText?t.errorText:"",d="output-available"===t.state&&n?n.rows:[];let p=null;return(i.length>0||l.length>0||c)&&(p=/* @__PURE__ */R("details",{className:d.length>0?"mt-1":void 0,children:[
|
|
37
|
+
/* @__PURE__ */I("summary",{className:"cursor-pointer select-none",children:r.details}),
|
|
38
|
+
/* @__PURE__ */R("div",{className:"mt-1 space-y-2",children:[i.length>0&&/* @__PURE__ */I(Ie,{rows:i}),l.length>0&&/* @__PURE__ */I(Ie,{rows:l}),c&&/* @__PURE__ */I("div",{className:"text-red-600",children:c})]})]})),/* @__PURE__ */R(e,{label:o.base,description:o.subject||void 0,status:Le[o.kind],children:[d.length>0&&/* @__PURE__ */I(Ie,{rows:d,label:r.stepSources}),p]})}var Ee={proposed:"planProposed",approved:"planApproved",running:"planRunning",completed:"planCompleted",failed:"planFailed",denied:"planDenied",expired:"planExpired"},Ue={pending:"pending",running:"active",done:"complete",failed:"failed",skipped:"skipped"};function ze(e,t){const n=xe(e.tool_name,e.input,t);return`${he(e.tool_name,t)}${n?` ${n}`:""}`}function We(e,t){return e.replace(/\{(\w+)\}/g,(e,n)=>n in t?String(t[n]):e)}function He(e,t){const n=e.steps.filter(e=>"done"===e.status).length;return`${We(t.planSummary,{done:n,total:e.steps.length})} · ${t[Ee[e.status]]}`}function Je({plan:n,labels:a}){/* @__PURE__ */
|
|
39
|
+
return I("section",{"aria-label":a.plan,className:"border-t border-gray-200 bg-white px-3 py-2",children:/* @__PURE__ */I(t,{summary:He(n,a),busy:V(n),label:a.plan,children:n.steps.map(t=>/* @__PURE__ */I(e,{label:t.title,status:Ue[t.status],description:"done"!==t.status&&t.result_summary?t.result_summary:void 0},t.id))})})}function Ye({approvalId:e,plan:t,input:n,labels:a,toolLabels:r,onApprove:s,expiresAt:o}){const i=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=We(a.planApprovalHeading,{count:i.length});/* @__PURE__ */
|
|
40
|
+
return R("div",{role:"group","aria-label":l,className:"rounded-lg border border-amber-300 bg-amber-50 p-3 text-sm",children:[
|
|
41
|
+
/* @__PURE__ */I("div",{className:"font-medium text-gray-900",children:l}),
|
|
42
|
+
/* @__PURE__ */I("ol",{className:"mt-2 list-decimal space-y-2 pl-5",children:i.map(e=>{const t=ve(e.input);/* @__PURE__ */
|
|
43
|
+
return R("li",{children:[
|
|
44
|
+
/* @__PURE__ */I("div",{className:"font-medium text-gray-900",children:ze(e,r)}),e.title&&/* @__PURE__ */I("div",{className:"text-xs text-gray-600",children:e.title}),t.length>0&&/* @__PURE__ */I("dl",{className:"mt-1 grid grid-cols-[max-content_1fr] gap-x-3 gap-y-1 text-xs",children:t.map(e=>/* @__PURE__ */R("div",{className:"contents",children:[
|
|
45
|
+
/* @__PURE__ */I("dt",{className:"text-gray-500",children:e.label}),
|
|
46
|
+
/* @__PURE__ */I("dd",{className:"min-w-0 break-words text-gray-800",children:e.value})]},e.label))})]},e.key)})}),
|
|
47
|
+
/* @__PURE__ */I(De,{approvalId:e,expiresAt:o,expired:"expired"===t?.status,approveLabel:a.approvePlan,labels:a,onApprove:s})]})}function Ge({questions:e,label:t,onAsk:n}){return 0===e.length?null:/* @__PURE__ */I("div",{role:"group","aria-label":t,className:"flex flex-wrap gap-2 pl-1",children:e.map(e=>/* @__PURE__ */I(b,{size:"sm",variant:"secondary",onClick:()=>n(e),children:e},e))})}function qe({initial:e,labels:t,onRate:n}){const[a,r]=A(e??null),[s,o]=A(!1),[l,d]=A(""),[p,u]=A(!1),[m,h]=A(!1),[f,g]=A(!1),x=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)}},y=e=>{const n="up"===e?t.rateUp:t.rateDown;/* @__PURE__ */
|
|
48
|
+
return I(c,{size:"sm","aria-label":n,title:n,"aria-pressed":a?.verdict===e,disabled:f,onClick:()=>{(async e=>{if(u(!1),a?.verdict===e)return o(!1),void await x(null);const t=await x({verdict:e,note:""});o(t&&"down"===e),d("")})(e)},children:/* @__PURE__ */I(v,{name:"hand-thumb-up",className:"down"===e?"h-3.5 w-3.5 rotate-180":"h-3.5 w-3.5"})})};/* @__PURE__ */
|
|
49
|
+
return R("div",{role:"group","aria-label":t.rateAnswer,className:"flex min-w-0 flex-1 flex-col gap-1",children:[
|
|
50
|
+
/* @__PURE__ */R("div",{className:"flex items-center gap-1",children:[y("up"),y("down"),p&&/* @__PURE__ */I("span",{role:"status",className:"px-1 text-xs text-gray-500",children:t.rateThanks}),m&&/* @__PURE__ */I("span",{role:"alert",className:"px-1 text-xs text-red-600",children:t.rateFailed})]}),s&&/* @__PURE__ */R("form",{className:"flex items-center gap-2",onSubmit:e=>{(async e=>{e.preventDefault();const t=l.trim();t&&!await x({verdict:"down",note:t})||(o(!1),u(Boolean(t)))})(e)},children:[
|
|
51
|
+
/* @__PURE__ */I("div",{className:"min-w-0 flex-1",children:/* @__PURE__ */I(i,{size:"sm","aria-label":t.rateNote,placeholder:t.rateNote,maxLength:500,value:l,onChange:e=>d(e.target.value),autoFocus:!0})}),
|
|
52
|
+
/* @__PURE__ */I(b,{type:"submit",size:"sm",variant:"secondary",disabled:f||!l.trim(),children:t.rateNoteSend}),
|
|
53
|
+
/* @__PURE__ */I(b,{type:"button",size:"sm",variant:"ghost",onClick:()=>o(!1),children:t.rateNoteSkip})]})]})}function Qe(e){if("chart"!==e.lang)return null;if(!e.closed)/* @__PURE__ */return I(x,{height:200});const t=h(e.code);return t?/* @__PURE__ */I(f,{spec:t}):null}function Ke(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 Ve(e,t,n,a){const r=e.flatMap(e=>"tool"===e.kind?[Pe(e.tool,n,a)]:[]);if(t){const e=r.find(e=>"running"===e.kind);return e?e.base:a.working}const s=[...new Set(r.map(e=>e.base))];return s.length>0?s.join(" · "):a.reasoning}function Ze({message:e,live:t,labels:n}){const a=E(e),r=a.length>0,s=k(null),[o,i]=A(0);C(()=>{if(!t)return;null===s.current&&(s.current=performance.now());const e=setInterval(()=>i(performance.now()-(s.current??performance.now())),500);return()=>clearInterval(e)},[t]);const l=e.metadata?.usage;let c=null;return t?c=r?Te(a,o,n):null:l&&(c=je(l,n)),c?/* @__PURE__ */I("div",{className:"px-1 text-xs leading-6 tabular-nums text-gray-500",children:c}):null}function Xe({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__ */
|
|
54
|
+
return I("ul",{className:"flex max-w-[85%] flex-wrap justify-end gap-2",children:e.map(e=>{const r=/* @__PURE__ */R(D,{children:[
|
|
55
|
+
/* @__PURE__ */I(v,{name:"page",size:14,"aria-hidden":"true",className:"shrink-0"}),
|
|
56
|
+
/* @__PURE__ */I("span",{className:"min-w-0 truncate",children:e.filename})]});/* @__PURE__ */
|
|
57
|
+
return I("li",{className:"max-w-full",children:n?/* @__PURE__ */I("button",{type:"button",className:`${a} hover:bg-gray-50`,title:t.openAttachment.replace("{name}",e.filename),onClick:()=>n(e),children:r}):/* @__PURE__ */I("span",{className:a,children:r})},e.id)})})}function et(e){return["xlsx"===e.kind?"Excel":String(e.kind||"").toUpperCase(),g(e.size)].filter(Boolean).join(" · ")}function tt({file:e,labels:t,onOpen:n}){const a=/* @__PURE__ */R(D,{children:["pdf"===e.kind?/* @__PURE__ */I(v,{name:"document",size:20,className:"shrink-0"}):/* @__PURE__ */I(v,{name:"table",size:20,className:"shrink-0"}),
|
|
58
|
+
/* @__PURE__ */R("span",{className:"min-w-0 flex-1",children:[
|
|
59
|
+
/* @__PURE__ */I("span",{className:"block truncate text-sm font-medium text-gray-800",children:e.filename}),
|
|
60
|
+
/* @__PURE__ */I("span",{className:"block text-xs text-gray-500",children:et(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__ */I("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__ */I("div",{className:r,"data-assistant-file":e.id,children:a})}function nt({message:e,labels:t,showCopy:n,actions:r,answer:s}){const[o,i]=A(!1);C(()=>{if(!o)return;const e=setTimeout(()=>i(!1),1500);return()=>clearTimeout(e)},[o]);const l=E(e);if(!l.trim()||!n&&!r?.length)return null;const c=async()=>{const e=Array.from(s.current?.querySelectorAll("[data-answer-text]")??[]);i(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}}(l,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(
|
|
61
|
+
/* @__PURE__ */I(b,{size:"sm",variant:"ghost",leftIcon:/* @__PURE__ */I(v,{name:o?"check":"copy",look:"mini",className:"h-3.5 w-3.5","aria-hidden":"true"}),onClick:()=>{c()},children:o?t.copied:t.copyAnswer},"copy")),r?.forEach(t=>d.push(
|
|
62
|
+
/* @__PURE__ */I(b,{size:"sm",variant:"ghost",leftIcon:t.icon?/* @__PURE__ */I(v,{name:t.icon,look:"mini",className:"h-3.5 w-3.5","aria-hidden":"true"}):void 0,onClick:()=>t.onSelect({id:e.id,text:l}),children:t.label},t.key))),/* @__PURE__ */I("div",{className:"ml-auto flex items-center gap-0.5","data-chat-chrome":"",children:d.map((e,t)=>/* @__PURE__ */R(N,{children:[t>0&&/* @__PURE__ */I("span",{className:"flex h-3",children:/* @__PURE__ */I(a,{orientation:"vertical"})}),e]},t))})}function at({text:e,actions:t,files:n,labels:a,onOpenAttachment:o}){const i=r(),l=/* @__PURE__ */I("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__ */I(Xe,{files:n,labels:a,onOpen:o}):null;return t?.length?/* @__PURE__ */R("div",{className:c?"flex flex-col items-end gap-2":"flex justify-end",onContextMenu:e=>i.open(e,void 0),children:[c,l,i.state&&/* @__PURE__ */I(s,{...i.props,"aria-label":e,items:t.map(t=>({key:t.key,label:t.label,onSelect:()=>t.onSelect(e)}))})]}):c?/* @__PURE__ */R("div",{className:"flex flex-col items-end gap-2",children:[c,l]}):/* @__PURE__ */I("div",{className:"flex justify-end",children:l})}function rt({message:a,speaker:r,toolLabels:s,labels:o,showReasoning:i,showToolOutput:l,showUsage:c,live:d,onApprove:p,plans:u,userActions:m,tableActions:h,onLinkClick:f,onOpenAttachment:g,onOpenFile:x,renderDataPart:b,showCopy:v,answerActions:y,onRate:w}){const A=a.metadata?.source,C=k(null);if("system"===A){const e=E(a);return e?/* @__PURE__ */I("div",{className:"text-center text-xs text-gray-500",children:e}):null}if("user"===a.role){const e=E(a);if(!e)return null;const t=a.metadata?.author;return t?/* @__PURE__ */R("div",{className:"flex flex-col items-start gap-0.5",children:[
|
|
63
|
+
/* @__PURE__ */I("div",{className:"px-1 text-xs text-ink-faint",children:t.name}),
|
|
64
|
+
/* @__PURE__ */I("div",{className:"max-w-[85%] whitespace-pre-wrap break-words rounded-2xl border border-line bg-surface px-3 py-2 text-sm text-ink shadow-sm",children:e})]}):/* @__PURE__ */I(at,{text:e,actions:m,files:W(a),labels:o,onOpenAttachment:g})}const j=a.parts.map(L),T=P(a),O=[],S=/* @__PURE__ */new Set,$=[];let _=-1;const F=e=>{_<0&&(_=O.push(null)-1),$.push(e)},D=function(e){return ne(e,"expires_at")}(a),M=function(e){return ne(e,"notice")}(a);if(a.parts.forEach((e,t)=>{if("text"===e.type)return void(e.text.trim()&&O.push(
|
|
65
|
+
/* @__PURE__ */I("div",{"data-answer-text":"",children:/* @__PURE__ */I(n,{renderFence:Qe,tableActions:d?void 0:h,onLinkClick:f,children:e.text})},t)));if("data-file"===e.type){const t=e.data;return void(t&&"string"==typeof t.id&&!S.has(t.id)&&(S.add(t.id),O.push(/* @__PURE__ */I(tt,{file:t,labels:o,onOpen:x},`file-${t.id}`))))}if(b&&e.type.startsWith("data-")&&!H.has(e.type)){const n=b(e,a);return void(n&&O.push(/* @__PURE__ */I(N,{children:n},`data-${t}`)))}if("reasoning"===e.type)return void(i&&e.text.trim()&&F({kind:"reasoning",key:`r${t}`,text:e.text}));const r=j[t];r&&(Ke(r,j.slice(t+1).filter(e=>null!==e))||("approval-requested"===r.state&&r.approvalId&&"propose_plan"===r.toolName?O.push(
|
|
66
|
+
/* @__PURE__ */I(Ye,{approvalId:r.approvalId,plan:u?.get(r.approvalId),expiresAt:D.get(r.approvalId),input:r.input,labels:o,toolLabels:s,onApprove:p},r.toolCallId)):"approval-requested"===r.state&&r.approvalId?O.push(
|
|
67
|
+
/* @__PURE__ */I(Me,{tool:r,toolLabels:s,labels:o,onApprove:p,expiresAt:D.get(r.approvalId),notice:M.get(r.approvalId)},r.toolCallId)):F({kind:"tool",key:r.toolCallId,tool:r})))}),_>=0&&(O[_]=/* @__PURE__ */I(t,{summary:Ve($,d,s,o),busy:d,label:o.steps,children:$.map(t=>"tool"===t.kind?/* @__PURE__ */I(Be,{tool:t.tool,summary:T.get(t.tool.toolCallId),toolLabels:s,labels:o,showOutput:l},t.key):/* @__PURE__ */I(e,{status:"complete",label:/* @__PURE__ */R("details",{children:[
|
|
68
|
+
/* @__PURE__ */I("summary",{className:"cursor-pointer select-none",children:o.reasoning}),
|
|
69
|
+
/* @__PURE__ */I("div",{className:"mt-1 whitespace-pre-wrap text-gray-500",children:t.text})]})},t.key))},"chain")),0===O.length)return null;const B=a.metadata?.askedBy?o.askedBy.replace("{name}",a.metadata.askedBy.name):"",U=Boolean(r)&&!A,z=/* @__PURE__ */R("div",{ref:C,className:U?"min-w-0 max-w-full space-y-2 rounded-2xl border border-line bg-surface px-3 py-2 text-sm text-ink shadow-sm":"min-w-0 max-w-full space-y-2 rounded-2xl bg-white px-3 py-2 text-gray-800 shadow-sm",children:["staff"===A&&/* @__PURE__ */I("div",{className:"text-xs font-medium text-blue-600",children:o.teamName}),!U&&B&&/* @__PURE__ */I("div",{className:"text-xs text-ink-faint",children:B}),O]}),J=U?/* @__PURE__ */I("div",{className:"px-1 text-xs text-ink-faint",children:[r,B].filter(Boolean).join(" · ")}):null,Y=d?null:/* @__PURE__ */I(nt,{message:a,labels:o,showCopy:!0===v,actions:y,answer:C}),G=c&&!A,q=a.metadata?.run_id,Q=Boolean(w&&q&&!d&&!A);/* @__PURE__ */
|
|
70
|
+
return R("div",G||Q||Y?{className:"flex w-fit min-w-0 max-w-[92%] flex-col items-stretch gap-1",children:[J,z,
|
|
71
|
+
/* @__PURE__ */R("div",{className:"flex flex-wrap items-start gap-x-2 gap-y-1",children:[
|
|
72
|
+
/* @__PURE__ */R("div",{className:"flex min-w-0 flex-1 items-start gap-1",children:[G&&/* @__PURE__ */I(Ze,{message:a,live:d,labels:o}),Q&&w&&q&&/* @__PURE__ */I(qe,{initial:a.metadata?.rating,labels:o,onRate:e=>w(q,e)})]}),Y]})]}:{className:"flex max-w-[92%] flex-col items-start gap-0.5",children:[J,z]})}function st(e){const{messages:t,status:n,error:a,history:r,labels:s}=e,i=k(null),l=O(()=>function(e){const t=/* @__PURE__ */new Map;for(const n of X(e).values())t.set(n.approval_id,n);return t}(t),[t]),c=a?le(a,e.errorCode??null,s):null,d=t[t.length-1],p="ready"!==n||a||e.handedOver||"assistant"!==d?.role||!e.onAsk?[]:e.followups??[];return C(()=>{const e=i.current;e&&(e.scrollTop=e.scrollHeight)},[t,n]),/* @__PURE__ */R("div",{ref:i,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__ */R("div",{role:"status",className:"flex items-center gap-2 text-xs text-gray-500",children:[
|
|
73
|
+
/* @__PURE__ */I(y,{className:"h-3 w-3"}),s.loadingHistory]}),"failed"===r&&/* @__PURE__ */I(o,{tone:"warning",children:s.historyFailed}),0===t.length&&"idle"===r&&/* @__PURE__ */I("p",{className:"m-auto text-center text-sm text-gray-500",children:s.emptyState}),t.map((a,r)=>/* @__PURE__ */I(rt,{live:r===t.length-1&&("submitted"===n||"streaming"===n),message:a,speaker:e.assistantName,toolLabels:e.toolLabels,labels:s,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:l,userActions:e.userMessageActions,onOpenAttachment:e.onOpenAttachment,showCopy:e.showCopy,answerActions:e.answerActions,onRate:e.onRate},a.id)),e.onAsk&&/* @__PURE__ */I(Ge,{questions:p,label:s.followups,onAsk:e.onAsk}),e.handedOver&&/* @__PURE__ */I("div",{role:"status",className:"text-center text-xs text-gray-500",children:s.teamJoined}),"submitted"===n&&/* @__PURE__ */R("div",{role:"status",className:"flex items-center gap-2 text-xs text-gray-500",children:[
|
|
74
|
+
/* @__PURE__ */I(y,{className:"h-3 w-3"}),s.thinking]}),c&&/* @__PURE__ */R("div",{role:"alert",className:"flex flex-col items-start gap-2",children:[
|
|
75
|
+
/* @__PURE__ */I(o,{tone:"danger",children:c.text}),c.retryable&&e.onRetry&&"error"===n&&/* @__PURE__ */I(b,{size:"sm",variant:"secondary",onClick:e.onRetry,children:s.retry})]})]})}var ot={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",approvalExpired:"This request expired. Ask again if you still want it done.",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}",detailsPanel:"Details",detailsChat:"Chat",detailsUsage:"Usage",detailsFiles:"Files",detailsTools:"Tools used",detailsAnswers:"{count} answers",detailsOneAnswer:"1 answer",detailsTokensIn:"Tokens in",detailsTokensOut:"Tokens out",detailsSpeed:"Average speed",detailsRate:"{rate} tok/s",detailsUsagePartial:"Counts the answers written while this window was open.",detailsYou:"You",detailsNoFiles:"No files yet.",detailsNoTools:"No tools used yet.",assistantMention:"@Assistant",assistantName:"",toPeople:"To {names} only. The assistant won’t reply.",toAssistant:"The assistant will reply. Everyone in the chat sees it.",assistantDecides:"The assistant replies if this is for it. Name it to be sure.",deciding:"Checking who this is for",askAssistant:"Ask the assistant",peopleOnly:"People only",letAssistantDecide:"Let the assistant decide",peoplePlaceholder:"Message {names}, or type {mention} to ask",askedBy:"Asked by {name}",sayFailed:"Your message didn’t send. Try again."},it=(e,t)=>`${e.replace(/\/+$/,"")}/${t}`;function lt(e){return it(e,"assistant/chat/")}function ct(e,t){return it(e,`assistant/chat/${encodeURIComponent(t)}/`)}function dt(e){const t=e.metadata;return Boolean(t?.source||t?.author||t?.askedBy)}function pt(e){return e.parts.map(e=>e.approval?.id??"").filter(Boolean).sort().join(",")}function ut(e){const t=k(e);t.current=e;const n=k(e.conversationId?{id:e.conversationId}:null),[a,r]=A("idle"),[s,o]=A(!1),[i,l]=A(null),[c,d]=A([]),[p,u]=A([]),[m,h]=A(!1),[f,g]=A(!1),[x,b]=A(n.current),v=T(e=>{n.current=e,b(e)},[]),y=T((e,n)=>(t.current.fetch??fetch)(e,n),[]),w=O(()=>new _({api:lt(e.apiBase),fetch:y,prepareSendMessagesRequest:async({messages:e})=>{const{apiBase:a,getHeaders:r,credentials:s}=t.current;return{api:lt(a),body:J(e,n.current?.id??null),headers:await(r?.())??{},...s?{credentials:s}:{}}}}),[y]),N=M({transport:w,sendAutomaticallyWhen:F,onData:e=>{if(!H.has(e.type))return void t.current.onDataPart?.(e);if("data-error"===e.type)return void l(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,s=n.current,o=r??(s?.id===a?s.guestToken:void 0);s&&s.id===a&&s.guestToken===o||(v(o?{id:a,guestToken:o}:{id:a}),t.current.onConversation?.(n.current))}}),{setMessages:j,stop:S}=N,$=T(async(e,n)=>{const{apiBase:a,getHeaders:s,credentials:i,onConversation:l}=t.current;r("loading"),d([]);try{const t=await y(ct(a,e),{method:"GET",headers:await(s?.())??{},...i?{credentials:i}:{},signal:n});if(n.aborted)return;if(404===t.status)return v(null),l?.(null),void r("idle");if(!t.ok)throw new Error(`history ${t.status}`);const c=await t.json();if(n.aborted)return;o(!0===c.handed_over),u(c.people??[]),j(e=>e.length>0?e:ae(c)),r("idle")}catch{n.aborted||r("failed")}},[y,j,v]),R=e.conversationId??null;C(()=>{if(R===(n.current?.id??null)&&N.messages.length>0)return;if(null===R)return n.current&&(v(null),S(),j([]),d([]),u([])),void r("idle");n.current?.id===R||v({id:R});const e=new AbortController;return $(R,e.signal),()=>e.abort()},[R,$,j,S,v]);const I=T(async e=>{const a=n.current?.id;if(a)try{const{apiBase:r,getHeaders:s,credentials:i}=t.current,l=await y(ct(r,a),{method:"GET",headers:await(s?.())??{},...i?{credentials:i}:{},...e?{signal:e}:{}});if(!l.ok||e?.aborted||n.current?.id!==a)return;const c=await l.json();o(!0===c.handed_over),u(c.people??[]);const d=ae(c),p=d.filter(dt),m=d.find(e=>e.id===`pending-approvals-${a}`);if(0===p.length&&!m)return;j(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=>pt(e).split(",").filter(Boolean)));if(m&&!pt(m).split(",").every(e=>r.has(e))){const e=a.find(e=>e.id===m.id);e?pt(e)!==pt(m)&&(a=[...a.filter(e=>e.id!==m.id),m]):a=[...a,m]}return a})}catch{}},[y,j]),D=k(I);D.current=I;const{status:L}=N,P="submitted"===L||"streaming"===L,B=k(!1),E=k(!1),U=!!e.subscribe;C(()=>{const e=B.current&&!P;if(B.current=P,!e)return;if(U&&!E.current)return;E.current=!1;const t=new AbortController;return D.current(t.signal),()=>t.abort()},[P,U]);const W=k(P);W.current=P;const Y=x?.id,Q=x?.guestToken;C(()=>{const e=n.current,a=t.current.subscribe;if(e&&a)return a(e,()=>{W.current?E.current=!0:D.current()})??void 0},[Y,Q]);const K=T((e,t=[])=>{const n=e.trim();n&&(l(null),d([]),h(!1),N.sendMessage(t.length>0?{text:n,files:t.map(z)}:{text:n}))},[N]),V=k(0),Z=T(e=>{V.current+=1;const t=`sending-${V.current}`;return j(n=>[...n,{id:t,role:"user",parts:[{type:"text",text:e}]}]),t},[j]),X=T(e=>j(t=>t.filter(t=>t.id!==e)),[j]),ee=T(async(e,a)=>{const r=n.current?.id;if(!r)return;h(!1),d([]);const s=a??Z(e);try{const{apiBase:n,getHeaders:a,credentials:o}=t.current,i=await y(function(e,t){return it(e,`assistant/chat/${encodeURIComponent(t)}/messages/`)}(n,r),{method:"POST",headers:{"Content-Type":"application/json",...await(a?.())??{}},body:JSON.stringify({text:e}),...o?{credentials:o}:{}});if(!i.ok)throw new Error(`say ${i.status}`);const l=await i.json(),[c]=ae({id:r,messages:[l],pending_approvals:[]});j(e=>!c||e.some(e=>e.id===c.id)?e.filter(e=>e.id!==s):e.map(e=>e.id===s?c:e))}catch{X(s),h(!0)}},[y,j,Z,X]),te=T(async e=>{const a=n.current?.id;if(!a)return!1;try{const{apiBase:n,getHeaders:r,credentials:s}=t.current,o=await y(function(e,t){return it(e,`assistant/chat/${encodeURIComponent(t)}/addressee/`)}(n,a),{method:"POST",headers:{"Content-Type":"application/json",...await(r?.())??{}},body:JSON.stringify({text:e}),...s?{credentials:s}:{}});return!!o.ok&&!0===(await o.json()).to_assistant}catch{return!1}},[y]),ne=e.mention??"",re=e.name??"",se=!0===e.assistantDecides,oe=p.length>0,ie=T((e,t=[],n={})=>{const a=e.trim();if(!a)return;if(!oe||t.length>0||G(a,ne,re))return void K(a,t);if(!se||n.peopleOnly)return void ee(a);const r=Z(a);g(!0),te(a).then(e=>{if(!e)return ee(a,r);X(r),K(a)}).finally(()=>g(!1))},[K,ee,te,Z,X,oe,ne,re,se]),le=T(e=>K(oe?q(e,ne):e),[K,oe,ne]),de=T(()=>{ce(N.messages)&&(l(null),d([]),N.regenerate())},[N]),pe=T((e,t)=>{l(null),d([]),N.addToolApprovalResponse({id:e,approved:t})},[N]),ue=T(()=>{S(),v(null),j([]),r("idle"),o(!1),l(null),d([]),u([]),h(!1),g(!1),t.current.onConversation?.(null)},[j,S,v]);return{conversationId:x?.id??null,messages:N.messages,status:N.status,error:N.error,errorCode:i,canRetry:ce(N.messages),retry:de,historyState:a,handedOver:s,followups:c,people:p,sayFailed:m,deciding:f,send:ie,askAssistant:le,stop:S,approve:pe,reset:ue}}function mt(e){const t={...ot,...e.labels},n=e.variant??"panel",a=ut({...e,mention:t.assistantMention,name:t.assistantName}),r=Q(a.people),s="submitted"===a.status||"streaming"===a.status,o=k(e.onBusyChange);o.current=e.onBusyChange,C(()=>{o.current?.(s)},[s]);const i="window"===n,l=e.showHeader??"window"!==n,d=e.title??t.title,p=ee(a.messages),u=!0===e.readOnly,{onRate:m}=e,{conversationId:h}=a,f=k(!1),{send:g}=a;return C(()=>{f.current||u||e.conversationId||!e.initialQuestion?.trim()||(f.current=!0,g(e.initialQuestion))},[]),/* @__PURE__ */R("section",{"aria-label":d,className:`flex h-full min-h-0 flex-col bg-white text-gray-900 ${e.className??""}`.trim(),children:[l&&/* @__PURE__ */R("header",{className:"flex items-center gap-2 border-b border-gray-200 px-3 py-2",children:[
|
|
76
|
+
/* @__PURE__ */I("h2",{className:"min-w-0 flex-1 truncate text-sm font-semibold",children:d}),a.messages.length>0&&/* @__PURE__ */I(b,{size:"sm",variant:"ghost",onClick:a.reset,children:t.newChat}),e.onClose&&/* @__PURE__ */I(c,{size:"sm","aria-label":t.close,onClick:e.onClose,children:/* @__PURE__ */I(v,{name:"close"})})]}),
|
|
77
|
+
/* @__PURE__ */R("div",{className:"flex min-h-0 flex-1",children:[
|
|
78
|
+
/* @__PURE__ */R("div",{className:"flex min-w-0 flex-1 flex-col",children:[
|
|
79
|
+
/* @__PURE__ */I(st,{messages:a.messages,status:a.status,error:a.error,errorCode:a.errorCode,history:a.historyState,handedOver:a.handedOver,labels:t,title:d,assistantName:r?t.assistantName||d:void 0,toolLabels:e.toolLabels,showReasoning:i&&!0===e.showReasoning,showToolOutput:i,showUsage:i&&!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??i,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}),p&&/* @__PURE__ */I(Je,{plan:p,labels:t},p.id),!u&&e.composerTop,!u&&a.sayFailed&&/* @__PURE__ */I("p",{role:"alert",className:"border-t border-line px-3 py-2 text-xs text-danger-text",children:t.sayFailed}),u?/* @__PURE__ */I("p",{role:"note",className:"border-t border-gray-200 px-3 py-2 text-xs text-gray-500",children:t.readOnly}):/* @__PURE__ */I(de,{labels:t,placeholder:r?t.peoplePlaceholder.replace("{names}",r).replace("{mention}",t.assistantMention):e.placeholder??t.placeholder,people:r||void 0,assistantDecides:e.assistantDecides,deciding:a.deciding,busy:s,focusWhen:e.focusComposer,onSend:a.send,onStop:a.stop,onNewChat:!l&&!1!==e.showNewChat&&a.messages.length>0?a.reset:void 0,actions:e.composerActions,attachments:e.attachments})]}),i&&e.details?.open&&/* @__PURE__ */I(Re,{messages:a.messages,facts:e.details.facts,toolLabels:e.toolLabels,labels:t,assistantName:t.assistantName||d,onOpenFile:e.onOpenFile,onOpenAttachment:e.attachments?.onOpen})]})]})}function ht(e){const t={...ot,...e.labels},[n,a]=A(e.defaultOpen??!1),r=j(),s=k(null),o=k(n),i=t=>{a(t),e.onOpenChange?.(t)};return C(()=>{o.current&&!n&&s.current?.focus(),o.current=n},[n]),/* @__PURE__ */R("div",{className:"rosh-assistant",style:{display:"contents"},children:[n&&/* @__PURE__ */I("div",{id:r,role:"dialog","aria-label":e.title??t.title,onKeyDown:e=>{"Escape"===e.key&&i(!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__ */I(mt,{...e,onClose:()=>i(!1),focusComposer:!0})}),
|
|
80
|
+
/* @__PURE__ */I("button",{ref:s,type:"button","aria-expanded":n,"aria-controls":n?r:void 0,"aria-label":n?t.close:t.open,onClick:()=>i(!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__ */I(v,n?{name:"close",size:20}:{name:"chat-bubble-left-right",size:22})})]})}function ft(e){if("bubble"===e.variant)/* @__PURE__ */return I(ht,{...e});const t="window"!==e.variant;/* @__PURE__ */
|
|
81
|
+
return I(mt,{...e,className:`${t?"border-l border-gray-200":""} ${e.className??""}`.trim()})}export{Me as ApprovalCard,ft as AssistantChat,rt as AssistantMessage,ot as DEFAULT_ASSISTANT_CHAT_LABELS,H as OWN_DATA_PARTS,Ye as PlanApprovalCard,Je as PlanChecklist,Be as ToolStep,q as addressedToAssistant,z as attachmentPart,W as attachmentsOf,J as buildRequestBody,we as compactCount,Ne as estimateTokens,le as failureView,B as filesOf,je as finishedStats,oe as isDroppedConnection,Te as liveStats,G as mentionsAssistant,ae as messagesFromHistory,Q as peopleNames,ee as pinnedPlan,X as plansOf,ye as summarizeChat,ke as tokensPerSecond,P as toolSummariesOf};
|
package/dist/apps/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
export{openFilesInTrashMode,setFilesDemoTree}from"../chunk-U2RFKQVA.js";export{setBrowserStartUrl}from"../chunk-LWLCNQY7.js";export{BUILTIN_APP_INFO}from"../chunk-
|
|
2
|
+
export{openFilesInTrashMode,setFilesDemoTree}from"../chunk-U2RFKQVA.js";export{setBrowserStartUrl}from"../chunk-LWLCNQY7.js";export{BUILTIN_APP_INFO}from"../chunk-HJW67KA7.js";import"../chunk-E5QPXEKN.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-2YSGXZOL.js";import"../chunk-CY5N5OA3.js";import"../chunk-AW7TOB6N.js";import"../chunk-KNUR2UEG.js";import"../chunk-JDCM2VHG.js";import"../chunk-QYL26AB4.js";import"../chunk-ZDMZM7HD.js";import"../chunk-5A7MWTXX.js";import"../chunk-2E2SUEEE.js";import"../chunk-PLK2WHZG.js";import"../chunk-7INZ7O3A.js";import"../chunk-KC3EX26K.js";import"../chunk-FOFZI62F.js";import"../chunk-3DVNXNTF.js";import"../chunk-ECJKIPWU.js";import"../chunk-VWGWZY7A.js";import"../chunk-7QSDPSXP.js";import{toast_default as o}from"../chunk-7ELJQL7J.js";import"../chunk-UGTRSRIW.js";import"../chunk-EPY34L26.js";import"../chunk-CDAJKLGL.js";import"../chunk-WRQ4A5QY.js";import"../chunk-4WEFGKJL.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-2UO47XB4.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-GDQJBQ5B.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-6NJNSIRN.js")),d=n(()=>import("../Spreadsheet-2E4TQ64O.js")),f=n(()=>import("../Weather-4QPYOENN.js")),w=n(()=>import("../CurrencyConverter-42IHLJVV.js")),g=n(()=>import("../PomodoroTimer-PD7POYX5.js")),S=n(()=>import("../Notepad-L2LOWTSE.js")),v=n(()=>import("../WorldClock-3ZVRBLEW.js")),b=n(()=>import("../Stock-IABQRSXZ.js")),P=n(()=>import("../Preview-HM2Z3EJO.js")),L=n(()=>import("../PdfViewer-Y3SAVADX.js")),E=n(()=>import("../Documents-GGEPMWB5.js")),N=n(()=>import("../Files-OVNXUYOV.js")),T=n(()=>import("../Browser-Q5BYSSW3.js")),W={"/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:S,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: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]}},B={"/preview":{component:P,label:"Preview",size:"2xl",appStyle:!0,multiInstance:!0},"/documents":{component:E,label:"Documents",size:"xl",appStyle:!0,multiInstance:!0},"/files":{component:N,label:"Files",size:"xl",appStyle:!0}},V={"/browser":{component:T,label:"Browser",size:"2xl",appStyle:!0,multiInstance:!0}},Q={...W,...B,...V};export{T as Browser,k as Calculator,w as CurrencyConverter,E as Documents,N as Files,S as Notepad,L as PdfViewer,g as PomodoroTimer,P as Preview,d as Spreadsheet,b as Stock,f as Weather,v as WorldClock,l as attachmentKind,Q as bundledApps,B as documentApps,j as openAttachment,W as utilityApps,V 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.
|
|
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.17.0"});
|