@rubytech/create-maxy-code 0.1.43 → 0.1.45
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/payload/platform/plugins/admin/hooks/__tests__/turn-completed-graph-write.test.sh +122 -20
- package/payload/platform/plugins/admin/hooks/turn-completed-graph-write.sh +40 -78
- package/payload/platform/plugins/docs/references/platform.md +7 -3
- package/payload/platform/services/claude-session-manager/dist/http-server.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/http-server.js +18 -2
- package/payload/platform/services/claude-session-manager/dist/http-server.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts +5 -0
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.js +17 -0
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.js.map +1 -1
- package/payload/platform/templates/agents/admin/IDENTITY.md +3 -11
- package/payload/server/public/assets/{admin-CzJDs5FQ.js → admin-DVZcLuYu.js} +2 -2
- package/payload/server/public/assets/{architectureDiagram-Q4EWVU46-DJvcnhtT.js → architectureDiagram-Q4EWVU46-Ch-JZ1Q0.js} +1 -1
- package/payload/server/public/assets/{blockDiagram-DXYQGD6D-_vt7n9ql.js → blockDiagram-DXYQGD6D-C08tkD4C.js} +1 -1
- package/payload/server/public/assets/{brand-DNSV7-vn.css → brand-DCdOhh-I.css} +1 -1
- package/payload/server/public/assets/{c4Diagram-AHTNJAMY-CdEo9QqN.js → c4Diagram-AHTNJAMY-IceRdWw3.js} +1 -1
- package/payload/server/public/assets/channel-8QQB2Zoe.js +1 -0
- package/payload/server/public/assets/{chunk-336JU56O-JmuLOuir.js → chunk-336JU56O-Cey0rxmH.js} +2 -2
- package/payload/server/public/assets/{chunk-426QAEUC-10f8pXpz.js → chunk-426QAEUC-Dzk8s0or.js} +1 -1
- package/payload/server/public/assets/{chunk-4TB4RGXK-DajMd0ug.js → chunk-4TB4RGXK-C10nuKc8.js} +1 -1
- package/payload/server/public/assets/{chunk-5FUZZQ4R-B4A-XUHI.js → chunk-5FUZZQ4R-B1B8871D.js} +1 -1
- package/payload/server/public/assets/{chunk-5PVQY5BW-BNM3rT14.js → chunk-5PVQY5BW-jvHIkgqP.js} +1 -1
- package/payload/server/public/assets/{chunk-EDXVE4YY-atMwO81K.js → chunk-EDXVE4YY-7nDxvXHS.js} +1 -1
- package/payload/server/public/assets/{chunk-ENJZ2VHE-BUbZv2Nz.js → chunk-ENJZ2VHE-C8lJ1YYn.js} +1 -1
- package/payload/server/public/assets/{chunk-ICPOFSXX-BMF-eWHb.js → chunk-ICPOFSXX-CT1d7veI.js} +1 -1
- package/payload/server/public/assets/{chunk-OYMX7WX6-BEMDmPTI.js → chunk-OYMX7WX6-LTAfwxv0.js} +1 -1
- package/payload/server/public/assets/{chunk-U2HBQHQK-DOM7Y4f1.js → chunk-U2HBQHQK-RoGrqrH0.js} +1 -1
- package/payload/server/public/assets/{chunk-X2U36JSP-C_uWyW6Y.js → chunk-X2U36JSP-D89ZBg3z.js} +1 -1
- package/payload/server/public/assets/{chunk-YZCP3GAM-DQbgl47k.js → chunk-YZCP3GAM-Cyg122Hf.js} +1 -1
- package/payload/server/public/assets/{chunk-ZZ45TVLE-C44DEAgq.js → chunk-ZZ45TVLE-Dg59YYuG.js} +1 -1
- package/payload/server/public/assets/classDiagram-6PBFFD2Q-CViZOOjI.js +1 -0
- package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-Dm7eGBqB.js +1 -0
- package/payload/server/public/assets/clone-BC8oes11.js +1 -0
- package/payload/server/public/assets/{dagre-lNEvWLDX.js → dagre-BPzUsxie.js} +1 -1
- package/payload/server/public/assets/{dagre-KV5264BT-CE3meBlZ.js → dagre-KV5264BT-CjDNXqPy.js} +1 -1
- package/payload/server/public/assets/data-BxpOR0eM.js +1 -0
- package/payload/server/public/assets/{device-url-actions-a6Bd-MRk.js → device-url-actions-B588ZlnE.js} +1 -1
- package/payload/server/public/assets/{diagram-5BDNPKRD-BqR72jWu.js → diagram-5BDNPKRD-Bqq0vqWM.js} +1 -1
- package/payload/server/public/assets/{diagram-G4DWMVQ6-DOjamNAP.js → diagram-G4DWMVQ6-DSqocDhm.js} +1 -1
- package/payload/server/public/assets/{diagram-MMDJMWI5-DAUB-aPu.js → diagram-MMDJMWI5-DZRWgKRL.js} +1 -1
- package/payload/server/public/assets/{diagram-TYMM5635-DpToW00F.js → diagram-TYMM5635-DXRm-FXu.js} +1 -1
- package/payload/server/public/assets/{erDiagram-SMLLAGMA-C-p2ze2T.js → erDiagram-SMLLAGMA-CFVgkUCo.js} +1 -1
- package/payload/server/public/assets/{flowDiagram-DWJPFMVM-B9SS6a8F.js → flowDiagram-DWJPFMVM-C82XCt9-.js} +1 -1
- package/payload/server/public/assets/{ganttDiagram-T4ZO3ILL-DnXZX0Gp.js → ganttDiagram-T4ZO3ILL-C4tnImlS.js} +1 -1
- package/payload/server/public/assets/{gitGraphDiagram-UUTBAWPF-CtQ0FzPg.js → gitGraphDiagram-UUTBAWPF-DXHutP-a.js} +1 -1
- package/payload/server/public/assets/graph-CrmxRSeb.js +1 -0
- package/payload/server/public/assets/graph-labels-C8A6BmtP.js +1 -0
- package/payload/server/public/assets/{graphlib-nUaDKzkp.js → graphlib-BvR5tL62.js} +1 -1
- package/payload/server/public/assets/{infoDiagram-42DDH7IO-c2wWbEaX.js → infoDiagram-42DDH7IO-DgFMqgZy.js} +1 -1
- package/payload/server/public/assets/{ishikawaDiagram-UXIWVN3A-BBOgnjrU.js → ishikawaDiagram-UXIWVN3A-_5gmh1-V.js} +1 -1
- package/payload/server/public/assets/{journeyDiagram-VCZTEJTY-DzIkOZor.js → journeyDiagram-VCZTEJTY-CNfDVgwI.js} +1 -1
- package/payload/server/public/assets/{kanban-definition-6JOO6SKY-NoAdbB_E.js → kanban-definition-6JOO6SKY-Djifb_Z6.js} +1 -1
- package/payload/server/public/assets/{line-BRK1p00q.js → line-0fRVrNiw.js} +1 -1
- package/payload/server/public/assets/{mermaid-parser.core-Bm0OvYTL.js → mermaid-parser.core-DXA7LKDt.js} +1 -1
- package/payload/server/public/assets/{mermaid.core-CTznq93v.js → mermaid.core-BCfYtdMJ.js} +3 -3
- package/payload/server/public/assets/{mindmap-definition-QFDTVHPH-BOQ1enWi.js → mindmap-definition-QFDTVHPH-sTRvikWi.js} +1 -1
- package/payload/server/public/assets/{page-BLNJpxTT.js → page-D5wAeFU0.js} +2 -2
- package/payload/server/public/assets/{page-Dn3gASQM.js → page-DR5NU6S0.js} +1 -1
- package/payload/server/public/assets/{pieDiagram-DEJITSTG-2S-XHkal.js → pieDiagram-DEJITSTG-QLTieded.js} +1 -1
- package/payload/server/public/assets/{public-D0z7BALL.js → public-rUUducAl.js} +3 -3
- package/payload/server/public/assets/{quadrantDiagram-34T5L4WZ-CncZqXXr.js → quadrantDiagram-34T5L4WZ-DOKCcqAZ.js} +1 -1
- package/payload/server/public/assets/{requirementDiagram-MS252O5E-CPeWs9fs.js → requirementDiagram-MS252O5E-BX6Zpq1X.js} +1 -1
- package/payload/server/public/assets/{sankeyDiagram-XADWPNL6-A4_669ey.js → sankeyDiagram-XADWPNL6-B05NdgZX.js} +1 -1
- package/payload/server/public/assets/{sequenceDiagram-FGHM5R23-DD-qEurY.js → sequenceDiagram-FGHM5R23-CHF8ZdUb.js} +1 -1
- package/payload/server/public/assets/{stateDiagram-FHFEXIEX-CdO6Mw_T.js → stateDiagram-FHFEXIEX-DTAt7Ytz.js} +1 -1
- package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-2bJIW7wn.js +1 -0
- package/payload/server/public/assets/{timeline-definition-GMOUNBTQ-JH65fN1V.js → timeline-definition-GMOUNBTQ-Dzd6X_ei.js} +1 -1
- package/payload/server/public/assets/{vennDiagram-DHZGUBPP-CJLoNrBL.js → vennDiagram-DHZGUBPP-BAbM4QlQ.js} +1 -1
- package/payload/server/public/assets/{wardleyDiagram-NUSXRM2D-BgM9eEf7.js → wardleyDiagram-NUSXRM2D-CIOXXKJd.js} +1 -1
- package/payload/server/public/assets/{xychartDiagram-5P7HB3ND-DCmesmc9.js → xychartDiagram-5P7HB3ND-oF9sZesS.js} +1 -1
- package/payload/server/public/data.html +5 -5
- package/payload/server/public/graph.html +5 -5
- package/payload/server/public/index.html +7 -7
- package/payload/server/public/public.html +4 -4
- package/payload/server/public/assets/channel-DzmCBQ_9.js +0 -1
- package/payload/server/public/assets/classDiagram-6PBFFD2Q-DVoOmecn.js +0 -1
- package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-B0r3hpf9.js +0 -1
- package/payload/server/public/assets/clone-Dde30M8J.js +0 -1
- package/payload/server/public/assets/data-DW6QAnMD.js +0 -1
- package/payload/server/public/assets/graph-D13IJB3w.js +0 -1
- package/payload/server/public/assets/graph-labels-CI9WmEiE.js +0 -1
- package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-D28bJZnf.js +0 -1
- /package/payload/server/public/assets/{brand-FZ59T8pI.js → brand-Dln107gD.js} +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{o as e,t}from"./chunk-DD-I1_y5.js";import{a as n,c as r,d as i,f as a,h as o,i as s,l as c,m as l,o as u,p as d,s as f,t as p,u as m}from"./brand-FZ59T8pI.js";import{c as h,g,h as _,l as v,m as y,o as b,p as x,s as S,u as C}from"./graph-labels-CI9WmEiE.js";import{i as ee,r as w,t as te}from"./page-BLNJpxTT.js";import{i as ne,n as re,r as ie}from"./page-Dn3gASQM.js";import{i as T,n as E,o as D,r as O,s as k}from"./device-url-actions-a6Bd-MRk.js";var ae=d(),A=e(o(),1);new Set(`image/jpeg,image/png,image/gif,image/webp,application/pdf,text/plain,text/markdown,text/csv,text/html,text/calendar,application/zip,application/x-zip-compressed,audio/ogg,audio/opus,audio/mp4,audio/mpeg,audio/webm,audio/wav,.opus,.ogg,.m4a,.mp3,.wav,.webm`.split(`,`).filter(e=>!e.startsWith(`.`)));function oe(e){switch(e){case`expanded`:return!0;case`collapsed`:return!1;default:return}}var se=`admin-landing-redirected`,ce=`/graph`;function le(e){return e.appState===`chat`&&!e.alreadyRedirected}function ue(){let[e,t]=(0,A.useState)(`loading`),[n,r]=(0,A.useState)(``),[i,a]=(0,A.useState)(``),[o,s]=(0,A.useState)(``),[c,l]=(0,A.useState)(!1),[u,d]=(0,A.useState)(!1),[f,p]=(0,A.useState)(!1),[m,h]=(0,A.useState)(!1),[g,_]=(0,A.useState)(!1),[v,y]=(0,A.useState)(null),[b,x]=(0,A.useState)(null),[S,C]=(0,A.useState)(void 0),[ee,w]=(0,A.useState)(null),[te,ne]=(0,A.useState)(void 0),[re,ie]=(0,A.useState)(null),[T,E]=(0,A.useState)(null),[D,O]=(0,A.useState)([]),[k,ae]=(0,A.useState)(!1),[ue,de]=(0,A.useState)(void 0),fe=(0,A.useRef)(void 0),[pe,me]=(0,A.useState)(!1);(0,A.useEffect)(()=>{typeof window>`u`||window.location.hostname.startsWith(`admin.`)&&fetch(`/api/remote-auth/status`).then(e=>e.ok?e.json():null).then(e=>{e?.configured&&me(!0)}).catch(()=>{})},[]);let he=(0,A.useRef)(null),ge=(0,A.useRef)(null);(0,A.useEffect)(()=>{async function e(){let e=null;try{e=sessionStorage.getItem(`maxy-admin-session-key`)}catch{}if(!e)return!1;try{let n=await fetch(`/api/admin/session?session_key=${encodeURIComponent(e)}`);if(n.status===401){try{sessionStorage.removeItem(`maxy-admin-session-key`)}catch{}return!1}if(!n.ok)return!1;let r=await n.json();y(r.session_key),E(r.conversationId??null),C(r.businessName),w(r.role??null),ne(r.userName===void 0?null:r.userName),ie(r.avatar??null);let i=oe(r.thinkingView);return fe.current=i,de(i),t(`chat`),!0}catch(e){return console.error(`[admin] session restore failed:`,e),!1}}async function n(r=2){try{let i=await fetch(`/api/health`);if(!i.ok){if(r>0)return await new Promise(e=>setTimeout(e,1500)),n(r-1);console.error(`[admin] health check returned ${i.status} after retries`),t(`set-pin`);return}let a=await i.json();if(!a.pin_configured){t(`set-pin`);return}if(!a.claude_authenticated){t(`connect-claude`);return}if(await e())return;t(`enter-pin`)}catch(e){if(r>0)return await new Promise(e=>setTimeout(e,1500)),n(r-1);console.error(`[admin] health check failed:`,e),t(`set-pin`)}}n()},[]),(0,A.useEffect)(()=>{e===`chat`&&fetch(`/api/admin/claude-info`).then(e=>{if(e.ok)return e.json()}).then(e=>{e&&x(e)}).catch(()=>{})},[e]),(0,A.useEffect)(()=>{if(typeof window>`u`)return;let t=!1;try{t=sessionStorage.getItem(se)===`1`}catch{}if(le({appState:e,alreadyRedirected:t})){try{sessionStorage.setItem(se,`1`)}catch{}console.info(`[admin-ui] landing-redirect target=${ce}`),window.location.replace(ce)}},[e]),(0,A.useEffect)(()=>{if(e!==`chat`)return;let n=setInterval(async()=>{try{let e=await fetch(`/api/health`);if(!e.ok)return;let n=await e.json();(n.auth_status===`dead`||n.auth_status===`missing`)&&t(`connect-claude`)}catch{}},300*1e3);return()=>clearInterval(n)},[e]),(0,A.useEffect)(()=>{e===`connect-claude`&&fetch(`/api/health`).then(e=>e.ok?e.json():null).then(e=>{e?.claude_authenticated&&t(`enter-pin`)}).catch(()=>{})},[e]);async function _e(e,n){d(!0);try{let i=await fetch(`/api/admin/session`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({pin:e,...n?{accountId:n}:{}})});if(!i.ok){s((await i.json().catch(()=>({}))).error||`Invalid PIN`);return}let a=await i.json();if(a.accounts&&!a.session_key){console.log(`[admin] account picker shown: userId=${a.userId} accountCount=${a.accounts.length}`),O(a.accounts),t(`account-picker`);return}y(a.session_key),E(a.conversationId??null),C(a.businessName),w(a.role??null),ne(a.userName===void 0?null:a.userName),ie(a.avatar??null);let o=oe(a.thinkingView);if(fe.current=o,de(o),n)try{sessionStorage.setItem(`maxy-account-id`,n)}catch{}try{sessionStorage.setItem(`maxy-admin-session-key`,a.session_key)}catch{}r(``),t(`chat`)}catch(e){console.error(`[admin] connection error:`,e),s(`Could not connect.`)}finally{d(!1),ae(!1)}}let ve=(0,A.useCallback)(async e=>{if(e.preventDefault(),u)return;s(``);let a=i.trim();if(!a){s(`Please enter your name.`);return}if(n.length<4){s(`PIN must be at least 4 characters.`);return}let o=n;d(!0);try{let e=await fetch(`/api/onboarding/set-pin`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({pin:o,name:a})});if(!e.ok){let n=await e.json().catch(()=>({}));if(e.status===409){console.log(`[admin] PIN already configured — re-checking health`);try{let e=await fetch(`/api/health`);if(e.ok){let r=await e.json();r.pin_configured&&r.claude_authenticated?t(`enter-pin`):r.pin_configured?t(`connect-claude`):s(n.error||`Failed to set PIN.`)}else t(`enter-pin`)}catch{t(`enter-pin`)}return}s(n.error||`Failed to set PIN.`);return}let n=await fetch(`/api/health`);if((n.ok?await n.json():null)?.claude_authenticated){await _e(o);return}r(``),t(`connect-claude`)}catch(e){console.error(`[admin] connection error:`,e),s(`Could not connect.`)}finally{d(!1)}},[n,u,i]),ye=(0,A.useCallback)(async e=>{e.preventDefault(),s(``),await _e(n)},[n]),be=(0,A.useCallback)(async()=>{_(!0);try{await fetch(`/api/onboarding/claude-auth`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({action:`logout`})}),y(null),w(null),ne(void 0),ie(null);try{sessionStorage.removeItem(`maxy-admin-session-key`)}catch{}t(`connect-claude`)}finally{_(!1)}},[]),xe=(0,A.useCallback)(()=>{y(null),w(null),ne(void 0),ie(null);try{sessionStorage.removeItem(`maxy-admin-session-key`),sessionStorage.removeItem(se)}catch{}r(``),s(``),t(`enter-pin`)},[]);return{appState:e,setAppState:t,pin:n,setPin:r,operatorName:i,setOperatorName:a,pinError:o,setPinError:s,showPin:c,setShowPin:l,pinLoading:u,authPolling:f,setAuthPolling:p,authLoading:m,setAuthLoading:h,disconnecting:g,cacheKey:v,setCacheKey:y,claudeInfo:b,setClaudeInfo:x,businessName:S,role:ee,userName:te,userAvatar:re,conversationId:T,setConversationId:E,accounts:D,accountPickerLoading:k,expandAll:ue,setExpandAll:de,expandAllDefaultRef:fe,remoteAuthEnabled:pe,pinInputRef:he,setPinFormRef:ge,handleSetPin:ve,handleLogin:ye,handleAccountSelect:(0,A.useCallback)(async e=>{ae(!0),s(``),await _e(n,e)},[n]),handleDisconnect:be,handleLogout:xe,handleChangePin:(0,A.useCallback)(async()=>{if(!n){s(`Enter your current PIN first.`);return}d(!0),s(``);try{let e=await fetch(`/api/onboarding/set-pin`,{method:`DELETE`,headers:{"Content-Type":`application/json`},body:JSON.stringify({currentPin:n})});if(!e.ok){s((await e.json().catch(()=>({error:`Incorrect PIN.`}))).error||`Incorrect PIN.`);return}r(``),s(``),t(`set-pin`)}catch(e){console.error(`[admin-auth] change pin failed:`,e),s(e instanceof Error?e.message:String(e))}finally{d(!1)}},[n])}}var de=a(`archive`,[[`rect`,{width:`20`,height:`5`,x:`2`,y:`3`,rx:`1`,key:`1wp1u1`}],[`path`,{d:`M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8`,key:`1s80jp`}],[`path`,{d:`M10 12h4`,key:`a56b0p`}]]),fe=a(`bold`,[[`path`,{d:`M6 12h9a4 4 0 0 1 0 8H7a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h7a4 4 0 0 1 0 8`,key:`mg9rjx`}]]),pe=a(`circle-stop`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`rect`,{x:`9`,y:`9`,width:`6`,height:`6`,rx:`1`,key:`1ssd4o`}]]),me=a(`code-xml`,[[`path`,{d:`m18 16 4-4-4-4`,key:`1inbqp`}],[`path`,{d:`m6 8-4 4 4 4`,key:`15zrgr`}],[`path`,{d:`m14.5 4-5 16`,key:`e7oirm`}]]),he=a(`ellipsis-vertical`,[[`circle`,{cx:`12`,cy:`12`,r:`1`,key:`41hilf`}],[`circle`,{cx:`12`,cy:`5`,r:`1`,key:`gxeob9`}],[`circle`,{cx:`12`,cy:`19`,r:`1`,key:`lyex9k`}]]),ge=a(`file-exclamation-point`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M12 9v4`,key:`juzpu7`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]]),_e=a(`italic`,[[`line`,{x1:`19`,x2:`10`,y1:`4`,y2:`4`,key:`15jd3p`}],[`line`,{x1:`14`,x2:`5`,y1:`20`,y2:`20`,key:`bu0au3`}],[`line`,{x1:`15`,x2:`9`,y1:`4`,y2:`20`,key:`uljnxc`}]]),ve=a(`link-2`,[[`path`,{d:`M9 17H7A5 5 0 0 1 7 7h2`,key:`8i5ue5`}],[`path`,{d:`M15 7h2a5 5 0 1 1 0 10h-2`,key:`1b9ql8`}],[`line`,{x1:`8`,x2:`16`,y1:`12`,y2:`12`,key:`1jonct`}]]),ye=a(`maximize-2`,[[`path`,{d:`M15 3h6v6`,key:`1q9fwt`}],[`path`,{d:`m21 3-7 7`,key:`1l2asr`}],[`path`,{d:`m3 21 7-7`,key:`tjx5ai`}],[`path`,{d:`M9 21H3v-6`,key:`wtvkvv`}]]),be=a(`message-square-plus`,[[`path`,{d:`M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z`,key:`18887p`}],[`path`,{d:`M12 8v6`,key:`1ib9pf`}],[`path`,{d:`M9 11h6`,key:`1fldmi`}]]),xe=a(`minimize-2`,[[`path`,{d:`m14 10 7-7`,key:`oa77jy`}],[`path`,{d:`M20 10h-6V4`,key:`mjg0md`}],[`path`,{d:`m3 21 7-7`,key:`tjx5ai`}],[`path`,{d:`M4 14h6v6`,key:`rmj7iw`}]]),Se=a(`pencil`,[[`path`,{d:`M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z`,key:`1a8usu`}],[`path`,{d:`m15 5 4 4`,key:`1mk7zo`}]]),Ce=a(`pin`,[[`path`,{d:`M12 17v5`,key:`bb1du9`}],[`path`,{d:`M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z`,key:`1nkz8b`}]]),we=a(`square-arrow-down-left`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`m16 8-8 8`,key:`166keh`}],[`path`,{d:`M16 16H8V8`,key:`1w2ppm`}]]),j=u();function Te({inputRef:e,value:t,onChange:n,onComplete:r,showPin:i,autoFocus:a}){let o=(0,A.useRef)([]);function s(e,r){r.key===`Backspace`?(r.preventDefault(),t[e]?n(t.slice(0,e)+t.slice(e+1)):e>0&&(n(t.slice(0,e-1)+t.slice(e)),o.current[e-1]?.focus())):r.key===`ArrowLeft`&&e>0?o.current[e-1]?.focus():r.key===`ArrowRight`&&e<5?o.current[e+1]?.focus():r.key===`Enter`&&(r.preventDefault(),r.currentTarget.form?.requestSubmit())}function c(e,i){let a=i.nativeEvent.data;if(!a||!/^\d$/.test(a))return;let s=t.split(``);for(s[e]=a;s.length<e;)s.push(``);let c=s.join(``).replace(/\D/g,``).slice(0,6);n(c),c.length===6?r?.(c):e<5&&o.current[e+1]?.focus()}function l(e){e.preventDefault();let t=e.clipboardData.getData(`text`).replace(/\D/g,``).slice(0,6);t&&(n(t),t.length===6?r?.(t):o.current[t.length]?.focus())}return(0,j.jsx)(`div`,{className:`pin-field`,children:Array.from({length:6}).map((n,r)=>(0,j.jsx)(`input`,{ref:t=>{o.current[r]=t,r===0&&e&&(e.current=t)},type:`text`,inputMode:`numeric`,className:`pin-box${t[r]?` pin-box-filled`:``}`,value:t[r]?i?t[r]:`•`:``,onKeyDown:e=>s(r,e),onInput:e=>c(r,e),onPaste:l,onFocus:e=>e.target.select(),autoFocus:a&&r===0,autoComplete:`off`,maxLength:1,"aria-label":`PIN digit ${r+1}`},r))})}function Ee(e){let{pin:t,setPin:r,showPin:i,setShowPin:a,pinLoading:o,pinError:c,pinInputRef:l,setPinFormRef:u,onSubmit:d,operatorName:f,setOperatorName:m}=e;return(0,j.jsx)(`div`,{className:`connect-page`,children:(0,j.jsxs)(`div`,{className:`connect-content`,children:[(0,j.jsx)(`img`,{src:s,alt:p.productName,className:`connect-logo connect-logo--maxy`}),!p.logoContainsName&&(0,j.jsxs)(`h1`,{className:`connect-title`,children:[`Welcome to `,p.productName]}),(0,j.jsxs)(`p`,{className:`connect-subtitle`,children:[`Tell `,p.productName,` who you are, then choose a PIN.`]}),(0,j.jsxs)(`form`,{ref:u,onSubmit:d,className:`connect-pin-form`,children:[(0,j.jsxs)(`div`,{className:`pin-input-row`,children:[(0,j.jsx)(`input`,{type:`text`,className:`connect-name-input`,placeholder:`Your full name`,value:f,onChange:e=>m(e.target.value),autoComplete:`name`,autoFocus:!0,required:!0,"aria-label":`Your full name`}),(0,j.jsx)(`div`,{style:{width:38,flexShrink:0},"aria-hidden":`true`})]}),(0,j.jsxs)(`div`,{className:`pin-input-row`,children:[(0,j.jsx)(Te,{inputRef:l,value:t,onChange:r,onComplete:()=>{},showPin:i}),(0,j.jsx)(D,{variant:`send`,type:`submit`,disabled:!t||!f.trim(),loading:o,"aria-label":`Set PIN`,children:(0,j.jsxs)(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,j.jsx)(`line`,{x1:`5`,y1:`12`,x2:`19`,y2:`12`}),(0,j.jsx)(`polyline`,{points:`12 5 19 12 12 19`})]})})]}),(0,j.jsx)(n,{checked:i,onChange:()=>a(e=>!e),label:`Show PIN`})]}),c&&(0,j.jsx)(`p`,{className:`admin-pin-error`,children:c})]})})}function De(e){let{pin:t,setPin:r,showPin:i,setShowPin:a,pinLoading:o,pinError:c,pinInputRef:l,onSubmit:u,onChangePin:d,remoteAuthEnabled:f,onSignOutRemote:m}=e;return(0,j.jsxs)(`div`,{className:`connect-page`,children:[f&&m&&(0,j.jsx)(`button`,{type:`button`,className:`connect-signout`,onClick:m,children:`Sign out`}),(0,j.jsxs)(`div`,{className:`connect-content`,children:[(0,j.jsx)(`img`,{src:s,alt:p.productName,className:`connect-logo connect-logo--maxy`}),!p.logoContainsName&&(0,j.jsx)(`h1`,{className:`connect-title`,children:p.productName}),(0,j.jsxs)(`form`,{onSubmit:u,className:`connect-pin-form`,children:[(0,j.jsxs)(`div`,{className:`pin-input-row`,children:[(0,j.jsx)(Te,{inputRef:l,value:t,onChange:r,onComplete:()=>{},showPin:i,autoFocus:!0}),(0,j.jsx)(D,{variant:`send`,type:`submit`,disabled:!t,loading:o,children:(0,j.jsxs)(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,j.jsx)(`line`,{x1:`5`,y1:`12`,x2:`19`,y2:`12`}),(0,j.jsx)(`polyline`,{points:`12 5 19 12 12 19`})]})})]}),(0,j.jsxs)(`div`,{className:`pin-options`,children:[(0,j.jsx)(n,{checked:i,onChange:()=>a(e=>!e),label:`Show PIN`}),(0,j.jsx)(D,{type:`button`,variant:`ghost`,onClick:d,children:`Change PIN`})]})]}),c&&(0,j.jsx)(`p`,{className:`admin-pin-error`,children:c})]})]})}function Oe(e){let{accounts:t,loading:n,error:r,onSelect:i}=e;return(0,j.jsx)(`div`,{className:`connect-page`,children:(0,j.jsxs)(`div`,{className:`connect-content`,children:[(0,j.jsx)(`img`,{src:s,alt:p.productName,className:`connect-logo connect-logo--maxy`}),!p.logoContainsName&&(0,j.jsx)(`h1`,{className:`connect-title`,children:p.productName}),(0,j.jsx)(`p`,{className:`connect-subtitle`,children:`Select an account`}),(0,j.jsx)(`div`,{className:`account-picker-list`,children:t.map(e=>(0,j.jsxs)(`button`,{className:`account-picker-card`,onClick:()=>i(e.accountId),disabled:n,type:`button`,children:[(0,j.jsx)(`span`,{className:`account-picker-name`,children:e.businessName||e.accountId}),(0,j.jsx)(`span`,{className:`account-picker-role`,children:e.role}),n&&(0,j.jsx)(y,{className:`account-picker-spinner`,size:16})]},e.accountId))}),r&&(0,j.jsx)(`p`,{className:`admin-pin-error`,children:r})]})})}function ke(e){let{authPolling:t,setAuthPolling:n,authLoading:r,setAuthLoading:i,pinError:a,setPinError:o,setAppState:c}=e,[l,u]=(0,A.useState)(!1),[d,f]=(0,A.useState)(!1);async function m(){f(!0),o(``);try{let e=await(await fetch(`/api/onboarding/claude-auth`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({action:`launch-browser`})})).json();e.launched?u(!0):e.error&&o(e.error)}catch(e){console.error(`[admin] browser launch error:`,e),o(`Could not launch browser.`)}f(!1)}async function h(){i(!0),o(``);try{let e=await(await fetch(`/api/onboarding/claude-auth`,{method:`POST`})).json();if(e.started){n(!0),u(!0),i(!1);for(let e=0;e<120;e++)if(await new Promise(e=>setTimeout(e,2e3)),(await(await fetch(`/api/onboarding/claude-auth`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({action:`wait`})})).json()).authenticated){await fetch(`/api/onboarding/claude-auth`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({action:`stop`})}),c(`enter-pin`);return}o(`Timed out waiting for sign-in. Try again.`),n(!1)}else e.error&&o(e.error)}catch(e){console.error(`[admin] auth flow error:`,e),o(`Could not start auth flow.`)}i(!1)}async function g(){await fetch(`/api/onboarding/claude-auth`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({action:`stop`})}),n(!1),o(``)}return t||l?(0,j.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,height:`100dvh`,overflow:`auto`},children:[(0,j.jsxs)(`header`,{className:`chat-header`,style:{paddingBottom:`12px`,flexShrink:0,position:`relative`,maxWidth:`680px`,width:`100%`,margin:`0 auto`,padding:`24px 20px 12px`},children:[t?(0,j.jsx)(`button`,{onClick:g,style:{position:`absolute`,top:`12px`,right:`12px`,background:`none`,border:`none`,color:`#999`,fontSize:`13px`,cursor:`pointer`,padding:`4px 8px`},"aria-label":`Cancel`,children:`✕`}):(0,j.jsx)(`button`,{onClick:()=>u(!1),style:{position:`absolute`,top:`12px`,right:`12px`,background:`none`,border:`none`,color:`#999`,fontSize:`13px`,cursor:`pointer`,padding:`4px 8px`},"aria-label":`Close browser`,children:`✕`}),(0,j.jsx)(`img`,{src:`/brand/claude.png`,alt:`Claude`,className:`chat-logo`}),(0,j.jsx)(`h1`,{className:`chat-tagline`,children:`Connect Claude`}),(0,j.jsx)(`p`,{className:`chat-intro`,children:t?`Sign in and authorize in the browser below.`:`Open your email or prepare your accounts, then sign in.`}),!t&&(0,j.jsx)(`div`,{style:{marginTop:`12px`},children:(0,j.jsx)(D,{variant:`primary`,onClick:h,disabled:r,children:r?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(`span`,{className:`spin`,style:{display:`inline-block`},children:`✱`}),` Connecting…`]}):`Sign in to Claude`})})]}),(0,j.jsx)(`div`,{style:{flex:1,display:`flex`,flexDirection:`column`,minHeight:0,gap:`10px`,padding:`0 0 16px`},children:(0,j.jsx)(`iframe`,{src:`/vnc-viewer.html`,style:{flex:1,width:`100%`,minHeight:0,border:`none`,background:`#111`,display:`block`},title:`Claude Sign-in`})}),a&&(0,j.jsx)(`p`,{className:`admin-pin-error`,style:{textAlign:`center`,padding:`0 20px 16px`},children:a})]}):(0,j.jsx)(`div`,{className:`connect-page`,children:(0,j.jsxs)(`div`,{className:`connect-content`,children:[(0,j.jsxs)(`div`,{className:`connect-logos`,children:[(0,j.jsx)(`div`,{className:`connect-logo-wrap`,children:(0,j.jsx)(`img`,{src:`/brand/claude.png`,alt:`Claude`,className:`connect-logo`})}),(0,j.jsx)(`svg`,{className:`connect-arrow`,viewBox:`0 0 48 24`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,children:(0,j.jsx)(`path`,{d:`M0 12h44m0 0l-8-8m8 8l-8 8`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`})}),(0,j.jsxs)(`div`,{className:`connect-logo-wrap`,children:[(0,j.jsx)(`img`,{src:s,alt:p.productName,className:`connect-logo connect-logo--maxy`}),!p.logoContainsName&&(0,j.jsx)(`span`,{className:`connect-logo-label`,children:p.productName})]})]}),(0,j.jsxs)(`h1`,{className:`connect-title`,children:[`Connect Claude to power `,p.productName]}),(0,j.jsx)(`p`,{className:`connect-subtitle`,children:`Sign in with your Anthropic account to get started.`}),(0,j.jsx)(D,{variant:`primary`,onClick:h,disabled:r,children:r?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(`span`,{className:`spin`,style:{display:`inline-block`},children:`✱`}),` Connecting…`]}):`Sign in to Claude`}),(0,j.jsx)(`p`,{style:{marginTop:`6px`,fontSize:`11px`,color:`#999`,maxWidth:`300px`,textAlign:`center`,lineHeight:`1.4`},children:`First time? You may need to sign into your email and Anthropic account in the browser before connecting.`}),(0,j.jsx)(`button`,{onClick:m,disabled:d,style:{marginTop:`12px`,background:`none`,border:`none`,color:`var(--color-primary, #666)`,fontSize:`13px`,cursor:`pointer`,textDecoration:`underline`,textUnderlineOffset:`3px`},children:d?`Launching…`:`Open browser first`}),a&&(0,j.jsx)(`p`,{className:`admin-pin-error`,children:a})]})})}var Ae=`maxy-shell-side-px`;function je(){if(typeof window>`u`)return 0;let e=document.querySelector(`.platform > .artefact`)?.getBoundingClientRect();return e&&e.width>0?Math.round(e.width):0}function Me(e){if(typeof window>`u`)return e;let t=window.innerWidth,n=Math.max(248,t-480-je());return Math.min(Math.max(e,248),n)}function Ne(){if(typeof window>`u`)return 264;try{let e=window.localStorage.getItem(Ae);if(!e)return 264;let t=parseInt(e,10);if(Number.isFinite(t)&&t>=248)return Me(t)}catch{}return 264}function Pe({targetSelector:e=`.platform`}){let t=(0,A.useRef)(null),[n,r]=(0,A.useState)(()=>Ne()),i=(0,A.useRef)(n);(0,A.useEffect)(()=>{let t=document.querySelector(e);!t||!(t instanceof HTMLElement)||(t.style.setProperty(`--side-px`,`${n}px`),i.current=n)},[n,e]);let a=(0,A.useCallback)(()=>{r(e=>{let t=Me(e);return t===e?e:t})},[]);(0,A.useEffect)(()=>{a(),window.addEventListener(`resize`,a);let t=document.querySelector(e),n=null;return t instanceof HTMLElement&&(n=new MutationObserver(a),n.observe(t,{attributes:!0,attributeFilter:[`data-artefact`,`class`]})),()=>{window.removeEventListener(`resize`,a),n?.disconnect()}},[a,e]);let o=e=>{e.preventDefault();let n=t.current;if(!n)return;n.setPointerCapture(e.pointerId),n.classList.add(`dragging`);let a=!1,o=e=>{a=!0,r(Me(Math.round(e.clientX)))},s=()=>{if(n.releasePointerCapture(e.pointerId),n.classList.remove(`dragging`),window.removeEventListener(`pointermove`,o),window.removeEventListener(`pointerup`,s),!a)return;let t=i.current;try{window.localStorage.setItem(Ae,String(t))}catch{}console.info(`[admin-ui] sidebar-resize px=${t}`)};window.addEventListener(`pointermove`,o),window.addEventListener(`pointerup`,s)},s=()=>{let e=Me(264);r(e);try{window.localStorage.removeItem(Ae)}catch{}console.info(`[admin-ui] sidebar-resize px=${e}`)};return(0,j.jsx)(`div`,{ref:t,className:`side-resize-handle`,role:`separator`,"aria-orientation":`vertical`,"aria-label":`Resize sidebar`,onPointerDown:o,onDoubleClick:s})}var Fe=`maxy-shell-artefact-px`;function Ie(){if(typeof window>`u`)return 320;let e=window.innerWidth,t=document.querySelector(`.platform > .side`)?.getBoundingClientRect(),n=t?t.right:Math.round(e*.3);return Re(Math.round((e-n)*(2/3)))}function Le(){if(typeof window>`u`)return 320;try{let e=window.localStorage.getItem(Fe);if(!e)return Ie();let t=parseInt(e,10);if(Number.isFinite(t)&&t>=320)return t}catch{}return Ie()}function Re(e){if(typeof window>`u`)return e;let t=window.innerWidth,n=document.querySelector(`.platform > .side`)?.getBoundingClientRect(),r=n?n.right:Math.round(t*.3),i=Math.max(320,t-r-480);return Math.min(Math.max(e,320),i)}function ze({targetSelector:e=`.platform`}){let t=(0,A.useRef)(null),[n,r]=(0,A.useState)(()=>Le()),i=(0,A.useRef)(n);(0,A.useEffect)(()=>{let t=document.querySelector(e);!t||!(t instanceof HTMLElement)||(t.style.setProperty(`--artefact-px`,`${n}px`),i.current=n)},[n,e]);let a=(0,A.useCallback)(()=>{r(e=>{let t=Re(e);return t===e?e:t})},[]);(0,A.useEffect)(()=>(a(),window.addEventListener(`resize`,a),()=>window.removeEventListener(`resize`,a)),[a]);let o=e=>{e.preventDefault();let n=t.current;if(!n)return;n.setPointerCapture(e.pointerId),n.classList.add(`dragging`);let a=!1,o=e=>{a=!0,r(Re(Math.round(window.innerWidth-e.clientX)))},s=()=>{if(n.releasePointerCapture(e.pointerId),n.classList.remove(`dragging`),window.removeEventListener(`pointermove`,o),window.removeEventListener(`pointerup`,s),!a)return;let t=i.current;try{window.localStorage.setItem(Fe,String(t))}catch{}console.info(`[admin-ui] artefact-resize px=${t}`)};window.addEventListener(`pointermove`,o),window.addEventListener(`pointerup`,s)},s=()=>{let e=Ie();r(e);try{window.localStorage.removeItem(Fe)}catch{}console.info(`[admin-ui] artefact-resize px=${e}`)};return(0,j.jsx)(`div`,{ref:t,className:`art-resize-handle`,role:`separator`,"aria-orientation":`vertical`,"aria-label":`Resize artefact pane`,onPointerDown:o,onDoubleClick:s})}function Be(e){if(!e)return`—`;let t=Date.parse(e);if(Number.isNaN(t))return e;let n=Date.now()-t,r=Math.round(n/1e3);if(r<60)return`${r}s ago`;let i=Math.round(r/60);if(i<60)return`${i}m ago`;let a=Math.round(i/60);return a<24?`${a}h ago`:`${Math.round(a/24)}d ago`}function Ve(e){return e==null?`—`:e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`}function He({sessionId:e,cacheKey:t,onRenamed:n,onClose:a,recentsActions:o,liveRow:s}){let[c,l]=(0,A.useState)(null),[u,d]=(0,A.useState)(!0),[g,b]=(0,A.useState)(null),[x,C]=(0,A.useState)(!1),[ee,w]=(0,A.useState)(!1),[te,ne]=(0,A.useState)(``),[re,ie]=(0,A.useState)(!1),[E,D]=(0,A.useState)(null),[O,ae]=(0,A.useState)(null),[oe,se]=(0,A.useState)(null),[ce,le]=(0,A.useState)(!1),ue=(0,A.useRef)(null),fe=h(t,o,`pane`),{isPinned:me,togglePin:ge}=S(p.hostname),_e=(0,A.useRef)(s?.status),ve=s?.status,ye=(0,A.useCallback)(async()=>{d(!0),b(null);try{let n=await fetch(`/api/admin/claude-sessions/${encodeURIComponent(e)}/meta?session_key=${encodeURIComponent(t)}`);if(n.status===404){let t=_e.current??`alive`;console.info(`[admin-ui] sidebar-meta-pane-reconcile sessionId=${e.slice(0,8)} from=${t} to=gone trigger=404`),C(!0),l(null);return}if(!n.ok){let e=await n.text().catch(()=>``);throw Error(`meta returned ${n.status} ${e.slice(0,200)}`)}let r=await n.json();l(r),ne(r.displayName),C(!1)}catch(e){b(e instanceof Error?e.message:String(e)),console.error(`[admin-ui] sidebar-meta-pane fetch failed:`,e)}finally{d(!1)}},[e,t]);(0,A.useEffect)(()=>{console.info(`[admin-ui] sidebar-meta-pane sessionId=${e.slice(0,8)}`),ye()},[ye,e]),(0,A.useEffect)(()=>{let t=_e.current;if(_e.current=ve,!(t===void 0&&ve!==void 0)&&t!==ve){if(t===`alive`&&ve===`ended`){console.info(`[admin-ui] sidebar-meta-pane-reconcile sessionId=${e.slice(0,8)} from=alive to=ended trigger=list-flip`),ye();return}if(t!==void 0&&ve===void 0){console.info(`[admin-ui] sidebar-meta-pane-reconcile sessionId=${e.slice(0,8)} from=${t} to=gone trigger=list-flip`),ye();return}}},[ve,ye,e]),(0,A.useEffect)(()=>{if(!ce)return;let e=e=>{ue.current&&!ue.current.contains(e.target)&&le(!1)},t=e=>{e.key===`Escape`&&le(!1)};return document.addEventListener(`mousedown`,e),window.addEventListener(`keydown`,t),()=>{document.removeEventListener(`mousedown`,e),window.removeEventListener(`keydown`,t)}},[ce]);let be=(0,A.useCallback)(async()=>{if(!c)return;let r=te.trim();if(!r||r===c.displayName){w(!1);return}ie(!0);try{let i=await fetch(`/api/admin/claude-sessions/${encodeURIComponent(e)}?session_key=${encodeURIComponent(t)}`,{method:`PATCH`,headers:{"content-type":`application/json`},body:JSON.stringify({displayName:r})});if(!i.ok){let e=await i.text().catch(()=>``);throw Error(`PATCH ${i.status} ${e.slice(0,200)}`)}l({...c,displayName:r}),w(!1),n()}catch(e){console.error(`[admin-ui] sidebar-meta-pane rename failed:`,e),b(e instanceof Error?e.message:String(e))}finally{ie(!1)}},[c,te,e,t,n]),xe=(0,A.useCallback)(async(e,t)=>{D(await T(t)?`Copied ${e}`:`Copy failed`),window.setTimeout(()=>D(null),1500)},[]),we=(0,A.useCallback)(async(e,t,n)=>{ae(null);let r=e===`resume`?await fe.resume(t):e===`end`?await fe.end(t):e===`purge`?await fe.purge(t):e===`archive`?await fe.archive(t):await fe.unarchive(t);if(!r.ok){ae(r.error??`action failed`);return}n&&a()},[fe,a]);if(x&&s===void 0)return(0,j.jsxs)(`main`,{className:`session-meta-pane`,style:{padding:24,display:`flex`,flexDirection:`column`,gap:12},children:[(0,j.jsx)(`p`,{style:{margin:0,fontSize:13,color:`var(--text-secondary)`},children:`Session ended without a transcript. Close this pane.`}),(0,j.jsx)(`div`,{children:(0,j.jsxs)(`button`,{type:`button`,className:`action-btn`,onClick:a,children:[(0,j.jsx)(v,{size:14}),` Close`]})})]});if(u&&!c)return(0,j.jsx)(`main`,{className:`session-meta-pane`,style:{padding:24},children:(0,j.jsx)(y,{size:16,className:`spinning`})});if(g&&!c)return(0,j.jsxs)(`main`,{className:`session-meta-pane`,style:{padding:24},children:[(0,j.jsx)(`p`,{style:{color:`var(--text-tertiary)`},children:g}),(0,j.jsx)(`button`,{type:`button`,className:`action-btn`,onClick:()=>void ye(),children:`Retry`})]});if(!c)return null;let Te=c.sessionId,Ee=c.status===`alive`,De=me(c.sessionId),Oe=fe.inFlight;return(0,j.jsxs)(`main`,{className:`session-meta-pane`,style:{padding:24,display:`flex`,flexDirection:`column`,gap:20,overflowY:`auto`},children:[(0,j.jsxs)(`header`,{style:{display:`flex`,alignItems:`center`,gap:12},children:[ee?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(`input`,{type:`text`,value:te,onChange:e=>ne(e.target.value),maxLength:256,autoFocus:!0,style:{fontSize:22,fontWeight:600,flex:1,padding:`4px 8px`},onKeyDown:e=>{e.key===`Enter`&&be(),e.key===`Escape`&&(ne(c.displayName),w(!1))}}),(0,j.jsx)(`button`,{type:`button`,className:`icon-btn`,"aria-label":`Confirm rename`,disabled:re,onClick:()=>void be(),children:re?(0,j.jsx)(y,{size:16,className:`spinning`}):(0,j.jsx)(i,{size:16})}),(0,j.jsx)(`button`,{type:`button`,className:`icon-btn`,"aria-label":`Cancel rename`,onClick:()=>{ne(c.displayName),w(!1)},children:(0,j.jsx)(v,{size:16})})]}):(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(`h2`,{style:{fontSize:22,fontWeight:600,margin:0,flex:1},children:c.displayName}),(0,j.jsx)(`button`,{type:`button`,className:`icon-btn`,"aria-label":`Rename`,onClick:()=>w(!0),children:(0,j.jsx)(Se,{size:16})})]}),(0,j.jsx)(`button`,{type:`button`,className:`icon-btn`,"aria-label":`Close pane`,onClick:a,children:(0,j.jsx)(v,{size:18})})]}),(0,j.jsx)(`section`,{children:(0,j.jsxs)(`dl`,{className:`meta-dl`,children:[(0,j.jsx)(`dt`,{children:`Status`}),(0,j.jsx)(`dd`,{children:Ee?`alive · pid ${c.pid??`?`}`:`ended`}),(0,j.jsx)(`dt`,{children:`sessionId`}),(0,j.jsxs)(`dd`,{"data-mono":!0,children:[(0,j.jsx)(`span`,{children:Te}),(0,j.jsx)(`button`,{type:`button`,className:`icon-btn`,"aria-label":`Copy sessionId`,onClick:()=>void xe(`id`,Te),children:(0,j.jsx)(k,{size:12})})]}),(0,j.jsx)(`dt`,{children:`Started at`}),(0,j.jsxs)(`dd`,{children:[c.startedAt,` `,(0,j.jsxs)(`span`,{className:`text-tertiary`,children:[`(`,Be(c.startedAt),`)`]})]}),(0,j.jsx)(`dt`,{children:`Last message`}),(0,j.jsx)(`dd`,{children:c.lastMessageAt?(0,j.jsxs)(j.Fragment,{children:[c.lastMessageAt,` `,(0,j.jsxs)(`span`,{className:`text-tertiary`,children:[`(`,Be(c.lastMessageAt),`)`]})]}):`—`}),(0,j.jsx)(`dt`,{children:`Turns`}),(0,j.jsxs)(`dd`,{children:[c.turnCount,c.capped?(0,j.jsx)(`span`,{className:`text-tertiary`,children:` (≥, JSONL exceeds tail-read cap)`}):null]}),(0,j.jsx)(`dt`,{children:`JSONL size`}),(0,j.jsx)(`dd`,{children:Ve(c.sizeBytes)}),(0,j.jsx)(`dt`,{children:`JSONL path`}),(0,j.jsxs)(`dd`,{"data-mono":!0,children:[(0,j.jsx)(`span`,{children:c.jsonlPath??`—`}),c.jsonlPath&&(0,j.jsx)(`button`,{type:`button`,className:`icon-btn`,"aria-label":`Copy JSONL path`,onClick:()=>void xe(`path`,c.jsonlPath),children:(0,j.jsx)(k,{size:12})})]}),Ee&&(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(`dt`,{children:`Session URL`}),(0,j.jsxs)(`dd`,{"data-mono":!0,children:[(0,j.jsx)(`span`,{children:c.url??`—`}),c.url&&(0,j.jsx)(`button`,{type:`button`,className:`icon-btn`,"aria-label":`Copy URL`,onClick:()=>void xe(`URL`,c.url),children:(0,j.jsx)(k,{size:12})})]}),(0,j.jsx)(`dt`,{children:`Channel`}),(0,j.jsx)(`dd`,{children:c.channel??`—`}),(0,j.jsx)(`dt`,{children:`Role`}),(0,j.jsx)(`dd`,{children:c.role??`—`}),(0,j.jsx)(`dt`,{children:`senderId`}),(0,j.jsx)(`dd`,{"data-mono":!0,children:(0,j.jsx)(`span`,{children:c.senderId||`—`})})]})]})}),(()=>{let e=[];return Ee&&c.url&&e.push((0,j.jsxs)(`button`,{type:`button`,className:`action-btn`,onClick:()=>window.open(c.url,`_blank`,`noopener,noreferrer`),children:[(0,j.jsx)(_,{size:14}),` Open in new tab`]},`open-tab`)),c.jsonlPath&&e.push((0,j.jsxs)(`a`,{className:`action-btn`,href:`vscode://file/${c.jsonlPath}`,title:`Open JSONL in VS Code`,children:[(0,j.jsx)(m,{size:14}),` Open JSONL in editor`]},`open-jsonl`)),Ee||e.push((0,j.jsxs)(`button`,{type:`button`,className:`action-btn`,"data-variant":`primary`,disabled:Oe===`resume`,onClick:()=>void we(`resume`,c.sessionId,!1),children:[Oe===`resume`?(0,j.jsx)(y,{size:14,className:`spinning`}):(0,j.jsx)(r,{size:14}),` Resume`]},`resume`)),e.push((0,j.jsxs)(`button`,{type:`button`,className:`action-btn`,onClick:()=>w(!0),children:[(0,j.jsx)(Se,{size:14}),` Rename`]},`rename`),(0,j.jsxs)(`button`,{type:`button`,className:`action-btn`,"data-active":De?`true`:void 0,onClick:()=>ge(c.sessionId),children:[(0,j.jsx)(Ce,{size:14}),` `,De?`Unpin`:`Pin`]},`pin`),(0,j.jsxs)(`button`,{type:`button`,className:`action-btn`,disabled:Oe===`archive`,title:Ee?`Manager will refuse with 409 — end the session first`:void 0,onClick:()=>void we(`archive`,c.sessionId,!Ee),children:[Oe===`archive`?(0,j.jsx)(y,{size:14,className:`spinning`}):(0,j.jsx)(de,{size:14}),` Archive`]},`archive`)),e.push(Ee?(0,j.jsxs)(`button`,{type:`button`,className:`action-btn`,"data-variant":`danger`,disabled:Oe===`end`,onClick:()=>se({action:`end`,sessionId:c.sessionId,displayName:c.displayName}),children:[(0,j.jsx)(pe,{size:14}),` End session`]},`end`):(0,j.jsxs)(`button`,{type:`button`,className:`action-btn`,"data-variant":`danger`,disabled:Oe===`purge`,onClick:()=>se({action:`purge`,sessionId:c.sessionId,displayName:c.displayName}),children:[(0,j.jsx)(f,{size:14}),` Purge JSONL`]},`purge`)),(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(`section`,{className:`action-bar`,children:e}),(0,j.jsxs)(`section`,{className:`session-actions-overflow`,ref:ue,children:[(0,j.jsx)(`button`,{type:`button`,className:`session-actions-overflow__trigger`,"aria-label":`Actions`,"aria-haspopup":`menu`,"aria-expanded":ce,onClick:()=>{le(e=>{let t=!e;return t&&console.info(`[admin-ui] pane-actions-overflow-open sessionId=${c.sessionId.slice(0,8)}`),t})},children:(0,j.jsx)(he,{size:14})}),ce&&(0,j.jsx)(`div`,{className:`overflow-popover`,role:`menu`,onClick:()=>le(!1),children:e})]})]})})(),E&&(0,j.jsx)(`div`,{style:{color:`var(--text-tertiary)`,fontSize:12},children:E}),O&&(0,j.jsx)(`div`,{style:{color:`var(--text-tertiary)`,fontSize:12},children:O}),g&&(0,j.jsx)(`div`,{style:{color:`var(--text-tertiary)`,fontSize:12},children:g}),oe&&(0,j.jsx)(Ue,{confirm:oe,busy:Oe===oe.action,onCancel:()=>se(null),onConfirm:async()=>{await we(oe.action,oe.sessionId,oe.action===`purge`),se(null)}})]})}function Ue({confirm:e,busy:t,onCancel:n,onConfirm:r}){let i=e.action===`end`?`End live session?`:`Purge session JSONL?`,a=e.action===`end`?`This kills the PTY for ${e.displayName}. The JSONL is kept on disk and can be resumed later.`:`This hard-deletes the transcript and sidecar for ${e.displayName}. The action cannot be undone.`,o=e.action===`end`?`End session`:`Purge`;return(0,j.jsx)(`div`,{role:`dialog`,"aria-modal":`true`,className:`modal-overlay`,onClick:e=>{e.target===e.currentTarget&&!t&&n()},children:(0,j.jsxs)(`div`,{className:`modal-card`,children:[(0,j.jsx)(`h3`,{style:{margin:0,marginBottom:8,fontSize:16,fontWeight:600},children:i}),(0,j.jsx)(`p`,{style:{margin:0,marginBottom:12,fontSize:13},children:a}),(0,j.jsxs)(`div`,{className:`modal-action-row`,children:[(0,j.jsx)(`button`,{type:`button`,className:`modal-action-btn`,disabled:t,onClick:n,children:`Cancel`}),(0,j.jsx)(`button`,{type:`button`,className:`modal-action-btn`,"data-variant":`danger`,disabled:t,onClick:()=>r(),children:t?(0,j.jsx)(y,{size:13,className:`spinning`}):o})]})]})})}function We({onOpen:e}){return(0,j.jsx)(`footer`,{className:`admin-footer`,children:(0,j.jsxs)(`div`,{className:`powered-by`,role:`button`,tabIndex:0,onClick:e,onKeyDown:t=>{(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),e())},"aria-label":`Powered by Claude Code — show details`,children:[(0,j.jsx)(`img`,{src:`/brand/claude.png`,alt:`Claude`,className:`powered-by-icon`}),(0,j.jsx)(`span`,{children:`Powered by Claude Code`})]})})}var Ge=t((e=>{var t=o();function n(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var r=typeof Object.is==`function`?Object.is:n,i=t.useState,a=t.useEffect,s=t.useLayoutEffect,c=t.useDebugValue;function l(e,t){var n=t(),r=i({inst:{value:n,getSnapshot:t}}),o=r[0].inst,l=r[1];return s(function(){o.value=n,o.getSnapshot=t,u(o)&&l({inst:o})},[e,n,t]),a(function(){return u(o)&&l({inst:o}),e(function(){u(o)&&l({inst:o})})},[e]),c(n),n}function u(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!r(e,n)}catch{return!0}}function d(e,t){return t()}var f=typeof window>`u`||window.document===void 0||window.document.createElement===void 0?d:l;e.useSyncExternalStore=t.useSyncExternalStore===void 0?f:t.useSyncExternalStore})),Ke=t(((e,t)=>{t.exports=Ge()})),qe=Ke(),Je=e(l(),1);function M(e){this.content=e}M.prototype={constructor:M,find:function(e){for(var t=0;t<this.content.length;t+=2)if(this.content[t]===e)return t;return-1},get:function(e){var t=this.find(e);return t==-1?void 0:this.content[t+1]},update:function(e,t,n){var r=n&&n!=e?this.remove(n):this,i=r.find(e),a=r.content.slice();return i==-1?a.push(n||e,t):(a[i+1]=t,n&&(a[i]=n)),new M(a)},remove:function(e){var t=this.find(e);if(t==-1)return this;var n=this.content.slice();return n.splice(t,2),new M(n)},addToStart:function(e,t){return new M([e,t].concat(this.remove(e).content))},addToEnd:function(e,t){var n=this.remove(e).content.slice();return n.push(e,t),new M(n)},addBefore:function(e,t,n){var r=this.remove(t),i=r.content.slice(),a=r.find(e);return i.splice(a==-1?i.length:a,0,t,n),new M(i)},forEach:function(e){for(var t=0;t<this.content.length;t+=2)e(this.content[t],this.content[t+1])},prepend:function(e){return e=M.from(e),e.size?new M(e.content.concat(this.subtract(e).content)):this},append:function(e){return e=M.from(e),e.size?new M(this.subtract(e).content.concat(e.content)):this},subtract:function(e){var t=this;e=M.from(e);for(var n=0;n<e.content.length;n+=2)t=t.remove(e.content[n]);return t},toObject:function(){var e={};return this.forEach(function(t,n){e[t]=n}),e},get size(){return this.content.length>>1}},M.from=function(e){if(e instanceof M)return e;var t=[];if(e)for(var n in e)t.push(n,e[n]);return new M(t)};function Ye(e,t,n){for(let r=0;;r++){if(r==e.childCount||r==t.childCount)return e.childCount==t.childCount?null:n;let i=e.child(r),a=t.child(r);if(i==a){n+=i.nodeSize;continue}if(!i.sameMarkup(a))return n;if(i.isText&&i.text!=a.text){for(let e=0;i.text[e]==a.text[e];e++)n++;return n}if(i.content.size||a.content.size){let e=Ye(i.content,a.content,n+1);if(e!=null)return e}n+=i.nodeSize}}function Xe(e,t,n,r){for(let i=e.childCount,a=t.childCount;;){if(i==0||a==0)return i==a?null:{a:n,b:r};let o=e.child(--i),s=t.child(--a),c=o.nodeSize;if(o==s){n-=c,r-=c;continue}if(!o.sameMarkup(s))return{a:n,b:r};if(o.isText&&o.text!=s.text){let e=0,t=Math.min(o.text.length,s.text.length);for(;e<t&&o.text[o.text.length-e-1]==s.text[s.text.length-e-1];)e++,n--,r--;return{a:n,b:r}}if(o.content.size||s.content.size){let e=Xe(o.content,s.content,n-1,r-1);if(e)return e}n-=c,r-=c}}var N=class e{constructor(e,t){if(this.content=e,this.size=t||0,t==null)for(let t=0;t<e.length;t++)this.size+=e[t].nodeSize}nodesBetween(e,t,n,r=0,i){for(let a=0,o=0;o<t;a++){let s=this.content[a],c=o+s.nodeSize;if(c>e&&n(s,r+o,i||null,a)!==!1&&s.content.size){let i=o+1;s.nodesBetween(Math.max(0,e-i),Math.min(s.content.size,t-i),n,r+i)}o=c}}descendants(e){this.nodesBetween(0,this.size,e)}textBetween(e,t,n,r){let i=``,a=!0;return this.nodesBetween(e,t,(o,s)=>{let c=o.isText?o.text.slice(Math.max(e,s)-s,t-s):o.isLeaf?r?typeof r==`function`?r(o):r:o.type.spec.leafText?o.type.spec.leafText(o):``:``;o.isBlock&&(o.isLeaf&&c||o.isTextblock)&&n&&(a?a=!1:i+=n),i+=c},0),i}append(t){if(!t.size)return this;if(!this.size)return t;let n=this.lastChild,r=t.firstChild,i=this.content.slice(),a=0;for(n.isText&&n.sameMarkup(r)&&(i[i.length-1]=n.withText(n.text+r.text),a=1);a<t.content.length;a++)i.push(t.content[a]);return new e(i,this.size+t.size)}cut(t,n=this.size){if(t==0&&n==this.size)return this;let r=[],i=0;if(n>t)for(let e=0,a=0;a<n;e++){let o=this.content[e],s=a+o.nodeSize;s>t&&((a<t||s>n)&&(o=o.isText?o.cut(Math.max(0,t-a),Math.min(o.text.length,n-a)):o.cut(Math.max(0,t-a-1),Math.min(o.content.size,n-a-1))),r.push(o),i+=o.nodeSize),a=s}return new e(r,i)}cutByIndex(t,n){return t==n?e.empty:t==0&&n==this.content.length?this:new e(this.content.slice(t,n))}replaceChild(t,n){let r=this.content[t];if(r==n)return this;let i=this.content.slice(),a=this.size+n.nodeSize-r.nodeSize;return i[t]=n,new e(i,a)}addToStart(t){return new e([t].concat(this.content),this.size+t.nodeSize)}addToEnd(t){return new e(this.content.concat(t),this.size+t.nodeSize)}eq(e){if(this.content.length!=e.content.length)return!1;for(let t=0;t<this.content.length;t++)if(!this.content[t].eq(e.content[t]))return!1;return!0}get firstChild(){return this.content.length?this.content[0]:null}get lastChild(){return this.content.length?this.content[this.content.length-1]:null}get childCount(){return this.content.length}child(e){let t=this.content[e];if(!t)throw RangeError(`Index `+e+` out of range for `+this);return t}maybeChild(e){return this.content[e]||null}forEach(e){for(let t=0,n=0;t<this.content.length;t++){let r=this.content[t];e(r,n,t),n+=r.nodeSize}}findDiffStart(e,t=0){return Ye(this,e,t)}findDiffEnd(e,t=this.size,n=e.size){return Xe(this,e,t,n)}findIndex(e){if(e==0)return Qe(0,e);if(e==this.size)return Qe(this.content.length,e);if(e>this.size||e<0)throw RangeError(`Position ${e} outside of fragment (${this})`);for(let t=0,n=0;;t++){let r=this.child(t),i=n+r.nodeSize;if(i>=e)return i==e?Qe(t+1,i):Qe(t,n);n=i}}toString(){return`<`+this.toStringInner()+`>`}toStringInner(){return this.content.join(`, `)}toJSON(){return this.content.length?this.content.map(e=>e.toJSON()):null}static fromJSON(t,n){if(!n)return e.empty;if(!Array.isArray(n))throw RangeError(`Invalid input for Fragment.fromJSON`);return new e(n.map(t.nodeFromJSON))}static fromArray(t){if(!t.length)return e.empty;let n,r=0;for(let e=0;e<t.length;e++){let i=t[e];r+=i.nodeSize,e&&i.isText&&t[e-1].sameMarkup(i)?(n||=t.slice(0,e),n[n.length-1]=i.withText(n[n.length-1].text+i.text)):n&&n.push(i)}return new e(n||t,r)}static from(t){if(!t)return e.empty;if(t instanceof e)return t;if(Array.isArray(t))return this.fromArray(t);if(t.attrs)return new e([t],t.nodeSize);throw RangeError(`Can not convert `+t+` to a Fragment`+(t.nodesBetween?` (looks like multiple versions of prosemirror-model were loaded)`:``))}};N.empty=new N([],0);var Ze={index:0,offset:0};function Qe(e,t){return Ze.index=e,Ze.offset=t,Ze}function $e(e,t){if(e===t)return!0;if(!(e&&typeof e==`object`)||!(t&&typeof t==`object`))return!1;let n=Array.isArray(e);if(Array.isArray(t)!=n)return!1;if(n){if(e.length!=t.length)return!1;for(let n=0;n<e.length;n++)if(!$e(e[n],t[n]))return!1}else{for(let n in e)if(!(n in t)||!$e(e[n],t[n]))return!1;for(let n in t)if(!(n in e))return!1}return!0}var P=class e{constructor(e,t){this.type=e,this.attrs=t}addToSet(e){let t,n=!1;for(let r=0;r<e.length;r++){let i=e[r];if(this.eq(i))return e;if(this.type.excludes(i.type))t||=e.slice(0,r);else if(i.type.excludes(this.type))return e;else !n&&i.type.rank>this.type.rank&&(t||=e.slice(0,r),t.push(this),n=!0),t&&t.push(i)}return t||=e.slice(),n||t.push(this),t}removeFromSet(e){for(let t=0;t<e.length;t++)if(this.eq(e[t]))return e.slice(0,t).concat(e.slice(t+1));return e}isInSet(e){for(let t=0;t<e.length;t++)if(this.eq(e[t]))return!0;return!1}eq(e){return this==e||this.type==e.type&&$e(this.attrs,e.attrs)}toJSON(){let e={type:this.type.name};for(let t in this.attrs){e.attrs=this.attrs;break}return e}static fromJSON(e,t){if(!t)throw RangeError(`Invalid input for Mark.fromJSON`);let n=e.marks[t.type];if(!n)throw RangeError(`There is no mark type ${t.type} in this schema`);let r=n.create(t.attrs);return n.checkAttrs(r.attrs),r}static sameSet(e,t){if(e==t)return!0;if(e.length!=t.length)return!1;for(let n=0;n<e.length;n++)if(!e[n].eq(t[n]))return!1;return!0}static setFrom(t){if(!t||Array.isArray(t)&&t.length==0)return e.none;if(t instanceof e)return[t];let n=t.slice();return n.sort((e,t)=>e.type.rank-t.type.rank),n}};P.none=[];var et=class extends Error{},F=class e{constructor(e,t,n){this.content=e,this.openStart=t,this.openEnd=n}get size(){return this.content.size-this.openStart-this.openEnd}insertAt(t,n){let r=nt(this.content,t+this.openStart,n);return r&&new e(r,this.openStart,this.openEnd)}removeBetween(t,n){return new e(tt(this.content,t+this.openStart,n+this.openStart),this.openStart,this.openEnd)}eq(e){return this.content.eq(e.content)&&this.openStart==e.openStart&&this.openEnd==e.openEnd}toString(){return this.content+`(`+this.openStart+`,`+this.openEnd+`)`}toJSON(){if(!this.content.size)return null;let e={content:this.content.toJSON()};return this.openStart>0&&(e.openStart=this.openStart),this.openEnd>0&&(e.openEnd=this.openEnd),e}static fromJSON(t,n){if(!n)return e.empty;let r=n.openStart||0,i=n.openEnd||0;if(typeof r!=`number`||typeof i!=`number`)throw RangeError(`Invalid input for Slice.fromJSON`);return new e(N.fromJSON(t,n.content),r,i)}static maxOpen(t,n=!0){let r=0,i=0;for(let e=t.firstChild;e&&!e.isLeaf&&(n||!e.type.spec.isolating);e=e.firstChild)r++;for(let e=t.lastChild;e&&!e.isLeaf&&(n||!e.type.spec.isolating);e=e.lastChild)i++;return new e(t,r,i)}};F.empty=new F(N.empty,0,0);function tt(e,t,n){let{index:r,offset:i}=e.findIndex(t),a=e.maybeChild(r),{index:o,offset:s}=e.findIndex(n);if(i==t||a.isText){if(s!=n&&!e.child(o).isText)throw RangeError(`Removing non-flat range`);return e.cut(0,t).append(e.cut(n))}if(r!=o)throw RangeError(`Removing non-flat range`);return e.replaceChild(r,a.copy(tt(a.content,t-i-1,n-i-1)))}function nt(e,t,n,r){let{index:i,offset:a}=e.findIndex(t),o=e.maybeChild(i);if(a==t||o.isText)return r&&!r.canReplace(i,i,n)?null:e.cut(0,t).append(n).append(e.cut(t));let s=nt(o.content,t-a-1,n,o);return s&&e.replaceChild(i,o.copy(s))}function rt(e,t,n){if(n.openStart>e.depth)throw new et(`Inserted content deeper than insertion position`);if(e.depth-n.openStart!=t.depth-n.openEnd)throw new et(`Inconsistent open depths`);return it(e,t,n,0)}function it(e,t,n,r){let i=e.index(r),a=e.node(r);if(i==t.index(r)&&r<e.depth-n.openStart){let o=it(e,t,n,r+1);return a.copy(a.content.replaceChild(i,o))}else if(!n.content.size)return lt(a,dt(e,t,r));else if(!n.openStart&&!n.openEnd&&e.depth==r&&t.depth==r){let r=e.parent,i=r.content;return lt(r,i.cut(0,e.parentOffset).append(n.content).append(i.cut(t.parentOffset)))}else{let{start:i,end:o}=ft(n,e);return lt(a,ut(e,i,o,t,r))}}function at(e,t){if(!t.type.compatibleContent(e.type))throw new et(`Cannot join `+t.type.name+` onto `+e.type.name)}function ot(e,t,n){let r=e.node(n);return at(r,t.node(n)),r}function st(e,t){let n=t.length-1;n>=0&&e.isText&&e.sameMarkup(t[n])?t[n]=e.withText(t[n].text+e.text):t.push(e)}function ct(e,t,n,r){let i=(t||e).node(n),a=0,o=t?t.index(n):i.childCount;e&&(a=e.index(n),e.depth>n?a++:e.textOffset&&(st(e.nodeAfter,r),a++));for(let e=a;e<o;e++)st(i.child(e),r);t&&t.depth==n&&t.textOffset&&st(t.nodeBefore,r)}function lt(e,t){return e.type.checkContent(t),e.copy(t)}function ut(e,t,n,r,i){let a=e.depth>i&&ot(e,t,i+1),o=r.depth>i&&ot(n,r,i+1),s=[];return ct(null,e,i,s),a&&o&&t.index(i)==n.index(i)?(at(a,o),st(lt(a,ut(e,t,n,r,i+1)),s)):(a&&st(lt(a,dt(e,t,i+1)),s),ct(t,n,i,s),o&&st(lt(o,dt(n,r,i+1)),s)),ct(r,null,i,s),new N(s)}function dt(e,t,n){let r=[];return ct(null,e,n,r),e.depth>n&&st(lt(ot(e,t,n+1),dt(e,t,n+1)),r),ct(t,null,n,r),new N(r)}function ft(e,t){let n=t.depth-e.openStart,r=t.node(n).copy(e.content);for(let e=n-1;e>=0;e--)r=t.node(e).copy(N.from(r));return{start:r.resolveNoCache(e.openStart+n),end:r.resolveNoCache(r.content.size-e.openEnd-n)}}var pt=class e{constructor(e,t,n){this.pos=e,this.path=t,this.parentOffset=n,this.depth=t.length/3-1}resolveDepth(e){return e==null?this.depth:e<0?this.depth+e:e}get parent(){return this.node(this.depth)}get doc(){return this.node(0)}node(e){return this.path[this.resolveDepth(e)*3]}index(e){return this.path[this.resolveDepth(e)*3+1]}indexAfter(e){return e=this.resolveDepth(e),this.index(e)+(e==this.depth&&!this.textOffset?0:1)}start(e){return e=this.resolveDepth(e),e==0?0:this.path[e*3-1]+1}end(e){return e=this.resolveDepth(e),this.start(e)+this.node(e).content.size}before(e){if(e=this.resolveDepth(e),!e)throw RangeError(`There is no position before the top-level node`);return e==this.depth+1?this.pos:this.path[e*3-1]}after(e){if(e=this.resolveDepth(e),!e)throw RangeError(`There is no position after the top-level node`);return e==this.depth+1?this.pos:this.path[e*3-1]+this.path[e*3].nodeSize}get textOffset(){return this.pos-this.path[this.path.length-1]}get nodeAfter(){let e=this.parent,t=this.index(this.depth);if(t==e.childCount)return null;let n=this.pos-this.path[this.path.length-1],r=e.child(t);return n?e.child(t).cut(n):r}get nodeBefore(){let e=this.index(this.depth),t=this.pos-this.path[this.path.length-1];return t?this.parent.child(e).cut(0,t):e==0?null:this.parent.child(e-1)}posAtIndex(e,t){t=this.resolveDepth(t);let n=this.path[t*3],r=t==0?0:this.path[t*3-1]+1;for(let t=0;t<e;t++)r+=n.child(t).nodeSize;return r}marks(){let e=this.parent,t=this.index();if(e.content.size==0)return P.none;if(this.textOffset)return e.child(t).marks;let n=e.maybeChild(t-1),r=e.maybeChild(t);if(!n){let e=n;n=r,r=e}let i=n.marks;for(var a=0;a<i.length;a++)i[a].type.spec.inclusive===!1&&(!r||!i[a].isInSet(r.marks))&&(i=i[a--].removeFromSet(i));return i}marksAcross(e){let t=this.parent.maybeChild(this.index());if(!t||!t.isInline)return null;let n=t.marks,r=e.parent.maybeChild(e.index());for(var i=0;i<n.length;i++)n[i].type.spec.inclusive===!1&&(!r||!n[i].isInSet(r.marks))&&(n=n[i--].removeFromSet(n));return n}sharedDepth(e){for(let t=this.depth;t>0;t--)if(this.start(t)<=e&&this.end(t)>=e)return t;return 0}blockRange(e=this,t){if(e.pos<this.pos)return e.blockRange(this);for(let n=this.depth-(this.parent.inlineContent||this.pos==e.pos?1:0);n>=0;n--)if(e.pos<=this.end(n)&&(!t||t(this.node(n))))return new _t(this,e,n);return null}sameParent(e){return this.pos-this.parentOffset==e.pos-e.parentOffset}max(e){return e.pos>this.pos?e:this}min(e){return e.pos<this.pos?e:this}toString(){let e=``;for(let t=1;t<=this.depth;t++)e+=(e?`/`:``)+this.node(t).type.name+`_`+this.index(t-1);return e+`:`+this.parentOffset}static resolve(t,n){if(!(n>=0&&n<=t.content.size))throw RangeError(`Position `+n+` out of range`);let r=[],i=0,a=n;for(let e=t;;){let{index:t,offset:n}=e.content.findIndex(a),o=a-n;if(r.push(e,t,i+n),!o||(e=e.child(t),e.isText))break;a=o-1,i+=n+1}return new e(n,r,a)}static resolveCached(t,n){let r=gt.get(t);if(r)for(let e=0;e<r.elts.length;e++){let t=r.elts[e];if(t.pos==n)return t}else gt.set(t,r=new mt);let i=r.elts[r.i]=e.resolve(t,n);return r.i=(r.i+1)%ht,i}},mt=class{constructor(){this.elts=[],this.i=0}},ht=12,gt=new WeakMap,_t=class{constructor(e,t,n){this.$from=e,this.$to=t,this.depth=n}get start(){return this.$from.before(this.depth+1)}get end(){return this.$to.after(this.depth+1)}get parent(){return this.$from.node(this.depth)}get startIndex(){return this.$from.index(this.depth)}get endIndex(){return this.$to.indexAfter(this.depth)}},vt=Object.create(null),yt=class e{constructor(e,t,n,r=P.none){this.type=e,this.attrs=t,this.marks=r,this.content=n||N.empty}get children(){return this.content.content}get nodeSize(){return this.isLeaf?1:2+this.content.size}get childCount(){return this.content.childCount}child(e){return this.content.child(e)}maybeChild(e){return this.content.maybeChild(e)}forEach(e){this.content.forEach(e)}nodesBetween(e,t,n,r=0){this.content.nodesBetween(e,t,n,r,this)}descendants(e){this.nodesBetween(0,this.content.size,e)}get textContent(){return this.isLeaf&&this.type.spec.leafText?this.type.spec.leafText(this):this.textBetween(0,this.content.size,``)}textBetween(e,t,n,r){return this.content.textBetween(e,t,n,r)}get firstChild(){return this.content.firstChild}get lastChild(){return this.content.lastChild}eq(e){return this==e||this.sameMarkup(e)&&this.content.eq(e.content)}sameMarkup(e){return this.hasMarkup(e.type,e.attrs,e.marks)}hasMarkup(e,t,n){return this.type==e&&$e(this.attrs,t||e.defaultAttrs||vt)&&P.sameSet(this.marks,n||P.none)}copy(t=null){return t==this.content?this:new e(this.type,this.attrs,t,this.marks)}mark(t){return t==this.marks?this:new e(this.type,this.attrs,this.content,t)}cut(e,t=this.content.size){return e==0&&t==this.content.size?this:this.copy(this.content.cut(e,t))}slice(e,t=this.content.size,n=!1){if(e==t)return F.empty;let r=this.resolve(e),i=this.resolve(t),a=n?0:r.sharedDepth(t),o=r.start(a);return new F(r.node(a).content.cut(r.pos-o,i.pos-o),r.depth-a,i.depth-a)}replace(e,t,n){return rt(this.resolve(e),this.resolve(t),n)}nodeAt(e){for(let t=this;;){let{index:n,offset:r}=t.content.findIndex(e);if(t=t.maybeChild(n),!t)return null;if(r==e||t.isText)return t;e-=r+1}}childAfter(e){let{index:t,offset:n}=this.content.findIndex(e);return{node:this.content.maybeChild(t),index:t,offset:n}}childBefore(e){if(e==0)return{node:null,index:0,offset:0};let{index:t,offset:n}=this.content.findIndex(e);if(n<e)return{node:this.content.child(t),index:t,offset:n};let r=this.content.child(t-1);return{node:r,index:t-1,offset:n-r.nodeSize}}resolve(e){return pt.resolveCached(this,e)}resolveNoCache(e){return pt.resolve(this,e)}rangeHasMark(e,t,n){let r=!1;return t>e&&this.nodesBetween(e,t,e=>(n.isInSet(e.marks)&&(r=!0),!r)),r}get isBlock(){return this.type.isBlock}get isTextblock(){return this.type.isTextblock}get inlineContent(){return this.type.inlineContent}get isInline(){return this.type.isInline}get isText(){return this.type.isText}get isLeaf(){return this.type.isLeaf}get isAtom(){return this.type.isAtom}toString(){if(this.type.spec.toDebugString)return this.type.spec.toDebugString(this);let e=this.type.name;return this.content.size&&(e+=`(`+this.content.toStringInner()+`)`),xt(this.marks,e)}contentMatchAt(e){let t=this.type.contentMatch.matchFragment(this.content,0,e);if(!t)throw Error(`Called contentMatchAt on a node with invalid content`);return t}canReplace(e,t,n=N.empty,r=0,i=n.childCount){let a=this.contentMatchAt(e).matchFragment(n,r,i),o=a&&a.matchFragment(this.content,t);if(!o||!o.validEnd)return!1;for(let e=r;e<i;e++)if(!this.type.allowsMarks(n.child(e).marks))return!1;return!0}canReplaceWith(e,t,n,r){if(r&&!this.type.allowsMarks(r))return!1;let i=this.contentMatchAt(e).matchType(n),a=i&&i.matchFragment(this.content,t);return a?a.validEnd:!1}canAppend(e){return e.content.size?this.canReplace(this.childCount,this.childCount,e.content):this.type.compatibleContent(e.type)}check(){this.type.checkContent(this.content),this.type.checkAttrs(this.attrs);let e=P.none;for(let t=0;t<this.marks.length;t++){let n=this.marks[t];n.type.checkAttrs(n.attrs),e=n.addToSet(e)}if(!P.sameSet(e,this.marks))throw RangeError(`Invalid collection of marks for node ${this.type.name}: ${this.marks.map(e=>e.type.name)}`);this.content.forEach(e=>e.check())}toJSON(){let e={type:this.type.name};for(let t in this.attrs){e.attrs=this.attrs;break}return this.content.size&&(e.content=this.content.toJSON()),this.marks.length&&(e.marks=this.marks.map(e=>e.toJSON())),e}static fromJSON(e,t){if(!t)throw RangeError(`Invalid input for Node.fromJSON`);let n;if(t.marks){if(!Array.isArray(t.marks))throw RangeError(`Invalid mark data for Node.fromJSON`);n=t.marks.map(e.markFromJSON)}if(t.type==`text`){if(typeof t.text!=`string`)throw RangeError(`Invalid text node in JSON`);return e.text(t.text,n)}let r=N.fromJSON(e,t.content),i=e.nodeType(t.type).create(t.attrs,r,n);return i.type.checkAttrs(i.attrs),i}};yt.prototype.text=void 0;var bt=class e extends yt{constructor(e,t,n,r){if(super(e,t,null,r),!n)throw RangeError(`Empty text nodes are not allowed`);this.text=n}toString(){return this.type.spec.toDebugString?this.type.spec.toDebugString(this):xt(this.marks,JSON.stringify(this.text))}get textContent(){return this.text}textBetween(e,t){return this.text.slice(e,t)}get nodeSize(){return this.text.length}mark(t){return t==this.marks?this:new e(this.type,this.attrs,this.text,t)}withText(t){return t==this.text?this:new e(this.type,this.attrs,t,this.marks)}cut(e=0,t=this.text.length){return e==0&&t==this.text.length?this:this.withText(this.text.slice(e,t))}eq(e){return this.sameMarkup(e)&&this.text==e.text}toJSON(){let e=super.toJSON();return e.text=this.text,e}};function xt(e,t){for(let n=e.length-1;n>=0;n--)t=e[n].type.name+`(`+t+`)`;return t}var St=class e{constructor(e){this.validEnd=e,this.next=[],this.wrapCache=[]}static parse(t,n){let r=new Ct(t,n);if(r.next==null)return e.empty;let i=wt(r);r.next&&r.err(`Unexpected trailing text`);let a=Pt(jt(i));return Ft(a,r),a}matchType(e){for(let t=0;t<this.next.length;t++)if(this.next[t].type==e)return this.next[t].next;return null}matchFragment(e,t=0,n=e.childCount){let r=this;for(let i=t;r&&i<n;i++)r=r.matchType(e.child(i).type);return r}get inlineContent(){return this.next.length!=0&&this.next[0].type.isInline}get defaultType(){for(let e=0;e<this.next.length;e++){let{type:t}=this.next[e];if(!(t.isText||t.hasRequiredAttrs()))return t}return null}compatible(e){for(let t=0;t<this.next.length;t++)for(let n=0;n<e.next.length;n++)if(this.next[t].type==e.next[n].type)return!0;return!1}fillBefore(e,t=!1,n=0){let r=[this];function i(a,o){let s=a.matchFragment(e,n);if(s&&(!t||s.validEnd))return N.from(o.map(e=>e.createAndFill()));for(let e=0;e<a.next.length;e++){let{type:t,next:n}=a.next[e];if(!(t.isText||t.hasRequiredAttrs())&&r.indexOf(n)==-1){r.push(n);let e=i(n,o.concat(t));if(e)return e}}return null}return i(this,[])}findWrapping(e){for(let t=0;t<this.wrapCache.length;t+=2)if(this.wrapCache[t]==e)return this.wrapCache[t+1];let t=this.computeWrapping(e);return this.wrapCache.push(e,t),t}computeWrapping(e){let t=Object.create(null),n=[{match:this,type:null,via:null}];for(;n.length;){let r=n.shift(),i=r.match;if(i.matchType(e)){let e=[];for(let t=r;t.type;t=t.via)e.push(t.type);return e.reverse()}for(let e=0;e<i.next.length;e++){let{type:a,next:o}=i.next[e];!a.isLeaf&&!a.hasRequiredAttrs()&&!(a.name in t)&&(!r.type||o.validEnd)&&(n.push({match:a.contentMatch,type:a,via:r}),t[a.name]=!0)}}return null}get edgeCount(){return this.next.length}edge(e){if(e>=this.next.length)throw RangeError(`There's no ${e}th edge in this content match`);return this.next[e]}toString(){let e=[];function t(n){e.push(n);for(let r=0;r<n.next.length;r++)e.indexOf(n.next[r].next)==-1&&t(n.next[r].next)}return t(this),e.map((t,n)=>{let r=n+(t.validEnd?`*`:` `)+` `;for(let n=0;n<t.next.length;n++)r+=(n?`, `:``)+t.next[n].type.name+`->`+e.indexOf(t.next[n].next);return r}).join(`
|
|
1
|
+
import{o as e,t}from"./chunk-DD-I1_y5.js";import{a as n,c as r,d as i,f as a,h as o,i as s,l as c,m as l,o as u,p as d,s as f,t as p,u as m}from"./brand-Dln107gD.js";import{a as h,c as g,g as _,h as v,l as y,m as b,p as x,s as S,u as C}from"./graph-labels-C8A6BmtP.js";import{i as ee,r as w,t as te}from"./page-D5wAeFU0.js";import{i as ne,n as re,r as ie}from"./page-DR5NU6S0.js";import{i as T,n as E,o as D,r as O,s as k}from"./device-url-actions-B588ZlnE.js";var ae=d(),A=e(o(),1);new Set(`image/jpeg,image/png,image/gif,image/webp,application/pdf,text/plain,text/markdown,text/csv,text/html,text/calendar,application/zip,application/x-zip-compressed,audio/ogg,audio/opus,audio/mp4,audio/mpeg,audio/webm,audio/wav,.opus,.ogg,.m4a,.mp3,.wav,.webm`.split(`,`).filter(e=>!e.startsWith(`.`)));function oe(e){switch(e){case`expanded`:return!0;case`collapsed`:return!1;default:return}}var se=`admin-landing-redirected`,ce=`/graph`;function le(e){return e.appState===`chat`&&!e.alreadyRedirected}function ue(){let[e,t]=(0,A.useState)(`loading`),[n,r]=(0,A.useState)(``),[i,a]=(0,A.useState)(``),[o,s]=(0,A.useState)(``),[c,l]=(0,A.useState)(!1),[u,d]=(0,A.useState)(!1),[f,p]=(0,A.useState)(!1),[m,h]=(0,A.useState)(!1),[g,_]=(0,A.useState)(!1),[v,y]=(0,A.useState)(null),[b,x]=(0,A.useState)(null),[S,C]=(0,A.useState)(void 0),[ee,w]=(0,A.useState)(null),[te,ne]=(0,A.useState)(void 0),[re,ie]=(0,A.useState)(null),[T,E]=(0,A.useState)(null),[D,O]=(0,A.useState)([]),[k,ae]=(0,A.useState)(!1),[ue,de]=(0,A.useState)(void 0),fe=(0,A.useRef)(void 0),[pe,me]=(0,A.useState)(!1);(0,A.useEffect)(()=>{typeof window>`u`||window.location.hostname.startsWith(`admin.`)&&fetch(`/api/remote-auth/status`).then(e=>e.ok?e.json():null).then(e=>{e?.configured&&me(!0)}).catch(()=>{})},[]);let he=(0,A.useRef)(null),ge=(0,A.useRef)(null);(0,A.useEffect)(()=>{async function e(){let e=null;try{e=sessionStorage.getItem(`maxy-admin-session-key`)}catch{}if(!e)return!1;try{let n=await fetch(`/api/admin/session?session_key=${encodeURIComponent(e)}`);if(n.status===401){try{sessionStorage.removeItem(`maxy-admin-session-key`)}catch{}return!1}if(!n.ok)return!1;let r=await n.json();y(r.session_key),E(r.conversationId??null),C(r.businessName),w(r.role??null),ne(r.userName===void 0?null:r.userName),ie(r.avatar??null);let i=oe(r.thinkingView);return fe.current=i,de(i),t(`chat`),!0}catch(e){return console.error(`[admin] session restore failed:`,e),!1}}async function n(r=2){try{let i=await fetch(`/api/health`);if(!i.ok){if(r>0)return await new Promise(e=>setTimeout(e,1500)),n(r-1);console.error(`[admin] health check returned ${i.status} after retries`),t(`set-pin`);return}let a=await i.json();if(!a.pin_configured){t(`set-pin`);return}if(!a.claude_authenticated){t(`connect-claude`);return}if(await e())return;t(`enter-pin`)}catch(e){if(r>0)return await new Promise(e=>setTimeout(e,1500)),n(r-1);console.error(`[admin] health check failed:`,e),t(`set-pin`)}}n()},[]),(0,A.useEffect)(()=>{e===`chat`&&fetch(`/api/admin/claude-info`).then(e=>{if(e.ok)return e.json()}).then(e=>{e&&x(e)}).catch(()=>{})},[e]),(0,A.useEffect)(()=>{if(typeof window>`u`)return;let t=!1;try{t=sessionStorage.getItem(se)===`1`}catch{}if(le({appState:e,alreadyRedirected:t})){try{sessionStorage.setItem(se,`1`)}catch{}console.info(`[admin-ui] landing-redirect target=${ce}`),window.location.replace(ce)}},[e]),(0,A.useEffect)(()=>{if(e!==`chat`)return;let n=setInterval(async()=>{try{let e=await fetch(`/api/health`);if(!e.ok)return;let n=await e.json();(n.auth_status===`dead`||n.auth_status===`missing`)&&t(`connect-claude`)}catch{}},300*1e3);return()=>clearInterval(n)},[e]),(0,A.useEffect)(()=>{e===`connect-claude`&&fetch(`/api/health`).then(e=>e.ok?e.json():null).then(e=>{e?.claude_authenticated&&t(`enter-pin`)}).catch(()=>{})},[e]);async function _e(e,n){d(!0);try{let i=await fetch(`/api/admin/session`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({pin:e,...n?{accountId:n}:{}})});if(!i.ok){s((await i.json().catch(()=>({}))).error||`Invalid PIN`);return}let a=await i.json();if(a.accounts&&!a.session_key){console.log(`[admin] account picker shown: userId=${a.userId} accountCount=${a.accounts.length}`),O(a.accounts),t(`account-picker`);return}y(a.session_key),E(a.conversationId??null),C(a.businessName),w(a.role??null),ne(a.userName===void 0?null:a.userName),ie(a.avatar??null);let o=oe(a.thinkingView);if(fe.current=o,de(o),n)try{sessionStorage.setItem(`maxy-account-id`,n)}catch{}try{sessionStorage.setItem(`maxy-admin-session-key`,a.session_key)}catch{}r(``),t(`chat`)}catch(e){console.error(`[admin] connection error:`,e),s(`Could not connect.`)}finally{d(!1),ae(!1)}}let ve=(0,A.useCallback)(async e=>{if(e.preventDefault(),u)return;s(``);let a=i.trim();if(!a){s(`Please enter your name.`);return}if(n.length<4){s(`PIN must be at least 4 characters.`);return}let o=n;d(!0);try{let e=await fetch(`/api/onboarding/set-pin`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({pin:o,name:a})});if(!e.ok){let n=await e.json().catch(()=>({}));if(e.status===409){console.log(`[admin] PIN already configured — re-checking health`);try{let e=await fetch(`/api/health`);if(e.ok){let r=await e.json();r.pin_configured&&r.claude_authenticated?t(`enter-pin`):r.pin_configured?t(`connect-claude`):s(n.error||`Failed to set PIN.`)}else t(`enter-pin`)}catch{t(`enter-pin`)}return}s(n.error||`Failed to set PIN.`);return}let n=await fetch(`/api/health`);if((n.ok?await n.json():null)?.claude_authenticated){await _e(o);return}r(``),t(`connect-claude`)}catch(e){console.error(`[admin] connection error:`,e),s(`Could not connect.`)}finally{d(!1)}},[n,u,i]),ye=(0,A.useCallback)(async e=>{e.preventDefault(),s(``),await _e(n)},[n]),be=(0,A.useCallback)(async()=>{_(!0);try{await fetch(`/api/onboarding/claude-auth`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({action:`logout`})}),y(null),w(null),ne(void 0),ie(null);try{sessionStorage.removeItem(`maxy-admin-session-key`)}catch{}t(`connect-claude`)}finally{_(!1)}},[]),xe=(0,A.useCallback)(()=>{y(null),w(null),ne(void 0),ie(null);try{sessionStorage.removeItem(`maxy-admin-session-key`),sessionStorage.removeItem(se)}catch{}r(``),s(``),t(`enter-pin`)},[]);return{appState:e,setAppState:t,pin:n,setPin:r,operatorName:i,setOperatorName:a,pinError:o,setPinError:s,showPin:c,setShowPin:l,pinLoading:u,authPolling:f,setAuthPolling:p,authLoading:m,setAuthLoading:h,disconnecting:g,cacheKey:v,setCacheKey:y,claudeInfo:b,setClaudeInfo:x,businessName:S,role:ee,userName:te,userAvatar:re,conversationId:T,setConversationId:E,accounts:D,accountPickerLoading:k,expandAll:ue,setExpandAll:de,expandAllDefaultRef:fe,remoteAuthEnabled:pe,pinInputRef:he,setPinFormRef:ge,handleSetPin:ve,handleLogin:ye,handleAccountSelect:(0,A.useCallback)(async e=>{ae(!0),s(``),await _e(n,e)},[n]),handleDisconnect:be,handleLogout:xe,handleChangePin:(0,A.useCallback)(async()=>{if(!n){s(`Enter your current PIN first.`);return}d(!0),s(``);try{let e=await fetch(`/api/onboarding/set-pin`,{method:`DELETE`,headers:{"Content-Type":`application/json`},body:JSON.stringify({currentPin:n})});if(!e.ok){s((await e.json().catch(()=>({error:`Incorrect PIN.`}))).error||`Incorrect PIN.`);return}r(``),s(``),t(`set-pin`)}catch(e){console.error(`[admin-auth] change pin failed:`,e),s(e instanceof Error?e.message:String(e))}finally{d(!1)}},[n])}}var de=a(`archive`,[[`rect`,{width:`20`,height:`5`,x:`2`,y:`3`,rx:`1`,key:`1wp1u1`}],[`path`,{d:`M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8`,key:`1s80jp`}],[`path`,{d:`M10 12h4`,key:`a56b0p`}]]),fe=a(`bold`,[[`path`,{d:`M6 12h9a4 4 0 0 1 0 8H7a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h7a4 4 0 0 1 0 8`,key:`mg9rjx`}]]),pe=a(`circle-stop`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`rect`,{x:`9`,y:`9`,width:`6`,height:`6`,rx:`1`,key:`1ssd4o`}]]),me=a(`code-xml`,[[`path`,{d:`m18 16 4-4-4-4`,key:`1inbqp`}],[`path`,{d:`m6 8-4 4 4 4`,key:`15zrgr`}],[`path`,{d:`m14.5 4-5 16`,key:`e7oirm`}]]),he=a(`ellipsis-vertical`,[[`circle`,{cx:`12`,cy:`12`,r:`1`,key:`41hilf`}],[`circle`,{cx:`12`,cy:`5`,r:`1`,key:`gxeob9`}],[`circle`,{cx:`12`,cy:`19`,r:`1`,key:`lyex9k`}]]),ge=a(`file-exclamation-point`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M12 9v4`,key:`juzpu7`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]]),_e=a(`italic`,[[`line`,{x1:`19`,x2:`10`,y1:`4`,y2:`4`,key:`15jd3p`}],[`line`,{x1:`14`,x2:`5`,y1:`20`,y2:`20`,key:`bu0au3`}],[`line`,{x1:`15`,x2:`9`,y1:`4`,y2:`20`,key:`uljnxc`}]]),ve=a(`link-2`,[[`path`,{d:`M9 17H7A5 5 0 0 1 7 7h2`,key:`8i5ue5`}],[`path`,{d:`M15 7h2a5 5 0 1 1 0 10h-2`,key:`1b9ql8`}],[`line`,{x1:`8`,x2:`16`,y1:`12`,y2:`12`,key:`1jonct`}]]),ye=a(`maximize-2`,[[`path`,{d:`M15 3h6v6`,key:`1q9fwt`}],[`path`,{d:`m21 3-7 7`,key:`1l2asr`}],[`path`,{d:`m3 21 7-7`,key:`tjx5ai`}],[`path`,{d:`M9 21H3v-6`,key:`wtvkvv`}]]),be=a(`message-square-plus`,[[`path`,{d:`M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z`,key:`18887p`}],[`path`,{d:`M12 8v6`,key:`1ib9pf`}],[`path`,{d:`M9 11h6`,key:`1fldmi`}]]),xe=a(`minimize-2`,[[`path`,{d:`m14 10 7-7`,key:`oa77jy`}],[`path`,{d:`M20 10h-6V4`,key:`mjg0md`}],[`path`,{d:`m3 21 7-7`,key:`tjx5ai`}],[`path`,{d:`M4 14h6v6`,key:`rmj7iw`}]]),Se=a(`pencil`,[[`path`,{d:`M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z`,key:`1a8usu`}],[`path`,{d:`m15 5 4 4`,key:`1mk7zo`}]]),Ce=a(`pin`,[[`path`,{d:`M12 17v5`,key:`bb1du9`}],[`path`,{d:`M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z`,key:`1nkz8b`}]]),we=a(`square-arrow-down-left`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`m16 8-8 8`,key:`166keh`}],[`path`,{d:`M16 16H8V8`,key:`1w2ppm`}]]),j=u();function Te({inputRef:e,value:t,onChange:n,onComplete:r,showPin:i,autoFocus:a}){let o=(0,A.useRef)([]);function s(e,r){r.key===`Backspace`?(r.preventDefault(),t[e]?n(t.slice(0,e)+t.slice(e+1)):e>0&&(n(t.slice(0,e-1)+t.slice(e)),o.current[e-1]?.focus())):r.key===`ArrowLeft`&&e>0?o.current[e-1]?.focus():r.key===`ArrowRight`&&e<5?o.current[e+1]?.focus():r.key===`Enter`&&(r.preventDefault(),r.currentTarget.form?.requestSubmit())}function c(e,i){let a=i.nativeEvent.data;if(!a||!/^\d$/.test(a))return;let s=t.split(``);for(s[e]=a;s.length<e;)s.push(``);let c=s.join(``).replace(/\D/g,``).slice(0,6);n(c),c.length===6?r?.(c):e<5&&o.current[e+1]?.focus()}function l(e){e.preventDefault();let t=e.clipboardData.getData(`text`).replace(/\D/g,``).slice(0,6);t&&(n(t),t.length===6?r?.(t):o.current[t.length]?.focus())}return(0,j.jsx)(`div`,{className:`pin-field`,children:Array.from({length:6}).map((n,r)=>(0,j.jsx)(`input`,{ref:t=>{o.current[r]=t,r===0&&e&&(e.current=t)},type:`text`,inputMode:`numeric`,className:`pin-box${t[r]?` pin-box-filled`:``}`,value:t[r]?i?t[r]:`•`:``,onKeyDown:e=>s(r,e),onInput:e=>c(r,e),onPaste:l,onFocus:e=>e.target.select(),autoFocus:a&&r===0,autoComplete:`off`,maxLength:1,"aria-label":`PIN digit ${r+1}`},r))})}function Ee(e){let{pin:t,setPin:r,showPin:i,setShowPin:a,pinLoading:o,pinError:c,pinInputRef:l,setPinFormRef:u,onSubmit:d,operatorName:f,setOperatorName:m}=e;return(0,j.jsx)(`div`,{className:`connect-page`,children:(0,j.jsxs)(`div`,{className:`connect-content`,children:[(0,j.jsx)(`img`,{src:s,alt:p.productName,className:`connect-logo connect-logo--maxy`}),!p.logoContainsName&&(0,j.jsxs)(`h1`,{className:`connect-title`,children:[`Welcome to `,p.productName]}),(0,j.jsxs)(`p`,{className:`connect-subtitle`,children:[`Tell `,p.productName,` who you are, then choose a PIN.`]}),(0,j.jsxs)(`form`,{ref:u,onSubmit:d,className:`connect-pin-form`,children:[(0,j.jsxs)(`div`,{className:`pin-input-row`,children:[(0,j.jsx)(`input`,{type:`text`,className:`connect-name-input`,placeholder:`Your full name`,value:f,onChange:e=>m(e.target.value),autoComplete:`name`,autoFocus:!0,required:!0,"aria-label":`Your full name`}),(0,j.jsx)(`div`,{style:{width:38,flexShrink:0},"aria-hidden":`true`})]}),(0,j.jsxs)(`div`,{className:`pin-input-row`,children:[(0,j.jsx)(Te,{inputRef:l,value:t,onChange:r,onComplete:()=>{},showPin:i}),(0,j.jsx)(D,{variant:`send`,type:`submit`,disabled:!t||!f.trim(),loading:o,"aria-label":`Set PIN`,children:(0,j.jsxs)(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,j.jsx)(`line`,{x1:`5`,y1:`12`,x2:`19`,y2:`12`}),(0,j.jsx)(`polyline`,{points:`12 5 19 12 12 19`})]})})]}),(0,j.jsx)(n,{checked:i,onChange:()=>a(e=>!e),label:`Show PIN`})]}),c&&(0,j.jsx)(`p`,{className:`admin-pin-error`,children:c})]})})}function De(e){let{pin:t,setPin:r,showPin:i,setShowPin:a,pinLoading:o,pinError:c,pinInputRef:l,onSubmit:u,onChangePin:d,remoteAuthEnabled:f,onSignOutRemote:m}=e;return(0,j.jsxs)(`div`,{className:`connect-page`,children:[f&&m&&(0,j.jsx)(`button`,{type:`button`,className:`connect-signout`,onClick:m,children:`Sign out`}),(0,j.jsxs)(`div`,{className:`connect-content`,children:[(0,j.jsx)(`img`,{src:s,alt:p.productName,className:`connect-logo connect-logo--maxy`}),!p.logoContainsName&&(0,j.jsx)(`h1`,{className:`connect-title`,children:p.productName}),(0,j.jsxs)(`form`,{onSubmit:u,className:`connect-pin-form`,children:[(0,j.jsxs)(`div`,{className:`pin-input-row`,children:[(0,j.jsx)(Te,{inputRef:l,value:t,onChange:r,onComplete:()=>{},showPin:i,autoFocus:!0}),(0,j.jsx)(D,{variant:`send`,type:`submit`,disabled:!t,loading:o,children:(0,j.jsxs)(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,j.jsx)(`line`,{x1:`5`,y1:`12`,x2:`19`,y2:`12`}),(0,j.jsx)(`polyline`,{points:`12 5 19 12 12 19`})]})})]}),(0,j.jsxs)(`div`,{className:`pin-options`,children:[(0,j.jsx)(n,{checked:i,onChange:()=>a(e=>!e),label:`Show PIN`}),(0,j.jsx)(D,{type:`button`,variant:`ghost`,onClick:d,children:`Change PIN`})]})]}),c&&(0,j.jsx)(`p`,{className:`admin-pin-error`,children:c})]})]})}function Oe(e){let{accounts:t,loading:n,error:r,onSelect:i}=e;return(0,j.jsx)(`div`,{className:`connect-page`,children:(0,j.jsxs)(`div`,{className:`connect-content`,children:[(0,j.jsx)(`img`,{src:s,alt:p.productName,className:`connect-logo connect-logo--maxy`}),!p.logoContainsName&&(0,j.jsx)(`h1`,{className:`connect-title`,children:p.productName}),(0,j.jsx)(`p`,{className:`connect-subtitle`,children:`Select an account`}),(0,j.jsx)(`div`,{className:`account-picker-list`,children:t.map(e=>(0,j.jsxs)(`button`,{className:`account-picker-card`,onClick:()=>i(e.accountId),disabled:n,type:`button`,children:[(0,j.jsx)(`span`,{className:`account-picker-name`,children:e.businessName||e.accountId}),(0,j.jsx)(`span`,{className:`account-picker-role`,children:e.role}),n&&(0,j.jsx)(b,{className:`account-picker-spinner`,size:16})]},e.accountId))}),r&&(0,j.jsx)(`p`,{className:`admin-pin-error`,children:r})]})})}function ke(e){let{authPolling:t,setAuthPolling:n,authLoading:r,setAuthLoading:i,pinError:a,setPinError:o,setAppState:c}=e,[l,u]=(0,A.useState)(!1),[d,f]=(0,A.useState)(!1);async function m(){f(!0),o(``);try{let e=await(await fetch(`/api/onboarding/claude-auth`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({action:`launch-browser`})})).json();e.launched?u(!0):e.error&&o(e.error)}catch(e){console.error(`[admin] browser launch error:`,e),o(`Could not launch browser.`)}f(!1)}async function h(){i(!0),o(``);try{let e=await(await fetch(`/api/onboarding/claude-auth`,{method:`POST`})).json();if(e.started){n(!0),u(!0),i(!1);for(let e=0;e<120;e++)if(await new Promise(e=>setTimeout(e,2e3)),(await(await fetch(`/api/onboarding/claude-auth`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({action:`wait`})})).json()).authenticated){await fetch(`/api/onboarding/claude-auth`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({action:`stop`})}),c(`enter-pin`);return}o(`Timed out waiting for sign-in. Try again.`),n(!1)}else e.error&&o(e.error)}catch(e){console.error(`[admin] auth flow error:`,e),o(`Could not start auth flow.`)}i(!1)}async function g(){await fetch(`/api/onboarding/claude-auth`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({action:`stop`})}),n(!1),o(``)}return t||l?(0,j.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,height:`100dvh`,overflow:`auto`},children:[(0,j.jsxs)(`header`,{className:`chat-header`,style:{paddingBottom:`12px`,flexShrink:0,position:`relative`,maxWidth:`680px`,width:`100%`,margin:`0 auto`,padding:`24px 20px 12px`},children:[t?(0,j.jsx)(`button`,{onClick:g,style:{position:`absolute`,top:`12px`,right:`12px`,background:`none`,border:`none`,color:`#999`,fontSize:`13px`,cursor:`pointer`,padding:`4px 8px`},"aria-label":`Cancel`,children:`✕`}):(0,j.jsx)(`button`,{onClick:()=>u(!1),style:{position:`absolute`,top:`12px`,right:`12px`,background:`none`,border:`none`,color:`#999`,fontSize:`13px`,cursor:`pointer`,padding:`4px 8px`},"aria-label":`Close browser`,children:`✕`}),(0,j.jsx)(`img`,{src:`/brand/claude.png`,alt:`Claude`,className:`chat-logo`}),(0,j.jsx)(`h1`,{className:`chat-tagline`,children:`Connect Claude`}),(0,j.jsx)(`p`,{className:`chat-intro`,children:t?`Sign in and authorize in the browser below.`:`Open your email or prepare your accounts, then sign in.`}),!t&&(0,j.jsx)(`div`,{style:{marginTop:`12px`},children:(0,j.jsx)(D,{variant:`primary`,onClick:h,disabled:r,children:r?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(`span`,{className:`spin`,style:{display:`inline-block`},children:`✱`}),` Connecting…`]}):`Sign in to Claude`})})]}),(0,j.jsx)(`div`,{style:{flex:1,display:`flex`,flexDirection:`column`,minHeight:0,gap:`10px`,padding:`0 0 16px`},children:(0,j.jsx)(`iframe`,{src:`/vnc-viewer.html`,style:{flex:1,width:`100%`,minHeight:0,border:`none`,background:`#111`,display:`block`},title:`Claude Sign-in`})}),a&&(0,j.jsx)(`p`,{className:`admin-pin-error`,style:{textAlign:`center`,padding:`0 20px 16px`},children:a})]}):(0,j.jsx)(`div`,{className:`connect-page`,children:(0,j.jsxs)(`div`,{className:`connect-content`,children:[(0,j.jsxs)(`div`,{className:`connect-logos`,children:[(0,j.jsx)(`div`,{className:`connect-logo-wrap`,children:(0,j.jsx)(`img`,{src:`/brand/claude.png`,alt:`Claude`,className:`connect-logo`})}),(0,j.jsx)(`svg`,{className:`connect-arrow`,viewBox:`0 0 48 24`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,children:(0,j.jsx)(`path`,{d:`M0 12h44m0 0l-8-8m8 8l-8 8`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`})}),(0,j.jsxs)(`div`,{className:`connect-logo-wrap`,children:[(0,j.jsx)(`img`,{src:s,alt:p.productName,className:`connect-logo connect-logo--maxy`}),!p.logoContainsName&&(0,j.jsx)(`span`,{className:`connect-logo-label`,children:p.productName})]})]}),(0,j.jsxs)(`h1`,{className:`connect-title`,children:[`Connect Claude to power `,p.productName]}),(0,j.jsx)(`p`,{className:`connect-subtitle`,children:`Sign in with your Anthropic account to get started.`}),(0,j.jsx)(D,{variant:`primary`,onClick:h,disabled:r,children:r?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(`span`,{className:`spin`,style:{display:`inline-block`},children:`✱`}),` Connecting…`]}):`Sign in to Claude`}),(0,j.jsx)(`p`,{style:{marginTop:`6px`,fontSize:`11px`,color:`#999`,maxWidth:`300px`,textAlign:`center`,lineHeight:`1.4`},children:`First time? You may need to sign into your email and Anthropic account in the browser before connecting.`}),(0,j.jsx)(`button`,{onClick:m,disabled:d,style:{marginTop:`12px`,background:`none`,border:`none`,color:`var(--color-primary, #666)`,fontSize:`13px`,cursor:`pointer`,textDecoration:`underline`,textUnderlineOffset:`3px`},children:d?`Launching…`:`Open browser first`}),a&&(0,j.jsx)(`p`,{className:`admin-pin-error`,children:a})]})})}var Ae=`maxy-shell-side-px`;function je(){if(typeof window>`u`)return 0;let e=document.querySelector(`.platform > .artefact`)?.getBoundingClientRect();return e&&e.width>0?Math.round(e.width):0}function Me(e){if(typeof window>`u`)return e;let t=window.innerWidth,n=Math.max(248,t-480-je());return Math.min(Math.max(e,248),n)}function Ne(){if(typeof window>`u`)return 264;try{let e=window.localStorage.getItem(Ae);if(!e)return 264;let t=parseInt(e,10);if(Number.isFinite(t)&&t>=248)return Me(t)}catch{}return 264}function Pe({targetSelector:e=`.platform`}){let t=(0,A.useRef)(null),[n,r]=(0,A.useState)(()=>Ne()),i=(0,A.useRef)(n);(0,A.useEffect)(()=>{let t=document.querySelector(e);!t||!(t instanceof HTMLElement)||(t.style.setProperty(`--side-px`,`${n}px`),i.current=n)},[n,e]);let a=(0,A.useCallback)(()=>{r(e=>{let t=Me(e);return t===e?e:t})},[]);(0,A.useEffect)(()=>{a(),window.addEventListener(`resize`,a);let t=document.querySelector(e),n=null;return t instanceof HTMLElement&&(n=new MutationObserver(a),n.observe(t,{attributes:!0,attributeFilter:[`data-artefact`,`class`]})),()=>{window.removeEventListener(`resize`,a),n?.disconnect()}},[a,e]);let o=e=>{e.preventDefault();let n=t.current;if(!n)return;n.setPointerCapture(e.pointerId),n.classList.add(`dragging`);let a=!1,o=e=>{a=!0,r(Me(Math.round(e.clientX)))},s=()=>{if(n.releasePointerCapture(e.pointerId),n.classList.remove(`dragging`),window.removeEventListener(`pointermove`,o),window.removeEventListener(`pointerup`,s),!a)return;let t=i.current;try{window.localStorage.setItem(Ae,String(t))}catch{}console.info(`[admin-ui] sidebar-resize px=${t}`)};window.addEventListener(`pointermove`,o),window.addEventListener(`pointerup`,s)},s=()=>{let e=Me(264);r(e);try{window.localStorage.removeItem(Ae)}catch{}console.info(`[admin-ui] sidebar-resize px=${e}`)};return(0,j.jsx)(`div`,{ref:t,className:`side-resize-handle`,role:`separator`,"aria-orientation":`vertical`,"aria-label":`Resize sidebar`,onPointerDown:o,onDoubleClick:s})}var Fe=`maxy-shell-artefact-px`;function Ie(){if(typeof window>`u`)return 320;let e=window.innerWidth,t=document.querySelector(`.platform > .side`)?.getBoundingClientRect(),n=t?t.right:Math.round(e*.3);return Re(Math.round((e-n)*(2/3)))}function Le(){if(typeof window>`u`)return 320;try{let e=window.localStorage.getItem(Fe);if(!e)return Ie();let t=parseInt(e,10);if(Number.isFinite(t)&&t>=320)return t}catch{}return Ie()}function Re(e){if(typeof window>`u`)return e;let t=window.innerWidth,n=document.querySelector(`.platform > .side`)?.getBoundingClientRect(),r=n?n.right:Math.round(t*.3),i=Math.max(320,t-r-480);return Math.min(Math.max(e,320),i)}function ze({targetSelector:e=`.platform`}){let t=(0,A.useRef)(null),[n,r]=(0,A.useState)(()=>Le()),i=(0,A.useRef)(n);(0,A.useEffect)(()=>{let t=document.querySelector(e);!t||!(t instanceof HTMLElement)||(t.style.setProperty(`--artefact-px`,`${n}px`),i.current=n)},[n,e]);let a=(0,A.useCallback)(()=>{r(e=>{let t=Re(e);return t===e?e:t})},[]);(0,A.useEffect)(()=>(a(),window.addEventListener(`resize`,a),()=>window.removeEventListener(`resize`,a)),[a]);let o=e=>{e.preventDefault();let n=t.current;if(!n)return;n.setPointerCapture(e.pointerId),n.classList.add(`dragging`);let a=!1,o=e=>{a=!0,r(Re(Math.round(window.innerWidth-e.clientX)))},s=()=>{if(n.releasePointerCapture(e.pointerId),n.classList.remove(`dragging`),window.removeEventListener(`pointermove`,o),window.removeEventListener(`pointerup`,s),!a)return;let t=i.current;try{window.localStorage.setItem(Fe,String(t))}catch{}console.info(`[admin-ui] artefact-resize px=${t}`)};window.addEventListener(`pointermove`,o),window.addEventListener(`pointerup`,s)},s=()=>{let e=Ie();r(e);try{window.localStorage.removeItem(Fe)}catch{}console.info(`[admin-ui] artefact-resize px=${e}`)};return(0,j.jsx)(`div`,{ref:t,className:`art-resize-handle`,role:`separator`,"aria-orientation":`vertical`,"aria-label":`Resize artefact pane`,onPointerDown:o,onDoubleClick:s})}function Be(e){if(!e)return`—`;let t=Date.parse(e);if(Number.isNaN(t))return e;let n=Date.now()-t,r=Math.round(n/1e3);if(r<60)return`${r}s ago`;let i=Math.round(r/60);if(i<60)return`${i}m ago`;let a=Math.round(i/60);return a<24?`${a}h ago`:`${Math.round(a/24)}d ago`}function Ve(e){return e==null?`—`:e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`}function He({sessionId:e,cacheKey:t,onRenamed:n,onClose:a,recentsActions:o,liveRow:s,onSessionNotFound:c}){let[l,u]=(0,A.useState)(null),[d,h]=(0,A.useState)(!0),[_,x]=(0,A.useState)(null),[C,ee]=(0,A.useState)(!1),[w,te]=(0,A.useState)(!1),[ne,re]=(0,A.useState)(``),[ie,E]=(0,A.useState)(!1),[D,O]=(0,A.useState)(null),[ae,oe]=(0,A.useState)(null),[se,ce]=(0,A.useState)(null),[le,ue]=(0,A.useState)(!1),fe=(0,A.useRef)(null),me=g(t,o,`pane`),{isPinned:ge,togglePin:_e}=S(p.hostname),ve=(0,A.useRef)(s?.status),ye=s?.status,be=(0,A.useCallback)(async()=>{h(!0),x(null);try{let n=await fetch(`/api/admin/claude-sessions/${encodeURIComponent(e)}/meta?session_key=${encodeURIComponent(t)}`);if(n.status===404){let t=ve.current??`alive`;console.info(`[admin-ui] sidebar-meta-pane-reconcile sessionId=${e.slice(0,8)} from=${t} to=gone trigger=404`),ee(!0),u(null),c&&c(e);return}if(!n.ok){let e=await n.text().catch(()=>``);throw Error(`meta returned ${n.status} ${e.slice(0,200)}`)}let r=await n.json();u(r),re(r.displayName),ee(!1)}catch(e){x(e instanceof Error?e.message:String(e)),console.error(`[admin-ui] sidebar-meta-pane fetch failed:`,e)}finally{h(!1)}},[e,t,c]);(0,A.useEffect)(()=>{console.info(`[admin-ui] sidebar-meta-pane sessionId=${e.slice(0,8)}`),be()},[be,e]),(0,A.useEffect)(()=>{let t=ve.current;if(ve.current=ye,!(t===void 0&&ye!==void 0)&&t!==ye){if(t===`alive`&&ye===`ended`){console.info(`[admin-ui] sidebar-meta-pane-reconcile sessionId=${e.slice(0,8)} from=alive to=ended trigger=list-flip`),be();return}if(t!==void 0&&ye===void 0){console.info(`[admin-ui] sidebar-meta-pane-reconcile sessionId=${e.slice(0,8)} from=${t} to=gone trigger=list-flip`),be();return}}},[ye,be,e]),(0,A.useEffect)(()=>{if(!le)return;let e=e=>{fe.current&&!fe.current.contains(e.target)&&ue(!1)},t=e=>{e.key===`Escape`&&ue(!1)};return document.addEventListener(`mousedown`,e),window.addEventListener(`keydown`,t),()=>{document.removeEventListener(`mousedown`,e),window.removeEventListener(`keydown`,t)}},[le]);let xe=(0,A.useCallback)(async()=>{if(!l)return;let r=ne.trim();if(!r||r===l.displayName){te(!1);return}E(!0);try{let i=await fetch(`/api/admin/claude-sessions/${encodeURIComponent(e)}?session_key=${encodeURIComponent(t)}`,{method:`PATCH`,headers:{"content-type":`application/json`},body:JSON.stringify({displayName:r})});if(!i.ok){let e=await i.text().catch(()=>``);throw Error(`PATCH ${i.status} ${e.slice(0,200)}`)}u({...l,displayName:r}),te(!1),n()}catch(e){console.error(`[admin-ui] sidebar-meta-pane rename failed:`,e),x(e instanceof Error?e.message:String(e))}finally{E(!1)}},[l,ne,e,t,n]),we=(0,A.useCallback)(async(e,t)=>{O(await T(t)?`Copied ${e}`:`Copy failed`),window.setTimeout(()=>O(null),1500)},[]),Te=(0,A.useCallback)(async(e,t,n)=>{oe(null);let r=e===`resume`?await me.resume(t):e===`end`?await me.end(t):e===`purge`?await me.purge(t):e===`archive`?await me.archive(t):await me.unarchive(t);if(!r.ok){oe(r.error??`action failed`);return}n&&a()},[me,a]);if(C&&s===void 0)return(0,j.jsxs)(`main`,{className:`session-meta-pane`,style:{padding:24,display:`flex`,flexDirection:`column`,gap:12},children:[(0,j.jsx)(`p`,{style:{margin:0,fontSize:13,color:`var(--text-secondary)`},children:`Session ended without a transcript. Close this pane.`}),(0,j.jsx)(`div`,{children:(0,j.jsxs)(`button`,{type:`button`,className:`action-btn`,onClick:a,children:[(0,j.jsx)(y,{size:14}),` Close`]})})]});if(d&&!l)return(0,j.jsx)(`main`,{className:`session-meta-pane`,style:{padding:24},children:(0,j.jsx)(b,{size:16,className:`spinning`})});if(_&&!l)return(0,j.jsxs)(`main`,{className:`session-meta-pane`,style:{padding:24},children:[(0,j.jsx)(`p`,{style:{color:`var(--text-tertiary)`},children:_}),(0,j.jsx)(`button`,{type:`button`,className:`action-btn`,onClick:()=>void be(),children:`Retry`})]});if(!l)return null;let Ee=l.sessionId,De=l.status===`alive`,Oe=ge(l.sessionId),ke=me.inFlight;return(0,j.jsxs)(`main`,{className:`session-meta-pane`,style:{padding:24,display:`flex`,flexDirection:`column`,gap:20,overflowY:`auto`},children:[(0,j.jsxs)(`header`,{style:{display:`flex`,alignItems:`center`,gap:12},children:[w?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(`input`,{type:`text`,value:ne,onChange:e=>re(e.target.value),maxLength:256,autoFocus:!0,style:{fontSize:22,fontWeight:600,flex:1,padding:`4px 8px`},onKeyDown:e=>{e.key===`Enter`&&xe(),e.key===`Escape`&&(re(l.displayName),te(!1))}}),(0,j.jsx)(`button`,{type:`button`,className:`icon-btn`,"aria-label":`Confirm rename`,disabled:ie,onClick:()=>void xe(),children:ie?(0,j.jsx)(b,{size:16,className:`spinning`}):(0,j.jsx)(i,{size:16})}),(0,j.jsx)(`button`,{type:`button`,className:`icon-btn`,"aria-label":`Cancel rename`,onClick:()=>{re(l.displayName),te(!1)},children:(0,j.jsx)(y,{size:16})})]}):(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(`h2`,{style:{fontSize:22,fontWeight:600,margin:0,flex:1},children:l.displayName}),(0,j.jsx)(`button`,{type:`button`,className:`icon-btn`,"aria-label":`Rename`,onClick:()=>te(!0),children:(0,j.jsx)(Se,{size:16})})]}),(0,j.jsx)(`button`,{type:`button`,className:`icon-btn`,"aria-label":`Close pane`,onClick:a,children:(0,j.jsx)(y,{size:18})})]}),(0,j.jsx)(`section`,{children:(0,j.jsxs)(`dl`,{className:`meta-dl`,children:[(0,j.jsx)(`dt`,{children:`Status`}),(0,j.jsx)(`dd`,{children:De?`alive · pid ${l.pid??`?`}`:`ended`}),(0,j.jsx)(`dt`,{children:`sessionId`}),(0,j.jsxs)(`dd`,{"data-mono":!0,children:[(0,j.jsx)(`span`,{children:Ee}),(0,j.jsx)(`button`,{type:`button`,className:`icon-btn`,"aria-label":`Copy sessionId`,onClick:()=>void we(`id`,Ee),children:(0,j.jsx)(k,{size:12})})]}),(0,j.jsx)(`dt`,{children:`Started at`}),(0,j.jsxs)(`dd`,{children:[l.startedAt,` `,(0,j.jsxs)(`span`,{className:`text-tertiary`,children:[`(`,Be(l.startedAt),`)`]})]}),(0,j.jsx)(`dt`,{children:`Last message`}),(0,j.jsx)(`dd`,{children:l.lastMessageAt?(0,j.jsxs)(j.Fragment,{children:[l.lastMessageAt,` `,(0,j.jsxs)(`span`,{className:`text-tertiary`,children:[`(`,Be(l.lastMessageAt),`)`]})]}):`—`}),(0,j.jsx)(`dt`,{children:`Turns`}),(0,j.jsxs)(`dd`,{children:[l.turnCount,l.capped?(0,j.jsx)(`span`,{className:`text-tertiary`,children:` (≥, JSONL exceeds tail-read cap)`}):null]}),(0,j.jsx)(`dt`,{children:`JSONL size`}),(0,j.jsx)(`dd`,{children:Ve(l.sizeBytes)}),(0,j.jsx)(`dt`,{children:`JSONL path`}),(0,j.jsxs)(`dd`,{"data-mono":!0,children:[(0,j.jsx)(`span`,{children:l.jsonlPath??`—`}),l.jsonlPath&&(0,j.jsx)(`button`,{type:`button`,className:`icon-btn`,"aria-label":`Copy JSONL path`,onClick:()=>void we(`path`,l.jsonlPath),children:(0,j.jsx)(k,{size:12})})]}),De&&(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(`dt`,{children:`Session URL`}),(0,j.jsxs)(`dd`,{"data-mono":!0,children:[(0,j.jsx)(`span`,{children:l.url??`—`}),l.url&&(0,j.jsx)(`button`,{type:`button`,className:`icon-btn`,"aria-label":`Copy URL`,onClick:()=>void we(`URL`,l.url),children:(0,j.jsx)(k,{size:12})})]}),(0,j.jsx)(`dt`,{children:`Channel`}),(0,j.jsx)(`dd`,{children:l.channel??`—`}),(0,j.jsx)(`dt`,{children:`Role`}),(0,j.jsx)(`dd`,{children:l.role??`—`}),(0,j.jsx)(`dt`,{children:`senderId`}),(0,j.jsx)(`dd`,{"data-mono":!0,children:(0,j.jsx)(`span`,{children:l.senderId||`—`})})]})]})}),(()=>{let e=[];return De&&l.url&&e.push((0,j.jsxs)(`button`,{type:`button`,className:`action-btn`,onClick:()=>window.open(l.url,`_blank`,`noopener,noreferrer`),children:[(0,j.jsx)(v,{size:14}),` Open in new tab`]},`open-tab`)),l.jsonlPath&&e.push((0,j.jsxs)(`a`,{className:`action-btn`,href:`vscode://file/${l.jsonlPath}`,title:`Open JSONL in VS Code`,children:[(0,j.jsx)(m,{size:14}),` Open JSONL in editor`]},`open-jsonl`)),De||e.push((0,j.jsxs)(`button`,{type:`button`,className:`action-btn`,"data-variant":`primary`,disabled:ke===`resume`,onClick:()=>void Te(`resume`,l.sessionId,!1),children:[ke===`resume`?(0,j.jsx)(b,{size:14,className:`spinning`}):(0,j.jsx)(r,{size:14}),` Resume`]},`resume`)),e.push((0,j.jsxs)(`button`,{type:`button`,className:`action-btn`,onClick:()=>te(!0),children:[(0,j.jsx)(Se,{size:14}),` Rename`]},`rename`),(0,j.jsxs)(`button`,{type:`button`,className:`action-btn`,"data-active":Oe?`true`:void 0,onClick:()=>_e(l.sessionId),children:[(0,j.jsx)(Ce,{size:14}),` `,Oe?`Unpin`:`Pin`]},`pin`),(0,j.jsxs)(`button`,{type:`button`,className:`action-btn`,disabled:ke===`archive`,title:De?`Manager will refuse with 409 — end the session first`:void 0,onClick:()=>void Te(`archive`,l.sessionId,!De),children:[ke===`archive`?(0,j.jsx)(b,{size:14,className:`spinning`}):(0,j.jsx)(de,{size:14}),` Archive`]},`archive`)),e.push(De?(0,j.jsxs)(`button`,{type:`button`,className:`action-btn`,"data-variant":`danger`,disabled:ke===`end`,onClick:()=>ce({action:`end`,sessionId:l.sessionId,displayName:l.displayName}),children:[(0,j.jsx)(pe,{size:14}),` End session`]},`end`):(0,j.jsxs)(`button`,{type:`button`,className:`action-btn`,"data-variant":`danger`,disabled:ke===`purge`,onClick:()=>ce({action:`purge`,sessionId:l.sessionId,displayName:l.displayName}),children:[(0,j.jsx)(f,{size:14}),` Purge JSONL`]},`purge`)),(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(`section`,{className:`action-bar`,children:e}),(0,j.jsxs)(`section`,{className:`session-actions-overflow`,ref:fe,children:[(0,j.jsx)(`button`,{type:`button`,className:`session-actions-overflow__trigger`,"aria-label":`Actions`,"aria-haspopup":`menu`,"aria-expanded":le,onClick:()=>{ue(e=>{let t=!e;return t&&console.info(`[admin-ui] pane-actions-overflow-open sessionId=${l.sessionId.slice(0,8)}`),t})},children:(0,j.jsx)(he,{size:14})}),le&&(0,j.jsx)(`div`,{className:`overflow-popover`,role:`menu`,onClick:()=>ue(!1),children:e})]})]})})(),D&&(0,j.jsx)(`div`,{style:{color:`var(--text-tertiary)`,fontSize:12},children:D}),ae&&(0,j.jsx)(`div`,{style:{color:`var(--text-tertiary)`,fontSize:12},children:ae}),_&&(0,j.jsx)(`div`,{style:{color:`var(--text-tertiary)`,fontSize:12},children:_}),se&&(0,j.jsx)(Ue,{confirm:se,busy:ke===se.action,onCancel:()=>ce(null),onConfirm:async()=>{await Te(se.action,se.sessionId,se.action===`purge`),ce(null)}})]})}function Ue({confirm:e,busy:t,onCancel:n,onConfirm:r}){let i=e.action===`end`?`End live session?`:`Purge session JSONL?`,a=e.action===`end`?`This kills the PTY for ${e.displayName}. The JSONL is kept on disk and can be resumed later.`:`This hard-deletes the transcript and sidecar for ${e.displayName}. The action cannot be undone.`,o=e.action===`end`?`End session`:`Purge`;return(0,j.jsx)(`div`,{role:`dialog`,"aria-modal":`true`,className:`modal-overlay`,onClick:e=>{e.target===e.currentTarget&&!t&&n()},children:(0,j.jsxs)(`div`,{className:`modal-card`,children:[(0,j.jsx)(`h3`,{style:{margin:0,marginBottom:8,fontSize:16,fontWeight:600},children:i}),(0,j.jsx)(`p`,{style:{margin:0,marginBottom:12,fontSize:13},children:a}),(0,j.jsxs)(`div`,{className:`modal-action-row`,children:[(0,j.jsx)(`button`,{type:`button`,className:`modal-action-btn`,disabled:t,onClick:n,children:`Cancel`}),(0,j.jsx)(`button`,{type:`button`,className:`modal-action-btn`,"data-variant":`danger`,disabled:t,onClick:()=>r(),children:t?(0,j.jsx)(b,{size:13,className:`spinning`}):o})]})]})})}function We({onOpen:e}){return(0,j.jsx)(`footer`,{className:`admin-footer`,children:(0,j.jsxs)(`div`,{className:`powered-by`,role:`button`,tabIndex:0,onClick:e,onKeyDown:t=>{(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),e())},"aria-label":`Powered by Claude Code — show details`,children:[(0,j.jsx)(`img`,{src:`/brand/claude.png`,alt:`Claude`,className:`powered-by-icon`}),(0,j.jsx)(`span`,{children:`Powered by Claude Code`})]})})}var Ge=t((e=>{var t=o();function n(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var r=typeof Object.is==`function`?Object.is:n,i=t.useState,a=t.useEffect,s=t.useLayoutEffect,c=t.useDebugValue;function l(e,t){var n=t(),r=i({inst:{value:n,getSnapshot:t}}),o=r[0].inst,l=r[1];return s(function(){o.value=n,o.getSnapshot=t,u(o)&&l({inst:o})},[e,n,t]),a(function(){return u(o)&&l({inst:o}),e(function(){u(o)&&l({inst:o})})},[e]),c(n),n}function u(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!r(e,n)}catch{return!0}}function d(e,t){return t()}var f=typeof window>`u`||window.document===void 0||window.document.createElement===void 0?d:l;e.useSyncExternalStore=t.useSyncExternalStore===void 0?f:t.useSyncExternalStore})),Ke=t(((e,t)=>{t.exports=Ge()})),qe=Ke(),Je=e(l(),1);function M(e){this.content=e}M.prototype={constructor:M,find:function(e){for(var t=0;t<this.content.length;t+=2)if(this.content[t]===e)return t;return-1},get:function(e){var t=this.find(e);return t==-1?void 0:this.content[t+1]},update:function(e,t,n){var r=n&&n!=e?this.remove(n):this,i=r.find(e),a=r.content.slice();return i==-1?a.push(n||e,t):(a[i+1]=t,n&&(a[i]=n)),new M(a)},remove:function(e){var t=this.find(e);if(t==-1)return this;var n=this.content.slice();return n.splice(t,2),new M(n)},addToStart:function(e,t){return new M([e,t].concat(this.remove(e).content))},addToEnd:function(e,t){var n=this.remove(e).content.slice();return n.push(e,t),new M(n)},addBefore:function(e,t,n){var r=this.remove(t),i=r.content.slice(),a=r.find(e);return i.splice(a==-1?i.length:a,0,t,n),new M(i)},forEach:function(e){for(var t=0;t<this.content.length;t+=2)e(this.content[t],this.content[t+1])},prepend:function(e){return e=M.from(e),e.size?new M(e.content.concat(this.subtract(e).content)):this},append:function(e){return e=M.from(e),e.size?new M(this.subtract(e).content.concat(e.content)):this},subtract:function(e){var t=this;e=M.from(e);for(var n=0;n<e.content.length;n+=2)t=t.remove(e.content[n]);return t},toObject:function(){var e={};return this.forEach(function(t,n){e[t]=n}),e},get size(){return this.content.length>>1}},M.from=function(e){if(e instanceof M)return e;var t=[];if(e)for(var n in e)t.push(n,e[n]);return new M(t)};function Ye(e,t,n){for(let r=0;;r++){if(r==e.childCount||r==t.childCount)return e.childCount==t.childCount?null:n;let i=e.child(r),a=t.child(r);if(i==a){n+=i.nodeSize;continue}if(!i.sameMarkup(a))return n;if(i.isText&&i.text!=a.text){for(let e=0;i.text[e]==a.text[e];e++)n++;return n}if(i.content.size||a.content.size){let e=Ye(i.content,a.content,n+1);if(e!=null)return e}n+=i.nodeSize}}function Xe(e,t,n,r){for(let i=e.childCount,a=t.childCount;;){if(i==0||a==0)return i==a?null:{a:n,b:r};let o=e.child(--i),s=t.child(--a),c=o.nodeSize;if(o==s){n-=c,r-=c;continue}if(!o.sameMarkup(s))return{a:n,b:r};if(o.isText&&o.text!=s.text){let e=0,t=Math.min(o.text.length,s.text.length);for(;e<t&&o.text[o.text.length-e-1]==s.text[s.text.length-e-1];)e++,n--,r--;return{a:n,b:r}}if(o.content.size||s.content.size){let e=Xe(o.content,s.content,n-1,r-1);if(e)return e}n-=c,r-=c}}var N=class e{constructor(e,t){if(this.content=e,this.size=t||0,t==null)for(let t=0;t<e.length;t++)this.size+=e[t].nodeSize}nodesBetween(e,t,n,r=0,i){for(let a=0,o=0;o<t;a++){let s=this.content[a],c=o+s.nodeSize;if(c>e&&n(s,r+o,i||null,a)!==!1&&s.content.size){let i=o+1;s.nodesBetween(Math.max(0,e-i),Math.min(s.content.size,t-i),n,r+i)}o=c}}descendants(e){this.nodesBetween(0,this.size,e)}textBetween(e,t,n,r){let i=``,a=!0;return this.nodesBetween(e,t,(o,s)=>{let c=o.isText?o.text.slice(Math.max(e,s)-s,t-s):o.isLeaf?r?typeof r==`function`?r(o):r:o.type.spec.leafText?o.type.spec.leafText(o):``:``;o.isBlock&&(o.isLeaf&&c||o.isTextblock)&&n&&(a?a=!1:i+=n),i+=c},0),i}append(t){if(!t.size)return this;if(!this.size)return t;let n=this.lastChild,r=t.firstChild,i=this.content.slice(),a=0;for(n.isText&&n.sameMarkup(r)&&(i[i.length-1]=n.withText(n.text+r.text),a=1);a<t.content.length;a++)i.push(t.content[a]);return new e(i,this.size+t.size)}cut(t,n=this.size){if(t==0&&n==this.size)return this;let r=[],i=0;if(n>t)for(let e=0,a=0;a<n;e++){let o=this.content[e],s=a+o.nodeSize;s>t&&((a<t||s>n)&&(o=o.isText?o.cut(Math.max(0,t-a),Math.min(o.text.length,n-a)):o.cut(Math.max(0,t-a-1),Math.min(o.content.size,n-a-1))),r.push(o),i+=o.nodeSize),a=s}return new e(r,i)}cutByIndex(t,n){return t==n?e.empty:t==0&&n==this.content.length?this:new e(this.content.slice(t,n))}replaceChild(t,n){let r=this.content[t];if(r==n)return this;let i=this.content.slice(),a=this.size+n.nodeSize-r.nodeSize;return i[t]=n,new e(i,a)}addToStart(t){return new e([t].concat(this.content),this.size+t.nodeSize)}addToEnd(t){return new e(this.content.concat(t),this.size+t.nodeSize)}eq(e){if(this.content.length!=e.content.length)return!1;for(let t=0;t<this.content.length;t++)if(!this.content[t].eq(e.content[t]))return!1;return!0}get firstChild(){return this.content.length?this.content[0]:null}get lastChild(){return this.content.length?this.content[this.content.length-1]:null}get childCount(){return this.content.length}child(e){let t=this.content[e];if(!t)throw RangeError(`Index `+e+` out of range for `+this);return t}maybeChild(e){return this.content[e]||null}forEach(e){for(let t=0,n=0;t<this.content.length;t++){let r=this.content[t];e(r,n,t),n+=r.nodeSize}}findDiffStart(e,t=0){return Ye(this,e,t)}findDiffEnd(e,t=this.size,n=e.size){return Xe(this,e,t,n)}findIndex(e){if(e==0)return Qe(0,e);if(e==this.size)return Qe(this.content.length,e);if(e>this.size||e<0)throw RangeError(`Position ${e} outside of fragment (${this})`);for(let t=0,n=0;;t++){let r=this.child(t),i=n+r.nodeSize;if(i>=e)return i==e?Qe(t+1,i):Qe(t,n);n=i}}toString(){return`<`+this.toStringInner()+`>`}toStringInner(){return this.content.join(`, `)}toJSON(){return this.content.length?this.content.map(e=>e.toJSON()):null}static fromJSON(t,n){if(!n)return e.empty;if(!Array.isArray(n))throw RangeError(`Invalid input for Fragment.fromJSON`);return new e(n.map(t.nodeFromJSON))}static fromArray(t){if(!t.length)return e.empty;let n,r=0;for(let e=0;e<t.length;e++){let i=t[e];r+=i.nodeSize,e&&i.isText&&t[e-1].sameMarkup(i)?(n||=t.slice(0,e),n[n.length-1]=i.withText(n[n.length-1].text+i.text)):n&&n.push(i)}return new e(n||t,r)}static from(t){if(!t)return e.empty;if(t instanceof e)return t;if(Array.isArray(t))return this.fromArray(t);if(t.attrs)return new e([t],t.nodeSize);throw RangeError(`Can not convert `+t+` to a Fragment`+(t.nodesBetween?` (looks like multiple versions of prosemirror-model were loaded)`:``))}};N.empty=new N([],0);var Ze={index:0,offset:0};function Qe(e,t){return Ze.index=e,Ze.offset=t,Ze}function $e(e,t){if(e===t)return!0;if(!(e&&typeof e==`object`)||!(t&&typeof t==`object`))return!1;let n=Array.isArray(e);if(Array.isArray(t)!=n)return!1;if(n){if(e.length!=t.length)return!1;for(let n=0;n<e.length;n++)if(!$e(e[n],t[n]))return!1}else{for(let n in e)if(!(n in t)||!$e(e[n],t[n]))return!1;for(let n in t)if(!(n in e))return!1}return!0}var P=class e{constructor(e,t){this.type=e,this.attrs=t}addToSet(e){let t,n=!1;for(let r=0;r<e.length;r++){let i=e[r];if(this.eq(i))return e;if(this.type.excludes(i.type))t||=e.slice(0,r);else if(i.type.excludes(this.type))return e;else !n&&i.type.rank>this.type.rank&&(t||=e.slice(0,r),t.push(this),n=!0),t&&t.push(i)}return t||=e.slice(),n||t.push(this),t}removeFromSet(e){for(let t=0;t<e.length;t++)if(this.eq(e[t]))return e.slice(0,t).concat(e.slice(t+1));return e}isInSet(e){for(let t=0;t<e.length;t++)if(this.eq(e[t]))return!0;return!1}eq(e){return this==e||this.type==e.type&&$e(this.attrs,e.attrs)}toJSON(){let e={type:this.type.name};for(let t in this.attrs){e.attrs=this.attrs;break}return e}static fromJSON(e,t){if(!t)throw RangeError(`Invalid input for Mark.fromJSON`);let n=e.marks[t.type];if(!n)throw RangeError(`There is no mark type ${t.type} in this schema`);let r=n.create(t.attrs);return n.checkAttrs(r.attrs),r}static sameSet(e,t){if(e==t)return!0;if(e.length!=t.length)return!1;for(let n=0;n<e.length;n++)if(!e[n].eq(t[n]))return!1;return!0}static setFrom(t){if(!t||Array.isArray(t)&&t.length==0)return e.none;if(t instanceof e)return[t];let n=t.slice();return n.sort((e,t)=>e.type.rank-t.type.rank),n}};P.none=[];var et=class extends Error{},F=class e{constructor(e,t,n){this.content=e,this.openStart=t,this.openEnd=n}get size(){return this.content.size-this.openStart-this.openEnd}insertAt(t,n){let r=nt(this.content,t+this.openStart,n);return r&&new e(r,this.openStart,this.openEnd)}removeBetween(t,n){return new e(tt(this.content,t+this.openStart,n+this.openStart),this.openStart,this.openEnd)}eq(e){return this.content.eq(e.content)&&this.openStart==e.openStart&&this.openEnd==e.openEnd}toString(){return this.content+`(`+this.openStart+`,`+this.openEnd+`)`}toJSON(){if(!this.content.size)return null;let e={content:this.content.toJSON()};return this.openStart>0&&(e.openStart=this.openStart),this.openEnd>0&&(e.openEnd=this.openEnd),e}static fromJSON(t,n){if(!n)return e.empty;let r=n.openStart||0,i=n.openEnd||0;if(typeof r!=`number`||typeof i!=`number`)throw RangeError(`Invalid input for Slice.fromJSON`);return new e(N.fromJSON(t,n.content),r,i)}static maxOpen(t,n=!0){let r=0,i=0;for(let e=t.firstChild;e&&!e.isLeaf&&(n||!e.type.spec.isolating);e=e.firstChild)r++;for(let e=t.lastChild;e&&!e.isLeaf&&(n||!e.type.spec.isolating);e=e.lastChild)i++;return new e(t,r,i)}};F.empty=new F(N.empty,0,0);function tt(e,t,n){let{index:r,offset:i}=e.findIndex(t),a=e.maybeChild(r),{index:o,offset:s}=e.findIndex(n);if(i==t||a.isText){if(s!=n&&!e.child(o).isText)throw RangeError(`Removing non-flat range`);return e.cut(0,t).append(e.cut(n))}if(r!=o)throw RangeError(`Removing non-flat range`);return e.replaceChild(r,a.copy(tt(a.content,t-i-1,n-i-1)))}function nt(e,t,n,r){let{index:i,offset:a}=e.findIndex(t),o=e.maybeChild(i);if(a==t||o.isText)return r&&!r.canReplace(i,i,n)?null:e.cut(0,t).append(n).append(e.cut(t));let s=nt(o.content,t-a-1,n,o);return s&&e.replaceChild(i,o.copy(s))}function rt(e,t,n){if(n.openStart>e.depth)throw new et(`Inserted content deeper than insertion position`);if(e.depth-n.openStart!=t.depth-n.openEnd)throw new et(`Inconsistent open depths`);return it(e,t,n,0)}function it(e,t,n,r){let i=e.index(r),a=e.node(r);if(i==t.index(r)&&r<e.depth-n.openStart){let o=it(e,t,n,r+1);return a.copy(a.content.replaceChild(i,o))}else if(!n.content.size)return lt(a,dt(e,t,r));else if(!n.openStart&&!n.openEnd&&e.depth==r&&t.depth==r){let r=e.parent,i=r.content;return lt(r,i.cut(0,e.parentOffset).append(n.content).append(i.cut(t.parentOffset)))}else{let{start:i,end:o}=ft(n,e);return lt(a,ut(e,i,o,t,r))}}function at(e,t){if(!t.type.compatibleContent(e.type))throw new et(`Cannot join `+t.type.name+` onto `+e.type.name)}function ot(e,t,n){let r=e.node(n);return at(r,t.node(n)),r}function st(e,t){let n=t.length-1;n>=0&&e.isText&&e.sameMarkup(t[n])?t[n]=e.withText(t[n].text+e.text):t.push(e)}function ct(e,t,n,r){let i=(t||e).node(n),a=0,o=t?t.index(n):i.childCount;e&&(a=e.index(n),e.depth>n?a++:e.textOffset&&(st(e.nodeAfter,r),a++));for(let e=a;e<o;e++)st(i.child(e),r);t&&t.depth==n&&t.textOffset&&st(t.nodeBefore,r)}function lt(e,t){return e.type.checkContent(t),e.copy(t)}function ut(e,t,n,r,i){let a=e.depth>i&&ot(e,t,i+1),o=r.depth>i&&ot(n,r,i+1),s=[];return ct(null,e,i,s),a&&o&&t.index(i)==n.index(i)?(at(a,o),st(lt(a,ut(e,t,n,r,i+1)),s)):(a&&st(lt(a,dt(e,t,i+1)),s),ct(t,n,i,s),o&&st(lt(o,dt(n,r,i+1)),s)),ct(r,null,i,s),new N(s)}function dt(e,t,n){let r=[];return ct(null,e,n,r),e.depth>n&&st(lt(ot(e,t,n+1),dt(e,t,n+1)),r),ct(t,null,n,r),new N(r)}function ft(e,t){let n=t.depth-e.openStart,r=t.node(n).copy(e.content);for(let e=n-1;e>=0;e--)r=t.node(e).copy(N.from(r));return{start:r.resolveNoCache(e.openStart+n),end:r.resolveNoCache(r.content.size-e.openEnd-n)}}var pt=class e{constructor(e,t,n){this.pos=e,this.path=t,this.parentOffset=n,this.depth=t.length/3-1}resolveDepth(e){return e==null?this.depth:e<0?this.depth+e:e}get parent(){return this.node(this.depth)}get doc(){return this.node(0)}node(e){return this.path[this.resolveDepth(e)*3]}index(e){return this.path[this.resolveDepth(e)*3+1]}indexAfter(e){return e=this.resolveDepth(e),this.index(e)+(e==this.depth&&!this.textOffset?0:1)}start(e){return e=this.resolveDepth(e),e==0?0:this.path[e*3-1]+1}end(e){return e=this.resolveDepth(e),this.start(e)+this.node(e).content.size}before(e){if(e=this.resolveDepth(e),!e)throw RangeError(`There is no position before the top-level node`);return e==this.depth+1?this.pos:this.path[e*3-1]}after(e){if(e=this.resolveDepth(e),!e)throw RangeError(`There is no position after the top-level node`);return e==this.depth+1?this.pos:this.path[e*3-1]+this.path[e*3].nodeSize}get textOffset(){return this.pos-this.path[this.path.length-1]}get nodeAfter(){let e=this.parent,t=this.index(this.depth);if(t==e.childCount)return null;let n=this.pos-this.path[this.path.length-1],r=e.child(t);return n?e.child(t).cut(n):r}get nodeBefore(){let e=this.index(this.depth),t=this.pos-this.path[this.path.length-1];return t?this.parent.child(e).cut(0,t):e==0?null:this.parent.child(e-1)}posAtIndex(e,t){t=this.resolveDepth(t);let n=this.path[t*3],r=t==0?0:this.path[t*3-1]+1;for(let t=0;t<e;t++)r+=n.child(t).nodeSize;return r}marks(){let e=this.parent,t=this.index();if(e.content.size==0)return P.none;if(this.textOffset)return e.child(t).marks;let n=e.maybeChild(t-1),r=e.maybeChild(t);if(!n){let e=n;n=r,r=e}let i=n.marks;for(var a=0;a<i.length;a++)i[a].type.spec.inclusive===!1&&(!r||!i[a].isInSet(r.marks))&&(i=i[a--].removeFromSet(i));return i}marksAcross(e){let t=this.parent.maybeChild(this.index());if(!t||!t.isInline)return null;let n=t.marks,r=e.parent.maybeChild(e.index());for(var i=0;i<n.length;i++)n[i].type.spec.inclusive===!1&&(!r||!n[i].isInSet(r.marks))&&(n=n[i--].removeFromSet(n));return n}sharedDepth(e){for(let t=this.depth;t>0;t--)if(this.start(t)<=e&&this.end(t)>=e)return t;return 0}blockRange(e=this,t){if(e.pos<this.pos)return e.blockRange(this);for(let n=this.depth-(this.parent.inlineContent||this.pos==e.pos?1:0);n>=0;n--)if(e.pos<=this.end(n)&&(!t||t(this.node(n))))return new _t(this,e,n);return null}sameParent(e){return this.pos-this.parentOffset==e.pos-e.parentOffset}max(e){return e.pos>this.pos?e:this}min(e){return e.pos<this.pos?e:this}toString(){let e=``;for(let t=1;t<=this.depth;t++)e+=(e?`/`:``)+this.node(t).type.name+`_`+this.index(t-1);return e+`:`+this.parentOffset}static resolve(t,n){if(!(n>=0&&n<=t.content.size))throw RangeError(`Position `+n+` out of range`);let r=[],i=0,a=n;for(let e=t;;){let{index:t,offset:n}=e.content.findIndex(a),o=a-n;if(r.push(e,t,i+n),!o||(e=e.child(t),e.isText))break;a=o-1,i+=n+1}return new e(n,r,a)}static resolveCached(t,n){let r=gt.get(t);if(r)for(let e=0;e<r.elts.length;e++){let t=r.elts[e];if(t.pos==n)return t}else gt.set(t,r=new mt);let i=r.elts[r.i]=e.resolve(t,n);return r.i=(r.i+1)%ht,i}},mt=class{constructor(){this.elts=[],this.i=0}},ht=12,gt=new WeakMap,_t=class{constructor(e,t,n){this.$from=e,this.$to=t,this.depth=n}get start(){return this.$from.before(this.depth+1)}get end(){return this.$to.after(this.depth+1)}get parent(){return this.$from.node(this.depth)}get startIndex(){return this.$from.index(this.depth)}get endIndex(){return this.$to.indexAfter(this.depth)}},vt=Object.create(null),yt=class e{constructor(e,t,n,r=P.none){this.type=e,this.attrs=t,this.marks=r,this.content=n||N.empty}get children(){return this.content.content}get nodeSize(){return this.isLeaf?1:2+this.content.size}get childCount(){return this.content.childCount}child(e){return this.content.child(e)}maybeChild(e){return this.content.maybeChild(e)}forEach(e){this.content.forEach(e)}nodesBetween(e,t,n,r=0){this.content.nodesBetween(e,t,n,r,this)}descendants(e){this.nodesBetween(0,this.content.size,e)}get textContent(){return this.isLeaf&&this.type.spec.leafText?this.type.spec.leafText(this):this.textBetween(0,this.content.size,``)}textBetween(e,t,n,r){return this.content.textBetween(e,t,n,r)}get firstChild(){return this.content.firstChild}get lastChild(){return this.content.lastChild}eq(e){return this==e||this.sameMarkup(e)&&this.content.eq(e.content)}sameMarkup(e){return this.hasMarkup(e.type,e.attrs,e.marks)}hasMarkup(e,t,n){return this.type==e&&$e(this.attrs,t||e.defaultAttrs||vt)&&P.sameSet(this.marks,n||P.none)}copy(t=null){return t==this.content?this:new e(this.type,this.attrs,t,this.marks)}mark(t){return t==this.marks?this:new e(this.type,this.attrs,this.content,t)}cut(e,t=this.content.size){return e==0&&t==this.content.size?this:this.copy(this.content.cut(e,t))}slice(e,t=this.content.size,n=!1){if(e==t)return F.empty;let r=this.resolve(e),i=this.resolve(t),a=n?0:r.sharedDepth(t),o=r.start(a);return new F(r.node(a).content.cut(r.pos-o,i.pos-o),r.depth-a,i.depth-a)}replace(e,t,n){return rt(this.resolve(e),this.resolve(t),n)}nodeAt(e){for(let t=this;;){let{index:n,offset:r}=t.content.findIndex(e);if(t=t.maybeChild(n),!t)return null;if(r==e||t.isText)return t;e-=r+1}}childAfter(e){let{index:t,offset:n}=this.content.findIndex(e);return{node:this.content.maybeChild(t),index:t,offset:n}}childBefore(e){if(e==0)return{node:null,index:0,offset:0};let{index:t,offset:n}=this.content.findIndex(e);if(n<e)return{node:this.content.child(t),index:t,offset:n};let r=this.content.child(t-1);return{node:r,index:t-1,offset:n-r.nodeSize}}resolve(e){return pt.resolveCached(this,e)}resolveNoCache(e){return pt.resolve(this,e)}rangeHasMark(e,t,n){let r=!1;return t>e&&this.nodesBetween(e,t,e=>(n.isInSet(e.marks)&&(r=!0),!r)),r}get isBlock(){return this.type.isBlock}get isTextblock(){return this.type.isTextblock}get inlineContent(){return this.type.inlineContent}get isInline(){return this.type.isInline}get isText(){return this.type.isText}get isLeaf(){return this.type.isLeaf}get isAtom(){return this.type.isAtom}toString(){if(this.type.spec.toDebugString)return this.type.spec.toDebugString(this);let e=this.type.name;return this.content.size&&(e+=`(`+this.content.toStringInner()+`)`),xt(this.marks,e)}contentMatchAt(e){let t=this.type.contentMatch.matchFragment(this.content,0,e);if(!t)throw Error(`Called contentMatchAt on a node with invalid content`);return t}canReplace(e,t,n=N.empty,r=0,i=n.childCount){let a=this.contentMatchAt(e).matchFragment(n,r,i),o=a&&a.matchFragment(this.content,t);if(!o||!o.validEnd)return!1;for(let e=r;e<i;e++)if(!this.type.allowsMarks(n.child(e).marks))return!1;return!0}canReplaceWith(e,t,n,r){if(r&&!this.type.allowsMarks(r))return!1;let i=this.contentMatchAt(e).matchType(n),a=i&&i.matchFragment(this.content,t);return a?a.validEnd:!1}canAppend(e){return e.content.size?this.canReplace(this.childCount,this.childCount,e.content):this.type.compatibleContent(e.type)}check(){this.type.checkContent(this.content),this.type.checkAttrs(this.attrs);let e=P.none;for(let t=0;t<this.marks.length;t++){let n=this.marks[t];n.type.checkAttrs(n.attrs),e=n.addToSet(e)}if(!P.sameSet(e,this.marks))throw RangeError(`Invalid collection of marks for node ${this.type.name}: ${this.marks.map(e=>e.type.name)}`);this.content.forEach(e=>e.check())}toJSON(){let e={type:this.type.name};for(let t in this.attrs){e.attrs=this.attrs;break}return this.content.size&&(e.content=this.content.toJSON()),this.marks.length&&(e.marks=this.marks.map(e=>e.toJSON())),e}static fromJSON(e,t){if(!t)throw RangeError(`Invalid input for Node.fromJSON`);let n;if(t.marks){if(!Array.isArray(t.marks))throw RangeError(`Invalid mark data for Node.fromJSON`);n=t.marks.map(e.markFromJSON)}if(t.type==`text`){if(typeof t.text!=`string`)throw RangeError(`Invalid text node in JSON`);return e.text(t.text,n)}let r=N.fromJSON(e,t.content),i=e.nodeType(t.type).create(t.attrs,r,n);return i.type.checkAttrs(i.attrs),i}};yt.prototype.text=void 0;var bt=class e extends yt{constructor(e,t,n,r){if(super(e,t,null,r),!n)throw RangeError(`Empty text nodes are not allowed`);this.text=n}toString(){return this.type.spec.toDebugString?this.type.spec.toDebugString(this):xt(this.marks,JSON.stringify(this.text))}get textContent(){return this.text}textBetween(e,t){return this.text.slice(e,t)}get nodeSize(){return this.text.length}mark(t){return t==this.marks?this:new e(this.type,this.attrs,this.text,t)}withText(t){return t==this.text?this:new e(this.type,this.attrs,t,this.marks)}cut(e=0,t=this.text.length){return e==0&&t==this.text.length?this:this.withText(this.text.slice(e,t))}eq(e){return this.sameMarkup(e)&&this.text==e.text}toJSON(){let e=super.toJSON();return e.text=this.text,e}};function xt(e,t){for(let n=e.length-1;n>=0;n--)t=e[n].type.name+`(`+t+`)`;return t}var St=class e{constructor(e){this.validEnd=e,this.next=[],this.wrapCache=[]}static parse(t,n){let r=new Ct(t,n);if(r.next==null)return e.empty;let i=wt(r);r.next&&r.err(`Unexpected trailing text`);let a=Pt(jt(i));return Ft(a,r),a}matchType(e){for(let t=0;t<this.next.length;t++)if(this.next[t].type==e)return this.next[t].next;return null}matchFragment(e,t=0,n=e.childCount){let r=this;for(let i=t;r&&i<n;i++)r=r.matchType(e.child(i).type);return r}get inlineContent(){return this.next.length!=0&&this.next[0].type.isInline}get defaultType(){for(let e=0;e<this.next.length;e++){let{type:t}=this.next[e];if(!(t.isText||t.hasRequiredAttrs()))return t}return null}compatible(e){for(let t=0;t<this.next.length;t++)for(let n=0;n<e.next.length;n++)if(this.next[t].type==e.next[n].type)return!0;return!1}fillBefore(e,t=!1,n=0){let r=[this];function i(a,o){let s=a.matchFragment(e,n);if(s&&(!t||s.validEnd))return N.from(o.map(e=>e.createAndFill()));for(let e=0;e<a.next.length;e++){let{type:t,next:n}=a.next[e];if(!(t.isText||t.hasRequiredAttrs())&&r.indexOf(n)==-1){r.push(n);let e=i(n,o.concat(t));if(e)return e}}return null}return i(this,[])}findWrapping(e){for(let t=0;t<this.wrapCache.length;t+=2)if(this.wrapCache[t]==e)return this.wrapCache[t+1];let t=this.computeWrapping(e);return this.wrapCache.push(e,t),t}computeWrapping(e){let t=Object.create(null),n=[{match:this,type:null,via:null}];for(;n.length;){let r=n.shift(),i=r.match;if(i.matchType(e)){let e=[];for(let t=r;t.type;t=t.via)e.push(t.type);return e.reverse()}for(let e=0;e<i.next.length;e++){let{type:a,next:o}=i.next[e];!a.isLeaf&&!a.hasRequiredAttrs()&&!(a.name in t)&&(!r.type||o.validEnd)&&(n.push({match:a.contentMatch,type:a,via:r}),t[a.name]=!0)}}return null}get edgeCount(){return this.next.length}edge(e){if(e>=this.next.length)throw RangeError(`There's no ${e}th edge in this content match`);return this.next[e]}toString(){let e=[];function t(n){e.push(n);for(let r=0;r<n.next.length;r++)e.indexOf(n.next[r].next)==-1&&t(n.next[r].next)}return t(this),e.map((t,n)=>{let r=n+(t.validEnd?`*`:` `)+` `;for(let n=0;n<t.next.length;n++)r+=(n?`, `:``)+t.next[n].type.name+`->`+e.indexOf(t.next[n].next);return r}).join(`
|
|
2
2
|
`)}};St.empty=new St(!0);var Ct=class{constructor(e,t){this.string=e,this.nodeTypes=t,this.inline=null,this.pos=0,this.tokens=e.split(/\s*(?=\b|\W|$)/),this.tokens[this.tokens.length-1]==``&&this.tokens.pop(),this.tokens[0]==``&&this.tokens.shift()}get next(){return this.tokens[this.pos]}eat(e){return this.next==e&&(this.pos++||!0)}err(e){throw SyntaxError(e+` (in content expression '`+this.string+`')`)}};function wt(e){let t=[];do t.push(Tt(e));while(e.eat(`|`));return t.length==1?t[0]:{type:`choice`,exprs:t}}function Tt(e){let t=[];do t.push(Et(e));while(e.next&&e.next!=`)`&&e.next!=`|`);return t.length==1?t[0]:{type:`seq`,exprs:t}}function Et(e){let t=At(e);for(;;)if(e.eat(`+`))t={type:`plus`,expr:t};else if(e.eat(`*`))t={type:`star`,expr:t};else if(e.eat(`?`))t={type:`opt`,expr:t};else if(e.eat(`{`))t=Ot(e,t);else break;return t}function Dt(e){/\D/.test(e.next)&&e.err(`Expected number, got '`+e.next+`'`);let t=Number(e.next);return e.pos++,t}function Ot(e,t){let n=Dt(e),r=n;return e.eat(`,`)&&(r=e.next==`}`?-1:Dt(e)),e.eat(`}`)||e.err(`Unclosed braced range`),{type:`range`,min:n,max:r,expr:t}}function kt(e,t){let n=e.nodeTypes,r=n[t];if(r)return[r];let i=[];for(let e in n){let r=n[e];r.isInGroup(t)&&i.push(r)}return i.length==0&&e.err(`No node type or group '`+t+`' found`),i}function At(e){if(e.eat(`(`)){let t=wt(e);return e.eat(`)`)||e.err(`Missing closing paren`),t}else if(/\W/.test(e.next))e.err(`Unexpected token '`+e.next+`'`);else{let t=kt(e,e.next).map(t=>(e.inline==null?e.inline=t.isInline:e.inline!=t.isInline&&e.err(`Mixing inline and block content`),{type:`name`,value:t}));return e.pos++,t.length==1?t[0]:{type:`choice`,exprs:t}}}function jt(e){let t=[[]];return i(a(e,0),n()),t;function n(){return t.push([])-1}function r(e,n,r){let i={term:r,to:n};return t[e].push(i),i}function i(e,t){e.forEach(e=>e.to=t)}function a(e,t){if(e.type==`choice`)return e.exprs.reduce((e,n)=>e.concat(a(n,t)),[]);if(e.type==`seq`)for(let r=0;;r++){let o=a(e.exprs[r],t);if(r==e.exprs.length-1)return o;i(o,t=n())}else if(e.type==`star`){let o=n();return r(t,o),i(a(e.expr,o),o),[r(o)]}else if(e.type==`plus`){let o=n();return i(a(e.expr,t),o),i(a(e.expr,o),o),[r(o)]}else if(e.type==`opt`)return[r(t)].concat(a(e.expr,t));else if(e.type==`range`){let o=t;for(let t=0;t<e.min;t++){let t=n();i(a(e.expr,o),t),o=t}if(e.max==-1)i(a(e.expr,o),o);else for(let t=e.min;t<e.max;t++){let t=n();r(o,t),i(a(e.expr,o),t),o=t}return[r(o)]}else if(e.type==`name`)return[r(t,void 0,e.value)];else throw Error(`Unknown expr type`)}}function Mt(e,t){return t-e}function Nt(e,t){let n=[];return r(t),n.sort(Mt);function r(t){let i=e[t];if(i.length==1&&!i[0].term)return r(i[0].to);n.push(t);for(let e=0;e<i.length;e++){let{term:t,to:a}=i[e];!t&&n.indexOf(a)==-1&&r(a)}}}function Pt(e){let t=Object.create(null);return n(Nt(e,0));function n(r){let i=[];r.forEach(t=>{e[t].forEach(({term:t,to:n})=>{if(!t)return;let r;for(let e=0;e<i.length;e++)i[e][0]==t&&(r=i[e][1]);Nt(e,n).forEach(e=>{r||i.push([t,r=[]]),r.indexOf(e)==-1&&r.push(e)})})});let a=t[r.join(`,`)]=new St(r.indexOf(e.length-1)>-1);for(let e=0;e<i.length;e++){let r=i[e][1].sort(Mt);a.next.push({type:i[e][0],next:t[r.join(`,`)]||n(r)})}return a}}function Ft(e,t){for(let n=0,r=[e];n<r.length;n++){let e=r[n],i=!e.validEnd,a=[];for(let t=0;t<e.next.length;t++){let{type:n,next:o}=e.next[t];a.push(n.name),i&&!(n.isText||n.hasRequiredAttrs())&&(i=!1),r.indexOf(o)==-1&&r.push(o)}i&&t.err(`Only non-generatable nodes (`+a.join(`, `)+`) in a required position (see https://prosemirror.net/docs/guide/#generatable)`)}}function It(e){let t=Object.create(null);for(let n in e){let r=e[n];if(!r.hasDefault)return null;t[n]=r.default}return t}function Lt(e,t){let n=Object.create(null);for(let r in e){let i=t&&t[r];if(i===void 0){let t=e[r];if(t.hasDefault)i=t.default;else throw RangeError(`No value supplied for attribute `+r)}n[r]=i}return n}function Rt(e,t,n,r){for(let r in t)if(!(r in e))throw RangeError(`Unsupported attribute ${r} for ${n} of type ${r}`);for(let n in e){let r=e[n];r.validate&&r.validate(t[n])}}function zt(e,t){let n=Object.create(null);if(t)for(let r in t)n[r]=new Ht(e,r,t[r]);return n}var Bt=class e{constructor(e,t,n){this.name=e,this.schema=t,this.spec=n,this.markSet=null,this.groups=n.group?n.group.split(` `):[],this.attrs=zt(e,n.attrs),this.defaultAttrs=It(this.attrs),this.contentMatch=null,this.inlineContent=null,this.isBlock=!(n.inline||e==`text`),this.isText=e==`text`}get isInline(){return!this.isBlock}get isTextblock(){return this.isBlock&&this.inlineContent}get isLeaf(){return this.contentMatch==St.empty}get isAtom(){return this.isLeaf||!!this.spec.atom}isInGroup(e){return this.groups.indexOf(e)>-1}get whitespace(){return this.spec.whitespace||(this.spec.code?`pre`:`normal`)}hasRequiredAttrs(){for(let e in this.attrs)if(this.attrs[e].isRequired)return!0;return!1}compatibleContent(e){return this==e||this.contentMatch.compatible(e.contentMatch)}computeAttrs(e){return!e&&this.defaultAttrs?this.defaultAttrs:Lt(this.attrs,e)}create(e=null,t,n){if(this.isText)throw Error(`NodeType.create can't construct text nodes`);return new yt(this,this.computeAttrs(e),N.from(t),P.setFrom(n))}createChecked(e=null,t,n){return t=N.from(t),this.checkContent(t),new yt(this,this.computeAttrs(e),t,P.setFrom(n))}createAndFill(e=null,t,n){if(e=this.computeAttrs(e),t=N.from(t),t.size){let e=this.contentMatch.fillBefore(t);if(!e)return null;t=e.append(t)}let r=this.contentMatch.matchFragment(t),i=r&&r.fillBefore(N.empty,!0);return i?new yt(this,e,t.append(i),P.setFrom(n)):null}validContent(e){let t=this.contentMatch.matchFragment(e);if(!t||!t.validEnd)return!1;for(let t=0;t<e.childCount;t++)if(!this.allowsMarks(e.child(t).marks))return!1;return!0}checkContent(e){if(!this.validContent(e))throw RangeError(`Invalid content for node ${this.name}: ${e.toString().slice(0,50)}`)}checkAttrs(e){Rt(this.attrs,e,`node`,this.name)}allowsMarkType(e){return this.markSet==null||this.markSet.indexOf(e)>-1}allowsMarks(e){if(this.markSet==null)return!0;for(let t=0;t<e.length;t++)if(!this.allowsMarkType(e[t].type))return!1;return!0}allowedMarks(e){if(this.markSet==null)return e;let t;for(let n=0;n<e.length;n++)this.allowsMarkType(e[n].type)?t&&t.push(e[n]):t||=e.slice(0,n);return t?t.length?t:P.none:e}static compile(t,n){let r=Object.create(null);t.forEach((t,i)=>r[t]=new e(t,n,i));let i=n.spec.topNode||`doc`;if(!r[i])throw RangeError(`Schema is missing its top node type ('`+i+`')`);if(!r.text)throw RangeError(`Every schema needs a 'text' type`);for(let e in r.text.attrs)throw RangeError(`The text node type should not have attributes`);return r}};function Vt(e,t,n){let r=n.split(`|`);return n=>{let i=n===null?`null`:typeof n;if(r.indexOf(i)<0)throw RangeError(`Expected value of type ${r} for attribute ${t} on type ${e}, got ${i}`)}}var Ht=class{constructor(e,t,n){this.hasDefault=Object.prototype.hasOwnProperty.call(n,`default`),this.default=n.default,this.validate=typeof n.validate==`string`?Vt(e,t,n.validate):n.validate}get isRequired(){return!this.hasDefault}},Ut=class e{constructor(e,t,n,r){this.name=e,this.rank=t,this.schema=n,this.spec=r,this.attrs=zt(e,r.attrs),this.excluded=null;let i=It(this.attrs);this.instance=i?new P(this,i):null}create(e=null){return!e&&this.instance?this.instance:new P(this,Lt(this.attrs,e))}static compile(t,n){let r=Object.create(null),i=0;return t.forEach((t,a)=>r[t]=new e(t,i++,n,a)),r}removeFromSet(e){for(var t=0;t<e.length;t++)e[t].type==this&&(e=e.slice(0,t).concat(e.slice(t+1)),t--);return e}isInSet(e){for(let t=0;t<e.length;t++)if(e[t].type==this)return e[t]}checkAttrs(e){Rt(this.attrs,e,`mark`,this.name)}excludes(e){return this.excluded.indexOf(e)>-1}},Wt=class{constructor(e){this.linebreakReplacement=null,this.cached=Object.create(null);let t=this.spec={};for(let n in e)t[n]=e[n];t.nodes=M.from(e.nodes),t.marks=M.from(e.marks||{}),this.nodes=Bt.compile(this.spec.nodes,this),this.marks=Ut.compile(this.spec.marks,this);let n=Object.create(null);for(let e in this.nodes){if(e in this.marks)throw RangeError(e+` can not be both a node and a mark`);let t=this.nodes[e],r=t.spec.content||``,i=t.spec.marks;if(t.contentMatch=n[r]||(n[r]=St.parse(r,this.nodes)),t.inlineContent=t.contentMatch.inlineContent,t.spec.linebreakReplacement){if(this.linebreakReplacement)throw RangeError(`Multiple linebreak nodes defined`);if(!t.isInline||!t.isLeaf)throw RangeError(`Linebreak replacement nodes must be inline leaf nodes`);this.linebreakReplacement=t}t.markSet=i==`_`?null:i?Gt(this,i.split(` `)):i==``||!t.inlineContent?[]:null}for(let e in this.marks){let t=this.marks[e],n=t.spec.excludes;t.excluded=n==null?[t]:n==``?[]:Gt(this,n.split(` `))}this.nodeFromJSON=e=>yt.fromJSON(this,e),this.markFromJSON=e=>P.fromJSON(this,e),this.topNodeType=this.nodes[this.spec.topNode||`doc`],this.cached.wrappings=Object.create(null)}node(e,t=null,n,r){if(typeof e==`string`)e=this.nodeType(e);else if(!(e instanceof Bt))throw RangeError(`Invalid node type: `+e);else if(e.schema!=this)throw RangeError(`Node type from different schema used (`+e.name+`)`);return e.createChecked(t,n,r)}text(e,t){let n=this.nodes.text;return new bt(n,n.defaultAttrs,e,P.setFrom(t))}mark(e,t){return typeof e==`string`&&(e=this.marks[e]),e.create(t)}nodeType(e){let t=this.nodes[e];if(!t)throw RangeError(`Unknown node type: `+e);return t}};function Gt(e,t){let n=[];for(let r=0;r<t.length;r++){let i=t[r],a=e.marks[i],o=a;if(a)n.push(a);else for(let t in e.marks){let r=e.marks[t];(i==`_`||r.spec.group&&r.spec.group.split(` `).indexOf(i)>-1)&&n.push(o=r)}if(!o)throw SyntaxError(`Unknown mark type: '`+t[r]+`'`)}return n}function Kt(e){return e.tag!=null}function qt(e){return e.style!=null}var Jt=class e{constructor(e,t){this.schema=e,this.rules=t,this.tags=[],this.styles=[];let n=this.matchedStyles=[];t.forEach(e=>{if(Kt(e))this.tags.push(e);else if(qt(e)){let t=/[^=]*/.exec(e.style)[0];n.indexOf(t)<0&&n.push(t),this.styles.push(e)}}),this.normalizeLists=!this.tags.some(t=>{if(!/^(ul|ol)\b/.test(t.tag)||!t.node)return!1;let n=e.nodes[t.node];return n.contentMatch.matchType(n)})}parse(e,t={}){let n=new rn(this,t,!1);return n.addAll(e,P.none,t.from,t.to),n.finish()}parseSlice(e,t={}){let n=new rn(this,t,!0);return n.addAll(e,P.none,t.from,t.to),F.maxOpen(n.finish())}matchTag(e,t,n){for(let r=n?this.tags.indexOf(n)+1:0;r<this.tags.length;r++){let n=this.tags[r];if(on(e,n.tag)&&(n.namespace===void 0||e.namespaceURI==n.namespace)&&(!n.context||t.matchesContext(n.context))){if(n.getAttrs){let t=n.getAttrs(e);if(t===!1)continue;n.attrs=t||void 0}return n}}}matchStyle(e,t,n,r){for(let i=r?this.styles.indexOf(r)+1:0;i<this.styles.length;i++){let r=this.styles[i],a=r.style;if(!(a.indexOf(e)!=0||r.context&&!n.matchesContext(r.context)||a.length>e.length&&(a.charCodeAt(e.length)!=61||a.slice(e.length+1)!=t))){if(r.getAttrs){let e=r.getAttrs(t);if(e===!1)continue;r.attrs=e||void 0}return r}}}static schemaRules(e){let t=[];function n(e){let n=e.priority==null?50:e.priority,r=0;for(;r<t.length;r++){let e=t[r];if((e.priority==null?50:e.priority)<n)break}t.splice(r,0,e)}for(let t in e.marks){let r=e.marks[t].spec.parseDOM;r&&r.forEach(e=>{n(e=sn(e)),e.mark||e.ignore||e.clearMark||(e.mark=t)})}for(let t in e.nodes){let r=e.nodes[t].spec.parseDOM;r&&r.forEach(e=>{n(e=sn(e)),e.node||e.ignore||e.mark||(e.node=t)})}return t}static fromSchema(t){return t.cached.domParser||(t.cached.domParser=new e(t,e.schemaRules(t)))}},Yt={address:!0,article:!0,aside:!0,blockquote:!0,canvas:!0,dd:!0,div:!0,dl:!0,fieldset:!0,figcaption:!0,figure:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,li:!0,noscript:!0,ol:!0,output:!0,p:!0,pre:!0,section:!0,table:!0,tfoot:!0,ul:!0},Xt={head:!0,noscript:!0,object:!0,script:!0,style:!0,title:!0},Zt={ol:!0,ul:!0},Qt=1,$t=2,en=4;function tn(e,t,n){return t==null?e&&e.whitespace==`pre`?Qt|$t:n&~en:(t?Qt:0)|(t===`full`?$t:0)}var nn=class{constructor(e,t,n,r,i,a){this.type=e,this.attrs=t,this.marks=n,this.solid=r,this.options=a,this.content=[],this.activeMarks=P.none,this.match=i||(a&en?null:e.contentMatch)}findWrapping(e){if(!this.match){if(!this.type)return[];let t=this.type.contentMatch.fillBefore(N.from(e));if(t)this.match=this.type.contentMatch.matchFragment(t);else{let t=this.type.contentMatch,n;return(n=t.findWrapping(e.type))?(this.match=t,n):null}}return this.match.findWrapping(e.type)}finish(e){if(!(this.options&Qt)){let e=this.content[this.content.length-1],t;if(e&&e.isText&&(t=/[ \t\r\n\u000c]+$/.exec(e.text))){let n=e;e.text.length==t[0].length?this.content.pop():this.content[this.content.length-1]=n.withText(n.text.slice(0,n.text.length-t[0].length))}}let t=N.from(this.content);return!e&&this.match&&(t=t.append(this.match.fillBefore(N.empty,!0))),this.type?this.type.create(this.attrs,t,this.marks):t}inlineContext(e){return this.type?this.type.inlineContent:this.content.length?this.content[0].isInline:e.parentNode&&!Yt.hasOwnProperty(e.parentNode.nodeName.toLowerCase())}},rn=class{constructor(e,t,n){this.parser=e,this.options=t,this.isOpen=n,this.open=0,this.localPreserveWS=!1;let r=t.topNode,i,a=tn(null,t.preserveWhitespace,0)|(n?en:0);i=r?new nn(r.type,r.attrs,P.none,!0,t.topMatch||r.type.contentMatch,a):n?new nn(null,null,P.none,!0,null,a):new nn(e.schema.topNodeType,null,P.none,!0,null,a),this.nodes=[i],this.find=t.findPositions,this.needsBlock=!1}get top(){return this.nodes[this.open]}addDOM(e,t){e.nodeType==3?this.addTextNode(e,t):e.nodeType==1&&this.addElement(e,t)}addTextNode(e,t){let n=e.nodeValue,r=this.top,i=r.options&$t?`full`:this.localPreserveWS||(r.options&Qt)>0,{schema:a}=this.parser;if(i===`full`||r.inlineContext(e)||/[^ \t\r\n\u000c]/.test(n)){if(!i){if(n=n.replace(/[ \t\r\n\u000c]+/g,` `),/^[ \t\r\n\u000c]/.test(n)&&this.open==this.nodes.length-1){let t=r.content[r.content.length-1],i=e.previousSibling;(!t||i&&i.nodeName==`BR`||t.isText&&/[ \t\r\n\u000c]$/.test(t.text))&&(n=n.slice(1))}}else if(i===`full`)n=n.replace(/\r\n?/g,`
|
|
3
3
|
`);else if(a.linebreakReplacement&&/[\r\n]/.test(n)&&this.top.findWrapping(a.linebreakReplacement.create())){let e=n.split(/\r?\n|\r/);for(let n=0;n<e.length;n++)n&&this.insertNode(a.linebreakReplacement.create(),t,!0),e[n]&&this.insertNode(a.text(e[n]),t,!/\S/.test(e[n]));n=``}else n=n.replace(/\r?\n|\r/g,` `);n&&this.insertNode(a.text(n),t,!/\S/.test(n)),this.findInText(e)}else this.findInside(e)}addElement(e,t,n){let r=this.localPreserveWS,i=this.top;(e.tagName==`PRE`||/pre/.test(e.style&&e.style.whiteSpace))&&(this.localPreserveWS=!0);let a=e.nodeName.toLowerCase(),o;Zt.hasOwnProperty(a)&&this.parser.normalizeLists&&an(e);let s=this.options.ruleFromNode&&this.options.ruleFromNode(e)||(o=this.parser.matchTag(e,this,n));out:if(s?s.ignore:Xt.hasOwnProperty(a))this.findInside(e),this.ignoreFallback(e,t);else if(!s||s.skip||s.closeParent){s&&s.closeParent?this.open=Math.max(0,this.open-1):s&&s.skip.nodeType&&(e=s.skip);let n,r=this.needsBlock;if(Yt.hasOwnProperty(a))i.content.length&&i.content[0].isInline&&this.open&&(this.open--,i=this.top),n=!0,i.type||(this.needsBlock=!0);else if(!e.firstChild){this.leafFallback(e,t);break out}let o=s&&s.skip?t:this.readStyles(e,t);o&&this.addAll(e,o),n&&this.sync(i),this.needsBlock=r}else{let n=this.readStyles(e,t);n&&this.addElementByRule(e,s,n,s.consuming===!1?o:void 0)}this.localPreserveWS=r}leafFallback(e,t){e.nodeName==`BR`&&this.top.type&&this.top.type.inlineContent&&this.addTextNode(e.ownerDocument.createTextNode(`
|
|
4
4
|
`),t)}ignoreFallback(e,t){e.nodeName==`BR`&&(!this.top.type||!this.top.type.inlineContent)&&this.findPlace(this.parser.schema.text(`-`),t,!0)}readStyles(e,t){let n=e.style;if(n&&n.length)for(let e=0;e<this.parser.matchedStyles.length;e++){let r=this.parser.matchedStyles[e],i=n.getPropertyValue(r);if(i)for(let e;;){let n=this.parser.matchStyle(r,i,this,e);if(!n)break;if(n.ignore)return null;if(t=n.clearMark?t.filter(e=>!n.clearMark(e)):t.concat(this.parser.schema.marks[n.mark].create(n.attrs)),n.consuming===!1)e=n;else break}}return t}addElementByRule(e,t,n,r){let i,a;if(t.node)if(a=this.parser.schema.nodes[t.node],a.isLeaf)this.insertNode(a.create(t.attrs),n,e.nodeName==`BR`)||this.leafFallback(e,n);else{let e=this.enter(a,t.attrs||null,n,t.preserveWhitespace);e&&(i=!0,n=e)}else{let e=this.parser.schema.marks[t.mark];n=n.concat(e.create(t.attrs))}let o=this.top;if(a&&a.isLeaf)this.findInside(e);else if(r)this.addElement(e,n,r);else if(t.getContent)this.findInside(e),t.getContent(e,this.parser.schema).forEach(e=>this.insertNode(e,n,!1));else{let r=e;typeof t.contentElement==`string`?r=e.querySelector(t.contentElement):typeof t.contentElement==`function`?r=t.contentElement(e):t.contentElement&&(r=t.contentElement),this.findAround(e,r,!0),this.addAll(r,n),this.findAround(e,r,!1)}i&&this.sync(o)&&this.open--}addAll(e,t,n,r){let i=n||0;for(let a=n?e.childNodes[n]:e.firstChild,o=r==null?null:e.childNodes[r];a!=o;a=a.nextSibling,++i)this.findAtPoint(e,i),this.addDOM(a,t);this.findAtPoint(e,i)}findPlace(e,t,n){let r,i;for(let t=this.open,a=0;t>=0;t--){let o=this.nodes[t],s=o.findWrapping(e);if(s&&(!r||r.length>s.length+a)&&(r=s,i=o,!s.length))break;if(o.solid){if(n)break;a+=2}}if(!r)return null;this.sync(i);for(let e=0;e<r.length;e++)t=this.enterInner(r[e],null,t,!1);return t}insertNode(e,t,n){if(e.isInline&&this.needsBlock&&!this.top.type){let e=this.textblockFromContext();e&&(t=this.enterInner(e,null,t))}let r=this.findPlace(e,t,n);if(r){this.closeExtra();let t=this.top;t.match&&=t.match.matchType(e.type);let n=P.none;for(let i of r.concat(e.marks))(t.type?t.type.allowsMarkType(i.type):cn(i.type,e.type))&&(n=i.addToSet(n));return t.content.push(e.mark(n)),!0}return!1}enter(e,t,n,r){let i=this.findPlace(e.create(t),n,!1);return i&&=this.enterInner(e,t,n,!0,r),i}enterInner(e,t,n,r=!1,i){this.closeExtra();let a=this.top;a.match=a.match&&a.match.matchType(e);let o=tn(e,i,a.options);a.options&en&&a.content.length==0&&(o|=en);let s=P.none;return n=n.filter(t=>(a.type?a.type.allowsMarkType(t.type):cn(t.type,e))?(s=t.addToSet(s),!1):!0),this.nodes.push(new nn(e,t,s,r,null,o)),this.open++,n}closeExtra(e=!1){let t=this.nodes.length-1;if(t>this.open){for(;t>this.open;t--)this.nodes[t-1].content.push(this.nodes[t].finish(e));this.nodes.length=this.open+1}}finish(){return this.open=0,this.closeExtra(this.isOpen),this.nodes[0].finish(!!(this.isOpen||this.options.topOpen))}sync(e){for(let t=this.open;t>=0;t--)if(this.nodes[t]==e)return this.open=t,!0;else this.localPreserveWS&&(this.nodes[t].options|=Qt);return!1}get currentPos(){this.closeExtra();let e=0;for(let t=this.open;t>=0;t--){let n=this.nodes[t].content;for(let t=n.length-1;t>=0;t--)e+=n[t].nodeSize;t&&e++}return e}findAtPoint(e,t){if(this.find)for(let n=0;n<this.find.length;n++)this.find[n].node==e&&this.find[n].offset==t&&(this.find[n].pos=this.currentPos)}findInside(e){if(this.find)for(let t=0;t<this.find.length;t++)this.find[t].pos==null&&e.nodeType==1&&e.contains(this.find[t].node)&&(this.find[t].pos=this.currentPos)}findAround(e,t,n){if(e!=t&&this.find)for(let r=0;r<this.find.length;r++)this.find[r].pos==null&&e.nodeType==1&&e.contains(this.find[r].node)&&t.compareDocumentPosition(this.find[r].node)&(n?2:4)&&(this.find[r].pos=this.currentPos)}findInText(e){if(this.find)for(let t=0;t<this.find.length;t++)this.find[t].node==e&&(this.find[t].pos=this.currentPos-(e.nodeValue.length-this.find[t].offset))}matchesContext(e){if(e.indexOf(`|`)>-1)return e.split(/\s*\|\s*/).some(this.matchesContext,this);let t=e.split(`/`),n=this.options.context,r=!this.isOpen&&(!n||n.parent.type==this.nodes[0].type),i=-(n?n.depth+1:0)+(r?0:1),a=(e,o)=>{for(;e>=0;e--){let s=t[e];if(s==``){if(e==t.length-1||e==0)continue;for(;o>=i;o--)if(a(e-1,o))return!0;return!1}else{let e=o>0||o==0&&r?this.nodes[o].type:n&&o>=i?n.node(o-i).type:null;if(!e||e.name!=s&&!e.isInGroup(s))return!1;o--}}return!0};return a(t.length-1,this.open)}textblockFromContext(){let e=this.options.context;if(e)for(let t=e.depth;t>=0;t--){let n=e.node(t).contentMatchAt(e.indexAfter(t)).defaultType;if(n&&n.isTextblock&&n.defaultAttrs)return n}for(let e in this.parser.schema.nodes){let t=this.parser.schema.nodes[e];if(t.isTextblock&&t.defaultAttrs)return t}}};function an(e){for(let t=e.firstChild,n=null;t;t=t.nextSibling){let e=t.nodeType==1?t.nodeName.toLowerCase():null;e&&Zt.hasOwnProperty(e)&&n?(n.appendChild(t),t=n):e==`li`?n=t:e&&(n=null)}}function on(e,t){return(e.matches||e.msMatchesSelector||e.webkitMatchesSelector||e.mozMatchesSelector).call(e,t)}function sn(e){let t={};for(let n in e)t[n]=e[n];return t}function cn(e,t){let n=t.schema.nodes;for(let r in n){let i=n[r];if(!i.allowsMarkType(e))continue;let a=[],o=e=>{a.push(e);for(let n=0;n<e.edgeCount;n++){let{type:r,next:i}=e.edge(n);if(r==t||a.indexOf(i)<0&&o(i))return!0}};if(o(i.contentMatch))return!0}}var ln=class e{constructor(e,t){this.nodes=e,this.marks=t}serializeFragment(e,t={},n){n||=dn(t).createDocumentFragment();let r=n,i=[];return e.forEach(e=>{if(i.length||e.marks.length){let n=0,a=0;for(;n<i.length&&a<e.marks.length;){let t=e.marks[a];if(!this.marks[t.type.name]){a++;continue}if(!t.eq(i[n][0])||t.type.spec.spanning===!1)break;n++,a++}for(;n<i.length;)r=i.pop()[1];for(;a<e.marks.length;){let n=e.marks[a++],o=this.serializeMark(n,e.isInline,t);o&&(i.push([n,r]),r.appendChild(o.dom),r=o.contentDOM||o.dom)}}r.appendChild(this.serializeNodeInner(e,t))}),n}serializeNodeInner(e,t){let{dom:n,contentDOM:r}=hn(dn(t),this.nodes[e.type.name](e),null,e.attrs);if(r){if(e.isLeaf)throw RangeError(`Content hole not allowed in a leaf node spec`);this.serializeFragment(e.content,t,r)}return n}serializeNode(e,t={}){let n=this.serializeNodeInner(e,t);for(let r=e.marks.length-1;r>=0;r--){let i=this.serializeMark(e.marks[r],e.isInline,t);i&&((i.contentDOM||i.dom).appendChild(n),n=i.dom)}return n}serializeMark(e,t,n={}){let r=this.marks[e.type.name];return r&&hn(dn(n),r(e,t),null,e.attrs)}static renderSpec(e,t,n=null,r){return hn(e,t,n,r)}static fromSchema(t){return t.cached.domSerializer||(t.cached.domSerializer=new e(this.nodesFromSchema(t),this.marksFromSchema(t)))}static nodesFromSchema(e){let t=un(e.nodes);return t.text||=e=>e.text,t}static marksFromSchema(e){return un(e.marks)}};function un(e){let t={};for(let n in e){let r=e[n].spec.toDOM;r&&(t[n]=r)}return t}function dn(e){return e.document||window.document}var fn=new WeakMap;function pn(e){let t=fn.get(e);return t===void 0&&fn.set(e,t=mn(e)),t}function mn(e){let t=null;function n(e){if(e&&typeof e==`object`)if(Array.isArray(e))if(typeof e[0]==`string`)t||=[],t.push(e);else for(let t=0;t<e.length;t++)n(e[t]);else for(let t in e)n(e[t])}return n(e),t}function hn(e,t,n,r){if(typeof t==`string`)return{dom:e.createTextNode(t)};if(t.nodeType!=null)return{dom:t};if(t.dom&&t.dom.nodeType!=null)return t;let i=t[0],a;if(typeof i!=`string`)throw RangeError(`Invalid array passed to renderSpec`);if(r&&(a=pn(r))&&a.indexOf(t)>-1)throw RangeError(`Using an array from an attribute object as a DOM spec. This may be an attempted cross site scripting attack.`);let o=i.indexOf(` `);o>0&&(n=i.slice(0,o),i=i.slice(o+1));let s,c=n?e.createElementNS(n,i):e.createElement(i),l=t[1],u=1;if(l&&typeof l==`object`&&l.nodeType==null&&!Array.isArray(l)){u=2;for(let e in l)if(l[e]!=null){let t=e.indexOf(` `);t>0?c.setAttributeNS(e.slice(0,t),e.slice(t+1),l[e]):e==`style`&&c.style?c.style.cssText=l[e]:c.setAttribute(e,l[e])}}for(let i=u;i<t.length;i++){let a=t[i];if(a===0){if(i<t.length-1||i>u)throw RangeError(`Content hole must be the only child of its parent node`);return{dom:c,contentDOM:c}}else{let{dom:t,contentDOM:i}=hn(e,a,n,r);if(c.appendChild(t),i){if(s)throw RangeError(`Multiple content holes`);s=i}}}return{dom:c,contentDOM:s}}var gn=65535,_n=2**16;function vn(e,t){return e+t*_n}function yn(e){return e&gn}function bn(e){return(e-(e&gn))/_n}var xn=1,Sn=2,Cn=4,wn=8,Tn=class{constructor(e,t,n){this.pos=e,this.delInfo=t,this.recover=n}get deleted(){return(this.delInfo&wn)>0}get deletedBefore(){return(this.delInfo&(xn|Cn))>0}get deletedAfter(){return(this.delInfo&(Sn|Cn))>0}get deletedAcross(){return(this.delInfo&Cn)>0}},En=class e{constructor(t,n=!1){if(this.ranges=t,this.inverted=n,!t.length&&e.empty)return e.empty}recover(e){let t=0,n=yn(e);if(!this.inverted)for(let e=0;e<n;e++)t+=this.ranges[e*3+2]-this.ranges[e*3+1];return this.ranges[n*3]+t+bn(e)}mapResult(e,t=1){return this._map(e,t,!1)}map(e,t=1){return this._map(e,t,!0)}_map(e,t,n){let r=0,i=this.inverted?2:1,a=this.inverted?1:2;for(let o=0;o<this.ranges.length;o+=3){let s=this.ranges[o]-(this.inverted?r:0);if(s>e)break;let c=this.ranges[o+i],l=this.ranges[o+a],u=s+c;if(e<=u){let i=c?e==s?-1:e==u?1:t:t,a=s+r+(i<0?0:l);if(n)return a;let d=e==(t<0?s:u)?null:vn(o/3,e-s),f=e==s?Sn:e==u?xn:Cn;return(t<0?e!=s:e!=u)&&(f|=wn),new Tn(a,f,d)}r+=l-c}return n?e+r:new Tn(e+r,0,null)}touches(e,t){let n=0,r=yn(t),i=this.inverted?2:1,a=this.inverted?1:2;for(let t=0;t<this.ranges.length;t+=3){let o=this.ranges[t]-(this.inverted?n:0);if(o>e)break;let s=this.ranges[t+i];if(e<=o+s&&t==r*3)return!0;n+=this.ranges[t+a]-s}return!1}forEach(e){let t=this.inverted?2:1,n=this.inverted?1:2;for(let r=0,i=0;r<this.ranges.length;r+=3){let a=this.ranges[r],o=a-(this.inverted?i:0),s=a+(this.inverted?0:i),c=this.ranges[r+t],l=this.ranges[r+n];e(o,o+c,s,s+l),i+=l-c}}invert(){return new e(this.ranges,!this.inverted)}toString(){return(this.inverted?`-`:``)+JSON.stringify(this.ranges)}static offset(t){return t==0?e.empty:new e(t<0?[0,-t,0]:[0,0,t])}};En.empty=new En([]);var Dn=class e{constructor(e,t,n=0,r=e?e.length:0){this.mirror=t,this.from=n,this.to=r,this._maps=e||[],this.ownData=!(e||t)}get maps(){return this._maps}slice(t=0,n=this.maps.length){return new e(this._maps,this.mirror,t,n)}appendMap(e,t){this.ownData||=(this._maps=this._maps.slice(),this.mirror=this.mirror&&this.mirror.slice(),!0),this.to=this._maps.push(e),t!=null&&this.setMirror(this._maps.length-1,t)}appendMapping(e){for(let t=0,n=this._maps.length;t<e._maps.length;t++){let r=e.getMirror(t);this.appendMap(e._maps[t],r!=null&&r<t?n+r:void 0)}}getMirror(e){if(this.mirror){for(let t=0;t<this.mirror.length;t++)if(this.mirror[t]==e)return this.mirror[t+(t%2?-1:1)]}}setMirror(e,t){this.mirror||=[],this.mirror.push(e,t)}appendMappingInverted(e){for(let t=e.maps.length-1,n=this._maps.length+e._maps.length;t>=0;t--){let r=e.getMirror(t);this.appendMap(e._maps[t].invert(),r!=null&&r>t?n-r-1:void 0)}}invert(){let t=new e;return t.appendMappingInverted(this),t}map(e,t=1){if(this.mirror)return this._map(e,t,!0);for(let n=this.from;n<this.to;n++)e=this._maps[n].map(e,t);return e}mapResult(e,t=1){return this._map(e,t,!1)}_map(e,t,n){let r=0;for(let n=this.from;n<this.to;n++){let i=this._maps[n].mapResult(e,t);if(i.recover!=null){let t=this.getMirror(n);if(t!=null&&t>n&&t<this.to){n=t,e=this._maps[t].recover(i.recover);continue}}r|=i.delInfo,e=i.pos}return n?e:new Tn(e,r,null)}},On=Object.create(null),kn=class{getMap(){return En.empty}merge(e){return null}static fromJSON(e,t){if(!t||!t.stepType)throw RangeError(`Invalid input for Step.fromJSON`);let n=On[t.stepType];if(!n)throw RangeError(`No step type ${t.stepType} defined`);return n.fromJSON(e,t)}static jsonID(e,t){if(e in On)throw RangeError(`Duplicate use of step JSON ID `+e);return On[e]=t,t.prototype.jsonID=e,t}},An=class e{constructor(e,t){this.doc=e,this.failed=t}static ok(t){return new e(t,null)}static fail(t){return new e(null,t)}static fromReplace(t,n,r,i){try{return e.ok(t.replace(n,r,i))}catch(t){if(t instanceof et)return e.fail(t.message);throw t}}};function jn(e,t,n){let r=[];for(let i=0;i<e.childCount;i++){let a=e.child(i);a.content.size&&(a=a.copy(jn(a.content,t,a))),a.isInline&&(a=t(a,n,i)),r.push(a)}return N.fromArray(r)}var Mn=class e extends kn{constructor(e,t,n){super(),this.from=e,this.to=t,this.mark=n}apply(e){let t=e.slice(this.from,this.to),n=e.resolve(this.from),r=n.node(n.sharedDepth(this.to)),i=new F(jn(t.content,(e,t)=>!e.isAtom||!t.type.allowsMarkType(this.mark.type)?e:e.mark(this.mark.addToSet(e.marks)),r),t.openStart,t.openEnd);return An.fromReplace(e,this.from,this.to,i)}invert(){return new Nn(this.from,this.to,this.mark)}map(t){let n=t.mapResult(this.from,1),r=t.mapResult(this.to,-1);return n.deleted&&r.deleted||n.pos>=r.pos?null:new e(n.pos,r.pos,this.mark)}merge(t){return t instanceof e&&t.mark.eq(this.mark)&&this.from<=t.to&&this.to>=t.from?new e(Math.min(this.from,t.from),Math.max(this.to,t.to),this.mark):null}toJSON(){return{stepType:`addMark`,mark:this.mark.toJSON(),from:this.from,to:this.to}}static fromJSON(t,n){if(typeof n.from!=`number`||typeof n.to!=`number`)throw RangeError(`Invalid input for AddMarkStep.fromJSON`);return new e(n.from,n.to,t.markFromJSON(n.mark))}};kn.jsonID(`addMark`,Mn);var Nn=class e extends kn{constructor(e,t,n){super(),this.from=e,this.to=t,this.mark=n}apply(e){let t=e.slice(this.from,this.to),n=new F(jn(t.content,e=>e.mark(this.mark.removeFromSet(e.marks)),e),t.openStart,t.openEnd);return An.fromReplace(e,this.from,this.to,n)}invert(){return new Mn(this.from,this.to,this.mark)}map(t){let n=t.mapResult(this.from,1),r=t.mapResult(this.to,-1);return n.deleted&&r.deleted||n.pos>=r.pos?null:new e(n.pos,r.pos,this.mark)}merge(t){return t instanceof e&&t.mark.eq(this.mark)&&this.from<=t.to&&this.to>=t.from?new e(Math.min(this.from,t.from),Math.max(this.to,t.to),this.mark):null}toJSON(){return{stepType:`removeMark`,mark:this.mark.toJSON(),from:this.from,to:this.to}}static fromJSON(t,n){if(typeof n.from!=`number`||typeof n.to!=`number`)throw RangeError(`Invalid input for RemoveMarkStep.fromJSON`);return new e(n.from,n.to,t.markFromJSON(n.mark))}};kn.jsonID(`removeMark`,Nn);var Pn=class e extends kn{constructor(e,t){super(),this.pos=e,this.mark=t}apply(e){let t=e.nodeAt(this.pos);if(!t)return An.fail(`No node at mark step's position`);let n=t.type.create(t.attrs,null,this.mark.addToSet(t.marks));return An.fromReplace(e,this.pos,this.pos+1,new F(N.from(n),0,t.isLeaf?0:1))}invert(t){let n=t.nodeAt(this.pos);if(n){let t=this.mark.addToSet(n.marks);if(t.length==n.marks.length){for(let r=0;r<n.marks.length;r++)if(!n.marks[r].isInSet(t))return new e(this.pos,n.marks[r]);return new e(this.pos,this.mark)}}return new Fn(this.pos,this.mark)}map(t){let n=t.mapResult(this.pos,1);return n.deletedAfter?null:new e(n.pos,this.mark)}toJSON(){return{stepType:`addNodeMark`,pos:this.pos,mark:this.mark.toJSON()}}static fromJSON(t,n){if(typeof n.pos!=`number`)throw RangeError(`Invalid input for AddNodeMarkStep.fromJSON`);return new e(n.pos,t.markFromJSON(n.mark))}};kn.jsonID(`addNodeMark`,Pn);var Fn=class e extends kn{constructor(e,t){super(),this.pos=e,this.mark=t}apply(e){let t=e.nodeAt(this.pos);if(!t)return An.fail(`No node at mark step's position`);let n=t.type.create(t.attrs,null,this.mark.removeFromSet(t.marks));return An.fromReplace(e,this.pos,this.pos+1,new F(N.from(n),0,t.isLeaf?0:1))}invert(e){let t=e.nodeAt(this.pos);return!t||!this.mark.isInSet(t.marks)?this:new Pn(this.pos,this.mark)}map(t){let n=t.mapResult(this.pos,1);return n.deletedAfter?null:new e(n.pos,this.mark)}toJSON(){return{stepType:`removeNodeMark`,pos:this.pos,mark:this.mark.toJSON()}}static fromJSON(t,n){if(typeof n.pos!=`number`)throw RangeError(`Invalid input for RemoveNodeMarkStep.fromJSON`);return new e(n.pos,t.markFromJSON(n.mark))}};kn.jsonID(`removeNodeMark`,Fn);var In=class e extends kn{constructor(e,t,n,r=!1){super(),this.from=e,this.to=t,this.slice=n,this.structure=r}apply(e){return this.structure&&Rn(e,this.from,this.to)?An.fail(`Structure replace would overwrite content`):An.fromReplace(e,this.from,this.to,this.slice)}getMap(){return new En([this.from,this.to-this.from,this.slice.size])}invert(t){return new e(this.from,this.from+this.slice.size,t.slice(this.from,this.to))}map(t){let n=t.mapResult(this.from,1),r=t.mapResult(this.to,-1);return n.deletedAcross&&r.deletedAcross?null:new e(n.pos,Math.max(n.pos,r.pos),this.slice,this.structure)}merge(t){if(!(t instanceof e)||t.structure||this.structure)return null;if(this.from+this.slice.size==t.from&&!this.slice.openEnd&&!t.slice.openStart){let n=this.slice.size+t.slice.size==0?F.empty:new F(this.slice.content.append(t.slice.content),this.slice.openStart,t.slice.openEnd);return new e(this.from,this.to+(t.to-t.from),n,this.structure)}else if(t.to==this.from&&!this.slice.openStart&&!t.slice.openEnd){let n=this.slice.size+t.slice.size==0?F.empty:new F(t.slice.content.append(this.slice.content),t.slice.openStart,this.slice.openEnd);return new e(t.from,this.to,n,this.structure)}else return null}toJSON(){let e={stepType:`replace`,from:this.from,to:this.to};return this.slice.size&&(e.slice=this.slice.toJSON()),this.structure&&(e.structure=!0),e}static fromJSON(t,n){if(typeof n.from!=`number`||typeof n.to!=`number`)throw RangeError(`Invalid input for ReplaceStep.fromJSON`);return new e(n.from,n.to,F.fromJSON(t,n.slice),!!n.structure)}};kn.jsonID(`replace`,In);var Ln=class e extends kn{constructor(e,t,n,r,i,a,o=!1){super(),this.from=e,this.to=t,this.gapFrom=n,this.gapTo=r,this.slice=i,this.insert=a,this.structure=o}apply(e){if(this.structure&&(Rn(e,this.from,this.gapFrom)||Rn(e,this.gapTo,this.to)))return An.fail(`Structure gap-replace would overwrite content`);let t=e.slice(this.gapFrom,this.gapTo);if(t.openStart||t.openEnd)return An.fail(`Gap is not a flat range`);let n=this.slice.insertAt(this.insert,t.content);return n?An.fromReplace(e,this.from,this.to,n):An.fail(`Content does not fit in gap`)}getMap(){return new En([this.from,this.gapFrom-this.from,this.insert,this.gapTo,this.to-this.gapTo,this.slice.size-this.insert])}invert(t){let n=this.gapTo-this.gapFrom;return new e(this.from,this.from+this.slice.size+n,this.from+this.insert,this.from+this.insert+n,t.slice(this.from,this.to).removeBetween(this.gapFrom-this.from,this.gapTo-this.from),this.gapFrom-this.from,this.structure)}map(t){let n=t.mapResult(this.from,1),r=t.mapResult(this.to,-1),i=this.from==this.gapFrom?n.pos:t.map(this.gapFrom,-1),a=this.to==this.gapTo?r.pos:t.map(this.gapTo,1);return n.deletedAcross&&r.deletedAcross||i<n.pos||a>r.pos?null:new e(n.pos,r.pos,i,a,this.slice,this.insert,this.structure)}toJSON(){let e={stepType:`replaceAround`,from:this.from,to:this.to,gapFrom:this.gapFrom,gapTo:this.gapTo,insert:this.insert};return this.slice.size&&(e.slice=this.slice.toJSON()),this.structure&&(e.structure=!0),e}static fromJSON(t,n){if(typeof n.from!=`number`||typeof n.to!=`number`||typeof n.gapFrom!=`number`||typeof n.gapTo!=`number`||typeof n.insert!=`number`)throw RangeError(`Invalid input for ReplaceAroundStep.fromJSON`);return new e(n.from,n.to,n.gapFrom,n.gapTo,F.fromJSON(t,n.slice),n.insert,!!n.structure)}};kn.jsonID(`replaceAround`,Ln);function Rn(e,t,n){let r=e.resolve(t),i=n-t,a=r.depth;for(;i>0&&a>0&&r.indexAfter(a)==r.node(a).childCount;)a--,i--;if(i>0){let e=r.node(a).maybeChild(r.indexAfter(a));for(;i>0;){if(!e||e.isLeaf)return!0;e=e.firstChild,i--}}return!1}function zn(e,t,n,r){let i=[],a=[],o,s;e.doc.nodesBetween(t,n,(e,c,l)=>{if(!e.isInline)return;let u=e.marks;if(!r.isInSet(u)&&l.type.allowsMarkType(r.type)){let l=Math.max(c,t),d=Math.min(c+e.nodeSize,n),f=r.addToSet(u);for(let e=0;e<u.length;e++)u[e].isInSet(f)||(o&&o.to==l&&o.mark.eq(u[e])?o.to=d:i.push(o=new Nn(l,d,u[e])));s&&s.to==l?s.to=d:a.push(s=new Mn(l,d,r))}}),i.forEach(t=>e.step(t)),a.forEach(t=>e.step(t))}function Bn(e,t,n,r){let i=[],a=0;e.doc.nodesBetween(t,n,(e,o)=>{if(!e.isInline)return;a++;let s=null;if(r instanceof Ut){let t=e.marks,n;for(;n=r.isInSet(t);)(s||=[]).push(n),t=n.removeFromSet(t)}else r?r.isInSet(e.marks)&&(s=[r]):s=e.marks;if(s&&s.length){let r=Math.min(o+e.nodeSize,n);for(let e=0;e<s.length;e++){let n=s[e],c;for(let e=0;e<i.length;e++){let t=i[e];t.step==a-1&&n.eq(i[e].style)&&(c=t)}c?(c.to=r,c.step=a):i.push({style:n,from:Math.max(o,t),to:r,step:a})}}}),i.forEach(t=>e.step(new Nn(t.from,t.to,t.style)))}function Vn(e,t,n,r=n.contentMatch,i=!0){let a=e.doc.nodeAt(t),o=[],s=t+1;for(let t=0;t<a.childCount;t++){let c=a.child(t),l=s+c.nodeSize,u=r.matchType(c.type);if(!u)o.push(new In(s,l,F.empty));else{r=u;for(let t=0;t<c.marks.length;t++)n.allowsMarkType(c.marks[t].type)||e.step(new Nn(s,l,c.marks[t]));if(i&&c.isText&&n.whitespace!=`pre`){let e,t=/\r?\n|\r/g,r;for(;e=t.exec(c.text);)r||=new F(N.from(n.schema.text(` `,n.allowedMarks(c.marks))),0,0),o.push(new In(s+e.index,s+e.index+e[0].length,r))}}s=l}if(!r.validEnd){let t=r.fillBefore(N.empty,!0);e.replace(s,s,new F(t,0,0))}for(let t=o.length-1;t>=0;t--)e.step(o[t])}function Hn(e,t,n){return(t==0||e.canReplace(t,e.childCount))&&(n==e.childCount||e.canReplace(0,n))}function Un(e){let t=e.parent.content.cutByIndex(e.startIndex,e.endIndex);for(let n=e.depth,r=0,i=0;;--n){let a=e.$from.node(n),o=e.$from.index(n)+r,s=e.$to.indexAfter(n)-i;if(n<e.depth&&a.canReplace(o,s,t))return n;if(n==0||a.type.spec.isolating||!Hn(a,o,s))break;o&&(r=1),s<a.childCount&&(i=1)}return null}function Wn(e,t,n){let{$from:r,$to:i,depth:a}=t,o=r.before(a+1),s=i.after(a+1),c=o,l=s,u=N.empty,d=0;for(let e=a,t=!1;e>n;e--)t||r.index(e)>0?(t=!0,u=N.from(r.node(e).copy(u)),d++):c--;let f=N.empty,p=0;for(let e=a,t=!1;e>n;e--)t||i.after(e+1)<i.end(e)?(t=!0,f=N.from(i.node(e).copy(f)),p++):l++;e.step(new Ln(c,l,o,s,new F(u.append(f),d,p),u.size-d,!0))}function Gn(e,t,n=null,r=e){let i=qn(e,t),a=i&&Jn(r,t);return a?i.map(Kn).concat({type:t,attrs:n}).concat(a.map(Kn)):null}function Kn(e){return{type:e,attrs:null}}function qn(e,t){let{parent:n,startIndex:r,endIndex:i}=e,a=n.contentMatchAt(r).findWrapping(t);if(!a)return null;let o=a.length?a[0]:t;return n.canReplaceWith(r,i,o)?a:null}function Jn(e,t){let{parent:n,startIndex:r,endIndex:i}=e,a=n.child(r),o=t.contentMatch.findWrapping(a.type);if(!o)return null;let s=(o.length?o[o.length-1]:t).contentMatch;for(let e=r;s&&e<i;e++)s=s.matchType(n.child(e).type);return!s||!s.validEnd?null:o}function Yn(e,t,n){let r=N.empty;for(let e=n.length-1;e>=0;e--){if(r.size){let t=n[e].type.contentMatch.matchFragment(r);if(!t||!t.validEnd)throw RangeError(`Wrapper type given to Transform.wrap does not form valid content of its parent wrapper`)}r=N.from(n[e].type.create(n[e].attrs,r))}let i=t.start,a=t.end;e.step(new Ln(i,a,i,a,new F(r,0,0),n.length,!0))}function Xn(e,t,n,r,i){if(!r.isTextblock)throw RangeError(`Type given to setBlockType should be a textblock`);let a=e.steps.length;e.doc.nodesBetween(t,n,(t,n)=>{let o=typeof i==`function`?i(t):i;if(t.isTextblock&&!t.hasMarkup(r,o)&&$n(e.doc,e.mapping.slice(a).map(n),r)){let i=null;if(r.schema.linebreakReplacement){let e=r.whitespace==`pre`,t=!!r.contentMatch.matchType(r.schema.linebreakReplacement);e&&!t?i=!1:!e&&t&&(i=!0)}i===!1&&Qn(e,t,n,a),Vn(e,e.mapping.slice(a).map(n,1),r,void 0,i===null);let s=e.mapping.slice(a),c=s.map(n,1),l=s.map(n+t.nodeSize,1);return e.step(new Ln(c,l,c+1,l-1,new F(N.from(r.create(o,null,t.marks)),0,0),1,!0)),i===!0&&Zn(e,t,n,a),!1}})}function Zn(e,t,n,r){t.forEach((i,a)=>{if(i.isText){let o,s=/\r?\n|\r/g;for(;o=s.exec(i.text);){let i=e.mapping.slice(r).map(n+1+a+o.index);e.replaceWith(i,i+1,t.type.schema.linebreakReplacement.create())}}})}function Qn(e,t,n,r){t.forEach((i,a)=>{if(i.type==i.type.schema.linebreakReplacement){let i=e.mapping.slice(r).map(n+1+a);e.replaceWith(i,i+1,t.type.schema.text(`
|
|
@@ -213,4 +213,4 @@ Please report this to https://github.com/markedjs/marked.`,e){let e=`<p>An error
|
|
|
213
213
|
a { color: #7C8C72; }
|
|
214
214
|
.title { font-size: 20px; font-weight: 600; margin-bottom: 16px; padding-bottom: 8px;
|
|
215
215
|
border-bottom: 1px solid rgba(0,0,0,0.06); }
|
|
216
|
-
`;function kC({data:e,onSubmit:t,submitted:n,isStreaming:r}){let{title:a,content:o,filePath:s,readOnly:c}=e??{},l=a??`Document`,u=(0,A.useCallback)(e=>{t(JSON.stringify({_lifecycle:!0,component:`document-editor`,event:e,...s?{filePath:s}:{}}))},[t,s]),[d,f]=(0,A.useState)(`idle`),p=(0,A.useRef)(null),h=(0,A.useRef)(null),[g,y]=(0,A.useState)(!1),[b,S]=(0,A.useState)(!1),[C,w]=(0,A.useState)(`idle`),te=(0,A.useRef)(o),re=(0,A.useMemo)(()=>Lb.extend({markdownTokenizer:null}),[]),ie=(0,A.useMemo)(()=>[Rx.configure({orderedList:!1}),re,ub.configure({openOnClick:!1}),SC,EC],[re]),T=(0,A.useCallback)(e=>e.replace(/\u2014/g,`-`).replace(/\u2013/g,`-`).replace(/\u201C/g,`"`).replace(/\u201D/g,`"`).replace(/\u2018/g,`'`).replace(/\u2019/g,`'`).replace(/\u2026/g,`...`).replace(/\u00A0/g,` `),[]),E=mm({extensions:ie,content:(0,A.useMemo)(()=>o&&T(o),[o,T]),contentType:`markdown`,editable:!c,editorProps:{attributes:{class:`doc-editor__content`,role:`textbox`,"aria-multiline":`true`}},onUpdate:({editor:e})=>{c||(p.current&&clearTimeout(p.current),p.current=setTimeout(()=>{let n=e.getMarkdown();f(`saving`),t(JSON.stringify({action:`save`,content:n,...s?{filePath:s}:{}})),u(`auto-saved`),h.current&&clearTimeout(h.current),f(`saved`),h.current=setTimeout(()=>f(`idle`),2e3)},500))},onCreate:({editor:e})=>{e||y(!0)},onFocus:()=>S(!0),onBlur:()=>S(!1)}),O=wC({title:l,isStreaming:r,persistent:!0,channelName:`maxy-doc-editor`,renderPopout:(0,A.useCallback)((e,t)=>{let n=e.document;n.open(),n.close(),n.title=t;let r=n.createElement(`style`);r.textContent=OC,n.head.appendChild(r);let i=n.createElement(`div`);i.className=`title`,i.textContent=t,n.body.appendChild(i);let a=n.createElement(`pre`);a.style.whiteSpace=`pre-wrap`,a.style.fontFamily=`inherit`,a.style.background=`transparent`,a.style.padding=`0`,a.textContent=E?.getMarkdown()??``,n.body.appendChild(a)},[E]),onSyncMessage:(0,A.useCallback)(e=>{let t=e;t?.type===`content`&&t.markdown&&E&&E.commands.setContent(T(t.markdown),{contentType:`markdown`})},[E,T])});(0,A.useEffect)(()=>{O.poppedOut&&E&&O.syncToPopout({type:`content`,markdown:E.getMarkdown(),title:l})},[O.poppedOut]);let k=TC({onSubmit:t}),ae=(0,A.useRef)(null);(0,A.useEffect)(()=>{if(!E||!o||o===te.current)return;te.current=o;let e=T(o);if(ae.current&&=(E.off(`blur`,ae.current),null),!E.isFocused)E.commands.setContent(e,{contentType:`markdown`});else{let t=()=>{E.commands.setContent(e,{contentType:`markdown`}),E.off(`blur`,t),ae.current=null};ae.current=t,E.on(`blur`,t)}},[E,o,T]),(0,A.useEffect)(()=>(u(`rendered`),()=>{p.current&&clearTimeout(p.current),h.current&&clearTimeout(h.current)}),[]);let oe=(0,A.useCallback)(()=>{if(!E)return;let{from:e,to:t}=E.state.selection;e!==t&&k.openCommentInput()},[E,k]),se=(0,A.useCallback)(()=>{if(!E)return;let{from:e,to:t}=E.state.selection,n=E.state.doc.textBetween(e,t);if(!n)return;let r=k.submitComment(n,{startOffset:e,endOffset:t});r&&E.chain().focus().setMark(`comment`,{commentId:r,commentText:k.commentText,createdAt:new Date().toISOString()}).run()},[E,k]),ce=(0,A.useCallback)(()=>{c||!E||(S(!0),E.commands.focus())},[c,E]),le=(0,A.useCallback)(()=>{if(!E||!s)return;let e=E.getMarkdown();!e.trim()&&!window.confirm(`Save empty document?`)||(t(JSON.stringify({action:`approve`,content:e,filePath:s})),u(`approved`),w(`approved`))},[E,s,t,u]),ue=(0,A.useCallback)(()=>{if(!E)return;let e=E.getMarkdown(),n=(l||``).replace(/\.md$/i,``).toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-+|-+$/g,``).slice(0,80)||`document`,r=new Blob([e],{type:`text/markdown;charset=utf-8`}),i=URL.createObjectURL(r),a=document.createElement(`a`);a.href=i,a.download=`${n}.md`,a.click(),URL.revokeObjectURL(i),t(JSON.stringify({_lifecycle:!0,component:`document-editor`,event:`downloaded`,title:l,contentLength:e.length,...s?{filePath:s}:{}}))},[E,l,s,t]);if(n&&!c)return(0,j.jsxs)(`div`,{className:`editor-base doc-editor doc-editor--approved`,children:[(0,j.jsxs)(`div`,{className:`editor-base__bar`,children:[(0,j.jsx)(m,{className:`editor-base__icon`}),(0,j.jsx)(`span`,{className:`editor-base__title`,children:l}),(0,j.jsx)(`div`,{className:`editor-base__actions`,children:(0,j.jsx)(`span`,{className:`editor-base__status`,children:`Approved`})})]}),(0,j.jsx)(`div`,{className:`doc-editor__body`,children:(0,j.jsx)(DC,{content:o||``})})]});if(g||!E)return(0,j.jsxs)(`div`,{className:`editor-base doc-editor`,children:[(0,j.jsxs)(`div`,{className:`editor-base__bar`,...O.dragBarProps,children:[(0,j.jsx)(m,{className:`editor-base__icon`}),(0,j.jsx)(`span`,{className:`editor-base__title`,children:l})]}),(0,j.jsx)(DC,{content:o||``})]});let de=typeof window<`u`&&window.innerWidth<640,pe=typeof BroadcastChannel<`u`,he=(0,j.jsxs)(`div`,{className:`editor-base__actions`,children:[d===`saving`&&(0,j.jsx)(`span`,{className:`editor-base__status`,children:`Saving...`}),d===`saved`&&(0,j.jsx)(`span`,{className:`editor-base__status`,children:`Saved`}),C===`approved`&&(0,j.jsx)(`span`,{className:`editor-base__status`,children:`Approved`}),c&&(0,j.jsx)(`span`,{className:`editor-base__status`,children:`View only`}),s&&!c&&C!==`approved`&&(0,j.jsx)(D,{variant:`ghost`,size:`sm`,icon:i,onClick:le,"aria-label":`Approve`,children:`Approve`}),(0,j.jsx)(D,{variant:`ghost`,size:`sm`,icon:ne,onClick:ue,"aria-label":`Download`}),k.pendingComments.length>0&&(0,j.jsxs)(D,{variant:`ghost`,size:`sm`,onClick:k.sendComments,children:[`Send `,k.pendingComments.length,` comment`,k.pendingComments.length>1?`s`:``]}),!de&&pe&&!O.poppedOut&&(0,j.jsx)(D,{variant:`ghost`,size:`sm`,icon:_,onClick:O.handlePopout,"aria-label":`Pop out`}),!O.fullscreen&&(0,j.jsx)(D,{variant:`ghost`,size:`sm`,icon:ye,onClick:O.handleFullscreen,"aria-label":`Full screen`}),O.fullscreen&&(0,j.jsx)(D,{variant:`ghost`,size:`sm`,icon:xe,onClick:O.exitFullscreen,"aria-label":`Exit full screen`}),(0,j.jsx)(D,{variant:`ghost`,size:`sm`,icon:ee,onClick:O.handleMinimise,"aria-label":`Minimise`})]}),ge=c?null:(0,j.jsx)(D_,{editor:E,children:(0,j.jsxs)(`div`,{className:`doc-editor__bubble-menu`,role:`toolbar`,"aria-label":`Formatting`,children:[(0,j.jsx)(D,{variant:`ghost`,size:`sm`,icon:fe,onClick:()=>E.chain().focus().toggleBold().run(),"aria-label":`Bold`,"aria-pressed":E.isActive(`bold`)}),(0,j.jsx)(D,{variant:`ghost`,size:`sm`,icon:_e,onClick:()=>E.chain().focus().toggleItalic().run(),"aria-label":`Italic`,"aria-pressed":E.isActive(`italic`)}),(0,j.jsx)(D,{variant:`ghost`,size:`sm`,icon:ve,onClick:()=>{let e=window.prompt(`URL`);e&&E.chain().focus().setLink({href:e}).run()},"aria-label":`Link`,"aria-pressed":E.isActive(`link`)}),(0,j.jsx)(D,{variant:`ghost`,size:`sm`,icon:me,onClick:()=>E.chain().focus().toggleCode().run(),"aria-label":`Code`,"aria-pressed":E.isActive(`code`)}),(0,j.jsx)(`div`,{className:`doc-editor__bubble-divider`}),(0,j.jsx)(D,{variant:`ghost`,size:`sm`,icon:be,onClick:oe,"aria-label":`Add comment`})]})}),Se=k.showCommentInput?(0,j.jsxs)(`div`,{className:`doc-editor__comment-popover`,children:[(0,j.jsx)(`input`,{ref:k.commentInputRef,type:`text`,value:k.commentText,onChange:e=>k.setCommentText(e.target.value),onKeyDown:e=>{e.key===`Enter`&&se(),e.key===`Escape`&&k.cancelComment()},placeholder:`Add a comment...`,className:`doc-editor__comment-input`,"aria-label":`Add comment`}),(0,j.jsxs)(`div`,{className:`doc-editor__comment-actions`,children:[(0,j.jsx)(D,{variant:`primary`,size:`sm`,onClick:se,disabled:!k.commentText.trim(),children:`Add`}),(0,j.jsx)(D,{variant:`ghost`,size:`sm`,icon:v,onClick:k.cancelComment,"aria-label":`Cancel`})]})]}):null;if(O.fullscreen)return(0,j.jsxs)(`div`,{className:`editor-base-fullscreen`,children:[(0,j.jsxs)(`div`,{className:`editor-base-fullscreen__bar`,...O.dragBarProps,children:[(0,j.jsx)(m,{className:`editor-base__icon`}),(0,j.jsx)(`span`,{className:`editor-base-fullscreen__title`,children:l}),he]}),(0,j.jsx)(`div`,{className:`editor-base-fullscreen__body`,children:b||c?(0,j.jsxs)(j.Fragment,{children:[ge,Se,(0,j.jsx)(om,{editor:E})]}):(0,j.jsx)(`div`,{className:`doc-editor__preview`,onClick:ce,role:`button`,tabIndex:0,onKeyDown:e=>(e.key===`Enter`||e.key===` `)&&ce(),children:(0,j.jsx)(DC,{content:E?.getMarkdown()??o??``})})})]});if(O.poppedOut)return(0,j.jsx)(`div`,{className:`editor-base editor-base--popout`,children:(0,j.jsxs)(`div`,{className:`editor-base__bar`,...O.dragBarProps,children:[(0,j.jsx)(m,{className:`editor-base__icon`}),(0,j.jsx)(`span`,{className:`editor-base__title`,children:l}),(0,j.jsxs)(`div`,{className:`editor-base__actions`,children:[(0,j.jsx)(`span`,{className:`editor-base__status`,children:`Popped out`}),(0,j.jsx)(D,{variant:`ghost`,size:`sm`,icon:we,onClick:O.handlePopIn,"aria-label":`Pop back in`}),(0,j.jsx)(D,{variant:`ghost`,size:`sm`,icon:ee,onClick:O.handleMinimise,"aria-label":`Close`})]})]})});if(O.minimised)return(0,j.jsx)(`div`,{className:`editor-base editor-base--minimised`,onClick:O.handleExpand,role:`button`,tabIndex:0,onKeyDown:e=>e.key===`Enter`&&O.handleExpand(),children:(0,j.jsxs)(`div`,{className:`editor-base__bar`,...O.dragBarProps,children:[(0,j.jsx)(m,{className:`editor-base__icon`}),(0,j.jsx)(`span`,{className:`editor-base__title`,children:l}),(0,j.jsxs)(`div`,{className:`editor-base__actions`,onClick:e=>e.stopPropagation(),children:[!de&&pe&&(0,j.jsx)(D,{variant:`ghost`,size:`sm`,icon:_,onClick:O.handlePopout,"aria-label":`Pop out`}),(0,j.jsx)(D,{variant:`ghost`,size:`sm`,icon:ye,onClick:O.handleFullscreen,"aria-label":`Full screen`}),(0,j.jsx)(D,{variant:`ghost`,size:`sm`,icon:x,onClick:O.handleExpand,"aria-label":`Expand`})]})]})});let Ce=E?.getMarkdown()??o??``;return(0,j.jsxs)(`div`,{className:`editor-base doc-editor`,children:[(0,j.jsxs)(`div`,{className:`editor-base__bar`,...O.dragBarProps,children:[(0,j.jsx)(m,{className:`editor-base__icon`}),(0,j.jsx)(`span`,{className:`editor-base__title`,children:l}),he]}),(0,j.jsx)(`div`,{className:`doc-editor__body`,children:b||c?(0,j.jsxs)(j.Fragment,{children:[ge,Se,(0,j.jsx)(om,{editor:E})]}):(0,j.jsx)(`div`,{className:`doc-editor__preview`,onClick:ce,role:`button`,tabIndex:0,onKeyDown:e=>(e.key===`Enter`||e.key===` `)&&ce(),children:(0,j.jsx)(DC,{content:Ce})})})]})}function AC(){(0,A.useEffect)(()=>{function e(e){e.data?.type===`vnc-clipboard`&&typeof e.data.text==`string`&&T(e.data.text)}window.addEventListener(`message`,e);let t=null;return typeof BroadcastChannel<`u`&&(t=new BroadcastChannel(`maxy-vnc-clipboard`),t.onmessage=e=>{typeof e.data==`string`&&T(e.data)}),()=>{window.removeEventListener(`message`,e),t?.close()}},[])}function jC(e){(0,A.useEffect)(()=>{let t=Date.now(),n=`/api/admin/browser-iframe/event`,r={brand:p.productName,surface:e};return fetch(n,{method:`POST`,credentials:`same-origin`,headers:{"Content-Type":`application/json`},body:JSON.stringify({event:`mount`,...r}),keepalive:!0}).catch(()=>{}),()=>{let e=JSON.stringify({event:`unmount`,durationMs:Date.now()-t,...r});try{let t=new Blob([e],{type:`application/json`});navigator.sendBeacon(n,t)||fetch(n,{method:`POST`,credentials:`same-origin`,headers:{"Content-Type":`application/json`},body:e,keepalive:!0}).catch(()=>{})}catch{}}},[e])}var MC=`maxy-vnc-overlay-popout`;function NC(e){let[t,n]=(0,A.useState)(!1),r=(0,A.useRef)(null),i=(0,A.useRef)(null),a=(0,A.useCallback)(()=>{i.current&&=(clearInterval(i.current),null),r.current&&!r.current.closed&&r.current.close(),r.current=null,n(!1)},[]),o=(0,A.useCallback)(()=>{let t=`/vnc-popout.html?title=${encodeURIComponent(p.productName)}`,o=window.open(t,MC,`width=1024,height=768`);o&&(r.current=o,n(!0),i.current=setInterval(()=>{r.current?.closed&&(a(),e?.())},500))},[a,e]);return(0,A.useEffect)(()=>()=>a(),[a]),{poppedOut:t,popout:o,cleanupPopout:a}}var PC=(0,A.forwardRef)(function({onClose:e},t){AC(),jC(`overlay`);let{poppedOut:n,popout:r,cleanupPopout:i}=NC(e);return(0,A.useImperativeHandle)(t,()=>({popout:r}),[r]),n?(0,j.jsxs)(`div`,{className:`browser-overlay-popout`,children:[(0,j.jsx)(c,{className:`browser-viewer__icon`}),(0,j.jsx)(`span`,{className:`browser-viewer__title`,children:p.productName}),(0,j.jsx)(`span`,{className:`browser-viewer__popout-label`,children:`Popped out`}),(0,j.jsx)(D,{variant:`ghost`,size:`sm`,icon:xe,onClick:()=>i(),"aria-label":`Pop back in`}),e&&(0,j.jsx)(D,{variant:`ghost`,size:`sm`,icon:v,onClick:()=>{i(),e()},"aria-label":`Close`})]}):(0,j.jsx)(`iframe`,{src:`/vnc-viewer.html`,className:`browser-surface__iframe`,title:p.productName})});function FC({onClose:e}){AC(),jC(`overlay`);let{poppedOut:t,popout:n,cleanupPopout:r}=NC(e),i=(0,A.useCallback)(()=>{r(),e()},[r,e]);(0,A.useEffect)(()=>{if(t)return;let e=e=>{e.key===`Escape`&&i()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[t,i]);let a=CC({handlePopout:n,disabled:t});return t?(0,j.jsxs)(`div`,{className:`browser-overlay-popout`,children:[(0,j.jsx)(c,{className:`browser-viewer__icon`}),(0,j.jsx)(`span`,{className:`browser-viewer__title`,children:p.productName}),(0,j.jsx)(`span`,{className:`browser-viewer__popout-label`,children:`Popped out`}),(0,j.jsx)(D,{variant:`ghost`,size:`sm`,icon:xe,onClick:()=>{r()},"aria-label":`Pop back in`}),(0,j.jsx)(D,{variant:`ghost`,size:`sm`,icon:v,onClick:i,"aria-label":`Close`})]}):(0,j.jsxs)(`div`,{className:`browser-viewer-fullscreen`,children:[(0,j.jsxs)(`div`,{className:`browser-viewer-fullscreen__bar`,...a,children:[(0,j.jsx)(c,{className:`browser-viewer__icon`}),(0,j.jsx)(`span`,{className:`browser-viewer-fullscreen__title`,children:p.productName}),(0,j.jsxs)(`div`,{className:`browser-viewer-fullscreen__actions`,children:[(0,j.jsx)(D,{variant:`ghost`,size:`sm`,icon:_,onClick:n,"aria-label":`Pop out`}),(0,j.jsx)(D,{variant:`ghost`,size:`sm`,icon:v,onClick:i,"aria-label":`Close`})]})]}),(0,j.jsx)(`iframe`,{src:`/vnc-viewer.html`,className:`browser-viewer-fullscreen__iframe`,title:p.productName})]})}var IC=()=>{},LC=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function RC(e){return LC.test(e)?`uuid`:e.startsWith(`agent-template:`)?`agent-template`:`other`}var zC={"null-attachmentId":`No file backing this artefact.`,"non-text-mime":`Content type cannot be displayed inline.`,"containment-rejected":`File path failed containment check; cannot display.`,"missing-on-disk":`File is missing on disk.`};function BC({reason:e}){return(0,j.jsxs)(`div`,{className:`art-skip-banner`,role:`status`,children:[(0,j.jsx)(ge,{size:14}),(0,j.jsx)(`span`,{children:zC[e]})]})}function VC({src:e,name:t,docId:n}){let[r,i]=(0,A.useState)(!1),a=(0,A.useRef)(null),o=(0,A.useRef)(!1),s=(0,A.useRef)(!1),c=(0,A.useCallback)(e=>{s.current||(s.current=!0,console.info(`[admin-ui] artefact-pdf-fallback id=${n.slice(0,8)} reason=${e}`),i(!0))},[n]);(0,A.useEffect)(()=>{let e=setTimeout(()=>{o.current||c(`onload-timeout`)},3e3);return()=>clearTimeout(e)},[c]);let l=()=>{o.current=!0;try{let e=a.current?.contentDocument?.body;e&&e.children.length===0&&!e.textContent?.trim()&&c(`empty-body`)}catch{}};return r?(0,j.jsxs)(`a`,{className:`art-pdf-fallback`,href:e,download:t,children:[(0,j.jsx)(m,{size:20}),(0,j.jsxs)(`div`,{className:`art-pdf-fallback-text`,children:[(0,j.jsx)(`div`,{className:`art-pdf-fallback-name`,children:t}),(0,j.jsx)(`div`,{className:`art-pdf-fallback-hint`,children:`Your browser can't display this PDF inline. Click to download.`})]}),(0,j.jsx)(ne,{size:16})]}):(0,j.jsx)(`iframe`,{ref:a,className:`art-pdf`,src:e,title:t,"aria-label":`PDF preview of ${t}`,onLoad:l,onError:()=>c(`onerror`)})}var HC={browser:`Browser`,data:`Data`,graph:`Graph`};function UC({selection:e,trigger:t,cacheKey:n,onClose:r,onArtefactSaved:i,onSwapToGraph:a}){let o=e!==null,s=e?.surface??null,l=(0,A.useRef)(null),u=(0,A.useRef)(null),[d,f]=(0,A.useState)(null),p=e?.surface===`doc`?e.docId:null,m=[250,500,1e3,2e3],h=(0,A.useCallback)(e=>{if(!n||!p)return;let t={};try{t=JSON.parse(e)}catch{return}if(t.action!==`save`||typeof t.content!=`string`)return;f(null);let r=t.content,a=e=>{fetch(`/api/admin/sidebar-artefact-save?session_key=${encodeURIComponent(n)}`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({id:p,content:r})}).then(async t=>{if(t.status===503&&e<m.length){let t=m[e];console.info(`[admin-ui] artefact-save-retry docId=${p} attempt=${e+1} delayMs=${t} status=503`),setTimeout(()=>a(e+1),t);return}if(!t.ok){let n=(await t.json().catch(()=>({}))).error??`status ${t.status}`,r=t.status===503?`retries-exhausted`:`status-${t.status}`;f(`Save failed: ${n}`),console.error(`[admin-ui] artefact-save-failed docId=${p} status=${t.status} attempts=${e+1} source=${r} error="${n}"`);return}let n=await t.json();i?.(p,n.updatedAt,r)}).catch(t=>{let n=t instanceof Error?t.message:String(t);f(`Save failed: ${n}`),console.error(`[admin-ui] artefact-save-failed docId=${p} attempts=${e+1} error="${n}"`)})};a(0)},[n,p,i]);(0,A.useEffect)(()=>{f(null)},[p]),(0,A.useEffect)(()=>{let n=e?.surface===`doc`?e.docId:null,r=e?.surface===`graph`?e.focusNodeId??null:null,i=e?.surface??null,a=i===null?`closed`:`${i}:${n??`none`}:${r??`none`}`;if(a===l.current)return;let s=o?`open`:`closed`,c=o?t??`chat-link`:`toolbar-close`,u=i??l.current?.split(`:`)[0]??`doc`,d=n?` docIdShape=${RC(n)} docIdSample=${n.slice(0,8)}`:``;console.info(`[admin-ui] artefact-pane state=${s} docId=${n??`none`} trigger=${c} surface=${u}${d}`),l.current=a},[e,t,o]);let y=e?.surface===`doc`,b=y?(e.tag||e.name.split(`.`).pop()||`doc`).toUpperCase().slice(0,6):``,x=y?e.revision||`rev 1`:`live`,S=e&&e.surface!==`doc`?HC[e.surface]:``,ee=y?e.name:S;return(0,j.jsxs)(`aside`,{className:`artefact`,"data-open":o,"data-surface":s??`none`,children:[(0,j.jsxs)(`div`,{className:`art-head`,children:[(0,j.jsxs)(`div`,{className:`left`,children:[!y&&s===`browser`&&(0,j.jsx)(c,{size:14,className:`art-head-surface-icon`}),!y&&s===`data`&&(0,j.jsx)(g,{size:14,className:`art-head-surface-icon`}),!y&&s===`graph`&&(0,j.jsx)(C,{size:14,className:`art-head-surface-icon`}),(0,j.jsx)(`span`,{className:`file-name`,children:ee}),y&&(0,j.jsx)(`span`,{className:`file-tag`,children:b})]}),(0,j.jsxs)(`div`,{className:`right`,children:[y&&(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(`button`,{className:`icon-btn`,title:`Copy`,type:`button`,"aria-label":`Copy`,onClick:()=>{T(e.content)},children:(0,j.jsx)(k,{size:14})}),(0,j.jsx)(`button`,{className:`icon-btn`,title:`Refresh`,type:`button`,"aria-label":`Refresh`,children:(0,j.jsx)(w,{size:14})})]}),s===`browser`&&(0,j.jsx)(`button`,{className:`icon-btn`,title:`Pop out`,type:`button`,"aria-label":`Pop out`,onClick:()=>u.current?.popout(),children:(0,j.jsx)(_,{size:14})}),o&&(0,j.jsx)(`button`,{className:`icon-btn`,title:`Close`,type:`button`,"aria-label":`Close`,onClick:r,children:(0,j.jsx)(v,{size:14})})]})]}),(0,j.jsxs)(`div`,{className:`art-toolbar`,children:[(0,j.jsxs)(`span`,{className:`seg`,children:[(0,j.jsx)(`span`,{className:`bullet`}),(0,j.jsx)(`strong`,{children:y?`Artefact`:S})]}),(0,j.jsx)(`span`,{className:`right-meta`,children:x})]}),(0,j.jsxs)(`div`,{className:`art-body`,"data-surface":s??`none`,children:[y&&(()=>{let t=e.editable!==!1,r=e.skipReason??null,i=(e.mimeType??``).startsWith(`application/pdf`);if(r)return(0,j.jsx)(BC,{reason:r});if(i&&n){let t=`/api/admin/sidebar-artefact-content?id=${encodeURIComponent(e.docId)}&session_key=${encodeURIComponent(n)}`;return(0,j.jsx)(VC,{src:t,name:e.name,docId:e.docId},t)}return(0,j.jsxs)(j.Fragment,{children:[d&&(0,j.jsx)(`div`,{className:`art-save-error`,role:`alert`,children:d}),(0,j.jsx)(kC,{data:{title:e.name,content:e.content,readOnly:!t},onSubmit:t?h:IC,submitted:!1})]})})(),s===`browser`&&(0,j.jsx)(PC,{ref:u,onClose:r}),s===`data`&&n&&(0,j.jsx)(re,{cacheKey:n,onOpenInGraph:a?e=>{let t=ie(e.properties);a(e.nodeId,t??e.labels[0]??null)}:void 0}),e?.surface===`graph`&&n&&(0,j.jsx)(te,{cacheKey:n,initialFocus:e.focusNodeId?{nodeId:e.focusNodeId,nodeLabel:e.focusNodeLabel??null}:null,initialLabels:e.initialLabels??null})]}),(0,j.jsxs)(`div`,{className:`art-foot`,children:[(0,j.jsx)(`span`,{className:`left`,children:x}),(0,j.jsx)(`span`,{className:`right in-sync`,children:`in sync`})]})]})}function WC(e){if(e<60)return`${e}s`;let t=Math.floor(e/60),n=e%60;return n>0?`${t}m ${n}s`:`${t}m`}function GC(e){return e>=1e3?`${(e/1e3).toFixed(1)}k`:String(e)}function KC(e){let{show:t,onClose:n,claudeInfo:r,messages:i,sessionElapsed:a,conversationId:o,cacheKey:s}=e,[c,l]=(0,A.useState)(null);if(!t)return null;let u=i.flatMap(e=>e.events?.filter(e=>e.type===`usage`)??[]),d=u.at(-1),f=d?.peak_request_pct==null?d?.context_window?Math.round((d.input_tokens+d.cache_creation_tokens+d.cache_read_tokens)/d.context_window*100):0:Math.round(d.peak_request_pct*100),p=u.reduce((e,t)=>e+t.input_tokens+t.cache_creation_tokens+t.cache_read_tokens+t.output_tokens,0),m=i.flatMap(e=>e.events?.filter(e=>e.type===`rate_limit`)??[]).at(-1),h=u.reduce((e,t)=>e+(t.total_cost_usd??0),0),g=r?.account?.subscriptionType,_=e=>{let t=e*1e3-Date.now();if(t<=0)return`now`;let n=Math.floor(t/36e5),r=Math.floor(t%36e5/6e4);return n>0?`${n}h ${r}m`:`${r}m`};return(0,j.jsx)(`div`,{className:`claude-info-overlay`,onClick:n,children:(0,j.jsxs)(`div`,{className:`claude-info-modal`,onClick:e=>e.stopPropagation(),children:[(0,j.jsxs)(`div`,{className:`claude-info-header`,children:[(0,j.jsx)(`img`,{src:`/brand/claude.png`,alt:`Claude`,className:`claude-info-icon`}),(0,j.jsx)(`span`,{children:`Claude Code`}),(0,j.jsx)(`button`,{className:`claude-info-close`,onClick:n,"aria-label":`Close`,children:`✕`})]}),(0,j.jsxs)(`div`,{className:`claude-info-section`,children:[(0,j.jsxs)(`div`,{className:`claude-info-row`,children:[(0,j.jsx)(`span`,{className:`claude-info-label`,children:`Version`}),(0,j.jsx)(`span`,{className:`claude-info-value`,children:r?r.version:`…`})]}),(0,j.jsxs)(`div`,{className:`claude-info-row`,children:[(0,j.jsx)(`span`,{className:`claude-info-label`,children:`Email`}),(0,j.jsx)(`span`,{className:`claude-info-value`,children:r?.account?.email??`…`})]})]}),(g||m||h>0)&&(0,j.jsxs)(`div`,{className:`claude-info-section`,children:[g&&(0,j.jsxs)(`div`,{className:`claude-info-row`,children:[(0,j.jsx)(`span`,{className:`claude-info-label`,children:`Plan`}),(0,j.jsx)(`span`,{className:`claude-info-value`,style:{textTransform:`capitalize`},children:g})]}),m&&(0,j.jsxs)(j.Fragment,{children:[(0,j.jsxs)(`div`,{className:`claude-info-row`,children:[(0,j.jsx)(`span`,{className:`claude-info-label`,children:`Usage`}),(0,j.jsxs)(`span`,{className:`claude-info-value`,children:[Math.round(m.utilization*100),`%`]})]}),(0,j.jsxs)(`div`,{className:`claude-info-row`,children:[(0,j.jsx)(`span`,{className:`claude-info-label`,children:`Resets in`}),(0,j.jsx)(`span`,{className:`claude-info-value`,children:_(m.resetsAt)})]}),m.isUsingOverage&&(0,j.jsxs)(`div`,{className:`claude-info-row`,children:[(0,j.jsx)(`span`,{className:`claude-info-label`,children:`Overage`}),(0,j.jsx)(`span`,{className:`claude-info-value`,children:`Active`})]})]}),h>0&&(0,j.jsxs)(`div`,{className:`claude-info-row`,children:[(0,j.jsx)(`span`,{className:`claude-info-label`,children:`Session cost`}),(0,j.jsxs)(`span`,{className:`claude-info-value`,children:[`$`,h<.01?h.toFixed(4):h.toFixed(2)]})]})]}),(0,j.jsxs)(`div`,{className:`claude-info-section`,children:[(0,j.jsxs)(`div`,{className:`claude-info-row`,children:[(0,j.jsx)(`span`,{className:`claude-info-label`,children:`Model`}),(0,j.jsx)(`span`,{className:`claude-info-value`,children:r?.model??`…`})]}),(0,j.jsxs)(`div`,{className:`claude-info-row`,children:[(0,j.jsx)(`span`,{className:`claude-info-label`,children:`Context used`}),(0,j.jsx)(`span`,{className:`claude-info-value`,children:f>0?`${f}%`:`—`})]}),(0,j.jsxs)(`div`,{className:`claude-info-row`,children:[(0,j.jsx)(`span`,{className:`claude-info-label`,children:`Tokens`}),(0,j.jsx)(`span`,{className:`claude-info-value`,children:p>0?GC(p):`—`})]}),(0,j.jsxs)(`div`,{className:`claude-info-row`,children:[(0,j.jsx)(`span`,{className:`claude-info-label`,children:`Session`}),(0,j.jsx)(`span`,{className:`claude-info-value`,children:WC(a)})]}),(o||s)&&(()=>{let e=o??s??``;return(0,j.jsxs)(`div`,{className:`claude-info-row`,children:[(0,j.jsx)(`span`,{className:`claude-info-label`,children:`Session`}),(0,j.jsx)(`button`,{type:`button`,className:`claude-info-value claude-info-id-copy`,title:`${e} (${o?`flushed`:`pre-flush`}) — click to copy`,onClick:async()=>{l(await T(e)?`copied`:`failed`),setTimeout(()=>l(null),1200)},children:c===`copied`?`copied ✓`:c===`failed`?`copy failed ✕`:`${e.slice(0,8)}…`})]})})()]})]})})}var qC=1080;function JC(){let e=ue(),[t,n]=(0,A.useState)(()=>typeof window>`u`?null:new URLSearchParams(window.location.search).get(`sessionId`)),[r,i]=(0,A.useState)(null),[a,o]=(0,A.useState)(null),[s,c]=(0,A.useState)(!1),[l,u]=(0,A.useState)(!1),[d,f]=(0,A.useState)(!1),[p,m]=(0,A.useState)(()=>typeof window<`u`&&window.matchMedia(`(min-width: ${qC}px)`).matches);(0,A.useEffect)(()=>{let e=window.matchMedia(`(min-width: ${qC}px)`),t=e=>m(e.matches);return e.addEventListener(`change`,t),()=>e.removeEventListener(`change`,t)},[]),(0,A.useEffect)(()=>{if(!d)return;let e=e=>{e.key===`Escape`&&f(!1)};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[d]);let h=(0,A.useCallback)(async()=>{if(l)return;u(!0);let e=p?`artefact`:`overlay`;try{let t=await(await fetch(`/api/admin/browser/launch`,{method:`POST`})).json().catch(()=>({ok:!1,error:`Invalid response`}));if(!t.ok)throw Error(t.error??`Failed to launch browser`);p?(i({surface:`browser`}),o(`header-menu`)):c(!0),console.info(`[admin-ui] header-menu-browser-launch outcome=ok viewport=${e}`)}catch(t){console.error(`[admin-ui] header-menu-browser-launch outcome=error viewport=${e} error="${t instanceof Error?t.message:String(t)}"`),window.alert(t instanceof Error?t.message:`Failed to launch browser`)}finally{u(!1)}},[l,p]),g=(0,A.useCallback)(async()=>{let t=e.claudeInfo!=null;if(f(!0),t){console.info(`[admin-ui] claude-info-open cached=true ms=0`);return}let n=Date.now();try{let t=await fetch(`/api/admin/claude-info`);if(t.ok){let n=await t.json();e.setClaudeInfo(n)}console.info(`[admin-ui] claude-info-open cached=false ms=${Date.now()-n}`)}catch(e){console.error(`[admin-ui] claude-info-fetch-failed ms=${Date.now()-n} error="${e instanceof Error?e.message:String(e)}"`)}},[e]),_=(0,A.useCallback)(()=>{i(null),o(null)},[]);if(e.appState===`loading`)return(0,j.jsx)(`div`,{className:`connect-page`});if(e.appState===`set-pin`)return(0,j.jsx)(Ee,{pin:e.pin,setPin:e.setPin,showPin:e.showPin,setShowPin:e.setShowPin,pinLoading:e.pinLoading,pinError:e.pinError,pinInputRef:e.pinInputRef,setPinFormRef:e.setPinFormRef,onSubmit:e.handleSetPin,operatorName:e.operatorName,setOperatorName:e.setOperatorName});if(e.appState===`connect-claude`)return(0,j.jsx)(ke,{authPolling:e.authPolling,setAuthPolling:e.setAuthPolling,authLoading:e.authLoading,setAuthLoading:e.setAuthLoading,pinError:e.pinError,setPinError:e.setPinError,setAppState:e.setAppState});if(e.appState===`enter-pin`)return(0,j.jsx)(De,{pin:e.pin,setPin:e.setPin,showPin:e.showPin,setShowPin:e.setShowPin,pinLoading:e.pinLoading,pinError:e.pinError,pinInputRef:e.pinInputRef,onSubmit:e.handleLogin,onChangePin:e.handleChangePin,remoteAuthEnabled:e.remoteAuthEnabled,onSignOutRemote:e.handleLogout});if(e.appState===`account-picker`)return(0,j.jsx)(Oe,{accounts:e.accounts,loading:e.accountPickerLoading,error:e.pinError,onSelect:e.handleAccountSelect});let v=r!==null;return(0,j.jsx)(b,{cacheKey:e.cacheKey,businessName:e.businessName,conversationId:e.conversationId,onLaunchBrowser:h,onLogout:e.handleLogout,browserLaunching:l,userName:e.userName,userAvatar:e.userAvatar,role:e.role,selectedSessionId:t,onSelectSession:n,dataArtefact:v?`open`:`closed`,footer:(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(We,{onOpen:g}),s&&(0,j.jsx)(FC,{onClose:()=>c(!1)}),(0,j.jsx)(KC,{show:d,onClose:()=>f(!1),claudeInfo:e.claudeInfo,messages:[],sessionElapsed:0,conversationId:e.conversationId,cacheKey:e.cacheKey})]}),children:({sessionsState:i})=>(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(Pe,{}),t&&e.cacheKey?(0,j.jsx)(He,{sessionId:t,cacheKey:e.cacheKey,onRenamed:()=>i.refetch(),onClose:()=>n(null),recentsActions:{setSessions:i.setSessions,refetch:i.refetch},liveRow:i.sessions.find(e=>e.sessionId===t)},t):(0,j.jsx)(`main`,{}),v&&(0,j.jsx)(ze,{}),(0,j.jsx)(UC,{selection:r,trigger:a,cacheKey:e.cacheKey,onClose:_})]})})}(0,ae.createRoot)(document.getElementById(`root`)).render((0,j.jsx)(JC,{}));
|
|
216
|
+
`;function kC({data:e,onSubmit:t,submitted:n,isStreaming:r}){let{title:a,content:o,filePath:s,readOnly:c}=e??{},l=a??`Document`,u=(0,A.useCallback)(e=>{t(JSON.stringify({_lifecycle:!0,component:`document-editor`,event:e,...s?{filePath:s}:{}}))},[t,s]),[d,f]=(0,A.useState)(`idle`),p=(0,A.useRef)(null),h=(0,A.useRef)(null),[g,_]=(0,A.useState)(!1),[b,S]=(0,A.useState)(!1),[C,w]=(0,A.useState)(`idle`),te=(0,A.useRef)(o),re=(0,A.useMemo)(()=>Lb.extend({markdownTokenizer:null}),[]),ie=(0,A.useMemo)(()=>[Rx.configure({orderedList:!1}),re,ub.configure({openOnClick:!1}),SC,EC],[re]),T=(0,A.useCallback)(e=>e.replace(/\u2014/g,`-`).replace(/\u2013/g,`-`).replace(/\u201C/g,`"`).replace(/\u201D/g,`"`).replace(/\u2018/g,`'`).replace(/\u2019/g,`'`).replace(/\u2026/g,`...`).replace(/\u00A0/g,` `),[]),E=mm({extensions:ie,content:(0,A.useMemo)(()=>o&&T(o),[o,T]),contentType:`markdown`,editable:!c,editorProps:{attributes:{class:`doc-editor__content`,role:`textbox`,"aria-multiline":`true`}},onUpdate:({editor:e})=>{c||(p.current&&clearTimeout(p.current),p.current=setTimeout(()=>{let n=e.getMarkdown();f(`saving`),t(JSON.stringify({action:`save`,content:n,...s?{filePath:s}:{}})),u(`auto-saved`),h.current&&clearTimeout(h.current),f(`saved`),h.current=setTimeout(()=>f(`idle`),2e3)},500))},onCreate:({editor:e})=>{e||_(!0)},onFocus:()=>S(!0),onBlur:()=>S(!1)}),O=wC({title:l,isStreaming:r,persistent:!0,channelName:`maxy-doc-editor`,renderPopout:(0,A.useCallback)((e,t)=>{let n=e.document;n.open(),n.close(),n.title=t;let r=n.createElement(`style`);r.textContent=OC,n.head.appendChild(r);let i=n.createElement(`div`);i.className=`title`,i.textContent=t,n.body.appendChild(i);let a=n.createElement(`pre`);a.style.whiteSpace=`pre-wrap`,a.style.fontFamily=`inherit`,a.style.background=`transparent`,a.style.padding=`0`,a.textContent=E?.getMarkdown()??``,n.body.appendChild(a)},[E]),onSyncMessage:(0,A.useCallback)(e=>{let t=e;t?.type===`content`&&t.markdown&&E&&E.commands.setContent(T(t.markdown),{contentType:`markdown`})},[E,T])});(0,A.useEffect)(()=>{O.poppedOut&&E&&O.syncToPopout({type:`content`,markdown:E.getMarkdown(),title:l})},[O.poppedOut]);let k=TC({onSubmit:t}),ae=(0,A.useRef)(null);(0,A.useEffect)(()=>{if(!E||!o||o===te.current)return;te.current=o;let e=T(o);if(ae.current&&=(E.off(`blur`,ae.current),null),!E.isFocused)E.commands.setContent(e,{contentType:`markdown`});else{let t=()=>{E.commands.setContent(e,{contentType:`markdown`}),E.off(`blur`,t),ae.current=null};ae.current=t,E.on(`blur`,t)}},[E,o,T]),(0,A.useEffect)(()=>(u(`rendered`),()=>{p.current&&clearTimeout(p.current),h.current&&clearTimeout(h.current)}),[]);let oe=(0,A.useCallback)(()=>{if(!E)return;let{from:e,to:t}=E.state.selection;e!==t&&k.openCommentInput()},[E,k]),se=(0,A.useCallback)(()=>{if(!E)return;let{from:e,to:t}=E.state.selection,n=E.state.doc.textBetween(e,t);if(!n)return;let r=k.submitComment(n,{startOffset:e,endOffset:t});r&&E.chain().focus().setMark(`comment`,{commentId:r,commentText:k.commentText,createdAt:new Date().toISOString()}).run()},[E,k]),ce=(0,A.useCallback)(()=>{c||!E||(S(!0),E.commands.focus())},[c,E]),le=(0,A.useCallback)(()=>{if(!E||!s)return;let e=E.getMarkdown();!e.trim()&&!window.confirm(`Save empty document?`)||(t(JSON.stringify({action:`approve`,content:e,filePath:s})),u(`approved`),w(`approved`))},[E,s,t,u]),ue=(0,A.useCallback)(()=>{if(!E)return;let e=E.getMarkdown(),n=(l||``).replace(/\.md$/i,``).toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-+|-+$/g,``).slice(0,80)||`document`,r=new Blob([e],{type:`text/markdown;charset=utf-8`}),i=URL.createObjectURL(r),a=document.createElement(`a`);a.href=i,a.download=`${n}.md`,a.click(),URL.revokeObjectURL(i),t(JSON.stringify({_lifecycle:!0,component:`document-editor`,event:`downloaded`,title:l,contentLength:e.length,...s?{filePath:s}:{}}))},[E,l,s,t]);if(n&&!c)return(0,j.jsxs)(`div`,{className:`editor-base doc-editor doc-editor--approved`,children:[(0,j.jsxs)(`div`,{className:`editor-base__bar`,children:[(0,j.jsx)(m,{className:`editor-base__icon`}),(0,j.jsx)(`span`,{className:`editor-base__title`,children:l}),(0,j.jsx)(`div`,{className:`editor-base__actions`,children:(0,j.jsx)(`span`,{className:`editor-base__status`,children:`Approved`})})]}),(0,j.jsx)(`div`,{className:`doc-editor__body`,children:(0,j.jsx)(DC,{content:o||``})})]});if(g||!E)return(0,j.jsxs)(`div`,{className:`editor-base doc-editor`,children:[(0,j.jsxs)(`div`,{className:`editor-base__bar`,...O.dragBarProps,children:[(0,j.jsx)(m,{className:`editor-base__icon`}),(0,j.jsx)(`span`,{className:`editor-base__title`,children:l})]}),(0,j.jsx)(DC,{content:o||``})]});let de=typeof window<`u`&&window.innerWidth<640,pe=typeof BroadcastChannel<`u`,he=(0,j.jsxs)(`div`,{className:`editor-base__actions`,children:[d===`saving`&&(0,j.jsx)(`span`,{className:`editor-base__status`,children:`Saving...`}),d===`saved`&&(0,j.jsx)(`span`,{className:`editor-base__status`,children:`Saved`}),C===`approved`&&(0,j.jsx)(`span`,{className:`editor-base__status`,children:`Approved`}),c&&(0,j.jsx)(`span`,{className:`editor-base__status`,children:`View only`}),s&&!c&&C!==`approved`&&(0,j.jsx)(D,{variant:`ghost`,size:`sm`,icon:i,onClick:le,"aria-label":`Approve`,children:`Approve`}),(0,j.jsx)(D,{variant:`ghost`,size:`sm`,icon:ne,onClick:ue,"aria-label":`Download`}),k.pendingComments.length>0&&(0,j.jsxs)(D,{variant:`ghost`,size:`sm`,onClick:k.sendComments,children:[`Send `,k.pendingComments.length,` comment`,k.pendingComments.length>1?`s`:``]}),!de&&pe&&!O.poppedOut&&(0,j.jsx)(D,{variant:`ghost`,size:`sm`,icon:v,onClick:O.handlePopout,"aria-label":`Pop out`}),!O.fullscreen&&(0,j.jsx)(D,{variant:`ghost`,size:`sm`,icon:ye,onClick:O.handleFullscreen,"aria-label":`Full screen`}),O.fullscreen&&(0,j.jsx)(D,{variant:`ghost`,size:`sm`,icon:xe,onClick:O.exitFullscreen,"aria-label":`Exit full screen`}),(0,j.jsx)(D,{variant:`ghost`,size:`sm`,icon:ee,onClick:O.handleMinimise,"aria-label":`Minimise`})]}),ge=c?null:(0,j.jsx)(D_,{editor:E,children:(0,j.jsxs)(`div`,{className:`doc-editor__bubble-menu`,role:`toolbar`,"aria-label":`Formatting`,children:[(0,j.jsx)(D,{variant:`ghost`,size:`sm`,icon:fe,onClick:()=>E.chain().focus().toggleBold().run(),"aria-label":`Bold`,"aria-pressed":E.isActive(`bold`)}),(0,j.jsx)(D,{variant:`ghost`,size:`sm`,icon:_e,onClick:()=>E.chain().focus().toggleItalic().run(),"aria-label":`Italic`,"aria-pressed":E.isActive(`italic`)}),(0,j.jsx)(D,{variant:`ghost`,size:`sm`,icon:ve,onClick:()=>{let e=window.prompt(`URL`);e&&E.chain().focus().setLink({href:e}).run()},"aria-label":`Link`,"aria-pressed":E.isActive(`link`)}),(0,j.jsx)(D,{variant:`ghost`,size:`sm`,icon:me,onClick:()=>E.chain().focus().toggleCode().run(),"aria-label":`Code`,"aria-pressed":E.isActive(`code`)}),(0,j.jsx)(`div`,{className:`doc-editor__bubble-divider`}),(0,j.jsx)(D,{variant:`ghost`,size:`sm`,icon:be,onClick:oe,"aria-label":`Add comment`})]})}),Se=k.showCommentInput?(0,j.jsxs)(`div`,{className:`doc-editor__comment-popover`,children:[(0,j.jsx)(`input`,{ref:k.commentInputRef,type:`text`,value:k.commentText,onChange:e=>k.setCommentText(e.target.value),onKeyDown:e=>{e.key===`Enter`&&se(),e.key===`Escape`&&k.cancelComment()},placeholder:`Add a comment...`,className:`doc-editor__comment-input`,"aria-label":`Add comment`}),(0,j.jsxs)(`div`,{className:`doc-editor__comment-actions`,children:[(0,j.jsx)(D,{variant:`primary`,size:`sm`,onClick:se,disabled:!k.commentText.trim(),children:`Add`}),(0,j.jsx)(D,{variant:`ghost`,size:`sm`,icon:y,onClick:k.cancelComment,"aria-label":`Cancel`})]})]}):null;if(O.fullscreen)return(0,j.jsxs)(`div`,{className:`editor-base-fullscreen`,children:[(0,j.jsxs)(`div`,{className:`editor-base-fullscreen__bar`,...O.dragBarProps,children:[(0,j.jsx)(m,{className:`editor-base__icon`}),(0,j.jsx)(`span`,{className:`editor-base-fullscreen__title`,children:l}),he]}),(0,j.jsx)(`div`,{className:`editor-base-fullscreen__body`,children:b||c?(0,j.jsxs)(j.Fragment,{children:[ge,Se,(0,j.jsx)(om,{editor:E})]}):(0,j.jsx)(`div`,{className:`doc-editor__preview`,onClick:ce,role:`button`,tabIndex:0,onKeyDown:e=>(e.key===`Enter`||e.key===` `)&&ce(),children:(0,j.jsx)(DC,{content:E?.getMarkdown()??o??``})})})]});if(O.poppedOut)return(0,j.jsx)(`div`,{className:`editor-base editor-base--popout`,children:(0,j.jsxs)(`div`,{className:`editor-base__bar`,...O.dragBarProps,children:[(0,j.jsx)(m,{className:`editor-base__icon`}),(0,j.jsx)(`span`,{className:`editor-base__title`,children:l}),(0,j.jsxs)(`div`,{className:`editor-base__actions`,children:[(0,j.jsx)(`span`,{className:`editor-base__status`,children:`Popped out`}),(0,j.jsx)(D,{variant:`ghost`,size:`sm`,icon:we,onClick:O.handlePopIn,"aria-label":`Pop back in`}),(0,j.jsx)(D,{variant:`ghost`,size:`sm`,icon:ee,onClick:O.handleMinimise,"aria-label":`Close`})]})]})});if(O.minimised)return(0,j.jsx)(`div`,{className:`editor-base editor-base--minimised`,onClick:O.handleExpand,role:`button`,tabIndex:0,onKeyDown:e=>e.key===`Enter`&&O.handleExpand(),children:(0,j.jsxs)(`div`,{className:`editor-base__bar`,...O.dragBarProps,children:[(0,j.jsx)(m,{className:`editor-base__icon`}),(0,j.jsx)(`span`,{className:`editor-base__title`,children:l}),(0,j.jsxs)(`div`,{className:`editor-base__actions`,onClick:e=>e.stopPropagation(),children:[!de&&pe&&(0,j.jsx)(D,{variant:`ghost`,size:`sm`,icon:v,onClick:O.handlePopout,"aria-label":`Pop out`}),(0,j.jsx)(D,{variant:`ghost`,size:`sm`,icon:ye,onClick:O.handleFullscreen,"aria-label":`Full screen`}),(0,j.jsx)(D,{variant:`ghost`,size:`sm`,icon:x,onClick:O.handleExpand,"aria-label":`Expand`})]})]})});let Ce=E?.getMarkdown()??o??``;return(0,j.jsxs)(`div`,{className:`editor-base doc-editor`,children:[(0,j.jsxs)(`div`,{className:`editor-base__bar`,...O.dragBarProps,children:[(0,j.jsx)(m,{className:`editor-base__icon`}),(0,j.jsx)(`span`,{className:`editor-base__title`,children:l}),he]}),(0,j.jsx)(`div`,{className:`doc-editor__body`,children:b||c?(0,j.jsxs)(j.Fragment,{children:[ge,Se,(0,j.jsx)(om,{editor:E})]}):(0,j.jsx)(`div`,{className:`doc-editor__preview`,onClick:ce,role:`button`,tabIndex:0,onKeyDown:e=>(e.key===`Enter`||e.key===` `)&&ce(),children:(0,j.jsx)(DC,{content:Ce})})})]})}function AC(){(0,A.useEffect)(()=>{function e(e){e.data?.type===`vnc-clipboard`&&typeof e.data.text==`string`&&T(e.data.text)}window.addEventListener(`message`,e);let t=null;return typeof BroadcastChannel<`u`&&(t=new BroadcastChannel(`maxy-vnc-clipboard`),t.onmessage=e=>{typeof e.data==`string`&&T(e.data)}),()=>{window.removeEventListener(`message`,e),t?.close()}},[])}function jC(e){(0,A.useEffect)(()=>{let t=Date.now(),n=`/api/admin/browser-iframe/event`,r={brand:p.productName,surface:e};return fetch(n,{method:`POST`,credentials:`same-origin`,headers:{"Content-Type":`application/json`},body:JSON.stringify({event:`mount`,...r}),keepalive:!0}).catch(()=>{}),()=>{let e=JSON.stringify({event:`unmount`,durationMs:Date.now()-t,...r});try{let t=new Blob([e],{type:`application/json`});navigator.sendBeacon(n,t)||fetch(n,{method:`POST`,credentials:`same-origin`,headers:{"Content-Type":`application/json`},body:e,keepalive:!0}).catch(()=>{})}catch{}}},[e])}var MC=`maxy-vnc-overlay-popout`;function NC(e){let[t,n]=(0,A.useState)(!1),r=(0,A.useRef)(null),i=(0,A.useRef)(null),a=(0,A.useCallback)(()=>{i.current&&=(clearInterval(i.current),null),r.current&&!r.current.closed&&r.current.close(),r.current=null,n(!1)},[]),o=(0,A.useCallback)(()=>{let t=`/vnc-popout.html?title=${encodeURIComponent(p.productName)}`,o=window.open(t,MC,`width=1024,height=768`);o&&(r.current=o,n(!0),i.current=setInterval(()=>{r.current?.closed&&(a(),e?.())},500))},[a,e]);return(0,A.useEffect)(()=>()=>a(),[a]),{poppedOut:t,popout:o,cleanupPopout:a}}var PC=(0,A.forwardRef)(function({onClose:e},t){AC(),jC(`overlay`);let{poppedOut:n,popout:r,cleanupPopout:i}=NC(e);return(0,A.useImperativeHandle)(t,()=>({popout:r}),[r]),n?(0,j.jsxs)(`div`,{className:`browser-overlay-popout`,children:[(0,j.jsx)(c,{className:`browser-viewer__icon`}),(0,j.jsx)(`span`,{className:`browser-viewer__title`,children:p.productName}),(0,j.jsx)(`span`,{className:`browser-viewer__popout-label`,children:`Popped out`}),(0,j.jsx)(D,{variant:`ghost`,size:`sm`,icon:xe,onClick:()=>i(),"aria-label":`Pop back in`}),e&&(0,j.jsx)(D,{variant:`ghost`,size:`sm`,icon:y,onClick:()=>{i(),e()},"aria-label":`Close`})]}):(0,j.jsx)(`iframe`,{src:`/vnc-viewer.html`,className:`browser-surface__iframe`,title:p.productName})});function FC({onClose:e}){AC(),jC(`overlay`);let{poppedOut:t,popout:n,cleanupPopout:r}=NC(e),i=(0,A.useCallback)(()=>{r(),e()},[r,e]);(0,A.useEffect)(()=>{if(t)return;let e=e=>{e.key===`Escape`&&i()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[t,i]);let a=CC({handlePopout:n,disabled:t});return t?(0,j.jsxs)(`div`,{className:`browser-overlay-popout`,children:[(0,j.jsx)(c,{className:`browser-viewer__icon`}),(0,j.jsx)(`span`,{className:`browser-viewer__title`,children:p.productName}),(0,j.jsx)(`span`,{className:`browser-viewer__popout-label`,children:`Popped out`}),(0,j.jsx)(D,{variant:`ghost`,size:`sm`,icon:xe,onClick:()=>{r()},"aria-label":`Pop back in`}),(0,j.jsx)(D,{variant:`ghost`,size:`sm`,icon:y,onClick:i,"aria-label":`Close`})]}):(0,j.jsxs)(`div`,{className:`browser-viewer-fullscreen`,children:[(0,j.jsxs)(`div`,{className:`browser-viewer-fullscreen__bar`,...a,children:[(0,j.jsx)(c,{className:`browser-viewer__icon`}),(0,j.jsx)(`span`,{className:`browser-viewer-fullscreen__title`,children:p.productName}),(0,j.jsxs)(`div`,{className:`browser-viewer-fullscreen__actions`,children:[(0,j.jsx)(D,{variant:`ghost`,size:`sm`,icon:v,onClick:n,"aria-label":`Pop out`}),(0,j.jsx)(D,{variant:`ghost`,size:`sm`,icon:y,onClick:i,"aria-label":`Close`})]})]}),(0,j.jsx)(`iframe`,{src:`/vnc-viewer.html`,className:`browser-viewer-fullscreen__iframe`,title:p.productName})]})}var IC=()=>{},LC=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function RC(e){return LC.test(e)?`uuid`:e.startsWith(`agent-template:`)?`agent-template`:`other`}var zC={"null-attachmentId":`No file backing this artefact.`,"non-text-mime":`Content type cannot be displayed inline.`,"containment-rejected":`File path failed containment check; cannot display.`,"missing-on-disk":`File is missing on disk.`};function BC({reason:e}){return(0,j.jsxs)(`div`,{className:`art-skip-banner`,role:`status`,children:[(0,j.jsx)(ge,{size:14}),(0,j.jsx)(`span`,{children:zC[e]})]})}function VC({src:e,name:t,docId:n}){let[r,i]=(0,A.useState)(!1),a=(0,A.useRef)(null),o=(0,A.useRef)(!1),s=(0,A.useRef)(!1),c=(0,A.useCallback)(e=>{s.current||(s.current=!0,console.info(`[admin-ui] artefact-pdf-fallback id=${n.slice(0,8)} reason=${e}`),i(!0))},[n]);(0,A.useEffect)(()=>{let e=setTimeout(()=>{o.current||c(`onload-timeout`)},3e3);return()=>clearTimeout(e)},[c]);let l=()=>{o.current=!0;try{let e=a.current?.contentDocument?.body;e&&e.children.length===0&&!e.textContent?.trim()&&c(`empty-body`)}catch{}};return r?(0,j.jsxs)(`a`,{className:`art-pdf-fallback`,href:e,download:t,children:[(0,j.jsx)(m,{size:20}),(0,j.jsxs)(`div`,{className:`art-pdf-fallback-text`,children:[(0,j.jsx)(`div`,{className:`art-pdf-fallback-name`,children:t}),(0,j.jsx)(`div`,{className:`art-pdf-fallback-hint`,children:`Your browser can't display this PDF inline. Click to download.`})]}),(0,j.jsx)(ne,{size:16})]}):(0,j.jsx)(`iframe`,{ref:a,className:`art-pdf`,src:e,title:t,"aria-label":`PDF preview of ${t}`,onLoad:l,onError:()=>c(`onerror`)})}var HC={browser:`Browser`,data:`Data`,graph:`Graph`};function UC({selection:e,trigger:t,cacheKey:n,onClose:r,onArtefactSaved:i,onSwapToGraph:a}){let o=e!==null,s=e?.surface??null,l=(0,A.useRef)(null),u=(0,A.useRef)(null),[d,f]=(0,A.useState)(null),p=e?.surface===`doc`?e.docId:null,m=[250,500,1e3,2e3],h=(0,A.useCallback)(e=>{if(!n||!p)return;let t={};try{t=JSON.parse(e)}catch{return}if(t.action!==`save`||typeof t.content!=`string`)return;f(null);let r=t.content,a=e=>{fetch(`/api/admin/sidebar-artefact-save?session_key=${encodeURIComponent(n)}`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({id:p,content:r})}).then(async t=>{if(t.status===503&&e<m.length){let t=m[e];console.info(`[admin-ui] artefact-save-retry docId=${p} attempt=${e+1} delayMs=${t} status=503`),setTimeout(()=>a(e+1),t);return}if(!t.ok){let n=(await t.json().catch(()=>({}))).error??`status ${t.status}`,r=t.status===503?`retries-exhausted`:`status-${t.status}`;f(`Save failed: ${n}`),console.error(`[admin-ui] artefact-save-failed docId=${p} status=${t.status} attempts=${e+1} source=${r} error="${n}"`);return}let n=await t.json();i?.(p,n.updatedAt,r)}).catch(t=>{let n=t instanceof Error?t.message:String(t);f(`Save failed: ${n}`),console.error(`[admin-ui] artefact-save-failed docId=${p} attempts=${e+1} error="${n}"`)})};a(0)},[n,p,i]);(0,A.useEffect)(()=>{f(null)},[p]),(0,A.useEffect)(()=>{let n=e?.surface===`doc`?e.docId:null,r=e?.surface===`graph`?e.focusNodeId??null:null,i=e?.surface??null,a=i===null?`closed`:`${i}:${n??`none`}:${r??`none`}`;if(a===l.current)return;let s=o?`open`:`closed`,c=o?t??`chat-link`:`toolbar-close`,u=i??l.current?.split(`:`)[0]??`doc`,d=n?` docIdShape=${RC(n)} docIdSample=${n.slice(0,8)}`:``;console.info(`[admin-ui] artefact-pane state=${s} docId=${n??`none`} trigger=${c} surface=${u}${d}`),l.current=a},[e,t,o]);let g=e?.surface===`doc`,b=g?(e.tag||e.name.split(`.`).pop()||`doc`).toUpperCase().slice(0,6):``,x=g?e.revision||`rev 1`:`live`,S=e&&e.surface!==`doc`?HC[e.surface]:``,ee=g?e.name:S;return(0,j.jsxs)(`aside`,{className:`artefact`,"data-open":o,"data-surface":s??`none`,children:[(0,j.jsxs)(`div`,{className:`art-head`,children:[(0,j.jsxs)(`div`,{className:`left`,children:[!g&&s===`browser`&&(0,j.jsx)(c,{size:14,className:`art-head-surface-icon`}),!g&&s===`data`&&(0,j.jsx)(_,{size:14,className:`art-head-surface-icon`}),!g&&s===`graph`&&(0,j.jsx)(C,{size:14,className:`art-head-surface-icon`}),(0,j.jsx)(`span`,{className:`file-name`,children:ee}),g&&(0,j.jsx)(`span`,{className:`file-tag`,children:b})]}),(0,j.jsxs)(`div`,{className:`right`,children:[g&&(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(`button`,{className:`icon-btn`,title:`Copy`,type:`button`,"aria-label":`Copy`,onClick:()=>{T(e.content)},children:(0,j.jsx)(k,{size:14})}),(0,j.jsx)(`button`,{className:`icon-btn`,title:`Refresh`,type:`button`,"aria-label":`Refresh`,children:(0,j.jsx)(w,{size:14})})]}),s===`browser`&&(0,j.jsx)(`button`,{className:`icon-btn`,title:`Pop out`,type:`button`,"aria-label":`Pop out`,onClick:()=>u.current?.popout(),children:(0,j.jsx)(v,{size:14})}),o&&(0,j.jsx)(`button`,{className:`icon-btn`,title:`Close`,type:`button`,"aria-label":`Close`,onClick:r,children:(0,j.jsx)(y,{size:14})})]})]}),(0,j.jsxs)(`div`,{className:`art-toolbar`,children:[(0,j.jsxs)(`span`,{className:`seg`,children:[(0,j.jsx)(`span`,{className:`bullet`}),(0,j.jsx)(`strong`,{children:g?`Artefact`:S})]}),(0,j.jsx)(`span`,{className:`right-meta`,children:x})]}),(0,j.jsxs)(`div`,{className:`art-body`,"data-surface":s??`none`,children:[g&&(()=>{let t=e.editable!==!1,r=e.skipReason??null,i=(e.mimeType??``).startsWith(`application/pdf`);if(r)return(0,j.jsx)(BC,{reason:r});if(i&&n){let t=`/api/admin/sidebar-artefact-content?id=${encodeURIComponent(e.docId)}&session_key=${encodeURIComponent(n)}`;return(0,j.jsx)(VC,{src:t,name:e.name,docId:e.docId},t)}return(0,j.jsxs)(j.Fragment,{children:[d&&(0,j.jsx)(`div`,{className:`art-save-error`,role:`alert`,children:d}),(0,j.jsx)(kC,{data:{title:e.name,content:e.content,readOnly:!t},onSubmit:t?h:IC,submitted:!1})]})})(),s===`browser`&&(0,j.jsx)(PC,{ref:u,onClose:r}),s===`data`&&n&&(0,j.jsx)(re,{cacheKey:n,onOpenInGraph:a?e=>{let t=ie(e.properties);a(e.nodeId,t??e.labels[0]??null)}:void 0}),e?.surface===`graph`&&n&&(0,j.jsx)(te,{cacheKey:n,initialFocus:e.focusNodeId?{nodeId:e.focusNodeId,nodeLabel:e.focusNodeLabel??null}:null,initialLabels:e.initialLabels??null})]}),(0,j.jsxs)(`div`,{className:`art-foot`,children:[(0,j.jsx)(`span`,{className:`left`,children:x}),(0,j.jsx)(`span`,{className:`right in-sync`,children:`in sync`})]})]})}function WC(e){if(e<60)return`${e}s`;let t=Math.floor(e/60),n=e%60;return n>0?`${t}m ${n}s`:`${t}m`}function GC(e){return e>=1e3?`${(e/1e3).toFixed(1)}k`:String(e)}function KC(e){let{show:t,onClose:n,claudeInfo:r,messages:i,sessionElapsed:a,conversationId:o,cacheKey:s}=e,[c,l]=(0,A.useState)(null);if(!t)return null;let u=i.flatMap(e=>e.events?.filter(e=>e.type===`usage`)??[]),d=u.at(-1),f=d?.peak_request_pct==null?d?.context_window?Math.round((d.input_tokens+d.cache_creation_tokens+d.cache_read_tokens)/d.context_window*100):0:Math.round(d.peak_request_pct*100),p=u.reduce((e,t)=>e+t.input_tokens+t.cache_creation_tokens+t.cache_read_tokens+t.output_tokens,0),m=i.flatMap(e=>e.events?.filter(e=>e.type===`rate_limit`)??[]).at(-1),h=u.reduce((e,t)=>e+(t.total_cost_usd??0),0),g=r?.account?.subscriptionType,_=e=>{let t=e*1e3-Date.now();if(t<=0)return`now`;let n=Math.floor(t/36e5),r=Math.floor(t%36e5/6e4);return n>0?`${n}h ${r}m`:`${r}m`};return(0,j.jsx)(`div`,{className:`claude-info-overlay`,onClick:n,children:(0,j.jsxs)(`div`,{className:`claude-info-modal`,onClick:e=>e.stopPropagation(),children:[(0,j.jsxs)(`div`,{className:`claude-info-header`,children:[(0,j.jsx)(`img`,{src:`/brand/claude.png`,alt:`Claude`,className:`claude-info-icon`}),(0,j.jsx)(`span`,{children:`Claude Code`}),(0,j.jsx)(`button`,{className:`claude-info-close`,onClick:n,"aria-label":`Close`,children:`✕`})]}),(0,j.jsxs)(`div`,{className:`claude-info-section`,children:[(0,j.jsxs)(`div`,{className:`claude-info-row`,children:[(0,j.jsx)(`span`,{className:`claude-info-label`,children:`Version`}),(0,j.jsx)(`span`,{className:`claude-info-value`,children:r?r.version:`…`})]}),(0,j.jsxs)(`div`,{className:`claude-info-row`,children:[(0,j.jsx)(`span`,{className:`claude-info-label`,children:`Email`}),(0,j.jsx)(`span`,{className:`claude-info-value`,children:r?.account?.email??`…`})]})]}),(g||m||h>0)&&(0,j.jsxs)(`div`,{className:`claude-info-section`,children:[g&&(0,j.jsxs)(`div`,{className:`claude-info-row`,children:[(0,j.jsx)(`span`,{className:`claude-info-label`,children:`Plan`}),(0,j.jsx)(`span`,{className:`claude-info-value`,style:{textTransform:`capitalize`},children:g})]}),m&&(0,j.jsxs)(j.Fragment,{children:[(0,j.jsxs)(`div`,{className:`claude-info-row`,children:[(0,j.jsx)(`span`,{className:`claude-info-label`,children:`Usage`}),(0,j.jsxs)(`span`,{className:`claude-info-value`,children:[Math.round(m.utilization*100),`%`]})]}),(0,j.jsxs)(`div`,{className:`claude-info-row`,children:[(0,j.jsx)(`span`,{className:`claude-info-label`,children:`Resets in`}),(0,j.jsx)(`span`,{className:`claude-info-value`,children:_(m.resetsAt)})]}),m.isUsingOverage&&(0,j.jsxs)(`div`,{className:`claude-info-row`,children:[(0,j.jsx)(`span`,{className:`claude-info-label`,children:`Overage`}),(0,j.jsx)(`span`,{className:`claude-info-value`,children:`Active`})]})]}),h>0&&(0,j.jsxs)(`div`,{className:`claude-info-row`,children:[(0,j.jsx)(`span`,{className:`claude-info-label`,children:`Session cost`}),(0,j.jsxs)(`span`,{className:`claude-info-value`,children:[`$`,h<.01?h.toFixed(4):h.toFixed(2)]})]})]}),(0,j.jsxs)(`div`,{className:`claude-info-section`,children:[(0,j.jsxs)(`div`,{className:`claude-info-row`,children:[(0,j.jsx)(`span`,{className:`claude-info-label`,children:`Model`}),(0,j.jsx)(`span`,{className:`claude-info-value`,children:r?.model??`…`})]}),(0,j.jsxs)(`div`,{className:`claude-info-row`,children:[(0,j.jsx)(`span`,{className:`claude-info-label`,children:`Context used`}),(0,j.jsx)(`span`,{className:`claude-info-value`,children:f>0?`${f}%`:`—`})]}),(0,j.jsxs)(`div`,{className:`claude-info-row`,children:[(0,j.jsx)(`span`,{className:`claude-info-label`,children:`Tokens`}),(0,j.jsx)(`span`,{className:`claude-info-value`,children:p>0?GC(p):`—`})]}),(0,j.jsxs)(`div`,{className:`claude-info-row`,children:[(0,j.jsx)(`span`,{className:`claude-info-label`,children:`Session`}),(0,j.jsx)(`span`,{className:`claude-info-value`,children:WC(a)})]}),(o||s)&&(()=>{let e=o??s??``;return(0,j.jsxs)(`div`,{className:`claude-info-row`,children:[(0,j.jsx)(`span`,{className:`claude-info-label`,children:`Session`}),(0,j.jsx)(`button`,{type:`button`,className:`claude-info-value claude-info-id-copy`,title:`${e} (${o?`flushed`:`pre-flush`}) — click to copy`,onClick:async()=>{l(await T(e)?`copied`:`failed`),setTimeout(()=>l(null),1200)},children:c===`copied`?`copied ✓`:c===`failed`?`copy failed ✕`:`${e.slice(0,8)}…`})]})})()]})]})})}var qC=1080;function JC(){let e=ue(),[t,n]=(0,A.useState)(()=>typeof window>`u`?null:new URLSearchParams(window.location.search).get(`sessionId`)),[r,i]=(0,A.useState)(null),[a,o]=(0,A.useState)(null),[s,c]=(0,A.useState)(!1),[l,u]=(0,A.useState)(!1),[d,f]=(0,A.useState)(!1),[p,m]=(0,A.useState)(()=>typeof window<`u`&&window.matchMedia(`(min-width: ${qC}px)`).matches);(0,A.useEffect)(()=>{let e=window.matchMedia(`(min-width: ${qC}px)`),t=e=>m(e.matches);return e.addEventListener(`change`,t),()=>e.removeEventListener(`change`,t)},[]),(0,A.useEffect)(()=>{if(!d)return;let e=e=>{e.key===`Escape`&&f(!1)};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[d]);let g=(0,A.useCallback)(async()=>{if(l)return;u(!0);let e=p?`artefact`:`overlay`;try{let t=await(await fetch(`/api/admin/browser/launch`,{method:`POST`})).json().catch(()=>({ok:!1,error:`Invalid response`}));if(!t.ok)throw Error(t.error??`Failed to launch browser`);p?(i({surface:`browser`}),o(`header-menu`)):c(!0),console.info(`[admin-ui] header-menu-browser-launch outcome=ok viewport=${e}`)}catch(t){console.error(`[admin-ui] header-menu-browser-launch outcome=error viewport=${e} error="${t instanceof Error?t.message:String(t)}"`),window.alert(t instanceof Error?t.message:`Failed to launch browser`)}finally{u(!1)}},[l,p]),_=(0,A.useCallback)(async()=>{let t=e.claudeInfo!=null;if(f(!0),t){console.info(`[admin-ui] claude-info-open cached=true ms=0`);return}let n=Date.now();try{let t=await fetch(`/api/admin/claude-info`);if(t.ok){let n=await t.json();e.setClaudeInfo(n)}console.info(`[admin-ui] claude-info-open cached=false ms=${Date.now()-n}`)}catch(e){console.error(`[admin-ui] claude-info-fetch-failed ms=${Date.now()-n} error="${e instanceof Error?e.message:String(e)}"`)}},[e]),v=(0,A.useCallback)(()=>{i(null),o(null)},[]),y=(0,A.useCallback)(e=>{n(null),typeof window<`u`&&window.history.replaceState(null,``,`/`),console.info(`[admin-ui] stale-session-slug-stripped sessionId=${e.slice(0,8)} trigger=meta-404`)},[]);if(e.appState===`loading`)return(0,j.jsx)(`div`,{className:`connect-page`});if(e.appState===`set-pin`)return(0,j.jsx)(Ee,{pin:e.pin,setPin:e.setPin,showPin:e.showPin,setShowPin:e.setShowPin,pinLoading:e.pinLoading,pinError:e.pinError,pinInputRef:e.pinInputRef,setPinFormRef:e.setPinFormRef,onSubmit:e.handleSetPin,operatorName:e.operatorName,setOperatorName:e.setOperatorName});if(e.appState===`connect-claude`)return(0,j.jsx)(ke,{authPolling:e.authPolling,setAuthPolling:e.setAuthPolling,authLoading:e.authLoading,setAuthLoading:e.setAuthLoading,pinError:e.pinError,setPinError:e.setPinError,setAppState:e.setAppState});if(e.appState===`enter-pin`)return(0,j.jsx)(De,{pin:e.pin,setPin:e.setPin,showPin:e.showPin,setShowPin:e.setShowPin,pinLoading:e.pinLoading,pinError:e.pinError,pinInputRef:e.pinInputRef,onSubmit:e.handleLogin,onChangePin:e.handleChangePin,remoteAuthEnabled:e.remoteAuthEnabled,onSignOutRemote:e.handleLogout});if(e.appState===`account-picker`)return(0,j.jsx)(Oe,{accounts:e.accounts,loading:e.accountPickerLoading,error:e.pinError,onSelect:e.handleAccountSelect});let b=r!==null;return(0,j.jsx)(h,{cacheKey:e.cacheKey,businessName:e.businessName,conversationId:e.conversationId,onLaunchBrowser:g,onLogout:e.handleLogout,browserLaunching:l,userName:e.userName,userAvatar:e.userAvatar,role:e.role,selectedSessionId:t,onSelectSession:n,dataArtefact:b?`open`:`closed`,footer:(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(We,{onOpen:_}),s&&(0,j.jsx)(FC,{onClose:()=>c(!1)}),(0,j.jsx)(KC,{show:d,onClose:()=>f(!1),claudeInfo:e.claudeInfo,messages:[],sessionElapsed:0,conversationId:e.conversationId,cacheKey:e.cacheKey})]}),children:({sessionsState:i})=>(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(Pe,{}),t&&e.cacheKey?(0,j.jsx)(He,{sessionId:t,cacheKey:e.cacheKey,onRenamed:()=>i.refetch(),onClose:()=>n(null),recentsActions:{setSessions:i.setSessions,refetch:i.refetch},liveRow:i.sessions.find(e=>e.sessionId===t),onSessionNotFound:y},t):(0,j.jsx)(`main`,{}),b&&(0,j.jsx)(ze,{}),(0,j.jsx)(UC,{selection:r,trigger:a,cacheKey:e.cacheKey,onClose:v})]})})}(0,ae.createRoot)(document.getElementById(`root`)).render((0,j.jsx)(JC,{}));
|