openpond 0.2.61 → 0.2.62

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 (420) hide show
  1. package/dist/app-server.d.ts +3264 -18
  2. package/dist/app-server.js +1 -1
  3. package/dist/chunks/{acp-FUAWCKBH.js → acp-DYRBDJRU.js} +1 -1
  4. package/dist/chunks/{acp-agent-XBSJ27KI.js → acp-agent-UTLP7C3I.js} +1 -1
  5. package/dist/chunks/{actions-command-LOHNQUWP.js → actions-command-6LF4Z4WK.js} +1 -1
  6. package/dist/chunks/{app-layer-4BFMOMKM.js → app-layer-N2H3RBEN.js} +1 -1
  7. package/dist/chunks/{app-server-connected-apps-Q2VWWJNX.js → app-server-connected-apps-3T546FE7.js} +1 -1
  8. package/dist/chunks/app-server-evaluations-TXD747QA.js +2 -0
  9. package/dist/chunks/{app-server-harness-services-2PSZBT7U.js → app-server-harness-services-BBCDV5P3.js} +1 -1
  10. package/dist/chunks/app-server-runtime-VEJPDAFP.js +2 -0
  11. package/dist/chunks/{apps-7PIBF32Q.js → apps-CTT2XYRR.js} +1 -1
  12. package/dist/chunks/{chunk-KK626T3Z.js → chunk-2EPR4HLF.js} +1 -1
  13. package/dist/chunks/{chunk-5VPU7OS7.js → chunk-2IIBCCOK.js} +1 -1
  14. package/dist/chunks/{chunk-ZISYLRH6.js → chunk-2UDAKLJ4.js} +1 -1
  15. package/dist/chunks/{chunk-BDCTN4PU.js → chunk-2V4LPUBH.js} +1 -1
  16. package/dist/chunks/{chunk-I3X6M6ZO.js → chunk-3R4MSE2S.js} +1 -1
  17. package/dist/chunks/{chunk-OFVUN4KI.js → chunk-47AXSBPV.js} +1 -1
  18. package/dist/chunks/{chunk-BFKYRQMA.js → chunk-4N4EH3RJ.js} +1 -1
  19. package/dist/chunks/chunk-4PZWGNX4.js +86 -0
  20. package/dist/chunks/{chunk-VFLSBDNZ.js → chunk-4RZBGKT7.js} +1 -1
  21. package/dist/chunks/{chunk-VBW2X42G.js → chunk-4TM75R7V.js} +1 -1
  22. package/dist/chunks/chunk-4U2FNXQW.js +2 -0
  23. package/dist/chunks/{chunk-SCCYSPQ5.js → chunk-4ZBOYWQ3.js} +1 -1
  24. package/dist/chunks/{chunk-VWJ5IYQP.js → chunk-547AUVKN.js} +1 -1
  25. package/dist/chunks/{chunk-FJ3HMHT6.js → chunk-557XSPVS.js} +1 -1
  26. package/dist/chunks/{chunk-ZHFH2TZN.js → chunk-557YG77L.js} +1 -1
  27. package/dist/chunks/{chunk-MF35MALN.js → chunk-5A6ER3M2.js} +1 -1
  28. package/dist/chunks/{chunk-U4HZD2GM.js → chunk-5OSM75X5.js} +1 -1
  29. package/dist/chunks/{chunk-TH6Y4K5Z.js → chunk-6SH4B7DV.js} +1 -1
  30. package/dist/chunks/chunk-6XSSM4WT.js +3 -0
  31. package/dist/chunks/{chunk-HN2ZK6EV.js → chunk-7JBB4PXS.js} +1 -1
  32. package/dist/chunks/{chunk-SID4X3YN.js → chunk-7JXZNCBC.js} +1 -1
  33. package/dist/chunks/chunk-7KTARW23.js +2 -0
  34. package/dist/chunks/{chunk-M6JRS5PA.js → chunk-ABF3W2MO.js} +1 -1
  35. package/dist/chunks/{chunk-CGAL7IHZ.js → chunk-AKZPMKWP.js} +1 -1
  36. package/dist/chunks/{chunk-SIV5P6JO.js → chunk-AMO5DVKM.js} +2 -2
  37. package/dist/chunks/chunk-AZ7BL5FL.js +2 -0
  38. package/dist/chunks/{chunk-4RHM4WN2.js → chunk-B42QQUZY.js} +1 -1
  39. package/dist/chunks/{chunk-3DVWJCOA.js → chunk-B4RKHHF7.js} +1 -1
  40. package/dist/chunks/{chunk-CQF6QZEL.js → chunk-BEI4YULC.js} +1 -1
  41. package/dist/chunks/chunk-BKEDG3A4.js +22 -0
  42. package/dist/chunks/{chunk-GEXKTGLY.js → chunk-C7M2WBWZ.js} +14 -14
  43. package/dist/chunks/{chunk-ELYRVTTG.js → chunk-CJUVHE4U.js} +1 -1
  44. package/dist/chunks/{chunk-ZUNG6YDO.js → chunk-EIX2V2KU.js} +1 -1
  45. package/dist/chunks/{chunk-AWPYTDH4.js → chunk-EWOTDVDJ.js} +1 -1
  46. package/dist/chunks/{chunk-B47JMAVW.js → chunk-F4TJ7WQV.js} +1 -1
  47. package/dist/chunks/{chunk-TXBIZDXG.js → chunk-F7D4BMTO.js} +1 -1
  48. package/dist/chunks/{chunk-BWY4D3BN.js → chunk-FFWOTZQM.js} +1 -1
  49. package/dist/chunks/{chunk-6RVF2J47.js → chunk-FUSCTBJI.js} +1 -1
  50. package/dist/chunks/{chunk-BN5AVRUG.js → chunk-GAQLXFOT.js} +1 -1
  51. package/dist/chunks/{chunk-LHENAWLH.js → chunk-GEKORCMN.js} +1 -1
  52. package/dist/chunks/{chunk-ORLJJGZZ.js → chunk-GNCEZ3UP.js} +1 -1
  53. package/dist/chunks/{chunk-WRQEYW3V.js → chunk-GOIKLFXK.js} +1 -1
  54. package/dist/chunks/{chunk-65SM7Y2G.js → chunk-GQGLPKU4.js} +1 -1
  55. package/dist/chunks/{chunk-LBBXVOVR.js → chunk-GSWBNJGZ.js} +1 -1
  56. package/dist/chunks/{chunk-7EAWLYYB.js → chunk-GV3LFSMI.js} +1 -1
  57. package/dist/chunks/{chunk-GQUS7MCH.js → chunk-GW5SE3FM.js} +1 -1
  58. package/dist/chunks/{chunk-I3W27VK4.js → chunk-HBLN4OLY.js} +1 -1
  59. package/dist/chunks/{chunk-SGK4GR44.js → chunk-HFJUXKT5.js} +1 -1
  60. package/dist/chunks/{chunk-4P3X2RXA.js → chunk-HKV7RX5E.js} +1 -1
  61. package/dist/chunks/{chunk-QDBYLJGH.js → chunk-HXZXDDKW.js} +1 -1
  62. package/dist/chunks/{chunk-LNRFRAV5.js → chunk-INO67SEN.js} +1 -1
  63. package/dist/chunks/{chunk-E67M5WGY.js → chunk-IWK3RTLR.js} +1 -1
  64. package/dist/chunks/{chunk-U447MS3Y.js → chunk-J3B2GM4A.js} +1 -1
  65. package/dist/chunks/chunk-JCLTFDVW.js +2 -0
  66. package/dist/chunks/{chunk-25RDE7DV.js → chunk-JEISPWWM.js} +1 -1
  67. package/dist/chunks/{chunk-D4JZALZ4.js → chunk-JIFUGA3U.js} +1 -1
  68. package/dist/chunks/{chunk-H2AUR7OT.js → chunk-JQRMDFF3.js} +1 -1
  69. package/dist/chunks/{chunk-FWIPHEVA.js → chunk-JX6OX6XE.js} +1 -1
  70. package/dist/chunks/{chunk-D5ADDBS5.js → chunk-JY3YSI54.js} +1 -1
  71. package/dist/chunks/{chunk-CM5USMXN.js → chunk-KOKX7PBS.js} +1 -1
  72. package/dist/chunks/{chunk-3ZWLRBYZ.js → chunk-KUPJNBWG.js} +1 -1
  73. package/dist/chunks/chunk-LILXHGIA.js +2 -0
  74. package/dist/chunks/{chunk-MCIIGQT7.js → chunk-LJDBR3RN.js} +1 -1
  75. package/dist/chunks/{chunk-3TYCIYW6.js → chunk-LJPO3TEL.js} +1 -1
  76. package/dist/chunks/{chunk-MHYI7ATG.js → chunk-LRRBYIGH.js} +2 -2
  77. package/dist/chunks/{chunk-P4XM7LUT.js → chunk-M5IX6VUA.js} +1 -1
  78. package/dist/chunks/chunk-MEK7DLX3.js +2 -0
  79. package/dist/chunks/{chunk-TYHCBVQT.js → chunk-MILEWROZ.js} +1 -1
  80. package/dist/chunks/{chunk-ZBBVRYU3.js → chunk-MNFW5WLD.js} +1 -1
  81. package/dist/chunks/{chunk-2VXL6AU3.js → chunk-MNXNZDDW.js} +1 -1
  82. package/dist/chunks/chunk-N5GPINVP.js +2 -0
  83. package/dist/chunks/{chunk-TSAW2QVU.js → chunk-NBE74GLF.js} +1 -1
  84. package/dist/chunks/{chunk-VZXZ6CHS.js → chunk-NE4ESZPT.js} +1 -1
  85. package/dist/chunks/{chunk-CO3OJFPU.js → chunk-NKZNPTLA.js} +1 -1
  86. package/dist/chunks/{chunk-WFVOG5PU.js → chunk-NLQ2UPN2.js} +1 -1
  87. package/dist/chunks/chunk-NOSBNHGC.js +18 -0
  88. package/dist/chunks/{chunk-TTN63EAM.js → chunk-NWOK6NLE.js} +1 -1
  89. package/dist/chunks/{chunk-6MWT6BVU.js → chunk-NWQL6FNF.js} +1 -1
  90. package/dist/chunks/chunk-O3MHHGC5.js +151 -0
  91. package/dist/chunks/{chunk-IUGK6BBY.js → chunk-OCC43RSJ.js} +1 -1
  92. package/dist/chunks/{chunk-BQUWZRWU.js → chunk-P74RR2GB.js} +1 -1
  93. package/dist/chunks/{chunk-PAZDQRYU.js → chunk-PAE3PQEC.js} +1 -1
  94. package/dist/chunks/{chunk-M4ZRCRJM.js → chunk-PGO4FRHU.js} +2 -2
  95. package/dist/chunks/chunk-Q34IF4PW.js +2 -0
  96. package/dist/chunks/{chunk-Q324ZA5M.js → chunk-QAVQJZCM.js} +1 -1
  97. package/dist/chunks/{chunk-EIIGTADO.js → chunk-RBDUMASL.js} +1 -1
  98. package/dist/chunks/{chunk-TMMFF6DO.js → chunk-RH43WLBX.js} +1 -1
  99. package/dist/chunks/{chunk-RPOD6I64.js → chunk-RTJCELRR.js} +1 -1
  100. package/dist/chunks/{chunk-L3GA2CQI.js → chunk-SD64CLJX.js} +1 -1
  101. package/dist/chunks/{chunk-TNHDD3LO.js → chunk-SXMR6E2W.js} +1 -1
  102. package/dist/chunks/{chunk-MLTKB5G3.js → chunk-SZKFNKWO.js} +1 -1
  103. package/dist/chunks/chunk-T4QXKU5Y.js +1 -0
  104. package/dist/chunks/{chunk-PE7UKJXK.js → chunk-T6C5BNXK.js} +1 -1
  105. package/dist/chunks/{chunk-OMICIPPY.js → chunk-T6JN4PND.js} +1 -1
  106. package/dist/chunks/{chunk-OQUKSRU3.js → chunk-TGEGXTPR.js} +1 -1
  107. package/dist/chunks/chunk-TM4VEMNN.js +2 -0
  108. package/dist/chunks/chunk-TUCKED4T.js +4 -0
  109. package/dist/chunks/chunk-TVTFEGTU.js +2 -0
  110. package/dist/chunks/{chunk-HZLV773Y.js → chunk-TW3SRBLU.js} +1 -1
  111. package/dist/chunks/{chunk-BNZTJPK7.js → chunk-U456UP3N.js} +1 -1
  112. package/dist/chunks/chunk-UC3FXTDL.js +9 -0
  113. package/dist/chunks/{chunk-XLULTQLZ.js → chunk-UT6F6AIB.js} +1 -1
  114. package/dist/chunks/{chunk-OJFDI7VM.js → chunk-UTNGEMW5.js} +1 -1
  115. package/dist/chunks/{chunk-DW3GJRY3.js → chunk-VAJSRUAB.js} +1 -1
  116. package/dist/chunks/chunk-VE6ZIGUQ.js +2 -0
  117. package/dist/chunks/{chunk-GLVR74PX.js → chunk-VI32G77S.js} +1 -1
  118. package/dist/chunks/{chunk-ROE24PN5.js → chunk-VK4TPZTA.js} +1 -1
  119. package/dist/chunks/{chunk-Q66LWQGF.js → chunk-VSQXDS6H.js} +1 -1
  120. package/dist/chunks/{chunk-4GZ2FPB5.js → chunk-VWRTE64Y.js} +1 -1
  121. package/dist/chunks/{chunk-QRJPLZF7.js → chunk-W5W4IODW.js} +1 -1
  122. package/dist/chunks/{chunk-57RY3LSR.js → chunk-WGLVSGFA.js} +1 -1
  123. package/dist/chunks/{chunk-I7JCARVH.js → chunk-WQMXEZVE.js} +3 -3
  124. package/dist/chunks/chunk-X4ZT22SG.js +2 -0
  125. package/dist/chunks/{chunk-DGPGOBYZ.js → chunk-XSB3T4JZ.js} +1 -1
  126. package/dist/chunks/{chunk-ZZWAQBA2.js → chunk-XWDFXM3S.js} +1 -1
  127. package/dist/chunks/{chunk-4LZLO4OW.js → chunk-Y2KPHVZK.js} +1 -1
  128. package/dist/chunks/chunk-ZQHPGEYT.js +2 -0
  129. package/dist/chunks/{chunk-T4LLJC5N.js → chunk-ZXT7V64X.js} +1 -1
  130. package/dist/chunks/cli-GCSO2OAI.js +2 -0
  131. package/dist/chunks/{configuration-command-ONGI2BJD.js → configuration-command-BU2RPG33.js} +1 -1
  132. package/dist/chunks/connected-app-executor-UDE7U4KG.js +2 -0
  133. package/dist/chunks/{connected-evidence-4J3YXU4O.js → connected-evidence-GXIY2L7C.js} +1 -1
  134. package/dist/chunks/{connected-starting-assets-OXLT7S4O.js → connected-starting-assets-V5QXRK5Q.js} +1 -1
  135. package/dist/chunks/{connection-HJWE6SEW.js → connection-XMAAGMXJ.js} +1 -1
  136. package/dist/chunks/{continual-CJUZM5ZQ.js → continual-FLW6DAJK.js} +1 -1
  137. package/dist/chunks/{core-commands-JGXU6B4C.js → core-commands-NJ6TGND4.js} +1 -1
  138. package/dist/chunks/{dataset-preparation-authoring-DFGJBMVF.js → dataset-preparation-authoring-IUXUQK3L.js} +1 -1
  139. package/dist/chunks/{datasets-MNHZAZIB.js → datasets-AH56DKLZ.js} +1 -1
  140. package/dist/chunks/{desktop-test-P23MHAIG.js → desktop-test-PYUTEOWO.js} +1 -1
  141. package/dist/chunks/{dist-IIFTZWNR.js → dist-5267UT3V.js} +1 -1
  142. package/dist/chunks/{dist-X64FC6NA.js → dist-HSC43RG4.js} +1 -1
  143. package/dist/chunks/{evaluation-coordination-6NQEH5WU.js → evaluation-coordination-3AUICOC5.js} +1 -1
  144. package/dist/chunks/{experiment-improvements-M27Z5OF4.js → experiment-improvements-YS7GGPDW.js} +1 -1
  145. package/dist/chunks/experiments-EJZK7FPT.js +2 -0
  146. package/dist/chunks/{experiments-signal-R3NNH7WR.js → experiments-signal-NKUIJCIY.js} +1 -1
  147. package/dist/chunks/{extension-C33NUFDL.js → extension-ZM6NI5O5.js} +1 -1
  148. package/dist/chunks/{help-M2VQGPVC.js → help-PXUUREHZ.js} +1 -1
  149. package/dist/chunks/host-profile-evaluation-tools-CTC5JQPD.js +2 -0
  150. package/dist/chunks/host-profile-external-dataset-GJWDY3YT.js +2 -0
  151. package/dist/chunks/hosted-app-server-composition-TLJSKMJT.js +2 -0
  152. package/dist/chunks/hosted-experiment-improvement-TIVXXRPG.js +3 -0
  153. package/dist/chunks/hosted-harness-runtime-SFLJEZFI.js +2 -0
  154. package/dist/chunks/{hosted-profile-candidate-37ZFY2LH.js → hosted-profile-candidate-DKEMVIYG.js} +1 -1
  155. package/dist/chunks/hosted-profile-compiler-V6YR6EHO.js +2 -0
  156. package/dist/chunks/{hosted-profile-evaluation-control-UQBMML6K.js → hosted-profile-evaluation-control-ERCXAPZD.js} +1 -1
  157. package/dist/chunks/{hosted-profile-evaluation-inspection-YASS4T6L.js → hosted-profile-evaluation-inspection-Q3AIIIB6.js} +1 -1
  158. package/dist/chunks/hosted-profile-evaluation-preparation-ELLGH44Z.js +3 -0
  159. package/dist/chunks/{hosted-tasksets-CVUP7MS6.js → hosted-tasksets-X2YCFYEJ.js} +1 -1
  160. package/dist/chunks/{human-review-IJETDOWB.js → human-review-5WM6MSON.js} +1 -1
  161. package/dist/chunks/{import-WLLUIDS6.js → import-JWZSZCE4.js} +1 -1
  162. package/dist/chunks/local-harness-improvement-runtime-IGIKM6GJ.js +2 -0
  163. package/dist/chunks/local-harness-taskset-review-DR2ZIDOH.js +2 -0
  164. package/dist/chunks/{model-projects-AVBQDNYG.js → model-projects-H22KENI4.js} +1 -1
  165. package/dist/chunks/opchat-3S6TSDZO.js +3 -0
  166. package/dist/chunks/opchat-bounded-chat-B7LPCD4U.js +2 -0
  167. package/dist/chunks/{organizations-DJRJWC5I.js → organizations-62YNTZTO.js} +1 -1
  168. package/dist/chunks/{profile-JRS3JNRC.js → profile-ELE2D7HU.js} +1 -1
  169. package/dist/chunks/project-action-payload-32F4X2BB.js +2 -0
  170. package/dist/chunks/{project-agent-2KNJFNZI.js → project-agent-O4REKO6T.js} +1 -1
  171. package/dist/chunks/{published-experiment-source-LFYHKFAO.js → published-experiment-source-DAOTJLIN.js} +1 -1
  172. package/dist/chunks/refiner-profile-service-DYMZ7J3X.js +2 -0
  173. package/dist/chunks/{runtime-CBJF5GMB.js → runtime-776NUSE7.js} +2 -2
  174. package/dist/chunks/{sandbox-command-IIGTPYN3.js → sandbox-command-UQ26NDIX.js} +1 -1
  175. package/dist/chunks/{sandbox-template-FTANKQIA.js → sandbox-template-WP6YCGBK.js} +1 -1
  176. package/dist/chunks/saved-work-PG52WCRQ.js +2 -0
  177. package/dist/chunks/{send-turn-5UB7ZBJV.js → send-turn-RPB65PME.js} +1 -1
  178. package/dist/chunks/{src-4YZF6L6H.js → src-2R4CMCJ5.js} +1 -1
  179. package/dist/chunks/src-AU6LG7E6.js +421 -0
  180. package/dist/chunks/standalone-experiment-turn-owner-SD3SUTKX.js +2 -0
  181. package/dist/chunks/{store-chat-resources-CGW7PDCG.js → store-chat-resources-T4LR7K25.js} +1 -1
  182. package/dist/chunks/{store-continual-support-reviews-GWI2FRII.js → store-continual-support-reviews-R62D2HD6.js} +1 -1
  183. package/dist/chunks/{store-conversation-serving-637AHKBP.js → store-conversation-serving-25O7BAR2.js} +1 -1
  184. package/dist/chunks/{store-create-improve-ZG653Z63.js → store-create-improve-T5E2GUKK.js} +1 -1
  185. package/dist/chunks/{store-datasets-IW6F2QZM.js → store-datasets-5Y4U5L3R.js} +1 -1
  186. package/dist/chunks/{store-evaluation-results-V5J6L4NV.js → store-evaluation-results-WUVJWCFU.js} +1 -1
  187. package/dist/chunks/{store-harness-workspaces-HHMM6GNK.js → store-harness-workspaces-IFEFY5CK.js} +1 -1
  188. package/dist/chunks/{store-human-review-V5H4QDHR.js → store-human-review-ZQNLZRGG.js} +1 -1
  189. package/dist/chunks/store-learned-preference-migration-validation-UH6MJQSH.js +2 -0
  190. package/dist/chunks/{store-local-experiments-A2UWYPVQ.js → store-local-experiments-LOH4F4TF.js} +1 -1
  191. package/dist/chunks/{store-model-batch-review-KMYPYWJR.js → store-model-batch-review-QO4VVKWC.js} +1 -1
  192. package/dist/chunks/{store-model-configuration-UXNC4PGY.js → store-model-configuration-C3HSOFD5.js} +1 -1
  193. package/dist/chunks/store-model-project-preparation-RQ2YTC2Y.js +2 -0
  194. package/dist/chunks/{store-preference-comparison-HTOXLWKF.js → store-preference-comparison-RNIFLJRW.js} +1 -1
  195. package/dist/chunks/{store-schedules-QVWT7AEB.js → store-schedules-DVQ2PP4F.js} +1 -1
  196. package/dist/chunks/{store-sidebar-file-bookmarks-G5Z6NZWL.js → store-sidebar-file-bookmarks-LXWFFYCZ.js} +1 -1
  197. package/dist/chunks/{store-sidebar-preferences-27FFMUWU.js → store-sidebar-preferences-4HH7LX6N.js} +1 -1
  198. package/dist/chunks/{store-subagents-PK7ZWLPR.js → store-subagents-JLW4GD4Q.js} +1 -1
  199. package/dist/chunks/{store-task-inbox-LNDCZOYE.js → store-task-inbox-DL5RYFPO.js} +1 -1
  200. package/dist/chunks/{store-task-inventory-IG6HGWSQ.js → store-task-inventory-NJXRXFLC.js} +1 -1
  201. package/dist/chunks/store-taskset-drafts-UFGN4SGF.js +9 -0
  202. package/dist/chunks/{store-training-NQRRPKEZ.js → store-training-VRLU6NFX.js} +1 -1
  203. package/dist/chunks/{store-training-jobs-F6Y2ZTXP.js → store-training-jobs-3ZHG4LGI.js} +1 -1
  204. package/dist/chunks/{store-training-models-NRSLSBEW.js → store-training-models-KWQD5PRP.js} +1 -1
  205. package/dist/chunks/{store-usage-GFHQYT34.js → store-usage-ZRS3ILF2.js} +1 -1
  206. package/dist/chunks/{taskset-NYLUYX6K.js → taskset-QDMCQQDJ.js} +1 -1
  207. package/dist/chunks/{taskset-packages-I7I5KBFP.js → taskset-packages-CBLJFWDQ.js} +1 -1
  208. package/dist/chunks/{teams-bot-FMAEDGSD.js → teams-bot-GF272RGC.js} +1 -1
  209. package/dist/chunks/{training-UBX6E7SK.js → training-DF5UEPY3.js} +1 -1
  210. package/dist/chunks/{training-error-AYOGHHL2.js → training-error-L5V5IBX3.js} +1 -1
  211. package/dist/chunks/training-hosted-I2NDBYGS.js +2 -0
  212. package/dist/chunks/training-hosted-report-4F25RZZ4.js +2 -0
  213. package/dist/chunks/training-hosted-serving-QAV7ZGGV.js +2 -0
  214. package/dist/chunks/training-project-preparation-XWGRY5ME.js +3 -0
  215. package/dist/chunks/{web-search-Q4OQVUNH.js → web-search-5RUXYIOF.js} +1 -1
  216. package/dist/chunks/{workspaces-XREEVSTS.js → workspaces-JRY2IE7H.js} +1 -1
  217. package/dist/cli.js +2 -2
  218. package/dist/hosted-chat.d.ts +28 -0
  219. package/dist/index.js +1 -1
  220. package/dist/skills/openpond-cli/SKILL.md +15 -2
  221. package/dist/skills/openpond-cli/references/compact-resource-tables.md +3 -3
  222. package/dist/skills/openpond-cli/references/diagnose-and-improve.md +4 -2
  223. package/dist/skills/openpond-cli/references/experiments-and-training.md +155 -10
  224. package/dist/skills/openpond-taskset-authoring/SKILL.md +5 -4
  225. package/dist/skills/openpond-taskset-authoring/artifact.json +7 -7
  226. package/dist/skills/openpond-taskset-authoring/references/failure-diagnosis.md +52 -1
  227. package/dist/web/assets/App-DHJVXTI2.js +54 -0
  228. package/dist/web/assets/App-DpFKLxuA.css +1 -0
  229. package/dist/web/assets/AppDialog-BurL61qE.js +1 -0
  230. package/dist/web/assets/AppTerminalPanel-RjFlF-a4.js +2 -0
  231. package/dist/web/assets/{AppToastContext-BB_2hRfw.js → AppToastContext-DZLErwj0.js} +1 -1
  232. package/dist/web/assets/AppsView-ttlr9ckQ.js +1 -0
  233. package/dist/web/assets/{AttachmentTypeIcon-DOAsVQjt.js → AttachmentTypeIcon-CpMSfHCK.js} +1 -1
  234. package/dist/web/assets/BrowserSidebar-Cp2l0kg0.js +1 -0
  235. package/dist/web/assets/{CartesianChart-DO76yfJb.js → CartesianChart-CEbM980A.js} +1 -1
  236. package/dist/web/assets/{ChatTimelineEntry-IKzZsHoI.js → ChatTimelineEntry-BITv20Ze.js} +1 -1
  237. package/dist/web/assets/{CollaborationTabs-DNoknVMD.js → CollaborationTabs-DrKJmJZK.js} +1 -1
  238. package/dist/web/assets/{CommandMenu-CBY2AJxV.js → CommandMenu-6oj8FUr6.js} +1 -1
  239. package/dist/web/assets/CommunityView-BzpIq1lD.js +1 -0
  240. package/dist/web/assets/ComposerAttachments-6en7m_ov.js +2 -0
  241. package/dist/web/assets/ComposerCreateImproveStrip-ChplO9YP.js +1 -0
  242. package/dist/web/assets/ConversationImportsSettings-DRHgc7j_.js +1 -0
  243. package/dist/web/assets/FilePagePreview-CW4J_1u7.js +2 -0
  244. package/dist/web/assets/GetStartedView-CaBk_mX6.js +1 -0
  245. package/dist/web/assets/GettingStartedDialog-EsH-8Diz.css +1 -0
  246. package/dist/web/assets/GettingStartedDialog-JtFLyU3F.js +1 -0
  247. package/dist/web/assets/{HostedModelLearningReview-B0rbIVvn.js → HostedModelLearningReview-hhcjDifK.js} +1 -1
  248. package/dist/web/assets/HostedModelLearningSettings-CY8198Y1.js +1 -0
  249. package/dist/web/assets/LabModelVersionDetailPage-f0tHT-Sn.js +1 -0
  250. package/dist/web/assets/LabSkillSidebar-HibUEEko.js +1 -0
  251. package/dist/web/assets/{LabsRoute-DOnw39du.js → LabsRoute-B61l1b8P.js} +8 -8
  252. package/dist/web/assets/MainChatThread-egKi0gLk.js +2 -0
  253. package/dist/web/assets/MainPane-2dj6Dg4l.js +95 -0
  254. package/dist/web/assets/{MainPane-CuBUBA9F.css → MainPane-BwHw3UYp.css} +1 -1
  255. package/dist/web/assets/NativeSetupTerminal-3eR9D_R3.css +1 -0
  256. package/dist/web/assets/NativeSetupTerminal-CNHTByLo.js +2 -0
  257. package/dist/web/assets/NativeSkillSidebar-DCdMbSfe.js +1 -0
  258. package/dist/web/assets/NewProjectDialog-t9Imnb__.js +1 -0
  259. package/dist/web/assets/OutputsPage-CeGq_F1S.js +1 -0
  260. package/dist/web/assets/{PageChrome-BBnWAENV.js → PageChrome-VHME5V8j.js} +1 -1
  261. package/dist/web/assets/ProjectsPage-2TMZoEPB.js +1 -0
  262. package/dist/web/assets/RightChatPanelStack-B3mBViGC.js +1 -0
  263. package/dist/web/assets/RightSidebarHomePanel-CxDYSyyx.js +1 -0
  264. package/dist/web/assets/ScheduledWorkPage-Dh47iH11.js +1 -0
  265. package/dist/web/assets/SettingsView-D2bu3tK_.js +5 -0
  266. package/dist/web/assets/TeamChatView-CN17AsgA.js +1 -0
  267. package/dist/web/assets/TerminalOverlay-DlhRpi-X.js +16 -0
  268. package/dist/web/assets/TrainingCreationPanel-DJKzaNFj.js +1 -0
  269. package/dist/web/assets/{TrainingDraftPanel-HznyNCJ4.js → TrainingDraftPanel-BhhZPPuY.js} +1 -1
  270. package/dist/web/assets/{TrainingMetricWorkbench-BmzHLwIP.js → TrainingMetricWorkbench-DBy8F1xp.js} +1 -1
  271. package/dist/web/assets/{UsageSettingsSection-C3oZ1UEP.js → UsageSettingsSection-DTZslBeW.js} +2 -2
  272. package/dist/web/assets/WorkSidebarPanel-Ds-eTQLs.js +1 -0
  273. package/dist/web/assets/WorkspaceDiffPanel-D_iyg2D4.js +11 -0
  274. package/dist/web/assets/WorkspaceEnvironmentMenu-Fn-NlfMQ.js +35 -0
  275. package/dist/web/assets/WorkspaceFileLocation-ChEeZffU.js +1 -0
  276. package/dist/web/assets/WorkspaceGitDialogs-D_RUXhTi.js +1 -0
  277. package/dist/web/assets/{WorkspaceMonacoEditor-DfsL1WIi.js → WorkspaceMonacoEditor-BJxaiDrj.js} +3 -3
  278. package/dist/web/assets/{WorkspacePresentationPreview-WuS_B45u.js → WorkspacePresentationPreview-A28Poeca.js} +1 -1
  279. package/dist/web/assets/{chat-resources-CItQ4mZD.js → chat-resources-3SvnVeKv.js} +1 -1
  280. package/dist/web/assets/{chevron-down-Bnma8EMP.js → chevron-down-dYn0pd4Q.js} +1 -1
  281. package/dist/web/assets/chevron-right-sFx2xRvT.js +1 -0
  282. package/dist/web/assets/{chunk-24N6A6SF-BUjzKvRC.js → chunk-BYNVSWIQ-DWh9SmdB.js} +1 -1
  283. package/dist/web/assets/{chunk-GAIDBPFY-BLuHpurI.js → chunk-ZFYI4P6C-BmsNtSkR.js} +1 -1
  284. package/dist/web/assets/{client-choice-storage-BuNdhYSV.js → client-choice-storage-DTTLbrYt.js} +1 -1
  285. package/dist/web/assets/{cloud-upload-DOftANif.js → cloud-upload-CRMPCFnq.js} +1 -1
  286. package/dist/web/assets/connected-app-mentions-D3wRZLwI.js +1 -0
  287. package/dist/web/assets/copy-DR4ielPn.js +1 -0
  288. package/dist/web/assets/{createLucideIcon-C4b2afqG.js → createLucideIcon-DmttVQ_a.js} +1 -1
  289. package/dist/web/assets/{cssMode-0Hn7tCrE.js → cssMode-d-2GuNvW.js} +1 -1
  290. package/dist/web/assets/external-link-B4rPiZEp.js +1 -0
  291. package/dist/web/assets/{folder-open-wJwCoIDs.js → folder-open-BrIUcUk_.js} +1 -1
  292. package/dist/web/assets/{folder-plus-DnTN6mcP.js → folder-plus-DwImGEt-.js} +1 -1
  293. package/dist/web/assets/{git-commit-horizontal-98y7PP6G.js → git-commit-horizontal-Ds1mkrlW.js} +1 -1
  294. package/dist/web/assets/{htmlMode-JO_QluNH.js → htmlMode-s15GR0Fn.js} +1 -1
  295. package/dist/web/assets/icons-CK5-nxVC.js +1 -0
  296. package/dist/web/assets/{image-C7HVlg3X.js → image-CY-sHbfQ.js} +1 -1
  297. package/dist/web/assets/{index-BsPUniZy.js → index-DYrLeSyY.js} +2 -2
  298. package/dist/web/assets/index-Dezj4Z2p.css +1 -0
  299. package/dist/web/assets/{info-BLWDShaz.js → info-aSvM8YlJ.js} +1 -1
  300. package/dist/web/assets/{jsonMode-BfTXJted.js → jsonMode-vos9H2hz.js} +1 -1
  301. package/dist/web/assets/loader-circle-cyf35w3i.js +1 -0
  302. package/dist/web/assets/{lspLanguageFeatures-68cAgnuv.js → lspLanguageFeatures-pQmEaoMt.js} +1 -1
  303. package/dist/web/assets/{maximize-2-DUWvLap6.js → maximize-2-DgF6ZVOM.js} +1 -1
  304. package/dist/web/assets/{monaco.contribution-_3aU1TTb.js → monaco.contribution-BPwsKvRB.js} +2 -2
  305. package/dist/web/assets/{monaco.contribution-h8U8HXFT.js → monaco.contribution-BbMpa0_-.js} +2 -2
  306. package/dist/web/assets/{monaco.contribution-CWeY6ia1.js → monaco.contribution-CJlccVX3.js} +2 -2
  307. package/dist/web/assets/{monaco.contribution-DOiiDDen.js → monaco.contribution-pWurLXbm.js} +2 -2
  308. package/dist/web/assets/{monitor-B6OuAu13.js → monitor-DlEV241C.js} +1 -1
  309. package/dist/web/assets/{paperclip-DSHxP9CY.js → paperclip-fnRZSIRc.js} +1 -1
  310. package/dist/web/assets/{pdf-RXlFwNte.js → pdf-CT3zVKCE.js} +1 -1
  311. package/dist/web/assets/play-wI_3FLr4.js +1 -0
  312. package/dist/web/assets/plus-DoJe4fLj.js +1 -0
  313. package/dist/web/assets/{presentation-C9WnPDVr.js → presentation-Bb8ecExR.js} +1 -1
  314. package/dist/web/assets/profile-agent-labels-Duh96b8x.js +1 -0
  315. package/dist/web/assets/{python-BQXo7wMt.js → python-DXA1xp0A.js} +1 -1
  316. package/dist/web/assets/{refresh-cw-NXOER_CD.js → refresh-cw-B53QjxMO.js} +1 -1
  317. package/dist/web/assets/{save-BxXc21N6.js → save-V1Q4Fcqa.js} +1 -1
  318. package/dist/web/assets/settings-lists-CtH1A57b.js +5 -0
  319. package/dist/web/assets/square-BqSK-hv9.js +1 -0
  320. package/dist/web/assets/square-terminal-Dmgkm5zY.js +1 -0
  321. package/dist/web/assets/submit-issue-command-DRgUboVW.js +3 -0
  322. package/dist/web/assets/{toggleHighContrast-Di1cRuQ4.js → toggleHighContrast-B-BD2K2Q.js} +1 -1
  323. package/dist/web/assets/{training-managed-adapter-81RrdT1k.js → training-managed-adapter-BXNwgd3P.js} +1 -1
  324. package/dist/web/assets/{training-model-data-CmVo80ZR.js → training-model-data-14942K_Z.js} +5 -5
  325. package/dist/web/assets/{tsMode-PxisJRYB.js → tsMode-DdgIcxK3.js} +1 -1
  326. package/dist/web/assets/ui-theme.generated-D-mc26qt.js +144 -0
  327. package/dist/web/assets/{upload-NXasN1wU.js → upload-82Y6RjLi.js} +1 -1
  328. package/dist/web/assets/{useAccountSettings-Dqqt1vUY.js → useAccountSettings-BgHXNpq_.js} +1 -1
  329. package/dist/web/assets/{useAgentInventory-BV4CUWzJ.js → useAgentInventory-B-LNn3up.js} +1 -1
  330. package/dist/web/assets/{useLocalAgentSchedules-Cc0M_qax.js → useLocalAgentSchedules-CsKv22Hs.js} +1 -1
  331. package/dist/web/assets/{useQuery-ByaRC9SK.js → useQuery-CPC2wsWm.js} +1 -1
  332. package/dist/web/assets/{wifi-off-aVJ3AvT_.js → wifi-off-DXOoDN9l.js} +1 -1
  333. package/dist/web/assets/{workers-u92Boudu.js → workers-Clf4hKt5.js} +1 -1
  334. package/dist/web/assets/x-IPhrr4ju.js +1 -0
  335. package/dist/web/assets/{yaml-BxQUS0ew.js → yaml-I1tf8Uxx.js} +1 -1
  336. package/dist/web/index.html +12 -3
  337. package/docs/command-reference.md +28 -2
  338. package/package.json +2 -1
  339. package/dist/chunks/app-server-evaluations-HAAYVEXB.js +0 -2
  340. package/dist/chunks/app-server-runtime-B6BAJA6L.js +0 -2
  341. package/dist/chunks/chunk-4N3UF3U5.js +0 -2
  342. package/dist/chunks/chunk-6DCXAXVD.js +0 -22
  343. package/dist/chunks/chunk-BLKTUFGB.js +0 -2
  344. package/dist/chunks/chunk-E3EKBPCB.js +0 -2
  345. package/dist/chunks/chunk-F5JDBDYL.js +0 -2
  346. package/dist/chunks/chunk-JEVA7YQL.js +0 -3
  347. package/dist/chunks/chunk-KC7I6E6W.js +0 -2
  348. package/dist/chunks/chunk-OJSK4NSW.js +0 -151
  349. package/dist/chunks/chunk-UBCLPZSQ.js +0 -4
  350. package/dist/chunks/chunk-UJBEWIR3.js +0 -8
  351. package/dist/chunks/chunk-V67IFV26.js +0 -86
  352. package/dist/chunks/chunk-VSUHJ46L.js +0 -18
  353. package/dist/chunks/chunk-X3WEQL3O.js +0 -2
  354. package/dist/chunks/chunk-XK7SPL63.js +0 -2
  355. package/dist/chunks/chunk-YR5ID2SS.js +0 -2
  356. package/dist/chunks/cli-WC45SI7E.js +0 -2
  357. package/dist/chunks/connected-app-executor-TZJB25UZ.js +0 -2
  358. package/dist/chunks/experiments-IWSCFDBB.js +0 -2
  359. package/dist/chunks/host-profile-evaluation-tools-EFB2YIK2.js +0 -2
  360. package/dist/chunks/host-profile-external-dataset-KSNREH3Q.js +0 -2
  361. package/dist/chunks/hosted-app-server-composition-VV545TYL.js +0 -2
  362. package/dist/chunks/hosted-experiment-improvement-NYLADI7S.js +0 -3
  363. package/dist/chunks/hosted-harness-runtime-Z54E5MD7.js +0 -2
  364. package/dist/chunks/hosted-profile-compiler-SW2RWTDZ.js +0 -2
  365. package/dist/chunks/hosted-profile-evaluation-preparation-ZAOGDQXO.js +0 -3
  366. package/dist/chunks/local-harness-improvement-runtime-KB4OP3SM.js +0 -2
  367. package/dist/chunks/local-harness-taskset-review-SUDEUGUU.js +0 -2
  368. package/dist/chunks/opchat-KSOJEL4W.js +0 -3
  369. package/dist/chunks/project-action-payload-SQ5BSQHY.js +0 -2
  370. package/dist/chunks/refiner-profile-service-UWI4NAZ3.js +0 -2
  371. package/dist/chunks/saved-work-QA46KCME.js +0 -2
  372. package/dist/chunks/src-E7NWAN5B.js +0 -420
  373. package/dist/chunks/standalone-experiment-turn-owner-SQJ5HXDZ.js +0 -2
  374. package/dist/chunks/store-learned-preference-migration-validation-KOCW5NOZ.js +0 -2
  375. package/dist/chunks/store-taskset-drafts-TA6X245D.js +0 -9
  376. package/dist/chunks/training-hosted-4R4QTSAN.js +0 -2
  377. package/dist/chunks/training-hosted-report-UQVK6FTG.js +0 -2
  378. package/dist/web/assets/App-Df7uYQGj.css +0 -1
  379. package/dist/web/assets/App-Yy3l2sdD.js +0 -56
  380. package/dist/web/assets/AppTerminalPanel-Dqr6VS3I.js +0 -2
  381. package/dist/web/assets/AppsView-27Fl_-49.js +0 -1
  382. package/dist/web/assets/BrowserSidebar-bnI3sSZO.js +0 -1
  383. package/dist/web/assets/CommunityView-CFKM7FTY.js +0 -1
  384. package/dist/web/assets/ComposerAttachments-BdjBddKf.js +0 -2
  385. package/dist/web/assets/ComposerCreateImproveStrip-ViJ5E0We.js +0 -1
  386. package/dist/web/assets/ConversationImportsSettings-xLl-7G9R.js +0 -1
  387. package/dist/web/assets/FilePagePreview-CTHuPzJt.js +0 -2
  388. package/dist/web/assets/GetStartedView-DvV_RMgM.js +0 -1
  389. package/dist/web/assets/GettingStartedDialog-B1jFmfgd.js +0 -1
  390. package/dist/web/assets/GettingStartedDialog-C73Bdcz2.css +0 -1
  391. package/dist/web/assets/HostedModelLearningSettings-DzAiutjq.js +0 -1
  392. package/dist/web/assets/LabModelVersionDetailPage-CF8FkRUY.js +0 -1
  393. package/dist/web/assets/LabSkillSidebar-gjbl9Nlv.js +0 -1
  394. package/dist/web/assets/MainChatThread-BUKup-JB.js +0 -2
  395. package/dist/web/assets/MainPane-BpE7AKXu.js +0 -92
  396. package/dist/web/assets/NativeSkillSidebar-Br5Lk6iU.js +0 -1
  397. package/dist/web/assets/NewProjectDialog-DyuKPOvF.js +0 -1
  398. package/dist/web/assets/OutputsPage-Dl63CVrw.js +0 -1
  399. package/dist/web/assets/ProjectsPage-BNF1TiyR.js +0 -1
  400. package/dist/web/assets/RightChatPanelStack-CxVAAbp-.js +0 -1
  401. package/dist/web/assets/RightSidebarHomePanel-D46ktZg-.js +0 -1
  402. package/dist/web/assets/ScheduledWorkPage-Cp0Hf-hs.js +0 -1
  403. package/dist/web/assets/SettingsView-BT57Q5Wx.js +0 -5
  404. package/dist/web/assets/TeamChatView-BmxTJ9E5.js +0 -1
  405. package/dist/web/assets/TerminalOverlay-D-Yq8av_.js +0 -16
  406. package/dist/web/assets/TrainingCreationPanel-CwfNPj_G.js +0 -1
  407. package/dist/web/assets/WorkSidebarPanel-myTA9tsh.js +0 -1
  408. package/dist/web/assets/WorkspaceDiffPanel-D0dzFgzW.js +0 -11
  409. package/dist/web/assets/WorkspaceEnvironmentMenu-AUzME1eX.js +0 -35
  410. package/dist/web/assets/WorkspaceFileLocation-Ai8Tz2Mz.js +0 -1
  411. package/dist/web/assets/WorkspaceGitDialogs-D-UCCckC.js +0 -1
  412. package/dist/web/assets/chevron-right-Cxv_xBz5.js +0 -1
  413. package/dist/web/assets/git-dialogs-C631EFyO.css +0 -1
  414. package/dist/web/assets/icons-kaq6k88m.js +0 -1
  415. package/dist/web/assets/index-DUMDOdB2.css +0 -1
  416. package/dist/web/assets/play-BPPQoqMl.js +0 -1
  417. package/dist/web/assets/plus-D18vYzHF.js +0 -1
  418. package/dist/web/assets/settings-lists-DMNPkGYk.js +0 -5
  419. package/dist/web/assets/square-Da8RuqW4.js +0 -1
  420. package/dist/web/assets/ui-theme.generated-R0MY_Jy0.js +0 -136
@@ -0,0 +1,2 @@
1
+ import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
+ import{a as o}from"./chunk-FTQLQJQV.js";var p=class extends Error{static{o(this,"ApiTimeoutError")}timeoutMs;requestUrl;code="OPENPOND_API_TIMEOUT";constructor(t,r){super(`API request timed out after ${t}ms: ${r}`),this.timeoutMs=t,this.requestUrl=r,this.name="ApiTimeoutError"}},u=class extends Error{static{o(this,"ApiResponseTooLargeError")}maximumBytes;requestUrl;code="OPENPOND_API_RESPONSE_TOO_LARGE";constructor(t,r){super(`API response exceeded ${t} bytes: ${r}`),this.maximumBytes=t,this.requestUrl=r,this.name="ApiResponseTooLargeError"}},w=class extends Error{static{o(this,"OpenPondApiError")}status;apiMessage;code;constructor(t,r,a,s=null){let n=s||r;super(`${a} failed: ${t}${n?` ${n}`:""}`),this.status=t,this.apiMessage=s,this.name="OpenPondApiError",this.code=r||"OPENPOND_API_ERROR"}};async function v(e,t,r,a={}){let{timeoutMs:s=3e4,maxResponseBytes:n=8388608,explicitBearerAuth:i=!1,...c}=a,m=`${e}${r}`,d=new Headers(c.headers);d.set("Content-Type","application/json");let h=i?void 0:process.env.OPENPOND_API_KEY,y=t?.trim()||"",A=!i&&y.startsWith("opk_"),U=h||(A?y:null);U&&!d.has("openpond-api-key")&&d.set("openpond-api-key",U),t?d.set("Authorization",A?`ApiKey ${y}`:`Bearer ${t}`):h&&!d.has("Authorization")&&d.set("Authorization",`ApiKey ${h}`);let f=new AbortController,_=new p(s,m),E=s>0?setTimeout(()=>f.abort(_),s):null;E?.unref?.();let $=I(c.signal,f.signal,s),O=o(()=>{E&&clearTimeout(E)},"cleanup");try{let g=await fetch(m,{...c,headers:d,signal:$});return b(g,{cleanup:O,maximumBytes:n,requestUrl:m,timeoutController:f,timeoutError:_})}catch(g){throw O(),f.signal.aborted?_:g}}o(v,"apiFetch");async function L(e,t){let r;try{let a=await e.text();r=a?JSON.parse(a):{}}catch(a){if(a instanceof p||a instanceof u)throw a;r={}}if(!e.ok){let a=typeof r.error=="string"?r.error:null,s=typeof r.message=="string"?r.message:null;throw new w(e.status,a,t,s)}return r}o(L,"readApiJson");function b(e,t){if(!e.body)return t.cleanup(),e;let r=Number(e.headers.get("content-length"));if(t.maximumBytes>0&&Number.isFinite(r)&&r>t.maximumBytes)throw t.cleanup(),e.body.cancel(),new u(t.maximumBytes,t.requestUrl);let a=e.body.getReader(),s=0,n=new ReadableStream({async pull(i){try{let c=await a.read();if(c.done){t.cleanup(),i.close();return}if(s+=c.value.byteLength,t.maximumBytes>0&&s>t.maximumBytes){t.cleanup(),await a.cancel(),i.error(new u(t.maximumBytes,t.requestUrl));return}i.enqueue(c.value)}catch(c){t.cleanup(),i.error(t.timeoutController.signal.aborted?t.timeoutError:c)}},async cancel(i){t.cleanup(),await a.cancel(i)}});return new Response(n,{headers:e.headers,status:e.status,statusText:e.statusText})}o(b,"boundedResponse");function I(e,t,r){return r<=0?e??void 0:e?AbortSignal.any([e,t]):t}o(I,"composedSignal");var H="https://openpond.ai",q="https://api.openpond.ai",P="https://api.openpond.ai/opchat/v1";import{randomUUID as C}from"node:crypto";function B(e){let t=l(e);if(!t)throw new Error("apiBaseUrl is required");return t}o(B,"normalizeApiBaseUrl");function x(e){return e.replace(/\/+$/,"")}o(x,"trimTrailingSlashes");function l(e){let t=x(e?.trim()??"");return t?(t=t.replace(/\/chat\/completions$/i,"").replace(/\/models(?:\/[^/]+)?$/i,""),t.endsWith("/opchat/v1")?t:t.endsWith("/opchat")?`${t}/v1`:(t.endsWith("/v1")&&(t=t.slice(0,-3)),`${x(t)}/opchat/v1`)):null}o(l,"normalizeOptionalOpChatApiBaseUrl");function W(e={}){let t=e.env??(typeof process<"u"?process.env:{}),r=l(e.opChatApiBaseUrl)??l(t.OPENPOND_OPCHAT_API_URL);if(r)return r;let a=l(e.chatApiBaseUrl)??l(t.OPENPOND_CHAT_API_URL)??l(t.OPENPOND_GATEWAY_URL);return a||(l(e.apiBaseUrl)??l(t.OPENPOND_API_URL)??P)}o(W,"resolveOpChatApiBaseUrl");function D(e){let t=e.trim();if(!t)throw new Error("OpenPond API key is required");return t}o(D,"requireToken");function T(e,t,r,a){let s=new Headers;s.set("Authorization",`Bearer ${D(e)}`),s.set("Content-Type","application/json"),s.set("Accept",t),s.set("x-openpond-client","openpond-code");let n=r||C();return s.set("x-openpond-request-id",n),s.set("x-request-id",n),a&&s.set("x-openpond-team-id",a),s}o(T,"hostedHeaders");async function N(e){let t=await e.text().catch(()=>"");if(!t)return e.statusText||`HTTP ${e.status}`;try{let r=JSON.parse(t),a=typeof r.error=="string"||r.error&&typeof r.error=="object"&&!Array.isArray(r.error)?r.error:null,s=typeof r.code=="string"?r.code:a&&typeof a!="string"&&typeof a.code=="string"?a.code:null,n=typeof r.message=="string"?r.message:a&&typeof a!="string"&&typeof a.message=="string"?a.message:null,i=typeof a=="string"?a:a&&typeof a.type=="string"?a.type:null;return[s,i,n].filter(Boolean).join(": ")||t}catch{return t}}o(N,"readError");function S(e,t){let r={model:e.model,messages:e.messages,stream:t};typeof e.temperature=="number"&&(r.temperature=e.temperature),typeof e.maxTokens=="number"&&(r.max_tokens=e.maxTokens),e.reasoningEffort==="off"?r.thinking={type:"disabled"}:e.reasoningEffort&&(r.reasoning_effort=e.reasoningEffort),e.tools&&(r.tools=e.tools);let a=e.toolChoice??e.tool_choice;return a!==void 0&&(r.tool_choice=a),e.metadata&&(r.metadata=e.metadata),r}o(S,"buildHostedChatBody");async function G(e){let r=`${B(e.apiBaseUrl)}/models`,a=await fetch(r,{method:"GET",redirect:"error",headers:T(e.token,"application/json",void 0,e.teamId),signal:e.signal});if(!a.ok)throw new Error(`Hosted model list failed: ${a.status} ${await N(a)}`);return await a.json()}o(G,"listOpChatModels");async function z(e){let r=`${B(e.apiBaseUrl)}/chat/completions`,a=await fetch(r,{method:"POST",redirect:"error",headers:T(e.token,"application/json",e.requestId,e.teamId),body:JSON.stringify(S(e,!1)),signal:e.signal});if(!a.ok)throw new Error(`Hosted chat failed: ${a.status} ${await N(a)}`);return await a.json()}o(z,"sendHostedChatTurn");export{w as a,v as b,L as c,H as d,q as e,W as f,G as g,z as h};
@@ -1,2 +1,2 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{E as u,F as h}from"./chunk-KK626T3Z.js";import{f as c}from"./chunk-UGOK7VTC.js";import{a as s}from"./chunk-FTQLQJQV.js";import{createHash as i}from"node:crypto";import{readFile as m}from"node:fs/promises";import y from"node:path";var U=".openpond/source-upload-cache.json",d="openpond.source-upload-cache.v1";async function E(e){try{let a=(await u(c(),"source-upload.v1",l(e)))?.payload;if(!a)return new Map;if(a.schema!==d||!a.entries)return new Map;let t=new Map;for(let[o,n]of Object.entries(a.entries))!f(n)||o!==p(n)||t.set(o,n);return t}catch{return new Map}}s(E,"readSourceUploadCache");async function b(e,r){let a=await m(e.absolutePath),t=i("sha256").update(a).digest("hex"),o=p({...e,sha256:t}),n=r.get(o);return n&&n.sha256===t&&i("sha256").update(Buffer.from(n.contentsBase64,"base64")).digest("hex")===t?{file:e,entry:{path:e.path,type:"file",contentsBase64:n.contentsBase64},sha256:n.sha256}:{file:e,entry:{path:e.path,type:"file",contentsBase64:a.toString("base64")},sha256:t}}s(b,"materializeSourceUploadFile");async function A(e,r){let a={};for(let t of r){let o={path:t.file.path,size:t.file.size,mtimeMs:t.file.mtimeMs,ctimeMs:t.file.ctimeMs,sha256:t.sha256,contentsBase64:t.entry.contentsBase64};a[p(o)]=o}await h(c(),"source-upload.v1",l(e),{schema:d,generatedAt:new Date().toISOString(),entries:a})}s(A,"writeSourceUploadCache");function p(e){return`${e.path}\0${e.sha256}`}s(p,"cacheKeyForFile");function f(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let r=e;return typeof r.path=="string"&&typeof r.size=="number"&&typeof r.mtimeMs=="number"&&typeof r.ctimeMs=="number"&&typeof r.sha256=="string"&&typeof r.contentsBase64=="string"}s(f,"isCacheEntry");function l(e){return i("sha256").update(y.resolve(e)).digest("hex")}s(l,"sourceScope");export{U as a,E as b,b as c,A as d};
2
+ import{E as u,F as h}from"./chunk-2EPR4HLF.js";import{f as c}from"./chunk-UGOK7VTC.js";import{a as s}from"./chunk-FTQLQJQV.js";import{createHash as i}from"node:crypto";import{readFile as m}from"node:fs/promises";import y from"node:path";var U=".openpond/source-upload-cache.json",d="openpond.source-upload-cache.v1";async function E(e){try{let a=(await u(c(),"source-upload.v1",l(e)))?.payload;if(!a)return new Map;if(a.schema!==d||!a.entries)return new Map;let t=new Map;for(let[o,n]of Object.entries(a.entries))!f(n)||o!==p(n)||t.set(o,n);return t}catch{return new Map}}s(E,"readSourceUploadCache");async function b(e,r){let a=await m(e.absolutePath),t=i("sha256").update(a).digest("hex"),o=p({...e,sha256:t}),n=r.get(o);return n&&n.sha256===t&&i("sha256").update(Buffer.from(n.contentsBase64,"base64")).digest("hex")===t?{file:e,entry:{path:e.path,type:"file",contentsBase64:n.contentsBase64},sha256:n.sha256}:{file:e,entry:{path:e.path,type:"file",contentsBase64:a.toString("base64")},sha256:t}}s(b,"materializeSourceUploadFile");async function A(e,r){let a={};for(let t of r){let o={path:t.file.path,size:t.file.size,mtimeMs:t.file.mtimeMs,ctimeMs:t.file.ctimeMs,sha256:t.sha256,contentsBase64:t.entry.contentsBase64};a[p(o)]=o}await h(c(),"source-upload.v1",l(e),{schema:d,generatedAt:new Date().toISOString(),entries:a})}s(A,"writeSourceUploadCache");function p(e){return`${e.path}\0${e.sha256}`}s(p,"cacheKeyForFile");function f(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let r=e;return typeof r.path=="string"&&typeof r.size=="number"&&typeof r.mtimeMs=="number"&&typeof r.ctimeMs=="number"&&typeof r.sha256=="string"&&typeof r.contentsBase64=="string"}s(f,"isCacheEntry");function l(e){return i("sha256").update(y.resolve(e)).digest("hex")}s(l,"sourceScope");export{U as a,E as b,b as c,A as d};
@@ -1,4 +1,4 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{h as a}from"./chunk-MCIIGQT7.js";import{fb as d,ib as p}from"./chunk-UBCLPZSQ.js";import{a as o}from"./chunk-FTQLQJQV.js";function g(n,e,t,i){let s=n.get(`SELECT payload,package_payload FROM local_experiment_definitions WHERE team_id=? AND id=? ${i===void 0?"ORDER BY revision DESC LIMIT 1":"AND revision=?"}`,i===void 0?[e,t]:[e,t,i]);if(!s)throw new a("local_definition_not_found","Local Experiment definition is unavailable in this workspace.",404);return{definition:d.parse(JSON.parse(s.payload)),package:JSON.parse(s.package_payload)}}o(g,"localDefinition");function _(n,e,t){let i=n.get("SELECT payload FROM local_experiment_executions WHERE team_id=? AND id=?",[e,t]);if(!i)throw new a("local_execution_not_found","Local Experiment execution is unavailable in this workspace.",404);return p.parse(JSON.parse(i.payload))}o(_,"localExecution");function f(n,e,t){return n.all("SELECT receipt_id,status,admission,result,error FROM local_experiment_cases WHERE team_id=? AND execution_id=? ORDER BY ordinal",[e,t]).map(i=>({receiptId:i.receipt_id,status:i.status,admission:JSON.parse(i.admission),result:i.result?JSON.parse(i.result):null,error:i.error}))}o(f,"localCases");function L(n,e,t,i={}){let s=_(n,e,t),c={pending:0,running:0,completed:0,failed:0,cancelled:0,unknown:0};for(let u of n.all("SELECT status,COUNT(*) AS count FROM local_experiment_cases WHERE team_id=? AND execution_id=? GROUP BY status",[e,t]))c[u.status]=u.count;let r=n.get(`SELECT COALESCE(SUM(CASE WHEN status='settled' THEN cost_usd ELSE 0 END),0) AS spent,
2
+ import{h as a}from"./chunk-LJDBR3RN.js";import{fb as d,ib as p}from"./chunk-TUCKED4T.js";import{a as o}from"./chunk-FTQLQJQV.js";function g(n,e,t,i){let s=n.get(`SELECT payload,package_payload FROM local_experiment_definitions WHERE team_id=? AND id=? ${i===void 0?"ORDER BY revision DESC LIMIT 1":"AND revision=?"}`,i===void 0?[e,t]:[e,t,i]);if(!s)throw new a("local_definition_not_found","Local Experiment definition is unavailable in this workspace.",404);return{definition:d.parse(JSON.parse(s.payload)),package:JSON.parse(s.package_payload)}}o(g,"localDefinition");function _(n,e,t){let i=n.get("SELECT payload FROM local_experiment_executions WHERE team_id=? AND id=?",[e,t]);if(!i)throw new a("local_execution_not_found","Local Experiment execution is unavailable in this workspace.",404);return p.parse(JSON.parse(i.payload))}o(_,"localExecution");function f(n,e,t){return n.all("SELECT receipt_id,status,admission,result,error FROM local_experiment_cases WHERE team_id=? AND execution_id=? ORDER BY ordinal",[e,t]).map(i=>({receiptId:i.receipt_id,status:i.status,admission:JSON.parse(i.admission),result:i.result?JSON.parse(i.result):null,error:i.error}))}o(f,"localCases");function L(n,e,t,i={}){let s=_(n,e,t),c={pending:0,running:0,completed:0,failed:0,cancelled:0,unknown:0};for(let u of n.all("SELECT status,COUNT(*) AS count FROM local_experiment_cases WHERE team_id=? AND execution_id=? GROUP BY status",[e,t]))c[u.status]=u.count;let r=n.get(`SELECT COALESCE(SUM(CASE WHEN status='settled' THEN cost_usd ELSE 0 END),0) AS spent,
3
3
  COALESCE(SUM(CASE WHEN status IN ('reserved','dispatched','unknown') THEN maximum_usd ELSE 0 END),0) AS held,
4
4
  COALESCE(SUM(CASE WHEN status IN ('dispatched','unknown') THEN 1 ELSE 0 END),0) AS uncertain FROM local_experiment_charges WHERE team_id=? AND execution_id=?`,[e,t]),l=p.parse({...s,...i,counts:c,usage:{knownCostUsd:r.spent,costUsd:r.uncertain?null:r.spent,heldUsd:r.held,uncertainRequests:r.uncertain}});return n.run("UPDATE local_experiment_executions SET payload=? WHERE team_id=? AND id=?",[JSON.stringify(l),e,t]),l}o(L,"refreshLocalExecution");function O(n,e,t,i,s,c){let r=n.get("SELECT kind,intent_hash,receipt FROM local_experiment_operations WHERE team_id=? AND operation_id=?",[e,t]);if(r){if(r.kind!==i||r.intent_hash!==s)throw new a("local_operation_conflict","This operation already owns different immutable inputs.");return JSON.parse(r.receipt)}let l=c();return n.run("INSERT INTO local_experiment_operations(team_id,operation_id,kind,intent_hash,receipt) VALUES(?,?,?,?,?)",[e,t,i,s,JSON.stringify(l)]),l}o(O,"localOperation");function w(n,e,t){n.run("INSERT INTO local_experiment_definitions(team_id,id,revision,content_hash,project_id,payload,package_payload) VALUES(?,?,?,?,?,?,?)",[e.teamId,e.id,e.revision,e.contentHash,e.configuration.request.project?.id??null,JSON.stringify(e),JSON.stringify(t)])}o(w,"writeLocalDefinition");var E=15e3;function T(n,e,t){let i=n.get("SELECT owner_id,pid,lease_until FROM local_experiment_owner WHERE singleton=1");if(i&&i.owner_id!==e&&S(i.pid))throw new a("local_runtime_already_owned","Another live local server owns Experiment execution in this installation.");n.run("INSERT INTO local_experiment_owner(singleton,owner_id,pid,lease_until) VALUES(1,?,?,?) ON CONFLICT(singleton) DO UPDATE SET owner_id=excluded.owner_id,pid=excluded.pid,lease_until=excluded.lease_until",[e,t,Date.now()+E])}o(T,"claimLocalExperimentOwner");function m(n,e){let t=n.get("SELECT owner_id,pid FROM local_experiment_owner WHERE singleton=1");if(!t||t.owner_id!==e||t.pid!==process.pid)throw new a("local_runtime_lease_lost","This process no longer owns local Experiment execution.")}o(m,"requireLocalRuntimeOwner");function R(n,e){m(n,e),n.run("UPDATE local_experiment_owner SET lease_until=? WHERE singleton=1 AND owner_id=?",[Date.now()+E,e])}o(R,"renewLocalExperimentOwner");function S(n){if(!Number.isSafeInteger(n)||n<=0)return!0;try{return process.kill(n,0),!0}catch(e){return!(e instanceof Error&&"code"in e&&e.code==="ESRCH")}}o(S,"alive");export{g as a,_ as b,f as c,L as d,O as e,w as f,T as g,m as h,R as i};
@@ -1,2 +1,2 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{a as T,b as M,c as U}from"./chunk-RG3NH6YQ.js";import{I as S,J as x,K as k,L as P}from"./chunk-KK626T3Z.js";import{A as a}from"./chunk-PF56N7ZY.js";import{a as c}from"./chunk-FTQLQJQV.js";import{randomUUID as N}from"node:crypto";var r=class extends Error{constructor(i,n){super(n);this.status=i}status;static{c(this,"EnclaveError")}};function b(e){let t;try{t=new URL(e)}catch{throw new r(400,"Enter a valid model endpoint URL.")}let i=["localhost","127.0.0.1","[::1]"].includes(t.hostname);if(t.protocol!=="https:"&&!(t.protocol==="http:"&&i)||t.username||t.password||t.search||t.hash)throw new r(400,"Use HTTPS, or HTTP for a local model, without credentials, a query, or fragment in the URL.");return t.toString().replace(/\/+$/,"").replace(/\/chat\/completions$/,"")}c(b,"normalizeModelEndpoint");async function w(e){let t=new AbortController,i=c(()=>t.abort(),"abort");e.signal?.addEventListener("abort",i,{once:!0}),e.signal?.aborted&&t.abort();let n=setTimeout(i,e.timeoutMs??15e3);try{let o=await(e.fetch??fetch)(`${b(e.endpoint)}/${e.path}`,{method:e.body===void 0?"GET":"POST",redirect:"error",signal:t.signal,headers:{...e.token?{Authorization:`Bearer ${e.token}`}:{},"Content-Type":"application/json","User-Agent":"OpenPond-Model-Connection/1.0"},...e.body===void 0?{}:{body:JSON.stringify(e.body)}});if(e.expectedStatus&&o.status===e.expectedStatus)return await o.body?.cancel(),null;if(!o.ok)throw await o.body?.cancel(),new r(o.status===401||o.status===403?401:o.status===503?503:502,o.status===401||o.status===403?"The endpoint rejected the API key. Check its credentials.":o.status===503?"The endpoint is starting or busy. Try again shortly.":"The endpoint did not return a compatible response.");if(!o.body)throw new r(502,"The endpoint returned an empty response.");let s=o.body.getReader(),d=[],l=0;try{for(;;){let p=await s.read();if(p.done)break;if(l+=p.value.byteLength,l>1024*1024)throw new r(502,"The endpoint response exceeded its size limit.");d.push(p.value)}}finally{await s.cancel().catch(()=>{}),s.releaseLock()}return JSON.parse(Buffer.concat(d).toString("utf8"))}catch(o){throw o instanceof r?o:t.signal.aborted?new r(408,e.signal?.aborted?"Request cancelled.":"The endpoint request timed out."):new r(502,"Could not reach a compatible model endpoint. Check the URL and service health.")}finally{clearTimeout(n),e.signal?.removeEventListener("abort",i)}}c(w,"remoteJson");var g="url-model:",f=a.object({providerName:a.string().trim().min(1).max(100).default("Models from URL"),name:a.string().trim().min(1).max(100),endpoint:a.string(),model:a.string().trim().min(1).max(300),protocol:a.enum(["openai","tvc"]),token:a.string().max(4096).regex(/^[\x21-\x7e]*$/)}),E=a.object({endpoint:a.string(),token:f.shape.token.default("")}).strict(),A=E.extend({name:f.shape.name,providerName:f.shape.providerName,model:f.shape.model}),L=a.object({id:a.string().regex(/^url:[a-f0-9-]{36}$/)}).strict(),y=c(e=>`${g}${e.slice(4)}`,"storageId"),$=c((e,t)=>({id:e,name:t.name,providerName:t.providerName,endpoint:t.endpoint,model:t.model,protocol:t.protocol,hasToken:!!t.token}),"publicModel");async function v(e){return Object.entries(await x(e,g)).map(([t,i])=>$(`url:${t.slice(g.length)}`,f.parse(i.value)))}c(v,"listUrlModels");async function j(e,t){if(!L.safeParse({id:t}).success)throw new r(400,"Select a saved URL model.");let i=await S(e,y(t));if(!i)throw new r(409,"This model connection was removed. Add it again in Providers.");return f.parse(i.value)}c(j,"resolveUrlModel");function D(e){let t=new Map;async function i(n,o){let s=b(n.endpoint),d=await w({...n,endpoint:s,path:"health",signal:o,fetch:e.fetch}).catch(h=>{if(o?.aborted)throw h;return null}),l=T.safeParse(d);if(l.success)return await w({...n,endpoint:s,path:"chat",body:{prompt:""},expectedStatus:400,signal:o,fetch:e.fetch}),{protocol:"tvc",models:[l.data.model],contextTokens:l.data.contextTokens};let p=await w({...n,endpoint:s,path:"models",signal:o,fetch:e.fetch}),m=a.object({data:a.array(a.object({id:a.string().min(1).max(300)})).max(5e3)}).safeParse(p);if(!m.success||!m.data.data.length)throw new r(502,"No models were returned. Use the API base URL, such as https://host/v1.");return{protocol:"openai",models:[...new Set(m.data.data.map(h=>h.id))]}}return c(i,"inspect"),async(n,o,s)=>{if(s?.throwIfAborted(),n==="list")return{models:await v(e.home)};if(n==="inspect"||n==="save"){let m=(n==="save"?A:E).safeParse(o);if(!m.success)throw new r(400,"Provide a valid endpoint, API key, model, and display name.");let h=await i(m.data,s);if(n==="inspect")return h;let u=A.parse(m.data);if(!h.models.includes(u.model))throw new r(400,"The selected model is no longer offered by this endpoint. Fetch models again.");s?.throwIfAborted();let C=(await v(e.home)).find(R=>R.providerName.toLocaleLowerCase()===u.providerName.toLocaleLowerCase())?.providerName??u.providerName,I=`url:${N()}`;return await k(e.home,y(I),{...u,providerName:C,endpoint:b(u.endpoint),protocol:h.protocol},null),{models:await v(e.home)}}let d=L.safeParse(n==="chat"&&o&&typeof o=="object"?{id:o.id}:o);if(!d.success)throw new r(400,"Select a saved model connection.");if(n==="remove")return t.get(d.data.id)?.abort(),await P(e.home,y(d.data.id)),{models:await v(e.home)};if(t.has(d.data.id))throw new r(409,"This model is busy. Cancel its current turn or wait for it to finish.");let l=new AbortController;t.set(d.data.id,l);let p=c(()=>l.abort(),"abort");s?.addEventListener("abort",p,{once:!0}),s?.aborted&&l.abort();try{let m=await j(e.home,d.data.id);if(m.protocol!=="tvc")throw new r(400,"This model uses the OpenAI-compatible chat API.");let h=U.safeParse({prompt:o.prompt});if(!h.success)throw new r(400,"Enter a text message of at most 1,024 UTF-8 bytes.");return M.parse(await w({...m,path:"chat",body:h.data,signal:l.signal,timeoutMs:31e4,fetch:e.fetch}))}finally{s?.removeEventListener("abort",p),t.delete(d.data.id)}}}c(D,"createEnclaveConnection");export{r as a,v as b,j as c,D as d};
2
+ import{a as T,b as M,c as U}from"./chunk-RG3NH6YQ.js";import{I as S,J as x,K as k,L as P}from"./chunk-2EPR4HLF.js";import{A as a}from"./chunk-PF56N7ZY.js";import{a as c}from"./chunk-FTQLQJQV.js";import{randomUUID as N}from"node:crypto";var r=class extends Error{constructor(i,n){super(n);this.status=i}status;static{c(this,"EnclaveError")}};function b(e){let t;try{t=new URL(e)}catch{throw new r(400,"Enter a valid model endpoint URL.")}let i=["localhost","127.0.0.1","[::1]"].includes(t.hostname);if(t.protocol!=="https:"&&!(t.protocol==="http:"&&i)||t.username||t.password||t.search||t.hash)throw new r(400,"Use HTTPS, or HTTP for a local model, without credentials, a query, or fragment in the URL.");return t.toString().replace(/\/+$/,"").replace(/\/chat\/completions$/,"")}c(b,"normalizeModelEndpoint");async function w(e){let t=new AbortController,i=c(()=>t.abort(),"abort");e.signal?.addEventListener("abort",i,{once:!0}),e.signal?.aborted&&t.abort();let n=setTimeout(i,e.timeoutMs??15e3);try{let o=await(e.fetch??fetch)(`${b(e.endpoint)}/${e.path}`,{method:e.body===void 0?"GET":"POST",redirect:"error",signal:t.signal,headers:{...e.token?{Authorization:`Bearer ${e.token}`}:{},"Content-Type":"application/json","User-Agent":"OpenPond-Model-Connection/1.0"},...e.body===void 0?{}:{body:JSON.stringify(e.body)}});if(e.expectedStatus&&o.status===e.expectedStatus)return await o.body?.cancel(),null;if(!o.ok)throw await o.body?.cancel(),new r(o.status===401||o.status===403?401:o.status===503?503:502,o.status===401||o.status===403?"The endpoint rejected the API key. Check its credentials.":o.status===503?"The endpoint is starting or busy. Try again shortly.":"The endpoint did not return a compatible response.");if(!o.body)throw new r(502,"The endpoint returned an empty response.");let s=o.body.getReader(),d=[],l=0;try{for(;;){let p=await s.read();if(p.done)break;if(l+=p.value.byteLength,l>1024*1024)throw new r(502,"The endpoint response exceeded its size limit.");d.push(p.value)}}finally{await s.cancel().catch(()=>{}),s.releaseLock()}return JSON.parse(Buffer.concat(d).toString("utf8"))}catch(o){throw o instanceof r?o:t.signal.aborted?new r(408,e.signal?.aborted?"Request cancelled.":"The endpoint request timed out."):new r(502,"Could not reach a compatible model endpoint. Check the URL and service health.")}finally{clearTimeout(n),e.signal?.removeEventListener("abort",i)}}c(w,"remoteJson");var g="url-model:",f=a.object({providerName:a.string().trim().min(1).max(100).default("Models from URL"),name:a.string().trim().min(1).max(100),endpoint:a.string(),model:a.string().trim().min(1).max(300),protocol:a.enum(["openai","tvc"]),token:a.string().max(4096).regex(/^[\x21-\x7e]*$/)}),E=a.object({endpoint:a.string(),token:f.shape.token.default("")}).strict(),A=E.extend({name:f.shape.name,providerName:f.shape.providerName,model:f.shape.model}),L=a.object({id:a.string().regex(/^url:[a-f0-9-]{36}$/)}).strict(),y=c(e=>`${g}${e.slice(4)}`,"storageId"),$=c((e,t)=>({id:e,name:t.name,providerName:t.providerName,endpoint:t.endpoint,model:t.model,protocol:t.protocol,hasToken:!!t.token}),"publicModel");async function v(e){return Object.entries(await x(e,g)).map(([t,i])=>$(`url:${t.slice(g.length)}`,f.parse(i.value)))}c(v,"listUrlModels");async function j(e,t){if(!L.safeParse({id:t}).success)throw new r(400,"Select a saved URL model.");let i=await S(e,y(t));if(!i)throw new r(409,"This model connection was removed. Add it again in Providers.");return f.parse(i.value)}c(j,"resolveUrlModel");function D(e){let t=new Map;async function i(n,o){let s=b(n.endpoint),d=await w({...n,endpoint:s,path:"health",signal:o,fetch:e.fetch}).catch(h=>{if(o?.aborted)throw h;return null}),l=T.safeParse(d);if(l.success)return await w({...n,endpoint:s,path:"chat",body:{prompt:""},expectedStatus:400,signal:o,fetch:e.fetch}),{protocol:"tvc",models:[l.data.model],contextTokens:l.data.contextTokens};let p=await w({...n,endpoint:s,path:"models",signal:o,fetch:e.fetch}),m=a.object({data:a.array(a.object({id:a.string().min(1).max(300)})).max(5e3)}).safeParse(p);if(!m.success||!m.data.data.length)throw new r(502,"No models were returned. Use the API base URL, such as https://host/v1.");return{protocol:"openai",models:[...new Set(m.data.data.map(h=>h.id))]}}return c(i,"inspect"),async(n,o,s)=>{if(s?.throwIfAborted(),n==="list")return{models:await v(e.home)};if(n==="inspect"||n==="save"){let m=(n==="save"?A:E).safeParse(o);if(!m.success)throw new r(400,"Provide a valid endpoint, API key, model, and display name.");let h=await i(m.data,s);if(n==="inspect")return h;let u=A.parse(m.data);if(!h.models.includes(u.model))throw new r(400,"The selected model is no longer offered by this endpoint. Fetch models again.");s?.throwIfAborted();let C=(await v(e.home)).find(R=>R.providerName.toLocaleLowerCase()===u.providerName.toLocaleLowerCase())?.providerName??u.providerName,I=`url:${N()}`;return await k(e.home,y(I),{...u,providerName:C,endpoint:b(u.endpoint),protocol:h.protocol},null),{models:await v(e.home)}}let d=L.safeParse(n==="chat"&&o&&typeof o=="object"?{id:o.id}:o);if(!d.success)throw new r(400,"Select a saved model connection.");if(n==="remove")return t.get(d.data.id)?.abort(),await P(e.home,y(d.data.id)),{models:await v(e.home)};if(t.has(d.data.id))throw new r(409,"This model is busy. Cancel its current turn or wait for it to finish.");let l=new AbortController;t.set(d.data.id,l);let p=c(()=>l.abort(),"abort");s?.addEventListener("abort",p,{once:!0}),s?.aborted&&l.abort();try{let m=await j(e.home,d.data.id);if(m.protocol!=="tvc")throw new r(400,"This model uses the OpenAI-compatible chat API.");let h=U.safeParse({prompt:o.prompt});if(!h.success)throw new r(400,"Enter a text message of at most 1,024 UTF-8 bytes.");return M.parse(await w({...m,path:"chat",body:h.data,signal:l.signal,timeoutMs:31e4,fetch:e.fetch}))}finally{s?.removeEventListener("abort",p),t.delete(d.data.id)}}}c(D,"createEnclaveConnection");export{r as a,v as b,j as c,D as d};
@@ -1,5 +1,5 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{a as $,b as C}from"./chunk-ZZWAQBA2.js";import{b as y,c as w,e as O}from"./chunk-YR5ID2SS.js";import{a as n}from"./chunk-FTQLQJQV.js";function v(r){return{list:n((e={})=>r.listSandboxRuntimes(e),"list"),create:n(e=>r.createSandboxRuntime(e),"create"),handle:n((e,t=null)=>r.sandboxRuntime(e,t),"handle"),get:n(e=>r.getSandboxRuntime(e),"get"),createSandbox:n((e,t={},o={})=>r.createSandboxRuntimeSandbox(e,t,o),"createSandbox"),updateStatus:n((e,t)=>r.updateSandboxRuntimeStatus(e,t),"updateStatus"),events:n(e=>r.listSandboxRuntimeEvents(e),"events"),event:n((e,t)=>r.emitSandboxRuntimeEvent(e,t),"event"),checkpoint:n((e,t={})=>r.checkpointSandboxRuntime(e,t),"checkpoint"),promote:n((e,t,o={})=>r.promoteSandboxRuntime(e,t,o),"promote"),preserveSource:n((e,t={},o={})=>r.preserveSandboxRuntimeSource(e,t,o),"preserveSource")}}n(v,"createSandboxRuntimeNamespace");function A(r){return{list:n((e={})=>r.list(e),"list"),create:n(e=>r.create(e),"create"),get:n(e=>r.get(e),"get"),pricing:n(()=>r.pricing(),"pricing"),costs:n((e={})=>r.costs(e),"costs")}}n(A,"createSandboxNamespace");function j(r){return{list:n(e=>r.listProjects(e),"list"),upsert:n(e=>r.upsertProject(e),"upsert"),upsertGitRemote:n(e=>r.upsertProjectGitRemote(e),"upsertGitRemote"),get:n((e,t)=>r.getProject(e,t),"get"),update:n((e,t)=>r.updateProject(e,t),"update"),sync:n((e,t)=>r.syncProject(e,t),"sync"),ensureGitRemote:n((e,t)=>r.ensureProjectGitRemote(e,t),"ensureGitRemote"),getGitRemote:n((e,t)=>r.ensureProjectGitRemote(e,t),"getGitRemote"),git:n((e,t)=>r.ensureProjectGitRemote(e,t),"git"),uploadSource:n((e,t)=>r.uploadProjectSource(e,t),"uploadSource"),archive:n((e,t)=>r.archiveProject(e,t),"archive")}}n(j,"createSandboxProjectNamespace");function T(r){return{get:n(e=>r.getHostedProfile(e),"get"),status:n(e=>r.getHostedProfile(e),"status"),ensureHosted:n(e=>r.ensureHostedProfile(e),"ensureHosted"),push:n(e=>r.pushHostedProfile(e),"push")}}n(T,"createSandboxProfileNamespace");function k(r){return{list:n(e=>r.listAgents(e),"list"),upsert:n(e=>r.upsertAgent(e),"upsert"),get:n((e,t)=>r.getAgent(e,t),"get"),update:n((e,t)=>r.updateAgent(e,t),"update"),archive:n((e,t)=>r.archiveAgent(e,t),"archive"),run:n((e,t)=>r.runAgent(e,t),"run"),sourceDeployPlan:n((e,t)=>r.getAgentSourceDeployPlan(e,t),"sourceDeployPlan"),manifestSnapshots:n((e,t)=>r.listAgentManifestSnapshots(e,t),"manifestSnapshots"),requestSourceChecks:n((e,t)=>r.requestAgentSourceChecks(e,t),"requestSourceChecks"),configureSourceSetup:n((e,t)=>r.configureAgentSourceSetup(e,t),"configureSourceSetup"),publishSource:n((e,t)=>r.publishAgentSource(e,t),"publishSource")}}n(k,"createSandboxAgentNamespace");function E(r,e,t=null){let o=n(async(a={},d={})=>{let f=await r.getSandboxRuntime(e);return f.sandboxId?r.get(f.sandboxId):r.createSandboxRuntimeSandbox(e,a,d).then(m=>m.sandbox)},"currentSandbox"),s=n(async(a={},d={})=>{let f=await r.getSandboxRuntime(e);if(!f.sandboxId)return r.createSandboxRuntimeSandbox(e,a,d).then(h=>h.sandbox);let m=await r.get(f.sandboxId);return m.state==="stopped"?r.start(m.id,d).then(h=>h.sandbox):m.state==="archived"?r.restore(m.id).then(h=>h.sandbox):m.state==="deleted"||m.state==="error"?r.createSandboxRuntimeSandbox(e,a,d).then(h=>h.sandbox):m},"resume");return{id:e,initial:t,get:n(()=>r.getSandboxRuntime(e),"get"),sandbox:o,resume:s,createSandbox:n((a={},d={})=>r.createSandboxRuntimeSandbox(e,a,d),"createSandbox"),status:n(async a=>{if(typeof a!="string")return r.updateSandboxRuntimeStatus(e,a);let d=await r.getSandboxRuntime(e);return r.updateSandboxRuntimeStatus(e,{status:a,expectedVersion:d.version})},"status"),events:n(()=>r.listSandboxRuntimeEvents(e),"events"),event:n(a=>r.emitSandboxRuntimeEvent(e,a),"event"),recordCommit:n((a,d={})=>r.emitSandboxRuntimeEvent(e,{...d,type:d.type??"git.commit",commitSha:a}),"recordCommit"),checkpointHint:n((a={})=>r.emitSandboxRuntimeEvent(e,{type:"workflow.checkpoint_hint",summary:a.summary??a.reason??"Workflow checkpoint hint",payload:{...a.payload,reason:a.reason??null},artifactRefs:a.artifactRefs,lifecycleHint:{kind:"checkpoint",reason:a.reason??null}}),"checkpointHint"),waitForUser:n(async(a={})=>{await r.emitSandboxRuntimeEvent(e,{type:"workflow.waiting_for_user",summary:a.summary??a.reason??"Waiting for user",payload:{...a.payload,reason:a.reason??null},lifecycleHint:{kind:"waiting_for_user",reason:a.reason??null}});let d=await r.getSandboxRuntime(e);return d.status==="waiting_for_user"?d:r.updateSandboxRuntimeStatus(e,{status:"waiting_for_user",expectedVersion:d.version,summary:a.summary??a.reason,metadata:{workflowWaitForUserReason:a.reason??null}})},"waitForUser"),keepAlive:n((a={})=>{let d=D(a);return r.emitSandboxRuntimeEvent(e,{type:"workflow.keepalive",summary:a.summary??a.reason??"Workflow keepalive",payload:{...a.payload,reason:a.reason??null,keepaliveUntil:d},lifecycleHint:{kind:"keepalive",reason:a.reason??null,keepaliveUntil:d}})},"keepAlive"),checkpoint:n(a=>r.checkpointSandboxRuntime(e,a),"checkpoint"),files:{write:n(async(a,d)=>r.uploadFile((await s()).id,a,d),"write"),read:n(async a=>r.downloadFile((await s()).id,a),"read"),readResponse:n(async a=>r.downloadFileResponse((await s()).id,a),"readResponse"),list:n(async(a={})=>r.listFiles((await s()).id,a),"list"),delete:n(async(a,d={})=>r.deleteFile((await s()).id,a,d),"delete"),search:n(async a=>r.searchFiles((await s()).id,a),"search"),stat:n(async a=>r.statFile((await s()).id,a),"stat"),mkdir:n(async a=>r.mkdir((await s()).id,a),"mkdir"),move:n(async a=>r.moveFile((await s()).id,a),"move")},commands:{run:n(async a=>r.exec((await s()).id,typeof a=="string"?{command:a}:a),"run")},ports:{expose:n(async a=>r.openPort((await s()).id,typeof a=="number"?{port:a}:a),"expose")},promote:n((a,d={})=>r.promoteSandboxRuntime(e,a,d),"promote"),preserveSource:n((a={},d={})=>r.preserveSandboxRuntimeSource(e,a,d),"preserveSource"),archive:n(async a=>{let d=a??(await r.getSandboxRuntime(e)).version;return r.updateSandboxRuntimeStatus(e,{status:"archived",expectedVersion:d})},"archive")}}n(E,"createSandboxRuntimeHandle");function D(r){if(r?.until instanceof Date)return r.until.toISOString();if(typeof r?.until=="string"&&r.until.trim())return new Date(r.until).toISOString();let e=typeof r?.seconds=="number"&&Number.isFinite(r.seconds)?Math.max(1,Math.trunc(r.seconds)):60;return new Date(Date.now()+e*1e3).toISOString()}n(D,"runtimeKeepaliveUntilIso");async function z(r,e={}){let t=`openpond-code-smoke-${Date.now()}`,o=`openpond-code-exec-ok:${t}`,s=`openpond-code-preview-ok:${t}`,i=`openpond-code-file-ok:${t}`,c=4173,u=null,a=null,d=!1,f=!1;try{let m=await N(r,await r.create({repo:e.repo??"https://github.com/octocat/Hello-World",resources:{cpu:e.cpu??1,memoryGb:e.memoryGb??1,diskGb:e.diskGb??8},budget:{maxUsd:e.budgetUsd??"0.05"},quotas:{maxSpendUsd:e.budgetUsd??"0.05",maxDurationSeconds:600,idleTimeoutSeconds:600,maxOpenPorts:2},metadata:{runId:t,source:"openpond-code-sandbox-smoke"}},{async:!0}));u=m.id;let h=e.expectedMppMode;if(h&&m.reservation.mpp?.mode!==h)throw new Error(`expected ${h} reservation, got ${m.reservation.mpp?.mode??"none"}`);if(!h&&!m.reservation.mpp?.mode)throw new Error("expected sandbox reservation MPP metadata");let R=await r.exec(m.id,{command:[`printf '${o}\\n'`,"test -f README && printf 'repo-clone-ok\\n'","cat > server.cjs <<'EOF'","const { createServer } = require('node:http');",`createServer((_request, response) => response.end('${s}')).listen(${c}, '0.0.0.0');`,"EOF","nohup node server.cjs > server.log 2>&1 & sleep 1"].join(`
2
+ import{a as $,b as C}from"./chunk-XWDFXM3S.js";import{b as y,c as w,e as O}from"./chunk-JCLTFDVW.js";import{a as n}from"./chunk-FTQLQJQV.js";function v(r){return{list:n((e={})=>r.listSandboxRuntimes(e),"list"),create:n(e=>r.createSandboxRuntime(e),"create"),handle:n((e,t=null)=>r.sandboxRuntime(e,t),"handle"),get:n(e=>r.getSandboxRuntime(e),"get"),createSandbox:n((e,t={},o={})=>r.createSandboxRuntimeSandbox(e,t,o),"createSandbox"),updateStatus:n((e,t)=>r.updateSandboxRuntimeStatus(e,t),"updateStatus"),events:n(e=>r.listSandboxRuntimeEvents(e),"events"),event:n((e,t)=>r.emitSandboxRuntimeEvent(e,t),"event"),checkpoint:n((e,t={})=>r.checkpointSandboxRuntime(e,t),"checkpoint"),promote:n((e,t,o={})=>r.promoteSandboxRuntime(e,t,o),"promote"),preserveSource:n((e,t={},o={})=>r.preserveSandboxRuntimeSource(e,t,o),"preserveSource")}}n(v,"createSandboxRuntimeNamespace");function A(r){return{list:n((e={})=>r.list(e),"list"),create:n(e=>r.create(e),"create"),get:n(e=>r.get(e),"get"),pricing:n(()=>r.pricing(),"pricing"),costs:n((e={})=>r.costs(e),"costs")}}n(A,"createSandboxNamespace");function j(r){return{list:n(e=>r.listProjects(e),"list"),upsert:n(e=>r.upsertProject(e),"upsert"),upsertGitRemote:n(e=>r.upsertProjectGitRemote(e),"upsertGitRemote"),get:n((e,t)=>r.getProject(e,t),"get"),update:n((e,t)=>r.updateProject(e,t),"update"),sync:n((e,t)=>r.syncProject(e,t),"sync"),ensureGitRemote:n((e,t)=>r.ensureProjectGitRemote(e,t),"ensureGitRemote"),getGitRemote:n((e,t)=>r.ensureProjectGitRemote(e,t),"getGitRemote"),git:n((e,t)=>r.ensureProjectGitRemote(e,t),"git"),uploadSource:n((e,t)=>r.uploadProjectSource(e,t),"uploadSource"),archive:n((e,t)=>r.archiveProject(e,t),"archive")}}n(j,"createSandboxProjectNamespace");function T(r){return{get:n(e=>r.getHostedProfile(e),"get"),status:n(e=>r.getHostedProfile(e),"status"),ensureHosted:n(e=>r.ensureHostedProfile(e),"ensureHosted"),push:n(e=>r.pushHostedProfile(e),"push")}}n(T,"createSandboxProfileNamespace");function k(r){return{list:n(e=>r.listAgents(e),"list"),upsert:n(e=>r.upsertAgent(e),"upsert"),get:n((e,t)=>r.getAgent(e,t),"get"),update:n((e,t)=>r.updateAgent(e,t),"update"),archive:n((e,t)=>r.archiveAgent(e,t),"archive"),run:n((e,t)=>r.runAgent(e,t),"run"),sourceDeployPlan:n((e,t)=>r.getAgentSourceDeployPlan(e,t),"sourceDeployPlan"),manifestSnapshots:n((e,t)=>r.listAgentManifestSnapshots(e,t),"manifestSnapshots"),requestSourceChecks:n((e,t)=>r.requestAgentSourceChecks(e,t),"requestSourceChecks"),configureSourceSetup:n((e,t)=>r.configureAgentSourceSetup(e,t),"configureSourceSetup"),publishSource:n((e,t)=>r.publishAgentSource(e,t),"publishSource")}}n(k,"createSandboxAgentNamespace");function E(r,e,t=null){let o=n(async(a={},d={})=>{let f=await r.getSandboxRuntime(e);return f.sandboxId?r.get(f.sandboxId):r.createSandboxRuntimeSandbox(e,a,d).then(m=>m.sandbox)},"currentSandbox"),s=n(async(a={},d={})=>{let f=await r.getSandboxRuntime(e);if(!f.sandboxId)return r.createSandboxRuntimeSandbox(e,a,d).then(h=>h.sandbox);let m=await r.get(f.sandboxId);return m.state==="stopped"?r.start(m.id,d).then(h=>h.sandbox):m.state==="archived"?r.restore(m.id).then(h=>h.sandbox):m.state==="deleted"||m.state==="error"?r.createSandboxRuntimeSandbox(e,a,d).then(h=>h.sandbox):m},"resume");return{id:e,initial:t,get:n(()=>r.getSandboxRuntime(e),"get"),sandbox:o,resume:s,createSandbox:n((a={},d={})=>r.createSandboxRuntimeSandbox(e,a,d),"createSandbox"),status:n(async a=>{if(typeof a!="string")return r.updateSandboxRuntimeStatus(e,a);let d=await r.getSandboxRuntime(e);return r.updateSandboxRuntimeStatus(e,{status:a,expectedVersion:d.version})},"status"),events:n(()=>r.listSandboxRuntimeEvents(e),"events"),event:n(a=>r.emitSandboxRuntimeEvent(e,a),"event"),recordCommit:n((a,d={})=>r.emitSandboxRuntimeEvent(e,{...d,type:d.type??"git.commit",commitSha:a}),"recordCommit"),checkpointHint:n((a={})=>r.emitSandboxRuntimeEvent(e,{type:"workflow.checkpoint_hint",summary:a.summary??a.reason??"Workflow checkpoint hint",payload:{...a.payload,reason:a.reason??null},artifactRefs:a.artifactRefs,lifecycleHint:{kind:"checkpoint",reason:a.reason??null}}),"checkpointHint"),waitForUser:n(async(a={})=>{await r.emitSandboxRuntimeEvent(e,{type:"workflow.waiting_for_user",summary:a.summary??a.reason??"Waiting for user",payload:{...a.payload,reason:a.reason??null},lifecycleHint:{kind:"waiting_for_user",reason:a.reason??null}});let d=await r.getSandboxRuntime(e);return d.status==="waiting_for_user"?d:r.updateSandboxRuntimeStatus(e,{status:"waiting_for_user",expectedVersion:d.version,summary:a.summary??a.reason,metadata:{workflowWaitForUserReason:a.reason??null}})},"waitForUser"),keepAlive:n((a={})=>{let d=D(a);return r.emitSandboxRuntimeEvent(e,{type:"workflow.keepalive",summary:a.summary??a.reason??"Workflow keepalive",payload:{...a.payload,reason:a.reason??null,keepaliveUntil:d},lifecycleHint:{kind:"keepalive",reason:a.reason??null,keepaliveUntil:d}})},"keepAlive"),checkpoint:n(a=>r.checkpointSandboxRuntime(e,a),"checkpoint"),files:{write:n(async(a,d)=>r.uploadFile((await s()).id,a,d),"write"),read:n(async a=>r.downloadFile((await s()).id,a),"read"),readResponse:n(async a=>r.downloadFileResponse((await s()).id,a),"readResponse"),list:n(async(a={})=>r.listFiles((await s()).id,a),"list"),delete:n(async(a,d={})=>r.deleteFile((await s()).id,a,d),"delete"),search:n(async a=>r.searchFiles((await s()).id,a),"search"),stat:n(async a=>r.statFile((await s()).id,a),"stat"),mkdir:n(async a=>r.mkdir((await s()).id,a),"mkdir"),move:n(async a=>r.moveFile((await s()).id,a),"move")},commands:{run:n(async a=>r.exec((await s()).id,typeof a=="string"?{command:a}:a),"run")},ports:{expose:n(async a=>r.openPort((await s()).id,typeof a=="number"?{port:a}:a),"expose")},promote:n((a,d={})=>r.promoteSandboxRuntime(e,a,d),"promote"),preserveSource:n((a={},d={})=>r.preserveSandboxRuntimeSource(e,a,d),"preserveSource"),archive:n(async a=>{let d=a??(await r.getSandboxRuntime(e)).version;return r.updateSandboxRuntimeStatus(e,{status:"archived",expectedVersion:d})},"archive")}}n(E,"createSandboxRuntimeHandle");function D(r){if(r?.until instanceof Date)return r.until.toISOString();if(typeof r?.until=="string"&&r.until.trim())return new Date(r.until).toISOString();let e=typeof r?.seconds=="number"&&Number.isFinite(r.seconds)?Math.max(1,Math.trunc(r.seconds)):60;return new Date(Date.now()+e*1e3).toISOString()}n(D,"runtimeKeepaliveUntilIso");async function z(r,e={}){let t=`openpond-code-smoke-${Date.now()}`,o=`openpond-code-exec-ok:${t}`,s=`openpond-code-preview-ok:${t}`,i=`openpond-code-file-ok:${t}`,c=4173,u=null,a=null,d=!1,f=!1;try{let m=await N(r,await r.create({repo:e.repo??"https://github.com/octocat/Hello-World",resources:{cpu:e.cpu??1,memoryGb:e.memoryGb??1,diskGb:e.diskGb??8},budget:{maxUsd:e.budgetUsd??"0.05"},quotas:{maxSpendUsd:e.budgetUsd??"0.05",maxDurationSeconds:600,idleTimeoutSeconds:600,maxOpenPorts:2},metadata:{runId:t,source:"openpond-code-sandbox-smoke"}},{async:!0}));u=m.id;let h=e.expectedMppMode;if(h&&m.reservation.mpp?.mode!==h)throw new Error(`expected ${h} reservation, got ${m.reservation.mpp?.mode??"none"}`);if(!h&&!m.reservation.mpp?.mode)throw new Error("expected sandbox reservation MPP metadata");let R=await r.exec(m.id,{command:[`printf '${o}\\n'`,"test -f README && printf 'repo-clone-ok\\n'","cat > server.cjs <<'EOF'","const { createServer } = require('node:http');",`createServer((_request, response) => response.end('${s}')).listen(${c}, '0.0.0.0');`,"EOF","nohup node server.cjs > server.log 2>&1 & sleep 1"].join(`
3
3
  `),timeoutSeconds:120});if(R.command.status!=="succeeded")throw new Error(`expected command success, got ${R.command.status}`);if(!R.command.output.includes(o))throw new Error("expected exec marker");if(await r.uploadFile(m.id,"openpond-code-smoke.txt",i),await r.downloadFile(m.id,"openpond-code-smoke.txt")!==i)throw new Error("expected file roundtrip marker");let g=null;if(e.snapshot||e.fork){let S=await r.createSnapshot(m.id,{async:!0,name:`openpond-code-smoke-${t}`,replay:{entrypoints:[{command:"cat openpond-code-smoke.txt",name:"default"}],retention:{class:"pinned"},safety:{cleanup:"delete",idleTimeoutSeconds:600,internetEgress:"block",maxDurationSeconds:600,maxSpendUsd:e.budgetUsd??"0.05",publicPreview:!1},validation:{commands:[{command:"test -f openpond-code-smoke.txt"}]}}}),p=S.snapshot??(await K(r,m.id,S.snapshotJob?.snapshotId)).snapshot;if(g=p.id,p.state!=="ready")throw new Error(`expected ready snapshot, got ${p.state}`)}if(e.fork){if(!g)throw new Error("expected snapshot id before fork");let S=await N(r,(await r.forkSnapshot(g,{budget:{maxUsd:e.budgetUsd??"0.05"},metadata:{source:"openpond-code-sandbox-smoke-fork",templateSnapshotId:g}},{async:!0})).sandbox);a=S.id;let p=await r.exec(S.id,{command:"cat openpond-code-smoke.txt",timeoutSeconds:120});if(p.command.status!=="succeeded")throw new Error(`expected fork command success, got ${p.command.status}`);if(!p.command.output.includes(i))throw new Error("expected fork snapshot marker");e.keep||(await q(r,S.id),f=!0)}let x=null;if(e.preview!==!1){let S=await r.openPort(m.id,{label:"openpond-code-smoke",port:c}),p=await fetch(S.preview.url);x=p.status;let B=await p.text();if(p.status!==200)throw new Error(`expected preview HTTP 200, got ${p.status}`);if(!B.includes(s))throw new Error("expected preview marker")}let{sandbox:M,receipts:F}=await H(r,m.id);return e.keep||(await q(r,m.id),d=!0),{deleted:d,execOutput:R.command.output.trim(),fileRoundtrip:!0,forkSandboxId:a,previewStatus:x,receiptRefs:F.map(S=>S.mpp.receiptRef??null),reservationRef:m.reservation.mpp?.reservationRef??null,runId:t,sandboxId:m.id,snapshotId:g,state:M.state}}finally{a&&!e.keep&&!f&&await L(r,a),u&&!e.keep&&!d&&await L(r,u)}}n(z,"runSandboxSmoke");async function H(r,e){try{await r.stop(e)}catch{await r.stop(e,{async:!0})}let t=await J(r,e,new Set(["stopped","deleted"]),"stop"),o=await G(r,e);if(o.length===0)throw new Error("expected receipt readback");return{sandbox:t,receipts:o}}n(H,"stopSandboxForSmoke");async function q(r,e){try{let t=await r.delete(e);if(t.state==="deleted")return t;await r.delete(e,{async:!0})}catch{await r.delete(e,{async:!0})}return J(r,e,new Set(["deleted"]),"delete")}n(q,"deleteSandboxForSmoke");async function L(r,e){try{await q(r,e)}catch{await r.delete(e,{async:!0}).catch(()=>{})}}n(L,"cleanupSandboxBestEffort");async function J(r,e,t,o){let c=Date.now()+3e5,u=await r.get(e);for(;Date.now()<c;){if(t.has(u.state))return u;if(u.state==="error")throw new Error(`sandbox ${o} failed: ${e}`);await I(3e3),u=await r.get(e)}throw new Error(`sandbox ${o} did not reach ${[...t].join("/")} before timeout: ${e} (${u.state})`)}n(J,"waitForSandboxState");async function G(r,e){let s=Date.now()+12e4,i=await r.receipts(e);for(;Date.now()<s;){if(i.length>0)return i;await I(3e3),i=await r.receipts(e)}return i}n(G,"waitForReceipts");async function N(r,e){if(e.state==="running"||e.state==="stopped")return e;if(e.state==="error")throw new Error(`sandbox create failed: ${e.id}
4
4
  ${e.logs.join(`
5
5
  `)}`);let t=12*6e4,o=3e3,s=Date.now()+t,i=e;for(;Date.now()<s;){if(await I(o),i=await r.get(e.id),i.state==="running"||i.state==="stopped")return i;if(i.state==="error")throw new Error(`sandbox create failed: ${i.id}
@@ -1,2 +1,2 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{a as E}from"./chunk-QRJPLZF7.js";import{h as c,i as _}from"./chunk-PWK5Z5S3.js";import{d as j}from"./chunk-OZ6LRNRE.js";import{G as v,I as A,J as t,K as d,L as o,M as g,N as l,P as I,Q as C,T as k,U as w,Y as y,k as P,q as i,u as r,x as R}from"./chunk-6DCXAXVD.js";import{c as f,f as n}from"./chunk-OE22TAXP.js";import{d as q,e as T}from"./chunk-PBZCXPPC.js";import{A as e}from"./chunk-PF56N7ZY.js";import{a as u}from"./chunk-FTQLQJQV.js";var b="local_path:";function Z(p){return`${b}${p.trim()}`}u(Z,"localPathWorkspaceId");function ee(p){return p.startsWith(b)&&p.slice(b.length).trim()||null}u(ee,"workspacePathFromLocalPathWorkspaceId");var ne=e.object({appId:e.string(),source:e.enum(["openpond","github","local_git","local_folder","unknown"]),workspacePath:e.string(),repoPath:e.string(),initialized:e.boolean(),remoteUrl:e.string().nullable(),expectedRemoteUrl:e.string().nullable(),currentBranch:e.string().nullable(),headCommit:e.string().nullable().optional().default(null),upstreamBranch:e.string().nullable().optional().default(null),ahead:e.number().int().nonnegative().optional().default(0),behind:e.number().int().nonnegative().optional().default(0),diverged:e.boolean().optional().default(!1),linkedSourceHeadCommit:e.string().nullable().optional().default(null),aheadOfLinkedSource:e.number().int().nonnegative().optional().default(0),behindLinkedSource:e.number().int().nonnegative().optional().default(0),divergedFromLinkedSource:e.boolean().optional().default(!1),linkedSourceComparisonError:e.string().nullable().optional().default(null),lastFetchAt:e.string().nullable().optional().default(null),defaultBranch:e.string().nullable(),branches:e.array(e.string()),dirty:e.boolean(),changedFilesCount:e.number(),untrackedFilesCount:e.number(),error:e.string().nullable(),updatedAt:e.string()}),O=e.object({path:e.string(),status:e.string(),additions:e.number(),deletions:e.number(),patch:e.string(),content:e.string().nullable().optional().default(null),contentType:e.string().optional(),contentEncoding:e.enum(["base64"]).optional(),readVersion:e.string().nullable().optional(),readStamp:e.string().optional()}),te=e.object({appId:e.string(),repoPath:e.string(),initialized:e.boolean(),dirty:e.boolean(),filesChanged:e.number(),additions:e.number(),deletions:e.number(),repoFiles:e.array(e.string()).optional().default([]),files:e.array(O),error:e.string().nullable(),updatedAt:e.string()}),oe=e.object({branch:e.string().trim().min(1).max(160)}),ae=e.object({path:e.string().trim().min(1),content:e.string()}),M=e.object({line:e.number().int().nonnegative(),character:e.number().int().nonnegative()}),U=e.object({start:M,end:M}),N=e.object({path:e.string(),range:U,severity:e.enum(["error","warning","info","hint"]),message:e.string(),source:e.string().nullable().optional().default(null),code:e.string().nullable().optional().default(null)}),W=e.object({id:e.string(),root:e.string(),status:e.enum(["connected","unavailable","error"]),message:e.string().nullable().optional().default(null)}),ie=e.object({path:e.string().trim().min(1),content:e.string().optional(),waitForDiagnostics:e.boolean().optional().default(!0)}),re=e.object({appId:e.string(),path:e.string(),diagnostics:e.array(N),servers:e.array(W),updatedAt:e.string()}),K=e.object({operation:e.enum(["hover","definition","references","documentSymbol"]),path:e.string().trim().min(1),content:e.string().optional(),line:e.number().int().nonnegative().optional(),character:e.number().int().nonnegative().optional()}),le=e.object({appId:e.string(),operation:K.shape.operation,path:e.string(),results:e.unknown(),servers:e.array(W),updatedAt:e.string()}),h=e.object({pinned:e.boolean().optional(),archived:e.boolean().optional(),order:e.number().optional()}),se=e.record(e.string(),h),z=e.object({path:e.string().min(1),title:e.string().min(1),contentType:e.string().min(1),sizeBytes:e.number().nonnegative().nullable(),sandboxId:e.string().nullable(),revision:e.string().optional(),updatedAt:e.string().optional()}),me=e.object({files:e.array(z)});var a=e.object({source:e.enum(["local","github","openpond_git"]),repositoryId:e.string().trim().min(1),profileId:e.string().trim().min(1)}),B=e.object({ref:a,revision:e.string().nullable(),sourceHash:e.string()});var s=e.enum(["chat","work","development"]),be=e.enum(["chat","models","console","development"]),D="work";var S=e.enum(["openpond.lab"]),x=e.object({id:e.string(),experience:s.default(D),provider:t,modelRef:n.nullable().optional(),openPondCommandAccessMode:o.default(A),systemKind:S.nullable().optional(),hiddenFromDefaultSidebar:e.boolean().optional(),parentSessionId:e.string().nullable().optional(),parentTurnId:e.string().nullable().optional(),subagentRunId:e.string().nullable().optional(),subagentRoleId:i.nullable().optional(),subagentDelegationMode:r.nullable().optional(),title:e.string(),appId:e.string().nullable(),appName:e.string().nullable(),workspaceKind:l.optional(),workspaceId:e.string().nullable().optional(),workspaceName:e.string().nullable().optional(),localProjectId:e.string().nullable().optional(),cloudProjectId:e.string().nullable().optional(),cloudTeamId:e.string().nullable().optional(),currentProfile:a.nullable().optional(),profileWorkflowBinding:q.nullable().optional(),profileComponentBinding:T.nullable().optional(),metadata:e.record(e.string(),e.unknown()).optional(),cwd:e.string().nullable(),codexThreadId:e.string().nullable(),nativeAgent:e.object({provider:e.union([e.enum(["claude-code","grok-build","opencode"]),f]),instanceId:e.string().min(1),sessionId:e.string().min(1),cwd:e.string().min(1)}).nullable().optional(),createdAt:e.string(),updatedAt:e.string(),status:e.enum(["idle","active","failed","closed"]),runtimeSeconds:e.number().int().nonnegative().optional(),runtimeRunningSince:e.string().nullable().optional(),pinned:e.boolean(),savedForLater:e.boolean().optional(),archived:e.boolean(),order:e.number()}),we=e.object({id:e.string(),sessionId:e.string(),providerTurnId:e.string().nullable(),modelRef:n.nullable().optional(),prompt:e.string(),startedAt:e.string(),completedAt:e.string().nullable(),status:e.enum(["in_progress","completed","failed","interrupted"]),error:e.string().nullable(),metadata:e.record(e.string(),e.unknown()).optional().default({}),createImproveRun:c.nullable().optional().default(null),profileSnapshot:B.nullable().optional(),harnessSnapshot:j.nullable().optional()});var F=e.object({id:e.string().trim().min(1).max(191),agentId:e.string().trim().min(1).max(191).optional().nullable(),sourcePath:e.string().trim().min(1).max(2e3).optional().nullable(),sourceActionId:e.string().trim().min(1).max(191).optional().nullable(),name:e.string().trim().min(1).max(191).optional().nullable(),label:e.string().trim().min(1).max(160).optional().nullable(),description:e.string().trim().max(1e3).optional().nullable(),visibility:e.string().trim().max(80).optional().nullable(),inputSchema:e.union([e.string().trim().max(191),e.record(e.string(),e.unknown())]).optional().nullable(),outputSchema:e.union([e.string().trim().max(191),e.record(e.string(),e.unknown())]).optional().nullable(),approvalPolicy:e.record(e.string(),e.unknown()).optional().nullable(),artifactPolicy:e.record(e.string(),e.unknown()).optional().nullable(),setupRequirements:e.array(e.record(e.string(),e.unknown())).optional(),mcp:e.record(e.string(),e.unknown()).optional().nullable(),schedulePolicy:e.record(e.string(),e.unknown()).optional().nullable(),trace:e.record(e.string(),e.unknown()).optional().nullable(),implementation:e.record(e.string(),e.unknown()).optional().nullable(),invokesModel:e.boolean().optional()});var H=e.enum(["slack","microsoft_teams","github","google","turnkey","x","mcp"]),V=e.enum(["slack","microsoft_teams","github","google","turnkey","x","mcp"]),X=e.enum(["native_bot","oauth_connector","wallet_connector","mcp_endpoint"]),$=e.object({kind:e.literal("integration"),provider:H,appIds:e.array(V).min(1).max(4),setupSurfaces:e.array(X).min(1).max(4),connectionIds:e.array(e.string().trim().min(1)).max(8).optional(),capabilities:e.array(e.string().trim().min(1)).max(64).optional()}).strict(),m={maxAttachments:10,maxAttachmentBytes:12*1024*1024,maxAttachmentBase64Chars:Math.ceil(12*1024*1024*4/3)+16,maxTextChars:2e5},G=e.enum(["image","text","file"]),J=e.object({sessionId:e.string().trim().min(1).max(200),turnId:e.string().trim().min(1).max(200),attachmentId:e.string().trim().min(1).max(200),storageName:e.string().trim().min(1).max(240),contentType:e.string().trim().min(1).max(160)}),Q=e.object({sessionId:e.string().trim().min(1).max(200),turnId:e.string().trim().min(1).max(200),attachmentId:e.string().trim().min(1).max(200),storageName:e.string().trim().min(1).max(1024),contentType:e.string().trim().min(1).max(160)}),L=e.object({id:e.string().trim().min(1),name:e.string().trim().min(1).max(240),mediaType:e.string().trim().min(1).max(160),sizeBytes:e.number().int().nonnegative().max(m.maxAttachmentBytes),kind:G,lineCount:e.number().int().nonnegative().max(m.maxAttachmentBytes+1).optional(),relativePath:e.string().trim().min(1).max(1024).optional(),text:e.string().max(m.maxTextChars).optional(),contentsBase64:e.string().max(m.maxAttachmentBase64Chars).optional()}),Xe=L.omit({text:!0,contentsBase64:!0}).extend({imagePreview:J.optional(),filePreview:Q.optional()}),$e=e.object({experience:s.optional(),provider:t.default(v),modelRef:n.optional(),openPondCommandAccessMode:o.optional(),systemKind:S.nullable().optional(),hiddenFromDefaultSidebar:e.boolean().optional(),parentSessionId:e.string().trim().min(1).max(200).nullable().optional(),parentTurnId:e.string().trim().min(1).max(200).nullable().optional(),subagentRunId:e.string().trim().min(1).max(200).nullable().optional(),subagentRoleId:i.nullable().optional(),subagentDelegationMode:r.nullable().optional(),appId:e.string().nullable().optional(),appName:e.string().nullable().optional(),workspaceKind:l.optional(),workspaceId:e.string().nullable().optional(),workspaceName:e.string().nullable().optional(),localProjectId:e.string().nullable().optional(),cloudProjectId:e.string().nullable().optional(),cloudTeamId:e.string().nullable().optional(),currentProfile:a.nullable().optional(),profileWorkflowBinding:x.shape.profileWorkflowBinding,profileComponentBinding:x.shape.profileComponentBinding,metadata:e.record(e.string(),e.unknown()).optional(),cwd:e.string().nullable().optional(),title:e.string().optional(),autoTitlePrompt:e.string().trim().min(1).max(2e4).optional()}),Ge=e.object({teamId:e.string().trim().min(1),projectName:e.string().trim().min(1).max(120).optional(),branch:e.string().trim().min(1).max(120).optional(),chatSessionId:e.string().trim().min(1).max(200).optional(),displayPrompt:e.string().trim().min(1).max(2e3).optional()}),Je=e.object({branch:e.string().trim().min(1).max(120).optional()}),Qe=e.object({prompt:e.string().min(1),workflowInput:e.unknown().optional(),metadata:e.record(e.string(),e.unknown()).optional(),usageAttribution:E.optional().nullable(),cwd:e.string().nullable().optional(),model:e.string().nullable().optional(),modelRef:n.optional(),mentionedAppIds:e.array(e.string().trim().min(1)).max(8).optional(),mentionedConnectedApps:e.array($).max(8).optional(),openPondActionCatalog:e.array(F).max(100).optional(),attachments:e.array(L).max(m.maxAttachments).optional(),createImproveRun:c.optional().nullable(),approvalPolicy:e.enum(["untrusted","on-failure","on-request","never"]).default("on-request"),sandbox:e.enum(["read-only","workspace-write","danger-full-access"]).default("workspace-write"),codexPermissionMode:d.default("default"),codexReasoningEffort:g.optional()}),Ye=e.object({prompt:e.string().min(1),error:e.string().min(1),target:e.enum(["cloud_workspace","hybrid_sandbox"])}),Ze=_,en=e.object({reason:e.enum(["manual"]).default("manual"),model:e.string().nullable().optional(),modelRef:n.optional()}),nn=e.object({experience:s.optional(),provider:t.optional(),modelRef:n.nullable().optional(),openPondCommandAccessMode:o.optional(),pinned:e.boolean().optional(),savedForLater:e.boolean().optional(),archived:e.boolean().optional(),order:e.number().optional(),title:e.string().optional(),parentSessionId:e.string().trim().min(1).max(200).nullable().optional(),parentTurnId:e.string().trim().min(1).max(200).nullable().optional(),subagentRunId:e.string().trim().min(1).max(200).nullable().optional(),subagentRoleId:i.nullable().optional(),subagentDelegationMode:r.nullable().optional(),appId:e.string().nullable().optional(),appName:e.string().nullable().optional(),workspaceKind:l.optional(),workspaceId:e.string().nullable().optional(),workspaceName:e.string().nullable().optional(),localProjectId:e.string().nullable().optional(),cloudProjectId:e.string().nullable().optional(),cloudTeamId:e.string().nullable().optional(),currentProfile:a.nullable().optional(),metadata:e.record(e.string(),e.unknown()).optional(),cwd:e.string().nullable().optional()}),tn=e.object({command:e.string().trim().min(1),cwd:e.string().trim().min(1).max(4096).nullable().optional(),timeoutSeconds:e.number().int().min(1).max(3600).optional()}),on=h,an=e.object({appIds:e.array(e.string()).min(1)}),rn=e.object({expectedRevision:e.string().optional(),defaultChatProvider:t.optional(),defaultChatModel:e.string().min(1).optional(),defaultChatModelRef:n.nullable().optional(),subagents:R.optional(),codexPermissionMode:d.optional(),codexReasoningEffort:g.optional(),openPondCommandAccessMode:o.optional(),defaultBranchPrefix:e.string().trim().max(48).optional(),defaultNewProjectDirectory:e.string().trim().max(4096).optional(),defaultTeamId:e.string().trim().max(191).nullable().optional(),advancedWorkspaceControls:e.boolean().optional(),steerActiveResponses:e.boolean().optional(),contextCompaction:k.optional(),training:w.optional(),sidebarWidth:e.number().int().min(244).max(560).optional(),diffPanelWidth:e.number().int().min(320).max(2400).optional(),sidebarSectionsCollapsed:I.optional(),editor:C.optional()}),ln=P,sn=e.object({message:e.string().trim().min(1).max(4e3),surface:e.string().trim().min(1).max(120).default("app"),stack:e.string().max(12e3).nullable().optional(),context:e.record(e.string(),e.unknown()).optional()}).strict();var mn=e.object({activeTemplateId:y,templateName:e.string().trim().min(1).max(80),soul:e.string().trim().min(1).max(8e3),saveAsNew:e.boolean().optional().default(!1)}),pn=e.object({decision:e.enum(["accept","acceptForSession","decline","cancel"]),answers:e.record(e.string().min(1).max(2e3),e.string().trim().min(1).max(8e3)).optional()}),cn=e.object({branch:e.string().trim().min(1).max(240).nullable().optional(),surface:e.enum(["desktop","terminal"])}),un=e.object({handle:e.string().min(1),baseUrl:e.string().nullable().optional()}),dn=e.object({handle:e.string().min(1),baseUrl:e.string().nullable().optional()}),gn=e.object({handle:e.string().min(1).optional(),apiKey:e.string().min(1),baseUrl:e.string().nullable().optional(),apiBaseUrl:e.string().nullable().optional(),chatApiBaseUrl:e.string().nullable().optional(),environment:e.string().nullable().optional(),setActive:e.boolean().optional()}),bn=e.object({handle:e.string().min(1),currentBaseUrl:e.string().nullable().optional(),apiKey:e.string().min(1).optional(),baseUrl:e.string().nullable().optional(),apiBaseUrl:e.string().nullable().optional(),chatApiBaseUrl:e.string().nullable().optional(),environment:e.string().nullable().optional(),setActive:e.boolean().optional()});export{Z as a,ee as b,ne as c,O as d,te as e,oe as f,ae as g,ie as h,re as i,K as j,le as k,se as l,z as m,s as n,D as o,a as p,x as q,we as r,F as s,m as t,Q as u,L as v,$e as w,Ge as x,Je as y,Qe as z,Ye as A,Ze as B,en as C,nn as D,tn as E,on as F,an as G,rn as H,ln as I,sn as J,mn as K,pn as L,cn as M,un as N,dn as O,gn as P,bn as Q};
2
+ import{a as E}from"./chunk-W5W4IODW.js";import{d as j}from"./chunk-OZ6LRNRE.js";import{h as c,i as _}from"./chunk-PWK5Z5S3.js";import{G as v,I as A,J as t,K as d,L as o,M as g,N as l,P as I,Q as C,T as k,U as w,Y as y,k as P,q as i,u as r,x as R}from"./chunk-BKEDG3A4.js";import{c as f,f as n}from"./chunk-OE22TAXP.js";import{d as q,e as T}from"./chunk-PBZCXPPC.js";import{A as e}from"./chunk-PF56N7ZY.js";import{a as u}from"./chunk-FTQLQJQV.js";var b="local_path:";function Z(p){return`${b}${p.trim()}`}u(Z,"localPathWorkspaceId");function ee(p){return p.startsWith(b)&&p.slice(b.length).trim()||null}u(ee,"workspacePathFromLocalPathWorkspaceId");var ne=e.object({appId:e.string(),source:e.enum(["openpond","github","local_git","local_folder","unknown"]),workspacePath:e.string(),repoPath:e.string(),initialized:e.boolean(),remoteUrl:e.string().nullable(),expectedRemoteUrl:e.string().nullable(),currentBranch:e.string().nullable(),headCommit:e.string().nullable().optional().default(null),upstreamBranch:e.string().nullable().optional().default(null),ahead:e.number().int().nonnegative().optional().default(0),behind:e.number().int().nonnegative().optional().default(0),diverged:e.boolean().optional().default(!1),linkedSourceHeadCommit:e.string().nullable().optional().default(null),aheadOfLinkedSource:e.number().int().nonnegative().optional().default(0),behindLinkedSource:e.number().int().nonnegative().optional().default(0),divergedFromLinkedSource:e.boolean().optional().default(!1),linkedSourceComparisonError:e.string().nullable().optional().default(null),lastFetchAt:e.string().nullable().optional().default(null),defaultBranch:e.string().nullable(),branches:e.array(e.string()),dirty:e.boolean(),changedFilesCount:e.number(),untrackedFilesCount:e.number(),error:e.string().nullable(),updatedAt:e.string()}),O=e.object({path:e.string(),status:e.string(),additions:e.number(),deletions:e.number(),patch:e.string(),content:e.string().nullable().optional().default(null),contentType:e.string().optional(),contentEncoding:e.enum(["base64"]).optional(),readVersion:e.string().nullable().optional(),readStamp:e.string().optional()}),te=e.object({appId:e.string(),repoPath:e.string(),initialized:e.boolean(),dirty:e.boolean(),filesChanged:e.number(),additions:e.number(),deletions:e.number(),repoFiles:e.array(e.string()).optional().default([]),files:e.array(O),error:e.string().nullable(),updatedAt:e.string()}),oe=e.object({branch:e.string().trim().min(1).max(160)}),ae=e.object({path:e.string().trim().min(1),content:e.string()}),M=e.object({line:e.number().int().nonnegative(),character:e.number().int().nonnegative()}),U=e.object({start:M,end:M}),N=e.object({path:e.string(),range:U,severity:e.enum(["error","warning","info","hint"]),message:e.string(),source:e.string().nullable().optional().default(null),code:e.string().nullable().optional().default(null)}),W=e.object({id:e.string(),root:e.string(),status:e.enum(["connected","unavailable","error"]),message:e.string().nullable().optional().default(null)}),ie=e.object({path:e.string().trim().min(1),content:e.string().optional(),waitForDiagnostics:e.boolean().optional().default(!0)}),re=e.object({appId:e.string(),path:e.string(),diagnostics:e.array(N),servers:e.array(W),updatedAt:e.string()}),K=e.object({operation:e.enum(["hover","definition","references","documentSymbol"]),path:e.string().trim().min(1),content:e.string().optional(),line:e.number().int().nonnegative().optional(),character:e.number().int().nonnegative().optional()}),le=e.object({appId:e.string(),operation:K.shape.operation,path:e.string(),results:e.unknown(),servers:e.array(W),updatedAt:e.string()}),h=e.object({pinned:e.boolean().optional(),archived:e.boolean().optional(),order:e.number().optional()}),se=e.record(e.string(),h),z=e.object({path:e.string().min(1),title:e.string().min(1),contentType:e.string().min(1),sizeBytes:e.number().nonnegative().nullable(),sandboxId:e.string().nullable(),revision:e.string().optional(),updatedAt:e.string().optional()}),me=e.object({files:e.array(z)});var a=e.object({source:e.enum(["local","github","openpond_git"]),repositoryId:e.string().trim().min(1),profileId:e.string().trim().min(1)}),B=e.object({ref:a,revision:e.string().nullable(),sourceHash:e.string()});var s=e.enum(["chat","work","development"]),be=e.enum(["chat","models","console","development"]),D="work";var S=e.enum(["openpond.lab"]),x=e.object({id:e.string(),experience:s.default(D),provider:t,modelRef:n.nullable().optional(),openPondCommandAccessMode:o.default(A),systemKind:S.nullable().optional(),hiddenFromDefaultSidebar:e.boolean().optional(),parentSessionId:e.string().nullable().optional(),parentTurnId:e.string().nullable().optional(),subagentRunId:e.string().nullable().optional(),subagentRoleId:i.nullable().optional(),subagentDelegationMode:r.nullable().optional(),title:e.string(),appId:e.string().nullable(),appName:e.string().nullable(),workspaceKind:l.optional(),workspaceId:e.string().nullable().optional(),workspaceName:e.string().nullable().optional(),localProjectId:e.string().nullable().optional(),cloudProjectId:e.string().nullable().optional(),cloudTeamId:e.string().nullable().optional(),currentProfile:a.nullable().optional(),profileWorkflowBinding:q.nullable().optional(),profileComponentBinding:T.nullable().optional(),metadata:e.record(e.string(),e.unknown()).optional(),cwd:e.string().nullable(),codexThreadId:e.string().nullable(),nativeAgent:e.object({provider:e.union([e.enum(["claude-code","grok-build","opencode"]),f]),instanceId:e.string().min(1),sessionId:e.string().min(1),cwd:e.string().min(1)}).nullable().optional(),createdAt:e.string(),updatedAt:e.string(),status:e.enum(["idle","active","failed","closed"]),runtimeSeconds:e.number().int().nonnegative().optional(),runtimeRunningSince:e.string().nullable().optional(),pinned:e.boolean(),savedForLater:e.boolean().optional(),archived:e.boolean(),order:e.number()}),we=e.object({id:e.string(),sessionId:e.string(),providerTurnId:e.string().nullable(),modelRef:n.nullable().optional(),prompt:e.string(),startedAt:e.string(),completedAt:e.string().nullable(),status:e.enum(["in_progress","completed","failed","interrupted"]),error:e.string().nullable(),metadata:e.record(e.string(),e.unknown()).optional().default({}),createImproveRun:c.nullable().optional().default(null),profileSnapshot:B.nullable().optional(),harnessSnapshot:j.nullable().optional()});var F=e.object({id:e.string().trim().min(1).max(191),agentId:e.string().trim().min(1).max(191).optional().nullable(),sourcePath:e.string().trim().min(1).max(2e3).optional().nullable(),sourceActionId:e.string().trim().min(1).max(191).optional().nullable(),name:e.string().trim().min(1).max(191).optional().nullable(),label:e.string().trim().min(1).max(160).optional().nullable(),description:e.string().trim().max(1e3).optional().nullable(),visibility:e.string().trim().max(80).optional().nullable(),inputSchema:e.union([e.string().trim().max(191),e.record(e.string(),e.unknown())]).optional().nullable(),outputSchema:e.union([e.string().trim().max(191),e.record(e.string(),e.unknown())]).optional().nullable(),approvalPolicy:e.record(e.string(),e.unknown()).optional().nullable(),artifactPolicy:e.record(e.string(),e.unknown()).optional().nullable(),setupRequirements:e.array(e.record(e.string(),e.unknown())).optional(),mcp:e.record(e.string(),e.unknown()).optional().nullable(),schedulePolicy:e.record(e.string(),e.unknown()).optional().nullable(),trace:e.record(e.string(),e.unknown()).optional().nullable(),implementation:e.record(e.string(),e.unknown()).optional().nullable(),invokesModel:e.boolean().optional()});var H=e.enum(["slack","microsoft_teams","github","google","turnkey","x","mcp"]),V=e.enum(["slack","microsoft_teams","github","google","turnkey","x","mcp"]),X=e.enum(["native_bot","oauth_connector","wallet_connector","mcp_endpoint"]),$=e.object({kind:e.literal("integration"),provider:H,appIds:e.array(V).min(1).max(4),setupSurfaces:e.array(X).min(1).max(4),connectionIds:e.array(e.string().trim().min(1)).max(8).optional(),capabilities:e.array(e.string().trim().min(1)).max(64).optional()}).strict(),m={maxAttachments:10,maxAttachmentBytes:12*1024*1024,maxAttachmentBase64Chars:Math.ceil(12*1024*1024*4/3)+16,maxTextChars:2e5},G=e.enum(["image","text","file"]),J=e.object({sessionId:e.string().trim().min(1).max(200),turnId:e.string().trim().min(1).max(200),attachmentId:e.string().trim().min(1).max(200),storageName:e.string().trim().min(1).max(240),contentType:e.string().trim().min(1).max(160)}),Q=e.object({sessionId:e.string().trim().min(1).max(200),turnId:e.string().trim().min(1).max(200),attachmentId:e.string().trim().min(1).max(200),storageName:e.string().trim().min(1).max(1024),contentType:e.string().trim().min(1).max(160)}),L=e.object({id:e.string().trim().min(1),name:e.string().trim().min(1).max(240),mediaType:e.string().trim().min(1).max(160),sizeBytes:e.number().int().nonnegative().max(m.maxAttachmentBytes),kind:G,lineCount:e.number().int().nonnegative().max(m.maxAttachmentBytes+1).optional(),relativePath:e.string().trim().min(1).max(1024).optional(),text:e.string().max(m.maxTextChars).optional(),contentsBase64:e.string().max(m.maxAttachmentBase64Chars).optional()}),Xe=L.omit({text:!0,contentsBase64:!0}).extend({imagePreview:J.optional(),filePreview:Q.optional()}),$e=e.object({experience:s.optional(),provider:t.default(v),modelRef:n.optional(),openPondCommandAccessMode:o.optional(),systemKind:S.nullable().optional(),hiddenFromDefaultSidebar:e.boolean().optional(),parentSessionId:e.string().trim().min(1).max(200).nullable().optional(),parentTurnId:e.string().trim().min(1).max(200).nullable().optional(),subagentRunId:e.string().trim().min(1).max(200).nullable().optional(),subagentRoleId:i.nullable().optional(),subagentDelegationMode:r.nullable().optional(),appId:e.string().nullable().optional(),appName:e.string().nullable().optional(),workspaceKind:l.optional(),workspaceId:e.string().nullable().optional(),workspaceName:e.string().nullable().optional(),localProjectId:e.string().nullable().optional(),cloudProjectId:e.string().nullable().optional(),cloudTeamId:e.string().nullable().optional(),currentProfile:a.nullable().optional(),profileWorkflowBinding:x.shape.profileWorkflowBinding,profileComponentBinding:x.shape.profileComponentBinding,metadata:e.record(e.string(),e.unknown()).optional(),cwd:e.string().nullable().optional(),title:e.string().optional(),autoTitlePrompt:e.string().trim().min(1).max(2e4).optional()}),Ge=e.object({teamId:e.string().trim().min(1),projectName:e.string().trim().min(1).max(120).optional(),branch:e.string().trim().min(1).max(120).optional(),chatSessionId:e.string().trim().min(1).max(200).optional(),displayPrompt:e.string().trim().min(1).max(2e3).optional()}),Je=e.object({branch:e.string().trim().min(1).max(120).optional()}),Qe=e.object({prompt:e.string().min(1),workflowInput:e.unknown().optional(),metadata:e.record(e.string(),e.unknown()).optional(),usageAttribution:E.optional().nullable(),cwd:e.string().nullable().optional(),model:e.string().nullable().optional(),modelRef:n.optional(),mentionedAppIds:e.array(e.string().trim().min(1)).max(8).optional(),mentionedConnectedApps:e.array($).max(8).optional(),openPondActionCatalog:e.array(F).max(100).optional(),attachments:e.array(L).max(m.maxAttachments).optional(),createImproveRun:c.optional().nullable(),approvalPolicy:e.enum(["untrusted","on-failure","on-request","never"]).default("on-request"),sandbox:e.enum(["read-only","workspace-write","danger-full-access"]).default("workspace-write"),codexPermissionMode:d.default("default"),codexReasoningEffort:g.optional()}),Ye=e.object({prompt:e.string().min(1),error:e.string().min(1),target:e.enum(["cloud_workspace","hybrid_sandbox"])}),Ze=_,en=e.object({reason:e.enum(["manual"]).default("manual"),model:e.string().nullable().optional(),modelRef:n.optional()}),nn=e.object({experience:s.optional(),provider:t.optional(),modelRef:n.nullable().optional(),openPondCommandAccessMode:o.optional(),pinned:e.boolean().optional(),savedForLater:e.boolean().optional(),archived:e.boolean().optional(),order:e.number().optional(),title:e.string().optional(),parentSessionId:e.string().trim().min(1).max(200).nullable().optional(),parentTurnId:e.string().trim().min(1).max(200).nullable().optional(),subagentRunId:e.string().trim().min(1).max(200).nullable().optional(),subagentRoleId:i.nullable().optional(),subagentDelegationMode:r.nullable().optional(),appId:e.string().nullable().optional(),appName:e.string().nullable().optional(),workspaceKind:l.optional(),workspaceId:e.string().nullable().optional(),workspaceName:e.string().nullable().optional(),localProjectId:e.string().nullable().optional(),cloudProjectId:e.string().nullable().optional(),cloudTeamId:e.string().nullable().optional(),currentProfile:a.nullable().optional(),metadata:e.record(e.string(),e.unknown()).optional(),cwd:e.string().nullable().optional()}),tn=e.object({command:e.string().trim().min(1),cwd:e.string().trim().min(1).max(4096).nullable().optional(),timeoutSeconds:e.number().int().min(1).max(3600).optional()}),on=h,an=e.object({appIds:e.array(e.string()).min(1)}),rn=e.object({expectedRevision:e.string().optional(),defaultChatProvider:t.optional(),defaultChatModel:e.string().min(1).optional(),defaultChatModelRef:n.nullable().optional(),subagents:R.optional(),codexPermissionMode:d.optional(),codexReasoningEffort:g.optional(),openPondCommandAccessMode:o.optional(),defaultBranchPrefix:e.string().trim().max(48).optional(),defaultNewProjectDirectory:e.string().trim().max(4096).optional(),defaultTeamId:e.string().trim().max(191).nullable().optional(),advancedWorkspaceControls:e.boolean().optional(),steerActiveResponses:e.boolean().optional(),contextCompaction:k.optional(),training:w.optional(),sidebarWidth:e.number().int().min(244).max(560).optional(),diffPanelWidth:e.number().int().min(320).max(2400).optional(),sidebarSectionsCollapsed:I.optional(),editor:C.optional()}),ln=P,sn=e.object({message:e.string().trim().min(1).max(4e3),surface:e.string().trim().min(1).max(120).default("app"),stack:e.string().max(12e3).nullable().optional(),context:e.record(e.string(),e.unknown()).optional()}).strict();var mn=e.object({activeTemplateId:y,templateName:e.string().trim().min(1).max(80),soul:e.string().trim().min(1).max(8e3),saveAsNew:e.boolean().optional().default(!1)}),pn=e.object({decision:e.enum(["accept","acceptForSession","decline","cancel"]),answers:e.record(e.string().min(1).max(2e3),e.string().trim().min(1).max(8e3)).optional()}),cn=e.object({branch:e.string().trim().min(1).max(240).nullable().optional(),surface:e.enum(["desktop","terminal"])}),un=e.object({handle:e.string().min(1),baseUrl:e.string().nullable().optional()}),dn=e.object({handle:e.string().min(1),baseUrl:e.string().nullable().optional()}),gn=e.object({handle:e.string().min(1).optional(),apiKey:e.string().min(1),baseUrl:e.string().nullable().optional(),apiBaseUrl:e.string().nullable().optional(),chatApiBaseUrl:e.string().nullable().optional(),environment:e.string().nullable().optional(),setActive:e.boolean().optional()}),bn=e.object({handle:e.string().min(1),currentBaseUrl:e.string().nullable().optional(),apiKey:e.string().min(1).optional(),baseUrl:e.string().nullable().optional(),apiBaseUrl:e.string().nullable().optional(),chatApiBaseUrl:e.string().nullable().optional(),environment:e.string().nullable().optional(),setActive:e.boolean().optional()});export{Z as a,ee as b,ne as c,O as d,te as e,oe as f,ae as g,ie as h,re as i,K as j,le as k,se as l,z as m,s as n,D as o,a as p,x as q,we as r,F as s,m as t,Q as u,L as v,$e as w,Ge as x,Je as y,Qe as z,Ye as A,Ze as B,en as C,nn as D,tn as E,on as F,an as G,rn as H,ln as I,sn as J,mn as K,pn as L,cn as M,un as N,dn as O,gn as P,bn as Q};
@@ -1,2 +1,2 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{Tb as l}from"./chunk-M6JRS5PA.js";import{c as n,d as a,e as i,g as t}from"./chunk-VVNV4NNW.js";import{A as e}from"./chunk-PF56N7ZY.js";var k=e.enum(["trajectory","reward","demonstration","preference","correction","critique","targeted_feedback","grader_evidence","infrastructure_failure"]),c=e.object({datasetRelease:t,harnessRelease:t,evidenceSetRelease:t.nullable(),profileRelease:t.nullable(),model:e.object({source:e.string().trim().min(1).max(200),revision:e.string().trim().min(1).max(500),artifactHash:a.nullable()}).strict(),environmentHash:a,graderHash:a,toolContractHash:a,verificationReceiptHash:a.nullable()}).strict(),r=e.object({schemaVersion:e.literal("openpond.learningSignal.v1"),id:n,taskId:n.nullable(),episodeId:n.nullable(),policyVersion:e.number().int().nonnegative().nullable(),lineage:c,approved:e.boolean(),verifier:e.enum(["deterministic","model_judge","human","none"]),createdAt:i,contentHash:a,metadata:e.record(e.string(),e.unknown()).default({})}).strict(),m=r.extend({kind:e.literal("trajectory"),payload:e.object({traceRef:e.string().trim().min(1).max(2e3),traceHash:a,terminal:e.boolean(),failureClass:e.enum(["policy_failure","grader_failure","environment_failure","infrastructure_failure","timeout","cancelled"]).nullable(),optimizerSample:l.nullable().optional()}).strict()}).strict(),d=r.extend({kind:e.literal("reward"),payload:e.object({reward:e.number().finite(),components:e.record(e.string(),e.number().finite()),eligible:e.boolean(),graderEvidenceRefs:e.array(n).max(1e3)}).strict()}).strict(),g=r.extend({kind:e.literal("demonstration"),payload:e.object({prompt:e.string().max(5e5),response:e.string().max(1e6)}).strict()}).strict(),u=r.extend({kind:e.literal("preference"),payload:e.object({prompt:e.string().max(5e5),chosen:e.string().max(1e6),rejected:e.string().max(1e6),rationale:e.string().max(5e5).nullable()}).strict()}).strict(),p=r.extend({kind:e.literal("correction"),payload:e.object({original:e.string().max(1e6),corrected:e.string().max(1e6),rationale:e.string().max(5e5).nullable()}).strict()}).strict(),b=r.extend({kind:e.literal("critique"),payload:e.object({response:e.string().max(1e6),critique:e.string().max(5e5),severity:e.enum(["note","warning","error"])}).strict()}).strict(),f=r.extend({kind:e.literal("targeted_feedback"),payload:e.object({turnIndex:e.number().int().nonnegative(),target:e.enum(["reasoning","tool","answer","policy"]),feedback:e.string().max(5e5)}).strict()}).strict(),h=r.extend({kind:e.literal("grader_evidence"),payload:e.object({graderId:n,score:e.number().finite().nullable(),passed:e.boolean(),privilegedArtifactRefs:e.array(e.string().trim().min(1).max(2e3))}).strict()}).strict(),x=r.extend({kind:e.literal("infrastructure_failure"),approved:e.literal(!1),verifier:e.literal("none"),payload:e.object({code:n,phase:n,retryable:e.boolean(),rewardEligible:e.literal(!1)}).strict()}).strict(),o=e.discriminatedUnion("kind",[m,d,g,u,p,b,f,h,x]),H=e.object({schemaVersion:e.literal("openpond.learningSignalBatch.v1"),manifestId:n,manifestHash:a,sequence:e.number().int().nonnegative(),signals:e.array(o).min(1).max(1e5),contentHash:a}).strict();var S=e.object({id:n,turn:e.number().int().nonnegative(),kind:e.enum(["message","tool_call","terminal"]),name:n.nullable(),arguments:e.record(e.string(),e.unknown()),content:e.string().max(1e6).nullable(),contentHash:a}).strict(),_=e.object({actionId:n,turn:e.number().int().nonnegative(),terminal:e.boolean(),output:e.record(e.string(),e.unknown()),artifactRefs:e.array(e.string().trim().min(1).max(2e3)),contentHash:a}).strict(),v=e.object({sequence:e.number().int().nonnegative(),type:e.enum(["created","reset","action","observation","terminal","graded","feedback","failure","collected","destroyed"]),timestamp:i,payloadHash:a,metadata:e.record(e.string(),e.unknown()).default({})}).strict(),s=e.object({graderId:n,graderVersion:e.string().trim().min(1).max(200),score:e.number().finite().nullable(),passed:e.boolean(),rewardEligible:e.boolean(),failureClass:e.enum(["policy_failure","grader_failure","environment_failure","infrastructure_failure","timeout","cancelled"]).nullable(),feedback:e.array(e.string().max(5e5)),visibleEvidenceRefs:e.array(e.string().trim().min(1).max(2e3)),privilegedEvidenceRefs:e.array(e.string().trim().min(1).max(2e3)),contentHash:a}).strict(),A=e.object({schemaVersion:e.literal("openpond.harnessRunTrace.v1"),manifest:t,taskId:n,seed:e.string().trim().min(1).max(500),events:e.array(v).max(1e6),actions:e.array(S).max(1e5),observations:e.array(_).max(1e5),graderEvidence:e.array(s).max(1e4),learningSignals:e.array(o).max(1e5),terminal:e.boolean(),failureClass:s.shape.failureClass,artifactHash:a,contentHash:a}).strict();export{k as a};
2
+ import{Tb as l}from"./chunk-ABF3W2MO.js";import{c as n,d as a,e as i,g as t}from"./chunk-VVNV4NNW.js";import{A as e}from"./chunk-PF56N7ZY.js";var k=e.enum(["trajectory","reward","demonstration","preference","correction","critique","targeted_feedback","grader_evidence","infrastructure_failure"]),c=e.object({datasetRelease:t,harnessRelease:t,evidenceSetRelease:t.nullable(),profileRelease:t.nullable(),model:e.object({source:e.string().trim().min(1).max(200),revision:e.string().trim().min(1).max(500),artifactHash:a.nullable()}).strict(),environmentHash:a,graderHash:a,toolContractHash:a,verificationReceiptHash:a.nullable()}).strict(),r=e.object({schemaVersion:e.literal("openpond.learningSignal.v1"),id:n,taskId:n.nullable(),episodeId:n.nullable(),policyVersion:e.number().int().nonnegative().nullable(),lineage:c,approved:e.boolean(),verifier:e.enum(["deterministic","model_judge","human","none"]),createdAt:i,contentHash:a,metadata:e.record(e.string(),e.unknown()).default({})}).strict(),m=r.extend({kind:e.literal("trajectory"),payload:e.object({traceRef:e.string().trim().min(1).max(2e3),traceHash:a,terminal:e.boolean(),failureClass:e.enum(["policy_failure","grader_failure","environment_failure","infrastructure_failure","timeout","cancelled"]).nullable(),optimizerSample:l.nullable().optional()}).strict()}).strict(),d=r.extend({kind:e.literal("reward"),payload:e.object({reward:e.number().finite(),components:e.record(e.string(),e.number().finite()),eligible:e.boolean(),graderEvidenceRefs:e.array(n).max(1e3)}).strict()}).strict(),g=r.extend({kind:e.literal("demonstration"),payload:e.object({prompt:e.string().max(5e5),response:e.string().max(1e6)}).strict()}).strict(),u=r.extend({kind:e.literal("preference"),payload:e.object({prompt:e.string().max(5e5),chosen:e.string().max(1e6),rejected:e.string().max(1e6),rationale:e.string().max(5e5).nullable()}).strict()}).strict(),p=r.extend({kind:e.literal("correction"),payload:e.object({original:e.string().max(1e6),corrected:e.string().max(1e6),rationale:e.string().max(5e5).nullable()}).strict()}).strict(),b=r.extend({kind:e.literal("critique"),payload:e.object({response:e.string().max(1e6),critique:e.string().max(5e5),severity:e.enum(["note","warning","error"])}).strict()}).strict(),f=r.extend({kind:e.literal("targeted_feedback"),payload:e.object({turnIndex:e.number().int().nonnegative(),target:e.enum(["reasoning","tool","answer","policy"]),feedback:e.string().max(5e5)}).strict()}).strict(),h=r.extend({kind:e.literal("grader_evidence"),payload:e.object({graderId:n,score:e.number().finite().nullable(),passed:e.boolean(),privilegedArtifactRefs:e.array(e.string().trim().min(1).max(2e3))}).strict()}).strict(),x=r.extend({kind:e.literal("infrastructure_failure"),approved:e.literal(!1),verifier:e.literal("none"),payload:e.object({code:n,phase:n,retryable:e.boolean(),rewardEligible:e.literal(!1)}).strict()}).strict(),o=e.discriminatedUnion("kind",[m,d,g,u,p,b,f,h,x]),H=e.object({schemaVersion:e.literal("openpond.learningSignalBatch.v1"),manifestId:n,manifestHash:a,sequence:e.number().int().nonnegative(),signals:e.array(o).min(1).max(1e5),contentHash:a}).strict();var S=e.object({id:n,turn:e.number().int().nonnegative(),kind:e.enum(["message","tool_call","terminal"]),name:n.nullable(),arguments:e.record(e.string(),e.unknown()),content:e.string().max(1e6).nullable(),contentHash:a}).strict(),_=e.object({actionId:n,turn:e.number().int().nonnegative(),terminal:e.boolean(),output:e.record(e.string(),e.unknown()),artifactRefs:e.array(e.string().trim().min(1).max(2e3)),contentHash:a}).strict(),v=e.object({sequence:e.number().int().nonnegative(),type:e.enum(["created","reset","action","observation","terminal","graded","feedback","failure","collected","destroyed"]),timestamp:i,payloadHash:a,metadata:e.record(e.string(),e.unknown()).default({})}).strict(),s=e.object({graderId:n,graderVersion:e.string().trim().min(1).max(200),score:e.number().finite().nullable(),passed:e.boolean(),rewardEligible:e.boolean(),failureClass:e.enum(["policy_failure","grader_failure","environment_failure","infrastructure_failure","timeout","cancelled"]).nullable(),feedback:e.array(e.string().max(5e5)),visibleEvidenceRefs:e.array(e.string().trim().min(1).max(2e3)),privilegedEvidenceRefs:e.array(e.string().trim().min(1).max(2e3)),contentHash:a}).strict(),A=e.object({schemaVersion:e.literal("openpond.harnessRunTrace.v1"),manifest:t,taskId:n,seed:e.string().trim().min(1).max(500),events:e.array(v).max(1e6),actions:e.array(S).max(1e5),observations:e.array(_).max(1e5),graderEvidence:e.array(s).max(1e4),learningSignals:e.array(o).max(1e5),terminal:e.boolean(),failureClass:s.shape.failureClass,artifactHash:a,contentHash:a}).strict();export{k as a};
@@ -1,3 +1,3 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{Ib as P,Lb as h,Mb as E}from"./chunk-M6JRS5PA.js";import{c as u,n as f}from"./chunk-VVNV4NNW.js";import{A as d}from"./chunk-PF56N7ZY.js";import{a as c}from"./chunk-FTQLQJQV.js";var S=d.object({id:u,runIds:d.array(u).min(2).max(100)}).strict();function j(r){return async s=>{let i=S.parse(s),l=await r.selectedProfile();if(!l)throw new Error("Select a Profile before comparing its evaluation runs.");let a=[];for(let e of i.runIds){let t=await r.store.getProfileEvaluationRun(e);if(!t||f(t.profileRef)!==f(l.ref))throw new Error(`Profile evaluation run ${e} is unavailable in the selected Profile.`);a.push({manifest:t.manifest,result:t.metric})}let o=await r.store.getProfileEvaluationComparison(i.id),n=P({id:i.id,members:a,createdAt:o?.createdAt??new Date().toISOString()});return r.store.saveProfileEvaluationComparison(l.ref,n)}}c(j,"createProfileEvaluationComparisonService");import{promises as m}from"node:fs";import v from"node:path";var y=d.object({id:u,evidenceKind:d.enum(["run","suite","comparison"]),evidenceId:u}).strict();function w(r){return v.join(r,"evals","reports")}c(w,"reportDirectory");async function R(r){let s=await m.lstat(r).catch(i=>{if(i.code==="ENOENT")return null;throw i});if(s&&(!s.isDirectory()||s.isSymbolicLink()))throw new Error("Profile evaluation report directory must be a regular directory.");s||await m.mkdir(r)}c(R,"ensureRegularDirectory");async function k(r){let s,i;if(r.evidenceKind==="run")s=[r.evidenceId],i="";else if(r.evidenceKind==="suite"){let o=await r.store.getProfileEvaluationSuiteRun(r.evidenceId);if(!o||o.profileId!==r.profileRef.profileId)throw new Error("Profile evaluation suite is unavailable.");s=o.members.map(n=>n.runManifest.id),i=o.contentHash}else{let o=await r.store.getProfileEvaluationComparison(r.evidenceId);if(!o)throw new Error("Profile evaluation comparison is unavailable.");s=o.members.map(n=>n.runManifest.id),i=o.contentHash}let l=await Promise.all(s.map(o=>r.store.getProfileEvaluationRun(o)));if(l.some(o=>!o||f(o.profileRef)!==f(r.profileRef)))throw new Error("Profile evaluation report is missing authorized run evidence.");let a=l;if(r.evidenceKind==="run"&&(i=a[0].contentHash),r.evidenceKind!=="run"){let o=r.evidenceKind==="suite"?(await r.store.getProfileEvaluationSuiteRun(r.evidenceId)).members.map(n=>n.runHash):(await r.store.getProfileEvaluationComparison(r.evidenceId)).members.map(n=>n.metricResultHash);for(let[n,e]of a.entries())if(r.evidenceKind==="suite"&&o[n]!==e.contentHash||r.evidenceKind==="comparison"&&o[n]!==e.metric.contentHash)throw new Error("Profile evaluation report evidence differs from retained member runs.")}return{runs:a,primary:{kind:r.evidenceKind,id:r.evidenceId,contentHash:i}}}c(k,"loadRuns");async function H(r){let s=y.parse(r.request),{runs:i,primary:l}=await k({store:r.store,profileRef:r.profileRef,evidenceKind:s.evidenceKind,evidenceId:s.evidenceId}),a=c(e=>[...new Map(e.map(t=>[f(t),t])).values()],"unique"),o=a(i.map(e=>f(e.manifest.metricPolicy))),n=i.map(e=>e.metric.value).filter(e=>e!==null);return h({schemaVersion:"openpond.profileEvaluationReport.v1",id:s.id,createdAt:new Date().toISOString(),testedSources:a(i.map(e=>({profileId:e.manifest.profileEvaluation.profileId,sourceRevision:e.manifest.profileEvaluation.sourceRevision,harnessRelease:e.manifest.profileEvaluation.harnessRelease}))),tasksetReleases:a(i.map(e=>e.manifest.tasksetRelease)),metricPolicyHashes:o,modelConfigurationHashes:a(i.map(e=>e.manifest.policy.kind==="model"?e.manifest.policy.configurationHash:f(e.manifest.policy))),evidence:[l,...i.filter(e=>l.kind!=="run"||e.manifest.id!==l.id).map(e=>({kind:"run",id:e.manifest.id,contentHash:e.contentHash}))],summary:{totalChecks:i.length,passedChecks:i.filter(e=>e.passed).length,failedChecks:i.filter(e=>!e.passed&&e.metric.value!==null).length,unscoredChecks:i.filter(e=>!e.passed&&e.metric.value===null).length,meanScore:o.length===1&&n.length===i.length?n.reduce((e,t)=>e+t,0)/n.length:null}})}c(H,"buildProfileEvaluationReport");function q(r){return{list:c(async()=>{let l=await r.selectedProfile();if(!l)return[];let a=w(l.sourcePath),o=await m.lstat(a).catch(t=>{if(t.code==="ENOENT")return null;throw t});if(!o)return[];if(!o.isDirectory()||o.isSymbolicLink())throw new Error("Profile evaluation report directory is unsafe.");let n=await m.readdir(a,{withFileTypes:!0});return(await Promise.all(n.filter(t=>t.name.endsWith(".json")).map(async t=>{if(!t.isFile()||t.isSymbolicLink())throw new Error("Profile evaluation report must be a regular file.");let p=E(JSON.parse(await m.readFile(v.join(a,t.name),"utf8")));if(`${p.id}.json`!==t.name||p.testedSources.some(g=>g.profileId!==l.ref.profileId))throw new Error("Profile evaluation report differs from its source location.");return p}))).sort((t,p)=>p.createdAt.localeCompare(t.createdAt))},"list"),save:c(async l=>{let a=await r.selectedProfile();if(!a?.gitBacked)throw new Error("Select a Git-backed Profile before saving an evaluation report.");let o=await H({store:r.store,profileRef:a.ref,request:l}),n=v.join(a.sourcePath,"evals");await R(n);let e=w(a.sourcePath);return await R(e),await m.writeFile(v.join(e,`${o.id}.json`),`${JSON.stringify(o,null,2)}
2
+ import{Ib as P,Lb as h,Mb as E}from"./chunk-ABF3W2MO.js";import{c as u,n as f}from"./chunk-VVNV4NNW.js";import{A as d}from"./chunk-PF56N7ZY.js";import{a as c}from"./chunk-FTQLQJQV.js";var S=d.object({id:u,runIds:d.array(u).min(2).max(100)}).strict();function j(r){return async s=>{let i=S.parse(s),l=await r.selectedProfile();if(!l)throw new Error("Select a Profile before comparing its evaluation runs.");let a=[];for(let e of i.runIds){let t=await r.store.getProfileEvaluationRun(e);if(!t||f(t.profileRef)!==f(l.ref))throw new Error(`Profile evaluation run ${e} is unavailable in the selected Profile.`);a.push({manifest:t.manifest,result:t.metric})}let o=await r.store.getProfileEvaluationComparison(i.id),n=P({id:i.id,members:a,createdAt:o?.createdAt??new Date().toISOString()});return r.store.saveProfileEvaluationComparison(l.ref,n)}}c(j,"createProfileEvaluationComparisonService");import{promises as m}from"node:fs";import v from"node:path";var y=d.object({id:u,evidenceKind:d.enum(["run","suite","comparison"]),evidenceId:u}).strict();function w(r){return v.join(r,"evals","reports")}c(w,"reportDirectory");async function R(r){let s=await m.lstat(r).catch(i=>{if(i.code==="ENOENT")return null;throw i});if(s&&(!s.isDirectory()||s.isSymbolicLink()))throw new Error("Profile evaluation report directory must be a regular directory.");s||await m.mkdir(r)}c(R,"ensureRegularDirectory");async function k(r){let s,i;if(r.evidenceKind==="run")s=[r.evidenceId],i="";else if(r.evidenceKind==="suite"){let o=await r.store.getProfileEvaluationSuiteRun(r.evidenceId);if(!o||o.profileId!==r.profileRef.profileId)throw new Error("Profile evaluation suite is unavailable.");s=o.members.map(n=>n.runManifest.id),i=o.contentHash}else{let o=await r.store.getProfileEvaluationComparison(r.evidenceId);if(!o)throw new Error("Profile evaluation comparison is unavailable.");s=o.members.map(n=>n.runManifest.id),i=o.contentHash}let l=await Promise.all(s.map(o=>r.store.getProfileEvaluationRun(o)));if(l.some(o=>!o||f(o.profileRef)!==f(r.profileRef)))throw new Error("Profile evaluation report is missing authorized run evidence.");let a=l;if(r.evidenceKind==="run"&&(i=a[0].contentHash),r.evidenceKind!=="run"){let o=r.evidenceKind==="suite"?(await r.store.getProfileEvaluationSuiteRun(r.evidenceId)).members.map(n=>n.runHash):(await r.store.getProfileEvaluationComparison(r.evidenceId)).members.map(n=>n.metricResultHash);for(let[n,e]of a.entries())if(r.evidenceKind==="suite"&&o[n]!==e.contentHash||r.evidenceKind==="comparison"&&o[n]!==e.metric.contentHash)throw new Error("Profile evaluation report evidence differs from retained member runs.")}return{runs:a,primary:{kind:r.evidenceKind,id:r.evidenceId,contentHash:i}}}c(k,"loadRuns");async function H(r){let s=y.parse(r.request),{runs:i,primary:l}=await k({store:r.store,profileRef:r.profileRef,evidenceKind:s.evidenceKind,evidenceId:s.evidenceId}),a=c(e=>[...new Map(e.map(t=>[f(t),t])).values()],"unique"),o=a(i.map(e=>f(e.manifest.metricPolicy))),n=i.map(e=>e.metric.value).filter(e=>e!==null);return h({schemaVersion:"openpond.profileEvaluationReport.v1",id:s.id,createdAt:new Date().toISOString(),testedSources:a(i.map(e=>({profileId:e.manifest.profileEvaluation.profileId,sourceRevision:e.manifest.profileEvaluation.sourceRevision,harnessRelease:e.manifest.profileEvaluation.harnessRelease}))),tasksetReleases:a(i.map(e=>e.manifest.tasksetRelease)),metricPolicyHashes:o,modelConfigurationHashes:a(i.map(e=>e.manifest.policy.kind==="model"?e.manifest.policy.configurationHash:f(e.manifest.policy))),evidence:[l,...i.filter(e=>l.kind!=="run"||e.manifest.id!==l.id).map(e=>({kind:"run",id:e.manifest.id,contentHash:e.contentHash}))],summary:{totalChecks:i.length,passedChecks:i.filter(e=>e.passed).length,failedChecks:i.filter(e=>!e.passed&&e.metric.value!==null).length,unscoredChecks:i.filter(e=>!e.passed&&e.metric.value===null).length,meanScore:o.length===1&&n.length===i.length?n.reduce((e,t)=>e+t,0)/n.length:null}})}c(H,"buildProfileEvaluationReport");function q(r){return{list:c(async()=>{let l=await r.selectedProfile();if(!l)return[];let a=w(l.sourcePath),o=await m.lstat(a).catch(t=>{if(t.code==="ENOENT")return null;throw t});if(!o)return[];if(!o.isDirectory()||o.isSymbolicLink())throw new Error("Profile evaluation report directory is unsafe.");let n=await m.readdir(a,{withFileTypes:!0});return(await Promise.all(n.filter(t=>t.name.endsWith(".json")).map(async t=>{if(!t.isFile()||t.isSymbolicLink())throw new Error("Profile evaluation report must be a regular file.");let p=E(JSON.parse(await m.readFile(v.join(a,t.name),"utf8")));if(`${p.id}.json`!==t.name||p.testedSources.some(g=>g.profileId!==l.ref.profileId))throw new Error("Profile evaluation report differs from its source location.");return p}))).sort((t,p)=>p.createdAt.localeCompare(t.createdAt))},"list"),save:c(async l=>{let a=await r.selectedProfile();if(!a?.gitBacked)throw new Error("Select a Git-backed Profile before saving an evaluation report.");let o=await H({store:r.store,profileRef:a.ref,request:l}),n=v.join(a.sourcePath,"evals");await R(n);let e=w(a.sourcePath);return await R(e),await m.writeFile(v.join(e,`${o.id}.json`),`${JSON.stringify(o,null,2)}
3
3
  `,{flag:"wx"}),o},"save")}}c(q,"createProfileEvaluationReportService");export{j as a,H as b,q as c};
@@ -0,0 +1,2 @@
1
+ import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
+ import{J as B,O as K,U as V,ha as Q}from"./chunk-PGO4FRHU.js";import{m as A}from"./chunk-VNJAAYNQ.js";import{n as J,o as z,p as H,t as P}from"./chunk-TVTFEGTU.js";import{a as N}from"./chunk-NVHZRKXB.js";import{N as T,O as E,P as v,b as O,r as F}from"./chunk-4M3YW3EQ.js";import{Da as q,Fa as D,Ma as G,Ra as L,Ya as b,x as C,z as I}from"./chunk-PBZCXPPC.js";import{A as r}from"./chunk-PF56N7ZY.js";import{a as w}from"./chunk-FTQLQJQV.js";function se(a){let n=P.parse(a.setup),e=typeof a.package=="object"&&a.package!==null&&"schemaVersion"in a.package&&a.package.schemaVersion==="openpond.tasksetPackage.v1"?Q(a.package):null,i=e?null:V(a.package),d=e??i,l=n.tasksetRef;if(!(l&&l.revision===d.taskset.revision&&(e?l.id===e.taskset.id&&l.contentHash===e.taskset.contentHash||l.id===e.taskset.metadata.sourceTasksetId&&l.contentHash===e.taskset.metadata.sourceTasksetHash:l.id===d.taskset.id)))return n;!n.evaluationTasksetRef&&d.taskset.tasks.some(h=>h.split==="frozen_eval"||h.split==="validation")&&(n.evaluationTasksetRef=n.tasksetRef);let s=n.baseModel;if(n.method!=="grpo"||n.recipe||!s?.revision||!s.tokenizerRevision||!s.chatTemplateHash)return n;let m=d.taskset.tasks.filter(h=>h.split==="train"),g=e?e.taskset.graders:b(i.rewardBinding,i.rewards),u=g.find(h=>h.rewardEligible&&h.weight>0),k=e?.environment??i?.executionResources?.environment??i?.execution?.environment;if(!m.length||!u||!k)return n;let x=8,M=8;return P.parse({...n,recipe:{schemaVersion:"openpond.rftRecipe.v1",method:"grpo",parameterization:"lora",baseModel:{id:s.modelId,revision:s.revision,tokenizerRevision:s.tokenizerRevision,chatTemplateHash:s.chatTemplateHash},dataset:{trainSplit:"train",validationSplit:d.taskset.tasks.some(h=>h.split==="frozen_eval")?"frozen_eval":"validation",maxPromptTokens:4096,maxExamples:Math.min(1e3,m.length),selectionStrategy:"stable_hash_top_n"},lora:{rank:2},rollout:{groupSize:x,concurrency:4,maxTurns:d.taskset.environment.kind==="text"?1:15,maxOutputTokens:1024,temperature:.8,topP:.95,seed:17},optimizer:{learningRate:1e-4,maxSteps:M,clipRange:.2,iterations:2,microbatchSize:1,gradientAccumulationSteps:x,advantageEpsilon:1e-8,adamw:{name:"adamw",weightDecay:0,beta1:.9,beta2:.999,epsilon:1e-8}},loss:{method:"grpo",klBeta:.01},reward:{graderId:u.id,graderHash:A(g),environmentId:k.id,environmentVersion:String(k.revision),toolContractHash:A(d.taskset.tools),learnedPreference:null},resourceLimits:{wallTimeMs:3960*1e3,maxRollouts:M*x,maxPayloadBytes:1e6},policyOptimization:null}})}w(se,"prepareModelTrainingDefaults");var R=r.string().trim().min(1).max(500),f=J,U=r.object({schemaVersion:r.literal("openpond.modelStarter.v1"),id:R,revision:r.number().int().positive(),name:r.string().trim().min(1).max(200),description:r.string().trim().min(1).max(2e3),category:r.enum(["extraction","support","operations","knowledge","coding","writing","classification"]),taskset:f,taskDefinition:f,rewardBinding:f,rewards:r.array(f).min(1).max(100),assets:r.array(f).max(1e3),previewTaskIds:r.array(R).min(1).max(8),startingModel:z,supportedMethods:r.array(H).min(1).max(8),defaultMethod:H,provenance:r.object({author:r.string().min(1).max(200),license:r.string().min(1).max(200),sourceDescription:r.string().min(1).max(2e3)}).strict(),evidence:r.object({verifierFixtures:f.nullable(),baseline:f.nullable(),training:f.nullable(),evaluation:f.nullable()}).strict()}).strict().superRefine((a,n)=>{a.supportedMethods.includes(a.defaultMethod)||n.addIssue({code:"custom",path:["defaultMethod"],message:"The default method must be supported by the package."});for(let e of["rewards","assets"])new Set(a[e].map(i=>i.id)).size!==a[e].length&&n.addIssue({code:"custom",path:[e],message:"Dependency identities must be unique."});new Set(a.previewTaskIds).size!==a.previewTaskIds.length&&n.addIssue({code:"custom",path:["previewTaskIds"],message:"Preview tasks must be unique."})}),W=U.safeExtend({contentHash:r.string().regex(/^[a-f0-9]{64}$/)}),X=r.object({starter:W,taskset:q,taskDefinition:F,rewardBinding:L,rewards:r.array(G).min(1).max(100),assets:r.array(O).max(1e3),execution:B.optional()}).strict(),Y=r.object({schemaVersion:r.literal("openpond.modelStarterPrivacyReview.v1"),disposition:r.literal("synthetic_only"),reviewedBy:r.string().trim().min(1).max(500),reviewedAt:r.iso.datetime(),reviewedContentHash:r.string().regex(/^[a-f0-9]{64}$/),note:r.string().trim().min(1).max(2e3)}).strict();function Z(a){let{contentHash:n,...e}=a.starter,{contentHash:i,...d}=a.taskset,{contentHash:l,...c}=e.taskset,s={...d.metadata},m=s.starterAuthoring;if(m&&typeof m=="object"&&!Array.isArray(m)){let{privacyReview:g,...u}=m;s.starterAuthoring=u}return v({...a,starter:{...e,taskset:c},taskset:{...d,metadata:s}}).contentHash}w(Z,"modelStarterPrivacyContentHash");var ee=r.object({profileId:R,modelId:R,name:r.string().trim().min(1).max(200),starter:f,startingModel:z,method:H,rewardBindingRef:f.nullable().optional(),learning:N.optional()}).strict(),te=ee.extend({schemaVersion:r.literal("openpond.modelStarterCreation.v1"),operationId:R}).strict();function re(a){return C(a,64*1024),te.parse(a)}w(re,"parseModelStarterCreationRequest");function oe(a,n){let e=re(a),i=j(n);if(!E(e.starter,T(i.starter)))throw new Error("Starter creation references a different package revision.");if(!i.starter.supportedMethods.includes(e.method))throw new Error("The selected training method is not supported by this starter.");return{request:e,resolved:i}}w(oe,"validateModelStarterCreation");function de(a){let{starter:n,taskset:e,taskDefinition:i,rewardBinding:d,rewards:l}=j(a);return{starter:n,inputSchema:i.inputSchema,outputSchema:i.outputSchema,reward:{name:d.name,description:d.description,checks:d.sources.map(c=>{let s=l.find(m=>E(c.reward,T(m)));return{name:s.name,description:s.description,kind:s.implementation.kind,role:c.role,weight:c.weight,required:c.required,hardGate:c.hardGate}})},tasks:n.previewTaskIds.map(c=>{let s=e.tasks.find(m=>m.id===c);return{id:s.id,input:s.input,policyVisibleContext:s.policyVisibleContext}}),counts:{train:e.tasks.filter(c=>c.split==="train").length,validation:e.tasks.filter(c=>c.split==="validation").length,frozenEvaluation:e.tasks.filter(c=>c.split==="frozen_eval").length}}}w(de,"previewModelStarter");function j(a){C(a,16*1024*1024);let n=X.parse(a),{starter:e,taskset:i,taskDefinition:d,rewardBinding:l,rewards:c,assets:s}=n,m=i.metadata.starterAuthoring;if(m&&typeof m=="object"&&!Array.isArray(m)&&"privacyReview"in m&&Y.parse(m.privacyReview).reviewedContentHash!==Z(n))throw new Error("Starter privacy review differs from the published contents.");let g=[e,i,d,l,...c,...s];for(let t of g){let{contentHash:o,...p}=t;if(v(p).contentHash!==o)throw new Error(`Starter resource integrity failed: ${t.id}.`)}D(i),K(n.execution,i,s);function u(t,o){if(!E(t,T(o)))throw new Error(`Starter dependency mismatch: ${t.id}.`)}if(w(u,"exact"),u(e.taskset,i),u(e.taskDefinition,d),u(e.rewardBinding,l),u(d.rewardBinding,l),l.recipeRef)throw new Error("Starter binding recipes must be resolved into a standalone binding before publication.");let{policy:k,environment:x,environmentRelease:M,tools:h,capabilities:ae,verifierSetRelease:_}=i,ie={policy:k,environment:x,...M?{environmentRelease:M}:{},tools:h,capabilities:ae,..._?{verifierSetRelease:_}:{}};if(v(ie).contentHash!==v(d.execution).contentHash)throw new Error("Starter execution context differs from its task format.");if(v({graders:i.graders}).contentHash!==v({graders:b(l,c)}).contentHash)throw new Error("Starter executable graders differ from its Reward binding.");for(let[t,o]of[[e.rewards,c],[e.assets,s]]){if(t.length!==o.length||new Set(o.map(p=>p.id)).size!==o.length)throw new Error("Starter dependency inventory mismatch.");for(let p of t){let S=o.find(y=>y.id===p.id);if(!S)throw new Error(`Starter dependency is missing: ${p.id}.`);u(p,S)}}for(let t of l.sources){let o=c.find(p=>p.id===t.reward.id);if(!o)throw new Error(`Starter Reward is missing: ${t.reward.id}.`);u(t.reward,o)}for(let t of c){let o=t.implementation,p=[...t.assets,..."verifierRef"in o?[o.verifierRef]:[],..."rubricRef"in o?[o.rubricRef]:[],..."inputContract"in o?[o.inputContract]:[]];for(let S of p){let y=s.find(ne=>ne.id===S.id);if(!y||v(y.asset).contentHash!==v(S).contentHash)throw new Error(`Starter Reward source is missing or changed: ${S.id}.`);if(S.visibility==="policy")throw new Error(`Starter Reward source must remain private to its evaluator: ${S.id}.`)}}if(new Set(i.tasks.map(t=>t.id)).size!==i.tasks.length)throw new Error("Starter task identities must be unique.");let $=new Map;for(let t of i.tasks){if(t.policyVisibleContext.instructions!==d.instructions)throw new Error(`Starter task does not carry its declared model instructions: ${t.id}.`);let o=v({input:t.input,context:t.policyVisibleContext}).contentHash,p=$.get(o);if(p&&p!==t.split)throw new Error("Starter policy input appears in multiple splits.");if($.set(o,t.split),!I(d.inputSchema,t.input).valid)throw new Error(`Starter task input does not match its format: ${t.id}.`);if(t.expectedOutput!==null&&!I(d.outputSchema,t.expectedOutput).valid)throw new Error(`Starter expected output does not match its format: ${t.id}.`)}for(let t of e.previewTaskIds){let o=i.tasks.find(p=>p.id===t);if(!o||o.split==="frozen_eval")throw new Error(`Starter preview task is unavailable: ${t}.`)}return n}w(j,"validateResolvedModelStarter");export{se as a,W as b,Y as c,re as d,oe as e,de as f,j as g};
@@ -1,2 +1,2 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{c as F}from"./chunk-IR3YJWPW.js";import{eb as G}from"./chunk-UBCLPZSQ.js";import{l as $,m as z,n as H,o as V,p as R,q as U}from"./chunk-LV3CQ72P.js";import{b as q,d as P}from"./chunk-4M3YW3EQ.js";import{qb as Q,x as h,z as T}from"./chunk-PBZCXPPC.js";import{n as E}from"./chunk-VVNV4NNW.js";import{A as i}from"./chunk-PF56N7ZY.js";import{a}from"./chunk-FTQLQJQV.js";async function K(e){let t=D(await e),[s,m,{QuickJSWASMModule:d}]=await Promise.all([t.importModuleLoader().then(D),t.importFFI(),import("./module-ES6BEMUI-ZVL3F6NW.js").then(D)]),r=await s();r.type="sync";let w=new m(r);return new d(r,w)}a(K,"newQuickJSWASMModuleFromVariant");function D(e){return e&&"default"in e&&e.default?e.default&&"default"in e.default&&e.default.default?e.default.default:e.default:e}a(D,"smartUnwrap");var k=class extends Error{static{a(this,"JavaScriptIsolateExecutionError")}constructor(t){super(t),this.name="JavaScriptIsolateExecutionError"}};async function O(e){te(e),e.signal?.throwIfAborted();let t=a(r=>new Error(`${e.errorPrefix}_${r}`),"error"),s=Date.now()+e.timeoutMs,{default:m}=await import("./dist-SKYG5LZO.js");e.signal?.throwIfAborted();let d=await K(m);e.signal?.throwIfAborted();try{return F.withScope(r=>{let w=r.manage(d.newRuntime());w.setMemoryLimit(33554432),w.setMaxStackSize(262144),w.setInterruptHandler(()=>Date.now()>=s||e.signal?.aborted===!0);let n=r.manage(w.newContext());e.deterministic&&r.manage(n.unwrapResult(n.evalCode("globalThis.Date = undefined; Math.random = () => { throw new Error('environment_random_requires_explicit_seed'); };")));let _=r.manage(n.unwrapResult(n.evalCode("JSON.stringify"))),o=r.manage(n.unwrapResult(n.evalCode(`JSON.parse(${JSON.stringify(JSON.stringify(e.value))})`))),p=r.manage(n.unwrapResult(n.evalCode(e.source,`${e.errorPrefix}.mjs`,{type:"module"}))),v=r.manage(X(n,p,s,e.signal,t)),x=r.manage(n.getProp(v,e.exportName));if(n.typeof(x)!=="function")throw t("function_export_missing");let M=r.manage(n.unwrapResult(n.callFunction(x,n.undefined,o))),b=r.manage(X(n,M,s,e.signal,t)),c=r.manage(n.unwrapResult(n.callFunction(_,n.undefined,b)));if(n.typeof(c)!=="string")throw t("result_not_json");let f=n.getString(c);if(new TextEncoder().encode(f).byteLength>e.maxResultBytes)throw t("result_too_large");if(e.signal?.throwIfAborted(),Date.now()>=s)throw t("timeout");let g=JSON.parse(f);return h(g,e.maxResultBytes),g})}catch(r){throw e.signal?.throwIfAborted(),new k(r instanceof Error?r.message:"JavaScript execution failed.")}}a(O,"executeJavaScriptIsolate");function te(e){if(!Number.isInteger(e.timeoutMs)||e.timeoutMs<1||e.timeoutMs>3e5)throw new Error(`${e.errorPrefix}_timeout_invalid`);if(!Number.isInteger(e.maxResultBytes)||e.maxResultBytes<1||e.maxResultBytes>4194304)throw new Error(`${e.errorPrefix}_result_limit_invalid`);if(new TextEncoder().encode(e.source).byteLength>524288)throw new Error(`${e.errorPrefix}_source_too_large`);h(e.value,4194304)}a(te,"validateJavaScriptIsolateInput");function X(e,t,s,m,d){for(;;){if(m?.throwIfAborted(),Date.now()>=s)throw d("timeout");let r=e.getPromiseState(t);if(r.type==="fulfilled")return r.notAPromise?r.value.dup():r.value;if(r.type==="rejected")return e.unwrapResult(r);if(e.runtime.executePendingJobs(1).unwrap()===0)throw d("unresolved_promise")}}a(X,"settle");function I(e,t){let s=t.scope==="arguments"?e.action?.arguments:e[t.scope];for(let m of t.path){if(!s||typeof s!="object"||!Object.hasOwn(s,m))throw new Error("environment_service_reference_missing");s=s[m]}return s}a(I,"resolveValue");async function Y(e,t){if(!e.executionServices?.length)return t.controller(e);if(!Number.isSafeInteger(e.timeoutMs)||e.timeoutMs<1||e.timeoutMs>3e4)throw new Error("environment_timeout_invalid");h(e.value,4194304);let s=e.executionServices.map(n=>z.parse(n));if(s.length>16)throw new Error("environment_service_limit");if(new Set(s.map(n=>n.id)).size!==s.length)throw new Error("environment_service_identity_collision");let m=Date.now(),d=new AbortController,r=e.signal?AbortSignal.any([e.signal,d.signal]):d.signal,w=setTimeout(()=>d.abort(new Error("environment_timeout")),e.timeoutMs);try{let n=Object.create(null);for(let o of s){if(r.throwIfAborted(),o.operation!==e.operation||o.operation==="step"&&o.toolName!==e.value.action?.name)throw new Error("environment_service_operation_mismatch");let p=Math.min(o.timeoutMs,e.timeoutMs-(Date.now()-m));if(p<1)throw new Error("environment_timeout");let v=new AbortController,x=AbortSignal.any([r,v.signal]),M=setTimeout(()=>v.abort(new Error("environment_service_timeout")),p),b=Date.now();try{if(o.kind==="sqlite.v1"){if(!t.sql)throw new Error("environment_sql_executor_required");let c=I(e.value,o.sql);if(typeof c!="string"||!c.length||new TextEncoder().encode(c).byteLength>65536||c.includes("\0")){n[o.id]={status:"rejected",code:"invalid_submission"};continue}let f=$({schemaVersion:"openpond.sqlExecution.v1",snapshot:I(e.value,o.snapshot),sql:c,maxRows:o.maxRows,maxResultBytes:o.maxResultBytes});n[o.id]=await t.sql({request:f,timeoutMs:e.timeoutMs,signal:x})}else{let c=I(e.value,o.source),f=I(e.value,o.cases);if(typeof c!="string"||new TextEncoder().encode(c).byteLength>524288){n[o.id]={status:"rejected",code:"invalid_submission"};continue}if(!Array.isArray(f)||!f.length||f.length>o.maxCases||f.some(u=>!u||typeof u!="object"||!Object.hasOwn(u,"input")))throw new Error("environment_service_cases_invalid");let g=[];for(let u of f){let l=p-(Date.now()-b);if(l<1&&(v.abort(new Error("environment_service_timeout")),x.throwIfAborted()),g.push(await t.candidate({source:c,exportName:o.exportName,value:structuredClone(u.input),timeoutMs:Math.max(1,l),maxResultBytes:o.maxResultBytes,deterministic:!0,errorPrefix:"candidate",signal:x})),new TextEncoder().encode(JSON.stringify({status:"completed",cases:g})).byteLength>o.maxResultBytes)throw new k("candidate_result_too_large")}n[o.id]={status:"completed",cases:g}}}catch(c){if(r.throwIfAborted(),v.signal.aborted)n[o.id]={status:"rejected",code:"timeout"};else if(c instanceof k)n[o.id]={status:"rejected",code:"execution_failed"};else throw c}finally{clearTimeout(M)}}r.throwIfAborted();let _=e.timeoutMs-(Date.now()-m);if(_<1)throw new Error("environment_timeout");return await t.controller({...e,executionServices:void 0,value:{...e.value,services:n},timeoutMs:_,signal:r})}finally{clearTimeout(w)}}a(Y,"executeEnvironmentWithServices");async function re(e){let t=V.parse(e.operation);return Y(e,{candidate:O,controller:a(async s=>R.parse(await O({...s,exportName:t,maxResultBytes:1572864,deterministic:!0,errorPrefix:"environment"})),"controller")})}a(re,"executeJavaScriptEnvironment");var J=class extends Error{static{a(this,"JavaScriptEnvironmentActionError")}code;constructor(t){super(`environment_${t}`),this.code=t,this.name="JavaScriptEnvironmentActionError"}};async function Qe(e){let t=U(e.definition),s=P(e.asset,t.module);if(!Number.isSafeInteger(e.seed))throw new Error("environment_seed_invalid");let m=e.seed;h(e.input,1048576),h(e.initialState,t.maxStateBytes);let d=structuredClone(e.input),r=structuredClone(e.initialState),w=e.execute??re,n=new AbortController,_=e.signal?AbortSignal.any([e.signal,n.signal]):n.signal,o={},p=0,v=!1,x=!1,M=null,b=[],c=null;async function f(u,l){if(v||x)throw new Error("environment_closed");if(M)throw new Error("environment_operation_in_progress");_.throwIfAborted(),l&&(h(l,262144),l=structuredClone(l));let L=E(o),y=l?t.tools.find(S=>S.name===l.name):null;if(u==="step"){if(p>=t.maxSteps)throw new J("step_budget_exhausted");p++}let j=a((S,C)=>b.push({sequence:b.length,operation:u,toolName:l?.name??null,arguments:l?structuredClone(l.arguments):null,observation:S,beforeStateHash:L,afterStateHash:E(o),error:C}),"record");try{if(l&&!y)throw new J("unknown_tool");if(l&&y&&!T(y.inputSchema,l.arguments).valid)throw new J("invalid_arguments");let S=t.executionServices?.filter(N=>N.operation===u&&(u!=="step"||N.toolName===l?.name)),C=w({source:s,operation:u,value:{input:d,initialState:r,seed:m,state:structuredClone(o),sequence:p,action:l?structuredClone(l):null},timeoutMs:Math.min(t.operationTimeoutMs,y?.timeoutMs??t.operationTimeoutMs),signal:_,...S?.length?{executionServices:S}:{}});M=C;let A=R.parse(await C);if(_.throwIfAborted(),h(A.state,t.maxStateBytes),h(A.observation,t.maxObservationBytes),(u==="collect"||y?.sideEffect==="read")&&E(A.state)!==L)throw new Error("environment_read_changed_state");o=structuredClone(A.state);let B=structuredClone(A.observation);return j(B,null),{state:structuredClone(o),observation:B}}catch(S){throw j(null,S instanceof Error?S.message:"environment_execution_failed"),S}finally{M=null}}a(f,"invoke");async function g(){return c||(x=!0,n.abort(new Error("environment_destroyed")),c=(async()=>{try{try{await M}catch{}await w({source:s,operation:"destroy",value:{input:d,initialState:r,seed:m,state:structuredClone(o),sequence:p,action:null},timeoutMs:t.operationTimeoutMs})}finally{o={},v=!0}})(),c)}a(g,"destroy");try{await f("create");let u=await f("reset"),l=E(o),L=a(()=>{if(v)throw new Error("environment_closed");return{definition:{id:t.id,revision:t.revision,contentHash:t.contentHash},inputHash:E(d),seed:m,initialStateHash:l,finalStateHash:E(o),state:structuredClone(o),events:structuredClone(b)}},"snapshot");return{definition:structuredClone(t),observation:u.observation,async step(y){return(await f("step",y)).observation},async collect(){let y=await f("collect");return{...L(),observation:y.observation}},snapshot:L,destroy:g}}catch(u){try{await g()}catch{}throw u}}a(Qe,"createJavaScriptEnvironmentSession");var ne=i.string().trim().min(1).max(500),oe=i.string().regex(/^[a-f0-9]{64}$/),W=i.object({kind:i.literal("model"),id:i.string().trim().min(1).max(191),taskId:ne,admissionHash:oe,model:G,instructions:i.string().max(262144),harness:Q.optional(),input:i.record(i.string(),i.unknown()),policyVisibleContext:i.record(i.string(),i.unknown()),timeoutMs:i.number().int().positive().max(36e5),environment:i.discriminatedUnion("kind",[i.object({kind:i.literal("text")}).strict(),i.object({kind:i.literal("javascript"),definition:H,asset:q,initialState:i.record(i.string(),i.unknown()),seed:i.number().int().safe()}).strict()])}).strict(),Ye=i.discriminatedUnion("kind",[W,i.object({kind:i.literal("profile"),request:i.unknown()}).strict()]);var Z=i.string().trim().min(1).max(200),mt=i.object({receiptId:Z,taskId:Z,seed:i.string(),request:W}).strict(),ee=class extends Error{constructor(s,m,d=409){super(m);this.code=s;this.status=d}code;status;static{a(this,"LocalExperimentError")}};export{k as a,te as b,Y as c,J as d,Qe as e,W as f,Ye as g,ee as h};
2
+ import{c as F}from"./chunk-IR3YJWPW.js";import{eb as G}from"./chunk-TUCKED4T.js";import{l as $,m as z,n as H,o as V,p as R,q as U}from"./chunk-LV3CQ72P.js";import{b as q,d as P}from"./chunk-4M3YW3EQ.js";import{qb as Q,x as h,z as T}from"./chunk-PBZCXPPC.js";import{n as E}from"./chunk-VVNV4NNW.js";import{A as i}from"./chunk-PF56N7ZY.js";import{a}from"./chunk-FTQLQJQV.js";async function K(e){let t=D(await e),[s,m,{QuickJSWASMModule:d}]=await Promise.all([t.importModuleLoader().then(D),t.importFFI(),import("./module-ES6BEMUI-ZVL3F6NW.js").then(D)]),r=await s();r.type="sync";let w=new m(r);return new d(r,w)}a(K,"newQuickJSWASMModuleFromVariant");function D(e){return e&&"default"in e&&e.default?e.default&&"default"in e.default&&e.default.default?e.default.default:e.default:e}a(D,"smartUnwrap");var k=class extends Error{static{a(this,"JavaScriptIsolateExecutionError")}constructor(t){super(t),this.name="JavaScriptIsolateExecutionError"}};async function O(e){te(e),e.signal?.throwIfAborted();let t=a(r=>new Error(`${e.errorPrefix}_${r}`),"error"),s=Date.now()+e.timeoutMs,{default:m}=await import("./dist-SKYG5LZO.js");e.signal?.throwIfAborted();let d=await K(m);e.signal?.throwIfAborted();try{return F.withScope(r=>{let w=r.manage(d.newRuntime());w.setMemoryLimit(33554432),w.setMaxStackSize(262144),w.setInterruptHandler(()=>Date.now()>=s||e.signal?.aborted===!0);let n=r.manage(w.newContext());e.deterministic&&r.manage(n.unwrapResult(n.evalCode("globalThis.Date = undefined; Math.random = () => { throw new Error('environment_random_requires_explicit_seed'); };")));let _=r.manage(n.unwrapResult(n.evalCode("JSON.stringify"))),o=r.manage(n.unwrapResult(n.evalCode(`JSON.parse(${JSON.stringify(JSON.stringify(e.value))})`))),p=r.manage(n.unwrapResult(n.evalCode(e.source,`${e.errorPrefix}.mjs`,{type:"module"}))),v=r.manage(X(n,p,s,e.signal,t)),x=r.manage(n.getProp(v,e.exportName));if(n.typeof(x)!=="function")throw t("function_export_missing");let M=r.manage(n.unwrapResult(n.callFunction(x,n.undefined,o))),b=r.manage(X(n,M,s,e.signal,t)),c=r.manage(n.unwrapResult(n.callFunction(_,n.undefined,b)));if(n.typeof(c)!=="string")throw t("result_not_json");let f=n.getString(c);if(new TextEncoder().encode(f).byteLength>e.maxResultBytes)throw t("result_too_large");if(e.signal?.throwIfAborted(),Date.now()>=s)throw t("timeout");let g=JSON.parse(f);return h(g,e.maxResultBytes),g})}catch(r){throw e.signal?.throwIfAborted(),new k(r instanceof Error?r.message:"JavaScript execution failed.")}}a(O,"executeJavaScriptIsolate");function te(e){if(!Number.isInteger(e.timeoutMs)||e.timeoutMs<1||e.timeoutMs>3e5)throw new Error(`${e.errorPrefix}_timeout_invalid`);if(!Number.isInteger(e.maxResultBytes)||e.maxResultBytes<1||e.maxResultBytes>4194304)throw new Error(`${e.errorPrefix}_result_limit_invalid`);if(new TextEncoder().encode(e.source).byteLength>524288)throw new Error(`${e.errorPrefix}_source_too_large`);h(e.value,4194304)}a(te,"validateJavaScriptIsolateInput");function X(e,t,s,m,d){for(;;){if(m?.throwIfAborted(),Date.now()>=s)throw d("timeout");let r=e.getPromiseState(t);if(r.type==="fulfilled")return r.notAPromise?r.value.dup():r.value;if(r.type==="rejected")return e.unwrapResult(r);if(e.runtime.executePendingJobs(1).unwrap()===0)throw d("unresolved_promise")}}a(X,"settle");function I(e,t){let s=t.scope==="arguments"?e.action?.arguments:e[t.scope];for(let m of t.path){if(!s||typeof s!="object"||!Object.hasOwn(s,m))throw new Error("environment_service_reference_missing");s=s[m]}return s}a(I,"resolveValue");async function Y(e,t){if(!e.executionServices?.length)return t.controller(e);if(!Number.isSafeInteger(e.timeoutMs)||e.timeoutMs<1||e.timeoutMs>3e4)throw new Error("environment_timeout_invalid");h(e.value,4194304);let s=e.executionServices.map(n=>z.parse(n));if(s.length>16)throw new Error("environment_service_limit");if(new Set(s.map(n=>n.id)).size!==s.length)throw new Error("environment_service_identity_collision");let m=Date.now(),d=new AbortController,r=e.signal?AbortSignal.any([e.signal,d.signal]):d.signal,w=setTimeout(()=>d.abort(new Error("environment_timeout")),e.timeoutMs);try{let n=Object.create(null);for(let o of s){if(r.throwIfAborted(),o.operation!==e.operation||o.operation==="step"&&o.toolName!==e.value.action?.name)throw new Error("environment_service_operation_mismatch");let p=Math.min(o.timeoutMs,e.timeoutMs-(Date.now()-m));if(p<1)throw new Error("environment_timeout");let v=new AbortController,x=AbortSignal.any([r,v.signal]),M=setTimeout(()=>v.abort(new Error("environment_service_timeout")),p),b=Date.now();try{if(o.kind==="sqlite.v1"){if(!t.sql)throw new Error("environment_sql_executor_required");let c=I(e.value,o.sql);if(typeof c!="string"||!c.length||new TextEncoder().encode(c).byteLength>65536||c.includes("\0")){n[o.id]={status:"rejected",code:"invalid_submission"};continue}let f=$({schemaVersion:"openpond.sqlExecution.v1",snapshot:I(e.value,o.snapshot),sql:c,maxRows:o.maxRows,maxResultBytes:o.maxResultBytes});n[o.id]=await t.sql({request:f,timeoutMs:e.timeoutMs,signal:x})}else{let c=I(e.value,o.source),f=I(e.value,o.cases);if(typeof c!="string"||new TextEncoder().encode(c).byteLength>524288){n[o.id]={status:"rejected",code:"invalid_submission"};continue}if(!Array.isArray(f)||!f.length||f.length>o.maxCases||f.some(u=>!u||typeof u!="object"||!Object.hasOwn(u,"input")))throw new Error("environment_service_cases_invalid");let g=[];for(let u of f){let l=p-(Date.now()-b);if(l<1&&(v.abort(new Error("environment_service_timeout")),x.throwIfAborted()),g.push(await t.candidate({source:c,exportName:o.exportName,value:structuredClone(u.input),timeoutMs:Math.max(1,l),maxResultBytes:o.maxResultBytes,deterministic:!0,errorPrefix:"candidate",signal:x})),new TextEncoder().encode(JSON.stringify({status:"completed",cases:g})).byteLength>o.maxResultBytes)throw new k("candidate_result_too_large")}n[o.id]={status:"completed",cases:g}}}catch(c){if(r.throwIfAborted(),v.signal.aborted)n[o.id]={status:"rejected",code:"timeout"};else if(c instanceof k)n[o.id]={status:"rejected",code:"execution_failed"};else throw c}finally{clearTimeout(M)}}r.throwIfAborted();let _=e.timeoutMs-(Date.now()-m);if(_<1)throw new Error("environment_timeout");return await t.controller({...e,executionServices:void 0,value:{...e.value,services:n},timeoutMs:_,signal:r})}finally{clearTimeout(w)}}a(Y,"executeEnvironmentWithServices");async function re(e){let t=V.parse(e.operation);return Y(e,{candidate:O,controller:a(async s=>R.parse(await O({...s,exportName:t,maxResultBytes:1572864,deterministic:!0,errorPrefix:"environment"})),"controller")})}a(re,"executeJavaScriptEnvironment");var J=class extends Error{static{a(this,"JavaScriptEnvironmentActionError")}code;constructor(t){super(`environment_${t}`),this.code=t,this.name="JavaScriptEnvironmentActionError"}};async function Qe(e){let t=U(e.definition),s=P(e.asset,t.module);if(!Number.isSafeInteger(e.seed))throw new Error("environment_seed_invalid");let m=e.seed;h(e.input,1048576),h(e.initialState,t.maxStateBytes);let d=structuredClone(e.input),r=structuredClone(e.initialState),w=e.execute??re,n=new AbortController,_=e.signal?AbortSignal.any([e.signal,n.signal]):n.signal,o={},p=0,v=!1,x=!1,M=null,b=[],c=null;async function f(u,l){if(v||x)throw new Error("environment_closed");if(M)throw new Error("environment_operation_in_progress");_.throwIfAborted(),l&&(h(l,262144),l=structuredClone(l));let L=E(o),y=l?t.tools.find(S=>S.name===l.name):null;if(u==="step"){if(p>=t.maxSteps)throw new J("step_budget_exhausted");p++}let j=a((S,C)=>b.push({sequence:b.length,operation:u,toolName:l?.name??null,arguments:l?structuredClone(l.arguments):null,observation:S,beforeStateHash:L,afterStateHash:E(o),error:C}),"record");try{if(l&&!y)throw new J("unknown_tool");if(l&&y&&!T(y.inputSchema,l.arguments).valid)throw new J("invalid_arguments");let S=t.executionServices?.filter(N=>N.operation===u&&(u!=="step"||N.toolName===l?.name)),C=w({source:s,operation:u,value:{input:d,initialState:r,seed:m,state:structuredClone(o),sequence:p,action:l?structuredClone(l):null},timeoutMs:Math.min(t.operationTimeoutMs,y?.timeoutMs??t.operationTimeoutMs),signal:_,...S?.length?{executionServices:S}:{}});M=C;let A=R.parse(await C);if(_.throwIfAborted(),h(A.state,t.maxStateBytes),h(A.observation,t.maxObservationBytes),(u==="collect"||y?.sideEffect==="read")&&E(A.state)!==L)throw new Error("environment_read_changed_state");o=structuredClone(A.state);let B=structuredClone(A.observation);return j(B,null),{state:structuredClone(o),observation:B}}catch(S){throw j(null,S instanceof Error?S.message:"environment_execution_failed"),S}finally{M=null}}a(f,"invoke");async function g(){return c||(x=!0,n.abort(new Error("environment_destroyed")),c=(async()=>{try{try{await M}catch{}await w({source:s,operation:"destroy",value:{input:d,initialState:r,seed:m,state:structuredClone(o),sequence:p,action:null},timeoutMs:t.operationTimeoutMs})}finally{o={},v=!0}})(),c)}a(g,"destroy");try{await f("create");let u=await f("reset"),l=E(o),L=a(()=>{if(v)throw new Error("environment_closed");return{definition:{id:t.id,revision:t.revision,contentHash:t.contentHash},inputHash:E(d),seed:m,initialStateHash:l,finalStateHash:E(o),state:structuredClone(o),events:structuredClone(b)}},"snapshot");return{definition:structuredClone(t),observation:u.observation,async step(y){return(await f("step",y)).observation},async collect(){let y=await f("collect");return{...L(),observation:y.observation}},snapshot:L,destroy:g}}catch(u){try{await g()}catch{}throw u}}a(Qe,"createJavaScriptEnvironmentSession");var ne=i.string().trim().min(1).max(500),oe=i.string().regex(/^[a-f0-9]{64}$/),W=i.object({kind:i.literal("model"),id:i.string().trim().min(1).max(191),taskId:ne,admissionHash:oe,model:G,instructions:i.string().max(262144),harness:Q.optional(),input:i.record(i.string(),i.unknown()),policyVisibleContext:i.record(i.string(),i.unknown()),timeoutMs:i.number().int().positive().max(36e5),environment:i.discriminatedUnion("kind",[i.object({kind:i.literal("text")}).strict(),i.object({kind:i.literal("javascript"),definition:H,asset:q,initialState:i.record(i.string(),i.unknown()),seed:i.number().int().safe()}).strict()])}).strict(),Ye=i.discriminatedUnion("kind",[W,i.object({kind:i.literal("profile"),request:i.unknown()}).strict()]);var Z=i.string().trim().min(1).max(200),mt=i.object({receiptId:Z,taskId:Z,seed:i.string(),request:W}).strict(),ee=class extends Error{constructor(s,m,d=409){super(m);this.code=s;this.status=d}code;status;static{a(this,"LocalExperimentError")}};export{k as a,te as b,Y as c,J as d,Qe as e,W as f,Ye as g,ee as h};
@@ -1,5 +1,5 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{a as vt,c as at}from"./chunk-JHR3LF2F.js";import{Aa as Yt,Ea as Zt,Fa as Qt,Ha as te,b as J,p as st,ya as At,za as Pt}from"./chunk-UBCLPZSQ.js";import{t as qt}from"./chunk-D5ADDBS5.js";import{S as Jt,U as St,e as Wt}from"./chunk-KK626T3Z.js";import{I as Kt}from"./chunk-6DCXAXVD.js";import{e as Vt}from"./chunk-OE22TAXP.js";import{A as rt}from"./chunk-PF56N7ZY.js";import{a as r}from"./chunk-FTQLQJQV.js";import{promises as ae}from"node:fs";import Et from"node:path";import Ke from"node:os";import ee from"node:path";function bt(t){let e=t.trim();return e.startsWith("# AGENTS.md instructions for ")||e.startsWith("<environment_context>")||e.startsWith("<summary>")||e.startsWith("<user_info>")}r(bt,"isCodexInjectedUserMessage");function mt(t){let e=t.trim(),n=/^<(goal_context|turn_aborted)>\s*([\s\S]*?)\s*<\/\1>$/.exec(e);if(n){let o=n[1];return{kind:o,text:n[2]?.trim()||Rt(o)}}return e==="<turn_aborted>"?{kind:"turn_aborted",text:Rt("turn_aborted")}:e==="<goal_context>"?{kind:"goal_context",text:Rt("goal_context")}:null}r(mt,"codexControlMessage");function Y(t,e){return t.length<=e?t:`${t.slice(0,e)}
2
+ import{a as vt,c as at}from"./chunk-JHR3LF2F.js";import{Aa as Yt,Ea as Zt,Fa as Qt,Ha as te,b as J,p as st,ya as At,za as Pt}from"./chunk-TUCKED4T.js";import{t as qt}from"./chunk-JY3YSI54.js";import{S as Jt,U as St,e as Wt}from"./chunk-2EPR4HLF.js";import{I as Kt}from"./chunk-BKEDG3A4.js";import{e as Vt}from"./chunk-OE22TAXP.js";import{A as rt}from"./chunk-PF56N7ZY.js";import{a as r}from"./chunk-FTQLQJQV.js";import{promises as ae}from"node:fs";import Et from"node:path";import Ke from"node:os";import ee from"node:path";function bt(t){let e=t.trim();return e.startsWith("# AGENTS.md instructions for ")||e.startsWith("<environment_context>")||e.startsWith("<summary>")||e.startsWith("<user_info>")}r(bt,"isCodexInjectedUserMessage");function mt(t){let e=t.trim(),n=/^<(goal_context|turn_aborted)>\s*([\s\S]*?)\s*<\/\1>$/.exec(e);if(n){let o=n[1];return{kind:o,text:n[2]?.trim()||Rt(o)}}return e==="<turn_aborted>"?{kind:"turn_aborted",text:Rt("turn_aborted")}:e==="<goal_context>"?{kind:"goal_context",text:Rt("goal_context")}:null}r(mt,"codexControlMessage");function Y(t,e){return t.length<=e?t:`${t.slice(0,e)}
3
3
 
4
4
  [truncated ${t.length-e} characters from Codex history]`}r(Y,"truncateText");function it(t){return t.replace(/\s+/g," ").trim()}r(it,"normalizeTitleText");function ne(t){if(!t.trim())return null;try{return JSON.parse(t)}catch{return null}}r(ne,"parseMaybeJson");function Q(t){if(!t.trim())return null;try{return JSON.parse(t)}catch{return null}}r(Q,"parseJson");function C(t){return t&&typeof t=="object"&&!Array.isArray(t)?t:null}r(C,"asRecord");function l(t){return typeof t=="string"&&t.trim()?t.trim():null}r(l,"stringValue");function F(t){return typeof t=="number"&&Number.isFinite(t)?t:null}r(F,"numberValue");function oe(t){let e=new Map;if(!t)return e;for(let[n,o]of Object.entries(t))typeof o=="string"&&o.trim()&&e.set(n,o.trim());return e}r(oe,"stringMap");function P(t){return t.replace(/[^a-zA-Z0-9_-]+/g,"_").slice(0,96)||"item"}r(P,"safeId");function kt(t){let e=0;for(let n of t)typeof n=="number"&&n>e&&(e=n);return e}r(kt,"latestMillis");function tt(t){let e=kt(t.map(v));return new Date(e||Date.now()).toISOString()}r(tt,"latestIso");function v(t){if(!t)return 0;let e=Date.parse(t);return Number.isFinite(e)?e:0}r(v,"millisFromIso");function K(t){if(typeof t!="string"||!t.trim())return null;let e=t.trim().replace(/(\.\d{3})\d+(Z)$/i,"$1$2"),n=Date.parse(e);return Number.isFinite(n)?new Date(n).toISOString():null}r(K,"isoTimestamp");function re(t){if(t===null)return null;let e=t*1e3;return Number.isFinite(e)?new Date(e).toISOString():null}r(re,"isoFromEpochSeconds");function se(t){let e=/rollout-(\d{4}-\d{2}-\d{2})T(\d{2})-(\d{2})-(\d{2})-/.exec(ee.basename(t));return e?K(`${e[1]}T${e[2]}:${e[3]}:${e[4]}.000Z`):null}r(se,"isoFromFileName");function et(){return process.env.CODEX_HOME?.trim()||ee.join(Ke.homedir(),".codex")}r(et,"codexHomePath");function Rt(t){return t==="turn_aborted"?"The previous turn was interrupted.":"Goal context updated."}r(Rt,"defaultCodexControlText");import{createReadStream as Je}from"node:fs";import{createInterface as qe}from"node:readline";async function Z(t,e){let n=Je(t,{encoding:"utf8"}),o=qe({input:n,crlfDelay:1/0});for await(let s of o){if(!s.trim())continue;let a=Q(s);a&&e(a)}}r(Z,"readJsonlRecords");function Mt(t){let e=new Map;async function n(o){let s=await ae.stat(o);return`${s.dev}:${s.ino}:${s.size}:${s.mtimeMs}:${s.ctimeMs}`}return r(n,"signature"),async o=>{let s;try{s=await n(o)}catch{return e.delete(o),t(o)}let a=e.get(o);if(a?.signature===s)return a.value;let i=t(o).then(async d=>(await n(o).catch(()=>null)!==s&&e.get(o)?.value===i&&e.delete(o),d)).catch(d=>{throw e.get(o)?.value===i&&e.delete(o),d});return e.set(o,{signature:s,value:i}),e.size>4&&e.delete(e.keys().next().value),i}}r(Mt,"cachedFileReader");var Ye=Mt(tn),Ze=Mt(en),Qe=Mt(nn),ie=r(t=>Ye(Et.join(t,"history.jsonl")),"readPromptHistory"),de=r(t=>Ze(Et.join(t,"session_index.jsonl")),"readSessionIndex"),ce=r(t=>Qe(Et.join(t,".codex-global-state.json")),"readGlobalState");async function tn(t){let e=new Map;return await Z(t,n=>{let o=C(n),s=l(o?.session_id),a=l(o?.text)??"",i=re(F(o?.ts));if(!s||!/\S/.test(a)||!i)return;let d=e.get(s)??{firstPrompt:null,latestPrompt:null,firstAt:null,latestAt:null};(!d.firstAt||v(i)<v(d.firstAt))&&(d.firstAt=i,d.firstPrompt=it(a).slice(0,160)),(!d.latestAt||v(i)>v(d.latestAt))&&(d.latestAt=i),e.set(s,d)}).catch(()=>{}),e}r(tn,"parsePromptHistory");async function en(t){let e=new Map;return await Z(t,n=>{let o=C(n),s=l(o?.id);s&&e.set(s,{id:s,threadName:it(l(o?.thread_name)??"")||null,updatedAt:K(l(o?.updated_at))})}).catch(()=>{}),e}r(en,"parseSessionIndex");async function nn(t){let e;try{e=JSON.parse(await ae.readFile(t,"utf8"))}catch{e=null}let n=C(e);return{workspaceRootHints:oe(C(n?.["thread-workspace-root-hints"]))}}r(nn,"parseGlobalState");import{createReadStream as bn,existsSync as _e,mkdirSync as kn,promises as En,readFileSync as Mn,statSync as Ot,writeFileSync as Nn}from"node:fs";import ht from"node:os";import b from"node:path";import{createInterface as Hn}from"node:readline";import{promises as pt}from"node:fs";import H from"node:path";var on=12e4,rn=15*1024*1024,dt=2*1024*1024,le=new Map([[".gif","image/gif"],[".jpeg","image/jpeg"],[".jpg","image/jpeg"],[".png","image/png"],[".webp","image/webp"]]),sn=new Set(le.values()),an=new Set(["application/javascript","application/json","application/ld+json","application/sql","application/toml","application/typescript","application/x-httpd-php","application/x-javascript","application/x-sh","application/x-yaml","application/xml","application/yaml"]),dn=new Set([".c",".cc",".cpp",".css",".csv",".go",".h",".html",".java",".js",".json",".jsx",".log",".md",".mdx",".php",".py",".rb",".rs",".sh",".sql",".toml",".ts",".tsx",".txt",".xml",".yaml",".yml"]);async function or(t){let e=t.attachments??[];if(e.length===0)return[];let n=H.join(t.attachmentRootDir,R(t.sessionId),R(t.turnId)),o=new Set,s=[];for(let[a,i]of e.entries()){let c={...ue(i),...i.text?{text:i.text}:{}};if(i.contentsBase64){await pt.mkdir(n,{recursive:!0});let m=mn(i.relativePath||i.name,o,a+1),u=H.join(n,m);await pt.mkdir(H.dirname(u),{recursive:!0});let h=Buffer.from(i.contentsBase64,"base64"),p=await Jt(t.storageHome,{owner:{domain:"chat_attachment",id:JSON.stringify([t.sessionId,t.turnId,m])},displayName:i.name,mediaType:i.mediaType,bytes:h});await Wt(u,h),c.localPath=p.path,c.storageName=m}s.push(c)}return s}r(or,"materializeChatAttachments");function rr(t,e){let n=new Map(e?.materialized.map(o=>[o.id,o])??[]);return(t??[]).map(o=>{let s=ue(o),a=n.get(o.id),i=U(o.mediaType,a?.storageName??o.name);return e&&s.kind==="image"&&a?.localPath&&a.storageName&&i?{...s,imagePreview:{sessionId:e.sessionId,turnId:e.turnId,attachmentId:o.id,storageName:a.storageName,contentType:i}}:e&&a?.localPath&&a.storageName&&o.sizeBytes<=dt&&ct(o.mediaType,a.storageName)?{...s,filePreview:{sessionId:e.sessionId,turnId:e.turnId,attachmentId:o.id,storageName:a.storageName,contentType:o.mediaType}}:s})}r(rr,"chatAttachmentSummaries");function sr(t){if(!t||t.length===0)return"";let e=["<attachments>",`The user attached ${t.length} file${t.length===1?"":"s"} with this message.`],n=on;for(let[o,s]of t.entries()){let a=s.localPath?` Saved locally at: ${s.localPath}`:"";e.push(`${o+1}. ${s.name} (${s.mediaType}, ${pn(s.sizeBytes)}, ${s.kind}).${a}`);let i=s.text?.trim();if(i&&n>0){let d=i.length>n?`${i.slice(0,Math.max(0,n-34))}
5
5
  [attachment text truncated]`:i;e.push("Text content:"),e.push("~~~text"),e.push(d),e.push("~~~"),n-=d.length}}return e.push("</attachments>"),e.join(`
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{F as Ie}from"./chunk-3DVWJCOA.js";import{e as He}from"./chunk-MWXW2CA6.js";import{a as Ee}from"./chunk-IZ56L2ZK.js";import{a as B}from"./chunk-WBUK73ST.js";import{a as je}from"./chunk-OZ6LRNRE.js";import{b as Re,c as ie,y as ne}from"./chunk-PBZCXPPC.js";import{e as ve,i as Se,l as Pe,m as be}from"./chunk-NJLULBTM.js";import{l as v,m as fe,n as j}from"./chunk-VVNV4NNW.js";import{a as c}from"./chunk-FTQLQJQV.js";import{promises as f}from"node:fs";import n from"node:path";import te from"node:path";import{constants as De,promises as D}from"node:fs";import R from"node:path";async function Fe(e){let t=await D.lstat(e);if(t.isSymbolicLink())throw new Error(`Profile source cannot be a symlink: ${e}`);if(t.isFile())return[R.basename(e)];if(!t.isDirectory())throw new Error(`Profile source is not a file or directory: ${e}`);return _(e)}c(Fe,"sourceFilesForImport");function xe(e){for(let t of["agent.ts","index.ts","agent/agent.ts","agent.yaml","agent.yml","agent.json"])if(e.includes(t))return t;return e[0]}c(xe,"selectAgentPrimaryFile");async function $e(e,t){let a=await D.lstat(e);if(!a.isFile()||a.isSymbolicLink())throw new Error(`Harness import source must be a regular non-symlink file: ${e}`);await D.mkdir(R.dirname(t),{recursive:!0}),await D.copyFile(e,t,De.COPYFILE_EXCL)}c($e,"copyRegularFile");function Z(e){let t=R.extname(e).toLowerCase();return[".md",".txt"].includes(t)?t===".md"?"text/markdown":"text/plain":[".json"].includes(t)?"application/json":[".yaml",".yml"].includes(t)?"application/yaml":[".ts",".tsx",".js",".mjs",".cjs"].includes(t)?"text/javascript":t===".py"?"text/x-python":"application/octet-stream"}c(Z,"mediaTypeForPath");async function ee(e,t){let a=R.resolve(e,...t.split("/")),o=R.relative(e,a);if(!o||o.startsWith("..")||R.isAbsolute(o))throw new Error(`Harness source path escapes its root: ${t}`);let s=await D.lstat(a);if(!s.isFile()||s.isSymbolicLink())throw new Error(`Harness source path must be a regular non-symlink file: ${t}`);let r=await D.realpath(a),w=R.relative(await D.realpath(e),r);if(w.startsWith("..")||R.isAbsolute(w))throw new Error(`Harness source path resolves outside its root: ${t}`);return a}c(ee,"resolveContainedRegularFile");async function _(e,t=e){let a=await D.readdir(t,{withFileTypes:!0}),o=[];for(let s of a){if(["node_modules",".git",".openpond"].includes(s.name)||s.name.startsWith(".env"))continue;let r=R.join(t,s.name);if(s.isSymbolicLink())throw new Error(`Harness source cannot contain symlinks: ${R.relative(e,r)}`);if(s.isDirectory())o.push(...await _(e,r));else if(s.isFile())o.push(R.relative(e,r).split(R.sep).join("/"));else throw new Error(`Harness source contains an unsupported entry: ${R.relative(e,r)}`)}return o.sort()}c(_,"listRegularFiles");function H(e){return e.toLowerCase().replace(/[^a-z0-9_-]+/g,"-").replace(/^-+|-+$/g,"").slice(0,48)||"harness"}c(H,"safeSegment");function Ae(e,t){let a=[];return{async copy(o,s){await $e(o,s);let r=te.relative(e,o),w=te.relative(t,s);r&&!r.startsWith("..")&&!te.isAbsolute(r)&&a.push({releasedPath:w.split(te.sep).join("/"),profileRelativePath:r.split(te.sep).join("/")})},add(o,s){a.push({releasedPath:o,profileRelativePath:s})},policy(o){return a.filter(s=>o.some(r=>r.path===s.releasedPath&&r.visibility==="policy"))}}}c(Ae,"createProfileSourceBindings");var Le=c(e=>e==="evals/catalog.json"||/^evals\/(definitions|suites|tasksets)\//.test(e)||/^workflows\/[^/]+\/evals\//.test(e),"isProfilePrivateEvaluationPath");import{execFile as _e}from"node:child_process";import{promises as L}from"node:fs";import G from"node:path";import{promisify as Ne}from"node:util";var ze=Ne(_e);async function nt(e){let t=G.join(e.runPath,"package.json"),a=await L.lstat(t).catch(()=>null);if(a&&(!a.isFile()||a.isSymbolicLink()))throw new Error("Released Profile Agent package manifest must be a regular file.");a||await L.writeFile(t,`{"type":"module"}
3
- `,{flag:"wx"});let o=await me(e.runPath);if(o){let r=o==="npm"?["ci","--omit=dev","--ignore-scripts","--no-audit","--no-fund"]:["install","--prod","--frozen-lockfile","--ignore-scripts","--config.node-linker=hoisted"];await(e.install??Je)(o,r,e.runPath)}let s=G.join(e.runPath,"node_modules","openpond-agent-sdk");if(!await L.lstat(s).catch(()=>null)){let r=JSON.parse(await L.readFile(t,"utf8"));if({...le(r.dependencies),...le(r.optionalDependencies)}["openpond-agent-sdk"])throw new Error("Released Profile Agent declared an SDK dependency that the locked installation did not provide.");let P=await Ie();await L.mkdir(G.dirname(s),{recursive:!0}),await L.symlink(P,s,"dir")}}c(nt,"prepareReleasedProfileActionDependencies");async function me(e){let t=G.join(e,"package.json"),a=await L.lstat(t).catch(()=>null);if(!a)return null;if(!a.isFile()||a.isSymbolicLink())throw new Error("Released Profile Agent package manifest must be a regular file.");let o=JSON.parse(await L.readFile(t,"utf8")),s={...le(o.dependencies),...le(o.optionalDependencies)};if(Object.keys(s).length){for(let[P,u]of Object.entries(s))if(/^(?:file:|link:|workspace:|git\+|https?:)/i.test(u))throw new Error(`Released Profile Agent dependency ${P} must use a portable registry version.`);let r=await We(G.join(e,"package-lock.json")),w=await We(G.join(e,"pnpm-lock.yaml"));if(r===w)throw new Error("Released Profile Agent with third-party dependencies requires exactly one npm or pnpm lockfile.");return r?"npm":"pnpm"}return null}c(me,"inspectReleasedProfileActionDependencies");function le(e){if(e===void 0)return{};if(!e||typeof e!="object"||Array.isArray(e))throw new Error("Released Profile Agent dependencies must be a package map.");let t=Object.entries(e);if(t.some(([a,o])=>!a||typeof o!="string"||!o.trim()))throw new Error("Released Profile Agent dependencies must name portable versions.");return Object.fromEntries(t)}c(le,"dependencyMap");async function We(e){let t=await L.lstat(e).catch(()=>null);if(t&&(!t.isFile()||t.isSymbolicLink()))throw new Error("Released Profile Agent lockfile must be a regular file.");return!!t}c(We,"regularFile");async function Je(e,t,a){try{let o=process.platform==="win32"?`${e}.cmd`:e;await ze(o,t,{cwd:a,timeout:3e5,maxBuffer:1e6,...process.platform==="win32"?{shell:!0}:{}})}catch{throw new Error(`Released Profile Agent locked ${e} dependency installation failed.`)}}c(Je,"installLockedDependencies");var Te="harness.json";async function we(e,t,a,o,s){let r=n.resolve(a.sourcePath),w=[],P=Ae(r,e),u=P.copy,N=new Set((await _(r)).filter(Le)),E=new Set,y=c(i=>{let h=i.id;E.has(h)&&(h=`${h}-${j(i.path).slice(0,8)}`),E.add(h);let b={...i,id:h};return w.push(b),b},"addDeclaration");await f.mkdir(e,{recursive:!0});let ae=n.join(r,"instructions","system.md"),V=await f.lstat(ae).catch(i=>{if(i.code==="ENOENT")return null;throw i});if(V){if(!V.isFile()||V.isSymbolicLink())throw new Error("Profile instructions require an actual regular source file.");await u(ae,n.join(e,"instructions","system.md")),y({id:"instruction-system",kind:"instruction",path:"instructions/system.md",parentId:null,mediaType:"text/markdown",visibility:"policy",portability:"portable"})}for(let i of a.skills.filter(h=>h.enabled)){if(i.validationStatus!=="valid")throw new Error(`Cannot import invalid Profile Skill ${i.name}: ${i.validationMessages.join(" ")}`);let h=n.dirname(n.join(r,i.path)),b=`skills/${H(i.name)}/SKILL.md`;await u(n.join(h,"SKILL.md"),n.join(e,...b.split("/")));let T=y({id:`skill-${H(i.name)}`,kind:"skill",path:b,parentId:null,mediaType:"text/markdown",visibility:"policy",portability:"portable"});for(let p of i.resourceFiles){let O=`skills/${H(i.name)}/${p.split(n.sep).join("/")}`;await u(n.join(h,p),n.join(e,...O.split("/"))),y({id:`skill-resource-${H(i.name)}-${j(p).slice(0,12)}`,kind:"skill_resource",path:O,parentId:T.id,mediaType:Z(O),visibility:"policy",portability:"portable"})}}for(let i of a.agents.filter(h=>h.enabled)){let h=n.resolve(r,i.path),b=await f.realpath(h),T=await f.realpath(r),p=n.relative(T,b);if(p.startsWith("..")||n.isAbsolute(p))throw new Error("Profile Agent source escapes its admitted Profile root.");let O=await f.lstat(h),U=(await Fe(h)).filter(A=>{let C=O.isDirectory()?n.join(b,...A.split("/")):b;return!N.has(n.relative(T,C).split(n.sep).join("/"))});if(U.length===0)throw new Error(`Profile Agent ${i.id} has no source files.`);let Y=xe(U);for(let A of U){let C=`agents/${H(i.id)}/${A}`,Q=(await f.stat(h)).isDirectory()?n.join(h,...A.split("/")):h;await u(Q,n.join(e,...C.split("/"))),y({id:A===Y?`agent-${H(i.id)}`:`agent-asset-${H(i.id)}-${j(A).slice(0,12)}`,kind:A===Y?"agent":"asset",path:C,parentId:null,mediaType:Z(C),visibility:"policy",portability:"portable"})}await me(n.join(e,"agents",H(i.id)))}let X=new Set,se=new Set(a.agents.filter(i=>i.enabled).map(i=>i.id)),W=a.actionCatalog.filter(i=>i.agentId&&se.has(i.agentId)).map(i=>({id:i.id,agentId:H(i.agentId),sourceActionId:i.sourceActionId??i.id,inputSchema:typeof i.inputSchema=="object"&&i.inputSchema!==null?i.inputSchema:{type:"object",additionalProperties:!0}})),re=new Set(W.map(i=>i.id)),z=n.join(r,"workflows","catalog.json"),F=await f.lstat(z).catch(()=>null),l=(await _(r)).filter(i=>i.startsWith("workflows/")),S=l.some(i=>/^workflows\/[^/]+\/(PROMPT\.md|ACTION\.json)$/.test(i));if(S&&F)throw new Error("Authored Workflow packages and legacy workflows/catalog.json cannot coexist; migrate the catalog first.");if(F||S||W.length){if(F&&(!F.isFile()||F.isSymbolicLink()))throw new Error("Profile workflow catalog must be a regular file.");let i=S?He({files:new Map(await Promise.all(l.map(async p=>[p,await f.readFile(await ee(r,p),"utf8")]))),skillPaths:new Set(w.filter(p=>p.kind==="skill").map(p=>p.path)),actionIds:re}):null,h=i?Buffer.from(v(i.catalog)):F?await f.readFile(z):Buffer.from(v({schemaVersion:"openpond.profileWorkflows.v1",workflows:[]}));F&&P.add("workflows/catalog.json","workflows/catalog.json");let b=ie({catalog:JSON.parse(h.toString("utf8")),sourcePaths:new Set(w.filter(p=>p.kind==="skill").map(p=>p.path)),actionIds:new Set(W.map(p=>p.id))});for(let p of b.workflows)X.add(p.id);ue(b);let T="workflows/catalog.json";await f.mkdir(n.join(e,"workflows"),{recursive:!0}),await f.writeFile(n.join(e,"workflows","catalog.json"),h,{flag:"wx"});for(let p of i?.referencedPaths??[])await u(n.join(r,...p.split("/")),n.join(e,...p.split("/"))),y({id:`profile-workflow-source-${j(p).slice(0,16)}`,kind:"asset",path:p,parentId:null,mediaType:Z(p),visibility:"policy",portability:"portable"});y({id:"profile-workflows",kind:"workflow",path:T,parentId:null,mediaType:"application/json",visibility:"policy",portability:"portable"})}(F||S||W.length)&&(await f.writeFile(n.join(e,"workflows","actions.json"),v({schemaVersion:"openpond.profileWorkflowActions.v1",actions:W}),{flag:"wx"}),y({id:"profile-workflow-actions",kind:"asset",path:"workflows/actions.json",parentId:null,mediaType:"application/json",visibility:"policy",portability:"portable"}));let I=n.join(r,"evals","catalog.json"),J=await f.lstat(I).catch(()=>null),$=(await _(r)).filter(i=>/^workflows\/[^/]+\/evals\/[^/]+\.json$/.test(i)||/^evals\/(definitions|suites)\/[^/]+\.json$/.test(i));if(J&&$.length)throw new Error("Authored evaluation definitions and legacy evals/catalog.json cannot coexist; migrate the catalog first.");if(J||$.length){let[{ProfileEvaluationDefinitionSchema:i,ProfileEvaluationSuiteSchema:h,validateProfileEvaluationCatalog:b},{validateTasksetPackage:T}]=await Promise.all([import("./dist-IIFTZWNR.js"),import("./taskset-packages-I7I5KBFP.js")]);if(J&&(!J.isFile()||J.isSymbolicLink()))throw new Error("Profile evaluation catalog must be a regular file.");let p=[],O=[];for(let g of $){let x=JSON.parse(await f.readFile(await ee(r,g),"utf8"));if(g.startsWith("evals/suites/"))O.push(h.parse(x));else{let M=i.parse(x),K=/^workflows\/([^/]+)\/evals\//.exec(g)?.[1];if(K&&(M.target.kind!=="workflow"||M.target.workflowId!==K))throw new Error(`Profile evaluation ${M.id} must target its containing Workflow ${K}.`);p.push(M)}}let U=$.length?Buffer.from(v({schemaVersion:"openpond.profileEvaluations.v1",definitions:p.sort((g,x)=>g.id.localeCompare(x.id)),suites:O.sort((g,x)=>g.id.localeCompare(x.id))})):await f.readFile(I),{catalog:Y}=b({catalog:JSON.parse(U.toString("utf8")),workflowIds:X,skillPaths:new Set(w.filter(g=>g.kind==="skill").map(g=>g.path)),actionIds:re});await f.mkdir(n.join(e,"evals"),{recursive:!0}),await f.writeFile(n.join(e,"evals","catalog.json"),U,{flag:"wx"});for(let g of $)await u(n.join(r,...g.split("/")),n.join(e,...g.split("/"))),y({id:`profile-evaluation-source-${j(g).slice(0,16)}`,kind:"asset",path:g,parentId:null,mediaType:"application/json",visibility:"verifier",portability:"portable"});y({id:"profile-evaluations",kind:"asset",path:"evals/catalog.json",parentId:null,mediaType:"application/json",visibility:"verifier",portability:"portable"});let A=new Set(Y.definitions.map(g=>g.tasksetRelease.contentHash)),C=n.join(r,"evals","tasksets"),Q=await f.lstat(C).catch(()=>null);if(Q&&(!Q.isDirectory()||Q.isSymbolicLink()))throw new Error("Profile evaluation Taskset directory must be a regular directory.");for(let g of A){let x=n.join(C,`${g}.json`),M=await f.lstat(x).catch(()=>null);if(!M)throw new Error(`Profile evaluation Taskset package ${g} is missing.`);if(!M.isFile()||M.isSymbolicLink())throw new Error("Profile evaluation Taskset package must be a regular file.");let K=T(JSON.parse(await f.readFile(x,"utf8")));if(K.taskset.contentHash!==g||!Y.definitions.some(ye=>ye.tasksetRelease.contentHash===g&&ye.tasksetRelease.id===K.taskset.id))throw new Error("Profile evaluation Taskset package differs from its catalog reference.");let ke=`evals/tasksets/${g}.json`;await u(x,n.join(e,...ke.split("/"))),y({id:`profile-evaluation-taskset-${g.slice(0,16)}`,kind:"asset",path:ke,parentId:null,mediaType:"application/json",visibility:"verifier",portability:"portable"})}}let q=await Be(a,o),k=`dependency-lock/${q.name}`;await f.mkdir(n.join(e,"dependency-lock"),{recursive:!0}),q.sourcePath?await u(q.sourcePath,n.join(e,...k.split("/"))):await f.writeFile(n.join(e,...k.split("/")),v(q.generated),{flag:"wx"}),y({id:"dependency-lock",kind:"dependency_lock",path:k,parentId:null,mediaType:Z(k),visibility:"policy",portability:"portable"}),await f.writeFile(n.join(e,"program.json"),v({runtimeProtocol:"openpond.agent-runtime.v1"}),{flag:"wx"}),y({id:"agent-runtime-program",kind:"program",path:"program.json",parentId:null,mediaType:"application/json",visibility:"policy",portability:"portable"});let de=B.parse({schemaVersion:"openpond.harnessSourceManifest.v1",name:t,files:w,toolDeclarations:[],capabilityRequirements:[],lifecycle:{create:!0,reset:!0,step:!0,collect:!0,destroy:!0,resetScope:"attempt"},graderInterface:{visibleEvidence:["output","runtime_events","artifacts"],privilegedEvidence:["expected_output","private_verifier"],privateVerifierIsolation:!0},runtimeProtocol:"openpond.agent-runtime.v1",metadata:{importedFrom:"openpond.profile",profileId:a.activeProfile,...s?{profileRepositoryId:s}:{},profileGitHead:o??a.git?.head??null,profileSourceBindings:P.policy(w),profileInstructionSourcePath:"instructions/system.md",excludedEvalCount:a.evals.length,actionConversionPending:a.actionCatalog.length>0}});await f.writeFile(n.join(e,Te),v(de),{flag:"wx"}),await ce(e,t)}c(we,"writeImportedProfileSource");function ue(e){for(let t of e.workflows){let a=ne(t.inputSchema);if(!a.valid)throw new Error(`Profile workflow ${t.id} has an invalid input schema: ${a.issues[0]?.message??"schema mismatch"}`)}}c(ue,"assertProfileWorkflowInputSchemas");async function ce(e,t){let a=n.join(e,Te),o=B.parse(JSON.parse(await f.readFile(a,"utf8")));if(o.files.some(u=>u.kind==="instruction"))return;let s="instructions/system.md";await f.mkdir(n.join(e,"instructions"),{recursive:!0}),await f.writeFile(n.join(e,...s.split("/")),`# ${t}
2
+ import{a as Ee}from"./chunk-IZ56L2ZK.js";import{F as Ie}from"./chunk-B4RKHHF7.js";import{a as B}from"./chunk-WBUK73ST.js";import{a as je}from"./chunk-OZ6LRNRE.js";import{e as He}from"./chunk-MWXW2CA6.js";import{b as Re,c as ie,y as ne}from"./chunk-PBZCXPPC.js";import{e as ve,i as Se,l as Pe,m as be}from"./chunk-NJLULBTM.js";import{l as v,m as fe,n as j}from"./chunk-VVNV4NNW.js";import{a as c}from"./chunk-FTQLQJQV.js";import{promises as f}from"node:fs";import n from"node:path";import te from"node:path";import{constants as De,promises as D}from"node:fs";import R from"node:path";async function Fe(e){let t=await D.lstat(e);if(t.isSymbolicLink())throw new Error(`Profile source cannot be a symlink: ${e}`);if(t.isFile())return[R.basename(e)];if(!t.isDirectory())throw new Error(`Profile source is not a file or directory: ${e}`);return _(e)}c(Fe,"sourceFilesForImport");function xe(e){for(let t of["agent.ts","index.ts","agent/agent.ts","agent.yaml","agent.yml","agent.json"])if(e.includes(t))return t;return e[0]}c(xe,"selectAgentPrimaryFile");async function $e(e,t){let a=await D.lstat(e);if(!a.isFile()||a.isSymbolicLink())throw new Error(`Harness import source must be a regular non-symlink file: ${e}`);await D.mkdir(R.dirname(t),{recursive:!0}),await D.copyFile(e,t,De.COPYFILE_EXCL)}c($e,"copyRegularFile");function Z(e){let t=R.extname(e).toLowerCase();return[".md",".txt"].includes(t)?t===".md"?"text/markdown":"text/plain":[".json"].includes(t)?"application/json":[".yaml",".yml"].includes(t)?"application/yaml":[".ts",".tsx",".js",".mjs",".cjs"].includes(t)?"text/javascript":t===".py"?"text/x-python":"application/octet-stream"}c(Z,"mediaTypeForPath");async function ee(e,t){let a=R.resolve(e,...t.split("/")),o=R.relative(e,a);if(!o||o.startsWith("..")||R.isAbsolute(o))throw new Error(`Harness source path escapes its root: ${t}`);let s=await D.lstat(a);if(!s.isFile()||s.isSymbolicLink())throw new Error(`Harness source path must be a regular non-symlink file: ${t}`);let r=await D.realpath(a),w=R.relative(await D.realpath(e),r);if(w.startsWith("..")||R.isAbsolute(w))throw new Error(`Harness source path resolves outside its root: ${t}`);return a}c(ee,"resolveContainedRegularFile");async function _(e,t=e){let a=await D.readdir(t,{withFileTypes:!0}),o=[];for(let s of a){if(["node_modules",".git",".openpond"].includes(s.name)||s.name.startsWith(".env"))continue;let r=R.join(t,s.name);if(s.isSymbolicLink())throw new Error(`Harness source cannot contain symlinks: ${R.relative(e,r)}`);if(s.isDirectory())o.push(...await _(e,r));else if(s.isFile())o.push(R.relative(e,r).split(R.sep).join("/"));else throw new Error(`Harness source contains an unsupported entry: ${R.relative(e,r)}`)}return o.sort()}c(_,"listRegularFiles");function H(e){return e.toLowerCase().replace(/[^a-z0-9_-]+/g,"-").replace(/^-+|-+$/g,"").slice(0,48)||"harness"}c(H,"safeSegment");function Ae(e,t){let a=[];return{async copy(o,s){await $e(o,s);let r=te.relative(e,o),w=te.relative(t,s);r&&!r.startsWith("..")&&!te.isAbsolute(r)&&a.push({releasedPath:w.split(te.sep).join("/"),profileRelativePath:r.split(te.sep).join("/")})},add(o,s){a.push({releasedPath:o,profileRelativePath:s})},policy(o){return a.filter(s=>o.some(r=>r.path===s.releasedPath&&r.visibility==="policy"))}}}c(Ae,"createProfileSourceBindings");var Le=c(e=>e==="evals/catalog.json"||/^evals\/(definitions|suites|tasksets)\//.test(e)||/^workflows\/[^/]+\/evals\//.test(e),"isProfilePrivateEvaluationPath");import{execFile as _e}from"node:child_process";import{promises as L}from"node:fs";import G from"node:path";import{promisify as Ne}from"node:util";var ze=Ne(_e);async function nt(e){let t=G.join(e.runPath,"package.json"),a=await L.lstat(t).catch(()=>null);if(a&&(!a.isFile()||a.isSymbolicLink()))throw new Error("Released Profile Agent package manifest must be a regular file.");a||await L.writeFile(t,`{"type":"module"}
3
+ `,{flag:"wx"});let o=await me(e.runPath);if(o){let r=o==="npm"?["ci","--omit=dev","--ignore-scripts","--no-audit","--no-fund"]:["install","--prod","--frozen-lockfile","--ignore-scripts","--config.node-linker=hoisted"];await(e.install??Je)(o,r,e.runPath)}let s=G.join(e.runPath,"node_modules","openpond-agent-sdk");if(!await L.lstat(s).catch(()=>null)){let r=JSON.parse(await L.readFile(t,"utf8"));if({...le(r.dependencies),...le(r.optionalDependencies)}["openpond-agent-sdk"])throw new Error("Released Profile Agent declared an SDK dependency that the locked installation did not provide.");let P=await Ie();await L.mkdir(G.dirname(s),{recursive:!0}),await L.symlink(P,s,"dir")}}c(nt,"prepareReleasedProfileActionDependencies");async function me(e){let t=G.join(e,"package.json"),a=await L.lstat(t).catch(()=>null);if(!a)return null;if(!a.isFile()||a.isSymbolicLink())throw new Error("Released Profile Agent package manifest must be a regular file.");let o=JSON.parse(await L.readFile(t,"utf8")),s={...le(o.dependencies),...le(o.optionalDependencies)};if(Object.keys(s).length){for(let[P,u]of Object.entries(s))if(/^(?:file:|link:|workspace:|git\+|https?:)/i.test(u))throw new Error(`Released Profile Agent dependency ${P} must use a portable registry version.`);let r=await We(G.join(e,"package-lock.json")),w=await We(G.join(e,"pnpm-lock.yaml"));if(r===w)throw new Error("Released Profile Agent with third-party dependencies requires exactly one npm or pnpm lockfile.");return r?"npm":"pnpm"}return null}c(me,"inspectReleasedProfileActionDependencies");function le(e){if(e===void 0)return{};if(!e||typeof e!="object"||Array.isArray(e))throw new Error("Released Profile Agent dependencies must be a package map.");let t=Object.entries(e);if(t.some(([a,o])=>!a||typeof o!="string"||!o.trim()))throw new Error("Released Profile Agent dependencies must name portable versions.");return Object.fromEntries(t)}c(le,"dependencyMap");async function We(e){let t=await L.lstat(e).catch(()=>null);if(t&&(!t.isFile()||t.isSymbolicLink()))throw new Error("Released Profile Agent lockfile must be a regular file.");return!!t}c(We,"regularFile");async function Je(e,t,a){try{let o=process.platform==="win32"?`${e}.cmd`:e;await ze(o,t,{cwd:a,timeout:3e5,maxBuffer:1e6,...process.platform==="win32"?{shell:!0}:{}})}catch{throw new Error(`Released Profile Agent locked ${e} dependency installation failed.`)}}c(Je,"installLockedDependencies");var Te="harness.json";async function we(e,t,a,o,s){let r=n.resolve(a.sourcePath),w=[],P=Ae(r,e),u=P.copy,N=new Set((await _(r)).filter(Le)),E=new Set,y=c(i=>{let h=i.id;E.has(h)&&(h=`${h}-${j(i.path).slice(0,8)}`),E.add(h);let b={...i,id:h};return w.push(b),b},"addDeclaration");await f.mkdir(e,{recursive:!0});let ae=n.join(r,"instructions","system.md"),V=await f.lstat(ae).catch(i=>{if(i.code==="ENOENT")return null;throw i});if(V){if(!V.isFile()||V.isSymbolicLink())throw new Error("Profile instructions require an actual regular source file.");await u(ae,n.join(e,"instructions","system.md")),y({id:"instruction-system",kind:"instruction",path:"instructions/system.md",parentId:null,mediaType:"text/markdown",visibility:"policy",portability:"portable"})}for(let i of a.skills.filter(h=>h.enabled)){if(i.validationStatus!=="valid")throw new Error(`Cannot import invalid Profile Skill ${i.name}: ${i.validationMessages.join(" ")}`);let h=n.dirname(n.join(r,i.path)),b=`skills/${H(i.name)}/SKILL.md`;await u(n.join(h,"SKILL.md"),n.join(e,...b.split("/")));let T=y({id:`skill-${H(i.name)}`,kind:"skill",path:b,parentId:null,mediaType:"text/markdown",visibility:"policy",portability:"portable"});for(let p of i.resourceFiles){let O=`skills/${H(i.name)}/${p.split(n.sep).join("/")}`;await u(n.join(h,p),n.join(e,...O.split("/"))),y({id:`skill-resource-${H(i.name)}-${j(p).slice(0,12)}`,kind:"skill_resource",path:O,parentId:T.id,mediaType:Z(O),visibility:"policy",portability:"portable"})}}for(let i of a.agents.filter(h=>h.enabled)){let h=n.resolve(r,i.path),b=await f.realpath(h),T=await f.realpath(r),p=n.relative(T,b);if(p.startsWith("..")||n.isAbsolute(p))throw new Error("Profile Agent source escapes its admitted Profile root.");let O=await f.lstat(h),U=(await Fe(h)).filter(A=>{let C=O.isDirectory()?n.join(b,...A.split("/")):b;return!N.has(n.relative(T,C).split(n.sep).join("/"))});if(U.length===0)throw new Error(`Profile Agent ${i.id} has no source files.`);let Y=xe(U);for(let A of U){let C=`agents/${H(i.id)}/${A}`,Q=(await f.stat(h)).isDirectory()?n.join(h,...A.split("/")):h;await u(Q,n.join(e,...C.split("/"))),y({id:A===Y?`agent-${H(i.id)}`:`agent-asset-${H(i.id)}-${j(A).slice(0,12)}`,kind:A===Y?"agent":"asset",path:C,parentId:null,mediaType:Z(C),visibility:"policy",portability:"portable"})}await me(n.join(e,"agents",H(i.id)))}let X=new Set,se=new Set(a.agents.filter(i=>i.enabled).map(i=>i.id)),W=a.actionCatalog.filter(i=>i.agentId&&se.has(i.agentId)).map(i=>({id:i.id,agentId:H(i.agentId),sourceActionId:i.sourceActionId??i.id,inputSchema:typeof i.inputSchema=="object"&&i.inputSchema!==null?i.inputSchema:{type:"object",additionalProperties:!0}})),re=new Set(W.map(i=>i.id)),z=n.join(r,"workflows","catalog.json"),F=await f.lstat(z).catch(()=>null),l=(await _(r)).filter(i=>i.startsWith("workflows/")),S=l.some(i=>/^workflows\/[^/]+\/(PROMPT\.md|ACTION\.json)$/.test(i));if(S&&F)throw new Error("Authored Workflow packages and legacy workflows/catalog.json cannot coexist; migrate the catalog first.");if(F||S||W.length){if(F&&(!F.isFile()||F.isSymbolicLink()))throw new Error("Profile workflow catalog must be a regular file.");let i=S?He({files:new Map(await Promise.all(l.map(async p=>[p,await f.readFile(await ee(r,p),"utf8")]))),skillPaths:new Set(w.filter(p=>p.kind==="skill").map(p=>p.path)),actionIds:re}):null,h=i?Buffer.from(v(i.catalog)):F?await f.readFile(z):Buffer.from(v({schemaVersion:"openpond.profileWorkflows.v1",workflows:[]}));F&&P.add("workflows/catalog.json","workflows/catalog.json");let b=ie({catalog:JSON.parse(h.toString("utf8")),sourcePaths:new Set(w.filter(p=>p.kind==="skill").map(p=>p.path)),actionIds:new Set(W.map(p=>p.id))});for(let p of b.workflows)X.add(p.id);ue(b);let T="workflows/catalog.json";await f.mkdir(n.join(e,"workflows"),{recursive:!0}),await f.writeFile(n.join(e,"workflows","catalog.json"),h,{flag:"wx"});for(let p of i?.referencedPaths??[])await u(n.join(r,...p.split("/")),n.join(e,...p.split("/"))),y({id:`profile-workflow-source-${j(p).slice(0,16)}`,kind:"asset",path:p,parentId:null,mediaType:Z(p),visibility:"policy",portability:"portable"});y({id:"profile-workflows",kind:"workflow",path:T,parentId:null,mediaType:"application/json",visibility:"policy",portability:"portable"})}(F||S||W.length)&&(await f.writeFile(n.join(e,"workflows","actions.json"),v({schemaVersion:"openpond.profileWorkflowActions.v1",actions:W}),{flag:"wx"}),y({id:"profile-workflow-actions",kind:"asset",path:"workflows/actions.json",parentId:null,mediaType:"application/json",visibility:"policy",portability:"portable"}));let I=n.join(r,"evals","catalog.json"),J=await f.lstat(I).catch(()=>null),$=(await _(r)).filter(i=>/^workflows\/[^/]+\/evals\/[^/]+\.json$/.test(i)||/^evals\/(definitions|suites)\/[^/]+\.json$/.test(i));if(J&&$.length)throw new Error("Authored evaluation definitions and legacy evals/catalog.json cannot coexist; migrate the catalog first.");if(J||$.length){let[{ProfileEvaluationDefinitionSchema:i,ProfileEvaluationSuiteSchema:h,validateProfileEvaluationCatalog:b},{validateTasksetPackage:T}]=await Promise.all([import("./dist-5267UT3V.js"),import("./taskset-packages-CBLJFWDQ.js")]);if(J&&(!J.isFile()||J.isSymbolicLink()))throw new Error("Profile evaluation catalog must be a regular file.");let p=[],O=[];for(let g of $){let x=JSON.parse(await f.readFile(await ee(r,g),"utf8"));if(g.startsWith("evals/suites/"))O.push(h.parse(x));else{let M=i.parse(x),K=/^workflows\/([^/]+)\/evals\//.exec(g)?.[1];if(K&&(M.target.kind!=="workflow"||M.target.workflowId!==K))throw new Error(`Profile evaluation ${M.id} must target its containing Workflow ${K}.`);p.push(M)}}let U=$.length?Buffer.from(v({schemaVersion:"openpond.profileEvaluations.v1",definitions:p.sort((g,x)=>g.id.localeCompare(x.id)),suites:O.sort((g,x)=>g.id.localeCompare(x.id))})):await f.readFile(I),{catalog:Y}=b({catalog:JSON.parse(U.toString("utf8")),workflowIds:X,skillPaths:new Set(w.filter(g=>g.kind==="skill").map(g=>g.path)),actionIds:re});await f.mkdir(n.join(e,"evals"),{recursive:!0}),await f.writeFile(n.join(e,"evals","catalog.json"),U,{flag:"wx"});for(let g of $)await u(n.join(r,...g.split("/")),n.join(e,...g.split("/"))),y({id:`profile-evaluation-source-${j(g).slice(0,16)}`,kind:"asset",path:g,parentId:null,mediaType:"application/json",visibility:"verifier",portability:"portable"});y({id:"profile-evaluations",kind:"asset",path:"evals/catalog.json",parentId:null,mediaType:"application/json",visibility:"verifier",portability:"portable"});let A=new Set(Y.definitions.map(g=>g.tasksetRelease.contentHash)),C=n.join(r,"evals","tasksets"),Q=await f.lstat(C).catch(()=>null);if(Q&&(!Q.isDirectory()||Q.isSymbolicLink()))throw new Error("Profile evaluation Taskset directory must be a regular directory.");for(let g of A){let x=n.join(C,`${g}.json`),M=await f.lstat(x).catch(()=>null);if(!M)throw new Error(`Profile evaluation Taskset package ${g} is missing.`);if(!M.isFile()||M.isSymbolicLink())throw new Error("Profile evaluation Taskset package must be a regular file.");let K=T(JSON.parse(await f.readFile(x,"utf8")));if(K.taskset.contentHash!==g||!Y.definitions.some(ye=>ye.tasksetRelease.contentHash===g&&ye.tasksetRelease.id===K.taskset.id))throw new Error("Profile evaluation Taskset package differs from its catalog reference.");let ke=`evals/tasksets/${g}.json`;await u(x,n.join(e,...ke.split("/"))),y({id:`profile-evaluation-taskset-${g.slice(0,16)}`,kind:"asset",path:ke,parentId:null,mediaType:"application/json",visibility:"verifier",portability:"portable"})}}let q=await Be(a,o),k=`dependency-lock/${q.name}`;await f.mkdir(n.join(e,"dependency-lock"),{recursive:!0}),q.sourcePath?await u(q.sourcePath,n.join(e,...k.split("/"))):await f.writeFile(n.join(e,...k.split("/")),v(q.generated),{flag:"wx"}),y({id:"dependency-lock",kind:"dependency_lock",path:k,parentId:null,mediaType:Z(k),visibility:"policy",portability:"portable"}),await f.writeFile(n.join(e,"program.json"),v({runtimeProtocol:"openpond.agent-runtime.v1"}),{flag:"wx"}),y({id:"agent-runtime-program",kind:"program",path:"program.json",parentId:null,mediaType:"application/json",visibility:"policy",portability:"portable"});let de=B.parse({schemaVersion:"openpond.harnessSourceManifest.v1",name:t,files:w,toolDeclarations:[],capabilityRequirements:[],lifecycle:{create:!0,reset:!0,step:!0,collect:!0,destroy:!0,resetScope:"attempt"},graderInterface:{visibleEvidence:["output","runtime_events","artifacts"],privilegedEvidence:["expected_output","private_verifier"],privateVerifierIsolation:!0},runtimeProtocol:"openpond.agent-runtime.v1",metadata:{importedFrom:"openpond.profile",profileId:a.activeProfile,...s?{profileRepositoryId:s}:{},profileGitHead:o??a.git?.head??null,profileSourceBindings:P.policy(w),profileInstructionSourcePath:"instructions/system.md",excludedEvalCount:a.evals.length,actionConversionPending:a.actionCatalog.length>0}});await f.writeFile(n.join(e,Te),v(de),{flag:"wx"}),await ce(e,t)}c(we,"writeImportedProfileSource");function ue(e){for(let t of e.workflows){let a=ne(t.inputSchema);if(!a.valid)throw new Error(`Profile workflow ${t.id} has an invalid input schema: ${a.issues[0]?.message??"schema mismatch"}`)}}c(ue,"assertProfileWorkflowInputSchemas");async function ce(e,t){let a=n.join(e,Te),o=B.parse(JSON.parse(await f.readFile(a,"utf8")));if(o.files.some(u=>u.kind==="instruction"))return;let s="instructions/system.md";await f.mkdir(n.join(e,"instructions"),{recursive:!0}),await f.writeFile(n.join(e,...s.split("/")),`# ${t}
4
4
 
5
5
  Keep reusable, provider-neutral execution guidance for this Harness here.
6
6
  `,{flag:"wx"});let w=new Set(o.files.map(u=>u.id)).has("instruction-system")?`instruction-system-${j(s).slice(0,8)}`:"instruction-system",P=B.parse({...o,name:t,files:[...o.files,{id:w,kind:"instruction",path:s,parentId:null,mediaType:"text/markdown",visibility:"policy",portability:"portable"}]});await f.writeFile(a,v(P),{flag:"w"})}c(ce,"ensureHarnessInstructionSurface");async function Be(e,t){let a=e.repoPath?n.resolve(e.repoPath):null;if(a)for(let o of["pnpm-lock.yaml","package-lock.json","yarn.lock"]){let s=n.join(a,o),r=await f.lstat(s).catch(()=>null);if(r?.isFile()&&!r.isSymbolicLink())return{name:o,sourcePath:s}}return{name:"profile-import.json",sourcePath:null,generated:{source:"openpond.profile",profileId:e.activeProfile,profileGitHead:t??e.git?.head??null,dependenciesResolved:!1}}}c(Be,"importedDependencyLock");import{randomUUID as ge}from"node:crypto";import{promises as d}from"node:fs";import m from"node:path";var oe="harness.json",Oe=25e7;function Ve(e,t){let a=`${H(t)}-${j(t).slice(0,16)}`,o=m.join(e,"library","harnesses","workspaces",a);return{root:o,source:m.join(o,"source")}}c(Ve,"localHarnessWorkspacePaths");async function xt(e){return pe({...e,initializeSource:c(t=>Ue(t,e.name),"initializeSource")})}c(xt,"createLocalHarnessWorkspace");async function $t(e){if(e.profile.mode!=="local"||!e.profile.sourcePath)throw new Error("Only a loaded local Profile with a source path can be imported.");return pe({...e,compilationWorkspaceId:e.repositoryId?Me(e.repositoryId,e.name):e.id,initializeSource:c(t=>we(t,e.name,e.profile,e.sourceRevision,e.repositoryId),"initializeSource")})}c($t,"importProfileIntoLocalHarnessWorkspace");function Me(e,t){return`profile-source-${j([e,t]).slice(0,24)}`}c(Me,"profileCompilationWorkspaceId");async function At(e){if(e.profile.mode!=="local"||!e.profile.sourcePath)throw new Error("Only a loaded Profile source can be compiled.");let t=m.join(e.storeDir,"library","harnesses","profile-previews");await d.mkdir(t,{recursive:!0});let a=m.join(t,ge());try{await we(a,e.name,e.profile,e.sourceRevision,e.repositoryId);let o=e.repositoryId?Me(e.repositoryId,e.name):e.workspaceId;return await he({workspaceId:o,sourceDir:a})}finally{await d.rm(a,{recursive:!0,force:!0})}}c(At,"compileProfileHarnessSource");async function Lt(e){let t=await he({workspaceId:e.id,sourceDir:e.sourceDir}),a=await e.store.getHarnessWorkspace(e.id);if(a){let o=a.currentChannel.release?await e.store.getHarnessReleaseRecord(a.currentChannel.release.contentHash):null;if(a.ownerScope.id!==e.ownerId||a.sourceRevision!==t.sourceRevision||o?.harnessRelease.contentHash!==t.harnessRelease.contentHash)throw new Error("Configured Harness source changed; use a new workspace ID for the new release.");return}await pe({...e,initializeSource:c(async o=>{await d.mkdir(o,{recursive:!0}),await d.writeFile(m.join(o,oe),v(t.manifest));for(let s of t.sourceFiles){let r=m.join(o,s.path);await d.mkdir(m.dirname(r),{recursive:!0}),await d.writeFile(r,s.bytes)}},"initializeSource")})}c(Lt,"importLocalHarnessWorkspaceSource");async function Wt(e){let t=await e.store.getHarnessReleaseRecord(e.sourceRelease.contentHash);if(!t||t.harnessRelease.id!==e.sourceRelease.id)throw new Error("Harness workspace fork source release is unavailable.");return pe({...e,initializeSource:c(async a=>{await d.cp(m.join(t.bundlePath,"source"),a,{recursive:!0,force:!1,errorOnExist:!0,verbatimSymlinks:!1}),await ce(a,e.name)},"initializeSource")})}c(Wt,"forkLocalHarnessWorkspaceFromRelease");async function pe(e){let t=e.now??(()=>new Date().toISOString()),a=Ve(e.storeDir,e.id),o=m.dirname(a.root);await d.mkdir(o,{recursive:!0});let s=m.join(o,`.${m.basename(a.root)}.creating-${ge()}`),r=m.join(s,"source");try{await e.initializeSource(r),await d.rename(s,a.root)}catch(w){throw await d.rm(s,{recursive:!0,force:!0}).catch(()=>{}),w}try{let w=await he({workspaceId:e.compilationWorkspaceId??e.id,sourceDir:a.source}),P=await qe({storeDir:e.storeDir,workspaceId:e.id,compiled:w,createdAt:t()}),u=t(),N=je.parse({schemaVersion:"openpond.harnessWorkspace.v1",id:e.id,ownerScope:e.originOwnerScope??{kind:"personal",id:e.ownerId},name:e.name,location:"local",sourceRevision:w.sourceRevision,revision:0,dirty:!1,currentChannel:{name:"personal",release:{id:w.harnessRelease.id,contentHash:w.harnessRelease.contentHash},revision:1},createdAt:u,updatedAt:u,metadata:{...e.originMetadata,sourceLayout:"openpond.harnessSourceManifest.v1",...e.selectionEligible===!1?{selectionEligible:!1}:{}}});return await e.store.createHarnessWorkspaceWithRelease({workspace:N,release:P})}catch(w){throw await d.rm(a.root,{recursive:!0,force:!0}).catch(()=>{}),w}}c(pe,"createLocalHarnessWorkspaceFromInitializer");async function he(e){let t=m.resolve(e.sourceDir),a=m.join(t,oe),o=B.parse(JSON.parse(await d.readFile(a,"utf8"))),s=new Set(o.files.map(l=>l.path)),r=(await _(t)).filter(l=>l!==oe),w=r.filter(l=>!s.has(l)),P=[...s].filter(l=>!r.includes(l));if(w.length||P.length)throw new Error(`Harness source manifest mismatch. Unlisted: ${w.join(", ")||"none"}; missing: ${P.join(", ")||"none"}.`);let u=[];for(let l of o.files){let S=await ee(t,l.path),I=await d.readFile(S);if(I.byteLength>Oe)throw new Error(`Harness source file ${l.path} exceeds ${Oe} bytes.`);u.push({path:l.path,bytes:I,asset:{id:l.id,path:l.path,contentHash:fe(I),sizeBytes:I.byteLength,mediaType:l.mediaType,visibility:l.visibility}})}let N=u.find(({path:l})=>l==="workflows/catalog.json");if(N){let l=o.files.find(k=>k.path===N.path);if(l?.kind!=="workflow"||l.visibility!=="policy")throw new Error("Profile workflow catalog requires a policy-visible workflow declaration.");let S=u.find(({path:k})=>k==="workflows/actions.json"),I=o.files.find(k=>k.path==="workflows/actions.json");if(!S||I?.visibility!=="policy")throw new Error("Profile workflow catalog requires a released action inventory.");let J=Re.parse(JSON.parse(new TextDecoder().decode(S.bytes))).actions,$=new Set;for(let k of J){if($.has(k.id))throw new Error(`Duplicate Profile workflow action ${k.id}.`);if($.add(k.id),!ne(k.inputSchema).valid)throw new Error(`Profile workflow action ${k.id} has an invalid input schema.`);if(!o.files.some(de=>de.path.startsWith(`agents/${k.agentId}/`)))throw new Error(`Profile workflow action ${k.id} lacks its Agent source.`)}let q=ie({catalog:JSON.parse(new TextDecoder().decode(N.bytes)),sourcePaths:new Set(o.files.filter(k=>k.kind==="skill").map(k=>k.path)),actionIds:$});ue(q)}let E=j({manifest:o,files:u.map(({path:l,asset:S})=>({path:l,contentHash:S.contentHash,sizeBytes:S.sizeBytes}))}),y=c(l=>u.filter(({path:S})=>o.files.find(I=>I.path===S)?.kind===l).map(({asset:S})=>S),"byKind"),ae=y("dependency_lock")[0],V=y("program")[0],X=o.files.filter(l=>l.portability==="local_only").map(l=>l.id),se=o.files.filter(l=>l.visibility==="host_private").map(l=>l.id),W=[...X.map(l=>`Asset ${l} is local-only.`),...se.map(l=>`Asset ${l} is host-private.`)],re={id:`harness-source-${E.slice(0,24)}`,contentHash:E},z=Pe({schemaVersion:"openpond.agentSnapshot.v2",id:`agent-snapshot-${j([E,o.toolDeclarations]).slice(0,24)}`,sourceRelease:re,instructions:y("instruction"),skills:y("skill"),agents:y("agent"),toolDeclarations:o.toolDeclarations,capabilityRequirements:o.capabilityRequirements,dependencyLock:ae,portability:{portable:W.length===0,blockers:W,localOnlyAssetRefs:X,hostPrivateAssetRefs:se},metadata:{workspaceId:e.workspaceId,sourceRevision:E,sourceLayout:o.schemaVersion}}),F=be({schemaVersion:"openpond.harnessRelease.v2",id:`harness-${j([z.contentHash,V.contentHash,o.lifecycle]).slice(0,24)}`,agentSnapshot:{id:z.id,contentHash:z.contentHash},program:V,tools:o.toolDeclarations,lifecycle:o.lifecycle,graderInterface:o.graderInterface,files:u.map(({asset:l})=>l),metadata:{runtimeProtocol:o.runtimeProtocol,sourceRevision:E,sourceLayout:o.schemaVersion,...o.metadata.importedFrom==="openpond.profile"?{profile:{id:o.metadata.profileId,sourceRevision:o.metadata.profileGitHead??E,...o.metadata.profileRepositoryId?{repositoryId:o.metadata.profileRepositoryId}:{}}}:{}}});return{manifest:o,sourceRevision:E,agentSnapshot:z,harnessRelease:F,sourceFiles:u}}c(he,"compileLocalHarnessSource");async function qe(e){let t=m.join(e.storeDir,"library","harnesses","releases"),a=m.join(t,e.compiled.harnessRelease.contentHash);await d.mkdir(t,{recursive:!0});let o=m.join(t,`.${e.compiled.harnessRelease.contentHash}.materializing-${ge()}`);try{await d.mkdir(m.join(o,"source"),{recursive:!0});for(let s of e.compiled.sourceFiles){let r=m.join(o,"source",...s.path.split("/"));await d.mkdir(m.dirname(r),{recursive:!0}),await d.writeFile(r,s.bytes,{flag:"wx"})}await d.writeFile(m.join(o,"source",oe),v(e.compiled.manifest),{flag:"wx"}),await d.writeFile(m.join(o,"agent-snapshot.json"),v(e.compiled.agentSnapshot),{flag:"wx"}),await d.writeFile(m.join(o,"harness-release.json"),v(e.compiled.harnessRelease),{flag:"wx"});try{await d.rename(o,a)}catch(s){if(s.code!=="EEXIST"&&s.code!=="ENOTEMPTY")throw s;await Ce(a,e.compiled),await d.rm(o,{recursive:!0,force:!0})}await Ce(a,e.compiled)}catch(s){throw await d.rm(o,{recursive:!0,force:!0}).catch(()=>{}),s}return Ee.parse({schemaVersion:"openpond.localHarnessReleaseRecord.v1",workspaceId:e.workspaceId,sourceRevision:e.compiled.sourceRevision,agentSnapshot:e.compiled.agentSnapshot,harnessRelease:e.compiled.harnessRelease,bundlePath:a,createdAt:e.createdAt})}c(qe,"materializeLocalHarnessRelease");async function Ue(e,t){let a=B.parse({schemaVersion:"openpond.harnessSourceManifest.v1",name:t,files:[{id:"dependency-lock",kind:"dependency_lock",path:"dependency-lock.json",parentId:null,mediaType:"application/json",visibility:"policy",portability:"portable"},{id:"agent-runtime-program",kind:"program",path:"program.json",parentId:null,mediaType:"application/json",visibility:"policy",portability:"portable"}],toolDeclarations:[],capabilityRequirements:[],lifecycle:{create:!0,reset:!0,step:!0,collect:!0,destroy:!0,resetScope:"attempt"},graderInterface:{visibleEvidence:["output","runtime_events","artifacts"],privilegedEvidence:["expected_output","private_verifier"],privateVerifierIsolation:!0},runtimeProtocol:"openpond.agent-runtime.v1",metadata:{}});await d.mkdir(e,{recursive:!0}),await d.writeFile(m.join(e,"dependency-lock.json"),v({dependencies:{}}),{flag:"wx"}),await d.writeFile(m.join(e,"program.json"),v({runtimeProtocol:"openpond.agent-runtime.v1"}),{flag:"wx"}),await d.writeFile(m.join(e,oe),v(a),{flag:"wx"}),await ce(e,t)}c(Ue,"writeDefaultHarnessSource");async function Ce(e,t){let a=ve.parse(JSON.parse(await d.readFile(m.join(e,"agent-snapshot.json"),"utf8"))),o=Se.parse(JSON.parse(await d.readFile(m.join(e,"harness-release.json"),"utf8")));if(a.contentHash!==t.agentSnapshot.contentHash||o.contentHash!==t.harnessRelease.contentHash)throw new Error("Materialized Harness release does not match the compiled immutable objects.");for(let s of t.sourceFiles){let r=await d.readFile(m.join(e,"source",...s.path.split("/")));if(fe(r)!==s.asset.contentHash)throw new Error(`Materialized Harness asset ${s.path} failed hash verification.`)}}c(Ce,"verifyMaterializedRelease");export{Z as a,ee as b,_ as c,H as d,Le as e,nt as f,Ve as g,xt as h,$t as i,At as j,Lt as k,Wt as l,he as m,qe as n};
@@ -1,5 +1,5 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{a as Ne,d as qe,e as De}from"./chunk-BWY4D3BN.js";import{a as te}from"./chunk-T4LLJC5N.js";import{b as xe,c as Ee,h as Ue}from"./chunk-BDCTN4PU.js";import{b as ee}from"./chunk-R4PDSOB4.js";import{Z as b,ba as Me}from"./chunk-5MTN6KXV.js";import{j as Ae,p as Oe,r as _e,s as He}from"./chunk-ZBBVRYU3.js";import{a as Q,b as ke,h as Ce}from"./chunk-FJ3HMHT6.js";import{$a as Pe,Wa as H,_a as W,a as $}from"./chunk-UBCLPZSQ.js";import{q as F,r as N}from"./chunk-D5ADDBS5.js";import{h as _,i as Te}from"./chunk-PWK5Z5S3.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 Re,p as ce,r as pe,s as de,t as me,u as ge,w as fe}from"./chunk-KK626T3Z.js";import{z as M}from"./chunk-6DCXAXVD.js";import{c as ie,d as B,f as ae,h as U}from"./chunk-UGOK7VTC.js";import{v as Ie}from"./chunk-NJLULBTM.js";import{A as o}from"./chunk-PF56N7ZY.js";import{a as l}from"./chunk-FTQLQJQV.js";import{promises as ne}from"node:fs";import mt from"node:os";import gt from"node:path";import{createServer as ft}from"node:http";import{randomBytes as ht}from"node:crypto";var it=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)})]),at=o.discriminatedUnion("action",[o.strictObject({action:o.literal("patch"),expectedRevision:o.string(),operations:o.array(it).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 Be(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(I){u=B(I,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=at.parse(i);if(a.action==="validate")return{valid:!0,document:ce(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 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)},"mutation");return e?await e(c):await c(),r()}return l(s,"mutate"),{status:r,mutate:s,schema:ge}}l(Be,"createConfigurationPayloads");import{Buffer as Fe}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"},lt=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 Le(n,e,t={}){for(let[s,i]of Object.entries(G))e.setHeader(s,i);let r=$e(n.headers.origin);return r?(e.setHeader("Vary",dt(e.getHeader("Vary"))),ut(r,t)?(e.setHeader("Access-Control-Allow-Origin",r),{allowed:!0,origin:r}):{allowed:!1,origin:r}):{allowed:!0,origin:null}}l(Le,"applyCorsHeaders");function ut(n,e={}){if(n==="null")return!0;let t=je(n);return t?pt(t)?!0:new Set((e.allowedOrigins??[]).map(s=>s?je(s):null).filter(s=>!!s)).has(t):!1}l(ut,"isAllowedCorsOrigin");function x(n,e,t){n.writeHead(e,{"Content-Type":"application/json",...G}),n.end(JSON.stringify(t))}l(x,"sendJson");function Yt(n,e,t){n.writeHead(e,{"Content-Type":"text/plain; charset=utf-8",...G}),n.end(t)}l(Yt,"sendText");function Xt(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(Xt,"sendBinary");async function re(n,e={}){let t=e.maxBytes??lt,r=$e(n.headers["content-type"]),s=[],i=0;for await(let c of n){let p=Fe.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=Fe.concat(s).toString("utf8").trim();if(!a)return{};if(!ct(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 Ve(n,e,t){let r=n.headers.authorization;return(typeof r=="string"&&r.startsWith("Bearer ")?r.slice(7):null)===t}l(Ve,"hasAuth");function $e(n){return Array.isArray(n)?n[0]??null:n??null}l($e,"headerValue");function ct(n){if(!n)return!1;let e=n.split(";")[0]?.trim().toLowerCase();return e==="application/json"||!!e?.endsWith("+json")}l(ct,"isJsonContentType");function je(n){try{let e=new URL(n);return e.protocol!=="http:"&&e.protocol!=="https:"?null:e.origin}catch{return null}}l(je,"normalizeOrigin");function pt(n){let e=new URL(n);return e.hostname==="localhost"||e.hostname==="127.0.0.1"||e.hostname==="::1"||e.hostname==="[::1]"}l(pt,"isLoopbackOrigin");function dt(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(dt,"appendVaryOrigin");function We(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 Ne,d as qe,e as De}from"./chunk-FFWOTZQM.js";import{a as te}from"./chunk-ZXT7V64X.js";import{b as xe,c as Ee,h as Ue}from"./chunk-2V4LPUBH.js";import{b as ee}from"./chunk-R4PDSOB4.js";import{Z as b,ba as Me}from"./chunk-5MTN6KXV.js";import{j as Ae,p as Oe,r as _e,s as He}from"./chunk-MNFW5WLD.js";import{a as Q,b as ke,h as Ce}from"./chunk-557XSPVS.js";import{$a as Pe,Wa as H,_a as W,a as $}from"./chunk-TUCKED4T.js";import{q as F,r as N}from"./chunk-JY3YSI54.js";import{h as _,i as Te}from"./chunk-PWK5Z5S3.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 Re,p as ce,r as pe,s as de,t as me,u as ge,w as fe}from"./chunk-2EPR4HLF.js";import{z as M}from"./chunk-BKEDG3A4.js";import{c as ie,d as B,f as ae,h as U}from"./chunk-UGOK7VTC.js";import{v as Ie}from"./chunk-NJLULBTM.js";import{A as o}from"./chunk-PF56N7ZY.js";import{a as l}from"./chunk-FTQLQJQV.js";import{promises as ne}from"node:fs";import mt from"node:os";import gt from"node:path";import{createServer as ft}from"node:http";import{randomBytes as ht}from"node:crypto";var it=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)})]),at=o.discriminatedUnion("action",[o.strictObject({action:o.literal("patch"),expectedRevision:o.string(),operations:o.array(it).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 Be(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(I){u=B(I,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=at.parse(i);if(a.action==="validate")return{valid:!0,document:ce(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 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)},"mutation");return e?await e(c):await c(),r()}return l(s,"mutate"),{status:r,mutate:s,schema:ge}}l(Be,"createConfigurationPayloads");import{Buffer as Fe}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"},lt=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 Le(n,e,t={}){for(let[s,i]of Object.entries(G))e.setHeader(s,i);let r=$e(n.headers.origin);return r?(e.setHeader("Vary",dt(e.getHeader("Vary"))),ut(r,t)?(e.setHeader("Access-Control-Allow-Origin",r),{allowed:!0,origin:r}):{allowed:!1,origin:r}):{allowed:!0,origin:null}}l(Le,"applyCorsHeaders");function ut(n,e={}){if(n==="null")return!0;let t=je(n);return t?pt(t)?!0:new Set((e.allowedOrigins??[]).map(s=>s?je(s):null).filter(s=>!!s)).has(t):!1}l(ut,"isAllowedCorsOrigin");function x(n,e,t){n.writeHead(e,{"Content-Type":"application/json",...G}),n.end(JSON.stringify(t))}l(x,"sendJson");function Yt(n,e,t){n.writeHead(e,{"Content-Type":"text/plain; charset=utf-8",...G}),n.end(t)}l(Yt,"sendText");function Xt(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(Xt,"sendBinary");async function re(n,e={}){let t=e.maxBytes??lt,r=$e(n.headers["content-type"]),s=[],i=0;for await(let c of n){let p=Fe.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=Fe.concat(s).toString("utf8").trim();if(!a)return{};if(!ct(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 Ve(n,e,t){let r=n.headers.authorization;return(typeof r=="string"&&r.startsWith("Bearer ")?r.slice(7):null)===t}l(Ve,"hasAuth");function $e(n){return Array.isArray(n)?n[0]??null:n??null}l($e,"headerValue");function ct(n){if(!n)return!1;let e=n.split(";")[0]?.trim().toLowerCase();return e==="application/json"||!!e?.endsWith("+json")}l(ct,"isJsonContentType");function je(n){try{let e=new URL(n);return e.protocol!=="http:"&&e.protocol!=="https:"?null:e.origin}catch{return null}}l(je,"normalizeOrigin");function pt(n){let e=new URL(n);return e.hostname==="localhost"||e.hostname==="127.0.0.1"||e.hostname==="::1"||e.hostname==="[::1]"}l(pt,"isLoopbackOrigin");function dt(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(dt,"appendVaryOrigin");function We(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>