openpond 0.2.45 → 0.2.47

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 (254) hide show
  1. package/RELEASE.md +16 -13
  2. package/dist/app-server.d.ts +10584 -10105
  3. package/dist/app-server.js +1 -1
  4. package/dist/chunks/actions-command-DSO6YOEE.js +2 -0
  5. package/dist/chunks/{app-layer-MDJFV3HZ.js → app-layer-RRFI27N4.js} +1 -1
  6. package/dist/chunks/app-server-runtime-3KFJJUJH.js +2 -0
  7. package/dist/chunks/apps-NELJL377.js +2 -0
  8. package/dist/chunks/chunk-2SPZYBDN.js +16 -0
  9. package/dist/chunks/{chunk-U6SFIFDM.js → chunk-36YNUUZL.js} +136 -136
  10. package/dist/chunks/chunk-3HBCQNRN.js +2 -0
  11. package/dist/chunks/chunk-4UTBLHFC.js +2 -0
  12. package/dist/chunks/chunk-526PVA3V.js +2678 -0
  13. package/dist/chunks/{chunk-B6LYKEMU.js → chunk-6MH55NGW.js} +1 -1
  14. package/dist/chunks/chunk-7QEE4PBI.js +8 -0
  15. package/dist/chunks/{chunk-GEDEVI4Y.js → chunk-7YR6CBNU.js} +1 -1
  16. package/dist/chunks/{chunk-25GCTLAZ.js → chunk-A2GVVXFV.js} +1 -1
  17. package/dist/chunks/chunk-BM7TU6NX.js +190 -0
  18. package/dist/chunks/{chunk-XPB6NY7L.js → chunk-CNTGL5IX.js} +3 -3
  19. package/dist/chunks/{chunk-VVV5I22A.js → chunk-D7DA5G2U.js} +2 -2
  20. package/dist/chunks/chunk-DALJMSJG.js +33 -0
  21. package/dist/chunks/{chunk-4EGDKOYP.js → chunk-DLZP22WV.js} +1 -1
  22. package/dist/chunks/chunk-EMKZVP7Z.js +2 -0
  23. package/dist/chunks/{chunk-CXS3WXL3.js → chunk-F7RCOLZD.js} +1 -1
  24. package/dist/chunks/{chunk-FXIUKYUR.js → chunk-HA7EFTPF.js} +3 -3
  25. package/dist/chunks/chunk-IKWDL3RB.js +17 -0
  26. package/dist/chunks/{chunk-V62BHD5G.js → chunk-JDLAHVAJ.js} +1 -1
  27. package/dist/chunks/chunk-K6S4TY5W.js +9 -0
  28. package/dist/chunks/{chunk-IYRHG54Q.js → chunk-MASJQWA2.js} +1 -1
  29. package/dist/chunks/{chunk-B3O2GAQH.js → chunk-N3DEA6PG.js} +1 -1
  30. package/dist/chunks/{chunk-CR6CDOKS.js → chunk-N5QNXMIS.js} +2 -2
  31. package/dist/chunks/{chunk-OJVIH7J6.js → chunk-NAZ26IZL.js} +1 -1
  32. package/dist/chunks/chunk-NNF6KCHD.js +3 -0
  33. package/dist/chunks/chunk-PA7XP42P.js +2 -0
  34. package/dist/chunks/chunk-PJM2G7SG.js +21 -0
  35. package/dist/chunks/chunk-PYABBF53.js +53 -0
  36. package/dist/chunks/chunk-Q4H3NUVW.js +3 -0
  37. package/dist/chunks/chunk-QRWPEW3Z.js +24 -0
  38. package/dist/chunks/{chunk-Z2BYC6TP.js → chunk-QXVIIM4T.js} +1 -1
  39. package/dist/chunks/{chunk-DXAZUJPA.js → chunk-R3XFY7VL.js} +1 -1
  40. package/dist/chunks/{chunk-EG55BFQ4.js → chunk-RLZPX4YP.js} +1 -1
  41. package/dist/chunks/{chunk-5ZFEQLRI.js → chunk-SDEDAHV6.js} +72 -67
  42. package/dist/chunks/{chunk-VESOG2SS.js → chunk-T5LE6R5S.js} +1 -1
  43. package/dist/chunks/chunk-TGIB24K4.js +22 -0
  44. package/dist/chunks/chunk-TT46OISU.js +2 -0
  45. package/dist/chunks/{chunk-TVQE3JMI.js → chunk-UJ5EFSEC.js} +1 -1
  46. package/dist/chunks/{chunk-KPDWQCF6.js → chunk-WITSXYEW.js} +1 -1
  47. package/dist/chunks/chunk-WV2APYWG.js +2 -0
  48. package/dist/chunks/chunk-XBCIBAXD.js +4 -0
  49. package/dist/chunks/chunk-XDMUD4FW.js +5 -0
  50. package/dist/chunks/chunk-XM26DGML.js +3 -0
  51. package/dist/chunks/{chunk-J65BMG5Q.js → chunk-XON44M6V.js} +1 -1
  52. package/dist/chunks/{chunk-DWGB536R.js → chunk-YBVIFIXN.js} +7 -7
  53. package/dist/chunks/{chunk-YWX7FKLM.js → chunk-YIB3J4RC.js} +1 -1
  54. package/dist/chunks/chunk-YL6VFJ4P.js +2 -0
  55. package/dist/chunks/cli-WPAYXAJX.js +2 -0
  56. package/dist/chunks/{configuration-command-75ZCMZ6X.js → configuration-command-SA56RV5B.js} +1 -1
  57. package/dist/chunks/connected-evidence-IVSQZYIB.js +2 -0
  58. package/dist/chunks/{continual-WWPXK2LO.js → continual-PKK2BOTB.js} +3 -3
  59. package/dist/chunks/core-commands-W5IGIITV.js +2 -0
  60. package/dist/chunks/datasets-KSO2UG6R.js +2 -0
  61. package/dist/chunks/desktop-test-6HXFM7PO.js +3 -0
  62. package/dist/chunks/{dist-ELWB75PL.js → dist-4HV2W6V4.js} +1 -1
  63. package/dist/chunks/dist-VDVI7KIO.js +2 -0
  64. package/dist/chunks/evaluation-coordination-MOFBXRXN.js +2 -0
  65. package/dist/chunks/experiment-improvements-TDHM6NEA.js +2 -0
  66. package/dist/chunks/experiments-HFPDFD4I.js +2 -0
  67. package/dist/chunks/{extension-3M2CSWZB.js → extension-R373LYIB.js} +1 -1
  68. package/dist/chunks/{help-RLRU33WN.js → help-PEFQDDTA.js} +1 -1
  69. package/dist/chunks/hosted-experiment-improvement-T6Q7ASMI.js +3 -0
  70. package/dist/chunks/hosted-harness-runtime-2R5QRZCG.js +2 -0
  71. package/dist/chunks/hosted-profile-candidate-TKOY3M4S.js +3 -0
  72. package/dist/chunks/hosted-profile-compiler-VLBFIEWK.js +2 -0
  73. package/dist/chunks/hosted-profile-evaluation-control-7B3RAZU2.js +2 -0
  74. package/dist/chunks/hosted-profile-evaluation-inspection-3MB6MWO6.js +3 -0
  75. package/dist/chunks/hosted-profile-evaluation-preparation-C7WEABZ5.js +3 -0
  76. package/dist/chunks/human-review-HRGGACEM.js +2 -0
  77. package/dist/chunks/import-RSAQ44GG.js +4 -0
  78. package/dist/chunks/learning-FNBEIAY6.js +2 -0
  79. package/dist/chunks/opchat-I7ZWJ5XK.js +3 -0
  80. package/dist/chunks/organizations-LFCZIH7E.js +2 -0
  81. package/dist/chunks/{profile-DC4UEVVG.js → profile-EPIX5QVK.js} +1 -1
  82. package/dist/chunks/project-agent-DGOPMECP.js +2 -0
  83. package/dist/chunks/sandbox-command-Q5F6VUOS.js +2 -0
  84. package/dist/chunks/{sandbox-template-DFHWHCIQ.js → sandbox-template-7GICPIKJ.js} +1 -1
  85. package/dist/chunks/{src-CREVQF7M.js → src-DH5AQ4Z7.js} +5 -5
  86. package/dist/chunks/src-R4TSYNTK.js +329 -0
  87. package/dist/chunks/{taskset-TB2ICAZU.js → taskset-LUG3ZU6J.js} +1 -1
  88. package/dist/chunks/{teams-bot-BNBL57S5.js → teams-bot-Z6RJGHME.js} +1 -1
  89. package/dist/chunks/{training-FW5FOGR3.js → training-XHE6FVII.js} +1 -1
  90. package/dist/cli.js +1 -1
  91. package/dist/index.js +1 -1
  92. package/dist/web/agent-sources/SOURCES.md +11 -0
  93. package/dist/web/agent-sources/claude-code.svg +1 -0
  94. package/dist/web/agent-sources/codex.svg +1 -0
  95. package/dist/web/agent-sources/grok-build.svg +3 -0
  96. package/dist/web/agent-sources/hermes.png +0 -0
  97. package/dist/web/agent-sources/oh-my-pi.svg +11 -0
  98. package/dist/web/agent-sources/openclaw.svg +54 -0
  99. package/dist/web/agent-sources/opencode.svg +4 -0
  100. package/dist/web/agent-sources/pi.svg +6 -0
  101. package/dist/web/assets/App-BI-uOpnP.js +234 -0
  102. package/dist/web/assets/App-DkH8CeoI.css +1 -0
  103. package/dist/web/assets/{AppDialog-Cgn_fTGR.js → AppDialog-1iGodoot.js} +1 -1
  104. package/dist/web/assets/{AppTerminalPanel-cNYkSvM2.js → AppTerminalPanel-udtBdWFn.js} +2 -2
  105. package/dist/web/assets/AppsView-BonAGiS8.css +1 -0
  106. package/dist/web/assets/AppsView-DhKsU4yi.js +1 -0
  107. package/dist/web/assets/BrowserSidebar-BnOyqIQT.js +1 -0
  108. package/dist/web/assets/{CartesianChart-Bg3Lm5mZ.js → CartesianChart-C24DAywn.js} +1 -1
  109. package/dist/web/assets/{CollaborationTabs-BIfgIy5X.js → CollaborationTabs-DgmOF5Fe.js} +1 -1
  110. package/dist/web/assets/{CommandMenu-D9BimyPx.js → CommandMenu-CUNGtHwS.js} +1 -1
  111. package/dist/web/assets/CommunityView-CE7qeJnr.js +1 -0
  112. package/dist/web/assets/ComposerCreateImproveStrip-BixNsg2a.js +1 -0
  113. package/dist/web/assets/GetStartedView-B8gCwmBX.js +1 -0
  114. package/dist/web/assets/HostedModelLearningReview-CitgUNfC.js +1 -0
  115. package/dist/web/assets/HostedModelLearningSettings-WUaqzNsa.js +1 -0
  116. package/dist/web/assets/LabModelVersionDetailPage-Cx0kL69J.js +1 -0
  117. package/dist/web/assets/LabSkillSidebar-DRggqZ1j.js +1 -0
  118. package/dist/web/assets/LabsRoute-BujTZhqC.js +99 -0
  119. package/dist/web/assets/MainChatThread-CyA_644R.js +2 -0
  120. package/dist/web/assets/MainPane-DOWsSew1.css +1 -0
  121. package/dist/web/assets/MainPane-LaEtxydD.js +19 -0
  122. package/dist/web/assets/{MarkdownText-De0WzrEw.js → MarkdownText-DJI5LwT0.js} +19 -19
  123. package/dist/web/assets/{NativeSkillSidebar-B4jtf5RO.js → NativeSkillSidebar-CkFpWxjd.js} +1 -1
  124. package/dist/web/assets/{NewExperienceSwitcher-Bg1DVr96.js → NewExperienceSwitcher-DXcRHHsu.js} +1 -1
  125. package/dist/web/assets/{NewProjectDialog-i_wvIBw-.js → NewProjectDialog-gDzX_ZIJ.js} +1 -1
  126. package/dist/web/assets/OutputsPage-J_k-_N82.js +1 -0
  127. package/dist/web/assets/{ProjectsPage-BD0eml0M.js → ProjectsPage-BsyZmvlg.js} +1 -1
  128. package/dist/web/assets/RightChatPanelStack-Bz8puMUB.js +1 -0
  129. package/dist/web/assets/{RightSidebarHomePanel-BTpU5wGh.js → RightSidebarHomePanel-DmorYb6p.js} +1 -1
  130. package/dist/web/assets/ScheduledWorkPage-BFDzQUyL.js +1 -0
  131. package/dist/web/assets/SettingsView-BB7wCdbr.js +5 -0
  132. package/dist/web/assets/SettingsView-BnANbPLS.css +1 -0
  133. package/dist/web/assets/{TeamChatView-5LjuRNd6.js → TeamChatView-CZ3b7rq2.js} +2 -2
  134. package/dist/web/assets/{TerminalOverlay-BCWBSotQ.js → TerminalOverlay-Ck43Qri3.js} +12 -12
  135. package/dist/web/assets/{TrainingCreationPanel-hvOHRVJx.js → TrainingCreationPanel-ejqPZm3g.js} +1 -1
  136. package/dist/web/assets/{TrainingDraftPanel-CGEHGljE.js → TrainingDraftPanel-Cy2AQxxL.js} +1 -1
  137. package/dist/web/assets/{UsageSettingsSection-B8nbqhag.js → UsageSettingsSection-B7nyMItm.js} +1 -1
  138. package/dist/web/assets/WorkSidebarPanel-BfjAc097.js +1 -0
  139. package/dist/web/assets/WorkspaceDiffPanel-D9hAV8l7.js +14 -0
  140. package/dist/web/assets/WorkspaceEnvironmentMenu-B-K9XgFB.js +32 -0
  141. package/dist/web/assets/{WorkspaceGitDialogs-Dyx4Rbiy.js → WorkspaceGitDialogs-BJVFx_L3.js} +1 -1
  142. package/dist/web/assets/{WorkspaceMonacoEditor-B1dKexHo.js → WorkspaceMonacoEditor-p-FWMXoZ.js} +3 -3
  143. package/dist/web/assets/{arrow-up-right-CCj7SOGp.js → arrow-up-right-CFGI2YSt.js} +1 -1
  144. package/dist/web/assets/chunk-UHVJOMWN-BAlur2vw.js +1 -0
  145. package/dist/web/assets/{clipboard-BY6ELc9Z.js → clipboard-DIIxBort.js} +1 -1
  146. package/dist/web/assets/{cloud-upload-BOka5EKK.js → cloud-upload-BaQFNCTp.js} +1 -1
  147. package/dist/web/assets/{cssMode-C34j8ti5.js → cssMode-6LOkSggB.js} +1 -1
  148. package/dist/web/assets/{folder-open-CX2jidFj.js → folder-open-DZSxfPtr.js} +1 -1
  149. package/dist/web/assets/{folder-plus-Dh2Q9LP3.js → folder-plus-21v4D_Vx.js} +1 -1
  150. package/dist/web/assets/{git-commit-horizontal-CfevriuT.js → git-commit-horizontal-CgGixL64.js} +1 -1
  151. package/dist/web/assets/{htmlMode-BORwVkZg.js → htmlMode-B5uRraNd.js} +1 -1
  152. package/dist/web/assets/index-DJcUXSsN.css +1 -0
  153. package/dist/web/assets/{index-BBjRfC--.js → index-DOMrqhcz.js} +2 -2
  154. package/dist/web/assets/{info-Bv3dbs3G.js → info-BGTcmow7.js} +1 -1
  155. package/dist/web/assets/{jsonMode-BYWtZ6AK.js → jsonMode-D3m8N4Gi.js} +1 -1
  156. package/dist/web/assets/{lspLanguageFeatures-CEAdFSpU.js → lspLanguageFeatures-DoyipLsB.js} +1 -1
  157. package/dist/web/assets/{minimize-2-MhorZwY5.js → minimize-2-B01qSko4.js} +1 -1
  158. package/dist/web/assets/{monaco.contribution-ZUUVx_3M.js → monaco.contribution--U8v3jpa.js} +2 -2
  159. package/dist/web/assets/{monaco.contribution-CN7AWJNd.js → monaco.contribution-BJyfaGX2.js} +2 -2
  160. package/dist/web/assets/{monaco.contribution-CDhPpbIo.js → monaco.contribution-Bc22foTx.js} +2 -2
  161. package/dist/web/assets/{monaco.contribution-DHA7FuJX.js → monaco.contribution-DuRhJ6zU.js} +2 -2
  162. package/dist/web/assets/{monitor-DLcrkfM5.js → monitor-eZP8ZTHe.js} +1 -1
  163. package/dist/web/assets/play-CGsWFR_B.js +1 -0
  164. package/dist/web/assets/{python-CXwvPmc4.js → python-BNrLZWud.js} +1 -1
  165. package/dist/web/assets/{save-DaN65kMq.js → save-BLgjrccP.js} +1 -1
  166. package/dist/web/assets/{square-zRgIUdSv.js → square-CI1qNtvE.js} +1 -1
  167. package/dist/web/assets/{toggleHighContrast-DWeRZFzr.js → toggleHighContrast-B_GcTCnw.js} +1 -1
  168. package/dist/web/assets/{tsMode-nLBhKngY.js → tsMode-CmruH_ys.js} +1 -1
  169. package/dist/web/assets/{upload-BfUu4Eu1.js → upload-DnlgGS2x.js} +1 -1
  170. package/dist/web/assets/useLocalAgentSchedules-BBhGUfK-.js +1 -0
  171. package/dist/web/assets/useProviderSettings-Bw-csWbH.css +1 -0
  172. package/dist/web/assets/useProviderSettings-DfhdkKdC.js +5 -0
  173. package/dist/web/assets/{useSessionTurnCache-BQMWfV8u.js → useSessionTurnCache-BwscKl5i.js} +1 -1
  174. package/dist/web/assets/{wifi-off-bdka5es5.js → wifi-off-Dz-4EDCc.js} +1 -1
  175. package/dist/web/assets/{workers-z7XHFFNs.js → workers-Bi9u46cp.js} +1 -1
  176. package/dist/web/assets/{yaml-BTr4i4DD.js → yaml-DVTkiRnh.js} +1 -1
  177. package/dist/web/index.html +2 -2
  178. package/docs/command-reference.md +22 -0
  179. package/package.json +1 -2
  180. package/dist/chunks/actions-command-CRDLSPFA.js +0 -2
  181. package/dist/chunks/app-server-runtime-PJONTCCO.js +0 -2
  182. package/dist/chunks/apps-MD2DKEDW.js +0 -2
  183. package/dist/chunks/chunk-3BJ4P5LI.js +0 -520
  184. package/dist/chunks/chunk-3SRIPOJQ.js +0 -2
  185. package/dist/chunks/chunk-65BW2QXY.js +0 -2
  186. package/dist/chunks/chunk-6BL2ZIAP.js +0 -184
  187. package/dist/chunks/chunk-6QUICEQA.js +0 -5
  188. package/dist/chunks/chunk-7D2WMUWK.js +0 -3
  189. package/dist/chunks/chunk-7KIBRK3A.js +0 -4
  190. package/dist/chunks/chunk-ALZRXBEC.js +0 -33
  191. package/dist/chunks/chunk-ELNJUG64.js +0 -17
  192. package/dist/chunks/chunk-H3C4ZYEA.js +0 -16
  193. package/dist/chunks/chunk-HUBI3RUK.js +0 -2
  194. package/dist/chunks/chunk-HZP5U2AA.js +0 -3
  195. package/dist/chunks/chunk-KOR2AZVB.js +0 -24
  196. package/dist/chunks/chunk-M2YXYBSP.js +0 -2
  197. package/dist/chunks/chunk-MTJNKRXL.js +0 -22
  198. package/dist/chunks/chunk-NXUCGKY2.js +0 -5
  199. package/dist/chunks/chunk-PDIT2QS7.js +0 -8
  200. package/dist/chunks/chunk-QVRNOGAU.js +0 -21
  201. package/dist/chunks/chunk-TNXILYI6.js +0 -2
  202. package/dist/chunks/chunk-V6WBSW5Q.js +0 -3
  203. package/dist/chunks/chunk-VFTUP5NQ.js +0 -2
  204. package/dist/chunks/chunk-XWLI7WJH.js +0 -2160
  205. package/dist/chunks/cli-BKBH6FZY.js +0 -2
  206. package/dist/chunks/connected-evidence-UPUVVQ6P.js +0 -2
  207. package/dist/chunks/core-commands-SS2GV7WU.js +0 -2
  208. package/dist/chunks/datasets-TCLXV34N.js +0 -2
  209. package/dist/chunks/desktop-test-7ZHZHUB6.js +0 -3
  210. package/dist/chunks/dist-VDN6E54A.js +0 -2
  211. package/dist/chunks/evaluation-coordination-ZX5GLMRC.js +0 -2
  212. package/dist/chunks/experiment-improvements-O6DCQXCX.js +0 -2
  213. package/dist/chunks/experiments-JOQOBQXY.js +0 -2
  214. package/dist/chunks/hosted-experiment-improvement-IKO677PI.js +0 -3
  215. package/dist/chunks/hosted-harness-runtime-H2Q2SNZT.js +0 -2
  216. package/dist/chunks/hosted-profile-candidate-FHHSLJNO.js +0 -3
  217. package/dist/chunks/hosted-profile-compiler-5B256VV3.js +0 -2
  218. package/dist/chunks/hosted-profile-evaluation-control-Z25TZOW4.js +0 -2
  219. package/dist/chunks/hosted-profile-evaluation-inspection-MFYPLTZQ.js +0 -3
  220. package/dist/chunks/hosted-profile-evaluation-preparation-MAB2PSCC.js +0 -3
  221. package/dist/chunks/human-review-6H3BW7OZ.js +0 -2
  222. package/dist/chunks/learning-Y6WNDVQW.js +0 -2
  223. package/dist/chunks/opchat-3E4FH3DC.js +0 -3
  224. package/dist/chunks/organizations-PRVCUPMN.js +0 -2
  225. package/dist/chunks/project-agent-ZX3CELKI.js +0 -2
  226. package/dist/chunks/sandbox-command-HHQMZK3G.js +0 -2
  227. package/dist/chunks/src-MAZ7OBVY.js +0 -327
  228. package/dist/web/assets/App-BgeSqoRS.css +0 -1
  229. package/dist/web/assets/App-C6EWFrLP.js +0 -227
  230. package/dist/web/assets/AppsView-9zpKBSLv.js +0 -1
  231. package/dist/web/assets/AppsView-CzbB5pXp.css +0 -1
  232. package/dist/web/assets/BrowserSidebar-Xo21N1ej.js +0 -1
  233. package/dist/web/assets/CommunityView-BoW-yLju.js +0 -1
  234. package/dist/web/assets/ComposerCreateImproveStrip-BIKVEgr1.js +0 -1
  235. package/dist/web/assets/GetStartedView-B99v4-hh.js +0 -1
  236. package/dist/web/assets/HostedModelLearningReview-DEScpX2Z.js +0 -1
  237. package/dist/web/assets/HostedModelLearningSettings-4HT5eEiL.js +0 -1
  238. package/dist/web/assets/LabModelVersionDetailPage-DkYdI7gr.js +0 -1
  239. package/dist/web/assets/LabSkillSidebar-Bp5XYipm.js +0 -1
  240. package/dist/web/assets/LabsRoute-VopO7n34.js +0 -105
  241. package/dist/web/assets/MainChatThread-3Gg0oDZT.js +0 -2
  242. package/dist/web/assets/MainPane-CUqMVG9-.js +0 -19
  243. package/dist/web/assets/OutputsPage-CZiPxLyN.js +0 -1
  244. package/dist/web/assets/RightChatPanelStack-CEBFPHKP.js +0 -1
  245. package/dist/web/assets/ScheduledWorkPage-Y6XGoh-X.js +0 -1
  246. package/dist/web/assets/SettingsView-C7av3zwv.css +0 -1
  247. package/dist/web/assets/SettingsView-Kh14f463.js +0 -9
  248. package/dist/web/assets/WorkSidebarPanel-B6hlPEIs.js +0 -1
  249. package/dist/web/assets/WorkspaceDiffPanel-q8A15-0x.js +0 -14
  250. package/dist/web/assets/WorkspaceEnvironmentMenu-BiFTPWtC.js +0 -32
  251. package/dist/web/assets/chunk-DJWHN7NU-1eQoMoKO.js +0 -1
  252. package/dist/web/assets/index-B9VSiz_z.css +0 -1
  253. package/dist/web/assets/refresh-cw-BTfIxHb3.js +0 -1
  254. package/dist/web/assets/useLocalAgentSchedules-BCITWhg2.js +0 -1
@@ -0,0 +1 @@
1
+ import{r as i}from"./index-DOMrqhcz.js";import{G as s}from"./App-BI-uOpnP.js";const m=5e3;function _(t){const[h,n]=i.useState([]),[y,r]=i.useState(!1),[p,l]=i.useState(null),[o,w]=i.useState(()=>new Set);i.useEffect(()=>{if(!t){n([]),l(null),r(!1);return}const e=t;let a=!1;async function d(S){if(!a){S&&r(!0);try{const g=await s.localAgentSchedules(e);if(a)return;n(g.schedules),l(null)}catch(g){a||l(f(g))}finally{!a&&S&&r(!1)}}}d(!0);const u=window.setInterval(()=>{d(!1)},m);return()=>{a=!0,window.clearInterval(u)}},[t]);async function A(){if(t){r(!0);try{const e=await s.syncLocalAgentSchedules(t);n(e.schedules),l(null)}catch(e){l(f(e))}finally{r(!1)}}}async function E(e){if(!(!t||o.has(e.id))){c(e.id,!0);try{await s.runLocalAgentSchedule(t,e.id);const a=await s.localAgentSchedules(t);n(a.schedules),l(null)}catch(a){l(f(a))}finally{c(e.id,!1)}}}async function L(e){if(!(!t||o.has(e.id))){c(e.id,!0);try{await s.patchLocalAgentSchedule(t,e.id,{enabled:!e.enabled});const a=await s.localAgentSchedules(t);n(a.schedules),l(null)}catch(a){l(f(a))}finally{c(e.id,!1)}}}function c(e,a){w(d=>{const u=new Set(d);return a?u.add(e):u.delete(e),u})}return{error:p,loading:y,pendingScheduleIds:o,refresh:A,run:E,schedules:h,toggle:L}}function f(t){return t instanceof Error?t.message:String(t)}export{_ as u};
@@ -0,0 +1 @@
1
+ .account-summary,.account-list,.provider-settings-form,.diagnostics-log-panel,.settings-footnote{border:1px solid var(--border);border-radius:16px;background:#181818}.account-summary{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:17px 18px}.account-summary-main>div{display:grid;gap:5px}.account-summary span,.account-summary small,.account-list-heading small,.account-details span,.product-row span,.settings-footnote span,.empty-account-list span{color:#9b9b9b;font-size:12px}.account-summary strong{color:#f7f7f7;font-size:15px}.account-summary-main{display:grid;grid-template-columns:38px minmax(0,1fr);align-items:center;gap:12px;min-width:0}.account-summary .account-summary-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px}.account-summary-main>div{min-width:0}.account-summary-main strong,.account-summary-main small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-summary-meta{display:flex;align-items:center;gap:8px;min-width:0}.account-summary-meta small{flex:0 1 auto;max-width:min(260px,44vw)}.account-summary-meta .account-summary-copy{max-width:min(520px,52vw);overflow:visible;text-overflow:clip;white-space:normal;line-height:1.35}.account-team-dropdown.compact{flex:0 1 auto;justify-self:auto;min-width:0}.account-team-dropdown.compact .dropdown-trigger{max-width:220px;height:24px;padding:0 6px}.account-team-dropdown .dropdown-menu{min-width:100%}.private-account-email{display:inline-block;filter:blur(4px);transition:filter .12s ease;-webkit-user-select:none;user-select:none}.private-account-email:hover,.private-account-email:focus-visible{filter:none;-webkit-user-select:text;user-select:text}.private-account-email:focus-visible{outline:1px solid rgba(58,163,255,.55);outline-offset:2px}.provider-settings-form{overflow:visible;position:relative;z-index:1}.provider-settings-form>.account-list-heading{border-bottom:0}.provider-state-pill{display:inline-flex;align-items:center;justify-content:center;min-height:24px;max-width:150px;border-radius:999px;padding:0 9px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;background:#ffffff14;color:#bdbdbd}.provider-state-pill.muted{background:#ffffff14;color:#bdbdbd}.provider-row-status.muted{color:#bdbdbd}.provider-state-pill.ready{background:#50c87821;color:#8ddfa8}.provider-state-pill.configured{background:#3aa3ff21;color:#8fc8ff}.provider-state-pill.warning{background:#ff7a2f21;color:#ffad7d}.provider-manager-panel{border:1px solid var(--border);border-radius:16px;background:#181818;overflow:hidden}.provider-manager-scroll{display:grid;max-height:568px;overflow-y:auto;scrollbar-color:#343434 #161616;scrollbar-width:thin}.provider-manager-heading{align-items:center}.provider-manager-title-row{display:inline-flex;align-items:center;gap:12px;min-width:0}.settings-check-row.provider-subscription-filter{display:inline-flex;align-items:center;gap:6px;grid-template-columns:none;max-width:none;padding:0;color:#bdbdbd;font-size:12px;white-space:nowrap;cursor:pointer}.settings-check-row.provider-subscription-filter>span{display:block;min-width:0}.settings-check-row.provider-subscription-filter input[type=checkbox]{width:14px;height:14px;margin:0;border-radius:4px}.settings-check-row.provider-subscription-filter input[type=checkbox]:before{width:7px;height:4px}.provider-manager-empty{border:0;border-radius:0;background:transparent;padding:22px 16px}.provider-manager-scroll::-webkit-scrollbar,.provider-details-dialog::-webkit-scrollbar{width:10px}.provider-manager-scroll::-webkit-scrollbar-track,.provider-details-dialog::-webkit-scrollbar-track{background:#161616}.provider-manager-scroll::-webkit-scrollbar-thumb,.provider-details-dialog::-webkit-scrollbar-thumb{border:2px solid #161616;border-radius:999px;background:#343434}.provider-manager-scroll::-webkit-scrollbar-thumb:hover,.provider-details-dialog::-webkit-scrollbar-thumb:hover{background:#464646}.provider-manager-row{display:grid;grid-template-columns:44px minmax(160px,1fr) minmax(240px,.82fr) auto;align-items:center;gap:14px;min-height:48px;padding:10px 14px;border-bottom:1px solid rgba(255,255,255,.06)}.provider-manager-row:last-child{border-bottom:0}.provider-toggle{position:relative;display:inline-flex;align-items:center;justify-content:center;width:38px;height:28px}.provider-toggle input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}.provider-toggle input:disabled{cursor:default}.provider-toggle span{position:relative;width:34px;height:20px;border-radius:999px;background:#ffffff1f;transition:background .12s ease}.provider-toggle span:after{content:"";position:absolute;top:3px;left:3px;width:14px;height:14px;border-radius:50%;background:#b8b8b8;transition:transform .12s ease,background .12s ease}.provider-toggle input:checked+span{background:#06b6d452}.provider-toggle input:checked+span:after{transform:translate(14px);background:var(--cyan)}.provider-toggle input:focus-visible+span{outline:1px solid rgba(6,182,212,.6);outline-offset:2px}.provider-toggle input:disabled+span{opacity:.48}.provider-row-main{min-width:0}.provider-row-main strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;color:#f2f2f2}.provider-row-status{display:inline-flex;align-items:center;justify-content:flex-start;gap:6px;min-width:0;color:#bdbdbd;font-size:12px}.provider-row-status span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.provider-row-status.ready{color:var(--cyan)}.provider-row-status.configured{color:#8fc8ff}.provider-row-status.warning{color:#ffad7d}.provider-row-status .settings-spin{flex:0 0 auto}.provider-details-button{width:86px}.provider-dialog-backdrop{z-index:90}.git-dialog.provider-details-dialog{width:min(760px,calc(100vw - 36px));max-height:min(760px,calc(100vh - 52px));overflow:auto;scrollbar-color:#343434 #161616;scrollbar-width:thin}.provider-dialog-header{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:16px;padding:20px 48px 16px 20px;border-bottom:1px solid rgba(255,255,255,.08)}.provider-dialog-header h2{margin:0;color:#f6f6f6;font-size:18px;font-weight:620}.provider-dialog-header span{color:#9b9b9b;font-size:12px}.provider-dialog-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin:0;padding:8px 20px 14px}.provider-dialog-stats div{display:grid;grid-template-columns:92px minmax(0,1fr);align-items:center;gap:10px;min-height:32px}.provider-dialog-stats .provider-dialog-error{grid-column:1 / -1}.provider-dialog-stats dt{color:#9b9b9b;font-size:12px}.provider-dialog-stats dd{min-width:0;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#f2f2f2;font-size:13px}.provider-dialog-body{display:grid;gap:12px;padding-bottom:6px}.provider-card-form{display:grid;gap:12px;padding:0 20px 16px}.provider-card-form+.provider-card-form{padding-top:2px;border-top:1px solid rgba(255,255,255,.06)}.provider-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.provider-mode-tabs{justify-self:stretch;width:auto;margin:12px 20px 0}.provider-credential-panel,.provider-subscription-panel{display:grid;gap:12px;min-width:0}.credential-form .provider-dialog-note{margin:0}.provider-credential-panel .settings-button-row,.provider-subscription-panel .settings-button-row{padding:0}.provider-dialog-note{display:flex;align-items:center;gap:8px;margin:0 20px 20px;border:1px solid rgba(255,122,47,.22);border-radius:10px;background:#ff7a2f14;padding:10px 12px;color:#ffad7d;font-size:13px}.provider-dialog-note.xai-provider-note,.provider-dialog-note.subscription-provider-note{border-color:#3aa3ff33;background:#3aa3ff14;color:#9bd0ff}.provider-dialog-note code{border-radius:4px;background:#ffffff14;padding:1px 4px;color:#f2f2f2;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:12px}.codex-provider-actions{padding:0 20px 20px}.provider-validation-message strong{white-space:pre-line}.account-dialog-advanced-fields{display:grid;gap:12px}.provider-settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:14px 16px 12px}.provider-settings-grid.single{grid-template-columns:minmax(0,1fr);max-width:380px}.settings-path-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px;max-width:640px;padding:14px 16px 12px}.lsp-language-list{display:grid}.lsp-language-row{display:grid;grid-template-columns:minmax(120px,.8fr) minmax(150px,.7fr) minmax(180px,1.2fr);align-items:end;gap:12px;min-width:0;padding:14px 16px;border-bottom:1px solid rgba(255,255,255,.06)}.lsp-language-row:last-child{border-bottom:0}.lsp-language-label{display:grid;gap:4px;min-width:0;padding-bottom:7px}.lsp-language-label strong{color:#f6f6f6;font-size:13px;font-weight:550}.lsp-language-label span{color:#9b9b9b;font-size:12px}.lsp-status-row{display:grid;grid-template-columns:minmax(0,1fr) auto}.lsp-status-pill{display:inline-flex;align-items:center;justify-content:center;min-height:24px;border-radius:999px;padding:0 9px;white-space:nowrap;font-size:12px;background:#242424;color:#bdbdbd}.lsp-status-pill.found{background:#50c87821;color:#8ddfa8}.lsp-status-pill.missing,.lsp-status-pill.error{background:#ff7a2f21;color:#ffad7d}.lsp-status-pill.disabled{background:#ffffff14;color:#a8a8a8}.settings-select-field{position:relative;display:grid;gap:6px;min-width:0}.settings-select-field span{color:#9b9b9b;font-size:12px}.settings-select-field small{min-width:0;color:#8f8f8f;font-size:11px;line-height:1.35}.settings-select-field input,.settings-select-field select{width:100%;min-width:0;height:36px;border:1px solid rgba(255,255,255,.08);border-radius:8px;outline:0;background:#101010;color:var(--text);padding:0 10px;font-size:13px}.settings-select-field select{appearance:none;background:linear-gradient(45deg,transparent 50%,#9b9b9b 50%) calc(100% - 16px) 50% / 5px 5px no-repeat,linear-gradient(135deg,#9b9b9b 50%,transparent 50%) calc(100% - 11px) 50% / 5px 5px no-repeat,#101010;padding-right:32px}.settings-select-field input:focus,.settings-select-field select:focus{border-color:#06b6d480}.settings-check-row{display:grid;grid-template-columns:18px minmax(0,1fr);align-items:start;gap:10px;max-width:560px;padding:2px 16px 16px;color:var(--text)}.settings-check-row input[type=checkbox]{-webkit-appearance:none;appearance:none;display:grid;place-content:center;width:16px;height:16px;margin:2px 0 0;border:1px solid rgba(255,255,255,.18);border-radius:5px;outline:0;background:#101010;cursor:pointer;transition:border-color .12s ease,background .12s ease,opacity .12s ease}.settings-check-row input[type=checkbox]:before{content:"";width:8px;height:5px;margin-top:-1px;border-bottom:2px solid #061317;border-left:2px solid #061317;transform:rotate(-45deg) scale(0);transition:transform .12s ease}.settings-check-row input[type=checkbox]:checked{border-color:#06b6d4e0;background:var(--cyan)}.settings-check-row input[type=checkbox]:checked:before{transform:rotate(-45deg) scale(1)}.settings-check-row input[type=checkbox]:focus-visible{outline:2px solid rgba(6,182,212,.35);outline-offset:2px}.settings-check-row input[type=checkbox]:disabled{cursor:not-allowed;opacity:.48}.settings-check-row span{display:grid;gap:4px;min-width:0}.settings-check-row strong{font-size:13px;font-weight:500}.settings-check-row small{color:#8d8d8d;font-size:12px;line-height:1.4}.settings-check-row.compact{padding:0}.settings-check-row.inline{max-width:none}.subagents-settings{max-width:980px}.subagent-settings-title-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;margin-bottom:0}.subagent-settings-title-row h1{margin:0}.subagent-settings-actions{display:inline-flex;align-items:center;justify-content:flex-end;gap:10px;min-width:0}.subagent-settings-form{display:grid;gap:18px;min-width:0}.subagent-settings-section{display:grid;gap:12px;min-width:0;padding-bottom:18px;border-bottom:1px solid rgba(255,255,255,.08)}.subagent-settings-card-header{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;min-width:0}.subagent-settings-card-header>div{min-width:0}.subagent-settings-card-header>div>span{min-width:0;overflow:hidden;color:#f2f2f2;font-size:14px;font-weight:620;text-overflow:ellipsis;white-space:nowrap}.subagent-settings-card-header>div>small{min-width:0;color:#9b9b9b;font-size:12px;line-height:1.35}.subagent-field-grid{display:grid;gap:12px;min-width:0}.subagent-field-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.subagent-field-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.subagent-role-list{display:grid;min-width:0}.subagent-role-row{display:grid;gap:12px;min-width:0;padding:14px 0;border-bottom:1px solid rgba(255,255,255,.08)}.subagent-role-row:first-child{padding-top:0}.subagent-role-row.disabled{opacity:.64}.subagent-role-header{grid-template-columns:minmax(0,1fr) auto}.subagent-role-title{display:grid;gap:3px;min-width:0}.subagent-role-title span,.subagent-role-title small{min-width:0;overflow:hidden;text-overflow:ellipsis}.subagent-role-title span{color:#f2f2f2;font-size:14px;font-weight:620;white-space:nowrap}.subagent-role-title small{color:#9b9b9b;font-size:12px;line-height:1.35}.subagent-role-controls{display:grid;grid-template-columns:minmax(220px,1.25fr) repeat(3,minmax(140px,.75fr));align-items:end;gap:12px;min-width:0}.subagent-role-budget-grid{display:grid;grid-template-columns:repeat(3,minmax(140px,1fr));align-items:end;gap:12px;min-width:0}.subagents-settings .provider-toggle{width:44px;height:30px}.subagents-settings .provider-toggle>span{width:40px;height:22px;border:1px solid rgba(255,255,255,.1);background:#ffffff1a}.subagents-settings .provider-toggle>span:after{top:2px;left:2px;width:16px;height:16px;background:#a9a9a9}.subagents-settings .provider-toggle input:checked+span{border-color:#06b6d46b;background:#06b6d442}.subagents-settings .provider-toggle input:checked+span:after{transform:translate(18px);background:var(--cyan)}@media(max-width:820px){.subagent-field-grid.two,.subagent-field-grid.four,.subagent-role-controls,.subagent-role-budget-grid{grid-template-columns:minmax(0,1fr)}}.settings-radio-group{display:grid;gap:10px;padding:0 16px 16px;max-width:640px}.settings-radio-row{display:flex;align-items:flex-start;gap:10px;min-width:0;color:var(--text)}.settings-radio-row input{margin-top:3px}.settings-radio-row span{display:grid;gap:4px;min-width:0}.settings-radio-row strong{font-size:13px;font-weight:500}.settings-radio-row small{color:#8d8d8d;font-size:12px;line-height:1.4}.personalization-editor{padding:0 16px 14px}.settings-select-field textarea{width:100%;min-width:0;min-height:210px;resize:vertical;border:1px solid rgba(255,255,255,.08);border-radius:8px;outline:0;background:#101010;color:var(--text);padding:11px 12px;font:13px/1.5 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace}.settings-select-field textarea:focus{border-color:#3aa3ff73}.settings-button-row{display:flex;flex-wrap:wrap;gap:10px;padding:0 16px 16px}@media(max-width:820px){.provider-status-grid,.provider-card-grid,.provider-deferred-grid{grid-template-columns:minmax(0,1fr)}.provider-state-pill{position:static;justify-self:start;margin:0 16px 10px}.provider-status-card>.account-list-heading{padding-right:16px}}.settings-button-row.compact{padding:0}.settings-heading-actions{display:inline-flex;align-items:center;gap:9px;min-width:0}.settings-heading-actions small{min-width:0}.settings-heading-input{width:min(240px,34vw);min-width:120px;height:32px;border:1px solid rgba(255,255,255,.08);border-radius:8px;outline:0;background:#101010;color:var(--text);padding:0 10px;font-size:13px}.settings-heading-input:focus{border-color:#3aa3ff73}.settings-primary,.settings-secondary,.settings-icon-button,.inline-action{display:inline-flex;align-items:center;justify-content:center;border:0;background:#2a2a2a;color:#f5f5f5}.settings-primary{gap:7px;height:34px;margin:0 16px 16px;border-radius:10px;padding:0 12px;font-size:13px}.settings-secondary{gap:7px;height:34px;border-radius:10px;padding:0 12px;font-size:13px}.settings-secondary.compact{height:28px;border-radius:8px;padding:0 9px;font-size:12px}.settings-icon-button{width:32px;height:32px;border-radius:8px;padding:0}.settings-icon-button.primary,.settings-icon-button.active{background:#353535;color:#fff}.settings-icon-button.ghost{background:transparent;color:#a8a8a8}.settings-button-row .settings-primary,.settings-button-row .settings-icon-button{margin:0}.settings-primary:hover:not(:disabled),.settings-secondary:hover:not(:disabled),.settings-icon-button:hover:not(:disabled),.inline-action:hover:not(:disabled){background:#363636}.settings-icon-button.ghost:hover:not(:disabled){background:#ffffff0f;color:#fff}.settings-primary:disabled,.settings-secondary:disabled,.settings-icon-button:disabled,.inline-action:disabled{opacity:.5}.subagent-save-button{margin:0}.subagent-save-button.dirty:not(:disabled){background:var(--cyan);color:#061317}.subagent-save-button.dirty:hover:not(:disabled){background:#22d3ee}.settings-spin{animation:settings-spin .9s linear infinite}@media(max-width:820px){.provider-manager-row{grid-template-columns:36px minmax(120px,1fr) minmax(120px,.8fr) auto;gap:10px}.provider-details-button{width:74px}.provider-card-grid,.provider-dialog-stats,.subagent-role-controls,.provider-dialog-header{grid-template-columns:minmax(0,1fr)}}@keyframes settings-spin{to{transform:rotate(360deg)}}.native-agent-setup{padding:16px 20px}.native-agent-setup .provider-card-form{padding:0}.native-agent-setup p{margin:0}.account-list{overflow:hidden}.account-list-heading{display:flex;justify-content:space-between;gap:16px;padding:14px 16px;border-bottom:1px solid var(--border);color:#f5f5f5;font-size:13px}.account-list-note{margin:0;padding:10px 16px;border-bottom:1px solid rgba(255,255,255,.06);color:#9b9b9b;font-size:12px}.account-row{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:12px;min-height:66px;padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.06)}.account-row:last-child{border-bottom:0}.profile-footline{color:#9b9b9b;font-size:11px}.profile-footline.warning{color:#ffad7d}.profile-control-panel{display:grid;gap:12px;padding:0}.profile-control-panel.inline{margin-top:10px;border:1px solid rgba(255,255,255,.07);border-radius:12px;background:#ffffff06;padding:14px 16px}.profile-control-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0}.profile-control-actions{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-start;gap:8px}.profile-hosted-status{display:inline-flex;align-items:center;min-height:32px;gap:7px;border-left:1px solid var(--border);margin-left:2px;padding-left:12px;color:var(--muted);white-space:nowrap}.profile-hosted-status>span{font-size:11px}.profile-hosted-status>strong{max-width:180px;overflow:hidden;color:var(--text);font-size:12px;font-weight:560;text-overflow:ellipsis}.profile-local-status{min-width:0;max-width:min(520px,48vw);overflow:hidden;color:var(--muted);font-size:11px;line-height:1.4;text-align:right;text-overflow:ellipsis;white-space:nowrap}.profile-local-status.dirty,.profile-local-status.pending_commit{color:#d7ae59}.profile-local-status.error{color:#db7779}.profile-commit-dialog,.profile-path-dialog,.profile-sync-dialog{width:min(460px,calc(100vw - 34px))}.profile-sync-dialog{width:min(520px,calc(100vw - 34px))}.profile-sync-explainer{margin:0;color:#b8b8b8;font-size:12px;line-height:1.5}.profile-dialog-summary{display:grid;gap:4px;min-width:0;border:1px solid rgba(255,255,255,.08);border-radius:10px;background:#ffffff09;padding:10px 12px}.profile-dialog-summary strong,.profile-dialog-summary span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-dialog-summary strong{color:#f6f6f6;font-size:13px;font-weight:620}.profile-dialog-summary span{color:#aaa;font-size:12px}.profile-dialog-diff-list{display:grid;gap:7px;max-height:min(260px,36vh);overflow:auto;scrollbar-color:#484848 transparent}.profile-dialog-diff-row{display:grid;gap:3px;min-width:0;border:1px solid rgba(255,255,255,.08);border-radius:9px;background:#ffffff06;padding:9px 10px}.profile-dialog-diff-row.warning{border-color:#ffc45738;background:#ffc45714}.profile-dialog-diff-row strong,.profile-dialog-diff-row span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-dialog-diff-row strong{color:#f4f4f4;font-size:12px;font-weight:620}.profile-dialog-diff-row span{color:#aaa;font-size:12px}.profile-dialog-warning{border:1px solid rgba(255,122,47,.28);border-radius:9px;background:#ff7a2f17;color:#ffad7d;padding:9px 10px;font-size:12px}.profile-commit-dialog .git-dialog-footer,.profile-path-dialog .git-dialog-footer,.profile-sync-dialog .git-dialog-footer{flex-wrap:wrap}.account-avatar{display:grid;place-items:center;width:34px;height:34px;border-radius:17px;background:#06b6d41f;color:var(--cyan);font-weight:650;overflow:hidden}.account-avatar img{width:100%;height:100%;object-fit:cover}.account-details{display:grid;gap:3px;min-width:0}.account-details strong,.account-details span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-details strong{color:#f6f6f6;font-size:14px;font-weight:550}.account-row-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;min-width:0}.account-endpoint-action{flex:none;margin-left:6px}.git-dialog.account-endpoint-dialog{width:min(520px,calc(100vw - 34px));max-height:calc(100vh - 32px);overflow-y:auto}.account-dialog-details{display:grid;gap:8px;border:1px solid rgba(255,255,255,.08);border-radius:10px;background:#ffffff06;padding:12px}.account-dialog-details>div{display:grid;grid-template-columns:90px minmax(0,1fr);gap:10px;font-size:12px}.account-dialog-details span{color:#aaa}.account-dialog-details strong{overflow-wrap:anywhere;color:#f3f3f3;font-weight:550}.account-dialog-footer{justify-content:flex-end;flex-wrap:wrap}.account-dialog-save-actions{display:flex;flex-wrap:nowrap;justify-content:flex-end;gap:8px}.git-dialog-secondary.account-dialog-remove{display:inline-flex;align-items:center;gap:7px;border:1px solid #d94b42;background:#d94b42;color:#fff}.git-dialog-secondary.account-dialog-remove:hover:not(:disabled){border-color:#bd3d36;background:#bd3d36;color:#fff}.account-dialog-advanced{border:1px solid rgba(255,255,255,.1);border-radius:10px}.account-dialog-advanced summary{cursor:pointer;padding:11px 12px;font-size:13px;font-weight:550}.account-dialog-advanced[open] summary{border-bottom:1px solid rgba(255,255,255,.1)}.account-dialog-advanced-fields{padding:12px}.active-pill,.account-state{display:inline-flex;align-items:center;justify-content:center;min-height:24px;border-radius:12px;padding:0 9px;white-space:nowrap;font-size:12px}.active-pill{background:#3aa3ff24;color:#77bdff}.inline-action{gap:5px;min-height:24px;border-radius:12px;padding:0 10px;white-space:nowrap;font-size:12px}.inline-action.danger{background:#eb57571a;color:#ff9b9b}.inline-action.danger:hover:not(:disabled){background:#eb57572e;color:#ffc0c0}.account-remove-action{width:24px;padding:0}.account-state{background:#242424;color:#bdbdbd}.account-state.signed_in{background:#50c87821;color:#8ddfa8}.account-state.signed_out,.account-state.auth_error{background:#ff7a2f21;color:#ffad7d}.account-state.ready{background:#50c87821;color:#8ddfa8}.account-state.warning{background:#ffc45724;color:#ffd38a}.account-state.loading{background:#3aa3ff24;color:#77bdff}.account-state.disabled{background:#ffffff12;color:#858585}.empty-account-list{display:grid;gap:5px;padding:18px 16px}.empty-account-list strong{color:#f5f5f5;font-size:14px}.product-row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:58px;padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.06)}.product-row:last-child{border-bottom:0}.product-row div{display:grid;gap:3px;min-width:0}.product-row strong,.product-row span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.product-row strong{color:#f6f6f6;font-size:13px;font-weight:550}.profile-agent-list{border:0;border-radius:0;background:transparent}.profile-agent-list-heading{border-bottom:0;padding:0 0 10px}.profile-table-frame{width:100%;overflow-x:auto;border:1px solid var(--border);border-radius:9px;background:var(--panel)}.profile-data-table{width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed}.profile-agent-table{min-width:600px}.profile-agent-column{width:38%}.profile-action-column{width:18%}.profile-check-column{width:16%}.profile-sync-column{width:28%}.profile-data-table th,.profile-data-table td{min-width:0;border-right:1px solid rgba(255,255,255,.07);border-bottom:1px solid rgba(255,255,255,.07);padding:12px 14px;text-align:left;vertical-align:middle}.profile-data-table th:last-child,.profile-data-table td:last-child{border-right:0}.profile-data-table tbody tr:last-child td{border-bottom:0}.profile-data-table th{padding-block:10px;background:var(--panel-soft);color:#858585;font-size:11px;font-weight:560}.profile-data-table strong,.profile-data-table span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-data-table strong{color:#f6f6f6;font-size:13px;font-weight:550}.profile-skill-list{border:0;border-radius:0;background:transparent}.profile-skill-heading-actions{display:inline-flex;align-items:center;gap:10px}.profile-skill-table{min-width:820px}.profile-skill-name-column{width:23%}.profile-skill-trigger-column{width:29%}.profile-skill-status-column{width:10%}.profile-skill-source-column{width:22%}.profile-skill-actions-column{width:16%}.profile-skill-description{overflow:hidden;color:#a9a9a9;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.profile-skill-source{display:block;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-skill-actions{display:inline-flex;align-items:center;gap:8px;min-width:0}.profile-agent-table .profile-schedule-actions{display:grid;grid-template-columns:minmax(0,1fr) max-content;align-items:center;justify-content:flex-end;gap:6px;min-width:0}.profile-schedule-expression{flex:1 1 auto;min-width:0;color:#a9a9a9;font-size:12px;text-align:right}.profile-agent-table .profile-schedule-controls{display:inline-flex;align-items:center;flex:0 0 auto;flex-wrap:nowrap;gap:6px;min-width:max-content;white-space:nowrap}.profile-schedule-button{width:28px;height:28px;flex:0 0 auto}.profile-agent-list-note{padding:8px 16px 12px}.profile-agent-identity{display:grid;grid-template-columns:22px minmax(0,1fr);align-items:center;gap:12px;min-width:0}.profile-agent-identity>div{display:grid;gap:3px;min-width:0}.profile-agent-action{min-width:0}.profile-agent-action span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#a9a9a9;font-size:12px}.profile-status-text{display:inline-flex;align-items:center;gap:6px;min-width:0;color:#bdbdbd;font-size:12px;white-space:nowrap}.profile-status-text:before{content:"";width:6px;height:6px;flex:0 0 auto;border-radius:50%;background:currentColor;opacity:.85}.profile-status-text.ready{color:#8ddfa8}.profile-status-text.warning{color:#ffd38a}.profile-status-text.loading{color:#77bdff}.profile-status-text.disabled{color:#858585}@container profile-view (max-width: 840px){.profile-control-toolbar{align-items:flex-start;flex-direction:column}.profile-local-status{max-width:100%;text-align:left}}.settings-footnote{display:flex;justify-content:space-between;gap:18px;min-width:0;max-width:100%;padding:12px 16px}.settings-footnote.warning{border-color:#ff7a2f3d}.settings-footnote strong{min-width:0;overflow-wrap:anywhere;white-space:normal;word-break:break-word;color:#d9d9d9;font-size:12px;font-weight:500}.account-build-footnote{align-items:center}.account-build-details{display:grid;gap:4px;min-width:0}.account-build-version,.account-build-actions{display:flex;align-items:center;gap:8px}.account-build-context{display:inline-flex;align-items:center;min-height:20px;border-radius:999px;padding:0 7px;background:#ffffff14;color:#bdbdbd;font-size:11px;font-weight:500}.account-build-context.development{background:#3aa3ff21;color:#8fc8ff}.account-build-actions{flex:0 0 auto;justify-content:flex-end}.account-build-actions .settings-primary,.account-build-actions .settings-secondary{margin:0}.account-build-actions .settings-primary.compact{height:28px;border-radius:8px;padding:0 9px;font-size:12px}.account-error-footnote{align-items:flex-start}.account-error-footnote strong{flex:1 1 420px;max-width:min(620px,75%);color:#ffbd96;line-height:1.45;text-align:right}.diagnostics-log-panel{overflow:hidden}.diagnostics-log-actions{justify-content:flex-end;flex-wrap:wrap}.diagnostics-error-list{display:grid;align-content:start;max-height:min(34vh,340px);overflow:auto;scrollbar-color:#424242 transparent}.diagnostics-error-entry{display:grid;grid-template-columns:18px minmax(0,1fr);gap:10px;padding:12px 14px;border-top:1px solid rgba(255,255,255,.06);color:#ffb0a4;content-visibility:auto;contain-intrinsic-size:86px}.diagnostics-error-entry:first-child{border-top:0}.diagnostics-error-entry svg{margin-top:2px;color:#ff8f7d}.diagnostics-error-body{display:grid;gap:6px;min-width:0}.diagnostics-error-title{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px;min-width:0}.diagnostics-error-title strong{min-width:0;color:#f4f4f4;font-size:13px;font-weight:650;line-height:1.35;overflow-wrap:anywhere}.diagnostics-error-title time,.diagnostics-error-meta{color:#9b9b9b;font-size:12px}.diagnostics-error-meta{display:flex;flex-wrap:wrap;gap:6px}.diagnostics-error-meta span{min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.diagnostics-error-detail{min-width:0}.diagnostics-error-detail summary{width:fit-content;cursor:pointer;color:#d8d8d8;font-size:12px}.diagnostics-error-detail pre{max-height:180px;margin:8px 0 0;overflow:auto;border:1px solid rgba(255,255,255,.08);border-radius:8px;background:#0f0f0f;color:#dcdcdc;padding:9px 10px;font:12px/1.45 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;white-space:pre-wrap;overflow-wrap:anywhere}.diagnostics-error-empty{display:grid;place-items:center;min-height:120px;color:#8f8f8f;font-size:13px}.diagnostics-log-viewer{display:grid;align-content:start;max-height:min(46vh,420px);min-height:260px;overflow:auto;background:#0f0f0f;scrollbar-color:#424242 transparent}.diagnostics-log-entry{display:grid;grid-template-columns:118px minmax(0,1fr);gap:10px;min-width:max-content;padding:5px 12px;border-bottom:1px solid rgba(255,255,255,.045);content-visibility:auto;contain-intrinsic-size:26px}.diagnostics-log-source{color:#8f8f8f;font:12px/1.45 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;white-space:nowrap}.diagnostics-log-entry code{color:#dcdcdc;font:12px/1.45 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;white-space:pre}.diagnostics-log-empty{display:grid;place-items:center;min-height:260px;color:#8f8f8f;font-size:13px}.diagnostics-log-dir{display:flex;justify-content:space-between;gap:18px;padding:10px 14px;border-top:1px solid rgba(255,255,255,.06)}.diagnostics-log-dir span{color:#9b9b9b;font-size:12px}.diagnostics-log-dir strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#d9d9d9;font-size:12px;font-weight:500}.account-settings.provider-connections-settings{max-width:1000px;gap:20px}.account-settings.provider-connections-settings h1{margin:0}.provider-connections-intro{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:0}.provider-connections-intro p{margin:0;color:var(--muted);font-size:14px}.provider-connections-intro button{flex-shrink:0}.provider-connections-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.provider-connection-card{min-width:0;display:flex;flex-direction:column;gap:14px;padding:18px;border:1px solid var(--border);border-radius:10px;background:#191919}.provider-connection-identity{display:flex;align-items:center;justify-content:space-between;gap:12px}.provider-connection-identity strong{font-size:14px;font-weight:500}.provider-connection-identity .provider-toggle{flex-shrink:0}.provider-connection-status{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--muted)}.provider-connection-status.ready{color:#8ccdaa}.provider-connection-status.configured{color:#96c5eb}.provider-connection-status.warning{color:#f0b782}.provider-connection-card>p{min-height:36px;margin:0;color:var(--muted);font-size:12px;line-height:1.5;overflow-wrap:anywhere}.provider-connection-card>button{align-self:flex-start;margin-top:auto}.provider-dialog-backdrop>.git-dialog.provider-details-dialog{width:min(640px,calc(100vw - 32px));max-height:calc(100dvh - 48px);padding:0;gap:0;border:1px solid #343434;border-radius:14px;background:#1c1c1c}.provider-details-dialog .git-dialog-close{top:16px;right:16px}.provider-details-dialog .provider-dialog-header{display:flex;align-items:center;justify-content:space-between;padding:24px 56px 20px 24px;gap:16px;border-bottom:1px solid #303030}.provider-details-dialog .provider-dialog-header>div:first-child{display:grid;gap:6px;min-width:0}.provider-details-dialog .provider-dialog-header h2{font-size:18px;font-weight:500}.provider-details-dialog .provider-dialog-header span{font-size:12px;color:var(--muted)}.provider-details-dialog .provider-state-pill{position:static;flex-shrink:0;margin:0;font-weight:400}.provider-details-dialog .provider-chat-toggle{display:flex;align-items:center;gap:10px;padding:16px 24px;font-size:13px;cursor:pointer}.provider-chat-toggle>.provider-toggle{flex:0 0 38px}.provider-details-dialog .surface-tabs{display:flex;gap:22px;border:0;border-bottom:1px solid #303030;border-radius:0;background:transparent;margin:0;padding:0 24px}.provider-details-dialog .surface-tabs button{min-height:42px;padding:10px 0;border:0;border-bottom:2px solid transparent;border-radius:0;background:transparent;color:var(--muted);font-weight:400}.provider-details-dialog .surface-tabs button[aria-selected=true],.provider-details-dialog .surface-tabs button.active{border-bottom-color:var(--cyan);background:transparent;color:var(--text)}.provider-details-dialog .provider-dialog-body{padding:20px 24px;gap:18px}.provider-details-dialog .provider-dialog-body>h3,.provider-details-dialog .native-model-heading h3{margin:0;font-size:13px;font-weight:500}.provider-details-dialog .native-connection-status,.native-connection-status>[role=status]{display:flex;align-items:center;gap:10px;font-size:13px}.provider-details-dialog .native-connection-status{justify-content:space-between;padding:12px;border:1px solid #303030;border-radius:8px}.native-connection-status>[role=status] svg{flex-shrink:0}.native-model-section{display:grid;gap:12px}.native-model-heading{display:flex;align-items:center;justify-content:space-between}.native-model-section small,.native-agent-version{color:var(--muted);font-size:12px}.native-model-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;max-height:212px;overflow-y:auto;scrollbar-width:thin}.native-model-list>span{min-width:0;border-radius:6px;background:#252525;padding:10px 12px;font-size:13px;overflow-wrap:anywhere}.native-model-list:focus-visible{outline:1px solid var(--cyan);outline-offset:3px}.provider-details-dialog .settings-secondary,.provider-details-dialog .settings-primary,.provider-connection-card .settings-secondary{border:1px solid #3a3a3a;border-radius:7px;background:#292929;height:34px;margin:0}.provider-details-dialog .settings-secondary:hover:not(:disabled){background:#353535}.provider-details-dialog .native-agent-setup>details{padding-top:16px;border-top:1px solid #303030;font-size:13px}.native-agent-setup>details>summary{color:var(--muted);cursor:pointer}.native-agent-setup>details[open]>summary{margin-bottom:16px}.provider-details-dialog .agent-sync-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.agent-setup-dialog .agent-sync-form>h3,.agent-setup-dialog .agent-source-field,.agent-setup-dialog .agent-sync-form>small,.agent-setup-dialog .agent-sync-checkbox,.agent-setup-dialog .agent-sync-form>button{grid-column:1 / -1}.provider-details-dialog .agent-sync-checkbox{display:flex;flex-direction:row;justify-content:flex-start;align-items:center;gap:9px;margin:0;font-size:13px}.provider-details-dialog .agent-sync-checkbox input[type=checkbox]{flex:0 0 16px;width:16px;min-width:16px;height:16px;margin:0;accent-color:var(--cyan)}.provider-details-dialog .agent-sync-form select{min-height:38px}.provider-details-dialog .agent-sync-form>.agent-connect-button{justify-self:end;min-height:36px;margin-top:4px;padding:8px 16px}.provider-details-dialog .agent-conversation-setup>details{border-top:1px solid #303030;padding-top:16px;color:var(--muted);font-size:12px}.provider-details-dialog .agent-conversation-setup summary{cursor:pointer}.provider-details-dialog .agent-conversation-setup details[open] small{display:block;margin-top:12px}.provider-details-dialog [hidden]{display:none}@media(max-width:600px){.provider-connections-intro{align-items:flex-start;flex-direction:column}.provider-connections-grid,.provider-details-dialog .agent-sync-form,.native-model-list{grid-template-columns:minmax(0,1fr)}.provider-details-dialog .native-connection-status{flex-wrap:wrap}.provider-details-dialog .provider-dialog-header{align-items:flex-start}.provider-details-dialog .provider-dialog-body{padding:18px}.provider-details-dialog .surface-tabs{padding:0 18px}}
@@ -0,0 +1,5 @@
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};
@@ -1 +1 @@
1
- import{r as f}from"./index-BBjRfC--.js";import{w as C}from"./App-C6EWFrLP.js";function S(n,e,t){return new Set(n.filter(i=>{if(e.has(i.id))return!1;if(t===void 0)return!0;if(typeof i.timestamp!="string")return!1;const a=Date.parse(i.timestamp);return Number.isFinite(a)&&a>=t}).map(i=>i.id))}function h(n){let e=null;for(const t of n){if(typeof t.timestamp!="string")continue;const i=Date.parse(t.timestamp);Number.isFinite(i)&&(e=e===null?i:Math.max(e,i))}return e}function E(n,e){const t=f.useRef({scopeKey:e,ids:new Set(n.map(r=>r.id)),initialized:!1,liveCutoff:null}),i=t.current.scopeKey===e,d=i&&t.current.initialized?S(n,t.current.ids,t.current.liveCutoff??void 0):new Set;return f.useLayoutEffect(()=>{const r=t.current,s=r.scopeKey!==e,u=Date.now();t.current={scopeKey:e,ids:new Set(n.map(l=>l.id)),initialized:!s,liveCutoff:s?Math.max(u,h(n)??0):r.liveCutoff??Math.max(u,h(n)??0)}},[n,i,e]),d}const v=new Map,M=[200,600,1500];function x({connection:n,latestTurnId:e,sessionId:t,turnRunning:i}){const[a,d]=f.useState(()=>({sessionId:null,summaries:v}));return f.useEffect(()=>{if(!n||!t)return;let r=!1,s=null;const u=i?null:e,l=o=>{const c=M[o];c===void 0||r||(s=setTimeout(()=>{m(o+1)},c))},m=async o=>{try{const c=await C.usageTurnCache(n,t);if(r)return;const p=new Map(c.turns.map(w=>[w.turnId,w]));d({sessionId:t,summaries:p}),u&&!p.has(u)&&l(o)}catch{l(o)}};return m(0),()=>{r=!0,s!==null&&clearTimeout(s)}},[n,e,t,i]),a.sessionId===t?a.summaries:v}export{x as a,E as u};
1
+ import{r as f}from"./index-DOMrqhcz.js";import{G as C}from"./App-BI-uOpnP.js";function S(n,e,t){return new Set(n.filter(i=>{if(e.has(i.id))return!1;if(t===void 0)return!0;if(typeof i.timestamp!="string")return!1;const a=Date.parse(i.timestamp);return Number.isFinite(a)&&a>=t}).map(i=>i.id))}function v(n){let e=null;for(const t of n){if(typeof t.timestamp!="string")continue;const i=Date.parse(t.timestamp);Number.isFinite(i)&&(e=e===null?i:Math.max(e,i))}return e}function E(n,e){const t=f.useRef({scopeKey:e,ids:new Set(n.map(r=>r.id)),initialized:!1,liveCutoff:null}),i=t.current.scopeKey===e,d=i&&t.current.initialized?S(n,t.current.ids,t.current.liveCutoff??void 0):new Set;return f.useLayoutEffect(()=>{const r=t.current,s=r.scopeKey!==e,u=Date.now();t.current={scopeKey:e,ids:new Set(n.map(l=>l.id)),initialized:!s,liveCutoff:s?Math.max(u,v(n)??0):r.liveCutoff??Math.max(u,v(n)??0)}},[n,i,e]),d}const w=new Map,M=[200,600,1500];function x({connection:n,latestTurnId:e,sessionId:t,turnRunning:i}){const[a,d]=f.useState(()=>({sessionId:null,summaries:w}));return f.useEffect(()=>{if(!n||!t)return;let r=!1,s=null;const u=i?null:e,l=o=>{const c=M[o];c===void 0||r||(s=setTimeout(()=>{m(o+1)},c))},m=async o=>{try{const c=await C.usageTurnCache(n,t);if(r)return;const p=new Map(c.turns.map(h=>[h.turnId,h]));d({sessionId:t,summaries:p}),u&&!p.has(u)&&l(o)}catch{l(o)}};return m(0),()=>{r=!0,s!==null&&clearTimeout(s)}},[n,e,t,i]),a.sessionId===t?a.summaries:w}export{x as a,E as u};
@@ -1 +1 @@
1
- import{c as a}from"./App-C6EWFrLP.js";const e=[["path",{d:"M10.268 21a2 2 0 0 0 3.464 0",key:"vwvbt9"}],["path",{d:"M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326",key:"11g9vi"}]],y=a("bell",e);const t=[["path",{d:"M10.268 21a2 2 0 0 0 3.464 0",key:"vwvbt9"}],["path",{d:"M17 17H4a1 1 0 0 1-.74-1.673C4.59 13.956 6 12.499 6 8a6 6 0 0 1 .258-1.742",key:"178tsu"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M8.668 3.01A6 6 0 0 1 18 8c0 2.687.77 4.653 1.707 6.05",key:"1hqiys"}]],c=a("bell-off",t);const o=[["path",{d:"M15 12h-5",key:"r7krc0"}],["path",{d:"M15 8h-5",key:"1khuty"}],["path",{d:"M19 17V5a2 2 0 0 0-2-2H4",key:"zz82l3"}],["path",{d:"M8 21h12a2 2 0 0 0 2-2v-1a1 1 0 0 0-1-1H11a1 1 0 0 0-1 1v1a2 2 0 1 1-4 0V5a2 2 0 1 0-4 0v2a1 1 0 0 0 1 1h3",key:"1ph1d7"}]],k=a("scroll-text",o);const h=[["path",{d:"M12 20h.01",key:"zekei9"}],["path",{d:"M8.5 16.429a5 5 0 0 1 7 0",key:"1bycff"}],["path",{d:"M5 12.859a10 10 0 0 1 5.17-2.69",key:"1dl1wf"}],["path",{d:"M19 12.859a10 10 0 0 0-2.007-1.523",key:"4k23kn"}],["path",{d:"M2 8.82a15 15 0 0 1 4.177-2.643",key:"1grhjp"}],["path",{d:"M22 8.82a15 15 0 0 0-11.288-3.764",key:"z3jwby"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]],p=a("wifi-off",h);export{c as B,k as S,p as W,y as a};
1
+ import{c as a}from"./App-BI-uOpnP.js";const e=[["path",{d:"M10.268 21a2 2 0 0 0 3.464 0",key:"vwvbt9"}],["path",{d:"M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326",key:"11g9vi"}]],y=a("bell",e);const t=[["path",{d:"M10.268 21a2 2 0 0 0 3.464 0",key:"vwvbt9"}],["path",{d:"M17 17H4a1 1 0 0 1-.74-1.673C4.59 13.956 6 12.499 6 8a6 6 0 0 1 .258-1.742",key:"178tsu"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M8.668 3.01A6 6 0 0 1 18 8c0 2.687.77 4.653 1.707 6.05",key:"1hqiys"}]],c=a("bell-off",t);const o=[["path",{d:"M15 12h-5",key:"r7krc0"}],["path",{d:"M15 8h-5",key:"1khuty"}],["path",{d:"M19 17V5a2 2 0 0 0-2-2H4",key:"zz82l3"}],["path",{d:"M8 21h12a2 2 0 0 0 2-2v-1a1 1 0 0 0-1-1H11a1 1 0 0 0-1 1v1a2 2 0 1 1-4 0V5a2 2 0 1 0-4 0v2a1 1 0 0 0 1 1h3",key:"1ph1d7"}]],k=a("scroll-text",o);const h=[["path",{d:"M12 20h.01",key:"zekei9"}],["path",{d:"M8.5 16.429a5 5 0 0 1 7 0",key:"1bycff"}],["path",{d:"M5 12.859a10 10 0 0 1 5.17-2.69",key:"1dl1wf"}],["path",{d:"M19 12.859a10 10 0 0 0-2.007-1.523",key:"4k23kn"}],["path",{d:"M2 8.82a15 15 0 0 1 4.177-2.643",key:"1grhjp"}],["path",{d:"M22 8.82a15 15 0 0 0-11.288-3.764",key:"z3jwby"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]],p=a("wifi-off",h);export{c as B,k as S,p as W,y as a};
@@ -1 +1 @@
1
- import{j7 as c}from"./WorkspaceMonacoEditor-B1dKexHo.js";import"./toggleHighContrast-DWeRZFzr.js";function a(e,o){const r=globalThis.MonacoEnvironment;if(r?.createTrustedTypesPolicy)try{return r.createTrustedTypesPolicy(e,o)}catch(t){console.error(t);return}try{return globalThis.trustedTypes?.createPolicy(e,o)}catch(t){console.error(t);return}}let n;typeof self=="object"&&self.constructor&&self.constructor.name==="DedicatedWorkerGlobalScope"&&globalThis.workerttPolicy!==void 0?n=globalThis.workerttPolicy:n=a("defaultWorkerFactory",{createScriptURL:e=>e});function l(e){const o=e.label,r=globalThis.MonacoEnvironment;if(r){if(typeof r.getWorker=="function")return r.getWorker("workerMain.js",o);if(typeof r.getWorkerUrl=="function"){const t=r.getWorkerUrl("workerMain.js",o);return new Worker(n?n.createScriptURL(t):t,{name:o,type:"module"})}}if(e.createWorker)return e.createWorker();throw new Error("You must define a function MonacoEnvironment.getWorkerUrl or MonacoEnvironment.getWorker")}function u(e){const o=Promise.resolve(l({label:e.label??"monaco-editor-worker",moduleId:e.moduleId,createWorker:e.createWorker})).then(r=>(r.postMessage("ignore"),r.postMessage(e.createData),r));return c.createWebWorker({worker:o,host:e.host,keepIdleModels:e.keepIdleModels})}export{u as c};
1
+ import{j7 as c}from"./WorkspaceMonacoEditor-p-FWMXoZ.js";import"./toggleHighContrast-B_GcTCnw.js";function a(e,o){const r=globalThis.MonacoEnvironment;if(r?.createTrustedTypesPolicy)try{return r.createTrustedTypesPolicy(e,o)}catch(t){console.error(t);return}try{return globalThis.trustedTypes?.createPolicy(e,o)}catch(t){console.error(t);return}}let n;typeof self=="object"&&self.constructor&&self.constructor.name==="DedicatedWorkerGlobalScope"&&globalThis.workerttPolicy!==void 0?n=globalThis.workerttPolicy:n=a("defaultWorkerFactory",{createScriptURL:e=>e});function l(e){const o=e.label,r=globalThis.MonacoEnvironment;if(r){if(typeof r.getWorker=="function")return r.getWorker("workerMain.js",o);if(typeof r.getWorkerUrl=="function"){const t=r.getWorkerUrl("workerMain.js",o);return new Worker(n?n.createScriptURL(t):t,{name:o,type:"module"})}}if(e.createWorker)return e.createWorker();throw new Error("You must define a function MonacoEnvironment.getWorkerUrl or MonacoEnvironment.getWorker")}function u(e){const o=Promise.resolve(l({label:e.label??"monaco-editor-worker",moduleId:e.moduleId,createWorker:e.createWorker})).then(r=>(r.postMessage("ignore"),r.postMessage(e.createData),r));return c.createWebWorker({worker:o,host:e.host,keepIdleModels:e.keepIdleModels})}export{u as c};
@@ -1 +1 @@
1
- import{l as e}from"./WorkspaceMonacoEditor-B1dKexHo.js";import"./toggleHighContrast-DWeRZFzr.js";import"./index-BBjRfC--.js";const r={comments:{lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{offSide:!0},onEnterRules:[{beforeText:/:\s*$/,action:{indentAction:e.IndentAction.Indent}}]},l={tokenPostfix:".yaml",brackets:[{token:"delimiter.bracket",open:"{",close:"}"},{token:"delimiter.square",open:"[",close:"]"}],keywords:["true","True","TRUE","false","False","FALSE","null","Null","Null","~"],numberInteger:/(?:0|[+-]?[0-9]+)/,numberFloat:/(?:0|[+-]?[0-9]+)(?:\.[0-9]+)?(?:e[-+][1-9][0-9]*)?/,numberOctal:/0o[0-7]+/,numberHex:/0x[0-9a-fA-F]+/,numberInfinity:/[+-]?\.(?:inf|Inf|INF)/,numberNaN:/\.(?:nan|Nan|NAN)/,numberDate:/\d{4}-\d\d-\d\d([Tt ]\d\d:\d\d:\d\d(\.\d+)?(( ?[+-]\d\d?(:\d\d)?)|Z)?)?/,escapes:/\\(?:[btnfr\\"']|[0-7][0-7]?|[0-3][0-7]{2})/,tokenizer:{root:[{include:"@whitespace"},{include:"@comment"},[/%[^ ]+.*$/,"meta.directive"],[/---/,"operators.directivesEnd"],[/\.{3}/,"operators.documentEnd"],[/[-?:](?= )/,"operators"],{include:"@anchor"},{include:"@tagHandle"},{include:"@flowCollections"},{include:"@blockStyle"},[/@numberInteger(?![ \t]*\S+)/,"number"],[/@numberFloat(?![ \t]*\S+)/,"number.float"],[/@numberOctal(?![ \t]*\S+)/,"number.octal"],[/@numberHex(?![ \t]*\S+)/,"number.hex"],[/@numberInfinity(?![ \t]*\S+)/,"number.infinity"],[/@numberNaN(?![ \t]*\S+)/,"number.nan"],[/@numberDate(?![ \t]*\S+)/,"number.date"],[/(".*?"|'.*?'|[^#'"]*?)([ \t]*)(:)( |$)/,["type","white","operators","white"]],{include:"@flowScalars"},[/.+?(?=(\s+#|$))/,{cases:{"@keywords":"keyword","@default":"string"}}]],object:[{include:"@whitespace"},{include:"@comment"},[/\}/,"@brackets","@pop"],[/,/,"delimiter.comma"],[/:(?= )/,"operators"],[/(?:".*?"|'.*?'|[^,\{\[]+?)(?=: )/,"type"],{include:"@flowCollections"},{include:"@flowScalars"},{include:"@tagHandle"},{include:"@anchor"},{include:"@flowNumber"},[/[^\},]+/,{cases:{"@keywords":"keyword","@default":"string"}}]],array:[{include:"@whitespace"},{include:"@comment"},[/\]/,"@brackets","@pop"],[/,/,"delimiter.comma"],{include:"@flowCollections"},{include:"@flowScalars"},{include:"@tagHandle"},{include:"@anchor"},{include:"@flowNumber"},[/[^\],]+/,{cases:{"@keywords":"keyword","@default":"string"}}]],multiString:[[/^( +).+$/,"string","@multiStringContinued.$1"]],multiStringContinued:[[/^( *).+$/,{cases:{"$1==$S2":"string","@default":{token:"@rematch",next:"@popall"}}}]],whitespace:[[/[ \t\r\n]+/,"white"]],comment:[[/#.*$/,"comment"]],flowCollections:[[/\[/,"@brackets","@array"],[/\{/,"@brackets","@object"]],flowScalars:[[/"([^"\\]|\\.)*$/,"string.invalid"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/'[^']*'/,"string"],[/"/,"string","@doubleQuotedString"]],doubleQuotedString:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],blockStyle:[[/[>|][0-9]*[+-]?$/,"operators","@multiString"]],flowNumber:[[/@numberInteger(?=[ \t]*[,\]\}])/,"number"],[/@numberFloat(?=[ \t]*[,\]\}])/,"number.float"],[/@numberOctal(?=[ \t]*[,\]\}])/,"number.octal"],[/@numberHex(?=[ \t]*[,\]\}])/,"number.hex"],[/@numberInfinity(?=[ \t]*[,\]\}])/,"number.infinity"],[/@numberNaN(?=[ \t]*[,\]\}])/,"number.nan"],[/@numberDate(?=[ \t]*[,\]\}])/,"number.date"]],tagHandle:[[/\![^ ]*/,"tag"]],anchor:[[/[&*][^ ]+/,"namespace"]]}};export{r as conf,l as language};
1
+ import{l as e}from"./WorkspaceMonacoEditor-p-FWMXoZ.js";import"./toggleHighContrast-B_GcTCnw.js";import"./index-DOMrqhcz.js";const r={comments:{lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{offSide:!0},onEnterRules:[{beforeText:/:\s*$/,action:{indentAction:e.IndentAction.Indent}}]},l={tokenPostfix:".yaml",brackets:[{token:"delimiter.bracket",open:"{",close:"}"},{token:"delimiter.square",open:"[",close:"]"}],keywords:["true","True","TRUE","false","False","FALSE","null","Null","Null","~"],numberInteger:/(?:0|[+-]?[0-9]+)/,numberFloat:/(?:0|[+-]?[0-9]+)(?:\.[0-9]+)?(?:e[-+][1-9][0-9]*)?/,numberOctal:/0o[0-7]+/,numberHex:/0x[0-9a-fA-F]+/,numberInfinity:/[+-]?\.(?:inf|Inf|INF)/,numberNaN:/\.(?:nan|Nan|NAN)/,numberDate:/\d{4}-\d\d-\d\d([Tt ]\d\d:\d\d:\d\d(\.\d+)?(( ?[+-]\d\d?(:\d\d)?)|Z)?)?/,escapes:/\\(?:[btnfr\\"']|[0-7][0-7]?|[0-3][0-7]{2})/,tokenizer:{root:[{include:"@whitespace"},{include:"@comment"},[/%[^ ]+.*$/,"meta.directive"],[/---/,"operators.directivesEnd"],[/\.{3}/,"operators.documentEnd"],[/[-?:](?= )/,"operators"],{include:"@anchor"},{include:"@tagHandle"},{include:"@flowCollections"},{include:"@blockStyle"},[/@numberInteger(?![ \t]*\S+)/,"number"],[/@numberFloat(?![ \t]*\S+)/,"number.float"],[/@numberOctal(?![ \t]*\S+)/,"number.octal"],[/@numberHex(?![ \t]*\S+)/,"number.hex"],[/@numberInfinity(?![ \t]*\S+)/,"number.infinity"],[/@numberNaN(?![ \t]*\S+)/,"number.nan"],[/@numberDate(?![ \t]*\S+)/,"number.date"],[/(".*?"|'.*?'|[^#'"]*?)([ \t]*)(:)( |$)/,["type","white","operators","white"]],{include:"@flowScalars"},[/.+?(?=(\s+#|$))/,{cases:{"@keywords":"keyword","@default":"string"}}]],object:[{include:"@whitespace"},{include:"@comment"},[/\}/,"@brackets","@pop"],[/,/,"delimiter.comma"],[/:(?= )/,"operators"],[/(?:".*?"|'.*?'|[^,\{\[]+?)(?=: )/,"type"],{include:"@flowCollections"},{include:"@flowScalars"},{include:"@tagHandle"},{include:"@anchor"},{include:"@flowNumber"},[/[^\},]+/,{cases:{"@keywords":"keyword","@default":"string"}}]],array:[{include:"@whitespace"},{include:"@comment"},[/\]/,"@brackets","@pop"],[/,/,"delimiter.comma"],{include:"@flowCollections"},{include:"@flowScalars"},{include:"@tagHandle"},{include:"@anchor"},{include:"@flowNumber"},[/[^\],]+/,{cases:{"@keywords":"keyword","@default":"string"}}]],multiString:[[/^( +).+$/,"string","@multiStringContinued.$1"]],multiStringContinued:[[/^( *).+$/,{cases:{"$1==$S2":"string","@default":{token:"@rematch",next:"@popall"}}}]],whitespace:[[/[ \t\r\n]+/,"white"]],comment:[[/#.*$/,"comment"]],flowCollections:[[/\[/,"@brackets","@array"],[/\{/,"@brackets","@object"]],flowScalars:[[/"([^"\\]|\\.)*$/,"string.invalid"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/'[^']*'/,"string"],[/"/,"string","@doubleQuotedString"]],doubleQuotedString:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],blockStyle:[[/[>|][0-9]*[+-]?$/,"operators","@multiString"]],flowNumber:[[/@numberInteger(?=[ \t]*[,\]\}])/,"number"],[/@numberFloat(?=[ \t]*[,\]\}])/,"number.float"],[/@numberOctal(?=[ \t]*[,\]\}])/,"number.octal"],[/@numberHex(?=[ \t]*[,\]\}])/,"number.hex"],[/@numberInfinity(?=[ \t]*[,\]\}])/,"number.infinity"],[/@numberNaN(?=[ \t]*[,\]\}])/,"number.nan"],[/@numberDate(?=[ \t]*[,\]\}])/,"number.date"]],tagHandle:[[/\![^ ]*/,"tag"]],anchor:[[/[&*][^ ]+/,"namespace"]]}};export{r as conf,l as language};
@@ -7,8 +7,8 @@
7
7
  <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png" />
8
8
  <link rel="apple-touch-icon" href="/openpond-icon.png" />
9
9
  <title>OpenPond App</title>
10
- <script type="module" crossorigin src="/assets/index-BBjRfC--.js"></script>
11
- <link rel="stylesheet" crossorigin href="/assets/index-B9VSiz_z.css">
10
+ <script type="module" crossorigin src="/assets/index-DOMrqhcz.js"></script>
11
+ <link rel="stylesheet" crossorigin href="/assets/index-DJcUXSsN.css">
12
12
  </head>
13
13
  <body>
14
14
  <div id="root"></div>
@@ -4,6 +4,28 @@
4
4
 
5
5
  Parsing, aliases, command help, and this reference use the same authoritative registry.
6
6
 
7
+ ## import
8
+
9
+ ```text
10
+ Usage:
11
+ openpond import <connect|reconnect|discover|status|sync|pause|resume|disconnect|branches|branch|service> [id] [--source <name>] [--source-path <path>] [--range day|week|all] [--team <id>] [--project <id>] [--session <native-id>] [--leaf <uuid>] [--revision <hash>] [--once] [--yes] [--detach]
12
+
13
+ Options:
14
+ --collector-dir <string>
15
+ --connection <string>
16
+ --detach
17
+ --json
18
+ --leaf <string>
19
+ --once
20
+ --project <string>
21
+ --range <string>
22
+ --revision <string>
23
+ --session <string>
24
+ --source <string>
25
+ --source-path <string>
26
+ --team <string>
27
+ --yes
28
+ ```
7
29
  ## datasets
8
30
 
9
31
  ```text
package/package.json CHANGED
@@ -1,7 +1,6 @@
1
1
  {
2
2
  "name": "openpond",
3
- "version": "0.2.45",
4
- "openpondReleaseVersioned": true,
3
+ "version": "0.2.47",
5
4
  "license": "MIT",
6
5
  "description": "OpenPond CLI and local harness",
7
6
  "main": "dist/index.js",
@@ -1,2 +0,0 @@
1
- import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{a as v}from"./chunk-65BW2QXY.js";import"./chunk-XWPC3AN4.js";import{f as b}from"./chunk-3M53YXEI.js";import{b as R,c as p,d as m}from"./chunk-XEOEKFG6.js";import{A as O}from"./chunk-H3C4ZYEA.js";import{d as P}from"./chunk-DXAZUJPA.js";import"./chunk-GLUWATL5.js";import"./chunk-VFTUP5NQ.js";import"./chunk-Z3D4C7BG.js";import"./chunk-XWLI7WJH.js";import"./chunk-ALZRXBEC.js";import"./chunk-MTJNKRXL.js";import"./chunk-QVRNOGAU.js";import"./chunk-5ZFEQLRI.js";import"./chunk-HZP5U2AA.js";import"./chunk-ES2ISFJC.js";import"./chunk-SDO4FC4Q.js";import"./chunk-IR3YJWPW.js";import"./chunk-H7IWJN7L.js";import{a as c}from"./chunk-FTQLQJQV.js";import{promises as $,watch as C}from"node:fs";import y from"node:path";import{execFile as J}from"node:child_process";import{promisify as k}from"node:util";var K=k(J);async function G(t,n){let e=n[0]??"check",o=y.resolve(i(t,"cwd")??process.cwd()),l=i(t,"sourceDirectory"),u=i(t,"outputDirectory"),d=b(t.json);if(e==="check"||e==="build"){let r=await p({projectRoot:o,sourceDirectory:l,outputDirectory:u});if(d){console.log(JSON.stringify({status:"passed",actionCount:r.registry.actions.length,registry:r.registry,manifest:r.manifest,outputDirectory:r.outputDirectory},null,2));return}console.log(`${e==="check"?"Validated":"Built"} ${r.registry.actions.length} Project Action${r.registry.actions.length===1?"":"s"}.`),console.log(`Registry: ${r.registryPath}`),console.log(`Bundle: ${r.bundlePath}`);return}if(e==="run"){let r=n[1];if(!r)throw new Error("usage: openpond actions run <action-id> [--input JSON|--input-file PATH]");let a=await m({projectRoot:o,sourceDirectory:l,outputDirectory:u,build:"always"}).run({actionId:r,input:await I(t,o),timeoutMs:A(t,"timeoutMs")});console.log(JSON.stringify(a,null,2));return}if(e==="dev"){let r=n[1]??null;await _({projectRoot:o,sourceDirectory:l,outputDirectory:u,actionId:r,options:t,json:d});return}if(e==="publish"){let r=j(t,"projectId"),s=j(t,"teamId"),a=i(t,"apiKey"),w=process.env.OPENPOND_API_KEY?.trim()||null,g=a||w?null:await P({account:i(t,"account")}),h=a??w??(g?v(g):null);if(!h)throw new Error("OpenPond API key is required. Select a saved OpenPond account, set OPENPOND_API_KEY, or pass --api-key.");let N=await p({projectRoot:o,sourceDirectory:l,outputDirectory:u}),E=i(t,"sourceCommitSha")??await D(o,["rev-parse","HEAD"]),S=i(t,"sourceRef")??await D(o,["rev-parse","--abbrev-ref","HEAD"]),f=await O({apiKey:h,baseUrl:i(t,"baseUrl")??(process.env.OPENPOND_API_URL?.trim()||g?.apiBaseUrl)}).actions.publish({projectId:r,teamId:s,sourceRef:S,sourceCommitSha:E,build:N});console.log(d?JSON.stringify({release:f},null,2):`Published Project Actions release ${f.id} from ${f.sourceCommitSha}.`);return}throw new Error("usage: openpond actions <check|build|run|dev|publish> [action-id]")}c(G,"runProjectActionsCommand");async function _(t){let n=!1,e=!1,o=c(async()=>{if(n){e=!0;return}n=!0;try{let r=m({projectRoot:t.projectRoot,sourceDirectory:t.sourceDirectory,outputDirectory:t.outputDirectory,build:"always"});if(t.actionId){let s=await r.run({actionId:t.actionId,input:await I(t.options,t.projectRoot),timeoutMs:A(t.options,"timeoutMs")});console.log(JSON.stringify(s,null,2))}else{let s=await r.build(),a={status:"ready",actionCount:s.registry.actions.length,bundleHash:s.manifest.bundleHash};console.log(t.json?JSON.stringify(a):`Ready with ${a.actionCount} Project Action${a.actionCount===1?"":"s"}.`)}}catch(r){console.error(r instanceof Error?r.message:String(r))}finally{n=!1,e&&(e=!1,await o())}},"execute");await o();let l=await R(t.projectRoot),u=y.resolve(t.projectRoot,t.sourceDirectory??l.sourceDirectory??"openpond/actions");console.log(`Watching ${u}`);let d=C(u,{recursive:!0},()=>{setTimeout(()=>{o()},50)});await new Promise(r=>{let s=c(()=>{d.close(),r()},"stop");process.once("SIGINT",s),process.once("SIGTERM",s)})}c(_,"runDev");async function I(t,n){let e=i(t,"input"),o=i(t,"inputFile");if(e&&o)throw new Error("Use either --input or --input-file, not both.");return e?JSON.parse(e):o?JSON.parse(await $.readFile(y.resolve(n,o),"utf8")):{}}c(I,"actionInput");function i(t,n){let e=t[n];return typeof e=="string"&&e.trim()?e.trim():void 0}c(i,"stringOption");function j(t,n){let e=i(t,n);if(!e)throw new Error(`--${n.replace(/[A-Z]/g,o=>`-${o.toLowerCase()}`)} is required.`);return e}c(j,"requiredOption");async function D(t,n){let{stdout:e}=await K("git",n,{cwd:t}),o=e.trim();if(!o)throw new Error(`git ${n.join(" ")} returned no value.`);return o}c(D,"gitValue");function A(t,n){let e=i(t,n);if(e===void 0)return;let o=Number(e);if(!Number.isInteger(o)||o<=0)throw new Error(`--${n} must be a positive integer.`);return o}c(A,"integerOption");export{G as runProjectActionsCommand};
@@ -1,2 +0,0 @@
1
- import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{$b as d,_b as c}from"./chunk-6BL2ZIAP.js";import{e as b}from"./chunk-3SRIPOJQ.js";import"./chunk-B6LYKEMU.js";import{i as a}from"./chunk-NXUCGKY2.js";import"./chunk-CXS3WXL3.js";import"./chunk-7D2WMUWK.js";import"./chunk-M2YXYBSP.js";import"./chunk-3BJ4P5LI.js";import"./chunk-4EGDKOYP.js";import"./chunk-J65BMG5Q.js";import"./chunk-25GCTLAZ.js";import"./chunk-LL4QP2IM.js";import"./chunk-HUBI3RUK.js";import"./chunk-VESOG2SS.js";import"./chunk-U6SFIFDM.js";import"./chunk-GEDEVI4Y.js";import"./chunk-PGKEDR3S.js";import"./chunk-FXIUKYUR.js";import"./chunk-L3KS6MOV.js";import"./chunk-XEOEKFG6.js";import"./chunk-PDIT2QS7.js";import"./chunk-6QUICEQA.js";import"./chunk-ELNJUG64.js";import"./chunk-6MI4KKWF.js";import"./chunk-KOR2AZVB.js";import"./chunk-VFTUP5NQ.js";import"./chunk-Z3D4C7BG.js";import"./chunk-XWLI7WJH.js";import"./chunk-ALZRXBEC.js";import"./chunk-MTJNKRXL.js";import"./chunk-6FA3GG5B.js";import"./chunk-QVRNOGAU.js";import"./chunk-5ZFEQLRI.js";import"./chunk-HZP5U2AA.js";import"./chunk-ES2ISFJC.js";import"./chunk-SDO4FC4Q.js";import"./chunk-IR3YJWPW.js";import"./chunk-H7IWJN7L.js";import"./chunk-FTQLQJQV.js";export{a as AGENT_PROTOCOL_VERSION,c as APP_SERVER_COMPOSITION,d as createOpenPondAppServer,b as runAppServerJsonl};
@@ -1,2 +0,0 @@
1
- import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{f as $,g as J,h as L,i as v,j as q}from"./chunk-B3O2GAQH.js";import{c as g}from"./chunk-65BW2QXY.js";import"./chunk-EG55BFQ4.js";import"./chunk-V6WBSW5Q.js";import{f as m,h as y}from"./chunk-BSHAIAXY.js";import"./chunk-XWPC3AN4.js";import{a as S,f as w,j as T,k as j}from"./chunk-3M53YXEI.js";import{b as H,c as Q}from"./chunk-22UARBPW.js";import"./chunk-OGPHXXCD.js";import"./chunk-H3C4ZYEA.js";import{J as C,K as G,L as k,O as W,Q as M,S as z,T as F,c as D,m as K,r as V,s as _}from"./chunk-Z2BYC6TP.js";import{d as f}from"./chunk-DXAZUJPA.js";import"./chunk-GLUWATL5.js";import"./chunk-VFTUP5NQ.js";import"./chunk-Z3D4C7BG.js";import"./chunk-XWLI7WJH.js";import"./chunk-ALZRXBEC.js";import"./chunk-MTJNKRXL.js";import"./chunk-QVRNOGAU.js";import"./chunk-5ZFEQLRI.js";import"./chunk-HZP5U2AA.js";import"./chunk-ES2ISFJC.js";import"./chunk-SDO4FC4Q.js";import"./chunk-IR3YJWPW.js";import"./chunk-H7IWJN7L.js";import{a as p}from"./chunk-FTQLQJQV.js";async function ie(){let e=await f(),s=m(e),t=await g(e,s),n=y(e),r=await L({apiBase:n,apiKey:t});console.log(JSON.stringify(r,null,2))}p(ie,"runAppsTools");async function se(e){let s=await f(),t=m(s),n=y(s),r=await g(s,t),i=typeof e.handle=="string"?String(e.handle):void 0,o=i?$(i):null,c=e.refresh!==void 0?w(e.refresh):void 0,l=await J({apiBase:n,apiKey:r,forceRefresh:c}),u=o?l.filter(a=>$(a.handle||a.gitOwner)===o):l;if(u.length===0){console.log("no apps found");return}if(w(e.json)){console.log(JSON.stringify({apps:u},null,2));return}for(let a of u){let d=a.handle||a.gitOwner||"unknown",h=a.repo||a.gitRepo||a.id,B=a.latestDeployment?.status||"no-deploy",R=a.latestDeployment?.gitBranch||a.defaultBranch||"-",I=a.codeVisibility||"unknown",E=a.sandbox?"yes":"no";console.log(`${d}/${h} ${B} ${R} code=${I} sandbox=${E} ${a.id}`)}}p(se,"runAppsList");async function oe(e,s){let t=typeof e.visibility=="string"?e.visibility.trim():typeof e.codeVisibility=="string"?e.codeVisibility.trim():"";if(t!=="public"&&t!=="private")throw new Error("usage: apps code-visibility <handle>/<repo> --visibility public|private");let n=await f(),r=m(n),i=y(n),o=await g(n,r),{app:c,handle:l,repo:u}=await v(i,o,s),a=await K(i,o,c.id,t);console.log(`${l}/${u} code_visibility=${a.app?.codeVisibility??t} app_id=${c.id}`)}p(oe,"runAppsCodeVisibility");async function ae(e){let s=await f(),t=m(s),n=await g(s,t),r=y(s),i=typeof e.appId=="string"?String(e.appId):void 0,o=await G(r,n,{appId:i});console.log(JSON.stringify(o,null,2))}p(ae,"runAppsPerformance");async function ce(e,s){let t=await f(),n=m(t),r=y(t),i=await g(t,n),{app:o}=await v(r,i,s),c=await k(r,i,o.id);console.log(JSON.stringify(c,null,2))}p(ce,"runAppsSummary");async function le(e,s,t,n){let r=(typeof e.prompt=="string"?e.prompt:null)||n.join(" ");if(!r.trim())throw new Error("usage: apps assistant <plan|performance> <handle>/<repo> --prompt <text>");let i=await f(),o=m(i),c=y(i),l=await g(i,o),{app:u}=await v(c,l,t),a=await W(c,l,{appId:u.id,mode:s,prompt:r.trim()});console.log(JSON.stringify(a,null,2))}p(le,"runAppsAssistant");async function de(e,s){let t=await f(),n=m(t),r=await g(t,n),i=y(t),o=(typeof e.prompt=="string"?e.prompt:null)||s.join(" ");if(!o.trim())throw new Error("usage: apps agent create --prompt <text> [--team-id <id>]");let c=typeof e.templateRepoUrl=="string"?e.templateRepoUrl:void 0,l=typeof e.templateBranch=="string"?e.templateBranch:void 0,u=typeof e.templateLocalPath=="string"?e.templateLocalPath:void 0,a=typeof e.teamId=="string"&&e.teamId.trim()?e.teamId.trim():void 0;if(u&&String(u).trim().length>0)throw new Error("templateLocalPath is not supported; use templateRepoUrl");let d=typeof e.env=="string"?S(e.env,"env"):void 0;if(d){if(typeof d!="object"||Array.isArray(d))throw new Error("env must be a JSON object");for(let[b,A]of Object.entries(d))if(typeof A!="string")throw new Error(`env value for ${b} must be a string`)}let h=c||l||d?{templateRepoUrl:c,templateBranch:l,envVars:d}:void 0,B=typeof e.deployEnvironment=="string"?e.deployEnvironment==="preview"?"preview":"production":void 0,R=e.deployDisabled!==void 0?w(e.deployDisabled):void 0,I=e.streamDeployLogs!==void 0?w(e.streamDeployLogs):!0,E=await C(i,r,{prompt:o.trim(),...a?{teamId:a}:{},...h?{template:h}:{},...B?{deployEnvironment:B}:{},...R!==void 0?{deployDisabled:R}:{},streamDeployLogs:I});if(!E.ok){let b=await E.text().catch(()=>"");throw new Error(`agent create failed: ${E.status} ${b}`)}let N=null,O=null,P=null;await H(E,{onConversationId:p(b=>{N=b},"onConversationId"),onItems:p(b=>{for(let A of b){let U=Q(A);U&&console.log(U);let x=A;!O&&typeof x.appId=="string"&&(O=x.appId),!P&&typeof x.deploymentId=="string"&&(P=x.deploymentId)}},"onItems")}),N&&console.log(`conversation_id: ${N}`),O&&console.log(`app_id: ${O}`),P&&console.log(`deployment_id: ${P}`);try{await J({apiBase:i,apiKey:r,forceRefresh:!0}),await L({apiBase:i,apiKey:r,forceRefresh:!0})}catch(b){console.warn("cache refresh failed",b)}}p(de,"runAppsAgentCreate");async function pe(e,s,t,n){let r=await f(),i=m(r),o=await g(r,i),c=y(r),l=typeof e.method=="string"?String(e.method).toUpperCase():void 0,u=l&&["GET","POST","PUT","DELETE"].includes(l)?l:void 0;if(l&&!u)throw new Error("method must be GET, POST, PUT, or DELETE");let a=typeof e.body=="string"?S(String(e.body),"body"):void 0,d=typeof e.headers=="string"?S(String(e.headers),"headers"):void 0,h=typeof e.scheduleId=="string"?String(e.scheduleId):void 0,B=w(e.notifyEmail),R=w(e.summary)||w(e.withSummary),I=await M(c,o,{appId:s,deploymentId:t,toolName:n,scheduleId:h,method:u,body:a,headers:d,notifyEmail:B||void 0});if(console.log(JSON.stringify(I,null,2)),R&&I.ok){let E=await k(c,o,s);console.log(JSON.stringify({summary:E},null,2))}}p(pe,"runAppsToolsExecute");async function ue(e,s){let t=typeof e.env=="string"?e.env:typeof e.vars=="string"?e.vars:typeof e.envVars=="string"?e.envVars:null;if(!t)throw new Error("usage: apps env set <handle>/<repo> --env <json>");let n=S(t,"env");if(!n||typeof n!="object"||Array.isArray(n))throw new Error("env must be a JSON object");let r={};for(let[d,h]of Object.entries(n)){if(typeof h!="string")throw new Error(`env value for ${d} must be a string`);if(!d.startsWith("OPENTOOL_PUBLIC_"))throw new Error("only OPENTOOL_PUBLIC_ env vars can be set");r[d]=h}let i=await f(),o=m(i),c=y(i),l=await g(i,o),{app:u}=await v(c,l,s),a=await V(c,l,u.id,{envVars:r});console.log(JSON.stringify(a,null,2))}p(ue,"runAppsEnvSet");async function fe(e,s){let t=await f(),n=m(t),r=y(t),i=await g(t,n),{app:o}=await v(r,i,s),c=await _(r,i,o.id);console.log(JSON.stringify(c,null,2))}p(fe,"runAppsEnvGet");async function ge(e,s){let t=await f(),n=m(t),r=y(t),i=await g(t,n),{app:o,handle:c,repo:l}=await v(r,i,s),u=typeof e.env=="string"?e.env:typeof e.environment=="string"?e.environment:void 0,a=j(u),d=await D(r,i,o.id,{environment:a});console.log(JSON.stringify(d,null,2)),(w(e.watch)||w(e.wait)||w(e.follow))&&await q({baseUrl:r,apiKey:i,deploymentId:d.deploymentId,prefix:`[${c}/${l}] `,intervalMs:e.interval?Number(e.interval):void 0,timeoutMs:e.timeout?Number(e.timeout):void 0})}p(ge,"runAppsDeploy");function X(e){let s={};if(typeof e.params=="string"){let n=S(String(e.params),"params");if(!n||typeof n!="object"||Array.isArray(n))throw new Error("params must be a JSON object");for(let[r,i]of Object.entries(n))i!==void 0&&(s[r]=typeof i=="string"?i:JSON.stringify(i))}let t=p((n,r)=>{r===void 0||r===""||(s[n]=r)},"addParam");if(t("source",typeof e.source=="string"?e.source.trim():void 0),t("symbol",typeof e.symbol=="string"?e.symbol.trim():void 0),t("cursor",typeof e.cursor=="string"?e.cursor.trim():void 0),t("status",typeof e.status=="string"?e.status.trim():void 0),t("backtestRunId",typeof e.runId=="string"?e.runId.trim():typeof e.backtestRunId=="string"?e.backtestRunId.trim():void 0),t("since",T(e.since,"since")),t("until",T(e.until,"until")),typeof e.limit=="string"&&e.limit.trim().length>0){let n=Number.parseInt(e.limit,10);if(!Number.isFinite(n))throw new Error("limit must be a number");t("limit",String(n))}return Object.keys(s).length?s:void 0}p(X,"resolveBacktestEventsParams");async function me(e,s){let t=await f(),n=m(t),r=await g(t,n),i=y(t),{app:o}=await v(i,r,s),c={...X(e)??{},appId:o.id},l=await z(i,r,{method:"GET",query:c});console.log(JSON.stringify(l,null,2))}p(me,"runBacktestEvents");async function ye(e,s){let t=typeof e.runId=="string"?e.runId.trim():typeof e.backtestRunId=="string"?e.backtestRunId.trim():"";if(!t)throw new Error("usage: backtest get <handle>/<repo> --run-id <id>");let n=await f(),r=m(n),i=await g(n,r),o=y(n),{app:c}=await v(o,i,s),l=await F(o,i,{appId:c.id,runId:t});console.log(JSON.stringify(l,null,2))}p(ye,"runBacktestGet");export{X as resolveBacktestEventsParams,de as runAppsAgentCreate,le as runAppsAssistant,oe as runAppsCodeVisibility,ge as runAppsDeploy,fe as runAppsEnvGet,ue as runAppsEnvSet,se as runAppsList,ae as runAppsPerformance,ce as runAppsSummary,ie as runAppsTools,pe as runAppsToolsExecute,me as runBacktestEvents,ye as runBacktestGet};