openpond 0.0.32 → 0.0.33
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunks/{chunk-Q5MZCRJA.js → chunk-D7MMLD4B.js} +1 -1
- package/dist/chunks/{chunk-E5RVRUJB.js → chunk-RYUOC4A6.js} +1 -1
- package/dist/chunks/{chunk-5RHZKQRK.js → chunk-T5LV33QZ.js} +1 -1
- package/dist/chunks/{cli-WW5BVN5Z.js → cli-ACFTSCMY.js} +2 -2
- package/dist/chunks/{src-GZT4UX6I.js → src-3DC5AXBH.js} +4 -4
- package/dist/chunks/{workspaces-DHVVOTVR.js → workspaces-CYA4EXHX.js} +2 -2
- package/dist/cli.js +2 -2
- package/dist/web/assets/{AppsView-CF2g-7FH.js → AppsView-02DhR5FR.js} +1 -1
- package/dist/web/assets/{BrowserSidebar-lUsLUl20.js → BrowserSidebar-BbB1x4NN.js} +1 -1
- package/dist/web/assets/{CloudWorkView-BnfGW4OV.js → CloudWorkView-CrNjUam-.js} +1 -1
- package/dist/web/assets/{CommandMenu-BsS4Bgb6.js → CommandMenu-CMAoQrQr.js} +1 -1
- package/dist/web/assets/{CommunityView-C8qVOwlp.js → CommunityView-ClBQWVMx.js} +1 -1
- package/dist/web/assets/{ComposerCreateImproveStrip-C_LIpfSq.js → ComposerCreateImproveStrip-SAzjMJxi.js} +1 -1
- package/dist/web/assets/{GetStartedView-Du533wOh.js → GetStartedView-CImKDSgl.js} +1 -1
- package/dist/web/assets/LabsRoute-CjsnD_ow.js +3 -0
- package/dist/web/assets/{NewProjectDialog-DH7wA1z9.js → NewProjectDialog-DgHx0SU8.js} +1 -1
- package/dist/web/assets/{ProfileSettingsSection-D7JvMZdW.js → ProfileSettingsSection-Wms2nM8S.js} +1 -1
- package/dist/web/assets/{SettingsView-C9TgCaWG.js → SettingsView-Bj4gTHxu.js} +1 -1
- package/dist/web/assets/{TeamChatView-D_CE7br9.js → TeamChatView-Bn5s_CEO.js} +1 -1
- package/dist/web/assets/{TerminalOverlay-CC-VDSlp.js → TerminalOverlay-CZxcEnIU.js} +1 -1
- package/dist/web/assets/{TrainingCreationPanel-NFCoaBUI.js → TrainingCreationPanel-CDHWKB0z.js} +1 -1
- package/dist/web/assets/{TrainingDraftPanel-BWEmVFjM.js → TrainingDraftPanel-C1LwcFJe.js} +1 -1
- package/dist/web/assets/{WorkspaceDiffPanel-SlLlGZM1.js → WorkspaceDiffPanel-OXh-RfsO.js} +3 -3
- package/dist/web/assets/{WorkspaceEnvironmentMenu-BAoMBTVD.js → WorkspaceEnvironmentMenu-DYsTZ1yS.js} +1 -1
- package/dist/web/assets/{WorkspaceGitDialogs-CVIFrzyl.js → WorkspaceGitDialogs-DW1YzZSC.js} +1 -1
- package/dist/web/assets/{WorkspaceMonacoEditor-0trp0-TI.js → WorkspaceMonacoEditor-BB6RMJhI.js} +3 -3
- package/dist/web/assets/{boxes-CFihgX2z.js → boxes-DuFpoIOg.js} +1 -1
- package/dist/web/assets/{create-pipeline-request-AJWLMTyw.js → create-pipeline-request-CoUS3TxW.js} +1 -1
- package/dist/web/assets/{cssMode-HvqfCFyP.js → cssMode-BwBG931R.js} +1 -1
- package/dist/web/assets/{git-commit-horizontal-C5mUmACv.js → git-commit-horizontal-nYzHKpP_.js} +1 -1
- package/dist/web/assets/{htmlMode-C8btgUt-.js → htmlMode-kia19Vq-.js} +1 -1
- package/dist/web/assets/index-5GiqJrAI.js +1 -0
- package/dist/web/assets/{index-D7Vr3zcV.js → index-Md3sZKuq.js} +5 -5
- package/dist/web/assets/{info-D0xuy5IB.js → info-C19-C_Yo.js} +1 -1
- package/dist/web/assets/{jsonMode-5zVz9G0X.js → jsonMode-Bbnsi639.js} +1 -1
- package/dist/web/assets/{lspLanguageFeatures-DxlSSL7c.js → lspLanguageFeatures-CQ7n1AnL.js} +1 -1
- package/dist/web/assets/{monaco.contribution-B1pWWwqT.js → monaco.contribution-B0hVTPtP.js} +2 -2
- package/dist/web/assets/{monaco.contribution-BXdXsSWI.js → monaco.contribution-B70DoKC2.js} +2 -2
- package/dist/web/assets/{monaco.contribution-CIjjzpUR.js → monaco.contribution-CckMti96.js} +2 -2
- package/dist/web/assets/{monaco.contribution-BKpVvKK9.js → monaco.contribution-D0pzYjhS.js} +2 -2
- package/dist/web/assets/{monitor-B4-9Shtp.js → monitor-BiTzpoOs.js} +1 -1
- package/dist/web/assets/{play-BJdhBqQE.js → play-fYNcpLd1.js} +1 -1
- package/dist/web/assets/{python-CEK8J4w_.js → python-KvnXMI5w.js} +1 -1
- package/dist/web/assets/{refresh-cw-DE0u_nmZ.js → refresh-cw-CLWf9Yye.js} +1 -1
- package/dist/web/assets/{reply-2MfLJ93n.js → reply-ChwFJtCP.js} +1 -1
- package/dist/web/assets/{save-CBIVKaf8.js → save-Cf458B41.js} +1 -1
- package/dist/web/assets/{toggleHighContrast-CC73mtvA.js → toggleHighContrast-xBMYNCS6.js} +1 -1
- package/dist/web/assets/training-DSUEHclG.css +1 -0
- package/dist/web/assets/{tsMode-Bhn9wr_1.js → tsMode-MD366RAt.js} +1 -1
- package/dist/web/assets/{wifi-off-BKTqnqj0.js → wifi-off-BmQZtHYT.js} +1 -1
- package/dist/web/assets/{workers-C_adgrEg.js → workers-DZmm4J7b.js} +1 -1
- package/dist/web/assets/{yaml-DDRAcADU.js → yaml-AYqrW6mK.js} +1 -1
- package/dist/web/index.html +1 -1
- package/package.json +1 -1
- package/dist/web/assets/LabsRoute-yk8lNMQc.js +0 -3
- package/dist/web/assets/index-DUqAiF57.js +0 -1
- package/dist/web/assets/training-BY8siNUK.css +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{d as Sr,j as u,r as m,X as lo,u as Cx,o as kx,e as Ex,f as Ix,g as Nx,p as _x,D as ni,E as Tx,h as Ls,k as Mx,l as Dx,m as Z,n as $x,q as ql,s as Xv,t as Zv,v as Rx,w as Lx,x as zx,L as Bx,y as Ux,z as zs,A as pi,B as mn,G as fa,H as Fx,I as Wx,J as Kx,K as qx,N as Kt,O as Hx,Q as Hl,R as Jv,T as Pu,U as Gx,V as Vx,M as Yx,W as Qv,Y as Xx,Z as Zx,_ as Jx,$ as Ou,a as Qx,a0 as Bs,a1 as e0,a2 as t0,a3 as r0,a4 as n0,a5 as i0,a6 as em,a7 as vr,a8 as Cu,a9 as ha,aa as Li,ab as a0,ac as o0,ad as l0,ae as s0,af as c0}from"./index-D7Vr3zcV.js";import{R as u0,P as d0}from"./ProfileSettingsSection-D7JvMZdW.js";import{R as Gr}from"./refresh-cw-DE0u_nmZ.js";/* empty css */import{S as Us}from"./save-CBIVKaf8.js";import{P as f0}from"./play-BJdhBqQE.js";import{B as tm,W as h0,S as ku}from"./wifi-off-BKTqnqj0.js";import{M as v0}from"./monitor-B4-9Shtp.js";import{r as so}from"./index-DUqAiF57.js";import"./git-commit-horizontal-C5mUmACv.js";const m0=[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2",key:"4jdomd"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v4",key:"3hqy98"}],["path",{d:"M21 14H11",key:"1bme5i"}],["path",{d:"m15 10-4 4 4 4",key:"5dvupr"}]],p0=Sr("clipboard-copy",m0);const g0=[["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"}]],y0=Sr("code-xml",g0);const b0=[["path",{d:"M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z",key:"1s6t7t"}],["circle",{cx:"16.5",cy:"7.5",r:".5",fill:"currentColor",key:"w0ekpg"}]],qt=Sr("key-round",b0);const x0=[["path",{d:"M12 2v10",key:"mnfbl"}],["path",{d:"M18.4 6.6a9 9 0 1 1-12.77.04",key:"obofu9"}]],w0=Sr("power",x0);const j0=[["path",{d:"M4.9 16.1C1 12.2 1 5.8 4.9 1.9",key:"s0qx1y"}],["path",{d:"M7.8 4.7a6.14 6.14 0 0 0-.8 7.5",key:"1idnkw"}],["circle",{cx:"12",cy:"9",r:"2",key:"1092wv"}],["path",{d:"M16.2 4.8c2 2 2.26 5.11.8 7.47",key:"ojru2q"}],["path",{d:"M19.1 1.9a9.96 9.96 0 0 1 0 14.1",key:"rhi7fg"}],["path",{d:"M9.5 18h5",key:"mfy3pd"}],["path",{d:"m8 22 4-11 4 11",key:"25yftu"}]],rm=Sr("radio-tower",j0);const S0=[["path",{d:"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8",key:"1p45f6"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}]],A0=Sr("rotate-cw",S0);const P0=[["path",{d:"M10 5H3",key:"1qgfaw"}],["path",{d:"M12 19H3",key:"yhmn1j"}],["path",{d:"M14 3v4",key:"1sua03"}],["path",{d:"M16 17v4",key:"1q0r14"}],["path",{d:"M21 12h-9",key:"1o4lsq"}],["path",{d:"M21 19h-5",key:"1rlt1p"}],["path",{d:"M21 5h-7",key:"1oszz2"}],["path",{d:"M8 10v4",key:"tgpxqk"}],["path",{d:"M8 12H3",key:"a7s4jb"}]],nm=Sr("sliders-horizontal",P0);const O0=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"10",r:"3",key:"ilqhr7"}],["path",{d:"M7 20.662V19a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v1.662",key:"154egf"}]],C0=Sr("circle-user",O0);function Eu({handle:e,image:t}){const r=e?.trim().slice(0,1).toUpperCase()||"+";return u.jsx("div",{className:"account-avatar",children:t?u.jsx("img",{src:t,alt:""}):u.jsx("span",{children:r})})}function ia({state:e,label:t}){return u.jsx("span",{className:`account-state ${e}`,children:t??e.replace("_"," ")})}function k0(e,t){return e==="connect"?{handle:void 0,currentBaseUrl:null}:{handle:t?.handle,currentBaseUrl:t?.baseUrl??null}}function Iu(e,t){const r=t.trim().replace(/\/+$/,"");if(!r)throw new Error(`${e} is required.`);try{const n=new URL(r);if(n.protocol!=="http:"&&n.protocol!=="https:")throw new Error("unsupported protocol")}catch{throw new Error(`${e} must be an absolute http or https URL.`)}return r}function Nu({account:e,busy:t,initialApiKey:r="",mode:n="update",onClose:i,onSave:a}){const o=m.useId(),l=n==="connect",[s,c]=m.useState(r),[d,f]=m.useState(e?.baseUrl??""),[h,v]=m.useState(e?.apiBaseUrl??""),[p,g]=m.useState(null);m.useEffect(()=>{c(r),f(e?.baseUrl??""),v(e?.apiBaseUrl??""),g(null)},[e?.apiBaseUrl,e?.baseUrl,e?.handle,r]);async function y(b){b.preventDefault(),g(null);const w=s.trim();if(l&&!w){g("API key is required.");return}let x,S;try{x=Iu("Base URL",d),S=Iu("API base URL",h)}catch(A){g(A instanceof Error?A.message:String(A));return}try{const A=k0(n,e);await a({...A,baseUrl:x,apiBaseUrl:S,apiKey:l?w:void 0,environment:e?.environment??null})}catch(A){g(A instanceof Error?A.message:String(A))}}return u.jsx("div",{className:"git-dialog-backdrop account-endpoint-dialog-backdrop",role:"presentation",onMouseDown:b=>{b.target===b.currentTarget&&!t&&i()},children:u.jsxs("form",{className:"git-dialog account-endpoint-dialog",role:"dialog","aria-modal":"true","aria-labelledby":o,onSubmit:b=>{y(b)},children:[u.jsx("button",{className:"git-dialog-close",disabled:t,type:"button",title:"Close","aria-label":"Close",onClick:i,children:u.jsx(lo,{size:16})}),u.jsx("div",{className:"git-dialog-icon",children:l?u.jsx(qt,{size:18}):u.jsx(nm,{size:18})}),u.jsx("h2",{id:o,children:l?"Environment account":"Environment endpoints"}),l?u.jsxs("label",{className:"git-dialog-field",children:[u.jsx("span",{children:"API key"}),u.jsx("input",{autoFocus:!0,disabled:t,placeholder:"opk_...",type:"password",value:s,onChange:b=>c(b.target.value)})]}):null,u.jsxs("label",{className:"git-dialog-field",children:[u.jsx("span",{children:"Base URL"}),u.jsx("input",{autoFocus:!l,disabled:t,inputMode:"url",value:d,onChange:b=>f(b.target.value)})]}),u.jsxs("label",{className:"git-dialog-field",children:[u.jsx("span",{children:"API base URL"}),u.jsx("input",{disabled:t,inputMode:"url",value:h,onChange:b=>v(b.target.value)})]}),p?u.jsx("div",{className:"profile-dialog-warning",children:p}):null,u.jsxs("div",{className:"git-dialog-footer",children:[u.jsx("button",{className:"git-dialog-secondary",disabled:t,type:"button",onClick:i,children:"Cancel"}),u.jsxs("button",{className:"git-dialog-primary",disabled:t,type:"submit",children:[u.jsx(Us,{size:14}),u.jsx("span",{children:t?"Saving":l?"Connect account":"Update account"})]})]})]})})}const ll="https://openpond.ai/settings/api-keys",E0="Changing the active OpenPond account rechecks cloud projects, hosted agents, default team, and profile sync for that account. Local projects stay on this machine; projects uploaded from another account will need to be synced again for this account.";function I0({payload:e,connection:t,apiKey:r,saving:n,refreshingAccounts:i,setApiKey:a,saveAccount:o,saveEnvironmentAccount:l,refreshAccounts:s,switchAccount:c,onPayload:d,onPreferences:f,onError:h,onToast:v}){const p=e?.account,g=p?.state??"loading",y=g==="signed_in",b=g==="signed_out",w=g==="auth_error",x=p?.email?.trim()||null,S=p?.accounts??[],[A,j]=m.useState([]),[,P]=m.useState(!1),[N,I]=m.useState(null),[E,O]=m.useState(null),[C,$]=m.useState(null),[M,z]=m.useState(null),[W,X]=m.useState(!1),[F,U]=m.useState(!1),[H,le]=m.useState(null),{confirmAction:se,confirmDialog:re,resolveConfirmDialog:R}=Cx(),ie=S.find(T=>T.isActive)??S[0]??null,de=e?.preferences.defaultTeamId?.trim()||null,ve=C??de,Oe=kx(p),L=e?.accountMeta.asOf??"",G=zi(p?.environment,ie?.environment),D=y?zi(ie?.displayLabel,ie?.handle,p?.label,p?.activeProfile?.handle,"Signed in"):w?"Account needs attention":b?"No account connected":"Loading account",_=y?x??_u(G):w?p?.error??"Reconnect this account to restore OpenPond cloud features.":b?"Cloud projects, hosted agents, wallet, and team defaults are disabled until you sign in.":"Checking account status.",xe=S.length>0,ne=b?"Sign in to OpenPond":w?"Reconnect account":"Add or update account",V=b?"Paste an OpenPond API key to connect this desktop app.":w?"Paste a fresh OpenPond API key for the active account.":"Saved to OpenPond CLI config.",Ae=b?"Sign in":w?"Reconnect":"Save account",Q=m.useMemo(()=>A.filter(T=>T.status==="active"),[A]),Zo=(m.useMemo(()=>ve?Q.find(T=>T.teamId===ve)??null:null,[Q,ve])??Ex(Q))?.teamId??"",zn=m.useMemo(()=>Q.map(T=>({value:T.teamId,label:zi(T.displayName,T.name,T.slug,"Team"),description:Ix(T.role)})),[Q]),Jo=Zo||zn[0]?.value||"",Qo=zn.length>0,el=!t||!!E||!!N||Q.length===0,$i=M?sl(M):null,Ri=!!($i&&H===$i),tl=N0(ie?.baseUrl??p?.baseUrl),rl=y||w;m.useEffect(()=>{if(!t||!Oe){j([]),I(null),P(!1);return}let T=!1;const Se=Nx(Oe);return Se?(j(Se),P(!1)):(j([]),P(!0)),I(null),_x({accountKey:Oe,force:!!L,fetchOrganizations:async()=>(await Z.organizations(t)).organizations.map($x).filter(Je=>!!Je).filter(Je=>Je.status==="active")}).then(ce=>{T||j(ce)}).catch(ce=>{T||(Se||j([]),I(ce instanceof Error?ce.message:String(ce)))}).finally(()=>{T||P(!1)}),()=>{T=!0}},[L,t,Oe]),m.useEffect(()=>{C&&de===C&&$(null)},[de,C]);async function nl(T,Se={notify:!0}){const ce=Q.find(Je=>Je.teamId===T)??null;if(!(!t||!ce||E||(C??de)===ce.teamId)){$(ce.teamId),O(ce.teamId),h(null),Dx({teamId:ce.teamId,accountKey:Oe,force:!0,fetchAgents:async Je=>(await Z.listSandboxAgents(t,{teamId:Je})).agents}).catch(()=>{});try{f(await Z.savePreferences(t,{defaultTeamId:ce.teamId})),Se.notify&&v?.("Default team updated","success")}catch(Je){$(null),h(Je instanceof Error?Je.message:String(Je))}finally{O(null)}}}async function Qr(T="Continue"){return rl?se({title:"Change active OpenPond account?",body:E0,confirmLabel:T,cancelLabel:"Cancel"}):!0}async function il(T){if(T.preventDefault(),W){U(!0);return}await Qr(Ae)&&await o(T)}async function al(T){await Qr("Save account")&&(await l({apiKey:T.apiKey??"",handle:T.handle,baseUrl:T.baseUrl,apiBaseUrl:T.apiBaseUrl,environment:Tu(T.environment)}),U(!1),X(!1))}async function Y(T){if(!t||!M)throw new Error("OpenPond server connection is not ready.");if(M.isActive&&!await Qr("Save endpoints"))return;const Se=sl(M);le(Se),h(null);try{const ce=await Z.updateOpenPondAccountConfig(t,{handle:T.handle??M.handle,currentBaseUrl:T.currentBaseUrl,baseUrl:T.baseUrl,apiBaseUrl:T.apiBaseUrl,chatApiBaseUrl:null,environment:Tu(T.environment),setActive:M.isActive});d(ce),v?.("Account endpoints updated","success"),z(null)}catch(ce){throw h(ce instanceof Error?ce.message:String(ce)),ce}finally{le(null)}}async function J(T){const Se=T.handle?.trim()||"";Se&&await Qr("Switch account")&&await c(Se,T.baseUrl)}return u.jsxs("section",{className:"account-settings",children:[u.jsxs("div",{className:"account-settings-title",children:[u.jsx("h1",{children:"Account"}),u.jsx("button",{className:"settings-icon-button ghost",disabled:!t||n||i,title:"Refresh accounts and team data","aria-label":"Refresh accounts and team data",type:"button",onClick:()=>{s()},children:u.jsx(Gr,{size:15,className:i?"settings-spin":void 0})})]}),u.jsxs("div",{className:"account-summary",children:[u.jsxs("div",{className:"account-summary-main",children:[u.jsx(Eu,{handle:D,image:y?p?.avatarUrl??ie?.avatarUrl??null:null}),u.jsxs("div",{children:[u.jsx("span",{children:"Active account"}),u.jsx("strong",{children:D}),u.jsxs("div",{className:"account-summary-meta",children:[u.jsx("small",{className:y&&x?"private-account-email":y?void 0:"account-summary-copy",tabIndex:y&&x?0:void 0,children:_}),y&&Qo?u.jsx(ni,{className:"account-team-dropdown",compact:!0,disabled:el,label:"Default team",options:zn,value:Jo,onChange:T=>{nl(T)}}):null]})]})]}),u.jsx("div",{className:"account-summary-actions",children:u.jsx(ia,{state:g,label:b?"not signed in":void 0})})]}),u.jsxs("form",{className:"account-login-form",onSubmit:T=>{il(T)},children:[b||w?u.jsxs("div",{className:"account-signin-panel",children:[u.jsx(qt,{size:18}),u.jsxs("div",{children:[u.jsx("strong",{children:b?"Connect this app to your OpenPond account":"Refresh the saved OpenPond credential"}),u.jsx("span",{children:b?"Local projects stay available without sign-in; cloud agents, wallet, teams, and hosted runs need an account.":"The saved credential could not authenticate. Replace it to resume cloud features."})]}),u.jsxs("a",{className:"settings-secondary account-api-key-link",href:tl,rel:"noreferrer",target:"_blank",children:[u.jsx(Tx,{size:14}),u.jsx("span",{children:"Create key"})]})]}):null,u.jsxs("div",{className:"account-list-heading",children:[u.jsx("span",{children:ne}),u.jsx("small",{children:V})]}),u.jsxs("div",{className:"account-form-grid",children:[u.jsxs("label",{children:[u.jsx("span",{children:"API key"}),u.jsx("input",{value:r,onChange:T=>a(T.target.value),placeholder:"opk_...",type:"password"})]}),u.jsxs("div",{className:"account-environment-field",children:[u.jsx("span",{children:"Environment"}),u.jsxs("button",{className:`account-env-toggle account-form-env-toggle ${W?"active":""}`,disabled:n,type:"button","aria-pressed":W,onClick:()=>X(T=>!T),children:[u.jsx("span",{className:"account-env-toggle-switch","aria-hidden":"true"}),u.jsx("span",{children:"Environment"})]})]})]}),u.jsxs("button",{className:"settings-primary",disabled:n||!W&&!r.trim(),children:[u.jsx(Ls,{size:15}),u.jsx("span",{children:n?"Saving":Ae})]})]}),xe?u.jsxs("div",{className:"account-list",children:[u.jsxs("div",{className:"account-list-heading",children:[u.jsx("span",{children:"OpenPond accounts"}),u.jsxs("small",{children:[S.length," account",S.length===1?"":"s"]})]}),S.map(T=>{const Se=T.handle?.trim()||"",ce=zi(T.displayLabel,T.handle,"Unknown account"),Je=T.email?.trim()||null,ol=_0(T.environment),Ox=sl(T);return u.jsxs("div",{className:"account-row",children:[u.jsx(Eu,{handle:ce,image:T.avatarUrl??null}),u.jsxs("div",{className:"account-details",children:[u.jsx("strong",{children:ce}),Je?u.jsx("span",{className:"private-account-email",tabIndex:0,children:Je}):null,u.jsx("span",{children:_u(T.environment??"production")})]}),u.jsxs("div",{className:"account-row-actions",children:[u.jsxs("button",{className:`account-env-toggle ${ol?"active":""}`,disabled:!t||n||!!H||!Se,type:"button","aria-pressed":ol,title:"Configure environment endpoints",onClick:()=>z(T),children:[u.jsx("span",{className:"account-env-toggle-switch","aria-hidden":"true"}),u.jsx("span",{children:"Environment"})]}),T.isActive?u.jsx("span",{className:"active-pill",children:"Active"}):u.jsx("button",{className:"inline-action",disabled:n||!Se,type:"button",onClick:()=>{J(T)},children:"Use"})]}),u.jsx(ia,{state:T.authHealth})]},Ox)})]}):null,p?.products&&p.products.length>0&&u.jsxs("div",{className:"account-list",children:[u.jsxs("div",{className:"account-list-heading",children:[u.jsx("span",{children:"Products"}),u.jsxs("small",{children:[p.products.length," active"]})]}),p.products.map(T=>u.jsxs("div",{className:"product-row",children:[u.jsxs("div",{children:[u.jsx("strong",{children:T.name}),u.jsx("span",{children:T.type})]}),u.jsx(ia,{state:T.status})]},T.id))]}),u.jsxs("div",{className:"settings-footnote",children:[u.jsx("span",{children:e?.server.runtimeVersion??"Runtime loading"}),u.jsx("strong",{children:t?.serverUrl??"loading"})]}),e?.appsMeta.lastRefreshError&&u.jsxs("div",{className:"settings-footnote warning",children:[u.jsx("span",{children:"Last refresh error"}),u.jsx("strong",{children:e.appsMeta.lastRefreshError})]}),M?u.jsx(Nu,{account:M,busy:Ri,onClose:()=>{Ri||z(null)},onSave:Y}):null,F?u.jsx(Nu,{account:ie,busy:n,initialApiKey:r,mode:"connect",onClose:()=>{n||U(!1)},onSave:al}):null,u.jsx(Mx,{state:re,onResolve:R})]})}function sl(e){return`${e.handle.trim().toLowerCase()}|${e.baseUrl??"default"}`}function zi(...e){for(const t of e){const r=t?.trim();if(r)return r}return""}function _u(e){const t=e.trim().toLowerCase();return!t||t==="production"?"Production":"Environment"}function N0(e){const t=e?.trim().replace(/\/+$/,"");if(!t)return ll;try{const r=new URL(t);return r.protocol!=="http:"&&r.protocol!=="https:"?ll:`${t}/settings/api-keys`}catch{return ll}}function Tu(e){const t=e?.trim();return!t||t.toLowerCase()==="production"?"custom":t}function _0(e){const t=e?.trim().toLowerCase();return!!(t&&t!=="production")}function T0({advancedWorkspaceControls:e,defaultBranchPrefix:t,defaultNewProjectDirectory:r,preferences:n,saving:i,chooseDefaultProjectDirectory:a,saveDefaults:o,setAdvancedWorkspaceControls:l,setDefaultBranchPrefix:s,setDefaultNewProjectDirectory:c}){const d=ql(t)===n.defaultBranchPrefix&&r.trim()===n.defaultNewProjectDirectory&&e===n.advancedWorkspaceControls;return u.jsxs("section",{className:"account-settings",children:[u.jsx("h1",{children:"Defaults"}),u.jsxs("form",{className:"provider-settings-form",onSubmit:f=>{o(f)},children:[u.jsxs("label",{className:"settings-check-row",children:[u.jsx("input",{type:"checkbox",checked:e,disabled:i,onChange:f=>l(f.target.checked)}),u.jsxs("span",{children:[u.jsx("strong",{children:"Show advanced Git controls"}),u.jsx("small",{children:"Show branch, commit, and push controls for local project workflows."})]})]}),u.jsxs("div",{className:"account-list-heading",children:[u.jsx("span",{children:"Git branches"}),u.jsx("small",{children:"Used for advanced and non-managed branch creation"})]}),u.jsx("div",{className:"provider-settings-grid single",children:u.jsxs("label",{className:"settings-select-field",children:[u.jsx("span",{children:"Branch prefix"}),u.jsx("input",{value:t,disabled:i,placeholder:"feat/",onChange:f=>s(f.target.value)})]})}),u.jsxs("div",{className:"account-list-heading",children:[u.jsx("span",{children:"Projects"}),u.jsx("small",{children:"Used when starting a new local project from scratch"})]}),u.jsxs("div",{className:"settings-path-row",children:[u.jsxs("label",{className:"settings-select-field",children:[u.jsx("span",{children:"New project directory"}),u.jsx("input",{value:r,disabled:i,placeholder:"~/Documents/OpenPond Projects",onChange:f=>c(f.target.value)})]}),u.jsxs("button",{type:"button",className:"settings-secondary",disabled:i,onClick:()=>{a()},children:[u.jsx(Xv,{size:14}),u.jsx("span",{children:"Browse"})]})]}),u.jsx("button",{className:"settings-primary",disabled:i||d,children:u.jsx("span",{children:i?"Saving":"Save defaults"})})]}),u.jsxs("div",{className:"settings-footnote",children:[u.jsx("span",{children:"Initial branch name"}),u.jsxs("strong",{children:[ql(t),"example-project"]})]}),u.jsxs("div",{className:"settings-footnote",children:[u.jsx("span",{children:"New projects"}),u.jsx("strong",{children:r||n.defaultNewProjectDirectory})]})]})}function M0({diagnostics:e,diagnosticsAvailable:t,diagnosticsBusy:r,diagnosticsStatus:n,logDir:i,logLineLimit:a,logLines:o,logViewBusy:l,logViewSummary:s,logViewportRef:c,tailLogs:d,copyRecentLogs:f,exportDiagnosticsBundle:h,loadOlderLogs:v,openLogsFolder:p,refreshLogView:g,toggleTailLogs:y}){const b=e.filter(x=>x.name==="diagnostic"&&x.status==="failed").slice().reverse().map(D0),w=typeof window>"u"?void 0:window.openpond;return u.jsxs("section",{className:"account-settings",children:[u.jsx("h1",{children:"Diagnostics"}),u.jsxs("div",{className:"diagnostics-log-panel",children:[u.jsxs("div",{className:"account-list-heading",children:[u.jsx("span",{children:"Recent errors"}),u.jsxs("small",{children:[b.length," saved"]})]}),u.jsx("div",{className:"diagnostics-error-list",role:"list",children:b.length===0?u.jsx("div",{className:"diagnostics-error-empty",children:"No saved errors"}):b.map(x=>u.jsxs("article",{className:"diagnostics-error-entry",role:"listitem",children:[u.jsx(Zv,{size:15}),u.jsxs("div",{className:"diagnostics-error-body",children:[u.jsxs("div",{className:"diagnostics-error-title",children:[u.jsx("strong",{children:x.message}),u.jsx("time",{dateTime:x.timestamp,children:x.timeLabel})]}),u.jsxs("div",{className:"diagnostics-error-meta",children:[u.jsx("span",{children:x.surface}),x.status?u.jsx("span",{children:x.status}):null,x.sequence?u.jsxs("span",{children:["#",x.sequence]}):null]}),x.detail?u.jsxs("details",{className:"diagnostics-error-detail",children:[u.jsx("summary",{children:"Details"}),u.jsx("pre",{children:x.detail})]}):null]})]},x.id))})]}),u.jsxs("div",{className:"account-list",children:[u.jsxs("div",{className:"account-list-heading",children:[u.jsx("span",{children:"Logs"}),u.jsx("small",{children:t?"Desktop":"Unavailable"})]}),u.jsxs("div",{className:"product-row",children:[u.jsxs("div",{children:[u.jsx("strong",{children:"Logs folder"}),u.jsx("span",{children:"Desktop and server logs"})]}),u.jsxs("button",{type:"button",className:"settings-secondary",disabled:r!==null||!w?.openLogsFolder,onClick:()=>{p()},children:[u.jsx(Xv,{size:15}),u.jsx("span",{children:r==="logs"?"Opening":"Open"})]})]}),u.jsxs("div",{className:"product-row",children:[u.jsxs("div",{children:[u.jsx("strong",{children:"Diagnostics export"}),u.jsx("span",{children:"Support folder with diagnostics.txt"})]}),u.jsxs("button",{type:"button",className:"settings-secondary",disabled:r!==null||!w?.exportDiagnostics,onClick:()=>{h()},children:[u.jsx(Rx,{size:15}),u.jsx("span",{children:r==="export"?"Exporting":"Export"})]})]}),u.jsxs("div",{className:"product-row",children:[u.jsxs("div",{children:[u.jsx("strong",{children:"Recent logs"}),u.jsx("span",{children:"Last 1000 lines to clipboard"})]}),u.jsxs("button",{type:"button",className:"settings-secondary",disabled:r!==null||!w?.copyRecentLogs,onClick:()=>{f()},children:[u.jsx(p0,{size:15}),u.jsx("span",{children:r==="copy"?"Copying":"Copy"})]})]})]}),u.jsxs("div",{className:"diagnostics-log-panel",children:[u.jsxs("div",{className:"account-list-heading",children:[u.jsx("span",{children:"Log view"}),u.jsxs("div",{className:"settings-heading-actions diagnostics-log-actions",children:[u.jsx("small",{children:s}),u.jsx("button",{type:"button",className:`settings-icon-button ${d?"active":""}`,title:d?"Pause tail":"Tail logs","aria-label":d?"Pause tail":"Tail logs",disabled:!w?.readRecentLogs,onClick:y,children:d?u.jsx(Lx,{size:15}):u.jsx(f0,{size:15})}),u.jsx("button",{type:"button",className:"settings-icon-button",title:"Refresh logs","aria-label":"Refresh logs",disabled:l!==null||!w?.readRecentLogs,onClick:()=>{g(a,"refresh")},children:u.jsx(Gr,{size:15})}),u.jsxs("button",{type:"button",className:"settings-secondary",disabled:l!==null||!w?.readRecentLogs,onClick:v,children:[u.jsx(zx,{size:15}),u.jsx("span",{children:l==="older"?"Loading":"Older"})]})]})]}),u.jsx("div",{ref:c,className:"diagnostics-log-viewer",role:"log","aria-live":d?"polite":"off",children:o.length===0?u.jsx("div",{className:"diagnostics-log-empty",children:l?"Loading logs":"No log lines"}):o.map((x,S)=>u.jsxs("div",{className:"diagnostics-log-entry",children:[u.jsx("span",{className:"diagnostics-log-source",children:x.file}),u.jsx("code",{children:x.line})]},`${x.file}:${x.timestamp}:${x.index}:${S}`))}),i&&u.jsxs("div",{className:"diagnostics-log-dir",children:[u.jsx("span",{children:"Source"}),u.jsx("strong",{children:i})]})]}),n&&u.jsxs("div",{className:`settings-footnote ${n.warning?"warning":""}`,children:[u.jsx("span",{children:n.label}),u.jsx("strong",{children:n.value})]})]})}function D0(e){const t=Mu(e.data),r=Mu(t.context),i=yr(t.stack)??yr(t.detail)??yr(r.detail)??null;return{id:e.id,timestamp:e.timestamp,timeLabel:R0(e.timestamp),message:$0(e,t),surface:yr(t.surface)??e.source??"diagnostic",status:e.status??null,sequence:e.sequence??null,detail:i}}function $0(e,t){return yr(e.error)??yr(e.output)??yr(t.message)??yr(t.error)??"Diagnostic event"}function R0(e){const t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleString([],{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"})}function Mu(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:{}}function yr(e){return typeof e=="string"&&e.trim()?e.trim():null}const Du=[{id:"typescript",label:"TypeScript",placeholder:"typescript-language-server"},{id:"python",label:"Python",placeholder:"pyright-langserver"},{id:"rust",label:"Rust",placeholder:"rust-analyzer"}];function L0({editorPreferences:e,lspStatus:t,preferences:r,restarting:n,saving:i,statusLoading:a,refreshLspStatus:o,restartLanguageServers:l,saveEditorSettings:s,setEditorPreferences:c,setLanguageCustomCommand:d,setLanguageMode:f}){const h=JSON.stringify(e)!==JSON.stringify(r.editor),v=new Map(t?.languages.map(p=>[p.language,p])??[]);return u.jsxs("section",{className:"account-settings",children:[u.jsx("h1",{children:"Editor"}),u.jsxs("form",{className:"provider-settings-form editor-settings-form",onSubmit:p=>{s(p)},children:[u.jsxs("div",{className:"account-list-heading",children:[u.jsx("span",{children:"Language servers"}),u.jsx("small",{children:"Local tools"})]}),u.jsx("div",{className:"provider-settings-grid single",children:u.jsxs("div",{className:"settings-select-field",children:[u.jsx("span",{children:"Language servers"}),u.jsx(ni,{value:e.languageServers,disabled:i,label:"Language servers",options:Bx,onChange:p=>c(g=>({...g,languageServers:p}))})]})}),u.jsxs("label",{className:"settings-check-row",children:[u.jsx("input",{type:"checkbox",checked:e.diagnosticsWhileEditing,disabled:i||e.languageServers==="off",onChange:p=>c(g=>({...g,diagnosticsWhileEditing:p.target.checked}))}),u.jsxs("span",{children:[u.jsx("strong",{children:"Diagnostics while editing"}),u.jsx("small",{children:"Update Monaco markers as the local buffer changes."})]})]}),u.jsxs("label",{className:"settings-check-row",children:[u.jsx("input",{type:"checkbox",checked:e.checkOnSave,disabled:i||e.languageServers==="off",onChange:p=>c(g=>({...g,checkOnSave:p.target.checked}))}),u.jsxs("span",{children:[u.jsx("strong",{children:"Check on save"}),u.jsx("small",{children:"Refresh diagnostics after writing a file."})]})]}),u.jsxs("div",{className:"account-list-heading",children:[u.jsx("span",{children:"Languages"}),u.jsx("small",{children:"Auto, disabled, or custom executable"})]}),u.jsx("div",{className:"lsp-language-list",children:Du.map(p=>{const g=e.languages[p.id];return u.jsxs("div",{className:"lsp-language-row",children:[u.jsxs("div",{className:"lsp-language-label",children:[u.jsx("strong",{children:p.label}),u.jsx("span",{children:$u(v.get(p.id),a)})]}),u.jsxs("div",{className:"settings-select-field",children:[u.jsx("span",{children:"Mode"}),u.jsx(ni,{value:g.mode,disabled:i||e.languageServers==="off",label:`${p.label} language server mode`,options:Ux,onChange:y=>f(p.id,y)})]}),u.jsxs("label",{className:"settings-select-field",children:[u.jsx("span",{children:"Custom executable"}),u.jsx("input",{value:g.customCommand,disabled:i||e.languageServers==="off"||g.mode!=="custom",placeholder:p.placeholder,onChange:y=>d(p.id,y.target.value)})]})]},p.id)})}),u.jsx("button",{className:"settings-primary",disabled:i||!h,children:u.jsx("span",{children:i?"Saving":"Save editor settings"})})]}),u.jsxs("div",{className:"account-list",children:[u.jsxs("div",{className:"account-list-heading",children:[u.jsx("span",{children:"LSP status"}),u.jsxs("div",{className:"settings-heading-actions",children:[u.jsx("small",{children:a?"Checking":t?"Current":"Not checked"}),u.jsx("button",{type:"button",className:"settings-icon-button",title:"Refresh LSP status","aria-label":"Refresh LSP status",disabled:a||n,onClick:()=>{o()},children:u.jsx(Gr,{className:a?"settings-spin":void 0,size:15})}),u.jsxs("button",{type:"button",className:"settings-secondary",disabled:a||n,onClick:()=>{l()},children:[u.jsx(A0,{className:n?"settings-spin":void 0,size:15}),u.jsx("span",{children:n?"Restarting":"Restart"})]})]})]}),Du.map(p=>{const g=v.get(p.id);return u.jsxs("div",{className:"product-row lsp-status-row",children:[u.jsxs("div",{children:[u.jsx("strong",{children:p.label}),u.jsx("span",{title:g?.command??g?.message??void 0,children:g?.command??g?.message??"Not checked"})]}),u.jsx("span",{className:`lsp-status-pill ${g?.status??"missing"}`,children:$u(g,a)})]},p.id)})]}),u.jsxs("div",{className:"settings-footnote",children:[u.jsx("span",{children:"Project config"}),u.jsx("strong",{children:"Uses tsconfig, pyrightconfig, pyproject, and Cargo files when present"})]})]})}function $u(e,t){return t&&!e?"Checking":e?e.status==="found"?"Found":e.status==="disabled"?"Disabled":e.status==="error"?"Error":"Missing":"Not checked"}function z0({goalStorageLocation:e,preferences:t,saving:r,saveDefaults:n,setGoalStorageLocation:i}){return u.jsxs("section",{className:"account-settings",children:[u.jsx("h1",{children:"Goals"}),u.jsxs("form",{className:"provider-settings-form",onSubmit:a=>{n(a)},children:[u.jsxs("div",{className:"account-list-heading",children:[u.jsx("span",{children:"Storage"}),u.jsx("small",{children:"Controls where local goal state, plans, and artifacts are written"})]}),u.jsxs("div",{className:"settings-radio-group",children:[u.jsxs("label",{className:"settings-radio-row",children:[u.jsx("input",{type:"radio",name:"goal-storage-location",checked:e==="global",disabled:r,onChange:()=>i("global")}),u.jsxs("span",{children:[u.jsx("strong",{children:"User home"}),u.jsx("small",{children:"Store goal files under ~/.openpond/goals."})]})]}),u.jsxs("label",{className:"settings-radio-row",children:[u.jsx("input",{type:"radio",name:"goal-storage-location",checked:e==="workspace",disabled:r,onChange:()=>i("workspace")}),u.jsxs("span",{children:[u.jsx("strong",{children:"Working directory"}),u.jsx("small",{children:"Store goal files in the current workspace under .openpond/goals."})]})]})]}),u.jsx("button",{className:"settings-primary",disabled:r||e===t.goalStorageLocation,children:u.jsx("span",{children:r?"Saving":"Save goals"})})]}),u.jsxs("div",{className:"settings-footnote",children:[u.jsx("span",{children:"Goal storage"}),u.jsx("strong",{children:e==="global"?"~/.openpond/goals":".openpond/goals in the working directory"})]})]})}function B0({contextCompactionAutoEnabled:e,preferences:t,saving:r,saveDefaults:n,setContextCompactionAutoEnabled:i}){return u.jsxs("section",{className:"account-settings",children:[u.jsx("h1",{children:"Context"}),u.jsxs("form",{className:"provider-settings-form",onSubmit:a=>{n(a)},children:[u.jsxs("div",{className:"account-list-heading",children:[u.jsx("span",{children:"Compaction"}),u.jsx("small",{children:"Controls automatic compaction for long OpenPond and BYOK chats"})]}),u.jsxs("label",{className:"settings-check-row",children:[u.jsx("input",{type:"checkbox",checked:e,disabled:r,onChange:a=>i(a.target.checked)}),u.jsxs("span",{children:[u.jsx("strong",{children:"Auto compact long chats"}),u.jsx("small",{children:"Summarize older turns at 85% context before the selected model runs out. The transcript stays visible."})]})]}),u.jsx("button",{className:"settings-primary",disabled:r||e===t.contextCompaction.autoEnabled,children:u.jsx("span",{children:r?"Saving":"Save context"})})]})]})}function U0({insightsEnabled:e,insightsUseDefaultModel:t,insightsProvider:r,insightsModel:n,insightsEvidenceSources:i,preferences:a,providers:o,saving:l,saveDefaults:s,changeInsightsProvider:c,setInsightsEnabled:d,setInsightsUseDefaultModel:f,setInsightsModel:h,setInsightsEvidenceSourceEnabled:v}){const p=zs(o,{enabledOnly:!0}),g=pi(r,o),y="settings-insights-model-options",b=e===a.insightsEnabled&&G0(i,a.insightsEvidenceSources)&&V0({useDefault:t,provider:r,model:n},a);return u.jsxs("section",{className:"account-settings insights-settings",children:[u.jsx("h1",{children:"Insights"}),u.jsxs("form",{className:"provider-settings-form",onSubmit:w=>{s(w)},children:[u.jsxs("div",{className:"account-list-heading",children:[u.jsx("span",{children:"Background agent"}),u.jsx("small",{children:"Controls the background Insights agent"})]}),u.jsxs("label",{className:"settings-check-row",children:[u.jsx("input",{type:"checkbox",checked:e,disabled:l,onChange:w=>d(w.target.checked)}),u.jsxs("span",{children:[u.jsx("strong",{children:"Run background Insights"}),u.jsx("small",{children:"Startup and interval scans run while the app is open."})]})]}),u.jsxs("label",{className:"settings-check-row",children:[u.jsx("input",{type:"checkbox",checked:t,disabled:l,onChange:w=>f(w.target.checked)}),u.jsxs("span",{children:[u.jsx("strong",{children:"Use default chat model"}),u.jsxs("small",{children:[mn(a.defaultChatProvider,o)," /"," ",fa(a.defaultChatModel,o,a.defaultChatProvider)]})]})]}),t?null:u.jsxs("div",{className:"provider-settings-grid two",children:[u.jsxs("label",{className:"settings-select-field",children:[u.jsx("span",{children:"Insights provider"}),u.jsx("select",{value:r,disabled:l,onChange:w=>c(w.target.value),children:p.map(w=>u.jsx("option",{value:w.value,children:w.label},w.value))})]}),u.jsxs("label",{className:"settings-select-field",children:[u.jsx("span",{children:"Insights model"}),u.jsx("input",{value:n,disabled:l,list:y,onChange:w=>h(w.target.value)}),u.jsx("datalist",{id:y,children:g.map(w=>u.jsx("option",{value:w.value,children:w.label},w.value))})]})]}),u.jsx("div",{className:"settings-check-grid","aria-label":"Insights evidence sources",children:am.map(w=>u.jsxs("label",{className:"settings-check-row compact",children:[u.jsx("input",{type:"checkbox",checked:i[w.key],disabled:l,onChange:x=>v(w.key,x.target.checked)}),u.jsxs("span",{children:[u.jsx("strong",{children:w.label}),u.jsx("small",{children:w.description})]})]},w.key))}),u.jsx("button",{className:"settings-primary",disabled:l||b,children:u.jsx("span",{children:l?"Saving":"Save insights"})})]}),u.jsxs("div",{className:"settings-footnote",children:[u.jsx("span",{children:"Insights model"}),u.jsx("strong",{children:t?"Default chat model":`${mn(r,o)} / ${n}`})]})]})}function F0({subagentsEnabled:e,subagentDelegationMode:t,subagentsUseDefaultModel:r,subagentsProvider:n,subagentsModel:i,subagentRoles:a,subagentsMaxConcurrentRuns:o,subagentsMaxConcurrentRunsPerProvider:l,subagentsMaxConcurrentRunsPerWorkspaceTarget:s,subagentsMaxTokens:c,subagentsHeartbeatIntervalSeconds:d,preferences:f,providers:h,saving:v,saveDefaults:p,changeSubagentsProvider:g,setSubagentsEnabled:y,setSubagentDelegationMode:b,setSubagentsUseDefaultModel:w,setSubagentsModel:x,setSubagentsMaxConcurrentRuns:S,setSubagentsMaxConcurrentRunsPerProvider:A,setSubagentsMaxConcurrentRunsPerWorkspaceTarget:j,setSubagentsMaxTokens:P,setSubagentsHeartbeatIntervalSeconds:N,setSubagentRoleEnabled:I,setSubagentRoleIsolationMode:E,setSubagentRoleMaxConcurrentRuns:O,setSubagentRoleMaxTokens:C,setSubagentRoleMaxTurns:$,setSubagentRoleModel:M,setSubagentRolePeerMessages:z,setSubagentRoleToolPolicy:W,changeSubagentRoleProvider:X}){const F=zs(h,{enabledOnly:!0}),U=r?f.defaultChatProvider:n,H=r?f.defaultChatModel:i,le=im(pi(U,h),H),se=r?null:{providerId:n,modelId:i.trim()},re=Y0({enabled:e,delegationMode:t,defaultModelRef:se,roles:a,maxConcurrentRuns:o,maxConcurrentRunsPerProvider:l,maxConcurrentRunsPerWorkspaceTarget:s,maxTokens:c,heartbeatIntervalSeconds:d},f);return u.jsx("section",{className:"account-settings subagents-settings",children:u.jsxs("form",{className:"subagent-settings-form",onSubmit:R=>{p(R)},children:[u.jsxs("div",{className:"subagent-settings-title-row",children:[u.jsx("h1",{children:"Subagents"}),u.jsxs("div",{className:"subagent-settings-actions",children:[u.jsx("button",{className:`settings-primary subagent-save-button${re?"":" dirty"}`,disabled:v||re,children:u.jsx("span",{children:v?"Saving":"Save agents"})}),u.jsxs("label",{className:"provider-toggle subagent-card-toggle","aria-label":"Allow subagents",children:[u.jsx("input",{type:"checkbox",checked:e,disabled:v,onChange:R=>y(R.target.checked)}),u.jsx("span",{})]})]})]}),u.jsxs("section",{className:"subagent-settings-section",children:[u.jsx("div",{className:"subagent-settings-card-header",children:u.jsxs("div",{children:[u.jsx("span",{children:"Default delegation"}),u.jsx("small",{children:"Used unless a task overrides it from the composer."})]})}),u.jsx("div",{className:"subagent-field-grid two",children:u.jsxs("label",{className:"settings-select-field",children:[u.jsx("span",{children:"Subagent use"}),u.jsxs("select",{value:t,disabled:v||!e,onChange:R=>b(R.target.value),children:[u.jsx("option",{value:"manual",children:"Manual"}),u.jsx("option",{value:"balanced",children:"Balanced"}),u.jsx("option",{value:"proactive",children:"Proactive"})]})]})})]}),u.jsxs("section",{className:"subagent-settings-section",children:[u.jsx("div",{className:"subagent-settings-card-header",children:u.jsx("div",{children:u.jsx("span",{children:"Default model"})})}),u.jsxs("div",{className:"subagent-field-grid two",children:[u.jsxs("label",{className:"settings-select-field",children:[u.jsx("span",{children:"Provider"}),u.jsx("select",{value:U,disabled:v||!e,onChange:R=>{w(!1),g(R.target.value)},children:F.map(R=>u.jsx("option",{value:R.value,children:R.label},R.value))})]}),u.jsxs("label",{className:"settings-select-field",children:[u.jsx("span",{children:"Model"}),u.jsx("select",{value:H,disabled:v||!e,onChange:R=>{w(!1),x(R.target.value)},children:le.map(R=>u.jsx("option",{value:R.value,children:R.label},R.value))})]})]})]}),u.jsx("div",{className:"subagent-role-list",children:a.map(R=>{const ie=Fx.find(D=>D.id===R.id),de=R.modelRef?.providerId??U,ve=R.modelRef?.modelId||Wx(de,h)||H,Oe=H0(F,h,{providerId:de,modelId:ve}),L=aa(de,ve),G=v||!e||!R.enabled;return u.jsxs("section",{className:`subagent-role-row${R.enabled?"":" disabled"}`,children:[u.jsxs("div",{className:"subagent-settings-card-header subagent-role-header",children:[u.jsxs("div",{className:"subagent-role-title",children:[u.jsx("span",{children:ie?.label??R.id}),u.jsx("small",{children:ie?.description??"Custom subagent role."})]}),u.jsxs("label",{className:"provider-toggle subagent-card-toggle","aria-label":`${ie?.label??R.id} enabled`,children:[u.jsx("input",{type:"checkbox",checked:R.enabled,disabled:v||!e,onChange:D=>I(R.id,D.target.checked)}),u.jsx("span",{})]})]}),u.jsxs("div",{className:"subagent-role-controls",children:[u.jsxs("label",{className:"settings-select-field",children:[u.jsx("span",{children:"Model"}),u.jsx("select",{value:L,disabled:G,onChange:D=>{const _=Oe.find(xe=>xe.value===D.target.value);_&&(X(R.id,_.providerId),M(R.id,_.modelId))},children:Oe.map(D=>u.jsx("option",{value:D.value,children:D.label},D.value))})]}),u.jsxs("label",{className:"settings-select-field",children:[u.jsx("span",{children:"Isolation"}),u.jsx("select",{value:R.isolationMode,disabled:G,onChange:D=>E(R.id,D.target.value),children:W0.map(D=>u.jsx("option",{value:D.value,children:D.label},D.value))})]}),u.jsxs("label",{className:"settings-select-field",children:[u.jsx("span",{children:"Tools"}),u.jsx("select",{value:R.toolPolicy,disabled:G,onChange:D=>W(R.id,D.target.value),children:K0.map(D=>u.jsx("option",{value:D.value,children:D.label},D.value))})]}),u.jsxs("label",{className:"settings-select-field",children:[u.jsx("span",{children:"Peer messages"}),u.jsx("select",{value:R.peerMessages,disabled:G,onChange:D=>z(R.id,D.target.value),children:q0.map(D=>u.jsx("option",{value:D.value,children:D.label},D.value))})]})]}),u.jsxs("div",{className:"subagent-role-budget-grid",children:[u.jsxs("label",{className:"settings-select-field",children:[u.jsx("span",{children:"Role concurrency"}),u.jsx("input",{type:"number",min:1,max:16,value:R.maxConcurrentRuns,disabled:G,onChange:D=>O(R.id,cl(D.target.value,1))})]}),u.jsxs("label",{className:"settings-select-field",children:[u.jsx("span",{children:"Turn cap"}),u.jsx("input",{type:"number",min:1,max:100,value:R.maxTurns??"",placeholder:"No cap",disabled:G,onChange:D=>$(R.id,sn(D.target.value))})]}),u.jsxs("label",{className:"settings-select-field",children:[u.jsx("span",{children:"Token cap"}),u.jsx("input",{type:"number",min:1,max:1e7,value:R.maxTokens??"",placeholder:"No cap",disabled:G,onChange:D=>C(R.id,sn(D.target.value))})]})]})]},R.id)})}),u.jsxs("section",{className:"subagent-settings-section",children:[u.jsx("div",{className:"subagent-settings-card-header",children:u.jsxs("div",{children:[u.jsx("span",{children:"Limits"}),u.jsx("small",{children:"Controls child worker concurrency and background status checks."})]})}),u.jsxs("div",{className:"subagent-field-grid four",children:[u.jsxs("label",{className:"settings-select-field",children:[u.jsx("span",{children:"Total concurrency"}),u.jsx("input",{type:"number",min:1,max:32,value:o,disabled:v||!e,onChange:R=>S(cl(R.target.value,1))})]}),u.jsxs("label",{className:"settings-select-field",children:[u.jsx("span",{children:"Per provider"}),u.jsx("input",{type:"number",min:1,max:32,value:l??"",placeholder:"No cap",disabled:v||!e,onChange:R=>A(sn(R.target.value))})]}),u.jsxs("label",{className:"settings-select-field",children:[u.jsx("span",{children:"Per workspace"}),u.jsx("input",{type:"number",min:1,max:32,value:s??"",placeholder:"No cap",disabled:v||!e,onChange:R=>j(sn(R.target.value))})]}),u.jsxs("label",{className:"settings-select-field",children:[u.jsx("span",{children:"Total token cap"}),u.jsx("input",{type:"number",min:1,max:5e7,value:c??"",placeholder:"No cap",disabled:v||!e,onChange:R=>P(sn(R.target.value))})]}),u.jsxs("label",{className:"settings-select-field",children:[u.jsx("span",{children:"Background check seconds"}),u.jsx("input",{type:"number",min:10,max:3600,value:d,disabled:v||!e,onChange:R=>N(cl(R.target.value,60))}),u.jsx("small",{children:"OpenPond checks active child workers at this cadence. It does not wake the parent model every interval."})]})]})]})]})})}const W0=[{value:"none",label:"Direct workspace"},{value:"copy_on_write",label:"Copy-on-write"},{value:"worktree",label:"Worktree"}],K0=[{value:"read_only",label:"Read only"},{value:"workspace_write",label:"Workspace write"},{value:"full_tools",label:"Full tools"}],q0=[{value:"goal_scoped",label:"Scoped handoffs"},{value:"disabled",label:"Disabled"}];function im(e,t){const r=t.trim();return!r||e.some(n=>n.value===r)?e:[{value:r,label:r},...e]}function aa(e,t){return JSON.stringify([e,t])}function H0(e,t,r){const n=[];for(const i of e){const a=im(pi(i.value,t),i.value===r.providerId?r.modelId:"");for(const o of a)n.push({value:aa(i.value,o.value),label:`${i.label} / ${o.label}`,providerId:i.value,modelId:o.value})}return r.modelId&&!n.some(i=>i.value===aa(r.providerId,r.modelId))&&n.unshift({value:aa(r.providerId,r.modelId),label:`${mn(r.providerId,t)} / ${r.modelId}`,providerId:r.providerId,modelId:r.modelId}),n}const am=[{key:"createEdit",label:"Create/Improve",description:"Waiting, blocked, or failed Create/Improve runs."},{key:"stuckTurns",label:"Stuck turns",description:"Failed or long-running active turns."},{key:"toolFailures",label:"Tool failures",description:"Repeated tool or action failures."},{key:"abandonedGoals",label:"Abandoned goals",description:"Goal loops left active too long."},{key:"userCorrections",label:"Corrections",description:"Repeated correction-style prompts."},{key:"unresolvedConversations",label:"Unresolved chats",description:"Long chats with unresolved recent work."},{key:"usageAnomalies",label:"Usage",description:"Spikes, failures, missing usage, and latency changes."}];function G0(e,t){return am.every(r=>e[r.key]===t[r.key])}function V0(e,t){return e.useDefault?!t.insightsModelRef:t.insightsModelRef?.providerId===e.provider&&t.insightsModelRef?.modelId===e.model.trim()}function sn(e){const t=e.trim();if(!t)return null;const r=Number(t);return Number.isFinite(r)?r:null}function cl(e,t){return sn(e)??t}function Y0(e,t){const r=t.subagents;return e.enabled===r.enabled&&e.delegationMode===r.delegationMode&&X0(e.defaultModelRef,r.defaultModelRef)&&e.maxConcurrentRuns===r.maxConcurrentRuns&&e.maxConcurrentRunsPerProvider===r.maxConcurrentRunsPerProvider&&e.maxConcurrentRunsPerWorkspaceTarget===r.maxConcurrentRunsPerWorkspaceTarget&&e.maxTokens===r.maxTokens&&e.heartbeatIntervalSeconds===r.heartbeatIntervalSeconds&&JSON.stringify(e.roles)===JSON.stringify(r.roles)}function X0(e,t){return(e?.providerId??null)===(t?.providerId??null)&&(e?.modelId??null)===(t?.modelId??null)}const Z0=[{mode:"all",label:"All new messages",detail:"Show an in-app alert for every Team Chat message."},{mode:"direct_mentions",label:"Direct messages and mentions",detail:"Show alerts for direct messages and messages that mention you."},{mode:"none",label:"Nothing",detail:"Keep unread counts without showing message alerts."}];function J0({currentUserId:e,enabled:t,mode:r,threads:n,onModeChange:i,onThreadMuteChange:a}){const[o,l]=m.useState(null),[s,c]=m.useState(null),d=m.useMemo(()=>n.filter(v=>v.archivedAt===null).map(v=>({thread:v,label:Q0(v,e)})).sort((v,p)=>{const g=+!!p.thread.mutedAt-+!!v.thread.mutedAt;return g!==0?g:v.label.localeCompare(p.label)}),[e,n]),f=d.filter(({thread:v})=>!!v.mutedAt).length,h=m.useCallback(async v=>{l(v.id),c(null),await a(v.id,!v.mutedAt)||c("Could not update this conversation. Try again."),l(null)},[a]);return u.jsxs("section",{className:"account-settings notifications-settings",children:[u.jsx("h1",{children:"Notifications"}),u.jsxs("div",{className:"account-list notification-settings-card",children:[u.jsxs("div",{className:"account-list-heading",children:[u.jsx("span",{children:"Team chat notifications"}),u.jsx("small",{children:"In-app alerts"})]}),u.jsx("div",{className:"notification-mode-list",role:"radiogroup","aria-label":"Notify me about",children:Z0.map(v=>u.jsxs("label",{className:`notification-mode-option${r===v.mode?" selected":""}`,children:[u.jsx("input",{type:"radio",name:"team-chat-notification-mode",checked:r===v.mode,onChange:()=>i(v.mode)}),u.jsxs("span",{children:[u.jsx("strong",{children:v.label}),u.jsx("small",{children:v.detail})]})]},v.mode))})]}),u.jsxs("div",{className:"account-list notification-settings-card",children:[u.jsxs("div",{className:"account-list-heading",children:[u.jsx("span",{children:"Conversation overrides"}),u.jsx("small",{children:f===1?"1 muted":`${f} muted`})]}),t?d.length===0?u.jsx("div",{className:"empty-account-list",children:u.jsx("span",{children:"Open a Team Chat conversation to manage it here."})}):d.map(({thread:v,label:p})=>{const g=!!v.mutedAt,y=o===v.id;return u.jsxs("div",{className:"notification-thread-row",children:[u.jsx("span",{className:`notification-thread-icon${g?" muted":""}`,children:g?u.jsx(Kx,{size:15}):u.jsx(tm,{size:15})}),u.jsxs("span",{className:"notification-thread-copy",children:[u.jsx("strong",{children:p}),u.jsx("small",{children:g?"Muted":"Uses the team chat setting"})]}),u.jsx("button",{type:"button",className:"settings-secondary",disabled:o!==null,onClick:()=>{h(v)},children:y?"Saving":g?"Unmute":"Mute"})]},v.id)}):u.jsx("div",{className:"empty-account-list",children:u.jsx("span",{children:"Connect a team to manage conversation overrides."})}),s?u.jsx("div",{className:"notification-settings-error",role:"alert",children:s}):null]}),u.jsx("div",{className:"settings-footnote",children:u.jsx("span",{children:"Muted conversations never show alerts. Unread counts remain available."})})]})}function Q0(e,t){return e.kind==="general"||e.kind==="channel"?`#${e.title?.trim()||"general"}`:e.kind==="dm"?e.participants.find(r=>r.userId!==t)?.name??e.title?.trim()??"Direct message":e.title?.trim()||e.participants.filter(r=>r.userId!==t).map(r=>r.name).join(", ")||"Group conversation"}function ew({canSaveCurrentTemplate:e,personalizationTemplateId:t,personalizationTemplateOptions:r,saveAsNewOpen:n,saving:i,selectedPersonalizationTemplate:a,selectedTemplateIsCustom:o,soulDraft:l,templateNameDraft:s,changePersonalizationTemplate:c,changeSoulDraft:d,openSaveAsNew:f,resetPersonalizationDraft:h,savePersonalization:v,setSaveAsNewOpen:p,setTemplateNameDraft:g}){function y(b){b.preventDefault(),v(n)}return u.jsxs("section",{className:"account-settings",children:[u.jsx("h1",{children:"Personalization"}),u.jsxs("form",{className:"provider-settings-form personalization-form",onSubmit:y,children:[u.jsxs("div",{className:"account-list-heading",children:[u.jsx("span",{children:"Agent style"}),u.jsx("div",{className:"settings-heading-actions",children:n?u.jsxs(u.Fragment,{children:[u.jsx("input",{className:"settings-heading-input",value:s,onChange:b=>g(b.target.value),placeholder:"Name","aria-label":"Template name"}),u.jsx("button",{type:"button",className:"settings-icon-button",title:"Cancel","aria-label":"Cancel",disabled:i,onClick:()=>p(!1),children:u.jsx(lo,{size:15})}),u.jsx("button",{type:"button",className:"settings-icon-button primary",title:"Save new template","aria-label":"Save new template",disabled:i||!l.trim()||!s.trim(),onClick:()=>{v(!0)},children:u.jsx(qx,{size:15})})]}):u.jsxs(u.Fragment,{children:[u.jsx("small",{children:o?"Custom template":"Built-in template"}),u.jsx("button",{type:"button",className:"settings-icon-button",title:"Save as new","aria-label":"Save as new",disabled:i||!a||!l.trim(),onClick:f,children:u.jsx(Ls,{size:15})})]})})]}),u.jsx("div",{className:"provider-settings-grid single",children:u.jsxs("div",{className:"settings-select-field",children:[u.jsx("span",{children:"Template"}),u.jsx(ni,{value:t,disabled:i||r.length===0,label:"Personalization template",options:r,onChange:b=>{c(b)}})]})}),u.jsxs("label",{className:"settings-select-field personalization-editor",children:[u.jsx("span",{children:"SOUL.md"}),u.jsx("textarea",{value:l,onChange:b=>d(b.target.value),spellCheck:!1})]}),u.jsxs("div",{className:"settings-button-row",children:[u.jsx("button",{type:"button",className:"settings-icon-button",title:"Reset to template","aria-label":"Reset to template",disabled:i||!a,onClick:h,children:u.jsx(u0,{size:15})}),o&&u.jsx("button",{className:"settings-icon-button primary",title:"Save template","aria-label":"Save template",disabled:i||!e,children:u.jsx(Us,{size:15})})]})]})]})}const tw=[{value:"local_secret",label:"Saved key",description:"Encrypted on this machine"},{value:"env",label:"Environment variable",description:"Read by the local server"}],rw=120,nw=new Set(["openai","xai","zai"]),iw=new Set(["chatgpt-subscription"]),aw="https://api.z.ai/api/coding/paas/v4";function Ru(e){return e.split(/[\n,]/).map(t=>t.trim()).filter(Boolean)}function om(e){return e?e.available?"Ready":e.credential.connected?"Configured":e.credential.lastError||e.lastError?"Needs attention":e.id==="codex"?"Needs Codex login":e.routing.localByok?"Needs key":e.enabled?"Enabled":"Off":"Unknown"}function lm(e){return e?e.available?"ready":e.credential.connected?"configured":e.credential.lastError||e.lastError||e.id==="codex"?"warning":"muted":"unknown"}function Lu(e){return e.credential.connected?e.credential.redacted?e.credential.redacted:e.credential.source==="chatgpt_subscription"?"ChatGPT subscription":e.credential.source:e.credential.lastError??"Not connected"}function ow(e){return e?.trim().replace(/\/+$/,"")??""}function sm(e,t){return e.id==="zai"&&ow(t.providers.zai?.baseUrl)===aw}function lw(e,t){return!e.credential.connected||!e.routing.localByok?"":e.credential.source==="chatgpt_subscription"?"Subscription":sm(e,t)?"Coding Plan key":"API key"}function sw(e,t){const r=t.modelCaches[e.id];if(e.routing.localByok&&e.enabled&&!e.credential.connected||!e.enabled&&e.id!=="openpond")return"";const n=Math.max(r?.models.length??0,e.modelIds.length),i=e.defaultModel?fa(e.defaultModel,t,e.id):"",a=n===1?"1 model":`${n} models`,o=lw(e,t);return[om(e),o,r?a:"",i].filter(Boolean).join(" · ")}function cw(e){return e!=="openpond"&&Hl(e)}function Fs(e){return e?nw.has(e.id)||e.credentialModes.some(t=>iw.has(t)):!1}function uw(e){return Fs(e)?["api","subscription"]:["api"]}function zu(e,t){return!e||!t||!Fs(e)?"api":e.credential.source==="chatgpt_subscription"||sm(e,t)?"subscription":"api"}function Bu(e,t){const r=Hx.filter(n=>!!e?.statuses[n]);return t?r.filter(n=>Fs(e?.statuses[n])):r}function dw(e){if(!e)return"Never";const t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleString()}function fw(e,t,r=rw){const n=[],i=new Set,a=new Set(t.map(l=>l.trim()).filter(Boolean)),o=l=>{i.has(l.value)||n.length>=r||(i.add(l.value),n.push(l))};for(const l of e)a.has(l.value)&&o(l);for(const l of e)o(l);return n}function hw({account:e,codex:t,providers:r,providerBusy:n,validationMessage:i,deleteProviderCredential:a,loadProviderModels:o,refreshProviderModels:l,saveProviderConfig:s,saveProviderCredential:c,startOpenAiSubscriptionAuth:d,validateProvider:f}){const[h,v]=m.useState(null),[p,g]=m.useState(!1),y=m.useMemo(()=>Bu(r,!1),[r]),b=m.useMemo(()=>Bu(r,p),[r,p]),w=h?r?.statuses[h]??null:null;function x(S,A){v(S),A&&o(S)}return u.jsxs("section",{className:"account-settings",children:[u.jsx("h1",{children:"Providers"}),r?u.jsxs("div",{className:"provider-manager-panel",children:[u.jsxs("div",{className:"account-list-heading provider-manager-heading",children:[u.jsxs("div",{className:"provider-manager-title-row",children:[u.jsx("span",{children:"Model providers"}),u.jsxs("label",{className:"settings-check-row compact provider-subscription-filter",children:[u.jsx("input",{type:"checkbox",checked:p,onChange:S=>g(S.currentTarget.checked)}),u.jsx("span",{children:"Subscriptions"})]})]}),u.jsxs("small",{children:[b.length," of ",y.length," presets"]})]}),b.length>0?u.jsx("div",{className:"provider-manager-scroll",role:"list",children:b.map(S=>{const A=r.statuses[S],j=r.modelCaches[S],P=A.modelIds.length>0&&(j?.models.length??0)<A.modelIds.length,N=n?.startsWith(`${S}:`)??!1,I=cw(S),E=S==="openpond"||!!r.providers[S]?.enabled;return u.jsxs("div",{className:"provider-manager-row",role:"listitem",children:[u.jsxs("label",{className:"provider-toggle","aria-label":`Enable ${A.displayName}`,children:[u.jsx("input",{type:"checkbox",checked:E,disabled:!I||N,onChange:O=>{x(S,!1),s(S,{enabled:O.currentTarget.checked})}}),u.jsx("span",{})]}),u.jsx("div",{className:"provider-row-main",children:u.jsx("strong",{children:A.displayName})}),u.jsxs("div",{className:`provider-row-status ${lm(A)}`,children:[N?u.jsx(Kt,{size:13,className:"settings-spin"}):null,u.jsx("span",{children:sw(A,r)})]}),u.jsx("button",{type:"button",className:"settings-secondary provider-details-button",onClick:()=>{x(S,P)},children:"Details"})]},S)})}):u.jsxs("div",{className:"empty-account-list provider-manager-empty",children:[u.jsx("strong",{children:"No subscription providers"}),u.jsx("span",{children:"Turn off the filter to show API-key providers."})]})]}):null,i?u.jsxs("div",{className:"settings-footnote provider-validation-message",children:[u.jsx("span",{children:"Last validation"}),u.jsx("strong",{children:i})]}):null,h&&w&&r?u.jsx(vw,{account:e,codex:t,providerId:h,providerBusy:n,settings:r,status:w,onClose:()=>v(null),onDeleteCredential:a,onRefreshModels:l,onSaveConfig:s,onSaveCredential:c,onStartOpenAiSubscriptionAuth:d,onValidate:f}):null]})}function vw({account:e,codex:t,providerId:r,providerBusy:n,settings:i,status:a,onClose:o,onDeleteCredential:l,onRefreshModels:s,onSaveConfig:c,onSaveCredential:d,onStartOpenAiSubscriptionAuth:f,onValidate:h}){const v=i.providers[r],p=i.modelCaches[r],g=m.useId(),y=m.useRef(r),b=Math.max(p?.models.length??0,a.modelIds.length),w=a.routing.localByok&&Hl(r)&&r!=="codex",x=m.useMemo(()=>w?uw(a):[],[w,a]),S=x.includes("subscription"),[A,j]=m.useState(()=>zu(a,i)),P=w&&A==="subscription"&&S,N=E=>`${g}-${E}-panel`,I=r==="codex"?"Codex app server":v?.baseUrl??(r==="openpond"?e?.chatApiBaseUrl:null)??"Not set";return m.useEffect(()=>{if(y.current!==r){y.current=r,j(zu(a,i));return}w&&!x.includes(A)&&j("api")},[A,x,w,r,i,a]),u.jsx("div",{className:"git-dialog-backdrop provider-dialog-backdrop",role:"presentation",onMouseDown:o,children:u.jsxs("section",{className:"git-dialog provider-details-dialog",role:"dialog","aria-modal":"true","aria-label":`${a.displayName} provider details`,onMouseDown:E=>E.stopPropagation(),children:[u.jsx("button",{className:"git-dialog-close",type:"button",title:"Close","aria-label":"Close",onClick:o,children:u.jsx(lo,{size:16})}),u.jsxs("div",{className:"provider-dialog-header",children:[u.jsxs("div",{children:[u.jsx("h2",{children:a.displayName}),u.jsx("span",{children:mn(r,i)})]}),u.jsx("div",{className:`provider-state-pill ${lm(a)}`,children:om(a)})]}),w?u.jsx("div",{className:"surface-tabs provider-mode-tabs",role:"tablist","aria-label":`${a.displayName} mode`,children:x.map(E=>u.jsx("button",{type:"button",role:"tab",id:`${g}-${E}`,className:A===E?"active":void 0,"aria-selected":A===E,"aria-controls":N(E),onClick:()=>j(E),children:E==="api"?"API":"Subscription"},E))}):null,u.jsxs("dl",{className:"provider-dialog-stats",children:[u.jsxs("div",{children:[u.jsx("dt",{children:"Credential"}),u.jsx("dd",{title:Lu(a),children:Lu(a)})]}),P?null:u.jsxs(u.Fragment,{children:[u.jsxs("div",{children:[u.jsx("dt",{children:"Base URL"}),u.jsx("dd",{title:I,children:I})]}),u.jsxs("div",{children:[u.jsx("dt",{children:"Model"}),u.jsx("dd",{title:v?.defaultModel??a.defaultModel??void 0,children:v?.defaultModel??a.defaultModel??"Not set"})]}),u.jsxs("div",{children:[u.jsx("dt",{children:"Models"}),u.jsxs("dd",{title:p?.lastError??void 0,children:[b," cached · ",dw(p?.fetchedAt)]})]})]}),r==="codex"?u.jsxs(u.Fragment,{children:[u.jsxs("div",{children:[u.jsx("dt",{children:"Account"}),u.jsx("dd",{title:t?.account?.email??void 0,children:t?.account?.label??t?.account?.email??"Not signed in"})]}),u.jsxs("div",{children:[u.jsx("dt",{children:"Binary"}),u.jsx("dd",{title:t?.binaryPath??void 0,children:t?.binaryPath??"Not found"})]})]}):null,a.credential.lastError||p?.lastError||a.lastError?u.jsxs("div",{className:"provider-dialog-error",children:[u.jsx("dt",{children:"Error"}),u.jsx("dd",{title:a.credential.lastError??p?.lastError??a.lastError??void 0,children:a.credential.lastError??p?.lastError??a.lastError})]}):null]}),r==="codex"?u.jsx(mw,{providerBusy:n,status:a,onValidate:h}):w&&v&&p?u.jsx(pw,{credentialTab:A,credentialTabsId:g,hasSubscriptionTab:S,providerId:r,providerBusy:n,settings:i,status:a,onDeleteCredential:l,onRefreshModels:s,onSaveConfig:c,onSaveCredential:d,onStartOpenAiSubscriptionAuth:f,onValidate:h}):a.routing.localByok&&!Hl(r)?u.jsxs("div",{className:"provider-dialog-note",children:[u.jsx(Zv,{size:15}),u.jsx("span",{children:"Adapter pending"})]}):null]})})}function mw({providerBusy:e,status:t,onValidate:r}){const n=e==="codex:validate";return u.jsxs("div",{className:"provider-dialog-body codex-provider-body",children:[u.jsxs("div",{className:"provider-dialog-note codex-provider-note",children:[u.jsx(qt,{size:15}),u.jsxs("span",{children:["Uses your local ",u.jsx("code",{children:"codex login"})," session through the Codex app server. This route is separate from OpenAI Platform API-key billing."]})]}),u.jsx("div",{className:"settings-button-row codex-provider-actions",children:u.jsxs("button",{type:"button",className:"settings-secondary",disabled:n,onClick:()=>{r("codex",{modelId:t.defaultModel??void 0})},children:[n?u.jsx(Kt,{size:14,className:"settings-spin"}):u.jsx(Jv,{size:14}),u.jsx("span",{children:n?"Testing":"Test Codex login"})]})})]})}function pw({credentialTab:e,credentialTabsId:t,hasSubscriptionTab:r,providerId:n,providerBusy:i,settings:a,status:o,onDeleteCredential:l,onRefreshModels:s,onSaveConfig:c,onSaveCredential:d,onStartOpenAiSubscriptionAuth:f,onValidate:h}){const v=a.providers[n],p=m.useMemo(()=>pi(n,a),[n,a]),g=`provider-models-${n}`,y=m.useRef(n),[b,w]=m.useState(v.baseUrl??""),[x,S]=m.useState(v.defaultModel??""),[A,j]=m.useState(v.modelOverrides.join(`
|
|
1
|
+
import{d as Sr,j as u,r as m,X as lo,u as Cx,o as kx,e as Ex,f as Ix,g as Nx,p as _x,D as ni,E as Tx,h as Ls,k as Mx,l as Dx,m as Z,n as $x,q as ql,s as Xv,t as Zv,v as Rx,w as Lx,x as zx,L as Bx,y as Ux,z as zs,A as pi,B as mn,G as fa,H as Fx,I as Wx,J as Kx,K as qx,N as Kt,O as Hx,Q as Hl,R as Jv,T as Pu,U as Gx,V as Vx,M as Yx,W as Qv,Y as Xx,Z as Zx,_ as Jx,$ as Ou,a as Qx,a0 as Bs,a1 as e0,a2 as t0,a3 as r0,a4 as n0,a5 as i0,a6 as em,a7 as vr,a8 as Cu,a9 as ha,aa as Li,ab as a0,ac as o0,ad as l0,ae as s0,af as c0}from"./index-Md3sZKuq.js";import{R as u0,P as d0}from"./ProfileSettingsSection-Wms2nM8S.js";import{R as Gr}from"./refresh-cw-CLWf9Yye.js";/* empty css */import{S as Us}from"./save-Cf458B41.js";import{P as f0}from"./play-fYNcpLd1.js";import{B as tm,W as h0,S as ku}from"./wifi-off-BmQZtHYT.js";import{M as v0}from"./monitor-BiTzpoOs.js";import{r as so}from"./index-5GiqJrAI.js";import"./git-commit-horizontal-nYzHKpP_.js";const m0=[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2",key:"4jdomd"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v4",key:"3hqy98"}],["path",{d:"M21 14H11",key:"1bme5i"}],["path",{d:"m15 10-4 4 4 4",key:"5dvupr"}]],p0=Sr("clipboard-copy",m0);const g0=[["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"}]],y0=Sr("code-xml",g0);const b0=[["path",{d:"M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z",key:"1s6t7t"}],["circle",{cx:"16.5",cy:"7.5",r:".5",fill:"currentColor",key:"w0ekpg"}]],qt=Sr("key-round",b0);const x0=[["path",{d:"M12 2v10",key:"mnfbl"}],["path",{d:"M18.4 6.6a9 9 0 1 1-12.77.04",key:"obofu9"}]],w0=Sr("power",x0);const j0=[["path",{d:"M4.9 16.1C1 12.2 1 5.8 4.9 1.9",key:"s0qx1y"}],["path",{d:"M7.8 4.7a6.14 6.14 0 0 0-.8 7.5",key:"1idnkw"}],["circle",{cx:"12",cy:"9",r:"2",key:"1092wv"}],["path",{d:"M16.2 4.8c2 2 2.26 5.11.8 7.47",key:"ojru2q"}],["path",{d:"M19.1 1.9a9.96 9.96 0 0 1 0 14.1",key:"rhi7fg"}],["path",{d:"M9.5 18h5",key:"mfy3pd"}],["path",{d:"m8 22 4-11 4 11",key:"25yftu"}]],rm=Sr("radio-tower",j0);const S0=[["path",{d:"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8",key:"1p45f6"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}]],A0=Sr("rotate-cw",S0);const P0=[["path",{d:"M10 5H3",key:"1qgfaw"}],["path",{d:"M12 19H3",key:"yhmn1j"}],["path",{d:"M14 3v4",key:"1sua03"}],["path",{d:"M16 17v4",key:"1q0r14"}],["path",{d:"M21 12h-9",key:"1o4lsq"}],["path",{d:"M21 19h-5",key:"1rlt1p"}],["path",{d:"M21 5h-7",key:"1oszz2"}],["path",{d:"M8 10v4",key:"tgpxqk"}],["path",{d:"M8 12H3",key:"a7s4jb"}]],nm=Sr("sliders-horizontal",P0);const O0=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"10",r:"3",key:"ilqhr7"}],["path",{d:"M7 20.662V19a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v1.662",key:"154egf"}]],C0=Sr("circle-user",O0);function Eu({handle:e,image:t}){const r=e?.trim().slice(0,1).toUpperCase()||"+";return u.jsx("div",{className:"account-avatar",children:t?u.jsx("img",{src:t,alt:""}):u.jsx("span",{children:r})})}function ia({state:e,label:t}){return u.jsx("span",{className:`account-state ${e}`,children:t??e.replace("_"," ")})}function k0(e,t){return e==="connect"?{handle:void 0,currentBaseUrl:null}:{handle:t?.handle,currentBaseUrl:t?.baseUrl??null}}function Iu(e,t){const r=t.trim().replace(/\/+$/,"");if(!r)throw new Error(`${e} is required.`);try{const n=new URL(r);if(n.protocol!=="http:"&&n.protocol!=="https:")throw new Error("unsupported protocol")}catch{throw new Error(`${e} must be an absolute http or https URL.`)}return r}function Nu({account:e,busy:t,initialApiKey:r="",mode:n="update",onClose:i,onSave:a}){const o=m.useId(),l=n==="connect",[s,c]=m.useState(r),[d,f]=m.useState(e?.baseUrl??""),[h,v]=m.useState(e?.apiBaseUrl??""),[p,g]=m.useState(null);m.useEffect(()=>{c(r),f(e?.baseUrl??""),v(e?.apiBaseUrl??""),g(null)},[e?.apiBaseUrl,e?.baseUrl,e?.handle,r]);async function y(b){b.preventDefault(),g(null);const w=s.trim();if(l&&!w){g("API key is required.");return}let x,S;try{x=Iu("Base URL",d),S=Iu("API base URL",h)}catch(A){g(A instanceof Error?A.message:String(A));return}try{const A=k0(n,e);await a({...A,baseUrl:x,apiBaseUrl:S,apiKey:l?w:void 0,environment:e?.environment??null})}catch(A){g(A instanceof Error?A.message:String(A))}}return u.jsx("div",{className:"git-dialog-backdrop account-endpoint-dialog-backdrop",role:"presentation",onMouseDown:b=>{b.target===b.currentTarget&&!t&&i()},children:u.jsxs("form",{className:"git-dialog account-endpoint-dialog",role:"dialog","aria-modal":"true","aria-labelledby":o,onSubmit:b=>{y(b)},children:[u.jsx("button",{className:"git-dialog-close",disabled:t,type:"button",title:"Close","aria-label":"Close",onClick:i,children:u.jsx(lo,{size:16})}),u.jsx("div",{className:"git-dialog-icon",children:l?u.jsx(qt,{size:18}):u.jsx(nm,{size:18})}),u.jsx("h2",{id:o,children:l?"Environment account":"Environment endpoints"}),l?u.jsxs("label",{className:"git-dialog-field",children:[u.jsx("span",{children:"API key"}),u.jsx("input",{autoFocus:!0,disabled:t,placeholder:"opk_...",type:"password",value:s,onChange:b=>c(b.target.value)})]}):null,u.jsxs("label",{className:"git-dialog-field",children:[u.jsx("span",{children:"Base URL"}),u.jsx("input",{autoFocus:!l,disabled:t,inputMode:"url",value:d,onChange:b=>f(b.target.value)})]}),u.jsxs("label",{className:"git-dialog-field",children:[u.jsx("span",{children:"API base URL"}),u.jsx("input",{disabled:t,inputMode:"url",value:h,onChange:b=>v(b.target.value)})]}),p?u.jsx("div",{className:"profile-dialog-warning",children:p}):null,u.jsxs("div",{className:"git-dialog-footer",children:[u.jsx("button",{className:"git-dialog-secondary",disabled:t,type:"button",onClick:i,children:"Cancel"}),u.jsxs("button",{className:"git-dialog-primary",disabled:t,type:"submit",children:[u.jsx(Us,{size:14}),u.jsx("span",{children:t?"Saving":l?"Connect account":"Update account"})]})]})]})})}const ll="https://openpond.ai/settings/api-keys",E0="Changing the active OpenPond account rechecks cloud projects, hosted agents, default team, and profile sync for that account. Local projects stay on this machine; projects uploaded from another account will need to be synced again for this account.";function I0({payload:e,connection:t,apiKey:r,saving:n,refreshingAccounts:i,setApiKey:a,saveAccount:o,saveEnvironmentAccount:l,refreshAccounts:s,switchAccount:c,onPayload:d,onPreferences:f,onError:h,onToast:v}){const p=e?.account,g=p?.state??"loading",y=g==="signed_in",b=g==="signed_out",w=g==="auth_error",x=p?.email?.trim()||null,S=p?.accounts??[],[A,j]=m.useState([]),[,P]=m.useState(!1),[N,I]=m.useState(null),[E,O]=m.useState(null),[C,$]=m.useState(null),[M,z]=m.useState(null),[W,X]=m.useState(!1),[F,U]=m.useState(!1),[H,le]=m.useState(null),{confirmAction:se,confirmDialog:re,resolveConfirmDialog:R}=Cx(),ie=S.find(T=>T.isActive)??S[0]??null,de=e?.preferences.defaultTeamId?.trim()||null,ve=C??de,Oe=kx(p),L=e?.accountMeta.asOf??"",G=zi(p?.environment,ie?.environment),D=y?zi(ie?.displayLabel,ie?.handle,p?.label,p?.activeProfile?.handle,"Signed in"):w?"Account needs attention":b?"No account connected":"Loading account",_=y?x??_u(G):w?p?.error??"Reconnect this account to restore OpenPond cloud features.":b?"Cloud projects, hosted agents, wallet, and team defaults are disabled until you sign in.":"Checking account status.",xe=S.length>0,ne=b?"Sign in to OpenPond":w?"Reconnect account":"Add or update account",V=b?"Paste an OpenPond API key to connect this desktop app.":w?"Paste a fresh OpenPond API key for the active account.":"Saved to OpenPond CLI config.",Ae=b?"Sign in":w?"Reconnect":"Save account",Q=m.useMemo(()=>A.filter(T=>T.status==="active"),[A]),Zo=(m.useMemo(()=>ve?Q.find(T=>T.teamId===ve)??null:null,[Q,ve])??Ex(Q))?.teamId??"",zn=m.useMemo(()=>Q.map(T=>({value:T.teamId,label:zi(T.displayName,T.name,T.slug,"Team"),description:Ix(T.role)})),[Q]),Jo=Zo||zn[0]?.value||"",Qo=zn.length>0,el=!t||!!E||!!N||Q.length===0,$i=M?sl(M):null,Ri=!!($i&&H===$i),tl=N0(ie?.baseUrl??p?.baseUrl),rl=y||w;m.useEffect(()=>{if(!t||!Oe){j([]),I(null),P(!1);return}let T=!1;const Se=Nx(Oe);return Se?(j(Se),P(!1)):(j([]),P(!0)),I(null),_x({accountKey:Oe,force:!!L,fetchOrganizations:async()=>(await Z.organizations(t)).organizations.map($x).filter(Je=>!!Je).filter(Je=>Je.status==="active")}).then(ce=>{T||j(ce)}).catch(ce=>{T||(Se||j([]),I(ce instanceof Error?ce.message:String(ce)))}).finally(()=>{T||P(!1)}),()=>{T=!0}},[L,t,Oe]),m.useEffect(()=>{C&&de===C&&$(null)},[de,C]);async function nl(T,Se={notify:!0}){const ce=Q.find(Je=>Je.teamId===T)??null;if(!(!t||!ce||E||(C??de)===ce.teamId)){$(ce.teamId),O(ce.teamId),h(null),Dx({teamId:ce.teamId,accountKey:Oe,force:!0,fetchAgents:async Je=>(await Z.listSandboxAgents(t,{teamId:Je})).agents}).catch(()=>{});try{f(await Z.savePreferences(t,{defaultTeamId:ce.teamId})),Se.notify&&v?.("Default team updated","success")}catch(Je){$(null),h(Je instanceof Error?Je.message:String(Je))}finally{O(null)}}}async function Qr(T="Continue"){return rl?se({title:"Change active OpenPond account?",body:E0,confirmLabel:T,cancelLabel:"Cancel"}):!0}async function il(T){if(T.preventDefault(),W){U(!0);return}await Qr(Ae)&&await o(T)}async function al(T){await Qr("Save account")&&(await l({apiKey:T.apiKey??"",handle:T.handle,baseUrl:T.baseUrl,apiBaseUrl:T.apiBaseUrl,environment:Tu(T.environment)}),U(!1),X(!1))}async function Y(T){if(!t||!M)throw new Error("OpenPond server connection is not ready.");if(M.isActive&&!await Qr("Save endpoints"))return;const Se=sl(M);le(Se),h(null);try{const ce=await Z.updateOpenPondAccountConfig(t,{handle:T.handle??M.handle,currentBaseUrl:T.currentBaseUrl,baseUrl:T.baseUrl,apiBaseUrl:T.apiBaseUrl,chatApiBaseUrl:null,environment:Tu(T.environment),setActive:M.isActive});d(ce),v?.("Account endpoints updated","success"),z(null)}catch(ce){throw h(ce instanceof Error?ce.message:String(ce)),ce}finally{le(null)}}async function J(T){const Se=T.handle?.trim()||"";Se&&await Qr("Switch account")&&await c(Se,T.baseUrl)}return u.jsxs("section",{className:"account-settings",children:[u.jsxs("div",{className:"account-settings-title",children:[u.jsx("h1",{children:"Account"}),u.jsx("button",{className:"settings-icon-button ghost",disabled:!t||n||i,title:"Refresh accounts and team data","aria-label":"Refresh accounts and team data",type:"button",onClick:()=>{s()},children:u.jsx(Gr,{size:15,className:i?"settings-spin":void 0})})]}),u.jsxs("div",{className:"account-summary",children:[u.jsxs("div",{className:"account-summary-main",children:[u.jsx(Eu,{handle:D,image:y?p?.avatarUrl??ie?.avatarUrl??null:null}),u.jsxs("div",{children:[u.jsx("span",{children:"Active account"}),u.jsx("strong",{children:D}),u.jsxs("div",{className:"account-summary-meta",children:[u.jsx("small",{className:y&&x?"private-account-email":y?void 0:"account-summary-copy",tabIndex:y&&x?0:void 0,children:_}),y&&Qo?u.jsx(ni,{className:"account-team-dropdown",compact:!0,disabled:el,label:"Default team",options:zn,value:Jo,onChange:T=>{nl(T)}}):null]})]})]}),u.jsx("div",{className:"account-summary-actions",children:u.jsx(ia,{state:g,label:b?"not signed in":void 0})})]}),u.jsxs("form",{className:"account-login-form",onSubmit:T=>{il(T)},children:[b||w?u.jsxs("div",{className:"account-signin-panel",children:[u.jsx(qt,{size:18}),u.jsxs("div",{children:[u.jsx("strong",{children:b?"Connect this app to your OpenPond account":"Refresh the saved OpenPond credential"}),u.jsx("span",{children:b?"Local projects stay available without sign-in; cloud agents, wallet, teams, and hosted runs need an account.":"The saved credential could not authenticate. Replace it to resume cloud features."})]}),u.jsxs("a",{className:"settings-secondary account-api-key-link",href:tl,rel:"noreferrer",target:"_blank",children:[u.jsx(Tx,{size:14}),u.jsx("span",{children:"Create key"})]})]}):null,u.jsxs("div",{className:"account-list-heading",children:[u.jsx("span",{children:ne}),u.jsx("small",{children:V})]}),u.jsxs("div",{className:"account-form-grid",children:[u.jsxs("label",{children:[u.jsx("span",{children:"API key"}),u.jsx("input",{value:r,onChange:T=>a(T.target.value),placeholder:"opk_...",type:"password"})]}),u.jsxs("div",{className:"account-environment-field",children:[u.jsx("span",{children:"Environment"}),u.jsxs("button",{className:`account-env-toggle account-form-env-toggle ${W?"active":""}`,disabled:n,type:"button","aria-pressed":W,onClick:()=>X(T=>!T),children:[u.jsx("span",{className:"account-env-toggle-switch","aria-hidden":"true"}),u.jsx("span",{children:"Environment"})]})]})]}),u.jsxs("button",{className:"settings-primary",disabled:n||!W&&!r.trim(),children:[u.jsx(Ls,{size:15}),u.jsx("span",{children:n?"Saving":Ae})]})]}),xe?u.jsxs("div",{className:"account-list",children:[u.jsxs("div",{className:"account-list-heading",children:[u.jsx("span",{children:"OpenPond accounts"}),u.jsxs("small",{children:[S.length," account",S.length===1?"":"s"]})]}),S.map(T=>{const Se=T.handle?.trim()||"",ce=zi(T.displayLabel,T.handle,"Unknown account"),Je=T.email?.trim()||null,ol=_0(T.environment),Ox=sl(T);return u.jsxs("div",{className:"account-row",children:[u.jsx(Eu,{handle:ce,image:T.avatarUrl??null}),u.jsxs("div",{className:"account-details",children:[u.jsx("strong",{children:ce}),Je?u.jsx("span",{className:"private-account-email",tabIndex:0,children:Je}):null,u.jsx("span",{children:_u(T.environment??"production")})]}),u.jsxs("div",{className:"account-row-actions",children:[u.jsxs("button",{className:`account-env-toggle ${ol?"active":""}`,disabled:!t||n||!!H||!Se,type:"button","aria-pressed":ol,title:"Configure environment endpoints",onClick:()=>z(T),children:[u.jsx("span",{className:"account-env-toggle-switch","aria-hidden":"true"}),u.jsx("span",{children:"Environment"})]}),T.isActive?u.jsx("span",{className:"active-pill",children:"Active"}):u.jsx("button",{className:"inline-action",disabled:n||!Se,type:"button",onClick:()=>{J(T)},children:"Use"})]}),u.jsx(ia,{state:T.authHealth})]},Ox)})]}):null,p?.products&&p.products.length>0&&u.jsxs("div",{className:"account-list",children:[u.jsxs("div",{className:"account-list-heading",children:[u.jsx("span",{children:"Products"}),u.jsxs("small",{children:[p.products.length," active"]})]}),p.products.map(T=>u.jsxs("div",{className:"product-row",children:[u.jsxs("div",{children:[u.jsx("strong",{children:T.name}),u.jsx("span",{children:T.type})]}),u.jsx(ia,{state:T.status})]},T.id))]}),u.jsxs("div",{className:"settings-footnote",children:[u.jsx("span",{children:e?.server.runtimeVersion??"Runtime loading"}),u.jsx("strong",{children:t?.serverUrl??"loading"})]}),e?.appsMeta.lastRefreshError&&u.jsxs("div",{className:"settings-footnote warning",children:[u.jsx("span",{children:"Last refresh error"}),u.jsx("strong",{children:e.appsMeta.lastRefreshError})]}),M?u.jsx(Nu,{account:M,busy:Ri,onClose:()=>{Ri||z(null)},onSave:Y}):null,F?u.jsx(Nu,{account:ie,busy:n,initialApiKey:r,mode:"connect",onClose:()=>{n||U(!1)},onSave:al}):null,u.jsx(Mx,{state:re,onResolve:R})]})}function sl(e){return`${e.handle.trim().toLowerCase()}|${e.baseUrl??"default"}`}function zi(...e){for(const t of e){const r=t?.trim();if(r)return r}return""}function _u(e){const t=e.trim().toLowerCase();return!t||t==="production"?"Production":"Environment"}function N0(e){const t=e?.trim().replace(/\/+$/,"");if(!t)return ll;try{const r=new URL(t);return r.protocol!=="http:"&&r.protocol!=="https:"?ll:`${t}/settings/api-keys`}catch{return ll}}function Tu(e){const t=e?.trim();return!t||t.toLowerCase()==="production"?"custom":t}function _0(e){const t=e?.trim().toLowerCase();return!!(t&&t!=="production")}function T0({advancedWorkspaceControls:e,defaultBranchPrefix:t,defaultNewProjectDirectory:r,preferences:n,saving:i,chooseDefaultProjectDirectory:a,saveDefaults:o,setAdvancedWorkspaceControls:l,setDefaultBranchPrefix:s,setDefaultNewProjectDirectory:c}){const d=ql(t)===n.defaultBranchPrefix&&r.trim()===n.defaultNewProjectDirectory&&e===n.advancedWorkspaceControls;return u.jsxs("section",{className:"account-settings",children:[u.jsx("h1",{children:"Defaults"}),u.jsxs("form",{className:"provider-settings-form",onSubmit:f=>{o(f)},children:[u.jsxs("label",{className:"settings-check-row",children:[u.jsx("input",{type:"checkbox",checked:e,disabled:i,onChange:f=>l(f.target.checked)}),u.jsxs("span",{children:[u.jsx("strong",{children:"Show advanced Git controls"}),u.jsx("small",{children:"Show branch, commit, and push controls for local project workflows."})]})]}),u.jsxs("div",{className:"account-list-heading",children:[u.jsx("span",{children:"Git branches"}),u.jsx("small",{children:"Used for advanced and non-managed branch creation"})]}),u.jsx("div",{className:"provider-settings-grid single",children:u.jsxs("label",{className:"settings-select-field",children:[u.jsx("span",{children:"Branch prefix"}),u.jsx("input",{value:t,disabled:i,placeholder:"feat/",onChange:f=>s(f.target.value)})]})}),u.jsxs("div",{className:"account-list-heading",children:[u.jsx("span",{children:"Projects"}),u.jsx("small",{children:"Used when starting a new local project from scratch"})]}),u.jsxs("div",{className:"settings-path-row",children:[u.jsxs("label",{className:"settings-select-field",children:[u.jsx("span",{children:"New project directory"}),u.jsx("input",{value:r,disabled:i,placeholder:"~/Documents/OpenPond Projects",onChange:f=>c(f.target.value)})]}),u.jsxs("button",{type:"button",className:"settings-secondary",disabled:i,onClick:()=>{a()},children:[u.jsx(Xv,{size:14}),u.jsx("span",{children:"Browse"})]})]}),u.jsx("button",{className:"settings-primary",disabled:i||d,children:u.jsx("span",{children:i?"Saving":"Save defaults"})})]}),u.jsxs("div",{className:"settings-footnote",children:[u.jsx("span",{children:"Initial branch name"}),u.jsxs("strong",{children:[ql(t),"example-project"]})]}),u.jsxs("div",{className:"settings-footnote",children:[u.jsx("span",{children:"New projects"}),u.jsx("strong",{children:r||n.defaultNewProjectDirectory})]})]})}function M0({diagnostics:e,diagnosticsAvailable:t,diagnosticsBusy:r,diagnosticsStatus:n,logDir:i,logLineLimit:a,logLines:o,logViewBusy:l,logViewSummary:s,logViewportRef:c,tailLogs:d,copyRecentLogs:f,exportDiagnosticsBundle:h,loadOlderLogs:v,openLogsFolder:p,refreshLogView:g,toggleTailLogs:y}){const b=e.filter(x=>x.name==="diagnostic"&&x.status==="failed").slice().reverse().map(D0),w=typeof window>"u"?void 0:window.openpond;return u.jsxs("section",{className:"account-settings",children:[u.jsx("h1",{children:"Diagnostics"}),u.jsxs("div",{className:"diagnostics-log-panel",children:[u.jsxs("div",{className:"account-list-heading",children:[u.jsx("span",{children:"Recent errors"}),u.jsxs("small",{children:[b.length," saved"]})]}),u.jsx("div",{className:"diagnostics-error-list",role:"list",children:b.length===0?u.jsx("div",{className:"diagnostics-error-empty",children:"No saved errors"}):b.map(x=>u.jsxs("article",{className:"diagnostics-error-entry",role:"listitem",children:[u.jsx(Zv,{size:15}),u.jsxs("div",{className:"diagnostics-error-body",children:[u.jsxs("div",{className:"diagnostics-error-title",children:[u.jsx("strong",{children:x.message}),u.jsx("time",{dateTime:x.timestamp,children:x.timeLabel})]}),u.jsxs("div",{className:"diagnostics-error-meta",children:[u.jsx("span",{children:x.surface}),x.status?u.jsx("span",{children:x.status}):null,x.sequence?u.jsxs("span",{children:["#",x.sequence]}):null]}),x.detail?u.jsxs("details",{className:"diagnostics-error-detail",children:[u.jsx("summary",{children:"Details"}),u.jsx("pre",{children:x.detail})]}):null]})]},x.id))})]}),u.jsxs("div",{className:"account-list",children:[u.jsxs("div",{className:"account-list-heading",children:[u.jsx("span",{children:"Logs"}),u.jsx("small",{children:t?"Desktop":"Unavailable"})]}),u.jsxs("div",{className:"product-row",children:[u.jsxs("div",{children:[u.jsx("strong",{children:"Logs folder"}),u.jsx("span",{children:"Desktop and server logs"})]}),u.jsxs("button",{type:"button",className:"settings-secondary",disabled:r!==null||!w?.openLogsFolder,onClick:()=>{p()},children:[u.jsx(Xv,{size:15}),u.jsx("span",{children:r==="logs"?"Opening":"Open"})]})]}),u.jsxs("div",{className:"product-row",children:[u.jsxs("div",{children:[u.jsx("strong",{children:"Diagnostics export"}),u.jsx("span",{children:"Support folder with diagnostics.txt"})]}),u.jsxs("button",{type:"button",className:"settings-secondary",disabled:r!==null||!w?.exportDiagnostics,onClick:()=>{h()},children:[u.jsx(Rx,{size:15}),u.jsx("span",{children:r==="export"?"Exporting":"Export"})]})]}),u.jsxs("div",{className:"product-row",children:[u.jsxs("div",{children:[u.jsx("strong",{children:"Recent logs"}),u.jsx("span",{children:"Last 1000 lines to clipboard"})]}),u.jsxs("button",{type:"button",className:"settings-secondary",disabled:r!==null||!w?.copyRecentLogs,onClick:()=>{f()},children:[u.jsx(p0,{size:15}),u.jsx("span",{children:r==="copy"?"Copying":"Copy"})]})]})]}),u.jsxs("div",{className:"diagnostics-log-panel",children:[u.jsxs("div",{className:"account-list-heading",children:[u.jsx("span",{children:"Log view"}),u.jsxs("div",{className:"settings-heading-actions diagnostics-log-actions",children:[u.jsx("small",{children:s}),u.jsx("button",{type:"button",className:`settings-icon-button ${d?"active":""}`,title:d?"Pause tail":"Tail logs","aria-label":d?"Pause tail":"Tail logs",disabled:!w?.readRecentLogs,onClick:y,children:d?u.jsx(Lx,{size:15}):u.jsx(f0,{size:15})}),u.jsx("button",{type:"button",className:"settings-icon-button",title:"Refresh logs","aria-label":"Refresh logs",disabled:l!==null||!w?.readRecentLogs,onClick:()=>{g(a,"refresh")},children:u.jsx(Gr,{size:15})}),u.jsxs("button",{type:"button",className:"settings-secondary",disabled:l!==null||!w?.readRecentLogs,onClick:v,children:[u.jsx(zx,{size:15}),u.jsx("span",{children:l==="older"?"Loading":"Older"})]})]})]}),u.jsx("div",{ref:c,className:"diagnostics-log-viewer",role:"log","aria-live":d?"polite":"off",children:o.length===0?u.jsx("div",{className:"diagnostics-log-empty",children:l?"Loading logs":"No log lines"}):o.map((x,S)=>u.jsxs("div",{className:"diagnostics-log-entry",children:[u.jsx("span",{className:"diagnostics-log-source",children:x.file}),u.jsx("code",{children:x.line})]},`${x.file}:${x.timestamp}:${x.index}:${S}`))}),i&&u.jsxs("div",{className:"diagnostics-log-dir",children:[u.jsx("span",{children:"Source"}),u.jsx("strong",{children:i})]})]}),n&&u.jsxs("div",{className:`settings-footnote ${n.warning?"warning":""}`,children:[u.jsx("span",{children:n.label}),u.jsx("strong",{children:n.value})]})]})}function D0(e){const t=Mu(e.data),r=Mu(t.context),i=yr(t.stack)??yr(t.detail)??yr(r.detail)??null;return{id:e.id,timestamp:e.timestamp,timeLabel:R0(e.timestamp),message:$0(e,t),surface:yr(t.surface)??e.source??"diagnostic",status:e.status??null,sequence:e.sequence??null,detail:i}}function $0(e,t){return yr(e.error)??yr(e.output)??yr(t.message)??yr(t.error)??"Diagnostic event"}function R0(e){const t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleString([],{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"})}function Mu(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:{}}function yr(e){return typeof e=="string"&&e.trim()?e.trim():null}const Du=[{id:"typescript",label:"TypeScript",placeholder:"typescript-language-server"},{id:"python",label:"Python",placeholder:"pyright-langserver"},{id:"rust",label:"Rust",placeholder:"rust-analyzer"}];function L0({editorPreferences:e,lspStatus:t,preferences:r,restarting:n,saving:i,statusLoading:a,refreshLspStatus:o,restartLanguageServers:l,saveEditorSettings:s,setEditorPreferences:c,setLanguageCustomCommand:d,setLanguageMode:f}){const h=JSON.stringify(e)!==JSON.stringify(r.editor),v=new Map(t?.languages.map(p=>[p.language,p])??[]);return u.jsxs("section",{className:"account-settings",children:[u.jsx("h1",{children:"Editor"}),u.jsxs("form",{className:"provider-settings-form editor-settings-form",onSubmit:p=>{s(p)},children:[u.jsxs("div",{className:"account-list-heading",children:[u.jsx("span",{children:"Language servers"}),u.jsx("small",{children:"Local tools"})]}),u.jsx("div",{className:"provider-settings-grid single",children:u.jsxs("div",{className:"settings-select-field",children:[u.jsx("span",{children:"Language servers"}),u.jsx(ni,{value:e.languageServers,disabled:i,label:"Language servers",options:Bx,onChange:p=>c(g=>({...g,languageServers:p}))})]})}),u.jsxs("label",{className:"settings-check-row",children:[u.jsx("input",{type:"checkbox",checked:e.diagnosticsWhileEditing,disabled:i||e.languageServers==="off",onChange:p=>c(g=>({...g,diagnosticsWhileEditing:p.target.checked}))}),u.jsxs("span",{children:[u.jsx("strong",{children:"Diagnostics while editing"}),u.jsx("small",{children:"Update Monaco markers as the local buffer changes."})]})]}),u.jsxs("label",{className:"settings-check-row",children:[u.jsx("input",{type:"checkbox",checked:e.checkOnSave,disabled:i||e.languageServers==="off",onChange:p=>c(g=>({...g,checkOnSave:p.target.checked}))}),u.jsxs("span",{children:[u.jsx("strong",{children:"Check on save"}),u.jsx("small",{children:"Refresh diagnostics after writing a file."})]})]}),u.jsxs("div",{className:"account-list-heading",children:[u.jsx("span",{children:"Languages"}),u.jsx("small",{children:"Auto, disabled, or custom executable"})]}),u.jsx("div",{className:"lsp-language-list",children:Du.map(p=>{const g=e.languages[p.id];return u.jsxs("div",{className:"lsp-language-row",children:[u.jsxs("div",{className:"lsp-language-label",children:[u.jsx("strong",{children:p.label}),u.jsx("span",{children:$u(v.get(p.id),a)})]}),u.jsxs("div",{className:"settings-select-field",children:[u.jsx("span",{children:"Mode"}),u.jsx(ni,{value:g.mode,disabled:i||e.languageServers==="off",label:`${p.label} language server mode`,options:Ux,onChange:y=>f(p.id,y)})]}),u.jsxs("label",{className:"settings-select-field",children:[u.jsx("span",{children:"Custom executable"}),u.jsx("input",{value:g.customCommand,disabled:i||e.languageServers==="off"||g.mode!=="custom",placeholder:p.placeholder,onChange:y=>d(p.id,y.target.value)})]})]},p.id)})}),u.jsx("button",{className:"settings-primary",disabled:i||!h,children:u.jsx("span",{children:i?"Saving":"Save editor settings"})})]}),u.jsxs("div",{className:"account-list",children:[u.jsxs("div",{className:"account-list-heading",children:[u.jsx("span",{children:"LSP status"}),u.jsxs("div",{className:"settings-heading-actions",children:[u.jsx("small",{children:a?"Checking":t?"Current":"Not checked"}),u.jsx("button",{type:"button",className:"settings-icon-button",title:"Refresh LSP status","aria-label":"Refresh LSP status",disabled:a||n,onClick:()=>{o()},children:u.jsx(Gr,{className:a?"settings-spin":void 0,size:15})}),u.jsxs("button",{type:"button",className:"settings-secondary",disabled:a||n,onClick:()=>{l()},children:[u.jsx(A0,{className:n?"settings-spin":void 0,size:15}),u.jsx("span",{children:n?"Restarting":"Restart"})]})]})]}),Du.map(p=>{const g=v.get(p.id);return u.jsxs("div",{className:"product-row lsp-status-row",children:[u.jsxs("div",{children:[u.jsx("strong",{children:p.label}),u.jsx("span",{title:g?.command??g?.message??void 0,children:g?.command??g?.message??"Not checked"})]}),u.jsx("span",{className:`lsp-status-pill ${g?.status??"missing"}`,children:$u(g,a)})]},p.id)})]}),u.jsxs("div",{className:"settings-footnote",children:[u.jsx("span",{children:"Project config"}),u.jsx("strong",{children:"Uses tsconfig, pyrightconfig, pyproject, and Cargo files when present"})]})]})}function $u(e,t){return t&&!e?"Checking":e?e.status==="found"?"Found":e.status==="disabled"?"Disabled":e.status==="error"?"Error":"Missing":"Not checked"}function z0({goalStorageLocation:e,preferences:t,saving:r,saveDefaults:n,setGoalStorageLocation:i}){return u.jsxs("section",{className:"account-settings",children:[u.jsx("h1",{children:"Goals"}),u.jsxs("form",{className:"provider-settings-form",onSubmit:a=>{n(a)},children:[u.jsxs("div",{className:"account-list-heading",children:[u.jsx("span",{children:"Storage"}),u.jsx("small",{children:"Controls where local goal state, plans, and artifacts are written"})]}),u.jsxs("div",{className:"settings-radio-group",children:[u.jsxs("label",{className:"settings-radio-row",children:[u.jsx("input",{type:"radio",name:"goal-storage-location",checked:e==="global",disabled:r,onChange:()=>i("global")}),u.jsxs("span",{children:[u.jsx("strong",{children:"User home"}),u.jsx("small",{children:"Store goal files under ~/.openpond/goals."})]})]}),u.jsxs("label",{className:"settings-radio-row",children:[u.jsx("input",{type:"radio",name:"goal-storage-location",checked:e==="workspace",disabled:r,onChange:()=>i("workspace")}),u.jsxs("span",{children:[u.jsx("strong",{children:"Working directory"}),u.jsx("small",{children:"Store goal files in the current workspace under .openpond/goals."})]})]})]}),u.jsx("button",{className:"settings-primary",disabled:r||e===t.goalStorageLocation,children:u.jsx("span",{children:r?"Saving":"Save goals"})})]}),u.jsxs("div",{className:"settings-footnote",children:[u.jsx("span",{children:"Goal storage"}),u.jsx("strong",{children:e==="global"?"~/.openpond/goals":".openpond/goals in the working directory"})]})]})}function B0({contextCompactionAutoEnabled:e,preferences:t,saving:r,saveDefaults:n,setContextCompactionAutoEnabled:i}){return u.jsxs("section",{className:"account-settings",children:[u.jsx("h1",{children:"Context"}),u.jsxs("form",{className:"provider-settings-form",onSubmit:a=>{n(a)},children:[u.jsxs("div",{className:"account-list-heading",children:[u.jsx("span",{children:"Compaction"}),u.jsx("small",{children:"Controls automatic compaction for long OpenPond and BYOK chats"})]}),u.jsxs("label",{className:"settings-check-row",children:[u.jsx("input",{type:"checkbox",checked:e,disabled:r,onChange:a=>i(a.target.checked)}),u.jsxs("span",{children:[u.jsx("strong",{children:"Auto compact long chats"}),u.jsx("small",{children:"Summarize older turns at 85% context before the selected model runs out. The transcript stays visible."})]})]}),u.jsx("button",{className:"settings-primary",disabled:r||e===t.contextCompaction.autoEnabled,children:u.jsx("span",{children:r?"Saving":"Save context"})})]})]})}function U0({insightsEnabled:e,insightsUseDefaultModel:t,insightsProvider:r,insightsModel:n,insightsEvidenceSources:i,preferences:a,providers:o,saving:l,saveDefaults:s,changeInsightsProvider:c,setInsightsEnabled:d,setInsightsUseDefaultModel:f,setInsightsModel:h,setInsightsEvidenceSourceEnabled:v}){const p=zs(o,{enabledOnly:!0}),g=pi(r,o),y="settings-insights-model-options",b=e===a.insightsEnabled&&G0(i,a.insightsEvidenceSources)&&V0({useDefault:t,provider:r,model:n},a);return u.jsxs("section",{className:"account-settings insights-settings",children:[u.jsx("h1",{children:"Insights"}),u.jsxs("form",{className:"provider-settings-form",onSubmit:w=>{s(w)},children:[u.jsxs("div",{className:"account-list-heading",children:[u.jsx("span",{children:"Background agent"}),u.jsx("small",{children:"Controls the background Insights agent"})]}),u.jsxs("label",{className:"settings-check-row",children:[u.jsx("input",{type:"checkbox",checked:e,disabled:l,onChange:w=>d(w.target.checked)}),u.jsxs("span",{children:[u.jsx("strong",{children:"Run background Insights"}),u.jsx("small",{children:"Startup and interval scans run while the app is open."})]})]}),u.jsxs("label",{className:"settings-check-row",children:[u.jsx("input",{type:"checkbox",checked:t,disabled:l,onChange:w=>f(w.target.checked)}),u.jsxs("span",{children:[u.jsx("strong",{children:"Use default chat model"}),u.jsxs("small",{children:[mn(a.defaultChatProvider,o)," /"," ",fa(a.defaultChatModel,o,a.defaultChatProvider)]})]})]}),t?null:u.jsxs("div",{className:"provider-settings-grid two",children:[u.jsxs("label",{className:"settings-select-field",children:[u.jsx("span",{children:"Insights provider"}),u.jsx("select",{value:r,disabled:l,onChange:w=>c(w.target.value),children:p.map(w=>u.jsx("option",{value:w.value,children:w.label},w.value))})]}),u.jsxs("label",{className:"settings-select-field",children:[u.jsx("span",{children:"Insights model"}),u.jsx("input",{value:n,disabled:l,list:y,onChange:w=>h(w.target.value)}),u.jsx("datalist",{id:y,children:g.map(w=>u.jsx("option",{value:w.value,children:w.label},w.value))})]})]}),u.jsx("div",{className:"settings-check-grid","aria-label":"Insights evidence sources",children:am.map(w=>u.jsxs("label",{className:"settings-check-row compact",children:[u.jsx("input",{type:"checkbox",checked:i[w.key],disabled:l,onChange:x=>v(w.key,x.target.checked)}),u.jsxs("span",{children:[u.jsx("strong",{children:w.label}),u.jsx("small",{children:w.description})]})]},w.key))}),u.jsx("button",{className:"settings-primary",disabled:l||b,children:u.jsx("span",{children:l?"Saving":"Save insights"})})]}),u.jsxs("div",{className:"settings-footnote",children:[u.jsx("span",{children:"Insights model"}),u.jsx("strong",{children:t?"Default chat model":`${mn(r,o)} / ${n}`})]})]})}function F0({subagentsEnabled:e,subagentDelegationMode:t,subagentsUseDefaultModel:r,subagentsProvider:n,subagentsModel:i,subagentRoles:a,subagentsMaxConcurrentRuns:o,subagentsMaxConcurrentRunsPerProvider:l,subagentsMaxConcurrentRunsPerWorkspaceTarget:s,subagentsMaxTokens:c,subagentsHeartbeatIntervalSeconds:d,preferences:f,providers:h,saving:v,saveDefaults:p,changeSubagentsProvider:g,setSubagentsEnabled:y,setSubagentDelegationMode:b,setSubagentsUseDefaultModel:w,setSubagentsModel:x,setSubagentsMaxConcurrentRuns:S,setSubagentsMaxConcurrentRunsPerProvider:A,setSubagentsMaxConcurrentRunsPerWorkspaceTarget:j,setSubagentsMaxTokens:P,setSubagentsHeartbeatIntervalSeconds:N,setSubagentRoleEnabled:I,setSubagentRoleIsolationMode:E,setSubagentRoleMaxConcurrentRuns:O,setSubagentRoleMaxTokens:C,setSubagentRoleMaxTurns:$,setSubagentRoleModel:M,setSubagentRolePeerMessages:z,setSubagentRoleToolPolicy:W,changeSubagentRoleProvider:X}){const F=zs(h,{enabledOnly:!0}),U=r?f.defaultChatProvider:n,H=r?f.defaultChatModel:i,le=im(pi(U,h),H),se=r?null:{providerId:n,modelId:i.trim()},re=Y0({enabled:e,delegationMode:t,defaultModelRef:se,roles:a,maxConcurrentRuns:o,maxConcurrentRunsPerProvider:l,maxConcurrentRunsPerWorkspaceTarget:s,maxTokens:c,heartbeatIntervalSeconds:d},f);return u.jsx("section",{className:"account-settings subagents-settings",children:u.jsxs("form",{className:"subagent-settings-form",onSubmit:R=>{p(R)},children:[u.jsxs("div",{className:"subagent-settings-title-row",children:[u.jsx("h1",{children:"Subagents"}),u.jsxs("div",{className:"subagent-settings-actions",children:[u.jsx("button",{className:`settings-primary subagent-save-button${re?"":" dirty"}`,disabled:v||re,children:u.jsx("span",{children:v?"Saving":"Save agents"})}),u.jsxs("label",{className:"provider-toggle subagent-card-toggle","aria-label":"Allow subagents",children:[u.jsx("input",{type:"checkbox",checked:e,disabled:v,onChange:R=>y(R.target.checked)}),u.jsx("span",{})]})]})]}),u.jsxs("section",{className:"subagent-settings-section",children:[u.jsx("div",{className:"subagent-settings-card-header",children:u.jsxs("div",{children:[u.jsx("span",{children:"Default delegation"}),u.jsx("small",{children:"Used unless a task overrides it from the composer."})]})}),u.jsx("div",{className:"subagent-field-grid two",children:u.jsxs("label",{className:"settings-select-field",children:[u.jsx("span",{children:"Subagent use"}),u.jsxs("select",{value:t,disabled:v||!e,onChange:R=>b(R.target.value),children:[u.jsx("option",{value:"manual",children:"Manual"}),u.jsx("option",{value:"balanced",children:"Balanced"}),u.jsx("option",{value:"proactive",children:"Proactive"})]})]})})]}),u.jsxs("section",{className:"subagent-settings-section",children:[u.jsx("div",{className:"subagent-settings-card-header",children:u.jsx("div",{children:u.jsx("span",{children:"Default model"})})}),u.jsxs("div",{className:"subagent-field-grid two",children:[u.jsxs("label",{className:"settings-select-field",children:[u.jsx("span",{children:"Provider"}),u.jsx("select",{value:U,disabled:v||!e,onChange:R=>{w(!1),g(R.target.value)},children:F.map(R=>u.jsx("option",{value:R.value,children:R.label},R.value))})]}),u.jsxs("label",{className:"settings-select-field",children:[u.jsx("span",{children:"Model"}),u.jsx("select",{value:H,disabled:v||!e,onChange:R=>{w(!1),x(R.target.value)},children:le.map(R=>u.jsx("option",{value:R.value,children:R.label},R.value))})]})]})]}),u.jsx("div",{className:"subagent-role-list",children:a.map(R=>{const ie=Fx.find(D=>D.id===R.id),de=R.modelRef?.providerId??U,ve=R.modelRef?.modelId||Wx(de,h)||H,Oe=H0(F,h,{providerId:de,modelId:ve}),L=aa(de,ve),G=v||!e||!R.enabled;return u.jsxs("section",{className:`subagent-role-row${R.enabled?"":" disabled"}`,children:[u.jsxs("div",{className:"subagent-settings-card-header subagent-role-header",children:[u.jsxs("div",{className:"subagent-role-title",children:[u.jsx("span",{children:ie?.label??R.id}),u.jsx("small",{children:ie?.description??"Custom subagent role."})]}),u.jsxs("label",{className:"provider-toggle subagent-card-toggle","aria-label":`${ie?.label??R.id} enabled`,children:[u.jsx("input",{type:"checkbox",checked:R.enabled,disabled:v||!e,onChange:D=>I(R.id,D.target.checked)}),u.jsx("span",{})]})]}),u.jsxs("div",{className:"subagent-role-controls",children:[u.jsxs("label",{className:"settings-select-field",children:[u.jsx("span",{children:"Model"}),u.jsx("select",{value:L,disabled:G,onChange:D=>{const _=Oe.find(xe=>xe.value===D.target.value);_&&(X(R.id,_.providerId),M(R.id,_.modelId))},children:Oe.map(D=>u.jsx("option",{value:D.value,children:D.label},D.value))})]}),u.jsxs("label",{className:"settings-select-field",children:[u.jsx("span",{children:"Isolation"}),u.jsx("select",{value:R.isolationMode,disabled:G,onChange:D=>E(R.id,D.target.value),children:W0.map(D=>u.jsx("option",{value:D.value,children:D.label},D.value))})]}),u.jsxs("label",{className:"settings-select-field",children:[u.jsx("span",{children:"Tools"}),u.jsx("select",{value:R.toolPolicy,disabled:G,onChange:D=>W(R.id,D.target.value),children:K0.map(D=>u.jsx("option",{value:D.value,children:D.label},D.value))})]}),u.jsxs("label",{className:"settings-select-field",children:[u.jsx("span",{children:"Peer messages"}),u.jsx("select",{value:R.peerMessages,disabled:G,onChange:D=>z(R.id,D.target.value),children:q0.map(D=>u.jsx("option",{value:D.value,children:D.label},D.value))})]})]}),u.jsxs("div",{className:"subagent-role-budget-grid",children:[u.jsxs("label",{className:"settings-select-field",children:[u.jsx("span",{children:"Role concurrency"}),u.jsx("input",{type:"number",min:1,max:16,value:R.maxConcurrentRuns,disabled:G,onChange:D=>O(R.id,cl(D.target.value,1))})]}),u.jsxs("label",{className:"settings-select-field",children:[u.jsx("span",{children:"Turn cap"}),u.jsx("input",{type:"number",min:1,max:100,value:R.maxTurns??"",placeholder:"No cap",disabled:G,onChange:D=>$(R.id,sn(D.target.value))})]}),u.jsxs("label",{className:"settings-select-field",children:[u.jsx("span",{children:"Token cap"}),u.jsx("input",{type:"number",min:1,max:1e7,value:R.maxTokens??"",placeholder:"No cap",disabled:G,onChange:D=>C(R.id,sn(D.target.value))})]})]})]},R.id)})}),u.jsxs("section",{className:"subagent-settings-section",children:[u.jsx("div",{className:"subagent-settings-card-header",children:u.jsxs("div",{children:[u.jsx("span",{children:"Limits"}),u.jsx("small",{children:"Controls child worker concurrency and background status checks."})]})}),u.jsxs("div",{className:"subagent-field-grid four",children:[u.jsxs("label",{className:"settings-select-field",children:[u.jsx("span",{children:"Total concurrency"}),u.jsx("input",{type:"number",min:1,max:32,value:o,disabled:v||!e,onChange:R=>S(cl(R.target.value,1))})]}),u.jsxs("label",{className:"settings-select-field",children:[u.jsx("span",{children:"Per provider"}),u.jsx("input",{type:"number",min:1,max:32,value:l??"",placeholder:"No cap",disabled:v||!e,onChange:R=>A(sn(R.target.value))})]}),u.jsxs("label",{className:"settings-select-field",children:[u.jsx("span",{children:"Per workspace"}),u.jsx("input",{type:"number",min:1,max:32,value:s??"",placeholder:"No cap",disabled:v||!e,onChange:R=>j(sn(R.target.value))})]}),u.jsxs("label",{className:"settings-select-field",children:[u.jsx("span",{children:"Total token cap"}),u.jsx("input",{type:"number",min:1,max:5e7,value:c??"",placeholder:"No cap",disabled:v||!e,onChange:R=>P(sn(R.target.value))})]}),u.jsxs("label",{className:"settings-select-field",children:[u.jsx("span",{children:"Background check seconds"}),u.jsx("input",{type:"number",min:10,max:3600,value:d,disabled:v||!e,onChange:R=>N(cl(R.target.value,60))}),u.jsx("small",{children:"OpenPond checks active child workers at this cadence. It does not wake the parent model every interval."})]})]})]})]})})}const W0=[{value:"none",label:"Direct workspace"},{value:"copy_on_write",label:"Copy-on-write"},{value:"worktree",label:"Worktree"}],K0=[{value:"read_only",label:"Read only"},{value:"workspace_write",label:"Workspace write"},{value:"full_tools",label:"Full tools"}],q0=[{value:"goal_scoped",label:"Scoped handoffs"},{value:"disabled",label:"Disabled"}];function im(e,t){const r=t.trim();return!r||e.some(n=>n.value===r)?e:[{value:r,label:r},...e]}function aa(e,t){return JSON.stringify([e,t])}function H0(e,t,r){const n=[];for(const i of e){const a=im(pi(i.value,t),i.value===r.providerId?r.modelId:"");for(const o of a)n.push({value:aa(i.value,o.value),label:`${i.label} / ${o.label}`,providerId:i.value,modelId:o.value})}return r.modelId&&!n.some(i=>i.value===aa(r.providerId,r.modelId))&&n.unshift({value:aa(r.providerId,r.modelId),label:`${mn(r.providerId,t)} / ${r.modelId}`,providerId:r.providerId,modelId:r.modelId}),n}const am=[{key:"createEdit",label:"Create/Improve",description:"Waiting, blocked, or failed Create/Improve runs."},{key:"stuckTurns",label:"Stuck turns",description:"Failed or long-running active turns."},{key:"toolFailures",label:"Tool failures",description:"Repeated tool or action failures."},{key:"abandonedGoals",label:"Abandoned goals",description:"Goal loops left active too long."},{key:"userCorrections",label:"Corrections",description:"Repeated correction-style prompts."},{key:"unresolvedConversations",label:"Unresolved chats",description:"Long chats with unresolved recent work."},{key:"usageAnomalies",label:"Usage",description:"Spikes, failures, missing usage, and latency changes."}];function G0(e,t){return am.every(r=>e[r.key]===t[r.key])}function V0(e,t){return e.useDefault?!t.insightsModelRef:t.insightsModelRef?.providerId===e.provider&&t.insightsModelRef?.modelId===e.model.trim()}function sn(e){const t=e.trim();if(!t)return null;const r=Number(t);return Number.isFinite(r)?r:null}function cl(e,t){return sn(e)??t}function Y0(e,t){const r=t.subagents;return e.enabled===r.enabled&&e.delegationMode===r.delegationMode&&X0(e.defaultModelRef,r.defaultModelRef)&&e.maxConcurrentRuns===r.maxConcurrentRuns&&e.maxConcurrentRunsPerProvider===r.maxConcurrentRunsPerProvider&&e.maxConcurrentRunsPerWorkspaceTarget===r.maxConcurrentRunsPerWorkspaceTarget&&e.maxTokens===r.maxTokens&&e.heartbeatIntervalSeconds===r.heartbeatIntervalSeconds&&JSON.stringify(e.roles)===JSON.stringify(r.roles)}function X0(e,t){return(e?.providerId??null)===(t?.providerId??null)&&(e?.modelId??null)===(t?.modelId??null)}const Z0=[{mode:"all",label:"All new messages",detail:"Show an in-app alert for every Team Chat message."},{mode:"direct_mentions",label:"Direct messages and mentions",detail:"Show alerts for direct messages and messages that mention you."},{mode:"none",label:"Nothing",detail:"Keep unread counts without showing message alerts."}];function J0({currentUserId:e,enabled:t,mode:r,threads:n,onModeChange:i,onThreadMuteChange:a}){const[o,l]=m.useState(null),[s,c]=m.useState(null),d=m.useMemo(()=>n.filter(v=>v.archivedAt===null).map(v=>({thread:v,label:Q0(v,e)})).sort((v,p)=>{const g=+!!p.thread.mutedAt-+!!v.thread.mutedAt;return g!==0?g:v.label.localeCompare(p.label)}),[e,n]),f=d.filter(({thread:v})=>!!v.mutedAt).length,h=m.useCallback(async v=>{l(v.id),c(null),await a(v.id,!v.mutedAt)||c("Could not update this conversation. Try again."),l(null)},[a]);return u.jsxs("section",{className:"account-settings notifications-settings",children:[u.jsx("h1",{children:"Notifications"}),u.jsxs("div",{className:"account-list notification-settings-card",children:[u.jsxs("div",{className:"account-list-heading",children:[u.jsx("span",{children:"Team chat notifications"}),u.jsx("small",{children:"In-app alerts"})]}),u.jsx("div",{className:"notification-mode-list",role:"radiogroup","aria-label":"Notify me about",children:Z0.map(v=>u.jsxs("label",{className:`notification-mode-option${r===v.mode?" selected":""}`,children:[u.jsx("input",{type:"radio",name:"team-chat-notification-mode",checked:r===v.mode,onChange:()=>i(v.mode)}),u.jsxs("span",{children:[u.jsx("strong",{children:v.label}),u.jsx("small",{children:v.detail})]})]},v.mode))})]}),u.jsxs("div",{className:"account-list notification-settings-card",children:[u.jsxs("div",{className:"account-list-heading",children:[u.jsx("span",{children:"Conversation overrides"}),u.jsx("small",{children:f===1?"1 muted":`${f} muted`})]}),t?d.length===0?u.jsx("div",{className:"empty-account-list",children:u.jsx("span",{children:"Open a Team Chat conversation to manage it here."})}):d.map(({thread:v,label:p})=>{const g=!!v.mutedAt,y=o===v.id;return u.jsxs("div",{className:"notification-thread-row",children:[u.jsx("span",{className:`notification-thread-icon${g?" muted":""}`,children:g?u.jsx(Kx,{size:15}):u.jsx(tm,{size:15})}),u.jsxs("span",{className:"notification-thread-copy",children:[u.jsx("strong",{children:p}),u.jsx("small",{children:g?"Muted":"Uses the team chat setting"})]}),u.jsx("button",{type:"button",className:"settings-secondary",disabled:o!==null,onClick:()=>{h(v)},children:y?"Saving":g?"Unmute":"Mute"})]},v.id)}):u.jsx("div",{className:"empty-account-list",children:u.jsx("span",{children:"Connect a team to manage conversation overrides."})}),s?u.jsx("div",{className:"notification-settings-error",role:"alert",children:s}):null]}),u.jsx("div",{className:"settings-footnote",children:u.jsx("span",{children:"Muted conversations never show alerts. Unread counts remain available."})})]})}function Q0(e,t){return e.kind==="general"||e.kind==="channel"?`#${e.title?.trim()||"general"}`:e.kind==="dm"?e.participants.find(r=>r.userId!==t)?.name??e.title?.trim()??"Direct message":e.title?.trim()||e.participants.filter(r=>r.userId!==t).map(r=>r.name).join(", ")||"Group conversation"}function ew({canSaveCurrentTemplate:e,personalizationTemplateId:t,personalizationTemplateOptions:r,saveAsNewOpen:n,saving:i,selectedPersonalizationTemplate:a,selectedTemplateIsCustom:o,soulDraft:l,templateNameDraft:s,changePersonalizationTemplate:c,changeSoulDraft:d,openSaveAsNew:f,resetPersonalizationDraft:h,savePersonalization:v,setSaveAsNewOpen:p,setTemplateNameDraft:g}){function y(b){b.preventDefault(),v(n)}return u.jsxs("section",{className:"account-settings",children:[u.jsx("h1",{children:"Personalization"}),u.jsxs("form",{className:"provider-settings-form personalization-form",onSubmit:y,children:[u.jsxs("div",{className:"account-list-heading",children:[u.jsx("span",{children:"Agent style"}),u.jsx("div",{className:"settings-heading-actions",children:n?u.jsxs(u.Fragment,{children:[u.jsx("input",{className:"settings-heading-input",value:s,onChange:b=>g(b.target.value),placeholder:"Name","aria-label":"Template name"}),u.jsx("button",{type:"button",className:"settings-icon-button",title:"Cancel","aria-label":"Cancel",disabled:i,onClick:()=>p(!1),children:u.jsx(lo,{size:15})}),u.jsx("button",{type:"button",className:"settings-icon-button primary",title:"Save new template","aria-label":"Save new template",disabled:i||!l.trim()||!s.trim(),onClick:()=>{v(!0)},children:u.jsx(qx,{size:15})})]}):u.jsxs(u.Fragment,{children:[u.jsx("small",{children:o?"Custom template":"Built-in template"}),u.jsx("button",{type:"button",className:"settings-icon-button",title:"Save as new","aria-label":"Save as new",disabled:i||!a||!l.trim(),onClick:f,children:u.jsx(Ls,{size:15})})]})})]}),u.jsx("div",{className:"provider-settings-grid single",children:u.jsxs("div",{className:"settings-select-field",children:[u.jsx("span",{children:"Template"}),u.jsx(ni,{value:t,disabled:i||r.length===0,label:"Personalization template",options:r,onChange:b=>{c(b)}})]})}),u.jsxs("label",{className:"settings-select-field personalization-editor",children:[u.jsx("span",{children:"SOUL.md"}),u.jsx("textarea",{value:l,onChange:b=>d(b.target.value),spellCheck:!1})]}),u.jsxs("div",{className:"settings-button-row",children:[u.jsx("button",{type:"button",className:"settings-icon-button",title:"Reset to template","aria-label":"Reset to template",disabled:i||!a,onClick:h,children:u.jsx(u0,{size:15})}),o&&u.jsx("button",{className:"settings-icon-button primary",title:"Save template","aria-label":"Save template",disabled:i||!e,children:u.jsx(Us,{size:15})})]})]})]})}const tw=[{value:"local_secret",label:"Saved key",description:"Encrypted on this machine"},{value:"env",label:"Environment variable",description:"Read by the local server"}],rw=120,nw=new Set(["openai","xai","zai"]),iw=new Set(["chatgpt-subscription"]),aw="https://api.z.ai/api/coding/paas/v4";function Ru(e){return e.split(/[\n,]/).map(t=>t.trim()).filter(Boolean)}function om(e){return e?e.available?"Ready":e.credential.connected?"Configured":e.credential.lastError||e.lastError?"Needs attention":e.id==="codex"?"Needs Codex login":e.routing.localByok?"Needs key":e.enabled?"Enabled":"Off":"Unknown"}function lm(e){return e?e.available?"ready":e.credential.connected?"configured":e.credential.lastError||e.lastError||e.id==="codex"?"warning":"muted":"unknown"}function Lu(e){return e.credential.connected?e.credential.redacted?e.credential.redacted:e.credential.source==="chatgpt_subscription"?"ChatGPT subscription":e.credential.source:e.credential.lastError??"Not connected"}function ow(e){return e?.trim().replace(/\/+$/,"")??""}function sm(e,t){return e.id==="zai"&&ow(t.providers.zai?.baseUrl)===aw}function lw(e,t){return!e.credential.connected||!e.routing.localByok?"":e.credential.source==="chatgpt_subscription"?"Subscription":sm(e,t)?"Coding Plan key":"API key"}function sw(e,t){const r=t.modelCaches[e.id];if(e.routing.localByok&&e.enabled&&!e.credential.connected||!e.enabled&&e.id!=="openpond")return"";const n=Math.max(r?.models.length??0,e.modelIds.length),i=e.defaultModel?fa(e.defaultModel,t,e.id):"",a=n===1?"1 model":`${n} models`,o=lw(e,t);return[om(e),o,r?a:"",i].filter(Boolean).join(" · ")}function cw(e){return e!=="openpond"&&Hl(e)}function Fs(e){return e?nw.has(e.id)||e.credentialModes.some(t=>iw.has(t)):!1}function uw(e){return Fs(e)?["api","subscription"]:["api"]}function zu(e,t){return!e||!t||!Fs(e)?"api":e.credential.source==="chatgpt_subscription"||sm(e,t)?"subscription":"api"}function Bu(e,t){const r=Hx.filter(n=>!!e?.statuses[n]);return t?r.filter(n=>Fs(e?.statuses[n])):r}function dw(e){if(!e)return"Never";const t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleString()}function fw(e,t,r=rw){const n=[],i=new Set,a=new Set(t.map(l=>l.trim()).filter(Boolean)),o=l=>{i.has(l.value)||n.length>=r||(i.add(l.value),n.push(l))};for(const l of e)a.has(l.value)&&o(l);for(const l of e)o(l);return n}function hw({account:e,codex:t,providers:r,providerBusy:n,validationMessage:i,deleteProviderCredential:a,loadProviderModels:o,refreshProviderModels:l,saveProviderConfig:s,saveProviderCredential:c,startOpenAiSubscriptionAuth:d,validateProvider:f}){const[h,v]=m.useState(null),[p,g]=m.useState(!1),y=m.useMemo(()=>Bu(r,!1),[r]),b=m.useMemo(()=>Bu(r,p),[r,p]),w=h?r?.statuses[h]??null:null;function x(S,A){v(S),A&&o(S)}return u.jsxs("section",{className:"account-settings",children:[u.jsx("h1",{children:"Providers"}),r?u.jsxs("div",{className:"provider-manager-panel",children:[u.jsxs("div",{className:"account-list-heading provider-manager-heading",children:[u.jsxs("div",{className:"provider-manager-title-row",children:[u.jsx("span",{children:"Model providers"}),u.jsxs("label",{className:"settings-check-row compact provider-subscription-filter",children:[u.jsx("input",{type:"checkbox",checked:p,onChange:S=>g(S.currentTarget.checked)}),u.jsx("span",{children:"Subscriptions"})]})]}),u.jsxs("small",{children:[b.length," of ",y.length," presets"]})]}),b.length>0?u.jsx("div",{className:"provider-manager-scroll",role:"list",children:b.map(S=>{const A=r.statuses[S],j=r.modelCaches[S],P=A.modelIds.length>0&&(j?.models.length??0)<A.modelIds.length,N=n?.startsWith(`${S}:`)??!1,I=cw(S),E=S==="openpond"||!!r.providers[S]?.enabled;return u.jsxs("div",{className:"provider-manager-row",role:"listitem",children:[u.jsxs("label",{className:"provider-toggle","aria-label":`Enable ${A.displayName}`,children:[u.jsx("input",{type:"checkbox",checked:E,disabled:!I||N,onChange:O=>{x(S,!1),s(S,{enabled:O.currentTarget.checked})}}),u.jsx("span",{})]}),u.jsx("div",{className:"provider-row-main",children:u.jsx("strong",{children:A.displayName})}),u.jsxs("div",{className:`provider-row-status ${lm(A)}`,children:[N?u.jsx(Kt,{size:13,className:"settings-spin"}):null,u.jsx("span",{children:sw(A,r)})]}),u.jsx("button",{type:"button",className:"settings-secondary provider-details-button",onClick:()=>{x(S,P)},children:"Details"})]},S)})}):u.jsxs("div",{className:"empty-account-list provider-manager-empty",children:[u.jsx("strong",{children:"No subscription providers"}),u.jsx("span",{children:"Turn off the filter to show API-key providers."})]})]}):null,i?u.jsxs("div",{className:"settings-footnote provider-validation-message",children:[u.jsx("span",{children:"Last validation"}),u.jsx("strong",{children:i})]}):null,h&&w&&r?u.jsx(vw,{account:e,codex:t,providerId:h,providerBusy:n,settings:r,status:w,onClose:()=>v(null),onDeleteCredential:a,onRefreshModels:l,onSaveConfig:s,onSaveCredential:c,onStartOpenAiSubscriptionAuth:d,onValidate:f}):null]})}function vw({account:e,codex:t,providerId:r,providerBusy:n,settings:i,status:a,onClose:o,onDeleteCredential:l,onRefreshModels:s,onSaveConfig:c,onSaveCredential:d,onStartOpenAiSubscriptionAuth:f,onValidate:h}){const v=i.providers[r],p=i.modelCaches[r],g=m.useId(),y=m.useRef(r),b=Math.max(p?.models.length??0,a.modelIds.length),w=a.routing.localByok&&Hl(r)&&r!=="codex",x=m.useMemo(()=>w?uw(a):[],[w,a]),S=x.includes("subscription"),[A,j]=m.useState(()=>zu(a,i)),P=w&&A==="subscription"&&S,N=E=>`${g}-${E}-panel`,I=r==="codex"?"Codex app server":v?.baseUrl??(r==="openpond"?e?.chatApiBaseUrl:null)??"Not set";return m.useEffect(()=>{if(y.current!==r){y.current=r,j(zu(a,i));return}w&&!x.includes(A)&&j("api")},[A,x,w,r,i,a]),u.jsx("div",{className:"git-dialog-backdrop provider-dialog-backdrop",role:"presentation",onMouseDown:o,children:u.jsxs("section",{className:"git-dialog provider-details-dialog",role:"dialog","aria-modal":"true","aria-label":`${a.displayName} provider details`,onMouseDown:E=>E.stopPropagation(),children:[u.jsx("button",{className:"git-dialog-close",type:"button",title:"Close","aria-label":"Close",onClick:o,children:u.jsx(lo,{size:16})}),u.jsxs("div",{className:"provider-dialog-header",children:[u.jsxs("div",{children:[u.jsx("h2",{children:a.displayName}),u.jsx("span",{children:mn(r,i)})]}),u.jsx("div",{className:`provider-state-pill ${lm(a)}`,children:om(a)})]}),w?u.jsx("div",{className:"surface-tabs provider-mode-tabs",role:"tablist","aria-label":`${a.displayName} mode`,children:x.map(E=>u.jsx("button",{type:"button",role:"tab",id:`${g}-${E}`,className:A===E?"active":void 0,"aria-selected":A===E,"aria-controls":N(E),onClick:()=>j(E),children:E==="api"?"API":"Subscription"},E))}):null,u.jsxs("dl",{className:"provider-dialog-stats",children:[u.jsxs("div",{children:[u.jsx("dt",{children:"Credential"}),u.jsx("dd",{title:Lu(a),children:Lu(a)})]}),P?null:u.jsxs(u.Fragment,{children:[u.jsxs("div",{children:[u.jsx("dt",{children:"Base URL"}),u.jsx("dd",{title:I,children:I})]}),u.jsxs("div",{children:[u.jsx("dt",{children:"Model"}),u.jsx("dd",{title:v?.defaultModel??a.defaultModel??void 0,children:v?.defaultModel??a.defaultModel??"Not set"})]}),u.jsxs("div",{children:[u.jsx("dt",{children:"Models"}),u.jsxs("dd",{title:p?.lastError??void 0,children:[b," cached · ",dw(p?.fetchedAt)]})]})]}),r==="codex"?u.jsxs(u.Fragment,{children:[u.jsxs("div",{children:[u.jsx("dt",{children:"Account"}),u.jsx("dd",{title:t?.account?.email??void 0,children:t?.account?.label??t?.account?.email??"Not signed in"})]}),u.jsxs("div",{children:[u.jsx("dt",{children:"Binary"}),u.jsx("dd",{title:t?.binaryPath??void 0,children:t?.binaryPath??"Not found"})]})]}):null,a.credential.lastError||p?.lastError||a.lastError?u.jsxs("div",{className:"provider-dialog-error",children:[u.jsx("dt",{children:"Error"}),u.jsx("dd",{title:a.credential.lastError??p?.lastError??a.lastError??void 0,children:a.credential.lastError??p?.lastError??a.lastError})]}):null]}),r==="codex"?u.jsx(mw,{providerBusy:n,status:a,onValidate:h}):w&&v&&p?u.jsx(pw,{credentialTab:A,credentialTabsId:g,hasSubscriptionTab:S,providerId:r,providerBusy:n,settings:i,status:a,onDeleteCredential:l,onRefreshModels:s,onSaveConfig:c,onSaveCredential:d,onStartOpenAiSubscriptionAuth:f,onValidate:h}):a.routing.localByok&&!Hl(r)?u.jsxs("div",{className:"provider-dialog-note",children:[u.jsx(Zv,{size:15}),u.jsx("span",{children:"Adapter pending"})]}):null]})})}function mw({providerBusy:e,status:t,onValidate:r}){const n=e==="codex:validate";return u.jsxs("div",{className:"provider-dialog-body codex-provider-body",children:[u.jsxs("div",{className:"provider-dialog-note codex-provider-note",children:[u.jsx(qt,{size:15}),u.jsxs("span",{children:["Uses your local ",u.jsx("code",{children:"codex login"})," session through the Codex app server. This route is separate from OpenAI Platform API-key billing."]})]}),u.jsx("div",{className:"settings-button-row codex-provider-actions",children:u.jsxs("button",{type:"button",className:"settings-secondary",disabled:n,onClick:()=>{r("codex",{modelId:t.defaultModel??void 0})},children:[n?u.jsx(Kt,{size:14,className:"settings-spin"}):u.jsx(Jv,{size:14}),u.jsx("span",{children:n?"Testing":"Test Codex login"})]})})]})}function pw({credentialTab:e,credentialTabsId:t,hasSubscriptionTab:r,providerId:n,providerBusy:i,settings:a,status:o,onDeleteCredential:l,onRefreshModels:s,onSaveConfig:c,onSaveCredential:d,onStartOpenAiSubscriptionAuth:f,onValidate:h}){const v=a.providers[n],p=m.useMemo(()=>pi(n,a),[n,a]),g=`provider-models-${n}`,y=m.useRef(n),[b,w]=m.useState(v.baseUrl??""),[x,S]=m.useState(v.defaultModel??""),[A,j]=m.useState(v.modelOverrides.join(`
|
|
2
2
|
`)),[P,N]=m.useState({baseUrl:!1,defaultModel:!1,modelOverrides:!1}),[I,E]=m.useState("local_secret"),[O,C]=m.useState(""),[$,M]=m.useState(""),z=i===`${n}:config`,W=i===`${n}:credential`,X=i===`${n}:validate`,F=i===`${n}:models`,U=i==="openai:credential",H=n==="openai",le=n==="xai",se=n==="zai",R=(Q=>`${t}-${Q}-panel`)(e),ie=e==="subscription"&&r,de=e==="subscription"&&se?"coding-plan":"api",ve=de==="coding-plan"?"Coding Plan key":"API key",Oe=o.credential.connected?de==="coding-plan"?"Replace saved plan key":"Replace saved key":ve,L=de==="coding-plan"?"Save plan key":"Save key",G=m.useMemo(()=>fw(p,[x,...Ru(A)]),[x,p,A]),D=Math.max(0,p.length-G.length);m.useEffect(()=>{if(y.current!==n){y.current=n,N({baseUrl:!1,defaultModel:!1,modelOverrides:!1}),w(v.baseUrl??""),S(v.defaultModel??""),j(v.modelOverrides.join(`
|
|
3
3
|
`));return}P.baseUrl||w(v.baseUrl??""),P.defaultModel||S(v.defaultModel??""),P.modelOverrides||j(v.modelOverrides.join(`
|
|
4
4
|
`))},[v.baseUrl,v.defaultModel,v.modelOverrides,P.baseUrl,P.defaultModel,P.modelOverrides,n]);const _=I==="env"?!!$.trim():!!O.trim();async function xe(Q){Q.preventDefault(),await c(n,{enabled:!0,baseUrl:b.trim()||null,defaultModel:x.trim()||null,modelOverrides:Ru(A)}),N({baseUrl:!1,defaultModel:!1,modelOverrides:!1})}async function ne(Q){if(Q.preventDefault(),!!_){if(I==="env"){await d(n,{source:"env",envVar:$.trim()});return}await d(n,{source:"local_secret",value:O}),C("")}}function V({panel:Q=!0}={}){return u.jsxs("form",{className:"provider-credential-panel",id:Q?R:void 0,role:Q?"tabpanel":void 0,"aria-labelledby":Q?`${t}-${e}`:void 0,onSubmit:Te=>{ne(Te)},children:[u.jsxs("div",{className:"provider-card-grid credential-grid",children:[u.jsxs("div",{className:"settings-select-field",children:[u.jsx("span",{children:"Credential source"}),u.jsx(ni,{value:I,disabled:W,label:"Credential source",options:tw,onChange:Te=>E(Te)})]}),I==="env"?u.jsxs("label",{className:"settings-select-field",children:[u.jsx("span",{children:"Environment variable"}),u.jsx("input",{value:$,disabled:W,placeholder:"PROVIDER_API_KEY",onChange:Te=>M(Te.currentTarget.value)})]}):u.jsxs("label",{className:"settings-select-field",children:[u.jsx("span",{children:ve}),u.jsx("input",{type:"password",value:O,disabled:W,placeholder:Oe,autoComplete:"off",onChange:Te=>C(Te.currentTarget.value)})]})]}),u.jsxs("div",{className:"settings-button-row",children:[u.jsxs("button",{className:"settings-secondary",disabled:W||!_,children:[W?u.jsx(Kt,{size:14,className:"settings-spin"}):u.jsx(qt,{size:14}),u.jsx("span",{children:W?"Saving":L})]}),u.jsx("button",{type:"button",className:"settings-icon-button ghost","aria-label":`Delete ${o.displayName} credential`,disabled:W||!o.credential.connected,onClick:()=>{l(n)},children:u.jsx(Pu,{size:15})})]})]})}function Ae(){return H?u.jsxs("div",{className:"provider-subscription-panel",id:R,role:"tabpanel","aria-labelledby":`${t}-subscription`,children:[u.jsxs("div",{className:"provider-dialog-note codex-provider-note",children:[u.jsx(qt,{size:15}),u.jsx("span",{children:"ChatGPT subscription auth opens OpenAI login and stores a refresh token locally. API keys remain available under the API tab for raw Platform billing."})]}),u.jsxs("div",{className:"settings-button-row",children:[u.jsxs("button",{type:"button",className:"settings-secondary",disabled:U,onClick:()=>{f("browser")},children:[U?u.jsx(Kt,{size:14,className:"settings-spin"}):u.jsx(qt,{size:14}),u.jsx("span",{children:U?"Opening":"Connect ChatGPT"})]}),u.jsxs("button",{type:"button",className:"settings-secondary",disabled:U,onClick:()=>{f("device")},children:[U?u.jsx(Kt,{size:14,className:"settings-spin"}):u.jsx(qt,{size:14}),u.jsx("span",{children:"Device code"})]}),u.jsx("button",{type:"button",className:"settings-icon-button ghost","aria-label":`Delete ${o.displayName} credential`,disabled:U||!o.credential.connected,onClick:()=>{l(n)},children:u.jsx(Pu,{size:15})})]})]}):le?u.jsx("div",{className:"provider-subscription-panel",id:R,role:"tabpanel","aria-labelledby":`${t}-subscription`,children:u.jsxs("div",{className:"provider-dialog-note xai-provider-note",children:[u.jsx(qt,{size:15}),u.jsx("span",{children:"SuperGrok includes Grok app and Grok Build access. xAI API calls here still use an xAI Console API key with API credits or invoiced billing, so there is no separate Connect SuperGrok step yet."})]})}):se?u.jsxs("div",{className:"provider-subscription-panel",id:R,role:"tabpanel","aria-labelledby":`${t}-subscription`,children:[u.jsxs("div",{className:"provider-dialog-note subscription-provider-note",children:[u.jsx(qt,{size:15}),u.jsx("span",{children:"GLM Coding Plan uses a plan API key with the dedicated Coding endpoint. General Z.ai API keys and balances are separate."})]}),V({panel:!1})]}):null}return u.jsxs("div",{className:"provider-dialog-body",children:[ie?null:u.jsxs("form",{className:"provider-card-form",onSubmit:Q=>{xe(Q)},children:[u.jsxs("div",{className:"provider-card-grid",children:[u.jsxs("label",{className:"settings-select-field",children:[u.jsx("span",{children:"Base URL"}),u.jsx("input",{value:b,disabled:z,placeholder:"https://api.example.com/v1",onChange:Q=>{N(Te=>({...Te,baseUrl:!0})),w(Q.currentTarget.value)}})]}),u.jsxs("label",{className:"settings-select-field",children:[u.jsx("span",{children:"Default model"}),u.jsx("input",{list:g,value:x,disabled:z,placeholder:"Model id",onChange:Q=>{N(Te=>({...Te,defaultModel:!0})),S(Q.currentTarget.value)}}),u.jsx("datalist",{id:g,children:G.map(Q=>u.jsx("option",{value:Q.value,children:Q.label},Q.value))}),D>0?u.jsxs("small",{children:[D," more cached models hidden from suggestions"]}):null]})]}),u.jsxs("div",{className:"settings-button-row",children:[u.jsxs("button",{className:"settings-secondary",disabled:z,children:[z?u.jsx(Kt,{size:14,className:"settings-spin"}):u.jsx(Us,{size:14}),u.jsx("span",{children:z?"Saving":"Save config"})]}),u.jsxs("button",{type:"button",className:"settings-secondary",disabled:F,onClick:()=>{s(n)},children:[F?u.jsx(Kt,{size:14,className:"settings-spin"}):u.jsx(Gr,{size:14}),u.jsx("span",{children:F?"Refreshing":"Refresh models"})]}),u.jsxs("button",{type:"button",className:"settings-secondary",disabled:X||!x.trim(),onClick:()=>{h(n,{baseUrl:b.trim()||void 0,modelId:x.trim()||void 0})},children:[X?u.jsx(Kt,{size:14,className:"settings-spin"}):u.jsx(Jv,{size:14}),u.jsx("span",{children:X?"Testing":"Test"})]})]})]}),u.jsx("div",{className:"provider-card-form credential-form",children:ie?Ae():V()})]})}function gw({status:e,busy:t,flashTailscaleUp:r,refresh:n,enableRemoteAccess:i,disableRemoteAccess:a,copyRemoteLink:o,copyTailscaleUpCommand:l,copyServeCommand:s,copyServeSetupUrl:c,copyOperatorCommand:d,createRemoteLink:f}){const h=e?.tailscale.installed??!1,v=e?.serve.enabled??!1,p=e?.serve.reachable??!1,g=!!(e?.webUiAvailable&&h),y=v?!!e?.remoteWebUrl:g,w=(e?.tailscale.peers??[]).filter(A=>!A.isSelf),x=!!e?.tailscale.error?.includes("set --operator"),S=!!(v&&e?.remoteWebUrl);return u.jsxs("section",{className:"account-settings remote-access-settings",children:[u.jsx("h1",{children:"Remote access"}),u.jsxs("div",{className:"account-summary remote-access-summary",children:[u.jsxs("div",{className:"account-summary-main",children:[u.jsx("div",{className:`remote-access-icon ${p?"online":v?"configured":""}`,children:h?u.jsx(rm,{size:18}):u.jsx(h0,{size:18})}),u.jsxs("div",{children:[u.jsx("strong",{children:p?"Tailscale Serve is reachable":v?"Tailscale Serve is configured":"Tailscale Serve is off"}),u.jsx("small",{children:e?xw(e):"Checking Tailscale"})]})]}),u.jsxs("div",{className:"account-summary-actions",children:[u.jsx("button",{type:"button",className:"settings-icon-button",title:"Refresh remote access","aria-label":"Refresh remote access",disabled:t!==null,onClick:()=>{n()},children:u.jsx(Gr,{className:t==="refresh"?"settings-spin":"",size:15})}),u.jsxs("button",{type:"button",className:"settings-secondary",disabled:t!==null||!h||!v&&!g,onClick:()=>{v?a():i()},children:[u.jsx(w0,{size:15}),u.jsx("span",{children:v?t==="disable"?"Turning off":"Turn off":t==="enable"?"Turning on":"Turn on"})]})]})]}),u.jsxs("div",{className:"account-list",children:[u.jsx("div",{className:"account-list-heading remote-access-link-heading",children:u.jsxs("div",{children:[u.jsx("span",{children:"OpenPond link"}),u.jsx("small",{children:S?"Browser UI":"Tailscale + Serve"})]})}),S&&u.jsx(dr,{label:"Remote URL",value:e?.remoteWebUrl??null,actionLabel:t==="copy-link"?"Copying":"Copy",disabled:!e?.remoteWebUrl||t!==null,onAction:o}),u.jsx(dr,{label:"Tailscale up",value:e?.tailscaleUpCommand??null,flash:r,actionLabel:t==="copy-up-command"?"Copying":"Copy",disabled:!e?.tailscaleUpCommand||t!==null,onAction:l}),u.jsx(dr,{label:"Serve command",value:e?.serveCommand??null,actionLabel:t==="copy-command"?"Copying":"Copy",disabled:!e?.serveCommand||t!==null,onAction:s}),e?.serve.setupUrl&&u.jsx(dr,{label:"Enable Serve",value:e.serve.setupUrl,actionLabel:t==="copy-serve-setup"?"Copying":"Copy",disabled:t!==null,onAction:c}),x&&u.jsx(dr,{label:"One-time setup",value:e?.operatorCommand??null,actionLabel:t==="copy-operator"?"Copying":"Copy",disabled:!e?.operatorCommand||t!==null,onAction:d}),u.jsx(dr,{label:"Local target",value:e?.localUrl??null}),e?.tailscale.authUrl&&u.jsx(dr,{label:"Tailscale login",value:e.tailscale.authUrl}),u.jsx(dr,{label:"Disable command",value:e?.disableCommand??null})]}),u.jsxs("div",{className:"account-list",children:[u.jsxs("div",{className:"account-list-heading remote-access-link-heading",children:[u.jsxs("div",{children:[u.jsx("span",{children:"Authorized clients"}),u.jsxs("small",{children:[w.length," devices"]})]}),u.jsx("button",{type:"button",className:"settings-secondary",disabled:t!==null||!y,onClick:()=>{f()},children:u.jsx("span",{children:v?"Copy link":"Create link"})})]}),e?w.length===0?u.jsxs("div",{className:"empty-account-list",children:[u.jsx("strong",{children:"No clients reported"}),u.jsx("span",{children:e?.tailscale.running?"Tailscale did not return peer devices.":"Tailscale is not running."})]}):w.map(A=>u.jsx(bw,{peer:A},A.id)):u.jsxs("div",{className:"empty-account-list",children:[u.jsx("strong",{children:"Checking clients"}),u.jsx("span",{children:"Loading tailnet devices."})]})]}),u.jsxs("div",{className:"account-list",children:[u.jsxs("div",{className:"account-list-heading",children:[u.jsx("span",{children:"Remote environment"}),u.jsx("small",{children:e?.tailscale.tailnetName??"Tailnet"})]}),u.jsx(yw,{status:e})]}),e?.serve.configText&&u.jsxs("div",{className:"remote-access-config",children:[u.jsxs("div",{className:"account-list-heading",children:[u.jsx("span",{children:"Tailscale config"}),u.jsx("small",{children:e.serve.enabled?"OpenPond target found":"No OpenPond target"})]}),u.jsx("pre",{children:e.serve.configText})]})]})}function dr({actionLabel:e,disabled:t,flash:r,label:n,onAction:i,value:a}){return u.jsxs("div",{className:"product-row remote-access-value-row",children:[u.jsxs("div",{children:[u.jsx("strong",{className:r?"flash":void 0,children:n}),u.jsx("code",{children:a??"Not available"})]}),i&&u.jsx("button",{type:"button",className:"settings-secondary",disabled:t,onClick:()=>{i()},children:u.jsx("span",{children:e??"Copy"})})]})}function yw({status:e}){const t=[{label:"State",value:e?.tailscale.backendState??"Unknown"},{label:"Machine",value:e?.tailscale.machineName??"Unknown"},{label:"Tailnet",value:e?.tailscale.tailnetName??"Unknown"}],r=[{label:"Tailscale IP",value:e?.tailscale.tailscaleIps.join(", ")||"Unknown"},{label:"HTTPS host",value:e?.serve.httpsHost??e?.tailscale.dnsName??"Unknown"}];return u.jsxs("div",{className:"remote-access-environment",children:[u.jsx("div",{className:"remote-access-environment-row three",children:t.map(n=>u.jsx(Uu,{label:n.label,value:n.value},n.label))}),u.jsx("div",{className:"remote-access-environment-row two",children:r.map(n=>u.jsx(Uu,{label:n.label,value:n.value},n.label))})]})}function Uu({label:e,value:t}){return u.jsxs("div",{className:"remote-access-environment-cell",children:[u.jsx("strong",{children:e}),u.jsx("span",{children:t})]})}function bw({peer:e}){return u.jsxs("div",{className:"account-row remote-access-peer-row",children:[u.jsx("div",{className:`remote-access-peer-dot ${e.online?"online":""}`}),u.jsxs("div",{className:"account-details",children:[u.jsx("strong",{children:e.name}),u.jsx("span",{children:e.dnsName??e.tailscaleIps[0]??"No address"})]}),u.jsx("span",{className:`account-state ${e.online?"signed_in":""}`,children:e.online?"Online":"Offline"}),u.jsx("span",{className:"account-state",children:e.os??"Unknown"})]})}function xw(e){return e.tailscale.installed?e.tailscale.running?e.webUiAvailable?e.serve.reachable?e.remoteUrl??"Tailnet link ready":e.remoteUrl?`${e.remoteUrl} ready to configure`:"Tailnet DNS unavailable":"Browser UI is not served by this process":e.tailscale.authUrl?"Tailscale needs sign-in":"Tailscale is not running":"Tailscale is not installed"}const ww=[{items:[{section:"account",label:"Account",Icon:C0},{section:"notifications",label:"Notifications",Icon:tm},{section:"profile",label:"Profile",Icon:Vx},{section:"providers",label:"Providers",Icon:Yx},{section:"compute",label:"Compute",Icon:v0},{section:"wallet",label:"Wallet",Icon:Qv},{section:"usage",label:"Usage",Icon:Xx},{section:"defaults",label:"Defaults",Icon:nm}]},{label:"Harness",items:[{section:"goals",label:"Goals",Icon:ku},{section:"context",label:"Context",Icon:Zx},{section:"insights",label:"Insights",Icon:Jx},{section:"training",label:"Training",Icon:Ou},{section:"subagents",label:"Subagents",Icon:Ou}]},{items:[{section:"editor",label:"Editor",Icon:y0},{section:"remote",label:"Remote",Icon:rm},{section:"personalization",label:"Personalization",Icon:Qx},{section:"diagnostics",label:"Diagnostics",Icon:ku}]}];function jw({section:e,onBack:t,onSectionChange:r}){return u.jsxs("aside",{className:"settings-sidebar",children:[u.jsxs("button",{className:"settings-back",onClick:t,children:[u.jsx(Gx,{size:15}),u.jsx("span",{children:"Back to app"})]}),u.jsx("nav",{className:"settings-nav","aria-label":"Settings",children:ww.map((n,i)=>u.jsxs("div",{className:"settings-nav-group",children:[n.label?u.jsx("div",{className:"settings-nav-heading",children:n.label}):null,n.items.map(({section:a,label:o,Icon:l})=>u.jsxs("button",{className:`settings-nav-item ${e===a?"active":""}`,onClick:()=>r(a),children:[u.jsx(l,{size:16}),u.jsx("span",{children:o})]},a))]},n.label??`settings-${i}`))})]})}function cm(e){var t,r,n="";if(typeof e=="string"||typeof e=="number")n+=e;else if(typeof e=="object")if(Array.isArray(e)){var i=e.length;for(t=0;t<i;t++)e[t]&&(r=cm(e[t]))&&(n&&(n+=" "),n+=r)}else for(r in e)e[r]&&(n&&(n+=" "),n+=r);return n}function ye(){for(var e,t,r=0,n="",i=arguments.length;r<i;r++)(e=arguments[r])&&(t=cm(e))&&(n&&(n+=" "),n+=t);return n}var Sw=["dangerouslySetInnerHTML","onCopy","onCopyCapture","onCut","onCutCapture","onPaste","onPasteCapture","onCompositionEnd","onCompositionEndCapture","onCompositionStart","onCompositionStartCapture","onCompositionUpdate","onCompositionUpdateCapture","onFocus","onFocusCapture","onBlur","onBlurCapture","onChange","onChangeCapture","onBeforeInput","onBeforeInputCapture","onInput","onInputCapture","onReset","onResetCapture","onSubmit","onSubmitCapture","onInvalid","onInvalidCapture","onLoad","onLoadCapture","onError","onErrorCapture","onKeyDown","onKeyDownCapture","onKeyPress","onKeyPressCapture","onKeyUp","onKeyUpCapture","onAbort","onAbortCapture","onCanPlay","onCanPlayCapture","onCanPlayThrough","onCanPlayThroughCapture","onDurationChange","onDurationChangeCapture","onEmptied","onEmptiedCapture","onEncrypted","onEncryptedCapture","onEnded","onEndedCapture","onLoadedData","onLoadedDataCapture","onLoadedMetadata","onLoadedMetadataCapture","onLoadStart","onLoadStartCapture","onPause","onPauseCapture","onPlay","onPlayCapture","onPlaying","onPlayingCapture","onProgress","onProgressCapture","onRateChange","onRateChangeCapture","onSeeked","onSeekedCapture","onSeeking","onSeekingCapture","onStalled","onStalledCapture","onSuspend","onSuspendCapture","onTimeUpdate","onTimeUpdateCapture","onVolumeChange","onVolumeChangeCapture","onWaiting","onWaitingCapture","onAuxClick","onAuxClickCapture","onClick","onClickCapture","onContextMenu","onContextMenuCapture","onDoubleClick","onDoubleClickCapture","onDrag","onDragCapture","onDragEnd","onDragEndCapture","onDragEnter","onDragEnterCapture","onDragExit","onDragExitCapture","onDragLeave","onDragLeaveCapture","onDragOver","onDragOverCapture","onDragStart","onDragStartCapture","onDrop","onDropCapture","onMouseDown","onMouseDownCapture","onMouseEnter","onMouseLeave","onMouseMove","onMouseMoveCapture","onMouseOut","onMouseOutCapture","onMouseOver","onMouseOverCapture","onMouseUp","onMouseUpCapture","onSelect","onSelectCapture","onTouchCancel","onTouchCancelCapture","onTouchEnd","onTouchEndCapture","onTouchMove","onTouchMoveCapture","onTouchStart","onTouchStartCapture","onPointerDown","onPointerDownCapture","onPointerMove","onPointerMoveCapture","onPointerUp","onPointerUpCapture","onPointerCancel","onPointerCancelCapture","onPointerEnter","onPointerEnterCapture","onPointerLeave","onPointerLeaveCapture","onPointerOver","onPointerOverCapture","onPointerOut","onPointerOutCapture","onGotPointerCapture","onGotPointerCaptureCapture","onLostPointerCapture","onLostPointerCaptureCapture","onScroll","onScrollCapture","onWheel","onWheelCapture","onAnimationStart","onAnimationStartCapture","onAnimationEnd","onAnimationEndCapture","onAnimationIteration","onAnimationIterationCapture","onTransitionEnd","onTransitionEndCapture"];function Ws(e){if(typeof e!="string")return!1;var t=Sw;return t.includes(e)}var Aw=["aria-activedescendant","aria-atomic","aria-autocomplete","aria-busy","aria-checked","aria-colcount","aria-colindex","aria-colspan","aria-controls","aria-current","aria-describedby","aria-details","aria-disabled","aria-errormessage","aria-expanded","aria-flowto","aria-haspopup","aria-hidden","aria-invalid","aria-keyshortcuts","aria-label","aria-labelledby","aria-level","aria-live","aria-modal","aria-multiline","aria-multiselectable","aria-orientation","aria-owns","aria-placeholder","aria-posinset","aria-pressed","aria-readonly","aria-relevant","aria-required","aria-roledescription","aria-rowcount","aria-rowindex","aria-rowspan","aria-selected","aria-setsize","aria-sort","aria-valuemax","aria-valuemin","aria-valuenow","aria-valuetext","className","color","height","id","lang","max","media","method","min","name","style","target","width","role","tabIndex","accentHeight","accumulate","additive","alignmentBaseline","allowReorder","alphabetic","amplitude","arabicForm","ascent","attributeName","attributeType","autoReverse","azimuth","baseFrequency","baselineShift","baseProfile","bbox","begin","bias","by","calcMode","capHeight","clip","clipPath","clipPathUnits","clipRule","colorInterpolation","colorInterpolationFilters","colorProfile","colorRendering","contentScriptType","contentStyleType","cursor","cx","cy","d","decelerate","descent","diffuseConstant","direction","display","divisor","dominantBaseline","dur","dx","dy","edgeMode","elevation","enableBackground","end","exponent","externalResourcesRequired","fill","fillOpacity","fillRule","filter","filterRes","filterUnits","floodColor","floodOpacity","focusable","fontFamily","fontSize","fontSizeAdjust","fontStretch","fontStyle","fontVariant","fontWeight","format","from","fx","fy","g1","g2","glyphName","glyphOrientationHorizontal","glyphOrientationVertical","glyphRef","gradientTransform","gradientUnits","hanging","horizAdvX","horizOriginX","href","ideographic","imageRendering","in2","in","intercept","k1","k2","k3","k4","k","kernelMatrix","kernelUnitLength","kerning","keyPoints","keySplines","keyTimes","lengthAdjust","letterSpacing","lightingColor","limitingConeAngle","local","markerEnd","markerHeight","markerMid","markerStart","markerUnits","markerWidth","mask","maskContentUnits","maskUnits","mathematical","mode","numOctaves","offset","opacity","operator","order","orient","orientation","origin","overflow","overlinePosition","overlineThickness","paintOrder","panose1","pathLength","patternContentUnits","patternTransform","patternUnits","pointerEvents","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","r","radius","refX","refY","renderingIntent","repeatCount","repeatDur","requiredExtensions","requiredFeatures","restart","result","rotate","rx","ry","seed","shapeRendering","slope","spacing","specularConstant","specularExponent","speed","spreadMethod","startOffset","stdDeviation","stemh","stemv","stitchTiles","stopColor","stopOpacity","strikethroughPosition","strikethroughThickness","string","stroke","strokeDasharray","strokeDashoffset","strokeLinecap","strokeLinejoin","strokeMiterlimit","strokeOpacity","strokeWidth","surfaceScale","systemLanguage","tableValues","targetX","targetY","textAnchor","textDecoration","textLength","textRendering","to","transform","u1","u2","underlinePosition","underlineThickness","unicode","unicodeBidi","unicodeRange","unitsPerEm","vAlphabetic","values","vectorEffect","version","vertAdvY","vertOriginX","vertOriginY","vHanging","vIdeographic","viewTarget","visibility","vMathematical","widths","wordSpacing","writingMode","x1","x2","x","xChannelSelector","xHeight","xlinkActuate","xlinkArcrole","xlinkHref","xlinkRole","xlinkShow","xlinkTitle","xlinkType","xmlBase","xmlLang","xmlns","xmlnsXlink","xmlSpace","y1","y2","y","yChannelSelector","z","zoomAndPan","ref","key","angle"],Pw=new Set(Aw);function um(e){return typeof e!="string"?!1:Pw.has(e)}function dm(e){return typeof e=="string"&&e.startsWith("data-")}function Jt(e){if(typeof e!="object"||e===null)return{};var t={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(um(r)||dm(r))&&(t[r]=e[r]);return t}function Ks(e){if(e==null)return null;if(m.isValidElement(e)&&typeof e.props=="object"&&e.props!==null){var t=e.props;return Jt(t)}return typeof e=="object"&&!Array.isArray(e)?Jt(e):null}function $t(e){var t={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(um(r)||dm(r)||Ws(r))&&(t[r]=e[r]);return t}var Ow=["children","width","height","viewBox","className","style","title","desc"];function Gl(){return Gl=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Gl.apply(null,arguments)}function Cw(e,t){if(e==null)return{};var r,n,i=kw(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}function kw(e,t){if(e==null)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(t.indexOf(n)!==-1)continue;r[n]=e[n]}return r}var qs=m.forwardRef((e,t)=>{var r=e.children,n=e.width,i=e.height,a=e.viewBox,o=e.className,l=e.style,s=e.title,c=e.desc,d=Cw(e,Ow),f=a||{width:n,height:i,x:0,y:0},h=ye("recharts-surface",o);return m.createElement("svg",Gl({},$t(d),{className:h,width:n,height:i,style:l,viewBox:"".concat(f.x," ").concat(f.y," ").concat(f.width," ").concat(f.height),ref:t}),m.createElement("title",null,s),m.createElement("desc",null,c),r)}),Ew=["children","className"];function Vl(){return Vl=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Vl.apply(null,arguments)}function Iw(e,t){if(e==null)return{};var r,n,i=Nw(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}function Nw(e,t){if(e==null)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(t.indexOf(n)!==-1)continue;r[n]=e[n]}return r}var Rt=m.forwardRef((e,t)=>{var r=e.children,n=e.className,i=Iw(e,Ew),a=ye("recharts-layer",n);return m.createElement("g",Vl({className:a},$t(i),{ref:t}),r)}),fm=m.createContext(null),_w=()=>m.useContext(fm);function me(e){return function(){return e}}const hm=Math.cos,va=Math.sin,Ot=Math.sqrt,ma=Math.PI,co=2*ma,Yl=Math.PI,Xl=2*Yl,Nr=1e-6,Tw=Xl-Nr;function vm(e){this._+=e[0];for(let t=1,r=e.length;t<r;++t)this._+=arguments[t]+e[t]}function Mw(e){let t=Math.floor(e);if(!(t>=0))throw new Error(`invalid digits: ${e}`);if(t>15)return vm;const r=10**t;return function(n){this._+=n[0];for(let i=1,a=n.length;i<a;++i)this._+=Math.round(arguments[i]*r)/r+n[i]}}class Dw{constructor(t){this._x0=this._y0=this._x1=this._y1=null,this._="",this._append=t==null?vm:Mw(t)}moveTo(t,r){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+r}`}closePath(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(t,r){this._append`L${this._x1=+t},${this._y1=+r}`}quadraticCurveTo(t,r,n,i){this._append`Q${+t},${+r},${this._x1=+n},${this._y1=+i}`}bezierCurveTo(t,r,n,i,a,o){this._append`C${+t},${+r},${+n},${+i},${this._x1=+a},${this._y1=+o}`}arcTo(t,r,n,i,a){if(t=+t,r=+r,n=+n,i=+i,a=+a,a<0)throw new Error(`negative radius: ${a}`);let o=this._x1,l=this._y1,s=n-t,c=i-r,d=o-t,f=l-r,h=d*d+f*f;if(this._x1===null)this._append`M${this._x1=t},${this._y1=r}`;else if(h>Nr)if(!(Math.abs(f*s-c*d)>Nr)||!a)this._append`L${this._x1=t},${this._y1=r}`;else{let v=n-o,p=i-l,g=s*s+c*c,y=v*v+p*p,b=Math.sqrt(g),w=Math.sqrt(h),x=a*Math.tan((Yl-Math.acos((g+h-y)/(2*b*w)))/2),S=x/w,A=x/b;Math.abs(S-1)>Nr&&this._append`L${t+S*d},${r+S*f}`,this._append`A${a},${a},0,0,${+(f*v>d*p)},${this._x1=t+A*s},${this._y1=r+A*c}`}}arc(t,r,n,i,a,o){if(t=+t,r=+r,n=+n,o=!!o,n<0)throw new Error(`negative radius: ${n}`);let l=n*Math.cos(i),s=n*Math.sin(i),c=t+l,d=r+s,f=1^o,h=o?i-a:a-i;this._x1===null?this._append`M${c},${d}`:(Math.abs(this._x1-c)>Nr||Math.abs(this._y1-d)>Nr)&&this._append`L${c},${d}`,n&&(h<0&&(h=h%Xl+Xl),h>Tw?this._append`A${n},${n},0,1,${f},${t-l},${r-s}A${n},${n},0,1,${f},${this._x1=c},${this._y1=d}`:h>Nr&&this._append`A${n},${n},0,${+(h>=Yl)},${f},${this._x1=t+n*Math.cos(a)},${this._y1=r+n*Math.sin(a)}`)}rect(t,r,n,i){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+r}h${n=+n}v${+i}h${-n}Z`}toString(){return this._}}function Hs(e){let t=3;return e.digits=function(r){if(!arguments.length)return t;if(r==null)t=null;else{const n=Math.floor(r);if(!(n>=0))throw new RangeError(`invalid digits: ${r}`);t=n}return e},()=>new Dw(t)}function Gs(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function mm(e){this._context=e}mm.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:this._context.lineTo(e,t);break}}};function uo(e){return new mm(e)}function pm(e){return e[0]}function gm(e){return e[1]}function ym(e,t){var r=me(!0),n=null,i=uo,a=null,o=Hs(l);e=typeof e=="function"?e:e===void 0?pm:me(e),t=typeof t=="function"?t:t===void 0?gm:me(t);function l(s){var c,d=(s=Gs(s)).length,f,h=!1,v;for(n==null&&(a=i(v=o())),c=0;c<=d;++c)!(c<d&&r(f=s[c],c,s))===h&&((h=!h)?a.lineStart():a.lineEnd()),h&&a.point(+e(f,c,s),+t(f,c,s));if(v)return a=null,v+""||null}return l.x=function(s){return arguments.length?(e=typeof s=="function"?s:me(+s),l):e},l.y=function(s){return arguments.length?(t=typeof s=="function"?s:me(+s),l):t},l.defined=function(s){return arguments.length?(r=typeof s=="function"?s:me(!!s),l):r},l.curve=function(s){return arguments.length?(i=s,n!=null&&(a=i(n)),l):i},l.context=function(s){return arguments.length?(s==null?n=a=null:a=i(n=s),l):n},l}function Bi(e,t,r){var n=null,i=me(!0),a=null,o=uo,l=null,s=Hs(c);e=typeof e=="function"?e:e===void 0?pm:me(+e),t=typeof t=="function"?t:me(t===void 0?0:+t),r=typeof r=="function"?r:r===void 0?gm:me(+r);function c(f){var h,v,p,g=(f=Gs(f)).length,y,b=!1,w,x=new Array(g),S=new Array(g);for(a==null&&(l=o(w=s())),h=0;h<=g;++h){if(!(h<g&&i(y=f[h],h,f))===b)if(b=!b)v=h,l.areaStart(),l.lineStart();else{for(l.lineEnd(),l.lineStart(),p=h-1;p>=v;--p)l.point(x[p],S[p]);l.lineEnd(),l.areaEnd()}b&&(x[h]=+e(y,h,f),S[h]=+t(y,h,f),l.point(n?+n(y,h,f):x[h],r?+r(y,h,f):S[h]))}if(w)return l=null,w+""||null}function d(){return ym().defined(i).curve(o).context(a)}return c.x=function(f){return arguments.length?(e=typeof f=="function"?f:me(+f),n=null,c):e},c.x0=function(f){return arguments.length?(e=typeof f=="function"?f:me(+f),c):e},c.x1=function(f){return arguments.length?(n=f==null?null:typeof f=="function"?f:me(+f),c):n},c.y=function(f){return arguments.length?(t=typeof f=="function"?f:me(+f),r=null,c):t},c.y0=function(f){return arguments.length?(t=typeof f=="function"?f:me(+f),c):t},c.y1=function(f){return arguments.length?(r=f==null?null:typeof f=="function"?f:me(+f),c):r},c.lineX0=c.lineY0=function(){return d().x(e).y(t)},c.lineY1=function(){return d().x(e).y(r)},c.lineX1=function(){return d().x(n).y(t)},c.defined=function(f){return arguments.length?(i=typeof f=="function"?f:me(!!f),c):i},c.curve=function(f){return arguments.length?(o=f,a!=null&&(l=o(a)),c):o},c.context=function(f){return arguments.length?(f==null?a=l=null:l=o(a=f),c):a},c}class bm{constructor(t,r){this._context=t,this._x=r}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line}point(t,r){switch(t=+t,r=+r,this._point){case 0:{this._point=1,this._line?this._context.lineTo(t,r):this._context.moveTo(t,r);break}case 1:this._point=2;default:{this._x?this._context.bezierCurveTo(this._x0=(this._x0+t)/2,this._y0,this._x0,r,t,r):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+r)/2,t,this._y0,t,r);break}}this._x0=t,this._y0=r}}function $w(e){return new bm(e,!0)}function Rw(e){return new bm(e,!1)}const Vs={draw(e,t){const r=Ot(t/ma);e.moveTo(r,0),e.arc(0,0,r,0,co)}},Lw={draw(e,t){const r=Ot(t/5)/2;e.moveTo(-3*r,-r),e.lineTo(-r,-r),e.lineTo(-r,-3*r),e.lineTo(r,-3*r),e.lineTo(r,-r),e.lineTo(3*r,-r),e.lineTo(3*r,r),e.lineTo(r,r),e.lineTo(r,3*r),e.lineTo(-r,3*r),e.lineTo(-r,r),e.lineTo(-3*r,r),e.closePath()}},xm=Ot(1/3),zw=xm*2,Bw={draw(e,t){const r=Ot(t/zw),n=r*xm;e.moveTo(0,-r),e.lineTo(n,0),e.lineTo(0,r),e.lineTo(-n,0),e.closePath()}},Uw={draw(e,t){const r=Ot(t),n=-r/2;e.rect(n,n,r,r)}},Fw=.8908130915292852,wm=va(ma/10)/va(7*ma/10),Ww=va(co/10)*wm,Kw=-hm(co/10)*wm,qw={draw(e,t){const r=Ot(t*Fw),n=Ww*r,i=Kw*r;e.moveTo(0,-r),e.lineTo(n,i);for(let a=1;a<5;++a){const o=co*a/5,l=hm(o),s=va(o);e.lineTo(s*r,-l*r),e.lineTo(l*n-s*i,s*n+l*i)}e.closePath()}},ul=Ot(3),Hw={draw(e,t){const r=-Ot(t/(ul*3));e.moveTo(0,r*2),e.lineTo(-ul*r,-r),e.lineTo(ul*r,-r),e.closePath()}},ut=-.5,dt=Ot(3)/2,Zl=1/Ot(12),Gw=(Zl/2+1)*3,Vw={draw(e,t){const r=Ot(t/Gw),n=r/2,i=r*Zl,a=n,o=r*Zl+r,l=-a,s=o;e.moveTo(n,i),e.lineTo(a,o),e.lineTo(l,s),e.lineTo(ut*n-dt*i,dt*n+ut*i),e.lineTo(ut*a-dt*o,dt*a+ut*o),e.lineTo(ut*l-dt*s,dt*l+ut*s),e.lineTo(ut*n+dt*i,ut*i-dt*n),e.lineTo(ut*a+dt*o,ut*o-dt*a),e.lineTo(ut*l+dt*s,ut*s-dt*l),e.closePath()}};function Yw(e,t){let r=null,n=Hs(i);e=typeof e=="function"?e:me(e||Vs),t=typeof t=="function"?t:me(t===void 0?64:+t);function i(){let a;if(r||(r=a=n()),e.apply(this,arguments).draw(r,+t.apply(this,arguments)),a)return r=null,a+""||null}return i.type=function(a){return arguments.length?(e=typeof a=="function"?a:me(a),i):e},i.size=function(a){return arguments.length?(t=typeof a=="function"?a:me(+a),i):t},i.context=function(a){return arguments.length?(r=a??null,i):r},i}function pa(){}function ga(e,t,r){e._context.bezierCurveTo((2*e._x0+e._x1)/3,(2*e._y0+e._y1)/3,(e._x0+2*e._x1)/3,(e._y0+2*e._y1)/3,(e._x0+4*e._x1+t)/6,(e._y0+4*e._y1+r)/6)}function jm(e){this._context=e}jm.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:ga(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:ga(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function Xw(e){return new jm(e)}function Sm(e){this._context=e}Sm.prototype={areaStart:pa,areaEnd:pa,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._x2=e,this._y2=t;break;case 1:this._point=2,this._x3=e,this._y3=t;break;case 2:this._point=3,this._x4=e,this._y4=t,this._context.moveTo((this._x0+4*this._x1+e)/6,(this._y0+4*this._y1+t)/6);break;default:ga(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function Zw(e){return new Sm(e)}function Am(e){this._context=e}Am.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var r=(this._x0+4*this._x1+e)/6,n=(this._y0+4*this._y1+t)/6;this._line?this._context.lineTo(r,n):this._context.moveTo(r,n);break;case 3:this._point=4;default:ga(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function Jw(e){return new Am(e)}function Pm(e){this._context=e}Pm.prototype={areaStart:pa,areaEnd:pa,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(e,t){e=+e,t=+t,this._point?this._context.lineTo(e,t):(this._point=1,this._context.moveTo(e,t))}};function Qw(e){return new Pm(e)}function Fu(e){return e<0?-1:1}function Wu(e,t,r){var n=e._x1-e._x0,i=t-e._x1,a=(e._y1-e._y0)/(n||i<0&&-0),o=(r-e._y1)/(i||n<0&&-0),l=(a*i+o*n)/(n+i);return(Fu(a)+Fu(o))*Math.min(Math.abs(a),Math.abs(o),.5*Math.abs(l))||0}function Ku(e,t){var r=e._x1-e._x0;return r?(3*(e._y1-e._y0)/r-t)/2:t}function dl(e,t,r){var n=e._x0,i=e._y0,a=e._x1,o=e._y1,l=(a-n)/3;e._context.bezierCurveTo(n+l,i+l*t,a-l,o-l*r,a,o)}function ya(e){this._context=e}ya.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:dl(this,this._t0,Ku(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){var r=NaN;if(e=+e,t=+t,!(e===this._x1&&t===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,dl(this,Ku(this,r=Wu(this,e,t)),r);break;default:dl(this,this._t0,r=Wu(this,e,t));break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t,this._t0=r}}};function Om(e){this._context=new Cm(e)}(Om.prototype=Object.create(ya.prototype)).point=function(e,t){ya.prototype.point.call(this,t,e)};function Cm(e){this._context=e}Cm.prototype={moveTo:function(e,t){this._context.moveTo(t,e)},closePath:function(){this._context.closePath()},lineTo:function(e,t){this._context.lineTo(t,e)},bezierCurveTo:function(e,t,r,n,i,a){this._context.bezierCurveTo(t,e,n,r,a,i)}};function ej(e){return new ya(e)}function tj(e){return new Om(e)}function km(e){this._context=e}km.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var e=this._x,t=this._y,r=e.length;if(r)if(this._line?this._context.lineTo(e[0],t[0]):this._context.moveTo(e[0],t[0]),r===2)this._context.lineTo(e[1],t[1]);else for(var n=qu(e),i=qu(t),a=0,o=1;o<r;++a,++o)this._context.bezierCurveTo(n[0][a],i[0][a],n[1][a],i[1][a],e[o],t[o]);(this._line||this._line!==0&&r===1)&&this._context.closePath(),this._line=1-this._line,this._x=this._y=null},point:function(e,t){this._x.push(+e),this._y.push(+t)}};function qu(e){var t,r=e.length-1,n,i=new Array(r),a=new Array(r),o=new Array(r);for(i[0]=0,a[0]=2,o[0]=e[0]+2*e[1],t=1;t<r-1;++t)i[t]=1,a[t]=4,o[t]=4*e[t]+2*e[t+1];for(i[r-1]=2,a[r-1]=7,o[r-1]=8*e[r-1]+e[r],t=1;t<r;++t)n=i[t]/a[t-1],a[t]-=n,o[t]-=n*o[t-1];for(i[r-1]=o[r-1]/a[r-1],t=r-2;t>=0;--t)i[t]=(o[t]-i[t+1])/a[t];for(a[r-1]=(e[r]+i[r-1])/2,t=0;t<r-1;++t)a[t]=2*e[t+1]-i[t+1];return[i,a]}function rj(e){return new km(e)}function fo(e,t){this._context=e,this._t=t}fo.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=this._y=NaN,this._point=0},lineEnd:function(){0<this._t&&this._t<1&&this._point===2&&this._context.lineTo(this._x,this._y),(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line>=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,t),this._context.lineTo(e,t);else{var r=this._x*(1-this._t)+e*this._t;this._context.lineTo(r,this._y),this._context.lineTo(r,t)}break}}this._x=e,this._y=t}};function nj(e){return new fo(e,.5)}function ij(e){return new fo(e,0)}function aj(e){return new fo(e,1)}function Ur(e,t){if((o=e.length)>1)for(var r=1,n,i,a=e[t[0]],o,l=a.length;r<o;++r)for(i=a,a=e[t[r]],n=0;n<l;++n)a[n][1]+=a[n][0]=isNaN(i[n][1])?i[n][0]:i[n][1]}function Jl(e){for(var t=e.length,r=new Array(t);--t>=0;)r[t]=t;return r}function oj(e,t){return e[t]}function lj(e){const t=[];return t.key=e,t}function sj(){var e=me([]),t=Jl,r=Ur,n=oj;function i(a){var o=Array.from(e.apply(this,arguments),lj),l,s=o.length,c=-1,d;for(const f of a)for(l=0,++c;l<s;++l)(o[l][c]=[0,+n(f,o[l].key,c,a)]).data=f;for(l=0,d=Gs(t(o));l<s;++l)o[d[l]].index=l;return r(o,d),o}return i.keys=function(a){return arguments.length?(e=typeof a=="function"?a:me(Array.from(a)),i):e},i.value=function(a){return arguments.length?(n=typeof a=="function"?a:me(+a),i):n},i.order=function(a){return arguments.length?(t=a==null?Jl:typeof a=="function"?a:me(Array.from(a)),i):t},i.offset=function(a){return arguments.length?(r=a??Ur,i):r},i}function cj(e,t){if((n=e.length)>0){for(var r,n,i=0,a=e[0].length,o;i<a;++i){for(o=r=0;r<n;++r)o+=e[r][i][1]||0;if(o)for(r=0;r<n;++r)e[r][i][1]/=o}Ur(e,t)}}function uj(e,t){if((i=e.length)>0){for(var r=0,n=e[t[0]],i,a=n.length;r<a;++r){for(var o=0,l=0;o<i;++o)l+=e[o][r][1]||0;n[r][1]+=n[r][0]=-l/2}Ur(e,t)}}function dj(e,t){if(!(!((o=e.length)>0)||!((a=(i=e[t[0]]).length)>0))){for(var r=0,n=1,i,a,o;n<a;++n){for(var l=0,s=0,c=0;l<o;++l){for(var d=e[t[l]],f=d[n][1]||0,h=d[n-1][1]||0,v=(f-h)/2,p=0;p<l;++p){var g=e[t[p]],y=g[n][1]||0,b=g[n-1][1]||0;v+=y-b}s+=f,c+=v*f}i[n-1][1]+=i[n-1][0]=r,s&&(r-=c/s)}i[n-1][1]+=i[n-1][0]=r,Ur(e,t)}}function Ql(e){return e==="__proto__"}function Em(e){switch(typeof e){case"number":case"symbol":return!1;case"string":return e.includes(".")||e.includes("[")||e.includes("]")}}function Ys(e){return typeof e=="string"||typeof e=="symbol"?e:Object.is(e?.valueOf?.(),-0)?"-0":String(e)}function Im(e){if(e==null)return"";if(typeof e=="string")return e;if(Array.isArray(e))return e.map(Im).join(",");const t=String(e);return t==="0"&&Object.is(Number(e),-0)?"-0":t}function Xs(e){if(Array.isArray(e))return e.map(Ys);if(typeof e=="symbol")return[e];e=Im(e);const t=[],r=e.length;if(r===0)return t;let n=0,i="",a="",o=!1;for(e.charCodeAt(0)===46&&t.push("");n<r;){const l=e[n];if(a)l==="\\"&&n+1<r?(n++,i+=e[n]):l===a?a="":i+=l;else if(o)l==='"'||l==="'"?a=l:l==="]"?(o=!1,t.push(i),i=""):i+=l;else if(l==="[")o=!0,i&&(t.push(i),i="");else if(l==="."){i&&(t.push(i),i="");const s=e[n+1];(s===void 0||s===".")&&t.push("")}else i+=l;n++}return i&&t.push(i),t}function Qt(e,t,r){if(e==null)return r;switch(typeof t){case"string":{if(Ql(t))return r;const n=e[t];return n===void 0?Em(t)&&!Object.hasOwn(e,t)?Qt(e,Xs(t),r):r:n}case"number":case"symbol":{typeof t=="number"&&(t=Ys(t));const n=e[t];return n===void 0?r:n}default:{if(Array.isArray(t))return fj(e,t,r);if(Object.is(t?.valueOf(),-0)?t="-0":t=String(t),Ql(t))return r;const n=e[t];return n===void 0?r:n}}}function fj(e,t,r){if(t.length===0)return r;let n=e;for(let i=0;i<t.length;i++){if(n==null||Ql(t[i]))return r;n=n[t[i]]}return n===void 0?r:n}var hj=4;function br(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:hj,r=10**t,n=Math.round(e*r)/r;return Object.is(n,-0)?0:n}function Ue(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];return e.reduce((i,a,o)=>{var l=r[o-1];return typeof l=="string"?i+l+a:l!==void 0?i+br(l)+a:i+a},"")}var Qe=e=>e===0?0:e>0?1:-1,Lt=e=>typeof e=="number"&&e!=+e,Fr=e=>typeof e=="string"&&e.length>1&&e.indexOf("%")===e.length-1,K=e=>(typeof e=="number"||e instanceof Number)&&!Lt(e),zt=e=>K(e)||typeof e=="string",vj=0,ii=e=>{var t=++vj;return"".concat(e||"").concat(t)},St=function(t,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(!K(t)&&typeof t!="string")return n;var a;if(Fr(t)){if(r==null)return n;var o=t.indexOf("%");a=r*parseFloat(t.slice(0,o))/100}else a=+t;return Lt(a)&&(a=n),i&&r!=null&&a>r&&(a=r),a},Nm=e=>{if(!Array.isArray(e))return!1;for(var t=e.length,r={},n=0;n<t;n++)if(!r[String(e[n])])r[String(e[n])]=!0;else return!0;return!1};function Ke(e,t,r){return K(e)&&K(t)?br(e+r*(t-e)):t}function mj(e,t,r){if(!(!e||!e.length))return e.find(n=>n&&(typeof t=="function"?t(n):Qt(n,t))===r)}var Ie=e=>e===null||typeof e>"u",gi=e=>Ie(e)?e:"".concat(e.charAt(0).toUpperCase()).concat(e.slice(1));function et(e){return e!=null}function Cn(){}var pj=["type","size","sizeType"];function es(){return es=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},es.apply(null,arguments)}function Hu(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Gu(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Hu(Object(r),!0).forEach(function(n){gj(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Hu(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function gj(e,t,r){return(t=yj(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function yj(e){var t=bj(e,"string");return typeof t=="symbol"?t:t+""}function bj(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function xj(e,t){if(e==null)return{};var r,n,i=wj(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}function wj(e,t){if(e==null)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(t.indexOf(n)!==-1)continue;r[n]=e[n]}return r}var _m={symbolCircle:Vs,symbolCross:Lw,symbolDiamond:Bw,symbolSquare:Uw,symbolStar:qw,symbolTriangle:Hw,symbolWye:Vw},jj=Math.PI/180,Sj=e=>{var t="symbol".concat(gi(e));return _m[t]||Vs},Aj=(e,t,r)=>{if(t==="area")return e;switch(r){case"cross":return 5*e*e/9;case"diamond":return .5*e*e/Math.sqrt(3);case"square":return e*e;case"star":{var n=18*jj;return 1.25*e*e*(Math.tan(n)-Math.tan(n*2)*Math.tan(n)**2)}case"triangle":return Math.sqrt(3)*e*e/4;case"wye":return(21-10*Math.sqrt(3))*e*e/8;default:return Math.PI*e*e/4}},Pj=(e,t)=>{_m["symbol".concat(gi(e))]=t},Tm=e=>{var t=e.type,r=t===void 0?"circle":t,n=e.size,i=n===void 0?64:n,a=e.sizeType,o=a===void 0?"area":a,l=xj(e,pj),s=Gu(Gu({},l),{},{type:r,size:i,sizeType:o}),c="circle";typeof r=="string"&&(c=r);var d=()=>{var g=Sj(c),y=Yw().type(g).size(Aj(i,o,c)),b=y();if(b!==null)return b},f=s.className,h=s.cx,v=s.cy,p=$t(s);return K(h)&&K(v)&&K(i)?m.createElement("path",es({},p,{className:ye("recharts-symbols",f),transform:"translate(".concat(h,", ").concat(v,")"),d:d()})):null};Tm.registerSymbol=Pj;var Mm=e=>"radius"in e&&"startAngle"in e&&"endAngle"in e,Oj=(e,t)=>{if(!e||typeof e=="function"||typeof e=="boolean")return null;var r=e;if(m.isValidElement(e)&&(r=e.props),typeof r!="object"&&typeof r!="function")return null;var n={};return Object.keys(r).forEach(i=>{Ws(i)&&typeof r[i]=="function"&&(n[i]=(a=>r[i](r,a)))}),n},Cj=(e,t,r)=>n=>(e(t,r,n),null),ho=(e,t,r)=>{if(e===null||typeof e!="object"&&typeof e!="function")return null;var n=null;return Object.keys(e).forEach(i=>{var a=e[i];Ws(i)&&typeof a=="function"&&(n||(n={}),n[i]=Cj(a,t,r))}),n};function Vu(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function kj(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Vu(Object(r),!0).forEach(function(n){Ej(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Vu(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function Ej(e,t,r){return(t=Ij(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Ij(e){var t=Nj(e,"string");return typeof t=="symbol"?t:t+""}function Nj(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function rt(e,t){var r=kj({},e),n=t,i=Object.keys(t),a=i.reduce((o,l)=>(o[l]===void 0&&n[l]!==void 0&&(o[l]=n[l]),o),r);return a}function ba(){return ba=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},ba.apply(null,arguments)}function Yu(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Dm(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Yu(Object(r),!0).forEach(function(n){_j(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Yu(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function _j(e,t,r){return(t=Tj(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Tj(e){var t=Mj(e,"string");return typeof t=="symbol"?t:t+""}function Mj(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var vt=32,Dj={align:"center",iconSize:14,inactiveColor:"#ccc",layout:"horizontal",verticalAlign:"middle",labelStyle:{}};function $j(e){if(typeof e=="object"&&e!==null&&"strokeDasharray"in e)return String(e.strokeDasharray)}function Rj(e){var t=e.data,r=e.iconType,n=e.inactiveColor,i=vt/2,a=vt/6,o=vt/3,l=t.inactive?n:t.color,s=r??t.type;if(s==="none")return null;if(s==="plainline")return m.createElement("line",{strokeWidth:4,fill:"none",stroke:l,strokeDasharray:$j(t.payload),x1:0,y1:i,x2:vt,y2:i,className:"recharts-legend-icon"});if(s==="line")return m.createElement("path",{strokeWidth:4,fill:"none",stroke:l,d:"M0,".concat(i,"h").concat(o,`
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{j as t,bs as H,X as R,r as o,bt as le,bu as K,a as re,T as de,M as X,V as T,m as ce,aQ as k,bv as E,u as me,bw as ue,bx as ge,by as he,k as fe,bz as xe,bA as ve}from"./index-
|
|
1
|
+
import{j as t,bs as H,X as R,r as o,bt as le,bu as K,a as re,T as de,M as X,V as T,m as ce,aQ as k,bv as E,u as me,bw as ue,bx as ge,by as he,k as fe,bz as xe,bA as ve}from"./index-Md3sZKuq.js";/* empty css */import{R as N}from"./refresh-cw-CLWf9Yye.js";import{R as L}from"./reply-ChwFJtCP.js";import{r as ye}from"./index-5GiqJrAI.js";function be(e,l){const s=new Set(Array.from(e.matchAll(/(?:^|\s)@([a-zA-Z0-9_-]+)/g),n=>(n[1]??"").toLowerCase()));return l.filter(n=>{const d=n.handle?.toLowerCase(),r=n.name.toLowerCase().replace(/[^a-z0-9_-]+/g,"-");return d&&s.has(d)||s.has(r)}).map(n=>n.userId)}function Ce(e){return t.jsxs("div",{className:"team-chat-composer-reply",role:"status",children:[t.jsx(L,{size:15,"aria-hidden":"true"}),t.jsxs("button",{type:"button",className:"team-chat-composer-reply-target","aria-label":`Jump to message from ${e.authorLabel}`,onClick:e.onJump,children:[t.jsxs("strong",{children:["Replying to ",e.authorLabel]}),t.jsx("span",{children:H(e.target)})]}),t.jsx("button",{type:"button",className:"team-chat-icon-button","aria-label":"Cancel reply","data-tooltip":"Cancel reply",onClick:e.onCancel,children:t.jsx(R,{size:14})})]})}function je(e){return t.jsxs("button",{type:"button",className:"team-chat-message-reply-quote","aria-label":`Jump to replied message from ${e.authorLabel}`,onClick:e.onJump,children:[t.jsx("strong",{children:e.authorLabel}),t.jsx("span",{children:H(e.target)})]})}function we(e){const l=o.useRef(null);if(o.useEffect(()=>{if(!e.menu)return;l.current?.focus();const n=()=>e.onClose(),d=r=>{r.key==="Escape"&&n()};return window.addEventListener("click",n),window.addEventListener("blur",n),window.addEventListener("keydown",d),window.addEventListener("scroll",n,!0),()=>{window.removeEventListener("click",n),window.removeEventListener("blur",n),window.removeEventListener("keydown",d),window.removeEventListener("scroll",n,!0)}},[e.menu,e.onClose]),!e.menu||typeof document>"u")return null;const s=t.jsx("div",{className:"team-chat-message-context-menu",role:"menu","aria-label":"Message actions",style:{left:e.menu.x,top:e.menu.y},onClick:n=>n.stopPropagation(),children:t.jsxs("button",{ref:l,type:"button",role:"menuitem",onClick:()=>{e.onReply(e.menu.message),e.onClose()},children:[t.jsx(L,{size:14}),"Reply"]})});return ye.createPortal(s,document.body)}function Te(e){const d=e.clientX||e.fallbackX,r=e.clientY||e.fallbackY;return{x:Math.max(8,Math.min(d,e.viewportWidth-150-8)),y:Math.max(8,Math.min(r,e.viewportHeight-42-8))}}function Y(e){return`team-chat-message-${encodeURIComponent(e)}`}function Me(e){const[l,s]=o.useState(!1),[n,d]=o.useState(e.message.body),r=e.message.refs.find(a=>a.refType==="hosted_ai_thread"),m=e.message.refs.find(a=>a.refType==="agent_run"),v=typeof r?.preview.status=="string"?r.preview.status:null,h=typeof e.message.metadata.deliveryStatus=="string"?e.message.metadata.deliveryStatus:null,y=typeof e.message.metadata.uploadProgress=="string"?e.message.metadata.uploadProgress:null,c=!e.message.deletedAt&&!h,g=le(e.message,e.messagesById),C=g?K(g,e.membersById):null;return t.jsxs("article",{id:Y(e.message.id),className:`team-chat-message${e.own?" own":""}`,tabIndex:-1,onContextMenu:a=>{if(!c)return;a.preventDefault();const b=a.currentTarget.getBoundingClientRect();e.onOpenReplyMenu(e.message,{clientX:a.clientX,clientY:a.clientY,fallbackX:b.right-12,fallbackY:b.top+24})},children:[t.jsx(Pe,{member:e.author}),t.jsxs("div",{className:"team-chat-message-content",children:[t.jsxs("header",{children:[t.jsx("strong",{children:e.author?.name??"Team member"}),t.jsx("time",{children:Ie(e.message.createdAt)}),e.message.editedAt?t.jsx("span",{children:"edited"}):null,h==="sending"?t.jsx("span",{children:"sending"}):null,h==="sending"&&y?t.jsxs("span",{children:["uploaded ",y]}):null,h==="failed"?t.jsx("span",{className:"failed",children:"not sent"}):null,h==="failed"?t.jsxs("div",{className:"team-chat-message-actions visible",children:[t.jsx("button",{type:"button","data-tooltip":"Retry message","aria-label":"Retry message",onClick:()=>{e.onRetry(e.message)},children:t.jsx(N,{size:13})}),t.jsx("button",{type:"button","data-tooltip":"Remove failed message","aria-label":"Remove failed message",onClick:()=>e.onDismissFailed(e.message),children:t.jsx(R,{size:13})})]}):c||e.own&&!e.message.deletedAt?t.jsxs("div",{className:"team-chat-message-actions",children:[c?t.jsx("button",{type:"button","data-tooltip":"Reply","aria-label":"Reply to message",onClick:()=>e.onReply(e.message),children:t.jsx(L,{size:13})}):null,e.own&&!r?t.jsx("button",{type:"button","data-tooltip":"Edit message","aria-label":"Edit message",onClick:()=>s(!0),children:t.jsx(re,{size:13})}):null,e.own?t.jsx("button",{type:"button","data-tooltip":"Delete message","aria-label":"Delete message",onClick:()=>{e.onDelete(e.message)},children:t.jsx(de,{size:13})}):null]}):null]}),g&&C?t.jsx(je,{authorLabel:C,target:g,onJump:()=>e.onJumpToMessage(g.id)}):null,l?t.jsxs("form",{className:"team-chat-message-edit",onSubmit:a=>{a.preventDefault(),e.onEdit(e.message,n).then(b=>{b&&s(!1)})},children:[t.jsx("textarea",{autoFocus:!0,value:n,onChange:a=>d(a.currentTarget.value),onKeyDown:a=>{a.key==="Escape"&&(a.preventDefault(),s(!1),d(e.message.body))}}),t.jsxs("div",{children:[t.jsx("button",{type:"button",onClick:()=>s(!1),children:"Cancel"}),t.jsx("button",{type:"submit",disabled:!n.trim(),children:"Save"})]})]}):t.jsx("div",{className:e.message.deletedAt?"deleted":"",children:e.message.deletedAt?"Message deleted":e.message.body}),!e.message.deletedAt&&e.message.attachments.length>0?t.jsx(Re,{message:e.message,connection:e.connection}):null,r?t.jsxs("button",{type:"button",className:"team-chat-thread-link",onClick:()=>{e.onOpenAiThread(r.refId)},children:[t.jsx(X,{size:14}),t.jsx("span",{children:"Thread"}),v&&v!=="completed"?t.jsx("small",{children:J(v)}):null,t.jsx("span",{"aria-hidden":"true",children:"›"})]}):null,m?t.jsxs("button",{type:"button",className:"team-chat-thread-link",onClick:()=>{e.onOpenAgentConversation(m.refId)},children:[t.jsx(T,{size:14}),t.jsx("span",{children:"Agent run"}),t.jsx("small",{children:J(String(m.preview.status??"queued"))}),t.jsx("span",{"aria-hidden":"true",children:"›"})]}):null]})]})}function Re(e){const l=new Map(Array.isArray(e.message.metadata.localAttachmentPreviews)?e.message.metadata.localAttachmentPreviews.flatMap(s=>{if(!s||typeof s!="object")return[];const n=s;return typeof n.id=="string"&&typeof n.url=="string"?[[n.id,n.url]]:[]}):[]);return t.jsx("div",{className:"team-chat-message-images",children:e.message.attachments.map(s=>t.jsx(Ae,{attachmentId:s.id,alt:s.name,teamId:e.message.teamId,connection:e.connection,localUrl:l.get(s.clientAttachmentId)??null},s.id))})}function Ae(e){const[l,s]=o.useState(e.localUrl),[n,d]=o.useState(!1),r=o.useRef(0);async function m(){if(!e.connection||e.localUrl){e.localUrl||d(!0);return}d(!1);try{const v=await ce.teamChatAttachmentDownload(e.connection,e.teamId,e.attachmentId);s(v.url)}catch{s(null),d(!0)}}return o.useEffect(()=>{s(e.localUrl),d(!1),r.current=0,e.localUrl||m()},[e.attachmentId,e.connection,e.localUrl,e.teamId]),l?t.jsx("a",{href:l,target:"_blank",rel:"noreferrer","aria-label":`Open ${e.alt}`,children:t.jsx("img",{src:l,alt:e.alt,loading:"lazy",onError:()=>{if(!e.localUrl&&r.current<1){r.current+=1,m();return}s(null),d(!0)}})}):n?t.jsx("button",{type:"button",className:"team-chat-message-image-retry","aria-label":`Retry ${e.alt}`,"data-tooltip":"Retry image",onClick:()=>{r.current=0,e.localUrl?(d(!1),s(e.localUrl)):m()},children:t.jsx(N,{size:18})}):t.jsx("div",{className:"team-chat-message-image-loading",role:"status","aria-label":`Loading ${e.alt}`})}function J(e){return e==="pending"?"Starting":e==="running"?"Responding":e==="failed"?"Failed":e==="interrupted"?"Interrupted":e==="cancelled"?"Cancelled":e}function Pe({member:e}){if(e?.image)return t.jsx("img",{className:"team-chat-avatar",src:e.image,alt:""});const l=(e?.name??"T").split(/\s+/).slice(0,2).map(s=>s[0]?.toUpperCase()??"").join("");return t.jsx("span",{className:"team-chat-avatar fallback",children:l})}function Ie(e){const l=new Date(e);return Number.isFinite(l.getTime())?l.toLocaleTimeString([],{hour:"numeric",minute:"2-digit"}):""}const U={value:"none",label:"No project",detail:"Team conversation",options:[],busy:!1},z={value:"local",label:"Local",detail:"Local execution",options:[],action:{value:"local",label:"Local",detail:"Local execution",disabled:!1},busy:!1},G=new Set(["codex","openai","xai","openrouter","deepseek","zai","moonshot","together","groq","fireworks","custom-openai-compatible"]);function Se(e,l){return!l||e===l?e:e?`${l}
|
|
2
2
|
|
|
3
3
|
${e}`:l}function ze(e){const[l,s]=o.useState(""),[n,d]=o.useState(!1),[r,m]=o.useState(null),[v,h]=o.useState(null),[y,c]=o.useState(0),g=o.useRef(null),C=o.useRef(!0),a=o.useRef(e.detail?.thread.id??null);a.current=e.detail?.thread.id??null;const{confirmAction:b,confirmDialog:V,resolveConfirmDialog:Q}=me(),A=o.useMemo(()=>new Map(e.members.map(i=>[i.userId,i])),[e.members]),D=o.useMemo(()=>new Map((e.detail?.messages??[]).map(i=>[i.id,i])),[e.detail?.messages]),Z=e.detail?.thread.id??null,O=r?.threadId===Z?D.get(r.message.id)??r.message:null,M=O?.deletedAt?null:O,j=M?ue(M):null,q=j?K(j,A):null,p=e.detail?ge(e.detail.thread,e.currentUserId):"Team",P=G.has(e.provider)?e.provider:"codex",$=P===e.provider?e.model:"gpt-5.6-sol",ee=o.useMemo(()=>he({hostedActions:e.agents,profile:e.profile,teamId:e.teamId}),[e.agents,e.profile,e.teamId]),te=e.detail?.messages.at(-1)?.sequence??0;o.useEffect(()=>{if(!C.current)return;const i=g.current;i&&(i.scrollTop=i.scrollHeight)},[te,e.detail?.thread.id]);const B=o.useCallback(i=>{i.deletedAt||i.id.startsWith("pending:")||typeof i.metadata.deliveryStatus=="string"||(m({threadId:i.threadId,message:i}),d(!1),h(null),c(f=>f+1))},[]),ne=o.useCallback(()=>h(null),[]),ae=o.useCallback((i,f)=>{const x=Te({...f,viewportWidth:window.innerWidth,viewportHeight:window.innerHeight});h({message:i,...x})},[]),F=o.useCallback(i=>{const f=document.getElementById(Y(i));f&&(f.scrollIntoView({behavior:"smooth",block:"center"}),f.focus({preventScroll:!0}))},[]);async function se(i=[],f=null){if(i.some(u=>u.kind!=="image"||!["image/png","image/jpeg","image/webp","image/gif"].includes(u.mediaType)))return e.showToast("Team chat supports PNG, JPEG, WebP, and GIF images.","error"),!1;let x=f;if(M&&x)return e.showToast("Remove the agent action before replying to a message.","error"),!1;if(xe(x)){const u=ve(x);if(!u)throw new Error("The selected profile agent is missing its profile id.");if(!await b({title:`Publish ${x.label??x.name??"agent"} to Team?`,body:`This will upload the committed agent source to ${e.teamName??"this Team"}, create its hosted runtime, and then send your message.`,confirmLabel:"Publish and send",tone:"default"}))return!1;x=await e.onPublishProfileAgent(u)}const I=x?.approvalPolicy?.risk;let W=null;if(x?.approvalPolicy?.required&&I&&I!=="read"){const u=I==="destructive";if(!await b({title:u?"Approve destructive action?":"Approve external write?",body:`${x.label??x.name??"This agent action"} will use the workspace connection to ${u?"perform a destructive operation":"write external data"}. Approve this run only?`,confirmLabel:u?"Approve destructive action":"Approve write",tone:u?"danger":"default"}))return!1;W=crypto.randomUUID()}const S=l,oe=e.detail?.thread.id??null,w=M,_=()=>{a.current===oe&&(s(u=>Se(u,S)),w&&m(u=>u??{threadId:w.threadId,message:w}))};s(""),w&&m(null);try{const u=await e.onSendMessage({body:S,useModel:n,providerId:P,modelId:$,mentionUserIds:be(S,e.members),attachments:i,replyToMessage:w,selectedActionKey:x?.id??null,approvalId:W});return u?n&&d(!1):_(),u}catch(u){throw _(),u}}return t.jsxs("section",{className:"team-chat-view",children:[t.jsxs("div",{className:"team-chat-main conversation-surface-main",children:[e.error?t.jsxs("div",{className:"team-chat-error",role:"alert",children:[t.jsx("span",{children:e.error}),t.jsxs("button",{type:"button",onClick:()=>{e.onRetryLoad()},children:[t.jsx(N,{size:14}),"Retry"]})]}):null,t.jsxs("div",{className:"team-chat-messages conversation-message-scroll",role:"log","aria-live":"polite","aria-relevant":"additions text","aria-busy":e.loading,"aria-label":p,tabIndex:0,ref:g,onScroll:i=>{const f=i.currentTarget;C.current=f.scrollHeight-f.scrollTop-f.clientHeight<72},children:[e.detail?.hasMoreBefore?t.jsx("button",{type:"button",className:"team-chat-load-older",disabled:e.loading,onClick:()=>{e.onLoadMoreMessages()},children:e.loading?"Loading...":"Load older messages"}):null,e.loading&&!e.detail?t.jsx("div",{className:"team-chat-empty",children:"Loading messages..."}):e.detail?.messages.length?e.detail.messages.map(i=>t.jsx(Me,{message:i,author:i.authorUserId?A.get(i.authorUserId)??null:null,own:i.authorUserId===e.currentUserId,onOpenAiThread:e.onOpenAiThread,onOpenAgentConversation:e.onOpenAgentConversation,onEdit:e.onEditMessage,onDelete:e.onDeleteMessage,onRetry:e.onRetryMessage,onDismissFailed:e.onDismissFailedMessage,membersById:A,messagesById:D,onReply:B,onOpenReplyMenu:ae,onJumpToMessage:F,connection:e.connection},i.id)):t.jsx("div",{className:"team-chat-empty",children:"No messages yet"})]}),t.jsxs("div",{className:"team-chat-composer-shell conversation-composer-shell",children:[j&&q?t.jsx(Ce,{authorLabel:q,target:j,onCancel:()=>m(null),onJump:()=>F(j.id)}):null,t.jsx(E,{mode:"dock",surface:"team",teamUseModel:n,teamUseModelLocked:!!j,teamMentionMembers:e.members.filter(i=>i.userId!==e.currentUserId),actionCatalog:ee,onTeamUseModelChange:d,prompt:l,contextWindowStatus:e.contextWindowStatus,busy:e.busy,running:!1,focusRequestId:y,submissionScopeKey:`team:${e.detail?.thread.id??"none"}`,showProjectFooter:!1,connection:e.connection,providerSettings:e.providerSettings,provider:P,model:$,projectTarget:U,workspaceTarget:z,codexPermissionMode:e.codexPermissionMode,codexReasoningEffort:e.codexReasoningEffort,openPondCommandAccessMode:e.openPondCommandAccessMode,onProviderChange:e.onProviderChange,onProviderSetupOpen:e.onOpenProviderSettings,onProjectTargetChange:()=>{},onWorkspaceTargetChange:()=>{},onModelChange:e.onModelChange,onCodexPermissionModeChange:e.onCodexPermissionModeChange,onCodexReasoningEffortChange:e.onCodexReasoningEffortChange,onOpenPondCommandAccessModeChange:e.onOpenPondCommandAccessModeChange,onPromptChange:s,showToast:e.showToast,onSubmit:async(i,f)=>se(i??[],f??null),onStop:()=>!1})]})]}),t.jsx(we,{menu:v,onClose:ne,onReply:B}),t.jsx(fe,{state:V,onResolve:Q})]})}function De(e){const[l,s]=o.useState(""),n=e.agentConversation,d=o.useRef(null),r=o.useRef(null),m=o.useRef(null),v=n.messages.at(-1)?.sequence??0,h=["pending","queued","running"].includes(n.run.status);o.useEffect(()=>{const c=d.current;c&&(c.scrollTop=c.scrollHeight)},[v,n.run.status]),o.useEffect(()=>{r.current?.focus();const c=g=>{g.key==="Escape"&&(g.preventDefault(),e.onCloseAgentConversation())};return window.addEventListener("keydown",c),()=>window.removeEventListener("keydown",c)},[e.onCloseAgentConversation]);async function y(){const c=m.current??crypto.randomUUID();m.current=c;const g=await e.onSendAgentTurn({body:l,clientRequestId:c});return g&&(m.current=null,s("")),g}return t.jsxs("aside",{className:"workspace-diff-panel team-ai-thread-panel","aria-label":`${n.agent.name} run`,children:[e.onResizeStart?t.jsx("div",{className:"workspace-diff-resize-handle",role:"separator","aria-orientation":"vertical","aria-label":"Resize agent run panel",onPointerDown:e.onResizeStart}):null,t.jsxs("header",{children:[t.jsxs("div",{children:[t.jsx(T,{size:15}),t.jsx("strong",{children:n.agent.name}),t.jsx("span",{children:n.run.status})]}),t.jsx("button",{ref:r,type:"button",className:"team-chat-icon-button","aria-label":"Close agent run",onClick:e.onCloseAgentConversation,children:t.jsx(R,{size:16})})]}),t.jsxs("div",{className:"team-ai-thread-messages",ref:d,role:"log","aria-live":"polite","aria-relevant":"additions text",tabIndex:0,children:[n.messages.map(c=>t.jsxs("article",{className:`team-ai-message ${c.role}`,children:[t.jsxs("div",{className:"team-ai-message-author",children:[c.role==="assistant"?t.jsx(T,{size:14}):null,t.jsx("strong",{children:c.role==="user"?"Team member":n.agent.name})]}),t.jsx(k,{connection:e.connection,content:c.body})]},c.id)),n.messages.length===0?t.jsx("div",{className:"team-chat-empty",children:"The agent run is starting."}):null]}),t.jsx("div",{className:"team-ai-thread-composer",children:t.jsx(E,{mode:"dock",surface:"team",teamUseModel:!1,teamUseModelLocked:!0,prompt:l,contextWindowStatus:e.contextWindowStatus,busy:e.busy||h,running:h,submissionScopeKey:`team-agent:${n.conversationId}`,showProjectFooter:!1,connection:e.connection,providerSettings:e.providerSettings,provider:e.provider,model:e.model,projectTarget:U,workspaceTarget:z,codexPermissionMode:e.codexPermissionMode,codexReasoningEffort:e.codexReasoningEffort,openPondCommandAccessMode:e.openPondCommandAccessMode,onProviderChange:e.onProviderChange,onProviderSetupOpen:e.onOpenProviderSettings,onProjectTargetChange:()=>{},onWorkspaceTargetChange:()=>{},onModelChange:e.onModelChange,onCodexPermissionModeChange:e.onCodexPermissionModeChange,onCodexReasoningEffortChange:e.onCodexReasoningEffortChange,onOpenPondCommandAccessModeChange:e.onOpenPondCommandAccessModeChange,onPromptChange:c=>{m.current=null,s(c)},showToast:e.showToast,onSubmit:y,onStop:()=>!1})})]})}function Oe(e){const[l,s]=o.useState(""),n=e.aiThread,d=new Map(e.members.map(a=>[a.userId,a])),r=n.turns.at(-1)??null,m=o.useRef(null),v=n.messages.at(-1)?.sequence??0,h=o.useRef(null),y=G.has(e.provider)?e.provider:"codex",c=y===e.provider?e.model:"gpt-5.6-sol",g=!!(n.activeTurn&&(n.activeTurn.status==="pending"||n.activeTurn.status==="running"));o.useEffect(()=>{const a=m.current;a&&(a.scrollTop=a.scrollHeight)},[v,n.activeTurn?.partialBody]),o.useEffect(()=>{h.current?.focus();const a=b=>{b.key==="Escape"&&(b.preventDefault(),e.onCloseAiThread())};return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a)},[e.onCloseAiThread]);async function C(){const a=await e.onSendAiTurn({body:l,providerId:y,modelId:c});return a&&s(""),a}return t.jsxs("aside",{className:"workspace-diff-panel team-ai-thread-panel","aria-label":"AI thread",children:[e.onResizeStart?t.jsx("div",{className:"workspace-diff-resize-handle",role:"separator","aria-label":"Resize AI thread panel","aria-orientation":"vertical",onPointerDown:e.onResizeStart}):null,t.jsxs("header",{children:[t.jsxs("div",{children:[t.jsx(X,{size:15}),t.jsx("strong",{children:"AI thread"}),t.jsxs("span",{children:[n.messages.length," messages"]})]}),t.jsx("button",{ref:h,type:"button",className:"team-chat-icon-button","data-tooltip":"Close thread","aria-label":"Close thread",onClick:e.onCloseAiThread,children:t.jsx(R,{size:16})})]}),t.jsxs("div",{className:"team-ai-thread-messages",ref:m,role:"log","aria-live":"polite","aria-relevant":"additions text",tabIndex:0,children:[n.messages.map(a=>t.jsxs("article",{className:`team-ai-message ${a.role}`,children:[t.jsxs("div",{className:"team-ai-message-author",children:[a.role==="assistant"?t.jsx(T,{size:14}):null,t.jsx("strong",{children:a.role==="assistant"?"Model":a.createdByUserId?d.get(a.createdByUserId)?.name??"Team member":"Team member"})]}),t.jsx(k,{connection:e.connection,content:a.body})]},a.id)),n.activeTurn?.partialBody?t.jsxs("article",{className:"team-ai-message assistant streaming",children:[t.jsxs("div",{className:"team-ai-message-author",children:[t.jsx(T,{size:14}),t.jsx("strong",{children:"Model"}),t.jsx("span",{children:n.activeTurn.status})]}),t.jsx(k,{connection:e.connection,content:n.activeTurn.partialBody})]}):n.activeTurn?t.jsx("div",{className:"team-ai-running",children:n.activeTurn.status==="pending"?"Starting model...":"Model is responding..."}):r&&["failed","interrupted","cancelled"].includes(r.status)?t.jsx("div",{className:`team-ai-turn-state ${r.status}`,children:r.status==="failed"?"Model response failed":r.status==="interrupted"?"Model response was interrupted":"Model response was cancelled"}):null]}),t.jsx("div",{className:"team-ai-thread-composer",children:t.jsx(E,{mode:"dock",surface:"team",teamUseModel:!0,teamUseModelLocked:!0,prompt:l,contextWindowStatus:e.contextWindowStatus,busy:g,running:g,submissionScopeKey:`team-ai:${n.conversationId}`,showProjectFooter:!1,connection:e.connection,providerSettings:e.providerSettings,provider:y,model:c,projectTarget:U,workspaceTarget:z,codexPermissionMode:e.codexPermissionMode,codexReasoningEffort:e.codexReasoningEffort,openPondCommandAccessMode:e.openPondCommandAccessMode,onProviderChange:e.onProviderChange,onProviderSetupOpen:e.onOpenProviderSettings,onProjectTargetChange:()=>{},onWorkspaceTargetChange:()=>{},onModelChange:e.onModelChange,onCodexPermissionModeChange:e.onCodexPermissionModeChange,onCodexReasoningEffortChange:e.onCodexReasoningEffortChange,onOpenPondCommandAccessModeChange:e.onOpenPondCommandAccessModeChange,onPromptChange:s,showToast:e.showToast,onSubmit:C,onStop:e.onStopAiTurn})})]})}export{De as TeamAgentConversationPanel,Oe as TeamAiThreadPanel,ze as TeamChatView,Se as restoreFailedTeamChatPrompt};
|