openpond 0.2.58 → 0.2.60

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 (389) hide show
  1. package/README.md +27 -0
  2. package/dist/app-server.d.ts +8 -1
  3. package/dist/app-server.js +1 -1
  4. package/dist/chunks/acp-ARBNMIPT.js +2 -0
  5. package/dist/chunks/acp-agent-53COYDHB.js +21 -0
  6. package/dist/chunks/{actions-command-QU4H53OG.js → actions-command-6YSZ7EJS.js} +1 -1
  7. package/dist/chunks/{app-layer-NSTE5HIT.js → app-layer-TVG7KTW6.js} +1 -1
  8. package/dist/chunks/{app-server-connected-apps-JHGWLBXT.js → app-server-connected-apps-K62M6LCT.js} +1 -1
  9. package/dist/chunks/{app-server-evaluations-K52NAQLP.js → app-server-evaluations-RM6WXX3H.js} +1 -1
  10. package/dist/chunks/app-server-harness-services-RLKMWOQ4.js +2 -0
  11. package/dist/chunks/app-server-runtime-OKMEHNEU.js +2 -0
  12. package/dist/chunks/apps-YWZL2H34.js +2 -0
  13. package/dist/chunks/{chunk-DARVPBZ4.js → chunk-23P2O7PH.js} +1 -1
  14. package/dist/chunks/{chunk-PF5R6CMP.js → chunk-2GICDASL.js} +1 -1
  15. package/dist/chunks/{chunk-6MI4KKWF.js → chunk-2ITZW2CN.js} +1 -1
  16. package/dist/chunks/chunk-2MMCZHKL.js +2 -0
  17. package/dist/chunks/{chunk-ABD5M2D2.js → chunk-2PAJCXFC.js} +1 -1
  18. package/dist/chunks/chunk-2RNCXDJC.js +5 -0
  19. package/dist/chunks/{chunk-APB2STJK.js → chunk-2SUMZ73C.js} +1 -1
  20. package/dist/chunks/{chunk-YOQRYNLP.js → chunk-3CWRTKHY.js} +1 -1
  21. package/dist/chunks/{chunk-TRQQNFMO.js → chunk-44LWH5U6.js} +1 -1
  22. package/dist/chunks/{chunk-HPBQ4VTW.js → chunk-52KIORRX.js} +1 -1
  23. package/dist/chunks/{chunk-NHQ36THU.js → chunk-5RHYSQZ5.js} +1 -1
  24. package/dist/chunks/{chunk-3QIB5FXI.js → chunk-5ZBLCWEJ.js} +1 -1
  25. package/dist/chunks/{chunk-FTEOCCPB.js → chunk-637UACKH.js} +1 -1
  26. package/dist/chunks/chunk-655DQ6AX.js +145 -0
  27. package/dist/chunks/{chunk-N4FFQPLR.js → chunk-6GWOVHIG.js} +1 -1
  28. package/dist/chunks/chunk-6HQB3MQO.js +2 -0
  29. package/dist/chunks/{chunk-UKMA4R6X.js → chunk-7LZISGTA.js} +2 -2
  30. package/dist/chunks/{chunk-A6USMRWK.js → chunk-7RC5WPVT.js} +1 -1
  31. package/dist/chunks/{chunk-H6IW2R22.js → chunk-7YTHEMWI.js} +1 -1
  32. package/dist/chunks/{chunk-PCSIOUHF.js → chunk-A3L74U3W.js} +1 -1
  33. package/dist/chunks/{chunk-25MBPJVY.js → chunk-A66CSUBJ.js} +1 -1
  34. package/dist/chunks/{chunk-OUVIWDL2.js → chunk-AGVOGPAZ.js} +1 -1
  35. package/dist/chunks/{chunk-M4JWQSV7.js → chunk-AW5Q6NXT.js} +1 -1
  36. package/dist/chunks/{chunk-RWWE5OXU.js → chunk-B46HZ3MX.js} +1 -1
  37. package/dist/chunks/{chunk-KGNCKIFP.js → chunk-BIPQCJ5V.js} +1 -1
  38. package/dist/chunks/{chunk-HCYX6RHP.js → chunk-BIQ33JV5.js} +1 -1
  39. package/dist/chunks/{chunk-JFXWI3EN.js → chunk-BK63OQRW.js} +1 -1
  40. package/dist/chunks/{chunk-2D4Y3HNW.js → chunk-CFSIU6CW.js} +1 -1
  41. package/dist/chunks/{chunk-EIEZHFIW.js → chunk-D3RRUWNN.js} +1 -1
  42. package/dist/chunks/{chunk-X4OSOOSU.js → chunk-D4UX2O45.js} +1 -1
  43. package/dist/chunks/{chunk-GJ2ZJFDD.js → chunk-DG4TYVPF.js} +1 -1
  44. package/dist/chunks/{chunk-QIKWJ2AA.js → chunk-DGIEXZJV.js} +1 -1
  45. package/dist/chunks/{chunk-PRGBLQVH.js → chunk-DIGX56JY.js} +1 -1
  46. package/dist/chunks/{chunk-JYKRR7E5.js → chunk-DISNCX6R.js} +1 -1
  47. package/dist/chunks/{chunk-773TH7FN.js → chunk-DK7IKI7O.js} +1 -1
  48. package/dist/chunks/{chunk-74IIXVAE.js → chunk-DX7YEUNQ.js} +1 -1
  49. package/dist/chunks/{chunk-523TE4BI.js → chunk-E63VWAQA.js} +1 -1
  50. package/dist/chunks/{chunk-5MCNZCVQ.js → chunk-EL454L26.js} +1 -1
  51. package/dist/chunks/{chunk-OS3LO5J3.js → chunk-ENSB6ZTM.js} +1 -1
  52. package/dist/chunks/{chunk-EAPFMACH.js → chunk-ERJV5BMC.js} +1 -1
  53. package/dist/chunks/{chunk-RNIAFXMB.js → chunk-EXJGCNRS.js} +1 -1
  54. package/dist/chunks/chunk-F5KCCDQM.js +2 -0
  55. package/dist/chunks/chunk-FSQWAANK.js +3 -0
  56. package/dist/chunks/{chunk-Z54O534A.js → chunk-G5B3PB5X.js} +1 -1
  57. package/dist/chunks/{chunk-4D7HWVWD.js → chunk-GAWGIJQG.js} +1 -1
  58. package/dist/chunks/{chunk-IIZ4CWBX.js → chunk-GGGF5NHJ.js} +1 -1
  59. package/dist/chunks/{chunk-APB4O67E.js → chunk-GOYBYYPQ.js} +1 -1
  60. package/dist/chunks/{chunk-XDQMGUWL.js → chunk-H3BSIAQO.js} +1 -1
  61. package/dist/chunks/{chunk-EYPCBBMS.js → chunk-HCEJAOIF.js} +1 -1
  62. package/dist/chunks/{chunk-OPNRWESL.js → chunk-IFQCOSU6.js} +1 -1
  63. package/dist/chunks/chunk-IJHZBHEK.js +9 -0
  64. package/dist/chunks/{chunk-RAXOSUSW.js → chunk-ISFIDCIH.js} +1 -1
  65. package/dist/chunks/{chunk-OLLLZVHF.js → chunk-ITKTILKI.js} +1 -1
  66. package/dist/chunks/{chunk-D74JEERO.js → chunk-IUBARBGI.js} +1 -1
  67. package/dist/chunks/{chunk-O72BSKSO.js → chunk-J24I74EM.js} +1 -1
  68. package/dist/chunks/{chunk-H4QHIHMK.js → chunk-J7QGHA7G.js} +3 -3
  69. package/dist/chunks/chunk-JFXINDOQ.js +3 -0
  70. package/dist/chunks/{chunk-HIOKCIL7.js → chunk-JGWINTT5.js} +1 -1
  71. package/dist/chunks/{chunk-Q2QL6UWN.js → chunk-JHEFWB6O.js} +1 -1
  72. package/dist/chunks/{chunk-QNG27G3T.js → chunk-JHMS2WXM.js} +2 -2
  73. package/dist/chunks/{chunk-PSGGOZFM.js → chunk-JHR3LF2F.js} +1 -1
  74. package/dist/chunks/{chunk-JE7RJZOA.js → chunk-KGLJU66U.js} +3 -3
  75. package/dist/chunks/{chunk-XEOEKFG6.js → chunk-KJFRCVQC.js} +1 -1
  76. package/dist/chunks/chunk-KNO355LC.js +2 -0
  77. package/dist/chunks/{chunk-ZGTOK7ZK.js → chunk-LD7PGREF.js} +2 -2
  78. package/dist/chunks/{chunk-I7AQMAQI.js → chunk-LHA7RQBA.js} +6 -6
  79. package/dist/chunks/{chunk-6QSSIT62.js → chunk-LO3O45IX.js} +1 -1
  80. package/dist/chunks/{chunk-G3RXYI2L.js → chunk-M2SKXY5C.js} +2 -2
  81. package/dist/chunks/{chunk-2IHO4GDJ.js → chunk-M3ZQDPRS.js} +1 -1
  82. package/dist/chunks/{chunk-JDEEWOD7.js → chunk-M4ZF44H5.js} +1 -1
  83. package/dist/chunks/{chunk-Y4OWBBDD.js → chunk-M55H7KVR.js} +1 -1
  84. package/dist/chunks/{chunk-JAJ46T5X.js → chunk-MGKMIRYG.js} +1 -1
  85. package/dist/chunks/{chunk-4EQA2M7K.js → chunk-MJGU2JJ2.js} +2 -2
  86. package/dist/chunks/{chunk-65PL62KH.js → chunk-MS37ISA4.js} +2 -2
  87. package/dist/chunks/{chunk-NH6UUX5S.js → chunk-NCKXI2VB.js} +11 -11
  88. package/dist/chunks/chunk-NHUUCNAD.js +2 -0
  89. package/dist/chunks/{chunk-O6ULLQJ6.js → chunk-O3VP46SE.js} +1 -1
  90. package/dist/chunks/chunk-O4FBOUNX.js +2 -0
  91. package/dist/chunks/chunk-O6IFVTZT.js +9 -0
  92. package/dist/chunks/{chunk-5IPFI25K.js → chunk-O7B44IYN.js} +1 -1
  93. package/dist/chunks/{chunk-DMVD2RFZ.js → chunk-OGMDEA3Y.js} +1 -1
  94. package/dist/chunks/{chunk-BLXEAZCQ.js → chunk-OKBIWRHC.js} +1 -1
  95. package/dist/chunks/{chunk-FFRFSDBM.js → chunk-ON2RNOCG.js} +1 -1
  96. package/dist/chunks/{chunk-LQQNBVEB.js → chunk-ONDCV5QC.js} +1 -1
  97. package/dist/chunks/{chunk-UCPGRPWY.js → chunk-OQ4VGCRG.js} +1 -1
  98. package/dist/chunks/{chunk-YNH3NMPF.js → chunk-OWK7HU5I.js} +1 -1
  99. package/dist/chunks/{chunk-DBK66CJP.js → chunk-OY5HC2P6.js} +1 -1
  100. package/dist/chunks/{chunk-T5AACNJI.js → chunk-P7HRF4FM.js} +1 -1
  101. package/dist/chunks/{chunk-7ED24PP6.js → chunk-PCNLC5H3.js} +1 -1
  102. package/dist/chunks/{chunk-ES2ISFJC.js → chunk-PF56N7ZY.js} +1 -1
  103. package/dist/chunks/{chunk-VVCKLCF3.js → chunk-PKALOVHC.js} +2 -2
  104. package/dist/chunks/{chunk-ZCHXGRRU.js → chunk-PR5TYTY4.js} +1 -1
  105. package/dist/chunks/{chunk-Q4TBTRIG.js → chunk-PWK5Z5S3.js} +1 -1
  106. package/dist/chunks/chunk-PXS4SVQG.js +16 -0
  107. package/dist/chunks/{chunk-AY64VY4E.js → chunk-QGOPYQW3.js} +1 -1
  108. package/dist/chunks/{chunk-7E6T7GP5.js → chunk-R7YEURUQ.js} +1 -1
  109. package/dist/chunks/{chunk-ACYFMLWG.js → chunk-RCA6NGVA.js} +2 -2
  110. package/dist/chunks/{chunk-DUURYZOI.js → chunk-RG3NH6YQ.js} +1 -1
  111. package/dist/chunks/{chunk-7SC46OFC.js → chunk-RJIUOLWY.js} +1 -1
  112. package/dist/chunks/{chunk-F4KOGISR.js → chunk-RXE3FYMJ.js} +1 -1
  113. package/dist/chunks/chunk-RYGWCN2R.js +2 -0
  114. package/dist/chunks/{chunk-VYLGI3IH.js → chunk-SFNCAPCJ.js} +1 -1
  115. package/dist/chunks/{chunk-Z4Z5UOZM.js → chunk-SG6JZ7HD.js} +1 -1
  116. package/dist/chunks/{chunk-XX6SMFDY.js → chunk-SKRNWRKV.js} +5 -5
  117. package/dist/chunks/{chunk-ZRDGQDZL.js → chunk-SLZH4Z6C.js} +1 -1
  118. package/dist/chunks/{chunk-WN3V6KDN.js → chunk-SPDSSMFD.js} +1 -1
  119. package/dist/chunks/chunk-STWRTNRK.js +2 -0
  120. package/dist/chunks/{chunk-HZEIRHEB.js → chunk-T5J7HIHR.js} +1 -1
  121. package/dist/chunks/{chunk-ROGF26KV.js → chunk-TBUAQWFS.js} +1 -1
  122. package/dist/chunks/{chunk-ZUJ3XUCP.js → chunk-TEPRCBDV.js} +1 -1
  123. package/dist/chunks/{chunk-HDGTHRY7.js → chunk-TOFMA2L5.js} +2 -2
  124. package/dist/chunks/{chunk-QOGJAQDO.js → chunk-UFHLLSCE.js} +1 -1
  125. package/dist/chunks/{chunk-TTVS6JMC.js → chunk-UJKQLO6B.js} +2 -2
  126. package/dist/chunks/{chunk-OQKJGTTO.js → chunk-UZQNFTLR.js} +1 -1
  127. package/dist/chunks/{chunk-F74GBN6K.js → chunk-V2HMWCT6.js} +1 -1
  128. package/dist/chunks/{chunk-6ZFPQYHG.js → chunk-V4KT5FCJ.js} +1 -1
  129. package/dist/chunks/{chunk-TVQAPBLZ.js → chunk-VHSX3JPX.js} +1 -1
  130. package/dist/chunks/{chunk-SDXFLO7J.js → chunk-W2SXOGTQ.js} +1 -1
  131. package/dist/chunks/{chunk-FUOEIDMA.js → chunk-WDEO44UN.js} +1 -1
  132. package/dist/chunks/{chunk-4NESNOK5.js → chunk-WEHBK3MC.js} +1 -1
  133. package/dist/chunks/{chunk-4EPSHPZL.js → chunk-WGX7WY4N.js} +1 -1
  134. package/dist/chunks/{chunk-NC27T4AB.js → chunk-WHREO7A2.js} +1 -1
  135. package/dist/chunks/{chunk-RNQF63ZR.js → chunk-WS2ZZBAQ.js} +4 -4
  136. package/dist/chunks/{chunk-DIO5CB6U.js → chunk-WYZWDMMF.js} +1 -1
  137. package/dist/chunks/{chunk-MQULU465.js → chunk-XO3H32KX.js} +1 -1
  138. package/dist/chunks/{chunk-EIRYMSEG.js → chunk-XQBIHPPX.js} +1 -1
  139. package/dist/chunks/chunk-XRKFTPHD.js +2 -0
  140. package/dist/chunks/{chunk-B7RFL4N2.js → chunk-XSCIOQYE.js} +1 -1
  141. package/dist/chunks/{chunk-TJ6GVTYB.js → chunk-XTWEWYK7.js} +9 -9
  142. package/dist/chunks/{chunk-JUHZ5S3R.js → chunk-Y3GIM6WK.js} +1 -1
  143. package/dist/chunks/{chunk-74ZXXBGN.js → chunk-Y54RKLOI.js} +1 -1
  144. package/dist/chunks/{chunk-SWUEFLOH.js → chunk-Y777GISF.js} +1 -1
  145. package/dist/chunks/{chunk-EKM2D7JU.js → chunk-YDU3S6UT.js} +1 -1
  146. package/dist/chunks/{chunk-UGL7WF3W.js → chunk-YOZIZYSC.js} +1 -1
  147. package/dist/chunks/{chunk-OSIO7PLX.js → chunk-YQKOB56U.js} +1 -1
  148. package/dist/chunks/chunk-YVNDDNMK.js +3 -0
  149. package/dist/chunks/chunk-ZAZKJJOT.js +86 -0
  150. package/dist/chunks/{chunk-QL4OIPEZ.js → chunk-ZR7LIMJS.js} +2 -2
  151. package/dist/chunks/{chunk-L3KCP52O.js → chunk-ZTJOOY2F.js} +1 -1
  152. package/dist/chunks/{chunk-GPVCOEUH.js → chunk-ZTVXRZ6D.js} +1 -1
  153. package/dist/chunks/cli-CNYNXKGQ.js +2 -0
  154. package/dist/chunks/configuration-command-5K7EE2J5.js +2 -0
  155. package/dist/chunks/connected-app-executor-E25XCNAS.js +2 -0
  156. package/dist/chunks/connected-evidence-QNSO5BTF.js +2 -0
  157. package/dist/chunks/connection-Y2KCMBYD.js +2 -0
  158. package/dist/chunks/{continual-6CQAMTTR.js → continual-SOO3QBNQ.js} +1 -1
  159. package/dist/chunks/core-commands-ZTWPYAFQ.js +2 -0
  160. package/dist/chunks/datasets-XPUMWGOC.js +2 -0
  161. package/dist/chunks/desktop-test-HVSW4JHY.js +3 -0
  162. package/dist/chunks/dist-4N6AHWNN.js +2 -0
  163. package/dist/chunks/{dist-OMGUJYPD.js → dist-N6R6VNFD.js} +1 -1
  164. package/dist/chunks/{dist-VYC5VMQB.js → dist-QN7WKZ2D.js} +1 -1
  165. package/dist/chunks/{enclave-QS4BUNDU.js → enclave-VURYNILU.js} +1 -1
  166. package/dist/chunks/evaluation-coordination-AOTFPVMS.js +2 -0
  167. package/dist/chunks/experiment-improvements-75CN3VI7.js +2 -0
  168. package/dist/chunks/experiments-AGAHM2AK.js +2 -0
  169. package/dist/chunks/{experiments-VFQGE4HC.js → experiments-DYSHYBGB.js} +1 -1
  170. package/dist/chunks/{extension-XKXXOP5N.js → extension-UT4CSDJF.js} +1 -1
  171. package/dist/chunks/help-KU52CFMW.js +8 -0
  172. package/dist/chunks/host-profile-evaluation-tools-LZDMQCMT.js +2 -0
  173. package/dist/chunks/host-profile-external-dataset-VK3NJHMC.js +2 -0
  174. package/dist/chunks/hosted-app-server-composition-P7V7K7CG.js +2 -0
  175. package/dist/chunks/{hosted-experiment-improvement-HVMDGS75.js → hosted-experiment-improvement-P433KDX2.js} +1 -1
  176. package/dist/chunks/hosted-harness-runtime-Y4DONWPC.js +2 -0
  177. package/dist/chunks/{hosted-profile-candidate-EXNN6MVN.js → hosted-profile-candidate-72MMPN6U.js} +1 -1
  178. package/dist/chunks/hosted-profile-compiler-RXHLK224.js +2 -0
  179. package/dist/chunks/hosted-profile-evaluation-control-LS4DCSDO.js +2 -0
  180. package/dist/chunks/{hosted-profile-evaluation-inspection-ZUANDYZ6.js → hosted-profile-evaluation-inspection-3Q6EHO66.js} +1 -1
  181. package/dist/chunks/{hosted-profile-evaluation-preparation-ORVZ6MBD.js → hosted-profile-evaluation-preparation-ZD27HNLF.js} +1 -1
  182. package/dist/chunks/{hosted-tasksets-ANAE2PIW.js → hosted-tasksets-V2PQZJN4.js} +1 -1
  183. package/dist/chunks/human-review-4FJFINQX.js +2 -0
  184. package/dist/chunks/import-GBHSLA3G.js +3 -0
  185. package/dist/chunks/{learning-ACEVFL5M.js → learning-U3FZL5YB.js} +1 -1
  186. package/dist/chunks/local-harness-improvement-runtime-UP2P7UT4.js +2 -0
  187. package/dist/chunks/local-harness-taskset-review-ZNOKSPJJ.js +2 -0
  188. package/dist/chunks/{local-scope-HVF2GZ5W.js → local-scope-62GWHDXS.js} +1 -1
  189. package/dist/chunks/{model-projects-QPO22JPA.js → model-projects-LQ4C6R3X.js} +1 -1
  190. package/dist/chunks/opchat-Q4PIWPYW.js +3 -0
  191. package/dist/chunks/organizations-TEH6HBQ3.js +2 -0
  192. package/dist/chunks/{profile-TFZMUEDR.js → profile-SWPVCGTR.js} +1 -1
  193. package/dist/chunks/{profile-training-source-6GOT7AHM.js → profile-training-source-J73ZLNSC.js} +1 -1
  194. package/dist/chunks/project-action-payload-OU3ZPHW7.js +2 -0
  195. package/dist/chunks/project-agent-J7ILCRBS.js +2 -0
  196. package/dist/chunks/{published-experiment-source-HVP5IGRH.js → published-experiment-source-HVHKSYDL.js} +1 -1
  197. package/dist/chunks/refiner-profile-service-E7YU4E3N.js +2 -0
  198. package/dist/chunks/{runtime-A7OZXM43.js → runtime-LIPHPKKJ.js} +2 -2
  199. package/dist/chunks/sandbox-command-G6KID3OP.js +2 -0
  200. package/dist/chunks/{sandbox-template-C4V6T36U.js → sandbox-template-MZTMAUFS.js} +1 -1
  201. package/dist/chunks/saved-work-LOUWLF37.js +2 -0
  202. package/dist/chunks/{send-turn-XTAIS2JN.js → send-turn-UEUEGY5W.js} +1 -1
  203. package/dist/chunks/{src-R36AGJY7.js → src-7WMZOWZZ.js} +107 -100
  204. package/dist/chunks/{src-DZL5T2MT.js → src-MVAK6D6Y.js} +1 -1
  205. package/dist/chunks/standalone-experiment-turn-owner-YRKEOEJ2.js +2 -0
  206. package/dist/chunks/{store-continual-support-reviews-LJPNG4SP.js → store-continual-support-reviews-FJLLNKCY.js} +1 -1
  207. package/dist/chunks/{store-conversation-serving-KPC62UEY.js → store-conversation-serving-4KWR4IZY.js} +1 -1
  208. package/dist/chunks/{store-create-improve-SW5FTBTL.js → store-create-improve-JWBJZRAU.js} +1 -1
  209. package/dist/chunks/{store-datasets-WMA7AJKN.js → store-datasets-4N2M6Y3K.js} +2 -2
  210. package/dist/chunks/{store-evaluation-results-ZO6R653G.js → store-evaluation-results-OBM4623U.js} +1 -1
  211. package/dist/chunks/{store-harness-memory-VINCZ4GK.js → store-harness-memory-4HUEMRCD.js} +1 -1
  212. package/dist/chunks/{store-harness-refinement-candidates-EA5KFQPH.js → store-harness-refinement-candidates-NMRWMN23.js} +1 -1
  213. package/dist/chunks/store-harness-workspaces-BGONIQDY.js +2 -0
  214. package/dist/chunks/{store-human-review-7QQ7ZQ6P.js → store-human-review-J75SIZAL.js} +1 -1
  215. package/dist/chunks/store-learned-preference-migration-validation-VLASM4CT.js +2 -0
  216. package/dist/chunks/store-learning-TUCQFBLT.js +2 -0
  217. package/dist/chunks/{store-learning-credentials-WZQJ4HPJ.js → store-learning-credentials-S4RF57NV.js} +1 -1
  218. package/dist/chunks/{store-local-experiments-SAULQSBN.js → store-local-experiments-LULRLTII.js} +5 -5
  219. package/dist/chunks/{store-model-batch-review-VKLDYGH3.js → store-model-batch-review-SVL4MT6D.js} +1 -1
  220. package/dist/chunks/{store-model-configuration-BYRJUR3C.js → store-model-configuration-ZHDSM3XM.js} +2 -2
  221. package/dist/chunks/{store-preference-comparison-LV32MHVL.js → store-preference-comparison-YMMCKXS5.js} +1 -1
  222. package/dist/chunks/{store-schedules-VGTEQVKH.js → store-schedules-6Z4QS3NU.js} +1 -1
  223. package/dist/chunks/{store-sidebar-file-bookmarks-VB5GTLFY.js → store-sidebar-file-bookmarks-MX6EP6OB.js} +2 -2
  224. package/dist/chunks/{store-sidebar-preferences-GWIOG2NH.js → store-sidebar-preferences-VYREPW26.js} +1 -1
  225. package/dist/chunks/{store-subagents-T7R2Z6TB.js → store-subagents-WGBCRALX.js} +1 -1
  226. package/dist/chunks/{store-task-inbox-QPE44OSS.js → store-task-inbox-43BNZSB7.js} +6 -6
  227. package/dist/chunks/{store-task-inventory-I3RDRI52.js → store-task-inventory-AEW4POAJ.js} +2 -2
  228. package/dist/chunks/{store-taskset-drafts-2IULRV2W.js → store-taskset-drafts-DKFO2CYB.js} +1 -1
  229. package/dist/chunks/{store-training-B2TW2MLA.js → store-training-6PFFR6ST.js} +1 -1
  230. package/dist/chunks/{store-training-jobs-VBNG23RL.js → store-training-jobs-ANDEBQ67.js} +2 -2
  231. package/dist/chunks/{store-training-models-OMV5FIC4.js → store-training-models-OOI4ZJPX.js} +2 -2
  232. package/dist/chunks/{store-usage-IE2U2FD3.js → store-usage-U72RNW64.js} +1 -1
  233. package/dist/chunks/{store-work-evidence-QQDKM5AQ.js → store-work-evidence-NY5OBATB.js} +1 -1
  234. package/dist/chunks/{taskset-EQRFQBYM.js → taskset-SL3YOXW7.js} +1 -1
  235. package/dist/chunks/{taskset-packages-XC6HEE3K.js → taskset-packages-3PCEYYDA.js} +1 -1
  236. package/dist/chunks/{teams-bot-EAPGPTHZ.js → teams-bot-IDEF3BMI.js} +1 -1
  237. package/dist/chunks/{training-UF6RPI4T.js → training-57ISIC7U.js} +1 -1
  238. package/dist/chunks/web-search-222Y63QW.js +2 -0
  239. package/dist/chunks/{workspaces-EKKE5NAC.js → workspaces-5DF4H5EX.js} +1 -1
  240. package/dist/cli.js +1 -1
  241. package/dist/index.js +1 -1
  242. package/dist/sandbox-template/manifest.js +1 -1
  243. package/dist/web/assets/{App-CaRMZoxo.css → App-DbYvV_W6.css} +1 -1
  244. package/dist/web/assets/App-nzE7JU_O.js +154 -0
  245. package/dist/web/assets/{AppDialog-t2Fx5tK3.js → AppDialog-VtNvqbDm.js} +1 -1
  246. package/dist/web/assets/{AppTerminalPanel-Dj1Y32oI.js → AppTerminalPanel-BMfKdrrN.js} +2 -2
  247. package/dist/web/assets/AppsView-CdWyrDEb.js +1 -0
  248. package/dist/web/assets/{BrowserSidebar-jhWi4rVm.js → BrowserSidebar-CtOIciOa.js} +1 -1
  249. package/dist/web/assets/{CartesianChart-C1DIx0Ia.js → CartesianChart-u1lvLM30.js} +1 -1
  250. package/dist/web/assets/{CollaborationTabs-Bdr-HmOL.js → CollaborationTabs-CaBfDYRW.js} +1 -1
  251. package/dist/web/assets/{CommandMenu-Ux2yOHAc.js → CommandMenu-CFW3WJ11.js} +1 -1
  252. package/dist/web/assets/{CommunityView-DPEeVKFn.js → CommunityView-D2EjaeuH.js} +1 -1
  253. package/dist/web/assets/ComposerCreateImproveStrip-6wYSJdzv.js +1 -0
  254. package/dist/web/assets/ConversationImportsSettings-BJ4QhF7p.js +1 -0
  255. package/dist/web/assets/ConversationImportsSettings-PfUa8V7X.css +1 -0
  256. package/dist/web/assets/{GetStartedView-CFHP0AaI.js → GetStartedView-DBcOwIJn.js} +1 -1
  257. package/dist/web/assets/{HostedModelLearningReview-D8BGTPVN.js → HostedModelLearningReview-BNpK6_W9.js} +1 -1
  258. package/dist/web/assets/{HostedModelLearningSettings-JS1S7vNO.js → HostedModelLearningSettings-SrsdeeoA.js} +1 -1
  259. package/dist/web/assets/{LabModelVersionDetailPage-Dx5Q3xV2.js → LabModelVersionDetailPage-Cd6bRHt9.js} +1 -1
  260. package/dist/web/assets/LabSkillSidebar-CQfvel4w.js +1 -0
  261. package/dist/web/assets/{LabsRoute-CyYF8-dw.js → LabsRoute-sXLJt1KR.js} +4 -4
  262. package/dist/web/assets/MainChatThread-dlDDK2JM.js +2 -0
  263. package/dist/web/assets/MainPane-DCz38-qy.js +65 -0
  264. package/dist/web/assets/{MarkdownText-BR4V6lNO.js → MarkdownText-Drjq6-JM.js} +1 -1
  265. package/dist/web/assets/{NativeSkillSidebar-DU9IEgIO.js → NativeSkillSidebar-jncZijt-.js} +1 -1
  266. package/dist/web/assets/{NewExperienceSwitcher-mIy6FzCj.js → NewExperienceSwitcher-DXKzoMaM.js} +1 -1
  267. package/dist/web/assets/{NewProjectDialog-RfTZTHxl.js → NewProjectDialog-DIyjAxJG.js} +1 -1
  268. package/dist/web/assets/OutputsPage-Dy1cNr3n.js +1 -0
  269. package/dist/web/assets/{ProjectsPage-CE6QUB-b.js → ProjectsPage-D2EeybIv.js} +1 -1
  270. package/dist/web/assets/RightChatPanelStack-4wUL-W9_.js +1 -0
  271. package/dist/web/assets/{RightSidebarHomePanel-CK0rP3WT.js → RightSidebarHomePanel-Bd_AHUp8.js} +1 -1
  272. package/dist/web/assets/{ScheduledWorkPage-vOrYv8pp.js → ScheduledWorkPage-BJkSzwz2.js} +1 -1
  273. package/dist/web/assets/{SettingsView-DCKVrfjj.js → SettingsView-BhcP72KH.js} +4 -4
  274. package/dist/web/assets/SettingsView-DjjnCnlb.css +1 -0
  275. package/dist/web/assets/{TeamChatView-Bwrjr-vk.js → TeamChatView-CR0fdicZ.js} +2 -2
  276. package/dist/web/assets/{TerminalOverlay-DhPoKZAq.js → TerminalOverlay-DGrZRZ_3.js} +10 -10
  277. package/dist/web/assets/TrainingCreationPanel-BsTG7aFS.js +1 -0
  278. package/dist/web/assets/{TrainingDraftPanel-C9cRX5qf.js → TrainingDraftPanel-ByErrht7.js} +1 -1
  279. package/dist/web/assets/{UsageSettingsSection-CrdcSGeW.js → UsageSettingsSection-DeYTJbcM.js} +1 -1
  280. package/dist/web/assets/{WorkSidebarPanel-DSSikNFQ.js → WorkSidebarPanel-DcNvEEoy.js} +1 -1
  281. package/dist/web/assets/{WorkspaceDiffPanel-BAFo0CPN.js → WorkspaceDiffPanel-CdPRcYWN.js} +3 -3
  282. package/dist/web/assets/{WorkspaceEnvironmentMenu-BVHAhwnJ.js → WorkspaceEnvironmentMenu-xUYg-iGn.js} +18 -18
  283. package/dist/web/assets/{WorkspaceGitDialogs-CwVoiDQ2.js → WorkspaceGitDialogs-CBViLL3S.js} +1 -1
  284. package/dist/web/assets/{WorkspaceMonacoEditor-TxLyhzNp.js → WorkspaceMonacoEditor-frxie2_S.js} +3 -3
  285. package/dist/web/assets/agent-connections-D7ao-vbU.js +1 -0
  286. package/dist/web/assets/{arrow-up-right-C9aE8Mfz.js → arrow-up-right-DCWPxdbD.js} +1 -1
  287. package/dist/web/assets/{chunk-P3BRSSRD-DUGfuKA8.js → chunk-P3BRSSRD-B5JXa0Nh.js} +1 -1
  288. package/dist/web/assets/{clipboard-Dk158Qp4.js → clipboard-B-GnMVLp.js} +1 -1
  289. package/dist/web/assets/{cloud-upload-k9eqBsHr.js → cloud-upload-DpaGFZ9J.js} +1 -1
  290. package/dist/web/assets/{cssMode-CO35ARZp.js → cssMode-DJHE7R3W.js} +1 -1
  291. package/dist/web/assets/{folder-open-sYgceW_f.js → folder-open-B-DFLDFH.js} +1 -1
  292. package/dist/web/assets/{folder-plus-CS0R49m9.js → folder-plus-CPXxPvSH.js} +1 -1
  293. package/dist/web/assets/{git-commit-horizontal-DrGxH2h4.js → git-commit-horizontal-DCTzcivA.js} +1 -1
  294. package/dist/web/assets/{htmlMode-REMmzdfq.js → htmlMode-DxZVBAYd.js} +1 -1
  295. package/dist/web/assets/index-BojtIRzO.css +1 -0
  296. package/dist/web/assets/{index-C8aCGagb.js → index-Di1MU6Xr.js} +2 -2
  297. package/dist/web/assets/{info-DLdbiUrh.js → info-BMxsR_bn.js} +1 -1
  298. package/dist/web/assets/{jsonMode-KEdMfkIf.js → jsonMode-CzWoMkpp.js} +1 -1
  299. package/dist/web/assets/{lspLanguageFeatures-5KZwEoxW.js → lspLanguageFeatures-15K7ND6Q.js} +1 -1
  300. package/dist/web/assets/{minimize-2-CqcI4zcM.js → minimize-2-DwUgqXoR.js} +1 -1
  301. package/dist/web/assets/{monaco.contribution-Cly9Wt7L.js → monaco.contribution-BBLKjER5.js} +2 -2
  302. package/dist/web/assets/{monaco.contribution-omszXBEj.js → monaco.contribution-DBjvSu8p.js} +2 -2
  303. package/dist/web/assets/{monaco.contribution-DO10L0zW.js → monaco.contribution-DUWvjhIG.js} +2 -2
  304. package/dist/web/assets/{monaco.contribution-BJGj65F9.js → monaco.contribution-w0zfkYLX.js} +2 -2
  305. package/dist/web/assets/{monitor-BFVCcbxp.js → monitor-Ihu5LVYx.js} +1 -1
  306. package/dist/web/assets/{play-C469pVZq.js → play-D_YGCdxU.js} +1 -1
  307. package/dist/web/assets/{python-Dw0YcVy9.js → python-Q4OuoXYc.js} +1 -1
  308. package/dist/web/assets/{save-CtSjPydi.js → save-DJYUOhtD.js} +1 -1
  309. package/dist/web/assets/{square-BuImvLhT.js → square-DXtoCBNw.js} +1 -1
  310. package/dist/web/assets/{toggleHighContrast-DjCO9lIP.js → toggleHighContrast-CaNeuWVE.js} +1 -1
  311. package/dist/web/assets/{tsMode-BAOnxKd6.js → tsMode-CJnQ2wmM.js} +1 -1
  312. package/dist/web/assets/{upload-2JkFZo3h.js → upload-fCP3_OEO.js} +1 -1
  313. package/dist/web/assets/{useLocalAgentSchedules-BNqAisfS.js → useLocalAgentSchedules-BFoH_gwZ.js} +1 -1
  314. package/dist/web/assets/useProviderSettings-2eysgqiA.js +5 -0
  315. package/dist/web/assets/{useProviderSettings-CmL_BaxP.css → useProviderSettings-Cktvzinz.css} +1 -1
  316. package/dist/web/assets/{useSessionTurnCache-BHU2-Jmz.js → useSessionTurnCache-DLF5SPD-.js} +1 -1
  317. package/dist/web/assets/{wifi-off-CpOAH62M.js → wifi-off-DZoiFrRz.js} +1 -1
  318. package/dist/web/assets/{workers-0QvlA2T5.js → workers-D5nr74M-.js} +1 -1
  319. package/dist/web/assets/{yaml-BK3qxo7D.js → yaml-CwsoTJmk.js} +1 -1
  320. package/dist/web/index.html +2 -2
  321. package/docs/command-reference.md +22 -3
  322. package/docs/conversation-imports.md +57 -0
  323. package/package.json +1 -1
  324. package/dist/chunks/app-server-harness-services-QMUOEYOA.js +0 -2
  325. package/dist/chunks/app-server-runtime-ISGGLQHU.js +0 -2
  326. package/dist/chunks/apps-BKTOR4F7.js +0 -2
  327. package/dist/chunks/chunk-3VUATFZD.js +0 -2
  328. package/dist/chunks/chunk-3Z47M3YY.js +0 -2
  329. package/dist/chunks/chunk-6UDGARFC.js +0 -143
  330. package/dist/chunks/chunk-FV2R5RUN.js +0 -3
  331. package/dist/chunks/chunk-HY3GOBFJ.js +0 -58
  332. package/dist/chunks/chunk-I3HZKJB3.js +0 -2
  333. package/dist/chunks/chunk-I3VVWNUW.js +0 -5
  334. package/dist/chunks/chunk-KG325WTN.js +0 -2
  335. package/dist/chunks/chunk-Q5LEXXJG.js +0 -16
  336. package/dist/chunks/chunk-QDC4OW3S.js +0 -2
  337. package/dist/chunks/chunk-SDAUS5PY.js +0 -2
  338. package/dist/chunks/chunk-VRIEKBBH.js +0 -9
  339. package/dist/chunks/chunk-WJ43MJ3F.js +0 -2
  340. package/dist/chunks/chunk-X2HIHF2I.js +0 -2
  341. package/dist/chunks/chunk-YBT2NB32.js +0 -2
  342. package/dist/chunks/chunk-ZTNHW2K7.js +0 -10
  343. package/dist/chunks/cli-XZENDZ7Z.js +0 -2
  344. package/dist/chunks/configuration-command-6C5UO7GE.js +0 -2
  345. package/dist/chunks/connected-app-executor-LQNIU5NR.js +0 -2
  346. package/dist/chunks/connected-evidence-GH2ATNEX.js +0 -2
  347. package/dist/chunks/connection-HTF6CC7M.js +0 -2
  348. package/dist/chunks/core-commands-A2DGGIPS.js +0 -2
  349. package/dist/chunks/datasets-7BNMVJOY.js +0 -2
  350. package/dist/chunks/desktop-test-3CUHVLXV.js +0 -3
  351. package/dist/chunks/dist-ZVJPJLXR.js +0 -2
  352. package/dist/chunks/evaluation-coordination-XEF5L7KZ.js +0 -2
  353. package/dist/chunks/experiment-improvements-KRX2DP27.js +0 -2
  354. package/dist/chunks/experiments-DFGQYA4O.js +0 -2
  355. package/dist/chunks/help-S7THC6IE.js +0 -8
  356. package/dist/chunks/host-profile-evaluation-tools-JOFBL5OF.js +0 -2
  357. package/dist/chunks/host-profile-external-dataset-K3ICDHIP.js +0 -2
  358. package/dist/chunks/hosted-app-server-composition-T5IWGOTA.js +0 -2
  359. package/dist/chunks/hosted-harness-runtime-YCKB6NBI.js +0 -2
  360. package/dist/chunks/hosted-profile-compiler-IYLLHCRY.js +0 -2
  361. package/dist/chunks/hosted-profile-evaluation-control-TJVER3NW.js +0 -2
  362. package/dist/chunks/human-review-WR777ODH.js +0 -2
  363. package/dist/chunks/import-MLZUHITH.js +0 -4
  364. package/dist/chunks/local-harness-improvement-runtime-QRFGPFRM.js +0 -2
  365. package/dist/chunks/local-harness-taskset-review-HR7KLY4B.js +0 -2
  366. package/dist/chunks/opchat-T4QTNEIY.js +0 -3
  367. package/dist/chunks/organizations-75L5DZDV.js +0 -2
  368. package/dist/chunks/project-action-payload-JDS6OQAW.js +0 -2
  369. package/dist/chunks/project-agent-6RRO233B.js +0 -2
  370. package/dist/chunks/refiner-profile-service-FDTQKY33.js +0 -2
  371. package/dist/chunks/sandbox-command-IU5XFTJP.js +0 -2
  372. package/dist/chunks/saved-work-SHEEDZ6Z.js +0 -2
  373. package/dist/chunks/standalone-experiment-turn-owner-JCY5LL5R.js +0 -2
  374. package/dist/chunks/store-harness-workspaces-XUM4Z66X.js +0 -2
  375. package/dist/chunks/store-learned-preference-migration-validation-NADPXOTG.js +0 -2
  376. package/dist/chunks/store-learning-WLG6KFIO.js +0 -2
  377. package/dist/chunks/web-search-CZ3NCLPY.js +0 -2
  378. package/dist/web/assets/App-s-CJswyt.js +0 -154
  379. package/dist/web/assets/AppsView-BYE5EBDJ.js +0 -1
  380. package/dist/web/assets/ComposerCreateImproveStrip-CEgh4OtN.js +0 -1
  381. package/dist/web/assets/LabSkillSidebar-BxffN-pN.js +0 -1
  382. package/dist/web/assets/MainChatThread-DZpcFRFl.js +0 -2
  383. package/dist/web/assets/MainPane-5DTtwVCk.js +0 -65
  384. package/dist/web/assets/OutputsPage-Cr1Spf7S.js +0 -1
  385. package/dist/web/assets/RightChatPanelStack-T6VRWuHo.js +0 -1
  386. package/dist/web/assets/SettingsView-Dulr_xlq.css +0 -1
  387. package/dist/web/assets/TrainingCreationPanel-BXHfohNm.js +0 -1
  388. package/dist/web/assets/index-3iPNbbER.css +0 -1
  389. package/dist/web/assets/useProviderSettings-C4L4wDoh.js +0 -5
@@ -1,5 +0,0 @@
1
- import{r as s,j as e}from"./index-C8aCGagb.js";import{e as Ae,g as q,aA as ae,bz as K,X as ge,S as se,q as Z,D as Ee,ay as be,aF as fe,cp as Oe,bG as Me,ct as Re,V as H,cu as te,bC as $e,p as De,ac as ce}from"./App-s-CJswyt.js";import{S as Te}from"./save-CtSjPydi.js";import{T as de}from"./MarkdownText-BR4V6lNO.js";const _e=[["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"}]],Y=Ae("key-round",_e);function Le({connection:n,onChanged:r,onAdded:c}){const[l,o]=s.useState(!1),[m,p]=s.useState(!1),[t,A]=s.useState(null),[T,E]=s.useState(0),[C,L]=s.useState(""),[a,S]=s.useState(null),[R,_]=s.useState(""),[P,O]=s.useState(""),[h,v]=s.useState(""),[k,M]=s.useState("[]"),[D,f]=s.useState("{}"),[N,z]=s.useState(!1),[w,x]=s.useState(!1),[u,i]=s.useState(null);s.useEffect(()=>{if(!l||m||!n)return;const d=new AbortController;return z(!0),i(null),q(n,`/v1/providers/acp-registry${T?"?refresh=true":""}`,{signal:d.signal}).then(J=>{d.signal.aborted||(A(J),S(null))}).catch(J=>{d.signal.aborted||i(J instanceof Error?J.message:"Could not load ACP registry.")}).finally(()=>{d.signal.aborted||z(!1)}),()=>d.abort()},[l,m,n,T]);const g=a?[a.distribution.binary?.[t?.platform??""]?"binary":null,a.distribution.npx?"npx":null,a.distribution.uvx?"uvx":null].filter(d=>!!d):[],j=g.includes(R)?R:g[0],y=j==="binary"?a?.distribution.binary?.[t?.platform??""]:j==="npx"?a?.distribution.npx:a?.distribution.uvx;async function V(d){if(d.preventDefault(),!(!n||w)){x(!0),i(null);try{const J=m?{custom:{displayName:P.trim(),command:h.trim(),args:JSON.parse(k),env:JSON.parse(D)}}:{registryId:a?.id,version:a?.version,distribution:j,displayName:P.trim()||a?.name},W=await q(n,"/v1/providers/acp-registry",{method:"POST",body:JSON.stringify(J)});r(W.settings),c(W.providerId),o(!1),S(null),O(""),v(""),M("[]"),f("{}")}catch(J){i(J instanceof Error?J.message:"Could not add ACP agent.")}finally{x(!1)}}}return e.jsxs("section",{className:"acp-agent-browser",children:[e.jsx("button",{type:"button",className:"settings-secondary",disabled:!n||w,onClick:()=>o(d=>!d),children:l?"Close agent browser":"Add ACP agent"}),l?e.jsxs("div",{className:"provider-connections-panel",children:[e.jsx("h2",{children:"Add an ACP agent"}),e.jsx("p",{children:"Connect an agent from the Agent Client Protocol registry or provide an existing ACP command. Each connection keeps its own configuration."}),e.jsxs("div",{className:"acp-browser-tabs",children:[e.jsx("button",{type:"button",className:"settings-secondary","aria-pressed":!m,disabled:w,onClick:()=>{p(!1),i(null)},children:"Registry"}),e.jsx("button",{type:"button",className:"settings-secondary","aria-pressed":m,disabled:w,onClick:()=>{p(!0),i(null)},children:"Custom command"})]}),u?e.jsx("p",{role:"alert",children:u}):null,e.jsxs("form",{className:"provider-card-form",onSubmit:d=>{V(d)},children:[m?e.jsxs(e.Fragment,{children:[e.jsxs("label",{className:"settings-select-field",children:[e.jsx("span",{children:"Name"}),e.jsx("input",{required:!0,maxLength:160,value:P,disabled:w,onChange:d=>O(d.target.value),placeholder:"My ACP agent"})]}),e.jsxs("label",{className:"settings-select-field",children:[e.jsx("span",{children:"Executable"}),e.jsx("input",{required:!0,value:h,disabled:w,onChange:d=>v(d.target.value),placeholder:"Executable from PATH or absolute path"})]}),e.jsxs("label",{className:"settings-select-field",children:[e.jsx("span",{children:"Arguments (JSON array)"}),e.jsx("textarea",{value:k,disabled:w,onChange:d=>M(d.target.value),placeholder:'["--acp"]'})]}),e.jsxs("label",{className:"settings-select-field",children:[e.jsx("span",{children:"Environment overrides (JSON object)"}),e.jsx("textarea",{value:D,disabled:w,onChange:d=>f(d.target.value)})]}),e.jsx("small",{children:"Overrides are saved in your local configuration. Inherited environment variables do not need to be entered here."})]}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"acp-registry-search",children:[e.jsxs("label",{className:"settings-select-field",children:[e.jsx("span",{children:"Search registry"}),e.jsx("input",{value:C,disabled:w,onChange:d=>L(d.target.value),placeholder:"Search agents"})]}),e.jsx("button",{type:"button",className:"settings-secondary",disabled:N||w,onClick:()=>E(d=>d+1),"aria-label":"Refresh ACP registry",children:e.jsx(ae,{size:14})})]}),N?e.jsxs("p",{role:"status",children:[e.jsx(K,{size:16,className:"settings-spin"})," Loading registry…"]}):null,t?e.jsx("div",{className:"acp-registry-list",role:"list","aria-label":"ACP registry agents",children:t.agents.filter(d=>`${d.name} ${d.description}`.toLowerCase().includes(C.toLowerCase())).map(d=>e.jsxs("button",{type:"button",className:"acp-registry-entry",disabled:w,"aria-pressed":a?.id===d.id,onClick:()=>{S(d),_(""),O(d.name)},children:[e.jsxs("strong",{children:[d.name," ",e.jsx("small",{children:d.version})]}),e.jsx("span",{children:d.description}),d.supported?null:e.jsxs("small",{children:["No distribution for ",t.platform,"; use a custom command."]})]},d.id))}):null,t&&!t.agents.some(d=>`${d.name} ${d.description}`.toLowerCase().includes(C.toLowerCase()))?e.jsx("p",{children:"No agents match your search."}):null,a?e.jsxs("div",{className:"acp-install-summary",children:[e.jsxs("label",{className:"settings-select-field",children:[e.jsx("span",{children:"Connection name"}),e.jsx("input",{value:P,disabled:w,onChange:d=>O(d.target.value)})]}),g.length?e.jsxs("label",{className:"settings-select-field",children:[e.jsx("span",{children:"Distribution"}),e.jsx("select",{value:j,disabled:w,onChange:d=>_(d.target.value),children:g.map(d=>e.jsx("option",{value:d,children:d==="binary"?`Binary for ${t?.platform}`:d},d))})]}):null,y?e.jsxs(e.Fragment,{children:[e.jsx("code",{children:j==="binary"?y.archive:`${j} ${y.package} ${(y.args??[]).join(" ")}`}),e.jsxs("p",{children:[j==="binary"?"Adding downloads and installs this version locally.":`Connecting runs ${j}, which downloads this package version if needed.`," The agent uses its own authentication and model catalog."]})]}):null,a.website||a.repository?e.jsx("a",{href:a.website??a.repository,target:"_blank",rel:"noreferrer",children:"Agent documentation"}):null]}):null]}),e.jsx("button",{className:"settings-primary",disabled:w||!n||!m&&(!a||!j),children:w?"Adding agent…":"Add and connect"})]})]}):null]})}function xe(n){const r=s.useRef(null),c=s.useRef(n);return c.current=n,s.useEffect(()=>{const l=document.activeElement instanceof HTMLElement?document.activeElement:null,o=()=>[...r.current?.querySelectorAll('button:not(:disabled), input:not(:disabled), select:not(:disabled), a[href], [tabindex="0"]')??[]].filter(p=>p.getClientRects().length>0);o()[0]?.focus();const m=p=>{if(document.querySelector(".native-setup-terminal")||(p.key==="Escape"&&(p.preventDefault(),p.stopPropagation(),c.current()),p.key!=="Tab"))return;const t=o(),A=t[0],T=t.at(-1);p.shiftKey&&document.activeElement===A?(p.preventDefault(),T?.focus()):!p.shiftKey&&document.activeElement===T&&(p.preventDefault(),A?.focus())};return document.addEventListener("keydown",m),()=>{document.removeEventListener("keydown",m),l?.isConnected&&l.focus()}},[]),r}function Ue({connection:n,onChanged:r}){const[c,l]=s.useState(!1),[o,m]=s.useState([]),[p,t]=s.useState(null),[A,T]=s.useState(null),[E,C]=s.useState(0);s.useEffect(()=>{const a=new AbortController;return m([]),t(null),n&&q(n,"/v1/url-models/list",{signal:a.signal}).then(S=>{a.signal.aborted||m(S.models)}).catch(()=>{a.signal.aborted||t("Could not load your model connections.")}),()=>a.abort()},[n,E]);async function L(a){if(!(!n||A)){T(a.id),t(null);try{const S=await q(n,"/v1/url-models/remove",{method:"POST",body:JSON.stringify({id:a.id})});m(S.models),await r()}catch(S){t(S instanceof Error?S.message:"Could not remove the connection.")}finally{T(null)}}}return e.jsxs("section",{"aria-label":"Models from URL",className:"url-model-connections",children:[e.jsxs("div",{className:"provider-connections-intro",children:[e.jsxs("div",{children:[e.jsx("h2",{children:"Models from URL"}),e.jsx("p",{children:"Connect a model endpoint and select it in your chats. "})]}),e.jsx("button",{type:"button",className:"settings-primary",disabled:!n,onClick:()=>l(!0),children:"Add model"})]}),p?e.jsxs("p",{role:"alert",children:[p," ",e.jsx("button",{type:"button",onClick:()=>C(a=>a+1),children:"Retry"})]}):null,e.jsx("div",{className:"provider-connections-grid",children:o.map(a=>e.jsxs("div",{className:"provider-connection-card",children:[e.jsx("strong",{children:a.name}),e.jsx("p",{className:"url-model-endpoint",children:a.endpoint}),e.jsxs("p",{children:[a.providerName," · ",a.model," · ",a.hasToken?"Key saved securely":"No API key"]}),e.jsx("button",{type:"button",className:"settings-secondary",disabled:!!A,onClick:()=>{L(a)},children:A===a.id?"Removing…":"Remove model"})]},a.id))}),c&&n?e.jsx(ze,{providerNames:[...new Set(o.map(a=>a.providerName))],connection:n,onClose:()=>l(!1),onSaved:async a=>{m(a.models),await r(),l(!1)}}):null]})}function ze({connection:n,providerNames:r,onClose:c,onSaved:l}){const o=xe(c),[m,p]=s.useState(r[0]?`provider:${r[0]}`:"__new__"),[t,A]=s.useState(""),T=m==="__new__"?t.trim():m.slice(9),[E,C]=s.useState(""),[L,a]=s.useState(""),[S,R]=s.useState(""),[_,P]=s.useState(""),[O,h]=s.useState(null),[v,k]=s.useState(!1),[M,D]=s.useState(null),f=s.useRef(null);s.useEffect(()=>()=>f.current?.abort(),[]);function N(){h(null),P(""),D(null)}async function z(x){if(f.current)return;const u=new AbortController;f.current=u,k(!0),D(null);try{if(x){const i=await q(n,"/v1/url-models/save",{method:"POST",signal:u.signal,body:JSON.stringify({endpoint:E.trim(),token:L,name:S.trim(),model:_,providerName:T})});u.signal.aborted||(a(""),await l(i))}else{const i=await q(n,"/v1/url-models/inspect",{method:"POST",signal:u.signal,body:JSON.stringify({endpoint:E.trim(),token:L})});u.signal.aborted||(h(i),P(i.models[0]??""),S.trim()||R(i.models[0]??""))}}catch(i){u.signal.aborted||D(i instanceof Error?i.message:"Connection failed.")}finally{f.current=null,u.signal.aborted||k(!1)}}function w(x){x.preventDefault(),z(!!O)}return e.jsx("div",{className:"git-dialog-backdrop provider-dialog-backdrop",role:"presentation",onMouseDown:x=>{x.target===x.currentTarget&&c()},children:e.jsxs("section",{ref:o,className:"git-dialog provider-details-dialog",role:"dialog","aria-modal":"true","aria-labelledby":"url-model-title",tabIndex:-1,children:[e.jsxs("div",{className:"provider-dialog-header",children:[e.jsx("h2",{id:"url-model-title",children:"Add model"}),e.jsx("button",{type:"button",className:"git-dialog-close","aria-label":"Close Add model",onClick:c,children:e.jsx(ge,{size:18})})]}),e.jsxs("form",{className:"url-model-connection-form",onSubmit:w,children:[e.jsxs("div",{className:"url-model-field",children:[e.jsx("span",{children:"Provider"}),e.jsx(se,{label:"Provider",value:m,disabled:v,floating:!0,options:[...r.map(x=>({value:`provider:${x}`,label:x})),{value:"__new__",label:"Create new provider",icon:"plus",separatorBefore:!!r.length}],onChange:p})]}),m==="__new__"?e.jsxs("label",{children:["Provider name",e.jsx("input",{required:!0,maxLength:100,placeholder:"My model provider",value:t,disabled:v,onChange:x=>A(x.target.value)})]}):null,e.jsxs("label",{children:["Endpoint URL",e.jsx("input",{type:"url",required:!0,placeholder:"https://api.example.com/v1",value:E,disabled:v,onChange:x=>{C(x.target.value),N()}})]}),e.jsxs("label",{children:["API key ",e.jsx("span",{className:"settings-footnote",children:"Optional for endpoints that do not require one"}),e.jsx("input",{type:"password",autoComplete:"new-password",spellCheck:!1,value:L,disabled:v,placeholder:"API key",onChange:x=>{a(x.target.value),N()}})]}),O?e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"url-model-field",children:[e.jsx("span",{children:"Model"}),e.jsx(se,{label:"Model",value:_,disabled:v,floating:!0,searchable:!0,options:O.models.map(x=>({value:x,label:x})),onChange:x=>{P(x),R(x)}})]}),e.jsxs("label",{children:["Display name",e.jsx("input",{required:!0,maxLength:100,value:S,disabled:v,onChange:x=>R(x.target.value)})]})]}):e.jsx("p",{className:"settings-footnote",children:"Use the model service’s API base URL. Keys are encrypted on this machine."}),M?e.jsx("p",{role:"alert",children:M}):null,e.jsxs("div",{className:"url-model-connection-actions",children:[e.jsx("button",{className:"settings-primary",type:"submit",disabled:v||!T||!!O&&(!_||!S.trim()),children:v?"Connecting…":O?"Add model":"Fetch models"}),e.jsx("button",{type:"button",className:"settings-secondary",onClick:c,children:"Cancel"})]})]})]})})}const ee=["codex","claude-code","grok-build","opencode"];function I(n){return Z(n)||["claude-code","grok-build","opencode"].includes(n)}const Be={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"}},Q=(n,r)=>JSON.stringify([n||"",r||""]);function ue({connection:n,providerId:r,config:c,status:l,cachedModels:o,busy:m,onCheck:p}){const[t,A]=s.useState(null),[T,E]=s.useState(null),[C,L]=s.useState(null),[a,S]=s.useState(!1),[R,_]=s.useState(c.binaryPath??""),[P,O]=s.useState(c.sourceHome??""),h=s.useRef(null),v=s.useRef(null),k=s.useRef(p);k.current=p;const M=Z(r),D=Be[r]??{executable:c.acp?.command??"",install:c.acp?.installUrl??""},[f,N]=s.useState(c.acp?.command??""),[z,w]=s.useState(JSON.stringify(c.acp?.args??[])),[x,u]=s.useState(JSON.stringify(c.acp?.env??{},null,2)),i=Q(c.binaryPath,c.sourceHome)+JSON.stringify(c.acp),g=Q(R.trim(),P.trim())!==Q(c.binaryPath,c.sourceHome)||M&&(f!==c.acp?.command||z!==JSON.stringify(c.acp?.args??[])||x!==JSON.stringify(c.acp?.env??{},null,2)),j=m||a||t!==null,y=s.useCallback(async b=>{h.current?.abort();const $=new AbortController;h.current=$;const F=setTimeout(()=>$.abort(new Error("Connection check timed out. Retry when the agent is available.")),45e3);S(!0),E(null);try{const B=await k.current(r,$.signal,b);h.current===$&&!$.signal.aborted&&L(B)}catch(B){h.current===$&&E(B instanceof Error?B.message:"Could not check the agent.")}finally{clearTimeout(F),h.current===$&&(h.current=null,S(!1))}},[r]);s.useEffect(()=>{if(N(c.acp?.command??""),w(JSON.stringify(c.acp?.args??[])),u(JSON.stringify(c.acp?.env??{},null,2)),_(c.binaryPath??""),O(c.sourceHome??""),v.current===i){v.current=null;return}A(null),L(null),y()},[y,i,c.binaryPath,c.sourceHome,n?.serverUrl,n?.token]),s.useEffect(()=>()=>{const b=h.current;h.current=null,b?.abort()},[]);async function V(b){if(b.preventDefault(),!(!g||j)){try{const $=M&&c.acp?{...c.acp,command:f.trim(),args:JSON.parse(z),env:JSON.parse(x)}:c.acp;v.current=Q(R.trim(),P.trim())+JSON.stringify($),await y({binaryPath:R.trim()||null,sourceHome:P.trim()||null,...M?{acp:$}:{}})}catch($){E($ instanceof Error?$.message:"Invalid command configuration.")}v.current=null}}async function d(){if(!n||C?.status!=="needs_login")return;const b=new AbortController,$=setTimeout(()=>b.abort(),1e4);h.current?.abort(),h.current=b,S(!0),E(null);try{const F=await q(n,`/v1/providers/${r}/native-setup`,{method:"POST",body:JSON.stringify({action:"login"}),signal:b.signal});h.current===b&&!b.signal.aborted&&A(F.command)}catch(F){h.current===b&&E(F instanceof Error?F.message:"Could not open native login.")}finally{clearTimeout($),h.current===b&&(h.current=null,S(!1))}}async function J(b){if(!n||j||g)return;S(!0),E(null);const $=new AbortController;h.current=$;const F=setTimeout(()=>$.abort(new Error("Authentication timed out. Use the agent’s login and refresh.")),185e3);try{const B=await q(n,`/v1/providers/${r}/native-setup`,{method:"POST",body:JSON.stringify({action:"authenticate",authMethodId:b}),signal:$.signal});$.signal.aborted||(v.current=Q(B.settings.providers[r]?.binaryPath,B.settings.providers[r]?.sourceHome)+JSON.stringify(B.settings.providers[r]?.acp),L(B),await y(),v.current=null)}catch(B){$.signal.aborted||E(B instanceof Error?B.message:"Authentication failed.")}finally{clearTimeout(F),h.current===$&&(h.current=null,S(!1))}}const W=C?.settings.modelCaches[r]?.models??o,X=[...new Set(W.map(b=>Ee(b.displayName||b.id)))],ne=T??C?.error;return e.jsxs("div",{className:"provider-dialog-body native-agent-setup",children:[e.jsx("p",{children:M?`Uses the configured ${l.displayName} ACP command and its own login.`:`Uses your existing ${l.displayName} installation and login.`}),e.jsxs("div",{className:"native-connection-status",children:[e.jsx("div",{role:"status","aria-live":"polite",children:a?e.jsxs(e.Fragment,{children:[e.jsx(K,{size:16,className:"settings-spin"}),e.jsx("span",{children:"Checking connection…"})]}):C?.status==="ready"?e.jsxs(e.Fragment,{children:[e.jsx(be,{size:16}),e.jsx("span",{children:c.enabled?"Connected":"Connected, disabled for chat"})]}):e.jsxs(e.Fragment,{children:[e.jsx(fe,{size:16}),e.jsx("span",{children:C?.status==="missing"?"Installation not found":C?.status==="needs_login"?"Sign in required":"Connection needs attention"})]})}),e.jsxs("button",{type:"button",className:"settings-secondary",disabled:j||!n,onClick:()=>{y()},title:"Refresh connection","aria-label":"Refresh connection",children:[e.jsx(ae,{size:14})," Refresh"]})]}),ne?e.jsx("p",{role:"alert",children:ne}):null,X.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:[X.length," available"]})]}),e.jsx("div",{className:"native-model-list",tabIndex:0,"aria-label":"Models",role:"list",children:X.map(b=>e.jsx("span",{role:"listitem",children:b},b))}),e.jsx("small",{children:"Choose a model when starting a chat."})]}):null,C?.version?e.jsx("small",{className:"native-agent-version",children:C.version}):null,!M&&C?.status==="needs_login"?e.jsx("button",{type:"button",className:"settings-secondary",disabled:j||g||!n,title:g?"Save changes before signing in to a different installation":void 0,onClick:()=>{d()},children:"Sign in"}):null,M&&C?.authMethods?.length?e.jsx("div",{className:"acp-auth-methods",children:C.authMethods.map(b=>b.type==="terminal"?e.jsxs("p",{children:["Use ",b.name," in the agent’s own terminal, then refresh this connection."]},b.id):e.jsx("button",{type:"button",className:"settings-secondary",disabled:j||g||!n,onClick:()=>{J(b.id)},title:b.description,children:b.name},b.id))}):null,C?.status==="missing"&&D.install?e.jsxs("p",{children:[e.jsxs("a",{href:D.install,target:"_blank",rel:"noreferrer",children:["Install ",l.displayName]}),", then refresh this connection."]}):null,(T||C?.status==="unavailable")&&!a?e.jsx("button",{type:"button",className:"settings-secondary",disabled:j||!n,onClick:()=>{y()},children:"Retry"}):null,t&&n?e.jsx(Oe,{connection:n,command:t,onComplete:()=>{A(null),y()},onClose:()=>{A(null),y()}}):null,I(r)?e.jsxs("details",{children:[e.jsx("summary",{children:"Advanced"}),e.jsxs("form",{className:"provider-card-form",onSubmit:b=>{V(b)},children:[M?e.jsxs(e.Fragment,{children:[e.jsxs("label",{className:"settings-select-field",children:[e.jsx("span",{children:"ACP command"}),e.jsx("input",{value:f,disabled:j,onChange:b=>N(b.target.value)})]}),e.jsxs("label",{className:"settings-select-field",children:[e.jsx("span",{children:"Arguments (JSON array)"}),e.jsx("textarea",{value:z,disabled:j,onChange:b=>w(b.target.value)})]}),e.jsxs("label",{className:"settings-select-field",children:[e.jsx("span",{children:"Environment overrides (JSON object)"}),e.jsx("textarea",{value:x,disabled:j,onChange:b=>u(b.target.value)})]})]}):null,e.jsxs("label",{className:"settings-select-field",children:[e.jsx("span",{children:"Executable override"}),e.jsx("input",{value:R,placeholder:`${D.executable} from PATH, or an absolute path`,disabled:j,onChange:b=>_(b.currentTarget.value)})]}),e.jsxs("label",{className:"settings-select-field",children:[e.jsx("span",{children:M?"Home directory":"Source home"}),e.jsx("input",{value:P,placeholder:"Use the agent's existing home",disabled:j,onChange:b=>O(b.currentTarget.value)})]}),g?e.jsx("button",{className:"settings-secondary",disabled:j||!n,children:"Save changes"}):null]})]}):null]})}const Je=[{value:"local_secret",label:"Saved key",description:"Encrypted on this machine"},{value:"env",label:"Environment variable",description:"Read by the local server"}],Fe=120,Ge=new Set(["openai","xai","zai"]),He=new Set(["chatgpt-subscription"]),Ve="https://api.z.ai/api/coding/paas/v4";function he(n){return n.split(/[\n,]/).map(r=>r.trim()).filter(Boolean)}function ve(n){return n?n.available?"Ready":n.credential.connected?"Configured":n.credential.lastError||n.lastError?"Needs attention":n.id==="codex"?"Needs Codex login":I(n.id)?"Check connection":n.routing.localByok?"Needs key":n.enabled?"Enabled":"Off":"Unknown"}function je(n){return n?n.available?"ready":n.credential.connected?"configured":n.credential.lastError||n.lastError||n.id==="codex"?"warning":"muted":"unknown"}function me(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 qe(n){return n?.trim().replace(/\/+$/,"")??""}function ye(n,r){return n.id==="zai"&&qe(r.providers.zai?.baseUrl)===Ve}function Ke(n,r){return!n.credential.connected||!n.routing.localByok?"":n.credential.source==="native_agent_login"?"Native login":n.credential.source==="chatgpt_subscription"?"Subscription":ye(n,r)?"Coding Plan key":"API key"}function Ze(n,r){const c=r.modelCaches[n.id];if(n.routing.localByok&&n.enabled&&!n.credential.connected||!n.enabled&&n.id!=="openpond")return"";const l=Math.max(c?.models.length??0,n.modelIds.length),o=n.defaultModel?$e(n.defaultModel,r,n.id):"",m=l===1?"1 model":`${l} models`;return[Ke(n,r),c?m:"",o].filter(Boolean).join(" · ")}function We(n){return n!=="openpond"&&te(n)}function Ne(n){return n?Ge.has(n.id)||n.credentialModes.some(r=>He.has(r)):!1}function Xe(n){return Ne(n)?["api","subscription"]:["api"]}function pe(n,r){return!n||!r||!Ne(n)?"api":n.credential.source==="chatgpt_subscription"||ye(n,r)?"subscription":"api"}function Ye(n){if(!n)return"Never";const r=new Date(n);return Number.isNaN(r.getTime())?n:r.toLocaleString()}function Qe(n,r,c=Fe){const l=[],o=new Set,m=new Set(r.map(t=>t.trim()).filter(Boolean)),p=t=>{o.has(t.value)||l.length>=c||(o.add(t.value),l.push(t))};for(const t of n)m.has(t.value)&&p(t);for(const t of n)p(t);return l}function ln({onProvidersChanged:n,checkNativeProvider:r,connection:c,account:l,codex:o,providers:m,providerBusy:p,validationMessage:t,deleteProviderCredential:A,loadProviderModels:T,refreshProviderModels:E,saveProviderConfig:C,saveProviderCredential:L,startOpenAiSubscriptionAuth:a,validateProvider:S}){const[R,_]=s.useState(null),[P,O]=s.useState(null),[h,v]=s.useState(null),k=[...ee,...Object.keys(m?.statuses??{}).filter(Z)].filter(f=>m?.statuses[f]),M=h?m?.statuses[h]??null:null;function D(f,N){v(f),N&&T(f)}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:()=>{Me({kind:"view",view:"apps"})},children:"Connections & apps"})]}),m?e.jsx("div",{className:"provider-connections-panel",children:k.length>0?e.jsx("div",{className:"provider-connections-grid",role:"list",children:k.map(f=>{const N=m.statuses[f],z=m.modelCaches[f],w=N.modelIds.length>0&&(z?.models.length??0)<N.modelIds.length,x=p?.startsWith(`${f}:`)??!1,u=We(f),i=f==="openpond"||!!m.providers[f]?.enabled;return e.jsxs("div",{className:"provider-connection-card",role:"listitem",children:[e.jsxs("div",{className:"provider-connection-identity",children:[e.jsx("strong",{children:N.displayName}),e.jsxs("label",{className:"provider-toggle","aria-label":`Enable ${N.displayName}`,children:[e.jsx("input",{type:"checkbox",checked:i,disabled:!u||x,onChange:g=>{C(f,{enabled:g.currentTarget.checked})}}),e.jsx("span",{})]})]}),e.jsxs("div",{className:`provider-connection-status ${je(N)}`,children:[x?e.jsx(K,{size:13,className:"settings-spin"}):null,e.jsx("span",{children:ve(N)})]}),e.jsx("p",{children:Ze(N,m)||(N.enabled?"Check your installation and sign in to use this agent.":"Enable this agent to use it in chats.")}),f==="codex"||f==="claude-code"?e.jsx(Re,{connection:c,provider:f}):null,e.jsx("button",{type:"button",className:"settings-secondary",onClick:()=>{D(f,w)},children:"Manage"}),Z(f)?e.jsx("button",{type:"button",className:"settings-secondary",disabled:R!==null||!c,onClick:async()=>{if(c){_(f),O(null);try{const g=await q(c,"/v1/providers/acp-registry",{method:"DELETE",body:JSON.stringify({providerId:f})});n(g.settings),h===f&&v(null)}catch(g){O(g instanceof Error?g.message:"Could not remove ACP agent.")}finally{_(null)}}},children:R===f?"Removing…":"Remove connection"}):null]},f)})}):e.jsx("div",{className:"empty-account-list provider-manager-empty",children:e.jsx("strong",{children:"No agent providers available"})})}):null,P?e.jsx("p",{role:"alert",children:P}):null,e.jsx(Le,{connection:c,onChanged:n,onAdded:f=>v(f)}),e.jsx(Ue,{connection:c,onChanged:async()=>{c&&n(await H.providerSettings(c))}}),t?e.jsxs("div",{className:"settings-footnote provider-validation-message",children:[e.jsx("span",{children:"Last validation"}),e.jsx("strong",{children:t})]}):null,h&&M&&m?e.jsx(Ie,{checkNativeProvider:r,connection:c,account:l,codex:o,providerId:h,providerBusy:p,settings:m,status:M,onClose:()=>v(null),onDeleteCredential:A,onRefreshModels:E,onSaveConfig:C,onSaveCredential:L,onStartOpenAiSubscriptionAuth:a,onValidate:S}):null]})}function Ie({checkNativeProvider:n,connection:r,account:c,codex:l,providerId:o,providerBusy:m,settings:p,status:t,onClose:A,onDeleteCredential:T,onRefreshModels:E,onSaveConfig:C,onSaveCredential:L,onStartOpenAiSubscriptionAuth:a,onValidate:S,conversationPanel:R}){const _=xe(A),[P,O]=s.useState("setup"),h=s.useId(),v=p.providers[o],k=p.modelCaches[o],M=s.useId(),D=s.useRef(o),f=Math.max(k?.models.length??0,t.modelIds.length),N=t.routing.localByok&&te(o)&&o!=="codex"&&!I(o),z=s.useMemo(()=>N?Xe(t):[],[N,t]),w=z.includes("subscription"),[x,u]=s.useState(()=>pe(t,p)),i=N&&x==="subscription"&&w,g=y=>`${M}-${y}-panel`,j=o==="codex"?"Codex app server":v?.baseUrl??(o==="openpond"?c?.chatApiBaseUrl:null)??"Not set";return s.useEffect(()=>{if(D.current!==o){D.current=o,u(pe(t,p));return}N&&!z.includes(x)&&u("api")},[x,z,N,o,p,t]),e.jsx("div",{className:"git-dialog-backdrop provider-dialog-backdrop",role:"presentation",onMouseDown:A,children:e.jsxs("section",{ref:_,className:`git-dialog provider-details-dialog${R?" agent-setup-dialog":""}`,role:"dialog","aria-modal":"true","aria-label":`${t.displayName} provider details`,onMouseDown:y=>y.stopPropagation(),children:[e.jsx("button",{className:"git-dialog-close",type:"button",title:"Close","aria-label":"Close",onClick:A,children:e.jsx(ge,{size:16})}),e.jsxs("div",{className:"provider-dialog-header",children:[e.jsxs("div",{children:[e.jsx("h2",{children:t.displayName}),e.jsx("span",{children:ee.includes(o)||Z(o)?"Installation and login":"API and subscription settings"})]}),e.jsx("div",{className:`provider-state-pill ${je(t)}`,children:ve(t)})]}),(ee.includes(o)||Z(o))&&v?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:v.enabled,disabled:m!==null,onChange:y=>{C(o,{enabled:y.target.checked})}}),e.jsx("span",{"aria-hidden":"true"})]}),e.jsxs("span",{children:["Use ",t.displayName," for chats"]})]}):null,R?e.jsxs("div",{className:"surface-tabs provider-agent-tabs",role:"tablist","aria-label":"Agent settings",onKeyDown:y=>{if(y.key!=="ArrowLeft"&&y.key!=="ArrowRight")return;y.preventDefault();const V=P==="setup"?"sync":"setup";O(V),y.currentTarget.querySelector(`#${CSS.escape(`${h}-${V}`)}`)?.focus()},children:[e.jsx("button",{type:"button",role:"tab",id:`${h}-setup`,"aria-controls":`${h}-setup-panel`,"aria-selected":P==="setup",tabIndex:P==="setup"?0:-1,onClick:()=>O("setup"),children:"Agent setup"}),e.jsx("button",{type:"button",role:"tab",id:`${h}-sync`,"aria-controls":`${h}-sync-panel`,"aria-selected":P==="sync",tabIndex:P==="sync"?0:-1,onClick:()=>O("sync"),children:"Conversation sync"})]}):null,e.jsxs("div",{hidden:P!=="setup",id:`${h}-setup-panel`,role:R?"tabpanel":void 0,"aria-labelledby":R?`${h}-setup`:void 0,children:[N?e.jsx("div",{className:"surface-tabs provider-mode-tabs",role:"tablist","aria-label":`${t.displayName} mode`,children:z.map(y=>e.jsx("button",{type:"button",role:"tab",id:`${M}-${y}`,className:x===y?"active":void 0,"aria-selected":x===y,"aria-controls":g(y),onClick:()=>u(y),children:y==="api"?"API":"Subscription"},y))}):null,ee.includes(o)||Z(o)?null:e.jsxs("dl",{className:"provider-dialog-stats",children:[e.jsxs("div",{children:[e.jsx("dt",{children:"Credential"}),e.jsx("dd",{title:me(t),children:me(t)})]}),i?null:e.jsxs(e.Fragment,{children:[I(o)?null:e.jsxs("div",{children:[e.jsx("dt",{children:"Base URL"}),e.jsx("dd",{title:j,children:j})]}),e.jsxs("div",{children:[e.jsx("dt",{children:"Model"}),e.jsx("dd",{title:v?.defaultModel??t.defaultModel??void 0,children:v?.defaultModel??t.defaultModel??"Not set"})]}),e.jsxs("div",{children:[e.jsx("dt",{children:"Models"}),e.jsxs("dd",{title:k?.lastError??void 0,children:[f," cached, ",Ye(k?.fetchedAt)]})]})]}),o==="codex"?e.jsxs(e.Fragment,{children:[e.jsxs("div",{children:[e.jsx("dt",{children:"Account"}),e.jsx("dd",{title:l?.account?.email??void 0,children:l?.account?.label??l?.account?.email??"Not signed in"})]}),e.jsxs("div",{children:[e.jsx("dt",{children:"Binary"}),e.jsx("dd",{title:l?.binaryPath??void 0,children:l?.binaryPath??"Not found"})]})]}):null,t.credential.lastError||k?.lastError||t.lastError?e.jsxs("div",{className:"provider-dialog-error",children:[e.jsx("dt",{children:"Error"}),e.jsx("dd",{title:t.credential.lastError??k?.lastError??t.lastError??void 0,children:t.credential.lastError??k?.lastError??t.lastError})]}):null]}),o==="codex"?e.jsxs(e.Fragment,{children:[v?e.jsx(ue,{connection:r,providerId:o,config:v,status:t,cachedModels:k?.models??[],busy:m!==null,onCheck:n},o):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:p.statuses.openai?.credential.connected?"OpenPond harness connected":"OpenPond harness not connected"}),e.jsx("button",{type:"button",className:"settings-secondary",disabled:m!==null,onClick:()=>{a("browser")},children:"Connect ChatGPT for OpenPond"}),e.jsxs("button",{type:"button",className:"settings-secondary",disabled:m!==null,onClick:()=>{C("openai",{enabled:!p.providers.openai?.enabled})},children:[p.providers.openai?.enabled?"Disable":"Enable"," OpenPond harness route"]})]})]}):I(o)&&v?e.jsx(ue,{connection:r,providerId:o,config:v,status:t,cachedModels:k?.models??[],busy:m!==null,onCheck:n},o):N&&v&&k?e.jsx(en,{credentialTab:x,credentialTabsId:M,hasSubscriptionTab:w,providerId:o,providerBusy:m,settings:p,status:t,onDeleteCredential:T,onRefreshModels:E,onSaveConfig:C,onSaveCredential:L,onStartOpenAiSubscriptionAuth:a,onValidate:S}):t.routing.localByok&&!te(o)?e.jsxs("div",{className:"provider-dialog-note",children:[e.jsx(fe,{size:15}),e.jsx("span",{children:"Adapter pending"})]}):null]}),P==="sync"?e.jsx("div",{role:"tabpanel",id:`${h}-sync-panel`,"aria-labelledby":`${h}-sync`,children:R}):null]})})}function en({credentialTab:n,credentialTabsId:r,hasSubscriptionTab:c,providerId:l,providerBusy:o,settings:m,status:p,onDeleteCredential:t,onRefreshModels:A,onSaveConfig:T,onSaveCredential:E,onStartOpenAiSubscriptionAuth:C,onValidate:L}){const a=m.providers[l],S=s.useMemo(()=>De(l,m),[l,m]),R=`provider-models-${l}`,_=s.useRef(l),[P,O]=s.useState(a.baseUrl??""),[h,v]=s.useState(a.defaultModel??""),[k,M]=s.useState(a.modelOverrides.join(`
2
- `)),[D,f]=s.useState({baseUrl:!1,defaultModel:!1,modelOverrides:!1}),[N,z]=s.useState("local_secret"),[w,x]=s.useState(""),[u,i]=s.useState(""),g=o===`${l}:config`,j=o===`${l}:credential`,y=o===`${l}:validate`,V=o===`${l}:models`,d=o==="openai:credential",J=l==="openai",W=l==="xai",X=l==="zai",b=(U=>`${r}-${U}-panel`)(n),$=n==="subscription"&&c,F=n==="subscription"&&X?"coding-plan":"api",B=F==="coding-plan"?"Coding Plan key":"API key",Ce=p.credential.connected?F==="coding-plan"?"Replace saved plan key":"Replace saved key":B,Se=F==="coding-plan"?"Save plan key":"Save key",le=s.useMemo(()=>Qe(S,[h,...he(k)]),[h,S,k]),ie=Math.max(0,S.length-le.length);s.useEffect(()=>{if(_.current!==l){_.current=l,f({baseUrl:!1,defaultModel:!1,modelOverrides:!1}),O(a.baseUrl??""),v(a.defaultModel??""),M(a.modelOverrides.join(`
3
- `));return}D.baseUrl||O(a.baseUrl??""),D.defaultModel||v(a.defaultModel??""),D.modelOverrides||M(a.modelOverrides.join(`
4
- `))},[a.baseUrl,a.defaultModel,a.modelOverrides,D.baseUrl,D.defaultModel,D.modelOverrides,l]);const re=N==="env"?!!u.trim():!!w.trim();async function we(U){U.preventDefault(),await T(l,{enabled:!0,baseUrl:P.trim()||null,defaultModel:h.trim()||null,modelOverrides:he(k)}),f({baseUrl:!1,defaultModel:!1,modelOverrides:!1})}async function Pe(U){if(U.preventDefault(),!!re){if(N==="env"){await E(l,{source:"env",envVar:u.trim()});return}await E(l,{source:"local_secret",value:w}),x("")}}function oe({panel:U=!0}={}){return e.jsxs("form",{className:"provider-credential-panel",id:U?b:void 0,role:U?"tabpanel":void 0,"aria-labelledby":U?`${r}-${n}`:void 0,onSubmit:G=>{Pe(G)},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(se,{value:N,disabled:j,label:"Credential source",options:Je,onChange:G=>z(G)})]}),N==="env"?e.jsxs("label",{className:"settings-select-field",children:[e.jsx("span",{children:"Environment variable"}),e.jsx("input",{value:u,disabled:j,placeholder:"PROVIDER_API_KEY",onChange:G=>i(G.currentTarget.value)})]}):e.jsxs("label",{className:"settings-select-field",children:[e.jsx("span",{children:B}),e.jsx("input",{type:"password",value:w,disabled:j,placeholder:Ce,autoComplete:"off",onChange:G=>x(G.currentTarget.value)})]})]}),e.jsxs("div",{className:"settings-button-row",children:[e.jsxs("button",{className:"settings-secondary",disabled:j||!re,children:[j?e.jsx(K,{size:14,className:"settings-spin"}):e.jsx(Y,{size:14}),e.jsx("span",{children:j?"Saving":Se})]}),e.jsx("button",{type:"button",className:"settings-icon-button ghost","aria-label":`Delete ${p.displayName} credential`,disabled:j||!p.credential.connected,onClick:()=>{t(l)},children:e.jsx(de,{size:15})})]})]})}function ke(){return J?e.jsxs("div",{className:"provider-subscription-panel",id:b,role:"tabpanel","aria-labelledby":`${r}-subscription`,children:[e.jsxs("div",{className:"provider-dialog-note codex-provider-note",children:[e.jsx(Y,{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:d,onClick:()=>{C("browser")},children:[d?e.jsx(K,{size:14,className:"settings-spin"}):e.jsx(Y,{size:14}),e.jsx("span",{children:d?"Opening":"Connect ChatGPT"})]}),e.jsxs("button",{type:"button",className:"settings-secondary",disabled:d,onClick:()=>{C("device")},children:[d?e.jsx(K,{size:14,className:"settings-spin"}):e.jsx(Y,{size:14}),e.jsx("span",{children:"Device code"})]}),e.jsx("button",{type:"button",className:"settings-icon-button ghost","aria-label":`Delete ${p.displayName} credential`,disabled:d||!p.credential.connected,onClick:()=>{t(l)},children:e.jsx(de,{size:15})})]})]}):W?e.jsx("div",{className:"provider-subscription-panel",id:b,role:"tabpanel","aria-labelledby":`${r}-subscription`,children:e.jsxs("div",{className:"provider-dialog-note xai-provider-note",children:[e.jsx(Y,{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."})]})}):X?e.jsxs("div",{className:"provider-subscription-panel",id:b,role:"tabpanel","aria-labelledby":`${r}-subscription`,children:[e.jsxs("div",{className:"provider-dialog-note subscription-provider-note",children:[e.jsx(Y,{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."})]}),oe({panel:!1})]}):null}return e.jsxs("div",{className:"provider-dialog-body",children:[$?null:e.jsxs("form",{className:"provider-card-form",onSubmit:U=>{we(U)},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:P,disabled:g,placeholder:"https://api.example.com/v1",onChange:U=>{f(G=>({...G,baseUrl:!0})),O(U.currentTarget.value)}})]}),e.jsxs("label",{className:"settings-select-field",children:[e.jsx("span",{children:"Default model"}),e.jsx("input",{list:R,value:h,disabled:g,placeholder:"Model id",onChange:U=>{f(G=>({...G,defaultModel:!0})),v(U.currentTarget.value)}}),e.jsx("datalist",{id:R,children:le.map(U=>e.jsx("option",{value:U.value,children:U.label},U.value))}),ie>0?e.jsxs("small",{children:[ie," more cached models hidden from suggestions"]}):null]})]}),e.jsxs("div",{className:"settings-button-row",children:[e.jsxs("button",{className:"settings-secondary",disabled:g,children:[g?e.jsx(K,{size:14,className:"settings-spin"}):e.jsx(Te,{size:14}),e.jsx("span",{children:g?"Saving":"Save config"})]}),e.jsxs("button",{type:"button",className:"settings-secondary",disabled:V,onClick:()=>{A(l)},children:[V?e.jsx(K,{size:14,className:"settings-spin"}):e.jsx(ae,{size:14}),e.jsx("span",{children:V?"Refreshing":"Refresh models"})]}),e.jsxs("button",{type:"button",className:"settings-secondary",disabled:y||!h.trim(),onClick:()=>{L(l,{baseUrl:P.trim()||void 0,modelId:h.trim()||void 0})},children:[y?e.jsx(K,{size:14,className:"settings-spin"}):e.jsx(be,{size:14}),e.jsx("span",{children:y?"Testing":"Test"})]})]})]}),e.jsx("div",{className:"provider-card-form credential-form",children:$?ke():oe()})]})}function rn({connection:n,onError:r,onPreferences:c,onProviders:l,preferences:o,providers:m}){const p=s.useRef(n);p.current=n;const[t,A]=s.useState(o.defaultChatProvider),[T,E]=s.useState(o.defaultChatModel),[C,L]=s.useState(!1),[a,S]=s.useState(null),[R,_]=s.useState(null);s.useEffect(()=>{A(o.defaultChatProvider),E(o.defaultChatModel)},[o.defaultChatProvider,o.defaultChatModel]);async function P(u){if(u.preventDefault(),!!n){L(!0),r(null);try{c(await H.savePreferences(n,{defaultChatProvider:t,defaultChatModel:ce(t,T,m)}))}catch(i){r(i instanceof Error?i.message:String(i))}finally{L(!1)}}}function O(u){A(u),E(i=>ce(u,i,m))}async function h(u,i,g){if(!n)return null;S(`${u}:${i}`),_(null),r(null);try{return await g()}catch(j){return r(j instanceof Error?j.message:String(j)),null}finally{S(null)}}async function v(u,i){await h(u,"config",async()=>{const g=await H.saveProviderSettings(n,{providers:{[u]:i}});return l(g),g})}async function k(u,i){await h(u,"credential",async()=>{const g=await H.saveProviderCredential(n,u,i);return l(g),g})}async function M(u){await h(u,"credential",async()=>{const i=await H.deleteProviderCredential(n,u,{});return l(i),i})}async function D(u){return h("openai","credential",async()=>{const i=await H.startOpenAiSubscriptionAuth(n,{method:u});return i.method==="browser"?(window.open(i.url,"_blank","noopener,noreferrer"),_("OpenAI ChatGPT login opened in your browser. Return here after authorization.")):(window.open(i.url,"_blank","noopener,noreferrer"),_(`OpenAI device login started. Enter code ${i.userCode}.`)),f(i.expiresAt),i})}async function f(u){if(n)for(;Date.now()<u;){await new Promise(i=>setTimeout(i,2500));try{const i=await H.providerSettings(n);l(i);const g=i.statuses.openai?.credential;if(g?.connected&&g.source==="chatgpt_subscription"){_("OpenAI ChatGPT subscription connected.");return}}catch{}}}async function N(u){await h(u,"models",async()=>{const i=await H.refreshProviderModels(n,u,{force:!0});return l(i.providers),i})}async function z(u){await h(u,"models",async()=>{const i=await H.loadProviderModels(n,u,{limit:500});return l(i.providers),i})}async function w(u,i={}){await h(u,"validate",async()=>{const g=await H.validateProviderCredential(n,u,i);return _(g.ok?`${u} validated${g.modelId?` with ${g.modelId}`:""}.`:g.errors.join(`
5
- `)||`${u} validation failed.`),l(g.providers),g})}return{checkNativeProvider:async(u,i,g)=>{if(!n)throw new Error("Connect to the local OpenPond server first.");i.throwIfAborted(),g&&await H.saveProviderSettings(n,{providers:{[u]:g}}),i.throwIfAborted();const j=await q(n,`/v1/providers/${u}/native-setup`,{method:"POST",body:JSON.stringify({action:"check"}),signal:i});if(i.throwIfAborted(),p.current?.serverUrl!==n.serverUrl||p.current?.token!==n.token)throw new DOMException("Connection changed","AbortError");return l(j.settings),j},defaultModel:T,defaultProvider:t,providerBusy:a,saving:C,validationMessage:R,changeDefaultProvider:O,deleteProviderCredential:M,loadProviderModels:z,refreshProviderModels:N,saveProviderConfig:v,saveProviderCredential:k,saveProviders:P,setDefaultModel:E,startOpenAiSubscriptionAuth:D,validateProvider:w}}export{Y as K,ln as P,xe as a,Ie as b,rn as u};