@vellumai/web 0.11.6 → 0.11.7-staging.2
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/assets/{a2a-invite-Dcxf1Lse.js → a2a-invite-CalxmT9U.js} +1 -1
- package/dist/assets/about-page-oelEgoKN.js +1 -0
- package/dist/assets/account-page-DoWCrccl.js +1 -0
- package/dist/assets/account-shell-D6h6YPdW.js +1 -0
- package/dist/assets/acp-run-detail-panel-BqBDl6QB.js +5 -0
- package/dist/assets/activity-steps-panel-C5Nlm1Ax.js +1 -0
- package/dist/assets/add-credits-modal-Clc-YWYG.js +1 -0
- package/dist/assets/ai-page-DtRit5K4.js +1 -0
- package/dist/assets/android-billing-handoff-D6KkZQcR.js +1 -0
- package/dist/assets/api-key-screen-BWXzfFaa.js +1 -0
- package/dist/assets/app-info-BzVdvgJM.js +1 -0
- package/dist/assets/archive-redirect-page-DD3q7S_q.js +1 -0
- package/dist/assets/assistant-status-panel-i2Q5Ng1C.js +1 -0
- package/dist/assets/auth-welcome-screen-ghh-qFOz.js +1 -0
- package/dist/assets/avatar-random-BEjqLOzH.js +1 -0
- package/dist/assets/background-task-detail-panel-igcj1myW.js +1 -0
- package/dist/assets/billing-page-BtVWtaxz.js +3 -0
- package/dist/assets/billing-redirect-page-DaIhDbvM.js +1 -0
- package/dist/assets/bookmarks-page-CvCqY1u_.js +1 -0
- package/dist/assets/{build.umd-DjyW4NzX.js → build.umd-CJjt7Lfj.js} +1 -1
- package/dist/assets/bundle-confirm-page-DuW3Ltpg.js +1 -0
- package/dist/assets/channel-transcript-panel-C5dxI2kC.js +1 -0
- package/dist/assets/channels-Dv8-4WT6.js +9 -0
- package/dist/assets/channels-NP4ODNxS.js +9 -0
- package/dist/assets/channels-page-route-CaZZgVvj.js +1 -0
- package/dist/assets/chat-CuSRAhBb.js +3 -0
- package/dist/assets/{chat-4LXYoAUR.js → chat-Dw-Xoh_r.js} +2 -2
- package/dist/assets/checkout-continuation-gyr3KRhJ.js +1 -0
- package/dist/assets/checkout-page-CpaWMY_L.js +1 -0
- package/dist/assets/checkout-return-target-uGUiSRvm.js +1 -0
- package/dist/assets/command-palette-Dqv1yvzc.js +1 -0
- package/dist/assets/command-palette-window-page-C4vKhArq.js +1 -0
- package/dist/assets/common-BZmEPLQq.js +1 -0
- package/dist/assets/common-wNADLj0r.js +1 -0
- package/dist/assets/community-page-xiwPgo2f.js +1 -0
- package/dist/assets/companion-layout-BgFk39Te.js +1 -0
- package/dist/assets/companion-surface-page-BE_GKIQH.js +1 -0
- package/dist/assets/connect-page-1WOW2Uyb.js +1 -0
- package/dist/assets/consent-controls-RsRyTWzn.js +1 -0
- package/dist/assets/contacts-DY80_acF.js +1 -0
- package/dist/assets/contacts-O_w2EdRt.js +1 -0
- package/dist/assets/contacts-gateway-aq64PPDs.js +1 -0
- package/dist/assets/contacts-page-route-fh_BygpY.js +1 -0
- package/dist/assets/credential-entry-page-CHyGUHNE.js +1 -0
- package/dist/assets/credentials-page-u4m5eB0e.js +1 -0
- package/dist/assets/{csv-preview-rpZix2b7.js → csv-preview-D1DFyAyk.js} +2 -2
- package/dist/assets/danger-zone-redirect-page-pm7xtA64.js +1 -0
- package/dist/assets/debug-page-BiRFASyO.js +4 -0
- package/dist/assets/deploy-dialogs-BQGFr3pp.js +1 -0
- package/dist/assets/detail-card-BTciodin.js +1 -0
- package/dist/assets/detail-drawer-svbxV7k9.js +1 -0
- package/dist/assets/detail-panel-stop-button-DvPi_A52.js +1 -0
- package/dist/assets/developer-page-YJ4ePRAY.js +1 -0
- package/dist/assets/devices-redirect-page-Bc3d-ANN.js +1 -0
- package/dist/assets/dictation-overlay-page-CV5-bWnC.js +1 -0
- package/dist/assets/diff-rows-DzBJ95DT.js +1 -0
- package/dist/assets/document-viewer-page-B9aeVcPf.js +1 -0
- package/dist/assets/ellipsis-vertical-npNyglhR.js +1 -0
- package/dist/assets/emails-page-DuxmJeBh.js +1 -0
- package/dist/assets/environment-store-Cb7OK6xz.js +1 -0
- package/dist/assets/esm-BFMxsKfC.js +2 -0
- package/dist/assets/esm-BWaPHKOl.js +2 -0
- package/dist/assets/esm-B_9x3_5A.js +2 -0
- package/dist/assets/esm-BmkPJcrm.js +1 -0
- package/dist/assets/esm-C8_GJq6u.js +1 -0
- package/dist/assets/esm-CvsVyyLL.js +2 -0
- package/dist/assets/esm-D8F0P9NS.js +1 -0
- package/dist/assets/esm-DLD7mc5e.js +2 -0
- package/dist/assets/esm-lFkAo6qR.js +2 -0
- package/dist/assets/file-editor-qyflOek_.js +1 -0
- package/dist/assets/folder-open-8sWiN1cw.js +1 -0
- package/dist/assets/format-countdown-Cge3iaM1.js +1 -0
- package/dist/assets/general-page-CplJ3sOI.js +1 -0
- package/dist/assets/hatching-screen-tqPPQDHG.js +1 -0
- package/dist/assets/home-page-route-CMsbxqsW.js +1 -0
- package/dist/assets/hosting-screen-7idZudJ8.js +1 -0
- package/dist/assets/icons-CSdHOix6.js +1 -0
- package/dist/assets/identity-page-route-C4EAb-ac.js +7 -0
- package/dist/assets/index-2ECSWhtU.css +2 -0
- package/dist/assets/index-7XDiAJ-A.js +357 -0
- package/dist/assets/inspect-page-DsXykArJ.js +9 -0
- package/dist/assets/integrations-page-CmMVSsvu.js +1 -0
- package/dist/assets/{intelligence-DNb2No5j.js → intelligence-DwVUW6jm.js} +1 -1
- package/dist/assets/{intelligence-cL2kPl3v.js → intelligence-JlruxYAh.js} +1 -1
- package/dist/assets/intelligence-layout-DKknlxHu.js +1 -0
- package/dist/assets/keyboard-shortcuts-redirect-page-CFu5x117.js +1 -0
- package/dist/assets/{latest-assistant-text-DCyUvxgH.js → latest-assistant-text-CVRVSoFg.js} +2 -2
- package/dist/assets/library-detail-page-CKFkI0QY.js +1 -0
- package/dist/assets/library-page-dIrR1lib.js +1 -0
- package/dist/assets/login-page-Bca-1DK6.js +1 -0
- package/dist/assets/logout-page-BzAORi0q.js +1 -0
- package/dist/assets/logs-layout-BsqrLQee.js +1 -0
- package/dist/assets/markdown-preview-DLXGytZI.js +1 -0
- package/dist/assets/media-preview-daMlnyj8.js +1 -0
- package/dist/assets/memory-page-route-CX1I7izG.js +2 -0
- package/dist/assets/memory-router-playground-page-Mk3rfyGO.js +1 -0
- package/dist/assets/message-files-panel-D-C9C2PJ.js +1 -0
- package/dist/assets/metric-card-Bij5WGzs.js +1 -0
- package/dist/assets/notifications-page-C6zUs2x1.js +1 -0
- package/dist/assets/{oauth-complete-page-Bh6VG8SS.js → oauth-complete-page-CuNDqPAt.js} +1 -1
- package/dist/assets/{oauth-popup-complete-page-6YLSOCV_.js → oauth-popup-complete-page-hRc3yLWH.js} +2 -2
- package/dist/assets/onboarding-BbtVI8KM.js +1 -0
- package/dist/assets/onboarding-BoaKLlZ5.js +1 -0
- package/dist/assets/page-empty-state-BrGkTMcK.js +1 -0
- package/dist/assets/page-shell-DtdXurhX.js +1 -0
- package/dist/assets/pairing-page-CwLe0EJV.js +1 -0
- package/dist/assets/password-reset-page-C7qvqEJQ.js +1 -0
- package/dist/assets/{pdf-a3pPuuVL.js → pdf-fWDhmWcw.js} +1 -1
- package/dist/assets/pdf-file-preview-DbwHMWey.js +1 -0
- package/dist/assets/pdf.worker.min-Dr1KORA9.mjs +31 -0
- package/dist/assets/personality-page-Ci_b1dH9.js +1 -0
- package/dist/assets/plans-page-CyqILV_j.js +1 -0
- package/dist/assets/platform-loopback-page-CgXx1oDQ.js +1 -0
- package/dist/assets/plugin-detail-page-CvC_LUz2.js +1 -0
- package/dist/assets/plugins-page-9LuPE9IY.js +1 -0
- package/dist/assets/preview-error-DbAQP8oG.js +1 -0
- package/dist/assets/privacy-page-OIOZKgWi.js +1 -0
- package/dist/assets/privacy-screen-DFnrbIrM.js +1 -0
- package/dist/assets/provider-callback-page-DGVehvIp.js +1 -0
- package/dist/assets/provider-key-CUAJZvaQ.js +1 -0
- package/dist/assets/provider-signup-page-B5gnrbym.js +1 -0
- package/dist/assets/{provisioning-targets-CE25g21J.js → provisioning-targets-BbLfumae.js} +1 -1
- package/dist/assets/quick-input-page-Ccy-FS5S.js +1 -0
- package/dist/assets/react-DPM_L_aA.js +12 -0
- package/dist/assets/repeat-DVEpBLT_.js +1 -0
- package/dist/assets/research-mock-page-DqfkGU9x.js +1 -0
- package/dist/assets/research-onboarding-route-D3qFv6SM.js +50 -0
- package/dist/assets/review-terms-screen-BD3wP3KC.js +1 -0
- package/dist/assets/schedules-B_SL_iV4.js +1 -0
- package/dist/assets/schedules-page-D64tvhuZ.js +1 -0
- package/dist/assets/security-redirect-page-CWR-HICc.js +1 -0
- package/dist/assets/select-assistant-screen-SfWB0oQ2.js +1 -0
- package/dist/assets/self-hosted-servers-BHF9gq8j.js +1 -0
- package/dist/assets/service-form-controls-DNfWnjSp.js +1 -0
- package/dist/assets/setting-row-DRwmii99.js +1 -0
- package/dist/assets/settings-divider-X9YnFIFQ.js +1 -0
- package/dist/assets/settings-gjWN0WQO.js +3 -0
- package/dist/assets/settings-iLTzqZW8.js +3 -0
- package/dist/assets/settings-layout-C2Um5qit.js +1 -0
- package/dist/assets/share-feedback-modal-BzV03dUO.js +2 -0
- package/dist/assets/sidebar-tree-C1t1xfKD.js +1 -0
- package/dist/assets/signup-page-Dyhm65FW.js +1 -0
- package/dist/assets/signup-shell-CSThcwPa.js +1 -0
- package/dist/assets/skill-detail-page-Cja0k8_e.js +2 -0
- package/dist/assets/skill-detail-panel-BIOL410z.js +1 -0
- package/dist/assets/skill-icon-Me8DDEMt.js +1 -0
- package/dist/assets/skill-removal-dialog-bN91N7f8.js +1 -0
- package/dist/assets/skills-page-CYogTXmH.js +1 -0
- package/dist/assets/sounds-page-DAy2o3wO.js +1 -0
- package/dist/assets/start-screen-DyyYavfM.js +1 -0
- package/dist/assets/status-badge-pill-BAkXhxwa.js +1 -0
- package/dist/assets/stt-language-picker-modal-CpGwbd4g.js +1 -0
- package/dist/assets/subagent-detail-panel-330bH7ee.js +4 -0
- package/dist/assets/superpowers-page-D6wv3GWO.js +1 -0
- package/dist/assets/system-events-page-CFN8tMUJ.js +1 -0
- package/dist/assets/system-events-redirect-page-BarOgFkA.js +1 -0
- package/dist/assets/text-preview-CZeqyzdw.js +1 -0
- package/dist/assets/theme-stage-page-Pcnh0PTQ.js +1 -0
- package/dist/assets/{tiptap-document-editor-sg7gdh_H.js → tiptap-document-editor-ZZmtZ799.js} +30 -30
- package/dist/assets/tool-detail-panel-BgCSb_m5.js +12 -0
- package/dist/assets/trait-cycle-row-BWNJ21g4.js +1 -0
- package/dist/assets/upgrade-cancel-page-ByVEWPeH.js +1 -0
- package/dist/assets/upgrade-success-page-iAPLJbee.js +1 -0
- package/dist/assets/usage-redirect-page-BHd-7in5.js +1 -0
- package/dist/assets/use-assistant-identity-details-oVmPdjVe.js +1 -0
- package/dist/assets/use-checkout-dismiss-refresh-BO2cN2i8.js +1 -0
- package/dist/assets/use-edge-swipe-back-CzESg8qG.js +2 -0
- package/dist/assets/use-hotkey-recorder-CY089_4p.js +1 -0
- package/dist/assets/use-invite-link-dialog-Ck-LquhT.js +1 -0
- package/dist/assets/use-platform-assistant-id-DcVWp7KY.js +1 -0
- package/dist/assets/use-return-to-short-circuit-NDSwANeI.js +1 -0
- package/dist/assets/use-side-list-room-DQbUPFcU.js +1 -0
- package/dist/assets/use-skill-actions-CNBx-WS1.js +1 -0
- package/dist/assets/use-skill-detail-files-BGIXJykk.js +1 -0
- package/dist/assets/use-supports-credentials-settings-C6S_OHMP.js +1 -0
- package/dist/assets/use-transcript-message-by-id-Dqm1PMu3.js +1 -0
- package/dist/assets/use-truncated-blob-text-DLF_hf3O.js +1 -0
- package/dist/assets/vendor-WUN87CSE.js +385 -0
- package/dist/assets/voice-page-nBfEMyWs.js +1 -0
- package/dist/assets/weather-forecast-display-B6j-V-yS.js +1 -0
- package/dist/assets/web-CE-RjE8i.js +1 -0
- package/dist/assets/web-Cv_J7__I.js +1 -0
- package/dist/assets/web-Cw24uxYA.js +1 -0
- package/dist/assets/web-DDFO9PaS.js +1 -0
- package/dist/assets/web-DL2rv-Fb.js +1 -0
- package/dist/assets/web-DPEGYPrR.js +1 -0
- package/dist/assets/web-Q8lSPj8Z.js +1 -0
- package/dist/assets/web-kKGZ0Pbn.js +1 -0
- package/dist/assets/web-pwf5Vh3V.js +1 -0
- package/dist/assets/welcome-screen-BrwdmDqM.js +1 -0
- package/dist/assets/workflow-detail-panel-DcTQSyju.js +1 -0
- package/dist/assets/workspace-page-Dwfwnkh5.js +1 -0
- package/dist/assets/{xterm-QkObDWKu.js → xterm-DfM4JBPp.js} +1 -1
- package/dist/assets/xterm-addon-fit-DuBTfuI9.js +1 -0
- package/dist/images/integrations/ATTRIBUTION.md +10 -5
- package/dist/images/integrations/calendly.svg +1 -0
- package/dist/images/integrations/eventbrite.svg +1 -0
- package/dist/images/integrations/monday.svg +1 -0
- package/dist/index.html +7 -336
- package/package.json +1 -1
- package/dist/assets/AnimatePresence-BkWQRluv.js +0 -9
- package/dist/assets/Combination-kHxEP36G.js +0 -41
- package/dist/assets/QueryClientProvider-BPZM68-A.js +0 -1
- package/dist/assets/Trans-CBhhVbOk.js +0 -1
- package/dist/assets/about-page-hURQzaZb.js +0 -1
- package/dist/assets/account-page-BUHRzIQn.js +0 -1
- package/dist/assets/account-shell-Y97PMm-a.js +0 -1
- package/dist/assets/acp-run-actions-DznGEBjQ.js +0 -1
- package/dist/assets/acp-run-detail-panel-CVPDXyP6.js +0 -5
- package/dist/assets/acp-run-store-D8roCscD.js +0 -1
- package/dist/assets/activity-steps-panel-BzTDFCQ4.js +0 -1
- package/dist/assets/add-credential-modal-aeUdZtSp.js +0 -1
- package/dist/assets/add-credits-modal-CtS-PzoH.js +0 -1
- package/dist/assets/ai-page-C6zXOVyP.js +0 -1
- package/dist/assets/android-billing-handoff-BoSQm4gg.js +0 -1
- package/dist/assets/animate-CuPjEtk6.js +0 -1
- package/dist/assets/animated-avatar-DAJHVYXE.js +0 -1
- package/dist/assets/api-BUuIGDig.js +0 -1
- package/dist/assets/api-key-screen-DauZKmq9.js +0 -1
- package/dist/assets/app-card-B5AFFdUO.js +0 -1
- package/dist/assets/app-info-CBSIGREh.js +0 -1
- package/dist/assets/apple-logo-GkgGOZWf.js +0 -1
- package/dist/assets/archive-DMKVAVAX.js +0 -1
- package/dist/assets/archive-redirect-page-DXqjPmpK.js +0 -1
- package/dist/assets/arrow-down-to-line-CJ0OBlcT.js +0 -1
- package/dist/assets/arrow-left-DUklm7Fd.js +0 -1
- package/dist/assets/arrow-right-De7tYwD7.js +0 -1
- package/dist/assets/arrow-up-CijF4S8i.js +0 -1
- package/dist/assets/assistant-feature-flag-store-Co_o5uD3.js +0 -1
- package/dist/assets/assistant-identity-store-DBkGjqzV.js +0 -1
- package/dist/assets/assistant-status-panel-DYkXgK0D.js +0 -1
- package/dist/assets/audio-context-YNIG4zMo.js +0 -1
- package/dist/assets/auth-store-BVjw4Y6z.js +0 -2
- package/dist/assets/auth-welcome-screen-DbDu2DKV.js +0 -1
- package/dist/assets/avatar-bundled-components-C1i6ys8w.js +0 -1
- package/dist/assets/avatar-random-BOjdaclE.js +0 -1
- package/dist/assets/avatar-renderer-CnJd2PqC.js +0 -1
- package/dist/assets/avatar-subagent-CdgpbwL0.js +0 -1
- package/dist/assets/avatar-svg-compositor-DxBmLeF3.js +0 -1
- package/dist/assets/avatar-tone-D_3T6CNS.js +0 -1
- package/dist/assets/background-task-actions-Cs3pTNVl.js +0 -1
- package/dist/assets/background-task-detail-panel-BWAwy3I3.js +0 -1
- package/dist/assets/background-task-store-Ba89lNRi.js +0 -1
- package/dist/assets/ban-JFtQ_88n.js +0 -1
- package/dist/assets/bell-B3GoRAIC.js +0 -1
- package/dist/assets/billing-page-FxI0W3-_.js +0 -3
- package/dist/assets/billing-redirect-page-l6nC_qa5.js +0 -1
- package/dist/assets/bookmarks-page-6p-UochF.js +0 -1
- package/dist/assets/brain-lgsb4JhV.js +0 -1
- package/dist/assets/browser-BaGW19xY.js +0 -2
- package/dist/assets/browser-timezone-DEQubHhx.js +0 -1
- package/dist/assets/bug-DJjWtfUu.js +0 -1
- package/dist/assets/build-state-ChDL0BPH.js +0 -1
- package/dist/assets/bundle-confirm-page-9jTfMrek.js +0 -1
- package/dist/assets/bundle-mjs-CctC_00U.js +0 -1
- package/dist/assets/button-B1kEAcLt.js +0 -1
- package/dist/assets/by-tool-use-id-index-DOOfRauy.js +0 -1
- package/dist/assets/calendar-Bbg9LoLZ.js +0 -1
- package/dist/assets/camera-DOhkFhC8.js +0 -1
- package/dist/assets/card-B4b9cF6X.js +0 -1
- package/dist/assets/channels-DU7UcoR_.js +0 -1
- package/dist/assets/channels-P8K1t248.js +0 -1
- package/dist/assets/channels-page-route-DBtIRtsL.js +0 -9
- package/dist/assets/chart-column-BSXp3tJF.js +0 -1
- package/dist/assets/chat-BG7p3zq1.js +0 -3
- package/dist/assets/chat-Bfo3dMB3.js +0 -1
- package/dist/assets/chat-avatar-DM2DBsml.js +0 -1
- package/dist/assets/chat-layout-slots-store-D_NI8Xtw.js +0 -1
- package/dist/assets/chat-markdown-message-CTuuKxjN.js +0 -1
- package/dist/assets/check-bDVYejGM.js +0 -1
- package/dist/assets/checkbox--DYEubRE.js +0 -1
- package/dist/assets/checkout-continuation-LLv0HLko.js +0 -1
- package/dist/assets/checkout-page-B14XHmIb.js +0 -1
- package/dist/assets/checkout-return-target-BX6588K4.js +0 -1
- package/dist/assets/chevron-down-D437oaYt.js +0 -1
- package/dist/assets/chevron-left-C51UUK4r.js +0 -1
- package/dist/assets/chevron-right-D5lPX854.js +0 -1
- package/dist/assets/chevron-up-B_I9Uakl.js +0 -1
- package/dist/assets/chunk-5KNZJZUH-CPFsMQoz.js +0 -4
- package/dist/assets/circle-alert-BaeJJrSp.js +0 -1
- package/dist/assets/circle-check-CnoFVsRZ.js +0 -1
- package/dist/assets/circle-check-big-CHpJAmSB.js +0 -1
- package/dist/assets/circle-minus--pYdZe0n.js +0 -1
- package/dist/assets/circle-x-BnqzdPia.js +0 -1
- package/dist/assets/client-feature-flag-store-BmjgGl9P.js +0 -1
- package/dist/assets/client-perf-CL-Sfpnu.js +0 -1
- package/dist/assets/client.gen-D1UKq9QZ.js +0 -6
- package/dist/assets/clipboard-copy-BFyCoPu3.js +0 -1
- package/dist/assets/clock-HLo0irRS.js +0 -1
- package/dist/assets/cloud-6GKvvsQ6.js +0 -1
- package/dist/assets/cloud-off-B8SagsfP.js +0 -1
- package/dist/assets/cn-naJKasky.js +0 -1
- package/dist/assets/code-B7j8vdg9.js +0 -1
- package/dist/assets/coins-S_-Fmv_r.js +0 -1
- package/dist/assets/command-palette-C0x3z7aQ.js +0 -1
- package/dist/assets/command-palette-window-page-BShi7rwo.js +0 -1
- package/dist/assets/common-C7YGlfJZ.js +0 -1
- package/dist/assets/common-DFfCPRFe.js +0 -1
- package/dist/assets/community-page-ChiOX6Op.js +0 -1
- package/dist/assets/companion-surface-BYj8yxCS.js +0 -1
- package/dist/assets/companion-surface-page-HYtLs0-t.js +0 -1
- package/dist/assets/composer-settings-BCehrZgj.js +0 -1
- package/dist/assets/confirm-dialog-EPYSBP_B.js +0 -1
- package/dist/assets/connect-page-tyHxf7TL.js +0 -1
- package/dist/assets/consent-controls-C7U2N-h8.js +0 -1
- package/dist/assets/consent-cuDRWUkB.js +0 -1
- package/dist/assets/contacts-CotcPejk.js +0 -1
- package/dist/assets/contacts-E-8UOrGK.js +0 -1
- package/dist/assets/contacts-gateway-BLGKdcif.js +0 -1
- package/dist/assets/contacts-page-route-KVjx4fqm.js +0 -1
- package/dist/assets/conversation-cache-CrybogTL.js +0 -1
- package/dist/assets/conversation-navigation-Ck_iLhjv.js +0 -1
- package/dist/assets/conversation-queries-Clrll8jF.js +0 -1
- package/dist/assets/conversation-selection-BVLi6RIL.js +0 -1
- package/dist/assets/conversation-store-BHWyRtQs.js +0 -1
- package/dist/assets/copy-to-clipboard-Blihejp9.js +0 -1
- package/dist/assets/cpu-KP1UdyS1.js +0 -1
- package/dist/assets/create-selectors-sLdtxUZQ.js +0 -1
- package/dist/assets/createLucideIcon-CMfEC_aW.js +0 -1
- package/dist/assets/credential-entry-page-Cs6FHnUn.js +0 -1
- package/dist/assets/credentials-page-D8G-44GI.js +0 -1
- package/dist/assets/danger-zone-redirect-page-Cds_krO3.js +0 -1
- package/dist/assets/debug-page-BMqKvkSo.js +0 -4
- package/dist/assets/deploy-dialogs-DqkTJUGk.js +0 -1
- package/dist/assets/deploy-store-FijtU8HL.js +0 -1
- package/dist/assets/desktop-voice-activity-DUGtHbRg.js +0 -1
- package/dist/assets/detail-card-D9EAxXI8.js +0 -1
- package/dist/assets/detail-drawer-D-CPwyBO.js +0 -1
- package/dist/assets/detail-panel-stop-button-ClfJeo-s.js +0 -1
- package/dist/assets/detail-shell-CNYbfTO7.js +0 -1
- package/dist/assets/developer-page-C7o31rYB.js +0 -1
- package/dist/assets/devices-redirect-page-CeKwKvN-.js +0 -1
- package/dist/assets/diagnostics-BC7vRbDB.js +0 -1
- package/dist/assets/dictation-overlay-C-whP7yL.js +0 -1
- package/dist/assets/dictation-overlay-page-sfEwzU14.js +0 -1
- package/dist/assets/diff-rows-D_K2ZMJ5.js +0 -1
- package/dist/assets/discord-logo-sC02ywjh.js +0 -1
- package/dist/assets/dist-BnrwumrD.js +0 -1
- package/dist/assets/dist-Cr8OiiXj.js +0 -1
- package/dist/assets/dist-Ct3qbbty.js +0 -1
- package/dist/assets/dist-Czhl4zX3.js +0 -1
- package/dist/assets/dist-D3VsKBK8.js +0 -1
- package/dist/assets/dist-DaY2OuMX.js +0 -1
- package/dist/assets/doctor-handoff-store-DEirTOZw.js +0 -1
- package/dist/assets/document-viewer-container-yyhVIyAB.js +0 -2
- package/dist/assets/document-viewer-page-Co_sxuvK.js +0 -1
- package/dist/assets/download-BIMKsVBw.js +0 -1
- package/dist/assets/edge-swipe-arbiter-store-ByePvbty.js +0 -1
- package/dist/assets/edit-chat-session-Cm8kKicc.js +0 -1
- package/dist/assets/effective-timezone-BW38Gdmx.js +0 -1
- package/dist/assets/ellipsis-DLGzVN7S.js +0 -1
- package/dist/assets/ellipsis-vertical-BJaOQqv_.js +0 -1
- package/dist/assets/emails-page-a1sfkbkL.js +0 -1
- package/dist/assets/environment-store-DKl9RR50.js +0 -1
- package/dist/assets/esm-BAE-_6f7.js +0 -1
- package/dist/assets/esm-BTQ42Hgz.js +0 -2
- package/dist/assets/esm-BnXPDdij.js +0 -2
- package/dist/assets/esm-CC077SPL.js +0 -2
- package/dist/assets/esm-CbZfwR7m.js +0 -2
- package/dist/assets/esm-DA5sciAy.js +0 -2
- package/dist/assets/esm-DbODHbQp.js +0 -2
- package/dist/assets/esm-Doko4a-G.js +0 -2
- package/dist/assets/esm-KUiHjb53.js +0 -1
- package/dist/assets/esm-uRwymN1a.js +0 -1
- package/dist/assets/event-bus-CN0zipw2.js +0 -1
- package/dist/assets/external-anchor-CJ2uCBN2.js +0 -1
- package/dist/assets/external-link-cVsOyP-B.js +0 -1
- package/dist/assets/external-urls-BE71Yb2T.js +0 -1
- package/dist/assets/eye-Bkw-NEUk.js +0 -1
- package/dist/assets/eye-bbox-crwIELLL.js +0 -1
- package/dist/assets/eye-off-BtRToWVw.js +0 -1
- package/dist/assets/feature-flag-catalog-DWnmasL0.js +0 -1
- package/dist/assets/feed-item-status-actions-Bw41rlaj.js +0 -1
- package/dist/assets/field-quMum4Ij.js +0 -1
- package/dist/assets/file-DukGjoT9.js +0 -1
- package/dist/assets/file-code-KOdjB_EC.js +0 -1
- package/dist/assets/file-editor-Cx3p3Rxf.js +0 -1
- package/dist/assets/file-markdown-D43Nsqm2.js +0 -2
- package/dist/assets/file-plus-BE5pS64_.js +0 -1
- package/dist/assets/file-text-CexzqcsX.js +0 -1
- package/dist/assets/first-run-scope-DITgHc6G.js +0 -1
- package/dist/assets/folder-BshXYSOQ.js +0 -1
- package/dist/assets/folder-open-Dp3CKxO5.js +0 -1
- package/dist/assets/format-date-C4mrDYY6.js +0 -1
- package/dist/assets/format-usd-Be34KtzB.js +0 -1
- package/dist/assets/funnel-events-Dl6Nt7nA.js +0 -1
- package/dist/assets/general-page-rg_u_yPE.js +0 -1
- package/dist/assets/get-memory-stats-DxspWLxk.js +0 -1
- package/dist/assets/globe-DJ3y3hQh.js +0 -1
- package/dist/assets/haptics-BS-glrYv.js +0 -2
- package/dist/assets/hard-drive-CXysKjuo.js +0 -1
- package/dist/assets/hard-navigate-BVv7q79D.js +0 -1
- package/dist/assets/hatching-screen-8lXCy9WG.js +0 -1
- package/dist/assets/heart-DF_JiyEl.js +0 -1
- package/dist/assets/home-page-route-QunjBmtS.js +0 -1
- package/dist/assets/hosting-screen-B-5gejYX.js +0 -1
- package/dist/assets/i18n-BtV8MCsZ.js +0 -15
- package/dist/assets/identity-_6tLszkL.js +0 -1
- package/dist/assets/identity-page-route-B0XGpYIE.js +0 -7
- package/dist/assets/image-B4sohCAa.js +0 -1
- package/dist/assets/inbox-D8dK1dMC.js +0 -1
- package/dist/assets/index-C9XKdblY.css +0 -2
- package/dist/assets/index-Gjnx86x6.js +0 -11
- package/dist/assets/infiniteQueryOptions-DTCCTa10.js +0 -1
- package/dist/assets/info-C-HjpKAE.js +0 -1
- package/dist/assets/ingest-OJG7HVUh.js +0 -1
- package/dist/assets/input-ChbJ2nzd.js +0 -1
- package/dist/assets/inspect-page-bs_j1c9j.js +0 -9
- package/dist/assets/installed-plugins-query-C8omZZV4.js +0 -1
- package/dist/assets/integration-icon-C6Y4VGkv.js +0 -1
- package/dist/assets/integrations-page-D7ENik74.js +0 -1
- package/dist/assets/intelligence-layout-gaexcakY.js +0 -1
- package/dist/assets/interactive-target-h9aYOKy2.js +0 -1
- package/dist/assets/internal-thread-actions-DkNfSArh.js +0 -1
- package/dist/assets/invalidate-memory-queries-DWuNUXFq.js +0 -1
- package/dist/assets/invalidate-plugin-queries-CBgy5O6i.js +0 -1
- package/dist/assets/is-electron-D45bjFI8.js +0 -1
- package/dist/assets/jsx-runtime-COOF1INC.js +0 -1
- package/dist/assets/key-round-BEQmZ4Ji.js +0 -1
- package/dist/assets/keyboard-shortcuts-redirect-page-BDuYwofA.js +0 -1
- package/dist/assets/laptop-XN6nYvdB.js +0 -1
- package/dist/assets/layout-grid-Cyrnt_YU.js +0 -1
- package/dist/assets/library-detail-page-DXCZhY4s.js +0 -1
- package/dist/assets/library-page-CKAu2a08.js +0 -1
- package/dist/assets/lightbulb-BSnKqAOd.js +0 -1
- package/dist/assets/link-2-Di62Fo_i.js +0 -1
- package/dist/assets/link-CbkkEBEX.js +0 -1
- package/dist/assets/list-Dtwz1hOH.js +0 -1
- package/dist/assets/list-row-BvCm9O6y.js +0 -1
- package/dist/assets/llm-model-catalog-Bk0q_XG4.js +0 -1
- package/dist/assets/loader-circle-DZ65N8bz.js +0 -1
- package/dist/assets/local-mode-BQ8gp0wB.js +0 -1
- package/dist/assets/local-runtime-upgrade-BXc9x-7Y.js +0 -1
- package/dist/assets/local-settings-D9SNRv4p.js +0 -1
- package/dist/assets/log-in-CGeZfDEs.js +0 -1
- package/dist/assets/log-out-DPkGVfNH.js +0 -1
- package/dist/assets/login-flow-CrSxmLFE.js +0 -1
- package/dist/assets/login-page-uUo0uRmJ.js +0 -1
- package/dist/assets/logout-page-BYZfOpa1.js +0 -1
- package/dist/assets/logs-layout-B34XKM-k.js +0 -1
- package/dist/assets/mail-CqdA6Y_p.js +0 -1
- package/dist/assets/markdown-preview-eCDa4paC.js +0 -1
- package/dist/assets/media-preview-1xn1SAn9.js +0 -1
- package/dist/assets/memory-page-route-DiVaW98S.js +0 -2
- package/dist/assets/memory-router-playground-page-DgILWgQu.js +0 -1
- package/dist/assets/menu-DPM2p9S5.js +0 -1
- package/dist/assets/message-circle-DBYzIjYB.js +0 -1
- package/dist/assets/message-content-uWZUlo6D.js +0 -1
- package/dist/assets/message-files-panel-Bv-5dvcD.js +0 -1
- package/dist/assets/message-square-XpKWNcyv.js +0 -1
- package/dist/assets/message-square-text-CvSl10LZ.js +0 -1
- package/dist/assets/messages-BXHTKK_v.js +0 -13
- package/dist/assets/metric-card-CTonLoYE.js +0 -1
- package/dist/assets/mic-DQbnjgmt.js +0 -1
- package/dist/assets/middleware-BmAQ4_8P.js +0 -1
- package/dist/assets/mime-sniff--WYdEIBE.js +0 -1
- package/dist/assets/minimize-2-DzL_lI8t.js +0 -1
- package/dist/assets/misc-dA4Wklt2.js +0 -1
- package/dist/assets/modal-_49mDK_d.js +0 -1
- package/dist/assets/monitor-BKwWxjph.js +0 -1
- package/dist/assets/moon-MfogEw5q.js +0 -1
- package/dist/assets/native-anchor-CmnMg6B6.js +0 -1
- package/dist/assets/native-biometric-DEP8Sr4X.js +0 -6
- package/dist/assets/native-deep-link--guFKiPO.js +0 -2
- package/dist/assets/native-file-DlQtjxJn.js +0 -2
- package/dist/assets/navigation-resolver-CRsrd5gh.js +0 -1
- package/dist/assets/not-found-BXR_4Uja.js +0 -1
- package/dist/assets/notice-BHeYlKvv.js +0 -1
- package/dist/assets/notifications-Dcgkgn8Q.js +0 -1
- package/dist/assets/notifications-page-CSH6gHaX.js +0 -1
- package/dist/assets/oauth-connection-utils-D_78dCYn.js +0 -1
- package/dist/assets/oauth-popup-DEDdbkj2.js +0 -1
- package/dist/assets/onboarding-D2bBWpx1.js +0 -1
- package/dist/assets/onboarding-DJeJhXd6.js +0 -1
- package/dist/assets/onboarding-layout-C9v6Q2QQ.js +0 -1
- package/dist/assets/onboarding-navigation-oNFNDeeW.js +0 -1
- package/dist/assets/onboarding-store-BhT1z8Wi.js +0 -1
- package/dist/assets/open-workspace-file-fIr0qcsc.js +0 -2
- package/dist/assets/operational-status-BdcYEcTh.js +0 -1
- package/dist/assets/optimistic-lifecycle-BlDyVYIt.js +0 -1
- package/dist/assets/page-empty-state-B_nQdAFR.js +0 -1
- package/dist/assets/page-shell-BHyGukA1.js +0 -1
- package/dist/assets/page-surface-store-D5IgLCtn.js +0 -1
- package/dist/assets/pairing-page-fVI54lsD.js +0 -1
- package/dist/assets/palette-BlX3XmVL.js +0 -1
- package/dist/assets/paperclip-Ce-wbj5L.js +0 -1
- package/dist/assets/password-reset-page-ClhMzYsx.js +0 -1
- package/dist/assets/pdf-file-preview-BjbSLoD9.js +0 -1
- package/dist/assets/pdf-preview-xa07R01f.js +0 -2
- package/dist/assets/pencil-1uDrqXvV.js +0 -1
- package/dist/assets/personality-page-CK3vkhkl.js +0 -1
- package/dist/assets/plans-page-CuZeAQhx.js +0 -1
- package/dist/assets/platform-detection-DUeD4WFO.js +0 -1
- package/dist/assets/platform-login-notice-B2ZwcEYp.js +0 -1
- package/dist/assets/platform-loopback-page-CMnaXj8y.js +0 -1
- package/dist/assets/play-D-HSCeZj.js +0 -1
- package/dist/assets/plug-AMxPbUcz.js +0 -1
- package/dist/assets/plugin-detail-page-D9Qk7GmS.js +0 -1
- package/dist/assets/plugins-page-Bm0hcoSf.js +0 -1
- package/dist/assets/plugins-surface-DB7dv9Hu.js +0 -1
- package/dist/assets/plus-rgqTRjE1.js +0 -1
- package/dist/assets/pointer-DktxhCd8.js +0 -1
- package/dist/assets/popover-GOTwOlgQ.js +0 -1
- package/dist/assets/prechat-Cl2-DnE_.js +0 -1
- package/dist/assets/prefs-CAMw44jD.js +0 -1
- package/dist/assets/preload-helper-BewR0kVT.js +0 -1
- package/dist/assets/preview-error-DW-EUl80.js +0 -1
- package/dist/assets/preview-skeleton-CLI9ptyu.js +0 -1
- package/dist/assets/privacy-page-D-a7l0YY.js +0 -1
- package/dist/assets/privacy-screen-CxwxgE4s.js +0 -1
- package/dist/assets/profile-pickers-D8XVv50L.js +0 -1
- package/dist/assets/progress-bar-C9zSzt4m.js +0 -1
- package/dist/assets/provider-callback-page-65a2DK0l.js +0 -1
- package/dist/assets/provider-key-CcPF1Zqp.js +0 -1
- package/dist/assets/provider-signup-page-BC86aF7W.js +0 -1
- package/dist/assets/proxy-CROyCGs8.js +0 -1
- package/dist/assets/public-asset-Dk1mdzbh.js +0 -1
- package/dist/assets/push-registration-D0zDMpTx.js +0 -2
- package/dist/assets/puzzle-PqInNnOi.js +0 -1
- package/dist/assets/queryOptions-DGyQTr3e.js +0 -1
- package/dist/assets/quick-input-page-DAf2lbri.js +0 -1
- package/dist/assets/react-DJZBPgpf.js +0 -1
- package/dist/assets/react-query.gen-C5widOeH.js +0 -1
- package/dist/assets/react-query.gen-C_GLKG7m.js +0 -1
- package/dist/assets/reduced-motion-B-KLzfs_.js +0 -1
- package/dist/assets/refresh-cw-BDh1a2sj.js +0 -1
- package/dist/assets/relative-time-COU7Zqre.js +0 -1
- package/dist/assets/remote-gateway-session-C3H0Oq0r.js +0 -1
- package/dist/assets/remove-from-device-dialog-CXmGFbKk.js +0 -1
- package/dist/assets/repeat-6uW-THNc.js +0 -1
- package/dist/assets/research-facts-gT4POsZw.js +0 -1
- package/dist/assets/research-mock-page-B41v4MzE.js +0 -1
- package/dist/assets/research-onboarding-persistence-Bnn7ljSq.js +0 -1
- package/dist/assets/research-onboarding-route-CbZ14lCf.js +0 -50
- package/dist/assets/research-results-view-BHXLkoKK.js +0 -3
- package/dist/assets/resolved-assistants-store-DEtotxhR.js +0 -1
- package/dist/assets/retire-confirm-dialog-1nxn6f4M.js +0 -1
- package/dist/assets/review-terms-screen-BsDHdmoO.js +0 -1
- package/dist/assets/rotate-ccw-BYcZOtjy.js +0 -1
- package/dist/assets/routes-C6ueuiMd.js +0 -1
- package/dist/assets/routes-Cly3ytK4.js +0 -24
- package/dist/assets/runtime-upgrade-banner-DC63rkQ7.js +0 -2
- package/dist/assets/sandbox-bridge-DSJSIgUC.js +0 -275
- package/dist/assets/schedules-BZzuRuQs.js +0 -1
- package/dist/assets/schedules-DVOFbt86.js +0 -1
- package/dist/assets/schedules-page-CjqAP78z.js +0 -1
- package/dist/assets/schemas-BNPZ_RzM.js +0 -39
- package/dist/assets/sdk.gen-BluU0h_N.js +0 -6
- package/dist/assets/sdk.gen-BuAyyHNm.js +0 -6
- package/dist/assets/sdk.gen-CrcsMCNX.js +0 -1
- package/dist/assets/search-DYHr3LM9.js +0 -1
- package/dist/assets/section-membership-Bma0R_Bn.js +0 -1
- package/dist/assets/security-redirect-page-C3VbbfyM.js +0 -1
- package/dist/assets/select-DmdFZj4l.js +0 -1
- package/dist/assets/select-assistant-screen-CV_3BKEH.js +0 -1
- package/dist/assets/self-hosted-servers-BMPYPayb.js +0 -1
- package/dist/assets/semver-CeGQrxWZ.js +0 -1
- package/dist/assets/send-1mFY4II3.js +0 -1
- package/dist/assets/setting-row-urcByt7n.js +0 -1
- package/dist/assets/settings-BggpKBtA.js +0 -3
- package/dist/assets/settings-C37vdp_B.js +0 -1
- package/dist/assets/settings-DSeJ7uGb.js +0 -3
- package/dist/assets/settings-divider-CYam_4yQ.js +0 -1
- package/dist/assets/settings-layout-CDRF6b06.js +0 -1
- package/dist/assets/settings-navigation-DyFIJJGF.js +0 -1
- package/dist/assets/share-feedback-modal-TnZsiNw9.js +0 -2
- package/dist/assets/shield-OLSnLaN7.js +0 -1
- package/dist/assets/shield-check-BuRfLkGi.js +0 -1
- package/dist/assets/sidebar-tree-Y1RDeJ9E.js +0 -1
- package/dist/assets/signup-page-DRzsOblS.js +0 -1
- package/dist/assets/signup-shell-DH0qR_2b.js +0 -1
- package/dist/assets/site-favicon-DLf2W4xi.js +0 -1
- package/dist/assets/skeleton-BV6nOVEl.js +0 -1
- package/dist/assets/skill-detail-page-3Wiz9A7q.js +0 -2
- package/dist/assets/skill-detail-panel-DbLFuSyn.js +0 -1
- package/dist/assets/skill-icon-D52BIuW4.js +0 -1
- package/dist/assets/skills-DASSBxT-.js +0 -1
- package/dist/assets/skills-page-DhKl7Mti.js +0 -1
- package/dist/assets/sliders-horizontal-BPa-_UE6.js +0 -1
- package/dist/assets/smartphone-P7vq0dcA.js +0 -1
- package/dist/assets/sound-manager-D8p3_c3W.js +0 -1
- package/dist/assets/sounds-page-CWBPL1YA.js +0 -1
- package/dist/assets/sparkles-D6kBPNlr.js +0 -1
- package/dist/assets/square-sQS2OW8v.js +0 -1
- package/dist/assets/src-BKET5Cno.js +0 -293
- package/dist/assets/star-C4JuiUip.js +0 -1
- package/dist/assets/start-screen-OMf-yHG3.js +0 -1
- package/dist/assets/status-badge-pill-MTA2Lfk-.js +0 -1
- package/dist/assets/stt-language-picker-modal-CmeO8yxD.js +0 -1
- package/dist/assets/subagent-detail-panel-CUW2rBET.js +0 -4
- package/dist/assets/subagent-store-BcbcFnS8.js +0 -3
- package/dist/assets/sun-Dtr03Yty.js +0 -1
- package/dist/assets/superpowers-page-CuvXfGPO.js +0 -1
- package/dist/assets/surface-parse-helpers-f-hT9LIR.js +0 -1
- package/dist/assets/swipe-action-reveal-BhA-hrfj.js +0 -1
- package/dist/assets/system-events-page-tEAEdDzA.js +0 -1
- package/dist/assets/system-events-redirect-page-BMSQQBAs.js +0 -1
- package/dist/assets/tag-DAsImP7W.js +0 -1
- package/dist/assets/target-zLlNzjMl.js +0 -1
- package/dist/assets/telegram-setup-wizard-BT6u6vcb.js +0 -1
- package/dist/assets/terminal-Bw8gHw-v.js +0 -1
- package/dist/assets/text-preview-qkra1xEh.js +0 -1
- package/dist/assets/theme-preferences-ysFQ1QCN.js +0 -1
- package/dist/assets/theme-stage-page-DiqUiOmJ.js +0 -1
- package/dist/assets/three-dot-indicator-rcDwZDFG.js +0 -1
- package/dist/assets/threshold-presets-DF7FTTlD.js +0 -1
- package/dist/assets/toast-BKrDuNtu.js +0 -1
- package/dist/assets/toggle-CdhdS_iC.js +0 -1
- package/dist/assets/tool-detail-panel-BR3PsmdK.js +0 -12
- package/dist/assets/transcript-message-body-shared-DWzxxSaD.js +0 -1
- package/dist/assets/trash-2-CVpEwOYZ.js +0 -1
- package/dist/assets/triangle-alert-B6J57Xfo.js +0 -1
- package/dist/assets/trust-rules-api-eZhPplXW.js +0 -1
- package/dist/assets/typed-storage-Bw4gW_Pk.js +0 -1
- package/dist/assets/typography-SdxpXI_m.js +0 -1
- package/dist/assets/upgrade-cancel-page-pljx8YOz.js +0 -1
- package/dist/assets/upgrade-success-page-CJUETwIe.js +0 -1
- package/dist/assets/upload-8ENnMpW_.js +0 -1
- package/dist/assets/usage-redirect-page-DBkOdl41.js +0 -1
- package/dist/assets/use-active-assistant-id-lxYJu99R.js +0 -1
- package/dist/assets/use-app-theme-CaWLhQW_.js +0 -1
- package/dist/assets/use-assistant-avatar-C2TgszRj.js +0 -1
- package/dist/assets/use-assistant-capability-De-35T6E.js +0 -1
- package/dist/assets/use-assistant-identity-details-rXIIiXr1.js +0 -1
- package/dist/assets/use-attachment-preview-BAX_ivri.js +0 -2
- package/dist/assets/use-attachment-squares-rU9s8st8.js +0 -1
- package/dist/assets/use-body-scroll-lock-8ObBdX00.js +0 -1
- package/dist/assets/use-bookmarks-BrjNq3T_.js +0 -1
- package/dist/assets/use-bundled-avatar-components-C6-AuQ2I.js +0 -2
- package/dist/assets/use-bus-subscription-DfxTm1-Q.js +0 -1
- package/dist/assets/use-checkout-dismiss-refresh-CjgC7Pck.js +0 -1
- package/dist/assets/use-command-palette-sections-tRUwMswg.js +0 -1
- package/dist/assets/use-copy-to-clipboard-B4c7SAc-.js +0 -1
- package/dist/assets/use-discord-nudge-BkpFjoOQ.js +0 -1
- package/dist/assets/use-edge-swipe-CCn4_Vm3.js +0 -1
- package/dist/assets/use-edge-swipe-back-xU9GuipH.js +0 -2
- package/dist/assets/use-edit-app-DDA6_WrI.js +0 -1
- package/dist/assets/use-effective-timezone-BfyKw5_H.js +0 -1
- package/dist/assets/use-element-size-CVF6o81H.js +0 -1
- package/dist/assets/use-hotkey-recorder-IMOc7G5D.js +0 -1
- package/dist/assets/use-invite-link-dialog-CvA_-72H.js +0 -1
- package/dist/assets/use-is-mobile-DYVRtRin.js +0 -1
- package/dist/assets/use-is-org-ready-B6oCKWeF.js +0 -1
- package/dist/assets/use-local-file-info-CSgzMBYt.js +0 -1
- package/dist/assets/use-media-query-BMHGif0t.js +0 -1
- package/dist/assets/use-obscure-credits-flag-CWxw1xHq.js +0 -1
- package/dist/assets/use-onboarding-login-CJ6HY3Pk.js +0 -1
- package/dist/assets/use-platform-assistant-id-DwSyMaOn.js +0 -1
- package/dist/assets/use-platform-gate-s29eeyq-.js +0 -1
- package/dist/assets/use-reduced-motion-CVyEdyEe.js +0 -1
- package/dist/assets/use-return-to-short-circuit-Bx5s2Syg.js +0 -1
- package/dist/assets/use-save-twilio-credentials-Zjhi1c0P.js +0 -1
- package/dist/assets/use-side-list-room-BT-2EM5d.js +0 -1
- package/dist/assets/use-skill-actions-BtnAACsE.js +0 -1
- package/dist/assets/use-skill-detail-files-B_E6xY9x.js +0 -1
- package/dist/assets/use-sticky-profiles-DpkWeMmN.js +0 -1
- package/dist/assets/use-stt-language-selection-BWJdaCRu.js +0 -1
- package/dist/assets/use-subagent-card-data-CfuRPesp.js +0 -1
- package/dist/assets/use-supports-bookmarks-Qhc5HpKD.js +0 -1
- package/dist/assets/use-supports-credentials-settings-BD0GXxL7.js +0 -1
- package/dist/assets/use-supports-inference-profiles-DS2ZLoNc.js +0 -1
- package/dist/assets/use-swipe-horizontal-B9YOWcB6.js +0 -1
- package/dist/assets/use-touch-mobile-hfZPfT1P.js +0 -1
- package/dist/assets/use-transcript-message-by-id-DfWH7JRN.js +0 -1
- package/dist/assets/use-transcript-messages-CFkvE46_.js +0 -3
- package/dist/assets/use-truncated-blob-text-DmnckNwK.js +0 -1
- package/dist/assets/use-voice-sample-preview-B8HUywXz.js +0 -1
- package/dist/assets/useInfiniteQuery-Dz6qbDTQ.js +0 -1
- package/dist/assets/useMutation-Cl7cazkm.js +0 -1
- package/dist/assets/useQueries-RuiDsyUH.js +0 -1
- package/dist/assets/useQuery-BtL9k7Sh.js +0 -1
- package/dist/assets/user-DqmJs6-I.js +0 -1
- package/dist/assets/user-plus-Bg01QRAF.js +0 -1
- package/dist/assets/users-DLjK4Ffo.js +0 -1
- package/dist/assets/utils-CAI1IDgW.js +0 -1
- package/dist/assets/viewer-store-CHptQmkY.js +0 -1
- package/dist/assets/voice-input-device-DsSHVzmw.js +0 -1
- package/dist/assets/voice-page-Dgcf5OOp.js +0 -1
- package/dist/assets/voice-providers-note-nJKW4coW.js +0 -1
- package/dist/assets/volume-2-DQKLkySB.js +0 -1
- package/dist/assets/weather-forecast-display-_NYO0wBC.js +0 -1
- package/dist/assets/web-8Dh87AZ1.js +0 -1
- package/dist/assets/web-BAQ66WKm.js +0 -1
- package/dist/assets/web-BFD28UZm.js +0 -1
- package/dist/assets/web-BcIK5wrq.js +0 -1
- package/dist/assets/web-C_sL6qhW.js +0 -1
- package/dist/assets/web-D0e5_5xl.js +0 -1
- package/dist/assets/web-D4Rr20FV.js +0 -1
- package/dist/assets/web-iI5WHtNC.js +0 -1
- package/dist/assets/web-qqG-3jDd.js +0 -1
- package/dist/assets/welcome-screen-DK4_01J3.js +0 -1
- package/dist/assets/widget-snapshot-OH8xHYY2.js +0 -1
- package/dist/assets/workflow-detail-panel-TqYAg0bB.js +0 -1
- package/dist/assets/workflow-kvRB4Mc5.js +0 -1
- package/dist/assets/workflow-status-B_zEZCnR.js +0 -1
- package/dist/assets/workflow-store-DH4q15s9.js +0 -1
- package/dist/assets/workspace-page-Dbwb2RCx.js +0 -1
- package/dist/assets/workspace-path-links-Y-WgBhhL.js +0 -1
- package/dist/assets/workspace-theme-tokens-DmrDqHwx.js +0 -1
- package/dist/assets/workspace-tree-query-DnEMWZ1K.js +0 -1
- package/dist/assets/wrench-ajjC5omI.js +0 -1
- package/dist/assets/x-nhRPd-Mz.js +0 -1
- package/dist/assets/xterm-addon-fit-DIrY4yvs.js +0 -1
- package/dist/assets/zap-Db0KA7N4.js +0 -1
- /package/dist/assets/{account-Cs9SXbU1.js → account-B6zEi6O8.js} +0 -0
- /package/dist/assets/{account-DWeaNEN6.js → account-WSklJ2-s.js} +0 -0
- /package/dist/assets/{app-types-CpnkPGh8.js → app-types-BSxLQFrc.js} +0 -0
- /package/dist/assets/{credential-requests-D74qo-et.js → credential-requests-DQ9WS6Rl.js} +0 -0
- /package/dist/assets/{credential-requests-BsHMMFoG.js → credential-requests-DUwvVpZo.js} +0 -0
- /package/dist/assets/{definitions-BKQ6A5IV.js → definitions-BTBjNf1i.js} +0 -0
- /package/dist/assets/{definitions-Bi8Nex3B.js → definitions-Dz0UVs0Z.js} +0 -0
- /package/dist/assets/{emoji-catalog-data-81v3IYMV.js → emoji-catalog-data-a3DXKyhe.js} +0 -0
- /package/dist/assets/{format-file-size-gDJ7ppQ0.js → format-file-size-BCpFMv3k.js} +0 -0
- /package/dist/assets/{home-C5CVL0Ta.js → home-BWUNWNMl.js} +0 -0
- /package/dist/assets/{home-QpGM3cDE.js → home-DJ6q91Qp.js} +0 -0
- /package/dist/assets/{library-mD_34-zu.js → library-Bu_eLt14.js} +0 -0
- /package/dist/assets/{library-a7r2rPRX.js → library-Diqzwx-J.js} +0 -0
- /package/dist/assets/{link-click-LjKsC7uu.js → link-click-DpfLT-iQ.js} +0 -0
- /package/dist/assets/{logs-DYhiKdQ8.js → logs-Bs19Ze4Q.js} +0 -0
- /package/dist/assets/{logs-CwEMxFk_.js → logs-FJQpRVDW.js} +0 -0
- /package/dist/assets/{machine-sizes-DOMlCbKb.js → machine-sizes-C3ptouhz.js} +0 -0
- /package/dist/assets/{onboarding-step-layout-_Fbi43YU.js → onboarding-step-layout-BlSoa02H.js} +0 -0
- /package/dist/assets/{plugin-attribution-7tkVwdle.js → plugin-attribution-c6x0DrZM.js} +0 -0
- /package/dist/assets/{profile-metadata-BPGeIeNj.js → profile-metadata-Bk4pj7o_.js} +0 -0
- /package/dist/assets/{radio-card-nav-C67JvVkE.js → radio-card-nav-DlRweN3g.js} +0 -0
- /package/dist/assets/{remote-web-Btj-E-og.js → remote-web-9YsnKwue.js} +0 -0
- /package/dist/assets/{remote-web-yAGitwPt.js → remote-web-bapYzahN.js} +0 -0
- /package/dist/assets/{chunk-jRWAZmH_.js → rolldown-runtime-BM3Ffeng.js} +0 -0
- /package/dist/assets/{schedules-K8jULmC8.js → schedules-CYD1CzCP.js} +0 -0
- /package/dist/assets/{schedules-Dd44UKOx.js → schedules-DhwNRBkz.js} +0 -0
- /package/dist/assets/{terminal-CazBoirG.js → terminal-7pMYRiby.js} +0 -0
- /package/dist/assets/{terminal-DP646Xj3.js → terminal-BMbpDjYx.js} +0 -0
- /package/dist/assets/{src-CfUWwwYf.css → vendor-CfUWwwYf.css} +0 -0
- /package/dist/assets/{workspace-Dva7bu2g.js → workspace-BAHtR2RN.js} +0 -0
- /package/dist/assets/{workspace-xgS4oaDo.js → workspace-BnkQd2SU.js} +0 -0
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import{o as e,t}from"./chunk-jRWAZmH_.js";import{t as n}from"./react-DJZBPgpf.js";import{t as r}from"./preload-helper-BewR0kVT.js";import{l as i,s as a,u as o}from"./local-settings-D9SNRv4p.js";var s=typeof __SENTRY_DEBUG__>`u`||__SENTRY_DEBUG__,c=globalThis,l=`10.52.0`;function u(){return d(c),c}function d(e){let t=e.__SENTRY__=e.__SENTRY__||{};return t.version=t.version||`10.52.0`,t[l]=t[`10.52.0`]||{}}function f(e,t,n=c){let r=n.__SENTRY__=n.__SENTRY__||{},i=r[l]=r[`10.52.0`]||{};return i[e]||(i[e]=t())}var p=[`debug`,`info`,`warn`,`error`,`log`,`assert`,`trace`],m=`Sentry Logger `,h={};function g(e){if(!(`console`in c))return e();let t=c.console,n={},r=Object.keys(h);r.forEach(e=>{let r=h[e];n[e]=t[e],t[e]=r});try{return e()}finally{r.forEach(e=>{t[e]=n[e]})}}function ee(){S().enabled=!0}function _(){S().enabled=!1}function v(){return S().enabled}function y(...e){x(`log`,...e)}function b(...e){x(`warn`,...e)}function te(...e){x(`error`,...e)}function x(e,...t){s&&v()&&g(()=>{c.console[e](`${m}[${e}]:`,...t)})}function S(){return s?f(`loggerSettings`,()=>({enabled:!1})):{enabled:!1}}var C={enable:ee,disable:_,isEnabled:v,log:y,warn:b,error:te},w=50,ne=/\(error: (.*)\)/,re=/captureMessage|captureException/;function ie(...e){let t=e.sort((e,t)=>e[0]-t[0]).map(e=>e[1]);return(e,n=0,r=0)=>{let i=[],a=e.split(`
|
|
2
|
-
`);for(let e=n;e<a.length;e++){let n=a[e];n.length>1024&&(n=n.slice(0,1024));let o=ne.test(n)?n.replace(ne,`$1`):n;if(!o.includes(`Error: `)){for(let e of t){let t=e(o);if(t){i.push(t);break}}if(i.length>=w+r)break}}return oe(i.slice(r))}}function ae(e){return Array.isArray(e)?ie(...e):e}function oe(e){if(!e.length)return[];let t=Array.from(e);return/sentryWrapped/.test(se(t).function||``)&&t.pop(),t.reverse(),re.test(se(t).function||``)&&(t.pop(),re.test(se(t).function||``)&&t.pop()),t.slice(0,w).map(e=>({...e,filename:e.filename||se(t).filename,function:e.function||`?`}))}function se(e){return e[e.length-1]||{}}var ce=`<anonymous>`;function le(e){try{return!e||typeof e!=`function`?ce:e.name||ce}catch{return ce}}function ue(e){let t=e.exception;if(t){let e=[];try{return t.values.forEach(t=>{t.stacktrace.frames&&e.push(...t.stacktrace.frames)}),e}catch{return}}}function de(e){return`__v_isVNode`in e&&e.__v_isVNode?`[VueVNode]`:`[VueViewModel]`}var fe=Object.prototype.toString;function pe(e){switch(fe.call(e)){case`[object Error]`:case`[object Exception]`:case`[object DOMException]`:case`[object WebAssembly.Exception]`:return!0;default:return E(e,Error)}}function T(e,t){return fe.call(e)===`[object ${t}]`}function me(e){return T(e,`ErrorEvent`)}function he(e){return T(e,`DOMError`)}function ge(e){return T(e,`DOMException`)}function _e(e){return T(e,`String`)}function ve(e){return typeof e==`object`&&!!e&&`__sentry_template_string__`in e&&`__sentry_template_values__`in e}function ye(e){return e===null||ve(e)||typeof e!=`object`&&typeof e!=`function`}function be(e){return T(e,`Object`)}function xe(e){return typeof Event<`u`&&E(e,Event)}function Se(e){return typeof Element<`u`&&E(e,Element)}function Ce(e){return T(e,`RegExp`)}function we(e){return!!(e?.then&&typeof e.then==`function`)}function Te(e){return be(e)&&`nativeEvent`in e&&`preventDefault`in e&&`stopPropagation`in e}function E(e,t){try{return e instanceof t}catch{return!1}}function Ee(e){return!!(typeof e==`object`&&e&&(e.__isVue||e._isVue||e.__v_isVNode))}function De(e){return typeof Request<`u`&&E(e,Request)}var Oe=c,ke=80;function Ae(e,t={}){if(!e)return`<unknown>`;try{let n=e,r=[],i=0,a=0,o,s=Array.isArray(t)?t:t.keyAttrs,c=!Array.isArray(t)&&t.maxStringLength||ke;for(;n&&i++<5&&(o=je(n,s),!(o===`html`||i>1&&a+r.length*3+o.length>=c));)r.push(o),a+=o.length,n=n.parentNode;return r.reverse().join(` > `)}catch{return`<unknown>`}}function je(e,t){let n=e,r=[];if(!n?.tagName)return``;if(Oe.HTMLElement&&n instanceof HTMLElement&&n.dataset){if(n.dataset.sentryComponent)return n.dataset.sentryComponent;if(n.dataset.sentryElement)return n.dataset.sentryElement}r.push(n.tagName.toLowerCase());let i=t?.length?t.filter(e=>n.getAttribute(e)).map(e=>[e,n.getAttribute(e)]):null;if(i?.length)i.forEach(e=>{r.push(`[${e[0]}="${e[1]}"]`)});else{n.id&&r.push(`#${n.id}`);let e=n.className;if(e&&_e(e)){let t=e.split(/\s+/);for(let e of t)r.push(`.${e}`)}}for(let e of[`aria-label`,`type`,`name`,`title`,`alt`]){let t=n.getAttribute(e);t&&r.push(`[${e}="${t}"]`)}return r.join(``)}function Me(){try{return Oe.document.location.href}catch{return``}}function Ne(e,t=5){if(!Oe.HTMLElement)return null;let n=e;for(let e=0;e<t;e++){if(!n)return null;if(n instanceof HTMLElement){if(n.dataset.sentryComponent)return n.dataset.sentryComponent;if(n.dataset.sentryElement)return n.dataset.sentryElement}n=n.parentNode}return null}function Pe(e,t,n){if(!(t in e))return;let r=e[t];if(typeof r!=`function`)return;let i=n(r);typeof i==`function`&&Fe(i,r);try{e[t]=i}catch{s&&C.log(`Failed to replace method "${t}" in object`,e)}}function D(e,t,n){try{Object.defineProperty(e,t,{value:n,writable:!0,configurable:!0})}catch{s&&C.log(`Failed to add non-enumerable property "${String(t)}" to object`,e)}}function Fe(e,t){try{e.prototype=t.prototype=t.prototype||{},D(e,`__sentry_original__`,t)}catch{}}function Ie(e){return e.__sentry_original__}function Le(e){if(pe(e))return{message:e.message,name:e.name,stack:e.stack,...ze(e)};if(xe(e)){let t={type:e.type,target:Re(e.target),currentTarget:Re(e.currentTarget),...ze(e)};return typeof CustomEvent<`u`&&E(e,CustomEvent)&&(t.detail=e.detail),t}else return e}function Re(e){try{return Se(e)?Ae(e):Object.prototype.toString.call(e)}catch{return`<unknown>`}}function ze(e){return typeof e==`object`&&e?Object.fromEntries(Object.entries(e)):{}}function Be(e){let t=Object.keys(Le(e));return t.sort(),t[0]?t.join(`, `):`[object has no keys]`}var O;function Ve(e){if(O!==void 0)return O?O(e):e();let t=Symbol.for(`__SENTRY_SAFE_RANDOM_ID_WRAPPER__`),n=c;return t in n&&typeof n[t]==`function`?(O=n[t],O(e)):(O=null,e())}function He(){return Ve(()=>Math.random())}function Ue(){return Ve(()=>Date.now())}function We(e,t=0){return typeof e!=`string`||t===0||e.length<=t?e:`${e.slice(0,t)}...`}function Ge(e,t){if(!Array.isArray(e))return``;let n=[];for(let t=0;t<e.length;t++){let r=e[t];try{Ee(r)?n.push(de(r)):n.push(String(r))}catch{n.push(`[value cannot be serialized]`)}}return n.join(t)}function Ke(e,t,n=!1){return _e(e)?Ce(t)?t.test(e):_e(t)?n?e===t:e.includes(t):typeof t==`function`?t(e):!1:!1}function qe(e,t=[],n=!1){return t.some(t=>Ke(e,t,n))}function Je(){let e=c;return e.crypto||e.msCrypto}var Ye;function Xe(){return He()*16}function k(e=Je()){try{if(e?.randomUUID)return Ve(()=>e.randomUUID()).replace(/-/g,``)}catch{}return Ye||=`10000000100040008000100000000000`,Ye.replace(/[018]/g,e=>(e^(Xe()&15)>>e/4).toString(16))}function Ze(e){return e.exception?.values?.[0]}function Qe(e){let{message:t,event_id:n}=e;if(t)return t;let r=Ze(e);return r?r.type&&r.value?`${r.type}: ${r.value}`:r.type||r.value||n||`<unknown>`:n||`<unknown>`}function $e(e,t,n){let r=e.exception=e.exception||{},i=r.values=r.values||[],a=i[0]=i[0]||{};a.value||=t||``,a.type||=n||`Error`}function et(e,t){let n=Ze(e);if(!n)return;let r={type:`generic`,handled:!0},i=n.mechanism;if(n.mechanism={...r,...i,...t},t&&`data`in t){let e={...i?.data,...t.data};n.mechanism.data=e}}function tt(e){if(nt(e))return!0;try{D(e,`__sentry_captured__`,!0)}catch{}return!1}function nt(e){try{return e.__sentry_captured__}catch{}}var rt=1e3;function it(){return Ue()/rt}function at(){let{performance:e}=c;if(!e?.now||!e.timeOrigin)return it;let t=e.timeOrigin;return()=>(t+Ve(()=>e.now()))/rt}var ot;function A(){return(ot??=at())()}function st(e){let t=A(),n={sid:k(),init:!0,timestamp:t,started:t,duration:0,status:`ok`,errors:0,ignoreDuration:!1,toJSON:()=>lt(n)};return e&&j(n,e),n}function j(e,t={}){if(t.user&&(!e.ipAddress&&t.user.ip_address&&(e.ipAddress=t.user.ip_address),!e.did&&!t.did&&(e.did=t.user.id||t.user.email||t.user.username)),e.timestamp=t.timestamp||A(),t.abnormal_mechanism&&(e.abnormal_mechanism=t.abnormal_mechanism),t.ignoreDuration&&(e.ignoreDuration=t.ignoreDuration),t.sid&&(e.sid=t.sid.length===32?t.sid:k()),t.init!==void 0&&(e.init=t.init),!e.did&&t.did&&(e.did=`${t.did}`),typeof t.started==`number`&&(e.started=t.started),e.ignoreDuration)e.duration=void 0;else if(typeof t.duration==`number`)e.duration=t.duration;else{let t=e.timestamp-e.started;e.duration=t>=0?t:0}t.release&&(e.release=t.release),t.environment&&(e.environment=t.environment),!e.ipAddress&&t.ipAddress&&(e.ipAddress=t.ipAddress),!e.userAgent&&t.userAgent&&(e.userAgent=t.userAgent),typeof t.errors==`number`&&(e.errors=t.errors),t.status&&(e.status=t.status)}function ct(e,t){let n={};t?n={status:t}:e.status===`ok`&&(n={status:`exited`}),j(e,n)}function lt(e){return{sid:`${e.sid}`,init:e.init,started:new Date(e.started*1e3).toISOString(),timestamp:new Date(e.timestamp*1e3).toISOString(),status:e.status,errors:e.errors,did:typeof e.did==`number`||typeof e.did==`string`?`${e.did}`:void 0,duration:e.duration,abnormal_mechanism:e.abnormal_mechanism,attrs:{release:e.release,environment:e.environment,ip_address:e.ipAddress,user_agent:e.userAgent}}}function M(e,t,n=2){if(!t||typeof t!=`object`||n<=0)return t;if(e&&Object.keys(t).length===0)return e;let r={...e};for(let e in t)Object.prototype.hasOwnProperty.call(t,e)&&(r[e]=M(r[e],t[e],n-1));return r}function ut(){return k()}function dt(){return k().substring(16)}var ft=`_sentrySpan`;function pt(e,t){t?D(e,ft,t):delete e[ft]}function mt(e){return e[ft]}var ht=100,N=class e{constructor(){this._notifyingListeners=!1,this._scopeListeners=[],this._eventProcessors=[],this._breadcrumbs=[],this._attachments=[],this._user={},this._tags={},this._attributes={},this._extra={},this._contexts={},this._sdkProcessingMetadata={},this._propagationContext={traceId:ut(),sampleRand:He()}}clone(){let t=new e;return t._breadcrumbs=[...this._breadcrumbs],t._tags={...this._tags},t._attributes={...this._attributes},t._extra={...this._extra},t._contexts={...this._contexts},this._contexts.flags&&(t._contexts.flags={values:[...this._contexts.flags.values]}),t._user=this._user,t._level=this._level,t._session=this._session,t._transactionName=this._transactionName,t._fingerprint=this._fingerprint,t._eventProcessors=[...this._eventProcessors],t._attachments=[...this._attachments],t._sdkProcessingMetadata={...this._sdkProcessingMetadata},t._propagationContext={...this._propagationContext},t._client=this._client,t._lastEventId=this._lastEventId,t._conversationId=this._conversationId,pt(t,mt(this)),t}setClient(e){this._client=e}setLastEventId(e){this._lastEventId=e}getClient(){return this._client}lastEventId(){return this._lastEventId}addScopeListener(e){this._scopeListeners.push(e)}addEventProcessor(e){return this._eventProcessors.push(e),this}setUser(e){return this._user=e||{email:void 0,id:void 0,ip_address:void 0,username:void 0},this._session&&j(this._session,{user:e}),this._notifyScopeListeners(),this}getUser(){return this._user}setConversationId(e){return this._conversationId=e||void 0,this._notifyScopeListeners(),this}setTags(e){return this._tags={...this._tags,...e},this._notifyScopeListeners(),this}setTag(e,t){return this.setTags({[e]:t})}setAttributes(e){return this._attributes={...this._attributes,...e},this._notifyScopeListeners(),this}setAttribute(e,t){return this.setAttributes({[e]:t})}removeAttribute(e){return e in this._attributes&&(delete this._attributes[e],this._notifyScopeListeners()),this}setExtras(e){return this._extra={...this._extra,...e},this._notifyScopeListeners(),this}setExtra(e,t){return this._extra={...this._extra,[e]:t},this._notifyScopeListeners(),this}setFingerprint(e){return this._fingerprint=e,this._notifyScopeListeners(),this}setLevel(e){return this._level=e,this._notifyScopeListeners(),this}setTransactionName(e){return this._transactionName=e,this._notifyScopeListeners(),this}setContext(e,t){return t===null?delete this._contexts[e]:this._contexts[e]=t,this._notifyScopeListeners(),this}setSession(e){return e?this._session=e:delete this._session,this._notifyScopeListeners(),this}getSession(){return this._session}update(t){if(!t)return this;let n=typeof t==`function`?t(this):t,{tags:r,attributes:i,extra:a,user:o,contexts:s,level:c,fingerprint:l=[],propagationContext:u,conversationId:d}=(n instanceof e?n.getScopeData():be(n)?t:void 0)||{};return this._tags={...this._tags,...r},this._attributes={...this._attributes,...i},this._extra={...this._extra,...a},this._contexts={...this._contexts,...s},o&&Object.keys(o).length&&(this._user=o),c&&(this._level=c),l.length&&(this._fingerprint=l),u&&(this._propagationContext=u),d&&(this._conversationId=d),this}clear(){return this._breadcrumbs=[],this._tags={},this._attributes={},this._extra={},this._user={},this._contexts={},this._level=void 0,this._transactionName=void 0,this._fingerprint=void 0,this._session=void 0,this._conversationId=void 0,pt(this,void 0),this._attachments=[],this.setPropagationContext({traceId:ut(),sampleRand:He()}),this._notifyScopeListeners(),this}addBreadcrumb(e,t){let n=typeof t==`number`?t:ht;if(n<=0)return this;let r={timestamp:it(),...e,message:e.message?We(e.message,2048):e.message};return this._breadcrumbs.push(r),this._breadcrumbs.length>n&&(this._breadcrumbs=this._breadcrumbs.slice(-n),this._client?.recordDroppedEvent(`buffer_overflow`,`log_item`)),this._notifyScopeListeners(),this}getLastBreadcrumb(){return this._breadcrumbs[this._breadcrumbs.length-1]}clearBreadcrumbs(){return this._breadcrumbs=[],this._notifyScopeListeners(),this}addAttachment(e){return this._attachments.push(e),this}clearAttachments(){return this._attachments=[],this}getScopeData(){return{breadcrumbs:this._breadcrumbs,attachments:this._attachments,contexts:this._contexts,tags:this._tags,attributes:this._attributes,extra:this._extra,user:this._user,level:this._level,fingerprint:this._fingerprint||[],eventProcessors:this._eventProcessors,propagationContext:this._propagationContext,sdkProcessingMetadata:this._sdkProcessingMetadata,transactionName:this._transactionName,span:mt(this),conversationId:this._conversationId}}setSDKProcessingMetadata(e){return this._sdkProcessingMetadata=M(this._sdkProcessingMetadata,e,2),this}setPropagationContext(e){return this._propagationContext=e,this}getPropagationContext(){return this._propagationContext}captureException(e,t){let n=t?.event_id||k();if(!this._client)return s&&C.warn(`No client configured on scope - will not capture exception!`),n;let r=Error(`Sentry syntheticException`);return this._client.captureException(e,{originalException:e,syntheticException:r,...t,event_id:n},this),n}captureMessage(e,t,n){let r=n?.event_id||k();if(!this._client)return s&&C.warn(`No client configured on scope - will not capture message!`),r;let i=n?.syntheticException??Error(e);return this._client.captureMessage(e,t,{originalException:e,syntheticException:i,...n,event_id:r},this),r}captureEvent(e,t){let n=e.event_id||t?.event_id||k();return this._client?(this._client.captureEvent(e,{...t,event_id:n},this),n):(s&&C.warn(`No client configured on scope - will not capture event!`),n)}_notifyScopeListeners(){this._notifyingListeners||=(this._notifyingListeners=!0,this._scopeListeners.forEach(e=>{e(this)}),!1)}};function gt(){return f(`defaultCurrentScope`,()=>new N)}function _t(){return f(`defaultIsolationScope`,()=>new N)}var vt=e=>e instanceof Promise&&!e[yt],yt=Symbol(`chained PromiseLike`),bt=(e,t,n)=>{let r=e.then(e=>(t(e),e),e=>{throw n(e),e});return vt(r)&&vt(e)?r:xt(e,r)},xt=(e,t)=>{if(!t)return e;let n=!1;for(let r in e){if(r in t)continue;n=!0;let i=e[r];typeof i==`function`?Object.defineProperty(t,r,{value:(...t)=>i.apply(e,t),enumerable:!0,configurable:!0,writable:!0}):t[r]=i}return n&&Object.assign(t,{[yt]:!0}),t},St=class{constructor(e,t){let n;n=e||new N;let r;r=t||new N,this._stack=[{scope:n}],this._isolationScope=r}withScope(e){let t=this._pushScope(),n;try{n=e(t)}catch(e){throw this._popScope(),e}return we(n)?bt(n,()=>this._popScope(),()=>this._popScope()):(this._popScope(),n)}getClient(){return this.getStackTop().client}getScope(){return this.getStackTop().scope}getIsolationScope(){return this._isolationScope}getStackTop(){return this._stack[this._stack.length-1]}_pushScope(){let e=this.getScope().clone();return this._stack.push({client:this.getClient(),scope:e}),e}_popScope(){return this._stack.length<=1?!1:!!this._stack.pop()}};function P(){let e=d(u());return e.stack=e.stack||new St(gt(),_t())}function Ct(e){return P().withScope(e)}function wt(e,t){let n=P();return n.withScope(()=>(n.getStackTop().scope=e,t(e)))}function Tt(e){return P().withScope(()=>e(P().getIsolationScope()))}function Et(){return{withIsolationScope:Tt,withScope:Ct,withSetScope:wt,withSetIsolationScope:(e,t)=>Tt(t),getCurrentScope:()=>P().getScope(),getIsolationScope:()=>P().getIsolationScope()}}function Dt(e){let t=d(e);return t.acs?t.acs:Et()}var Ot;function kt(){return Ot?.()}function F(){return Dt(u()).getCurrentScope()}function I(){return Dt(u()).getIsolationScope()}function At(){return f(`globalScope`,()=>new N)}function jt(...e){let t=Dt(u());if(e.length===2){let[n,r]=e;return n?t.withSetScope(n,r):t.withScope(r)}return t.withScope(e[0])}function L(){return F().getClient()}function Mt(e){let t=kt();if(t)return{trace_id:t.traceId,span_id:t.spanId};let{traceId:n,parentSpanId:r,propagationSpanId:i}=e.getPropagationContext(),a={trace_id:n,span_id:i||dt()};return r&&(a.parent_span_id=r),a}var Nt=`sentry.source`,Pt=`sentry.sample_rate`,Ft=`sentry.op`,It=`sentry.origin`,Lt=`sentry.measurement_unit`,Rt=`sentry.measurement_value`,zt=`sentry.custom_span_name`,Bt=`sentry.profile_id`,Vt=`sentry.exclusive_time`,Ht=`gen_ai.conversation.id`;function Ut(e){try{let t=c.WeakRef;if(typeof t==`function`)return new t(e)}catch{}return e}function Wt(e){if(e){if(typeof e==`object`&&`deref`in e&&typeof e.deref==`function`)try{return e.deref()}catch{return}return e}}var Gt=`_sentryScope`,Kt=`_sentryIsolationScope`;function qt(e,t,n){e&&(D(e,Kt,Ut(n)),D(e,Gt,t))}function Jt(e){let t=e;return{scope:t[Gt],isolationScope:Wt(t[Kt])}}function Yt(e){let t=Xt(e);if(!t)return;let n=Object.entries(t).reduce((e,[t,n])=>{if(t.startsWith(`sentry-`)){let r=t.slice(7);e[r]=n}return e},{});if(Object.keys(n).length>0)return n}function Xt(e){if(!(!e||!_e(e)&&!Array.isArray(e)))return Array.isArray(e)?e.reduce((e,t)=>{let n=Zt(t);return Object.entries(n).forEach(([t,n])=>{e[t]=n}),e},{}):Zt(e)}function Zt(e){return e.split(`,`).map(e=>{let t=e.indexOf(`=`);return t===-1?[]:[e.slice(0,t),e.slice(t+1)].map(e=>{try{return decodeURIComponent(e.trim())}catch{return}})}).reduce((e,[t,n])=>(t&&n&&(e[t]=n),e),{})}var Qt=/^o(\d+)\./,$t=/^(?:(\w+):)\/\/(?:(\w+)(?::(\w+)?)?@)((?:\[[:.%\w]+\]|[\w.-]+))(?::(\d+))?\/(.+)/;function en(e){return e===`http`||e===`https`}function tn(e,t=!1){let{host:n,path:r,pass:i,port:a,projectId:o,protocol:s,publicKey:c}=e;return`${s}://${c}${t&&i?`:${i}`:``}@${n}${a?`:${a}`:``}/${r&&`${r}/`}${o}`}function nn(e){let t=$t.exec(e);if(!t){g(()=>{console.error(`Invalid Sentry Dsn: ${e}`)});return}let[n,r,i=``,a=``,o=``,s=``]=t.slice(1),c=``,l=s,u=l.split(`/`);if(u.length>1&&(c=u.slice(0,-1).join(`/`),l=u.pop()),l){let e=l.match(/^\d+/);e&&(l=e[0])}return rn({host:a,pass:i,path:c,projectId:l,port:o,protocol:n,publicKey:r})}function rn(e){return{protocol:e.protocol,publicKey:e.publicKey||``,pass:e.pass||``,host:e.host,port:e.port||``,path:e.path||``,projectId:e.projectId}}function an(e){if(!s)return!0;let{port:t,projectId:n,protocol:r}=e;return[`protocol`,`publicKey`,`host`,`projectId`].find(t=>e[t]?!1:(C.error(`Invalid Sentry Dsn: ${t} missing`),!0))?!1:n.match(/^\d+$/)?en(r)?t&&isNaN(parseInt(t,10))?(C.error(`Invalid Sentry Dsn: Invalid port ${t}`),!1):!0:(C.error(`Invalid Sentry Dsn: Invalid protocol ${r}`),!1):(C.error(`Invalid Sentry Dsn: Invalid projectId ${n}`),!1)}function on(e){return e.match(Qt)?.[1]}function sn(e){let t=e.getOptions(),{host:n}=e.getDsn()||{},r;return t.orgId?r=String(t.orgId):n&&(r=on(n)),r}function cn(e){let t=typeof e==`string`?nn(e):rn(e);if(!(!t||!an(t)))return t}function ln(e){if(typeof e==`boolean`)return Number(e);let t=typeof e==`string`?parseFloat(e):e;if(!(typeof t!=`number`||isNaN(t)||t<0||t>1))return t}var un=!1;function dn(e){let{spanId:t,traceId:n}=e.spanContext(),{data:r,op:i,parent_span_id:a,status:o,origin:s,links:c}=z(e);return{parent_span_id:a,span_id:t,trace_id:n,data:r,op:i,status:o,origin:s,links:c}}function fn(e){let{spanId:t,traceId:n,isRemote:r}=e.spanContext(),i=r?t:z(e).parent_span_id,a=Jt(e).scope;return{parent_span_id:i,span_id:r?a?.getPropagationContext().propagationSpanId||dt():t,trace_id:n}}function pn(e){if(e&&e.length>0)return e.map(({context:{spanId:e,traceId:t,traceFlags:n,...r},attributes:i})=>({span_id:e,trace_id:t,sampled:n===1,attributes:i,...r}))}function mn(e){if(e?.length)return e.map(({context:{spanId:e,traceId:t,traceFlags:n},attributes:r})=>({span_id:e,trace_id:t,sampled:n===1,attributes:r}))}function R(e){return typeof e==`number`?hn(e):Array.isArray(e)?e[0]+e[1]/1e9:e instanceof Date?hn(e.getTime()):A()}function hn(e){return e>9999999999?e/1e3:e}function z(e){if(vn(e))return e.getSpanJSON();let{spanId:t,traceId:n}=e.spanContext();if(_n(e)){let{attributes:r,startTime:i,name:a,endTime:o,status:s,links:c}=e;return{span_id:t,trace_id:n,data:r,description:a,parent_span_id:gn(e),start_timestamp:R(i),timestamp:R(o)||void 0,status:bn(s),op:r[Ft],origin:r[It],links:pn(c)}}return{span_id:t,trace_id:n,start_timestamp:0,data:{}}}function gn(e){return`parentSpanId`in e?e.parentSpanId:`parentSpanContext`in e?e.parentSpanContext?.spanId:void 0}function _n(e){let t=e;return!!t.attributes&&!!t.startTime&&!!t.name&&!!t.endTime&&!!t.status}function vn(e){return typeof e.getSpanJSON==`function`}function yn(e){let{traceFlags:t}=e.spanContext();return t===1}function bn(e){if(!(!e||e.code===0))return e.code===1?`ok`:e.message||`internal_error`}function xn(e){return!e||e.code===1||e.code===0||e.message===`cancelled`?`ok`:`error`}var Sn=`_sentryChildSpans`,Cn=`_sentryRootSpan`;function wn(e,t){D(t,Cn,e[Cn]||e),e[Sn]?e[Sn].add(t):D(e,Sn,new Set([t]))}function Tn(e){let t=new Set;function n(e){if(!t.has(e)&&yn(e)){t.add(e);let r=e[Sn]?Array.from(e[Sn]):[];for(let e of r)n(e)}}return n(e),Array.from(t)}var B=En;function En(e){return e[Cn]||e}function Dn(){un||=(g(()=>{console.warn("[Sentry] Returning null from `beforeSendSpan` is disallowed. To drop certain spans, configure the respective integrations directly or use `ignoreSpans`.")}),!0)}function On(e){if(typeof __SENTRY_TRACING__==`boolean`&&!__SENTRY_TRACING__)return!1;let t=e||L()?.getOptions();return!!t&&(t.tracesSampleRate!=null||!!t.tracesSampler)}function kn(e){C.log(`Ignoring span ${e.op} - ${e.description} because it matches \`ignoreSpans\`.`)}function An(e,t){if(!t?.length)return!1;for(let n of t){if(Nn(n)){if(e.description&&Ke(e.description,n))return s&&kn(e),!0;continue}let t=!!n.attributes&&Object.keys(n.attributes).length>0;if(!n.name&&!n.op&&!t)continue;let r=n.name?e.description&&Ke(e.description,n.name):!0,i=n.op?e.op&&Ke(e.op,n.op):!0,a=n.attributes?Object.entries(n.attributes).every(([t,n])=>jn(e.attributes?.[t],n)):!0;if(r&&i&&a)return s&&kn(e),!0}return!1}function jn(e,t){return typeof e==`string`&&(typeof t==`string`||t instanceof RegExp)?Ke(e,t):Array.isArray(e)&&Array.isArray(t)?e.length===t.length&&e.every((e,n)=>e===t[n]):e===t}function Mn(e,t){let n=t.parent_span_id,r=t.span_id;if(n)for(let t of e)t.parent_span_id===r&&(t.parent_span_id=n)}function Nn(e){return typeof e==`string`||e instanceof RegExp}var Pn=`production`,Fn=`_frozenDsc`;function In(e,t){D(e,Fn,t)}function Ln(e,t){let n=t.getOptions(),{publicKey:r}=t.getDsn()||{},i={environment:n.environment||`production`,release:n.release,public_key:r,trace_id:e,org_id:sn(t)};return t.emit(`createDsc`,i),i}function Rn(e,t){let n=t.getPropagationContext();return n.dsc||Ln(n.traceId,e)}function zn(e){let t=L();if(!t)return{};let n=B(e),r=z(n),i=r.data,a=n.spanContext().traceState,o=a?.get(`sentry.sample_rate`)??i[`sentry.sample_rate`]??i[`sentry.previous_trace_sample_rate`];function s(e){return(typeof o==`number`||typeof o==`string`)&&(e.sample_rate=`${o}`),e}let c=n[Fn];if(c)return s(c);let l=a?.get(`sentry.dsc`),u=l&&Yt(l);if(u)return s(u);let d=Ln(e.spanContext().traceId,t),f=i[`sentry.source`]??i[`sentry.span.source`],p=r.description;return f!==`url`&&p&&(d.transaction=p),On()&&(d.sampled=String(yn(n)),d.sample_rand=a?.get(`sentry.sample_rand`)??Jt(n).scope?.getPropagationContext().sampleRand.toString()),s(d),t.emit(`createDsc`,d,n),d}var V=class{constructor(e={}){this._traceId=e.traceId||ut(),this._spanId=e.spanId||dt(),this.dropReason=e.dropReason}spanContext(){return{spanId:this._spanId,traceId:this._traceId,traceFlags:0}}end(e){}setAttribute(e,t){return this}setAttributes(e){return this}setStatus(e){return this}updateName(e){return this}isRecording(){return!1}addEvent(e,t,n){return this}addLink(e){return this}addLinks(e){return this}recordException(e,t){}};function Bn(e){return!!e&&typeof e==`function`&&`_streamed`in e&&!!e._streamed}var Vn=Symbol.for(`sentry.skipNormalization`),Hn=Symbol.for(`sentry.overrideNormalizationDepth`);function Un(e){return!!e[Vn]}function Wn(e){let t=e[Hn];return typeof t==`number`?t:void 0}function H(e,t=100,n=1/0){try{return Kn(``,e,t,n)}catch(e){return{ERROR:`**non-serializable** (${e})`}}}function Gn(e,t=3,n=100*1024){let r=H(e,t);return Xn(r)>n?Gn(e,t-1,n):r}function Kn(e,t,n=1/0,r=1/0,i=Zn()){let[a,o]=i;if(t==null||[`boolean`,`string`].includes(typeof t)||typeof t==`number`&&Number.isFinite(t))return t;let s=qn(e,t);if(!s.startsWith(`[object `))return s;if(Un(t))return t;let c=Wn(t),l=c===void 0?n:c;if(l===0)return s.replace(`object `,``);if(a(t))return`[Circular ~]`;let u=t;if(u&&typeof u.toJSON==`function`)try{return Kn(``,u.toJSON(),l-1,r,i)}catch{}let d=Array.isArray(t)?[]:{},f=0,p=Le(t);for(let e in p){if(!Object.prototype.hasOwnProperty.call(p,e))continue;if(f>=r){d[e]=`[MaxProperties ~]`;break}let t=p[e];d[e]=Kn(e,t,l-1,r,i),f++}return o(t),d}function qn(e,t){try{if(e===`domain`&&t&&typeof t==`object`&&t._events)return`[Domain]`;if(e===`domainEmitter`)return`[DomainEmitter]`;if(typeof global<`u`&&t===global)return`[Global]`;if(typeof window<`u`&&t===window)return`[Window]`;if(typeof document<`u`&&t===document)return`[Document]`;if(Ee(t))return de(t);if(Te(t))return`[SyntheticEvent]`;if(typeof t==`number`&&!Number.isFinite(t))return`[${t}]`;if(typeof t==`function`)return`[Function: ${le(t)}]`;if(typeof t==`symbol`)return`[${String(t)}]`;if(typeof t==`bigint`)return`[BigInt: ${String(t)}]`;let n=Jn(t);return/^HTML(\w*)Element$/.test(n)?`[HTMLElement: ${n}]`:`[object ${n}]`}catch(e){return`**non-serializable** (${e})`}}function Jn(e){let t=Object.getPrototypeOf(e);return t?.constructor?t.constructor.name:`null prototype`}function Yn(e){return~-encodeURI(e).split(/%..|./).length}function Xn(e){return Yn(JSON.stringify(e))}function Zn(){let e=new WeakSet;function t(t){return e.has(t)?!0:(e.add(t),!1)}function n(t){e.delete(t)}return[t,n]}function Qn(e,t=[]){return[e,t]}function $n(e,t){let[n,r]=e;return[n,[...r,t]]}function er(e,t){let n=e[1];for(let e of n){let n=e[0].type;if(t(e,n))return!0}return!1}function tr(e,t){return er(e,(e,n)=>t.includes(n))}function nr(e){let t=d(c);return t.encodePolyfill?t.encodePolyfill(e):new TextEncoder().encode(e)}function rr(e){let[t,n]=e,r=JSON.stringify(t);function i(e){typeof r==`string`?r=typeof e==`string`?r+e:[nr(r),e]:r.push(typeof e==`string`?nr(e):e)}for(let e of n){let[t,n]=e;if(i(`\n${JSON.stringify(t)}\n`),typeof n==`string`||n instanceof Uint8Array)i(n);else{let e;try{e=JSON.stringify(n)}catch{e=JSON.stringify(H(n))}i(e)}}return typeof r==`string`?r:ir(r)}function ir(e){let t=e.reduce((e,t)=>e+t.length,0),n=new Uint8Array(t),r=0;for(let t of e)n.set(t,r),r+=t.length;return n}function ar(e){return[{type:`span`},e]}function or(e){let t=typeof e.data==`string`?nr(e.data):e.data;return[{type:`attachment`,length:t.length,filename:e.filename,content_type:e.contentType,attachment_type:e.attachmentType},t]}var sr={sessions:`session`,event:`error`,client_report:`internal`,user_report:`default`,profile_chunk:`profile`,replay_event:`replay`,replay_recording:`replay`,check_in:`monitor`,raw_security:`security`,log:`log_item`,trace_metric:`metric`};function cr(e){return e in sr}function lr(e){return cr(e)?sr[e]:e}function ur(e){if(!e?.sdk)return;let{name:t,version:n}=e.sdk;return{name:t,version:n}}function dr(e,t,n,r){let i=e.sdkProcessingMetadata?.dynamicSamplingContext;return{event_id:e.event_id,sent_at:new Date().toISOString(),...t&&{sdk:t},...!!n&&r&&{dsn:tn(r)},...i&&{trace:i}}}function fr(e,t){if(!t)return e;let n=e.sdk||{};return e.sdk={...n,name:n.name||t.name,version:n.version||t.version,integrations:[...e.sdk?.integrations||[],...t.integrations||[]],packages:[...e.sdk?.packages||[],...t.packages||[]],settings:e.sdk?.settings||t.settings?{...e.sdk?.settings,...t.settings}:void 0},e}function pr(e,t,n,r){let i=ur(n);return Qn({sent_at:new Date().toISOString(),...i&&{sdk:i},...!!r&&t&&{dsn:tn(t)}},[`aggregates`in e?[{type:`sessions`},e]:[{type:`session`},e.toJSON()]])}function mr(e,t,n,r){let i=ur(n),a=e.type&&e.type!==`replay_event`?e.type:`event`;fr(e,n?.sdk);let o=dr(e,i,r,t);return delete e.sdkProcessingMetadata,Qn(o,[[{type:a},e]])}function hr(e,t){function n(e){return!!e.trace_id&&!!e.public_key}let r=zn(e[0]),i=t?.getDsn(),a=t?.getOptions().tunnel,o={sent_at:new Date().toISOString(),...n(r)&&{trace:r},...!!a&&i&&{dsn:tn(i)}},{beforeSendSpan:s,ignoreSpans:c}=t?.getOptions()||{},l=c?.length?e.filter(e=>{let t=z(e);return!An({description:t.description,op:t.op,attributes:t.data},c)}):e,u=e.length-l.length;u&&t?.recordDroppedEvent(`before_send`,`span`,u);let d=s?e=>{let t=z(e);return(Bn(s)?t:s(t))||(Dn(),t)}:z,f=[];for(let e of l){let t=d(e);t&&f.push(ar(t))}return Qn(o,f)}function gr(e){if(!s)return;let{description:t=`< unknown name >`,op:n=`< unknown op >`,parent_span_id:r}=z(e),{spanId:i}=e.spanContext(),a=yn(e),o=B(e),c=o===e,l=`[Tracing] Starting ${a?`sampled`:`unsampled`} ${c?`root `:``}span`,u=[`op: ${n}`,`name: ${t}`,`ID: ${i}`];if(r&&u.push(`parent ID: ${r}`),!c){let{op:e,description:t}=z(o);u.push(`root ID: ${o.spanContext().spanId}`),e&&u.push(`root op: ${e}`),t&&u.push(`root description: ${t}`)}C.log(`${l}
|
|
3
|
-
${u.join(`
|
|
4
|
-
`)}`)}function _r(e){if(!s)return;let{description:t=`< unknown name >`,op:n=`< unknown op >`}=z(e),{spanId:r}=e.spanContext(),i=`[Tracing] Finishing "${n}" ${B(e)===e?`root `:``}span "${t}" with ID ${r}`;C.log(i)}function vr(e){if(!e||e.length===0)return;let t={};return e.forEach(e=>{let n=e.attributes||{},r=n[Lt],i=n[Rt];typeof r==`string`&&typeof i==`number`&&(t[e.name]={value:i,unit:r})}),t}function yr(e){return e.getOptions().traceLifecycle===`stream`}var br=1e3,xr=class{constructor(e={}){this._traceId=e.traceId||ut(),this._spanId=e.spanId||dt(),this._startTime=e.startTimestamp||A(),this._links=e.links,this._attributes={},this.setAttributes({[It]:`manual`,[Ft]:e.op,...e.attributes}),this._name=e.name,e.parentSpanId&&(this._parentSpanId=e.parentSpanId),`sampled`in e&&(this._sampled=e.sampled),e.endTimestamp&&(this._endTime=e.endTimestamp),this._events=[],this._isStandaloneSpan=e.isStandalone,this._endTime&&this._onSpanEnded()}addLink(e){return this._links?this._links.push(e):this._links=[e],this}addLinks(e){return this._links?this._links.push(...e):this._links=e,this}recordException(e,t){}spanContext(){let{_spanId:e,_traceId:t,_sampled:n}=this;return{spanId:e,traceId:t,traceFlags:+!!n}}setAttribute(e,t){return t===void 0?delete this._attributes[e]:this._attributes[e]=t,this}setAttributes(e){return Object.keys(e).forEach(t=>this.setAttribute(t,e[t])),this}updateStartTime(e){this._startTime=R(e)}setStatus(e){return this._status=e,this}updateName(e){return this._name=e,this.setAttribute(Nt,`custom`),this}end(e){this._endTime||(this._endTime=R(e),_r(this),this._onSpanEnded())}getSpanJSON(){return{data:this._attributes,description:this._name,op:this._attributes[Ft],parent_span_id:this._parentSpanId,span_id:this._spanId,start_timestamp:this._startTime,status:bn(this._status),timestamp:this._endTime,trace_id:this._traceId,origin:this._attributes[It],profile_id:this._attributes[Bt],exclusive_time:this._attributes[Vt],measurements:vr(this._events),is_segment:this._isStandaloneSpan&&B(this)===this||void 0,segment_id:this._isStandaloneSpan?B(this).spanContext().spanId:void 0,links:pn(this._links)}}getStreamedSpanJSON(){return{name:this._name??``,span_id:this._spanId,trace_id:this._traceId,parent_span_id:this._parentSpanId,start_timestamp:this._startTime,end_timestamp:this._endTime??this._startTime,is_segment:this._isStandaloneSpan||this===B(this),status:xn(this._status),attributes:this._attributes,links:mn(this._links)}}isRecording(){return!this._endTime&&!!this._sampled}addEvent(e,t,n){s&&C.log(`[Tracing] Adding an event to span:`,e);let r=Sr(t)?t:n||A(),i=Sr(t)?{}:t||{},a={name:e,time:R(r),attributes:i};return this._events.push(a),this}isStandaloneSpan(){return!!this._isStandaloneSpan}_onSpanEnded(){let e=L();if(e&&(e.emit(`spanEnd`,this),this._isStandaloneSpan||e.emit(`afterSpanEnd`,this)),!(this._isStandaloneSpan||this===B(this)))return;if(this._isStandaloneSpan){this._sampled?Tr(hr([this],e)):(s&&C.log(`[Tracing] Discarding standalone span because its trace was not chosen to be sampled.`),e&&e.recordDroppedEvent(`sample_rate`,`span`));return}else if(e&&yr(e)){e.emit(`afterSegmentSpanEnd`,this);return}let t=this._convertSpanToTransaction();t&&(Jt(this).scope||F()).captureEvent(t)}_convertSpanToTransaction(){if(!Cr(z(this)))return;this._name||=(s&&C.warn("Transaction has no name, falling back to `<unlabeled transaction>`."),`<unlabeled transaction>`);let{scope:e,isolationScope:t}=Jt(this),n=e?.getScopeData().sdkProcessingMetadata?.normalizedRequest;if(this._sampled!==!0)return;let r=Tn(this).filter(e=>e!==this&&!wr(e)).map(e=>z(e)).filter(Cr),i=this._attributes[Nt];delete this._attributes[zt],r.forEach(e=>{delete e.data[zt]});let a={contexts:{trace:dn(this)},spans:r.length>br?r.sort((e,t)=>e.start_timestamp-t.start_timestamp).slice(0,br):r,start_timestamp:this._startTime,timestamp:this._endTime,transaction:this._name,type:`transaction`,sdkProcessingMetadata:{capturedSpanScope:e,capturedSpanIsolationScope:t,dynamicSamplingContext:zn(this)},request:n,...i&&{transaction_info:{source:i}}},o=vr(this._events);return o&&Object.keys(o).length&&(s&&C.log(`[Measurements] Adding measurements to transaction event`,JSON.stringify(o,void 0,2)),a.measurements=o),a}};function Sr(e){return e&&typeof e==`number`||e instanceof Date||Array.isArray(e)}function Cr(e){return!!e.start_timestamp&&!!e.timestamp&&!!e.span_id&&!!e.trace_id}function wr(e){return e instanceof xr&&e.isStandaloneSpan()}function Tr(e){let t=L();if(!t)return;let n=e[1];if(!n||n.length===0){t.recordDroppedEvent(`before_send`,`span`);return}t.sendEnvelope(e)}function Er(e,t,n){if(!On(e))return[!1];let r,i;typeof e.tracesSampler==`function`?(i=e.tracesSampler({...t,inheritOrSampleWith:e=>typeof t.parentSampleRate==`number`?t.parentSampleRate:typeof t.parentSampled==`boolean`?Number(t.parentSampled):e}),r=!0):t.parentSampled===void 0?e.tracesSampleRate!==void 0&&(i=e.tracesSampleRate,r=!0):i=t.parentSampled;let a=ln(i);if(a===void 0)return s&&C.warn(`[Tracing] Discarding root span because of invalid sample rate. Sample rate must be a boolean or a number between 0 and 1. Got ${JSON.stringify(i)} of type ${JSON.stringify(typeof i)}.`),[!1];if(!a)return s&&C.log(`[Tracing] Discarding transaction because ${typeof e.tracesSampler==`function`?`tracesSampler returned 0 or false`:`a negative sampling decision was inherited or tracesSampleRate is set to 0`}`),[!1,a,r];let o=n<a;return o||s&&C.log(`[Tracing] Discarding transaction because it's not included in the random sample (sampling rate = ${Number(i)})`),[o,a,r]}var Dr=`__SENTRY_SUPPRESS_TRACING__`;function Or(e){let t=Mr();if(t.startInactiveSpan)return t.startInactiveSpan(e);let n=jr(e),{forceTransaction:r,parentSpan:i}=e;return(e.scope?t=>jt(e.scope,t):i===void 0?e=>e():e=>kr(i,e))(()=>{let t=F(),a=Fr(t,i),o=L();return e.onlyIfParent&&!a?(o?.recordDroppedEvent(`no_parent_span`,`span`),new V):Ar({parentSpan:a,spanArguments:n,forceTransaction:r,scope:t})})}function kr(e,t){let n=Mr();return n.withActiveSpan?n.withActiveSpan(e,t):jt(n=>(pt(n,e||void 0),t(n)))}function Ar({parentSpan:e,spanArguments:t,forceTransaction:n,scope:r}){if(!On()){let r=new V;return(n||!e)&&In(r,{sampled:`false`,sample_rate:`0`,transaction:t.name,...zn(r)}),r}let i=L();if(Ir(i,t))return Lr(r)||i?.recordDroppedEvent(`ignored`,`span`),new V({dropReason:`ignored`,traceId:e?.spanContext().traceId??r.getPropagationContext().traceId});let a=I(),o;if(e&&!n)o=Pr(e,r,t),wn(e,o);else if(e){let n=zn(e),{traceId:i,spanId:a}=e.spanContext(),s=yn(e);o=Nr({traceId:i,parentSpanId:a,...t},r,s),In(o,n)}else{let{traceId:e,dsc:n,parentSpanId:i,sampled:s}={...a.getPropagationContext(),...r.getPropagationContext()};o=Nr({traceId:e,parentSpanId:i,...t},r,s),n&&In(o,n)}return gr(o),qt(o,r,a),o}function jr(e){let t={isStandalone:(e.experimental||{}).standalone,...e};if(e.startTime){let n={...t};return n.startTimestamp=R(e.startTime),delete n.startTime,n}return t}function Mr(){return Dt(u())}function Nr(e,t,n){let r=L(),i=r?.getOptions()||{},{name:a=``}=e,o={spanAttributes:{...e.attributes},spanName:a,parentSampled:n};r?.emit(`beforeSampling`,o,{decision:!1});let c=o.parentSampled??n,l=o.spanAttributes,u=t.getPropagationContext(),d=Lr(t),[f,p,m]=d?[!1]:Er(i,{name:a,parentSampled:c,attributes:l,parentSampleRate:ln(u.dsc?.sample_rate)},u.sampleRand),h=new xr({...e,attributes:{[Nt]:`custom`,[Pt]:p!==void 0&&m?p:void 0,...l},sampled:f});return!f&&r&&!d&&(s&&C.log(`[Tracing] Discarding root span because its trace was not chosen to be sampled.`),r.recordDroppedEvent(`sample_rate`,yr(r)?`span`:`transaction`)),r&&r.emit(`spanStart`,h),h}function Pr(e,t,n){let{spanId:r,traceId:i}=e.spanContext(),a=Lr(t),o=a?!1:yn(e),s=o?new xr({...n,parentSpanId:r,traceId:i,sampled:o}):new V({traceId:i});wn(e,s);let c=L();return c?(yr(c)&&s instanceof V&&(e instanceof V&&e.dropReason?(s.dropReason=e.dropReason,c.recordDroppedEvent(e.dropReason,`span`)):a||(s.dropReason=`sample_rate`,c.recordDroppedEvent(`sample_rate`,`span`))),c.emit(`spanStart`,s),n.endTimestamp&&(c.emit(`spanEnd`,s),c.emit(`afterSpanEnd`,s)),s):s}function Fr(e,t){if(t)return t;if(t===null)return;let n=mt(e);if(!n)return;let r=L();return(r?r.getOptions():{}).parentSpanIsAlwaysRootSpan?B(n):n}function Ir(e,t){let n=e?.getOptions().ignoreSpans;return!e||!yr(e)||!n?.length?!1:An({description:t.name||``,op:t.attributes?.[`sentry.op`]||t.op,attributes:t.attributes},n)}function Lr(e){return e.getScopeData().sdkProcessingMetadata[Dr]===!0}function Rr(e,t){let{fingerprint:n,span:r,breadcrumbs:i,sdkProcessingMetadata:a}=t;Hr(e,t),r&&Gr(e,r),Kr(e,n),Ur(e,i),Wr(e,a)}function zr(e,t){let{extra:n,tags:r,attributes:i,user:a,contexts:o,level:s,sdkProcessingMetadata:c,breadcrumbs:l,fingerprint:u,eventProcessors:d,attachments:f,propagationContext:p,transactionName:m,span:h}=t;Br(e,`extra`,n),Br(e,`tags`,r),Br(e,`attributes`,i),Br(e,`user`,a),Br(e,`contexts`,o),e.sdkProcessingMetadata=M(e.sdkProcessingMetadata,c,2),s&&(e.level=s),m&&(e.transactionName=m),h&&(e.span=h),l.length&&(e.breadcrumbs=[...e.breadcrumbs,...l]),u.length&&(e.fingerprint=[...e.fingerprint,...u]),d.length&&(e.eventProcessors=[...e.eventProcessors,...d]),f.length&&(e.attachments=[...e.attachments,...f]),e.propagationContext={...e.propagationContext,...p}}function Br(e,t,n){e[t]=M(e[t],n,1)}function Vr(e,t){let n=At().getScopeData();return e&&zr(n,e.getScopeData()),t&&zr(n,t.getScopeData()),n}function Hr(e,t){let{extra:n,tags:r,user:i,contexts:a,level:o,transactionName:s}=t;Object.keys(n).length&&(e.extra={...n,...e.extra}),Object.keys(r).length&&(e.tags={...r,...e.tags}),Object.keys(i).length&&(e.user={...i,...e.user}),Object.keys(a).length&&(e.contexts={...a,...e.contexts}),o&&(e.level=o),s&&e.type!==`transaction`&&(e.transaction=s)}function Ur(e,t){let n=[...e.breadcrumbs||[],...t];e.breadcrumbs=n.length?n:void 0}function Wr(e,t){e.sdkProcessingMetadata={...e.sdkProcessingMetadata,...t}}function Gr(e,t){e.contexts={trace:fn(t),...e.contexts},e.sdkProcessingMetadata={dynamicSamplingContext:zn(t),...e.sdkProcessingMetadata};let n=z(B(t)).description;n&&!e.transaction&&e.type===`transaction`&&(e.transaction=n)}function Kr(e,t){e.fingerprint=e.fingerprint?Array.isArray(e.fingerprint)?e.fingerprint:[e.fingerprint]:[],t&&(e.fingerprint=e.fingerprint.concat(t)),e.fingerprint.length||delete e.fingerprint}var qr=0,Jr=1,Yr=2;function Xr(e){return new Qr(t=>{t(e)})}function Zr(e){return new Qr((t,n)=>{n(e)})}var Qr=class e{constructor(e){this._state=qr,this._handlers=[],this._runExecutor(e)}then(t,n){return new e((e,r)=>{this._handlers.push([!1,n=>{if(!t)e(n);else try{e(t(n))}catch(e){r(e)}},t=>{if(!n)r(t);else try{e(n(t))}catch(e){r(e)}}]),this._executeHandlers()})}catch(e){return this.then(e=>e,e)}finally(t){return new e((e,n)=>{let r,i;return this.then(e=>{i=!1,r=e,t&&t()},e=>{i=!0,r=e,t&&t()}).then(()=>{if(i){n(r);return}e(r)})})}_executeHandlers(){if(this._state===qr)return;let e=this._handlers.slice();this._handlers=[],e.forEach(e=>{e[0]||=(this._state===Jr&&e[1](this._value),this._state===Yr&&e[2](this._value),!0)})}_runExecutor(e){let t=(e,t)=>{if(this._state===qr){if(we(t)){t.then(n,r);return}this._state=e,this._value=t,this._executeHandlers()}},n=e=>{t(Jr,e)},r=e=>{t(Yr,e)};try{e(n,r)}catch(e){r(e)}}};function $r(e,t,n,r=0){try{let i=ei(t,n,e,r);return we(i)?i:Xr(i)}catch(e){return Zr(e)}}function ei(e,t,n,r){let i=n[r];if(!e||!i)return e;let a=i({...e},t);return s&&a===null&&C.log(`Event processor "${i.id||`?`}" dropped event`),we(a)?a.then(e=>ei(e,t,n,r+1)):ei(a,t,n,r+1)}var U,ti,ni,W;function ri(e){let t=c._sentryDebugIds,n=c._debugIds;if(!t&&!n)return{};let r=t?Object.keys(t):[],i=n?Object.keys(n):[];if(W&&r.length===ti&&i.length===ni)return W;ti=r.length,ni=i.length,W={},U||={};let a=(t,n)=>{for(let r of t){let t=n[r],i=U?.[r];if(i&&W&&t)W[i[0]]=t,U&&(U[r]=[i[0],t]);else if(t){let n=e(r);for(let e=n.length-1;e>=0;e--){let i=n[e]?.filename;if(i&&W&&U){W[i]=t,U[r]=[i,t];break}}}}};return t&&a(r,t),n&&a(i,n),W}function ii(e,t,n,r,i,a){let{normalizeDepth:o=3,normalizeMaxBreadth:s=1e3}=e,c={...t,event_id:t.event_id||n.event_id||k(),timestamp:t.timestamp||it()},l=n.integrations||e.integrations.map(e=>e.name);ai(c,e),ci(c,l),i&&i.emit(`applyFrameMetadata`,t),t.type===void 0&&oi(c,e.stackParser);let u=ui(r,n.captureContext);n.mechanism&&et(c,n.mechanism);let d=i?i.getEventProcessors():[],f=Vr(a,u),p=[...n.attachments||[],...f.attachments];p.length&&(n.attachments=p),Rr(c,f);let m=[...d,...f.eventProcessors];return(n.data&&n.data.__sentry__===!0?Xr(c):$r(m,c,n)).then(e=>(e&&si(e),typeof o==`number`&&o>0?li(e,o,s):e))}function ai(e,t){let{environment:n,release:r,dist:i,maxValueLength:a}=t;e.environment=e.environment||n||`production`,!e.release&&r&&(e.release=r),!e.dist&&i&&(e.dist=i);let o=e.request;o?.url&&a&&(o.url=We(o.url,a)),a&&e.exception?.values?.forEach(e=>{e.value&&=We(e.value,a)})}function oi(e,t){let n=ri(t);e.exception?.values?.forEach(e=>{e.stacktrace?.frames?.forEach(e=>{e.filename&&(e.debug_id=n[e.filename])})})}function si(e){let t={};if(e.exception?.values?.forEach(e=>{e.stacktrace?.frames?.forEach(e=>{e.debug_id&&(e.abs_path?t[e.abs_path]=e.debug_id:e.filename&&(t[e.filename]=e.debug_id),delete e.debug_id)})}),Object.keys(t).length===0)return;e.debug_meta=e.debug_meta||{},e.debug_meta.images=e.debug_meta.images||[];let n=e.debug_meta.images;Object.entries(t).forEach(([e,t])=>{n.push({type:`sourcemap`,code_file:e,debug_id:t})})}function ci(e,t){t.length>0&&(e.sdk=e.sdk||{},e.sdk.integrations=[...e.sdk.integrations||[],...t])}function li(e,t,n){if(!e)return null;let r={...e,...e.breadcrumbs&&{breadcrumbs:e.breadcrumbs.map(e=>({...e,...e.data&&{data:H(e.data,t,n)}}))},...e.user&&{user:H(e.user,t,n)},...e.contexts&&{contexts:H(e.contexts,t,n)},...e.extra&&{extra:H(e.extra,t,n)}};return e.contexts?.trace&&r.contexts&&(r.contexts.trace=e.contexts.trace,e.contexts.trace.data&&(r.contexts.trace.data=H(e.contexts.trace.data,t,n))),e.spans&&(r.spans=e.spans.map(e=>({...e,...e.data&&{data:H(e.data,t,n)}}))),e.contexts?.flags&&r.contexts&&(r.contexts.flags=H(e.contexts.flags,3,n)),r}function ui(e,t){if(!t)return e;let n=e?e.clone():new N;return n.update(t),n}function di(e){if(e)return fi(e)||mi(e)?{captureContext:e}:e}function fi(e){return e instanceof N||typeof e==`function`}var pi=[`user`,`level`,`extra`,`contexts`,`tags`,`fingerprint`,`propagationContext`];function mi(e){return Object.keys(e).some(e=>pi.includes(e))}function hi(e,t){return F().captureException(e,di(t))}function gi(e,t){let n=typeof t==`string`?t:void 0,r=typeof t==`string`?void 0:{captureContext:t};return F().captureMessage(e,n,r)}function _i(e,t){return F().captureEvent(e,t)}function vi(e,t){I().setContext(e,t)}function yi(){return I().lastEventId()}function bi(e){let t=I(),{user:n}=Vr(t,F()),{userAgent:r}=c.navigator||{},i=st({user:n,...r&&{userAgent:r},...e}),a=t.getSession();return a?.status===`ok`&&j(a,{status:`exited`}),xi(),t.setSession(i),i}function xi(){let e=I(),t=F().getSession()||e.getSession();t&&ct(t),Si(),e.setSession()}function Si(){let e=I(),t=L(),n=e.getSession();n&&t&&t.captureSession(n)}function Ci(e=!1){if(e){xi();return}Si()}var G=e(n()),K=e=>typeof e==`string`,wi=()=>{let e,t,n=new Promise((n,r)=>{e=n,t=r});return n.resolve=e,n.reject=t,n},Ti=e=>e==null?``:String(e),Ei=(e,t,n)=>{e.forEach(e=>{t[e]&&(n[e]=t[e])})},Di=/###/g,Oi=e=>e&&e.includes(`###`)?e.replace(Di,`.`):e,ki=e=>!e||K(e),Ai=(e,t,n)=>{let r=K(t)?t.split(`.`):t,i=0;for(;i<r.length-1;){if(ki(e))return{};let t=Oi(r[i]);!e[t]&&n&&(e[t]=new n),e=Object.prototype.hasOwnProperty.call(e,t)?e[t]:{},++i}return ki(e)?{}:{obj:e,k:Oi(r[i])}},ji=(e,t,n)=>{let{obj:r,k:i}=Ai(e,t,Object);if(r!==void 0||t.length===1){r[i]=n;return}let a=t[t.length-1],o=t.slice(0,t.length-1),s=Ai(e,o,Object);for(;s.obj===void 0&&o.length;)a=`${o[o.length-1]}.${a}`,o=o.slice(0,o.length-1),s=Ai(e,o,Object),s?.obj&&s.obj[`${s.k}.${a}`]!==void 0&&(s.obj=void 0);s.obj[`${s.k}.${a}`]=n},Mi=(e,t,n,r)=>{let{obj:i,k:a}=Ai(e,t,Object);i[a]=i[a]||[],i[a].push(n)},Ni=(e,t)=>{let{obj:n,k:r}=Ai(e,t);if(n&&Object.prototype.hasOwnProperty.call(n,r))return n[r]},Pi=(e,t,n)=>{let r=Ni(e,n);return r===void 0?Ni(t,n):r},Fi=(e,t,n)=>{for(let r in t)r!==`__proto__`&&r!==`constructor`&&(Object.prototype.hasOwnProperty.call(e,r)?K(e[r])||e[r]instanceof String||K(t[r])||t[r]instanceof String?n&&(e[r]=t[r]):Fi(e[r],t[r],n):e[r]=t[r]);return e},q=e=>e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,`\\$&`),Ii={"&":`&`,"<":`<`,">":`>`,'"':`"`,"'":`'`,"/":`/`},Li=e=>K(e)?e.replace(/[&<>"'\/]/g,e=>Ii[e]):e,Ri=class{constructor(e){this.capacity=e,this.regExpMap=new Map,this.regExpQueue=[]}getRegExp(e){let t=this.regExpMap.get(e);if(t!==void 0)return t;let n=new RegExp(e);return this.regExpQueue.length===this.capacity&&this.regExpMap.delete(this.regExpQueue.shift()),this.regExpMap.set(e,n),this.regExpQueue.push(e),n}},zi=[` `,`,`,`?`,`!`,`;`],Bi=new Ri(20),Vi=(e,t,n)=>{t||=``,n||=``;let r=zi.filter(e=>!t.includes(e)&&!n.includes(e));if(r.length===0)return!0;let i=Bi.getRegExp(`(${r.map(e=>e===`?`?`\\?`:e).join(`|`)})`),a=!i.test(e);if(!a){let t=e.indexOf(n);t>0&&!i.test(e.substring(0,t))&&(a=!0)}return a},Hi=(e,t,n=`.`)=>{if(!e)return;if(e[t])return Object.prototype.hasOwnProperty.call(e,t)?e[t]:void 0;let r=t.split(n),i=e;for(let e=0;e<r.length;){if(!i||typeof i!=`object`)return;let t,a=``;for(let o=e;o<r.length;++o)if(o!==e&&(a+=n),a+=r[o],t=i[a],t!==void 0){if([`string`,`number`,`boolean`].includes(typeof t)&&o<r.length-1)continue;e+=o-e+1;break}i=t}return i},Ui=e=>e?.replace(/_/g,`-`),Wi={type:`logger`,log(e){this.output(`log`,e)},warn(e){this.output(`warn`,e)},error(e){this.output(`error`,e)},output(e,t){console?.[e]?.apply?.(console,t)}},J=new class e{constructor(e,t={}){this.init(e,t)}init(e,t={}){this.prefix=t.prefix||`i18next:`,this.logger=e||Wi,this.options=t,this.debug=t.debug}log(...e){return this.forward(e,`log`,``,!0)}warn(...e){return this.forward(e,`warn`,``,!0)}error(...e){return this.forward(e,`error`,``)}deprecate(...e){return this.forward(e,`warn`,`WARNING DEPRECATED: `,!0)}forward(e,t,n,r){return r&&!this.debug?null:(e=e.map(e=>K(e)?e.replace(/[\r\n\x00-\x1F\x7F]/g,` `):e),K(e[0])&&(e[0]=`${n}${this.prefix} ${e[0]}`),this.logger[t](e))}create(t){return new e(this.logger,{prefix:`${this.prefix}:${t}:`,...this.options})}clone(t){return t||=this.options,t.prefix=t.prefix||this.prefix,new e(this.logger,t)}},Gi=class{constructor(){this.observers={}}on(e,t){return e.split(` `).forEach(e=>{this.observers[e]||(this.observers[e]=new Map);let n=this.observers[e].get(t)||0;this.observers[e].set(t,n+1)}),this}off(e,t){if(this.observers[e]){if(!t){delete this.observers[e];return}this.observers[e].delete(t)}}once(e,t){let n=(...r)=>{t(...r),this.off(e,n)};return this.on(e,n),this}emit(e,...t){this.observers[e]&&Array.from(this.observers[e].entries()).forEach(([e,n])=>{for(let r=0;r<n;r++)e(...t)}),this.observers[`*`]&&Array.from(this.observers[`*`].entries()).forEach(([n,r])=>{for(let i=0;i<r;i++)n(e,...t)})}},Ki=class extends Gi{constructor(e,t={ns:[`translation`],defaultNS:`translation`}){super(),this.data=e||{},this.options=t,this.options.keySeparator===void 0&&(this.options.keySeparator=`.`),this.options.ignoreJSONStructure===void 0&&(this.options.ignoreJSONStructure=!0)}addNamespaces(e){this.options.ns.includes(e)||this.options.ns.push(e)}removeNamespaces(e){let t=this.options.ns.indexOf(e);t>-1&&this.options.ns.splice(t,1)}getResource(e,t,n,r={}){let i=r.keySeparator===void 0?this.options.keySeparator:r.keySeparator,a=r.ignoreJSONStructure===void 0?this.options.ignoreJSONStructure:r.ignoreJSONStructure,o;e.includes(`.`)?o=e.split(`.`):(o=[e,t],n&&(Array.isArray(n)?o.push(...n):K(n)&&i?o.push(...n.split(i)):o.push(n)));let s=Ni(this.data,o);return!s&&!t&&!n&&e.includes(`.`)&&(e=o[0],t=o[1],n=o.slice(2).join(`.`)),s||!a||!K(n)?s:Hi(this.data?.[e]?.[t],n,i)}addResource(e,t,n,r,i={silent:!1}){let a=i.keySeparator===void 0?this.options.keySeparator:i.keySeparator,o=[e,t];n&&(o=o.concat(a?n.split(a):n)),e.includes(`.`)&&(o=e.split(`.`),r=t,t=o[1]),this.addNamespaces(t),ji(this.data,o,r),i.silent||this.emit(`added`,e,t,n,r)}addResources(e,t,n,r={silent:!1}){for(let r in n)(K(n[r])||Array.isArray(n[r]))&&this.addResource(e,t,r,n[r],{silent:!0});r.silent||this.emit(`added`,e,t,n)}addResourceBundle(e,t,n,r,i,a={silent:!1,skipCopy:!1}){let o=[e,t];e.includes(`.`)&&(o=e.split(`.`),r=n,n=t,t=o[1]),this.addNamespaces(t);let s=Ni(this.data,o)||{};a.skipCopy||(n=JSON.parse(JSON.stringify(n))),r?Fi(s,n,i):s={...s,...n},ji(this.data,o,s),a.silent||this.emit(`added`,e,t,n)}removeResourceBundle(e,t){this.hasResourceBundle(e,t)&&delete this.data[e][t],this.removeNamespaces(t),this.emit(`removed`,e,t)}hasResourceBundle(e,t){return this.getResource(e,t)!==void 0}getResourceBundle(e,t){return t||=this.options.defaultNS,this.getResource(e,t)}getDataByLanguage(e){return this.data[e]}hasLanguageSomeTranslations(e){let t=this.getDataByLanguage(e);return!!(t&&Object.keys(t)||[]).find(e=>t[e]&&Object.keys(t[e]).length>0)}toJSON(){return this.data}},qi={processors:{},addPostProcessor(e){this.processors[e.name]=e},handle(e,t,n,r,i){return e.forEach(e=>{t=this.processors[e]?.process(t,n,r,i)??t}),t}},Ji=Symbol(`i18next/PATH_KEY`);function Yi(){let e=[],t=Object.create(null),n;return t.get=(r,i)=>(n?.revoke?.(),i===Ji?e:(e.push(i),n=Proxy.revocable(r,t),n.proxy)),Proxy.revocable(Object.create(null),t).proxy}function Y(e,t){let{[Ji]:n}=e(Yi()),r=t?.keySeparator??`.`,i=t?.nsSeparator??`:`,a=t?.enableSelector===`strict`;if(n.length>1&&i){let e=t?.ns,o=a?Array.isArray(e)?e:e?[e]:null:Array.isArray(e)?e:null;if(o&&(a?o:o.length>1?o.slice(1):[]).includes(n[0]))return`${n[0]}${i}${n.slice(1).join(r)}`}return n.join(r)}var Xi=e=>!K(e)&&typeof e!=`boolean`&&typeof e!=`number`,Zi=class e extends Gi{constructor(e,t={}){super(),Ei([`resourceStore`,`languageUtils`,`pluralResolver`,`interpolator`,`backendConnector`,`i18nFormat`,`utils`],e,this),this.options=t,this.options.keySeparator===void 0&&(this.options.keySeparator=`.`),this.logger=J.create(`translator`),this.checkedLoadedFor={}}changeLanguage(e){e&&(this.language=e)}exists(e,t={interpolation:{}}){let n={...t};if(e==null)return!1;let r=this.resolve(e,n);if(r?.res===void 0)return!1;let i=Xi(r.res);return!(n.returnObjects===!1&&i)}extractFromKey(e,t){let n=t.nsSeparator===void 0?this.options.nsSeparator:t.nsSeparator;n===void 0&&(n=`:`);let r=t.keySeparator===void 0?this.options.keySeparator:t.keySeparator,i=t.ns||this.options.defaultNS||[],a=n&&e.includes(n),o=!this.options.userDefinedKeySeparator&&!t.keySeparator&&!this.options.userDefinedNsSeparator&&!t.nsSeparator&&!Vi(e,n,r);if(a&&!o){let t=e.match(this.interpolator.nestingRegexp);if(t&&t.length>0)return{key:e,namespaces:K(i)?[i]:i};let a=e.split(n);(n!==r||n===r&&this.options.ns.includes(a[0]))&&(i=a.shift()),e=a.join(r)}return{key:e,namespaces:K(i)?[i]:i}}translate(t,n,r){let i=typeof n==`object`?{...n}:n;if(typeof i!=`object`&&this.options.overloadTranslationOptionHandler&&(i=this.options.overloadTranslationOptionHandler(arguments)),typeof i==`object`&&(i={...i}),i||={},t==null)return``;typeof t==`function`&&(t=Y(t,{...this.options,...i})),Array.isArray(t)||(t=[String(t)]),t=t.map(e=>typeof e==`function`?Y(e,{...this.options,...i}):String(e));let a=i.returnDetails===void 0?this.options.returnDetails:i.returnDetails,o=i.keySeparator===void 0?this.options.keySeparator:i.keySeparator,{key:s,namespaces:c}=this.extractFromKey(t[t.length-1],i),l=c[c.length-1],u=i.nsSeparator===void 0?this.options.nsSeparator:i.nsSeparator;u===void 0&&(u=`:`);let d=i.lng||this.language,f=i.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(d?.toLowerCase()===`cimode`)return f?a?{res:`${l}${u}${s}`,usedKey:s,exactUsedKey:s,usedLng:d,usedNS:l,usedParams:this.getUsedParamsDetails(i)}:`${l}${u}${s}`:a?{res:s,usedKey:s,exactUsedKey:s,usedLng:d,usedNS:l,usedParams:this.getUsedParamsDetails(i)}:s;let p=this.resolve(t,i),m=p?.res,h=p?.usedKey||s,g=p?.exactUsedKey||s,ee=[`[object Number]`,`[object Function]`,`[object RegExp]`],_=i.joinArrays===void 0?this.options.joinArrays:i.joinArrays,v=!this.i18nFormat||this.i18nFormat.handleAsObject,y=i.count!==void 0&&!K(i.count),b=e.hasDefaultValue(i),te=y?this.pluralResolver.getSuffix(d,i.count,i):``,x=i.ordinal&&y?this.pluralResolver.getSuffix(d,i.count,{ordinal:!1}):``,S=y&&!i.ordinal&&i.count===0,C=S&&i[`defaultValue${this.options.pluralSeparator}zero`]||i[`defaultValue${te}`]||i[`defaultValue${x}`]||i.defaultValue,w=m;v&&!m&&b&&(w=C);let ne=Xi(w),re=Object.prototype.toString.apply(w);if(v&&w&&ne&&!ee.includes(re)&&!(K(_)&&Array.isArray(w))){if(!i.returnObjects&&!this.options.returnObjects){this.options.returnedObjectHandler||this.logger.warn(`accessing an object - but returnObjects options is not enabled!`);let e=this.options.returnedObjectHandler?this.options.returnedObjectHandler(h,w,{...i,ns:c}):`key '${s} (${this.language})' returned an object instead of string.`;return a?(p.res=e,p.usedParams=this.getUsedParamsDetails(i),p):e}if(o){let e=Array.isArray(w),t=e?[]:{},n=e?g:h;for(let e in w)if(Object.prototype.hasOwnProperty.call(w,e)){let r=`${n}${o}${e}`;b&&!m?t[e]=this.translate(r,{...i,defaultValue:Xi(C)?C[e]:void 0,joinArrays:!1,ns:c}):t[e]=this.translate(r,{...i,joinArrays:!1,ns:c}),t[e]===r&&(t[e]=w[e])}m=t}}else if(v&&K(_)&&Array.isArray(m))m=m.join(_),m&&=this.extendTranslation(m,t,i,r);else{let e=!1,n=!1;!this.isValidLookup(m)&&b&&(e=!0,m=C),this.isValidLookup(m)||(n=!0,m=s);let a=(i.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey)&&n?void 0:m,c=b&&C!==m&&this.options.updateMissing;if(n||e||c){if(this.logger.log(c?`updateKey`:`missingKey`,d,l,y&&!c?`${s}${this.pluralResolver.getSuffix(d,i.count,i)}`:s,c?C:m),o){let e=this.resolve(s,{...i,keySeparator:!1});e&&e.res&&this.logger.warn(`Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.`)}let e=[],t=this.languageUtils.getFallbackCodes(this.options.fallbackLng,i.lng||this.language);if(this.options.saveMissingTo===`fallback`&&t&&t[0])for(let n=0;n<t.length;n++)e.push(t[n]);else this.options.saveMissingTo===`all`?e=this.languageUtils.toResolveHierarchy(i.lng||this.language):e.push(i.lng||this.language);let n=(e,t,n)=>{let r=b&&n!==m?n:a;this.options.missingKeyHandler?this.options.missingKeyHandler(e,l,t,r,c,i):this.backendConnector?.saveMissing&&this.backendConnector.saveMissing(e,l,t,r,c,i),this.emit(`missingKey`,e,l,t,m)};this.options.saveMissing&&(this.options.saveMissingPlurals&&y?e.forEach(e=>{let t=this.pluralResolver.getSuffixes(e,i);S&&i[`defaultValue${this.options.pluralSeparator}zero`]&&!t.includes(`${this.options.pluralSeparator}zero`)&&t.push(`${this.options.pluralSeparator}zero`),t.forEach(t=>{n([e],s+t,i[`defaultValue${t}`]||C)})}):n(e,s,C))}m=this.extendTranslation(m,t,i,p,r),n&&m===s&&this.options.appendNamespaceToMissingKey&&(m=`${l}${u}${s}`),(n||e)&&this.options.parseMissingKeyHandler&&(m=this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey?`${l}${u}${s}`:s,e?m:void 0,i))}return a?(p.res=m,p.usedParams=this.getUsedParamsDetails(i),p):m}extendTranslation(e,t,n,r,i){if(this.i18nFormat?.parse)e=this.i18nFormat.parse(e,{...this.options.interpolation.defaultVariables,...n},n.lng||this.language||r.usedLng,r.usedNS,r.usedKey,{resolved:r});else if(!n.skipInterpolation){n.interpolation&&this.interpolator.init({...n,interpolation:{...this.options.interpolation,...n.interpolation}});let a=K(e)&&(n?.interpolation?.skipOnVariables===void 0?this.options.interpolation.skipOnVariables:n.interpolation.skipOnVariables),o;if(a){let t=e.match(this.interpolator.nestingRegexp);o=t&&t.length}let s=n.replace&&!K(n.replace)?n.replace:n;if(this.options.interpolation.defaultVariables&&(s={...this.options.interpolation.defaultVariables,...s}),e=this.interpolator.interpolate(e,s,n.lng||this.language||r.usedLng,n),a){let t=e.match(this.interpolator.nestingRegexp),r=t&&t.length;o<r&&(n.nest=!1)}!n.lng&&r&&r.res&&(n.lng=this.language||r.usedLng),n.nest!==!1&&(e=this.interpolator.nest(e,(...e)=>i?.[0]===e[0]&&!n.context?(this.logger.warn(`It seems you are nesting recursively key: ${e[0]} in key: ${t[0]}`),null):this.translate(...e,t),n)),n.interpolation&&this.interpolator.reset()}let a=n.postProcess||this.options.postProcess,o=K(a)?[a]:a;return e!=null&&o?.length&&n.applyPostProcessor!==!1&&(e=qi.handle(o,e,t,this.options&&this.options.postProcessPassResolved?{i18nResolved:{...r,usedParams:this.getUsedParamsDetails(n)},...n}:n,this)),e}resolve(e,t={}){let n,r,i,a,o;return K(e)&&(e=[e]),Array.isArray(e)&&(e=e.map(e=>typeof e==`function`?Y(e,{...this.options,...t}):e)),e.forEach(e=>{if(this.isValidLookup(n))return;let s=this.extractFromKey(e,t),c=s.key;r=c;let l=s.namespaces;this.options.fallbackNS&&(l=l.concat(this.options.fallbackNS));let u=t.count!==void 0&&!K(t.count),d=u&&!t.ordinal&&t.count===0,f=t.context!==void 0&&(K(t.context)||typeof t.context==`number`)&&t.context!==``,p=t.lngs?t.lngs:this.languageUtils.toResolveHierarchy(t.lng||this.language,t.fallbackLng);l.forEach(e=>{this.isValidLookup(n)||(o=e,!this.checkedLoadedFor[`${p[0]}-${e}`]&&this.utils?.hasLoadedNamespace&&!this.utils?.hasLoadedNamespace(o)&&(this.checkedLoadedFor[`${p[0]}-${e}`]=!0,this.logger.warn(`key "${r}" for languages "${p.join(`, `)}" won't get resolved as namespace "${o}" was not yet loaded`,`This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!`)),p.forEach(r=>{if(this.isValidLookup(n))return;a=r;let o=[c];if(this.i18nFormat?.addLookupKeys)this.i18nFormat.addLookupKeys(o,c,r,e,t);else{let e;u&&(e=this.pluralResolver.getSuffix(r,t.count,t));let n=`${this.options.pluralSeparator}zero`,i=`${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;if(u&&(t.ordinal&&e.startsWith(i)&&o.push(c+e.replace(i,this.options.pluralSeparator)),o.push(c+e),d&&o.push(c+n)),f){let r=`${c}${this.options.contextSeparator||`_`}${t.context}`;o.push(r),u&&(t.ordinal&&e.startsWith(i)&&o.push(r+e.replace(i,this.options.pluralSeparator)),o.push(r+e),d&&o.push(r+n))}}let s;for(;s=o.pop();)this.isValidLookup(n)||(i=s,n=this.getResource(r,e,s,t))}))})}),{res:n,usedKey:r,exactUsedKey:i,usedLng:a,usedNS:o}}isValidLookup(e){return e!==void 0&&!(!this.options.returnNull&&e===null)&&!(!this.options.returnEmptyString&&e===``)}getResource(e,t,n,r={}){return this.i18nFormat?.getResource?this.i18nFormat.getResource(e,t,n,r):this.resourceStore.getResource(e,t,n,r)}getUsedParamsDetails(e={}){let t=[`defaultValue`,`ordinal`,`context`,`replace`,`lng`,`lngs`,`fallbackLng`,`ns`,`keySeparator`,`nsSeparator`,`returnObjects`,`returnDetails`,`joinArrays`,`postProcess`,`interpolation`],n=e.replace&&!K(e.replace),r=n?e.replace:e;if(n&&e.count!==void 0&&(r={...r,count:e.count}),this.options.interpolation.defaultVariables&&(r={...this.options.interpolation.defaultVariables,...r}),!n){r={...r};for(let e of t)delete r[e]}return r}static hasDefaultValue(e){for(let t in e)if(Object.prototype.hasOwnProperty.call(e,t)&&t.startsWith(`defaultValue`)&&e[t]!==void 0)return!0;return!1}},Qi=class{constructor(e){this.options=e,this.supportedLngs=this.options.supportedLngs||!1,this.logger=J.create(`languageUtils`)}getScriptPartFromCode(e){if(e=Ui(e),!e||!e.includes(`-`))return null;let t=e.split(`-`);return t.length===2||(t.pop(),t[t.length-1].toLowerCase()===`x`)?null:this.formatLanguageCode(t.join(`-`))}getLanguagePartFromCode(e){if(e=Ui(e),!e||!e.includes(`-`))return e;let t=e.split(`-`);return this.formatLanguageCode(t[0])}formatLanguageCode(e){if(K(e)&&e.includes(`-`)){let t;try{t=Intl.getCanonicalLocales(e)[0]}catch{}return t&&this.options.lowerCaseLng&&(t=t.toLowerCase()),t||(this.options.lowerCaseLng?e.toLowerCase():e)}return this.options.cleanCode||this.options.lowerCaseLng?e.toLowerCase():e}isSupportedCode(e){return(this.options.load===`languageOnly`||this.options.nonExplicitSupportedLngs)&&(e=this.getLanguagePartFromCode(e)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.includes(e)}getBestMatchFromCodes(e){if(!e)return null;let t;return e.forEach(e=>{if(t)return;let n=this.formatLanguageCode(e);(!this.options.supportedLngs||this.isSupportedCode(n))&&(t=n)}),!t&&this.options.supportedLngs&&e.forEach(e=>{if(t)return;let n=this.getScriptPartFromCode(e);if(this.isSupportedCode(n))return t=n;let r=this.getLanguagePartFromCode(e);if(this.isSupportedCode(r))return t=r;t=this.options.supportedLngs.find(e=>e===r?!0:!e.includes(`-`)&&!r.includes(`-`)?!1:!!(e.includes(`-`)&&!r.includes(`-`)&&e.slice(0,e.indexOf(`-`))===r||e.startsWith(r)&&r.length>1))}),t||=this.getFallbackCodes(this.options.fallbackLng)[0],t}getFallbackCodes(e,t){if(!e)return[];if(typeof e==`function`&&(e=e(t)),K(e)&&(e=[e]),Array.isArray(e))return e;if(!t)return e.default||[];let n=e[t];return n||=e[this.getScriptPartFromCode(t)],n||=e[this.formatLanguageCode(t)],n||=e[this.getLanguagePartFromCode(t)],n||=e.default,n||[]}toResolveHierarchy(e,t){let n=this.getFallbackCodes((t===!1?[]:t)||this.options.fallbackLng||[],e),r=[],i=e=>{e&&(this.isSupportedCode(e)?r.push(e):this.logger.warn(`rejecting language code not found in supportedLngs: ${e}`))};return K(e)&&(e.includes(`-`)||e.includes(`_`))?(this.options.load!==`languageOnly`&&i(this.formatLanguageCode(e)),this.options.load!==`languageOnly`&&this.options.load!==`currentOnly`&&i(this.getScriptPartFromCode(e)),this.options.load!==`currentOnly`&&i(this.getLanguagePartFromCode(e))):K(e)&&i(this.formatLanguageCode(e)),n.forEach(e=>{r.includes(e)||i(this.formatLanguageCode(e))}),r}},$i={zero:0,one:1,two:2,few:3,many:4,other:5},ea={select:e=>e===1?`one`:`other`,resolvedOptions:()=>({pluralCategories:[`one`,`other`]})},ta=class{constructor(e,t={}){this.languageUtils=e,this.options=t,this.logger=J.create(`pluralResolver`),this.pluralRulesCache={}}clearCache(){this.pluralRulesCache={}}getRule(e,t={}){let n=Ui(e===`dev`?`en`:e),r=t.ordinal?`ordinal`:`cardinal`,i=JSON.stringify({cleanedCode:n,type:r});if(i in this.pluralRulesCache)return this.pluralRulesCache[i];let a;try{a=new Intl.PluralRules(n,{type:r})}catch{if(typeof Intl>`u`)return this.logger.error(`No Intl support, please use an Intl polyfill!`),ea;if(!e.match(/-|_/))return ea;let n=this.languageUtils.getLanguagePartFromCode(e);a=this.getRule(n,t)}return this.pluralRulesCache[i]=a,a}needsPlural(e,t={}){let n=this.getRule(e,t);return n||=this.getRule(`dev`,t),n?.resolvedOptions().pluralCategories.length>1}getPluralFormsOfKey(e,t,n={}){return this.getSuffixes(e,n).map(e=>`${t}${e}`)}getSuffixes(e,t={}){let n=this.getRule(e,t);return n||=this.getRule(`dev`,t),n?n.resolvedOptions().pluralCategories.sort((e,t)=>$i[e]-$i[t]).map(e=>`${this.options.prepend}${t.ordinal?`ordinal${this.options.prepend}`:``}${e}`):[]}getSuffix(e,t,n={}){let r=this.getRule(e,n);return r?`${this.options.prepend}${n.ordinal?`ordinal${this.options.prepend}`:``}${r.select(t)}`:(this.logger.warn(`no plural rule found for: ${e}`),this.getSuffix(`dev`,t,n))}},na=(e,t,n,r=`.`,i=!0)=>{let a=Pi(e,t,n);return!a&&i&&K(n)&&(a=Hi(e,n,r),a===void 0&&(a=Hi(t,n,r))),a},ra=e=>e.replace(/\$/g,`$$$$`),ia=class{constructor(e={}){this.logger=J.create(`interpolator`),this.options=e,this.format=e?.interpolation?.format||(e=>e),this.init(e)}init(e={}){e.interpolation||={escapeValue:!0};let{escape:t,escapeValue:n,useRawValueToEscape:r,prefix:i,prefixEscaped:a,suffix:o,suffixEscaped:s,formatSeparator:c,unescapeSuffix:l,unescapePrefix:u,nestingPrefix:d,nestingPrefixEscaped:f,nestingSuffix:p,nestingSuffixEscaped:m,nestingOptionsSeparator:h,maxReplaces:g,alwaysFormat:ee}=e.interpolation;this.escape=t===void 0?Li:t,this.escapeValue=n===void 0?!0:n,this.useRawValueToEscape=r===void 0?!1:r,this.prefix=i?q(i):a||`{{`,this.suffix=o?q(o):s||`}}`,this.formatSeparator=c||`,`,this.unescapePrefix=l?``:u?q(u):`-`,this.unescapeSuffix=this.unescapePrefix?``:l?q(l):``,this.nestingPrefix=d?q(d):f||q(`$t(`),this.nestingSuffix=p?q(p):m||q(`)`),this.nestingOptionsSeparator=h||`,`,this.maxReplaces=g||1e3,this.alwaysFormat=ee===void 0?!1:ee,this.resetRegExp()}reset(){this.options&&this.init(this.options)}resetRegExp(){let e=(e,t)=>e?.source===t?(e.lastIndex=0,e):new RegExp(t,`g`);this.regexp=e(this.regexp,`${this.prefix}(.+?)${this.suffix}`),this.regexpUnescape=e(this.regexpUnescape,`${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`),this.nestingRegexp=e(this.nestingRegexp,`${this.nestingPrefix}((?:[^()"']+|"[^"]*"|'[^']*'|\\((?:[^()]|"[^"]*"|'[^']*')*\\))*?)${this.nestingSuffix}`)}interpolate(e,t,n,r){let i,a,o,s=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{},c=e=>{if(!e.includes(this.formatSeparator)){let i=na(t,s,e,this.options.keySeparator,this.options.ignoreJSONStructure);return this.alwaysFormat?this.format(i,void 0,n,{...r,...t,interpolationkey:e}):i}let i=e.split(this.formatSeparator),a=i.shift().trim(),o=i.join(this.formatSeparator).trim();return this.format(na(t,s,a,this.options.keySeparator,this.options.ignoreJSONStructure),o,n,{...r,...t,interpolationkey:a})};this.resetRegExp(),!this.escapeValue&&typeof e==`string`&&/\$t\([^)]*\{[^}]*\{\{/.test(e)&&this.logger.warn(`nesting options string contains interpolated variables with escapeValue: false — if any of those values are attacker-controlled they can inject additional nesting options (e.g. redirect lng/ns). Sanitise untrusted input before passing it to t(), or keep escapeValue: true.`);let l=r?.missingInterpolationHandler||this.options.missingInterpolationHandler,u=r?.interpolation?.skipOnVariables===void 0?this.options.interpolation.skipOnVariables:r.interpolation.skipOnVariables;return[{regex:this.regexpUnescape,safeValue:e=>e},{regex:this.regexp,safeValue:e=>this.escapeValue?this.escape(e):e}].forEach(t=>{for(o=0;i=t.regex.exec(e);){let n=i[1].trim();if(a=c(n),a===void 0)if(typeof l==`function`){let t=l(e,i,r);a=K(t)?t:``}else if(r&&Object.prototype.hasOwnProperty.call(r,n))a=``;else if(u){a=i[0];continue}else this.logger.warn(`missed to pass in variable ${n} for interpolating ${e}`),a=``;else !K(a)&&!this.useRawValueToEscape&&(a=Ti(a));let s=t.safeValue(a);if(e=e.replace(i[0],ra(s)),u?(t.regex.lastIndex+=s.length,t.regex.lastIndex-=i[0].length):t.regex.lastIndex=0,o++,o>=this.maxReplaces)break}}),e}nest(e,t,n={}){let r,i,a,o=(e,t)=>{let n=this.nestingOptionsSeparator;if(!e.includes(n))return e;let r=e.split(RegExp(`${q(n)}[ ]*{`)),i=`{${r[1]}`;e=r[0],i=this.interpolate(i,a);let o=i.match(/'/g),s=i.match(/"/g);((o?.length??0)%2==0&&!s||(s?.length??0)%2!=0)&&(i=i.replace(/'/g,`"`));try{a=JSON.parse(i),t&&(a={...t,...a})}catch(t){return this.logger.warn(`failed parsing options string in nesting for key ${e}`,t),`${e}${n}${i}`}return a.defaultValue&&a.defaultValue.includes(this.prefix)&&delete a.defaultValue,e};for(;r=this.nestingRegexp.exec(e);){let s=[];a={...n},a=a.replace&&!K(a.replace)?a.replace:a,a.applyPostProcessor=!1,delete a.defaultValue;let c=/{.*}/s.test(r[1])?r[1].lastIndexOf(`}`)+1:r[1].indexOf(this.formatSeparator);if(c!==-1&&(s=r[1].slice(c).split(this.formatSeparator).map(e=>e.trim()).filter(Boolean),r[1]=r[1].slice(0,c)),i=t(o.call(this,r[1].trim(),a),a),i&&r[0]===e&&!K(i))return i;K(i)||(i=Ti(i)),i||=(this.logger.warn(`missed to resolve ${r[1]} for nesting ${e}`),``),s.length&&(i=s.reduce((e,t)=>this.format(e,t,n.lng,{...n,interpolationkey:r[1].trim()}),i.trim())),e=e.replace(r[0],i),this.regexp.lastIndex=0}return e}},aa=e=>{let t=e.toLowerCase().trim(),n={};if(e.includes(`(`)){let r=e.split(`(`);t=r[0].toLowerCase().trim();let i=r[1].slice(0,-1);t===`currency`&&!i.includes(`:`)?n.currency||=i.trim():t===`relativetime`&&!i.includes(`:`)?n.range||=i.trim():i.split(`;`).forEach(e=>{if(e){let[t,...r]=e.split(`:`),i=r.join(`:`).trim().replace(/^'+|'+$/g,``),a=t.trim();n[a]||(n[a]=i),i===`false`&&(n[a]=!1),i===`true`&&(n[a]=!0),isNaN(i)||(n[a]=parseInt(i,10))}})}return{formatName:t,formatOptions:n}},oa=e=>{let t={};return(n,r,i)=>{let a=i;i&&i.interpolationkey&&i.formatParams&&i.formatParams[i.interpolationkey]&&i[i.interpolationkey]&&(a={...a,[i.interpolationkey]:void 0});let o=r+JSON.stringify(a),s=t[o];return s||(s=e(Ui(r),i),t[o]=s),s(n)}},sa=e=>(t,n,r)=>e(Ui(n),r)(t),ca=class{constructor(e={}){this.logger=J.create(`formatter`),this.options=e,this.init(e)}init(e,t={interpolation:{}}){this.formatSeparator=t.interpolation.formatSeparator||`,`;let n=t.cacheInBuiltFormats?oa:sa;this.formats={number:n((e,t)=>{let n=new Intl.NumberFormat(e,{...t});return e=>n.format(e)}),currency:n((e,t)=>{let n=new Intl.NumberFormat(e,{...t,style:`currency`});return e=>n.format(e)}),datetime:n((e,t)=>{let n=new Intl.DateTimeFormat(e,{...t});return e=>n.format(e)}),relativetime:n((e,t)=>{let n=new Intl.RelativeTimeFormat(e,{...t});return e=>n.format(e,t.range||`day`)}),list:n((e,t)=>{let n=new Intl.ListFormat(e,{...t});return e=>n.format(e)})}}add(e,t){this.formats[e.toLowerCase().trim()]=t}addCached(e,t){this.formats[e.toLowerCase().trim()]=oa(t)}format(e,t,n,r={}){if(!t||e==null)return e;let i=t.split(this.formatSeparator),a=[];for(let e=0;e<i.length;e++){let t=i[e];for(;t.indexOf(`(`)>-1&&!t.includes(`)`)&&e+1<i.length;)t=`${t}${this.formatSeparator}${i[++e]}`;a.push(t)}return a.reduce((e,t)=>{let{formatName:i,formatOptions:a}=aa(t);if(this.formats[i]){let t=e;try{let o=r?.formatParams?.[r.interpolationkey]||{},s=o.locale||o.lng||r.locale||r.lng||n;t=this.formats[i](e,s,{...a,...r,...o})}catch(e){this.logger.warn(e)}return t}else this.logger.warn(`there was no format function for ${i}`);return e},e)}},la=(e,t)=>{e.pending[t]!==void 0&&(delete e.pending[t],e.pendingCount--)},ua=class extends Gi{constructor(e,t,n,r={}){super(),this.backend=e,this.store=t,this.services=n,this.languageUtils=n.languageUtils,this.options=r,this.logger=J.create(`backendConnector`),this.waitingReads=[],this.maxParallelReads=r.maxParallelReads||10,this.readingCalls=0,this.maxRetries=r.maxRetries>=0?r.maxRetries:5,this.retryTimeout=r.retryTimeout>=1?r.retryTimeout:350,this.state={},this.queue=[],this.backend?.init?.(n,r.backend,r)}queueLoad(e,t,n,r){let i={},a={},o={},s={};return e.forEach(e=>{let r=!0;t.forEach(t=>{let o=`${e}|${t}`;!n.reload&&this.store.hasResourceBundle(e,t)?this.state[o]=2:this.state[o]<0||(this.state[o]===1?a[o]===void 0&&(a[o]=!0):(this.state[o]=1,r=!1,a[o]===void 0&&(a[o]=!0),i[o]===void 0&&(i[o]=!0),s[t]===void 0&&(s[t]=!0)))}),r||(o[e]=!0)}),(Object.keys(i).length||Object.keys(a).length)&&this.queue.push({pending:a,pendingCount:Object.keys(a).length,loaded:{},errors:[],callback:r}),{toLoad:Object.keys(i),pending:Object.keys(a),toLoadLanguages:Object.keys(o),toLoadNamespaces:Object.keys(s)}}loaded(e,t,n){let r=e.split(`|`),i=r[0],a=r[1];t&&this.emit(`failedLoading`,i,a,t),!t&&n&&this.store.addResourceBundle(i,a,n,void 0,void 0,{skipCopy:!0}),this.state[e]=t?-1:2,t&&n&&(this.state[e]=0);let o={};this.queue.forEach(n=>{Mi(n.loaded,[i],a),la(n,e),t&&n.errors.push(t),n.pendingCount===0&&!n.done&&(Object.keys(n.loaded).forEach(e=>{o[e]||(o[e]={});let t=n.loaded[e];t.length&&t.forEach(t=>{o[e][t]===void 0&&(o[e][t]=!0)})}),n.done=!0,n.errors.length?n.callback(n.errors):n.callback())}),this.emit(`loaded`,o),this.queue=this.queue.filter(e=>!e.done)}read(e,t,n,r=0,i=this.retryTimeout,a){if(!e.length)return a(null,{});if(this.readingCalls>=this.maxParallelReads){this.waitingReads.push({lng:e,ns:t,fcName:n,tried:r,wait:i,callback:a});return}this.readingCalls++;let o=(o,s)=>{if(this.readingCalls--,this.waitingReads.length>0){let e=this.waitingReads.shift();this.read(e.lng,e.ns,e.fcName,e.tried,e.wait,e.callback)}if(o&&s&&r<this.maxRetries){setTimeout(()=>{this.read(e,t,n,r+1,i*2,a)},i);return}a(o,s)},s=this.backend[n].bind(this.backend);if(s.length===2){try{let n=s(e,t);n&&typeof n.then==`function`?n.then(e=>o(null,e)).catch(o):o(null,n)}catch(e){o(e)}return}return s(e,t,o)}prepareLoading(e,t,n={},r){if(!this.backend)return this.logger.warn(`No backend was added via i18next.use. Will not load resources.`),r&&r();K(e)&&(e=this.languageUtils.toResolveHierarchy(e)),K(t)&&(t=[t]);let i=this.queueLoad(e,t,n,r);if(!i.toLoad.length)return i.pending.length||r(),null;i.toLoad.forEach(e=>{this.loadOne(e)})}load(e,t,n){this.prepareLoading(e,t,{},n)}reload(e,t,n){this.prepareLoading(e,t,{reload:!0},n)}loadOne(e,t=``){let n=e.split(`|`),r=n[0],i=n[1];this.read(r,i,`read`,void 0,void 0,(n,a)=>{n&&this.logger.warn(`${t}loading namespace ${i} for language ${r} failed`,n),!n&&a&&this.logger.log(`${t}loaded namespace ${i} for language ${r}`,a),this.loaded(e,n,a)})}saveMissing(e,t,n,r,i,a={},o=()=>{}){if(this.services?.utils?.hasLoadedNamespace&&!this.services?.utils?.hasLoadedNamespace(t)){this.logger.warn(`did not save key "${n}" as the namespace "${t}" was not yet loaded`,`This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!`);return}if(!(n==null||n===``)){if(this.backend?.create){let s={...a,isUpdate:i},c=this.backend.create.bind(this.backend);if(c.length<6)try{let i;i=c.length===5?c(e,t,n,r,s):c(e,t,n,r),i&&typeof i.then==`function`?i.then(e=>o(null,e)).catch(o):o(null,i)}catch(e){o(e)}else c(e,t,n,r,o,s)}!e||!e[0]||this.store.addResource(e[0],t,n,r)}}},da=()=>({debug:!1,initAsync:!0,ns:[`translation`],defaultNS:[`translation`],fallbackLng:[`dev`],fallbackNS:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:`all`,preload:!1,keySeparator:`.`,nsSeparator:`:`,pluralSeparator:`_`,contextSeparator:`_`,enableSelector:!1,partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:`fallback`,saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!1,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:e=>{let t={};if(typeof e[1]==`object`&&(t=e[1]),K(e[1])&&(t.defaultValue=e[1]),K(e[2])&&(t.tDescription=e[2]),typeof e[2]==`object`||typeof e[3]==`object`){let n=e[3]||e[2];Object.keys(n).forEach(e=>{t[e]=n[e]})}return t},interpolation:{escapeValue:!0,prefix:`{{`,suffix:`}}`,formatSeparator:`,`,unescapePrefix:`-`,nestingPrefix:`$t(`,nestingSuffix:`)`,nestingOptionsSeparator:`,`,maxReplaces:1e3,skipOnVariables:!0},cacheInBuiltFormats:!0}),fa=e=>(K(e.ns)&&(e.ns=[e.ns]),K(e.fallbackLng)&&(e.fallbackLng=[e.fallbackLng]),K(e.fallbackNS)&&(e.fallbackNS=[e.fallbackNS]),e.supportedLngs&&!e.supportedLngs.includes(`cimode`)&&(e.supportedLngs=e.supportedLngs.concat([`cimode`])),e),pa=()=>{},ma=e=>{Object.getOwnPropertyNames(Object.getPrototypeOf(e)).forEach(t=>{typeof e[t]==`function`&&(e[t]=e[t].bind(e))})},X=class e extends Gi{constructor(e={},t){if(super(),this.options=fa(e),this.services={},this.logger=J,this.modules={external:[]},ma(this),t&&!this.isInitialized&&!e.isClone){if(!this.options.initAsync)return this.init(e,t),this;setTimeout(()=>{this.init(e,t)},0)}}init(e={},t){this.isInitializing=!0,typeof e==`function`&&(t=e,e={}),e.defaultNS==null&&e.ns&&(K(e.ns)?e.defaultNS=e.ns:e.ns.includes(`translation`)||(e.defaultNS=e.ns[0]));let n=da();this.options={...n,...this.options,...fa(e)},this.options.interpolation={...n.interpolation,...this.options.interpolation},e.keySeparator!==void 0&&(this.options.userDefinedKeySeparator=e.keySeparator),e.nsSeparator!==void 0&&(this.options.userDefinedNsSeparator=e.nsSeparator),typeof this.options.overloadTranslationOptionHandler!=`function`&&(this.options.overloadTranslationOptionHandler=n.overloadTranslationOptionHandler);let r=e=>e?typeof e==`function`?new e:e:null;if(!this.options.isClone){this.modules.logger?J.init(r(this.modules.logger),this.options):J.init(null,this.options);let e;e=this.modules.formatter?this.modules.formatter:ca;let t=new Qi(this.options);this.store=new Ki(this.options.resources,this.options);let n=this.services;n.logger=J,n.resourceStore=this.store,n.languageUtils=t,n.pluralResolver=new ta(t,{prepend:this.options.pluralSeparator}),e&&(n.formatter=r(e),n.formatter.init&&n.formatter.init(n,this.options),this.options.interpolation.format=n.formatter.format.bind(n.formatter)),n.interpolator=new ia(this.options),n.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},n.backendConnector=new ua(r(this.modules.backend),n.resourceStore,n,this.options),n.backendConnector.on(`*`,(e,...t)=>{this.emit(e,...t)}),this.modules.languageDetector&&(n.languageDetector=r(this.modules.languageDetector),n.languageDetector.init&&n.languageDetector.init(n,this.options.detection,this.options)),this.modules.i18nFormat&&(n.i18nFormat=r(this.modules.i18nFormat),n.i18nFormat.init&&n.i18nFormat.init(this)),this.translator=new Zi(this.services,this.options),this.translator.on(`*`,(e,...t)=>{this.emit(e,...t)}),this.modules.external.forEach(e=>{e.init&&e.init(this)})}if(this.format=this.options.interpolation.format,t||=pa,this.options.fallbackLng&&!this.services.languageDetector&&!this.options.lng){let e=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);e.length>0&&e[0]!==`dev`&&(this.options.lng=e[0])}!this.services.languageDetector&&!this.options.lng&&this.logger.warn(`init: no languageDetector is used and no lng is defined`),[`getResource`,`hasResourceBundle`,`getResourceBundle`,`getDataByLanguage`].forEach(e=>{this[e]=(...t)=>this.store[e](...t)}),[`addResource`,`addResources`,`addResourceBundle`,`removeResourceBundle`].forEach(e=>{this[e]=(...t)=>(this.store[e](...t),this)});let i=wi(),a=()=>{let e=(e,n)=>{this.isInitializing=!1,this.isInitialized&&!this.initializedStoreOnce&&this.logger.warn(`init: i18next is already initialized. You should call init just once!`),this.isInitialized=!0,this.options.isClone||this.logger.log(`initialized`,this.options),this.emit(`initialized`,this.options),i.resolve(n),t(e,n)};if((this.languages||this.isLanguageChangingTo)&&!this.isInitialized)return e(null,this.t.bind(this));this.changeLanguage(this.options.lng,e)};return this.options.resources||!this.options.initAsync?a():setTimeout(a,0),i}loadResources(e,t=pa){let n=t,r=K(e)?e:this.language;if(typeof e==`function`&&(n=e),!this.options.resources||this.options.partialBundledLanguages){if(r?.toLowerCase()===`cimode`&&(!this.options.preload||this.options.preload.length===0))return n();let e=[],t=t=>{t&&t!==`cimode`&&this.services.languageUtils.toResolveHierarchy(t).forEach(t=>{t!==`cimode`&&(e.includes(t)||e.push(t))})};r?t(r):this.services.languageUtils.getFallbackCodes(this.options.fallbackLng).forEach(e=>t(e)),this.options.preload?.forEach?.(e=>t(e)),this.services.backendConnector.load(e,this.options.ns,e=>{!e&&!this.resolvedLanguage&&this.language&&this.setResolvedLanguage(this.language),n(e)})}else n(null)}reloadResources(e,t,n){let r=wi();return typeof e==`function`&&(n=e,e=void 0),typeof t==`function`&&(n=t,t=void 0),e||=this.languages,t||=this.options.ns,n||=pa,this.services.backendConnector.reload(e,t,e=>{r.resolve(),n(e)}),r}use(e){if(!e)throw Error(`You are passing an undefined module! Please check the object you are passing to i18next.use()`);if(!e.type)throw Error(`You are passing a wrong module! Please check the object you are passing to i18next.use()`);return e.type===`backend`&&(this.modules.backend=e),(e.type===`logger`||e.log&&e.warn&&e.error)&&(this.modules.logger=e),e.type===`languageDetector`&&(this.modules.languageDetector=e),e.type===`i18nFormat`&&(this.modules.i18nFormat=e),e.type===`postProcessor`&&qi.addPostProcessor(e),e.type===`formatter`&&(this.modules.formatter=e),e.type===`3rdParty`&&this.modules.external.push(e),this}setResolvedLanguage(e){if(!(!e||!this.languages)&&![`cimode`,`dev`].includes(e)){for(let e=0;e<this.languages.length;e++){let t=this.languages[e];if(![`cimode`,`dev`].includes(t)&&this.store.hasLanguageSomeTranslations(t)){this.resolvedLanguage=t;break}}!this.resolvedLanguage&&!this.languages.includes(e)&&this.store.hasLanguageSomeTranslations(e)&&(this.resolvedLanguage=e,this.languages.unshift(e))}}changeLanguage(e,t){this.isLanguageChangingTo=e;let n=wi();this.emit(`languageChanging`,e);let r=e=>{this.language=e,this.languages=this.services.languageUtils.toResolveHierarchy(e),this.resolvedLanguage=void 0,this.setResolvedLanguage(e)},i=(i,a)=>{a?this.isLanguageChangingTo===e&&(r(a),this.translator.changeLanguage(a),this.isLanguageChangingTo=void 0,this.emit(`languageChanged`,a),this.logger.log(`languageChanged`,a)):this.isLanguageChangingTo=void 0,n.resolve((...e)=>this.t(...e)),t&&t(i,(...e)=>this.t(...e))},a=t=>{!e&&!t&&this.services.languageDetector&&(t=[]);let n=K(t)?t:t&&t[0],a=this.store.hasLanguageSomeTranslations(n)?n:this.services.languageUtils.getBestMatchFromCodes(K(t)?[t]:t);a&&(this.language||r(a),this.translator.language||this.translator.changeLanguage(a),this.services.languageDetector?.cacheUserLanguage?.(a)),this.loadResources(a,e=>{i(e,a)})};return!e&&this.services.languageDetector&&!this.services.languageDetector.async?a(this.services.languageDetector.detect()):!e&&this.services.languageDetector&&this.services.languageDetector.async?this.services.languageDetector.detect.length===0?this.services.languageDetector.detect().then(a):this.services.languageDetector.detect(a):a(e),n}getFixedT(e,t,n,r){let i=r?.scopeNs,a=(e,t,...r)=>{let o;o=typeof t==`object`?{...t}:this.options.overloadTranslationOptionHandler([e,t].concat(r)),o.lng=o.lng||a.lng,o.lngs=o.lngs||a.lngs;let s=o.ns!==void 0&&o.ns!==null;o.ns=o.ns||a.ns,o.keyPrefix!==``&&(o.keyPrefix=o.keyPrefix||n||a.keyPrefix);let c={...this.options,...o};Array.isArray(i)&&!s&&(c.ns=i),typeof o.keyPrefix==`function`&&(o.keyPrefix=Y(o.keyPrefix,c));let l=this.options.keySeparator||`.`,u;return o.keyPrefix&&Array.isArray(e)?u=e.map(e=>(typeof e==`function`&&(e=Y(e,c)),`${o.keyPrefix}${l}${e}`)):(typeof e==`function`&&(e=Y(e,c)),u=o.keyPrefix?`${o.keyPrefix}${l}${e}`:e),this.t(u,o)};return K(e)?a.lng=e:a.lngs=e,a.ns=t,a.keyPrefix=n,a}t(...e){return this.translator?.translate(...e)}exists(...e){return this.translator?.exists(...e)}setDefaultNamespace(e){this.options.defaultNS=e}hasLoadedNamespace(e,t={}){if(!this.isInitialized)return this.logger.warn(`hasLoadedNamespace: i18next was not initialized`,this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn(`hasLoadedNamespace: i18n.languages were undefined or empty`,this.languages),!1;let n=t.lng||this.resolvedLanguage||this.languages[0],r=this.options?this.options.fallbackLng:!1,i=this.languages[this.languages.length-1];if(n.toLowerCase()===`cimode`)return!0;let a=(e,t)=>{let n=this.services.backendConnector.state[`${e}|${t}`];return n===-1||n===0||n===2};if(t.precheck){let e=t.precheck(this,a);if(e!==void 0)return e}return!!(this.hasResourceBundle(n,e)||!this.services.backendConnector.backend||this.options.resources&&!this.options.partialBundledLanguages||a(n,e)&&(!r||a(i,e)))}loadNamespaces(e,t){let n=wi();return this.options.ns?(K(e)&&(e=[e]),e.forEach(e=>{this.options.ns.includes(e)||this.options.ns.push(e)}),this.loadResources(e=>{n.resolve(),t&&t(e)}),n):(t&&t(),Promise.resolve())}loadLanguages(e,t){let n=wi();K(e)&&(e=[e]);let r=this.options.preload||[],i=e.filter(e=>!r.includes(e)&&this.services.languageUtils.isSupportedCode(e));return i.length?(this.options.preload=r.concat(i),this.loadResources(e=>{n.resolve(),t&&t(e)}),n):(t&&t(),Promise.resolve())}dir(e){if(e||=this.resolvedLanguage||(this.languages?.length>0?this.languages[0]:this.language),!e)return`rtl`;try{let t=new Intl.Locale(e);if(t&&t.getTextInfo){let e=t.getTextInfo();if(e&&e.direction)return e.direction}}catch{}let t=`ar.shu.sqr.ssh.xaa.yhd.yud.aao.abh.abv.acm.acq.acw.acx.acy.adf.ads.aeb.aec.afb.ajp.apc.apd.arb.arq.ars.ary.arz.auz.avl.ayh.ayl.ayn.ayp.bbz.pga.he.iw.ps.pbt.pbu.pst.prp.prd.ug.ur.ydd.yds.yih.ji.yi.hbo.men.xmn.fa.jpr.peo.pes.prs.dv.sam.ckb`.split(`.`),n=this.services?.languageUtils||new Qi(da());return e.toLowerCase().indexOf(`-latn`)>1?`ltr`:t.includes(n.getLanguagePartFromCode(e))||e.toLowerCase().indexOf(`-arab`)>1?`rtl`:`ltr`}static createInstance(t={},n){let r=new e(t,n);return r.createInstance=e.createInstance,r}cloneInstance(t={},n=pa){let r=t.forkResourceStore;r&&delete t.forkResourceStore;let i={...this.options,...t,isClone:!0},a=new e(i);if((t.debug!==void 0||t.prefix!==void 0)&&(a.logger=a.logger.clone(t)),[`store`,`services`,`language`].forEach(e=>{a[e]=this[e]}),a.services={...this.services},a.services.utils={hasLoadedNamespace:a.hasLoadedNamespace.bind(a)},r&&(a.store=new Ki(Object.keys(this.store.data).reduce((e,t)=>(e[t]={...this.store.data[t]},e[t]=Object.keys(e[t]).reduce((n,r)=>(n[r]={...e[t][r]},n),e[t]),e),{}),i),a.services.resourceStore=a.store),t.interpolation){let e={...da().interpolation,...this.options.interpolation,...t.interpolation},n={...i,interpolation:e};a.services.interpolator=new ia(n)}return a.translator=new Zi(a.services,i),a.translator.on(`*`,(e,...t)=>{a.emit(e,...t)}),a.init(i,n),a.translator.options=i,a.translator.backendConnector.services.utils={hasLoadedNamespace:a.hasLoadedNamespace.bind(a)},a}toJSON(){return{options:this.options,store:this.store,language:this.language,languages:this.languages,resolvedLanguage:this.resolvedLanguage}}}.createInstance();X.createInstance,X.dir,X.init,X.loadResources,X.reloadResources,X.use,X.changeLanguage,X.getFixedT;var ha=X.t;X.exists,X.setDefaultNamespace,X.hasLoadedNamespace,X.loadNamespaces,X.loadLanguages;var ga=(e,t,n,r)=>{let i=[n,{code:t,...r||{}}];if(e?.services?.logger?.forward)return e.services.logger.forward(i,`warn`,`react-i18next::`,!0);Z(i[0])&&(i[0]=`react-i18next:: ${i[0]}`),e?.services?.logger?.warn?e.services.logger.warn(...i):console?.warn&&console.warn(...i)},_a={},va=(e,t,n,r)=>{Z(n)&&_a[n]||(Z(n)&&(_a[n]=new Date),ga(e,t,n,r))},ya=(e,t)=>()=>{if(e.isInitialized)t();else{let n=()=>{setTimeout(()=>{e.off(`initialized`,n)},0),t()};e.on(`initialized`,n)}},ba=(e,t,n)=>{e.loadNamespaces(t,ya(e,n))},xa=(e,t,n,r)=>{if(Z(n)&&(n=[n]),e.options.preload&&e.options.preload.indexOf(t)>-1)return ba(e,n,r);n.forEach(t=>{e.options.ns.indexOf(t)<0&&e.options.ns.push(t)}),e.loadLanguages(t,ya(e,r))},Sa=(e,t,n={})=>!t.languages||!t.languages.length?(va(t,`NO_LANGUAGES`,`i18n.languages were undefined or empty`,{languages:t.languages}),!0):t.hasLoadedNamespace(e,{lng:n.lng,precheck:(t,r)=>{if(n.bindI18n&&n.bindI18n.indexOf(`languageChanging`)>-1&&t.services.backendConnector.backend&&t.isLanguageChangingTo&&!r(t.isLanguageChangingTo,e))return!1}}),Z=e=>typeof e==`string`,Ca=e=>typeof e==`object`&&!!e,wa=/&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g,Ta={"&":`&`,"&":`&`,"<":`<`,"<":`<`,">":`>`,">":`>`,"'":`'`,"'":`'`,""":`"`,""":`"`," ":` `," ":` `,"©":`©`,"©":`©`,"®":`®`,"®":`®`,"…":`…`,"…":`…`,"/":`/`,"/":`/`},Ea=e=>Ta[e],Da=e=>e.replace(wa,Ea),Oa={bindI18n:`languageChanged`,bindI18nStore:``,transEmptyNodeValue:``,transSupportBasicHtmlNodes:!0,transWrapTextNodes:``,transKeepBasicHtmlNodesFor:[`br`,`strong`,`i`,`p`],useSuspense:!0,unescape:Da,transDefaultProps:void 0},ka=(e={})=>{Oa={...Oa,...e}},Aa=()=>Oa,ja,Ma=e=>{ja=e},Na=()=>ja,Pa={type:`3rdParty`,init(e){ka(e.options.react),Ma(e)}},Fa=(0,G.createContext)(),Ia=class{constructor(){this.usedNamespaces={}}addUsedNamespaces(e){e.forEach(e=>{this.usedNamespaces[e]||(this.usedNamespaces[e]=!0)})}getUsedNamespaces(){return Object.keys(this.usedNamespaces)}},La=t((e=>{var t=n();function r(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var i=typeof Object.is==`function`?Object.is:r,a=t.useState,o=t.useEffect,s=t.useLayoutEffect,c=t.useDebugValue;function l(e,t){var n=t(),r=a({inst:{value:n,getSnapshot:t}}),i=r[0].inst,l=r[1];return s(function(){i.value=n,i.getSnapshot=t,u(i)&&l({inst:i})},[e,n,t]),o(function(){return u(i)&&l({inst:i}),e(function(){u(i)&&l({inst:i})})},[e]),c(n),n}function u(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!i(e,n)}catch{return!0}}function d(e,t){return t()}var f=typeof window>`u`||window.document===void 0||window.document.createElement===void 0?d:l;e.useSyncExternalStore=t.useSyncExternalStore===void 0?f:t.useSyncExternalStore})),Ra=t(((e,t)=>{t.exports=La()})),za=Ra(),Ba={t:(e,t)=>{if(Z(t))return t;if(Ca(t)&&Z(t.defaultValue))return t.defaultValue;if(typeof e==`function`)return``;if(Array.isArray(e)){let t=e[e.length-1];return typeof t==`function`?``:t}return e},ready:!1},Va=()=>()=>{},Ha=(e,t={})=>{let{i18n:n}=t,{i18n:r,defaultNS:i}=(0,G.useContext)(Fa)||{},a=n||r||Na();a&&!a.reportNamespaces&&(a.reportNamespaces=new Ia),a||va(a,`NO_I18NEXT_INSTANCE`,`useTranslation: You will need to pass in an i18next instance by using initReactI18next or by passing it via props or context. In monorepo setups, make sure there is only one instance of react-i18next.`);let o=(0,G.useMemo)(()=>({...Aa(),...a?.options?.react,...t}),[a,t]),{useSuspense:s,keyPrefix:c}=o,l=e||i||a?.options?.defaultNS,u=Z(l)?[l]:l||[`translation`],d=(0,G.useMemo)(()=>u,u);a?.reportNamespaces?.addUsedNamespaces?.(d);let f=(0,G.useRef)(0),p=(0,G.useCallback)(e=>{if(!a)return Va;let{bindI18n:t,bindI18nStore:n}=o,r=()=>{f.current+=1,e()};return t&&a.on(t,r),n&&a.store.on(n,r),()=>{t&&t.split(` `).forEach(e=>a.off(e,r)),n&&n.split(` `).forEach(e=>a.store.off(e,r))}},[a,o]),m=(0,G.useRef)(),h=(0,G.useCallback)(()=>{if(!a)return Ba;let e=!!(a.isInitialized||a.initializedStoreOnce)&&d.every(e=>Sa(e,a,o)),n=t.lng||a.language,r=f.current,i=m.current;if(i&&i.ready===e&&i.lng===n&&i.keyPrefix===c&&i.revision===r)return i;let s={t:a.getFixedT(n,o.nsMode===`fallback`?d:d[0],c,{scopeNs:d}),ready:e,lng:n,keyPrefix:c,revision:r};return m.current=s,s},[a,d,c,o,t.lng]),[g,ee]=(0,G.useState)(0),{t:_,ready:v}=(0,za.useSyncExternalStore)(p,h,h);(0,G.useEffect)(()=>{if(a&&!v&&!s){let e=()=>ee(e=>e+1);t.lng?xa(a,t.lng,d,e):ba(a,d,e)}},[a,t.lng,d,v,s,g]);let y=a||{},b=(0,G.useRef)(null),te=(0,G.useRef)(),x=e=>{let t=Object.getOwnPropertyDescriptors(e);t.__original&&delete t.__original;let n=Object.create(Object.getPrototypeOf(e),t);if(!Object.prototype.hasOwnProperty.call(n,`__original`))try{Object.defineProperty(n,`__original`,{value:e,writable:!1,enumerable:!1,configurable:!1})}catch{}return n},S=(0,G.useMemo)(()=>{let e=y,t=e?.language,n=e;e&&(b.current&&b.current.__original===e&&te.current===t?n=b.current:(n=x(e),b.current=n,te.current=t));let r=!v&&!s?(...e)=>(va(a,`USE_T_BEFORE_READY`,`useTranslation: t was called before ready. When using useSuspense: false, make sure to check the ready flag before using t.`),_(...e)):_,i=[r,n,v];return i.t=r,i.i18n=n,i.ready=v,i},[_,y,v,y.resolvedLanguage,y.language,y.languages]);if(a&&s&&!v){let e=!1;try{e=!1}catch{}throw e&&va(a,`SUSPENDED_WHILE_LOADING`,`useTranslation: suspended while translations are loading (useSuspense is true by default). Add a <Suspense> boundary above this component, or set react.useSuspense: false in the i18next init options. https://react.i18next.com/latest/usetranslation-hook`),new Promise(e=>{let n=()=>e();t.lng?xa(a,t.lng,d,n):ba(a,d,n)})}return S},Ua=[`__proto__`,`constructor`,`prototype`];function Wa(e,t,n){function r(e){return e&&e.indexOf(`###`)>-1?e.replace(/###/g,`.`):e}function i(){return!e||typeof e==`string`}for(var a=typeof t==`string`?t.split(`.`):[].concat(t);a.length>1;){if(i())return{};var o=r(a.shift());if(Ua.indexOf(o)>-1)return{};!e[o]&&n&&(e[o]=new n),e=e[o]}if(i())return{};var s=r(a.shift());return Ua.indexOf(s)>-1?{}:{obj:e,k:s}}function Ga(e,t,n){var r=Wa(e,t,Object),i=r.obj,a=r.k;i!==void 0&&(i[a]=n)}function Ka(e,t){var n=Wa(e,t),r=n.obj,i=n.k;if(r)return r[i]}var qa=[],Ja=qa.forEach,Ya=qa.slice;function Xa(e){return Ja.call(Ya.call(arguments,1),function(t){if(t)for(var n=0,r=Object.keys(t);n<r.length;n++){var i=r[n];Ua.indexOf(i)>-1||e[i]===void 0&&(e[i]=t[i])}}),e}function Za(e,t){let n=t&&t.cache?t.cache:so,r=t&&t.serializer?t.serializer:ao;return(t&&t.strategy?t.strategy:no)(e,{cache:n,serializer:r})}function Qa(e){return e==null||typeof e==`number`||typeof e==`boolean`}function $a(e,t,n,r){let i=Qa(r)?r:n(r),a=t.get(i);return a===void 0&&(a=e.call(this,r),t.set(i,a)),a}function eo(e,t,n){let r=Array.prototype.slice.call(arguments,3),i=n(r),a=t.get(i);return a===void 0&&(a=e.apply(this,r),t.set(i,a)),a}function to(e,t,n,r,i){return n.bind(t,e,r,i)}function no(e,t){let n=e.length===1?$a:eo;return to(e,this,n,t.cache.create(),t.serializer)}function ro(e,t){return to(e,this,eo,t.cache.create(),t.serializer)}function io(e,t){return to(e,this,$a,t.cache.create(),t.serializer)}var ao=function(){return JSON.stringify(arguments)},oo=class{constructor(){this.cache=Object.create(null)}get(e){return this.cache[e]}set(e,t){this.cache[e]=t}},so={create:function(){return new oo}},co={variadic:ro,monadic:io},lo=/(?:[Eec]{1,6}|G{1,5}|[Qq]{1,5}|(?:[yYur]+|U{1,5})|[ML]{1,5}|d{1,2}|D{1,3}|F{1}|[abB]{1,5}|[hkHK]{1,2}|w{1,2}|W{1}|m{1,2}|s{1,2}|[zZOvVxX]{1,4})(?=([^']*'[^']*')*[^']*$)/g;function uo(e){let t={};return e.replace(lo,e=>{let n=e.length;switch(e[0]){case`G`:t.era=n===4?`long`:n===5?`narrow`:`short`;break;case`y`:t.year=n===2?`2-digit`:`numeric`;break;case`Y`:case`u`:case`U`:case`r`:throw RangeError("`Y/u/U/r` (year) patterns are not supported, use `y` instead");case`q`:case`Q`:throw RangeError("`q/Q` (quarter) patterns are not supported");case`M`:case`L`:t.month=[`numeric`,`2-digit`,`short`,`long`,`narrow`][n-1];break;case`w`:case`W`:throw RangeError("`w/W` (week) patterns are not supported");case`d`:t.day=[`numeric`,`2-digit`][n-1];break;case`D`:case`F`:case`g`:throw RangeError("`D/F/g` (day) patterns are not supported, use `d` instead");case`E`:t.weekday=n===4?`long`:n===5?`narrow`:`short`;break;case`e`:if(n<4)throw RangeError("`e..eee` (weekday) patterns are not supported");t.weekday=[`short`,`long`,`narrow`,`short`][n-3];break;case`c`:if(n<4)throw RangeError("`c..ccc` (weekday) patterns are not supported");t.weekday=[`short`,`long`,`narrow`,`short`][n-3];break;case`a`:t.hour12=!0;break;case`b`:case`B`:throw RangeError("`b/B` (period) patterns are not supported, use `a` instead");case`h`:t.hourCycle=`h12`,t.hour=[`numeric`,`2-digit`][n-1];break;case`H`:t.hourCycle=`h23`,t.hour=[`numeric`,`2-digit`][n-1];break;case`K`:t.hourCycle=`h11`,t.hour=[`numeric`,`2-digit`][n-1];break;case`k`:t.hourCycle=`h24`,t.hour=[`numeric`,`2-digit`][n-1];break;case`j`:case`J`:case`C`:throw RangeError("`j/J/C` (hour) patterns are not supported, use `h/H/K/k` instead");case`m`:t.minute=[`numeric`,`2-digit`][n-1];break;case`s`:t.second=[`numeric`,`2-digit`][n-1];break;case`S`:case`A`:throw RangeError("`S/A` (second) patterns are not supported, use `s` instead");case`z`:t.timeZoneName=n<4?`short`:`long`;break;case`Z`:case`O`:case`v`:case`V`:case`X`:case`x`:throw RangeError("`Z/O/v/V/X/x` (timeZone) patterns are not supported, use `z` instead")}return``}),t}var fo=/[\t-\r \x85\u200E\u200F\u2028\u2029]/i;function po(e){if(e.length===0)throw Error(`Number skeleton cannot be empty`);let t=e.split(fo).filter(e=>e.length>0),n=[];for(let e of t){let t=e.split(`/`);if(t.length===0)throw Error(`Invalid number skeleton`);let[r,...i]=t;for(let e of i)if(e.length===0)throw Error(`Invalid number skeleton`);n.push({stem:r,options:i})}return n}function mo(e){return e.replace(/^(.*?)-/,``)}var ho=/^\.(?:(0+)(\*)?|(#+)|(0+)(#+))$/g,go=/^(@+)?(\+|#+)?[rs]?$/g,_o=/(\*)(0+)|(#+)(0+)|(0+)/g,vo=/^(0+)$/;function yo(e){let t={};return e[e.length-1]===`r`?t.roundingPriority=`morePrecision`:e[e.length-1]===`s`&&(t.roundingPriority=`lessPrecision`),e.replace(go,function(e,n,r){return typeof r==`string`?r===`+`?t.minimumSignificantDigits=n.length:n[0]===`#`?t.maximumSignificantDigits=n.length:(t.minimumSignificantDigits=n.length,t.maximumSignificantDigits=n.length+(typeof r==`string`?r.length:0)):(t.minimumSignificantDigits=n.length,t.maximumSignificantDigits=n.length),``}),t}function bo(e){switch(e){case`sign-auto`:return{signDisplay:`auto`};case`sign-accounting`:case`()`:return{currencySign:`accounting`};case`sign-always`:case`+!`:return{signDisplay:`always`};case`sign-accounting-always`:case`()!`:return{signDisplay:`always`,currencySign:`accounting`};case`sign-except-zero`:case`+?`:return{signDisplay:`exceptZero`};case`sign-accounting-except-zero`:case`()?`:return{signDisplay:`exceptZero`,currencySign:`accounting`};case`sign-never`:case`+_`:return{signDisplay:`never`}}}function xo(e){let t;if(e[0]===`E`&&e[1]===`E`?(t={notation:`engineering`},e=e.slice(2)):e[0]===`E`&&(t={notation:`scientific`},e=e.slice(1)),t){let n=e.slice(0,2);if(n===`+!`?(t.signDisplay=`always`,e=e.slice(2)):n===`+?`&&(t.signDisplay=`exceptZero`,e=e.slice(2)),!vo.test(e))throw Error(`Malformed concise eng/scientific notation`);t.minimumIntegerDigits=e.length}return t}function So(e){return bo(e)||{}}function Co(e){let t={};for(let n of e){switch(n.stem){case`percent`:case`%`:t.style=`percent`;continue;case`%x100`:t.style=`percent`,t.scale=100;continue;case`currency`:t.style=`currency`,t.currency=n.options[0];continue;case`group-off`:case`,_`:t.useGrouping=!1;continue;case`precision-integer`:case`.`:t.maximumFractionDigits=0;continue;case`measure-unit`:case`unit`:t.style=`unit`,t.unit=mo(n.options[0]);continue;case`compact-short`:case`K`:t.notation=`compact`,t.compactDisplay=`short`;continue;case`compact-long`:case`KK`:t.notation=`compact`,t.compactDisplay=`long`;continue;case`scientific`:t={...t,notation:`scientific`,...n.options.reduce((e,t)=>({...e,...So(t)}),{})};continue;case`engineering`:t={...t,notation:`engineering`,...n.options.reduce((e,t)=>({...e,...So(t)}),{})};continue;case`notation-simple`:t.notation=`standard`;continue;case`unit-width-narrow`:t.currencyDisplay=`narrowSymbol`,t.unitDisplay=`narrow`;continue;case`unit-width-short`:t.currencyDisplay=`code`,t.unitDisplay=`short`;continue;case`unit-width-full-name`:t.currencyDisplay=`name`,t.unitDisplay=`long`;continue;case`unit-width-iso-code`:t.currencyDisplay=`symbol`;continue;case`scale`:t.scale=parseFloat(n.options[0]);continue;case`rounding-mode-floor`:t.roundingMode=`floor`;continue;case`rounding-mode-ceiling`:t.roundingMode=`ceil`;continue;case`rounding-mode-down`:t.roundingMode=`trunc`;continue;case`rounding-mode-up`:t.roundingMode=`expand`;continue;case`rounding-mode-half-even`:t.roundingMode=`halfEven`;continue;case`rounding-mode-half-down`:t.roundingMode=`halfTrunc`;continue;case`rounding-mode-half-up`:t.roundingMode=`halfExpand`;continue;case`integer-width`:if(n.options.length>1)throw RangeError(`integer-width stems only accept a single optional option`);n.options[0].replace(_o,function(e,n,r,i,a,o){if(n)t.minimumIntegerDigits=r.length;else if(i&&a)throw Error(`We currently do not support maximum integer digits`);else if(o)throw Error(`We currently do not support exact integer digits`);return``});continue}if(vo.test(n.stem)){t.minimumIntegerDigits=n.stem.length;continue}if(ho.test(n.stem)){if(n.options.length>1)throw RangeError(`Fraction-precision stems only accept a single optional option`);n.stem.replace(ho,function(e,n,r,i,a,o){return r===`*`?t.minimumFractionDigits=n.length:i&&i[0]===`#`?t.maximumFractionDigits=i.length:a&&o?(t.minimumFractionDigits=a.length,t.maximumFractionDigits=a.length+o.length):(t.minimumFractionDigits=n.length,t.maximumFractionDigits=n.length),``});let e=n.options[0];e===`w`?t={...t,trailingZeroDisplay:`stripIfInteger`}:e&&(t={...t,...yo(e)});continue}if(go.test(n.stem)){t={...t,...yo(n.stem)};continue}let e=bo(n.stem);e&&(t={...t,...e});let r=xo(n.stem);r&&(t={...t,...r})}return t}var wo=function(e){return e[e.EXPECT_ARGUMENT_CLOSING_BRACE=1]=`EXPECT_ARGUMENT_CLOSING_BRACE`,e[e.EMPTY_ARGUMENT=2]=`EMPTY_ARGUMENT`,e[e.MALFORMED_ARGUMENT=3]=`MALFORMED_ARGUMENT`,e[e.EXPECT_ARGUMENT_TYPE=4]=`EXPECT_ARGUMENT_TYPE`,e[e.INVALID_ARGUMENT_TYPE=5]=`INVALID_ARGUMENT_TYPE`,e[e.EXPECT_ARGUMENT_STYLE=6]=`EXPECT_ARGUMENT_STYLE`,e[e.INVALID_NUMBER_SKELETON=7]=`INVALID_NUMBER_SKELETON`,e[e.INVALID_DATE_TIME_SKELETON=8]=`INVALID_DATE_TIME_SKELETON`,e[e.EXPECT_NUMBER_SKELETON=9]=`EXPECT_NUMBER_SKELETON`,e[e.EXPECT_DATE_TIME_SKELETON=10]=`EXPECT_DATE_TIME_SKELETON`,e[e.UNCLOSED_QUOTE_IN_ARGUMENT_STYLE=11]=`UNCLOSED_QUOTE_IN_ARGUMENT_STYLE`,e[e.EXPECT_SELECT_ARGUMENT_OPTIONS=12]=`EXPECT_SELECT_ARGUMENT_OPTIONS`,e[e.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE=13]=`EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE`,e[e.INVALID_PLURAL_ARGUMENT_OFFSET_VALUE=14]=`INVALID_PLURAL_ARGUMENT_OFFSET_VALUE`,e[e.EXPECT_SELECT_ARGUMENT_SELECTOR=15]=`EXPECT_SELECT_ARGUMENT_SELECTOR`,e[e.EXPECT_PLURAL_ARGUMENT_SELECTOR=16]=`EXPECT_PLURAL_ARGUMENT_SELECTOR`,e[e.EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT=17]=`EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT`,e[e.EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT=18]=`EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT`,e[e.INVALID_PLURAL_ARGUMENT_SELECTOR=19]=`INVALID_PLURAL_ARGUMENT_SELECTOR`,e[e.DUPLICATE_PLURAL_ARGUMENT_SELECTOR=20]=`DUPLICATE_PLURAL_ARGUMENT_SELECTOR`,e[e.DUPLICATE_SELECT_ARGUMENT_SELECTOR=21]=`DUPLICATE_SELECT_ARGUMENT_SELECTOR`,e[e.MISSING_OTHER_CLAUSE=22]=`MISSING_OTHER_CLAUSE`,e[e.INVALID_TAG=23]=`INVALID_TAG`,e[e.INVALID_TAG_NAME=25]=`INVALID_TAG_NAME`,e[e.UNMATCHED_CLOSING_TAG=26]=`UNMATCHED_CLOSING_TAG`,e[e.UNCLOSED_TAG=27]=`UNCLOSED_TAG`,e}({});function To(e){return e.type===0}function Eo(e){return e.type===1}function Do(e){return e.type===2}function Oo(e){return e.type===3}function ko(e){return e.type===4}function Ao(e){return e.type===5}function jo(e){return e.type===6}function Mo(e){return e.type===7}function No(e){return e.type===8}function Po(e){return!!(e&&typeof e==`object`&&e.type===0)}function Fo(e){return!!(e&&typeof e==`object`&&e.type===1)}var Io=/[ \xA0\u1680\u2000-\u200A\u202F\u205F\u3000]/,Lo={"001":[`H`,`h`],419:[`h`,`H`,`hB`,`hb`],AC:[`H`,`h`,`hb`,`hB`],AD:[`H`,`hB`],AE:[`h`,`hB`,`hb`,`H`],AF:[`H`,`hb`,`hB`,`h`],AG:[`h`,`hb`,`H`,`hB`],AI:[`H`,`h`,`hb`,`hB`],AL:[`h`,`H`,`hB`],AM:[`H`,`hB`],AO:[`H`,`hB`],AR:[`h`,`H`,`hB`,`hb`],AS:[`h`,`H`],AT:[`H`,`hB`],AU:[`h`,`hb`,`H`,`hB`],AW:[`H`,`hB`],AX:[`H`],AZ:[`H`,`hB`,`h`],BA:[`H`,`hB`,`h`],BB:[`h`,`hb`,`H`,`hB`],BD:[`h`,`hB`,`H`],BE:[`H`,`hB`],BF:[`H`,`hB`],BG:[`H`,`hB`,`h`],BH:[`h`,`hB`,`hb`,`H`],BI:[`H`,`h`],BJ:[`H`,`hB`],BL:[`H`,`hB`],BM:[`h`,`hb`,`H`,`hB`],BN:[`hb`,`hB`,`h`,`H`],BO:[`h`,`H`,`hB`,`hb`],BQ:[`H`],BR:[`H`,`hB`],BS:[`h`,`hb`,`H`,`hB`],BT:[`h`,`H`],BW:[`H`,`h`,`hb`,`hB`],BY:[`H`,`h`],BZ:[`H`,`h`,`hb`,`hB`],CA:[`h`,`hb`,`H`,`hB`],CC:[`H`,`h`,`hb`,`hB`],CD:[`hB`,`H`],CF:[`H`,`h`,`hB`],CG:[`H`,`hB`],CH:[`H`,`hB`,`h`],CI:[`H`,`hB`],CK:[`H`,`h`,`hb`,`hB`],CL:[`h`,`H`,`hB`,`hb`],CM:[`H`,`h`,`hB`],CN:[`H`,`hB`,`hb`,`h`],CO:[`h`,`H`,`hB`,`hb`],CP:[`H`],CR:[`h`,`H`,`hB`,`hb`],CU:[`h`,`H`,`hB`,`hb`],CV:[`H`,`hB`],CW:[`H`,`hB`],CX:[`H`,`h`,`hb`,`hB`],CY:[`h`,`H`,`hb`,`hB`],CZ:[`H`],DE:[`H`,`hB`],DG:[`H`,`h`,`hb`,`hB`],DJ:[`h`,`H`],DK:[`H`],DM:[`h`,`hb`,`H`,`hB`],DO:[`h`,`H`,`hB`,`hb`],DZ:[`h`,`hB`,`hb`,`H`],EA:[`H`,`h`,`hB`,`hb`],EC:[`h`,`H`,`hB`,`hb`],EE:[`H`,`hB`],EG:[`h`,`hB`,`hb`,`H`],EH:[`h`,`hB`,`hb`,`H`],ER:[`h`,`H`],ES:[`H`,`hB`,`h`,`hb`],ET:[`hB`,`hb`,`h`,`H`],FI:[`H`],FJ:[`h`,`hb`,`H`,`hB`],FK:[`H`,`h`,`hb`,`hB`],FM:[`h`,`hb`,`H`,`hB`],FO:[`H`,`h`],FR:[`H`,`hB`],GA:[`H`,`hB`],GB:[`H`,`h`,`hb`,`hB`],GD:[`h`,`hb`,`H`,`hB`],GE:[`H`,`hB`,`h`],GF:[`H`,`hB`],GG:[`H`,`h`,`hb`,`hB`],GH:[`h`,`H`],GI:[`H`,`h`,`hb`,`hB`],GL:[`H`,`h`],GM:[`h`,`hb`,`H`,`hB`],GN:[`H`,`hB`],GP:[`H`,`hB`],GQ:[`H`,`hB`,`h`,`hb`],GR:[`h`,`H`,`hb`,`hB`],GS:[`H`,`h`,`hb`,`hB`],GT:[`h`,`H`,`hB`,`hb`],GU:[`h`,`hb`,`H`,`hB`],GW:[`H`,`hB`],GY:[`h`,`hb`,`H`,`hB`],HK:[`h`,`hB`,`hb`,`H`],HN:[`h`,`H`,`hB`,`hb`],HR:[`H`,`hB`],HU:[`H`,`h`],IC:[`H`,`h`,`hB`,`hb`],ID:[`H`],IE:[`H`,`h`,`hb`,`hB`],IL:[`H`,`hB`],IM:[`H`,`h`,`hb`,`hB`],IN:[`h`,`H`],IO:[`H`,`h`,`hb`,`hB`],IQ:[`h`,`hB`,`hb`,`H`],IR:[`hB`,`H`],IS:[`H`],IT:[`H`,`hB`],JE:[`H`,`h`,`hb`,`hB`],JM:[`h`,`hb`,`H`,`hB`],JO:[`h`,`hB`,`hb`,`H`],JP:[`H`,`K`,`h`],KE:[`hB`,`hb`,`H`,`h`],KG:[`H`,`h`,`hB`,`hb`],KH:[`hB`,`h`,`H`,`hb`],KI:[`h`,`hb`,`H`,`hB`],KM:[`H`,`h`,`hB`,`hb`],KN:[`h`,`hb`,`H`,`hB`],KP:[`h`,`H`,`hB`,`hb`],KR:[`h`,`H`,`hB`,`hb`],KW:[`h`,`hB`,`hb`,`H`],KY:[`h`,`hb`,`H`,`hB`],KZ:[`H`,`hB`],LA:[`H`,`hb`,`hB`,`h`],LB:[`h`,`hB`,`hb`,`H`],LC:[`h`,`hb`,`H`,`hB`],LI:[`H`,`hB`,`h`],LK:[`H`,`h`,`hB`,`hb`],LR:[`h`,`hb`,`H`,`hB`],LS:[`h`,`H`],LT:[`H`,`h`,`hb`,`hB`],LU:[`H`,`h`,`hB`],LV:[`H`,`hB`,`hb`,`h`],LY:[`h`,`hB`,`hb`,`H`],MA:[`H`,`h`,`hB`,`hb`],MC:[`H`,`hB`],MD:[`H`,`hB`],ME:[`H`,`hB`,`h`],MF:[`H`,`hB`],MG:[`H`,`h`],MH:[`h`,`hb`,`H`,`hB`],MK:[`H`,`h`,`hb`,`hB`],ML:[`H`],MM:[`hB`,`hb`,`H`,`h`],MN:[`H`,`h`,`hb`,`hB`],MO:[`h`,`hB`,`hb`,`H`],MP:[`h`,`hb`,`H`,`hB`],MQ:[`H`,`hB`],MR:[`h`,`hB`,`hb`,`H`],MS:[`H`,`h`,`hb`,`hB`],MT:[`H`,`h`],MU:[`H`,`h`],MV:[`H`,`h`],MW:[`h`,`hb`,`H`,`hB`],MX:[`h`,`H`,`hB`,`hb`],MY:[`hb`,`hB`,`h`,`H`],MZ:[`H`,`hB`],NA:[`h`,`H`,`hB`,`hb`],NC:[`H`,`hB`],NE:[`H`],NF:[`H`,`h`,`hb`,`hB`],NG:[`H`,`h`,`hb`,`hB`],NI:[`h`,`H`,`hB`,`hb`],NL:[`H`,`hB`],NO:[`H`,`h`],NP:[`H`,`h`,`hB`],NR:[`H`,`h`,`hb`,`hB`],NU:[`H`,`h`,`hb`,`hB`],NZ:[`h`,`hb`,`H`,`hB`],OM:[`h`,`hB`,`hb`,`H`],PA:[`h`,`H`,`hB`,`hb`],PE:[`h`,`H`,`hB`,`hb`],PF:[`H`,`h`,`hB`],PG:[`h`,`H`],PH:[`h`,`hB`,`hb`,`H`],PK:[`h`,`hB`,`H`],PL:[`H`,`h`],PM:[`H`,`hB`],PN:[`H`,`h`,`hb`,`hB`],PR:[`h`,`H`,`hB`,`hb`],PS:[`h`,`hB`,`hb`,`H`],PT:[`H`,`hB`],PW:[`h`,`H`],PY:[`h`,`H`,`hB`,`hb`],QA:[`h`,`hB`,`hb`,`H`],RE:[`H`,`hB`],RO:[`H`,`hB`],RS:[`H`,`hB`,`h`],RU:[`H`],RW:[`H`,`h`],SA:[`h`,`hB`,`hb`,`H`],SB:[`h`,`hb`,`H`,`hB`],SC:[`H`,`h`,`hB`],SD:[`h`,`hB`,`hb`,`H`],SE:[`H`],SG:[`h`,`hb`,`H`,`hB`],SH:[`H`,`h`,`hb`,`hB`],SI:[`H`,`hB`],SJ:[`H`],SK:[`H`],SL:[`h`,`hb`,`H`,`hB`],SM:[`H`,`h`,`hB`],SN:[`H`,`h`,`hB`],SO:[`h`,`H`],SR:[`H`,`hB`],SS:[`h`,`hb`,`H`,`hB`],ST:[`H`,`hB`],SV:[`h`,`H`,`hB`,`hb`],SX:[`H`,`h`,`hb`,`hB`],SY:[`h`,`hB`,`hb`,`H`],SZ:[`h`,`hb`,`H`,`hB`],TA:[`H`,`h`,`hb`,`hB`],TC:[`h`,`hb`,`H`,`hB`],TD:[`h`,`H`,`hB`],TF:[`H`,`h`,`hB`],TG:[`H`,`hB`],TH:[`H`,`h`],TJ:[`H`,`h`],TL:[`H`,`hB`,`hb`,`h`],TM:[`H`,`h`],TN:[`h`,`hB`,`hb`,`H`],TO:[`h`,`H`],TR:[`H`,`hB`],TT:[`h`,`hb`,`H`,`hB`],TW:[`hB`,`hb`,`h`,`H`],TZ:[`hB`,`hb`,`H`,`h`],UA:[`H`,`hB`,`h`],UG:[`hB`,`hb`,`H`,`h`],UM:[`h`,`hb`,`H`,`hB`],US:[`h`,`hb`,`H`,`hB`],UY:[`h`,`H`,`hB`,`hb`],UZ:[`H`,`hB`,`h`],VA:[`H`,`h`,`hB`],VC:[`h`,`hb`,`H`,`hB`],VE:[`h`,`H`,`hB`,`hb`],VG:[`h`,`hb`,`H`,`hB`],VI:[`h`,`hb`,`H`,`hB`],VN:[`H`,`h`],VU:[`h`,`H`],WF:[`H`,`hB`],WS:[`h`,`H`],XK:[`H`,`hB`,`h`],YE:[`h`,`hB`,`hb`,`H`],YT:[`H`,`hB`],ZA:[`H`,`h`,`hb`,`hB`],ZM:[`h`,`hb`,`H`,`hB`],ZW:[`H`,`h`],"af-ZA":[`H`,`h`,`hB`,`hb`],"ar-001":[`h`,`hB`,`hb`,`H`],"ca-ES":[`H`,`h`,`hB`],"en-001":[`h`,`hb`,`H`,`hB`],"en-HK":[`h`,`hb`,`H`,`hB`],"en-IL":[`H`,`h`,`hb`,`hB`],"en-MY":[`h`,`hb`,`H`,`hB`],"es-BR":[`H`,`h`,`hB`,`hb`],"es-ES":[`H`,`h`,`hB`,`hb`],"es-GQ":[`H`,`h`,`hB`,`hb`],"fr-CA":[`H`,`h`,`hB`],"gl-ES":[`H`,`h`,`hB`],"gu-IN":[`hB`,`hb`,`h`,`H`],"hi-IN":[`hB`,`h`,`H`],"it-CH":[`H`,`h`,`hB`],"it-IT":[`H`,`h`,`hB`],"kn-IN":[`hB`,`h`,`H`],"ku-SY":[`H`,`hB`],"ml-IN":[`hB`,`h`,`H`],"mr-IN":[`hB`,`hb`,`h`,`H`],"pa-IN":[`hB`,`hb`,`h`,`H`],"ta-IN":[`hB`,`h`,`hb`,`H`],"te-IN":[`hB`,`h`,`H`],"zu-ZA":[`H`,`hB`,`hb`,`h`]};function Ro(e,t){let n=``;for(let r=0;r<e.length;r++){let i=e.charAt(r);if(i===`j`){let a=0;for(;r+1<e.length&&e.charAt(r+1)===i;)a++,r++;let o=1+(a&1),s=a<2?1:3+(a>>1),c=zo(t);for((c==`H`||c==`k`)&&(s=0);s-- >0;)n+=`a`;for(;o-- >0;)n=c+n}else i===`J`?n+=`H`:n+=i}return n}function zo(e){let t=e.hourCycle;if(t===void 0&&e.hourCycles&&e.hourCycles.length&&(t=e.hourCycles[0]),t)switch(t){case`h24`:return`k`;case`h23`:return`H`;case`h12`:return`h`;case`h11`:return`K`;default:throw Error(`Invalid hourCycle`)}let n=e.language,r;return n!==`root`&&(r=e.maximize().region),(Lo[r||``]||Lo[n||``]||Lo[`${n}-001`]||Lo[`001`])[0]}var Bo=RegExp(`^${Io.source}*`),Vo=RegExp(`${Io.source}*$`);function Q(e,t){return{start:e,end:t}}var Ho=!!Object.fromEntries,Uo=!!String.prototype.trimStart,Wo=!!String.prototype.trimEnd,Go=Ho?Object.fromEntries:function(e){let t={};for(let[n,r]of e)t[n]=r;return t},Ko=Uo?function(e){return e.trimStart()}:function(e){return e.replace(Bo,``)},qo=Wo?function(e){return e.trimEnd()}:function(e){return e.replace(Vo,``)},Jo=RegExp(`([^\\p{White_Space}\\p{Pattern_Syntax}]*)`,`yu`);function Yo(e,t){return Jo.lastIndex=t,Jo.exec(e)[1]??``}function Xo(e){if(e.length===0)return null;let t=1,n=1;for(let r=0;r<e.length;){let i=e.charCodeAt(r);switch(i){case 35:case 39:case 60:case 123:case 125:return null}if(i===10)t++,n=1,r++;else if(n++,i>=55296&&i<=56319&&r+1<e.length){let t=e.charCodeAt(r+1);r+=t>=56320&&t<=57343?2:1}else r++}return{offset:e.length,line:t,column:n}}var Zo=class{constructor(e,t={}){this.message=e,this.position={offset:0,line:1,column:1},this.ignoreTag=!!t.ignoreTag,this.locale=t.locale,this.requiresOtherClause=!!t.requiresOtherClause,this.shouldParseSkeletons=!!t.shouldParseSkeletons}parse(){if(this.offset()!==0)throw Error(`parser can only be used once`);if(this.message.length>0){let e=this.message.charCodeAt(0);if(e!==35&&e!==39&&e!==60&&e!==123&&e!==125){let e=Xo(this.message);if(e){let t=this.clonePosition();return this.position=e,{val:[{type:0,value:this.message,location:Q(t,this.clonePosition())}],err:null}}}}return this.parseMessage(0,``,!1)}parseMessage(e,t,n){let r=[];for(;!this.isEOF();){let i=this.char();if(i===123){let t=this.parseArgument(e,n);if(t.err)return t;r.push(t.val)}else if(i===125&&e>0)break;else if(i===35&&(t===`plural`||t===`selectordinal`)){let e=this.clonePosition();this.bump(),r.push({type:7,location:Q(e,this.clonePosition())})}else if(i===60&&!this.ignoreTag&&this.peek()===47){if(n)break;return this.error(26,Q(this.clonePosition(),this.clonePosition()))}else if(i===60&&!this.ignoreTag&&Qo(this.peek()||0)){let n=this.parseTag(e,t);if(n.err)return n;r.push(n.val)}else{let n=this.parseLiteral(e,t);if(n.err)return n;r.push(n.val)}}return{val:r,err:null}}parseTag(e,t){let n=this.clonePosition();this.bump();let r=this.parseTagName();if(this.bumpSpace(),this.bumpIf(`/>`))return{val:{type:0,value:`<${r}/>`,location:Q(n,this.clonePosition())},err:null};if(this.bumpIf(`>`)){let i=this.parseMessage(e+1,t,!0);if(i.err)return i;let a=i.val,o=this.clonePosition();if(this.bumpIf(`</`)){if(this.isEOF()||!Qo(this.char()))return this.error(23,Q(o,this.clonePosition()));let e=this.clonePosition();return r===this.parseTagName()?(this.bumpSpace(),this.bumpIf(`>`)?{val:{type:8,value:r,children:a,location:Q(n,this.clonePosition())},err:null}:this.error(23,Q(o,this.clonePosition()))):this.error(26,Q(e,this.clonePosition()))}else return this.error(27,Q(n,this.clonePosition()))}else return this.error(23,Q(n,this.clonePosition()))}parseTagName(){let e=this.offset();for(this.bump();!this.isEOF()&&es(this.char());)this.bump();return this.message.slice(e,this.offset())}parseLiteral(e,t){let n=this.clonePosition(),r=``;for(;;){let n=this.tryParseQuote(t);if(n){r+=n;continue}let i=this.tryParseUnquoted(e,t);if(i){r+=i;continue}let a=this.tryParseLeftAngleBracket();if(a){r+=a;continue}break}let i=Q(n,this.clonePosition());return{val:{type:0,value:r,location:i},err:null}}tryParseLeftAngleBracket(){return!this.isEOF()&&this.char()===60&&(this.ignoreTag||!$o(this.peek()||0))?(this.bump(),`<`):null}tryParseQuote(e){if(this.isEOF()||this.char()!==39)return null;switch(this.peek()){case 39:return this.bump(),this.bump(),`'`;case 123:case 60:case 62:case 125:break;case 35:if(e===`plural`||e===`selectordinal`)break;return null;default:return null}this.bump();let t=[this.char()];for(this.bump();!this.isEOF();){let e=this.char();if(e===39)if(this.peek()===39)t.push(39),this.bump();else{this.bump();break}else t.push(e);this.bump()}return String.fromCodePoint(...t)}tryParseUnquoted(e,t){if(this.isEOF())return null;let n=this.char();return n===60||n===123||n===35&&(t===`plural`||t===`selectordinal`)||n===125&&e>0?null:(this.bump(),String.fromCodePoint(n))}parseArgument(e,t){let n=this.clonePosition();if(this.bump(),this.bumpSpace(),this.isEOF())return this.error(1,Q(n,this.clonePosition()));if(this.char()===125)return this.bump(),this.error(2,Q(n,this.clonePosition()));let r=this.parseIdentifierIfPossible().value;if(!r)return this.error(3,Q(n,this.clonePosition()));if(this.bumpSpace(),this.isEOF())return this.error(1,Q(n,this.clonePosition()));switch(this.char()){case 125:return this.bump(),{val:{type:1,value:r,location:Q(n,this.clonePosition())},err:null};case 44:return this.bump(),this.bumpSpace(),this.isEOF()?this.error(1,Q(n,this.clonePosition())):this.parseArgumentOptions(e,t,r,n);default:return this.error(3,Q(n,this.clonePosition()))}}parseIdentifierIfPossible(){let e=this.clonePosition(),t=this.offset(),n=Yo(this.message,t),r=t+n.length;return this.bumpTo(r),{value:n,location:Q(e,this.clonePosition())}}parseArgumentOptions(e,t,n,r){let i=this.clonePosition(),a=this.parseIdentifierIfPossible().value,o=this.clonePosition();switch(a){case``:return this.error(4,Q(i,o));case`number`:case`date`:case`time`:{this.bumpSpace();let e=null;if(this.bumpIf(`,`)){this.bumpSpace();let t=this.clonePosition(),n=this.parseSimpleArgStyleIfPossible();if(n.err)return n;let r=qo(n.val);if(r.length===0)return this.error(6,Q(this.clonePosition(),this.clonePosition()));e={style:r,styleLocation:Q(t,this.clonePosition())}}let t=this.tryParseArgumentClose(r);if(t.err)return t;let i=Q(r,this.clonePosition());if(e&&e.style.startsWith(`::`)){let t=Ko(e.style.slice(2));if(a===`number`){let r=this.parseNumberSkeletonFromString(t,e.styleLocation);return r.err?r:{val:{type:2,value:n,location:i,style:r.val},err:null}}else{if(t.length===0)return this.error(10,i);let r=t;this.locale&&(r=Ro(t,this.locale));let o={type:1,pattern:r,location:e.styleLocation,parsedOptions:this.shouldParseSkeletons?uo(r):{}};return{val:{type:a===`date`?3:4,value:n,location:i,style:o},err:null}}}return{val:{type:a===`number`?2:a===`date`?3:4,value:n,location:i,style:e?.style??null},err:null}}case`plural`:case`selectordinal`:case`select`:{let i=this.clonePosition();if(this.bumpSpace(),!this.bumpIf(`,`))return this.error(12,Q(i,{...i}));this.bumpSpace();let o=this.parseIdentifierIfPossible(),s=0;if(a!==`select`&&o.value===`offset`){if(!this.bumpIf(`:`))return this.error(13,Q(this.clonePosition(),this.clonePosition()));this.bumpSpace();let e=this.tryParseDecimalInteger(13,14);if(e.err)return e;this.bumpSpace(),o=this.parseIdentifierIfPossible(),s=e.val}let c=this.tryParsePluralOrSelectOptions(e,a,t,o);if(c.err)return c;let l=this.tryParseArgumentClose(r);if(l.err)return l;let u=Q(r,this.clonePosition());return a===`select`?{val:{type:5,value:n,options:Go(c.val),location:u},err:null}:{val:{type:6,value:n,options:Go(c.val),offset:s,pluralType:a===`plural`?`cardinal`:`ordinal`,location:u},err:null}}default:return this.error(5,Q(i,o))}}tryParseArgumentClose(e){return this.isEOF()||this.char()!==125?this.error(1,Q(e,this.clonePosition())):(this.bump(),{val:!0,err:null})}parseSimpleArgStyleIfPossible(){let e=0,t=this.clonePosition();for(;!this.isEOF();)switch(this.char()){case 39:{this.bump();let e=this.clonePosition();if(!this.bumpUntil(`'`))return this.error(11,Q(e,this.clonePosition()));this.bump();break}case 123:e+=1,this.bump();break;case 125:if(e>0)--e;else return{val:this.message.slice(t.offset,this.offset()),err:null};break;default:this.bump();break}return{val:this.message.slice(t.offset,this.offset()),err:null}}parseNumberSkeletonFromString(e,t){let n=[];try{n=po(e)}catch{return this.error(7,t)}return{val:{type:0,tokens:n,location:t,parsedOptions:this.shouldParseSkeletons?Co(n):{}},err:null}}tryParsePluralOrSelectOptions(e,t,n,r){let i=!1,a=[],o=new Set,{value:s,location:c}=r;for(;;){if(s.length===0){let e=this.clonePosition();if(t!==`select`&&this.bumpIf(`=`)){let t=this.tryParseDecimalInteger(16,19);if(t.err)return t;c=Q(e,this.clonePosition()),s=this.message.slice(e.offset,this.offset())}else break}if(o.has(s))return this.error(t===`select`?21:20,c);s===`other`&&(i=!0),this.bumpSpace();let r=this.clonePosition();if(!this.bumpIf(`{`))return this.error(t===`select`?17:18,Q(this.clonePosition(),this.clonePosition()));let l=this.parseMessage(e+1,t,n);if(l.err)return l;let u=this.tryParseArgumentClose(r);if(u.err)return u;a.push([s,{value:l.val,location:Q(r,this.clonePosition())}]),o.add(s),this.bumpSpace(),{value:s,location:c}=this.parseIdentifierIfPossible()}return a.length===0?this.error(t===`select`?15:16,Q(this.clonePosition(),this.clonePosition())):this.requiresOtherClause&&!i?this.error(22,Q(this.clonePosition(),this.clonePosition())):{val:a,err:null}}tryParseDecimalInteger(e,t){let n=1,r=this.clonePosition();this.bumpIf(`+`)||this.bumpIf(`-`)&&(n=-1);let i=!1,a=0;for(;!this.isEOF();){let e=this.char();if(e>=48&&e<=57)i=!0,a=a*10+(e-48),this.bump();else break}let o=Q(r,this.clonePosition());return i?(a*=n,Number.isSafeInteger(a)?{val:a,err:null}:this.error(t,o)):this.error(e,o)}offset(){return this.position.offset}isEOF(){return this.offset()===this.message.length}clonePosition(){return{offset:this.position.offset,line:this.position.line,column:this.position.column}}char(){let e=this.position.offset;if(e>=this.message.length)throw Error(`out of bound`);let t=this.message.codePointAt(e);if(t===void 0)throw Error(`Offset ${e} is at invalid UTF-16 code unit boundary`);return t}error(e,t){return{val:null,err:{kind:e,message:this.message,location:t}}}bump(){if(this.isEOF())return;let e=this.char();e===10?(this.position.line+=1,this.position.column=1,this.position.offset+=1):(this.position.column+=1,this.position.offset+=e<65536?1:2)}bumpIf(e){if(this.message.startsWith(e,this.offset())){for(let t=0;t<e.length;t++)this.bump();return!0}return!1}bumpUntil(e){let t=this.offset(),n=this.message.indexOf(e,t);return n>=0?(this.bumpTo(n),!0):(this.bumpTo(this.message.length),!1)}bumpTo(e){if(this.offset()>e)throw Error(`targetOffset ${e} must be greater than or equal to the current offset ${this.offset()}`);for(e=Math.min(e,this.message.length);;){let t=this.offset();if(t===e)break;if(t>e)throw Error(`targetOffset ${e} is at invalid UTF-16 code unit boundary`);if(this.bump(),this.isEOF())break}}bumpSpace(){for(;!this.isEOF()&&ts(this.char());)this.bump()}peek(){if(this.isEOF())return null;let e=this.char(),t=this.offset();return this.message.charCodeAt(t+(e>=65536?2:1))??null}};function Qo(e){return e>=97&&e<=122||e>=65&&e<=90}function $o(e){return Qo(e)||e===47}function es(e){return e===45||e===46||e>=48&&e<=57||e===95||e>=97&&e<=122||e>=65&&e<=90||e==183||e>=192&&e<=214||e>=216&&e<=246||e>=248&&e<=893||e>=895&&e<=8191||e>=8204&&e<=8205||e>=8255&&e<=8256||e>=8304&&e<=8591||e>=11264&&e<=12271||e>=12289&&e<=55295||e>=63744&&e<=64975||e>=65008&&e<=65533||e>=65536&&e<=983039}function ts(e){return e>=9&&e<=13||e===32||e===133||e>=8206&&e<=8207||e===8232||e===8233}function ns(e){e.forEach(e=>{if(delete e.location,Ao(e)||jo(e))for(let t in e.options)delete e.options[t].location,ns(e.options[t].value);else Do(e)&&Po(e.style)||(Oo(e)||ko(e))&&Fo(e.style)?delete e.style.location:No(e)&&ns(e.children)})}function rs(e,t={}){t={shouldParseSkeletons:!0,requiresOtherClause:!0,...t};let n=new Zo(e,t).parse();if(n.err){let e=SyntaxError(wo[n.err.kind]);throw e.location=n.err.location,e.originalMessage=n.err.message,e}return t?.captureLocation||ns(n.val),n.val}var is=class extends Error{constructor(e,t,n){super(e),this.code=t,this.originalMessage=n}toString(){return`[formatjs Error: ${this.code}] ${this.message}`}},as=class extends is{constructor(e,t,n,r){super(`Invalid values for "${e}": "${t}". Options are "${Object.keys(n).join(`", "`)}"`,`INVALID_VALUE`,r)}},os=class extends is{constructor(e,t,n){super(`Value for "${e}" must be of type ${t}`,`INVALID_VALUE`,n)}},ss=class extends is{constructor(e,t){super(`The intl string context variable "${e}" was not provided to the string "${t}"`,`MISSING_VALUE`,t)}};function cs(e){return e.length<2?e:e.reduce((e,t)=>{let n=e[e.length-1];return!n||n.type!==0||t.type!==0?e.push(t):n.value+=t.value,e},[])}function ls(e){return typeof e==`function`}function us(e,t,n,r,i,a,o){if(e.length===1&&To(e[0]))return[{type:0,value:e[0].value}];let s=[];for(let c of e){if(To(c)){s.push({type:0,value:c.value});continue}if(Mo(c)){typeof a==`number`&&s.push({type:0,value:n.getNumberFormat(t).format(a)});continue}let{value:e}=c;if(!(i&&e in i))throw new ss(e,o);let l=i[e];if(Eo(c)){(!l||typeof l==`string`||typeof l==`number`||typeof l==`bigint`)&&(l=typeof l==`string`||typeof l==`number`||typeof l==`bigint`?String(l):``),s.push({type:typeof l==`string`?0:1,value:l});continue}if(Oo(c)){let e=typeof c.style==`string`?r.date[c.style]:Fo(c.style)?c.style.parsedOptions:void 0;s.push({type:0,value:n.getDateTimeFormat(t,e).format(l)});continue}if(ko(c)){let e=typeof c.style==`string`?r.time[c.style]:Fo(c.style)?c.style.parsedOptions:r.time.medium;s.push({type:0,value:n.getDateTimeFormat(t,e).format(l)});continue}if(Do(c)){let e=typeof c.style==`string`?r.number[c.style]:Po(c.style)?c.style.parsedOptions:void 0;if(e&&e.scale){let t=e.scale||1;if(typeof l==`bigint`){if(!Number.isInteger(t))throw TypeError(`Cannot apply fractional scale ${t} to bigint value. Scale must be an integer when formatting bigint.`);l*=BigInt(t)}else l*=t}s.push({type:0,value:n.getNumberFormat(t,e).format(l)});continue}if(No(c)){let{children:e,value:l}=c,u=i[l];if(!ls(u))throw new os(l,`function`,o);let d=u(us(e,t,n,r,i,a).map(e=>e.value));Array.isArray(d)||(d=[d]),s.push(...d.map(e=>({type:typeof e==`string`?0:1,value:e})))}if(Ao(c)){let e=l,a=(Object.prototype.hasOwnProperty.call(c.options,e)?c.options[e]:void 0)||c.options.other;if(!a)throw new as(c.value,l,Object.keys(c.options),o);s.push(...us(a.value,t,n,r,i));continue}if(jo(c)){let e=`=${l}`,a=Object.prototype.hasOwnProperty.call(c.options,e)?c.options[e]:void 0;if(!a){if(!Intl.PluralRules)throw new is(`Intl.PluralRules is not available in this environment.
|
|
5
|
-
Try polyfilling it using "@formatjs/intl-pluralrules"
|
|
6
|
-
`,`MISSING_INTL_API`,o);let e=typeof l==`bigint`?Number(l):l,r=n.getPluralRules(t,{type:c.pluralType}).select(e-(c.offset||0));a=(Object.prototype.hasOwnProperty.call(c.options,r)?c.options[r]:void 0)||c.options.other}if(!a)throw new as(c.value,l,Object.keys(c.options),o);let u=typeof l==`bigint`?Number(l):l;s.push(...us(a.value,t,n,r,i,u-(c.offset||0)));continue}}return cs(s)}function ds(e,t){return t?{...e,...t,...Object.keys(e).reduce((n,r)=>(n[r]={...e[r],...t[r]},n),{})}:e}function fs(e,t){return t?Object.keys(e).reduce((n,r)=>(n[r]=ds(e[r],t[r]),n),{...e}):e}function ps(e){return{create(){return{get(t){return e[t]},set(t,n){e[t]=n}}}}}function ms(e={number:{},dateTime:{},pluralRules:{}}){return{getNumberFormat:Za((...e)=>new Intl.NumberFormat(...e),{cache:ps(e.number),strategy:co.variadic}),getDateTimeFormat:Za((...e)=>new Intl.DateTimeFormat(...e),{cache:ps(e.dateTime),strategy:co.variadic}),getPluralRules:Za((...e)=>new Intl.PluralRules(...e),{cache:ps(e.pluralRules),strategy:co.variadic})}}var hs=class e{constructor(t,n=e.defaultLocale,r,i){if(this.formatterCache={number:{},dateTime:{},pluralRules:{}},this.format=e=>{let t=this.formatToParts(e);if(t.length===1)return t[0].value;let n=t.reduce((e,t)=>(!e.length||t.type!==0||typeof e[e.length-1]!=`string`?e.push(t.value):e[e.length-1]+=t.value,e),[]);return n.length<=1?n[0]||``:n},this.formatToParts=e=>us(this.ast,this.locales,this.formatters,this.formats,e,void 0,this.message),this.resolvedOptions=()=>({locale:this.resolvedLocale?.toString()||Intl.NumberFormat.supportedLocalesOf(this.locales)[0]}),this.getAst=()=>this.ast,this.locales=n,this.resolvedLocale=e.resolveLocale(n),typeof t==`string`){if(this.message=t,!e.__parse)throw TypeError("IntlMessageFormat.__parse must be set to process `message` of type `string`");let{...n}=i||{};this.ast=e.__parse(t,{...n,locale:this.resolvedLocale})}else this.ast=t;if(!Array.isArray(this.ast))throw TypeError(`A message must be provided as a String or AST.`);this.formats=fs(e.formats,r),this.formatters=i&&i.formatters||ms(this.formatterCache)}static{this.memoizedDefaultLocale=null}static get defaultLocale(){return e.memoizedDefaultLocale||=new Intl.NumberFormat().resolvedOptions().locale,e.memoizedDefaultLocale}static{this.resolveLocale=e=>{if(Intl.Locale===void 0)return;let t=Intl.NumberFormat.supportedLocalesOf(e);return t.length>0?new Intl.Locale(t[0]):new Intl.Locale(typeof e==`string`?e:e[0])}}static{this.__parse=rs}static{this.formats={number:{integer:{maximumFractionDigits:0},currency:{style:`currency`},percent:{style:`percent`}},date:{short:{month:`numeric`,day:`numeric`,year:`2-digit`},medium:{month:`short`,day:`numeric`,year:`numeric`},long:{month:`long`,day:`numeric`,year:`numeric`},full:{weekday:`long`,month:`long`,day:`numeric`,year:`numeric`}},time:{short:{hour:`numeric`,minute:`numeric`},medium:{hour:`numeric`,minute:`numeric`,second:`numeric`},long:{hour:`numeric`,minute:`numeric`,second:`numeric`,timeZoneName:`short`},full:{hour:`numeric`,minute:`numeric`,second:`numeric`,timeZoneName:`short`}}}}};function gs(e,t){return xs(e)||bs(e,t)||vs(e,t)||_s()}function _s(){throw TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
7
|
-
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function vs(e,t){if(e){if(typeof e==`string`)return ys(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`)return Array.from(e);if(n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return ys(e,t)}}function ys(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function bs(e,t){if(!(typeof Symbol>`u`||!(Symbol.iterator in Object(e)))){var n=[],r=!0,i=!1,a=void 0;try{for(var o=e[Symbol.iterator](),s;!(r=(s=o.next()).done)&&(n.push(s.value),!(t&&n.length===t));r=!0);}catch(e){i=!0,a=e}finally{try{!r&&o.return!=null&&o.return()}finally{if(i)throw a}}return n}}function xs(e){if(Array.isArray(e))return e}function Ss(e){"@babel/helpers - typeof";return Ss=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},Ss(e)}function Cs(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function ws(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?Cs(Object(n),!0).forEach(function(t){Ts(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Cs(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Ts(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Es(e,t){if(!(e instanceof t))throw TypeError(`Cannot call a class as a function`)}function Ds(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,`value`in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function Os(e,t,n){return t&&Ds(e.prototype,t),n&&Ds(e,n),e}function ks(){return{memoize:!0,memoizeFallback:!1,bindI18n:``,bindI18nStore:``,parseErrorHandler:function(e,t,n,r){return n},parseLngForICU:function(e){return e},escapeVariables:!1}}var As=function(){function e(t){Es(this,e),this.type=`i18nFormat`,this.mem={},this.init(null,t)}return Os(e,[{key:`init`,value:function(e,t){var n=this,r=e&&e.options&&e.options.i18nFormat||{};if(this.options=Xa(r,t,this.options||{},ks()),this.formats=this.options.formats,e){var i=this.options,a=i.bindI18n,o=i.bindI18nStore,s=i.memoize;e.IntlMessageFormat=hs,e.ICU=this,s&&(a&&e.on(a,function(){return n.clearCache()}),o&&e.store.on(o,function(){return n.clearCache()}))}}},{key:`addUserDefinedFormats`,value:function(e){this.formats=this.formats?ws(ws({},this.formats),e):e}},{key:`parse`,value:function(e,t,n,r,i,a){var o=a&&a.resolved&&a.resolved.res,s=this.options.memoize&&`${n}.${r}.${i.replace(/\./g,`###`)}`,c;this.options.memoize&&(c=Ka(this.mem,s));try{return c||(c=new hs(e,this.options.parseLngForICU(n),this.formats,{ignoreTag:!0}),this.options.memoize&&(this.options.memoizeFallback||!a||o)&&Ga(this.mem,s,c)),c.format(this.escapeVariableValues(t))}catch(n){return this.options.parseErrorHandler(n,i,e,t)}}},{key:`addLookupKeys`,value:function(e,t,n,r,i){return e}},{key:`clearCache`,value:function(){this.mem={}}},{key:`escapeVariableValues`,value:function(e){if(!this.options.escapeVariables||!e||Ss(e)!==`object`)return e;for(var t={},n=0,r=Object.entries(e);n<r.length;n++){var i=gs(r[n],2),a=i[0],o=i[1];typeof o==`string`?t[a]=o.replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`).replace(/"/g,`"`).replace(/'/g,`'`):t[a]=o}return t}}]),e}();As.type=`i18nFormat`;var js={authWaitSpinner:{loading:`Loading`},signupScreen:{headlineLead:`Meet your new`,headlineRoles:{personalIntelligence:`Personal Intelligence`,softwareEngineer:`Software Engineer`,financeOps:`Finance Ops`,householdManager:`Household Manager`,gtmEngineer:`GTM Engineer`,productLead:`Product Lead`},subtitle:`The most powerful assistant that can handle your work and life admin tasks.`,continue:`Continue`,downloadMac:`Download for macOS`,haveAccountPrompt:`Already have an account? <signIn>Sign in</signIn>`},accountPage:{loading:`Loading...`,welcomeTitle:`Welcome to Vellum`,welcomeSubtitle:`Sign in to get started.`,signIn:`Sign in`,signedInTitle:`Welcome!`,signedInTitleNamed:`Welcome, {name}!`,signedInSubtitle:`You are signed in.`,goToAssistant:`Go to your assistant`,signOut:`Sign out`},loginPage:{signUp:`Sign up`,signIn:`Sign in`},logoutPage:{title:`Signing out...`},platformLoopbackPage:{backToWelcome:`Back to Welcome`,completing:`Completing login...`},oauthComplete:{errorCode:`Error: {code}`},providerCallbackPage:{signupClosedTitle:`Signups are currently closed`,signupClosedSubtitle:`Join the community to request access or learn when signups reopen.`,joinCommunity:`Join the community`,backToSignIn:`Back to sign in`,failedTitle:`Authentication failed`,failedSubtitle:`Something went wrong during social sign-in. Please try again or use a different method.`,completingTitle:`Completing sign-in...`,completingSubtitle:`Please wait while we finish authenticating you.`},providerSignupPage:{completingTitle:`Completing signup...`,completingSubtitle:`Please wait while we load your information.`,headingLine1:`Almost there,`,headingLine2:`one more detail`,firstNameQuestion:`What should I call you?`,firstNamePlaceholder:`First name`,lastNameQuestion:`And your last name?`,lastNamePlaceholder:`Last name`,roleQuestion:`Your role`,rolePlaceholder:`e.g. Software Engineer`,submitting:`Setting up…`,submit:`Continue →`,completeAccountTitle:`Complete your account`,completeAccountSubtitle:`We need a few more details to finish setting up your account.`,backToSignIn:`← Back to sign in`,emailPlaceholder:`Email`,usernamePlaceholder:`Username`,completeSignup:`Complete signup`,completingSignup:`Completing...`},authErrors:{genericFailure:`Something went wrong. Please try again.`,signupClosed:`Sign-ups are currently closed. Visit {community} to request access.`,providerSignup:`No Vellum account is linked to that login yet. Sign up first, then sign in.`,loginIncomplete:`Your account needs another step to finish signing in. Please sign in on the web, then try again.`,desktopUpdateRequired:`This version of the Vellum desktop app can't sign in. Update the app, then try again.`,loopbackStateMismatch:`Login failed: state mismatch. Please try again.`,loopbackNoToken:`Login failed: no session token received. Please try again.`,loopbackInvalidToken:`Login failed: invalid session token.`}},Ms={assistantChannelsList:{drawerTitle:`Channels`,disconnectTitle:`Disconnect {channel}?`,disconnectConfirm:`Disconnect`,confirmFallback:`Confirm`},channelAdapterList:{pluginChannelAria:`{channel}, from a plugin`},connectionCard:{connected:`Connected`,reconnecting:`Reconnecting…`,statusUnavailable:`Status unavailable`,disconnecting:`Disconnecting…`,disconnect:`Disconnect`},slackChannelCard:{setupHeading:`Slack setup`},channelPanel:{incompleteTitle:`{channel} isn't working yet`,disconnectedTitle:`{channel} isn't connected`,incompleteDescription:`{channel} is set up but not delivering messages yet. Your assistant can pick up where setup left off and tell you what is wrong.`,opening:`Opening…`,finishSetup:`Finish setup with your assistant`,setUp:`Set up`,connectManually:`or connect manually`},pluginChannelPanel:{navigateToPluginPage:`Navigate to plugin page`,ingressLoading:`Checking who can reach {channel}…`,ingressUnsupported:`This assistant's gateway does not report ingress approvals, so there is nothing to decide here.`,ingressForbidden:`Only this assistant's guardian can see or change ingress approvals.`,ingressUnreadable:`Could not read the ingress approval for {channel}.`,ingressNone:`The gateway sees no ingress declaration for {channel}, so there is nothing to approve yet.`,ingressApprovedTag:`Ingress approved`,ingressPendingTag:`Ingress awaiting approval`,approveChannel:`Approve Channel`,revokeChannel:`Revoke Channel`,approveChannelInfo:`Approving this channel means you are opening up access to your assistant to specifically requests sent by the providers behind this channel`},channelTrustFloor:{heading:`Who can message {assistant}`,loading:`Loading…`,loadFailed:`Couldn’t load this setting. Try reopening this page.`,selectAria:`Who can message {assistant}`,trustedContactsNotice:`People you haven’t verified yet (even teammates in the same channel) can’t get through: {assistant} lets them know they need to be verified and notifies you. You can verify people ahead of time in Contacts.`},slackChannelTypeDefaults:{heading:`Default access`,subtitle:`How much {assistant} does on its own, by conversation type. Individual channels can override this below, and <trustRules>Trust Rules</trustRules> fine-tune when it asks.`,bucketAria:`Default Assistant Access for {bucket}`},tierPicker:{defaultSuffix:`default`,defaultPlaceholder:`Default`},slackChannelTierLegend:{defaultMarker:`· default`},slackChannelSection:{overridesLoadFailed:`Couldn’t load access settings. These controls stay disabled until they load. Try reopening this page.`,perChannelOverrides:`Per-channel overrides`},slackThreadBehavior:{heading:`Thread Behavior`,selectAria:`Slack thread behavior`,mentionsOnly:`Mentions only`,mentionsOnlyHelp:`Bot only responds when @mentioned.`,followThreads:`Follow threads after first mention`,followThreadsHelp:`After an @mention in a thread, bot listens to the rest of that thread.`},slackChannelList:{presenceHint:`Add with <invite>/invite {handle}</invite> or remove with <remove>/remove {handle}</remove> in that Slack channel. Only channels {assistant} is in appear here.`,loading:`Loading…`,loadFailed:`Couldn’t load channels. Try reopening this page.`,emptyTitle:`No channels yet`,searchPlaceholder:`Search channels`,searchAria:`Search channels`,filterGroupAria:`Filter channels by type`,noMatches:`No channels match.`,accessAria:`Assistant Access in {channel}`,filterAll:`{count, plural, one {All (#)} other {All (#)}}`,filterPublic:`{count, plural, one {Public (#)} other {Public (#)}}`,filterPrivate:`{count, plural, one {Private (#)} other {Private (#)}}`},twilioCredentialEntry:{accountSid:`Account SID`,authToken:`Auth Token`,authTokenPlaceholder:`Twilio auth token`,saving:`Saving…`,save:`Save`},channelMeta:{slack:{label:`Slack`,disconnectMessage:`This clears the stored Slack bot and app tokens for this assistant. You can reconnect later.`},telegram:{label:`Telegram`,disconnectMessage:`This clears the stored Telegram bot token for this assistant. You can reconnect later.`,disconnectedPitch:`Connect a Telegram bot so {assistant} can send and receive messages on Telegram.`},phone:{label:`Phone Calling`,disconnectMessage:`This clears the stored Twilio credentials for this assistant. You can reconnect later.`,disconnectedPitch:`Connect your Twilio account so {assistant} can make and answer phone calls.`}}},Ns={actions:{save:`Save`,saving:`Saving…`,merge:`Merge…`,merging:`Merging…`,delete:`Delete`,deleting:`Deleting…`,connect:`Connect`,connecting:`Connecting…`,disconnect:`Disconnect`,disconnecting:`Disconnecting…`,cancel:`Cancel`,back:`Back`,verify:`Verify`,verifying:`Verifying…`,revoke:`Revoke`},channelType:{slack:`Slack`,telegram:`Telegram`,whatsapp:`WhatsApp`,a2a:`A2A`,phone:`Phone`,email:`Email`,discord:`Discord`},contact:{nameLabel:`Name`,notesLabel:`Notes`,draftName:`New Contact`,interactions:`{count, plural, one {# interaction} other {# interactions}}`,mergeBlockedNoCandidates:`No other contacts available to merge`,mergeBlockedUnsaved:`Save your changes before merging`},contactsPage:{title:`Contacts`,mergeSucceeded:`Contacts merged`,mergeFailed:`Failed to merge contacts`,createFailed:`Failed to create contact`,deleteFailed:`Failed to delete contact`,saveFailed:`Failed to save contact`,verifyFailed:`Failed to verify channel`,rosterLoadFailed:`Couldn’t load the workspace roster. Check the Slack connection and try again.`,emptyBody:`Select a contact`},contactsList:{heading:`Entries`,addAriaLabel:`Add contact`,searchPlaceholder:`Search Contacts`,noMatches:`No matching contacts`,add:`Add Contact`,verified:`Verified`,unverified:`Unverified`,you:`You`,youNamed:`{name} (You)`,assistantFallback:`Your Assistant`},contactDetailView:{namePlaceholder:`Give this human a name`,notesPlaceholder:`Optional notes about the human which AI will take into account`,mergeBlockedUnsavedDraft:`Save this contact before merging`,delete:`Delete Contact`,linkedAccountsTitle:`Linked accounts`,linkedAccountsSubtitle:`Where the assistant recognizes this contact. Link accounts you know, invite the ones you don't.`,deleteConfirmTitle:`Delete {name}?`,deleteConfirmMessage:`This will permanently delete this contact and all their channels. This action cannot be undone.`},guardianDetailView:{namePlaceholder:`Your name`,notesPlaceholder:`Notes about yourself which AI will take into account`,channelsTitle:`Channels`,channelsSubtitle:`Once verified, your assistant will recognize you when you message from these channels.`,setupLabel:`Verify me`},assistantChannelsDetail:{title:`{name} (Your Assistant)`,channelsTitle:`Channels`,channelsSubtitle:`Where {name} can be reached.`},assistantContactChannels:{disconnectConfirmTitle:`Disconnect {channel}?`,disconnectConfirmMessage:`This clears the stored credentials for this channel. You can reconnect later.`},accountLink:{linked:`Linked as @{username}`,linkFailed:`Failed to link account`},connectPage:{invalidTitle:`Invalid invite link`,invalidBody:`The link you followed is missing required parameters and cannot be used.`,goToContacts:`Go to Contacts`,title:`Connect assistants`,body:`Accepting this link will create a trusted A2A connection between your assistant and the sender's.`,alreadyConnected:`Already connected`,connected:`Connected!`,errorExpired:`This invite link has expired or already been used.`,errorAlreadyRedeemed:`This invite has already been claimed by someone else.`,errorSenderNotFound:`The sender's assistant could not be found.`,errorNotPlatformManaged:`A2A invite links are only supported for platform-hosted assistants.`,errorGeneric:`Something went wrong. Please try again.`},channelStatus:{connected:`Connected`,verified:`Verified`},contactChannelsSection:{verifyConfirmTitle:`Verify {channel}`,verifyConfirmMessageContact:`This will mark this contact's {channel} channel as verified. Your assistant will recognize them when they reach out from it.`,verifyConfirmMessageGuardian:`This will mark your {channel} channel as verified. Your assistant will recognize you when you reach out from it.`,revokeConfirmTitle:`Revoke {channel}`,revokeConfirmMessage:`This will disconnect the verified channel. The contact will need to re-verify to use this channel again.`,linkAccount:`Link account`,setupDefault:`Invite`,loadFailed:`Couldn't load channels. Check your connection and try again.`},linkAccountDialog:{title:`Link {channel} account`,description:`Search your {channel} workspace and pick <contact>{name}</contact>’s account.`,searchPlaceholder:`Search by name or @handle`,searchAriaLabel:`Search {channel} workspace accounts`,loading:`Loading workspace members…`,noMembers:`No workspace members found.`,noMatches:`No members match.`,linking:`Linking…`,guardianLinkNote:`Picking marks this account as <emphasis>guardian-linked</emphasis>: you vouch for the identity, no handshake needed.`,inviteInstead:`Or send an invite instead`},contactMergeDialog:{titlePicked:`Merge "{donor}" into {survivor}?`,titlePicking:`Merge another contact into {survivor}`,descriptionPicked:`Channels and notes from the merged contact will move over. The merged contact will be deleted.`,descriptionPicking:`The contact you pick will be deleted. Its channels and notes will be added to this one.`,confirm:`Merge`,searchPlaceholder:`Search contacts`,listAriaLabel:`Select a contact to merge`,empty:`No other contacts available to merge.`,donorDeleted:`<donor>“{donor}”</donor> will be deleted.`,channelsMoved:`{count, plural, =0 {No new channels will move to {survivor}.} one {# channel will move to {survivor}: {channels}.} other {# channels will move to {survivor}: {channels}.}}`,duplicatesSkipped:`{count, plural, one {# duplicate channel already on {survivor} (skipped).} other {# duplicate channels already on {survivor} (skipped).}}`,notesAppended:`Notes from the merged contact will be appended.`,irreversible:`This cannot be undone.`},survivorName:{you:`you`,youNamed:`{name} (you)`,thisContact:`this contact`}},Ps={credentialEntry:{checkingTitle:`Checking link`,checkingBody:`Looking up this credential request.`,savedTitle:`Credential saved`,savedBody:`You can close this tab and return to your conversation, and the assistant can use the credential right away. The value can't be viewed again.`,invalidTitle:`Link not valid`,invalidBody:`This credential link isn't valid. Check that the full link was copied, or ask for a new one.`,expiredTitle:`Link expired`,expiredBody:`This credential link has expired. Links only work for a short time, so ask for a new one and enter the value again.`,usedTitle:`Link already used`,usedBody:`This credential link has already been used. Each link works exactly once, so ask for a new one if the value still needs to be provided.`,storeFailedTitle:`Link no longer valid`,storeFailedBody:`The assistant could not store the credential, and for safety this one-time link cannot be reused. Ask for a new link and try again there.`,errorTitle:`Something went wrong`,errorBody:`The credential request couldn't be loaded. Refresh the page to try again.`,heading:`Provide a credential`,oneTimeEntry:`one-time entry`,instructions:`Enter the secret value below. It is stored encrypted on the assistant, is never shown again, and this link stops working as soon as it's used.`,submit:`Submit`,expiresIn:`Expires in {remaining} ({time}).`,valueLabel:`Secret value`,valuePlaceholder:`Enter the secret value`}},Fs={actions:{markAsRead:`Mark as read`,markAsUnread:`Mark as unread`,restore:`Restore`,dismiss:`Dismiss`,goToThread:`Go to thread`,goToConversation:`Go to Conversation`,goToConvo:`Go to Convo`,viewSchedule:`View schedule`,viewSkill:`View skill`,markAllAsRead:`Mark all as read`,clearAll:`Clear all`},category:{all:`All`,security:`Security`,email:`Email`,scheduling:`Scheduling`,background:`Background`,system:`System`},homeRecapRow:{actionsTitle:`Update Actions`},homeTopHeader:{title:`Activity`},homeFeedFilterBar:{ariaLabel:`Filter notifications`},homeFeedList:{today:`Today`,yesterday:`Yesterday`,older:`Older`,noMatches:`No items match the selected filter.`,emptyTitle:`No notifications yet`,emptyBody:`Updates and activity from your assistant will appear here.`,earlier:`Earlier ({count, number})`,dismissed:`Dismissed ({count, number})`},homePage:{loadFailed:`Couldn't load home feed.`,loadFailedDetail:`Couldn't load home feed: {message}`},homeDetailPanel:{back:`Back`,heading:`Details`,close:`Close`,closeAriaLabel:`Close detail panel`,untitled:`Notification`},homeToolPermissionCard:{missingScopes:`Missing scopes`,status:{revoked:`Revoked`,expired:`Expired`,missingScopes:`Missing scopes`,missingToken:`Missing token`,pingFailed:`Ping failed`,unreachable:`Unreachable`}},notificationsBell:{ariaLabel:`Notifications`,ariaLabelUnread:`Notifications (unread)`,heading:`Notifications`,loadFailed:`Couldn't load notifications.`,empty:`No notifications yet.`,actionFailed:`Couldn't start that conversation. Try again.`},notificationsBellDetail:{back:`Back to notifications`}},Is={libraryEmptyState:{heading:`Your library is empty`,body:`Ask your assistant to build something, or import a shared app`,newConversation:`New Conversation`,separator:`or`,importFile:`Import .vellum File`},libraryView:{importFailed:`Failed to import app`,imported:`{name} imported`,loadingAria:`Loading apps`,retry:`Retry`,import:`Import`,searchPlaceholder:`Search your library`,noMatches:`No apps or documents matched “{query}”`,pinned:`Pinned`,recents:`Recents`,documents:`Documents`},libraryAppCard:{exported:`App exported`,shareFailed:`Failed to share app`,actionsTitle:`Options for {appName}`,unpin:`Unpin`,pin:`Pin`,share:`Share`,shareSub:`Export as .vellum file`,deployed:`Deployed to Vercel`,copyLink:`Copy link`,redeploy:`Redeploy`,redeploySub:`Publish the current version`,deploy:`Deploy to Vercel`,deploySub:`Publish as a static page`,delete:`Delete`},libraryDetailPage:{backToLibrary:`Back to Library`}},Ls={errorRetryRow:{retrying:`Retrying…`,retry:`Retry`},emailsTab:{inbound:`Inbound`,outbound:`Outbound`,noSubject:`(no subject)`,addressesLoadFailed:`Couldn't load email addresses.`,noAddress:`No email address registered yet.`,setUpLink:`Set one up in AI Settings, Email.`,totals:`Totals`,sentToday:`Sent today`,dailyLimitSub:`of {limit, number} daily limit`,receivedToday:`Received today`,sentThisMonth:`Sent this month`,receivedThisMonth:`Received this month`,recentEmails:`Recent Emails`,loading:`Loading…`,emailsLoadFailed:`Couldn't load recent emails.`,noEmails:`No emails yet.`},systemEventsTab:{longSleep:`Long sleep`,hideDetails:`Hide details`,showDetails:`Show details`,intro:`Lifecycle events for your assistant from the last {days, plural, one {# day} other {# days}}, newest first.`,loading:`Loading system events...`,loadFailed:`Failed to load system events. Please refresh and try again.`,empty:`No system events recorded in the last {days, plural, one {# day} other {# days}}.`,loadingOlder:`Loading older events...`,loadOlder:`Load older events`},emailsPage:{platformLoginNotice:`Log in to the Vellum platform to view emails.`},systemEventsPage:{platformLoginNotice:`Log in to the Vellum platform to view system events.`,notAvailable:`System events aren't available for the current assistant.`}},Rs={applyPersonalityUpdate:{conversationTitle:`Updating personality`},applyRename:{conversationTitle:`Updating name`},assistantNameEditor:{greeting:`Hi, I’m {name}`,renamingInProgressAriaLabel:`Renaming in progress`},categorySidebar:{all:`All`,skillCategoriesAriaLabel:`Skill categories`},conceptDetailPanel:{askAboutThis:`Ask about this`,askPrompt:`Tell me what you remember about "{title}" and how it connects to the rest of what you know.`,backAriaLabel:`Back`,closeAriaLabel:`Close`,connectionCount:`{count, plural, one {# connection} other {# connections}}`,emptyContent:`This concept doesn't have written content yet. It exists as a link in the graph, but its page is empty.`,loadError:`Couldn't load this concept. Try again in a moment.`,readFullNote:`Read full note`,refine:`Refine`,refinePrompt:`I want to refine what you remember about "{title}". Ask me what's off and we'll correct it together.`,showLess:`Show less`,trailAriaLabel:`Concept trail`,updated:`Updated {date}`,wiredTo:`Wired to`},conceptGraphConstants:{nodeKind:{capability:`Capability`,concept:`Concept`,other:`Other`,pending:`Pending`,skill:`Skill`}},conceptGraphIntroBanner:{description:`Every idea it learns, and the links it draws between them, shows up here. The map grows and rearranges itself as you talk, so the more you share, the richer it gets.`,dismissAriaLabel:`Dismiss`,title:`This is your assistant's mind`},conceptGraphLegend:{coloredByTheme:`Colored by theme`,learned:`Learned`,link:`Link`,moreThemes:`{count, plural, one {+# more} other {+# more}}`},conceptGraphView:{clearSearchAriaLabel:`Clear search`,dragToRotateHint:`drag to rotate · scroll to zoom`,emptyDetail:`As your assistant learns and links ideas, they'll appear here as a living map of its memory.`,emptyTitle:`No concepts yet`,enterFullscreenAriaLabel:`Enter fullscreen`,exitFullscreenAriaLabel:`Exit fullscreen`,loadErrorDetail:`Something went wrong fetching your assistant's memory. Try again in a moment.`,loadErrorTitle:`Couldn't load the memory graph`,resetViewAriaLabel:`Reset view`,searchConceptsAriaLabel:`Search concepts`,searchConceptsPlaceholder:`Search concepts…`,truncatedNotice:`{count, plural, one {Showing the # most-connected concept} other {Showing the # most-connected concepts}}`,zoomInAriaLabel:`Zoom in`,zoomOutAriaLabel:`Zoom out`},createMemoryModal:{cancel:`Cancel`,contentLabel:`What should I remember?`,contentPlaceholder:`e.g. I prefer concise, bulleted summaries.`,create:`Create memory`,createError:`Failed to create memory.`,creating:`Creating…`,helperText:`It lands on the map right away, then settles into a concept as it's filed.`,savedFoundToast:`Got it. Taking you to it.`,savedPendingToast:`Got it. It's on your map while I file it away.`,saveError:`Couldn't save that memory.`,title:`New memory`},getMemoryGraph:{failureMessage:`Failed to load the memory graph.`},getMemoryGraphNode:{failureMessage:`Failed to load this concept.`},identityOverview:{cardHoverLine:{channels:`All the places you can reach me`,contacts:`The people I know and trust`,library:`The apps and docs I've made for you`,memory:`Everything I remember`,personality:`Go ahead, tweak my soul`,schedules:`What I do on repeat`,superpowers:`Everything I know how to do`,workspace:`All the files that power me`},defaultAssistantName:`Assistant`,memoryCount:`{count, plural, one {# memory} other {# memories}}`,memoryCountLabel:`{count, plural, one {memory} other {memories}}`,renameErrorToast:`The rename didn't go through. Please try again.`,renameSuccessToast:`Say hi to {newName}!`,scheduleCadence:`{cadence} · next {nextRun}`,updateAvatarAndName:`Update avatar and name`,viewMoreSchedules:`{count, plural, one {View # more…} other {View # more…}}`},identitySections:{channels:{description:`Where I listen`,label:`Channels`},contacts:{description:`People I know`,label:`Contacts`},library:{description:`My apps & docs`,label:`Library`},memory:{description:`What I remember`,label:`Memory`},personality:{description:`Tune how I talk`,label:`Personality`},schedules:{description:`My routines`,label:`Schedules`},superpowers:{description:`What I can do`,label:`Superpowers`},workspace:{description:`My files`,label:`Workspace`}},installSkill:{failureMessage:`Failed to install skill.`},intelligenceLayout:{backToAriaLabel:`Back to {name}`,backToTitle:`Back to {name}`},listConceptPages:{failureMessage:`Failed to load concept pages.`},memoryFormat:{justNow:`just now`},memoryPage:{createMemory:`Create memory`},memoryTypes:{sourceType:{direct:`Told directly`,inferred:`Inferred`,observed:`Observed`,toldByOther:`Told by other`}},memoryUpgradePrompt:{memorySettings:`Memory settings`,tryAgain:`Try again`,turnMemoryOn:`Turn memory on`,upgradeMemory:`Upgrade memory`},personalityAxes:{companionCoworker:{left:`Companion`,right:`Coworker`},executeCollaborate:{left:`Independent`,right:`Collaborative`},genzBoomer:{left:`Gen Z`,right:`Baby Boomer`},playfulSerious:{left:`Playful`,right:`Serious`},politeUnfiltered:{left:`Polite`,right:`Unfiltered`}},personalityPage:{back:`Back`,subtitle:`Slide the dials, then hit update, I’ll rewrite myself to match.`,title:`Shape my personality`,updateErrorToast:`The personality update didn't go through. Please try again.`,updatePersonality:`Update personality`,updateSuccessToast:`Personality updated. Go say hi!`,updatingPersonality:`Updating {name}'s personality…`},personalitySignature:{ariaLabel:`Personality: {summary}`,axisBalanced:`{left} and {right} balanced`,axisLean:`{percent}% {label}`},personalitySliderRow:{rangeAriaLabel:`{left} to {right}`},pluginConstants:{installError:`Failed to install plugin. Please try again.`,removeConfirmMessage:`Remove "{name}" from this assistant?`,removeError:`Failed to remove plugin. Please try again.`,riskyUpgradeConfirmLabel:`Upgrade anyway`,riskyUpgradeConfirmMessage:`"{name}" has local edits that will be overwritten by the upgrade. Continue?`,toggleError:`Failed to update plugin. Please try again.`,upgradeError:`Failed to upgrade plugin. Please try again.`},pluginDetail:{backToPluginsAriaLabel:`Back to plugins`,noReadme:`This plugin doesn't ship a README.`,version:`v{version}`},pluginDetailShared:{autoIncludeInChat:`Auto-include in chat`,download:`Download`,homepageLabel:`Homepage`,hooksLabel:`Hooks`,install:`Install`,licenseLabel:`License`,loadErrorDetail:`It may not exist, or your assistant may be on an older build.`,loadErrorTitle:`We couldn't load this plugin.`,localSource:`Local`,remove:`Remove`,removePluginTitle:`Remove plugin`,skillsLabel:`Skills`,sourceLabel:`Source`,toolsLabel:`Tools`,upgrade:`Upgrade`,upgradePluginTitle:`Upgrade plugin`,upgradeTitle:`Upgrade {fromSha} → {toSha}`},pluginListRow:{disabled:`Disabled`,enabled:`Enabled`,installingAriaLabel:`Installing`,installPluginAriaLabel:`Install plugin`,moreIssues:`{count, plural, one { (+# more)} other { (+# more)}}`,noDescription:`No description provided.`,pluginTag:`Plugin`,removePluginAriaLabel:`Remove plugin`,version:`v{version}`},pluginOriginBadge:{external:`External`,local:`Local`},pluginToast:{alreadyUpToDate:`{name} is already up to date`,installed:`Installed {name}`,pluginFallback:`plugin`,pluginFallbackCapitalized:`Plugin`,removed:`Removed {name}`,upgraded:`Upgraded {name} to {sha}`},recencyLens:{all:`All`,ariaLabel:`Recency window`,month:`Month`,week:`Week`},sections:{channels:`Channels`,contacts:`Contacts`,library:`Library`,memory:`Memory`,schedules:`Schedules`,superpowers:`My Superpowers`,workspace:`Workspace`},skillDetail:{backToSkillsAriaLabel:`Back to skills`,filesTab:`Files`,fileViewModeAriaLabel:`File view mode`,historyTab:`History`,install:`Install`,noFilesAvailable:`No files available.`,openInWorkspaceAriaLabel:`Open in Workspace`,pendingAriaLabel:`Pending`,preview:`Preview`,remove:`Remove`,saveFailed:`Save failed`,selectAFile:`Select a file`,selectFilePrompt:`Select a file to view its contents.`,source:`Source`},skillDetailPage:{backToSuperpowers:`Back to My Superpowers`,notFoundSubtitle:`This skill may have been removed, or the link is out of date.`,notFoundTitle:`Skill not found`},skillFileContent:{binaryFile:`Binary file. No preview available.`,noPreviewAvailable:`No preview available for {fileName}.`},skillOriginBadge:{assistantMemory:`Assistant's Memory`,custom:`Custom`},skillRevisionHistory:{loadError:`Couldn't load revision history.`,noChanges:`No changes recorded yet.`,noPreviewForChange:`No preview available for this change.`,truncatedNotice:`Showing recent changes. Older history is periodically compacted, so this may not reach back to when the skill was created.`},skillRow:{bundledSkillCannotBeRemovedAriaLabel:`Bundled skill cannot be removed`,bundledSkillsCannotBeRemoved:`Bundled skills cannot be removed`,installingAriaLabel:`Installing`,installSkillAriaLabel:`Install skill`,removeSkillAriaLabel:`Remove skill`},skillsErrorState:{subtitle:`Something went wrong. Try refreshing the page.`,title:`Failed to load skills`},superpowersFilters:{categoriesLabel:`Categories`,done:`Done`,filterAriaLabel:`Filter superpowers`,filterLabel:{all:`All`,assistantMemory:`Assistant's Memory`,available:`Available`,custom:`Custom`,installed:`Installed`,plugins:`Plugins`,skills:`Skills`},filtersTitle:`Filters`,searchAriaLabel:`Search superpowers`,searchPlaceholder:`Search superpowers`,sourceLabel:`Source`,statusLabel:`Status`,typeLabel:`Type`},superpowersTab:{catalogBrowsingUnavailableNotice:`Plugin catalog browsing is temporarily unavailable. Installed plugins are still listed below.`,categoriesAriaLabel:`Superpower categories`,dismissTipAriaLabel:`Dismiss tip`,emptyState:{assistantMemorySubtitle:`Skills your assistant authors from past conversations will appear here.`,assistantMemoryTitle:`No Skills From Memory`,availableSubtitle:`All available skills and plugins are installed.`,availableTitle:`Nothing Left to Install`,categorySubtitle:`Try selecting a different category or clearing the filter.`,categoryTitle:`Nothing in this category`,clawhubSubtitle:`No Clawhub skills found. Try searching the catalog.`,clawhubTitle:`No Clawhub Skills`,customSubtitle:`Create a custom skill by describing what you want in chat.`,customTitle:`No Custom Skills`,defaultSubtitle:`Check your connection to the Vellum catalog.`,defaultTitle:`No Superpowers Available`,installedSubtitle:`Ask your assistant in chat to search for and install new skills and plugins.`,installedTitle:`No Superpowers Installed`,pluginsSubtitle:`Browse the catalog to install plugins that extend your assistant.`,pluginsTitle:`No Plugins Found`,skillsshSubtitle:`No skills.sh skills found. Try searching the catalog.`,skillsshTitle:`No skills.sh Skills`,skillsSubtitle:`Ask your assistant in chat to search for and install new skills.`,skillsTitle:`No Skills Found`,vellumSubtitle:`No bundled Vellum skills found.`,vellumTitle:`No Vellum Skills`},errorStateSubtitle:`Something went wrong. Try refreshing the page.`,errorStateTitle:`Failed to load superpowers`,pluginsUnavailableNotice:`Plugins are temporarily unavailable. Skills are still listed below.`,skillsUnavailableNotice:`Skills are temporarily unavailable. Plugins are still listed below.`,tipBannerText:`Create a new custom skill by describing what you want in chat, or install plugins to extend your assistant.`},updateAvailableBadge:{updateAvailable:`Update available`,upgradePluginAriaLabel:`Upgrade plugin`},useIdentitySectionStats:{activeCount:`{count, plural, one {# active} other {# active}}`,activeLabel:`{count, plural, one {active} other {active}}`,appAndDocCount:`{count, plural, one {# app or doc} other {# apps & docs}}`,appCount:`{count, plural, one {# app} other {# apps}}`,connectedCount:`{count, plural, one {# connected} other {# connected}}`,connectedLabel:`{count, plural, one {connected} other {connected}}`,itemCount:`{count, plural, one {# item} other {# items}}`,itemLabel:`{count, plural, one {item} other {items}}`,noSchedulesText:`Nothing scheduled yet`,personCount:`{count, plural, one {# person} other {# people}}`,personLabel:`{count, plural, one {person} other {people}}`,skillAndPluginCount:`{count, plural, one {# skill or plugin} other {# skills & plugins}}`,skillCount:`{count, plural, one {# skill} other {# skills}}`},usePluginsList:{failureMessage:`Failed to load plugins`},memoryUnavailable:{statusError:{title:`Couldn't check your memory settings`,detail:`Something went wrong reading this assistant's memory status, so there's nothing reliable to tell you yet.`},off:{title:`Memory is turned off`,detail:`Your assistant isn't keeping anything from your conversations, so there's no map to draw. Turn Memory back on to start remembering again.`},legacy:{title:`Upgrade to memory v3`,detail:`Your assistant is on an older memory engine. Memory v3 reorganizes what it knows into a linked wiki of concepts, and that wiki is what this map draws.`},unknown:{title:`Memory graph isn't available`,detail:`This assistant's memory backend doesn't report enough to say why. Update your assistant, and this page will tell you what it needs.`},prompts:{v2:`Migrate my memory from v2 to v3. That's most likely your "Memory v3 Migration" skill, but work out what my corpus actually needs and follow whichever skill you use exactly.
|
|
8
|
-
|
|
9
|
-
Run it in the background and tell me when it's done, or if something blocks.`,v1:`Migrate my memory from v1 to v3. That's most likely two hops, your "Memory v2 Migration" skill and then your "Memory v3 Migration" skill, but work out what my assistant actually needs and follow whichever skills you use exactly.
|
|
10
|
-
|
|
11
|
-
Run it in the background and tell me when it's done, or if something blocks.`,enable:`Turn my memory back on. I'd like you to start remembering things from our conversations again.`}}},zs={actions:{continue:`Continue`,back:`Back`,forward:`Forward`,cancel:`Cancel`,start:`Start`,add:`Add`,adding:`Adding…`,connect:`Connect`,connecting:`Connecting…`,tryAgain:`Try again`,remove:`Remove {value}`,logIn:`Log In`,logOut:`Log out`,loginToUse:`Log in to use`,downloadMacApp:`Download the macOS app`,claim:`Claim`,skipForNow:`Skip for now`,starting:`Starting…`},welcome:{title:`Welcome to Vellum`,body:`Your own personal intelligence is just a step away.`,continueWithoutAccount:`Continue without account`},startScreen:{createAssistant:`Create your assistant`},privacyScreen:{title:`Before You Start`,body:`Choose your privacy preferences. You can update these anytime in the Settings.`,skipToChat:`Skip to chat`},hostingScreen:{title:`Hosting`,body:`Choose where you want your assistant to live.`,needHelp:`Need help deciding?`,optionsAriaLabel:`Hosting options`},apiKeyScreen:{title:`Connect a Model Provider`,body:`Choose the model provider your assistant should use.`,providerLabel:`Provider`,modelLabel:`Model`,baseUrlLabel:`Base URL`,modelsLabel:`Models`,modelsPlaceholder:`model-1, model-2`,modelsHelp:`Comma-separated model identifiers exposed by your endpoint.`,apiKeyLabel:`{provider} API Key`,apiKeyPlaceholder:`Enter your API key`,noKeyPrompt:`Don't have it?`,getKeyLink:`Get an API key here`},selectAssistantScreen:{title:`Choose an Assistant`,listAriaLabel:`Assistants`,createNew:`Create a new assistant`,connectRemote:`Connect a remote assistant`,addRemote:`Add a remote assistant`,unnamedAssistant:`the assistant`,connectingToAssistant:`Connecting to your assistant…`,rowActionsAriaLabel:`Actions for {name}`,removeFromDevice:`Remove from this device…`,selfHosted:`Self-hosted`,selfHostedWithHost:`Self-hosted · {host}`,currentWithHost:`Current · {host}`,remoteWithHost:`Remote · {host}`},hatchingScreen:{apiKeyFailed:`Your API key didn't work`,genericFailure:`Something went wrong`,localFallbackPitch:`Get started today with a local assistant`,updateApiKey:`Update API key`,ready:`Your assistant is ready!`,waking:`Waking up…`,wakingBody:`Hang tight, your assistant will have a few questions for you once it's up.`,progressAriaLabel:`Assistant startup progress`,phase:{initializing:`Getting things ready…`,provisioning:`Setting up your assistant…`,connecting:`Connecting to your assistant…`,resizing:`Setting up your machine…`,ready:`Ready`}},addRemoteOriginDialog:{title:`Add a Remote Assistant`,body:`Paste the https link your assistant’s pairing page gave you.`,addressLabel:`Assistant address`},connectAssistantDialog:{importedTitle:`Pairing Imported`,importedBody:`This pairing is access-only: its access expires and cannot renew itself. Re-run vellum pair on the assistant’s machine and import the new bundle when it expires.`,title:`Connect a Remote Assistant`,bundleLabel:`Pairing bundle`,nameLabel:`Name (optional)`,instruction:`On the assistant’s machine, run <code>vellum pair --url https://...</code> and paste the bundle here.`},connectRecoveryDialog:{repairTitle:`Repair Assistant?`,repairBody:`Repairing re-provisions this assistant’s authentication token. Any other devices or browser sessions connected to it will be signed out and need to reconnect.`,repairConfirm:`Repair`,authFailedTitle:`Can’t Authenticate Assistant`,authFailedBody:`The authentication token for {name} is missing or can no longer be refreshed, so this assistant can’t be connected. You can repair it, retire it, or pick a different assistant.`,wakeAndRepair:`Wake & Repair`,retire:`Retire Assistant`},consentControls:{whatsChanged:`What's changed`,privacyPreferences:`Privacy preferences`,analyticsLabel:`Share Analytics`,analyticsHelp:`Send aggregated product usage data`,diagnosticsLabel:`Share Diagnostics`,diagnosticsHelp:`Send crash reports, conversation traces, and session replay data`,agreements:`Agreements`,agreeTo:`I agree to the <link>{policy}</link>`},onboardingAutocomplete:{addOption:`Add “{value}”`,enterHint:`↵ Enter`,freeTextHint:`Type anything and press ↵ to add your own`},stepIndicator:{ariaLabel:`Step {current} of {total}`},googleCalendar:{authorizationFailed:`Failed to start Google Calendar authorization.`},introductionScreen:{greetingNamed:`Hey, {name}!`,greeting:`Hey!`,introNamed:`I’m {name}, your new AI assistant.`,intro:`I’m your new AI assistant.`},pitchStep:{setupLine:`You’ve used AI that just answers questions.`,helpLine:`The more I help,`,punchLine:`I’m different.`,betterLine:`the better I get,`,lessLine:`and the less you have to do.`},createPersonalityStep:{title:`Create my personality`,lockedBody:`Personality locked, chat with your assistant to make any more updates`,axisAriaLabel:`{left} to {right}`,axes:{companionCoworker:{left:`Companion`,right:`Coworker`},genzBoomer:{left:`Gen Z`,right:`Baby Boomer`},executeCollaborate:{left:`Independent`,right:`Collaborative`},playfulSerious:{left:`Playful`,right:`Serious`},politeUnfiltered:{left:`Polite`,right:`Unfiltered`}}},giveMeAFaceScreen:{title:`Give me a face and a name`,previousCharacter:`Previous character`,nextCharacter:`Next character`,namePlaceholder:`Name your assistant`,nameAriaLabel:`Assistant name`,editName:`Edit name`,shuffle:`Shuffle name and appearance`,hearVoice:`Hear my voice`,stopVoice:`Stop the voice sample`},integrationStep:{title:`Here are some free credits<br></br> to get started.`},researchOnboardingScreen:{title:`Let's start with you.`,body:`A few details so I can get to know you.`,firstNameLabel:`What should I call you?`,firstNamePlaceholder:`Your name`,lastNameLabel:`And your last name?`,lastNamePlaceholder:`Your last name (optional)`,roleLabel:`Your role`,rolePlaceholder:`What do you do for work?`,hobbiesLabel:`Any hobbies?`,hobbiesPlaceholder:`Cars, books, growing tomatoes?`},letsChatTomorrowStep:{wakingTitle:`Waking up`,missingScopeTitle:`Access not enabled`,title:`Let me make this easy`,wakingBody:`Your assistant is getting ready`,missingScopeBody:`Check the box next to the Google Calendar permission so I can book the check-in.`,body:`Connect your Google Calendar so I can find time to check in and start helping.`,startingAssistant:`Starting assistant…`,waitingAuthorization:`Waiting for authorization…`,connectCalendar:`Connect Calendar →`},existingAssistantStep:{titleNamed:`{name} is already up and running`,title:`Your assistant is already up and running`,bodyNamed:`You two have history: a personality, memories, and past conversations. Running setup again would overwrite who {name} is now.`,body:`You two have history: a personality, memories, and past conversations. Running setup again would overwrite who your assistant is now.`,keepNamed:`Keep {name} and start chatting`,keep:`Keep your assistant and start chatting`,redoNamed:`Start over and rebuild {name}'s personality`,redo:`Start over and rebuild its personality`},checkinConnectScreen:{title:`Let's chat tomorrow`,body:`Add a meeting in your calendar so we can pick up where we left off.`,permissionBody:`{name} will add a single Day 2 Check-in event. It gets permission to manage your calendar events and see your email address, not your inbox or files, and you can disconnect at any time.`,unnamedAssistant:`your assistant`,waitingAuthorization:`Waiting for authorization...`,connectGoogleCalendar:`Connect Google Calendar`},meetingCreatedStep:{titleWithTime:`Check-in scheduled for tomorrow at {time}!`,title:`Check-in scheduled!`},lookingYouUpStep:{searching:`Searching the web to get to know you…`,readingProfiles:`Reading public profiles…`,skimming:`Skimming the highlights…`,connectingDots:`Connecting the dots…`,piecing:`Piecing it together…`,almostThere:`Almost there…`},finishingUpStep:{updatingPersonality:`Updating my personality…`,findingVoice:`Finding my voice…`,gettingIntoCharacter:`Getting into character…`,almostThere:`Almost there…`},researchResultsStep:{title:`This is what I found about you`,bodyLoadingWithClaims:`Still checking the rest. You can review these as they come in.`,bodyReadyWithClaims:`I searched the web. Feel free to remove anything that isn’t true.`,bodyLoadingEmpty:`Still putting this together…`,bodyReadyEmpty:`I didn’t turn up much, we can fill it in as we chat.`,removeClaim:`Remove "{claim}"`,notMe:`This is not me`,stillSearching:`Still searching…`},suggestionsStep:{title:`Here’s what we could do first`,pickOne:`Pick one to jump in, or start your own thing. <skip>Skip to Chat</skip>`,loading:`Putting together a few ideas…`,alreadySetUp:`Already set up the <plugins></plugins> {count, plural, one {plugin} other {plugins}} to help with your work`,listAnd:` and `,listCommaAnd:`, and `,listComma:`, `,fallbacks:{brief:{suggestion:`I'll pull together a quick brief on what's new in your field`,prompt:`Give me a quick brief on what's new in my field right now.`},weekly:{suggestion:`I'll send a weekly briefing on news in your space`,prompt:`Set up a weekly briefing on news in my space.`},week:{suggestion:`I'll help you get on top of your week`,prompt:`Help me get on top of my week.`},draft:{suggestion:`I'll draft something from a few rough notes`,prompt:`Draft something from a few rough notes I'll give you.`}}},letsChatReadyStep:{title:`You’re all set`,setupNote:`I’ve set myself up with plugins around who you are.`,letsChat:`Let's chat`}},Bs={pairingPage:{openInApp:`Open in the Vellum app`,continueInBrowser:`Continue in this browser`,pairingCode:`Pairing code`,expiresAt:`Expires {time}.`,cancel:`Cancel`}},Vs={terminalToolbar:{heading:`Terminal`,recoveryTitle:`Recovery Mode active, session connected to the debug terminal`,recoveryTag:`Recovery`,clearTitle:`Clear terminal output`,clear:`Clear`,disconnectTitle:`Disconnect terminal session`,disconnect:`Disconnect`,connectTitle:`Connect terminal session`,connect:`Connect`,statusAria:`Terminal status: {status}`},terminalStatus:{idle:`Idle`,connecting:`Connecting`,connected:`Connected`,reconnecting:`Reconnecting`,error:`Error`,closed:`Closed`},terminalConsole:{consoleAria:`Terminal console`}},Hs={workspaceTree:{heading:`Files`,newFile:`New File`,newFolder:`New Folder`,delete:`Delete`,rename:`Rename`,renaming:`Renaming…`,create:`Create`,creating:`Creating…`,creatingHeading:`Create new`,createTriggerAria:`Create new file or folder`,createTriggerTitle:`New file or folder`,nameLabel:`Name`,nameError:`Enter a single file or folder name without slashes.`,cancel:`Cancel`,sortByNameAria:`Sort by name`,sortBySizeAria:`Sort by size`,sortedBySizeTitle:`Sorted by size, switch to name`,sortedByNameTitle:`Sorted by name, switch to size`,hideHiddenAria:`Hide hidden files`,showHiddenAria:`Show hidden files`,searchPlaceholder:`Search files`,clearSearchAria:`Clear search`,noFilesFound:`No files found`,deleteFolderTitle:`Delete Folder`,deleteFileTitle:`Delete File`,deleteFileMessage:`Are you sure you want to delete <name>{name}</name>? This cannot be undone.`,deleteFolderMessage:`Are you sure you want to delete <name>{name}</name> and all of its contents? This cannot be undone.`,deleting:`Deleting…`},workspaceBrowser:{drawerTitle:`Files`},workspaceFileViewer:{download:`Download`,downloading:`Downloading…`,downloadFailed:`Download failed. Try again.`,preview:`Preview`,source:`Source`,modifiedLabel:`Modified:`,selectAFile:`Select a file to view`,browseFiles:`Browse files`,fileNotFound:`File not found`,saveFailed:`Save failed`,downloadAria:`Download {name}`}},Us={acpChatPlanBlock:{plan:`Plan`},acpChatTerminalBlock:{atTime:`at {time}`,cancelled:`Cancelled`,completed:`Completed`,refused:`Refused`,runFailed:`Run failed`,stoppedLimitReached:`Stopped: limit reached`},acpChatToolCard:{hideRaw:`Hide raw input/output`,rawInput:`Raw input`,rawOutput:`Raw output`,showRaw:`Show raw input/output`},acpConnectAffordance:{connectButton:`Connect`,errorFallback:`Connecting Claude failed. Please try again.`,pastePlaceholder:`Paste your key`,saveButton:`Save`,subtitleConnected:`Claude Code connected, continuing...`,subtitleExchanging:`Completing sign-in...`,subtitleIdle:`Use your Claude Code subscription`,subtitlePaste:`Paste the key from the tab that opened`,subtitleStarting:`Starting sign-in...`,subtitleWaiting:`Waiting for Claude sign-in...`,title:`Connect Claude Code`},acpRunChatView:{backToConversationAria:`Back to conversation`,backTooltip:`Back`,closeRunDetail:`Close run detail`,goToNewest:`Go to newest`,inputLabel:`Input`,objective:`Objective`,outputLabel:`Output`,sendSteerAria:`Send steering instruction`,steerAria:`Steering instruction`,steerPlaceholder:`Steer the run…`,stopRunAria:`Stop run`},activeChatView:{retryConfirm:`Retry`,retryMessage:`The latest response will be discarded and regenerated. This can't be undone.`,retryTitle:`Retry this response?`,startingFirst:`Starting your first conversation…`,stillWorking:`Your assistant is still working…`,summarizeConfirm:`Summarize`,summarizeMessage:`The assistant will summarize the conversation before this point and carry only the summary in its working memory going forward. Messages stay visible and are never deleted.`,summarizeTitle:`Summarize up to here?`,takingLonger:`Your assistant is taking longer than expected.`,tryAgain:`Try again`},activityStepsPanel:{backAria:`Back to all steps`,backTooltip:`All steps`,closeSteps:`Close steps`,thinkingTitle:`Thinking`,viewThinkingAria:`View thinking`},addToChatSheet:{camera:`Camera`,closeAriaLabel:`Close`,files:`Files`,gallery:`Photo Library`,pickFailed:`Could not add that file. Please try again.`,pickFull:`{count, plural, one {# file did not fit in this batch. Add it on its own.} other {# files did not fit in this batch. Add them separately.}}`,title:`Add to chat`,tooLarge:`{count, plural, one {# file is too large to attach} other {# files are too large to attach}}`},allowOptionsMenu:{allowAndCreateRule:`Allow & Create Rule`,trigger:`More allow options`},appAssetActions:{appExported:`App exported`,shareFailed:`Failed to share app`},archiveAllConfirmDialog:{confirm:`Archive All`,message:`{count, plural, one {Archive the conversation in “{groupName}”? Archived conversations leave the sidebar. You can find them later by searching “is:archived”.} other {Archive all # conversations in “{groupName}”? Archived conversations leave the sidebar. You can find them later by searching “is:archived”.}}`,title:`Archive All`},assistantContentDisclosure:{earlierActivity:`Earlier activity`},assistantNavItem:{newChat:`New Chat`},assistantSideMenu:{bulkActionMembersFailed:`Couldn't load every conversation in this section. Try again.`,closeNavAria:`Close navigation`,navAria:`Assistant navigation`,searchShortcut:`Search (⌘K)`},assistantSwitcher:{collapse:`Hide assistants`,currentAssistant:`{name}, current assistant`,expand:`Switch assistant`,switchFailed:`Couldn't switch assistants. Try again.`,switchTo:`Switch to {name}`,unnamedAssistant:`Unnamed assistant`},attachmentChip:{removeAria:`Remove {filename}`},attachmentDownloadOverlay:{download:`Download`,downloadAria:`Download {filename}`},attachmentLoadingChip:{cancelUploadAria:`Cancel upload of {filename}`,uploadingTitle:`Uploading {filename}`},attachmentOverflowSquare:{moreTitle:`{count} more`,showAllAria:`Show all files ({count} more)`},attachmentPreviewModal:{closePreviewAria:`Close preview`,downloadAria:`Download {filename}`,downloadLabel:`Download`,nextAttachmentAria:`Next attachment`,previewAria:`Preview of {filename}`,previousAttachmentAria:`Previous attachment`},backgroundTaskDetailPanel:{closeDetail:`Close task detail`,command:`Command`,exitCode:`Exit code: {code}`,output:`Output`,stopCommandAria:`Stop command`},billingErrorBanner:{dismiss:`Dismiss`},cacheBreakpointMapCard:{description:`Where the {count, plural, one {# cache breakpoint} other {# cache breakpoints}} fell across this request's prefix, and which segments were read versus re-created.`,estimatedTokens:`≈ {count} tokens`,fullMissBody:`Every segment was re-created this turn. Compare with the previous turn in the cache diff above to find the block that changed.`,fullMissTitle:`Full cache miss`,loadError:`Couldn't load the request payload to map cache breakpoints.`,loading:`Loading the request payload to map cache breakpoints…`,noBreakpoints:`This request carried no cache breakpoints - prompt caching was disabled for the call.`,splitEstimatedNote:` The read/created split is attributed by segment size; the provider reports only the totals.`,statusCreated:`Re-created`,statusRead:`Read from cache`,statusUnknown:`Cached`,title:`Cache breakpoints`,tokenEstimateNote:`Token counts are estimated from text length.`},cacheDiffCard:{changedLabel:`Changed`,changedMessageFallback:`a message`,chipMessages:`Messages`,chipModel:`Model`,chipSettings:`Settings`,chipSystem:`System`,chipTools:`Tools`,currentModelFallback:`this model`,description:`What changed since the previous turn's request - the block that re-created the prompt cache.`,diffAnyway:`Diff anyway ({lineCount} lines)`,diffLabel:`{label} diff`,diffLargeDefault:`The changed text is large, so it isn't diffed by default.`,diffStillTooLarge:`Still too large to diff here (over {maxLines} lines) - open the Raw tab for the full payload.`,diffTooLarge:`The changed text is too large to diff here - open the Raw tab for the full payload.`,loadPreviousCallError:`Couldn't load the previous call to diff against.`,loadingPreviousCall:`Loading the previous call to compare…`,messageStatsAppended:`{count} appended`,messageStatsLeading:`Leading messages: {parts}`,messageStatsRemoved:`{count} removed`,messageStatsShared:`{count} shared`,previousModelFallback:`the previous model`,previousPromptUnavailable:`The previous call's prompt isn't available to compare.`,showLess:`Show less`,showMoreDiffLines:`Show {count} more diff line(s)`,statusMessagesEarlierBody:`{label} #{index} differs from the previous turn, so everything cached after it is re-processed this turn.`,statusMessagesEarlierTitle:`An earlier message changed`,statusMessagesHistoryBody:`{removedCount} earlier message(s) are gone this turn (likely history compaction), so the cached message prefix no longer matches.`,statusMessagesHistoryTitle:`Message history changed`,statusModelBody:`This turn used {current} but the previous turn used {previous}. A different model can't reuse the previous prompt cache, so the whole prompt is re-created.`,statusModelTitle:`Model changed`,statusPrefixUnchangedBodyAppended:`The cached prefix matches the previous turn and {count} new message(s) were appended. A cache miss here points to cache TTL expiry rather than changed content.`,statusPrefixUnchangedBodyIdentical:`The cached prefix is identical to the previous turn. A cache miss here points to cache TTL expiry rather than changed content.`,statusPrefixUnchangedTitle:`Prompt prefix unchanged`,statusSettingsBody:`Only request settings (e.g. temperature) differ from the previous turn. For most providers this alone won't bust the prompt cache.`,statusSettingsTitle:`Request settings changed`,statusSystemBody:`Part of the system prompt changed since the previous turn. Volatile content here - a timestamp, memory, or a per-turn block - re-creates the cache every turn.`,statusSystemTitle:`System prompt changed`,statusToolsBody:`The tool set or its definitions differ from the previous turn. Tools sit at the front of the cached prefix, so any change here re-creates the cache before it reaches the system prompt and messages.`,statusToolsTitle:`Tool definitions changed`,title:`Cache diff`,unchangedLines:`⋯ {count} unchanged line(s)`},cacheHealthCard:{barAriaLabel:`Prompt cache breakdown of {total} tokens: {segments} ({percent} cached).`,barSegment:`{count} {label}`,cached:`cached`,description:`How much of this call's prompt was served from the prompt cache.`,segmentCreated:`Re-created`,segmentFresh:`Fresh input`,segmentRead:`Read from cache`,statusFullMissBody:`None of this call's prompt was read from cache.`,statusFullMissReCreatedSuffix:` {count} tokens were written to the cache this turn but none were reused - this usually means the cached prefix changed since the previous turn.`,statusFullMissTitle:`Full cache miss`,statusHealthyBody:`{percent} of this call's prompt ({count} tokens) was served from cache.`,statusHealthyTitle:`Healthy cache reuse`,statusPartialBody:`{percent} of this call's prompt ({count} tokens) was served from cache; the rest was re-processed this turn.`,statusPartialTitle:`Partial cache reuse`,title:`Cache health`,unavailableNote:`This call didn't report prompt-cache usage.`,unavailableNoteForProvider:`This call didn't report prompt-cache usage for {provider}.`},callRail:{callCount:`{count, plural, one {# LLM call} other {# LLM calls}}`,callLabel:`Call {number}`,compaction:`Compaction`,cost:`Cost`,empty:`No LLM calls recorded.`,failed:`Failed`,latest:`Latest`,navAriaLabel:`LLM calls`,syntheticAgentLoopError:`Agent loop error`,syntheticAgentLoopErrorWithReason:`Agent loop error · {reason}`,syntheticYield:`Yield · compaction couldn't fit next step`,unrecognizedCall:`Unrecognized call`},callSummarySurface:{eventsRecorded:`{count, plural, one {# event} other {# events}} recorded.`},cameraDeepLink:{captureFailed:`Could not take that photo. Please try again.`,close:`Close camera`,flip:`Switch camera`,openFailed:`Could not open the camera.`,shutter:`Take photo`,title:`Take a photo`},cardSurface:{tasksProgress:`{completed} / {total} tasks`},channelSetupPanel:{accountSid:`Account SID`,accountSidPlaceholder:`ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx`,authToken:`Auth Token`,authTokenPlaceholder:`Twilio auth token`,close:`Close`,closeSetupAria:`Close setup panel`,connectedHeading:`{channel} is connected`,credentialsSaved:`Credentials saved. Return to the chat to finish setup.`,phoneConnected:`Your assistant is ready for phone calls via Twilio.`,phoneLabel:`Phone`,save:`Save`,saving:`Saving…`,settingsTitle:`{channel} settings`,setupTitle:`{channel} setup`,slackConnected:`Your assistant is ready to receive messages on Slack.`,telegramConnected:`Your assistant is ready to receive messages on Telegram.`,twilioIntro:`Enter your Twilio credentials from the <consoleLink>Twilio Console</consoleLink>. After saving, return to the chat. Your assistant will finish configuring your phone number and webhooks.`},chatAttachments:{attachFileAria:`Attach file`,dismiss:`Dismiss`,removeAria:`Remove {filename}`},chatBody:{dropFiles:`Drop files to attach`},chatComposer:{addToChat:`Add to chat`,askAssistantPlaceholder:`Ask {assistantName}`,configureVoice:`Configure voice`,recording:`Recording`,sendMessage:`Send message`,stopGenerating:`Stop generating`,transcribing:`Transcribing`,transcribingEllipsis:`Transcribing…`,typeToSend:`Type a message to send`,uploadingAttachments:`Uploading attachments…`},chatConversationHeader:{archived:`[Archived]`,newChat:`New Chat`,untitled:`Untitled`},chatLayout:{navigationAria:`Navigation`},chatLayoutHeader:{backAria:`Back (Ctrl+[)`,forwardAria:`Forward (Ctrl+])`,openNavigationAria:`Open navigation`,searchAria:`Search (Ctrl+K)`,toggleSidebarAria:`Toggle sidebar`},chatMarkdownMessage:{expandImageAria:`Expand image`,expandImageAriaWithAlt:`Expand image: {alt}`,imageFailed:`Image failed to load`,imageFailedWithAlt:`Image failed to load ({alt})`,loadingImage:`Loading image…`,loadingImageWithAlt:`Loading image… ({alt})`},chatPage:{connecting:`Connecting…`,connectingStuck:`Still connecting to your assistant - something seems stuck. Try again, or refresh the page if this keeps happening.`,retryNow:`Retry now`,selfHostedUnreachable:`Couldn't reach your self-hosted assistant. Make sure your assistant is running, then try again.`,tryAgain:`Try again`},chatRouteContent:{askTheDoctor:`Ask the Doctor`,copyCliFix:`Copy CLI fix`,goToDoctor:`Go to Doctor`,openPage:`Open page`,suggestionFallback:`Suggestion`},chatRuleEditorModal:{applyTo:`Apply to`,cancel:`Cancel`,createTitle:`Create Trust Rule`,description:`Matching tool calls take this rule's risk level, so your approval tolerance can auto-approve them.`,editTitle:`Edit Trust Rule`,everywhere:`Everywhere`,narrowerScopeAria:`Narrower scope`,orNarrowScope:`Or narrow the scope:`,save:`Save`,saveAsNew:`Save As New`,saveRule:`Save Rule`,saving:`Saving…`,suggested:`Suggested: {risk}`,treatAs:`Treat as`,where:`Where`},choiceSurface:{continue:`Continue`,recommended:`Recommended`},cleanupScreen:{broomAria:`broom`,hatchHint:`You'll be able to hatch a new assistant once this is complete.`,hintAlmostDone:`Almost done…`,hintCleaning:`Cleaning up your assistant…`,hintWrapping:`Wrapping things up…`,timeoutBody:`Try running Vellum Doctor to diagnose the issue, or <communityLink>ask the community</communityLink> for help.`,timeoutTitle:`Cleanup is taking longer than expected`,title:`Cleaning up your assistant…`,warningAria:`warning`},collapsedGroupIcon:{noConversations:`No conversations`},compactionCircuitOpenBanner:{ariaLabel:`Auto-compaction paused`,message:`Auto-compaction paused - long conversation may overflow. Use /compact to compact manually.`},compactionTab:{compactedMessages:`{count} compacted`,compactedPreserved:`Compacted / preserved`,contextTokens:`Context tokens`,duration:`Duration`,durationMs:`{count} ms`,emptyBody:`A compaction is attributed to the call that ran right after it. If you expect one here, check that the conversation crossed its context budget just before this call.`,emptyTitle:`No compaction is tied to this call`,eventIndex:` · {index} of {totalCount}`,hideSummaryText:`Hide summary text`,loadFailedDefault:`Failed to load compaction.`,loadFailedTitle:`Failed to load`,loading:`Loading compaction…`,messageRange:`{before} → {after}`,messages:`Messages`,outcomeCompacted:`Compacted`,outcomeFailed:`Compaction failed`,outcomeFailedDetail:`The summarizer call errored, so the context was left intact.`,outcomeNoChange:`No change`,outcomeUnavailable:`Outcome unavailable`,outcomeUnavailableDetail:`Detailed before/after metrics weren't recorded for this compaction.`,preservedMessages:`{count} preserved`,reductionRatio:`{ratio}× smaller`,retry:`Retry`,showSummaryText:`Show summary text`,summarizerUsage:`{input} in / {output} out`,summaryCost:`Summary cost`,summaryModel:`Summary model`,tokenRange:`{before} → {after}`,tokenRangeWithReduction:`{before} → {after} ({reduction})`,trigger:`Trigger`},composerDraftNotices:{draftRestored:`Draft restored from your previous session.`,waitingUpload:`{count, plural, one {Waiting for the attachment to finish uploading before sending.} other {Waiting for # attachments to finish uploading before sending.}}`},composerNotices:{allowMicrophone:`Allow Microphone`,openSettings:`Open Settings`},composerSecretNotice:{blockedTitle:`Message not sent. It looks like it contains an API key.`,body:`Credentials sent in chat are visible in the transcript. Store it securely instead.`,dismiss:`Dismiss`,sendAnyway:`Send anyway`,storeSecurely:`Store securely`,warningTitle:`This looks like an API key`},composerSettingsMenu:{accessAria:`Assistant access: {label}`,assistantAccess:`Assistant Access`,assistantAccessTitle:`Assistant access`,compactAria:`Assistant access and model profile`,compactAriaWithSummary:`Assistant access and model profile: {summary}`,defaultLabel:`{label} (default)`,defaultSuffix:`(default)`,loadingProfiles:`Loading profiles…`,modelProfile:`Model Profile`,modelProfileTitle:`Model profile`,newProfile:`New Profile`,profileAria:`Model profile: {label}`,profileAriaFallback:`Model profile`,profileSwitchFailed:`Profile created, but couldn't switch to it`,profileSwitchFallback:`Failed to switch profile. Please try again.`},confirmationActions:{submitFailed:`Failed to submit confirmation. Please try again.`,submitFailedRuleAvailable:`Failed to submit confirmation, but you can still create a rule.`},confirmationPromptCard:{allow:`Allow`,deny:`Deny`,hideDetails:`Hide details`,showDetails:`Show details`,titleFallback:`Confirmation required`,toolLabel:`Tool:`},contactActions:{saveFailed:`Failed to save contact. Please try again.`},contactPromptCard:{addContact:`Add a contact`,cancel:`Cancel`,contactSaved:`Contact saved`,dismiss:`Dismiss`,enterAddress:`Enter {channel} address`,save:`Save`,saving:`Saving…`},contextWindowIndicator:{clearContext:`Clear Context`,compactsHint:`{name} automatically<br></br>compacts its context.`,compactsHintInline:`{name} automatically compacts context`,defaultAssistantName:`Your assistant`,label:`Context window:`,percentFull:`{percentage}% full`,ringAria:`Context window {percentage}% full`,title:`Context Window`,tokensUsed:`{used} / {max} tokens used`},conversationActions:{archive:`Archive`,copyConversation:`Copy Full Conversation`,copyConversationId:`Copy conversation ID`,delete:`Delete`,forkConversation:`Fork Conversation`,inspect:`Analyze Conversation`,markRead:`Mark as read`,markUnread:`Mark as unread`,moveToGroup:`Move to group`,newGroup:`New group…`,openInNewWindow:`Open in New Window`,pin:`Pin`,refresh:`Refresh`,removeFromGroup:`Remove from group`,rename:`Rename`,shareFeedback:`Share Feedback`,triggerAriaLabel:`Conversation actions`,unarchive:`Unarchive`,unpin:`Unpin`},conversationActionsSheet:{closeAriaLabel:`Close`,title:`Conversation Actions`},conversationActivityPill:{activity:`Activity`,recent:`Recent`,running:`Running`},conversationAssetActions:{delete:`Delete`,downloadPdf:`Download PDF`,exportAsVellum:`Export as .vellum file`,open:`Open`,optionsFor:`Options for {name}`,pin:`Pin`,share:`Share`,unpin:`Unpin`},conversationAssets:{ariaLabel:`Conversation assets, {count, plural, one {# item} other {# items}}`,ariaLabelUnseen:`Conversation assets, {count, plural, one {# item} other {# items}} (unseen changes)`,heading:`Assets`,label:`{count, plural, one {# asset} other {# assets}}`},conversationRow:{untitled:`Untitled`},conversationStarterDock:{caption:`Try some suggestions:`},conversationStarterGrid:{sendAria:`Send: {label}`},copyBlockSurface:{copied:`Copied`,copy:`Copy`},copyButton:{copied:`Copied`,copyFailed:`Could not copy to the clipboard.`},copyIdToClipboard:{conversationCopied:`Conversation ID copied to clipboard.`,conversationFailed:`Couldn't copy the conversation ID.`,groupCopied:`Group ID copied to clipboard.`,groupFailed:`Couldn't copy the group ID.`},creditsCard:{balanceAria:`{balance} credits`,balanceShort:`{balance} c`,credits:`Credits`},creditsUpsellCard:{loginToAddCredits:`Log in to the Vellum platform to add credits.`},csvPreview:{emptyFile:`This file is empty`,summary:`{rows} rows x {columns} columns`,summaryTruncated:`{rows} rows x {columns} columns (truncated)`},dailyLimitBanner:{skipConfirmTitle:`Skip today's credit limit?`,skipError:`Could not skip today's limit. Please try again.`,skipForToday:`Skip for today`,subtitle:`Vellum credit spend is paused until your limit resets at {resetPhrase}.`,title:`Daily credit limit reached`},deleteConversationConfirmDialog:{cancel:`Cancel`,confirm:`Delete`,message:`Delete “{title}”? This permanently removes the conversation and its messages. This cannot be undone.`,title:`Delete conversation`,untitled:`Untitled`},documentAssetActions:{pdfDownloadFailed:`Failed to download PDF`},documentCommentForm:{send:`Send`,sending:`Sending…`},documentCommentPanel:{addCommentPlaceholder:`Add a comment…`,closeAria:`Close comments panel`,empty:`No comments yet`,loading:`Loading comments…`,submitFeedback:`Submit Feedback`,title:`Comments`},documentCommentThread:{assistantMonogram:`V`,authorAssistant:`Assistant`,authorYou:`You`,deleteCommentAria:`Delete comment`,jumpToHighlight:`Jump to highlighted text`,open:`Open`,reopen:`Reopen`,reply:`Reply`,replyPlaceholder:`Write a reply…`,resolve:`Resolve`,resolved:`Resolved`},documentPreviewSurface:{openAria:`Open {name}`},documentReopenLink:{openAria:`Open {name}`},documentViewerContainer:{close:`Close`,closeDocumentAria:`Close document`,comments:`Comments`,export:`Export`,hideComments:`Hide comments`,menuAria:`Document options`,rename:`Rename`,renameFailed:`Could not rename the document.`,renameSave:`Save`,renameTitle:`Rename document`,saved:`Saved`,saving:`Saving…`,wordCount:`{count, plural, one {# word} other {# words}}`},documentViewerPage:{notFound:`Document not found.`},dynamicPageSurface:{titleFallback:`Dynamic content`},exportProgressModal:{cancel:`Cancel`,close:`Close`,defaultError:`Failed to export inspector data.`,descriptionDone:`Your download should have started automatically.`,descriptionError:`Something went wrong while collecting the export.`,descriptionRunning:`Collecting provider payloads and normalized context. This can take a moment for long conversations.`,done:`Done`,progressAriaLabel:`Export progress`,retry:`Retry`,statusDone:`Done`,statusPackaging:`Packaging ZIP…`,statusProgress:`{completed} of {total} calls`,titleDone:`Export complete`,titleError:`Export failed`,titleRunning:`Exporting inspector data`},fileDiffView:{diffForAria:`Diff for {path}`},fileDownload:{failed:`Failed to download file`},filePreviewContainer:{closePreviewAria:`Close preview`,closeTooltip:`Close`,download:`Download`,downloadAria:`Download {name}`,loadError:`Couldn't load this file`,overLimit:`{size}, over the {limit} preview limit`,tooLarge:`This file is too large to preview`,tryAgain:`Try again`},fileUploadSurface:{accepted:`Accepted: {types}`,dropHint:`Drag and drop files here, or click to browse`,maxSize:`Max size: {size}`,upload:`Upload`,uploading:`Uploading...`},formSurface:{secureHint:`This value will be sent securely and will not be stored in your browser.`,selectPlaceholder:`Select...`},groupActions:{archiveAll:`Archive All…`,copyGroupId:`Copy group ID`,deleteGroup:`Delete group`,deleteGroupWithConversations:`Delete group…`,groupByChannel:`Group by channel`,markAllRead:`Mark All as Read`,moveSectionDown:`Move Section Down`,moveSectionUp:`Move Section Up`,rename:`Rename`,ungroup:`Ungroup`},groupActionsSheet:{title:`{name} actions`},groupNameDialogFromStore:{create:`Create`,newTitle:`New group`,renameTitle:`Rename group`,save:`Save`},inChatOnboardingController:{next:`Next`,showMeAround:`Show me around`,skipTour:`Skip tour`},inChatPluginPill:{ariaLabel:`Chat plugins, {count} active`,costCaption:`Changing plugin settings can incur high costs.`,countLabel:`{count, plural, one {# plugin} other {# plugins}}`,manage:`Manage`,plugins:`Plugins`},inlineProcessCard:{stop:`Stop`},inspectPage:{accessDenied:`Inspector is available when the Internal Thread Actions feature flag is enabled.`,allMessages:`All messages`,back:`Back`,backToConversationAria:`Back to conversation`,chooseCall:`Choose a call from the rail to inspect its context.`,conversationScopeSubtitle:`Showing every LLM call recorded for this conversation.`,detailLoadFailed:`Failed to load this call’s normalized context.`,emptyBodyConversation:`Either no message in the conversation was produced by an LLM call or the request logs were trimmed by retention.`,emptyBodyMessage:`Either this message wasn’t produced by an LLM call or its request logs were trimmed by retention.`,emptyTitleConversation:`No LLM calls recorded for this conversation.`,emptyTitleMessage:`No LLM calls recorded for this message.`,enableLogging:`Enable logging`,enableLoggingFailed:`Failed to enable logging`,enableLoggingFailedWithMessage:`Failed to enable logging ({message})`,enabling:`Enabling…`,exportFailed:`Failed to export inspector data`,exportZip:`Export ZIP`,exportZipAria:`Export inspector data as ZIP`,exporting:`Exporting…`,filterToMessage:`Filter to message:`,llmCallCount:`{count, plural, one {1 LLM call} other {# LLM calls}}`,loadContextFailed:`Failed to load LLM context.`,loadFailedTitle:`Failed to load`,loading:`Loading…`,loggingDisabledBody:`Request and response payloads aren’t being recorded, so there’s nothing to inspect. Enable logging to capture future LLM calls.`,loggingDisabledTitle:`LLM request logging is off`,loggingEnabledToast:`LLM request logging enabled`,messageOptionDeepLink:`Message {messageId}`,messageOptionNoText:`{index}. (no text)`,messageOptionWithPreview:`{index}. {preview}`,retry:`Retry`,scopedToOneMessage:`Scoped to one message · `,scopedToTurn:`Scoped to turn {index} of {count} · `,title:`LLM Context Inspector`},liveVoiceButton:{startVoiceMode:`Start voice mode`},llmCallErrorCard:{chipCode:`Code`,chipProvider:`Provider`,chipRequestId:`Request ID`,chipStatus:`Status`,chipType:`Type`,chipUpstreamCode:`Upstream code`,chipUpstreamParam:`Upstream param`,chipUpstreamType:`Upstream type`,noResponse:`The provider rejected this call and returned no response.`,title:`Call failed`},localFileEmbed:{loadingAria:`Loading {label}`,pictureInPictureUnavailable:`Picture in Picture isn't available`},localFileLink:{unavailable:`This file isn't available here`},localFileMenu:{download:`Download`,fileActionsAria:`File actions`,goToFile:`Go to file`,pictureInPicture:`Picture in Picture`},lowBalanceBanner:{addCredits:`Add credits`,ariaLabel:`Your credits are running low. {detail}`,subtitle:`Add credits to avoid an interruption.`,title:`Your credits are running low`},maintenanceModeBanner:{body:`Your assistant workspace is currently connected to a debug terminal. Chat is unavailable while in Recovery Mode.`,loginHint:`Log in to the Vellum platform to exit Recovery Mode.`,resume:`Resume Assistant`,title:`Assistant in Recovery Mode`},maintenanceRecoveryCard:{body:`Chat is unavailable while maintenance is active.`,goToDebug:`Go to Debug Settings`,title:`Assistant is in Recovery Mode`},memoryRouterPlaygroundPage:{addOlderPairButton:`+ Add older pair`,assistantReplyLabel:`[assistant]: reply`,assistantReplyPlaceholder:`Assistant's reply that came before the user message below.`,configTitle:`Config {paneId}`,conversationalContextTitle:`Conversational context (shared by both panes)`,customPromptPlaceholder:`Custom router system prompt. Available placeholders:
|
|
12
|
-
'{ASSISTANT_NAME}, {USER_NAME}, {PAGE_INDEX}'
|
|
13
|
-
Leave blank to use the bundled template. "Load default" seeds the textarea with the bundled body for editing.`,description:`Dry-run the v4 router with custom tier/batch overrides. Read-only - no rows are written to <code>memory_v2_injection_events</code> or <code>memory_v2_activation_logs</code>, and no activation state is mutated. Leave an override blank to inherit the live config value; enter <code>null</code> to explicitly disable a tier.`,diffLabel:`Diff`,diffValue:`{shared} shared · {unique} unique to this pane`,effectiveConfig:`Effective config`,emaScore:`EMA {score}`,empty:`(empty)`,emptySelectionHint:`The router returned an empty selection. Try a more specific query, or relax the override values.`,failedToRunSimulation:`Failed to run simulation`,firstTurnAssistantPlaceholder:`Leave blank for a first-turn scenario.`,inheritActive:`inherit active`,inheritActiveWithProfile:`inherit active ({profile})`,inheritPlaceholder:`inherit`,invalidOverrideInput:`Invalid override input`,justArrivedUserLabel:`Just-arrived [user]: message`,lastUserPlaceholder:`e.g. what should we ship next`,legendAOnly:`A only`,legendBOnly:`B only`,legendInBoth:`in both`,llmProfilesOverride:`llm.profiles override`,loadDefault:`Load default`,loading:`Loading…`,noPagesSelected:`No pages selected`,notAvailable:`Memory router playground is not available.`,nowBlockLabel:`'<now>' block`,nowDefaultPlaceholder:`Pre-filled with the live NOW.md. Edit to test alternate states.`,nowLoadingPlaceholder:`Loading current NOW.md…`,nullValue:`null`,overrideMustBePositiveInteger:`{fieldName} must be a positive integer or 'null' (got "{value}")`,overrideSuffix:` (override)`,pageCount:`{count, plural, one {# page} other {# pages}}`,pairLabel:`Pair {index} of {total}`,pairMostRecentSuffix:` · most recent`,paneTitle:`Pane {paneId}`,promptModeBundled:`bundled`,promptModeCustom:`custom`,rawApiExchange:`Raw API exchange`,recentPairsLabel:`Recent (assistant, user) pairs · oldest first`,reloadNowButton:`Reload live NOW.md`,removeButton:`Remove`,requestLabel:`Request (Pane {paneId})`,reset:`Reset`,responseLabel:`Response (Pane {paneId})`,routerFailure:`Router failure: {reason}`,runBoth:`Run both`,runPane:`Run {paneId}`,running:`Running…`,selectedLabel:`Selected`,selectedValue:`{count} (live max_page_ids: {maxPageIds})`,summary:`Summary`,summaryUserMessageLabel:`User message`,systemPrompt:`System prompt`,systemPromptConfigLabel:`system prompt`,tier1Label:`tier 1`,tier2Label:`tier 2`,tier3Label:`tier 3 · b{batch}`,title:`Memory Router Playground`,totalCandidatePagesLabel:`Total candidate pages`,userMessageLabel:`[user]: message`,userMessagePlaceholder:`User's message.`},memoryTab:{afterMergeLabel:`After merge`,breakdownCAssistantRerank:`c_assistant · rerank Δ_a`,breakdownCAssistantSim:`c_assistant · sim_a`,breakdownCNowSim:`c_now · sim_n`,breakdownCUserRerank:`c_user · rerank Δ_u`,breakdownCUserSim:`c_user · sim_u`,breakdownOwnActivation:`A_o (own)`,breakdownPriorActivation:`prior · d`,breakdownRerankScaledRaw:`+{scaled} (raw {raw})`,breakdownScaledRaw:`{scaled} (raw {raw})`,breakdownSource:`source`,breakdownSpreadDelta:`spread Δ`,breakdownStatus:`status`,candidateScores:`sem {semantic} · rec {recency}`,carriedPill:`Carried: {count}`,conceptActivationsSubtitle:"Sorted by final activation. Skill entries appear with the `skills/` slug prefix; expand a row for the activation breakdown.",conceptActivationsTitle:`Concept activations ({count})`,configCAssistant:`c_assistant`,configCNow:`c_now`,configCUser:`c_user`,configDDecay:`d (decay)`,configEpsilon:`epsilon`,configHops:`hops`,configKSharpening:`k (sharpening)`,configSubtitle:`Activation weights and selection thresholds.`,configTitle:`Config`,configTopK:`top_k`,copyAriaLabel:`Copy to clipboard`,copyAriaLabelCopied:`Copied`,copyButtonCopied:`Copied`,copyButtonCopy:`Copy`,copyErrorMessage:`Couldn't copy to clipboard.`,copyTitle:`Copy`,copyTitleCopied:`Copied!`,corePill:`Core: {count}`,degradationTitle:`Degradation`,fallbackSourcesLabel:`Fallback sources`,hybridSearchLabel:`Hybrid search`,inContextPill:`In context: {count}`,injectedMemoryContextTitle:`Injected memory context`,injectedPill:`Injected: {count}`,injectedTokensLabel:`Injected tokens`,latencyMs:`{ms} ms`,loading:`Loading…`,loggedMemorySelectionSubtitle:`Rendered from the v3 selection, not injected this turn.`,loggedMemorySelectionTitle:`Logged memory selection`,memoryDisabledDefaultReason:`Memory recall was disabled for this turn.`,memoryDisabledTitle:`Memory disabled`,missingValue:`-`,modelLabel:`Model`,no:`No`,noDataBody:`Memory recall information is not available for this message.`,noDataTitle:`No memory data`,noEntriesRanked:`No entries ranked.`,noPagesSelected:`No pages selected.`,notInjectedPill:`Not injected: {count}`,pageContentLabel:`page content`,pageNotFound:`Page not found on disk. Slug may reference a stale Qdrant entry.`,pillMemoryV2:`Memory V2`,pillMemoryV3:`Memory V3`,pillRecallV1:`Recall (v1)`,pinnedChip:`pinned`,pinnedPill:`Pinned: {count}`,providerLabel:`Provider`,queryContextSubtitle:`The text embedded as the search vector for semantic retrieval.`,queryContextTitle:`Query context`,reasonLabel:`Reason`,retrievalFunnelSubtitle:`How memories were filtered from semantic search to injection.`,retrievalFunnelTitle:`Retrieval funnel`,searchDetailsTitle:`Search details`,selectedLabel:`Selected`,selectedPagesSubtitle:`Pages v3 selected, tagged by the lane that surfaced them and the matched section (when a finder lane surfaced one).`,selectedPagesTitle:`Selected pages ({count})`,selectedPill:`Selected: {count}`,semanticHitsLabel:`Semantic hits`,semanticUnavailableLabel:`Semantic unavailable`,sparseDenseOnly:`Dense only`,sparseUsed:`Used`,sparseVectorsLabel:`Sparse vectors`,statusActive:`Active`,statusDegraded:`Degraded`,statusLabel:`Status`,statusSubtitle:`Provider, model, and latency for this recall.`,statusTitle:`Status`,tier1Label:`Tier 1`,tier2Label:`Tier 2`,topCandidatesSubtitle:`{count, plural, one {# candidate ranked by final score.} other {# candidates ranked by final score.}}`,topCandidatesTitle:`Top candidates`,totalLatencyLabel:`Total latency`,turnLevelRecallBody:`Memory recall runs once per turn. This data applies to all LLM calls for this message.`,turnLevelRecallTitle:`Turn-level recall`,turnPill:`Turn {turn}`,unavailable:`Unavailable`,unknown:`Unknown`,v2StatusInContext:`In context`,v2StatusInjected:`Injected`,v2StatusNotInjected:`Not injected`,v2StatusPageMissing:`Page missing`,v2TurnBody:`Spreading-activation memory pass that ranks concepts and skills for this turn.`,v2TurnTitle:`Memory - turn {turn} ({mode})`,v3LiveInjectionBody:`v3 is the live memory source this turn: the block below was injected into context (v2 suppressed).`,v3LiveInjectionTitle:`Memory V3 - live injection`,v3LoggedSelectionBody:`v3 is not the live memory source for this assistant: these selections were logged but not injected this turn; the turn's memory came from v2.`,v3LoggedSelectionTitle:`Memory V3 - logged selection (not injected)`,v3SourceCarried:`carried`,v3SourceCore:`core`,v3SourceL1L2:`L1+L2`,v3SourceNeedle:`needle`,yes:`Yes`},messageFilesPanel:{closeAria:`Close files`,empty:`No files on this message`,title:`Files`},messageHoverActions:{bookmark:`Bookmark`,copied:`Copied`,copy:`Copy`,forkFromHere:`Fork from here`,inspect:`Inspect`,openInSlack:`Open in Slack`,removeBookmark:`Remove bookmark`,retry:`Retry`,summarizeUpToHere:`Summarize up to here`},messageLongPressActions:{bookmark:`Bookmark`,copied:`Copied`,removeBookmark:`Remove bookmark`,title:`Message actions`},micPermissionPrimer:{cancel:`Cancel`,continue:`Continue`,description:`Voice input requires microphone access. Audio is transcribed by your configured speech-to-text provider, or by your device's built-in dictation when no provider is set.`,title:`Microphone Access`},missingApiKeyBanner:{ariaLabel:`API key required`,body:`Add an API key in Settings → Models & Services to start chatting.`,dismiss:`Dismiss`,dismissAria:`Dismiss API key required alert`,openSettings:`Open Settings`,title:`API key required`},mobileCallSelector:{callOfTotal:`Call {number} of {total}`,llmCallCount:`{count, plural, one {1 LLM call} other {# LLM calls}}`,selectCallAria:`Select an LLM call to inspect`,sheetTitle:`Select a call`},multiActivityGroup:{dismissAria:`Dismiss`,unknownCommandNudge:`This command wasn't recognized. <ruleLink>Create a rule</ruleLink> to classify it for next time.`,viewSteps:`View steps`},nameInputDialog:{cancel:`Cancel`,icon:`Icon`,name:`Name`,noIcon:`No icon`},newChatPluginsPicker:{heading:`Add plugins for new chat`,managePlugins:`Manage Plugins`,showAll:`Show all (+{count})`,showLess:`Show less`,tooltip:`Choose which plugins this chat can use. Your selection is applied when you send your first message and stays with this conversation.`},newChatPluginsSection:{managePlugins:`Manage Plugins`},oauthConnectSurface:{approvalAria:`About assistant approval`,approvalTooltip:`{name} never acts on your behalf without your approval`,connect:`Connect`,connectTitle:`Connect {name}`,connected:`Connected`,defaultDescription:`Connect {name} so I can use it for this task.`,dismiss:`Dismiss`,missingDetails:`Missing assistant or provider details.`,thisAccount:`this account`,waiting:`Waiting...`,yourAssistant:`Your assistant`},onboardingChoiceCard:{continue:`Continue`,helpWithHeading:`What can I help with?`,letsChat:`Let's chat`,other:`Other`,otherPlaceholder:`What do you need help with?`,selectAll:`Select all that apply`,somethingElse:`something else`,specific:`I have something specific`},orphanedHistoryNotice:{message:`The conversation this one branched from was deleted, so the messages before the branch point are gone. Everything sent since is intact.`},overviewTab:{cacheTokensLabel:`Cache tokens`,conversationSubtitle:`Running totals across every priced LLM call so far.`,conversationTitle:`Conversation`,createdLabel:`Created`,durationLabel:`Duration`,estimatedCostLabel:`Estimated cost`,failedStatus:`Failed`,firstTokenKindLabel:`First token kind`,firstTokenLatencySubtitle:`Where this turn's time-to-first-token went, measured by the assistant.`,firstTokenLatencyTitle:`First-token latency`,inputTokensLabel:`Input tokens`,latencyMs:`{ms} ms`,loopExitReasonLabel:`Loop exit reason`,modelLabel:`Model`,normalizedMetadataSubtitle:`Provider, model, timestamps, and usage counts.`,normalizedMetadataTitle:`Normalized metadata`,normalizedSummaryUnavailableSubtitle:`This call still has raw request and response payloads.`,normalizedSummaryUnavailableTitle:`Normalized summary unavailable`,otherLabel:`Other`,outputTokensLabel:`Output tokens`,providerLabel:`Provider`,requestMessagesLabel:`Request messages`,statusLabel:`Status`,stopReasonLabel:`Stop reason`,toolCallsLabel:`Tool calls`,toolsAvailableLabel:`Tools available`,totalCostSoFarLabel:`Total cost so far`,totalToFirstTokenLabel:`Total to first token`,usageSubtitle:`Token and call counts normalized by the assistant route.`,usageTitle:`Usage`},pageTabs:{formStepsAria:`Form steps`},phaseGroupedStepList:{startedAt:`Started at {time}`},pinnedAppColorSwatches:{colors:{green:`Green`,orange:`Orange`,pink:`Pink`,purple:`Purple`,teal:`Teal`,yellow:`Yellow`},noColor:`No color`},pinnedAppNavItem:{unpin:`Unpin`,unpinAria:`Unpin {name}`},pluginPill:{disableAria:`Disable {name} for this chat`,enableAria:`Enable {name} for this chat`},preferencesMenu:{admin:`Admin`,preferences:`Preferences`,settings:`Settings`,shareFeedback:`Share Feedback`},preferencesUsagePanel:{addCreditsAriaLabel:`Add credits`,exhausted:`Add credits to continue.`,pctUsed:`{pct}% used`,resets:`Resets {date}`,settingsAriaLabel:`Usage and billing settings`,title:`Usage`},previewMessageCard:{download:`Download`,downloadAria:`Download {filename}`},previewSkeleton:{loadingPreview:`Loading preview`},previewUnsupported:{downloadFile:`Download file`,goToFile:`Go to file`},promptSubmission:{noActiveSession:`No active session. Please try again.`},promptTab:{availableTools:`Available tools`,bannerNoSections:`This call has no normalized prompt sections yet.`,bannerSectionsCount:`{count, plural, one {# normalized request section shown in the order returned by the assistant route.} other {# normalized request sections shown in the order returned by the assistant route.}}`,collapseAll:`Collapse all`,copyAriaLabel:`Copy {title}`,emptyBody:`This call has no normalized prompt sections. Use the Raw tab to inspect the full request payload.`,emptyTitle:`No normalized prompt sections`,expandAll:`Expand all`,formatJavaScript:`JavaScript`,formatJson:`JSON`,formatMarkdown:`Markdown`,formatTypeScript:`TypeScript`,noContentAvailable:`No content available.`,promptSectionsTitle:`Prompt sections`},providerBillingBanner:{body:`Add funds with your provider or lower the model token limit.`,title:`Your API key needs credits`},pullRefreshSpinner:{refreshing:`Refreshing`},questionActions:{submitFailed:`Failed to submit response. Please try again.`},questionPromptCard:{closeQuestionAria:`Close question`,nextQuestionAria:`Next question`,optionAria:`Option {number}: {label}`,position:`{current} of {total}`,previousQuestionAria:`Previous question`,sendResponseAria:`Send response`,skip:`Skip`,skipAria:`Skip this question`,skipped:`Skipped`,skippedHint:`Skipped - pick an option to override`,typeDifferentAnswerAria:`Type a different answer`,typeSomethingElsePlaceholder:`Type something else`},queuedMessagesDrawer:{cancelAll:`Cancel all`,cancelAllAria:`Cancel all queued messages`,cancelAria:`Cancel queued message`,editAria:`Edit queued message`,pushToAgentAria:`Push to agent`,queueHeading:`Queue · {count}`,showActionsAria:`Show queued message actions`},quoteReplyBubble:{addToChat:`Add to Chat`,ariaLabel:`Quote and reply`,cancel:`Cancel`,placeholder:`Type your reply…`},rawTab:{copyRequestPayloadAriaLabel:`Copy request payload`,copyResponsePayloadAriaLabel:`Copy response payload`,downloadFailedToast:`Failed to download the payload.`,downloadRequestPayloadAriaLabel:`Download request payload`,downloadResponsePayloadAriaLabel:`Download response payload`,loadErrorTitle:`Couldn't load raw payloads`,loading:`Loading raw payloads…`,payloadRequestFailed:`The payload request failed. Try again.`,request:`Request`,requestPayload:`Request payload`,response:`Response`,responsePayload:`Response payload`,retry:`Retry`},redactedCredentialChip:{clickToReveal:`Click to reveal`,clickToRevealTitle:`{label} · click to reveal`,copyValue:`Copy value`,copyValueAria:`Copy value for {name}`,hideValue:`Hide value`,hideValueAria:`Hide value for {name}`,redacted:`Redacted`,redactedTitle:`Redacted - this value is not linked to a stored credential`,redactionMarkerTitle:`Redaction marker - not verified by the assistant`,revealFailed:`Couldn't reveal {name}.`,revealValueAria:`Reveal value for {name}`},refreshFeedbackPill:{retryAria:`Retry refresh`},renameDialogFromStore:{save:`Save`,title:`Rename conversation`},researchActivityFeed:{defaultStatus:`Searching the web to get to know you.`,heading:`Getting to know you…`,reading:`Reading <title>{title}</title><domain> · {domain}</domain>`,searchingFor:`Searching for <query>“{query}”</query>`,warmingUp:`Warming up the search…`},researchFactsCard:{editRemovalAria:`Edit removal`,keepIt:`Keep it`,removeAria:`Remove`,sources:`Sources`,whyRemove:`Why remove this?`},researchMockPage:{heading:`Getting to know you…`,mockNote:`(mock - the live flow shows the search activity feed here)`,resultsTitle:`Here's what I know about you. You can remove any that aren't true:`},researchResultsOverlay:{body:`Here's what I know about you. You can remove any that aren't true:`,loading:`Getting to know you…`},researchResultsView:{continue:`Continue`,emptyBody:`I couldn't pull together a clean profile this time. We can get to know each other as we go.`,emptyTitle:`Let's just dive in.`},researchSuggestions:{heading:`Here's how I could help to start:`},responseTab:{argumentsPreview:`Arguments preview`,copySectionAria:`Copy section content`,kindAssistantText:`Assistant text`,kindFunctionResponse:`Function response`,kindReasoning:`Reasoning`,kindToolCall:`Tool call`,kindToolResult:`Tool result`,modeResultOnly:`Result-only response`,modeTextOnly:`Text-only response`,modeToolCalling:`Tool-calling response`,noArgumentsPreview:`No structured arguments preview is available for this tool call.`,noAssistantText:`No assistant text was captured for this section.`,noSectionsFallback:`This response has no rendered sections. Raw payloads remain available in the Raw tab, and any normalized response metadata will still be shown when present.`,rawTabHint:`Need the full provider payload? Open the Raw tab for request and response JSON.`,responseMetadata:`Response metadata`,sectionTitle:`Section {number}`,sectionUnavailable:`Section rendering unavailable`,stopReasonChip:`Stop reason: {reason}`,toolChip:`Tool: {name}`},ruleEditorActions:{saveFailed:`Failed to save trust rule. Please try again.`},scrollToLatestButton:{aria:`Go to newest message`,label:`Go to Newest`},secretActions:{submitFailed:`Failed to submit secret. Please try again.`},secretPromptCard:{cancel:`Cancel`,domains:`Domains: {list}`,placeholder:`Enter secret value...`,save:`Save`,savedSecurely:`Saved securely`,saving:`Saving...`,secretValueFallback:`Secret value`,sendOnce:`Send Once (not saved)`,sending:`Sending...`,storedSecurelyNote:`This information is stored securely on your device and not sent to any server. AI never sees this value.`,title:`Secure Credential`,tools:`Tools: {list}`},selfHostedScreen:{body:`Conversations for self-hosted assistants aren't available from the web yet. Manage your assistant from settings.`,openSettings:`Open settings`,title:`Self-hosted assistant`},setupScreen:{settingUp:`Setting up your assistant…`},sideMenuBuiltInNav:{yourAssistant:`Your Assistant`},sideMenuOverlayBottomColumn:{newChat:`New Chat`},sidebarBackToTop:{label:`Back to top`},sidebarConversationError:{message:`Your conversations failed to load.`,retry:`Try again`},sidebarConversationSkeleton:{loadingAria:`Loading conversations`},sidebarListContextMenu:{newGroup:`New group…`},singleActivity:{webSearch:`Web Search`},skillCreatedCard:{view:`View`,viewAria:`View {name}`},skillDetailPanel:{actionsAria:`Skill actions`,closeDetails:`Close skill details`,goToSkill:`Go to Skill`,loadError:`This skill could not be loaded. It may have been removed.`,moreTooltip:`More`,removeSkill:`Remove skill`,titleFallback:`Skill`},skillExecuteDetail:{parameters:`Parameters`,rawInput:`Raw input`,runningSuffix:` · running`},skillLoadCard:{view:`View`},skillLoadDetail:{loadingAria:`Loading skill`,provides:`Provides`,usedSkill:`Used Skill`},skillLoadOutput:{output:`Output`,outputFormatAria:`Output format`,showLess:`Show less`,showMore:`Show more`},skillToolList:{fromSkill:`From {name}`},skillsTab:{callLink:`Call {number}`,emptyBody:`This tab lists every <code>skill_load</code> tool call across the conversation. None were detected in the captured LLM calls.`,emptyTitle:`No skills were loaded in this conversation`,loadCount:`{count, plural, one {1 load} other {# loads}}`,summaryStats:`{uniqueCount, plural, one {# unique skill} other {# unique skills}} · {totalLoads, plural, one {# load call} other {# load calls}}`,summaryTitle:`Skills loaded in this conversation`},stagedQuotesStrip:{editReplyAria:`Edit reply`,removeQuoteAria:`Remove quote`,typeReplyPlaceholder:`Type your reply…`},storeCredentialDialog:{successToast:`Stored securely. The key never entered the chat.`},subagentAvatarRow:{details:`Details`,showDetailsAria:`Show subagent details`},subagentDetailPanel:{backToTimelineAria:`Back to timeline`,backTooltip:`Back`,closeDetail:`Close subagent detail`,input:`Input`,noEventsYet:`No events yet`,objective:`Objective`,output:`Output`,showLess:`Show less`,showMore:`Show more`,stopSubagentAria:`Stop subagent`,timeline:`Timeline`},subagentPhaseTimeline:{viewReasoning:`View reasoning`,viewSearchDetails:`View search details`,viewSearchError:`View search error`,viewToolDetails:`View tool details`,workedFor:`Worked for {duration}`},subagentSpawnGroup:{collapse:`Collapse`,collapseDetailsAria:`Collapse subagent details`,stopSubagentAria:`Stop subagent`},suggestionCard:{openAria:`Open suggestion: {title}`},suggestionDetailPanel:{closeAria:`Close`,letsDoIt:`Let's do it!`,thingsWeCanDo:`Things we can do:`,whatWellNeed:`Here's what we'll need:`},suggestionLibrary:{scrollForMore:`Scroll down to see more`},surfaceActions:{submitFailed:`Failed to submit. Please try again.`},surfaceRouter:{cancelled:`Cancelled`,displayFailed:`This content couldn't be displayed.`,displayFailedNamed:`"{title}" couldn't be displayed.`,done:`Done`,unknownSurface:`Unknown surface`,unsupportedType:`Unsupported surface type: {type}`},tableSurface:{copied:`Copied`,copy:`Copy`,copyAria:`Copy table as markdown`},taskPreferencesSurface:{continue:`Continue`,defaultTitle:`What can I help with?`,other:`Other`,otherPlaceholder:`Describe what you need help with...`,selectAll:`Select all that apply`,somethingElse:`something else entirely`},textPreview:{loadFailed:`Failed to load preview.`,tooLarge:`File too large to preview inline.`},textSelectionPopover:{reply:`Reply`},tiptapDocumentEditor:{adding:`Adding…`,comment:`Comment`,feedbackPlaceholder:`Add your feedback…`},toolCallChip:{allow:`Allow`,confirmationRequired:`Confirmation required`,copyOutput:`Copy output`,deny:`Deny`,hideDetails:`Hide Details`,output:`Output`,showDetails:`Show Details`,technicalDetails:`Technical Details`,toolLatency:`Tool latency:`,toolName:`Tool Name`},toolDefinitionsContent:{defaultValue:`default: {value}`,inputSchema:`Input schema`,intro:`{count, plural, one {# tool} other {# tools}} sent with this request. Expand a tool to see its definition and input schema.`,noInputSchema:`No input schema - this tool takes no structured input.`,required:`required`,settings:`Settings`},toolDetailPanel:{closeAria:`Close tool details`,output:`Output`,riskLevel:`Risk Level`,running:`Running…`},toolStepPill:{openAria:`Open {label}`,viewDetailsAria:`View details: {label}`},transcriptMessageBody:{fileUnavailable:`File not available for download`,fileUnavailableHostTimeout:`File not available for download (host file approval may have timed out)`,stopCommand:`Stop command`,stopRun:`Stop run`,stopWorkflow:`Stop workflow`},transcriptRow:{thinking:`Thinking`},useConversationLoader:{authFailed:`Failed to authenticate user.`},useConversationSecondaryActions:{assistantBusy:`Your assistant is busy. Try again when it finishes replying.`,retryFailed:`Couldn't retry the response`,summarizeFailed:`Couldn't summarize the conversation`},useNativeWidgetSnapshotSync:{untitled:`Untitled`},useSendMessage:{commandFailed:`Couldn't run that command. Please try again.`,doctorUnavailable:`The Doctor isn't available on this assistant.`},vellumFileActionModal:{downloadFile:`Download file`,goToFile:`Go to file`},visualPlaceholder:{sketching:`Sketching a visual...`},visualSurface:{visual:`Visual`},voiceComposerBar:{ariaLabel:`Voice session`,endSession:`End voice session`,muteAssistant:`Mute assistant`,muteMicrophone:`Mute microphone`,muted:`Muted`,openVoiceRoom:`Open voice room`,unmuteAssistant:`Unmute assistant`,unmuteMicrophone:`Unmute microphone`},voiceErrors:{nativeSttNoTranscript:`{clientName} Native Dictation didn’t return a transcript. Check native speech recognition in system settings, then try again.`},voiceFirstRunCard:{backAria:`Back`,description:`A hands-free, spoken conversation with {name}.`,listeningLanguage:`Listening language`,listeningLanguageApplies:`Applies from your next spoken turn.`,liveCaptions:`Turn on live captions anytime.`,muteMic:`Mute the mic without ending the session.`,speakNaturally:`Speak naturally and {name} replies out loud.`,startTalking:`Start talking`,title:`Voice mode`,voiceSettings:`Voice settings`,yourAssistant:`your assistant`},voicePickerSurface:{unavailable:`Choosing a voice isn't available for this assistant right now.`},voiceRoom:{ariaLabel:`Voice session`,closeCamera:`Close camera`,endSessionAria:`End voice session`,endSessionTooltip:`End session`,flipCamera:`Flip camera`,minimizeAria:`Minimize voice room`,minimizeTooltip:`Minimize (session keeps going)`,muteAssistant:`Mute assistant`,muteMicrophone:`Mute microphone`,mutedState:`Muted. {state}`,showCamera:`Show the camera`,takePhoto:`Take a photo`,unmuteAssistant:`Unmute assistant`,unmuteMicrophone:`Unmute microphone`},voiceSessionPill:{dismiss:`Dismiss`,endSession:`End voice session`,goToThreadAria:`Go to voice session thread`,groupAria:`Voice session`,muteAssistant:`Mute assistant`,muteMic:`Mute microphone`,unmuteAssistant:`Unmute assistant`,unmuteMic:`Unmute microphone`},voiceSessionPillHost:{muted:`Muted`},weatherForecastDisplay:{celsius:`°C`,fahrenheit:`°F`,feelsLike:`Feels like {temp}°`,highLow:`H:{high}° L:{low}°`,now:`Now`},webFetchDetailView:{content:`Content`,fetchFailed:`Fetch failed.`,fetching:`Fetching…`,noContent:`No content extracted.`,rawResult:`Raw result`,viewExtracted:`View extracted`,viewRaw:`View raw`},webSearchDetailView:{noSources:`No sources found.`,query:`Query`,sources:`Sources`,sourcesWithCount:`Sources ({count})`},webSearchStepRow:{moreCount:`+{count} more`},workResultSurface:{after:`After`,before:`Before`,notSet:`Not set`,removed:`Removed`},workflowDetailPanel:{agents:`Agents`,back:`Back`,backToSubagentsAria:`Back to subagents`,closeDetail:`Close workflow detail`,input:`Input`,noSubagentsYet:`No subagents yet`,output:`Output`,stopWorkflow:`Stop workflow`,subagents:`Subagents`},workflowLeafDetail:{input:`Input`,noPromptSummary:`No prompt summary`,noResultSummary:`No result summary`,output:`Output`,prompt:`Prompt`,result:`Result`,running:`Running…`},workflowSubagentRow:{cancelledAria:`Cancelled`,openDetailsAria:`Open {title} details`},workspacePathLink:{openTitle:`Open {path}`}},Ws={aboutPage:{build:`Build`,tagline:`AI assistant for your Mac`,version:`Version`},activeAssistantGate:{connecting:`Connecting to your assistant…`,logIn:`Log In`,logOut:`Log Out`},addCredentialModal:{cancel:`Cancel`,credentialSaved:`Credential saved.`,description:`Add an API key or token to let tools and integrations use it.`,fieldLabel:`Field`,fieldPlaceholder:`e.g. api_token`,labelOptional:`Label (optional)`,labelPlaceholder:`e.g. GitHub personal access token`,save:`Save`,saveFailed:`Failed to save credential`,serviceLabel:`Service`,servicePlaceholder:`e.g. github`,title:`Add credential`,valueLabel:`Value`,valuePlaceholder:`Enter the secret value`},addCreditsModal:{amount:`Amount`,cancel:`Cancel`,configureAutoReload:`Configure Auto-Reload`,continue:`Continue`,description:`You'll be redirected to Stripe to complete the payment.`,title:`Add Credits`},appCard:{openApp:`Open App`,pin:`Pin`,previewTitle:`{name} preview`,unpin:`Unpin`},appNavBar:{close:`Close`,copyLink:`Copy link`,deploy:`Deploy`,deployToVercel:`Deploy to Vercel`,deployToVercelSubtitle:`Publish as a static page`,deployedCopyLinkAria:`Deployed to Vercel, copy link`,deployedCopyLinkTooltip:`Deployed: copy link`,deployedToVercel:`Deployed to Vercel`,deploying:`Deploying…`,edit:`Edit`,expandApp:`Expand app`,fullscreen:`Fullscreen`,openApp:`Open app`,redeploy:`Redeploy`,redeploySubtitle:`Publish the current version`,share:`Share`,shareAndDeploy:`Share & deploy`,shareExportSubtitle:`Export as .vellum file`,sharing:`Sharing…`},appViewerContainer:{exitFullscreen:`Exit fullscreen`},avatarManagementModal:{body:`Body`,color:`Color`,eyes:`Eyes`,keepUploadedDescription:`Saving the character replaces it`,keepUploadedLabel:`Keep your uploaded image`,loadError:`Unable to load avatar components. Make sure your assistant is running.`,name:`Name`,next:`Next {label}`,previous:`Previous {label}`,randomize:`Randomize`,save:`Save`,saving:`Saving…`,title:`Update Avatar`,uploadImage:`Upload image`,uploadedAlt:`Uploaded avatar`,useCharacterDescription:`Pick from our built-in avatars`,useCharacterLabel:`Use a character instead`},bundleConfirmPage:{bySigner:`by {name}`,cancel:`Cancel`,capabilities:`Capabilities`,createdBy:`Created by`,hideWarnings:`Hide Warnings ({count})`,install:`Install`,installAnyway:`Install Anyway`,loading:`Loading...`,showWarnings:`Show Warnings ({count})`,size:`Size`},byoVoiceNote:{body:`Your assistant speaks through a provider you configured yourself. Set its voice on <settingsLink>Models & Services</settingsLink>.`},chatAvatar:{alt:`Assistant avatar`,fallbackLetter:`V`},collapsibleNavSection:{actionsTitle:`{title} actions`},commandPalette:{ariaLabel:`Command palette`,clear:`Clear`,clearSearch:`Clear search`,closeSearch:`Close search`,noResults:`No results`,placeholder:`Search conversations, memories…`,searchAriaLabel:`Search`,searching:`Searching…`,shortcutHint:`⌘K`},companionIntro:{ariaLabel:`Introducing your companion`,done:`Got it`,meet:{body:`I stay on your desktop, even when Vellum isn’t visible.`,title:`This is me`,titleNamed:`I’m {name}`},menu:{body:`That’s where you hide me or change my size.`,title:`Right-click me`},next:`Next`,skip:`Skip`,talk:{body:`Start a voice conversation.`,title:`Talk`},type:{body:`Send a message from here and read the reply here too.`,title:`Type`}},companionSurface:{allow:`Allow`,deny:`Deny`,endSession:`End session`,goBack:`Go back`,messagePlaceholder:`Message {name}`,muteAssistant:`Mute assistant`,muteMicrophone:`Mute microphone`,notNow:`Not now`,send:`Send`,showSummary:`Show summary`,stopTeaching:`Stop teaching`,summarizing:`Summarizing`,talk:`Talk`,teach:`Teach`,type:`Type`,unmuteAssistant:`Unmute assistant`,unmuteMicrophone:`Unmute microphone`},contentActionBar:{copiedAria:`Copied`,copyFailed:`Couldn't copy the file contents.`,copyFileContentsAria:`Copy file contents`,downloadFileAria:`Download file`,editFileAria:`Edit file`},createAssistantDialog:{cancel:`Cancel`,create:`Create`,description:`Provision a new assistant. It will start up in the background.`,namePlaceholder:`Assistant name (optional)`,title:`New Assistant`,toastSuccess:`New assistant created.`},dateRangeSelect:{ariaLabel:`Date range`,lastDays:`{days, plural, one {Last # day} other {Last # days}}`},deleteAppDialog:{delete:`Delete`,deleting:`Deleting…`,message:`"{name}" will be permanently removed.`,title:`Delete app`},deployDialogs:{confirmLabel:`Let your assistant handle it`,confirmLabelNamed:`Let {assistantName} handle it`,message:`"{appName}" uses backend services that won't work on a static Vercel page. Your assistant can deploy it properly with serverless functions.`,messageNamed:`"{appName}" uses backend services that won't work on a static Vercel page. {assistantName} can deploy it properly with serverless functions.`,title:`This app needs a full deploy`},detailPanelStopButton:{tooltip:`Stop`},detailPrimitives:{copied:`Copied`,copy:`Copy`},dictationOverlayPage:{stopRecording:`Stop recording`},discordNudgeBanner:{ariaLabel:`Join the Vellum Discord community`,ctaLong:`Join Discord`,ctaShort:`Join`,subtitleLong:`Talk to the team - share feedback, request features, get answers faster`,subtitleShort:`Share feedback, request features, get answers faster`,title:`Join our community!`},diskPressureBanner:{acknowledge:`Acknowledge`,acknowledging:`Acknowledging...`,cleanupBody:`Prompt your assistant to free up space before it runs out and enters a locked state.`,cleanupTitle:`Cleanup mode is active`,criticalBody:`Your assistant will enter a locked state if it runs out of storage.`,criticalModalDescription:`Your assistant will enter a locked state if it runs out of storage. You should either prompt your assistant to free up space or increase your storage.`,criticalTitle:`Storage is critically low`,dontShowAgain:`Don't show again`,manageStorage:`Manage Storage`,review:`Review`,upgrade:`Upgrade`,warningBody:`Free up space to avoid interruptions.`,warningBodyWithUpgrade:`Free up space or add more storage to avoid interruptions.`,warningTitle:`Your storage is almost full`},editFooter:{discard:`Discard`,save:`Save`,saving:`Saving…`},generateInviteLinkDialog:{copyAriaLabel:`Copy invite link`,createFailed:`Failed to create invite link. Make sure A2A is enabled for your assistant.`,creating:`Creating invite link…`,done:`Done`,shareHint:`Share this link with another assistant owner to establish a connection.`,title:`Share Connection Link`,tryAgain:`Try Again`},githubNudgeBanner:{ariaLabel:`Vellum is open source on GitHub`,ctaAriaLabel:`Star Vellum on GitHub`,ctaLabel:`Star us`,subtitle:`Star us on GitHub or contribute`,title:`Vellum is open source`},lazyBoundary:{loadError:`This section couldn't load. Reload the page to try again.`},macosAppBanner:{ariaLabel:`Download the macOS app`,ctaAriaLabel:`Download macOS app`,ctaLabel:`Download`,subtitle:`Computer use · terminal access · native automation`,title:`Get the macOS app`},nativeAppBanner:{bannerAria:`Download the {appName} app`,download:`Download`,downloadAppAria:`Download {appName} app`,subtitle:`Push notifications · biometric login · haptics`,title:`Get the {appName} app`},nativeSplash:{logoAlt:`Vellum`},notFound:{backToAssistant:`Back to your assistant`,badge:`Error 404`,body:`The page you're looking for doesn't exist or may have moved.`,goBack:`Go back`,title:`Page not found`},nudgeChatBanner:{dismissAria:`Dismiss`},onboardingBackButton:{back:`Back`},platformLoginNotice:{cancel:`Cancel`,logIn:`Log In`},profileCard:{assistantHandleIdleEmpty:`Your assistant doesn't have a handle yet - claim one to make it mentionable.`,assistantHandleLabel:`Assistant handle`,assistantHandleUpdated:`Assistant handle updated.`,available:`Available`,availableHelper:`Available.`,checkAvailabilityFailed:`Couldn't check availability.`,checkingAvailability:`Checking availability…`,chooseDifferentHandle:`Please choose a different handle.`,emailLabel:`Email`,handleHelper:`Lowercase letters, digits, hyphens, and underscores. 3–30 characters.`,handleLocked:`Your assistant's handle is locked because it's used as its email subdomain. To change it, <releaseLink>release the subdomain</releaseLink> first.`,loading:`Loading your profile…`,notAvailable:`Not available`,profileUpdated:`Profile updated.`,save:`Save`,saved:`Saved`,saving:`Saving…`,subtitle:`Manage your account details and preferences.`,title:`Profile`,userHandleIdleAutoGenerated:`Your handle was auto-generated at signup - pick one you like.`,userHandleLabel:`User handle`},profileQuickAddProvider:{created:`Profile "{name}" created`},quickInputPage:{logoAlt:`Vellum`,placeholder:`Ask Vellum anything...`},removeFromDeviceDialog:{confirm:`Remove`,messageOrigin:`This won't affect {assistantName} or sign you out there. It only forgets the entry on this device. Add it again anytime.`,messagePaired:`This won't affect {assistantName} on its host machine. It only forgets the pairing on this device. Pair again anytime with vellum connect import.`,messagePlatform:`This won't delete {assistantName}. It only removes it from this device. Logging in will make it available again.`,title:`Remove from this device?`},resourcePressureBanner:{body:`Your assistant has been using elevated resources for an extended period, upgrade to power up your assistant.`,bodyNoUpgrade:`Your assistant has been using elevated resources for an extended period.`,dontShowAgain:`Don't show again`,title:`Resource utilization is high`,upgrade:`Upgrade`},retireConfirmDialog:{confirmLabel:`Retire`,message:`This will permanently retire this assistant and all of its data. You will need to go through the onboarding flow again to create a new one. This action cannot be undone.`,title:`Retire Assistant`},rootHydrateFallback:{loadingAria:`Loading`},routeErrorBoundary:{chunkFailBody:`This section couldn't load. Likely a network blip or a stale version. Reload the page to try again.`,reload:`Reload`},runtimeUpgradeBanner:{confirmMessage:`Update to version {version}? The assistant will be briefly unavailable during the update.`,confirmTitle:`Update assistant runtime`,later:`Later`,title:`New assistant version available: {version}`,toastComplete:`Update complete. Your assistant is healthy.`,toastFailed:`Failed to trigger update. Please try again.`,update:`Update`},sectionActionsButton:{ariaLabel:`{name} actions`},serviceFormControls:{reset:`Reset`,save:`Save`},shareConnectionLinkButton:{label:`Share Connection Link`},shareFeedbackModal:{aboutDiagnosticsAria:`About diagnostics`,addFiles:`Add files`,adminOnlyHint:`Admin only - builds the diagnostics archive locally and downloads it instead of submitting feedback or notifying Slack.`,attachments:`Attachments`,bugTip:`Tip: Get faster support by posting in our <discordLink>Discord community</discordLink>`,cancel:`Cancel`,category:`Category`,closeAria:`Close`,diagnosticsTooltip:`Diagnostics include browser context, assistant logs, and timestamps - never passwords or credentials.`,downloadDiagnostics:`Download diagnostics directly`,downloadDiagnosticsAria:`Download diagnostics directly`,downloadDiagnosticsButton:`Download diagnostics`,dropFiles:`Drop files to attach…`,email:`Email`,featureTip:`Tip: Vote on features on our <roadmapLink>public roadmap</roadmapLink>`,includeConversation:`Include the most recent conversation`,includeConversationAria:`Include the most recent conversation`,includeDiagnostics:`Include diagnostics`,includeDiagnosticsAria:`Include browser diagnostics`,messageLabelBug:`What went wrong?`,messageLabelFeature:`Describe your idea`,messageLabelOther:`What's on your mind?`,messagePlaceholderBug:`What did you expect to happen, and what happened instead?`,messagePlaceholderFeature:`What problem would this solve for you?`,messagePlaceholderOther:`Share your thoughts...`,preparingDiagnostics:`Preparing diagnostics…`,reasonBugReport:`Bug Report`,reasonFeatureRequest:`Feature Request`,reasonOther:`Other`,removeAttachmentAria:`Remove {name}`,sendingFeedback:`Sending feedback…`,submit:`Submit`,timeRange:`Time range`,timeRangeAllTime:`All time`,timeRangeAria:`Diagnostics time range`,timeRangePast24Hours:`Past 24 hours`,timeRangePastHour:`Past hour`,title:`Share Feedback`},shareFeedbackModalFallback:{loadingAria:`Loading the feedback form`},shareFeedbackModalLoadError:{close:`Close`,message:`Couldn't load the feedback form.`,retry:`Try again`},sideListDrawer:{closeAria:`Close`,closeSidebarAria:`Close sidebar`,openSidebarAria:`Open sidebar`},sidebarShell:{backFrom:`Back from {title}`,backToMenu:`Back to {title} menu`,navigationAria:`{title} navigation`},sidebarTree:{ariaLabel:`Sidebar navigation`},skillLineageLink:{label:`Learned from this conversation`},skillRemovalDialog:{message:`Remove "{name}" from this assistant?`,remove:`Remove`,title:`Remove skill`},slackSetupCreateStep:{approvalNotice:`If Slack shows “Request approval” instead of <strong>Install</strong>, a workspace admin needs to approve the app first.`,createdApp:`I created the app`,inSlack:`In Slack:`,stepManifest:`Under <strong>Or start your own way</strong>, pick <strong>From a manifest</strong>, then <strong>Continue</strong>`,stepPaste:`Choose your workspace and paste the manifest`,stepReview:`Review the permissions, then click <strong>Create and Install</strong>`},slackSetupNameStep:{appName:`App Name`,appNamePlaceholder:`My Assistant`,copied:`Copied!`,copyManifest:`Copy manifest`,description:`Description (optional)`,descriptionHelper:`Shown on the app's Slack profile.`,descriptionPlaceholder:`What this assistant helps with`,intro:`Name your Slack app and copy its manifest. Every permission and setting comes pre-configured.`,next:`Next`},slackSetupOpenStep:{body:`Open Slack in a new tab to create the app, then come back here for the steps to follow.`,copied:`Copied!`,copyManifest:`Copy manifest`,manifestCopiedNotice:`You copied this app's manifest here. If you have copied anything since, copy it again before you paste.`,manifestNotCopiedNotice:`You have not copied this app's manifest yet. Slack's create-app modal has no other way to get it, so copy it before you paste.`,next:`Next`,openSlack:`Open Slack`},slackSetupTokensStep:{appTokenLabel:`App Token`,botTokenLabel:`Bot Token`,connectSlack:`Connect Slack`,connecting:`Connecting…`,credentialsSaved:`Credentials saved.`,instructions:`On Slack's confirmation screen, expand <credentials>Your app credentials</credentials> and copy both tokens.`,skipNotice:`That screen also offers a command-line walkthrough and a <download>Download app files</download> button. Skip both. They set up a separate local app, and this assistant needs only the two tokens.`},slackSetupWizard:{channelLabel:`Slack`,copyError:`Could not copy the manifest. Copy it again before continuing.`,stepConnect:`Connect`,stepCreate:`Create`,stepName:`Name`,stepOpen:`Open`},stackedBarTooltip:{total:`Total: {value}`},startupFailure:{reloadApp:`Reload app`},statusBanner:{dismiss:`Dismiss`,goToDoctor:`Go to Doctor`,resumeAssistant:`Resume Assistant`,retryNow:`Retry now`,wakeUp:`Wake up`},sttLanguagePicker:{allLanguages:`All languages`,featured:`Featured`,languagesAriaLabel:`Languages`,noMatch:`No languages match.`,searchAriaLabel:`Search languages`,searchPlaceholder:`Search languages`,suggested:`Suggested`},sttLanguagePickerModal:{description:`Applies from your next spoken turn.`},sttProviderForm:{apiKeyLabel:`API Key`,apiKeyPlaceholderReplace:`•••••••• (Enter a new key to replace)`,providerAriaLabel:`STT provider`,providerLabel:`Provider`,saveFailed:`Failed to save speech-to-text settings`,saveSuccess:`Speech-to-text settings saved`,spokenLanguage:`Spoken language`,spokenLanguageApplies:`Applies from your next spoken turn.`,vellumTranscription:`Transcription runs through your Vellum account.`,windowsNativeDisplayName:`Windows Native Dictation`,windowsNativeSetupWarning:`Requires Basic speech recognition for your Windows display language: open Settings > Time & language > Language & region, select the three dots next to the display language, choose Language options, then under Language features download Basic speech recognition.`,windowsNativeSubtitle:`Windows on-device speech recognition, running locally through the Windows helper. Works offline and needs no API key.`},subagentAvatarChip:{ariaLabel:`Subagent {subagentId}`},systemPermissionsCard:{accessibilityDescription:`Allows your assistant to click, type, and control apps on your behalf.`,accessibilityLabel:`Accessibility`,checking:`Checking permissions...`,dockIcon:`Dock icon`,microphoneDescription:`Allows your assistant to capture audio for voice input and recordings.`,microphoneLabel:`Microphone`,notificationBadgesDescription:`Allows your assistant to show unseen conversation counts on the {surface}.`,notificationBadgesLabel:`Notification Badges`,notificationsDescription:`Allows your assistant to send macOS alerts for approvals, messages, and task updates.`,notificationsLabel:`Notifications`,notificationsWindowsDescription:`Allows your assistant to show Windows notifications for approvals, messages, and task updates.`,screenDescription:`Allows your assistant to capture screen context during computer-use tasks.`,screenLabel:`Screen Recording`,speechRecognitionDescription:`Allows your assistant to transcribe your speech into text on-device.`,speechRecognitionLabel:`Speech Recognition`,speechRecognitionWindowsDescription:`Allows your assistant to transcribe your speech into text with Windows speech recognition.`,taskbarIcon:`taskbar icon`,title:`System Permissions`},telegramSetupConnectStep:{botTokenLabel:`Bot Token`,connectTelegram:`Connect Telegram`,instructions:`Paste the token from BotFather's reply. It is the whole line after <tokenLine>Use this token to access the HTTP API</tokenLine>.`,saving:`Saving…`,successNotice:`Token saved. The rest finishes on its own. Your assistant will confirm Telegram is delivering the next time you chat, and make sure it can reach you.`},telegramSetupCreateStep:{copied:`Copied!`,copyName:`Copy name`,displayNameHint:`For the display name, <strong>{suggestedName}</strong> keeps this bot matching your assistant. The username is separate and does not have to match.`,inBotFather:`In BotFather:`,intro:`Telegram bots are created by messaging <strong>@BotFather</strong>. Open it, run through the prompts, then come back with the token it gives you.`,next:`Next`,openBotFather:`Open BotFather`,stepDisplayName:`Give it a display name, which is what people see in chat`,stepSendNewBot:`Send <strong>/newbot</strong>`,stepTokenReply:`BotFather replies with a token after <strong>Use this token to access the HTTP API</strong>`,stepUsername:`Give it a username, which must be unique and end in <strong>bot</strong>`},telegramSetupWizard:{channelLabel:`Telegram`,copyError:`Could not copy the name. Type it into BotFather instead.`,stepConnect:`Connect`,stepCreate:`Create bot`},terminalPanel:{recoveryModeBanner:`Recovery Mode active: this session is connected to the debug terminal.`},themeStagePage:{accentFill:`Accent fill`,activeBorder:`Active border`,activeSurface:`Active surface`,assistantBubble:`A reply from the assistant, rendered full-width on the page surface.`,buttonDisabled:`Disabled`,buttonPrimary:`Primary`,buttonSecondary:`Secondary`,chatAssistant1:`Done. The summary is ready. Revenue grew steadily, the two flagged risks from last quarter are resolved, and I pulled the three charts worth showing into a separate page.`,chatAssistant2:`Scheduled for 9am. I'll include the charts and a one-paragraph version for anyone skimming on their phone.`,chatUser1:`Can you summarize the quarterly report before tomorrow's meeting?`,chatUser2:`Perfect. Send it to the team in the morning.`,composerPlaceholder:`Message your assistant`,faintText:`Faint text - the last legible step of the ramp.`,inputFilled:`Text someone has already typed into a field.`,inputPlaceholder:`A placeholder in an empty field`,newConversation:`New conversation`,overlaySurface:`Overlay surface`,primaryText:`Primary text - the main reading surface of the app.`,quietText:`Quiet text - metadata and timestamps.`,raisedCard:`Raised card`,raisedCardBody:`Elevated surfaces sit above panels and the page background.`,samplerTitle:`Theme sampler`,secondaryText:`Secondary text - supporting copy and descriptions.`,sectionAccent:`Accent`,sectionButtons:`Buttons`,sectionInputs:`Inputs`,sectionMessages:`Messages`,sectionSurfaces:`Surfaces and borders`,sectionText:`Text`,send:`Send`,subtleDivider:`Subtle divider above this line.`,tertiaryText:`Tertiary text - captions, labels, and placeholders.`,userBubble:`A message from the user, in its bubble.`},themeToggle:{dark:`Dark`,label:`Theme`,light:`Light`,system:`System`,velvet:`Velvet`},tipCard:{dismiss:`Dismiss`,nextTip:`Next tip`,previousTip:`Previous tip`},ttsProviderForm:{apiKey:`API Key`,apiKeyRequired:`Save an API key for this provider before testing.`,chooseFromCatalog:`Choose from catalog`,customVoiceIdAriaLabel:`Custom voice ID`,noManagedVoices:`No managed voices are currently available.`,provider:`Provider`,providerAriaLabel:`TTS provider`,saveFailed:`Failed to save text-to-speech settings`,saved:`Text-to-speech settings saved`,test:`Test`,testing:`Testing…`,voice:`Voice`,voiceId:`Voice ID`,voiceIdPlaceholder:`Enter a voice ID`},updateToast:{available:`Update available. Starting download…`,closeAriaLabel:`Close`,downloading:`Downloading update…`,ready:`Vellum {version} is ready.`,restartToInstall:`Restart to install`,versionFallback:`update`},useConnectClaude:{exchangeFailed:`Check the pasted key and try again.`,failed:`Connecting Claude failed. Please try again.`,notStarted:`Start the Connect Claude flow first.`,pasteEmpty:`Paste the code shown on the Claude page.`,popupBlocked:`Your browser blocked the sign-in tab. Allow pop-ups for this site, then click Connect again.`,startFailed:`Couldn't start Connect Claude. Please try again.`,timedOut:`Timed out waiting for Claude to connect. Please try again.`},useVoiceSamplePreview:{playFailed:`Could not play the voice sample.`},vercelTokenDialog:{body:`Enter your Vercel API token to deploy apps as static pages.`,cancel:`Cancel`,createToken:`Create a token on Vercel →`,save:`Save`,saveFailed:`Failed to save Vercel token.`,saving:`Saving…`,title:`Connect Vercel`,tokenLabel:`API Token`,tokenPlaceholder:`Vercel API token`},voiceList:{assistantVoiceAriaLabel:`Assistant voice`,defaultSuffix:`(default)`,previewVoice:`Preview {description}`,providerAriaLabel:`Voice provider`,stopPreview:`Stop preview`},voicePickerField:{ariaLabel:`Voice`,selectVoice:`Select a voice`},voicePickerModal:{done:`Done`,title:`Voices`},voiceProvidersNote:{body:`Speech providers, transcription, and API keys live in <modelsLink>Models & Services</modelsLink>.`},voiceTranscriptToggles:{recommendedOff:`Recommended off`},windowsMenuBar:{developer:`Developer`,file:`File`,help:`Help`,view:`View`}},Gs={schedulesPanel:{pastToggle:`Past ({count, number})`,loadFailed:`Failed to load schedules.`,retry:`Retry`,emptyTitle:`No schedules yet`,emptyDescription:`Ask your assistant to set one up, or create one yourself.`,newConversation:`New Conversation`,emptyActionsSeparator:`or`,createSchedule:`Create schedule`,useProfileForAll:`Use {profile} for all schedules`,oneTimeHeading:`One-time`},scheduleSummaryCard:{costLoading:`Loading cost`,costCaption:`spent in the last {days, plural, one {# day} other {# days}}`,minimize:`Minimize {title}`,expand:`Expand`},scheduleDetail:{close:`Close`,closeAria:`Close schedule details`,details:`Details`,status:`Status`,toggleAria:`Toggle {name}`,nextRun:`Next run`,lastRun:`Last run`,cadence:`Cadence`,mode:`Mode`,modelProfile:`Model profile`,modelProfileWorkflowNote:`Each step of a workflow picks its own model, so this schedule has no model setting to change.`,chooseModel:`Choose a model`,modelChangeFailed:`Failed to change the model.`,costLabel:`{days, number} Day Cost`,runsLabel:`{days, number} Day Runs`,conversations:`Conversations`,conversation:`Conversation`,conversationArchived:`(archived)`,conversationUnavailable:`(unavailable)`,output:`Output`,error:`Error`,openRunConversationAria:`Open conversation for run at {time}`,toggleRunDetailsAria:`Toggle details for run at {time}`,noRunsYet:`No runs yet.`,recentRuns:`Recent runs`,managedByPlugin:`Managed by plugin {plugin}`,managedByPluginPaused:`Managed by plugin {plugin} · off, {reason}`,delete:`Delete`,deleteConfirmMessage:`Delete "{name}"? This can't be undone.`,cancel:`Cancel`,confirmDelete:`Yes, delete`,viewUsage:`View usage`,turnOnToRun:`Turn this schedule on to run it`,running:`Running…`,runNow:`Run now`,runFailed:`Failed to run schedule.`,deleteFailed:`Failed to delete schedule.`,toggleFailed:`Failed to toggle schedule.`,notUsedForWorkflow:`Not used for workflow runs`,enabled:`Enabled`,disabled:`Disabled`},systemTaskDetail:{openMemorySettings:`Open Memory settings`,turnOnMemory:`Turn on Memory`,memorySettings:`Memory settings`,fallbackModelProfile:`Default (system task model)`,repeats:`Repeats`,nameHeartbeat:`Heartbeat`,nameConsolidation:`Consolidation`,nameRetrospective:`Memory retrospective`,statusManagedOn:`On · Managed by Memory`,statusPaused:`Paused`,pausedRetrospectiveSwitchedOff:`Retrospectives are turned off. Turn them back on under Memory in settings.`,pausedRetrospective:`Memory is off, so retrospectives are paused. Turn Memory back on to resume them.`,pausedConsolidation:`Memory is off, so consolidation is paused. Turn Memory back on to resume consolidation.`},scheduleRow:{toggleAria:`Toggle {name}`},scheduleDisarmReason:{userDisabled:`turned off by you`,pluginRemoved:`plugin removed`,pluginDisabled:`plugin disabled`,declarationRemoved:`removed from plugin`,declarationDisabled:`paused by plugin`}},Ks={accessConsentSetting:{description:`When enabled, Vellum Staff will be able to access your assistant and its data for debugging purposes. It's suggested that you leave this off and only turn it on temporarily if you need Vellum Support's help in investigating an issue.`,loadError:`Failed to load consent setting.`,loginNotice:`Log in to the Vellum platform to manage admin data access.`,title:`Allow Staff Access`,toastDisabled:`Admin data access disabled.`,toastEnabled:`Admin data access enabled.`,toastUpdateFailed:`Failed to update log access consent.`},adjustPlanModal:{alreadyOnPro:`You're already on Pro.`,back:`Back`,cancel:`Cancel`,confirmDowngrade:`Confirm Downgrade`,creditBundleUpdated:`Credit bundle updated.`,downgradeIntro:`Downgrading removes the following Pro features:`,downgradeTitle:`Downgrade to Base?`,footerNote:`You can change or cancel your plan at any time from billing settings.`,heroSubtitle:`Choose the plan that works best for you and your assistant.`,heroTitle:`Your Assistant, Your Way`,loadPlansError:`Failed to load plans. Please try again later.`,loadingPlans:`Loading plans...`,machineDowngradeFeature:`Reduced CPU and memory for your assistant - it will resize to the smaller compute profile.`,pickTiersError:`Pick a machine and storage tier to continue.`,planUpdated:`Plan updated.`,updateFailed:`Failed to update plan. Please try again.`,upgradeFailed:`Failed to start upgrade. Please try again.`,upgradePlanTitle:`Upgrade Plan`},advisorProfileRow:{chooseProfilePlaceholder:`Choose profile…`,description:`The profile your assistant consults for a second opinion when it wants to check a plan or review its own work.`,title:`Advisor`},aiProviderPicker:{defaultEntryMeta:`Default`},allConversationsView:{archive:`Archive`,archiveFailed:`Failed to archive conversation.`,archiving:`Archiving`,emptyActive:`No active conversations`,emptyAll:`No conversations yet`,emptyArchived:`No archived conversations`,filterActive:`Active`,filterAll:`All`,filterArchived:`Archived`,filterAria:`Filter conversations`,loadError:`Failed to load conversations`,loading:`Loading conversations`,noMatch:`No conversations matched “{query}”`,retry:`Retry`,searchPlaceholder:`Search conversations`,unarchive:`Unarchive`,unarchiveFailed:`Failed to unarchive conversation.`,unarchiving:`Unarchiving`,untitled:`Untitled conversation`},androidNotificationSettingsCard:{checkingDescription:`Checking notification access for this device.`,checkingLabel:`Checking`,deniedDescription:`Notifications are turned off in Android settings.`,deniedLabel:`Off`,grantedDescription:`Notifications are allowed on this device.`,grantedLabel:`On`,openSettings:`Open settings`,promptDescription:`Turn on notifications in Android settings to receive alerts.`,promptLabel:`Not enabled`,title:`Push notifications`,unsupportedDescription:`Notification settings are unavailable in this app version.`,unsupportedLabel:`Unavailable`},assistantBackups:{columnCreated:`Created`,columnReady:`Ready`,columnSnapshotName:`Snapshot Name`,columnType:`Type`,copyFailed:`Couldn't copy the snapshot name.`,copySnapshotName:`Copy snapshot name`,createBackup:`Create Backup`,createFailedToast:`Failed to create backup.`,createSuccessToast:`Backup started. It will appear in the list shortly.`,creating:`Creating…`,empty:`No backups found for this assistant.`,loadFailed:`Failed to load backups.`,loading:`Loading backups...`,notReady:`Backup is not ready to use`,oldestRemovedNotice:`Creating a new backup will remove the oldest one.`,pending:`Pending`,ready:`Ready`,restore:`Restore`,restoreFailedToast:`Failed to restore backup.`,restoreMessage:`Restore from backup "{name}"?
|
|
14
|
-
|
|
15
|
-
The assistant will be temporarily unavailable during the restore.`,restoreSuccessToast:`Backup restored successfully.`,restoreTitle:`Restore Backup`,typeDoctor:`Doctor`,typePointInTime:`Point-in-time`,typePreview:`Preview`,typeScheduled:`Scheduled`},assistantLifecyclePanel:{allAssistantsSubtitle:`{count, plural, one {# assistant found.} other {# assistants found.}}`,allAssistantsTitle:`All Assistants`,assistantId:`Assistant ID`,created:`Created`,current:`Current`,hatch:`Hatch`,hatchConfirmMessage:`Are you sure you want to create a new assistant? This will provision new infrastructure.`,hatchConfirmTitle:`Hatch New Assistant`,hatchDescription:`Provision a new assistant. This may take a moment.`,hatchExistingToast:`You already have an assistant. Nothing new was created.`,hatchFailedToast:`Failed to hatch assistant.`,hatchSubtitle:`Create a new assistant instance.`,hatchSuccessToast:`New assistant hatched successfully.`,hatchTitle:`Hatch New Assistant`,infoEmpty:`No assistant found. Hatch an assistant to get started.`,infoLoading:`Loading assistant info...`,infoSubtitle:`Current assistant details.`,infoTitle:`Assistant Info`,lastModified:`Last Modified`,machineId:`Machine ID`,name:`Name`,status:`Status`,unnamed:`Unnamed`,version:`Version`},assistantPicker:{active:`Active`,subtitle:`Choose which assistant is active for this account.`,switch:`Switch`,switchedToast:`Switched active assistant.`,title:`Switch Assistant`,unnamed:`Unnamed`},assistantSleepPolicy:{cancel:`Cancel`,current:`Current: {duration}`,days:`{days, plural, one {# day} other {# days}}`,daysHours:`{days}d {hours}h`,hours:`{hours, plural, one {# hour} other {# hours}}`,idleTimeout:`Idle timeout`,idleTimeoutDescription:`How long the assistant can be idle before it is put to sleep. "Never" disables idle sleep entirely.`,loadError:`Failed to load sleep policy. Refresh the page to try again.`,loading:`Loading sleep settings...`,minutes:`{minutes, plural, one {# minute} other {# minutes}}`,neverSleep:`Never (sleep disabled)`,preset10Min:`10 min`,preset14Days:`14 days`,preset1Day:`1 day`,preset1Hour:`1 hour`,preset30Days:`30 days`,preset3Days:`3 days`,preset3Hours:`3 hours`,preset5Min:`5 min`,preset7Days:`7 days`,presetNever:`Never`,save:`Save`,saveErrorToast:`Failed to save sleep policy. Please try again.`,savedToast:`Sleep policy saved.`,seconds:`{seconds}s`},assistantStatusPanel:{account:`Account`,assistantId:`Assistant ID`,cpuUsage:`CPU Usage`,created:`Created`,description:`Description`,diskUnavailable:`Disk status unavailable`,diskUsage:`Disk Usage`,empty:`No assistant found. Hatch an assistant to get started.`,loadHealthzFailed:`Failed to load assistant info`,loading:`Loading assistant info...`,loadingCpu:`Loading CPU status...`,loadingDisk:`Loading disk status...`,loadingMemory:`Loading memory status...`,machineId:`Machine ID`,memoryUsage:`Memory Usage`,name:`Name`,status:`Status`,unknown:`Unknown`,usedOf:`{used} used of {total}`,version:`Version`},assistantTerminalPanel:{loadErrorToast:`Failed to load assistant info`,loading:`Loading terminal...`,loginNotice:`Log in to the Vellum platform to open a terminal session.`,noAssistant:`No assistant found. Hatch an assistant to use the terminal.`,subtitle:`Interactive shell session on your assistant machine`,targetContainer:`Target container`,title:`Terminal`},assistantUpgrades:{alreadyOnVersion:`You are already on this version.`,confirmPreviewMessage:`Update to preview version {version}? The assistant will be briefly unavailable during the update.`,confirmPreviewTitle:`Update preview release`,confirmRollbackMessage:`Rollback to version {version}? The assistant will be briefly unavailable.`,confirmRollbackTitle:`Rollback assistant`,confirmUpdateMessage:`Update to version {version}? The assistant will be briefly unavailable during the update.`,confirmUpdateTitle:`Update assistant`,current:`Current`,currentSuffix:`(current)`,latest:`latest`,latestSuffix:`(latest)`,loading:`Loading...`,noReleases:`No releases available`,previewRelease:`Preview release`,rollback:`Rollback`,rollbackTo:`Rollback to`,rollingBack:`Rolling back...`,selected:`Selected`,successRolledBack:`Successfully rolled back to version {version}.`,successUpdated:`Successfully updated to version {version}.`,toastRollbackComplete:`Rollback complete. Your assistant is healthy.`,toastRollbackFailed:`Failed to trigger rollback. Please try again.`,toastRollbackInitiated:`Rollback to {version} initiated.`,toastUpdateComplete:`Update complete. Your assistant is healthy.`,toastUpdateFailed:`Failed to trigger update. Please try again.`,toastUpdateInitiated:`Update to {version} initiated.`,unknown:`unknown`,update:`Update`,updatePreview:`Update preview`,updateTo:`Update to`,updateToVersion:`Update to {version}`,updating:`Updating...`,usingPreviewReleases:`Using Preview releases. <stableLink>Switch back to Stable</stableLink>`},autoTopUpCard:{addCreditCard:`Add a Credit Card`,addPaymentMethod:`Add payment method`,adjust:`Adjust`,capProgress:` / {cap} this month`,connectCardBanner:`Auto-reload requires you to connect a credit card.`,declinedCutoffNotice:`We paused automatic reloads after several declined payments. Add a new payment method to turn auto-reload back on.`,disableError:`Failed to disable auto-reload. Please try again.`,dismiss:`Dismiss`,loadError:`Failed to load auto-reload configuration.`,loading:`Loading…`,summary:`Add {amount} when balance falls under {threshold}`,toggleLabel:`Enable auto-reload`,updateError:`Failed to save auto-reload settings. Please try again.`},autoTopUpDisableConfirm:{disable:`Disable`,disabling:`Disabling…`,keepEnabled:`Keep enabled`,message:`Auto-reload will stop. Any saved payment method stays on file.`,title:`Disable auto-reload?`},autoTopUpForm:{amountLabel:`Auto-reload amount`,cancel:`Cancel`,capLabel:`Monthly spending cap`,save:`Save`,thresholdLabel:`Auto-reload when balance below`},autoTopUpPaymentMethodModal:{addressFormLoadError:`Failed to load the billing address form. Please close and reopen this dialog.`,cancel:`Cancel`,confirmFailed:`Failed to save payment method.`,paymentFormLoadError:`Failed to load the payment form. Please close and reopen this dialog.`,save:`Save`,savedToast:`Payment method saved.`,setupError:`Failed to start card setup. Please try again.`,title:`Save Payment Method`,tryAgain:`Try again`,unavailable:`Payment method setup is currently unavailable. Please try again later.`},billingOnboardingModal:{backgroundConfirmContinue:`Continue`,backgroundConfirmKeepWaiting:`Keep waiting`,backgroundConfirmTitle:`Continue in the background?`},billingPage:{billingTab:`Billing`,billingUnavailable:`Billing isn't available for the current assistant state.`,finishSetupBody:`Your assistant's email address hasn't been set up yet.`,finishSetupButton:`Finish setup`,finishSetupTitle:`Finish setting up your {plan} plan`,loadingBilling:`Loading billing…`,platformLoginNotice:`Log in to the Vellum platform to manage billing and usage.`,usageTab:`Usage`},billingPanel:{addCreditsButton:`Add Credits`,balanceLabel:`Credits`,degradedNotice:`Pending charges could not be calculated. The balance shown may be incomplete.`,earnCreditsButton:`Earn Free Credits`,loadError:`Failed to load billing summary. Please try again later.`,loading:`Loading billing summary...`,lowBalanceToggle:`Custom Low Balance Alert`,noInfo:`No billing information available.`,subtitle:`Quick overview of your balances and other things`,title:`Credits`},billingPortalReturnHandler:{endOfBillingPeriod:`the end of your billing period`,proCanceled:`Pro plan canceled. You'll have access until {date}.`,proReactivated:`Pro plan reactivated.`,subscriptionUpdated:`Subscription updated.`},billingStatusHandler:{successToast:`Payment received! Your credit balance will update shortly.`,topUpCancelToast:`Checkout was cancelled. No credits were added.`,upgradeCancelToast:`Upgrade canceled. No changes to your plan.`},billingUsageChart:{empty:`No usage data for this period`},billingUsagePanel:{backToAllUsage:`Back to all usage`,chartMetricAria:`Chart metric`,eventsLabel:`Events`,llmDimensionAria:`LLM spend dimension`,llmSpend:`LLM Spend`,loadError:`Failed to load usage data.`,metricEvents:`Events`,metricSpend:`Spend ($)`,oauthSpend:`OAuth Spend`,spendLabel:`Spend`,subtitle:`Overview of your spending habits.`,title:`Credit Usage`},biometricSettingsCard:{description:`When your session expires, verify with {label} instead of signing in again.`,descriptionWithPasscode:`When your session expires, verify with {label} or your device passcode instead of signing in again.`,title:`Security`,useForSignIn:`Use {label} for sign-in`},bookmarksPage:{emptyDescription:`Hover any message and click the bookmark icon to save it here.`,emptyTitle:`No bookmarks`,errorDescription:`Something went wrong. Please try again.`,errorTitle:`Failed to load bookmarks`,open:`Open`,removeBookmark:`Remove bookmark`,retry:`Retry`,untitledConversation:`Untitled conversation`},bulkOverrideSwapModal:{affectedSummary:`{count, plural, one {# action currently uses {profile}} other {# actions currently use {profile}}}`,applyTo:`{count, plural, one {Apply to # action} other {Apply to # actions}}`,cancel:`Cancel`,changeToLabel:`Change to`,chooseActions:`Choose which actions to update.`,clearAll:`Clear all`,currentlyUsingLabel:`Currently using`,intro:`Update the actions that currently use one profile. The result is saved as individual overrides.`,noticeBody:`It changes the selected actions that use {sourceLabel} today. It does not create an ongoing rule between profiles.`,noticeTitle:`This happens once.`,selectAll:`Select all`,successToast:`Updated {count, plural, one {# action} other {# actions}} to "{targetLabel}".`,targetPlaceholder:`Select a profile…`,title:`Change Action Overrides`,updateFailedToast:`Failed to update overrides. Please try again.`,viaDefault:`Default`,viaOverride:`Override`,willChange:`{count, plural, one {# action will change} other {# actions will change}}`},callSiteOverridesRow:{defaultProfileSuffix:`· Default: {label}`,modelLabel:`Model`,overrideAriaLabel:`Override {displayName}`,pickModelError:`Pick a model`,providerLabel:`Provider`,unavailableOption:`{name} (unavailable)`},chatgptOauthSection:{completeFailed:`Failed to complete sign-in. Please try again.`,completeSignIn:`Complete Sign In`,completingSignIn:`Completing sign-in...`,connected:`ChatGPT subscription connected successfully.`,intro:`Connect your ChatGPT subscription to use OpenAI models without an API key.`,invalidUrl:`Invalid URL. Please paste the full URL from the address bar.`,missingCode:`The URL is missing the authorization code. Make sure you copied the full URL.`,missingState:`The URL is missing the state parameter. Make sure you copied the full URL.`,pasteUrlError:`Please paste the URL from the error page.`,signInButton:`Sign in with ChatGPT`,startFailed:`Failed to start ChatGPT sign-in. Please try again.`,startingSignIn:`Starting sign-in...`,step1Idle:`1. Click "Sign in with ChatGPT" below to open a popup`,step1PasteUrl:`1. Click "Sign in with ChatGPT" to open a popup`,step2:`2. Sign in, then you'll land on an error page - that's expected`,step3:`3. Copy the full URL from that page's address bar and paste it below`,tryAgain:`Try Again`,urlPlaceholder:`Paste callback URL here...`},checkoutBonusModal:{body:`Claim a one-time {amount} credit and we'll add it straight to your account balance. No payment required.`,claim:`Claim {amount} in credits`,decline:`No thanks`,errorToast:`Could not add the credits. Please try again.`,grantedToast:`{amount} in credits added to your account.`,title:`Here's {amount} on us`,unavailableToast:`This offer is no longer available.`},checkoutPage:{awaitingReturnMessage:`Checkout opened in your browser. Finish there to complete your upgrade.`,checkoutFailedMessage:`We couldn't start your checkout. Please try again.`,continueSetup:`Continue setup`,preparingCheckout:`Preparing checkout…`,preparingCheckoutAriaLabel:`Preparing checkout`,reopenCheckout:`Reopen checkout`,tryAgain:`Try again`,viewPlans:`View plans`},communityPage:{communityHubDescription:`Showcases, guides, and projects shared by the community.`,communityHubTitle:`Community Hub`,discordBenefitAnswers:`Get answers faster from the community`,discordBenefitFeedback:`Share feedback and request features`,discordBenefitTeam:`Talk directly with the team`,discordLabel:`Discord`,discordSubtitle:`Talk to the team, share feedback, request features, and get answers faster.`,discordTitle:`Join our community`,followOnXDescription:`Product updates, releases, and behind-the-scenes.`,followOnXTitle:`Follow on X`,heroDescription:`Vellum is built in the open with a growing community of developers, designers, and tinkerers. Here's how to get involved.`,heroTag:`Community`,heroTitle:`Build with us, in the open.`,joinDiscord:`Join Discord`,moreFromVellum:`More from Vellum`,openSourceBenefitContribute:`Contribute fixes and new features`,openSourceBenefitIssues:`Open issues and report bugs`,openSourceBenefitStar:`Star the repo to follow updates`,openSourceLabel:`Open Source`,openSourceSubtitle:`Read the source, star the repo, and contribute fixes and features on GitHub.`,openSourceTitle:`Vellum is open source`,starOnGitHub:`Star on GitHub`,viewSource:`View source`,youtubeChannelDescription:`Walkthroughs, tutorials, and product deep-dives.`,youtubeChannelTitle:`YouTube channel`},completeState:{assistantFallbackName:`your assistant`,returnTo:`Return to {assistantName}`,title:`You're all set!`},createScheduleModal:{advancedCron:`Advanced - write a cron expression`,atMinute:`At minute`,atTime:`At time`,backToSimple:`← Back to the simple builder`,cancel:`Cancel`,create:`Create schedule`,createFailed:`Failed to create schedule.`,creating:`Creating…`,cronAriaLabel:`Cron expression`,cronContinuePrompt:`Enter a cron expression to continue.`,cronHelper:`Standard 5-field cron (minute hour day month weekday). RRULE expressions are also accepted.`,dayOfMonthAriaLabel:`Day of month`,description:`Schedule a recurring instruction for your assistant. Runs in execute mode: the message is delivered to the assistant on each fire.`,descriptionLabel:`Description`,descriptionPlaceholder:`What is this schedule for?`,frequencyAriaLabel:`How often the schedule runs`,frequencyDaily:`Daily`,frequencyHourly:`Hourly`,frequencyMonthly:`Monthly`,frequencyWeekly:`Weekly`,hourAriaLabel:`Hour`,lastDay:`Last day`,messageLabel:`Message`,messagePlaceholder:`What should the assistant do on each fire?`,minuteAriaLabel:`Minute`,nameLabel:`Name`,namePlaceholder:`Morning briefing`,onDay:`On day`,onTheseDays:`On these days`,periodAm:`AM`,periodAriaLabel:`AM or PM`,periodPm:`PM`,repeatLabel:`Repeat`,timezoneNote:`Times use your timezone - {timezone}.`,title:`Create schedule`},credentialRow:{addedMetadata:`added {date}`,clickToRevealTitle:`Click to reveal`,configureAriaLabel:`Configure {name}`,configureButton:`Configure`,copyFailedToast:`Couldn't copy. Reveal and copy manually.`,copyValueAriaLabel:`Copy value for {name}`,copyValueTitle:`Copy value`,deleteLabel:`Delete`,generateLinkLabel:`Generate link`,hideValueAriaLabel:`Hide value for {name}`,hideValueTitle:`Hide value`,revealFailedToast:`Couldn't reveal {name}.`,revealValueAriaLabel:`Reveal value for {name}`},credentialsPage:{addButton:`Add`,addCredentialButton:`Add Credential`,copyLinkButton:`Copy link`,credentialSourceAriaLabel:`Credential source`,deleteConfirmLabel:`Delete`,deleteConfirmMessage:`Delete {name}? Tools and integrations using it will lose access.`,deleteConfirmTitle:`Delete credential`,deleteErrorToast:`Failed to delete credential`,deleteSuccessToast:`Deleted {name}.`,emptySubtitle:`Add an API key or token to let tools and integrations use it.`,emptyTitle:`No credentials yet`,generateLinkFailedToast:`Failed to generate a one-time link`,inUseConfirmLabel:`Delete anyway`,inUseMessage:`{count, plural, one {{name} is the credential that the connection {connections} uses to send requests. Deleting it stops that connection from answering until you add a new credential.} other {{name} is the credential that the connections {connections} use to send requests. Deleting it stops those connections from answering until you add a new credential.}}`,inUseTitle:`Credential is in use`,linkCopiedToast:`Link copied to clipboard.`,linkCopyFailedToast:`Couldn't copy the link. Select it and copy manually.`,linkLabel:`Link`,managedTag:`Managed`,noMatch:`No credentials matched "{query}".`,oneTimeLinkModalDescription:`Send this link to whoever should provide {name}. It works exactly once{expiresClause}. Anyone with the link can set this credential, so share it over a trusted channel.`,oneTimeLinkModalExpiresClause:` and expires {expiresAt}`,oneTimeLinkModalTitle:`One-time credential link`,searchAriaLabel:`Search credentials`,searchPlaceholder:`Search credentials`,segmentManaged:`Managed`,segmentYourOwn:`Your own`,subtitleManaged:`Provided through your Vellum-managed integrations. These are read-only here.`,subtitleOwn:`Stored encrypted in your assistant's credential vault. Reveal a value on demand, or replace or delete it at any time.`,title:`Credentials`},creditBundlePicker:{ariaLabel:`Credit bundle`,label:`Credit bundle`,noBundleOption:`No credit bundle - {price}`,optionLabel:`{label} - {price}`,placeholder:`Select a credit bundle`,tooltip:`A monthly allotment of credits added to your Pro Plan subscription`},customPlanModal:{cancel:`Cancel`,comparedToPrevious:`{delta} compared to previous ({previous})`,continue:`Continue`,creditBundleAriaLabel:`Credit bundle`,creditBundlePlaceholder:`Select a credit bundle`,creditsDocsAriaLabel:`Learn more about credit bundles`,creditsLabel:`Bundle some credits:`,learnMore:`Learn more`,machineSizeAriaLabel:`Machine size`,machineSizeDocsAriaLabel:`Learn more about machine sizes`,machineSizeLabel:`Select a machine size:`,machineSizePlaceholder:`Select a machine size`,noExtraUsage:`No extra usage`,recap:`Recap`,storageAriaLabel:`Storage`,storageDocsAriaLabel:`Learn more about storage`,storageLabel:`Select storage:`,storagePlaceholder:`Select storage`,subtitle:`Just better.`,title:`Create a custom plan`,totalBilledMonthly:`Total · Billed monthly`,usageBundleAriaLabel:`Usage bundle`,usageBundleDocsAriaLabel:`Learn more about usage bundles`,usageBundleLabel:`Add a usage bundle:`,usageBundlePlaceholder:`Select a usage bundle`,yourSelection:`Your selection:`},customPlanRow:{configure:`Configure`,currentPlanTag:`Your Current Plan`,genericDescriptor:`Select custom CPU power, Ram and Storage. Or just throw in some tokens.`,prompt:`Need something more tailored to your needs?`,title:`Custom Plan`},dailyCreditLimitCard:{errorDecimals:`Use at most two decimal places`,errorEmpty:`Enter a daily limit`,errorMin:`Must be at least $1`,helperText:`Resets daily at {time}.`,inputLabel:`Stop spending Vellum credits after`,loadError:`Failed to load daily credit limit settings.`,loading:`Loading…`,progress:`{spent} of {limit} spent today`,reachedNotice:`Today's Vellum credit spend has reached this limit. Generation resumes at {time} or when you raise the limit.`,requiredNote:`A daily credit limit is required while auto-reload is enabled.`,resumeError:`Failed to resume the daily credit limit. Please try again.`,resumeNow:`Resume now`,save:`Save`,saveError:`Failed to save daily credit limit. Please try again.`,skippedNotice:`Skipped for today. This limit resumes at {time}.`,toggleLabel:`Daily Credit Limit`},debugControlsPanel:{backups:`Backups`,loadFailedToast:`Failed to load assistant info`,loading:`Loading assistant info...`,loginNotice:`Log in to the Vellum platform to manage backups.`,noAssistant:`No assistant found. Hatch an assistant to access debug controls.`,onboardingClearedToast:`Onboarding flags cleared.`,replay:`Replay`,replayDescription:`Clear local onboarding flags and re-walk the privacy → hatch screens. Your existing assistant is preserved.`,replayTitle:`Replay onboarding (Vellum-only)`,restartDescription:`Restart the assistant machine. It will be briefly unavailable during the restart.`,restartTitle:`Restart Assistant`,subtitle:`Manage backups, restart your assistant, or enter Recovery Mode to connect to the debug terminal.`,title:`General`},deleteAccountSection:{confirmLabel:`Delete Account`,confirmMessage:`This will permanently delete your account and all associated data. This action cannot be undone.`,confirmTitle:`Delete Account`,deleteMyAccount:`Delete My Account`,description:`Permanently delete your account and all associated data.`,platformLoginNotice:`Log in to the Vellum platform to delete your account.`,title:`Delete Account`,toastFailed:`Failed to request account deletion. Please try again.`,toastRequested:`Account deletion requested. You will be logged out shortly.`},devModeVersionUnlock:{disabled:`Developer mode disabled`,enabled:`Developer mode enabled`,loading:`Loading version...`},developerPage:{sectionsAriaLabel:`Developer sections`,tabFeatureFlags:`Feature Flags`,tabLifecycle:`Assistant Lifecycle`,tabMemory:`Memory`,tabSentry:`Sentry Testing`},doctorChatBlocks:{allowOnce:`Allow once`,alwaysAllow:`Always Allow`,backUp:`Back up`,backupPromptBody:`The doctor is about to run <toolCode>{toolName}</toolCode>. Would you like to back up your workspace first?`,backupPromptTitle:`Create a backup before modifying?`,completedStep:`Completed 1 step`,confirmationRequired:`Confirmation required`,copyAria:`Copy to clipboard`,copyAriaCopied:`Copied`,copyError:`Couldn't copy the message.`,copyTitle:`Copy`,copyTitleCopied:`Copied!`,deny:`Deny`,failedStep:`Failed 1 step`,feedbackBody:`You can send it with logs while the Doctor keeps looking for a fix or workaround here.`,feedbackTitle:`This sounds like feedback for the Vellum team.`,gladSolved:`Glad it's solved!`,hideDetails:`Hide details`,notSolved:`Not solved`,notSolvedAria:`No, my problem is not solved`,output:`Output`,runningStep:`Running 1 step`,shareFeedback:`Share Feedback`,showDetails:`Show details`,skip:`Skip`,solvedAria:`Yes, my problem is solved`,technicalDetails:`Technical Details`,toolLabel:`Tool:`},doctorPanel:{connecting:`Connecting...`,copiedToast:`Session copied to clipboard.`,copyFailed:`Couldn't copy the session.`,copySession:`Copy Session`,endSession:`End Session`,goToNewest:`Go to Newest`,goToNewestAria:`Go to newest message`,idleDescription:`Start a diagnostic session to have the Doctor analyze your assistant, identify issues, and suggest or apply fixes. The Doctor is free to use. Doctor logs may be temporarily stored.`,idleTitle:`Assistant Doctor`,loading:`Loading...`,newSession:`New Session`,noAssistant:`No assistant found. Hatch an assistant to use the Doctor.`,placeholderApproval:`Type "approve" or "deny", or send a message...`,placeholderMessage:`Type a message...`,sendMessageAria:`Send message`,sessionMenu:`Session options`,shareFeedback:`Share Feedback`,startSession:`Start Doctor Session`,thinking:`Thinking…`,title:`Doctor`},domainField:{subdomainAriaLabel:`Subdomain`},domainStep:{continue:`Continue`,domainLockedMessage:`This domain has been set and cannot be changed.`,domainSetRedirecting:`Domain set - redirecting…`,handleImmutableNotice:`You won't be able to change the handle once set.`,handleLabel:`Handle (public)`,machineBusyNotice:`Your assistant is restarting - you can set the domain in a moment.`,next:`Next`,prefixLabel:`Prefix`,registerSubdomainFailed:`Couldn't register that subdomain. Try a different one.`,skip:`Skip`,subtitle:`Set up an email for your assistant.`,title:`Assistant Email`},downgradeReconfirmModal:{body:`Downgrading removes the following Pro features:`,confirm:`Confirm Downgrade`,keepPro:`Keep Pro`,title:`Downgrade to Base?`},emailManagedContent:{addressLabel:`Address`,checkingSubscription:`Checking subscription…`,confirm:`Confirm`,create:`Create`,createEmailFailedFallback:`Failed to create email address.`,creating:`Creating…`,domainLabel:`Domain`,domainRegisteredToast:`Domain {domain} registered.`,domainReleaseFailedToast:`Failed to release domain.`,domainReleasedToast:`Domain released.`,emailAddressLabel:`Email address`,emailCreatedToast:`Email address created.`,emailRemoveFailedToast:`Failed to remove email address.`,emailRemovedToast:`Email address removed.`,emailUsernameAriaLabel:`Email username`,emailUsernamePlaceholder:`hi`,enterSubdomainError:`Enter a subdomain.`,enterUsernameError:`Enter an email username.`,register:`Register`,registerDomainFailedFallback:`Failed to register domain.`,registering:`Registering…`,releaseConfirm:`Release`,releaseDomainAriaLabel:`Release domain`,releaseDomainConfirmMessage:`Are you sure you want to release <code>{domain}</code>? The subdomain will become available for others to claim.`,releaseDomainTitle:`Release Domain`,removeAddressFirstToast:`Remove the email address first.`,removeConfirm:`Remove`,removeEmailAriaLabel:`Remove email address`,removeEmailConfirmMessage:`Are you sure you want to remove <code>{address}</code>? Your assistant will no longer be able to send or receive email at this address.`,removeEmailTitle:`Remove Email Address`,retry:`Retry`,setSubdomainConfirmMessage:`<code>{subdomain}</code> will also become your assistant's public handle. You won't be able to change it once set.`,setSubdomainTitle:`Set Subdomain`,subdomainExamplePlaceholder:`my-assistant`,subdomainFallback:`subdomain`,subdomainHint:`Each assistant gets its own subdomain. Lowercase letters, numbers, and hyphens only.`,subdomainLabel:`Subdomain`,subscriptionWarningBody:`We couldn't reach the billing service. The form below assumes managed email is enabled for your org. If it isn't, registering a domain will fail.`,subscriptionWarningTitle:`Couldn't verify subscription status`,upgradeButton:`Upgrade`,upgradeNoticeBody:`Upgrade to a plan that includes an email address for your assistant. No provider setup required.`,upgradeNoticeTitle:`Give your assistant its own email address`,usageSummary:`{sent} / {limit} sent today · {received} received`},emailServiceCard:{apiKeyConfigured:`{providerName} API key configured. To reconfigure, run the <code>{setupSkill}</code> skill.`,connecting:`Connecting to the Vellum platform…`,openProvider:`Open {providerName}`,platformLoginNotice:`Log in to the Vellum platform to manage email settings.`,providerLabel:`Provider`,saveSuccessToast:`Email settings saved.`,setupInstructions:`Configure {providerName} via the assistant CLI: ask the assistant to run the <code>{setupSkill}</code> skill. It walks you through storing the API key, detecting the domain, and (optionally) wiring up an inbound webhook.`,subtitle:`Configure how your assistant sends and receives email`,title:`Email`},enrollTotpModal:{cancel:`Cancel`,codeLabel:`6-digit code`,codePlaceholder:`123456`,copyError:`Couldn't copy the setup key.`,copySuccess:`Setup key copied.`,description:`Scan the QR code with an authenticator app such as Google Authenticator or 1Password, then enter the 6-digit code it shows.`,errorCodeMismatch:`That code didn't match. Check your authenticator app and try again.`,errorSessionExpired:`This setup session expired. Scan the new QR code and try again.`,errorThrottledInline:`Too many attempts. Wait a minute and try again.`,errorVerifyFailed:`Couldn't verify the code. Wait a moment and try again.`,manualKeyHint:`Can't scan it? Enter this setup key manually:`,qrCodeAlt:`QR code for your authenticator app`,title:`Set up authenticator app`,toastEnabled:`Two-factor authentication is on.`,toastFactorLimitReached:`An authenticator app is already set up. Remove it before adding another.`,toastNoWorkosAccount:`Two-factor authentication is only available for Vellum platform accounts.`,toastStartFailed:`Failed to start setup. Please try again.`,toastThrottled:`Too many attempts. Try again in a minute.`,verify:`Verify`,verifying:`Verifying…`},environmentConfigPanel:{emailRootDomain:`Email Root Domain`,emailRootDomainDescription:`Root domain used for assistant email addresses (e.g. vellum.me).`,nonProduction:`Non-Production`,nonProductionDescription:`Indicates a non-production environment. Enables dev-only UI surfaces and diagnostics.`,nonProductionOffAriaLabel:`Non-Production is off`,nonProductionOnAriaLabel:`Non-Production is on`,subtitle:`Environment configuration overrides for this session.`,title:`Environment`},errorStates:{fetchErrorTitle:`Couldn't reach billing`,goToBilling:`Go to billing`},featureFlagsPanel:{defaultLabel:`Default:`,empty:`(empty)`,enterValue:`Enter value...`,expectedOneOf:`Expected one of: {values}`,flagOffAriaLabel:`{label} is off`,flagOnAriaLabel:`{label} is on`,noMatching:`No matching flags.`,off:`Off`,on:`On`,scopeAssistant:`assistant`,scopeClient:`client`,searchPlaceholder:`Search flags...`,subtitle:`Active feature flags evaluated for the current session.`,title:`Feature Flags`,valueAriaLabel:`{label} value`},freeDowngradeConfirmModal:{bodyCancelOnly:`Your subscription will be canceled at the end of your current billing period. You'll keep Pro access until then.`,bodyCancelOnlyPortal:`You'll be taken to Stripe to cancel your subscription.`,bodyWithFeatures:`Downgrading removes the following Pro features. Your subscription will be canceled at the end of your current billing period.`,bodyWithFeaturesPortal:`Downgrading removes the following Pro features. You'll be taken to Stripe to cancel your subscription.`,cancel:`Cancel`,confirm:`Downgrade to Base`,title:`Downgrade to Base?`},generalPage:{chooseAssistant:`Choose Assistant`,computeResourcesLoginNotice:`Log in to the Vellum platform to manage compute resources.`,computeResourcesSubtitle:`Monitor resource usage and manage your assistant's compute profile.`,computeResourcesTitle:`Compute & Resources`,current:`Current`,customize:`Customize`,dangerZoneTitle:`Danger Zone`,preferencesSubtitle:`Customize how Vellum looks and behaves on this device.`,preferencesTitle:`Preferences`,retireAssistantDescription:`Permanently retire this assistant and delete all associated data.`,retireAssistantLoginNotice:`Log in to the Vellum platform to retire this assistant.`,retireAssistantTitle:`Retire Assistant`,sleepPolicyLoginNotice:`Log in to the Vellum platform to manage sleep policy.`,sleepPolicySubtitle:`Control how long this assistant stays awake when idle.`,sleepPolicyTitle:`Sleep Policy`,switchAssistantSubtitle:`Choose which assistant this device is connected to.`,switchAssistantTitle:`Switch Assistant`,twoFactorDescription:`Require a code from an authenticator app when you sign in.`,twoFactorLoginNotice:`Log in to the Vellum platform to manage two-factor authentication.`,twoFactorTitle:`Two-Factor Authentication`,updateWindow:`Update Window`,updatesLoginNotice:`Log in to the Vellum platform to manage software updates.`,versionSubtitle:`Manage your assistant's software version and updates.`,versionTitle:`Version`},gracePeriodBanner:{body:`You'll keep Pro features until then.`,reactivate:`Reactivate`,title:`Your Pro plan will end on {date}.`},imageGenerationCard:{activeModelLabel:`Active Model`,apiKeyLabel:`API Key`,configUpdateFailedToast:`Failed to update assistant configuration. Please try again.`,geminiApiKeyPlaceholder:`Enter your Gemini API key`,localPreferencesFailedToast:`Saved, but local preferences could not be written.`,modelAriaLabel:`Image generation model`,modelUpdateFailedToast:`Failed to update image generation model. Please try again.`,openaiApiKeyPlaceholder:`Enter your OpenAI API key`,providerAriaLabel:`Image generation provider`,providerLabel:`Provider`,savedToast:`Image generation settings saved.`,subtitle:`Configure which model your assistant uses to generate images`,title:`Image Generation`,vellumNote:`Image generation runs through your Vellum account.`},integrationDetailModal:{accountFallback:`{name} Account`,close:`Close`,confirm:`Confirm`,disconnect:`Disconnect`,disconnectFailedToast:`Failed to disconnect {name} account.`,disconnectMessage:`Disconnect {account}? You can reconnect later.`,disconnectTitle:`Disconnect {name}?`,disconnectedToast:`{name} account disconnected.`,loginNotice:`Log in to the Vellum platform to manage OAuth connections.`,managedTab:`Managed`,oauthModeAriaLabel:`OAuth mode`,subtitle:`Configure {name} OAuth`,subtitleWithDescription:`Configure {name} OAuth for {description}`,title:`{name} OAuth`,yourOwnTab:`Your Own`},integrationRow:{configure:`Configure`,disable:`Disable`,disconnect:`Disconnect`,disconnectFailedToast:`Failed to disconnect {name} account.`,disconnectMessage:`Disconnect your {name} account? You can reconnect it later.`,disconnectTitle:`Disconnect {name}?`,disconnectedToast:`{name} account disconnected.`,editConnections:`Edit connections`,enable:`Enable`},integrationsPage:{accountConnectedToast:`{providerLabel} account connected successfully.`,accountConnectedToastGeneric:`Account connected successfully.`,connectFailedToast:`Failed to connect {providerLabel}.`,connectFailedToastGeneric:`Failed to connect. Please try again.`,emptyAllEnabledTitle:`All Integrations Are Enabled`,emptyDefaultSubtitle:`Check your connection and try again.`,emptyDefaultTitle:`No Integrations Available`,emptyEnabledSubtitle:`Connect an integration to get started.`,emptyEnabledTitle:`No Enabled Integrations`,emptyNotEnabledSubtitle:`All available integrations have been connected.`,emptySearchSubtitle:`No integrations matched "{query}"`,emptySearchTitle:`No integrations matched`,filterAll:`All`,filterAriaLabel:`Filter integrations`,filterEnabled:`Enabled`,filterNotEnabled:`Not Enabled`,loadFailed:`Failed to load integrations. Please try again.`,loading:`Loading...`,noAssistant:`No assistant found. Hatch an assistant to connect integrations.`,oauthErrorDenied:`Authorization was denied. Please try again.`,oauthErrorExchangeFailed:`Failed to complete authorization. Please try again.`,oauthErrorIdentityFailed:`Failed to verify account identity. Please try again.`,oauthErrorStateExpired:`Authorization expired. Please try again.`,oauthErrorStateInvalid:`Authorization state was invalid. Please try again.`,searchAriaLabel:`Search integrations`,searchPlaceholder:`Search Integrations`,tabMcp:`MCP`,tabOAuth:`OAuth`,tipBanner:`<tip>Tip:</tip> You can enable integrations by mentioning them in chat.`},invoicesTable:{columnAction:`Action`,columnAmount:`Amount`,columnDate:`Date`,columnStatus:`Status`,downloadAll:`Download all`,downloadAllFailed:`Failed to download invoices.`,downloadPdfAriaLabel:`Download invoice PDF`,empty:`No Invoices Found`,hideButton:`Hide Invoices`,loadError:`Failed to load invoices.`,loadMore:`Load more`,loadMoreError:`Failed to load more invoices.`,loading:`Loading invoices...`,retry:`Retry`,showButton:`Show Invoices`,showLess:`Show less`,showMore:`Show more ({count} more)`,title:`Invoices`,view:`View`},languageModelCard:{defaultProviderUnavailable:`Your default provider is not available.`,manage:`Manage`,overridesTitle:`Overrides`,subtitle:`Profiles choose which model answers. Providers supply access to it`,title:`Language Model`},listeningLanguageCard:{change:`Change`,subtitle:`The language you speak to your assistant. Applies from your next spoken turn.`,title:`Listening language`},lowBalanceAlertCard:{errorDecimals:`Use at most two decimal places`,errorRange:`Must be between $1 and $1,000`,helperText:`Default is {amount} when unset`,label:`Alert me when my balance drops below`,loadError:`Failed to load low-balance alert settings.`,loading:`Loading…`,reset:`Reset to default`,save:`Save`,saveError:`Failed to save low-balance alert. Please try again.`},manageProfilesBlockedDeleteModal:{actionOverridesTitle:`Action overrides`,cancel:`Cancel`,clauseActionOverrides:`is used by {count, plural, one {# action override} other {# action overrides}}`,clauseDefaultProfile:`is your default profile`,clauseRunsBoth:`runs {schedules, plural, one {# schedule} other {# schedules}} and {reminders, plural, one {# reminder} other {# reminders}}`,clauseRunsReminders:`runs {count, plural, one {# reminder} other {# reminders}}`,clauseRunsSchedules:`runs {count, plural, one {# schedule} other {# schedules}}`,disabledTargetTooltip:`Enable this profile to move schedules onto it.`,moreSchedules:`and {count} more`,reassignAndDelete:`Reassign and Delete`,replacementLabel:`Replacement profile`,replacementPlaceholder:`Select a replacement…`,saving:`Saving…`,scheduleLookupFailed:`We could not check which schedules use this profile. Any schedule pinned to it moves to the replacement as well.`,schedulesTitle:`Schedules`,summaryNoReferences:`Choose a replacement profile for "{display}". Anything still pointing at it moves there before it is deleted.`,summaryOneClause:`"{display}" {clause1}. Pick a replacement below and those references move to it, then "{display}" is deleted.`,summaryThreeClauses:`"{display}" {clause1}, {clause2}, and {clause3}. Pick a replacement below and those references move to it, then "{display}" is deleted.`,summaryTwoClauses:`"{display}" {clause1} and {clause2}. Pick a replacement below and those references move to it, then "{display}" is deleted.`,title:`Choose a Replacement Profile`},managedOauthTab:{accountFallback:`{name} Account`,connectAccount:`Connect Account`,connectAccountLower:`Connect account`,connectToContinue:`Connect Account to continue`,disconnectAriaLabel:`Disconnect {account}`,waitingForAuthorization:`Waiting for authorization...`},mcpAddServerModal:{addServer:`Add Server`,adding:`Adding...`,apiKeyHeaderPlaceholder:`X-API-Key`,apiKeyLabel:`API key`,apiKeyPlaceholder:`sk_...`,argsLabel:`Arguments (space-separated)`,argsPlaceholder:`--port 3000`,authApiKey:`API Key`,authBearer:`Bearer Token`,authNone:`None`,authOAuth:`OAuth`,authenticationLabel:`Authentication`,bearerPlaceholder:`tok_...`,bearerTokenLabel:`Bearer token`,cancel:`Cancel`,commandLabel:`Command`,commandPlaceholder:`npx -y @modelcontextprotocol/server-example`,description:`Connect to a Model Context Protocol server to extend available tools.`,headerNameLabel:`Header name`,namePlaceholder:`my-server`,oauthHint:`OAuth credentials will be configured through a browser-based authorization flow after the server is added.`,serverNameLabel:`Server name`,serverUrlLabel:`Server URL`,title:`Add MCP Server`,transportLabel:`Transport`,transportSse:`SSE`,transportStdio:`Stdio (command)`,transportStreamableHttp:`Streamable HTTP`,urlPlaceholder:`https://example.com/mcp`},mcpPage:{addServerButton:`Add Server`,emptyAddSubtitle:`Add an MCP server to extend your assistant with external tools.`,emptyChatSubtitle:`Chat with your assistant to set up an MCP server.`,emptyTitle:`No MCP Servers`,loadError:`Failed to load MCP servers. Check that an assistant is running.`,loading:`Loading MCP servers...`,reloadAriaLabel:`Reload MCP servers`,reloadTooltip:`Reload all servers`,removeDialogConfirm:`Remove`,removeDialogMessage:`Are you sure you want to remove "{serverId}"? This will disconnect all tools provided by this server.`,removeDialogTitle:`Remove MCP Server`,setupPrompt:`Help me set up an MCP server to extend you with external tools.`,subtitle:`Manage Model Context Protocol server connections and their registered tools.`,title:`MCP Servers`,toastAddFailed:`Failed to add {name}`,toastAdded:`Added {name}`,toastAlreadyAuthenticated:`{serverId} is already authenticated`,toastAuthFailed:`Authentication failed for {serverId}`,toastAuthPollingFailed:`Authentication polling failed for {serverId}`,toastAuthStartFailed:`Failed to start authentication for {serverId}`,toastAuthTimedOut:`Authentication timed out for {serverId}`,toastAuthenticatedSuccess:`{serverId} authenticated successfully`,toastDisableFailed:`Failed to disable {serverId}`,toastEnableFailed:`Failed to enable {serverId}`,toastOAuthRevokeFailed:`Failed to revoke OAuth for {serverId}`,toastOAuthRevoked:`OAuth credentials revoked for {serverId}`,toastReloadFailed:`Failed to reload MCP servers`,toastReloadSuccess:`MCP servers reloaded`,toastRemoveFailed:`Failed to remove {serverId}`,toastRemoved:`Removed {serverId}`,toastUpdateFailed:`Failed to update {serverId}`,toastUpdated:`Updated {serverId}`,totalTokens:`~{count} total tokens`,totalTools:`{count, plural, one {# total tool} other {# total tools}}`},mcpServerCard:{authenticate:`Authenticate`,authenticating:`Authenticating...`,configure:`Configure`,configureTooltip:`Configure`,estimatedTokens:`~{count} tokens`,oauthBadge:`OAuth`,reAuth:`Re-auth`,reAuthTooltip:`Re-authenticate OAuth`,registeredTools:`{count, plural, one {# registered tool} other {# registered tools}}`,removeServerAriaLabel:`Remove {serverId}`,removeServerTooltip:`Remove server`,revoke:`Revoke`,revokeOAuthTooltip:`Revoke OAuth credentials`,revoking:`Revoking...`,statusConnected:`Connected`,statusDisabled:`Disabled`,statusError:`Error`,statusNeedsAuth:`Needs Auth`,toggleDisableAriaLabel:`Disable {serverId}`,toggleEnableAriaLabel:`Enable {serverId}`,toolCount:`{count, plural, one {# tool} other {# tools}}`,toolTokensAbbrev:`~{count} tok`},mcpServerDetailModal:{apiKey:`API key`,apiKeyPlaceholder:`sk_...`,apiKeyPlaceholderKeep:`•••••••• (leave blank to keep current)`,authApiKey:`API Key`,authBearerToken:`Bearer Token`,authNone:`None`,authentication:`Authentication`,bearerToken:`Bearer token`,bearerTokenPlaceholder:`tok_...`,bearerTokenPlaceholderKeep:`•••••••• (leave blank to keep current)`,cancel:`Cancel`,defaultRiskLevel:`Default risk level`,description:`{transport} transport · {status}`,emptyDescription:`-`,headerName:`Header name`,headerNamePlaceholder:`X-API-Key`,oauthBadge:`OAuth`,oauthManagedHint:`managed via OAuth flow`,registeredToolsHeading:`Registered tools ({count})`,riskHigh:`High`,riskLow:`Low`,riskMedium:`Medium`,save:`Save`,saving:`Saving...`,tableDescription:`Description`,tableTokens:`Tokens`,tableTool:`Tool`,tokenOverhead:`Total estimated token overhead: ~{count} tokens`,toolEstimatedTokens:`~{count}`},mediaEmbedsCard:{add:`Add`,addDomainLabel:`Add Domain`,addDomainPlaceholder:`Add domain (e.g. example.com)`,allowlist:`Video Domain Allowlist`,autoToggle:`Auto Media Embeds`,domainCount:`{count, plural, one {# domain} other {# domains}}`,removeDomainAria:`Remove {domain}`,resetDefaults:`Reset to Defaults`,subtitle:`Automatically embed images, videos, and other media shared in chat messages.`,title:`Media Embeds`},memoryCard:{disabledToast:`Memory disabled.`,enableAriaLabel:`Enable memory`,enabledToast:`Memory enabled.`,subtitle:`Let your assistant remember information from past conversations. Turning this off also pauses memory consolidation.`,title:`Memory`,updateFailedToast:`Failed to update memory setting.`},memoryRetrospectiveToggle:{ariaLabel:`Enable memory retrospectives`,description:`Let your assistant re-read recent conversations in the background and save what it missed in the moment. Pausing this keeps the rest of memory working.`,title:`Retrospectives`,toastEnabled:`Memory retrospectives enabled.`,toastFailed:`Failed to update memory retrospectives.`,toastPaused:`Memory retrospectives paused.`},memoryWorkerToggle:{ariaLabel:`Enable background memory worker`,description:`Run memory consolidation in a dedicated background process. It starts automatically; stop it to pause background memory processing until the next restart.`,title:`Background worker`,toastFailed:`Failed to update background worker.`,toastStarted:`Background worker started.`,toastStopped:`Background worker stopped.`},modelProfileRow:{customCallSiteModel:`Custom call-site model`,defaultMainAgent:`Default (assistant's main model)`,defaultNamed:`Default ({name})`,label:`Model profile`,override:`Override ({name})`},modelProfileSelect:{ariaLabel:`Model profile`},nativeAppCard:{benefitBiometric:`Biometric login`,benefitHaptics:`Native haptics`,benefitHomeScreen:`Home screen access`,benefitPush:`Push notifications`,download:`Download`,subtitle:`The Vellum {appName} app gives you a native experience.`,title:`Get the {appName} App`},notificationsPage:{description:`Manage how Vellum notifies you on this Android device.`,title:`Notifications`},overridesCallSiteList:{emptySearch:`No actions match your search.`},overridesDetailPanel:{advisorSection:`Advisor`,bulkChange:`Bulk change`,bulkChangeNoCandidatesTitle:`No actions currently use a profile`,bulkChangeUnsavedTitle:`Save or reset your changes first`,customProfileOption:`Custom`,description:`Customize which model profile specific actions should use. Uses your default profile if no override is set.`,loadErrorHint:`Make sure your assistant is running`,loadErrorTitle:`Couldn't load actions`,otherDomain:`Other`,overridesResetToast:`Overrides reset.`,overridesSavedToast:`Overrides saved.`,resetConfirmMessage:`Every action override will be reset and will follow its default. This cannot be undone.`,resetFailedToast:`Failed to reset overrides. Please try again.`,resetToDefaults:`Reset to Defaults`,retry:`Retry`,save:`Save`,saveFailedToast:`Failed to save overrides. Please try again.`,searchPlaceholder:`Search actions…`,title:`Action Overrides`},packageSwitchConfirmModal:{cancel:`Cancel`},pairDeviceCard:{copyError:`Could not copy the pairing address.`,generateButton:`Generate pairing QR`,generateButtonMinting:`Generating…`,generateButtonRegenerate:`Generate new code`,generateButtonWarned:`Generate anyway`,noTunnelMore:`Other providers and options: <code>{command}</code>`,noTunnelNext:`The tunnel prints an https address. Paste it into Public URL below, and leave the tunnel running while you pair and use other devices.`,noTunnelTitle:`Open a tunnel first`,noTunnelWhy:`Other devices reach {name} over the internet through a tunnel from this computer. In a terminal here, run:`,publicUrlDisclosure:`Use a different address`,publicUrlHelper:`The https address your devices can reach this assistant at (your Tailscale URL, or another tunnel's).`,publicUrlHelperTunnel:"This address comes from `vellum tunnel` on this computer. Edit it if your devices reach this assistant at a different URL.",publicUrlLabel:`Public URL`,publicUrlPlaceholder:`https://your-assistant.ts.net`,subtitle:`Scan with another device's camera, or open the link on it, to use {name} there.`,subtitleFallbackName:`this assistant`,title:`Pair a device`},pairDeviceClient:{connectivityHint:"If a scan can't connect, make sure a tunnel is running on the host (`vellum tunnel`) and the public URL points at it, then generate a new code.",httpError:`Pairing failed (HTTP {status}).`,networkError:`Couldn't reach the assistant. Make sure it's running and try again.`,unexpectedResponse:`The assistant returned an unexpected response.`},pairDeviceReady:{copiedButton:`Copied`,copyButton:`Copy`,expiredBody:`Generate a new code to pair a device.`,expiredTitle:`This pairing code expired.`,expiresIn:`Expires in {time} · single-use.`,qrTitle:`Device pairing QR code`,singleUse:`Single-use.`},pairDeviceUrl:{loopback:`This is a loopback address other devices can't reach. Enter the assistant's public https URL.`,nonHttps:`The URL must use https so your devices can connect securely.`,serviceFallbackName:`the tunnel provider`,serviceWebsite:"This is {service}'s website, not your assistant's address. Run `vellum tunnel` on the host to get one.",unparseable:`Enter a valid URL, e.g. https://your-assistant.ts.net.`},pairedDevicesSection:{confirmMessage:`The {platform} device {hash} loses access to this assistant. Its access tokens are invalidated immediately; that device must be paired again from this machine to reconnect.`,confirmTitle:`Revoke this device?`,dateUnknown:`unknown`,hostRevokeDisabledTitle:`This is this machine's own credential; revoking it would lock the host out of the assistant.`,pairedActiveLine:`Paired {paired} · Active now`,pairedAndUsedLine:`Paired {paired} · Last used {lastUsed}`,pairedLine:`Paired {paired}`,platformUnknown:`Unknown`,revokeButton:`Revoke`,thisMachine:`This machine`,title:`Paired devices ({count})`},paymentMethodRow:{endingIn:`Ending in {last4}`,savedCard:`Saved card`,updateCard:`Update Card`},paymentMethodsCard:{addButton:`Add Payment Method`,empty:`No payment method on file. Add one to use auto-reload.`,loadError:`Failed to load payment methods.`,loading:`Loading…`,title:`Payment Method`},pendingPairingRequests:{approveButton:`Approve`,denyButton:`Deny`,instruction:`A device is asking to use this assistant. Approve a request only after confirming its code matches the one shown on the requesting device.`,requestedMeta:`Requested {when} from {ip}`,requestedMetaHost:`Requested {when} from this computer`,title:`Pairing requests`},planCard:{alreadyOnPlanToast:`You're already on this plan.`,checkoutFailedToast:`Failed to start the upgrade checkout. Please try again.`,current:`Current`,endsOn:`Your plan ends on {date}.`,freeForever:`Free Forever`,heading:`Plan`,loadError:`Failed to load plan.`,loading:`Loading plan...`,manageSubscription:`Manage Subscription`,nextPlan:`Next Plan`,powerUp:`Power Up`,powerUpFor:`Power Up for +{amount}/month`,renewsOn:`Monthly Payment • Your subscription will auto renew on {date}.`,usageBalanceAddCredits:`Add`,usageBalanceExhausted:`Add credits to continue using your assistant`,usageBalancePctUsed:`{pct}% used`,usageBalanceResets:`Resets {date}`,usageBalanceTitle:`Usage Balance`,usageChip:`{name} usage, reset monthly`,usageIncludedChip:`{label} included`,viewAllPlans:`View All Plans`},planCardContent:{baseFee:`{amount} base fee`,baseTagline:`All you need for a capable assistant`,creditsNotIncluded:`*Credits not included`,current:`Current`,currentlyPrice:`Currently {price}`,downgradeToBase:`Downgrade to Base`,forever:`Forever`,free:`Free`,fromPrice:`From {price}`,keepPlan:`Keep your Plan`,loadingPlan:`Loading your plan...`,planEndsOn:`Your plan ends on {date}`,pricingUnavailable:`Current plan pricing unavailable`,proTagline:`More features, more compute, more storage`,subscriptionChangeTitle:`Your Pro Plan subscription will change from {from} to {to}.`,updatePlan:`Update Plan`,upgradeToPro:`Upgrade to Pro`},planColumnCard:{currentPlan:`Current Plan`,includes:`Includes:`,recommended:`Recommended`},plansPage:{alreadyOnPlanToast:`You're already on this plan.`,back:`Back`,billedMonthlyCaption:`Billed monthly`,cancelAnytimeFooter:`You can cancel or change your plan anytime you want. To learn more <docsLink>Read our Docs.</docsLink>`,checkoutFailedToast:`Failed to start the upgrade checkout. Please try again.`,downgradeTo:`Downgrade to {name}`,featureComputer:`{machine} Computer`,featureCreditsIncluded:`{amount} in credits included`,featureStorage:`{gib} GB Storage`,featureUsage:`{name} usage, reset monthly`,featureUsageIncluded:`{label} included`,foreverCaption:`Forever`,freeFeaturePayAsYouGo:`Pay-as-you-go credits`,freeFeatureSmallComputer:`Small Computer`,freeFeatureStorage:`{gib} GB Storage`,freePriceLabel:`Free`,heading:`Give your assistant more power`,loadingPlansAriaLabel:`Loading plans`,planUpdatedToast:`Plan updated.`,startFreeCta:`Start Free`,subheading:`Choose the level that matches how much you want it to take on.`},preferencesModal:{composerTitle:`Composer`,description:`Customize shortcuts and how Vellum behaves on this device.`,keyboardShortcutsDescription:`Customize the shortcuts for Vellum's commands.`,keyboardShortcutsTitle:`Keyboard Shortcuts`,launchAtLoginAriaLabel:`Launch at Login`,launchAtLoginDescription:`Automatically start Vellum when you log in to your Mac.`,launchAtLoginTitle:`Launch at Login`,sendWithCmdEnter:`Send with Cmd+Enter`,sendWithCmdEnterHelper:`When enabled, Enter inserts a new line and Cmd+Enter sends.`,sendWithCtrlEnter:`Send with Ctrl+Enter`,sendWithCtrlEnterHelper:`When enabled, Enter inserts a new line and Ctrl+Enter sends.`,showContextWindow:`Show context window usage`,showContextWindowHelper:`Adds a ring to the composer tracking how full the context window is. Your assistant compacts its context automatically either way.`,title:`Preferences`},previewReleaseChannel:{backupOptionLabel:`{name} - {date}`,cancel:`Cancel`,dataLossBody:`Preview data may not be compatible with the Stable channel. The safety backup lets you restore the Stable-channel data that existed before opt-in.`,dataLossTitle:`Data loss may occur when returning to Stable`,latest:`latest`,latestPreview:`Latest Preview`,latestStable:`Latest Stable`,loadErrorBody:`Refresh this page before changing release channels.`,loadErrorTitle:`Could not load release channel status`,loading:`Loading release channel...`,mayNotSurviveBody:`Switching directly to the Stable image without restoring the safety backup may cause data loss or leave the assistant unusable if Preview data is incompatible with Stable.`,mayNotSurviveTitle:`Preview data may not survive this`,noPreviewBody:`Stable remains the only available release channel.`,noPreviewTitle:`No Preview release is available`,none:`None`,optIn:`Opt in to Preview`,optInDescription:`Preview releases may be unstable. A 90-day safety backup is taken before the image changes.`,optInStep1:`Create and verify a Preview safety backup.`,optInStep2:`Switch to Preview image {version}.`,optInStep3:`Run the normal upgrade path and wait for health.`,optInTitle:`Opt in to Preview`,optOutDescription:`Choose how this assistant should leave the Preview channel.`,optOutTitle:`Switch back to Stable`,preview:`Preview`,previewEnableFailedToast:`Could not enable Preview channel.`,previewEnabledToast:`Preview channel enabled.`,requiresBackupBody:`This Preview release is newer than the latest Stable release, so switching directly is blocked. Wait for a newer Stable release, or run Vellum Doctor if the safety backup is missing.`,requiresBackupTitle:`Stable requires a safety backup`,restoreBackupHelper:`Return to the Stable-channel data captured before Preview opt-in.`,restoreBackupLabel:`Restore safety backup`,returnMethodAriaLabel:`Stable channel return method`,safetyBackup:`Safety backup`,stable:`Stable`,stableBackupLabel:`Stable {version}`,stableEnabledToast:`Stable channel enabled.`,standardUpgradeHelper:`Keep the current data and directly switch to the Stable image.`,standardUpgradeLabel:`Switch to Stable without restoring backup`,standardUpgradeUnavailable:`Unavailable because the latest Stable release is older than this assistant's Preview release.`,switchBack:`Switch back to Stable`,switchToStable:`Switch to Stable`,switching:`Switching...`,takeBackupAndSwitch:`Take Backup and Switch`,title:`Release Channel`,unavailableBody:`The Preview channel is not enabled for this assistant.`,unavailableTitle:`Preview channel is unavailable`,unknownDate:`Unknown`},privacyPage:{llmLogRetentionDescription:`How long to keep LLM request and response logs on this device. These logs record the prompts and completions sent to model providers and are used for debugging. Shorter retention improves privacy; longer retention helps troubleshoot issues.`,llmLogRetentionLabel:`LLM Request Log Retention`,retentionDontRetain:`Don't retain`,retentionKeepForever:`Keep forever`,retentionNinetyDays:`90 days`,retentionOneDay:`1 day`,retentionOneHour:`1 hour`,retentionSevenDays:`7 days`,retentionThirtyDays:`30 days`,shareAnalyticsHelper:`Send aggregated product usage data`,shareAnalyticsLabel:`Share Analytics`,shareDiagnosticsHelper:`Send crash reports, conversation traces, and session replay data`,shareDiagnosticsLabel:`Share Diagnostics`,subtitleWithPolicy:`View details about what data we collect and how it's used in our <policyLink>privacy policy</policyLink>.`,title:`Privacy`},profileAdvancedParams:{contextWindowLabel:`Context Window`,defaultValueLabel:`Default · {value}`,effortLabel:`Effort`,effortSegmentDefault:`default`,enableExtendedThinkingLabel:`Enable extended thinking`,maxOutputTokensLabel:`Max Output Tokens`,reset:`Reset`,snapshotsHint:`Fields left at their default are saved with the values shown and won't change if the assistant defaults change later.`,speedLabel:`Speed`,streamThinkingTokensLabel:`Stream thinking tokens`,temperatureLabel:`Temperature`,thinkingLevelInheritHint:`(default = inherit)`,thinkingLevelLabel:`Thinking level`,tokensAriaLabel:`{label} (tokens)`,topPLabel:`Top P`,verbosityLabel:`Verbosity`},profileCheck:{profileError:`Saved, but a test request through this profile failed: {detail} Check the profile's model and parameters.`,providerError:`Saved, but a test request through this profile failed: {detail} Check the provider connection "{connection}".`,providerErrorUnnamed:`Saved, but a test request through this profile failed: {detail} Check the profile's provider connection.`,transient:`Saved, but a test request through this profile could not complete: {detail} This may be temporary.`,unknown:`Saved, but a test request through this profile failed: {detail}`},profileDetailPanel:{createProfile:`Create Profile`,defaultTitle:`Profile`,delete:`Delete`,deleting:`Deleting…`,managedTag:`Managed by Vellum`,newProfileTitle:`New Profile`,save:`Save`,saveAsNew:`Save As New`,saveChanges:`Save Changes`,saving:`Saving…`},profileEditor:{maxTokensNoInputRoom:`Max tokens ({maxTokens}) reserves the entire {window}-token context window for output, leaving no room for your messages. Reduce it (e.g. 8000).`,maxTokensOverCap:`Max tokens ({maxTokens}) exceeds the model's maximum output of {cap} tokens. Reduce it to {cap} or less.`,subscriptionSteeringHint:`Your ChatGPT subscription is available as the ChatGPT provider.`},profileEditorFields:{activeLabel:`Active`,addApiKey:`Add API key`,advanced:`Advanced`,createNewProvider:`+ Create new provider`,descriptionLabel:`Description <optional>(optional)</optional>`,descriptionPlaceholder:`Describe when to use this profile`,displayNameLabel:`Display Name`,displayNamePlaceholder:`e.g. Fast & Cheap`,keyLabel:`Key`,keyPlaceholder:`e.g. fast-cheap`,nameLabel:`Name`,newProviderNote:`New provider connection will show up in the Providers section.`,providerLabel:`Provider`,selectProviderPlaceholder:`Select a provider…`,setUp:`Set up`},profileEditorModal:{cancel:`Cancel`,close:`Close`,editProfileTitle:`Edit Profile`,newProfileTitle:`New Profile`,platformTag:`Platform`,profileFallbackTitle:`Profile`,save:`Save`,saveAsNew:`Save As New`,saving:`Saving…`},profileEditorProviderSection:{chooseFromList:`Choose from list`,connectionNotFound:`This profile referenced a credential that no longer exists. Saving resets it to use the provider's available key.`,customModelAriaLabel:`Custom model ID`,customModelPlaceholder:`provider/model-id`,enterCustomModelIdHint:`Enter the exact model identifier your provider expects. It's sent to the connection as-is.`,enterCustomModelIdOption:`Enter a custom model ID…`,modelAriaLabel:`Model`,modelEmptyConfigureConnectionHint:`No models available. Configure models on the provider connection first.`,modelEmptyConfigureConnectionPlaceholder:`Configure models on connection`,modelEmptyNoProviderPlaceholder:`Select a provider first`,modelEmptyUnknownHint:`No models are available for this provider in this app version. Update the app, or enter a custom model ID.`,modelEmptyUnknownPlaceholder:`No models available`,modelLabel:`Model`,noProviderConnectionsHint:`No provider connections. Open Providers to add one.`,providerLabel:`Provider`,providerNotFoundSuffix:`(not found)`,selectModelError:`Select a model.`,selectModelPlaceholder:`Select a model`,selectProviderPlaceholder:`Select a provider…`},profileRow:{actionsAriaLabel:`Actions for {displayName}`,defaultTag:`Default`,delete:`Delete`,disable:`Disable`,disabledTag:`Disabled`,edit:`Edit`,enable:`Enable`,makeDefault:`Make Default`,managedByVellum:`Managed by Vellum`,openProfileAriaLabel:`Open profile {displayName}`,configIssueModelUnknown:`This profile's model is not available from its provider.`,configIssueNoInputRoom:`This profile's max output tokens leave no room for input in the model's context window.`,configIssueOverOutputCap:`This profile's max output tokens exceed what its model supports.`,providerUnavailableDefault:`This profile's provider is not available.`,providerUnavailableFixable:`{message} Click to fix.`,view:`View`},profilesSection:{createProfile:`Create Profile`,emptyState:`No profiles yet. Create one to get started.`,loading:`Loading profiles…`,title:`Profiles`},providerCreateForm:{add:`Add`,addNamed:`Add {name}`,addProviderDescription:`Choose a provider and paste its API key.`,addProviderTitle:`Add Provider`,advanced:`Advanced`,apiKeyPlaceholder:`Enter your API key`,baseUrlHintOllama:`Leave blank to use the local Ollama default, or enter a remote or non-default host.`,baseUrlLabel:`Base URL`,baseUrlPlaceholder:`https://api.x.ai/v1`,baseUrlPlaceholderOllama:`http://127.0.0.1:11434/v1`,cancel:`Cancel`,customProviderHint:`Custom providers connect to any endpoint that serves the OpenAI-compatible API - xAI, Groq, LM Studio, vLLM, and similar.`,customProviderOption:`Custom provider`,displayNameLabel:`Display Name <optional>(optional)</optional>`,displayNamePlaceholder:`e.g. My Anthropic Key`,emptyServerResponse:`Server returned an empty response. Please try again.`,enterApiKeyOrCredential:`Enter an API key or select an existing credential.`,failedSaveApiKey:`Failed to save API key. Please try again.`,failedSaveProvider:`Failed to save provider. Please try again.`,localEndpointHint:`Leave the key empty for local endpoints - they connect keyless.`,modelsHint:`Comma-separated model identifiers exposed by your endpoint.`,modelsLabel:`Models`,modelsPlaceholder:`model-1, model-2`,nameLabel:`Name`,namePlaceholder:`xAI`,providerAriaLabel:`Provider`,providerConnectedToast:`Provider connected`,providerLabel:`Provider`,saving:`Saving…`,useChatgptSignIn:`Use the "Sign in with ChatGPT" button to connect your subscription.`},providerDetailPanel:{addProviderTitle:`Add Provider`},providerEditorApiKeySection:{advanced:`Advanced`,apiKeyLabel:`API Key`,cancel:`Cancel`,credentialReferenceAriaLabel:`Credential reference`,credentialReferenceLabel:`Credential Reference`,credentialReferenceSuffix:`· Credential reference`,loading:`Loading…`,newCredential:`+ New Credential`,newCredentialNameLabel:`New Credential Name`,newCredentialPlaceholder:`e.g. team-key`,use:`Use`},providerEditorContent:{apiKeyPlaceholder:`Enter your API key`,baseUrlHintOllama:`Leave blank to use the local Ollama default, or enter a remote or non-default host.`,baseUrlLabel:`Base URL`,baseUrlPlaceholder:`https://api.example.com/v1`,baseUrlPlaceholderOllama:`http://127.0.0.1:11434/v1`,cancel:`Cancel`,displayNameLabel:`Display Name <optional>(optional)</optional>`,displayNamePlaceholder:`e.g. My Anthropic Key`,editProviderSettingsFallback:`Edit provider settings.`,editProviderTitle:`Edit Provider`,editingConnection:`Editing {name}.`,emptyServerResponse:`Server returned an empty response. Please try again.`,failedSaveApiKey:`Failed to save API key. Please try again.`,failedSaveProvider:`Failed to save provider. Please try again.`,modelsHint:`Comma-separated model identifiers exposed by your endpoint.`,modelsLabel:`Models`,modelsPlaceholder:`model-1, model-2`,nothingToEdit:`Nothing to edit. Close and try again.`,saveChanges:`Save Changes`,saving:`Saving…`},providerEndpointCheck:{httpError:`The endpoint returned HTTP {status} for a test request.`,notFound:`The endpoint returned 404 for a test request: check the base path for this provider (e.g. NVIDIA needs /v1, OpenRouter needs /api/v1). Some providers gate requests behind auth, so this may be a false alarm.`,unauthorized:`The endpoint rejected the credential for a test request (HTTP {status}). Check the API key.`,unreachable:`Could not reach the endpoint for a test request. Check the URL.`},providerRow:{actionsAriaLabel:`Actions for {displayName}`,customTag:`Custom`,customTagTitle:`A provider you created, served by an OpenAI-compatible endpoint.`,defaultTag:`Default`,defaultTagTitle:`Built-in profiles (Balanced, Quality, Cost, Speed) use this provider.`,delete:`Delete`,edit:`Edit`,localTag:`Local`,localTagTitle:`Runs models on this machine.`,managedTag:`Managed`,managedTagTitle:`Runs on Vellum's managed credentials.`,openProviderAriaLabel:`Open provider {displayName}`,setAsDefault:`Set as default`},providersSection:{addProvider:`Add Provider`,empty:`No providers yet. Add one to get started.`,loadError:`Failed to load providers. Please try again.`,title:`Providers`},provisioningState:{allDoneStatus:`All done!`,confirmingCaption:`This might take a couple seconds.`,continueInBackground:`Continue in the background`,creditsChip:`{count} credits`,dimensionsComplete:`{dimensions} complete`,goToBilling:`Go to billing`,machineLabel:`Machine`,noExtraUsage:`No extra usage`,packageChip:`{name} package`,planReadyStatus:`Your plan is ready`,retryInBackground:`Retry in the background`,srOnlyTo:`to`,stalledCaption:`This may take a couple of minutes.`,statusComplete:`Complete`,statusPending:`Pending`,storageLabel:`Storage`,takingLongerStatus:`This is taking longer than expected`,tryAgain:`Try again`,usageLabel:`Usage`,waitingCaptionLong:`Still working. This can take a minute or two.`,waitingCaptionShort:`This might take a couple seconds.`},recentRunsCard:{emptyDefault:`No runs yet.`,error:`Error`,loadMore:`Load more`,loadingMore:`Loading…`,missed:`Missed`,output:`Output`,runAtAria:`Run at {time}`,skipped:`Skipped`,title:`Recent runs`},recoveryModeControls:{activeDescription:`Active - connected to the debug terminal`,enter:`Enter Recovery Mode`,enterError:`Failed to enter Recovery Mode. Please try again.`,exitError:`Failed to exit Recovery Mode. Please try again.`,inactiveDescription:`Pause the assistant and connect directly to its workspace via the debug terminal`,loginNoticeEnter:`Log in to the Vellum platform to enter Recovery Mode.`,loginNoticeExit:`Log in to the Vellum platform to exit Recovery Mode.`,resumeAssistant:`Resume Assistant`,title:`Recovery Mode`},referralContent:{copied:`Copied!`,copyError:`Couldn't copy the referral link.`,copySuccess:`Copied to clipboard!`,creditsEarned:`Credits Earned`,friendsReferred:`Friends Referred`,gatedNotice:`You're not currently earning referral credits. Buy credits or upgrade to Pro to start earning - your invite link still works in the meantime.`,loadError:`Failed to load referral information.`,loading:`Loading...`,shareLink:`Share Link`,subtitleDefault:`Share Vellum with friends and earn credits for every signup.`,subtitleGated:`Invite friends to Vellum. You'll start earning referral credits once you've purchased credits or upgraded to Pro.`,subtitleWithAmounts:`Share Vellum with friends - you'll each earn {creditAmount} credits when they sign up, up to {earningCap} total.`},referralModal:{title:`Earn Free Credits`},resizeCard:{apply:`Apply`,applyingResize:`Applying resize…`,cancel:`Cancel`,cpu:`CPU`,current:`Current`,disk:`Disk`,increaseSize:`Increase Size`,increaseStorage:`Increase Storage`,machine:`Machine`,machineSize:`Machine Size`,machineSizeAriaLabel:`Compute machine size`,memory:`Memory`,modalDescription:`Resize your assistant's compute and storage. Your assistant will briefly restart.`,modalTitle:`Resize Assistant`,needMore:`Need more? <upgradeLink>Upgrade plan</upgradeLink>`,noMachineTier:`No machine tier configured. Visit the community for help.`,refreshMetrics:`Refresh resource metrics`,resize:`Resize`,resizeFailed:`Failed to resize assistant. Please try again.`,retry:`Retry`,storage:`Storage`,storageAlreadyProvisioned:`Storage is already at its provisioned size ({size} GB) and will not change.`,storageExpandFromTo:`Storage will be expanded from {from} GB to {to} GB.`,storageExpandTo:`Storage will be expanded to {to} GB.`,storageUnchanged:`Storage will not change.`,subscriptionLoadError:`Could not load your subscription. Please try again.`,subtitle:`Monitor resource usage and manage your assistant's compute profile.`,title:`Compute & Resources`,toastStarted:`Resize started. Changes will apply shortly.`,unavailable:`Unavailable`,upgrade:`Upgrade`,upgradeDescription:`Move to a higher plan for more power, more storage, and a larger credit bundle.`,upgradeTitle:`Upgrade your plan`,usedOf:`{used} of {total}`},restartAssistant:{button:`Restart`,confirmLabel:`Restart`,confirmMessage:`Are you sure you want to restart this assistant? It will be briefly unavailable during the restart.`,confirmTitle:`Restart Assistant`,failStart:`Failed to start assistant.`,failStop:`Failed to stop assistant.`,toastFailed:`Failed to restart assistant.`,toastRestarting:`Assistant is restarting.`},retireAssistant:{button:`Retire Assistant`},riskToleranceSettings:{advanced:`Advanced`,backgroundDescription:`When your assistant acts without you - scheduled tasks, background jobs, and external triggers.`,backgroundTitle:`Background`,conversationsDescription:`When you're chatting with your assistant directly.`,conversationsTitle:`Conversations`,description:`Control which actions your assistant can take without asking first. Each action is classified by risk level - your access level determines which levels auto-approve. Trust Rules fine-tune this for specific actions by raising or lowering their risk.`,headlessDescription:`When triggered externally with no interactive client.`,headlessTitle:`Headless`,loadError:`Could not load threshold settings. Check your connection and reload.`,title:`Assistant Access`},scheduleProfileRebase:{alreadyOnProfileToast:`Every schedule already runs on {profile}.`,dialogMessage:`{count, plural, one {# of the schedules below runs on a different model. This moves every schedule, including reminders your assistant set aside for later, onto {profile}, your current default. Schedules you deliberately put on another model move too.} other {# of the schedules below run on a different model. This moves every schedule, including reminders your assistant set aside for later, onto {profile}, your current default. Schedules you deliberately put on another model move too.}}`,dialogTitle:`Use {profile} for every schedule?`,moveFailedToast:`Failed to move the schedules.`,moveSchedules:`Move schedules`,movedToast:`{count, plural, one {Moved # schedule to {profile}.} other {Moved # schedules to {profile}.}}`},scheduleSharedUi:{costFor:`Cost for {name} in the last 7 days: {cost}`,loadingUsage:`Loading schedule usage`,runsFor:`Runs for {name} in the last 7 days: {runs}`,unknownStatus:`unknown`,viewUsageFor:`View usage for {name}`},sentryTestingPanel:{errorDescription:`Capture a test Error exception.`,errorLabel:`Error Event`,errorSentToast:`Sentry error event sent.`,fatalDescription:`Send a fatal-level event to Sentry.`,fatalLabel:`Fatal Event`,fatalSentToast:`Sentry fatal event sent.`,infoDescription:`Send an info-level message.`,infoLabel:`Info Event`,infoSentToast:`Sentry info event sent.`,performanceDescription:`Start and end a test transaction span.`,performanceLabel:`Performance Transaction`,send:`Send`,subtitle:`Fire test events to verify Sentry integration is working.`,title:`Sentry Testing`,transactionSentToast:`Sentry performance transaction sent.`,warningDescription:`Send a warning-level message.`,warningLabel:`Warning Event`,warningSentToast:`Sentry warning event sent.`},sharedUi:{checkingDomain:`Checking domain…`,domainVerified:`Domain verified`,failedTitle:`Domain verification failed. DNS records may not have propagated correctly. You could try releasing and re-registering the domain.`,managedLabel:`Managed`,managedServicesBanner:`Managed services are metered and deducted from your Vellum account balance. <link>View pricing</link>`,modeToggleAriaLabel:`Service mode`,unknownStatus:`Unknown status`,unknownStatusTitle:`Unable to retrieve domain verification status.`,verificationFailed:`Verification failed`,verifiedTitle:`DNS records have been verified. Your domain is ready to send and receive email.`,verifyingDomain:`Verifying domain…`,verifyingTitle:`DNS records have been provisioned. Waiting for the email provider to verify them - this usually takes a few minutes.`,yourOwnLabel:`Your Own`},shortcutsSections:{alreadyUsedBy:`Already used by {label}`,appDescription:`Work while a Vellum window is focused.`,appTitle:`App shortcuts`,cancel:`Cancel`,conflictNoticePrefix:`That shortcut is already used by {label}.`,conflictRecordingHint:`Pick a different combination, or press Esc to cancel.`,conflictResetHint:`Remove or change that binding before resetting.`,globalDescription:`Work anywhere, even when Vellum is in the background.`,globalTitle:`Global shortcuts`,none:`None`,record:`Record`,recordShortcutAriaLabel:`Record shortcut for {label}`,recordingHint:`Recording… press a shortcut, or Esc to cancel`,removeBindingAriaLabel:`Remove {label} binding`,resetShortcutAriaLabel:`Reset {label} to default`},showTipsRow:{ariaLabel:`Show tips`,description:`Occasional tips in the sidebar that highlight features you haven't tried yet.`,label:`Show tips`},soundsSections:{addSound:`Add sound`,allSoundsAdded:`All sounds added`,defaultBlip:`Default Blip`,enableEvent:`Enable {eventName}`,enableSoundEffects:`Enable sound effects`,enableSoundEffectsDescription:`Master switch for every event-driven sound.`,noSoundFiles:`No sound files yet. Drop audio files into data/sounds/ in your workspace.`,preview:`Preview`,previewDefaultBlip:`Preview default blip`,previewSoundAriaLabel:`Preview {filename}`,removeSoundAriaLabel:`Remove {filename}`,soundEventCharacterPoke:`Character Poke`,soundEventMessageSent:`Message Sent`,soundEventNeedsInput:`Needs Input`,soundEventNewConversation:`New Conversation`,soundEventNotification:`Notification`,soundEventRandom:`Random`,soundEventTaskComplete:`Task Complete`,soundEventTaskFailed:`Task Failed`,soundEventsDescription:`Add one or more sounds per event. When multiple are configured, one plays at random.`,soundEventsTitle:`Sound Events`,volume:`Volume`,volumeAriaLabel:`Sound effect volume`},speechToTextCard:{subtitle:`Configure how your assistant transcribes speech`,title:`Speech-to-Text`},systemTasksSection:{consolidationName:`Consolidation`,consolidationPausedHelper:`Memory is off, so consolidation is paused.`,cost7d:`{cost} (7d)`,disabled:`disabled`,enabled:`enabled`,heartbeatName:`Heartbeat`,lastRun:`Last: {time}`,loadError:`Failed to load system jobs. <retryButton>Retry</retryButton>`,nextRun:`Next: {time}`,openAriaLabel:`Open {name}`,partialLoadError:`Some system jobs failed to load. <retryButton>Retry</retryButton>`,paused:`Paused`,retrospectiveName:`Memory retrospective`,retrospectivePausedHelper:`Retrospectives are turned off in Memory settings.`,subtitle:`Built-in jobs managed by the assistant runtime`,title:`System`},teleportCard:{cancel:`Cancel`,confirmAndSwitch:`Confirm & Switch`,confirmLabel:`Teleport`,confirmMessage:`Your data will be copied to the new environment. The current assistant will remain available until you confirm the new one works.`,progressAriaLabel:`Teleport progress`,subtitle:`Move your assistant to a different hosting environment.`,title:`Teleport`,tryAgain:`Try Again`,verifyTitle:`Transfer complete - verify your new assistant is working.`},textToSpeechCard:{subtitle:`Configure how your assistant speaks`,title:`Text-to-Speech`},themePicker:{ariaLabel:`Theme`,dark:`Dark`,light:`Light`,system:`System`,title:`Theme`,velvet:`Velvet`},tierPicker:{machineAriaLabel:`Machine tier`,machineLabel:`Machine`,machineOption:`{label} {priceLabel}`,machinePlaceholder:`Select a machine tier`,machineTooltip:`Determines the CPU and memory allocated to your assistant`,priceAddon:`+{price}`,priceCurrent:`({price}, current)`,storageAriaLabel:`Storage tier`,storageLabel:`Storage`,storageOption:`{gib} GB {priceLabel}`,storagePlaceholder:`Select a storage tier`,storageTooltip:`Persistent disk space for your assistant's files and data`},timezonePicker:{citiesAriaLabel:`Cities`,closestCity:`Closest city`,noMatchingCities:`No matching cities`,notSet:`Not set`,searchPlaceholder:`Search city or country...`,timeZone:`Time zone`},timezoneSection:{description:`Used when displaying times and scheduling reminders.`,title:`Timezone`},trustRuleFormModal:{cancel:`Cancel`,closeAriaLabel:`Close`,defaultDescription:`{tool} - {pattern}`,descriptionLabel:`Description (optional)`,patternFallback:`pattern`,patternLabel:`Pattern`,patternPlaceholder:`e.g., git *`,riskHigh:`High`,riskHighDescription:`Always require explicit approval`,riskLevelLabel:`Risk Level`,riskLow:`Low`,riskLowDescription:`Auto-approve without prompting`,riskMedium:`Medium`,riskMediumDescription:`Prompt before executing`,save:`Save`,saveFailed:`Failed to save trust rule.`,saving:`Saving…`,title:`Edit Trust Rule`,toolLabel:`Tool`},trustRules:{description:`Manage per-tool rules that control which actions auto-approve and which require your explicit permission.`,manage:`Manage`,title:`Trust Rules`},trustRulesModal:{cancel:`Cancel`,defaultTag:`Default`,delete:`Delete`,deleteErrorFallback:`Failed to delete trust rule.`,deleteMessage:`Remove the {risk}-risk rule for {tool} matching "{pattern}"?`,deleteRuleAria:`Delete {tool} rule`,deleteTitle:`Delete Trust Rule?`,done:`Done`,editRuleAria:`Edit {tool} rule`,empty:`No trust rules yet. Rules are created when you classify actions from permission prompts.`,loadErrorFallback:`Failed to load trust rules.`,loading:`Loading…`,modifiedTag:`Modified`,riskHigh:`High`,riskLow:`Low`,riskMedium:`Medium`,showAllDefaults:`Show all defaults`,title:`Trust Rules`},tunnelStatusRow:{checkedAt:`Checked {when}`,checkingStatus:`Checking whether the tunnel is reachable…`,foreignStatus:`This address is serving a different assistant right now.`,foreignStatusNamed:`This address is serving {name} right now, not this assistant.`,healthyStatus:`The tunnel is running and reachable.`,refreshLabel:`Check the tunnel again`,restartHint:`Start this assistant's tunnel again with <code>{command}</code> in a terminal on this computer.`,stoppedRestart:`Run <code>{command}</code> in a terminal on this computer to start it again.`,stoppedStatus:`The tunnel is stopped, so other devices cannot reach this assistant.`,unpairableStatus:`This address answers, but it is not serving the pairing app. Start a tunnel with the web app enabled so pairing links open.`,unreachableStatus:`This address is not answering right now.`},twoFactorSection:{addAuthenticatorApp:`Add authenticator app`,addedOn:` · Added {date}`,authenticatorApp:`Authenticator app`,emptyDescription:`No authenticator app is set up. Add one to require a one-time code at sign-in.`,loadError:`Couldn't load your authenticator apps. <retryButton>Try again</retryButton>`,loading:`Loading authenticator apps…`,remove:`Remove`,removeDialogConfirm:`Remove`,removeDialogMessage:`Signing in will no longer ask for a code from this app. You can set up a new authenticator app at any time.`,removeDialogTitle:`Remove authenticator app`,toastRemoveFailed:`Failed to remove the authenticator app. Please try again.`,toastRemoved:`Authenticator app removed.`},updateWindowModal:{description:`Configure when automatic updates are applied.`,title:`Update Window`},updateWindowPolicy:{automaticUpdates:`Automatic updates`,automaticUpdatesHelper:`Update automatically during a configured time window`,daily:`Daily`,dayFri:`Fri`,dayMon:`Mon`,daySat:`Sat`,daySun:`Sun`,dayThu:`Thu`,dayTue:`Tue`,dayWed:`Wed`,daysOfMonth:`Day(s) of month`,daysOfMonthHelper:`Comma-separated day numbers (1-31)`,daysOfMonthPlaceholder:`e.g. 1, 15`,daysOfWeek:`Day(s) of week`,frequency:`Frequency`,loadError:`Failed to load update window policy. Refresh the page to try again.`,loading:`Loading update window settings...`,monthly:`Monthly`,savePolicy:`Save policy`,to:`to`,toastSaveFailed:`Failed to save policy. Please try again.`,toastSaved:`Auto-update policy saved.`,updateWindow:`Update window`,updateWindowWithTz:`Update window ({tz})`,weekly:`Weekly`},upgradeCancelPage:{billingUnavailable:`Billing isn't available for the current assistant state.`,platformLoginNotice:`Log in to the Vellum platform to manage billing and usage.`,redirectingBody:`Returning you to billing settings…`,returnToBilling:`Return to billing`,title:`Upgrade canceled`},upgradeSuccessPage:{cantConfirmUpgrade:`We can't confirm your upgrade for the current assistant. Return to billing to retry.`,fetchErrorBody:`We hit a problem checking your subscription. Your upgrade may still be processing. Return to billing to refresh.`,fetchErrorTitle:`Couldn't reach billing`,finalizingBody:`Stripe is confirming your subscription. This usually takes a few seconds.`,finalizingTitle:`Finalizing your upgrade…`,goToBilling:`Go to billing`,platformLoginNotice:`Log in to the Vellum platform to manage billing and usage.`,processingFallback:`We're processing your upgrade. Refresh in a moment to see your new plan.`,successBody:`Your Pro plan is active. You'll be redirected back to billing in a moment.`,welcomeTitle:`Welcome to Pro`},usageTab:{analyzeCostsButton:`Analyze costs with assistant`,breakdownTitle:`Breakdown`,cacheCreatedLabel:`Cache Created`,cacheReadLabel:`Cache Read`,costAssistantSubtitle:`Review recent spend and tune model profile choices.`,costAssistantTitle:`Cost assistant`,costLabel:`Cost`,dailyTrend:`Daily Trend`,dailyTrendBy:`Daily Trend by {group}`,directInputTokensLabel:`Direct Input Tokens`,failedToLoadUsage:`Failed to load usage.`,groupByActor:`Actor`,groupByConversation:`Conversation`,groupByModel:`Model`,groupByProfile:`Profile`,groupByProvider:`Provider`,groupBySchedule:`Schedule`,groupByTask:`Action`,groupColumnLabel:`Group`,hourlyTrend:`Hourly Trend`,hourlyTrendBy:`Hourly Trend by {group}`,inferenceUsageTitle:`Inference Usage`,llmCallsLabel:`LLM Calls`,noBreakdownDataSubtitle:`No usage recorded for this grouping`,noBreakdownDataTitle:`No breakdown data`,optimizeSettingsButton:`Optimize settings`,outputTokensLabel:`Output Tokens`,percentOfTotalLabel:`% of total`,range30d:`Last 30 days`,range7d:`Last 7 days`,range90d:`Last 90 days`,rangeAll:`All time`,rangeToday:`Today`,rangeYesterday:`Yesterday`,retry:`Retry`,title:`Usage`,tokensLabel:`Tokens`,totalsAriaLabel:`Totals`,turnsLabel:`Turns`,unknownSchedule:`Unknown schedule ({scheduleId})`},usageTrendChart:{noDailyData:`No daily data`,noHourlyData:`No hourly data`,noUsageInRange:`No usage recorded in this time range`,total:`Total`},useBillingPortalSession:{openError:`Couldn't open the billing portal. Please try again.`},useCancelSubscription:{cancelFailedToast:`Couldn't cancel your subscription. Please try again.`,canceledToast:`Pro plan canceled. You'll have access until {date}.`,endOfBillingPeriod:`the end of your billing period`},useDaemonConfig:{assistantNotReadyToast:`Assistant not ready. Please try again.`,saveApiKeyFailedToast:`Failed to save {providerName} API key. Please try again.`},usePairDevice:{mintErrorFallback:`Something went wrong while generating the code.`},usePendingPairingRequests:{actionErrorFallback:`Something went wrong. Try again.`,denyAlreadyApproved:`This request was already approved somewhere else, so the deny didn't take effect and the device is now paired.`,pollErrorFallback:`Something went wrong while checking for pairing requests.`},useProfileSave:{createdToast:`Profile "{name}" created`},useProviderActions:{deleteFailedToast:`Failed to delete the provider. Please try again.`,deleteInUseToast:`This provider is in use by a profile or as the default provider. Update those settings before deleting it.`,setDefaultFailedToast:`Failed to set the default provider. Please try again.`},useSystemTasks:{consolidationAlreadyQueued:`Consolidation already queued or running.`,consolidationQueued:`Consolidation queued.`,consolidationRunFailed:`Failed to run consolidation.`,heartbeatDisabled:`Heartbeat disabled.`,heartbeatEnabled:`Heartbeat enabled.`,heartbeatRunFailed:`Failed to run heartbeat.`,heartbeatSkipped:`Heartbeat skipped.`,heartbeatStarted:`Heartbeat started.`,heartbeatToggleFailed:`Failed to toggle heartbeat.`},voicePage:{activationKeyLabel:`Activation Key:`,allowMicrophoneAccess:`Allow Microphone Access`,captionsSubtitle:`Show live text of what you and the assistant say during a voice conversation.`,captionsTitle:`Captions`,customKey:`Custom`,defaultBadge:`Default`,enableVoiceShortcut:`Enable voice mode shortcut`,fnKeyLabel:`Fn`,fnRefusedNote:`Fn needs Input Monitoring. Grant it in System Settings, or set a custom shortcut.`,focusedTabNote:`Push-to-Talk only works while this tab is focused, and browsers may intercept some shortcuts (e.g. Ctrl+T) before the page can see them. For always-on PTT, use the Vellum desktop app.`,grantMicrophoneAccessHint:`Grant microphone access to list your available input devices.`,interruptSensitivityAriaLabel:`Interrupt sensitivity`,interruptSensitivityDescription:`How easily talking over the assistant interrupts it. Lower it if the assistant cuts itself off on background noise or filler words; raise it to interrupt more quickly.`,interruptSensitivityHigh:`High`,interruptSensitivityLabel:`Interrupt sensitivity`,interruptSensitivityLow:`Low`,interruptSensitivityMedium:`Medium`,microphoneAriaLabel:`Microphone`,microphoneFallbackLabel:`Microphone {index}`,microphoneSubtitle:`Which input device is used for dictation and voice conversations.`,microphoneTitle:`Microphone`,offKeyLabel:`Off`,pauseBeforeReplyAriaLabel:`Pause before reply`,pauseBeforeReplyDescription:`How long the assistant waits after you stop speaking before it replies. A longer pause lets you gather your thoughts mid-sentence without being cut off.`,pauseBeforeReplyLabel:`Pause before reply`,pressShortcut:`Press a shortcut…`,recommendedBadge:`Recommended`,recordingPrompt:`Press a chord or keystroke…`,resetToDefaults:`Reset to defaults`,savedMicrophone:`Saved microphone`,savedMicrophoneNotConnected:`Saved microphone (not connected)`,sectionCaptionsHeading:`Captions`,sectionInputDescription:`How you talk to your assistant.`,sectionInputHeading:`Input`,sectionOutputDescription:`How your assistant sounds.`,sectionOutputHeading:`Output`,shortcutChordHint:`Hold a modifier (Cmd, Ctrl, Option, or Shift) and press a key.`,shortcutConflict:`Already used by {command}`,speechServicesBannerLink:`Set it up in Models & Services`,speechServicesBannerPrompt:`Want to use your own API key for STT or TTS, or set a custom voice?`,systemDefault:`System Default`,turnTakingSubtitle:`Where your turn ends and the assistant's begins. Applies to hands-free conversations. Under push to talk, the key decides.`,turnTakingTitle:`Turn taking`,voiceShortcutSubtitle:`Press the shortcut to start or end a voice conversation, from anywhere in the app.`,voiceShortcutSubtitleDesktop:`Global shortcut for starting/ending a voice conversation.`,voiceShortcutTitle:`Voice Mode Shortcut`},voicePickerCard:{changeButton:`Change`,creditsNote:`Uses Vellum credits, through providers like ElevenLabs and Deepgram.`,title:`Voice`,titleWithName:`{name}'s Voice`},webFetchCard:{apiBaseHint:`Leave empty for the cloud default ({defaultBase}).`,apiBaseLabel:`API Base`,apiBasePlaceholder:`https://api.fastcrw.com`,apiKeyLabel:`API Key`,apiKeyPlaceholder:`Enter your API key`,configUpdateFailedToast:`Failed to update assistant configuration. Please try again.`,localPreferencesFailedToast:`Saved, but local preferences could not be written.`,providerLabel:`Provider`,savedToast:`Web fetch settings saved.`,subtitle:`Configure how your assistant reads individual web pages`,title:`Web Fetch`},webSearchCard:{apiBaseHint:`Leave empty for the cloud default ({defaultBase}).`,apiBaseLabel:`API Base`,apiBasePlaceholder:`https://api.fastcrw.com`,apiKeyLabel:`API Key`,apiKeyPlaceholder:`Enter your API key`,configUpdateFailedToast:`Failed to update assistant configuration. Please try again.`,localPreferencesFailedToast:`Saved, but local preferences could not be written.`,providerAriaLabel:`Web search provider`,providerLabel:`Provider`,savedToast:`Web search settings saved.`,subtitle:`Configure how your assistant should search the web`,title:`Web Search`,vellumNote:`Search runs through your Vellum account.`},yourOwnOauthTab:{accountFallback:`{name} Account`,addAnotherApp:`Add another {name} OAuth app`,addAnotherAppButton:`Add Another App`,addApp:`Add App`,addOwnApp:`Add your own {name} OAuth app`,addedOn:`Added {date}`,appAddedToast:`{name} OAuth app added.`,appDeletedToast:`OAuth app deleted.`,cancel:`Cancel`,clientId:`Client ID`,clientIdPlaceholder:`Enter your client ID`,clientSecret:`Client Secret`,clientSecretPlaceholder:`Enter your client secret`,connectAccount:`Connect account`,connectFailedToast:`Failed to start OAuth flow`,copiedAria:`Copied`,copiedToast:`Copied to clipboard!`,copyFailedToast:`Couldn't copy the redirect URL.`,copyRedirectAria:`Copy redirect URL`,createFailedToast:`Failed to create OAuth app`,credentialsNote:`Credentials are stored encrypted on the assistant and are never sent to Vellum.`,delete:`Delete`,deleteAppAria:`Delete OAuth app {id}`,deleteAppMessage:`Delete OAuth app '{id}'? This will disconnect all linked accounts.`,deleteAppTitle:`Delete OAuth app`,deleteFailedToast:`Failed to delete OAuth app`,disconnect:`Disconnect`,disconnectAria:`Disconnect {account}`,disconnectFailedToast:`Failed to disconnect account`,disconnectMessage:`Disconnect {account}? You can reconnect later.`,disconnectTitle:`Disconnect {name}?`,disconnectedToast:`{name} account disconnected.`,redirectHint:`Add this URL to your OAuth app's redirect settings.`,redirectUrl:`Redirect URL`,waitingAuthorization:`Waiting for authorization...`}},qs=[`common`,`chat`,`schedules`,`account`,`channels`,`settings`,`workspace`,`terminal`,`remote-web`,`credential-requests`,`logs`,`library`,`home`,`contacts`,`onboarding`,`intelligence`],Js=`common`,Ys=[`en`,`es`,`ru`];function Xs(e){return typeof e==`string`&&Ys.includes(e)}function Zs(e){for(let t of e){let e=t.trim().toLowerCase();if(e===``)continue;if(Xs(e))return e;let n=e.split(`-`)[0];if(Xs(n))return n}return`en`}var Qs={common:Ws,chat:Us,schedules:Gs,account:js,channels:Ms,settings:Ks,workspace:Hs,terminal:Vs,"remote-web":Bs,"credential-requests":Ps,logs:Ls,library:Is,home:Fs,contacts:Ns,onboarding:zs,intelligence:Rs},$s={es:{common:()=>r(()=>import(`./common-DFfCPRFe.js`),[]),chat:()=>r(()=>import(`./chat-BG7p3zq1.js`),[]),schedules:()=>r(()=>import(`./schedules-Dd44UKOx.js`),[]),account:()=>r(()=>import(`./account-Cs9SXbU1.js`),[]),channels:()=>r(()=>import(`./channels-DU7UcoR_.js`),[]),settings:()=>r(()=>import(`./settings-BggpKBtA.js`),[]),workspace:()=>r(()=>import(`./workspace-xgS4oaDo.js`),[]),terminal:()=>r(()=>import(`./terminal-DP646Xj3.js`),[]),"remote-web":()=>r(()=>import(`./remote-web-Btj-E-og.js`),[]),"credential-requests":()=>r(()=>import(`./credential-requests-D74qo-et.js`),[]),logs:()=>r(()=>import(`./logs-CwEMxFk_.js`),[]),library:()=>r(()=>import(`./library-mD_34-zu.js`),[]),home:()=>r(()=>import(`./home-C5CVL0Ta.js`),[]),contacts:()=>r(()=>import(`./contacts-CotcPejk.js`),[]),onboarding:()=>r(()=>import(`./onboarding-DJeJhXd6.js`),[]),intelligence:()=>r(()=>import(`./intelligence-cL2kPl3v.js`),[])},ru:{common:()=>r(()=>import(`./common-C7YGlfJZ.js`),[]),chat:()=>r(()=>import(`./chat-4LXYoAUR.js`),[]),schedules:()=>r(()=>import(`./schedules-K8jULmC8.js`),[]),account:()=>r(()=>import(`./account-DWeaNEN6.js`),[]),channels:()=>r(()=>import(`./channels-P8K1t248.js`),[]),settings:()=>r(()=>import(`./settings-DSeJ7uGb.js`),[]),workspace:()=>r(()=>import(`./workspace-Dva7bu2g.js`),[]),terminal:()=>r(()=>import(`./terminal-CazBoirG.js`),[]),"remote-web":()=>r(()=>import(`./remote-web-yAGitwPt.js`),[]),"credential-requests":()=>r(()=>import(`./credential-requests-BsHMMFoG.js`),[]),logs:()=>r(()=>import(`./logs-DYhiKdQ8.js`),[]),library:()=>r(()=>import(`./library-a7r2rPRX.js`),[]),home:()=>r(()=>import(`./home-QpGM3cDE.js`),[]),contacts:()=>r(()=>import(`./contacts-E-8UOrGK.js`),[]),onboarding:()=>r(()=>import(`./onboarding-D2bBWpx1.js`),[]),intelligence:()=>r(()=>import(`./intelligence-DNb2No5j.js`),[])}};async function ec(e){if(e===`en`)return Qs;let t=$s[e],n=await Promise.all(qs.map(async e=>[e,(await t[e]()).default]));return Object.fromEntries(n)}function tc(e,t){return{lng:e,fallbackLng:`en`,ns:[...qs],defaultNS:Js,resources:t,interpolation:{escapeValue:!1},returnNull:!1}}function nc(){if(typeof navigator>`u`)return[];let e=navigator.languages;return Array.isArray(e)&&e.length>0?[...e]:navigator.language?[navigator.language]:[]}function rc(e,t){return e&&typeof e==`object`&&!Array.isArray(e)?e:typeof e==`string`&&!e.trimStart().startsWith(`<`)?{detail:e.slice(0,500)||t?.statusText||`Request failed.`}:{detail:t?.statusText||`Request failed.`}}function ic(e,t,n){if(e&&typeof e==`object`&&!Array.isArray(e)){if(`detail`in e&&typeof e.detail==`string`)return e.detail;if(`error`in e){if(typeof e.error==`string`)return e.error;if(e.error&&typeof e.error==`object`&&`message`in e.error&&typeof e.error.message==`string`)return e.error.message}if(`message`in e&&typeof e.message==`string`)return e.message}return typeof e==`string`&&e&&!e.trimStart().startsWith(`<`)?e:n??(t?`HTTP ${t.status}`:`Request failed.`)}function ac(e,t,n){if(!e)throw t instanceof Error?t:Error(n)}function oc(e){if(!e||typeof e!=`object`||!(`error`in e))return{};let t=e.error;return!t||typeof t!=`object`?{}:{...`code`in t&&typeof t.code==`string`?{code:t.code}:{},...`details`in t?{details:t.details}:{}}}var sc=class extends Error{status;code;details;constructor(e,t,n={}){super(t),this.name=`ApiError`,this.status=e,n.code!==void 0&&(this.code=n.code),n.details!==void 0&&(this.details=n.details)}};function cc(e){if(!(e instanceof sc)||e.status!==400)return;let t=e.message.trim();if(!(t.length===0||/^HTTP \d+$/.test(t)))return t}function lc(e,t){return new sc(t.status,ic(e,t,`HTTP ${t.status}`),oc(e))}var uc=3;function dc(e){return e instanceof sc?!!(e.status===503||e.status===502||e.status===401||e.status===400&&e.message.includes(`Organization-Id header`)):!1}function fc(e,t){return e>=uc?!1:dc(t)}function pc(e){if(!(e instanceof TypeError))return!1;let t=e.message;return!!(t===`Failed to fetch`||t.startsWith(`Failed to fetch (`)&&t.endsWith(`)`)||t===`Load failed`||t.startsWith(`Load failed (`)&&t.endsWith(`)`)||t===`NetworkError when attempting to fetch resource`||t===`NetworkError when attempting to fetch resource.`)}function mc(e){if(e instanceof Error)return e;if(typeof e==`object`&&e){let t=e,n=t.detail;if(typeof n==`string`){let t=Error(n);return t.cause=e,t}let r=t.message;if(typeof r==`string`){let t=Error(r);return t.cause=e,t}try{let t=Error(JSON.stringify(e));return t.cause=e,t}catch{let t=Error(`Non-serializable error object`);return t.cause=e,t}}return Error(String(e))}function hc(e,t){if(pc(e)||t.bestEffort&&dc(e))return;console.error(`[${t.context}]`,e);let n=mc(e),r={...t.extra};n!==e&&(r.originalError=e),hi(n,{level:t.level,tags:{context:t.context,...t.tags},...Object.keys(r).length>0?{extra:r}:{}})}var $={theme:{key:`device:theme`},shareAnalytics:{key:`device:share_analytics`},shareDiagnostics:{key:`device:share_diagnostics`},diagnosticsReporting:{key:`device:diagnostics_reporting`},biometricEnabled:{key:`device:biometric_enabled`},llmLogRetention:{key:`device:llm_log_retention`},timezone:{key:`device:timezone`},locale:{key:`device:locale`},mediaEmbedsEnabled:{key:`device:media_embeds_enabled`},mediaEmbedDomains:{key:`device:media_embed_domains`},dockBadgesEnabled:{key:`device:dock_badges_enabled`},lastUserId:{key:`device:last_user_id`}};function gc(e){return $[e].key}function _c(e,t){if(typeof window>`u`)return t;try{return localStorage.getItem($[e].key)??t}catch{return t}}function vc(e,t){i($[e].key,t)}function yc(e,t){if(typeof window>`u`)return t;try{let t=localStorage.getItem($[e].key);if(t===`true`)return!0;if(t===`false`)return!1}catch{}return t}function bc(e,t){a($[e].key,t)}function xc(e,t){return o($[e].key,t)}function Sc(){let e=_c(`locale`,``);return Xs(e)?e:Zs(nc())}function Cc(e){if(typeof document>`u`)return;document.documentElement.lang=e;let t;try{let n=new Intl.Locale(e);t=n.getTextInfo?.().direction??n.textInfo?.direction}catch{t=void 0}document.documentElement.dir=t===`rtl`?`rtl`:`ltr`}async function wc(e){let t=qs.filter(t=>!X.hasResourceBundle(e,t));if(t.length===0)return;let n=await ec(e);for(let r of t)X.addResourceBundle(e,r,n[r],!0,!0)}function Tc(e,t){hc(e,{context:`i18n_catalog_load`,level:`warning`,tags:{locale:t}})}async function Ec(){let e=Sc();if(X.isInitialized)try{return await Dc(e),e}catch(t){return Tc(t,e),Oc()}let t={en:Qs},n=`en`;if(e!==`en`)try{t[e]=await ec(e),n=e}catch(t){Tc(t,e)}return await X.use(new As).use(Pa).init(tc(n,t)),Cc(n),n}async function Dc(e){await wc(e),await X.changeLanguage(e),vc(`locale`,e),Cc(e)}function Oc(){let e=X.resolvedLanguage??X.language;return Xs(e)?e:`en`}export{Rn as $,ae as $t,_i as A,D as At,Or as B,pe as Bt,Da as C,tt as Ct,va as D,qe as Dt,ga as E,Ge as Et,vi as F,Ne as Ft,Qn as G,be as Gt,pr as H,xe as Ht,bi as I,Me as It,er as J,_e as Jt,tr as K,ye as Kt,ii as L,Ae as Lt,gi as M,Pe as Mt,Ci as N,Ie as Nt,Y as O,Ue as Ot,yi as P,Fe as Pt,Bn as Q,le as Qt,Zr as R,he as Rt,Aa as S,$e as St,Z as T,k as Tt,$n as U,E as Ut,mr as V,me as Vt,or as W,ve as Wt,H as X,ie as Xt,rr as Y,we as Yt,Gn as Z,ue as Zt,rc as _,M as _t,_c as a,u as an,ln as at,Fa as b,A as bt,xc as c,s as cn,Ht as ct,fc as d,L as dt,p as en,Pn as et,sc as f,F as ft,lc as g,jt as gt,ic as h,Mt as ht,yc as i,f as in,z as it,hi as j,Be as jt,ha as k,He as kt,hc as l,Vt as lt,cc as m,I as mt,Ec as n,C as nn,An as nt,bc as o,l as on,tn as ot,ac as p,At as pt,lr as q,De as qt,gc as r,h as rn,Dn as rt,vc as s,c as sn,cn as st,Oc as t,g as tn,Mn as tt,pc as u,Bt as ut,Ha as v,j as vt,Ca as w,Qe as wt,Na as x,et as xt,Ra as y,it as yt,Xr as z,ge as zt};
|