@worktango/ai-assistant 0.0.94-james.31 → 0.0.94-james.32
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/{Absenteeism-DHfTDpkX.mjs → Absenteeism-DYE07taM.mjs} +1 -1
- package/dist/{ActivityFeed-CNscis_O.mjs → ActivityFeed-ChhhWrvf.mjs} +1 -1
- package/dist/{AddUser-BQsD9Tbn.mjs → AddUser-BZypy5Bt.mjs} +1 -1
- package/dist/{Admin-CQa-oVcL.mjs → Admin-fnB2EInp.mjs} +1 -1
- package/dist/{Admin-DHZ04d48.mjs → Admin-qA6cipYg.mjs} +1 -1
- package/dist/{AiGeneral-DmQ35Hkx.mjs → AiGeneral-Cap8PirZ.mjs} +1 -1
- package/dist/{AiScoring-B3jKUFAo.mjs → AiScoring-DG3znnjm.mjs} +1 -1
- package/dist/{AiText-DaU3MQqt.mjs → AiText-DsqPzq56.mjs} +1 -1
- package/dist/{Anniversary-BzPKhy6Q.mjs → Anniversary-I6JRNlR_.mjs} +1 -1
- package/dist/{Appreciation-CSe-Wba5.mjs → Appreciation-DlA-M5Yn.mjs} +1 -1
- package/dist/{ArrowDown-CyJEJ0zW.mjs → ArrowDown-D39QTQR1.mjs} +1 -1
- package/dist/{ArrowLeft-BJGxFrGq.mjs → ArrowLeft-Nqu-HTRI.mjs} +1 -1
- package/dist/{ArrowRight-D3gzNQkX.mjs → ArrowRight-CzyULJOf.mjs} +1 -1
- package/dist/{ArrowUp-xR0WvTxr.mjs → ArrowUp-BPxUr91c.mjs} +1 -1
- package/dist/{Attachment-DPpfpuZT.mjs → Attachment-CfJh7rDh.mjs} +1 -1
- package/dist/{BeQuickDontHurry-CP5X539P.mjs → BeQuickDontHurry-DiFqubt-.mjs} +1 -1
- package/dist/{Birthday-CI2lB1oI.mjs → Birthday-BzAvijJy.mjs} +1 -1
- package/dist/{BrandPromise-DJKm1u5W.mjs → BrandPromise-pkH_wX2v.mjs} +1 -1
- package/dist/{BrandVision-BLk_bf7B.mjs → BrandVision-CYZKgwg-.mjs} +1 -1
- package/dist/{Calendar-BtEMnocK.mjs → Calendar-BAWKmPIp.mjs} +1 -1
- package/dist/{CaretDn-1pal5Tmj.mjs → CaretDn-CTrMSdLc.mjs} +1 -1
- package/dist/{CaretDown-CmY-4S4a.mjs → CaretDown-Cuyptir2.mjs} +1 -1
- package/dist/{CaretLeft-B7okIJt-.mjs → CaretLeft-CWWILVEE.mjs} +1 -1
- package/dist/{CaretRight-CuMbfP_4.mjs → CaretRight-triPdbAN.mjs} +1 -1
- package/dist/{CaretUp-Dqo8Pb7A.mjs → CaretUp-CrZnLY4W.mjs} +1 -1
- package/dist/{ChallengeAccepted-DC7da6hf.mjs → ChallengeAccepted-DALPliFv.mjs} +1 -1
- package/dist/{CheckIn-B4CKH_O0.mjs → CheckIn-C2etUdm8.mjs} +1 -1
- package/dist/{CheckIns-BEVH0MgR.mjs → CheckIns-CYgZk4-0.mjs} +1 -1
- package/dist/{CheckSeal-BE4AQiOi.mjs → CheckSeal-CirQG1sD.mjs} +1 -1
- package/dist/{Checkmark-frEUOA2J.mjs → Checkmark-C1urrEA7.mjs} +1 -1
- package/dist/{Clock-BKnpHDce.mjs → Clock-DyQU1JXx.mjs} +1 -1
- package/dist/{Close-SIGpsKCi.mjs → Close-Cqc3wmR0.mjs} +1 -1
- package/dist/{CloudDownload-__Pff9Lb.mjs → CloudDownload-CVI9BLCf.mjs} +1 -1
- package/dist/{Comment-D5WrMI-L.mjs → Comment-Cswt-4w-.mjs} +1 -1
- package/dist/{Comments-BRQldKKi.mjs → Comments-CCvK_5aZ.mjs} +1 -1
- package/dist/{Connections-BmW21im-.mjs → Connections-C7IafLaD.mjs} +1 -1
- package/dist/{Copy-D1RSZOac.mjs → Copy-Blf7lmo6.mjs} +1 -1
- package/dist/{CustomQuestion-BXc2Uxo8.mjs → CustomQuestion-DShaag-f.mjs} +1 -1
- package/dist/{CustomerSuccess-BUpAF50e.mjs → CustomerSuccess-lYVCl8cL.mjs} +1 -1
- package/dist/{DatePicker-CIqqTm1a.mjs → DatePicker-C3OF2XmA.mjs} +1 -1
- package/dist/{Dot-DBtjLWEV.mjs → Dot-o3IecZZU.mjs} +1 -1
- package/dist/{Download-C7tC5cXD.mjs → Download-CvxSMFdW.mjs} +1 -1
- package/dist/{Drag-Dw7RFV6k.mjs → Drag-BERklYQm.mjs} +1 -1
- package/dist/{Earn-CHQe3mxk.mjs → Earn-DlqBFGEh.mjs} +1 -1
- package/dist/{Email-CKP5qviB.mjs → Email-pq1bRPOO.mjs} +1 -1
- package/dist/{EmojiDisplay-lk7V0cco.mjs → EmojiDisplay-DQNqUgkw.mjs} +2 -2
- package/dist/{EmojiPicker-DESRFhQ5.mjs → EmojiPicker-B5aNADpB.mjs} +2 -2
- package/dist/{EnpsSurvey-jU3WgKUO.mjs → EnpsSurvey-k_EP3odn.mjs} +1 -1
- package/dist/{Expired-DNTUO1Su.mjs → Expired-DxCni1K5.mjs} +1 -1
- package/dist/{Eye-BP_IOf5T.mjs → Eye-c-J32ADp.mjs} +1 -1
- package/dist/{Feedback-Ask35gJx.mjs → Feedback-CTC-q43P.mjs} +1 -1
- package/dist/{Feedback-Bn7dY38r.mjs → Feedback-DOZoT_bq.mjs} +1 -1
- package/dist/{Filter-BDltf7Nb.mjs → Filter-DJ4RiLNX.mjs} +1 -1
- package/dist/{Flag-Br5Mq4pg.mjs → Flag-C0no1R5e.mjs} +1 -1
- package/dist/{Giphy-KEJ5-oYm.mjs → Giphy-CeGeylwe.mjs} +1 -1
- package/dist/{GoalCount-CnlSCdAx.mjs → GoalCount-DncDFIDy.mjs} +1 -1
- package/dist/{GoalPercent-NxLhHg4j.mjs → GoalPercent-Bi6kWGrN.mjs} +1 -1
- package/dist/{GoalTask-BiJnBZfV.mjs → GoalTask-Ii-Evxk6.mjs} +1 -1
- package/dist/{GoalTask-82NU5g7l.mjs → GoalTask-VYkimqYn.mjs} +1 -1
- package/dist/{Goals-DYjGes8x.mjs → Goals-BX0EZUug.mjs} +1 -1
- package/dist/{Goals-Dy-DzHUC.mjs → Goals-Chu4jU5h.mjs} +1 -1
- package/dist/{Growth-BxIjTiUH.mjs → Growth-C8eaLe_H.mjs} +1 -1
- package/dist/{Hamburger-CmGw2uS4.mjs → Hamburger-G0c2seyr.mjs} +1 -1
- package/dist/{Help-BYX5KAIw.mjs → Help-xr8gDRBa.mjs} +1 -1
- package/dist/{HighFive-DVE_DY2W.mjs → HighFive-B4Leon-F.mjs} +1 -1
- package/dist/{HighFive-vqt34OUA.mjs → HighFive-IvVac4CY.mjs} +1 -1
- package/dist/{Home-oi_eKs_F.mjs → Home-Cj6k_T03.mjs} +1 -1
- package/dist/{Home-b-BcMRZv.mjs → Home-DfqNSOLx.mjs} +1 -1
- package/dist/{HorizontalLine-CN6xthYB.mjs → HorizontalLine-CLfe2wee.mjs} +1 -1
- package/dist/{Hourglass-CEFEJNH2.mjs → Hourglass-pP9-UX5j.mjs} +1 -1
- package/dist/{Image-D9oOSfun.mjs → Image-DMzFKNow.mjs} +1 -1
- package/dist/{ImageFile-CK8O4sqm.mjs → ImageFile-DvsNny9W.mjs} +1 -1
- package/dist/{InGoodCompany-BX4L74UY.mjs → InGoodCompany-u3UXQicd.mjs} +1 -1
- package/dist/{Incentives-BniR4GYz.mjs → Incentives-BDqFA4Q-.mjs} +1 -1
- package/dist/{Info-Bet0nULR.mjs → Info-CMxdXnhQ.mjs} +1 -1
- package/dist/{Insights-D3TSQh5b.mjs → Insights-ePAbmsQb.mjs} +1 -1
- package/dist/{Insights-DEOVxd3_.mjs → Insights-vif_oF7U.mjs} +1 -1
- package/dist/{Integrations-B6tq4rda.mjs → Integrations-ASokvRNO.mjs} +1 -1
- package/dist/{KazooLogo-DM3QNT_M.mjs → KazooLogo-Buh5wwZA.mjs} +1 -1
- package/dist/{KnowYourAudience-Mx4uVUig.mjs → KnowYourAudience-Qw9Ri6de.mjs} +1 -1
- package/dist/{Launch-Chndp35A.mjs → Launch-gGM_X2ho.mjs} +1 -1
- package/dist/{Link-Be5LofqH.mjs → Link-BFtG4qZe.mjs} +1 -1
- package/dist/{LinkArrow-taNuzL3U.mjs → LinkArrow-CAWUtwKL.mjs} +1 -1
- package/dist/{Loading-CnMfOAgn.mjs → Loading-BnHMXDw1.mjs} +1 -1
- package/dist/{Lock-CsAizorP.mjs → Lock-5ELCzYdL.mjs} +1 -1
- package/dist/{Management-B9vr1VhW.mjs → Management-BKikJ_RX.mjs} +1 -1
- package/dist/{MeatballMenu-Be7-_fK9.mjs → MeatballMenu-CcSz0Yon.mjs} +1 -1
- package/dist/{Messages-aHpDbIui.mjs → Messages-BnOVtpL3.mjs} +1 -1
- package/dist/{Microphone-ChASXbBl.mjs → Microphone-Dedb4RBb.mjs} +1 -1
- package/dist/{Mobile-BhtWq7KS.mjs → Mobile-BSwSIhZt.mjs} +1 -1
- package/dist/{Nomination-4SR1E-0T.mjs → Nomination-CZ7bID_K.mjs} +1 -1
- package/dist/{NominationsAndAwards-Cv0OQSwO.mjs → NominationsAndAwards-CtSoUsQ4.mjs} +1 -1
- package/dist/{Notification-DL_g7bIL.mjs → Notification-BGNjai81.mjs} +1 -1
- package/dist/{Okrs-BFWb0VgO.mjs → Okrs-Bnml0WnF.mjs} +1 -1
- package/dist/{Pause-DGDDnuwz.mjs → Pause-Dsj-TZml.mjs} +1 -1
- package/dist/{PeerToPeer-Bs29Urpv.mjs → PeerToPeer-B4exID__.mjs} +1 -1
- package/dist/{Pencil-GxdGPskF.mjs → Pencil-Bm9wnTTY.mjs} +1 -1
- package/dist/{People-DDJU56L4.mjs → People-ByLrFyx_.mjs} +1 -1
- package/dist/{PerformanceManagement-Cy5dkMBY.mjs → PerformanceManagement-C3E7g0qw.mjs} +1 -1
- package/dist/{Pin-BO4_g6Qj.mjs → Pin-CzlaXm_d.mjs} +1 -1
- package/dist/{PinnedIconAward-CjkXnyzj.mjs → PinnedIconAward-9leop9qO.mjs} +1 -1
- package/dist/{PinnedIconBrightIdea-DYq7YKVo.mjs → PinnedIconBrightIdea-gmFX-qFz.mjs} +1 -1
- package/dist/{PinnedIconBullseye-COP9oYvS.mjs → PinnedIconBullseye-BFtr7VNj.mjs} +1 -1
- package/dist/{PinnedIconChampagne-D7VXYqqu.mjs → PinnedIconChampagne-DpBzQXI3.mjs} +1 -1
- package/dist/{PinnedIconCheer-BPkr1SVl.mjs → PinnedIconCheer-nfGc_FZK.mjs} +1 -1
- package/dist/{PinnedIconCrown-Dipv4GLG.mjs → PinnedIconCrown-DN543GuS.mjs} +1 -1
- package/dist/{PinnedIconDiamond-CM5dL3O5.mjs → PinnedIconDiamond-Dvb-BRtm.mjs} +1 -1
- package/dist/{PinnedIconHoleInOne-9zQhchQr.mjs → PinnedIconHoleInOne-B3SgnQNi.mjs} +1 -1
- package/dist/{PinnedIconMedal-BT_Vu1M_.mjs → PinnedIconMedal-BqnljQFT.mjs} +1 -1
- package/dist/{PinnedIconMetrics-XfI93Duc.mjs → PinnedIconMetrics-BuJWkUVi.mjs} +1 -1
- package/dist/{PinnedIconPin-B-GWnGgb.mjs → PinnedIconPin-BQZV0lXY.mjs} +1 -1
- package/dist/{PinnedIconRockAndRoll-Dt252gUs.mjs → PinnedIconRockAndRoll-BMr42oov.mjs} +1 -1
- package/dist/{PinnedIconRocket-CMCX7Wnu.mjs → PinnedIconRocket-BYPwXsW3.mjs} +1 -1
- package/dist/{PinnedIconStrength-DvvgTVPM.mjs → PinnedIconStrength-B0a7Ukyv.mjs} +1 -1
- package/dist/{PinnedIconTeddyBear-D_-pvvOy.mjs → PinnedIconTeddyBear-BqY-Ag1h.mjs} +1 -1
- package/dist/{PlatformLogo-ButxD7pw.mjs → PlatformLogo-Bw63Aj6F.mjs} +1 -1
- package/dist/{Plus-DsMTuafs.mjs → Plus-BLHETo98.mjs} +1 -1
- package/dist/{Popper-wB2QjWlV.mjs → Popper-CFYlXHTA.mjs} +1 -1
- package/dist/{PrivateEye-DTMB78dP.mjs → PrivateEye-kW1YH5YC.mjs} +1 -1
- package/dist/{PrivatePushPin-VWz7vYvg.mjs → PrivatePushPin-C-g1YEYQ.mjs} +1 -1
- package/dist/{Processing-DUbBR1C4.mjs → Processing-CUQB_Fje.mjs} +1 -1
- package/dist/{Productivity-CJHUaRTt.mjs → Productivity-CdYCU8xx.mjs} +1 -1
- package/dist/{ProgressCircle-DzkI8Tu6.mjs → ProgressCircle-DE7xcH9P.mjs} +1 -1
- package/dist/{PulseSurvey-Bxv651FR.mjs → PulseSurvey-Dnn8vIwb.mjs} +1 -1
- package/dist/{PushPin-CyILuRmS.mjs → PushPin-NTZ5HtDB.mjs} +1 -1
- package/dist/{Recognition-TJA7BLhK.mjs → Recognition-C1pvlc-J.mjs} +1 -1
- package/dist/{Recognition-Cnl-Xj8c.mjs → Recognition-DmCFw-JR.mjs} +1 -1
- package/dist/{Retention-_0C1k6Xe.mjs → Retention-DOLGN0IR.mjs} +1 -1
- package/dist/{Rewards-BhVSH7n_.mjs → Rewards-D0PyLJ7n.mjs} +1 -1
- package/dist/{Rewards-CxzqhcC_.mjs → Rewards-DcscwhFp.mjs} +1 -1
- package/dist/{RewardsCatalog-DDD9ROlh.mjs → RewardsCatalog-x1evsTol.mjs} +1 -1
- package/dist/{Roadmap-6cOGNTFc.mjs → Roadmap-CUM_CmYd.mjs} +1 -1
- package/dist/{Search-CQornffd.mjs → Search-Be2SBEp8.mjs} +1 -1
- package/dist/{Security-BA_BuG1t.mjs → Security-Da14qcHa.mjs} +1 -1
- package/dist/{SendRecognition-BndNJFCt.mjs → SendRecognition-B1AvowaA.mjs} +1 -1
- package/dist/{ShareLink-CXjp4-DH.mjs → ShareLink-BrIMA_ZX.mjs} +1 -1
- package/dist/{SidebarCollapse-DuZIqFDC.mjs → SidebarCollapse-Ckt5q3G9.mjs} +1 -1
- package/dist/{Skill-By72RYni.mjs → Skill-DhQSVOLV.mjs} +1 -1
- package/dist/{Skills-D1B-qjNa.mjs → Skills-B2nennlg.mjs} +1 -1
- package/dist/{Smiley-CsEHUQ95.mjs → Smiley-nyBhRNij.mjs} +1 -1
- package/dist/{Stop--aGUjAo1.mjs → Stop-DqP6T5F_.mjs} +1 -1
- package/dist/{Survey-C3klvBOu.mjs → Survey-Bg_z0S0B.mjs} +1 -1
- package/dist/{Surveys-Cf3QsLxb.mjs → Surveys-CMab1qBq.mjs} +1 -1
- package/dist/{SyncUps-sPYaIRgt.mjs → SyncUps-B2_DPayk.mjs} +1 -1
- package/dist/{Syncs-DkHNwu70.mjs → Syncs-ByTEoLkm.mjs} +1 -1
- package/dist/{TalentReview-B7RTCjco.mjs → TalentReview-Coxgjtdi.mjs} +1 -1
- package/dist/{TalentReview-HwsK4dlz.mjs → TalentReview-frQ3j4rT.mjs} +1 -1
- package/dist/{TalentReviewInsights-DzVLPfux.mjs → TalentReviewInsights-DlJuOyhZ.mjs} +1 -1
- package/dist/{TaskCompleted-7V68tdxc.mjs → TaskCompleted-DjNxx-TT.mjs} +1 -1
- package/dist/{Team-C00Xipq0.mjs → Team-5TzAvM3S.mjs} +1 -1
- package/dist/{Teams-DavimDua.mjs → Teams-Bea5MR--.mjs} +1 -1
- package/dist/{TextBold-CpkuWrme.mjs → TextBold-1JZvgMSs.mjs} +1 -1
- package/dist/{TextBulletList-DJ9k51Wi.mjs → TextBulletList-OnN2dtjV.mjs} +1 -1
- package/dist/{TextInput-WeGdXZK_.mjs → TextInput-Df8rTeEk.mjs} +1 -1
- package/dist/{TextItalic-Dr5BYdSz.mjs → TextItalic-BLNiWeyU.mjs} +1 -1
- package/dist/{TextNumberList-BzZYFvxw.mjs → TextNumberList-YMDThyxQ.mjs} +1 -1
- package/dist/{TextUnderline-BlAUBzV6.mjs → TextUnderline-BunvL0pV.mjs} +1 -1
- package/dist/{Toggle-ltKT2fCB.mjs → Toggle-Dxb6t8AO.mjs} +1 -1
- package/dist/{Translate-B_CDw0aG.mjs → Translate-5fVar_zR.mjs} +1 -1
- package/dist/{Trash-CuNGkGBM.mjs → Trash-Dd7XNmvi.mjs} +1 -1
- package/dist/{TrendDown-CvMiPCoY.mjs → TrendDown-BTI8e4zl.mjs} +1 -1
- package/dist/{TrendUp-CnoK3tmB.mjs → TrendUp-DTMwwUuP.mjs} +1 -1
- package/dist/{Undo-CmeY0aPB.mjs → Undo-BG6gHp34.mjs} +1 -1
- package/dist/{Unplugged-Nu1fQZb2.mjs → Unplugged-NW4z43Yv.mjs} +1 -1
- package/dist/{UpDownCaret-BZGHruTH.mjs → UpDownCaret-BilwCZPm.mjs} +1 -1
- package/dist/{VerticalLine-DnViCwgZ.mjs → VerticalLine-C9AZF1Tm.mjs} +1 -1
- package/dist/{Warning-r_HrZahV.mjs → Warning-CG7Yb6l1.mjs} +1 -1
- package/dist/{WarningNoOutline-DxfuMsai.mjs → WarningNoOutline-BQZ6B9uR.mjs} +1 -1
- package/dist/{YesAnd-YU2dQiBA.mjs → YesAnd-CKeB6b_Y.mjs} +1 -1
- package/dist/{emoji-BJVK-lef.mjs → emoji-Q42932iX.mjs} +1 -1
- package/dist/{react-apexcharts.min-DmzaIpjv.mjs → react-apexcharts.min-BjWPoywo.mjs} +1 -1
- package/dist/react.es.js +1 -1
- package/dist/react.umd.js +1 -1
- package/dist/{reactComponent-BIsxwIqa.mjs → reactComponent-DAbfDPUA.mjs} +195 -191
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { j as C } from "./reactComponent-
|
|
1
|
+
import { j as C } from "./reactComponent-DAbfDPUA.mjs";
|
|
2
2
|
function L({ illustrationColor: t }) {
|
|
3
3
|
return /* @__PURE__ */ C.jsxs(C.Fragment, { children: [
|
|
4
4
|
/* @__PURE__ */ C.jsx("title", { children: "Yes and illustration" }),
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { _ as A, g as yt, r as _t, h as Et, i as Ct, k as he } from "./reactComponent-
|
|
1
|
+
import { _ as A, g as yt, r as _t, h as Et, i as Ct, k as he } from "./reactComponent-DAbfDPUA.mjs";
|
|
2
2
|
import s from "react";
|
|
3
3
|
function te(i) {
|
|
4
4
|
"@babel/helpers - typeof";
|
package/dist/react.es.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as e, n as o, p as a, m as n, q as i, u as g, v as p, t as A, s as m } from "./reactComponent-
|
|
1
|
+
import { A as e, n as o, p as a, m as n, q as i, u as g, v as p, t as A, s as m } from "./reactComponent-DAbfDPUA.mjs";
|
|
2
2
|
export {
|
|
3
3
|
e as AiAssistant,
|
|
4
4
|
o as AiAssistantSettingsComponent,
|
package/dist/react.umd.js
CHANGED
|
@@ -283,7 +283,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
283
283
|
}
|
|
284
284
|
`;function useUploadAiDocumentMutation(tr){const er={...defaultOptions,...tr};return useApiMutation(UploadAiDocumentDocument,er)}function createSetMessagesHandler({originalSetMessages:tr,propRefs:er}){return rr=>{tr(ir=>{const ar=typeof rr=="function"?rr(ir):rr;return er.current.messages=ar,ar})}}function ConnectionError({retry:tr}){const er=()=>{window.location.reload()};return jsxRuntimeExports.jsxs(Flex,{direction:"column",gap:"24px",children:[jsxRuntimeExports.jsx(Divider,{}),jsxRuntimeExports.jsx(Spacer,{}),jsxRuntimeExports.jsxs(Flex,{direction:"row",gap:"8px",alignItems:"center",children:[jsxRuntimeExports.jsx(Icon,{icon:"warning"}),jsxRuntimeExports.jsxs(Text,{children:["Error calling LLM API. If this persists, try"," ",jsxRuntimeExports.jsx("a",{href:"#",onClick:er,"data-testid":"connection-error-refresh-page",children:"refreshing the page"}),"."]})]}),jsxRuntimeExports.jsxs(Flex,{justifyContent:"flex-end",gap:"8px",children:[jsxRuntimeExports.jsx(Button,{onClick:er,variant:"system",size:"small","data-testid":"connection-error-refresh-page-button",children:"Refresh Page"}),jsxRuntimeExports.jsx(Button,{onClick:tr,variant:"primary","data-testid":"connection-error-retry-button",children:"Retry"})]})]})}class NdJson{static parse(er){return er.trim().split(`
|
|
285
285
|
`).map(ir=>JSON.parse(ir))}static stringify(er){return er.map(rr=>JSON.stringify(rr)).join(`
|
|
286
|
-
`)}}const config={kazooUrlStrategy:tr=>tr,llmCallUrlStrategy:tr=>tr,pulseUrlStrategy:tr=>tr,pulseBearerTokenStrategy:()=>null,screenshotMainContentSelector:"#root",structuredResponseUrlStrategy:tr=>tr};function getSynthesizeUrl(){return config.llmCallUrlStrategy("/api/api-ai-assistant/v1/tts")}function getTranscribeUrl(){return config.llmCallUrlStrategy("/api/api-ai-assistant/v1/stt")}function getLlmCallUrl(){return config.llmCallUrlStrategy("/api/api-ai-assistant/v1/chat")}function getStructuredResponseUrl(){return config.structuredResponseUrlStrategy("/api/api-ai-assistant/v1/structured-response")}function getKazooUrl(tr){return config.kazooUrlStrategy(tr)}function getPulseUrl(tr){return config.pulseUrlStrategy(tr)}function getPulseBearerToken(){return config.pulseBearerTokenStrategy()}function getScreenshotMainContentSelector(){return config.screenshotMainContentSelector}function setScreenshotMainContentSelector(tr){config.screenshotMainContentSelector=tr}function setKazooUrlStrategy(tr){config.kazooUrlStrategy=tr}function setLlmCallUrlStrategy(tr){config.llmCallUrlStrategy=tr}function setPulseUrlStrategy(tr){config.pulseUrlStrategy=tr}function setPulseBearerTokenStrategy(tr){config.pulseBearerTokenStrategy=tr}function setStructuredResponseUrlStrategy(tr){config.structuredResponseUrlStrategy=tr}const config$1=Object.freeze(Object.defineProperty({__proto__:null,getKazooUrl,getLlmCallUrl,getPulseBearerToken,getPulseUrl,getScreenshotMainContentSelector,getStructuredResponseUrl,getSynthesizeUrl,getTranscribeUrl,setKazooUrlStrategy,setLlmCallUrlStrategy,setPulseBearerTokenStrategy,setPulseUrlStrategy,setScreenshotMainContentSelector,setStructuredResponseUrlStrategy},Symbol.toStringTag,{value:"Module"}));async function getChatCompletion({model:tr,temperature:er,stream:rr,messages:ir,tools:ar,onChunk:nr,onError:or,onComplete:lr,systemInstruction:fr}){var cr;const dr=getPulseBearerToken();try{const ur=await fetch(getLlmCallUrl(),{method:"POST",body:JSON.stringify({model:tr,temperature:er,stream:rr,messages:ir,tools:ar,systemInstruction:fr}),credentials:dr?void 0:"include",headers:{"Content-Type":"application/json",Accept:rr?"text/event-stream":"application/json",...dr?{Authorization:`Bearer ${dr}`}:{}}});if(!ur||!ur.ok)throw new Error("Unable to connect to LLM API. Please try again.");if(rr){const hr=(cr=ur.body)==null?void 0:cr.getReader();if(!hr)throw new Error("Unexpected client error. Response body reader not available.");const gr=new TextDecoder,_r=[],pr=nr||(Fr=>{_r.push(Fr)}),mr=1e4;for(;mr>0;){const{done:Fr,value:Ar}=await hr.read();if(Fr)break;const br=gr.decode(Ar),yr=NdJson.parse(br);for(const xr of yr)pr(xr)}return lr==null||lr(),_r}return(await ur.json()).parts}catch(ur){const sr=ur instanceof Error?ur:new Error("Unexpected error calling LLM API");throw or==null||or(sr),sr}}function getMessagesAsLlmChatItems(tr){var rr,ir,ar,nr;const er=[];for(const or of tr)or.role==="TOOL"?er.push({id:or.id,role:"user",parts:[{type:"toolCall",toolName:(rr=or.metadata)==null?void 0:rr.toolName,args:{args:(ir=or.metadata)==null?void 0:ir.toolArgs}}]},{id:or.id,role:"user",parts:[{type:"toolResult",result:or.messageText,toolName:(ar=or.metadata)==null?void 0:ar.toolName,args:{args:(nr=or.metadata)==null?void 0:nr.toolArgs}}]}):or.role==="USER"?er.push({id:or.id,role:"user",parts:[{type:"text",text:or.messageText}]}):or.role==="MODEL"&&er.push({id:or.id,role:"model",parts:[{type:"text",text:or.messageText}]});return er}async function handleFollowUpSuggestions({propRefs:tr,conversationId:er}){var or;if(!tr.current.getFollowUpSuggestions)return;const rr=tr.current.getConversationById(er);if(!rr||!((or=rr.messages)!=null&&or.length))return;const ir=Date.now();suggestionsLoadingTimeByConversationIdMap.set(er,ir),tr.current.setFollowUpSuggestionsByConversationId(lr=>({...lr,[er]:[{type:"loading"}]}));const ar=await tr.current.getFollowUpSuggestions({conversation:rr}).catch(lr=>(console.log("Error getting follow up suggestions",lr),[])),nr=suggestionsLoadingTimeByConversationIdMap.get(er);nr&&ir!==nr||tr.current.setFollowUpSuggestionsByConversationId(lr=>({...lr,[er]:ar.map(fr=>({id:fr.fullPrompt||fr.title,title:fr.title,onClick:()=>{!fr.fullPrompt||fr.fullPrompt===fr.title?tr.current.handleSendUserMessage({conversationId:er,messageText:fr.title}):tr.current.setPrompt(er,coalesce(fr.fullPrompt,fr.title))}}))}))}const suggestionsLoadingTimeByConversationIdMap=new Map;async function handlePendingToolCalls({toolCalls:tr,propRefs:er,debugInfo:rr,conversationId:ir,appendMessageToConversation:ar}){await executeAsyncPromiseCallback(async nr=>{var fr,dr,cr;if(tr.length===0||!er.current.isMounted)return nr();const or=[];for(const ur of tr){const sr=v4(),hr=(fr=er.current.tools)==null?void 0:fr.find(pr=>pr.name===ur.toolName);if(!hr){console.log("debug4 tool not found"),(cr=(dr=er.current).onError)==null||cr.call(dr,new Error(`Tool ${ur.toolName} not found`)),rr.current.push({time:new Date,message:`Tool ${ur.toolName} not found`,data:{toolCall:ur,tools:er.current.tools},level:"error"});continue}let gr=ur.args;if(gr!=null&&gr.args)for(;gr!=null&&gr.args;)console.log(`debug4 unwrapping args ${sr} ${ur.toolName}`,gr),gr=gr.args;let _r;try{er.current.setMessages(Ar=>{console.log(`debug4 setMessages for toolCall ${sr} ${ur.toolName}`);const br={...Ar};return br[ir]={...br[ir]},br[ir].messages=[...br[ir].messages,{id:sr,role:"TOOL",conversationId:ir,messageText:ur.toolName,metadata:{toolName:ur.toolName,toolArgs:ur.args,loading:!0}}],br}),rr.current.push({time:new Date,level:"info",message:"Fulfilling tool call",data:{toolCall:ur}});const pr=Date.now();console.log(`debug4 calling ${sr} ${ur.toolName}`);const mr=await hr.fulfill(gr);console.log(`debug4 done ${sr} ${ur.toolName}`,mr);const Fr=Date.now();typeof mr=="string"?(_r=mr,or.push({type:"toolResult",toolName:ur.toolName,args:gr,result:mr}),rr.current.push({time:new Date,level:"info",message:"Tool call fulfilled",data:{toolCall:ur,durationMs:Fr-pr,result:mr}})):(or.push({type:"toolResult",toolName:ur.toolName,result:`Tool ${ur.toolName} returned the following file`,args:gr}),or.push({type:"file",toolName:ur.toolName,fileUri:mr==null?void 0:mr.fileUri,mimeType:mr==null?void 0:mr.mimeType,args:gr}),rr.current.push({time:new Date,level:"info",message:"Tool call fulfilled with file",data:{toolCall:ur,durationMs:Fr-pr,result:mr}}))}catch(pr){console.log(`debug4 error fulfilling tool ${sr} ${ur.toolName}`,{error:pr}),rr.current.push({time:new Date,message:"Error calling tool",level:"error",data:{toolCall:ur,error:{message:pr.message,stack:pr.stack}}}),or.push({type:"toolResult",toolName:ur.toolName,result:{error:{message:pr.message,stack:pr.stack}},args:gr})}finally{const pr=coalesce(er.current.messages,{});console.log(`DEBUG4 final updating ${sr} ${ur.toolName}`);const mr={...pr};mr[ir].messages=mr[ir].messages.map(Fr=>Fr.id===sr?{...Fr,messageText:coalesce(_r,Fr.messageText),metadata:{...Fr.metadata,loading:!1,logme:console.log(`DEBUG4 updating ${sr} ${ur.toolName}`)}}:Fr),er.current.setMessages(mr)}}if(!er.current.isMounted)return nr();const lr=or.map(ur=>({id:v4(),role:"TOOL",conversationId:ir,messageText:ur.type==="toolResult"?ur.result:"file",metadata:{toolName:ur.toolName,toolArgs:ur.args}}));await Promise.all(lr.map(async ur=>{await ar({variables:{input:{conversationId:ir,message:{id:ur.id,role:"TOOL",messageText:ur.messageText,metadata:ur.metadata}}}})})),await er.current.sendMessages(ir),nr()})}function getSendMessagesHandler({setConnectionError:tr,propRefs:er,debugInfo:rr,appendMessageToConversation:ir}){return async function ar(nr){var lr,fr,dr,cr,ur;if(!er.current.isMounted)return!1;tr(null),er.current.setMessages(sr=>({...sr,[nr]:{...sr[nr],isLoading:!0}}));try{er.current.onBeforeLlmCall&&er.current.onBeforeLlmCall()}catch(sr){rr.current.push({time:new Date,message:"Error calling onBeforeLlmCall",data:sr,level:"error"})}let or;try{er.current.systemInstruction&&(rr.current.push({time:new Date,message:"Getting system instruction",level:"info"}),or=await er.current.systemInstruction(),rr.current.push({time:new Date,message:"System instruction",data:or,level:"info"}))}catch(sr){rr.current.push({time:new Date,message:"Error getting system instruction",data:sr,level:"error"}),(fr=(lr=er.current).onError)==null||fr.call(lr,sr)}er.current.setFollowUpSuggestionsByConversationId(sr=>({...sr,[nr]:[]}));try{const sr={type:"text",text:""},hr=[],gr=v4();return await getChatCompletion({model:er.current.model,temperature:er.current.temperature,stream:!0,messages:getMessagesAsLlmChatItems(coalesce((dr=er.current.getConversationById(nr))==null?void 0:dr.messages,[])),tools:er.current.tools,systemInstruction:or,onChunk:_r=>{var pr,mr;console.log("debug4 onChunk",{parsedChunk:JSON.stringify(_r)}),_r.type==="text"?sr.text+=_r.text:_r.type==="toolCall"&&hr.push(_r),er.current.setMessages(Fr=>{const Ar=Fr[nr];if(!Ar)return console.error(`Invariant violation: currentConversation is undefined for conversationId ${nr}`,Fr),Fr;const br=coalesce(Ar.messages,[]),yr=br[br.length-1];return sr.text&&((yr==null?void 0:yr.role)==="MODEL"?yr.messageText=sr.text:br.push({id:gr,role:"MODEL",conversationId:nr,messageText:sr.text})),Ar.messages=br,{...Fr,[nr]:cloneDeep(Ar)}}),(mr=(pr=er.current).onChunkAdded)==null||mr.call(pr)}}),sr.text&&await ir({variables:{input:{conversationId:nr,message:{id:gr,role:"MODEL",messageText:sr.text}}}}),safelyInvokeUserCallback({condition:!!er.current.onAfterLlmCall,conversationId:nr,callbackToInvoke:er.current.onAfterLlmCall,callbackName:"onAfterLlmCall",debugInfo:rr,onError:er.current.onError,propRefs:er}),await handlePendingToolCalls({conversationId:nr,toolCalls:hr,propRefs:er,debugInfo:rr,appendMessageToConversation:ir}),await handleFollowUpSuggestions({propRefs:er,conversationId:nr}),!0}catch(sr){if(!er.current.isMounted)return!1;const hr=composeSimpleFunctions(getClosureFor(tr,null),getClosureFor(ar,nr));return rr.current.push({time:new Date,message:"Error calling LLM API",data:sr,level:"error"}),tr({message:jsxRuntimeExports.jsx(ConnectionError,{retry:hr}),retry:hr}),(ur=(cr=er.current).onError)==null||ur.call(cr,sr),!1}finally{er.current.setMessages(sr=>({...sr,[nr]:{...sr[nr],isLoading:!1}}))}}}function safelyInvokeUserCallback({condition:tr,conversationId:er,callbackToInvoke:rr,callbackName:ir,debugInfo:ar,onError:nr,propRefs:or}){if(!(!tr||!rr)){ar.current.push({time:new Date,message:`Calling ${ir}`,level:"info"});try{const lr=or.current.messages;rr(lr[er].messages)}catch(lr){ar.current.push({time:new Date,message:`Error calling ${ir}`,data:lr,level:"error"}),nr&&nr(lr)}finally{ar.current.push({time:new Date,message:`Finished calling ${ir}`,level:"info"})}}}var Voice=(tr=>(tr.AOEDE="Aoede",tr.PUCK="Puck",tr.CHARON="Charon",tr.KORE="Kore",tr.FENRIR="Fenrir",tr.LEDA="Leda",tr.ORUS="Orus",tr.ZEPHYR="Zephyr",tr))(Voice||{});async function synthesizeText(tr,er){const rr=getPulseBearerToken(),ir=await fetch(getSynthesizeUrl(),{method:"POST",body:JSON.stringify({text:tr,voice:er}),credentials:rr?void 0:"include",headers:{"Content-Type":"application/json",Accept:"application/json",...rr?{Authorization:`Bearer ${rr}`}:{}}});if(!ir||!ir.ok)throw new Error("Unable to connect to LLM API. Please try again.");const ar=await ir.json();if(!ar.synthesis)throw new Error("No synthesis data received.");return ar.synthesis}async function transcribeAudio(tr){const er=getPulseBearerToken(),rr=await fetch(getTranscribeUrl(),{method:"POST",body:JSON.stringify({audio:tr}),credentials:er?void 0:"include",headers:{"Content-Type":"application/json",Accept:"application/json",...er?{Authorization:`Bearer ${er}`}:{}}});if(!rr||!rr.ok)throw new Error("Unable to connect to LLM API. Please try again.");const ir=await rr.json();if(!ir.transcription)throw new Error("No transcription data received.");return ir.transcription}function useAiAssistantSession({model:tr,initialMessages:er,temperature:rr,onAfterLlmCall:ir,onBeforeLlmCall:ar,onError:nr,tools:or,onChunkAdded:lr,systemInstruction:fr,onSelectedConversationChange:dr,onSelectedConversationLoaded:cr,initialConversationId:ur,getFollowUpSuggestions:sr,getChatTitle:hr,initialPrompt:gr}){const[_r,pr]=React.useState(!1),[mr,Fr]=React.useState(null),[Ar,br]=React.useState(getConversationInitialState({initialConversationId:ur})),[yr,xr]=React.useState(getMessagesInitialState({initialMessages:er,selectedConversationId:Ar})),wr=React.useRef({onAfterLlmCall:ir,onBeforeLlmCall:ar,onError:nr,tools:or,model:tr,temperature:rr,isMounted:!0,systemInstruction:fr,onChunkAdded:lr,getConversationById:doNothing$1,setFollowUpSuggestionsByConversationId:doNothing$1,getFollowUpSuggestions:sr,handleSendUserMessage:doNothing$1,setPrompt:doNothing$1,selectedConversationId:Ar,onSelectedConversationLoaded:cr,onSelectedConversationChange:dr,messages:yr,sendMessages:doNothing$1,setMessages:doNothing$1}),vr=React.useCallback(createSetMessagesHandler({originalSetMessages:xr,propRefs:wr}),[xr]),[Cr,Er]=React.useState(!1),[Dr,Ir]=React.useState(""),Rr=React.useRef(void 0);Rr.current=cr;const[Sr,Lr]=React.useState({}),[Br,Pr]=React.useState(getPromptInitialState({initialPrompt:gr,selectedConversationId:Ar})),Mr=React.useRef([]),[Ur]=useAppendMessageToConversationMutation(),{refetch:kr}=useGetAllConversationsQuery({fetchPolicy:"cache-and-network",onCompleted:getAllConversationsQueryCompletedHandler({propRefs:wr})}),[jr]=useUpdateConversationTitleMutation();wr.current.getConversationById=pn=>wr.current.messages[pn],wr.current.setFollowUpSuggestionsByConversationId=Lr,wr.current.setPrompt=getSetPromptHandler({setPromptByConversationId:Pr,selectedConversationId:Ar}),wr.current.onAfterLlmCall=ir,wr.current.onBeforeLlmCall=ar,wr.current.onError=nr,wr.current.tools=or,wr.current.model=tr,wr.current.temperature=rr,wr.current.systemInstruction=fr,wr.current.onChunkAdded=lr,wr.current.isMounted=!0,wr.current.onSelectedConversationChange=dr,wr.current.selectedConversationId=Ar,wr.current.getFollowUpSuggestions=sr,wr.current.setMessages=vr;const{loading:Hr,data:Tr}=useGetAConversationQuery({skip:Ar===void 0,variables:{input:{conversationId:coalesce(Ar,"")}},fetchPolicy:"cache-and-network",onCompleted:getAConversationQueryCompletedHandler({selectedConversationId:Ar,propRefs:wr}),onError:doNothing$1});React.useEffect(()=>()=>{wr.current.isMounted=!1},[]),React.useEffect(getFollowUpSuggestionsHandler({propRefs:wr,selectedConversationId:Ar,messages:yr}),[Ar,Tr]);const Wr=React.useCallback(getClosureFor(br,void 0),[]),tn=React.useCallback(getUpdateTitleHandler({propRefs:wr,updateConversationTitle:jr}),[jr]),Gr=React.useCallback(getTranscriptionHandler(),[]),en=React.useCallback(getSpeechHandler(),[]),rn=React.useCallback(getSendMessagesHandler({propRefs:wr,debugInfo:Mr,setConnectionError:Fr,appendMessageToConversation:Ur}),[]);wr.current.sendMessages=rn;const ln=React.useCallback(getSendUserMessageHandler({setSelectedConversationId:br,debugInfo:Mr,appendMessageToConversation:Ur,propRefs:wr}),[br,Mr,Ur,wr]),qr=getHandleSendUserMessage({selectedConversationId:Ar,setPromptByConversationId:Pr,getChatTitle:hr,sendUserMessage:ln,updateTitle:tn});wr.current.handleSendUserMessage=qr;const cn=coalesce(Sr[coalesce(Ar,"")],[]),Kr=coalesce(Br[coalesce(Ar,"")],"");return{messages:yr,setMessages:vr,isVoiceEnabled:_r,setIsVoiceEnabled:pr,getSpeech:en,getTranscription:Gr,debugInfo:Mr.current,sendUserMessage:ln,connectionError:mr,followUpSuggestions:cn,promptByConversationId:Br,prompt:Kr,setPromptByConversationId:Pr,setPrompt:wr.current.setPrompt,selectedConversationId:Ar,isSearching:Cr,searchQuery:Dr,setIsSearching:Er,setSearchQuery:Ir,isLoadingConversation:Hr,selectedConversation:yr[coalesce(Ar,"")],createNewConversation:Wr,setSelectedConversationId:br,updateTitle:tn,refetchConversations:kr,handleSendUserMessage:qr}}function getConversationInitialState({initialConversationId:tr}){if(tr)return tr}function getMessagesInitialState({initialMessages:tr,selectedConversationId:er=""}){return er?{[er]:{id:er,title:"",updatedAt:new Date,isLoading:!1,messages:coalesce(tr,[])}}:{}}function getPromptInitialState({initialPrompt:tr,selectedConversationId:er}){return er?{[er]:coalesce(tr,"")}:{"":coalesce(tr,"")}}function getAllConversationsQueryCompletedHandler({propRefs:tr}){return er=>{if(er!=null&&er.getConversations){const rr=Date.now(),ir=cloneDeep(er.getConversations).map(ar=>({id:ar.id,title:ar.title,updatedAt:new Date(coalesce(ar.updatedAt,rr))}));tr.current.setMessages(ar=>{const nr=cloneDeep(ar);for(const or of ir){const lr=or.id,fr=ar[lr],dr=coalesce(ir.find(cr=>cr.id===lr),{});nr[lr]={...fr,...dr}}return nr})}}}function getAConversationQueryCompletedHandler({selectedConversationId:tr,propRefs:er}){return rr=>{if(!(rr!=null&&rr.aiAssistantConversation))return;const ir=cloneDeep(rr.aiAssistantConversation.messages);er.current.setMessages(ar=>{if(!tr)return ar;const nr=ar[tr];if(!nr)return console.error(`Invariant violation: conversation is undefined for conversationId ${tr}`,ar),ar;nr.messages=coalesce(nr.messages,[]);let or;for(const lr of ir){const fr=nr.messages.findIndex(cr=>cr.id===lr.id),dr=nr.messages[fr];typeof dr<"u"?dr.messageText=lr.messageText:nr.messages.splice(nr.messages.findIndex(cr=>cr.id===or)+1,0,lr),or=lr.id}return{...ar,[tr]:cloneDeep(nr)}}),setTimeout(()=>{var ar,nr;(nr=(ar=er.current).onSelectedConversationLoaded)==null||nr.call(ar,tr,er.current.selectedConversationId,er.current.messages)},10)}}function getHandleSendUserMessage({selectedConversationId:tr,sendUserMessage:er,setPromptByConversationId:rr,getChatTitle:ir,updateTitle:ar}){return async({conversationId:nr=tr,messageText:or})=>{if(!or)return;const lr=nr===void 0;try{const{id:fr}=await er({message:or});if(rr(dr=>({...dr,[fr]:""})),lr){const dr=await ir(or);dr&&dr!=="New Chat"&&await ar(fr,dr)}}catch(fr){console.error(fr)}}}function getSendUserMessageHandler({propRefs:tr,setSelectedConversationId:er,debugInfo:rr,appendMessageToConversation:ir}){return async({message:ar,skipAppendingUserMessageToConversation:nr=!1})=>{const or=!tr.current.selectedConversationId,lr=tr.current.selectedConversationId||v4();tr.current.selectedConversationId=lr;const fr=tr.current.getConversationById(lr),dr={id:v4(),role:"USER",messageText:ar,conversationId:lr},cr=cloneDeep(fr||{id:lr,title:"New Chat",updatedAt:new Date,isLoading:!0,messages:[]}),ur={...cr,messages:[...coalesce(fr==null?void 0:fr.messages,[]),dr],isLoading:!0};tr.current.setMessages(_r=>({..._r,[lr]:ur})),or&&(er(lr),tr.current.selectedConversationId=lr);const sr=[];!nr&&sr.push(ir({variables:{input:{conversationId:lr,message:{id:dr.id,role:"USER",messageText:ar}}}}));const hr=tr.current.sendMessages(lr);return sr.push(hr),await Promise.all(sr),!!await hr||rr.current.push({time:new Date,message:"Error sending message",data:{oldStateInCaseOfFailure:cr},level:"error"}),{id:lr}}}function getUpdateTitleHandler({propRefs:tr,updateConversationTitle:er}){return async(rr,ir)=>{tr.current.setMessages(ar=>({...ar,[rr]:{...ar[rr],title:ir,isUpdatingTitle:!0}})),await er({variables:{input:{conversationId:rr,title:ir}}}),tr.current.setMessages(ar=>({...ar,[rr]:{...ar[rr],isUpdatingTitle:!1}}))}}function getSetPromptHandler({setPromptByConversationId:tr,selectedConversationId:er}){return(rr=coalesce(er,""),ir)=>{tr(typeof ir=="function"?ar=>({...ar,[rr]:ir(ar[rr])}):ar=>({...ar,[rr]:ir}))}}function getFollowUpSuggestionsHandler({propRefs:tr,selectedConversationId:er,messages:rr}){return()=>{var ar,nr;if((nr=(ar=tr.current)==null?void 0:ar.onSelectedConversationChange)==null||nr.call(ar,er,rr),!er)return;const ir=setTimeout(()=>{handleFollowUpSuggestions({propRefs:tr,conversationId:er})},500);return()=>clearTimeout(ir)}}function getTranscriptionHandler(){return async tr=>await transcribeAudio(tr)}function getSpeechHandler(){return async tr=>await synthesizeText(tr)}const styles$5={"ai-assistant-textarea":"AiAssistantComponent-module_ai-assistant-textarea_dJrtB","ai-assistant-popup-container":"AiAssistantComponent-module_ai-assistant-popup-container_OH04M","ai-assistant-chat-history-container":"AiAssistantComponent-module_ai-assistant-chat-history-container_mIJ3y","ai-assistant-chat-history-header":"AiAssistantComponent-module_ai-assistant-chat-history-header_aR6OI","ai-assistant-chat-history-button":"AiAssistantComponent-module_ai-assistant-chat-history-button_Q34D6","conversation-selected":"AiAssistantComponent-module_conversation-selected_-ijIe","ai-assistant-chat-history-button-text":"AiAssistantComponent-module_ai-assistant-chat-history-button-text_cAi5Q","textarea-container":"AiAssistantComponent-module_textarea-container_4eE9f","placeholder-content":"AiAssistantComponent-module_placeholder-content_8vmjp","placeholder-text":"AiAssistantComponent-module_placeholder-text_8edUF","loading-container":"AiAssistantComponent-module_loading-container_7BNjW","messages-scroll-container":"AiAssistantComponent-module_messages-scroll-container_8O6Kb","ai-assistant-send-btn":"AiAssistantComponent-module_ai-assistant-send-btn_h2wdX","ai-assistant-search-input-container":"AiAssistantComponent-module_ai-assistant-search-input-container_lUZKm"};var dist$1={},dist={},ortWeb_min={exports:{}};const backends={},backendsSortedByPriority=[],registerBackend=(tr,er,rr)=>{if(er&&typeof er.init=="function"&&typeof er.createSessionHandler=="function"){const ir=backends[tr];if(ir===void 0)backends[tr]={backend:er,priority:rr};else{if(ir.priority>rr)return;if(ir.priority===rr&&ir.backend!==er)throw new Error(`cannot register backend "${tr}" using priority ${rr}`)}if(rr>=0){const ar=backendsSortedByPriority.indexOf(tr);ar!==-1&&backendsSortedByPriority.splice(ar,1);for(let nr=0;nr<backendsSortedByPriority.length;nr++)if(backends[backendsSortedByPriority[nr]].priority<=rr){backendsSortedByPriority.splice(nr,0,tr);return}backendsSortedByPriority.push(tr)}return}throw new TypeError("not a valid backend")},resolveBackend=async tr=>{const er=tr.length===0?backendsSortedByPriority:tr,rr=[];for(const ir of er){const ar=backends[ir];if(ar){if(ar.initialized)return ar.backend;if(ar.aborted)continue;const nr=!!ar.initPromise;try{return nr||(ar.initPromise=ar.backend.init()),await ar.initPromise,ar.initialized=!0,ar.backend}catch(or){nr||rr.push({name:ir,err:or}),ar.aborted=!0}finally{delete ar.initPromise}}}throw new Error(`no available backend found. ERR: ${rr.map(ir=>`[${ir.name}] ${ir.err}`).join(", ")}`)};class EnvImpl{constructor(){this.wasm={},this.webgl={},this.logLevelInternal="warning"}set logLevel(er){if(er!==void 0){if(typeof er!="string"||["verbose","info","warning","error","fatal"].indexOf(er)===-1)throw new Error(`Unsupported logging level: ${er}`);this.logLevelInternal=er}}get logLevel(){return this.logLevelInternal}}const env=new EnvImpl,isBigInt64ArrayAvailable=typeof BigInt64Array<"u"&&typeof BigInt64Array.from=="function",isBigUint64ArrayAvailable=typeof BigUint64Array<"u"&&typeof BigUint64Array.from=="function",NUMERIC_TENSOR_TYPE_TO_TYPEDARRAY_MAP=new Map([["float32",Float32Array],["uint8",Uint8Array],["int8",Int8Array],["uint16",Uint16Array],["int16",Int16Array],["int32",Int32Array],["bool",Uint8Array],["float64",Float64Array],["uint32",Uint32Array]]),NUMERIC_TENSOR_TYPEDARRAY_TO_TYPE_MAP=new Map([[Float32Array,"float32"],[Uint8Array,"uint8"],[Int8Array,"int8"],[Uint16Array,"uint16"],[Int16Array,"int16"],[Int32Array,"int32"],[Float64Array,"float64"],[Uint32Array,"uint32"]]);isBigInt64ArrayAvailable&&(NUMERIC_TENSOR_TYPE_TO_TYPEDARRAY_MAP.set("int64",BigInt64Array),NUMERIC_TENSOR_TYPEDARRAY_TO_TYPE_MAP.set(BigInt64Array,"int64")),isBigUint64ArrayAvailable&&(NUMERIC_TENSOR_TYPE_TO_TYPEDARRAY_MAP.set("uint64",BigUint64Array),NUMERIC_TENSOR_TYPEDARRAY_TO_TYPE_MAP.set(BigUint64Array,"uint64"));const calculateSize=tr=>{let er=1;for(let rr=0;rr<tr.length;rr++){const ir=tr[rr];if(typeof ir!="number"||!Number.isSafeInteger(ir))throw new TypeError(`dims[${rr}] must be an integer, got: ${ir}`);if(ir<0)throw new RangeError(`dims[${rr}] must be a non-negative integer, got: ${ir}`);er*=ir}return er};let Tensor$1=class ys{constructor(er,rr,ir){let ar,nr,or;if(typeof er=="string")if(ar=er,or=ir,er==="string"){if(!Array.isArray(rr))throw new TypeError("A string tensor's data must be a string array.");nr=rr}else{const fr=NUMERIC_TENSOR_TYPE_TO_TYPEDARRAY_MAP.get(er);if(fr===void 0)throw new TypeError(`Unsupported tensor type: ${er}.`);if(Array.isArray(rr))nr=fr.from(rr);else if(rr instanceof fr)nr=rr;else throw new TypeError(`A ${ar} tensor's data must be type of ${fr}`)}else if(or=rr,Array.isArray(er)){if(er.length===0)throw new TypeError("Tensor type cannot be inferred from an empty array.");const fr=typeof er[0];if(fr==="string")ar="string",nr=er;else if(fr==="boolean")ar="bool",nr=Uint8Array.from(er);else throw new TypeError(`Invalid element type of data array: ${fr}.`)}else{const fr=NUMERIC_TENSOR_TYPEDARRAY_TO_TYPE_MAP.get(er.constructor);if(fr===void 0)throw new TypeError(`Unsupported type for tensor data: ${er.constructor}.`);ar=fr,nr=er}if(or===void 0)or=[nr.length];else if(!Array.isArray(or))throw new TypeError("A tensor's dims must be a number array");const lr=calculateSize(or);if(lr!==nr.length)throw new Error(`Tensor's size(${lr}) does not match data length(${nr.length}).`);this.dims=or,this.type=ar,this.data=nr,this.size=lr}static bufferToTensor(er,rr){if(er===void 0)throw new Error("Image buffer must be defined");if(rr.height===void 0||rr.width===void 0)throw new Error("Image height and width must be defined");const{height:ir,width:ar}=rr,nr=rr.norm;let or,lr;nr===void 0||nr.mean===void 0?or=255:or=nr.mean,nr===void 0||nr.bias===void 0?lr=0:lr=nr.bias;const fr=rr.bitmapFormat!==void 0?rr.bitmapFormat:"RGBA",dr=rr.tensorFormat!==void 0&&rr.tensorFormat!==void 0?rr.tensorFormat:"RGB",cr=ir*ar,ur=dr==="RGBA"?new Float32Array(cr*4):new Float32Array(cr*3);let sr=4,hr=0,gr=1,_r=2,pr=3,mr=0,Fr=cr,Ar=cr*2,br=-1;fr==="RGB"&&(sr=3,hr=0,gr=1,_r=2,pr=-1),dr==="RGBA"?br=cr*3:dr==="RBG"?(mr=0,Ar=cr,Fr=cr*2):dr==="BGR"&&(Ar=0,Fr=cr,mr=cr*2);for(let xr=0;xr<cr;xr++,hr+=sr,_r+=sr,gr+=sr,pr+=sr)ur[mr++]=(er[hr]+lr)/or,ur[Fr++]=(er[gr]+lr)/or,ur[Ar++]=(er[_r]+lr)/or,br!==-1&&pr!==-1&&(ur[br++]=(er[pr]+lr)/or);return dr==="RGBA"?new ys("float32",ur,[1,4,ir,ar]):new ys("float32",ur,[1,3,ir,ar])}static async fromImage(er,rr){const ir=typeof HTMLImageElement<"u"&&er instanceof HTMLImageElement,ar=typeof ImageData<"u"&&er instanceof ImageData,nr=typeof ImageBitmap<"u"&&er instanceof ImageBitmap,or=typeof String<"u"&&(er instanceof String||typeof er=="string");let lr,fr={};if(ir){const dr=document.createElement("canvas"),cr=dr.getContext("2d");if(cr!=null){let ur=er.naturalHeight,sr=er.naturalWidth;if(rr!==void 0&&rr.resizedHeight!==void 0&&rr.resizedWidth!==void 0&&(ur=rr.resizedHeight,sr=rr.resizedWidth),rr!==void 0){if(fr=rr,rr.tensorFormat!==void 0)throw new Error("Image input config format must be RGBA for HTMLImageElement");if(fr.tensorFormat="RGBA",rr.height!==void 0&&rr.height!==ur)throw new Error("Image input config height doesn't match HTMLImageElement height");if(fr.height=ur,rr.width!==void 0&&rr.width!==sr)throw new Error("Image input config width doesn't match HTMLImageElement width");fr.width=sr}else fr.tensorFormat="RGBA",fr.height=ur,fr.width=sr;dr.width=sr,dr.height=ur,cr.drawImage(er,0,0,sr,ur),lr=cr.getImageData(0,0,sr,ur).data}else throw new Error("Can not access image data")}else if(ar){const dr="RGBA";let cr,ur;if(rr!==void 0&&rr.resizedWidth!==void 0&&rr.resizedHeight!==void 0?(cr=rr.resizedHeight,ur=rr.resizedWidth):(cr=er.height,ur=er.width),rr!==void 0){if(fr=rr,rr.bitmapFormat!==void 0&&rr.bitmapFormat!==dr)throw new Error("Image input config format must be RGBA for ImageData");fr.bitmapFormat="RGBA"}else fr.bitmapFormat="RGBA";if(fr.height=cr,fr.width=ur,rr!==void 0){const sr=document.createElement("canvas");sr.width=ur,sr.height=cr;const hr=sr.getContext("2d");if(hr!=null)hr.putImageData(er,0,0),lr=hr.getImageData(0,0,ur,cr).data;else throw new Error("Can not access image data")}else lr=er.data}else if(nr){if(rr===void 0)throw new Error("Please provide image config with format for Imagebitmap");if(rr.bitmapFormat!==void 0)throw new Error("Image input config format must be defined for ImageBitmap");const dr=document.createElement("canvas").getContext("2d");if(dr!=null){const cr=er.height,ur=er.width;if(dr.drawImage(er,0,0,ur,cr),lr=dr.getImageData(0,0,ur,cr).data,rr!==void 0){if(rr.height!==void 0&&rr.height!==cr)throw new Error("Image input config height doesn't match ImageBitmap height");if(fr.height=cr,rr.width!==void 0&&rr.width!==ur)throw new Error("Image input config width doesn't match ImageBitmap width");fr.width=ur}else fr.height=cr,fr.width=ur;return ys.bufferToTensor(lr,fr)}else throw new Error("Can not access image data")}else{if(or)return new Promise((dr,cr)=>{const ur=document.createElement("canvas"),sr=ur.getContext("2d");if(!er||!sr)return cr();const hr=new Image;hr.crossOrigin="Anonymous",hr.src=er,hr.onload=()=>{ur.width=hr.width,ur.height=hr.height,sr.drawImage(hr,0,0,ur.width,ur.height);const gr=sr.getImageData(0,0,ur.width,ur.height);if(rr!==void 0){if(rr.height!==void 0&&rr.height!==ur.height)throw new Error("Image input config height doesn't match ImageBitmap height");if(fr.height=ur.height,rr.width!==void 0&&rr.width!==ur.width)throw new Error("Image input config width doesn't match ImageBitmap width");fr.width=ur.width}else fr.height=ur.height,fr.width=ur.width;dr(ys.bufferToTensor(gr.data,fr))}});throw new Error("Input data provided is not supported - aborted tensor creation")}if(lr!==void 0)return ys.bufferToTensor(lr,fr);throw new Error("Input data provided is not supported - aborted tensor creation")}toImageData(er){var rr,ir;const ar=document.createElement("canvas").getContext("2d");let nr;if(ar!=null){const or=this.dims[3],lr=this.dims[2],fr=this.dims[1],dr=er!==void 0&&er.format!==void 0?er.format:"RGB",cr=er!==void 0&&((rr=er.norm)===null||rr===void 0?void 0:rr.mean)!==void 0?er.norm.mean:255,ur=er!==void 0&&((ir=er.norm)===null||ir===void 0?void 0:ir.bias)!==void 0?er.norm.bias:0,sr=lr*or;if(er!==void 0){if(er.height!==void 0&&er.height!==lr)throw new Error("Image output config height doesn't match tensor height");if(er.width!==void 0&&er.width!==or)throw new Error("Image output config width doesn't match tensor width");if(er.format!==void 0&&fr===4&&er.format!=="RGBA"||fr===3&&er.format!=="RGB"&&er.format!=="BGR")throw new Error("Tensor format doesn't match input tensor dims")}const hr=4;let gr=0,_r=1,pr=2,mr=3,Fr=0,Ar=sr,br=sr*2,yr=-1;dr==="RGBA"?(Fr=0,Ar=sr,br=sr*2,yr=sr*3):dr==="RGB"?(Fr=0,Ar=sr,br=sr*2):dr==="RBG"&&(Fr=0,br=sr,Ar=sr*2),nr=ar.createImageData(or,lr);for(let xr=0;xr<lr*or;gr+=hr,_r+=hr,pr+=hr,mr+=hr,xr++)nr.data[gr]=(this.data[Fr++]-ur)*cr,nr.data[_r]=(this.data[Ar++]-ur)*cr,nr.data[pr]=(this.data[br++]-ur)*cr,nr.data[mr]=yr===-1?255:(this.data[yr++]-ur)*cr}else throw new Error("Can not access image data");return nr}reshape(er){return new ys(this.type,this.data,er)}};const Tensor=Tensor$1;let InferenceSession$1=class Is{constructor(er){this.handler=er}async run(er,rr,ir){const ar={};let nr={};if(typeof er!="object"||er===null||er instanceof Tensor||Array.isArray(er))throw new TypeError("'feeds' must be an object that use input names as keys and OnnxValue as corresponding values.");let or=!0;if(typeof rr=="object"){if(rr===null)throw new TypeError("Unexpected argument[1]: cannot be null.");if(rr instanceof Tensor)throw new TypeError("'fetches' cannot be a Tensor");if(Array.isArray(rr)){if(rr.length===0)throw new TypeError("'fetches' cannot be an empty array.");or=!1;for(const dr of rr){if(typeof dr!="string")throw new TypeError("'fetches' must be a string array or an object.");if(this.outputNames.indexOf(dr)===-1)throw new RangeError(`'fetches' contains invalid output name: ${dr}.`);ar[dr]=null}if(typeof ir=="object"&&ir!==null)nr=ir;else if(typeof ir<"u")throw new TypeError("'options' must be an object.")}else{let dr=!1;const cr=Object.getOwnPropertyNames(rr);for(const ur of this.outputNames)if(cr.indexOf(ur)!==-1){const sr=rr[ur];(sr===null||sr instanceof Tensor)&&(dr=!0,or=!1,ar[ur]=sr)}if(dr){if(typeof ir=="object"&&ir!==null)nr=ir;else if(typeof ir<"u")throw new TypeError("'options' must be an object.")}else nr=rr}}else if(typeof rr<"u")throw new TypeError("Unexpected argument[1]: must be 'fetches' or 'options'.");for(const dr of this.inputNames)if(typeof er[dr]>"u")throw new Error(`input '${dr}' is missing in 'feeds'.`);if(or)for(const dr of this.outputNames)ar[dr]=null;const lr=await this.handler.run(er,ar,nr),fr={};for(const dr in lr)Object.hasOwnProperty.call(lr,dr)&&(fr[dr]=new Tensor(lr[dr].type,lr[dr].data,lr[dr].dims));return fr}static async create(er,rr,ir,ar){let nr,or={};if(typeof er=="string"){if(nr=er,typeof rr=="object"&&rr!==null)or=rr;else if(typeof rr<"u")throw new TypeError("'options' must be an object.")}else if(er instanceof Uint8Array){if(nr=er,typeof rr=="object"&&rr!==null)or=rr;else if(typeof rr<"u")throw new TypeError("'options' must be an object.")}else if(er instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&er instanceof SharedArrayBuffer){const ur=er;let sr=0,hr=er.byteLength;if(typeof rr=="object"&&rr!==null)or=rr;else if(typeof rr=="number"){if(sr=rr,!Number.isSafeInteger(sr))throw new RangeError("'byteOffset' must be an integer.");if(sr<0||sr>=ur.byteLength)throw new RangeError(`'byteOffset' is out of range [0, ${ur.byteLength}).`);if(hr=er.byteLength-sr,typeof ir=="number"){if(hr=ir,!Number.isSafeInteger(hr))throw new RangeError("'byteLength' must be an integer.");if(hr<=0||sr+hr>ur.byteLength)throw new RangeError(`'byteLength' is out of range (0, ${ur.byteLength-sr}].`);if(typeof ar=="object"&&ar!==null)or=ar;else if(typeof ar<"u")throw new TypeError("'options' must be an object.")}else if(typeof ir<"u")throw new TypeError("'byteLength' must be a number.")}else if(typeof rr<"u")throw new TypeError("'options' must be an object.");nr=new Uint8Array(ur,sr,hr)}else throw new TypeError("Unexpected argument[0]: must be 'path' or 'buffer'.");const fr=(or.executionProviders||[]).map(ur=>typeof ur=="string"?ur:ur.name),cr=await(await resolveBackend(fr)).createSessionHandler(nr,or);return new Is(cr)}startProfiling(){this.handler.startProfiling()}endProfiling(){this.handler.endProfiling()}get inputNames(){return this.handler.inputNames}get outputNames(){return this.handler.outputNames}};const InferenceSession=InferenceSession$1,lib=Object.freeze(Object.defineProperty({__proto__:null,InferenceSession,Tensor,env,registerBackend},Symbol.toStringTag,{value:"Module"})),require$$0=getAugmentedNamespace(lib);/*!
|
|
286
|
+
`)}}const config={kazooUrlStrategy:tr=>tr,llmCallUrlStrategy:tr=>tr,pulseUrlStrategy:tr=>tr,pulseBearerTokenStrategy:()=>null,screenshotMainContentSelector:"#root",structuredResponseUrlStrategy:tr=>tr};function getSynthesizeUrl(){return config.llmCallUrlStrategy("/api/api-ai-assistant/v1/tts")}function getTranscribeUrl(){return config.llmCallUrlStrategy("/api/api-ai-assistant/v1/stt")}function getLlmCallUrl(){return config.llmCallUrlStrategy("/api/api-ai-assistant/v1/chat")}function getStructuredResponseUrl(){return config.structuredResponseUrlStrategy("/api/api-ai-assistant/v1/structured-response")}function getKazooUrl(tr){return config.kazooUrlStrategy(tr)}function getPulseUrl(tr){return config.pulseUrlStrategy(tr)}function getPulseBearerToken(){return config.pulseBearerTokenStrategy()}function getScreenshotMainContentSelector(){return config.screenshotMainContentSelector}function setScreenshotMainContentSelector(tr){config.screenshotMainContentSelector=tr}function setKazooUrlStrategy(tr){config.kazooUrlStrategy=tr}function setLlmCallUrlStrategy(tr){config.llmCallUrlStrategy=tr}function setPulseUrlStrategy(tr){config.pulseUrlStrategy=tr}function setPulseBearerTokenStrategy(tr){config.pulseBearerTokenStrategy=tr}function setStructuredResponseUrlStrategy(tr){config.structuredResponseUrlStrategy=tr}const config$1=Object.freeze(Object.defineProperty({__proto__:null,getKazooUrl,getLlmCallUrl,getPulseBearerToken,getPulseUrl,getScreenshotMainContentSelector,getStructuredResponseUrl,getSynthesizeUrl,getTranscribeUrl,setKazooUrlStrategy,setLlmCallUrlStrategy,setPulseBearerTokenStrategy,setPulseUrlStrategy,setScreenshotMainContentSelector,setStructuredResponseUrlStrategy},Symbol.toStringTag,{value:"Module"}));async function getChatCompletion({model:tr,temperature:er,stream:rr,messages:ir,tools:ar,onChunk:nr,onError:or,onComplete:lr,systemInstruction:fr}){var cr;const dr=getPulseBearerToken();try{const ur=await fetch(getLlmCallUrl(),{method:"POST",body:JSON.stringify({model:tr,temperature:er,stream:rr,messages:ir,tools:ar,systemInstruction:fr}),credentials:dr?void 0:"include",headers:{"Content-Type":"application/json",Accept:rr?"text/event-stream":"application/json",...dr?{Authorization:`Bearer ${dr}`}:{}}});if(!ur||!ur.ok)throw new Error("Unable to connect to LLM API. Please try again.");if(rr){const hr=(cr=ur.body)==null?void 0:cr.getReader();if(!hr)throw new Error("Unexpected client error. Response body reader not available.");const gr=new TextDecoder,_r=[],pr=nr||(Fr=>{_r.push(Fr)}),mr=1e4;for(;mr>0;){const{done:Fr,value:Ar}=await hr.read();if(Fr)break;const br=gr.decode(Ar),yr=NdJson.parse(br);for(const xr of yr)pr(xr)}return lr==null||lr(),_r}return(await ur.json()).parts}catch(ur){const sr=ur instanceof Error?ur:new Error("Unexpected error calling LLM API");throw or==null||or(sr),sr}}function getMessagesAsLlmChatItems(tr){var rr,ir,ar,nr;const er=[];for(const or of tr)or.role==="TOOL"?er.push({id:or.id,role:"user",parts:[{type:"toolCall",toolName:(rr=or.metadata)==null?void 0:rr.toolName,args:{args:(ir=or.metadata)==null?void 0:ir.toolArgs}}]},{id:or.id,role:"user",parts:[{type:"toolResult",result:or.messageText,toolName:(ar=or.metadata)==null?void 0:ar.toolName,args:{args:(nr=or.metadata)==null?void 0:nr.toolArgs}}]}):or.role==="USER"?er.push({id:or.id,role:"user",parts:[{type:"text",text:or.messageText}]}):or.role==="MODEL"&&er.push({id:or.id,role:"model",parts:[{type:"text",text:or.messageText}]});return er}async function handleFollowUpSuggestions({propRefs:tr,conversationId:er}){var or;if(!tr.current.getFollowUpSuggestions)return;const rr=tr.current.getConversationById(er);if(!rr||!((or=rr.messages)!=null&&or.length))return;const ir=Date.now();suggestionsLoadingTimeByConversationIdMap.set(er,ir),tr.current.setFollowUpSuggestionsByConversationId(lr=>({...lr,[er]:[{type:"loading"}]}));const ar=await tr.current.getFollowUpSuggestions({conversation:rr}).catch(lr=>(console.log("Error getting follow up suggestions",lr),[])),nr=suggestionsLoadingTimeByConversationIdMap.get(er);nr&&ir!==nr||tr.current.setFollowUpSuggestionsByConversationId(lr=>({...lr,[er]:ar.map(fr=>({id:fr.fullPrompt||fr.title,title:fr.title,onClick:()=>{!fr.fullPrompt||fr.fullPrompt===fr.title?tr.current.handleSendUserMessage({conversationId:er,messageText:fr.title}):tr.current.setPrompt(er,coalesce(fr.fullPrompt,fr.title))}}))}))}const suggestionsLoadingTimeByConversationIdMap=new Map;async function handlePendingToolCalls({toolCalls:tr,propRefs:er,debugInfo:rr,conversationId:ir,appendMessageToConversation:ar}){await executeAsyncPromiseCallback(async nr=>{var fr,dr,cr;if(tr.length===0||!er.current.isMounted)return nr();const or=[];for(const ur of tr){const sr=v4(),hr=(fr=er.current.tools)==null?void 0:fr.find(pr=>pr.name===ur.toolName);if(!hr){console.log("debug4 tool not found"),(cr=(dr=er.current).onError)==null||cr.call(dr,new Error(`Tool ${ur.toolName} not found`)),rr.current.push({time:new Date,message:`Tool ${ur.toolName} not found`,data:{toolCall:ur,tools:er.current.tools},level:"error"});continue}let gr=ur.args;if(gr!=null&&gr.args)for(;gr!=null&&gr.args;)console.log(`debug4 unwrapping args ${sr} ${ur.toolName}`,gr),gr=gr.args;let _r;try{er.current.setMessages(Ar=>{console.log(`debug4 setMessages for toolCall ${sr} ${ur.toolName}`);const br={...Ar};return br[ir]={...br[ir]},br[ir].messages=[...br[ir].messages,{id:sr,role:"TOOL",conversationId:ir,messageText:ur.toolName,metadata:{toolName:ur.toolName,toolArgs:ur.args,loading:!0}}],br}),rr.current.push({time:new Date,level:"info",message:"Fulfilling tool call",data:{toolCall:ur}});const pr=Date.now();console.log(`debug4 calling ${sr} ${ur.toolName}`);const mr=await new Promise(Ar=>setTimeout(()=>{Ar(hr.fulfill(gr))},1));console.log(`debug4 done ${sr} ${ur.toolName}`,mr);const Fr=Date.now();typeof mr=="string"?(_r=mr,or.push({type:"toolResult",toolName:ur.toolName,args:gr,result:mr}),rr.current.push({time:new Date,level:"info",message:"Tool call fulfilled",data:{toolCall:ur,durationMs:Fr-pr,result:mr}})):(or.push({type:"toolResult",toolName:ur.toolName,result:`Tool ${ur.toolName} returned the following file`,args:gr}),or.push({type:"file",toolName:ur.toolName,fileUri:mr==null?void 0:mr.fileUri,mimeType:mr==null?void 0:mr.mimeType,args:gr}),rr.current.push({time:new Date,level:"info",message:"Tool call fulfilled with file",data:{toolCall:ur,durationMs:Fr-pr,result:mr}}))}catch(pr){console.log(`debug4 error fulfilling tool ${sr} ${ur.toolName}`,{error:pr}),rr.current.push({time:new Date,message:"Error calling tool",level:"error",data:{toolCall:ur,error:{message:pr.message,stack:pr.stack}}}),or.push({type:"toolResult",toolName:ur.toolName,result:{error:{message:pr.message,stack:pr.stack}},args:gr})}finally{const pr=coalesce(er.current.messages,{});console.log(`DEBUG4 final updating ${sr} ${ur.toolName}`);const mr={...pr};mr[ir].messages=mr[ir].messages.map(Fr=>Fr.id===sr?{...Fr,messageText:coalesce(_r,Fr.messageText),metadata:{...Fr.metadata,loading:!1,logme:console.log(`DEBUG4 updating ${sr} ${ur.toolName}`)}}:Fr),er.current.setMessages(mr)}}if(!er.current.isMounted)return nr();const lr=or.map(ur=>({id:v4(),role:"TOOL",conversationId:ir,messageText:ur.type==="toolResult"?ur.result:"file",metadata:{toolName:ur.toolName,toolArgs:ur.args}}));await Promise.all(lr.map(async ur=>{await ar({variables:{input:{conversationId:ir,message:{id:ur.id,role:"TOOL",messageText:ur.messageText,metadata:ur.metadata}}}})})),await er.current.sendMessages(ir),nr()})}function getSendMessagesHandler({setConnectionError:tr,propRefs:er,debugInfo:rr,appendMessageToConversation:ir}){return async function ar(nr){var lr,fr,dr,cr,ur;if(!er.current.isMounted)return!1;tr(null),er.current.setMessages(sr=>({...sr,[nr]:{...sr[nr],isLoading:!0}}));try{er.current.onBeforeLlmCall&&er.current.onBeforeLlmCall()}catch(sr){rr.current.push({time:new Date,message:"Error calling onBeforeLlmCall",data:sr,level:"error"})}let or;try{er.current.systemInstruction&&(rr.current.push({time:new Date,message:"Getting system instruction",level:"info"}),or=await er.current.systemInstruction(),rr.current.push({time:new Date,message:"System instruction",data:or,level:"info"}))}catch(sr){rr.current.push({time:new Date,message:"Error getting system instruction",data:sr,level:"error"}),(fr=(lr=er.current).onError)==null||fr.call(lr,sr)}er.current.setFollowUpSuggestionsByConversationId(sr=>({...sr,[nr]:[]}));try{const sr={type:"text",text:""},hr=[],gr=v4();return await getChatCompletion({model:er.current.model,temperature:er.current.temperature,stream:!0,messages:getMessagesAsLlmChatItems(coalesce((dr=er.current.getConversationById(nr))==null?void 0:dr.messages,[])),tools:er.current.tools,systemInstruction:or,onChunk:_r=>{var pr,mr;console.log("debug4 onChunk",{parsedChunk:JSON.stringify(_r)}),_r.type==="text"?sr.text+=_r.text:_r.type==="toolCall"&&hr.push(_r),er.current.setMessages(Fr=>{const Ar=Fr[nr];if(!Ar)return console.error(`Invariant violation: currentConversation is undefined for conversationId ${nr}`,Fr),Fr;const br=coalesce(Ar.messages,[]),yr=br[br.length-1];return sr.text&&((yr==null?void 0:yr.role)==="MODEL"?yr.messageText=sr.text:br.push({id:gr,role:"MODEL",conversationId:nr,messageText:sr.text})),Ar.messages=br,{...Fr,[nr]:cloneDeep(Ar)}}),(mr=(pr=er.current).onChunkAdded)==null||mr.call(pr)}}),sr.text&&await ir({variables:{input:{conversationId:nr,message:{id:gr,role:"MODEL",messageText:sr.text}}}}),safelyInvokeUserCallback({condition:!!er.current.onAfterLlmCall,conversationId:nr,callbackToInvoke:er.current.onAfterLlmCall,callbackName:"onAfterLlmCall",debugInfo:rr,onError:er.current.onError,propRefs:er}),await handlePendingToolCalls({conversationId:nr,toolCalls:hr,propRefs:er,debugInfo:rr,appendMessageToConversation:ir}),await handleFollowUpSuggestions({propRefs:er,conversationId:nr}),!0}catch(sr){if(!er.current.isMounted)return!1;const hr=composeSimpleFunctions(getClosureFor(tr,null),getClosureFor(ar,nr));return rr.current.push({time:new Date,message:"Error calling LLM API",data:sr,level:"error"}),tr({message:jsxRuntimeExports.jsx(ConnectionError,{retry:hr}),retry:hr}),(ur=(cr=er.current).onError)==null||ur.call(cr,sr),!1}finally{er.current.setMessages(sr=>({...sr,[nr]:{...sr[nr],isLoading:!1}}))}}}function safelyInvokeUserCallback({condition:tr,conversationId:er,callbackToInvoke:rr,callbackName:ir,debugInfo:ar,onError:nr,propRefs:or}){if(!(!tr||!rr)){ar.current.push({time:new Date,message:`Calling ${ir}`,level:"info"});try{const lr=or.current.messages;rr(lr[er].messages)}catch(lr){ar.current.push({time:new Date,message:`Error calling ${ir}`,data:lr,level:"error"}),nr&&nr(lr)}finally{ar.current.push({time:new Date,message:`Finished calling ${ir}`,level:"info"})}}}var Voice=(tr=>(tr.AOEDE="Aoede",tr.PUCK="Puck",tr.CHARON="Charon",tr.KORE="Kore",tr.FENRIR="Fenrir",tr.LEDA="Leda",tr.ORUS="Orus",tr.ZEPHYR="Zephyr",tr))(Voice||{});async function synthesizeText(tr,er){const rr=getPulseBearerToken(),ir=await fetch(getSynthesizeUrl(),{method:"POST",body:JSON.stringify({text:tr,voice:er}),credentials:rr?void 0:"include",headers:{"Content-Type":"application/json",Accept:"application/json",...rr?{Authorization:`Bearer ${rr}`}:{}}});if(!ir||!ir.ok)throw new Error("Unable to connect to LLM API. Please try again.");const ar=await ir.json();if(!ar.synthesis)throw new Error("No synthesis data received.");return ar.synthesis}async function transcribeAudio(tr){const er=getPulseBearerToken(),rr=await fetch(getTranscribeUrl(),{method:"POST",body:JSON.stringify({audio:tr}),credentials:er?void 0:"include",headers:{"Content-Type":"application/json",Accept:"application/json",...er?{Authorization:`Bearer ${er}`}:{}}});if(!rr||!rr.ok)throw new Error("Unable to connect to LLM API. Please try again.");const ir=await rr.json();if(!ir.transcription)throw new Error("No transcription data received.");return ir.transcription}function useAiAssistantSession({model:tr,initialMessages:er,temperature:rr,onAfterLlmCall:ir,onBeforeLlmCall:ar,onError:nr,tools:or,onChunkAdded:lr,systemInstruction:fr,onSelectedConversationChange:dr,onSelectedConversationLoaded:cr,initialConversationId:ur,getFollowUpSuggestions:sr,getChatTitle:hr,initialPrompt:gr}){const[_r,pr]=React.useState(!1),[mr,Fr]=React.useState(null),[Ar,br]=React.useState(getConversationInitialState({initialConversationId:ur})),[yr,xr]=React.useState(getMessagesInitialState({initialMessages:er,selectedConversationId:Ar})),wr=React.useRef({onAfterLlmCall:ir,onBeforeLlmCall:ar,onError:nr,tools:or,model:tr,temperature:rr,isMounted:!0,systemInstruction:fr,onChunkAdded:lr,getConversationById:doNothing$1,setFollowUpSuggestionsByConversationId:doNothing$1,getFollowUpSuggestions:sr,handleSendUserMessage:doNothing$1,setPrompt:doNothing$1,selectedConversationId:Ar,onSelectedConversationLoaded:cr,onSelectedConversationChange:dr,messages:yr,sendMessages:doNothing$1,setMessages:doNothing$1}),vr=React.useCallback(createSetMessagesHandler({originalSetMessages:xr,propRefs:wr}),[xr]),[Cr,Er]=React.useState(!1),[Dr,Ir]=React.useState(""),Rr=React.useRef(void 0);Rr.current=cr;const[Sr,Lr]=React.useState({}),[Br,Pr]=React.useState(getPromptInitialState({initialPrompt:gr,selectedConversationId:Ar})),Mr=React.useRef([]),[Ur]=useAppendMessageToConversationMutation(),{refetch:kr}=useGetAllConversationsQuery({fetchPolicy:"cache-and-network",onCompleted:getAllConversationsQueryCompletedHandler({propRefs:wr})}),[jr]=useUpdateConversationTitleMutation();wr.current.getConversationById=pn=>wr.current.messages[pn],wr.current.setFollowUpSuggestionsByConversationId=Lr,wr.current.setPrompt=getSetPromptHandler({setPromptByConversationId:Pr,selectedConversationId:Ar}),wr.current.onAfterLlmCall=ir,wr.current.onBeforeLlmCall=ar,wr.current.onError=nr,wr.current.tools=or,wr.current.model=tr,wr.current.temperature=rr,wr.current.systemInstruction=fr,wr.current.onChunkAdded=lr,wr.current.isMounted=!0,wr.current.onSelectedConversationChange=dr,wr.current.selectedConversationId=Ar,wr.current.getFollowUpSuggestions=sr,wr.current.setMessages=vr;const{loading:Hr,data:Tr}=useGetAConversationQuery({skip:Ar===void 0,variables:{input:{conversationId:coalesce(Ar,"")}},fetchPolicy:"cache-and-network",onCompleted:getAConversationQueryCompletedHandler({selectedConversationId:Ar,propRefs:wr}),onError:doNothing$1});React.useEffect(()=>()=>{wr.current.isMounted=!1},[]),React.useEffect(getFollowUpSuggestionsHandler({propRefs:wr,selectedConversationId:Ar,messages:yr}),[Ar,Tr]);const Wr=React.useCallback(getClosureFor(br,void 0),[]),tn=React.useCallback(getUpdateTitleHandler({propRefs:wr,updateConversationTitle:jr}),[jr]),Gr=React.useCallback(getTranscriptionHandler(),[]),en=React.useCallback(getSpeechHandler(),[]),rn=React.useCallback(getSendMessagesHandler({propRefs:wr,debugInfo:Mr,setConnectionError:Fr,appendMessageToConversation:Ur}),[]);wr.current.sendMessages=rn;const ln=React.useCallback(getSendUserMessageHandler({setSelectedConversationId:br,debugInfo:Mr,appendMessageToConversation:Ur,propRefs:wr}),[br,Mr,Ur,wr]),qr=getHandleSendUserMessage({selectedConversationId:Ar,setPromptByConversationId:Pr,getChatTitle:hr,sendUserMessage:ln,updateTitle:tn});wr.current.handleSendUserMessage=qr;const cn=coalesce(Sr[coalesce(Ar,"")],[]),Kr=coalesce(Br[coalesce(Ar,"")],"");return{messages:yr,setMessages:vr,isVoiceEnabled:_r,setIsVoiceEnabled:pr,getSpeech:en,getTranscription:Gr,debugInfo:Mr.current,sendUserMessage:ln,connectionError:mr,followUpSuggestions:cn,promptByConversationId:Br,prompt:Kr,setPromptByConversationId:Pr,setPrompt:wr.current.setPrompt,selectedConversationId:Ar,isSearching:Cr,searchQuery:Dr,setIsSearching:Er,setSearchQuery:Ir,isLoadingConversation:Hr,selectedConversation:yr[coalesce(Ar,"")],createNewConversation:Wr,setSelectedConversationId:br,updateTitle:tn,refetchConversations:kr,handleSendUserMessage:qr}}function getConversationInitialState({initialConversationId:tr}){if(tr)return tr}function getMessagesInitialState({initialMessages:tr,selectedConversationId:er=""}){return er?{[er]:{id:er,title:"",updatedAt:new Date,isLoading:!1,messages:coalesce(tr,[])}}:{}}function getPromptInitialState({initialPrompt:tr,selectedConversationId:er}){return er?{[er]:coalesce(tr,"")}:{"":coalesce(tr,"")}}function getAllConversationsQueryCompletedHandler({propRefs:tr}){return er=>{if(er!=null&&er.getConversations){const rr=Date.now(),ir=cloneDeep(er.getConversations).map(ar=>({id:ar.id,title:ar.title,updatedAt:new Date(coalesce(ar.updatedAt,rr))}));tr.current.setMessages(ar=>{const nr=cloneDeep(ar);for(const or of ir){const lr=or.id,fr=ar[lr],dr=coalesce(ir.find(cr=>cr.id===lr),{});nr[lr]={...fr,...dr}}return nr})}}}function getAConversationQueryCompletedHandler({selectedConversationId:tr,propRefs:er}){return rr=>{if(!(rr!=null&&rr.aiAssistantConversation))return;const ir=cloneDeep(rr.aiAssistantConversation.messages);er.current.setMessages(ar=>{if(!tr)return ar;const nr=ar[tr];if(!nr)return console.error(`Invariant violation: conversation is undefined for conversationId ${tr}`,ar),ar;nr.messages=coalesce(nr.messages,[]);let or;for(const lr of ir){const fr=nr.messages.findIndex(cr=>cr.id===lr.id),dr=nr.messages[fr];typeof dr<"u"?dr.messageText=lr.messageText:nr.messages.splice(nr.messages.findIndex(cr=>cr.id===or)+1,0,lr),or=lr.id}return{...ar,[tr]:cloneDeep(nr)}}),setTimeout(()=>{var ar,nr;(nr=(ar=er.current).onSelectedConversationLoaded)==null||nr.call(ar,tr,er.current.selectedConversationId,er.current.messages)},10)}}function getHandleSendUserMessage({selectedConversationId:tr,sendUserMessage:er,setPromptByConversationId:rr,getChatTitle:ir,updateTitle:ar}){return async({conversationId:nr=tr,messageText:or})=>{if(!or)return;const lr=nr===void 0;try{const{id:fr}=await er({message:or});if(rr(dr=>({...dr,[fr]:""})),lr){const dr=await ir(or);dr&&dr!=="New Chat"&&await ar(fr,dr)}}catch(fr){console.error(fr)}}}function getSendUserMessageHandler({propRefs:tr,setSelectedConversationId:er,debugInfo:rr,appendMessageToConversation:ir}){return async({message:ar,skipAppendingUserMessageToConversation:nr=!1})=>{const or=!tr.current.selectedConversationId,lr=tr.current.selectedConversationId||v4();tr.current.selectedConversationId=lr;const fr=tr.current.getConversationById(lr),dr={id:v4(),role:"USER",messageText:ar,conversationId:lr},cr=cloneDeep(fr||{id:lr,title:"New Chat",updatedAt:new Date,isLoading:!0,messages:[]}),ur={...cr,messages:[...coalesce(fr==null?void 0:fr.messages,[]),dr],isLoading:!0};tr.current.setMessages(_r=>({..._r,[lr]:ur})),or&&(er(lr),tr.current.selectedConversationId=lr);const sr=[];!nr&&sr.push(ir({variables:{input:{conversationId:lr,message:{id:dr.id,role:"USER",messageText:ar}}}}));const hr=tr.current.sendMessages(lr);return sr.push(hr),await Promise.all(sr),!!await hr||rr.current.push({time:new Date,message:"Error sending message",data:{oldStateInCaseOfFailure:cr},level:"error"}),{id:lr}}}function getUpdateTitleHandler({propRefs:tr,updateConversationTitle:er}){return async(rr,ir)=>{tr.current.setMessages(ar=>({...ar,[rr]:{...ar[rr],title:ir,isUpdatingTitle:!0}})),await er({variables:{input:{conversationId:rr,title:ir}}}),tr.current.setMessages(ar=>({...ar,[rr]:{...ar[rr],isUpdatingTitle:!1}}))}}function getSetPromptHandler({setPromptByConversationId:tr,selectedConversationId:er}){return(rr=coalesce(er,""),ir)=>{tr(typeof ir=="function"?ar=>({...ar,[rr]:ir(ar[rr])}):ar=>({...ar,[rr]:ir}))}}function getFollowUpSuggestionsHandler({propRefs:tr,selectedConversationId:er,messages:rr}){return()=>{var ar,nr;if((nr=(ar=tr.current)==null?void 0:ar.onSelectedConversationChange)==null||nr.call(ar,er,rr),!er)return;const ir=setTimeout(()=>{handleFollowUpSuggestions({propRefs:tr,conversationId:er})},500);return()=>clearTimeout(ir)}}function getTranscriptionHandler(){return async tr=>await transcribeAudio(tr)}function getSpeechHandler(){return async tr=>await synthesizeText(tr)}const styles$5={"ai-assistant-textarea":"AiAssistantComponent-module_ai-assistant-textarea_dJrtB","ai-assistant-popup-container":"AiAssistantComponent-module_ai-assistant-popup-container_OH04M","ai-assistant-chat-history-container":"AiAssistantComponent-module_ai-assistant-chat-history-container_mIJ3y","ai-assistant-chat-history-header":"AiAssistantComponent-module_ai-assistant-chat-history-header_aR6OI","ai-assistant-chat-history-button":"AiAssistantComponent-module_ai-assistant-chat-history-button_Q34D6","conversation-selected":"AiAssistantComponent-module_conversation-selected_-ijIe","ai-assistant-chat-history-button-text":"AiAssistantComponent-module_ai-assistant-chat-history-button-text_cAi5Q","textarea-container":"AiAssistantComponent-module_textarea-container_4eE9f","placeholder-content":"AiAssistantComponent-module_placeholder-content_8vmjp","placeholder-text":"AiAssistantComponent-module_placeholder-text_8edUF","loading-container":"AiAssistantComponent-module_loading-container_7BNjW","messages-scroll-container":"AiAssistantComponent-module_messages-scroll-container_8O6Kb","ai-assistant-send-btn":"AiAssistantComponent-module_ai-assistant-send-btn_h2wdX","ai-assistant-search-input-container":"AiAssistantComponent-module_ai-assistant-search-input-container_lUZKm"};var dist$1={},dist={},ortWeb_min={exports:{}};const backends={},backendsSortedByPriority=[],registerBackend=(tr,er,rr)=>{if(er&&typeof er.init=="function"&&typeof er.createSessionHandler=="function"){const ir=backends[tr];if(ir===void 0)backends[tr]={backend:er,priority:rr};else{if(ir.priority>rr)return;if(ir.priority===rr&&ir.backend!==er)throw new Error(`cannot register backend "${tr}" using priority ${rr}`)}if(rr>=0){const ar=backendsSortedByPriority.indexOf(tr);ar!==-1&&backendsSortedByPriority.splice(ar,1);for(let nr=0;nr<backendsSortedByPriority.length;nr++)if(backends[backendsSortedByPriority[nr]].priority<=rr){backendsSortedByPriority.splice(nr,0,tr);return}backendsSortedByPriority.push(tr)}return}throw new TypeError("not a valid backend")},resolveBackend=async tr=>{const er=tr.length===0?backendsSortedByPriority:tr,rr=[];for(const ir of er){const ar=backends[ir];if(ar){if(ar.initialized)return ar.backend;if(ar.aborted)continue;const nr=!!ar.initPromise;try{return nr||(ar.initPromise=ar.backend.init()),await ar.initPromise,ar.initialized=!0,ar.backend}catch(or){nr||rr.push({name:ir,err:or}),ar.aborted=!0}finally{delete ar.initPromise}}}throw new Error(`no available backend found. ERR: ${rr.map(ir=>`[${ir.name}] ${ir.err}`).join(", ")}`)};class EnvImpl{constructor(){this.wasm={},this.webgl={},this.logLevelInternal="warning"}set logLevel(er){if(er!==void 0){if(typeof er!="string"||["verbose","info","warning","error","fatal"].indexOf(er)===-1)throw new Error(`Unsupported logging level: ${er}`);this.logLevelInternal=er}}get logLevel(){return this.logLevelInternal}}const env=new EnvImpl,isBigInt64ArrayAvailable=typeof BigInt64Array<"u"&&typeof BigInt64Array.from=="function",isBigUint64ArrayAvailable=typeof BigUint64Array<"u"&&typeof BigUint64Array.from=="function",NUMERIC_TENSOR_TYPE_TO_TYPEDARRAY_MAP=new Map([["float32",Float32Array],["uint8",Uint8Array],["int8",Int8Array],["uint16",Uint16Array],["int16",Int16Array],["int32",Int32Array],["bool",Uint8Array],["float64",Float64Array],["uint32",Uint32Array]]),NUMERIC_TENSOR_TYPEDARRAY_TO_TYPE_MAP=new Map([[Float32Array,"float32"],[Uint8Array,"uint8"],[Int8Array,"int8"],[Uint16Array,"uint16"],[Int16Array,"int16"],[Int32Array,"int32"],[Float64Array,"float64"],[Uint32Array,"uint32"]]);isBigInt64ArrayAvailable&&(NUMERIC_TENSOR_TYPE_TO_TYPEDARRAY_MAP.set("int64",BigInt64Array),NUMERIC_TENSOR_TYPEDARRAY_TO_TYPE_MAP.set(BigInt64Array,"int64")),isBigUint64ArrayAvailable&&(NUMERIC_TENSOR_TYPE_TO_TYPEDARRAY_MAP.set("uint64",BigUint64Array),NUMERIC_TENSOR_TYPEDARRAY_TO_TYPE_MAP.set(BigUint64Array,"uint64"));const calculateSize=tr=>{let er=1;for(let rr=0;rr<tr.length;rr++){const ir=tr[rr];if(typeof ir!="number"||!Number.isSafeInteger(ir))throw new TypeError(`dims[${rr}] must be an integer, got: ${ir}`);if(ir<0)throw new RangeError(`dims[${rr}] must be a non-negative integer, got: ${ir}`);er*=ir}return er};let Tensor$1=class ys{constructor(er,rr,ir){let ar,nr,or;if(typeof er=="string")if(ar=er,or=ir,er==="string"){if(!Array.isArray(rr))throw new TypeError("A string tensor's data must be a string array.");nr=rr}else{const fr=NUMERIC_TENSOR_TYPE_TO_TYPEDARRAY_MAP.get(er);if(fr===void 0)throw new TypeError(`Unsupported tensor type: ${er}.`);if(Array.isArray(rr))nr=fr.from(rr);else if(rr instanceof fr)nr=rr;else throw new TypeError(`A ${ar} tensor's data must be type of ${fr}`)}else if(or=rr,Array.isArray(er)){if(er.length===0)throw new TypeError("Tensor type cannot be inferred from an empty array.");const fr=typeof er[0];if(fr==="string")ar="string",nr=er;else if(fr==="boolean")ar="bool",nr=Uint8Array.from(er);else throw new TypeError(`Invalid element type of data array: ${fr}.`)}else{const fr=NUMERIC_TENSOR_TYPEDARRAY_TO_TYPE_MAP.get(er.constructor);if(fr===void 0)throw new TypeError(`Unsupported type for tensor data: ${er.constructor}.`);ar=fr,nr=er}if(or===void 0)or=[nr.length];else if(!Array.isArray(or))throw new TypeError("A tensor's dims must be a number array");const lr=calculateSize(or);if(lr!==nr.length)throw new Error(`Tensor's size(${lr}) does not match data length(${nr.length}).`);this.dims=or,this.type=ar,this.data=nr,this.size=lr}static bufferToTensor(er,rr){if(er===void 0)throw new Error("Image buffer must be defined");if(rr.height===void 0||rr.width===void 0)throw new Error("Image height and width must be defined");const{height:ir,width:ar}=rr,nr=rr.norm;let or,lr;nr===void 0||nr.mean===void 0?or=255:or=nr.mean,nr===void 0||nr.bias===void 0?lr=0:lr=nr.bias;const fr=rr.bitmapFormat!==void 0?rr.bitmapFormat:"RGBA",dr=rr.tensorFormat!==void 0&&rr.tensorFormat!==void 0?rr.tensorFormat:"RGB",cr=ir*ar,ur=dr==="RGBA"?new Float32Array(cr*4):new Float32Array(cr*3);let sr=4,hr=0,gr=1,_r=2,pr=3,mr=0,Fr=cr,Ar=cr*2,br=-1;fr==="RGB"&&(sr=3,hr=0,gr=1,_r=2,pr=-1),dr==="RGBA"?br=cr*3:dr==="RBG"?(mr=0,Ar=cr,Fr=cr*2):dr==="BGR"&&(Ar=0,Fr=cr,mr=cr*2);for(let xr=0;xr<cr;xr++,hr+=sr,_r+=sr,gr+=sr,pr+=sr)ur[mr++]=(er[hr]+lr)/or,ur[Fr++]=(er[gr]+lr)/or,ur[Ar++]=(er[_r]+lr)/or,br!==-1&&pr!==-1&&(ur[br++]=(er[pr]+lr)/or);return dr==="RGBA"?new ys("float32",ur,[1,4,ir,ar]):new ys("float32",ur,[1,3,ir,ar])}static async fromImage(er,rr){const ir=typeof HTMLImageElement<"u"&&er instanceof HTMLImageElement,ar=typeof ImageData<"u"&&er instanceof ImageData,nr=typeof ImageBitmap<"u"&&er instanceof ImageBitmap,or=typeof String<"u"&&(er instanceof String||typeof er=="string");let lr,fr={};if(ir){const dr=document.createElement("canvas"),cr=dr.getContext("2d");if(cr!=null){let ur=er.naturalHeight,sr=er.naturalWidth;if(rr!==void 0&&rr.resizedHeight!==void 0&&rr.resizedWidth!==void 0&&(ur=rr.resizedHeight,sr=rr.resizedWidth),rr!==void 0){if(fr=rr,rr.tensorFormat!==void 0)throw new Error("Image input config format must be RGBA for HTMLImageElement");if(fr.tensorFormat="RGBA",rr.height!==void 0&&rr.height!==ur)throw new Error("Image input config height doesn't match HTMLImageElement height");if(fr.height=ur,rr.width!==void 0&&rr.width!==sr)throw new Error("Image input config width doesn't match HTMLImageElement width");fr.width=sr}else fr.tensorFormat="RGBA",fr.height=ur,fr.width=sr;dr.width=sr,dr.height=ur,cr.drawImage(er,0,0,sr,ur),lr=cr.getImageData(0,0,sr,ur).data}else throw new Error("Can not access image data")}else if(ar){const dr="RGBA";let cr,ur;if(rr!==void 0&&rr.resizedWidth!==void 0&&rr.resizedHeight!==void 0?(cr=rr.resizedHeight,ur=rr.resizedWidth):(cr=er.height,ur=er.width),rr!==void 0){if(fr=rr,rr.bitmapFormat!==void 0&&rr.bitmapFormat!==dr)throw new Error("Image input config format must be RGBA for ImageData");fr.bitmapFormat="RGBA"}else fr.bitmapFormat="RGBA";if(fr.height=cr,fr.width=ur,rr!==void 0){const sr=document.createElement("canvas");sr.width=ur,sr.height=cr;const hr=sr.getContext("2d");if(hr!=null)hr.putImageData(er,0,0),lr=hr.getImageData(0,0,ur,cr).data;else throw new Error("Can not access image data")}else lr=er.data}else if(nr){if(rr===void 0)throw new Error("Please provide image config with format for Imagebitmap");if(rr.bitmapFormat!==void 0)throw new Error("Image input config format must be defined for ImageBitmap");const dr=document.createElement("canvas").getContext("2d");if(dr!=null){const cr=er.height,ur=er.width;if(dr.drawImage(er,0,0,ur,cr),lr=dr.getImageData(0,0,ur,cr).data,rr!==void 0){if(rr.height!==void 0&&rr.height!==cr)throw new Error("Image input config height doesn't match ImageBitmap height");if(fr.height=cr,rr.width!==void 0&&rr.width!==ur)throw new Error("Image input config width doesn't match ImageBitmap width");fr.width=ur}else fr.height=cr,fr.width=ur;return ys.bufferToTensor(lr,fr)}else throw new Error("Can not access image data")}else{if(or)return new Promise((dr,cr)=>{const ur=document.createElement("canvas"),sr=ur.getContext("2d");if(!er||!sr)return cr();const hr=new Image;hr.crossOrigin="Anonymous",hr.src=er,hr.onload=()=>{ur.width=hr.width,ur.height=hr.height,sr.drawImage(hr,0,0,ur.width,ur.height);const gr=sr.getImageData(0,0,ur.width,ur.height);if(rr!==void 0){if(rr.height!==void 0&&rr.height!==ur.height)throw new Error("Image input config height doesn't match ImageBitmap height");if(fr.height=ur.height,rr.width!==void 0&&rr.width!==ur.width)throw new Error("Image input config width doesn't match ImageBitmap width");fr.width=ur.width}else fr.height=ur.height,fr.width=ur.width;dr(ys.bufferToTensor(gr.data,fr))}});throw new Error("Input data provided is not supported - aborted tensor creation")}if(lr!==void 0)return ys.bufferToTensor(lr,fr);throw new Error("Input data provided is not supported - aborted tensor creation")}toImageData(er){var rr,ir;const ar=document.createElement("canvas").getContext("2d");let nr;if(ar!=null){const or=this.dims[3],lr=this.dims[2],fr=this.dims[1],dr=er!==void 0&&er.format!==void 0?er.format:"RGB",cr=er!==void 0&&((rr=er.norm)===null||rr===void 0?void 0:rr.mean)!==void 0?er.norm.mean:255,ur=er!==void 0&&((ir=er.norm)===null||ir===void 0?void 0:ir.bias)!==void 0?er.norm.bias:0,sr=lr*or;if(er!==void 0){if(er.height!==void 0&&er.height!==lr)throw new Error("Image output config height doesn't match tensor height");if(er.width!==void 0&&er.width!==or)throw new Error("Image output config width doesn't match tensor width");if(er.format!==void 0&&fr===4&&er.format!=="RGBA"||fr===3&&er.format!=="RGB"&&er.format!=="BGR")throw new Error("Tensor format doesn't match input tensor dims")}const hr=4;let gr=0,_r=1,pr=2,mr=3,Fr=0,Ar=sr,br=sr*2,yr=-1;dr==="RGBA"?(Fr=0,Ar=sr,br=sr*2,yr=sr*3):dr==="RGB"?(Fr=0,Ar=sr,br=sr*2):dr==="RBG"&&(Fr=0,br=sr,Ar=sr*2),nr=ar.createImageData(or,lr);for(let xr=0;xr<lr*or;gr+=hr,_r+=hr,pr+=hr,mr+=hr,xr++)nr.data[gr]=(this.data[Fr++]-ur)*cr,nr.data[_r]=(this.data[Ar++]-ur)*cr,nr.data[pr]=(this.data[br++]-ur)*cr,nr.data[mr]=yr===-1?255:(this.data[yr++]-ur)*cr}else throw new Error("Can not access image data");return nr}reshape(er){return new ys(this.type,this.data,er)}};const Tensor=Tensor$1;let InferenceSession$1=class Is{constructor(er){this.handler=er}async run(er,rr,ir){const ar={};let nr={};if(typeof er!="object"||er===null||er instanceof Tensor||Array.isArray(er))throw new TypeError("'feeds' must be an object that use input names as keys and OnnxValue as corresponding values.");let or=!0;if(typeof rr=="object"){if(rr===null)throw new TypeError("Unexpected argument[1]: cannot be null.");if(rr instanceof Tensor)throw new TypeError("'fetches' cannot be a Tensor");if(Array.isArray(rr)){if(rr.length===0)throw new TypeError("'fetches' cannot be an empty array.");or=!1;for(const dr of rr){if(typeof dr!="string")throw new TypeError("'fetches' must be a string array or an object.");if(this.outputNames.indexOf(dr)===-1)throw new RangeError(`'fetches' contains invalid output name: ${dr}.`);ar[dr]=null}if(typeof ir=="object"&&ir!==null)nr=ir;else if(typeof ir<"u")throw new TypeError("'options' must be an object.")}else{let dr=!1;const cr=Object.getOwnPropertyNames(rr);for(const ur of this.outputNames)if(cr.indexOf(ur)!==-1){const sr=rr[ur];(sr===null||sr instanceof Tensor)&&(dr=!0,or=!1,ar[ur]=sr)}if(dr){if(typeof ir=="object"&&ir!==null)nr=ir;else if(typeof ir<"u")throw new TypeError("'options' must be an object.")}else nr=rr}}else if(typeof rr<"u")throw new TypeError("Unexpected argument[1]: must be 'fetches' or 'options'.");for(const dr of this.inputNames)if(typeof er[dr]>"u")throw new Error(`input '${dr}' is missing in 'feeds'.`);if(or)for(const dr of this.outputNames)ar[dr]=null;const lr=await this.handler.run(er,ar,nr),fr={};for(const dr in lr)Object.hasOwnProperty.call(lr,dr)&&(fr[dr]=new Tensor(lr[dr].type,lr[dr].data,lr[dr].dims));return fr}static async create(er,rr,ir,ar){let nr,or={};if(typeof er=="string"){if(nr=er,typeof rr=="object"&&rr!==null)or=rr;else if(typeof rr<"u")throw new TypeError("'options' must be an object.")}else if(er instanceof Uint8Array){if(nr=er,typeof rr=="object"&&rr!==null)or=rr;else if(typeof rr<"u")throw new TypeError("'options' must be an object.")}else if(er instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&er instanceof SharedArrayBuffer){const ur=er;let sr=0,hr=er.byteLength;if(typeof rr=="object"&&rr!==null)or=rr;else if(typeof rr=="number"){if(sr=rr,!Number.isSafeInteger(sr))throw new RangeError("'byteOffset' must be an integer.");if(sr<0||sr>=ur.byteLength)throw new RangeError(`'byteOffset' is out of range [0, ${ur.byteLength}).`);if(hr=er.byteLength-sr,typeof ir=="number"){if(hr=ir,!Number.isSafeInteger(hr))throw new RangeError("'byteLength' must be an integer.");if(hr<=0||sr+hr>ur.byteLength)throw new RangeError(`'byteLength' is out of range (0, ${ur.byteLength-sr}].`);if(typeof ar=="object"&&ar!==null)or=ar;else if(typeof ar<"u")throw new TypeError("'options' must be an object.")}else if(typeof ir<"u")throw new TypeError("'byteLength' must be a number.")}else if(typeof rr<"u")throw new TypeError("'options' must be an object.");nr=new Uint8Array(ur,sr,hr)}else throw new TypeError("Unexpected argument[0]: must be 'path' or 'buffer'.");const fr=(or.executionProviders||[]).map(ur=>typeof ur=="string"?ur:ur.name),cr=await(await resolveBackend(fr)).createSessionHandler(nr,or);return new Is(cr)}startProfiling(){this.handler.startProfiling()}endProfiling(){this.handler.endProfiling()}get inputNames(){return this.handler.inputNames}get outputNames(){return this.handler.outputNames}};const InferenceSession=InferenceSession$1,lib=Object.freeze(Object.defineProperty({__proto__:null,InferenceSession,Tensor,env,registerBackend},Symbol.toStringTag,{value:"Module"})),require$$0=getAugmentedNamespace(lib);/*!
|
|
287
287
|
* ONNX Runtime Web v1.14.0
|
|
288
288
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
289
289
|
* Licensed under the MIT License.
|