openpond 0.2.54 → 0.2.55

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (254) hide show
  1. package/dist/app-server.d.ts +1513 -99
  2. package/dist/app-server.js +1 -1
  3. package/dist/chunks/actions-command-WTFZA7LF.js +2 -0
  4. package/dist/chunks/{app-layer-I7MZYVLL.js → app-layer-Y2UERCPY.js} +1 -1
  5. package/dist/chunks/app-server-runtime-2RM3N4I6.js +2 -0
  6. package/dist/chunks/apps-KDNWYO3G.js +2 -0
  7. package/dist/chunks/chunk-2DFR7PJ4.js +2460 -0
  8. package/dist/chunks/chunk-4CRM2ADK.js +2 -0
  9. package/dist/chunks/{chunk-7ZG3IT7C.js → chunk-4WEUCGJ3.js} +6 -6
  10. package/dist/chunks/chunk-55G6B54U.js +6 -0
  11. package/dist/chunks/chunk-73G5UYBB.js +12 -0
  12. package/dist/chunks/{chunk-DALJMSJG.js → chunk-ARQEJOEK.js} +24 -24
  13. package/dist/chunks/chunk-B7QDZPNX.js +2 -0
  14. package/dist/chunks/chunk-BFKYRQMA.js +2 -0
  15. package/dist/chunks/{chunk-AH22RHPS.js → chunk-BQAF5P7K.js} +2 -2
  16. package/dist/chunks/{chunk-YJ4PNAST.js → chunk-BTI4N7YO.js} +1 -1
  17. package/dist/chunks/chunk-C6D4WAYN.js +6 -0
  18. package/dist/chunks/chunk-CGBI2VYJ.js +2 -0
  19. package/dist/chunks/chunk-DLVPSCTB.js +2 -0
  20. package/dist/chunks/{chunk-UJ5EFSEC.js → chunk-G6JMQGX7.js} +1 -1
  21. package/dist/chunks/chunk-GGIG3XU7.js +3 -0
  22. package/dist/chunks/chunk-IODUCRBA.js +58 -0
  23. package/dist/chunks/chunk-JIMU3KDA.js +24 -0
  24. package/dist/chunks/chunk-JUJSA7KI.js +22 -0
  25. package/dist/chunks/chunk-K5SBVO3B.js +195 -0
  26. package/dist/chunks/chunk-KD3QVRIJ.js +21 -0
  27. package/dist/chunks/chunk-KGNCKIFP.js +3 -0
  28. package/dist/chunks/chunk-L4235TRQ.js +140 -0
  29. package/dist/chunks/{chunk-N5QNXMIS.js → chunk-MH3LHSGX.js} +1 -1
  30. package/dist/chunks/chunk-MVF3F5QS.js +2 -0
  31. package/dist/chunks/{chunk-N3DEA6PG.js → chunk-NNIRIUSY.js} +1 -1
  32. package/dist/chunks/{chunk-WITSXYEW.js → chunk-NOTXPD2T.js} +1 -1
  33. package/dist/chunks/{chunk-T5LE6R5S.js → chunk-OSIO7PLX.js} +1 -1
  34. package/dist/chunks/chunk-OULAKUIN.js +2 -0
  35. package/dist/chunks/chunk-OWNLDB2O.js +2 -0
  36. package/dist/chunks/{chunk-NAZ26IZL.js → chunk-Q7AXHFZV.js} +1 -1
  37. package/dist/chunks/chunk-QDHMP5FS.js +2 -0
  38. package/dist/chunks/chunk-QKD5OMDI.js +2 -0
  39. package/dist/chunks/{chunk-YD55Z5H3.js → chunk-QRAKXZOC.js} +10 -10
  40. package/dist/chunks/{chunk-JDLAHVAJ.js → chunk-R27YGT77.js} +1 -1
  41. package/dist/chunks/chunk-R2BSIRYL.js +3 -0
  42. package/dist/chunks/chunk-SHQOIROR.js +42 -0
  43. package/dist/chunks/chunk-STDMBJOQ.js +9 -0
  44. package/dist/chunks/chunk-T4QGDQHP.js +4 -0
  45. package/dist/chunks/{chunk-R3XFY7VL.js → chunk-TERVLCRG.js} +1 -1
  46. package/dist/chunks/{chunk-PA7XP42P.js → chunk-U2YMBCX7.js} +1 -1
  47. package/dist/chunks/{chunk-GXSTZBM6.js → chunk-UA5DA5I2.js} +1 -1
  48. package/dist/chunks/chunk-VJEZPDBS.js +5 -0
  49. package/dist/chunks/chunk-WDFLCNRC.js +8 -0
  50. package/dist/chunks/chunk-WZYRAR7X.js +16 -0
  51. package/dist/chunks/chunk-YDT7L3VZ.js +24 -0
  52. package/dist/chunks/chunk-YR5ID2SS.js +2 -0
  53. package/dist/chunks/chunk-YUPBAWBJ.js +554 -0
  54. package/dist/chunks/cli-465VC2WP.js +2 -0
  55. package/dist/chunks/{configuration-command-MATM4XR5.js → configuration-command-LAAP2EXT.js} +1 -1
  56. package/dist/chunks/connected-evidence-XM626247.js +2 -0
  57. package/dist/chunks/{continual-PKK2BOTB.js → continual-TTGJ6YTR.js} +1 -1
  58. package/dist/chunks/core-commands-W7EK552V.js +2 -0
  59. package/dist/chunks/datasets-QJWYTTQL.js +2 -0
  60. package/dist/chunks/desktop-test-3B2D34NF.js +3 -0
  61. package/dist/chunks/dist-FAJX2UBW.js +2 -0
  62. package/dist/chunks/{dist-4HV2W6V4.js → dist-HUAE2KFZ.js} +1 -1
  63. package/dist/chunks/{chunk-6VF3Q6QJ.js → dist-SKYG5LZO.js} +2 -4
  64. package/dist/chunks/evaluation-coordination-2MONR4AX.js +2 -0
  65. package/dist/chunks/experiment-improvements-WVQ5FK46.js +2 -0
  66. package/dist/chunks/experiments-S5UQ32QB.js +2 -0
  67. package/dist/chunks/extension-DWMY6D2R.js +4 -0
  68. package/dist/chunks/{help-WLKSACLZ.js → help-A72QDRNG.js} +1 -1
  69. package/dist/chunks/hosted-experiment-improvement-2OWOQLHC.js +3 -0
  70. package/dist/chunks/hosted-harness-runtime-TGFMAV7W.js +2 -0
  71. package/dist/chunks/hosted-profile-candidate-WQSI6HZO.js +3 -0
  72. package/dist/chunks/hosted-profile-compiler-Z2A4TEA6.js +2 -0
  73. package/dist/chunks/hosted-profile-evaluation-control-FKGARUEE.js +2 -0
  74. package/dist/chunks/hosted-profile-evaluation-inspection-QOY2JKV4.js +3 -0
  75. package/dist/chunks/hosted-profile-evaluation-preparation-WVP6CALP.js +3 -0
  76. package/dist/chunks/human-review-TGHQKXFZ.js +2 -0
  77. package/dist/chunks/{import-V3HUGRHR.js → import-4UE5XNSG.js} +1 -1
  78. package/dist/chunks/javascript-isolate-process-source-ZPQKKLR4.js +2 -0
  79. package/dist/chunks/javascript-verifier-worker-source-F3LSGPOY.js +2 -0
  80. package/dist/chunks/learning-R2XBMMEM.js +2 -0
  81. package/dist/chunks/opchat-WULL6CUP.js +3 -0
  82. package/dist/chunks/organizations-I37HISVX.js +2 -0
  83. package/dist/chunks/profile-NOZ6TVXL.js +3 -0
  84. package/dist/chunks/project-agent-T6XKC54C.js +2 -0
  85. package/dist/chunks/sandbox-command-STB47FRY.js +2 -0
  86. package/dist/chunks/{sandbox-template-BBGGPJMI.js → sandbox-template-LKGBDVJ4.js} +1 -1
  87. package/dist/chunks/sql-execution-process-source-B4HQM6ZV.js +2 -0
  88. package/dist/chunks/src-T3KWWCAH.js +322 -0
  89. package/dist/chunks/{src-CR6UZYTX.js → src-ZWJ5IO7A.js} +1 -1
  90. package/dist/chunks/{taskset-LUG3ZU6J.js → taskset-RNYDR4GS.js} +1 -1
  91. package/dist/chunks/{teams-bot-7I4BAUVO.js → teams-bot-H7XT23XB.js} +1 -1
  92. package/dist/chunks/{training-XHE6FVII.js → training-M6FAPRSJ.js} +1 -1
  93. package/dist/cli.js +1 -1
  94. package/dist/index.js +1 -1
  95. package/dist/web/assets/App-CLFfy_Av.js +154 -0
  96. package/dist/web/assets/App-CTlAPuCY.css +1 -0
  97. package/dist/web/assets/{AppDialog-BdusXgU0.js → AppDialog-CPHTPqrx.js} +1 -1
  98. package/dist/web/assets/{AppTerminalPanel-C4uRpnBz.js → AppTerminalPanel-BVj5Tj93.js} +2 -2
  99. package/dist/web/assets/AppsView-O69zEBY3.js +1 -0
  100. package/dist/web/assets/{BrowserSidebar-Bl7V6YO2.js → BrowserSidebar-Pr_Kpe8p.js} +1 -1
  101. package/dist/web/assets/{CartesianChart-BstFbsdn.js → CartesianChart-JPqo6YOf.js} +1 -1
  102. package/dist/web/assets/{CollaborationTabs-B8YAf0c1.js → CollaborationTabs-CAJcQFn2.js} +1 -1
  103. package/dist/web/assets/{CommandMenu-DZct7zUJ.js → CommandMenu-B-w53n9A.js} +1 -1
  104. package/dist/web/assets/{CommunityView-CR0-W-uG.js → CommunityView-DbZKK8_P.js} +1 -1
  105. package/dist/web/assets/{ComposerCreateImproveStrip-DR-Qo7b4.js → ComposerCreateImproveStrip-3_083PF4.js} +1 -1
  106. package/dist/web/assets/{GetStartedView-xqQoMMei.js → GetStartedView-D7JGm_6c.js} +1 -1
  107. package/dist/web/assets/HostedModelLearningReview-DwgMfZ7_.js +1 -0
  108. package/dist/web/assets/{HostedModelLearningSettings-De3i9wF4.js → HostedModelLearningSettings-JRfQadRl.js} +1 -1
  109. package/dist/web/assets/{LabModelVersionDetailPage-DAY1MmqP.js → LabModelVersionDetailPage-BUYflJY_.js} +1 -1
  110. package/dist/web/assets/{LabSkillSidebar-DLnIgnry.js → LabSkillSidebar-BBiqk7Rf.js} +1 -1
  111. package/dist/web/assets/LabsRoute-Ci6vUnSd.js +99 -0
  112. package/dist/web/assets/MainChatThread-BQK3oI2N.js +2 -0
  113. package/dist/web/assets/MainPane-D3ojiN-p.js +18 -0
  114. package/dist/web/assets/{MarkdownText-gJMuefaJ.js → MarkdownText-DOdOVFXL.js} +25 -25
  115. package/dist/web/assets/{NativeSkillSidebar-Dlxb8iOC.js → NativeSkillSidebar-CRI_ri8z.js} +1 -1
  116. package/dist/web/assets/{NewExperienceSwitcher-DM-cqJ-K.js → NewExperienceSwitcher-DhYtfE68.js} +1 -1
  117. package/dist/web/assets/{NewProjectDialog-Cu1q75gq.js → NewProjectDialog-D8sy1gOz.js} +1 -1
  118. package/dist/web/assets/{OutputsPage-DiXMkasl.js → OutputsPage-CbWgrhXA.js} +1 -1
  119. package/dist/web/assets/{ProjectsPage-DqiBHiCB.js → ProjectsPage-DLB67lyA.js} +1 -1
  120. package/dist/web/assets/RightChatPanelStack-ozSKnDyX.js +1 -0
  121. package/dist/web/assets/{RightSidebarHomePanel-CeSFJM5s.js → RightSidebarHomePanel-CKs3OwhD.js} +1 -1
  122. package/dist/web/assets/ScheduledWorkPage-Cafv_QnR.js +1 -0
  123. package/dist/web/assets/SettingsView-T1vYDPjh.js +5 -0
  124. package/dist/web/assets/{TeamChatView-DM0adMtj.js → TeamChatView-vIrmXOY_.js} +2 -2
  125. package/dist/web/assets/{TerminalOverlay-CFlH51DD.js → TerminalOverlay-CAmF__Dq.js} +1 -1
  126. package/dist/web/assets/{TrainingCreationPanel-CgIBVGha.js → TrainingCreationPanel-D75K0yk5.js} +1 -1
  127. package/dist/web/assets/{TrainingDraftPanel-Bbo3RRie.js → TrainingDraftPanel-D7XZePAk.js} +1 -1
  128. package/dist/web/assets/{UsageSettingsSection-CSRjJUSa.js → UsageSettingsSection-CYTmp7PG.js} +1 -1
  129. package/dist/web/assets/WorkSidebarPanel-CODMjVHY.js +1 -0
  130. package/dist/web/assets/WorkspaceDiffPanel-DQGoIjH9.js +14 -0
  131. package/dist/web/assets/WorkspaceEnvironmentMenu-c1pHDskn.js +63 -0
  132. package/dist/web/assets/{WorkspaceGitDialogs-Dgmg-6XG.js → WorkspaceGitDialogs-DrVtapQQ.js} +1 -1
  133. package/dist/web/assets/{WorkspaceMonacoEditor-BR4qxMgU.js → WorkspaceMonacoEditor-BCKzvSj2.js} +3 -3
  134. package/dist/web/assets/arrow-up-right-CP4hZdrJ.js +1 -0
  135. package/dist/web/assets/chunk-NOJECMB7-Bhcms-w5.js +1 -0
  136. package/dist/web/assets/{clipboard-BZzZ82Bk.js → clipboard-BgrXorn-.js} +1 -1
  137. package/dist/web/assets/{cloud-upload-CJPYPVl8.js → cloud-upload-B_zYztb6.js} +1 -1
  138. package/dist/web/assets/{cssMode-WC4Rg1l-.js → cssMode-DanjGgA8.js} +1 -1
  139. package/dist/web/assets/{folder-open-sLZJxLQy.js → folder-open-CdVKbtGq.js} +1 -1
  140. package/dist/web/assets/folder-plus-Cc5KElB6.js +1 -0
  141. package/dist/web/assets/{git-commit-horizontal-Cotm7KEC.js → git-commit-horizontal-CjGIIgRi.js} +1 -1
  142. package/dist/web/assets/{htmlMode-C6oZGeaB.js → htmlMode-DRGDF_UL.js} +1 -1
  143. package/dist/web/assets/index-B5re-RJy.css +1 -0
  144. package/dist/web/assets/{index-BxWTVKtn.js → index-BE-wXZ5R.js} +2 -2
  145. package/dist/web/assets/info-BLj0RvhA.js +1 -0
  146. package/dist/web/assets/{jsonMode-BET4LQIn.js → jsonMode-CCu0j2GD.js} +1 -1
  147. package/dist/web/assets/{lspLanguageFeatures-BPxA_-Kg.js → lspLanguageFeatures-s_Lhm7P6.js} +1 -1
  148. package/dist/web/assets/minimize-2-Cyg_zD9z.js +1 -0
  149. package/dist/web/assets/{monaco.contribution-DXzyQfVi.js → monaco.contribution-CAzXvYkn.js} +2 -2
  150. package/dist/web/assets/{monaco.contribution-DFzEyaHi.js → monaco.contribution-CY7mRgOB.js} +2 -2
  151. package/dist/web/assets/{monaco.contribution-7AUuf2NS.js → monaco.contribution-aUeLcBEg.js} +2 -2
  152. package/dist/web/assets/{monaco.contribution-BH6kkO4b.js → monaco.contribution-mUPNK9ra.js} +2 -2
  153. package/dist/web/assets/monitor-DZvOs_wC.js +1 -0
  154. package/dist/web/assets/play-BJPzemuY.js +1 -0
  155. package/dist/web/assets/{python-PzBkTjWx.js → python-B_qnnVaG.js} +1 -1
  156. package/dist/web/assets/{save-DpezrtH2.js → save-BDy9tA3E.js} +1 -1
  157. package/dist/web/assets/square-Cb2c5td4.js +1 -0
  158. package/dist/web/assets/{toggleHighContrast-Cto-fOXm.js → toggleHighContrast-MhO1JLyR.js} +1 -1
  159. package/dist/web/assets/{tsMode-BYA4LNc6.js → tsMode-DfBXJb9V.js} +1 -1
  160. package/dist/web/assets/{upload-C5YFNgtS.js → upload-D56kThRh.js} +1 -1
  161. package/dist/web/assets/{useLocalAgentSchedules-CnyTsqlf.js → useLocalAgentSchedules-DMnGfswi.js} +1 -1
  162. package/dist/web/assets/useProviderSettings-Bv5B9eNk.js +5 -0
  163. package/dist/web/assets/{useSessionTurnCache-DICuJSJW.js → useSessionTurnCache-ClAY8gze.js} +1 -1
  164. package/dist/web/assets/{wifi-off-nzHj7JXp.js → wifi-off-C9lWJmVm.js} +1 -1
  165. package/dist/web/assets/{workers-Dboaw6f_.js → workers-BYzrH8by.js} +1 -1
  166. package/dist/web/assets/{yaml-uuY5JmO8.js → yaml-D3T8UkT3.js} +1 -1
  167. package/dist/web/index.html +2 -2
  168. package/package.json +3 -3
  169. package/dist/chunks/actions-command-DSO6YOEE.js +0 -2
  170. package/dist/chunks/app-server-runtime-7AXV6JZI.js +0 -2
  171. package/dist/chunks/apps-TM74FFQB.js +0 -2
  172. package/dist/chunks/chunk-2JO2KWT3.js +0 -5
  173. package/dist/chunks/chunk-2SPZYBDN.js +0 -16
  174. package/dist/chunks/chunk-37DXASQL.js +0 -191
  175. package/dist/chunks/chunk-4EEH7MEC.js +0 -2
  176. package/dist/chunks/chunk-4SHKI3BH.js +0 -2
  177. package/dist/chunks/chunk-4TZHH5FC.js +0 -2409
  178. package/dist/chunks/chunk-5TNDPNS3.js +0 -2
  179. package/dist/chunks/chunk-6JAN4RMN.js +0 -42
  180. package/dist/chunks/chunk-7QEE4PBI.js +0 -8
  181. package/dist/chunks/chunk-BX4J2VDU.js +0 -2
  182. package/dist/chunks/chunk-EMKZVP7Z.js +0 -2
  183. package/dist/chunks/chunk-FPUUZQUP.js +0 -6
  184. package/dist/chunks/chunk-GCOUYYHG.js +0 -5
  185. package/dist/chunks/chunk-GS2NKNKG.js +0 -4
  186. package/dist/chunks/chunk-H2VT22JK.js +0 -2
  187. package/dist/chunks/chunk-HA7EFTPF.js +0 -23
  188. package/dist/chunks/chunk-IKWDL3RB.js +0 -17
  189. package/dist/chunks/chunk-L3KS6MOV.js +0 -2
  190. package/dist/chunks/chunk-NHFGEVVH.js +0 -518
  191. package/dist/chunks/chunk-NNF6KCHD.js +0 -3
  192. package/dist/chunks/chunk-PJM2G7SG.js +0 -21
  193. package/dist/chunks/chunk-PQHTZ5CP.js +0 -2
  194. package/dist/chunks/chunk-PYABBF53.js +0 -53
  195. package/dist/chunks/chunk-QRWPEW3Z.js +0 -24
  196. package/dist/chunks/chunk-QXVIIM4T.js +0 -2
  197. package/dist/chunks/chunk-SDEDAHV6.js +0 -160
  198. package/dist/chunks/chunk-TGIB24K4.js +0 -22
  199. package/dist/chunks/chunk-UE3DMPGM.js +0 -3
  200. package/dist/chunks/chunk-USKE34VR.js +0 -9
  201. package/dist/chunks/chunk-WV2APYWG.js +0 -2
  202. package/dist/chunks/chunk-XM26DGML.js +0 -3
  203. package/dist/chunks/chunk-YIB3J4RC.js +0 -2
  204. package/dist/chunks/chunk-YL6VFJ4P.js +0 -2
  205. package/dist/chunks/chunk-Z3D4C7BG.js +0 -12
  206. package/dist/chunks/cli-JVB345H2.js +0 -2
  207. package/dist/chunks/connected-evidence-YDPGNHLP.js +0 -2
  208. package/dist/chunks/core-commands-MTV4EKXY.js +0 -2
  209. package/dist/chunks/datasets-CP3IT47T.js +0 -2
  210. package/dist/chunks/desktop-test-IAZC5MAH.js +0 -3
  211. package/dist/chunks/dist-SAABJU5F.js +0 -2
  212. package/dist/chunks/evaluation-coordination-EPHLZXYM.js +0 -2
  213. package/dist/chunks/experiment-improvements-6JTOPA74.js +0 -2
  214. package/dist/chunks/experiments-XHPFGECH.js +0 -2
  215. package/dist/chunks/extension-GX7DLW2X.js +0 -4
  216. package/dist/chunks/hosted-experiment-improvement-HAB3UE6A.js +0 -3
  217. package/dist/chunks/hosted-harness-runtime-YM23QNDK.js +0 -2
  218. package/dist/chunks/hosted-profile-candidate-EOBGKQAS.js +0 -3
  219. package/dist/chunks/hosted-profile-compiler-SCVJI2CP.js +0 -2
  220. package/dist/chunks/hosted-profile-evaluation-control-RJ6XJZCS.js +0 -2
  221. package/dist/chunks/hosted-profile-evaluation-inspection-OC4XNGL2.js +0 -3
  222. package/dist/chunks/hosted-profile-evaluation-preparation-ZD4FM3FD.js +0 -3
  223. package/dist/chunks/human-review-AAVMISBF.js +0 -2
  224. package/dist/chunks/learning-FNBEIAY6.js +0 -2
  225. package/dist/chunks/opchat-QK43DXTY.js +0 -3
  226. package/dist/chunks/organizations-SRPAWKC7.js +0 -2
  227. package/dist/chunks/profile-C6CQNVYE.js +0 -3
  228. package/dist/chunks/project-agent-GZV5HNYI.js +0 -2
  229. package/dist/chunks/sandbox-command-4TJXQTKT.js +0 -2
  230. package/dist/chunks/src-NE6R4XC6.js +0 -329
  231. package/dist/web/assets/App-CO2F717V.css +0 -1
  232. package/dist/web/assets/App-CuhaCsfb.js +0 -235
  233. package/dist/web/assets/AppsView-BS1czXUP.js +0 -1
  234. package/dist/web/assets/HostedModelLearningReview-CHxxf_Lu.js +0 -1
  235. package/dist/web/assets/LabsRoute-CXJRJMhr.js +0 -99
  236. package/dist/web/assets/MainChatThread-BwAla81W.js +0 -2
  237. package/dist/web/assets/MainPane-CakOBCHw.js +0 -19
  238. package/dist/web/assets/RightChatPanelStack-VaOOmxwd.js +0 -1
  239. package/dist/web/assets/ScheduledWorkPage-D1jRQxFs.js +0 -1
  240. package/dist/web/assets/SettingsView-RA9OXgcu.js +0 -5
  241. package/dist/web/assets/WorkSidebarPanel-DwlEMEoG.js +0 -1
  242. package/dist/web/assets/WorkspaceDiffPanel-pGVezNMw.js +0 -14
  243. package/dist/web/assets/WorkspaceEnvironmentMenu-Byjngd9V.js +0 -32
  244. package/dist/web/assets/arrow-up-right-H0pvnH2s.js +0 -1
  245. package/dist/web/assets/chunk-UHVJOMWN-BqXRe639.js +0 -1
  246. package/dist/web/assets/folder-plus-C84wrpt_.js +0 -1
  247. package/dist/web/assets/index-dSmk3FLJ.css +0 -1
  248. package/dist/web/assets/info-Dc81lEfw.js +0 -1
  249. package/dist/web/assets/minimize-2-Bs7MVN3C.js +0 -1
  250. package/dist/web/assets/monitor-DXL019Wf.js +0 -1
  251. package/dist/web/assets/play-CXkxUZeU.js +0 -1
  252. package/dist/web/assets/square-oy7f5Ce6.js +0 -1
  253. package/dist/web/assets/useProviderSettings-B_KeQjE5.js +0 -5
  254. /package/dist/chunks/{chunk-OGPHXXCD.js → chunk-BT5YNE5U.js} +0 -0
@@ -1 +0,0 @@
1
- import{j as e,r as h}from"./index-BxWTVKtn.js";import{O as je,X as te,bs as Ne,z as Z,bN as D,bP as X,bO as G,ca as be,cb as J,cc as fe,cd as Pe,ce as se,cf as me,cg as Ee,ch as oe,ci as ye,cj as Se,ck as Ae,cl as Re,u as _e,e as Le,aM as Te,an as Oe,P as Ue,cm as re,G as Fe,av as $e,g as Me,al as De,aB as ze,cn as He,o as Ke}from"./App-CuhaCsfb.js";import{a as de,u as Be,b as Je}from"./useProviderSettings-B_KeQjE5.js";import{a as Ge,s as qe}from"./MainPane-CakOBCHw.js";import"./save-DpezrtH2.js";import"./MarkdownText-gJMuefaJ.js";import"./cloud-upload-CJPYPVl8.js";import"./arrow-up-right-H0pvnH2s.js";import"./square-oy7f5Ce6.js";import"./folder-open-sLZJxLQy.js";import"./play-CXkxUZeU.js";const ae=[{id:"openpond_chat",name:"Ponder Pal",icon:je},{id:"codex",name:"Codex",icon:"/agent-sources/codex.svg",provider:"codex"},{id:"claude_code",name:"Claude Code",icon:"/agent-sources/claude-code.svg",provider:"claude-code"},{id:"opencode",name:"OpenCode",icon:"/agent-sources/opencode.svg",provider:"opencode"},{id:"grok_build",name:"Grok Build",icon:"/agent-sources/grok-build.svg",provider:"grok-build"},{id:"hermes",name:"Hermes",icon:"/agent-sources/hermes.png"},{id:"pi",name:"Pi",icon:"/agent-sources/pi.svg"},{id:"openclaw",name:"OpenClaw",icon:"/agent-sources/openclaw.svg"},{id:"oh_my_pi",name:"Oh My Pi",icon:"/agent-sources/oh-my-pi.svg"}];function ke(n,a){return n.state==="disconnected"?"Disconnected":n.state==="paused"?"Paused":n.error?"Needs attention":a.running?n.backfill.stage!=="complete"?"Importing history":n.queued?"Uploading updates":"Watching for conversations":a.desiredState==="stopped"?"Importer stopped":"Importer offline"}function We({agent:n,account:a,native:t,inventory:s,projects:l,teamId:g,learningControl:o,connected:i,onHide:p,onManage:c}){const d=s?.collector.connections.filter(u=>u.source===n.id)??[],v=s?.sources.some(u=>u.source===n.id&&u.available&&u.capabilities.history);return e.jsxs("article",{className:"agent-connection-card","aria-label":n.name,children:[e.jsxs("div",{className:"agent-card-title",children:[e.jsx("img",{src:n.icon,alt:""}),e.jsx("span",{children:n.name}),e.jsx("button",{type:"button",className:"agent-hide","aria-label":`Hide ${n.name}`,onClick:p,children:e.jsx(te,{size:14})})]}),n.id==="openpond_chat"?e.jsxs(e.Fragment,{children:[e.jsx("small",{children:a?.state==="signed_in"?"Connected to OpenPond":"Sign in to OpenPond"}),e.jsx("p",{children:"Use Ponder Pal from the sidebar."}),e.jsx("button",{type:"button",className:"agent-account-link",onClick:()=>{Ne({kind:"settings",section:"account"})},children:"Account setup"})]}):e.jsxs(e.Fragment,{children:[e.jsx("small",{children:t?t.available?t.enabled?"Ready to chat":"Installed · chat disabled":t.lastError??"Check installation":"Conversation import"}),e.jsx("button",{type:"button",className:"agent-connect-button",disabled:!i,onClick:c,children:t?.available||d.length?"Manage":"Connect"}),e.jsx("div",{className:"agent-card-sync",children:d.length?d.map(u=>e.jsxs("div",{children:[e.jsx("span",{children:ke(u,s.collector)}),e.jsxs("small",{children:[l.find(_=>_.id===u.projectId&&u.teamId===g)?.content.name??u.projectId," ","· ",u.admitted," tasks"]}),u.teamId!==g?e.jsxs("small",{children:["Team: ",u.teamId]}):null,u.queued?e.jsxs("small",{children:[u.queued," updates queued"]}):null,u.lastAdmissionAt?e.jsxs("small",{children:["Last sync: ",new Date(u.lastAdmissionAt).toLocaleString()]}):null,u.error?e.jsx("small",{role:"alert",children:u.error}):null]},u.id)):e.jsx("small",{children:s?v?"History available · sync not connected":"No local history found":"Reading local setup…"})})]}),o]})}function Ve(n,a,t,s){const l=h.useRef({providers:a,onProvider:t});l.current={providers:a,onProvider:t};const g=JSON.stringify(["claude-code","opencode","grok-build"].map(o=>{const i=a?.providers[o];return[o,i?.binaryPath,i?.sourceHome,i?.enabled]}));h.useEffect(()=>{if(!n||!l.current.providers)return;let o=!1;const i=["claude-code","opencode","grok-build"].map(p=>{const c=l.current.providers?.providers[p],d=new AbortController,v=s>0?{promise:Z(n,`/v1/providers/${p}/native-setup`,{method:"POST",body:JSON.stringify({action:"check"}),signal:d.signal}),release:()=>d.abort()}:Ge(n,p,l.current.providers?.providers[p]);return v.promise.then(u=>{o||(s>0&&u.session&&!u.error&&qe(n,p,u,c),l.current.onProvider(p,u.settings))},()=>{}),v});return()=>{o=!0,i.forEach(p=>p.release())}},[n,g,s])}var F=G().trim().min(1).max(240),we=be().int().positive(),Qe=J(["dataset","evaluator","model","training_configuration","training_run","harness","environment","experiment","learning_policy","deployment"]),Xe=D({kind:Qe,resourceId:F,release:fe.nullable(),role:J(["training","validation","holdout","target","reward","evaluation","serving","source"])}).strict(),Ze=Pe("kind",[D({kind:se("model"),providerId:F,modelId:F,artifact:fe.nullable(),messages:X(D({role:J(["system","user","assistant"]),content:G().max(1e5)}).strict()).max(100)}).strict(),D({kind:se("harness"),profileRepositoryId:F,source:me}).strict(),D({kind:se("agent"),source:Ee}).strict(),D({kind:se("suite"),profileRepositoryId:F,suiteId:F,sources:X(me).min(1).max(1e3)}).strict().superRefine((n,a)=>{const t=n.sources[0],s=new Set;for(const[l,g]of n.sources.entries())s.has(g.definitionId)&&a.addIssue({code:"custom",path:["sources",l],message:"Suite definitions must be unique."}),s.add(g.definitionId),(g.profileId!==t.profileId||g.sourceRevision!==t.sourceRevision||g.catalogHash!==t.catalogHash||oe(g.harnessRelease)!==oe(t.harnessRelease))&&a.addIssue({code:"custom",path:["sources",l],message:"Suite checks must belong to the same pinned Profile source and Harness release."})})]),Ie=D({name:G().trim().min(1).max(200),description:G().max(1e4),targets:X(D({id:F,name:G().trim().min(1).max(200),target:Ze}).strict()).max(100),defaultTargetId:F.nullable(),resources:X(Xe).max(1e3)}).strict().superRefine((n,a)=>{new Set(n.targets.map(t=>t.id)).size!==n.targets.length&&a.addIssue({code:"custom",path:["targets"],message:"Target identities must be unique."}),n.defaultTargetId&&!n.targets.some(t=>t.id===n.defaultTargetId)&&a.addIssue({code:"custom",path:["defaultTargetId"],message:"Default target must belong to this Project."}),new Set(n.resources.map(t=>oe(t))).size!==n.resources.length&&a.addIssue({code:"custom",path:["resources"],message:"Resource links must be unique."})}),Ye=D({schemaVersion:se("openpond.trainingProject.v1"),id:F,teamId:F,creatorUserId:F,ownerScope:J(["workspace","personal"]).optional(),revision:we,content:Ie,archived:ye(),createdAt:G().datetime(),updatedAt:G().datetime()}).strict();D({operationId:F,id:F,expectedRevision:be().int().nonnegative(),content:Ie,ownerScope:J(["workspace","personal"]).optional()}).strict();D({operationId:F,expectedRevision:we,archived:ye()}).strict();var en=D({teamId:F,projects:X(Ye).max(100),nextCursor:F.nullable()}).strict();D({operation:J(["evaluate","train","enable_learning","accept_candidate","serve"]),support:J(["supported","unsupported"]),state:J(["ready","needs_setup","blocked"]),reasons:X(D({code:F,message:G().min(1).max(2e3),field:G().nullable(),action:J(["choose_target","choose_data","choose_evaluator","configure_runtime","request_access","configure_budget","wait","review_evidence"]).nullable()}).strict()).max(100)}).strict().superRefine((n,a)=>{n.state==="ready"&&(n.support!=="supported"||n.reasons.length)&&a.addIssue({code:"custom",message:"Ready operations must be supported with no blockers."}),n.state!=="ready"&&!n.reasons.length&&a.addIssue({code:"custom",message:"Unavailable operations must explain the next step."})});const ne=new WeakMap;function nn(n,a,t){const s=JSON.stringify([a?.activeProfile,a?.profile?.id,t]),l=n?ne.get(n)?.get(s):void 0,[g,o]=h.useState(null),[i,p]=h.useState(null),[c,d]=h.useState(!1),[v,u]=h.useState(0),_=a?.state==="signed_in"?g?.key===s&&g.connection===n?g.value:l:void 0;h.useEffect(()=>{if(!n||!t||a?.state!=="signed_in")return;const w=new AbortController;d(!0),p(null);async function S(){const C=[],P=new Set;let j;do{const f=en.parse(await Z(n,"/v1/training/evaluation-workspace",{method:"POST",body:JSON.stringify({teamId:t,operation:"projects",value:{cursor:j}}),signal:w.signal}));if(f.teamId!==t)throw new Error("The hosted project workspace changed. Refresh connections.");if(C.push(...f.projects.filter(A=>!A.archived)),j=f.nextCursor??void 0,j&&P.has(j))throw new Error("Project pagination stalled. Refresh connections.");j&&P.add(j)}while(j&&!w.signal.aborted);if(w.signal.aborted)return;let k=ne.get(n);k||(k=new Map,ne.set(n,k));const T=k.get(s)?.selected,N=T&&C.some(f=>f.id===T)?T:C.length===1?C[0].id:"",x={projects:C,selected:N};k.set(s,x),o({key:s,connection:n,value:x})}return S().catch(C=>{w.signal.aborted||p(C instanceof Error?C.message:"Unable to list hosted projects.")}).finally(()=>{w.signal.aborted||d(!1)}),()=>w.abort()},[n,s,t,a?.state,v]);const L=h.useCallback(w=>{if(!n)return;const S=ne.get(n)?.get(s);if(!S||!S.projects.some(P=>P.id===w))return;const C={...S,selected:w};ne.get(n).set(s,C),o({key:s,connection:n,value:C})},[n,s]);return{projects:_?.projects??[],projectId:_?.selected??"",select:L,error:i,loading:c,refresh:()=>u(w=>w+1)}}const ge=new WeakMap;function sn(n){const[a,t]=h.useState(null),[s,l]=h.useState(null),[g,o]=h.useState(!1),i=h.useRef(0),p=h.useRef(null),c=h.useCallback(async()=>{if(!n||p.current)return;const d=new AbortController;p.current=d;const v=i.current;o(!0);try{const u=await Z(n,"/v1/native-history/collector",{method:"POST",body:JSON.stringify({command:"inventory"}),signal:d.signal});if(v!==i.current||d.signal.aborted)return;ge.set(n,u),t({connection:n,value:u}),l(null)}catch(u){v===i.current&&!d.signal.aborted&&l(u instanceof Error?u.message:"Unable to read agent connections.")}finally{p.current===d&&(p.current=null),v===i.current&&o(!1)}},[n]);return h.useEffect(()=>{i.current++,l(null),c();const d=window.setInterval(()=>{document.hidden||c()},1e4),v=()=>{c()};return window.addEventListener("focus",v),()=>{i.current++,p.current?.abort(),p.current=null,window.clearInterval(d),window.removeEventListener("focus",v)}},[c]),{inventory:a?.connection===n?a.value:n?ge.get(n)??null:null,loading:g,error:s,refresh:c}}Se.extend(Re);function tn({agent:n,inventory:a,connection:t,account:s,teamId:l,projects:g,projectId:o,onRefresh:i,learningUrl:p}){const c=a?.sources.filter(r=>r.source===n.id)??[],[d,v]=h.useState(c.length===1?c[0].instanceId:""),[u,_]=h.useState(o),[L,w]=h.useState("week"),[S,C]=h.useState(!0),[P,j]=h.useState(null),[k,T]=h.useState(!1),[N,x]=h.useState(null),f=c.find(r=>r.instanceId===d)??(!d&&c.length===1?c[0]:void 0),A=a?.collector.connections.filter(r=>r.source===n.id)??[],K=s?.baseUrl??s?.activeProfile?.baseUrl,H=s?.apiBaseUrl;async function z(r,I){if(!(!t||k||P)){T(!0),x(null);try{const O=await Z(t,"/v1/native-history/collector",{method:"POST",body:JSON.stringify({command:r,...I?{connectionId:I}:{},...r==="connect"?{setup:{sourceInstanceId:f?.instanceId,teamId:l,projectId:u,accountBaseUrl:K,apiBaseUrl:H,range:L,keepSyncing:S}}:{}})});O.command?j(O.command):await i()}catch(O){x(O instanceof Error?O.message:"Unable to update this connection.")}finally{T(!1)}}}const m=k||P!==null;return e.jsxs("div",{className:"agent-conversation-setup provider-dialog-body",children:[e.jsxs("p",{children:["Sync saved ",n.name," conversations to an existing OpenPond project. Setup uses the OpenPond CLI and browser authorization."]}),A.map(r=>e.jsxs("section",{className:"agent-retained-connection","aria-label":`${n.name} sync connection`,children:[e.jsx("strong",{children:ke(r,a.collector)}),e.jsxs("span",{children:["Project:"," ",r.teamId===l?g.find(I=>I.id===r.projectId)?.content.name??r.projectId:r.projectId," ","· Team: ",r.teamId]}),e.jsx("small",{children:r.accountBaseUrl??"Hosted destination"}),e.jsx("small",{className:"agent-source-path",children:r.sourceRoot}),e.jsxs("span",{children:[r.admitted," tasks imported · ",r.queued," updates queued"]}),r.backfill.total>0&&r.backfill.stage!=="complete"?e.jsxs(e.Fragment,{children:[e.jsx("progress",{"aria-label":"History import progress",value:r.backfill.admitted+r.backfill.skipped,max:r.backfill.total}),e.jsxs("small",{children:[r.backfill.admitted+r.backfill.skipped," of"," ",r.backfill.total," conversations processed"]})]}):null,e.jsx("small",{children:r.lastAdmissionAt?`Last synced ${Se(r.lastAdmissionAt).fromNow()}`:"No uploads acknowledged yet"}),r.error?e.jsx("p",{role:"alert",children:r.error}):null,e.jsxs("div",{className:"settings-button-row",children:[r.state==="disconnected"?e.jsx("button",{type:"button",disabled:m,onClick:()=>{z("reconnect",r.id)},children:"Reconnect"}):e.jsxs(e.Fragment,{children:[e.jsx("button",{type:"button",disabled:m,onClick:()=>{z(r.state==="paused"?"resume":"pause",r.id)},children:r.state==="paused"?"Resume":"Pause"}),e.jsx("button",{type:"button",disabled:m,onClick:()=>{window.confirm("Disconnect this conversation source? Imported data stays in its project.")&&z("disconnect",r.id)},children:"Disconnect"})]}),r.destinationLinks.tasks?e.jsx("a",{href:r.destinationLinks.tasks,target:"_blank",rel:"noreferrer",children:"View tasks"}):null,r.destinationLinks.conversations?e.jsx("a",{href:r.destinationLinks.conversations,target:"_blank",rel:"noreferrer",children:"View conversations"}):null]})]},r.id)),e.jsxs("form",{onSubmit:r=>{r.preventDefault(),z("connect")},className:"agent-sync-form",children:[e.jsx("h3",{children:A.length?"Add another connection":"Connect conversations"}),e.jsxs("label",{className:"agent-source-field",children:["Source installation",e.jsxs("select",{"aria-label":"Source installation",value:f?.instanceId??"",disabled:m,onChange:r=>v(r.target.value),children:[e.jsx("option",{value:"",children:"Select installation"}),c.map(r=>e.jsxs("option",{value:r.instanceId,disabled:!r.available||!r.capabilities.history,children:[r.root,r.available&&r.capabilities.history?"":" (unavailable)"]},r.instanceId))]})]}),f?.reason?e.jsx("small",{children:f.reason}):null,c.some(r=>r.available&&r.capabilities.history)?null:e.jsxs("small",{children:["No readable conversation history found."," ",n.provider?"Use Agent setup to check the installation, or create a conversation in this agent first.":"Open this agent and create a conversation, then refresh connections."]}),e.jsxs("label",{children:["Project",e.jsxs("select",{"aria-label":"Project",value:u,disabled:m||!l,onChange:r=>_(r.target.value),children:[e.jsx("option",{value:"",children:"Select project"}),g.map(r=>e.jsx("option",{value:r.id,children:r.content.name},r.id))]})]}),e.jsxs("label",{children:["Import history",e.jsxs("select",{"aria-label":"Import history",value:L,disabled:m,onChange:r=>w(r.target.value),children:[e.jsx("option",{value:"day",children:"Last day"}),e.jsx("option",{value:"week",children:"Last week"}),e.jsx("option",{value:"all",children:"All history"})]})]}),e.jsxs("label",{className:"agent-sync-checkbox",children:[e.jsx("input",{type:"checkbox",checked:S,disabled:m,onChange:r=>C(r.target.checked)}),"Keep syncing new conversations"]}),s?.state!=="signed_in"||!l?e.jsx("small",{children:"Sign in and select a default team in Account settings to choose a hosted project."}):null,e.jsx("button",{type:"submit",className:"agent-connect-button",disabled:m||!f?.available||!f.capabilities.history||!g.some(r=>r.id===u)||!l||!K||!H||s?.state!=="signed_in",children:k?"Opening setup…":"Connect conversations"})]}),p?e.jsx("a",{className:"agent-learning-link",href:p,target:"_blank",rel:"noreferrer",children:"Configure continual learning in Console"}):null,a?e.jsxs("details",{children:[e.jsx("summary",{children:"CLI setup"}),e.jsxs("small",{className:"agent-source-path",children:["Importer directory: ",a.directory]}),e.jsx("code",{children:a.statusCommand})]}):null,N?e.jsx("p",{role:"alert",children:N}):null,P&&t?e.jsx(Ae,{connection:t,command:P,onComplete:()=>{j(null),i()},onClose:()=>{j(null),i()}}):null]})}const U=n=>JSON.stringify([n.origin,n.sourceInstanceId]),xe=n=>({id:n.id,revision:n.revision,contentHash:n.contentHash});function Q(n,a,t,s,l){return Z(n,`/v1/conversation-learning/${t}?${new URLSearchParams({teamId:a})}`,{method:s===void 0?"GET":"POST",...s===void 0?{}:{body:JSON.stringify(s)},signal:l})}function an(n,a,t,s){const l=_e(),g=["native-conversation-learning",n?.serverUrl,t,a];return{...Le({queryKey:g,enabled:!!(n&&a&&s),queryFn:({signal:i})=>Q(n,a,"options",void 0,i),staleTime:15e3,refetchInterval:3e4}),refresh:()=>l.invalidateQueries({queryKey:g})}}function Ce(n,a,t,s,l){return Q(n,a,"policies",{...t?{id:t.id}:{},expectedRevision:t?.revision??0,configuration:s,enabled:l})}function le(n,a,t=[]){const s=a?.configuration;return{projectId:n,name:s?.name??"Continual learning",mode:s?.mode??"activate",definition:s?.definition??null,configurationId:s?.configuration?.id??"",trainingPolicyId:s?.learningPolicy?.id??"",graderIds:[],sourceKeys:[...new Set([...s?.sources.filter(l=>l.enabled).map(U)??[],...t.map(U)])],adapter:s?.adapter??{kind:"complete_text",qualitativeOnly:!0},generator:s?.generator??null,graderSelection:s?.graderSelection??(a?{mode:"manual"}:{mode:"auto",modelId:"gpt-6-luna",sampleSize:8,maximumOutputTokens:2048,maximumSpendUsd:1}),schedule:s?.schedule??{timezone:Intl.DateTimeFormat().resolvedOptions().timeZone,hour:2,minute:0,endHour:6,endMinute:0},limits:s?.limits??{perCycleUsd:5,dailyUsd:5,monthlyUsd:25,gradeUsd:.2,maximumTasks:10,minimumExamples:5,maxGpuSeconds:10800,maximumAttempts:2,lookbackDays:30},exceptions:s?.exceptions??"block",minimumScore:s?.minimumScore??.8,selection:s?.selection??{maximumSourceShare:1,maximumFailureShare:1,maximumLengthShare:1,replayFraction:.2,auditFraction:.1},acceptance:s?.acceptance??{minimumCasesPerCheck:20,minimumImprovement:.05,windowCasesPerCheck:20},failurePolicy:s?.failurePolicy??{pauseAfterConsecutiveFailures:3},...s?.serving?{serving:s.serving}:{serving:{targetId:"",canarySeconds:120,rollbackOnRuntimeFailure:!0}}}}function ce(n,a){const t=n?.configurations.find(s=>s.id===a);return n?.trainingPolicies.filter(s=>s.modelProjectId===t?.portableProjectId&&s.training.recipe.id===`model-recipe-${t?.etag}`&&!s.id.startsWith("conversation-training-"))??[]}async function rn(n,a,t,s,l,g){const o=s.configurations.find(j=>j.id===t.configurationId),i=ce(s,t.configurationId).find(j=>j.id===t.trainingPolicyId);if(!t.name.trim())throw new Error("Enter a policy name.");if(!s.projects.some(j=>j.id===t.projectId))throw new Error("This owned Project is unavailable for continual learning.");if(t.configurationId&&(!o||!s.projects.find(j=>j.id===t.projectId)?.configurationIds.includes(o.id)))throw new Error("Choose a model configuration attached to this Project.");if(t.mode!=="evaluate"&&(!o||!i))throw new Error("Choose an owned model and its reviewed training setup.");if(t.limits.perCycleUsd>t.limits.dailyUsd||t.limits.dailyUsd>t.limits.monthlyUsd)throw new Error("Daily and monthly spending limits must cover the run limit.");if(t.limits.minimumExamples>t.limits.maximumTasks-Math.floor(t.limits.maximumTasks*(t.selection?.replayFraction??0)))throw new Error("Leave capacity for the minimum new examples after replay.");const p=s.sources.filter(j=>j.projectId===t.projectId&&t.sourceKeys.includes(U(j)));if(!p.length)throw new Error("Select a source agent for this Project.");const c=[...(l?.configuration.sources??[]).filter(j=>!p.some(k=>U(k)===U(j))).map(j=>({...j,enabled:!1})),...p.map(j=>({origin:j.origin,sourceInstanceId:j.sourceInstanceId,enabled:!0}))];let d=t.definition;if(o&&(l?.configuration.configuration?.id!==o.id||l.configuration.configuration.expectedEtag!==o.etag))d=await Q(n,a,"definitions",{projectId:t.projectId,configuration:{id:o.id,expectedRevision:o.revision,expectedEtag:o.etag}});else if(t.graderIds.length){const j=s.graders.flatMap(k=>k&&t.graderIds.includes(k.id)?[xe(k)]:[]);d=await Q(n,a,"definitions",{projectId:t.projectId,graders:j})}if(!d)throw new Error("Select evaluation rubrics or an existing task definition.");let v=t.serving;const u=s.servingTargets.find(j=>j.id===v?.targetId);if(t.mode==="activate"&&v?.targetId&&(!u||!u.enabled||u.projectId!==t.projectId))throw new Error("Select an available serving target in this Project.");if(t.mode==="activate"&&(!v?.targetId||u?.hostedPonder)&&(v={targetId:(await Q(n,a,"serving-targets",{action:"ensure_hosted_ponder",projectId:t.projectId,bindingId:s.ponderBindingId})).id,canarySeconds:v?.canarySeconds??120,rollbackOnRuntimeFailure:!0}),t.mode==="activate"&&!v?.targetId)throw new Error("Choose a serving target, or enable the policy to register hosted Ponder.");const{sourceKeys:_,configurationId:L,trainingPolicyId:w,graderIds:S,...C}=t,P={...C,name:t.name.trim(),definition:d,sources:c,configuration:o?{id:o.id,expectedRevision:o.revision,expectedEtag:o.etag}:null,learningPolicy:i?xe(i):null,...t.mode==="activate"?{serving:v}:{}};return t.mode!=="activate"&&delete P.serving,t.mode==="evaluate"&&delete P.acceptance,Ce(n,a,l,P,g)}function ln({draft:n,options:a,loading:t,onChange:s}){const l=a?.sources.filter(c=>c.projectId===n.projectId)??[],g=l.filter(c=>["active","paused"].includes(c.state)),o=g.length>0&&g.every(c=>n.sourceKeys.includes(U(c))),i=c=>s({...n,sourceKeys:c}),p=a?.graders.flatMap(c=>c?[c]:[])??[];return e.jsxs(e.Fragment,{children:[e.jsxs("fieldset",{children:[e.jsx("legend",{children:"Source agents"}),e.jsxs("label",{className:"agent-learning-check",children:[e.jsx("input",{type:"checkbox",checked:o,disabled:!g.length,ref:c=>{c&&(c.indeterminate=!o&&g.some(d=>n.sourceKeys.includes(U(d))))},onChange:c=>i(c.target.checked?[...new Set([...n.sourceKeys,...g.map(U)])]:n.sourceKeys.filter(d=>!g.some(v=>U(v)===d)))}),"Select all"," ",e.jsxs("small",{children:["(",l.filter(c=>n.sourceKeys.includes(U(c))).length," selected)"]})]}),e.jsxs("div",{className:"agent-learning-options","aria-label":"Source agents",children:[l.map(c=>{const d=U(c),v=n.sourceKeys.includes(d),u=ae.find(L=>L.id===(c.origin.startsWith("native_")?"openpond_chat":c.origin)),_=c.origin==="native_chat"?"Ponder Pal Chat":c.origin==="native_work"?"Ponder Pal Work":u?.name??c.name;return e.jsxs("label",{className:"agent-learning-option",children:[e.jsx("input",{type:"checkbox",checked:v,disabled:!v&&!["active","paused"].includes(c.state),onChange:L=>i(L.target.checked?[...new Set([...n.sourceKeys,d])]:n.sourceKeys.filter(w=>w!==d))}),u?e.jsx("img",{src:u.icon,alt:""}):null,e.jsxs("span",{children:[_,e.jsx("small",{children:c.sourceInstanceId?c.name===c.origin?"Local connection":c.name:c.origin.startsWith("native_")?"Hosted conversations":"Uploaded history"})]}),e.jsx("small",{children:c.state})]},d)}),l.length?null:e.jsx("p",{role:"status",children:t?"Fetching source agents…":"Connect or import an agent into this Project first."})]}),e.jsx("p",{children:"Paused agents can use uploaded conversations. Selecting them leaves collection paused."})]}),e.jsxs("fieldset",{children:[e.jsx("legend",{children:"Evaluation rubrics"}),n.configurationId?e.jsx("p",{children:"The training configuration pins the task definition and its rubrics. Choose grader selection in Preparation."}):e.jsxs(e.Fragment,{children:[e.jsxs("label",{className:"agent-learning-check",children:[e.jsx("input",{type:"checkbox",disabled:!p.length,checked:p.length>0&&p.every(c=>n.graderIds.includes(c.id)),onChange:c=>s({...n,graderIds:c.target.checked?p.map(d=>d.id):[]})}),"Select all ",e.jsxs("small",{children:["(",n.graderIds.length," selected)"]})]}),e.jsxs("div",{className:"agent-learning-options","aria-label":"Evaluation rubrics",children:[p.map(c=>e.jsxs("label",{className:"agent-learning-option",children:[e.jsx("input",{type:"checkbox",checked:n.graderIds.includes(c.id),onChange:d=>s({...n,graderIds:d.target.checked?[...n.graderIds,c.id]:n.graderIds.filter(v=>v!==c.id)})}),e.jsxs("span",{children:[c.name,e.jsxs("small",{children:["Version ",c.revision]})]})]},`${c.id}:${c.revision}`)),p.length?null:e.jsx("p",{role:"status",children:t?"Fetching evaluation rubrics…":"No owned evaluation rubrics are available."})]}),n.definition&&!n.graderIds.length?e.jsx("p",{children:"The saved task definition and rubrics remain unchanged."}):null,e.jsxs("label",{children:["Existing task definition",e.jsxs("select",{value:n.definition?.id??"",onChange:c=>{const d=a?.definitions.find(v=>v.id===c.target.value);s({...n,definition:d?{id:d.id,revision:d.revision,contentHash:d.contentHash}:null,graderIds:[]})},children:[e.jsx("option",{value:"",children:"Select a definition or choose rubrics above"}),n.definition&&!a?.definitions.some(c=>c.id===n.definition?.id)?e.jsx("option",{value:n.definition.id,children:"Saved task definition"}):null,a?.definitions.map(c=>e.jsxs("option",{value:c.id,children:[c.name," (version ",c.revision,")"]},c.id))]})]})]}),e.jsxs("label",{children:["Minimum verified score",e.jsx("input",{type:"number",min:0,max:1,step:.01,value:n.minimumScore,onChange:c=>s({...n,minimumScore:Number(c.target.value)})})]})]})]})}function on({draft:n,options:a,loading:t,onChange:s}){const l=a?.projects.find(i=>i.id===n.projectId)?.configurationIds??[],g=ce(a,n.configurationId),o=n.graderSelection??{mode:"manual"};return e.jsxs(e.Fragment,{children:[e.jsxs("label",{children:["Mode",e.jsxs("select",{value:n.mode,onChange:i=>s({...n,mode:i.target.value}),children:[e.jsx("option",{value:"evaluate",children:"Evaluate only"}),e.jsx("option",{value:"train",children:"Train automatically, approve candidate"}),e.jsx("option",{value:"activate",children:"Train and activate automatically"})]})]}),e.jsxs("label",{children:["Model to train",e.jsxs("select",{value:n.configurationId,onChange:i=>{const p=i.target.value,c=ce(a,p);s({...n,configurationId:p,trainingPolicyId:c.length===1?c[0].id:"",adapter:p?{kind:"reference_text",inputPointer:"/prompt",match:"contained"}:{kind:"complete_text",qualitativeOnly:!0}})},children:[e.jsx("option",{value:"",children:t?"Fetching configurations…":"Select configuration"}),a?.configurations.filter(i=>l.includes(i.id)).map(i=>e.jsx("option",{value:i.id,children:i.name},i.id))]})]}),n.mode!=="evaluate"?e.jsxs("label",{children:["Reviewed training setup",e.jsxs("select",{value:n.trainingPolicyId,onChange:i=>s({...n,trainingPolicyId:i.target.value}),children:[e.jsx("option",{value:"",children:"Select reviewed setup"}),g.map(i=>e.jsxs("option",{value:i.id,children:["Reviewed setup (version ",i.revision,")"]},i.id))]})]}):null,n.configurationId?e.jsxs(e.Fragment,{children:[e.jsxs("label",{children:["Task construction",e.jsxs("select",{value:n.adapter.kind,onChange:i=>s({...n,adapter:i.target.value==="reference_text"?{kind:"reference_text",inputPointer:"/prompt",match:"contained"}:{kind:"complete_text",qualitativeOnly:!0}}),children:[e.jsx("option",{value:"reference_text",children:"Match a published executable task"}),e.jsx("option",{value:"complete_text",children:"Complete text context and calibrated judges"})]})]}),n.adapter.kind==="reference_text"?e.jsxs("div",{className:"agent-learning-columns",children:[e.jsxs("label",{children:["Public task input field",e.jsx("input",{value:n.adapter.inputPointer,onChange:i=>s({...n,adapter:{kind:"reference_text",inputPointer:i.target.value,match:n.adapter.kind==="reference_text"?n.adapter.match:"contained"}})})]}),e.jsxs("label",{children:["Reference matching",e.jsxs("select",{value:n.adapter.match,onChange:i=>s({...n,adapter:{kind:"reference_text",inputPointer:n.adapter.kind==="reference_text"?n.adapter.inputPointer:"/prompt",match:i.target.value}}),children:[e.jsx("option",{value:"contained",children:"Contained"}),e.jsx("option",{value:"exact",children:"Exact"})]})]})]}):null,e.jsxs("label",{children:["Grader selection",e.jsxs("select",{value:o.mode,onChange:i=>s({...n,graderSelection:i.target.value==="auto"?{mode:"auto",modelId:"gpt-6-luna",sampleSize:8,maximumOutputTokens:2048,maximumSpendUsd:1}:{mode:"manual"}}),children:[e.jsx("option",{value:"auto",children:"Choose compatible rubrics automatically"}),e.jsx("option",{value:"manual",children:"Use the pinned rubrics"})]})]}),o.mode==="auto"?e.jsxs(e.Fragment,{children:[e.jsxs("label",{children:["Selection model",e.jsxs("select",{value:o.modelId,onChange:i=>s({...n,graderSelection:{...o,modelId:i.target.value}}),children:[a?.generators.some(i=>i.id===o.modelId)?null:e.jsx("option",{value:o.modelId,children:o.modelId}),a?.generators.map(i=>e.jsx("option",{value:i.id,children:i.name},i.id))]})]}),e.jsx("div",{className:"agent-learning-columns",children:[["sampleSize","Sample examples",1,30],["maximumOutputTokens","Output token limit",256,4096],["maximumSpendUsd","Selection spending limit ($)",.01,1e5]].map(([i,p,c,d])=>e.jsxs("label",{children:[p,e.jsx("input",{type:"number",min:c,max:d,step:i==="maximumSpendUsd"?.01:1,value:o[i],onChange:v=>s({...n,graderSelection:{...o,[i]:Number(v.target.value)}})})]},i))})]}):null]}):null,e.jsxs("label",{children:["Answer improvement model",e.jsxs("select",{value:n.generator?.modelId??"",onChange:i=>s({...n,generator:i.target.value?{modelId:i.target.value,maximumOutputTokens:n.generator?.maximumOutputTokens??2048,maximumSpendUsd:n.generator?.maximumSpendUsd??.1}:null}),children:[e.jsx("option",{value:"",children:"Use recorded answers only"}),a?.generators.map(i=>e.jsx("option",{value:i.id,children:i.name},i.id))]})]}),n.generator?e.jsxs("div",{className:"agent-learning-columns",children:[e.jsxs("label",{children:["Per improved answer limit ($)",e.jsx("input",{type:"number",min:.01,step:.01,value:n.generator.maximumSpendUsd,onChange:i=>s({...n,generator:{...n.generator,maximumSpendUsd:Number(i.target.value)}})})]}),e.jsxs("label",{children:["Output token limit",e.jsx("input",{type:"number",min:256,max:16384,value:n.generator.maximumOutputTokens,onChange:i=>s({...n,generator:{...n.generator,maximumOutputTokens:Number(i.target.value)}})})]})]}):null,n.mode==="activate"?e.jsxs("fieldset",{children:[e.jsx("legend",{children:"Serving authorization"}),e.jsxs("label",{children:["Serving target",e.jsxs("select",{value:n.serving?.targetId??"",onChange:i=>s({...n,serving:{targetId:i.target.value,canarySeconds:n.serving?.canarySeconds??120,rollbackOnRuntimeFailure:!0}}),children:[e.jsx("option",{value:"",children:"Ponder in this Project"}),a?.servingTargets.filter(i=>i.projectId===n.projectId&&i.enabled).map(i=>e.jsx("option",{value:i.id,children:i.hostedPonder?"Hosted Ponder":`${i.role} / ${i.roleTargetId}`},i.id))]})]}),e.jsxs("label",{children:["Runtime canary (seconds)",e.jsx("input",{type:"number",min:30,max:600,value:n.serving?.canarySeconds??120,onChange:i=>s({...n,serving:{targetId:n.serving?.targetId??"",canarySeconds:Number(i.target.value),rollbackOnRuntimeFailure:!0}})})]}),e.jsx("p",{children:"Saving authorizes the selected target. Failed runtime checks restore its prior model. Training runs only within the saved policy's schedule and limits."})]}):null]})}const ve=(n,a)=>n===void 0||a===void 0?"":`${String(n).padStart(2,"0")}:${String(a).padStart(2,"0")}`;function cn({draft:n,onChange:a}){const t=(s,l)=>a({...n,limits:{...n.limits,[s]:l}});return e.jsxs(e.Fragment,{children:[e.jsxs("fieldset",{children:[e.jsx("legend",{children:"Run window"}),e.jsxs("div",{className:"agent-learning-columns",children:[e.jsxs("label",{children:["From",e.jsx("input",{type:"time",required:!0,value:ve(n.schedule.hour,n.schedule.minute),onChange:s=>{const[l,g]=s.target.value.split(":").map(Number);a({...n,schedule:{...n.schedule,hour:l,minute:g}})}})]}),e.jsxs("label",{children:["Until",e.jsx("input",{type:"time",value:ve(n.schedule.endHour,n.schedule.endMinute),onChange:s=>{const[l,g]=s.target.value.split(":").map(Number),{endHour:o,endMinute:i,...p}=n.schedule;a({...n,schedule:s.target.value?{...p,endHour:l,endMinute:g}:p})}})]})]}),e.jsxs("label",{children:["Timezone",e.jsx("input",{required:!0,value:n.schedule.timezone,onChange:s=>a({...n,schedule:{...n.schedule,timezone:s.target.value}})})]}),e.jsx("p",{children:"Queued learning starts within this window. A run already started may finish afterward."})]}),e.jsxs("fieldset",{children:[e.jsx("legend",{children:"Maximum spending"}),e.jsx("p",{children:"These are limits, not prices. Evaluation, answer improvements and training count toward them."}),e.jsx("div",{className:"agent-learning-columns",children:[["perCycleUsd","Per run ($)"],["dailyUsd","Per day ($)"],["monthlyUsd","Per month ($)"]].map(([s,l])=>e.jsxs("label",{children:[l,e.jsx("input",{type:"number",required:!0,min:.01,max:1e5,step:.01,value:n.limits[s],onChange:g=>t(s,Number(g.target.value))})]},s))})]}),e.jsxs("details",{children:[e.jsx("summary",{children:"Advanced limits"}),e.jsxs("div",{className:"agent-learning-columns",children:[[["gradeUsd","Per evaluation ceiling ($)",0,1e3,.01],["maximumTasks","Maximum tasks",1,200,1],["minimumExamples","Minimum training examples",1,200,1],["maximumAttempts","Maximum correction attempts",1,5,1],["lookbackDays","Uploaded history window (days)",1,30,1]].map(([s,l,g,o,i])=>e.jsxs("label",{children:[l,e.jsx("input",{type:"number",required:!0,min:g,max:o,step:i,value:n.limits[s],onChange:p=>t(s,Number(p.target.value))})]},s)),e.jsxs("label",{children:["Maximum GPU session (hours)",e.jsx("input",{type:"number",required:!0,min:.01,max:3,step:.01,value:n.limits.maxGpuSeconds/3600,onChange:s=>t("maxGpuSeconds",Math.round(Number(s.target.value)*3600))})]}),e.jsxs("label",{children:["Pause after failed cycles",e.jsx("input",{type:"number",required:!0,min:1,max:20,value:n.failurePolicy?.pauseAfterConsecutiveFailures??3,onChange:s=>a({...n,failurePolicy:{pauseAfterConsecutiveFailures:Number(s.target.value)}})})]})]}),e.jsxs("label",{className:"agent-learning-check",children:[e.jsx("input",{type:"checkbox",checked:n.exceptions==="eligible_remainder",onChange:s=>a({...n,exceptions:s.target.checked?"eligible_remainder":"block"})}),"Use the independently verified remainder when exceptions occur"]})]}),e.jsxs("details",{children:[e.jsx("summary",{children:"Training data balance"}),e.jsx("div",{className:"agent-learning-columns",children:[["maximumSourceShare","Maximum from one agent",100],["maximumFailureShare","Maximum from one error type",100],["maximumLengthShare","Maximum from one conversation length",100],["replayFraction","Previously learned examples",50],["auditFraction","Examples checked for quality",100]].map(([s,l,g])=>e.jsxs("label",{children:[l," (%)",e.jsx("input",{type:"number",min:s.startsWith("maximum")?1:0,max:g,value:Math.round((n.selection?.[s]??0)*100),onChange:o=>a({...n,selection:{maximumSourceShare:1,maximumFailureShare:1,maximumLengthShare:1,replayFraction:.2,auditFraction:.1,...n.selection,[s]:Number(o.target.value)/100}})})]},s))})]}),n.mode!=="evaluate"?e.jsxs("details",{children:[e.jsx("summary",{children:"Checks before using the trained model"}),e.jsx("div",{className:"agent-learning-columns",children:[["windowCasesPerCheck","New examples per quality check",2,1e4],["minimumCasesPerCheck","Minimum paired examples",2,1e4],["minimumImprovement","Required improvement",1e-4,1]].map(([s,l,g,o])=>e.jsxs("label",{children:[l,e.jsx("input",{type:"number",min:g,max:o,step:s==="minimumImprovement"?.01:1,value:n.acceptance?.[s]??g,onChange:i=>a({...n,acceptance:{minimumCasesPerCheck:20,windowCasesPerCheck:20,minimumImprovement:.05,...n.acceptance,[s]:Number(i.target.value)}})})]},s))}),e.jsx("p",{children:"Current and trained models use the same unseen examples. Insufficient evidence keeps the current model active."})]}):null]})}function dn({connection:n,teamId:a,projectId:t,projectName:s,initialPolicy:l,bindings:g,query:o,onClose:i}){const[p,c]=h.useState(l),[d,v]=h.useState(()=>le(t,l,l?[]:g)),[u,_]=h.useState(!!o.data),[L,w]=h.useState(!1),[S,C]=h.useState(!1),[P,j]=h.useState(null),[k,T]=h.useState(l?.status==="enabled"||!l),[N,x]=h.useState("sources"),[f,A]=h.useState(!1),[K,H]=h.useState(null),z=h.useRef(u);z.current=u;const m=o.data?.policies.filter(y=>y.configuration.projectId===t)??[];h.useEffect(()=>{if(!o.data||z.current)return;const y=o.data.policies.find(M=>M.configuration.projectId===t&&M.status==="enabled")??o.data.policies.find(M=>M.configuration.projectId===t);c(y),v(le(t,y,y?[]:g)),T(y?.status==="enabled"||!y),_(!0)},[o.data,t,g]);const r=()=>{S||(L?A(!0):i())},I=de(r);function O(y){const M=m.find(B=>B.id===y);M&&(c(M),v(le(t,M)),T(M.status==="enabled"),w(!1),H(null),A(!1),j(null))}function R(y){v(y),w(!0)}async function q(){if(!(!o.data||!u||S||o.isError)){C(!0),j(null);try{await rn(n,a,d,o.data,p,k),await o.refresh(),w(!1),i()}catch(y){j(y instanceof Error?y.message:"Unable to save continual learning.")}finally{C(!1)}}}const W={draft:d,options:o.data,loading:o.isPending,onChange:R};return e.jsx("div",{className:"git-dialog-backdrop provider-dialog-backdrop",onMouseDown:r,children:e.jsxs("section",{ref:I,className:"git-dialog provider-details-dialog agent-learning-dialog",role:"dialog","aria-modal":"true","aria-label":"Continual learning",onMouseDown:y=>y.stopPropagation(),children:[e.jsx("button",{type:"button",className:"git-dialog-close","aria-label":"Close continual learning",disabled:S,onClick:r,children:e.jsx(te,{size:16})}),e.jsx("div",{className:"provider-dialog-header",children:e.jsxs("div",{children:[e.jsx("h2",{children:"Continual learning"}),e.jsx("span",{children:s})]})}),f?e.jsxs("div",{className:"agent-learning-discard",role:"alert",children:[e.jsx("p",{children:"Discard unsaved policy changes?"}),e.jsxs("div",{className:"settings-button-row",children:[e.jsx("button",{type:"button",onClick:()=>{A(!1),H(null)},children:"Keep editing"}),e.jsx("button",{type:"button",onClick:()=>K?O(K):i(),children:"Discard changes"})]})]}):null,m.length>1?e.jsxs("label",{className:"agent-learning-policy-picker",children:["Learning policy",e.jsx("select",{disabled:S,value:p?.id??"",onChange:y=>{L?(H(y.target.value),A(!0)):O(y.target.value)},children:m.map(y=>e.jsxs("option",{value:y.id,children:[y.configuration.name," (",y.status,")"]},y.id))})]}):null,e.jsx("div",{className:"surface-tabs provider-agent-tabs",role:"tablist","aria-label":"Continual learning settings",children:[["sources","Sources & rubrics"],["preparation","Preparation"],["schedule","Run window & budget"]].map(([y,M])=>e.jsx("button",{type:"button",id:`learning-tab-${y}`,role:"tab","aria-selected":N===y,"aria-controls":`learning-panel-${y}`,tabIndex:N===y?0:-1,onClick:()=>x(y),onKeyDown:B=>{const Y=["sources","preparation","schedule"],V=Y.indexOf(y);if(["ArrowLeft","ArrowRight","Home","End"].includes(B.key)){B.preventDefault();const ee=Y[B.key==="Home"?0:B.key==="End"?2:(V+(B.key==="ArrowRight"?1:2))%3];x(ee),document.getElementById(`learning-tab-${ee}`)?.focus()}},children:M},y))}),e.jsxs("form",{className:"agent-learning-form",onSubmit:y=>{y.preventDefault(),q()},children:[e.jsx("fieldset",{disabled:!u||S,children:e.jsxs("label",{children:["Policy name",e.jsx("input",{required:!0,maxLength:200,value:d.name,onChange:y=>R({...d,name:y.target.value})})]})}),e.jsx("div",{id:`learning-panel-${N}`,role:"tabpanel","aria-labelledby":`learning-tab-${N}`,children:e.jsx("fieldset",{disabled:!u||S,children:N==="sources"?e.jsx(ln,{...W}):N==="preparation"?e.jsx(on,{...W}):e.jsx(cn,{...W})})}),o.isPending?e.jsx("p",{role:"status",children:"Fetching available sources, rubrics and models…"}):null,o.isError?e.jsxs("p",{role:"alert",children:[o.error.message," ",e.jsx("button",{type:"button",onClick:()=>{o.refetch()},children:"Retry settings"})]}):null,P?e.jsx("p",{role:"alert",children:P}):null,e.jsxs("label",{className:"agent-learning-check",children:[e.jsx("input",{type:"checkbox",checked:k,disabled:!u||S,onChange:y=>{T(y.target.checked),w(!0)}}),"Enable this policy after saving"]}),e.jsx("p",{children:"Saving enables only the reviewed sources, schedule and limits. No training is dispatched by opening this dialog."}),e.jsxs("div",{className:"settings-button-row agent-learning-footer",children:[e.jsx("button",{type:"button",disabled:S,onClick:r,children:"Cancel"}),e.jsx("button",{type:"submit",className:"primary",disabled:!u||!o.data||o.isError||S||!d.sourceKeys.length,children:S?"Saving…":k?"Save and enable":"Save paused"})]})]})]})})}function un({agent:n,inventory:a,connection:t,teamId:s,projectId:l,projectName:g,query:o,signedIn:i}){const[p,c]=h.useState(!1),[d,v]=h.useState(null),[u,_]=h.useState(!1),[L,w]=h.useState(null),[S,C]=h.useState(""),P=h.useMemo(()=>new Set(a?.collector.connections.filter(m=>m.source===n.id&&m.teamId===s&&m.projectId===l&&m.state!=="disconnected").map(m=>m.sourceInstanceId)??[]),[a,n.id,s,l]),j=o.data?.sources.filter(m=>m.projectId===l&&(n.id==="openpond_chat"?["native_chat","native_work"].includes(m.origin)&&m.sourceInstanceId===null:m.origin===n.id&&m.sourceInstanceId!==null&&P.has(m.sourceInstanceId)))??[],k=[...new Set(j.flatMap(m=>m.sourceInstanceId?[m.sourceInstanceId]:[]))],T=k.includes(S)?S:k[0],N=j.filter(m=>m.sourceInstanceId===null||m.sourceInstanceId===T).map(m=>({origin:m.origin,sourceInstanceId:m.sourceInstanceId,enabled:!0})),x=o.data?.policies.filter(m=>m.configuration.projectId===l)??[],f=x.filter(m=>m.status==="enabled"&&m.configuration.sources.some(r=>r.enabled&&N.some(I=>U(I)===U(r)))),A=f[0]??x.find(m=>m.status==="enabled")??x[0],K=!!(t&&s&&l&&i&&o.data?.projects.some(m=>m.id===l));async function H(m,r){if(!t||!s||!o.data)return;let I={...m.configuration,sources:m.configuration.sources.map(R=>N.some(q=>U(q)===U(R))?{...R,enabled:r}:R)};if(r)for(const R of N)I.sources.some(q=>U(q)===U(R))||I.sources.push(R);const O=o.data.servingTargets.find(R=>R.id===I.serving?.targetId);if(r&&I.mode==="activate"&&I.serving?.targetId&&(!O||!O.enabled||O.projectId!==l))throw new Error("Review the policy's serving target before adding a source.");if(r&&I.mode==="activate"&&(!I.serving?.targetId||O?.hostedPonder)){const R=await Q(t,s,"serving-targets",{action:"ensure_hosted_ponder",projectId:l,bindingId:o.data.ponderBindingId});I={...I,serving:{targetId:R.id,canarySeconds:I.serving?.canarySeconds??120,rollbackOnRuntimeFailure:!0}}}return Ce(t,s,m,I,I.sources.some(R=>R.enabled))}async function z(m){if(!u){_(!0),w(null);try{if(m){const r=x.find(I=>I.id===d);if(!r)throw new Error("Refresh the learning policy before joining.");await H(r,!0),v(null)}else for(const r of f)await H(r,!1);await o.refresh()}catch(r){w(r instanceof Error?r.message:"Unable to update this learning source."),await o.refresh()}finally{_(!1)}}}return e.jsxs("div",{className:"agent-learning-control",children:[k.length>1?e.jsxs("label",{children:["Learning connection",e.jsx("select",{"aria-label":`${n.name} learning connection`,value:T,disabled:u,onChange:m=>C(m.target.value),children:k.map(m=>e.jsx("option",{value:m,children:j.find(r=>r.sourceInstanceId===m)?.name??"Local connection"},m))})]}):null,e.jsxs("div",{className:"agent-learning-control-row",children:[e.jsxs("label",{className:"provider-toggle",children:[e.jsx("input",{type:"checkbox","aria-label":`${n.name} continual learning`,checked:f.length>0,disabled:!K||!N.length||o.isPending||o.isError||u,onChange:m=>{if(m.target.checked){const r=x.find(I=>I.status==="enabled");r?v(r.id):c(!0)}else z(!1)}}),e.jsx("span",{"aria-hidden":"true"})]}),e.jsx("button",{type:"button",className:"agent-learning-settings",disabled:!t||!s||!l||!i||u,onClick:()=>c(!0),children:"Continual learning"}),e.jsx("small",{children:o.isError?"Needs attention":o.isPending?"Loading…":f.length?"On schedule":x.length?"Paused":"Off"})]}),l&&!N.length&&o.data?e.jsx("small",{children:"Sync this agent to the selected Project to use its local connection."}):null,L?e.jsx("small",{role:"alert",children:L}):null,p&&t&&s?e.jsx(dn,{connection:t,teamId:s,projectId:l,projectName:g,initialPolicy:A,bindings:N,query:o,onClose:()=>c(!1)},l):null,d?e.jsx(pn,{policies:x.filter(m=>m.status==="enabled"),policyId:d,agentName:n.name,busy:u,error:L,onChoose:v,onClose:()=>{u||v(null)},onJoin:()=>{z(!0)}}):null]})}function pn({policies:n,policyId:a,agentName:t,busy:s,error:l,onChoose:g,onClose:o,onJoin:i}){const p=de(o),c=n.find(d=>d.id===a);return e.jsx("div",{className:"git-dialog-backdrop provider-dialog-backdrop",onMouseDown:o,children:e.jsxs("section",{ref:p,className:"git-dialog agent-learning-join",role:"dialog","aria-modal":"true","aria-label":"Add learning source",onMouseDown:d=>d.stopPropagation(),children:[e.jsx("button",{type:"button",className:"git-dialog-close",disabled:s,"aria-label":"Cancel",onClick:o,children:e.jsx(te,{size:16})}),e.jsxs("h2",{children:["Add ",t," to ",c?.configuration.name??"continual learning","?"]}),e.jsx("p",{children:"This agent will contribute conversations to the existing model, schedule and spending limits. Collection settings stay unchanged."}),n.length>1?e.jsxs("label",{children:["Existing policy",e.jsx("select",{value:a,disabled:s,onChange:d=>g(d.target.value),children:n.map(d=>e.jsx("option",{value:d.id,children:d.configuration.name},d.id))})]}):null,l?e.jsx("p",{role:"alert",children:l}):null,e.jsxs("div",{className:"settings-button-row",children:[e.jsx("button",{type:"button",disabled:s,onClick:o,children:"Cancel"}),e.jsx("button",{type:"button",className:"primary",disabled:s||!c,onClick:i,children:s?"Adding…":"Add agent"})]})]})})}function hn({connection:n,payload:a,onPayload:t,onToast:s}){const{inventory:l,error:g,loading:o,refresh:i}=sn(n),[p,c]=h.useState(null),[d,v]=h.useState(null),[u,_]=h.useState(!1),[L,w]=h.useState(0),S=`openpond-agent-cards:${JSON.stringify(a?.account.activeProfile??null)}`,[C,P]=h.useState(()=>{try{const b=JSON.parse(localStorage.getItem(S)??"null");return Array.isArray(b)?b.filter(E=>typeof E=="string"&&ae.some($=>$.id===E)):["oh_my_pi"]}catch{return["oh_my_pi"]}});h.useEffect(()=>{try{localStorage.setItem(S,JSON.stringify(C))}catch{}},[S,C]);const[j,k]=h.useState(!1),T=h.useRef(null);h.useEffect(()=>{if(!j)return;const b=$=>{T.current?.contains($.target)||k(!1)},E=$=>{$.key==="Escape"&&(k(!1),T.current?.querySelector("button")?.focus())};return document.addEventListener("pointerdown",b),document.addEventListener("keydown",E),()=>{document.removeEventListener("pointerdown",b),document.removeEventListener("keydown",E)}},[j]);const N=h.useRef({payload:a,onPayload:t});N.current={payload:a,onPayload:t};const x=h.useRef(!0);h.useEffect(()=>(x.current=!0,()=>{x.current=!1}),[]);const f=a?.account??null,A=a?.preferences.defaultTeamId??f?.accounts.find(b=>b.isActive)?.apiKeyAccess?.teamId??null,K=h.useCallback(b=>v(b),[]),H=h.useCallback(b=>{const E=N.current;x.current&&E.payload&&E.onPayload({...E.payload,providers:b})},[]),z=h.useCallback((b,E)=>{const $=N.current;if(!x.current||!$.payload)return;const ie=$.payload.providers,he={...$.payload,providers:{...ie,statuses:{...ie.statuses,[b]:E.statuses[b]},modelCaches:{...ie.modelCaches,[b]:E.modelCaches[b]}}};N.current={...$,payload:he},$.onPayload(he)},[]);Ve(n,a?.providers,z,L);const m=h.useCallback(b=>{const E=N.current;E.payload&&E.onPayload({...E.payload,preferences:b.preferences})},[]),r=Be({connection:n,onError:K,onPayload:t,onPreferences:m,onProviders:H,preferences:Te(a?.preferences),providers:a?.providers}),I=nn(n,f,A),{projects:O,projectId:R,loading:q,error:W}=I,y=an(n,A,JSON.stringify([f?.activeProfile??null,f?.profile?.id??null]),f?.state==="signed_in"),M=f?.baseUrl??f?.activeProfile?.baseUrl,B=M&&A?`${M.replace(/\/$/u,"")}/console/connections?${new URLSearchParams({teamId:A,...R?{project:R}:{}})}`:null;async function Y(b){if(!(!n||u)){_(!0),v(null);try{await Z(n,"/v1/native-history/collector",{method:"POST",body:JSON.stringify({command:b})}),await i()}catch(E){const $=E instanceof Error?E.message:"Importer action failed.";v($),s?.($,"error")}finally{_(!1)}}}const V=p?.provider,ee=V?a?.providers.statuses[V]:null,pe=p?e.jsx(tn,{agent:p,inventory:l,connection:n,account:f,teamId:A,projects:O,projectId:R,onRefresh:i,learningUrl:B},p.id):null;return e.jsxs("section",{className:"connected-agents-view","aria-label":"Connected agents",children:[e.jsxs("div",{className:"agent-connections-heading",children:[e.jsxs("div",{children:[e.jsx("h2",{children:"Connected agents"}),e.jsx("p",{children:"Use your installed agents and sync conversations with OpenPond."})]}),e.jsxs("div",{className:"agent-connections-actions",children:[e.jsx("button",{type:"button",disabled:o||!n,"aria-label":"Refresh agent connections",onClick:()=>{i(),I.refresh(),w(b=>b+1)},children:e.jsx(Oe,{size:15})}),e.jsxs("div",{className:"agent-more",ref:T,children:[e.jsx("button",{type:"button","aria-expanded":j,onClick:()=>k(b=>!b),children:"More agents"}),j?e.jsxs("div",{className:"agent-more-menu",children:[ae.filter(b=>C.includes(b.id)).map(b=>e.jsxs("button",{type:"button",onClick:()=>{P(E=>E.filter($=>$!==b.id)),k(!1)},children:[e.jsx(Ue,{size:14}),e.jsx("span",{children:b.name})]},b.id)),C.length===0?e.jsx("span",{children:"All agents shown"}):null]}):null]})]})]}),e.jsxs("label",{className:"agent-project-scope",children:["Project",e.jsxs("select",{"aria-label":"Connections project",value:R,disabled:!O.length,onChange:b=>I.select(b.target.value),children:[e.jsx("option",{value:"",children:q&&!O.length?"Fetching projects…":"Select project"}),O.map(b=>e.jsx("option",{value:b.id,children:b.content.name},b.id))]})]}),W?e.jsx("p",{role:"alert",children:W}):null,g?e.jsx("p",{role:"alert",children:g}):null,d?e.jsx("p",{role:"alert",children:d}):null,e.jsx("div",{className:"agent-connections-grid",children:ae.filter(b=>!C.includes(b.id)).map(b=>e.jsx(We,{agent:b,account:f,native:b.provider?a?.providers.statuses[b.provider]:null,inventory:l,projects:O,teamId:A,learningControl:e.jsx(un,{agent:b,inventory:l,connection:n,teamId:A,projectId:R,projectName:O.find(E=>E.id===R)?.content.name??"Selected Project",query:y,signedIn:f?.state==="signed_in"}),connected:!!n,onHide:()=>P(E=>[...E,b.id]),onManage:()=>c(b)},`${JSON.stringify([f?.activeProfile,f?.profile?.id])}:${A}:${R}:${b.id}`))}),l?e.jsxs("div",{className:"agent-importer-footer",children:[e.jsx("span",{children:l.collector.desiredState==="stopped"?"Importer stopped":l.collector.running?"Importer running":"Importer offline"}),e.jsx("button",{type:"button",disabled:u||!l.collector.running,onClick:()=>{Y("sync")},children:"Sync now"}),e.jsxs("button",{type:"button",disabled:u,onClick:()=>{Y(l.collector.running?"stop":"start")},children:[l.collector.running?"Stop":"Start"," importer"]}),e.jsxs("details",{children:[e.jsx("summary",{children:"CLI state"}),e.jsx("code",{children:l.statusCommand})]})]}):null,p&&V&&ee&&a?e.jsx(Je,{checkNativeProvider:r.checkNativeProvider,connection:n,account:f,codex:a.codex,providerId:V,providerBusy:r.providerBusy,settings:a.providers,status:ee,onClose:()=>c(null),onDeleteCredential:r.deleteProviderCredential,onRefreshModels:r.refreshProviderModels,onSaveConfig:r.saveProviderConfig,onSaveCredential:r.saveProviderCredential,onStartOpenAiSubscriptionAuth:r.startOpenAiSubscriptionAuth,onValidate:r.validateProvider,conversationPanel:pe}):p?e.jsx(mn,{agent:p,onClose:()=>c(null),children:pe}):null]})}function mn({agent:n,onClose:a,children:t}){const s=de(a);return e.jsx("div",{className:"git-dialog-backdrop provider-dialog-backdrop",onMouseDown:a,children:e.jsxs("section",{ref:s,className:"git-dialog provider-details-dialog agent-setup-dialog",role:"dialog","aria-modal":"true","aria-label":`${n.name} connection`,onMouseDown:l=>l.stopPropagation(),children:[e.jsx("button",{type:"button",className:"git-dialog-close","aria-label":"Close",onClick:a,children:e.jsx(te,{size:16})}),e.jsx("div",{className:"provider-dialog-header",children:e.jsxs("div",{children:[e.jsx("h2",{children:n.name}),e.jsx("span",{children:"Conversation syncing"})]})}),t]})})}const gn=["For agents","Featured","Productivity","Developer tools"],xn=new Set(["slack","google","github","mcp"]);function Un({account:n,connection:a,defaultTeamId:t,onToast:s,payload:l,onPayload:g}){const[o,i]=h.useState("agents"),p=h.useId(),[c,d]=h.useState(null),[v,u]=h.useState(""),[_,L]=h.useState("For agents"),[w,S]=h.useState(()=>re()),[C,P]=h.useState(null),j=n?.baseUrl??n?.activeProfile?.baseUrl??null,k=vn(t,C),T=h.useMemo(()=>w.filter(x=>fn(x,_)).filter(x=>yn(x,v)),[_,v,w]);h.useEffect(()=>{let x=!0;return!a||o!=="apps"?(S(re()),P(null),()=>{x=!1}):(Fe.connectedAppStatus(a,{status:"all"}).then(f=>{x&&(S(f.apps),P(f.teamId?.trim()||null))}).catch(f=>{x&&(console.warn("Unable to load connected app status.",f),S(re()),P(null))}),()=>{x=!1})},[a,o]);function N(x){const f=He({appId:x.id,baseUrl:j,teamId:k});kn(f).catch(A=>{s?.(A instanceof Error?A.message:String(A),"error")})}return e.jsxs("div",{className:"apps-workspace-view",children:[e.jsx("div",{className:"apps-page-tabs",role:"tablist","aria-label":"Apps pages",onKeyDown:x=>{if(!["ArrowLeft","ArrowRight","Home","End"].includes(x.key))return;x.preventDefault();const f=x.key==="Home"?"agents":x.key==="End"||o==="agents"?"apps":"agents";i(f),x.currentTarget.querySelector(`#${CSS.escape(`${p}-${f}`)}`)?.focus()},children:[{value:"agents",label:"Connections"},{value:"apps",label:"Apps"}].map(x=>e.jsx("button",{type:"button",role:"tab",id:`${p}-${x.value}`,"aria-controls":`${p}-${x.value}-panel`,tabIndex:o===x.value?0:-1,"aria-selected":o===x.value,onClick:()=>i(x.value),children:x.label},x.value))}),e.jsx("div",{role:"tabpanel",id:`${p}-${o}-panel`,"aria-labelledby":`${p}-${o}`,children:o==="agents"?e.jsx(hn,{connection:a,payload:l,onPayload:g,onToast:s},JSON.stringify([n?.activeProfile,t])):e.jsxs("section",{className:"connected-apps-view","aria-label":"Apps",children:[e.jsxs("div",{className:"connected-apps-header",children:[e.jsxs("div",{children:[e.jsx("h1",{children:"Apps"}),e.jsx("p",{children:"Connect apps that agents can use for chat, knowledge, files, and workflow actions."})]}),e.jsxs("label",{className:"connected-apps-search",children:[e.jsx($e,{size:15}),e.jsx("input",{"aria-label":"Search apps",onChange:x=>u(x.target.value),placeholder:"Search apps",type:"search",value:v})]})]}),e.jsxs("section",{className:"connected-apps-hero","aria-label":"App context",children:[e.jsxs("div",{className:"connected-apps-hero-copy",children:[e.jsx("span",{className:"connected-apps-hero-icon",children:e.jsx(ue,{appId:"github"})}),e.jsx("h2",{children:"Work with your apps"}),e.jsx("p",{children:"Bring repositories, documents, chat, calendars, and custom MCP tools into OpenPond."})]}),e.jsxs("div",{className:"connected-apps-context-card","aria-hidden":"true",children:[e.jsx("strong",{children:"Agent context"}),e.jsxs("div",{children:[e.jsx("span",{className:"files",children:"Files"}),e.jsx("span",{className:"chat",children:"Chat"}),e.jsx("span",{className:"oauth",children:"OAuth"}),e.jsx("span",{className:"mcp",children:"MCP"})]})]})]}),e.jsx("div",{className:"connected-apps-filters",role:"tablist","aria-label":"App categories",children:gn.map(x=>e.jsx("button",{"aria-selected":_===x,className:_===x?"active":"",onClick:()=>L(x),role:"tab",type:"button",children:x},x))}),e.jsxs("div",{className:"connected-apps-list",children:[T.map(x=>e.jsx(jn,{app:x,onSelect:()=>d(x)},x.id)),T.length===0?e.jsx("div",{className:"connected-apps-empty",children:"No apps match the current search."}):null]}),c?e.jsx(bn,{app:c,onClose:()=>d(null),onInstall:()=>N(c)}):null]})})]})}function vn(n,a){const t=n?.trim();return t||a?.trim()||null}function jn({app:n,onSelect:a}){return e.jsxs("button",{className:"connected-app-row",onClick:a,type:"button",children:[e.jsxs("span",{className:"connected-app-row-main",children:[e.jsx(ue,{appId:n.id}),e.jsxs("span",{className:"connected-app-copy",children:[e.jsxs("span",{className:"connected-app-title",children:[e.jsx("strong",{children:n.label}),e.jsxs("span",{children:[n.shortLabel!==n.label?n.shortLabel:n.category," / ",n.setupSurfaceLabel]})]}),e.jsx("span",{children:n.description}),e.jsxs("span",{className:"connected-app-capability-row",children:[n.capabilityLabels.slice(0,2).map(t=>e.jsx("span",{children:t},t)),n.capabilityLabels.length>2?e.jsxs("span",{children:["+",n.capabilityLabels.length-2]}):null]})]})]}),e.jsx("span",{className:`connected-app-status-pill ${n.status}`,children:n.statusLabel}),e.jsx(Me,{size:16})]})}function bn({app:n,onClose:a,onInstall:t}){const s=n.connections.filter(l=>l.status==="active");return e.jsx("div",{className:"connected-app-dialog-backdrop",role:"presentation",onMouseDown:l=>{l.target===l.currentTarget&&a()},children:e.jsxs("section",{className:"connected-app-dialog",role:"dialog","aria-modal":"true","aria-labelledby":"connected-app-dialog-title",children:[e.jsx("button",{className:"connected-app-dialog-close",type:"button","aria-label":"Close app details",onClick:a,children:e.jsx(te,{size:17})}),e.jsxs("div",{className:"connected-app-dialog-identity",children:[e.jsx("span",{className:"openpond-mark",children:e.jsx("img",{alt:"",src:je})}),e.jsxs("span",{className:"connection-dots","aria-hidden":"true",children:[e.jsx("span",{}),e.jsx("span",{}),e.jsx("span",{})]}),e.jsx(ue,{appId:n.id})]}),e.jsxs("h2",{id:"connected-app-dialog-title",children:["Connect ",n.label]}),e.jsxs("div",{className:"connected-app-approval",children:[e.jsx(De,{size:16}),e.jsx("span",{children:n.statusLabel})]}),e.jsxs("div",{className:"connected-app-dialog-body",children:[e.jsxs("section",{children:[e.jsx("h3",{children:n.setupSurfaceLabel}),e.jsx("p",{children:"The web flow shows the provider account, workspace, and requested access before anything is connected."})]}),e.jsxs("section",{children:[e.jsx("h3",{children:"Connected account"}),e.jsx("p",{children:wn(s)})]}),e.jsxs("section",{children:[e.jsx("h3",{children:"Available capabilities"}),e.jsx("div",{className:"connected-app-dialog-capabilities",children:n.capabilities.map(l=>e.jsx("span",{children:l.label},l.id))})]}),e.jsxs("section",{children:[e.jsx("h3",{children:"Sandbox lease policy"}),e.jsx("p",{children:n.leasePolicy.leaseable?`Leaseable for ${n.leasePolicy.defaultTtlSeconds??0} seconds with scoped proxy access.`:"Managed as setup or tool discovery; no OAuth lease is required."})]})]}),e.jsxs("button",{className:"connected-app-dialog-primary",type:"button",onClick:t,children:[e.jsx("span",{children:n.installLabel}),e.jsx(ze,{size:15})]})]})})}function ue({appId:n}){return e.jsx("span",{className:`connected-app-icon app-${n}`,children:e.jsx("img",{alt:"",src:Sn(n)})})}function fn(n,a){return a==="For agents"?!0:a==="Featured"?xn.has(n.id):a==="Productivity"?n.category==="Productivity"||n.category==="Chat":n.category==="Developer tools"||n.id==="mcp"}function yn(n,a){const t=a.trim().toLowerCase();return t?[n.id,n.label,n.shortLabel,n.category,n.description,n.providerFamily,n.setupSurface].some(s=>s.toLowerCase().includes(t)):!0}function Sn(n){return Ke(n)}async function kn(n){const a=window.openpond?.browser;if(a){const t=await a.openExternal({conversationId:"connected-apps",url:n});if(!t.ok)throw new Error(t.error??"Unable to open app setup.");return}window.open(n,"_blank","noopener,noreferrer")}function wn(n){return n.length===0?"No active OAuth connection for this setup surface.":n.map(a=>{const t=a.accountLabel??"Connected account";return a.workspaceLabel?`${t} / ${a.workspaceLabel}`:t}).join(", ")}export{Un as AppsView,jn as ConnectedAppRow,vn as connectedAppSetupTeamId};
@@ -1 +0,0 @@
1
- import{r as i,j as e}from"./index-BxWTVKtn.js";import{s as u}from"./LabsRoute-CXJRJMhr.js";import{dB as n}from"./App-CuhaCsfb.js";import"./chunk-UHVJOMWN-BqXRe639.js";import"./AppDialog-BdusXgU0.js";import"./cloud-upload-CJPYPVl8.js";import"./MainPane-CakOBCHw.js";import"./MarkdownText-gJMuefaJ.js";import"./arrow-up-right-H0pvnH2s.js";import"./square-oy7f5Ce6.js";import"./folder-open-sLZJxLQy.js";import"./play-CXkxUZeU.js";import"./training-model-data-CKOkpBBL.js";import"./info-Dc81lEfw.js";/* empty css */import"./ComposerCreateImproveStrip-DR-Qo7b4.js";function H({api:o,policyId:r,sourceId:t,onBack:s}){const a=i.useMemo(()=>o.reviewClient(r,t),[o,r,t]),[m,p]=i.useState(null),[l,c]=i.useState(null);return e.jsxs("section",{"aria-label":"Hosted example review",children:[e.jsx("button",{type:"button",className:"training-button secondary",onClick:()=>{n(s)},children:"Back to continual learning"}),e.jsx("p",{children:"Reviewing hosted examples. Approved tasks become eligible for this policy's next training check."}),e.jsx(u,{client:a,selectedId:m,after:l,sourceId:t,onSelect:d=>{n(()=>p(d))},onPage:c})]})}export{H as HostedModelLearningReview};