openpond 0.2.55 → 0.2.57

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 (399) hide show
  1. package/dist/app-server.d.ts +10545 -10254
  2. package/dist/app-server.js +1 -1
  3. package/dist/chunks/actions-command-QU4H53OG.js +2 -0
  4. package/dist/chunks/{app-layer-Y2UERCPY.js → app-layer-NSTE5HIT.js} +1 -1
  5. package/dist/chunks/app-server-connected-apps-JHGWLBXT.js +2 -0
  6. package/dist/chunks/app-server-evaluations-GJPFWIDA.js +2 -0
  7. package/dist/chunks/app-server-harness-services-IH4G6POY.js +2 -0
  8. package/dist/chunks/app-server-runtime-VCRNCNX2.js +2 -0
  9. package/dist/chunks/apps-BKTOR4F7.js +2 -0
  10. package/dist/chunks/chunk-25MBPJVY.js +2 -0
  11. package/dist/chunks/chunk-2D4Y3HNW.js +2 -0
  12. package/dist/chunks/chunk-2IHO4GDJ.js +2 -0
  13. package/dist/chunks/chunk-2QUCCP6Z.js +2 -0
  14. package/dist/chunks/chunk-3K4VVB7S.js +6 -0
  15. package/dist/chunks/chunk-3QIB5FXI.js +10 -0
  16. package/dist/chunks/chunk-3RCRSMWZ.js +17 -0
  17. package/dist/chunks/chunk-3VUATFZD.js +2 -0
  18. package/dist/chunks/chunk-3Z47M3YY.js +2 -0
  19. package/dist/chunks/{chunk-UA5DA5I2.js → chunk-4D7HWVWD.js} +1 -1
  20. package/dist/chunks/chunk-4EPSHPZL.js +2 -0
  21. package/dist/chunks/chunk-4NESNOK5.js +2 -0
  22. package/dist/chunks/chunk-523TE4BI.js +2 -0
  23. package/dist/chunks/{chunk-B7QDZPNX.js → chunk-5MCNZCVQ.js} +1 -1
  24. package/dist/chunks/chunk-6FDWRG55.js +2 -0
  25. package/dist/chunks/{chunk-DLVPSCTB.js → chunk-6QSSIT62.js} +1 -1
  26. package/dist/chunks/chunk-6ZFPQYHG.js +2 -0
  27. package/dist/chunks/chunk-74IIXVAE.js +2 -0
  28. package/dist/chunks/chunk-74ZXXBGN.js +6 -0
  29. package/dist/chunks/chunk-773TH7FN.js +2 -0
  30. package/dist/chunks/chunk-7E6T7GP5.js +2 -0
  31. package/dist/chunks/chunk-7ED24PP6.js +2 -0
  32. package/dist/chunks/chunk-7HPDGZOR.js +86 -0
  33. package/dist/chunks/chunk-7KWD2I6W.js +2 -0
  34. package/dist/chunks/chunk-7PXZ4X4P.js +2 -0
  35. package/dist/chunks/chunk-A6USMRWK.js +2 -0
  36. package/dist/chunks/chunk-ABD5M2D2.js +2 -0
  37. package/dist/chunks/chunk-ACYFMLWG.js +10 -0
  38. package/dist/chunks/chunk-AN525SPP.js +6 -0
  39. package/dist/chunks/chunk-APB2STJK.js +2 -0
  40. package/dist/chunks/chunk-AY64VY4E.js +2 -0
  41. package/dist/chunks/{chunk-G6JMQGX7.js → chunk-B7RFL4N2.js} +1 -1
  42. package/dist/chunks/chunk-BLXEAZCQ.js +12 -0
  43. package/dist/chunks/chunk-D74JEERO.js +5 -0
  44. package/dist/chunks/{chunk-U2YMBCX7.js → chunk-DARVPBZ4.js} +1 -1
  45. package/dist/chunks/chunk-DBK66CJP.js +8 -0
  46. package/dist/chunks/chunk-DDMZSZFL.js +1 -0
  47. package/dist/chunks/chunk-DIO5CB6U.js +2 -0
  48. package/dist/chunks/chunk-DMFUEUAZ.js +5 -0
  49. package/dist/chunks/chunk-DMVD2RFZ.js +2 -0
  50. package/dist/chunks/chunk-DUURYZOI.js +2 -0
  51. package/dist/chunks/chunk-DZUAT3TP.js +1 -0
  52. package/dist/chunks/chunk-EIEZHFIW.js +6 -0
  53. package/dist/chunks/chunk-EIRYMSEG.js +19 -0
  54. package/dist/chunks/{chunk-R27YGT77.js → chunk-EKM2D7JU.js} +1 -1
  55. package/dist/chunks/chunk-EQFGBL3O.js +2 -0
  56. package/dist/chunks/chunk-EYPCBBMS.js +2 -0
  57. package/dist/chunks/chunk-F4KOGISR.js +10 -0
  58. package/dist/chunks/chunk-F74GBN6K.js +2 -0
  59. package/dist/chunks/chunk-FEAKTSRS.js +2 -0
  60. package/dist/chunks/chunk-FFRFSDBM.js +2 -0
  61. package/dist/chunks/chunk-FTEOCCPB.js +23 -0
  62. package/dist/chunks/chunk-FUOEIDMA.js +8 -0
  63. package/dist/chunks/{chunk-BQAF5P7K.js → chunk-FV2R5RUN.js} +2 -2
  64. package/dist/chunks/chunk-FWIPHEVA.js +12 -0
  65. package/dist/chunks/chunk-FY5KHLMW.js +2 -0
  66. package/dist/chunks/chunk-G3RXYI2L.js +6 -0
  67. package/dist/chunks/chunk-GJ2ZJFDD.js +2 -0
  68. package/dist/chunks/chunk-GLDYJM7O.js +1 -0
  69. package/dist/chunks/chunk-GPVCOEUH.js +2 -0
  70. package/dist/chunks/chunk-GW766ZSO.js +5 -0
  71. package/dist/chunks/chunk-GWCHDF2C.js +4 -0
  72. package/dist/chunks/chunk-GZ7M5XBP.js +2 -0
  73. package/dist/chunks/chunk-H6IW2R22.js +140 -0
  74. package/dist/chunks/chunk-HCYX6RHP.js +2 -0
  75. package/dist/chunks/chunk-HDL5YSAA.js +2 -0
  76. package/dist/chunks/chunk-HIOKCIL7.js +2 -0
  77. package/dist/chunks/{chunk-IODUCRBA.js → chunk-HY3GOBFJ.js} +1 -1
  78. package/dist/chunks/chunk-HZEIRHEB.js +2 -0
  79. package/dist/chunks/chunk-I2NXNMRZ.js +2 -0
  80. package/dist/chunks/chunk-I7AQMAQI.js +33 -0
  81. package/dist/chunks/chunk-IZ6DLEVY.js +2 -0
  82. package/dist/chunks/chunk-J2TWKFML.js +1871 -0
  83. package/dist/chunks/chunk-JDEEWOD7.js +2 -0
  84. package/dist/chunks/chunk-JFXWI3EN.js +6 -0
  85. package/dist/chunks/chunk-JYKRR7E5.js +5 -0
  86. package/dist/chunks/chunk-KCJVFLBB.js +2 -0
  87. package/dist/chunks/{chunk-5CMKGD43.js → chunk-KG325WTN.js} +1 -1
  88. package/dist/chunks/chunk-KUERKVEU.js +3 -0
  89. package/dist/chunks/chunk-KVTBX2UP.js +2 -0
  90. package/dist/chunks/chunk-L3KS6MOV.js +2 -0
  91. package/dist/chunks/chunk-L6K7ERG5.js +2 -0
  92. package/dist/chunks/{chunk-MH3LHSGX.js → chunk-LQQNBVEB.js} +1 -1
  93. package/dist/chunks/{chunk-BTI4N7YO.js → chunk-M4JWQSV7.js} +1 -1
  94. package/dist/chunks/chunk-MQULU465.js +2 -0
  95. package/dist/chunks/chunk-MULXCKG7.js +10 -0
  96. package/dist/chunks/chunk-N4FFQPLR.js +2 -0
  97. package/dist/chunks/chunk-N73MU2C3.js +2 -0
  98. package/dist/chunks/chunk-NHQ36THU.js +3 -0
  99. package/dist/chunks/chunk-O6ULLQJ6.js +2 -0
  100. package/dist/chunks/chunk-O72BSKSO.js +2 -0
  101. package/dist/chunks/chunk-OGDADQGH.js +143 -0
  102. package/dist/chunks/chunk-OIUTWU6K.js +2 -0
  103. package/dist/chunks/chunk-OLLLZVHF.js +2 -0
  104. package/dist/chunks/chunk-OPNRWESL.js +3 -0
  105. package/dist/chunks/chunk-OQKJGTTO.js +4 -0
  106. package/dist/chunks/chunk-OQPJ7FJF.js +9 -0
  107. package/dist/chunks/{chunk-TERVLCRG.js → chunk-OS3LO5J3.js} +1 -1
  108. package/dist/chunks/chunk-OUVIWDL2.js +2 -0
  109. package/dist/chunks/chunk-PCSIOUHF.js +7 -0
  110. package/dist/chunks/chunk-PF5R6CMP.js +21 -0
  111. package/dist/chunks/chunk-PPAPVGJP.js +3 -0
  112. package/dist/chunks/chunk-PRGBLQVH.js +2 -0
  113. package/dist/chunks/chunk-PSGGOZFM.js +2 -0
  114. package/dist/chunks/chunk-PUZQU66L.js +2 -0
  115. package/dist/chunks/{chunk-NOTXPD2T.js → chunk-Q2QL6UWN.js} +1 -1
  116. package/dist/chunks/chunk-Q4TBTRIG.js +2 -0
  117. package/dist/chunks/chunk-Q5LEXXJG.js +16 -0
  118. package/dist/chunks/chunk-QDC4OW3S.js +2 -0
  119. package/dist/chunks/chunk-QEFHOJFE.js +7 -0
  120. package/dist/chunks/chunk-QHWGQ3A4.js +5 -0
  121. package/dist/chunks/chunk-QIKWJ2AA.js +11 -0
  122. package/dist/chunks/chunk-QNG27G3T.js +6 -0
  123. package/dist/chunks/chunk-QOGJAQDO.js +3 -0
  124. package/dist/chunks/chunk-QOTVNQDI.js +4 -0
  125. package/dist/chunks/{chunk-NNIRIUSY.js → chunk-RAXOSUSW.js} +1 -1
  126. package/dist/chunks/chunk-RNIAFXMB.js +50 -0
  127. package/dist/chunks/{chunk-SHQOIROR.js → chunk-S5ESN275.js} +3 -3
  128. package/dist/chunks/chunk-SDAUS5PY.js +2 -0
  129. package/dist/chunks/chunk-SDXFLO7J.js +5 -0
  130. package/dist/chunks/chunk-SH5CBAFC.js +2 -0
  131. package/dist/chunks/chunk-SWUEFLOH.js +2 -0
  132. package/dist/chunks/chunk-SYUKES6H.js +3 -0
  133. package/dist/chunks/chunk-T5AACNJI.js +2 -0
  134. package/dist/chunks/chunk-TRQQNFMO.js +4 -0
  135. package/dist/chunks/chunk-TVQAPBLZ.js +2 -0
  136. package/dist/chunks/chunk-UCPGRPWY.js +2 -0
  137. package/dist/chunks/chunk-UGL7WF3W.js +2 -0
  138. package/dist/chunks/{chunk-C6D4WAYN.js → chunk-UKMA4R6X.js} +2 -2
  139. package/dist/chunks/{chunk-4WEUCGJ3.js → chunk-VRIEKBBH.js} +1 -1
  140. package/dist/chunks/chunk-VYLGI3IH.js +13 -0
  141. package/dist/chunks/chunk-W45RKGM6.js +1 -0
  142. package/dist/chunks/chunk-WJ43MJ3F.js +2 -0
  143. package/dist/chunks/chunk-WMKYHXVM.js +3 -0
  144. package/dist/chunks/chunk-WN3V6KDN.js +3 -0
  145. package/dist/chunks/chunk-X4OSOOSU.js +3 -0
  146. package/dist/chunks/chunk-XDQMGUWL.js +2 -0
  147. package/dist/chunks/chunk-XTFPDQMH.js +3 -0
  148. package/dist/chunks/chunk-XVDFJ3ZF.js +2 -0
  149. package/dist/chunks/chunk-XW6HGSIT.js +8 -0
  150. package/dist/chunks/chunk-XXYGGNVM.js +2 -0
  151. package/dist/chunks/chunk-Y4OWBBDD.js +184 -0
  152. package/dist/chunks/chunk-YBT2NB32.js +2 -0
  153. package/dist/chunks/{chunk-QRAKXZOC.js → chunk-YOBN7KTF.js} +6 -6
  154. package/dist/chunks/chunk-YOQRYNLP.js +2 -0
  155. package/dist/chunks/chunk-YY7LEQGP.js +2 -0
  156. package/dist/chunks/chunk-Z4Z5UOZM.js +22 -0
  157. package/dist/chunks/chunk-Z54O534A.js +3 -0
  158. package/dist/chunks/chunk-ZCHXGRRU.js +2 -0
  159. package/dist/chunks/chunk-ZFSHBFG5.js +40 -0
  160. package/dist/chunks/chunk-ZGTOK7ZK.js +12 -0
  161. package/dist/chunks/{chunk-Q7AXHFZV.js → chunk-ZRDGQDZL.js} +1 -1
  162. package/dist/chunks/chunk-ZUJ3XUCP.js +2 -0
  163. package/dist/chunks/chunk-ZZWAQBA2.js +2 -0
  164. package/dist/chunks/cli-X25RSO2X.js +2 -0
  165. package/dist/chunks/configuration-command-6C5UO7GE.js +2 -0
  166. package/dist/chunks/connected-app-executor-IVLGQP65.js +2 -0
  167. package/dist/chunks/connected-evidence-GH2ATNEX.js +2 -0
  168. package/dist/chunks/connection-HTF6CC7M.js +2 -0
  169. package/dist/chunks/{continual-TTGJ6YTR.js → continual-6CQAMTTR.js} +3 -3
  170. package/dist/chunks/core-commands-A2DGGIPS.js +2 -0
  171. package/dist/chunks/datasets-7BNMVJOY.js +2 -0
  172. package/dist/chunks/desktop-test-3CUHVLXV.js +3 -0
  173. package/dist/chunks/dist-OMGUJYPD.js +2 -0
  174. package/dist/chunks/dist-VYC5VMQB.js +2 -0
  175. package/dist/chunks/{dist-FAJX2UBW.js → dist-ZVJPJLXR.js} +1 -1
  176. package/dist/chunks/enclave-QS4BUNDU.js +2 -0
  177. package/dist/chunks/evaluation-coordination-XEF5L7KZ.js +2 -0
  178. package/dist/chunks/experiment-improvements-KRX2DP27.js +2 -0
  179. package/dist/chunks/experiments-DFGQYA4O.js +2 -0
  180. package/dist/chunks/experiments-VFQGE4HC.js +2 -0
  181. package/dist/chunks/{extension-DWMY6D2R.js → extension-XKXXOP5N.js} +1 -1
  182. package/dist/chunks/{help-A72QDRNG.js → help-S7THC6IE.js} +1 -1
  183. package/dist/chunks/host-profile-evaluation-tools-NRLXL2S5.js +2 -0
  184. package/dist/chunks/host-profile-external-dataset-K3ICDHIP.js +2 -0
  185. package/dist/chunks/hosted-app-server-composition-HPL3CRXN.js +2 -0
  186. package/dist/chunks/hosted-experiment-improvement-NFSVS5TU.js +3 -0
  187. package/dist/chunks/hosted-harness-runtime-723S5ZSH.js +2 -0
  188. package/dist/chunks/hosted-profile-candidate-2S5LFUWD.js +3 -0
  189. package/dist/chunks/hosted-profile-compiler-2DQIFSXW.js +2 -0
  190. package/dist/chunks/hosted-profile-evaluation-control-76BTRTYD.js +2 -0
  191. package/dist/chunks/hosted-profile-evaluation-inspection-V6Z3A5XJ.js +3 -0
  192. package/dist/chunks/hosted-profile-evaluation-preparation-IDJYREW3.js +3 -0
  193. package/dist/chunks/hosted-tasksets-ANAE2PIW.js +2 -0
  194. package/dist/chunks/human-review-WR777ODH.js +2 -0
  195. package/dist/chunks/import-MLZUHITH.js +4 -0
  196. package/dist/chunks/learning-ACEVFL5M.js +2 -0
  197. package/dist/chunks/local-harness-improvement-runtime-JIQ6ZVDW.js +2 -0
  198. package/dist/chunks/local-harness-taskset-review-XVYTGAGK.js +2 -0
  199. package/dist/chunks/local-scope-HVF2GZ5W.js +2 -0
  200. package/dist/chunks/model-projects-QPO22JPA.js +2 -0
  201. package/dist/chunks/opchat-T4QTNEIY.js +3 -0
  202. package/dist/chunks/organizations-75L5DZDV.js +2 -0
  203. package/dist/chunks/{profile-NOZ6TVXL.js → profile-TFZMUEDR.js} +1 -1
  204. package/dist/chunks/profile-training-source-6GOT7AHM.js +2 -0
  205. package/dist/chunks/project-action-payload-7VGL7OER.js +2 -0
  206. package/dist/chunks/project-agent-6RRO233B.js +2 -0
  207. package/dist/chunks/published-experiment-source-DZFENAQA.js +2 -0
  208. package/dist/chunks/refiner-profile-service-UUIWFJVT.js +2 -0
  209. package/dist/chunks/runtime-A7OZXM43.js +6 -0
  210. package/dist/chunks/sandbox-command-IU5XFTJP.js +2 -0
  211. package/dist/chunks/{sandbox-template-LKGBDVJ4.js → sandbox-template-C4V6T36U.js} +1 -1
  212. package/dist/chunks/saved-work-6BMBFP43.js +2 -0
  213. package/dist/chunks/send-turn-XTAIS2JN.js +2 -0
  214. package/dist/chunks/src-INHPJ63Z.js +326 -0
  215. package/dist/chunks/{src-ZWJ5IO7A.js → src-LMC3K6LH.js} +1 -1
  216. package/dist/chunks/standalone-experiment-turn-owner-JCY5LL5R.js +2 -0
  217. package/dist/chunks/store-chat-workflows-S72HZXQR.js +18 -0
  218. package/dist/chunks/store-continual-support-reviews-HHA6NX7K.js +7 -0
  219. package/dist/chunks/store-conversation-serving-KPC62UEY.js +2 -0
  220. package/dist/chunks/store-create-improve-QV54XIZW.js +40 -0
  221. package/dist/chunks/store-datasets-RXJ33SUN.js +86 -0
  222. package/dist/chunks/store-evaluation-results-3F3P527G.js +7 -0
  223. package/dist/chunks/store-harness-evaluation-review-settings-I2R3HPO3.js +29 -0
  224. package/dist/chunks/store-harness-memory-VINCZ4GK.js +17 -0
  225. package/dist/chunks/store-harness-refinement-candidates-EA5KFQPH.js +21 -0
  226. package/dist/chunks/store-harness-workspaces-XUM4Z66X.js +2 -0
  227. package/dist/chunks/store-human-review-RAH7WMIP.js +7 -0
  228. package/dist/chunks/store-learned-preference-migration-validation-4CI2IRUF.js +2 -0
  229. package/dist/chunks/store-learning-WLG6KFIO.js +2 -0
  230. package/dist/chunks/store-learning-credentials-WZQJ4HPJ.js +2 -0
  231. package/dist/chunks/store-local-experiments-5LUJR7GI.js +97 -0
  232. package/dist/chunks/store-model-batch-review-YEGX327M.js +2 -0
  233. package/dist/chunks/store-model-configuration-5ZURQATB.js +3 -0
  234. package/dist/chunks/store-preference-comparison-LV32MHVL.js +6 -0
  235. package/dist/chunks/store-schedules-VGTEQVKH.js +53 -0
  236. package/dist/chunks/store-sidebar-file-bookmarks-VB5GTLFY.js +18 -0
  237. package/dist/chunks/store-sidebar-preferences-GWIOG2NH.js +16 -0
  238. package/dist/chunks/store-subagents-T7R2Z6TB.js +67 -0
  239. package/dist/chunks/store-task-inbox-JJTBW76C.js +33 -0
  240. package/dist/chunks/store-task-inventory-OB3F2APC.js +10 -0
  241. package/dist/chunks/store-taskset-drafts-EKQWWFYQ.js +9 -0
  242. package/dist/chunks/store-training-G6YLFSIR.js +70 -0
  243. package/dist/chunks/store-training-jobs-RC46YBF6.js +19 -0
  244. package/dist/chunks/store-training-models-6BA43IPP.js +49 -0
  245. package/dist/chunks/store-usage-IE2U2FD3.js +63 -0
  246. package/dist/chunks/store-work-evidence-QQDKM5AQ.js +8 -0
  247. package/dist/chunks/taskset-EQRFQBYM.js +2 -0
  248. package/dist/chunks/taskset-packages-XC6HEE3K.js +2 -0
  249. package/dist/chunks/{teams-bot-H7XT23XB.js → teams-bot-EAPGPTHZ.js} +1 -1
  250. package/dist/chunks/training-UF6RPI4T.js +2 -0
  251. package/dist/chunks/web-search-CZ3NCLPY.js +2 -0
  252. package/dist/chunks/workspaces-EKKE5NAC.js +2 -0
  253. package/dist/cli.js +1 -1
  254. package/dist/index.js +1 -1
  255. package/dist/web/assets/{App-CTlAPuCY.css → App-CaRMZoxo.css} +1 -1
  256. package/dist/web/assets/App-s-CJswyt.js +154 -0
  257. package/dist/web/assets/{AppDialog-CPHTPqrx.js → AppDialog-t2Fx5tK3.js} +1 -1
  258. package/dist/web/assets/{AppTerminalPanel-BVj5Tj93.js → AppTerminalPanel-Dj1Y32oI.js} +2 -2
  259. package/dist/web/assets/{AppsView-O69zEBY3.js → AppsView-BYE5EBDJ.js} +1 -1
  260. package/dist/web/assets/{BrowserSidebar-Pr_Kpe8p.js → BrowserSidebar-jhWi4rVm.js} +1 -1
  261. package/dist/web/assets/{CartesianChart-JPqo6YOf.js → CartesianChart-C1DIx0Ia.js} +1 -1
  262. package/dist/web/assets/{CollaborationTabs-CAJcQFn2.js → CollaborationTabs-Bdr-HmOL.js} +1 -1
  263. package/dist/web/assets/{CommandMenu-B-w53n9A.js → CommandMenu-Ux2yOHAc.js} +1 -1
  264. package/dist/web/assets/{CommunityView-DbZKK8_P.js → CommunityView-DPEeVKFn.js} +1 -1
  265. package/dist/web/assets/{ComposerCreateImproveStrip-3_083PF4.js → ComposerCreateImproveStrip-CEgh4OtN.js} +1 -1
  266. package/dist/web/assets/{GetStartedView-D7JGm_6c.js → GetStartedView-CFHP0AaI.js} +1 -1
  267. package/dist/web/assets/{HostedModelLearningReview-DwgMfZ7_.js → HostedModelLearningReview-D8BGTPVN.js} +1 -1
  268. package/dist/web/assets/{HostedModelLearningSettings-JRfQadRl.js → HostedModelLearningSettings-JS1S7vNO.js} +1 -1
  269. package/dist/web/assets/{LabModelVersionDetailPage-BUYflJY_.js → LabModelVersionDetailPage-Dx5Q3xV2.js} +1 -1
  270. package/dist/web/assets/{LabSkillSidebar-BBiqk7Rf.js → LabSkillSidebar-BxffN-pN.js} +1 -1
  271. package/dist/web/assets/{LabsRoute-Ci6vUnSd.js → LabsRoute-CyYF8-dw.js} +4 -4
  272. package/dist/web/assets/{MainChatThread-BQK3oI2N.js → MainChatThread-DZpcFRFl.js} +2 -2
  273. package/dist/web/assets/MainPane-5DTtwVCk.js +65 -0
  274. package/dist/web/assets/MainPane-BIM_UJ3q.css +1 -0
  275. package/dist/web/assets/{MarkdownText-DOdOVFXL.js → MarkdownText-BR4V6lNO.js} +21 -21
  276. package/dist/web/assets/{NativeSkillSidebar-CRI_ri8z.js → NativeSkillSidebar-DU9IEgIO.js} +1 -1
  277. package/dist/web/assets/{NewExperienceSwitcher-DhYtfE68.js → NewExperienceSwitcher-mIy6FzCj.js} +1 -1
  278. package/dist/web/assets/{NewProjectDialog-D8sy1gOz.js → NewProjectDialog-RfTZTHxl.js} +1 -1
  279. package/dist/web/assets/{OutputsPage-CbWgrhXA.js → OutputsPage-Cr1Spf7S.js} +1 -1
  280. package/dist/web/assets/{ProjectsPage-DLB67lyA.js → ProjectsPage-CE6QUB-b.js} +1 -1
  281. package/dist/web/assets/{RightChatPanelStack-ozSKnDyX.js → RightChatPanelStack-T6VRWuHo.js} +1 -1
  282. package/dist/web/assets/RightSidebarHomePanel-CK0rP3WT.js +1 -0
  283. package/dist/web/assets/{ScheduledWorkPage-Cafv_QnR.js → ScheduledWorkPage-vOrYv8pp.js} +1 -1
  284. package/dist/web/assets/SettingsView-DCKVrfjj.js +5 -0
  285. package/dist/web/assets/SettingsView-Dulr_xlq.css +1 -0
  286. package/dist/web/assets/{TeamChatView-vIrmXOY_.js → TeamChatView-Bwrjr-vk.js} +2 -2
  287. package/dist/web/assets/{TerminalOverlay-CAmF__Dq.js → TerminalOverlay-DhPoKZAq.js} +1 -1
  288. package/dist/web/assets/TrainingCreationPanel-BXHfohNm.js +1 -0
  289. package/dist/web/assets/{TrainingDraftPanel-D7XZePAk.js → TrainingDraftPanel-C9cRX5qf.js} +1 -1
  290. package/dist/web/assets/{UsageSettingsSection-CYTmp7PG.js → UsageSettingsSection-CrdcSGeW.js} +1 -1
  291. package/dist/web/assets/WorkSidebarPanel-DSSikNFQ.js +1 -0
  292. package/dist/web/assets/{WorkspaceDiffPanel-DQGoIjH9.js → WorkspaceDiffPanel-BAFo0CPN.js} +6 -6
  293. package/dist/web/assets/{WorkspaceEnvironmentMenu-c1pHDskn.js → WorkspaceEnvironmentMenu-BVHAhwnJ.js} +1 -1
  294. package/dist/web/assets/WorkspaceGitDialogs-CwVoiDQ2.js +1 -0
  295. package/dist/web/assets/{WorkspaceMonacoEditor-BCKzvSj2.js → WorkspaceMonacoEditor-TxLyhzNp.js} +3 -3
  296. package/dist/web/assets/{arrow-up-right-CP4hZdrJ.js → arrow-up-right-C9aE8Mfz.js} +1 -1
  297. package/dist/web/assets/{chunk-NOJECMB7-Bhcms-w5.js → chunk-P3BRSSRD-DUGfuKA8.js} +1 -1
  298. package/dist/web/assets/{clipboard-BgrXorn-.js → clipboard-Dk158Qp4.js} +1 -1
  299. package/dist/web/assets/{cloud-upload-B_zYztb6.js → cloud-upload-k9eqBsHr.js} +1 -1
  300. package/dist/web/assets/{cssMode-DanjGgA8.js → cssMode-CO35ARZp.js} +1 -1
  301. package/dist/web/assets/{folder-open-CdVKbtGq.js → folder-open-sYgceW_f.js} +1 -1
  302. package/dist/web/assets/{folder-plus-Cc5KElB6.js → folder-plus-CS0R49m9.js} +1 -1
  303. package/dist/web/assets/{git-commit-horizontal-CjGIIgRi.js → git-commit-horizontal-DrGxH2h4.js} +1 -1
  304. package/dist/web/assets/{htmlMode-DRGDF_UL.js → htmlMode-REMmzdfq.js} +1 -1
  305. package/dist/web/assets/index-3iPNbbER.css +1 -0
  306. package/dist/web/assets/{index-BE-wXZ5R.js → index-C8aCGagb.js} +2 -2
  307. package/dist/web/assets/{info-BLj0RvhA.js → info-DLdbiUrh.js} +1 -1
  308. package/dist/web/assets/{jsonMode-CCu0j2GD.js → jsonMode-KEdMfkIf.js} +1 -1
  309. package/dist/web/assets/{lspLanguageFeatures-s_Lhm7P6.js → lspLanguageFeatures-5KZwEoxW.js} +1 -1
  310. package/dist/web/assets/{minimize-2-Cyg_zD9z.js → minimize-2-CqcI4zcM.js} +1 -1
  311. package/dist/web/assets/{monaco.contribution-CY7mRgOB.js → monaco.contribution-BJGj65F9.js} +2 -2
  312. package/dist/web/assets/{monaco.contribution-CAzXvYkn.js → monaco.contribution-Cly9Wt7L.js} +2 -2
  313. package/dist/web/assets/{monaco.contribution-mUPNK9ra.js → monaco.contribution-DO10L0zW.js} +2 -2
  314. package/dist/web/assets/{monaco.contribution-aUeLcBEg.js → monaco.contribution-omszXBEj.js} +2 -2
  315. package/dist/web/assets/{monitor-DZvOs_wC.js → monitor-BFVCcbxp.js} +1 -1
  316. package/dist/web/assets/{play-BJPzemuY.js → play-C469pVZq.js} +1 -1
  317. package/dist/web/assets/{python-B_qnnVaG.js → python-Dw0YcVy9.js} +1 -1
  318. package/dist/web/assets/{save-BDy9tA3E.js → save-CtSjPydi.js} +1 -1
  319. package/dist/web/assets/{square-Cb2c5td4.js → square-BuImvLhT.js} +1 -1
  320. package/dist/web/assets/{toggleHighContrast-MhO1JLyR.js → toggleHighContrast-DjCO9lIP.js} +1 -1
  321. package/dist/web/assets/{tsMode-DfBXJb9V.js → tsMode-BAOnxKd6.js} +1 -1
  322. package/dist/web/assets/{upload-D56kThRh.js → upload-2JkFZo3h.js} +1 -1
  323. package/dist/web/assets/{useLocalAgentSchedules-DMnGfswi.js → useLocalAgentSchedules-BNqAisfS.js} +1 -1
  324. package/dist/web/assets/useProviderSettings-C4L4wDoh.js +5 -0
  325. package/dist/web/assets/{useProviderSettings-Bw-csWbH.css → useProviderSettings-CmL_BaxP.css} +1 -1
  326. package/dist/web/assets/{useSessionTurnCache-ClAY8gze.js → useSessionTurnCache-BHU2-Jmz.js} +1 -1
  327. package/dist/web/assets/{wifi-off-C9lWJmVm.js → wifi-off-CpOAH62M.js} +1 -1
  328. package/dist/web/assets/{workers-BYzrH8by.js → workers-0QvlA2T5.js} +1 -1
  329. package/dist/web/assets/{yaml-D3T8UkT3.js → yaml-BK3qxo7D.js} +1 -1
  330. package/dist/web/index.html +2 -2
  331. package/package.json +1 -1
  332. package/dist/chunks/actions-command-WTFZA7LF.js +0 -2
  333. package/dist/chunks/app-server-runtime-2RM3N4I6.js +0 -2
  334. package/dist/chunks/apps-KDNWYO3G.js +0 -2
  335. package/dist/chunks/chunk-2DFR7PJ4.js +0 -2460
  336. package/dist/chunks/chunk-4CRM2ADK.js +0 -2
  337. package/dist/chunks/chunk-55G6B54U.js +0 -6
  338. package/dist/chunks/chunk-73G5UYBB.js +0 -12
  339. package/dist/chunks/chunk-ARQEJOEK.js +0 -33
  340. package/dist/chunks/chunk-CGBI2VYJ.js +0 -2
  341. package/dist/chunks/chunk-GGIG3XU7.js +0 -3
  342. package/dist/chunks/chunk-JIMU3KDA.js +0 -24
  343. package/dist/chunks/chunk-JUJSA7KI.js +0 -22
  344. package/dist/chunks/chunk-K5SBVO3B.js +0 -195
  345. package/dist/chunks/chunk-KD3QVRIJ.js +0 -21
  346. package/dist/chunks/chunk-L4235TRQ.js +0 -140
  347. package/dist/chunks/chunk-MVF3F5QS.js +0 -2
  348. package/dist/chunks/chunk-OULAKUIN.js +0 -2
  349. package/dist/chunks/chunk-OWNLDB2O.js +0 -2
  350. package/dist/chunks/chunk-QDHMP5FS.js +0 -2
  351. package/dist/chunks/chunk-QKD5OMDI.js +0 -2
  352. package/dist/chunks/chunk-R2BSIRYL.js +0 -3
  353. package/dist/chunks/chunk-STDMBJOQ.js +0 -9
  354. package/dist/chunks/chunk-T4QGDQHP.js +0 -4
  355. package/dist/chunks/chunk-USMZT5FZ.js +0 -18
  356. package/dist/chunks/chunk-VJEZPDBS.js +0 -5
  357. package/dist/chunks/chunk-WDFLCNRC.js +0 -8
  358. package/dist/chunks/chunk-WZYRAR7X.js +0 -16
  359. package/dist/chunks/chunk-YDT7L3VZ.js +0 -24
  360. package/dist/chunks/chunk-YUPBAWBJ.js +0 -554
  361. package/dist/chunks/cli-465VC2WP.js +0 -2
  362. package/dist/chunks/configuration-command-LAAP2EXT.js +0 -2
  363. package/dist/chunks/connected-evidence-XM626247.js +0 -2
  364. package/dist/chunks/core-commands-W7EK552V.js +0 -2
  365. package/dist/chunks/datasets-QJWYTTQL.js +0 -2
  366. package/dist/chunks/desktop-test-3B2D34NF.js +0 -3
  367. package/dist/chunks/dist-HUAE2KFZ.js +0 -2
  368. package/dist/chunks/evaluation-coordination-2MONR4AX.js +0 -2
  369. package/dist/chunks/experiment-improvements-WVQ5FK46.js +0 -2
  370. package/dist/chunks/experiments-S5UQ32QB.js +0 -2
  371. package/dist/chunks/hosted-experiment-improvement-2OWOQLHC.js +0 -3
  372. package/dist/chunks/hosted-harness-runtime-TGFMAV7W.js +0 -2
  373. package/dist/chunks/hosted-profile-candidate-WQSI6HZO.js +0 -3
  374. package/dist/chunks/hosted-profile-compiler-Z2A4TEA6.js +0 -2
  375. package/dist/chunks/hosted-profile-evaluation-control-FKGARUEE.js +0 -2
  376. package/dist/chunks/hosted-profile-evaluation-inspection-QOY2JKV4.js +0 -3
  377. package/dist/chunks/hosted-profile-evaluation-preparation-WVP6CALP.js +0 -3
  378. package/dist/chunks/human-review-TGHQKXFZ.js +0 -2
  379. package/dist/chunks/import-4UE5XNSG.js +0 -4
  380. package/dist/chunks/learning-R2XBMMEM.js +0 -2
  381. package/dist/chunks/opchat-WULL6CUP.js +0 -3
  382. package/dist/chunks/organizations-I37HISVX.js +0 -2
  383. package/dist/chunks/project-agent-T6XKC54C.js +0 -2
  384. package/dist/chunks/sandbox-command-STB47FRY.js +0 -2
  385. package/dist/chunks/src-T3KWWCAH.js +0 -322
  386. package/dist/chunks/taskset-RNYDR4GS.js +0 -2
  387. package/dist/chunks/training-M6FAPRSJ.js +0 -2
  388. package/dist/chunks/workspaces-MFZ3OO6O.js +0 -2
  389. package/dist/web/assets/App-CLFfy_Av.js +0 -154
  390. package/dist/web/assets/MainPane-D3ojiN-p.js +0 -18
  391. package/dist/web/assets/MainPane-DOWsSew1.css +0 -1
  392. package/dist/web/assets/RightSidebarHomePanel-CKs3OwhD.js +0 -1
  393. package/dist/web/assets/SettingsView-BnANbPLS.css +0 -1
  394. package/dist/web/assets/SettingsView-T1vYDPjh.js +0 -5
  395. package/dist/web/assets/TrainingCreationPanel-D75K0yk5.js +0 -1
  396. package/dist/web/assets/WorkSidebarPanel-CODMjVHY.js +0 -1
  397. package/dist/web/assets/WorkspaceGitDialogs-DrVtapQQ.js +0 -1
  398. package/dist/web/assets/index-B5re-RJy.css +0 -1
  399. package/dist/web/assets/useProviderSettings-Bv5B9eNk.js +0 -5
@@ -0,0 +1,4 @@
1
+ import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
+ import{a as Ee,f as Ce}from"./chunk-OQPJ7FJF.js";import{l as He,o as h,p as W,r as Le}from"./chunk-WJ43MJ3F.js";import{a as Ne}from"./chunk-T5AACNJI.js";import{X as qe}from"./chunk-QOGJAQDO.js";import{k as we,l as Oe,m as Me}from"./chunk-3QIB5FXI.js";import{a as je}from"./chunk-MQULU465.js";import{a as K,b as G,c as V,d as Te}from"./chunk-7E6T7GP5.js";import{Aa as Pe,Ba as ke,Na as F,Oa as v,Pa as Ae,Qa as O,Va as M,ia as w}from"./chunk-25MBPJVY.js";import{a as pe,c as U,d as ge,e as be}from"./chunk-74ZXXBGN.js";import{V as B,X as Ie,Z as z,_ as Re,j as D,v as _e}from"./chunk-Z4Z5UOZM.js";import{d as de}from"./chunk-FFRFSDBM.js";import{Cb as ve,_a as he,db as xe,jb as fe,ub as Se,zb as ye}from"./chunk-ACYFMLWG.js";import{b as o,c as d,d as S,f as me,m as ue}from"./chunk-KGNCKIFP.js";import{b as e}from"./chunk-ES2ISFJC.js";import{a as r}from"./chunk-FTQLQJQV.js";var Et=e.enum(["visual.published","task.inbox","task.input","task.wait","session.started","session.updated","session.title.updated","turn.started","assistant.delta","assistant.reasoning.delta","tool.started","tool.completed","skill.selected","skill.loaded","skill.load_failed","user_question.asked","user_question.answered","user_question.dismissed","approval.requested","approval.resolved","command.output","workspace_action","workspace_action_result","workspace.diff","create_improve.updated","session.context.updated","session.compaction.started","session.compaction.completed","session.compaction.failed","goal.continuation.started","goal.continuation.skipped","goal.continuation.failed","harness.refiner.queued","harness.refiner.started","harness.refiner.completed","harness.refiner.failed","turn.completed","turn.failed","turn.interrupted","session.closed",..._e,"diagnostic"]),$=e.object({id:e.string(),sequence:e.number().int().positive().optional(),sessionId:e.string().optional(),turnId:e.string().optional(),name:Et,timestamp:e.string(),source:e.enum(["ui_button","chat_action","terminal_command","hook","provider","server"]).optional(),action:e.string().optional(),appId:e.string().nullable().optional(),args:e.record(e.string(),e.unknown()).optional(),status:e.enum(["started","completed","failed","pending"]).optional(),output:e.string().optional(),error:e.string().optional(),relatedDeploymentId:e.string().optional(),data:e.unknown().optional()});var Ct=e.enum(["slack","microsoft_teams","github","google","turnkey","x","mcp"]),wt=e.enum(["search","read","write"]),Ot=e.enum(Ee),ka=e.object({provider:Ct,operation:wt,toolName:Ot,sessionId:e.string().trim().min(1).max(200),turnId:e.string().trim().min(1).max(200),toolCallId:e.string().trim().min(1).max(300),userPrompt:e.string().max(2e5),connectionIds:e.array(e.string().trim().min(1).max(300)).min(1).max(8),capabilityIds:e.array(e.string().trim().min(1).max(200)).min(1).max(64),args:e.record(e.string(),e.unknown()).default({})}).strict().superRefine((t,n)=>{let i=Ce(t);i.ok||n.addIssue({code:e.ZodIssueCode.custom,message:i.error})}),Aa=e.object({ok:e.boolean(),output:e.string().nullable().optional(),data:e.unknown().optional()}).strict();var Mt=e.object({command:e.enum(["inspect","build","validate","eval","traces","run"]),status:e.enum(["passed","failed"]),checkedAt:e.string(),exitCode:e.number().nullable().optional(),sourceHead:e.string().nullable().optional()}),Ht=e.object({id:e.string(),name:e.string(),path:e.string(),enabled:e.boolean()}),Nt=e.object({name:e.string(),description:e.string(),path:e.string(),scope:e.literal("profile"),enabled:e.boolean(),sourcePath:e.string(),charCount:e.number(),sourceHash:e.string(),validationStatus:e.enum(["valid","warning","error"]),validationMessages:e.array(e.string()),resourceFiles:e.array(e.string()).optional().default([])}),Lt=e.object({id:e.string(),name:e.string(),path:e.string(),agentId:e.string().nullable(),sourcePath:e.string()}),De=e.object({path:e.string(),originalPath:e.string().nullable().optional(),indexStatus:e.string().nullable(),worktreeStatus:e.string().nullable(),status:e.string(),category:e.enum(["added","modified","deleted","renamed","untracked","changed"])}),qt=e.object({isRepo:e.boolean(),branch:e.string().nullable(),head:e.string().nullable(),shortHead:e.string().nullable(),dirty:e.boolean(),upstream:e.string().nullable(),ahead:e.number().nullable(),behind:e.number().nullable(),remoteUrl:e.string().nullable(),files:e.array(De),fileCount:e.number().int().nonnegative().optional(),error:e.string().nullable()}),Ut=e.object({actionCount:e.number(),generatedAt:e.string().nullable(),manifestPath:e.string().nullable(),registryPath:e.string().nullable(),stale:e.boolean(),error:e.string().nullable()}),Dt=e.object({skillCount:e.number(),generatedAt:e.string().nullable(),stale:e.boolean(),error:e.string().nullable()}),Ue=e.object({ref:e.string(),source:e.enum(["action_catalog","source_upload_metadata"]),actionId:e.string().nullable(),kind:e.string().nullable(),label:e.string(),status:e.string(),required:e.boolean(),blocking:e.boolean()}),Bt=e.object({status:e.enum(["ready","setup_required","blocked"]),requirementCount:e.number(),blockingCount:e.number(),optionalMissingCount:e.number(),readyCount:e.number(),requirements:e.array(Ue),blockingRequirements:e.array(Ue)}),zt=e.object({changedAgents:e.array(e.string()),newAgents:e.array(e.string()),deletedAgents:e.array(e.string()),changedSkills:e.array(e.string()).optional().default([]),changedActions:e.array(e.string()),changedExtensions:e.array(e.string()),setupChanges:e.array(e.string()),envRequirementChanges:e.array(e.string()),files:e.array(De),fileCount:e.number().int().nonnegative().optional()}),Ft=e.object({status:e.string(),agentId:e.string().nullable().optional(),deployPlanStatus:e.string().nullable().optional(),canRun:e.boolean().nullable().optional(),canDeploy:e.boolean().nullable().optional(),sourceRef:e.string().nullable().optional(),sourceCommitSha:e.string().nullable().optional(),manifestHash:e.string().nullable().optional(),manifestPath:e.string().nullable().optional(),setupCommands:e.array(e.string()).optional(),validationCommands:e.array(e.string()).optional(),requiredChecks:e.array(e.string()).optional(),evalNames:e.array(e.string()).optional(),blockedReasons:e.array(e.string()).optional(),staleReasons:e.array(e.string()).optional(),runtimeId:e.string().nullable().optional(),sandboxId:e.string().nullable().optional(),traceArtifactRefs:e.array(e.string()).optional(),evalResultArtifactRefs:e.array(e.string()).optional(),validatorArtifactRefs:e.array(e.string()).optional(),checkedAt:e.string().nullable().optional(),error:e.string().nullable().optional()}),Kt=e.object({status:e.string(),agentId:e.string().nullable().optional(),runtimeAgentId:e.string().nullable().optional(),projectId:e.string().nullable().optional(),sourceRoot:e.string().nullable().optional(),sourceRef:e.string().nullable().optional(),sourceCommitSha:e.string().nullable().optional(),manifestHash:e.string().nullable().optional(),manifestPath:e.string().nullable().optional(),manifestSyncedAt:e.string().nullable().optional(),fileCount:e.number().nullable().optional(),totalBytes:e.number().nullable().optional(),generatedManifestPath:e.string().nullable().optional(),synthesizedOpenPondYaml:e.boolean().nullable().optional(),uploadMetadataPath:e.string().nullable().optional(),setupCommands:e.array(e.string()).optional(),validationCommands:e.array(e.string()).optional(),materializedAt:e.string().nullable().optional(),error:e.string().nullable().optional()}),Gt=e.object({status:e.string(),agentId:e.string().nullable().optional(),snapshotId:e.string().nullable().optional(),sourceRef:e.string().nullable().optional(),sourceCommitSha:e.string().nullable().optional(),manifestHash:e.string().nullable().optional(),manifestPath:e.string().nullable().optional(),buildStatus:e.string().nullable().optional(),validationStatus:e.string().nullable().optional(),evalStatus:e.string().nullable().optional(),publishedAt:e.string().nullable().optional(),error:e.string().nullable().optional()}),Vt=e.object({status:e.string(),agentId:e.string().nullable().optional(),runId:e.string().nullable().optional(),runtimeId:e.string().nullable().optional(),sandboxId:e.string().nullable().optional(),sourceRef:e.string().nullable().optional(),sourceCommitSha:e.string().nullable().optional(),manifestHash:e.string().nullable().optional(),setupGateStatus:e.string().nullable().optional(),setupRequirementRefs:e.array(e.string()).optional(),artifactRefs:e.array(e.string()).optional(),traceArtifactRefs:e.array(e.string()).optional(),evalArtifactRefs:e.array(e.string()).optional(),startedAt:e.string().nullable().optional(),completedAt:e.string().nullable().optional(),error:e.string().nullable().optional()}),Wt=e.object({teamId:e.string().nullable(),projectId:e.string().nullable(),sourceRef:e.string().nullable(),sourceCommitSha:e.string().nullable(),lastPushedAt:e.string().nullable(),lastPushedLocalHead:e.string().nullable(),lastPushedHostedHead:e.string().nullable(),promotionStatus:e.string().nullable().optional().default(null),hostedRunStatus:e.string().nullable().optional().default(null),hostedRunAgentId:e.string().nullable().optional().default(null),hostedRunId:e.string().nullable().optional().default(null),hostedRunAt:e.string().nullable().optional().default(null),hostedSourceMaterialization:Kt.nullable().optional().default(null),hostedSourceCheck:Ft.nullable().optional().default(null),hostedPublish:Gt.nullable().optional().default(null),hostedRun:Vt.nullable().optional().default(null)}),$t=e.object({state:e.enum(["none","ready","dirty","pending_commit","error"]),message:e.string(),agentCount:e.number(),actionCount:e.number(),defaultAction:e.string().nullable(),checkFresh:e.boolean(),checkStaleReason:e.string().nullable(),localHead:e.string().nullable(),hostedHead:e.string().nullable()}),J=e.object({mode:e.enum(["none","local"]),repoPath:e.string().nullable(),activeProfile:e.string().nullable(),sourcePath:e.string().nullable(),manifestPath:e.string().nullable(),agents:e.array(Ht),skills:e.array(Nt).optional().default([]),evals:e.array(Lt).optional().default([]),git:qt.nullable(),catalog:Ut,skillCatalog:Dt.optional().default({skillCount:0,generatedAt:null,stale:!0,error:null}),actionCatalog:e.array(Le),sourceSetupRequirements:e.array(e.record(e.string(),e.unknown())),setupGate:Bt,diff:zt,hosted:Wt.nullable(),summary:$t,lastCheck:Mt.nullable(),error:e.string().nullable()}),Jt=e.object({ref:h,name:e.string(),repoPath:e.string(),sourcePath:e.string().nullable(),state:J}),Be=e.object({lastUsed:h.nullable(),profiles:e.array(Jt)});function ze(){return{lastUsed:null,profiles:[]}}r(ze,"emptyOpenPondProfileLibrary");function Fe(){return{mode:"none",repoPath:null,activeProfile:null,sourcePath:null,manifestPath:null,agents:[],skills:[],evals:[],git:null,catalog:{actionCount:0,generatedAt:null,manifestPath:null,registryPath:null,stale:!0,error:null},skillCatalog:{skillCount:0,generatedAt:null,stale:!0,error:null},actionCatalog:[],sourceSetupRequirements:[],setupGate:{status:"ready",requirementCount:0,blockingCount:0,optionalMissingCount:0,readyCount:0,requirements:[],blockingRequirements:[]},diff:{changedAgents:[],newAgents:[],deletedAgents:[],changedSkills:[],changedActions:[],changedExtensions:[],setupChanges:[],envRequirementChanges:[],files:[]},hosted:null,summary:{state:"none",message:"No active OpenPond profile.",agentCount:0,actionCount:0,defaultAction:null,checkFresh:!1,checkStaleReason:"No active profile.",localHead:null,hostedHead:null},lastCheck:null,error:null}}r(Fe,"emptyOpenPondProfileState");var Xt=e.enum(["sunday","monday","tuesday","wednesday","thursday","friday","saturday"]),_=e.object({version:e.literal(1),kind:e.enum(["once","daily","weekdays","weekly","monthly"]),timeZone:e.string().trim().min(1).max(100),startDate:e.string().regex(/^\d{4}-\d{2}-\d{2}$/),localTime:e.string().regex(/^([01]\d|2[0-3]):([0-5]\d)$/),weekdays:e.array(Xt).min(1).max(7).optional(),dayOfMonth:e.number().int().min(1).max(31).optional(),end:e.discriminatedUnion("kind",[e.object({kind:e.literal("never")}),e.object({kind:e.literal("on_date"),date:e.string().regex(/^\d{4}-\d{2}-\d{2}$/)}),e.object({kind:e.literal("after_occurrences"),occurrences:e.number().int().min(1).max(1e5)})])}).superRefine((t,n)=>{t.kind==="weekly"&&!t.weekdays?.length&&n.addIssue({code:"custom",message:"Weekly recurrence requires at least one weekday.",path:["weekdays"]}),t.kind==="monthly"&&t.dayOfMonth===void 0&&n.addIssue({code:"custom",message:"Monthly recurrence requires a day of month.",path:["dayOfMonth"]})}),Yt=e.object({id:e.string(),expression:e.string().nullable(),timeZone:e.string(),recurrence:_.nullable(),configurationVersion:e.number().int(),enabled:e.boolean(),nextRunAt:e.string().nullable(),lastTriggeredAt:e.string().nullable(),delivery:e.record(e.string(),e.unknown()).default({})}),Qt=e.object({id:e.string(),definitionKey:e.string(),version:e.number().int(),name:e.string(),prompt:e.string(),modelId:e.string(),schedules:e.array(Yt)}),Zt=e.object({id:e.string(),definitionId:e.string(),scheduleId:e.string().nullable(),definitionName:e.string(),definitionVersion:e.number().int(),conversationId:e.string(),triggerKind:e.enum(["manual","schedule","webhook","retry"]),status:e.string(),notificationStatus:e.string(),deliveryStatus:e.string(),deliveryError:e.string().nullable(),createdAt:e.string()}),Na=e.object({definitions:e.array(Qt),runs:e.array(Zt),asOf:e.string(),webBaseUrl:e.string().url().optional()}),La=e.object({clientRequestId:e.string().trim().min(1).max(191),sourceTurnId:e.string().trim().min(1).max(191).nullable().optional(),targetSessionId:e.string().trim().min(1).max(191).nullable().optional(),name:e.string().trim().min(1).max(180),prompt:e.string().trim().min(1).max(2e4),recurrence:_,modelId:e.string().trim().min(1).max(191).default("openpond-chat")}),qa=e.union([e.object({enabled:e.boolean()}),e.object({name:e.string().trim().min(1).max(180),prompt:e.string().trim().min(1).max(2e4),recurrence:_})]),Ke=e.enum(["queued","running","succeeded","failed"]),Ge=e.object({id:e.string(),sessionId:e.string(),sessionTitle:e.string(),sourceTurnId:e.string().nullable(),name:e.string(),prompt:e.string(),profileRef:h.optional(),profileWorkflowId:e.string().optional(),profileMigrationError:e.string().nullable().optional(),recurrence:_,enabled:e.boolean(),nextRunAt:e.string().nullable(),lastRunAt:e.string().nullable(),lastRunStatus:Ke.nullable(),lastRunId:e.string().nullable(),lastError:e.string().nullable(),scheduledRunCount:e.number().int().nonnegative(),createdAt:e.string(),updatedAt:e.string()}),en=e.object({definitionSnapshot:Ge.optional(),configurationSnapshot:e.record(e.string(),e.unknown()).optional(),id:e.string(),workflowId:e.string(),sessionId:e.string(),scheduledFor:e.string(),trigger:e.enum(["schedule","manual"]),status:Ke,turnId:e.string().nullable(),error:e.string().nullable(),createdAt:e.string(),startedAt:e.string().nullable(),completedAt:e.string().nullable(),updatedAt:e.string()}),Ua=e.object({sessionId:e.string().trim().min(1).max(191),sourceTurnId:e.string().trim().min(1).max(191).nullable().optional(),name:e.string().trim().min(1).max(180),prompt:e.string().trim().min(1).max(2e4),recurrence:_}),Da=e.union([e.object({enabled:e.boolean()}),e.object({name:e.string().trim().min(1).max(180),prompt:e.string().trim().min(1).max(2e4),recurrence:_})]),Ba=e.object({workflows:e.array(Ge),runs:e.array(en),asOf:e.string()});function tn(t,n,i){function s(l){if(l===null||typeof l=="string"||typeof l=="boolean"||typeof l=="number"&&Number.isFinite(l))return l;if(Array.isArray(l))return l.map(s);if(l&&typeof l=="object"&&Object.getPrototypeOf(l)===Object.prototype)return Object.fromEntries(Object.keys(l).sort().map(u=>[u,s(l[u])]));throw new Error("canonical_payload_not_json")}return r(s,"canonical"),JSON.stringify([t,n,s(i)])}r(tn,"canonicalRequestContent");var Va=e.object({sessionId:e.string().min(1).max(200),creationHash:e.string().regex(/^[a-f0-9]{64}$/),sessionRevision:e.string().regex(/^[a-f0-9]{64}$/),executionRevision:e.string().regex(/^[a-f0-9]{64}$/)}).strict(),a=e.string().trim().min(1).max(200),f=e.string().regex(/^[a-f0-9]{64}$/),Wa=15e3;var $a=5*6e4,R=e.object({installationId:e.string().uuid(),profileId:a,ownerUserId:a,teamId:a,bindingId:a,bindingRevision:e.number().int().positive()}).strict(),Ja=e.object({version:e.literal(1),scope:R,epoch:e.string().uuid().nullable(),runtimeId:e.string().uuid(),audience:e.string().url(),nonce:e.string().uuid(),issuedAt:e.string().datetime(),payloadHash:f,signature:e.string().regex(/^[A-Za-z0-9+/]{86}==$/)}).strict();function Xa(t){return JSON.stringify([t.version,t.scope.installationId,t.scope.profileId,t.scope.ownerUserId,t.scope.teamId,t.scope.bindingId,t.scope.bindingRevision,t.epoch,t.runtimeId,t.audience,t.nonce,t.issuedAt,t.payloadHash])}r(Xa,"ponderDesktopProofMessage");var Y=e.object({id:a,kind:e.enum(["session","starter"]),title:e.string().trim().min(1).max(300),providerId:a,modelId:e.string().trim().min(1).max(300).nullable(),experience:e.enum(["chat","work"]),workspaceId:a,workspaceLabel:e.string().trim().min(1).max(300),profileSelectionId:a.nullable(),revision:f,available:e.boolean(),unavailableReason:e.string().max(500).nullable(),canMessage:e.boolean(),canSteer:e.boolean(),canStop:e.boolean(),activeTurnId:a.nullable()}).strict(),Ve=2e4,Ya=e.object({revision:f,capturedAt:e.string().datetime(),targets:e.array(Y).max(Ve)}).strict(),H=100,We=e.object({revision:f,capturedAt:e.string().datetime(),targetCount:e.number().int().min(0).max(Ve),pageCount:e.number().int().min(0).max(200)}).strict().refine(t=>t.pageCount===Math.ceil(t.targetCount/H),{message:"ponder_desktop_catalog_page_count_invalid"}),Qa=e.object({catalog:We,index:e.number().int().min(0).max(199),targets:Y.array().min(1).max(H)}).strict().refine(t=>t.index<t.catalog.pageCount&&t.targets.length===Math.min(H,t.catalog.targetCount-t.index*H),{message:"ponder_desktop_catalog_page_size_invalid"}),Za=e.object({revision:f,pageIndex:e.number().int().min(0).max(199)}).strict(),er=e.object({scope:R,publicKey:e.string().min(1).max(512),runtimeId:e.string().uuid(),epoch:e.string().uuid(),authorizationRevision:e.number().int().positive(),reauthorizationGeneration:e.number().int().nonnegative().default(0),state:e.enum(["attached","revoked"]),leaseExpiresAt:e.string().datetime(),catalog:We.nullable()}).strict(),I={targetId:a,targetRevision:f},X=e.string().trim().min(1).max(32e3),nn=e.discriminatedUnion("action",[e.object({...I,action:e.literal("create"),prompt:X,title:e.string().trim().min(1).max(300)}).strict(),e.object({...I,action:e.literal("message"),prompt:X}).strict(),e.object({...I,action:e.literal("steer"),prompt:X,expectedTurnId:a}).strict(),e.object({...I,action:e.literal("stop"),expectedTurnId:a}).strict(),e.object({...I,action:e.literal("observe"),expectedTurnId:a}).strict(),e.object({...I,action:e.literal("inspect"),expectedTurnId:a}).strict()]),an=e.object({scope:R,epoch:e.string().uuid(),originChatTurnId:a,originToolCallId:a,humanControlId:a.optional(),authorizationRevision:e.number().int().positive()}).strict(),tr=e.object({scope:R,epoch:e.string().uuid(),runtimeId:e.string().uuid(),authorizationRevision:e.number().int().positive()}).strict(),nr=e.object({id:a,origin:an,payloadHash:f,intent:nn,target:Y,state:e.enum(["ready","dispatching","admitted","completed","failed","cancelled","expired","attention"]),claimId:e.string().uuid().nullable(),claimedEpoch:e.string().uuid().nullable(),expiresAt:e.string().datetime(),admittedAt:e.string().datetime().nullable(),createdAt:e.string().datetime(),updatedAt:e.string().datetime(),receipt:e.object({sessionId:a,sessionTitle:e.string().min(1).max(300),inputId:a.nullable(),turnId:a.nullable(),state:a}).strict().nullable(),error:e.string().max(1e3).nullable()}).strict(),rn=e.object({operationId:a,payloadHash:f,sessionId:a,sessionTitle:e.string().min(1).max(300),inputId:a.nullable(),turnId:a,completedAt:e.string().datetime(),outcome:e.enum(["completed","failed","cancelled"]),body:e.string().max(128e3),bodyTruncated:e.boolean(),assistantEventIds:e.array(a).max(2e3),providerId:a,modelId:a.nullable(),workspaceId:a,outputs:e.array(e.object({id:a,title:e.string().min(1).max(300),contentType:a,sizeBytes:e.number().int().nonnegative(),sha256:f}).strict()).max(100),error:e.string().max(2e3).nullable()}).strict(),ar=e.object({version:e.literal(1),direction:e.enum(["sent","received"]),operationId:a,installationId:e.string().uuid(),profileId:a,ownerUserId:a,teamId:a,sessionId:a,title:e.string().min(1).max(300),turnId:a.nullable(),receiptId:a,status:a,body:e.string(),outputs:rn.shape.outputs}).strict();var fr=e.object({rootPath:e.string(),sourcePath:e.string(),binding:ge,currentRelease:U,releases:e.array(U),transitions:e.array(be)}).strict(),Sr=e.object({profile:pe,activate:e.boolean().default(!0),reason:e.string().trim().min(1).max(1e4),actor:e.string().trim().min(1).max(240).default("local-user"),authoringSkillHash:e.string().regex(/^[a-f0-9]{64}$/).nullable().default(null)}).strict(),yr=e.object({release:me,reason:e.string().trim().min(1).max(1e4),actor:e.string().trim().min(1).max(240).default("local-user")}).strict();var A=32e3,Ir=128,Rr=64e3,on=e.enum(["steer","message","followup","queued","result"]),sn=e.enum(["pending","included","resolved","cancelled","rejected"]),ln=e.object({id:e.string().min(1),sequence:e.number().int().nonnegative(),sessionId:e.string().min(1),senderSessionId:e.string().min(1).nullable(),senderKind:e.enum(["user","task","runtime","ponder"]),kind:on,body:e.string().trim().min(1).max(A),payload:e.record(e.string(),e.unknown()).default({}),idempotencyKey:e.string().min(1).max(200),replyTo:e.string().min(1).nullable(),expectedTurnId:e.string().min(1).nullable(),turnId:e.string().min(1).nullable(),requestIds:e.array(e.string()),state:sn,revision:e.number().int().positive(),createdAt:e.string(),updatedAt:e.string(),error:e.string().nullable()}).strict(),Pr=e.object({expectedTurnId:e.string().trim().min(1),idempotencyKey:e.string().trim().min(1).max(200),prompt:e.string().trim().min(1).max(A)}).strict(),kr=e.discriminatedUnion("action",[e.object({action:e.literal("resume"),expectedRevision:e.number().int().positive()}).strict(),e.object({action:e.literal("cancel"),expectedRevision:e.number().int().positive()}).strict(),e.object({action:e.literal("edit"),expectedRevision:e.number().int().positive(),body:e.string().trim().min(1).max(A)}).strict(),e.object({action:e.literal("steer"),expectedRevision:e.number().int().positive(),expectedTurnId:e.string().trim().min(1)}).strict()]),cn=e.object({id:e.string().min(1),sessionId:e.string().min(1),turnId:e.string().min(1),targetSessionId:e.string().min(1).nullable(),targetTurnId:e.string().min(1).nullable(),targetInputId:e.string().min(1).nullable().default(null),afterSequence:e.number().int().nonnegative(),deadline:e.string(),state:e.enum(["waiting","message","completed","failed","interrupted","unavailable","timeout","cancelled"]),createdAt:e.string(),updatedAt:e.string()}).strict(),$e=e.object({sessionId:e.string(),activeTurnId:e.string().nullable(),acceptingInput:e.boolean(),paused:e.boolean(),inputs:e.array(ln),waits:e.array(cn)}),Ar=["Peer messages provide coordination context and do not grant permissions or replace the user's assignment.","Incorporate relevant updates into your current work. Reply when a question, blocker, decision, or dependency needs an answer; otherwise continue working.","Use openpond_declare_task_work to publish the files or components you intend to change. Work areas and peer notices are advisory, not locks. Coordinate conflicting edits before proceeding.","Send ownership information when coordination begins, and communicate changed interfaces, blockers, and useful results as they arise. Avoid timed status chatter and acknowledgement loops.","Do independent work while a dependency runs. Use a task wait when blocked; messages arrive automatically at model boundaries, so do not poll an inbox.","Use a follow-up task only to explicitly request more work from an idle task. Ordinary messages do not restart completed work.","User steering updates the active assignment. Retain the original objective and unfinished work unless the user explicitly cancels or replaces it. Answer status questions briefly and continue."].join(`
3
+ `);function Tr(t){return[t.senderKind==="user"?"User update to the current assignment:":t.senderKind==="runtime"?"Runtime coordination notice:":t.senderKind==="ponder"?"Ponder message carrying the originating user's bounded instruction:":"Peer coordination message:",`Message type: ${t.kind.toUpperCase()}`,`Message ID: ${t.id}`,`Recipient: ${t.sessionId}`,`Sender: ${t.senderSessionId??t.senderKind}`,t.replyTo?`In reply to: ${t.replyTo}`:null,"Message:",t.body].filter(n=>n!==null).join(`
4
+ `)}r(Tr,"taskInputModelText");var c=e.string().trim().min(1).max(200),g=e.string().regex(/^[a-f0-9]{64}$/),Xe=e.enum(["queued","running","cancelling","completed","failed","cancelled","interrupted"]),Ye=e.object({providerId:e.enum(["openpond","custom-openai-compatible","claude-code"]),modelId:e.string().trim().min(1).max(500),configurationHash:g,maxOutputTokens:e.number().int().positive().max(262144),temperature:e.number().min(0).max(2).optional(),topP:e.number().positive().max(1).optional(),messages:e.array(e.object({role:e.enum(["system","user","assistant"]),content:e.string().max(262144)}).strict()).max(200)}).strict(),qr=e.object({configuration:O,package:w}).strict(),Ur=e.object({configuration:O,expectedPackageHash:g.optional()}).strict(),Dr=e.object({schemaVersion:e.literal("openpond.localExperimentDefinition.v1"),location:e.literal("local"),id:c,teamId:c,ownerActorId:c,revision:e.number().int().positive(),configuration:O,model:Ye,packageHash:g,graders:e.array(v).min(1).max(100),availableGraders:e.array(v).min(1).max(1e3),createdAt:e.iso.datetime(),updatedAt:e.iso.datetime(),contentHash:g}).strict(),Br=e.object({operationId:c,definition:F}).strict(),zr=e.object({teamId:c,id:c}).strict(),Fr=e.object({teamId:c,projectId:c.optional(),status:Xe.optional(),datasetHash:g.optional(),search:e.string().max(100).optional(),afterId:c.optional(),limit:e.number().int().min(1).max(100).default(30)}).strict(),Z=e.object({schemaVersion:e.literal("openpond.localExperimentExecution.v1"),location:e.literal("local"),id:c,teamId:c,ownerActorId:c,operationId:c,definition:F,kind:e.enum(["target","scoring"]),executionHash:g,sourceExecution:e.object({id:c,executionHash:g}).strict().nullable(),packageHash:g,maximumCostUsd:e.number().finite().positive(),status:Xe,createdAt:e.iso.datetime(),completedAt:e.iso.datetime().nullable(),counts:e.object({pending:e.number().int().nonnegative(),running:e.number().int().nonnegative(),completed:e.number().int().nonnegative(),failed:e.number().int().nonnegative(),cancelled:e.number().int().nonnegative(),unknown:e.number().int().nonnegative()}).strict(),usage:e.object({knownCostUsd:e.number().finite().nonnegative(),costUsd:e.number().finite().nonnegative().nullable(),heldUsd:e.number().finite().nonnegative(),uncertainRequests:e.number().int().nonnegative()}).strict(),cleanupComplete:e.boolean(),error:e.string().max(2e3).nullable()}).strict(),mn=Z.omit({definition:!0});function ee(t,n){t.kind==="scoring"!=(t.sourceExecution!==null)&&n.addIssue({code:"custom",message:"Only retained scoring passes name an original execution."}),["completed","failed","cancelled","interrupted"].includes(t.status)&&(!t.completedAt||t.counts.pending||t.counts.running)&&n.addIssue({code:"custom",message:"Terminal local execution requires complete population accounting."}),["completed","cancelled"].includes(t.status)&&!t.cleanupComplete&&n.addIssue({code:"custom",message:"Successful completion or cancellation requires confirmed local transport cleanup."}),t.usage.uncertainRequests>0&&t.usage.costUsd!==null&&n.addIssue({code:"custom",message:"Uncertain provider charges cannot claim a measured total."})}r(ee,"validateLocalExecutionState");var Kr=Z.superRefine(ee),T=mn.superRefine(ee),un=e.object({configuration:M,package:w}).strict(),dn=e.object({configuration:M,expectedPackageHash:e.string().regex(/^[a-f0-9]{64}$/).optional()}).strict(),Q=e.object({configuration:M,model:Ye,packageHash:e.string().regex(/^[a-f0-9]{64}$/),graders:e.array(v).min(1).max(100),availableGraders:e.array(v).min(1).max(1e3),retainedConfigurationHash:e.string().regex(/^[a-f0-9]{64}$/).optional(),configurationHash:e.string().regex(/^[a-f0-9]{64}$/)}).strict().superRefine((t,n)=>{let{configurationHash:i,...s}=t;ue(s)!==i&&n.addIssue({code:"custom",message:"Local configuration snapshot bytes changed."})}),{definition:Gr,...pn}=Z.shape,N=e.object({...pn,kind:e.literal("target"),...Q.shape}).strict().superRefine((t,n)=>{let i={configuration:t.configuration,model:t.model,packageHash:t.packageHash,graders:t.graders,availableGraders:t.availableGraders,...t.retainedConfigurationHash?{retainedConfigurationHash:t.retainedConfigurationHash}:{},configurationHash:t.configurationHash};ee(t,n),Q.safeParse(i).success||n.addIssue({code:"custom",message:"Local Experiment configuration changed."}),(t.operationId!==t.configuration.operationId||t.teamId!==t.configuration.request.teamId||t.maximumCostUsd!==t.configuration.maximumCostUsd)&&n.addIssue({code:"custom",message:"Local Experiment differs from its sealed admission."})}),gn=e.object({items:e.array(N).max(100),nextCursor:e.string().nullable()}).strict(),bn=e.object({teamId:e.string().min(1).max(200),id:e.string().min(1).max(200),configurationHash:e.string().regex(/^[a-f0-9]{64}$/).optional()}).strict(),hn=e.object({operationId:c,execution:e.object({id:c,executionHash:g}).strict(),graderPackage:w,graders:e.array(Ae).min(1).max(100),maximumCostUsd:e.number().finite().positive().max(1e4)}).strict(),Vr=hn.omit({graderPackage:!0}),xn=fe,fn=e.object({sessionId:c,turnId:c,source:he,profileRef:h,admissionHash:g,modelConfigurationHash:g,traceHash:g,runtimeEventRefs:e.array(c).max(1e4),startedAt:e.iso.datetime(),completedAt:e.iso.datetime(),outputHash:g,partialOutputAvailable:e.boolean()}).strict(),Qe=e.object({receiptId:c,taskId:c,seed:e.string(),status:e.enum(["pending","running","completed","failed","cancelled","unknown"]),input:e.record(e.string(),e.unknown()),policyVisibleContext:e.record(e.string(),e.unknown()),output:e.string().nullable(),messages:e.array(e.unknown()).max(4002),grade:ke.nullable(),error:e.string().nullable(),native:xn.optional(),profileNative:fn.optional(),externalProcess:Pe.optional()}).strict(),Wr=e.object({execution:e.union([N,T]),cases:e.array(Qe).max(1e4),contentHash:g}).strict(),Sn=e.object({items:e.array(e.object({sequence:e.number().int().positive(),type:e.string().min(1),payload:e.unknown()}).strict()).max(500),nextCursor:e.number().int().positive().nullable()}).strict(),$r=e.object({location:e.literal("local"),execution:e.union([N,T]),case:Qe,trace:Sn}).strict(),Jr=e.object({items:e.array(T).max(100),nextCursor:c.nullable()}).strict(),Xr=e.object({execution:T,graders:e.array(v).min(1).max(100),graderPackageHash:g}).strict(),Je=e.object({execution:T,manifest:Se,result:ye}).strict().superRefine((t,n)=>{try{if(ve(t),t.manifest.id!==t.execution.id||t.manifest.teamId!==t.execution.teamId||t.manifest.lineage?.execution.id!==(t.execution.sourceExecution?.id??t.execution.id)||t.manifest.lineage.execution.contentHash!==(t.execution.sourceExecution?.executionHash??t.execution.executionHash)||t.manifest.lineage.scoringPassId!==(t.execution.kind==="scoring"?t.execution.id:null)||t.manifest.maximumCostUsd!==t.execution.maximumCostUsd)throw new Error("Portable evidence differs from its retained local execution.")}catch(i){n.addIssue({code:"custom",message:i instanceof Error?i.message:"Local portable evidence verification failed."})}}),Yr=e.object({location:e.literal("local"),baseline:Je,candidate:Je}).strict();var yn=e.object({id:e.string().trim().min(1).max(80),label:e.string().trim().min(1).max(160),description:e.string().trim().max(500).nullable().optional().default(null)}),ai=e.object({id:e.string().trim().min(1),sessionId:e.string().trim().min(1),turnId:e.string().trim().min(1),toolCallId:e.string().trim().min(1),question:e.string().trim().min(1).max(2e3),reason:e.string().trim().max(1e3).nullable().optional().default(null),options:e.array(yn).max(5).default([]),allowFreeform:e.boolean().default(!0),status:e.enum(["pending","answered","dismissed"]),answer:e.object({optionId:e.string().trim().min(1).nullable(),text:e.string().max(4e3)}).nullable(),createdAt:e.string(),answeredAt:e.string().nullable()}),ri=e.object({questionId:e.string().trim().min(1),action:e.enum(["answer","dismiss"]),optionId:e.string().trim().min(1).nullable().optional().default(null),text:e.string().trim().max(4e3).optional().default("")});var si=e.object({kind:e.enum(["session","project","draft"]),id:e.string().trim().min(1).max(300)}),li=e.enum(["unknown","idle","running","success","failed"]),ci=e.enum(["none","idle","running","success","failed","unknown"]);var vn=e.object({id:e.string(),name:e.string(),type:e.string(),status:e.string(),isActive:e.boolean().nullable(),price:e.string().nullable(),currency:e.string().nullable(),credits:e.string().nullable()}).passthrough(),_n=e.object({reachable:e.boolean(),authenticated:e.boolean().nullable(),apiBase:e.string(),latencyMs:e.number(),status:e.number().nullable(),service:e.string().nullable(),checkedAt:e.string(),error:e.string().nullable()}),In=e.object({id:e.string().nullable(),email:e.string().nullable(),name:e.string().nullable(),handle:e.string().nullable(),image:e.string().nullable(),timezone:e.string().nullable(),isAdmin:e.boolean().nullable(),isVerified:e.boolean().nullable(),dailyAgentAppId:e.string().nullable(),dailyAgentDeploymentId:e.string().nullable(),credits:e.string().nullable()}),Rn=e.object({handle:e.string(),baseUrl:e.string().nullable().optional()}),Ze=e.object({state:e.enum(["signed_out","signed_in","loading","switching","auth_error"]),activeProfile:Rn.nullable(),label:e.string(),email:e.string().nullable(),avatarUrl:e.string().nullable(),environment:e.string().nullable(),baseUrl:e.string().nullable(),apiBaseUrl:e.string().nullable(),chatApiBaseUrl:e.string().nullable().optional().default(null),creditsLabel:e.string().nullable(),profile:In.nullable(),products:e.array(vn),apiHealth:_n.nullable(),accounts:e.array(e.object({handle:e.string(),baseUrl:e.string().nullable(),apiBaseUrl:e.string().nullable().optional().default(null),chatApiBaseUrl:e.string().nullable().optional(),environment:e.string().nullable(),isActive:e.boolean(),authHealth:e.enum(["signed_out","signed_in","auth_error","unknown"]),displayLabel:e.string().nullable(),email:e.string().nullable().optional().default(null),avatarUrl:e.string().nullable(),apiKeyHint:e.string().nullable().optional(),apiKeyAccess:e.object({ownerType:e.enum(["user","team","organization","service"]).nullable(),teamId:e.string().nullable(),scopes:e.array(e.string())}).nullable().optional().default(null)})),error:e.string().nullable()}),te=e.object({asOf:e.string().nullable(),refreshing:e.boolean(),lastRefreshError:e.string().nullable(),source:e.enum(["fresh","cache","empty"])}),et=e.object({available:e.boolean(),binaryPath:e.string().nullable(),version:e.string().nullable(),authHealth:e.enum(["unknown","signed_in","signed_out","auth_error"]),account:e.object({type:e.string(),email:e.string().nullable(),planType:e.string().nullable(),label:e.string().nullable()}).nullable().default(null),appServer:e.object({status:e.enum(["idle","starting","ready","error"]),lastError:e.string().nullable()})});var tt=e.object({id:e.string(),sessionId:e.string(),turnId:e.string().nullable(),providerRequestId:e.union([e.string(),e.number()]),kind:e.enum(["command","file_change","permissions","user_input","create_plan","subagent_patch_apply","legacy_exec","legacy_patch"]),title:e.string(),detail:e.string(),status:e.enum(["pending","accepted","accepted_for_session","declined","cancelled"]),createdAt:e.string()});var nt=e.object({key:e.enum(["files","diffs","checks","deploys","sources","schedules","tool_runs","logs","app_config"]),label:e.string(),status:e.enum(["placeholder","available","error"]),summary:e.string()});function hi(){return[{key:"files",label:"Files",status:"placeholder",summary:"V2 linked workspace file browser."},{key:"diffs",label:"Diffs",status:"placeholder",summary:"V2 local and hosted Change diff view."},{key:"checks",label:"Checks",status:"placeholder",summary:"Hosted and local validation status."},{key:"deploys",label:"Deploys",status:"placeholder",summary:"Deploy preview and production lifecycle metadata."},{key:"sources",label:"Sources",status:"placeholder",summary:"OpenPond Sources configuration and status."},{key:"schedules",label:"Schedules",status:"placeholder",summary:"Schedules list is queried on demand for selected apps."},{key:"tool_runs",label:"Tool Runs",status:"placeholder",summary:"Tool execution history and safe run controls."},{key:"logs",label:"Logs",status:"placeholder",summary:"Local server, hook, provider, and OpenPond action logs."},{key:"app_config",label:"Config",status:"placeholder",summary:"App environment, template, and runtime config metadata."}]}r(hi,"createPlaceholderPanes");var at=e.object({name:e.string(),description:e.string(),path:e.string(),sourcePath:e.string(),enabled:e.boolean(),charCount:e.number().int().nonnegative(),sourceHash:e.string(),validationStatus:e.enum(["valid","error"]),validationMessages:e.array(e.string()),resourceFiles:e.array(e.string()),updatedAt:e.string().nullable()}),Pn=e.enum(["codex","profile","extension"]),yi=e.object({skillName:e.string(),scope:Pn,path:e.string(),byteSize:e.number().int().nonnegative(),isBinary:e.boolean(),content:e.string().nullable()});var Ii=["openpond-cli","openpond-desktop-harness","openpond-taskset-authoring","openpond-skill-authoring","openpond-agent-authoring","openpond-refiner-authoring"],Ri=[{name:"openpond-taskset-authoring",description:"Create, improve, inspect, test, or prepare an OpenPond Taskset from a capability, Profile Agent, consented evidence, or imported data.",path:"skills/openpond-taskset-authoring/SKILL.md",scope:"profile",enabled:!0,sourcePath:"bundled://openpond",charCount:0,sourceHash:"bundled",validationStatus:"valid",validationMessages:[],resourceFiles:["references/task-design.md","references/graders-and-rewards.md","references/method-selection.md","references/privacy-and-provenance.md"]},{name:"openpond-skill-authoring",description:"Create, copy, adapt, review, or update OpenPond Profile skill packages from slash commands or ordinary authoring requests.",path:"skills/openpond-skill-authoring/SKILL.md",scope:"profile",enabled:!0,sourcePath:"bundled://openpond",charCount:0,sourceHash:"bundled",validationStatus:"valid",validationMessages:[],resourceFiles:["references/skill-package-layout.md","references/copying-and-adaptation.md","references/validation-and-repair.md","scripts/validate-skill.mjs"]},{name:"openpond-agent-authoring",description:"Create, improve, review, or repair source-backed OpenPond Profile Agents and Agent SDK projects.",path:"skills/openpond-agent-authoring/SKILL.md",scope:"profile",enabled:!0,sourcePath:"bundled://openpond",charCount:0,sourceHash:"bundled",validationStatus:"valid",validationMessages:[],resourceFiles:["references/profile-layout.md","references/action-and-chat-design.md","references/integrations-and-setup.md","references/validation-and-repair.md"]},{name:"openpond-refiner-authoring",description:"Inspect, extend, validate, activate, or roll back the OpenPond Refiner Review Profile without changing the Refiner Core.",path:"skills/openpond-refiner-authoring/SKILL.md",scope:"profile",enabled:!0,sourcePath:"bundled://openpond",charCount:0,sourceHash:"bundled",validationStatus:"valid",validationMessages:[],resourceFiles:["references/review-profile.md","references/core-boundary.md","references/validation-and-activation.md"]}],kn=e.object({name:e.string(),description:e.string(),relativePath:e.string(),sourcePath:e.string(),charCount:e.number().int().nonnegative(),sourceHash:e.string(),resourceFiles:e.array(e.string()),validationStatus:e.enum(["valid","error"]),validationMessages:e.array(e.string())}),rt=e.object({id:e.string(),source:e.literal("github"),owner:e.string(),repo:e.string(),repositoryUrl:e.string().url(),requestedRef:e.string(),resolvedCommit:e.string(),sourcePath:e.string(),readmePath:e.string().nullable(),installedAt:e.string(),updatedAt:e.string(),packageHash:e.string(),skills:e.array(kn),validationStatus:e.enum(["valid","error"]),validationMessages:e.array(e.string())}),Pi=rt.omit({installedAt:!0,updatedAt:!0,sourcePath:!0}).extend({sourcePath:e.null()}),it=e.object({rootPath:e.string(),registryPath:e.string(),extensions:e.array(rt),error:e.string().nullable()}),ki=e.object({source:e.string().trim().min(1),ref:e.string().trim().min(1).optional()});var An=e.object({latestSequence:e.number().int().nonnegative(),oldestSequence:e.number().int().nonnegative(),totalEvents:e.number().int().nonnegative(),limit:e.number().int().nonnegative(),hasMoreBefore:e.boolean()}),Bi=e.object({server:Re,account:Ze,codex:et,configuration:e.object({rawRevision:e.string(),effectiveRevision:e.string(),sources:e.array(e.object({layer:e.string(),path:e.string(),revision:e.string()})),provenance:e.record(e.string(),e.object({layer:e.string(),path:e.string(),revision:e.string()}))}).optional(),preferences:B.optional().default(()=>B.parse({})),providers:D.optional().default(()=>D.parse({})),personalization:z.optional().default(()=>z.parse({soul:Ie[0].content,soulPath:null,updatedAt:null})),apps:e.array(we),localProjects:e.array(Me).optional().default([]),cloudProjects:e.array(Oe).optional().default([]),profile:J.optional().default(Fe),profileLibrary:Be.optional().default(ze),codexPersonalSkills:e.array(at).optional().default([]),extensionCatalog:it.optional().default({rootPath:"",registryPath:"",extensions:[],error:null}),codexHistorySessions:e.array(W).optional().default([]),sidebarAppPreferences:He,sidebarFileBookmarks:e.array(Ne).optional().default([]),appsError:e.string().nullable(),appsMeta:te,accountMeta:te,sessions:e.array(W),events:e.array($),eventWindow:An.optional(),approvals:e.array(tt),placeholders:e.array(nt),diagnostics:e.array($)});function Fi(t){return t?(t.match(/\r\n|\r|\n/g)?.length??0)+(/(?:\r\n|\r|\n)$/.test(t)?0:1):0}r(Fi,"countTextLines");var Wi=e.object({appId:e.string(),exists:e.boolean(),configPath:e.string().nullable().optional(),envVar:e.string().nullable(),toolName:e.string().nullable(),version:e.union([e.string(),e.number()]).nullable(),source:e.enum(["hosted_env","local_file","defaults","missing"]),currentConfig:e.record(e.string(),e.unknown()).nullable(),defaults:e.record(e.string(),e.unknown()).nullable(),schema:e.record(e.string(),e.unknown()).nullable(),error:e.string().nullable().optional(),updatedAt:e.string()}).passthrough(),ot=e.enum(["create_sandbox_template_scaffold","resource_read","resource_search","list_files","read_files","search_files","preview_write_files","preview_write_file","preview_edit_file","preview_delete_file","write_files","write_file","edit_file","delete_file","workspace_status","validate_sandbox_template","build_sandbox_template","run_sandbox_template","git_init","git_status","git_diff","git_fetch","git_commit","git_push","publish_openpond_repo","sandbox_create","sandbox_templates","sandbox_template_launch","sandbox_status","sandbox_start","sandbox_list_files","sandbox_read_file","sandbox_search_files","sandbox_upload_file","sandbox_write_file","sandbox_edit_file","sandbox_delete_file","sandbox_mkdir","sandbox_move_file","sandbox_exec","sandbox_git_status","sandbox_git_diff","sandbox_git_export_patch","sandbox_git_apply_patch_local","sandbox_git_branch","sandbox_git_commit","sandbox_git_pull","sandbox_git_push","sandbox_preserve_source","sandbox_promote_source","sandbox_run_action","sandbox_open_port","sandbox_snapshot_catalog","sandbox_snapshot_create","sandbox_snapshot_update","sandbox_snapshot_validate","sandbox_snapshot_publish","sandbox_replays","sandbox_replay_start","sandbox_replay_get","sandbox_replay_logs","sandbox_replay_artifacts","sandbox_replay_cancel","sandbox_logs","sandbox_receipts","sandbox_prepare_agent","sandbox_save_agent_package","sandbox_save_output","work_agent_package_install","work_output_delete","work_output_read","sandbox_schedule_create","sandbox_stop"]),$i=e.object({action:ot,args:e.record(e.string(),e.unknown()).optional().default({}),source:e.enum(["ui_button","chat_action","terminal_command","hook"]).default("chat_action")}),Ji=e.object({ok:e.boolean(),action:ot,appId:e.string().nullable().optional(),output:e.string(),data:e.unknown().optional()});var j=e.object({id:e.string().trim().min(1).max(200),title:e.string().trim().min(1).max(240),sourceTaskId:e.string().trim().min(1).max(200),sourceTurnId:e.string().trim().min(1).max(200),revision:e.number().int().positive().default(1),createdAt:e.string().datetime()}),E=e.object({kind:e.enum(["structural","visual","test","user_review"]),status:e.enum(["passed","failed","not_run"]),label:e.string().trim().min(1).max(240),detail:e.string().trim().max(4e3).nullable().optional(),ref:e.string().trim().max(4096).nullable().optional()}),st=e.object({kind:e.literal("local"),path:e.string().trim().min(1).max(4096),deviceId:e.string().trim().min(1).max(200)}),lt=e.object({kind:e.literal("managed"),fileId:e.string().trim().min(1).max(200),downloadPath:e.string().trim().min(1).max(4096)}),Tn=e.object({kind:e.literal("external"),provider:e.string().trim().min(1).max(120),resourceId:e.string().trim().min(1).max(500),url:e.string().url().nullable()}),ct=j.extend({kind:e.literal("file"),contentType:e.string().trim().min(1).max(200),sizeBytes:e.number().int().nonnegative(),sha256:e.string().regex(/^[a-f0-9]{64}$/),location:e.discriminatedUnion("kind",[st,lt,Tn]),validation:e.array(E).max(32).default([])}),jn=j.extend({kind:e.literal("source_change"),projectId:e.string().trim().min(1).max(200),ref:e.string().trim().min(1).max(500),url:e.string().url().nullable(),validation:e.array(E).max(32).default([])}),En=j.extend({kind:e.literal("deployment"),deploymentId:e.string().trim().min(1).max(200),url:e.string().url(),validation:e.array(E).max(32).default([])}),Cn=j.extend({kind:e.literal("external_resource"),provider:e.string().trim().min(1).max(120),resourceId:e.string().trim().min(1).max(500),url:e.string().url(),contentType:e.string().trim().min(1).max(200).nullable(),validation:e.array(E).max(32).default([])}),mt=e.object({id:e.string().trim().min(1).max(191),label:e.string().trim().min(1).max(160).nullable(),description:e.string().trim().max(1e3).nullable(),inputSchema:e.record(e.string(),e.unknown()).nullable(),outputSchema:e.record(e.string(),e.unknown()).nullable(),schedulePolicy:e.record(e.string(),e.unknown()).nullable()}),ut=e.object({base:e.string().trim().min(1).max(200),resources:e.record(e.string(),e.unknown()),modelPolicy:e.record(e.string(),e.unknown()).nullable(),setup:e.record(e.string(),e.unknown()).nullable()}),wn=e.object({id:e.string().trim().min(1).max(200),kind:e.enum(["sdk_validation","sdk_eval"]),status:e.enum(["passed","failed"]),summary:e.string().trim().min(1).max(2e3),artifactPath:e.string().trim().min(1).max(4096),artifactSha256:e.string().regex(/^[a-f0-9]{64}$/)}),On=e.object({path:e.string().trim().min(1).max(4096),sizeBytes:e.number().int().nonnegative(),sha256:e.string().regex(/^[a-f0-9]{64}$/),contentsBase64:e.string()}),Qi=e.object({schema:e.literal("openpond.agent-package.v1"),agentId:e.string().trim().min(1).max(191),versionId:e.string().trim().min(1).max(200),digest:e.string().regex(/^[a-f0-9]{64}$/),title:e.string().trim().min(1).max(240),source:e.object({files:e.array(On).min(1).max(1e3),totalSizeBytes:e.number().int().nonnegative()}),manifest:e.record(e.string(),e.unknown()),actions:e.array(mt).min(1).max(256),runtimeRequirements:ut,receipts:e.array(wn).min(2).max(64)}),Mn=j.extend({kind:e.literal("agent_package"),agentId:e.string().trim().min(1).max(191),versionId:e.string().trim().min(1).max(200),digest:e.string().regex(/^[a-f0-9]{64}$/),packageFileId:e.string().trim().min(1).max(200),manifestFileId:e.string().trim().min(1).max(200),actions:e.array(mt).min(1).max(256),runtimeRequirements:ut,validationReceiptIds:e.array(e.string().trim().min(1).max(200)).min(1).max(32),evalReceiptIds:e.array(e.string().trim().min(1).max(200)).min(1).max(32),sourceFileCount:e.number().int().positive(),sourceSizeBytes:e.number().int().nonnegative(),location:e.discriminatedUnion("kind",[st,lt]),validation:e.array(E).max(32).default([])}),Zi=e.discriminatedUnion("kind",[ct,jn,En,Cn,Mn]),eo=e.object({outputs:e.array(ct)}),to=1e7,no=6e6;var Hn=[{family:"document",extensions:[".md",".txt"],contentTypes:["text/markdown","text/plain"],preview:"markdown",validation:["structural"],creation:"built_in"},{family:"code",extensions:[".css",".js",".jsx",".mjs",".py",".sql",".ts",".tsx",".yaml",".yml"],contentTypes:["application/javascript","application/sql","application/yaml","text/css","text/javascript","text/typescript","text/yaml"],preview:"text",validation:["structural"],creation:"built_in"},{family:"document",extensions:[".docx"],contentTypes:["application/vnd.openxmlformats-officedocument.wordprocessingml.document"],preview:"native_app",validation:["structural","visual"],creation:"node_package"},{family:"spreadsheet",extensions:[".xlsx"],contentTypes:["application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"],preview:"native_app",validation:["structural","visual"],creation:"node_package"},{family:"presentation",extensions:[".pptx"],contentTypes:["application/vnd.openxmlformats-officedocument.presentationml.presentation"],preview:"native_app",validation:["structural","visual"],creation:"node_package"},{family:"pdf",extensions:[".pdf"],contentTypes:["application/pdf"],preview:"pdf",validation:["structural","visual"],creation:"node_package"},{family:"data",extensions:[".csv",".tsv",".json"],contentTypes:["text/csv","text/tab-separated-values","application/json"],preview:"text",validation:["structural"],creation:"built_in"},{family:"image",extensions:[".avif",".gif",".jpeg",".jpg",".png",".svg",".webp"],contentTypes:["image/avif","image/gif","image/jpeg","image/png","image/svg+xml","image/webp"],preview:"image",validation:["structural","visual"],creation:"node_package"},{family:"audio",extensions:[".m4a",".mp3",".wav"],contentTypes:["audio/mp4","audio/mpeg","audio/wav"],preview:"audio",validation:["structural","playback"],creation:"node_package"},{family:"video",extensions:[".mov",".mp4",".webm"],contentTypes:["video/quicktime","video/mp4","video/webm"],preview:"video",validation:["structural","playback"],creation:"node_package"},{family:"site",extensions:[".html"],contentTypes:["text/html"],preview:"browser",validation:["structural","browser"],creation:"built_in"}],ro=Object.freeze({".avif":"image/avif",".csv":"text/csv",".css":"text/css",".docx":"application/vnd.openxmlformats-officedocument.wordprocessingml.document",".gif":"image/gif",".html":"text/html",".js":"text/javascript",".jsx":"text/javascript",".jpeg":"image/jpeg",".jpg":"image/jpeg",".json":"application/json",".m4a":"audio/mp4",".md":"text/markdown",".mjs":"text/javascript",".mov":"video/quicktime",".mp3":"audio/mpeg",".mp4":"video/mp4",".pdf":"application/pdf",".png":"image/png",".pptx":"application/vnd.openxmlformats-officedocument.presentationml.presentation",".py":"text/plain",".svg":"image/svg+xml",".sql":"application/sql",".tsv":"text/tab-separated-values",".ts":"text/typescript",".tsx":"text/typescript",".txt":"text/plain",".wav":"audio/wav",".webm":"video/webm",".webp":"image/webp",".xlsx":"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",".yaml":"application/yaml",".yml":"application/yaml"});function Nn(t){return Hn.find(n=>n.contentTypes.includes(t))??null}r(Nn,"workFormatCapabilityForContentType");function io(t,n){return t===n?!0:t!=="text/plain"?!1:Nn(n)?.family==="code"}r(io,"workOutputMediaTypesCompatible");var co=1;var mo=e.object({error:e.literal("protocol_unsupported"),minimumSupportedProtocolVersion:e.literal(1),supportedProtocolVersion:e.literal(1),upgradeRequired:e.literal(!0)}).strict(),uo={frameBytes:262144,socketQueueBytes:1048576,workerQueueBytes:67108864,viewerSubscriptions:20,deviceSubscriptions:100,ticketMs:3e4,leaseMs:6e4,permitMs:15e3,historyTaskBytes:10485760,historyDeviceBytes:104857600,artifactBytes:26214400},m=e.string().min(1).max(200),Ln=e.object({installationId:e.string().uuid(),profileId:m,ownerUserId:m,teamId:m.nullable()}).strict(),po=e.object({version:e.literal(1),scope:Ln,runtimeId:e.string().uuid(),audience:e.string().url(),nonce:e.string().uuid(),issuedAt:e.string().datetime(),payloadHash:e.string().regex(/^[a-f0-9]{64}$/),signature:e.string().max(256)}).strict();function go(t){return JSON.stringify(["remote-device",t.version,t.scope.installationId,t.scope.profileId,t.scope.ownerUserId,t.scope.teamId,t.runtimeId,t.audience,t.nonce,t.issuedAt,t.payloadHash])}r(go,"remoteDeviceProofMessage");function qn(t){let n=r(i=>Array.isArray(i)?i.map(n):i&&typeof i=="object"?Object.fromEntries(Object.entries(i).sort(([s],[l])=>s.localeCompare(l)).map(([s,l])=>[s,n(l)])):i,"canonical");return JSON.stringify(n(t))}r(qn,"remoteDeviceCanonicalContent");var Un=e.object({followUp:e.boolean(),steer:e.boolean(),stop:e.boolean(),approval:e.boolean(),artifacts:e.boolean(),start:e.boolean().optional()}).strict(),Dn=e.object({id:m,localSessionId:m,title:e.string().max(1e3),projectId:m.nullable(),projectLabel:e.string().max(1e3).nullable(),provider:e.string().max(100),capabilities:Un,state:e.enum(["idle","running","completed","failed","attention"]),revision:e.number().int().nonnegative().max(Number.MAX_SAFE_INTEGER),historyGeneration:m,lastEventSequence:e.number().int().nonnegative().max(Number.MAX_SAFE_INTEGER),activeTurnId:m.nullable().optional(),approvalId:m.nullable().optional(),createdAt:e.string().datetime().optional(),updatedAt:e.string().datetime().optional(),archived:e.boolean().default(!1),deleted:e.boolean().default(!1)}).strict(),bo=e.object({idempotencyKey:m,action:e.enum(["follow_up","steer","stop","start","approval"]),targetId:m,expectedRevision:e.number().int().nonnegative().max(Number.MAX_SAFE_INTEGER),expectedTurnId:m.nullable().optional(),expectedApprovalId:m.nullable().optional(),expiresAt:e.string().datetime().optional(),payload:e.object({text:e.string().max(1e5).optional(),response:e.enum(["approve","reject"]).optional(),projectId:m.optional(),starterId:m.optional(),starterRevision:e.number().int().nonnegative().max(Number.MAX_SAFE_INTEGER).optional()}).strict()}).strict(),ho=e.object({id:m,sequence:e.number().int().nonnegative().max(Number.MAX_SAFE_INTEGER),messageId:m.optional(),turnId:m.optional(),textMode:e.enum(["append","replace"]).optional(),fragmentIndex:e.number().int().nonnegative().max(Number.MAX_SAFE_INTEGER).optional(),fragmentCount:e.number().int().positive().max(Number.MAX_SAFE_INTEGER).optional(),type:e.enum(["message","tool","state","approval"]),role:e.enum(["user","assistant","system"]).optional(),text:e.string().max(1e5).optional(),toolName:e.string().max(200).optional(),status:e.string().max(100).optional(),approvalId:m.optional(),artifactIds:e.array(m).max(100).optional(),truncated:e.boolean().optional()}).strict();function xo(t,n,i){return qn({domain:"remote-device-dispatch-v1",command:t,expiresAt:n,keyId:i})}r(xo,"remoteDevicePermitMessage");var Bn=e.object({id:e.string().min(1).max(200),projectId:e.string().min(1).max(200),projectLabel:e.string().max(1e3),title:e.string().max(1e3),revision:e.number().int().nonnegative().max(Number.MAX_SAFE_INTEGER)}).strict(),dt={revision:e.number().int().positive().max(Number.MAX_SAFE_INTEGER),snapshotId:e.string().uuid(),pageIndex:e.number().int().min(0).max(99),pageCount:e.number().int().min(1).max(100),complete:e.boolean(),tasks:e.array(Dn).max(100),starters:e.array(Bn).max(100),removedIds:e.array(m).max(100),removedStarterIds:e.array(m).max(100)},fo=e.discriminatedUnion("mode",[e.object({...dt,mode:e.literal("snapshot")}).strict(),e.object({...dt,mode:e.literal("patch"),baseRevision:e.number().int().nonnegative().max(Number.MAX_SAFE_INTEGER)}).strict()]).superRefine((t,n)=>{(t.pageIndex>=t.pageCount||t.complete!==(t.pageIndex===t.pageCount-1))&&n.addIssue({code:"custom",message:"catalog_page_manifest_invalid"}),t.mode==="patch"&&t.revision<=t.baseRevision&&n.addIssue({code:"custom",message:"catalog_patch_revision_invalid"})}),So=e.object({pageIndex:e.number().int().min(0).max(99),mode:e.enum(["snapshot","patch"]),snapshotId:e.string().uuid(),revision:e.number().int().positive().max(Number.MAX_SAFE_INTEGER),committed:e.boolean(),catalogRevision:e.number().int().nonnegative().max(Number.MAX_SAFE_INTEGER)}).strict();var pt=e.enum(["github","openpond_git"]),gt=e.enum(["private","public"]),zn=e.enum(["actions","workflows","instructions","prompts","goals","evals","examples","tasksets","extensions"]),Fn=e.object({agentIds:e.array(e.string().trim().min(1)).max(100),skillNames:e.array(e.string().trim().min(1)).max(200),optionalContent:e.array(zn).max(20).default([])}),bt=e.object({provider:pt,owner:e.string().trim().min(1).max(191).nullable().optional(),repository:e.string().trim().min(1).max(191),visibility:gt.default("private")}),Kn=e.object({ref:h,selection:Fn,target:bt}),Gn=e.object({path:e.string(),sizeBytes:e.number().int().nonnegative(),category:e.string()}),Ro=e.object({sourceHash:e.string(),sourceRevision:e.string().nullable(),clean:e.boolean(),blockedReasons:e.array(e.string()),warnings:e.array(e.string()),files:e.array(Gn),excludedFiles:e.array(e.string()),target:bt,replacesExisting:e.boolean()}),Po=Kn.extend({expectedSourceHash:e.string().trim().min(1),confirmed:e.literal(!0)}),ko=e.object({provider:pt,owner:e.string(),repository:e.string(),visibility:gt,remoteUrl:e.string(),webUrl:e.string(),revision:e.string()});var Vn=e.enum(["cron","rate"]),ht=e.enum(["queued","running","succeeded","failed","skipped"]),ne=e.object({id:e.string(),localProjectId:e.string(),localProjectName:e.string(),agentRootPath:e.string(),agentName:e.string(),scheduleName:e.string(),scheduleType:Vn,scheduleExpression:e.string(),timezone:e.string().nullable(),targetAction:e.string(),input:e.record(e.string(),e.unknown()).optional().default({}),enabledByDefault:e.boolean(),enabled:e.boolean(),sourceHash:e.string(),manifestHash:e.string().nullable(),agentVersionId:e.string().nullable().optional(),agentPackageDigest:e.string().nullable().optional(),nextRunAt:e.string().nullable(),lastRunAt:e.string().nullable(),lastRunStatus:ht.nullable(),lastRunId:e.string().nullable(),lastError:e.string().nullable(),createdAt:e.string(),updatedAt:e.string()}),xt=e.object({id:e.string(),scheduleId:e.string(),definitionSnapshot:ne.optional(),configurationSnapshot:e.record(e.string(),e.unknown()).optional(),inputSnapshot:e.record(e.string(),e.unknown()).optional(),localProjectId:e.string(),scheduleName:e.string(),scheduledFor:e.string(),trigger:e.enum(["schedule","manual"]),status:ht,targetAction:e.string(),agentVersionId:e.string().nullable().optional(),agentPackageDigest:e.string().nullable().optional(),startedAt:e.string().nullable(),completedAt:e.string().nullable(),exitCode:e.number().int().nullable(),stdout:e.string().nullable(),stderr:e.string().nullable(),result:e.record(e.string(),e.unknown()).nullable(),traceArtifactRef:e.string().nullable(),error:e.string().nullable(),createdAt:e.string(),updatedAt:e.string()}),jo=e.object({schedules:e.array(ne),scheduler:e.object({running:e.boolean(),nextTickAt:e.string().nullable(),lastSyncAt:e.string().nullable(),scanRunning:e.boolean()})}),Eo=e.object({runs:e.array(xt)}),Co=e.object({enabled:e.boolean().optional()}),wo=e.object({input:e.record(e.string(),e.unknown()).optional()}),Oo=e.object({schedule:ne,run:xt});var ae=e.record(e.string(),e.unknown()),No=e.object({userId:e.string(),role:e.enum(["owner","admin","member"]),name:e.string(),handle:e.string().nullable(),image:e.string().nullable()}),Wn=e.object({userId:e.string(),role:e.enum(["owner","admin","member"]),name:e.string(),handle:e.string().nullable(),image:e.string().nullable(),lastReadSequence:e.number().int().nonnegative()}),$n=e.object({id:e.string(),messageId:e.string(),refType:e.enum(["hosted_ai_thread","goal","openpond_session","project","agent_run","message_reply"]),refId:e.string(),preview:ae,createdAt:e.string()}),St=e.object({id:e.string(),messageId:e.string().nullable(),clientAttachmentId:e.string(),kind:e.literal("image"),name:e.string(),mediaType:e.enum(["image/png","image/jpeg","image/webp","image/gif"]),sizeBytes:e.number().int().positive(),status:e.enum(["pending","ready","failed"]),createdAt:e.string(),readyAt:e.string().nullable()}),Lo=e.object({attachment:St,uploadUrl:e.string().url().nullable(),uploadHeaders:e.record(e.string(),e.string()),expiresAt:e.string().nullable()}),qo=e.object({url:e.string().url(),expiresAt:e.string()}),yt=e.object({id:e.string(),threadId:e.string(),teamId:e.string(),clientRequestId:e.string().nullable(),authorType:e.enum(["user","agent","system"]),authorUserId:e.string().nullable(),authorAgentId:e.string().nullable(),sequence:e.number().int().nonnegative(),kind:e.enum(["text","system","command_result"]),body:e.string(),metadata:ae,editedAt:e.string().nullable(),deletedAt:e.string().nullable(),createdAt:e.string(),refs:e.array($n),attachments:e.array(St)}),Jn=e.object({id:e.string(),teamId:e.string(),kind:e.enum(["general","dm","group","channel"]),title:e.string().nullable(),createdByUserId:e.string(),lastMessageId:e.string().nullable(),lastMessageSequence:e.number().int().nonnegative(),lastMessageAt:e.string(),createdAt:e.string(),updatedAt:e.string(),unreadCount:e.number().int().nonnegative(),pinnedAt:e.string().nullable(),mutedAt:e.string().nullable(),archivedAt:e.string().nullable(),participants:e.array(Wn),lastMessage:yt.nullable()}),Uo=e.object({thread:Jn,messages:e.array(yt),hasMoreBefore:e.boolean()}),Do=e.object({threadId:e.string(),mutedAt:e.string().nullable()}),Xn=e.enum(["pending","running","completed","failed","interrupted","cancelled"]),ft=e.object({id:e.string(),conversationId:e.string(),threadId:e.string(),teamId:e.string(),requestedByUserId:e.string(),executorUserId:e.string().nullable(),providerId:e.string(),modelId:e.string(),clientRequestId:e.string(),baseMessageSequence:e.number().int().nonnegative(),status:Xn,partialBody:e.string().nullable(),userMessageId:e.string(),assistantMessageId:e.string().nullable(),errorCode:e.string().nullable(),cancelledByUserId:e.string().nullable(),leaseExpiresAt:e.string().nullable(),heartbeatAt:e.string().nullable(),createdAt:e.string(),updatedAt:e.string()}),Yn=e.object({id:e.string(),conversationId:e.string(),sequence:e.number().int().nonnegative(),role:e.enum(["user","assistant","system","action"]),body:e.string(),createdByUserId:e.string().nullable(),createdAt:e.string()}),Bo=e.object({conversationId:e.string(),parentThreadId:e.string(),parentMessageId:e.string(),teamId:e.string(),title:e.string().nullable(),providerId:e.string().nullable(),modelId:e.string(),createdByUserId:e.string(),messages:e.array(Yn),turns:e.array(ft),activeTurn:ft.nullable(),createdAt:e.string(),updatedAt:e.string()}),Qn=e.object({id:e.number().int().nonnegative(),teamId:e.string(),threadId:e.string(),conversationId:e.string().nullable(),type:e.enum(["thread.created","message.created","message.updated","message.deleted","read.updated","ai_thread.created","ai_turn.updated"]),payload:ae,createdAt:e.string()}),zo=e.object({events:e.array(Qn),cursor:e.number().int().nonnegative(),hasMore:e.boolean()}),Fo=e.object({httpUrl:e.string().min(1),realtimeUrl:e.string().min(1),region:e.string().min(1),token:e.string().min(1),expiresAt:e.string().min(1),teamId:e.string().min(1),userId:e.string().min(1)});var re=e.record(e.string(),e.unknown()),b=e.string().nullable(),Zn=e.enum(["draft","published","archived"]),ie=e.enum(["owner","admin","member"]),vt=e.enum(["active","left"]),_t=e.enum(["mentions","all","none"]),It=e.enum(["public_preview","members"]),ea=e.enum(["members","admins"]),ta=e.object({canPreview:e.boolean(),canJoin:e.boolean(),canLeave:e.boolean(),canRead:e.boolean(),canPost:e.boolean(),canUpload:e.boolean(),canMention:e.boolean(),canManage:e.boolean(),requiresRulesAcceptance:e.boolean(),currentRulesVersionId:e.string().nullable()}),Rt=e.object({id:e.string(),communityId:e.string(),version:e.number().int().positive(),title:e.string(),requiresReacceptance:e.boolean(),publishedAt:e.string()}),na=Rt.extend({bodyMarkdown:e.string(),contentHash:e.string()}),aa=e.object({role:ie,status:vt,notificationMode:_t}),ra=e.object({id:e.string(),communityId:e.string(),userId:e.string(),role:ie,status:vt,notificationMode:_t,joinedAt:e.string(),leftAt:b,createdAt:e.string(),updatedAt:e.string()}),Pt=e.object({id:e.string(),slug:e.string(),displayName:e.string(),description:e.string(),imageUrl:e.string().nullable(),status:Zn,visibility:e.enum(["public","private"]),joinPolicy:e.enum(["open","closed"]),historyVisibility:It,featuredAt:b,publishedAt:b,archivedAt:b,memberCount:e.number().int().nonnegative(),membership:aa.nullable(),capabilities:ta,currentRules:Rt.nullable()}),Vo=e.object({items:e.array(Pt),nextCursor:e.string().nullable()}),kt=e.object({lastReadSequence:e.number().int().nonnegative(),lastReadAt:b.optional(),mutedAt:b,pinnedAt:b}),oe=e.object({id:e.string(),communityId:e.string(),chatThreadId:e.string().nullable(),slug:e.string(),displayName:e.string(),topic:e.string(),position:e.number().int().nonnegative(),visibility:It,postingPolicy:ea,isDefault:e.boolean(),archivedAt:b,lastMessageSequence:e.number().int().nonnegative(),unreadCount:e.number().int().nonnegative(),readState:kt.nullable()}),Wo=Pt.omit({currentRules:!0}).extend({currentRules:na.nullable(),channels:e.array(oe),previewMessageLimit:e.number().int().positive()}),ia=e.object({id:e.string(),messageId:e.string(),refType:e.enum(["hosted_ai_thread","goal","openpond_session","project","agent_run","message_reply"]),refId:e.string(),preview:re,createdAt:e.string()}),At=e.object({id:e.string(),messageId:e.string().nullable(),clientAttachmentId:e.string(),kind:e.literal("image"),name:e.string(),mediaType:e.enum(["image/png","image/jpeg","image/webp","image/gif"]),sizeBytes:e.number().int().positive(),status:e.enum(["pending","ready","failed"]),createdAt:e.string(),readyAt:b}),$o=e.object({attachment:At,uploadUrl:e.string().url().nullable(),uploadHeaders:e.record(e.string(),e.string()),expiresAt:b}),Jo=e.object({url:e.string().url(),expiresAt:e.string()}),oa=e.object({id:e.string(),threadId:e.string(),teamId:e.null(),clientRequestId:e.string().nullable(),authorType:e.enum(["user","agent","system"]),authorUserId:e.string().nullable(),authorAgentId:e.string().nullable(),sequence:e.number().int().nonnegative(),kind:e.enum(["text","system","command_result"]),body:e.string(),metadata:re,editedAt:b,deletedAt:b,createdAt:e.string(),refs:e.array(ia),attachments:e.array(At)}),Xo=e.object({messages:e.array(oa),hasMoreBefore:e.boolean(),channelId:e.string(),readState:kt.omit({lastReadAt:!0}).nullable(),preview:e.boolean()}),sa=e.object({userId:e.string(),handle:e.string().nullable(),name:e.string().nullable(),role:ie}),Yo=e.object({items:e.array(sa),nextCursor:e.string().nullable()}),la=e.object({id:e.number().int().nonnegative(),communityId:e.string(),channelId:e.string(),threadId:e.string(),type:e.enum(["thread.created","message.created","message.updated","message.deleted","read.updated"]),payload:re,createdAt:e.string()}),Qo=e.object({events:e.array(la),cursor:e.number().int().nonnegative(),hasMore:e.boolean()}),Zo=e.object({httpUrl:e.string().min(1),realtimeUrl:e.string().min(1),region:e.string().min(1),token:e.string().min(1),expiresAt:e.string().min(1),communityId:e.string().min(1),userId:e.string().min(1),channel:e.string().min(1)}),es=e.object({membership:ra,channels:e.array(oe)}),ts=e.object({channels:e.array(oe)});function as(t){let n=ca(t);if(n.length){let l=24+n.reduce((p,x)=>p+8+C(x.content),0),u=n.filter(p=>p.role==="assistant").map(p=>8+C(p.content));return{renderedTokens:l,maximumAssistantTargetTokens:Math.max(0,...u),assistantTargetCount:u.length}}let i=ua(t.input),s=da(t.expectedOutput);return{renderedTokens:24+C(i)+C(s),maximumAssistantTargetTokens:8+C(s),assistantTargetCount:s?1:0}}r(as,"estimateTrainingTaskSizing");function ca(t){let n=[...Tt(t.input.messages),...Tt(t.expectedOutput?.messages)],i=[],s=new Map,l=r(u=>{let p=typeof u=="string"&&u?u:`missing_${s.size+1}`;return s.has(p)||s.set(p,`call_${s.size+1}`),s.get(p)},"canonicalCallId");for(let u of n){if(!L(u))continue;let p=u.role,x=u.content;if(p==="tool"){i.push({role:"user",content:q({content:typeof x=="string"?x:"",tool_call_id:l(u.tool_call_id),type:"tool_result"})});continue}if(p==="assistant"&&Array.isArray(u.tool_calls)&&u.tool_calls.length){for(let k of u.tool_calls)!L(k)||!L(k.function)||(i.push({role:"assistant",content:q({arguments:ma(k.function.arguments),name:k.function.name??null,type:"tool_call"})}),l(k.id));typeof x=="string"&&x&&i.push({role:"assistant",content:x});continue}(p==="system"||p==="user"||p==="assistant")&&typeof x=="string"&&x&&i.push({role:p,content:x})}return i}r(ca,"normalizedTrainingMessages");function Tt(t){return Array.isArray(t)?t:[]}r(Tt,"messageArray");function ma(t){if(typeof t!="string")return{};try{return JSON.parse(t)}catch{return{malformed_arguments:t}}}r(ma,"parsedArguments");function q(t){return JSON.stringify(se(t))}r(q,"stableJson");function se(t){return Array.isArray(t)?t.map(se):L(t)?Object.fromEntries(Object.keys(t).sort().map(n=>[n,se(t[n])])):t}r(se,"sortJson");function ua(t){return typeof t.prompt=="string"?t.prompt:q(t)}r(ua,"textInput");function da(t){return t?typeof t.text=="string"?t.text:q(t):""}r(da,"textOutput");function C(t){return Math.ceil(t.length/2)}r(C,"estimatedTokens");function L(t){return!!(t&&typeof t=="object"&&!Array.isArray(t))}r(L,"isRecord");var pa=e.object({schemaVersion:e.literal("openpond.trainingEngineCapabilities.v1"),adapterId:o,available:e.boolean(),methods:e.array(e.string().trim().min(1).max(100)),signalKinds:e.array(je),modelFamilies:e.array(e.string().trim().min(1).max(200)),precisions:e.array(e.enum(["fp32","fp16","bf16","tf32","int8","int4"])),topologies:e.array(e.string().trim().min(1).max(200)),workerProtocolVersion:e.string().trim().min(1).max(200),upstreamRevision:e.string().trim().min(1).max(500),workerImageDigest:e.string().regex(/^sha256:[a-f0-9]{64}$/).nullable().default(null),capabilityReceipt:d,checkedAt:S,unavailableReason:e.string().trim().min(1).max(5e3).nullable()}).strict(),ga=e.object({schemaVersion:e.literal("openpond.computeTargetCapabilities.v1"),adapterId:o,kind:e.enum(["local","ssh","managed","custom"]),provider:o.nullable(),available:e.boolean(),devices:e.array(e.object({id:o,kind:e.enum(["cpu","gpu","accelerator"]),vendor:e.string().trim().min(1).max(200),name:e.string().trim().min(1).max(500),memoryBytes:e.number().int().nonnegative().nullable(),runtime:e.string().trim().min(1).max(200)}).strict()),supportsWorkerImages:e.boolean(),supportsArtifactTransfer:e.boolean(),supportsCancellation:e.boolean(),capabilityReceipt:d,checkedAt:S,unavailableReason:e.string().trim().min(1).max(5e3).nullable()}).strict(),ba=e.object({schemaVersion:e.literal("openpond.harnessRuntimeCapabilities.v1"),adapterId:o,available:e.boolean(),placements:e.array(e.enum(["local","remote","colocated","provider_native"])),lifecycle:e.array(e.enum(["create","reset","step","grade","collect","destroy"])),deterministicReplay:e.boolean(),privilegedIsolation:e.boolean(),capabilityReceipt:d,checkedAt:S,unavailableReason:e.string().trim().min(1).max(5e3).nullable()}).strict(),Al=e.object({schemaVersion:e.literal("openpond.resolvedTrainingPlan.v1"),manifest:Te,recipe:qe,runtime:K,compute:G,engine:V,execution:e.object({trainingPlanId:o,approvalId:o}).strict().nullable(),maximumSpendUsd:e.number().nonnegative().nullable(),approvalHash:d,contentHash:d}).strict().superRefine((t,n)=>{let i=[["runtime",t.runtime,t.manifest.runtimeTarget],["compute",t.compute,t.manifest.computeTarget],["engine",t.engine,t.manifest.engine]];for(let[s,l,u]of i)JSON.stringify(l)!==JSON.stringify(u)&&n.addIssue({code:"custom",path:[s],message:`${s} must exactly match the Harness Run Manifest`});t.recipe.method!==t.manifest.recipe.method&&n.addIssue({code:"custom",path:["recipe","method"],message:"Recipe method must match the Harness Run Manifest"}),t.approvalHash!==t.manifest.approval.approvalHash&&n.addIssue({code:"custom",path:["approvalHash"],message:"Approval hash must match the Harness Run Manifest"}),t.maximumSpendUsd!==t.manifest.approval.maximumSpendUsd&&n.addIssue({code:"custom",path:["maximumSpendUsd"],message:"Maximum spend must match the Harness Run Manifest"})}),Tl=e.object({schemaVersion:e.literal("openpond.adapterValidationReceipt.v1"),adapterId:o,valid:e.boolean(),issues:e.array(e.object({code:o,path:e.string().trim().max(2e3).nullable(),message:e.string().trim().min(1).max(5e3)}).strict()),capabilityReceipt:d,planHash:d,createdAt:S,contentHash:d}).strict(),jl=e.object({runId:o,adapterId:o,protocolVersion:e.enum(["openpond.training.v2","adapter.native.v1"]).default("adapter.native.v1"),routeFamily:e.enum(["training_v2","adapter_native"]).default("adapter_native"),routeId:o.optional(),providerJobId:e.string().trim().min(1).max(1e3).nullable(),tenantId:o.optional(),leaseId:o.nullable(),manifestHash:d.optional(),inputBundleHash:d.optional(),createdAt:S}).strict(),El=e.object({runId:o,state:e.enum(["queued","preparing","running","cancelling","cancelled","succeeded","failed"]),phase:e.string().trim().min(1).max(200),progress:e.number().min(0).max(1).nullable(),rolloutProgress:e.object({groupsCompleted:e.number().int().nonnegative(),groupsTarget:e.number().int().nonnegative(),optimizerUpdatesApplied:e.number().int().nonnegative(),optimizerUpdatesSkipped:e.number().int().nonnegative()}).strict().optional(),updatedAt:S,errorCode:o.nullable()}).strict(),Cl=e.object({runId:o,manifestHash:d,artifacts:e.array(e.object({kind:e.enum(["checkpoint","adapter","metrics","trace","evaluation","receipt"]),objectRef:e.string().trim().min(1).max(2e3),sha256:d,sizeBytes:e.number().int().nonnegative(),metadata:e.record(e.string(),e.unknown()).optional()}).strict()),contentHash:d}).strict(),le=e.enum(["ready","model_download_required","compute_setup_required","provider_managed","unsupported"]),ha=e.object({id:o,label:e.string().trim().min(1).max(500),description:e.string().trim().min(1).max(2e3),destinationId:o,computeAdapterId:o,runtimeAdapterId:o,engineAdapterId:o,methods:e.array(e.string().trim().min(1).max(100)),capabilityPills:e.array(e.string().trim().min(1).max(100)),executionMode:e.enum(["local_worker","provider_native"]),approvalPolicy:e.object({providerId:de,providerLabel:e.string().trim().min(1).max(200),settingsActionLabel:e.string().trim().min(1).max(500).nullable(),exportApprovalRequired:e.boolean(),exportDescription:e.string().trim().min(1).max(2e3).nullable(),preparationRequired:e.boolean(),minimumSpendUsd:e.number().nonnegative(),maximumSpendUsd:e.number().positive(),defaultMaximumSpendUsd:e.number().positive(),minimumRetentionDays:e.number().int().positive(),maximumRetentionDays:e.number().int().positive(),defaultRetentionDays:e.number().int().positive(),methodRequirement:e.string().trim().min(1).max(2e3).nullable()}).strict().nullable(),limits:e.object({maximumSequenceLength:e.number().int().positive(),maximumOutputTokens:e.number().int().positive(),maximumTrainingExamples:e.number().int().positive().nullable()}).strict(),defaults:e.object({loraRank:e.number().int().positive(),maxSteps:e.number().int().positive(),rolloutGroupSize:e.number().int().min(2).max(32),rolloutConcurrency:e.number().int().positive().max(32),rolloutOutputTokens:e.number().int().positive()}).strict(),available:e.boolean(),unavailableReason:e.string().trim().min(1).max(5e3).nullable()}).strict(),xa=e.object({selectionKey:o,label:e.string().trim().min(1).max(500),source:e.enum(["local","builtin","huggingface","managed","search"]),modelId:e.string().trim().min(1).max(1e3),revision:e.string().trim().min(1).max(500).nullable(),tokenizerRevision:e.string().trim().min(1).max(500).nullable(),chatTemplateHash:d.nullable(),modelAssetId:o.nullable(),expectedBytes:e.number().int().nonnegative().nullable(),cached:e.boolean(),known:e.boolean(),searchResolved:e.boolean(),computeAdapterIds:e.array(o),engineAdapterIds:e.array(o),preparationState:le,reason:e.string().trim().min(1).max(5e3).nullable(),compatibilities:e.array(e.object({targetId:o,methods:e.array(e.string().trim().min(1).max(100)),state:le,reason:e.string().trim().min(1).max(5e3).nullable()}).strict())}).strict(),wl=e.object({schemaVersion:e.literal("openpond.trainingCatalog.v1"),models:e.array(xa).max(1e5),engines:e.array(pa),compute:e.array(ga),runtimes:e.array(ba),targets:e.array(ha),generatedAt:S,contentHash:d}).strict(),Ol=e.object({schemaVersion:e.literal("openpond.trainingPreparationPlan.v1"),modelRunId:o,state:le,reason:e.string().trim().min(1).max(5e3).nullable(),runtime:K.nullable(),compute:G.nullable(),engine:V.nullable(),downloads:e.array(e.object({kind:e.literal("model"),label:e.string().trim().min(1).max(500),expectedBytes:e.number().int().nonnegative(),digest:e.string().trim().min(8).max(500),cached:e.boolean(),state:e.enum(["ready","required","downloading","cancelled","failed"]),progress:e.number().min(0).max(1).nullable(),cancellable:e.boolean(),diskImpactBytes:e.number().int().nonnegative()}).strict()),dataMovement:e.array(e.object({direction:e.enum(["upload","download","none"]),label:e.string().trim().min(1).max(500),bytes:e.number().int().nonnegative().nullable()}).strict()),quoteUsd:e.number().nonnegative().nullable(),maximumSpendUsd:e.number().nonnegative().nullable(),retentionDays:e.number().int().nonnegative().nullable(),sideEffectsStarted:e.literal(!1),contentHash:d}).strict();var Ll=e.object({sessionId:e.string().min(1),provider:e.string().min(1),title:e.string(),targetRevision:e.string().min(1),managedSessionId:e.string().nullable(),latestTurnId:e.string().nullable(),activeTurnId:e.string().nullable(),paused:e.boolean(),approvalBlocked:e.boolean(),canSendFollowup:e.boolean(),canSteer:e.boolean(),unavailableReason:e.string().nullable(),inbox:$e}).strict(),ql=e.object({authority:e.literal("user_click"),mode:e.enum(["followup","steer"]),expectedTargetRevision:e.string().min(1),expectedTurnId:e.string().min(1).optional(),prompt:e.string().trim().min(1).max(A),idempotencyKey:e.string().trim().min(1).max(200),recommendationId:e.string().min(1).max(200).optional()}).strict().superRefine((t,n)=>{t.mode==="steer"&&!t.expectedTurnId&&n.addIssue({code:"custom",path:["expectedTurnId"],message:"Active steering requires the exact observed turn."}),t.mode==="followup"&&t.expectedTurnId&&n.addIssue({code:"custom",path:["expectedTurnId"],message:"Follow-up messages are delivered at the next turn boundary."})});var P=e.string().trim().min(1).max(240),ce=e.string().regex(/^[a-f0-9]{64}$/),Fl=e.object({location:e.literal("local"),harnesses:e.array(e.object({id:P,name:e.string().max(500),source:xe}).strict()).max(100),profiles:e.array(e.object({id:P,name:e.string().max(500),profileRef:h,sourceRevision:e.string().min(1).max(500),harnessRelease:e.object({id:P,contentHash:ce}).strict(),definitionId:P,definitionHash:ce,taskset:e.object({id:P,revision:e.number().int().positive(),contentHash:ce}).strict(),taskCount:e.number().int().nonnegative(),taskIds:e.array(P).max(1e4),seeds:e.array(e.string()).max(1e4)}).strict()).max(100)}).strict();var fa=e.object({id:e.uuid(),action:e.enum(["advanced-refiner-start","experiment-evaluation-schedule"]),intentHash:e.string().regex(/^[a-f0-9]{64}$/),createdAt:e.iso.datetime(),reviewedIntent:e.unknown().nullable(),command:e.unknown().nullable(),phase:e.enum(["reviewed","dispatching"]).nullable(),recoveryReady:e.boolean()}).strict().superRefine((t,n)=>{t.recoveryReady!==(t.reviewedIntent!==null&&t.command!==null&&t.phase!==null)&&n.addIssue({code:"custom",message:"Only the actual retained intent and command admit automatic recovery."})}),Vl=e.object({items:e.array(fa).max(100),nextCursor:e.uuid().nullable()}).strict();var y=e.string().min(1).max(200),Jl=e.object({operationId:y,payloadHash:e.string().regex(/^[a-f0-9]{64}$/),sessionId:y,sessionTitle:e.string().min(1).max(300),turnId:y,workspaceId:y,providerId:y,modelId:y.nullable(),capturedAt:e.string().datetime(),taskStatus:e.enum(["in_progress","completed","failed","interrupted"]),taskCompletedAt:e.string().datetime().nullable(),error:e.string().max(2e3).nullable(),events:e.array(e.object({id:y,sequence:e.number().int().positive(),timestamp:e.string().max(100),kind:e.enum(["assistant.delta","tool.started","tool.completed"]),text:e.string().max(4e3),action:e.string().max(300).nullable(),status:e.enum(["started","completed","failed","pending"]).nullable(),messageId:e.string().max(300).nullable(),messageSnapshot:e.boolean()}).strict()).max(100),coverage:e.object({olderEventsOmitted:e.boolean(),textTruncated:e.boolean(),textLimit:e.literal(16e3),eventLimit:e.literal(100)}).strict()}).strict().superRefine((t,n)=>{t.events.reduce((i,s)=>i+s.text.length,0)>16e3&&n.addIssue({code:"custom",message:"Inspection text exceeds its shared budget"}),t.taskStatus==="in_progress"&&t.taskCompletedAt!==null&&n.addIssue({code:"custom",message:"A running task cannot have a completion time"})});var jt=e.object({scope:R,authorizationRevision:e.number().int().positive()}).strict(),Sa=e.object({id:e.string().min(1).max(200),name:e.string().min(1).max(300),cwd:e.string().min(1).max(8192).nullable(),revision:e.string().regex(/^[a-f0-9]{64}$/).nullable(),available:e.boolean(),previouslyShared:e.boolean(),shared:e.boolean()}).strict(),Zl=e.object({authority:jt.nullable(),projects:Sa.array().max(100),nextCursor:e.string().min(1).max(200).nullable()}).strict(),ec=e.object({projectId:e.string().min(1).max(200),shared:e.boolean(),expectedRevision:e.string().regex(/^[a-f0-9]{64}$/).nullable(),expectedAuthority:jt}).strict(),tc=e.object({projectId:e.string().min(1).max(200),shared:e.boolean(),discovery:e.enum(["current","pending"])}).strict();export{$ as a,tn as b,ai as c,ri as d,si as e,ka as f,Ze as g,tt as h,hi as i,ze as j,Fe as k,Ii as l,Ri as m,ki as n,Bi as o,Fi as p,Wi as q,$i as r,Ji as s,ct as t,Qi as u,Mn as v,eo as w,to as x,no as y,Hn as z,ro as A,Nn as B,io as C,co as D,uo as E,go as F,qn as G,xo as H,fo as I,So as J,Kn as K,Po as L,Co as M,Na as N,La as O,qa as P,Ge as Q,Ua as R,Da as S,No as T,St as U,Lo as V,qo as W,yt as X,Jn as Y,Uo as Z,Do as _,ft as $,Bo as aa,zo as ba,Fo as ca,_t as da,na as ea,ra as fa,Vo as ga,Wo as ha,At as ia,$o as ja,Jo as ka,oa as la,Xo as ma,Yo as na,Qo as oa,Zo as pa,es as qa,ts as ra,Va as sa,Wa as ta,R as ua,Ja as va,Xa as wa,Y as xa,Ve as ya,Ya as za,H as Aa,We as Ba,Qa as Ca,er as Da,nr as Ea,rn as Fa,as as Ga,fr as Ha,Sr as Ia,yr as Ja,pa as Ka,Al as La,Tl as Ma,jl as Na,El as Oa,Cl as Pa,wl as Qa,A as Ra,Ir as Sa,Rr as Ta,ln as Ua,Pr as Va,kr as Wa,cn as Xa,$e as Ya,Ar as Za,Tr as _a,ql as $a,Ye as ab,Dr as bb,zr as cb,Fr as db,Kr as eb,un as fb,dn as gb,Q as hb,N as ib,bn as jb,hn as kb,Vr as lb,xn as mb,fn as nb,Wr as ob,Fl as pb,Vl as qb,Jl as rb,jt as sb,Zl as tb,ec as ub};
@@ -1,5 +1,5 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{c as B}from"./chunk-U2YMBCX7.js";import{e as D,f as k,g as K}from"./chunk-BSHAIAXY.js";import{f as w}from"./chunk-3M53YXEI.js";import{$ as N,W as y,X as L,Y as U,Z as M,_ as $,f as T,g as A,j as I,u as _}from"./chunk-B7QDZPNX.js";import{d as O}from"./chunk-TERVLCRG.js";import{b as v}from"./chunk-GLUWATL5.js";import{f as C}from"./chunk-73G5UYBB.js";import{a as o}from"./chunk-FTQLQJQV.js";function ce(e){if(e.repoUrl)return e.repoUrl;if(e.gitHost&&e.gitOwner&&e.gitRepo)return`https://${e.gitHost}/${e.gitOwner}/${e.gitRepo}.git`;throw new Error("repoUrl missing from API response")}o(ce,"resolveRepoUrl");function le(e,t){let n=new URL(e),r=encodeURIComponent(t);return`${n.protocol}//x-access-token:${r}@${n.host}${n.pathname}`}o(le,"formatTokenizedRepoUrl");function fe(e){let t=new URL(e);return`${t.protocol}//x-access-token:$OPENPOND_API_KEY@${t.host}${t.pathname}`}o(fe,"formatTokenizedRepoUrlForPrint");function me(e){return e.replace(/x-access-token:[^@]+@/g,"x-access-token:***@")}o(me,"redactToken");function pe(e){let t=process.env.OPENPOND_BASE_URL;if(t)try{let n=new URL(t).hostname,r=new URL(e).hostname;n&&r&&n!==r&&(console.warn(`warning: repo host (${r}) does not match OPENPOND_BASE_URL (${n})`),console.warn("warning: verify your git host configuration matches OPENPOND_BASE_URL."))}catch{}}o(pe,"warnOnRepoHostMismatch");function W(e){let t=e.split("/").filter(Boolean);if(t.length!==2)throw new Error("expected <handle>/<repo>");return{handle:t[0],repo:t[1]}}o(W,"parseHandleRepo");function S(e){return(e||"").trim().toLowerCase()}o(S,"normalizeRepoName");async function ee(e){if(!e.forceRefresh){let n=await L({apiBase:e.apiBase,apiKey:e.apiKey,ttlMs:y});if(n)return n}let t=await I(e.apiBase,e.apiKey);return await U({apiBase:e.apiBase,apiKey:e.apiKey,apps:t}),t}o(ee,"fetchAppsWithCache");async function Re(e){if(!e.forceRefresh){let r=await M({apiBase:e.apiBase,apiKey:e.apiKey,ttlMs:y});if(r)return r}let t=await _(e.apiBase,e.apiKey),n=Array.isArray(t.tools)?t.tools:[];return await $({apiBase:e.apiBase,apiKey:e.apiKey,tools:n}),n}o(Re,"fetchToolsWithCache");async function Pe(e,t,n){let{handle:r,repo:s}=W(n),i=await ee({apiBase:e,apiKey:t}),a=S(s),d=i.find(u=>u.handle&&u.handle!==r?!1:[u.repo,u.gitRepo,u.id].map(S).includes(a));if(!d)throw new Error(`app not found for ${r}/${s}`);return{app:d,handle:r,repo:s}}o(Pe,"resolveAppTarget");async function Ee(e){let t=e.intervalMs??5e3,n=e.timeoutMs??240*1e3,r=new Set,s=Date.now();for(;Date.now()-s<n;){let a=(await T(e.baseUrl,e.apiKey,e.deploymentId)).filter(u=>!r.has(u.id));for(let u of a)r.add(u.id);for(let u of a)console.log(`${e.prefix}${u.message}`);let d=await A(e.baseUrl,e.apiKey,e.deploymentId);if(d.status==="failed"){console.log(`${e.prefix}deployment failed`);return}if(d.status==="running"||d.status==="deployed"){console.log(`${e.prefix}deployment complete`);return}await new Promise(u=>setTimeout(u,t))}console.log(`${e.prefix}deployment still in progress`)}o(Ee,"pollDeploymentLogs");import{stdin as q,stdout as H}from"node:process";import{createInterface as F}from"node:readline/promises";async function z(){let e=[];for await(let t of process.stdin)e.push(Buffer.isBuffer(t)?t:Buffer.from(String(t)));return Buffer.concat(e).toString("utf8").replace(/\r?\n$/,"")}o(z,"readAllStdin");function V(e){return new Promise((t,n)=>{let r=process.stdin,s=process.stderr,i="",a=r.isRaw;function d(){r.off("data",u),r.setRawMode&&r.setRawMode(a),r.pause(),s.write(`
2
+ import{c as B}from"./chunk-DARVPBZ4.js";import{e as D,f as k,g as K}from"./chunk-BSHAIAXY.js";import{f as w}from"./chunk-3M53YXEI.js";import{$ as N,W as y,X as L,Y as U,Z as M,_ as $,f as T,g as A,j as I,u as _}from"./chunk-5MCNZCVQ.js";import{b as C}from"./chunk-FWIPHEVA.js";import{d as O}from"./chunk-OS3LO5J3.js";import{b as v}from"./chunk-GLUWATL5.js";import{a as o}from"./chunk-FTQLQJQV.js";function ce(e){if(e.repoUrl)return e.repoUrl;if(e.gitHost&&e.gitOwner&&e.gitRepo)return`https://${e.gitHost}/${e.gitOwner}/${e.gitRepo}.git`;throw new Error("repoUrl missing from API response")}o(ce,"resolveRepoUrl");function le(e,t){let n=new URL(e),r=encodeURIComponent(t);return`${n.protocol}//x-access-token:${r}@${n.host}${n.pathname}`}o(le,"formatTokenizedRepoUrl");function fe(e){let t=new URL(e);return`${t.protocol}//x-access-token:$OPENPOND_API_KEY@${t.host}${t.pathname}`}o(fe,"formatTokenizedRepoUrlForPrint");function me(e){return e.replace(/x-access-token:[^@]+@/g,"x-access-token:***@")}o(me,"redactToken");function pe(e){let t=process.env.OPENPOND_BASE_URL;if(t)try{let n=new URL(t).hostname,r=new URL(e).hostname;n&&r&&n!==r&&(console.warn(`warning: repo host (${r}) does not match OPENPOND_BASE_URL (${n})`),console.warn("warning: verify your git host configuration matches OPENPOND_BASE_URL."))}catch{}}o(pe,"warnOnRepoHostMismatch");function W(e){let t=e.split("/").filter(Boolean);if(t.length!==2)throw new Error("expected <handle>/<repo>");return{handle:t[0],repo:t[1]}}o(W,"parseHandleRepo");function S(e){return(e||"").trim().toLowerCase()}o(S,"normalizeRepoName");async function ee(e){if(!e.forceRefresh){let n=await L({apiBase:e.apiBase,apiKey:e.apiKey,ttlMs:y});if(n)return n}let t=await I(e.apiBase,e.apiKey);return await U({apiBase:e.apiBase,apiKey:e.apiKey,apps:t}),t}o(ee,"fetchAppsWithCache");async function Re(e){if(!e.forceRefresh){let r=await M({apiBase:e.apiBase,apiKey:e.apiKey,ttlMs:y});if(r)return r}let t=await _(e.apiBase,e.apiKey),n=Array.isArray(t.tools)?t.tools:[];return await $({apiBase:e.apiBase,apiKey:e.apiKey,tools:n}),n}o(Re,"fetchToolsWithCache");async function Pe(e,t,n){let{handle:r,repo:s}=W(n),i=await ee({apiBase:e,apiKey:t}),a=S(s),d=i.find(u=>u.handle&&u.handle!==r?!1:[u.repo,u.gitRepo,u.id].map(S).includes(a));if(!d)throw new Error(`app not found for ${r}/${s}`);return{app:d,handle:r,repo:s}}o(Pe,"resolveAppTarget");async function Ee(e){let t=e.intervalMs??5e3,n=e.timeoutMs??240*1e3,r=new Set,s=Date.now();for(;Date.now()-s<n;){let a=(await T(e.baseUrl,e.apiKey,e.deploymentId)).filter(u=>!r.has(u.id));for(let u of a)r.add(u.id);for(let u of a)console.log(`${e.prefix}${u.message}`);let d=await A(e.baseUrl,e.apiKey,e.deploymentId);if(d.status==="failed"){console.log(`${e.prefix}deployment failed`);return}if(d.status==="running"||d.status==="deployed"){console.log(`${e.prefix}deployment complete`);return}await new Promise(u=>setTimeout(u,t))}console.log(`${e.prefix}deployment still in progress`)}o(Ee,"pollDeploymentLogs");import{stdin as q,stdout as H}from"node:process";import{createInterface as F}from"node:readline/promises";async function z(){let e=[];for await(let t of process.stdin)e.push(Buffer.isBuffer(t)?t:Buffer.from(String(t)));return Buffer.concat(e).toString("utf8").replace(/\r?\n$/,"")}o(z,"readAllStdin");function V(e){return new Promise((t,n)=>{let r=process.stdin,s=process.stderr,i="",a=r.isRaw;function d(){r.off("data",u),r.setRawMode&&r.setRawMode(a),r.pause(),s.write(`
3
3
  `)}o(d,"cleanup");function u(m){let f=Buffer.isBuffer(m)?m:Buffer.from(m);for(let c of f){if(c===3){d(),n(new Error("secret prompt cancelled"));return}if(c===13||c===10){d(),t(i);return}if(c===127||c===8){i.length>0&&(i=i.slice(0,-1),s.write("\b \b"));continue}i+=Buffer.from([c]).toString("utf8"),s.write("*")}}o(u,"onData"),s.write(e),r.resume(),r.setRawMode&&r.setRawMode(!0),r.on("data",u)})}o(V,"readMaskedLine");async function Ae(e,t=!1){let n=F({input:q,output:H});try{let r=t?"[Y/n]":"[y/N]",s=(await n.question(`${e} ${r} `)).trim().toLowerCase();return s?s==="y"||s==="yes":t}finally{n.close()}}o(Ae,"promptConfirm");async function Ie(e){let t=F({input:q,output:H});try{return(await t.question(`Local path (default: ${e}): `)).trim()||e}finally{t.close()}}o(Ie,"promptForPath");var X=["readonly","attempt","feature","rollout","replay","template_build","scheduled_run","patch_only","hotfix","multi_feature_batch"],j=["none","manual","auto_after_checks"],G=[...N];function te(e,t){return(process.env.OPENPOND_SANDBOX_BASE_URL||process.env.OPENPOND_API_URL||e.apiBaseUrl||K(process.env.OPENPOND_BASE_URL||e.baseUrl)||v).replace(/\/$/,"")}o(te,"resolveSandboxBaseUrl");async function We(e){let t=await ne(e),n=k(t),r=await B(t,n),s=D(e)||process.env.OPENPOND_SANDBOX_API_URL?.trim()||null,i=te(t,e);return C(s?{apiKey:r,sandboxApiUrl:s}:{apiKey:r,baseUrl:i})}o(We,"resolveSandboxClient");async function ne(e){return O()}o(ne,"loadSandboxConfig");function qe(e){if(e===void 0)return;if(typeof e!="string"||!e.trim())throw new Error("workflow-mode must be a non-empty value");let t=e.trim();if(!X.includes(t))throw new Error(`workflow-mode must be one of ${X.join(", ")}`);return t}o(qe,"parseSandboxWorkflowModeOption");function He(e){if(e===void 0)return;if(typeof e!="string"||!e.trim())throw new Error("runtime-promotion-policy must be a non-empty value");let t=e.trim();if(!j.includes(t))throw new Error(`runtime-promotion-policy must be one of ${j.join(", ")}`);return t}o(He,"parseSandboxRuntimePromotionPolicyOption");function Fe(e){if(typeof e!="string"||!e.trim())return;let t=e.trim();if(!G.includes(t))throw new Error(`runtime-profile-id must be one of ${G.join(", ")}`);return t}o(Fe,"parseSandboxRuntimeProfileIdOption");function re(e){let t=Y(e.envRef,"env-ref").map(({name:i,value:a})=>({name:i,secretRef:a})),n=Y(e.envLiteral,"env-literal").map(({name:i,value:a})=>{if(oe(i)&&!w(e.allowPlainSecretEnv))throw new Error(`refusing plaintext value for secret-like env ${i}; create a sandbox secret and pass --env-ref ${i}=openpond://secret/...`);return{name:i,value:a}}),r=[...t,...n],s=new Set;for(let i of r){if(s.has(i.name))throw new Error(`duplicate sandbox env var: ${i.name}`);s.add(i.name)}return r}o(re,"parseSandboxEnvOptions");function ze(e,t){let n=re(t),r=new Set(n.map(a=>a.name)),s=new Map(n.map(a=>[a.name,a]));for(let a of e.inputs.env)if(s.get(a.name)?.value!==void 0&&a.secret!==!1)throw new Error(`sandbox template env ${a.name} requires a secret ref. Pass --env-ref ${a.name}=openpond://secret/...`);let i=e.inputs.env.filter(a=>a.required&&!r.has(a.name)).map(a=>a.name);if(i.length>0)throw new Error(`missing required sandbox template env refs: ${i.join(", ")}. Pass --env-ref NAME=openpond://secret/...`);return n}o(ze,"parseSandboxTemplateEnvOptions");function Y(e,t){return typeof e!="string"?[]:e.split(",").map(n=>n.trim()).filter(Boolean).map(n=>{let r=n.indexOf("=");if(r<=0)throw new Error(`${t} entries must use NAME=value`);let s=n.slice(0,r).trim(),i=n.slice(r+1).trim();if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(s))throw new Error(`${t} has invalid env name: ${s}`);if(!i)throw new Error(`${t} value is required for ${s}`);return{name:s,value:i}})}o(Y,"parseSandboxEnvAssignments");function oe(e){return/(?:SECRET|TOKEN|KEY|PASSWORD|PASSWD|PRIVATE|CREDENTIAL|DATABASE_URL|DSN)/i.test(e)}o(oe,"isSecretLikeEnvName");async function Ve(e,t){if(typeof e.value=="string"||typeof e.secretValue=="string")throw new Error("sandbox secret values must be provided with --stdin or the masked prompt");if(w(e.stdin)){let s=await z();if(!s)throw new Error(`${t} read no secret value from stdin`);return s}if(!process.stdin.isTTY)throw new Error(`${t} requires --stdin when not running in a TTY`);let r=await V(`${t}: `);if(!r)throw new Error(`${t} cannot be empty`);return r}o(Ve,"readSandboxSecretValue");function Xe(e){return{id:e.id,teamId:e.teamId,name:e.name,scope:e.scope,status:e.status,secretRef:e.secretRef,currentVersion:e.currentVersion,updatedAt:e.updatedAt,lastUsedAt:e.lastUsedAt,attachedDestinations:e.attachments?.length??0}}o(Xe,"summarizeSandboxSecret");import{Buffer as b}from"node:buffer";import{spawn as Q}from"node:child_process";var ie=600*1e3,se=2*1024*1024;function R(e,t=[],n={}){return n.inherit&&n.terminateWhenStdoutIncludes!==void 0?Promise.reject(new Error("terminateWhenStdoutIncludes requires captured stdout")):n.terminateWhenStdoutIncludes===""?Promise.reject(new Error("terminateWhenStdoutIncludes must not be empty")):new Promise((r,s)=>{let i=Q(e,t,{cwd:n.cwd,env:n.env?{...process.env,...n.env}:void 0,shell:n.shell,detached:n.detached??process.platform!=="win32",stdio:n.inherit?"inherit":[n.stdin===void 0?"ignore":"pipe","pipe","pipe"]}),a=new h(J(n)),d=new h(J(n)),u=!1,m=n.timeoutMs??ie,f,c,x=null,g=!1,P=o(()=>{f&&clearTimeout(f),c&&clearTimeout(c)},"clearTimers"),E=o(l=>{x!==null||g||(x=l,u=l==="timeout",f&&(clearTimeout(f),f=void 0),Z(i.pid,"SIGTERM"),c=setTimeout(()=>{i.exitCode===null&&i.signalCode===null&&Z(i.pid,"SIGKILL")},5e3))},"requestTermination");m>0&&(f=setTimeout(()=>{E("timeout")},m)),n.inherit||(i.stdout?.on("data",l=>{a.append(l);let p=n.terminateWhenStdoutIncludes;p!==void 0&&a.text().includes(p)&&E("output")}),i.stderr?.on("data",l=>{d.append(l)})),i.on("error",l=>{P(),g=!0,s(l)}),i.on("close",(l,p)=>{g||(g=!0,P(),r({code:l,signal:p,terminationReason:x??(p?"signal":"exit"),stdout:a.text(),stderr:d.text(),timedOut:u,stdoutTruncated:a.truncated,stderrTruncated:d.truncated}))}),n.stdin!==void 0&&i.stdin?.end(n.stdin)})}o(R,"runProcessCommand");var h=class{static{o(this,"BoundedOutput")}#t=[];#n;#e=0;truncated=!1;constructor(t){this.#n=t}append(t){let n=b.isBuffer(t)?t:b.from(t),r=this.#n-this.#e;if(r<=0){n.byteLength>0&&(this.truncated=!0);return}if(n.byteLength<=r){this.#t.push(n),this.#e+=n.byteLength;return}this.#t.push(n.subarray(0,r)),this.#e+=r,this.truncated=!0}text(){let t=b.concat(this.#t,this.#e).toString("utf8");return this.truncated?`${t}
4
4
  [truncated after ${this.#n} bytes]
5
5
  `:t}};function J(e){let t=e.maxOutputBytes??se;return Math.max(0,Math.floor(t))}o(J,"maxOutputBytes");function Z(e,t){if(e){if(process.platform==="win32"){let n=["/PID",String(e),"/T"];t==="SIGKILL"&&n.push("/F"),Q("taskkill",n,{stdio:"ignore",windowsHide:!0}).unref();return}try{process.kill(-e,t)}catch(n){if(n.code!=="ESRCH")throw n}}}o(Z,"terminateProcessTree");async function ae(e,t,n={}){return R(e,t,{cwd:n.cwd,inherit:n.inherit,timeoutMs:n.timeoutMs,maxOutputBytes:n.maxOutputBytes,terminateWhenStdoutIncludes:n.terminateWhenStdoutIncludes})}o(ae,"runCommand");async function rt(e,t={}){let n=t.timeoutSeconds===void 0?void 0:t.timeoutSeconds*1e3;return R(e,[],{cwd:t.cwd,env:t.env,shell:!0,inherit:t.inherit,timeoutMs:n,maxOutputBytes:t.maxOutputBytes})}o(rt,"runShellCommand");async function ot(e,t){let n=await ae("git",["remote","get-url",t],{cwd:e});if(n.code!==0)return null;let r=n.stdout.trim();return r.length>0?r:null}o(ot,"getGitRemoteUrl");export{ce as a,le as b,fe as c,me as d,pe as e,S as f,ee as g,Re as h,Pe as i,Ee as j,Ae as k,Ie as l,We as m,qe as n,He as o,Fe as p,re as q,ze as r,Ve as s,Xe as t,R as u,ae as v,rt as w,ot as x};
@@ -0,0 +1,50 @@
1
+ import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
+ import{a as v}from"./chunk-2IHO4GDJ.js";import{a as B}from"./chunk-KCJVFLBB.js";import{a as W,b as f,c as T,d as b,e as C,l as D,m as Q,n as J}from"./chunk-N4FFQPLR.js";import{a as M,b as P,c as N}from"./chunk-AY64VY4E.js";import{a as u,e as h,f as y,g as S,h as H,i as x,j as E}from"./chunk-GJ2ZJFDD.js";import{Db as L}from"./chunk-Y4OWBBDD.js";import{e as O}from"./chunk-JFXWI3EN.js";import{a as w}from"./chunk-FTQLQJQV.js";var _={run_overlay:h,evaluation_review:O,refinement_candidate:M,refinement_candidate_lifecycle:P,cross_run_refinement_request:N,training_qualification:L,proposal:y,targeted_validation:S,merge_receipt:x,observation:W,trigger_decision:f,route_decision:T,apply_receipt:C,refiner_outcome:b};function k(o){return[o.id,o.ownerScope.kind,o.ownerScope.id,o.location,o.revision,o.sourceRevision,o.currentChannel.revision,o.currentChannel.release?.contentHash??null,JSON.stringify(o),o.createdAt,o.updatedAt]}w(k,"harnessWorkspaceParams");function g(o){let{createdAt:r,...e}=o;return e}w(g,"immutableHarnessReleaseRecord");var K=class extends B{static{w(this,"SqliteHarnessWorkspaceStore")}async createHarnessWorkspace(r){let e=u.parse(r);await this.ready;let s=this.writeQueue.then(()=>this.run(`INSERT INTO harness_workspaces (
3
+ id, owner_kind, owner_id, location, revision, source_revision,
4
+ channel_revision, current_release_hash, payload, created_at, updated_at
5
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`,k(e)));return this.writeQueue=s.catch(()=>{}),await s,e}async createHarnessWorkspaceWithRelease(r){let e=u.parse(r.workspace),s=v.parse(r.release);if(s.workspaceId!==e.id||e.currentChannel.release?.id!==s.harnessRelease.id||e.currentChannel.release.contentHash!==s.harnessRelease.contentHash||e.sourceRevision!==s.sourceRevision)throw new Error("Initial Harness workspace and release record are not bound to the same source and release.");await this.ready;let a=this.writeQueue.then(async()=>{await this.exec("BEGIN IMMEDIATE");try{await this.run(`INSERT INTO harness_workspaces (
6
+ id, owner_kind, owner_id, location, revision, source_revision,
7
+ channel_revision, current_release_hash, payload, created_at, updated_at
8
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`,k(e)),await this.run(`INSERT INTO harness_release_records (
9
+ content_hash, id, workspace_id, source_revision, bundle_path, payload, created_at
10
+ ) VALUES (?, ?, ?, ?, ?, ?, ?)`,[s.harnessRelease.contentHash,s.harnessRelease.id,s.workspaceId,s.sourceRevision,s.bundlePath,JSON.stringify(s),s.createdAt]),await this.exec("COMMIT")}catch(t){throw await this.exec("ROLLBACK").catch(()=>{}),t}});return this.writeQueue=a.catch(()=>{}),await a,{workspace:e,release:s}}async getHarnessWorkspace(r){return await this.ready,await this.writeQueue,this.readHarnessWorkspace(r)}async listHarnessWorkspaces(r){await this.ready,await this.writeQueue;let e=[],s=[];r?.ownerKind&&(e.push("owner_kind = ?"),s.push(r.ownerKind)),r?.ownerId&&(e.push("owner_id = ?"),s.push(r.ownerId));let a=e.length?` WHERE ${e.join(" AND ")}`:"";return(await this.all(`SELECT payload FROM harness_workspaces${a} ORDER BY updated_at DESC, id ASC`,s)).map(n=>u.parse(JSON.parse(n.payload)))}async selectHarnessWorkspace(r){await this.ready;let e=null,s=this.writeQueue.then(async()=>{if(e=await this.requireHarnessWorkspace(r.workspaceId),e.ownerScope.kind!==r.ownerKind||e.ownerScope.id!==r.ownerId)throw new Error("A Harness workspace can only be selected by its owner scope.");await this.run(`INSERT INTO harness_workspace_selections (owner_kind, owner_id, workspace_id, updated_at)
11
+ VALUES (?, ?, ?, ?)
12
+ ON CONFLICT(owner_kind, owner_id) DO UPDATE SET
13
+ workspace_id = excluded.workspace_id,
14
+ updated_at = excluded.updated_at`,[r.ownerKind,r.ownerId,r.workspaceId,r.updatedAt])});if(this.writeQueue=s.catch(()=>{}),await s,!e)throw new Error("Harness workspace selection did not produce a result.");return e}async getSelectedHarnessWorkspace(r){await this.ready,await this.writeQueue;let e=await this.get(`SELECT workspace_id FROM harness_workspace_selections
15
+ WHERE owner_kind = ? AND owner_id = ?`,[r.ownerKind,r.ownerId]);return e?this.readHarnessWorkspace(e.workspace_id):null}async updateHarnessWorkspaceSourceRevisionAtomically(r){await this.ready;let e=null,s=this.writeQueue.then(async()=>{await this.exec("BEGIN IMMEDIATE");try{let a=await this.requireHarnessWorkspace(r.workspaceId);if(a.revision!==r.expectedWorkspaceRevision||a.sourceRevision!==r.expectedSourceRevision)throw new Error("Harness workspace changed before the source revision could be recorded.");e=u.parse({...a,sourceRevision:r.nextSourceRevision,revision:a.revision+1,dirty:!0,updatedAt:r.updatedAt}),await this.updateHarnessWorkspace(e),await this.exec("COMMIT")}catch(a){throw await this.exec("ROLLBACK").catch(()=>{}),a}});if(this.writeQueue=s.catch(()=>{}),await s,!e)throw new Error("Harness source revision update did not produce a result.");return e}async saveHarnessReleaseRecord(r){let e=v.parse(r);await this.ready;let s=this.writeQueue.then(async()=>{if(!await this.readHarnessWorkspace(e.workspaceId))throw new Error(`Harness workspace ${e.workspaceId} does not exist.`);await this.run(`INSERT OR IGNORE INTO harness_release_records (
16
+ content_hash, id, workspace_id, source_revision, bundle_path, payload, created_at
17
+ ) VALUES (?, ?, ?, ?, ?, ?, ?)`,[e.harnessRelease.contentHash,e.harnessRelease.id,e.workspaceId,e.sourceRevision,e.bundlePath,JSON.stringify(e),e.createdAt]);let a=await this.readHarnessReleaseRecord(e.harnessRelease.contentHash);if(!a||JSON.stringify(g(a))!==JSON.stringify(g(e)))throw new Error("An immutable Harness release hash already has different registry content.")});return this.writeQueue=s.catch(()=>{}),await s,e}async getHarnessReleaseRecord(r){return await this.ready,await this.writeQueue,this.readHarnessReleaseRecord(r)}async listHarnessReleaseRecords(r){return await this.ready,await this.writeQueue,(await this.all(`SELECT payload FROM harness_release_records
18
+ WHERE workspace_id = ? ORDER BY created_at DESC, id ASC`,[r])).map(s=>v.parse(JSON.parse(s.payload)))}async saveHarnessImprovementArtifact(r,e,s){let a=_[e].parse(s);await this.ready;let t=this.writeQueue.then(async()=>{if(!await this.readHarnessWorkspace(r))throw new Error(`Harness workspace ${r} does not exist.`);await this.insertHarnessImprovementArtifact(r,e,a)});return this.writeQueue=t.catch(()=>{}),await t,a}async listHarnessImprovementArtifacts(r,e,s=100){await this.ready,await this.writeQueue;let a=Math.max(1,Math.min(1e3,Math.trunc(s)));return(await this.all(`SELECT payload FROM harness_improvement_artifacts
19
+ WHERE workspace_id = ? AND kind = ?
20
+ ORDER BY created_at DESC, id ASC LIMIT ?`,[r,e,a])).map(n=>_[e].parse(JSON.parse(n.payload)))}async listPendingHarnessRefinerTriggers(){return await this.ready,await this.writeQueue,(await this.all(`SELECT trigger.workspace_id, trigger.payload
21
+ FROM harness_improvement_artifacts AS trigger
22
+ WHERE trigger.kind = 'trigger_decision'
23
+ AND json_extract(trigger.payload, '$.decision') = 'queue_refiner'
24
+ AND NOT EXISTS (
25
+ SELECT 1
26
+ FROM harness_improvement_artifacts AS outcome
27
+ WHERE outcome.kind = 'refiner_outcome'
28
+ AND json_extract(outcome.payload, '$.trigger.id') = json_extract(trigger.payload, '$.id')
29
+ AND json_extract(outcome.payload, '$.trigger.contentHash') = json_extract(trigger.payload, '$.contentHash')
30
+ )
31
+ ORDER BY trigger.created_at ASC, trigger.id ASC`)).map(e=>({workspaceId:e.workspace_id,trigger:f.parse(JSON.parse(e.payload))}))}async createHarnessRunOverlay(r){let e=h.parse(r);if(e.revision!==0||e.status!=="active")throw new Error("A new Harness run overlay must be active at revision 0.");await this.ready;let s=this.writeQueue.then(async()=>{await this.exec("BEGIN IMMEDIATE");try{let a=await this.requireHarnessWorkspace(e.workspace.workspaceId);if(a.revision!==e.workspace.revision||a.sourceRevision!==e.workspace.sourceRevision||a.currentChannel.revision!==e.workspace.channelRevision)throw new Error("Harness run overlay is not bound to the exact workspace revision.");let t=await this.readHarnessReleaseRecord(e.baseHarnessRelease.contentHash);if(!t||t.harnessRelease.id!==e.baseHarnessRelease.id||t.workspaceId!==a.id)throw new Error("Harness run overlay base release is not present in the workspace registry.");let n=await this.readHarnessRunOverlay(e.runId);if(n){if(n.contentHash!==e.contentHash)throw new Error("Harness run already has a different overlay.");await this.exec("COMMIT");return}await this.run(`INSERT INTO harness_run_overlays (
32
+ run_id, overlay_id, workspace_id, revision, status, payload,
33
+ created_at, updated_at
34
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?)`,[e.runId,e.id,a.id,e.revision,e.status,JSON.stringify(e),e.createdAt,e.updatedAt]),await this.insertHarnessImprovementArtifact(a.id,"run_overlay",e),await this.exec("COMMIT")}catch(a){throw await this.exec("ROLLBACK").catch(()=>{}),a}});return this.writeQueue=s.catch(()=>{}),await s,e}async getHarnessRunOverlay(r){return await this.ready,await this.writeQueue,this.readHarnessRunOverlay(r)}async appendHarnessRunOverlayEditsAtomically(r){return this.transitionHarnessRunOverlayAtomically({runId:r.runId,expectedRevision:r.expectedRevision,operation:"append",edits:r.edits,updatedAt:r.updatedAt})}async freezeHarnessRunOverlayAtomically(r){return this.transitionHarnessRunOverlayAtomically({...r,operation:"freeze",edits:[]})}async abandonHarnessRunOverlayAtomically(r){return this.transitionHarnessRunOverlayAtomically({...r,operation:"abandon",edits:[]})}async restoreHarnessRunOverlayAtomically(r){return this.transitionHarnessRunOverlayAtomically({runId:r.runId,expectedRevision:r.expectedRevision,operation:"restore",edits:[],restoreRevision:r.restoreRevision,updatedAt:r.updatedAt})}async freezeHarnessRunOverlayWithProposalAtomically(r){await this.ready;let e=null,s=this.writeQueue.then(async()=>{await this.exec("BEGIN IMMEDIATE");try{let a=await this.readHarnessRunOverlay(r.runId);if(!a)throw new Error(`Harness run overlay ${r.runId} does not exist.`);if(a.revision!==r.expectedRevision)throw new Error(`Harness run overlay revision conflict: expected ${r.expectedRevision}, current ${a.revision}.`);if(a.status!=="active")throw new Error("Only an active Harness run overlay can accept a Refiner proposal.");let t=r.edits.map(l=>l.id).filter((l,i,I)=>I.indexOf(l)!==i);if(t.length>0)throw new Error(`Harness overlay edit ids must be unique: ${t.join(", ")}.`);let n=new Set(a.edits.map(l=>l.id)),R=r.edits.find(l=>n.has(l.id));if(R)throw new Error(`Harness overlay edit id already exists: ${R.id}.`);let{contentHash:m,...p}=a,c=E({...p,revision:a.revision+1,status:"frozen",edits:[...a.edits,...r.edits],updatedAt:r.updatedAt}),d=y.parse(r.buildProposal(c));if(d.overlay.id!==c.id||d.overlay.revision!==c.revision||d.overlay.contentHash!==c.contentHash)throw new Error("Refiner proposal is not bound to the atomically frozen overlay.");if(!A(d.baseHarnessRelease,c.baseHarnessRelease)){let l=d.metadata.rebasedFromHarnessRelease,i=await this.readHarnessWorkspace(a.workspace.workspaceId);if(!i||!$(l)||!A(l,c.baseHarnessRelease)||!i.currentChannel.release||!A(i.currentChannel.release,d.baseHarnessRelease)||d.expectedWorkspace.workspaceId!==i.id||d.expectedWorkspace.revision!==i.revision||d.expectedWorkspace.sourceRevision!==i.sourceRevision||d.expectedWorkspace.channelRevision!==i.currentChannel.revision)throw new Error("Refiner proposal base release differs from both the run overlay and the atomically verified current workspace.")}if(JSON.stringify(d.edits)!==JSON.stringify(r.edits))throw new Error("Refiner proposal edits differ from the atomically applied edits.");await this.run(`UPDATE harness_run_overlays SET
35
+ revision = ?, status = ?, payload = ?, updated_at = ?
36
+ WHERE run_id = ? AND revision = ?`,[c.revision,c.status,JSON.stringify(c),c.updatedAt,a.runId,a.revision]),await this.insertHarnessImprovementArtifact(a.workspace.workspaceId,"run_overlay",c),await this.insertHarnessImprovementArtifact(a.workspace.workspaceId,"proposal",d),await this.exec("COMMIT"),e={overlay:c,proposal:d}}catch(a){throw await this.exec("ROLLBACK").catch(()=>{}),a}});if(this.writeQueue=s.catch(()=>{}),await s,!e)throw new Error("Atomic Harness Refiner proposal did not produce a result.");return e}async advanceHarnessWorkspaceAtomically(r){await this.ready;let e=null,s=this.writeQueue.then(async()=>{await this.exec("BEGIN IMMEDIATE");try{let a=await this.readHarnessAdvanceReceipt(r.receiptId);if(a){e={workspace:await this.requireHarnessWorkspace(r.workspaceId),receipt:a},await this.exec("COMMIT");return}let t=await this.requireHarnessWorkspace(r.workspaceId),n=await this.readHarnessReleaseRecord(r.nextRelease.contentHash);if(!n||n.harnessRelease.id!==r.nextRelease.id||n.workspaceId!==r.workspaceId)throw new Error("Candidate Harness release is not present in this workspace registry.");e=D({...r,workspace:t}),e.receipt.decision==="advanced"&&await this.updateHarnessWorkspace(e.workspace),await this.insertHarnessAdvanceReceipt(e.receipt),await this.exec("COMMIT")}catch(a){throw await this.exec("ROLLBACK").catch(()=>{}),a}});if(this.writeQueue=s.catch(()=>{}),await s,!e)throw new Error("Harness workspace advancement did not produce a result.");return e}async rollbackHarnessWorkspaceAtomically(r){await this.ready;let e=null,s=this.writeQueue.then(async()=>{await this.exec("BEGIN IMMEDIATE");try{let a=await this.readHarnessAdvanceReceipt(r.receiptId);if(a){e={workspace:await this.requireHarnessWorkspace(r.workspaceId),receipt:a},await this.exec("COMMIT");return}let t=await this.requireHarnessWorkspace(r.workspaceId),n=await this.readHarnessReleaseRecord(r.targetRelease.contentHash);if(!n||n.harnessRelease.id!==r.targetRelease.id)throw new Error("Rollback target is not present in the local Harness registry.");e=Q({...r,workspace:t}),e.receipt.decision==="rolled_back"&&await this.updateHarnessWorkspace(e.workspace),await this.insertHarnessAdvanceReceipt(e.receipt),await this.exec("COMMIT")}catch(a){throw await this.exec("ROLLBACK").catch(()=>{}),a}});if(this.writeQueue=s.catch(()=>{}),await s,!e)throw new Error("Harness workspace rollback did not produce a result.");return e}async advanceReviewedHarnessWorkspaceAtomically(r){await this.ready;let e=null,s=this.writeQueue.then(async()=>{await this.exec("BEGIN IMMEDIATE");try{let a=await this.readHarnessAdvanceReceipt(r.receiptId);if(a){e={workspace:await this.requireHarnessWorkspace(r.workspaceId),receipt:a},await this.exec("COMMIT");return}let t=await this.requireHarnessWorkspace(r.workspaceId),n=await this.readHarnessReleaseRecord(r.nextRelease.contentHash);if(!n||n.harnessRelease.id!==r.nextRelease.id||n.workspaceId!==r.workspaceId)throw new Error("Reviewed Harness release is not present in this workspace registry.");e=J({...r,workspace:t}),e.receipt.decision==="advanced"&&await this.updateHarnessWorkspace(e.workspace),await this.insertHarnessAdvanceReceipt(e.receipt),await this.exec("COMMIT")}catch(a){throw await this.exec("ROLLBACK").catch(()=>{}),a}});if(this.writeQueue=s.catch(()=>{}),await s,!e)throw new Error("Reviewed Harness advancement did not produce a result.");return e}async listHarnessAdvanceReceipts(r){return await this.ready,await this.writeQueue,(await this.all(`SELECT payload FROM harness_advance_receipts
37
+ WHERE workspace_id = ? ORDER BY created_at ASC, id ASC`,[r])).map(s=>H.parse(JSON.parse(s.payload)))}async transitionHarnessRunOverlayAtomically(r){await this.ready;let e=null,s=this.writeQueue.then(async()=>{await this.exec("BEGIN IMMEDIATE");try{let a=await this.readHarnessRunOverlay(r.runId);if(!a)throw new Error(`Harness run overlay ${r.runId} does not exist.`);if(a.revision!==r.expectedRevision)throw new Error(`Harness run overlay revision conflict: expected ${r.expectedRevision}, current ${a.revision}.`);if(a.status==="abandoned")throw new Error("An abandoned Harness run overlay cannot be changed.");if(r.operation==="append"&&a.status!=="active")throw new Error("Only an active Harness run overlay accepts edits.");if(r.operation==="freeze"&&a.status!=="active")throw new Error("Only an active Harness run overlay can be frozen.");let t=r.edits.map(i=>i.id).filter((i,I,q)=>q.indexOf(i)!==I);if(t.length>0)throw new Error(`Harness overlay edit ids must be unique: ${t.join(", ")}.`);let n=new Set(a.edits.map(i=>i.id)),R=r.edits.find(i=>n.has(i.id));if(R)throw new Error(`Harness overlay edit id already exists: ${R.id}.`);let m=[...a.edits,...r.edits],p=a.status,c={...a.metadata};if(r.operation==="freeze"&&(p="frozen"),r.operation==="abandon"&&(p="abandoned"),r.operation==="restore"){if(r.restoreRevision===void 0)throw new Error("Harness overlay restore requires a source revision.");let i=await this.readHarnessRunOverlayRevision(a.id,r.restoreRevision);if(!i||i.runId!==a.runId||i.baseHarnessRelease.id!==a.baseHarnessRelease.id||i.baseHarnessRelease.contentHash!==a.baseHarnessRelease.contentHash)throw new Error("Harness overlay restore revision is unavailable or incompatible.");m=i.edits,p="active",c.restoredFromRevision=i.revision}let{contentHash:d,...l}=a;e=E({...l,revision:a.revision+1,status:p,edits:m,updatedAt:r.updatedAt,metadata:c}),await this.run(`UPDATE harness_run_overlays SET
38
+ revision = ?, status = ?, payload = ?, updated_at = ?
39
+ WHERE run_id = ? AND revision = ?`,[e.revision,e.status,JSON.stringify(e),e.updatedAt,a.runId,a.revision]),await this.insertHarnessImprovementArtifact(a.workspace.workspaceId,"run_overlay",e),await this.exec("COMMIT")}catch(a){throw await this.exec("ROLLBACK").catch(()=>{}),a}});if(this.writeQueue=s.catch(()=>{}),await s,!e)throw new Error("Harness run overlay transition did not produce a result.");return e}async readHarnessRunOverlay(r){let e=await this.get("SELECT payload FROM harness_run_overlays WHERE run_id = ?",[r]);return e?h.parse(JSON.parse(e.payload)):null}async readHarnessRunOverlayRevision(r,e){let s=await this.get(`SELECT payload FROM harness_improvement_artifacts
40
+ WHERE id = ? AND kind = 'run_overlay'
41
+ AND CAST(json_extract(payload, '$.revision') AS INTEGER) = ?
42
+ ORDER BY created_at DESC LIMIT 1`,[r,e]);return s?h.parse(JSON.parse(s.payload)):null}async insertHarnessImprovementArtifact(r,e,s){let a=JSON.stringify(s),t=await this.get("SELECT payload FROM harness_improvement_artifacts WHERE content_hash = ?",[s.contentHash]);if(t){if(t.payload!==a)throw new Error("An immutable Harness improvement artifact hash already has different content.");return}let n=await this.all(`SELECT payload FROM harness_improvement_artifacts
43
+ WHERE id = ? AND kind = ?`,[s.id,e]);if(!(e==="run_overlay"||e==="refinement_candidate")&&n.length>0)throw new Error("An immutable Harness improvement artifact id already has different content.");if(e==="run_overlay"){let m=s.revision;if(n.map(c=>h.parse(JSON.parse(c.payload))).find(c=>c.revision===m))throw new Error("A Harness run overlay revision already has different content.")}await this.run(`INSERT INTO harness_improvement_artifacts (
44
+ content_hash, id, workspace_id, kind, payload, created_at
45
+ ) VALUES (?, ?, ?, ?, ?, ?)`,[s.contentHash,s.id,r,e,a,s.createdAt])}async requireHarnessWorkspace(r){let e=await this.readHarnessWorkspace(r);if(!e)throw new Error(`Harness workspace ${r} does not exist.`);return e}async readHarnessWorkspace(r){let e=await this.get("SELECT payload FROM harness_workspaces WHERE id = ?",[r]);return e?u.parse(JSON.parse(e.payload)):null}async updateHarnessWorkspace(r){let e=u.parse(r);await this.run(`UPDATE harness_workspaces SET
46
+ owner_kind = ?, owner_id = ?, location = ?, revision = ?, source_revision = ?,
47
+ channel_revision = ?, current_release_hash = ?, payload = ?, updated_at = ?
48
+ WHERE id = ?`,[e.ownerScope.kind,e.ownerScope.id,e.location,e.revision,e.sourceRevision,e.currentChannel.revision,e.currentChannel.release?.contentHash??null,JSON.stringify(e),e.updatedAt,e.id])}async readHarnessReleaseRecord(r){let e=await this.get("SELECT payload FROM harness_release_records WHERE content_hash = ?",[r]);return e?v.parse(JSON.parse(e.payload)):null}async readHarnessAdvanceReceipt(r){let e=await this.get("SELECT payload FROM harness_advance_receipts WHERE id = ?",[r]);return e?H.parse(JSON.parse(e.payload)):null}async insertHarnessAdvanceReceipt(r){let e=H.parse(r);await this.run(`INSERT INTO harness_advance_receipts (
49
+ content_hash, id, workspace_id, decision, payload, created_at
50
+ ) VALUES (?, ?, ?, ?, ?, ?)`,[e.contentHash,e.id,e.workspaceId,e.decision,JSON.stringify(e),e.createdAt])}};function $(o){if(!o||typeof o!="object")return!1;let r=o;return typeof r.id=="string"&&typeof r.contentHash=="string"}w($,"isReleaseRef");function A(o,r){return o.id===r.id&&o.contentHash===r.contentHash}w(A,"sameReleaseRef");export{_ as a,K as b};
@@ -1,5 +1,5 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{b as Oe,c as He,e as ee,f as _e,l as Ue,m as Me,p as Ne,q as qe}from"./chunk-4CRM2ADK.js";import{j as ke,p as Ce,r as Ae}from"./chunk-C6D4WAYN.js";import{a as Q,b as Pe,h as xe}from"./chunk-5CMKGD43.js";import{I as b,M as Ee}from"./chunk-4WEUCGJ3.js";import{Bf as W,Cf as Te,Q as $,Sa as H,Ta as Re,Wa as F,Xa as N,yf as _}from"./chunk-JIMU3KDA.js";import{o as oe}from"./chunk-KD3QVRIJ.js";import{X as he,Y as ve,_ as Z,b as le,ba as we,c as ue,ea as be,fa as V,ja as Se,la as ye,ma as Ie,p as ce,r as pe,s as de,t as me,u as ge,w as fe}from"./chunk-ARQEJOEK.js";import{C as M}from"./chunk-JUJSA7KI.js";import{b as o}from"./chunk-ES2ISFJC.js";import{c as ie,d as B,f as ae,h as U}from"./chunk-H7IWJN7L.js";import{a as l}from"./chunk-FTQLQJQV.js";import{promises as re}from"node:fs";import dt from"node:os";import mt from"node:path";import{createServer as gt}from"node:http";import{randomBytes as ft}from"node:crypto";var ot=o.discriminatedUnion("op",[o.strictObject({op:o.literal("set"),path:o.array(o.string().min(1)).min(1),value:o.unknown()}),o.strictObject({op:o.literal("unset"),path:o.array(o.string().min(1)).min(1)})]),it=o.discriminatedUnion("action",[o.strictObject({action:o.literal("patch"),expectedRevision:o.string(),operations:o.array(ot).max(100)}),o.strictObject({action:o.literal("replace"),expectedRevision:o.string(),text:o.string().max(1048576)}),o.strictObject({action:o.literal("validate"),text:o.string().max(1048576)}),o.strictObject({action:o.literal("restore"),expectedRevision:o.string(),revision:o.string()}),o.strictObject({action:o.literal("trust"),root:o.string(),accountId:o.string(),trusted:o.boolean()}),o.strictObject({action:o.literal("client-state"),owner:o.string(),patch:Se,importOnly:o.boolean().optional()})]);function De(n,e){let t=null;async function r(i,a){let c=U(n).config,p=null,u=null,m=null;try{p=await ue(c),m=await V(n,{projectRoot:i,accountId:a}),i||(t=m)}catch(R){u=B(R,c)}let w=m??(i?null:t);return{path:c,text:p,rawRevision:le(p),issue:u,effective:w,usingLastValid:!m&&!!w,applies:"next_turn",recoverableRevisions:await pe(n),clientState:u?null:await ye(n)}}l(r,"status");async function s(i){let a=it.parse(i);return a.action==="validate"?{valid:!0,document:ce(a.text,U(n).config)}:(await e?.(),a.action==="patch"&&await fe(n,a.expectedRevision,a.operations),a.action==="replace"&&await de(n,a.expectedRevision,a.text),a.action==="restore"&&await me(n,a.revision,a.expectedRevision),a.action==="trust"&&await be(n,a.root,a.accountId,a.trusted),a.action==="client-state"?Ie(n,a.owner,a.patch,a.importOnly):r())}return l(s,"mutate"),{status:r,mutate:s,schema:ge}}l(De,"createConfigurationPayloads");import{Buffer as Be}from"node:buffer";var G={"Access-Control-Allow-Headers":"authorization, content-type, x-openpond-team-id, idempotency-key","Access-Control-Allow-Methods":"GET, POST, PUT, PATCH, DELETE, OPTIONS"},at=25*1024*1024,j=class extends Error{constructor(t,r,s){super(s);this.status=t;this.code=r;this.name="HttpBodyError"}status;code;static{l(this,"HttpBodyError")}};function je(n,e,t={}){for(let[s,i]of Object.entries(G))e.setHeader(s,i);let r=Ve(n.headers.origin);return r?(e.setHeader("Vary",pt(e.getHeader("Vary"))),lt(r,t)?(e.setHeader("Access-Control-Allow-Origin",r),{allowed:!0,origin:r}):{allowed:!1,origin:r}):{allowed:!0,origin:null}}l(je,"applyCorsHeaders");function lt(n,e={}){if(n==="null")return!0;let t=Fe(n);return t?ct(t)?!0:new Set((e.allowedOrigins??[]).map(s=>s?Fe(s):null).filter(s=>!!s)).has(t):!1}l(lt,"isAllowedCorsOrigin");function x(n,e,t){n.writeHead(e,{"Content-Type":"application/json",...G}),n.end(JSON.stringify(t))}l(x,"sendJson");function Kt(n,e,t){n.writeHead(e,{"Content-Type":"text/plain; charset=utf-8",...G}),n.end(t)}l(Kt,"sendText");function Yt(n,e,t,r){n.writeHead(e,{"Content-Type":r,"Content-Length":String(t.byteLength),"Cache-Control":"no-store","X-Content-Type-Options":"nosniff",...G}),n.end(t)}l(Yt,"sendBinary");async function te(n,e={}){let t=e.maxBytes??at,r=Ve(n.headers["content-type"]),s=[],i=0;for await(let c of n){let p=Be.from(c);if(i+=p.byteLength,i>t)throw new j(413,"request_body_too_large",`JSON request body exceeds ${t} bytes.`);s.push(p)}let a=Be.concat(s).toString("utf8").trim();if(!a)return{};if(!ut(r))throw new j(415,"unsupported_media_type","JSON request body requires Content-Type: application/json.");try{return JSON.parse(a)}catch{throw new j(400,"invalid_json","Request body is not valid JSON.")}}l(te,"readJson");function Le(n,e,t){let r=n.headers.authorization;return(typeof r=="string"&&r.startsWith("Bearer ")?r.slice(7):null)===t}l(Le,"hasAuth");function Ve(n){return Array.isArray(n)?n[0]??null:n??null}l(Ve,"headerValue");function ut(n){if(!n)return!1;let e=n.split(";")[0]?.trim().toLowerCase();return e==="application/json"||!!e?.endsWith("+json")}l(ut,"isJsonContentType");function Fe(n){try{let e=new URL(n);return e.protocol!=="http:"&&e.protocol!=="https:"?null:e.origin}catch{return null}}l(Fe,"normalizeOrigin");function ct(n){let e=new URL(n);return e.hostname==="localhost"||e.hostname==="127.0.0.1"||e.hostname==="::1"||e.hostname==="[::1]"}l(ct,"isLoopbackOrigin");function pt(n){let t=(Array.isArray(n)?n.join(", "):n?String(n):"").split(",").map(r=>r.trim()).filter(Boolean);return t.some(r=>r.toLowerCase()==="origin")||t.push("Origin"),t.join(", ")}l(pt,"appendVaryOrigin");function $e(n){return`<!doctype html><html lang="en"><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>OpenPond recovery</title>
2
+ import{a as Me,d as Ne,e as qe}from"./chunk-SH5CBAFC.js";import{a as te}from"./chunk-DMVD2RFZ.js";import{b as He,c as _e,h as Ue}from"./chunk-JDEEWOD7.js";import{b as ee}from"./chunk-4NESNOK5.js";import{j as Ee,p as ke,r as Ce}from"./chunk-UKMA4R6X.js";import{a as Q,b as Ae,h as Oe}from"./chunk-KG325WTN.js";import{I as b,M as Te}from"./chunk-VRIEKBBH.js";import{Ua as _,Xa as W,Ya as Pe,a as $}from"./chunk-QOTVNQDI.js";import{p as F,q as N}from"./chunk-WJ43MJ3F.js";import{h as H,i as xe}from"./chunk-Q4TBTRIG.js";import{X as ve,Y as we,_ as Z,b as ue,ba as be,c as ce,ea as Se,fa as V,ja as ye,la as Ie,ma as Re,p as pe,r as de,s as me,t as ge,u as fe,w as he}from"./chunk-I7AQMAQI.js";import{z as M}from"./chunk-Z4Z5UOZM.js";import{v as ie}from"./chunk-TVQAPBLZ.js";import{b as o}from"./chunk-ES2ISFJC.js";import{c as ae,d as B,f as le,h as U}from"./chunk-H7IWJN7L.js";import{a as l}from"./chunk-FTQLQJQV.js";import{promises as ne}from"node:fs";import dt from"node:os";import mt from"node:path";import{createServer as gt}from"node:http";import{randomBytes as ft}from"node:crypto";var ot=o.discriminatedUnion("op",[o.strictObject({op:o.literal("set"),path:o.array(o.string().min(1)).min(1),value:o.unknown()}),o.strictObject({op:o.literal("unset"),path:o.array(o.string().min(1)).min(1)})]),it=o.discriminatedUnion("action",[o.strictObject({action:o.literal("patch"),expectedRevision:o.string(),operations:o.array(ot).max(100)}),o.strictObject({action:o.literal("replace"),expectedRevision:o.string(),text:o.string().max(1048576)}),o.strictObject({action:o.literal("validate"),text:o.string().max(1048576)}),o.strictObject({action:o.literal("restore"),expectedRevision:o.string(),revision:o.string()}),o.strictObject({action:o.literal("trust"),root:o.string(),accountId:o.string(),trusted:o.boolean()}),o.strictObject({action:o.literal("client-state"),owner:o.string(),patch:ye,importOnly:o.boolean().optional()})]);function De(n,e){let t=null;async function r(i,a){let c=U(n).config,p=null,u=null,m=null;try{p=await ce(c),m=await V(n,{projectRoot:i,accountId:a}),i||(t=m)}catch(R){u=B(R,c)}let w=m??(i?null:t);return{path:c,text:p,rawRevision:ue(p),issue:u,effective:w,usingLastValid:!m&&!!w,applies:"next_turn",recoverableRevisions:await de(n),clientState:u?null:await Ie(n)}}l(r,"status");async function s(i){let a=it.parse(i);if(a.action==="validate")return{valid:!0,document:pe(a.text,U(n).config)};if(a.action==="client-state")return Re(n,a.owner,a.patch,a.importOnly);let c=l(async()=>{a.action==="patch"&&await he(n,a.expectedRevision,a.operations),a.action==="replace"&&await me(n,a.expectedRevision,a.text),a.action==="restore"&&await ge(n,a.revision,a.expectedRevision),a.action==="trust"&&await Se(n,a.root,a.accountId,a.trusted)},"mutation");return e?await e(c):await c(),r()}return l(s,"mutate"),{status:r,mutate:s,schema:fe}}l(De,"createConfigurationPayloads");import{Buffer as Be}from"node:buffer";var G={"Access-Control-Allow-Headers":"authorization, content-type, x-openpond-team-id, idempotency-key","Access-Control-Allow-Methods":"GET, POST, PUT, PATCH, DELETE, OPTIONS"},at=25*1024*1024,j=class extends Error{constructor(t,r,s){super(s);this.status=t;this.code=r;this.name="HttpBodyError"}status;code;static{l(this,"HttpBodyError")}};function je(n,e,t={}){for(let[s,i]of Object.entries(G))e.setHeader(s,i);let r=Ve(n.headers.origin);return r?(e.setHeader("Vary",pt(e.getHeader("Vary"))),lt(r,t)?(e.setHeader("Access-Control-Allow-Origin",r),{allowed:!0,origin:r}):{allowed:!1,origin:r}):{allowed:!0,origin:null}}l(je,"applyCorsHeaders");function lt(n,e={}){if(n==="null")return!0;let t=Fe(n);return t?ct(t)?!0:new Set((e.allowedOrigins??[]).map(s=>s?Fe(s):null).filter(s=>!!s)).has(t):!1}l(lt,"isAllowedCorsOrigin");function P(n,e,t){n.writeHead(e,{"Content-Type":"application/json",...G}),n.end(JSON.stringify(t))}l(P,"sendJson");function Kt(n,e,t){n.writeHead(e,{"Content-Type":"text/plain; charset=utf-8",...G}),n.end(t)}l(Kt,"sendText");function Yt(n,e,t,r){n.writeHead(e,{"Content-Type":r,"Content-Length":String(t.byteLength),"Cache-Control":"no-store","X-Content-Type-Options":"nosniff",...G}),n.end(t)}l(Yt,"sendBinary");async function re(n,e={}){let t=e.maxBytes??at,r=Ve(n.headers["content-type"]),s=[],i=0;for await(let c of n){let p=Be.from(c);if(i+=p.byteLength,i>t)throw new j(413,"request_body_too_large",`JSON request body exceeds ${t} bytes.`);s.push(p)}let a=Be.concat(s).toString("utf8").trim();if(!a)return{};if(!ut(r))throw new j(415,"unsupported_media_type","JSON request body requires Content-Type: application/json.");try{return JSON.parse(a)}catch{throw new j(400,"invalid_json","Request body is not valid JSON.")}}l(re,"readJson");function Le(n,e,t){let r=n.headers.authorization;return(typeof r=="string"&&r.startsWith("Bearer ")?r.slice(7):null)===t}l(Le,"hasAuth");function Ve(n){return Array.isArray(n)?n[0]??null:n??null}l(Ve,"headerValue");function ut(n){if(!n)return!1;let e=n.split(";")[0]?.trim().toLowerCase();return e==="application/json"||!!e?.endsWith("+json")}l(ut,"isJsonContentType");function Fe(n){try{let e=new URL(n);return e.protocol!=="http:"&&e.protocol!=="https:"?null:e.origin}catch{return null}}l(Fe,"normalizeOrigin");function ct(n){let e=new URL(n);return e.hostname==="localhost"||e.hostname==="127.0.0.1"||e.hostname==="::1"||e.hostname==="[::1]"}l(ct,"isLoopbackOrigin");function pt(n){let t=(Array.isArray(n)?n.join(", "):n?String(n):"").split(",").map(r=>r.trim()).filter(Boolean);return t.some(r=>r.toLowerCase()==="origin")||t.push("Origin"),t.join(", ")}l(pt,"appendVaryOrigin");function $e(n){return`<!doctype html><html lang="en"><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>OpenPond recovery</title>
3
3
  <style nonce="${n}">body{font:16px system-ui;background:#171819;color:#eee;max-width:850px;margin:6vh auto;padding:24px}textarea{box-sizing:border-box;width:100%;min-height:280px;background:#222;color:#eee;padding:14px;border:1px solid #777;border-radius:8px;font:14px monospace}button,input,select{font:inherit;margin:6px;padding:8px}pre{white-space:pre-wrap}code{overflow-wrap:anywhere}button{cursor:pointer}p{line-height:1.5}</style>
4
4
  <h1>OpenPond needs a storage repair</h1><p id="issue" role="alert">Loading recovery details\u2026</p><p><code id="file"></code></p>
5
5
  <p id="action"></p><p>Migration backups and the source installation remain available. Execution services are stopped while recovery is open.</p>
@@ -20,7 +20,7 @@ for(const [id,action] of [['preview','preview'],['migrate','migrate'],['restart'
20
20
  el('diagnostics').onclick=()=>{if(!state)return;const blob=new Blob([JSON.stringify({issue:state.issue,migration:state.migration,config:{path:state.config.path,rawRevision:state.config.rawRevision,issue:state.config.issue}},null,2)],{type:'application/json'});const a=document.createElement('a');a.href=URL.createObjectURL(blob);a.download='openpond-recovery-diagnostics.json';a.click();URL.revokeObjectURL(a.href)};
21
21
  el('retry').onclick=async()=>{try{await request('/v1/recovery',{action:'retry'});message('Starting OpenPond\u2026');const timer=setInterval(async()=>{try{const h=await(await fetch('/health')).json();if(!h.recovery){clearInterval(timer);const next=new URLSearchParams(location.hash.slice(1)).get('returnTo');if(next){const u=new URL(next);if(['localhost','127.0.0.1','[::1]'].includes(u.hostname)){location.replace(u.toString());return}}location.reload();}}catch{}},500)}catch(e){message(e)}};
22
22
  (async()=>{const params=new URLSearchParams(location.hash.slice(1));token=params.get('openpondToken')||'';if(!token&&window.openpond?.getConnection)token=(await window.openpond.getConnection()).token;if(!token){message('Open the authenticated recovery URL from the launcher.');return}await load()})().catch(message);
23
- </script></html>`}l($e,"startupRecoveryPage");var ht=o.strictObject({action:o.enum(["preview","migrate","restart","retry"]),sourceAppHome:o.string().optional(),sourceConfig:o.string().optional(),resolutions:he.optional()});function We(n){return n instanceof ie&&/^(PRIVATE_STORAGE_|UNSAFE_STORAGE_|INVALID_CONFIG|CONFIG_|MIGRATION_|SOURCE_CHANGED_|CREDENTIAL_|UNSUPPORTED_STORAGE_|INVALID_MIGRATION_|INVALID_ACCOUNT_|MISSING_INSTRUCTION_|INVALID_PROFILE_|DATABASE_RECOVERY_)/.test(n.issue.code)}l(We,"isRecoverableStartupError");async function Ge(n,e,t){let r=/^(UNSUPPORTED_STORAGE_|INVALID_MIGRATION_|UNSAFE_STORAGE_|PRIVATE_STORAGE_)/.test(t.issue.code),s=r?await re.mkdtemp(mt.join(dt.tmpdir(),"openpond-recovery-")):n;return Oe(s,async()=>{let{token:i,tokenFile:a}=await Ue(s),c=De(n),p=t.issue,u,m=new Promise(f=>{u=f}),w=gt((f,h)=>{(async()=>{let S=new URL(f.url??"/","http://127.0.0.1");if(!je(f,h).allowed){x(h,403,{error:"Origin not allowed"});return}if(f.method==="OPTIONS"){x(h,204,{});return}if(f.method==="GET"&&S.pathname==="/health"){x(h,200,{ok:!0,server:"openpond-app-server",version:Pe,recovery:!0});return}if(f.method==="GET"&&S.pathname==="/"){let v=ft(18).toString("base64");h.writeHead(200,{"Content-Type":"text/html; charset=utf-8","Cache-Control":"no-store","Content-Security-Policy":`default-src 'none'; script-src 'nonce-${v}'; style-src 'nonce-${v}'; connect-src 'self'; base-uri 'none'; frame-ancestors 'none'`}),h.end($e(v));return}if(!Le(f,S,i)){x(h,401,{error:"Unauthorized"});return}let P=!r;if(f.method==="GET"&&S.pathname==="/v1/recovery"){x(h,200,{issue:p,configEditable:P,config:r?{path:U(n).config,text:null,rawRevision:"unavailable",issue:p,recoverableRevisions:[]}:await c.status(),migration:await ve(n).catch(v=>({issue:B(v,n)}))});return}if(f.method==="POST"&&S.pathname==="/v1/configuration"&&P){x(h,200,await c.mutate(await te(f)));return}if(f.method==="POST"&&S.pathname==="/v1/recovery"){let v=ht.parse(await te(f));if(r&&v.action!=="retry"&&v.action!=="preview")throw t;if(v.action==="restart"){x(h,200,await we(n));return}if(v.action==="preview"||v.action==="migrate"){x(h,200,await Z(n,{sourceAppHome:v.sourceAppHome,sourceConfig:v.sourceConfig,resolutions:v.resolutions,dryRun:v.action==="preview"}));return}await Z(n),await V(n),x(h,200,{ready:!0}),u();return}x(h,503,{error:`${p.message} ${p.action}`,issue:p,recovery:!0})})().catch(S=>{p=B(S,n),x(h,422,{error:`${p.message} ${p.action}`,issue:p})})});await new Promise((f,h)=>{w.once("error",h),w.listen(e,"127.0.0.1",()=>{w.off("error",h),f()})});let R=w.address().port,C=`http://127.0.0.1:${R}`;return await He(s,C,"startup-recovery"),{url:C,port:R,token:i,tokenFile:a,storePath:U(n).database,repaired:m,close:l(async()=>{w.closeIdleConnections(),await new Promise((f,h)=>w.close(S=>S?h(S):f())),r&&await re.rm(s,{recursive:!0,force:!0})},"close")}}).catch(async i=>{throw r&&await re.rm(s,{recursive:!0,force:!0}),i})}l(Ge,"startRecoveryServer");import{createHash as _t}from"node:crypto";import{createHash as vt,randomUUID as Je}from"node:crypto";var wt=o.object({updatedAt:o.string(),id:o.string().min(1)}).strict(),bt=o.object({entries:o.array(H).max(200),nextBefore:wt.nullable()}).strict(),St=o.object({run:H,replayed:o.boolean()}).strict(),J=class{constructor(e){this.client=e}client;static{l(this,"HostedCreateImproveStorage")}async getCreateImproveRun(e){let t=await this.client.request({contractVersion:b,requestId:Je(),operation:"create-improve/execute",params:{action:"get",runId:e}});return t===null?null:H.parse(t)}async listCreateImproveRuns(e={}){let t=Math.max(1,Math.min(1e3,Math.trunc(e.limit??250))),r=Array.isArray(e.state)?[...e.state]:e.state?[e.state]:[],s=[],i=null;for(;s.length<t;){let a=bt.parse(await this.client.request({contractVersion:b,requestId:Je(),operation:"create-improve/execute",params:{action:"page",query:{profileId:e.profileId??null,targetKind:e.targetKind??null,targetId:e.targetId??null,state:r},before:i,limit:Math.min(50,t-s.length)}}));if(e.conversationId&&a.entries.some(c=>c.scope.conversationId!==e.conversationId))throw new Error("Hosted Create/Improve page crossed its conversation scope.");if(s.push(...a.entries),!a.nextBefore)break;if(a.entries.length===0||i&&(a.nextBefore.updatedAt>i.updatedAt||a.nextBefore.updatedAt===i.updatedAt&&a.nextBefore.id>=i.id))throw new Error("Hosted Create/Improve cursor did not advance.");i=a.nextBefore}return s}async upsertCreateImproveRun(e){let t=H.parse(e),r=`create-improve:${vt("sha256").update(JSON.stringify(t)).digest("hex")}`,s=await this.client.request({contractVersion:b,requestId:r,operation:"create-improve/execute",params:{action:"put",run:t}});return H.parse(o.object({run:o.unknown()}).strict().parse(s).run)}async mutateCreateImproveRun(e,t){let r=Re.parse(e),s=await this.getCreateImproveRun(r.runId);if(!s)throw new Error(`Create/Improve run not found: ${r.runId}`);if(s.appliedActionIds.includes(r.actionId))return{run:s,replayed:!0};if(s.revision!==r.expectedRevision)throw new Error(`Create/Improve run changed from revision ${r.expectedRevision} to ${s.revision}. Refresh and try again.`);let i=H.parse(t(s));if(i.id!==s.id||i.revision!==s.revision+1||!i.appliedActionIds.includes(r.actionId))throw new Error("Create/Improve mutation must preserve identity, advance one revision and record its action.");return St.parse(await this.client.request({contractVersion:b,requestId:r.actionId,operation:"create-improve/execute",params:{action:"mutate",mutation:r,next:i}}))}};import{randomUUID as It}from"node:crypto";async function L(n,e){let t=n;for(;;)try{return await e(t)}catch(r){if(!yt(r)||t<=1)throw r;t=Math.max(1,Math.floor(t/2))}}l(L,"hostedBoundedPage");function yt(n){return n instanceof Error?n.message==="Host storage response is too large."||n.message==="Host storage request failed: host_storage_response_too_large":!1}l(yt,"isOversizeResponse");var Rt=o.object({entries:o.array(o.object({sequence:o.number().int().positive(),event:$})).max(200),totalMatchingEvents:o.number().int().nonnegative(),remainingMatchingEvents:o.number().int().nonnegative()}).strict(),z=class{constructor(e){this.client=e}client;static{l(this,"HostedRuntimeEventStorage")}async runtimeEventsForSession(e,t={}){let r=t.limit==null?1e4:Math.max(0,Math.trunc(t.limit));if(r===0)return[];let s=Math.min(r,1e4),i=[],a=Math.max(0,t.afterSequence??0),c=0,p=t.names?new Set(t.names):null;for(;i.length<=s;){let u=await this.runtimeEventPageRows({sessionId:e,afterSequence:a,beforeSequence:null,limit:Math.min(200,s+1-i.length),excludeReasoningDeltas:t.excludeReasoningDeltas});for(let m of u.entries){if(m.sequence<=a)throw new Error("Host event cursor did not advance.");if(a=m.sequence,c+=1,c>1e4)throw new Error("Hosted runtime event scan exceeds 10,000 rows; use a narrower query.");(!p||p.has(m.event.name))&&i.push(m.event)}if(u.entries.length===0||u.remainingMatchingEvents<=u.entries.length)break}if(i.length>s||t.limit==null&&r===1e4&&i.length===s)throw new Error("Hosted runtime event read exceeds 10,000 rows; use a bounded cursor query.");return i}async persistedRuntimeEventsForSession(e,t={}){return this.runtimeEventsForSession(e,t)}async appendRuntimeEvent(e){let t=$.parse(e),r=await this.client.request({contractVersion:b,requestId:t.id,operation:"event/append",params:{event:t}});return o.object({event:$}).strict().parse(r).event}async runtimeEventPageRows(e){let t=Math.max(1,Math.min(1e3,Math.trunc(e.limit))),r=Math.max(0,Math.trunc(e.afterSequence)),s=e.beforeSequence,i=[],a=0,c=0;for(;i.length<t;){let p=Math.min(200,t-i.length),u=await L(p,async m=>Rt.parse(await this.client.request({contractVersion:b,requestId:`event-page:${It()}`,operation:"events/page",params:{sessionId:e.sessionId,afterSequence:r,beforeSequence:s,limit:m,...e.excludeReasoningDeltas?{excludeReasoningDeltas:!0}:{}}})));if(i.length===0&&(a=u.totalMatchingEvents,c=u.remainingMatchingEvents),i=s===null?[...i,...u.entries]:[...u.entries,...i],u.entries.length===0||u.remainingMatchingEvents<=u.entries.length)break;if(s===null){let m=u.entries.at(-1).sequence;if(m<=r)throw new Error("Host event cursor did not advance.");r=m}else{let m=u.entries[0].sequence;if(m>=s)throw new Error("Host event cursor did not advance.");s=m}}return{entries:i,totalMatchingEvents:a,remainingMatchingEvents:c}}};import{randomUUID as T}from"node:crypto";var ze=o.object({revision:o.number().int().min(1),session:F}).strict(),Ke=o.object({revision:o.number().int().min(1),turn:N}).strict(),Tt=o.object({sessions:o.array(F).max(200),nextAfterId:o.string().min(1).nullable()}).strict(),Pt=o.object({turns:o.array(N).max(200),nextBeforeSortIndex:o.number().int().nonnegative().nullable()}).strict(),K=class{constructor(e){this.client=e}client;static{l(this,"HostedSessionStorage")}async count(){let e=await this.client.request({contractVersion:b,requestId:T(),operation:"session/count",params:{}});return o.object({count:o.number().int().nonnegative()}).strict().parse(e).count}async get(e){let t=await this.client.request({contractVersion:b,requestId:T(),operation:"session/get",params:{sessionId:e}});return t===null?null:ze.parse(t)}async sessionCount(){return this.count()}async sessionShells(){let e=[],t=null;do{let r=await L(Math.min(10,1001-e.length),async s=>Tt.parse(await this.client.request({contractVersion:b,requestId:T(),operation:"session/page",params:{afterId:t,limit:s}})));if(e.push(...r.sessions),e.length>1e3)throw new Error("Hosted session list exceeds 1,000 rows; use a scoped page query.");if(r.nextAfterId!==null&&(r.sessions.length===0||t!==null&&r.nextAfterId<=t))throw new Error("Host session cursor did not advance.");t=r.nextAfterId}while(t!==null);return e}async getSession(e){return(await this.get(e))?.session??null}async insertSessionAtFront(e){await this.put({session:e,expectedRevision:null,requestId:T()})}async updateSession(e,t){let r=await this.get(e);if(!r)return null;let s=F.parse(t(r.session));if(s.id!==e)throw new Error("A session update cannot change its identity.");return(await this.put({session:s,expectedRevision:r.revision,requestId:T()})).session}async put(e){let t=F.parse(e.session);return ze.parse(await this.client.request({contractVersion:b,requestId:e.requestId,operation:"session/put",params:{sessionId:t.id,expectedRevision:e.expectedRevision,session:t}}))}async readTurn(e){let t=await this.client.request({contractVersion:b,requestId:T(),operation:"turn/get",params:{turnId:e}});return t===null?null:Ke.parse(t)}async getTurn(e){return(await this.readTurn(e))?.turn??null}async turnsForSession(e,t=50){let r=Math.max(1,Math.min(1e3,Math.trunc(t))),s=[],i=null;for(;s.length<r;){let a=await L(Math.min(200,r-s.length),async c=>Pt.parse(await this.client.request({contractVersion:b,requestId:T(),operation:"turn/page",params:{sessionId:e,beforeSortIndex:i,limit:c}})));if(s.push(...a.turns),a.nextBeforeSortIndex===null)break;if(i!==null&&a.nextBeforeSortIndex>=i)throw new Error("Host turn cursor did not advance.");i=a.nextBeforeSortIndex}return s}async countTurnsForSession(e){let t=await this.client.request({contractVersion:b,requestId:T(),operation:"turn/count",params:{sessionId:e}});return o.object({count:o.number().int().nonnegative()}).strict().parse(t).count}async hasSubagentParentWakeTurn(e,t){return await this.wakeCount(e,"messageId",t)>0}async countSubagentParentWakeTurns(e,t){return this.wakeCount(e,"fromRunId",t)}async latestAssistantTextForSession(e){let t=await this.client.request({contractVersion:b,requestId:T(),operation:"events/latestAssistantText",params:{sessionId:e}});return o.object({text:o.string().nullable()}).strict().parse(t).text}async wakeCount(e,t,r){let s=await this.client.request({contractVersion:b,requestId:T(),operation:"turn/wakeCount",params:{sessionId:e,key:t,value:r}});return o.object({count:o.number().int().nonnegative()}).strict().parse(s).count}async latestTurnForSession(e,t){let r=await this.client.request({contractVersion:b,requestId:T(),operation:"turn/latest",params:{sessionId:e,status:t??null}});return r===null?null:N.parse(r)}async latestPersistedTurnForSession(e,t){return this.latestTurnForSession(e,t)}async insertTurn(e){await this.putTurn({turn:e,expectedRevision:null,requestId:T()})}async updateTurn(e,t){let r=await this.readTurn(e);if(!r)return null;let s=N.parse(t(r.turn));if(s.id!==e||s.sessionId!==r.turn.sessionId)throw new Error("A turn update cannot change its identity.");return(await this.putTurn({turn:s,expectedRevision:r.revision,requestId:T()})).turn}async putTurn(e){let t=N.parse(e.turn);return Ke.parse(await this.client.request({contractVersion:b,requestId:e.requestId,operation:"turn/put",params:{sessionId:t.sessionId,turnId:t.id,expectedRevision:e.expectedRevision,turn:t}}))}};import{createHash as xt,randomUUID as Et}from"node:crypto";var k=o.object({ok:o.literal(!0)}).strict(),Y=o.array(_),kt=o.array(o.string()),Ct=o.object({turnId:o.string(),run:M}).strict(),At=o.object({inputs:o.array(_).max(10),hasMore:o.boolean()}).strict(),Ot=o.object({items:o.array(W).max(10),hasMore:o.boolean()}).strict(),Ht=o.object({items:o.array(o.string()).max(200),hasMore:o.boolean()}).strict();function X(n,e){return`inbox:${n}:${xt("sha256").update(JSON.stringify(e)).digest("hex")}`}l(X,"retryKey");function Ye(n){if(n.senderKind==="ponder"||n.payload.ponderDesktop!==void 0)throw new Error("A desktop Ponder operation must be admitted on its originating local installation.");return{...n,senderKind:n.senderKind}}l(Ye,"hostedInput");var q=class{constructor(e){this.client=e}client;static{l(this,"HostedTaskInboxStorage")}async call(e,t,r=Et()){let s=await this.client.request({contractVersion:b,requestId:r,operation:"task-inbox/execute",params:e});return t.parse(s)}async inputPages(e,t=Number.MAX_SAFE_INTEGER){let r=[],s=0;for(;r.length<t;){let i=await this.call(e(s),At);for(let a of i.inputs){if(a.sequence<=s)throw new Error("Host task input cursor did not advance.");if(s=a.sequence,r.push(a),r.length>=t)break}if(!i.hasMore)return r;if(i.inputs.length===0)throw new Error("Host task input page made no progress.")}return r}async recoverTaskInboxOwners(e){return this.call({action:"recoverTaskInboxOwners",ownerId:e},o.array(o.object({sessionId:o.string(),turnId:o.string()}).strict()))}async hasTaskCompletion(e){return this.call({action:"hasTaskCompletion",turnId:e},o.boolean())}async taskInboxSnapshot(e){let t=await this.call({action:"taskInboxSnapshot",sessionId:e},Te),[r,s]=await Promise.all([this.inputPages(i=>({action:"taskInboxSnapshotInputs",sessionId:e,afterSequence:i})),this.taskWaitsForSession(e)]);return{...t,inputs:r,waits:s}}async declareTaskWork(e,t,r,s){await this.call({action:"declareTaskWork",sessionId:e,turnId:t,ownerId:r,areas:s},k)}async taskWorkAreas(e){return this.call({action:"taskWorkAreas",sessionId:e},kt)}async admitTaskInput(e){return this.call({action:"admitTaskInput",input:Ye(e)},_)}async admitTaskInputs(e){return this.call({action:"admitTaskInputs",inputs:e.map(Ye)},Y)}async rejectTaskInput(e,t){await this.call({action:"rejectTaskInput",id:e,error:t},k)}async getTaskInput(e){return this.call({action:"getTaskInput",id:e},_.nullable())}async taskInputsForSession(e,t={}){let r=Math.max(1,Math.min(500,t.limit??128)),s=[],i=t.afterSequence??0;for(;s.length<r;){let a=Math.min(10,r-s.length),c=await this.call({action:"taskInputsForSession",sessionId:e,query:{afterSequence:i,pendingOnly:t.pendingOnly,limit:a}},Y);if(!c.length)break;for(let p of c){if(p.sequence<=i)throw new Error("Host task input cursor did not advance.");i=p.sequence,s.push(p)}if(c.length<a)break}return s}async mutateTaskInput(e,t,r){return this.call({action:"mutateTaskInput",sessionId:e,inputId:t,change:r},_,X("mutate",{sessionId:e,inputId:t,change:r}))}async openTaskInboxTurn(e,t,r){await this.call({action:"openTaskInboxTurn",sessionId:e,turnId:t,ownerId:r},k,X("open",{sessionId:e,turnId:t,ownerId:r}))}async renewTaskInboxTurn(e,t,r){await this.call({action:"renewTaskInboxTurn",sessionId:e,turnId:t,ownerId:r},k)}async pendingTaskInputs(e,t){return this.inputPages(r=>({action:"pendingTaskInputs",sessionId:e,turnId:t,afterSequence:r}))}async taskAssignmentInputs(e){return this.inputPages(t=>({action:"taskAssignmentInputs",turnId:e,afterSequence:t}))}async pauseTaskInboxTurn(e,t,r){await this.call({action:"pauseTaskInboxTurn",sessionId:e,turnId:t,ownerId:r},k)}async includeTaskInputs(e,t,r,s){return this.call({action:"includeTaskInputs",sessionId:e,turnId:t,ownerId:r,requestId:s},Y,X("include",{sessionId:e,turnId:t,ownerId:r,requestId:s}))}async settleTaskInputRequest(e,t){await this.call({action:"settleTaskInputRequest",requestId:e,outcome:t},k)}async sealTaskInboxTurn(e,t,r){return this.call({action:"sealTaskInboxTurn",sessionId:e,turnId:t,ownerId:r},o.boolean())}async sealNativeTaskInboxTurn(e,t,r){return this.call({action:"sealNativeTaskInboxTurn",sessionId:e,turnId:t,ownerId:r},Y)}async closeTaskInboxTurn(e,t,r,s){await this.call({action:"closeTaskInboxTurn",sessionId:e,turnId:t,ownerId:r,outcome:s},k)}async taskInboxPaused(e){return this.call({action:"taskInboxPaused",sessionId:e},o.boolean())}async reserveTaskFollowup(e,t,r){return this.call({action:"reserveTaskFollowup",sessionId:e,turnId:t,ownerId:r},_.nullable(),X("reserve",{sessionId:e,turnId:t,ownerId:r}))}async taskInboxWakeTargets(){let e=[],t="";for(;;){let r=await this.call({action:"taskInboxWakeTargets",afterSessionId:t},Ht);for(let s of r.items){if(s<=t)throw new Error("Host task wake cursor did not advance.");t=s,e.push(s)}if(!r.hasMore)return e;if(!r.items.length)throw new Error("Host task wake page made no progress.")}}async createTaskWait(e){return this.call({action:"createTaskWait",value:e},W)}async settleTaskWait(e,t){return this.call({action:"settleTaskWait",id:e,state:t},W)}async taskWaitsForSession(e){let t=[],r="";for(;;){let s=await this.call({action:"taskWaitsForSession",sessionId:e,afterId:r},Ot);for(let i of s.items){if(i.id<=r)throw new Error("Host task wait cursor did not advance.");r=i.id,t.push(i)}if(!s.hasMore)return t;if(!s.items.length)throw new Error("Host task wait page made no progress.")}}async commitSubagentCompletion(e,t){await this.call({action:"commitSubagentCompletion",value:e,turnId:t},k)}async pendingTaskCompletions(e=""){let t=[],r=e;for(;t.length<100;){let s=await this.call({action:"pendingTaskCompletions",afterTurnId:r},o.array(Ct).max(10));for(let i of s){if(i.turnId<=r)throw new Error("Host task completion cursor did not advance.");r=i.turnId,t.push(i)}if(s.length<10)break}return t}async settleTaskCompletion(e,t){await this.call({action:"settleTaskCompletion",turnId:e,inputId:t},k)}async upsertSubagentRun(e){return this.call({action:"upsertSubagentRun",value:M.parse(e)},M)}async getSubagentRun(e){return this.call({action:"getSubagentRun",id:e},M.nullable())}async listSubagentRuns(e={}){let r=[],s="",i=e.status?Array.isArray(e.status)?[...e.status]:[e.status]:null;for(;;){let a=await this.call({action:"listSubagentRuns",query:{parentSessionId:e.parentSessionId,childSessionId:e.childSessionId,status:i,afterId:s,limit:10}},o.array(M).max(10));for(let c of a){if(c.id<=s)throw new Error("Host subagent run cursor did not advance.");if(s=c.id,r.push(c),r.length>1e3)throw new Error("Hosted subagent run list exceeds 1,000 rows; use a narrower session or status query.")}if(a.length<10)break}return r.sort((a,c)=>(c.updatedAt??c.createdAt).localeCompare(a.updatedAt??a.createdAt)),e.limit===void 0?r:r.slice(0,Math.max(1,Math.min(1e3,e.limit)))}async listActiveSubagentRuns(e={}){return this.listSubagentRuns({...e,status:e.status??["queued","running","needs_resume"]})}};var ne=class extends q{static{l(this,"HostedTurnRepository")}sessions;events;approvals;usage;createImprove;constructor(e){super(e),this.sessions=new K(e),this.events=new z(e),this.approvals=new Ne(e),this.usage=new qe(e),this.createImprove=new J(e)}sessionShells(){return this.sessions.sessionShells()}sessionCount(){return this.sessions.sessionCount()}getSession(e){return this.sessions.getSession(e)}insertSessionAtFront(e){return this.sessions.insertSessionAtFront(e)}updateSession(e,t){return this.sessions.updateSession(e,t)}getTurn(e){return this.sessions.getTurn(e)}insertTurn(e){return this.sessions.insertTurn(e)}updateTurn(e,t){return this.sessions.updateTurn(e,t)}latestTurnForSession(e,t){return this.sessions.latestTurnForSession(e,t)}latestPersistedTurnForSession(e,t){return this.sessions.latestPersistedTurnForSession(e,t)}turnsForSession(e,t){return this.sessions.turnsForSession(e,t)}countTurnsForSession(e){return this.sessions.countTurnsForSession(e)}hasSubagentParentWakeTurn(e,t){return this.sessions.hasSubagentParentWakeTurn(e,t)}countSubagentParentWakeTurns(e,t){return this.sessions.countSubagentParentWakeTurns(e,t)}latestAssistantTextForSession(e){return this.sessions.latestAssistantTextForSession(e)}appendRuntimeEvent(e){return this.events.appendRuntimeEvent(e)}runtimeEventsForSession(e,t){return this.events.runtimeEventsForSession(e,t)}persistedRuntimeEventsForSession(e,t){return this.events.persistedRuntimeEventsForSession(e,t)}async runtimeEventsForTurn(e,t){let r=await this.getTurn(e);if(!r)return[];let s=(await this.events.runtimeEventsForSession(r.sessionId)).filter(i=>i.turnId===e&&(!t?.names||t.names.includes(i.name)));return t?.limit==null?s:s.slice(0,Math.max(0,t.limit))}runtimeEventPageRows(e){return this.events.runtimeEventPageRows(e)}getApproval(e){return this.approvals.getApproval(e)}async upsertApproval(e){let t=await this.approvals.readApproval(e.id);t&&JSON.stringify(t.approval)===JSON.stringify(e)||await this.approvals.putApproval({approval:e,expectedRevision:t?.revision??null,requestId:`approval:${_t("sha256").update(JSON.stringify({approval:e,revision:t?.revision??null})).digest("hex")}`})}upsertModelUsageRecord(e){return this.usage.upsertModelUsageRecord(e)}listModelUsageRecords(e){return this.usage.listModelUsageRecords(e)}getCreateImproveRun(e){return this.createImprove.getCreateImproveRun(e)}listCreateImproveRuns(e){return this.createImprove.listCreateImproveRuns(e)}upsertCreateImproveRun(e){return this.createImprove.upsertCreateImproveRun(e)}mutateCreateImproveRun(e,t){return this.createImprove.mutateCreateImproveRun(e,t)}};function Xe(n){return new ne(n)}l(Xe,"createHostedRuntimeCoreStorage");function se(n=process.env){let e=n.OPENPOND_API_KEY?.trim(),t=n.OPENPOND_OPCHAT_API_URL?.trim(),r=n.OPENPOND_HOSTED_MODEL_ID?.trim();if(!e||!t||!r)throw new Error("Hosted model stream requires a host credential, API URL, and admitted model.");let s=new URL(t);if(s.protocol!=="https:"||s.username||s.password||s.search||s.hash)throw new Error("Hosted model stream API URL is invalid.");return l(async function*(a){if(a.model!==r)throw new Error("Hosted model selection changed outside host admission.");yield*ke({...a,apiBaseUrl:s.toString(),token:e,model:r})},"streamHostedModel")}l(se,"createHostedModelStreamFromEnvironment");import{existsSync as Ut}from"node:fs";import{lstat as Mt,readFile as Nt,realpath as qt}from"node:fs/promises";import y from"node:path";import{fileURLToPath as Dt}from"node:url";var Ze=y.dirname(Dt(import.meta.url));function I(n,e,t){let r=n[e+1];if(!r||r.startsWith("--"))throw new Error(`${t} requires a value.`);return r}l(I,"requireValue");function Qe(n,e){let t=Number.parseInt(n,10);if(!Number.isFinite(t)||t<0||t>65535)throw new Error(`${e} must be a port from 0 to 65535.`);return t}l(Qe,"parsePort");function rt(n){let e="serve",t=Q,r=17874,s=null,i=!1,a=!1,c=null,p,u=!1,m,w,R,C=null,f=null,h=null,S=null,P,v="sqlite_bundle",A=0,E=n[0];if(E&&!E.startsWith("-")){if(E==="serve"||E==="server")e="serve";else if(E==="app-server")e="app-server";else if(E==="web")e="web";else{if(E==="help")return{mode:e,host:t,port:r,webRoot:s,openBrowser:i,printAccessUrl:a,storeDir:c,runtimeStorage:v,help:!0};throw new Error(`Unknown command: ${E}`)}A=1}for(let g=A;g<n.length;g+=1){let d=n[g];if(d==="--help"||d==="-h")return{mode:e,host:t,port:r,webRoot:s,openBrowser:i,printAccessUrl:a,storeDir:c,runtimeStorage:v,help:!0};if(d==="--listen"){let O=xe(I(n,g,d));t=O.host,r=Qe(String(O.port),d),g+=1}else if(d==="--hostname"||d==="--host")t=I(n,g,d),g+=1;else if(d==="--port")r=Qe(I(n,g,d),d),g+=1;else if(d==="--web-root")s=y.resolve(I(n,g,d)),g+=1;else if(d==="--source-browser-state")R=y.resolve(I(n,g,d)),g+=1;else{if(d==="--store-dir")throw new Error("--store-dir has been replaced by --home. Use --home <directory> or OPENPOND_HOME.");if(d==="--home")c=y.resolve(I(n,g,d)),g+=1;else if(d==="--hosted-cache-home")p=y.resolve(I(n,g,d)),g+=1;else if(d==="--experiment-owner")u=!0;else if(d==="--experiment-harness-package"){if(m)throw new Error("Duplicate Experiment Harness source package.");m=y.resolve(I(n,g,d)),g+=1}else if(d==="--runtime-storage"){if(I(n,g,d)!=="hosted-postgres")throw new Error("Unsupported app-server runtime storage.");v="hosted_postgres",g+=1}else if(d==="--profile-external-dataset-package"){if(w)throw new Error("Duplicate private external Dataset package.");w=y.resolve(I(n,g,d)),g+=1}else if(d==="--profile-source-root")C=y.resolve(I(n,g,d)),g+=1;else if(d==="--profile-repository-id")f=I(n,g,d),g+=1;else if(d==="--profile-id")h=I(n,g,d),g+=1;else if(d==="--profile-revision")S=I(n,g,d),g+=1;else if(d==="--hosted-profile-release"){if(P)throw new Error("Duplicate hosted Profile release descriptor.");let O=I(n,g,d);if(O.length>16e3||!/^[A-Za-z0-9_-]+$/.test(O))throw new Error("Invalid hosted Profile release descriptor.");try{P=Me.parse(JSON.parse(Buffer.from(O,"base64url").toString("utf8")))}catch{throw new Error("Invalid hosted Profile release descriptor.")}g+=1}else if(d==="--open-browser")i=!0;else if(d==="--print-access-url")a=!0;else throw new Error(`Unknown option: ${d}`)}}if(i&&a)throw new Error("--open-browser and --print-access-url cannot be used together.");if(e!=="web"&&(i||a))throw new Error("Browser options are only available in web mode.");let D=[C,f,h,S].filter(Boolean).length;if(D&&(D!==4||e!=="app-server"))throw new Error("Profile source flags require app-server mode and --profile-source-root, --profile-repository-id, --profile-id, and --profile-revision together.");if(v==="hosted_postgres"&&(e!=="app-server"||c||D))throw new Error("Hosted Postgres app-server cannot use --home or local Profile source flags.");if(P&&v!=="hosted_postgres")throw new Error("Hosted Profile release requires hosted Postgres app-server mode.");if(p&&v!=="hosted_postgres")throw new Error("Hosted cache home requires hosted Postgres mode.");if(u&&(e!=="app-server"||v!=="sqlite_bundle"||D||!c))throw new Error("Experiment owner mode requires an isolated app-server home without Profile selection.");if(m&&(!u||y.dirname(m)!==c))throw new Error("Experiment Harness source must be provisioned directly inside its isolated owner home.");return{mode:e,host:t,port:r,webRoot:s,openBrowser:i,printAccessUrl:a,storeDir:c,runtimeStorage:v,sourceBrowserState:R,...w?{profileExternalDatasetPackage:w}:{},...D?{profileSource:{repoPath:C,repositoryId:f,profileId:h,sourceRevision:S}}:{},...P?{admittedProfileRelease:P}:{},...p?{hostedCacheHome:p}:{},...u?{experimentOwner:!0}:{},...m?{experimentHarnessPackage:m}:{},help:!1}}l(rt,"parseCliArgs");function Bt(){return[process.env.OPENPOND_WEB_ROOT,y.resolve(process.cwd(),"apps/web/dist"),y.resolve(Ze,"../../web/dist"),y.resolve(process.cwd(),"web"),y.resolve(Ze,"../web")].filter(n=>!!n)}l(Bt,"defaultWebRootCandidates");function Ft(n){let e=n?[n]:Bt();for(let t of e){let r=y.resolve(t);if(Ut(y.join(r,"index.html")))return r}return null}l(Ft,"resolveWebRoot");function jt(n){let e=n==="0.0.0.0"||n==="::"?"127.0.0.1":n;return e.includes(":")&&!e.startsWith("[")?`[${e}]`:e}l(jt,"formatHostForUrl");function Lt(n){return`http://${jt(n.status.host)}:${n.status.port}`}l(Lt,"browserBaseUrl");function Vt(n,e){let t=new URL(n),r=new URLSearchParams;return r.set("openpondServerUrl",n),r.set("openpondToken",e),t.hash=r.toString(),t.toString()}l(Vt,"tokenizedWebUrl");async function et(n,e=Ae){let t=Vt(n.baseUrl,n.token);if(n.printAccessUrl)return{stdout:[`OpenPond access URL: ${t}`],stderr:[]};if(!n.openBrowser)return{stdout:[`OpenPond web UI: ${n.baseUrl}`],stderr:[]};let r=await e(t);return r.opened?{stdout:[`Opened OpenPond in your browser: ${n.baseUrl}`],stderr:[]}:{stdout:[`OpenPond access URL: ${t}`],stderr:[`Could not open the system browser: ${r.error}`]}}l(et,"resolveWebLaunchMessages");function nt(){console.log(`Usage:
23
+ </script></html>`}l($e,"startupRecoveryPage");var ht=o.strictObject({action:o.enum(["preview","migrate","restart","retry"]),sourceAppHome:o.string().optional(),sourceConfig:o.string().optional(),resolutions:ve.optional()});function We(n){return n instanceof ae&&/^(PRIVATE_STORAGE_|UNSAFE_STORAGE_|INVALID_CONFIG|CONFIG_|MIGRATION_|SOURCE_CHANGED_|CREDENTIAL_|UNSUPPORTED_STORAGE_|INVALID_MIGRATION_|INVALID_ACCOUNT_|MISSING_INSTRUCTION_|INVALID_PROFILE_|DATABASE_RECOVERY_)/.test(n.issue.code)}l(We,"isRecoverableStartupError");async function Ge(n,e,t){let r=/^(UNSUPPORTED_STORAGE_|INVALID_MIGRATION_|UNSAFE_STORAGE_|PRIVATE_STORAGE_)/.test(t.issue.code),s=r?await ne.mkdtemp(mt.join(dt.tmpdir(),"openpond-recovery-")):n;return He(s,async()=>{let{token:i,tokenFile:a}=await Ue(s),c=De(n),p=t.issue,u,m=new Promise(f=>{u=f}),w=gt((f,h)=>{(async()=>{let S=new URL(f.url??"/","http://127.0.0.1");if(!je(f,h).allowed){P(h,403,{error:"Origin not allowed"});return}if(f.method==="OPTIONS"){P(h,204,{});return}if(f.method==="GET"&&S.pathname==="/health"){P(h,200,{ok:!0,server:"openpond-app-server",version:Ae,recovery:!0});return}if(f.method==="GET"&&S.pathname==="/"){let v=ft(18).toString("base64");h.writeHead(200,{"Content-Type":"text/html; charset=utf-8","Cache-Control":"no-store","Content-Security-Policy":`default-src 'none'; script-src 'nonce-${v}'; style-src 'nonce-${v}'; connect-src 'self'; base-uri 'none'; frame-ancestors 'none'`}),h.end($e(v));return}if(!Le(f,S,i)){P(h,401,{error:"Unauthorized"});return}let x=!r;if(f.method==="GET"&&S.pathname==="/v1/recovery"){P(h,200,{issue:p,configEditable:x,config:r?{path:U(n).config,text:null,rawRevision:"unavailable",issue:p,recoverableRevisions:[]}:await c.status(),migration:await we(n).catch(v=>({issue:B(v,n)}))});return}if(f.method==="POST"&&S.pathname==="/v1/configuration"&&x){P(h,200,await c.mutate(await re(f)));return}if(f.method==="POST"&&S.pathname==="/v1/recovery"){let v=ht.parse(await re(f));if(r&&v.action!=="retry"&&v.action!=="preview")throw t;if(v.action==="restart"){P(h,200,await be(n));return}if(v.action==="preview"||v.action==="migrate"){P(h,200,await Z(n,{sourceAppHome:v.sourceAppHome,sourceConfig:v.sourceConfig,resolutions:v.resolutions,dryRun:v.action==="preview"}));return}await Z(n),await V(n),P(h,200,{ready:!0}),u();return}P(h,503,{error:`${p.message} ${p.action}`,issue:p,recovery:!0})})().catch(S=>{p=B(S,n),P(h,422,{error:`${p.message} ${p.action}`,issue:p})})});await new Promise((f,h)=>{w.once("error",h),w.listen(e,"127.0.0.1",()=>{w.off("error",h),f()})});let R=w.address().port,C=`http://127.0.0.1:${R}`;return await _e(s,C,"startup-recovery"),{url:C,port:R,token:i,tokenFile:a,storePath:U(n).database,repaired:m,close:l(async()=>{w.closeIdleConnections(),await new Promise((f,h)=>w.close(S=>S?h(S):f())),r&&await ne.rm(s,{recursive:!0,force:!0})},"close")}}).catch(async i=>{throw r&&await ne.rm(s,{recursive:!0,force:!0}),i})}l(Ge,"startRecoveryServer");import{createHash as _t}from"node:crypto";import{createHash as vt,randomUUID as Je}from"node:crypto";var wt=o.object({updatedAt:o.string(),id:o.string().min(1)}).strict(),bt=o.object({entries:o.array(H).max(200),nextBefore:wt.nullable()}).strict(),St=o.object({run:H,replayed:o.boolean()}).strict(),J=class{constructor(e){this.client=e}client;static{l(this,"HostedCreateImproveStorage")}async getCreateImproveRun(e){let t=await this.client.request({contractVersion:b,requestId:Je(),operation:"create-improve/execute",params:{action:"get",runId:e}});return t===null?null:H.parse(t)}async listCreateImproveRuns(e={}){let t=Math.max(1,Math.min(1e3,Math.trunc(e.limit??250))),r=Array.isArray(e.state)?[...e.state]:e.state?[e.state]:[],s=[],i=null;for(;s.length<t;){let a=bt.parse(await this.client.request({contractVersion:b,requestId:Je(),operation:"create-improve/execute",params:{action:"page",query:{profileId:e.profileId??null,targetKind:e.targetKind??null,targetId:e.targetId??null,state:r},before:i,limit:Math.min(50,t-s.length)}}));if(e.conversationId&&a.entries.some(c=>c.scope.conversationId!==e.conversationId))throw new Error("Hosted Create/Improve page crossed its conversation scope.");if(s.push(...a.entries),!a.nextBefore)break;if(a.entries.length===0||i&&(a.nextBefore.updatedAt>i.updatedAt||a.nextBefore.updatedAt===i.updatedAt&&a.nextBefore.id>=i.id))throw new Error("Hosted Create/Improve cursor did not advance.");i=a.nextBefore}return s}async upsertCreateImproveRun(e){let t=H.parse(e),r=`create-improve:${vt("sha256").update(JSON.stringify(t)).digest("hex")}`,s=await this.client.request({contractVersion:b,requestId:r,operation:"create-improve/execute",params:{action:"put",run:t}});return H.parse(o.object({run:o.unknown()}).strict().parse(s).run)}async mutateCreateImproveRun(e,t){let r=xe.parse(e),s=await this.getCreateImproveRun(r.runId);if(!s)throw new Error(`Create/Improve run not found: ${r.runId}`);if(s.appliedActionIds.includes(r.actionId))return{run:s,replayed:!0};if(s.revision!==r.expectedRevision)throw new Error(`Create/Improve run changed from revision ${r.expectedRevision} to ${s.revision}. Refresh and try again.`);let i=H.parse(t(s));if(i.id!==s.id||i.revision!==s.revision+1||!i.appliedActionIds.includes(r.actionId))throw new Error("Create/Improve mutation must preserve identity, advance one revision and record its action.");return St.parse(await this.client.request({contractVersion:b,requestId:r.actionId,operation:"create-improve/execute",params:{action:"mutate",mutation:r,next:i}}))}};import{randomUUID as It}from"node:crypto";async function L(n,e){let t=n;for(;;)try{return await e(t)}catch(r){if(!yt(r)||t<=1)throw r;t=Math.max(1,Math.floor(t/2))}}l(L,"hostedBoundedPage");function yt(n){return n instanceof Error?n.message==="Host storage response is too large."||n.message==="Host storage request failed: host_storage_response_too_large":!1}l(yt,"isOversizeResponse");var Rt=o.object({entries:o.array(o.object({sequence:o.number().int().positive(),event:$})).max(200),totalMatchingEvents:o.number().int().nonnegative(),remainingMatchingEvents:o.number().int().nonnegative()}).strict(),z=class{constructor(e){this.client=e}client;static{l(this,"HostedRuntimeEventStorage")}async runtimeEventsForSession(e,t={}){let r=t.limit==null?1e4:Math.max(0,Math.trunc(t.limit));if(r===0)return[];let s=Math.min(r,1e4),i=[],a=Math.max(0,t.afterSequence??0),c=0,p=t.names?new Set(t.names):null;for(;i.length<=s;){let u=await this.runtimeEventPageRows({sessionId:e,afterSequence:a,beforeSequence:null,limit:Math.min(200,s+1-i.length),excludeReasoningDeltas:t.excludeReasoningDeltas});for(let m of u.entries){if(m.sequence<=a)throw new Error("Host event cursor did not advance.");if(a=m.sequence,c+=1,c>1e4)throw new Error("Hosted runtime event scan exceeds 10,000 rows; use a narrower query.");(!p||p.has(m.event.name))&&i.push(m.event)}if(u.entries.length===0||u.remainingMatchingEvents<=u.entries.length)break}if(i.length>s||t.limit==null&&r===1e4&&i.length===s)throw new Error("Hosted runtime event read exceeds 10,000 rows; use a bounded cursor query.");return i}async persistedRuntimeEventsForSession(e,t={}){return this.runtimeEventsForSession(e,t)}async appendRuntimeEvent(e){let t=$.parse(e),r=await this.client.request({contractVersion:b,requestId:t.id,operation:"event/append",params:{event:t}});return o.object({event:$}).strict().parse(r).event}async runtimeEventPageRows(e){let t=Math.max(1,Math.min(1e3,Math.trunc(e.limit))),r=Math.max(0,Math.trunc(e.afterSequence)),s=e.beforeSequence,i=[],a=0,c=0;for(;i.length<t;){let p=Math.min(200,t-i.length),u=await L(p,async m=>Rt.parse(await this.client.request({contractVersion:b,requestId:`event-page:${It()}`,operation:"events/page",params:{sessionId:e.sessionId,afterSequence:r,beforeSequence:s,limit:m,...e.excludeReasoningDeltas?{excludeReasoningDeltas:!0}:{}}})));if(i.length===0&&(a=u.totalMatchingEvents,c=u.remainingMatchingEvents),i=s===null?[...i,...u.entries]:[...u.entries,...i],u.entries.length===0||u.remainingMatchingEvents<=u.entries.length)break;if(s===null){let m=u.entries.at(-1).sequence;if(m<=r)throw new Error("Host event cursor did not advance.");r=m}else{let m=u.entries[0].sequence;if(m>=s)throw new Error("Host event cursor did not advance.");s=m}}return{entries:i,totalMatchingEvents:a,remainingMatchingEvents:c}}};import{randomUUID as T}from"node:crypto";var ze=o.object({revision:o.number().int().min(1),session:F}).strict(),Ke=o.object({revision:o.number().int().min(1),turn:N}).strict(),Tt=o.object({sessions:o.array(F).max(200),nextAfterId:o.string().min(1).nullable()}).strict(),xt=o.object({turns:o.array(N).max(200),nextBeforeSortIndex:o.number().int().nonnegative().nullable()}).strict(),K=class{constructor(e){this.client=e}client;static{l(this,"HostedSessionStorage")}async count(){let e=await this.client.request({contractVersion:b,requestId:T(),operation:"session/count",params:{}});return o.object({count:o.number().int().nonnegative()}).strict().parse(e).count}async get(e){let t=await this.client.request({contractVersion:b,requestId:T(),operation:"session/get",params:{sessionId:e}});return t===null?null:ze.parse(t)}async sessionCount(){return this.count()}async sessionShells(){let e=[],t=null;do{let r=await L(Math.min(10,1001-e.length),async s=>Tt.parse(await this.client.request({contractVersion:b,requestId:T(),operation:"session/page",params:{afterId:t,limit:s}})));if(e.push(...r.sessions),e.length>1e3)throw new Error("Hosted session list exceeds 1,000 rows; use a scoped page query.");if(r.nextAfterId!==null&&(r.sessions.length===0||t!==null&&r.nextAfterId<=t))throw new Error("Host session cursor did not advance.");t=r.nextAfterId}while(t!==null);return e}async getSession(e){return(await this.get(e))?.session??null}async insertSessionAtFront(e){await this.put({session:e,expectedRevision:null,requestId:T()})}async updateSession(e,t){let r=await this.get(e);if(!r)return null;let s=F.parse(t(r.session));if(s.id!==e)throw new Error("A session update cannot change its identity.");return(await this.put({session:s,expectedRevision:r.revision,requestId:T()})).session}async put(e){let t=F.parse(e.session);return ze.parse(await this.client.request({contractVersion:b,requestId:e.requestId,operation:"session/put",params:{sessionId:t.id,expectedRevision:e.expectedRevision,session:t}}))}async readTurn(e){let t=await this.client.request({contractVersion:b,requestId:T(),operation:"turn/get",params:{turnId:e}});return t===null?null:Ke.parse(t)}async getTurn(e){return(await this.readTurn(e))?.turn??null}async turnsForSession(e,t=50){let r=Math.max(1,Math.min(1e3,Math.trunc(t))),s=[],i=null;for(;s.length<r;){let a=await L(Math.min(200,r-s.length),async c=>xt.parse(await this.client.request({contractVersion:b,requestId:T(),operation:"turn/page",params:{sessionId:e,beforeSortIndex:i,limit:c}})));if(s.push(...a.turns),a.nextBeforeSortIndex===null)break;if(i!==null&&a.nextBeforeSortIndex>=i)throw new Error("Host turn cursor did not advance.");i=a.nextBeforeSortIndex}return s}async countTurnsForSession(e){let t=await this.client.request({contractVersion:b,requestId:T(),operation:"turn/count",params:{sessionId:e}});return o.object({count:o.number().int().nonnegative()}).strict().parse(t).count}async hasSubagentParentWakeTurn(e,t){return await this.wakeCount(e,"messageId",t)>0}async countSubagentParentWakeTurns(e,t){return this.wakeCount(e,"fromRunId",t)}async latestAssistantTextForSession(e){let t=await this.client.request({contractVersion:b,requestId:T(),operation:"events/latestAssistantText",params:{sessionId:e}});return o.object({text:o.string().nullable()}).strict().parse(t).text}async wakeCount(e,t,r){let s=await this.client.request({contractVersion:b,requestId:T(),operation:"turn/wakeCount",params:{sessionId:e,key:t,value:r}});return o.object({count:o.number().int().nonnegative()}).strict().parse(s).count}async latestTurnForSession(e,t){let r=await this.client.request({contractVersion:b,requestId:T(),operation:"turn/latest",params:{sessionId:e,status:t??null}});return r===null?null:N.parse(r)}async latestPersistedTurnForSession(e,t){return this.latestTurnForSession(e,t)}async insertTurn(e){await this.putTurn({turn:e,expectedRevision:null,requestId:T()})}async updateTurn(e,t){let r=await this.readTurn(e);if(!r)return null;let s=N.parse(t(r.turn));if(s.id!==e||s.sessionId!==r.turn.sessionId)throw new Error("A turn update cannot change its identity.");return(await this.putTurn({turn:s,expectedRevision:r.revision,requestId:T()})).turn}async putTurn(e){let t=N.parse(e.turn);return Ke.parse(await this.client.request({contractVersion:b,requestId:e.requestId,operation:"turn/put",params:{sessionId:t.sessionId,turnId:t.id,expectedRevision:e.expectedRevision,turn:t}}))}};import{createHash as Pt,randomUUID as Et}from"node:crypto";var k=o.object({ok:o.literal(!0)}).strict(),Y=o.array(_),kt=o.array(o.string()),Ct=o.object({turnId:o.string(),run:M}).strict(),At=o.object({inputs:o.array(_).max(10),hasMore:o.boolean()}).strict(),Ot=o.object({items:o.array(W).max(10),hasMore:o.boolean()}).strict(),Ht=o.object({items:o.array(o.string()).max(200),hasMore:o.boolean()}).strict();function X(n,e){return`inbox:${n}:${Pt("sha256").update(JSON.stringify(e)).digest("hex")}`}l(X,"retryKey");function Ye(n){if(n.senderKind==="ponder"||n.payload.ponderDesktop!==void 0)throw new Error("A desktop Ponder operation must be admitted on its originating local installation.");return{...n,senderKind:n.senderKind}}l(Ye,"hostedInput");var q=class{constructor(e){this.client=e}client;static{l(this,"HostedTaskInboxStorage")}async call(e,t,r=Et()){let s=await this.client.request({contractVersion:b,requestId:r,operation:"task-inbox/execute",params:e});return t.parse(s)}async inputPages(e,t=Number.MAX_SAFE_INTEGER){let r=[],s=0;for(;r.length<t;){let i=await this.call(e(s),At);for(let a of i.inputs){if(a.sequence<=s)throw new Error("Host task input cursor did not advance.");if(s=a.sequence,r.push(a),r.length>=t)break}if(!i.hasMore)return r;if(i.inputs.length===0)throw new Error("Host task input page made no progress.")}return r}async recoverTaskInboxOwners(e){return this.call({action:"recoverTaskInboxOwners",ownerId:e},o.array(o.object({sessionId:o.string(),turnId:o.string()}).strict()))}async hasTaskCompletion(e){return this.call({action:"hasTaskCompletion",turnId:e},o.boolean())}async taskInboxSnapshot(e){let t=await this.call({action:"taskInboxSnapshot",sessionId:e},Pe),[r,s]=await Promise.all([this.inputPages(i=>({action:"taskInboxSnapshotInputs",sessionId:e,afterSequence:i})),this.taskWaitsForSession(e)]);return{...t,inputs:r,waits:s}}async declareTaskWork(e,t,r,s){await this.call({action:"declareTaskWork",sessionId:e,turnId:t,ownerId:r,areas:s},k)}async taskWorkAreas(e){return this.call({action:"taskWorkAreas",sessionId:e},kt)}async admitTaskInput(e){return this.call({action:"admitTaskInput",input:Ye(e)},_)}async admitTaskInputs(e){return this.call({action:"admitTaskInputs",inputs:e.map(Ye)},Y)}async rejectTaskInput(e,t){await this.call({action:"rejectTaskInput",id:e,error:t},k)}async getTaskInput(e){return this.call({action:"getTaskInput",id:e},_.nullable())}async taskInputsForSession(e,t={}){let r=Math.max(1,Math.min(500,t.limit??128)),s=[],i=t.afterSequence??0;for(;s.length<r;){let a=Math.min(10,r-s.length),c=await this.call({action:"taskInputsForSession",sessionId:e,query:{afterSequence:i,pendingOnly:t.pendingOnly,limit:a}},Y);if(!c.length)break;for(let p of c){if(p.sequence<=i)throw new Error("Host task input cursor did not advance.");i=p.sequence,s.push(p)}if(c.length<a)break}return s}async mutateTaskInput(e,t,r){return this.call({action:"mutateTaskInput",sessionId:e,inputId:t,change:r},_,X("mutate",{sessionId:e,inputId:t,change:r}))}async openTaskInboxTurn(e,t,r){await this.call({action:"openTaskInboxTurn",sessionId:e,turnId:t,ownerId:r},k,X("open",{sessionId:e,turnId:t,ownerId:r}))}async renewTaskInboxTurn(e,t,r){await this.call({action:"renewTaskInboxTurn",sessionId:e,turnId:t,ownerId:r},k)}async pendingTaskInputs(e,t){return this.inputPages(r=>({action:"pendingTaskInputs",sessionId:e,turnId:t,afterSequence:r}))}async taskAssignmentInputs(e){return this.inputPages(t=>({action:"taskAssignmentInputs",turnId:e,afterSequence:t}))}async pauseTaskInboxTurn(e,t,r){await this.call({action:"pauseTaskInboxTurn",sessionId:e,turnId:t,ownerId:r},k)}async includeTaskInputs(e,t,r,s){return this.call({action:"includeTaskInputs",sessionId:e,turnId:t,ownerId:r,requestId:s},Y,X("include",{sessionId:e,turnId:t,ownerId:r,requestId:s}))}async settleTaskInputRequest(e,t){await this.call({action:"settleTaskInputRequest",requestId:e,outcome:t},k)}async sealTaskInboxTurn(e,t,r){return this.call({action:"sealTaskInboxTurn",sessionId:e,turnId:t,ownerId:r},o.boolean())}async sealNativeTaskInboxTurn(e,t,r){return this.call({action:"sealNativeTaskInboxTurn",sessionId:e,turnId:t,ownerId:r},Y)}async closeTaskInboxTurn(e,t,r,s){await this.call({action:"closeTaskInboxTurn",sessionId:e,turnId:t,ownerId:r,outcome:s},k)}async taskInboxPaused(e){return this.call({action:"taskInboxPaused",sessionId:e},o.boolean())}async reserveTaskFollowup(e,t,r){return this.call({action:"reserveTaskFollowup",sessionId:e,turnId:t,ownerId:r},_.nullable(),X("reserve",{sessionId:e,turnId:t,ownerId:r}))}async taskInboxWakeTargets(){let e=[],t="";for(;;){let r=await this.call({action:"taskInboxWakeTargets",afterSessionId:t},Ht);for(let s of r.items){if(s<=t)throw new Error("Host task wake cursor did not advance.");t=s,e.push(s)}if(!r.hasMore)return e;if(!r.items.length)throw new Error("Host task wake page made no progress.")}}async createTaskWait(e){return this.call({action:"createTaskWait",value:e},W)}async settleTaskWait(e,t){return this.call({action:"settleTaskWait",id:e,state:t},W)}async taskWaitsForSession(e){let t=[],r="";for(;;){let s=await this.call({action:"taskWaitsForSession",sessionId:e,afterId:r},Ot);for(let i of s.items){if(i.id<=r)throw new Error("Host task wait cursor did not advance.");r=i.id,t.push(i)}if(!s.hasMore)return t;if(!s.items.length)throw new Error("Host task wait page made no progress.")}}async commitSubagentCompletion(e,t){await this.call({action:"commitSubagentCompletion",value:e,turnId:t},k)}async pendingTaskCompletions(e=""){let t=[],r=e;for(;t.length<100;){let s=await this.call({action:"pendingTaskCompletions",afterTurnId:r},o.array(Ct).max(10));for(let i of s){if(i.turnId<=r)throw new Error("Host task completion cursor did not advance.");r=i.turnId,t.push(i)}if(s.length<10)break}return t}async settleTaskCompletion(e,t){await this.call({action:"settleTaskCompletion",turnId:e,inputId:t},k)}async upsertSubagentRun(e){return this.call({action:"upsertSubagentRun",value:M.parse(e)},M)}async getSubagentRun(e){return this.call({action:"getSubagentRun",id:e},M.nullable())}async listSubagentRuns(e={}){let r=[],s="",i=e.status?Array.isArray(e.status)?[...e.status]:[e.status]:null;for(;;){let a=await this.call({action:"listSubagentRuns",query:{parentSessionId:e.parentSessionId,childSessionId:e.childSessionId,status:i,afterId:s,limit:10}},o.array(M).max(10));for(let c of a){if(c.id<=s)throw new Error("Host subagent run cursor did not advance.");if(s=c.id,r.push(c),r.length>1e3)throw new Error("Hosted subagent run list exceeds 1,000 rows; use a narrower session or status query.")}if(a.length<10)break}return r.sort((a,c)=>(c.updatedAt??c.createdAt).localeCompare(a.updatedAt??a.createdAt)),e.limit===void 0?r:r.slice(0,Math.max(1,Math.min(1e3,e.limit)))}async listActiveSubagentRuns(e={}){return this.listSubagentRuns({...e,status:e.status??["queued","running","needs_resume"]})}};var se=class extends q{static{l(this,"HostedTurnRepository")}sessions;events;approvals;usage;createImprove;constructor(e){super(e),this.sessions=new K(e),this.events=new z(e),this.approvals=new Ne(e),this.usage=new qe(e),this.createImprove=new J(e)}sessionShells(){return this.sessions.sessionShells()}sessionCount(){return this.sessions.sessionCount()}getSession(e){return this.sessions.getSession(e)}insertSessionAtFront(e){return this.sessions.insertSessionAtFront(e)}updateSession(e,t){return this.sessions.updateSession(e,t)}getTurn(e){return this.sessions.getTurn(e)}insertTurn(e){return this.sessions.insertTurn(e)}updateTurn(e,t){return this.sessions.updateTurn(e,t)}latestTurnForSession(e,t){return this.sessions.latestTurnForSession(e,t)}latestPersistedTurnForSession(e,t){return this.sessions.latestPersistedTurnForSession(e,t)}turnsForSession(e,t){return this.sessions.turnsForSession(e,t)}countTurnsForSession(e){return this.sessions.countTurnsForSession(e)}hasSubagentParentWakeTurn(e,t){return this.sessions.hasSubagentParentWakeTurn(e,t)}countSubagentParentWakeTurns(e,t){return this.sessions.countSubagentParentWakeTurns(e,t)}latestAssistantTextForSession(e){return this.sessions.latestAssistantTextForSession(e)}appendRuntimeEvent(e){return this.events.appendRuntimeEvent(e)}runtimeEventsForSession(e,t){return this.events.runtimeEventsForSession(e,t)}persistedRuntimeEventsForSession(e,t){return this.events.persistedRuntimeEventsForSession(e,t)}async runtimeEventsForTurn(e,t){let r=await this.getTurn(e);if(!r)return[];let s=(await this.events.runtimeEventsForSession(r.sessionId)).filter(i=>i.turnId===e&&(!t?.names||t.names.includes(i.name)));return t?.limit==null?s:s.slice(0,Math.max(0,t.limit))}runtimeEventPageRows(e){return this.events.runtimeEventPageRows(e)}getApproval(e){return this.approvals.getApproval(e)}async upsertApproval(e){let t=await this.approvals.readApproval(e.id);t&&JSON.stringify(t.approval)===JSON.stringify(e)||await this.approvals.putApproval({approval:e,expectedRevision:t?.revision??null,requestId:`approval:${_t("sha256").update(JSON.stringify({approval:e,revision:t?.revision??null})).digest("hex")}`})}upsertModelUsageRecord(e){return this.usage.upsertModelUsageRecord(e)}listModelUsageRecords(e){return this.usage.listModelUsageRecords(e)}getCreateImproveRun(e){return this.createImprove.getCreateImproveRun(e)}listCreateImproveRuns(e){return this.createImprove.listCreateImproveRuns(e)}upsertCreateImproveRun(e){return this.createImprove.upsertCreateImproveRun(e)}mutateCreateImproveRun(e,t){return this.createImprove.mutateCreateImproveRun(e,t)}};function Xe(n){return new se(n)}l(Xe,"createHostedRuntimeCoreStorage");function oe(n=process.env){let e=n.OPENPOND_API_KEY?.trim(),t=n.OPENPOND_OPCHAT_API_URL?.trim(),r=n.OPENPOND_HOSTED_MODEL_ID?.trim();if(!e||!t||!r)throw new Error("Hosted model stream requires a host credential, API URL, and admitted model.");let s=new URL(t);if(s.protocol!=="https:"||s.username||s.password||s.search||s.hash)throw new Error("Hosted model stream API URL is invalid.");return l(async function*(a){if(a.model!==r)throw new Error("Hosted model selection changed outside host admission.");yield*Ee({...a,apiBaseUrl:s.toString(),token:e,model:r})},"streamHostedModel")}l(oe,"createHostedModelStreamFromEnvironment");import{existsSync as Ut}from"node:fs";import{lstat as Mt,readFile as Nt,realpath as qt}from"node:fs/promises";import y from"node:path";import{fileURLToPath as Dt}from"node:url";var Ze=y.dirname(Dt(import.meta.url));function I(n,e,t){let r=n[e+1];if(!r||r.startsWith("--"))throw new Error(`${t} requires a value.`);return r}l(I,"requireValue");function Qe(n,e){let t=Number.parseInt(n,10);if(!Number.isFinite(t)||t<0||t>65535)throw new Error(`${e} must be a port from 0 to 65535.`);return t}l(Qe,"parsePort");function rt(n){let e="serve",t=Q,r=17874,s=null,i=!1,a=!1,c=null,p,u=!1,m,w,R,C=null,f=null,h=null,S=null,x,v="sqlite_bundle",A=0,E=n[0];if(E&&!E.startsWith("-")){if(E==="serve"||E==="server")e="serve";else if(E==="app-server")e="app-server";else if(E==="web")e="web";else{if(E==="help")return{mode:e,host:t,port:r,webRoot:s,openBrowser:i,printAccessUrl:a,storeDir:c,runtimeStorage:v,help:!0};throw new Error(`Unknown command: ${E}`)}A=1}for(let g=A;g<n.length;g+=1){let d=n[g];if(d==="--help"||d==="-h")return{mode:e,host:t,port:r,webRoot:s,openBrowser:i,printAccessUrl:a,storeDir:c,runtimeStorage:v,help:!0};if(d==="--listen"){let O=Oe(I(n,g,d));t=O.host,r=Qe(String(O.port),d),g+=1}else if(d==="--hostname"||d==="--host")t=I(n,g,d),g+=1;else if(d==="--port")r=Qe(I(n,g,d),d),g+=1;else if(d==="--web-root")s=y.resolve(I(n,g,d)),g+=1;else if(d==="--source-browser-state")R=y.resolve(I(n,g,d)),g+=1;else{if(d==="--store-dir")throw new Error("--store-dir has been replaced by --home. Use --home <directory> or OPENPOND_HOME.");if(d==="--home")c=y.resolve(I(n,g,d)),g+=1;else if(d==="--hosted-cache-home")p=y.resolve(I(n,g,d)),g+=1;else if(d==="--experiment-owner")u=!0;else if(d==="--experiment-harness-package"){if(m)throw new Error("Duplicate Experiment Harness source package.");m=y.resolve(I(n,g,d)),g+=1}else if(d==="--runtime-storage"){if(I(n,g,d)!=="hosted-postgres")throw new Error("Unsupported app-server runtime storage.");v="hosted_postgres",g+=1}else if(d==="--profile-external-dataset-package"){if(w)throw new Error("Duplicate private external Dataset package.");w=y.resolve(I(n,g,d)),g+=1}else if(d==="--profile-source-root")C=y.resolve(I(n,g,d)),g+=1;else if(d==="--profile-repository-id")f=I(n,g,d),g+=1;else if(d==="--profile-id")h=I(n,g,d),g+=1;else if(d==="--profile-revision")S=I(n,g,d),g+=1;else if(d==="--hosted-profile-release"){if(x)throw new Error("Duplicate hosted Profile release descriptor.");let O=I(n,g,d);if(O.length>16e3||!/^[A-Za-z0-9_-]+$/.test(O))throw new Error("Invalid hosted Profile release descriptor.");try{x=Me.parse(JSON.parse(Buffer.from(O,"base64url").toString("utf8")))}catch{throw new Error("Invalid hosted Profile release descriptor.")}g+=1}else if(d==="--open-browser")i=!0;else if(d==="--print-access-url")a=!0;else throw new Error(`Unknown option: ${d}`)}}if(i&&a)throw new Error("--open-browser and --print-access-url cannot be used together.");if(e!=="web"&&(i||a))throw new Error("Browser options are only available in web mode.");let D=[C,f,h,S].filter(Boolean).length;if(D&&(D!==4||e!=="app-server"))throw new Error("Profile source flags require app-server mode and --profile-source-root, --profile-repository-id, --profile-id, and --profile-revision together.");if(v==="hosted_postgres"&&(e!=="app-server"||c||D))throw new Error("Hosted Postgres app-server cannot use --home or local Profile source flags.");if(x&&v!=="hosted_postgres")throw new Error("Hosted Profile release requires hosted Postgres app-server mode.");if(p&&v!=="hosted_postgres")throw new Error("Hosted cache home requires hosted Postgres mode.");if(u&&(e!=="app-server"||v!=="sqlite_bundle"||D||!c))throw new Error("Experiment owner mode requires an isolated app-server home without Profile selection.");if(m&&(!u||y.dirname(m)!==c))throw new Error("Experiment Harness source must be provisioned directly inside its isolated owner home.");return{mode:e,host:t,port:r,webRoot:s,openBrowser:i,printAccessUrl:a,storeDir:c,runtimeStorage:v,sourceBrowserState:R,...w?{profileExternalDatasetPackage:w}:{},...D?{profileSource:{repoPath:C,repositoryId:f,profileId:h,sourceRevision:S}}:{},...x?{admittedProfileRelease:x}:{},...p?{hostedCacheHome:p}:{},...u?{experimentOwner:!0}:{},...m?{experimentHarnessPackage:m}:{},help:!1}}l(rt,"parseCliArgs");function Bt(){return[process.env.OPENPOND_WEB_ROOT,y.resolve(process.cwd(),"apps/web/dist"),y.resolve(Ze,"../../web/dist"),y.resolve(process.cwd(),"web"),y.resolve(Ze,"../web")].filter(n=>!!n)}l(Bt,"defaultWebRootCandidates");function Ft(n){let e=n?[n]:Bt();for(let t of e){let r=y.resolve(t);if(Ut(y.join(r,"index.html")))return r}return null}l(Ft,"resolveWebRoot");function jt(n){let e=n==="0.0.0.0"||n==="::"?"127.0.0.1":n;return e.includes(":")&&!e.startsWith("[")?`[${e}]`:e}l(jt,"formatHostForUrl");function Lt(n){return`http://${jt(n.status.host)}:${n.status.port}`}l(Lt,"browserBaseUrl");function Vt(n,e){let t=new URL(n),r=new URLSearchParams;return r.set("openpondServerUrl",n),r.set("openpondToken",e),t.hash=r.toString(),t.toString()}l(Vt,"tokenizedWebUrl");async function et(n,e=Ce){let t=Vt(n.baseUrl,n.token);if(n.printAccessUrl)return{stdout:[`OpenPond access URL: ${t}`],stderr:[]};if(!n.openBrowser)return{stdout:[`OpenPond web UI: ${n.baseUrl}`],stderr:[]};let r=await e(t);return r.opened?{stdout:[`Opened OpenPond in your browser: ${n.baseUrl}`],stderr:[]}:{stdout:[`OpenPond access URL: ${t}`],stderr:[`Could not open the system browser: ${r.error}`]}}l(et,"resolveWebLaunchMessages");function nt(){console.log(`Usage:
24
24
  openpond-app-server serve [--hostname HOST] [--port PORT]
25
25
  openpond-app-server app-server [--home DIR]
26
26
  openpond-app-server web [--hostname HOST] [--port PORT] [--web-root DIR]
@@ -39,4 +39,4 @@ Options:
39
39
  --profile-revision REV Accepted immutable source revision
40
40
  --open-browser Open the authenticated web URL in the system browser
41
41
  --print-access-url Print the authenticated URL instead of opening it
42
- `)}l(nt,"printHelp");async function bn(n){let e=rt(process.argv.slice(2));if(e.help){nt();return}let t=e.mode==="web"?Ft(e.webRoot):null;if(e.mode==="web"&&!t)throw new Error("Could not find a built OpenPond web UI. Run `pnpm build:web` or pass --web-root.");if(e.mode==="app-server"){await st(n.createOpenPondAppServer,e.storeDir,e.profileSource,e.runtimeStorage,e.admittedProfileRelease,e.hostedCacheHome,e.experimentOwner,e.experimentHarnessPackage,e.profileExternalDatasetPackage);return}e.storeDir&&(process.env.OPENPOND_HOME=e.storeDir);let r,s=e.port;for(;;)try{r=await n.createOpenPondServer({host:e.host,port:s,webRoot:t,sourceBrowserState:e.sourceBrowserState,...e.storeDir?{storeDir:e.storeDir}:{},httpEnabled:!0});break}catch(p){if(!We(p))throw p;let u=await Ge(ae({home:e.storeDir??void 0}),s,p);s=u.port,console.log(`OPENPOND_APP_SERVER_READY ${JSON.stringify({mode:"recovery",url:u.url,tokenFile:u.tokenFile,storePath:u.storePath})}`),console.error(`${p.issue.code}: ${p.issue.message} ${p.issue.action}`);let m=await et({baseUrl:u.url,openBrowser:e.openBrowser,printAccessUrl:e.printAccessUrl,token:u.token});for(let R of m.stdout)console.log(R);for(let R of m.stderr)console.error(R);let w=l(()=>{u.close().finally(()=>process.exit(0))},"close");process.once("SIGINT",w),process.once("SIGTERM",w);try{await u.repaired}finally{process.off("SIGINT",w),process.off("SIGTERM",w),await u.close()}}let i=e.mode==="web"?Lt(r):null;if(console.log(`OPENPOND_APP_SERVER_READY ${JSON.stringify({mode:e.mode,url:r.url,webUrl:null,webRoot:t,tokenFile:r.tokenFile,storePath:r.storePath,runtime:Ce()})}`),i){let p=await et({baseUrl:i,openBrowser:e.openBrowser,printAccessUrl:e.printAccessUrl,token:r.token});for(let u of p.stderr)console.error(u);for(let u of p.stdout)console.log(u)}else console.log(`OpenPond API server: ${r.url}`);let a=!1,c=l(async()=>{a||(a=!0,await r.close(),process.exit(0))},"shutdown");process.on("SIGINT",()=>{c()}),process.on("SIGTERM",()=>{c()}),await new Promise(()=>{})}l(bn,"runOpenPondServerCli");async function Sn(n){let e=process.argv.slice(2),t=rt(!e[0]||e[0].startsWith("-")?["app-server",...e]:e);if(t.help){nt();return}if(t.mode!=="app-server")throw new Error("The app-server entrypoint only accepts the app-server command.");await st(n,t.storeDir,t.profileSource,t.runtimeStorage,t.admittedProfileRelease,t.hostedCacheHome,t.experimentOwner,t.experimentHarnessPackage,t.profileExternalDatasetPackage)}l(Sn,"runOpenPondAppServerCli");async function st(n,e,t,r="sqlite_bundle",s,i,a=!1,c,p){let u=new Ee;if(r==="hosted_postgres"){if(e||t)throw new Error("Hosted Postgres app-server cannot use local storage sources.");await ee({appServer:l(()=>n({...i?{storeDir:i}:{},hostStorageClient:u,runtimeStorage:{kind:"hosted_postgres",client:u,core:Xe(u),inbox:new q(u),...s?{admittedProfileRelease:s}:{}},streamOpenPondHostedChatTurn:se()}),"appServer"),readable:process.stdin,writable:process.stdout,hostStorageClient:u});return}e&&(process.env.OPENPOND_HOME=e);let m;if(c){if(!a||!e||y.dirname(c)!==e||await qt(c)!==c)throw new Error("Experiment Harness source escaped its isolated owner home.");let f=await Mt(c);if(!f.isFile()||f.size>67108864)throw new Error("Experiment Harness source package is not a bounded regular file.");m={ownerId:"host-experiment-case",sourcePackage:oe(JSON.parse(new TextDecoder("utf-8",{fatal:!0}).decode(await Nt(c))))}}let w=p?await(e&&t&&!a?_e(p,e):Promise.reject(new Error("External Dataset bootstrap requires a private explicit Profile owner."))):void 0,R=w?se():void 0,C=await n({...e?{storeDir:e}:{},...t?{profileSource:t}:{},...w?{profileExternalDataset:w,profileExternalDatasetClient:u,streamOpenPondHostedChatTurn:l(async function*(f){let h=l(async()=>{await u.request({contractVersion:1,requestId:crypto.randomUUID(),operation:"profile.externalDataset.authorize",params:{bindingHash:w.binding.contentHash}})},"fence");await h();let S=new AbortController,P=!1,v=setInterval(()=>{P||S.signal.aborted||(P=!0,h().catch(A=>S.abort(A)).finally(()=>{P=!1}))},2e3);try{let A=AbortSignal.any([...f.signal?[f.signal]:[],S.signal]);A.throwIfAborted();for await(let E of R({...f,signal:A}))await h(),A.throwIfAborted(),yield E}finally{clearInterval(v),S.abort()}},"streamOpenPondHostedChatTurn"),services:{webSearch:!1,scheduling:!1,connectedApps:!1,tasksets:!1,projectActions:!1,profileActions:!1,backgroundReview:!1}}:{},...m?{experimentHarnessSource:m}:{},...a?{experimentPolicyClient:u,services:{webSearch:!1,scheduling:!1,connectedApps:!1,tasksets:!1,projectActions:!1,profileActions:!1,backgroundReview:!1}}:{},hostStorageClient:u});await ee({appServer:C,readable:process.stdin,writable:process.stdout,hostStorageClient:u})}l(st,"runAgentServer");export{De as a,j as b,je as c,x as d,Kt as e,Yt as f,te as g,Le as h,et as i,bn as j,Sn as k};
42
+ `)}l(nt,"printHelp");async function bn(n){let e=rt(process.argv.slice(2));if(e.help){nt();return}let t=e.mode==="web"?Ft(e.webRoot):null;if(e.mode==="web"&&!t)throw new Error("Could not find a built OpenPond web UI. Run `pnpm build:web` or pass --web-root.");if(e.mode==="app-server"){await st(n.createOpenPondAppServer,e.storeDir,e.profileSource,e.runtimeStorage,e.admittedProfileRelease,e.hostedCacheHome,e.experimentOwner,e.experimentHarnessPackage,e.profileExternalDatasetPackage);return}e.storeDir&&(process.env.OPENPOND_HOME=e.storeDir);let r,s=e.port;for(;;)try{r=await n.createOpenPondServer({host:e.host,port:s,webRoot:t,sourceBrowserState:e.sourceBrowserState,...e.storeDir?{storeDir:e.storeDir}:{},httpEnabled:!0});break}catch(p){if(!We(p))throw p;let u=await Ge(le({home:e.storeDir??void 0}),s,p);s=u.port,console.log(`OPENPOND_APP_SERVER_READY ${JSON.stringify({mode:"recovery",url:u.url,tokenFile:u.tokenFile,storePath:u.storePath})}`),console.error(`${p.issue.code}: ${p.issue.message} ${p.issue.action}`);let m=await et({baseUrl:u.url,openBrowser:e.openBrowser,printAccessUrl:e.printAccessUrl,token:u.token});for(let R of m.stdout)console.log(R);for(let R of m.stderr)console.error(R);let w=l(()=>{u.close().finally(()=>process.exit(0))},"close");process.once("SIGINT",w),process.once("SIGTERM",w);try{await u.repaired}finally{process.off("SIGINT",w),process.off("SIGTERM",w),await u.close()}}let i=e.mode==="web"?Lt(r):null;if(console.log(`OPENPOND_APP_SERVER_READY ${JSON.stringify({mode:e.mode,url:r.url,webUrl:null,webRoot:t,tokenFile:r.tokenFile,storePath:r.storePath,runtime:ke()})}`),i){let p=await et({baseUrl:i,openBrowser:e.openBrowser,printAccessUrl:e.printAccessUrl,token:r.token});for(let u of p.stderr)console.error(u);for(let u of p.stdout)console.log(u)}else console.log(`OpenPond API server: ${r.url}`);let a=!1,c=l(async()=>{a||(a=!0,await r.close(),process.exit(0))},"shutdown");process.on("SIGINT",()=>{c()}),process.on("SIGTERM",()=>{c()}),await new Promise(()=>{})}l(bn,"runOpenPondServerCli");async function Sn(n){let e=process.argv.slice(2),t=rt(!e[0]||e[0].startsWith("-")?["app-server",...e]:e);if(t.help){nt();return}if(t.mode!=="app-server")throw new Error("The app-server entrypoint only accepts the app-server command.");await st(n,t.storeDir,t.profileSource,t.runtimeStorage,t.admittedProfileRelease,t.hostedCacheHome,t.experimentOwner,t.experimentHarnessPackage,t.profileExternalDatasetPackage)}l(Sn,"runOpenPondAppServerCli");async function st(n,e,t,r="sqlite_bundle",s,i,a=!1,c,p){let u=new Te;if(r==="hosted_postgres"){if(e||t)throw new Error("Hosted Postgres app-server cannot use local storage sources.");let f=p?await(i&&s?.hostExecution&&!a?te(p,i):Promise.reject(new Error("External Dataset requires its private hosted evaluation owner."))):void 0;await ee({appServer:l(()=>n({...i?{storeDir:i}:{},hostStorageClient:u,...f?{profileExternalDataset:f}:{},runtimeStorage:{kind:"hosted_postgres",client:u,core:Xe(u),inbox:new q(u),...s?{admittedProfileRelease:s}:{}},streamOpenPondHostedChatTurn:oe()}),"appServer"),readable:process.stdin,writable:process.stdout,hostStorageClient:u});return}e&&(process.env.OPENPOND_HOME=e);let m;if(c){if(!a||!e||y.dirname(c)!==e||await qt(c)!==c)throw new Error("Experiment Harness source escaped its isolated owner home.");let f=await Mt(c);if(!f.isFile()||f.size>67108864)throw new Error("Experiment Harness source package is not a bounded regular file.");m={ownerId:"host-experiment-case",sourcePackage:ie(JSON.parse(new TextDecoder("utf-8",{fatal:!0}).decode(await Nt(c))))}}let w=p?await(e&&t&&!a?te(p,e):Promise.reject(new Error("External Dataset bootstrap requires a private explicit Profile owner."))):void 0,R=w?oe():void 0,C=await n({...e?{storeDir:e}:{},...t?{profileSource:t}:{},...w?{profileExternalDataset:w,profileExternalDatasetClient:u,streamOpenPondHostedChatTurn:l(async function*(f){let h=l(async()=>{await u.request({contractVersion:1,requestId:crypto.randomUUID(),operation:"profile.externalDataset.authorize",params:{bindingHash:w.binding.contentHash}})},"fence");await h();let S=new AbortController,x=!1,v=setInterval(()=>{x||S.signal.aborted||(x=!0,h().catch(A=>S.abort(A)).finally(()=>{x=!1}))},2e3);try{let A=AbortSignal.any([...f.signal?[f.signal]:[],S.signal]);A.throwIfAborted();for await(let E of R({...f,signal:A}))await h(),A.throwIfAborted(),yield E}finally{clearInterval(v),S.abort()}},"streamOpenPondHostedChatTurn"),services:{webSearch:!1,scheduling:!1,connectedApps:!1,tasksets:!1,projectActions:!1,profileActions:!1,backgroundReview:!1}}:{},...m?{experimentHarnessSource:m}:{},...a?{experimentPolicyClient:u,services:{webSearch:!1,scheduling:!1,connectedApps:!1,tasksets:!1,projectActions:!1,profileActions:!1,backgroundReview:!1}}:{},hostStorageClient:u});await ee({appServer:C,readable:process.stdin,writable:process.stdout,hostStorageClient:u})}l(st,"runAgentServer");export{De as a,j as b,je as c,P as d,Kt as e,Yt as f,re as g,Le as h,et as i,bn as j,Sn as k};