@vellumai/web 0.11.3-staging.2 → 0.11.3-staging.4
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/{access-DWtJQvRI.js → access-RDaLlBt5.js} +1 -1
- package/dist/assets/{account-page-D03pCcnz.js → account-page-JyXn859b.js} +1 -1
- package/dist/assets/{account-shell-DmVQwtZ0.js → account-shell-DuR-x14B.js} +1 -1
- package/dist/assets/{acp-run-detail-panel-COs66Yrd.js → acp-run-detail-panel-BsGRKgJi.js} +1 -1
- package/dist/assets/{activity-steps-panel-CLjBxqNs.js → activity-steps-panel-DGS78a-e.js} +1 -1
- package/dist/assets/{ai-page-D4GbPprS.js → ai-page-84Y9c_q2.js} +1 -1
- package/dist/assets/{app-card-B7C46-7O.js → app-card-Df-Gy7pD.js} +1 -1
- package/dist/assets/{assistant-status-panel-CDUAp33H.js → assistant-status-panel-C92c678g.js} +1 -1
- package/dist/assets/{auth-store-DkOiOQNx.js → auth-store-BJdkkmzu.js} +1 -1
- package/dist/assets/{background-task-detail-panel-xFGqYCUz.js → background-task-detail-panel-Dq1DgR5i.js} +1 -1
- package/dist/assets/billing-page-CAFoZYGH.js +3 -0
- package/dist/assets/{bookmarks-page-DqXq2CVJ.js → bookmarks-page-EeUOpkIO.js} +1 -1
- package/dist/assets/{build-state-B0f3Jn2o.js → build-state-DJaFMxtL.js} +1 -1
- package/dist/assets/{channels-page-route-CbV05RLi.js → channels-page-route-DS9XLjMy.js} +1 -1
- package/dist/assets/chat-markdown-message-C6oOqDdl.js +1 -0
- package/dist/assets/{checkout-page-BxYwG3J8.js → checkout-page-BqIlZAum.js} +1 -1
- package/dist/assets/{command-palette-DSxHNf_m.js → command-palette-D6aRon6x.js} +1 -1
- package/dist/assets/{command-palette-window-page-9lbssBKp.js → command-palette-window-page-B1jt_AiM.js} +1 -1
- package/dist/assets/{composer-settings-MHDtr31Y.js → composer-settings-Du4kV9LG.js} +1 -1
- package/dist/assets/{contacts-page-route-BE3oNfhk.js → contacts-page-route-B4eanbVf.js} +1 -1
- package/dist/assets/{conversation-navigation-DbQqV_fs.js → conversation-navigation-gR_RLe1J.js} +1 -1
- package/dist/assets/{conversation-queries-CMEwcap1.js → conversation-queries-Bx_JApUN.js} +1 -1
- package/dist/assets/{credentials-page-DKfIMfUB.js → credentials-page-BLMs_5u_.js} +1 -1
- package/dist/assets/{csv-preview-DB8q0b_y.js → csv-preview-B0xuZwnc.js} +1 -1
- package/dist/assets/{debug-page-DpWI-aFX.js → debug-page-7plKE23B.js} +2 -2
- package/dist/assets/{deploy-dialogs-BhY-urVH.js → deploy-dialogs-Bjz3OS-8.js} +1 -1
- package/dist/assets/{deploy-store-OFWDAEgC.js → deploy-store-BGcHwvB5.js} +1 -1
- package/dist/assets/{detail-card-Dsnf52vg.js → detail-card-hWrhardR.js} +1 -1
- package/dist/assets/{detail-drawer-AKY7keIJ.js → detail-drawer-s-zfqqMy.js} +1 -1
- package/dist/assets/{detail-panel-stop-button-Cvnn4hYA.js → detail-panel-stop-button-CC6QoK-R.js} +1 -1
- package/dist/assets/{detail-shell-g6Pw4jiP.js → detail-shell-PCaxY4Tf.js} +1 -1
- package/dist/assets/{developer-page-CSFTdMiT.js → developer-page-CV5m0xk-.js} +1 -1
- package/dist/assets/{document-viewer-container-Bousf9D9.js → document-viewer-container-wjJ6ACJv.js} +2 -2
- package/dist/assets/{document-viewer-page-CJuMnNZk.js → document-viewer-page-C8YfZSmS.js} +1 -1
- package/dist/assets/{emails-page-CMoX6WSY.js → emails-page-BqvrSqnK.js} +1 -1
- package/dist/assets/{file-editor-BwWJX7zO.js → file-editor-DOnVeKOG.js} +1 -1
- package/dist/assets/file-markdown-CGC6ZrPT.js +2 -0
- package/dist/assets/{first-run-scope-jh9sT0_v.js → first-run-scope-DKd0ZevK.js} +1 -1
- package/dist/assets/{general-page-Biad-auh.js → general-page-C7kX0xLP.js} +1 -1
- package/dist/assets/{hatching-screen-DtMbgBm6.js → hatching-screen-Dws0nCOf.js} +1 -1
- package/dist/assets/{home-page-route-k81d1Zsb.js → home-page-route-Qs5WbFPD.js} +1 -1
- package/dist/assets/home-tool-permission-card-Do3YeiVC.js +1 -0
- package/dist/assets/{hosting-screen-C-6MdEhq.js → hosting-screen-BJB_azfa.js} +1 -1
- package/dist/assets/{identity-page-route-BEobbSBV.js → identity-page-route-uZNXQbMq.js} +1 -1
- package/dist/assets/{index-BI5VpYa-.js → index-DRExgbkb.js} +1 -1
- package/dist/assets/index-Q1K0w5kB.css +2 -0
- package/dist/assets/{inspect-page-BSPJgPij.js → inspect-page-C1dITgHA.js} +1 -1
- package/dist/assets/{integrations-page-DNYDhZHQ.js → integrations-page-D4EH9FG0.js} +1 -1
- package/dist/assets/{intelligence-layout-CDcBeu8K.js → intelligence-layout-ByKfD_gm.js} +1 -1
- package/dist/assets/{library-detail-page-D5EeSRdZ.js → library-detail-page-BciW_57s.js} +1 -1
- package/dist/assets/{library-page-wPVeE7u1.js → library-page-CMO0VZux.js} +1 -1
- package/dist/assets/{local-runtime-upgrade-DyHUCz7A.js → local-runtime-upgrade-CXKbgZ4c.js} +1 -1
- package/dist/assets/{login-flow-B8CUFAeg.js → login-flow-CN5J4YsY.js} +1 -1
- package/dist/assets/{login-page-BgXMUzWB.js → login-page-5jtwkaF1.js} +1 -1
- package/dist/assets/{logout-page-COe8dRLu.js → logout-page-Bz0x8UvE.js} +1 -1
- package/dist/assets/{logs-layout-BGd_aSZ_.js → logs-layout-B_GC1zBM.js} +1 -1
- package/dist/assets/{memory-page-route-BGEmbUCl.js → memory-page-route-BtL6zJZb.js} +1 -1
- package/dist/assets/{memory-router-playground-page-B4DX4CON.js → memory-router-playground-page-e4uW8QiT.js} +1 -1
- package/dist/assets/{message-files-panel-DTDXhD0C.js → message-files-panel-DxmbSrm8.js} +1 -1
- package/dist/assets/{messages-D2OJUCHs.js → messages-DSdy6Lfi.js} +1 -1
- package/dist/assets/{metric-card-DgbUgyv7.js → metric-card-BSJPacNm.js} +1 -1
- package/dist/assets/{mobile-sidebar-drawer-CRXVtqcP.js → mobile-sidebar-drawer-BGHwfePU.js} +1 -1
- package/dist/assets/{multi-activity-group-Chyfm08f.js → multi-activity-group-D_OVaru-.js} +1 -1
- package/dist/assets/{open-workspace-file-C4HWMBzn.js → open-workspace-file-DViQQLp4.js} +2 -2
- package/dist/assets/{page-shell-CkfnwmIw.js → page-shell-Tpt9AIL2.js} +1 -1
- package/dist/assets/{personality-page-CEbJMhDR.js → personality-page-avdvL3Dx.js} +1 -1
- package/dist/assets/{plans-page-DXCrcLo8.js → plans-page-CdNdqHks.js} +1 -1
- package/dist/assets/{platform-login-notice-CIpebDVw.js → platform-login-notice-BEDBlins.js} +1 -1
- package/dist/assets/{platform-loopback-page-BJf6yE-E.js → platform-loopback-page-DcHVugCF.js} +1 -1
- package/dist/assets/{preview-error-CihmwI1t.js → preview-error-CVMngD78.js} +1 -1
- package/dist/assets/{privacy-page-CxAYEG0r.js → privacy-page-CfJXPReU.js} +1 -1
- package/dist/assets/{privacy-screen-DAzWoGQI.js → privacy-screen-4GElE18b.js} +1 -1
- package/dist/assets/{provider-callback-page--oWycq5i.js → provider-callback-page-rNJpxKm4.js} +1 -1
- package/dist/assets/{provider-signup-page-BaGT8Jl4.js → provider-signup-page-BG-fVW-J.js} +1 -1
- package/dist/assets/{remove-from-device-dialog-C0eaWxwl.js → remove-from-device-dialog-BGqwuQw9.js} +1 -1
- package/dist/assets/{research-onboarding-route-CXimVFK6.js → research-onboarding-route-s_8BLTOQ.js} +1 -1
- package/dist/assets/{retire-confirm-dialog-B1bvTlHS.js → retire-confirm-dialog-Bm7A3sZF.js} +1 -1
- package/dist/assets/{review-terms-screen-BxxGJL-B.js → review-terms-screen-CpWYZlRr.js} +1 -1
- package/dist/assets/routes-DE2XWIds.js +23 -0
- package/dist/assets/{runtime-upgrade-banner--bSmfygH.js → runtime-upgrade-banner-DtzsX2m0.js} +1 -1
- package/dist/assets/{sandbox-bridge-BlniBIsp.js → sandbox-bridge-WZhWtkZd.js} +1 -1
- package/dist/assets/{schedules-page-DCUj-YbP.js → schedules-page-Cfala7Km.js} +1 -1
- package/dist/assets/{select-assistant-screen-C5Cl_pCp.js → select-assistant-screen-BqObBI5Z.js} +1 -1
- package/dist/assets/{settings-divider-BuDc875f.js → settings-divider-Dyvf7Uk6.js} +1 -1
- package/dist/assets/{settings-layout-Clnlm1aB.js → settings-layout-DfPO11SQ.js} +1 -1
- package/dist/assets/{settings-navigation-Cn3KCxOe.js → settings-navigation-C1wEuU56.js} +1 -1
- package/dist/assets/{share-feedback-modal-COUhsUqF.js → share-feedback-modal-Ctgazbnj.js} +1 -1
- package/dist/assets/{sidebar-tree-BXbcoj07.js → sidebar-tree-VXRWtsy4.js} +1 -1
- package/dist/assets/{signup-page-C9ZrCSVo.js → signup-page-CLf-r4oP.js} +1 -1
- package/dist/assets/{site-favicon-B3DMFtr3.js → site-favicon-DfuXzZcN.js} +1 -1
- package/dist/assets/{skill-detail-page-Ckw6_1PG.js → skill-detail-page-ChpWru-e.js} +2 -2
- package/dist/assets/{skill-detail-panel-DdYbYHuj.js → skill-detail-panel-DU0bdJUl.js} +1 -1
- package/dist/assets/{skills-Lf85mR9L.js → skills-B4bfakyU.js} +1 -1
- package/dist/assets/{src-hNk11eS3.js → src-DyqTPMO2.js} +1 -1
- package/dist/assets/{stt-language-picker-modal-B5MO-3gk.js → stt-language-picker-modal-BiWHaqFq.js} +1 -1
- package/dist/assets/{subagent-detail-panel-BKhU7VAv.js → subagent-detail-panel-Gi0UOlsn.js} +1 -1
- package/dist/assets/superpowers-page-nHT_hb33.js +1 -0
- package/dist/assets/{system-events-page-DbcoH4sh.js → system-events-page-Bfpn0HzE.js} +1 -1
- package/dist/assets/{telegram-setup-wizard-C4E0wi1B.js → telegram-setup-wizard-GetgaQy5.js} +1 -1
- package/dist/assets/{text-preview-KOyX3OrO.js → text-preview-CEL0P-WV.js} +1 -1
- package/dist/assets/{theme-stage-page-D4DYc_C8.js → theme-stage-page-CEBFiy-u.js} +1 -1
- package/dist/assets/{tiptap-document-editor-CDIJTTa_.js → tiptap-document-editor-DPkcv0pe.js} +1 -1
- package/dist/assets/{tool-detail-panel-CmbBw4_n.js → tool-detail-panel-84bl2nI3.js} +1 -1
- package/dist/assets/{upgrade-cancel-page-DfjtkvP9.js → upgrade-cancel-page-DNteIqqS.js} +1 -1
- package/dist/assets/{upgrade-success-page-BDWg5oK4.js → upgrade-success-page-CAeO4QtE.js} +1 -1
- package/dist/assets/{use-assistant-identity-details-BAgi4MHa.js → use-assistant-identity-details-DqiKjphK.js} +1 -1
- package/dist/assets/{use-attachment-preview-CB3GsEns.js → use-attachment-preview-B4PALbqs.js} +1 -1
- package/dist/assets/{use-attachment-squares-DPuVHGRC.js → use-attachment-squares-C-9Rz-8O.js} +1 -1
- package/dist/assets/{use-bookmarks-C6IlHWIK.js → use-bookmarks-BWGVUg59.js} +1 -1
- package/dist/assets/{use-checkout-dismiss-refresh-CDwSKr1-.js → use-checkout-dismiss-refresh-BGeYbYii.js} +1 -1
- package/dist/assets/{use-command-palette-sections-DXzS2Tio.js → use-command-palette-sections-D3aj-BzX.js} +1 -1
- package/dist/assets/{use-edge-swipe-back-ZgANxgKE.js → use-edge-swipe-back-BGq52vVr.js} +2 -2
- package/dist/assets/{use-edit-app-BHUYCv4X.js → use-edit-app-u-kyfEFX.js} +1 -1
- package/dist/assets/{use-invite-link-dialog-CdY5FNQa.js → use-invite-link-dialog-Ccf_XNV3.js} +1 -1
- package/dist/assets/{use-is-org-ready-BmOdacs1.js → use-is-org-ready-CQntk0MX.js} +1 -1
- package/dist/assets/{use-onboarding-login-BUaNGE_u.js → use-onboarding-login-Cw_9Ydsv.js} +1 -1
- package/dist/assets/{use-platform-assistant-id-CEMyKEvV.js → use-platform-assistant-id-DMP9urFb.js} +1 -1
- package/dist/assets/{use-platform-gate-CdwOyQ8A.js → use-platform-gate-2lhRAyKS.js} +1 -1
- package/dist/assets/{use-return-to-short-circuit-CTYRB2Ne.js → use-return-to-short-circuit-Dm5PWev2.js} +1 -1
- package/dist/assets/{use-skill-actions-GbdM3IIw.js → use-skill-actions-BopRxJ9x.js} +1 -1
- package/dist/assets/{use-sticky-profiles-LVe9u5gh.js → use-sticky-profiles-5cPu_MUo.js} +1 -1
- package/dist/assets/{use-subagent-card-data-CFKl88ab.js → use-subagent-card-data-VnA5x24X.js} +1 -1
- package/dist/assets/use-transcript-message-by-id-DCOlEJjY.js +1 -0
- package/dist/assets/{use-transcript-messages-vw2Hogaj.js → use-transcript-messages-BEpY7uG4.js} +1 -1
- package/dist/assets/{use-voice-sample-preview-BjIqIVEG.js → use-voice-sample-preview-CzqJYPiZ.js} +1 -1
- package/dist/assets/{viewer-store-DhrkeZmJ.js → viewer-store-CayI6XWh.js} +1 -1
- package/dist/assets/{voice-list-DnqRx15F.js → voice-list-BS2BNjKN.js} +1 -1
- package/dist/assets/{voice-page-CrrYAE9k.js → voice-page-B7t0g-1X.js} +1 -1
- package/dist/assets/{voice-providers-note-ValSs0nz.js → voice-providers-note-Cv7vCsDI.js} +1 -1
- package/dist/assets/{welcome-screen-CiBqE53u.js → welcome-screen-eqR0DNzE.js} +1 -1
- package/dist/assets/{workflow-detail-panel-crM7HRfK.js → workflow-detail-panel-Dlj8i7AM.js} +1 -1
- package/dist/assets/{workspace-page-iAsgehav.js → workspace-page-CAbshSeb.js} +1 -1
- package/dist/index.html +46 -46
- package/package.json +1 -1
- package/dist/assets/billing-page-n2hU_EAj.js +0 -3
- package/dist/assets/chat-markdown-message-WfT4JUja.js +0 -1
- package/dist/assets/file-markdown-CZPyyZhu.js +0 -2
- package/dist/assets/home-tool-permission-card-Bytpm6bE.js +0 -1
- package/dist/assets/index-_S2T-6in.css +0 -2
- package/dist/assets/routes-ZeXUrnzY.js +0 -23
- package/dist/assets/superpowers-page-gPiU1fsq.js +0 -1
- package/dist/assets/use-transcript-message-by-id-cDbEJMB-.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./button-BENY-yx_.js";import{t}from"./jsx-runtime-D3ZM-ToX.js";import{t as n}from"./typography-BeUa5Fd-.js";import"./src-
|
|
1
|
+
import{t as e}from"./button-BENY-yx_.js";import{t}from"./jsx-runtime-D3ZM-ToX.js";import{t as n}from"./typography-BeUa5Fd-.js";import"./src-DyqTPMO2.js";import{t as r}from"./x-338EsJDP.js";var i=t();function a({Glyph:t,icon:a,title:o,titleNode:s,headerTrailing:c,headerActions:l,closeLabel:u=`Close panel`,closeVariant:d=`ghost`,onClose:f,children:p,footer:m}){return(0,i.jsxs)(`div`,{className:`flex h-full flex-col overflow-hidden rounded-xl bg-[var(--surface-lift)]`,children:[(0,i.jsxs)(`div`,{className:`flex shrink-0 items-center gap-3 border-b border-[var(--border-hover)] px-5 py-4`,children:[a??(t?(0,i.jsx)(t,{className:`h-5 w-5 shrink-0 text-[var(--content-secondary)]`,"aria-hidden":!0}):null),s??(0,i.jsx)(n,{variant:`title-medium`,className:`min-w-0 shrink truncate py-0.5 leading-snug text-[var(--content-default)]`,children:o}),c,(0,i.jsx)(`span`,{className:`flex-1`}),l,(0,i.jsx)(e,{variant:d===`outlined`?`outlined`:`ghost`,iconOnly:(0,i.jsx)(r,{}),onClick:f,"aria-label":u,tooltip:`Close`,className:`shrink-0${d===`outlined`?` rounded-lg`:``}`})]}),(0,i.jsx)(`div`,{className:`flex-1 overflow-y-auto px-5 py-5`,children:p}),m&&(0,i.jsx)(`div`,{className:`shrink-0 border-t border-[var(--border-base)] px-5 py-4`,children:m})]})}export{a as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{a as t,m as n,o as r,t as i}from"./capture-error-Cw5vs0Ef.js";import{t as a}from"./react-BFJW0bSv.js";import{t as o}from"./button-BENY-yx_.js";import{h as s,n as c}from"./chunk-5KNZJZUH-BUqIilZr.js";import{n as l}from"./QueryClientProvider-CMu7CkQU.js";import{t as u}from"./useQuery-Bz-fbQ-m.js";import{t as d}from"./jsx-runtime-D3ZM-ToX.js";import{t as f}from"./cn-DFWryB3N.js";import{t as p}from"./createLucideIcon-C1mdGPB9.js";import{t as m}from"./bug-CDEs1Scu.js";import{t as h}from"./circle-x-B5rnAOe1.js";import"./src-hNk11eS3.js";import{t as ee}from"./info-CXkwGlN_.js";import{t as g}from"./loader-circle-DOtGXcds.js";import{t as te}from"./search-D2xMZu1P.js";import{t as ne}from"./triangle-alert-CB4pJgCL.js";import{t as _}from"./tag-DeMzQvCo.js";import{t as v}from"./toggle-C-v4x7_A.js";import{n as y}from"./toast-BpuLSxyt.js";import{t as re}from"./confirm-dialog-zx8L9sUi.js";import{t as ie}from"./select-B8-i-CZ4.js";import{N as b,_ as x}from"./local-mode-BfEgOekp.js";import{tt as S}from"./auth-store-DkOiOQNx.js";import{t as C}from"./client.gen-C854VG5x.js";import{c as w,o as T}from"./api-JA_IDAQk.js";import{a as ae,l as E,o as oe}from"./feature-flag-catalog-BOqgTYGM.js";import{t as D}from"./client-feature-flag-store-C8ieIAKe.js";import{d as se}from"./routes-iipg2wkc.js";import{r as O}from"./use-is-org-ready-BmOdacs1.js";import{Yt as k,cn as ce,f as A,nt as j,sn as M,tt as N,u as P}from"./react-query.gen-DxjuNs-5.js";import{O as F,v as I}from"./react-query.gen-DKb3mEwJ.js";import{t as L}from"./assistant-feature-flag-store-qYfAdlBG.js";import{t as R}from"./misc-Z0jXGGeY.js";import{t as z}from"./use-active-assistant-id-BvHP5Ojg.js";import{t as B}from"./detail-card-Dsnf52vg.js";import{t as V}from"./environment-store-CFfbiF-5.js";import{n as H}from"./assistant-status-panel-CDUAp33H.js";var U=p(`flame`,[[`path`,{d:`M12 3q1 4 4 6.5t3 5.5a1 1 0 0 1-14 0 5 5 0 0 1 1-3 1 1 0 0 0 5 0c0-2-1.5-3-1.5-5q0-2 2.5-4`,key:`1slcih`}]]),W=p(`timer`,[[`line`,{x1:`10`,x2:`14`,y1:`2`,y2:`2`,key:`14vaq8`}],[`line`,{x1:`12`,x2:`15`,y1:`14`,y2:`11`,key:`17fdiu`}],[`circle`,{cx:`12`,cy:`14`,r:`8`,key:`1e1u0o`}]]),G=e(a(),1),K=d();function le({memoryEnabled:e,retrospectiveEnabled:t}){let n=z(),r=l(),a=k({onSuccess:e=>{A(r,{path:{assistant_id:n}},e)}}),o=async e=>{try{await a.mutateAsync({path:{assistant_id:n},body:{memory:{retrospective:{enabled:e}}}}),y.success(e?`Memory retrospectives enabled.`:`Memory retrospectives paused.`)}catch(e){i(e,{context:`settings-memory-retrospective-toggle`}),y.error(`Failed to update memory retrospectives.`)}};return(0,K.jsxs)(`div`,{className:`flex flex-row items-start justify-between gap-4 border-t border-[var(--border-subtle)] pt-4`,children:[(0,K.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-2`,children:[(0,K.jsx)(`h3`,{className:`text-body-medium-default text-[var(--content-emphasised)]`,children:`Retrospectives`}),(0,K.jsx)(`p`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:`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.`})]}),(0,K.jsx)(v,{checked:t,onChange:e=>void o(e),"aria-label":`Enable memory retrospectives`,disabled:!e||a.isPending})]})}function ue({memoryEnabled:e}){let t=z(),n=l(),{data:r}=u({...N({path:{assistant_id:t}}),staleTime:3e4}),a=e=>{j(n,{path:{assistant_id:t}},t=>t&&{...t,status:e?`running`:`not_running`})},o=M({onSuccess:()=>a(!0)}),s=ce({onSuccess:()=>a(!1)}),c=async e=>{try{e?(await o.mutateAsync({path:{assistant_id:t}}),y.success(`Background worker started.`)):(await s.mutateAsync({path:{assistant_id:t}}),y.success(`Background worker stopped.`))}catch(e){i(e,{context:`settings-memory-worker-toggle`}),y.error(`Failed to update background worker.`)}};if(!r)return null;let d=o.isPending||s.isPending;return(0,K.jsxs)(`div`,{className:`flex flex-row items-start justify-between gap-4 border-t border-[var(--border-subtle)] pt-4`,children:[(0,K.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-2`,children:[(0,K.jsx)(`h3`,{className:`text-body-medium-default text-[var(--content-emphasised)]`,children:`Background worker`}),(0,K.jsx)(`p`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:`Run memory consolidation in a dedicated background process. It starts automatically; stop it to pause background memory processing until the next restart.`})]}),(0,K.jsx)(v,{checked:r.status===`running`,onChange:e=>void c(e),"aria-label":`Enable background memory worker`,disabled:!e||d})]})}function de(){let{healthz:e}=H(),t=z(),n=l(),r=e?.capabilities?.memoryOptOut===!0,{data:a}=u({...P({path:{assistant_id:t}}),staleTime:3e4,enabled:r}),o=k({onSuccess:e=>{A(n,{path:{assistant_id:t}},e)}}),s=a?.memory?.enabled!==!1,c=a?.memory?.retrospective?.enabled!==!1,d=async e=>{try{await o.mutateAsync({path:{assistant_id:t},body:{memory:{enabled:e}}}),y.success(e?`Memory enabled.`:`Memory disabled.`)}catch(e){i(e,{context:`settings-memory-toggle`}),y.error(`Failed to update memory setting.`)}};return r?(0,K.jsxs)(B,{title:`Memory`,subtitle:`Let your assistant remember information from past conversations. Turning this off also pauses memory consolidation.`,accessory:(0,K.jsx)(v,{checked:s,onChange:e=>void d(e),"aria-label":`Enable memory`,disabled:o.isPending}),compactAccessory:!0,children:[(0,K.jsx)(le,{memoryEnabled:s,retrospectiveEnabled:c}),(0,K.jsx)(ue,{memoryEnabled:s})]}):null}function fe(){let e=l(),[t,n]=(0,G.useState)(!1),[r,i]=(0,G.useState)(!1),a=O(),s=z(),{data:c,isLoading:d}=u({...F({path:{id:s}}),enabled:a}),{data:f,isLoading:p}=u({...I({query:{hosting:`all`}}),enabled:a}),m=d||p,h=f?.results??[];return(0,K.jsxs)(`div`,{className:`space-y-6`,children:[(0,K.jsx)(pe,{assistant:c??null,loading:m}),(0,K.jsx)(me,{assistants:h,activeAssistantId:s,loading:m}),(0,K.jsxs)(B,{title:`Hatch New Assistant`,subtitle:`Create a new assistant instance.`,children:[(0,K.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,K.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`Provision a new assistant. This may take a moment.`}),(0,K.jsx)(o,{variant:`outlined`,leftIcon:t?(0,K.jsx)(g,{className:`animate-spin`}):void 0,onClick:()=>i(!0),disabled:t,className:`shrink-0`,children:`Hatch`})]}),(0,K.jsx)(re,{open:r,title:`Hatch New Assistant`,message:`Are you sure you want to create a new assistant? This will provision new infrastructure.`,confirmLabel:`Hatch`,onConfirm:async()=>{i(!1),n(!0);try{let t=await T(void 0,`create`);if(t.ok){if(x())try{let e=await w();e.ok&&await b(e.data,S.getState().currentOrganizationId??void 0)}catch{}y.success(t.status===201?`New assistant hatched successfully.`:`You already have an assistant. Nothing new was created.`),e.invalidateQueries({queryKey:[{_id:`assistantsRetrieve`}]}),e.invalidateQueries({queryKey:I({query:{hosting:`all`}}).queryKey})}else{let e=typeof t.error?.detail==`string`?t.error.detail:`Failed to hatch assistant.`;y.error(e)}}catch{y.error(`Failed to hatch assistant.`)}finally{n(!1)}},onCancel:()=>i(!1)})]})]})}function pe({assistant:e,loading:t}){return t?(0,K.jsx)(B,{title:`Assistant Info`,children:(0,K.jsxs)(`div`,{className:`flex items-center gap-2 text-body-medium-lighter text-[var(--content-tertiary)]`,children:[(0,K.jsx)(g,{className:`h-4 w-4 animate-spin`}),`Loading assistant info...`]})}):e?(0,K.jsx)(B,{title:`Assistant Info`,subtitle:`Current assistant details.`,children:(0,K.jsxs)(`div`,{className:`grid grid-cols-[140px_minmax(0,1fr)] gap-y-3`,children:[(0,K.jsx)(q,{children:`Name`}),(0,K.jsx)(J,{children:e.name??`Unnamed`}),(0,K.jsx)(q,{children:`Status`}),(0,K.jsx)(`div`,{children:(0,K.jsx)(_,{tone:e.status===`active`?`positive`:`neutral`,children:e.status})}),(0,K.jsx)(q,{children:`Assistant ID`}),(0,K.jsx)(`span`,{className:`break-all font-mono text-body-small-default text-[var(--content-tertiary)]`,children:e.id}),e.machine_id&&(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(q,{children:`Machine ID`}),(0,K.jsx)(`span`,{className:`break-all font-mono text-body-small-default text-[var(--content-tertiary)]`,children:e.machine_id})]}),(0,K.jsx)(q,{children:`Created`}),(0,K.jsx)(J,{children:new Date(e.created).toLocaleDateString()}),(0,K.jsx)(q,{children:`Last Modified`}),(0,K.jsx)(J,{children:new Date(e.modified).toLocaleDateString()}),e.current_release_version&&(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(q,{children:`Version`}),(0,K.jsx)(J,{children:e.current_release_version})]})]})}):(0,K.jsx)(B,{title:`Assistant Info`,children:(0,K.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`No assistant found. Hatch an assistant to get started.`})})}function me({assistants:e,activeAssistantId:t,loading:n}){return n||e.length===0?null:(0,K.jsx)(B,{title:`All Assistants`,subtitle:`${e.length} assistant${e.length===1?``:`s`} found.`,children:(0,K.jsx)(`div`,{className:`max-h-[300px] space-y-2 overflow-y-auto`,children:e.map(e=>{let n=e.id===t;return(0,K.jsx)(`div`,{className:`flex items-center justify-between gap-4 rounded-lg border px-4 py-3 ${n?`border-[var(--border-focus)] bg-[var(--surface-lift)]`:`border-[var(--border-base)] bg-[var(--surface-default)]`}`,children:(0,K.jsxs)(`div`,{className:`min-w-0`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(`span`,{className:`truncate text-body-medium-default text-[var(--content-default)]`,children:e.name||`Unnamed`}),(0,K.jsx)(_,{tone:e.status===`active`?`positive`:`neutral`,children:e.status}),n&&(0,K.jsx)(_,{tone:`warning`,children:`Current`})]}),(0,K.jsx)(`span`,{className:`font-mono text-body-small-default text-[var(--content-tertiary)]`,children:e.id})]})},e.id)})})})}function q({children:e}){return(0,K.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:e})}function J({children:e}){return(0,K.jsx)(`span`,{className:`text-body-medium-lighter text-[var(--content-default)]`,children:e})}function he(){let e=V.use.emailRootDomain(),t=V.use.isNonProduction(),n=V.use.setEnvironment();return(0,K.jsx)(B,{title:`Environment`,subtitle:`Environment configuration overrides for this session.`,children:(0,K.jsxs)(`div`,{className:`space-y-2`,children:[(0,K.jsxs)(`div`,{className:`flex items-start gap-3 py-3`,children:[(0,K.jsx)(`div`,{className:`shrink-0 pt-0.5`,children:(0,K.jsx)(v,{checked:t,onChange:e=>n({isNonProduction:e}),"aria-label":`Non-Production is ${t?`on`:`off`}`})}),(0,K.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-0.5`,children:[(0,K.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-default)]`,children:`Non-Production`}),(0,K.jsx)(`span`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Indicates a non-production environment. Enables dev-only UI surfaces and diagnostics.`})]})]}),(0,K.jsxs)(`div`,{className:`flex items-start gap-3 py-3`,children:[(0,K.jsx)(`div`,{className:`shrink-0 pt-0.5`,children:(0,K.jsx)(_,{tone:`neutral`,children:e})}),(0,K.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-0.5`,children:[(0,K.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-default)]`,children:`Email Root Domain`}),(0,K.jsx)(`span`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Root domain used for assistant email addresses (e.g. vellum.me).`})]})]})]})})}async function ge(){let{data:e,response:t}=await C.get({url:`/v1/feature-flags/`,throwOnError:!1});return t?.ok?e?.flags??[]:[]}var Y={client:`warning`,assistant:`positive`};function _e(){let e=z(),{data:t}=u({queryKey:[`feature-flag-definitions`],queryFn:ge,enabled:O(),staleTime:300*1e3}),n=(0,G.useMemo)(()=>{let e=new Map;if(!t)return e;for(let n of t)n.type===`string`&&n.values?.length&&e.set(n.key,n.values);return e},[t]),[r,i]=(0,G.useState)(``),a=D(),o=L(),s=(0,G.useMemo)(()=>{let e=[];for(let t of oe){let r=ae(t.key);if(typeof t.defaultEnabled==`boolean`){let n=a[r],i=o[r],s=t.scope===`both`?n===!0||i===!0:t.scope===`assistant`?i:n;if(typeof s!=`boolean`)continue;e.push({kind:`boolean`,storeKey:r,scope:t.scope,label:t.label,description:t.description,value:s,defaultValue:t.defaultEnabled})}else if(typeof t.defaultEnabled==`string`){let i=a.stringFlags?.[r],s=o.stringFlags?.[r],c=t.scope===`assistant`?s??t.defaultEnabled:i??t.defaultEnabled;e.push({kind:`string`,storeKey:r,scope:t.scope,label:t.label,description:t.description,value:c,defaultValue:t.defaultEnabled,values:n.get(t.key)??t.values})}}return e.sort((e,t)=>e.label.localeCompare(t.label,void 0,{sensitivity:`base`}))},[a,o,n]),c=(0,G.useMemo)(()=>{if(!r.trim())return s;let e=r.trim().toLowerCase();return s.filter(t=>t.label.toLowerCase().includes(e)||t.description.toLowerCase().includes(e)||t.storeKey.toLowerCase().includes(e)||t.scope.includes(e)||t.scope===`both`&&(`client`.includes(e)||`assistant`.includes(e)))},[s,r]);return(0,K.jsx)(B,{title:`Feature Flags`,subtitle:`Active feature flags evaluated for the current session.`,children:(0,K.jsxs)(`div`,{className:`space-y-4`,children:[(0,K.jsxs)(`div`,{className:`relative`,children:[(0,K.jsx)(te,{className:`absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-[var(--content-tertiary)]`}),(0,K.jsx)(`input`,{type:`text`,placeholder:`Search flags...`,value:r,onChange:e=>i(e.target.value),className:`w-full rounded-lg border border-[var(--border-base)] bg-[var(--surface-default)] py-2 pl-9 pr-3 text-body-medium-default text-[var(--content-default)] placeholder:text-[var(--content-tertiary)] focus:border-[var(--border-focus)] focus:outline-none`})]}),c.length===0&&(0,K.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`No matching flags.`}),c.length>0&&(0,K.jsx)(`div`,{className:`max-h-[500px] space-y-2 overflow-y-auto`,children:c.map(t=>(0,K.jsx)(ye,{flag:t,assistantId:e},t.storeKey))})]})})}function X({scope:e}){return e===`both`?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(_,{tone:Y.client,children:`client`}),(0,K.jsx)(_,{tone:Y.assistant,children:`assistant`})]}):(0,K.jsx)(_,{tone:Y[e],children:e})}function ve({flag:e,assistantId:t}){let n=D.use.setFlag(),r=L.use.setFlag();return(0,K.jsxs)(`div`,{className:`flex items-start gap-3 py-3`,children:[(0,K.jsx)(`div`,{className:`shrink-0 pt-0.5`,children:(0,K.jsx)(v,{checked:e.value,onChange:i=>{E(e.scope,`client`)&&n(e.storeKey,i),E(e.scope,`assistant`)&&r(e.storeKey,i,t)},"aria-label":`${e.label} is ${e.value?`on`:`off`}`})}),(0,K.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-0.5`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-default)]`,children:e.label}),(0,K.jsx)(X,{scope:e.scope})]}),(0,K.jsx)(`span`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:e.description}),(0,K.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,K.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Default:`}),(0,K.jsx)(_,{tone:`neutral`,children:e.defaultValue?`On`:`Off`})]})]})]})}function Z({flag:e,assistantId:t}){let n=D.use.setStringFlag(),r=L.use.setStringFlag(),[i,a]=(0,G.useState)(e.value);(0,G.useEffect)(()=>{a(e.value)},[e.value]);let o=i=>{i!==e.value&&(E(e.scope,`client`)&&n(e.storeKey,i),E(e.scope,`assistant`)&&r(e.storeKey,i,t))},s=i!==e.value,c=e.values&&e.values.length>0?e.values:null,l=s&&c!=null&&!c.includes(i),u=()=>{l||o(i)},d=e=>{e.key===`Enter`&&e.currentTarget.blur()},p=c!=null&&c.includes(e.value);return(0,K.jsx)(`div`,{className:`flex items-start gap-3 py-3`,children:(0,K.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-1.5`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-default)]`,children:e.label}),(0,K.jsx)(X,{scope:e.scope})]}),(0,K.jsx)(`span`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:e.description}),p?(0,K.jsx)(ie,{value:e.value,onChange:e=>{a(e),o(e)},options:c.map(e=>({value:e,label:e})),className:`w-48`,"aria-label":`${e.label} value`}):(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(`input`,{type:`text`,value:i,onChange:e=>a(e.target.value),onBlur:u,onKeyDown:d,className:f(`w-full rounded-lg border bg-[var(--surface-default)] px-3 py-1.5 text-body-small-default text-[var(--content-default)] placeholder:text-[var(--content-tertiary)] focus:outline-none`,l?`border-[var(--system-negative-strong)]`:`border-[var(--border-base)] focus:border-[var(--border-focus)]`),placeholder:e.defaultValue||`Enter value...`}),l&&(0,K.jsxs)(`span`,{className:`block text-body-small-default text-[var(--system-negative-strong)]`,children:[`Expected one of: `,c.join(`, `)]})]}),(0,K.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,K.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Default:`}),(0,K.jsx)(_,{tone:`neutral`,children:e.defaultValue||`(empty)`})]})]})})}function ye({flag:e,assistantId:t}){return e.kind===`string`?(0,K.jsx)(Z,{flag:e,assistantId:t}):(0,K.jsx)(ve,{flag:e,assistantId:t})}function be(){let e=(0,G.useCallback)(()=>{t(Error(`[Dev Settings] Test error event`)),y.success(`Sentry error event sent.`)},[]),i=(0,G.useCallback)(()=>{r(`[Dev Settings] Test warning event`,`warning`),y.success(`Sentry warning event sent.`)},[]),a=(0,G.useCallback)(()=>{r(`[Dev Settings] Test info event`,`info`),y.success(`Sentry info event sent.`)},[]),o=(0,G.useCallback)(()=>{r(`[Dev Settings] Test fatal event`,`fatal`),y.success(`Sentry fatal event sent.`)},[]),s=(0,G.useCallback)(()=>{n({name:`[Dev Settings] Test transaction`,op:`test.transaction`,forceTransaction:!0}).end(),y.success(`Sentry performance transaction sent.`)},[]);return(0,K.jsx)(B,{title:`Sentry Testing`,subtitle:`Fire test events to verify Sentry integration is working.`,children:(0,K.jsxs)(`div`,{className:`space-y-3`,children:[(0,K.jsx)(Q,{icon:(0,K.jsx)(U,{className:`h-4 w-4 text-[var(--system-negative-strong)]`}),label:`Fatal Event`,description:`Send a fatal-level event to Sentry.`,onClick:o}),(0,K.jsx)(Q,{icon:(0,K.jsx)(h,{className:`h-4 w-4 text-[var(--system-negative-default)]`}),label:`Error Event`,description:`Capture a test Error exception.`,onClick:e}),(0,K.jsx)(Q,{icon:(0,K.jsx)(ne,{className:`h-4 w-4 text-[var(--system-warning-default)]`}),label:`Warning Event`,description:`Send a warning-level message.`,onClick:i}),(0,K.jsx)(Q,{icon:(0,K.jsx)(ee,{className:`h-4 w-4 text-[var(--content-tertiary)]`}),label:`Info Event`,description:`Send an info-level message.`,onClick:a}),(0,K.jsx)(Q,{icon:(0,K.jsx)(W,{className:`h-4 w-4 text-[var(--system-positive-default)]`}),label:`Performance Transaction`,description:`Start and end a test transaction span.`,onClick:s})]})})}function Q({icon:e,label:t,description:n,onClick:r}){return(0,K.jsxs)(`div`,{className:`flex items-center justify-between gap-4 rounded-lg border border-[var(--border-base)] px-4 py-3`,children:[(0,K.jsxs)(`div`,{className:`flex min-w-0 items-center gap-3`,children:[(0,K.jsx)(`div`,{className:`shrink-0`,children:e}),(0,K.jsxs)(`div`,{className:`min-w-0`,children:[(0,K.jsx)(`p`,{className:`text-body-medium-default text-[var(--content-default)]`,children:t}),(0,K.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:n})]})]}),(0,K.jsxs)(o,{variant:`outlined`,size:`compact`,onClick:r,children:[(0,K.jsx)(m,{className:`h-4 w-4`}),`Send`]})]})}var $=[{id:`feature-flags`,label:`Feature Flags`},{id:`lifecycle`,label:`Assistant Lifecycle`},{id:`sentry`,label:`Sentry Testing`},{id:`memory`,label:`Memory`}];function xe(){let[e,t]=s(),n=L.use.settingsDeveloperNav(),r=L.use.hasHydrated(),i=(0,G.useMemo)(()=>{let t=e.get(`tab`);return $.find(e=>e.id===t)?.id??`feature-flags`},[e]);if(r&&!n)return(0,K.jsx)(c,{replace:!0,to:se.settings.general});let a=n=>{let r=new URLSearchParams(e.toString());n===`feature-flags`?r.delete(`tab`):r.set(`tab`,n),t(r,{replace:!0})};return(0,K.jsxs)(`div`,{"data-slot":`developer-page`,className:`flex min-h-0 flex-1 flex-col`,children:[(0,K.jsx)(`div`,{className:`flex shrink-0 items-center border-b border-[var(--border-base)]`,children:(0,K.jsx)(`div`,{role:`tablist`,"aria-label":`Developer sections`,className:`flex items-center gap-1`,children:$.map(e=>{let t=e.id===i;return(0,K.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":t,"aria-controls":`developer-tab-panel-${e.id}`,id:`developer-tab-${e.id}`,onClick:()=>a(e.id),className:R(`relative -mb-px cursor-pointer border-b-2 px-4 py-2 text-body-medium-default transition-colors`,t?`border-[var(--system-positive-strong)] text-[var(--system-positive-strong)]`:`border-transparent text-[var(--content-tertiary)] hover:text-[var(--content-default)] dark:text-[var(--content-disabled)] dark:hover:text-[var(--content-default)]`),children:e.label},e.id)})})}),(0,K.jsxs)(`div`,{id:`developer-tab-panel-${i}`,role:`tabpanel`,"aria-labelledby":`developer-tab-${i}`,className:`flex min-h-0 flex-1 flex-col pt-6`,children:[i===`feature-flags`&&(0,K.jsxs)(`div`,{className:`space-y-6`,children:[(0,K.jsx)(_e,{}),(0,K.jsx)(he,{})]}),i===`lifecycle`&&(0,K.jsx)(fe,{}),i===`sentry`&&(0,K.jsx)(be,{}),i===`memory`&&(0,K.jsx)(`div`,{className:`space-y-4`,children:(0,K.jsx)(de,{})})]})]})}export{xe as DeveloperPage};
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{a as t,m as n,o as r,t as i}from"./capture-error-Cw5vs0Ef.js";import{t as a}from"./react-BFJW0bSv.js";import{t as o}from"./button-BENY-yx_.js";import{h as s,n as c}from"./chunk-5KNZJZUH-BUqIilZr.js";import{n as l}from"./QueryClientProvider-CMu7CkQU.js";import{t as u}from"./useQuery-Bz-fbQ-m.js";import{t as d}from"./jsx-runtime-D3ZM-ToX.js";import{t as f}from"./cn-DFWryB3N.js";import{t as p}from"./createLucideIcon-C1mdGPB9.js";import{t as m}from"./bug-CDEs1Scu.js";import{t as h}from"./circle-x-B5rnAOe1.js";import"./src-DyqTPMO2.js";import{t as ee}from"./info-CXkwGlN_.js";import{t as g}from"./loader-circle-DOtGXcds.js";import{t as te}from"./search-D2xMZu1P.js";import{t as ne}from"./triangle-alert-CB4pJgCL.js";import{t as _}from"./tag-DeMzQvCo.js";import{t as v}from"./toggle-C-v4x7_A.js";import{n as y}from"./toast-BpuLSxyt.js";import{t as re}from"./confirm-dialog-zx8L9sUi.js";import{t as ie}from"./select-B8-i-CZ4.js";import{N as b,_ as x}from"./local-mode-BfEgOekp.js";import{tt as S}from"./auth-store-BJdkkmzu.js";import{t as C}from"./client.gen-C854VG5x.js";import{c as w,o as T}from"./api-JA_IDAQk.js";import{a as ae,l as E,o as oe}from"./feature-flag-catalog-BOqgTYGM.js";import{t as D}from"./client-feature-flag-store-C8ieIAKe.js";import{d as se}from"./routes-iipg2wkc.js";import{r as O}from"./use-is-org-ready-CQntk0MX.js";import{Yt as k,cn as ce,f as A,nt as j,sn as M,tt as N,u as P}from"./react-query.gen-DxjuNs-5.js";import{O as F,v as I}from"./react-query.gen-DKb3mEwJ.js";import{t as L}from"./assistant-feature-flag-store-qYfAdlBG.js";import{t as R}from"./misc-Z0jXGGeY.js";import{t as z}from"./use-active-assistant-id-BvHP5Ojg.js";import{t as B}from"./detail-card-hWrhardR.js";import{t as V}from"./environment-store-CFfbiF-5.js";import{n as H}from"./assistant-status-panel-C92c678g.js";var U=p(`flame`,[[`path`,{d:`M12 3q1 4 4 6.5t3 5.5a1 1 0 0 1-14 0 5 5 0 0 1 1-3 1 1 0 0 0 5 0c0-2-1.5-3-1.5-5q0-2 2.5-4`,key:`1slcih`}]]),W=p(`timer`,[[`line`,{x1:`10`,x2:`14`,y1:`2`,y2:`2`,key:`14vaq8`}],[`line`,{x1:`12`,x2:`15`,y1:`14`,y2:`11`,key:`17fdiu`}],[`circle`,{cx:`12`,cy:`14`,r:`8`,key:`1e1u0o`}]]),G=e(a(),1),K=d();function le({memoryEnabled:e,retrospectiveEnabled:t}){let n=z(),r=l(),a=k({onSuccess:e=>{A(r,{path:{assistant_id:n}},e)}}),o=async e=>{try{await a.mutateAsync({path:{assistant_id:n},body:{memory:{retrospective:{enabled:e}}}}),y.success(e?`Memory retrospectives enabled.`:`Memory retrospectives paused.`)}catch(e){i(e,{context:`settings-memory-retrospective-toggle`}),y.error(`Failed to update memory retrospectives.`)}};return(0,K.jsxs)(`div`,{className:`flex flex-row items-start justify-between gap-4 border-t border-[var(--border-subtle)] pt-4`,children:[(0,K.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-2`,children:[(0,K.jsx)(`h3`,{className:`text-body-medium-default text-[var(--content-emphasised)]`,children:`Retrospectives`}),(0,K.jsx)(`p`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:`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.`})]}),(0,K.jsx)(v,{checked:t,onChange:e=>void o(e),"aria-label":`Enable memory retrospectives`,disabled:!e||a.isPending})]})}function ue({memoryEnabled:e}){let t=z(),n=l(),{data:r}=u({...N({path:{assistant_id:t}}),staleTime:3e4}),a=e=>{j(n,{path:{assistant_id:t}},t=>t&&{...t,status:e?`running`:`not_running`})},o=M({onSuccess:()=>a(!0)}),s=ce({onSuccess:()=>a(!1)}),c=async e=>{try{e?(await o.mutateAsync({path:{assistant_id:t}}),y.success(`Background worker started.`)):(await s.mutateAsync({path:{assistant_id:t}}),y.success(`Background worker stopped.`))}catch(e){i(e,{context:`settings-memory-worker-toggle`}),y.error(`Failed to update background worker.`)}};if(!r)return null;let d=o.isPending||s.isPending;return(0,K.jsxs)(`div`,{className:`flex flex-row items-start justify-between gap-4 border-t border-[var(--border-subtle)] pt-4`,children:[(0,K.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-2`,children:[(0,K.jsx)(`h3`,{className:`text-body-medium-default text-[var(--content-emphasised)]`,children:`Background worker`}),(0,K.jsx)(`p`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:`Run memory consolidation in a dedicated background process. It starts automatically; stop it to pause background memory processing until the next restart.`})]}),(0,K.jsx)(v,{checked:r.status===`running`,onChange:e=>void c(e),"aria-label":`Enable background memory worker`,disabled:!e||d})]})}function de(){let{healthz:e}=H(),t=z(),n=l(),r=e?.capabilities?.memoryOptOut===!0,{data:a}=u({...P({path:{assistant_id:t}}),staleTime:3e4,enabled:r}),o=k({onSuccess:e=>{A(n,{path:{assistant_id:t}},e)}}),s=a?.memory?.enabled!==!1,c=a?.memory?.retrospective?.enabled!==!1,d=async e=>{try{await o.mutateAsync({path:{assistant_id:t},body:{memory:{enabled:e}}}),y.success(e?`Memory enabled.`:`Memory disabled.`)}catch(e){i(e,{context:`settings-memory-toggle`}),y.error(`Failed to update memory setting.`)}};return r?(0,K.jsxs)(B,{title:`Memory`,subtitle:`Let your assistant remember information from past conversations. Turning this off also pauses memory consolidation.`,accessory:(0,K.jsx)(v,{checked:s,onChange:e=>void d(e),"aria-label":`Enable memory`,disabled:o.isPending}),compactAccessory:!0,children:[(0,K.jsx)(le,{memoryEnabled:s,retrospectiveEnabled:c}),(0,K.jsx)(ue,{memoryEnabled:s})]}):null}function fe(){let e=l(),[t,n]=(0,G.useState)(!1),[r,i]=(0,G.useState)(!1),a=O(),s=z(),{data:c,isLoading:d}=u({...F({path:{id:s}}),enabled:a}),{data:f,isLoading:p}=u({...I({query:{hosting:`all`}}),enabled:a}),m=d||p,h=f?.results??[];return(0,K.jsxs)(`div`,{className:`space-y-6`,children:[(0,K.jsx)(pe,{assistant:c??null,loading:m}),(0,K.jsx)(me,{assistants:h,activeAssistantId:s,loading:m}),(0,K.jsxs)(B,{title:`Hatch New Assistant`,subtitle:`Create a new assistant instance.`,children:[(0,K.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,K.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`Provision a new assistant. This may take a moment.`}),(0,K.jsx)(o,{variant:`outlined`,leftIcon:t?(0,K.jsx)(g,{className:`animate-spin`}):void 0,onClick:()=>i(!0),disabled:t,className:`shrink-0`,children:`Hatch`})]}),(0,K.jsx)(re,{open:r,title:`Hatch New Assistant`,message:`Are you sure you want to create a new assistant? This will provision new infrastructure.`,confirmLabel:`Hatch`,onConfirm:async()=>{i(!1),n(!0);try{let t=await T(void 0,`create`);if(t.ok){if(x())try{let e=await w();e.ok&&await b(e.data,S.getState().currentOrganizationId??void 0)}catch{}y.success(t.status===201?`New assistant hatched successfully.`:`You already have an assistant. Nothing new was created.`),e.invalidateQueries({queryKey:[{_id:`assistantsRetrieve`}]}),e.invalidateQueries({queryKey:I({query:{hosting:`all`}}).queryKey})}else{let e=typeof t.error?.detail==`string`?t.error.detail:`Failed to hatch assistant.`;y.error(e)}}catch{y.error(`Failed to hatch assistant.`)}finally{n(!1)}},onCancel:()=>i(!1)})]})]})}function pe({assistant:e,loading:t}){return t?(0,K.jsx)(B,{title:`Assistant Info`,children:(0,K.jsxs)(`div`,{className:`flex items-center gap-2 text-body-medium-lighter text-[var(--content-tertiary)]`,children:[(0,K.jsx)(g,{className:`h-4 w-4 animate-spin`}),`Loading assistant info...`]})}):e?(0,K.jsx)(B,{title:`Assistant Info`,subtitle:`Current assistant details.`,children:(0,K.jsxs)(`div`,{className:`grid grid-cols-[140px_minmax(0,1fr)] gap-y-3`,children:[(0,K.jsx)(q,{children:`Name`}),(0,K.jsx)(J,{children:e.name??`Unnamed`}),(0,K.jsx)(q,{children:`Status`}),(0,K.jsx)(`div`,{children:(0,K.jsx)(_,{tone:e.status===`active`?`positive`:`neutral`,children:e.status})}),(0,K.jsx)(q,{children:`Assistant ID`}),(0,K.jsx)(`span`,{className:`break-all font-mono text-body-small-default text-[var(--content-tertiary)]`,children:e.id}),e.machine_id&&(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(q,{children:`Machine ID`}),(0,K.jsx)(`span`,{className:`break-all font-mono text-body-small-default text-[var(--content-tertiary)]`,children:e.machine_id})]}),(0,K.jsx)(q,{children:`Created`}),(0,K.jsx)(J,{children:new Date(e.created).toLocaleDateString()}),(0,K.jsx)(q,{children:`Last Modified`}),(0,K.jsx)(J,{children:new Date(e.modified).toLocaleDateString()}),e.current_release_version&&(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(q,{children:`Version`}),(0,K.jsx)(J,{children:e.current_release_version})]})]})}):(0,K.jsx)(B,{title:`Assistant Info`,children:(0,K.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`No assistant found. Hatch an assistant to get started.`})})}function me({assistants:e,activeAssistantId:t,loading:n}){return n||e.length===0?null:(0,K.jsx)(B,{title:`All Assistants`,subtitle:`${e.length} assistant${e.length===1?``:`s`} found.`,children:(0,K.jsx)(`div`,{className:`max-h-[300px] space-y-2 overflow-y-auto`,children:e.map(e=>{let n=e.id===t;return(0,K.jsx)(`div`,{className:`flex items-center justify-between gap-4 rounded-lg border px-4 py-3 ${n?`border-[var(--border-focus)] bg-[var(--surface-lift)]`:`border-[var(--border-base)] bg-[var(--surface-default)]`}`,children:(0,K.jsxs)(`div`,{className:`min-w-0`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(`span`,{className:`truncate text-body-medium-default text-[var(--content-default)]`,children:e.name||`Unnamed`}),(0,K.jsx)(_,{tone:e.status===`active`?`positive`:`neutral`,children:e.status}),n&&(0,K.jsx)(_,{tone:`warning`,children:`Current`})]}),(0,K.jsx)(`span`,{className:`font-mono text-body-small-default text-[var(--content-tertiary)]`,children:e.id})]})},e.id)})})})}function q({children:e}){return(0,K.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:e})}function J({children:e}){return(0,K.jsx)(`span`,{className:`text-body-medium-lighter text-[var(--content-default)]`,children:e})}function he(){let e=V.use.emailRootDomain(),t=V.use.isNonProduction(),n=V.use.setEnvironment();return(0,K.jsx)(B,{title:`Environment`,subtitle:`Environment configuration overrides for this session.`,children:(0,K.jsxs)(`div`,{className:`space-y-2`,children:[(0,K.jsxs)(`div`,{className:`flex items-start gap-3 py-3`,children:[(0,K.jsx)(`div`,{className:`shrink-0 pt-0.5`,children:(0,K.jsx)(v,{checked:t,onChange:e=>n({isNonProduction:e}),"aria-label":`Non-Production is ${t?`on`:`off`}`})}),(0,K.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-0.5`,children:[(0,K.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-default)]`,children:`Non-Production`}),(0,K.jsx)(`span`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Indicates a non-production environment. Enables dev-only UI surfaces and diagnostics.`})]})]}),(0,K.jsxs)(`div`,{className:`flex items-start gap-3 py-3`,children:[(0,K.jsx)(`div`,{className:`shrink-0 pt-0.5`,children:(0,K.jsx)(_,{tone:`neutral`,children:e})}),(0,K.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-0.5`,children:[(0,K.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-default)]`,children:`Email Root Domain`}),(0,K.jsx)(`span`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Root domain used for assistant email addresses (e.g. vellum.me).`})]})]})]})})}async function ge(){let{data:e,response:t}=await C.get({url:`/v1/feature-flags/`,throwOnError:!1});return t?.ok?e?.flags??[]:[]}var Y={client:`warning`,assistant:`positive`};function _e(){let e=z(),{data:t}=u({queryKey:[`feature-flag-definitions`],queryFn:ge,enabled:O(),staleTime:300*1e3}),n=(0,G.useMemo)(()=>{let e=new Map;if(!t)return e;for(let n of t)n.type===`string`&&n.values?.length&&e.set(n.key,n.values);return e},[t]),[r,i]=(0,G.useState)(``),a=D(),o=L(),s=(0,G.useMemo)(()=>{let e=[];for(let t of oe){let r=ae(t.key);if(typeof t.defaultEnabled==`boolean`){let n=a[r],i=o[r],s=t.scope===`both`?n===!0||i===!0:t.scope===`assistant`?i:n;if(typeof s!=`boolean`)continue;e.push({kind:`boolean`,storeKey:r,scope:t.scope,label:t.label,description:t.description,value:s,defaultValue:t.defaultEnabled})}else if(typeof t.defaultEnabled==`string`){let i=a.stringFlags?.[r],s=o.stringFlags?.[r],c=t.scope===`assistant`?s??t.defaultEnabled:i??t.defaultEnabled;e.push({kind:`string`,storeKey:r,scope:t.scope,label:t.label,description:t.description,value:c,defaultValue:t.defaultEnabled,values:n.get(t.key)??t.values})}}return e.sort((e,t)=>e.label.localeCompare(t.label,void 0,{sensitivity:`base`}))},[a,o,n]),c=(0,G.useMemo)(()=>{if(!r.trim())return s;let e=r.trim().toLowerCase();return s.filter(t=>t.label.toLowerCase().includes(e)||t.description.toLowerCase().includes(e)||t.storeKey.toLowerCase().includes(e)||t.scope.includes(e)||t.scope===`both`&&(`client`.includes(e)||`assistant`.includes(e)))},[s,r]);return(0,K.jsx)(B,{title:`Feature Flags`,subtitle:`Active feature flags evaluated for the current session.`,children:(0,K.jsxs)(`div`,{className:`space-y-4`,children:[(0,K.jsxs)(`div`,{className:`relative`,children:[(0,K.jsx)(te,{className:`absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-[var(--content-tertiary)]`}),(0,K.jsx)(`input`,{type:`text`,placeholder:`Search flags...`,value:r,onChange:e=>i(e.target.value),className:`w-full rounded-lg border border-[var(--border-base)] bg-[var(--surface-default)] py-2 pl-9 pr-3 text-body-medium-default text-[var(--content-default)] placeholder:text-[var(--content-tertiary)] focus:border-[var(--border-focus)] focus:outline-none`})]}),c.length===0&&(0,K.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`No matching flags.`}),c.length>0&&(0,K.jsx)(`div`,{className:`max-h-[500px] space-y-2 overflow-y-auto`,children:c.map(t=>(0,K.jsx)(ye,{flag:t,assistantId:e},t.storeKey))})]})})}function X({scope:e}){return e===`both`?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(_,{tone:Y.client,children:`client`}),(0,K.jsx)(_,{tone:Y.assistant,children:`assistant`})]}):(0,K.jsx)(_,{tone:Y[e],children:e})}function ve({flag:e,assistantId:t}){let n=D.use.setFlag(),r=L.use.setFlag();return(0,K.jsxs)(`div`,{className:`flex items-start gap-3 py-3`,children:[(0,K.jsx)(`div`,{className:`shrink-0 pt-0.5`,children:(0,K.jsx)(v,{checked:e.value,onChange:i=>{E(e.scope,`client`)&&n(e.storeKey,i),E(e.scope,`assistant`)&&r(e.storeKey,i,t)},"aria-label":`${e.label} is ${e.value?`on`:`off`}`})}),(0,K.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-0.5`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-default)]`,children:e.label}),(0,K.jsx)(X,{scope:e.scope})]}),(0,K.jsx)(`span`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:e.description}),(0,K.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,K.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Default:`}),(0,K.jsx)(_,{tone:`neutral`,children:e.defaultValue?`On`:`Off`})]})]})]})}function Z({flag:e,assistantId:t}){let n=D.use.setStringFlag(),r=L.use.setStringFlag(),[i,a]=(0,G.useState)(e.value);(0,G.useEffect)(()=>{a(e.value)},[e.value]);let o=i=>{i!==e.value&&(E(e.scope,`client`)&&n(e.storeKey,i),E(e.scope,`assistant`)&&r(e.storeKey,i,t))},s=i!==e.value,c=e.values&&e.values.length>0?e.values:null,l=s&&c!=null&&!c.includes(i),u=()=>{l||o(i)},d=e=>{e.key===`Enter`&&e.currentTarget.blur()},p=c!=null&&c.includes(e.value);return(0,K.jsx)(`div`,{className:`flex items-start gap-3 py-3`,children:(0,K.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-1.5`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-default)]`,children:e.label}),(0,K.jsx)(X,{scope:e.scope})]}),(0,K.jsx)(`span`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:e.description}),p?(0,K.jsx)(ie,{value:e.value,onChange:e=>{a(e),o(e)},options:c.map(e=>({value:e,label:e})),className:`w-48`,"aria-label":`${e.label} value`}):(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(`input`,{type:`text`,value:i,onChange:e=>a(e.target.value),onBlur:u,onKeyDown:d,className:f(`w-full rounded-lg border bg-[var(--surface-default)] px-3 py-1.5 text-body-small-default text-[var(--content-default)] placeholder:text-[var(--content-tertiary)] focus:outline-none`,l?`border-[var(--system-negative-strong)]`:`border-[var(--border-base)] focus:border-[var(--border-focus)]`),placeholder:e.defaultValue||`Enter value...`}),l&&(0,K.jsxs)(`span`,{className:`block text-body-small-default text-[var(--system-negative-strong)]`,children:[`Expected one of: `,c.join(`, `)]})]}),(0,K.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,K.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Default:`}),(0,K.jsx)(_,{tone:`neutral`,children:e.defaultValue||`(empty)`})]})]})})}function ye({flag:e,assistantId:t}){return e.kind===`string`?(0,K.jsx)(Z,{flag:e,assistantId:t}):(0,K.jsx)(ve,{flag:e,assistantId:t})}function be(){let e=(0,G.useCallback)(()=>{t(Error(`[Dev Settings] Test error event`)),y.success(`Sentry error event sent.`)},[]),i=(0,G.useCallback)(()=>{r(`[Dev Settings] Test warning event`,`warning`),y.success(`Sentry warning event sent.`)},[]),a=(0,G.useCallback)(()=>{r(`[Dev Settings] Test info event`,`info`),y.success(`Sentry info event sent.`)},[]),o=(0,G.useCallback)(()=>{r(`[Dev Settings] Test fatal event`,`fatal`),y.success(`Sentry fatal event sent.`)},[]),s=(0,G.useCallback)(()=>{n({name:`[Dev Settings] Test transaction`,op:`test.transaction`,forceTransaction:!0}).end(),y.success(`Sentry performance transaction sent.`)},[]);return(0,K.jsx)(B,{title:`Sentry Testing`,subtitle:`Fire test events to verify Sentry integration is working.`,children:(0,K.jsxs)(`div`,{className:`space-y-3`,children:[(0,K.jsx)(Q,{icon:(0,K.jsx)(U,{className:`h-4 w-4 text-[var(--system-negative-strong)]`}),label:`Fatal Event`,description:`Send a fatal-level event to Sentry.`,onClick:o}),(0,K.jsx)(Q,{icon:(0,K.jsx)(h,{className:`h-4 w-4 text-[var(--system-negative-default)]`}),label:`Error Event`,description:`Capture a test Error exception.`,onClick:e}),(0,K.jsx)(Q,{icon:(0,K.jsx)(ne,{className:`h-4 w-4 text-[var(--system-warning-default)]`}),label:`Warning Event`,description:`Send a warning-level message.`,onClick:i}),(0,K.jsx)(Q,{icon:(0,K.jsx)(ee,{className:`h-4 w-4 text-[var(--content-tertiary)]`}),label:`Info Event`,description:`Send an info-level message.`,onClick:a}),(0,K.jsx)(Q,{icon:(0,K.jsx)(W,{className:`h-4 w-4 text-[var(--system-positive-default)]`}),label:`Performance Transaction`,description:`Start and end a test transaction span.`,onClick:s})]})})}function Q({icon:e,label:t,description:n,onClick:r}){return(0,K.jsxs)(`div`,{className:`flex items-center justify-between gap-4 rounded-lg border border-[var(--border-base)] px-4 py-3`,children:[(0,K.jsxs)(`div`,{className:`flex min-w-0 items-center gap-3`,children:[(0,K.jsx)(`div`,{className:`shrink-0`,children:e}),(0,K.jsxs)(`div`,{className:`min-w-0`,children:[(0,K.jsx)(`p`,{className:`text-body-medium-default text-[var(--content-default)]`,children:t}),(0,K.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:n})]})]}),(0,K.jsxs)(o,{variant:`outlined`,size:`compact`,onClick:r,children:[(0,K.jsx)(m,{className:`h-4 w-4`}),`Send`]})]})}var $=[{id:`feature-flags`,label:`Feature Flags`},{id:`lifecycle`,label:`Assistant Lifecycle`},{id:`sentry`,label:`Sentry Testing`},{id:`memory`,label:`Memory`}];function xe(){let[e,t]=s(),n=L.use.settingsDeveloperNav(),r=L.use.hasHydrated(),i=(0,G.useMemo)(()=>{let t=e.get(`tab`);return $.find(e=>e.id===t)?.id??`feature-flags`},[e]);if(r&&!n)return(0,K.jsx)(c,{replace:!0,to:se.settings.general});let a=n=>{let r=new URLSearchParams(e.toString());n===`feature-flags`?r.delete(`tab`):r.set(`tab`,n),t(r,{replace:!0})};return(0,K.jsxs)(`div`,{"data-slot":`developer-page`,className:`flex min-h-0 flex-1 flex-col`,children:[(0,K.jsx)(`div`,{className:`flex shrink-0 items-center border-b border-[var(--border-base)]`,children:(0,K.jsx)(`div`,{role:`tablist`,"aria-label":`Developer sections`,className:`flex items-center gap-1`,children:$.map(e=>{let t=e.id===i;return(0,K.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":t,"aria-controls":`developer-tab-panel-${e.id}`,id:`developer-tab-${e.id}`,onClick:()=>a(e.id),className:R(`relative -mb-px cursor-pointer border-b-2 px-4 py-2 text-body-medium-default transition-colors`,t?`border-[var(--system-positive-strong)] text-[var(--system-positive-strong)]`:`border-transparent text-[var(--content-tertiary)] hover:text-[var(--content-default)] dark:text-[var(--content-disabled)] dark:hover:text-[var(--content-default)]`),children:e.label},e.id)})})}),(0,K.jsxs)(`div`,{id:`developer-tab-panel-${i}`,role:`tabpanel`,"aria-labelledby":`developer-tab-${i}`,className:`flex min-h-0 flex-1 flex-col pt-6`,children:[i===`feature-flags`&&(0,K.jsxs)(`div`,{className:`space-y-6`,children:[(0,K.jsx)(_e,{}),(0,K.jsx)(he,{})]}),i===`lifecycle`&&(0,K.jsx)(fe,{}),i===`sentry`&&(0,K.jsx)(be,{}),i===`memory`&&(0,K.jsx)(`div`,{className:`space-y-4`,children:(0,K.jsx)(de,{})})]})]})}export{xe as DeveloperPage};
|
package/dist/assets/{document-viewer-container-Bousf9D9.js → document-viewer-container-wjJ6ACJv.js}
RENAMED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/tiptap-document-editor-
|
|
2
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{At as t,B as n,F as r,Ft as i,P as a,W as o,X as s,Y as c,a as l,c as u,ct as d,it as f,mt as p,st as m,ut as h,z as g}from"./capture-error-Cw5vs0Ef.js";import{t as _}from"./react-BFJW0bSv.js";import{t as v}from"./button-BENY-yx_.js";import{t as y}from"./preload-helper-Cv2QeVDK.js";import{n as ee}from"./QueryClientProvider-CMu7CkQU.js";import{t as b}from"./jsx-runtime-D3ZM-ToX.js";import{t as x}from"./typography-BeUa5Fd-.js";import{t as S}from"./createLucideIcon-C1mdGPB9.js";import{t as te}from"./check-DSgjgwlo.js";import{t as C}from"./circle-check-big-CpoRGdNz.js";import"./src-hNk11eS3.js";import{t as ne}from"./download-Byg0fi0d.js";import{t as re}from"./file-text-DDbRSMUn.js";import{t as w}from"./loader-circle-DOtGXcds.js";import{t as T}from"./message-square-text-Crbwae27.js";import{t as E}from"./message-square-BjBDqFUX.js";import{t as D}from"./send-BlX2px_R.js";import{t as O}from"./trash-2-BKXSi5Tj.js";import{t as k}from"./user-Djte2CiZ.js";import{t as A}from"./x-338EsJDP.js";import{t as j}from"./tag-DeMzQvCo.js";import{i as M,n as N,t as P}from"./api-errors-BQX1Pzcm.js";import{Et as F,_t as I,bt as L,vt as R,yt as z}from"./sdk.gen-CBPZ2IdN.js";import{n as ie,t as ae}from"./use-local-file-info-2nORgZPN.js";function B(e){let t=e.protocol?`${e.protocol}:`:``,n=e.port?`:${e.port}`:``;return`${t}//${e.host}${n}${e.path?`/${e.path}`:``}/api/`}function oe(e){return`${B(e)}${e.projectId}/envelope/`}function V(e,t){let n={sentry_version:`7`};return e.publicKey&&(n.sentry_key=e.publicKey),t&&(n.sentry_client=`${t.name}/${t.version}`),new URLSearchParams(n).toString()}function se(e,t,n){return t||`${oe(e)}?${V(e,n)}`}function ce(e,t){let n=r(e);if(!n)return``;let i=`${B(n)}embed/error-page/`,o=`dsn=${a(n)}`;for(let e in t)if(e!==`dsn`&&e!==`onClose`)if(e===`user`){let e=t.user;if(!e)continue;e.name&&(o+=`&name=${encodeURIComponent(e.name)}`),e.email&&(o+=`&email=${encodeURIComponent(e.email)}`)}else o+=`&${encodeURIComponent(e)}=${encodeURIComponent(t[e])}`;return`${i}?${o}`}var H=i,U=0;function le(){return U>0}function ue(){U++,setTimeout(()=>{U--})}function W(e,t={}){function n(e){return typeof e==`function`}if(!n(e))return e;try{let t=e.__sentry_wrapped__;if(t)return typeof t==`function`?t:e;if(m(e))return e}catch{return e}let r=function(...n){try{let r=n.map(e=>W(e,t));return e.apply(this,r)}catch(e){throw ue(),o(r=>{r.addEventProcessor(e=>(t.mechanism&&(s(e,void 0,void 0),c(e,t.mechanism)),e.extra={...e.extra,arguments:n},e)),l(e)}),e}};try{for(let t in e)Object.prototype.hasOwnProperty.call(e,t)&&(r[t]=e[t])}catch{}d(r,e),f(e,`__sentry_wrapped__`,r);try{Object.getOwnPropertyDescriptor(r,`name`).configurable&&Object.defineProperty(r,`name`,{get(){return e.name}})}catch{}return r}function de(){let e=h(),{referrer:t}=H.document||{},{userAgent:n}=H.navigator||{};return{url:e,headers:{...t&&{Referer:t},...n&&{"User-Agent":n}}}}var G=typeof __SENTRY_DEBUG__>`u`||__SENTRY_DEBUG__;function K(e={}){let r=H.document,i=r?.head||r?.body;if(!i){G&&t.error(`[showReportDialog] Global document not defined`);return}let a=n(),o=g()?.getDsn();if(!o){G&&t.error(`[showReportDialog] DSN not configured`);return}let s={...e,user:{...a.getUser(),...e.user},eventId:e.eventId||u()},c=H.document.createElement(`script`);c.async=!0,c.crossOrigin=`anonymous`,c.src=ce(o,s);let{onLoad:l,onClose:d}=s;if(l&&(c.onload=l),d){let e=t=>{if(t.data===`__sentry_reportdialog_closed__`)try{d()}finally{H.removeEventListener(`message`,e)}};H.addEventListener(`message`,e)}i.appendChild(c)}var q=e(_());function fe(e){let t=e.match(/^([^.]+)/);return t!==null&&parseInt(t[0])>=17}function pe(e,t){let n=new WeakSet;function r(e,t){if(!n.has(e)){if(e.cause)return n.add(e),r(e.cause,t);e.cause=t}}r(e,t)}function me(e,{componentStack:t},n){if(fe(q.version)&&p(e)&&t){let n=Error(e.message);n.name=`React ErrorBoundary ${e.name}`,n.stack=t,pe(e,n)}return o(r=>(r.setContext(`react`,{componentStack:t}),l(e,n)))}var he=typeof __SENTRY_DEBUG__>`u`||__SENTRY_DEBUG__,J={componentStack:null,error:null,eventId:null},Y=class extends q.Component{constructor(e){super(e),this.state=J,this._openFallbackReportDialog=!0;let t=g();t&&e.showDialog&&(this._openFallbackReportDialog=!1,this._cleanupHook=t.on(`afterSendEvent`,t=>{!t.type&&this._lastEventId&&t.event_id===this._lastEventId&&K({...e.dialogOptions,eventId:this._lastEventId})}))}componentDidCatch(e,t){let{componentStack:n}=t,{beforeCapture:r,onError:i,showDialog:a,dialogOptions:s}=this.props;o(o=>{r&&r(o,e,n);let c=me(e,t,{mechanism:{handled:this.props.handled==null?!!this.props.fallback:this.props.handled,type:`auto.function.react.error_boundary`}});i&&i(e,n,c),a&&(this._lastEventId=c,this._openFallbackReportDialog&&K({...s,eventId:c})),this.setState({error:e,componentStack:n,eventId:c})})}componentDidMount(){let{onMount:e}=this.props;e&&e()}componentWillUnmount(){let{error:e,componentStack:t,eventId:n}=this.state,{onUnmount:r}=this.props;r&&(this.state===J?r(null,null,null):r(e,t,n)),this._cleanupHook&&=(this._cleanupHook(),void 0)}resetErrorBoundary(){let{onReset:e}=this.props,{error:t,componentStack:n,eventId:r}=this.state;e&&e(t,n,r),this.setState(J)}render(){let{fallback:e,children:n}=this.props,r=this.state;if(r.componentStack===null)return typeof n==`function`?n():n;let i=typeof e==`function`?q.createElement(e,{error:r.error,componentStack:r.componentStack,resetError:()=>this.resetErrorBoundary(),eventId:r.eventId}):e;return q.isValidElement(i)?i:(e&&he&&t.warn(`fallback did not produce a valid ReactElement`),null)}},X=S(`circle-dot`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`circle`,{cx:`12`,cy:`12`,r:`1`,key:`41hilf`}]]),ge=S(`quote`,[[`path`,{d:`M16 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z`,key:`rib7q0`}],[`path`,{d:`M5 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z`,key:`1ymkrd`}]]);function _e(e){if(!(e instanceof Error))return!1;if(e.name===`ChunkLoadError`)return!0;let t=e.message;return t.includes(`Failed to fetch dynamically imported module`)||t.includes(`Importing a module script failed`)||t.includes(`error loading dynamically imported module`)||t.includes(`Loading chunk`)}var Z=b();function ve({children:e,fallback:t=null,errorFallback:n}){return(0,Z.jsx)(Y,{beforeCapture:(e,t)=>{e.setTag(`boundary`,_e(t)?`lazy-component`:`component-render`)},fallback:n??(0,Z.jsx)(`div`,{role:`alert`,className:`p-3 text-body-small-default text-[var(--content-tertiary)]`,children:`This section couldn't load. Reload the page to try again.`}),children:(0,Z.jsx)(q.Suspense,{fallback:t,children:e})})}async function Q(e,t,n){let{data:r,error:i,response:a}=await z({path:{assistant_id:e,id:t},query:n?{status:n}:{},throwOnError:!1});if(N(a,i,`Failed to fetch comments.`),!a.ok){let e=M(i,a,`Failed to fetch comments.`);throw new P(a.status,e)}return r?.comments??[]}async function $(e,t,n){let{data:r,error:i,response:a}=await L({path:{assistant_id:e,id:t},body:n,throwOnError:!1});if(N(a,i,`Failed to create comment.`),!a.ok||!r){let e=M(i,a,`Failed to create comment.`);throw new P(a.status,e)}return r}async function ye(e,t,n,r){let i=r===`resolved`?`resolve`:`reopen`,{data:a,error:o,response:s}=await R({path:{assistant_id:e,id:t,commentId:n},body:{status:r},throwOnError:!1});if(N(s,o,`Failed to ${i} comment.`),!s.ok||!a){let e=M(o,s,`Failed to ${i} comment.`);throw new P(s.status,e)}return a}async function be(e,t,n){return ye(e,t,n,`resolved`)}async function xe(e,t,n){return ye(e,t,n,`open`)}async function Se(e,t,n){let{error:r,response:i}=await I({path:{assistant_id:e,id:t,commentId:n},throwOnError:!1});if(N(i,r,`Failed to delete comment.`),!i.ok){let e=M(r,i,`Failed to delete comment.`);throw new P(i.status,e)}return{success:!0}}function Ce(e){return e.trim().split(/\s+/).filter(e=>e.length>0).length}async function we(e,t){await F({path:{assistant_id:e.assistantId},body:{surfaceId:e.surfaceId,conversationId:e.conversationId,title:e.title,content:t,wordCount:Ce(t)},throwOnError:!0})}function Te({onSubmit:e,placeholder:t=`Add a comment…`,autoFocus:n=!1}){let[r,i]=(0,q.useState)(``),[a,o]=(0,q.useState)(!1),s=(0,q.useRef)(null),c=(0,q.useCallback)(async t=>{t.preventDefault();let n=r.trim();if(!(!n||a)){o(!0);try{await e(n),i(``),s.current?.focus()}finally{o(!1)}}},[r,a,e]),l=(0,q.useCallback)(e=>{e.key===`Enter`&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),c(e))},[c]),u=r.trim().length>0&&!a;return(0,Z.jsxs)(`form`,{onSubmit:c,className:`flex flex-col gap-2`,children:[(0,Z.jsx)(`textarea`,{ref:s,value:r,onChange:e=>i(e.target.value),onKeyDown:l,placeholder:t,autoFocus:n,disabled:a,rows:2,className:`block w-full resize-none rounded-md border border-[var(--field-border)] bg-[var(--field-bg)] px-3 py-2 text-body-medium-lighter text-[var(--content-default)] placeholder:text-[var(--content-tertiary)] outline-none transition-[border-color] duration-150 ease-out focus-visible:border-[var(--border-active)] disabled:cursor-not-allowed disabled:opacity-60`}),(0,Z.jsx)(`div`,{className:`flex justify-end`,children:(0,Z.jsx)(v,{type:`submit`,variant:`primary`,size:`compact`,leftIcon:(0,Z.jsx)(D,{}),disabled:!u,children:a?`Sending…`:`Send`})})]})}function Ee(e){let t=new Date(e),n=new Date,r=n.getTime()-t.getTime(),i=Math.floor(r/6e4);if(i<1)return`just now`;if(i<60)return`${i}m ago`;let a=Math.floor(i/60);if(a<24)return`${a}h ago`;let o=Math.floor(a/24);return o<7?`${o}d ago`:t.toLocaleDateString(void 0,{month:`short`,day:`numeric`,year:n.getFullYear()===t.getFullYear()?void 0:`numeric`})}function De(e){return e===`assistant`?`Assistant`:`You`}function Oe({comment:e,onCommentSelect:t}){let n=e.anchorText!=null;return(0,Z.jsxs)(`div`,{className:`flex gap-2`,children:[(0,Z.jsx)(`span`,{className:`mt-0.5 flex h-6 w-6 shrink-0 items-center justify-center rounded-full`,style:{backgroundColor:e.author===`assistant`?`var(--primary-second-hover)`:`var(--surface-active)`},"aria-hidden":`true`,children:e.author===`assistant`?(0,Z.jsx)(x,{variant:`label-small-default`,className:`text-[var(--primary-base)]`,children:`V`}):(0,Z.jsx)(k,{size:12,style:{color:`var(--content-secondary)`}})}),(0,Z.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Z.jsx)(x,{variant:`body-small-emphasised`,className:`text-[var(--content-emphasised)]`,children:De(e.author)}),(0,Z.jsx)(x,{variant:`label-small-default`,className:`text-[var(--content-tertiary)]`,children:Ee(e.createdAt)})]}),n?(0,Z.jsx)(`button`,{type:`button`,className:`mt-1 cursor-pointer border-none bg-transparent p-0`,onClick:()=>t?.(e),title:`Jump to highlighted text`,children:(0,Z.jsx)(j,{tone:`neutral`,leftIcon:(0,Z.jsx)(ge,{}),children:(0,Z.jsx)(`span`,{className:`max-w-[200px] truncate`,children:e.anchorText})})}):null,(0,Z.jsx)(x,{variant:`body-small-default`,as:`p`,className:`mt-1 text-[var(--content-default)] whitespace-pre-wrap break-words`,children:e.content})]})]})}function ke({comment:e,replies:t,onResolve:n,onReopen:r,onDelete:i,onReply:a,onCommentSelect:o}){let[s,c]=(0,q.useState)(!1),l=e.status===`resolved`,u=(0,q.useCallback)(async t=>{await a(e.id,t),c(!1)},[e.id,a]);return(0,Z.jsxs)(`div`,{className:`flex flex-col gap-3 rounded-lg border border-[var(--border-base)] p-3`,style:{backgroundColor:l?`var(--surface-base)`:`var(--surface-overlay)`},children:[(0,Z.jsxs)(`div`,{className:`flex items-center justify-between`,children:[l?(0,Z.jsx)(j,{tone:`positive`,leftIcon:(0,Z.jsx)(C,{}),children:`Resolved`}):(0,Z.jsx)(j,{tone:`neutral`,leftIcon:(0,Z.jsx)(X,{}),children:`Open`}),(0,Z.jsxs)(`div`,{className:`flex items-center gap-1`,children:[l?(0,Z.jsx)(v,{variant:`ghost`,size:`compact`,leftIcon:(0,Z.jsx)(X,{}),onClick:()=>void r(e.id),children:`Reopen`}):(0,Z.jsx)(v,{variant:`ghost`,size:`compact`,leftIcon:(0,Z.jsx)(C,{}),onClick:()=>void n(e.id),children:`Resolve`}),(0,Z.jsx)(v,{variant:`dangerGhost`,size:`compact`,iconOnly:(0,Z.jsx)(O,{}),"aria-label":`Delete comment`,onClick:()=>void i(e.id)})]})]}),(0,Z.jsx)(Oe,{comment:e,onCommentSelect:o}),t.length>0?(0,Z.jsx)(`div`,{className:`ml-8 flex flex-col gap-3 border-l-2 border-[var(--border-base)] pl-3`,children:t.map(e=>(0,Z.jsx)(Oe,{comment:e,onCommentSelect:o},e.id))}):null,s?(0,Z.jsx)(`div`,{className:`ml-8`,children:(0,Z.jsx)(Te,{onSubmit:u,placeholder:`Write a reply…`,autoFocus:!0})}):(0,Z.jsx)(v,{variant:`ghost`,size:`compact`,leftIcon:(0,Z.jsx)(E,{}),onClick:()=>c(!0),className:`self-start`,children:`Reply`})]})}function Ae({surfaceId:e,assistantId:t,conversationId:n,onClose:r,onCommentSelect:i,onSubmitFeedback:a,handleRef:o}){let[s,c]=(0,q.useState)([]),[l,u]=(0,q.useState)(!0),d=(0,q.useRef)(!0),f=(0,q.useCallback)(async n=>{try{let r=await Q(t,e);!n?.aborted&&d.current&&c(r)}finally{!n?.aborted&&d.current&&u(!1)}},[t,e]);(0,q.useEffect)(()=>{d.current=!0;let e=new AbortController;return f(e.signal),()=>{e.abort(),d.current=!1}},[f]),(0,q.useImperativeHandle)(o,()=>({refreshComments:f}),[f]);let p=(0,q.useMemo)(()=>s.filter(e=>e.parentCommentId===null),[s]),m=(0,q.useMemo)(()=>{let e=new Map;for(let t of s)if(t.parentCommentId!==null){let n=e.get(t.parentCommentId);n?n.push(t):e.set(t.parentCommentId,[t])}return e},[s]),h=(0,q.useCallback)(async r=>{await $(t,e,{content:r,conversationId:n}),await f()},[t,e,n,f]),g=(0,q.useCallback)(async n=>{await be(t,e,n),await f()},[t,e,f]),_=(0,q.useCallback)(async n=>{await xe(t,e,n),await f()},[t,e,f]),y=(0,q.useCallback)(async n=>{await Se(t,e,n),await f()},[t,e,f]),ee=(0,q.useCallback)(async(r,i)=>{await $(t,e,{content:i,conversationId:n,parentCommentId:r}),await f()},[t,e,n,f]),b=p.length,S=(0,q.useMemo)(()=>s.some(e=>e.status===`open`),[s]);return(0,Z.jsxs)(`div`,{className:`flex h-full w-80 flex-col border-l border-[var(--border-base)] bg-[var(--surface-overlay)]`,children:[(0,Z.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2 border-b border-[var(--border-base)] px-4 py-3`,children:[(0,Z.jsx)(T,{size:16,style:{color:`var(--content-secondary)`}}),(0,Z.jsx)(x,{variant:`title-small`,className:`flex-1 text-[var(--content-emphasised)]`,children:`Comments`}),!l&&b>0?(0,Z.jsx)(j,{tone:`neutral`,children:b}):null,(0,Z.jsx)(v,{variant:`ghost`,size:`compact`,iconOnly:(0,Z.jsx)(A,{}),"aria-label":`Close comments panel`,onClick:r})]}),(0,Z.jsx)(`div`,{className:`flex-1 overflow-y-auto p-4`,children:l?(0,Z.jsx)(`div`,{className:`flex items-center justify-center py-12`,children:(0,Z.jsx)(x,{variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,children:`Loading comments…`})}):p.length===0?(0,Z.jsxs)(`div`,{className:`flex flex-col items-center justify-center gap-2 py-12`,children:[(0,Z.jsx)(T,{size:32,style:{color:`var(--content-tertiary)`}}),(0,Z.jsx)(x,{variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,children:`No comments yet`})]}):(0,Z.jsx)(`div`,{className:`flex flex-col gap-3`,children:p.map(e=>(0,Z.jsx)(ke,{comment:e,replies:m.get(e.id)??[],onResolve:g,onReopen:_,onDelete:y,onReply:ee,onCommentSelect:i},e.id))})}),(0,Z.jsxs)(`div`,{className:`flex shrink-0 flex-col gap-3 border-t border-[var(--border-base)] p-4`,children:[(0,Z.jsx)(Te,{onSubmit:h,placeholder:`Add a comment…`}),a&&S?(0,Z.jsx)(v,{variant:`primary`,size:`compact`,leftIcon:(0,Z.jsx)(D,{}),onClick:a,className:`w-full`,children:`Submit Feedback`}):null]})]})}var je=(0,q.lazy)(()=>y(()=>import(`./tiptap-document-editor-CDIJTTa_.js`).then(e=>({default:e.TiptapDocumentEditor})),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43])));function Me({assistantId:e,documentName:t,content:n,onClose:r,handleRef:i,surfaceId:a,conversationId:o,workspacePath:s=null,onExport:c,onSubmitFeedback:l}){let u={source:`document`,assistantId:e,surfaceId:a,conversationId:o,title:t},d=ee(),[f,p]=(0,q.useState)(!1),[m,h]=(0,q.useState)(null),[g,_]=(0,q.useState)(!1),[y,b]=(0,q.useState)([]),[S,C]=(0,q.useState)(null),[E,D]=(0,q.useState)(`idle`),O=(0,q.useRef)(null),k=(0,q.useRef)(null),j=(0,q.useRef)(null),M=(0,q.useRef)(u),N=(0,q.useRef)(s),P=(0,q.useRef)(null);(0,q.useLayoutEffect)(()=>{M.current=u,N.current=s});let F=(0,q.useCallback)(()=>{let t=P.current;if(t===null)return;P.current=null;let n=M.current,r=N.current;we(n,t).then(()=>{D(`saved`),j.current=setTimeout(()=>D(`idle`),2e3),r!==null&&(d.invalidateQueries({queryKey:[`assistantsWorkspaceFileRetrieve`]}),d.invalidateQueries({queryKey:ae(r,e)}),d.invalidateQueries({queryKey:ie(r,e)}))},()=>D(`idle`))},[e,d]),I=(0,q.useCallback)(e=>{k.current&&clearTimeout(k.current),j.current&&clearTimeout(j.current),P.current=e,D(`saving`),k.current=setTimeout(()=>{k.current=null,F()},1e3)},[F]),L=(0,q.useRef)(F);(0,q.useLayoutEffect)(()=>{L.current=F}),(0,q.useEffect)(()=>()=>{j.current&&=(clearTimeout(j.current),null),k.current&&(clearTimeout(k.current),k.current=null,L.current())},[]),(0,q.useEffect)(()=>{f||_(!1)},[f]),(0,q.useEffect)(()=>{b([]),C(null),h(null)},[a,s]);let R=(0,q.useCallback)(e=>{e.anchorStart!=null&&e.anchorEnd!=null&&C({start:e.anchorStart,end:e.anchorEnd})},[]),z=(0,q.useCallback)(e=>{b(e.filter(e=>e.status===`open`&&e.anchorStart!=null&&e.anchorEnd!=null).map(e=>({commentId:e.id,anchorStart:e.anchorStart,anchorEnd:e.anchorEnd})))},[]),B=(0,q.useCallback)(async()=>{await O.current?.refreshComments();try{z(await Q(e,a))}catch{}},[e,a,z]);(0,q.useImperativeHandle)(i,()=>({refreshComments:B}),[B]);let oe=(0,q.useCallback)(async t=>{if(m){_(!0);try{await $(e,a,{content:t,conversationId:o,anchorStart:m.start,anchorEnd:m.end,anchorText:m.text}),h(null),p(!0),await B()}finally{_(!1)}}},[e,a,o,m,B]),V=(0,q.useCallback)(()=>{p(e=>!e)},[]);return(0,q.useEffect)(()=>{if(!f)return;let t=!1;return(async()=>{try{let n=await Q(e,a);t||z(n)}catch{}})(),()=>{t=!0}},[f,e,a,z]),(0,Z.jsxs)(`div`,{className:`flex h-full flex-col overflow-hidden rounded-xl border border-[var(--border-base)] bg-[var(--surface-overlay)]`,children:[(0,Z.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2 border-b border-[var(--border-base)] px-4 py-2`,children:[(0,Z.jsx)(re,{size:16,style:{color:`var(--content-secondary)`}}),(0,Z.jsx)(x,{variant:`title-small`,className:`min-w-0 flex-1 truncate text-[var(--content-emphasised)]`,title:s??void 0,children:t}),E===`idle`?null:(0,Z.jsxs)(`span`,{className:`flex items-center gap-1 text-[var(--content-tertiary)]`,children:[E===`saving`?(0,Z.jsx)(w,{size:12,className:`animate-spin`}):(0,Z.jsx)(te,{size:12}),(0,Z.jsx)(x,{variant:`label-small-default`,className:`text-[var(--content-tertiary)]`,children:E===`saving`?`Saving…`:`Saved`})]}),c?(0,Z.jsx)(v,{variant:`ghost`,size:`compact`,leftIcon:(0,Z.jsx)(ne,{}),onClick:c,children:`Export`}):null,(0,Z.jsx)(v,{variant:f?`outlined`:`ghost`,size:`compact`,leftIcon:(0,Z.jsx)(T,{}),onClick:V,"aria-label":f?`Close comments`:`Open comments`,"aria-pressed":f,children:`Comments`}),(0,Z.jsx)(v,{variant:`ghost`,size:`compact`,iconOnly:(0,Z.jsx)(A,{}),onClick:r,"aria-label":`Close document`,tooltip:`Close`})]}),(0,Z.jsxs)(`div`,{className:`relative flex min-h-0 flex-1`,children:[(0,Z.jsx)(`div`,{className:`relative min-w-0 flex-1`,children:(0,Z.jsx)(ve,{fallback:(0,Z.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,Z.jsx)(w,{className:`size-5 animate-spin text-fg-tertiary`})}),children:(0,Z.jsx)(je,{content:n,onContentChange:I,onTextSelect:e=>{if(!e){h(null);return}h({start:e.start,end:e.end,text:e.text,rect:{top:e.rect.top,left:e.rect.left,bottom:e.rect.bottom,right:e.rect.right,width:e.rect.width,height:e.rect.height}})},commentAnchors:y,highlightRange:S,onCommentSubmit:e=>void oe(e),commentSubmitting:g,className:`h-full`})})}),f?(0,Z.jsx)(Ae,{surfaceId:a,assistantId:e,conversationId:o,onClose:()=>p(!1),onCommentSelect:R,onSubmitFeedback:l,handleRef:O}):null]})]})}export{Y as a,de as c,se as d,X as i,le as l,ve as n,G as o,_e as r,H as s,Me as t,W as u};
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/tiptap-document-editor-DPkcv0pe.js","assets/chunk-jRWAZmH_.js","assets/button-BENY-yx_.js","assets/dist-DHB1G-V6.js","assets/jsx-runtime-D3ZM-ToX.js","assets/react-BFJW0bSv.js","assets/bundle-mjs-BQxDdOEo.js","assets/cn-DFWryB3N.js","assets/src-DyqTPMO2.js","assets/dist-DlYszVmN.js","assets/dist-BA9prIz1.js","assets/select-B8-i-CZ4.js","assets/Combination-BswM2qVy.js","assets/check-DSgjgwlo.js","assets/createLucideIcon-C1mdGPB9.js","assets/chevron-down-CrFV6lfm.js","assets/field-Dq8jxCGe.js","assets/typography-BeUa5Fd-.js","assets/checkbox-C4x4HEp4.js","assets/modal-DI63s9MQ.js","assets/dist-C5_d6Zkz.js","assets/x-338EsJDP.js","assets/menu-DKE_-iVc.js","assets/chevron-right-DBGgpEiZ.js","assets/popover-CAbJ9178.js","assets/toast-BpuLSxyt.js","assets/circle-alert-De9q5FVd.js","assets/circle-check-q8BVdbgw.js","assets/info-CXkwGlN_.js","assets/card-q0GJX1HZ.js","assets/confirm-dialog-zx8L9sUi.js","assets/loader-circle-DOtGXcds.js","assets/triangle-alert-CB4pJgCL.js","assets/input-DmHXRXaB.js","assets/notice-C0ifrvvJ.js","assets/progress-bar-CrrJKpWm.js","assets/skeleton-CJJwPIil.js","assets/tag-DeMzQvCo.js","assets/toggle-C-v4x7_A.js","assets/src-CfUWwwYf.css","assets/code-DwZ6Mhdw.js","assets/link-DMi999lz.js","assets/message-square-text-Crbwae27.js","assets/shim-DQit20z4.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{At as t,B as n,F as r,Ft as i,P as a,W as o,X as s,Y as c,a as l,c as u,ct as d,it as f,mt as p,st as m,ut as h,z as g}from"./capture-error-Cw5vs0Ef.js";import{t as _}from"./react-BFJW0bSv.js";import{t as v}from"./button-BENY-yx_.js";import{t as y}from"./preload-helper-Cv2QeVDK.js";import{n as ee}from"./QueryClientProvider-CMu7CkQU.js";import{t as b}from"./jsx-runtime-D3ZM-ToX.js";import{t as x}from"./typography-BeUa5Fd-.js";import{t as S}from"./createLucideIcon-C1mdGPB9.js";import{t as te}from"./check-DSgjgwlo.js";import{t as C}from"./circle-check-big-CpoRGdNz.js";import"./src-DyqTPMO2.js";import{t as ne}from"./download-Byg0fi0d.js";import{t as re}from"./file-text-DDbRSMUn.js";import{t as w}from"./loader-circle-DOtGXcds.js";import{t as T}from"./message-square-text-Crbwae27.js";import{t as E}from"./message-square-BjBDqFUX.js";import{t as D}from"./send-BlX2px_R.js";import{t as O}from"./trash-2-BKXSi5Tj.js";import{t as k}from"./user-Djte2CiZ.js";import{t as A}from"./x-338EsJDP.js";import{t as j}from"./tag-DeMzQvCo.js";import{i as M,n as N,t as P}from"./api-errors-BQX1Pzcm.js";import{Et as F,_t as I,bt as L,vt as R,yt as z}from"./sdk.gen-CBPZ2IdN.js";import{n as ie,t as ae}from"./use-local-file-info-2nORgZPN.js";function B(e){let t=e.protocol?`${e.protocol}:`:``,n=e.port?`:${e.port}`:``;return`${t}//${e.host}${n}${e.path?`/${e.path}`:``}/api/`}function oe(e){return`${B(e)}${e.projectId}/envelope/`}function V(e,t){let n={sentry_version:`7`};return e.publicKey&&(n.sentry_key=e.publicKey),t&&(n.sentry_client=`${t.name}/${t.version}`),new URLSearchParams(n).toString()}function se(e,t,n){return t||`${oe(e)}?${V(e,n)}`}function ce(e,t){let n=r(e);if(!n)return``;let i=`${B(n)}embed/error-page/`,o=`dsn=${a(n)}`;for(let e in t)if(e!==`dsn`&&e!==`onClose`)if(e===`user`){let e=t.user;if(!e)continue;e.name&&(o+=`&name=${encodeURIComponent(e.name)}`),e.email&&(o+=`&email=${encodeURIComponent(e.email)}`)}else o+=`&${encodeURIComponent(e)}=${encodeURIComponent(t[e])}`;return`${i}?${o}`}var H=i,U=0;function le(){return U>0}function ue(){U++,setTimeout(()=>{U--})}function W(e,t={}){function n(e){return typeof e==`function`}if(!n(e))return e;try{let t=e.__sentry_wrapped__;if(t)return typeof t==`function`?t:e;if(m(e))return e}catch{return e}let r=function(...n){try{let r=n.map(e=>W(e,t));return e.apply(this,r)}catch(e){throw ue(),o(r=>{r.addEventProcessor(e=>(t.mechanism&&(s(e,void 0,void 0),c(e,t.mechanism)),e.extra={...e.extra,arguments:n},e)),l(e)}),e}};try{for(let t in e)Object.prototype.hasOwnProperty.call(e,t)&&(r[t]=e[t])}catch{}d(r,e),f(e,`__sentry_wrapped__`,r);try{Object.getOwnPropertyDescriptor(r,`name`).configurable&&Object.defineProperty(r,`name`,{get(){return e.name}})}catch{}return r}function de(){let e=h(),{referrer:t}=H.document||{},{userAgent:n}=H.navigator||{};return{url:e,headers:{...t&&{Referer:t},...n&&{"User-Agent":n}}}}var G=typeof __SENTRY_DEBUG__>`u`||__SENTRY_DEBUG__;function K(e={}){let r=H.document,i=r?.head||r?.body;if(!i){G&&t.error(`[showReportDialog] Global document not defined`);return}let a=n(),o=g()?.getDsn();if(!o){G&&t.error(`[showReportDialog] DSN not configured`);return}let s={...e,user:{...a.getUser(),...e.user},eventId:e.eventId||u()},c=H.document.createElement(`script`);c.async=!0,c.crossOrigin=`anonymous`,c.src=ce(o,s);let{onLoad:l,onClose:d}=s;if(l&&(c.onload=l),d){let e=t=>{if(t.data===`__sentry_reportdialog_closed__`)try{d()}finally{H.removeEventListener(`message`,e)}};H.addEventListener(`message`,e)}i.appendChild(c)}var q=e(_());function fe(e){let t=e.match(/^([^.]+)/);return t!==null&&parseInt(t[0])>=17}function pe(e,t){let n=new WeakSet;function r(e,t){if(!n.has(e)){if(e.cause)return n.add(e),r(e.cause,t);e.cause=t}}r(e,t)}function me(e,{componentStack:t},n){if(fe(q.version)&&p(e)&&t){let n=Error(e.message);n.name=`React ErrorBoundary ${e.name}`,n.stack=t,pe(e,n)}return o(r=>(r.setContext(`react`,{componentStack:t}),l(e,n)))}var he=typeof __SENTRY_DEBUG__>`u`||__SENTRY_DEBUG__,J={componentStack:null,error:null,eventId:null},Y=class extends q.Component{constructor(e){super(e),this.state=J,this._openFallbackReportDialog=!0;let t=g();t&&e.showDialog&&(this._openFallbackReportDialog=!1,this._cleanupHook=t.on(`afterSendEvent`,t=>{!t.type&&this._lastEventId&&t.event_id===this._lastEventId&&K({...e.dialogOptions,eventId:this._lastEventId})}))}componentDidCatch(e,t){let{componentStack:n}=t,{beforeCapture:r,onError:i,showDialog:a,dialogOptions:s}=this.props;o(o=>{r&&r(o,e,n);let c=me(e,t,{mechanism:{handled:this.props.handled==null?!!this.props.fallback:this.props.handled,type:`auto.function.react.error_boundary`}});i&&i(e,n,c),a&&(this._lastEventId=c,this._openFallbackReportDialog&&K({...s,eventId:c})),this.setState({error:e,componentStack:n,eventId:c})})}componentDidMount(){let{onMount:e}=this.props;e&&e()}componentWillUnmount(){let{error:e,componentStack:t,eventId:n}=this.state,{onUnmount:r}=this.props;r&&(this.state===J?r(null,null,null):r(e,t,n)),this._cleanupHook&&=(this._cleanupHook(),void 0)}resetErrorBoundary(){let{onReset:e}=this.props,{error:t,componentStack:n,eventId:r}=this.state;e&&e(t,n,r),this.setState(J)}render(){let{fallback:e,children:n}=this.props,r=this.state;if(r.componentStack===null)return typeof n==`function`?n():n;let i=typeof e==`function`?q.createElement(e,{error:r.error,componentStack:r.componentStack,resetError:()=>this.resetErrorBoundary(),eventId:r.eventId}):e;return q.isValidElement(i)?i:(e&&he&&t.warn(`fallback did not produce a valid ReactElement`),null)}},X=S(`circle-dot`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`circle`,{cx:`12`,cy:`12`,r:`1`,key:`41hilf`}]]),ge=S(`quote`,[[`path`,{d:`M16 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z`,key:`rib7q0`}],[`path`,{d:`M5 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z`,key:`1ymkrd`}]]);function _e(e){if(!(e instanceof Error))return!1;if(e.name===`ChunkLoadError`)return!0;let t=e.message;return t.includes(`Failed to fetch dynamically imported module`)||t.includes(`Importing a module script failed`)||t.includes(`error loading dynamically imported module`)||t.includes(`Loading chunk`)}var Z=b();function ve({children:e,fallback:t=null,errorFallback:n}){return(0,Z.jsx)(Y,{beforeCapture:(e,t)=>{e.setTag(`boundary`,_e(t)?`lazy-component`:`component-render`)},fallback:n??(0,Z.jsx)(`div`,{role:`alert`,className:`p-3 text-body-small-default text-[var(--content-tertiary)]`,children:`This section couldn't load. Reload the page to try again.`}),children:(0,Z.jsx)(q.Suspense,{fallback:t,children:e})})}async function Q(e,t,n){let{data:r,error:i,response:a}=await z({path:{assistant_id:e,id:t},query:n?{status:n}:{},throwOnError:!1});if(N(a,i,`Failed to fetch comments.`),!a.ok){let e=M(i,a,`Failed to fetch comments.`);throw new P(a.status,e)}return r?.comments??[]}async function $(e,t,n){let{data:r,error:i,response:a}=await L({path:{assistant_id:e,id:t},body:n,throwOnError:!1});if(N(a,i,`Failed to create comment.`),!a.ok||!r){let e=M(i,a,`Failed to create comment.`);throw new P(a.status,e)}return r}async function ye(e,t,n,r){let i=r===`resolved`?`resolve`:`reopen`,{data:a,error:o,response:s}=await R({path:{assistant_id:e,id:t,commentId:n},body:{status:r},throwOnError:!1});if(N(s,o,`Failed to ${i} comment.`),!s.ok||!a){let e=M(o,s,`Failed to ${i} comment.`);throw new P(s.status,e)}return a}async function be(e,t,n){return ye(e,t,n,`resolved`)}async function xe(e,t,n){return ye(e,t,n,`open`)}async function Se(e,t,n){let{error:r,response:i}=await I({path:{assistant_id:e,id:t,commentId:n},throwOnError:!1});if(N(i,r,`Failed to delete comment.`),!i.ok){let e=M(r,i,`Failed to delete comment.`);throw new P(i.status,e)}return{success:!0}}function Ce(e){return e.trim().split(/\s+/).filter(e=>e.length>0).length}async function we(e,t){await F({path:{assistant_id:e.assistantId},body:{surfaceId:e.surfaceId,conversationId:e.conversationId,title:e.title,content:t,wordCount:Ce(t)},throwOnError:!0})}function Te({onSubmit:e,placeholder:t=`Add a comment…`,autoFocus:n=!1}){let[r,i]=(0,q.useState)(``),[a,o]=(0,q.useState)(!1),s=(0,q.useRef)(null),c=(0,q.useCallback)(async t=>{t.preventDefault();let n=r.trim();if(!(!n||a)){o(!0);try{await e(n),i(``),s.current?.focus()}finally{o(!1)}}},[r,a,e]),l=(0,q.useCallback)(e=>{e.key===`Enter`&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),c(e))},[c]),u=r.trim().length>0&&!a;return(0,Z.jsxs)(`form`,{onSubmit:c,className:`flex flex-col gap-2`,children:[(0,Z.jsx)(`textarea`,{ref:s,value:r,onChange:e=>i(e.target.value),onKeyDown:l,placeholder:t,autoFocus:n,disabled:a,rows:2,className:`block w-full resize-none rounded-md border border-[var(--field-border)] bg-[var(--field-bg)] px-3 py-2 text-body-medium-lighter text-[var(--content-default)] placeholder:text-[var(--content-tertiary)] outline-none transition-[border-color] duration-150 ease-out focus-visible:border-[var(--border-active)] disabled:cursor-not-allowed disabled:opacity-60`}),(0,Z.jsx)(`div`,{className:`flex justify-end`,children:(0,Z.jsx)(v,{type:`submit`,variant:`primary`,size:`compact`,leftIcon:(0,Z.jsx)(D,{}),disabled:!u,children:a?`Sending…`:`Send`})})]})}function Ee(e){let t=new Date(e),n=new Date,r=n.getTime()-t.getTime(),i=Math.floor(r/6e4);if(i<1)return`just now`;if(i<60)return`${i}m ago`;let a=Math.floor(i/60);if(a<24)return`${a}h ago`;let o=Math.floor(a/24);return o<7?`${o}d ago`:t.toLocaleDateString(void 0,{month:`short`,day:`numeric`,year:n.getFullYear()===t.getFullYear()?void 0:`numeric`})}function De(e){return e===`assistant`?`Assistant`:`You`}function Oe({comment:e,onCommentSelect:t}){let n=e.anchorText!=null;return(0,Z.jsxs)(`div`,{className:`flex gap-2`,children:[(0,Z.jsx)(`span`,{className:`mt-0.5 flex h-6 w-6 shrink-0 items-center justify-center rounded-full`,style:{backgroundColor:e.author===`assistant`?`var(--primary-second-hover)`:`var(--surface-active)`},"aria-hidden":`true`,children:e.author===`assistant`?(0,Z.jsx)(x,{variant:`label-small-default`,className:`text-[var(--primary-base)]`,children:`V`}):(0,Z.jsx)(k,{size:12,style:{color:`var(--content-secondary)`}})}),(0,Z.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Z.jsx)(x,{variant:`body-small-emphasised`,className:`text-[var(--content-emphasised)]`,children:De(e.author)}),(0,Z.jsx)(x,{variant:`label-small-default`,className:`text-[var(--content-tertiary)]`,children:Ee(e.createdAt)})]}),n?(0,Z.jsx)(`button`,{type:`button`,className:`mt-1 cursor-pointer border-none bg-transparent p-0`,onClick:()=>t?.(e),title:`Jump to highlighted text`,children:(0,Z.jsx)(j,{tone:`neutral`,leftIcon:(0,Z.jsx)(ge,{}),children:(0,Z.jsx)(`span`,{className:`max-w-[200px] truncate`,children:e.anchorText})})}):null,(0,Z.jsx)(x,{variant:`body-small-default`,as:`p`,className:`mt-1 text-[var(--content-default)] whitespace-pre-wrap break-words`,children:e.content})]})]})}function ke({comment:e,replies:t,onResolve:n,onReopen:r,onDelete:i,onReply:a,onCommentSelect:o}){let[s,c]=(0,q.useState)(!1),l=e.status===`resolved`,u=(0,q.useCallback)(async t=>{await a(e.id,t),c(!1)},[e.id,a]);return(0,Z.jsxs)(`div`,{className:`flex flex-col gap-3 rounded-lg border border-[var(--border-base)] p-3`,style:{backgroundColor:l?`var(--surface-base)`:`var(--surface-overlay)`},children:[(0,Z.jsxs)(`div`,{className:`flex items-center justify-between`,children:[l?(0,Z.jsx)(j,{tone:`positive`,leftIcon:(0,Z.jsx)(C,{}),children:`Resolved`}):(0,Z.jsx)(j,{tone:`neutral`,leftIcon:(0,Z.jsx)(X,{}),children:`Open`}),(0,Z.jsxs)(`div`,{className:`flex items-center gap-1`,children:[l?(0,Z.jsx)(v,{variant:`ghost`,size:`compact`,leftIcon:(0,Z.jsx)(X,{}),onClick:()=>void r(e.id),children:`Reopen`}):(0,Z.jsx)(v,{variant:`ghost`,size:`compact`,leftIcon:(0,Z.jsx)(C,{}),onClick:()=>void n(e.id),children:`Resolve`}),(0,Z.jsx)(v,{variant:`dangerGhost`,size:`compact`,iconOnly:(0,Z.jsx)(O,{}),"aria-label":`Delete comment`,onClick:()=>void i(e.id)})]})]}),(0,Z.jsx)(Oe,{comment:e,onCommentSelect:o}),t.length>0?(0,Z.jsx)(`div`,{className:`ml-8 flex flex-col gap-3 border-l-2 border-[var(--border-base)] pl-3`,children:t.map(e=>(0,Z.jsx)(Oe,{comment:e,onCommentSelect:o},e.id))}):null,s?(0,Z.jsx)(`div`,{className:`ml-8`,children:(0,Z.jsx)(Te,{onSubmit:u,placeholder:`Write a reply…`,autoFocus:!0})}):(0,Z.jsx)(v,{variant:`ghost`,size:`compact`,leftIcon:(0,Z.jsx)(E,{}),onClick:()=>c(!0),className:`self-start`,children:`Reply`})]})}function Ae({surfaceId:e,assistantId:t,conversationId:n,onClose:r,onCommentSelect:i,onSubmitFeedback:a,handleRef:o}){let[s,c]=(0,q.useState)([]),[l,u]=(0,q.useState)(!0),d=(0,q.useRef)(!0),f=(0,q.useCallback)(async n=>{try{let r=await Q(t,e);!n?.aborted&&d.current&&c(r)}finally{!n?.aborted&&d.current&&u(!1)}},[t,e]);(0,q.useEffect)(()=>{d.current=!0;let e=new AbortController;return f(e.signal),()=>{e.abort(),d.current=!1}},[f]),(0,q.useImperativeHandle)(o,()=>({refreshComments:f}),[f]);let p=(0,q.useMemo)(()=>s.filter(e=>e.parentCommentId===null),[s]),m=(0,q.useMemo)(()=>{let e=new Map;for(let t of s)if(t.parentCommentId!==null){let n=e.get(t.parentCommentId);n?n.push(t):e.set(t.parentCommentId,[t])}return e},[s]),h=(0,q.useCallback)(async r=>{await $(t,e,{content:r,conversationId:n}),await f()},[t,e,n,f]),g=(0,q.useCallback)(async n=>{await be(t,e,n),await f()},[t,e,f]),_=(0,q.useCallback)(async n=>{await xe(t,e,n),await f()},[t,e,f]),y=(0,q.useCallback)(async n=>{await Se(t,e,n),await f()},[t,e,f]),ee=(0,q.useCallback)(async(r,i)=>{await $(t,e,{content:i,conversationId:n,parentCommentId:r}),await f()},[t,e,n,f]),b=p.length,S=(0,q.useMemo)(()=>s.some(e=>e.status===`open`),[s]);return(0,Z.jsxs)(`div`,{className:`flex h-full w-80 flex-col border-l border-[var(--border-base)] bg-[var(--surface-overlay)]`,children:[(0,Z.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2 border-b border-[var(--border-base)] px-4 py-3`,children:[(0,Z.jsx)(T,{size:16,style:{color:`var(--content-secondary)`}}),(0,Z.jsx)(x,{variant:`title-small`,className:`flex-1 text-[var(--content-emphasised)]`,children:`Comments`}),!l&&b>0?(0,Z.jsx)(j,{tone:`neutral`,children:b}):null,(0,Z.jsx)(v,{variant:`ghost`,size:`compact`,iconOnly:(0,Z.jsx)(A,{}),"aria-label":`Close comments panel`,onClick:r})]}),(0,Z.jsx)(`div`,{className:`flex-1 overflow-y-auto p-4`,children:l?(0,Z.jsx)(`div`,{className:`flex items-center justify-center py-12`,children:(0,Z.jsx)(x,{variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,children:`Loading comments…`})}):p.length===0?(0,Z.jsxs)(`div`,{className:`flex flex-col items-center justify-center gap-2 py-12`,children:[(0,Z.jsx)(T,{size:32,style:{color:`var(--content-tertiary)`}}),(0,Z.jsx)(x,{variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,children:`No comments yet`})]}):(0,Z.jsx)(`div`,{className:`flex flex-col gap-3`,children:p.map(e=>(0,Z.jsx)(ke,{comment:e,replies:m.get(e.id)??[],onResolve:g,onReopen:_,onDelete:y,onReply:ee,onCommentSelect:i},e.id))})}),(0,Z.jsxs)(`div`,{className:`flex shrink-0 flex-col gap-3 border-t border-[var(--border-base)] p-4`,children:[(0,Z.jsx)(Te,{onSubmit:h,placeholder:`Add a comment…`}),a&&S?(0,Z.jsx)(v,{variant:`primary`,size:`compact`,leftIcon:(0,Z.jsx)(D,{}),onClick:a,className:`w-full`,children:`Submit Feedback`}):null]})]})}var je=(0,q.lazy)(()=>y(()=>import(`./tiptap-document-editor-DPkcv0pe.js`).then(e=>({default:e.TiptapDocumentEditor})),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43])));function Me({assistantId:e,documentName:t,content:n,onClose:r,handleRef:i,surfaceId:a,conversationId:o,workspacePath:s=null,onExport:c,onSubmitFeedback:l}){let u={source:`document`,assistantId:e,surfaceId:a,conversationId:o,title:t},d=ee(),[f,p]=(0,q.useState)(!1),[m,h]=(0,q.useState)(null),[g,_]=(0,q.useState)(!1),[y,b]=(0,q.useState)([]),[S,C]=(0,q.useState)(null),[E,D]=(0,q.useState)(`idle`),O=(0,q.useRef)(null),k=(0,q.useRef)(null),j=(0,q.useRef)(null),M=(0,q.useRef)(u),N=(0,q.useRef)(s),P=(0,q.useRef)(null);(0,q.useLayoutEffect)(()=>{M.current=u,N.current=s});let F=(0,q.useCallback)(()=>{let t=P.current;if(t===null)return;P.current=null;let n=M.current,r=N.current;we(n,t).then(()=>{D(`saved`),j.current=setTimeout(()=>D(`idle`),2e3),r!==null&&(d.invalidateQueries({queryKey:[`assistantsWorkspaceFileRetrieve`]}),d.invalidateQueries({queryKey:ae(r,e)}),d.invalidateQueries({queryKey:ie(r,e)}))},()=>D(`idle`))},[e,d]),I=(0,q.useCallback)(e=>{k.current&&clearTimeout(k.current),j.current&&clearTimeout(j.current),P.current=e,D(`saving`),k.current=setTimeout(()=>{k.current=null,F()},1e3)},[F]),L=(0,q.useRef)(F);(0,q.useLayoutEffect)(()=>{L.current=F}),(0,q.useEffect)(()=>()=>{j.current&&=(clearTimeout(j.current),null),k.current&&(clearTimeout(k.current),k.current=null,L.current())},[]),(0,q.useEffect)(()=>{f||_(!1)},[f]),(0,q.useEffect)(()=>{b([]),C(null),h(null)},[a,s]);let R=(0,q.useCallback)(e=>{e.anchorStart!=null&&e.anchorEnd!=null&&C({start:e.anchorStart,end:e.anchorEnd})},[]),z=(0,q.useCallback)(e=>{b(e.filter(e=>e.status===`open`&&e.anchorStart!=null&&e.anchorEnd!=null).map(e=>({commentId:e.id,anchorStart:e.anchorStart,anchorEnd:e.anchorEnd})))},[]),B=(0,q.useCallback)(async()=>{await O.current?.refreshComments();try{z(await Q(e,a))}catch{}},[e,a,z]);(0,q.useImperativeHandle)(i,()=>({refreshComments:B}),[B]);let oe=(0,q.useCallback)(async t=>{if(m){_(!0);try{await $(e,a,{content:t,conversationId:o,anchorStart:m.start,anchorEnd:m.end,anchorText:m.text}),h(null),p(!0),await B()}finally{_(!1)}}},[e,a,o,m,B]),V=(0,q.useCallback)(()=>{p(e=>!e)},[]);return(0,q.useEffect)(()=>{if(!f)return;let t=!1;return(async()=>{try{let n=await Q(e,a);t||z(n)}catch{}})(),()=>{t=!0}},[f,e,a,z]),(0,Z.jsxs)(`div`,{className:`flex h-full flex-col overflow-hidden rounded-xl border border-[var(--border-base)] bg-[var(--surface-overlay)]`,children:[(0,Z.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2 border-b border-[var(--border-base)] px-4 py-2`,children:[(0,Z.jsx)(re,{size:16,style:{color:`var(--content-secondary)`}}),(0,Z.jsx)(x,{variant:`title-small`,className:`min-w-0 flex-1 truncate text-[var(--content-emphasised)]`,title:s??void 0,children:t}),E===`idle`?null:(0,Z.jsxs)(`span`,{className:`flex items-center gap-1 text-[var(--content-tertiary)]`,children:[E===`saving`?(0,Z.jsx)(w,{size:12,className:`animate-spin`}):(0,Z.jsx)(te,{size:12}),(0,Z.jsx)(x,{variant:`label-small-default`,className:`text-[var(--content-tertiary)]`,children:E===`saving`?`Saving…`:`Saved`})]}),c?(0,Z.jsx)(v,{variant:`ghost`,size:`compact`,leftIcon:(0,Z.jsx)(ne,{}),onClick:c,children:`Export`}):null,(0,Z.jsx)(v,{variant:f?`outlined`:`ghost`,size:`compact`,leftIcon:(0,Z.jsx)(T,{}),onClick:V,"aria-label":f?`Close comments`:`Open comments`,"aria-pressed":f,children:`Comments`}),(0,Z.jsx)(v,{variant:`ghost`,size:`compact`,iconOnly:(0,Z.jsx)(A,{}),onClick:r,"aria-label":`Close document`,tooltip:`Close`})]}),(0,Z.jsxs)(`div`,{className:`relative flex min-h-0 flex-1`,children:[(0,Z.jsx)(`div`,{className:`relative min-w-0 flex-1`,children:(0,Z.jsx)(ve,{fallback:(0,Z.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,Z.jsx)(w,{className:`size-5 animate-spin text-fg-tertiary`})}),children:(0,Z.jsx)(je,{content:n,onContentChange:I,onTextSelect:e=>{if(!e){h(null);return}h({start:e.start,end:e.end,text:e.text,rect:{top:e.rect.top,left:e.rect.left,bottom:e.rect.bottom,right:e.rect.right,width:e.rect.width,height:e.rect.height}})},commentAnchors:y,highlightRange:S,onCommentSubmit:e=>void oe(e),commentSubmitting:g,className:`h-full`})})}),f?(0,Z.jsx)(Ae,{surfaceId:a,assistantId:e,conversationId:o,onClose:()=>p(!1),onCommentSelect:R,onSubmitFeedback:l,handleRef:O}):null]})]})}export{Y as a,de as c,se as d,X as i,le as l,ve as n,G as o,_e as r,H as s,Me as t,W as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./document-viewer-container-
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./document-viewer-container-wjJ6ACJv.js";import{t as n}from"./react-BFJW0bSv.js";import{d as r,p as i,u as a}from"./chunk-5KNZJZUH-BUqIilZr.js";import{t as o}from"./jsx-runtime-D3ZM-ToX.js";import{t as s}from"./typography-BeUa5Fd-.js";import"./src-DyqTPMO2.js";import{t as c}from"./loader-circle-DOtGXcds.js";import{n as l}from"./resolved-assistants-store-BFI9c7ip.js";import{Ct as u,St as d,xt as f}from"./sdk.gen-CBPZ2IdN.js";import{d as p}from"./routes-iipg2wkc.js";import{t as m}from"./use-bus-subscription-0lId9jya.js";import{i as h,o as g}from"./viewer-store-CayI6XWh.js";import{n as _}from"./use-is-mobile-BP8UePsY.js";import{r as v,t as y}from"./edit-chat-session-DKBzd1lH.js";import{t as b}from"./use-edge-swipe-back-BGq52vVr.js";var x=e(n(),1);function S({surfaceId:e,enabled:t,onCommentsChanged:n}){let r=(0,x.useRef)(n);return(0,x.useLayoutEffect)(()=>{r.current=n},[n]),(0,x.useCallback)(n=>{if(!t)return;let i=n.message;switch(i.type){case`document_comment_created`:case`document_comment_resolved`:case`document_comment_reopened`:case`document_comment_deleted`:i.surfaceId===e&&r.current();break;default:break}},[e,t])}var C=o();function w(){let{surfaceId:e}=i(),n=r(),{pathname:o}=a(),w=_(),T=l.use.activeAssistantId(),E=(0,x.useRef)(null),[D,O]=(0,x.useState)(null),[k,A]=(0,x.useState)(!0),[j,M]=(0,x.useState)(null),N=(0,x.useRef)(null);(0,x.useEffect)(()=>{if(!e){M(`No document ID provided.`),A(!1);return}if(!T)return;let t=!1;return(async()=>{try{let{data:n}=await d({path:{assistant_id:T,id:e},throwOnError:!0});if(t)return;O(n),g.getState().clearDocumentEverywhere(e)}catch{t||M(`Failed to load document.`)}finally{t||A(!1)}})(),()=>{t=!0}},[e,T]);let P=(0,x.useCallback)(()=>{N.current?.refreshComments()},[]);m(`sse.event`,S({surfaceId:e??``,enabled:!!e,onCommentsChanged:P}));let F=(0,x.useCallback)(()=>{n(-1)},[n]);b({containerRef:E,onBack:F,enabled:w,navKey:o});let I=(0,x.useCallback)(async()=>{if(!D||!T||!e)return;let t=D.conversationId||y(T,e)||(typeof globalThis.crypto?.randomUUID==`function`?globalThis.crypto.randomUUID():`draft-${Date.now()}-${Math.random().toString(16).slice(2)}`);if(v(T,e,t),t!==D.conversationId)try{await f({path:{assistant_id:T,id:e},body:{conversationId:t},throwOnError:!0})}catch{}h.getState().openDocument(),h.getState().setLoadedDocument({source:`document`,surfaceId:D.surfaceId,conversationId:t,documentName:D.title,content:D.content});let r=`Please review and address my comments on "${D.title}".`;n(`${p.conversation(t)}?prompt=${encodeURIComponent(r)}`)},[D,T,e,n]),L=(0,x.useCallback)(async()=>{if(!D||!T)return;let{data:e,response:t}=await u({path:{assistant_id:T,id:D.surfaceId},throwOnError:!1,parseAs:`blob`});if(!t?.ok||!e)return;let n=URL.createObjectURL(e);Object.assign(document.createElement(`a`),{href:n,download:`${D.title||`document`}.pdf`}).click(),URL.revokeObjectURL(n)},[D,T]);return k?(0,C.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,C.jsx)(c,{size:24,className:`animate-spin`,style:{color:`var(--content-tertiary)`}})}):j||!D||!T?(0,C.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,C.jsx)(s,{variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,children:j??`Document not found.`})}):(0,C.jsx)(`div`,{ref:E,className:`flex min-h-0 flex-1 flex-col`,children:(0,C.jsx)(t,{source:`document`,surfaceId:D.surfaceId,assistantId:T,conversationId:D.conversationId,documentName:D.title,content:D.content,onClose:F,onExport:L,onSubmitFeedback:I,handleRef:N})})}export{w as DocumentViewerPage};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e,t}from"./chunk-5KNZJZUH-BUqIilZr.js";import{t as n}from"./useQuery-Bz-fbQ-m.js";import{t as r}from"./jsx-runtime-D3ZM-ToX.js";import{t as i}from"./clock-B8umTTHk.js";import"./src-
|
|
1
|
+
import{n as e,t}from"./chunk-5KNZJZUH-BUqIilZr.js";import{t as n}from"./useQuery-Bz-fbQ-m.js";import{t as r}from"./jsx-runtime-D3ZM-ToX.js";import{t as i}from"./clock-B8umTTHk.js";import"./src-DyqTPMO2.js";import{t as a}from"./inbox-Zbr4HDc_.js";import{t as o}from"./loader-circle-DOtGXcds.js";import{t as s}from"./send-BlX2px_R.js";import{t as c}from"./triangle-alert-CB4pJgCL.js";import{t as l}from"./tag-DeMzQvCo.js";import{d as u}from"./routes-iipg2wkc.js";import{i as d}from"./use-platform-gate-2lhRAyKS.js";import{_ as f,h as p,p as m}from"./react-query.gen-DKb3mEwJ.js";import{t as h}from"./platform-login-notice-BEDBlins.js";import{t as g}from"./use-active-assistant-id-BvHP5Ojg.js";var _=r();function v(e){return new Date(e).toLocaleString(void 0,{month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`})}function y({title:e,children:t}){return(0,_.jsxs)(`div`,{className:`space-y-3`,children:[(0,_.jsx)(`h2`,{className:`text-title-small`,style:{color:`var(--content-default)`},children:e}),t]})}function b({tone:e=`info`,children:t}){let n=e===`error`;return(0,_.jsx)(`div`,{className:`rounded-md border px-4 py-3 text-body-medium-lighter`,style:{background:n?`var(--surface-negative-subtle, var(--surface-lift))`:`var(--surface-lift)`,borderColor:n?`var(--border-negative, var(--border-base))`:`var(--border-base)`,color:n?`var(--content-negative, var(--content-default))`:`var(--content-default)`},children:(0,_.jsxs)(`div`,{className:`flex items-start gap-2`,children:[n&&(0,_.jsx)(c,{className:`mt-0.5 h-4 w-4 shrink-0`,"aria-hidden":`true`}),(0,_.jsx)(`div`,{className:`flex-1`,children:t})]})})}function x({message:e,onRetry:t,retrying:n}){return(0,_.jsx)(b,{tone:`error`,children:(0,_.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,_.jsx)(`span`,{children:e}),(0,_.jsx)(`button`,{type:`button`,onClick:t,disabled:n,className:`text-body-small-default underline disabled:opacity-50`,style:{color:`var(--content-default)`},children:n?`Retrying…`:`Retry`})]})})}function S({label:e,value:t,sub:n}){return(0,_.jsxs)(`div`,{className:`rounded-xl border p-3`,style:{background:`var(--surface-lift)`,borderColor:`var(--border-base)`},children:[(0,_.jsx)(`p`,{className:`text-body-small-default`,style:{color:`var(--content-tertiary)`},children:e}),(0,_.jsx)(`p`,{className:`mt-1 text-title-large tabular-nums`,style:{color:`var(--content-default)`},children:t??`—`}),n&&(0,_.jsx)(`p`,{className:`text-body-small-default`,style:{color:`var(--content-disabled)`},children:n})]})}function C({email:e}){let t=e.direction===`inbound`;return(0,_.jsx)(`div`,{className:`rounded-xl border p-4`,style:{background:`var(--surface-lift)`,borderColor:`var(--border-base)`},children:(0,_.jsxs)(`div`,{className:`flex flex-col gap-2 sm:flex-row sm:items-center sm:justify-between`,children:[(0,_.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-1`,children:[(0,_.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,_.jsx)(l,{tone:t?`positive`:`neutral`,leftIcon:t?(0,_.jsx)(a,{}):(0,_.jsx)(s,{}),children:t?`Inbound`:`Outbound`}),(0,_.jsx)(`span`,{className:`truncate text-body-small-default`,style:{color:`var(--content-tertiary)`},children:e.from_address})]}),(0,_.jsx)(`p`,{className:`truncate text-body-medium-default`,style:{color:`var(--content-default)`},children:e.subject||`(no subject)`})]}),(0,_.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1.5 text-body-small-default`,style:{color:`var(--content-tertiary)`},children:[(0,_.jsx)(i,{className:`h-3 w-3`}),(0,_.jsx)(`span`,{children:v(e.created_at)})]})]})})}function w({assistantId:e,platformGate:r}){let i=r===`full`,a=n({...m({path:{assistant_id:e}}),enabled:i}),s=a.data?.results?.[0],c=n({...p({path:{assistant_id:e,id:s?.id??``}}),enabled:i&&!!s?.id}),l=n({...f({path:{assistant_id:e},query:{limit:10}}),enabled:i}),d=c.data?.usage,h=l.data?.results??[];return a.isLoading?(0,_.jsx)(`div`,{className:`flex items-center justify-center py-24`,children:(0,_.jsx)(o,{className:`h-8 w-8 animate-spin`,style:{color:`var(--content-tertiary)`}})}):a.isError?(0,_.jsx)(x,{message:`Couldn't load email addresses.`,onRetry:()=>{a.refetch()},retrying:a.isFetching}):s?(0,_.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[(0,_.jsx)(y,{title:`Totals`,children:(0,_.jsxs)(`div`,{className:`grid grid-cols-2 gap-3 sm:grid-cols-4`,children:[(0,_.jsx)(S,{label:`Sent today`,value:d?.sent_today,sub:d?`of ${d.daily_limit} daily limit`:void 0}),(0,_.jsx)(S,{label:`Received today`,value:d?.received_today}),(0,_.jsx)(S,{label:`Sent this month`,value:d?.sent_this_month}),(0,_.jsx)(S,{label:`Received this month`,value:d?.received_this_month})]})}),(0,_.jsx)(y,{title:`Recent Emails`,children:l.isLoading?(0,_.jsxs)(`div`,{className:`flex items-center gap-2 text-body-small-default`,style:{color:`var(--content-tertiary)`},children:[(0,_.jsx)(o,{className:`h-4 w-4 animate-spin`}),`Loading…`]}):l.isError?(0,_.jsx)(x,{message:`Couldn't load recent emails.`,onRetry:()=>{l.refetch()},retrying:l.isFetching}):h.length===0?(0,_.jsx)(b,{children:`No emails yet.`}):(0,_.jsx)(`div`,{className:`space-y-2`,children:h.map(e=>(0,_.jsx)(C,{email:e},e.id))})})]}):(0,_.jsxs)(b,{children:[`No email address registered yet.`,` `,(0,_.jsx)(t,{to:u.settings.ai,className:`underline`,style:{color:`var(--content-tertiary)`},children:`Set one up in AI Settings → Email.`})]})}function T(){let t=d(),n=g();return t===`gated`?(0,_.jsx)(e,{replace:!0,to:u.logs.root}):t===`disabled`?(0,_.jsx)(h,{children:`Log in to the Vellum platform to view emails.`}):(0,_.jsx)(w,{assistantId:n,platformGate:t})}export{T as EmailsPage};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-BENY-yx_.js";import{t as r}from"./jsx-runtime-D3ZM-ToX.js";import{t as i}from"./check-DSgjgwlo.js";import{
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-BENY-yx_.js";import{t as r}from"./jsx-runtime-D3ZM-ToX.js";import{t as i}from"./check-DSgjgwlo.js";import{K as a}from"./src-DyqTPMO2.js";import{t as o}from"./download-Byg0fi0d.js";import{t as s}from"./pencil-DidiUknI.js";import{t as c}from"./copy-to-clipboard-DnJHokIa.js";var l=e(t(),1),u=r(),d=`ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace`;function f({content:e,downloadContent:t,fileName:r,mimeType:d=`text/plain`,showEdit:f,isEditing:p,onToggleEdit:m,extraActions:h}){let[g,_]=(0,l.useState)(!1),v=(0,l.useRef)(null),y=(0,l.useCallback)(()=>{c(e,{errorMessage:`Couldn't copy the file contents.`,onCopied:()=>{_(!0),v.current&&clearTimeout(v.current),v.current=setTimeout(()=>_(!1),1500)}})},[e]),b=t??e,x=(0,l.useCallback)(()=>{let e=new Blob([b],{type:d}),t=URL.createObjectURL(e),n=document.createElement(`a`);n.href=t,n.download=r,n.click(),URL.revokeObjectURL(t)},[b,r,d]);return(0,l.useEffect)(()=>()=>{v.current&&clearTimeout(v.current)},[]),p?null:(0,u.jsxs)(`div`,{className:`absolute right-3 top-3 z-10 flex items-center gap-1 rounded-md bg-[var(--surface-primary)] shadow-sm`,children:[f&&m&&(0,u.jsx)(n,{variant:`ghost`,size:`regular`,iconOnly:(0,u.jsx)(s,{"aria-hidden":!0}),onClick:m,"aria-label":`Edit file`,className:`hover:bg-[var(--surface-base)]`}),h,(0,u.jsx)(n,{variant:`ghost`,size:`regular`,iconOnly:g?(0,u.jsx)(i,{"aria-hidden":!0}):(0,u.jsx)(a,{"aria-hidden":!0}),onClick:y,"aria-label":g?`Copied`:`Copy file contents`,className:`hover:bg-[var(--surface-base)]`}),(0,u.jsx)(n,{variant:`ghost`,size:`regular`,iconOnly:(0,u.jsx)(o,{"aria-hidden":!0}),onClick:x,"aria-label":`Download file`,className:`hover:bg-[var(--surface-base)]`})]})}function p({value:e,onChange:t,onSave:n}){return(0,u.jsx)(`textarea`,{className:`m-0 h-full w-full resize-none overflow-auto border-none bg-transparent p-4 text-body-medium-lighter leading-relaxed outline-none`,style:{color:`var(--content-default)`,fontFamily:d},value:e,onChange:e=>t(e.target.value),onKeyDown:e=>{(e.metaKey||e.ctrlKey)&&e.key===`s`&&(e.preventDefault(),n())},spellCheck:!1})}function m({isDirty:e,isSaving:t,error:r,onSave:i,onDiscard:a}){return(0,u.jsxs)(`div`,{className:`flex items-center justify-end gap-2 border-t px-3 py-2`,style:{borderColor:`var(--border-element)`},children:[r&&(0,u.jsx)(`span`,{className:`mr-auto text-body-small-default`,style:{color:`var(--system-error)`},children:r}),(0,u.jsx)(n,{variant:`ghost`,size:`compact`,disabled:t,onClick:a,children:`Discard`}),(0,u.jsx)(n,{variant:`primary`,size:`compact`,disabled:!e||t,onClick:i,children:t?`Saving…`:`Save`})]})}function h({content:e,readOnly:t,whiteSpace:n=`pre-wrap`,onStartEdit:r}){return(0,u.jsx)(`pre`,{className:`m-0 h-full overflow-auto p-4 text-body-medium-lighter leading-relaxed${t?``:` cursor-text`}`,style:{color:`var(--content-default)`,fontFamily:d,whiteSpace:n},onClick:t?void 0:r,children:e})}export{h as i,m as n,p as r,f as t};
|