openpond 0.2.58 → 0.2.60

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (389) hide show
  1. package/README.md +27 -0
  2. package/dist/app-server.d.ts +8 -1
  3. package/dist/app-server.js +1 -1
  4. package/dist/chunks/acp-ARBNMIPT.js +2 -0
  5. package/dist/chunks/acp-agent-53COYDHB.js +21 -0
  6. package/dist/chunks/{actions-command-QU4H53OG.js → actions-command-6YSZ7EJS.js} +1 -1
  7. package/dist/chunks/{app-layer-NSTE5HIT.js → app-layer-TVG7KTW6.js} +1 -1
  8. package/dist/chunks/{app-server-connected-apps-JHGWLBXT.js → app-server-connected-apps-K62M6LCT.js} +1 -1
  9. package/dist/chunks/{app-server-evaluations-K52NAQLP.js → app-server-evaluations-RM6WXX3H.js} +1 -1
  10. package/dist/chunks/app-server-harness-services-RLKMWOQ4.js +2 -0
  11. package/dist/chunks/app-server-runtime-OKMEHNEU.js +2 -0
  12. package/dist/chunks/apps-YWZL2H34.js +2 -0
  13. package/dist/chunks/{chunk-DARVPBZ4.js → chunk-23P2O7PH.js} +1 -1
  14. package/dist/chunks/{chunk-PF5R6CMP.js → chunk-2GICDASL.js} +1 -1
  15. package/dist/chunks/{chunk-6MI4KKWF.js → chunk-2ITZW2CN.js} +1 -1
  16. package/dist/chunks/chunk-2MMCZHKL.js +2 -0
  17. package/dist/chunks/{chunk-ABD5M2D2.js → chunk-2PAJCXFC.js} +1 -1
  18. package/dist/chunks/chunk-2RNCXDJC.js +5 -0
  19. package/dist/chunks/{chunk-APB2STJK.js → chunk-2SUMZ73C.js} +1 -1
  20. package/dist/chunks/{chunk-YOQRYNLP.js → chunk-3CWRTKHY.js} +1 -1
  21. package/dist/chunks/{chunk-TRQQNFMO.js → chunk-44LWH5U6.js} +1 -1
  22. package/dist/chunks/{chunk-HPBQ4VTW.js → chunk-52KIORRX.js} +1 -1
  23. package/dist/chunks/{chunk-NHQ36THU.js → chunk-5RHYSQZ5.js} +1 -1
  24. package/dist/chunks/{chunk-3QIB5FXI.js → chunk-5ZBLCWEJ.js} +1 -1
  25. package/dist/chunks/{chunk-FTEOCCPB.js → chunk-637UACKH.js} +1 -1
  26. package/dist/chunks/chunk-655DQ6AX.js +145 -0
  27. package/dist/chunks/{chunk-N4FFQPLR.js → chunk-6GWOVHIG.js} +1 -1
  28. package/dist/chunks/chunk-6HQB3MQO.js +2 -0
  29. package/dist/chunks/{chunk-UKMA4R6X.js → chunk-7LZISGTA.js} +2 -2
  30. package/dist/chunks/{chunk-A6USMRWK.js → chunk-7RC5WPVT.js} +1 -1
  31. package/dist/chunks/{chunk-H6IW2R22.js → chunk-7YTHEMWI.js} +1 -1
  32. package/dist/chunks/{chunk-PCSIOUHF.js → chunk-A3L74U3W.js} +1 -1
  33. package/dist/chunks/{chunk-25MBPJVY.js → chunk-A66CSUBJ.js} +1 -1
  34. package/dist/chunks/{chunk-OUVIWDL2.js → chunk-AGVOGPAZ.js} +1 -1
  35. package/dist/chunks/{chunk-M4JWQSV7.js → chunk-AW5Q6NXT.js} +1 -1
  36. package/dist/chunks/{chunk-RWWE5OXU.js → chunk-B46HZ3MX.js} +1 -1
  37. package/dist/chunks/{chunk-KGNCKIFP.js → chunk-BIPQCJ5V.js} +1 -1
  38. package/dist/chunks/{chunk-HCYX6RHP.js → chunk-BIQ33JV5.js} +1 -1
  39. package/dist/chunks/{chunk-JFXWI3EN.js → chunk-BK63OQRW.js} +1 -1
  40. package/dist/chunks/{chunk-2D4Y3HNW.js → chunk-CFSIU6CW.js} +1 -1
  41. package/dist/chunks/{chunk-EIEZHFIW.js → chunk-D3RRUWNN.js} +1 -1
  42. package/dist/chunks/{chunk-X4OSOOSU.js → chunk-D4UX2O45.js} +1 -1
  43. package/dist/chunks/{chunk-GJ2ZJFDD.js → chunk-DG4TYVPF.js} +1 -1
  44. package/dist/chunks/{chunk-QIKWJ2AA.js → chunk-DGIEXZJV.js} +1 -1
  45. package/dist/chunks/{chunk-PRGBLQVH.js → chunk-DIGX56JY.js} +1 -1
  46. package/dist/chunks/{chunk-JYKRR7E5.js → chunk-DISNCX6R.js} +1 -1
  47. package/dist/chunks/{chunk-773TH7FN.js → chunk-DK7IKI7O.js} +1 -1
  48. package/dist/chunks/{chunk-74IIXVAE.js → chunk-DX7YEUNQ.js} +1 -1
  49. package/dist/chunks/{chunk-523TE4BI.js → chunk-E63VWAQA.js} +1 -1
  50. package/dist/chunks/{chunk-5MCNZCVQ.js → chunk-EL454L26.js} +1 -1
  51. package/dist/chunks/{chunk-OS3LO5J3.js → chunk-ENSB6ZTM.js} +1 -1
  52. package/dist/chunks/{chunk-EAPFMACH.js → chunk-ERJV5BMC.js} +1 -1
  53. package/dist/chunks/{chunk-RNIAFXMB.js → chunk-EXJGCNRS.js} +1 -1
  54. package/dist/chunks/chunk-F5KCCDQM.js +2 -0
  55. package/dist/chunks/chunk-FSQWAANK.js +3 -0
  56. package/dist/chunks/{chunk-Z54O534A.js → chunk-G5B3PB5X.js} +1 -1
  57. package/dist/chunks/{chunk-4D7HWVWD.js → chunk-GAWGIJQG.js} +1 -1
  58. package/dist/chunks/{chunk-IIZ4CWBX.js → chunk-GGGF5NHJ.js} +1 -1
  59. package/dist/chunks/{chunk-APB4O67E.js → chunk-GOYBYYPQ.js} +1 -1
  60. package/dist/chunks/{chunk-XDQMGUWL.js → chunk-H3BSIAQO.js} +1 -1
  61. package/dist/chunks/{chunk-EYPCBBMS.js → chunk-HCEJAOIF.js} +1 -1
  62. package/dist/chunks/{chunk-OPNRWESL.js → chunk-IFQCOSU6.js} +1 -1
  63. package/dist/chunks/chunk-IJHZBHEK.js +9 -0
  64. package/dist/chunks/{chunk-RAXOSUSW.js → chunk-ISFIDCIH.js} +1 -1
  65. package/dist/chunks/{chunk-OLLLZVHF.js → chunk-ITKTILKI.js} +1 -1
  66. package/dist/chunks/{chunk-D74JEERO.js → chunk-IUBARBGI.js} +1 -1
  67. package/dist/chunks/{chunk-O72BSKSO.js → chunk-J24I74EM.js} +1 -1
  68. package/dist/chunks/{chunk-H4QHIHMK.js → chunk-J7QGHA7G.js} +3 -3
  69. package/dist/chunks/chunk-JFXINDOQ.js +3 -0
  70. package/dist/chunks/{chunk-HIOKCIL7.js → chunk-JGWINTT5.js} +1 -1
  71. package/dist/chunks/{chunk-Q2QL6UWN.js → chunk-JHEFWB6O.js} +1 -1
  72. package/dist/chunks/{chunk-QNG27G3T.js → chunk-JHMS2WXM.js} +2 -2
  73. package/dist/chunks/{chunk-PSGGOZFM.js → chunk-JHR3LF2F.js} +1 -1
  74. package/dist/chunks/{chunk-JE7RJZOA.js → chunk-KGLJU66U.js} +3 -3
  75. package/dist/chunks/{chunk-XEOEKFG6.js → chunk-KJFRCVQC.js} +1 -1
  76. package/dist/chunks/chunk-KNO355LC.js +2 -0
  77. package/dist/chunks/{chunk-ZGTOK7ZK.js → chunk-LD7PGREF.js} +2 -2
  78. package/dist/chunks/{chunk-I7AQMAQI.js → chunk-LHA7RQBA.js} +6 -6
  79. package/dist/chunks/{chunk-6QSSIT62.js → chunk-LO3O45IX.js} +1 -1
  80. package/dist/chunks/{chunk-G3RXYI2L.js → chunk-M2SKXY5C.js} +2 -2
  81. package/dist/chunks/{chunk-2IHO4GDJ.js → chunk-M3ZQDPRS.js} +1 -1
  82. package/dist/chunks/{chunk-JDEEWOD7.js → chunk-M4ZF44H5.js} +1 -1
  83. package/dist/chunks/{chunk-Y4OWBBDD.js → chunk-M55H7KVR.js} +1 -1
  84. package/dist/chunks/{chunk-JAJ46T5X.js → chunk-MGKMIRYG.js} +1 -1
  85. package/dist/chunks/{chunk-4EQA2M7K.js → chunk-MJGU2JJ2.js} +2 -2
  86. package/dist/chunks/{chunk-65PL62KH.js → chunk-MS37ISA4.js} +2 -2
  87. package/dist/chunks/{chunk-NH6UUX5S.js → chunk-NCKXI2VB.js} +11 -11
  88. package/dist/chunks/chunk-NHUUCNAD.js +2 -0
  89. package/dist/chunks/{chunk-O6ULLQJ6.js → chunk-O3VP46SE.js} +1 -1
  90. package/dist/chunks/chunk-O4FBOUNX.js +2 -0
  91. package/dist/chunks/chunk-O6IFVTZT.js +9 -0
  92. package/dist/chunks/{chunk-5IPFI25K.js → chunk-O7B44IYN.js} +1 -1
  93. package/dist/chunks/{chunk-DMVD2RFZ.js → chunk-OGMDEA3Y.js} +1 -1
  94. package/dist/chunks/{chunk-BLXEAZCQ.js → chunk-OKBIWRHC.js} +1 -1
  95. package/dist/chunks/{chunk-FFRFSDBM.js → chunk-ON2RNOCG.js} +1 -1
  96. package/dist/chunks/{chunk-LQQNBVEB.js → chunk-ONDCV5QC.js} +1 -1
  97. package/dist/chunks/{chunk-UCPGRPWY.js → chunk-OQ4VGCRG.js} +1 -1
  98. package/dist/chunks/{chunk-YNH3NMPF.js → chunk-OWK7HU5I.js} +1 -1
  99. package/dist/chunks/{chunk-DBK66CJP.js → chunk-OY5HC2P6.js} +1 -1
  100. package/dist/chunks/{chunk-T5AACNJI.js → chunk-P7HRF4FM.js} +1 -1
  101. package/dist/chunks/{chunk-7ED24PP6.js → chunk-PCNLC5H3.js} +1 -1
  102. package/dist/chunks/{chunk-ES2ISFJC.js → chunk-PF56N7ZY.js} +1 -1
  103. package/dist/chunks/{chunk-VVCKLCF3.js → chunk-PKALOVHC.js} +2 -2
  104. package/dist/chunks/{chunk-ZCHXGRRU.js → chunk-PR5TYTY4.js} +1 -1
  105. package/dist/chunks/{chunk-Q4TBTRIG.js → chunk-PWK5Z5S3.js} +1 -1
  106. package/dist/chunks/chunk-PXS4SVQG.js +16 -0
  107. package/dist/chunks/{chunk-AY64VY4E.js → chunk-QGOPYQW3.js} +1 -1
  108. package/dist/chunks/{chunk-7E6T7GP5.js → chunk-R7YEURUQ.js} +1 -1
  109. package/dist/chunks/{chunk-ACYFMLWG.js → chunk-RCA6NGVA.js} +2 -2
  110. package/dist/chunks/{chunk-DUURYZOI.js → chunk-RG3NH6YQ.js} +1 -1
  111. package/dist/chunks/{chunk-7SC46OFC.js → chunk-RJIUOLWY.js} +1 -1
  112. package/dist/chunks/{chunk-F4KOGISR.js → chunk-RXE3FYMJ.js} +1 -1
  113. package/dist/chunks/chunk-RYGWCN2R.js +2 -0
  114. package/dist/chunks/{chunk-VYLGI3IH.js → chunk-SFNCAPCJ.js} +1 -1
  115. package/dist/chunks/{chunk-Z4Z5UOZM.js → chunk-SG6JZ7HD.js} +1 -1
  116. package/dist/chunks/{chunk-XX6SMFDY.js → chunk-SKRNWRKV.js} +5 -5
  117. package/dist/chunks/{chunk-ZRDGQDZL.js → chunk-SLZH4Z6C.js} +1 -1
  118. package/dist/chunks/{chunk-WN3V6KDN.js → chunk-SPDSSMFD.js} +1 -1
  119. package/dist/chunks/chunk-STWRTNRK.js +2 -0
  120. package/dist/chunks/{chunk-HZEIRHEB.js → chunk-T5J7HIHR.js} +1 -1
  121. package/dist/chunks/{chunk-ROGF26KV.js → chunk-TBUAQWFS.js} +1 -1
  122. package/dist/chunks/{chunk-ZUJ3XUCP.js → chunk-TEPRCBDV.js} +1 -1
  123. package/dist/chunks/{chunk-HDGTHRY7.js → chunk-TOFMA2L5.js} +2 -2
  124. package/dist/chunks/{chunk-QOGJAQDO.js → chunk-UFHLLSCE.js} +1 -1
  125. package/dist/chunks/{chunk-TTVS6JMC.js → chunk-UJKQLO6B.js} +2 -2
  126. package/dist/chunks/{chunk-OQKJGTTO.js → chunk-UZQNFTLR.js} +1 -1
  127. package/dist/chunks/{chunk-F74GBN6K.js → chunk-V2HMWCT6.js} +1 -1
  128. package/dist/chunks/{chunk-6ZFPQYHG.js → chunk-V4KT5FCJ.js} +1 -1
  129. package/dist/chunks/{chunk-TVQAPBLZ.js → chunk-VHSX3JPX.js} +1 -1
  130. package/dist/chunks/{chunk-SDXFLO7J.js → chunk-W2SXOGTQ.js} +1 -1
  131. package/dist/chunks/{chunk-FUOEIDMA.js → chunk-WDEO44UN.js} +1 -1
  132. package/dist/chunks/{chunk-4NESNOK5.js → chunk-WEHBK3MC.js} +1 -1
  133. package/dist/chunks/{chunk-4EPSHPZL.js → chunk-WGX7WY4N.js} +1 -1
  134. package/dist/chunks/{chunk-NC27T4AB.js → chunk-WHREO7A2.js} +1 -1
  135. package/dist/chunks/{chunk-RNQF63ZR.js → chunk-WS2ZZBAQ.js} +4 -4
  136. package/dist/chunks/{chunk-DIO5CB6U.js → chunk-WYZWDMMF.js} +1 -1
  137. package/dist/chunks/{chunk-MQULU465.js → chunk-XO3H32KX.js} +1 -1
  138. package/dist/chunks/{chunk-EIRYMSEG.js → chunk-XQBIHPPX.js} +1 -1
  139. package/dist/chunks/chunk-XRKFTPHD.js +2 -0
  140. package/dist/chunks/{chunk-B7RFL4N2.js → chunk-XSCIOQYE.js} +1 -1
  141. package/dist/chunks/{chunk-TJ6GVTYB.js → chunk-XTWEWYK7.js} +9 -9
  142. package/dist/chunks/{chunk-JUHZ5S3R.js → chunk-Y3GIM6WK.js} +1 -1
  143. package/dist/chunks/{chunk-74ZXXBGN.js → chunk-Y54RKLOI.js} +1 -1
  144. package/dist/chunks/{chunk-SWUEFLOH.js → chunk-Y777GISF.js} +1 -1
  145. package/dist/chunks/{chunk-EKM2D7JU.js → chunk-YDU3S6UT.js} +1 -1
  146. package/dist/chunks/{chunk-UGL7WF3W.js → chunk-YOZIZYSC.js} +1 -1
  147. package/dist/chunks/{chunk-OSIO7PLX.js → chunk-YQKOB56U.js} +1 -1
  148. package/dist/chunks/chunk-YVNDDNMK.js +3 -0
  149. package/dist/chunks/chunk-ZAZKJJOT.js +86 -0
  150. package/dist/chunks/{chunk-QL4OIPEZ.js → chunk-ZR7LIMJS.js} +2 -2
  151. package/dist/chunks/{chunk-L3KCP52O.js → chunk-ZTJOOY2F.js} +1 -1
  152. package/dist/chunks/{chunk-GPVCOEUH.js → chunk-ZTVXRZ6D.js} +1 -1
  153. package/dist/chunks/cli-CNYNXKGQ.js +2 -0
  154. package/dist/chunks/configuration-command-5K7EE2J5.js +2 -0
  155. package/dist/chunks/connected-app-executor-E25XCNAS.js +2 -0
  156. package/dist/chunks/connected-evidence-QNSO5BTF.js +2 -0
  157. package/dist/chunks/connection-Y2KCMBYD.js +2 -0
  158. package/dist/chunks/{continual-6CQAMTTR.js → continual-SOO3QBNQ.js} +1 -1
  159. package/dist/chunks/core-commands-ZTWPYAFQ.js +2 -0
  160. package/dist/chunks/datasets-XPUMWGOC.js +2 -0
  161. package/dist/chunks/desktop-test-HVSW4JHY.js +3 -0
  162. package/dist/chunks/dist-4N6AHWNN.js +2 -0
  163. package/dist/chunks/{dist-OMGUJYPD.js → dist-N6R6VNFD.js} +1 -1
  164. package/dist/chunks/{dist-VYC5VMQB.js → dist-QN7WKZ2D.js} +1 -1
  165. package/dist/chunks/{enclave-QS4BUNDU.js → enclave-VURYNILU.js} +1 -1
  166. package/dist/chunks/evaluation-coordination-AOTFPVMS.js +2 -0
  167. package/dist/chunks/experiment-improvements-75CN3VI7.js +2 -0
  168. package/dist/chunks/experiments-AGAHM2AK.js +2 -0
  169. package/dist/chunks/{experiments-VFQGE4HC.js → experiments-DYSHYBGB.js} +1 -1
  170. package/dist/chunks/{extension-XKXXOP5N.js → extension-UT4CSDJF.js} +1 -1
  171. package/dist/chunks/help-KU52CFMW.js +8 -0
  172. package/dist/chunks/host-profile-evaluation-tools-LZDMQCMT.js +2 -0
  173. package/dist/chunks/host-profile-external-dataset-VK3NJHMC.js +2 -0
  174. package/dist/chunks/hosted-app-server-composition-P7V7K7CG.js +2 -0
  175. package/dist/chunks/{hosted-experiment-improvement-HVMDGS75.js → hosted-experiment-improvement-P433KDX2.js} +1 -1
  176. package/dist/chunks/hosted-harness-runtime-Y4DONWPC.js +2 -0
  177. package/dist/chunks/{hosted-profile-candidate-EXNN6MVN.js → hosted-profile-candidate-72MMPN6U.js} +1 -1
  178. package/dist/chunks/hosted-profile-compiler-RXHLK224.js +2 -0
  179. package/dist/chunks/hosted-profile-evaluation-control-LS4DCSDO.js +2 -0
  180. package/dist/chunks/{hosted-profile-evaluation-inspection-ZUANDYZ6.js → hosted-profile-evaluation-inspection-3Q6EHO66.js} +1 -1
  181. package/dist/chunks/{hosted-profile-evaluation-preparation-ORVZ6MBD.js → hosted-profile-evaluation-preparation-ZD27HNLF.js} +1 -1
  182. package/dist/chunks/{hosted-tasksets-ANAE2PIW.js → hosted-tasksets-V2PQZJN4.js} +1 -1
  183. package/dist/chunks/human-review-4FJFINQX.js +2 -0
  184. package/dist/chunks/import-GBHSLA3G.js +3 -0
  185. package/dist/chunks/{learning-ACEVFL5M.js → learning-U3FZL5YB.js} +1 -1
  186. package/dist/chunks/local-harness-improvement-runtime-UP2P7UT4.js +2 -0
  187. package/dist/chunks/local-harness-taskset-review-ZNOKSPJJ.js +2 -0
  188. package/dist/chunks/{local-scope-HVF2GZ5W.js → local-scope-62GWHDXS.js} +1 -1
  189. package/dist/chunks/{model-projects-QPO22JPA.js → model-projects-LQ4C6R3X.js} +1 -1
  190. package/dist/chunks/opchat-Q4PIWPYW.js +3 -0
  191. package/dist/chunks/organizations-TEH6HBQ3.js +2 -0
  192. package/dist/chunks/{profile-TFZMUEDR.js → profile-SWPVCGTR.js} +1 -1
  193. package/dist/chunks/{profile-training-source-6GOT7AHM.js → profile-training-source-J73ZLNSC.js} +1 -1
  194. package/dist/chunks/project-action-payload-OU3ZPHW7.js +2 -0
  195. package/dist/chunks/project-agent-J7ILCRBS.js +2 -0
  196. package/dist/chunks/{published-experiment-source-HVP5IGRH.js → published-experiment-source-HVHKSYDL.js} +1 -1
  197. package/dist/chunks/refiner-profile-service-E7YU4E3N.js +2 -0
  198. package/dist/chunks/{runtime-A7OZXM43.js → runtime-LIPHPKKJ.js} +2 -2
  199. package/dist/chunks/sandbox-command-G6KID3OP.js +2 -0
  200. package/dist/chunks/{sandbox-template-C4V6T36U.js → sandbox-template-MZTMAUFS.js} +1 -1
  201. package/dist/chunks/saved-work-LOUWLF37.js +2 -0
  202. package/dist/chunks/{send-turn-XTAIS2JN.js → send-turn-UEUEGY5W.js} +1 -1
  203. package/dist/chunks/{src-R36AGJY7.js → src-7WMZOWZZ.js} +107 -100
  204. package/dist/chunks/{src-DZL5T2MT.js → src-MVAK6D6Y.js} +1 -1
  205. package/dist/chunks/standalone-experiment-turn-owner-YRKEOEJ2.js +2 -0
  206. package/dist/chunks/{store-continual-support-reviews-LJPNG4SP.js → store-continual-support-reviews-FJLLNKCY.js} +1 -1
  207. package/dist/chunks/{store-conversation-serving-KPC62UEY.js → store-conversation-serving-4KWR4IZY.js} +1 -1
  208. package/dist/chunks/{store-create-improve-SW5FTBTL.js → store-create-improve-JWBJZRAU.js} +1 -1
  209. package/dist/chunks/{store-datasets-WMA7AJKN.js → store-datasets-4N2M6Y3K.js} +2 -2
  210. package/dist/chunks/{store-evaluation-results-ZO6R653G.js → store-evaluation-results-OBM4623U.js} +1 -1
  211. package/dist/chunks/{store-harness-memory-VINCZ4GK.js → store-harness-memory-4HUEMRCD.js} +1 -1
  212. package/dist/chunks/{store-harness-refinement-candidates-EA5KFQPH.js → store-harness-refinement-candidates-NMRWMN23.js} +1 -1
  213. package/dist/chunks/store-harness-workspaces-BGONIQDY.js +2 -0
  214. package/dist/chunks/{store-human-review-7QQ7ZQ6P.js → store-human-review-J75SIZAL.js} +1 -1
  215. package/dist/chunks/store-learned-preference-migration-validation-VLASM4CT.js +2 -0
  216. package/dist/chunks/store-learning-TUCQFBLT.js +2 -0
  217. package/dist/chunks/{store-learning-credentials-WZQJ4HPJ.js → store-learning-credentials-S4RF57NV.js} +1 -1
  218. package/dist/chunks/{store-local-experiments-SAULQSBN.js → store-local-experiments-LULRLTII.js} +5 -5
  219. package/dist/chunks/{store-model-batch-review-VKLDYGH3.js → store-model-batch-review-SVL4MT6D.js} +1 -1
  220. package/dist/chunks/{store-model-configuration-BYRJUR3C.js → store-model-configuration-ZHDSM3XM.js} +2 -2
  221. package/dist/chunks/{store-preference-comparison-LV32MHVL.js → store-preference-comparison-YMMCKXS5.js} +1 -1
  222. package/dist/chunks/{store-schedules-VGTEQVKH.js → store-schedules-6Z4QS3NU.js} +1 -1
  223. package/dist/chunks/{store-sidebar-file-bookmarks-VB5GTLFY.js → store-sidebar-file-bookmarks-MX6EP6OB.js} +2 -2
  224. package/dist/chunks/{store-sidebar-preferences-GWIOG2NH.js → store-sidebar-preferences-VYREPW26.js} +1 -1
  225. package/dist/chunks/{store-subagents-T7R2Z6TB.js → store-subagents-WGBCRALX.js} +1 -1
  226. package/dist/chunks/{store-task-inbox-QPE44OSS.js → store-task-inbox-43BNZSB7.js} +6 -6
  227. package/dist/chunks/{store-task-inventory-I3RDRI52.js → store-task-inventory-AEW4POAJ.js} +2 -2
  228. package/dist/chunks/{store-taskset-drafts-2IULRV2W.js → store-taskset-drafts-DKFO2CYB.js} +1 -1
  229. package/dist/chunks/{store-training-B2TW2MLA.js → store-training-6PFFR6ST.js} +1 -1
  230. package/dist/chunks/{store-training-jobs-VBNG23RL.js → store-training-jobs-ANDEBQ67.js} +2 -2
  231. package/dist/chunks/{store-training-models-OMV5FIC4.js → store-training-models-OOI4ZJPX.js} +2 -2
  232. package/dist/chunks/{store-usage-IE2U2FD3.js → store-usage-U72RNW64.js} +1 -1
  233. package/dist/chunks/{store-work-evidence-QQDKM5AQ.js → store-work-evidence-NY5OBATB.js} +1 -1
  234. package/dist/chunks/{taskset-EQRFQBYM.js → taskset-SL3YOXW7.js} +1 -1
  235. package/dist/chunks/{taskset-packages-XC6HEE3K.js → taskset-packages-3PCEYYDA.js} +1 -1
  236. package/dist/chunks/{teams-bot-EAPGPTHZ.js → teams-bot-IDEF3BMI.js} +1 -1
  237. package/dist/chunks/{training-UF6RPI4T.js → training-57ISIC7U.js} +1 -1
  238. package/dist/chunks/web-search-222Y63QW.js +2 -0
  239. package/dist/chunks/{workspaces-EKKE5NAC.js → workspaces-5DF4H5EX.js} +1 -1
  240. package/dist/cli.js +1 -1
  241. package/dist/index.js +1 -1
  242. package/dist/sandbox-template/manifest.js +1 -1
  243. package/dist/web/assets/{App-CaRMZoxo.css → App-DbYvV_W6.css} +1 -1
  244. package/dist/web/assets/App-nzE7JU_O.js +154 -0
  245. package/dist/web/assets/{AppDialog-t2Fx5tK3.js → AppDialog-VtNvqbDm.js} +1 -1
  246. package/dist/web/assets/{AppTerminalPanel-Dj1Y32oI.js → AppTerminalPanel-BMfKdrrN.js} +2 -2
  247. package/dist/web/assets/AppsView-CdWyrDEb.js +1 -0
  248. package/dist/web/assets/{BrowserSidebar-jhWi4rVm.js → BrowserSidebar-CtOIciOa.js} +1 -1
  249. package/dist/web/assets/{CartesianChart-C1DIx0Ia.js → CartesianChart-u1lvLM30.js} +1 -1
  250. package/dist/web/assets/{CollaborationTabs-Bdr-HmOL.js → CollaborationTabs-CaBfDYRW.js} +1 -1
  251. package/dist/web/assets/{CommandMenu-Ux2yOHAc.js → CommandMenu-CFW3WJ11.js} +1 -1
  252. package/dist/web/assets/{CommunityView-DPEeVKFn.js → CommunityView-D2EjaeuH.js} +1 -1
  253. package/dist/web/assets/ComposerCreateImproveStrip-6wYSJdzv.js +1 -0
  254. package/dist/web/assets/ConversationImportsSettings-BJ4QhF7p.js +1 -0
  255. package/dist/web/assets/ConversationImportsSettings-PfUa8V7X.css +1 -0
  256. package/dist/web/assets/{GetStartedView-CFHP0AaI.js → GetStartedView-DBcOwIJn.js} +1 -1
  257. package/dist/web/assets/{HostedModelLearningReview-D8BGTPVN.js → HostedModelLearningReview-BNpK6_W9.js} +1 -1
  258. package/dist/web/assets/{HostedModelLearningSettings-JS1S7vNO.js → HostedModelLearningSettings-SrsdeeoA.js} +1 -1
  259. package/dist/web/assets/{LabModelVersionDetailPage-Dx5Q3xV2.js → LabModelVersionDetailPage-Cd6bRHt9.js} +1 -1
  260. package/dist/web/assets/LabSkillSidebar-CQfvel4w.js +1 -0
  261. package/dist/web/assets/{LabsRoute-CyYF8-dw.js → LabsRoute-sXLJt1KR.js} +4 -4
  262. package/dist/web/assets/MainChatThread-dlDDK2JM.js +2 -0
  263. package/dist/web/assets/MainPane-DCz38-qy.js +65 -0
  264. package/dist/web/assets/{MarkdownText-BR4V6lNO.js → MarkdownText-Drjq6-JM.js} +1 -1
  265. package/dist/web/assets/{NativeSkillSidebar-DU9IEgIO.js → NativeSkillSidebar-jncZijt-.js} +1 -1
  266. package/dist/web/assets/{NewExperienceSwitcher-mIy6FzCj.js → NewExperienceSwitcher-DXKzoMaM.js} +1 -1
  267. package/dist/web/assets/{NewProjectDialog-RfTZTHxl.js → NewProjectDialog-DIyjAxJG.js} +1 -1
  268. package/dist/web/assets/OutputsPage-Dy1cNr3n.js +1 -0
  269. package/dist/web/assets/{ProjectsPage-CE6QUB-b.js → ProjectsPage-D2EeybIv.js} +1 -1
  270. package/dist/web/assets/RightChatPanelStack-4wUL-W9_.js +1 -0
  271. package/dist/web/assets/{RightSidebarHomePanel-CK0rP3WT.js → RightSidebarHomePanel-Bd_AHUp8.js} +1 -1
  272. package/dist/web/assets/{ScheduledWorkPage-vOrYv8pp.js → ScheduledWorkPage-BJkSzwz2.js} +1 -1
  273. package/dist/web/assets/{SettingsView-DCKVrfjj.js → SettingsView-BhcP72KH.js} +4 -4
  274. package/dist/web/assets/SettingsView-DjjnCnlb.css +1 -0
  275. package/dist/web/assets/{TeamChatView-Bwrjr-vk.js → TeamChatView-CR0fdicZ.js} +2 -2
  276. package/dist/web/assets/{TerminalOverlay-DhPoKZAq.js → TerminalOverlay-DGrZRZ_3.js} +10 -10
  277. package/dist/web/assets/TrainingCreationPanel-BsTG7aFS.js +1 -0
  278. package/dist/web/assets/{TrainingDraftPanel-C9cRX5qf.js → TrainingDraftPanel-ByErrht7.js} +1 -1
  279. package/dist/web/assets/{UsageSettingsSection-CrdcSGeW.js → UsageSettingsSection-DeYTJbcM.js} +1 -1
  280. package/dist/web/assets/{WorkSidebarPanel-DSSikNFQ.js → WorkSidebarPanel-DcNvEEoy.js} +1 -1
  281. package/dist/web/assets/{WorkspaceDiffPanel-BAFo0CPN.js → WorkspaceDiffPanel-CdPRcYWN.js} +3 -3
  282. package/dist/web/assets/{WorkspaceEnvironmentMenu-BVHAhwnJ.js → WorkspaceEnvironmentMenu-xUYg-iGn.js} +18 -18
  283. package/dist/web/assets/{WorkspaceGitDialogs-CwVoiDQ2.js → WorkspaceGitDialogs-CBViLL3S.js} +1 -1
  284. package/dist/web/assets/{WorkspaceMonacoEditor-TxLyhzNp.js → WorkspaceMonacoEditor-frxie2_S.js} +3 -3
  285. package/dist/web/assets/agent-connections-D7ao-vbU.js +1 -0
  286. package/dist/web/assets/{arrow-up-right-C9aE8Mfz.js → arrow-up-right-DCWPxdbD.js} +1 -1
  287. package/dist/web/assets/{chunk-P3BRSSRD-DUGfuKA8.js → chunk-P3BRSSRD-B5JXa0Nh.js} +1 -1
  288. package/dist/web/assets/{clipboard-Dk158Qp4.js → clipboard-B-GnMVLp.js} +1 -1
  289. package/dist/web/assets/{cloud-upload-k9eqBsHr.js → cloud-upload-DpaGFZ9J.js} +1 -1
  290. package/dist/web/assets/{cssMode-CO35ARZp.js → cssMode-DJHE7R3W.js} +1 -1
  291. package/dist/web/assets/{folder-open-sYgceW_f.js → folder-open-B-DFLDFH.js} +1 -1
  292. package/dist/web/assets/{folder-plus-CS0R49m9.js → folder-plus-CPXxPvSH.js} +1 -1
  293. package/dist/web/assets/{git-commit-horizontal-DrGxH2h4.js → git-commit-horizontal-DCTzcivA.js} +1 -1
  294. package/dist/web/assets/{htmlMode-REMmzdfq.js → htmlMode-DxZVBAYd.js} +1 -1
  295. package/dist/web/assets/index-BojtIRzO.css +1 -0
  296. package/dist/web/assets/{index-C8aCGagb.js → index-Di1MU6Xr.js} +2 -2
  297. package/dist/web/assets/{info-DLdbiUrh.js → info-BMxsR_bn.js} +1 -1
  298. package/dist/web/assets/{jsonMode-KEdMfkIf.js → jsonMode-CzWoMkpp.js} +1 -1
  299. package/dist/web/assets/{lspLanguageFeatures-5KZwEoxW.js → lspLanguageFeatures-15K7ND6Q.js} +1 -1
  300. package/dist/web/assets/{minimize-2-CqcI4zcM.js → minimize-2-DwUgqXoR.js} +1 -1
  301. package/dist/web/assets/{monaco.contribution-Cly9Wt7L.js → monaco.contribution-BBLKjER5.js} +2 -2
  302. package/dist/web/assets/{monaco.contribution-omszXBEj.js → monaco.contribution-DBjvSu8p.js} +2 -2
  303. package/dist/web/assets/{monaco.contribution-DO10L0zW.js → monaco.contribution-DUWvjhIG.js} +2 -2
  304. package/dist/web/assets/{monaco.contribution-BJGj65F9.js → monaco.contribution-w0zfkYLX.js} +2 -2
  305. package/dist/web/assets/{monitor-BFVCcbxp.js → monitor-Ihu5LVYx.js} +1 -1
  306. package/dist/web/assets/{play-C469pVZq.js → play-D_YGCdxU.js} +1 -1
  307. package/dist/web/assets/{python-Dw0YcVy9.js → python-Q4OuoXYc.js} +1 -1
  308. package/dist/web/assets/{save-CtSjPydi.js → save-DJYUOhtD.js} +1 -1
  309. package/dist/web/assets/{square-BuImvLhT.js → square-DXtoCBNw.js} +1 -1
  310. package/dist/web/assets/{toggleHighContrast-DjCO9lIP.js → toggleHighContrast-CaNeuWVE.js} +1 -1
  311. package/dist/web/assets/{tsMode-BAOnxKd6.js → tsMode-CJnQ2wmM.js} +1 -1
  312. package/dist/web/assets/{upload-2JkFZo3h.js → upload-fCP3_OEO.js} +1 -1
  313. package/dist/web/assets/{useLocalAgentSchedules-BNqAisfS.js → useLocalAgentSchedules-BFoH_gwZ.js} +1 -1
  314. package/dist/web/assets/useProviderSettings-2eysgqiA.js +5 -0
  315. package/dist/web/assets/{useProviderSettings-CmL_BaxP.css → useProviderSettings-Cktvzinz.css} +1 -1
  316. package/dist/web/assets/{useSessionTurnCache-BHU2-Jmz.js → useSessionTurnCache-DLF5SPD-.js} +1 -1
  317. package/dist/web/assets/{wifi-off-CpOAH62M.js → wifi-off-DZoiFrRz.js} +1 -1
  318. package/dist/web/assets/{workers-0QvlA2T5.js → workers-D5nr74M-.js} +1 -1
  319. package/dist/web/assets/{yaml-BK3qxo7D.js → yaml-CwsoTJmk.js} +1 -1
  320. package/dist/web/index.html +2 -2
  321. package/docs/command-reference.md +22 -3
  322. package/docs/conversation-imports.md +57 -0
  323. package/package.json +1 -1
  324. package/dist/chunks/app-server-harness-services-QMUOEYOA.js +0 -2
  325. package/dist/chunks/app-server-runtime-ISGGLQHU.js +0 -2
  326. package/dist/chunks/apps-BKTOR4F7.js +0 -2
  327. package/dist/chunks/chunk-3VUATFZD.js +0 -2
  328. package/dist/chunks/chunk-3Z47M3YY.js +0 -2
  329. package/dist/chunks/chunk-6UDGARFC.js +0 -143
  330. package/dist/chunks/chunk-FV2R5RUN.js +0 -3
  331. package/dist/chunks/chunk-HY3GOBFJ.js +0 -58
  332. package/dist/chunks/chunk-I3HZKJB3.js +0 -2
  333. package/dist/chunks/chunk-I3VVWNUW.js +0 -5
  334. package/dist/chunks/chunk-KG325WTN.js +0 -2
  335. package/dist/chunks/chunk-Q5LEXXJG.js +0 -16
  336. package/dist/chunks/chunk-QDC4OW3S.js +0 -2
  337. package/dist/chunks/chunk-SDAUS5PY.js +0 -2
  338. package/dist/chunks/chunk-VRIEKBBH.js +0 -9
  339. package/dist/chunks/chunk-WJ43MJ3F.js +0 -2
  340. package/dist/chunks/chunk-X2HIHF2I.js +0 -2
  341. package/dist/chunks/chunk-YBT2NB32.js +0 -2
  342. package/dist/chunks/chunk-ZTNHW2K7.js +0 -10
  343. package/dist/chunks/cli-XZENDZ7Z.js +0 -2
  344. package/dist/chunks/configuration-command-6C5UO7GE.js +0 -2
  345. package/dist/chunks/connected-app-executor-LQNIU5NR.js +0 -2
  346. package/dist/chunks/connected-evidence-GH2ATNEX.js +0 -2
  347. package/dist/chunks/connection-HTF6CC7M.js +0 -2
  348. package/dist/chunks/core-commands-A2DGGIPS.js +0 -2
  349. package/dist/chunks/datasets-7BNMVJOY.js +0 -2
  350. package/dist/chunks/desktop-test-3CUHVLXV.js +0 -3
  351. package/dist/chunks/dist-ZVJPJLXR.js +0 -2
  352. package/dist/chunks/evaluation-coordination-XEF5L7KZ.js +0 -2
  353. package/dist/chunks/experiment-improvements-KRX2DP27.js +0 -2
  354. package/dist/chunks/experiments-DFGQYA4O.js +0 -2
  355. package/dist/chunks/help-S7THC6IE.js +0 -8
  356. package/dist/chunks/host-profile-evaluation-tools-JOFBL5OF.js +0 -2
  357. package/dist/chunks/host-profile-external-dataset-K3ICDHIP.js +0 -2
  358. package/dist/chunks/hosted-app-server-composition-T5IWGOTA.js +0 -2
  359. package/dist/chunks/hosted-harness-runtime-YCKB6NBI.js +0 -2
  360. package/dist/chunks/hosted-profile-compiler-IYLLHCRY.js +0 -2
  361. package/dist/chunks/hosted-profile-evaluation-control-TJVER3NW.js +0 -2
  362. package/dist/chunks/human-review-WR777ODH.js +0 -2
  363. package/dist/chunks/import-MLZUHITH.js +0 -4
  364. package/dist/chunks/local-harness-improvement-runtime-QRFGPFRM.js +0 -2
  365. package/dist/chunks/local-harness-taskset-review-HR7KLY4B.js +0 -2
  366. package/dist/chunks/opchat-T4QTNEIY.js +0 -3
  367. package/dist/chunks/organizations-75L5DZDV.js +0 -2
  368. package/dist/chunks/project-action-payload-JDS6OQAW.js +0 -2
  369. package/dist/chunks/project-agent-6RRO233B.js +0 -2
  370. package/dist/chunks/refiner-profile-service-FDTQKY33.js +0 -2
  371. package/dist/chunks/sandbox-command-IU5XFTJP.js +0 -2
  372. package/dist/chunks/saved-work-SHEEDZ6Z.js +0 -2
  373. package/dist/chunks/standalone-experiment-turn-owner-JCY5LL5R.js +0 -2
  374. package/dist/chunks/store-harness-workspaces-XUM4Z66X.js +0 -2
  375. package/dist/chunks/store-learned-preference-migration-validation-NADPXOTG.js +0 -2
  376. package/dist/chunks/store-learning-WLG6KFIO.js +0 -2
  377. package/dist/chunks/web-search-CZ3NCLPY.js +0 -2
  378. package/dist/web/assets/App-s-CJswyt.js +0 -154
  379. package/dist/web/assets/AppsView-BYE5EBDJ.js +0 -1
  380. package/dist/web/assets/ComposerCreateImproveStrip-CEgh4OtN.js +0 -1
  381. package/dist/web/assets/LabSkillSidebar-BxffN-pN.js +0 -1
  382. package/dist/web/assets/MainChatThread-DZpcFRFl.js +0 -2
  383. package/dist/web/assets/MainPane-5DTtwVCk.js +0 -65
  384. package/dist/web/assets/OutputsPage-Cr1Spf7S.js +0 -1
  385. package/dist/web/assets/RightChatPanelStack-T6VRWuHo.js +0 -1
  386. package/dist/web/assets/SettingsView-Dulr_xlq.css +0 -1
  387. package/dist/web/assets/TrainingCreationPanel-BXHfohNm.js +0 -1
  388. package/dist/web/assets/index-3iPNbbER.css +0 -1
  389. package/dist/web/assets/useProviderSettings-C4L4wDoh.js +0 -5
@@ -1,2 +1,2 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{m as c}from"./chunk-QL4OIPEZ.js";import{a as i}from"./chunk-FTQLQJQV.js";import{access as k,readFile as m}from"node:fs/promises";import{createHash as d}from"node:crypto";import o from"node:path";import{fileURLToPath as g}from"node:url";var a="openpond-taskset-authoring",u="artifact.json",h=o.dirname(g(import.meta.url));async function P(e=process.cwd()){return(await p(e)).bundle}i(P,"loadTasksetAuthoringSkillBundle");async function p(e=process.cwd()){let s=await f(e),t=JSON.parse(await m(o.join(s,u),"utf8"));if(t.schemaVersion!==1||t.skillName!==a||!t.artifactVersion||!t.bundle||!/^[a-f0-9]{64}$/.test(t.contentHash))throw new Error("Bundled Taskset Authoring artifact is invalid.");let{contentHash:r,...n}=t;if(d("sha256").update(JSON.stringify(n)).digest("hex")!==r)throw new Error("Bundled Taskset Authoring artifact hash does not match.");for(let l of t.files)if(d("sha256").update(l.contents).digest("hex")!==l.sha256)throw new Error(`Bundled Taskset Authoring file hash does not match: ${l.path}`);return t}i(p,"loadTasksetAuthoringSkillArtifact");async function S(e=process.cwd()){let s=await f(e),t=await p(e),r=t.bundle,n=c[0];return{...n,path:o.join(s,"SKILL.md"),sourcePath:s,charCount:r.length,sourceHash:t.contentHash,validationMessages:[...n.validationMessages],resourceFiles:[...n.resourceFiles]}}i(S,"loadTasksetAuthoringProfileSkill");async function O(e=process.cwd()){let s=await S(e),t=await P(e);return{name:s.name,description:s.description,body:t,path:s.path,sourceHash:s.sourceHash,charCount:s.charCount,packagePath:s.sourcePath,resourceFiles:s.resourceFiles}}i(O,"readTasksetAuthoringProfileSkill");async function f(e=process.cwd(),s=process.execPath){let t=[process.env.OPENPOND_TASKSET_AUTHORING_SKILL_ROOT,o.resolve(e,"apps","cli","skills",a),o.resolve(e,"dist","skills",a),o.resolve(o.dirname(s),"skills",a),o.resolve(h,"skills",a),o.resolve(h,"..","skills",a)].filter(r=>!!r);for(let r of t)if(await k(o.join(r,u)).then(()=>!0,()=>!1))return r;throw new Error(`Bundled Taskset Authoring skill was not found. Checked: ${t.join(", ")}`)}i(f,"resolveTasksetAuthoringSkillRoot");export{p as a,S as b,O as c};
2
+ import{m as c}from"./chunk-ZR7LIMJS.js";import{a as i}from"./chunk-FTQLQJQV.js";import{access as k,readFile as m}from"node:fs/promises";import{createHash as d}from"node:crypto";import o from"node:path";import{fileURLToPath as g}from"node:url";var a="openpond-taskset-authoring",u="artifact.json",h=o.dirname(g(import.meta.url));async function P(e=process.cwd()){return(await p(e)).bundle}i(P,"loadTasksetAuthoringSkillBundle");async function p(e=process.cwd()){let s=await f(e),t=JSON.parse(await m(o.join(s,u),"utf8"));if(t.schemaVersion!==1||t.skillName!==a||!t.artifactVersion||!t.bundle||!/^[a-f0-9]{64}$/.test(t.contentHash))throw new Error("Bundled Taskset Authoring artifact is invalid.");let{contentHash:r,...n}=t;if(d("sha256").update(JSON.stringify(n)).digest("hex")!==r)throw new Error("Bundled Taskset Authoring artifact hash does not match.");for(let l of t.files)if(d("sha256").update(l.contents).digest("hex")!==l.sha256)throw new Error(`Bundled Taskset Authoring file hash does not match: ${l.path}`);return t}i(p,"loadTasksetAuthoringSkillArtifact");async function S(e=process.cwd()){let s=await f(e),t=await p(e),r=t.bundle,n=c[0];return{...n,path:o.join(s,"SKILL.md"),sourcePath:s,charCount:r.length,sourceHash:t.contentHash,validationMessages:[...n.validationMessages],resourceFiles:[...n.resourceFiles]}}i(S,"loadTasksetAuthoringProfileSkill");async function O(e=process.cwd()){let s=await S(e),t=await P(e);return{name:s.name,description:s.description,body:t,path:s.path,sourceHash:s.sourceHash,charCount:s.charCount,packagePath:s.sourcePath,resourceFiles:s.resourceFiles}}i(O,"readTasksetAuthoringProfileSkill");async function f(e=process.cwd(),s=process.execPath){let t=[process.env.OPENPOND_TASKSET_AUTHORING_SKILL_ROOT,o.resolve(e,"apps","cli","skills",a),o.resolve(e,"dist","skills",a),o.resolve(o.dirname(s),"skills",a),o.resolve(h,"skills",a),o.resolve(h,"..","skills",a)].filter(r=>!!r);for(let r of t)if(await k(o.join(r,u)).then(()=>!0,()=>!1))return r;throw new Error(`Bundled Taskset Authoring skill was not found. Checked: ${t.join(", ")}`)}i(f,"resolveTasksetAuthoringSkillRoot");export{p as a,S as b,O as c};
@@ -1,2 +1,2 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{A as me,B as Ye,D as Qe,k as Z,n as de,q as We,r as Ke,u as Je,v as Xe}from"./chunk-FTEOCCPB.js";import{C as je,Eb as Ue,F as Ve,Fb as we,Gb as Ze,Ib as Re,Kb as et,L as $e,Mb as tt,N as qe,P as Fe,U as Le,W as Oe,X as ce,a as Ae,aa as ze,c as Ce,ca as W,d as G,da as K,e as oe,ea as ke,fa as Ge,ga as Ne,ka as Q,la as D,ma as J,ua as $,xa as U}from"./chunk-25MBPJVY.js";import{g as ie,k as N,l as p}from"./chunk-WN3V6KDN.js";import{l as De}from"./chunk-APB2STJK.js";import{ha as _e,ja as Be}from"./chunk-Y4OWBBDD.js";import{B as re,D as Ee,N as k,O as V,P as E,Q as Pe,b as se,ba as z,d as ae,lb as ve,mb as ge,n as O,nb as Me,o as X,r as F,v as ne,y as Y}from"./chunk-VYLGI3IH.js";import{Ea as Se,Ia as xe,Ja as ye,Ka as He,La as Ie,h as A,qa as te}from"./chunk-ACYFMLWG.js";import{b as w}from"./chunk-ES2ISFJC.js";import{a as S}from"./chunk-FTQLQJQV.js";var le=X.shape.id,st=w.object({schemaVersion:w.literal("openpond.modelBatchReviewInspection.v1"),packageHash:w.string().regex(/^[a-f0-9]{64}$/),definition:F,binding:Se,evidence:w.array(Y).min(1).max(1e4),decisions:w.array(Ee).min(1).max(1e4)}).strict(),be=w.object({schemaVersion:w.literal("openpond.modelBatchReviewRequest.v1"),operationId:le,modelId:le,expectedModelRevision:w.number().int().positive(),tasksetRef:X,rewardBindingRef:X.nullable(),definition:w.object({name:w.string().trim().min(1).max(500).optional(),instructions:w.string().trim().min(1).max(2e4).optional(),inputSchema:O.optional(),outputSchema:O.optional(),requiredOutputs:F.shape.requiredOutputs}).strict(),examples:w.array(w.object({evidence:X,input:O.optional(),expected:O.nullable().optional(),evaluatorContext:O.nullable().optional(),proposedTarget:O.nullable().optional()}).strict()).max(1e4)}).strict(),at=w.object({schemaVersion:w.literal("openpond.modelBatchReviewReceipt.v1"),operationId:le,modelId:le,source:ne,evidence:w.array(Y).min(1).max(1e4),proposals:w.array(re).max(1e4)}).strict();function mt(s){let e=D(s.source),t=D(s.edited),a=s.preparation;if(a.authoringGraph!=="bound"||!e.modelResources||e.learningResources||t.modelResources||t.learningResources)throw new Error("Bound task editing requires its source Reward and an ordinary edited workspace.");if(e.contentHash!==a.sourcePackageHash||!V(k(e.taskset),a.sourceTasksetRef))throw new Error("Bound draft differs from its retained source package.");let n=S(x=>x.taskset.graders.map(j=>j.kind==="custom_verifier"?{...j,exportName:j.exportName??"verify"}:j),"normalizedGraders");if(p(n(e))!==p(n(t)))throw new Error("Edit the saved Reward in Rewards before changing this Taskset's graders.");let c=e.modelResources,m=new Map(c.assets.map(x=>[x.id,x])),h=K(t),b=K(e),u=S(x=>{let{id:j,revision:fe,contentHash:ue,metadata:he,...dt}=x,{javascriptEnvironment:bt,...Te}=he;return{...dt,metadata:{...Te,resources:Te.resources??[]}}},"environmentContent"),i=S(x=>{if(!x)return null;let{id:j,revision:fe,contentHash:ue,...he}=x.execution.javascript;return he},"javascriptContent"),R=p(u(e.environment))===p(u(t.environment))&&p(i(b))===p(i(h)),d=R?e.environment:t.environment,f=R?b:h,l=new Set([...c.assets.map(x=>x.id),...t.taskset.tasks.flatMap(x=>x.privilegedContextRef?[x.privilegedContextRef]:[]),...[t.environment.actionSchemaRef,t.environment.observationSchemaRef,t.environment.stateSchemaRef].flatMap(x=>x?[x.id]:[]),...h?.assets.map(x=>x.id)??[]]);for(let x of l){let j=t.files.find(ue=>ue.asset.id===x);if(!j)throw new Error(`Bound Taskset asset is missing: ${x}.`);let fe=new TextDecoder("utf-8",{fatal:!0}).decode(W(j));m.set(x,se.parse(E({schemaVersion:"openpond.learningTextAsset.v1",id:x,revision:1,asset:j.asset,text:fe})))}let I=Q(t),{contentHash:P,..._}=c.taskDefinition,{policy:g,environment:y,environmentRelease:C,tools:q,capabilities:r,verifierSetRelease:v}=t.taskset,T=F.parse(E({..._,instructions:I,execution:{policy:g,environment:y,environmentRelease:C,tools:q,capabilities:r,verifierSetRelease:v}})),{contentHash:M,...o}=t.taskset,H=te.parse(E({...o,tasks:t.taskset.tasks.map(x=>c.instructionMode==="per_task"?x:{...x,policyVisibleContext:{...x.policyVisibleContext,instructions:I}})})),B=ce({owner:a.lineage.owner,source:{...c,taskset:e.taskset,executionResources:{environment:e.environment,verifierSet:e.verifierSet}},rewardBinding:c.rewardBinding,rewards:c.rewards,assets:[...m.values()],edits:{taskset:H,taskDefinition:T,executionResources:{environment:d,verifierSet:t.verifierSet},...f?{execution:f.execution}:{}}}),L=Le.parse(B.taskset.metadata.modelTasksetDerivation);if(B.taskset.id!==a.tasksetId||B.taskset.revision!==a.tasksetRevision||p({...L,schemaVersion:a.lineage.schemaVersion})!==p(a.lineage))throw new Error("Bound draft differs from its retained ownership lineage.");let{taskset:pe,executionResources:it,...ct}=B;return J({schemaVersion:"openpond.tasksetPackage.v1",taskset:pe,...it,modelResources:ct,files:t.files})}S(mt,"publishBoundModelTasksetDraftPackage");function Vt(s){let e=Ce.parse(s.request),t=Ae.parse(s.owner),a=D(s.source);if(a.learningResources)throw new Error("Reviewed Tasksets require their reviewed authoring workflow.");if(a.contentHash!==e.sourcePackageHash)throw new Error("Taskset draft source package changed.");if(a.modelResources){let b=Oe({owner:t,source:{...a.modelResources,taskset:a.taskset,executionResources:{environment:a.environment,verifierSet:a.verifierSet}},rewardBinding:a.modelResources.rewardBinding,rewards:a.modelResources.rewards,assets:a.modelResources.assets}),u=b.taskset.metadata.modelTasksetDerivation;return G.parse({schemaVersion:"openpond.modelTasksetDraftPreparation.v1",draftId:`model-taskset-draft-${p({owner:t,operationId:e.operationId})}`,requestHash:p(e),sourcePackageHash:a.contentHash,sourceTasksetRef:k(a.taskset),tasksetId:b.taskset.id,tasksetRevision:b.taskset.revision,lineage:{...u,schemaVersion:"openpond.modelTasksetAuthoring.v1"},authoringGraph:"bound"})}let n=Ne(a.taskset),c=n&&p(n.owner)===p(t),m=c?n.root:k(a.taskset),h={schemaVersion:"openpond.modelTasksetAuthoring.v1",owner:t,root:m,parent:k(a.taskset)};return G.parse({schemaVersion:"openpond.modelTasksetDraftPreparation.v1",draftId:`model-taskset-draft-${p({owner:t,operationId:e.operationId})}`,requestHash:p(e),sourcePackageHash:a.contentHash,sourceTasksetRef:k(a.taskset),tasksetId:Ge(h),tasksetRevision:c?a.taskset.revision+1:1,lineage:h})}S(Vt,"prepareModelTasksetDraft");function lt(s){let e=G.parse(s.preparation);if(!V(e.sourceTasksetRef,e.lineage.parent))throw new Error("Taskset draft preparation differs from its source lineage.");if(e.authoringGraph==="bound"){if(!s.source)throw new Error("Bound Taskset authoring requires its retained source package.");return mt({preparation:e,source:s.source,edited:s.edited})}let t=pt(s.edited),{contentHash:a,...n}=t.verifierSet,c=Be({...n,id:`${e.tasksetId}-verifiers`,revision:e.tasksetRevision,calibrationReceiptRefs:[],metadata:{sourceVerifierSet:k(t.verifierSet)}}),{contentHash:m,...h}=t.taskset,b=te.parse(E({...h,id:e.tasksetId,revision:e.tasksetRevision,verifierSetRelease:{id:c.id,contentHash:c.contentHash},metadata:{modelTasksetAuthoring:e.lineage,...t.taskset.metadata.environmentResources===void 0?{}:{environmentResources:t.taskset.metadata.environmentResources},...t.taskset.metadata.ordinaryAuthoring===void 0?{}:{ordinaryAuthoring:t.taskset.metadata.ordinaryAuthoring}}})),u=K(t),i=u?[...t.files.filter(R=>R.asset.id!==Fe(t.taskset)),ke({...u.execution,verifierSet:c})]:t.files;return J({schemaVersion:"openpond.tasksetPackage.v1",taskset:b,environment:t.environment,verifierSet:c,files:i})}S(lt,"publishModelTasksetDraftPackage");function pt(s){let e=D(s);if(e.modelResources||e.learningResources)throw new Error("This Taskset requires its bound or reviewed authoring workflow.");return e}S(pt,"requireOrdinaryPackage");function ft(s,e,t,a){if(s.environment.entrypoint!=="openpond.javascript-environment.v1")return{taskset:s,inventory:t,generatedFiles:[]};let n="environment/execution.json",c=e.get(n);if(!c||c.length>524288)throw new Error("Authored tool environment requires its bounded private execution declaration.");let m=qe.parse(JSON.parse(new TextDecoder("utf-8",{fatal:!0}).decode(c))),h=S(_=>{if(!_)return null;let g=t.find(y=>y.asset.id===_.id&&y.asset.path===_.path);if(!g)throw new Error(`Authored environment dependency is missing: ${_.id}.`);return g.asset},"repin"),{contentHash:b,...u}=m.javascript,i=De.parse(E({...u,id:`javascript-${s.id}`,revision:s.revision,module:h(m.javascript.module)}));if(p(i.tools)!==p(s.environment.metadata.portableTools)||p(i.tools.map(_=>_.name))!==p(s.environment.toolNames))throw new Error("Authored environment tools differ from the Taskset's declared tools.");let R=_e({schemaVersion:"openpond.environmentRelease.v1",id:`environment-${s.id}`,revision:s.revision,contract:et(s),actionSchemaRef:h(m.environment.actionSchemaRef),observationSchemaRef:h(m.environment.observationSchemaRef),stateSchemaRef:h(m.environment.stateSchemaRef),artifactCollection:m.environment.artifactCollection,adapterConformanceHashes:{},metadata:{javascriptEnvironment:k(i),resources:s.environment.resources??[]}}),d=$.parse({...s,environment:{...s.environment,metadata:{...s.environment.metadata,portableExecutionResources:{environment:R}}}}),f=Re({taskset:d,adapterId:a}),l=ke({javascript:i,environment:R,verifierSet:f.verifierSetRelease}),I=[...t.filter(_=>_.sourcePath!==n),{asset:l.asset,sourcePath:n}],P=$.parse({...d,metadata:{...d.metadata,portableFileInventory:I}});return{taskset:$.parse({...P,contentHash:U(P)}),inventory:I,generatedFiles:[{path:n,role:"environment",content:new TextDecoder().decode(W(l))}]}}S(ft,"prepareAuthoredToolEnvironment");var ee=w.array(w.object({asset:ie,sourcePath:w.string().min(1)}).strict()).max(1e4),ut=new Set(["taskset.json","capabilities.json","data/tasks.jsonl","graders/graders.json","fixtures/grader-fixtures.json","environment/taskset.ts"]);function ht(s){return ut.has(s)}S(ht,"isGeneratedTasksetPublicationFilePath");function vt(s,e,t){let a=$.parse(s);if(a.metadata.taskDefinition!==void 0||a.metadata.rewardBinding!==void 0)return{taskset:a,generatedFiles:[]};let n=new Map,c=0;for(let[r,v]of e){if(oe.parse(r),c+=v.byteLength,n.size>=1e4||c>ze*3/4)throw new Error("Taskset source exceeds the package byte limit.");n.set(r,v.slice())}let m=a.metrics?.customAggregator,h=m?n.get(m.module):void 0;if(m&&!h)throw new Error("Declared Taskset metric module is missing.");let b=m&&h?{...a.metrics,customAggregator:{...m,contentHash:N(h)}}:a.metrics,u=new Map,i=new Set,R=[],d=S((r,v,T,M)=>{let o=n.get(v);if(!o)throw new Error(`Declared Taskset file is missing: ${v}.`);return{id:r,path:v,contentHash:N(o),sizeBytes:o.byteLength,mediaType:T,visibility:M}},"ref"),f=S((r,v=r.path)=>{let T=u.get(r.id);if(T&&p(T)!==p({asset:r,sourcePath:v}))throw new Error(`Conflicting Taskset file identity: ${r.id}.`);let M=n.get(v);if(!M||M.length!==r.sizeBytes||N(M)!==r.contentHash)throw new Error(`Taskset file differs from its declared bytes: ${r.id}.`);u.set(r.id,{asset:r,sourcePath:v}),i.add(v)},"add");for(let r of a.tasks){let v=tt(r);for(let T of v.artifactRefs)f(T,r.assets?.find(M=>M.id===T.id)?.artifactRef??T.path);for(let T of v.requiredOutputs??[])T.schemaRef&&f(T.schemaRef)}for(let r of a.environment.resources??[])f(d(r.id,r.path,r.mediaType??"application/octet-stream",r.visibility==="policy_visible"?"policy":"host_private"));let l=a.graders.map(r=>{if(r.kind==="custom_verifier"){let v=d(`verifier-${r.id}`,r.module,"application/javascript","host_private"),T=ie.safeParse(r.metadata.portableVerifierRef);return T.success&&T.data.contentHash===v.contentHash&&T.data.sizeBytes===v.sizeBytes&&(v=T.data),f(v,r.module),{...r,metadata:{...r.metadata,portableVerifierRef:v}}}if(r.kind==="human"||r.kind==="model_judge"){let v=new TextEncoder().encode(r.rubric),T=`graders/rubric-${N(v)}.md`;n.set(T,v);let M=d(`rubric-${r.id}`,T,"text/markdown","verifier"),o=ie.safeParse(r.metadata.portableRubricRef);if(o.success&&o.data.contentHash===M.contentHash&&o.data.sizeBytes===M.sizeBytes){if(o.data.visibility==="policy")throw new Error("A grader rubric cannot become policy-visible.");M=o.data}return f(M,T),R.push({path:T,role:"verifier",content:r.rubric}),{...r,metadata:{...r.metadata,portableRubricRef:M}}}return r});m&&![...u.values()].some(r=>r.asset.path===m.module&&r.sourcePath===m.module&&r.asset.visibility!=="policy")&&f(d(`metric-${p(m.module)}`,m.module,"application/javascript","host_private"));let I=ee.parse(a.metadata.portableFileInventory??[]);for(let r of[...n.keys()].sort())if(!i.has(r)){let v=I.find(T=>T.sourcePath===r&&!u.has(T.asset.id));f(v?{...d(v.asset.id,r,v.asset.mediaType,v.asset.visibility),path:v.asset.path}:d(`taskset-file-${p(r)}`,r,"application/octet-stream","host_private"),r)}let{importedPackageHash:P,derivedPortableMetadata:_,...g}=a.metadata,y={...a.environment.metadata};if(y.portableExecutionResources!==void 0){let r=w.object({environment:w.unknown(),verifierSet:w.unknown().optional()}).parse(y.portableExecutionResources);y.portableExecutionResources={environment:r.environment}}let C=$.parse({...a,graders:l,metrics:b,environment:{...a.environment,metadata:y},metadata:{...g,...P===void 0?{}:{sourceImportedPackageHash:P},portableFileInventory:ee.parse([...u.values()].sort((r,v)=>r.asset.id.localeCompare(v.asset.id)))}}),q=ft(C,n,[...u.values()],t);return{taskset:$.parse({...q.taskset,contentHash:U(q.taskset)}),generatedFiles:[...R,...q.generatedFiles]}}S(vt,"prepareAuthoredTasksetSource");function gt(s){let e=Xe(s.workspace),t=s.preparation===null?null:G.parse(s.preparation);if(t?e.draft.id!==t.draftId||e.draft.modelScope?.modelId!==t.lineage.owner.modelId||e.draft.profileId!==t.lineage.owner.scopeId||p(e.draft.modelScope?.source??null)!==p(t):e.draft.modelScope?.source!==void 0)throw new Error("Taskset draft differs from its retained source preparation.");let a=Qe({draft:e.draft,now:e.draft.updatedAt,sourcePackageHash:e.contentHash}),n=new Map(e.files.map(u=>[u.path,me(u)]));for(let[u,i]of Ke(e.draft))ht(u)||n.set(u,new TextEncoder().encode(i));let c=vt(a,n,s.adapterId);for(let u of c.generatedFiles)n.set(u.path,new TextEncoder().encode(u.content));let m=Re({taskset:c.taskset,adapterId:s.adapterId}),h=ee.parse(c.taskset.metadata.portableFileInventory),b=J({schemaVersion:"openpond.tasksetPackage.v1",taskset:m.tasksetRelease,environment:m.environmentRelease,verifierSet:m.verifierSetRelease,files:h.map(u=>{let i=n.get(u.sourcePath);if(!i)throw new Error(`Captured Taskset file is missing: ${u.sourcePath}.`);return{asset:u.asset,base64:Buffer.from(i).toString("base64")}})});return t?lt({preparation:t,edited:b,source:s.source}):b}S(gt,"compileTasksetDraftWorkspace");function Ot(s){if(!s.workspace.draft.modelScope)throw new Error("Taskset draft requires a Model owner.");return gt(s)}S(Ot,"compileModelTasksetDraftWorkspace");function es(s){let e=D(s.source);if(e.modelResources||e.learningResources)throw new Error("Binding an ordinary Reward requires an ordinary source package.");let t=Q(e);if(!t.trim())throw new Error("Add collection instructions before selecting a saved Reward.");let a=new Map,n=K(e);for(let g of n?.assets??[])a.set(g.id,g);let c=new Set([...e.taskset.tasks.flatMap(g=>g.privilegedContextRef?[g.privilegedContextRef]:[]),...[e.environment.actionSchemaRef,e.environment.observationSchemaRef,e.environment.stateSchemaRef].flatMap(g=>g?[g.id]:[])]);for(let g of c){if(a.has(g))continue;let y=e.files.find(q=>q.asset.id===g);if(!y)throw new Error(`Source Taskset context is missing: ${g}.`);let C=new TextDecoder("utf-8",{fatal:!0}).decode(W(y));a.set(g,se.parse(E({schemaVersion:"openpond.learningTextAsset.v1",id:g,revision:1,asset:y.asset,text:C})))}for(let g of s.assets){let y=e.files.find(C=>C.asset.id===g.id);if(y&&E({asset:y.asset}).contentHash!==E({asset:g.asset}).contentHash)throw new Error(`Selected Reward conflicts with a source asset: ${g.id}.`);a.set(g.id,g)}let{policy:m,environment:h,environmentRelease:b,tools:u,capabilities:i,verifierSetRelease:R}=e.taskset,d=F.parse(E({schemaVersion:"openpond.taskDefinition.v1",id:`${e.taskset.id}-definition`,revision:1,name:e.taskset.id,description:"",instructions:t,category:"custom",familyNamespace:e.taskset.id,inputSchema:{type:"object"},outputSchema:{type:"object"},rewardBinding:k(s.rewardBinding),harness:null,execution:{policy:m,environment:h,environmentRelease:b,tools:u,capabilities:i,verifierSetRelease:R}})),f=ce({...s,assets:[...a.values()],source:{taskset:e.taskset,taskDefinition:d,instructionMode:"per_task",executionResources:{environment:e.environment,verifierSet:e.verifierSet},...n?{execution:n.execution}:{}}}),l=new Map(e.files.map(g=>[g.asset.id,g]));for(let g of f.assets){let y="";for(let C of new TextEncoder().encode(g.text))y+=String.fromCharCode(C);l.set(g.id,{asset:g.asset,base64:btoa(y)})}let{taskset:I,executionResources:P,..._}=f;return J({schemaVersion:"openpond.tasksetPackage.v1",taskset:I,...P,modelResources:_,files:[...l.values()]})}S(es,"bindOrdinaryModelTasksetReward");function kt(s){let{request:e,package:t}=s,a=t.learningResources;if(!a)throw new A("model_review_batch_required",422);let n=z(t.taskset),c=`model-review-${p([s.scope,e.modelId,e.operationId])}`,m=new Map(e.examples.map(o=>[p(o.evidence),o])),h=new Set(a.evidence.map(o=>p(k(o)))),b=new Map(a.decisions.map(o=>[p(o.evidence),o]));if(m.size!==e.examples.length||e.examples.some(o=>!h.has(p(o.evidence))))throw new A("model_review_evidence_mismatch",409);for(let o of[s.binding,...s.rewards,...s.assets])Pe(o);He(s.binding,s.rewards);let u=new Map;for(let o of s.binding.sources){let H=s.rewards.find(pe=>V(k(pe),o.reward)),{contentHash:B,...L}=H;u.set(H.contentHash,xe({...L,id:`${c}-reward-${H.contentHash}`,revision:1}))}let i=[...u.values()],{contentHash:R,recipeRef:d,...f}=s.binding,l=ye({...f,id:`${c}-binding`,revision:1,sources:s.binding.sources.map(o=>({...o,reward:k(u.get(o.reward.contentHash))}))},i),I=i.flatMap(o=>[...o.assets,..."verifierRef"in o.implementation?[o.implementation.verifierRef]:[],..."rubricRef"in o.implementation?[o.implementation.rubricRef]:[],..."inputContract"in o.implementation?[o.implementation.inputContract]:[]]),P=[...new Map(I.map(o=>{let H=s.assets.find(B=>B.id===o.id);if(!H)throw new A("model_review_reward_asset_missing",422);if(ae(H,o),o.visibility==="policy")throw new A("reward_asset_visibility_invalid",422);return[H.id,H]})).values()],{environmentRelease:_,verifierSetRelease:g,...y}=n.definition.execution,{contentHash:C,...q}=n.definition,r=F.parse(E({...q,...e.definition,id:`${c}-definition`,revision:1,rewardBinding:k(l),execution:{...y,policy:{...y.policy,hiddenGraderRefs:Ie(l,i).filter(o=>o.privileged).map(o=>o.id)}}})),v=ne.parse(E({schemaVersion:"openpond.learningSource.v1",id:c,revision:1,name:`${r.name} review`,kind:"direct",taskDefinition:k(r),enabled:!0,allowedSplits:[...new Set(a.evidence.map(o=>o.submission.split))],mapping:null,adapterVersion:null,reviewOrigin:{modelId:e.modelId,packageHash:t.contentHash,taskset:k(t.taskset),batch:k(a.batch),rewardBinding:k(s.binding)}})),T=a.evidence.map(o=>{let H=m.get(p(k(o))),B=`review-${o.contentHash}`,L=p({instructions:r.instructions,inputSchema:r.inputSchema,outputSchema:r.outputSchema,requiredOutputs:r.requiredOutputs??[],input:H?.input??o.submission.input})!==p({instructions:n.definition.instructions,inputSchema:n.definition.inputSchema,outputSchema:n.definition.outputSchema,requiredOutputs:n.definition.requiredOutputs??[],input:o.submission.input});return Y.parse(E({schemaVersion:"openpond.taskEvidence.v1",id:Me(v.id,o.submission.exampleId,B),revision:1,source:k(v),submission:{...o.submission,sourceId:v.id,taskDefinition:k(r),attemptId:B,observedOutput:L?null:o.submission.observedOutput,idempotencyKey:`${c}-${o.contentHash}`,...H?.input===void 0?{}:{input:H.input},...H?.expected===void 0?{}:{expected:H.expected},...H?.evaluatorContext===void 0?{}:{evaluatorContext:H.evaluatorContext}},supersedes:k(o),correctionFeedbackId:null,receivedAt:s.now}))}),M=T.flatMap(o=>{let H=m.get(p(o.supersedes)),B=b.get(p(o.supersedes)),L=H?.proposedTarget===void 0?B.approvedTarget:H.proposedTarget;return L===null?[]:[re.parse({schemaVersion:"openpond.taskFeedbackRecord.v1",id:`feedback-${p([c,o.id])}`,revision:1,submission:{schemaVersion:"openpond.taskFeedback.v1",sourceId:v.id,idempotencyKey:`${c}-${o.id}`,exampleId:o.submission.exampleId,attemptId:o.submission.attemptId,expectedEvidenceHash:o.contentHash,occurredAt:s.now,kind:"target_correction",value:L,note:"Proposed target for the revised task. Grade and review before admission."},status:"pending_review",evidence:k(o),createdAt:s.now,review:null})]});return{source:v,definition:r,binding:l,rewards:i,assets:P,evidence:T,proposals:M}}S(kt,"prepareModelBatchReview");var nt=S(s=>`model-batch-review-${p([s.modelId,s.operationId])}`,"operation");function rs(s){let e=D(s);if(!e.learningResources)throw new A("model_review_batch_required",422);let t=z(e.taskset);return st.parse({schemaVersion:"openpond.modelBatchReviewInspection.v1",packageHash:e.contentHash,definition:t.definition,binding:t.binding,evidence:e.learningResources.evidence,decisions:e.learningResources.decisions})}S(rs,"inspectModelBatchPackage");async function wt(s,e){let t=be.parse(e),a=await s.operation(nt(t));if(!a)return null;if(a.requestHash!==p(t))throw new A("learning_idempotency_conflict",409);return rt(s,t,a.resources)}S(wt,"findModelBatchReview");async function os(s,e){let t=be.parse(e.request),a=await wt(s,t);if(a)return a;let n=D(e.package);if(!n.learningResources)throw new A("model_review_batch_required",422);let c=z(n.taskset),m=t.rewardBindingRef,h=!m||V(m,k(c.binding)),b=h?c.binding:await ge(s,"binding",m),u=h?c.rewards:await Promise.all(b.sources.map(l=>ge(s,"reward",l.reward))),i=new Set(u.flatMap(l=>[...l.assets,..."verifierRef"in l.implementation?[l.implementation.verifierRef]:[],..."rubricRef"in l.implementation?[l.implementation.rubricRef]:[],..."inputContract"in l.implementation?[l.implementation.inputContract]:[]]).map(l=>l.id)),R=h?n.learningResources.assets:await Promise.all([...i].map(l=>ve(s,"asset",l,1))),d=kt({...e,request:t,package:n,binding:b,rewards:u,assets:R}),f=[];for(let l of d.assets){let I=await s.get("asset",l.id,1);if(I&&I.contentHash!==l.contentHash)throw new A("model_review_asset_conflict",409);I||await s.put("asset",l,0)}for(let l of d.rewards)await s.put("reward",l,0);await s.put("binding",d.binding,0),await s.put("definition",d.definition,0),await s.put("source",d.source,0,{parentId:t.modelId}),f.push({kind:"source",id:d.source.id,revision:1});for(let l of d.evidence)await s.put("evidence",l,0,{parentId:d.source.id}),f.push({kind:"evidence",id:l.id,revision:1});for(let l of d.proposals)await s.put("feedback",l,0,{parentId:l.evidence.id,status:l.status}),f.push({kind:"feedback",id:l.id,revision:1});return await s.saveOperation(nt(t),{requestHash:p(t),resources:f}),rt(s,t,f)}S(os,"beginModelBatchReview");async function rt(s,e,t){let a=await Promise.all(t.map(n=>ve(s,n.kind,n.id,n.revision)));return at.parse({schemaVersion:"openpond.modelBatchReviewReceipt.v1",operationId:e.operationId,modelId:e.modelId,source:a.find(n=>n.schemaVersion==="openpond.learningSource.v1"),evidence:a.filter(n=>n.schemaVersion==="openpond.taskEvidence.v1"),proposals:a.filter(n=>n.schemaVersion==="openpond.taskFeedbackRecord.v1")})}S(rt,"readReceipt");function cs(s){let e=D(s.package),t=e.taskset,a=e.modelResources,n=e.learningResources?z(t):void 0,c=je.parse({schemaVersion:"openpond.uploadedFileDatasetSource.v1",kind:"uploaded_file",id:`package-source-${p({profileId:s.profileId,packageHash:e.contentHash})}`,profileId:s.profileId,title:s.name,sourceHash:e.contentHash,occurredAt:s.createdAt,licensingStatus:"pending",secretScanStatus:"pending",piiScanStatus:"pending",originalFileNames:["taskset-package.json"],mediaTypes:["application/json"],sourceFileHashes:[e.contentHash],totalBytes:new TextEncoder().encode(JSON.stringify(e)).byteLength,parserVersion:"openpond.tasksetPackage.v1",metadata:{}}),m=Ye({profileId:s.profileId,id:`${t.id}-import`,name:s.name,now:s.createdAt}),h=[];for(let d of t.graders)if(d.kind==="custom_verifier"){let f=a?.assets.find(P=>P.id===d.verifierRef.id),l=e.files.find(P=>P.asset.id===d.verifierRef.id);if(!l)throw new Error(`Imported verifier source is missing: ${d.id}.`);let I=Ze(d.verifierRef.contentHash);h.some(P=>P.path===I)||h.push({path:I,role:"verifier",content:f?ae(f,d.verifierRef):new TextDecoder("utf-8",{fatal:!0}).decode(W(l))})}let b=t.metadata.ordinaryAuthoring??t.metadata.starterAuthoring,u=$e.array().max(1e5).parse(b?.graderFixtures??[]),i=t.environment.kind==="text"?"chat":t.environment.kind==="custom_program"?"program":t.environment.kind,R=$.parse({schemaVersion:"openpond.taskset.v1",id:t.id,revision:t.revision,profileId:s.profileId,profileRelease:null,createImproveRunId:null,name:s.name,objective:Q(e),status:"needs_review",sourceRefs:[c],datasetArtifact:null,policy:t.policy,environment:{...m.environment,kind:i,entrypoint:t.environment.entrypoint,resources:Ve.array().max(1e4).parse(t.metadata.environmentResources??[]),stateful:t.environment.stateful,deterministicSeeds:t.environment.deterministicSeeds,toolNames:t.tools.map(d=>d.name),defaultTimeoutMs:t.environment.defaultTimeoutMs,networkPolicy:t.environment.networkPolicy,metadata:{runtimeSourceTasksetId:Rt(s.profileId,e.contentHash),portableEnvironment:t.environment,portableTools:t.tools,portableExecutionResources:{environment:e.environment,verifierSet:e.verifierSet}}},capabilities:{...m.capabilities,taskKind:i==="chat"?"chat":i==="program"?"custom_program":"single_agent",compatibleMethods:["none"],requiresTools:t.tools.length>0,requiresState:t.environment.stateful,rewardKinds:[...new Set(t.graders.map(d=>d.kind==="human"?"human":d.kind==="model_judge"?"model_judge":"deterministic"))]},tasks:t.tasks.map(d=>({...d,schemaVersion:"openpond.taskData.v1",sourceRefs:[c.id],assets:d.artifactRefs.map(f=>({id:f.id,sourceRefId:c.id,artifactRef:f.path,fileName:f.path.split("/").at(-1),mediaType:f.mediaType,sha256:f.contentHash,sizeBytes:f.sizeBytes,split:d.split,metadata:{portableAsset:f}})),...d.requiredOutputs?{requiredOutputs:d.requiredOutputs.map(f=>({...f,schemaRef:f.schemaRef?.id??null,maxBytes:f.maxBytes??void 0}))}:{},metadata:{portableTaskRecord:d,exampleOrigin:"imported"}})),graders:a?we(a.rewardBinding,a.rewards,a.assets):n?we(n.binding,n.rewards,e.learningResources.assets):Ue(e),graderFixtures:u,learningSignals:m.learningSignals,...t.metrics?{metrics:t.metrics}:{},authoringProvenance:{schemaVersion:"openpond.taskAuthoringProvenance.v1",model:null,modelConfig:{},skillHash:p("openpond-package-import-v1"),promptTemplateVersion:"package-import-v1",buildIntent:"discovery",buildSpecification:null,evidenceHashes:[e.contentHash],tasksetSdkVersion:"package-import-v1",sourceCommit:null,repairHistory:[],createdAt:s.createdAt},readiness:null,contentHash:"00000000",createdAt:s.createdAt,updatedAt:s.createdAt,metadata:{importedPackageHash:e.contentHash,tasksetOutputContract:t.metadata.tasksetOutputContract??null,...n?{learning:n}:{},portableFileInventory:e.files.map(d=>({asset:d.asset,sourcePath:d.asset.path})),...a?{taskDefinition:k(a.taskDefinition),rewardBinding:k(a.rewardBinding),rewardExecution:{binding:a.rewardBinding,rewards:a.rewards}}:{},portableCapabilities:t.capabilities,derivedPortableMetadata:t.metadata,...t.metadata.modelTasksetDerivation?{modelTasksetDerivation:t.metadata.modelTasksetDerivation}:{}}});return{package:e,taskset:$.parse({...R,contentHash:U(R)}),generatedFiles:h}}S(cs,"prepareImportedTasksetPackage");function Rt(s,e){return`package-${p({profileId:s,packageHash:e})}`}S(Rt,"tasksetPackageSourceId");var ot=w.object({draft:Z,filePaths:w.array(w.object({assetId:w.string().min(1),paths:w.array(oe).min(1).max(1e4)}).strict()).max(1e4)}).strict();function ls(s){let e=D(s.source),t=Z.parse(s.sourceDraft),a=G.parse(s.preparation);if(e.contentHash!==a.sourcePackageHash||!V(k(e.taskset),a.sourceTasksetRef))throw new Error("Taskset draft preparation differs from its source package.");if(e.learningResources)throw new Error("Reviewed Tasksets require their reviewed authoring workflow.");if(!!e.modelResources!=(a.authoringGraph==="bound"))throw new Error("Taskset draft authoring graph differs from its source.");let n=ee.parse(t.metadata.portableFileInventory??[]),c=S(i=>de(i)?`source-artifacts/${e.contentHash}/${p(i)}/${i.split("/").at(-1)}`:i,"sourcePath");if([...t.tasks.flatMap(i=>(i.assets??[]).map(R=>R.artifactRef)),...(t.environment.resources??[]).map(i=>i.path),...e.taskset.tasks.flatMap(i=>(i.requiredOutputs??[]).flatMap(R=>R.schemaRef?[R.schemaRef.path]:[])),...t.metrics.customAggregator?[t.metrics.customAggregator.module]:[],...t.graders.flatMap(i=>i.kind==="custom_verifier"?[i.module]:[])].some(de))throw new Error("A referenced source asset occupies a reserved Taskset authoring path.");let h=e.files.map(i=>{let R=new Set([i.asset.path]);for(let d of n)d.asset.id===i.asset.id&&R.add(d.sourcePath);for(let d of t.tasks)for(let f of d.assets??[])f.id===i.asset.id&&R.add(f.artifactRef);for(let d of e.taskset.graders)if(d.kind==="custom_verifier"&&d.verifierRef.id===i.asset.id){let f=t.graders.find(l=>l.id===d.id);f?.kind==="custom_verifier"&&R.add(f.module)}return{assetId:i.asset.id,paths:[...R].map(c)}}),b={...t.metadata};if(e.modelResources)for(let i of["taskDefinition","rewardBinding","rewardExecution","derivedPortableMetadata","modelTasksetDerivation","importedPackageHash"])delete b[i];let u=Z.parse({...t,id:a.draftId,revision:1,status:"draft",graders:t.graders.map(i=>({...i,metadata:{...i.metadata,portableGrader:e.taskset.graders.find(R=>R.id===i.id)}})),environment:{...t.environment,metadata:{...t.environment.metadata,portableExecutionResources:{environment:e.environment}}},modelScope:{modelId:a.lineage.owner.modelId,expectedModelRevision:s.expectedModelRevision,source:a},publishedTasksetRef:a.tasksetRevision>1?a.sourceTasksetRef:null,metadata:{...b,modelTasksetAuthoring:a.lineage,portableFileInventory:n.map(i=>({...i,sourcePath:c(i.sourcePath),asset:{...i.asset,id:de(i.sourcePath)?`source-artifact-${p({packageHash:e.contentHash,assetId:i.asset.id})}`:i.asset.id,path:c(i.asset.path)}}))}});return ot.parse({draft:u,filePaths:h})}S(ls,"prepareTasksetDraftSource");function ps(s){let e=ot.parse(s.initialized),t=D(s.source);if(e.draft.modelScope?.source?.sourcePackageHash!==t.contentHash)throw new Error("Taskset draft lost its source preparation.");let a=new Map;for(let c of e.filePaths){let m=t.files.find(h=>h.asset.id===c.assetId);if(!m)throw new Error("Taskset draft source asset is missing.");for(let h of c.paths){let b=a.get(h);if(b&&b.contentHash!==m.asset.contentHash)throw new Error("Taskset draft source paths conflict.");a.set(h,{path:h,contentHash:m.asset.contentHash,sizeBytes:m.asset.sizeBytes,base64:m.base64})}}for(let c of We(e.draft))if(!a.has(c.relativePath)){let m=new TextEncoder().encode(c.source);a.set(c.relativePath,{path:c.relativePath,contentHash:N(m),sizeBytes:m.byteLength,base64:Buffer.from(m).toString("base64")})}let n=e.draft;if(n.metrics.customAggregator){let c=a.get(n.metrics.customAggregator.module);if(!c)throw new Error("Declared Taskset metric module is missing.");me(c),n=Z.parse({...n,metrics:{...n.metrics,customAggregator:{...n.metrics.customAggregator,contentHash:c.contentHash}}})}return Je({schemaVersion:"openpond.tasksetDraftWorkspace.v1",draft:n,files:[...a.values()]})}S(ps,"materializeTasksetDraftWorkspace");export{st as a,be as b,at as c,Vt as d,lt as e,ee as f,ht as g,vt as h,Ot as i,es as j,rs as k,wt as l,os as m,cs as n,Rt as o,ot as p,ls as q,ps as r};
2
+ import{A as me,B as Ye,D as Qe,k as Z,n as de,q as We,r as Ke,u as Je,v as Xe}from"./chunk-637UACKH.js";import{C as je,Eb as Ue,F as Ve,Fb as we,Gb as Ze,Ib as Re,Kb as et,L as $e,Mb as tt,N as qe,P as Fe,U as Le,W as Oe,X as ce,a as Ae,aa as ze,c as Ce,ca as W,d as G,da as K,e as oe,ea as ke,fa as Ge,ga as Ne,ka as Q,la as D,ma as J,ua as $,xa as U}from"./chunk-A66CSUBJ.js";import{g as ie,k as N,l as p}from"./chunk-SPDSSMFD.js";import{l as De}from"./chunk-2SUMZ73C.js";import{ha as _e,ja as Be}from"./chunk-M55H7KVR.js";import{B as re,D as Ee,N as k,O as V,P as E,Q as Pe,b as se,ba as z,d as ae,lb as ve,mb as ge,n as O,nb as Me,o as X,r as F,v as ne,y as Y}from"./chunk-SFNCAPCJ.js";import{Ba as te,Pa as Se,Ta as xe,Ua as ye,Va as He,Wa as Ie,h as A}from"./chunk-RCA6NGVA.js";import{A as w}from"./chunk-PF56N7ZY.js";import{a as S}from"./chunk-FTQLQJQV.js";var le=X.shape.id,st=w.object({schemaVersion:w.literal("openpond.modelBatchReviewInspection.v1"),packageHash:w.string().regex(/^[a-f0-9]{64}$/),definition:F,binding:Se,evidence:w.array(Y).min(1).max(1e4),decisions:w.array(Ee).min(1).max(1e4)}).strict(),be=w.object({schemaVersion:w.literal("openpond.modelBatchReviewRequest.v1"),operationId:le,modelId:le,expectedModelRevision:w.number().int().positive(),tasksetRef:X,rewardBindingRef:X.nullable(),definition:w.object({name:w.string().trim().min(1).max(500).optional(),instructions:w.string().trim().min(1).max(2e4).optional(),inputSchema:O.optional(),outputSchema:O.optional(),requiredOutputs:F.shape.requiredOutputs}).strict(),examples:w.array(w.object({evidence:X,input:O.optional(),expected:O.nullable().optional(),evaluatorContext:O.nullable().optional(),proposedTarget:O.nullable().optional()}).strict()).max(1e4)}).strict(),at=w.object({schemaVersion:w.literal("openpond.modelBatchReviewReceipt.v1"),operationId:le,modelId:le,source:ne,evidence:w.array(Y).min(1).max(1e4),proposals:w.array(re).max(1e4)}).strict();function mt(s){let e=D(s.source),t=D(s.edited),a=s.preparation;if(a.authoringGraph!=="bound"||!e.modelResources||e.learningResources||t.modelResources||t.learningResources)throw new Error("Bound task editing requires its source Reward and an ordinary edited workspace.");if(e.contentHash!==a.sourcePackageHash||!V(k(e.taskset),a.sourceTasksetRef))throw new Error("Bound draft differs from its retained source package.");let n=S(x=>x.taskset.graders.map(j=>j.kind==="custom_verifier"?{...j,exportName:j.exportName??"verify"}:j),"normalizedGraders");if(p(n(e))!==p(n(t)))throw new Error("Edit the saved Reward in Rewards before changing this Taskset's graders.");let c=e.modelResources,m=new Map(c.assets.map(x=>[x.id,x])),h=K(t),b=K(e),u=S(x=>{let{id:j,revision:fe,contentHash:ue,metadata:he,...dt}=x,{javascriptEnvironment:bt,...Te}=he;return{...dt,metadata:{...Te,resources:Te.resources??[]}}},"environmentContent"),i=S(x=>{if(!x)return null;let{id:j,revision:fe,contentHash:ue,...he}=x.execution.javascript;return he},"javascriptContent"),R=p(u(e.environment))===p(u(t.environment))&&p(i(b))===p(i(h)),d=R?e.environment:t.environment,f=R?b:h,l=new Set([...c.assets.map(x=>x.id),...t.taskset.tasks.flatMap(x=>x.privilegedContextRef?[x.privilegedContextRef]:[]),...[t.environment.actionSchemaRef,t.environment.observationSchemaRef,t.environment.stateSchemaRef].flatMap(x=>x?[x.id]:[]),...h?.assets.map(x=>x.id)??[]]);for(let x of l){let j=t.files.find(ue=>ue.asset.id===x);if(!j)throw new Error(`Bound Taskset asset is missing: ${x}.`);let fe=new TextDecoder("utf-8",{fatal:!0}).decode(W(j));m.set(x,se.parse(E({schemaVersion:"openpond.learningTextAsset.v1",id:x,revision:1,asset:j.asset,text:fe})))}let I=Q(t),{contentHash:P,..._}=c.taskDefinition,{policy:g,environment:y,environmentRelease:C,tools:q,capabilities:r,verifierSetRelease:v}=t.taskset,T=F.parse(E({..._,instructions:I,execution:{policy:g,environment:y,environmentRelease:C,tools:q,capabilities:r,verifierSetRelease:v}})),{contentHash:M,...o}=t.taskset,H=te.parse(E({...o,tasks:t.taskset.tasks.map(x=>c.instructionMode==="per_task"?x:{...x,policyVisibleContext:{...x.policyVisibleContext,instructions:I}})})),B=ce({owner:a.lineage.owner,source:{...c,taskset:e.taskset,executionResources:{environment:e.environment,verifierSet:e.verifierSet}},rewardBinding:c.rewardBinding,rewards:c.rewards,assets:[...m.values()],edits:{taskset:H,taskDefinition:T,executionResources:{environment:d,verifierSet:t.verifierSet},...f?{execution:f.execution}:{}}}),L=Le.parse(B.taskset.metadata.modelTasksetDerivation);if(B.taskset.id!==a.tasksetId||B.taskset.revision!==a.tasksetRevision||p({...L,schemaVersion:a.lineage.schemaVersion})!==p(a.lineage))throw new Error("Bound draft differs from its retained ownership lineage.");let{taskset:pe,executionResources:it,...ct}=B;return J({schemaVersion:"openpond.tasksetPackage.v1",taskset:pe,...it,modelResources:ct,files:t.files})}S(mt,"publishBoundModelTasksetDraftPackage");function Vt(s){let e=Ce.parse(s.request),t=Ae.parse(s.owner),a=D(s.source);if(a.learningResources)throw new Error("Reviewed Tasksets require their reviewed authoring workflow.");if(a.contentHash!==e.sourcePackageHash)throw new Error("Taskset draft source package changed.");if(a.modelResources){let b=Oe({owner:t,source:{...a.modelResources,taskset:a.taskset,executionResources:{environment:a.environment,verifierSet:a.verifierSet}},rewardBinding:a.modelResources.rewardBinding,rewards:a.modelResources.rewards,assets:a.modelResources.assets}),u=b.taskset.metadata.modelTasksetDerivation;return G.parse({schemaVersion:"openpond.modelTasksetDraftPreparation.v1",draftId:`model-taskset-draft-${p({owner:t,operationId:e.operationId})}`,requestHash:p(e),sourcePackageHash:a.contentHash,sourceTasksetRef:k(a.taskset),tasksetId:b.taskset.id,tasksetRevision:b.taskset.revision,lineage:{...u,schemaVersion:"openpond.modelTasksetAuthoring.v1"},authoringGraph:"bound"})}let n=Ne(a.taskset),c=n&&p(n.owner)===p(t),m=c?n.root:k(a.taskset),h={schemaVersion:"openpond.modelTasksetAuthoring.v1",owner:t,root:m,parent:k(a.taskset)};return G.parse({schemaVersion:"openpond.modelTasksetDraftPreparation.v1",draftId:`model-taskset-draft-${p({owner:t,operationId:e.operationId})}`,requestHash:p(e),sourcePackageHash:a.contentHash,sourceTasksetRef:k(a.taskset),tasksetId:Ge(h),tasksetRevision:c?a.taskset.revision+1:1,lineage:h})}S(Vt,"prepareModelTasksetDraft");function lt(s){let e=G.parse(s.preparation);if(!V(e.sourceTasksetRef,e.lineage.parent))throw new Error("Taskset draft preparation differs from its source lineage.");if(e.authoringGraph==="bound"){if(!s.source)throw new Error("Bound Taskset authoring requires its retained source package.");return mt({preparation:e,source:s.source,edited:s.edited})}let t=pt(s.edited),{contentHash:a,...n}=t.verifierSet,c=Be({...n,id:`${e.tasksetId}-verifiers`,revision:e.tasksetRevision,calibrationReceiptRefs:[],metadata:{sourceVerifierSet:k(t.verifierSet)}}),{contentHash:m,...h}=t.taskset,b=te.parse(E({...h,id:e.tasksetId,revision:e.tasksetRevision,verifierSetRelease:{id:c.id,contentHash:c.contentHash},metadata:{modelTasksetAuthoring:e.lineage,...t.taskset.metadata.environmentResources===void 0?{}:{environmentResources:t.taskset.metadata.environmentResources},...t.taskset.metadata.ordinaryAuthoring===void 0?{}:{ordinaryAuthoring:t.taskset.metadata.ordinaryAuthoring}}})),u=K(t),i=u?[...t.files.filter(R=>R.asset.id!==Fe(t.taskset)),ke({...u.execution,verifierSet:c})]:t.files;return J({schemaVersion:"openpond.tasksetPackage.v1",taskset:b,environment:t.environment,verifierSet:c,files:i})}S(lt,"publishModelTasksetDraftPackage");function pt(s){let e=D(s);if(e.modelResources||e.learningResources)throw new Error("This Taskset requires its bound or reviewed authoring workflow.");return e}S(pt,"requireOrdinaryPackage");function ft(s,e,t,a){if(s.environment.entrypoint!=="openpond.javascript-environment.v1")return{taskset:s,inventory:t,generatedFiles:[]};let n="environment/execution.json",c=e.get(n);if(!c||c.length>524288)throw new Error("Authored tool environment requires its bounded private execution declaration.");let m=qe.parse(JSON.parse(new TextDecoder("utf-8",{fatal:!0}).decode(c))),h=S(_=>{if(!_)return null;let g=t.find(y=>y.asset.id===_.id&&y.asset.path===_.path);if(!g)throw new Error(`Authored environment dependency is missing: ${_.id}.`);return g.asset},"repin"),{contentHash:b,...u}=m.javascript,i=De.parse(E({...u,id:`javascript-${s.id}`,revision:s.revision,module:h(m.javascript.module)}));if(p(i.tools)!==p(s.environment.metadata.portableTools)||p(i.tools.map(_=>_.name))!==p(s.environment.toolNames))throw new Error("Authored environment tools differ from the Taskset's declared tools.");let R=_e({schemaVersion:"openpond.environmentRelease.v1",id:`environment-${s.id}`,revision:s.revision,contract:et(s),actionSchemaRef:h(m.environment.actionSchemaRef),observationSchemaRef:h(m.environment.observationSchemaRef),stateSchemaRef:h(m.environment.stateSchemaRef),artifactCollection:m.environment.artifactCollection,adapterConformanceHashes:{},metadata:{javascriptEnvironment:k(i),resources:s.environment.resources??[]}}),d=$.parse({...s,environment:{...s.environment,metadata:{...s.environment.metadata,portableExecutionResources:{environment:R}}}}),f=Re({taskset:d,adapterId:a}),l=ke({javascript:i,environment:R,verifierSet:f.verifierSetRelease}),I=[...t.filter(_=>_.sourcePath!==n),{asset:l.asset,sourcePath:n}],P=$.parse({...d,metadata:{...d.metadata,portableFileInventory:I}});return{taskset:$.parse({...P,contentHash:U(P)}),inventory:I,generatedFiles:[{path:n,role:"environment",content:new TextDecoder().decode(W(l))}]}}S(ft,"prepareAuthoredToolEnvironment");var ee=w.array(w.object({asset:ie,sourcePath:w.string().min(1)}).strict()).max(1e4),ut=new Set(["taskset.json","capabilities.json","data/tasks.jsonl","graders/graders.json","fixtures/grader-fixtures.json","environment/taskset.ts"]);function ht(s){return ut.has(s)}S(ht,"isGeneratedTasksetPublicationFilePath");function vt(s,e,t){let a=$.parse(s);if(a.metadata.taskDefinition!==void 0||a.metadata.rewardBinding!==void 0)return{taskset:a,generatedFiles:[]};let n=new Map,c=0;for(let[r,v]of e){if(oe.parse(r),c+=v.byteLength,n.size>=1e4||c>ze*3/4)throw new Error("Taskset source exceeds the package byte limit.");n.set(r,v.slice())}let m=a.metrics?.customAggregator,h=m?n.get(m.module):void 0;if(m&&!h)throw new Error("Declared Taskset metric module is missing.");let b=m&&h?{...a.metrics,customAggregator:{...m,contentHash:N(h)}}:a.metrics,u=new Map,i=new Set,R=[],d=S((r,v,T,M)=>{let o=n.get(v);if(!o)throw new Error(`Declared Taskset file is missing: ${v}.`);return{id:r,path:v,contentHash:N(o),sizeBytes:o.byteLength,mediaType:T,visibility:M}},"ref"),f=S((r,v=r.path)=>{let T=u.get(r.id);if(T&&p(T)!==p({asset:r,sourcePath:v}))throw new Error(`Conflicting Taskset file identity: ${r.id}.`);let M=n.get(v);if(!M||M.length!==r.sizeBytes||N(M)!==r.contentHash)throw new Error(`Taskset file differs from its declared bytes: ${r.id}.`);u.set(r.id,{asset:r,sourcePath:v}),i.add(v)},"add");for(let r of a.tasks){let v=tt(r);for(let T of v.artifactRefs)f(T,r.assets?.find(M=>M.id===T.id)?.artifactRef??T.path);for(let T of v.requiredOutputs??[])T.schemaRef&&f(T.schemaRef)}for(let r of a.environment.resources??[])f(d(r.id,r.path,r.mediaType??"application/octet-stream",r.visibility==="policy_visible"?"policy":"host_private"));let l=a.graders.map(r=>{if(r.kind==="custom_verifier"){let v=d(`verifier-${r.id}`,r.module,"application/javascript","host_private"),T=ie.safeParse(r.metadata.portableVerifierRef);return T.success&&T.data.contentHash===v.contentHash&&T.data.sizeBytes===v.sizeBytes&&(v=T.data),f(v,r.module),{...r,metadata:{...r.metadata,portableVerifierRef:v}}}if(r.kind==="human"||r.kind==="model_judge"){let v=new TextEncoder().encode(r.rubric),T=`graders/rubric-${N(v)}.md`;n.set(T,v);let M=d(`rubric-${r.id}`,T,"text/markdown","verifier"),o=ie.safeParse(r.metadata.portableRubricRef);if(o.success&&o.data.contentHash===M.contentHash&&o.data.sizeBytes===M.sizeBytes){if(o.data.visibility==="policy")throw new Error("A grader rubric cannot become policy-visible.");M=o.data}return f(M,T),R.push({path:T,role:"verifier",content:r.rubric}),{...r,metadata:{...r.metadata,portableRubricRef:M}}}return r});m&&![...u.values()].some(r=>r.asset.path===m.module&&r.sourcePath===m.module&&r.asset.visibility!=="policy")&&f(d(`metric-${p(m.module)}`,m.module,"application/javascript","host_private"));let I=ee.parse(a.metadata.portableFileInventory??[]);for(let r of[...n.keys()].sort())if(!i.has(r)){let v=I.find(T=>T.sourcePath===r&&!u.has(T.asset.id));f(v?{...d(v.asset.id,r,v.asset.mediaType,v.asset.visibility),path:v.asset.path}:d(`taskset-file-${p(r)}`,r,"application/octet-stream","host_private"),r)}let{importedPackageHash:P,derivedPortableMetadata:_,...g}=a.metadata,y={...a.environment.metadata};if(y.portableExecutionResources!==void 0){let r=w.object({environment:w.unknown(),verifierSet:w.unknown().optional()}).parse(y.portableExecutionResources);y.portableExecutionResources={environment:r.environment}}let C=$.parse({...a,graders:l,metrics:b,environment:{...a.environment,metadata:y},metadata:{...g,...P===void 0?{}:{sourceImportedPackageHash:P},portableFileInventory:ee.parse([...u.values()].sort((r,v)=>r.asset.id.localeCompare(v.asset.id)))}}),q=ft(C,n,[...u.values()],t);return{taskset:$.parse({...q.taskset,contentHash:U(q.taskset)}),generatedFiles:[...R,...q.generatedFiles]}}S(vt,"prepareAuthoredTasksetSource");function gt(s){let e=Xe(s.workspace),t=s.preparation===null?null:G.parse(s.preparation);if(t?e.draft.id!==t.draftId||e.draft.modelScope?.modelId!==t.lineage.owner.modelId||e.draft.profileId!==t.lineage.owner.scopeId||p(e.draft.modelScope?.source??null)!==p(t):e.draft.modelScope?.source!==void 0)throw new Error("Taskset draft differs from its retained source preparation.");let a=Qe({draft:e.draft,now:e.draft.updatedAt,sourcePackageHash:e.contentHash}),n=new Map(e.files.map(u=>[u.path,me(u)]));for(let[u,i]of Ke(e.draft))ht(u)||n.set(u,new TextEncoder().encode(i));let c=vt(a,n,s.adapterId);for(let u of c.generatedFiles)n.set(u.path,new TextEncoder().encode(u.content));let m=Re({taskset:c.taskset,adapterId:s.adapterId}),h=ee.parse(c.taskset.metadata.portableFileInventory),b=J({schemaVersion:"openpond.tasksetPackage.v1",taskset:m.tasksetRelease,environment:m.environmentRelease,verifierSet:m.verifierSetRelease,files:h.map(u=>{let i=n.get(u.sourcePath);if(!i)throw new Error(`Captured Taskset file is missing: ${u.sourcePath}.`);return{asset:u.asset,base64:Buffer.from(i).toString("base64")}})});return t?lt({preparation:t,edited:b,source:s.source}):b}S(gt,"compileTasksetDraftWorkspace");function Ot(s){if(!s.workspace.draft.modelScope)throw new Error("Taskset draft requires a Model owner.");return gt(s)}S(Ot,"compileModelTasksetDraftWorkspace");function es(s){let e=D(s.source);if(e.modelResources||e.learningResources)throw new Error("Binding an ordinary Reward requires an ordinary source package.");let t=Q(e);if(!t.trim())throw new Error("Add collection instructions before selecting a saved Reward.");let a=new Map,n=K(e);for(let g of n?.assets??[])a.set(g.id,g);let c=new Set([...e.taskset.tasks.flatMap(g=>g.privilegedContextRef?[g.privilegedContextRef]:[]),...[e.environment.actionSchemaRef,e.environment.observationSchemaRef,e.environment.stateSchemaRef].flatMap(g=>g?[g.id]:[])]);for(let g of c){if(a.has(g))continue;let y=e.files.find(q=>q.asset.id===g);if(!y)throw new Error(`Source Taskset context is missing: ${g}.`);let C=new TextDecoder("utf-8",{fatal:!0}).decode(W(y));a.set(g,se.parse(E({schemaVersion:"openpond.learningTextAsset.v1",id:g,revision:1,asset:y.asset,text:C})))}for(let g of s.assets){let y=e.files.find(C=>C.asset.id===g.id);if(y&&E({asset:y.asset}).contentHash!==E({asset:g.asset}).contentHash)throw new Error(`Selected Reward conflicts with a source asset: ${g.id}.`);a.set(g.id,g)}let{policy:m,environment:h,environmentRelease:b,tools:u,capabilities:i,verifierSetRelease:R}=e.taskset,d=F.parse(E({schemaVersion:"openpond.taskDefinition.v1",id:`${e.taskset.id}-definition`,revision:1,name:e.taskset.id,description:"",instructions:t,category:"custom",familyNamespace:e.taskset.id,inputSchema:{type:"object"},outputSchema:{type:"object"},rewardBinding:k(s.rewardBinding),harness:null,execution:{policy:m,environment:h,environmentRelease:b,tools:u,capabilities:i,verifierSetRelease:R}})),f=ce({...s,assets:[...a.values()],source:{taskset:e.taskset,taskDefinition:d,instructionMode:"per_task",executionResources:{environment:e.environment,verifierSet:e.verifierSet},...n?{execution:n.execution}:{}}}),l=new Map(e.files.map(g=>[g.asset.id,g]));for(let g of f.assets){let y="";for(let C of new TextEncoder().encode(g.text))y+=String.fromCharCode(C);l.set(g.id,{asset:g.asset,base64:btoa(y)})}let{taskset:I,executionResources:P,..._}=f;return J({schemaVersion:"openpond.tasksetPackage.v1",taskset:I,...P,modelResources:_,files:[...l.values()]})}S(es,"bindOrdinaryModelTasksetReward");function kt(s){let{request:e,package:t}=s,a=t.learningResources;if(!a)throw new A("model_review_batch_required",422);let n=z(t.taskset),c=`model-review-${p([s.scope,e.modelId,e.operationId])}`,m=new Map(e.examples.map(o=>[p(o.evidence),o])),h=new Set(a.evidence.map(o=>p(k(o)))),b=new Map(a.decisions.map(o=>[p(o.evidence),o]));if(m.size!==e.examples.length||e.examples.some(o=>!h.has(p(o.evidence))))throw new A("model_review_evidence_mismatch",409);for(let o of[s.binding,...s.rewards,...s.assets])Pe(o);He(s.binding,s.rewards);let u=new Map;for(let o of s.binding.sources){let H=s.rewards.find(pe=>V(k(pe),o.reward)),{contentHash:B,...L}=H;u.set(H.contentHash,xe({...L,id:`${c}-reward-${H.contentHash}`,revision:1}))}let i=[...u.values()],{contentHash:R,recipeRef:d,...f}=s.binding,l=ye({...f,id:`${c}-binding`,revision:1,sources:s.binding.sources.map(o=>({...o,reward:k(u.get(o.reward.contentHash))}))},i),I=i.flatMap(o=>[...o.assets,..."verifierRef"in o.implementation?[o.implementation.verifierRef]:[],..."rubricRef"in o.implementation?[o.implementation.rubricRef]:[],..."inputContract"in o.implementation?[o.implementation.inputContract]:[]]),P=[...new Map(I.map(o=>{let H=s.assets.find(B=>B.id===o.id);if(!H)throw new A("model_review_reward_asset_missing",422);if(ae(H,o),o.visibility==="policy")throw new A("reward_asset_visibility_invalid",422);return[H.id,H]})).values()],{environmentRelease:_,verifierSetRelease:g,...y}=n.definition.execution,{contentHash:C,...q}=n.definition,r=F.parse(E({...q,...e.definition,id:`${c}-definition`,revision:1,rewardBinding:k(l),execution:{...y,policy:{...y.policy,hiddenGraderRefs:Ie(l,i).filter(o=>o.privileged).map(o=>o.id)}}})),v=ne.parse(E({schemaVersion:"openpond.learningSource.v1",id:c,revision:1,name:`${r.name} review`,kind:"direct",taskDefinition:k(r),enabled:!0,allowedSplits:[...new Set(a.evidence.map(o=>o.submission.split))],mapping:null,adapterVersion:null,reviewOrigin:{modelId:e.modelId,packageHash:t.contentHash,taskset:k(t.taskset),batch:k(a.batch),rewardBinding:k(s.binding)}})),T=a.evidence.map(o=>{let H=m.get(p(k(o))),B=`review-${o.contentHash}`,L=p({instructions:r.instructions,inputSchema:r.inputSchema,outputSchema:r.outputSchema,requiredOutputs:r.requiredOutputs??[],input:H?.input??o.submission.input})!==p({instructions:n.definition.instructions,inputSchema:n.definition.inputSchema,outputSchema:n.definition.outputSchema,requiredOutputs:n.definition.requiredOutputs??[],input:o.submission.input});return Y.parse(E({schemaVersion:"openpond.taskEvidence.v1",id:Me(v.id,o.submission.exampleId,B),revision:1,source:k(v),submission:{...o.submission,sourceId:v.id,taskDefinition:k(r),attemptId:B,observedOutput:L?null:o.submission.observedOutput,idempotencyKey:`${c}-${o.contentHash}`,...H?.input===void 0?{}:{input:H.input},...H?.expected===void 0?{}:{expected:H.expected},...H?.evaluatorContext===void 0?{}:{evaluatorContext:H.evaluatorContext}},supersedes:k(o),correctionFeedbackId:null,receivedAt:s.now}))}),M=T.flatMap(o=>{let H=m.get(p(o.supersedes)),B=b.get(p(o.supersedes)),L=H?.proposedTarget===void 0?B.approvedTarget:H.proposedTarget;return L===null?[]:[re.parse({schemaVersion:"openpond.taskFeedbackRecord.v1",id:`feedback-${p([c,o.id])}`,revision:1,submission:{schemaVersion:"openpond.taskFeedback.v1",sourceId:v.id,idempotencyKey:`${c}-${o.id}`,exampleId:o.submission.exampleId,attemptId:o.submission.attemptId,expectedEvidenceHash:o.contentHash,occurredAt:s.now,kind:"target_correction",value:L,note:"Proposed target for the revised task. Grade and review before admission."},status:"pending_review",evidence:k(o),createdAt:s.now,review:null})]});return{source:v,definition:r,binding:l,rewards:i,assets:P,evidence:T,proposals:M}}S(kt,"prepareModelBatchReview");var nt=S(s=>`model-batch-review-${p([s.modelId,s.operationId])}`,"operation");function rs(s){let e=D(s);if(!e.learningResources)throw new A("model_review_batch_required",422);let t=z(e.taskset);return st.parse({schemaVersion:"openpond.modelBatchReviewInspection.v1",packageHash:e.contentHash,definition:t.definition,binding:t.binding,evidence:e.learningResources.evidence,decisions:e.learningResources.decisions})}S(rs,"inspectModelBatchPackage");async function wt(s,e){let t=be.parse(e),a=await s.operation(nt(t));if(!a)return null;if(a.requestHash!==p(t))throw new A("learning_idempotency_conflict",409);return rt(s,t,a.resources)}S(wt,"findModelBatchReview");async function os(s,e){let t=be.parse(e.request),a=await wt(s,t);if(a)return a;let n=D(e.package);if(!n.learningResources)throw new A("model_review_batch_required",422);let c=z(n.taskset),m=t.rewardBindingRef,h=!m||V(m,k(c.binding)),b=h?c.binding:await ge(s,"binding",m),u=h?c.rewards:await Promise.all(b.sources.map(l=>ge(s,"reward",l.reward))),i=new Set(u.flatMap(l=>[...l.assets,..."verifierRef"in l.implementation?[l.implementation.verifierRef]:[],..."rubricRef"in l.implementation?[l.implementation.rubricRef]:[],..."inputContract"in l.implementation?[l.implementation.inputContract]:[]]).map(l=>l.id)),R=h?n.learningResources.assets:await Promise.all([...i].map(l=>ve(s,"asset",l,1))),d=kt({...e,request:t,package:n,binding:b,rewards:u,assets:R}),f=[];for(let l of d.assets){let I=await s.get("asset",l.id,1);if(I&&I.contentHash!==l.contentHash)throw new A("model_review_asset_conflict",409);I||await s.put("asset",l,0)}for(let l of d.rewards)await s.put("reward",l,0);await s.put("binding",d.binding,0),await s.put("definition",d.definition,0),await s.put("source",d.source,0,{parentId:t.modelId}),f.push({kind:"source",id:d.source.id,revision:1});for(let l of d.evidence)await s.put("evidence",l,0,{parentId:d.source.id}),f.push({kind:"evidence",id:l.id,revision:1});for(let l of d.proposals)await s.put("feedback",l,0,{parentId:l.evidence.id,status:l.status}),f.push({kind:"feedback",id:l.id,revision:1});return await s.saveOperation(nt(t),{requestHash:p(t),resources:f}),rt(s,t,f)}S(os,"beginModelBatchReview");async function rt(s,e,t){let a=await Promise.all(t.map(n=>ve(s,n.kind,n.id,n.revision)));return at.parse({schemaVersion:"openpond.modelBatchReviewReceipt.v1",operationId:e.operationId,modelId:e.modelId,source:a.find(n=>n.schemaVersion==="openpond.learningSource.v1"),evidence:a.filter(n=>n.schemaVersion==="openpond.taskEvidence.v1"),proposals:a.filter(n=>n.schemaVersion==="openpond.taskFeedbackRecord.v1")})}S(rt,"readReceipt");function cs(s){let e=D(s.package),t=e.taskset,a=e.modelResources,n=e.learningResources?z(t):void 0,c=je.parse({schemaVersion:"openpond.uploadedFileDatasetSource.v1",kind:"uploaded_file",id:`package-source-${p({profileId:s.profileId,packageHash:e.contentHash})}`,profileId:s.profileId,title:s.name,sourceHash:e.contentHash,occurredAt:s.createdAt,licensingStatus:"pending",secretScanStatus:"pending",piiScanStatus:"pending",originalFileNames:["taskset-package.json"],mediaTypes:["application/json"],sourceFileHashes:[e.contentHash],totalBytes:new TextEncoder().encode(JSON.stringify(e)).byteLength,parserVersion:"openpond.tasksetPackage.v1",metadata:{}}),m=Ye({profileId:s.profileId,id:`${t.id}-import`,name:s.name,now:s.createdAt}),h=[];for(let d of t.graders)if(d.kind==="custom_verifier"){let f=a?.assets.find(P=>P.id===d.verifierRef.id),l=e.files.find(P=>P.asset.id===d.verifierRef.id);if(!l)throw new Error(`Imported verifier source is missing: ${d.id}.`);let I=Ze(d.verifierRef.contentHash);h.some(P=>P.path===I)||h.push({path:I,role:"verifier",content:f?ae(f,d.verifierRef):new TextDecoder("utf-8",{fatal:!0}).decode(W(l))})}let b=t.metadata.ordinaryAuthoring??t.metadata.starterAuthoring,u=$e.array().max(1e5).parse(b?.graderFixtures??[]),i=t.environment.kind==="text"?"chat":t.environment.kind==="custom_program"?"program":t.environment.kind,R=$.parse({schemaVersion:"openpond.taskset.v1",id:t.id,revision:t.revision,profileId:s.profileId,profileRelease:null,createImproveRunId:null,name:s.name,objective:Q(e),status:"needs_review",sourceRefs:[c],datasetArtifact:null,policy:t.policy,environment:{...m.environment,kind:i,entrypoint:t.environment.entrypoint,resources:Ve.array().max(1e4).parse(t.metadata.environmentResources??[]),stateful:t.environment.stateful,deterministicSeeds:t.environment.deterministicSeeds,toolNames:t.tools.map(d=>d.name),defaultTimeoutMs:t.environment.defaultTimeoutMs,networkPolicy:t.environment.networkPolicy,metadata:{runtimeSourceTasksetId:Rt(s.profileId,e.contentHash),portableEnvironment:t.environment,portableTools:t.tools,portableExecutionResources:{environment:e.environment,verifierSet:e.verifierSet}}},capabilities:{...m.capabilities,taskKind:i==="chat"?"chat":i==="program"?"custom_program":"single_agent",compatibleMethods:["none"],requiresTools:t.tools.length>0,requiresState:t.environment.stateful,rewardKinds:[...new Set(t.graders.map(d=>d.kind==="human"?"human":d.kind==="model_judge"?"model_judge":"deterministic"))]},tasks:t.tasks.map(d=>({...d,schemaVersion:"openpond.taskData.v1",sourceRefs:[c.id],assets:d.artifactRefs.map(f=>({id:f.id,sourceRefId:c.id,artifactRef:f.path,fileName:f.path.split("/").at(-1),mediaType:f.mediaType,sha256:f.contentHash,sizeBytes:f.sizeBytes,split:d.split,metadata:{portableAsset:f}})),...d.requiredOutputs?{requiredOutputs:d.requiredOutputs.map(f=>({...f,schemaRef:f.schemaRef?.id??null,maxBytes:f.maxBytes??void 0}))}:{},metadata:{portableTaskRecord:d,exampleOrigin:"imported"}})),graders:a?we(a.rewardBinding,a.rewards,a.assets):n?we(n.binding,n.rewards,e.learningResources.assets):Ue(e),graderFixtures:u,learningSignals:m.learningSignals,...t.metrics?{metrics:t.metrics}:{},authoringProvenance:{schemaVersion:"openpond.taskAuthoringProvenance.v1",model:null,modelConfig:{},skillHash:p("openpond-package-import-v1"),promptTemplateVersion:"package-import-v1",buildIntent:"discovery",buildSpecification:null,evidenceHashes:[e.contentHash],tasksetSdkVersion:"package-import-v1",sourceCommit:null,repairHistory:[],createdAt:s.createdAt},readiness:null,contentHash:"00000000",createdAt:s.createdAt,updatedAt:s.createdAt,metadata:{importedPackageHash:e.contentHash,tasksetOutputContract:t.metadata.tasksetOutputContract??null,...n?{learning:n}:{},portableFileInventory:e.files.map(d=>({asset:d.asset,sourcePath:d.asset.path})),...a?{taskDefinition:k(a.taskDefinition),rewardBinding:k(a.rewardBinding),rewardExecution:{binding:a.rewardBinding,rewards:a.rewards}}:{},portableCapabilities:t.capabilities,derivedPortableMetadata:t.metadata,...t.metadata.modelTasksetDerivation?{modelTasksetDerivation:t.metadata.modelTasksetDerivation}:{}}});return{package:e,taskset:$.parse({...R,contentHash:U(R)}),generatedFiles:h}}S(cs,"prepareImportedTasksetPackage");function Rt(s,e){return`package-${p({profileId:s,packageHash:e})}`}S(Rt,"tasksetPackageSourceId");var ot=w.object({draft:Z,filePaths:w.array(w.object({assetId:w.string().min(1),paths:w.array(oe).min(1).max(1e4)}).strict()).max(1e4)}).strict();function ls(s){let e=D(s.source),t=Z.parse(s.sourceDraft),a=G.parse(s.preparation);if(e.contentHash!==a.sourcePackageHash||!V(k(e.taskset),a.sourceTasksetRef))throw new Error("Taskset draft preparation differs from its source package.");if(e.learningResources)throw new Error("Reviewed Tasksets require their reviewed authoring workflow.");if(!!e.modelResources!=(a.authoringGraph==="bound"))throw new Error("Taskset draft authoring graph differs from its source.");let n=ee.parse(t.metadata.portableFileInventory??[]),c=S(i=>de(i)?`source-artifacts/${e.contentHash}/${p(i)}/${i.split("/").at(-1)}`:i,"sourcePath");if([...t.tasks.flatMap(i=>(i.assets??[]).map(R=>R.artifactRef)),...(t.environment.resources??[]).map(i=>i.path),...e.taskset.tasks.flatMap(i=>(i.requiredOutputs??[]).flatMap(R=>R.schemaRef?[R.schemaRef.path]:[])),...t.metrics.customAggregator?[t.metrics.customAggregator.module]:[],...t.graders.flatMap(i=>i.kind==="custom_verifier"?[i.module]:[])].some(de))throw new Error("A referenced source asset occupies a reserved Taskset authoring path.");let h=e.files.map(i=>{let R=new Set([i.asset.path]);for(let d of n)d.asset.id===i.asset.id&&R.add(d.sourcePath);for(let d of t.tasks)for(let f of d.assets??[])f.id===i.asset.id&&R.add(f.artifactRef);for(let d of e.taskset.graders)if(d.kind==="custom_verifier"&&d.verifierRef.id===i.asset.id){let f=t.graders.find(l=>l.id===d.id);f?.kind==="custom_verifier"&&R.add(f.module)}return{assetId:i.asset.id,paths:[...R].map(c)}}),b={...t.metadata};if(e.modelResources)for(let i of["taskDefinition","rewardBinding","rewardExecution","derivedPortableMetadata","modelTasksetDerivation","importedPackageHash"])delete b[i];let u=Z.parse({...t,id:a.draftId,revision:1,status:"draft",graders:t.graders.map(i=>({...i,metadata:{...i.metadata,portableGrader:e.taskset.graders.find(R=>R.id===i.id)}})),environment:{...t.environment,metadata:{...t.environment.metadata,portableExecutionResources:{environment:e.environment}}},modelScope:{modelId:a.lineage.owner.modelId,expectedModelRevision:s.expectedModelRevision,source:a},publishedTasksetRef:a.tasksetRevision>1?a.sourceTasksetRef:null,metadata:{...b,modelTasksetAuthoring:a.lineage,portableFileInventory:n.map(i=>({...i,sourcePath:c(i.sourcePath),asset:{...i.asset,id:de(i.sourcePath)?`source-artifact-${p({packageHash:e.contentHash,assetId:i.asset.id})}`:i.asset.id,path:c(i.asset.path)}}))}});return ot.parse({draft:u,filePaths:h})}S(ls,"prepareTasksetDraftSource");function ps(s){let e=ot.parse(s.initialized),t=D(s.source);if(e.draft.modelScope?.source?.sourcePackageHash!==t.contentHash)throw new Error("Taskset draft lost its source preparation.");let a=new Map;for(let c of e.filePaths){let m=t.files.find(h=>h.asset.id===c.assetId);if(!m)throw new Error("Taskset draft source asset is missing.");for(let h of c.paths){let b=a.get(h);if(b&&b.contentHash!==m.asset.contentHash)throw new Error("Taskset draft source paths conflict.");a.set(h,{path:h,contentHash:m.asset.contentHash,sizeBytes:m.asset.sizeBytes,base64:m.base64})}}for(let c of We(e.draft))if(!a.has(c.relativePath)){let m=new TextEncoder().encode(c.source);a.set(c.relativePath,{path:c.relativePath,contentHash:N(m),sizeBytes:m.byteLength,base64:Buffer.from(m).toString("base64")})}let n=e.draft;if(n.metrics.customAggregator){let c=a.get(n.metrics.customAggregator.module);if(!c)throw new Error("Declared Taskset metric module is missing.");me(c),n=Z.parse({...n,metrics:{...n.metrics,customAggregator:{...n.metrics.customAggregator,contentHash:c.contentHash}}})}return Je({schemaVersion:"openpond.tasksetDraftWorkspace.v1",draft:n,files:[...a.values()]})}S(ps,"materializeTasksetDraftWorkspace");export{st as a,be as b,at as c,Vt as d,lt as e,ee as f,ht as g,vt as h,Ot as i,es as j,rs as k,wt as l,os as m,cs as n,Rt as o,ot as p,ls as q,ps as r};
@@ -1,2 +1,2 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{a as j}from"./chunk-4EPSHPZL.js";import{j as y}from"./chunk-25MBPJVY.js";import{e as i,l as s}from"./chunk-WN3V6KDN.js";import{c as H,d as w,f as k}from"./chunk-YBT2NB32.js";import{Cb as I,Db as E,Ta as v,Ua as g,ub as f,zb as h}from"./chunk-ACYFMLWG.js";import{b as e}from"./chunk-ES2ISFJC.js";import{a as m}from"./chunk-FTQLQJQV.js";var A=e.object({sourcePass:i,graders:j.shape.graders,mappings:j.shape.mappings,maximumCostUsd:e.number().finite().positive().max(1e4)}).strict(),C=e.object({externalDatasetBinding:v,scoring:A.optional(),modelId:e.string().min(1).max(300),maximumCostUsd:e.number().finite().positive().max(1e4)}).strict(),R=e.object({source:e.enum(["local","github","openpond_git"]),repositoryId:e.string().trim().min(1),profileId:e.string().trim().min(1)}).strict(),n=e.string().min(1).max(240),c=e.string().regex(/^[a-f0-9]{64}$/),x=e.object({schemaVersion:e.literal("openpond.experimentImprovement.v1"),id:n,operationId:n,requestHash:c,actorId:n,teamId:n,projectId:n.nullable(),ownerWorkspaceId:n,ownerRevision:e.number().int().nonnegative(),ownerSourceRevision:e.string().min(1).max(500),baseRelease:i,profileRef:R,baseProfileSourceRevision:e.string().min(1).max(500),evidence:e.object({manifest:f,result:h}).strict(),component:e.object({kind:e.enum(["skill","workflow","agent","instruction"]),path:e.string().min(1).max(2e3),workflowId:n.optional()}).strict(),mode:e.enum(["manual","llm_assisted"]),status:e.enum(["draft","authoring_queued","authoring","frozen","testing","ready_for_review","adopting","accepted","rolled_back","declined","failed","cancelled"]),revision:e.number().int().positive(),limits:e.object({maximumCostUsd:e.number().finite().positive(),maximumAuthoringSteps:e.number().int().min(1).max(500),maximumDurationMs:e.number().int().min(1e3).max(864e5)}).strict(),authoringSteps:e.number().int().nonnegative().max(500),work:e.object({sessionId:n,turnId:n,revision:e.number().int().positive(),startedAt:e.string().datetime()}).strict().nullable(),frozen:e.object({release:i,sourceRevision:e.string().min(1).max(500),profileSourceRevision:e.string().min(1).max(500),authoringHash:c,partitionHash:c,executableSourceHash:c,protectedClosureHash:c,candidateRevision:e.number().int().positive(),diff:e.array(e.object({path:e.string(),before:c.nullable(),after:c.nullable()}).strict()).max(1e4)}).strict().nullable(),test:e.object({recipe:C,recipeHash:e.string().regex(/^[a-f0-9]{64}$/),baselineOperationId:e.string(),candidateOperationId:e.string(),cancelRequestedAt:e.string().datetime().nullable(),dispatching:e.object({kind:e.enum(["baseline","candidate"]),token:n,pid:e.number().int().positive(),processStart:e.string().nullable(),startedAt:e.string().datetime()}).strict().nullable()}).strict().nullable(),comparison:e.object({baseline:e.object({manifest:f,result:h}).strict(),candidate:e.object({manifest:f,result:h}).strict(),frozenHash:c,humanProjection:w.optional()}).strict().nullable(),adoptionIntent:e.object({operationId:n,expectedOwnerRevision:e.number().int().nonnegative(),frozenHash:c,humanProjection:w.optional()}).strict().nullable(),acceptance:i.nullable(),rollback:i.nullable(),error:e.string().max(2e3).nullable(),createdAt:e.string().datetime(),updatedAt:e.string().datetime(),contentHash:c}).strict();function D(r){let t=x.parse(r),{contentHash:l,...b}=t;if(s(b)!==l)throw new Error("Improvement state integrity failed.");if(I(t.evidence),t.evidence.manifest.teamId!==t.teamId||t.evidence.result.status!=="completed"||!t.evidence.result.cases.some(o=>o.status==="completed"))throw new Error("Improvement requires usable completed owner evidence.");if(t.test&&(s(t.test.recipe)!==t.test.recipeHash||g(t.test.recipe.externalDatasetBinding).profileId!==t.profileRef.profileId))throw new Error("The test recipe changed its exact selected Profile.");if(t.comparison?.humanProjection){let o=k(t.comparison.humanProjection);if(o.teamId!==t.teamId||o.projectId!==t.projectId||s(o.baseline)!==s(t.comparison.baseline)||s(o.candidate)!==s(t.comparison.candidate))throw new Error("Human comparison projection differs from its exact owner evidence.")}if(t.comparison&&(I(t.comparison.baseline),I(t.comparison.candidate),!t.frozen||t.comparison.frozenHash!==s(t.frozen)||!E(t.comparison.baseline,t.comparison.candidate).comparable))throw new Error("Improvement comparison is not bound to a comparable frozen candidate.");if(t.status==="ready_for_review"&&(!t.frozen||!t.comparison))throw new Error("Improvement is missing qualification.");if(t.status==="adopting"&&(!t.adoptionIntent||!t.frozen||t.adoptionIntent.frozenHash!==s(t.frozen)))throw new Error("Improvement adoption intent is not bound to its tested revision.");if(t.status==="accepted"&&(!t.acceptance||!t.comparison||!t.frozen))throw new Error("Improvement acceptance is missing its exact qualification receipt.");if(t.status==="rolled_back"&&(!t.acceptance||!t.rollback))throw new Error("Profile rollback is missing its durable owner receipt.");return t}m(D,"verifyExperimentImprovementState");function X(r){return D({...r,contentHash:s(r)})}m(X,"sealExperimentImprovementState");var Y=e.object({states:e.array(x).max(50),nextCursor:n.nullable()}).strict(),T=e.object({operationId:n,ownerWorkspaceId:n,expectedOwnerRevision:e.number().int().nonnegative(),baseRelease:i,profileRef:R,profileSourceRevision:e.string().min(1).max(500),projectId:n.nullable(),evidence:i,component:x.shape.component,mode:x.shape.mode,limits:x.shape.limits}).strict(),Z=e.discriminatedUnion("operation",[e.object({operation:e.literal("list"),limit:e.number().int().min(1).max(50).default(30),cursor:n.optional()}).strict(),e.object({operation:e.literal("options"),evidence:i}).strict(),e.object({operation:e.literal("start"),request:T}).strict(),e.object({operation:e.enum(["read","humanComparisonOptions"]),id:n}).strict(),e.object({operation:e.literal("instructions"),id:n}).strict(),e.object({operation:e.literal("edit"),id:n,revision:e.number().int().positive(),expectedFileHash:c,text:e.string().max(25e4)}).strict(),e.object({operation:e.literal("mode"),id:n,revision:e.number().int().positive(),mode:e.enum(["manual","llm_assisted"])}).strict(),e.object({operation:e.literal("author"),id:n,revision:e.number().int().positive(),modelId:n,prompt:e.string().min(1).max(2e4)}).strict(),e.object({operation:e.enum(["freeze","finishAuthoring","useCandidate","discard","cancel","rollback"]),id:n,revision:e.number().int().positive()}).strict(),e.object({operation:e.literal("test"),id:n,revision:e.number().int().positive(),recipe:C}).strict(),e.object({operation:e.literal("compare"),id:n,revision:e.number().int().positive(),baseline:i,candidate:i,humanSelections:H.optional()}).strict()]),S=e.object({teamId:n,evidence:i,scoring:A.optional(),profiles:e.array(e.object({id:c,name:e.string(),profileRef:R,ownerWorkspaceId:n,ownerRevision:e.number().int().nonnegative(),baseRelease:i,profileSourceRevision:e.string(),components:e.array(e.object({kind:e.enum(["skill","instruction","agent","workflow"]),path:e.string(),agentId:e.string().optional(),workflowId:e.string().optional(),label:e.string(),binding:v}).strict()).max(500)}).strict()).max(100)}).strict(),O=e.object({candidateId:n,actorId:n,teamId:n,projectId:n.nullable(),candidateRevision:e.number().int().positive(),recipeHash:c,baseline:e.object({manifest:f,result:h}).strict(),candidate:e.object({manifest:f,result:h}).strict(),contentHash:c}).strict();function U(r){let t=O.parse(r),{contentHash:l,...b}=t;if(s(b)!==l)throw new Error("Accepted Human discovery integrity failed.");for(let o of[t.baseline,t.candidate])if(I(o),o.manifest.teamId!==t.teamId||o.manifest.lineage?.humanProjection)throw new Error("Discovery must retain original owner evidence.");return t}m(U,"verifyExperimentImprovementHumanOptions");function ee(r,t){if(!r.test||r.test.cancelRequestedAt)throw new Error("The paired test is unavailable.");let l={candidateId:r.id,actorId:r.actorId,teamId:r.teamId,projectId:r.projectId,candidateRevision:r.revision,recipeHash:r.test.recipeHash,...t};return U({...l,contentHash:s(l)})}m(ee,"sealExperimentImprovementHumanOptions");var a=e.string().trim().min(1).max(240),d=e.string().regex(/^[a-f0-9]{64}$/),_=e.object({schemaVersion:e.literal("openpond.advancedRefinerEvaluation.v1"),operationId:a,actorId:a,teamId:a,projectId:a.nullable(),mode:e.enum(["review_quality","downstream_adaptation"]),profileRef:e.object({source:e.enum(["local","github","openpond_git"]),repositoryId:a,profileId:a}).strict(),sourceRevision:e.string().min(1).max(500),baselineRelease:i,refinerRelease:i,evidence:i,externalDatasetBinding:v,adaptationDatasetBinding:v,privateClosureHash:d,adaptationTaskIds:e.array(a).min(1).max(1e4),holdoutTaskIds:e.array(a).min(1).max(1e4),adaptationSplit:e.enum(["train","validation","test","frozen_eval"]),holdoutSplit:e.enum(["train","validation","test","frozen_eval"]),environmentPolicy:e.discriminatedUnion("kind",[e.object({kind:e.literal("resettable"),environmentHash:d}).strict(),e.object({kind:e.literal("frozen_observations"),environmentHash:d}).strict()]),maximumCostUsd:e.number().finite().positive().max(1e4),maximumDurationMs:e.number().int().min(1e3).max(864e5),maximumModelSteps:e.number().int().min(1).max(1e3),contentHash:d}).strict();function M(r){let t=_.parse(r),{contentHash:l,...b}=t;if(s(b)!==l)throw new Error("Advanced Refiner evaluation admission changed.");let o=g(t.externalDatasetBinding);if(o.profileId!==t.profileRef.profileId||o.protectedProfileClosureHash!==t.privateClosureHash)throw new Error("Advanced evaluation changed its Profile or protected evaluator closure.");if(t.adaptationSplit===t.holdoutSplit||new Set([...t.adaptationTaskIds,...t.holdoutTaskIds]).size!==t.adaptationTaskIds.length+t.holdoutTaskIds.length)throw new Error("Adaptation and private holdout must be disjoint ordered cases.");let p=g(t.adaptationDatasetBinding);if(p.profileId!==o.profileId||p.packageHash!==o.packageHash||s(p.dataset)!==s(o.dataset)||s(p.target)!==s(o.target)||p.protectedProfileClosureHash!==o.protectedProfileClosureHash)throw new Error("This native advanced adapter needs separate adaptation and holdout recipes from the same exact released package and target.");if(p.split!==t.adaptationSplit||o.split!==t.holdoutSplit)throw new Error("Advanced split policies differ from their exact admitted recipes.");let q=new Set(o.population.map(u=>u.taskId)),z=new Set(p.population.map(u=>u.taskId));if(t.holdoutTaskIds.some(u=>!q.has(u))||t.adaptationTaskIds.some(u=>!z.has(u)))throw new Error("Advanced evaluation selected cases outside its exact Dataset recipe.");return t}m(M,"verifyAdvancedRefinerEvaluationPin");function ce(r){return M({...r,contentHash:s(r)})}m(ce,"sealAdvancedRefinerEvaluationPin");var B=e.object({pin:_,modelId:a,profileId:a,model:y,seed:e.number().int(),reasoningEffort:e.enum(["none","off","low","medium","high","xhigh","max"]).nullable()}).strict(),V=e.discriminatedUnion("operation",[e.object({operation:e.literal("start"),request:B}).strict(),e.object({operation:e.enum(["read","cancel","resume"]),id:a}).strict(),e.object({operation:e.literal("list")}).strict()]),W=e.object({taskId:a,sourceCaseHash:d,reviewSessionId:a,reviewTurnId:a,inputHarness:i,trigger:i,decision:e.enum(["no_action","route_deterministically","queue_refiner"]),outcome:i.nullable(),proposal:i.nullable(),validations:e.array(i).max(100),grade:e.object({id:a,contentHash:d,score:e.number().min(0).max(1).nullable(),passed:e.boolean(),failureClass:e.string().nullable()}).strict(),resetComplete:e.boolean()}).strict(),$=e.object({schemaVersion:e.literal("openpond.advancedRefinerReviewReceipt.v1"),id:a,runId:a,pinHash:d,ownerActorId:a,teamId:a,privateClosureHash:d,refinerRelease:i,cases:e.array(W).min(1).max(1e4),reviewScore:e.number().min(0).max(1).nullable(),completedCases:e.number().int().nonnegative(),noActionCases:e.number().int().nonnegative(),routedCases:e.number().int().nonnegative(),proposalCases:e.number().int().nonnegative(),costUsd:e.number().finite().nonnegative().nullable(),cleanupComplete:e.boolean(),createdAt:e.string().datetime(),contentHash:d}).strict();function de(r){return $.parse({...r,contentHash:s(r)})}m(de,"sealAdvancedRefinerReviewReceipt");var P=S.shape.profiles.element,me=S.extend({profiles:e.array(P.extend({components:e.array(P.shape.components.element.extend({adaptationSplits:e.array(e.object({split:e.enum(["train","validation","test","frozen_eval"]),taskIds:e.array(a)})),environmentHash:d,resettable:e.boolean(),reviewQuality:e.boolean()}))})),refinerReleases:e.array(i),activeRefiner:i.nullable(),models:e.array(e.object({id:a,profileId:a,name:e.string(),location:e.enum(["local","hosted"])}))}),L=e.object({operation:e.literal("prepare"),evidence:i,profileOptionId:a,componentLabel:a,mode:e.enum(["review_quality","downstream_adaptation"]),adaptationSplit:e.enum(["train","validation","test","frozen_eval"]),operationId:a,refinerRelease:i,maximumCostUsd:e.number().positive(),maximumDurationMs:e.number().int().positive(),maximumModelSteps:e.number().int().positive()}).strict(),le=e.union([V,L,e.object({operation:e.literal("options"),evidence:i}).strict()]),pe=e.object({modelRequests:e.number().int().nonnegative(),knownSpendUsd:e.number().nonnegative(),totalSpendUsd:e.number().nonnegative().nullable(),heldUsd:e.number().nonnegative(),uncertainRequests:e.number().int().nonnegative()}).strict();export{C as a,x as b,D as c,X as d,Y as e,T as f,Z as g,S as h,U as i,ee as j,_ as k,M as l,ce as m,B as n,V as o,W as p,$ as q,de as r,L as s,pe as t};
2
+ import{a as j}from"./chunk-WGX7WY4N.js";import{j as y}from"./chunk-A66CSUBJ.js";import{e as i,l as s}from"./chunk-SPDSSMFD.js";import{c as H,d as w,f as k}from"./chunk-KNO355LC.js";import{Fb as f,Kb as h,Nb as I,Ob as E,cb as v,db as g}from"./chunk-RCA6NGVA.js";import{A as e}from"./chunk-PF56N7ZY.js";import{a as m}from"./chunk-FTQLQJQV.js";var A=e.object({sourcePass:i,graders:j.shape.graders,mappings:j.shape.mappings,maximumCostUsd:e.number().finite().positive().max(1e4)}).strict(),C=e.object({externalDatasetBinding:v,scoring:A.optional(),modelId:e.string().min(1).max(300),maximumCostUsd:e.number().finite().positive().max(1e4)}).strict(),R=e.object({source:e.enum(["local","github","openpond_git"]),repositoryId:e.string().trim().min(1),profileId:e.string().trim().min(1)}).strict(),n=e.string().min(1).max(240),c=e.string().regex(/^[a-f0-9]{64}$/),x=e.object({schemaVersion:e.literal("openpond.experimentImprovement.v1"),id:n,operationId:n,requestHash:c,actorId:n,teamId:n,projectId:n.nullable(),ownerWorkspaceId:n,ownerRevision:e.number().int().nonnegative(),ownerSourceRevision:e.string().min(1).max(500),baseRelease:i,profileRef:R,baseProfileSourceRevision:e.string().min(1).max(500),evidence:e.object({manifest:f,result:h}).strict(),component:e.object({kind:e.enum(["skill","workflow","agent","instruction"]),path:e.string().min(1).max(2e3),workflowId:n.optional()}).strict(),mode:e.enum(["manual","llm_assisted"]),status:e.enum(["draft","authoring_queued","authoring","frozen","testing","ready_for_review","adopting","accepted","rolled_back","declined","failed","cancelled"]),revision:e.number().int().positive(),limits:e.object({maximumCostUsd:e.number().finite().positive(),maximumAuthoringSteps:e.number().int().min(1).max(500),maximumDurationMs:e.number().int().min(1e3).max(864e5)}).strict(),authoringSteps:e.number().int().nonnegative().max(500),work:e.object({sessionId:n,turnId:n,revision:e.number().int().positive(),startedAt:e.string().datetime()}).strict().nullable(),frozen:e.object({release:i,sourceRevision:e.string().min(1).max(500),profileSourceRevision:e.string().min(1).max(500),authoringHash:c,partitionHash:c,executableSourceHash:c,protectedClosureHash:c,candidateRevision:e.number().int().positive(),diff:e.array(e.object({path:e.string(),before:c.nullable(),after:c.nullable()}).strict()).max(1e4)}).strict().nullable(),test:e.object({recipe:C,recipeHash:e.string().regex(/^[a-f0-9]{64}$/),baselineOperationId:e.string(),candidateOperationId:e.string(),cancelRequestedAt:e.string().datetime().nullable(),dispatching:e.object({kind:e.enum(["baseline","candidate"]),token:n,pid:e.number().int().positive(),processStart:e.string().nullable(),startedAt:e.string().datetime()}).strict().nullable()}).strict().nullable(),comparison:e.object({baseline:e.object({manifest:f,result:h}).strict(),candidate:e.object({manifest:f,result:h}).strict(),frozenHash:c,humanProjection:w.optional()}).strict().nullable(),adoptionIntent:e.object({operationId:n,expectedOwnerRevision:e.number().int().nonnegative(),frozenHash:c,humanProjection:w.optional()}).strict().nullable(),acceptance:i.nullable(),rollback:i.nullable(),error:e.string().max(2e3).nullable(),createdAt:e.string().datetime(),updatedAt:e.string().datetime(),contentHash:c}).strict();function D(r){let t=x.parse(r),{contentHash:l,...b}=t;if(s(b)!==l)throw new Error("Improvement state integrity failed.");if(I(t.evidence),t.evidence.manifest.teamId!==t.teamId||t.evidence.result.status!=="completed"||!t.evidence.result.cases.some(o=>o.status==="completed"))throw new Error("Improvement requires usable completed owner evidence.");if(t.test&&(s(t.test.recipe)!==t.test.recipeHash||g(t.test.recipe.externalDatasetBinding).profileId!==t.profileRef.profileId))throw new Error("The test recipe changed its exact selected Profile.");if(t.comparison?.humanProjection){let o=k(t.comparison.humanProjection);if(o.teamId!==t.teamId||o.projectId!==t.projectId||s(o.baseline)!==s(t.comparison.baseline)||s(o.candidate)!==s(t.comparison.candidate))throw new Error("Human comparison projection differs from its exact owner evidence.")}if(t.comparison&&(I(t.comparison.baseline),I(t.comparison.candidate),!t.frozen||t.comparison.frozenHash!==s(t.frozen)||!E(t.comparison.baseline,t.comparison.candidate).comparable))throw new Error("Improvement comparison is not bound to a comparable frozen candidate.");if(t.status==="ready_for_review"&&(!t.frozen||!t.comparison))throw new Error("Improvement is missing qualification.");if(t.status==="adopting"&&(!t.adoptionIntent||!t.frozen||t.adoptionIntent.frozenHash!==s(t.frozen)))throw new Error("Improvement adoption intent is not bound to its tested revision.");if(t.status==="accepted"&&(!t.acceptance||!t.comparison||!t.frozen))throw new Error("Improvement acceptance is missing its exact qualification receipt.");if(t.status==="rolled_back"&&(!t.acceptance||!t.rollback))throw new Error("Profile rollback is missing its durable owner receipt.");return t}m(D,"verifyExperimentImprovementState");function X(r){return D({...r,contentHash:s(r)})}m(X,"sealExperimentImprovementState");var Y=e.object({states:e.array(x).max(50),nextCursor:n.nullable()}).strict(),T=e.object({operationId:n,ownerWorkspaceId:n,expectedOwnerRevision:e.number().int().nonnegative(),baseRelease:i,profileRef:R,profileSourceRevision:e.string().min(1).max(500),projectId:n.nullable(),evidence:i,component:x.shape.component,mode:x.shape.mode,limits:x.shape.limits}).strict(),Z=e.discriminatedUnion("operation",[e.object({operation:e.literal("list"),limit:e.number().int().min(1).max(50).default(30),cursor:n.optional()}).strict(),e.object({operation:e.literal("options"),evidence:i}).strict(),e.object({operation:e.literal("start"),request:T}).strict(),e.object({operation:e.enum(["read","humanComparisonOptions"]),id:n}).strict(),e.object({operation:e.literal("instructions"),id:n}).strict(),e.object({operation:e.literal("edit"),id:n,revision:e.number().int().positive(),expectedFileHash:c,text:e.string().max(25e4)}).strict(),e.object({operation:e.literal("mode"),id:n,revision:e.number().int().positive(),mode:e.enum(["manual","llm_assisted"])}).strict(),e.object({operation:e.literal("author"),id:n,revision:e.number().int().positive(),modelId:n,prompt:e.string().min(1).max(2e4)}).strict(),e.object({operation:e.enum(["freeze","finishAuthoring","useCandidate","discard","cancel","rollback"]),id:n,revision:e.number().int().positive()}).strict(),e.object({operation:e.literal("test"),id:n,revision:e.number().int().positive(),recipe:C}).strict(),e.object({operation:e.literal("compare"),id:n,revision:e.number().int().positive(),baseline:i,candidate:i,humanSelections:H.optional()}).strict()]),S=e.object({teamId:n,evidence:i,scoring:A.optional(),profiles:e.array(e.object({id:c,name:e.string(),profileRef:R,ownerWorkspaceId:n,ownerRevision:e.number().int().nonnegative(),baseRelease:i,profileSourceRevision:e.string(),components:e.array(e.object({kind:e.enum(["skill","instruction","agent","workflow"]),path:e.string(),agentId:e.string().optional(),workflowId:e.string().optional(),label:e.string(),binding:v}).strict()).max(500)}).strict()).max(100)}).strict(),O=e.object({candidateId:n,actorId:n,teamId:n,projectId:n.nullable(),candidateRevision:e.number().int().positive(),recipeHash:c,baseline:e.object({manifest:f,result:h}).strict(),candidate:e.object({manifest:f,result:h}).strict(),contentHash:c}).strict();function U(r){let t=O.parse(r),{contentHash:l,...b}=t;if(s(b)!==l)throw new Error("Accepted Human discovery integrity failed.");for(let o of[t.baseline,t.candidate])if(I(o),o.manifest.teamId!==t.teamId||o.manifest.lineage?.humanProjection)throw new Error("Discovery must retain original owner evidence.");return t}m(U,"verifyExperimentImprovementHumanOptions");function ee(r,t){if(!r.test||r.test.cancelRequestedAt)throw new Error("The paired test is unavailable.");let l={candidateId:r.id,actorId:r.actorId,teamId:r.teamId,projectId:r.projectId,candidateRevision:r.revision,recipeHash:r.test.recipeHash,...t};return U({...l,contentHash:s(l)})}m(ee,"sealExperimentImprovementHumanOptions");var a=e.string().trim().min(1).max(240),d=e.string().regex(/^[a-f0-9]{64}$/),_=e.object({schemaVersion:e.literal("openpond.advancedRefinerEvaluation.v1"),operationId:a,actorId:a,teamId:a,projectId:a.nullable(),mode:e.enum(["review_quality","downstream_adaptation"]),profileRef:e.object({source:e.enum(["local","github","openpond_git"]),repositoryId:a,profileId:a}).strict(),sourceRevision:e.string().min(1).max(500),baselineRelease:i,refinerRelease:i,evidence:i,externalDatasetBinding:v,adaptationDatasetBinding:v,privateClosureHash:d,adaptationTaskIds:e.array(a).min(1).max(1e4),holdoutTaskIds:e.array(a).min(1).max(1e4),adaptationSplit:e.enum(["train","validation","test","frozen_eval"]),holdoutSplit:e.enum(["train","validation","test","frozen_eval"]),environmentPolicy:e.discriminatedUnion("kind",[e.object({kind:e.literal("resettable"),environmentHash:d}).strict(),e.object({kind:e.literal("frozen_observations"),environmentHash:d}).strict()]),maximumCostUsd:e.number().finite().positive().max(1e4),maximumDurationMs:e.number().int().min(1e3).max(864e5),maximumModelSteps:e.number().int().min(1).max(1e3),contentHash:d}).strict();function M(r){let t=_.parse(r),{contentHash:l,...b}=t;if(s(b)!==l)throw new Error("Advanced Refiner evaluation admission changed.");let o=g(t.externalDatasetBinding);if(o.profileId!==t.profileRef.profileId||o.protectedProfileClosureHash!==t.privateClosureHash)throw new Error("Advanced evaluation changed its Profile or protected evaluator closure.");if(t.adaptationSplit===t.holdoutSplit||new Set([...t.adaptationTaskIds,...t.holdoutTaskIds]).size!==t.adaptationTaskIds.length+t.holdoutTaskIds.length)throw new Error("Adaptation and private holdout must be disjoint ordered cases.");let p=g(t.adaptationDatasetBinding);if(p.profileId!==o.profileId||p.packageHash!==o.packageHash||s(p.dataset)!==s(o.dataset)||s(p.target)!==s(o.target)||p.protectedProfileClosureHash!==o.protectedProfileClosureHash)throw new Error("This native advanced adapter needs separate adaptation and holdout recipes from the same exact released package and target.");if(p.split!==t.adaptationSplit||o.split!==t.holdoutSplit)throw new Error("Advanced split policies differ from their exact admitted recipes.");let q=new Set(o.population.map(u=>u.taskId)),z=new Set(p.population.map(u=>u.taskId));if(t.holdoutTaskIds.some(u=>!q.has(u))||t.adaptationTaskIds.some(u=>!z.has(u)))throw new Error("Advanced evaluation selected cases outside its exact Dataset recipe.");return t}m(M,"verifyAdvancedRefinerEvaluationPin");function ce(r){return M({...r,contentHash:s(r)})}m(ce,"sealAdvancedRefinerEvaluationPin");var B=e.object({pin:_,modelId:a,profileId:a,model:y,seed:e.number().int(),reasoningEffort:e.enum(["none","off","low","medium","high","xhigh","max"]).nullable()}).strict(),V=e.discriminatedUnion("operation",[e.object({operation:e.literal("start"),request:B}).strict(),e.object({operation:e.enum(["read","cancel","resume"]),id:a}).strict(),e.object({operation:e.literal("list")}).strict()]),W=e.object({taskId:a,sourceCaseHash:d,reviewSessionId:a,reviewTurnId:a,inputHarness:i,trigger:i,decision:e.enum(["no_action","route_deterministically","queue_refiner"]),outcome:i.nullable(),proposal:i.nullable(),validations:e.array(i).max(100),grade:e.object({id:a,contentHash:d,score:e.number().min(0).max(1).nullable(),passed:e.boolean(),failureClass:e.string().nullable()}).strict(),resetComplete:e.boolean()}).strict(),$=e.object({schemaVersion:e.literal("openpond.advancedRefinerReviewReceipt.v1"),id:a,runId:a,pinHash:d,ownerActorId:a,teamId:a,privateClosureHash:d,refinerRelease:i,cases:e.array(W).min(1).max(1e4),reviewScore:e.number().min(0).max(1).nullable(),completedCases:e.number().int().nonnegative(),noActionCases:e.number().int().nonnegative(),routedCases:e.number().int().nonnegative(),proposalCases:e.number().int().nonnegative(),costUsd:e.number().finite().nonnegative().nullable(),cleanupComplete:e.boolean(),createdAt:e.string().datetime(),contentHash:d}).strict();function de(r){return $.parse({...r,contentHash:s(r)})}m(de,"sealAdvancedRefinerReviewReceipt");var P=S.shape.profiles.element,me=S.extend({profiles:e.array(P.extend({components:e.array(P.shape.components.element.extend({adaptationSplits:e.array(e.object({split:e.enum(["train","validation","test","frozen_eval"]),taskIds:e.array(a)})),environmentHash:d,resettable:e.boolean(),reviewQuality:e.boolean()}))})),refinerReleases:e.array(i),activeRefiner:i.nullable(),models:e.array(e.object({id:a,profileId:a,name:e.string(),location:e.enum(["local","hosted"])}))}),L=e.object({operation:e.literal("prepare"),evidence:i,profileOptionId:a,componentLabel:a,mode:e.enum(["review_quality","downstream_adaptation"]),adaptationSplit:e.enum(["train","validation","test","frozen_eval"]),operationId:a,refinerRelease:i,maximumCostUsd:e.number().positive(),maximumDurationMs:e.number().int().positive(),maximumModelSteps:e.number().int().positive()}).strict(),le=e.union([V,L,e.object({operation:e.literal("options"),evidence:i}).strict()]),pe=e.object({modelRequests:e.number().int().nonnegative(),knownSpendUsd:e.number().nonnegative(),totalSpendUsd:e.number().nonnegative().nullable(),heldUsd:e.number().nonnegative(),uncertainRequests:e.number().int().nonnegative()}).strict();export{C as a,x as b,D as c,X as d,Y as e,T as f,Z as g,S as h,U as i,ee as j,_ as k,M as l,ce as m,B as n,V as o,W as p,$ as q,de as r,L as s,pe as t};
@@ -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-Y4OWBBDD.js";import{b as u,m as f}from"./chunk-KGNCKIFP.js";import{b as d}from"./chunk-ES2ISFJC.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-M55H7KVR.js";import{b as u,m as f}from"./chunk-BIPQCJ5V.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,9 @@
1
+ import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
+ import{A as e}from"./chunk-PF56N7ZY.js";import{a as o}from"./chunk-FTQLQJQV.js";import{createHash as Pe}from"node:crypto";function G(i){if(i===null||typeof i=="boolean"||typeof i=="string")return i;if(typeof i=="number"){if(!Number.isFinite(i))throw new Error("Canonical JSON cannot encode a non-finite number.");return i}if(Array.isArray(i))return i.map(G);if(typeof i=="object"){let t={};for(let r of Object.keys(i).sort()){let n=i[r];n!==void 0&&(t[r]=G(n))}return t}throw new Error(`Canonical JSON cannot encode ${typeof i}.`)}o(G,"canonicalJson");function C(i){return Pe("sha256").update(JSON.stringify(G(i)),"utf8").digest("hex")}o(C,"canonicalHash");function at(i){if(!i.maxContextTokens||!i.usableContextTokens)return{shouldCompact:!1,projectedTokens:i.projectedTokens,thresholdTokens:Number.MAX_SAFE_INTEGER,usableContextTokens:0,maxContextTokens:0,tokenSource:"heuristic"};let t=Math.max(.01,Math.min(1,(i.triggerPercent??85)/100)),r=Math.max(1,Math.floor(i.usableContextTokens*t));return{shouldCompact:i.projectedTokens>=r,projectedTokens:i.projectedTokens,thresholdTokens:r,usableContextTokens:i.usableContextTokens,maxContextTokens:i.maxContextTokens,tokenSource:"heuristic"}}o(at,"agentCompactionDecision");async function ct(i){await i.started();try{return await i.compact()}catch(t){throw await i.failed(t),t}}o(ct,"runAgentCompaction");async function lt(i){let t=i.host.projectEvents(i.events),r=i.host.selectEvents(t,i.maxContextTokens),{summaryEvents:n,preservedEvents:s,preservedEventIds:c}=r;if(n.length===0)throw new Error("There is not enough prior context to compact.");let l=i.host.normalizeRecords(n),u=i.host.normalizeRecords(s),m=i.host.buildFileLedger(i.host.normalizeRecords(t)),h=i.host.serializeRecords(l,i.host.inputCharBudget(i.maxContextTokens));if(!h.text.trim())throw new Error("There is not enough prior context to compact.");let y=i.host.buildSummaryMessages({serializedHistory:h.text,fileLedger:m}),f=Date.now(),v=(await i.host.streamSummary({model:i.model,messages:y,signal:i.signal})).trim(),x=Date.now()-f;if(!v)throw new Error("Compaction summary was empty.");let _=i.host.estimateProjection({events:t,preservedEvents:s,summary:v}),g=i.host.createMetrics({sourceEvents:t.length,summarizedEvents:n.length,preservedEvents:s.length,sourceRecords:h.sourceRecordCount,includedRecords:h.includedRecordCount,omittedRecords:h.omittedRecordCount,preservedRecords:u.length,truncatedRecords:h.truncatedRecordCount,summaryInputTruncated:h.inputTruncated,sourceSelectionStrategy:h.selectionStrategy,summaryInputChars:h.inputChars,retainedTailTokens:r.retainedTailTokens,retainedTailBudgetTokens:r.retainedTailBudgetTokens,finalProviderContextTokens:_.inputTokensAfter,durationMs:x,fileLedgerEntries:m.length,splitTurnId:r.splitTurnId});return{summary:v,model:i.model,compactedThroughEventId:t[t.length-1]?.id??null,compactedThroughTurnId:i.host.lastTurnId(t),preservedFromEventId:s[0]?.id??null,preservedEventIds:c,preservedResourceRefs:i.host.durableResourceRefs(i.events),sourceEventCount:n.length,preservedEventCount:s.length,fileLedger:m,inputTokensBefore:_.inputTokensBefore,inputTokensAfter:_.inputTokensAfter,maxContextTokens:i.maxContextTokens,tokenSource:"heuristic",metrics:g}}o(lt,"runAgentCompactionProgram");var Ae=e.enum(["thread.started","thread.resumed","turn.started","turn.steered","turn.interrupted","turn.completed","turn.failed","item.started","item.delta","item.completed","assistant.reasoning.delta","assistant.delta","tool.started","tool.completed","approval.requested","approval.resolved","user_input.requested","user_input.resolved","compaction.started","compaction.completed","harness.admitted","harness.refiner.queued","harness.refiner.started","harness.refiner.completed","harness.refiner.failed","diagnostic"]),ze=e.object({sequence:e.number().int().nonnegative(),name:Ae,source:e.enum(["runtime","provider","tool","host","refiner"]),status:e.string().trim().min(1).nullable().default(null),threadId:e.string().trim().min(1),turnId:e.string().trim().min(1).nullable().default(null),callId:e.string().trim().min(1).nullable().default(null),output:e.string().nullable().default(null),error:e.string().nullable().default(null),data:e.record(e.string(),e.unknown()).default({})}).strict();function ht(i){return C(ze.parse(i))}o(ht,"canonicalEventHash");var H="2026-09-20",wt=["initialize","initialized","runtime/capabilities","thread/start","thread/resume","thread/read","turn/start","turn/steer","task/inbox","task/queue","task/inputUpdate","turn/interrupt","approval/resolve","userInput/resolve","profile/workflows","profile/evaluations","profile/trainingSource","profile/evaluations/prepare","profile/evaluations/run","profile/evaluations/runSuite","profile/evaluations/executeCase","profile/evaluations/executeRun","profile/evaluations/compare","profile/evaluations/report","experiments/executeCase","experiments/cancelCase","harness/inspect","harness/proposalReview","harness/review","harness/acceptEvaluationReview","harness/materializeEvaluationTaskset","harness/runEvaluationBaseline","harness/validate","harness/backgroundReview","harness/diff","harness/rollback","refiner/inspect","refiner/update","refiner/activate","refiner/rollback"],te=e.object({jsonrpc:e.literal("2.0"),id:e.union([e.string(),e.number()]),method:e.string().trim().min(1),params:e.unknown().optional()}).strict(),re=e.object({jsonrpc:e.literal("2.0"),method:e.string().trim().min(1),params:e.unknown().optional()}).strict(),K=e.object({jsonrpc:e.literal("2.0"),id:e.union([e.string(),e.number()]),result:e.unknown()}).strict(),Q=e.object({jsonrpc:e.literal("2.0"),id:e.union([e.string(),e.number(),e.null()]),error:e.object({code:e.number().int(),message:e.string(),data:e.unknown().optional()}).strict()}).strict(),vt=e.union([te,re,K,Q]),He=e.object({protocolVersion:e.string().trim().min(1),client:e.object({name:e.string().trim().min(1),version:e.string().trim().min(1)}).strict(),capabilities:e.record(e.string(),e.unknown()).default({})}).strict(),L=class{static{o(this,"AgentJsonRpcDispatcher")}#e;#t=null;#r=!1;constructor(t){this.#e=t}get initialized(){return this.#r}async handle(t){let r=re.safeParse(t);if(r.success&&!("id"in t)){if(r.data.method==="initialized"){if(!this.#t)throw new q(-32002,"initialize must be called first");this.#r=!0}return null}let n=te.safeParse(t);if(!n.success)return ee(null,-32600,"Invalid Request",n.error.flatten());let s=n.data;try{let c=await this.#n(s.method,s.params);return{jsonrpc:"2.0",id:s.id,result:c}}catch(c){let l=c instanceof q?c:new q(-32603,c instanceof Error?c.message:String(c));return ee(s.id,l.code,l.message,l.data)}}async#n(t,r){if(t==="initialize"){let n=He.parse(r);if(n.protocolVersion!==H)throw new q(-32001,"Incompatible agent protocol version",{requested:n.protocolVersion,supported:H});return this.#t=n,{protocolVersion:H,server:{name:"openpond-app-server",version:"1"},capabilities:await this.#e.capabilities()}}if(!this.#r)throw new q(-32002,"initialized notification is required");switch(t){case"runtime/capabilities":return this.#e.capabilities(r);case"thread/start":return this.#e.threadStart(r);case"thread/resume":return this.#e.threadResume(r);case"thread/read":return this.#e.threadRead(r);case"turn/start":return this.#e.turnStart(r);case"turn/steer":return this.#e.turnSteer(r);case"task/inbox":return this.#e.taskInbox(r);case"task/queue":return this.#e.taskQueue(r);case"task/inputUpdate":return this.#e.taskInputUpdate(r);case"turn/interrupt":return this.#e.turnInterrupt(r);case"approval/resolve":return this.#e.approvalResolve(r);case"userInput/resolve":return this.#e.userInputResolve(r);case"profile/workflows":return this.#e.profileWorkflows(r);case"profile/evaluations":return this.#e.profileEvaluations(r);case"profile/trainingSource":return this.#e.profileTrainingSource(r);case"profile/evaluations/prepare":return this.#e.profileEvaluationPrepare(r);case"profile/evaluations/run":return this.#e.profileEvaluationRun(r);case"experiments/executeCase":{if(!this.#e.experimentExecuteCase)throw new Error("Experiment execution is unavailable in this runtime.");return this.#e.experimentExecuteCase(r)}case"experiments/cancelCase":{if(!this.#e.experimentCancelCase)throw new Error("Experiment cancellation is unavailable in this runtime.");return this.#e.experimentCancelCase(r)}case"profile/evaluations/runSuite":return this.#e.profileEvaluationRunSuite(r);case"profile/evaluations/executeCase":return this.#e.profileEvaluationExecuteCase(r);case"profile/evaluations/executeRun":return this.#e.profileEvaluationExecuteRun(r);case"profile/evaluations/compare":return this.#e.profileEvaluationCompare(r);case"profile/evaluations/report":return this.#e.profileEvaluationReport(r);case"harness/inspect":return this.#e.harnessInspect(r);case"harness/proposalReview":return this.#e.harnessProposalReview(r);case"harness/review":return this.#e.harnessReview(r);case"harness/acceptEvaluationReview":return this.#e.harnessAcceptEvaluationReview(r);case"harness/materializeEvaluationTaskset":return this.#e.harnessMaterializeEvaluationTaskset(r);case"harness/runEvaluationBaseline":return this.#e.harnessRunEvaluationBaseline(r);case"harness/validate":return this.#e.harnessValidate(r);case"harness/backgroundReview":return this.#e.harnessBackgroundReview(r);case"harness/diff":return this.#e.harnessDiff(r);case"harness/rollback":return this.#e.harnessRollback(r);case"refiner/inspect":return this.#e.refinerInspect(r);case"refiner/update":return this.#e.refinerUpdate(r);case"refiner/activate":return this.#e.refinerActivate(r);case"refiner/rollback":return this.#e.refinerRollback(r);default:throw new q(-32601,`Method not found: ${t}`)}}},q=class extends Error{static{o(this,"JsonRpcDispatchError")}code;data;constructor(t,r,n){super(r),this.code=t,this.data=n}};function ee(i,t,r,n){return{jsonrpc:"2.0",id:i,error:{code:t,message:r,...n===void 0?{}:{data:n}}}}o(ee,"jsonRpcError");var ne=class{static{o(this,"AgentRpcClient")}#e;#t;constructor(t){this.#e=t.request.bind(t),this.#t=t.notify.bind(t)}async initialize(t,r={}){let n=await this.#e("initialize",{protocolVersion:H,client:t,capabilities:r});return await this.#t("initialized"),n}capabilities=o((t={})=>this.#e("runtime/capabilities",t),"capabilities");threadStart=o(t=>this.#e("thread/start",t),"threadStart");threadResume=o(t=>this.#e("thread/resume",t),"threadResume");threadRead=o(t=>this.#e("thread/read",t),"threadRead");turnStart=o(t=>this.#e("turn/start",t),"turnStart");turnSteer=o(t=>this.#e("turn/steer",t),"turnSteer");taskInbox=o(t=>this.#e("task/inbox",t),"taskInbox");taskQueue=o(t=>this.#e("task/queue",t),"taskQueue");taskInputUpdate=o(t=>this.#e("task/inputUpdate",t),"taskInputUpdate");turnInterrupt=o(t=>this.#e("turn/interrupt",t),"turnInterrupt");approvalResolve=o(t=>this.#e("approval/resolve",t),"approvalResolve");userInputResolve=o(t=>this.#e("userInput/resolve",t),"userInputResolve");profileWorkflows=o(t=>this.#e("profile/workflows",t),"profileWorkflows");profileEvaluations=o(t=>this.#e("profile/evaluations",t),"profileEvaluations");profileEvaluationPrepare=o(t=>this.#e("profile/evaluations/prepare",t),"profileEvaluationPrepare");profileEvaluationRun=o(t=>this.#e("profile/evaluations/run",t),"profileEvaluationRun");profileEvaluationRunSuite=o(t=>this.#e("profile/evaluations/runSuite",t),"profileEvaluationRunSuite");profileEvaluationExecuteCase=o(t=>this.#e("profile/evaluations/executeCase",t),"profileEvaluationExecuteCase");profileEvaluationExecuteRun=o(t=>this.#e("profile/evaluations/executeRun",t),"profileEvaluationExecuteRun");profileEvaluationCompare=o(t=>this.#e("profile/evaluations/compare",t),"profileEvaluationCompare");experimentExecuteCase=o(t=>this.#e("experiments/executeCase",t),"experimentExecuteCase");experimentCancelCase=o(t=>this.#e("experiments/cancelCase",t),"experimentCancelCase");harnessInspect=o((t={})=>this.#e("harness/inspect",t),"harnessInspect");harnessProposalReview=o((t={})=>this.#e("harness/proposalReview",t),"harnessProposalReview");harnessReview=o((t={})=>this.#e("harness/review",t),"harnessReview");harnessAcceptEvaluationReview=o((t={})=>this.#e("harness/acceptEvaluationReview",t),"harnessAcceptEvaluationReview");harnessMaterializeEvaluationTaskset=o((t={})=>this.#e("harness/materializeEvaluationTaskset",t),"harnessMaterializeEvaluationTaskset");harnessRunEvaluationBaseline=o((t={})=>this.#e("harness/runEvaluationBaseline",t),"harnessRunEvaluationBaseline");harnessValidate=o((t={})=>this.#e("harness/validate",t),"harnessValidate");harnessBackgroundReview=o((t={})=>this.#e("harness/backgroundReview",t),"harnessBackgroundReview");harnessDiff=o((t={})=>this.#e("harness/diff",t),"harnessDiff");harnessRollback=o((t={})=>this.#e("harness/rollback",t),"harnessRollback");refinerInspect=o(t=>this.#e("refiner/inspect",t),"refinerInspect");refinerUpdate=o(t=>this.#e("refiner/update",t),"refinerUpdate");refinerActivate=o(t=>this.#e("refiner/activate",t),"refinerActivate");refinerRollback=o(t=>this.#e("refiner/rollback",t),"refinerRollback")};var X=e.object({caseId:e.string().trim().min(1).max(191),admissionHash:e.string().regex(/^[a-f0-9]{64}$/),definitionHash:e.string().regex(/^[a-f0-9]{64}$/),ordinal:e.number().int().nonnegative(),operation:e.enum(["create","reset","step","collect","destroy"]),value:e.record(e.string(),e.unknown()),timeoutMs:e.number().int().min(1).max(3e4)}).strict();var d=e.string().trim().min(1).max(200),D=e.string().trim().min(1).max(32e3),M=e.number().int().nonnegative(),ie=e.object({id:d,sessionId:d,senderSessionId:d.nullable(),senderKind:e.enum(["user","task","runtime"]),kind:e.enum(["steer","message","followup","queued","result"]),body:D,payload:e.record(e.string(),e.unknown()),idempotencyKey:d,replyTo:d.nullable(),expectedTurnId:d.nullable()}).strict(),Me=e.discriminatedUnion("action",[e.object({action:e.literal("resume"),expectedRevision:e.number().int().positive()}).strict(),e.object({action:e.literal("cancel"),expectedRevision:e.number().int().positive()}).strict(),e.object({action:e.literal("edit"),expectedRevision:e.number().int().positive(),body:D}).strict(),e.object({action:e.literal("steer"),expectedRevision:e.number().int().positive(),expectedTurnId:d}).strict()]),se=e.object({id:d,sessionId:d,turnId:d,targetSessionId:d.nullable(),targetTurnId:d.nullable(),targetInputId:d.nullable(),afterSequence:M,deadline:e.string(),state:e.enum(["waiting","message","completed","failed","interrupted","unavailable","timeout","cancelled"]),createdAt:e.string(),updatedAt:e.string()}).strict(),oe=e.record(e.string(),e.unknown()),Ve=e.enum(["queued","running","completed","failed","cancelled","needs_resume"]),Ue=e.object({parentSessionId:d.nullable().optional(),childSessionId:d.nullable().optional(),status:e.array(Ve).nullable().optional(),afterId:e.string().max(200),limit:e.number().int().min(1).max(10)}).strict(),ae=e.discriminatedUnion("action",[e.object({action:e.literal("recoverTaskInboxOwners"),ownerId:d}).strict(),e.object({action:e.literal("hasTaskCompletion"),turnId:d}).strict(),e.object({action:e.literal("taskInboxSnapshot"),sessionId:d}).strict(),e.object({action:e.literal("taskInboxSnapshotInputs"),sessionId:d,afterSequence:M}).strict(),e.object({action:e.literal("declareTaskWork"),sessionId:d,turnId:d,ownerId:d,areas:e.array(D).max(100)}).strict(),e.object({action:e.literal("taskWorkAreas"),sessionId:d}).strict(),e.object({action:e.literal("admitTaskInput"),input:ie}).strict(),e.object({action:e.literal("admitTaskInputs"),inputs:e.array(ie).max(50)}).strict(),e.object({action:e.literal("rejectTaskInput"),id:d,error:D}).strict(),e.object({action:e.literal("getTaskInput"),id:d}).strict(),e.object({action:e.literal("taskInputsForSession"),sessionId:d,query:e.object({afterSequence:M.optional(),pendingOnly:e.boolean().optional(),limit:e.number().int().min(1).max(500).optional()}).strict()}).strict(),e.object({action:e.literal("mutateTaskInput"),sessionId:d,inputId:d,change:Me}).strict(),e.object({action:e.literal("openTaskInboxTurn"),sessionId:d,turnId:d,ownerId:d}).strict(),e.object({action:e.literal("renewTaskInboxTurn"),sessionId:d,turnId:d,ownerId:d}).strict(),e.object({action:e.literal("pendingTaskInputs"),sessionId:d,turnId:d,afterSequence:M}).strict(),e.object({action:e.literal("taskAssignmentInputs"),turnId:d,afterSequence:M}).strict(),e.object({action:e.literal("pauseTaskInboxTurn"),sessionId:d,turnId:d,ownerId:d}).strict(),e.object({action:e.literal("includeTaskInputs"),sessionId:d,turnId:d,ownerId:d,requestId:d}).strict(),e.object({action:e.literal("settleTaskInputRequest"),requestId:d,outcome:e.enum(["resolved","failed","replaced"])}).strict(),e.object({action:e.literal("sealTaskInboxTurn"),sessionId:d,turnId:d,ownerId:d}).strict(),e.object({action:e.literal("sealNativeTaskInboxTurn"),sessionId:d,turnId:d,ownerId:d}).strict(),e.object({action:e.literal("closeTaskInboxTurn"),sessionId:d,turnId:d,ownerId:d,outcome:e.enum(["completed","failed","interrupted"])}).strict(),e.object({action:e.literal("taskInboxPaused"),sessionId:d}).strict(),e.object({action:e.literal("reserveTaskFollowup"),sessionId:d,turnId:d,ownerId:d}).strict(),e.object({action:e.literal("taskInboxWakeTargets"),afterSessionId:e.string().max(200)}).strict(),e.object({action:e.literal("createTaskWait"),value:se}).strict(),e.object({action:e.literal("settleTaskWait"),id:d,state:se.shape.state}).strict(),e.object({action:e.literal("taskWaitsForSession"),sessionId:d,afterId:e.string().max(200)}).strict(),e.object({action:e.literal("commitSubagentCompletion"),value:oe,turnId:d}).strict(),e.object({action:e.literal("pendingTaskCompletions"),afterTurnId:e.string().max(200)}).strict(),e.object({action:e.literal("settleTaskCompletion"),turnId:d,inputId:d}).strict(),e.object({action:e.literal("upsertSubagentRun"),value:oe}).strict(),e.object({action:e.literal("getSubagentRun"),id:d}).strict(),e.object({action:e.literal("listSubagentRuns"),query:Ue}).strict()]);var V=e.string().trim().min(1).max(191),ce=e.object({createdAt:e.string().min(1),id:V}).strict(),le=e.enum(["trigger_decision","route_decision","refiner_outcome","proposal","targeted_validation","apply_receipt"]),ue=e.discriminatedUnion("action",[e.object({action:e.literal("active_release"),workspaceId:V}).strict(),e.object({action:e.literal("put_artifact"),workspaceId:V,kind:le,artifact:e.record(e.string(),e.unknown())}).strict(),e.object({action:e.literal("artifact_page"),workspaceId:V,kind:le,before:ce.nullable(),limit:e.number().int().min(1).max(200)}).strict(),e.object({action:e.literal("pending_trigger_page"),workspaceId:V,before:ce.nullable(),limit:e.number().int().min(1).max(200)}).strict()]);var w=e.string().trim().min(1).max(240),de=e.string().regex(/^[a-f0-9]{64}$/),pe=e.enum(["run_overlay","observation","trigger_decision","route_decision","proposal","targeted_validation","apply_receipt","refiner_outcome"]),me=e.object({createdAt:e.string().datetime(),id:w}).strict(),he=e.discriminatedUnion("action",[e.object({action:e.literal("artifact_put"),workspaceId:w,kind:pe,artifact:e.record(e.string(),e.unknown())}).strict(),e.object({action:e.literal("artifact_page"),workspaceId:w,kind:pe,before:me.nullable(),limit:e.number().int().min(1).max(100)}).strict(),e.object({action:e.literal("pending_page"),workspaceId:w,before:me.nullable(),limit:e.number().int().min(1).max(100)}).strict(),e.object({action:e.literal("workspace_get"),workspaceId:w}).strict(),e.object({action:e.literal("background_get"),workspaceId:w}).strict(),e.object({action:e.literal("overlay_get"),runId:w}).strict(),e.object({action:e.literal("overlay_freeze"),runId:w,expectedRevision:e.number().int().nonnegative(),overlay:e.record(e.string(),e.unknown()),proposal:e.record(e.string(),e.unknown())}).strict(),e.object({action:e.literal("memory_get"),workspaceId:w,sessionId:w,key:w}).strict(),e.object({action:e.literal("memory_page"),workspaceId:w,sessionId:w,before:e.object({updatedAt:e.string().datetime(),key:w}).strict().nullable(),limit:e.number().int().min(1).max(20),includeDeleted:e.boolean()}).strict(),e.object({action:e.literal("memory_write"),sessionId:w,input:e.record(e.string(),e.unknown())}).strict(),e.object({action:e.literal("release_get"),contentHash:de}).strict(),e.object({action:e.literal("release_put"),record:e.record(e.string(),e.unknown())}).strict(),e.object({action:e.literal("session_get"),sessionId:w}).strict(),e.object({action:e.literal("turn_get"),turnId:w}).strict(),e.object({action:e.literal("turn_page"),sessionId:w,before:e.number().int().positive().nullable(),limit:e.number().int().min(1).max(100)}).strict(),e.object({action:e.literal("event_page"),turnId:w,afterSequence:e.number().int().nonnegative(),names:e.array(w).max(40),limit:e.number().int().min(1).max(100)}).strict(),e.object({action:e.literal("event_append"),event:e.record(e.string(),e.unknown())}).strict(),e.object({action:e.literal("usage_put"),record:e.record(e.string(),e.unknown())}).strict(),e.object({action:e.literal("snapshot_restore"),turnId:w,expectedHash:de,snapshot:e.record(e.string(),e.unknown())}).strict()]);var E=e.string().trim().min(1).max(200),fe=e.string().regex(/^[a-f0-9]{64}$/),Oe=e.object({kind:e.enum(["structural","visual","test","user_review"]),status:e.enum(["passed","failed","not_run"]),label:e.string().trim().min(1).max(240),detail:e.string().trim().max(4e3).nullable().optional(),ref:e.string().trim().max(4096).nullable().optional()}),be=e.object({id:E,title:e.string().trim().min(1).max(240),sourceTaskId:E,sourceTurnId:E,revision:e.number().int().positive(),createdAt:e.string().datetime(),contentType:e.string().trim().min(1).max(200),sizeBytes:e.number().int().min(1).max(1e7),sha256:fe,validation:e.array(Oe).max(32)}).strict(),ge=e.object({sessionId:E,turnId:E,output:be}).strict(),we=e.object({uploadId:E,index:e.number().int().min(0).max(1024),offset:e.number().int().min(0).max(1e7),sha256:fe,contentsBase64:e.string().min(1).max(131072)}).strict(),ve=e.object({uploadId:E}).strict(),$e=be.pick({id:!0,title:!0,sourceTaskId:!0,sourceTurnId:!0,revision:!0,createdAt:!0,validation:!0}),xe=e.object({sessionId:E,turnId:E,output:$e,sandboxPath:e.string().trim().min(1).max(4096)}).strict();var U=e.string().trim().min(1).max(200),Be=e.object({type:e.enum(["create","get","start","stop","exec","open_port","list_files","download_file","upload_file","search_files","delete_file","stat_file","mkdir","move_file","process_start","process_get","git_status","git_diff","git_export_patch","git_branch","git_commit","git_pull","git_push"]),sandboxId:U.optional(),payload:e.unknown().optional(),processId:U.optional(),failOnUnpreservedChanges:e.boolean().optional()}).strict().superRefine((i,t)=>{i.type!=="create"&&!i.sandboxId&&t.addIssue({code:"custom",message:"Sandbox identity is required."}),i.type==="create"&&i.sandboxId&&t.addIssue({code:"custom",message:"Create cannot target a sandbox identity."}),i.type==="process_get"&&!i.processId&&t.addIssue({code:"custom",message:"Process identity is required."})}),Ie=e.object({action:Be}).strict(),ye=e.object({sessionId:U,turnId:U,name:U}).strict();var p=1,a=e.string().trim().min(1).max(191),P=e.number().int().min(1).max(200),Dt=e.object({teamId:a,ownerUserId:a,workspaceId:a,conversationId:a,turnId:a,attempt:e.number().int().min(1),leaseGeneration:e.number().int().min(1)}).strict(),ke=e.discriminatedUnion("operation",[e.object({contractVersion:e.literal(p),requestId:a,operation:e.literal("profile-evaluations/grade"),params:e.object({action:e.enum(["upload","execute"]),callId:a,sessionId:a,turnId:a,sha256:e.string().regex(/^[a-f0-9]{64}$/),sizeBytes:e.number().int().positive().max(2e7),timeoutMs:e.number().int().positive().max(3e5),offset:e.number().int().nonnegative().max(2e7).optional(),contentsBase64:e.string().max(131072).optional()}).strict()}).strict(),e.object({contractVersion:e.literal(p),requestId:a,operation:e.literal("profile-evaluations/sandbox"),params:e.object({sessionId:a,turnId:a,action:e.enum(["upload","exec","read","stop"]),area:e.enum(["policy","runtime"]).optional(),path:e.string().min(1).max(4096).optional(),sha256:e.string().regex(/^[a-f0-9]{64}$/).optional(),sizeBytes:e.number().int().min(0).max(1e7).optional(),offset:e.number().int().min(0).max(1e7).optional(),contentsBase64:e.string().max(131072).optional(),command:e.string().min(1).max(2e4).optional(),stdin:e.string().max(12e4).optional(),cwd:e.string().max(4096).optional(),timeoutMs:e.number().int().min(1).max(18e4).optional()}).strict()}).strict(),e.object({contractVersion:e.literal(p),requestId:a,operation:e.literal("output/list"),params:e.object({}).strict()}).strict(),e.object({contractVersion:e.literal(p),requestId:a,operation:e.literal("output/read"),params:e.object({fileId:a,revision:e.number().int().min(1),offset:e.number().int().min(0).max(1e7).optional(),maxChars:e.number().int().min(1).max(1e5).optional(),firstPage:e.number().int().min(1).max(1e3).optional(),pageCount:e.number().int().min(1).max(10).optional()}).strict()}).strict(),e.object({contractVersion:e.literal(p),requestId:a,operation:e.literal("output/readBytes"),params:e.object({sessionId:a,turnId:a,fileId:a,revision:e.number().int().positive(),sha256:e.string().regex(/^[a-f0-9]{64}$/),sizeBytes:e.number().int().min(1).max(1e7),offset:e.number().int().min(0).max(1e7)}).strict()}).strict(),e.object({contractVersion:e.literal(p),requestId:a,operation:e.literal("profile.externalDataset.authorize"),params:e.object({bindingHash:e.string().regex(/^[a-f0-9]{64}$/),manifestHash:e.string().regex(/^[a-f0-9]{64}$/).optional(),taskId:a.optional(),seed:e.string().min(1).max(500).optional()}).strict().refine(i=>!!i.taskId==!!i.seed,"Case authority requires both task and seed.")}).strict(),e.object({contractVersion:e.literal(p),requestId:a,operation:e.literal("experiment/environment"),params:X}).strict(),e.object({contractVersion:e.literal(p),requestId:a,operation:e.literal("experiment/policy"),params:e.object({caseId:a,admissionHash:e.string().regex(/^[a-f0-9]{64}$/),ordinal:e.number().int().nonnegative(),messages:e.array(e.record(e.string(),e.unknown())).max(2e3),tools:e.array(e.record(e.string(),e.unknown())).max(200)}).strict()}).strict(),e.object({contractVersion:e.literal(p),requestId:a,operation:e.literal("sandbox/request"),params:Ie}).strict(),e.object({contractVersion:e.literal(p),requestId:a,operation:e.literal("embedding/authorize"),params:ye}).strict(),e.object({contractVersion:e.literal(p),requestId:a,operation:e.literal("output/begin"),params:ge}).strict(),e.object({contractVersion:e.literal(p),requestId:a,operation:e.literal("output/chunk"),params:we}).strict(),e.object({contractVersion:e.literal(p),requestId:a,operation:e.literal("output/complete"),params:ve}).strict(),e.object({contractVersion:e.literal(p),requestId:a,operation:e.literal("output/saveSandboxFile"),params:xe}).strict(),e.object({contractVersion:e.literal(p),requestId:a,operation:e.literal("settings/get"),params:e.object({}).strict()}).strict(),e.object({contractVersion:e.literal(p),requestId:a,operation:e.literal("harness/get"),params:e.object({reference:e.object({id:a,contentHash:e.string().regex(/^[a-f0-9]{64}$/)}).strict().nullable()}).strict()}).strict(),e.object({contractVersion:e.literal(p),requestId:a,operation:e.literal("harness/overlay/get"),params:e.object({runId:a}).strict()}).strict(),e.object({contractVersion:e.literal(p),requestId:a,operation:e.literal("harness/overlay/put"),params:e.object({runId:a,expectedRevision:e.number().int().min(0).nullable(),overlay:e.record(e.string(),e.unknown())}).strict()}).strict(),e.object({contractVersion:e.literal(p),requestId:a,operation:e.literal("harness/overlay/freezeProposal"),params:e.object({runId:a,expectedRevision:e.number().int().min(0),overlay:e.record(e.string(),e.unknown()),proposal:e.record(e.string(),e.unknown())}).strict()}).strict(),e.object({contractVersion:e.literal(p),requestId:a,operation:e.literal("harness/memory/get"),params:e.object({workspaceId:a,key:e.string().min(1).max(120)}).strict()}).strict(),e.object({contractVersion:e.literal(p),requestId:a,operation:e.literal("harness/memory/list"),params:e.object({workspaceId:a,includeDeleted:e.boolean(),before:e.object({updatedAt:e.string(),key:e.string()}).strict().nullable(),limit:P}).strict()}).strict(),e.object({contractVersion:e.literal(p),requestId:a,operation:e.literal("harness/memory/search"),params:e.object({workspaceId:a,query:e.string().trim().min(1).max(500),limit:e.number().int().min(1).max(20)}).strict()}).strict(),e.object({contractVersion:e.literal(p),requestId:a,operation:e.literal("harness/memory/write"),params:e.object({input:e.record(e.string(),e.unknown())}).strict()}).strict(),e.object({contractVersion:e.literal(p),requestId:a,operation:e.literal("harness/state/read"),params:e.object({workspaceId:a,kind:e.enum(["selection","workspace_settings","evaluation_review_settings","candidates","cross_run_requests"]),afterId:a.nullable(),limit:e.number().int().min(1).max(100)}).strict()}).strict(),e.object({contractVersion:e.literal(p),requestId:a,operation:e.literal("profile-evaluations/execute"),params:e.discriminatedUnion("action",[e.object({action:e.literal("get"),kind:e.enum(["grade","receipt","run","comparison","suite"]),id:a}).strict(),e.object({action:e.literal("page"),kind:e.enum(["grade","receipt","run","comparison","suite"]),profileKey:e.string().regex(/^[a-f0-9]{64}$/),before:e.object({createdAt:e.string(),id:a}).strict().nullable(),limit:e.number().int().min(1).max(100)}).strict(),e.object({action:e.literal("put"),kind:e.enum(["grade","receipt","run","comparison","suite"]),payload:e.record(e.string(),e.unknown()),profileKey:e.string().regex(/^[a-f0-9]{64}$/).nullable(),createdAt:e.string()}).strict()])}).strict(),e.object({contractVersion:e.literal(p),requestId:a,operation:e.literal("harness/workspace/transition"),params:e.discriminatedUnion("action",[e.object({action:e.literal("advance"),receiptId:a,workspaceId:a,proposal:e.record(e.string(),e.unknown()),validations:e.array(e.record(e.string(),e.unknown())).max(100),nextRelease:e.object({id:a,contentHash:e.string().regex(/^[a-f0-9]{64}$/)}).strict(),nextSourceRevision:e.string().min(1),now:e.string()}).strict(),e.object({action:e.literal("reviewedAdvance"),receiptId:a,workspaceId:a,proposal:e.record(e.string(),e.unknown()),validations:e.array(e.record(e.string(),e.unknown())).max(100),nextRelease:e.object({id:a,contentHash:e.string().regex(/^[a-f0-9]{64}$/)}).strict(),nextSourceRevision:e.string().min(1),reviewer:a,now:e.string()}).strict(),e.object({action:e.literal("rollback"),receiptId:a,workspaceId:a,expectedWorkspaceRevision:e.number().int().nonnegative(),expectedChannelRevision:e.number().int().nonnegative(),targetRelease:e.object({id:a,contentHash:e.string().regex(/^[a-f0-9]{64}$/)}).strict(),targetSourceRevision:e.string().min(1),rollbackOf:e.object({id:a,contentHash:e.string().regex(/^[a-f0-9]{64}$/)}).strict(),now:e.string()}).strict()])}).strict(),e.object({contractVersion:e.literal(p),requestId:a,operation:e.literal("task-inbox/execute"),params:ae}).strict(),e.object({contractVersion:e.literal(p),requestId:a,operation:e.literal("harness/review/execute"),params:he}).strict(),e.object({contractVersion:e.literal(p),requestId:a,operation:e.literal("refiner/execute"),params:e.object({action:ue}).strict()}).strict(),e.object({contractVersion:e.literal(p),requestId:a,operation:e.literal("create-improve/execute"),params:e.discriminatedUnion("action",[e.object({action:e.literal("get"),runId:a}).strict(),e.object({action:e.literal("page"),query:e.object({profileId:a.nullable(),targetKind:a.nullable(),targetId:a.nullable(),state:e.array(a).max(20)}).strict(),before:e.object({updatedAt:e.string(),id:a}).strict().nullable(),limit:P}).strict(),e.object({action:e.literal("put"),run:e.record(e.string(),e.unknown())}).strict(),e.object({action:e.literal("mutate"),mutation:e.record(e.string(),e.unknown()),next:e.record(e.string(),e.unknown())}).strict()])}).strict(),e.object({contractVersion:e.literal(p),requestId:a,operation:e.literal("approval/get"),params:e.object({approvalId:a}).strict()}).strict(),e.object({contractVersion:e.literal(p),requestId:a,operation:e.literal("approval/upsert"),params:e.object({approval:e.record(e.string(),e.unknown()),expectedRevision:e.number().int().min(1).nullable()}).strict()}).strict(),e.object({contractVersion:e.literal(p),requestId:a,operation:e.literal("usage/getByRequestId"),params:e.object({requestId:a}).strict()}).strict(),e.object({contractVersion:e.literal(p),requestId:a,operation:e.literal("usage/upsert"),params:e.object({record:e.record(e.string(),e.unknown())}).strict()}).strict(),e.object({contractVersion:e.literal(p),requestId:a,operation:e.literal("usage/page"),params:e.object({query:e.object({sessionId:a.optional(),turnId:a.optional(),provider:a.optional(),model:a.optional(),startedAtFrom:e.string().optional(),startedAtTo:e.string().optional(),visibility:e.enum(["user_facing","background","system"]).optional(),status:e.enum(["started","completed","failed","interrupted","missing"]).optional()}).strict(),before:e.object({startedAt:e.string(),requestOrdinal:e.number().int().min(0),id:a}).strict().nullable(),limit:P}).strict()}).strict(),e.object({contractVersion:e.literal(p),requestId:a,operation:e.literal("capabilities"),params:e.object({}).strict()}).strict(),e.object({contractVersion:e.literal(p),requestId:a,operation:e.literal("session/count"),params:e.object({}).strict()}).strict(),e.object({contractVersion:e.literal(p),requestId:a,operation:e.literal("session/get"),params:e.object({sessionId:a}).strict()}).strict(),e.object({contractVersion:e.literal(p),requestId:a,operation:e.literal("session/page"),params:e.object({afterId:a.nullable(),limit:P}).strict()}).strict(),e.object({contractVersion:e.literal(p),requestId:a,operation:e.literal("session/put"),params:e.object({sessionId:a,expectedRevision:e.number().int().min(1).nullable(),session:e.record(e.string(),e.unknown())}).strict()}).strict(),e.object({contractVersion:e.literal(p),requestId:a,operation:e.literal("turn/count"),params:e.object({sessionId:a}).strict()}).strict(),e.object({contractVersion:e.literal(p),requestId:a,operation:e.literal("turn/wakeCount"),params:e.object({sessionId:a,key:e.enum(["messageId","fromRunId"]),value:a}).strict()}).strict(),e.object({contractVersion:e.literal(p),requestId:a,operation:e.literal("turn/get"),params:e.object({turnId:a}).strict()}).strict(),e.object({contractVersion:e.literal(p),requestId:a,operation:e.literal("turn/put"),params:e.object({sessionId:a,turnId:a,expectedRevision:e.number().int().min(1).nullable(),turn:e.record(e.string(),e.unknown())}).strict()}).strict(),e.object({contractVersion:e.literal(p),requestId:a,operation:e.literal("turn/latest"),params:e.object({sessionId:a,status:e.enum(["in_progress","completed","failed","interrupted"]).nullable()}).strict()}).strict(),e.object({contractVersion:e.literal(p),requestId:a,operation:e.literal("turn/page"),params:e.object({sessionId:a,beforeSortIndex:e.number().int().min(0).nullable().optional(),limit:P}).strict()}).strict(),e.object({contractVersion:e.literal(p),requestId:a,operation:e.literal("thread/turnPage"),params:e.object({sessionId:a,beforeSortIndex:e.number().int().min(0).nullable().optional(),limit:P}).strict()}).strict(),e.object({contractVersion:e.literal(p),requestId:a,operation:e.literal("event/append"),params:e.object({event:e.record(e.string(),e.unknown())}).strict()}).strict(),e.object({contractVersion:e.literal(p),requestId:a,operation:e.literal("events/page"),params:e.object({sessionId:a.nullable(),afterSequence:e.number().int().min(0),beforeSequence:e.number().int().min(1).nullable().optional(),limit:P,excludeReasoningDeltas:e.boolean().optional()}).strict()}).strict(),e.object({contractVersion:e.literal(p),requestId:a,operation:e.literal("events/latestAssistantText"),params:e.object({sessionId:a}).strict()}).strict()]),Ft=e.object({contractVersion:e.literal(p),operations:e.array(e.enum(["profile.externalDataset.authorize","experiment/policy","experiment/environment","sandbox/request","embedding/authorize","output/begin","output/chunk","output/complete","output/saveSandboxFile","output/list","output/read","output/readBytes","settings/get","harness/get","harness/overlay/get","harness/overlay/put","harness/overlay/freezeProposal","harness/memory/get","harness/memory/list","harness/memory/search","harness/memory/write","harness/state/read","profile-evaluations/execute","profile-evaluations/sandbox","profile-evaluations/grade","harness/review/execute","harness/workspace/transition","task-inbox/execute","refiner/execute","create-improve/execute","approval/get","approval/upsert","usage/getByRequestId","usage/upsert","usage/page","session/count","session/get","session/page","session/put","turn/count","turn/wakeCount","turn/get","turn/put","turn/latest","turn/page","thread/turnPage","event/append","events/page","events/latestAssistantText"])).max(50),allowedTools:e.array(a).max(128),maxPageSize:P,maxRequestBytes:e.number().int().min(1).max(8388608),maxInFlight:e.number().int().min(1).max(64)}).strict();var je=class{static{o(this,"AgentHostStorageClient")}#e=new Map;#t=null;#r=1;bind(t){if(this.#t)throw new Error("Host storage client is already bound.");this.#t=t}async request(t,r=15e3){let n=ke.parse(t);if(!this.#t)throw new Error("Host storage transport is unavailable.");if(this.#e.size>=32)throw new Error("Host storage request limit exceeded.");let s=`host-storage:${this.#r++}`,c={jsonrpc:"2.0",id:s,method:"host/storage",params:n},l=n.operation==="experiment/policy"||n.operation==="experiment/environment";if(Buffer.byteLength(JSON.stringify(c))>(l?8388608:256e3))throw new Error("Host storage request is too large.");let u=this.#t,m=new Promise((h,y)=>{let f=n.operation==="profile-evaluations/grade"?42e4:n.operation==="sandbox/request"||n.operation==="profile-evaluations/sandbox"||l?3e5:6e4,v=Math.max(1,Math.min(f,r)),x=setTimeout(()=>{this.#e.delete(s),y(new Error(`Host storage request timed out: operation=${n.operation}, request=${s}, deadlineMs=${v}.`))},v);this.#e.set(s,{resolve:h,reject:y,timer:x,maxResponseBytes:n.operation==="experiment/environment"?16e5:1e6})});return Promise.resolve().then(()=>u(c)).catch(h=>{let y=this.#e.get(s);y&&(clearTimeout(y.timer),this.#e.delete(s),y.reject(h instanceof Error?h:new Error(String(h))))}),m}accept(t){let r=K.safeParse(t),n=r.success?null:Q.safeParse(t),s=r.success?r.data:n?.success?n.data:null;if(!s||typeof s.id!="string"||!s.id.startsWith("host-storage:"))return!1;let c=this.#e.get(s.id);return c?(clearTimeout(c.timer),this.#e.delete(s.id),Buffer.byteLength(JSON.stringify(s))>c.maxResponseBytes?(c.reject(new Error("Host storage response is too large.")),!0):("error"in s?c.reject(new Error(`Host storage request failed: ${s.error.message}`)):c.resolve(s.result),!0)):!0}close(){this.#t=null;for(let t of this.#e.values())clearTimeout(t.timer),t.reject(new Error("Host storage transport closed."));this.#e.clear()}};import{once as Ne}from"node:events";import{createInterface as Le}from"node:readline";async function tr(i){let t=null,r=Promise.resolve(),n,s=o(b=>{n??=b,i.hostStorageClient?.close(),y.close()},"observeFailure"),c=[],l=o(b=>(r=r.then(async()=>{i.writable.write(`${JSON.stringify(b)}
3
+ `)||await Ne(i.writable,"drain")}),r.catch(s),r),"write");i.hostStorageClient?.bind(b=>l(b));let u=o(()=>{if(!(!t?.initialized||c.length===0))for(let b of c.splice(0))l(b)},"flushPendingNotifications"),m,h=new Set,y=Le({input:i.readable,crlfDelay:1/0}),f=[],v=!1,x=null,_=o(async b=>{let k=t;if(!k)throw new Error("Agent runtime dispatcher is unavailable.");let S=(async()=>{let N=await k.handle(b);N&&await l(N),u()})(),Z=b&&typeof b=="object"&&"method"in b?b.method:null;if(Z==="initialize"||Z==="initialized"){await S;return}h.add(S),S.then(()=>{h.delete(S)},N=>{h.delete(S),s(N)})},"dispatch"),g=(async()=>{let b=typeof i.host=="function"?await i.host():i.host;for(t=new L(b),m=b.subscribe?.(k=>{if(!t?.initialized){c.push(k);return}l(k)});f.length>0;)await _(f.shift());v=!0})().catch(b=>{x=b,y.close()});try{for await(let b of y){if(!b.trim())continue;if(Buffer.byteLength(b,"utf8")>1e6){await l({jsonrpc:"2.0",id:null,error:{code:-32600,message:"Request exceeds the JSONL size limit"}});continue}let k;try{k=JSON.parse(b)}catch{await l({jsonrpc:"2.0",id:null,error:{code:-32700,message:"Parse error"}});continue}if(!i.hostStorageClient?.accept(k))if(v)await _(k);else if(f.length>=64){let S=k&&typeof k=="object"&&"id"in k?k.id:null;(typeof S=="string"||typeof S=="number")&&await l({jsonrpc:"2.0",id:S,error:{code:-32e3,message:"Runtime startup request limit exceeded"}})}else f.push(k)}if(i.hostStorageClient?.close(),await g,x)throw x;if(await Promise.all(h),await r,n)throw n}finally{i.hostStorageClient?.close(),m?.()}}o(tr,"runAgentJsonlServer");async function*_e(i){if(!Number.isInteger(i.maxRounds)||i.maxRounds<1)throw new Error("Provider maxRounds must be a positive integer.");for(let t=0;t<i.maxRounds;t+=1){if(i.signal.aborted)throw i.signal.reason??new Error("Provider loop interrupted.");yield{index:t,requestId:`${i.turnId}:model:${t}`,signal:i.signal}}}o(_e,"providerRoundSequence");async function De(i){for await(let t of _e(i)){let r=await i.runRound(t);if(r.type==="complete")return r.result}return i.onExhausted()}o(De,"runProviderRoundLoop");async function Fe(i){let t="",r="",n,s=null,c,l=[];try{for await(let m of i.stream){if(await i.onDelta?.(m),i.signal.aborted)throw i.signal.reason??new Error("Provider round interrupted.");m.text&&(t+=m.text),m.reasoningText&&(r+=m.reasoningText),m.usage!==void 0&&(n=m.usage),m.continuation!==void 0&&(s=m.continuation),m.toolCalls&&l.push([...m.toolCalls]),m.finishReason!==void 0&&(c=m.finishReason)}let u={text:t,reasoningText:r,usage:n,continuation:s,toolCallBatches:l,finishReason:c};return await i.onCompleted?.(u),u}catch(u){throw await i.onFailed?.(u),u}}o(Fe,"runProviderRound");var F=e.object({threadId:e.string().trim().min(1)}).passthrough(),We=F.extend({includeHistory:e.boolean().optional()}),Je=e.object({session:e.unknown()}).strict(),O=F.extend({input:e.unknown()}),Ge=O.extend({idempotencyKey:e.string().trim().min(1).max(200)}),Ke=O.extend({inputId:e.string().trim().min(1)}),Qe=F.extend({reason:e.string().trim().min(1).optional()}),Xe=e.object({approvalId:e.string().trim().min(1),input:e.unknown()}).strict();function lr(i){let t=o(async(n,s,c)=>{let l=performance.now();i.telemetry?.({method:n,phase:"started",threadId:s,durationMs:null,errorClass:null});try{let u=await c();return i.telemetry?.({method:n,phase:"completed",threadId:s,durationMs:performance.now()-l,errorClass:null}),u}catch(u){throw i.telemetry?.({method:n,phase:"failed",threadId:s,durationMs:performance.now()-l,errorClass:u instanceof Error?u.name:"UnknownError"}),u}},"run"),r=o(async(n,s="thread/read")=>{let{threadId:c,includeHistory:l}=We.parse(n);return t(s,c,async()=>{if(l===!1)return{thread:await i.readThread(c),turns:[],events:[]};let[u,m,h]=await Promise.all([i.readThread(c),i.listTurns(c),i.listEvents(c)]);return{thread:u,turns:m,events:h}})},"threadRead");return{capabilities:o(n=>t("runtime/capabilities",null,()=>i.capabilities(n)),"capabilities"),threadStart:o(async n=>t("thread/start",null,async()=>({thread:await i.createThread(Je.parse(n).session)})),"threadStart"),threadResume:o(n=>r(n,"thread/resume"),"threadResume"),threadRead:r,turnStart:o(async n=>{let s=O.parse(n);return t("turn/start",s.threadId,async()=>({turn:await i.startTurn(s.threadId,s.input)}))},"turnStart"),turnSteer:o(async n=>{let s=O.parse(n);return t("turn/steer",s.threadId,async()=>({receipt:await i.steerTurn(s.threadId,s.input)}))},"turnSteer"),taskInbox:o(async n=>{let{threadId:s}=F.parse(n);return t("task/inbox",s,()=>i.readTaskInbox(s))},"taskInbox"),taskQueue:o(async n=>{let s=Ge.parse(n);return t("task/queue",s.threadId,()=>i.queueTaskInput(s.threadId,s.input,s.idempotencyKey))},"taskQueue"),taskInputUpdate:o(async n=>{let s=Ke.parse(n);return t("task/inputUpdate",s.threadId,()=>i.updateTaskInput(s.threadId,s.inputId,s.input))},"taskInputUpdate"),turnInterrupt:o(async n=>{let s=Qe.parse(n);return t("turn/interrupt",s.threadId,async()=>({turn:await i.interruptTurn(s.threadId,s.reason)}))},"turnInterrupt"),approvalResolve:o(async n=>{let s=Xe.parse(n);return t("approval/resolve",null,async()=>({approval:await i.resolveApproval(s.approvalId,s.input)}))},"approvalResolve"),userInputResolve:o(async n=>{let s=O.parse(n);return t("userInput/resolve",s.threadId,async()=>(i.isTurnActive(s.threadId)&&await i.waitForTurnSettlement(s.threadId),{turn:await i.startTurn(s.threadId,s.input)}))},"userInputResolve"),profileWorkflows:o(()=>t("profile/workflows",null,()=>i.listProfileWorkflows()),"profileWorkflows"),profileEvaluations:o(n=>t("profile/evaluations",null,()=>i.listProfileEvaluations(n)),"profileEvaluations"),profileTrainingSource:o(()=>t("profile/trainingSource",null,()=>i.loadProfileTrainingSource()),"profileTrainingSource"),profileEvaluationPrepare:o(n=>t("profile/evaluations/prepare",null,()=>i.prepareProfileEvaluationRun(n)),"profileEvaluationPrepare"),profileEvaluationRun:o(n=>t("profile/evaluations/run",null,()=>i.runPreparedProfileEvaluation(n)),"profileEvaluationRun"),...i.executeExperimentCase?{experimentExecuteCase:o(n=>t("experiments/executeCase",null,()=>i.executeExperimentCase(n)),"experimentExecuteCase")}:{},...i.cancelExperimentCase?{experimentCancelCase:o(n=>t("experiments/cancelCase",null,()=>i.cancelExperimentCase(n)),"experimentCancelCase")}:{},profileEvaluationRunSuite:o(n=>t("profile/evaluations/runSuite",null,()=>i.runProfileEvaluationSuite(n)),"profileEvaluationRunSuite"),profileEvaluationExecuteCase:o(n=>t("profile/evaluations/executeCase",null,()=>i.executeProfileEvaluationCase(n)),"profileEvaluationExecuteCase"),profileEvaluationExecuteRun:o(n=>t("profile/evaluations/executeRun",null,()=>i.executeProfileEvaluationRun(n)),"profileEvaluationExecuteRun"),profileEvaluationCompare:o(n=>t("profile/evaluations/compare",null,()=>i.compareProfileEvaluationRuns(n)),"profileEvaluationCompare"),profileEvaluationReport:o(n=>t("profile/evaluations/report",null,()=>i.buildProfileEvaluationReport(n)),"profileEvaluationReport"),harnessInspect:o(()=>t("harness/inspect",null,()=>i.inspectHarness()),"harnessInspect"),harnessProposalReview:o(n=>t("harness/proposalReview",null,()=>i.reviewHarnessProposal(n)),"harnessProposalReview"),harnessReview:o(n=>t("harness/review",null,()=>i.reviewHarness(n)),"harnessReview"),harnessAcceptEvaluationReview:o(n=>t("harness/acceptEvaluationReview",null,()=>i.acceptHarnessEvaluationReview(n)),"harnessAcceptEvaluationReview"),harnessMaterializeEvaluationTaskset:o(n=>t("harness/materializeEvaluationTaskset",null,()=>i.materializeHarnessEvaluationTaskset(n)),"harnessMaterializeEvaluationTaskset"),harnessRunEvaluationBaseline:o(n=>t("harness/runEvaluationBaseline",null,()=>i.runHarnessEvaluationBaseline(n)),"harnessRunEvaluationBaseline"),harnessValidate:o(()=>t("harness/validate",null,()=>i.validateHarness()),"harnessValidate"),harnessBackgroundReview:o(n=>t("harness/backgroundReview",null,()=>i.updateHarnessBackgroundReview(n)),"harnessBackgroundReview"),harnessDiff:o(n=>t("harness/diff",null,()=>i.diffHarness(n)),"harnessDiff"),harnessRollback:o(n=>t("harness/rollback",null,()=>i.rollbackHarness(n)),"harnessRollback"),refinerInspect:o(()=>t("refiner/inspect",null,()=>i.inspectRefiner()),"refinerInspect"),refinerUpdate:o(n=>t("refiner/update",null,()=>i.updateRefiner(n)),"refinerUpdate"),refinerActivate:o(n=>t("refiner/activate",null,()=>i.activateRefiner(n)),"refinerActivate"),refinerRollback:o(n=>t("refiner/rollback",null,()=>i.rollbackRefiner(n)),"refinerRollback"),subscribe:i.subscribeEvents&&i.eventNotification?n=>i.subscribeEvents(s=>n(i.eventNotification(s))):void 0}}o(lr,"createAgentRuntimeService");var A=e.string().regex(/^[a-f0-9]{64}$/),Ye=e.object({harnessReleaseHash:A,instructionsHash:A,skillHashes:e.record(e.string(),A),agentAssetHashes:e.record(e.string(),A),toolCatalogHash:A,memoryRevision:e.number().int().nonnegative().nullable()}).strict(),Ze=e.object({protocolVersion:e.string().trim().min(1),threadId:e.string().trim().min(1),turnId:e.string().trim().min(1),harnessReleaseHash:A,toolCatalogHash:A,context:e.record(e.string(),e.unknown()),pendingInteraction:e.record(e.string(),e.unknown()).nullable(),usage:e.record(e.string(),e.unknown())}).strict();function hr(i){return C(Ye.parse(i))}o(hr,"effectiveSurfaceHash");function fr(i){return C(Ze.parse(i))}o(fr,"checkpointHash");function br(i){return[i.system,...i.harnessInstructions,...i.skillInstructions,...i.hostInstructions??[]].map(t=>t.trim()).filter(Boolean).join(`
4
+
5
+ `)}o(br,"materializeAgentPrompt");function Ir(i){let t=new Map;for(let l of i){let u=l.name.trim();if(!u)throw new Error("Agent tool names cannot be empty.");if(t.has(u))throw new Error(`Duplicate agent tool: ${u}.`);if(!l.unavailableReason&&!l.execute)throw new Error(`Agent tool ${u} is declared as available without an executor.`);t.set(u,{...l,name:u})}let r=[...t.values()].sort((l,u)=>l.name.localeCompare(u.name)),n=r.filter(l=>!l.unavailableReason).map(l=>({name:l.name,description:l.description,inputSchema:e.toJSONSchema(l.inputSchema,{target:"draft-7",unrepresentable:"any"})})),s=r.map(l=>({name:l.name,displayLabel:l.displayLabel??l.name,placement:l.placement,available:!l.unavailableReason,unavailableReason:l.unavailableReason??null})),c=C({modelTools:n,capabilities:s});return{byName:t,tools:r,modelTools:n,capabilities:s,hash:c}}o(Ir,"createAgentToolCatalog");async function yr(i,t){let r=i.byName.get(t.name);if(!r)throw new Error(`Unknown agent tool: ${t.name}.`);if(r.unavailableReason)throw new Error(`Agent tool ${t.name} is unavailable: ${r.unavailableReason}`);if(!r.execute)throw new Error(`Agent tool ${t.name} has no executor.`);return r.execute(r.inputSchema.parse(t.arguments),t.context)}o(yr,"executeAgentTool");function kr(i){let t=new Set,r=[...i].map(c=>{let l=c.name.trim();if(!l)throw new Error("Agent tool names cannot be empty.");if(t.has(l))throw new Error(`Duplicate agent tool: ${l}.`);if(t.add(l),!c.unavailableReason&&!c.executorAvailable)throw new Error(`Agent tool ${l} is declared as available without an executor.`);return{...c,name:l}}).sort((c,l)=>c.name.localeCompare(l.name)),n=r.filter(c=>!c.unavailableReason).map(c=>({name:c.name,description:c.description,inputSchema:c.inputSchema})),s=r.map(c=>({name:c.name,displayLabel:c.displayLabel??c.name,placement:c.placement,available:!c.unavailableReason,unavailableReason:c.unavailableReason??null}));return{byName:new Map(r.map(c=>[c.name,c])),tools:r,modelTools:n,capabilities:s,hash:C({modelTools:n,capabilities:s})}}o(kr,"createAgentToolCatalogProjection");async function jr(i,t){let r=i.byName.get(t.name);if(!r)throw new Error(`Unknown agent tool: ${t.name}.`);if(r.unavailableReason)throw new Error(`Agent tool ${t.name} is unavailable: ${r.unavailableReason}`);if(!r.execute)throw new Error(`Agent tool ${t.name} has no executor.`);let n=r.validateArguments?r.validateArguments(t.arguments):t.arguments;return r.execute(n,t.context)}o(jr,"executeProjectedAgentTool");var Se=class{static{o(this,"TaskSignals")}#e=new Map;notify(t){for(let r of[...this.#e.get(t)??[]])r()}subscribe(t,r){let n=this.#e.get(t);return n||this.#e.set(t,n=new Set),n.add(r),()=>{n.delete(r),n.size===0&&this.#e.delete(t)}}async wait(t){let r=o(()=>{},"wake"),n=0,s=o(()=>{n+=1,r()},"changed"),c=[...new Set(t.taskIds)].map(u=>this.subscribe(u,s)),l=setTimeout(s,Math.max(0,t.deadline-Date.now()));t.signal.addEventListener("abort",s);try{for(;;){t.signal.throwIfAborted();let u=n,m=await t.read();if(m!==null)return m;if(Date.now()>=t.deadline)return null;n===u&&await new Promise(h=>{r=h,(n!==u||t.signal.aborted)&&h()})}}finally{clearTimeout(l),t.signal.removeEventListener("abort",s);for(let u of c)u()}}},Ee=class{static{o(this,"TaskSerialExecutor")}#e=new Map;async run(t,r){let s=(this.#e.get(t)??Promise.resolve()).then(r),c=s.then(()=>{},()=>{});this.#e.set(t,c);try{return await s}finally{this.#e.get(t)===c&&this.#e.delete(t)}}};var W=class extends Error{static{o(this,"AcpRpcError")}code;data;constructor(t,r,n){super(r),this.code=t,this.data=n,this.name="AcpRpcError"}};import{execFile as et}from"node:child_process";function j(i,t){if(i.pid){if(process.platform==="win32"){et("taskkill",["/PID",String(i.pid),"/T",...t==="SIGKILL"?["/F"]:[]],{windowsHide:!0},()=>{});return}try{process.kill(-i.pid,t)}catch(r){if(r.code!=="ESRCH")throw r}}}o(j,"signalNativeProcess");import{spawn as tt}from"node:child_process";import{StringDecoder as rt}from"node:string_decoder";var Y=8*1024*1024,J={outcome:{outcome:"cancelled"}};function z(i){return i!==null&&typeof i=="object"&&!Array.isArray(i)}o(z,"object");var Re=class{static{o(this,"AcpClient")}options;child=null;pending=new Map;sessions=new Set;activePrompts=new Set;permissions=new Map;nextId=1;buffer="";decoder=new rt("utf8");initialized=null;updateQueue=Promise.resolve();stopped=!1;constructor(t){this.options=t}initialize(){return this.initialized?this.initialized:(this.initialized=this.connect(),this.initialized)}async connect(){if(this.stopped)throw new Error("ACP client is closed; reconnect with a new client.");let t=tt(this.options.command,this.options.args,{cwd:this.options.cwd,env:this.options.env??process.env,stdio:["pipe","pipe","pipe"],shell:!1,detached:process.platform!=="win32"});this.child=t,t.stdout.on("data",r=>this.consume(this.decoder.write(r))),t.stderr.resume(),t.stdin.on("error",r=>this.fail(r)),t.on("error",r=>this.fail(r)),t.on("exit",(r,n)=>this.fail(new Error(`ACP agent exited (${n??r??"unknown"}).`)));try{let r=await this.request("initialize",{protocolVersion:1,clientInfo:{name:"openpond",title:"OpenPond",version:"1"},clientCapabilities:{fs:{readTextFile:!1,writeTextFile:!1},terminal:!1,auth:{terminal:!1}}});if(r.protocolVersion!==1)throw new Error(`Unsupported ACP protocol version: ${r.protocolVersion}`);return r}catch(r){throw await this.stop(),r}}async authenticate(t){let n=(await this.initialize()).authMethods?.find(s=>s.id===t);if(!n)throw new Error("The agent did not advertise this authentication method.");if(n.type==="terminal")throw new Error("Run the agent's terminal login, then reconnect.");await this.request("authenticate",{methodId:t})}async createSession(t,r=[]){await this.initialize();let n=await this.request("session/new",{cwd:t,mcpServers:r});if(typeof n.sessionId!="string"||!n.sessionId)throw new Error("Agent returned no native session identity.");return this.sessions.add(n.sessionId),n}async loadSession(t,r,n=[]){if(!(await this.initialize()).agentCapabilities?.loadSession)throw new Error("This agent does not support native session loading.");this.sessions.add(t);try{let c=await this.request("session/load",{sessionId:t,cwd:r,mcpServers:n});return await this.updateQueue,{...c,sessionId:t}}catch(c){throw this.sessions.delete(t),c}}async setModel(t,r){this.assertSession(t),await this.request("session/set_model",{sessionId:t,modelId:r})}async setMode(t,r){this.assertSession(t),await this.request("session/set_mode",{sessionId:t,modeId:r})}async setConfigOption(t,r,n){return this.assertSession(t),await this.request("session/set_config_option",{sessionId:t,configId:r,value:n})}async prompt(t,r,n){if(this.assertSession(t),n?.aborted)throw new Error("ACP prompt cancelled.");if(this.activePrompts.has(t))throw new Error("A prompt is already active for this native session.");this.activePrompts.add(t);let s,c=o(()=>{this.cancel(t),s=setTimeout(()=>{this.stop()},5e3),s.unref()},"abort");n?.addEventListener("abort",c,{once:!0});try{let l=await this.request("session/prompt",{sessionId:t,prompt:r},0);return await this.updateQueue,n?.aborted?{...l,stopReason:"cancelled"}:l}catch(l){if(n?.aborted)return{stopReason:"cancelled"};throw l}finally{s&&clearTimeout(s),n?.removeEventListener("abort",c),this.activePrompts.delete(t),this.cancelPermissions(t)}}cancel(t){this.cancelPermissions(t),this.sessions.has(t)&&this.child&&this.write({jsonrpc:"2.0",method:"session/cancel",params:{sessionId:t}})}async stop(){if(this.stopped)return;this.stopped=!0;let t=this.child;this.fail(new Error("ACP connection closed.")),!(!t||t.exitCode!==null||t.signalCode!==null)&&await new Promise(r=>{let n=setTimeout(()=>j(t,"SIGKILL"),2e3);n.unref(),t.once("exit",()=>{clearTimeout(n),r()}),j(t,"SIGTERM")})}assertSession(t){if(!this.sessions.has(t))throw new Error("Session does not belong to this ACP connection.")}request(t,r,n=this.options.requestTimeoutMs??3e4){let s=this.nextId++;return new Promise((c,l)=>{let u=n>0?setTimeout(()=>{this.pending.delete(s),l(new Error(`ACP request timed out: ${t}`))},n):void 0;u?.unref(),this.pending.set(s,{resolve:c,reject:l,timer:u});try{this.write({jsonrpc:"2.0",id:s,method:t,params:r})}catch(m){u&&clearTimeout(u),this.pending.delete(s),l(m)}})}write(t){if(!this.child||this.child.stdin.destroyed)throw new Error("ACP connection is not running.");let r=JSON.stringify(t);if(Buffer.byteLength(r)>Y)throw new Error("ACP frame exceeds the size limit.");this.child.stdin.write(`${r}
6
+ `)}consume(t){this.buffer+=t;let r;for(;(r=this.buffer.indexOf(`
7
+ `))!==-1;){let n=this.buffer.slice(0,r);if(this.buffer=this.buffer.slice(r+1),!!n.trim())try{if(Buffer.byteLength(n)>Y)throw new Error("ACP frame exceeds the size limit.");this.receive(JSON.parse(n))}catch{this.fail(new Error("Invalid ACP protocol frame.")),this.stop();return}}Buffer.byteLength(this.buffer)>Y&&(this.fail(new Error("ACP frame exceeds the size limit.")),this.stop())}receive(t){if(!z(t)||t.jsonrpc!=="2.0")throw new Error("Invalid JSON-RPC envelope.");if(typeof t.method=="string"){if("id"in t){this.handleRequest(t);return}if(t.method==="session/update"&&z(t.params)){let{sessionId:n,update:s}=t.params;if(typeof n!="string"||!this.sessions.has(n)||!z(s))return;this.updateQueue=this.updateQueue.then(async()=>{await this.options.onUpdate?.(n,s)}),this.updateQueue.catch(c=>{this.fail(c),this.stop()})}return}if(typeof t.id!="number")return;let r=this.pending.get(t.id);r&&(this.pending.delete(t.id),r.timer&&clearTimeout(r.timer),z(t.error)?r.reject(new W(Number(t.error.code),String(t.error.message),t.error.data)):r.resolve(t.result))}async handleRequest(t){let r=t.id;if(!(typeof r!="number"&&typeof r!="string"))try{if(t.method!=="session/request_permission"){this.write({jsonrpc:"2.0",id:r,error:{code:-32601,message:"Client method not supported."}});return}let n=t.params;if(!z(n)||typeof n.sessionId!="string"||!Array.isArray(n.options)||!z(n.toolCall))throw new Error("Invalid permission request.");if(this.assertSession(n.sessionId),!this.activePrompts.has(n.sessionId)){this.write({jsonrpc:"2.0",id:r,result:J});return}let s=new AbortController,c=this.permissions.get(n.sessionId)??new Set;c.add(s),this.permissions.set(n.sessionId,c);let l=J;try{if(this.options.onPermission&&(l=await Promise.race([this.options.onPermission(n,s.signal),new Promise(u=>s.signal.addEventListener("abort",()=>u(J),{once:!0}))])),s.signal.aborted&&(l=J),l.outcome.outcome==="selected"){let u=l.outcome.optionId;if(!n.options.some(m=>z(m)&&m.optionId===u))throw new Error("Permission option was not advertised by the agent.")}}finally{c.delete(s),c.size||this.permissions.delete(n.sessionId)}this.child&&this.write({jsonrpc:"2.0",id:r,result:l})}catch{this.child&&this.write({jsonrpc:"2.0",id:r,error:{code:-32602,message:"Invalid or expired client request."}})}}cancelPermissions(t){for(let r of this.permissions.get(t)??[])r.abort();this.permissions.delete(t)}fail(t){let r=this.child,n=!!r;this.child=null,r&&(j(r,"SIGTERM"),setTimeout(()=>j(r,"SIGKILL"),2e3).unref());for(let s of this.pending.values())s.timer&&clearTimeout(s.timer),s.reject(t);this.pending.clear();for(let s of this.sessions)this.cancelPermissions(s);this.sessions.clear(),n&&this.options.onExit?.(t)}};var R=o(i=>i&&typeof i=="object"&&!Array.isArray(i)?i:{},"record"),T=o(i=>typeof i=="number"&&Number.isFinite(i)&&i>=0?Math.floor(i):null,"count"),$=class{static{o(this,"ClaudeObservations")}emit;contextWindows;tools=new Map;models=new Set;latestUsage={};latestModel="unknown";compacting=!1;constructor(t,r=new Map){this.emit=t,this.contextWindows=r}tool(t){let r=String(t.toolCallId),s={...this.tools.get(r)??{},...t};this.tools.set(r,s),this.emit(s)}observe(t){if(!t.parent_tool_use_id){if(t.type==="stream_event"){let r=R(t.event),n=R(r.message);r.type==="message_start"&&this.assistant(n,!0),r.type==="message_delta"&&(this.latestUsage={...this.latestUsage,...R(r.usage)},this.context())}if(t.type==="assistant"){this.assistant(R(t.message),!1);let r=R(t.context_usage),n=T(r.total_tokens),s=T(r.raw_max_tokens);n!==null&&s&&typeof r.model=="string"&&(this.contextWindows.set(r.model,s),this.emit({sessionUpdate:"context_usage",model:r.model,usedTokens:n,maxContextTokens:s}))}if(t.type==="system"&&t.subtype==="status"&&t.status==="compacting"&&!this.compacting&&(this.compacting=!0,this.emit({sessionUpdate:"compaction_started"})),t.type==="system"&&t.subtype==="compact_boundary"){this.compacting=!1,this.latestUsage={};let r=R(t.compact_metadata);this.emit({sessionUpdate:"compaction_completed",reason:r.trigger,preTokens:r.pre_tokens})}}}assistant(t,r){typeof t.model=="string"&&!t.model.startsWith("<")&&(this.latestModel=t.model,this.models.add(t.model));let n=R(t.usage);r?this.latestUsage=n:this.latestUsage={...this.latestUsage,...n,output_tokens:Math.max(T(this.latestUsage.output_tokens)??0,T(n.output_tokens)??0)}}result(t,r){this.finishCompaction(),this.emit({sessionUpdate:"usage_update",usage:t.usage,model:this.models.size>1?"Claude Code (multiple models)":this.latestModel,status:r?"interrupted":t.is_error?"failed":"completed",scope:"main_loop_turn"});for(let[n,s]of Object.entries(R(t.modelUsage))){let c=T(R(s).contextWindow);c&&this.contextWindows.set(n,c)}this.context()}context(){let t=this.contextWindows.get(this.latestModel),r=T(this.latestUsage.input_tokens);if(t&&r!==null){let n=r+(T(this.latestUsage.cache_read_input_tokens)??0)+(T(this.latestUsage.cache_creation_input_tokens)??0)+(T(this.latestUsage.output_tokens)??0);this.emit({sessionUpdate:"context_usage",model:this.latestModel,usedTokens:n,maxContextTokens:t})}}finishCompaction(){this.compacting&&(this.compacting=!1,this.emit({sessionUpdate:"compaction_failed",error:"Claude ended before confirming compaction completed."}))}};import{spawn as nt}from"node:child_process";import{randomUUID as B}from"node:crypto";import{StringDecoder as Te}from"node:string_decoder";var I=o(i=>i&&typeof i=="object"&&!Array.isArray(i)?i:{},"record"),Ce=[{id:"manual",name:"Ask for permissions"},{id:"plan",name:"Plan"},{id:"bypassPermissions",name:"YOLO / Full access"}],qe=class{static{o(this,"ClaudeCliClient")}options;child=null;sessionId=null;pending=new Map;turn=null;messageId="";lastTextMessageId=null;completedResultIds=new Set;permissions=new Set;updates=Promise.resolve();closed=!1;model="default";contextWindows=new Map;observations=new $(t=>this.emit(t),this.contextWindows);stderrTail="";constructor(t){this.options=t}async initialize(){return{protocolVersion:1,agentCapabilities:{loadSession:!0,mcpCapabilities:{http:!0},promptCapabilities:{image:!0,embeddedContext:!0}},authMethods:[],agentInfo:{name:"Claude Code CLI",version:"native"}}}async authenticate(t){throw new Error("Use Claude Code's native login, then reconnect.")}async createSession(t,r=[]){return this.start(B(),t,!1,r)}async loadSession(t,r,n=[]){return this.start(t,r,!0,n)}async start(t,r,n,s){if(this.child||this.closed)throw new Error("Claude connection already owns a session or is closed.");if(!/^[a-f0-9-]{36}$/i.test(t))throw new Error("Invalid native Claude session identity.");this.sessionId=t;let c=Object.fromEntries(s.map(f=>[String(f.name),{type:"http",url:f.url,headers:Object.fromEntries((Array.isArray(f.headers)?f.headers:[]).map(v=>{let x=I(v);return[String(x.name),String(x.value)]}))}])),l=["--print","--verbose","--input-format","stream-json","--output-format","stream-json","--include-partial-messages","--allow-dangerously-skip-permissions","--permission-prompt-tool","stdio","--append-system-prompt","When you create files for the user, link each deliverable using Markdown with its absolute local path so OpenPond can open it. For example: [Report](/absolute/path/report.pdf).",...(this.options.additionalDirectories??[]).flatMap(f=>["--add-dir",f]),...s.length?["--mcp-config",JSON.stringify({mcpServers:c})]:[],n?"--resume":"--session-id",t],u=nt(this.options.command,l,{cwd:r,env:this.options.env??process.env,stdio:["pipe","pipe","pipe"],shell:!1,detached:process.platform!=="win32"});this.child=u;let m=new Te("utf8"),h="",y=new Te("utf8");u.stderr.on("data",f=>{this.stderrTail=(this.stderrTail+y.write(f)).slice(-4096)}),u.stdout.on("data",f=>{h+=m.write(f);let v;for(;(v=h.indexOf(`
8
+ `))>=0;){let x=h.slice(0,v);if(h=h.slice(v+1),!!x.trim())try{if(Buffer.byteLength(x)>8*1024*1024)throw new Error("Oversized frame");this.receive(I(JSON.parse(x)))}catch{this.fail(new Error("Invalid Claude CLI protocol frame.")),this.stop();return}}Buffer.byteLength(h)>8*1024*1024&&(this.fail(new Error("Claude CLI frame exceeds limit.")),this.stop())}),u.on("error",f=>this.fail(f)),u.stdin.on("error",f=>this.fail(f)),u.on("exit",f=>{this.fail(new Error(`Claude CLI exited (${f??"signal"}).${this.stderrTail.trim()?` ${this.stderrTail.trim()}`:""}`)),j(u,"SIGTERM"),setTimeout(()=>j(u,"SIGKILL"),2e3).unref(),this.child=null});try{let f=await this.control({subtype:"initialize",hooks:null}),v=Array.isArray(f.models)?f.models.map(I).filter(g=>typeof g.value=="string"):[],x=v.find(g=>g.value==="default")?.description,_=typeof x=="string"?v.find(g=>g.value!=="default"&&typeof g.displayName=="string"&&(x===g.displayName||x.startsWith(`${g.displayName} \xB7`))):void 0;return{sessionId:t,models:{currentModelId:this.model,availableModels:v.map(g=>({modelId:String(g.value),name:g.value==="default"&&_?`${_.displayName} (default)`:String(g.displayName??g.value),...typeof g.description=="string"?{description:g.description}:{}}))},modes:{currentModeId:String(f.current_permission_mode??"manual"),availableModes:Ce.map(g=>({...g}))}}}catch(f){throw await this.stop(),f}}async setModel(t,r){this.assertSession(t),await this.control({subtype:"set_model",model:r}),this.model=r}async setMode(t,r){if(this.assertSession(t),!Ce.some(n=>n.id===r))throw new Error("Unsupported Claude permission mode.");await this.control({subtype:"set_permission_mode",mode:r})}async prompt(t,r,n){if(this.assertSession(t),this.turn)throw new Error("A prompt is already active for this native session.");if(n?.aborted)throw new Error("Claude turn cancelled.");this.observations=new $(u=>this.emit(u),this.contextWindows),this.stderrTail="",this.messageId=B(),this.lastTextMessageId=null;let s=new Promise((u,m)=>{this.turn={resolve:u,reject:m,signal:n,resultReceived:!1}}),c,l=o(()=>{for(let u of this.permissions)u.abort();this.control({subtype:"interrupt"}).catch(()=>{}),c=setTimeout(()=>{this.stop()},5e3),c.unref()},"abort");n?.addEventListener("abort",l,{once:!0});try{this.write({type:"user",session_id:t,parent_tool_use_id:null,message:{role:"user",content:r.map(m=>m.type==="image"?{type:"image",source:{type:"base64",media_type:m.mimeType,data:m.data}}:m)}});let u=await s;return await this.updates,n?.aborted?{stopReason:"cancelled"}:u}catch(u){if(await this.updates.catch(()=>{}),n?.aborted)return{stopReason:"cancelled"};throw u}finally{n?.removeEventListener("abort",l),c&&clearTimeout(c),this.turn=null;for(let u of this.permissions)u.abort();this.permissions.clear()}}assertSession(t){if(!this.child||this.sessionId!==t||this.closed)throw new Error("Session does not belong to this Claude connection.")}write(t){if(!this.child||this.child.stdin.destroyed)throw new Error("Claude connection is closed.");let r=JSON.stringify(t);if(Buffer.byteLength(r)>8*1024*1024)throw new Error("Claude input exceeds limit.");this.child.stdin.write(`${r}
9
+ `)}control(t){let r=B();return new Promise((n,s)=>{let c=setTimeout(()=>{this.pending.delete(r),s(new Error(`Claude control request timed out: ${t.subtype}`))},this.options.requestTimeoutMs??3e4);c.unref(),this.pending.set(r,{resolve:n,reject:s,timer:c});try{this.write({type:"control_request",request_id:r,request:t})}catch(l){clearTimeout(c),this.pending.delete(r),s(l)}})}emit(t){if(!this.turn||!this.sessionId)return;let r=this.sessionId;this.updates=this.updates.then(async()=>{await this.options.onUpdate?.(r,t)}),this.updates.catch(n=>{this.fail(n),this.stop()})}receive(t){if(typeof t.session_id=="string"&&t.session_id!==this.sessionId){this.fail(new Error("Claude changed native session identity.")),this.stop();return}if(!(t.type==="result"&&typeof t.uuid=="string"&&this.completedResultIds.has(t.uuid))){if(this.turn&&!this.turn.resultReceived&&this.observations.observe(t),t.type==="control_response"){let r=I(t.response),n=String(r.request_id),s=this.pending.get(n);if(!s)return;clearTimeout(s.timer),this.pending.delete(n),r.subtype==="error"?s.reject(new Error(String(r.error??"Claude control failed."))):s.resolve(I(r.response))}else if(t.type==="control_request")this.permission(t);else if(t.type==="stream_event"){if(!this.turn||this.turn.resultReceived||t.parent_tool_use_id)return;let r=I(t.event),n=I(r.delta),s=I(r.content_block);if(r.type==="message_start"){let c=I(r.message).id;this.messageId=typeof c=="string"?c:B(),this.lastTextMessageId=null}if(r.type==="content_block_delta"&&(n.type==="text_delta"||n.type==="thinking_delta")){let c=n.type==="text_delta";c&&(this.lastTextMessageId=this.messageId),this.emit({sessionUpdate:c?"agent_message_chunk":"agent_thought_chunk",messageId:this.messageId,phase:c?"commentary":"reasoning",content:{type:"text",text:n.text??n.thinking??""}})}r.type==="content_block_start"&&s.type==="tool_use"&&(this.lastTextMessageId=null,this.observations.tool({sessionUpdate:"tool_call",toolCallId:s.id,title:s.name,kind:"other",status:"in_progress",rawInput:s.input}))}else if(t.type==="assistant"){if(!this.turn||this.turn.resultReceived)return;let r=I(t.message),n=r.content;!t.parent_tool_use_id&&typeof r.id=="string"&&Array.isArray(n)&&n.some(s=>I(s).type==="text")&&(this.lastTextMessageId=r.id),!t.parent_tool_use_id&&Array.isArray(n)&&n.some(s=>I(s).type==="tool_use")&&(this.lastTextMessageId=null);for(let s of Array.isArray(n)?n.map(I):[])s.type==="tool_use"&&this.observations.tool({sessionUpdate:"tool_call_update",toolCallId:s.id,title:s.name,status:"in_progress",rawInput:s.input})}else if(t.type==="user"){if(!this.turn||this.turn.resultReceived)return;let r=I(t.message).content;for(let n of Array.isArray(r)?r.map(I):[])n.type==="tool_result"&&this.observations.tool({sessionUpdate:"tool_call_update",toolCallId:n.tool_use_id,status:n.is_error?"failed":"completed",content:n.content})}else if(t.type==="result"){if(!this.turn||this.turn.resultReceived)return;if(typeof t.uuid=="string"&&this.completedResultIds.add(t.uuid),this.turn.resultReceived=!0,t.session_id&&t.session_id!==this.sessionId){this.fail(new Error("Claude changed native session identity."));return}!t.is_error&&!this.turn.signal?.aborted&&typeof t.result=="string"&&t.result.trim()&&this.emit({sessionUpdate:"agent_message_final",messageId:this.lastTextMessageId??B(),content:{type:"text",text:t.result}}),this.observations.result(t,!!this.turn.signal?.aborted),t.is_error?this.turn?.reject(new Error(Array.isArray(t.errors)?t.errors.map(String).join("; "):"Claude turn failed.")):this.turn?.resolve({stopReason:"end_turn"})}}}async permission(t){let r=I(t.request),n=String(t.request_id);if(r.subtype!=="can_use_tool"||!this.turn||!this.sessionId){this.write({type:"control_response",response:{subtype:"error",request_id:n,error:"Unsupported or inactive control request."}});return}let s=new AbortController;this.permissions.add(s);try{let c=I(r.input),l=r.tool_name==="AskUserQuestion"&&Array.isArray(c.questions)?c.questions:void 0,u=new Promise(y=>s.signal.addEventListener("abort",()=>y({outcome:{outcome:"cancelled"}}),{once:!0})),m=await Promise.race([u,this.options.onPermission?.({sessionId:this.sessionId,toolCall:{toolCallId:r.tool_use_id,title:r.title??r.tool_name,rawInput:r.input},questions:l,options:[{optionId:"allow",name:"Allow once",kind:"allow_once"},{optionId:"deny",name:"Deny",kind:"reject_once"}]},s.signal)]),h=!s.signal.aborted&&m?.outcome.outcome==="selected"&&m.outcome.optionId==="allow";this.child&&this.write({type:"control_response",response:{subtype:"success",request_id:n,response:h?{behavior:"allow",updatedInput:l?{...c,answers:m?.answers}:r.input}:{behavior:"deny",message:"Permission declined or turn cancelled."}}})}catch{this.child&&this.write({type:"control_response",response:{subtype:"success",request_id:n,response:{behavior:"deny",message:"Permission could not be resolved."}}})}finally{this.permissions.delete(s)}}fail(t){this.observations.finishCompaction();for(let r of this.pending.values())clearTimeout(r.timer),r.reject(t);this.pending.clear(),this.turn?.reject(t),this.turn=null;for(let r of this.permissions)r.abort();this.permissions.clear(),this.options.onExit?.(t)}async stop(){if(this.closed)return;this.closed=!0,this.fail(new Error("Claude connection closed."));let t=this.child;!t||t.exitCode!==null||t.signalCode!==null||(await new Promise(r=>{let n=setTimeout(()=>j(t,"SIGKILL"),2e3);n.unref(),t.once("exit",()=>{clearTimeout(n),r()}),j(t,"SIGTERM")}),this.child=null)}};export{_e as a,De as b,Fe as c,lr as d,H as e,wt as f,te as g,re as h,K as i,Q as j,vt as k,He as l,L as m,tr as n,G as o,C as p,Ye as q,Ze as r,hr as s,fr as t,br as u,Ae as v,ze as w,ht as x,at as y,ct as z,lt as A,Ir as B,yr as C,kr as D,jr as E,Se as F,Ee as G,W as H,Re as I,qe as J,ne as K,X as L,ae as M,ue as N,he as O,be as P,ge as Q,we as R,ve as S,$e as T,xe as U,Be as V,Ie as W,ye as X,p as Y,Dt as Z,ke as _,Ft as $,je as aa};
@@ -1,5 +1,5 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{c as B}from"./chunk-DARVPBZ4.js";import{e as D,f as k,g as K}from"./chunk-BSHAIAXY.js";import{f as w}from"./chunk-3M53YXEI.js";import{$ as N,W as y,X as L,Y as U,Z as M,_ as $,f as T,g as A,j as I,u as _}from"./chunk-5MCNZCVQ.js";import{b as C}from"./chunk-FWIPHEVA.js";import{d as O}from"./chunk-OS3LO5J3.js";import{b as v}from"./chunk-GLUWATL5.js";import{a as o}from"./chunk-FTQLQJQV.js";function ce(e){if(e.repoUrl)return e.repoUrl;if(e.gitHost&&e.gitOwner&&e.gitRepo)return`https://${e.gitHost}/${e.gitOwner}/${e.gitRepo}.git`;throw new Error("repoUrl missing from API response")}o(ce,"resolveRepoUrl");function le(e,t){let n=new URL(e),r=encodeURIComponent(t);return`${n.protocol}//x-access-token:${r}@${n.host}${n.pathname}`}o(le,"formatTokenizedRepoUrl");function fe(e){let t=new URL(e);return`${t.protocol}//x-access-token:$OPENPOND_API_KEY@${t.host}${t.pathname}`}o(fe,"formatTokenizedRepoUrlForPrint");function me(e){return e.replace(/x-access-token:[^@]+@/g,"x-access-token:***@")}o(me,"redactToken");function pe(e){let t=process.env.OPENPOND_BASE_URL;if(t)try{let n=new URL(t).hostname,r=new URL(e).hostname;n&&r&&n!==r&&(console.warn(`warning: repo host (${r}) does not match OPENPOND_BASE_URL (${n})`),console.warn("warning: verify your git host configuration matches OPENPOND_BASE_URL."))}catch{}}o(pe,"warnOnRepoHostMismatch");function W(e){let t=e.split("/").filter(Boolean);if(t.length!==2)throw new Error("expected <handle>/<repo>");return{handle:t[0],repo:t[1]}}o(W,"parseHandleRepo");function S(e){return(e||"").trim().toLowerCase()}o(S,"normalizeRepoName");async function ee(e){if(!e.forceRefresh){let n=await L({apiBase:e.apiBase,apiKey:e.apiKey,ttlMs:y});if(n)return n}let t=await I(e.apiBase,e.apiKey);return await U({apiBase:e.apiBase,apiKey:e.apiKey,apps:t}),t}o(ee,"fetchAppsWithCache");async function Re(e){if(!e.forceRefresh){let r=await M({apiBase:e.apiBase,apiKey:e.apiKey,ttlMs:y});if(r)return r}let t=await _(e.apiBase,e.apiKey),n=Array.isArray(t.tools)?t.tools:[];return await $({apiBase:e.apiBase,apiKey:e.apiKey,tools:n}),n}o(Re,"fetchToolsWithCache");async function Pe(e,t,n){let{handle:r,repo:s}=W(n),i=await ee({apiBase:e,apiKey:t}),a=S(s),d=i.find(u=>u.handle&&u.handle!==r?!1:[u.repo,u.gitRepo,u.id].map(S).includes(a));if(!d)throw new Error(`app not found for ${r}/${s}`);return{app:d,handle:r,repo:s}}o(Pe,"resolveAppTarget");async function Ee(e){let t=e.intervalMs??5e3,n=e.timeoutMs??240*1e3,r=new Set,s=Date.now();for(;Date.now()-s<n;){let a=(await T(e.baseUrl,e.apiKey,e.deploymentId)).filter(u=>!r.has(u.id));for(let u of a)r.add(u.id);for(let u of a)console.log(`${e.prefix}${u.message}`);let d=await A(e.baseUrl,e.apiKey,e.deploymentId);if(d.status==="failed"){console.log(`${e.prefix}deployment failed`);return}if(d.status==="running"||d.status==="deployed"){console.log(`${e.prefix}deployment complete`);return}await new Promise(u=>setTimeout(u,t))}console.log(`${e.prefix}deployment still in progress`)}o(Ee,"pollDeploymentLogs");import{stdin as q,stdout as H}from"node:process";import{createInterface as F}from"node:readline/promises";async function z(){let e=[];for await(let t of process.stdin)e.push(Buffer.isBuffer(t)?t:Buffer.from(String(t)));return Buffer.concat(e).toString("utf8").replace(/\r?\n$/,"")}o(z,"readAllStdin");function V(e){return new Promise((t,n)=>{let r=process.stdin,s=process.stderr,i="",a=r.isRaw;function d(){r.off("data",u),r.setRawMode&&r.setRawMode(a),r.pause(),s.write(`
2
+ import{c as B}from"./chunk-23P2O7PH.js";import{e as D,f as k,g as K}from"./chunk-BSHAIAXY.js";import{f as w}from"./chunk-3M53YXEI.js";import{$ as N,W as y,X as L,Y as U,Z as M,_ as $,f as T,g as A,j as I,u as _}from"./chunk-EL454L26.js";import{b as C}from"./chunk-FWIPHEVA.js";import{d as O}from"./chunk-ENSB6ZTM.js";import{b as v}from"./chunk-GLUWATL5.js";import{a as o}from"./chunk-FTQLQJQV.js";function ce(e){if(e.repoUrl)return e.repoUrl;if(e.gitHost&&e.gitOwner&&e.gitRepo)return`https://${e.gitHost}/${e.gitOwner}/${e.gitRepo}.git`;throw new Error("repoUrl missing from API response")}o(ce,"resolveRepoUrl");function le(e,t){let n=new URL(e),r=encodeURIComponent(t);return`${n.protocol}//x-access-token:${r}@${n.host}${n.pathname}`}o(le,"formatTokenizedRepoUrl");function fe(e){let t=new URL(e);return`${t.protocol}//x-access-token:$OPENPOND_API_KEY@${t.host}${t.pathname}`}o(fe,"formatTokenizedRepoUrlForPrint");function me(e){return e.replace(/x-access-token:[^@]+@/g,"x-access-token:***@")}o(me,"redactToken");function pe(e){let t=process.env.OPENPOND_BASE_URL;if(t)try{let n=new URL(t).hostname,r=new URL(e).hostname;n&&r&&n!==r&&(console.warn(`warning: repo host (${r}) does not match OPENPOND_BASE_URL (${n})`),console.warn("warning: verify your git host configuration matches OPENPOND_BASE_URL."))}catch{}}o(pe,"warnOnRepoHostMismatch");function W(e){let t=e.split("/").filter(Boolean);if(t.length!==2)throw new Error("expected <handle>/<repo>");return{handle:t[0],repo:t[1]}}o(W,"parseHandleRepo");function S(e){return(e||"").trim().toLowerCase()}o(S,"normalizeRepoName");async function ee(e){if(!e.forceRefresh){let n=await L({apiBase:e.apiBase,apiKey:e.apiKey,ttlMs:y});if(n)return n}let t=await I(e.apiBase,e.apiKey);return await U({apiBase:e.apiBase,apiKey:e.apiKey,apps:t}),t}o(ee,"fetchAppsWithCache");async function Re(e){if(!e.forceRefresh){let r=await M({apiBase:e.apiBase,apiKey:e.apiKey,ttlMs:y});if(r)return r}let t=await _(e.apiBase,e.apiKey),n=Array.isArray(t.tools)?t.tools:[];return await $({apiBase:e.apiBase,apiKey:e.apiKey,tools:n}),n}o(Re,"fetchToolsWithCache");async function Pe(e,t,n){let{handle:r,repo:s}=W(n),i=await ee({apiBase:e,apiKey:t}),a=S(s),d=i.find(u=>u.handle&&u.handle!==r?!1:[u.repo,u.gitRepo,u.id].map(S).includes(a));if(!d)throw new Error(`app not found for ${r}/${s}`);return{app:d,handle:r,repo:s}}o(Pe,"resolveAppTarget");async function Ee(e){let t=e.intervalMs??5e3,n=e.timeoutMs??240*1e3,r=new Set,s=Date.now();for(;Date.now()-s<n;){let a=(await T(e.baseUrl,e.apiKey,e.deploymentId)).filter(u=>!r.has(u.id));for(let u of a)r.add(u.id);for(let u of a)console.log(`${e.prefix}${u.message}`);let d=await A(e.baseUrl,e.apiKey,e.deploymentId);if(d.status==="failed"){console.log(`${e.prefix}deployment failed`);return}if(d.status==="running"||d.status==="deployed"){console.log(`${e.prefix}deployment complete`);return}await new Promise(u=>setTimeout(u,t))}console.log(`${e.prefix}deployment still in progress`)}o(Ee,"pollDeploymentLogs");import{stdin as q,stdout as H}from"node:process";import{createInterface as F}from"node:readline/promises";async function z(){let e=[];for await(let t of process.stdin)e.push(Buffer.isBuffer(t)?t:Buffer.from(String(t)));return Buffer.concat(e).toString("utf8").replace(/\r?\n$/,"")}o(z,"readAllStdin");function V(e){return new Promise((t,n)=>{let r=process.stdin,s=process.stderr,i="",a=r.isRaw;function d(){r.off("data",u),r.setRawMode&&r.setRawMode(a),r.pause(),s.write(`
3
3
  `)}o(d,"cleanup");function u(m){let f=Buffer.isBuffer(m)?m:Buffer.from(m);for(let c of f){if(c===3){d(),n(new Error("secret prompt cancelled"));return}if(c===13||c===10){d(),t(i);return}if(c===127||c===8){i.length>0&&(i=i.slice(0,-1),s.write("\b \b"));continue}i+=Buffer.from([c]).toString("utf8"),s.write("*")}}o(u,"onData"),s.write(e),r.resume(),r.setRawMode&&r.setRawMode(!0),r.on("data",u)})}o(V,"readMaskedLine");async function Ae(e,t=!1){let n=F({input:q,output:H});try{let r=t?"[Y/n]":"[y/N]",s=(await n.question(`${e} ${r} `)).trim().toLowerCase();return s?s==="y"||s==="yes":t}finally{n.close()}}o(Ae,"promptConfirm");async function Ie(e){let t=F({input:q,output:H});try{return(await t.question(`Local path (default: ${e}): `)).trim()||e}finally{t.close()}}o(Ie,"promptForPath");var X=["readonly","attempt","feature","rollout","replay","template_build","scheduled_run","patch_only","hotfix","multi_feature_batch"],j=["none","manual","auto_after_checks"],G=[...N];function te(e,t){return(process.env.OPENPOND_SANDBOX_BASE_URL||process.env.OPENPOND_API_URL||e.apiBaseUrl||K(process.env.OPENPOND_BASE_URL||e.baseUrl)||v).replace(/\/$/,"")}o(te,"resolveSandboxBaseUrl");async function We(e){let t=await ne(e),n=k(t),r=await B(t,n),s=D(e)||process.env.OPENPOND_SANDBOX_API_URL?.trim()||null,i=te(t,e);return C(s?{apiKey:r,sandboxApiUrl:s}:{apiKey:r,baseUrl:i})}o(We,"resolveSandboxClient");async function ne(e){return O()}o(ne,"loadSandboxConfig");function qe(e){if(e===void 0)return;if(typeof e!="string"||!e.trim())throw new Error("workflow-mode must be a non-empty value");let t=e.trim();if(!X.includes(t))throw new Error(`workflow-mode must be one of ${X.join(", ")}`);return t}o(qe,"parseSandboxWorkflowModeOption");function He(e){if(e===void 0)return;if(typeof e!="string"||!e.trim())throw new Error("runtime-promotion-policy must be a non-empty value");let t=e.trim();if(!j.includes(t))throw new Error(`runtime-promotion-policy must be one of ${j.join(", ")}`);return t}o(He,"parseSandboxRuntimePromotionPolicyOption");function Fe(e){if(typeof e!="string"||!e.trim())return;let t=e.trim();if(!G.includes(t))throw new Error(`runtime-profile-id must be one of ${G.join(", ")}`);return t}o(Fe,"parseSandboxRuntimeProfileIdOption");function re(e){let t=Y(e.envRef,"env-ref").map(({name:i,value:a})=>({name:i,secretRef:a})),n=Y(e.envLiteral,"env-literal").map(({name:i,value:a})=>{if(oe(i)&&!w(e.allowPlainSecretEnv))throw new Error(`refusing plaintext value for secret-like env ${i}; create a sandbox secret and pass --env-ref ${i}=openpond://secret/...`);return{name:i,value:a}}),r=[...t,...n],s=new Set;for(let i of r){if(s.has(i.name))throw new Error(`duplicate sandbox env var: ${i.name}`);s.add(i.name)}return r}o(re,"parseSandboxEnvOptions");function ze(e,t){let n=re(t),r=new Set(n.map(a=>a.name)),s=new Map(n.map(a=>[a.name,a]));for(let a of e.inputs.env)if(s.get(a.name)?.value!==void 0&&a.secret!==!1)throw new Error(`sandbox template env ${a.name} requires a secret ref. Pass --env-ref ${a.name}=openpond://secret/...`);let i=e.inputs.env.filter(a=>a.required&&!r.has(a.name)).map(a=>a.name);if(i.length>0)throw new Error(`missing required sandbox template env refs: ${i.join(", ")}. Pass --env-ref NAME=openpond://secret/...`);return n}o(ze,"parseSandboxTemplateEnvOptions");function Y(e,t){return typeof e!="string"?[]:e.split(",").map(n=>n.trim()).filter(Boolean).map(n=>{let r=n.indexOf("=");if(r<=0)throw new Error(`${t} entries must use NAME=value`);let s=n.slice(0,r).trim(),i=n.slice(r+1).trim();if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(s))throw new Error(`${t} has invalid env name: ${s}`);if(!i)throw new Error(`${t} value is required for ${s}`);return{name:s,value:i}})}o(Y,"parseSandboxEnvAssignments");function oe(e){return/(?:SECRET|TOKEN|KEY|PASSWORD|PASSWD|PRIVATE|CREDENTIAL|DATABASE_URL|DSN)/i.test(e)}o(oe,"isSecretLikeEnvName");async function Ve(e,t){if(typeof e.value=="string"||typeof e.secretValue=="string")throw new Error("sandbox secret values must be provided with --stdin or the masked prompt");if(w(e.stdin)){let s=await z();if(!s)throw new Error(`${t} read no secret value from stdin`);return s}if(!process.stdin.isTTY)throw new Error(`${t} requires --stdin when not running in a TTY`);let r=await V(`${t}: `);if(!r)throw new Error(`${t} cannot be empty`);return r}o(Ve,"readSandboxSecretValue");function Xe(e){return{id:e.id,teamId:e.teamId,name:e.name,scope:e.scope,status:e.status,secretRef:e.secretRef,currentVersion:e.currentVersion,updatedAt:e.updatedAt,lastUsedAt:e.lastUsedAt,attachedDestinations:e.attachments?.length??0}}o(Xe,"summarizeSandboxSecret");import{Buffer as b}from"node:buffer";import{spawn as Q}from"node:child_process";var ie=600*1e3,se=2*1024*1024;function R(e,t=[],n={}){return n.inherit&&n.terminateWhenStdoutIncludes!==void 0?Promise.reject(new Error("terminateWhenStdoutIncludes requires captured stdout")):n.terminateWhenStdoutIncludes===""?Promise.reject(new Error("terminateWhenStdoutIncludes must not be empty")):new Promise((r,s)=>{let i=Q(e,t,{cwd:n.cwd,env:n.env?{...process.env,...n.env}:void 0,shell:n.shell,detached:n.detached??process.platform!=="win32",stdio:n.inherit?"inherit":[n.stdin===void 0?"ignore":"pipe","pipe","pipe"]}),a=new h(J(n)),d=new h(J(n)),u=!1,m=n.timeoutMs??ie,f,c,x=null,g=!1,P=o(()=>{f&&clearTimeout(f),c&&clearTimeout(c)},"clearTimers"),E=o(l=>{x!==null||g||(x=l,u=l==="timeout",f&&(clearTimeout(f),f=void 0),Z(i.pid,"SIGTERM"),c=setTimeout(()=>{i.exitCode===null&&i.signalCode===null&&Z(i.pid,"SIGKILL")},5e3))},"requestTermination");m>0&&(f=setTimeout(()=>{E("timeout")},m)),n.inherit||(i.stdout?.on("data",l=>{a.append(l);let p=n.terminateWhenStdoutIncludes;p!==void 0&&a.text().includes(p)&&E("output")}),i.stderr?.on("data",l=>{d.append(l)})),i.on("error",l=>{P(),g=!0,s(l)}),i.on("close",(l,p)=>{g||(g=!0,P(),r({code:l,signal:p,terminationReason:x??(p?"signal":"exit"),stdout:a.text(),stderr:d.text(),timedOut:u,stdoutTruncated:a.truncated,stderrTruncated:d.truncated}))}),n.stdin!==void 0&&i.stdin?.end(n.stdin)})}o(R,"runProcessCommand");var h=class{static{o(this,"BoundedOutput")}#t=[];#n;#e=0;truncated=!1;constructor(t){this.#n=t}append(t){let n=b.isBuffer(t)?t:b.from(t),r=this.#n-this.#e;if(r<=0){n.byteLength>0&&(this.truncated=!0);return}if(n.byteLength<=r){this.#t.push(n),this.#e+=n.byteLength;return}this.#t.push(n.subarray(0,r)),this.#e+=r,this.truncated=!0}text(){let t=b.concat(this.#t,this.#e).toString("utf8");return this.truncated?`${t}
4
4
  [truncated after ${this.#n} bytes]
5
5
  `:t}};function J(e){let t=e.maxOutputBytes??se;return Math.max(0,Math.floor(t))}o(J,"maxOutputBytes");function Z(e,t){if(e){if(process.platform==="win32"){let n=["/PID",String(e),"/T"];t==="SIGKILL"&&n.push("/F"),Q("taskkill",n,{stdio:"ignore",windowsHide:!0}).unref();return}try{process.kill(-e,t)}catch(n){if(n.code!=="ESRCH")throw n}}}o(Z,"terminateProcessTree");async function ae(e,t,n={}){return R(e,t,{cwd:n.cwd,inherit:n.inherit,timeoutMs:n.timeoutMs,maxOutputBytes:n.maxOutputBytes,terminateWhenStdoutIncludes:n.terminateWhenStdoutIncludes})}o(ae,"runCommand");async function rt(e,t={}){let n=t.timeoutSeconds===void 0?void 0:t.timeoutSeconds*1e3;return R(e,[],{cwd:t.cwd,env:t.env,shell:!0,inherit:t.inherit,timeoutMs:n,maxOutputBytes:t.maxOutputBytes})}o(rt,"runShellCommand");async function ot(e,t){let n=await ae("git",["remote","get-url",t],{cwd:e});if(n.code!==0)return null;let r=n.stdout.trim();return r.length>0?r:null}o(ot,"getGitRemoteUrl");export{ce as a,le as b,fe as c,me as d,pe as e,S as f,ee as g,Re as h,Pe as i,Ee as j,Ae as k,Ie as l,We as m,qe as n,He as o,Fe as p,re as q,ze as r,Ve as s,Xe as t,R as u,ae as v,rt as w,ot as x};
@@ -1,2 +1,2 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{d as c}from"./chunk-KG325WTN.js";import{a as m}from"./chunk-DMFUEUAZ.js";import{m as p}from"./chunk-WJ43MJ3F.js";import{I as i,L as d}from"./chunk-Z4Z5UOZM.js";import{a}from"./chunk-FTQLQJQV.js";async function r(e,o){return(await e.allPayloadRows(`SELECT payload FROM ${o} ORDER BY sort_index ASC`)).map(n=>JSON.parse(n.payload))}a(r,"readStorePayloads");function l(e){let o=e,t=d.safeParse(o.openPondCommandAccessMode);return{...o,experience:S(o),openPondCommandAccessMode:t.success?t.data:i,currentProfile:o.currentProfile??null}}a(l,"normalizeSessionPayload");function S(e){let o=p.safeParse(e.experience);return o.success?o.data:!!(e.provider==="codex"||e.codexThreadId||e.systemKind||e.parentSessionId||e.subagentRunId||e.appId||e.workspaceKind||e.workspaceId||e.localProjectId||e.cloudProjectId)?"development":"chat"}a(S,"storedSessionExperience");async function P(e){return{sessions:(await r(e,"sessions")).map(l),turns:await r(e,"turns"),events:(await r(e,"events")).map(m),approvals:await r(e,"approvals")}}a(P,"readStoreData");async function T(e,o){let t=c();await o.exec("BEGIN IMMEDIATE");try{await o.exec("DELETE FROM approvals; DELETE FROM events; DELETE FROM turns; DELETE FROM sessions;");for(let[n,s]of e.sessions.entries())await o.run("INSERT INTO sessions (id, sort_index, payload, updated_at) VALUES (?, ?, ?, ?)",[s.id,n,JSON.stringify(s),s.updatedAt]);for(let[n,s]of e.turns.entries())await o.run("INSERT INTO turns (id, session_id, provider_turn_id, status, sort_index, payload, updated_at) VALUES (?, ?, ?, ?, ?, ?, ?)",[s.id,s.sessionId,s.providerTurnId,s.status,n,JSON.stringify(s),s.completedAt??s.startedAt]);for(let[n,s]of e.events.entries()){let u=n+1;await o.run("INSERT INTO events (id, session_id, turn_id, name, timestamp, sequence, sort_index, payload) VALUES (?, ?, ?, ?, ?, ?, ?, ?)",[s.id,s.sessionId??null,s.turnId??null,s.name,s.timestamp,u,n,JSON.stringify(s)])}for(let[n,s]of e.approvals.entries())await o.run("INSERT INTO approvals (id, session_id, status, sort_index, payload, updated_at) VALUES (?, ?, ?, ?, ?, ?)",[s.id,s.sessionId,s.status,n,JSON.stringify(s),t]);await o.exec("COMMIT")}catch(n){throw await o.exec("ROLLBACK"),n}}a(T,"persistStoreData");export{l as a,P as b,T as c};
2
+ import{a as m}from"./chunk-DMFUEUAZ.js";import{d as c}from"./chunk-FSQWAANK.js";import{m as p}from"./chunk-O4FBOUNX.js";import{I as i,L as d}from"./chunk-SG6JZ7HD.js";import{a}from"./chunk-FTQLQJQV.js";async function r(e,o){return(await e.allPayloadRows(`SELECT payload FROM ${o} ORDER BY sort_index ASC`)).map(n=>JSON.parse(n.payload))}a(r,"readStorePayloads");function l(e){let o=e,t=d.safeParse(o.openPondCommandAccessMode);return{...o,experience:S(o),openPondCommandAccessMode:t.success?t.data:i,currentProfile:o.currentProfile??null}}a(l,"normalizeSessionPayload");function S(e){let o=p.safeParse(e.experience);return o.success?o.data:!!(e.provider==="codex"||e.codexThreadId||e.systemKind||e.parentSessionId||e.subagentRunId||e.appId||e.workspaceKind||e.workspaceId||e.localProjectId||e.cloudProjectId)?"development":"chat"}a(S,"storedSessionExperience");async function P(e){return{sessions:(await r(e,"sessions")).map(l),turns:await r(e,"turns"),events:(await r(e,"events")).map(m),approvals:await r(e,"approvals")}}a(P,"readStoreData");async function T(e,o){let t=c();await o.exec("BEGIN IMMEDIATE");try{await o.exec("DELETE FROM approvals; DELETE FROM events; DELETE FROM turns; DELETE FROM sessions;");for(let[n,s]of e.sessions.entries())await o.run("INSERT INTO sessions (id, sort_index, payload, updated_at) VALUES (?, ?, ?, ?)",[s.id,n,JSON.stringify(s),s.updatedAt]);for(let[n,s]of e.turns.entries())await o.run("INSERT INTO turns (id, session_id, provider_turn_id, status, sort_index, payload, updated_at) VALUES (?, ?, ?, ?, ?, ?, ?)",[s.id,s.sessionId,s.providerTurnId,s.status,n,JSON.stringify(s),s.completedAt??s.startedAt]);for(let[n,s]of e.events.entries()){let u=n+1;await o.run("INSERT INTO events (id, session_id, turn_id, name, timestamp, sequence, sort_index, payload) VALUES (?, ?, ?, ?, ?, ?, ?, ?)",[s.id,s.sessionId??null,s.turnId??null,s.name,s.timestamp,u,n,JSON.stringify(s)])}for(let[n,s]of e.approvals.entries())await o.run("INSERT INTO approvals (id, session_id, status, sort_index, payload, updated_at) VALUES (?, ?, ?, ?, ?, ?)",[s.id,s.sessionId,s.status,n,JSON.stringify(s),t]);await o.exec("COMMIT")}catch(n){throw await o.exec("ROLLBACK"),n}}a(T,"persistStoreData");export{l as a,P as b,T as c};
@@ -1,5 +1,5 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{a as k}from"./chunk-773TH7FN.js";import{a as u,d}from"./chunk-FUOEIDMA.js";import{i as R,j as h}from"./chunk-QNG27G3T.js";import{f as m,g}from"./chunk-ACYFMLWG.js";import{m as P}from"./chunk-KGNCKIFP.js";import{a}from"./chunk-FTQLQJQV.js";async function S(e){if(!e.repositoryId.trim())throw new Error("Explicit Profile source requires a repository ID.");let o=await h(e),n=await e.store.getHarnessWorkspace(e.workspaceId);if(n){let s=n.currentChannel.release;if(n.ownerScope.kind!=="personal"||n.ownerScope.id!==e.ownerId||n.sourceRevision!==o.sourceRevision||s?.id!==o.harnessRelease.id||s.contentHash!==o.harnessRelease.contentHash)throw new Error("Explicit Profile source changed under its accepted revision.");let i=await e.store.getHarnessReleaseRecord(s.contentHash);if(!i)throw new Error("Explicit Profile source release is missing after restore.");return i}let r=await R({...e,id:e.workspaceId,selectionEligible:!1});if(r.release.harnessRelease.contentHash!==o.harnessRelease.contentHash||r.workspace.sourceRevision!==o.sourceRevision)throw new Error("Explicit Profile source changed during import.");return r.release}a(S,"ensureExplicitProfileHarnessSource");var H="profile-v3-";import{promises as w}from"node:fs";import c from"node:path";var y=new WeakMap;async function T(e){let{profile:o,ref:n}=e;if(o.mode!=="local"||!o.sourcePath||o.error||o.activeProfile!==n.profileId||!o.git?.head||o.git.dirty)throw new Error("Select a clean, committed Profile before loading its workflows.");let r=`${H}${P({ref:n,sourceRevision:o.git.head}).slice(0,24)}`,s=y.get(e.store);s||(s=new Map,y.set(e.store,s));let i=s.get(r);if(i)return i;let t=I({...e,workspaceId:r});s.set(r,t);try{return await t}finally{s.delete(r)}}a(T,"ensureLocalProfileWorkflows");async function I(e){let o=e.profile.git.head,n=await S({store:e.store,storeDir:e.storeDir,workspaceId:e.workspaceId,ownerId:u,name:e.profile.activeProfile,profile:e.profile,sourceRevision:o,repositoryId:e.ref.repositoryId}),r=await v({store:e.store,release:n,ref:e.ref,sourceRevision:o});if(e.reloadProfile){let s=await e.reloadProfile();if(s.git?.head!==o||s.git.dirty)throw new Error("Profile source changed during workflow loading; retry from its committed revision.")}return r}a(I,"loadProfileWorkflows");async function v(e){let o={id:e.release.harnessRelease.id,contentHash:e.release.harnessRelease.contentHash};if(!e.release.harnessRelease.files.some(t=>t.path==="workflows/catalog.json"))return{profileRef:e.ref,sourceRevision:e.sourceRevision,harnessRelease:o,workflows:[]};let{runtime:n,catalog:r,catalogHash:s}=await p(e.store,o),i=n.release.harnessRelease.metadata.profile;if(!i||typeof i!="object"||i.id!==e.ref.profileId||i.sourceRevision!==e.sourceRevision)throw new Error("Selected Profile workflow release differs from its accepted source.");return{profileRef:e.ref,sourceRevision:e.sourceRevision,harnessRelease:o,workflows:r.workflows.map(t=>({workflow:t,binding:{schemaVersion:"openpond.profileWorkflowBinding.v1",profileId:e.ref.profileId,sourceRevision:e.sourceRevision,harnessRelease:o,catalogHash:s,workflowId:t.id}}))}}a(v,"profileWorkflowsForRelease");async function K(e,o){if(o.profileComponentBinding){if(o.profileWorkflowBinding||o.currentProfile?.profileId!==o.profileComponentBinding.profileId)throw new Error("Profile component binding differs from the session Profile reference.");return W({store:e,binding:o.profileComponentBinding})}if(!o.profileWorkflowBinding)return k(e,o.id);if(o.currentProfile?.profileId!==o.profileWorkflowBinding.profileId)throw new Error("Profile workflow binding differs from the session Profile reference.");let{runtime:n,workflow:r,action:s}=await b({store:e,binding:o.profileWorkflowBinding});return{...n,workflow:r,...s?{workflowAction:s}:{}}}a(K,"loadLocalHarnessRuntimeForSession");async function W(e){let{binding:o,store:n}=e,r=await d(n,o.harnessRelease);if(!r)throw new Error("The bound Profile component Harness release is unavailable.");let s=r.release.harnessRelease.metadata.profile;if(!s||typeof s!="object"||s.id!==o.profileId||s.sourceRevision!==o.sourceRevision)throw new Error("Profile component binding differs from its released source.");let i=o.target;if(i.kind==="profile")return r;if(i.kind==="skill"){if(!r.release.agentSnapshot?.skills.some(E=>E.path===i.skillPath)||!r.release.bundlePath)throw new Error("Bound Profile Skill is unavailable in its released source.");let f=await w.readFile(c.join(r.release.bundlePath,"source",i.skillPath),"utf8");return{...r,instructionContext:[r.instructionContext,`Released Profile Skill (${i.skillPath}):
2
+ import{a as k}from"./chunk-DK7IKI7O.js";import{a as u,d}from"./chunk-WDEO44UN.js";import{i as R,j as h}from"./chunk-JHMS2WXM.js";import{f as m,g}from"./chunk-RCA6NGVA.js";import{m as P}from"./chunk-BIPQCJ5V.js";import{a}from"./chunk-FTQLQJQV.js";async function S(e){if(!e.repositoryId.trim())throw new Error("Explicit Profile source requires a repository ID.");let o=await h(e),n=await e.store.getHarnessWorkspace(e.workspaceId);if(n){let s=n.currentChannel.release;if(n.ownerScope.kind!=="personal"||n.ownerScope.id!==e.ownerId||n.sourceRevision!==o.sourceRevision||s?.id!==o.harnessRelease.id||s.contentHash!==o.harnessRelease.contentHash)throw new Error("Explicit Profile source changed under its accepted revision.");let i=await e.store.getHarnessReleaseRecord(s.contentHash);if(!i)throw new Error("Explicit Profile source release is missing after restore.");return i}let r=await R({...e,id:e.workspaceId,selectionEligible:!1});if(r.release.harnessRelease.contentHash!==o.harnessRelease.contentHash||r.workspace.sourceRevision!==o.sourceRevision)throw new Error("Explicit Profile source changed during import.");return r.release}a(S,"ensureExplicitProfileHarnessSource");var H="profile-v3-";import{promises as w}from"node:fs";import c from"node:path";var y=new WeakMap;async function T(e){let{profile:o,ref:n}=e;if(o.mode!=="local"||!o.sourcePath||o.error||o.activeProfile!==n.profileId||!o.git?.head||o.git.dirty)throw new Error("Select a clean, committed Profile before loading its workflows.");let r=`${H}${P({ref:n,sourceRevision:o.git.head}).slice(0,24)}`,s=y.get(e.store);s||(s=new Map,y.set(e.store,s));let i=s.get(r);if(i)return i;let t=I({...e,workspaceId:r});s.set(r,t);try{return await t}finally{s.delete(r)}}a(T,"ensureLocalProfileWorkflows");async function I(e){let o=e.profile.git.head,n=await S({store:e.store,storeDir:e.storeDir,workspaceId:e.workspaceId,ownerId:u,name:e.profile.activeProfile,profile:e.profile,sourceRevision:o,repositoryId:e.ref.repositoryId}),r=await v({store:e.store,release:n,ref:e.ref,sourceRevision:o});if(e.reloadProfile){let s=await e.reloadProfile();if(s.git?.head!==o||s.git.dirty)throw new Error("Profile source changed during workflow loading; retry from its committed revision.")}return r}a(I,"loadProfileWorkflows");async function v(e){let o={id:e.release.harnessRelease.id,contentHash:e.release.harnessRelease.contentHash};if(!e.release.harnessRelease.files.some(t=>t.path==="workflows/catalog.json"))return{profileRef:e.ref,sourceRevision:e.sourceRevision,harnessRelease:o,workflows:[]};let{runtime:n,catalog:r,catalogHash:s}=await p(e.store,o),i=n.release.harnessRelease.metadata.profile;if(!i||typeof i!="object"||i.id!==e.ref.profileId||i.sourceRevision!==e.sourceRevision)throw new Error("Selected Profile workflow release differs from its accepted source.");return{profileRef:e.ref,sourceRevision:e.sourceRevision,harnessRelease:o,workflows:r.workflows.map(t=>({workflow:t,binding:{schemaVersion:"openpond.profileWorkflowBinding.v1",profileId:e.ref.profileId,sourceRevision:e.sourceRevision,harnessRelease:o,catalogHash:s,workflowId:t.id}}))}}a(v,"profileWorkflowsForRelease");async function K(e,o){if(o.profileComponentBinding){if(o.profileWorkflowBinding||o.currentProfile?.profileId!==o.profileComponentBinding.profileId)throw new Error("Profile component binding differs from the session Profile reference.");return W({store:e,binding:o.profileComponentBinding})}if(!o.profileWorkflowBinding)return k(e,o.id);if(o.currentProfile?.profileId!==o.profileWorkflowBinding.profileId)throw new Error("Profile workflow binding differs from the session Profile reference.");let{runtime:n,workflow:r,action:s}=await b({store:e,binding:o.profileWorkflowBinding});return{...n,workflow:r,...s?{workflowAction:s}:{}}}a(K,"loadLocalHarnessRuntimeForSession");async function W(e){let{binding:o,store:n}=e,r=await d(n,o.harnessRelease);if(!r)throw new Error("The bound Profile component Harness release is unavailable.");let s=r.release.harnessRelease.metadata.profile;if(!s||typeof s!="object"||s.id!==o.profileId||s.sourceRevision!==o.sourceRevision)throw new Error("Profile component binding differs from its released source.");let i=o.target;if(i.kind==="profile")return r;if(i.kind==="skill"){if(!r.release.agentSnapshot?.skills.some(E=>E.path===i.skillPath)||!r.release.bundlePath)throw new Error("Bound Profile Skill is unavailable in its released source.");let f=await w.readFile(c.join(r.release.bundlePath,"source",i.skillPath),"utf8");return{...r,instructionContext:[r.instructionContext,`Released Profile Skill (${i.skillPath}):
3
3
  ${f}`].join(`
4
4
 
5
5
  `)}}let l=(await p(n,o.harnessRelease)).actions.find(f=>f.id===i.actionId);if(!l)throw new Error("Bound Profile Agent action is unavailable in its released source.");return{...r,workflowAction:l}}a(W,"loadLocalProfileComponentRuntime");async function b(e){let{runtime:o,catalog:n,catalogHash:r,actions:s}=await p(e.store,e.binding.harnessRelease),i=g({binding:e.binding,harnessRelease:o.release.harnessRelease,catalog:n,catalogHash:r}),t=i.invocation.kind==="agent_action"?i.invocation.actionId:null,l=t?s.find(f=>f.id===t):void 0;if(t&&!l)throw new Error(`Bound Profile action ${t} is missing from its release.`);return{runtime:o,workflow:i,...l?{action:l}:{}}}a(b,"loadLocalProfileWorkflowRuntime");async function p(e,o){let n=await d(e,o);if(!n)throw new Error("The bound Profile workflow Harness release is unavailable.");let r=c.join(n.release.bundlePath,"source"),[s,i]=await Promise.all([w.readFile(c.join(r,"workflows","catalog.json")),w.readFile(c.join(r,"workflows","actions.json"))]),{catalog:t,catalogHash:l,actions:f}=m({agentSnapshot:n.release.agentSnapshot,harnessRelease:n.release.harnessRelease,catalogBytes:s,actionBytes:i});return{runtime:n,catalog:t,catalogHash:l,actions:f}}a(p,"loadLocalProfileWorkflowCatalog");export{S as a,H as b,T as c,v as d,K as e};