openpond 0.2.51 → 0.2.53

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (142) hide show
  1. package/dist/app-server.d.ts +1 -0
  2. package/dist/app-server.js +1 -1
  3. package/dist/chunks/{app-layer-RRFI27N4.js → app-layer-I7MZYVLL.js} +1 -1
  4. package/dist/chunks/{app-server-runtime-4YKIZB22.js → app-server-runtime-KZP2LB5X.js} +1 -1
  5. package/dist/chunks/{apps-NELJL377.js → apps-TM74FFQB.js} +1 -1
  6. package/dist/chunks/{chunk-OC6UWKBL.js → chunk-3LX6RU3C.js} +2 -2
  7. package/dist/chunks/{chunk-7YR6CBNU.js → chunk-4SHKI3BH.js} +1 -1
  8. package/dist/chunks/{chunk-7MXZJQS7.js → chunk-4TZHH5FC.js} +1 -1
  9. package/dist/chunks/{chunk-ZCWHVLJ4.js → chunk-5TNDPNS3.js} +1 -1
  10. package/dist/chunks/{chunk-42GOV5ZU.js → chunk-6JAN4RMN.js} +1 -1
  11. package/dist/chunks/{chunk-OE2VF6KU.js → chunk-6VF3Q6QJ.js} +1 -1
  12. package/dist/chunks/chunk-7ZG3IT7C.js +9 -0
  13. package/dist/chunks/{chunk-EPY7M5XS.js → chunk-AFUDIT36.js} +1 -1
  14. package/dist/chunks/{chunk-Q4H3NUVW.js → chunk-AH22RHPS.js} +2 -2
  15. package/dist/chunks/{chunk-DLZP22WV.js → chunk-FPUUZQUP.js} +1 -1
  16. package/dist/chunks/{chunk-O7VGFMDO.js → chunk-GCOUYYHG.js} +1 -1
  17. package/dist/chunks/{chunk-MASJQWA2.js → chunk-GXSTZBM6.js} +1 -1
  18. package/dist/chunks/{chunk-IOQUF34U.js → chunk-H2VT22JK.js} +1 -1
  19. package/dist/chunks/{chunk-TBNBCOW7.js → chunk-NHFGEVVH.js} +1 -1
  20. package/dist/chunks/{chunk-JCCU3VFK.js → chunk-PQHTZ5CP.js} +1 -1
  21. package/dist/chunks/{chunk-QJRXTIOC.js → chunk-USKE34VR.js} +1 -1
  22. package/dist/chunks/{chunk-2ZJJFBIA.js → chunk-USMZT5FZ.js} +12 -12
  23. package/dist/chunks/{chunk-KXEG7HCG.js → chunk-XGE2XI6M.js} +115 -114
  24. package/dist/chunks/{chunk-UBFRWC6I.js → chunk-YD55Z5H3.js} +1 -1
  25. package/dist/chunks/{chunk-RLZPX4YP.js → chunk-YJ4PNAST.js} +1 -1
  26. package/dist/chunks/{cli-ZLDLOKPL.js → cli-JVB345H2.js} +1 -1
  27. package/dist/chunks/{configuration-command-SA56RV5B.js → configuration-command-MATM4XR5.js} +1 -1
  28. package/dist/chunks/{connected-evidence-IVSQZYIB.js → connected-evidence-YDPGNHLP.js} +1 -1
  29. package/dist/chunks/{core-commands-W5IGIITV.js → core-commands-MTV4EKXY.js} +1 -1
  30. package/dist/chunks/{datasets-KSO2UG6R.js → datasets-CP3IT47T.js} +1 -1
  31. package/dist/chunks/{desktop-test-6HXFM7PO.js → desktop-test-IAZC5MAH.js} +1 -1
  32. package/dist/chunks/{dist-BLBZENVB.js → dist-SAABJU5F.js} +1 -1
  33. package/dist/chunks/{evaluation-coordination-MOFBXRXN.js → evaluation-coordination-EPHLZXYM.js} +1 -1
  34. package/dist/chunks/{experiment-improvements-TDHM6NEA.js → experiment-improvements-6JTOPA74.js} +1 -1
  35. package/dist/chunks/{experiments-HFPDFD4I.js → experiments-XHPFGECH.js} +1 -1
  36. package/dist/chunks/{extension-R373LYIB.js → extension-GX7DLW2X.js} +1 -1
  37. package/dist/chunks/{help-PEFQDDTA.js → help-WLKSACLZ.js} +1 -1
  38. package/dist/chunks/{hosted-experiment-improvement-NTYYSPQX.js → hosted-experiment-improvement-HAB3UE6A.js} +1 -1
  39. package/dist/chunks/{hosted-harness-runtime-FZZLWLBR.js → hosted-harness-runtime-YM23QNDK.js} +1 -1
  40. package/dist/chunks/{hosted-profile-candidate-LVNKOTKJ.js → hosted-profile-candidate-EOBGKQAS.js} +1 -1
  41. package/dist/chunks/{hosted-profile-compiler-JODGZCA7.js → hosted-profile-compiler-OZAOZ2ES.js} +1 -1
  42. package/dist/chunks/{hosted-profile-evaluation-control-7B3RAZU2.js → hosted-profile-evaluation-control-RJ6XJZCS.js} +1 -1
  43. package/dist/chunks/{hosted-profile-evaluation-inspection-FPCV42DD.js → hosted-profile-evaluation-inspection-SJIDXPHI.js} +1 -1
  44. package/dist/chunks/{hosted-profile-evaluation-preparation-F2SPAEKK.js → hosted-profile-evaluation-preparation-26EI5LJR.js} +1 -1
  45. package/dist/chunks/{human-review-HRGGACEM.js → human-review-AAVMISBF.js} +1 -1
  46. package/dist/chunks/{import-RSAQ44GG.js → import-V3HUGRHR.js} +1 -1
  47. package/dist/chunks/{opchat-I7ZWJ5XK.js → opchat-QK43DXTY.js} +1 -1
  48. package/dist/chunks/{organizations-LFCZIH7E.js → organizations-SRPAWKC7.js} +1 -1
  49. package/dist/chunks/{profile-EPIX5QVK.js → profile-C6CQNVYE.js} +1 -1
  50. package/dist/chunks/{project-agent-DGOPMECP.js → project-agent-GZV5HNYI.js} +1 -1
  51. package/dist/chunks/{sandbox-command-Q5F6VUOS.js → sandbox-command-4TJXQTKT.js} +1 -1
  52. package/dist/chunks/{sandbox-template-7GICPIKJ.js → sandbox-template-BBGGPJMI.js} +1 -1
  53. package/dist/chunks/{src-DH5AQ4Z7.js → src-CR6UZYTX.js} +1 -1
  54. package/dist/chunks/src-P3VYLFLI.js +329 -0
  55. package/dist/chunks/{teams-bot-Z6RJGHME.js → teams-bot-7I4BAUVO.js} +1 -1
  56. package/dist/chunks/{workspaces-XIQNPAP7.js → workspaces-MFZ3OO6O.js} +1 -1
  57. package/dist/cli.js +1 -1
  58. package/dist/web/assets/App-CO2F717V.css +1 -0
  59. package/dist/web/assets/App-CuhaCsfb.js +235 -0
  60. package/dist/web/assets/{AppDialog-1iGodoot.js → AppDialog-BdusXgU0.js} +1 -1
  61. package/dist/web/assets/{AppTerminalPanel-udtBdWFn.js → AppTerminalPanel-C4uRpnBz.js} +2 -2
  62. package/dist/web/assets/{AppsView-DhKsU4yi.js → AppsView-BS1czXUP.js} +1 -1
  63. package/dist/web/assets/{BrowserSidebar-BnOyqIQT.js → BrowserSidebar-Bl7V6YO2.js} +1 -1
  64. package/dist/web/assets/{CartesianChart-C24DAywn.js → CartesianChart-BstFbsdn.js} +1 -1
  65. package/dist/web/assets/{CollaborationTabs-DgmOF5Fe.js → CollaborationTabs-B8YAf0c1.js} +1 -1
  66. package/dist/web/assets/{CommandMenu-CUNGtHwS.js → CommandMenu-DZct7zUJ.js} +1 -1
  67. package/dist/web/assets/{CommunityView-CE7qeJnr.js → CommunityView-CR0-W-uG.js} +1 -1
  68. package/dist/web/assets/{ComposerCreateImproveStrip-BixNsg2a.js → ComposerCreateImproveStrip-DR-Qo7b4.js} +1 -1
  69. package/dist/web/assets/{GetStartedView-B8gCwmBX.js → GetStartedView-xqQoMMei.js} +1 -1
  70. package/dist/web/assets/HostedModelLearningReview-CHxxf_Lu.js +1 -0
  71. package/dist/web/assets/{HostedModelLearningSettings-WUaqzNsa.js → HostedModelLearningSettings-De3i9wF4.js} +1 -1
  72. package/dist/web/assets/{LabModelVersionDetailPage-Cx0kL69J.js → LabModelVersionDetailPage-DAY1MmqP.js} +1 -1
  73. package/dist/web/assets/{LabSkillSidebar-DRggqZ1j.js → LabSkillSidebar-DLnIgnry.js} +1 -1
  74. package/dist/web/assets/{LabsRoute-BujTZhqC.js → LabsRoute-CXJRJMhr.js} +4 -4
  75. package/dist/web/assets/{MainChatThread-CyA_644R.js → MainChatThread-BwAla81W.js} +2 -2
  76. package/dist/web/assets/MainPane-CakOBCHw.js +19 -0
  77. package/dist/web/assets/{MarkdownText-DJI5LwT0.js → MarkdownText-gJMuefaJ.js} +21 -21
  78. package/dist/web/assets/{NativeSkillSidebar-CkFpWxjd.js → NativeSkillSidebar-Dlxb8iOC.js} +1 -1
  79. package/dist/web/assets/{NewExperienceSwitcher-DXcRHHsu.js → NewExperienceSwitcher-DM-cqJ-K.js} +1 -1
  80. package/dist/web/assets/{NewProjectDialog-gDzX_ZIJ.js → NewProjectDialog-Cu1q75gq.js} +1 -1
  81. package/dist/web/assets/{OutputsPage-J_k-_N82.js → OutputsPage-DiXMkasl.js} +1 -1
  82. package/dist/web/assets/{ProjectsPage-BsyZmvlg.js → ProjectsPage-DqiBHiCB.js} +1 -1
  83. package/dist/web/assets/{RightChatPanelStack-Bz8puMUB.js → RightChatPanelStack-VaOOmxwd.js} +1 -1
  84. package/dist/web/assets/{RightSidebarHomePanel-DmorYb6p.js → RightSidebarHomePanel-CeSFJM5s.js} +1 -1
  85. package/dist/web/assets/{ScheduledWorkPage-BFDzQUyL.js → ScheduledWorkPage-D1jRQxFs.js} +1 -1
  86. package/dist/web/assets/{SettingsView-BB7wCdbr.js → SettingsView-RA9OXgcu.js} +3 -3
  87. package/dist/web/assets/{TeamChatView-CZ3b7rq2.js → TeamChatView-DM0adMtj.js} +1 -1
  88. package/dist/web/assets/{TerminalOverlay-Ck43Qri3.js → TerminalOverlay-CFlH51DD.js} +1 -1
  89. package/dist/web/assets/{TrainingCreationPanel-ejqPZm3g.js → TrainingCreationPanel-CgIBVGha.js} +1 -1
  90. package/dist/web/assets/{TrainingDraftPanel-Cy2AQxxL.js → TrainingDraftPanel-Bbo3RRie.js} +1 -1
  91. package/dist/web/assets/{UsageSettingsSection-B7nyMItm.js → UsageSettingsSection-CSRjJUSa.js} +1 -1
  92. package/dist/web/assets/{WorkSidebarPanel-BfjAc097.js → WorkSidebarPanel-DwlEMEoG.js} +1 -1
  93. package/dist/web/assets/WorkspaceDiffPanel-pGVezNMw.js +14 -0
  94. package/dist/web/assets/{WorkspaceEnvironmentMenu-B-K9XgFB.js → WorkspaceEnvironmentMenu-Byjngd9V.js} +1 -1
  95. package/dist/web/assets/{WorkspaceGitDialogs-BJVFx_L3.js → WorkspaceGitDialogs-Dgmg-6XG.js} +1 -1
  96. package/dist/web/assets/{WorkspaceMonacoEditor-p-FWMXoZ.js → WorkspaceMonacoEditor-BR4qxMgU.js} +3 -3
  97. package/dist/web/assets/{arrow-up-right-CFGI2YSt.js → arrow-up-right-H0pvnH2s.js} +1 -1
  98. package/dist/web/assets/{chunk-UHVJOMWN-BAlur2vw.js → chunk-UHVJOMWN-BqXRe639.js} +1 -1
  99. package/dist/web/assets/{clipboard-DIIxBort.js → clipboard-BZzZ82Bk.js} +1 -1
  100. package/dist/web/assets/{cloud-upload-BaQFNCTp.js → cloud-upload-CJPYPVl8.js} +1 -1
  101. package/dist/web/assets/{cssMode-6LOkSggB.js → cssMode-WC4Rg1l-.js} +1 -1
  102. package/dist/web/assets/{folder-open-DZSxfPtr.js → folder-open-sLZJxLQy.js} +1 -1
  103. package/dist/web/assets/{folder-plus-21v4D_Vx.js → folder-plus-C84wrpt_.js} +1 -1
  104. package/dist/web/assets/{git-commit-horizontal-CgGixL64.js → git-commit-horizontal-Cotm7KEC.js} +1 -1
  105. package/dist/web/assets/{htmlMode-B5uRraNd.js → htmlMode-C6oZGeaB.js} +1 -1
  106. package/dist/web/assets/{index-DOMrqhcz.js → index-BxWTVKtn.js} +2 -2
  107. package/dist/web/assets/index-dSmk3FLJ.css +1 -0
  108. package/dist/web/assets/{info-BGTcmow7.js → info-Dc81lEfw.js} +1 -1
  109. package/dist/web/assets/{jsonMode-D3m8N4Gi.js → jsonMode-BET4LQIn.js} +1 -1
  110. package/dist/web/assets/{lspLanguageFeatures-DoyipLsB.js → lspLanguageFeatures-BPxA_-Kg.js} +1 -1
  111. package/dist/web/assets/{minimize-2-B01qSko4.js → minimize-2-Bs7MVN3C.js} +1 -1
  112. package/dist/web/assets/{monaco.contribution-Bc22foTx.js → monaco.contribution-7AUuf2NS.js} +2 -2
  113. package/dist/web/assets/{monaco.contribution-BJyfaGX2.js → monaco.contribution-BH6kkO4b.js} +2 -2
  114. package/dist/web/assets/{monaco.contribution-DuRhJ6zU.js → monaco.contribution-DFzEyaHi.js} +2 -2
  115. package/dist/web/assets/{monaco.contribution--U8v3jpa.js → monaco.contribution-DXzyQfVi.js} +2 -2
  116. package/dist/web/assets/{monitor-eZP8ZTHe.js → monitor-DXL019Wf.js} +1 -1
  117. package/dist/web/assets/{play-CGsWFR_B.js → play-CXkxUZeU.js} +1 -1
  118. package/dist/web/assets/{python-BNrLZWud.js → python-PzBkTjWx.js} +1 -1
  119. package/dist/web/assets/{save-BLgjrccP.js → save-DpezrtH2.js} +1 -1
  120. package/dist/web/assets/{square-CI1qNtvE.js → square-oy7f5Ce6.js} +1 -1
  121. package/dist/web/assets/{toggleHighContrast-B_GcTCnw.js → toggleHighContrast-Cto-fOXm.js} +1 -1
  122. package/dist/web/assets/{tsMode-CmruH_ys.js → tsMode-BYA4LNc6.js} +1 -1
  123. package/dist/web/assets/{upload-DnlgGS2x.js → upload-C5YFNgtS.js} +1 -1
  124. package/dist/web/assets/{useLocalAgentSchedules-BBhGUfK-.js → useLocalAgentSchedules-CnyTsqlf.js} +1 -1
  125. package/dist/web/assets/useProviderSettings-B_KeQjE5.js +5 -0
  126. package/dist/web/assets/{useSessionTurnCache-BwscKl5i.js → useSessionTurnCache-DICuJSJW.js} +1 -1
  127. package/dist/web/assets/{wifi-off-Dz-4EDCc.js → wifi-off-nzHj7JXp.js} +1 -1
  128. package/dist/web/assets/{workers-Bi9u46cp.js → workers-Dboaw6f_.js} +1 -1
  129. package/dist/web/assets/{yaml-DVTkiRnh.js → yaml-uuY5JmO8.js} +1 -1
  130. package/dist/web/index.html +2 -2
  131. package/package.json +1 -1
  132. package/dist/chunks/chunk-7K72KS5C.js +0 -9
  133. package/dist/chunks/src-STK4YHBI.js +0 -329
  134. package/dist/web/assets/App-BI-uOpnP.js +0 -234
  135. package/dist/web/assets/App-DkH8CeoI.css +0 -1
  136. package/dist/web/assets/HostedModelLearningReview-CitgUNfC.js +0 -1
  137. package/dist/web/assets/MainPane-LaEtxydD.js +0 -19
  138. package/dist/web/assets/WorkspaceDiffPanel-D9hAV8l7.js +0 -14
  139. package/dist/web/assets/index-DJcUXSsN.css +0 -1
  140. package/dist/web/assets/useProviderSettings-DfhdkKdC.js +0 -5
  141. /package/dist/chunks/{chunk-XDMUD4FW.js → chunk-2JO2KWT3.js} +0 -0
  142. /package/dist/chunks/{chunk-XBCIBAXD.js → chunk-GS2NKNKG.js} +0 -0
@@ -1,5 +0,0 @@
1
- import{r as d,j as e}from"./index-DOMrqhcz.js";import{c as Ne,l as Pe,bl as G,al as oe,as as ce,an as de,ck as ke,z as ue,bs as Se,co as Z,bo as we,X as Ee,m as Me,D as Ae,G as B,$ as se}from"./App-BI-uOpnP.js";import{S as Oe}from"./save-BLgjrccP.js";import{T as te}from"./MarkdownText-DJI5LwT0.js";const De=[["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"}]],F=Ne("key-round",De);function Re(n){const i=d.useRef(null),f=d.useRef(n);return f.current=n,d.useEffect(()=>{const a=document.activeElement instanceof HTMLElement?document.activeElement:null,s=()=>[...i.current?.querySelectorAll('button:not(:disabled), input:not(:disabled), select:not(:disabled), a[href], [tabindex="0"]')??[]].filter(u=>u.getClientRects().length>0);s()[0]?.focus();const b=u=>{if(document.querySelector(".native-setup-terminal")||(u.key==="Escape"&&(u.preventDefault(),u.stopPropagation(),f.current()),u.key!=="Tab"))return;const t=s(),N=t[0],O=t.at(-1);u.shiftKey&&document.activeElement===N?(u.preventDefault(),O?.focus()):!u.shiftKey&&document.activeElement===O&&(u.preventDefault(),N?.focus())};return document.addEventListener("keydown",b),()=>{document.removeEventListener("keydown",b),a?.isConnected&&a.focus()}},[]),i}const K=["codex","claude-code","grok-build","opencode"];function V(n){return["claude-code","grok-build","opencode"].includes(n)}const $e={codex:{executable:"codex",install:"https://developers.openai.com/codex/cli"},"claude-code":{executable:"claude",install:"https://code.claude.com/docs/en/setup"},"grok-build":{executable:"grok",install:"https://docs.x.ai/build/cli"},opencode:{executable:"opencode",install:"https://opencode.ai/docs"}},J=(n,i)=>JSON.stringify([n||"",i||""]);function le({connection:n,providerId:i,config:f,status:a,cachedModels:s,busy:b,onCheck:u}){const[t,N]=d.useState(null),[O,E]=d.useState(null),[x,_]=d.useState(null),[v,P]=d.useState(!1),[k,M]=d.useState(f.binaryPath??""),[j,D]=d.useState(f.sourceHome??""),l=d.useRef(null),p=d.useRef(null),y=d.useRef(u);y.current=u;const R=$e[i],S=J(f.binaryPath,f.sourceHome),A=J(k.trim(),j.trim())!==S,g=b||v||t!==null,w=d.useCallback(async c=>{l.current?.abort();const h=new AbortController;l.current=h;const $=setTimeout(()=>h.abort(new Error("Connection check timed out. Retry when the agent is available.")),45e3);P(!0),E(null);try{const z=await y.current(i,h.signal,c);l.current===h&&!h.signal.aborted&&_(z)}catch(z){l.current===h&&E(z instanceof Error?z.message:"Could not check the agent.")}finally{clearTimeout($),l.current===h&&(l.current=null,P(!1))}},[i]);d.useEffect(()=>{if(M(f.binaryPath??""),D(f.sourceHome??""),p.current===S){p.current=null;return}N(null),_(null),w()},[w,S,f.binaryPath,f.sourceHome,n?.serverUrl,n?.token]),d.useEffect(()=>()=>{const c=l.current;l.current=null,c?.abort()},[]);async function L(c){c.preventDefault(),!(!A||g)&&(p.current=J(k.trim(),j.trim()),await w({binaryPath:k.trim()||null,sourceHome:j.trim()||null}),p.current=null)}async function T(){if(!n||x?.status!=="needs_login")return;const c=new AbortController,h=setTimeout(()=>c.abort(),1e4);l.current?.abort(),l.current=c,P(!0),E(null);try{const $=await ue(n,`/v1/providers/${i}/native-setup`,{method:"POST",body:JSON.stringify({action:"login"}),signal:c.signal});l.current===c&&!c.signal.aborted&&N($.command)}catch($){l.current===c&&E($ instanceof Error?$.message:"Could not open native login.")}finally{clearTimeout(h),l.current===c&&(l.current=null,P(!1))}}const o=x?.settings.modelCaches[i]?.models??s,r=[...new Set(o.map(c=>Pe(c.displayName||c.id)))],m=O??x?.error;return e.jsxs("div",{className:"provider-dialog-body native-agent-setup",children:[e.jsxs("p",{children:["Uses your existing ",a.displayName," installation and login."]}),e.jsxs("div",{className:"native-connection-status",children:[e.jsx("div",{role:"status","aria-live":"polite",children:v?e.jsxs(e.Fragment,{children:[e.jsx(G,{size:16,className:"settings-spin"}),e.jsx("span",{children:"Checking connection…"})]}):x?.status==="ready"?e.jsxs(e.Fragment,{children:[e.jsx(oe,{size:16}),e.jsx("span",{children:f.enabled?"Connected":"Connected, disabled for chat"})]}):e.jsxs(e.Fragment,{children:[e.jsx(ce,{size:16}),e.jsx("span",{children:x?.status==="missing"?"Installation not found":x?.status==="needs_login"?"Sign in required":"Connection needs attention"})]})}),e.jsxs("button",{type:"button",className:"settings-secondary",disabled:g||!n,onClick:()=>{w()},title:"Refresh connection","aria-label":"Refresh connection",children:[e.jsx(de,{size:14})," Refresh"]})]}),m?e.jsx("p",{role:"alert",children:m}):null,r.length?e.jsxs("section",{className:"native-model-section","aria-label":"Available models",children:[e.jsxs("div",{className:"native-model-heading",children:[e.jsx("h3",{children:"Models"}),e.jsxs("small",{children:[r.length," available"]})]}),e.jsx("div",{className:"native-model-list",tabIndex:0,"aria-label":"Models",role:"list",children:r.map(c=>e.jsx("span",{role:"listitem",children:c},c))}),e.jsx("small",{children:"Choose a model when starting a chat."})]}):null,x?.version?e.jsx("small",{className:"native-agent-version",children:x.version}):null,x?.status==="needs_login"?e.jsx("button",{type:"button",className:"settings-secondary",disabled:g||A||!n,title:A?"Save changes before signing in to a different installation":void 0,onClick:()=>{T()},children:"Sign in"}):null,x?.status==="missing"?e.jsxs("p",{children:[e.jsxs("a",{href:R.install,target:"_blank",rel:"noreferrer",children:["Install ",a.displayName]}),", then refresh this connection."]}):null,(O||x?.status==="unavailable")&&!v?e.jsx("button",{type:"button",className:"settings-secondary",disabled:g||!n,onClick:()=>{w()},children:"Retry"}):null,t&&n?e.jsx(ke,{connection:n,command:t,onComplete:()=>{N(null),w()},onClose:()=>{N(null),w()}}):null,V(i)?e.jsxs("details",{children:[e.jsx("summary",{children:"Advanced"}),e.jsxs("form",{className:"provider-card-form",onSubmit:c=>{L(c)},children:[e.jsxs("label",{className:"settings-select-field",children:[e.jsx("span",{children:"Executable"}),e.jsx("input",{value:k,placeholder:`${R.executable} from PATH, or an absolute path`,disabled:g,onChange:c=>M(c.currentTarget.value)})]}),e.jsxs("label",{className:"settings-select-field",children:[e.jsx("span",{children:"Source home"}),e.jsx("input",{value:j,placeholder:"Use the agent's existing home",disabled:g,onChange:c=>D(c.currentTarget.value)})]}),A?e.jsx("button",{className:"settings-secondary",disabled:g||!n,children:"Save changes"}):null]})]}):null]})}const Te=[{value:"local_secret",label:"Saved key",description:"Encrypted on this machine"},{value:"env",label:"Environment variable",description:"Read by the local server"}],_e=120,ze=new Set(["openai","xai","zai"]),Ue=new Set(["chatgpt-subscription"]),Le="https://api.z.ai/api/coding/paas/v4";function ae(n){return n.split(/[\n,]/).map(i=>i.trim()).filter(Boolean)}function he(n){return n?n.available?"Ready":n.credential.connected?"Configured":n.credential.lastError||n.lastError?"Needs attention":n.id==="codex"?"Needs Codex login":V(n.id)?"Check connection":n.routing.localByok?"Needs key":n.enabled?"Enabled":"Off":"Unknown"}function pe(n){return n?n.available?"ready":n.credential.connected?"configured":n.credential.lastError||n.lastError||n.id==="codex"?"warning":"muted":"unknown"}function ie(n){return n.credential.connected?n.credential.redacted?n.credential.redacted:n.credential.source==="native_agent_login"?"Native login":n.credential.source==="chatgpt_subscription"?"ChatGPT subscription":n.credential.source:n.credential.lastError??"Not connected"}function Be(n){return n?.trim().replace(/\/+$/,"")??""}function me(n,i){return n.id==="zai"&&Be(i.providers.zai?.baseUrl)===Le}function Ge(n,i){return!n.credential.connected||!n.routing.localByok?"":n.credential.source==="native_agent_login"?"Native login":n.credential.source==="chatgpt_subscription"?"Subscription":me(n,i)?"Coding Plan key":"API key"}function Fe(n,i){const f=i.modelCaches[n.id];if(n.routing.localByok&&n.enabled&&!n.credential.connected||!n.enabled&&n.id!=="openpond")return"";const a=Math.max(f?.models.length??0,n.modelIds.length),s=n.defaultModel?we(n.defaultModel,i,n.id):"",b=a===1?"1 model":`${a} models`;return[Ge(n,i),f?b:"",s].filter(Boolean).join(" · ")}function Ve(n){return n!=="openpond"&&Z(n)}function fe(n){return n?ze.has(n.id)||n.credentialModes.some(i=>Ue.has(i)):!1}function He(n){return fe(n)?["api","subscription"]:["api"]}function re(n,i){return!n||!i||!fe(n)?"api":n.credential.source==="chatgpt_subscription"||me(n,i)?"subscription":"api"}function Ke(n){if(!n)return"Never";const i=new Date(n);return Number.isNaN(i.getTime())?n:i.toLocaleString()}function qe(n,i,f=_e){const a=[],s=new Set,b=new Set(i.map(t=>t.trim()).filter(Boolean)),u=t=>{s.has(t.value)||a.length>=f||(s.add(t.value),a.push(t))};for(const t of n)b.has(t.value)&&u(t);for(const t of n)u(t);return a}function en({checkNativeProvider:n,connection:i,account:f,codex:a,providers:s,providerBusy:b,validationMessage:u,deleteProviderCredential:t,loadProviderModels:N,refreshProviderModels:O,saveProviderConfig:E,saveProviderCredential:x,startOpenAiSubscriptionAuth:_,validateProvider:v}){const[P,k]=d.useState(null),M=K.filter(l=>s?.statuses[l]),j=P?s?.statuses[P]??null:null;function D(l,p){k(l),p&&N(l)}return e.jsxs("section",{className:"account-settings provider-connections-settings",children:[e.jsx("h1",{children:"Providers"}),e.jsxs("div",{className:"provider-connections-intro",children:[e.jsx("p",{children:"Manage your installed agents and login. Sync their conversations from Connections."}),e.jsx("button",{type:"button",className:"settings-secondary",onClick:()=>{Se({kind:"view",view:"apps"})},children:"Connections & apps"})]}),s?e.jsx("div",{className:"provider-connections-panel",children:M.length>0?e.jsx("div",{className:"provider-connections-grid",role:"list",children:M.map(l=>{const p=s.statuses[l],y=s.modelCaches[l],R=p.modelIds.length>0&&(y?.models.length??0)<p.modelIds.length,S=b?.startsWith(`${l}:`)??!1,A=Ve(l),g=l==="openpond"||!!s.providers[l]?.enabled;return e.jsxs("div",{className:"provider-connection-card",role:"listitem",children:[e.jsxs("div",{className:"provider-connection-identity",children:[e.jsx("strong",{children:p.displayName}),e.jsxs("label",{className:"provider-toggle","aria-label":`Enable ${p.displayName}`,children:[e.jsx("input",{type:"checkbox",checked:g,disabled:!A||S,onChange:w=>{E(l,{enabled:w.currentTarget.checked})}}),e.jsx("span",{})]})]}),e.jsxs("div",{className:`provider-connection-status ${pe(p)}`,children:[S?e.jsx(G,{size:13,className:"settings-spin"}):null,e.jsx("span",{children:he(p)})]}),e.jsx("p",{children:Fe(p,s)||(p.enabled?"Check your installation and sign in to use this agent.":"Enable this agent to use it in chats.")}),e.jsx("button",{type:"button",className:"settings-secondary",onClick:()=>{D(l,R)},children:"Manage"})]},l)})}):e.jsx("div",{className:"empty-account-list provider-manager-empty",children:e.jsx("strong",{children:"No agent providers available"})})}):null,u?e.jsxs("div",{className:"settings-footnote provider-validation-message",children:[e.jsx("span",{children:"Last validation"}),e.jsx("strong",{children:u})]}):null,P&&j&&s?e.jsx(Je,{checkNativeProvider:n,connection:i,account:f,codex:a,providerId:P,providerBusy:b,settings:s,status:j,onClose:()=>k(null),onDeleteCredential:t,onRefreshModels:O,onSaveConfig:E,onSaveCredential:x,onStartOpenAiSubscriptionAuth:_,onValidate:v}):null]})}function Je({checkNativeProvider:n,connection:i,account:f,codex:a,providerId:s,providerBusy:b,settings:u,status:t,onClose:N,onDeleteCredential:O,onRefreshModels:E,onSaveConfig:x,onSaveCredential:_,onStartOpenAiSubscriptionAuth:v,onValidate:P,conversationPanel:k}){const M=Re(N),[j,D]=d.useState("setup"),l=d.useId(),p=u.providers[s],y=u.modelCaches[s],R=d.useId(),S=d.useRef(s),A=Math.max(y?.models.length??0,t.modelIds.length),g=t.routing.localByok&&Z(s)&&s!=="codex"&&!V(s),w=d.useMemo(()=>g?He(t):[],[g,t]),L=w.includes("subscription"),[T,o]=d.useState(()=>re(t,u)),r=g&&T==="subscription"&&L,m=h=>`${R}-${h}-panel`,c=s==="codex"?"Codex app server":p?.baseUrl??(s==="openpond"?f?.chatApiBaseUrl:null)??"Not set";return d.useEffect(()=>{if(S.current!==s){S.current=s,o(re(t,u));return}g&&!w.includes(T)&&o("api")},[T,w,g,s,u,t]),e.jsx("div",{className:"git-dialog-backdrop provider-dialog-backdrop",role:"presentation",onMouseDown:N,children:e.jsxs("section",{ref:M,className:`git-dialog provider-details-dialog${k?" agent-setup-dialog":""}`,role:"dialog","aria-modal":"true","aria-label":`${t.displayName} provider details`,onMouseDown:h=>h.stopPropagation(),children:[e.jsx("button",{className:"git-dialog-close",type:"button",title:"Close","aria-label":"Close",onClick:N,children:e.jsx(Ee,{size:16})}),e.jsxs("div",{className:"provider-dialog-header",children:[e.jsxs("div",{children:[e.jsx("h2",{children:t.displayName}),e.jsx("span",{children:K.includes(s)?"Installation and login":"API and subscription settings"})]}),e.jsx("div",{className:`provider-state-pill ${pe(t)}`,children:he(t)})]}),K.includes(s)&&p?e.jsxs("label",{className:"provider-chat-toggle",children:[e.jsxs("span",{className:"provider-toggle",children:[e.jsx("input",{type:"checkbox","aria-label":`Enable ${t.displayName} for chat`,checked:p.enabled,disabled:b!==null,onChange:h=>{x(s,{enabled:h.target.checked})}}),e.jsx("span",{"aria-hidden":"true"})]}),e.jsxs("span",{children:["Use ",t.displayName," for chats"]})]}):null,k?e.jsxs("div",{className:"surface-tabs provider-agent-tabs",role:"tablist","aria-label":"Agent settings",onKeyDown:h=>{if(h.key!=="ArrowLeft"&&h.key!=="ArrowRight")return;h.preventDefault();const $=j==="setup"?"sync":"setup";D($),h.currentTarget.querySelector(`#${CSS.escape(`${l}-${$}`)}`)?.focus()},children:[e.jsx("button",{type:"button",role:"tab",id:`${l}-setup`,"aria-controls":`${l}-setup-panel`,"aria-selected":j==="setup",tabIndex:j==="setup"?0:-1,onClick:()=>D("setup"),children:"Agent setup"}),e.jsx("button",{type:"button",role:"tab",id:`${l}-sync`,"aria-controls":`${l}-sync-panel`,"aria-selected":j==="sync",tabIndex:j==="sync"?0:-1,onClick:()=>D("sync"),children:"Conversation sync"})]}):null,e.jsxs("div",{hidden:j!=="setup",id:`${l}-setup-panel`,role:k?"tabpanel":void 0,"aria-labelledby":k?`${l}-setup`:void 0,children:[g?e.jsx("div",{className:"surface-tabs provider-mode-tabs",role:"tablist","aria-label":`${t.displayName} mode`,children:w.map(h=>e.jsx("button",{type:"button",role:"tab",id:`${R}-${h}`,className:T===h?"active":void 0,"aria-selected":T===h,"aria-controls":m(h),onClick:()=>o(h),children:h==="api"?"API":"Subscription"},h))}):null,K.includes(s)?null:e.jsxs("dl",{className:"provider-dialog-stats",children:[e.jsxs("div",{children:[e.jsx("dt",{children:"Credential"}),e.jsx("dd",{title:ie(t),children:ie(t)})]}),r?null:e.jsxs(e.Fragment,{children:[V(s)?null:e.jsxs("div",{children:[e.jsx("dt",{children:"Base URL"}),e.jsx("dd",{title:c,children:c})]}),e.jsxs("div",{children:[e.jsx("dt",{children:"Model"}),e.jsx("dd",{title:p?.defaultModel??t.defaultModel??void 0,children:p?.defaultModel??t.defaultModel??"Not set"})]}),e.jsxs("div",{children:[e.jsx("dt",{children:"Models"}),e.jsxs("dd",{title:y?.lastError??void 0,children:[A," cached, ",Ke(y?.fetchedAt)]})]})]}),s==="codex"?e.jsxs(e.Fragment,{children:[e.jsxs("div",{children:[e.jsx("dt",{children:"Account"}),e.jsx("dd",{title:a?.account?.email??void 0,children:a?.account?.label??a?.account?.email??"Not signed in"})]}),e.jsxs("div",{children:[e.jsx("dt",{children:"Binary"}),e.jsx("dd",{title:a?.binaryPath??void 0,children:a?.binaryPath??"Not found"})]})]}):null,t.credential.lastError||y?.lastError||t.lastError?e.jsxs("div",{className:"provider-dialog-error",children:[e.jsx("dt",{children:"Error"}),e.jsx("dd",{title:t.credential.lastError??y?.lastError??t.lastError??void 0,children:t.credential.lastError??y?.lastError??t.lastError})]}):null]}),s==="codex"?e.jsxs(e.Fragment,{children:[p?e.jsx(le,{connection:i,providerId:s,config:p,status:t,cachedModels:y?.models??[],busy:b!==null,onCheck:n},s):null,e.jsxs("div",{className:"provider-dialog-body",children:[e.jsx("h3",{children:"ChatGPT with the OpenPond harness"}),e.jsx("p",{children:"Native Codex and the OpenPond harness keep their own connections. Choose the execution path in the model picker."}),e.jsx("p",{children:u.statuses.openai?.credential.connected?"OpenPond harness connected":"OpenPond harness not connected"}),e.jsx("button",{type:"button",className:"settings-secondary",disabled:b!==null,onClick:()=>{v("browser")},children:"Connect ChatGPT for OpenPond"}),e.jsxs("button",{type:"button",className:"settings-secondary",disabled:b!==null,onClick:()=>{x("openai",{enabled:!u.providers.openai?.enabled})},children:[u.providers.openai?.enabled?"Disable":"Enable"," OpenPond harness route"]})]})]}):V(s)&&p?e.jsx(le,{connection:i,providerId:s,config:p,status:t,cachedModels:y?.models??[],busy:b!==null,onCheck:n},s):g&&p&&y?e.jsx(Ze,{credentialTab:T,credentialTabsId:R,hasSubscriptionTab:L,providerId:s,providerBusy:b,settings:u,status:t,onDeleteCredential:O,onRefreshModels:E,onSaveConfig:x,onSaveCredential:_,onStartOpenAiSubscriptionAuth:v,onValidate:P}):t.routing.localByok&&!Z(s)?e.jsxs("div",{className:"provider-dialog-note",children:[e.jsx(ce,{size:15}),e.jsx("span",{children:"Adapter pending"})]}):null]}),j==="sync"?e.jsx("div",{role:"tabpanel",id:`${l}-sync-panel`,"aria-labelledby":`${l}-sync`,children:k}):null]})})}function Ze({credentialTab:n,credentialTabsId:i,hasSubscriptionTab:f,providerId:a,providerBusy:s,settings:b,status:u,onDeleteCredential:t,onRefreshModels:N,onSaveConfig:O,onSaveCredential:E,onStartOpenAiSubscriptionAuth:x,onValidate:_}){const v=b.providers[a],P=d.useMemo(()=>Me(a,b),[a,b]),k=`provider-models-${a}`,M=d.useRef(a),[j,D]=d.useState(v.baseUrl??""),[l,p]=d.useState(v.defaultModel??""),[y,R]=d.useState(v.modelOverrides.join(`
2
- `)),[S,A]=d.useState({baseUrl:!1,defaultModel:!1,modelOverrides:!1}),[g,w]=d.useState("local_secret"),[L,T]=d.useState(""),[o,r]=d.useState(""),m=s===`${a}:config`,c=s===`${a}:credential`,h=s===`${a}:validate`,$=s===`${a}:models`,z=s==="openai:credential",be=a==="openai",ge=a==="xai",W=a==="zai",H=(C=>`${i}-${C}-panel`)(n),X=n==="subscription"&&f,q=n==="subscription"&&W?"coding-plan":"api",I=q==="coding-plan"?"Coding Plan key":"API key",ve=u.credential.connected?q==="coding-plan"?"Replace saved plan key":"Replace saved key":I,xe=q==="coding-plan"?"Save plan key":"Save key",Y=d.useMemo(()=>qe(P,[l,...ae(y)]),[l,P,y]),Q=Math.max(0,P.length-Y.length);d.useEffect(()=>{if(M.current!==a){M.current=a,A({baseUrl:!1,defaultModel:!1,modelOverrides:!1}),D(v.baseUrl??""),p(v.defaultModel??""),R(v.modelOverrides.join(`
3
- `));return}S.baseUrl||D(v.baseUrl??""),S.defaultModel||p(v.defaultModel??""),S.modelOverrides||R(v.modelOverrides.join(`
4
- `))},[v.baseUrl,v.defaultModel,v.modelOverrides,S.baseUrl,S.defaultModel,S.modelOverrides,a]);const ee=g==="env"?!!o.trim():!!L.trim();async function je(C){C.preventDefault(),await O(a,{enabled:!0,baseUrl:j.trim()||null,defaultModel:l.trim()||null,modelOverrides:ae(y)}),A({baseUrl:!1,defaultModel:!1,modelOverrides:!1})}async function ye(C){if(C.preventDefault(),!!ee){if(g==="env"){await E(a,{source:"env",envVar:o.trim()});return}await E(a,{source:"local_secret",value:L}),T("")}}function ne({panel:C=!0}={}){return e.jsxs("form",{className:"provider-credential-panel",id:C?H:void 0,role:C?"tabpanel":void 0,"aria-labelledby":C?`${i}-${n}`:void 0,onSubmit:U=>{ye(U)},children:[e.jsxs("div",{className:"provider-card-grid credential-grid",children:[e.jsxs("div",{className:"settings-select-field",children:[e.jsx("span",{children:"Credential source"}),e.jsx(Ae,{value:g,disabled:c,label:"Credential source",options:Te,onChange:U=>w(U)})]}),g==="env"?e.jsxs("label",{className:"settings-select-field",children:[e.jsx("span",{children:"Environment variable"}),e.jsx("input",{value:o,disabled:c,placeholder:"PROVIDER_API_KEY",onChange:U=>r(U.currentTarget.value)})]}):e.jsxs("label",{className:"settings-select-field",children:[e.jsx("span",{children:I}),e.jsx("input",{type:"password",value:L,disabled:c,placeholder:ve,autoComplete:"off",onChange:U=>T(U.currentTarget.value)})]})]}),e.jsxs("div",{className:"settings-button-row",children:[e.jsxs("button",{className:"settings-secondary",disabled:c||!ee,children:[c?e.jsx(G,{size:14,className:"settings-spin"}):e.jsx(F,{size:14}),e.jsx("span",{children:c?"Saving":xe})]}),e.jsx("button",{type:"button",className:"settings-icon-button ghost","aria-label":`Delete ${u.displayName} credential`,disabled:c||!u.credential.connected,onClick:()=>{t(a)},children:e.jsx(te,{size:15})})]})]})}function Ce(){return be?e.jsxs("div",{className:"provider-subscription-panel",id:H,role:"tabpanel","aria-labelledby":`${i}-subscription`,children:[e.jsxs("div",{className:"provider-dialog-note codex-provider-note",children:[e.jsx(F,{size:15}),e.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."})]}),e.jsxs("div",{className:"settings-button-row",children:[e.jsxs("button",{type:"button",className:"settings-secondary",disabled:z,onClick:()=>{x("browser")},children:[z?e.jsx(G,{size:14,className:"settings-spin"}):e.jsx(F,{size:14}),e.jsx("span",{children:z?"Opening":"Connect ChatGPT"})]}),e.jsxs("button",{type:"button",className:"settings-secondary",disabled:z,onClick:()=>{x("device")},children:[z?e.jsx(G,{size:14,className:"settings-spin"}):e.jsx(F,{size:14}),e.jsx("span",{children:"Device code"})]}),e.jsx("button",{type:"button",className:"settings-icon-button ghost","aria-label":`Delete ${u.displayName} credential`,disabled:z||!u.credential.connected,onClick:()=>{t(a)},children:e.jsx(te,{size:15})})]})]}):ge?e.jsx("div",{className:"provider-subscription-panel",id:H,role:"tabpanel","aria-labelledby":`${i}-subscription`,children:e.jsxs("div",{className:"provider-dialog-note xai-provider-note",children:[e.jsx(F,{size:15}),e.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."})]})}):W?e.jsxs("div",{className:"provider-subscription-panel",id:H,role:"tabpanel","aria-labelledby":`${i}-subscription`,children:[e.jsxs("div",{className:"provider-dialog-note subscription-provider-note",children:[e.jsx(F,{size:15}),e.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."})]}),ne({panel:!1})]}):null}return e.jsxs("div",{className:"provider-dialog-body",children:[X?null:e.jsxs("form",{className:"provider-card-form",onSubmit:C=>{je(C)},children:[e.jsxs("div",{className:"provider-card-grid",children:[e.jsxs("label",{className:"settings-select-field",children:[e.jsx("span",{children:"Base URL"}),e.jsx("input",{value:j,disabled:m,placeholder:"https://api.example.com/v1",onChange:C=>{A(U=>({...U,baseUrl:!0})),D(C.currentTarget.value)}})]}),e.jsxs("label",{className:"settings-select-field",children:[e.jsx("span",{children:"Default model"}),e.jsx("input",{list:k,value:l,disabled:m,placeholder:"Model id",onChange:C=>{A(U=>({...U,defaultModel:!0})),p(C.currentTarget.value)}}),e.jsx("datalist",{id:k,children:Y.map(C=>e.jsx("option",{value:C.value,children:C.label},C.value))}),Q>0?e.jsxs("small",{children:[Q," more cached models hidden from suggestions"]}):null]})]}),e.jsxs("div",{className:"settings-button-row",children:[e.jsxs("button",{className:"settings-secondary",disabled:m,children:[m?e.jsx(G,{size:14,className:"settings-spin"}):e.jsx(Oe,{size:14}),e.jsx("span",{children:m?"Saving":"Save config"})]}),e.jsxs("button",{type:"button",className:"settings-secondary",disabled:$,onClick:()=>{N(a)},children:[$?e.jsx(G,{size:14,className:"settings-spin"}):e.jsx(de,{size:14}),e.jsx("span",{children:$?"Refreshing":"Refresh models"})]}),e.jsxs("button",{type:"button",className:"settings-secondary",disabled:h||!l.trim(),onClick:()=>{_(a,{baseUrl:j.trim()||void 0,modelId:l.trim()||void 0})},children:[h?e.jsx(G,{size:14,className:"settings-spin"}):e.jsx(oe,{size:14}),e.jsx("span",{children:h?"Testing":"Test"})]})]})]}),e.jsx("div",{className:"provider-card-form credential-form",children:X?Ce():ne()})]})}function nn({connection:n,onError:i,onPreferences:f,onProviders:a,preferences:s,providers:b}){const u=d.useRef(n);u.current=n;const[t,N]=d.useState(s.defaultChatProvider),[O,E]=d.useState(s.defaultChatModel),[x,_]=d.useState(!1),[v,P]=d.useState(null),[k,M]=d.useState(null);d.useEffect(()=>{N(s.defaultChatProvider),E(s.defaultChatModel)},[s.defaultChatProvider,s.defaultChatModel]);async function j(o){if(o.preventDefault(),!!n){_(!0),i(null);try{f(await B.savePreferences(n,{defaultChatProvider:t,defaultChatModel:se(t,O,b)}))}catch(r){i(r instanceof Error?r.message:String(r))}finally{_(!1)}}}function D(o){N(o),E(r=>se(o,r,b))}async function l(o,r,m){if(!n)return null;P(`${o}:${r}`),M(null),i(null);try{return await m()}catch(c){return i(c instanceof Error?c.message:String(c)),null}finally{P(null)}}async function p(o,r){await l(o,"config",async()=>{const m=await B.saveProviderSettings(n,{providers:{[o]:r}});return a(m),m})}async function y(o,r){await l(o,"credential",async()=>{const m=await B.saveProviderCredential(n,o,r);return a(m),m})}async function R(o){await l(o,"credential",async()=>{const r=await B.deleteProviderCredential(n,o,{});return a(r),r})}async function S(o){return l("openai","credential",async()=>{const r=await B.startOpenAiSubscriptionAuth(n,{method:o});return r.method==="browser"?(window.open(r.url,"_blank","noopener,noreferrer"),M("OpenAI ChatGPT login opened in your browser. Return here after authorization.")):(window.open(r.url,"_blank","noopener,noreferrer"),M(`OpenAI device login started. Enter code ${r.userCode}.`)),A(r.expiresAt),r})}async function A(o){if(n)for(;Date.now()<o;){await new Promise(r=>setTimeout(r,2500));try{const r=await B.providerSettings(n);a(r);const m=r.statuses.openai?.credential;if(m?.connected&&m.source==="chatgpt_subscription"){M("OpenAI ChatGPT subscription connected.");return}}catch{}}}async function g(o){await l(o,"models",async()=>{const r=await B.refreshProviderModels(n,o,{force:!0});return a(r.providers),r})}async function w(o){await l(o,"models",async()=>{const r=await B.loadProviderModels(n,o,{limit:500});return a(r.providers),r})}async function L(o,r={}){await l(o,"validate",async()=>{const m=await B.validateProviderCredential(n,o,r);return M(m.ok?`${o} validated${m.modelId?` with ${m.modelId}`:""}.`:m.errors.join(`
5
- `)||`${o} validation failed.`),a(m.providers),m})}return{checkNativeProvider:async(o,r,m)=>{if(!n)throw new Error("Connect to the local OpenPond server first.");r.throwIfAborted(),m&&await B.saveProviderSettings(n,{providers:{[o]:m}}),r.throwIfAborted();const c=await ue(n,`/v1/providers/${o}/native-setup`,{method:"POST",body:JSON.stringify({action:"check"}),signal:r});if(r.throwIfAborted(),u.current?.serverUrl!==n.serverUrl||u.current?.token!==n.token)throw new DOMException("Connection changed","AbortError");return a(c.settings),c},defaultModel:O,defaultProvider:t,providerBusy:v,saving:x,validationMessage:k,changeDefaultProvider:D,deleteProviderCredential:R,loadProviderModels:w,refreshProviderModels:g,saveProviderConfig:p,saveProviderCredential:y,saveProviders:j,setDefaultModel:E,startOpenAiSubscriptionAuth:S,validateProvider:L}}export{F as K,en as P,Re as a,Je as b,nn as u};