openpond 0.2.62 → 0.2.63

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 (496) hide show
  1. package/README.md +2 -0
  2. package/dist/app-server.d.ts +1053 -63
  3. package/dist/app-server.js +1 -1
  4. package/dist/chunks/{acp-DYRBDJRU.js → acp-H3MJCPHX.js} +1 -1
  5. package/dist/chunks/{acp-agent-UTLP7C3I.js → acp-agent-DWA7272M.js} +1 -1
  6. package/dist/chunks/actions-command-IIYOO4LL.js +2 -0
  7. package/dist/chunks/{app-layer-N2H3RBEN.js → app-layer-K7H2WJ56.js} +1 -1
  8. package/dist/chunks/app-server-connected-apps-RM5E2VWF.js +2 -0
  9. package/dist/chunks/app-server-evaluations-XGMGS67X.js +2 -0
  10. package/dist/chunks/app-server-harness-services-BHD6S5II.js +2 -0
  11. package/dist/chunks/app-server-runtime-LFIL6F7D.js +2 -0
  12. package/dist/chunks/apps-QKAHJGQ4.js +2 -0
  13. package/dist/chunks/chunk-25XXZS3E.js +2 -0
  14. package/dist/chunks/chunk-27JGS3KB.js +12 -0
  15. package/dist/chunks/{chunk-7JBB4PXS.js → chunk-2HAWOMZK.js} +1 -1
  16. package/dist/chunks/chunk-2LJCJOJ7.js +2 -0
  17. package/dist/chunks/{chunk-CN5OXQ7A.js → chunk-3YXYBYWK.js} +1 -1
  18. package/dist/chunks/{chunk-GEKORCMN.js → chunk-42V4NV2F.js} +1 -1
  19. package/dist/chunks/{chunk-VAJSRUAB.js → chunk-4FNCBA3Y.js} +1 -1
  20. package/dist/chunks/{chunk-F7D4BMTO.js → chunk-4L6DU6Z2.js} +1 -1
  21. package/dist/chunks/{chunk-SZKFNKWO.js → chunk-4SZ3HKHU.js} +1 -1
  22. package/dist/chunks/chunk-5EP2DZLJ.js +2 -0
  23. package/dist/chunks/chunk-5FU5RLML.js +2 -0
  24. package/dist/chunks/{chunk-6SH4B7DV.js → chunk-5MHYGMJG.js} +1 -1
  25. package/dist/chunks/{chunk-MEK7DLX3.js → chunk-6EBCS57F.js} +1 -1
  26. package/dist/chunks/chunk-6RS4NAOY.js +2 -0
  27. package/dist/chunks/{chunk-NVHZRKXB.js → chunk-7HRLWPPZ.js} +1 -1
  28. package/dist/chunks/chunk-7O6Z3VOZ.js +2 -0
  29. package/dist/chunks/{chunk-P74RR2GB.js → chunk-7WYL2IDD.js} +1 -1
  30. package/dist/chunks/chunk-7YLXGILH.js +2 -0
  31. package/dist/chunks/chunk-7ZLXFKRI.js +2 -0
  32. package/dist/chunks/{chunk-NWOK6NLE.js → chunk-AH26AQN7.js} +1 -1
  33. package/dist/chunks/chunk-AHOBCBVZ.js +2 -0
  34. package/dist/chunks/chunk-B5R53U74.js +2 -0
  35. package/dist/chunks/{chunk-NKZNPTLA.js → chunk-BPZOABMC.js} +1 -1
  36. package/dist/chunks/{chunk-2IIBCCOK.js → chunk-BSPFY3Y5.js} +1 -1
  37. package/dist/chunks/{chunk-5OSM75X5.js → chunk-BU27SLZP.js} +2 -2
  38. package/dist/chunks/chunk-C2AXMKK4.js +2 -0
  39. package/dist/chunks/{chunk-AMO5DVKM.js → chunk-C2LAEGOW.js} +2 -2
  40. package/dist/chunks/{chunk-GNCEZ3UP.js → chunk-CZ5R4JXZ.js} +1 -1
  41. package/dist/chunks/{chunk-JIFUGA3U.js → chunk-DABBHWSF.js} +1 -1
  42. package/dist/chunks/{chunk-VK4TPZTA.js → chunk-DLANLLKH.js} +1 -1
  43. package/dist/chunks/{chunk-WGLVSGFA.js → chunk-DQI5TE6A.js} +2 -2
  44. package/dist/chunks/chunk-DTTFUANI.js +12 -0
  45. package/dist/chunks/{chunk-4TM75R7V.js → chunk-DUL6DXOI.js} +1 -1
  46. package/dist/chunks/{chunk-TGEGXTPR.js → chunk-ELX7VRSU.js} +1 -1
  47. package/dist/chunks/chunk-ERL2M773.js +3 -0
  48. package/dist/chunks/{chunk-4PZWGNX4.js → chunk-ERT32RZA.js} +4 -4
  49. package/dist/chunks/{chunk-RTJCELRR.js → chunk-EZRUWIP6.js} +1 -1
  50. package/dist/chunks/{chunk-LJDBR3RN.js → chunk-F6UQ6PPK.js} +1 -1
  51. package/dist/chunks/chunk-F7QTIHXX.js +2 -0
  52. package/dist/chunks/chunk-FAKDGLZQ.js +8 -0
  53. package/dist/chunks/{chunk-FFWOTZQM.js → chunk-FVRII5XO.js} +1 -1
  54. package/dist/chunks/{chunk-C7M2WBWZ.js → chunk-FYYYECHE.js} +51 -49
  55. package/dist/chunks/chunk-G32BO6M5.js +4 -0
  56. package/dist/chunks/{chunk-NBE74GLF.js → chunk-G6OR5NB6.js} +1 -1
  57. package/dist/chunks/{chunk-GQGLPKU4.js → chunk-GGJUWIGR.js} +1 -1
  58. package/dist/chunks/{chunk-VSQXDS6H.js → chunk-GPL2Z65R.js} +1 -1
  59. package/dist/chunks/{chunk-INO67SEN.js → chunk-GS6ZUSIN.js} +2 -2
  60. package/dist/chunks/{chunk-47AXSBPV.js → chunk-GVARQXYI.js} +1 -1
  61. package/dist/chunks/chunk-GXCUH2VV.js +17 -0
  62. package/dist/chunks/{chunk-OCC43RSJ.js → chunk-GXZCMO6S.js} +1 -1
  63. package/dist/chunks/{chunk-CLFYRN46.js → chunk-H6C4MAUN.js} +1 -1
  64. package/dist/chunks/{chunk-HBLN4OLY.js → chunk-HUCBKXTU.js} +1 -1
  65. package/dist/chunks/{chunk-M5IX6VUA.js → chunk-IHB5GTOJ.js} +2 -2
  66. package/dist/chunks/{chunk-J3B2GM4A.js → chunk-IWWXIUAQ.js} +1 -1
  67. package/dist/chunks/chunk-J572ANHX.js +13 -0
  68. package/dist/chunks/{chunk-AKZPMKWP.js → chunk-J7ZTPXRQ.js} +1 -1
  69. package/dist/chunks/{chunk-CJUVHE4U.js → chunk-JORRZ4BB.js} +1 -1
  70. package/dist/chunks/chunk-JSQRLLN6.js +2 -0
  71. package/dist/chunks/chunk-KCOTDUGW.js +2 -0
  72. package/dist/chunks/{chunk-NK4JKB7C.js → chunk-KHTAAVC2.js} +1 -1
  73. package/dist/chunks/{chunk-LRRBYIGH.js → chunk-LK2K3SPM.js} +2 -2
  74. package/dist/chunks/{chunk-557XSPVS.js → chunk-LKKMLBOH.js} +1 -1
  75. package/dist/chunks/{chunk-U456UP3N.js → chunk-LSZJ5M3X.js} +1 -1
  76. package/dist/chunks/chunk-M3FLEZ4E.js +4 -0
  77. package/dist/chunks/{chunk-Y2KPHVZK.js → chunk-M3SCON53.js} +1 -1
  78. package/dist/chunks/{chunk-VPDG2V2R.js → chunk-MEGKXGW3.js} +1 -1
  79. package/dist/chunks/chunk-MPNJ2BB4.js +2 -0
  80. package/dist/chunks/{chunk-4RZBGKT7.js → chunk-N33D7KCW.js} +1 -1
  81. package/dist/chunks/chunk-N42HT64M.js +2 -0
  82. package/dist/chunks/{chunk-SD64CLJX.js → chunk-N4VHLJBZ.js} +1 -1
  83. package/dist/chunks/chunk-NEJLJ2XY.js +2 -0
  84. package/dist/chunks/chunk-NG2L6D7G.js +2 -0
  85. package/dist/chunks/{chunk-GV3LFSMI.js → chunk-NLYZ5K7U.js} +1 -1
  86. package/dist/chunks/{chunk-F4TJ7WQV.js → chunk-NT7N6KLE.js} +1 -1
  87. package/dist/chunks/{chunk-PAE3PQEC.js → chunk-NZTCH6K5.js} +1 -1
  88. package/dist/chunks/{chunk-BEI4YULC.js → chunk-OG33QAG6.js} +1 -1
  89. package/dist/chunks/chunk-OTUBJV6C.js +6 -0
  90. package/dist/chunks/{chunk-RH43WLBX.js → chunk-PBTXLQAU.js} +1 -1
  91. package/dist/chunks/{chunk-3R4MSE2S.js → chunk-QJ6KUVAR.js} +1 -1
  92. package/dist/chunks/{chunk-7JXZNCBC.js → chunk-QU4UE73E.js} +1 -1
  93. package/dist/chunks/{chunk-WQMXEZVE.js → chunk-R6VJDOQM.js} +3 -3
  94. package/dist/chunks/{chunk-FUSCTBJI.js → chunk-R6WMY6AH.js} +1 -1
  95. package/dist/chunks/{chunk-EIX2V2KU.js → chunk-RDSVU6F6.js} +1 -1
  96. package/dist/chunks/{chunk-R4PDSOB4.js → chunk-RFMME46Z.js} +1 -1
  97. package/dist/chunks/{chunk-GW5SE3FM.js → chunk-RZUCVF2Q.js} +1 -1
  98. package/dist/chunks/{chunk-UC3FXTDL.js → chunk-SFKZITAG.js} +5 -5
  99. package/dist/chunks/{chunk-5A6ER3M2.js → chunk-SHJY5RLU.js} +1 -1
  100. package/dist/chunks/chunk-SI5W5LBV.js +2 -0
  101. package/dist/chunks/chunk-SO42ZB5K.js +2 -0
  102. package/dist/chunks/{chunk-2UDAKLJ4.js → chunk-TCOTXCV6.js} +1 -1
  103. package/dist/chunks/{chunk-QCSLEMZF.js → chunk-U2K7QJCG.js} +1 -1
  104. package/dist/chunks/{chunk-ISIXFK6U.js → chunk-UH4JSSRL.js} +28 -28
  105. package/dist/chunks/{chunk-X4ZT22SG.js → chunk-UPWJSNL5.js} +1 -1
  106. package/dist/chunks/chunk-URNMC46H.js +157 -0
  107. package/dist/chunks/{chunk-NLQ2UPN2.js → chunk-V7KR74NO.js} +1 -1
  108. package/dist/chunks/{chunk-HXZXDDKW.js → chunk-VHXDWAEH.js} +1 -1
  109. package/dist/chunks/{chunk-NE4ESZPT.js → chunk-W2TICQ62.js} +1 -1
  110. package/dist/chunks/chunk-WP2L2NY2.js +2 -0
  111. package/dist/chunks/chunk-WSOUMXH3.js +24 -0
  112. package/dist/chunks/chunk-WWQNMC7C.js +6 -0
  113. package/dist/chunks/chunk-XMHIQ3SK.js +5 -0
  114. package/dist/chunks/{chunk-5MTN6KXV.js → chunk-XNOMIWEY.js} +1 -1
  115. package/dist/chunks/{chunk-ZXT7V64X.js → chunk-XOB6FKQV.js} +1 -1
  116. package/dist/chunks/chunk-Y766IN7Y.js +2 -0
  117. package/dist/chunks/chunk-YCZZ62C2.js +2 -0
  118. package/dist/chunks/chunk-YM4PSVFW.js +4 -0
  119. package/dist/chunks/chunk-YNQWJWIC.js +10 -0
  120. package/dist/chunks/{chunk-GSWBNJGZ.js → chunk-Z3BWCFLV.js} +1 -1
  121. package/dist/chunks/{chunk-GOIKLFXK.js → chunk-ZG6353RM.js} +1 -1
  122. package/dist/chunks/{chunk-T6C5BNXK.js → chunk-ZPTKR3GB.js} +1 -1
  123. package/dist/chunks/{chunk-MNXNZDDW.js → chunk-ZYVHOVKL.js} +1 -1
  124. package/dist/chunks/chunk-ZZHXQCNB.js +22 -0
  125. package/dist/chunks/cli-PSXMIJTF.js +2 -0
  126. package/dist/chunks/{configuration-command-BU2RPG33.js → configuration-command-XYKMXIWF.js} +1 -1
  127. package/dist/chunks/connected-app-executor-6G2LA3PQ.js +2 -0
  128. package/dist/chunks/connected-evidence-IRXYN6YD.js +2 -0
  129. package/dist/chunks/{connected-starting-assets-V5QXRK5Q.js → connected-starting-assets-JONPTII6.js} +1 -1
  130. package/dist/chunks/{continual-FLW6DAJK.js → continual-Z7MO2PF6.js} +1 -1
  131. package/dist/chunks/core-commands-WWN7X3XC.js +2 -0
  132. package/dist/chunks/dataset-preparation-authoring-F3OZIQSP.js +4 -0
  133. package/dist/chunks/datasets-2PC2HP7N.js +2 -0
  134. package/dist/chunks/desktop-test-VU6AFAMO.js +3 -0
  135. package/dist/chunks/dist-47AYOIH6.js +2 -0
  136. package/dist/chunks/{dist-DCSLPBO2.js → dist-MXBEBM4D.js} +1 -1
  137. package/dist/chunks/evaluation-coordination-UOWZHHC5.js +2 -0
  138. package/dist/chunks/experiment-improvements-EB2CV5RA.js +2 -0
  139. package/dist/chunks/experiments-SZQYR6MH.js +2 -0
  140. package/dist/chunks/experiments-signal-2KJCP25D.js +2 -0
  141. package/dist/chunks/{help-PXUUREHZ.js → help-7HXFWIKS.js} +1 -1
  142. package/dist/chunks/host-profile-evaluation-tools-Y2LQ4WQN.js +2 -0
  143. package/dist/chunks/host-profile-external-dataset-FRIGXOO7.js +2 -0
  144. package/dist/chunks/hosted-app-server-composition-PGKQNDW6.js +2 -0
  145. package/dist/chunks/hosted-experiment-improvement-UXC542SZ.js +3 -0
  146. package/dist/chunks/hosted-harness-runtime-6PEI7F2U.js +2 -0
  147. package/dist/chunks/hosted-profile-candidate-HM44BIUX.js +3 -0
  148. package/dist/chunks/hosted-profile-compiler-UAZ4PHYE.js +2 -0
  149. package/dist/chunks/hosted-profile-evaluation-control-EUL57FAB.js +2 -0
  150. package/dist/chunks/hosted-profile-evaluation-inspection-7USY75Z4.js +3 -0
  151. package/dist/chunks/hosted-profile-evaluation-preparation-2LSMZQNA.js +3 -0
  152. package/dist/chunks/{hosted-tasksets-X2YCFYEJ.js → hosted-tasksets-WGXGXJ7E.js} +1 -1
  153. package/dist/chunks/human-review-M26UKGJL.js +2 -0
  154. package/dist/chunks/{import-JWZSZCE4.js → import-6SI4BEKS.js} +2 -2
  155. package/dist/chunks/learning-HM3NWOV5.js +2 -0
  156. package/dist/chunks/local-harness-improvement-runtime-QGWFWNSR.js +2 -0
  157. package/dist/chunks/local-harness-taskset-review-KS4WPMN6.js +2 -0
  158. package/dist/chunks/model-projects-YUAMBQTO.js +2 -0
  159. package/dist/chunks/opchat-AG4CWVY4.js +3 -0
  160. package/dist/chunks/opchat-bounded-chat-IQMP5IIO.js +2 -0
  161. package/dist/chunks/organizations-KDKX77XZ.js +2 -0
  162. package/dist/chunks/{profile-ELE2D7HU.js → profile-O5HL5DTQ.js} +1 -1
  163. package/dist/chunks/project-action-payload-QA24HYGF.js +2 -0
  164. package/dist/chunks/project-agent-XBOOM5TS.js +2 -0
  165. package/dist/chunks/published-experiment-source-GZGN354O.js +2 -0
  166. package/dist/chunks/refiner-profile-service-BJMOYKTC.js +2 -0
  167. package/dist/chunks/{runtime-776NUSE7.js → runtime-XBA744HJ.js} +2 -2
  168. package/dist/chunks/sandbox-command-5ECGS7DG.js +2 -0
  169. package/dist/chunks/{sandbox-template-WP6YCGBK.js → sandbox-template-27U3FQN7.js} +1 -1
  170. package/dist/chunks/saved-work-KUNVTJ7O.js +2 -0
  171. package/dist/chunks/{send-turn-RPB65PME.js → send-turn-FIPWOXWV.js} +1 -1
  172. package/dist/chunks/src-BLWX6DRG.js +424 -0
  173. package/dist/chunks/{src-2R4CMCJ5.js → src-PU7QTFO5.js} +1 -1
  174. package/dist/chunks/standalone-experiment-turn-owner-XIE46VNH.js +2 -0
  175. package/dist/chunks/store-chat-resources-YOEJ2BI6.js +2 -0
  176. package/dist/chunks/{store-continual-support-reviews-R62D2HD6.js → store-continual-support-reviews-FOMYYS25.js} +1 -1
  177. package/dist/chunks/{store-conversation-serving-25O7BAR2.js → store-conversation-serving-K324SQTO.js} +1 -1
  178. package/dist/chunks/{store-create-improve-T5E2GUKK.js → store-create-improve-3LQMIYAP.js} +1 -1
  179. package/dist/chunks/{store-datasets-5Y4U5L3R.js → store-datasets-3KSX7RSO.js} +1 -1
  180. package/dist/chunks/store-evaluation-results-LHCCNNE6.js +7 -0
  181. package/dist/chunks/{store-harness-evaluation-review-settings-I2R3HPO3.js → store-harness-evaluation-review-settings-AAN7KKJ5.js} +1 -1
  182. package/dist/chunks/{store-harness-refinement-candidates-SUT45FQX.js → store-harness-refinement-candidates-3PHL3BUY.js} +1 -1
  183. package/dist/chunks/store-harness-workspaces-ZHNCNWVI.js +2 -0
  184. package/dist/chunks/store-human-review-QJY3ZPPF.js +7 -0
  185. package/dist/chunks/store-learned-preference-migration-validation-X32SRBOM.js +2 -0
  186. package/dist/chunks/{store-learning-MFS4DGQR.js → store-learning-DW3QLQXU.js} +1 -1
  187. package/dist/chunks/{store-learning-credentials-BECWEG2Y.js → store-learning-credentials-67QNTPA7.js} +1 -1
  188. package/dist/chunks/{store-local-experiments-LOH4F4TF.js → store-local-experiments-QTVHJAEP.js} +1 -1
  189. package/dist/chunks/store-model-batch-review-PBYQZJJJ.js +2 -0
  190. package/dist/chunks/store-model-configuration-3SU73CMS.js +3 -0
  191. package/dist/chunks/store-model-project-preparation-TFCG2F2F.js +2 -0
  192. package/dist/chunks/store-ponder-history-WDLMXBIJ.js +2 -0
  193. package/dist/chunks/store-ponder-hosted-DX6E2BVW.js +4 -0
  194. package/dist/chunks/{store-preference-comparison-RNIFLJRW.js → store-preference-comparison-DWV5XSMY.js} +1 -1
  195. package/dist/chunks/{store-schedules-DVQ2PP4F.js → store-schedules-2KUY4T6M.js} +1 -1
  196. package/dist/chunks/{store-sidebar-file-bookmarks-LXWFFYCZ.js → store-sidebar-file-bookmarks-A4XCS7RM.js} +1 -1
  197. package/dist/chunks/{store-sidebar-preferences-4HH7LX6N.js → store-sidebar-preferences-V2PKRXUZ.js} +1 -1
  198. package/dist/chunks/{store-subagents-JLW4GD4Q.js → store-subagents-UGVEFA6M.js} +1 -1
  199. package/dist/chunks/store-task-inbox-QABI4ZAH.js +33 -0
  200. package/dist/chunks/{store-task-inventory-NJXRXFLC.js → store-task-inventory-GEQIZELY.js} +1 -1
  201. package/dist/chunks/store-taskset-drafts-GXABQR5G.js +9 -0
  202. package/dist/chunks/{store-training-VRLU6NFX.js → store-training-CQV7PL3V.js} +1 -1
  203. package/dist/chunks/{store-training-jobs-3ZHG4LGI.js → store-training-jobs-XKN6K66J.js} +18 -10
  204. package/dist/chunks/{store-training-models-KWQD5PRP.js → store-training-models-Q7DTTR4S.js} +1 -1
  205. package/dist/chunks/{store-usage-ZRS3ILF2.js → store-usage-XGAX7NLB.js} +1 -1
  206. package/dist/chunks/{taskset-QDMCQQDJ.js → taskset-ARKJQKYQ.js} +1 -1
  207. package/dist/chunks/taskset-packages-X4K65DTW.js +2 -0
  208. package/dist/chunks/taskset-packages-XK7FSD45.js +2 -0
  209. package/dist/chunks/{teams-bot-GF272RGC.js → teams-bot-UTQAJA6H.js} +1 -1
  210. package/dist/chunks/training-3IWW4256.js +2 -0
  211. package/dist/chunks/{training-DF5UEPY3.js → training-RVIESURJ.js} +1 -1
  212. package/dist/chunks/training-error-2EWDOQ4G.js +2 -0
  213. package/dist/chunks/training-hosted-PFJHYTEU.js +2 -0
  214. package/dist/chunks/training-hosted-checkpoint-evaluation-JJPP7KFW.js +2 -0
  215. package/dist/chunks/training-hosted-feedback-5B2KJGOT.js +2 -0
  216. package/dist/chunks/training-hosted-learning-Y7NHRY4V.js +2 -0
  217. package/dist/chunks/training-hosted-report-UVGTPDOK.js +2 -0
  218. package/dist/chunks/training-hosted-serving-report-OX4A5OKB.js +2 -0
  219. package/dist/chunks/training-hosted-workers-LST4ZUXN.js +2 -0
  220. package/dist/chunks/training-model-start-ROLS3E4V.js +2 -0
  221. package/dist/chunks/{web-search-5RUXYIOF.js → web-search-7FBUBZ66.js} +1 -1
  222. package/dist/chunks/{workspaces-JRY2IE7H.js → workspaces-G3CMY7ZA.js} +1 -1
  223. package/dist/cli.js +1 -1
  224. package/dist/index.js +1 -1
  225. package/dist/sandbox/url.d.ts +3 -1
  226. package/dist/skills/LICENSE +21 -0
  227. package/dist/skills/manifest.json +168 -0
  228. package/dist/skills/openpond-agent-authoring/SKILL.md +9 -3
  229. package/dist/skills/openpond-agent-authoring/references/profile-layout.md +1 -1
  230. package/dist/skills/openpond-agent-authoring/references/validation-and-repair.md +2 -2
  231. package/dist/skills/openpond-cli/SKILL.md +11 -7
  232. package/dist/skills/openpond-cli/references/experiments-and-training.md +1 -1
  233. package/dist/skills/openpond-refiner-authoring/SKILL.md +4 -0
  234. package/dist/skills/openpond-skill-authoring/SKILL.md +5 -1
  235. package/dist/web/assets/App-DY2R8Z6r.js +53 -0
  236. package/dist/web/assets/{AppDialog-BurL61qE.js → AppDialog-8Y0FYalT.js} +1 -1
  237. package/dist/web/assets/AppTerminalPanel-YcnBD5DF.js +2 -0
  238. package/dist/web/assets/{AppToastContext-DZLErwj0.js → AppToastContext-BiQbbVxq.js} +1 -1
  239. package/dist/web/assets/AppsView-Dtte4h6e.js +1 -0
  240. package/dist/web/assets/{AttachmentTypeIcon-CpMSfHCK.js → AttachmentTypeIcon-DgADV7dn.js} +1 -1
  241. package/dist/web/assets/BrowserSidebar-BUqDvEv9.js +1 -0
  242. package/dist/web/assets/{CartesianChart-CEbM980A.js → CartesianChart-J4ChOjvG.js} +1 -1
  243. package/dist/web/assets/ChatTimelineEntry-DC93wlDa.js +8 -0
  244. package/dist/web/assets/ChatTimelineEntry-DztFb85D.css +1 -0
  245. package/dist/web/assets/{CollaborationTabs-DrKJmJZK.js → CollaborationTabs-CFCpk2Ck.js} +1 -1
  246. package/dist/web/assets/CommandMenu-EPPjB14H.js +1 -0
  247. package/dist/web/assets/{CommunityView-BzpIq1lD.js → CommunityView-Okydjpqm.js} +1 -1
  248. package/dist/web/assets/ComposerAttachments-RXCiE88M.js +2 -0
  249. package/dist/web/assets/{ComposerCreateImproveStrip-ChplO9YP.js → ComposerCreateImproveStrip-CSngc8-V.js} +1 -1
  250. package/dist/web/assets/{ConversationImportsSettings-DRHgc7j_.js → ConversationImportsSettings-DS73kyfj.js} +1 -1
  251. package/dist/web/assets/FilePagePreview-Qc4B0vue.js +2 -0
  252. package/dist/web/assets/{GetStartedView-CaBk_mX6.js → GetStartedView-DGFPQ1We.js} +1 -1
  253. package/dist/web/assets/{GettingStartedDialog-JtFLyU3F.js → GettingStartedDialog-DFBYQdHz.js} +1 -1
  254. package/dist/web/assets/{HostedModelLearningReview-hhcjDifK.js → HostedModelLearningReview-BDu3FlcU.js} +1 -1
  255. package/dist/web/assets/{HostedModelLearningSettings-CY8198Y1.js → HostedModelLearningSettings-CHaTHwC8.js} +1 -1
  256. package/dist/web/assets/HtmlVisual-C7GlEVfH.css +1 -0
  257. package/dist/web/assets/HtmlVisual-D9Mh7xds.js +81 -0
  258. package/dist/web/assets/LabModelVersionDetailPage-DgY7lAu5.js +1 -0
  259. package/dist/web/assets/{LabSkillSidebar-HibUEEko.js → LabSkillSidebar-BwtlThO7.js} +1 -1
  260. package/dist/web/assets/LabsRoute-BV7ZJGEw.js +101 -0
  261. package/dist/web/assets/MainChatThread-pzHKd_YN.js +2 -0
  262. package/dist/web/assets/MainPane-6OlLiKKb.js +10 -0
  263. package/dist/web/assets/MainPane-Dje-hfUM.css +1 -0
  264. package/dist/web/assets/NativeSetupTerminal-CPDChcMi.js +2 -0
  265. package/dist/web/assets/NativeSkillSidebar-BEJvt5_H.js +1 -0
  266. package/dist/web/assets/{NewProjectDialog-t9Imnb__.js → NewProjectDialog-CjrjgkTN.js} +1 -1
  267. package/dist/web/assets/{OutputsPage-CeGq_F1S.js → OutputsPage-jzx93QQ3.js} +1 -1
  268. package/dist/web/assets/{PageChrome-VHME5V8j.js → PageChrome-C1M13qG2.js} +1 -1
  269. package/dist/web/assets/{ProjectsPage-2TMZoEPB.js → ProjectsPage-DZrjlMp2.js} +1 -1
  270. package/dist/web/assets/RightChatPanelStack-BsxJg9sy.js +1 -0
  271. package/dist/web/assets/RightSidebarHomePanel-CCVQ9LMB.js +1 -0
  272. package/dist/web/assets/ScheduledWorkPage-Cw1ja2GF.js +1 -0
  273. package/dist/web/assets/{SettingsView-Y8f98GSE.css → SettingsView-Cc0376pY.css} +1 -1
  274. package/dist/web/assets/SettingsView-CckoIki3.js +5 -0
  275. package/dist/web/assets/TasksetDraftEditorPrimitives-ByC8bDjp.js +1 -0
  276. package/dist/web/assets/TeamChatView-OprnSKLF.js +1 -0
  277. package/dist/web/assets/{TerminalOverlay-DlhRpi-X.js → TerminalOverlay-d7A2F9Lx.js} +2 -2
  278. package/dist/web/assets/TrainingCreationPanel-Cyn6R6I6.js +1 -0
  279. package/dist/web/assets/{TrainingDraftPanel-BhhZPPuY.js → TrainingDraftPanel-Mpb5e7t5.js} +1 -1
  280. package/dist/web/assets/TrainingRunLineage-PXzWR65d.css +1 -0
  281. package/dist/web/assets/TrainingRunLineage-VcKz7dIR.js +1 -0
  282. package/dist/web/assets/{UsageSettingsSection-DTZslBeW.js → UsageSettingsSection-FhYymrfc.js} +2 -2
  283. package/dist/web/assets/WorkSidebarPanel-u87uptH0.js +1 -0
  284. package/dist/web/assets/WorkspaceDiffPanel-B5rlW7bA.js +11 -0
  285. package/dist/web/assets/WorkspaceEnvironmentMenu-C8y3537a.js +35 -0
  286. package/dist/web/assets/{WorkspaceFileLocation-ChEeZffU.js → WorkspaceFileLocation-LrEWj4UK.js} +1 -1
  287. package/dist/web/assets/{WorkspaceGitDialogs-D_RUXhTi.js → WorkspaceGitDialogs-NRIMXnkS.js} +1 -1
  288. package/dist/web/assets/{WorkspaceMonacoEditor-BJxaiDrj.js → WorkspaceMonacoEditor-CvDGjKAL.js} +3 -3
  289. package/dist/web/assets/WorkspacePdfPreview-BZ0BbnHv.js +2 -0
  290. package/dist/web/assets/{WorkspacePresentationPreview-A28Poeca.js → WorkspacePresentationPreview-DJrjrvT0.js} +1 -1
  291. package/dist/web/assets/app-models-CUA9XB9U.js +1 -0
  292. package/dist/web/assets/bot-6OhUEmkE.js +1 -0
  293. package/dist/web/assets/browser-sidebar-links-ZyYiYBBd.js +1 -0
  294. package/dist/web/assets/chat-resources-CI8KFVO5.js +1 -0
  295. package/dist/web/assets/{chevron-down-dYn0pd4Q.js → chevron-down-jmVA1BIf.js} +1 -1
  296. package/dist/web/assets/chevron-right-BYmDQ7ti.js +1 -0
  297. package/dist/web/assets/chevron-up-CstyLXH3.js +1 -0
  298. package/dist/web/assets/{chunk-ZFYI4P6C-BmsNtSkR.js → chunk-ONGOAEY6-C__DQmRT.js} +5 -5
  299. package/dist/web/assets/{chunk-BYNVSWIQ-DWh9SmdB.js → chunk-SQBYHWZU-DumrB9SB.js} +1 -1
  300. package/dist/web/assets/{client-choice-storage-DTTLbrYt.js → client-choice-storage-BdQ_YDuk.js} +1 -1
  301. package/dist/web/assets/{cloud-upload-CRMPCFnq.js → cloud-upload-Ck1ufAr8.js} +1 -1
  302. package/dist/web/assets/contracts-BLiqJxBv.js +1 -0
  303. package/dist/web/assets/{copy-DR4ielPn.js → copy-CPkbMfXt.js} +1 -1
  304. package/dist/web/assets/{createLucideIcon-DmttVQ_a.js → createLucideIcon-CXQny8HU.js} +1 -1
  305. package/dist/web/assets/{cssMode-d-2GuNvW.js → cssMode-CYxYl_om.js} +1 -1
  306. package/dist/web/assets/{external-link-B4rPiZEp.js → external-link-CDKOLG_v.js} +1 -1
  307. package/dist/web/assets/{folder-open-BrIUcUk_.js → folder-open-CEtOb_lK.js} +1 -1
  308. package/dist/web/assets/{folder-plus-DwImGEt-.js → folder-plus-CVMYZs3e.js} +1 -1
  309. package/dist/web/assets/{git-commit-horizontal-Ds1mkrlW.js → git-commit-horizontal-DDyhPjxS.js} +1 -1
  310. package/dist/web/assets/{htmlMode-s15GR0Fn.js → htmlMode-DoY4V_j0.js} +1 -1
  311. package/dist/web/assets/icons-D7jkCa2d.js +1 -0
  312. package/dist/web/assets/{image-CY-sHbfQ.js → image-B-PjDSwU.js} +1 -1
  313. package/dist/web/assets/{index-DYrLeSyY.js → index-D9WbJMSq.js} +2 -2
  314. package/dist/web/assets/index-g7UqJhnX.css +1 -0
  315. package/dist/web/assets/{info-aSvM8YlJ.js → info-CCnw-K3b.js} +1 -1
  316. package/dist/web/assets/intake-contracts-BW0Y0C2R.js +1 -0
  317. package/dist/web/assets/{jsonMode-vos9H2hz.js → jsonMode-CeOpZdPj.js} +1 -1
  318. package/dist/web/assets/loader-circle-CPaJeTDy.js +1 -0
  319. package/dist/web/assets/{lspLanguageFeatures-pQmEaoMt.js → lspLanguageFeatures-DAbgLCqZ.js} +1 -1
  320. package/dist/web/assets/{maximize-2-DgF6ZVOM.js → maximize-2-BZX38cpr.js} +1 -1
  321. package/dist/web/assets/message-square-CvgSecgD.js +1 -0
  322. package/dist/web/assets/{monaco.contribution-BPwsKvRB.js → monaco.contribution-CF2JDhi4.js} +2 -2
  323. package/dist/web/assets/{monaco.contribution-CJlccVX3.js → monaco.contribution-cbDqt48m.js} +2 -2
  324. package/dist/web/assets/{monaco.contribution-BbMpa0_-.js → monaco.contribution-m2ze2EsL.js} +2 -2
  325. package/dist/web/assets/{monaco.contribution-pWurLXbm.js → monaco.contribution-yeyow_-Q.js} +2 -2
  326. package/dist/web/assets/{monitor-DlEV241C.js → monitor-By0s4hxb.js} +1 -1
  327. package/dist/web/assets/{paperclip-fnRZSIRc.js → paperclip-BJ2QgJLa.js} +1 -1
  328. package/dist/web/assets/{pdf-CT3zVKCE.js → pdf-C4x-1jjP.js} +1 -1
  329. package/dist/web/assets/pdf.worker.min-BrEVksTu.js +1 -0
  330. package/dist/web/assets/play-D_SuGDBM.js +1 -0
  331. package/dist/web/assets/plus-yw95Iaj8.js +1 -0
  332. package/dist/web/assets/{presentation-Bb8ecExR.js → presentation-I86G1Gd9.js} +1 -1
  333. package/dist/web/assets/{python-DXA1xp0A.js → python-CqFTPj8r.js} +1 -1
  334. package/dist/web/assets/{refresh-cw-B53QjxMO.js → refresh-cw-Dga35Eay.js} +1 -1
  335. package/dist/web/assets/requests-BCbaFiqV.js +1 -0
  336. package/dist/web/assets/{reward-checks-5AOStF27.js → reward-checks-Bcq9ETCA.js} +1 -1
  337. package/dist/web/assets/{save-V1Q4Fcqa.js → save-BLKjYtzR.js} +1 -1
  338. package/dist/web/assets/settings-D7C-Auyi.js +21 -0
  339. package/dist/web/assets/{settings-lists-CtH1A57b.js → settings-lists-DMKA1lCN.js} +5 -5
  340. package/dist/web/assets/square-BY5lG2Ol.js +1 -0
  341. package/dist/web/assets/{square-terminal-Dmgkm5zY.js → square-terminal-B-n7vUex.js} +1 -1
  342. package/dist/web/assets/submit-issue-command-B7Hrt2tU.js +3 -0
  343. package/dist/web/assets/{toggleHighContrast-B-BD2K2Q.js → toggleHighContrast-BhmBE5XE.js} +1 -1
  344. package/dist/web/assets/training-QrdkRQZQ.js +2 -0
  345. package/dist/web/assets/{training-model-data-14942K_Z.js → training-model-data-DB-jg6L_.js} +12 -12
  346. package/dist/web/assets/{tsMode-DdgIcxK3.js → tsMode-BSWEII2p.js} +1 -1
  347. package/dist/web/assets/{upload-82Y6RjLi.js → upload-C4MPhQn8.js} +1 -1
  348. package/dist/web/assets/{useAccountSettings-BgHXNpq_.js → useAccountSettings-9oqWdRLs.js} +1 -1
  349. package/dist/web/assets/useAgentInventory-isO79ui9.js +1 -0
  350. package/dist/web/assets/{useLocalAgentSchedules-CsKv22Hs.js → useLocalAgentSchedules-CZX6PxoK.js} +1 -1
  351. package/dist/web/assets/{useQuery-CPC2wsWm.js → useQuery-BD0Uexmh.js} +1 -1
  352. package/dist/web/assets/{wifi-off-DXOoDN9l.js → wifi-off-Cloe0WuQ.js} +1 -1
  353. package/dist/web/assets/{workers-Clf4hKt5.js → workers-BXagz5eg.js} +1 -1
  354. package/dist/web/assets/x-Dqpel42h.js +1 -0
  355. package/dist/web/assets/{yaml-I1tf8Uxx.js → yaml-sBdvVbCc.js} +1 -1
  356. package/dist/web/index.html +2 -2
  357. package/docs/command-reference.md +22 -4
  358. package/package.json +5 -2
  359. package/dist/chunks/actions-command-6LF4Z4WK.js +0 -2
  360. package/dist/chunks/app-server-connected-apps-3T546FE7.js +0 -2
  361. package/dist/chunks/app-server-evaluations-TXD747QA.js +0 -2
  362. package/dist/chunks/app-server-harness-services-BBCDV5P3.js +0 -2
  363. package/dist/chunks/app-server-runtime-VEJPDAFP.js +0 -2
  364. package/dist/chunks/apps-CTT2XYRR.js +0 -2
  365. package/dist/chunks/chunk-4M3YW3EQ.js +0 -13
  366. package/dist/chunks/chunk-4U2FNXQW.js +0 -2
  367. package/dist/chunks/chunk-547AUVKN.js +0 -2
  368. package/dist/chunks/chunk-557YG77L.js +0 -2
  369. package/dist/chunks/chunk-7KTARW23.js +0 -2
  370. package/dist/chunks/chunk-B42QQUZY.js +0 -2
  371. package/dist/chunks/chunk-EWOTDVDJ.js +0 -4
  372. package/dist/chunks/chunk-GAQLXFOT.js +0 -2
  373. package/dist/chunks/chunk-GLDYJM7O.js +0 -1
  374. package/dist/chunks/chunk-HKV7RX5E.js +0 -2
  375. package/dist/chunks/chunk-IWK3RTLR.js +0 -2
  376. package/dist/chunks/chunk-JX6OX6XE.js +0 -12
  377. package/dist/chunks/chunk-JY3YSI54.js +0 -2
  378. package/dist/chunks/chunk-LILXHGIA.js +0 -2
  379. package/dist/chunks/chunk-LJPO3TEL.js +0 -17
  380. package/dist/chunks/chunk-MNFW5WLD.js +0 -6
  381. package/dist/chunks/chunk-N5GPINVP.js +0 -2
  382. package/dist/chunks/chunk-N663LL27.js +0 -2
  383. package/dist/chunks/chunk-NOSBNHGC.js +0 -18
  384. package/dist/chunks/chunk-NR5VASQB.js +0 -2
  385. package/dist/chunks/chunk-O3MHHGC5.js +0 -151
  386. package/dist/chunks/chunk-OZ6LRNRE.js +0 -2
  387. package/dist/chunks/chunk-PGO4FRHU.js +0 -10
  388. package/dist/chunks/chunk-QAVQJZCM.js +0 -2
  389. package/dist/chunks/chunk-RBDUMASL.js +0 -2
  390. package/dist/chunks/chunk-TM4VEMNN.js +0 -2
  391. package/dist/chunks/chunk-TUCKED4T.js +0 -4
  392. package/dist/chunks/chunk-TVTFEGTU.js +0 -2
  393. package/dist/chunks/chunk-TW3SRBLU.js +0 -22
  394. package/dist/chunks/chunk-UT6F6AIB.js +0 -12
  395. package/dist/chunks/chunk-VE6ZIGUQ.js +0 -2
  396. package/dist/chunks/chunk-VI32G77S.js +0 -2
  397. package/dist/chunks/chunk-VWRTE64Y.js +0 -2
  398. package/dist/chunks/chunk-XSB3T4JZ.js +0 -5
  399. package/dist/chunks/chunk-XWDFXM3S.js +0 -2
  400. package/dist/chunks/chunk-ZQHPGEYT.js +0 -2
  401. package/dist/chunks/cli-GCSO2OAI.js +0 -2
  402. package/dist/chunks/connected-app-executor-UDE7U4KG.js +0 -2
  403. package/dist/chunks/connected-evidence-GXIY2L7C.js +0 -2
  404. package/dist/chunks/core-commands-NJ6TGND4.js +0 -2
  405. package/dist/chunks/dataset-preparation-authoring-IUXUQK3L.js +0 -4
  406. package/dist/chunks/datasets-AH56DKLZ.js +0 -2
  407. package/dist/chunks/desktop-test-PYUTEOWO.js +0 -3
  408. package/dist/chunks/dist-5267UT3V.js +0 -2
  409. package/dist/chunks/evaluation-coordination-3AUICOC5.js +0 -2
  410. package/dist/chunks/experiment-improvements-YS7GGPDW.js +0 -2
  411. package/dist/chunks/experiments-EJZK7FPT.js +0 -2
  412. package/dist/chunks/experiments-signal-NKUIJCIY.js +0 -2
  413. package/dist/chunks/host-profile-evaluation-tools-CTC5JQPD.js +0 -2
  414. package/dist/chunks/host-profile-external-dataset-GJWDY3YT.js +0 -2
  415. package/dist/chunks/hosted-app-server-composition-TLJSKMJT.js +0 -2
  416. package/dist/chunks/hosted-experiment-improvement-TIVXXRPG.js +0 -3
  417. package/dist/chunks/hosted-harness-runtime-SFLJEZFI.js +0 -2
  418. package/dist/chunks/hosted-profile-candidate-DKEMVIYG.js +0 -3
  419. package/dist/chunks/hosted-profile-compiler-V6YR6EHO.js +0 -2
  420. package/dist/chunks/hosted-profile-evaluation-control-ERCXAPZD.js +0 -2
  421. package/dist/chunks/hosted-profile-evaluation-inspection-Q3AIIIB6.js +0 -3
  422. package/dist/chunks/hosted-profile-evaluation-preparation-ELLGH44Z.js +0 -3
  423. package/dist/chunks/human-review-5WM6MSON.js +0 -2
  424. package/dist/chunks/learning-KVLTMRLD.js +0 -2
  425. package/dist/chunks/local-harness-improvement-runtime-IGIKM6GJ.js +0 -2
  426. package/dist/chunks/local-harness-taskset-review-DR2ZIDOH.js +0 -2
  427. package/dist/chunks/model-projects-H22KENI4.js +0 -2
  428. package/dist/chunks/opchat-3S6TSDZO.js +0 -3
  429. package/dist/chunks/opchat-bounded-chat-B7LPCD4U.js +0 -2
  430. package/dist/chunks/organizations-62YNTZTO.js +0 -2
  431. package/dist/chunks/project-action-payload-32F4X2BB.js +0 -2
  432. package/dist/chunks/project-agent-O4REKO6T.js +0 -2
  433. package/dist/chunks/published-experiment-source-DAOTJLIN.js +0 -2
  434. package/dist/chunks/refiner-profile-service-DYMZ7J3X.js +0 -2
  435. package/dist/chunks/sandbox-command-UQ26NDIX.js +0 -2
  436. package/dist/chunks/saved-work-PG52WCRQ.js +0 -2
  437. package/dist/chunks/src-AU6LG7E6.js +0 -421
  438. package/dist/chunks/standalone-experiment-turn-owner-SD3SUTKX.js +0 -2
  439. package/dist/chunks/store-chat-resources-T4LR7K25.js +0 -2
  440. package/dist/chunks/store-evaluation-results-WUVJWCFU.js +0 -7
  441. package/dist/chunks/store-harness-workspaces-IFEFY5CK.js +0 -2
  442. package/dist/chunks/store-human-review-ZQNLZRGG.js +0 -7
  443. package/dist/chunks/store-learned-preference-migration-validation-UH6MJQSH.js +0 -2
  444. package/dist/chunks/store-model-batch-review-QO4VVKWC.js +0 -2
  445. package/dist/chunks/store-model-configuration-C3HSOFD5.js +0 -3
  446. package/dist/chunks/store-model-project-preparation-RQ2YTC2Y.js +0 -2
  447. package/dist/chunks/store-task-inbox-DL5RYFPO.js +0 -33
  448. package/dist/chunks/store-taskset-drafts-UFGN4SGF.js +0 -9
  449. package/dist/chunks/taskset-packages-CBLJFWDQ.js +0 -2
  450. package/dist/chunks/training-error-L5V5IBX3.js +0 -2
  451. package/dist/chunks/training-hosted-I2NDBYGS.js +0 -2
  452. package/dist/chunks/training-hosted-report-4F25RZZ4.js +0 -2
  453. package/dist/chunks/training-hosted-workers-KI767T4Y.js +0 -2
  454. package/dist/skills/openpond-desktop-harness/SKILL.md +0 -113
  455. package/dist/skills/openpond-desktop-harness/agents/openai.yaml +0 -4
  456. package/dist/web/assets/App-DHJVXTI2.js +0 -54
  457. package/dist/web/assets/AppTerminalPanel-RjFlF-a4.js +0 -2
  458. package/dist/web/assets/AppsView-ttlr9ckQ.js +0 -1
  459. package/dist/web/assets/BrowserSidebar-Cp2l0kg0.js +0 -1
  460. package/dist/web/assets/ChatTimelineEntry-BITv20Ze.js +0 -1
  461. package/dist/web/assets/CommandMenu-6oj8FUr6.js +0 -1
  462. package/dist/web/assets/ComposerAttachments-6en7m_ov.js +0 -2
  463. package/dist/web/assets/FilePagePreview-CW4J_1u7.js +0 -2
  464. package/dist/web/assets/LabModelVersionDetailPage-f0tHT-Sn.js +0 -1
  465. package/dist/web/assets/LabsRoute-B61l1b8P.js +0 -101
  466. package/dist/web/assets/MainChatThread-egKi0gLk.js +0 -2
  467. package/dist/web/assets/MainPane-2dj6Dg4l.js +0 -95
  468. package/dist/web/assets/MainPane-BwHw3UYp.css +0 -1
  469. package/dist/web/assets/NativeSetupTerminal-CNHTByLo.js +0 -2
  470. package/dist/web/assets/NativeSkillSidebar-DCdMbSfe.js +0 -1
  471. package/dist/web/assets/RightChatPanelStack-B3mBViGC.js +0 -1
  472. package/dist/web/assets/RightSidebarHomePanel-CxDYSyyx.js +0 -1
  473. package/dist/web/assets/ScheduledWorkPage-Dh47iH11.js +0 -1
  474. package/dist/web/assets/SettingsView-D2bu3tK_.js +0 -5
  475. package/dist/web/assets/TeamChatView-CN17AsgA.js +0 -1
  476. package/dist/web/assets/TrainingCreationPanel-DJKzaNFj.js +0 -1
  477. package/dist/web/assets/TrainingMetricWorkbench-DBy8F1xp.js +0 -1
  478. package/dist/web/assets/WorkSidebarPanel-Ds-eTQLs.js +0 -1
  479. package/dist/web/assets/WorkspaceDiffPanel-D_iyg2D4.js +0 -11
  480. package/dist/web/assets/WorkspaceEnvironmentMenu-Fn-NlfMQ.js +0 -35
  481. package/dist/web/assets/app-models-BviS9b7U.js +0 -1
  482. package/dist/web/assets/browser-sidebar-links-ujSvTf5h.js +0 -1
  483. package/dist/web/assets/chat-resources-3SvnVeKv.js +0 -1
  484. package/dist/web/assets/chevron-right-sFx2xRvT.js +0 -1
  485. package/dist/web/assets/contracts-BHTOD1nd.js +0 -1
  486. package/dist/web/assets/icons-CK5-nxVC.js +0 -1
  487. package/dist/web/assets/index-Dezj4Z2p.css +0 -1
  488. package/dist/web/assets/loader-circle-cyf35w3i.js +0 -1
  489. package/dist/web/assets/play-wI_3FLr4.js +0 -1
  490. package/dist/web/assets/plus-DoJe4fLj.js +0 -1
  491. package/dist/web/assets/settings-BKmRueaw.js +0 -21
  492. package/dist/web/assets/square-BqSK-hv9.js +0 -1
  493. package/dist/web/assets/submit-issue-command-DRgUboVW.js +0 -3
  494. package/dist/web/assets/training-managed-adapter-BXNwgd3P.js +0 -1
  495. package/dist/web/assets/useAgentInventory-B-LNn3up.js +0 -1
  496. package/dist/web/assets/x-IPhrr4ju.js +0 -1
@@ -0,0 +1 @@
1
+ var e=`/assets/pdf.worker.min-CjEcRF4W.mjs`;export{e as t};
@@ -0,0 +1 @@
1
+ import{t as e}from"./createLucideIcon-CXQny8HU.js";var t=e(`play`,[[`path`,{d:`M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z`,key:`10ikf1`}]]);export{t};
@@ -0,0 +1 @@
1
+ import{t as e}from"./createLucideIcon-CXQny8HU.js";var t=e(`plus`,[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`M12 5v14`,key:`s699le`}]]);export{t};
@@ -1 +1 @@
1
- import{t as e}from"./createLucideIcon-DmttVQ_a.js";var t=e(`file-headphone`,[[`path`,{d:`M4 6.835V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2h-.343`,key:`1vfytu`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M2 19a2 2 0 0 1 4 0v1a2 2 0 0 1-4 0v-4a6 6 0 0 1 12 0v4a2 2 0 0 1-4 0v-1a2 2 0 0 1 4 0`,key:`1etmh7`}]]),n=e(`file-spreadsheet`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M8 13h2`,key:`yr2amv`}],[`path`,{d:`M14 13h2`,key:`un5t4a`}],[`path`,{d:`M8 17h2`,key:`2yhykz`}],[`path`,{d:`M14 17h2`,key:`10kma7`}]]),r=e(`file-play`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M15.033 13.44a.647.647 0 0 1 0 1.12l-4.065 2.352a.645.645 0 0 1-.968-.56v-4.704a.645.645 0 0 1 .967-.56z`,key:`1tzo1f`}]]),i=e(`presentation`,[[`path`,{d:`M2 3h20`,key:`91anmk`}],[`path`,{d:`M21 3v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V3`,key:`2k9sn8`}],[`path`,{d:`m7 21 5-5 5 5`,key:`bip4we`}]]);export{t as i,r as n,n as r,i as t};
1
+ import{t as e}from"./createLucideIcon-CXQny8HU.js";var t=e(`file-headphone`,[[`path`,{d:`M4 6.835V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2h-.343`,key:`1vfytu`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M2 19a2 2 0 0 1 4 0v1a2 2 0 0 1-4 0v-4a6 6 0 0 1 12 0v4a2 2 0 0 1-4 0v-1a2 2 0 0 1 4 0`,key:`1etmh7`}]]),n=e(`file-spreadsheet`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M8 13h2`,key:`yr2amv`}],[`path`,{d:`M14 13h2`,key:`un5t4a`}],[`path`,{d:`M8 17h2`,key:`2yhykz`}],[`path`,{d:`M14 17h2`,key:`10kma7`}]]),r=e(`file-play`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M15.033 13.44a.647.647 0 0 1 0 1.12l-4.065 2.352a.645.645 0 0 1-.968-.56v-4.704a.645.645 0 0 1 .967-.56z`,key:`1tzo1f`}]]),i=e(`presentation`,[[`path`,{d:`M2 3h20`,key:`91anmk`}],[`path`,{d:`M21 3v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V3`,key:`2k9sn8`}],[`path`,{d:`m7 21 5-5 5 5`,key:`bip4we`}]]);export{t as i,r as n,n as r,i as t};
@@ -1 +1 @@
1
- import{c as e}from"./WorkspaceMonacoEditor-BJxaiDrj.js";import"./toggleHighContrast-B-BD2K2Q.js";var t={comments:{lineComment:`#`,blockComment:[`'''`,`'''`]},brackets:[[`{`,`}`],[`[`,`]`],[`(`,`)`]],autoClosingPairs:[{open:`{`,close:`}`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`"`,close:`"`,notIn:[`string`]},{open:`'`,close:`'`,notIn:[`string`,`comment`]}],surroundingPairs:[{open:`{`,close:`}`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`"`,close:`"`},{open:`'`,close:`'`}],onEnterRules:[{beforeText:RegExp(`^\\s*(?:def|class|for|if|elif|else|while|try|with|finally|except|async|match|case).*?:\\s*$`),action:{indentAction:e.IndentAction.Indent}}],folding:{offSide:!0,markers:{start:RegExp(`^\\s*#region\\b`),end:RegExp(`^\\s*#endregion\\b`)}}},n={defaultToken:``,tokenPostfix:`.python`,keywords:`False.None.True._.and.as.assert.async.await.break.case.class.continue.def.del.elif.else.except.exec.finally.for.from.global.if.import.in.is.lambda.match.nonlocal.not.or.pass.print.raise.return.try.type.while.with.yield.int.float.long.complex.hex.abs.all.any.apply.basestring.bin.bool.buffer.bytearray.callable.chr.classmethod.cmp.coerce.compile.complex.delattr.dict.dir.divmod.enumerate.eval.execfile.file.filter.format.frozenset.getattr.globals.hasattr.hash.help.id.input.intern.isinstance.issubclass.iter.len.locals.list.map.max.memoryview.min.next.object.oct.open.ord.pow.print.property.reversed.range.raw_input.reduce.reload.repr.reversed.round.self.set.setattr.slice.sorted.staticmethod.str.sum.super.tuple.type.unichr.unicode.vars.xrange.zip.__dict__.__methods__.__members__.__class__.__bases__.__name__.__mro__.__subclasses__.__init__.__import__`.split(`.`),brackets:[{open:`{`,close:`}`,token:`delimiter.curly`},{open:`[`,close:`]`,token:`delimiter.bracket`},{open:`(`,close:`)`,token:`delimiter.parenthesis`}],tokenizer:{root:[{include:`@whitespace`},{include:`@numbers`},{include:`@strings`},[/[,:;]/,`delimiter`],[/[{}\[\]()]/,`@brackets`],[/@[a-zA-Z_]\w*/,`tag`],[/[a-zA-Z_]\w*/,{cases:{"@keywords":`keyword`,"@default":`identifier`}}]],whitespace:[[/\s+/,`white`],[/(^#.*$)/,`comment`],[/'''/,`string`,`@endDocString`],[/"""/,`string`,`@endDblDocString`]],endDocString:[[/[^']+/,`string`],[/\\'/,`string`],[/'''/,`string`,`@popall`],[/'/,`string`]],endDblDocString:[[/[^"]+/,`string`],[/\\"/,`string`],[/"""/,`string`,`@popall`],[/"/,`string`]],numbers:[[/-?0x([abcdef]|[ABCDEF]|\d)+[lL]?/,`number.hex`],[/-?(\d*\.)?\d+([eE][+\-]?\d+)?[jJ]?[lL]?/,`number`]],strings:[[/'$/,`string.escape`,`@popall`],[/f'{1,3}/,`string.escape`,`@fStringBody`],[/'/,`string.escape`,`@stringBody`],[/"$/,`string.escape`,`@popall`],[/f"{1,3}/,`string.escape`,`@fDblStringBody`],[/"/,`string.escape`,`@dblStringBody`]],fStringBody:[[/[^\\'\{\}]+$/,`string`,`@popall`],[/[^\\'\{\}]+/,`string`],[/\{[^\}':!=]+/,`identifier`,`@fStringDetail`],[/\\./,`string`],[/'/,`string.escape`,`@popall`],[/\\$/,`string`]],stringBody:[[/[^\\']+$/,`string`,`@popall`],[/[^\\']+/,`string`],[/\\./,`string`],[/'/,`string.escape`,`@popall`],[/\\$/,`string`]],fDblStringBody:[[/[^\\"\{\}]+$/,`string`,`@popall`],[/[^\\"\{\}]+/,`string`],[/\{[^\}':!=]+/,`identifier`,`@fStringDetail`],[/\\./,`string`],[/"/,`string.escape`,`@popall`],[/\\$/,`string`]],dblStringBody:[[/[^\\"]+$/,`string`,`@popall`],[/[^\\"]+/,`string`],[/\\./,`string`],[/"/,`string.escape`,`@popall`],[/\\$/,`string`]],fStringDetail:[[/[:][^}]+/,`string`],[/[!][ars]/,`string`],[/=/,`string`],[/\}/,`identifier`,`@pop`]]}};export{t as conf,n as language};
1
+ import{c as e}from"./WorkspaceMonacoEditor-CvDGjKAL.js";import"./toggleHighContrast-BhmBE5XE.js";var t={comments:{lineComment:`#`,blockComment:[`'''`,`'''`]},brackets:[[`{`,`}`],[`[`,`]`],[`(`,`)`]],autoClosingPairs:[{open:`{`,close:`}`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`"`,close:`"`,notIn:[`string`]},{open:`'`,close:`'`,notIn:[`string`,`comment`]}],surroundingPairs:[{open:`{`,close:`}`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`"`,close:`"`},{open:`'`,close:`'`}],onEnterRules:[{beforeText:RegExp(`^\\s*(?:def|class|for|if|elif|else|while|try|with|finally|except|async|match|case).*?:\\s*$`),action:{indentAction:e.IndentAction.Indent}}],folding:{offSide:!0,markers:{start:RegExp(`^\\s*#region\\b`),end:RegExp(`^\\s*#endregion\\b`)}}},n={defaultToken:``,tokenPostfix:`.python`,keywords:`False.None.True._.and.as.assert.async.await.break.case.class.continue.def.del.elif.else.except.exec.finally.for.from.global.if.import.in.is.lambda.match.nonlocal.not.or.pass.print.raise.return.try.type.while.with.yield.int.float.long.complex.hex.abs.all.any.apply.basestring.bin.bool.buffer.bytearray.callable.chr.classmethod.cmp.coerce.compile.complex.delattr.dict.dir.divmod.enumerate.eval.execfile.file.filter.format.frozenset.getattr.globals.hasattr.hash.help.id.input.intern.isinstance.issubclass.iter.len.locals.list.map.max.memoryview.min.next.object.oct.open.ord.pow.print.property.reversed.range.raw_input.reduce.reload.repr.reversed.round.self.set.setattr.slice.sorted.staticmethod.str.sum.super.tuple.type.unichr.unicode.vars.xrange.zip.__dict__.__methods__.__members__.__class__.__bases__.__name__.__mro__.__subclasses__.__init__.__import__`.split(`.`),brackets:[{open:`{`,close:`}`,token:`delimiter.curly`},{open:`[`,close:`]`,token:`delimiter.bracket`},{open:`(`,close:`)`,token:`delimiter.parenthesis`}],tokenizer:{root:[{include:`@whitespace`},{include:`@numbers`},{include:`@strings`},[/[,:;]/,`delimiter`],[/[{}\[\]()]/,`@brackets`],[/@[a-zA-Z_]\w*/,`tag`],[/[a-zA-Z_]\w*/,{cases:{"@keywords":`keyword`,"@default":`identifier`}}]],whitespace:[[/\s+/,`white`],[/(^#.*$)/,`comment`],[/'''/,`string`,`@endDocString`],[/"""/,`string`,`@endDblDocString`]],endDocString:[[/[^']+/,`string`],[/\\'/,`string`],[/'''/,`string`,`@popall`],[/'/,`string`]],endDblDocString:[[/[^"]+/,`string`],[/\\"/,`string`],[/"""/,`string`,`@popall`],[/"/,`string`]],numbers:[[/-?0x([abcdef]|[ABCDEF]|\d)+[lL]?/,`number.hex`],[/-?(\d*\.)?\d+([eE][+\-]?\d+)?[jJ]?[lL]?/,`number`]],strings:[[/'$/,`string.escape`,`@popall`],[/f'{1,3}/,`string.escape`,`@fStringBody`],[/'/,`string.escape`,`@stringBody`],[/"$/,`string.escape`,`@popall`],[/f"{1,3}/,`string.escape`,`@fDblStringBody`],[/"/,`string.escape`,`@dblStringBody`]],fStringBody:[[/[^\\'\{\}]+$/,`string`,`@popall`],[/[^\\'\{\}]+/,`string`],[/\{[^\}':!=]+/,`identifier`,`@fStringDetail`],[/\\./,`string`],[/'/,`string.escape`,`@popall`],[/\\$/,`string`]],stringBody:[[/[^\\']+$/,`string`,`@popall`],[/[^\\']+/,`string`],[/\\./,`string`],[/'/,`string.escape`,`@popall`],[/\\$/,`string`]],fDblStringBody:[[/[^\\"\{\}]+$/,`string`,`@popall`],[/[^\\"\{\}]+/,`string`],[/\{[^\}':!=]+/,`identifier`,`@fStringDetail`],[/\\./,`string`],[/"/,`string.escape`,`@popall`],[/\\$/,`string`]],dblStringBody:[[/[^\\"]+$/,`string`,`@popall`],[/[^\\"]+/,`string`],[/\\./,`string`],[/"/,`string.escape`,`@popall`],[/\\$/,`string`]],fStringDetail:[[/[:][^}]+/,`string`],[/[!][ars]/,`string`],[/=/,`string`],[/\}/,`identifier`,`@pop`]]}};export{t as conf,n as language};
@@ -1 +1 @@
1
- import{t as e}from"./createLucideIcon-DmttVQ_a.js";var t=e(`refresh-cw`,[[`path`,{d:`M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8`,key:`v9h5vc`}],[`path`,{d:`M21 3v5h-5`,key:`1q7to0`}],[`path`,{d:`M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16`,key:`3uifl3`}],[`path`,{d:`M8 16H3v5`,key:`1cv678`}]]);export{t};
1
+ import{t as e}from"./createLucideIcon-CXQny8HU.js";var t=e(`refresh-cw`,[[`path`,{d:`M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8`,key:`v9h5vc`}],[`path`,{d:`M21 3v5h-5`,key:`1q7to0`}],[`path`,{d:`M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16`,key:`3uifl3`}],[`path`,{d:`M8 16H3v5`,key:`1cv678`}]]);export{t};
@@ -0,0 +1 @@
1
+ import{a as e,b as t,c as n,d as r,g as i,m as a,o,p as s,r as c,v as l,x as u}from"./schemas-lO3MoWQr.js";import{c as d,d as ee,i as f,o as p,s as m}from"./common-BMjyKlX-.js";import{C as h,D as g,E as te,S as ne,_,b as v,f as y,g as re,h as ie,i as ae,m as oe,n as b,p as se,r as x,s as ce,t as S}from"./settings-D7C-Auyi.js";import{t as C}from"./create-pipeline-CyUZrbbO.js";import{n as le,t as w}from"./profile-ref-DSNkG6Ol.js";var T=c([`chat`,`work`,`development`]);c([`chat`,`models`,`console`,`development`]);var ue=`work`,E=i(l(),u()).default({}),D=s().int().nonnegative(),O=l().trim().min(1).max(1e5),k=a({kind:c([`personal`,`team`]),id:m}).strict(),de=a({name:m,release:f.nullable(),revision:D}).strict();a({schemaVersion:r(`openpond.harnessWorkspace.v1`),id:m,ownerScope:k,name:l().trim().min(1).max(240),location:c([`local`,`hosted`]),sourceRevision:l().trim().min(1).max(500),revision:D,dirty:o(),currentChannel:de,createdAt:d,updatedAt:d,metadata:E}).strict();var A=c([`runtime`,`memory`,`prompt`,`skill`,`agent`,`product`,`taskset`,`training`]),j=c([`text_instruction`,`memory`,`dependency_selection`,`executable_code`,`business_logic`,`financial_logic`,`permission`,`connected_app`,`publication`,`deployment`,`training`,`model_binding`,`team_or_global`]),M=a({id:m,route:A,operation:c([`create`,`update`,`delete`]),target:l().trim().min(1).max(2e3),summary:l().trim().min(1).max(2e3),content:l().max(1e6).nullable(),contentHash:p.nullable(),effects:e(j).min(1).max(20)}).strict().superRefine((e,t)=>{if(e.operation===`delete`){(e.content!==null||e.contentHash!==null)&&t.addIssue({code:`custom`,message:`delete edits cannot include replacement content`,path:[`content`]});return}if(e.content===null||e.contentHash===null){t.addIssue({code:`custom`,message:`create and update edits require content and contentHash`,path:[`content`]});return}let n=ee(e.content);e.contentHash!==n&&t.addIssue({code:`custom`,message:`edit contentHash is ${e.contentHash}; expected ${n}`,path:[`contentHash`]})}),N=a({workspaceId:m,revision:D,sourceRevision:l().trim().min(1).max(500),channelRevision:D}).strict(),P=a({id:m,revision:D,contentHash:p}).strict(),fe=a({schemaVersion:r(`openpond.harnessTurnSnapshot.v1`),workspaceId:m,workspaceRevision:D,sourceRevision:l().trim().min(1).max(500),channelName:m,channelRevision:D,harnessRelease:f,toolCatalogHash:p.nullable().optional(),overlay:P.nullable().optional().default(null)}).strict();a({schemaVersion:r(`openpond.harnessRunOverlay.v1`),id:m,runId:m,baseHarnessRelease:f,workspace:N,revision:D,status:c([`active`,`frozen`,`abandoned`]),edits:e(M).max(1e3),createdAt:d,updatedAt:d,metadata:E}).strict().extend({contentHash:p}).strict();var F=a({kind:c([`tool_event`,`recovery`,`validation`,`user_turn`,`work_output`,`work_receipt`]),id:m,contentHash:p.nullable()}).strict(),I=a({id:m,kind:c([`dependency`,`schema`,`package`,`file_render`,`skill`,`prompt`,`business_formula`,`targeted_evaluation`,`observed_recovery`,`memory`,`component_activation`]),description:O,required:o()}).strict();a({schemaVersion:r(`openpond.harnessImprovementProposal.v1`),id:m,overlay:P,baseHarnessRelease:f,expectedWorkspace:N,requestedScope:c([`personal`,`team`,`global`]),route:A,risk:c([`low`,`review`,`restricted`]),effects:e(j).min(1).max(20),evidence:e(F).min(1).max(1e3),edits:e(M).min(1).max(1e3),validationPlan:e(I).min(1).max(100),expectedOutcome:O,createdAt:d,metadata:E}).strict().superRefine((e,t)=>{let n=new Set(e.effects);for(let[r,i]of e.edits.entries()){i.route!==e.route&&t.addIssue({code:`custom`,message:`every edit route must match the proposal route`,path:[`edits`,r,`route`]});for(let e of i.effects)n.has(e)||t.addIssue({code:`custom`,message:`edit effect ${e} is missing from proposal effects`,path:[`edits`,r,`effects`]})}new Set(e.validationPlan.map(e=>e.id)).size!==e.validationPlan.length&&t.addIssue({code:`custom`,message:`validation plan ids must be unique`,path:[`validationPlan`]})}).extend({contentHash:p}).strict(),a({schemaVersion:r(`openpond.harnessTargetedValidationReceipt.v1`),id:m,proposal:f,validationId:m,kind:I.shape.kind,status:c([`passed`,`failed`,`blocked`,`skipped`]),summary:O,evidenceRefs:e(F).max(1e3),createdAt:d,metadata:E}).strict().extend({contentHash:p}).strict();var pe=c([`advanced`,`retained`,`conflict`,`rolled_back`]);a({schemaVersion:r(`openpond.harnessAdvanceReceipt.v1`),id:m,workspaceId:m,ownerScope:k,proposal:f.nullable(),expectedWorkspaceRevision:D,observedWorkspaceRevision:D,previousChannelRevision:D,nextChannelRevision:D,previousRelease:f.nullable(),nextRelease:f.nullable(),validationReceipts:e(f).max(100),decision:pe,reason:O,rollbackOf:f.nullable(),createdAt:d,metadata:E}).strict().superRefine((e,t)=>{let n=e.nextChannelRevision===e.previousChannelRevision+1;[`advanced`,`rolled_back`].includes(e.decision)!==n&&t.addIssue({code:`custom`,message:`only successful advancement or rollback increments the channel revision`,path:[`nextChannelRevision`]}),e.decision===`rolled_back`&&e.rollbackOf===null&&t.addIssue({code:`custom`,message:`rollback receipts require rollbackOf`,path:[`rollbackOf`]}),e.decision!==`rolled_back`&&e.rollbackOf!==null&&t.addIssue({code:`custom`,message:`rollbackOf is only valid for rollback receipts`,path:[`rollbackOf`]})}).extend({contentHash:p}).strict(),a({schemaVersion:r(`openpond.harnessOverlayMergeReceipt.v1`),id:m,workspaceId:m,baseHarnessRelease:f,leftOverlay:P,rightOverlay:P,decision:c([`merged`,`conflict`]),mergedOverlay:P.nullable(),conflictTargets:e(l().trim().min(1).max(2e3)).max(1e3),requiresRevalidation:r(!0),createdAt:d,metadata:E}).strict().superRefine((e,t)=>{e.decision===`merged`!=(e.mergedOverlay!==null)&&t.addIssue({code:`custom`,message:`merged decisions require a merged overlay; conflicts cannot provide one`,path:[`mergedOverlay`]}),e.decision===`conflict`!=e.conflictTargets.length>0&&t.addIssue({code:`custom`,message:`conflict decisions require conflict targets and merged decisions cannot include them`,path:[`conflictTargets`]})}).extend({contentHash:p}).strict();var L=l().regex(/^[a-z][a-z0-9_-]{0,119}$/),R=l().min(1).max(2e3).refine(e=>!e.includes(`\\`)&&!e.includes(`:`)&&!e.startsWith(`/`)&&e.split(`/`).every(e=>e!==``&&e!==`.`&&e!==`..`),`workflow references require portable relative paths`),me=a({id:L,label:l().trim().min(1).max(240),description:l().max(4e3),inputSchema:i(l(),u()),invocation:n(`kind`,[a({kind:r(`instructions`),instructions:l().min(1).max(1e5).refine(e=>!!e.trim())}).strict(),a({kind:r(`agent_action`),actionId:l().trim().min(1).max(240)}).strict()]),skillPaths:e(R).max(100)}).strict();a({schemaVersion:r(`openpond.profileWorkflows.v1`),workflows:e(me).max(1e3)}).strict();var he=a({id:l().trim().min(1).max(240),agentId:l().regex(/^[a-zA-Z0-9_-]{1,240}$/),sourceActionId:l().trim().min(1).max(240),inputSchema:i(l(),u())}).strict();a({schemaVersion:r(`openpond.profileWorkflowActions.v1`),actions:e(he).max(200)}).strict();var ge=a({schemaVersion:r(`openpond.profileWorkflowBinding.v1`),profileId:l().trim().min(1).max(240),sourceRevision:l().trim().min(1).max(240),harnessRelease:f,catalogHash:p,workflowId:L}).strict(),_e=a({schemaVersion:r(`openpond.profileComponentBinding.v1`),profileId:l().trim().min(1).max(240),sourceRevision:l().trim().min(1).max(240),harnessRelease:f,target:n(`kind`,[a({kind:r(`profile`)}).strict(),a({kind:r(`skill`),skillPath:R}).strict(),a({kind:r(`agent_action`),actionId:l().trim().min(1).max(240)}).strict()])}).strict(),z=c([`openpond.lab`,`openpond.ponder`]),B=a({id:l(),experience:T.default(ue),provider:S,modelRef:g.nullable().optional(),openPondCommandAccessMode:y.default(`ask`),systemKind:z.nullable().optional(),hiddenFromDefaultSidebar:o().optional(),parentSessionId:l().nullable().optional(),parentTurnId:l().nullable().optional(),subagentRunId:l().nullable().optional(),subagentRoleId:h.nullable().optional(),subagentDelegationMode:v.nullable().optional(),title:l(),appId:l().nullable(),appName:l().nullable(),workspaceKind:_.optional(),workspaceId:l().nullable().optional(),workspaceName:l().nullable().optional(),localProjectId:l().nullable().optional(),cloudProjectId:l().nullable().optional(),cloudTeamId:l().nullable().optional(),currentProfile:w.nullable().optional(),profileWorkflowBinding:ge.nullable().optional(),profileComponentBinding:_e.nullable().optional(),metadata:i(l(),u()).optional(),cwd:l().nullable(),codexThreadId:l().nullable(),nativeAgent:a({provider:t([c([`claude-code`,`grok-build`,`opencode`]),te]),instanceId:l().min(1),sessionId:l().min(1),cwd:l().min(1)}).nullable().optional(),createdAt:l(),updatedAt:l(),status:c([`idle`,`active`,`failed`,`closed`]),runtimeSeconds:s().int().nonnegative().optional(),runtimeRunningSince:l().nullable().optional(),pinned:o(),savedForLater:o().optional(),archived:o(),order:s()});a({id:l(),sessionId:l(),providerTurnId:l().nullable(),modelRef:g.nullable().optional(),prompt:l(),startedAt:l(),completedAt:l().nullable(),status:c([`in_progress`,`completed`,`failed`,`interrupted`]),error:l().nullable(),metadata:i(l(),u()).optional().default({}),createImproveRun:C.nullable().optional().default(null),profileSnapshot:le.nullable().optional(),harnessSnapshot:fe.nullable().optional()});var ve=a({id:l().trim().min(1).max(191),agentId:l().trim().min(1).max(191).optional().nullable(),sourcePath:l().trim().min(1).max(2e3).optional().nullable(),sourceActionId:l().trim().min(1).max(191).optional().nullable(),name:l().trim().min(1).max(191).optional().nullable(),label:l().trim().min(1).max(160).optional().nullable(),description:l().trim().max(1e3).optional().nullable(),visibility:l().trim().max(80).optional().nullable(),inputSchema:t([l().trim().max(191),i(l(),u())]).optional().nullable(),outputSchema:t([l().trim().max(191),i(l(),u())]).optional().nullable(),approvalPolicy:i(l(),u()).optional().nullable(),artifactPolicy:i(l(),u()).optional().nullable(),setupRequirements:e(i(l(),u())).optional(),mcp:i(l(),u()).optional().nullable(),schedulePolicy:i(l(),u()).optional().nullable(),trace:i(l(),u()).optional().nullable(),implementation:i(l(),u()).optional().nullable(),invokesModel:o().optional()}),V=c([`openpond_hosted`,`local_byok`,`codex_app_server`,`unknown`]),H=c([`provider_usage`,`codex_context_usage`,`missing`]),ye=c([`provider_usage_body`,`provider_response_headers`]),be=c([`chat_turn`,`tool_loop`,`slash_command`,`create_improve_planner`,`harness_refiner`,`context_compaction`,`subagent`,`codex_context`,`other`]),xe=c([`foreground`,`tool_loop`,`compaction`,`subagent`,`refiner`,`other`]),U=c([`user_facing`,`background`,`system`]),W=c([`started`,`completed`,`failed`,`interrupted`]),G=c([`composer_selection`,`prompt_parse`,`server_parser`,`model_tool`,`api`]),K=c([`chat`,`settings`,`goal`,`create_improve`,`compaction`,`system`]),q=c([`direct_chat`,`tool_loop`,`slash_command`,`planner`,`summary`,`scan`,`subagent`,`other`]),Se=a({surface:K,workflowKind:q,sessionId:l().trim().min(1).nullable().default(null),turnId:l().trim().min(1).nullable().default(null),goalId:l().trim().min(1).nullable().default(null),subagentRunId:l().trim().min(1).nullable().default(null),subagentRoleId:l().trim().min(1).nullable().default(null),createImproveRunId:l().trim().min(1).nullable().default(null),commandName:l().trim().min(1).max(160).nullable().default(null),commandSource:G.nullable().default(null),appId:l().trim().min(1).nullable().default(null),workspaceKind:_.nullable().default(null),workspaceId:l().trim().min(1).nullable().default(null),localProjectId:l().trim().min(1).nullable().default(null),cloudProjectId:l().trim().min(1).nullable().default(null),sourceEventSequence:s().int().nonnegative().nullable().default(null)}),Ce=a({surface:K.optional(),workflowKind:q.optional(),goalId:l().trim().min(1).nullable().optional(),subagentRunId:l().trim().min(1).nullable().optional(),subagentRoleId:l().trim().min(1).nullable().optional(),createImproveRunId:l().trim().min(1).nullable().optional(),commandName:l().trim().min(1).max(160).nullable().optional(),commandSource:G.nullable().optional()}).strict(),J=l().trim().min(1).max(160),we=a({id:l().trim().min(1),requestId:l().trim().min(1),requestOrdinal:s().int().nonnegative(),sessionId:l().trim().min(1).nullable(),turnId:l().trim().min(1).nullable(),provider:J,model:l().trim().min(1),route:V,source:H,requestKind:be,visibility:U,status:W,startedAt:l().trim().min(1),completedAt:l().trim().min(1).nullable(),durationMs:s().int().nonnegative().nullable(),firstTokenMs:s().int().nonnegative().nullable(),promptTokens:s().int().nonnegative().nullable(),cachedPromptTokens:s().int().nonnegative().nullable(),uncachedPromptTokens:s().int().nonnegative().nullable(),cacheWritePromptTokens:s().int().nonnegative().nullable(),cacheTelemetrySource:ye.nullable(),completionTokens:s().int().nonnegative().nullable(),totalTokens:s().int().nonnegative().nullable(),errorType:l().trim().min(1).max(160).nullable(),errorMessage:l().trim().min(1).max(2e3).nullable(),attribution:Se}),Te=a({from:l().trim().min(1),to:l().trim().min(1),bucket:c([`day`,`all_time`])}),Y=t([r(`all`),U]),X=c([`all`,`started`,`completed`,`failed`,`interrupted`,`missing`]);a({range:c([`7d`,`30d`,`90d`,`all`]).default(`30d`),visibility:Y.default(`all`),status:X.default(`all`),provider:J.optional(),model:l().trim().min(1).optional()}).extend({sessionId:l().trim().min(1).optional(),turnId:l().trim().min(1).optional(),limit:s().int().positive().max(500).default(100)}),a({sessionId:l().trim().min(1)});var Z=a({requests:s().int().nonnegative(),promptTokens:s().int().nonnegative().nullable(),cacheTelemetryRequests:s().int().nonnegative(),cacheHitRequests:s().int().nonnegative(),cachedPromptTokens:s().int().nonnegative().nullable(),uncachedPromptTokens:s().int().nonnegative().nullable(),cacheWritePromptTokens:s().int().nonnegative().nullable(),cacheHitRate:s().min(0).max(1).nullable(),cacheRequestHitRate:s().min(0).max(1).nullable(),cacheTelemetryCoverage:s().min(0).max(1),completionTokens:s().int().nonnegative().nullable(),totalTokens:s().int().nonnegative().nullable(),averageLatencyMs:s().nonnegative().nullable(),p95LatencyMs:s().nonnegative().nullable(),averageFirstTokenMs:s().nonnegative().nullable(),p95FirstTokenMs:s().nonnegative().nullable(),failures:s().int().nonnegative(),failureRate:s().nonnegative(),firstSeenAt:l().trim().min(1),lastSeenAt:l().trim().min(1)}),Ee=Z.extend({provider:J,model:l().trim().min(1),route:V}),De=Z.extend({sessionId:l().trim().min(1),title:l().trim().min(1).nullable(),workspaceKind:_.nullable(),workspaceId:l().trim().min(1).nullable()}),Oe=Z.extend({commandName:l().trim().min(1),commandSource:G.nullable()}),ke=Z.extend({route:V}),Ae=Z.extend({status:W}),je=Z.extend({source:H}),Me=Z.extend({cohort:xe}),Ne=a({date:l().trim().min(1),totalTokens:s().int().nonnegative(),requests:s().int().nonnegative(),models:e(a({provider:J,model:l().trim().min(1),totalTokens:s().int().nonnegative(),requests:s().int().nonnegative()}))}),Pe=a({requests:s().int().nonnegative(),completedRequests:s().int().nonnegative(),failedRequests:s().int().nonnegative(),missingUsageRequests:s().int().nonnegative(),promptTokens:s().int().nonnegative().nullable(),cacheTelemetryRequests:s().int().nonnegative(),cacheHitRequests:s().int().nonnegative(),cachedPromptTokens:s().int().nonnegative().nullable(),uncachedPromptTokens:s().int().nonnegative().nullable(),cacheWritePromptTokens:s().int().nonnegative().nullable(),cacheHitRate:s().min(0).max(1).nullable(),cacheRequestHitRate:s().min(0).max(1).nullable(),cacheTelemetryCoverage:s().min(0).max(1),completionTokens:s().int().nonnegative().nullable(),totalTokens:s().int().nonnegative().nullable(),averageLatencyMs:s().nonnegative().nullable(),p95LatencyMs:s().nonnegative().nullable(),averageFirstTokenMs:s().nonnegative().nullable(),p95FirstTokenMs:s().nonnegative().nullable(),failureRate:s().nonnegative(),activeModelCount:s().int().nonnegative(),peakDailyTokens:s().int().nonnegative(),longestRequestMs:s().int().nonnegative().nullable(),activeDays:s().int().nonnegative(),currentStreakDays:s().int().nonnegative(),longestStreakDays:s().int().nonnegative()});a({generatedAt:l().trim().min(1),range:Te,filters:a({visibility:Y,status:X,provider:J.nullable(),model:l().trim().min(1).nullable()}),totals:Pe,daily:e(Ne),models:e(Ee),threads:e(De),commands:e(Oe),routes:e(ke),statuses:e(Ae),sources:e(je),cohorts:e(Me)}),a({generatedAt:l().trim().min(1),range:Te,filters:a({visibility:Y,status:X,provider:J.nullable(),model:l().trim().min(1).nullable(),sessionId:l().trim().min(1).nullable(),turnId:l().trim().min(1).nullable()}),limit:s().int().positive(),hasMore:o(),records:e(we)});var Fe=a({turnId:l().trim().min(1),requests:s().int().nonnegative(),cacheTelemetryRequests:s().int().nonnegative(),cachedPromptTokens:s().int().nonnegative().nullable(),uncachedPromptTokens:s().int().nonnegative().nullable(),cacheWritePromptTokens:s().int().nonnegative().nullable(),cacheHitRate:s().min(0).max(1).nullable(),cacheTelemetryCoverage:s().min(0).max(1),providers:e(J)});a({generatedAt:l().trim().min(1),sessionId:l().trim().min(1),turns:e(Fe)});var Ie=c([`usage_spike`,`model_usage_spike`,`latency_regression`,`failure_cluster`,`missing_usage_frames`]);a({type:Ie,title:l().trim().min(1),summary:l().trim().min(1),severity:c([`nit`,`concern`,`blocker`]),payload:i(l(),u()).default({})});var Le=c([`slack`,`microsoft_teams`,`github`,`google`,`turnkey`,`x`,`mcp`]),Re=c([`slack`,`microsoft_teams`,`github`,`google`,`turnkey`,`x`,`mcp`]),ze=c([`native_bot`,`oauth_connector`,`wallet_connector`,`mcp_endpoint`]),Be=a({kind:r(`integration`),provider:Le,appIds:e(Re).min(1).max(4),setupSurfaces:e(ze).min(1).max(4),connectionIds:e(l().trim().min(1)).max(8).optional(),capabilities:e(l().trim().min(1)).max(64).optional()}).strict(),Q={maxAttachments:10,maxAttachmentBytes:12582912,maxAttachmentBase64Chars:16777232,maxTextChars:2e5},Ve=c([`image`,`text`,`file`]),He=a({sessionId:l().trim().min(1).max(200),turnId:l().trim().min(1).max(200),attachmentId:l().trim().min(1).max(200),storageName:l().trim().min(1).max(240),contentType:l().trim().min(1).max(160)}),Ue=a({sessionId:l().trim().min(1).max(200),turnId:l().trim().min(1).max(200),attachmentId:l().trim().min(1).max(200),storageName:l().trim().min(1).max(1024),contentType:l().trim().min(1).max(160)}),$=a({id:l().trim().min(1),name:l().trim().min(1).max(240),mediaType:l().trim().min(1).max(160),sizeBytes:s().int().nonnegative().max(Q.maxAttachmentBytes),kind:Ve,lineCount:s().int().nonnegative().max(Q.maxAttachmentBytes+1).optional(),relativePath:l().trim().min(1).max(1024).optional(),text:l().max(Q.maxTextChars).optional(),contentsBase64:l().max(Q.maxAttachmentBase64Chars).optional()}),We=$.omit({text:!0,contentsBase64:!0}).extend({imagePreview:He.optional(),filePreview:Ue.optional()});a({experience:T.optional(),provider:S.default(ce),modelRef:g.optional(),openPondCommandAccessMode:y.optional(),systemKind:z.nullable().optional(),hiddenFromDefaultSidebar:o().optional(),parentSessionId:l().trim().min(1).max(200).nullable().optional(),parentTurnId:l().trim().min(1).max(200).nullable().optional(),subagentRunId:l().trim().min(1).max(200).nullable().optional(),subagentRoleId:h.nullable().optional(),subagentDelegationMode:v.nullable().optional(),appId:l().nullable().optional(),appName:l().nullable().optional(),workspaceKind:_.optional(),workspaceId:l().nullable().optional(),workspaceName:l().nullable().optional(),localProjectId:l().nullable().optional(),cloudProjectId:l().nullable().optional(),cloudTeamId:l().nullable().optional(),currentProfile:w.nullable().optional(),profileWorkflowBinding:B.shape.profileWorkflowBinding,profileComponentBinding:B.shape.profileComponentBinding,metadata:i(l(),u()).optional(),cwd:l().nullable().optional(),title:l().optional(),autoTitlePrompt:l().trim().min(1).max(2e4).optional()}),a({teamId:l().trim().min(1),projectName:l().trim().min(1).max(120).optional(),branch:l().trim().min(1).max(120).optional(),chatSessionId:l().trim().min(1).max(200).optional(),displayPrompt:l().trim().min(1).max(2e3).optional()}),a({branch:l().trim().min(1).max(120).optional()});var Ge=a({prompt:l().min(1),workflowInput:u().optional(),metadata:i(l(),u()).optional(),usageAttribution:Ce.optional().nullable(),cwd:l().nullable().optional(),model:l().nullable().optional(),modelRef:g.optional(),mentionedAppIds:e(l().trim().min(1)).max(8).optional(),mentionedConnectedApps:e(Be).max(8).optional(),openPondActionCatalog:e(ve).max(100).optional(),attachments:e($).max(Q.maxAttachments).optional(),createImproveRun:C.optional().nullable(),approvalPolicy:c([`untrusted`,`on-failure`,`on-request`,`never`]).default(`on-request`),sandbox:c([`read-only`,`workspace-write`,`danger-full-access`]).default(`workspace-write`),codexPermissionMode:b.default(`default`),codexReasoningEffort:x.optional()});a({prompt:l().min(1),error:l().min(1),target:c([`cloud_workspace`,`hybrid_sandbox`])}),a({reason:c([`manual`]).default(`manual`),model:l().nullable().optional(),modelRef:g.optional()}),a({hiddenFromDefaultSidebar:o().optional(),experience:T.optional(),provider:S.optional(),modelRef:g.nullable().optional(),openPondCommandAccessMode:y.optional(),pinned:o().optional(),savedForLater:o().optional(),archived:o().optional(),order:s().optional(),title:l().optional(),parentSessionId:l().trim().min(1).max(200).nullable().optional(),parentTurnId:l().trim().min(1).max(200).nullable().optional(),subagentRunId:l().trim().min(1).max(200).nullable().optional(),subagentRoleId:h.nullable().optional(),subagentDelegationMode:v.nullable().optional(),appId:l().nullable().optional(),appName:l().nullable().optional(),workspaceKind:_.optional(),workspaceId:l().nullable().optional(),workspaceName:l().nullable().optional(),localProjectId:l().nullable().optional(),cloudProjectId:l().nullable().optional(),cloudTeamId:l().nullable().optional(),currentProfile:w.nullable().optional(),metadata:i(l(),u()).optional(),cwd:l().nullable().optional()}),a({command:l().trim().min(1),cwd:l().trim().min(1).max(4096).nullable().optional(),timeoutSeconds:s().int().min(1).max(3600).optional()}),a({appIds:e(l()).min(1)}),a({expectedRevision:l().optional(),defaultChatProvider:S.optional(),defaultChatModel:l().min(1).optional(),defaultChatModelRef:g.nullable().optional(),subagents:ne.optional(),codexPermissionMode:b.optional(),codexReasoningEffort:x.optional(),openPondCommandAccessMode:y.optional(),defaultBranchPrefix:l().trim().max(48).optional(),defaultNewProjectDirectory:l().trim().max(4096).optional(),defaultTeamId:l().trim().max(191).nullable().optional(),advancedWorkspaceControls:o().optional(),steerActiveResponses:o().optional(),contextCompaction:ae.optional(),training:ie.optional(),sidebarWidth:s().int().min(244).max(560).optional(),diffPanelWidth:s().int().min(320).max(2400).optional(),sidebarSectionsCollapsed:oe.optional(),editor:re.optional()}),a({message:l().trim().min(1).max(4e3),surface:l().trim().min(1).max(120).default(`app`),stack:l().max(12e3).nullable().optional(),context:i(l(),u()).optional()}).strict(),a({activeTemplateId:se,templateName:l().trim().min(1).max(80),soul:l().trim().min(1).max(8e3),saveAsNew:o().optional().default(!1)}),a({decision:c([`accept`,`acceptForSession`,`decline`,`cancel`]),answers:i(l().min(1).max(2e3),l().trim().min(1).max(8e3)).optional()}),a({branch:l().trim().min(1).max(240).nullable().optional(),surface:c([`desktop`,`terminal`])}),a({handle:l().min(1),baseUrl:l().nullable().optional()}),a({handle:l().min(1),baseUrl:l().nullable().optional()}),a({handle:l().min(1).optional(),apiKey:l().min(1),baseUrl:l().nullable().optional(),apiBaseUrl:l().nullable().optional(),chatApiBaseUrl:l().nullable().optional(),environment:l().nullable().optional(),setActive:o().optional()}),a({handle:l().min(1),currentBaseUrl:l().nullable().optional(),apiKey:l().min(1).optional(),baseUrl:l().nullable().optional(),apiBaseUrl:l().nullable().optional(),chatApiBaseUrl:l().nullable().optional(),environment:l().nullable().optional(),setActive:o().optional()});export{B as a,Ge as i,$ as n,We as r,Q as t};
@@ -1,4 +1,4 @@
1
- import{a as e,c as t,d as n,m as r,o as i,p as a,r as o,v as s}from"./schemas-lO3MoWQr.js";import{c,d as l,f as u,o as d,r as f,s as p}from"./common-BMjyKlX-.js";import{M as m,V as h}from"./chunk-H3JZ3P5T-B0SCoPw4.js";import{B as g,F as _,M as v,R as y,U as b,V as x,j as S,o as C,r as w,w as T,z as E}from"./contracts-BHTOD1nd.js";var D=r({schemaVersion:n(`openpond.learningTextAsset.v1`),id:p,revision:n(1),asset:f,text:s().max(524288)}).strict().superRefine((e,t)=>{e.asset.id!==e.id&&t.addIssue({code:`custom`,path:[`asset`,`id`],message:`Asset identity must match the stored resource.`}),(e.asset.sizeBytes!==new TextEncoder().encode(e.text).byteLength||e.asset.sizeBytes>524288)&&t.addIssue({code:`custom`,path:[`asset`,`sizeBytes`],message:`Authored source must match its byte count and fit within 512 KiB.`}),e.asset.contentHash!==u(e.text)&&t.addIssue({code:`custom`,path:[`asset`,`contentHash`],message:`Asset source does not match its SHA-256.`})}),O=D.safeExtend({contentHash:d}).strict();function k(e){h(e);let{text:t,...n}=e,r=u(t),i=`asset-${r}-${l(n).slice(0,16)}`,a=D.parse({schemaVersion:`openpond.learningTextAsset.v1`,id:i,revision:1,asset:{...n,id:i,contentHash:r,sizeBytes:new TextEncoder().encode(t).byteLength},text:t});return O.parse({...a,contentHash:l(a)})}function A(e,t){let{contentHash:n,...r}=O.parse(e);if(l(r)!==n||l(r.asset)!==l(t))throw new b(`learning_asset_reference_mismatch`,409);return r.text}var j=r({id:p,name:s().max(500),input:s(),output:s(),expectedOutput:s(),evaluatorContext:s(),artifactRefs:e(s().max(500)).max(100),runtimeEventRefs:e(s().max(500)).max(100),infrastructureError:s().max(2e4),expectedStatus:o([`scored`,`pending`,`unavailable`,`failed`]),minimumScore:s(),maximumScore:s(),expectedPassed:o([`true`,`false`,`any`]),sourceLabel:r({evidence:C,feedback:r({id:p,revision:a().int().positive()}).strict()}).strict().optional()}).strict(),M=r({name:s().max(500),description:s().max(1e4),feedbackKey:v.optional(),kind:o([`custom_verifier`,`state`,`content`,`schema`,`artifact`,`runtime_event`,`model_judge`,`learned_model`,`human`]),fields:s(),outputField:s(),expectedField:s(),expectedValue:s(),schema:s(),reference:s(),events:s(),code:s(),exportName:s(),timeout:s(),verifierRuntime:o([`isolated_javascript`,`sandbox_process`]).optional(),rubric:s(),providerId:s(),modelId:s(),modelRevision:s(),temperature:s(),reviewerRole:s(),humanForm:s().max(131072).optional(),learnedId:s(),learnedHash:s(),inputContract:s(),minimum:s(),maximum:s(),fixtures:e(j).max(50).optional()}).strict(),N=r({name:s().max(500),description:s().max(1e4),instructions:s().max(2e4),input:s(),output:s(),familyNamespace:s(),sources:e(_).max(100),recipeRef:y.optional()}).strict(),P=r({name:s().max(500),description:s().max(1e4),sources:e(_).max(100)}).strict(),F=o([`definition`,`reward`,`binding`]),I=r({id:p,targetId:p,baseRelease:C.nullable(),editorVersion:n(`openpond.modelsEditor.v1`)}),L=t(`targetKind`,[I.extend({targetKind:n(`definition`),fields:N}).strict(),I.extend({targetKind:n(`reward`),fields:M}).strict(),I.extend({targetKind:n(`binding`),fields:P}).strict()]),R={schemaVersion:n(`openpond.authoringDraft.v1`),revision:a().int().positive(),status:o([`draft`,`archived`,`published`]),publishedRelease:C.nullable(),createdAt:c,updatedAt:c},z=t(`targetKind`,[L.options[0].extend(R).strict(),L.options[1].extend(R).strict(),L.options[2].extend(R).strict()]),B=t(`targetKind`,[z.options[0].extend({contentHash:d}).strict(),z.options[1].extend({contentHash:d}).strict(),z.options[2].extend({contentHash:d}).strict()]),V=r({draft:C,targetKind:F,release:C}).strict(),H=`export function verify({ output, expectedOutput }) {
1
+ import{a as e,c as t,d as n,m as r,o as i,p as a,r as o,v as s}from"./schemas-lO3MoWQr.js";import{c,d as l,f as u,o as d,r as f,s as p}from"./common-BMjyKlX-.js";import{M as m,V as h}from"./chunk-H3JZ3P5T-B0SCoPw4.js";import{B as g,F as _,M as v,R as y,U as b,V as x,j as S,o as C,r as w,w as T,z as E}from"./contracts-BLiqJxBv.js";var D=r({schemaVersion:n(`openpond.learningTextAsset.v1`),id:p,revision:n(1),asset:f,text:s().max(524288)}).strict().superRefine((e,t)=>{e.asset.id!==e.id&&t.addIssue({code:`custom`,path:[`asset`,`id`],message:`Asset identity must match the stored resource.`}),(e.asset.sizeBytes!==new TextEncoder().encode(e.text).byteLength||e.asset.sizeBytes>524288)&&t.addIssue({code:`custom`,path:[`asset`,`sizeBytes`],message:`Authored source must match its byte count and fit within 512 KiB.`}),e.asset.contentHash!==u(e.text)&&t.addIssue({code:`custom`,path:[`asset`,`contentHash`],message:`Asset source does not match its SHA-256.`})}),O=D.safeExtend({contentHash:d}).strict();function k(e){h(e);let{text:t,...n}=e,r=u(t),i=`asset-${r}-${l(n).slice(0,16)}`,a=D.parse({schemaVersion:`openpond.learningTextAsset.v1`,id:i,revision:1,asset:{...n,id:i,contentHash:r,sizeBytes:new TextEncoder().encode(t).byteLength},text:t});return O.parse({...a,contentHash:l(a)})}function A(e,t){let{contentHash:n,...r}=O.parse(e);if(l(r)!==n||l(r.asset)!==l(t))throw new b(`learning_asset_reference_mismatch`,409);return r.text}var j=r({id:p,name:s().max(500),input:s(),output:s(),expectedOutput:s(),evaluatorContext:s(),artifactRefs:e(s().max(500)).max(100),runtimeEventRefs:e(s().max(500)).max(100),infrastructureError:s().max(2e4),expectedStatus:o([`scored`,`pending`,`unavailable`,`failed`]),minimumScore:s(),maximumScore:s(),expectedPassed:o([`true`,`false`,`any`]),sourceLabel:r({evidence:C,feedback:r({id:p,revision:a().int().positive()}).strict()}).strict().optional()}).strict(),M=r({name:s().max(500),description:s().max(1e4),feedbackKey:v.optional(),kind:o([`custom_verifier`,`state`,`content`,`schema`,`artifact`,`runtime_event`,`model_judge`,`learned_model`,`human`]),fields:s(),outputField:s(),expectedField:s(),expectedValue:s(),schema:s(),reference:s(),events:s(),code:s(),exportName:s(),timeout:s(),verifierRuntime:o([`isolated_javascript`,`sandbox_process`]).optional(),rubric:s(),providerId:s(),modelId:s(),modelRevision:s(),temperature:s(),reviewerRole:s(),humanForm:s().max(131072).optional(),learnedId:s(),learnedHash:s(),inputContract:s(),minimum:s(),maximum:s(),fixtures:e(j).max(50).optional()}).strict(),N=r({name:s().max(500),description:s().max(1e4),instructions:s().max(2e4),input:s(),output:s(),familyNamespace:s(),sources:e(_).max(100),recipeRef:y.optional()}).strict(),P=r({name:s().max(500),description:s().max(1e4),sources:e(_).max(100)}).strict(),F=o([`definition`,`reward`,`binding`]),I=r({id:p,targetId:p,baseRelease:C.nullable(),editorVersion:n(`openpond.modelsEditor.v1`)}),L=t(`targetKind`,[I.extend({targetKind:n(`definition`),fields:N}).strict(),I.extend({targetKind:n(`reward`),fields:M}).strict(),I.extend({targetKind:n(`binding`),fields:P}).strict()]),R={schemaVersion:n(`openpond.authoringDraft.v1`),revision:a().int().positive(),status:o([`draft`,`archived`,`published`]),publishedRelease:C.nullable(),createdAt:c,updatedAt:c},z=t(`targetKind`,[L.options[0].extend(R).strict(),L.options[1].extend(R).strict(),L.options[2].extend(R).strict()]),B=t(`targetKind`,[z.options[0].extend({contentHash:d}).strict(),z.options[1].extend({contentHash:d}).strict(),z.options[2].extend({contentHash:d}).strict()]),V=r({draft:C,targetKind:F,release:C}).strict(),H=`export function verify({ output, expectedOutput }) {
2
2
  if (!expectedOutput || !Object.hasOwn(expectedOutput, "answer")) {
3
3
  throw new Error("An expected answer is required.");
4
4
  }
@@ -1 +1 @@
1
- import{t as e}from"./createLucideIcon-DmttVQ_a.js";var t=e(`save`,[[`path`,{d:`M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z`,key:`1c8476`}],[`path`,{d:`M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7`,key:`1ydtos`}],[`path`,{d:`M7 3v4a1 1 0 0 0 1 1h7`,key:`t51u73`}]]);export{t};
1
+ import{t as e}from"./createLucideIcon-CXQny8HU.js";var t=e(`save`,[[`path`,{d:`M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z`,key:`1c8476`}],[`path`,{d:`M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7`,key:`1ydtos`}],[`path`,{d:`M7 3v4a1 1 0 0 0 1 1h7`,key:`t51u73`}]]);export{t};
@@ -0,0 +1,21 @@
1
+ import{a as e,b as t,d as n,g as r,m as i,o as a,p as o,r as s,v as c,x as l,y as u}from"./schemas-lO3MoWQr.js";import{o as d,s as f}from"./common-BMjyKlX-.js";var p=i({provider:f,model:f,revision:c().trim().min(1).max(500).nullable().default(null),artifactHash:d.nullable().default(null),tokenizerRevision:c().trim().min(1).max(500).nullable().default(null),chatTemplateHash:d.nullable().default(null)}).strict(),ee=[`openpond`,`codex`,`claude-code`,`grok-build`,`opencode`,`anthropic`,`openai`,`xai`,`google`,`openrouter`,`deepseek`,`zai`,`moonshot`,`together`,`groq`,`custom-openai-compatible`],m=u([`acp:`,c().regex(/^[a-z0-9][a-z0-9-]{0,100}$/)]),h=t([s(ee),m]);function g(e){return/^acp:[a-z0-9][a-z0-9-]{0,100}$/.test(e)}var _=i({providerId:h,modelId:c().trim().min(1).max(300)});s([`coding`,`research`,`review`,`test`,`docs`,`planner`,`summarizer`]);var v=c().trim().min(1).max(80).regex(/^[a-z][a-z0-9_-]*$/),y=s([`none`,`worktree`,`copy_on_write`]),b=s([`read_only`,`workspace_write`,`full_tools`]),x=s([`disabled`,`parent_scoped`]),S=s([`manual`,`balanced`,`proactive`]),C=s([`queued`,`running`,`completed`,`failed`,`cancelled`,`needs_resume`]),w=[`subagent.started`,`subagent.reported`,`subagent.completed`,`subagent.progress`,`subagent.failed`,`subagent.cancelled`,`subagent.cleanup`,`subagent.workspace_retained`,`subagent.workspace_retention_expiring`,`subagent.archived`,`subagent.message`];s(w);var T=[{id:`coding`,label:`Coding`,description:`Make scoped code changes and return patch, diff, and test evidence.`,defaultToolPolicy:`full_tools`},{id:`research`,label:`Research`,description:`Inspect docs, code, web or repo context and return cited findings.`,defaultToolPolicy:`full_tools`},{id:`review`,label:`Review`,description:`Inspect diffs or implementation plans and return ranked findings.`,defaultToolPolicy:`full_tools`},{id:`test`,label:`Test`,description:`Run or design validation in isolation and return command evidence.`,defaultToolPolicy:`full_tools`},{id:`docs`,label:`Docs`,description:`Update or draft project documentation in an isolated target.`,defaultToolPolicy:`full_tools`},{id:`planner`,label:`Planner`,description:`Decompose a goal into child assignments and context packs.`,defaultToolPolicy:`full_tools`},{id:`summarizer`,label:`Summarizer`,description:`Compact transcripts, child results, and goal state for parent context.`,defaultToolPolicy:`full_tools`}],E=i({id:v,enabled:a().default(!0),modelRef:_.nullable().default(null),isolationMode:y.default(`none`),maxConcurrentRuns:o().int().min(1).max(16).default(1),toolPolicy:b.default(`read_only`),background:a().default(!0),peerMessages:x.default(`parent_scoped`)}),D=i({enabled:a().default(!0),workspaceDefaultsVersion:n(1).default(1),toolDefaultsVersion:n(1).default(1),delegationMode:S.default(`manual`),defaultModelRef:_.nullable().default(null),roles:e(E).max(64).default(()=>I()),maxConcurrentRuns:o().int().min(1).max(32).default(4),maxConcurrentRunsPerProvider:o().int().min(1).max(32).nullable().default(2),maxConcurrentRunsPerWorkspaceTarget:o().int().min(1).max(32).nullable().default(1)}).transform(e=>({...e,roles:oe(e.roles)})),O=i({kind:s([`session`,`turn`,`file`,`diff`,`artifact`]),id:c().trim().min(1).max(500),label:c().trim().min(1).max(500)}),k=i({kind:s([`retain_with_parent`]).default(`retain_with_parent`),messageRetentionDays:o().int().min(1).max(3650).nullable().default(null),artifactRetentionDays:o().int().min(1).max(3650).nullable().default(null),cleanupAfterExpiry:a().default(!1)}).default(()=>({kind:`retain_with_parent`,messageRetentionDays:null,artifactRetentionDays:null,cleanupAfterExpiry:!1})),A=s([`orient`,`edit`,`validate`,`report`]),j=i({command:c().trim().min(1).max(2e3),status:s([`passed`,`failed`,`unknown`]).default(`unknown`),exitCode:o().int().nullable().default(null),outputSummary:c().trim().max(5e3).nullable().default(null),startedAt:c().nullable().default(null),completedAt:c().nullable().default(null)}),M=i({phase:A.default(`orient`),inspectedFiles:e(c().trim().min(1).max(1e3)).max(500).default([]),inspectedResources:e(c().trim().min(1).max(1e3)).max(500).default([]),repeatedSearches:e(c().trim().min(1).max(1e3)).max(200).default([]),repeatedReads:e(c().trim().min(1).max(1e3)).max(200).default([]),repeatedCommands:e(c().trim().min(1).max(1e3)).max(200).default([]),changedFiles:e(c().trim().min(1).max(1e3)).max(500).default([]),patchRefs:e(O).max(100).default([]),validationAttempts:e(j).max(100).default([]),latestMeaningfulActivity:c().trim().max(5e3).nullable().default(null),currentBlocker:c().trim().max(5e3).nullable().default(null),updatedAt:c().nullable().default(null)}).default(()=>({phase:`orient`,inspectedFiles:[],inspectedResources:[],repeatedSearches:[],repeatedReads:[],repeatedCommands:[],changedFiles:[],patchRefs:[],validationAttempts:[],latestMeaningfulActivity:null,currentBlocker:null,updatedAt:null})),N=i({summary:c().trim().max(2e4).default(``),findings:e(c().trim().min(1).max(5e3)).max(200).default([]),artifacts:e(O).max(200).default([]),patchRef:O.nullable().default(null),diffRef:O.nullable().default(null),testsRun:e(c().trim().min(1).max(2e3)).max(100).default([]),blockers:e(c().trim().min(1).max(5e3)).max(100).default([]),confidence:s([`low`,`medium`,`high`]).nullable().default(null),followUpNeeded:a().default(!1)}),P=i({id:c().trim().min(1).max(200),parentSessionId:c().trim().min(1).max(200),parentTurnId:c().trim().min(1).max(200).nullable().default(null),childSessionId:c().trim().min(1).max(200).nullable().default(null),roleId:v,objective:c().trim().min(1).max(5e4),modelRef:_.nullable().default(null),isolationMode:y.default(`none`),toolPolicy:b.default(`read_only`),background:a().default(!0),peerMessages:x.default(`parent_scoped`),status:C.default(`queued`),progress:M,evidenceRetention:k,createdAt:c(),startedAt:c().nullable().default(null),completedAt:c().nullable().default(null),updatedAt:c().nullable().default(null),error:c().nullable().default(null),report:N.nullable().default(null),metadata:r(c(),l()).optional().default({})}),F=s([`cleanup`,`archive`,`cleanup_and_archive`]);i({action:F,reason:c().trim().min(1).max(2e3).nullable().default(null)}),i({action:F,run:P,workspaceCleanup:r(c(),l()).nullable().default(null),sessionArchive:r(c(),l()).nullable().default(null),nextStep:c()});var te=s([`question`,`answer`,`handoff`,`artifact`,`status`,`blocker`]),ne=s([`normal`,`interrupt`]),re=i({inputIds:e(c()).default([]),status:s([`pending`,`delivered`,`undelivered`]).default(`pending`),deliveredRunIds:e(c().trim().min(1).max(200)).max(200).default([]),acknowledgedRunIds:e(c().trim().min(1).max(200)).max(200).default([]),deliveredParentSessionId:c().trim().min(1).max(200).nullable().default(null),acknowledgedParentSessionId:c().trim().min(1).max(200).nullable().default(null),wakeRequestedParentSessionId:c().trim().min(1).max(200).nullable().default(null),wakeQueuedParentSessionId:c().trim().min(1).max(200).nullable().default(null),wakeDeferredParentSessionId:c().trim().min(1).max(200).nullable().default(null),wakeParentReason:c().trim().min(1).max(1e3).nullable().default(null),wakeRequestedRunIds:e(c().trim().min(1).max(200)).max(200).default([]),wakeInterruptedRunIds:e(c().trim().min(1).max(200)).max(200).default([]),wakeDeferredRunIds:e(c().trim().min(1).max(200)).max(200).default([]),reason:c().trim().min(1).max(1e3).nullable().default(null)}),ie=i({id:c().trim().min(1).max(200),fromRunId:c().trim().min(1).max(200),toRunId:c().trim().min(1).max(200).nullable().default(null),toRole:v.nullable().default(null),kind:te,priority:ne.optional(),body:c().trim().min(1).max(5e4),refs:e(O).max(100).default([]),delivery:re.optional(),createdAt:c()});function I(){return T.map(e=>E.parse({id:e.id,toolPolicy:e.defaultToolPolicy}))}function ae(){return D.parse({})}function oe(e){let t=I(),n=new Map(t.map(e=>[e.id,e])),r=[];for(let t of e??[]){let e=E.parse(t);n.has(e.id)?n.set(e.id,e):r.push(e)}return[...t.map(e=>n.get(e.id)??e),...r]}var se=`gpt-5.6-sol`,L=`openpond-chat`,R=`openpond`,z=L,B=`default`,V=`high`,H=h,U=s([`default`,`auto-review`,`full-access`]),W=s([`ask`,`full-access`,`disabled`]),G=s([`off`,`low`,`medium`,`high`,`xhigh`,`max`]),ce=s([`sandbox_app`,`local_project`,`sandbox`,`sandbox_template`]);s([`openpond`]);var le=s([`provider_usage`,`provider_tokenizer`,`model_family`,`heuristic`]),ue=i({provider:H,model:c().min(1),usedTokens:o().int().nonnegative(),maxContextTokens:o().int().positive(),usableContextTokens:o().int().positive(),percentFull:o().min(0).max(100),source:le,updatedAtEventId:c().nullable()}),K=i({pinned:a().default(!1),projects:a().default(!1),cloudProjects:a().default(!1),chats:a().default(!1),savedForLater:a().default(!0)}),de=s([`auto`,`off`]),fe=s([`typescript`,`python`,`rust`]),q=s([`auto`,`disabled`,`custom`]),J=i({mode:q.default(`auto`),customCommand:c().trim().max(4096).default(``)}),Y=i({languageServers:de.default(`auto`),diagnosticsWhileEditing:a().default(!0),checkOnSave:a().default(!0),languages:i({typescript:J.optional().default(()=>J.parse({})),python:J.optional().default(()=>J.parse({})),rust:J.optional().default(()=>J.parse({}))}).optional().default(()=>({typescript:J.parse({}),python:J.parse({}),rust:J.parse({})}))}),X=i({language:fe,label:c(),mode:q,status:s([`found`,`missing`,`disabled`,`error`]),command:c().nullable(),message:c().nullable()});i({settings:Y,languages:e(X),updatedAt:c()});var pe=i({id:c(),root:c(),status:s([`starting`,`connected`,`unavailable`,`error`]),message:c().nullable().optional().default(null),openedDocuments:o().int().nonnegative(),pendingRequests:o().int().nonnegative(),lastUsedAt:c(),stderrTail:c()});i({clients:e(pe),maxClients:o().int().positive(),idleTimeoutMs:o().int().positive(),updatedAt:c()});var Z=i({autoEnabled:a().default(!0),triggerPercent:o().int().min(50).max(95).default(85),summaryModel:s([`same_model`]).default(`same_model`)}),Q=i({defaultModelRef:_.nullable().default(null),creationMode:s([`defaults`,`customize`]).default(`customize`),autoApproveEvidence:a().default(!1)});i({defaultChatProvider:H.default(R),defaultChatModel:c().min(1).default(z),defaultChatModelRef:_.nullable().optional(),subagents:D.optional().default(()=>D.parse({})),codexPermissionMode:U.default(B),codexReasoningEffort:G.default(V),openPondCommandAccessMode:W.default(`ask`),defaultBranchPrefix:c().trim().max(48).default(`feat/`),defaultNewProjectDirectory:c().trim().max(4096).default(``),defaultTeamId:c().trim().max(191).nullable().default(null),advancedWorkspaceControls:a().default(!1),steerActiveResponses:a().default(!0),contextCompaction:Z.optional().default(()=>Z.parse({})),training:Q.optional().default(()=>Q.parse({})),sidebarWidth:o().int().min(244).max(560).default(332),diffPanelWidth:o().int().min(320).max(2400).default(560),sidebarSectionsCollapsed:K.optional().default(()=>K.parse({})),editor:Y.optional().default(()=>Y.parse({}))});var me=`default`,he=[{id:`default`,name:`Balanced`,source:`built_in`,description:`Clear, useful, and concise.`,content:`You are OpenPond Chat, a clear and useful AI assistant.
2
+ Be concise, accurate, and direct.
3
+ Do not use emojis.
4
+ Ask only when missing information would materially change the answer.
5
+ Prioritize practical next steps.`},{id:`pragmatic`,name:`Pragmatic`,source:`built_in`,description:`Direct, practical, and engineering-minded.`,content:`You are a pragmatic AI assistant with strong engineering judgment.
6
+ Be direct, concrete, and outcome-focused.
7
+ Do not use emojis.
8
+ Prefer simple working solutions over clever abstractions.
9
+ Call out weak assumptions plainly.`},{id:`friendly`,name:`Friendly`,source:`built_in`,description:`Warm, conversational, and approachable.`,content:`You are a friendly AI assistant.
10
+ Use a warm, conversational tone without filler.
11
+ Do not use emojis.
12
+ Explain decisions clearly and keep the user moving.
13
+ Be patient when clarifying tradeoffs.`},{id:`formal`,name:`Formal`,source:`built_in`,description:`Polished, careful, and professional.`,content:`You are a formal AI assistant.
14
+ Use precise, professional language.
15
+ Do not use emojis.
16
+ Structure answers clearly and avoid casual phrasing.
17
+ State uncertainty and assumptions explicitly.`},{id:`technical`,name:`Technical`,source:`built_in`,description:`Precise, detailed, and implementation-focused.`,content:`You are a technical AI assistant.
18
+ Prioritize correctness, implementation detail, and edge cases.
19
+ Do not use emojis.
20
+ Use concise explanations, but include necessary specifics.
21
+ Surface risks, constraints, and verification steps.`}],$=c().trim().min(1).max(120),ge=i({id:$,name:c(),source:s([`built_in`,`custom`]).default(`custom`),description:c(),content:c()});i({activeTemplateId:$.default(me),customized:a().default(!1),soul:c(),soulPath:c().nullable(),updatedAt:c().nullable(),templates:e(ge).default(()=>[...he])}),i({id:c(),host:c(),port:o(),startedAt:c(),storePath:c(),version:c(),runtimeVersion:c()});export{g as A,v as C,_ as D,m as E,p as O,D as S,ae as T,ce as _,ue as a,S as b,se as c,L as d,W as f,Y as g,Q as h,Z as i,h as k,B as l,K as m,U as n,z as o,$ as p,G as r,R as s,H as t,V as u,T as v,P as w,ie as x,w as y};
@@ -1,5 +1,5 @@
1
- import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{g as t,m as n}from"./index-DYrLeSyY.js";import{k as r}from"./settings-BKmRueaw.js";import{N as i,S as a,g as o,v as s}from"./app-models-BviS9b7U.js";import{n as c}from"./api-client-Dgz-fOMl.js";import"./icons-CK5-nxVC.js";import{t as l}from"./createLucideIcon-DmttVQ_a.js";import{F as u}from"./training-model-data-14942K_Z.js";import{t as d}from"./loader-circle-cyf35w3i.js";import{t as f}from"./plus-DoJe4fLj.js";import{t as p}from"./refresh-cw-B53QjxMO.js";import{t as m}from"./save-V1Q4Fcqa.js";import{t as h}from"./x-IPhrr4ju.js";import{a as g}from"./AppToastContext-DZLErwj0.js";import{t as _}from"./NativeSetupTerminal-CNHTByLo.js";import{t as v}from"./AppDialog-BurL61qE.js";import{Bt as y,Ft as b,Ht as x,St as S,_t as C,fn as w,gt as T,pn as E,t as D,wn as O}from"./App-DHJVXTI2.js";var k=l(`key-round`,[[`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`}]]),A=e(t(),1),j=n();function M({connection:e,onChanged:t,onAdded:n}){let r=(0,A.useId)(),[i,a]=(0,A.useState)(!1),[o,s]=(0,A.useState)(!1),[l,u]=(0,A.useState)(null),[m,g]=(0,A.useState)(0),[_,y]=(0,A.useState)(``),[b,S]=(0,A.useState)(null),[C,w]=(0,A.useState)(``),[T,E]=(0,A.useState)(``),[D,O]=(0,A.useState)(``),[k,M]=(0,A.useState)(``),[N,P]=(0,A.useState)(`[]`),[F,I]=(0,A.useState)(`{}`),[L,R]=(0,A.useState)(!1),[z,B]=(0,A.useState)(!1),[V,H]=(0,A.useState)(null);(0,A.useEffect)(()=>{if(!i||o||!e)return;let t=new AbortController;return R(!0),H(null),c(e,`/v1/providers/acp-registry${m?`?refresh=true`:``}`,{signal:t.signal}).then(e=>{t.signal.aborted||(u(e),S(null))}).catch(e=>{t.signal.aborted||H(e instanceof Error?e.message:`Could not load ACP registry.`)}).finally(()=>{t.signal.aborted||R(!1)}),()=>t.abort()},[i,o,e,m]);let U=b?[b.distribution.binary?.[l?.platform??``]?`binary`:null,b.distribution.npx?`npx`:null,b.distribution.uvx?`uvx`:null].filter(e=>!!e):[],W=l?.agents.filter(e=>`${e.name} ${e.id} ${e.description}`.toLowerCase().includes(_.trim().toLowerCase()))??[],G=U.includes(C)?C:U[0],K=G===`binary`?b?.distribution.binary?.[l?.platform??``]:G===`npx`?b?.distribution.npx:b?.distribution.uvx;async function q(r){if(r.preventDefault(),e&&!z){B(!0),H(null);try{let r=o?{custom:{displayName:D.trim(),command:k.trim(),args:JSON.parse(N),env:JSON.parse(F)}}:{registryId:b?.id,version:b?.version,distribution:G,displayName:T.trim()||b?.name},i=await c(e,`/v1/providers/acp-registry`,{method:`POST`,body:JSON.stringify(r)});t(i.settings),n(i.providerId),a(!1),S(null),E(``),O(``),M(``),P(`[]`),I(`{}`)}catch(e){H(e instanceof Error?e.message:`Could not add ACP agent.`)}finally{B(!1)}}}function J(){z||a(!1)}return(0,j.jsxs)(j.Fragment,{children:[(0,j.jsxs)(`button`,{type:`button`,className:`settings-secondary acp-add-button`,disabled:!e||z,onClick:()=>a(!0),children:[(0,j.jsx)(f,{size:16,"aria-hidden":`true`}),` ACP Agent`]}),i?(0,j.jsxs)(v,{ariaLabel:`Add ACP agent`,backdropClassName:`git-dialog-backdrop provider-dialog-backdrop`,className:`git-dialog provider-details-dialog acp-agent-dialog`,dismissDisabled:z,onClose:J,children:[(0,j.jsx)(`button`,{type:`button`,className:`git-dialog-close`,"aria-label":`Close`,disabled:z,onClick:J,children:(0,j.jsx)(h,{size:18})}),(0,j.jsx)(`div`,{className:`provider-dialog-header`,children:(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`h2`,{children:`Add ACP agent`}),(0,j.jsx)(`span`,{children:`Choose from the registry or register your own agent.`})]})}),(0,j.jsxs)(`div`,{className:`surface-tabs`,role:`tablist`,"aria-label":`Agent registration`,onKeyDown:e=>{if(z||![`ArrowLeft`,`ArrowRight`,`Home`,`End`].includes(e.key))return;e.preventDefault();let t=e.key===`Home`?!1:e.key===`End`||!o;s(t),H(null),e.currentTarget.querySelectorAll(`[role="tab"]`)[+!!t]?.focus()},children:[(0,j.jsx)(`button`,{type:`button`,role:`tab`,id:`${r}-registry-tab`,"aria-controls":`${r}-panel`,"aria-selected":!o,tabIndex:o?-1:0,disabled:z,onClick:()=>{s(!1),H(null)},children:`Registry`}),(0,j.jsx)(`button`,{type:`button`,role:`tab`,id:`${r}-custom-tab`,"aria-controls":`${r}-panel`,"aria-selected":o,tabIndex:o?0:-1,disabled:z,onClick:()=>{s(!0),H(null)},children:`Custom agent`})]}),(0,j.jsxs)(`div`,{className:`provider-dialog-body`,role:`tabpanel`,id:`${r}-panel`,"aria-labelledby":`${r}-${o?`custom`:`registry`}-tab`,children:[(0,j.jsx)(`p`,{children:o?`Register an installed agent using its ACP executable and launch settings.`:`Browse agents from the Agent Client Protocol registry.`}),V?(0,j.jsx)(x,{error:V}):null,(0,j.jsxs)(`form`,{className:`provider-card-form`,onSubmit:e=>void q(e),children:[o?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsxs)(`label`,{className:`settings-select-field`,children:[(0,j.jsx)(`span`,{children:`Name`}),(0,j.jsx)(`input`,{required:!0,maxLength:160,value:D,disabled:z,onChange:e=>O(e.target.value),placeholder:`My ACP agent`})]}),(0,j.jsxs)(`label`,{className:`settings-select-field`,children:[(0,j.jsx)(`span`,{children:`ACP executable`}),(0,j.jsx)(`input`,{required:!0,value:k,disabled:z,onChange:e=>M(e.target.value),placeholder:`Executable from PATH or absolute path`})]}),(0,j.jsxs)(`label`,{className:`settings-select-field`,children:[(0,j.jsx)(`span`,{children:`Arguments (JSON array)`}),(0,j.jsx)(`textarea`,{value:N,disabled:z,onChange:e=>P(e.target.value),placeholder:`["--acp"]`})]}),(0,j.jsxs)(`label`,{className:`settings-select-field`,children:[(0,j.jsx)(`span`,{children:`Environment overrides (JSON object)`}),(0,j.jsx)(`textarea`,{value:F,disabled:z,onChange:e=>I(e.target.value)})]}),(0,j.jsx)(`small`,{children:`Overrides are saved in your local configuration. Inherited environment variables do not need to be entered here.`})]}):(0,j.jsxs)(j.Fragment,{children:[(0,j.jsxs)(`div`,{className:`acp-registry-search`,children:[(0,j.jsxs)(`label`,{className:`settings-select-field`,children:[(0,j.jsx)(`span`,{children:`Search registry`}),(0,j.jsx)(`input`,{value:_,disabled:z,onChange:e=>y(e.target.value),placeholder:`Search agents`})]}),(0,j.jsx)(`button`,{type:`button`,className:`settings-secondary`,disabled:L||z,onClick:()=>g(e=>e+1),"aria-label":`Refresh ACP registry`,children:(0,j.jsx)(p,{size:14})})]}),L?(0,j.jsxs)(`p`,{role:`status`,children:[(0,j.jsx)(d,{size:16,className:`settings-spin`}),` Loading registry…`]}):null,(0,j.jsxs)(`div`,{className:`acp-registry-content`,children:[l?(0,j.jsxs)(`div`,{className:`acp-registry-list`,role:`group`,"aria-label":`ACP registry agents`,children:[W.map(e=>(0,j.jsxs)(`button`,{type:`button`,className:`acp-registry-entry`,disabled:z,"aria-pressed":b?.id===e.id,onClick:()=>{S(e),w(``),E(e.name)},children:[(0,j.jsxs)(`strong`,{children:[e.name,` `,(0,j.jsx)(`small`,{children:e.version})]}),(0,j.jsx)(`span`,{children:e.description}),e.supported?null:(0,j.jsxs)(`small`,{children:[`No distribution for `,l.platform,`; use a custom command.`]})]},e.id)),W.length?null:(0,j.jsx)(`p`,{className:`acp-registry-empty`,children:`No agents match your search.`})]}):null,b?(0,j.jsxs)(`div`,{className:`acp-install-summary`,children:[(0,j.jsxs)(`label`,{className:`settings-select-field`,children:[(0,j.jsx)(`span`,{children:`Connection name`}),(0,j.jsx)(`input`,{value:T,disabled:z,onChange:e=>E(e.target.value)})]}),U.length?(0,j.jsxs)(`label`,{className:`settings-select-field`,children:[(0,j.jsx)(`span`,{children:`Distribution`}),(0,j.jsx)(`select`,{value:G,disabled:z,onChange:e=>w(e.target.value),children:U.map(e=>(0,j.jsx)(`option`,{value:e,children:e===`binary`?`Binary for ${l?.platform}`:e},e))})]}):null,K?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(`code`,{children:G===`binary`?K.archive:`${G} ${K.package} ${(K.args??[]).join(` `)}`}),(0,j.jsxs)(`p`,{children:[G===`binary`?`Adding downloads and installs this version locally.`:`Connecting runs ${G}, which downloads this package version if needed.`,` The agent uses its own authentication and model catalog.`]})]}):null,b.website||b.repository?(0,j.jsx)(`a`,{href:b.website??b.repository,target:`_blank`,rel:`noreferrer`,children:`Agent documentation`}):null]}):null,!b&&l?(0,j.jsx)(`div`,{className:`acp-registry-hint`,children:`Select an agent to see its installation options.`}):null]})]}),(0,j.jsxs)(`div`,{className:`acp-registration-actions`,children:[(0,j.jsx)(`button`,{type:`button`,className:`settings-secondary`,disabled:z,onClick:J,children:`Cancel`}),(0,j.jsx)(`button`,{className:`settings-primary`,disabled:z||!e||(o?!D.trim()||!k.trim():!b||!G),children:z?`Adding agent…`:`Add and connect`})]})]})]})]}):null]})}function N(e){let t=(0,A.useRef)(null),n=(0,A.useRef)(e);return n.current=e,(0,A.useEffect)(()=>{let e=document.activeElement instanceof HTMLElement?document.activeElement:null,r=()=>[...t.current?.querySelectorAll(`button:not(:disabled), input:not(:disabled), select:not(:disabled), a[href], [tabindex="0"]`)??[]].filter(e=>e.getClientRects().length>0);r()[0]?.focus();let i=e=>{if(document.querySelector(`.native-setup-terminal`)||(e.key===`Escape`&&(e.preventDefault(),e.stopPropagation(),n.current()),e.key!==`Tab`))return;let t=r(),i=t[0],a=t.at(-1);e.shiftKey&&document.activeElement===i?(e.preventDefault(),a?.focus()):!e.shiftKey&&document.activeElement===a&&(e.preventDefault(),i?.focus())};return document.addEventListener(`keydown`,i),()=>{document.removeEventListener(`keydown`,i),e?.isConnected&&e.focus()}},[]),t}function P(e,t,n){let{recovery:r}=S(e),i=(0,A.useRef)(r);(0,A.useEffect)(()=>{let e=i.current!==r;i.current=r,e&&t&&g(t)&&n()},[r,t,n])}function F({connection:e,onChanged:t}){let[n,r]=(0,A.useState)(!1),[i,a]=(0,A.useState)([]),[o,s]=(0,A.useState)(null),[l,u]=(0,A.useState)(null),[d,f]=(0,A.useState)(0);P(e,o,()=>f(e=>e+1)),(0,A.useEffect)(()=>{let t=new AbortController;return a([]),s(null),e&&c(e,`/v1/url-models/list`,{signal:t.signal}).then(e=>{t.signal.aborted||a(e.models)}).catch(e=>{t.signal.aborted||s(e instanceof Error?e.message:`Could not load your model connections.`)}),()=>t.abort()},[e,d]);async function p(n){if(e&&!l){u(n.id),s(null);try{let r=await c(e,`/v1/url-models/remove`,{method:`POST`,body:JSON.stringify({id:n.id})});a(r.models),await t()}catch(e){s(e instanceof Error?e.message:`Could not remove the connection.`)}finally{u(null)}}}return(0,j.jsxs)(`section`,{"aria-label":`Models from URL`,className:`url-model-connections`,children:[(0,j.jsxs)(`div`,{className:`provider-connections-intro`,children:[(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`h2`,{children:`Models from URL`}),(0,j.jsx)(`p`,{children:`Connect a model endpoint and select it in your chats. `})]}),(0,j.jsx)(`button`,{type:`button`,className:`settings-primary`,disabled:!e,onClick:()=>r(!0),children:`Add model`})]}),o?(0,j.jsx)(x,{error:o,children:(0,j.jsx)(`button`,{type:`button`,onClick:()=>f(e=>e+1),children:`Retry`})}):null,(0,j.jsx)(`div`,{className:`provider-connections-grid`,children:i.map(e=>(0,j.jsxs)(`div`,{className:`provider-connection-card`,children:[(0,j.jsx)(`strong`,{children:e.name}),(0,j.jsx)(`p`,{className:`url-model-endpoint`,children:e.endpoint}),(0,j.jsxs)(`p`,{children:[e.providerName,` · `,e.model,` · `,e.hasToken?`Key saved securely`:`No API key`]}),(0,j.jsx)(`button`,{type:`button`,className:`settings-secondary`,disabled:!!l,onClick:()=>void p(e),children:l===e.id?`Removing…`:`Remove model`})]},e.id))}),n&&e?(0,j.jsx)(I,{providerNames:[...new Set(i.map(e=>e.providerName))],connection:e,onClose:()=>r(!1),onSaved:async e=>{a(e.models),await t(),r(!1)}}):null]})}function I({connection:e,providerNames:t,onClose:n,onSaved:r}){let i=N(n),[a,o]=(0,A.useState)(t[0]?`provider:${t[0]}`:`__new__`),[s,l]=(0,A.useState)(``),u=a===`__new__`?s.trim():a.slice(9),[d,f]=(0,A.useState)(``),[p,m]=(0,A.useState)(``),[g,_]=(0,A.useState)(``),[v,b]=(0,A.useState)(``),[S,C]=(0,A.useState)(null),[w,T]=(0,A.useState)(!1),[E,D]=(0,A.useState)(null),O=(0,A.useRef)(null);(0,A.useEffect)(()=>()=>O.current?.abort(),[]);function k(){C(null),b(``),D(null)}async function M(t){if(O.current)return;let n=new AbortController;O.current=n,T(!0),D(null);try{if(t){let t=await c(e,`/v1/url-models/save`,{method:`POST`,signal:n.signal,body:JSON.stringify({endpoint:d.trim(),token:p,name:g.trim(),model:v,providerName:u})});n.signal.aborted||(m(``),await r(t))}else{let t=await c(e,`/v1/url-models/inspect`,{method:`POST`,signal:n.signal,body:JSON.stringify({endpoint:d.trim(),token:p})});n.signal.aborted||(C(t),b(t.models[0]??``),g.trim()||_(t.models[0]??``))}}catch(e){n.signal.aborted||D(e instanceof Error?e.message:`Connection failed.`)}finally{O.current=null,n.signal.aborted||T(!1)}}function P(e){e.preventDefault(),M(!!S)}return(0,j.jsx)(`div`,{className:`git-dialog-backdrop provider-dialog-backdrop`,role:`presentation`,onMouseDown:e=>{e.target===e.currentTarget&&n()},children:(0,j.jsxs)(`section`,{ref:i,className:`git-dialog provider-details-dialog`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`url-model-title`,tabIndex:-1,children:[(0,j.jsxs)(`div`,{className:`provider-dialog-header`,children:[(0,j.jsx)(`h2`,{id:`url-model-title`,children:`Add model`}),(0,j.jsx)(`button`,{type:`button`,className:`git-dialog-close`,"aria-label":`Close Add model`,onClick:n,children:(0,j.jsx)(h,{size:18})})]}),(0,j.jsxs)(`form`,{className:`url-model-connection-form`,onSubmit:P,children:[(0,j.jsxs)(`div`,{className:`url-model-field`,children:[(0,j.jsx)(`span`,{children:`Provider`}),(0,j.jsx)(y,{label:`Provider`,value:a,disabled:w,floating:!0,options:[...t.map(e=>({value:`provider:${e}`,label:e})),{value:`__new__`,label:`Create new provider`,icon:`plus`,separatorBefore:!!t.length}],onChange:o})]}),a===`__new__`?(0,j.jsxs)(`label`,{children:[`Provider name`,(0,j.jsx)(`input`,{required:!0,maxLength:100,placeholder:`My model provider`,value:s,disabled:w,onChange:e=>l(e.target.value)})]}):null,(0,j.jsxs)(`label`,{children:[`Endpoint URL`,(0,j.jsx)(`input`,{type:`url`,required:!0,placeholder:`https://api.example.com/v1`,value:d,disabled:w,onChange:e=>{f(e.target.value),k()}})]}),(0,j.jsxs)(`label`,{children:[`API key `,(0,j.jsx)(`span`,{className:`settings-footnote`,children:`Optional for endpoints that do not require one`}),(0,j.jsx)(`input`,{type:`password`,autoComplete:`new-password`,spellCheck:!1,value:p,disabled:w,placeholder:`API key`,onChange:e=>{m(e.target.value),k()}})]}),S?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsxs)(`div`,{className:`url-model-field`,children:[(0,j.jsx)(`span`,{children:`Model`}),(0,j.jsx)(y,{label:`Model`,value:v,disabled:w,floating:!0,searchable:!0,options:S.models.map(e=>({value:e,label:e})),onChange:e=>{b(e),_(e)}})]}),(0,j.jsxs)(`label`,{children:[`Display name`,(0,j.jsx)(`input`,{required:!0,maxLength:100,value:g,disabled:w,onChange:e=>_(e.target.value)})]})]}):(0,j.jsx)(`p`,{className:`settings-footnote`,children:`Use the model service’s API base URL. Keys are encrypted on this machine.`}),E?(0,j.jsx)(x,{error:E}):null,(0,j.jsxs)(`div`,{className:`url-model-connection-actions`,children:[(0,j.jsx)(`button`,{className:`settings-primary`,type:`submit`,disabled:w||!u||!!S&&(!v||!g.trim()),children:w?`Connecting…`:S?`Add model`:`Fetch models`}),(0,j.jsx)(`button`,{type:`button`,className:`settings-secondary`,onClick:n,children:`Cancel`})]})]})]})})}var L=[`codex`,`claude-code`,`grok-build`,`opencode`];function R(e){return r(e)||[`claude-code`,`grok-build`,`opencode`].includes(e)}var z={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`}},B=(e,t)=>JSON.stringify([e||``,t||``]);function V({connection:e,providerId:t,config:n,status:a,cachedModels:o,busy:s,onCheck:l}){let[u,f]=(0,A.useState)(null),[m,h]=(0,A.useState)(null),[g,v]=(0,A.useState)(null),[y,b]=(0,A.useState)(!1),[S,C]=(0,A.useState)(n.binaryPath??``),[T,O]=(0,A.useState)(n.sourceHome??``),k=(0,A.useRef)(null),M=(0,A.useRef)(null),N=(0,A.useRef)(l);N.current=l;let P=D(),F=r(t),I=z[t]??{executable:n.acp?.command??``,install:n.acp?.installUrl??``},[L,V]=(0,A.useState)(n.acp?.command??``),[H,U]=(0,A.useState)(JSON.stringify(n.acp?.args??[])),[W,G]=(0,A.useState)(JSON.stringify(n.acp?.env??{},null,2)),K=B(n.binaryPath,n.sourceHome)+JSON.stringify(n.acp),q=B(S.trim(),T.trim())!==B(n.binaryPath,n.sourceHome)||F&&(L!==n.acp?.command||H!==JSON.stringify(n.acp?.args??[])||W!==JSON.stringify(n.acp?.env??{},null,2)),J=s||y||u!==null,Y=(0,A.useCallback)(async e=>{k.current?.abort();let n=new AbortController;k.current=n;let r=setTimeout(()=>n.abort(Error(`Connection check timed out. Retry when the agent is available.`)),45e3);b(!0),h(null);try{let r=await N.current(t,n.signal,e);k.current===n&&!n.signal.aborted&&v(r)}catch(e){k.current===n&&h(e instanceof Error?e.message:`Could not check the agent.`)}finally{clearTimeout(r),k.current===n&&(k.current=null,b(!1))}},[t]);(0,A.useEffect)(()=>{V(n.acp?.command??``),U(JSON.stringify(n.acp?.args??[])),G(JSON.stringify(n.acp?.env??{},null,2)),C(n.binaryPath??``),O(n.sourceHome??``),M.current===K?M.current=null:(f(null),v(null),Y())},[Y,K,n.binaryPath,n.sourceHome,e?.serverUrl,e?.token]),(0,A.useEffect)(()=>()=>{let e=k.current;k.current=null,e?.abort()},[]);async function X(e){if(e.preventDefault(),q&&!J){try{let e=F&&n.acp?{...n.acp,command:L.trim(),args:JSON.parse(H),env:JSON.parse(W)}:n.acp;M.current=B(S.trim(),T.trim())+JSON.stringify(e),await Y({binaryPath:S.trim()||null,sourceHome:T.trim()||null,...F?{acp:e}:{}})}catch(e){h(e instanceof Error?e.message:`Invalid command configuration.`)}M.current=null}}async function Z(){if(!e||g?.status!==`needs_login`)return;let n=new AbortController,r=setTimeout(()=>n.abort(),1e4);k.current?.abort(),k.current=n,b(!0),h(null);try{let r=await c(e,`/v1/providers/${t}/native-setup`,{method:`POST`,body:JSON.stringify({action:`login`}),signal:n.signal});k.current===n&&!n.signal.aborted&&(t===`claude-code`?P.start(r):f(r))}catch(e){k.current===n&&h(e instanceof Error?e.message:`Could not open native login.`)}finally{clearTimeout(r),k.current===n&&(k.current=null,b(!1))}}async function ee(n){if(!e||J||q)return;b(!0),h(null);let r=new AbortController;k.current=r;let i=setTimeout(()=>r.abort(Error(`Authentication timed out. Use the agent’s login and refresh.`)),185e3);try{let i=await c(e,`/v1/providers/${t}/native-setup`,{method:`POST`,body:JSON.stringify({action:`authenticate`,authMethodId:n}),signal:r.signal});r.signal.aborted||(M.current=B(i.settings.providers[t]?.binaryPath,i.settings.providers[t]?.sourceHome)+JSON.stringify(i.settings.providers[t]?.acp),v(i),await Y(),M.current=null)}catch(e){r.signal.aborted||h(e instanceof Error?e.message:`Authentication failed.`)}finally{clearTimeout(i),k.current===r&&(k.current=null,b(!1))}}(0,A.useEffect)(()=>{if(t!==`claude-code`||!P.result)return;let e=P.result.settings.providers[t];(e?.binaryPath||null)===(n.binaryPath||null)&&(e?.sourceHome||null)===(n.sourceHome||null)&&(v(P.result),h(P.result.status===`unavailable`?P.result.error:null))},[P.result,t,n.binaryPath,n.sourceHome]);let Q=g?.settings.modelCaches[t]?.models??o,$=[...new Set(Q.map(e=>i(e.displayName||e.id)))],te=m??g?.error;return(0,j.jsxs)(`div`,{className:`provider-dialog-body native-agent-setup`,children:[(0,j.jsx)(`p`,{children:F?`Uses the configured ${a.displayName} ACP command and its own login.`:`Uses your existing ${a.displayName} installation and login.`}),(0,j.jsxs)(`div`,{className:`native-connection-status`,children:[(0,j.jsx)(`div`,{role:`status`,"aria-live":`polite`,children:y?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(d,{size:16,className:`settings-spin`}),(0,j.jsx)(`span`,{children:`Checking connection…`})]}):g?.status===`ready`?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(E,{size:16}),(0,j.jsx)(`span`,{children:n.enabled?`Connected`:`Connected, disabled for chat`})]}):(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(w,{size:16}),(0,j.jsx)(`span`,{children:g?.status===`missing`?`Installation not found`:g?.status===`needs_login`?`Sign in required`:`Connection needs attention`})]})}),(0,j.jsxs)(`button`,{type:`button`,className:`settings-secondary`,disabled:J||!e,onClick:()=>void Y(),title:`Refresh connection`,"aria-label":`Refresh connection`,children:[(0,j.jsx)(p,{size:14}),` Refresh`]})]}),te?(0,j.jsx)(x,{error:te}):null,$.length?(0,j.jsxs)(`section`,{className:`native-model-section`,"aria-label":`Available models`,children:[(0,j.jsxs)(`div`,{className:`native-model-heading`,children:[(0,j.jsx)(`h3`,{children:`Models`}),(0,j.jsxs)(`small`,{children:[$.length,` available`]})]}),(0,j.jsx)(`div`,{className:`native-model-list`,tabIndex:0,"aria-label":`Models`,role:`list`,children:$.map(e=>(0,j.jsx)(`span`,{role:`listitem`,children:e},e))}),(0,j.jsx)(`small`,{children:`Choose a model when starting a chat.`})]}):null,g?.version?(0,j.jsx)(`small`,{className:`native-agent-version`,children:g.version}):null,!F&&g?.status===`needs_login`?(0,j.jsx)(`button`,{type:`button`,className:`settings-secondary`,disabled:J||q||!e,title:q?`Save changes before signing in to a different installation`:void 0,onClick:()=>t===`claude-code`&&P.active?P.resume():void Z(),children:t===`claude-code`&&P.active?`Continue sign-in`:`Sign in`}):null,F&&g?.authMethods?.length?(0,j.jsx)(`div`,{className:`acp-auth-methods`,children:g.authMethods.map(t=>t.type===`terminal`?(0,j.jsxs)(`p`,{children:[`Use `,t.name,` in the agent’s own terminal, then refresh this connection.`]},t.id):(0,j.jsx)(`button`,{type:`button`,className:`settings-secondary`,disabled:J||q||!e,onClick:()=>void ee(t.id),title:t.description,children:t.name},t.id))}):null,g?.status===`missing`&&I.install?(0,j.jsxs)(`p`,{children:[(0,j.jsxs)(`a`,{href:I.install,target:`_blank`,rel:`noreferrer`,children:[`Install `,a.displayName]}),`, then refresh this connection.`]}):null,t===`codex`&&g?.status===`missing`?(0,j.jsx)(`p`,{children:`OpenPond needs the Codex CLI installed separately from ChatGPT.`}):null,(m||g?.status===`unavailable`)&&!y?(0,j.jsx)(`button`,{type:`button`,className:`settings-secondary`,disabled:J||!e,onClick:()=>void Y(),children:`Retry`}):null,u&&e?(0,j.jsx)(_,{connection:e,command:u.command,displayCommand:u.displayCommand,onComplete:()=>{f(null),Y()},onClose:()=>{f(null),Y()}}):null,R(t)?(0,j.jsxs)(`details`,{children:[(0,j.jsx)(`summary`,{children:`Advanced`}),(0,j.jsxs)(`form`,{className:`provider-card-form`,onSubmit:e=>void X(e),children:[F?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsxs)(`label`,{className:`settings-select-field`,children:[(0,j.jsx)(`span`,{children:`ACP command`}),(0,j.jsx)(`input`,{value:L,disabled:J,onChange:e=>V(e.target.value)})]}),(0,j.jsxs)(`label`,{className:`settings-select-field`,children:[(0,j.jsx)(`span`,{children:`Arguments (JSON array)`}),(0,j.jsx)(`textarea`,{value:H,disabled:J,onChange:e=>U(e.target.value)})]}),(0,j.jsxs)(`label`,{className:`settings-select-field`,children:[(0,j.jsx)(`span`,{children:`Environment overrides (JSON object)`}),(0,j.jsx)(`textarea`,{value:W,disabled:J,onChange:e=>G(e.target.value)})]})]}):null,(0,j.jsxs)(`label`,{className:`settings-select-field`,children:[(0,j.jsx)(`span`,{children:`Executable override`}),(0,j.jsx)(`input`,{value:S,placeholder:`${I.executable} from PATH, or an absolute path`,disabled:J,onChange:e=>C(e.currentTarget.value)})]}),(0,j.jsxs)(`label`,{className:`settings-select-field`,children:[(0,j.jsx)(`span`,{children:F?`Home directory`:`Source home`}),(0,j.jsx)(`input`,{value:T,placeholder:`Use the agent's existing home`,disabled:J,onChange:e=>O(e.currentTarget.value)})]}),q?(0,j.jsx)(`button`,{className:`settings-secondary`,disabled:J||!e,children:`Save changes`}):null]})]}):null]})}var H=[{value:`local_secret`,label:`Saved key`,description:`Encrypted on this machine`},{value:`env`,label:`Environment variable`,description:`Read by the local server`}],U=120,W=new Set([`openai`,`xai`,`zai`]),G=new Set([`chatgpt-subscription`]),K=`https://api.z.ai/api/coding/paas/v4`;function q(e){return e.split(/[\n,]/).map(e=>e.trim()).filter(Boolean)}function J(e){return e?e.available?`Ready`:e.credential.connected?`Configured`:e.credential.lastError||e.lastError?`Needs attention`:e.id===`codex`?`Needs Codex login`:R(e.id)?`Check connection`:e.routing.localByok?`Needs key`:e.enabled?`Enabled`:`Off`:`Unknown`}function Y(e){return e?e.available?`ready`:e.credential.connected?`configured`:e.credential.lastError||e.lastError||e.id===`codex`?`warning`:`muted`:`unknown`}function X(e){return e.credential.connected?e.credential.redacted?e.credential.redacted:e.credential.source===`native_agent_login`?`Native login`:e.credential.source===`chatgpt_subscription`?`ChatGPT subscription`:e.credential.source:e.credential.lastError??`Not connected`}function Z(e){return e?.trim().replace(/\/+$/,``)??``}function ee(e,t){return e.id===`zai`&&Z(t.providers.zai?.baseUrl)===K}function Q(e){return e!==`openpond`&&o(e)}function $(e){return e?W.has(e.id)||e.credentialModes.some(e=>G.has(e)):!1}function te(e){return $(e)?[`api`,`subscription`]:[`api`]}function ne(e,t){return!e||!t||!$(e)?`api`:e.credential.source===`chatgpt_subscription`||ee(e,t)?`subscription`:`api`}function re(e){if(!e)return`Never`;let t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleString()}function ie(e,t,n=U){let r=[],i=new Set,a=new Set(t.map(e=>e.trim()).filter(Boolean)),o=e=>{i.has(e.value)||r.length>=n||(i.add(e.value),r.push(e))};for(let t of e)a.has(t.value)&&o(t);for(let t of e)o(t);return r}function ae({onProvidersChanged:e,checkNativeProvider:t,connection:n,account:i,codex:a,providers:o,providerBusy:s,validationMessage:l,deleteProviderCredential:u,loadProviderModels:f,refreshProviderModels:p,saveProviderConfig:m,saveProviderCredential:h,startOpenAiSubscriptionAuth:g,validateProvider:_}){let[v,y]=(0,A.useState)(null),[S,w]=(0,A.useState)(null),[E,D]=(0,A.useState)(null),k=[...L,...Object.keys(o?.statuses??{}).filter(r)].filter(e=>o?.statuses[e]),N=E?o?.statuses[E]??null:null;function P(e,t){D(e),t&&f(e)}return(0,j.jsxs)(`section`,{className:`account-settings provider-connections-settings`,children:[(0,j.jsxs)(`div`,{className:`provider-connections-heading`,children:[(0,j.jsx)(`h1`,{children:`Providers`}),(0,j.jsx)(M,{connection:n,onChanged:e,onAdded:e=>D(e)})]}),(0,j.jsxs)(`div`,{className:`provider-connections-intro`,children:[(0,j.jsx)(`p`,{children:`Manage your installed agents and login. Sync conversations from Continuous learning.`}),(0,j.jsx)(`button`,{type:`button`,className:`settings-secondary`,onClick:()=>void b({kind:`view`,view:`apps`}),children:`Apps & learning`})]}),o?(0,j.jsx)(`div`,{className:`provider-connections-panel`,children:k.length>0?(0,j.jsx)(`div`,{className:`provider-connections-grid`,role:`list`,children:k.map(t=>{let i=o.statuses[t],a=o.modelCaches[t],l=i.modelIds.length>0&&(a?.models.length??0)<i.modelIds.length,u=s?.startsWith(`${t}:`)??!1,f=Q(t),p=t===`openpond`||!!o.providers[t]?.enabled;return(0,j.jsxs)(`div`,{className:`provider-connection-card`,role:`listitem`,children:[(0,j.jsxs)(`div`,{className:`provider-connection-identity`,children:[(0,j.jsx)(`strong`,{children:i.displayName}),(0,j.jsxs)(`div`,{className:`provider-connection-controls`,children:[t===`codex`||t===`claude-code`?(0,j.jsx)(C,{connection:n,provider:t}):null,(0,j.jsxs)(`label`,{className:`provider-toggle`,"aria-label":`Enable ${i.displayName}`,children:[(0,j.jsx)(`input`,{type:`checkbox`,checked:p,disabled:!f||u,onChange:e=>{m(t,{enabled:e.currentTarget.checked})}}),(0,j.jsx)(`span`,{})]})]})]}),(0,j.jsxs)(`div`,{className:`provider-connection-status ${Y(i)}`,children:[u?(0,j.jsx)(d,{size:13,className:`settings-spin`}):null,(0,j.jsx)(`span`,{children:J(i)})]}),t===`codex`||t===`claude-code`?(0,j.jsx)(T,{connection:n,provider:t}):null,(0,j.jsx)(`button`,{type:`button`,className:`settings-secondary`,onClick:()=>{P(t,l)},children:`Manage`}),r(t)?(0,j.jsx)(`button`,{type:`button`,className:`settings-secondary`,disabled:v!==null||!n,onClick:async()=>{if(n){y(t),w(null);try{e((await c(n,`/v1/providers/acp-registry`,{method:`DELETE`,body:JSON.stringify({providerId:t})})).settings),E===t&&D(null)}catch(e){w(e instanceof Error?e.message:`Could not remove ACP agent.`)}finally{y(null)}}},children:v===t?`Removing…`:`Remove connection`}):null]},t)})}):(0,j.jsx)(`div`,{className:`empty-account-list provider-manager-empty`,children:(0,j.jsx)(`strong`,{children:`No agent providers available`})})}):null,S?(0,j.jsx)(x,{error:S}):null,(0,j.jsx)(F,{connection:n,onChanged:async()=>{n&&e(await O.providerSettings(n))}}),l?(0,j.jsxs)(`div`,{className:`settings-footnote provider-validation-message`,children:[(0,j.jsx)(`span`,{children:`Last validation`}),(0,j.jsx)(`strong`,{children:l})]}):null,E&&N&&o?(0,j.jsx)(oe,{checkNativeProvider:t,connection:n,account:i,codex:a,providerId:E,providerBusy:s,settings:o,status:N,onClose:()=>D(null),onDeleteCredential:u,onRefreshModels:p,onSaveConfig:m,onSaveCredential:h,onStartOpenAiSubscriptionAuth:g,onValidate:_}):null]})}function oe({checkNativeProvider:e,connection:t,account:n,codex:i,providerId:a,providerBusy:s,settings:c,status:l,onClose:u,onDeleteCredential:d,onRefreshModels:f,onSaveConfig:p,onSaveCredential:m,onStartOpenAiSubscriptionAuth:g,onValidate:_,conversationPanel:v}){let y=N(u),[b,x]=(0,A.useState)(`setup`),S=(0,A.useId)(),C=c.providers[a],T=c.modelCaches[a],E=(0,A.useId)(),D=(0,A.useRef)(a),O=Math.max(T?.models.length??0,l.modelIds.length),k=l.routing.localByok&&o(a)&&a!==`codex`&&!R(a),M=(0,A.useMemo)(()=>k?te(l):[],[k,l]),P=M.includes(`subscription`),[F,I]=(0,A.useState)(()=>ne(l,c)),z=k&&F===`subscription`&&P,B=e=>`${E}-${e}-panel`,H=a===`codex`?`Codex app server`:C?.baseUrl??(a===`openpond`?n?.chatApiBaseUrl:null)??`Not set`;return(0,A.useEffect)(()=>{D.current===a?k&&!M.includes(F)&&I(`api`):(D.current=a,I(ne(l,c)))},[F,M,k,a,c,l]),(0,j.jsx)(`div`,{className:`git-dialog-backdrop provider-dialog-backdrop`,role:`presentation`,onMouseDown:u,children:(0,j.jsxs)(`section`,{ref:y,className:`git-dialog provider-details-dialog${v?` agent-setup-dialog`:``}`,role:`dialog`,"aria-modal":`true`,"aria-label":`${l.displayName} provider details`,onMouseDown:e=>e.stopPropagation(),children:[(0,j.jsx)(`button`,{className:`git-dialog-close`,type:`button`,title:`Close`,"aria-label":`Close`,onClick:u,children:(0,j.jsx)(h,{size:16})}),(0,j.jsxs)(`div`,{className:`provider-dialog-header`,children:[(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`h2`,{children:l.displayName}),(0,j.jsx)(`span`,{children:L.includes(a)||r(a)?`Installation and login`:`API and subscription settings`})]}),(0,j.jsx)(`div`,{className:`provider-state-pill ${Y(l)}`,children:J(l)})]}),(L.includes(a)||r(a))&&C?(0,j.jsxs)(`label`,{className:`provider-chat-toggle`,children:[(0,j.jsxs)(`span`,{className:`provider-toggle`,children:[(0,j.jsx)(`input`,{type:`checkbox`,"aria-label":`Enable ${l.displayName} for chat`,checked:C.enabled,disabled:s!==null,onChange:e=>void p(a,{enabled:e.target.checked})}),(0,j.jsx)(`span`,{"aria-hidden":`true`})]}),(0,j.jsxs)(`span`,{children:[`Use `,l.displayName,` for chats`]})]}):null,v?(0,j.jsxs)(`div`,{className:`surface-tabs provider-agent-tabs`,role:`tablist`,"aria-label":`Agent settings`,onKeyDown:e=>{if(e.key!==`ArrowLeft`&&e.key!==`ArrowRight`)return;e.preventDefault();let t=b===`setup`?`sync`:`setup`;x(t),e.currentTarget.querySelector(`#${CSS.escape(`${S}-${t}`)}`)?.focus()},children:[(0,j.jsx)(`button`,{type:`button`,role:`tab`,id:`${S}-setup`,"aria-controls":`${S}-setup-panel`,"aria-selected":b===`setup`,tabIndex:b===`setup`?0:-1,onClick:()=>x(`setup`),children:`Agent setup`}),(0,j.jsx)(`button`,{type:`button`,role:`tab`,id:`${S}-sync`,"aria-controls":`${S}-sync-panel`,"aria-selected":b===`sync`,tabIndex:b===`sync`?0:-1,onClick:()=>x(`sync`),children:`Conversation sync`})]}):null,(0,j.jsxs)(`div`,{hidden:b!==`setup`,id:`${S}-setup-panel`,role:v?`tabpanel`:void 0,"aria-labelledby":v?`${S}-setup`:void 0,children:[k?(0,j.jsx)(`div`,{className:`surface-tabs provider-mode-tabs`,role:`tablist`,"aria-label":`${l.displayName} mode`,children:M.map(e=>(0,j.jsx)(`button`,{type:`button`,role:`tab`,id:`${E}-${e}`,className:F===e?`active`:void 0,"aria-selected":F===e,"aria-controls":B(e),onClick:()=>I(e),children:e===`api`?`API`:`Subscription`},e))}):null,L.includes(a)||r(a)?null:(0,j.jsxs)(`dl`,{className:`provider-dialog-stats`,children:[(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`dt`,{children:`Credential`}),(0,j.jsx)(`dd`,{title:X(l),children:X(l)})]}),z?null:(0,j.jsxs)(j.Fragment,{children:[R(a)?null:(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`dt`,{children:`Base URL`}),(0,j.jsx)(`dd`,{title:H,children:H})]}),(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`dt`,{children:`Model`}),(0,j.jsx)(`dd`,{title:C?.defaultModel??l.defaultModel??void 0,children:C?.defaultModel??l.defaultModel??`Not set`})]}),(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`dt`,{children:`Models`}),(0,j.jsxs)(`dd`,{title:T?.lastError??void 0,children:[O,` cached, `,re(T?.fetchedAt)]})]})]}),a===`codex`?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`dt`,{children:`Account`}),(0,j.jsx)(`dd`,{title:i?.account?.email??void 0,children:i?.account?.label??i?.account?.email??`Not signed in`})]}),(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`dt`,{children:`Binary`}),(0,j.jsx)(`dd`,{title:i?.binaryPath??void 0,children:i?.binaryPath??`Not found`})]})]}):null,l.credential.lastError||T?.lastError||l.lastError?(0,j.jsxs)(`div`,{className:`provider-dialog-error`,children:[(0,j.jsx)(`dt`,{children:`Error`}),(0,j.jsx)(`dd`,{title:l.credential.lastError??T?.lastError??l.lastError??void 0,children:l.credential.lastError??T?.lastError??l.lastError})]}):null]}),a===`codex`?(0,j.jsxs)(j.Fragment,{children:[C?(0,j.jsx)(V,{connection:t,providerId:a,config:C,status:l,cachedModels:T?.models??[],busy:s!==null,onCheck:e},a):null,(0,j.jsxs)(`div`,{className:`provider-dialog-body`,children:[(0,j.jsx)(`h3`,{children:`ChatGPT with the OpenPond harness`}),(0,j.jsx)(`p`,{children:`Native Codex and the OpenPond harness keep their own connections. Choose the execution path in the model picker.`}),(0,j.jsx)(`p`,{children:c.statuses.openai?.credential.connected?`OpenPond harness connected`:`OpenPond harness not connected`}),(0,j.jsx)(`button`,{type:`button`,className:`settings-secondary`,disabled:s!==null,onClick:()=>void g(`browser`),children:`Connect ChatGPT for OpenPond`}),(0,j.jsxs)(`button`,{type:`button`,className:`settings-secondary`,disabled:s!==null,onClick:()=>void p(`openai`,{enabled:!c.providers.openai?.enabled}),children:[c.providers.openai?.enabled?`Disable`:`Enable`,` OpenPond harness route`]})]})]}):R(a)&&C?(0,j.jsx)(V,{connection:t,providerId:a,config:C,status:l,cachedModels:T?.models??[],busy:s!==null,onCheck:e},a):k&&C&&T?(0,j.jsx)(se,{credentialTab:F,credentialTabsId:E,hasSubscriptionTab:P,providerId:a,providerBusy:s,settings:c,status:l,onDeleteCredential:d,onRefreshModels:f,onSaveConfig:p,onSaveCredential:m,onStartOpenAiSubscriptionAuth:g,onValidate:_}):l.routing.localByok&&!o(a)?(0,j.jsxs)(`div`,{className:`provider-dialog-note`,children:[(0,j.jsx)(w,{size:15}),(0,j.jsx)(`span`,{children:`Adapter pending`})]}):null]}),b===`sync`?(0,j.jsx)(`div`,{role:`tabpanel`,id:`${S}-sync-panel`,"aria-labelledby":`${S}-sync`,children:v}):null]})})}function se({credentialTab:e,credentialTabsId:t,hasSubscriptionTab:n,providerId:r,providerBusy:i,settings:a,status:o,onDeleteCredential:c,onRefreshModels:l,onSaveConfig:f,onSaveCredential:h,onStartOpenAiSubscriptionAuth:g,onValidate:_}){let v=a.providers[r],b=(0,A.useMemo)(()=>s(r,a),[r,a]),x=`provider-models-${r}`,S=(0,A.useRef)(r),[C,w]=(0,A.useState)(v.baseUrl??``),[T,D]=(0,A.useState)(v.defaultModel??``),[O,M]=(0,A.useState)(v.modelOverrides.join(`
2
- `)),[N,P]=(0,A.useState)({baseUrl:!1,defaultModel:!1,modelOverrides:!1}),[F,I]=(0,A.useState)(`local_secret`),[L,R]=(0,A.useState)(``),[z,B]=(0,A.useState)(``),V=i===`${r}:config`,U=i===`${r}:credential`,W=i===`${r}:validate`,G=i===`${r}:models`,K=i===`openai:credential`,J=r===`openai`,Y=r===`xai`,X=r===`zai`,Z=(e=>`${t}-${e}-panel`)(e),ee=e===`subscription`&&n,Q=e===`subscription`&&X?`coding-plan`:`api`,$=Q===`coding-plan`?`Coding Plan key`:`API key`,te=o.credential.connected?Q===`coding-plan`?`Replace saved plan key`:`Replace saved key`:$,ne=Q===`coding-plan`?`Save plan key`:`Save key`,re=(0,A.useMemo)(()=>ie(b,[T,...q(O)]),[T,b,O]),ae=Math.max(0,b.length-re.length);(0,A.useEffect)(()=>{S.current===r?(N.baseUrl||w(v.baseUrl??``),N.defaultModel||D(v.defaultModel??``),N.modelOverrides||M(v.modelOverrides.join(`
3
- `))):(S.current=r,P({baseUrl:!1,defaultModel:!1,modelOverrides:!1}),w(v.baseUrl??``),D(v.defaultModel??``),M(v.modelOverrides.join(`
4
- `)))},[v.baseUrl,v.defaultModel,v.modelOverrides,N.baseUrl,N.defaultModel,N.modelOverrides,r]);let oe=F===`env`?!!z.trim():!!L.trim();async function se(e){e.preventDefault(),await f(r,{enabled:!0,baseUrl:C.trim()||null,defaultModel:T.trim()||null,modelOverrides:q(O)}),P({baseUrl:!1,defaultModel:!1,modelOverrides:!1})}async function ce(e){e.preventDefault(),oe&&(F===`env`?await h(r,{source:`env`,envVar:z.trim()}):(await h(r,{source:`local_secret`,value:L}),R(``)))}function le({panel:n=!0}={}){return(0,j.jsxs)(`form`,{className:`provider-credential-panel`,id:n?Z:void 0,role:n?`tabpanel`:void 0,"aria-labelledby":n?`${t}-${e}`:void 0,onSubmit:e=>void ce(e),children:[(0,j.jsxs)(`div`,{className:`provider-card-grid credential-grid`,children:[(0,j.jsxs)(`div`,{className:`settings-select-field`,children:[(0,j.jsx)(`span`,{children:`Credential source`}),(0,j.jsx)(y,{value:F,disabled:U,label:`Credential source`,options:H,onChange:e=>I(e)})]}),F===`env`?(0,j.jsxs)(`label`,{className:`settings-select-field`,children:[(0,j.jsx)(`span`,{children:`Environment variable`}),(0,j.jsx)(`input`,{value:z,disabled:U,placeholder:`PROVIDER_API_KEY`,onChange:e=>B(e.currentTarget.value)})]}):(0,j.jsxs)(`label`,{className:`settings-select-field`,children:[(0,j.jsx)(`span`,{children:$}),(0,j.jsx)(`input`,{type:`password`,value:L,disabled:U,placeholder:te,autoComplete:`off`,onChange:e=>R(e.currentTarget.value)})]})]}),(0,j.jsxs)(`div`,{className:`settings-button-row`,children:[(0,j.jsxs)(`button`,{className:`settings-secondary`,disabled:U||!oe,children:[U?(0,j.jsx)(d,{size:14,className:`settings-spin`}):(0,j.jsx)(k,{size:14}),(0,j.jsx)(`span`,{children:U?`Saving`:ne})]}),(0,j.jsx)(`button`,{type:`button`,className:`settings-icon-button ghost`,"aria-label":`Delete ${o.displayName} credential`,disabled:U||!o.credential.connected,onClick:()=>void c(r),children:(0,j.jsx)(u,{size:15})})]})]})}function ue(){return J?(0,j.jsxs)(`div`,{className:`provider-subscription-panel`,id:Z,role:`tabpanel`,"aria-labelledby":`${t}-subscription`,children:[(0,j.jsxs)(`div`,{className:`provider-dialog-note codex-provider-note`,children:[(0,j.jsx)(k,{size:15}),(0,j.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.`})]}),(0,j.jsxs)(`div`,{className:`settings-button-row`,children:[(0,j.jsxs)(`button`,{type:`button`,className:`settings-secondary`,disabled:K,onClick:()=>void g(`browser`),children:[K?(0,j.jsx)(d,{size:14,className:`settings-spin`}):(0,j.jsx)(k,{size:14}),(0,j.jsx)(`span`,{children:K?`Opening`:`Connect ChatGPT`})]}),(0,j.jsxs)(`button`,{type:`button`,className:`settings-secondary`,disabled:K,onClick:()=>void g(`device`),children:[K?(0,j.jsx)(d,{size:14,className:`settings-spin`}):(0,j.jsx)(k,{size:14}),(0,j.jsx)(`span`,{children:`Device code`})]}),(0,j.jsx)(`button`,{type:`button`,className:`settings-icon-button ghost`,"aria-label":`Delete ${o.displayName} credential`,disabled:K||!o.credential.connected,onClick:()=>void c(r),children:(0,j.jsx)(u,{size:15})})]})]}):Y?(0,j.jsx)(`div`,{className:`provider-subscription-panel`,id:Z,role:`tabpanel`,"aria-labelledby":`${t}-subscription`,children:(0,j.jsxs)(`div`,{className:`provider-dialog-note xai-provider-note`,children:[(0,j.jsx)(k,{size:15}),(0,j.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?(0,j.jsxs)(`div`,{className:`provider-subscription-panel`,id:Z,role:`tabpanel`,"aria-labelledby":`${t}-subscription`,children:[(0,j.jsxs)(`div`,{className:`provider-dialog-note subscription-provider-note`,children:[(0,j.jsx)(k,{size:15}),(0,j.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.`})]}),le({panel:!1})]}):null}return(0,j.jsxs)(`div`,{className:`provider-dialog-body`,children:[ee?null:(0,j.jsxs)(`form`,{className:`provider-card-form`,onSubmit:e=>void se(e),children:[(0,j.jsxs)(`div`,{className:`provider-card-grid`,children:[(0,j.jsxs)(`label`,{className:`settings-select-field`,children:[(0,j.jsx)(`span`,{children:`Base URL`}),(0,j.jsx)(`input`,{value:C,disabled:V,placeholder:`https://api.example.com/v1`,onChange:e=>{P(e=>({...e,baseUrl:!0})),w(e.currentTarget.value)}})]}),(0,j.jsxs)(`label`,{className:`settings-select-field`,children:[(0,j.jsx)(`span`,{children:`Default model`}),(0,j.jsx)(`input`,{list:x,value:T,disabled:V,placeholder:`Model id`,onChange:e=>{P(e=>({...e,defaultModel:!0})),D(e.currentTarget.value)}}),(0,j.jsx)(`datalist`,{id:x,children:re.map(e=>(0,j.jsx)(`option`,{value:e.value,children:e.label},e.value))}),ae>0?(0,j.jsxs)(`small`,{children:[ae,` more cached models hidden from suggestions`]}):null]})]}),(0,j.jsxs)(`div`,{className:`settings-button-row`,children:[(0,j.jsxs)(`button`,{className:`settings-secondary`,disabled:V,children:[V?(0,j.jsx)(d,{size:14,className:`settings-spin`}):(0,j.jsx)(m,{size:14}),(0,j.jsx)(`span`,{children:V?`Saving`:`Save config`})]}),(0,j.jsxs)(`button`,{type:`button`,className:`settings-secondary`,disabled:G,onClick:()=>void l(r),children:[G?(0,j.jsx)(d,{size:14,className:`settings-spin`}):(0,j.jsx)(p,{size:14}),(0,j.jsx)(`span`,{children:G?`Refreshing`:`Refresh models`})]}),(0,j.jsxs)(`button`,{type:`button`,className:`settings-secondary`,disabled:W||!T.trim(),onClick:()=>void _(r,{baseUrl:C.trim()||void 0,modelId:T.trim()||void 0}),children:[W?(0,j.jsx)(d,{size:14,className:`settings-spin`}):(0,j.jsx)(E,{size:14}),(0,j.jsx)(`span`,{children:W?`Testing`:`Test`})]})]})]}),(0,j.jsx)(`div`,{className:`provider-card-form credential-form`,children:ee?ue():le()})]})}function ce({connection:e,onError:t,onPreferences:n,onProviders:r,preferences:i,providers:o}){let s=(0,A.useRef)(e);s.current=e;let[l,u]=(0,A.useState)(i.defaultChatProvider),[d,f]=(0,A.useState)(i.defaultChatModel),[p,m]=(0,A.useState)(!1),[h,g]=(0,A.useState)(null),[_,v]=(0,A.useState)(null);(0,A.useEffect)(()=>{u(i.defaultChatProvider),f(i.defaultChatModel)},[i.defaultChatProvider,i.defaultChatModel]);async function y(r){if(r.preventDefault(),e){m(!0),t(null);try{n(await O.savePreferences(e,{defaultChatProvider:l,defaultChatModel:a(l,d,o)}))}catch(e){t(e instanceof Error?e.message:String(e))}finally{m(!1)}}}function b(e){u(e),f(t=>a(e,t,o))}async function x(n,r,i){if(!e)return null;g(`${n}:${r}`),v(null),t(null);try{return await i()}catch(e){return t(e instanceof Error?e.message:String(e)),null}finally{g(null)}}async function S(t,n){await x(t,`config`,async()=>{let i=await O.saveProviderSettings(e,{providers:{[t]:n}});return r(i),i})}async function C(t,n){await x(t,`credential`,async()=>{let i=await O.saveProviderCredential(e,t,n);return r(i),i})}async function w(t){await x(t,`credential`,async()=>{let n=await O.deleteProviderCredential(e,t,{});return r(n),n})}async function T(t){return x(`openai`,`credential`,async()=>{let n=await O.startOpenAiSubscriptionAuth(e,{method:t});return n.method===`browser`?(window.open(n.url,`_blank`,`noopener,noreferrer`),v(`OpenAI ChatGPT login opened in your browser. Return here after authorization.`)):(window.open(n.url,`_blank`,`noopener,noreferrer`),v(`OpenAI device login started. Enter code ${n.userCode}.`)),E(n.expiresAt),n})}async function E(t){if(e)for(;Date.now()<t;){await new Promise(e=>setTimeout(e,2500));try{let t=await O.providerSettings(e);r(t);let n=t.statuses.openai?.credential;if(n?.connected&&n.source===`chatgpt_subscription`){v(`OpenAI ChatGPT subscription connected.`);return}}catch{}}}async function D(t){await x(t,`models`,async()=>{let n=await O.refreshProviderModels(e,t,{force:!0});return r(n.providers),n})}async function k(t){await x(t,`models`,async()=>{let n=await O.loadProviderModels(e,t,{limit:500});return r(n.providers),n})}async function j(t,n={}){await x(t,`validate`,async()=>{let i=await O.validateProviderCredential(e,t,n);return v(i.ok?`${t} validated${i.modelId?` with ${i.modelId}`:``}.`:i.errors.join(`
5
- `)||`${t} validation failed.`),r(i.providers),i})}return{checkNativeProvider:async(t,n,i)=>{if(!e)throw Error(`Connect to the local OpenPond server first.`);n.throwIfAborted(),i&&await O.saveProviderSettings(e,{providers:{[t]:i}}),n.throwIfAborted();let a=await c(e,`/v1/providers/${t}/native-setup`,{method:`POST`,body:JSON.stringify({action:`check`}),signal:n});if(n.throwIfAborted(),s.current?.serverUrl!==e.serverUrl||s.current?.token!==e.token)throw new DOMException(`Connection changed`,`AbortError`);return r(a.settings),a},defaultModel:d,defaultProvider:l,providerBusy:h,saving:p,validationMessage:_,changeDefaultProvider:b,deleteProviderCredential:w,loadProviderModels:k,refreshProviderModels:D,saveProviderConfig:S,saveProviderCredential:C,saveProviders:y,setDefaultModel:f,startOpenAiSubscriptionAuth:T,validateProvider:j}}export{N as a,P as i,oe as n,k as o,ae as r,ce as t};
1
+ import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{g as t,m as n}from"./index-D9WbJMSq.js";import{A as r}from"./settings-D7C-Auyi.js";import{N as i,S as a,g as o,v as s}from"./app-models-CUA9XB9U.js";import{n as c}from"./api-client-Dgz-fOMl.js";import"./icons-D7jkCa2d.js";import{t as l}from"./createLucideIcon-CXQny8HU.js";import{F as u}from"./training-model-data-DB-jg6L_.js";import{t as d}from"./loader-circle-CPaJeTDy.js";import{t as f}from"./plus-yw95Iaj8.js";import{t as p}from"./refresh-cw-Dga35Eay.js";import{t as m}from"./save-BLKjYtzR.js";import{t as h}from"./x-Dqpel42h.js";import{a as g}from"./AppToastContext-BiQbbVxq.js";import{t as _}from"./NativeSetupTerminal-CPDChcMi.js";import{t as v}from"./AppDialog-8Y0FYalT.js";import{Bt as y,Nt as b,Rt as x,bn as S,bt as C,ht as w,ln as T,mt as E,t as D,un as O}from"./App-DY2R8Z6r.js";var k=l(`key-round`,[[`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`}]]),A=e(t(),1),j=n();function M({connection:e,onChanged:t,onAdded:n}){let r=(0,A.useId)(),[i,a]=(0,A.useState)(!1),[o,s]=(0,A.useState)(!1),[l,u]=(0,A.useState)(null),[m,g]=(0,A.useState)(0),[_,b]=(0,A.useState)(``),[x,S]=(0,A.useState)(null),[C,w]=(0,A.useState)(``),[T,E]=(0,A.useState)(``),[D,O]=(0,A.useState)(``),[k,M]=(0,A.useState)(``),[N,P]=(0,A.useState)(`[]`),[F,I]=(0,A.useState)(`{}`),[L,R]=(0,A.useState)(!1),[z,B]=(0,A.useState)(!1),[V,H]=(0,A.useState)(null);(0,A.useEffect)(()=>{if(!i||o||!e)return;let t=new AbortController;return R(!0),H(null),c(e,`/v1/providers/acp-registry${m?`?refresh=true`:``}`,{signal:t.signal}).then(e=>{t.signal.aborted||(u(e),S(null))}).catch(e=>{t.signal.aborted||H(e instanceof Error?e.message:`Could not load ACP registry.`)}).finally(()=>{t.signal.aborted||R(!1)}),()=>t.abort()},[i,o,e,m]);let U=x?[x.distribution.binary?.[l?.platform??``]?`binary`:null,x.distribution.npx?`npx`:null,x.distribution.uvx?`uvx`:null].filter(e=>!!e):[],W=l?.agents.filter(e=>`${e.name} ${e.id} ${e.description}`.toLowerCase().includes(_.trim().toLowerCase()))??[],G=U.includes(C)?C:U[0],K=G===`binary`?x?.distribution.binary?.[l?.platform??``]:G===`npx`?x?.distribution.npx:x?.distribution.uvx;async function q(r){if(r.preventDefault(),e&&!z){B(!0),H(null);try{let r=o?{custom:{displayName:D.trim(),command:k.trim(),args:JSON.parse(N),env:JSON.parse(F)}}:{registryId:x?.id,version:x?.version,distribution:G,displayName:T.trim()||x?.name},i=await c(e,`/v1/providers/acp-registry`,{method:`POST`,body:JSON.stringify(r)});t(i.settings),n(i.providerId),a(!1),S(null),E(``),O(``),M(``),P(`[]`),I(`{}`)}catch(e){H(e instanceof Error?e.message:`Could not add ACP agent.`)}finally{B(!1)}}}function J(){z||a(!1)}return(0,j.jsxs)(j.Fragment,{children:[(0,j.jsxs)(`button`,{type:`button`,className:`settings-secondary acp-add-button`,disabled:!e||z,onClick:()=>a(!0),children:[(0,j.jsx)(f,{size:16,"aria-hidden":`true`}),` ACP Agent`]}),i?(0,j.jsxs)(v,{ariaLabel:`Add ACP agent`,backdropClassName:`git-dialog-backdrop provider-dialog-backdrop`,className:`git-dialog provider-details-dialog acp-agent-dialog`,dismissDisabled:z,onClose:J,children:[(0,j.jsx)(`button`,{type:`button`,className:`git-dialog-close`,"aria-label":`Close`,disabled:z,onClick:J,children:(0,j.jsx)(h,{size:18})}),(0,j.jsx)(`div`,{className:`provider-dialog-header`,children:(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`h2`,{children:`Add ACP agent`}),(0,j.jsx)(`span`,{children:`Choose from the registry or register your own agent.`})]})}),(0,j.jsxs)(`div`,{className:`surface-tabs`,role:`tablist`,"aria-label":`Agent registration`,onKeyDown:e=>{if(z||![`ArrowLeft`,`ArrowRight`,`Home`,`End`].includes(e.key))return;e.preventDefault();let t=e.key===`Home`?!1:e.key===`End`||!o;s(t),H(null),e.currentTarget.querySelectorAll(`[role="tab"]`)[+!!t]?.focus()},children:[(0,j.jsx)(`button`,{type:`button`,role:`tab`,id:`${r}-registry-tab`,"aria-controls":`${r}-panel`,"aria-selected":!o,tabIndex:o?-1:0,disabled:z,onClick:()=>{s(!1),H(null)},children:`Registry`}),(0,j.jsx)(`button`,{type:`button`,role:`tab`,id:`${r}-custom-tab`,"aria-controls":`${r}-panel`,"aria-selected":o,tabIndex:o?0:-1,disabled:z,onClick:()=>{s(!0),H(null)},children:`Custom agent`})]}),(0,j.jsxs)(`div`,{className:`provider-dialog-body`,role:`tabpanel`,id:`${r}-panel`,"aria-labelledby":`${r}-${o?`custom`:`registry`}-tab`,children:[(0,j.jsx)(`p`,{children:o?`Register an installed agent using its ACP executable and launch settings.`:`Browse agents from the Agent Client Protocol registry.`}),V?(0,j.jsx)(y,{error:V}):null,(0,j.jsxs)(`form`,{className:`provider-card-form`,onSubmit:e=>void q(e),children:[o?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsxs)(`label`,{className:`settings-select-field`,children:[(0,j.jsx)(`span`,{children:`Name`}),(0,j.jsx)(`input`,{required:!0,maxLength:160,value:D,disabled:z,onChange:e=>O(e.target.value),placeholder:`My ACP agent`})]}),(0,j.jsxs)(`label`,{className:`settings-select-field`,children:[(0,j.jsx)(`span`,{children:`ACP executable`}),(0,j.jsx)(`input`,{required:!0,value:k,disabled:z,onChange:e=>M(e.target.value),placeholder:`Executable from PATH or absolute path`})]}),(0,j.jsxs)(`label`,{className:`settings-select-field`,children:[(0,j.jsx)(`span`,{children:`Arguments (JSON array)`}),(0,j.jsx)(`textarea`,{value:N,disabled:z,onChange:e=>P(e.target.value),placeholder:`["--acp"]`})]}),(0,j.jsxs)(`label`,{className:`settings-select-field`,children:[(0,j.jsx)(`span`,{children:`Environment overrides (JSON object)`}),(0,j.jsx)(`textarea`,{value:F,disabled:z,onChange:e=>I(e.target.value)})]}),(0,j.jsx)(`small`,{children:`Overrides are saved in your local configuration. Inherited environment variables do not need to be entered here.`})]}):(0,j.jsxs)(j.Fragment,{children:[(0,j.jsxs)(`div`,{className:`acp-registry-search`,children:[(0,j.jsxs)(`label`,{className:`settings-select-field`,children:[(0,j.jsx)(`span`,{children:`Search registry`}),(0,j.jsx)(`input`,{value:_,disabled:z,onChange:e=>b(e.target.value),placeholder:`Search agents`})]}),(0,j.jsx)(`button`,{type:`button`,className:`settings-secondary`,disabled:L||z,onClick:()=>g(e=>e+1),"aria-label":`Refresh ACP registry`,children:(0,j.jsx)(p,{size:14})})]}),L?(0,j.jsxs)(`p`,{role:`status`,children:[(0,j.jsx)(d,{size:16,className:`settings-spin`}),` Loading registry…`]}):null,(0,j.jsxs)(`div`,{className:`acp-registry-content`,children:[l?(0,j.jsxs)(`div`,{className:`acp-registry-list`,role:`group`,"aria-label":`ACP registry agents`,children:[W.map(e=>(0,j.jsxs)(`button`,{type:`button`,className:`acp-registry-entry`,disabled:z,"aria-pressed":x?.id===e.id,onClick:()=>{S(e),w(``),E(e.name)},children:[(0,j.jsxs)(`strong`,{children:[e.name,` `,(0,j.jsx)(`small`,{children:e.version})]}),(0,j.jsx)(`span`,{children:e.description}),e.supported?null:(0,j.jsxs)(`small`,{children:[`No distribution for `,l.platform,`; use a custom command.`]})]},e.id)),W.length?null:(0,j.jsx)(`p`,{className:`acp-registry-empty`,children:`No agents match your search.`})]}):null,x?(0,j.jsxs)(`div`,{className:`acp-install-summary`,children:[(0,j.jsxs)(`label`,{className:`settings-select-field`,children:[(0,j.jsx)(`span`,{children:`Connection name`}),(0,j.jsx)(`input`,{value:T,disabled:z,onChange:e=>E(e.target.value)})]}),U.length?(0,j.jsxs)(`label`,{className:`settings-select-field`,children:[(0,j.jsx)(`span`,{children:`Distribution`}),(0,j.jsx)(`select`,{value:G,disabled:z,onChange:e=>w(e.target.value),children:U.map(e=>(0,j.jsx)(`option`,{value:e,children:e===`binary`?`Binary for ${l?.platform}`:e},e))})]}):null,K?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(`code`,{children:G===`binary`?K.archive:`${G} ${K.package} ${(K.args??[]).join(` `)}`}),(0,j.jsxs)(`p`,{children:[G===`binary`?`Adding downloads and installs this version locally.`:`Connecting runs ${G}, which downloads this package version if needed.`,` The agent uses its own authentication and model catalog.`]})]}):null,x.website||x.repository?(0,j.jsx)(`a`,{href:x.website??x.repository,target:`_blank`,rel:`noreferrer`,children:`Agent documentation`}):null]}):null,!x&&l?(0,j.jsx)(`div`,{className:`acp-registry-hint`,children:`Select an agent to see its installation options.`}):null]})]}),(0,j.jsxs)(`div`,{className:`acp-registration-actions`,children:[(0,j.jsx)(`button`,{type:`button`,className:`settings-secondary`,disabled:z,onClick:J,children:`Cancel`}),(0,j.jsx)(`button`,{className:`settings-primary`,disabled:z||!e||(o?!D.trim()||!k.trim():!x||!G),children:z?`Adding agent…`:`Add and connect`})]})]})]})]}):null]})}function N(e){let t=(0,A.useRef)(null),n=(0,A.useRef)(e);return n.current=e,(0,A.useEffect)(()=>{let e=document.activeElement instanceof HTMLElement?document.activeElement:null,r=()=>[...t.current?.querySelectorAll(`button:not(:disabled), input:not(:disabled), select:not(:disabled), a[href], [tabindex="0"]`)??[]].filter(e=>e.getClientRects().length>0);r()[0]?.focus();let i=e=>{if(document.querySelector(`.native-setup-terminal`)||(e.key===`Escape`&&(e.preventDefault(),e.stopPropagation(),n.current()),e.key!==`Tab`))return;let t=r(),i=t[0],a=t.at(-1);e.shiftKey&&document.activeElement===i?(e.preventDefault(),a?.focus()):!e.shiftKey&&document.activeElement===a&&(e.preventDefault(),i?.focus())};return document.addEventListener(`keydown`,i),()=>{document.removeEventListener(`keydown`,i),e?.isConnected&&e.focus()}},[]),t}function P(e,t,n){let{recovery:r}=C(e),i=(0,A.useRef)(r);(0,A.useEffect)(()=>{let e=i.current!==r;i.current=r,e&&t&&g(t)&&n()},[r,t,n])}function F({connection:e,onChanged:t}){let[n,r]=(0,A.useState)(!1),[i,a]=(0,A.useState)([]),[o,s]=(0,A.useState)(null),[l,u]=(0,A.useState)(null),[d,f]=(0,A.useState)(0);P(e,o,()=>f(e=>e+1)),(0,A.useEffect)(()=>{let t=new AbortController;return a([]),s(null),e&&c(e,`/v1/url-models/list`,{signal:t.signal}).then(e=>{t.signal.aborted||a(e.models)}).catch(e=>{t.signal.aborted||s(e instanceof Error?e.message:`Could not load your model connections.`)}),()=>t.abort()},[e,d]);async function p(n){if(e&&!l){u(n.id),s(null);try{let r=await c(e,`/v1/url-models/remove`,{method:`POST`,body:JSON.stringify({id:n.id})});a(r.models),await t()}catch(e){s(e instanceof Error?e.message:`Could not remove the connection.`)}finally{u(null)}}}return(0,j.jsxs)(`section`,{"aria-label":`Models from URL`,className:`url-model-connections`,children:[(0,j.jsxs)(`div`,{className:`provider-connections-intro`,children:[(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`h2`,{children:`Models from URL`}),(0,j.jsx)(`p`,{children:`Connect a model endpoint and select it in your chats. `})]}),(0,j.jsx)(`button`,{type:`button`,className:`settings-primary`,disabled:!e,onClick:()=>r(!0),children:`Add model`})]}),o?(0,j.jsx)(y,{error:o,children:(0,j.jsx)(`button`,{type:`button`,onClick:()=>f(e=>e+1),children:`Retry`})}):null,(0,j.jsx)(`div`,{className:`provider-connections-grid`,children:i.map(e=>(0,j.jsxs)(`div`,{className:`provider-connection-card`,children:[(0,j.jsx)(`strong`,{children:e.name}),(0,j.jsx)(`p`,{className:`url-model-endpoint`,children:e.endpoint}),(0,j.jsxs)(`p`,{children:[e.providerName,` · `,e.model,` · `,e.hasToken?`Key saved securely`:`No API key`]}),(0,j.jsx)(`button`,{type:`button`,className:`settings-secondary`,disabled:!!l,onClick:()=>void p(e),children:l===e.id?`Removing…`:`Remove model`})]},e.id))}),n&&e?(0,j.jsx)(I,{providerNames:[...new Set(i.map(e=>e.providerName))],connection:e,onClose:()=>r(!1),onSaved:async e=>{a(e.models),await t(),r(!1)}}):null]})}function I({connection:e,providerNames:t,onClose:n,onSaved:r}){let i=N(n),[a,o]=(0,A.useState)(t[0]?`provider:${t[0]}`:`__new__`),[s,l]=(0,A.useState)(``),u=a===`__new__`?s.trim():a.slice(9),[d,f]=(0,A.useState)(``),[p,m]=(0,A.useState)(``),[g,_]=(0,A.useState)(``),[v,b]=(0,A.useState)(``),[S,C]=(0,A.useState)(null),[w,T]=(0,A.useState)(!1),[E,D]=(0,A.useState)(null),O=(0,A.useRef)(null);(0,A.useEffect)(()=>()=>O.current?.abort(),[]);function k(){C(null),b(``),D(null)}async function M(t){if(O.current)return;let n=new AbortController;O.current=n,T(!0),D(null);try{if(t){let t=await c(e,`/v1/url-models/save`,{method:`POST`,signal:n.signal,body:JSON.stringify({endpoint:d.trim(),token:p,name:g.trim(),model:v,providerName:u})});n.signal.aborted||(m(``),await r(t))}else{let t=await c(e,`/v1/url-models/inspect`,{method:`POST`,signal:n.signal,body:JSON.stringify({endpoint:d.trim(),token:p})});n.signal.aborted||(C(t),b(t.models[0]??``),g.trim()||_(t.models[0]??``))}}catch(e){n.signal.aborted||D(e instanceof Error?e.message:`Connection failed.`)}finally{O.current=null,n.signal.aborted||T(!1)}}function P(e){e.preventDefault(),M(!!S)}return(0,j.jsx)(`div`,{className:`git-dialog-backdrop provider-dialog-backdrop`,role:`presentation`,onMouseDown:e=>{e.target===e.currentTarget&&n()},children:(0,j.jsxs)(`section`,{ref:i,className:`git-dialog provider-details-dialog`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`url-model-title`,tabIndex:-1,children:[(0,j.jsxs)(`div`,{className:`provider-dialog-header`,children:[(0,j.jsx)(`h2`,{id:`url-model-title`,children:`Add model`}),(0,j.jsx)(`button`,{type:`button`,className:`git-dialog-close`,"aria-label":`Close Add model`,onClick:n,children:(0,j.jsx)(h,{size:18})})]}),(0,j.jsxs)(`form`,{className:`url-model-connection-form`,onSubmit:P,children:[(0,j.jsxs)(`div`,{className:`url-model-field`,children:[(0,j.jsx)(`span`,{children:`Provider`}),(0,j.jsx)(x,{label:`Provider`,value:a,disabled:w,floating:!0,options:[...t.map(e=>({value:`provider:${e}`,label:e})),{value:`__new__`,label:`Create new provider`,icon:`plus`,separatorBefore:!!t.length}],onChange:o})]}),a===`__new__`?(0,j.jsxs)(`label`,{children:[`Provider name`,(0,j.jsx)(`input`,{required:!0,maxLength:100,placeholder:`My model provider`,value:s,disabled:w,onChange:e=>l(e.target.value)})]}):null,(0,j.jsxs)(`label`,{children:[`Endpoint URL`,(0,j.jsx)(`input`,{type:`url`,required:!0,placeholder:`https://api.example.com/v1`,value:d,disabled:w,onChange:e=>{f(e.target.value),k()}})]}),(0,j.jsxs)(`label`,{children:[`API key `,(0,j.jsx)(`span`,{className:`settings-footnote`,children:`Optional for endpoints that do not require one`}),(0,j.jsx)(`input`,{type:`password`,autoComplete:`new-password`,spellCheck:!1,value:p,disabled:w,placeholder:`API key`,onChange:e=>{m(e.target.value),k()}})]}),S?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsxs)(`div`,{className:`url-model-field`,children:[(0,j.jsx)(`span`,{children:`Model`}),(0,j.jsx)(x,{label:`Model`,value:v,disabled:w,floating:!0,searchable:!0,options:S.models.map(e=>({value:e,label:e})),onChange:e=>{b(e),_(e)}})]}),(0,j.jsxs)(`label`,{children:[`Display name`,(0,j.jsx)(`input`,{required:!0,maxLength:100,value:g,disabled:w,onChange:e=>_(e.target.value)})]})]}):(0,j.jsx)(`p`,{className:`settings-footnote`,children:`Use the model service’s API base URL. Keys are encrypted on this machine.`}),E?(0,j.jsx)(y,{error:E}):null,(0,j.jsxs)(`div`,{className:`url-model-connection-actions`,children:[(0,j.jsx)(`button`,{className:`settings-primary`,type:`submit`,disabled:w||!u||!!S&&(!v||!g.trim()),children:w?`Connecting…`:S?`Add model`:`Fetch models`}),(0,j.jsx)(`button`,{type:`button`,className:`settings-secondary`,onClick:n,children:`Cancel`})]})]})]})})}var L=[`codex`,`claude-code`,`grok-build`,`opencode`];function R(e){return r(e)||[`claude-code`,`grok-build`,`opencode`].includes(e)}var z={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`}},B=(e,t)=>JSON.stringify([e||``,t||``]);function V({connection:e,providerId:t,config:n,status:a,cachedModels:o,busy:s,onCheck:l}){let[u,f]=(0,A.useState)(null),[m,h]=(0,A.useState)(null),[g,v]=(0,A.useState)(null),[b,x]=(0,A.useState)(!1),[S,C]=(0,A.useState)(n.binaryPath??``),[w,E]=(0,A.useState)(n.sourceHome??``),k=(0,A.useRef)(null),M=(0,A.useRef)(null),N=(0,A.useRef)(l);N.current=l;let P=D(),F=r(t),I=z[t]??{executable:n.acp?.command??``,install:n.acp?.installUrl??``},[L,V]=(0,A.useState)(n.acp?.command??``),[H,U]=(0,A.useState)(JSON.stringify(n.acp?.args??[])),[W,G]=(0,A.useState)(JSON.stringify(n.acp?.env??{},null,2)),K=B(n.binaryPath,n.sourceHome)+JSON.stringify(n.acp),q=B(S.trim(),w.trim())!==B(n.binaryPath,n.sourceHome)||F&&(L!==n.acp?.command||H!==JSON.stringify(n.acp?.args??[])||W!==JSON.stringify(n.acp?.env??{},null,2)),J=s||b||u!==null,Y=(0,A.useCallback)(async e=>{k.current?.abort();let n=new AbortController;k.current=n;let r=setTimeout(()=>n.abort(Error(`Connection check timed out. Retry when the agent is available.`)),45e3);x(!0),h(null);try{let r=await N.current(t,n.signal,e);k.current===n&&!n.signal.aborted&&v(r)}catch(e){k.current===n&&h(e instanceof Error?e.message:`Could not check the agent.`)}finally{clearTimeout(r),k.current===n&&(k.current=null,x(!1))}},[t]);(0,A.useEffect)(()=>{V(n.acp?.command??``),U(JSON.stringify(n.acp?.args??[])),G(JSON.stringify(n.acp?.env??{},null,2)),C(n.binaryPath??``),E(n.sourceHome??``),M.current===K?M.current=null:(f(null),v(null),Y())},[Y,K,n.binaryPath,n.sourceHome,e?.serverUrl,e?.token]),(0,A.useEffect)(()=>()=>{let e=k.current;k.current=null,e?.abort()},[]);async function X(e){if(e.preventDefault(),q&&!J){try{let e=F&&n.acp?{...n.acp,command:L.trim(),args:JSON.parse(H),env:JSON.parse(W)}:n.acp;M.current=B(S.trim(),w.trim())+JSON.stringify(e),await Y({binaryPath:S.trim()||null,sourceHome:w.trim()||null,...F?{acp:e}:{}})}catch(e){h(e instanceof Error?e.message:`Invalid command configuration.`)}M.current=null}}async function Z(){if(!e||g?.status!==`needs_login`)return;let n=new AbortController,r=setTimeout(()=>n.abort(),1e4);k.current?.abort(),k.current=n,x(!0),h(null);try{let r=await c(e,`/v1/providers/${t}/native-setup`,{method:`POST`,body:JSON.stringify({action:`login`}),signal:n.signal});k.current===n&&!n.signal.aborted&&(t===`claude-code`?P.start(r):f(r))}catch(e){k.current===n&&h(e instanceof Error?e.message:`Could not open native login.`)}finally{clearTimeout(r),k.current===n&&(k.current=null,x(!1))}}async function ee(n){if(!e||J||q)return;x(!0),h(null);let r=new AbortController;k.current=r;let i=setTimeout(()=>r.abort(Error(`Authentication timed out. Use the agent’s login and refresh.`)),185e3);try{let i=await c(e,`/v1/providers/${t}/native-setup`,{method:`POST`,body:JSON.stringify({action:`authenticate`,authMethodId:n}),signal:r.signal});r.signal.aborted||(M.current=B(i.settings.providers[t]?.binaryPath,i.settings.providers[t]?.sourceHome)+JSON.stringify(i.settings.providers[t]?.acp),v(i),await Y(),M.current=null)}catch(e){r.signal.aborted||h(e instanceof Error?e.message:`Authentication failed.`)}finally{clearTimeout(i),k.current===r&&(k.current=null,x(!1))}}(0,A.useEffect)(()=>{if(t!==`claude-code`||!P.result)return;let e=P.result.settings.providers[t];(e?.binaryPath||null)===(n.binaryPath||null)&&(e?.sourceHome||null)===(n.sourceHome||null)&&(v(P.result),h(P.result.status===`unavailable`?P.result.error:null))},[P.result,t,n.binaryPath,n.sourceHome]);let Q=g?.settings.modelCaches[t]?.models??o,$=[...new Set(Q.map(e=>i(e.displayName||e.id)))],te=m??g?.error;return(0,j.jsxs)(`div`,{className:`provider-dialog-body native-agent-setup`,children:[(0,j.jsx)(`p`,{children:F?`Uses the configured ${a.displayName} ACP command and its own login.`:`Uses your existing ${a.displayName} installation and login.`}),(0,j.jsxs)(`div`,{className:`native-connection-status`,children:[(0,j.jsx)(`div`,{role:`status`,"aria-live":`polite`,children:b?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(d,{size:16,className:`settings-spin`}),(0,j.jsx)(`span`,{children:`Checking connection…`})]}):g?.status===`ready`?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(O,{size:16}),(0,j.jsx)(`span`,{children:n.enabled?`Connected`:`Connected, disabled for chat`})]}):(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(T,{size:16}),(0,j.jsx)(`span`,{children:g?.status===`missing`?`Installation not found`:g?.status===`needs_login`?`Sign in required`:`Connection needs attention`})]})}),(0,j.jsxs)(`button`,{type:`button`,className:`settings-secondary`,disabled:J||!e,onClick:()=>void Y(),title:`Refresh connection`,"aria-label":`Refresh connection`,children:[(0,j.jsx)(p,{size:14}),` Refresh`]})]}),te?(0,j.jsx)(y,{error:te}):null,$.length?(0,j.jsxs)(`section`,{className:`native-model-section`,"aria-label":`Available models`,children:[(0,j.jsxs)(`div`,{className:`native-model-heading`,children:[(0,j.jsx)(`h3`,{children:`Models`}),(0,j.jsxs)(`small`,{children:[$.length,` available`]})]}),(0,j.jsx)(`div`,{className:`native-model-list`,tabIndex:0,"aria-label":`Models`,role:`list`,children:$.map(e=>(0,j.jsx)(`span`,{role:`listitem`,children:e},e))}),(0,j.jsx)(`small`,{children:`Choose a model when starting a chat.`})]}):null,g?.version?(0,j.jsx)(`small`,{className:`native-agent-version`,children:g.version}):null,!F&&g?.status===`needs_login`?(0,j.jsx)(`button`,{type:`button`,className:`settings-secondary`,disabled:J||q||!e,title:q?`Save changes before signing in to a different installation`:void 0,onClick:()=>t===`claude-code`&&P.active?P.resume():void Z(),children:t===`claude-code`&&P.active?`Continue sign-in`:`Sign in`}):null,F&&g?.authMethods?.length?(0,j.jsx)(`div`,{className:`acp-auth-methods`,children:g.authMethods.map(t=>t.type===`terminal`?(0,j.jsxs)(`p`,{children:[`Use `,t.name,` in the agent’s own terminal, then refresh this connection.`]},t.id):(0,j.jsx)(`button`,{type:`button`,className:`settings-secondary`,disabled:J||q||!e,onClick:()=>void ee(t.id),title:t.description,children:t.name},t.id))}):null,g?.status===`missing`&&I.install?(0,j.jsxs)(`p`,{children:[(0,j.jsxs)(`a`,{href:I.install,target:`_blank`,rel:`noreferrer`,children:[`Install `,a.displayName]}),`, then refresh this connection.`]}):null,t===`codex`&&g?.status===`missing`?(0,j.jsx)(`p`,{children:`OpenPond needs the Codex CLI installed separately from ChatGPT.`}):null,(m||g?.status===`unavailable`)&&!b?(0,j.jsx)(`button`,{type:`button`,className:`settings-secondary`,disabled:J||!e,onClick:()=>void Y(),children:`Retry`}):null,u&&e?(0,j.jsx)(_,{connection:e,command:u.command,displayCommand:u.displayCommand,onComplete:()=>{f(null),Y()},onClose:()=>{f(null),Y()}}):null,R(t)?(0,j.jsxs)(`details`,{children:[(0,j.jsx)(`summary`,{children:`Advanced`}),(0,j.jsxs)(`form`,{className:`provider-card-form`,onSubmit:e=>void X(e),children:[F?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsxs)(`label`,{className:`settings-select-field`,children:[(0,j.jsx)(`span`,{children:`ACP command`}),(0,j.jsx)(`input`,{value:L,disabled:J,onChange:e=>V(e.target.value)})]}),(0,j.jsxs)(`label`,{className:`settings-select-field`,children:[(0,j.jsx)(`span`,{children:`Arguments (JSON array)`}),(0,j.jsx)(`textarea`,{value:H,disabled:J,onChange:e=>U(e.target.value)})]}),(0,j.jsxs)(`label`,{className:`settings-select-field`,children:[(0,j.jsx)(`span`,{children:`Environment overrides (JSON object)`}),(0,j.jsx)(`textarea`,{value:W,disabled:J,onChange:e=>G(e.target.value)})]})]}):null,(0,j.jsxs)(`label`,{className:`settings-select-field`,children:[(0,j.jsx)(`span`,{children:`Executable override`}),(0,j.jsx)(`input`,{value:S,placeholder:`${I.executable} from PATH, or an absolute path`,disabled:J,onChange:e=>C(e.currentTarget.value)})]}),(0,j.jsxs)(`label`,{className:`settings-select-field`,children:[(0,j.jsx)(`span`,{children:F?`Home directory`:`Source home`}),(0,j.jsx)(`input`,{value:w,placeholder:`Use the agent's existing home`,disabled:J,onChange:e=>E(e.currentTarget.value)})]}),q?(0,j.jsx)(`button`,{className:`settings-secondary`,disabled:J||!e,children:`Save changes`}):null]})]}):null]})}var H=[{value:`local_secret`,label:`Saved key`,description:`Encrypted on this machine`},{value:`env`,label:`Environment variable`,description:`Read by the local server`}],U=120,W=new Set([`openai`,`xai`,`zai`]),G=new Set([`chatgpt-subscription`]),K=`https://api.z.ai/api/coding/paas/v4`;function q(e){return e.split(/[\n,]/).map(e=>e.trim()).filter(Boolean)}function J(e){return e?e.available?`Ready`:e.credential.connected?`Configured`:e.credential.lastError||e.lastError?`Needs attention`:e.id===`codex`?`Needs Codex login`:R(e.id)?`Check connection`:e.routing.localByok?`Needs key`:e.enabled?`Enabled`:`Off`:`Unknown`}function Y(e){return e?e.available?`ready`:e.credential.connected?`configured`:e.credential.lastError||e.lastError||e.id===`codex`?`warning`:`muted`:`unknown`}function X(e){return e.credential.connected?e.credential.redacted?e.credential.redacted:e.credential.source===`native_agent_login`?`Native login`:e.credential.source===`chatgpt_subscription`?`ChatGPT subscription`:e.credential.source:e.credential.lastError??`Not connected`}function Z(e){return e?.trim().replace(/\/+$/,``)??``}function ee(e,t){return e.id===`zai`&&Z(t.providers.zai?.baseUrl)===K}function Q(e){return e!==`openpond`&&o(e)}function $(e){return e?W.has(e.id)||e.credentialModes.some(e=>G.has(e)):!1}function te(e){return $(e)?[`api`,`subscription`]:[`api`]}function ne(e,t){return!e||!t||!$(e)?`api`:e.credential.source===`chatgpt_subscription`||ee(e,t)?`subscription`:`api`}function re(e){if(!e)return`Never`;let t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleString()}function ie(e,t,n=U){let r=[],i=new Set,a=new Set(t.map(e=>e.trim()).filter(Boolean)),o=e=>{i.has(e.value)||r.length>=n||(i.add(e.value),r.push(e))};for(let t of e)a.has(t.value)&&o(t);for(let t of e)o(t);return r}function ae({onProvidersChanged:e,checkNativeProvider:t,connection:n,account:i,codex:a,providers:o,providerBusy:s,validationMessage:l,deleteProviderCredential:u,loadProviderModels:f,refreshProviderModels:p,saveProviderConfig:m,saveProviderCredential:h,startOpenAiSubscriptionAuth:g,validateProvider:_}){let[v,x]=(0,A.useState)(null),[C,T]=(0,A.useState)(null),[D,O]=(0,A.useState)(null),k=[...L,...Object.keys(o?.statuses??{}).filter(r)].filter(e=>o?.statuses[e]),N=D?o?.statuses[D]??null:null;function P(e,t){O(e),t&&f(e)}return(0,j.jsxs)(`section`,{className:`account-settings provider-connections-settings`,children:[(0,j.jsxs)(`div`,{className:`provider-connections-heading`,children:[(0,j.jsx)(`h1`,{children:`Providers`}),(0,j.jsx)(M,{connection:n,onChanged:e,onAdded:e=>O(e)})]}),(0,j.jsxs)(`div`,{className:`provider-connections-intro`,children:[(0,j.jsx)(`p`,{children:`Manage your installed agents and login. Sync conversations from Continuous learning.`}),(0,j.jsx)(`button`,{type:`button`,className:`settings-secondary`,onClick:()=>void b({kind:`view`,view:`apps`}),children:`Apps & learning`})]}),o?(0,j.jsx)(`div`,{className:`provider-connections-panel`,children:k.length>0?(0,j.jsx)(`div`,{className:`provider-connections-grid`,role:`list`,children:k.map(t=>{let i=o.statuses[t],a=o.modelCaches[t],l=i.modelIds.length>0&&(a?.models.length??0)<i.modelIds.length,u=s?.startsWith(`${t}:`)??!1,f=Q(t),p=t===`openpond`||!!o.providers[t]?.enabled;return(0,j.jsxs)(`div`,{className:`provider-connection-card`,role:`listitem`,children:[(0,j.jsxs)(`div`,{className:`provider-connection-identity`,children:[(0,j.jsx)(`strong`,{children:i.displayName}),(0,j.jsxs)(`div`,{className:`provider-connection-controls`,children:[t===`codex`||t===`claude-code`?(0,j.jsx)(w,{connection:n,provider:t}):null,(0,j.jsxs)(`label`,{className:`provider-toggle`,"aria-label":`Enable ${i.displayName}`,children:[(0,j.jsx)(`input`,{type:`checkbox`,checked:p,disabled:!f||u,onChange:e=>{m(t,{enabled:e.currentTarget.checked})}}),(0,j.jsx)(`span`,{})]})]})]}),(0,j.jsxs)(`div`,{className:`provider-connection-status ${Y(i)}`,children:[u?(0,j.jsx)(d,{size:13,className:`settings-spin`}):null,(0,j.jsx)(`span`,{children:J(i)})]}),t===`codex`||t===`claude-code`?(0,j.jsx)(E,{connection:n,provider:t}):null,(0,j.jsx)(`button`,{type:`button`,className:`settings-secondary`,onClick:()=>{P(t,l)},children:`Manage`}),r(t)?(0,j.jsx)(`button`,{type:`button`,className:`settings-secondary`,disabled:v!==null||!n,onClick:async()=>{if(n){x(t),T(null);try{e((await c(n,`/v1/providers/acp-registry`,{method:`DELETE`,body:JSON.stringify({providerId:t})})).settings),D===t&&O(null)}catch(e){T(e instanceof Error?e.message:`Could not remove ACP agent.`)}finally{x(null)}}},children:v===t?`Removing…`:`Remove connection`}):null]},t)})}):(0,j.jsx)(`div`,{className:`empty-account-list provider-manager-empty`,children:(0,j.jsx)(`strong`,{children:`No agent providers available`})})}):null,C?(0,j.jsx)(y,{error:C}):null,(0,j.jsx)(F,{connection:n,onChanged:async()=>{n&&e(await S.providerSettings(n))}}),l?(0,j.jsxs)(`div`,{className:`settings-footnote provider-validation-message`,children:[(0,j.jsx)(`span`,{children:`Last validation`}),(0,j.jsx)(`strong`,{children:l})]}):null,D&&N&&o?(0,j.jsx)(oe,{checkNativeProvider:t,connection:n,account:i,codex:a,providerId:D,providerBusy:s,settings:o,status:N,onClose:()=>O(null),onDeleteCredential:u,onRefreshModels:p,onSaveConfig:m,onSaveCredential:h,onStartOpenAiSubscriptionAuth:g,onValidate:_}):null]})}function oe({checkNativeProvider:e,connection:t,account:n,codex:i,providerId:a,providerBusy:s,settings:c,status:l,onClose:u,onDeleteCredential:d,onRefreshModels:f,onSaveConfig:p,onSaveCredential:m,onStartOpenAiSubscriptionAuth:g,onValidate:_,conversationPanel:v}){let y=N(u),[b,x]=(0,A.useState)(`setup`),S=(0,A.useId)(),C=c.providers[a],w=c.modelCaches[a],E=(0,A.useId)(),D=(0,A.useRef)(a),O=Math.max(w?.models.length??0,l.modelIds.length),k=l.routing.localByok&&o(a)&&a!==`codex`&&!R(a),M=(0,A.useMemo)(()=>k?te(l):[],[k,l]),P=M.includes(`subscription`),[F,I]=(0,A.useState)(()=>ne(l,c)),z=k&&F===`subscription`&&P,B=e=>`${E}-${e}-panel`,H=a===`codex`?`Codex app server`:C?.baseUrl??(a===`openpond`?n?.chatApiBaseUrl:null)??`Not set`;return(0,A.useEffect)(()=>{D.current===a?k&&!M.includes(F)&&I(`api`):(D.current=a,I(ne(l,c)))},[F,M,k,a,c,l]),(0,j.jsx)(`div`,{className:`git-dialog-backdrop provider-dialog-backdrop`,role:`presentation`,onMouseDown:u,children:(0,j.jsxs)(`section`,{ref:y,className:`git-dialog provider-details-dialog${v?` agent-setup-dialog`:``}`,role:`dialog`,"aria-modal":`true`,"aria-label":`${l.displayName} provider details`,onMouseDown:e=>e.stopPropagation(),children:[(0,j.jsx)(`button`,{className:`git-dialog-close`,type:`button`,title:`Close`,"aria-label":`Close`,onClick:u,children:(0,j.jsx)(h,{size:16})}),(0,j.jsxs)(`div`,{className:`provider-dialog-header`,children:[(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`h2`,{children:l.displayName}),(0,j.jsx)(`span`,{children:L.includes(a)||r(a)?`Installation and login`:`API and subscription settings`})]}),(0,j.jsx)(`div`,{className:`provider-state-pill ${Y(l)}`,children:J(l)})]}),(L.includes(a)||r(a))&&C?(0,j.jsxs)(`label`,{className:`provider-chat-toggle`,children:[(0,j.jsxs)(`span`,{className:`provider-toggle`,children:[(0,j.jsx)(`input`,{type:`checkbox`,"aria-label":`Enable ${l.displayName} for chat`,checked:C.enabled,disabled:s!==null,onChange:e=>void p(a,{enabled:e.target.checked})}),(0,j.jsx)(`span`,{"aria-hidden":`true`})]}),(0,j.jsxs)(`span`,{children:[`Use `,l.displayName,` for chats`]})]}):null,v?(0,j.jsxs)(`div`,{className:`surface-tabs provider-agent-tabs`,role:`tablist`,"aria-label":`Agent settings`,onKeyDown:e=>{if(e.key!==`ArrowLeft`&&e.key!==`ArrowRight`)return;e.preventDefault();let t=b===`setup`?`sync`:`setup`;x(t),e.currentTarget.querySelector(`#${CSS.escape(`${S}-${t}`)}`)?.focus()},children:[(0,j.jsx)(`button`,{type:`button`,role:`tab`,id:`${S}-setup`,"aria-controls":`${S}-setup-panel`,"aria-selected":b===`setup`,tabIndex:b===`setup`?0:-1,onClick:()=>x(`setup`),children:`Agent setup`}),(0,j.jsx)(`button`,{type:`button`,role:`tab`,id:`${S}-sync`,"aria-controls":`${S}-sync-panel`,"aria-selected":b===`sync`,tabIndex:b===`sync`?0:-1,onClick:()=>x(`sync`),children:`Conversation sync`})]}):null,(0,j.jsxs)(`div`,{hidden:b!==`setup`,id:`${S}-setup-panel`,role:v?`tabpanel`:void 0,"aria-labelledby":v?`${S}-setup`:void 0,children:[k?(0,j.jsx)(`div`,{className:`surface-tabs provider-mode-tabs`,role:`tablist`,"aria-label":`${l.displayName} mode`,children:M.map(e=>(0,j.jsx)(`button`,{type:`button`,role:`tab`,id:`${E}-${e}`,className:F===e?`active`:void 0,"aria-selected":F===e,"aria-controls":B(e),onClick:()=>I(e),children:e===`api`?`API`:`Subscription`},e))}):null,L.includes(a)||r(a)?null:(0,j.jsxs)(`dl`,{className:`provider-dialog-stats`,children:[(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`dt`,{children:`Credential`}),(0,j.jsx)(`dd`,{title:X(l),children:X(l)})]}),z?null:(0,j.jsxs)(j.Fragment,{children:[R(a)?null:(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`dt`,{children:`Base URL`}),(0,j.jsx)(`dd`,{title:H,children:H})]}),(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`dt`,{children:`Model`}),(0,j.jsx)(`dd`,{title:C?.defaultModel??l.defaultModel??void 0,children:C?.defaultModel??l.defaultModel??`Not set`})]}),(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`dt`,{children:`Models`}),(0,j.jsxs)(`dd`,{title:w?.lastError??void 0,children:[O,` cached, `,re(w?.fetchedAt)]})]})]}),a===`codex`?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`dt`,{children:`Account`}),(0,j.jsx)(`dd`,{title:i?.account?.email??void 0,children:i?.account?.label??i?.account?.email??`Not signed in`})]}),(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`dt`,{children:`Binary`}),(0,j.jsx)(`dd`,{title:i?.binaryPath??void 0,children:i?.binaryPath??`Not found`})]})]}):null,l.credential.lastError||w?.lastError||l.lastError?(0,j.jsxs)(`div`,{className:`provider-dialog-error`,children:[(0,j.jsx)(`dt`,{children:`Error`}),(0,j.jsx)(`dd`,{title:l.credential.lastError??w?.lastError??l.lastError??void 0,children:l.credential.lastError??w?.lastError??l.lastError})]}):null]}),a===`codex`?(0,j.jsxs)(j.Fragment,{children:[C?(0,j.jsx)(V,{connection:t,providerId:a,config:C,status:l,cachedModels:w?.models??[],busy:s!==null,onCheck:e},a):null,(0,j.jsxs)(`div`,{className:`provider-dialog-body`,children:[(0,j.jsx)(`h3`,{children:`ChatGPT with the OpenPond harness`}),(0,j.jsx)(`p`,{children:`Native Codex and the OpenPond harness keep their own connections. Choose the execution path in the model picker.`}),(0,j.jsx)(`p`,{children:c.statuses.openai?.credential.connected?`OpenPond harness connected`:`OpenPond harness not connected`}),(0,j.jsx)(`button`,{type:`button`,className:`settings-secondary`,disabled:s!==null,onClick:()=>void g(`browser`),children:`Connect ChatGPT for OpenPond`}),(0,j.jsxs)(`button`,{type:`button`,className:`settings-secondary`,disabled:s!==null,onClick:()=>void p(`openai`,{enabled:!c.providers.openai?.enabled}),children:[c.providers.openai?.enabled?`Disable`:`Enable`,` OpenPond harness route`]})]})]}):R(a)&&C?(0,j.jsx)(V,{connection:t,providerId:a,config:C,status:l,cachedModels:w?.models??[],busy:s!==null,onCheck:e},a):k&&C&&w?(0,j.jsx)(se,{credentialTab:F,credentialTabsId:E,hasSubscriptionTab:P,providerId:a,providerBusy:s,settings:c,status:l,onDeleteCredential:d,onRefreshModels:f,onSaveConfig:p,onSaveCredential:m,onStartOpenAiSubscriptionAuth:g,onValidate:_}):l.routing.localByok&&!o(a)?(0,j.jsxs)(`div`,{className:`provider-dialog-note`,children:[(0,j.jsx)(T,{size:15}),(0,j.jsx)(`span`,{children:`Adapter pending`})]}):null]}),b===`sync`?(0,j.jsx)(`div`,{role:`tabpanel`,id:`${S}-sync-panel`,"aria-labelledby":`${S}-sync`,children:v}):null]})})}function se({credentialTab:e,credentialTabsId:t,hasSubscriptionTab:n,providerId:r,providerBusy:i,settings:a,status:o,onDeleteCredential:c,onRefreshModels:l,onSaveConfig:f,onSaveCredential:h,onStartOpenAiSubscriptionAuth:g,onValidate:_}){let v=a.providers[r],y=(0,A.useMemo)(()=>s(r,a),[r,a]),b=`provider-models-${r}`,S=(0,A.useRef)(r),[C,w]=(0,A.useState)(v.baseUrl??``),[T,E]=(0,A.useState)(v.defaultModel??``),[D,M]=(0,A.useState)(v.modelOverrides.join(`
2
+ `)),[N,P]=(0,A.useState)({baseUrl:!1,defaultModel:!1,modelOverrides:!1}),[F,I]=(0,A.useState)(`local_secret`),[L,R]=(0,A.useState)(``),[z,B]=(0,A.useState)(``),V=i===`${r}:config`,U=i===`${r}:credential`,W=i===`${r}:validate`,G=i===`${r}:models`,K=i===`openai:credential`,J=r===`openai`,Y=r===`xai`,X=r===`zai`,Z=(e=>`${t}-${e}-panel`)(e),ee=e===`subscription`&&n,Q=e===`subscription`&&X?`coding-plan`:`api`,$=Q===`coding-plan`?`Coding Plan key`:`API key`,te=o.credential.connected?Q===`coding-plan`?`Replace saved plan key`:`Replace saved key`:$,ne=Q===`coding-plan`?`Save plan key`:`Save key`,re=(0,A.useMemo)(()=>ie(y,[T,...q(D)]),[T,y,D]),ae=Math.max(0,y.length-re.length);(0,A.useEffect)(()=>{S.current===r?(N.baseUrl||w(v.baseUrl??``),N.defaultModel||E(v.defaultModel??``),N.modelOverrides||M(v.modelOverrides.join(`
3
+ `))):(S.current=r,P({baseUrl:!1,defaultModel:!1,modelOverrides:!1}),w(v.baseUrl??``),E(v.defaultModel??``),M(v.modelOverrides.join(`
4
+ `)))},[v.baseUrl,v.defaultModel,v.modelOverrides,N.baseUrl,N.defaultModel,N.modelOverrides,r]);let oe=F===`env`?!!z.trim():!!L.trim();async function se(e){e.preventDefault(),await f(r,{enabled:!0,baseUrl:C.trim()||null,defaultModel:T.trim()||null,modelOverrides:q(D)}),P({baseUrl:!1,defaultModel:!1,modelOverrides:!1})}async function ce(e){e.preventDefault(),oe&&(F===`env`?await h(r,{source:`env`,envVar:z.trim()}):(await h(r,{source:`local_secret`,value:L}),R(``)))}function le({panel:n=!0}={}){return(0,j.jsxs)(`form`,{className:`provider-credential-panel`,id:n?Z:void 0,role:n?`tabpanel`:void 0,"aria-labelledby":n?`${t}-${e}`:void 0,onSubmit:e=>void ce(e),children:[(0,j.jsxs)(`div`,{className:`provider-card-grid credential-grid`,children:[(0,j.jsxs)(`div`,{className:`settings-select-field`,children:[(0,j.jsx)(`span`,{children:`Credential source`}),(0,j.jsx)(x,{value:F,disabled:U,label:`Credential source`,options:H,onChange:e=>I(e)})]}),F===`env`?(0,j.jsxs)(`label`,{className:`settings-select-field`,children:[(0,j.jsx)(`span`,{children:`Environment variable`}),(0,j.jsx)(`input`,{value:z,disabled:U,placeholder:`PROVIDER_API_KEY`,onChange:e=>B(e.currentTarget.value)})]}):(0,j.jsxs)(`label`,{className:`settings-select-field`,children:[(0,j.jsx)(`span`,{children:$}),(0,j.jsx)(`input`,{type:`password`,value:L,disabled:U,placeholder:te,autoComplete:`off`,onChange:e=>R(e.currentTarget.value)})]})]}),(0,j.jsxs)(`div`,{className:`settings-button-row`,children:[(0,j.jsxs)(`button`,{className:`settings-secondary`,disabled:U||!oe,children:[U?(0,j.jsx)(d,{size:14,className:`settings-spin`}):(0,j.jsx)(k,{size:14}),(0,j.jsx)(`span`,{children:U?`Saving`:ne})]}),(0,j.jsx)(`button`,{type:`button`,className:`settings-icon-button ghost`,"aria-label":`Delete ${o.displayName} credential`,disabled:U||!o.credential.connected,onClick:()=>void c(r),children:(0,j.jsx)(u,{size:15})})]})]})}function ue(){return J?(0,j.jsxs)(`div`,{className:`provider-subscription-panel`,id:Z,role:`tabpanel`,"aria-labelledby":`${t}-subscription`,children:[(0,j.jsxs)(`div`,{className:`provider-dialog-note codex-provider-note`,children:[(0,j.jsx)(k,{size:15}),(0,j.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.`})]}),(0,j.jsxs)(`div`,{className:`settings-button-row`,children:[(0,j.jsxs)(`button`,{type:`button`,className:`settings-secondary`,disabled:K,onClick:()=>void g(`browser`),children:[K?(0,j.jsx)(d,{size:14,className:`settings-spin`}):(0,j.jsx)(k,{size:14}),(0,j.jsx)(`span`,{children:K?`Opening`:`Connect ChatGPT`})]}),(0,j.jsxs)(`button`,{type:`button`,className:`settings-secondary`,disabled:K,onClick:()=>void g(`device`),children:[K?(0,j.jsx)(d,{size:14,className:`settings-spin`}):(0,j.jsx)(k,{size:14}),(0,j.jsx)(`span`,{children:`Device code`})]}),(0,j.jsx)(`button`,{type:`button`,className:`settings-icon-button ghost`,"aria-label":`Delete ${o.displayName} credential`,disabled:K||!o.credential.connected,onClick:()=>void c(r),children:(0,j.jsx)(u,{size:15})})]})]}):Y?(0,j.jsx)(`div`,{className:`provider-subscription-panel`,id:Z,role:`tabpanel`,"aria-labelledby":`${t}-subscription`,children:(0,j.jsxs)(`div`,{className:`provider-dialog-note xai-provider-note`,children:[(0,j.jsx)(k,{size:15}),(0,j.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?(0,j.jsxs)(`div`,{className:`provider-subscription-panel`,id:Z,role:`tabpanel`,"aria-labelledby":`${t}-subscription`,children:[(0,j.jsxs)(`div`,{className:`provider-dialog-note subscription-provider-note`,children:[(0,j.jsx)(k,{size:15}),(0,j.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.`})]}),le({panel:!1})]}):null}return(0,j.jsxs)(`div`,{className:`provider-dialog-body`,children:[ee?null:(0,j.jsxs)(`form`,{className:`provider-card-form`,onSubmit:e=>void se(e),children:[(0,j.jsxs)(`div`,{className:`provider-card-grid`,children:[(0,j.jsxs)(`label`,{className:`settings-select-field`,children:[(0,j.jsx)(`span`,{children:`Base URL`}),(0,j.jsx)(`input`,{value:C,disabled:V,placeholder:`https://api.example.com/v1`,onChange:e=>{P(e=>({...e,baseUrl:!0})),w(e.currentTarget.value)}})]}),(0,j.jsxs)(`label`,{className:`settings-select-field`,children:[(0,j.jsx)(`span`,{children:`Default model`}),(0,j.jsx)(`input`,{list:b,value:T,disabled:V,placeholder:`Model id`,onChange:e=>{P(e=>({...e,defaultModel:!0})),E(e.currentTarget.value)}}),(0,j.jsx)(`datalist`,{id:b,children:re.map(e=>(0,j.jsx)(`option`,{value:e.value,children:e.label},e.value))}),ae>0?(0,j.jsxs)(`small`,{children:[ae,` more cached models hidden from suggestions`]}):null]})]}),(0,j.jsxs)(`div`,{className:`settings-button-row`,children:[(0,j.jsxs)(`button`,{className:`settings-secondary`,disabled:V,children:[V?(0,j.jsx)(d,{size:14,className:`settings-spin`}):(0,j.jsx)(m,{size:14}),(0,j.jsx)(`span`,{children:V?`Saving`:`Save config`})]}),(0,j.jsxs)(`button`,{type:`button`,className:`settings-secondary`,disabled:G,onClick:()=>void l(r),children:[G?(0,j.jsx)(d,{size:14,className:`settings-spin`}):(0,j.jsx)(p,{size:14}),(0,j.jsx)(`span`,{children:G?`Refreshing`:`Refresh models`})]}),(0,j.jsxs)(`button`,{type:`button`,className:`settings-secondary`,disabled:W||!T.trim(),onClick:()=>void _(r,{baseUrl:C.trim()||void 0,modelId:T.trim()||void 0}),children:[W?(0,j.jsx)(d,{size:14,className:`settings-spin`}):(0,j.jsx)(O,{size:14}),(0,j.jsx)(`span`,{children:W?`Testing`:`Test`})]})]})]}),(0,j.jsx)(`div`,{className:`provider-card-form credential-form`,children:ee?ue():le()})]})}function ce({connection:e,onError:t,onPreferences:n,onProviders:r,preferences:i,providers:o}){let s=(0,A.useRef)(e);s.current=e;let[l,u]=(0,A.useState)(i.defaultChatProvider),[d,f]=(0,A.useState)(i.defaultChatModel),[p,m]=(0,A.useState)(!1),[h,g]=(0,A.useState)(null),[_,v]=(0,A.useState)(null);(0,A.useEffect)(()=>{u(i.defaultChatProvider),f(i.defaultChatModel)},[i.defaultChatProvider,i.defaultChatModel]);async function y(r){if(r.preventDefault(),e){m(!0),t(null);try{n(await S.savePreferences(e,{defaultChatProvider:l,defaultChatModel:a(l,d,o)}))}catch(e){t(e instanceof Error?e.message:String(e))}finally{m(!1)}}}function b(e){u(e),f(t=>a(e,t,o))}async function x(n,r,i){if(!e)return null;g(`${n}:${r}`),v(null),t(null);try{return await i()}catch(e){return t(e instanceof Error?e.message:String(e)),null}finally{g(null)}}async function C(t,n){await x(t,`config`,async()=>{let i=await S.saveProviderSettings(e,{providers:{[t]:n}});return r(i),i})}async function w(t,n){await x(t,`credential`,async()=>{let i=await S.saveProviderCredential(e,t,n);return r(i),i})}async function T(t){await x(t,`credential`,async()=>{let n=await S.deleteProviderCredential(e,t,{});return r(n),n})}async function E(t){return x(`openai`,`credential`,async()=>{let n=await S.startOpenAiSubscriptionAuth(e,{method:t});return n.method===`browser`?(window.open(n.url,`_blank`,`noopener,noreferrer`),v(`OpenAI ChatGPT login opened in your browser. Return here after authorization.`)):(window.open(n.url,`_blank`,`noopener,noreferrer`),v(`OpenAI device login started. Enter code ${n.userCode}.`)),D(n.expiresAt),n})}async function D(t){if(e)for(;Date.now()<t;){await new Promise(e=>setTimeout(e,2500));try{let t=await S.providerSettings(e);r(t);let n=t.statuses.openai?.credential;if(n?.connected&&n.source===`chatgpt_subscription`){v(`OpenAI ChatGPT subscription connected.`);return}}catch{}}}async function O(t){await x(t,`models`,async()=>{let n=await S.refreshProviderModels(e,t,{force:!0});return r(n.providers),n})}async function k(t){await x(t,`models`,async()=>{let n=await S.loadProviderModels(e,t,{limit:500});return r(n.providers),n})}async function j(t,n={}){await x(t,`validate`,async()=>{let i=await S.validateProviderCredential(e,t,n);return v(i.ok?`${t} validated${i.modelId?` with ${i.modelId}`:``}.`:i.errors.join(`
5
+ `)||`${t} validation failed.`),r(i.providers),i})}return{checkNativeProvider:async(t,n,i)=>{if(!e)throw Error(`Connect to the local OpenPond server first.`);n.throwIfAborted(),i&&await S.saveProviderSettings(e,{providers:{[t]:i}}),n.throwIfAborted();let a=await c(e,`/v1/providers/${t}/native-setup`,{method:`POST`,body:JSON.stringify({action:`check`}),signal:n});if(n.throwIfAborted(),s.current?.serverUrl!==e.serverUrl||s.current?.token!==e.token)throw new DOMException(`Connection changed`,`AbortError`);return r(a.settings),a},defaultModel:d,defaultProvider:l,providerBusy:h,saving:p,validationMessage:_,changeDefaultProvider:b,deleteProviderCredential:T,loadProviderModels:k,refreshProviderModels:O,saveProviderConfig:C,saveProviderCredential:w,saveProviders:y,setDefaultModel:f,startOpenAiSubscriptionAuth:E,validateProvider:j}}export{N as a,P as i,oe as n,k as o,ae as r,ce as t};
@@ -0,0 +1 @@
1
+ import{t as e}from"./createLucideIcon-CXQny8HU.js";var t=e(`square`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}]]);export{t};
@@ -1 +1 @@
1
- import{t as e}from"./createLucideIcon-DmttVQ_a.js";var t=e(`square-terminal`,[[`path`,{d:`m7 11 2-2-2-2`,key:`1lz0vl`}],[`path`,{d:`M11 13h4`,key:`1p7l4v`}],[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,ry:`2`,key:`1m3agn`}]]);export{t};
1
+ import{t as e}from"./createLucideIcon-CXQny8HU.js";var t=e(`square-terminal`,[[`path`,{d:`m7 11 2-2-2-2`,key:`1lz0vl`}],[`path`,{d:`M11 13h4`,key:`1p7l4v`}],[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,ry:`2`,key:`1m3agn`}]]);export{t};
@@ -0,0 +1,3 @@
1
+ import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{g as t}from"./index-D9WbJMSq.js";import{n,s as r}from"./client-choice-storage-BdQ_YDuk.js";import{S as i}from"./app-models-CUA9XB9U.js";import{l as a}from"./connected-app-mentions-D3wRZLwI.js";import{n as o,t as s}from"./profile-agent-labels-Duh96b8x.js";var c=`openpond:last-chat-selection`;function l(){let e=n.getItem(c);if(!e)return null;try{return r.parse({chatSelection:JSON.parse(e)}).chatSelection??null}catch{return null}}function u(e,t){let n=l(),r=n?.modelsByProvider?.[e]??(n?.provider===e?n.model:void 0);return i(e,r,t)}function d(e,t){let r=l(),i={...r?{[r.provider]:r.model}:{},...r?.modelsByProvider,[e]:t};n.setItem(c,JSON.stringify({provider:e,model:t,modelsByProvider:i}))}function f(e,t){let n=m(e,`codex`,t);return n?p(n):null}function ee(e){let t=!1,n=h(e);for(let r=e.length-1;r>=0;--r){let i=e[r];if(re(i)){t=!0;continue}let a=D(i?.data);if(i?.name===`diagnostic`&&a){if(a.kind===`thread_goal_cleared`)return null;if(a.kind===`thread_goal`){let e=m(D(a.goal),O(a.provider),n);if(e){let n=p(e);return t&&n.tone===`active`?null:n}}if(a.kind===`goal_context`){let e=_(i.output??``,O(a.provider)??`codex`,n);if(e){let n=p(e);return t&&n.tone===`active`?null:n}}}}return null}function te(e){let t=h(e);for(let n=e.length-1;n>=0;--n){let r=e[n],i=D(r?.data);if(r?.name===`diagnostic`&&i){if(i.kind===`thread_goal_cleared`&&i.synthetic!==!0)return null;if(i.kind===`thread_goal`){let e=m(D(i.goal),O(i.provider),t);if(!e)continue;let n=p(e);return n.tone===`active`?n:null}if(i.kind===`goal_context`){let e=_(r.output??``,O(i.provider)??`codex`,t);if(!e)continue;let n=p(e);return n.tone===`active`?n:null}}}return null}function ne(e){let t=D(D(e)?.codexGoalRuntime),n=m(t,O(t?.provider)??`codex`);if(!n)return null;let r=p(n);return r.tone===`active`?r:null}function re(e){return e?.name===`turn.completed`||e?.name===`turn.interrupted`||e?.name===`turn.failed`}function p(e){let t=v(e.status),n=C(e.timeUsedSeconds),r=`Goal ${n}`,i=e.tokensUsed===null?null:e.tokenBudget===null?`${T(e.tokensUsed)} tokens`:`${T(e.tokensUsed)} / ${T(e.tokenBudget)} tokens`,a=i?`${e.statusLabel} · ${i}`:e.statusLabel;return{objective:e.objective,status:e.status,timeUsedSeconds:e.timeUsedSeconds,tokensUsed:e.tokensUsed,tokenBudget:e.tokenBudget,actionLabel:t.actionLabel,timeLabel:n,label:r,detail:a,tooltip:`Goal runtime: ${w(e.timeUsedSeconds)}. ${a}. ${e.objective}`,tone:t.tone,observedAt:e.observedAt}}function ie(e,t){if(!e||e.tone!==`active`||!e.observedAt)return e;let n=g(e.observedAt,t);if(n<=0)return e;let r=e.timeUsedSeconds+n,i=C(r);return{...e,timeUsedSeconds:r,timeLabel:i,label:`Goal ${i}`,tooltip:`Goal runtime: ${w(r)}. ${e.detail}. ${e.objective}`,observedAt:t}}function m(e,t=null,n=null){if(!e)return null;let r=O(e.objective)??`Active goal`,i=O(e.status)??`active`;if((k(t)??k(O(e.provider)))!==`codex`)return null;let a=n??O(e.updatedAt)??O(e.updated_at)??null,o=A(e.timeUsedSeconds)??A(e.time_used_seconds)??0,s=O(e.activeSinceAt)??O(e.active_since_at),c=v(i).tone===`active`?g(s??O(e.createdAt)??O(e.created_at),a):0,l=s?o+c:Math.max(o,c),u=A(e.tokensUsed)??A(e.tokens_used),d=A(e.tokenBudget)??A(e.token_budget);return{objective:r,status:i,statusLabel:S(i),timeUsedSeconds:Math.max(0,Math.floor(l)),tokensUsed:u===null?null:Math.max(0,Math.floor(u)),tokenBudget:d===null?null:Math.max(0,Math.floor(d)),observedAt:a}}function h(e){for(let t=e.length-1;t>=0;--t){let n=e[t]?.timestamp;if(n&&Number.isFinite(Date.parse(n)))return n}return null}function g(e,t){if(!e||!t)return 0;let n=Date.parse(e),r=Date.parse(t);return!Number.isFinite(n)||!Number.isFinite(r)||r<=n?0:Math.floor((r-n)/1e3)}function _(e,t=null,n=null){if(!e.trim()||k(t)!==`codex`)return null;let r=y(e,`Status`)??`active`,i=b(e,`Tokens used`),a=b(e,`Token budget`),o=b(e,`Time used seconds`)??b(e,`Time spent pursuing goal`)??b(e,`Elapsed seconds`)??0;return{objective:x(e,`objective`)??x(e,`untrusted_objective`)??`Active goal`,status:r,statusLabel:S(r),timeUsedSeconds:Math.max(0,Math.floor(o)),tokensUsed:i,tokenBudget:a,observedAt:n}}function v(e){switch(ae(e)){case`active`:case`running`:return{tone:`active`,actionLabel:`Pursuing goal`};case`paused`:return{tone:`paused`,actionLabel:`Goal paused`};case`blocked`:return{tone:`limited`,actionLabel:`Goal blocked`};case`complete`:case`completed`:case`achieved`:return{tone:`done`,actionLabel:`Goal achieved`};case`failed`:return{tone:`limited`,actionLabel:`Goal failed`};case`cancelled`:case`canceled`:case`stopped`:return{tone:`limited`,actionLabel:`Goal cancelled`};case`budget_limited`:return{tone:`limited`,actionLabel:`Goal budget limited`};default:return{tone:`active`,actionLabel:`Goal status unknown`}}}function ae(e){return e.trim().toLowerCase().replace(/[-\s]+/g,`_`)}function y(e,t){let n=t.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`);return RegExp(`^\\s*-?\\s*${n}:\\s*(.+?)\\s*$`,`im`).exec(e)?.[1]?.trim()||null}function b(e,t){let n=y(e,t);if(!n)return null;let r=n.replace(/,/g,``),i=/-?\d+(?:\.\d+)?/.exec(r);if(!i)return null;let a=Number(i[0]);return Number.isFinite(a)?a:null}function x(e,t){return RegExp(`<${t}>\\s*([\\s\\S]*?)\\s*<\\/${t}>`,`i`).exec(e)?.[1]?.trim()||null}function S(e){return e.replace(/([a-z])([A-Z])/g,`$1 $2`).replace(/[_-]+/g,` `).replace(/\b\w/g,e=>e.toUpperCase())}function C(e){if(e<60)return`${e}s`;let t=Math.floor(e/60);if(t<60)return`${t}m`;let n=Math.floor(t/60),r=t%60;return r>0?`${n}h ${r}m`:`${n}h`}function w(e){if(e<60)return`${e} ${e===1?`second`:`seconds`}`;let t=Math.floor(e/60);if(t<60)return`${t} ${t===1?`minute`:`minutes`}`;let n=Math.floor(t/60),r=t%60;return r===0?`${n} ${n===1?`hour`:`hours`}`:`${n}h ${r}m`}function T(e){if(e<1e3)return String(e);if(e>=1e6){let t=e/1e6;return t<10?`${E(t,2)}M`:t<100?`${E(t,1)}M`:`${Math.round(t)}M`}let t=e/1e3;return t>=10||Number.isInteger(t)?`${Math.round(t)}k`:`${t.toFixed(1)}k`}function E(e,t){return e.toFixed(t).replace(/\.?0+$/,``)}function D(e){return e&&typeof e==`object`&&!Array.isArray(e)?e:null}function O(e){return typeof e==`string`&&e.trim()?e.trim():null}function k(e){return e?.trim().toLowerCase()||null}function A(e){return typeof e==`number`&&Number.isFinite(e)?e:null}var j=e(t(),1),oe=1e3;function se(e){let[t,n]=(0,j.useState)(()=>new Date().toISOString());return(0,j.useEffect)(()=>{if(!e)return;let t=()=>{document.visibilityState!==`hidden`&&n(new Date().toISOString())};t();let r=window.setInterval(t,oe);return()=>window.clearInterval(r)},[e]),t}var M=`openpond-agent`,N=`openpond-profile-action`;function P(e){return e&&typeof e==`object`&&!Array.isArray(e)?e:null}function F(e){return typeof e==`string`&&e.trim()?e.trim():null}function I(e){return e.displayPrompt&&/(?:^|\s)@[A-Za-z0-9_-]+/.test(e.displayPrompt)?`mention`:`slash`}function ce(e){let t=P(e),n=F(t?.scope);return n!==`entire_manifest`&&n!==`start`&&n!==`action`&&n!==`service`&&n!==`schedule`?null:{scope:n,name:F(t?.name)}}function le(e){let t=F(e);return t!==`readonly`&&t!==`attempt`&&t!==`feature`&&t!==`rollout`&&t!==`replay`&&t!==`template_build`&&t!==`scheduled_run`&&t!==`patch_only`&&t!==`hotfix`&&t!==`multi_feature_batch`?null:t}function ue(e,t=null){return{id:`agent:${e.id}`,name:e.slug||e.name,label:e.name,description:e.description||(t?`Agent for ${t}`:`OpenPond Agent`),visibility:`default`,inputSchema:null,outputSchema:null,implementation:{type:M,agentId:e.id,agentName:e.name,teamId:e.teamId,projectId:e.projectId,projectName:t,selectedEntrypoint:e.selectedEntrypoint,workflowMode:e.defaultWorkflowMode},mcp:null,invokesModel:!0}}function de(e){let t=P(e.implementation);if(t?.type!==M)return null;let n=F(t.agentId),r=F(t.teamId),i=F(t.projectId),a=ce(t.selectedEntrypoint),o=le(t.workflowMode);return!n||!r||!i||!a||!o?null:{agentId:n,agentName:F(t.agentName)??e.label??e.name??e.id,teamId:r,projectId:i,projectName:F(t.projectName),selectedEntrypoint:a,workflowMode:o}}function L(e,t={}){let n=t.agentName?.trim()||null;return{...e,implementation:{...P(e.implementation)??{},type:N,actionId:e.id,...n?{agentName:n}:{}},invokesModel:e.invokesModel??!0}}function fe(e){if(!e)return[];let t=new Map(e.agents.filter(e=>e.enabled).map(e=>[e.id,e.name]));return e.actionCatalog.filter(e=>!e.agentId||t.has(e.agentId)).map(e=>L(e,{agentName:e.agentId?t.get(e.agentId):null}))}function R(e){return!!(e&&B(e))}function z(e){return!!(e&&B(e)&&e.sourceActionId===`chat`)}function B(e){let t=P(e.implementation);if(t?.type!==N)return null;let n=F(t.actionId)??e.id;return n?{actionId:n,actionLabel:e.label??e.name??n}:null}function V({action:e,attachments:t=[],displayPrompt:n,prompt:r,sessionId:i}){return{action:e.actionId,input:{prompt:r,message:r,source:`openpond_app`,...t.length>0?{attachments:t}:{}},metadata:{source:`openpond_app`,selectedActionId:e.actionId,selectedActionLabel:e.actionLabel,selectedBy:I({displayPrompt:n,prompt:r}),...n&&n!==r?{displayPrompt:n}:{},...i?{sessionId:i}:{}}}}function pe({action:e,attachments:t=[],displayPrompt:n,prompt:r,teamId:i}){return{teamId:i,triggerType:`manual`,entrypoint:{scope:`action`,name:e.id},input:{prompt:r,message:r,actionName:e.id,source:`openpond_app`,...t.length>0?{attachments:t}:{}},metadata:{source:`openpond_app`,selectedActionId:e.id,selectedActionLabel:e.label??e.name??e.id,selectedBy:I({displayPrompt:n,prompt:r}),...n&&n!==r?{displayPrompt:n}:{}}}}function me({agent:e,attachments:t=[],displayPrompt:n,prompt:r}){return{teamId:e.teamId,triggerType:`manual`,entrypoint:e.selectedEntrypoint,input:{prompt:r,message:r,source:`openpond_app`,...t.length>0?{attachments:t}:{}},metadata:{source:`openpond_app`,selectedAgentId:e.agentId,selectedAgentName:e.agentName,selectedActionId:`agent:${e.agentId}`,selectedActionLabel:e.agentName,selectedBy:I({displayPrompt:n,prompt:r}),...n&&n!==r?{displayPrompt:n}:{}},workflowMode:e.workflowMode}}var he=`openpond-profile-action`;function ge(e){return e&&typeof e==`object`&&!Array.isArray(e)?e:null}function H(e){return typeof e==`string`&&e.trim()?e.trim():null}function _e(e){let t=ge(e.implementation);if(t?.type!==he)return null;let n=H(t.actionId)??e.id;if(e.sourceActionId!==`chat`&&n!==`chat`&&!n.endsWith(`.chat`))return null;let r=H(e.label);if(r&&!s(r))return o({label:r,description:e.description});let i=H(t.agentName)??H(e.name);return o({actionId:n,description:e.description,name:i})}function U(e){return _e(e)||e.label?.trim()||e.name?.trim()||e.id}function W(e){let t=typeof e.implementation?.type==`string`?e.implementation.type:null;return t===`openpond-agent`?`OpenPond Agent`:t===`openpond-profile-action`&&(e.sourceActionId===`chat`||e.id===`chat`||e.id.endsWith(`.chat`))?`Profile agent`:t===`workflow`?`Workflow-backed action`:t===`agent`?`Agent-backed action`:t===`remote-agent`?`Remote-agent action`:t===`chat`||t===`intent-router`?`Chat action`:e.id}var ve=new Set([`action`,`agent`,`chat`,`customer`,`default`,`filter`,`items`,`open`,`openpond`,`profile`,`run`,`summarize`,`track`,`workflow`]);function G(e){return e&&typeof e==`object`&&!Array.isArray(e)?e:null}function K(e){return typeof e==`string`&&e.trim()?e.trim():null}function q(e,t,n={}){let r=K(t)?a(String(t)):``;r&&(n.generic||!ve.has(r))&&e.add(r)}function J(e,t){let n=K(t);if(n)for(let t of n.split(/[.:/\\\s]+/g))q(e,t)}function ye(e,t){let n=K(t);if(n)for(let t of n.split(/[^A-Za-z0-9_-]+/g))t.length<4||q(e,t)}function Y(e){let t=new Set,n=K(G(e.implementation)?.actionId);return q(t,e.id,{generic:!0}),J(t,e.id),q(t,n,{generic:!0}),J(t,n),q(t,e.name,{generic:!0}),J(t,e.name),q(t,e.label,{generic:!0}),J(t,e.label),ye(t,e.description),t}function be(e){let t=G(e.implementation);return[e.id,e.name??``,e.label??``,e.description??``,K(t?.actionId)??``,K(t?.agentName)??``,W(e),...Array.from(Y(e))].join(` `).toLowerCase()}function xe(e,t,n=8){let r=a(t);return e.length===0?[]:e.filter(e=>!r||be(e).includes(r)).slice(0,n)}function Se(e){return Array.from(e.matchAll(/(?:^|\s)@([A-Za-z0-9_-]+)/g)).map(e=>a(e[1]??``)).filter(Boolean)}function Ce(e,t){let n=t.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`);return e.replace(RegExp(`(^|\\s)@${n}(?=\\s|$)`,`g`),`$1`).replace(/\s+/g,` `).trim()}function we(e,t){let n=Se(e);if(n.length===0||t.length===0)return null;let r=new Map;for(let e of n)for(let n of t)Y(n).has(e)&&r.set(n.id,{action:n,mention:e});if(r.size!==1)return null;let i=Array.from(r.values())[0];return{action:i.action,mention:i.mention,prompt:Ce(e,i.mention)}}function Te(e){return U(e)}function Ee(e){return e.description||W(e)}var X=[{id:`agent`,command:`/agent`,label:`Author Agent`,description:`Create or improve a Profile Agent in a normal skill-backed turn.`,subcommands:[`create`,`improve`,`help`]},{id:`skill`,command:`/skill`,label:`Manage skills`,description:`Create, edit, and use reusable skills for the selected provider.`,subcommands:[`create`,`edit`,`list`,`help`]},{id:`goal`,command:`/goal`,label:`Codex goal`,description:`Use Codex-native Goal mode.`},{id:`workflow`,command:`/workflow`,label:`Schedule workflow`,description:`Create a recurring prompt that posts each run back into this chat.`},{id:`submit-issue`,command:`/submit-issue`,label:`Submit issue`,description:`File a GitHub issue in openpond/openpond through the connected GitHub app.`},{id:`train`,command:`/train`,label:`Create training task`,description:`Create a training plan from this chat or select chats in Training.`},{id:`sync-cloud`,command:`/sync-cloud`,label:`Upload/sync to Cloud`,description:`Start a chat-visible source upload for the selected Project.`}];function De(e){return X.filter(t=>t.id!==`goal`||e===`codex`)}function Z(e,t){return t===`work`?e.id===`submit-issue`||e.id===`workflow`:t===`development`?e.id!==`workflow`:t!==`chat`||e.id!==`sync-cloud`}function Oe(e,t){return De(e).filter(e=>Z(e,t))}var ke=new Set(X.map(e=>e.id));function Ae(e){return e.subcommands?.length?e.subcommands.join(`, `):e.description}function je(e){return[e.id,e.command,e.label,e.description].join(` `)}function Q(e){return(e.subcommands??[]).flatMap(t=>[t,`${e.id} ${t}`,`${e.command} ${t}`]).join(` `)}function Me(e){let t=/^\/([a-z][a-z0-9_-]*)(?:\s+([\s\S]*))?$/.exec(e.trim());if(!t)return null;let n=t[1];return ke.has(n)?{command:n,args:t[2]?.trim()??``}:null}function Ne(e){let t=e.trim();if(!t.startsWith(`!`))return null;let n=t.slice(1).trim();return n?{command:n}:null}function Pe({commands:e=X,prompt:t,limit:n=10}){if(!t.startsWith(`/`))return[];let r=t.slice(1).trim().toLowerCase();if(!r)return e.slice(0,n);let i=e.filter(e=>e.id.startsWith(r));if(i.length>0)return i.slice(0,n);let a=e.filter(e=>je(e).toLowerCase().includes(r));return(a.length>0?a:e.filter(e=>Q(e).toLowerCase().includes(r))).slice(0,n)}var $=`openpond/openpond`,Fe=`github.issue.write`;function Ie(e){return e.some(e=>e.provider===`github`&&(e.ref.capabilities??[]).includes(Fe))}function Le(e){return[`Title: ${e.title.trim()}`,``,`Description:`,e.description.trim()].join(`
2
+ `)}function Re(e){let t=e.trim();return[`@github Submit this request as a new GitHub issue in ${$}.`,`Use the GitHub connected app write operation github.issue.create with input.repo set to ${$}, a concise title, and a complete issue body that preserves the request.`,`This slash command is the user's explicit intent to create the issue.`,`Before creating, search open issues in the repository for an obvious duplicate. If a clear duplicate exists, do not create a new issue; report the existing issue instead.`,``,`Issue request:\n${t}`].join(`
3
+ `)}export{f as A,V as C,z as D,B as E,u as F,l as I,d as L,te as M,ie as N,se as O,c as P,L as S,de as T,U as _,X as a,pe as b,Pe as c,Me as d,Ee as f,W as g,we as h,Ie as i,ee as j,ne as k,Oe as l,xe as m,Re as n,Z as o,Te as p,Le as r,Ae as s,$ as t,Ne as u,me as v,R as w,fe as x,ue as y};