@vellumai/web 0.10.4-dev.202607010028.1a4efcc → 0.10.4-dev.202607010146.a37a2fa

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (142) hide show
  1. package/dist/assets/{AnimatePresence-v8rrAm7n.js → AnimatePresence-uY0BR2n2.js} +1 -1
  2. package/dist/assets/{account-page-BYTIe1XI.js → account-page-DQ-mhgzD.js} +1 -1
  3. package/dist/assets/acp-run-detail-panel-F4jGaLGr.js +5 -0
  4. package/dist/assets/{add-credits-modal-FPXxOAMb.js → add-credits-modal-BiXT9GCG.js} +1 -1
  5. package/dist/assets/{advanced-page-UPgcMIra.js → advanced-page-DWy3_xJE.js} +1 -1
  6. package/dist/assets/{ai-page-CGEA7pTY.js → ai-page-DvWwWWSe.js} +1 -1
  7. package/dist/assets/{animated-avatar-Dt3HMkLe.js → animated-avatar-DjujnGJR.js} +1 -1
  8. package/dist/assets/{api-CwV4YyjT.js → api-Chh-fdux.js} +1 -1
  9. package/dist/assets/{api-key-screen-D1quwCLW.js → api-key-screen-BckE9IMc.js} +1 -1
  10. package/dist/assets/{archive-page-KY7n-0Qw.js → archive-page-CFFPhMCo.js} +1 -1
  11. package/dist/assets/assistant-api-Dp82rdTg.js +1 -0
  12. package/dist/assets/{assistant-feature-flag-store-9j2-Kf63.js → assistant-feature-flag-store-B-x4UdVS.js} +1 -1
  13. package/dist/assets/{assistant-status-panel-D1hbDikl.js → assistant-status-panel-CKqzTyXz.js} +1 -1
  14. package/dist/assets/auth-store-Cvj5lZ7o.js +2 -0
  15. package/dist/assets/background-task-detail-panel-C491zuhg.js +1 -0
  16. package/dist/assets/billing-page--ddtmJRL.js +3 -0
  17. package/dist/assets/{bookmarks-page-DnLy6VIU.js → bookmarks-page-Rzi8hBvA.js} +1 -1
  18. package/dist/assets/{build-state-D10hicGm.js → build-state-CI7ASQH5.js} +1 -1
  19. package/dist/assets/by-tool-use-id-index-Dbdu-8Kf.js +1 -0
  20. package/dist/assets/{client-feature-flag-store-Co2Hhr3q.js → client-feature-flag-store-D7sAlDlW.js} +1 -1
  21. package/dist/assets/{command-palette-B1B3JFxY.js → command-palette-DI2UhxPS.js} +1 -1
  22. package/dist/assets/{command-palette-window-page-Cg49NRQN.js → command-palette-window-page-D8V7p65K.js} +1 -1
  23. package/dist/assets/{community-page-C1LspNF5.js → community-page-DcVnBmFx.js} +1 -1
  24. package/dist/assets/{connect-page-C4TuRCyq.js → connect-page-Cbt4JSWk.js} +1 -1
  25. package/dist/assets/contacts-page-route-BV3-Vd6x.js +9 -0
  26. package/dist/assets/{debug-page-BU9E2Zpp.js → debug-page-BVIoqlde.js} +2 -2
  27. package/dist/assets/{deploy-dialogs-BffsSWHa.js → deploy-dialogs-D03Uk0Rn.js} +1 -1
  28. package/dist/assets/{detail-panel-stop-button-D0KsydFR.js → detail-panel-stop-button-wfqPI5Gm.js} +1 -1
  29. package/dist/assets/{detail-shell-BPCWck_r.js → detail-shell-Bv3NKx5s.js} +1 -1
  30. package/dist/assets/{developer-page-CnUodPF4.js → developer-page-Cin7Aqe9.js} +1 -1
  31. package/dist/assets/{devices-page-BBKhaTRg.js → devices-page-B9jm7IpO.js} +1 -1
  32. package/dist/assets/{diagnostics-Dd5CfP37.js → diagnostics-ChEKet-K.js} +1 -1
  33. package/dist/assets/{dictation-overlay-page-Dz04r9UQ.js → dictation-overlay-page-CF_ElkZT.js} +1 -1
  34. package/dist/assets/{document-viewer-page-DJq7Ygvy.js → document-viewer-page-oHeSeBg_.js} +1 -1
  35. package/dist/assets/{earn-credits-modal-fcQSixir.js → earn-credits-modal-Bz9ZtPne.js} +1 -1
  36. package/dist/assets/{emails-page-wd0TRGg5.js → emails-page-Ci1A4hnA.js} +1 -1
  37. package/dist/assets/{feature-flag-catalog-DV82F0L3.js → feature-flag-catalog-BD9vx85e.js} +1 -1
  38. package/dist/assets/{file-editor-DOP89Gof.js → file-editor-DEuQwSiV.js} +1 -1
  39. package/dist/assets/general-page-DG6oYb_H.js +1 -0
  40. package/dist/assets/{hatching-screen-DY3K0JOi.js → hatching-screen-DqW9u6T7.js} +1 -1
  41. package/dist/assets/{home-page-route-DONg99uG.js → home-page-route-Cbsx-6Pd.js} +1 -1
  42. package/dist/assets/hosting-screen-D3PQJGnh.js +1 -0
  43. package/dist/assets/identity-page-route-D6LmIeV7.js +1 -0
  44. package/dist/assets/index-CbZDhL8R.js +130 -0
  45. package/dist/assets/{index-BX26FZ8C.css → index-pahhv1V_.css} +1 -1
  46. package/dist/assets/{inspect-page-Bumwp983.js → inspect-page-CF9Ayo4W.js} +4 -4
  47. package/dist/assets/{install-WYTcfmdN.js → install-PnOuSvVB.js} +1 -1
  48. package/dist/assets/{integrations-page-BsTax_30.js → integrations-page-Cr-tXygA.js} +1 -1
  49. package/dist/assets/{intelligence-layout-D6U1Copv.js → intelligence-layout-BNgvJuLM.js} +1 -1
  50. package/dist/assets/{keyboard-shortcuts-page-D_GqzGiY.js → keyboard-shortcuts-page-C2n2dsd-.js} +1 -1
  51. package/dist/assets/{library-detail-page-Bw131lov.js → library-detail-page-D0niVoGO.js} +1 -1
  52. package/dist/assets/{library-page-jSdqmt8d.js → library-page-vhdWT6gT.js} +1 -1
  53. package/dist/assets/local-mode-CgrENuVf.js +39 -0
  54. package/dist/assets/{login-flow-Bu_R77mO.js → login-flow-DONovBeX.js} +1 -1
  55. package/dist/assets/{login-page-DPfXjBWn.js → login-page-9t0OhjZ_.js} +1 -1
  56. package/dist/assets/{logout-page-AznF3yAS.js → logout-page-DicyhkqL.js} +1 -1
  57. package/dist/assets/{logs-layout-BYJ41Qya.js → logs-layout-au0VXbNb.js} +1 -1
  58. package/dist/assets/{memory-router-playground-page-Dm3TiSY7.js → memory-router-playground-page-DCTR_mh0.js} +1 -1
  59. package/dist/assets/{messages-qxyeoKYS.js → messages-xsY377mD.js} +1 -1
  60. package/dist/assets/{metric-card-CderFn_K.js → metric-card-BSQEvW8u.js} +1 -1
  61. package/dist/assets/{mobile-sidebar-drawer-CfI8ihQa.js → mobile-sidebar-drawer-dvyeQG5_.js} +1 -1
  62. package/dist/assets/{native-biometric-CBWaVg3Q.js → native-biometric-BMNAVqxV.js} +2 -2
  63. package/dist/assets/{notifications-page-B8rJ9VKw.js → notifications-page-COTdJiXn.js} +1 -1
  64. package/dist/assets/{oauth-complete-page-z8o1ui13.js → oauth-complete-page-BE-O3kQl.js} +1 -1
  65. package/dist/assets/{oauth-popup-complete-page-Tkc-rQX9.js → oauth-popup-complete-page-BXSFGP82.js} +1 -1
  66. package/dist/assets/{pairing-page-m0oxNDQ9.js → pairing-page-DCN7wosZ.js} +1 -1
  67. package/dist/assets/{platform-detection-ByImsPTf.js → platform-detection-CrZF23_f.js} +1 -1
  68. package/dist/assets/{platform-loopback-page-D2HL9AUX.js → platform-loopback-page-WP6ZK2og.js} +1 -1
  69. package/dist/assets/plugins-page-CgXy8wOw.js +1 -0
  70. package/dist/assets/prechat-route-Dlxfnhlc.js +1 -0
  71. package/dist/assets/{prefs-BJa0q2Gz.js → prefs-CDgkoxVx.js} +1 -1
  72. package/dist/assets/privacy-page-GobR1d9D.js +1 -0
  73. package/dist/assets/{privacy-screen-RyAPZfA7.js → privacy-screen-Dc2hlvoL.js} +1 -1
  74. package/dist/assets/{provider-callback-page-D3_-eNaE.js → provider-callback-page-6xGqU2cr.js} +1 -1
  75. package/dist/assets/{provider-signup-page-DHI17XiE.js → provider-signup-page-CrWI2ul2.js} +1 -1
  76. package/dist/assets/{quick-input-page-DX5Rrr0p.js → quick-input-page-CyO-UVOQ.js} +1 -1
  77. package/dist/assets/remote-gateway-session-BigLiDPm.js +1 -0
  78. package/dist/assets/{research-mock-page-DYca4sbx.js → research-mock-page-CFeRg2m9.js} +1 -1
  79. package/dist/assets/{research-onboarding-route-Ba74KUBl.js → research-onboarding-route-CPFxApXp.js} +3 -3
  80. package/dist/assets/{resolved-assistants-store-Cp4J43BK.js → resolved-assistants-store-Dqf0LJrA.js} +1 -1
  81. package/dist/assets/{review-terms-screen-D4lBqvba.js → review-terms-screen-DlWWIPhL.js} +1 -1
  82. package/dist/assets/select-assistant-screen-DRGlR5tq.js +1 -0
  83. package/dist/assets/{settings-layout-D9gcFAQr.js → settings-layout-CPlHwZar.js} +1 -1
  84. package/dist/assets/share-feedback-modal-BtexHlGh.js +1 -0
  85. package/dist/assets/{sidebar-tree-BFvRtzPm.js → sidebar-tree-BSfeq3rN.js} +1 -1
  86. package/dist/assets/{signup-page-CW6PcJ-3.js → signup-page-CD82HLMa.js} +1 -1
  87. package/dist/assets/{signup-shell-DOF8aXn0.js → signup-shell-DMX1tgqB.js} +1 -1
  88. package/dist/assets/{skills-page-BUy5sEoN.js → skills-page-uPBTcfof.js} +1 -1
  89. package/dist/assets/{sounds-page-g_BwlxnY.js → sounds-page-D5Otlu0m.js} +1 -1
  90. package/dist/assets/subagent-detail-panel-CwrQ-fU2.js +4 -0
  91. package/dist/assets/subagent-store-7iuZZvpK.js +3 -0
  92. package/dist/assets/{system-events-page-BP8qivQM.js → system-events-page-C97rXw7f.js} +1 -1
  93. package/dist/assets/{tiptap-document-editor-BlIwazbg.js → tiptap-document-editor-D7FsRH57.js} +2 -2
  94. package/dist/assets/{tool-detail-panel-bEz99Rub.js → tool-detail-panel-C4rvmaIu.js} +1 -1
  95. package/dist/assets/trace-page-DC6afHEl.js +1 -0
  96. package/dist/assets/{upgrade-cancel-page-D4-wJgCa.js → upgrade-cancel-page-CPkecrqt.js} +1 -1
  97. package/dist/assets/{upgrade-success-page-BMxaY6Um.js → upgrade-success-page-jpqq2ebU.js} +1 -1
  98. package/dist/assets/{usage-page-qqfsQlxg.js → usage-page-CYhpUzpF.js} +1 -1
  99. package/dist/assets/{use-active-assistant-id-ZxDeBTfL.js → use-active-assistant-id-BVzVN4_g.js} +1 -1
  100. package/dist/assets/use-is-org-ready-BZPwjmJ0.js +1 -0
  101. package/dist/assets/{use-onboarding-login-DwVCJ7DH.js → use-onboarding-login-Cl5KRcns.js} +1 -1
  102. package/dist/assets/{use-reduced-motion-D32BDyn0.js → use-reduced-motion-BG6r0Z46.js} +1 -1
  103. package/dist/assets/{use-skill-categories-CZml3JEH.js → use-skill-categories-DnGU6jFt.js} +1 -1
  104. package/dist/assets/{viewer-store-BSiJen54.js → viewer-store-DPvYSSNt.js} +1 -1
  105. package/dist/assets/{voice-page-CNB9Pxor.js → voice-page-CmWbntyV.js} +1 -1
  106. package/dist/assets/{weather-forecast-display-270rsUDb.js → weather-forecast-display-B5N0WiEJ.js} +1 -1
  107. package/dist/assets/{welcome-screen-Cqkp2VuN.js → welcome-screen-CM2JfU7K.js} +1 -1
  108. package/dist/assets/workflow-detail-panel-A3Kmykm3.js +1 -0
  109. package/dist/assets/workspace-page-Ae6mnQRy.js +1 -0
  110. package/dist/index.html +34 -34
  111. package/package.json +1 -1
  112. package/dist/assets/acp-run-detail-panel-DSh8Ovx2.js +0 -5
  113. package/dist/assets/assistant-api-DsiQd51V.js +0 -1
  114. package/dist/assets/auth-store-DhoDi3Ka.js +0 -2
  115. package/dist/assets/background-task-detail-panel-BssEr931.js +0 -1
  116. package/dist/assets/billing-page-KDeiZ67m.js +0 -3
  117. package/dist/assets/contacts-page-route-CUppjd6B.js +0 -9
  118. package/dist/assets/general-page-CPBHVyTD.js +0 -1
  119. package/dist/assets/hosting-screen-CVc_n57L.js +0 -1
  120. package/dist/assets/identity-page-route-ppulI5aE.js +0 -1
  121. package/dist/assets/index-DbPUHSMl.js +0 -130
  122. package/dist/assets/local-mode-CvrNMtPF.js +0 -39
  123. package/dist/assets/plugins-page-DRvAzmXd.js +0 -1
  124. package/dist/assets/prechat-route-BH3zTo60.js +0 -1
  125. package/dist/assets/privacy-page-B_IftswZ.js +0 -1
  126. package/dist/assets/remote-gateway-session-znfqX8Fi.js +0 -1
  127. package/dist/assets/select-assistant-screen-C0FcoktK.js +0 -1
  128. package/dist/assets/share-feedback-modal-CFO00NHT.js +0 -1
  129. package/dist/assets/subagent-detail-panel-DZMGVqEM.js +0 -4
  130. package/dist/assets/subagent-store-uyvG6X03.js +0 -3
  131. package/dist/assets/three-dot-indicator-BOWJCSsU.js +0 -1
  132. package/dist/assets/trace-page-7kxcQ5q9.js +0 -1
  133. package/dist/assets/use-is-org-ready-DGnWseqw.js +0 -1
  134. package/dist/assets/workflow-detail-panel-Dl3mqk0u.js +0 -1
  135. package/dist/assets/workspace-page-DBZwYmVn.js +0 -1
  136. /package/dist/assets/{browser-BtcMMWcD.js → browser-DM38C5zq.js} +0 -0
  137. /package/dist/assets/{edit-chat-session-TX_J-I33.js → edit-chat-session-DcCgw5Qy.js} +0 -0
  138. /package/dist/assets/{native-deep-link-ODdFH_Wn.js → native-deep-link-C2-dXaz_.js} +0 -0
  139. /package/dist/assets/{native-file-Djc1KZs3.js → native-file-DIJL6af-.js} +0 -0
  140. /package/dist/assets/{proxy-E3RRrfO5.js → proxy-BgtfAoJj.js} +0 -0
  141. /package/dist/assets/{public-asset-B5BQLOj3.js → public-asset-C2P77n3W.js} +0 -0
  142. /package/dist/assets/{workflow-status-BuGeg_Pe.js → workflow-status-ByHycBJ_.js} +0 -0
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{i as t,r as n,s as r}from"./local-settings-lVNyIOJ_.js";import{t as i}from"./react-DJZBPgpf.js";import{t as a}from"./button-D7s2Q_uG.js";import{t as o}from"./chunk-5KNZJZUH-DdS6bb-3.js";import{t as s}from"./jsx-runtime-CVSDxk6A.js";import{t as c}from"./dropdown-CL8VmqrY.js";import{t as l}from"./toggle-X_kQW5my.js";import{t as u}from"./info-ciQS_i3y.js";import{a as d}from"./routes-C6gxiCrz.js";import{Bn as f,Fn as p,Hn as m,In as h,Ln as g,Nn as _,Pn as v,Rn as y,Vn as b,Xn as x,Yn as S,ka as C,zn as w}from"./index-DbPUHSMl.js";import{t as T}from"./detail-card-kfxLI0l_.js";var E=e(i(),1),D=s(),O=`vellum:voice:conversationTimeoutSeconds`,k=[{label:`Ctrl`,activator:{kind:`modifierOnly`,modifiers:[`control`]}},{label:`Alt`,activator:{kind:`modifierOnly`,modifiers:[`option`]}},{label:`Ctrl+Shift`,activator:{kind:`modifierOnly`,modifiers:[`control`,`shift`]}}],A={label:`Fn`,activator:p},j=[{label:`5 seconds`,value:`5`},{label:`10 seconds`,value:`10`},{label:`15 seconds`,value:`15`},{label:`30 seconds`,value:`30`},{label:`60 seconds`,value:`60`}],M=`30`,N=`text-body-small-default text-[var(--content-tertiary)]`;function P(){return(0,D.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[(0,D.jsx)(F,{}),(0,D.jsx)(L,{}),(0,D.jsx)(R,{}),(0,D.jsx)(B,{})]})}function F(){return(0,D.jsxs)(`div`,{className:`flex items-center gap-2 rounded-lg border border-[var(--border-subtle)] bg-[var(--field-bg)] px-3 py-2`,children:[(0,D.jsx)(u,{className:`h-3.5 w-3.5 shrink-0 text-[var(--primary-base)]`}),(0,D.jsx)(`span`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`Looking to configure Speech-to-Text or Text-to-Speech models?`}),(0,D.jsxs)(o,{to:d.settings.ai,className:`inline-flex items-center gap-1 text-body-medium-lighter text-[var(--system-positive-strong)] underline hover:opacity-80`,children:[`Go to Models & Services`,(0,D.jsx)(C,{className:`h-3 w-3`})]})]})}var I=``;function L(){let[e,n]=(0,E.useState)([]),[i,o]=(0,E.useState)(!1),[s,l]=(0,E.useState)(()=>x()),u=(0,E.useCallback)(async()=>{if(navigator.mediaDevices?.enumerateDevices)try{let e=(await navigator.mediaDevices.enumerateDevices()).filter(e=>e.kind===`audioinput`);o(e.length>0&&e.every(e=>!e.label)),n(e.filter(e=>e.deviceId!==``&&e.deviceId!==`default`&&e.deviceId!==`communications`))}catch{n([]),o(!1)}},[]),d=(0,E.useCallback)(async()=>{try{let e=await navigator.mediaDevices.getUserMedia({audio:!0});for(let t of e.getTracks())t.stop()}catch{}u()},[u]);(0,E.useEffect)(()=>{u();let e=navigator.mediaDevices;if(!e?.addEventListener)return;let t=()=>void u();return e.addEventListener(`devicechange`,t),()=>e.removeEventListener(`devicechange`,t)},[u]);let f=(0,E.useMemo)(()=>[{value:I,label:`System Default`},...e.map((e,t)=>({value:e.deviceId,label:e.label||`Microphone ${t+1}`}))],[e]),p=(0,E.useCallback)(e=>{l(e),e===I?t(S):r(S,e)},[]);return(0,D.jsx)(T,{title:`Microphone`,subtitle:`Which input device is used for dictation and voice conversations.`,children:(0,D.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,D.jsx)(`div`,{className:`max-w-xs`,children:(0,D.jsx)(c,{options:f,value:f.some(e=>e.value===s)?s:I,onChange:p,"aria-label":`Microphone`})}),i&&(0,D.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,D.jsx)(a,{variant:`outlined`,onClick:d,children:`Allow Microphone Access`}),(0,D.jsx)(`span`,{className:N,children:`Grant microphone access to list your available input devices.`})]})]})})}function R(){let e=_(),[t,i]=(0,E.useState)(()=>{let t=n(h,``);return t?f(t,{preserveFunction:e}):e?A.activator:{kind:`off`}}),[a,o]=(0,E.useState)(!1),[s,c]=(0,E.useState)([]),d=(0,E.useRef)(null),x=(0,E.useRef)(!1),S=(0,E.useMemo)(()=>e?[A,...k]:k,[e]),C=t.kind!==`off`,O=C&&!e,j=(0,E.useCallback)(e=>{i(e),r(h,b(e)),o(!1),c([])},[]),M=(0,E.useCallback)(()=>{o(!0),c([]),x.current=!1,requestAnimationFrame(()=>{d.current?.focus()})},[]),P=(0,E.useCallback)(()=>{o(!1),c([]),x.current=!1},[]),F=(0,E.useCallback)(t=>{let n=[];return e&&t.getModifierState(`Fn`)&&n.push(`function`),t.ctrlKey&&n.push(`control`),t.altKey&&n.push(`option`),t.shiftKey&&n.push(`shift`),t.metaKey&&n.push(`command`),n},[e]),I=(0,E.useCallback)(e=>{if(e.preventDefault(),e.stopPropagation(),e.key===`Escape`){P();return}let t=F(e),n=e.key;if(n===`Control`||n===`Alt`||n===`Shift`||n===`Meta`||n===`Fn`){c(t.includes(`function`)?p.modifiers:m(t));return}if(t.includes(`function`)){j(p);return}x.current=!0,j({kind:`key`,label:n.length===1?n.toUpperCase():n,modifiers:t})},[P,F,j]),L=(0,E.useCallback)(e=>{if(!a)return;e.preventDefault(),e.stopPropagation();let t=e.key;if(t===`Control`||t===`Alt`||t===`Shift`||t===`Meta`||t===`Fn`){if(x.current){x.current=!1,c([]);return}F(e).length===0&&s.length>0&&j({kind:`modifierOnly`,modifiers:s})}},[F,a,s,j]);(0,E.useEffect)(()=>{if(!a)return;let e=e=>{d.current&&!d.current.contains(e.target)&&P()};return window.addEventListener(`mousedown`,e),()=>window.removeEventListener(`mousedown`,e)},[P,a]);let R=C&&!S.some(e=>y(e.activator,t));return(0,D.jsx)(T,{title:`Push to Talk`,subtitle:`Hold the activation key to dictate text or start a voice conversation.`,children:(0,D.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,D.jsx)(l,{checked:C,onChange:n=>{n?t.kind===`off`&&j(e?A.activator:v):j({kind:`off`})},label:`Enable Push to Talk`}),C&&(0,D.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,D.jsx)(`span`,{className:N,children:`Activation Key:`}),(0,D.jsxs)(`div`,{ref:d,tabIndex:a?0:-1,onKeyDown:a?I:void 0,onKeyUp:a?L:void 0,className:`flex flex-wrap items-center gap-2 focus:outline-none`,children:[S.map(e=>{let n=y(e.activator,t);return(0,D.jsx)(z,{label:e.label,selected:n,onClick:()=>j(e.activator)},e.label)}),a?(0,D.jsx)(z,{label:s.length>0?w(s):`Press any key…`,selected:!0,recording:!0,onClick:P}):(0,D.jsx)(z,{label:R?g(t):`Custom`,selected:R,onClick:M})]}),O&&(0,D.jsxs)(`div`,{className:`flex items-start gap-1 pt-1 text-body-small-default text-[var(--content-quiet)]`,children:[(0,D.jsx)(u,{className:`mt-0.5 h-3 w-3 shrink-0`}),(0,D.jsx)(`span`,{children:`Push-to-Talk only works while this tab is focused, and browsers may intercept some shortcuts (e.g. Ctrl+T) before the page can see them. For always-on PTT, use the Vellum desktop app.`})]})]})]})})}function z({label:e,selected:t,recording:n=!1,onClick:r}){return(0,D.jsxs)(`button`,{type:`button`,onClick:r,className:[`inline-flex items-center gap-2 rounded-lg border px-3 py-1.5 text-body-medium-lighter transition-colors`,`border-[var(--border-subtle)]`,t?`bg-[var(--surface-active)]`:`bg-[var(--surface-lift)] hover:bg-[var(--surface-hover)]`,n?`animate-pulse`:``].filter(Boolean).join(` `),children:[(0,D.jsx)(`span`,{className:[`inline-block h-2.5 w-2.5 rounded-full border`,t?`border-[var(--primary-base)] bg-[var(--primary-base)]`:`border-[var(--border-element)]`].join(` `)}),(0,D.jsx)(`span`,{className:`text-[var(--content-default)]`,children:e})]})}function B(){let[e,t]=(0,E.useState)(()=>{let e=n(O,M);return j.find(t=>t.value===e)?.value??M});return(0,D.jsx)(T,{title:`Conversation Timeout`,subtitle:`How long the assistant waits for you to start speaking before ending a voice conversation turn.`,children:(0,D.jsx)(`div`,{className:`max-w-xs`,children:(0,D.jsx)(c,{options:j,value:e,onChange:(0,E.useCallback)(e=>{t(e),r(O,e)},[]),"aria-label":`Conversation timeout`})})})}export{P as VoicePage};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{i as t,r as n,s as r}from"./local-settings-lVNyIOJ_.js";import{t as i}from"./react-DJZBPgpf.js";import{t as a}from"./button-D7s2Q_uG.js";import{t as o}from"./chunk-5KNZJZUH-DdS6bb-3.js";import{t as s}from"./jsx-runtime-CVSDxk6A.js";import{t as c}from"./dropdown-CL8VmqrY.js";import{t as l}from"./toggle-X_kQW5my.js";import{t as u}from"./info-ciQS_i3y.js";import{a as d}from"./routes-C6gxiCrz.js";import{Aa as f,Bn as p,Fn as m,Hn as h,In as g,Ln as _,Pn as v,Rn as y,Un as b,Vn as x,Xn as S,Zn as C,zn as w}from"./index-CbZDhL8R.js";import{t as T}from"./detail-card-kfxLI0l_.js";var E=e(i(),1),D=s(),O=`vellum:voice:conversationTimeoutSeconds`,k=[{label:`Ctrl`,activator:{kind:`modifierOnly`,modifiers:[`control`]}},{label:`Alt`,activator:{kind:`modifierOnly`,modifiers:[`option`]}},{label:`Ctrl+Shift`,activator:{kind:`modifierOnly`,modifiers:[`control`,`shift`]}}],A={label:`Fn`,activator:g},j=[{label:`5 seconds`,value:`5`},{label:`10 seconds`,value:`10`},{label:`15 seconds`,value:`15`},{label:`30 seconds`,value:`30`},{label:`60 seconds`,value:`60`}],M=`30`,N=`text-body-small-default text-[var(--content-tertiary)]`;function P(){return(0,D.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[(0,D.jsx)(F,{}),(0,D.jsx)(L,{}),(0,D.jsx)(R,{}),(0,D.jsx)(B,{})]})}function F(){return(0,D.jsxs)(`div`,{className:`flex items-center gap-2 rounded-lg border border-[var(--border-subtle)] bg-[var(--field-bg)] px-3 py-2`,children:[(0,D.jsx)(u,{className:`h-3.5 w-3.5 shrink-0 text-[var(--primary-base)]`}),(0,D.jsx)(`span`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`Looking to configure Speech-to-Text or Text-to-Speech models?`}),(0,D.jsxs)(o,{to:d.settings.ai,className:`inline-flex items-center gap-1 text-body-medium-lighter text-[var(--system-positive-strong)] underline hover:opacity-80`,children:[`Go to Models & Services`,(0,D.jsx)(f,{className:`h-3 w-3`})]})]})}var I=``;function L(){let[e,n]=(0,E.useState)([]),[i,o]=(0,E.useState)(!1),[s,l]=(0,E.useState)(()=>C()),u=(0,E.useCallback)(async()=>{if(navigator.mediaDevices?.enumerateDevices)try{let e=(await navigator.mediaDevices.enumerateDevices()).filter(e=>e.kind===`audioinput`);o(e.length>0&&e.every(e=>!e.label)),n(e.filter(e=>e.deviceId!==``&&e.deviceId!==`default`&&e.deviceId!==`communications`))}catch{n([]),o(!1)}},[]),d=(0,E.useCallback)(async()=>{try{let e=await navigator.mediaDevices.getUserMedia({audio:!0});for(let t of e.getTracks())t.stop()}catch{}u()},[u]);(0,E.useEffect)(()=>{u();let e=navigator.mediaDevices;if(!e?.addEventListener)return;let t=()=>void u();return e.addEventListener(`devicechange`,t),()=>e.removeEventListener(`devicechange`,t)},[u]);let f=(0,E.useMemo)(()=>[{value:I,label:`System Default`},...e.map((e,t)=>({value:e.deviceId,label:e.label||`Microphone ${t+1}`}))],[e]),p=(0,E.useCallback)(e=>{l(e),e===I?t(S):r(S,e)},[]);return(0,D.jsx)(T,{title:`Microphone`,subtitle:`Which input device is used for dictation and voice conversations.`,children:(0,D.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,D.jsx)(`div`,{className:`max-w-xs`,children:(0,D.jsx)(c,{options:f,value:f.some(e=>e.value===s)?s:I,onChange:p,"aria-label":`Microphone`})}),i&&(0,D.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,D.jsx)(a,{variant:`outlined`,onClick:d,children:`Allow Microphone Access`}),(0,D.jsx)(`span`,{className:N,children:`Grant microphone access to list your available input devices.`})]})]})})}function R(){let e=v(),[t,i]=(0,E.useState)(()=>{let t=n(_,``);return t?x(t,{preserveFunction:e}):e?A.activator:{kind:`off`}}),[a,o]=(0,E.useState)(!1),[s,c]=(0,E.useState)([]),d=(0,E.useRef)(null),f=(0,E.useRef)(!1),S=(0,E.useMemo)(()=>e?[A,...k]:k,[e]),C=t.kind!==`off`,O=C&&!e,j=(0,E.useCallback)(e=>{i(e),r(_,h(e)),o(!1),c([])},[]),M=(0,E.useCallback)(()=>{o(!0),c([]),f.current=!1,requestAnimationFrame(()=>{d.current?.focus()})},[]),P=(0,E.useCallback)(()=>{o(!1),c([]),f.current=!1},[]),F=(0,E.useCallback)(t=>{let n=[];return e&&t.getModifierState(`Fn`)&&n.push(`function`),t.ctrlKey&&n.push(`control`),t.altKey&&n.push(`option`),t.shiftKey&&n.push(`shift`),t.metaKey&&n.push(`command`),n},[e]),I=(0,E.useCallback)(e=>{if(e.preventDefault(),e.stopPropagation(),e.key===`Escape`){P();return}let t=F(e),n=e.key;if(n===`Control`||n===`Alt`||n===`Shift`||n===`Meta`||n===`Fn`){c(t.includes(`function`)?g.modifiers:b(t));return}if(t.includes(`function`)){j(g);return}f.current=!0,j({kind:`key`,label:n.length===1?n.toUpperCase():n,modifiers:t})},[P,F,j]),L=(0,E.useCallback)(e=>{if(!a)return;e.preventDefault(),e.stopPropagation();let t=e.key;if(t===`Control`||t===`Alt`||t===`Shift`||t===`Meta`||t===`Fn`){if(f.current){f.current=!1,c([]);return}F(e).length===0&&s.length>0&&j({kind:`modifierOnly`,modifiers:s})}},[F,a,s,j]);(0,E.useEffect)(()=>{if(!a)return;let e=e=>{d.current&&!d.current.contains(e.target)&&P()};return window.addEventListener(`mousedown`,e),()=>window.removeEventListener(`mousedown`,e)},[P,a]);let R=C&&!S.some(e=>w(e.activator,t));return(0,D.jsx)(T,{title:`Push to Talk`,subtitle:`Hold the activation key to dictate text or start a voice conversation.`,children:(0,D.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,D.jsx)(l,{checked:C,onChange:n=>{n?t.kind===`off`&&j(e?A.activator:m):j({kind:`off`})},label:`Enable Push to Talk`}),C&&(0,D.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,D.jsx)(`span`,{className:N,children:`Activation Key:`}),(0,D.jsxs)(`div`,{ref:d,tabIndex:a?0:-1,onKeyDown:a?I:void 0,onKeyUp:a?L:void 0,className:`flex flex-wrap items-center gap-2 focus:outline-none`,children:[S.map(e=>{let n=w(e.activator,t);return(0,D.jsx)(z,{label:e.label,selected:n,onClick:()=>j(e.activator)},e.label)}),a?(0,D.jsx)(z,{label:s.length>0?p(s):`Press any key…`,selected:!0,recording:!0,onClick:P}):(0,D.jsx)(z,{label:R?y(t):`Custom`,selected:R,onClick:M})]}),O&&(0,D.jsxs)(`div`,{className:`flex items-start gap-1 pt-1 text-body-small-default text-[var(--content-quiet)]`,children:[(0,D.jsx)(u,{className:`mt-0.5 h-3 w-3 shrink-0`}),(0,D.jsx)(`span`,{children:`Push-to-Talk only works while this tab is focused, and browsers may intercept some shortcuts (e.g. Ctrl+T) before the page can see them. For always-on PTT, use the Vellum desktop app.`})]})]})]})})}function z({label:e,selected:t,recording:n=!1,onClick:r}){return(0,D.jsxs)(`button`,{type:`button`,onClick:r,className:[`inline-flex items-center gap-2 rounded-lg border px-3 py-1.5 text-body-medium-lighter transition-colors`,`border-[var(--border-subtle)]`,t?`bg-[var(--surface-active)]`:`bg-[var(--surface-lift)] hover:bg-[var(--surface-hover)]`,n?`animate-pulse`:``].filter(Boolean).join(` `),children:[(0,D.jsx)(`span`,{className:[`inline-block h-2.5 w-2.5 rounded-full border`,t?`border-[var(--primary-base)] bg-[var(--primary-base)]`:`border-[var(--border-element)]`].join(` `)}),(0,D.jsx)(`span`,{className:`text-[var(--content-default)]`,children:e})]})}function B(){let[e,t]=(0,E.useState)(()=>{let e=n(O,M);return j.find(t=>t.value===e)?.value??M});return(0,D.jsx)(T,{title:`Conversation Timeout`,subtitle:`How long the assistant waits for you to start speaking before ending a voice conversation turn.`,children:(0,D.jsx)(`div`,{className:`max-w-xs`,children:(0,D.jsx)(c,{options:j,value:e,onChange:(0,E.useCallback)(e=>{t(e),r(O,e)},[]),"aria-label":`Conversation timeout`})})})}export{P as VoicePage};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-DJZBPgpf.js";import{t as n}from"./jsx-runtime-CVSDxk6A.js";import{t as r}from"./moon-CKINz50a.js";import{t as i}from"./misc-CFzLzLPH.js";import{G as a,K as o,U as s,W as c,da as l,fa as u,ga as d,ha as f,ma as p,pa as m,pi as h,ri as g,sa as _,ui as v}from"./index-DbPUHSMl.js";var y=e(t(),1),b={"sun.max.fill":{icon:v,className:`text-orange-500`},"cloud.sun.fill":{icon:u,className:`text-amber-400`},"moon.fill":{icon:r,className:`text-blue-400`},"cloud.moon.fill":{icon:p,className:`text-blue-400`},"cloud.fill":{icon:l,className:`text-stone-400`},"cloud.rain.fill":{icon:m,className:`text-blue-400`},snowflake:{icon:h,className:`text-blue-300`},"cloud.bolt.fill":{icon:f,className:`text-orange-500`},"cloud.fog.fill":{icon:d,className:`text-stone-400`}},x={sunny:{icon:v,className:`text-orange-500`},clear:{icon:v,className:`text-orange-500`},"partly cloudy":{icon:u,className:`text-amber-400`},"mostly sunny":{icon:u,className:`text-amber-400`},cloudy:{icon:l,className:`text-stone-400`},overcast:{icon:l,className:`text-stone-400`},rainy:{icon:m,className:`text-blue-400`},rain:{icon:m,className:`text-blue-400`},drizzle:{icon:m,className:`text-blue-400`},snow:{icon:h,className:`text-blue-300`},snowy:{icon:h,className:`text-blue-300`},thunderstorm:{icon:f,className:`text-orange-500`},thunder:{icon:f,className:`text-orange-500`},foggy:{icon:d,className:`text-stone-400`},fog:{icon:d,className:`text-stone-400`},mist:{icon:d,className:`text-stone-400`},hazy:{icon:d,className:`text-stone-400`},night:{icon:r,className:`text-blue-400`},"mainly clear":{icon:v,className:`text-orange-500`},"mostly cloudy":{icon:l,className:`text-stone-400`},breezy:{icon:g,className:`text-stone-400`},windy:{icon:g,className:`text-stone-400`},cool:{icon:l,className:`text-stone-400`},warm:{icon:v,className:`text-orange-500`},hot:{icon:v,className:`text-orange-500`},cold:{icon:h,className:`text-blue-300`},"cold snap":{icon:h,className:`text-blue-300`},"warm, mostly sunny":{icon:u,className:`text-amber-400`},"cooler, breezy":{icon:g,className:`text-stone-400`}},S={icon:l,className:`text-stone-400`};function C(e){let t=b[e];if(t)return t;let n=e.toLowerCase(),r=x[n];if(r)return r;for(let[e,t]of Object.entries(x))if(n.includes(e))return t;return S}function w(e){if(typeof e==`string`){let t=e.match(/^(\d+)\s*mph\s*(.*)/i);if(t)return{speed:Number(t[1]),direction:t[2]?.trim()||void 0}}return{}}function T(e){let t;if(typeof e.location==`string`)t=e.location;else{let n=a(e.location);n&&typeof n.name==`string`&&(t=n.name)}if(!t)return null;let n=a(e.current),r=c(n?.temp)??c(e.currentTemp)??c(e.temperature)??c(e.temp),i=c(n?.feelsLike)??c(n?.feels_like)??c(n?.apparentTemperature)??c(e.feelsLike)??c(e.feels_like)??c(e.apparentTemperature),l=o(n?.condition)??o(e.condition),u=c(n?.humidity)??c(e.humidity),d=w(n?.wind??e.wind),f=c(n?.windSpeed)??c(n?.wind_speed)??c(e.windSpeed)??c(e.wind_speed)??d.speed,p=o(n?.windDirection)??o(n?.wind_direction)??o(e.windDirection)??o(e.wind_direction)??d.direction,m=a(e.units),h=o(m?.temperature)??o(n?.unit)??o(e.unit)??`F`,g=o(m?.speed)??o(e.windUnit)??o(e.wind_unit),_=s(e.hourly).map((e,t)=>({id:o(e.id)??String(t),time:o(e.time)??``,icon:o(e.icon)??o(e.condition)??`cloud.fill`,temp:c(e.tempC)??c(e.temp)??c(e.temperature),tempC:c(e.tempC)})),v=s([e.forecast,e.daily,e.days].find(Array.isArray)).map((e,t)=>({id:o(e.id)??String(t),day:o(e.day)??o(e.date),dayLabel:o(e.dayLabel)??o(e.date),icon:o(e.icon)??o(e.condition)??`cloud.fill`,low:c(e.low),high:c(e.high),lowC:c(e.lowC),highC:c(e.highC),precip:c(e.precip)??c(e.precipitation)??c(e.precipitationProbability),condition:o(e.condition)}));return{location:t,currentTemp:r,feelsLike:i,condition:l,humidity:u,windSpeed:f,windDirection:p,windUnit:g,unit:h,hourly:_.length>0?_:void 0,forecast:v.length>0?v:void 0}}function E(e){return e*9/5+32}function D(e){return(e-32)*5/9}function O(e,t,n){if(e===void 0)return null;let r=e;return t&&!n&&(r=D(e)),!t&&n&&(r=E(e)),`${Math.round(r)}`}function k(e,t,n){return e.tempC===void 0?e.temp===void 0?null:O(e.temp,t,n):O(e.tempC,!1,n)}function A(e,t,n){return e.lowC===void 0?O(e.low,t,n):O(e.lowC,!1,n)}function j(e,t,n){return e.highC===void 0?O(e.high,t,n):O(e.highC,!1,n)}var M=n();function N({icon:e,size:t=20}){let{icon:n,className:r}=C(e);return(0,M.jsx)(n,{width:t,height:t,className:r})}function P({useFahrenheit:e,onToggle:t}){return(0,M.jsxs)(`div`,{className:`flex overflow-hidden rounded-md border border-[var(--border-element)]`,children:[(0,M.jsx)(`button`,{type:`button`,onClick:()=>t(!0),className:i(`px-2 py-0.5 text-body-small-default transition-colors`,e?`bg-[var(--primary-base)] text-[var(--content-inset)]`:`bg-transparent text-[var(--content-quiet)]`),children:`°F`}),(0,M.jsx)(`button`,{type:`button`,onClick:()=>t(!1),className:i(`px-2 py-0.5 text-body-small-default transition-colors`,e?`bg-transparent text-[var(--content-quiet)]`:`bg-[var(--primary-base)] text-[var(--content-inset)]`),children:`°C`})]})}function F({data:e,sourceIsFahrenheit:t,useFahrenheit:n,onToggle:r}){let i=e.location,a=O(e.currentTemp,t,n),o=O(e.feelsLike,t,n),s=n?`F`:`C`,c=e.forecast?.[0],l=c?j(c,t,n):null,u=c?A(c,t,n):null,d=null;return e.windSpeed!==void 0&&(d=`${Math.round(e.windSpeed)} ${e.windUnit??`mph`}`,e.windDirection&&(d=`${e.windDirection} ${d}`)),(0,M.jsxs)(`div`,{children:[(0,M.jsxs)(`div`,{className:`flex items-start justify-between`,children:[(0,M.jsxs)(`div`,{children:[(0,M.jsx)(`div`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:i}),a!==null&&(0,M.jsxs)(`div`,{className:`mt-1 text-4xl font-light text-[var(--content-default)]`,children:[a,`°`,s]}),e.condition&&(0,M.jsx)(`div`,{className:`mt-0.5 text-body-small-default text-[var(--content-quiet)]`,children:e.condition})]}),(0,M.jsx)(P,{useFahrenheit:n,onToggle:r})]}),(0,M.jsxs)(`div`,{className:`mt-2 flex flex-wrap items-center gap-3`,children:[o!==null&&(0,M.jsxs)(`span`,{className:`text-body-small-default text-[var(--content-quiet)]`,children:[`Feels like `,o,`°`]}),l!==null&&u!==null&&(0,M.jsxs)(`span`,{className:`text-body-small-default text-[var(--content-quiet)]`,children:[`H:`,l,`° L:`,u,`°`]}),d&&(0,M.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-full bg-[var(--tag-bg-neutral)] px-2 py-0.5 text-label-medium-default text-[var(--content-tertiary)]`,children:[(0,M.jsx)(g,{width:12,height:12}),d]}),e.humidity!==void 0&&(0,M.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-full bg-[var(--tag-bg-neutral)] px-2 py-0.5 text-label-medium-default text-[var(--content-tertiary)]`,children:[(0,M.jsx)(_,{width:12,height:12}),e.humidity,`%`]})]})]})}function I({hourly:e,sourceIsFahrenheit:t,useFahrenheit:n}){return(0,M.jsx)(`div`,{className:`mt-3 border-t border-[var(--border-element)] pt-3`,children:(0,M.jsx)(`div`,{className:`flex gap-3 overflow-x-auto`,children:e.map((e,r)=>{let i=e.time.toLowerCase()===`now`,a=k(e,t,n);return(0,M.jsxs)(`div`,{className:`flex min-w-[3rem] shrink-0 flex-col items-center gap-1`,children:[(0,M.jsx)(`span`,{className:i?`text-body-small-emphasised text-[var(--content-default)]`:`text-label-medium-default text-[var(--content-quiet)]`,children:i?`Now`:e.time}),(0,M.jsx)(N,{icon:e.icon,size:18}),a!==null&&(0,M.jsxs)(`span`,{className:`text-body-small-default text-[var(--content-default)]`,children:[a,`°`]})]},e.id??r)})})})}function L({forecast:e,currentTemp:t,sourceIsFahrenheit:n,useFahrenheit:r}){let{globalMin:a,globalMax:o}=(0,y.useMemo)(()=>{let t=1/0,n=-1/0;for(let r of e){let e=r.lowC??r.low,i=r.highC??r.high;e!==void 0&&e<t&&(t=e),i!==void 0&&i>n&&(n=i)}return{globalMin:t===1/0?0:t,globalMax:n===-1/0?100:n}},[e]),s=o-a||1;return(0,M.jsx)(`div`,{className:`mt-3 border-t border-[var(--border-element)] pt-3`,children:(0,M.jsx)(`div`,{className:`flex flex-col gap-2`,children:e.map((e,c)=>{let l=e.dayLabel??e.day??`Day ${c+1}`,u=l.toLowerCase()===`today`,d=A(e,n,r),f=j(e,n,r),p=e.precip,m=e.lowC??e.low??a,h=e.highC??e.high??o,g=(m-a)/s*100,_=(h-a)/s*100,v=Math.max(_-g,2),y=null;if(u&&t!==void 0){let r=(e.lowC!==void 0||e.highC!==void 0)&&n?(t-32)*5/9:t;y=h===m?50:(Math.max(m,Math.min(h,r))-m)/(h-m)*100}return(0,M.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,M.jsx)(`span`,{className:i(`w-12 shrink-0 truncate text-body-small-default`,u?`text-[var(--content-default)]`:`text-[var(--content-quiet)]`),children:l}),(0,M.jsxs)(`div`,{className:`flex w-10 shrink-0 items-center justify-center gap-0.5`,children:[(0,M.jsx)(N,{icon:e.icon,size:16}),p!==void 0&&p>0&&(0,M.jsxs)(`span`,{className:`text-label-small-default text-blue-400`,children:[Math.round(p),`%`]})]}),(0,M.jsx)(`span`,{className:`w-7 shrink-0 text-right text-body-small-default text-[var(--content-faint)]`,children:d===null?`--`:`${d}°`}),(0,M.jsxs)(`div`,{className:`relative h-1.5 flex-1 overflow-hidden rounded-full bg-[var(--border-subtle)]`,children:[(0,M.jsx)(`div`,{className:`absolute top-0 h-full rounded-full bg-[var(--primary-base)]`,style:{left:`${g}%`,width:`${v}%`}}),y!==null&&(0,M.jsx)(`div`,{className:`absolute top-1/2 h-2.5 w-2.5 -translate-x-1/2 -translate-y-1/2 rounded-full border-2 border-[var(--aux-white)] bg-[var(--aux-white)] shadow-sm`,style:{left:`${g+y/100*v}%`}})]}),(0,M.jsx)(`span`,{className:`w-7 shrink-0 text-right text-body-small-default text-[var(--content-default)]`,children:f===null?`--`:`${f}°`})]},e.id??c)})})})}function R({templateData:e,fallback:t}){let n=(0,y.useMemo)(()=>T(e),[e]),r=n?.unit?.toUpperCase()===`F`||n?.unit?.toLowerCase()===`fahrenheit`,[i,a]=(0,y.useState)(null),o=i??r;return!n||n.currentTemp===void 0&&!n.forecast?.length?t??null:(0,M.jsxs)(`div`,{className:`mt-3`,children:[(0,M.jsx)(F,{data:n,sourceIsFahrenheit:r,useFahrenheit:o,onToggle:a}),n.hourly&&n.hourly.length>0&&(0,M.jsx)(I,{hourly:n.hourly,sourceIsFahrenheit:r,useFahrenheit:o}),n.forecast&&n.forecast.length>0&&(0,M.jsx)(L,{forecast:n.forecast,currentTemp:n.currentTemp,sourceIsFahrenheit:r,useFahrenheit:o})]})}export{R as WeatherForecastDisplay};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-DJZBPgpf.js";import{t as n}from"./jsx-runtime-CVSDxk6A.js";import{t as r}from"./moon-CKINz50a.js";import{t as i}from"./misc-CFzLzLPH.js";import{G as a,K as o,U as s,W as c,_a as l,ca as u,di as d,fa as f,ga as p,ha as m,ii as h,ma as g,mi as _,pa as v}from"./index-CbZDhL8R.js";var y=e(t(),1),b={"sun.max.fill":{icon:d,className:`text-orange-500`},"cloud.sun.fill":{icon:v,className:`text-amber-400`},"moon.fill":{icon:r,className:`text-blue-400`},"cloud.moon.fill":{icon:m,className:`text-blue-400`},"cloud.fill":{icon:f,className:`text-stone-400`},"cloud.rain.fill":{icon:g,className:`text-blue-400`},snowflake:{icon:_,className:`text-blue-300`},"cloud.bolt.fill":{icon:p,className:`text-orange-500`},"cloud.fog.fill":{icon:l,className:`text-stone-400`}},x={sunny:{icon:d,className:`text-orange-500`},clear:{icon:d,className:`text-orange-500`},"partly cloudy":{icon:v,className:`text-amber-400`},"mostly sunny":{icon:v,className:`text-amber-400`},cloudy:{icon:f,className:`text-stone-400`},overcast:{icon:f,className:`text-stone-400`},rainy:{icon:g,className:`text-blue-400`},rain:{icon:g,className:`text-blue-400`},drizzle:{icon:g,className:`text-blue-400`},snow:{icon:_,className:`text-blue-300`},snowy:{icon:_,className:`text-blue-300`},thunderstorm:{icon:p,className:`text-orange-500`},thunder:{icon:p,className:`text-orange-500`},foggy:{icon:l,className:`text-stone-400`},fog:{icon:l,className:`text-stone-400`},mist:{icon:l,className:`text-stone-400`},hazy:{icon:l,className:`text-stone-400`},night:{icon:r,className:`text-blue-400`},"mainly clear":{icon:d,className:`text-orange-500`},"mostly cloudy":{icon:f,className:`text-stone-400`},breezy:{icon:h,className:`text-stone-400`},windy:{icon:h,className:`text-stone-400`},cool:{icon:f,className:`text-stone-400`},warm:{icon:d,className:`text-orange-500`},hot:{icon:d,className:`text-orange-500`},cold:{icon:_,className:`text-blue-300`},"cold snap":{icon:_,className:`text-blue-300`},"warm, mostly sunny":{icon:v,className:`text-amber-400`},"cooler, breezy":{icon:h,className:`text-stone-400`}},S={icon:f,className:`text-stone-400`};function C(e){let t=b[e];if(t)return t;let n=e.toLowerCase(),r=x[n];if(r)return r;for(let[e,t]of Object.entries(x))if(n.includes(e))return t;return S}function w(e){if(typeof e==`string`){let t=e.match(/^(\d+)\s*mph\s*(.*)/i);if(t)return{speed:Number(t[1]),direction:t[2]?.trim()||void 0}}return{}}function T(e){let t;if(typeof e.location==`string`)t=e.location;else{let n=a(e.location);n&&typeof n.name==`string`&&(t=n.name)}if(!t)return null;let n=a(e.current),r=c(n?.temp)??c(e.currentTemp)??c(e.temperature)??c(e.temp),i=c(n?.feelsLike)??c(n?.feels_like)??c(n?.apparentTemperature)??c(e.feelsLike)??c(e.feels_like)??c(e.apparentTemperature),l=o(n?.condition)??o(e.condition),u=c(n?.humidity)??c(e.humidity),d=w(n?.wind??e.wind),f=c(n?.windSpeed)??c(n?.wind_speed)??c(e.windSpeed)??c(e.wind_speed)??d.speed,p=o(n?.windDirection)??o(n?.wind_direction)??o(e.windDirection)??o(e.wind_direction)??d.direction,m=a(e.units),h=o(m?.temperature)??o(n?.unit)??o(e.unit)??`F`,g=o(m?.speed)??o(e.windUnit)??o(e.wind_unit),_=s(e.hourly).map((e,t)=>({id:o(e.id)??String(t),time:o(e.time)??``,icon:o(e.icon)??o(e.condition)??`cloud.fill`,temp:c(e.tempC)??c(e.temp)??c(e.temperature),tempC:c(e.tempC)})),v=s([e.forecast,e.daily,e.days].find(Array.isArray)).map((e,t)=>({id:o(e.id)??String(t),day:o(e.day)??o(e.date),dayLabel:o(e.dayLabel)??o(e.date),icon:o(e.icon)??o(e.condition)??`cloud.fill`,low:c(e.low),high:c(e.high),lowC:c(e.lowC),highC:c(e.highC),precip:c(e.precip)??c(e.precipitation)??c(e.precipitationProbability),condition:o(e.condition)}));return{location:t,currentTemp:r,feelsLike:i,condition:l,humidity:u,windSpeed:f,windDirection:p,windUnit:g,unit:h,hourly:_.length>0?_:void 0,forecast:v.length>0?v:void 0}}function E(e){return e*9/5+32}function D(e){return(e-32)*5/9}function O(e,t,n){if(e===void 0)return null;let r=e;return t&&!n&&(r=D(e)),!t&&n&&(r=E(e)),`${Math.round(r)}`}function k(e,t,n){return e.tempC===void 0?e.temp===void 0?null:O(e.temp,t,n):O(e.tempC,!1,n)}function A(e,t,n){return e.lowC===void 0?O(e.low,t,n):O(e.lowC,!1,n)}function j(e,t,n){return e.highC===void 0?O(e.high,t,n):O(e.highC,!1,n)}var M=n();function N({icon:e,size:t=20}){let{icon:n,className:r}=C(e);return(0,M.jsx)(n,{width:t,height:t,className:r})}function P({useFahrenheit:e,onToggle:t}){return(0,M.jsxs)(`div`,{className:`flex overflow-hidden rounded-md border border-[var(--border-element)]`,children:[(0,M.jsx)(`button`,{type:`button`,onClick:()=>t(!0),className:i(`px-2 py-0.5 text-body-small-default transition-colors`,e?`bg-[var(--primary-base)] text-[var(--content-inset)]`:`bg-transparent text-[var(--content-quiet)]`),children:`°F`}),(0,M.jsx)(`button`,{type:`button`,onClick:()=>t(!1),className:i(`px-2 py-0.5 text-body-small-default transition-colors`,e?`bg-transparent text-[var(--content-quiet)]`:`bg-[var(--primary-base)] text-[var(--content-inset)]`),children:`°C`})]})}function F({data:e,sourceIsFahrenheit:t,useFahrenheit:n,onToggle:r}){let i=e.location,a=O(e.currentTemp,t,n),o=O(e.feelsLike,t,n),s=n?`F`:`C`,c=e.forecast?.[0],l=c?j(c,t,n):null,d=c?A(c,t,n):null,f=null;return e.windSpeed!==void 0&&(f=`${Math.round(e.windSpeed)} ${e.windUnit??`mph`}`,e.windDirection&&(f=`${e.windDirection} ${f}`)),(0,M.jsxs)(`div`,{children:[(0,M.jsxs)(`div`,{className:`flex items-start justify-between`,children:[(0,M.jsxs)(`div`,{children:[(0,M.jsx)(`div`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:i}),a!==null&&(0,M.jsxs)(`div`,{className:`mt-1 text-4xl font-light text-[var(--content-default)]`,children:[a,`°`,s]}),e.condition&&(0,M.jsx)(`div`,{className:`mt-0.5 text-body-small-default text-[var(--content-quiet)]`,children:e.condition})]}),(0,M.jsx)(P,{useFahrenheit:n,onToggle:r})]}),(0,M.jsxs)(`div`,{className:`mt-2 flex flex-wrap items-center gap-3`,children:[o!==null&&(0,M.jsxs)(`span`,{className:`text-body-small-default text-[var(--content-quiet)]`,children:[`Feels like `,o,`°`]}),l!==null&&d!==null&&(0,M.jsxs)(`span`,{className:`text-body-small-default text-[var(--content-quiet)]`,children:[`H:`,l,`° L:`,d,`°`]}),f&&(0,M.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-full bg-[var(--tag-bg-neutral)] px-2 py-0.5 text-label-medium-default text-[var(--content-tertiary)]`,children:[(0,M.jsx)(h,{width:12,height:12}),f]}),e.humidity!==void 0&&(0,M.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-full bg-[var(--tag-bg-neutral)] px-2 py-0.5 text-label-medium-default text-[var(--content-tertiary)]`,children:[(0,M.jsx)(u,{width:12,height:12}),e.humidity,`%`]})]})]})}function I({hourly:e,sourceIsFahrenheit:t,useFahrenheit:n}){return(0,M.jsx)(`div`,{className:`mt-3 border-t border-[var(--border-element)] pt-3`,children:(0,M.jsx)(`div`,{className:`flex gap-3 overflow-x-auto`,children:e.map((e,r)=>{let i=e.time.toLowerCase()===`now`,a=k(e,t,n);return(0,M.jsxs)(`div`,{className:`flex min-w-[3rem] shrink-0 flex-col items-center gap-1`,children:[(0,M.jsx)(`span`,{className:i?`text-body-small-emphasised text-[var(--content-default)]`:`text-label-medium-default text-[var(--content-quiet)]`,children:i?`Now`:e.time}),(0,M.jsx)(N,{icon:e.icon,size:18}),a!==null&&(0,M.jsxs)(`span`,{className:`text-body-small-default text-[var(--content-default)]`,children:[a,`°`]})]},e.id??r)})})})}function L({forecast:e,currentTemp:t,sourceIsFahrenheit:n,useFahrenheit:r}){let{globalMin:a,globalMax:o}=(0,y.useMemo)(()=>{let t=1/0,n=-1/0;for(let r of e){let e=r.lowC??r.low,i=r.highC??r.high;e!==void 0&&e<t&&(t=e),i!==void 0&&i>n&&(n=i)}return{globalMin:t===1/0?0:t,globalMax:n===-1/0?100:n}},[e]),s=o-a||1;return(0,M.jsx)(`div`,{className:`mt-3 border-t border-[var(--border-element)] pt-3`,children:(0,M.jsx)(`div`,{className:`flex flex-col gap-2`,children:e.map((e,c)=>{let l=e.dayLabel??e.day??`Day ${c+1}`,u=l.toLowerCase()===`today`,d=A(e,n,r),f=j(e,n,r),p=e.precip,m=e.lowC??e.low??a,h=e.highC??e.high??o,g=(m-a)/s*100,_=(h-a)/s*100,v=Math.max(_-g,2),y=null;if(u&&t!==void 0){let r=(e.lowC!==void 0||e.highC!==void 0)&&n?(t-32)*5/9:t;y=h===m?50:(Math.max(m,Math.min(h,r))-m)/(h-m)*100}return(0,M.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,M.jsx)(`span`,{className:i(`w-12 shrink-0 truncate text-body-small-default`,u?`text-[var(--content-default)]`:`text-[var(--content-quiet)]`),children:l}),(0,M.jsxs)(`div`,{className:`flex w-10 shrink-0 items-center justify-center gap-0.5`,children:[(0,M.jsx)(N,{icon:e.icon,size:16}),p!==void 0&&p>0&&(0,M.jsxs)(`span`,{className:`text-label-small-default text-blue-400`,children:[Math.round(p),`%`]})]}),(0,M.jsx)(`span`,{className:`w-7 shrink-0 text-right text-body-small-default text-[var(--content-faint)]`,children:d===null?`--`:`${d}°`}),(0,M.jsxs)(`div`,{className:`relative h-1.5 flex-1 overflow-hidden rounded-full bg-[var(--border-subtle)]`,children:[(0,M.jsx)(`div`,{className:`absolute top-0 h-full rounded-full bg-[var(--primary-base)]`,style:{left:`${g}%`,width:`${v}%`}}),y!==null&&(0,M.jsx)(`div`,{className:`absolute top-1/2 h-2.5 w-2.5 -translate-x-1/2 -translate-y-1/2 rounded-full border-2 border-[var(--aux-white)] bg-[var(--aux-white)] shadow-sm`,style:{left:`${g+y/100*v}%`}})]}),(0,M.jsx)(`span`,{className:`w-7 shrink-0 text-right text-body-small-default text-[var(--content-default)]`,children:f===null?`--`:`${f}°`})]},e.id??c)})})})}function R({templateData:e,fallback:t}){let n=(0,y.useMemo)(()=>T(e),[e]),r=n?.unit?.toUpperCase()===`F`||n?.unit?.toLowerCase()===`fahrenheit`,[i,a]=(0,y.useState)(null),o=i??r;return!n||n.currentTemp===void 0&&!n.forecast?.length?t??null:(0,M.jsxs)(`div`,{className:`mt-3`,children:[(0,M.jsx)(F,{data:n,sourceIsFahrenheit:r,useFahrenheit:o,onToggle:a}),n.hourly&&n.hourly.length>0&&(0,M.jsx)(I,{hourly:n.hourly,sourceIsFahrenheit:r,useFahrenheit:o}),n.forecast&&n.forecast.length>0&&(0,M.jsx)(L,{forecast:n.forecast,currentTemp:n.currentTemp,sourceIsFahrenheit:r,useFahrenheit:o})]})}export{R as WeatherForecastDisplay};
@@ -1 +1 @@
1
- import{t as e}from"./button-D7s2Q_uG.js";import{d as t}from"./chunk-5KNZJZUH-DdS6bb-3.js";import{t as n}from"./jsx-runtime-CVSDxk6A.js";import{l as r}from"./local-mode-CvrNMtPF.js";import{a as i}from"./routes-C6gxiCrz.js";import{t as a}from"./use-onboarding-login-DwVCJ7DH.js";import{nn as o}from"./index-DbPUHSMl.js";var s=n();function c(){let n=t(),{loading:c,error:l,login:u,cancel:d}=a();return(0,s.jsx)(o,{children:(0,s.jsx)(`div`,{className:`mx-auto flex min-h-screen w-full max-w-xl flex-col items-center px-6 pb-40 text-[var(--content-default)]`,children:(0,s.jsxs)(`div`,{className:`flex flex-1 flex-col items-center justify-center`,children:[(0,s.jsx)(`h1`,{className:`text-3xl font-semibold tracking-tight`,style:{animation:`fadeInUp 0.5s ease-out 0.1s both`},children:`Welcome to Vellum`}),(0,s.jsx)(`p`,{className:`mt-3 text-body-medium-lighter text-[var(--content-tertiary)]`,style:{animation:`fadeInUp 0.5s ease-out 0.3s both`},children:`Your own personal intelligence is just a step away.`}),l&&(0,s.jsx)(`p`,{className:`mt-4 text-body-small-default text-[var(--system-negative-strong)]`,children:l}),(0,s.jsxs)(`div`,{className:`mt-10 flex w-full max-w-sm flex-col gap-3`,style:{animation:`fadeInUp 0.5s ease-out 0.5s both`},children:[(0,s.jsx)(e,{variant:`primary`,size:`regular`,fullWidth:!0,className:`h-11 text-base`,onClick:c?d:()=>void u(),children:c?`Cancel`:`Log In`}),(0,s.jsx)(e,{variant:`ghost`,size:`regular`,fullWidth:!0,className:`h-11 text-base`,onClick:()=>{c&&d(),r()?n(i.selectAssistant):n(i.onboarding.hosting)},children:`Continue without account`})]})]})})})}export{c as WelcomeScreen};
1
+ import{t as e}from"./button-D7s2Q_uG.js";import{d as t}from"./chunk-5KNZJZUH-DdS6bb-3.js";import{t as n}from"./jsx-runtime-CVSDxk6A.js";import{l as r}from"./local-mode-CgrENuVf.js";import{a as i}from"./routes-C6gxiCrz.js";import{t as a}from"./use-onboarding-login-Cl5KRcns.js";import{rn as o}from"./index-CbZDhL8R.js";var s=n();function c(){let n=t(),{loading:c,error:l,login:u,cancel:d}=a();return(0,s.jsx)(o,{children:(0,s.jsx)(`div`,{className:`mx-auto flex min-h-screen w-full max-w-xl flex-col items-center px-6 pb-40 text-[var(--content-default)]`,children:(0,s.jsxs)(`div`,{className:`flex flex-1 flex-col items-center justify-center`,children:[(0,s.jsx)(`h1`,{className:`text-3xl font-semibold tracking-tight`,style:{animation:`fadeInUp 0.5s ease-out 0.1s both`},children:`Welcome to Vellum`}),(0,s.jsx)(`p`,{className:`mt-3 text-body-medium-lighter text-[var(--content-tertiary)]`,style:{animation:`fadeInUp 0.5s ease-out 0.3s both`},children:`Your own personal intelligence is just a step away.`}),l&&(0,s.jsx)(`p`,{className:`mt-4 text-body-small-default text-[var(--system-negative-strong)]`,children:l}),(0,s.jsxs)(`div`,{className:`mt-10 flex w-full max-w-sm flex-col gap-3`,style:{animation:`fadeInUp 0.5s ease-out 0.5s both`},children:[(0,s.jsx)(e,{variant:`primary`,size:`regular`,fullWidth:!0,className:`h-11 text-base`,onClick:c?d:()=>void u(),children:c?`Cancel`:`Log In`}),(0,s.jsx)(e,{variant:`ghost`,size:`regular`,fullWidth:!0,className:`h-11 text-base`,onClick:()=>{c&&d(),r()?n(i.selectAssistant):n(i.onboarding.hosting)},children:`Continue without account`})]})]})})})}export{c as WelcomeScreen};
@@ -0,0 +1 @@
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-DJZBPgpf.js";import{t as n}from"./button-D7s2Q_uG.js";import{t as r}from"./jsx-runtime-CVSDxk6A.js";import{t as i}from"./typography-BscuIPxA.js";import"./src-mai-NajT.js";import{t as a}from"./arrow-left-CP-EhDNF.js";import{n as o,r as s,t as c}from"./metric-card-BSQEvW8u.js";import{t as l}from"./ban-BpBuRCKI.js";import{t as u}from"./chevron-right-B6vEpVY0.js";import{t as d}from"./circle-check-DzlJxj_M.js";import{t as f}from"./triangle-alert-C3aHZq1F.js";import{t as p}from"./x-DxL-bCuT.js";import{n as m,r as h,t as g}from"./workflow-status-ByHycBJ_.js";import{t as _}from"./proxy-BgtfAoJj.js";import{t as v}from"./AnimatePresence-uY0BR2n2.js";import{t as y}from"./use-reduced-motion-BG6r0Z46.js";import{Na as b,at as x,ft as S,oi as C,ot as w,pi as T,ri as E,rt as D}from"./index-CbZDhL8R.js";import{t as O}from"./status-badge-pill-j3ke1d9o.js";var k=e(t(),1),A=r();function j({onClick:e,ariaLabel:t}){return(0,A.jsxs)(`button`,{type:`button`,"aria-label":t,onClick:e,className:`flex h-8 shrink-0 cursor-pointer items-center gap-1.5 rounded-lg border border-[var(--system-negative-strong)] bg-transparent px-2.5 py-1.5 text-[var(--system-negative-strong)] transition-colors hover:bg-[var(--system-negative-weak)]`,children:[(0,A.jsx)(T,{className:`h-3 w-3`,fill:`currentColor`}),(0,A.jsx)(i,{variant:`label-small-default`,children:`Stop`})]})}function M({title:e,body:t,emptyText:n}){return(0,A.jsxs)(`div`,{className:`mb-5`,children:[(0,A.jsx)(i,{variant:`body-medium-default`,as:`h3`,className:`mb-2 text-[var(--content-emphasised)]`,children:e}),t?(0,A.jsx)(i,{variant:`body-medium-lighter`,as:`p`,className:`whitespace-pre-wrap break-words leading-relaxed text-[var(--content-default)]`,children:t}):(0,A.jsx)(i,{variant:`body-medium-lighter`,as:`p`,className:`text-[var(--content-tertiary)]`,children:n})]})}function N({leaf:e}){let t=e.status===`running`?`Running…`:`No result summary`;return(0,A.jsxs)(`div`,{children:[(0,A.jsxs)(`div`,{className:`mb-5 grid grid-cols-2 gap-3`,children:[(0,A.jsx)(c,{icon:(0,A.jsx)(b,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-secondary)`}}),target:e.inputTokens??0,format:e=>o(Math.round(e)),label:`Input`}),(0,A.jsx)(c,{icon:(0,A.jsx)(s,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-secondary)`}}),target:e.outputTokens??0,format:e=>o(Math.round(e)),label:`Output`})]}),(0,A.jsx)(M,{title:`Prompt`,body:e.promptSummary,emptyText:`No prompt summary`}),(0,A.jsx)(M,{title:`Result`,body:e.resultSummary,emptyText:t})]})}function P({status:e}){return(0,A.jsx)(O,{color:m(e),label:h(e)})}function F(e){switch(e){case`completed`:return`var(--system-positive-strong)`;case`failed`:return`var(--system-negative-strong)`;case`cancelled`:return`var(--content-secondary)`;default:return`var(--primary-base)`}}function I(e){switch(e){case`completed`:return`Completed`;case`failed`:return`Failed`;case`cancelled`:return`Cancelled`;default:return`Running`}}function L({status:e}){return(0,A.jsx)(O,{color:F(e),label:I(e)})}function R({status:e}){let t=y(),n=`h-3.5 w-3.5 shrink-0`,r;return r=e===`running`?(0,A.jsx)(S,{className:`shrink-0`,dotSize:4,gap:2}):e===`completed`?(0,A.jsx)(d,{className:n,style:{color:`var(--system-positive-strong)`}}):e===`failed`?(0,A.jsx)(f,{className:n,style:{color:`var(--system-negative-strong)`}}):(0,A.jsx)(l,{className:n,style:{color:`var(--content-secondary)`},role:`img`,"aria-label":`Cancelled`}),(0,A.jsx)(v,{mode:`wait`,initial:!1,children:(0,A.jsx)(_.span,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:t?{duration:0}:{duration:.15,ease:[.16,1,.3,1]},className:`flex shrink-0 items-center`,children:r},e)})}function z({runId:e,leaf:t,components:n,onSelect:r}){let a=t.label??`Subagent ${t.seq}`,o=t.promptSummary,s=D(`${e}:${t.seq}`);return(0,A.jsx)(`button`,{type:`button`,onClick:r,"aria-label":`Open ${a} details`,className:`flex w-full cursor-pointer items-center justify-between gap-2 rounded-[6px] px-2 py-1.5 text-left transition-colors hover:bg-[var(--surface-overlay)]`,children:(0,A.jsxs)(`div`,{className:`flex min-w-0 items-center gap-1.5`,children:[(0,A.jsx)(R,{status:t.status}),n?(0,A.jsx)(w,{components:n,bodyShapeId:s.bodyShape,eyeStyleId:s.eyeStyle,colorId:s.color,size:16}):(0,A.jsx)(`div`,{style:{width:16,height:16,flexShrink:0},"aria-hidden":!0}),(0,A.jsx)(i,{variant:`body-medium-default`,title:a,className:`max-w-[60%] shrink-0 truncate text-[var(--content-default)]`,children:a}),o&&(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(`span`,{"aria-hidden":!0,className:`shrink-0 text-[var(--content-tertiary)] opacity-10`,children:`|`}),(0,A.jsx)(i,{variant:`body-medium-lighter`,title:o,className:`min-w-0 truncate text-[var(--content-tertiary)]`,children:o})]})]})})}function B({entry:e,onClose:t,onStop:r,onRequestJournal:l}){let d=g(e.status),f=y(),m=e.label??e.runId,h=e.agentsSpawned||e.leaves.size,v=x(),S=[...e.leaves.values()].sort((e,t)=>e.seq-t.seq),[T,O]=(0,k.useState)(null),[M,F]=(0,k.useState)(e.runId);M!==e.runId&&(F(e.runId),O(null));let I=T==null?void 0:e.leaves.get(T),R=I?D(`${e.runId}:${I.seq}`):void 0,B=(0,k.useCallback)(()=>O(null),[]),V=I?I.label??`Subagent ${I.seq}`:``,H=I?V:m,U=d?`live`:`final`;return(0,k.useEffect)(()=>{l?.(e.runId)},[e.runId,U,l]),(0,A.jsxs)(`div`,{className:`flex h-full flex-col overflow-hidden rounded-xl bg-[var(--surface-lift)]`,children:[I&&(0,A.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2 border-b border-[var(--border-hover)] px-5 py-3`,children:[(0,A.jsx)(`button`,{type:`button`,onClick:B,title:m,className:`min-w-0 shrink cursor-pointer truncate text-left text-[var(--content-default)] hover:underline`,children:(0,A.jsx)(i,{variant:`body-small-default`,as:`span`,children:m})}),(0,A.jsx)(u,{className:`h-2.5 w-2.5 shrink-0 text-[var(--content-tertiary)]`,"aria-hidden":!0}),(0,A.jsx)(i,{variant:`body-small-default`,as:`span`,title:V,className:`min-w-0 shrink truncate text-[var(--content-secondary)]`,children:V})]}),(0,A.jsxs)(`div`,{className:`flex shrink-0 items-center gap-3 border-b border-[var(--border-hover)] px-5 py-4`,children:[I&&(0,A.jsx)(n,{variant:`outlined`,iconOnly:(0,A.jsx)(a,{}),onClick:B,"aria-label":`Back to subagents`,tooltip:`Back`,className:`shrink-0 rounded-lg`}),I?v&&R?(0,A.jsx)(w,{components:v,bodyShapeId:R.bodyShape,eyeStyleId:R.eyeStyle,colorId:R.color,size:32}):(0,A.jsx)(`div`,{style:{width:32,height:32,flexShrink:0},"aria-hidden":!0}):(0,A.jsx)(`div`,{className:`flex h-8 w-8 shrink-0 items-center justify-center rounded-[6px] bg-[var(--surface-overlay)]`,children:(0,A.jsx)(E,{className:`h-4 w-4`,style:{color:`var(--content-secondary)`}})}),(0,A.jsx)(i,{variant:`title-medium`,title:H,className:`min-w-0 shrink truncate text-[var(--content-default)]`,children:H}),I?(0,A.jsx)(L,{status:I.status}):(0,A.jsx)(P,{status:e.status}),(0,A.jsx)(`span`,{className:`flex-1`}),d&&r&&(0,A.jsx)(j,{onClick:()=>r(e.runId),ariaLabel:`Stop workflow`}),(0,A.jsx)(n,{variant:`outlined`,iconOnly:(0,A.jsx)(p,{}),onClick:t,"aria-label":`Close workflow detail`,tooltip:`Close`,className:`shrink-0 rounded-lg`})]}),(0,A.jsx)(`div`,{className:`flex-1 overflow-y-auto px-5 py-5`,children:(0,A.jsx)(_.div,{initial:{opacity:0},animate:{opacity:1},transition:f?{duration:0}:{duration:.18,ease:[.16,1,.3,1]},children:I?(0,A.jsx)(N,{leaf:I}):(0,A.jsxs)(A.Fragment,{children:[(0,A.jsxs)(`div`,{className:`mb-5 grid grid-cols-3 gap-3`,children:[(0,A.jsx)(c,{icon:(0,A.jsx)(b,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-secondary)`}}),target:e.inputTokens,format:e=>o(Math.round(e)),label:`Input`}),(0,A.jsx)(c,{icon:(0,A.jsx)(s,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-secondary)`}}),target:e.outputTokens,format:e=>o(Math.round(e)),label:`Output`}),(0,A.jsx)(c,{icon:(0,A.jsx)(C,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-secondary)`}}),target:h,format:e=>o(Math.round(e)),label:`Agents`})]}),(0,A.jsxs)(`div`,{children:[(0,A.jsx)(i,{variant:`body-medium-default`,as:`h3`,className:`mb-4 text-[var(--content-emphasised)]`,children:`Subagents`}),S.length===0?(0,A.jsx)(i,{variant:`body-small-default`,className:`py-4 text-center text-[var(--content-tertiary)]`,children:`No subagents yet`}):(0,A.jsx)(`div`,{className:`flex flex-col gap-1`,children:S.map(t=>(0,A.jsx)(z,{runId:e.runId,leaf:t,components:v,onSelect:()=>O(t.seq)},t.seq))})]})]})},I?String(I.seq):`list`)})]})}export{B as WorkflowDetailPanel};
@@ -0,0 +1 @@
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-DJZBPgpf.js";import{t as n}from"./button-D7s2Q_uG.js";import{h as r}from"./chunk-5KNZJZUH-DdS6bb-3.js";import{n as i}from"./QueryClientProvider-DKhXIxGb.js";import{t as a}from"./useQuery-B45lW1Kk.js";import{t as o}from"./useMutation-Lj4VunQV.js";import{t as s}from"./jsx-runtime-CVSDxk6A.js";import{t as c}from"./queryOptions-BtNi-_9H.js";import{n as l,t as u}from"./panel-item-nGTDevWP.js";import{t as d}from"./menu-C_97pis4.js";import{a as f}from"./src-mai-NajT.js";import{t as p}from"./confirm-dialog-CfOXCE1N.js";import{t as m}from"./input-C8kfrq9r.js";import{t as h}from"./modal-D0Q3UWD0.js";import{t as g}from"./createLucideIcon-BlMXrA59.js";import{t as _}from"./chevron-right-B6vEpVY0.js";import{t as v}from"./file-text-ClqzuFsu.js";import{t as y}from"./loader-circle-BFRVtR3K.js";import{t as b}from"./pencil-B90pDI55.js";import{t as x}from"./x-DxL-bCuT.js";import{_r as S,br as C,gr as w,hr as T,mr as E,vr as D,yr as O}from"./sdk.gen-7kFw36Fw.js";import{n as k}from"./use-is-mobile-jACt_z2d.js";import{n as A}from"./native-file-DIJL6af-.js";import{Da as j,L as M,Oi as N,R as P,Zi as F,aa as I,ai as L,la as R,li as z,na as B,oa as ee,ra as V,ta as te,xi as ne}from"./index-CbZDhL8R.js";import{t as H}from"./use-active-assistant-id-BVzVN4_g.js";import{n as U,t as W}from"./mobile-sidebar-drawer-dvyeQG5_.js";import{i as G,n as re,r as K,t as q}from"./file-editor-DEuQwSiV.js";import{t as J}from"./format-file-size-BflZ4oxc.js";var ie=g(`arrow-down-a-z`,[[`path`,{d:`m3 16 4 4 4-4`,key:`1co6wj`}],[`path`,{d:`M7 20V4`,key:`1yoxec`}],[`path`,{d:`M20 8h-5`,key:`1vsyxs`}],[`path`,{d:`M15 10V6.5a2.5 2.5 0 0 1 5 0V10`,key:`ag13bf`}],[`path`,{d:`M15 14h5l-5 6h5`,key:`ur5jdg`}]]),ae=g(`arrow-down-wide-narrow`,[[`path`,{d:`m3 16 4 4 4-4`,key:`1co6wj`}],[`path`,{d:`M7 20V4`,key:`1yoxec`}],[`path`,{d:`M11 4h10`,key:`1w87gc`}],[`path`,{d:`M11 8h7`,key:`djye34`}],[`path`,{d:`M11 12h4`,key:`q8tih4`}]]),oe=g(`folder-open`,[[`path`,{d:`m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2`,key:`usdka0`}]]),Y=g(`folder-plus`,[[`path`,{d:`M12 10v6`,key:`1bos4e`}],[`path`,{d:`M9 13h6`,key:`1uhe8q`}],[`path`,{d:`M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z`,key:`1kt360`}]]),X=e(t(),1);async function se(e){let{data:t,error:n}=await T({path:{assistant_id:e.assistantId},query:{path:e.path,...e.showHidden?{showHidden:`true`}:{}},parseAs:`blob`,throwOnError:!1});if(n||!(t instanceof Blob))throw Error(`Failed to download file`);await A(t,e.filename)}function ce(e){if(!e)return``;let t=e.indexOf(`;`);return(t===-1?e:e.slice(0,t)).trim()}function le(e,t){return ce(t)===`application/json`?!0:(e??``).toLowerCase().endsWith(`.json`)}function ue(e){try{return JSON.stringify(JSON.parse(e),null,2)}catch{return e}}function de(e){return e.split(`/`).some(e=>e.startsWith(`.`))}var Z=s();function fe(e){return c({queryFn:async()=>{let{data:t,error:n}=await w({path:e.path,query:{path:e.query.path,...e.query.showHidden?{showHidden:`true`}:{}}});if(n)throw n;return t},queryKey:[`assistantsWorkspaceFileRetrieve`,e]})}function pe({mimeType:e}){let t=e.indexOf(`;`),n=(t===-1?e:e.slice(0,t)).trim(),r=v;return n.startsWith(`image/`)?r=F:n.startsWith(`video/`)?r=L:!n.startsWith(`text/`)&&n!==`application/json`&&n!==`application/octet-stream`&&(r=B),(0,Z.jsx)(`span`,{className:`flex h-5 w-5 shrink-0 items-center justify-center rounded`,style:{backgroundColor:`color-mix(in oklab, var(--content-default) 10%, transparent)`},children:(0,Z.jsx)(r,{className:`h-3.5 w-3.5`,style:{color:`var(--content-default)`}})})}function me({viewMode:e,onChange:t}){return(0,Z.jsx)(`div`,{className:`inline-flex rounded-md p-0.5`,style:{backgroundColor:`color-mix(in oklab, var(--content-default) 6%, transparent)`},children:[`preview`,`source`].map(r=>{let i=e===r;return(0,Z.jsx)(n,{variant:`ghost`,onClick:()=>t(r),className:`h-auto rounded border-0 px-2.5 py-1 text-body-small-default hover:bg-transparent`,style:{backgroundColor:i?`var(--surface-lift)`:`transparent`,color:i?`var(--content-default)`:`var(--content-tertiary)`,boxShadow:i?`0 1px 2px rgba(0,0,0,0.15)`:void 0},children:r===`preview`?`Preview`:`Source`},r)})})}function Q({name:e,mimeType:t,size:n,rightContent:r}){return(0,Z.jsxs)(`div`,{className:`flex items-center justify-between gap-3 border-b px-3 py-2.5`,style:{borderColor:`var(--border-element)`},children:[(0,Z.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,Z.jsx)(pe,{mimeType:t}),(0,Z.jsx)(`span`,{className:`truncate text-body-medium-default`,style:{color:`var(--content-default)`},children:e}),n!=null&&(0,Z.jsx)(`span`,{className:`shrink-0 text-body-small-default`,style:{color:`var(--content-tertiary)`},children:J(n)})]}),r]})}function he({assistantId:e,path:t,mimeType:n,showHidden:r}){let{data:i,isLoading:o}=a({queryFn:async()=>{let n=await T({path:{assistant_id:e},query:{path:t,...r?{showHidden:`true`}:{}},parseAs:`blob`});if(n.error)throw n.error;return n.data},queryKey:[`assistantsWorkspaceFileContentRetrieve`,{assistantId:e,path:t,showHidden:r}],enabled:!!t}),[s,c]=(0,X.useState)(null);return(0,X.useEffect)(()=>{if(!i)return;let e=URL.createObjectURL(i);return c(e),()=>{URL.revokeObjectURL(e),c(null)}},[i]),o?(0,Z.jsx)(`div`,{className:`flex items-center justify-center py-12`,children:(0,Z.jsx)(y,{className:`h-6 w-6 animate-spin`,style:{color:`var(--content-tertiary)`}})}):s?n.startsWith(`image/`)?(0,Z.jsx)(`div`,{className:`flex items-center justify-center p-4`,children:(0,Z.jsx)(`img`,{src:s,alt:t.split(`/`).pop()??`image`,className:`max-h-[70vh] max-w-full rounded object-contain`})}):n.startsWith(`video/`)?(0,Z.jsx)(`div`,{className:`flex items-center justify-center p-4`,children:(0,Z.jsx)(`video`,{src:s,controls:!0,className:`max-h-[70vh] max-w-full rounded`})}):null:null}function ge({assistantId:e,path:t,name:r,mimeType:i,size:a,modifiedAt:o,showHidden:s}){let[c,l]=(0,X.useState)(!1),[u,d]=(0,X.useState)(!1),f=(0,X.useCallback)(async()=>{d(!1),l(!0);try{await se({assistantId:e,path:t,filename:r,showHidden:s})}catch{d(!0)}finally{l(!1)}},[e,t,r,s]);return(0,Z.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,Z.jsx)(Q,{name:r,mimeType:i,size:a}),(0,Z.jsx)(`div`,{className:`flex flex-1 items-center justify-center p-8`,children:(0,Z.jsxs)(`div`,{className:`w-full max-w-sm rounded-lg border p-6 text-center`,style:{borderColor:`var(--border-base)`,backgroundColor:`var(--surface-lift)`},children:[(0,Z.jsx)(B,{className:`mx-auto h-10 w-10`,style:{color:`var(--content-tertiary)`}}),(0,Z.jsx)(`p`,{className:`mt-3 text-body-medium-default`,style:{color:`var(--content-default)`},children:r}),(0,Z.jsxs)(`div`,{className:`mt-2 space-y-1`,children:[(0,Z.jsx)(`p`,{className:`text-body-small-default`,style:{color:`var(--content-secondary, var(--content-tertiary))`},children:i}),(0,Z.jsx)(`p`,{className:`text-body-small-default`,style:{color:`var(--content-secondary, var(--content-tertiary))`},children:J(a,`Unknown size`)}),o&&(0,Z.jsxs)(`p`,{className:`text-body-small-default`,style:{color:`var(--content-secondary, var(--content-tertiary))`},children:[`Modified: `,new Date(o).toLocaleString()]})]}),(0,Z.jsx)(n,{variant:`outlined`,size:`compact`,leftIcon:c?(0,Z.jsx)(y,{className:`animate-spin`,"aria-hidden":!0}):(0,Z.jsx)(R,{"aria-hidden":!0}),onClick:f,disabled:c,"aria-label":`Download ${r}`,className:`mt-4`,children:c?`Downloading…`:`Download`}),u&&(0,Z.jsx)(`p`,{className:`mt-2 text-body-small-default`,style:{color:`var(--system-error)`},children:`Download failed. Try again.`})]})})]})}function _e({assistantId:e,selectedPath:t,showHidden:r,viewMode:s,onChangeViewMode:c,onBrowse:l,pathRename:u,pathDelete:d}){let f=i(),{data:p,isLoading:m}=a({...fe({path:{assistant_id:e},query:{path:t??``,showHidden:r}}),enabled:!!t}),[h,g]=(0,X.useState)(null),[_,v]=(0,X.useState)(null);(0,X.useEffect)(()=>{if(!u)return;let{from:e,to:t}=u,n=n=>n===e?t:n.startsWith(`${e}/`)?t+n.slice(e.length):n;g(e=>e==null?e:n(e)),v(e=>e==null?e:{...e,path:n(e.path)})},[u]),(0,X.useEffect)(()=>{if(!d)return;let{path:e}=d,t=t=>t===e||t.startsWith(`${e}/`);g(e=>e!=null&&t(e)?null:e),v(e=>e!=null&&t(e.path)?null:e)},[d]);let b=h!=null&&h===t,x=p?.content??``,S=_?.path===t?_.content:x,w=()=>{g(null),v(null)},T=o({mutationFn:async({path:t,content:n})=>{let{error:r,response:i}=await C({path:{assistant_id:e},body:{path:t,content:n,encoding:`utf8`},throwOnError:!1});if(!i?.ok||r)throw Error(`Failed to save file`)},onSuccess:(e,t)=>{g(e=>e===t.path?null:e),v(e=>e?.path===t.path?null:e),f.invalidateQueries({queryKey:[`assistantsWorkspaceFileRetrieve`]})}}),E=S!==x,D=(0,X.useCallback)(()=>{t&&E&&!T.isPending&&T.mutate({path:t,content:S})},[t,E,T,S]);if(!t)return(0,Z.jsxs)(`div`,{className:`flex h-full flex-col items-center justify-center gap-3`,children:[(0,Z.jsx)(`p`,{className:`text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:`Select a file to view`}),l&&(0,Z.jsx)(n,{type:`button`,onClick:l,leftIcon:(0,Z.jsx)(oe,{"aria-hidden":!0}),className:`sm:hidden`,children:`Browse files`})]});if(m)return(0,Z.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,Z.jsx)(y,{className:`h-6 w-6 animate-spin`,style:{color:`var(--content-tertiary)`}})});if(!p)return(0,Z.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,Z.jsx)(`p`,{className:`text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:`File not found`})});let O=p.mimeType??`application/octet-stream`,k=p.name??t.split(`/`).pop()??t,A=P(k,O),j=le(k,O),N=p.content!=null&&!A&&!j,F=t?de(t):!0,I=b&&(0,Z.jsx)(re,{isDirty:E,isSaving:T.isPending,error:T.isError?`Save failed`:null,onSave:D,onDiscard:w});if(A&&p.content!=null){let e=b?S:p.content;return(0,Z.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,Z.jsx)(Q,{name:k,mimeType:O,rightContent:(0,Z.jsx)(me,{viewMode:s,onChange:e=>{b&&w(),c(e)}})}),(0,Z.jsxs)(`div`,{className:`relative flex-1 overflow-hidden`,children:[(0,Z.jsx)(q,{content:e,fileName:k,mimeType:O,showEdit:!F&&s===`source`,isEditing:b,onToggleEdit:()=>b?w():g(t)}),s===`preview`?(0,Z.jsx)(`div`,{className:`h-full overflow-auto px-6 py-4`,style:{color:`var(--content-default)`},children:(0,Z.jsx)(M,{content:e})}):b?(0,Z.jsx)(K,{value:S,onChange:e=>v({path:t,content:e}),onSave:D}):(0,Z.jsx)(G,{content:p.content,readOnly:F,onStartEdit:()=>g(t)})]}),I]})}if(j&&p.content!=null){let e=b?S:p.content,n=ue(e);return(0,Z.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,Z.jsx)(Q,{name:k,mimeType:O,rightContent:(0,Z.jsx)(me,{viewMode:s,onChange:e=>{b&&w(),c(e)}})}),(0,Z.jsxs)(`div`,{className:`relative flex-1 overflow-hidden`,children:[(0,Z.jsx)(q,{content:s===`preview`?n:e,downloadContent:e,fileName:k,mimeType:O,showEdit:!F&&s===`source`,isEditing:b,onToggleEdit:()=>b?w():g(t)}),s===`preview`?(0,Z.jsx)(G,{content:n,readOnly:!0,whiteSpace:`pre`}):b?(0,Z.jsx)(K,{value:S,onChange:e=>v({path:t,content:e}),onSave:D}):(0,Z.jsx)(G,{content:p.content,readOnly:F,onStartEdit:()=>g(t)})]}),I]})}return N?(0,Z.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,Z.jsx)(Q,{name:k,mimeType:O,size:p.size}),(0,Z.jsxs)(`div`,{className:`relative flex-1 overflow-hidden`,children:[(0,Z.jsx)(q,{content:b?S:p.content??``,fileName:k,mimeType:O,showEdit:!F,isEditing:b,onToggleEdit:()=>b?w():g(t)}),b?(0,Z.jsx)(K,{value:S,onChange:e=>v({path:t,content:e}),onSave:D}):(0,Z.jsx)(G,{content:p.content??``,readOnly:F,onStartEdit:()=>g(t)})]}),I]}):O.startsWith(`image/`)||O.startsWith(`video/`)?(0,Z.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,Z.jsx)(Q,{name:k,mimeType:O,size:p.size}),(0,Z.jsx)(`div`,{className:`flex-1 overflow-auto`,children:(0,Z.jsx)(he,{assistantId:e,path:t,mimeType:O,showHidden:r})})]}):(0,Z.jsx)(ge,{assistantId:e,path:t,name:k,mimeType:O,size:p.size,modifiedAt:p.modifiedAt,showHidden:r})}function ve(e,t){if(t===`name`)return e;let n=e.slice();return n.sort((e,t)=>{let n=e.size??null,r=t.size??null;return n===null&&r===null?(e.name??``).localeCompare(t.name??``):n===null?1:r===null?-1:n===r?(e.name??``).localeCompare(t.name??``):r-n}),n}function ye(e){return c({queryFn:async()=>{let t={};e.query?.path&&(t.path=e.query.path),e.query?.showHidden&&(t.showHidden=`true`),e.query?.includeDirSizes&&(t.includeDirSizes=`true`);let{data:n,error:r}=await O({path:e.path,query:t});if(r)throw r;if(!n)throw Error(`Failed to load workspace tree`);return n},queryKey:[`assistantsWorkspaceTreeRetrieve`,e]})}async function be(e,t,n,r){let i=n.toLowerCase(),a=r?.toLowerCase(),{data:o}=await O({path:{assistant_id:e},query:t?{path:t}:{}});if(o?.entries?.some(e=>{let t=(e.name??``).toLowerCase();return t===i&&t!==a}))throw Error(`"${n}" already exists here.`)}function xe({entry:e}){return e.type===`directory`?(0,Z.jsx)(te,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-tertiary)`}}):e.mimeType?.startsWith(`image/`)?(0,Z.jsx)(F,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-tertiary)`}}):e.mimeType?.startsWith(`video/`)?(0,Z.jsx)(L,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-tertiary)`}}):(0,Z.jsx)(v,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-tertiary)`}})}function Se({entry:e,assistantId:t,expandedPaths:n,selectedPath:r,showHidden:i,sortMode:o,searchLower:s,onToggleExpand:c,onSelectPath:l,onRequestDelete:u,onRequestRename:d,onRequestCreate:p,depth:m}){let h=e.path??``,g=e.name??``,v=e.type===`directory`,y=n.has(h),x=r===h,S=g.startsWith(`.`),C=!de(h),w=v&&(y||s.length>0),{data:T}=a({...ye({path:{assistant_id:t},query:{path:h,showHidden:i,includeDirSizes:o===`size`}}),enabled:v&&w}),E=(0,X.useMemo)(()=>ve(T?.entries??[],o),[T?.entries,o]),D=s===``||g.toLowerCase().includes(s);if(s!==``&&!v&&!D)return null;let O=(0,Z.jsxs)(`button`,{onClick:()=>{v?c(h):l(h)},className:`flex w-full items-center gap-1.5 px-2 py-1 text-left text-body-medium-lighter transition-colors hover:bg-[var(--surface-hover)]`,style:{paddingLeft:`${m*14+8}px`,paddingRight:`8px`,color:x?`var(--content-default)`:S?`var(--content-tertiary)`:`var(--content-default)`,backgroundColor:x?`color-mix(in oklab, var(--primary-base) 12%, transparent)`:void 0,opacity:S&&!x?.7:1},children:[v?w?(0,Z.jsx)(j,{className:`h-3 w-3 shrink-0`,style:{color:`var(--content-tertiary)`}}):(0,Z.jsx)(_,{className:`h-3 w-3 shrink-0`,style:{color:`var(--content-tertiary)`}}):(0,Z.jsx)(`span`,{className:`h-3 w-3 shrink-0`}),(0,Z.jsx)(xe,{entry:e}),(0,Z.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:g}),e.size!=null&&(0,Z.jsx)(`span`,{className:`shrink-0 text-label-medium-default tabular-nums`,style:{color:`var(--content-tertiary)`},children:J(e.size)})]});return(0,Z.jsxs)(`div`,{children:[C?(0,Z.jsxs)(f.Root,{children:[(0,Z.jsx)(f.Trigger,{children:O}),(0,Z.jsxs)(f.Content,{children:[v&&(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(f.Item,{leftIcon:(0,Z.jsx)(V,{className:`h-3.5 w-3.5`}),onSelect:()=>p({kind:`file`,parentPath:h}),children:`New File`}),(0,Z.jsx)(f.Item,{leftIcon:(0,Z.jsx)(Y,{className:`h-3.5 w-3.5`}),onSelect:()=>p({kind:`folder`,parentPath:h}),children:`New Folder`}),(0,Z.jsx)(f.Separator,{})]}),(0,Z.jsx)(f.Item,{leftIcon:(0,Z.jsx)(z,{className:`h-3.5 w-3.5`}),onSelect:()=>u({path:h,name:g,isDirectory:v}),children:`Delete`}),(0,Z.jsx)(f.Item,{leftIcon:(0,Z.jsx)(b,{className:`h-3.5 w-3.5`}),onSelect:()=>d({path:h,name:g,isDirectory:v}),children:`Rename`})]})]}):O,v&&w&&E.length>0&&(0,Z.jsx)(`div`,{children:E.map(e=>(0,Z.jsx)(Se,{entry:e,assistantId:t,expandedPaths:n,selectedPath:r,showHidden:i,sortMode:o,searchLower:s,onToggleExpand:c,onSelectPath:l,onRequestDelete:u,onRequestRename:d,onRequestCreate:p,depth:m+1},e.path))})]})}function Ce({title:e,placeholder:t,confirmLabel:r,pendingLabel:i,initialName:a,onCancel:o,onConfirm:s,pending:c,error:l}){let u=(0,X.useRef)(null),[d,f]=(0,X.useState)(a??``),p=d.trim(),g=p.length>0&&(/[/\\]/.test(p)||p===`.`||p===`..`),_=p.length>0&&!g&&!c;return(0,Z.jsx)(h.Root,{open:!0,onOpenChange:e=>{!e&&!c&&o()},children:(0,Z.jsx)(h.Content,{size:`sm`,hideCloseButton:!0,"aria-describedby":void 0,onOpenAutoFocus:e=>{e.preventDefault();let t=u.current;t&&(t.focus(),requestAnimationFrame(()=>{t.setSelectionRange(0,t.value.length)}))},onEscapeKeyDown:e=>{e.preventDefault(),e.stopPropagation(),c||o()},children:(0,Z.jsxs)(`form`,{onSubmit:e=>{e.preventDefault(),_&&s(p)},children:[(0,Z.jsx)(h.Header,{children:(0,Z.jsx)(h.Title,{children:e})}),(0,Z.jsx)(h.Body,{children:(0,Z.jsx)(m,{ref:u,label:`Name`,value:d,onChange:e=>f(e.target.value),placeholder:t,errorText:l??(g?`Enter a single file or folder name without slashes.`:void 0),autoComplete:`off`,spellCheck:!1,fullWidth:!0})}),(0,Z.jsxs)(h.Footer,{children:[(0,Z.jsx)(n,{type:`button`,variant:`outlined`,onClick:o,disabled:c,children:`Cancel`}),(0,Z.jsx)(n,{type:`submit`,variant:`primary`,disabled:!_,children:c?i:r})]})]})})})}function $({assistantId:e,expandedPaths:t,selectedPath:r,showHidden:s,sortMode:c,onToggleExpand:l,onExpandPath:u,onSelectPath:d,onToggleShowHidden:f,onChangeSortMode:h,onPathDeleted:g,onPathRenamed:_}){let v=i(),[y,b]=(0,X.useState)(``),w=y.trim().toLowerCase(),[T,O]=(0,X.useState)(!1),[k,A]=(0,X.useState)(null),[j,M]=(0,X.useState)(null),N=(0,X.useCallback)(()=>{A(null),M(null)},[]),{data:P,isLoading:F}=a(ye({path:{assistant_id:e},query:{showHidden:s,includeDirSizes:c===`size`}})),L=(0,X.useMemo)(()=>ve(P?.entries??[],c),[P?.entries,c]),R=(0,X.useCallback)(()=>{for(let e of[`assistantsWorkspaceTreeRetrieve`,`assistantsWorkspaceFileRetrieve`,`assistantsWorkspaceFileContentRetrieve`])v.invalidateQueries({queryKey:[e]})},[v]),z=o({mutationFn:async t=>{let n=t.parentPath?`${t.parentPath}/${t.name}`:t.name;await be(e,t.parentPath,t.name);let{error:r,response:i}=t.kind===`file`?await C({path:{assistant_id:e},body:{path:n,content:``,encoding:`utf8`},throwOnError:!1}):await S({path:{assistant_id:e},body:{path:n},throwOnError:!1});if(r||!i?.ok)throw Error(typeof r==`string`?r:`Failed to create — check the name and try again.`);return{...t,path:n}},onSuccess:e=>{N(),R(),e.parentPath&&u(e.parentPath),e.kind===`file`?d(e.path):u(e.path)},onError:e=>{M(e instanceof Error?e.message:`Failed to create.`)}}),B=o({mutationFn:async t=>{let n=t.oldPath.lastIndexOf(`/`),r=n===-1?``:t.oldPath.slice(0,n),i=t.oldPath.slice(n+1),a=r?`${r}/${t.newName}`:t.newName;await be(e,r,t.newName,i);let{error:o,response:s}=await D({path:{assistant_id:e},body:{oldPath:t.oldPath,newPath:a},throwOnError:!1});if(o||!s?.ok)throw Error(typeof o==`string`?o:`Failed to rename — check the name and try again.`);return{oldPath:t.oldPath,newPath:a}},onSuccess:({oldPath:e,newPath:t})=>{N(),R(),_(e,t)},onError:e=>{M(e instanceof Error?e.message:`Failed to rename.`)}}),V=(0,X.useCallback)(e=>{M(null),A({type:`create`,...e})},[]),te=(0,X.useCallback)(e=>{M(null),A({type:`rename`,path:e.path,name:e.name})},[]),[H,U]=(0,X.useState)(null),W=o({mutationFn:async t=>{let{error:n,response:r}=await E({path:{assistant_id:e},body:{path:t.path},throwOnError:!1});if(n||!r?.ok)throw Error(typeof n==`string`?n:`Failed to delete — try again.`);return t},onSuccess:e=>{U(null),R(),g(e.path)}}),G=(0,X.useCallback)(e=>{W.reset(),U(e)},[W]);return(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(`div`,{className:`flex items-center justify-between border-b px-3 py-2.5`,style:{borderColor:`var(--border-element)`},children:[(0,Z.jsx)(`span`,{className:`text-body-medium-default`,style:{color:`var(--content-secondary)`},children:`Files`}),(0,Z.jsxs)(`div`,{className:`flex items-center gap-0.5`,children:[(0,Z.jsx)(n,{type:`button`,variant:`ghost`,size:`compact`,iconOnly:c===`size`?(0,Z.jsx)(ae,{"aria-hidden":!0}):(0,Z.jsx)(ie,{"aria-hidden":!0}),onClick:()=>h(c===`size`?`name`:`size`),"aria-label":c===`size`?`Sort by name`:`Sort by size`,title:c===`size`?`Sorted by size — switch to name`:`Sorted by name — switch to size`,tintColor:c===`size`?`var(--content-default)`:`var(--content-tertiary)`}),(0,Z.jsx)(n,{type:`button`,variant:`ghost`,size:`compact`,iconOnly:s?(0,Z.jsx)(I,{"aria-hidden":!0}):(0,Z.jsx)(ee,{"aria-hidden":!0}),onClick:f,"aria-label":s?`Hide hidden files`:`Show hidden files`,title:s?`Hide hidden files`:`Show hidden files`,tintColor:s?`var(--content-default)`:`var(--content-tertiary)`}),(0,Z.jsx)(we,{open:T,onOpenChange:O,onSelectKind:e=>{O(!1),V({kind:e,parentPath:``})}})]})]}),(0,Z.jsx)(`div`,{className:`px-3 py-2`,children:(0,Z.jsxs)(`div`,{className:`relative`,children:[(0,Z.jsx)(m,{type:`text`,value:y,onChange:e=>b(e.target.value),placeholder:`Search files`,leftIcon:(0,Z.jsx)(ne,{className:`h-3.5 w-3.5`,"aria-hidden":!0}),fullWidth:!0,spellCheck:!1,autoComplete:`off`}),y&&(0,Z.jsx)(n,{type:`button`,variant:`ghost`,size:`compact`,iconOnly:(0,Z.jsx)(x,{"aria-hidden":!0}),onClick:()=>b(``),"aria-label":`Clear search`,className:`absolute right-1.5 top-1/2 -translate-y-1/2`,tintColor:`var(--content-tertiary)`})]})}),(0,Z.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto py-1`,children:F?(0,Z.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,Z.jsx)(`div`,{className:`h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent`,style:{color:`var(--content-tertiary)`}})}):L.length?L.map(n=>(0,Z.jsx)(Se,{entry:n,assistantId:e,expandedPaths:t,selectedPath:r,showHidden:s,sortMode:c,searchLower:w,onToggleExpand:l,onSelectPath:d,onRequestDelete:G,onRequestRename:te,onRequestCreate:V,depth:0},n.path)):(0,Z.jsx)(`p`,{className:`px-3 py-4 text-center text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:`No files found`})}),k?.type===`create`&&(0,Z.jsx)(Ce,{title:k.kind===`file`?`New File`:`New Folder`,placeholder:k.kind===`file`?`filename.md`:`folder-name`,confirmLabel:`Create`,pendingLabel:`Creating…`,onCancel:N,onConfirm:e=>{M(null),z.mutate({kind:k.kind,parentPath:k.parentPath,name:e})},pending:z.isPending,error:j},`create-${k.kind}-${k.parentPath}`),k?.type===`rename`&&(0,Z.jsx)(Ce,{title:`Rename`,placeholder:k.name,confirmLabel:`Rename`,pendingLabel:`Renaming…`,initialName:k.name,onCancel:N,onConfirm:e=>{if(e===k.name){N();return}M(null),B.mutate({oldPath:k.path,newName:e})},pending:B.isPending,error:j},`rename-${k.path}`),(0,Z.jsx)(p,{open:H!==null,title:H?.isDirectory?`Delete Folder`:`Delete File`,message:(0,Z.jsxs)(Z.Fragment,{children:[`Are you sure you want to delete`,` `,(0,Z.jsx)(`span`,{style:{color:`var(--content-default)`},children:H?.name}),H?.isDirectory?` and all of its contents`:``,`? This cannot be undone.`,W.error&&(0,Z.jsx)(`span`,{className:`mt-2 block`,style:{color:`var(--system-negative-strong)`},children:W.error.message})]}),confirmLabel:W.isPending?`Deleting…`:`Delete`,destructive:!0,isPending:W.isPending,onConfirm:()=>{H&&W.mutate(H)},onCancel:()=>U(null)})]})}function we({open:e,onOpenChange:t,onSelectKind:r}){return k()?(0,Z.jsxs)(l.Root,{open:e,onOpenChange:t,children:[(0,Z.jsx)(l.Trigger,{asChild:!0,children:(0,Z.jsx)(n,{type:`button`,variant:`ghost`,size:`compact`,iconOnly:(0,Z.jsx)(N,{"aria-hidden":!0}),"aria-label":`Create new file or folder`,title:`New file or folder`,tintColor:`var(--content-tertiary)`})}),(0,Z.jsxs)(l.Content,{children:[(0,Z.jsx)(l.Header,{className:`sr-only`,children:(0,Z.jsx)(l.Title,{children:`Create new`})}),(0,Z.jsxs)(l.Body,{className:`pt-0`,children:[(0,Z.jsx)(u,{icon:V,label:`New File`,onSelect:()=>r(`file`)}),(0,Z.jsx)(u,{icon:Y,label:`New Folder`,onSelect:()=>r(`folder`)})]})]})]}):(0,Z.jsxs)(d.Root,{open:e,onOpenChange:t,children:[(0,Z.jsx)(d.Trigger,{asChild:!0,children:(0,Z.jsx)(n,{type:`button`,variant:`ghost`,size:`compact`,iconOnly:(0,Z.jsx)(N,{"aria-hidden":!0}),"aria-label":`Create new file or folder`,title:`New file or folder`,tintColor:`var(--content-tertiary)`})}),(0,Z.jsxs)(d.Content,{align:`end`,sideOffset:4,children:[(0,Z.jsx)(d.Item,{leftIcon:(0,Z.jsx)(V,{className:`h-3.5 w-3.5`}),onSelect:()=>r(`file`),children:`New File`}),(0,Z.jsx)(d.Item,{leftIcon:(0,Z.jsx)(Y,{className:`h-3.5 w-3.5`}),onSelect:()=>r(`folder`),children:`New Folder`})]})]})}function Te(e){let t=e.split(`/`),n=new Set;for(let e=1;e<t.length;e++)n.add(t.slice(0,e).join(`/`));return n}function Ee({assistantId:e}){let[t,n]=r(),[i,a]=(0,X.useState)(()=>{let e=t.get(`file`);return e?Te(e):new Set}),[o,s]=(0,X.useState)(()=>t.get(`file`)),[c,l]=(0,X.useState)(!1),[u,d]=(0,X.useState)(()=>t.get(`sort`)===`size`?`size`:`name`),[f,p]=(0,X.useState)(`preview`);(0,X.useEffect)(()=>{t.get(`file`)&&n(e=>{let t=new URLSearchParams(e);return t.delete(`file`),t},{replace:!0})},[]);let m=(0,X.useCallback)(e=>{a(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),h=(0,X.useCallback)(e=>{a(t=>{if(t.has(e))return t;let n=new Set(t);return n.add(e),n})},[]),[g,_]=(0,X.useState)(!1),v=(0,X.useCallback)(e=>{s(e),_(!1)},[]),[y,b]=(0,X.useState)(null),x=(0,X.useCallback)(e=>{let t=t=>t===e||t.startsWith(`${e}/`);s(e=>e!==null&&t(e)?null:e),a(e=>{let n=new Set([...e].filter(e=>!t(e)));return n.size===e.size?e:n}),b({path:e})},[]),[S,C]=(0,X.useState)(null),w={assistantId:e,expandedPaths:i,selectedPath:o,showHidden:c,sortMode:u,onToggleExpand:m,onExpandPath:h,onSelectPath:v,onToggleShowHidden:()=>l(e=>!e),onChangeSortMode:d,onPathDeleted:x,onPathRenamed:(0,X.useCallback)((e,t)=>{let n=n=>n===e?t:n.startsWith(`${e}/`)?t+n.slice(e.length):n;s(e=>e===null?e:n(e)),a(e=>{let t=!1,r=new Set;for(let i of e){let e=n(i);e!==i&&(t=!0),r.add(e)}return t?r:e}),C({from:e,to:t})},[])};return(0,Z.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col gap-4`,children:[(0,Z.jsx)(`div`,{className:`flex items-center sm:hidden`,children:(0,Z.jsx)(U,{onClick:()=>_(!0)})}),(0,Z.jsx)(W,{open:g,onClose:()=>_(!1),title:`Files`,children:(0,Z.jsx)($,{...w})}),(0,Z.jsxs)(`div`,{className:`grid min-h-0 flex-1 grid-cols-1 gap-4 sm:grid-cols-[320px_1fr]`,children:[(0,Z.jsx)(`div`,{className:`hidden min-h-0 min-w-0 flex-col overflow-hidden rounded-xl border sm:flex`,style:{backgroundColor:`var(--surface-overlay)`,borderColor:`var(--border-base)`},children:(0,Z.jsx)($,{...w})}),(0,Z.jsx)(`div`,{className:`flex min-h-0 min-w-0 flex-col overflow-hidden rounded-xl border`,style:{backgroundColor:`var(--surface-overlay)`,borderColor:`var(--border-base)`},children:(0,Z.jsx)(_e,{assistantId:e,selectedPath:o,showHidden:c,viewMode:f,onChangeViewMode:p,onBrowse:()=>_(!0),pathRename:S,pathDelete:y})})]})]})}function De(){return(0,Z.jsx)(Ee,{assistantId:H()})}export{De as WorkspacePage};
package/dist/index.html CHANGED
@@ -10,7 +10,7 @@
10
10
  <link rel="apple-touch-icon" href="/assistant/favicon.svg" />
11
11
  <title>Vellum Assistant</title>
12
12
  <script src="/assistant/theme-init.js"></script>
13
- <script type="module" crossorigin src="/assistant/assets/index-DbPUHSMl.js"></script>
13
+ <script type="module" crossorigin src="/assistant/assets/index-CbZDhL8R.js"></script>
14
14
  <link rel="modulepreload" crossorigin href="/assistant/assets/chunk-jRWAZmH_.js">
15
15
  <link rel="modulepreload" crossorigin href="/assistant/assets/preload-helper-BewR0kVT.js">
16
16
  <link rel="modulepreload" crossorigin href="/assistant/assets/dist-Ztj3rqLK.js">
@@ -26,8 +26,8 @@
26
26
  <link rel="modulepreload" crossorigin href="/assistant/assets/create-selectors-BE0_e_Ed.js">
27
27
  <link rel="modulepreload" crossorigin href="/assistant/assets/is-electron-C_ZTVhv8.js">
28
28
  <link rel="modulepreload" crossorigin href="/assistant/assets/local-settings-lVNyIOJ_.js">
29
- <link rel="modulepreload" crossorigin href="/assistant/assets/local-mode-CvrNMtPF.js">
30
- <link rel="modulepreload" crossorigin href="/assistant/assets/assistant-api-DsiQd51V.js">
29
+ <link rel="modulepreload" crossorigin href="/assistant/assets/local-mode-CgrENuVf.js">
30
+ <link rel="modulepreload" crossorigin href="/assistant/assets/assistant-api-Dp82rdTg.js">
31
31
  <link rel="modulepreload" crossorigin href="/assistant/assets/cn-DvW5mxZR.js">
32
32
  <link rel="modulepreload" crossorigin href="/assistant/assets/button-D7s2Q_uG.js">
33
33
  <link rel="modulepreload" crossorigin href="/assistant/assets/dist-cApvLul2.js">
@@ -58,9 +58,9 @@
58
58
  <link rel="modulepreload" crossorigin href="/assistant/assets/toggle-X_kQW5my.js">
59
59
  <link rel="modulepreload" crossorigin href="/assistant/assets/src-mai-NajT.js">
60
60
  <link rel="modulepreload" crossorigin href="/assistant/assets/misc-CFzLzLPH.js">
61
- <link rel="modulepreload" crossorigin href="/assistant/assets/proxy-E3RRrfO5.js">
62
- <link rel="modulepreload" crossorigin href="/assistant/assets/AnimatePresence-v8rrAm7n.js">
63
- <link rel="modulepreload" crossorigin href="/assistant/assets/use-reduced-motion-D32BDyn0.js">
61
+ <link rel="modulepreload" crossorigin href="/assistant/assets/proxy-BgtfAoJj.js">
62
+ <link rel="modulepreload" crossorigin href="/assistant/assets/AnimatePresence-uY0BR2n2.js">
63
+ <link rel="modulepreload" crossorigin href="/assistant/assets/use-reduced-motion-BG6r0Z46.js">
64
64
  <link rel="modulepreload" crossorigin href="/assistant/assets/createLucideIcon-BlMXrA59.js">
65
65
  <link rel="modulepreload" crossorigin href="/assistant/assets/archive-BFILUl9x.js">
66
66
  <link rel="modulepreload" crossorigin href="/assistant/assets/arrow-left-CP-EhDNF.js">
@@ -74,18 +74,18 @@
74
74
  <link rel="modulepreload" crossorigin href="/assistant/assets/device-settings-BBwtGKJb.js">
75
75
  <link rel="modulepreload" crossorigin href="/assistant/assets/return-to-yMLvlnXN.js">
76
76
  <link rel="modulepreload" crossorigin href="/assistant/assets/routes-C6gxiCrz.js">
77
- <link rel="modulepreload" crossorigin href="/assistant/assets/native-biometric-CBWaVg3Q.js">
78
- <link rel="modulepreload" crossorigin href="/assistant/assets/platform-detection-ByImsPTf.js">
77
+ <link rel="modulepreload" crossorigin href="/assistant/assets/native-biometric-BMNAVqxV.js">
78
+ <link rel="modulepreload" crossorigin href="/assistant/assets/platform-detection-CrZF23_f.js">
79
79
  <link rel="modulepreload" crossorigin href="/assistant/assets/impersonate-version-flag-BsxCoimD.js">
80
80
  <link rel="modulepreload" crossorigin href="/assistant/assets/assistant-identity-store-E8J494ln.js">
81
81
  <link rel="modulepreload" crossorigin href="/assistant/assets/effective-timezone-BJxnysvd.js">
82
82
  <link rel="modulepreload" crossorigin href="/assistant/assets/semver-l1HADz2z.js">
83
- <link rel="modulepreload" crossorigin href="/assistant/assets/messages-qxyeoKYS.js">
83
+ <link rel="modulepreload" crossorigin href="/assistant/assets/messages-xsY377mD.js">
84
84
  <link rel="modulepreload" crossorigin href="/assistant/assets/chat-rA5AbKPD.js">
85
- <link rel="modulepreload" crossorigin href="/assistant/assets/diagnostics-Dd5CfP37.js">
85
+ <link rel="modulepreload" crossorigin href="/assistant/assets/diagnostics-ChEKet-K.js">
86
86
  <link rel="modulepreload" crossorigin href="/assistant/assets/conversation-store-CWgiE5KG.js">
87
87
  <link rel="modulepreload" crossorigin href="/assistant/assets/typed-storage-DjORmu8t.js">
88
- <link rel="modulepreload" crossorigin href="/assistant/assets/detail-shell-BPCWck_r.js">
88
+ <link rel="modulepreload" crossorigin href="/assistant/assets/detail-shell-Bv3NKx5s.js">
89
89
  <link rel="modulepreload" crossorigin href="/assistant/assets/bookmark-C3S-p0MQ.js">
90
90
  <link rel="modulepreload" crossorigin href="/assistant/assets/brain-Bs6LnfHO.js">
91
91
  <link rel="modulepreload" crossorigin href="/assistant/assets/bug-DDcuQ3au.js">
@@ -101,7 +101,7 @@
101
101
  <link rel="modulepreload" crossorigin href="/assistant/assets/cpu-CiHv3fhs.js">
102
102
  <link rel="modulepreload" crossorigin href="/assistant/assets/credit-card-BKRB1ZIi.js">
103
103
  <link rel="modulepreload" crossorigin href="/assistant/assets/avatar-svg-compositor-DG7zqpYr.js">
104
- <link rel="modulepreload" crossorigin href="/assistant/assets/animated-avatar-Dt3HMkLe.js">
104
+ <link rel="modulepreload" crossorigin href="/assistant/assets/animated-avatar-DjujnGJR.js">
105
105
  <link rel="modulepreload" crossorigin href="/assistant/assets/external-link-RJkZLlff.js">
106
106
  <link rel="modulepreload" crossorigin href="/assistant/assets/file-text-ClqzuFsu.js">
107
107
  <link rel="modulepreload" crossorigin href="/assistant/assets/globe-D3P5sSKJ.js">
@@ -120,42 +120,42 @@
120
120
  <link rel="modulepreload" crossorigin href="/assistant/assets/chunk-5KNZJZUH-DdS6bb-3.js">
121
121
  <link rel="modulepreload" crossorigin href="/assistant/assets/client.gen-BHupOCJH.js">
122
122
  <link rel="modulepreload" crossorigin href="/assistant/assets/sdk.gen-DmWuY0SL.js">
123
- <link rel="modulepreload" crossorigin href="/assistant/assets/api-CwV4YyjT.js">
124
- <link rel="modulepreload" crossorigin href="/assistant/assets/remote-gateway-session-znfqX8Fi.js">
123
+ <link rel="modulepreload" crossorigin href="/assistant/assets/api-Chh-fdux.js">
124
+ <link rel="modulepreload" crossorigin href="/assistant/assets/remote-gateway-session-BigLiDPm.js">
125
125
  <link rel="modulepreload" crossorigin href="/assistant/assets/event-bus-B3E3w-q2.js">
126
- <link rel="modulepreload" crossorigin href="/assistant/assets/resolved-assistants-store-Cp4J43BK.js">
127
- <link rel="modulepreload" crossorigin href="/assistant/assets/auth-store-DhoDi3Ka.js">
128
- <link rel="modulepreload" crossorigin href="/assistant/assets/three-dot-indicator-BOWJCSsU.js">
126
+ <link rel="modulepreload" crossorigin href="/assistant/assets/resolved-assistants-store-Dqf0LJrA.js">
127
+ <link rel="modulepreload" crossorigin href="/assistant/assets/auth-store-Cvj5lZ7o.js">
129
128
  <link rel="modulepreload" crossorigin href="/assistant/assets/composer-focus-n921WsjZ.js">
130
- <link rel="modulepreload" crossorigin href="/assistant/assets/subagent-store-uyvG6X03.js">
129
+ <link rel="modulepreload" crossorigin href="/assistant/assets/by-tool-use-id-index-Dbdu-8Kf.js">
130
+ <link rel="modulepreload" crossorigin href="/assistant/assets/subagent-store-7iuZZvpK.js">
131
131
  <link rel="modulepreload" crossorigin href="/assistant/assets/conversation-selection-DgYtLnyB.js">
132
- <link rel="modulepreload" crossorigin href="/assistant/assets/prefs-BJa0q2Gz.js">
132
+ <link rel="modulepreload" crossorigin href="/assistant/assets/prefs-CDgkoxVx.js">
133
133
  <link rel="modulepreload" crossorigin href="/assistant/assets/infiniteQueryOptions-C6p49ZmI.js">
134
134
  <link rel="modulepreload" crossorigin href="/assistant/assets/react-query.gen-By34AU2d.js">
135
135
  <link rel="modulepreload" crossorigin href="/assistant/assets/react-query.gen-BZr-1Xaw.js">
136
- <link rel="modulepreload" crossorigin href="/assistant/assets/feature-flag-catalog-DV82F0L3.js">
137
- <link rel="modulepreload" crossorigin href="/assistant/assets/assistant-feature-flag-store-9j2-Kf63.js">
136
+ <link rel="modulepreload" crossorigin href="/assistant/assets/feature-flag-catalog-BD9vx85e.js">
137
+ <link rel="modulepreload" crossorigin href="/assistant/assets/assistant-feature-flag-store-B-x4UdVS.js">
138
138
  <link rel="modulepreload" crossorigin href="/assistant/assets/use-bus-subscription-BNaztnO7.js">
139
139
  <link rel="modulepreload" crossorigin href="/assistant/assets/use-is-mobile-jACt_z2d.js">
140
- <link rel="modulepreload" crossorigin href="/assistant/assets/use-is-org-ready-DGnWseqw.js">
141
- <link rel="modulepreload" crossorigin href="/assistant/assets/build-state-D10hicGm.js">
142
- <link rel="modulepreload" crossorigin href="/assistant/assets/login-flow-Bu_R77mO.js">
143
- <link rel="modulepreload" crossorigin href="/assistant/assets/use-onboarding-login-DwVCJ7DH.js">
140
+ <link rel="modulepreload" crossorigin href="/assistant/assets/use-is-org-ready-BZPwjmJ0.js">
141
+ <link rel="modulepreload" crossorigin href="/assistant/assets/build-state-CI7ASQH5.js">
142
+ <link rel="modulepreload" crossorigin href="/assistant/assets/login-flow-DONovBeX.js">
143
+ <link rel="modulepreload" crossorigin href="/assistant/assets/use-onboarding-login-Cl5KRcns.js">
144
144
  <link rel="modulepreload" crossorigin href="/assistant/assets/utils-B_yHNmjr.js">
145
145
  <link rel="modulepreload" crossorigin href="/assistant/assets/sound-manager-KLJ38-0x.js">
146
146
  <link rel="modulepreload" crossorigin href="/assistant/assets/client-identity-KGlckm6M.js">
147
- <link rel="modulepreload" crossorigin href="/assistant/assets/browser-BtcMMWcD.js">
148
- <link rel="modulepreload" crossorigin href="/assistant/assets/native-deep-link-ODdFH_Wn.js">
149
- <link rel="modulepreload" crossorigin href="/assistant/assets/native-file-Djc1KZs3.js">
150
- <link rel="modulepreload" crossorigin href="/assistant/assets/client-feature-flag-store-Co2Hhr3q.js">
151
- <link rel="modulepreload" crossorigin href="/assistant/assets/viewer-store-BSiJen54.js">
147
+ <link rel="modulepreload" crossorigin href="/assistant/assets/browser-DM38C5zq.js">
148
+ <link rel="modulepreload" crossorigin href="/assistant/assets/native-deep-link-C2-dXaz_.js">
149
+ <link rel="modulepreload" crossorigin href="/assistant/assets/native-file-DIJL6af-.js">
150
+ <link rel="modulepreload" crossorigin href="/assistant/assets/client-feature-flag-store-D7sAlDlW.js">
151
+ <link rel="modulepreload" crossorigin href="/assistant/assets/viewer-store-DPvYSSNt.js">
152
152
  <link rel="modulepreload" crossorigin href="/assistant/assets/conversation-list-fetchers-XUhw0LTH.js">
153
- <link rel="modulepreload" crossorigin href="/assistant/assets/edit-chat-session-TX_J-I33.js">
153
+ <link rel="modulepreload" crossorigin href="/assistant/assets/edit-chat-session-DcCgw5Qy.js">
154
154
  <link rel="modulepreload" crossorigin href="/assistant/assets/haptics-BE_0g4mc.js">
155
- <link rel="modulepreload" crossorigin href="/assistant/assets/public-asset-B5BQLOj3.js">
156
- <link rel="modulepreload" crossorigin href="/assistant/assets/workflow-status-BuGeg_Pe.js">
155
+ <link rel="modulepreload" crossorigin href="/assistant/assets/public-asset-C2P77n3W.js">
156
+ <link rel="modulepreload" crossorigin href="/assistant/assets/workflow-status-ByHycBJ_.js">
157
157
  <link rel="stylesheet" crossorigin href="/assistant/assets/src-CfUWwwYf.css">
158
- <link rel="stylesheet" crossorigin href="/assistant/assets/index-BX26FZ8C.css">
158
+ <link rel="stylesheet" crossorigin href="/assistant/assets/index-pahhv1V_.css">
159
159
  <script>window.__VELLUM_CONFIG__={"webUrl":"https://www.vellum.ai","platformUrl":"https://platform.vellum.ai"}</script></head>
160
160
  <body>
161
161
  <div id="root"></div>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vellumai/web",
3
- "version": "0.10.4-dev.202607010028.1a4efcc",
3
+ "version": "0.10.4-dev.202607010146.a37a2fa",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "description": "Pre-built web SPA for the Vellum Assistant",
@@ -1,5 +0,0 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./capture-error-BG-GkiMq.js";import{t as n}from"./react-DJZBPgpf.js";import{t as r}from"./button-D7s2Q_uG.js";import{t as i}from"./jsx-runtime-CVSDxk6A.js";import{t as a}from"./typography-BscuIPxA.js";import"./src-mai-NajT.js";import{t as o}from"./tag-B_-QAvJF.js";import{t as s}from"./createLucideIcon-BlMXrA59.js";import{t as c}from"./arrow-left-CP-EhDNF.js";import{t as l}from"./brain-Bs6LnfHO.js";import{t as u}from"./chevron-right-B6vEpVY0.js";import{t as d}from"./circle-check-DzlJxj_M.js";import{t as f}from"./code-aMX9iMYa.js";import{t as p}from"./file-text-ClqzuFsu.js";import{t as m}from"./globe-D3P5sSKJ.js";import{t as h}from"./repeat-nCGBxntG.js";import{t as g}from"./triangle-alert-C3aHZq1F.js";import{t as _}from"./x-DxL-bCuT.js";import{t as v}from"./three-dot-indicator-BOWJCSsU.js";import{At as y,Ca as b,Ea as x,Mt as S,Q as C,Ui as ee,bi as te,ci as ne,fi as re,ja as ie,jt as ae,kt as w,li as T,nt as oe,rt as E,tt as se,ya as ce,yi as le}from"./index-DbPUHSMl.js";import{t as ue}from"./status-badge-pill-j3ke1d9o.js";var de=s(`file-pen`,[[`path`,{d:`M12.659 22H18a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v9.34`,key:`o6klzx`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M10.378 12.622a1 1 0 0 1 3 3.003L8.36 20.637a2 2 0 0 1-.854.506l-2.867.837a.5.5 0 0 1-.62-.62l.836-2.869a2 2 0 0 1 .506-.853z`,key:`zhnas1`}]]),fe=s(`folder-input`,[[`path`,{d:`M2 9V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-1`,key:`fm4g5t`}],[`path`,{d:`M2 13h10`,key:`pgb2dq`}],[`path`,{d:`m9 16 3-3-3-3`,key:`6m91ic`}]]),D=e(n(),1),O=``;function k(e,t){switch(e){case`complete`:case`completed`:return`completed`;case`failed`:case`error`:return`error`;case void 0:return t;default:return`running`}}function pe(e){return(e.messageId?.startsWith(`local-marker-`)??!1)||(e.content?.startsWith(`↻ Steering: `)??!1)}function A(e){let t=e??``;return t.startsWith(`↻ Steering: `)?t.slice(w.length):t}function j(e){let t=e[e.length-1];t&&(t.kind===`agent`||t.kind===`thinking`)&&!t.isComplete&&(e[e.length-1]={...t,isComplete:!0})}function M(e,t){if(t.updateType===`agent_message_chunk`&&pe(t)){j(e),e.push({kind:`user`,id:t.messageId??`steer-${e.length}`,content:A(t.content)});return}switch(t.updateType){case`user_message_chunk`:{let n=t.messageId??O,r=A(t.content),i=e[e.length-1];i&&i.kind===`user`&&i.id===n?e[e.length-1]={...i,content:i.content+r}:(j(e),e.push({kind:`user`,id:n,content:r}));let a=e[e.length-1].content;for(let t=0;t<e.length-1;t++){let n=e[t];if(n.kind===`user`&&n.id.startsWith(`local-marker-`)&&n.content===a){e.splice(t,1);break}}return}case`agent_message_chunk`:{let n=t.messageId??O,r=e[e.length-1];if(r&&r.kind===`agent`&&r.messageId===n){e[e.length-1]={...r,content:r.content+(t.content??``)};return}if(n!==O&&r&&r.kind===`agent`&&r.messageId===O&&!r.isComplete&&r.content===(t.content??``)){e[e.length-1]={...r,messageId:n};return}j(e),e.push({kind:`agent`,messageId:n,content:t.content??``,isComplete:!1});return}case`agent_thought_chunk`:{let n=t.messageId??O,r=e[e.length-1];if(r&&r.kind===`thinking`&&r.messageId===n){e[e.length-1]={...r,content:r.content+(t.content??``)};return}j(e),e.push({kind:`thinking`,messageId:n,content:t.content??``,isComplete:!1});return}case`tool_call`:{let n=t.toolCallId;if(n===void 0)return;j(e),e.push({kind:`tool`,toolCallId:n,title:t.toolTitle??``,toolKind:t.toolKind,status:k(t.toolStatus,`running`),content:t.content,locations:N(t),rawInput:t.rawInput,rawOutput:t.rawOutput});return}case`tool_call_update`:{let n=t.toolCallId;if(n===void 0)return;let r=e.findIndex(e=>e.kind===`tool`&&e.toolCallId===n);if(r===-1)return;let i=e[r],a=N(t);e[r]={...i,title:t.toolTitle??i.title,toolKind:t.toolKind??i.toolKind,status:k(t.toolStatus,i.status),content:t.content??i.content,locations:a??i.locations,rawInput:t.rawInput===void 0?i.rawInput:t.rawInput,rawOutput:t.rawOutput===void 0?i.rawOutput:t.rawOutput};return}case`plan`:{let n=me(t.content);if(n===null)return;let r=e.findIndex(e=>e.kind===`plan`),i={kind:`plan`,entries:n};r===-1?(j(e),e.push(i)):e[r]=i;return}}}function N(e){let t=e.locations;if(!Array.isArray(t))return;let n=[];for(let e of t){let t=e??{};typeof t.path==`string`&&n.push(typeof t.line==`number`?{path:t.path,line:t.line}:{path:t.path})}return n}function me(e){if(!e)return null;let t;try{t=JSON.parse(e)}catch{return null}let n=Array.isArray(t)?t:Array.isArray(t?.entries)?t.entries:null;return n===null?null:n.map(e=>{let t=e??{},n=t.content??t.label??``;return{label:typeof n==`string`?n:String(n),checked:t.checked===!0||t.status===`completed`}})}function P(e){let t=[];for(let n of e)M(t,n);return t}function F(e,t){if(e===t)return{kind:`identity`};if(e===null)return{kind:`first`};if(t.length<e.length)return{kind:`fallback`};for(let n=0;n<e.length;n++)if(e[n]!==t[n])return n===e.length-1&&t.length===e.length?{kind:`mutate-last`}:{kind:`fallback`};return t.length===e.length?{kind:`identity`}:{kind:`append`,from:e.length}}function I(){let e=null,t=[];function n(n){return t=P(n),e=n,t}function r(r){let i=F(e,r);switch(i.kind){case`identity`:return t;case`first`:return n(r);case`append`:{let n=t.slice();for(let e=i.from;e<r.length;e++)M(n,r[e]);return e=r,t=n,t}case`mutate-last`:case`fallback`:return n(r)}}return{project:r}}function L(e){let t=(0,D.useRef)(null);return t.current??=I(),t.current.project(e)}function R(e){if(!e)return[];let t;try{t=JSON.parse(e)}catch{let t=e.trimStart();return t.startsWith(`{`)||t.startsWith(`[`)?[]:[{type:`content`,text:e}]}let n=Array.isArray(t)?t:[t],r=[];for(let e of n){let t=z(e);t&&r.push(t)}return r}function z(e){if(typeof e!=`object`||!e)return null;let t=e;switch(t.type){case`content`:return{type:`content`,text:he(t.content)};case`diff`:return typeof t.path!=`string`||typeof t.newText!=`string`?null:{type:`diff`,path:t.path,newText:t.newText,...typeof t.oldText==`string`?{oldText:t.oldText}:{}};case`terminal`:{let e=ge(t);return e===void 0?{type:`terminal`}:{type:`terminal`,text:e}}default:return null}}function he(e){if(typeof e==`string`)return e;if(typeof e==`object`&&e){let t=e.text;if(typeof t==`string`)return t}return``}function ge(e){if(typeof e.text==`string`)return e.text;if(typeof e.output==`string`)return e.output;if(typeof e.content==`string`)return e.content;if(typeof e.content==`object`&&e.content!==null){let t=e.content.text;if(typeof t==`string`)return t}}function B(e){if(typeof e!=`object`||!e)return;let t=e.command;return typeof t==`string`?t:void 0}function V(e){return R(e).filter(e=>e.type===`content`||e.type===`terminal`).map(e=>`text`in e?e.text??``:``).filter(e=>e.length>0).join(`
2
- `)}function H(e){if(e!=null){if(typeof e==`string`)return e;if(typeof e==`object`)try{return JSON.stringify(e,null,2)}catch{return String(e)}return String(e)}}function U(e,t){let n=new Map;for(let t of e)t.type===`diff`&&n.set(t.path,{path:t.path,newText:t.newText,...t.oldText===void 0?{}:{oldText:t.oldText}});for(let e of t??[])n.has(e.path)||n.set(e.path,{path:e.path});return Array.from(n.values())}var W=i();function _e({content:e,isComplete:t}){return(0,W.jsxs)(`div`,{"data-testid":`acp-chat-agent-message`,className:`flex w-full flex-col items-start text-chat text-[var(--content-default)]`,children:[(0,W.jsx)(C,{content:e}),!t&&(0,W.jsx)(v,{className:`mt-1`,"data-testid":`acp-chat-agent-streaming`})]})}function ve({entries:e}){return e.length===0?null:(0,W.jsxs)(`div`,{"data-testid":`acp-chat-plan-block`,className:`w-full rounded-lg border border-[var(--border-base)] bg-[var(--surface-overlay)] p-3`,children:[(0,W.jsxs)(`div`,{className:`mb-2 flex items-center gap-1.5 text-[var(--content-tertiary)]`,children:[(0,W.jsx)(ee,{"aria-hidden":!0,className:`h-3.5 w-3.5 shrink-0`}),(0,W.jsx)(a,{variant:`body-small-emphasised`,className:`text-inherit`,children:`Plan`})]}),(0,W.jsx)(`ul`,{className:`flex flex-col gap-1.5`,children:e.map((e,t)=>(0,W.jsxs)(`li`,{"data-testid":`acp-chat-plan-entry`,"data-checked":e.checked,className:`flex items-start gap-2`,children:[e.checked?(0,W.jsx)(d,{"aria-hidden":!0,className:`mt-0.5 h-4 w-4 shrink-0 text-[var(--system-positive-strong)]`}):(0,W.jsx)(ce,{"aria-hidden":!0,className:`mt-0.5 h-4 w-4 shrink-0 text-[var(--content-disabled)]`}),(0,W.jsx)(`span`,{className:e.checked?`text-body-small-default text-[var(--content-tertiary)] line-through`:`text-body-small-default text-[var(--content-default)]`,children:e.label})]},t))})]})}function ye(e){switch(e){case`max_tokens`:case`max_turn_requests`:return`Stopped: limit reached`;case`refusal`:return`Refused`;case`cancelled`:return`Cancelled`;default:return`Completed`}}function be(e){return new Date(e).toLocaleTimeString([],{hour:`numeric`,minute:`2-digit`})}function G({completedAt:e}){return e===void 0?null:(0,W.jsxs)(`span`,{"data-testid":`acp-chat-terminal-time`,children:[`at `,be(e)]})}function xe({status:e,stopReason:t,error:n,completedAt:r}){if(S(e))return null;if(e===`failed`)return(0,W.jsxs)(`div`,{"data-testid":`acp-chat-terminal-block`,"data-terminal-kind":`failed`,className:`flex items-start gap-2 rounded-lg bg-[var(--system-negative-weak)] px-3 py-2 text-body-small-default text-[var(--system-negative-strong)]`,children:[(0,W.jsx)(g,{"aria-hidden":!0,className:`mt-0.5 h-4 w-4 shrink-0`}),(0,W.jsx)(`span`,{children:n??`Run failed`})]});if(e===`cancelled`)return(0,W.jsxs)(`div`,{"data-testid":`acp-chat-terminal-block`,"data-terminal-kind":`cancelled`,className:`flex items-center gap-2 text-body-small-default text-[var(--content-tertiary)]`,children:[(0,W.jsx)(b,{"aria-hidden":!0,className:`h-4 w-4 shrink-0`}),(0,W.jsx)(`span`,{children:`Cancelled`}),(0,W.jsx)(G,{completedAt:r})]});let i=ye(t);return(0,W.jsxs)(`div`,{"data-testid":`acp-chat-terminal-block`,"data-terminal-kind":`completed`,className:`flex items-center gap-2 text-body-small-default text-[var(--content-tertiary)]`,children:[(0,W.jsx)(d,{"aria-hidden":!0,className:`h-4 w-4 shrink-0 text-[var(--system-positive-strong)]`}),(0,W.jsx)(`span`,{children:i}),(0,W.jsx)(G,{completedAt:r})]})}function Se({showDot:e,isLast:t,children:n}){return(0,W.jsxs)(`div`,{className:`relative flex items-start gap-2${t?``:` pb-4`}`,children:[!t&&(0,W.jsx)(`div`,{"aria-hidden":!0,className:`absolute bottom-0 left-[6.5px] w-px bg-[var(--border-element)] ${e?`top-[16px]`:`top-0`}`}),e?(0,W.jsx)(`span`,{"aria-hidden":!0,"data-testid":`acp-chat-timeline-dot`,className:`flex h-[14px] w-[14px] shrink-0 items-center justify-center`,children:(0,W.jsx)(`span`,{className:`h-[5px] w-[5px] rounded-full bg-[var(--content-disabled)]`})}):(0,W.jsx)(`span`,{"aria-hidden":!0,className:`h-[14px] w-[14px] shrink-0`}),(0,W.jsx)(`div`,{className:`min-w-0 flex-1`,children:n})]})}function Ce({content:e,isComplete:t}){let[n,r]=(0,D.useState)(null),i=n??!t,a=e.trim().length>0,o=t?`Thought process`:`Thinking`,s=t?(0,W.jsx)(l,{"aria-hidden":!0,className:`h-3.5 w-3.5 shrink-0`}):(0,W.jsx)(v,{dotSize:5,className:`shrink-0`,"data-testid":`acp-chat-thinking-streaming`});return a?(0,W.jsxs)(`div`,{"data-testid":`acp-chat-thinking-block`,className:`w-full`,children:[(0,W.jsxs)(`button`,{type:`button`,"aria-expanded":i,onClick:()=>r(!i),"data-testid":`acp-chat-thinking-toggle`,className:`flex w-full items-center gap-1.5 text-body-small-default text-[var(--content-tertiary)] transition-colors hover:text-[var(--content-secondary)]`,children:[i?(0,W.jsx)(x,{"aria-hidden":!0,className:`h-3.5 w-3.5 shrink-0`}):(0,W.jsx)(u,{"aria-hidden":!0,className:`h-3.5 w-3.5 shrink-0`}),s,(0,W.jsx)(`span`,{children:o})]}),i&&(0,W.jsx)(`div`,{"data-testid":`acp-chat-thinking-body`,className:`mt-1.5 border-l-2 border-[var(--border-base)] pl-3 text-body-small-default text-[var(--content-tertiary)]`,children:(0,W.jsx)(C,{content:e})})]}):(0,W.jsx)(`div`,{"data-testid":`acp-chat-thinking-block`,className:`w-full`,children:(0,W.jsxs)(`div`,{className:`flex w-full items-center gap-1.5 text-body-small-default text-[var(--content-tertiary)]`,children:[s,(0,W.jsx)(`span`,{children:o})]})})}var we={running:`neutral`,completed:`positive`,error:`negative`,ended:`neutral`},Te={running:`Running`,completed:`Completed`,error:`Failed`,ended:`Ended`},Ee={read:`Read file`,edit:`Edit file`,delete:`Delete file`,move:`Move file`,search:`Search`,execute:`Run command`,think:`Thinking`,fetch:`Fetch`,switch_mode:`Switch mode`},De=`Tool call`,Oe={read:p,edit:de,delete:ne,move:fe,search:te,execute:T,think:l,fetch:m,switch_mode:h},ke=new Set([`read`,`edit`,`delete`,`move`]);function Ae({toolKind:e}){return(0,W.jsx)(e&&Oe[e]||f,{"aria-hidden":!0,className:`h-4 w-4 shrink-0 text-[var(--content-tertiary)]`})}function K({label:e,value:t,testId:n}){return(0,W.jsxs)(`div`,{"data-testid":n,children:[(0,W.jsx)(`div`,{className:`mb-1 text-body-small-default text-[var(--content-tertiary)]`,children:e}),(0,W.jsx)(`pre`,{className:`max-h-60 overflow-auto rounded-md border border-[var(--border-element)] bg-[var(--surface-base)] p-2.5 font-mono text-body-small-default text-[var(--content-secondary)]`,children:t})]})}function je({block:e,isTerminal:t=!1,onOpenDiff:n,onOpenOutput:r}){let[i,s]=(0,D.useState)(!1),c=(0,D.useMemo)(()=>R(e.content),[e.content]),l=(0,D.useMemo)(()=>V(e.content),[e.content]),d=(0,D.useMemo)(()=>l.split(`
3
- `).map(e=>e.trim()).find(e=>e.length>0&&!e.startsWith("```"))||`View output`,[l]),f=(0,D.useMemo)(()=>U(c,e.locations),[c,e.locations]),m=t&&e.status===`running`?`ended`:e.status,h=m===`running`,g=e.toolKind&&Ee[e.toolKind]||De,_=B(e.rawInput)??e.title,y=_&&_!==g&&(!ke.has(e.toolKind??``)||f.length===0)?_:null,b=H(e.rawInput),S=H(e.rawOutput),C=b!==void 0||S!==void 0;return(0,W.jsxs)(`div`,{"data-testid":`acp-chat-tool-card`,"data-status":e.status,className:`w-full rounded-lg border border-[var(--border-base)] bg-[var(--surface-overlay)] p-3`,children:[(0,W.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,W.jsx)(Ae,{toolKind:e.toolKind}),(0,W.jsx)(a,{variant:`body-small-emphasised`,className:`min-w-0 flex-1 truncate text-[var(--content-default)]`,title:e.title,children:g}),(0,W.jsx)(o,{tone:we[m],"data-testid":`acp-chat-tool-status`,children:Te[m]}),h&&(0,W.jsx)(v,{className:`shrink-0`,"data-testid":`acp-chat-tool-running`})]}),y&&(0,W.jsx)(`div`,{"data-testid":`acp-chat-tool-detail`,className:`mt-1.5 font-mono text-body-small-default whitespace-pre-wrap break-words text-[var(--content-secondary)]`,children:y}),f.length>0&&(0,W.jsx)(`div`,{className:`mt-2 flex flex-wrap gap-1.5`,children:f.map(t=>{let r=t.oldText!==void 0||t.newText!==void 0,i=`flex max-w-full items-center gap-1.5 rounded-md border border-[var(--border-base)] bg-[var(--surface-base)] px-2 py-1 text-body-small-default text-[var(--content-secondary)]`;return r?(0,W.jsxs)(`button`,{type:`button`,"data-testid":`acp-chat-tool-file-chip`,onClick:()=>n(e.toolCallId,t),title:t.path,className:`${i} cursor-pointer transition-colors hover:bg-[var(--surface-hover)] focus-visible:outline focus-visible:outline-2 focus-visible:outline-[var(--border-focus)]`,children:[(0,W.jsx)(p,{"aria-hidden":!0,className:`h-3.5 w-3.5 shrink-0`}),(0,W.jsx)(`span`,{className:`truncate font-mono`,children:t.path})]},t.path):(0,W.jsxs)(`span`,{"data-testid":`acp-chat-tool-file-ref`,title:t.path,className:i,children:[(0,W.jsx)(p,{"aria-hidden":!0,className:`h-3.5 w-3.5 shrink-0`}),(0,W.jsx)(`span`,{className:`truncate font-mono`,children:t.path})]},t.path)})}),l.length>0&&(0,W.jsxs)(`button`,{type:`button`,"data-testid":`acp-chat-tool-output-open`,onClick:()=>r?.(e.toolCallId),className:`mt-2 flex w-full items-center gap-2 rounded-md border border-[var(--border-element)] bg-[var(--surface-base)] px-2.5 py-2 text-left transition-colors hover:bg-[var(--surface-hover)] focus-visible:outline focus-visible:outline-2 focus-visible:outline-[var(--border-focus)]`,children:[(0,W.jsx)(T,{"aria-hidden":!0,className:`h-3.5 w-3.5 shrink-0 text-[var(--content-tertiary)]`}),(0,W.jsx)(`span`,{className:`min-w-0 flex-1 truncate font-mono text-body-small-default text-[var(--content-secondary)]`,children:d}),(0,W.jsx)(u,{"aria-hidden":!0,className:`h-3.5 w-3.5 shrink-0 text-[var(--content-tertiary)]`})]}),C&&(0,W.jsxs)(`div`,{className:`mt-2`,"data-testid":`acp-chat-tool-raw`,children:[(0,W.jsxs)(`button`,{type:`button`,"data-testid":`acp-chat-tool-raw-toggle`,"aria-expanded":i,onClick:()=>s(e=>!e),className:`flex items-center gap-1 text-body-small-default text-[var(--content-tertiary)] transition-colors hover:text-[var(--content-default)]`,children:[i?(0,W.jsx)(x,{"aria-hidden":!0,className:`h-3.5 w-3.5 shrink-0`}):(0,W.jsx)(u,{"aria-hidden":!0,className:`h-3.5 w-3.5 shrink-0`}),(0,W.jsx)(`span`,{children:i?`Hide raw input/output`:`Show raw input/output`})]}),i&&(0,W.jsxs)(`div`,{className:`mt-1.5 flex flex-col gap-2`,children:[b!==void 0&&(0,W.jsx)(K,{label:`Raw input`,value:b,testId:`acp-chat-tool-raw-input`}),S!==void 0&&(0,W.jsx)(K,{label:`Raw output`,value:S,testId:`acp-chat-tool-raw-output`})]})]})]})}function Me({content:e}){return(0,W.jsx)(`div`,{"data-testid":`acp-chat-user-turn`,className:`flex w-full justify-end`,children:(0,W.jsx)(`div`,{className:`max-w-[80%] rounded-lg bg-[var(--surface-lift)] px-4 py-3 whitespace-pre-wrap text-chat text-[var(--content-default)]`,children:e})})}function Ne(e,t){let n=e=>new Intl.NumberFormat(void 0,{style:`currency`,currency:t}).format(e);return e>0&&e<.01?`<${n(.01)}`:n(e)}var q=new Intl.NumberFormat(`en-US`);function J({label:e,value:t}){return(0,W.jsxs)(`div`,{className:`flex items-baseline gap-1`,"data-usage-stat":e.toLowerCase(),children:[(0,W.jsx)(a,{variant:`label-small-default`,className:`text-[var(--content-tertiary)]`,children:e}),(0,W.jsx)(a,{variant:`body-small-default`,className:`text-[var(--content-secondary)] tabular-nums`,children:t})]})}function Pe({entry:e}){let{inputTokens:t,outputTokens:n,costAmount:r,costCurrency:i}=e;if(t===void 0&&n===void 0)return null;let a=t??0,o=n??0,s=r!=null&&i!=null;return(0,W.jsxs)(`div`,{className:`flex items-center gap-3`,"data-testid":`acp-usage-meter`,children:[(0,W.jsx)(J,{label:`Input`,value:q.format(a)}),(0,W.jsx)(J,{label:`Output`,value:q.format(o)}),s&&(0,W.jsx)(J,{label:`Cost`,value:Ne(r,i)})]})}function Fe({content:e}){return(0,W.jsx)(`div`,{"data-testid":`acp-chat-command-output`,className:`rounded-lg border border-[var(--border-base)] bg-[var(--surface-overlay)] p-3 [&_pre]:!max-h-none`,children:(0,W.jsx)(C,{content:V(e),hardLineBreaks:!0})})}var Y=2e3;function X(e){if(e===``)return[];let t=e.split(`
4
- `);return e.endsWith(`
5
- `)&&t.pop(),t}function Ie(e,t){let n=e.length,r=t.length,i=Array.from({length:n+1},()=>Array(r+1).fill(0));for(let a=n-1;a>=0;a--)for(let n=r-1;n>=0;n--)i[a][n]=e[a]===t[n]?i[a+1][n+1]+1:Math.max(i[a+1][n],i[a][n+1]);let a=[],o=0,s=0;for(;o<n&&s<r;)e[o]===t[s]?(a.push({type:`ctx`,text:e[o],oldNo:o+1,newNo:s+1}),o++,s++):i[o+1][s]>=i[o][s+1]?(a.push({type:`del`,text:e[o],oldNo:o+1}),o++):(a.push({type:`add`,text:t[s],newNo:s+1}),s++);for(;o<n;)a.push({type:`del`,text:e[o],oldNo:o+1}),o++;for(;s<r;)a.push({type:`add`,text:t[s],newNo:s+1}),s++;return a}function Le(e,t){let n=X(e),r=X(t);return n.length>Y||r.length>Y?[{type:`too-large`,text:`Diff too large to render (over ${Y.toLocaleString()} lines)`}]:n.length===0?r.map((e,t)=>({type:`add`,text:e,newNo:t+1})):r.length===0?n.map((e,t)=>({type:`del`,text:e,oldNo:t+1})):Ie(n,r)}var Z=`—`;function Q(e){switch(e){case`add`:return`bg-[var(--system-positive-weak)] text-[var(--system-positive-strong)]`;case`del`:return`bg-[var(--system-negative-weak)] text-[var(--system-negative-strong)]`;case`too-large`:return`text-[var(--content-tertiary)] italic`;default:return`text-[var(--content-tertiary)]`}}function Re(e){switch(e){case`add`:return`+`;case`del`:return`-`;default:return` `}}function ze({path:e,oldText:t,newText:n}){let r=Le(t??``,n??``);return(0,W.jsx)(`div`,{"aria-label":`Diff for ${e}`,"data-testid":`acp-chat-file-diff`,className:`flex flex-col overflow-hidden rounded-lg border border-[var(--border-base)] bg-[var(--surface-overlay)]`,children:(0,W.jsx)(`div`,{className:`overflow-x-auto font-mono text-xs`,children:r.map((e,t)=>(0,W.jsx)(Be,{row:e},t))})})}function Be({row:e}){return e.type===`too-large`?(0,W.jsx)(`div`,{"data-diff-type":`too-large`,className:`px-3 py-2 whitespace-pre-wrap ${Q(e.type)}`,children:e.text}):(0,W.jsxs)(`div`,{"data-diff-type":e.type,className:`flex items-start whitespace-pre ${Q(e.type)}`,children:[(0,W.jsx)(`span`,{className:`w-10 shrink-0 select-none px-2 text-right text-[var(--content-tertiary)] tabular-nums`,children:e.oldNo??Z}),(0,W.jsx)(`span`,{className:`w-10 shrink-0 select-none px-2 text-right text-[var(--content-tertiary)] tabular-nums`,children:e.newNo??Z}),(0,W.jsx)(`span`,{className:`w-4 shrink-0 select-none text-center`,children:Re(e.type)}),(0,W.jsx)(`span`,{className:`flex-1 pr-3`,children:e.text})]})}var Ve=80;function $(e){return e.scrollHeight-e.clientHeight-e.scrollTop<=Ve}function He(e){let t=(0,D.useRef)(null),n=(0,D.useRef)(!0),[r,i]=(0,D.useState)(!1),a=(0,D.useCallback)(()=>{let e=t.current;e&&(e.scrollTop=e.scrollHeight)},[]),o=(0,D.useCallback)(()=>{let e=t.current;if(!e)return;let r=$(e);n.current=r,i(e=>e===!r?e:!r)},[]),s=(0,D.useCallback)(()=>{n.current=!0,a(),i(!1)},[a]),c=(0,D.useCallback)(e=>{let r=t.current;r&&r.removeEventListener(`scroll`,o),t.current=e,e&&(e.addEventListener(`scroll`,o,{passive:!0}),n.current?e.scrollTop=e.scrollHeight:o())},[o]);return(0,D.useLayoutEffect)(()=>{n.current?a():o()},[e,a,o]),{scrollRef:c,showScrollToLatest:r,scrollToLatest:s}}function Ue(e,t){switch(e.kind){case`user`:return`user-${e.id||t}`;case`agent`:return`agent-${e.messageId||t}`;case`thinking`:return`thinking-${e.messageId||t}`;case`tool`:return`tool-${e.toolCallId}`;case`plan`:return`plan`}}var We=[];function Ge({entry:e,onClose:t}){let n=S(e.status),i=L(y(t=>t.byId[e.acpSessionId]?.events??We)),[o,s]=(0,D.useState)(null),[c,l]=(0,D.useState)(e.acpSessionId);c!==e.acpSessionId&&(l(e.acpSessionId),s(null));let d=(0,D.useCallback)((e,t)=>s({kind:`diff`,toolCallId:e,path:t.path}),[]),f=(0,D.useCallback)(e=>s({kind:`output`,toolCallId:e}),[]),p=(0,D.useCallback)(()=>s(null),[]),m=(0,D.useMemo)(()=>o?i.find(e=>e.kind===`tool`&&e.toolCallId===o.toolCallId)??null:null,[o,i]),h=(0,D.useMemo)(()=>o?.kind!==`diff`||!m?null:U(R(m.content),m.locations).find(e=>e.path===o.path)??null,[o,m]),g=o?.kind===`diff`?o.path:m?B(m.rawInput)??m.title??`Output`:`Output`,{scrollRef:_,showScrollToLatest:v,scrollToLatest:b}=He((0,D.useMemo)(()=>({blocks:i,status:e.status,completedAt:e.completedAt}),[i,e.status,e.completedAt])),x=!n;return(0,W.jsxs)(`div`,{className:`flex h-full flex-col overflow-hidden rounded-xl bg-[var(--surface-lift)]`,children:[o&&(0,W.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2 border-b border-[var(--border-hover)] px-5 py-3`,children:[(0,W.jsx)(`button`,{type:`button`,onClick:p,title:e.agent,className:`min-w-0 shrink cursor-pointer truncate text-left text-[var(--content-default)] hover:underline`,children:(0,W.jsx)(a,{variant:`body-small-default`,as:`span`,children:e.agent})}),(0,W.jsx)(u,{className:`h-2.5 w-2.5 shrink-0 text-[var(--content-tertiary)]`,"aria-hidden":!0}),(0,W.jsx)(a,{variant:`body-small-default`,as:`span`,title:g,className:`min-w-0 shrink truncate font-mono text-[var(--content-secondary)]`,children:g})]}),(0,W.jsx)(Ke,{entry:e,isRunning:n,onClose:t,showBack:!!o,onBack:p},`header-${e.acpSessionId}`),o?(0,W.jsx)(`div`,{className:`flex-1 overflow-y-auto px-5 py-5`,children:o.kind===`diff`?(0,W.jsx)(ze,{path:o.path,oldText:h?.oldText,newText:h?.newText}):(0,W.jsx)(Fe,{content:m?.content})}):(0,W.jsxs)(`div`,{className:`relative min-h-0 flex-1`,children:[(0,W.jsxs)(`div`,{ref:_,"data-testid":`acp-chat-conversation`,className:`flex h-full flex-col gap-4 overflow-y-auto px-5 py-5`,children:[(0,W.jsx)(qe,{task:e.task}),(0,W.jsx)(`div`,{className:`flex flex-col`,"data-testid":`acp-chat-timeline`,children:i.map((e,t)=>(0,W.jsx)(Se,{showDot:t===0||t===i.length-1||e.kind===`tool`||e.kind===`plan`,isLast:t===i.length-1,children:(0,W.jsx)(Je,{block:e,isTerminal:x,onOpenDiff:d,onOpenOutput:f})},Ue(e,t)))}),!n&&(0,W.jsx)(xe,{status:e.status,stopReason:e.stopReason,error:e.error,completedAt:e.completedAt})]}),v&&(0,W.jsx)(r,{variant:`outlined`,size:`compact`,iconOnly:(0,W.jsx)(ie,{}),onClick:b,"aria-label":`Go to newest`,tooltip:`Go to newest`,"data-testid":`acp-chat-scroll-to-latest`,className:`absolute bottom-3 left-1/2 -translate-x-1/2 rounded-full shadow-md`})]}),n&&!o&&(0,W.jsx)(Ye,{acpSessionId:e.acpSessionId},`steer-${e.acpSessionId}`)]})}function Ke({entry:e,isRunning:n,onClose:i,showBack:o=!1,onBack:s}){let[l,u]=(0,D.useState)(!1),d=ae(e.status,e.stopReason),f=(0,D.useCallback)(()=>{u(!0),oe(e.acpSessionId).catch(e=>{u(!1),t(e,{context:`AcpRunChatView.stop`})})},[e.acpSessionId]);return(0,W.jsxs)(`div`,{className:`flex shrink-0 items-center gap-3 border-b border-[var(--border-hover)] px-5 py-4`,children:[o&&(0,W.jsx)(r,{variant:`outlined`,iconOnly:(0,W.jsx)(c,{}),onClick:s,"aria-label":`Back to conversation`,tooltip:`Back`,"data-testid":`acp-chat-diff-back`,className:`shrink-0 rounded-lg`}),(0,W.jsx)(E,{agent:e.agent,className:`h-5 w-5 shrink-0`}),(0,W.jsx)(a,{variant:`title-medium`,title:e.agent,className:`min-w-0 shrink truncate leading-snug text-[var(--content-default)]`,children:e.agent}),(0,W.jsx)(ue,{color:d.color,label:d.label}),(0,W.jsx)(`span`,{className:`flex-1`}),(0,W.jsx)(Pe,{entry:e}),n&&(0,W.jsxs)(`button`,{type:`button`,"aria-label":`Stop run`,onClick:f,disabled:l,className:`flex h-8 shrink-0 cursor-pointer items-center gap-1.5 rounded-lg border border-[var(--system-negative-strong)] bg-transparent px-2.5 py-1.5 text-[var(--system-negative-strong)] transition-colors hover:bg-[var(--system-negative-weak)] disabled:cursor-default disabled:opacity-50`,children:[(0,W.jsx)(re,{className:`h-3 w-3`,fill:`currentColor`}),(0,W.jsx)(a,{variant:`label-small-default`,children:`Stop`})]}),(0,W.jsx)(r,{variant:`outlined`,iconOnly:(0,W.jsx)(_,{}),onClick:i,"aria-label":`Close run detail`,tooltip:`Close`,className:`shrink-0 rounded-lg`})]})}function qe({task:e}){return e?(0,W.jsxs)(`div`,{"data-testid":`acp-chat-objective`,children:[(0,W.jsx)(a,{variant:`body-medium-default`,as:`h3`,className:`mb-1 text-[var(--content-emphasised)]`,children:`Objective`}),(0,W.jsx)(a,{variant:`body-medium-lighter`,as:`p`,className:`whitespace-pre-wrap break-words leading-relaxed text-[var(--content-default)]`,children:e}),(0,W.jsx)(`div`,{className:`mt-4 h-px w-full bg-[var(--border-hover)]`})]}):null}function Je({block:e,isTerminal:t,onOpenDiff:n,onOpenOutput:r}){switch(e.kind){case`user`:return(0,W.jsx)(Me,{content:e.content});case`agent`:return(0,W.jsx)(_e,{content:e.content,isComplete:e.isComplete||t});case`thinking`:return(0,W.jsx)(Ce,{content:e.content,isComplete:e.isComplete||t});case`tool`:return(0,W.jsx)(je,{block:e,isTerminal:t,onOpenDiff:n,onOpenOutput:r});case`plan`:return(0,W.jsx)(ve,{entries:e.entries})}}function Ye({acpSessionId:e}){let[n,i]=(0,D.useState)(``),[a,o]=(0,D.useState)(!1);return(0,W.jsx)(`form`,{onSubmit:(0,D.useCallback)(r=>{r.preventDefault();let s=n.trim();if(!s||a)return;o(!0);let c=y.getState().appendLocalMarker({acpSessionId:e,content:`${w}${s}`});se(e,s).then(()=>i(``)).catch(n=>{c&&y.getState().removeLocalMarker({acpSessionId:e,markerId:c}),t(n,{context:`AcpRunChatView.steer`})}).finally(()=>o(!1))},[n,a,e]),"data-testid":`acp-chat-steer-form`,className:`sticky bottom-0 z-10 shrink-0 border-t border-[var(--border-hover)] bg-[var(--surface-lift)] px-5 py-3`,children:(0,W.jsxs)(`div`,{className:`flex items-center gap-2 rounded-md bg-[var(--surface-base)] px-3 py-2`,children:[(0,W.jsx)(`input`,{type:`text`,value:n,onChange:e=>i(e.target.value),placeholder:`Steer the run…`,disabled:a,"aria-label":`Steering instruction`,className:`text-body-medium-default min-w-0 flex-1 bg-transparent text-[color:var(--content-default)] placeholder:text-[color:var(--content-tertiary)] focus:outline-none disabled:opacity-50`}),(0,W.jsx)(r,{type:`submit`,variant:`primary`,size:`compact`,iconOnly:(0,W.jsx)(le,{}),disabled:a||n.trim()===``,"aria-label":`Send steering instruction`,className:`shrink-0`})]})})}function Xe({entry:e,onClose:t}){return(0,W.jsx)(Ge,{entry:e,onClose:t})}export{Xe as AcpRunDetailPanel};
@@ -1 +0,0 @@
1
- import{r as e}from"./chunk-jRWAZmH_.js";import{B as t,F as n,G as r,H as i,I as a,J as ee,K as te,L as o,N as ne,P as re,R as s,U as ie,V as c,W as l,Y as ae,q as u,z as d}from"./local-mode-CvrNMtPF.js";function f(e){return ae(re,e)}function oe(e){return ee(ne,e)}var se=n([`end_turn`,`max_tokens`,`max_turn_requests`,`refusal`,`cancelled`]),ce=i({type:t(`acp_session_completed`),acpSessionId:r(),stopReason:se}).strict(),le=i({type:t(`acp_session_error`),acpSessionId:r(),error:r()}).strict(),ue=i({type:t(`acp_session_spawned`),acpSessionId:r(),agent:r(),parentConversationId:r(),parentToolUseId:r().optional(),task:r().optional()}).strict(),de=n([`agent_message_chunk`,`agent_thought_chunk`,`user_message_chunk`,`tool_call`,`tool_call_update`,`plan`]),fe=i({type:t(`acp_session_update`),acpSessionId:r(),updateType:de,content:r().optional(),toolCallId:r().optional(),toolTitle:r().optional(),toolKind:r().optional(),toolStatus:r().optional(),rawInput:u().optional(),rawOutput:u().optional(),locations:o(i({path:r(),line:c().optional()})).optional(),messageId:r().optional(),seq:c().optional()}).strict(),pe=i({type:t(`acp_session_usage`),acpSessionId:r(),usedTokens:c(),contextSize:c(),inputTokens:c().optional(),outputTokens:c().optional(),costAmount:c().optional(),costCurrency:r().optional()}).strict(),me=n([`idle`,`thinking`,`streaming`,`tool_running`,`awaiting_confirmation`]),he=n([`assistant_turn`,`user_turn`,`global`]),ge=n([`message_dequeued`,`thinking_delta`,`first_text_delta`,`tool_use_start`,`preview_start`,`tool_result_received`,`confirmation_requested`,`confirmation_resolved`,`context_compacting`,`message_complete`,`generation_cancelled`,`error_terminal`]),_e=i({type:t(`assistant_activity_state`),conversationId:r(),activityVersion:c(),phase:me,anchor:he,reason:ge,requestId:r().optional(),statusText:r().optional()}),ve=i({type:t(`assistant_text_delta`),text:r(),messageId:r().optional(),conversationId:r().optional()}),ye=i({type:t(`assistant_thinking_delta`),thinking:r(),messageId:r().optional(),conversationId:r().optional(),timestampMs:c().optional()}),p=i({type:t(`assistant_turn_start`),messageId:r(),conversationId:r().optional()}),m=i({type:t(`avatar_updated`),avatarPath:r()}),h=i({type:t(`background_tool_completed`),id:r(),conversationId:r(),status:n([`completed`,`failed`,`cancelled`]),exitCode:c().nullable().optional(),output:r().optional(),completedAt:c()}),g=i({type:t(`background_tool_started`),id:r(),toolName:r(),conversationId:r(),command:r(),startedAt:c()}),_=i({type:t(`compaction_circuit_closed`),conversationId:r()}),v=i({type:t(`compaction_circuit_open`),conversationId:r(),reason:t(`3_consecutive_failures`),openUntil:c()}),y=i({label:r(),description:r(),pattern:r()}),b=i({label:r(),scope:r()}),x=i({label:r(),scope:r()}),S=i({filePath:r(),oldContent:r(),newContent:r(),isNewFile:s()}),C=n([`allow_once`,`allow_always`,`reject_once`,`reject_always`]),w=i({optionId:r(),name:r(),kind:C}),T=n([`sandbox`,`host`]),E=i({type:t(`confirmation_request`),requestId:r(),toolName:r(),input:l(r(),u()),riskLevel:r(),riskReason:r().optional(),isContainerized:s().optional(),executionTarget:T.optional(),allowlistOptions:o(y),scopeOptions:o(b),directoryScopeOptions:o(x).optional(),diff:S.optional(),conversationId:r().optional(),persistentDecisionsAllowed:s().optional(),toolUseId:r().optional(),acpToolKind:r().optional(),acpOptions:o(w).optional()}),D=i({type:t(`contact_request`),requestId:r(),channel:r().optional(),placeholder:r().optional(),label:r().optional(),description:r().optional(),role:r().optional()}),O=n([`PROVIDER_NETWORK`,`PROVIDER_RATE_LIMIT`,`MANAGED_USAGE_LIMIT`,`PROVIDER_OVERLOADED`,`PROVIDER_API`,`IMAGE_TOO_LARGE`,`PROVIDER_BILLING`,`PROVIDER_ORDERING`,`PROVIDER_WEB_SEARCH`,`PROVIDER_NOT_CONFIGURED`,`PROVIDER_INVALID_KEY`,`MANAGED_KEY_INVALID`,`CONTEXT_TOO_LARGE`,`BUDGET_YIELD_UNRECOVERED`,`MAX_TOKENS_REACHED`,`CONVERSATION_ABORTED`,`CONVERSATION_PROCESSING_FAILED`,`DISK_SPACE_CRITICAL`,`UNKNOWN`]),k=i({type:t(`conversation_error`),conversationId:r(),code:O,userMessage:r(),retryable:s(),debugDetails:r().optional(),errorCategory:r().optional(),connectionName:r().optional(),profileName:r().optional()}),A=n([`created`,`renamed`,`deleted`,`reordered`,`seen_changed`]),j=i({type:t(`conversation_list_invalidated`),reason:A}),M=n([`memory_v3`]),N=i({type:t(`conversation_notice`),conversationId:r(),source:M,code:O,userMessage:r(),errorCategory:r().optional()}),P=i({type:t(`conversation_title_updated`),conversationId:r(),title:r()}),F=n([`disabled`,`ok`,`warning`,`critical`,`unknown`]),I=n([`agent-turns`,`background-work`,`remote-ingress`]),L=i({enabled:s(),state:F,locked:s(),acknowledged:s(),overrideActive:s(),effectivelyLocked:s(),lockId:r().nullable(),usagePercent:c().nullable(),thresholdPercent:c(),path:r().nullable(),lastCheckedAt:r().nullable(),blockedCapabilities:o(I),error:r().nullable()}),R=i({type:t(`disk_pressure_status_changed`),status:L}),be=i({id:r(),surfaceId:r(),author:r(),content:r(),anchorStart:c().optional(),anchorEnd:c().optional(),anchorText:r().optional(),parentCommentId:r().optional(),status:r(),createdAt:c(),updatedAt:c()}),z=i({type:t(`document_comment_created`),conversationId:r(),surfaceId:r(),comment:be}),xe=i({type:t(`document_comment_deleted`),conversationId:r(),surfaceId:r(),commentId:r()}),Se=i({type:t(`document_comment_reopened`),conversationId:r(),surfaceId:r(),commentId:r()}),Ce=i({type:t(`document_comment_resolved`),conversationId:r(),surfaceId:r(),commentId:r(),resolvedBy:r()}),we=i({type:t(`document_editor_update`),conversationId:r(),surfaceId:r(),markdown:r(),mode:r()}),Te=i({type:t(`error`),message:r(),code:r().optional(),category:r().optional(),errorCategory:r().optional(),requestId:r().optional(),conversationId:r().optional()}),Ee=i({type:t(`generation_cancelled`),conversationId:r().optional()}),B=i({id:r().optional(),filename:r(),mimeType:r(),data:r(),sourceType:n([`sandbox_file`,`host_file`,`tool_block`]).optional(),sizeBytes:c().optional(),thumbnailData:r().optional(),fileBacked:s().optional(),filePath:r().optional()}),De=i({type:t(`generation_handoff`),conversationId:r().optional(),requestId:r().optional(),queuedCount:c(),messageId:r().optional(),attachments:o(B).optional(),attachmentWarnings:o(r()).optional()}),Oe=i({type:t(`home_feed_updated`),updatedAt:r(),newItemCount:c()}),ke=i({type:t(`identity_changed`),name:r(),role:r(),personality:r(),emoji:r(),home:r()}),Ae=n([`approved`,`rejected`,`answered`,`cancelled`,`superseded`]),je=i({type:t(`interaction_resolved`),requestId:r(),conversationId:r(),state:Ae,kind:r()}),Me=i({type:t(`message_complete`),messageId:r().optional(),conversationId:r().optional(),source:n([`main`,`aux`]).optional(),attachments:o(B).optional(),attachmentWarnings:o(r()).optional()}),Ne=i({type:t(`message_dequeued`),conversationId:r(),requestId:r()}),Pe=i({type:t(`message_queued`),conversationId:r(),requestId:r(),position:c()}),Fe=i({type:t(`message_queued_deleted`),conversationId:r(),requestId:r()}),Ie=i({type:t(`message_request_complete`),conversationId:r(),requestId:r(),runStillActive:s().optional()}),Le=i({type:t(`navigate_settings`),tab:r()}),Re=i({type:t(`notification_intent`),sourceEventName:r(),title:r(),body:r(),deliveryId:r().optional(),deepLinkMetadata:l(r(),u()).optional(),targetGuardianPrincipalId:r().optional(),silent:s().optional()}),ze=i({type:t(`open_url`),url:r().min(1),title:r().optional(),conversationId:r().optional()}),V=i({id:r(),label:r(),description:r().optional()}),H=i({id:r(),question:r(),description:r().optional(),options:o(V),freeTextPlaceholder:r().optional()}),Be=i({type:t(`question_request`),requestId:r(),questions:o(H),question:r(),description:r().optional(),options:o(V),freeTextPlaceholder:r().optional(),conversationId:r().optional(),toolUseId:r().optional()}),Ve=i({type:t(`relationship_state_updated`),updatedAt:r()}),He=i({type:t(`secret_request`),requestId:r(),service:r(),field:r(),label:r(),description:r().optional(),placeholder:r().optional(),conversationId:r().optional(),purpose:r().optional(),allowedTools:o(r()).optional(),allowedDomains:o(r()).optional(),allowOneTimeSend:s().optional()}),Ue=i({type:r(),content:r().optional(),text:r().optional(),result:r().optional(),input:l(r(),u()).optional(),toolName:r().optional(),isError:s().optional(),toolUseId:r().optional()}).passthrough(),We=i({type:t(`subagent_event`),conversationId:r(),subagentId:r(),event:Ue}).strict(),Ge=i({type:t(`subagent_spawned`),subagentId:r(),parentConversationId:r(),label:r(),objective:r(),isFork:s().optional(),parentToolUseId:r().optional()}).strict(),U=n([`pending`,`running`,`awaiting_input`,`completed`,`failed`,`aborted`,`interrupted`]),W=i({inputTokens:c(),outputTokens:c(),estimatedCost:c()}).strict(),Ke=i({type:t(`subagent_status_changed`),subagentId:r(),status:U,error:r().optional(),usage:W.optional()}).strict(),qe=i({type:t(`sync_changed`),tags:o(r().min(1)).min(1),originClientId:r().min(1).optional()}),Je=n([`tool_start`,`tool_complete`,`status`]),Ye=i({type:t(`tool_output_chunk`),chunk:r(),conversationId:r().optional(),toolUseId:r().optional(),subType:Je.optional(),subToolName:r().optional(),subToolInput:r().optional(),subToolIsError:s().optional(),subToolId:r().optional(),messageId:r().optional()}),Xe=i({pattern:r(),label:r()}),Ze=n([`anthropic-native`,`brave`,`perplexity`,`tavily`,`firecrawl`]),Qe=n([`default`,`firecrawl`]),$e=i({rank:c(),title:r(),url:r(),domain:r(),faviconUrl:r().optional(),snippet:r().optional(),age:r().optional(),score:c().optional()}),et=i({query:r(),provider:Ze,resultCount:c(),durationMs:c(),results:o($e),errorMessage:r().optional()}),tt=i({url:r(),finalUrl:r(),provider:Qe.optional(),status:c(),contentType:r().optional(),byteCount:c(),charCount:c(),truncated:s(),title:r().optional(),domain:r(),faviconUrl:r().optional(),redirectCount:c(),durationMs:c(),errorMessage:r().optional(),mayRequireJavaScript:s().optional()}),G=i({webSearch:et.optional(),webFetch:tt.optional()}),nt=i({type:t(`tool_result`),toolName:r(),result:r(),isError:s().optional(),diff:S.optional(),status:r().optional(),conversationId:r().optional(),imageData:r().optional(),imageDataList:o(r()).optional(),toolUseId:r().optional(),messageId:r().optional(),riskLevel:r().optional(),riskReason:r().optional(),matchedTrustRuleId:r().optional(),isContainerized:s().optional(),riskScopeOptions:o(Xe).optional(),riskAllowlistOptions:o(y).optional(),riskDirectoryScopeOptions:o(x).optional(),approvalMode:r().optional(),approvalReason:r().optional(),riskThreshold:r().optional(),activityMetadata:G.optional(),completedAt:c().optional()}),rt=i({type:t(`tool_use_preview_start`),toolUseId:r(),toolName:r(),conversationId:r().optional(),messageId:r().optional(),previewStartedAt:c().optional()}),it=i({type:t(`tool_use_start`),toolName:r(),input:l(r(),u()),toolUseId:r().optional(),messageId:r().optional(),conversationId:r().optional(),startedAt:c().optional(),previewStartedAt:c().optional()}),at=n([`request_received`,`request_queued`,`request_dequeued`,`llm_call_started`,`llm_call_finished`,`assistant_message`,`tool_started`,`tool_permission_requested`,`tool_permission_decided`,`tool_finished`,`tool_failed`,`generation_handoff`,`message_complete`,`generation_cancelled`,`request_error`,`tool_profiling_summary`]),ot=n([`info`,`success`,`warning`,`error`]),st=i({type:t(`trace_event`),eventId:r(),conversationId:r(),requestId:r().optional(),timestampMs:c(),sequence:c(),kind:at,status:ot.optional(),summary:r(),attributes:l(r(),te([r(),c(),s(),a()])).optional()}),K=i({type:t(`ui_surface_complete`),conversationId:r(),surfaceId:r(),summary:r(),submittedData:l(r(),u()).optional()}),ct=i({type:t(`ui_surface_dismiss`),conversationId:r(),surfaceId:r()}),lt=i({id:r(),label:r(),style:n([`primary`,`secondary`,`destructive`]).optional(),data:l(r(),u()).optional()}),ut=i({type:t(`ui_surface_show`),conversationId:r(),surfaceId:r(),surfaceType:r(),title:r().optional(),data:l(r(),u()),actions:o(lt).optional(),display:n([`inline`,`panel`]).optional(),messageId:r().optional(),persistent:s().optional(),toolCallId:r().optional()}),dt=i({type:t(`ui_surface_update`),conversationId:r(),surfaceId:r(),data:l(r(),u())}),q=i({type:t(`usage_progress`),conversationId:r(),inputTokens:c(),outputTokens:c(),estimatedCost:c(),model:r()}),ft=i({type:t(`usage_update`),conversationId:r(),inputTokens:c(),outputTokens:c(),cacheCreationInputTokens:c().optional(),cacheReadInputTokens:c().optional(),totalInputTokens:c(),totalOutputTokens:c(),estimatedCost:c(),model:r(),contextWindowTokens:c().optional(),contextWindowMaxTokens:c().optional()}),pt=i({type:t(`user_message_echo`),text:r(),conversationId:r().optional(),messageId:r().optional(),requestId:r().optional(),clientMessageId:r().optional()}).strict(),J=n([`running`,`completed`,`failed`,`aborted`,`cap_exceeded`,`interrupted`]),mt=i({type:t(`workflow_completed`),runId:r(),conversationId:r().optional(),status:J,agentsSpawned:c(),inputTokens:c(),outputTokens:c(),summary:r().optional()}).strict(),ht=i({type:t(`workflow_leaf_finished`),runId:r(),conversationId:r(),seq:c().int(),status:n([`completed`,`failed`]),label:r().optional(),inputTokens:c().optional(),outputTokens:c().optional(),resultSummary:r().optional()}).strict(),gt=i({type:t(`workflow_leaf_started`),runId:r(),conversationId:r(),seq:c().int(),label:r().optional(),phase:r().optional(),promptSummary:r().optional()}).strict(),_t=i({type:t(`workflow_progress`),runId:r(),conversationId:r().optional(),agentsSpawned:c(),phase:r().optional(),label:r().optional(),message:r().optional()}).strict(),vt=i({type:t(`workflow_started`),runId:r(),conversationId:r(),toolUseId:r().optional(),label:r().optional()}).strict(),yt=`syntheticAgentErrorMessage`,bt=`compactionAgent`,xt=3e4,St=i({cursorInTextField:s().optional().describe(`Whether the cursor is in an editable text field when dictation started`)}).passthrough().describe(`Dictation context (app name, window title, bundle ID, cursor state, selected text)`),Ct=i({transcription:r().describe(`Raw speech transcription`),context:St,profileId:r().describe(`Optional dictation profile ID`).optional()}),Y=i({id:r(),filename:r(),mimeType:r(),sizeBytes:c(),kind:r(),data:r().optional(),thumbnailData:r().optional(),fileBacked:s().optional()}),wt=i({pattern:r(),label:r()}),Tt=i({label:r(),description:r(),pattern:r()}),Et=i({scope:r(),label:r()}),Dt=i({requestId:r(),title:r().optional(),description:r().optional(),toolName:r().optional(),riskLevel:r().optional(),riskReason:r().optional(),input:l(r(),u()).optional(),allowlistOptions:o(y).optional(),scopeOptions:o(b).optional(),directoryScopeOptions:o(x).optional(),persistentDecisionsAllowed:s().optional()}),Ot=i({requestId:r(),entries:o(H)}),kt=n([`approved`,`denied`,`timed_out`]),X=i({id:r().optional(),name:r(),input:l(r(),u()),result:r().optional(),isError:s().optional(),imageData:r().optional(),imageDataList:o(r()).optional(),startedAt:c().optional(),previewStartedAt:c().optional(),completedAt:c().optional(),confirmationDecision:kt.optional(),confirmationLabel:r().optional(),riskLevel:r().optional(),riskReason:r().optional(),matchedTrustRuleId:r().optional(),autoApproved:s().optional(),approvalMode:r().optional(),approvalReason:r().optional(),riskThreshold:r().optional(),riskScopeOptions:o(wt).optional(),riskAllowlistOptions:o(Tt).optional(),riskDirectoryScopeOptions:o(Et).optional(),activityMetadata:G.optional(),scopeOptions:o(b).optional(),pendingConfirmation:Dt.optional(),pendingQuestion:Ot.optional()}),At=i({id:r(),label:r(),style:r().optional(),data:l(r(),u()).optional()}),Z=i({surfaceId:r(),surfaceType:r(),title:r().optional(),data:l(r(),u()),actions:o(At).optional(),display:r().optional(),persistent:s().optional(),completed:s().optional(),completionSummary:r().optional(),toolCallId:r().optional()}),jt=i({subagentId:r(),label:r(),status:r(),error:r().optional(),conversationId:r().optional(),objective:r().optional()}),Mt=i({acpSessionId:r(),agent:r().optional()}),Nt=i({id:r(),toolName:r(),conversationId:r(),command:r(),startedAt:c(),status:n([`completed`,`failed`,`cancelled`]),exitCode:c().nullable(),output:r(),completedAt:c()}),Pt=i({appUrl:r().optional(),webUrl:r().optional()}),Ft=i({emoji:r(),op:n([`added`,`removed`]),actorDisplayName:r().optional(),targetChannelTs:r()}),It=i({channelId:r(),channelName:r().optional(),channelTs:r(),threadTs:r().optional(),sender:i({displayName:r().optional(),externalUserId:r().optional()}).optional(),messageLink:Pt.optional(),threadLink:Pt.optional(),eventKind:n([`message`,`reaction`]).optional(),reaction:Ft.optional()}),Lt=i({type:t(`text`),text:r()}),Rt=i({type:t(`thinking`),thinking:r(),startedAt:c().optional(),completedAt:c().optional()}),zt=i({type:t(`tool_use`),toolCall:X}),Bt=i({type:t(`surface`),surface:Z}),Vt=i({type:t(`attachment`),attachment:Y}),Ht=d(`type`,[Lt,Rt,zt,Bt,Vt]),Ut=i({id:r(),mergedMessageIds:o(r()).optional(),clientMessageId:r().optional(),role:n([`user`,`assistant`]),content:r().meta({deprecated:!0,description:`Deprecated: superseded by contentBlocks. Flat plain-text body (joined text segments).`}).optional(),timestamp:r(),attachments:o(Y),toolCalls:o(X).meta({deprecated:!0,description:`Deprecated: superseded by contentBlocks (the tool_use variant). Flat list of tool calls.`}).optional(),surfaces:o(Z).meta({deprecated:!0,description:`Deprecated: superseded by contentBlocks (the surface variant). Flat list of surfaces.`}).optional(),textSegments:o(r()).meta({deprecated:!0,description:`Deprecated: superseded by contentBlocks. Text segments split by tool-call boundaries.`}).optional(),thinkingSegments:o(r()).meta({deprecated:!0,description:`Deprecated: superseded by contentBlocks. Reasoning text extracted from thinking blocks.`}).optional(),contentOrder:o(r()).meta({deprecated:!0,description:`Deprecated: superseded by contentBlocks. Positional "<type>:<index>" content ordering (e.g. "text:0", "thinking:1").`}).optional(),contentBlocks:o(Ht).optional(),subagentNotification:jt.optional(),acpNotification:Mt.optional(),backgroundToolNotification:s().optional(),backgroundToolCompletion:Nt.optional(),slackMessage:It.optional(),queueStatus:n([`queued`,`processing`]).optional(),queuePosition:c().optional()}),Wt=i({status:L}),Gt=t(`notification`),Kt=n([`new`,`seen`,`acted_on`,`dismissed`]),qt=n([`low`,`medium`,`high`,`critical`]),Jt=n([`security`,`scheduling`,`background`,`email`,`system`]),Yt=n([`heartbeat`,`memory_consolidation`,`schedule`,`auto_analysis`,`user`,`other`]),Xt=i({id:r(),label:r(),prompt:r()}),Zt=n([`emailDraft`,`documentPreview`,`permissionChat`,`paymentAuth`,`toolPermission`,`updatesList`]),Qt=i({kind:Zt}),$t=i({id:r(),type:Gt,priority:c().int().min(0).max(100),title:r().optional(),summary:r(),timestamp:r(),status:Kt.default(`new`),expiresAt:r().optional(),actions:o(Xt).optional(),urgency:qt.optional(),conversationId:r().optional(),detailPanel:Qt.optional(),category:Jt.optional(),noteworthy:s().optional(),fromAssistant:s().optional(),metadata:l(r(),u()).optional(),sourceType:Yt.optional(),sourceKey:r().optional(),sourceLabel:r().optional(),createdAt:r()}),en=n([`deterministic`,`assistant`]),tn=i({id:r(),label:r(),icon:r().optional(),prompt:r(),source:en}),nn=i({greeting:r(),timeAwayLabel:r(),newCount:c().int().min(0)}),rn=i({items:o($t),updatedAt:r(),contextBanner:nn,suggestedPrompts:o(tn)}),an=i({id:r(),category:n([`voice`,`world`,`priorities`]),text:r(),confidence:n([`strong`,`uncertain`]),source:n([`onboarding`,`inferred`])}),on=i({id:r(),name:r(),description:r(),tier:n([`unlocked`,`next-up`,`earned`]),gate:r(),unlockHint:r().optional(),ctaLabel:r().optional()}),sn=i({version:t(1),assistantId:r(),tier:te([t(1),t(2),t(3),t(4)]),progressPercent:c(),facts:o(an),capabilities:o(on),conversationCount:c(),hatchedDate:r(),assistantName:r(),userName:r().optional(),updatedAt:r()}),cn=i({key:r(),label:r(),ms:c()}),ln=i({phases:o(cn),ttftMs:c().nullish(),totalToFirstTokenMs:c().nullish(),providerDurationMs:c().nullish(),firstTokenKind:n([`thinking`,`text`]).nullish()}),un=i({provider:r().nullish(),model:r().nullish(),status:r().nullish(),inputTokens:c().nullish(),outputTokens:c().nullish(),cacheCreationInputTokens:c().nullish(),cacheReadInputTokens:c().nullish(),stopReason:r().nullish(),requestMessageCount:c().nullish(),requestToolCount:c().nullish(),responseMessageCount:c().nullish(),responseToolCallCount:c().nullish(),responsePreview:r().nullish(),toolCallNames:o(r()).nullish(),estimatedCostUsd:c().nullish(),durationMs:c().nullish()}),Q=i({kind:r(),label:r().nullish(),role:r().nullish(),text:r().nullish(),toolName:r().nullish(),data:u().optional(),language:r().nullish()}),dn=i({name:r().nullish(),message:r().nullish(),code:r().nullish(),provider:r().nullish(),statusCode:c().nullish(),retryAfterMs:c().nullish(),apiErrorCode:r().nullish(),apiErrorType:r().nullish(),apiErrorParam:r().nullish(),requestId:r().nullish()}),fn=i({id:r(),createdAt:c(),requestPayload:a(),responsePayload:a(),provider:r().nullish(),summary:un.nullish(),requestSections:o(Q).nullish(),responseSections:o(Q).nullish(),agentLoopExitReason:r().nullish(),callSite:r().nullish(),error:dn.nullish(),latency:ln.nullish()}),pn=i({nodeId:r(),score:c(),semanticSimilarity:c(),recencyBoost:c(),type:r().optional()}),mn=i({reason:r(),semanticUnavailable:s(),fallbackSources:o(r())}),hn=i({enabled:s(),degraded:s(),provider:r().nullable(),model:r().nullable(),degradation:mn.nullable(),semanticHits:c().nullish(),mergedCount:c().nullish(),selectedCount:c().nullish(),tier1Count:c().nullish(),tier2Count:c().nullish(),hybridSearchLatencyMs:c().nullish(),sparseVectorUsed:s().nullish(),injectedTokens:c().nullish(),latencyMs:c().nullish(),topCandidates:o(pn),injectedText:r().nullable(),reason:r().nullable(),queryContext:r().nullable()}),gn=i({slug:r(),finalActivation:c(),ownActivation:c(),priorActivation:c(),simUser:c(),simAssistant:c(),simNow:c(),simUserRerankBoost:c().optional(),simAssistantRerankBoost:c().optional(),inRerankPool:s().optional(),spreadContribution:c(),source:r(),status:r()}),_n=i({d:c(),c_user:c(),c_assistant:c(),c_now:c(),k:c(),hops:c(),top_k:c(),epsilon:c()}),vn=i({turn:c(),mode:r(),concepts:o(gn),config:_n}),yn=i({slug:r(),source:r(),pinned:s(),sectionOrdinal:c().nullable().optional(),sectionHeading:r().nullable().optional()}),bn=i({turn:c(),live:s(),selections:o(yn),injectedText:r()}),xn=i({messageId:r().nullish(),conversationKey:r().nullish(),conversationId:r().nullish(),conversationKind:r(),conversationTotalEstimatedCostUsd:c().nullish(),logs:o(fn),memoryRecall:hn.nullable(),memoryV2Activation:vn.nullable(),memoryV3Selection:bn.nullish()}),Sn=i({type:r(),content:r(),toolName:r().optional(),isError:s().optional(),messageId:r().optional(),toolUseId:r().optional(),input:l(r(),u()).optional()}),Cn=i({subagentId:r(),objective:r().optional(),status:U.optional(),usage:W.optional(),events:o(Sn)}),wn=i({seq:c().int(),kind:n([`agent`,`workflow`]),label:r().optional(),phase:r().optional(),promptSummary:r().optional(),status:r(),resultSummary:r().optional(),inputTokens:c().optional(),outputTokens:c().optional(),createdAt:c().nullable()}),Tn=i({runId:r(),status:J.optional(),agentsSpawned:c().optional(),inputTokens:c().optional(),outputTokens:c().optional(),phase:r().optional(),leaves:o(wn)}),En=i({title:r().optional(),subtitle:r().optional(),body:r().optional(),metadata:o(i({label:f(),value:f()})).optional(),template:r().optional(),templateData:l(r(),u()).optional()}),Dn=ie(e=>{let t=(typeof e==`string`?e.split(`,`):Array.isArray(e)?e:[]).map(e=>typeof e==`string`||typeof e==`number`?String(e).trim():``).filter(e=>e.length>0);return t.length>0?t:void 0},o(r()).optional()),On=i({prompt:f().optional(),acceptedTypes:Dn,maxFiles:oe().int().positive().optional().catch(void 0),maxSizeBytes:oe().positive().optional().catch(void 0)}),kn=e({ACPOptionKindSchema:()=>C,ACPOptionSchema:()=>w,AcpSessionCompletedEventSchema:()=>ce,AcpSessionErrorEventSchema:()=>le,AcpSessionSpawnedEventSchema:()=>ue,AcpSessionUpdateEventSchema:()=>fe,AcpSessionUpdateTypeSchema:()=>de,AcpSessionUsageEventSchema:()=>pe,AcpStopReasonSchema:()=>se,AllowlistOptionSchema:()=>y,AssistantActivityAnchorSchema:()=>he,AssistantActivityPhaseSchema:()=>me,AssistantActivityReasonSchema:()=>ge,AssistantActivityStateEventSchema:()=>_e,AssistantEventEnvelopeSchema:()=>An,AssistantEventSchema:()=>$,AssistantOutboundAttachmentSchema:()=>B,AssistantTextDeltaEventSchema:()=>ve,AssistantThinkingDeltaEventSchema:()=>ye,AssistantTurnStartEventSchema:()=>p,AvatarUpdatedEventSchema:()=>m,BackgroundToolCompletedEventSchema:()=>h,BackgroundToolStartedEventSchema:()=>g,CALL_SITE_COMPACTION_AGENT:()=>bt,CALL_SITE_SYNTHETIC_AGENT_ERROR_MESSAGE:()=>yt,CapabilitySchema:()=>on,CardSurfaceDataSchema:()=>En,CompactionCircuitClosedEventSchema:()=>_,CompactionCircuitOpenEventSchema:()=>v,ConfirmationDiffSchema:()=>S,ConfirmationExecutionTargetSchema:()=>T,ConfirmationRequestEventSchema:()=>E,ContactRequestEventSchema:()=>D,ContextBannerSchema:()=>nn,ConversationAttachmentBlockSchema:()=>Vt,ConversationContentBlockSchema:()=>Ht,ConversationErrorCodeSchema:()=>O,ConversationErrorEventSchema:()=>k,ConversationListInvalidatedEventSchema:()=>j,ConversationListInvalidatedReasonSchema:()=>A,ConversationMessageAttachmentSchema:()=>Y,ConversationMessageSchema:()=>Ut,ConversationMessageSurfaceSchema:()=>Z,ConversationMessageToolCallSchema:()=>X,ConversationNoticeEventSchema:()=>N,ConversationNoticeSourceSchema:()=>M,ConversationSlackMessageSchema:()=>It,ConversationSubagentNotificationSchema:()=>jt,ConversationSurfaceBlockSchema:()=>Bt,ConversationTextBlockSchema:()=>Lt,ConversationThinkingBlockSchema:()=>Rt,ConversationTitleUpdatedEventSchema:()=>P,ConversationToolUseBlockSchema:()=>zt,DEFAULT_TOOL_EXECUTION_TIMEOUT_SEC:()=>120,DictationContextSchema:()=>St,DictationRequestSchema:()=>Ct,DirectoryScopeOptionSchema:()=>x,DiskPressureBlockedCapabilitySchema:()=>I,DiskPressureStateSchema:()=>F,DiskPressureStatusChangedEventSchema:()=>R,DiskPressureStatusResponseSchema:()=>Wt,DiskPressureStatusSchema:()=>L,DocumentCommentCreatedEventSchema:()=>z,DocumentCommentDeletedEventSchema:()=>xe,DocumentCommentReopenedEventSchema:()=>Se,DocumentCommentResolvedEventSchema:()=>Ce,DocumentEditorUpdateEventSchema:()=>we,ErrorEventSchema:()=>Te,FactSchema:()=>an,FeedActionSchema:()=>Xt,FeedItemCategorySchema:()=>Jt,FeedItemDetailPanelKindSchema:()=>Zt,FeedItemDetailPanelSchema:()=>Qt,FeedItemSchema:()=>$t,FeedItemSourceTypeSchema:()=>Yt,FeedItemStatusSchema:()=>Kt,FeedItemTypeSchema:()=>Gt,FeedItemUrgencySchema:()=>qt,FileUploadSurfaceDataSchema:()=>On,GenerationCancelledEventSchema:()=>Ee,GenerationHandoffEventSchema:()=>De,HomeFeedResponseSchema:()=>rn,HomeFeedUpdatedEventSchema:()=>Oe,IdentityChangedEventSchema:()=>ke,InteractionResolutionStateSchema:()=>Ae,InteractionResolvedEventSchema:()=>je,LLMCallErrorSchema:()=>dn,LLMCallSummarySchema:()=>un,LLMContextSectionSchema:()=>Q,LLMRequestLogEntrySchema:()=>fn,LatencyBreakdownSchema:()=>ln,LatencyPhaseSchema:()=>cn,LlmContextResponseSchema:()=>xn,MemoryCandidateSchema:()=>pn,MemoryDegradationSchema:()=>mn,MemoryRecallLogSchema:()=>hn,MemoryV2ActivationLogSchema:()=>vn,MemoryV2ConceptRowSchema:()=>gn,MemoryV2ConfigSnapshotSchema:()=>_n,MemoryV3SelectionLogSchema:()=>bn,MemoryV3SelectionRowSchema:()=>yn,MessageCompleteEventSchema:()=>Me,MessageDequeuedEventSchema:()=>Ne,MessageQueuedDeletedEventSchema:()=>Fe,MessageQueuedEventSchema:()=>Pe,MessageRequestCompleteEventSchema:()=>Ie,NavigateSettingsEventSchema:()=>Le,NotificationIntentEventSchema:()=>Re,OpenUrlEventSchema:()=>ze,PendingToolConfirmationSchema:()=>Dt,QuestionEntrySchema:()=>H,QuestionOptionSchema:()=>V,QuestionRequestEventSchema:()=>Be,RelationshipStateSchema:()=>sn,RelationshipStateUpdatedEventSchema:()=>Ve,RiskScopeOptionSchema:()=>Xe,SSE_REPLAY_RING_AGE_LIMIT_MS:()=>xt,SSE_REPLAY_RING_COUNT_LIMIT:()=>200,ScopeOptionSchema:()=>b,SecretRequestEventSchema:()=>He,SubagentDetailEventSchema:()=>Sn,SubagentDetailResponseSchema:()=>Cn,SubagentEventEventSchema:()=>We,SubagentInnerEventSchema:()=>Ue,SubagentSpawnedEventSchema:()=>Ge,SubagentStatusChangedEventSchema:()=>Ke,SubagentStatusSchema:()=>U,SubagentUsageStatsSchema:()=>W,SuggestedPromptSchema:()=>tn,SuggestedPromptSourceSchema:()=>en,SurfaceActionSchema:()=>lt,SyncChangedEventSchema:()=>qe,ToolActivityMetadataSchema:()=>G,ToolOutputChunkEventSchema:()=>Ye,ToolOutputChunkSubTypeSchema:()=>Je,ToolResultEventSchema:()=>nt,ToolUsePreviewStartEventSchema:()=>rt,ToolUseStartEventSchema:()=>it,TraceEventKindSchema:()=>at,TraceEventSchema:()=>st,TraceEventStatusSchema:()=>ot,UISurfaceCompleteEventSchema:()=>K,UISurfaceDismissEventSchema:()=>ct,UISurfaceShowEventSchema:()=>ut,UISurfaceUpdateEventSchema:()=>dt,UsageProgressEventSchema:()=>q,UsageUpdateEventSchema:()=>ft,UserMessageEchoEventSchema:()=>pt,WebFetchMetadataSchema:()=>tt,WebSearchMetadataSchema:()=>et,WebSearchProviderIdSchema:()=>Ze,WebSearchResultItemSchema:()=>$e,WorkflowCompletedEventSchema:()=>mt,WorkflowJournalResponseSchema:()=>Tn,WorkflowLeafFinishedEventSchema:()=>ht,WorkflowLeafSchema:()=>wn,WorkflowLeafStartedEventSchema:()=>gt,WorkflowProgressEventSchema:()=>_t,WorkflowRunStatusSchema:()=>J,WorkflowStartedEventSchema:()=>vt}),$=d(`type`,[ce,le,ue,fe,pe,_e,ve,ye,p,m,h,g,_,v,E,D,k,j,N,P,R,z,xe,Se,Ce,we,Te,Ee,De,Oe,ke,je,Me,Ne,Pe,Fe,Ie,Le,Re,ze,Be,Ve,He,We,Ge,Ke,qe,Ye,nt,rt,it,st,K,ct,ut,dt,q,ft,pt,mt,ht,gt,_t,vt]),An=i({id:r(),conversationId:r().optional(),seq:c().int().optional(),emittedAt:r(),message:$});export{On as a,Wt as c,yt as d,q as f,En as i,xt as l,$ as n,Tn as o,kn as r,Cn as s,An as t,bt as u};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/esm-CJ8uY1wn.js","assets/preload-helper-BewR0kVT.js","assets/dist-Ztj3rqLK.js","assets/esm-DTj81fJQ.js"])))=>i.map(i=>d[i]);
2
- import{a as e,c as t,i as n,t as r}from"./local-settings-lVNyIOJ_.js";import{a as i,t as a}from"./device-settings-BBwtGKJb.js";import{o,t as s}from"./capture-error-BG-GkiMq.js";import{t as c}from"./preload-helper-BewR0kVT.js";import{t as l}from"./useQuery-B45lW1Kk.js";import{n as u,t as d}from"./create-selectors-BE0_e_Ed.js";import{$ as f,C as ee,Q as te,S as ne,T as re,Z as ie,_ as ae,at as p,c as m,d as oe,et as se,f as h,h as g,i as ce,it as _,m as le,n as ue,nt as de,o as fe,r as pe,rt as me,s as he,tt as ge,v as _e,x as ve}from"./local-mode-CvrNMtPF.js";import{t as v}from"./is-electron-C_ZTVhv8.js";import{n as y,t as ye}from"./resolved-assistants-store-Cp4J43BK.js";import{n as be,r as b,t as xe}from"./api-errors-DPruG7q9.js";import{t as x}from"./client.gen-BHupOCJH.js";import{M as Se,N as Ce,St as we}from"./sdk.gen-DmWuY0SL.js";import{a as Te,c as S,r as Ee}from"./api-CwV4YyjT.js";import{n as De}from"./event-bus-B3E3w-q2.js";import{C,T as Oe,a as ke,b as Ae,d as je,h as Me,i as Ne,l as Pe,t as Fe,u as Ie,x as Le,y as Re}from"./native-biometric-CBWaVg3Q.js";import{o as ze}from"./remote-gateway-session-znfqX8Fi.js";import{t as Be}from"./dist-Ztj3rqLK.js";import{r as Ve}from"./typed-storage-DjORmu8t.js";var w=d(u(()=>({assistantState:{kind:`loading`},operationalStatusAssistantId:null,expectingFirstMessage:!1}))),He=new Set;function Ue(e){return He.add(e),()=>{He.delete(e)}}function We(){for(let e of He)try{e()}catch{}}var Ge=new Set([502,503,504]),Ke=`Connection interrupted. Reconnecting…`;function qe(e){return e.code===`proxy_network_error`?!0:(typeof e.detail==`string`?e.detail:``).includes(`net::ERR_`)}function Je(e){if(e.ok)switch(e.data.status){case`active`:return e.data.is_local?{kind:`self_hosted`}:{kind:`active`};case`initializing`:return{kind:`initializing`};case`to_be_deleted`:return{kind:`cleaning_up`};default:return{kind:`error`,message:`Unexpected assistant status: ${e.data.status}`}}return e.status===404?{kind:`auto_hatch`}:qe(e.error)?{kind:`error`,transient:!0,message:Ke}:{kind:`error`,message:b(e.error,void 0,`Failed to check assistant status.`)}}function Ye(e){return e===void 0||e>=500}var Xe=`platform_hosted_disabled`,Ze=`We are at capacity for Vellum Managed Assistants, more will be available soon!`;function Qe(e,t){return e===503?t?.code===Xe:!1}var $e=2e3,et=3e4;function tt(e){return Math.min($e*2**e,et)}var nt=3e5;function rt(){return{kind:`error`,message:`Your assistant is taking longer than expected to start. Please try again, or check the community for help.`}}var it=[`assistant`,`current`],at=3e3,ot=new Set([`initializing`,`cleaning_up`]);function st(e){if(!e)return!1;let t=Je(e);return ot.has(t.kind)?at:!1}function ct(e){return e?[...it,e]:it}function lt(e){let t=e.selectedPlatformAssistantId??null;return l({queryKey:ct(t),queryFn:()=>Ee(t??void 0),enabled:e.enabled,retry:!1,refetchInterval:e=>st(e.state.data),refetchOnWindowFocus:!1})}var ut=new Set([`healthy`,`ok`]);function dt(e){if(!e.ok)return`unreachable`;let t=e.data?.status;return t!==void 0&&!ut.has(t)?`unhealthy`:`healthy`}function ft(){let e=w.use.assistantState();return e.kind===`self_hosted`||e.kind===`active`&&e.isLocal?e.health??null:null}var T=e=>e===`authenticated`,pt=e=>e!==`initializing`,E=e=>e===`present`,mt=(e,t)=>e===`present`&&!t,ht=new Set([401,403,410]),gt=e=>!e.ok&&e.status!==void 0&&ht.has(e.status),_t=4e3,vt=6e4,yt=5e3;function bt(){let e=/\/assistant(?:\/|$)/.exec(window.location.pathname),t=e&&e.index>0?window.location.pathname.slice(0,e.index).replace(/\/+$/,``):``;return`${window.location.origin}${t}`}var D=new class{state={kind:`loading`};generation=0;initializingTimeout=null;ready=!1;inputs={sessionStatus:`initializing`,hasPlatformSession:!1,queryClient:null,selectedPlatformAssistantId:null};probeTimer=null;healthHeartbeatTimer=null;healthHeartbeatId=null;healthHeartbeatToken=0;reachabilityProbeInFlightIds=new Set;probeLoopAssistantId=null;errorRetryTimer=null;errorRetryAttempt=0;constructor(){Ue(()=>this.onUnreachable()),De(`app.online`,()=>this.onNetworkOnline()),y.subscribe((e,t)=>{e.selectedAssistantId!==t.selectedAssistantId&&(!p()||this.state.kind===`loading`||this.applyGatewayAuthShortCircuit())})}setInputs(e){this.inputs=e,this.ready=!0}resetForLogout(){y.getState().activeAssistantId!==null&&y.getState().setActiveAssistantId(null),this.setOperationalStatusAssistantId(null),this.cancelProbeTimer(),this.probeLoopAssistantId=null,this.reachabilityProbeInFlightIds.clear(),this.state.kind!==`loading`&&this.transition({kind:`loading`}),this.clearExpectingFirstMessage()}async respondToInputs(){if(this.ready){if(p()){this.applyGatewayAuthShortCircuit();return}if(!T(this.inputs.sessionStatus)){this.resetForLogout();return}this.inputs.hasPlatformSession&&f(null),this.inputs.isOrgReady&&await this.checkAssistant()}}async applyServerResult(e){this.ready&&(this.state.kind!==`initializing`&&this.state.kind!==`cleaning_up`||await this.applyServerStateUpdate(e))}async checkAssistant(e){if(!this.ready)return;if(p()){this.applyGatewayAuthShortCircuit();return}let t=this.generation;try{let n=e??this.inputs.selectedPlatformAssistantId??null,r=await this.inputs.queryClient.fetchQuery({queryKey:ct(n),queryFn:()=>Ee(n??void 0),staleTime:0});if(t!==this.generation||n&&!r.ok&&r.status===404&&(y.getState().setSelectedAssistant(null),r=await this.inputs.queryClient.fetchQuery({queryKey:it,queryFn:()=>Ee(),staleTime:0}),t!==this.generation))return;await this.applyServerStateUpdate(r)}catch(e){if(console.error(`Error checking assistant status:`,e),s(e,{context:`check_assistant`}),t!==this.generation||this.degradeOnTransportFailure())return;this.transition({kind:`error`,transient:!0,message:Ke})}}degradeOnTransportFailure(){return this.state.kind===`active`?(this.triggerReachabilityProbe(),!0):this.state.kind===`initializing`||this.state.kind===`cleaning_up`}retryAssistant(){this.ready&&this.checkAssistant()}markExpectingFirstMessage(){w.getState().expectingFirstMessage||w.setState({expectingFirstMessage:!0})}clearExpectingFirstMessage(){w.getState().expectingFirstMessage&&w.setState({expectingFirstMessage:!1})}transition(e){let t=this.state.kind;this.state=e,w.setState({assistantState:e}),e.kind===`initializing`?t!==`initializing`&&this.armInitializingWatchdog():this.initializingTimeout&&=(clearTimeout(this.initializingTimeout),null),e.kind!==`initializing`&&e.kind!==`active`&&this.clearExpectingFirstMessage(),!(e.kind===`self_hosted`||e.kind===`active`&&e.isLocal)&&this.healthHeartbeatId!==null&&this.cancelHealthHeartbeat(),e.kind===`error`&&e.transient?this.armErrorRetry():this.clearErrorRetry(e.kind!==`error`)}clearErrorRetry(e){this.errorRetryTimer&&=(clearTimeout(this.errorRetryTimer),null),e&&(this.errorRetryAttempt=0)}armErrorRetry(){this.errorRetryTimer&&clearTimeout(this.errorRetryTimer);let e=tt(this.errorRetryAttempt);this.errorRetryAttempt+=1,this.errorRetryTimer=setTimeout(()=>{this.errorRetryTimer=null,this.checkAssistant()},e)}onNetworkOnline(){if(this.ready){if(this.state.kind===`error`&&this.state.transient){this.clearErrorRetry(!0),this.checkAssistant();return}this.state.kind===`active`&&this.state.reachable===!1&&this.checkAssistant()}}armInitializingWatchdog(){this.initializingTimeout&&clearTimeout(this.initializingTimeout),this.initializingTimeout=setTimeout(()=>{this.generation++,o(`Assistant stuck in initializing state`,{level:`warning`,extra:{timeoutMs:nt}}),this.transition(rt())},nt)}projectActive(e){let t=e.data.maintenance_mode,n=e.data.is_local??!1;f(null),this.setOperationalStatusAssistantId(e.data.id);let r=y.getState();r.upsertFromApi(e.data),r.setActiveAssistantId(e.data.id),this.transition({kind:`active`,isLocal:n,maintenanceMode:{enabled:t?.enabled}}),n?this.startHealthHeartbeat(e.data.id):this.probeReachability(e.data.id)}projectSelfHosted(e){this.setOperationalStatusAssistantId(null),f({url:e.data.ingress_url,token:e.data.platform_actor_token});let t=y.getState();t.upsertFromApi(e.data),t.setActiveAssistantId(e.data.id),this.transition({kind:`self_hosted`}),this.startHealthHeartbeat(e.data.id)}applyGatewayAuthShortCircuit(){let e=window.location.origin,t=`self`,n=ce();if(g())e=bt();else if(n){let r=m();e=`${window.location.origin}${n}`,t=r?.assistantId??t}f({url:e,token:de()}),this.setOperationalStatusAssistantId(null),y.getState().setActiveAssistantId(t),this.transition({kind:`active`,isLocal:!0}),this.startHealthHeartbeat(t)}async applyServerStateUpdate(e){let t=this.generation,n=Je(e);if(!(n.kind===`error`&&n.transient&&this.degradeOnTransportFailure())&&(e.ok?this.setOperationalStatusAssistantId(e.data.id):this.setOperationalStatusAssistantId(null),n.kind!==`auto_hatch`)){if(n.kind===`active`&&e.ok){this.projectActive(e);return}if(n.kind===`self_hosted`&&e.ok){this.projectSelfHosted(e);return}t===this.generation&&n.kind!==`active`&&this.transition(n)}}async probeReachability(e){if(!this.reachabilityProbeInFlightIds.has(e)){this.reachabilityProbeInFlightIds.add(e);try{let t=this.generation,n=this.state.kind===`self_hosted`||this.state.kind===`active`&&this.state.isLocal,r=n?m()?.assistantId??e:e,i=!g()&&n?await re(r).catch(()=>null):null,a=i?.ok&&i.state===`upgrading`?`upgrading`:`unreachable`;if(a!==`upgrading`)try{a=dt(await Te(e))}catch{a=`unreachable`}if(a===`unreachable`&&!i&&!g()&&(i=await re(r).catch(()=>null)),a===`unreachable`&&i?.ok)switch(i.state){case`healthy`:a=`healthy`;break;case`sleeping`:case`starting`:case`upgrading`:case`crashed`:a=i.state;break;case`unknown`:break}if(t!==this.generation||y.getState().activeAssistantId!==e)return;if(this.state.kind===`self_hosted`){this.state.health!==a&&this.transition({...this.state,health:a});return}if(this.state.kind!==`active`)return;let o=a===`healthy`||a===`unhealthy`;if(this.state.reachable===o&&this.state.health===a)return;this.transition({...this.state,reachable:o,health:a})}finally{this.reachabilityProbeInFlightIds.delete(e)}}}cancelProbeTimer(){this.probeTimer&&=(clearTimeout(this.probeTimer),null)}startProbeLoop(e){if(this.probeLoopAssistantId===e)return;this.cancelProbeTimer(),this.probeLoopAssistantId=e;let t=Date.now(),n=()=>{this.probeLoopAssistantId=null},r=async()=>{if(this.state.kind!==`active`||this.state.reachable===!0){n();return}if(Date.now()-t>vt){n();return}await this.probeReachability(e);let i=this.state;if(i.kind!==`active`||i.reachable===!0){n();return}if(Date.now()-t>vt){n();return}this.probeTimer=setTimeout(()=>void r(),_t)};this.probeTimer=setTimeout(()=>void r(),_t)}startHealthHeartbeat(e){if(this.healthHeartbeatId===e)return;this.cancelHealthHeartbeat(),this.healthHeartbeatId=e;let t=this.healthHeartbeatToken,n=async()=>{t===this.healthHeartbeatToken&&(await this.probeReachability(e),t===this.healthHeartbeatToken&&(this.healthHeartbeatTimer=setTimeout(()=>void n(),yt)))};n()}cancelHealthHeartbeat(){this.healthHeartbeatToken++,this.healthHeartbeatId=null,this.healthHeartbeatTimer&&=(clearTimeout(this.healthHeartbeatTimer),null)}onUnreachable(){this.triggerReachabilityProbe()}triggerReachabilityProbe(){if(this.state.kind!==`active`)return;let e=y.getState().activeAssistantId;if(e){if(this.transition({...this.state,reachable:!1}),this.healthHeartbeatId===e){this.probeReachability(e);return}this.startProbeLoop(e)}}setLocalAssistantUpgradeInProgress(e,t){if(y.getState().activeAssistantId===e){if(!t){this.probeReachability(e);return}if(this.state.kind===`self_hosted`){this.transition({...this.state,health:`upgrading`});return}this.state.kind===`active`&&this.state.isLocal&&this.transition({...this.state,reachable:!1,health:`upgrading`})}}__resetForTesting(){this.initializingTimeout&&=(clearTimeout(this.initializingTimeout),null),this.cancelProbeTimer(),this.cancelHealthHeartbeat(),this.probeLoopAssistantId=null,this.reachabilityProbeInFlightIds.clear(),this.clearErrorRetry(!0),this.state={kind:`loading`},this.generation=0,this.ready=!1,w.setState({expectingFirstMessage:!1,operationalStatusAssistantId:null}),this.inputs={sessionStatus:`initializing`,hasPlatformSession:!1,queryClient:null},w.setState({assistantState:this.state}),y.setState({activeAssistantId:null})}setOperationalStatusAssistantId(e){w.getState().operationalStatusAssistantId!==e&&w.setState({operationalStatusAssistantId:e})}};function xt(e){let{assistants:t,selectedAssistantId:n,assistantsHydrated:r}=y.getState(),i=ye(t,e),a=e=>i.some(t=>t.id===e);if(n!==null){let e=t.some(e=>e.id===n);if(a(n)||!e&&!r)return n}let o=ue()?.assistantId??null;return o!==null&&a(o)?o:i[0]?.id??null}async function O(e){y.getState().setSelectedAssistant(e),e!==null&&await ve(e)}var St=`vellum:auth:userSnapshot`;function Ct(e){if(e)try{localStorage.setItem(St,JSON.stringify(e))}catch{}}function wt(){try{let e=localStorage.getItem(St);if(!e)return null;let t=JSON.parse(e);return!t||typeof t!=`object`?null:{kind:`platform`,id:typeof t.id==`string`?t.id:null,username:typeof t.username==`string`?t.username:null,email:typeof t.email==`string`?t.email:null,isStaff:t.isStaff===!0,firstName:typeof t.firstName==`string`?t.firstName:``,lastName:typeof t.lastName==`string`?t.lastName:``}}catch{return null}}function k(){try{localStorage.removeItem(St)}catch{}}var Tt=`vellum_active_organization_id`;function Et(){return globalThis.sessionStorage===void 0?null:globalThis.sessionStorage}function Dt(){let e=Et();if(!e)return null;try{return e.getItem(Tt)}catch{return null}}function Ot(e){let t=Et();if(t)try{t.setItem(Tt,e)}catch{}}function kt(){let e=Et();if(e)try{e.removeItem(Tt)}catch{}}function At(e,t){return e.length===0?null:t&&e.some(e=>e.id===t)?t:e[0].id}var A=d(u()((e,t)=>({organizations:[],currentOrganizationId:null,status:`idle`,error:null,fetchOrganizations:async()=>{e({status:`loading`,error:null});try{let n=(await we()).data?.results??[],r=At(n,t().currentOrganizationId??Dt());r&&Ot(r),e({organizations:n,currentOrganizationId:r,status:r?`ready`:`error`,error:r?null:`No organization available for this user.`})}catch(t){e({status:`error`,error:t instanceof Error&&t.message?t.message:`Failed to load organizations.`})}},setCurrentOrganizationId:n=>{let{organizations:r}=t();r.some(e=>e.id===n)&&(Ot(n),e({currentOrganizationId:n,status:`ready`}))},clearOrganization:()=>{kt(),e({organizations:[],currentOrganizationId:null,status:`idle`,error:null})}})));function j(){return A.getState().currentOrganizationId??Dt()}function jt(){A.getState().clearOrganization()}function Mt(){let e=0,t=A.subscribe(t=>{(t.status===`ready`||t.status===`error`)&&(e=Date.now())}),n=$.subscribe((e,t)=>{let n=E(e.platformSession),r=E(t.platformSession);n&&(!r||e.user?.id!==t.user?.id)&&A.getState().fetchOrganizations()}),r=()=>{if(!E($.getState().platformSession))return;let{status:t}=A.getState();(t===`ready`||t===`error`)&&Date.now()-e>1e4&&A.getState().fetchOrganizations()},i=De(`app.resume`,()=>{r()});return()=>{t(),n(),i()}}function Nt(e,t={}){let n={...e??{}},r=t.includeSelfHostedActorToken===!1?null:ie();if(r)return n.Authorization=`Bearer ${r}`,n;let i=t.organizationId??j();i&&(n[`Vellum-Organization-Id`]=i);let a=Le();return a&&(n[`X-Session-Token`]=a),n}async function Pt(e,t={}){let n=Nt(e,t);if(n.Authorization||v())return n;await Re();let r=Ae();return r&&(n[`X-CSRFToken`]=r),n}var Ft;function It(){return v()?(Ft===void 0&&(Ft=window.__VELLUM_CONFIG__?.deviceId??null),Ft):null}var Lt=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,Rt=`X-Vellum-Electron-Renderer-Origin`,zt=new Map;async function Bt(e,t={}){if(!h()||g()||le()||tn(e))return e;let n=Ht(e);if(!n)return e;let r=zt.get(n.assistantId);if(r)return r;let i=Ut(n,{allowGatewayRepair:t.allowGatewayRepair??!0});zt.set(n.assistantId,i);try{return await i}catch(e){throw zt.delete(n.assistantId),e}}function Vt(e,t={}){if(!h()||g()||le())return;let n=e;if(!n){let e=m();if(!e||!oe(e))return;n=e.assistantId}Bt(n,{allowGatewayRepair:t.allowGatewayRepair??!1}).catch(t.onError??(e=>{console.warn(`local assistant platform bootstrap failed`,e)}))}function Ht(e){let t=ue();if(t?.assistantId===e&&oe(t))return t;let n=m();return n?.assistantId===e&&oe(n)?n:null}async function Ut(e,t){let n=await Wt(e,t),r=await Gt(n,e.assistantId),i=r?.assistantId&&tn(r.assistantId)?r.assistantId:null;if(i&&r?.hasAssistantApiKey!==!1)return i;let a=await Kt(r?.organizationId??null,e);if(!a)throw Error(`Sign in to Vellum and select an organization to register this local assistant.`);let o=r?.clientInstallationId??It()??null;if(!o)throw Error(`Unable to identify this local assistant host for platform registration.`);let s=await qt(e,a,o),c=M(s.assistant?.id,s.assistant_id,s.id),l=i??c;if(!l||!tn(l))throw Error(`The platform registration response did not include an assistant UUID.`);let u=N(s.assistant_api_key);return!u&&r?.hasAssistantApiKey!==!0&&(u=await Jt(e,a,o)),await Xt(n,{assistantApiKey:u,platformAssistantId:l,platformBaseUrl:he(),organizationId:a,webhookSecret:N(s.webhook_secret)}),l}async function Wt(e,t){let n=te(),r=ie();if(t.allowGatewayRepair&&(!n||!r)&&(await _e(e),n=te(),r=ie()),!n||!r){let t=ce(e);t&&(n=`${window.location.origin}${t}`)}if(!n||!r)throw Error(`Unable to reach the local assistant for platform identity setup.`);return{gatewayUrl:n,actorToken:r}}async function Gt(e,t){let n=en(e.gatewayUrl,`/v1/assistants/${encodeURIComponent(t)}/platform/status`),r=await fetch(n,{headers:{Accept:`application/json`,Authorization:`Bearer ${e.actorToken}`},credentials:`omit`}).catch(()=>null);if(!r?.ok)return null;let i=await r.json().catch(()=>null);return{assistantId:M(i?.assistantId,i?.assistant_id),organizationId:M(i?.organizationId,i?.organization_id),hasAssistantApiKey:nn(i?.hasAssistantApiKey,i?.has_assistant_api_key),clientInstallationId:M(i?.clientInstallationId,i?.client_installation_id)}}async function Kt(e,t){return(e??j()??t.organizationId??null)||(await A.getState().fetchOrganizations().catch(()=>{}),j()??t.organizationId??null)}async function qt(e,t,n){return await Yt(`/v1/assistants/self-hosted-local/ensure-registration/`,e,t,n)}async function Jt(e,t,n){return N((await Yt(`/v1/assistants/self-hosted-local/reprovision-api-key/`,e,t,n)).provisioning?.assistant_api_key)}async function Yt(e,t,n,r){let i=new Headers({...await Pt({Accept:`application/json`,"Content-Type":`application/json`},{includeSelfHostedActorToken:!1,organizationId:n})}),a=Le();if(v()){if(!a)throw Error(`Sign in to Vellum to register this local assistant.`);i.set(Rt,`${window.location.protocol}//${window.location.host}`)}let o=await fetch(new URL(e,window.location.origin).toString(),{method:`POST`,headers:i,credentials:v()?`omit`:`same-origin`,body:JSON.stringify({client_installation_id:r,runtime_assistant_id:t.assistantId,client_platform:v()?`macos`:`web`})}).catch(e=>{throw Error(`Unable to reach the platform registration endpoint: ${$t(e)}`)});if(!o.ok){let e=await Qt(o);throw Error(`Unable to register the local assistant with the platform (HTTP ${o.status})${e?`: ${e}`:`.`}`)}try{return await o.json()}catch(e){throw Error(`Unable to read the platform registration response: ${$t(e)}`)}}async function Xt(e,t){let n=[[`vellum:assistant_api_key`,t.assistantApiKey],[`vellum:platform_assistant_id`,t.platformAssistantId],[`vellum:platform_base_url`,t.platformBaseUrl],[`vellum:platform_organization_id`,t.organizationId],[`vellum:webhook_secret`,t.webhookSecret]];await Promise.all(n.filter(e=>!!e[1]).map(([t,n])=>Zt(e,t,n)))}async function Zt(e,t,n){let r=await fetch(en(e.gatewayUrl,`/v1/secrets`),{method:`POST`,headers:{Accept:`application/json`,Authorization:`Bearer ${e.actorToken}`,"Content-Type":`application/json`},credentials:`omit`,body:JSON.stringify({type:`credential`,name:t,value:n})}).catch(e=>{throw Error(`Unable to reach the local assistant while storing ${t}: ${$t(e)}`)});if(!r.ok){let e=await Qt(r);throw Error(`Unable to store ${t} on the local assistant (HTTP ${r.status})${e?`: ${e}`:`.`}`)}return!0}async function Qt(e){if((e.headers.get(`content-type`)??``).includes(`application/json`)){let t=await e.json().catch(()=>null),n=t&&typeof t==`object`&&`detail`in t?N(t.detail):null,r=t&&typeof t==`object`&&`code`in t?N(t.code):null;return n&&r?`${n} (${r})`:n||r||JSON.stringify(t)}return(await e.text().catch(()=>``)).slice(0,300)}function $t(e){return e instanceof Error?e.message:String(e)}function en(e,t){let n=new URL(e);return n.pathname=`${n.pathname.replace(/\/$/,``)}${t}`,n.toString()}function tn(e){return Lt.test(e)}function M(...e){for(let t of e){let e=N(t);if(e)return e}return null}function N(e){return typeof e==`string`&&e.trim()?e.trim():null}function nn(...e){for(let t of e)if(typeof t==`boolean`)return t;return null}var rn=`.dev`;function an(e){let t=JSON.parse(e);return typeof t.token==`string`&&typeof t.bundleId==`string`&&typeof t.assistantId==`string`?{token:t.token,bundleId:t.bundleId,assistantId:t.assistantId}:null}var on=Ve({key:`vellum:push_registration`,scope:`user`,parse:an,serialize:JSON.stringify,fallback:null}),sn=!1,P=null,F=null,I=new Set;function cn(e){I.add(e),e.finally(()=>{I.delete(e)})}function ln(){return Ie()&&Be.getPlatform()===`ios`}function un(e){return e.endsWith(rn)?`development`:`production`}async function dn(e,t){try{let{App:n}=await c(async()=>{let{App:e}=await import(`./esm-CJ8uY1wn.js`);return{App:e}},__vite__mapDeps([0,1,2])),{id:r}=await n.getInfo(),i=await Ce({path:{assistant_id:t},body:{token:e,platform:`ios`,bundle_id:r,apns_environment:un(r)},throwOnError:!1});if(i.error){s(i.error,{context:`push_registration_upsert`,level:`warning`,bestEffort:!0});return}F={token:e,bundleId:r,assistantId:t},on.save(F)}catch(e){s(e,{context:`push_registration_upsert`,level:`warning`,bestEffort:!0})}}async function fn(){if(!sn){sn=!0;try{let{PushNotifications:e}=await c(async()=>{let{PushNotifications:e}=await import(`./esm-DTj81fJQ.js`);return{PushNotifications:e}},__vite__mapDeps([3,2]));await e.addListener(`registration`,e=>{let t=P;t&&cn(dn(e.value,t))}),await e.addListener(`registrationError`,e=>{s(e,{context:`push_registration_apns`,level:`warning`})})}catch(e){sn=!1,s(e,{context:`push_registration_listeners`,level:`warning`})}}}async function pn(e){if(ln()){P=e,F&&F.assistantId!==e&&cn(dn(F.token,e));try{let{PushNotifications:e}=await c(async()=>{let{PushNotifications:e}=await import(`./esm-DTj81fJQ.js`);return{PushNotifications:e}},__vite__mapDeps([3,2]));if(await fn(),(await e.requestPermissions()).receive!==`granted`)return;await e.register()}catch(e){s(e,{context:`push_registration_register`,level:`warning`})}}}async function mn(){for(P=null;I.size>0;)await Promise.allSettled([...I]);let e=F??on.load();if(F=null,on.remove(),!(!e||!ln()))try{let t=await Se({path:{assistant_id:e.assistantId,token:e.token},query:{bundle_id:e.bundleId},throwOnError:!1});t.error&&s(t.error,{context:`push_registration_delete`,level:`warning`,bestEffort:!0,extra:{assistantId:e.assistantId,bundleId:e.bundleId}})}catch(e){s(e,{context:`push_registration_delete`,level:`warning`,bestEffort:!0})}}function hn(e){return e}function gn(e,t,n){if(!e||typeof e!=`object`||Array.isArray(e))return{code:null,message:n};let r=hn(e),i=r[t];if(Array.isArray(i)&&i.length>0){let e=i[0];if(typeof e==`string`)return{code:null,message:e};if(e&&typeof e==`object`&&!Array.isArray(e)){let t=hn(e),r=t.code,i=t.string??t.message;return{code:typeof r==`string`?r:null,message:typeof i==`string`?i:n}}}return typeof r.detail==`string`?{code:null,message:r.detail}:{code:null,message:n}}var _n={too_short:`Must be at least 3 characters.`,too_long:`Must be at most 30 characters.`,invalid_chars:`Use only lowercase letters, digits, hyphens, and underscores.`,leading_underscore:`Cannot start with an underscore.`,trailing_underscore:`Cannot end with an underscore.`,leading_hyphen:`Cannot start with a hyphen.`,trailing_hyphen:`Cannot end with a hyphen.`,all_digits:`Cannot be all digits.`,reserved:`This handle is reserved.`,taken:`This handle is already taken.`};async function vn(){let{data:e,error:t,response:n}=await x.get({url:`/v1/user/me/`,throwOnError:!1});if(be(n,t,`Failed to load profile.`),!n.ok||!e)throw new xe(n.status,b(t,n,`Failed to load profile.`));return e}var yn=`Please choose a different handle.`;async function bn(e){let{data:t,error:n,response:r}=await x.patch({url:`/v1/user/me/`,body:e,throwOnError:!1});if(!r)return{kind:`error`,message:b(n,void 0,`Failed to save profile.`)??`Failed to save profile.`};if(r.ok&&t)return{kind:`ok`,data:t};if(r.status===409){let{message:e}=gn(n,`username`,_n.taken);return{kind:`taken`,message:e}}if(r.status===400){let{code:e,message:t}=gn(n,`username`,yn);return{kind:`invalid`,code:e,message:t}}return{kind:`error`,message:b(n,r,`Failed to save profile.`)}}async function xn(){let{data:e,error:t,response:n}=await x.get({url:`/v1/user/consent/`,throwOnError:!1});if(be(n,t,`Failed to load consent.`),!n.ok||!e)throw new xe(n.status,b(t,n,`Failed to load consent.`));return e}async function Sn(e){await x.put({url:`/v1/user/consent/`,body:e,throwOnError:!0})}async function Cn(e,t){let{data:n,error:r,response:i}=await x.get({url:`/v1/user/username-available/`,query:{username:e},signal:t,throwOnError:!1});if(be(i,r,`Failed to check handle availability.`),!i.ok||!n)throw new xe(i.status,i.status===429?`Too many checks — try again in a moment.`:b(r,i,`Failed to check handle availability.`));return n}function L(e){i(`diagnosticsReporting`,e)}function wn(e,t){let n=Tn(e);n!==null&&t(n);let{shareDiagnostics:r,diagnosticsVersionCurrent:i,hasServerRecord:a}=e;return L(a&&r===!0&&i),n}function Tn(e){let{shareDiagnostics:t,hasServerRecord:n}=e;return t===!1?!1:n&&t===!0?!0:null}var En=a(`shareAnalytics`),Dn=a(`shareDiagnostics`),On=u()(t=>({shareAnalytics:r(En,!0),shareDiagnostics:r(Dn,!0),tosAccepted:!1,privacyConsent:!1,analyticsConsentCurrent:!1,diagnosticsConsentCurrent:!1,setShareAnalytics:n=>{t({shareAnalytics:n}),e(En,n)},setShareDiagnostics:n=>{t({shareDiagnostics:n}),e(Dn,n)},setTosAccepted:e=>{t({tosAccepted:e})},setPrivacyConsent:e=>{t({privacyConsent:e})},setAnalyticsConsentCurrent:e=>{t({analyticsConsentCurrent:e})},setDiagnosticsConsentCurrent:e=>{t({diagnosticsConsentCurrent:e})}})),R=d(On),kn=new Map([[En,`shareAnalytics`],[Dn,`shareDiagnostics`]]),An={shareAnalytics:!0,shareDiagnostics:!0};for(let[e,n]of kn)t(e,()=>{let t=r(e,An[n]??!1);On.setState({[n]:t})});var z=`2026-06-08`,B=`2026-06-22`,V=`2026-06-18`,H=`2026-06-18`,jn=`2026-06-08`,Mn={tos:z,privacy:B,share_analytics:V,share_diagnostics:H};function U(e,t){return`device:consent:${e}:v${Mn[e]}:${t}`}function Nn(e){return`device:consent:ai:v${jn}:${e}`}function Pn(e){if(typeof window>`u`||!e)return{tos:!1,privacy:!1,analyticsCurrent:!1,diagnosticsCurrent:!1};try{let t=r(U(`share_analytics`,e),!1),i=r(U(`share_diagnostics`,e),!1),a=r(U(`tos`,e),!1),o=r(U(`privacy`,e),!1);if(r(Nn(e),!1)&&n(Nn(e)),a||o)return{tos:a,privacy:o,analyticsCurrent:t,diagnosticsCurrent:i};let s=r(`vellum:onboarding:tosAccepted`,!1),c=r(`vellum:onboarding:aiDataConsent`,!1);return s||c?(Fn(e,s,!1),{tos:s,privacy:!1,analyticsCurrent:t,diagnosticsCurrent:i}):{tos:!1,privacy:!1,analyticsCurrent:t,diagnosticsCurrent:i}}catch{return{tos:!1,privacy:!1,analyticsCurrent:!1,diagnosticsCurrent:!1}}}function Fn(t,n,r){if(!(typeof window>`u`||!t))try{e(U(`tos`,t),n),e(U(`privacy`,t),r)}catch{}}function W(t,n){if(!(typeof window>`u`||!t))try{n.analyticsCurrent!==void 0&&e(U(`share_analytics`,t),n.analyticsCurrent),n.diagnosticsCurrent!==void 0&&e(U(`share_diagnostics`,t),n.diagnosticsCurrent)}catch{}}function In(e){if(n(`vellum:onboarding:tosAccepted`),n(`vellum:onboarding:aiDataConsent`),n(`vellum:onboarding:selectedVersion`),!(typeof window>`u`||!e))try{n(U(`tos`,e)),n(U(`privacy`,e)),n(Nn(e)),n(U(`share_analytics`,e)),n(U(`share_diagnostics`,e))}catch{}}function G(e,t){return e>=t}function Ln(e){if(!e)return{tos:!1,privacy:!1,shareAnalytics:null,shareDiagnostics:null,analyticsCurrent:!1,diagnosticsCurrent:!1,hasServerRecord:!1};let t=!!e.tos_accepted_version||!!e.privacy_policy_accepted_version||!!e.ai_data_sharing_accepted_version||!!e.share_analytics_accepted_version||!!e.share_diagnostics_accepted_version||e.share_analytics===!1||e.share_diagnostics===!1;return{tos:G(e.tos_accepted_version,z),privacy:G(e.privacy_policy_accepted_version,`2026-06-22`)&&G(e.ai_data_sharing_accepted_version,`2026-06-22`),shareAnalytics:e.share_analytics,shareDiagnostics:e.share_diagnostics,analyticsCurrent:G(e.share_analytics_accepted_version,V),diagnosticsCurrent:G(e.share_diagnostics_accepted_version,H),hasServerRecord:t}}function Rn(e){let t=R.getState();t.setTosAccepted(e.tos),t.setPrivacyConsent(e.privacy),t.setShareAnalytics(e.shareAnalytics),t.setShareDiagnostics(e.shareDiagnostics),t.setAnalyticsConsentCurrent(!0),t.setDiagnosticsConsentCurrent(!0),L(e.shareDiagnostics),Fn(e.userId,e.tos,e.privacy),W(e.userId,{analyticsCurrent:!0,diagnosticsCurrent:!0}),e.hasPlatformSession&&Sn({tos_accepted_version:e.tos?z:``,privacy_policy_accepted_version:e.privacy?B:``,ai_data_sharing_accepted_version:e.privacy?B:``,share_analytics:e.shareAnalytics,share_diagnostics:e.shareDiagnostics,share_analytics_accepted_version:V,share_diagnostics_accepted_version:H}).catch(()=>{})}function zn(e,t,n){let r=R.getState(),{userId:a,hasPlatformSession:o}=n;e===`share_analytics`?(r.setShareAnalytics(t),i(`shareAnalytics`,t),o&&(r.setAnalyticsConsentCurrent(!0),W(a,{analyticsCurrent:!0}))):(r.setShareDiagnostics(t),i(`shareDiagnostics`,t),o?(r.setDiagnosticsConsentCurrent(!0),L(t),W(a,{diagnosticsCurrent:!0})):L(!1)),o&&Sn({[e]:t,[`${e}_accepted_version`]:Mn[e]}).catch(()=>{})}var Bn=`vellum:`,Vn=[`onboarding.`,`voice:`,`gw:`,`ff:client:`,`local:`,`integrations.`,`vellumDebug.`,`vellum_`],Hn=new Set([`vellum_theme`,`vellum_share_analytics`,`vellum_share_diagnostics`,`vellum_biometric_enabled`,`vellum_llm_log_retention`,`vellum_timezone`,`vellum_media_embeds_enabled`,`vellum_media_embed_domains`,`onboarding.lastUserId`]);function Un(e){return e.startsWith(Bn)?!0:Hn.has(e)?!1:Vn.some(t=>e.startsWith(t))}function Wn(){try{sessionStorage.clear()}catch{}try{let e=[];for(let t=0;t<localStorage.length;t++){let n=localStorage.key(t);n&&Un(n)&&e.push(n)}e.forEach(e=>localStorage.removeItem(e))}catch{}}function Gn(e){return e?.id??e?.email??e?.username??null}function K(e){return e?{kind:`platform`,id:Gn(e),username:e.username??null,email:e.email??null,isStaff:e.is_staff??!1,firstName:e.first_name??``,lastName:e.last_name??``}:null}var Kn=null,q=null,qn=!1,Jn={kind:`local`,id:`gateway-local`,username:`local`,email:null,isStaff:!1,firstName:`Local`,lastName:`User`},J=e=>(Ct(e),{sessionStatus:`authenticated`,user:e,platformSession:`present`,platformSessionRestoredOffline:!1}),Y=()=>({sessionStatus:`authenticated`,user:Jn}),X=()=>({sessionStatus:`unauthenticated`,user:null,platformSession:`absent`}),Z=e=>e===null||!e.ok&&!gt(e);async function Yn(e){if(!Le())return!1;let t=wt();return t?(await Q(t.id),e({...J(t),platformSessionRestoredOffline:!0}),!0):!1}function Xn(e){(!e||Kn&&Kn!==e)&&jt(),Kn=e}function Zn(){q?.postMessage(`auth-changed`)}async function Q(e){if(e)try{let t=Ln(await xn()),n=R.getState();t.hasServerRecord&&t.shareAnalytics!==null&&n.setShareAnalytics(t.shareAnalytics),wn({shareDiagnostics:t.shareDiagnostics,diagnosticsVersionCurrent:t.diagnosticsCurrent,hasServerRecord:t.hasServerRecord},n.setShareDiagnostics);let r=t.tos,i=t.privacy,a=t.analyticsCurrent,o=t.diagnosticsCurrent;if(!t.hasServerRecord){let t=Pn(e);a=t.analyticsCurrent,o=t.diagnosticsCurrent,L(n.shareDiagnostics&&o),t.tos&&t.privacy&&(r=!0,i=!0,Sn({tos_accepted_version:z,privacy_policy_accepted_version:B,ai_data_sharing_accepted_version:B,...a?{share_analytics_accepted_version:V,share_analytics:n.shareAnalytics}:{},...o?{share_diagnostics_accepted_version:H,share_diagnostics:n.shareDiagnostics}:{}}).catch(()=>{}))}n.setTosAccepted(r),n.setPrivacyConsent(i),n.setAnalyticsConsentCurrent(a),n.setDiagnosticsConsentCurrent(o),Fn(e,r,i),W(e,{analyticsCurrent:a,diagnosticsCurrent:o}),Xn(e);return}catch{}let t=Pn(e),n=R.getState();n.setTosAccepted(t.tos),n.setPrivacyConsent(t.privacy),n.setAnalyticsConsentCurrent(t.analyticsCurrent),n.setDiagnosticsConsentCurrent(t.diagnosticsCurrent),Xn(e)}var Qn=0;Promise.resolve();function $n(e,t={}){let n=++Qn,r=()=>n!==Qn;C().then(async n=>{if(!r())if(n.ok&&n.data.user){let i=K(n.data.user),a=t.setUserOnSuccess?{user:i}:{};if(t.setUserOnSuccess&&Ct(i),h()){let e=!1,t=()=>!e&&!r();try{await Promise.race([(async()=>{await A.getState().fetchOrganizations();let e=await S();t()&&e.ok&&await ne(e.data,A.getState().currentOrganizationId??void 0,t)})(),new Promise((t,n)=>setTimeout(()=>{e=!0,n(Error(`sync timeout`))},3e3))])}catch{}}if(r())return;e({platformSession:`present`,platformSessionRestoredOffline:!1,...a}),Vt()}else t.clearOnFailure&&e({platformSession:`absent`})}).catch(()=>{r()||t.clearOnFailure&&e({platformSession:`absent`})}).finally(()=>{r()||e(e=>e.platformSession===`unknown`?{platformSession:`absent`}:{})})}function er(e,t){!h()||_()||fe().length>0?$n(e,t):e({platformSession:`absent`})}async function tr(){try{if(await ze())return!0}catch{}return de()!==null}var $=d(u()((e,t)=>({sessionStatus:`initializing`,user:null,platformSession:`unknown`,platformSessionRestoredOffline:!1,initSession:async()=>{if(g()){await tr()?e({...Y(),platformSession:`absent`}):e(X());return}if(_()){try{await ae(),e(Y())}catch{e({sessionStatus:`unauthenticated`,user:null})}er(e);return}if(h()&&!_()){if(fe().length>0){let t=null;try{if(t=await C(),t.ok&&t.data.user){let n=K(t.data.user);await Q(n?.id??null);try{await A.getState().fetchOrganizations();let e=await S();e.ok&&await ne(e.data,A.getState().currentOrganizationId??void 0)}catch{}e(J(n));return}}catch{}if(Z(t)){if(await Yn(e))return}else k();e(X());return}e(Y()),qn?e({platformSession:`absent`}):$n(e,{setUserOnSuccess:!0}),qn=!1;return}let t=null;try{if(t=await C(),t.ok&&t.data.user){let n=K(t.data.user);await Q(n?.id??null);try{await A.getState().fetchOrganizations();let e=await S();e.ok&&y.getState().setFromApi(e.data)}catch{}e(J(n));return}}catch(e){console.error(`auth.initSession failed`,e)}if(!(Z(t)&&await Yn(e))){if(Ie()&&Ne())try{let t=await ke();if(t){Pe(t),await Me();let n=await C();if(n.ok&&n.data.user){let t=K(n.data.user);await Q(t?.id??null);try{await A.getState().fetchOrganizations();let e=await S();e.ok&&y.getState().setFromApi(e.data)}catch{}e(J(t));return}}}catch(e){console.warn(`auth.initSession biometric recovery failed`,e)}await Q(null),Z(t)||k(),e(X())}},connectLocalAssistant:async n=>{await _e(pe().find(e=>e.assistantId===n)),await O(n),e(Y()),await D.checkAssistant(),mt(t().platformSession,t().platformSessionRestoredOffline)&&Vt(n),er(e)},connectPlatformAssistant:async t=>{await O(t);let n=await C();if(!n.ok||!n.data.user)throw Error(`Platform authentication required`);let r=K(n.data.user);await Q(r?.id??null),await A.getState().fetchOrganizations(),e(J(r))},refreshSession:async()=>{if(g())return await tr()?(e({...Y(),platformSession:`absent`}),!0):(e(X()),!1);if(p()){try{await ge(me()),e({sessionStatus:`authenticated`})}catch{return e(X()),!1}return er(e,{clearOnFailure:!0}),!0}let n=null;try{if(n=await C(),n.ok&&n.data.user){let t=K(n.data.user);if(await Q(t?.id??null),h())try{await A.getState().fetchOrganizations();let e=await S();e.ok&&await ne(e.data,A.getState().currentOrganizationId??void 0)}catch{}return e(J(t)),!0}}catch(e){console.warn(`auth.refreshSession failed`,e)}if(Z(n))return T(t().sessionStatus);if(_()){let n=T(t().sessionStatus);return n&&(k(),e({...Y(),platformSession:`absent`})),n}return k(),await Q(null),e(X()),!1},logout:async()=>{if(p()){D.resetForLogout(),await O(null),se(),jt(),Wn(),e(X()),Zn();return}qn=!0,await mn();try{await Oe()}finally{v()&&await window.vellum?.auth?.signOut?.(),h()&&!v()&&await ee(),Fe(),jt(),Wn(),D.resetForLogout(),await O(null),e(X()),Zn()}}}))),nr=()=>T($.use.sessionStatus()),rr=()=>!pt($.use.sessionStatus()),ir=()=>E($.use.platformSession()),ar=()=>mt($.use.platformSession(),$.use.platformSessionRestoredOffline());function or(){let{refreshSession:e}=$.getState(),t=[],n=()=>e().catch(e=>console.warn(`auth.refreshSession failed`,e)),r=De(`app.resume`,()=>{je()||n()});return t.push(r),typeof BroadcastChannel<`u`&&(q=new BroadcastChannel(`auth`),q.onmessage=()=>{Wn(),window.location.reload()},t.push(()=>{q?.close(),q=null})),()=>t.forEach(e=>e())}export{D as A,Ye as B,Bt as C,A as D,Mt as E,ft as F,We as H,lt as I,Ze as L,T as M,mt as N,xt as O,pt as P,Qe as R,Vt as S,j as T,w as U,Ge as V,xn as _,nr as a,gn as b,z as c,Rn as d,zn as f,Cn as g,_n as h,ir as i,E as j,O as k,In as l,wn as m,$ as n,rr as o,R as p,ar as r,B as s,or as t,Ln as u,vn as v,It as w,pn as x,bn as y,Je as z};
@@ -1 +0,0 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./capture-error-BG-GkiMq.js";import{t as n}from"./react-DJZBPgpf.js";import{t as r}from"./jsx-runtime-CVSDxk6A.js";import{t as i}from"./typography-BscuIPxA.js";import"./src-mai-NajT.js";import{t as a}from"./detail-shell-BPCWck_r.js";import{$ as o,It as s,Lt as c,Rt as l,et as u,zt as d}from"./index-DbPUHSMl.js";import{t as f}from"./status-badge-pill-j3ke1d9o.js";import{t as p}from"./detail-panel-stop-button-D0KsydFR.js";import{CodeBlock as m,SectionLabel as h}from"./tool-detail-panel-bEz99Rub.js";var g=e(n(),1),_=r();function v({status:e}){return(0,_.jsx)(f,{color:s(e),label:c(e)})}function y({entry:e,onClose:n}){let r=d(e.status),s=!r,c=s&&e.output!==void 0&&e.output!==``,f=s&&e.exitCode!=null,[y,b]=(0,g.useState)(!1),x=(0,g.useCallback)(()=>{b(!0),o(e.id).catch(e=>{b(!1),t(e,{context:`BackgroundTaskDetailPanel.stop`})})},[e.id]);return(0,_.jsxs)(a,{Glyph:u(e.toolName),title:l(e.status),headerTrailing:(0,_.jsx)(v,{status:e.status}),headerActions:r?(0,_.jsx)(p,{onStop:x,ariaLabel:`Stop command`,disabled:y}):void 0,closeVariant:`outlined`,closeLabel:`Close task detail`,onClose:n,children:[(0,_.jsxs)(`div`,{children:[(0,_.jsx)(h,{children:`Command`}),(0,_.jsx)(m,{text:e.command})]}),c&&(0,_.jsxs)(`div`,{className:`mt-5`,children:[(0,_.jsx)(h,{children:`Output`}),(0,_.jsx)(m,{text:e.output})]}),f&&(0,_.jsxs)(i,{variant:`body-small-default`,as:`p`,className:`mt-2 text-[var(--content-tertiary)]`,children:[`Exit code: `,e.exitCode]})]})}export{y as BackgroundTaskDetailPanel};