openpond 0.2.69 → 0.2.71

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 (397) hide show
  1. package/dist/api/client-context.d.ts +4 -0
  2. package/dist/app-server.js +1 -1
  3. package/dist/chunks/{account-context-V3KLSNKS.js → account-context-LEZDNYMR.js} +1 -1
  4. package/dist/chunks/{acp-ER6CUXG2.js → acp-VWPJ2EL4.js} +1 -1
  5. package/dist/chunks/{acp-agent-AYJ5RPVF.js → acp-agent-OZHZMQ6R.js} +1 -1
  6. package/dist/chunks/{actions-command-BBUS3HDK.js → actions-command-AXGXBU75.js} +1 -1
  7. package/dist/chunks/{app-layer-JCEWGUDH.js → app-layer-OHPIYEOJ.js} +1 -1
  8. package/dist/chunks/{app-server-connected-apps-ILXBFD3S.js → app-server-connected-apps-NH4667QJ.js} +1 -1
  9. package/dist/chunks/{app-server-evaluations-RRLYWLPK.js → app-server-evaluations-Y5UEF2Y7.js} +1 -1
  10. package/dist/chunks/{app-server-harness-services-XXM336NU.js → app-server-harness-services-GUHAIIPS.js} +1 -1
  11. package/dist/chunks/app-server-runtime-CH5STRJP.js +2 -0
  12. package/dist/chunks/apps-DNLT6P4J.js +2 -0
  13. package/dist/chunks/{chunk-MOXIGLN2.js → chunk-23YW5PAQ.js} +1 -1
  14. package/dist/chunks/{chunk-ZDEIVUUI.js → chunk-27OJ2OLP.js} +1 -1
  15. package/dist/chunks/{chunk-RY46UPBO.js → chunk-2ACX7IW5.js} +1 -1
  16. package/dist/chunks/{chunk-NSSZ2ZIU.js → chunk-2EAZB2MW.js} +1 -1
  17. package/dist/chunks/{chunk-DRLP7GIU.js → chunk-2GEZ3ZY7.js} +1 -1
  18. package/dist/chunks/{chunk-PAYFJHPO.js → chunk-2PVW2XFF.js} +1 -1
  19. package/dist/chunks/{chunk-Y2WNZWT2.js → chunk-2Q6FTL4C.js} +1 -1
  20. package/dist/chunks/{chunk-KP2MYTP5.js → chunk-2QHB5P2K.js} +1 -1
  21. package/dist/chunks/{chunk-FNGZ4UDZ.js → chunk-33UVQ7DU.js} +1 -1
  22. package/dist/chunks/{chunk-M4ZHFDRJ.js → chunk-3JVZ7OCQ.js} +1 -1
  23. package/dist/chunks/{chunk-4BUM6JEC.js → chunk-3JYPUOK4.js} +1 -1
  24. package/dist/chunks/{chunk-DXJC3QW7.js → chunk-3VT2PPKW.js} +1 -1
  25. package/dist/chunks/{chunk-Z33RVGP6.js → chunk-5LKEVB2P.js} +1 -1
  26. package/dist/chunks/{chunk-P4QM63L3.js → chunk-5ZBDHIIE.js} +1 -1
  27. package/dist/chunks/{chunk-WD4KAKEX.js → chunk-64EDQ7UV.js} +1 -1
  28. package/dist/chunks/{chunk-UMAVVMXL.js → chunk-6BTX66SV.js} +1 -1
  29. package/dist/chunks/{chunk-KU4TPDPH.js → chunk-6LAGMWJE.js} +1 -1
  30. package/dist/chunks/{chunk-65FJWWXG.js → chunk-6YR5IYHH.js} +1 -1
  31. package/dist/chunks/{chunk-AUO5DCEU.js → chunk-73COPJ32.js} +1 -1
  32. package/dist/chunks/{chunk-KDER7R45.js → chunk-7PDF2UX2.js} +1 -1
  33. package/dist/chunks/{chunk-SO4GMSNP.js → chunk-7SOHV5BH.js} +1 -1
  34. package/dist/chunks/{chunk-XOPHFUUY.js → chunk-ASMQTMQB.js} +1 -1
  35. package/dist/chunks/{chunk-ESYPMD7Q.js → chunk-AT3ZYNX4.js} +1 -1
  36. package/dist/chunks/{chunk-NMMHXYDJ.js → chunk-AVEHWUML.js} +1 -1
  37. package/dist/chunks/{chunk-M4A7G4S5.js → chunk-B7SCVTE6.js} +1 -1
  38. package/dist/chunks/{chunk-7EQLW2KM.js → chunk-BLNEHU62.js} +1 -1
  39. package/dist/chunks/{chunk-DKOVZ6R2.js → chunk-BQNU4HZW.js} +1 -1
  40. package/dist/chunks/{chunk-UANH7U3Y.js → chunk-BTEBZYK3.js} +1 -1
  41. package/dist/chunks/{chunk-BU6MW65V.js → chunk-BYVE4TMU.js} +1 -1
  42. package/dist/chunks/{chunk-PNPV2LDE.js → chunk-BZS2PA4O.js} +1 -1
  43. package/dist/chunks/{chunk-AFYYIJ6K.js → chunk-C7NQPICU.js} +1 -1
  44. package/dist/chunks/{chunk-K7KBFM2T.js → chunk-CBD554GZ.js} +1 -1
  45. package/dist/chunks/{chunk-GYYJ47GX.js → chunk-CWE2N3JI.js} +1 -1
  46. package/dist/chunks/{chunk-ZYLLPRPU.js → chunk-CX4T7I47.js} +1 -1
  47. package/dist/chunks/{chunk-AQUZCWM3.js → chunk-D2V2Y3FB.js} +1 -1
  48. package/dist/chunks/chunk-DFZTRMTL.js +2 -0
  49. package/dist/chunks/{chunk-2PXKSAG6.js → chunk-DLOJG7LP.js} +1 -1
  50. package/dist/chunks/{chunk-5G7BQAUA.js → chunk-DNNWMOMG.js} +1 -1
  51. package/dist/chunks/{chunk-M5X7XKXY.js → chunk-DNRC6TPJ.js} +7 -7
  52. package/dist/chunks/{chunk-HKVFU3B3.js → chunk-DUR32LJG.js} +1 -1
  53. package/dist/chunks/{chunk-XT4CSKHM.js → chunk-E57PUTV2.js} +1 -1
  54. package/dist/chunks/{chunk-4N4EH3RJ.js → chunk-EJOV6Z6F.js} +1 -1
  55. package/dist/chunks/{chunk-OUJ63LMU.js → chunk-ER2VONWQ.js} +1 -1
  56. package/dist/chunks/{chunk-PSY6IRJE.js → chunk-ESOIZG2G.js} +4 -4
  57. package/dist/chunks/{chunk-WNXUSELC.js → chunk-EXAJ2B4I.js} +1 -1
  58. package/dist/chunks/{chunk-CCZ276IA.js → chunk-F2EUZG2W.js} +1 -1
  59. package/dist/chunks/{chunk-VJR2GNRY.js → chunk-FVMTQSVW.js} +1 -1
  60. package/dist/chunks/{chunk-YI6ME6PU.js → chunk-GG6PM7TB.js} +1 -1
  61. package/dist/chunks/{chunk-DDOIPTOM.js → chunk-GMA365GI.js} +1 -1
  62. package/dist/chunks/{chunk-JVMSN7LH.js → chunk-GR4MJJCE.js} +1 -1
  63. package/dist/chunks/{chunk-TB5P3FWM.js → chunk-GUWNSMGH.js} +1 -1
  64. package/dist/chunks/{chunk-AYOMVI7J.js → chunk-HIMG7S5E.js} +1 -1
  65. package/dist/chunks/{chunk-2LJCJOJ7.js → chunk-HLJJAOI2.js} +1 -1
  66. package/dist/chunks/{chunk-AFH462DO.js → chunk-HT6ILPD6.js} +1 -1
  67. package/dist/chunks/{chunk-3Z4VM2LF.js → chunk-HUMNLSCV.js} +1 -1
  68. package/dist/chunks/{chunk-NZDLL6JN.js → chunk-HYUTDZ3N.js} +1 -1
  69. package/dist/chunks/{chunk-XYZV3FKD.js → chunk-I6KTJ3GH.js} +1 -1
  70. package/dist/chunks/{chunk-WZ35ICTE.js → chunk-IFMWAOBR.js} +1 -1
  71. package/dist/chunks/{chunk-R2FYCJL6.js → chunk-IJJ7FYZE.js} +1 -1
  72. package/dist/chunks/{chunk-XHACK2KR.js → chunk-IUYGQO2K.js} +1 -1
  73. package/dist/chunks/{chunk-55YD4UTW.js → chunk-IV2HEX3I.js} +1 -1
  74. package/dist/chunks/chunk-J7X72QUY.js +2 -0
  75. package/dist/chunks/{chunk-U7X5ZLAL.js → chunk-JCHLDNCX.js} +1 -1
  76. package/dist/chunks/chunk-JF7WWLNW.js +2 -0
  77. package/dist/chunks/{chunk-7PKDJHT6.js → chunk-JH4RACOB.js} +1 -1
  78. package/dist/chunks/{chunk-65WRWLUD.js → chunk-JVEIK4RH.js} +1 -1
  79. package/dist/chunks/{chunk-Z5CQXPIS.js → chunk-K3WM4NEC.js} +1 -1
  80. package/dist/chunks/{chunk-EGP6DF34.js → chunk-KASHK2U5.js} +2 -2
  81. package/dist/chunks/{chunk-JEMECEQH.js → chunk-KHDCMVEJ.js} +1 -1
  82. package/dist/chunks/{chunk-BDZDWHBJ.js → chunk-KURL76NW.js} +1 -1
  83. package/dist/chunks/{chunk-7OFD6TFD.js → chunk-LMLGEOKV.js} +1 -1
  84. package/dist/chunks/{chunk-QUNQM2E3.js → chunk-MPEK4ZNY.js} +1 -1
  85. package/dist/chunks/chunk-MZKCW6CB.js +2 -0
  86. package/dist/chunks/{chunk-SDHG6CKU.js → chunk-NDNSLCPE.js} +1 -1
  87. package/dist/chunks/chunk-NK2L5HA2.js +2 -0
  88. package/dist/chunks/{chunk-WCNPGKST.js → chunk-O4YHISU2.js} +1 -1
  89. package/dist/chunks/{chunk-RCQYEHHD.js → chunk-O5ZOW474.js} +1 -1
  90. package/dist/chunks/{chunk-IIT66347.js → chunk-OEAKX5TS.js} +1 -1
  91. package/dist/chunks/{chunk-LSKMALD6.js → chunk-OFV26C2U.js} +2 -2
  92. package/dist/chunks/{chunk-IO5DZUKL.js → chunk-OI4DAZ4U.js} +1 -1
  93. package/dist/chunks/{chunk-Q73RKX7I.js → chunk-OIIE5GUK.js} +1 -1
  94. package/dist/chunks/{chunk-R6I623SZ.js → chunk-OKPV6MBX.js} +6 -6
  95. package/dist/chunks/{chunk-N5EAVX4G.js → chunk-OOKHHOIU.js} +1 -1
  96. package/dist/chunks/{chunk-MIFVX5PK.js → chunk-OQ4RWCYI.js} +1 -1
  97. package/dist/chunks/{chunk-RCRZXHAI.js → chunk-OTG77H7U.js} +1 -1
  98. package/dist/chunks/{chunk-7OKZCJHS.js → chunk-OXRN2257.js} +1 -1
  99. package/dist/chunks/{chunk-4KNPCJR4.js → chunk-PJJSQ4ZI.js} +1 -1
  100. package/dist/chunks/{chunk-7RSQOC5M.js → chunk-PXQZOVSV.js} +2 -2
  101. package/dist/chunks/chunk-QKGNAYSC.js +2 -0
  102. package/dist/chunks/{chunk-R4EEGWXB.js → chunk-QN4CFJQC.js} +1 -1
  103. package/dist/chunks/{chunk-V24VHT76.js → chunk-REGKOCDO.js} +1 -1
  104. package/dist/chunks/chunk-RJY4EI46.js +2 -0
  105. package/dist/chunks/{chunk-E2JB5OCO.js → chunk-RP4DPUN2.js} +1 -1
  106. package/dist/chunks/{chunk-QLGP2OAQ.js → chunk-SNBFWBJI.js} +1 -1
  107. package/dist/chunks/{chunk-G4FRBT7G.js → chunk-SRJTQS2D.js} +3 -3
  108. package/dist/chunks/{chunk-XY7HFXLH.js → chunk-SVLVIYH2.js} +1 -1
  109. package/dist/chunks/{chunk-NW6WGGSL.js → chunk-TCTBCAI6.js} +1 -1
  110. package/dist/chunks/{chunk-7NCM6GBN.js → chunk-TOWY6Y23.js} +1 -1
  111. package/dist/chunks/{chunk-VWWKWYSQ.js → chunk-TWLPZHH7.js} +1 -1
  112. package/dist/chunks/{chunk-Y4I6CFZJ.js → chunk-UGDBMRCT.js} +1 -1
  113. package/dist/chunks/{chunk-JQOVC35K.js → chunk-UKTPX2EE.js} +1 -1
  114. package/dist/chunks/{chunk-CO23RRN7.js → chunk-UMRQKE3W.js} +1 -1
  115. package/dist/chunks/{chunk-B66QCXH2.js → chunk-USKCFST5.js} +1 -1
  116. package/dist/chunks/{chunk-3A2Y7UK3.js → chunk-USTDWGR4.js} +1 -1
  117. package/dist/chunks/{chunk-EWDDDHJN.js → chunk-UZNRH6I3.js} +1 -1
  118. package/dist/chunks/{chunk-CIZI6Z7D.js → chunk-VMW23TIZ.js} +1 -1
  119. package/dist/chunks/{chunk-22RLEU3Q.js → chunk-VND53FAU.js} +1 -1
  120. package/dist/chunks/{chunk-4G3GTEVS.js → chunk-VSQPWLAG.js} +1 -1
  121. package/dist/chunks/{chunk-KCLMA2IH.js → chunk-VV4K5YPD.js} +1 -1
  122. package/dist/chunks/{chunk-7RJOCGQ6.js → chunk-WAUFXZ5B.js} +1 -1
  123. package/dist/chunks/{chunk-HG2YFMVU.js → chunk-WXG3G2O6.js} +1 -1
  124. package/dist/chunks/{chunk-PACLKDTN.js → chunk-XBAB3HMA.js} +1 -1
  125. package/dist/chunks/chunk-XJU47QS2.js +2 -0
  126. package/dist/chunks/{chunk-WGQ3FMRF.js → chunk-XKDOPNQ5.js} +1 -1
  127. package/dist/chunks/{chunk-EYTTZ5H4.js → chunk-XLZMSD5K.js} +1 -1
  128. package/dist/chunks/{chunk-Q7FBVLLB.js → chunk-XNPTLJ5Z.js} +1 -1
  129. package/dist/chunks/{chunk-ZIQJDTQB.js → chunk-XTT3K3TR.js} +1 -1
  130. package/dist/chunks/{chunk-Q7P34B2O.js → chunk-YFHQRDNQ.js} +1 -1
  131. package/dist/chunks/{chunk-UGFSAG4U.js → chunk-YG3HITOU.js} +1 -1
  132. package/dist/chunks/{chunk-DWF3FCY4.js → chunk-Z5R4OSGC.js} +1 -1
  133. package/dist/chunks/{chunk-JT5YQ52I.js → chunk-Z6HWSTEP.js} +1 -1
  134. package/dist/chunks/{chunk-4PUOWSDE.js → chunk-ZEOYNUHL.js} +1 -1
  135. package/dist/chunks/{chunk-2TGHZXJE.js → chunk-ZG3DBXQG.js} +1 -1
  136. package/dist/chunks/{chunk-4KTGYHCE.js → chunk-ZMRP2A7K.js} +1 -1
  137. package/dist/chunks/cli-5JARGJOD.js +2 -0
  138. package/dist/chunks/{command-LNOVZQSK.js → command-AI3SMEAH.js} +11 -11
  139. package/dist/chunks/{configuration-command-C3QBDFND.js → configuration-command-NPA46ZOT.js} +1 -1
  140. package/dist/chunks/connected-app-executor-DLC23O43.js +2 -0
  141. package/dist/chunks/connected-evidence-TVORI55Q.js +2 -0
  142. package/dist/chunks/{connected-starting-assets-5LAJ7CZY.js → connected-starting-assets-WGGBWH4K.js} +1 -1
  143. package/dist/chunks/{continual-FVOLGGOE.js → continual-UHQI2EQD.js} +1 -1
  144. package/dist/chunks/core-commands-QNZUBKOC.js +2 -0
  145. package/dist/chunks/{dataset-preparation-authoring-UUYFWWCT.js → dataset-preparation-authoring-OBMJLGA4.js} +1 -1
  146. package/dist/chunks/datasets-USJLJOEQ.js +2 -0
  147. package/dist/chunks/desktop-test-IYHAOR47.js +3 -0
  148. package/dist/chunks/{dist-2MKJC6HN.js → dist-C5XFRP53.js} +1 -1
  149. package/dist/chunks/evaluation-coordination-UJENK4WQ.js +2 -0
  150. package/dist/chunks/experiment-improvements-6GJMKIER.js +2 -0
  151. package/dist/chunks/experiments-FZHILSC6.js +2 -0
  152. package/dist/chunks/experiments-signal-E32CWBS4.js +2 -0
  153. package/dist/chunks/{help-PLQJOP4P.js → help-32DLAPJR.js} +1 -1
  154. package/dist/chunks/host-profile-evaluation-tools-QAV2UGSB.js +2 -0
  155. package/dist/chunks/{host-profile-external-dataset-KSEPXY2S.js → host-profile-external-dataset-C6ZPMTX6.js} +1 -1
  156. package/dist/chunks/{hosted-app-server-composition-GZES7QXJ.js → hosted-app-server-composition-5DVBKNV3.js} +1 -1
  157. package/dist/chunks/{hosted-experiment-improvement-VG2WE7XZ.js → hosted-experiment-improvement-YQ24C54D.js} +1 -1
  158. package/dist/chunks/hosted-harness-runtime-KLIORGWV.js +2 -0
  159. package/dist/chunks/{hosted-profile-candidate-PTGQLPZO.js → hosted-profile-candidate-RCWFLOVJ.js} +1 -1
  160. package/dist/chunks/{hosted-profile-compiler-FS5R6CHJ.js → hosted-profile-compiler-UDG4BCEW.js} +1 -1
  161. package/dist/chunks/{hosted-profile-evaluation-control-UUEZEMXU.js → hosted-profile-evaluation-control-4R3L4FTK.js} +1 -1
  162. package/dist/chunks/{hosted-profile-evaluation-inspection-4F7OEF4T.js → hosted-profile-evaluation-inspection-NA4SSY7N.js} +1 -1
  163. package/dist/chunks/{hosted-profile-evaluation-preparation-LIJJZDHQ.js → hosted-profile-evaluation-preparation-B4BW6JTB.js} +1 -1
  164. package/dist/chunks/{hosted-tasksets-V24IBVJX.js → hosted-tasksets-IUK3VWSL.js} +1 -1
  165. package/dist/chunks/human-review-D6QCZLYN.js +2 -0
  166. package/dist/chunks/{import-SI24Z7EF.js → import-UCG75PN5.js} +1 -1
  167. package/dist/chunks/{learning-Y3UKNUGE.js → learning-3XDYMYBE.js} +1 -1
  168. package/dist/chunks/learning-OR4CYV4B.js +2 -0
  169. package/dist/chunks/local-harness-improvement-runtime-GZBMBZB2.js +2 -0
  170. package/dist/chunks/local-harness-taskset-review-YVP2ZQJG.js +2 -0
  171. package/dist/chunks/{model-projects-6YWVD2TS.js → model-projects-POZRHXTF.js} +1 -1
  172. package/dist/chunks/opchat-APJUUTT7.js +3 -0
  173. package/dist/chunks/opchat-bounded-chat-PBUSUAY2.js +2 -0
  174. package/dist/chunks/organizations-WK6EZ6L3.js +2 -0
  175. package/dist/chunks/{profile-TD5U3INY.js → profile-BQMS7ALQ.js} +1 -1
  176. package/dist/chunks/project-action-payload-CGV77JSA.js +2 -0
  177. package/dist/chunks/project-agent-XVFYTEUQ.js +2 -0
  178. package/dist/chunks/{published-experiment-source-SDXUVPE7.js → published-experiment-source-2CYFIRBL.js} +1 -1
  179. package/dist/chunks/{refiner-profile-service-56VYLZQJ.js → refiner-profile-service-OLJHA4DI.js} +1 -1
  180. package/dist/chunks/{runtime-Q7JUJO4D.js → runtime-32KYSVZR.js} +1 -1
  181. package/dist/chunks/sandbox-command-OY3VZXGG.js +2 -0
  182. package/dist/chunks/{sandbox-template-GOY7QQUY.js → sandbox-template-YOOSJ4FK.js} +1 -1
  183. package/dist/chunks/saved-work-L4KNWLZB.js +2 -0
  184. package/dist/chunks/setup-EU6CMRXQ.js +2 -0
  185. package/dist/chunks/{src-C3ZUESMK.js → src-3DJR7OAH.js} +1 -1
  186. package/dist/chunks/{src-MT4B43TD.js → src-HYOTHMRX.js} +111 -113
  187. package/dist/chunks/{standalone-experiment-turn-owner-TW5MTWIO.js → standalone-experiment-turn-owner-UYPA6XHW.js} +1 -1
  188. package/dist/chunks/{store-chat-resources-IRHBW2EC.js → store-chat-resources-HISLEZZM.js} +1 -1
  189. package/dist/chunks/{store-continual-support-reviews-3KK42L4I.js → store-continual-support-reviews-ORWHS57V.js} +1 -1
  190. package/dist/chunks/{store-conversation-serving-IVURK52V.js → store-conversation-serving-5UGYKEGJ.js} +1 -1
  191. package/dist/chunks/{store-create-improve-UTCLBXF2.js → store-create-improve-APLPTVYQ.js} +1 -1
  192. package/dist/chunks/{store-datasets-4AQOVAQY.js → store-datasets-HDW6IYBL.js} +1 -1
  193. package/dist/chunks/{store-evaluation-results-PK2P3IMH.js → store-evaluation-results-KB2UDCF3.js} +1 -1
  194. package/dist/chunks/{store-harness-workspaces-YEXB4IRV.js → store-harness-workspaces-TKX5PZWP.js} +1 -1
  195. package/dist/chunks/{store-human-review-O4BVHP25.js → store-human-review-IURNTX3C.js} +1 -1
  196. package/dist/chunks/{store-learned-preference-migration-validation-44SVX6YB.js → store-learned-preference-migration-validation-TH2LKQWV.js} +1 -1
  197. package/dist/chunks/{store-learning-SIUQIY5C.js → store-learning-WLUW2PWE.js} +1 -1
  198. package/dist/chunks/{store-learning-credentials-BUHR7SN6.js → store-learning-credentials-FDKCEDHK.js} +1 -1
  199. package/dist/chunks/{store-local-experiments-BHVTKPPE.js → store-local-experiments-M4V5RLHJ.js} +1 -1
  200. package/dist/chunks/{store-model-batch-review-RVAYUVK2.js → store-model-batch-review-DDZLWVTG.js} +1 -1
  201. package/dist/chunks/{store-model-configuration-6L3OYXF4.js → store-model-configuration-ATOFA5OH.js} +1 -1
  202. package/dist/chunks/{store-model-project-preparation-AAEKCF6V.js → store-model-project-preparation-ZRSCQEQR.js} +1 -1
  203. package/dist/chunks/{store-modification-recordings-LCPK6K2T.js → store-modification-recordings-YJIDUPVJ.js} +1 -1
  204. package/dist/chunks/{store-preference-comparison-5YVIQNVB.js → store-preference-comparison-JKURBESE.js} +1 -1
  205. package/dist/chunks/{store-task-inbox-L6IQTY26.js → store-task-inbox-L53OT6ZC.js} +1 -1
  206. package/dist/chunks/{store-task-inventory-QWS2C656.js → store-task-inventory-R2JJGAHW.js} +1 -1
  207. package/dist/chunks/{store-taskset-drafts-FRFL6ITK.js → store-taskset-drafts-FPNJPFPO.js} +1 -1
  208. package/dist/chunks/{store-training-FYXZU2FE.js → store-training-DIBW7OMP.js} +1 -1
  209. package/dist/chunks/{store-training-jobs-3N3VKPIY.js → store-training-jobs-K7I4SXWW.js} +1 -1
  210. package/dist/chunks/{store-training-models-VOFVGPZR.js → store-training-models-LCSB37YY.js} +1 -1
  211. package/dist/chunks/{taskset-UDDLFYKV.js → taskset-XI5SJBJL.js} +1 -1
  212. package/dist/chunks/{taskset-packages-WMG5DUBN.js → taskset-packages-FUQWNTSB.js} +1 -1
  213. package/dist/chunks/{taskset-packages-T6B6HYKZ.js → taskset-packages-GM6IUOTY.js} +1 -1
  214. package/dist/chunks/{teams-bot-YCUTDDDC.js → teams-bot-CYC5TR64.js} +1 -1
  215. package/dist/chunks/{tool-learning-ZQ6NSJ5K.js → tool-learning-52QZIJIR.js} +1 -1
  216. package/dist/chunks/{training-5UMT45UL.js → training-GDLLLXSV.js} +1 -1
  217. package/dist/chunks/training-RL7UUBER.js +2 -0
  218. package/dist/chunks/training-UJ62NOJJ.js +2 -0
  219. package/dist/chunks/training-hardware-MR4FUC4U.js +3 -0
  220. package/dist/chunks/training-hosted-V5CHG3M3.js +2 -0
  221. package/dist/chunks/{training-hosted-alphaedit-HSMRDJTD.js → training-hosted-alphaedit-R5PVATV4.js} +1 -1
  222. package/dist/chunks/{training-hosted-decision-7JALOU6O.js → training-hosted-decision-WNK5DE3M.js} +1 -1
  223. package/dist/chunks/{training-hosted-engram-SXO75MFG.js → training-hosted-engram-ZQDOKXAV.js} +1 -1
  224. package/dist/chunks/{training-hosted-learning-E2N32YU5.js → training-hosted-learning-UEBGSSNC.js} +1 -1
  225. package/dist/chunks/{training-hosted-modification-comparison-TXFDJFTG.js → training-hosted-modification-comparison-KKI5CKOH.js} +1 -1
  226. package/dist/chunks/{training-hosted-neuron-training-J42WK4EH.js → training-hosted-neuron-training-CFWEDRSR.js} +1 -1
  227. package/dist/chunks/{training-hosted-serving-report-BAEABGJH.js → training-hosted-serving-report-N4NF5AVW.js} +1 -1
  228. package/dist/chunks/{training-hosted-steering-T556BUBG.js → training-hosted-steering-4MDUQ2YV.js} +1 -1
  229. package/dist/chunks/{training-model-start-P3PXDWNT.js → training-model-start-NOA6TYQK.js} +1 -1
  230. package/dist/chunks/{web-search-ZEKJHZW4.js → web-search-FTVNZ7PH.js} +1 -1
  231. package/dist/cli.js +2 -2
  232. package/dist/index.js +1 -1
  233. package/dist/skills/manifest.json +3 -3
  234. package/dist/skills/openpond-cli/references/experiments-and-training.md +19 -0
  235. package/dist/web/assets/App-L7RV4D0A.js +54 -0
  236. package/dist/web/assets/{AppDialog-CxjDHVk9.js → AppDialog-B2V84J7f.js} +1 -1
  237. package/dist/web/assets/{AppTerminalPanel-CKJIVpKa.js → AppTerminalPanel-DfYpUDKT.js} +2 -2
  238. package/dist/web/assets/{AppToastContext-EpiT1dHs.js → AppToastContext-DuiPouLz.js} +1 -1
  239. package/dist/web/assets/{AppsView-BsMyPX_3.js → AppsView-B20RHDCy.js} +1 -1
  240. package/dist/web/assets/{AttachmentTypeIcon-BXvZy5gB.js → AttachmentTypeIcon-l-GRNxaz.js} +1 -1
  241. package/dist/web/assets/{BrowserSidebar-BIIV4aq4.js → BrowserSidebar-Ce0ToS2O.js} +1 -1
  242. package/dist/web/assets/{CartesianChart-brqLBqnF.js → CartesianChart-CtfMRAfp.js} +1 -1
  243. package/dist/web/assets/{ChatTimelineEntry-CwZbn16X.js → ChatTimelineEntry-DzcucW20.js} +1 -1
  244. package/dist/web/assets/{CollaborationTabs-BU4uc4tZ.js → CollaborationTabs-BpmKjNAC.js} +1 -1
  245. package/dist/web/assets/{CommandMenu-DkWpXR55.js → CommandMenu-JXsoxijv.js} +1 -1
  246. package/dist/web/assets/{CommunityView-CsSxJZGn.js → CommunityView-ggdn8pcH.js} +1 -1
  247. package/dist/web/assets/{ComposerAttachments-BdJGCYzI.js → ComposerAttachments-BMmALUs_.js} +1 -1
  248. package/dist/web/assets/{ComposerCreateImproveStrip-CWy0j1vv.js → ComposerCreateImproveStrip-DcM1bkfu.js} +1 -1
  249. package/dist/web/assets/{ConversationImportsSettings-DCmiakbZ.js → ConversationImportsSettings-BKNeARHI.js} +1 -1
  250. package/dist/web/assets/{DatasetReviewImport-DEnF_pGu.js → DatasetReviewImport-DyFOE0Q0.js} +1 -1
  251. package/dist/web/assets/{ExperimentTrainingDataWorkspace-WhwQ0QBi.js → ExperimentTrainingDataWorkspace-CfOyoMrq.js} +2 -2
  252. package/dist/web/assets/{FilePagePreview-BRhhz99q.js → FilePagePreview-B7bWObJN.js} +2 -2
  253. package/dist/web/assets/{GetStartedView-CLVD-qEi.js → GetStartedView-BYbFl93M.js} +1 -1
  254. package/dist/web/assets/{GettingStartedDialog-CMxaAMg-.js → GettingStartedDialog-UgreDozV.js} +1 -1
  255. package/dist/web/assets/{HostedModelLearningReview-Cn-j-rDo.js → HostedModelLearningReview-C_kng2U_.js} +1 -1
  256. package/dist/web/assets/HostedModelLearningSettings-aesD_ifF.js +1 -0
  257. package/dist/web/assets/{HtmlVisual-D5y2WG9L.js → HtmlVisual-nvl1x-jh.js} +1 -1
  258. package/dist/web/assets/{LabModelVersionDetailPage-BxRmYD6h.js → LabModelVersionDetailPage-DrdoNvI-.js} +1 -1
  259. package/dist/web/assets/{LabModelWorkspace-u2Ulm_z4.js → LabModelWorkspace-CHlhzG3q.js} +1 -1
  260. package/dist/web/assets/{LabSkillSidebar-C7IceJTJ.js → LabSkillSidebar-CqHeZzoj.js} +1 -1
  261. package/dist/web/assets/{LabsRoute-CbztQaEf.js → LabsRoute-DzEbPpMK.js} +4 -4
  262. package/dist/web/assets/{LearningBatchesPage-CJqgZNvM.js → LearningBatchesPage-A2dFQW2j.js} +1 -1
  263. package/dist/web/assets/{MainChatThread-DNMfrrRq.js → MainChatThread-BSvKu4e5.js} +2 -2
  264. package/dist/web/assets/{MainPane-CQQxSDPS.js → MainPane-DiWIAxMj.js} +6 -6
  265. package/dist/web/assets/{ModelProjectPageHeader-Dge19aE1.js → ModelProjectPageHeader-lu6iRXHK.js} +1 -1
  266. package/dist/web/assets/{NativeSetupTerminal-D4JnbpyD.js → NativeSetupTerminal-kZ-nFPE8.js} +2 -2
  267. package/dist/web/assets/{NativeSkillSidebar-Jzx1BeKV.js → NativeSkillSidebar-DkkD1uH2.js} +1 -1
  268. package/dist/web/assets/{NewProjectDialog-DcnGzEd9.js → NewProjectDialog-Dg8dMEpc.js} +1 -1
  269. package/dist/web/assets/{OutputsPage-Cmk15Vt_.js → OutputsPage-Dz190U9t.js} +1 -1
  270. package/dist/web/assets/{PageChrome-Cz_fCqtn.js → PageChrome-Bncv-ps0.js} +1 -1
  271. package/dist/web/assets/{ProjectsPage-BZ3Eo3Mz.js → ProjectsPage-DVkYvLtd.js} +1 -1
  272. package/dist/web/assets/{RightChatPanelStack-C6H2vU9N.js → RightChatPanelStack-CP4leenI.js} +1 -1
  273. package/dist/web/assets/RightSidebarHomePanel-C0etQXpt.js +1 -0
  274. package/dist/web/assets/{ScheduledWorkPage-CAkSwM0T.js → ScheduledWorkPage-DI0mgt82.js} +1 -1
  275. package/dist/web/assets/{SettingsView-DvQXGw3_.js → SettingsView-cCtkr089.js} +3 -3
  276. package/dist/web/assets/{TasksetDraftEditorPrimitives-JuU1k8vr.js → TasksetDraftEditorPrimitives-DCQTuswJ.js} +1 -1
  277. package/dist/web/assets/{TeamChatView-DmHjr8W9.js → TeamChatView-BBEomfQ7.js} +1 -1
  278. package/dist/web/assets/{TerminalOverlay-DlaM9d8F.js → TerminalOverlay-Dj5NUDMp.js} +1 -1
  279. package/dist/web/assets/{TrainingCreationPanel-ClpylNsr.js → TrainingCreationPanel-Ds4PLfsd.js} +1 -1
  280. package/dist/web/assets/{TrainingDraftPanel-6tH2xSDj.js → TrainingDraftPanel-BAuh_BF3.js} +1 -1
  281. package/dist/web/assets/{UsageSettingsSection-CzDqxOYM.js → UsageSettingsSection-DbzeatcW.js} +1 -1
  282. package/dist/web/assets/WorkSidebarPanel-BaNuXoZc.js +1 -0
  283. package/dist/web/assets/{WorkspaceDiffPanel-B4e0lyF7.js → WorkspaceDiffPanel-xk-ve1MO.js} +3 -3
  284. package/dist/web/assets/{WorkspaceEnvironmentMenu-D01ZkZZF.js → WorkspaceEnvironmentMenu-D8GSuoYz.js} +1 -1
  285. package/dist/web/assets/{WorkspaceFileLocation-C5s_njZb.js → WorkspaceFileLocation-Dl8M2ZKN.js} +1 -1
  286. package/dist/web/assets/{WorkspaceGitDialogs-DjPZ6KIh.js → WorkspaceGitDialogs-9BhLjYx4.js} +1 -1
  287. package/dist/web/assets/{WorkspaceMonacoEditor-CC4sfOiU.js → WorkspaceMonacoEditor-DYPuC7pj.js} +3 -3
  288. package/dist/web/assets/{WorkspacePdfPreview-vszQqFa4.js → WorkspacePdfPreview-B7BI9tLR.js} +2 -2
  289. package/dist/web/assets/{WorkspacePresentationPreview-DQTvhaRD.js → WorkspacePresentationPreview-sP7JUT7m.js} +1 -1
  290. package/dist/web/assets/{bot-Doyx3T4j.js → bot-D7M8ZtE6.js} +1 -1
  291. package/dist/web/assets/{chat-resources-Beh5lB36.js → chat-resources-DhKAnljP.js} +1 -1
  292. package/dist/web/assets/chevron-down-BAEcJitl.js +1 -0
  293. package/dist/web/assets/chevron-right-3G9s2cQ9.js +1 -0
  294. package/dist/web/assets/chevron-up-DTYF52H1.js +1 -0
  295. package/dist/web/assets/{chunk-C3TS766N-ppRhs95p.js → chunk-C3TS766N-DENE60SE.js} +1 -1
  296. package/dist/web/assets/{client-choice-storage-DitqKiIT.js → client-choice-storage-DYZsrVr9.js} +1 -1
  297. package/dist/web/assets/{client-DwZ92xtu.js → client-gy7zrd7a.js} +1 -1
  298. package/dist/web/assets/{cloud-upload-HdzNTgr2.js → cloud-upload-De-XSMUr.js} +1 -1
  299. package/dist/web/assets/{copy-DTQhoBNg.js → copy-DEK20zbZ.js} +1 -1
  300. package/dist/web/assets/{cssMode-BRTtfXxU.js → cssMode-Dau-Fhqf.js} +1 -1
  301. package/dist/web/assets/{external-link-H1629UU6.js → external-link-DwDry0Fb.js} +1 -1
  302. package/dist/web/assets/{folder-open-CAGdWOrr.js → folder-open-DOb4AjV6.js} +1 -1
  303. package/dist/web/assets/{folder-plus-C14cs2mE.js → folder-plus-BAouDaXv.js} +1 -1
  304. package/dist/web/assets/{git-commit-horizontal-DFUfuVvF.js → git-commit-horizontal-DZbHXcai.js} +1 -1
  305. package/dist/web/assets/{htmlMode-BVaCcL76.js → htmlMode-DlNEe6hu.js} +1 -1
  306. package/dist/web/assets/{icons-Bk2b68aC.js → icons-OQhKVrDc.js} +1 -1
  307. package/dist/web/assets/{image-0DPVY6Ev.js → image-BkYJDChH.js} +1 -1
  308. package/dist/web/assets/{index-B6XX_0h3.js → index-M_h2Ok4V.js} +2 -2
  309. package/dist/web/assets/{info-C8b_tafZ.js → info-Mj5lp4Ic.js} +1 -1
  310. package/dist/web/assets/{jsonMode-BCKKQmmV.js → jsonMode-CyOEyonV.js} +1 -1
  311. package/dist/web/assets/loader-circle-DXVtGvuV.js +1 -0
  312. package/dist/web/assets/{lspLanguageFeatures-DozmNUOx.js → lspLanguageFeatures-DAYPzatg.js} +1 -1
  313. package/dist/web/assets/{maximize-2-CByk9-zN.js → maximize-2-BwFXSX6b.js} +1 -1
  314. package/dist/web/assets/{message-square-C889vRqm.js → message-square-C2nqfNLn.js} +1 -1
  315. package/dist/web/assets/{monaco.contribution-BITdsRbn.js → monaco.contribution-BZcNCJER.js} +2 -2
  316. package/dist/web/assets/{monaco.contribution-DxAV1oS5.js → monaco.contribution-BZkfRhss.js} +2 -2
  317. package/dist/web/assets/{monaco.contribution-BqA-XZ44.js → monaco.contribution-D7_X8TXe.js} +2 -2
  318. package/dist/web/assets/{monaco.contribution-B9q6qbbo.js → monaco.contribution-KyLdVay7.js} +2 -2
  319. package/dist/web/assets/{monitor-BtxlcLuI.js → monitor-B0Qj5Wea.js} +1 -1
  320. package/dist/web/assets/{paperclip-BeIdaspf.js → paperclip-CmrRruxi.js} +1 -1
  321. package/dist/web/assets/{pdf-perlzwEB.js → pdf-BM-9_48p.js} +1 -1
  322. package/dist/web/assets/play-CkACZ6Zo.js +1 -0
  323. package/dist/web/assets/plus-CB258e62.js +1 -0
  324. package/dist/web/assets/{presentation-0bzvu6_u.js → presentation-BYxhoSIo.js} +1 -1
  325. package/dist/web/assets/{python-B9hOnkOI.js → python-B3Mj03I5.js} +1 -1
  326. package/dist/web/assets/{refresh-cw-D61-Ozk3.js → refresh-cw-CwEmO71D.js} +1 -1
  327. package/dist/web/assets/{save-iEMNZoPe.js → save-S--FOuce.js} +1 -1
  328. package/dist/web/assets/{settings-lists-C84qxFmP.js → settings-lists-ChqDppMP.js} +1 -1
  329. package/dist/web/assets/square-BmPfHjGU.js +1 -0
  330. package/dist/web/assets/{square-terminal-Djpzo2Qs.js → square-terminal-CawpQtCi.js} +1 -1
  331. package/dist/web/assets/{submit-issue-command-HfKzyxg5.js → submit-issue-command-CFitxxmO.js} +1 -1
  332. package/dist/web/assets/{toggleHighContrast-ClsXu39R.js → toggleHighContrast-D-cMCvXx.js} +1 -1
  333. package/dist/web/assets/training-CzbWtx75.js +1 -0
  334. package/dist/web/assets/{training-model-data-CIysl8wH.js → training-model-data-G-D64935.js} +1 -1
  335. package/dist/web/assets/{tsMode-nbmaMc-D.js → tsMode-9kzS1ijG.js} +1 -1
  336. package/dist/web/assets/{upload-C6ug8RD-.js → upload-CtYsSYrM.js} +1 -1
  337. package/dist/web/assets/{useAccountSettings-Dr9h4Qz_.js → useAccountSettings-DYYa6puz.js} +1 -1
  338. package/dist/web/assets/{useAgentInventory-ByCk2JAv.js → useAgentInventory-c5B_Tszj.js} +1 -1
  339. package/dist/web/assets/{useChatContextSelection-C0eMm2g6.js → useChatContextSelection-DOISZpTz.js} +1 -1
  340. package/dist/web/assets/{useLocalAgentSchedules-Do0y_leJ.js → useLocalAgentSchedules-QJ8RsMKm.js} +1 -1
  341. package/dist/web/assets/{useQuery-D2MQ7e5U.js → useQuery-DuTGOe2b.js} +1 -1
  342. package/dist/web/assets/{wifi-off-Dr-CapyW.js → wifi-off-BOfP4Vmg.js} +1 -1
  343. package/dist/web/assets/{workers-DKvM2NdM.js → workers-BwGpyrdj.js} +1 -1
  344. package/dist/web/assets/x-5_iy6IDd.js +1 -0
  345. package/dist/web/assets/{yaml-C02vq4ar.js → yaml-BU4IWV_7.js} +1 -1
  346. package/dist/web/index.html +1 -1
  347. package/docs/command-reference.md +1 -0
  348. package/package.json +1 -1
  349. package/dist/chunks/app-server-runtime-43MCH5SY.js +0 -2
  350. package/dist/chunks/apps-VNFGMQFG.js +0 -2
  351. package/dist/chunks/chunk-6D3FI2XT.js +0 -2
  352. package/dist/chunks/chunk-APKXXAUF.js +0 -2
  353. package/dist/chunks/chunk-JCLTFDVW.js +0 -2
  354. package/dist/chunks/chunk-KTIBXRWQ.js +0 -2
  355. package/dist/chunks/chunk-VEBW7NKD.js +0 -2
  356. package/dist/chunks/chunk-YDZBX4XQ.js +0 -2
  357. package/dist/chunks/cli-R7TAP6Z2.js +0 -2
  358. package/dist/chunks/connected-app-executor-LAEAQUJS.js +0 -2
  359. package/dist/chunks/connected-evidence-VKY6O2JW.js +0 -2
  360. package/dist/chunks/core-commands-5TNBVR72.js +0 -2
  361. package/dist/chunks/datasets-BIDZJYDC.js +0 -2
  362. package/dist/chunks/desktop-test-BY2MS3UL.js +0 -3
  363. package/dist/chunks/evaluation-coordination-FXB4DXZA.js +0 -2
  364. package/dist/chunks/experiment-improvements-JPDLKZXD.js +0 -2
  365. package/dist/chunks/experiments-IEN7RXLX.js +0 -2
  366. package/dist/chunks/experiments-signal-L32D36NH.js +0 -2
  367. package/dist/chunks/host-profile-evaluation-tools-UF4ATIUF.js +0 -2
  368. package/dist/chunks/hosted-harness-runtime-MMTLCL23.js +0 -2
  369. package/dist/chunks/human-review-6V6EMNVN.js +0 -2
  370. package/dist/chunks/learning-LAXMGWSQ.js +0 -2
  371. package/dist/chunks/local-harness-improvement-runtime-3YJQRYXC.js +0 -2
  372. package/dist/chunks/local-harness-taskset-review-XQHQ6JCR.js +0 -2
  373. package/dist/chunks/opchat-SV67HVMX.js +0 -3
  374. package/dist/chunks/opchat-bounded-chat-KLMIYSZZ.js +0 -2
  375. package/dist/chunks/organizations-OZZFX7RG.js +0 -2
  376. package/dist/chunks/project-action-payload-TK6G4VMC.js +0 -2
  377. package/dist/chunks/project-agent-FFXPNXCO.js +0 -2
  378. package/dist/chunks/sandbox-command-4BCUDAED.js +0 -2
  379. package/dist/chunks/saved-work-M6PUHKCC.js +0 -2
  380. package/dist/chunks/setup-RMZ2BHLM.js +0 -2
  381. package/dist/chunks/training-5NT2YB2L.js +0 -2
  382. package/dist/chunks/training-UY6KRG4M.js +0 -2
  383. package/dist/chunks/training-hardware-UWQCRDMV.js +0 -3
  384. package/dist/chunks/training-hosted-CKSDRVL6.js +0 -2
  385. package/dist/web/assets/App-CCuh99JW.js +0 -54
  386. package/dist/web/assets/HostedModelLearningSettings-VNBvf38S.js +0 -1
  387. package/dist/web/assets/RightSidebarHomePanel-BfMMVkM1.js +0 -1
  388. package/dist/web/assets/WorkSidebarPanel-CY-AHZ4-.js +0 -1
  389. package/dist/web/assets/chevron-down-DX1hzujj.js +0 -1
  390. package/dist/web/assets/chevron-right-DHN0y3KC.js +0 -1
  391. package/dist/web/assets/chevron-up-_QrW88NF.js +0 -1
  392. package/dist/web/assets/loader-circle-y-SSPwpk.js +0 -1
  393. package/dist/web/assets/play-CHXXdkuO.js +0 -1
  394. package/dist/web/assets/plus-DFFWjhPw.js +0 -1
  395. package/dist/web/assets/square-BE_4JMR3.js +0 -1
  396. package/dist/web/assets/training-DWfghwfZ.js +0 -1
  397. package/dist/web/assets/x-Jx2jlP9u.js +0 -1
@@ -1,2 +1,2 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{t as _,w as C}from"./chunk-WGQ3FMRF.js";import{f as R,m}from"./chunk-HIQPGYVH.js";import{Sa as A}from"./chunk-ZY32SZ2P.js";import{A as e}from"./chunk-X2J2P5ZT.js";import{a as l}from"./chunk-FTQLQJQV.js";var u=e.string().trim().min(1).max(200),P=e.object({operationId:u,execution:R,executionKind:e.literal("recorded_evidence").optional(),graders:e.array(A).min(1).max(100),maximumCostUsd:e.number().finite().min(1e-6).max(1e4),mappings:e.array(e.object({graderId:u,fields:_}).strict()).max(100).optional()}).strict().superRefine((a,n)=>{new Set(a.graders.map(o=>o.id)).size!==a.graders.length&&n.addIssue({code:"custom",path:["graders"],message:"Select each grader once."}),a.mappings&&(new Set(a.mappings.map(o=>o.graderId)).size!==a.mappings.length||a.mappings.some(o=>!a.graders.some(c=>c.id===o.graderId)))&&n.addIssue({code:"custom",path:["mappings"],message:"Map each selected grader at most once."})}),q=e.object({schemaVersion:e.literal("openpond.experimentScoringPass.v1"),id:u,teamId:u,revision:e.number().int().positive(),request:P,graders:e.array(C).min(1).max(100),status:e.enum(["queued","running","cancelling","completed","failed","cancelled"]),totalCount:e.number().int().min(1).max(1e4),counts:e.object({pending:e.number().int().nonnegative(),running:e.number().int().nonnegative(),scored:e.number().int().nonnegative(),unavailable:e.number().int().nonnegative(),failed:e.number().int().nonnegative(),cancelled:e.number().int().nonnegative()}).strict(),resultAvailable:e.boolean(),createdAt:e.iso.datetime(),startedAt:e.iso.datetime().nullable(),completedAt:e.iso.datetime().nullable(),error:e.object({code:u,message:e.string().max(2e3)}).strict().nullable()}).strict(),L=q.extend({contentHash:e.string().regex(/^[a-f0-9]{64}$/)});function O(a){let n=L.parse(a),{contentHash:o,...c}=n;if(m(c)!==o||Object.values(n.counts).reduce((r,d)=>r+d,0)!==n.totalCount)throw new Error("Scoring pass integrity or population accounting failed.");let t=["completed","failed","cancelled"].includes(n.status);if(t&&(!n.completedAt||n.counts.pending||n.counts.running)||!t&&(n.completedAt!==null||n.resultAvailable)||n.status==="completed"&&!n.resultAvailable)throw new Error("Scoring pass lifecycle differs from its retained result.");if(n.graders.length!==n.request.graders.length||new Set(n.graders.map(r=>r.feedbackKey)).size!==n.graders.length||n.graders.some((r,d)=>m(r.release)!==m(n.request.graders[d])||m(r.mappings??[])!==m(n.request.mappings?.find(f=>f.graderId===r.release?.id)?.fields??[])))throw new Error("Scoring pass graders differ from their exact admission.");return n}l(O,"verifyExperimentScoringPass");var I=8388608;async function B(a,n,o,c){let t=new AbortController,r=o.signal,d=l(()=>t.abort(r?.reason),"forward");r?.aborted?d():r?.addEventListener("abort",d,{once:!0});let f=setTimeout(()=>t.abort(new Error("Connected evidence request timed out.")),6e4),s,h=l(()=>{s&&s.cancel(t.signal.reason).catch(()=>{})},"abortReader");t.signal.addEventListener("abort",h,{once:!0});let v=new Promise((w,g)=>{let p=l(()=>g(t.signal.reason??new DOMException("Request aborted","AbortError")),"abort");t.signal.aborted?p():t.signal.addEventListener("abort",p,{once:!0})});try{let w=a(n,{...o,signal:t.signal}).then(i=>{if(t.signal.aborted)throw i.body?.cancel(t.signal.reason).catch(()=>{}),t.signal.reason;return i}),g=await Promise.race([w,v]),p=g.headers.get("content-length");if(s=g.body?.getReader(),t.signal.aborted)throw await s?.cancel(t.signal.reason),t.signal.reason;if(p&&Number(p)>I)throw await s?.cancel(),c(502,"connected_response_too_large","Connected evidence response exceeds 8 MiB.");let x=[],b=0;if(s)for(;;){let i=await Promise.race([s.read(),v]);if(i.done)break;if(b+=i.value.byteLength,b>I)throw await s.cancel(),c(502,"connected_response_too_large","Connected evidence response exceeds 8 MiB.");x.push(i.value)}let S=new Uint8Array(b),E=0;for(let i of x)S.set(i,E),E+=i.byteLength;let y;try{y=JSON.parse(new TextDecoder("utf-8",{fatal:!0}).decode(S))}catch{throw c(502,"connected_response_invalid","Connected evidence response is not valid JSON.")}return{response:g,value:y}}finally{clearTimeout(f),r?.removeEventListener("abort",d),t.signal.removeEventListener("abort",h),s?.releaseLock()}}l(B,"fetchConnectedJson");export{P as a,O as b,B as c};
2
+ import{t as _,w as C}from"./chunk-XKDOPNQ5.js";import{f as R,m}from"./chunk-HIQPGYVH.js";import{Sa as A}from"./chunk-ZY32SZ2P.js";import{A as e}from"./chunk-X2J2P5ZT.js";import{a as l}from"./chunk-FTQLQJQV.js";var u=e.string().trim().min(1).max(200),P=e.object({operationId:u,execution:R,executionKind:e.literal("recorded_evidence").optional(),graders:e.array(A).min(1).max(100),maximumCostUsd:e.number().finite().min(1e-6).max(1e4),mappings:e.array(e.object({graderId:u,fields:_}).strict()).max(100).optional()}).strict().superRefine((a,n)=>{new Set(a.graders.map(o=>o.id)).size!==a.graders.length&&n.addIssue({code:"custom",path:["graders"],message:"Select each grader once."}),a.mappings&&(new Set(a.mappings.map(o=>o.graderId)).size!==a.mappings.length||a.mappings.some(o=>!a.graders.some(c=>c.id===o.graderId)))&&n.addIssue({code:"custom",path:["mappings"],message:"Map each selected grader at most once."})}),q=e.object({schemaVersion:e.literal("openpond.experimentScoringPass.v1"),id:u,teamId:u,revision:e.number().int().positive(),request:P,graders:e.array(C).min(1).max(100),status:e.enum(["queued","running","cancelling","completed","failed","cancelled"]),totalCount:e.number().int().min(1).max(1e4),counts:e.object({pending:e.number().int().nonnegative(),running:e.number().int().nonnegative(),scored:e.number().int().nonnegative(),unavailable:e.number().int().nonnegative(),failed:e.number().int().nonnegative(),cancelled:e.number().int().nonnegative()}).strict(),resultAvailable:e.boolean(),createdAt:e.iso.datetime(),startedAt:e.iso.datetime().nullable(),completedAt:e.iso.datetime().nullable(),error:e.object({code:u,message:e.string().max(2e3)}).strict().nullable()}).strict(),L=q.extend({contentHash:e.string().regex(/^[a-f0-9]{64}$/)});function O(a){let n=L.parse(a),{contentHash:o,...c}=n;if(m(c)!==o||Object.values(n.counts).reduce((r,d)=>r+d,0)!==n.totalCount)throw new Error("Scoring pass integrity or population accounting failed.");let t=["completed","failed","cancelled"].includes(n.status);if(t&&(!n.completedAt||n.counts.pending||n.counts.running)||!t&&(n.completedAt!==null||n.resultAvailable)||n.status==="completed"&&!n.resultAvailable)throw new Error("Scoring pass lifecycle differs from its retained result.");if(n.graders.length!==n.request.graders.length||new Set(n.graders.map(r=>r.feedbackKey)).size!==n.graders.length||n.graders.some((r,d)=>m(r.release)!==m(n.request.graders[d])||m(r.mappings??[])!==m(n.request.mappings?.find(f=>f.graderId===r.release?.id)?.fields??[])))throw new Error("Scoring pass graders differ from their exact admission.");return n}l(O,"verifyExperimentScoringPass");var I=8388608;async function B(a,n,o,c){let t=new AbortController,r=o.signal,d=l(()=>t.abort(r?.reason),"forward");r?.aborted?d():r?.addEventListener("abort",d,{once:!0});let f=setTimeout(()=>t.abort(new Error("Connected evidence request timed out.")),6e4),s,h=l(()=>{s&&s.cancel(t.signal.reason).catch(()=>{})},"abortReader");t.signal.addEventListener("abort",h,{once:!0});let v=new Promise((w,g)=>{let p=l(()=>g(t.signal.reason??new DOMException("Request aborted","AbortError")),"abort");t.signal.aborted?p():t.signal.addEventListener("abort",p,{once:!0})});try{let w=a(n,{...o,signal:t.signal}).then(i=>{if(t.signal.aborted)throw i.body?.cancel(t.signal.reason).catch(()=>{}),t.signal.reason;return i}),g=await Promise.race([w,v]),p=g.headers.get("content-length");if(s=g.body?.getReader(),t.signal.aborted)throw await s?.cancel(t.signal.reason),t.signal.reason;if(p&&Number(p)>I)throw await s?.cancel(),c(502,"connected_response_too_large","Connected evidence response exceeds 8 MiB.");let x=[],b=0;if(s)for(;;){let i=await Promise.race([s.read(),v]);if(i.done)break;if(b+=i.value.byteLength,b>I)throw await s.cancel(),c(502,"connected_response_too_large","Connected evidence response exceeds 8 MiB.");x.push(i.value)}let S=new Uint8Array(b),E=0;for(let i of x)S.set(i,E),E+=i.byteLength;let y;try{y=JSON.parse(new TextDecoder("utf-8",{fatal:!0}).decode(S))}catch{throw c(502,"connected_response_invalid","Connected evidence response is not valid JSON.")}return{response:g,value:y}}finally{clearTimeout(f),r?.removeEventListener("abort",d),t.signal.removeEventListener("abort",h),s?.releaseLock()}}l(B,"fetchConnectedJson");export{P as a,O as b,B as c};
@@ -1,2 +1,2 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{ja as h}from"./chunk-HG2YFMVU.js";import{m as f}from"./chunk-RCT3O3HQ.js";import{A as e}from"./chunk-X2J2P5ZT.js";import{a as m}from"./chunk-FTQLQJQV.js";var g=e.object({schemaVersion:e.literal("openpond.profileWorkCompletion.v1"),sessionId:e.string().min(1),turnId:e.string().min(1),responsePath:e.string().min(1),responseSha256:e.string().regex(/^[a-f0-9]{64}$/),responseBytes:e.number().int().min(1).max(1048576),responseChunks:e.array(e.string().max(65536)).min(1).max(32),outputs:e.array(e.object({id:e.string(),revision:e.number().int(),sha256:e.string(),sizeBytes:e.number().int(),contentType:e.string(),sourceTaskId:e.string(),sourceTurnId:e.string(),title:e.string()}).strict()).min(1).max(100)}).strict();function W(s){let u=new TextDecoder("utf-8",{fatal:!0}).decode(s.response),i=[];for(let r=0;r<u.length;r+=65536)i.push(u.slice(r,r+65536));return g.parse({schemaVersion:"openpond.profileWorkCompletion.v1",sessionId:s.sessionId,turnId:s.turnId,responsePath:s.responsePath,responseSha256:f(s.response),responseBytes:s.response.length,responseChunks:i,outputs:s.outputs.map(({id:r,revision:t,sha256:a,sizeBytes:p,contentType:c,sourceTaskId:o,sourceTurnId:d,title:n})=>({id:r,revision:t,sha256:a,sizeBytes:p,contentType:c,sourceTaskId:o,sourceTurnId:d,title:n}))})}m(W,"createProfileWorkCompletion");function _(s){let u=s.filter(o=>o.name==="tool.completed"&&o.action==="work_finish"&&o.status==="completed");if(!u.length)return null;if(u.length!==1)throw new Error("The case has multiple Work completion receipts.");let i=u[0],r=i.data,t=g.parse(r?.result);if(t.sessionId!==i.sessionId||t.turnId!==i.turnId)throw new Error("Work completion belongs to another case or turn.");let a=t.responseChunks.join(""),p=Buffer.from(a,"utf8");if(p.length!==t.responseBytes||f(p)!==t.responseSha256)throw new Error("Work completion response differs from its sealed content.");if(new Set(t.outputs.map(o=>`${o.id}/${o.revision}`)).size!==t.outputs.length)throw new Error("Work completion repeats a saved output.");let c=s.slice(0,s.indexOf(i));for(let o of t.outputs){if(o.sourceTaskId!==t.sessionId||o.sourceTurnId!==t.turnId)throw new Error("Work completion output belongs to another case or turn.");if(c.filter(n=>n.name==="workspace_action_result"&&n.action==="work_output_save"&&n.status==="completed"&&n.sessionId===t.sessionId&&n.turnId===t.turnId).flatMap(n=>{let l=h.safeParse(n.data?.outputRef);return l.success&&Object.entries(o).every(([k,I])=>l.data[k]===I)?[l.data]:[]}).length!==1)throw new Error("Work completion lacks an exact prior saved-output receipt.")}return a}m(_,"completedProfileWorkResponse");export{W as a,_ as b};
2
+ import{ja as h}from"./chunk-WXG3G2O6.js";import{m as f}from"./chunk-RCT3O3HQ.js";import{A as e}from"./chunk-X2J2P5ZT.js";import{a as m}from"./chunk-FTQLQJQV.js";var g=e.object({schemaVersion:e.literal("openpond.profileWorkCompletion.v1"),sessionId:e.string().min(1),turnId:e.string().min(1),responsePath:e.string().min(1),responseSha256:e.string().regex(/^[a-f0-9]{64}$/),responseBytes:e.number().int().min(1).max(1048576),responseChunks:e.array(e.string().max(65536)).min(1).max(32),outputs:e.array(e.object({id:e.string(),revision:e.number().int(),sha256:e.string(),sizeBytes:e.number().int(),contentType:e.string(),sourceTaskId:e.string(),sourceTurnId:e.string(),title:e.string()}).strict()).min(1).max(100)}).strict();function W(s){let u=new TextDecoder("utf-8",{fatal:!0}).decode(s.response),i=[];for(let r=0;r<u.length;r+=65536)i.push(u.slice(r,r+65536));return g.parse({schemaVersion:"openpond.profileWorkCompletion.v1",sessionId:s.sessionId,turnId:s.turnId,responsePath:s.responsePath,responseSha256:f(s.response),responseBytes:s.response.length,responseChunks:i,outputs:s.outputs.map(({id:r,revision:t,sha256:a,sizeBytes:p,contentType:c,sourceTaskId:o,sourceTurnId:d,title:n})=>({id:r,revision:t,sha256:a,sizeBytes:p,contentType:c,sourceTaskId:o,sourceTurnId:d,title:n}))})}m(W,"createProfileWorkCompletion");function _(s){let u=s.filter(o=>o.name==="tool.completed"&&o.action==="work_finish"&&o.status==="completed");if(!u.length)return null;if(u.length!==1)throw new Error("The case has multiple Work completion receipts.");let i=u[0],r=i.data,t=g.parse(r?.result);if(t.sessionId!==i.sessionId||t.turnId!==i.turnId)throw new Error("Work completion belongs to another case or turn.");let a=t.responseChunks.join(""),p=Buffer.from(a,"utf8");if(p.length!==t.responseBytes||f(p)!==t.responseSha256)throw new Error("Work completion response differs from its sealed content.");if(new Set(t.outputs.map(o=>`${o.id}/${o.revision}`)).size!==t.outputs.length)throw new Error("Work completion repeats a saved output.");let c=s.slice(0,s.indexOf(i));for(let o of t.outputs){if(o.sourceTaskId!==t.sessionId||o.sourceTurnId!==t.turnId)throw new Error("Work completion output belongs to another case or turn.");if(c.filter(n=>n.name==="workspace_action_result"&&n.action==="work_output_save"&&n.status==="completed"&&n.sessionId===t.sessionId&&n.turnId===t.turnId).flatMap(n=>{let l=h.safeParse(n.data?.outputRef);return l.success&&Object.entries(o).every(([k,I])=>l.data[k]===I)?[l.data]:[]}).length!==1)throw new Error("Work completion lacks an exact prior saved-output receipt.")}return a}m(_,"completedProfileWorkResponse");export{W as a,_ as b};
@@ -1,3 +1,3 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{c as H,d as q}from"./chunk-3Z4VM2LF.js";import{c as T,d as L,e as R}from"./chunk-RCQYEHHD.js";import{a as M,b as O,e as k,f as C}from"./chunk-I6VMRQF4.js";import{v as S}from"./chunk-ZY32SZ2P.js";import{n as N}from"./chunk-RCT3O3HQ.js";import{A as c}from"./chunk-X2J2P5ZT.js";import{a}from"./chunk-FTQLQJQV.js";var j=c.object({id:c.string().min(1).max(200),name:c.string().min(1).max(64),arguments:c.record(c.string(),c.unknown())}).strict(),W=c.object({text:c.string().max(262144),toolCalls:c.array(j).max(200)}).strict();async function D(e){if(!e.taskId||e.taskId.length>500)throw new Error("environment_task_identity_invalid");if(!Number.isInteger(e.timeoutMs)||e.timeoutMs<1||e.timeoutMs>36e5)throw new Error("environment_attempt_timeout_invalid");S(e.instructions,262144);let m=e.taskId,f=e.instructions,d=structuredClone(e.input),J=e.policy,x=new AbortController,u=e.signal?AbortSignal.any([x.signal,e.signal]):x.signal,i=!1,_=setTimeout(()=>{i=!0,x.abort(new Error("environment_attempt_timeout"))},e.timeoutMs);_.unref?.();let t=null,h=null,o="environment_failure",p=null,v=null,b=!1,r=!1,n=[],y=0,E=a(s=>{if(y+=new TextEncoder().encode(JSON.stringify(s)).byteLength,y>4194304)throw o="budget_exhausted",new Error("environment_transcript_budget_exhausted");n.push(s)},"append"),P=new Set;try{t=await R({...e,input:d,signal:u}),E({role:"system",text:f}),E({role:"user",text:JSON.stringify({input:d,observation:t.observation})});for(let s=0;s<=t.definition.maxSteps;s++){u.throwIfAborted();let w;try{let l=await J({messages:structuredClone(n),tools:structuredClone(t.definition.tools),signal:u});S(l,1048576),w=structuredClone(W.parse(l));for(let g of w.toolCalls){if(P.has(g.id))throw new Error("environment_duplicate_tool_call_identity");P.add(g.id)}}catch(l){throw u.aborted||(o="policy_failure"),l}if(u.throwIfAborted(),E({role:"assistant",...w}),!w.toolCalls.length){p=w.text,await t.collect(),h=t.snapshot(),b=!0,o="completed";break}for(let l of w.toolCalls){let g;try{g=await t.step({name:l.name,arguments:l.arguments})}catch(I){if(!(I instanceof L))throw I;if(I.code==="step_budget_exhausted"){o="budget_exhausted";break}g={error:I.code}}E({role:"tool",callId:l.id,name:l.name,observation:g})}if(o==="budget_exhausted")break;s===t.definition.maxSteps&&(o="budget_exhausted")}h??=t.snapshot()}catch(s){u.aborted&&(o=i?"timed_out":"cancelled"),v=s instanceof Error?s.message:"environment_attempt_failed",h??=t?.snapshot()??null}finally{if(clearTimeout(_),t)try{await t.destroy(),r=!0}catch(s){o="environment_failure",v=s instanceof Error?s.message:"environment_cleanup_failed"}}let B={schemaVersion:"openpond.javascriptEnvironmentAttempt.v1",taskId:m,status:o,output:p,snapshot:h,collected:b,environmentCleanupComplete:r,messages:n,error:v};return{...B,contentHash:N(B)}}a(D,"runJavaScriptEnvironmentAttempt");import{spawn as z}from"node:child_process";async function A(e){if(e.signal?.throwIfAborted(),!Number.isSafeInteger(e.timeoutMs)||e.timeoutMs<1||e.timeoutMs>3e4)throw new Error("sql_timeout_invalid");let m=O(e.request),{sqlExecutionProcessSource:f}=await import("./sql-execution-process-source-B4HQM6ZV.js");e.signal?.throwIfAborted();let{signal:d}=e,J=`globalThis.__openpondSqlInput = JSON.parse(${JSON.stringify(JSON.stringify(m))});
2
+ import{c as H,d as q}from"./chunk-HUMNLSCV.js";import{c as T,d as L,e as R}from"./chunk-O5ZOW474.js";import{a as M,b as O,e as k,f as C}from"./chunk-I6VMRQF4.js";import{v as S}from"./chunk-ZY32SZ2P.js";import{n as N}from"./chunk-RCT3O3HQ.js";import{A as c}from"./chunk-X2J2P5ZT.js";import{a}from"./chunk-FTQLQJQV.js";var j=c.object({id:c.string().min(1).max(200),name:c.string().min(1).max(64),arguments:c.record(c.string(),c.unknown())}).strict(),W=c.object({text:c.string().max(262144),toolCalls:c.array(j).max(200)}).strict();async function D(e){if(!e.taskId||e.taskId.length>500)throw new Error("environment_task_identity_invalid");if(!Number.isInteger(e.timeoutMs)||e.timeoutMs<1||e.timeoutMs>36e5)throw new Error("environment_attempt_timeout_invalid");S(e.instructions,262144);let m=e.taskId,f=e.instructions,d=structuredClone(e.input),J=e.policy,x=new AbortController,u=e.signal?AbortSignal.any([x.signal,e.signal]):x.signal,i=!1,_=setTimeout(()=>{i=!0,x.abort(new Error("environment_attempt_timeout"))},e.timeoutMs);_.unref?.();let t=null,h=null,o="environment_failure",p=null,v=null,b=!1,r=!1,n=[],y=0,E=a(s=>{if(y+=new TextEncoder().encode(JSON.stringify(s)).byteLength,y>4194304)throw o="budget_exhausted",new Error("environment_transcript_budget_exhausted");n.push(s)},"append"),P=new Set;try{t=await R({...e,input:d,signal:u}),E({role:"system",text:f}),E({role:"user",text:JSON.stringify({input:d,observation:t.observation})});for(let s=0;s<=t.definition.maxSteps;s++){u.throwIfAborted();let w;try{let l=await J({messages:structuredClone(n),tools:structuredClone(t.definition.tools),signal:u});S(l,1048576),w=structuredClone(W.parse(l));for(let g of w.toolCalls){if(P.has(g.id))throw new Error("environment_duplicate_tool_call_identity");P.add(g.id)}}catch(l){throw u.aborted||(o="policy_failure"),l}if(u.throwIfAborted(),E({role:"assistant",...w}),!w.toolCalls.length){p=w.text,await t.collect(),h=t.snapshot(),b=!0,o="completed";break}for(let l of w.toolCalls){let g;try{g=await t.step({name:l.name,arguments:l.arguments})}catch(I){if(!(I instanceof L))throw I;if(I.code==="step_budget_exhausted"){o="budget_exhausted";break}g={error:I.code}}E({role:"tool",callId:l.id,name:l.name,observation:g})}if(o==="budget_exhausted")break;s===t.definition.maxSteps&&(o="budget_exhausted")}h??=t.snapshot()}catch(s){u.aborted&&(o=i?"timed_out":"cancelled"),v=s instanceof Error?s.message:"environment_attempt_failed",h??=t?.snapshot()??null}finally{if(clearTimeout(_),t)try{await t.destroy(),r=!0}catch(s){o="environment_failure",v=s instanceof Error?s.message:"environment_cleanup_failed"}}let B={schemaVersion:"openpond.javascriptEnvironmentAttempt.v1",taskId:m,status:o,output:p,snapshot:h,collected:b,environmentCleanupComplete:r,messages:n,error:v};return{...B,contentHash:N(B)}}a(D,"runJavaScriptEnvironmentAttempt");import{spawn as z}from"node:child_process";async function A(e){if(e.signal?.throwIfAborted(),!Number.isSafeInteger(e.timeoutMs)||e.timeoutMs<1||e.timeoutMs>3e4)throw new Error("sql_timeout_invalid");let m=O(e.request),{sqlExecutionProcessSource:f}=await import("./sql-execution-process-source-B4HQM6ZV.js");e.signal?.throwIfAborted();let{signal:d}=e,J=`globalThis.__openpondSqlInput = JSON.parse(${JSON.stringify(JSON.stringify(m))});
3
3
  ${f}`;return new Promise((x,u)=>{let i=z("node",["--max-old-space-size=64","--input-type=module","-"],{stdio:["pipe","pipe","pipe"],env:{PATH:process.env.PATH},windowsHide:!0}),_,t="",h=0,o=0,p=a(r=>{_??=r,i.kill("SIGKILL")},"stop"),v=a(()=>p(d?.reason instanceof Error?d.reason:new Error("sql_cancelled")),"cancel"),b=setTimeout(()=>p(new Error("sql_timeout")),e.timeoutMs);d?.addEventListener("abort",v,{once:!0}),i.stdout.setEncoding("utf8"),i.stdout.on("data",r=>{h+=Buffer.byteLength(r),h>m.maxResultBytes+65536?p(new Error("sql_process_response_too_large")):t+=r}),i.stderr.on("data",r=>{o+=r.byteLength,o>65536&&p(new Error("sql_process_stderr_too_large"))}),i.once("error",r=>{_??=r}),i.stdin.on("error",r=>p(r)),i.once("close",r=>{if(clearTimeout(b),d?.removeEventListener("abort",v),_){u(_);return}try{if(r!==0)throw new Error("sql_process_exited_without_result");let n=JSON.parse(t);if(!n||typeof n!="object"||!("ok"in n)||n.ok!==!0||!("result"in n))throw new Error("sql_environment_failed");let y=M.parse(n.result);S(y,m.maxResultBytes),x(y)}catch(n){u(n)}}),i.stdin.end(J),d?.aborted&&v()})}a(A,"executeSqlInProcess");async function ie(e){let m=k.parse(e.operation);return T(e,{sql:A,candidate:q,controller:a(async f=>C.parse(await H({...f,exportName:m,maxResultBytes:1572864,deterministic:!0,errorPrefix:"environment"})),"controller")})}a(ie,"executeJavaScriptEnvironmentInWorker");async function le(e){let m=k.parse(e.operation);return T(e,{sql:A,candidate:q,controller:a(async f=>C.parse(await q({...f,exportName:m,maxResultBytes:1572864,deterministic:!0,errorPrefix:"environment"})),"controller")})}a(le,"executeJavaScriptEnvironmentInProcess");export{D as a,ie as b,le as c};
@@ -1,2 +1,2 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{v as x}from"./chunk-MOXIGLN2.js";import{B as I}from"./chunk-OFJPOTES.js";import{p as T}from"./chunk-YU3C6U5V.js";import{a as A}from"./chunk-KVTBX2UP.js";import{a}from"./chunk-FTQLQJQV.js";function G(e){let n=e.trim().replace(/^```(?:json)?\s*/i,"").replace(/```\s*$/,"");try{let t=JSON.parse(n);return typeof t.score!="number"||typeof t.passed!="boolean"?null:{score:Math.max(0,Math.min(1,t.score)),passed:t.passed,feedback:typeof t.feedback=="string"?t.feedback.slice(0,2e4):"Model judge completed.",evidenceRefs:[]}}catch{return null}}a(G,"parseModelJudgeResult");function X(e){if(typeof e=="number"&&Number.isFinite(e)&&e>0)return Math.floor(e);let n=process.env.OPENPOND_HOSTED_WORKSPACE_TOOL_ROUNDS?.trim();if(!n)return 64;if(/^(unlimited|infinite|infinity)$/i.test(n))return Number.POSITIVE_INFINITY;let t=Number.parseInt(n,10);return Number.isFinite(t)&&t>0?t:64}a(X,"resolveMaxHostedWorkspaceToolRounds");function Y(e,n,t){let o=Date.now()-6e4;for(let r=e.length-1;r>=0;r-=1){let i=e[r],s=Date.parse(i.timestamp);if(Number.isFinite(s)&&s<o)return null;if(i.sessionId!==n||i.name!=="session.compaction.completed")continue;let d=i.data&&typeof i.data=="object"?i.data:null;if(d?.provider==="codex"&&d.codexThreadId===t)return i}return null}a(Y,"findRecentCodexCompactionCompleted");function Q(e){return e==="agent"||e==="skill"||e==="extension"||e==="model"||e==="configuration"?e:null}a(Q,"createImproveTargetKind");function V(e){if(!e)return;let n=Number(e);return Number.isFinite(n)&&n>0?Math.trunc(n):void 0}a(V,"createImproveLimit");var ne=new Set(["ask_user","get_profile","agent_inspect","agent_build","agent_validate","agent_eval","agent_run","agent_traces","agent_check","exec_command","view_image","list_files","read_files","search_files","write_file","write_files","edit_file","delete_file","workspace_status"]);function re(e){let n={type:"string"},t={type:"string",minLength:1};return[["list_files",{},[]],["workspace_status",{},[]],["read_files",{paths:{type:"array",items:t,minItems:1,maxItems:30}},["paths"]],["search_files",{query:{type:"string",minLength:1,maxLength:2e3}},["query"]],["write_file",{path:t,content:n},["path","content"]],["write_files",{files:{type:"object",additionalProperties:n,maxProperties:30}},["files"]],["edit_file",{path:t,oldText:{type:"string",minLength:1},newText:n,replaceAll:{type:"boolean"}},["path","oldText","newText"]],["delete_file",{path:t},["path"]]].map(([r,i,s])=>({name:r,description:`${r.replaceAll("_"," ")} in the isolated selected candidate component. Paths are relative to its public source tree.`,parameters:{type:"object",additionalProperties:!1,properties:i,required:s},execute:a(async d=>{let c=await e(d.session.id,{action:r,args:d.args,source:"chat_action"},{turnId:d.turnId,workspaceDiffBaseline:d.workspaceDiffBaseline});return x(d.callId,r,c)},"execute")}))}a(re,"candidateFileToolDefinitions");import{realpath as C}from"node:fs/promises";import p from"node:path";function ce(e){let n=[O()];if(!e.loadProfileState)return n;let t=a(async(r,i)=>{if(i&&(i.turnMetadata?.source==="experiment-improvement"||i.turnMetadata?.refinementCandidate!==void 0||i.session.metadata?.source==="experiment-improvement"||i.session.metadata?.refinementCandidate!==void 0)){if(!e.resolveCandidateProfile)throw new Error("Candidate authoring requires an admitted isolated Profile resolver.");let s=await e.resolveCandidateProfile(i);return S(s),s}return e.loadProfileState(r,i)},"loadProfileState"),o=a(async r=>{if(r.context.turnMetadata?.source==="experiment-improvement"||r.context.turnMetadata?.refinementCandidate!==void 0||r.context.session.metadata?.source==="experiment-improvement"||r.context.session.metadata?.refinementCandidate!==void 0){if(!e.executeCandidateAgentCommand)throw new Error("Candidate Agent commands require filesystem-confined execution.");return e.executeCandidateAgentCommand(r)}return I({...r,throwOnFailure:!1})},"runCommand");return n.push(E(t),u(t,o,"agent_inspect","inspect"),u(t,o,"agent_build","build"),u(t,o,"agent_validate","validate"),u(t,o,"agent_eval","eval"),D(t,o),u(t,o,"agent_traces","traces"),L(t,o)),n}a(ce,"createAuthoringModelToolDefinitions");function O(){return{name:"ask_user",description:"Ask one blocking user question when the answer materially changes the requested work and cannot be inferred safely. This call ends the current model turn after persisting the question; do not batch it with mutations.",parameters:{type:"object",additionalProperties:!1,properties:{question:{type:"string",minLength:1,maxLength:2e3},reason:{type:"string",minLength:1,maxLength:1e3},options:{type:"array",minItems:2,maxItems:5,items:{type:"object",additionalProperties:!1,properties:{id:{type:"string",minLength:1,maxLength:80},label:{type:"string",minLength:1,maxLength:160},description:{type:"string",minLength:1,maxLength:500}},required:["id","label"]}},allowFreeform:{type:"boolean"}},required:["question"]},execute:a(async e=>{let n=m(e.args,"question"),t=R(e.args,"reason"),o=q(e.args,"options").map(i=>g(i)).filter(i=>!!i).map(i=>({id:m(i,"id"),label:m(i,"label"),description:R(i,"description")})),r={questionId:`question_${e.turnId}_${e.callId}`,question:n,reason:t,options:o,allowFreeform:e.args.allowFreeform!==!1,status:"awaiting_user_input",nextStep:"end_turn"};return{...l(e.callId,"ask_user",!0,n,r),turnControl:"await_user_input"}},"execute")}}a(O,"askUserDefinition");function E(e){return{name:"get_profile",description:"Return the exact OpenPond Profile selected for this chat turn, including bounded local path, Skill, Agent, action, and Git context. Call before Profile authoring. This tool does not change the selected Profile or grant filesystem permission.",parameters:{type:"object",additionalProperties:!1,properties:{}},execute:a(async n=>{let t=h(n),o=await e(t,n),r=N(o,n.turnMetadata,t);return l(n.callId,"get_profile",!o.error,o.error??"Resolved selected Profile.",r)},"execute")}}a(E,"getProfileDefinition");function u(e,n,t,o){return{name:t,description:j(t),parameters:M(),execute:a(async r=>{let i=await f(e,r),s=await v(n,r,o,i.cwd);return l(r.callId,t,s.code===0&&!s.timedOut,s.code===0&&!s.timedOut?`${t} passed for ${i.agentId}.`:`${t} failed for ${i.agentId}.`,{agentId:i.agentId,cwd:i.cwd,command:o,...P(s)})},"execute")}}a(u,"agentCommandDefinition");function D(e,n){return{name:"agent_run",description:"Run one declared action on an exact enabled Profile Agent with typed JSON input. Use for behavioral proof, not as the default validation gate.",parameters:{type:"object",additionalProperties:!1,properties:{agentId:{type:"string",minLength:1},action:{type:"string",minLength:1},input:{type:"object",additionalProperties:!0}},required:["agentId","action"]},execute:a(async t=>{let o=await f(e,t),r=m(t.args,"action"),i=g(t.args,"input")??{},s=await n({context:t,command:"run",args:[r,"--json","--input",JSON.stringify(i),"--cwd",o.cwd],cwd:o.cwd,timeoutMs:12e4,maxOutputBytes:25e4});return l(t.callId,"agent_run",s.code===0&&!s.timedOut,s.code===0&&!s.timedOut?`Action ${r} passed for ${o.agentId}.`:`Action ${r} failed for ${o.agentId}.`,{agentId:o.agentId,cwd:o.cwd,action:r,input:i,...P(s)})},"execute")}}a(D,"agentRunDefinition");function L(e,n){return{name:"agent_check",description:"Run the mandatory Agent authoring gate\u2014inspect, build, validate, and eval\u2014in order for one exact Profile Agent. Stops on the first failure and returns bounded per-step receipts.",parameters:M(),execute:a(async t=>{let o=await f(e,t),r=[];for(let s of["inspect","build","validate","eval"]){let d=await v(n,t,s,o.cwd),c=P(d);if(r.push({command:s,receipt:c}),d.code!==0||d.timedOut)return l(t.callId,"agent_check",!1,`agent_check stopped at ${s} for ${o.agentId}.`,{agentId:o.agentId,cwd:o.cwd,passed:!1,failedStep:s,steps:r})}let i=await e(h(t),t);return l(t.callId,"agent_check",!0,`agent_check passed for ${o.agentId}.`,{agentId:o.agentId,cwd:o.cwd,passed:!0,failedStep:null,steps:r,profileRefresh:{activeProfile:i.activeProfile,agentIds:i.agents.map(s=>s.id).slice(0,200),actionIds:i.actionCatalog.map(s=>s.id).slice(0,500)}})},"execute")}}a(L,"agentCheckDefinition");async function f(e,n){let t=m(n.args,"agentId"),o=await e(h(n),n);S(o);let r=g(n.turnMetadata,"authoringIntent");if(r?.artifact==="agent"&&r.operation==="improve"&&typeof r.targetAgentId=="string"&&r.targetAgentId!==t)throw new Error(`Agent improve is bound to ${r.targetAgentId}; ${t} is not authorized.`);if(!o.agents.find(k=>k.id===t)?.enabled)throw new Error(`Enabled Profile Agent not found: ${t}`);let s=t==="default"?o.sourcePath:p.resolve(o.sourcePath,"agents",t),d=await C(o.sourcePath),c=await C(s).catch(()=>null);if(!c)throw new Error(`Profile Agent source does not exist: ${t}`);if(!F(d,c))throw new Error(`Profile Agent source escapes the selected Profile: ${t}`);return{profile:o,agentId:t,cwd:c}}a(f,"resolveAgentTarget");async function v(e,n,t,o){return e({context:n,command:t,args:t==="inspect"||t==="validate"||t==="eval"||t==="traces"?["--json"]:[],cwd:o,timeoutMs:t==="eval"?18e4:12e4,maxOutputBytes:25e4})}a(v,"executeAgentCommand");function S(e){if(e.error)throw new Error(e.error);if(e.mode!=="local"||!e.repoPath||!e.sourcePath)throw new Error("The selected OpenPond Profile is not locally editable.")}a(S,"assertEditableProfile");function N(e,n,t){let o=e.git?.files.slice(0,200).map(r=>r.path)??[];return{mode:e.mode,editable:e.mode==="local"&&!!(e.repoPath&&e.sourcePath)&&!e.error,blockedReason:e.error??(e.mode==="local"&&e.repoPath&&e.sourcePath?null:"The selected Profile is not locally editable."),ref:t,activeProfile:e.activeProfile,repoPath:e.repoPath,sourcePath:e.sourcePath,manifestPath:e.manifestPath,profileConfigPath:e.sourcePath?p.join(e.sourcePath,"settings","profile.yaml"):null,authoring:g(n,"authoringIntent"),skills:e.skills.slice(0,200).map(r=>({name:r.name,description:r.description,path:r.path,sourcePath:r.sourcePath,enabled:r.enabled,validationStatus:r.validationStatus})),agents:e.agents.slice(0,200).map(r=>{let i=e.actionCatalog.filter(s=>s.agentId===r.id).slice(0,100);return{id:r.id,name:r.name,path:r.path,sourcePath:e.sourcePath?r.id==="default"?e.sourcePath:p.resolve(e.sourcePath,"agents",r.id):r.path,enabled:r.enabled,defaultAction:i.find(s=>s.sourceActionId==="chat"||s.id===`${r.id}.chat`)?.id??i[0]?.id??null,actionNames:i.map(s=>s.id)}}),git:e.git?{branch:e.git.branch,head:e.git.head,dirty:e.git.dirty,changedPaths:o,truncated:e.git.files.length>o.length}:null}}a(N,"profileProjection");function h(e){let n=g(e.turnMetadata,"selectedProfileRef");return n&&(n.source==="local"||n.source==="github"||n.source==="openpond_git")&&typeof n.repositoryId=="string"&&n.repositoryId.trim()&&typeof n.profileId=="string"&&n.profileId.trim()?{source:n.source,repositoryId:n.repositoryId,profileId:n.profileId}:e.session.currentProfile??null}a(h,"selectedProfileRef");function M(){return{type:"object",additionalProperties:!1,properties:{agentId:{type:"string",minLength:1,description:"Exact enabled Agent ID from get_profile."}},required:["agentId"]}}a(M,"agentTargetParameters");function j(e){return`Run OpenPond Agent SDK ${e.replace(/^agent_/,"")} for one exact enabled Agent beneath the selected Profile and return a bounded structured receipt.`}a(j,"agentToolDescription");function P(e){return{code:e.code,timedOut:e.timedOut,stdout:$(e.stdout),stderr:e.stderr,stdoutTruncated:e.stdoutTruncated,stderrTruncated:e.stderrTruncated}}a(P,"commandReceipt");function $(e){let n=e.trim();if(!n)return"";try{return JSON.parse(n)}catch{return n}}a($,"parseJsonOrText");function l(e,n,t,o,r){return{toolCallId:e,name:n,ok:t,contentText:JSON.stringify({ok:t,action:n,output:o,data:r},null,2),data:r}}a(l,"modelResult");function m(e,n){let t=e[n];if(typeof t!="string"||!t.trim())throw new Error(`${n} is required`);return t.trim()}a(m,"stringArg");function R(e,n){let t=e[n];return typeof t=="string"&&t.trim()?t.trim():null}a(R,"optionalStringArg");function q(e,n){let t=e[n];return Array.isArray(t)?t:[]}a(q,"arrayArg");function g(e,n){let t=n&&e&&typeof e=="object"&&!Array.isArray(e)?e[n]:e;return t&&typeof t=="object"&&!Array.isArray(t)?t:null}a(g,"recordArg");function F(e,n){let t=p.relative(e,n);return t===""||!t.startsWith("..")&&!p.isAbsolute(t)}a(F,"isWithin");import{execFile as B}from"node:child_process";import y from"node:path";var b=12,_=8,w=" .:-=+*#%@";function he(e={}){return{name:"view_image",description:"Inspect a real local PNG, JPEG, GIF, WebP, or AVIF file. Reads the image bytes directly and returns dimensions plus a coarse pixel/color map; it also creates an actual image preview in the chat UI. Use this instead of opening file:// URLs or browser snapshots, which cannot inspect local image pixels. For many video frames, build one contact sheet and inspect that rather than reading frames one by one.",parameters:{type:"object",additionalProperties:!1,properties:{path:{type:"string",minLength:1,description:"Absolute image path, or a path relative to the selected local project."}},required:["path"]},enabled:a(n=>n.provider==="codex"||n.session.provider==="codex"||n.session.openPondCommandAccessMode==="disabled"?!1:A({session:n.session}).target!=="sandbox","enabled"),execute:a(async n=>{if(n.turnMetadata?.source==="experiment-improvement"||n.turnMetadata?.refinementCandidate!==void 0||n.session.metadata?.source==="experiment-improvement"||n.session.metadata?.refinementCandidate!==void 0){if(!e.executeCandidateImage)throw new Error("Candidate image inspection requires its confined filesystem executor.");return e.executeCandidateImage(n)}let t=K(n.args.path,"path"),o=y.isAbsolute(t)?y.resolve(t):n.session.cwd?y.resolve(n.session.cwd,t):"";if(!o)throw new Error("A relative image path requires a selected local project.");let r=await T(o);if(!r)throw new Error(`Local image was not found or is not a supported image: ${o}`);let i=await U(r.path,n.signal);return{toolCallId:n.callId,name:"view_image",ok:!0,contentText:JSON.stringify({ok:!0,action:"view_image",output:`Read actual image pixels from ${r.path}.`,data:{path:r.path,contentType:r.contentType,sizeBytes:r.sizeBytes,...i,note:"The luminance and color maps are deterministic pixel samples, not a semantic vision caption."}},null,2),data:{openpondImagePreviewPath:r.path,path:r.path,contentType:r.contentType,sizeBytes:r.sizeBytes,...i}}},"execute")}}a(he,"createLocalImageModelToolDefinition");async function U(e,n,t=z){let o=await t("identify",["-format","%m %w %h",e],n),r=/^(\S+)\s+(\d+)\s+(\d+)/.exec(o.trim());if(!r)throw new Error("Image metadata could not be decoded.");let i=await t("convert",[e,"-resize",`${b}x${_}!`,"-depth","8","txt:-"],n),s=W(i);return{format:r[1],width:Number.parseInt(r[2],10),height:Number.parseInt(r[3],10),luminanceMap:s.map(d=>d.map(J).join("")),colorMap:s.map(d=>d.map(c=>`#${c.map(H).join("")}`))}}a(U,"inspectImagePixels");function W(e){let n=Array.from({length:_},()=>Array.from({length:b},()=>[0,0,0]));for(let t of e.split(/\r?\n/)){let o=/^(\d+),(\d+):\s*\(\s*(\d+),\s*(\d+),\s*(\d+)/.exec(t);if(!o)continue;let r=Number.parseInt(o[1],10),i=Number.parseInt(o[2],10);r>=b||i>=_||(n[i][r]=[Number.parseInt(o[3],10),Number.parseInt(o[4],10),Number.parseInt(o[5],10)])}return n}a(W,"sampledPixelRows");function J([e,n,t]){let o=.2126*e+.7152*n+.0722*t;return w[Math.min(w.length-1,Math.round(o/255*(w.length-1)))]}a(J,"luminanceCharacter");function H(e){return Math.max(0,Math.min(255,e)).toString(16).padStart(2,"0")}a(H,"hexByte");function z(e,n,t){return new Promise((o,r)=>{B(e,n,{encoding:"utf8",maxBuffer:256*1024,signal:t},(i,s)=>{if(i){r(new Error(`${e} could not inspect the image: ${i.message}`));return}o(s)})})}a(z,"runImageCommand");function K(e,n){if(typeof e!="string"||!e.trim())throw new Error(`${n} is required.`);return e.trim()}a(K,"stringArg");export{ne as a,re as b,ce as c,he as d,U as e,G as f,X as g,Y as h,Q as i,V as j};
2
+ import{v as x}from"./chunk-23YW5PAQ.js";import{B as I}from"./chunk-OFJPOTES.js";import{p as T}from"./chunk-YU3C6U5V.js";import{a as A}from"./chunk-KVTBX2UP.js";import{a}from"./chunk-FTQLQJQV.js";function G(e){let n=e.trim().replace(/^```(?:json)?\s*/i,"").replace(/```\s*$/,"");try{let t=JSON.parse(n);return typeof t.score!="number"||typeof t.passed!="boolean"?null:{score:Math.max(0,Math.min(1,t.score)),passed:t.passed,feedback:typeof t.feedback=="string"?t.feedback.slice(0,2e4):"Model judge completed.",evidenceRefs:[]}}catch{return null}}a(G,"parseModelJudgeResult");function X(e){if(typeof e=="number"&&Number.isFinite(e)&&e>0)return Math.floor(e);let n=process.env.OPENPOND_HOSTED_WORKSPACE_TOOL_ROUNDS?.trim();if(!n)return 64;if(/^(unlimited|infinite|infinity)$/i.test(n))return Number.POSITIVE_INFINITY;let t=Number.parseInt(n,10);return Number.isFinite(t)&&t>0?t:64}a(X,"resolveMaxHostedWorkspaceToolRounds");function Y(e,n,t){let o=Date.now()-6e4;for(let r=e.length-1;r>=0;r-=1){let i=e[r],s=Date.parse(i.timestamp);if(Number.isFinite(s)&&s<o)return null;if(i.sessionId!==n||i.name!=="session.compaction.completed")continue;let d=i.data&&typeof i.data=="object"?i.data:null;if(d?.provider==="codex"&&d.codexThreadId===t)return i}return null}a(Y,"findRecentCodexCompactionCompleted");function Q(e){return e==="agent"||e==="skill"||e==="extension"||e==="model"||e==="configuration"?e:null}a(Q,"createImproveTargetKind");function V(e){if(!e)return;let n=Number(e);return Number.isFinite(n)&&n>0?Math.trunc(n):void 0}a(V,"createImproveLimit");var ne=new Set(["ask_user","get_profile","agent_inspect","agent_build","agent_validate","agent_eval","agent_run","agent_traces","agent_check","exec_command","view_image","list_files","read_files","search_files","write_file","write_files","edit_file","delete_file","workspace_status"]);function re(e){let n={type:"string"},t={type:"string",minLength:1};return[["list_files",{},[]],["workspace_status",{},[]],["read_files",{paths:{type:"array",items:t,minItems:1,maxItems:30}},["paths"]],["search_files",{query:{type:"string",minLength:1,maxLength:2e3}},["query"]],["write_file",{path:t,content:n},["path","content"]],["write_files",{files:{type:"object",additionalProperties:n,maxProperties:30}},["files"]],["edit_file",{path:t,oldText:{type:"string",minLength:1},newText:n,replaceAll:{type:"boolean"}},["path","oldText","newText"]],["delete_file",{path:t},["path"]]].map(([r,i,s])=>({name:r,description:`${r.replaceAll("_"," ")} in the isolated selected candidate component. Paths are relative to its public source tree.`,parameters:{type:"object",additionalProperties:!1,properties:i,required:s},execute:a(async d=>{let c=await e(d.session.id,{action:r,args:d.args,source:"chat_action"},{turnId:d.turnId,workspaceDiffBaseline:d.workspaceDiffBaseline});return x(d.callId,r,c)},"execute")}))}a(re,"candidateFileToolDefinitions");import{realpath as C}from"node:fs/promises";import p from"node:path";function ce(e){let n=[O()];if(!e.loadProfileState)return n;let t=a(async(r,i)=>{if(i&&(i.turnMetadata?.source==="experiment-improvement"||i.turnMetadata?.refinementCandidate!==void 0||i.session.metadata?.source==="experiment-improvement"||i.session.metadata?.refinementCandidate!==void 0)){if(!e.resolveCandidateProfile)throw new Error("Candidate authoring requires an admitted isolated Profile resolver.");let s=await e.resolveCandidateProfile(i);return S(s),s}return e.loadProfileState(r,i)},"loadProfileState"),o=a(async r=>{if(r.context.turnMetadata?.source==="experiment-improvement"||r.context.turnMetadata?.refinementCandidate!==void 0||r.context.session.metadata?.source==="experiment-improvement"||r.context.session.metadata?.refinementCandidate!==void 0){if(!e.executeCandidateAgentCommand)throw new Error("Candidate Agent commands require filesystem-confined execution.");return e.executeCandidateAgentCommand(r)}return I({...r,throwOnFailure:!1})},"runCommand");return n.push(E(t),u(t,o,"agent_inspect","inspect"),u(t,o,"agent_build","build"),u(t,o,"agent_validate","validate"),u(t,o,"agent_eval","eval"),D(t,o),u(t,o,"agent_traces","traces"),L(t,o)),n}a(ce,"createAuthoringModelToolDefinitions");function O(){return{name:"ask_user",description:"Ask one blocking user question when the answer materially changes the requested work and cannot be inferred safely. This call ends the current model turn after persisting the question; do not batch it with mutations.",parameters:{type:"object",additionalProperties:!1,properties:{question:{type:"string",minLength:1,maxLength:2e3},reason:{type:"string",minLength:1,maxLength:1e3},options:{type:"array",minItems:2,maxItems:5,items:{type:"object",additionalProperties:!1,properties:{id:{type:"string",minLength:1,maxLength:80},label:{type:"string",minLength:1,maxLength:160},description:{type:"string",minLength:1,maxLength:500}},required:["id","label"]}},allowFreeform:{type:"boolean"}},required:["question"]},execute:a(async e=>{let n=m(e.args,"question"),t=R(e.args,"reason"),o=q(e.args,"options").map(i=>g(i)).filter(i=>!!i).map(i=>({id:m(i,"id"),label:m(i,"label"),description:R(i,"description")})),r={questionId:`question_${e.turnId}_${e.callId}`,question:n,reason:t,options:o,allowFreeform:e.args.allowFreeform!==!1,status:"awaiting_user_input",nextStep:"end_turn"};return{...l(e.callId,"ask_user",!0,n,r),turnControl:"await_user_input"}},"execute")}}a(O,"askUserDefinition");function E(e){return{name:"get_profile",description:"Return the exact OpenPond Profile selected for this chat turn, including bounded local path, Skill, Agent, action, and Git context. Call before Profile authoring. This tool does not change the selected Profile or grant filesystem permission.",parameters:{type:"object",additionalProperties:!1,properties:{}},execute:a(async n=>{let t=h(n),o=await e(t,n),r=N(o,n.turnMetadata,t);return l(n.callId,"get_profile",!o.error,o.error??"Resolved selected Profile.",r)},"execute")}}a(E,"getProfileDefinition");function u(e,n,t,o){return{name:t,description:j(t),parameters:M(),execute:a(async r=>{let i=await f(e,r),s=await v(n,r,o,i.cwd);return l(r.callId,t,s.code===0&&!s.timedOut,s.code===0&&!s.timedOut?`${t} passed for ${i.agentId}.`:`${t} failed for ${i.agentId}.`,{agentId:i.agentId,cwd:i.cwd,command:o,...P(s)})},"execute")}}a(u,"agentCommandDefinition");function D(e,n){return{name:"agent_run",description:"Run one declared action on an exact enabled Profile Agent with typed JSON input. Use for behavioral proof, not as the default validation gate.",parameters:{type:"object",additionalProperties:!1,properties:{agentId:{type:"string",minLength:1},action:{type:"string",minLength:1},input:{type:"object",additionalProperties:!0}},required:["agentId","action"]},execute:a(async t=>{let o=await f(e,t),r=m(t.args,"action"),i=g(t.args,"input")??{},s=await n({context:t,command:"run",args:[r,"--json","--input",JSON.stringify(i),"--cwd",o.cwd],cwd:o.cwd,timeoutMs:12e4,maxOutputBytes:25e4});return l(t.callId,"agent_run",s.code===0&&!s.timedOut,s.code===0&&!s.timedOut?`Action ${r} passed for ${o.agentId}.`:`Action ${r} failed for ${o.agentId}.`,{agentId:o.agentId,cwd:o.cwd,action:r,input:i,...P(s)})},"execute")}}a(D,"agentRunDefinition");function L(e,n){return{name:"agent_check",description:"Run the mandatory Agent authoring gate\u2014inspect, build, validate, and eval\u2014in order for one exact Profile Agent. Stops on the first failure and returns bounded per-step receipts.",parameters:M(),execute:a(async t=>{let o=await f(e,t),r=[];for(let s of["inspect","build","validate","eval"]){let d=await v(n,t,s,o.cwd),c=P(d);if(r.push({command:s,receipt:c}),d.code!==0||d.timedOut)return l(t.callId,"agent_check",!1,`agent_check stopped at ${s} for ${o.agentId}.`,{agentId:o.agentId,cwd:o.cwd,passed:!1,failedStep:s,steps:r})}let i=await e(h(t),t);return l(t.callId,"agent_check",!0,`agent_check passed for ${o.agentId}.`,{agentId:o.agentId,cwd:o.cwd,passed:!0,failedStep:null,steps:r,profileRefresh:{activeProfile:i.activeProfile,agentIds:i.agents.map(s=>s.id).slice(0,200),actionIds:i.actionCatalog.map(s=>s.id).slice(0,500)}})},"execute")}}a(L,"agentCheckDefinition");async function f(e,n){let t=m(n.args,"agentId"),o=await e(h(n),n);S(o);let r=g(n.turnMetadata,"authoringIntent");if(r?.artifact==="agent"&&r.operation==="improve"&&typeof r.targetAgentId=="string"&&r.targetAgentId!==t)throw new Error(`Agent improve is bound to ${r.targetAgentId}; ${t} is not authorized.`);if(!o.agents.find(k=>k.id===t)?.enabled)throw new Error(`Enabled Profile Agent not found: ${t}`);let s=t==="default"?o.sourcePath:p.resolve(o.sourcePath,"agents",t),d=await C(o.sourcePath),c=await C(s).catch(()=>null);if(!c)throw new Error(`Profile Agent source does not exist: ${t}`);if(!F(d,c))throw new Error(`Profile Agent source escapes the selected Profile: ${t}`);return{profile:o,agentId:t,cwd:c}}a(f,"resolveAgentTarget");async function v(e,n,t,o){return e({context:n,command:t,args:t==="inspect"||t==="validate"||t==="eval"||t==="traces"?["--json"]:[],cwd:o,timeoutMs:t==="eval"?18e4:12e4,maxOutputBytes:25e4})}a(v,"executeAgentCommand");function S(e){if(e.error)throw new Error(e.error);if(e.mode!=="local"||!e.repoPath||!e.sourcePath)throw new Error("The selected OpenPond Profile is not locally editable.")}a(S,"assertEditableProfile");function N(e,n,t){let o=e.git?.files.slice(0,200).map(r=>r.path)??[];return{mode:e.mode,editable:e.mode==="local"&&!!(e.repoPath&&e.sourcePath)&&!e.error,blockedReason:e.error??(e.mode==="local"&&e.repoPath&&e.sourcePath?null:"The selected Profile is not locally editable."),ref:t,activeProfile:e.activeProfile,repoPath:e.repoPath,sourcePath:e.sourcePath,manifestPath:e.manifestPath,profileConfigPath:e.sourcePath?p.join(e.sourcePath,"settings","profile.yaml"):null,authoring:g(n,"authoringIntent"),skills:e.skills.slice(0,200).map(r=>({name:r.name,description:r.description,path:r.path,sourcePath:r.sourcePath,enabled:r.enabled,validationStatus:r.validationStatus})),agents:e.agents.slice(0,200).map(r=>{let i=e.actionCatalog.filter(s=>s.agentId===r.id).slice(0,100);return{id:r.id,name:r.name,path:r.path,sourcePath:e.sourcePath?r.id==="default"?e.sourcePath:p.resolve(e.sourcePath,"agents",r.id):r.path,enabled:r.enabled,defaultAction:i.find(s=>s.sourceActionId==="chat"||s.id===`${r.id}.chat`)?.id??i[0]?.id??null,actionNames:i.map(s=>s.id)}}),git:e.git?{branch:e.git.branch,head:e.git.head,dirty:e.git.dirty,changedPaths:o,truncated:e.git.files.length>o.length}:null}}a(N,"profileProjection");function h(e){let n=g(e.turnMetadata,"selectedProfileRef");return n&&(n.source==="local"||n.source==="github"||n.source==="openpond_git")&&typeof n.repositoryId=="string"&&n.repositoryId.trim()&&typeof n.profileId=="string"&&n.profileId.trim()?{source:n.source,repositoryId:n.repositoryId,profileId:n.profileId}:e.session.currentProfile??null}a(h,"selectedProfileRef");function M(){return{type:"object",additionalProperties:!1,properties:{agentId:{type:"string",minLength:1,description:"Exact enabled Agent ID from get_profile."}},required:["agentId"]}}a(M,"agentTargetParameters");function j(e){return`Run OpenPond Agent SDK ${e.replace(/^agent_/,"")} for one exact enabled Agent beneath the selected Profile and return a bounded structured receipt.`}a(j,"agentToolDescription");function P(e){return{code:e.code,timedOut:e.timedOut,stdout:$(e.stdout),stderr:e.stderr,stdoutTruncated:e.stdoutTruncated,stderrTruncated:e.stderrTruncated}}a(P,"commandReceipt");function $(e){let n=e.trim();if(!n)return"";try{return JSON.parse(n)}catch{return n}}a($,"parseJsonOrText");function l(e,n,t,o,r){return{toolCallId:e,name:n,ok:t,contentText:JSON.stringify({ok:t,action:n,output:o,data:r},null,2),data:r}}a(l,"modelResult");function m(e,n){let t=e[n];if(typeof t!="string"||!t.trim())throw new Error(`${n} is required`);return t.trim()}a(m,"stringArg");function R(e,n){let t=e[n];return typeof t=="string"&&t.trim()?t.trim():null}a(R,"optionalStringArg");function q(e,n){let t=e[n];return Array.isArray(t)?t:[]}a(q,"arrayArg");function g(e,n){let t=n&&e&&typeof e=="object"&&!Array.isArray(e)?e[n]:e;return t&&typeof t=="object"&&!Array.isArray(t)?t:null}a(g,"recordArg");function F(e,n){let t=p.relative(e,n);return t===""||!t.startsWith("..")&&!p.isAbsolute(t)}a(F,"isWithin");import{execFile as B}from"node:child_process";import y from"node:path";var b=12,_=8,w=" .:-=+*#%@";function he(e={}){return{name:"view_image",description:"Inspect a real local PNG, JPEG, GIF, WebP, or AVIF file. Reads the image bytes directly and returns dimensions plus a coarse pixel/color map; it also creates an actual image preview in the chat UI. Use this instead of opening file:// URLs or browser snapshots, which cannot inspect local image pixels. For many video frames, build one contact sheet and inspect that rather than reading frames one by one.",parameters:{type:"object",additionalProperties:!1,properties:{path:{type:"string",minLength:1,description:"Absolute image path, or a path relative to the selected local project."}},required:["path"]},enabled:a(n=>n.provider==="codex"||n.session.provider==="codex"||n.session.openPondCommandAccessMode==="disabled"?!1:A({session:n.session}).target!=="sandbox","enabled"),execute:a(async n=>{if(n.turnMetadata?.source==="experiment-improvement"||n.turnMetadata?.refinementCandidate!==void 0||n.session.metadata?.source==="experiment-improvement"||n.session.metadata?.refinementCandidate!==void 0){if(!e.executeCandidateImage)throw new Error("Candidate image inspection requires its confined filesystem executor.");return e.executeCandidateImage(n)}let t=K(n.args.path,"path"),o=y.isAbsolute(t)?y.resolve(t):n.session.cwd?y.resolve(n.session.cwd,t):"";if(!o)throw new Error("A relative image path requires a selected local project.");let r=await T(o);if(!r)throw new Error(`Local image was not found or is not a supported image: ${o}`);let i=await U(r.path,n.signal);return{toolCallId:n.callId,name:"view_image",ok:!0,contentText:JSON.stringify({ok:!0,action:"view_image",output:`Read actual image pixels from ${r.path}.`,data:{path:r.path,contentType:r.contentType,sizeBytes:r.sizeBytes,...i,note:"The luminance and color maps are deterministic pixel samples, not a semantic vision caption."}},null,2),data:{openpondImagePreviewPath:r.path,path:r.path,contentType:r.contentType,sizeBytes:r.sizeBytes,...i}}},"execute")}}a(he,"createLocalImageModelToolDefinition");async function U(e,n,t=z){let o=await t("identify",["-format","%m %w %h",e],n),r=/^(\S+)\s+(\d+)\s+(\d+)/.exec(o.trim());if(!r)throw new Error("Image metadata could not be decoded.");let i=await t("convert",[e,"-resize",`${b}x${_}!`,"-depth","8","txt:-"],n),s=W(i);return{format:r[1],width:Number.parseInt(r[2],10),height:Number.parseInt(r[3],10),luminanceMap:s.map(d=>d.map(J).join("")),colorMap:s.map(d=>d.map(c=>`#${c.map(H).join("")}`))}}a(U,"inspectImagePixels");function W(e){let n=Array.from({length:_},()=>Array.from({length:b},()=>[0,0,0]));for(let t of e.split(/\r?\n/)){let o=/^(\d+),(\d+):\s*\(\s*(\d+),\s*(\d+),\s*(\d+)/.exec(t);if(!o)continue;let r=Number.parseInt(o[1],10),i=Number.parseInt(o[2],10);r>=b||i>=_||(n[i][r]=[Number.parseInt(o[3],10),Number.parseInt(o[4],10),Number.parseInt(o[5],10)])}return n}a(W,"sampledPixelRows");function J([e,n,t]){let o=.2126*e+.7152*n+.0722*t;return w[Math.min(w.length-1,Math.round(o/255*(w.length-1)))]}a(J,"luminanceCharacter");function H(e){return Math.max(0,Math.min(255,e)).toString(16).padStart(2,"0")}a(H,"hexByte");function z(e,n,t){return new Promise((o,r)=>{B(e,n,{encoding:"utf8",maxBuffer:256*1024,signal:t},(i,s)=>{if(i){r(new Error(`${e} could not inspect the image: ${i.message}`));return}o(s)})})}a(z,"runImageCommand");function K(e,n){if(typeof e!="string"||!e.trim())throw new Error(`${n} is required.`);return e.trim()}a(K,"stringArg");export{ne as a,re as b,ce as c,he as d,U as e,G as f,X as g,Y as h,Q as i,V as j};
@@ -1,5 +1,5 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{e as ye}from"./chunk-AQUZCWM3.js";import{a as we}from"./chunk-IZ6DLEVY.js";import{a as Re,c as he}from"./chunk-XY7HFXLH.js";import{ja as ve}from"./chunk-HG2YFMVU.js";import{a as B}from"./chunk-BL3CZWWD.js";import{a as de,b as G,h as V,i as z,j as Y}from"./chunk-4V73I4OL.js";import{k as le}from"./chunk-LE75SVEL.js";import{m as ue,n as me,o as pe,p as fe,q as ge}from"./chunk-HVM2GUM3.js";import{n as E}from"./chunk-RCT3O3HQ.js";import{a as i}from"./chunk-FTQLQJQV.js";function q(e){let t=/^memory\/([a-z0-9][a-z0-9-]{0,119})$/.exec(e.replaceAll("\\","/"));if(!t)throw new Error(`Invalid Harness memory target: ${e}.`);return t[1]}i(q,"memoryKeyFromTarget");function Z(e,t){let r=e.metadata.expectedMemory;if(!r||typeof r!="object"||Array.isArray(r))throw new Error("Memory proposal is missing its expected revision snapshot.");let n=r;if(n.key!==q(t))throw new Error("Memory proposal expected revision targets a different key.");if(n.revision!==null&&(!Number.isInteger(n.revision)||Number(n.revision)<1))throw new Error("Memory proposal expected revision is invalid.");if(n.contentHash!==null&&typeof n.contentHash!="string")throw new Error("Memory proposal expected content hash is invalid.");if(n.status!==null&&n.status!=="active"&&n.status!=="deleted")throw new Error("Memory proposal expected status is invalid.");return{revision:n.revision,contentHash:n.contentHash,status:n.status}}i(Z,"expectedMemoryRevision");function ee(e){return{id:e.id,runRef:e.runRef,turnId:e.turnId,reason:e.reason,suggestedRoutes:e.suggestedRoutes,boundary:e.boundary}}i(ee,"boundedTriggerEvidence");function te(e){return{id:e.id,kind:e.kind,state:e.state,tool:e.tool?.name??null,deterministicClass:e.deterministicClass,summary:e.summary}}i(te,"boundedObservationEvidence");function re(e){let t=new Map;for(let r of e)for(let n of r.eventRefs){let o=Ne(r,n);t.set(`${o.kind}:${o.id}`,o)}return[...t.values()]}i(re,"proposalEvidence");function Ne(e,t){return{kind:e.kind==="recovery"?"recovery":e.kind==="validation"?"validation":e.kind==="user_turn"?"user_turn":"tool_event",id:t.id,contentHash:t.contentHash}}i(Ne,"observationEvidence");function j(e){let t=new Map;for(let r of e)for(let n of r.eventRefs)t.set(n.id,n);return[...t.values()]}i(j,"uniqueEventRefs");function U(e,t){return e.id===t.id&&e.revision===t.revision&&e.contentHash===t.contentHash}i(U,"sameOverlayRef");function D(e){return{id:e.id,revision:e.revision,contentHash:e.contentHash}}i(D,"overlayRef");function ne(e,t){return e.revision===t.workspace.revision&&e.sourceRevision===t.workspace.sourceRevision&&e.currentChannel.revision===t.workspace.channelRevision&&e.currentChannel.release?.id===t.baseHarnessRelease.id&&e.currentChannel.release.contentHash===t.baseHarnessRelease.contentHash}i(ne,"sameWorkspaceRevision");function R(e,t){return`${e}-${E(t).slice(0,24)}`}i(R,"stableId");import{execFile as Fe}from"node:child_process";import{promises as N}from"node:fs";import x from"node:path";import{promisify as We}from"node:util";var Ve=36e3,ke=10,He=20*1024*1024,X=40,ze=24e3,Be=3,je=3,be=6,Te=["turn.started","assistant.delta","tool.started","tool.completed","skill.loaded","workspace_action_result","diagnostic","turn.completed","turn.failed","turn.interrupted"],Ue=We(Fe);async function Ee(e,t,r,n,o){let[a,s,l,g,m]=await Promise.all([e.getSession(t.runRef),e.getTurn(t.turnId),e.runtimeEventsForTurn(t.turnId,{names:Te}),e.turnsForSession(t.runRef,1e3),e.listModelUsageRecords({turnId:t.turnId,limit:1e4})]),d=[...g].sort((c,h)=>c.startedAt.localeCompare(h.startedAt)),y=d.findIndex(c=>c.id===t.turnId),u=y>0?d[y-1]:null,p=d.slice(Math.max(0,y-Be),Math.max(0,y)),b=new Map(await Promise.all(p.map(async c=>[c.id,await e.runtimeEventsForTurn(c.id,{names:["assistant.delta"]})]))),k=new Map(r.flatMap(c=>c.eventRefs.map(h=>[h.id,h]))),H=l.filter(c=>k.has(c.id));if(!o?.allowMissingRuntimeEvents)for(let[c,h]of k){let I=H.find(Le=>Le.id===c);if(!I||E(I)!==h.contentHash)throw new Error(`Refiner runtime event ${c} is unavailable or hash-mismatched.`)}let f=rt({events:l,exactEvents:H,turnId:t.turnId,boundarySequence:t.boundary.eventSequence,limit:t.policy.maxEvidenceEvents}),O=J(l,t.turnId),_=r.map(c=>c.kind),C=Ye(l,t.turnId),S={modelRequestCount:m.length||C.modelRequestCount,promptTokens:m.reduce((c,h)=>c+(h.promptTokens??0),0)||C.promptTokens,completionTokens:m.reduce((c,h)=>c+(h.completionTokens??0),0)||C.completionTokens,totalTokens:m.reduce((c,h)=>c+(h.totalTokens??0),0)||C.totalTokens},M={modelRequestCount:S.modelRequestCount,failedModelRequestCount:m.filter(c=>c.status==="failed"||c.status==="interrupted").length,promptTokens:S.promptTokens,completionTokens:S.completionTokens,totalTokens:S.totalTokens,toolFailureCount:_.filter(c=>c==="tool_failure").length,retryCount:_.filter(c=>c==="retry").length,recoveryCount:_.filter(c=>c==="recovery").length},F=await Ze(a?.cwd),L=l.filter(c=>c.turnId===t.turnId&&ot(c)&&(c.sequence===void 0||c.sequence<=t.boundary.eventSequence)).sort($),P=Ke(L),W=p.map(c=>Xe(c,b.get(c.id)??[])),v=n?await Je({store:e,workspaceId:n,trigger:t,observations:r}):[];return{task:{prompt:s?.prompt?T(s.prompt,8e3):null,assistantOutput:O,assistantOutputLinkCount:Se(O),previousAssistantOutput:u?J(b.get(u.id)??[],u.id):null},artifactDiagnostics:F,executionProfile:M,eventExcerpts:f.map(c=>{let h=A(c.data),I=A(h.result);return{id:c.id,name:c.name,action:c.action??(typeof h.tool=="string"?h.tool:null),status:c.status??null,command:w(I.command,3e3),error:w(c.error,2e3),output:w(I.output,2e3)??w(c.output,2e3),exitCode:typeof I.exitCode=="number"?I.exitCode:null,timedOut:I.timedOut===!0,stderr:w(I.stderr,3e3),stdout:w(I.stdout,3e3)}}),reviewPacket:{currentTurn:{id:t.turnId,status:s?.status??null,error:s?.error?T(s.error,2e3):null,prompt:s?.prompt?T(s.prompt,8e3):null,assistantOutput:O,assistantOutputLinkCount:Se(O)},priorConversation:W,timeline:P,artifacts:Ce(l,t.turnId),artifactDiagnostics:F,executionProfile:M,priorIncidents:v,truncation:{timelineEventCount:L.length,includedTimelineEventCount:P.length,timelineTruncated:P.length<L.length}}}}i(Ee,"loadBoundedRefinerContext");function Xe(e,t){return{turnId:e.id,status:e.status,prompt:e.prompt?T(e.prompt,3e3):null,assistantOutput:J(t,e.id,3e3)}}i(Xe,"conversationTurn");function Ke(e){let t=e.map(_e);if(t.length<=X)return Ie(t);let r=t.filter(a=>a.status==="failed"||a.name==="turn.completed"||a.name==="turn.failed"||a.name==="turn.interrupted"||a.name==="skill.loaded"||a.name==="validation.completed"||a.name==="diagnostic"),n=new Set(r.map(xe)),o=t.filter(a=>!n.has(xe(a))).slice(-(X-Math.min(r.length,X)));return Ie([...r.slice(-X),...o].sort((a,s)=>Number(a.sequence??0)-Number(s.sequence??0)))}i(Ke,"boundedReviewTimeline");function Ie(e){let t=[],r=0;for(let n of e){let o=JSON.stringify(n).length;r+o>ze||(t.push(n),r+=o)}return t}i(Ie,"fitTimelineToCharacterBudget");function _e(e){let t=A(e.data),r=A(t.result);return{sequence:e.sequence??null,timestamp:e.timestamp,name:e.name,action:e.action??(typeof t.tool=="string"?t.tool:null),status:e.status??null,args:Ge(e.args,1500),command:w(r.command,2e3),error:w(e.error,2e3),output:w(r.output,2e3)??w(e.output,2e3),exitCode:typeof r.exitCode=="number"?r.exitCode:null,timedOut:r.timedOut===!0,stderr:w(r.stderr,2e3),stdout:w(r.stdout,2e3)}}i(_e,"reviewTimelineEntry");function xe(e){return`${e.sequence??"none"}:${e.name??"unknown"}:${e.action??"none"}`}i(xe,"timelineEntryKey");function Ce(e,t){let r=new Map;for(let n of e)if(n.turnId===t)for(let o of oe(n.data))r.set(`${o.id}:${o.revision}`,o);return[...r.values()].sort((n,o)=>n.title.localeCompare(o.title)||n.revision-o.revision).slice(0,30).map(n=>({id:n.id,title:n.title,revision:n.revision,contentType:n.contentType,sizeBytes:n.sizeBytes,sha256:n.sha256,locationKind:n.location.kind,validation:n.validation.map(o=>({kind:o.kind,status:o.status,label:o.label,detail:o.detail??null}))}))}i(Ce,"fileOutputInventory");function oe(e,t=0){if(t>8)return[];let r=ve.safeParse(e);return r.success?[r.data]:Array.isArray(e)?e.flatMap(n=>oe(n,t+1)):!e||typeof e!="object"?[]:Object.values(e).flatMap(n=>oe(n,t+1))}i(oe,"findFileOutputRefs");async function Je(e){let t=new Set(e.observations.flatMap(s=>s.deterministicClass?[s.deterministicClass]:[])),r=new Set(e.observations.flatMap(s=>s.tool?[s.tool.name]:[]));if(t.size===0&&r.size===0)return[];let n=(await e.store.listHarnessImprovementArtifacts(e.workspaceId,"observation",200)).filter(s=>s.runRef!==e.trigger.runRef&&s.turnId!==e.trigger.turnId&&(s.deterministicClass!==null&&t.has(s.deterministicClass)||s.tool!==null&&r.has(s.tool.name))).sort((s,l)=>l.createdAt.localeCompare(s.createdAt)),o=new Map;for(let s of n){let l=`${s.runRef}:${s.turnId}`,g=o.get(l)??[];g.push(s),o.set(l,g)}let a=[];for(let s of o.values()){if(a.length>=je)break;let l=s[0],[g,m]=await Promise.all([e.store.getTurn(l.turnId),e.store.runtimeEventsForTurn(l.turnId,{names:Te})]);if(!g)continue;let d=[...new Set(s.flatMap(p=>p.deterministicClass&&t.has(p.deterministicClass)?[p.deterministicClass]:[]))],y=[...new Set(s.flatMap(p=>p.tool&&r.has(p.tool.name)?[p.tool.name]:[]))],u=Qe(m.filter(p=>p.turnId===g.id));a.push({runRef:l.runRef,turnId:l.turnId,createdAt:l.createdAt,matchedBy:{deterministicClasses:d,tools:y},observations:s.slice(0,4).map(p=>({kind:p.kind,state:p.state,deterministicClass:p.deterministicClass,summary:p.summary})),prompt:g.prompt?T(g.prompt,1200):null,assistantOutput:J(m,g.id,1200),timeline:u,artifacts:Ce(m,g.id).slice(0,5)})}return a}i(Je,"loadRelevantPriorIncidentPackets");function Qe(e){let t=new Set(["turn.completed","turn.failed","turn.interrupted"]),r=e.filter(a=>{if(t.has(a.name))return!0;let s=JSON.stringify({error:a.error,output:a.output,data:a.data});return a.status==="failed"||/"ok"\s*:\s*false|failed|denied|unavailable|timed?\s*out|exception|traceback/i.test(s)}).sort($).map(a=>{let s=_e(a);return{sequence:s.sequence,name:s.name,action:s.action,status:s.status,error:w(s.error,800),output:w(s.output,800),exitCode:s.exitCode,timedOut:s.timedOut}}),n=new Map;for(let a of r){let s=JSON.stringify({name:a.name,action:a.action,status:a.status,error:a.error,output:a.output,exitCode:a.exitCode,timedOut:a.timedOut}),l=n.get(s);if(l){l.occurrenceCount+=1;continue}n.set(s,{...a,occurrenceCount:1})}let o=[...n.values()];return o.length<=be?o:[...o.slice(0,be-2),...o.slice(-2)]}i(Qe,"priorIncidentTimeline");function Ge(e,t){if(e===void 0)return null;try{let r=T(JSON.stringify(e),t);return JSON.parse(r.endsWith(`
2
+ import{e as ye}from"./chunk-D2V2Y3FB.js";import{a as we}from"./chunk-IZ6DLEVY.js";import{a as Re,c as he}from"./chunk-SVLVIYH2.js";import{ja as ve}from"./chunk-WXG3G2O6.js";import{a as B}from"./chunk-BL3CZWWD.js";import{a as de,b as G,h as V,i as z,j as Y}from"./chunk-4V73I4OL.js";import{k as le}from"./chunk-LE75SVEL.js";import{m as ue,n as me,o as pe,p as fe,q as ge}from"./chunk-HVM2GUM3.js";import{n as E}from"./chunk-RCT3O3HQ.js";import{a as i}from"./chunk-FTQLQJQV.js";function q(e){let t=/^memory\/([a-z0-9][a-z0-9-]{0,119})$/.exec(e.replaceAll("\\","/"));if(!t)throw new Error(`Invalid Harness memory target: ${e}.`);return t[1]}i(q,"memoryKeyFromTarget");function Z(e,t){let r=e.metadata.expectedMemory;if(!r||typeof r!="object"||Array.isArray(r))throw new Error("Memory proposal is missing its expected revision snapshot.");let n=r;if(n.key!==q(t))throw new Error("Memory proposal expected revision targets a different key.");if(n.revision!==null&&(!Number.isInteger(n.revision)||Number(n.revision)<1))throw new Error("Memory proposal expected revision is invalid.");if(n.contentHash!==null&&typeof n.contentHash!="string")throw new Error("Memory proposal expected content hash is invalid.");if(n.status!==null&&n.status!=="active"&&n.status!=="deleted")throw new Error("Memory proposal expected status is invalid.");return{revision:n.revision,contentHash:n.contentHash,status:n.status}}i(Z,"expectedMemoryRevision");function ee(e){return{id:e.id,runRef:e.runRef,turnId:e.turnId,reason:e.reason,suggestedRoutes:e.suggestedRoutes,boundary:e.boundary}}i(ee,"boundedTriggerEvidence");function te(e){return{id:e.id,kind:e.kind,state:e.state,tool:e.tool?.name??null,deterministicClass:e.deterministicClass,summary:e.summary}}i(te,"boundedObservationEvidence");function re(e){let t=new Map;for(let r of e)for(let n of r.eventRefs){let o=Ne(r,n);t.set(`${o.kind}:${o.id}`,o)}return[...t.values()]}i(re,"proposalEvidence");function Ne(e,t){return{kind:e.kind==="recovery"?"recovery":e.kind==="validation"?"validation":e.kind==="user_turn"?"user_turn":"tool_event",id:t.id,contentHash:t.contentHash}}i(Ne,"observationEvidence");function j(e){let t=new Map;for(let r of e)for(let n of r.eventRefs)t.set(n.id,n);return[...t.values()]}i(j,"uniqueEventRefs");function U(e,t){return e.id===t.id&&e.revision===t.revision&&e.contentHash===t.contentHash}i(U,"sameOverlayRef");function D(e){return{id:e.id,revision:e.revision,contentHash:e.contentHash}}i(D,"overlayRef");function ne(e,t){return e.revision===t.workspace.revision&&e.sourceRevision===t.workspace.sourceRevision&&e.currentChannel.revision===t.workspace.channelRevision&&e.currentChannel.release?.id===t.baseHarnessRelease.id&&e.currentChannel.release.contentHash===t.baseHarnessRelease.contentHash}i(ne,"sameWorkspaceRevision");function R(e,t){return`${e}-${E(t).slice(0,24)}`}i(R,"stableId");import{execFile as Fe}from"node:child_process";import{promises as N}from"node:fs";import x from"node:path";import{promisify as We}from"node:util";var Ve=36e3,ke=10,He=20*1024*1024,X=40,ze=24e3,Be=3,je=3,be=6,Te=["turn.started","assistant.delta","tool.started","tool.completed","skill.loaded","workspace_action_result","diagnostic","turn.completed","turn.failed","turn.interrupted"],Ue=We(Fe);async function Ee(e,t,r,n,o){let[a,s,l,g,m]=await Promise.all([e.getSession(t.runRef),e.getTurn(t.turnId),e.runtimeEventsForTurn(t.turnId,{names:Te}),e.turnsForSession(t.runRef,1e3),e.listModelUsageRecords({turnId:t.turnId,limit:1e4})]),d=[...g].sort((c,h)=>c.startedAt.localeCompare(h.startedAt)),y=d.findIndex(c=>c.id===t.turnId),u=y>0?d[y-1]:null,p=d.slice(Math.max(0,y-Be),Math.max(0,y)),b=new Map(await Promise.all(p.map(async c=>[c.id,await e.runtimeEventsForTurn(c.id,{names:["assistant.delta"]})]))),k=new Map(r.flatMap(c=>c.eventRefs.map(h=>[h.id,h]))),H=l.filter(c=>k.has(c.id));if(!o?.allowMissingRuntimeEvents)for(let[c,h]of k){let I=H.find(Le=>Le.id===c);if(!I||E(I)!==h.contentHash)throw new Error(`Refiner runtime event ${c} is unavailable or hash-mismatched.`)}let f=rt({events:l,exactEvents:H,turnId:t.turnId,boundarySequence:t.boundary.eventSequence,limit:t.policy.maxEvidenceEvents}),O=J(l,t.turnId),_=r.map(c=>c.kind),C=Ye(l,t.turnId),S={modelRequestCount:m.length||C.modelRequestCount,promptTokens:m.reduce((c,h)=>c+(h.promptTokens??0),0)||C.promptTokens,completionTokens:m.reduce((c,h)=>c+(h.completionTokens??0),0)||C.completionTokens,totalTokens:m.reduce((c,h)=>c+(h.totalTokens??0),0)||C.totalTokens},M={modelRequestCount:S.modelRequestCount,failedModelRequestCount:m.filter(c=>c.status==="failed"||c.status==="interrupted").length,promptTokens:S.promptTokens,completionTokens:S.completionTokens,totalTokens:S.totalTokens,toolFailureCount:_.filter(c=>c==="tool_failure").length,retryCount:_.filter(c=>c==="retry").length,recoveryCount:_.filter(c=>c==="recovery").length},F=await Ze(a?.cwd),L=l.filter(c=>c.turnId===t.turnId&&ot(c)&&(c.sequence===void 0||c.sequence<=t.boundary.eventSequence)).sort($),P=Ke(L),W=p.map(c=>Xe(c,b.get(c.id)??[])),v=n?await Je({store:e,workspaceId:n,trigger:t,observations:r}):[];return{task:{prompt:s?.prompt?T(s.prompt,8e3):null,assistantOutput:O,assistantOutputLinkCount:Se(O),previousAssistantOutput:u?J(b.get(u.id)??[],u.id):null},artifactDiagnostics:F,executionProfile:M,eventExcerpts:f.map(c=>{let h=A(c.data),I=A(h.result);return{id:c.id,name:c.name,action:c.action??(typeof h.tool=="string"?h.tool:null),status:c.status??null,command:w(I.command,3e3),error:w(c.error,2e3),output:w(I.output,2e3)??w(c.output,2e3),exitCode:typeof I.exitCode=="number"?I.exitCode:null,timedOut:I.timedOut===!0,stderr:w(I.stderr,3e3),stdout:w(I.stdout,3e3)}}),reviewPacket:{currentTurn:{id:t.turnId,status:s?.status??null,error:s?.error?T(s.error,2e3):null,prompt:s?.prompt?T(s.prompt,8e3):null,assistantOutput:O,assistantOutputLinkCount:Se(O)},priorConversation:W,timeline:P,artifacts:Ce(l,t.turnId),artifactDiagnostics:F,executionProfile:M,priorIncidents:v,truncation:{timelineEventCount:L.length,includedTimelineEventCount:P.length,timelineTruncated:P.length<L.length}}}}i(Ee,"loadBoundedRefinerContext");function Xe(e,t){return{turnId:e.id,status:e.status,prompt:e.prompt?T(e.prompt,3e3):null,assistantOutput:J(t,e.id,3e3)}}i(Xe,"conversationTurn");function Ke(e){let t=e.map(_e);if(t.length<=X)return Ie(t);let r=t.filter(a=>a.status==="failed"||a.name==="turn.completed"||a.name==="turn.failed"||a.name==="turn.interrupted"||a.name==="skill.loaded"||a.name==="validation.completed"||a.name==="diagnostic"),n=new Set(r.map(xe)),o=t.filter(a=>!n.has(xe(a))).slice(-(X-Math.min(r.length,X)));return Ie([...r.slice(-X),...o].sort((a,s)=>Number(a.sequence??0)-Number(s.sequence??0)))}i(Ke,"boundedReviewTimeline");function Ie(e){let t=[],r=0;for(let n of e){let o=JSON.stringify(n).length;r+o>ze||(t.push(n),r+=o)}return t}i(Ie,"fitTimelineToCharacterBudget");function _e(e){let t=A(e.data),r=A(t.result);return{sequence:e.sequence??null,timestamp:e.timestamp,name:e.name,action:e.action??(typeof t.tool=="string"?t.tool:null),status:e.status??null,args:Ge(e.args,1500),command:w(r.command,2e3),error:w(e.error,2e3),output:w(r.output,2e3)??w(e.output,2e3),exitCode:typeof r.exitCode=="number"?r.exitCode:null,timedOut:r.timedOut===!0,stderr:w(r.stderr,2e3),stdout:w(r.stdout,2e3)}}i(_e,"reviewTimelineEntry");function xe(e){return`${e.sequence??"none"}:${e.name??"unknown"}:${e.action??"none"}`}i(xe,"timelineEntryKey");function Ce(e,t){let r=new Map;for(let n of e)if(n.turnId===t)for(let o of oe(n.data))r.set(`${o.id}:${o.revision}`,o);return[...r.values()].sort((n,o)=>n.title.localeCompare(o.title)||n.revision-o.revision).slice(0,30).map(n=>({id:n.id,title:n.title,revision:n.revision,contentType:n.contentType,sizeBytes:n.sizeBytes,sha256:n.sha256,locationKind:n.location.kind,validation:n.validation.map(o=>({kind:o.kind,status:o.status,label:o.label,detail:o.detail??null}))}))}i(Ce,"fileOutputInventory");function oe(e,t=0){if(t>8)return[];let r=ve.safeParse(e);return r.success?[r.data]:Array.isArray(e)?e.flatMap(n=>oe(n,t+1)):!e||typeof e!="object"?[]:Object.values(e).flatMap(n=>oe(n,t+1))}i(oe,"findFileOutputRefs");async function Je(e){let t=new Set(e.observations.flatMap(s=>s.deterministicClass?[s.deterministicClass]:[])),r=new Set(e.observations.flatMap(s=>s.tool?[s.tool.name]:[]));if(t.size===0&&r.size===0)return[];let n=(await e.store.listHarnessImprovementArtifacts(e.workspaceId,"observation",200)).filter(s=>s.runRef!==e.trigger.runRef&&s.turnId!==e.trigger.turnId&&(s.deterministicClass!==null&&t.has(s.deterministicClass)||s.tool!==null&&r.has(s.tool.name))).sort((s,l)=>l.createdAt.localeCompare(s.createdAt)),o=new Map;for(let s of n){let l=`${s.runRef}:${s.turnId}`,g=o.get(l)??[];g.push(s),o.set(l,g)}let a=[];for(let s of o.values()){if(a.length>=je)break;let l=s[0],[g,m]=await Promise.all([e.store.getTurn(l.turnId),e.store.runtimeEventsForTurn(l.turnId,{names:Te})]);if(!g)continue;let d=[...new Set(s.flatMap(p=>p.deterministicClass&&t.has(p.deterministicClass)?[p.deterministicClass]:[]))],y=[...new Set(s.flatMap(p=>p.tool&&r.has(p.tool.name)?[p.tool.name]:[]))],u=Qe(m.filter(p=>p.turnId===g.id));a.push({runRef:l.runRef,turnId:l.turnId,createdAt:l.createdAt,matchedBy:{deterministicClasses:d,tools:y},observations:s.slice(0,4).map(p=>({kind:p.kind,state:p.state,deterministicClass:p.deterministicClass,summary:p.summary})),prompt:g.prompt?T(g.prompt,1200):null,assistantOutput:J(m,g.id,1200),timeline:u,artifacts:Ce(m,g.id).slice(0,5)})}return a}i(Je,"loadRelevantPriorIncidentPackets");function Qe(e){let t=new Set(["turn.completed","turn.failed","turn.interrupted"]),r=e.filter(a=>{if(t.has(a.name))return!0;let s=JSON.stringify({error:a.error,output:a.output,data:a.data});return a.status==="failed"||/"ok"\s*:\s*false|failed|denied|unavailable|timed?\s*out|exception|traceback/i.test(s)}).sort($).map(a=>{let s=_e(a);return{sequence:s.sequence,name:s.name,action:s.action,status:s.status,error:w(s.error,800),output:w(s.output,800),exitCode:s.exitCode,timedOut:s.timedOut}}),n=new Map;for(let a of r){let s=JSON.stringify({name:a.name,action:a.action,status:a.status,error:a.error,output:a.output,exitCode:a.exitCode,timedOut:a.timedOut}),l=n.get(s);if(l){l.occurrenceCount+=1;continue}n.set(s,{...a,occurrenceCount:1})}let o=[...n.values()];return o.length<=be?o:[...o.slice(0,be-2),...o.slice(-2)]}i(Qe,"priorIncidentTimeline");function Ge(e,t){if(e===void 0)return null;try{let r=T(JSON.stringify(e),t);return JSON.parse(r.endsWith(`
3
3
  [truncated]`)?JSON.stringify(r):r)}catch{return T(String(e),t)}}i(Ge,"boundedUnknown");function Ye(e,t){let r={modelRequestCount:0,promptTokens:0,completionTokens:0,totalTokens:0},n=[...e].reverse().find(o=>o.turnId===t&&o.name==="diagnostic"&&o.action==="taskset_grade"&&typeof o.output=="string");if(!n?.output)return r;try{let o=A(JSON.parse(n.output)),a=A(o.attempt),s=A(a.usage);return{modelRequestCount:K(a.modelRequestCount),promptTokens:K(s.promptTokens),completionTokens:K(s.completionTokens),totalTokens:K(s.totalTokens)}}catch{return r}}i(Ye,"tasksetGradeExecutionProfile");function K(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0?Math.trunc(e):0}i(K,"nonnegativeInteger");async function Ze(e){if(!e)return[];let t=[];for(let r of[e,x.join(e,"outputs")]){let n=await N.readdir(r,{withFileTypes:!0}).catch(()=>[]);for(let o of n)if(!(!o.isFile()||!o.name.toLowerCase().endsWith(".pdf"))&&(t.push({filename:x.join(r,o.name),displayPath:x.relative(e,x.join(r,o.name)).replaceAll(x.sep,"/")}),t.length>=ke))break;if(t.length>=ke)break}return Promise.all(t.map(async({filename:r,displayPath:n})=>{try{if((await N.stat(r)).size>He)return{path:n,mediaType:"application/pdf",check:"pdf_text_bounds",status:"unavailable",reason:`artifact exceeds ${He} byte inspection bound`};let{stdout:a}=await Ue("pdftotext",["-bbox",r,"-"],{env:{...process.env,PATH:we()},maxBuffer:8*1024*1024,timeout:15e3});return et(n,a)}catch(o){return{path:n,mediaType:"application/pdf",check:"pdf_text_bounds",status:"unavailable",reason:o instanceof Error?o.message.slice(0,500):String(o).slice(0,500)}}}))}i(Ze,"inspectBoundedPdfArtifactDiagnostics");function et(e,t){let r=[],n=0;for(let o of t.matchAll(/<page\s+width="([^"]+)"\s+height="([^"]+)"[^>]*>([\s\S]*?)<\/page>/g)){n+=1;let a=Number(o[1]),s=Number(o[2]);for(let l of o[3].matchAll(/<word\s+xMin="([^"]+)"\s+yMin="([^"]+)"\s+xMax="([^"]+)"\s+yMax="([^"]+)"[^>]*>([\s\S]*?)<\/word>/g)){let[g,m,d,y]=l.slice(1,5).map(Number);g>=0&&m>=0&&d<=a&&y<=s||r.push({page:n,text:tt(l[5]).slice(0,120),xMin:g,yMin:m,xMax:d,yMax:y,pageWidth:a,pageHeight:s})}}return{path:e,mediaType:"application/pdf",check:"pdf_text_bounds",status:r.length>0?"failed":"passed",pages:n,clippedTextCount:r.length,examples:r.slice(0,10)}}i(et,"pdfTextBoundsDiagnostic");function tt(e){return e.replace(/&amp;/g,"&").replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&quot;/g,'"').replace(/&#39;|&apos;/g,"'")}i(tt,"decodeXmlText");function Se(e){return e?e.match(/https?:\/\/[^\s<>)\]}"']+/gi)?.length??0:0}i(Se,"countAbsoluteLinks");function J(e,t,r=8e3){let n=e.filter(o=>o.turnId===t&&o.name==="assistant.delta"&&typeof o.output=="string").sort($).map(o=>o.output).join("");return n?T(n,r):null}i(J,"assistantOutputForTurn");async function Ae(e,t,r){let n=await e.listHarnessImprovementArtifacts(t,"observation",1e3),o=new Map(n.map(a=>{let s=de.parse(a);return[s.contentHash,s]}));return r.observations.map(a=>{let s=o.get(a.contentHash);if(!s||s.id!==a.id)throw new Error(`Refiner observation ${a.id} is unavailable or hash-mismatched.`);return s})}i(Ae,"loadExactObservations");async function se(e,t,r={}){let n=st(t),o=r.forceUnloaded!==!0,a=i((u,p)=>o&&(u==="instruction"||u==="skill"&&n.has(at(p))),"wasLoaded"),s=x.resolve(e,"source"),l=B.parse(JSON.parse(await N.readFile(x.join(s,"harness.json"),"utf8"))),g=Ve,m=[],d=l.files.filter(u=>["instruction","skill","agent"].includes(u.kind)&&u.visibility==="policy").map(u=>({path:u.path,kind:u.kind,loaded:a(u.kind,u.path)})),y=l.files.slice().sort((u,p)=>{let b=["instruction","skill","agent"].includes(u.kind)&&a(u.kind,u.path),k=["instruction","skill","agent"].includes(p.kind)&&a(p.kind,p.path);if(b!==k)return b?-1:1;let H=i(f=>f==="instruction"?0:f==="skill"?1:2,"rank");return H(u.kind)-H(p.kind)||u.path.localeCompare(p.path)});for(let u of y){if(!["instruction","skill","agent"].includes(u.kind)||u.visibility!=="policy"||!["text/markdown","text/plain","text/javascript"].includes(u.mediaType))continue;let p=it(s,u.path),b=await N.lstat(p);if(!b.isFile()||b.isSymbolicLink())continue;let k=await N.readFile(p);k.byteLength>g||(m.push({path:u.path,kind:u.kind,content:k.toString("utf8"),loaded:a(u.kind,u.path)}),g-=k.byteLength)}return{manifest:l,files:m,catalog:d}}i(se,"readBoundedRefinerSource");function rt(e){let t=[...e.exactEvents].sort($),r=e.events.filter(l=>l.turnId===e.turnId&&nt(l)&&(l.sequence===void 0||l.sequence<=e.boundarySequence)).sort($);if(r.length<=e.limit)return r;let n=new Set(t.map(l=>l.id)),o=t.slice(0,e.limit),a=e.limit-o.length;if(a<=0)return o;let s=r.filter(l=>!n.has(l.id)).slice(-a);return[...o,...s].sort($)}i(rt,"selectRefinerEvidenceWindow");function nt(e){return["tool.completed","workspace_action_result","skill.loaded","validation.completed","diagnostic"].includes(e.name)}i(nt,"isRefinerEvidenceEvent");function ot(e){return["turn.completed","turn.failed","turn.interrupted","tool.completed","workspace_action_result","skill.loaded","validation.completed","diagnostic"].includes(e.name)}i(ot,"isRefinerReviewTimelineEvent");function $(e,t){return(e.sequence??Number.MAX_SAFE_INTEGER)-(t.sequence??Number.MAX_SAFE_INTEGER)}i($,"compareRuntimeEvents");function w(e,t){return typeof e=="string"?T(e,t):null}i(w,"textField");function T(e,t){let r=e.replace(/\bBearer\s+[A-Za-z0-9._~+/=-]+/gi,"Bearer [redacted]").replace(/\b(api[_-]?key|access[_-]?token|auth(?:orization)?|password|secret)(\s*[:=]\s*)([^\s,;]+)/gi,"$1$2[redacted]");return r.length<=t?r:`${r.slice(0,t)}
4
4
  [truncated]`}i(T,"redactAndBoundRefinerText");function st(e){let t=e.metadata.loadedSkillNames;return Array.isArray(t)?new Set(t.filter(r=>typeof r=="string"&&r.trim().length>0)):new Set}i(st,"loadedSkillNamesFromTrigger");function at(e){return/^skills\/([^/]+)\/SKILL\.md$/.exec(e.replaceAll("\\","/"))?.[1]??""}i(at,"skillNameFromPath");function it(e,t){let r=x.resolve(e,...t.replaceAll("\\","/").split("/")),n=x.relative(e,r);if(!n||n.startsWith("..")||x.isAbsolute(n))throw new Error(`Harness source path escapes its immutable bundle: ${t}`);return r}i(it,"containedSourcePath");function A(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:{}}i(A,"asRecord");async function Oe(e){let t=e.rebasedOntoCurrent?e.workspace.currentChannel.release:e.overlay.baseHarnessRelease;if(!t)throw new Error("Queued Refiner trigger references a Harness workspace without a current release.");let r=await e.store.getHarnessReleaseRecord(t.contentHash);if(!r||r.harnessRelease.id!==t.id||r.workspaceId!==e.workspace.id)throw new Error("Queued Refiner trigger references an unavailable effective Harness release.");let n=await se(r.bundlePath,e.trigger,{forceUnloaded:e.rebasedOntoCurrent}),o=e.rebasedOntoCurrent?await e.store.getHarnessReleaseRecord(e.overlay.baseHarnessRelease.contentHash):r;if(!o||o.harnessRelease.id!==e.overlay.baseHarnessRelease.id||o.workspaceId!==e.workspace.id)throw new Error("Queued Refiner trigger references an unavailable admitted Harness release.");return{admittedSource:e.rebasedOntoCurrent?await se(o.bundlePath,e.trigger):n,effectiveReleaseRef:t,release:r,source:n}}i(Oe,"loadRefinerReleaseContext");function Me(e,t){if(t.requestId!==e.requestId||t.evidenceHash!==e.evidenceHash||t.admittedRelease.id!==e.harness.admittedRelease.id||t.admittedRelease.contentHash!==e.harness.admittedRelease.contentHash||t.currentRelease.id!==e.harness.currentRelease.id||t.currentRelease.contentHash!==e.harness.currentRelease.contentHash)throw new Error("Managed Harness Refiner response binding does not match the request.")}i(Me,"assertHostedResponseBinding");function Q(e){return{id:e.id,contentHash:e.contentHash,coreHash:e.coreHash,profileHash:e.profileHash}}i(Q,"refinerReleaseMetadata");async function Pe(e,t,r){return(await e.listHarnessImprovementArtifacts(t,"refiner_outcome",1e3)).find(o=>o.trigger.id===r.id&&o.trigger.contentHash===r.contentHash)??null}i(Pe,"findRefinerOutcome");async function ae(e,t,r){return(await e.listHarnessImprovementArtifacts(t,"proposal",1e3)).find(o=>o.id===r)??null}i(ae,"findProposal");async function qe(e,t,r){let n=await ae(e,t,R("proposal",r.contentHash)),o=n?.metadata.trigger;return o?.id===r.id&&o.contentHash===r.contentHash?n:null}i(qe,"findProposalByTrigger");async function ie(e,t,r){return(await e.listHarnessImprovementArtifacts(t,"targeted_validation",1e3)).filter(o=>o.proposal.id===r.id&&o.proposal.contentHash===r.contentHash)}i(ie,"findProposalValidations");var De=new WeakMap;async function zt(e){let t=G.parse(e.trigger).contentHash,r=De.get(e.store);r||(r=new Map,De.set(e.store,r));let n=r.get(t);if(n)return n;let o=ct(e);r.set(t,o);try{return await o}finally{r.get(t)===o&&r.delete(t)}}i(zt,"runLocalHarnessRefinerWorker");async function ct(e){let t=G.parse(e.trigger);if(t.decision!=="queue_refiner")throw new Error("The model-backed Refiner only accepts queue_refiner decisions.");if(!t.overlay)throw new Error("A queued Local Harness Refiner decision requires a run overlay.");let r=await e.store.getHarnessRunOverlay(t.runRef);if(!r||!U(r,t.overlay))throw new Error("Queued Refiner trigger does not match the durable run overlay.");let n=await e.store.getHarnessWorkspace(r.workspace.workspaceId);if(!n||n.location!==e.store.harnessStoragePlacement)throw new Error("Harness Refiner workspace does not match the admitted storage placement.");let o=await Pe(e.store,n.id,t);if(o){let v=o.proposal?await ae(e.store,n.id,o.proposal.id):null;return{outcome:o,overlay:await e.store.getHarnessRunOverlay(t.runRef)??r,proposal:v,validations:v?await ie(e.store,n.id,v):[],workspace:await e.store.getHarnessWorkspace(n.id)??n,advanceReceipt:null,applyReceipt:null}}let a=await Ae(e.store,n.id,t),s=!ne(n,r);if(r.status!=="active"){let v=await qe(e.store,n.id,t);return v&&U(r,v.overlay)?$e({...e,trigger:t,workspace:n,overlay:r,proposal:v,observations:a}):ce({store:e.store,workspace:n,overlay:r,trigger:t,observations:a,reason:`The run overlay is ${r.status} and has no recoverable proposal for this trigger.`,now:e.now})}let{admittedSource:l,effectiveReleaseRef:g,release:m,source:d}=await Oe({store:e.store,workspace:n,overlay:r,trigger:t,rebasedOntoCurrent:s}),y=(await e.store.listHarnessMemories(n.id)).slice(0,100).map(v=>({path:`memory/${v.key}`,kind:"memory",content:v.content,loaded:!0}));d.catalog.push(...y.map(({path:v,kind:c,loaded:h})=>({path:v,kind:c,loaded:h}))),d.files.push(...y);let u=await Ee(e.store,t,a,n.id,{allowMissingRuntimeEvents:e.reviewScope==="cross_run_candidate"}),p={memory:!0,prompt:!0,skill:!0,agent:!1},b=[...a.map(v=>v.id),...u.reviewPacket.priorIncidents.flatMap(v=>typeof v.id=="string"&&v.id.trim()?[v.id.trim()]:[])],k={capabilities:p,trigger:ee(t),observations:a.map(te),admissibleEvidenceIds:b,reviewPacket:u.reviewPacket,runtimeActivation:{admittedRelease:r.baseHarnessRelease,currentRelease:g,rebasedOntoCurrent:s,admittedSourceFiles:l.files,admittedSourceCatalog:l.catalog},sourceFiles:d.files,sourceCatalog:d.catalog,additionalEvidence:e.additionalEvidence??null},H=await(e.loadActiveRefinerRelease?e.loadActiveRefinerRelease():ye(e.storeDir)),f;if(e.stream)f=await ue({evidence:k,stream:e.stream,signal:e.signal,timeoutMs:e.timeoutMs,reviewProfile:H.profile});else if(e.refine){let v=fe.parse({schemaVersion:"openpond.hostedHarnessRefinerRequest.v2",requestId:t.id,idempotencyKey:t.contentHash,evidenceHash:E(k),harness:{admittedRelease:r.baseHarnessRelease,currentRelease:g,overlay:D(r),workspace:{id:n.id,revision:n.revision,sourceRevision:n.sourceRevision,channelRevision:n.currentChannel.revision},capabilities:p},evidence:k}),c=ge.parse(await e.refine({request:v,signal:e.signal}));Me(v,c),f=c.decision}else throw new Error("Harness Refiner requires a public model stream or managed adapter.");if(f=pe({decision:f,evidence:k}),f=me(f,H.profile),f.decision==="no_action")return ce({store:e.store,workspace:n,overlay:r,trigger:t,observations:a,reason:f.reason,metadata:{refinerRelease:Q(H)},now:e.now});if(f.decision==="route")return dt({store:e.store,workspace:n,overlay:r,trigger:t,observations:a,decision:f,refinerRelease:Q(H),now:e.now});ut(f,d.catalog,d.files);let O=mt(f,d.files),_=f.route==="memory"?await e.store.getHarnessMemory(n.id,q(f.target)):null,C=(e.now??(()=>new Date().toISOString()))(),S=gt(f),M=ft({trigger:t,decision:f,materializedContent:O,manifest:d.manifest,effects:S}),F=R("proposal",t.contentHash),L=R("targeted-check",{trigger:t.contentHash,route:f.route,target:f.target}),P=re(a),W=await e.store.freezeHarnessRunOverlayWithProposalAtomically({runId:t.runRef,expectedRevision:r.revision,edits:M,updatedAt:C,buildProposal:i(v=>le({schemaVersion:"openpond.harnessImprovementProposal.v1",id:F,overlay:D(v),baseHarnessRelease:{id:m.harnessRelease.id,contentHash:m.harnessRelease.contentHash},expectedWorkspace:{workspaceId:n.id,revision:n.revision,sourceRevision:n.sourceRevision,channelRevision:n.currentChannel.revision},requestedScope:"personal",route:f.route,risk:f.operation==="delete"||S.some(c=>!["text_instruction","memory","dependency_selection"].includes(c))?"review":"low",effects:S,evidence:P,edits:M,validationPlan:vt({decision:f,evidence:P,validationId:L,effects:S}),expectedOutcome:f.expectedOutcome,createdAt:C,metadata:{refinerRelease:Q(H),trigger:{id:t.id,contentHash:t.contentHash},reason:f.reason,evidenceBasis:f.evidenceBasis,generatedManifestEditId:M.find(c=>c.target==="harness.json")?.id??null,rebasedFromHarnessRelease:s?r.baseHarnessRelease:null,expectedMemory:f.route==="memory"?{key:q(f.target),revision:_?.revision??null,contentHash:_?.contentHash??null,status:_?.status??null}:null}}),"buildProposal")});return $e({...e,trigger:t,workspace:n,overlay:W.overlay,proposal:W.proposal,observations:a})}i(ct,"executeLocalHarnessRefinerWorker");async function $e(e){let t=(e.now??(()=>new Date().toISOString()))(),r=await ie(e.store,e.workspace.id,e.proposal);if(r.length===0){r=await he({storeDir:e.storeDir,workspace:e.workspace,proposal:e.proposal,now:i(()=>t,"now")});for(let l of r)await e.store.saveHarnessImprovementArtifact(e.workspace.id,"targeted_validation",l)}if(e.proposal.route==="memory")return lt({...e,validations:r,timestamp:t});let n=await Re({store:e.store,storeDir:e.storeDir,overlay:e.overlay,proposal:e.proposal,validations:r,receiptId:R("harness-advance",e.proposal.contentHash),now:i(()=>t,"now")}),o=V({schemaVersion:"openpond.improvementRouteDecision.v1",id:R("route",e.trigger.contentHash),trigger:{id:e.trigger.id,contentHash:e.trigger.contentHash},route:e.proposal.route,authority:"refiner_model",automatic:n.receipt.decision==="advanced",reason:n.receipt.reason,createdAt:t,metadata:{proposalId:e.proposal.id}});await e.store.saveHarnessImprovementArtifact(e.workspace.id,"route_decision",o);let a=Y({schemaVersion:"openpond.improvementApplyReceipt.v1",id:R("apply",e.proposal.contentHash),proposal:{id:e.proposal.id,contentHash:e.proposal.contentHash},beforeOverlay:e.trigger.overlay,afterOverlay:n.receipt.decision==="advanced"?D(e.overlay):null,decision:n.receipt.decision==="advanced"?"applied":"retained",boundary:e.trigger.boundary,validationRefs:r.map(l=>({id:l.id,contentHash:l.contentHash})),outcomeEvidenceRefs:j(e.observations),rollbackOf:null,createdAt:t,metadata:{workspaceAdvanceDecision:n.receipt.decision}});await e.store.saveHarnessImprovementArtifact(e.workspace.id,"apply_receipt",a);let s=z({schemaVersion:"openpond.harnessRefinerOutcome.v1",id:R("refiner-outcome",e.trigger.contentHash),trigger:{id:e.trigger.id,contentHash:e.trigger.contentHash},decision:"proposed",proposal:{id:e.proposal.id,contentHash:e.proposal.contentHash},reason:n.receipt.reason,evidenceRefs:e.trigger.observations,estimatedCostUsd:e.trigger.estimatedMaxCostUsd,createdAt:t,metadata:{refinerRelease:e.proposal.metadata.refinerRelease??null,validationStatuses:r.map(l=>l.status),workspaceAdvanceReceipt:{id:n.receipt.id,contentHash:n.receipt.contentHash}}});return await e.store.saveHarnessImprovementArtifact(e.workspace.id,"refiner_outcome",s),{outcome:s,overlay:e.overlay,proposal:e.proposal,validations:r,workspace:n.workspace,advanceReceipt:n.receipt,applyReceipt:a}}i($e,"finishPersistedProposal");async function lt(e){let t=e.proposal.validationPlan.filter(m=>m.required).every(m=>e.validations.some(d=>d.validationId===m.id&&d.status==="passed")),r=e.proposal.edits.find(m=>m.route==="memory");if(!r)throw new Error("Memory proposal has no memory edit.");let n=Z(e.proposal,r.target),o=t&&r.operation!=="delete";o&&await e.store.writeHarnessMemory({workspaceId:e.workspace.id,key:q(r.target),content:r.content,expectedRevision:n.revision,sourceRunId:e.trigger.runRef,sourceProposal:{id:e.proposal.id,contentHash:e.proposal.contentHash},createdAt:e.timestamp});let a=o?"Validated low-risk Personal memory applied at the safe turn boundary.":r.operation==="delete"?"Memory deletion requires explicit review.":"Required memory validation did not pass.",s=V({schemaVersion:"openpond.improvementRouteDecision.v1",id:R("route",e.trigger.contentHash),trigger:{id:e.trigger.id,contentHash:e.trigger.contentHash},route:"memory",authority:"refiner_model",automatic:o,reason:a,createdAt:e.timestamp,metadata:{proposalId:e.proposal.id}});await e.store.saveHarnessImprovementArtifact(e.workspace.id,"route_decision",s);let l=Y({schemaVersion:"openpond.improvementApplyReceipt.v1",id:R("apply",e.proposal.contentHash),proposal:{id:e.proposal.id,contentHash:e.proposal.contentHash},beforeOverlay:e.trigger.overlay,afterOverlay:o?D(e.overlay):null,decision:o?"applied":"retained",boundary:e.trigger.boundary,validationRefs:e.validations.map(m=>({id:m.id,contentHash:m.contentHash})),outcomeEvidenceRefs:j(e.observations),rollbackOf:null,createdAt:e.timestamp,metadata:{externalState:"harness_memory"}});await e.store.saveHarnessImprovementArtifact(e.workspace.id,"apply_receipt",l);let g=z({schemaVersion:"openpond.harnessRefinerOutcome.v1",id:R("refiner-outcome",e.trigger.contentHash),trigger:{id:e.trigger.id,contentHash:e.trigger.contentHash},decision:"proposed",proposal:{id:e.proposal.id,contentHash:e.proposal.contentHash},reason:a,evidenceRefs:e.trigger.observations,estimatedCostUsd:e.trigger.estimatedMaxCostUsd,createdAt:e.timestamp,metadata:{refinerRelease:e.proposal.metadata.refinerRelease??null,validationStatuses:e.validations.map(m=>m.status)}});return await e.store.saveHarnessImprovementArtifact(e.workspace.id,"refiner_outcome",g),{outcome:g,overlay:e.overlay,proposal:e.proposal,validations:e.validations,workspace:e.workspace,advanceReceipt:null,applyReceipt:l}}i(lt,"finishMemoryProposal");async function ce(e){let t=(e.now??(()=>new Date().toISOString()))(),r=z({schemaVersion:"openpond.harnessRefinerOutcome.v1",id:R("refiner-outcome",e.trigger.contentHash),trigger:{id:e.trigger.id,contentHash:e.trigger.contentHash},decision:"no_action",proposal:null,reason:e.reason,evidenceRefs:e.trigger.observations,estimatedCostUsd:e.trigger.estimatedMaxCostUsd,createdAt:t,metadata:e.metadata??{}});return await e.store.saveHarnessImprovementArtifact(e.workspace.id,"refiner_outcome",r),{outcome:r,overlay:e.overlay,proposal:null,validations:[],workspace:e.workspace,advanceReceipt:null,applyReceipt:null}}i(ce,"persistNoAction");async function dt(e){let t=(e.now??(()=>new Date().toISOString()))(),r=V({schemaVersion:"openpond.improvementRouteDecision.v1",id:R("route",e.trigger.contentHash),trigger:{id:e.trigger.id,contentHash:e.trigger.contentHash},route:e.decision.route,authority:"refiner_model",automatic:!1,reason:e.decision.reason,createdAt:t,metadata:{summary:e.decision.summary,expectedOutcome:e.decision.expectedOutcome,evidenceBasis:e.decision.evidenceBasis,refinerRelease:e.refinerRelease}});return await e.store.saveHarnessImprovementArtifact(e.workspace.id,"route_decision",r),ce({store:e.store,workspace:e.workspace,overlay:e.overlay,trigger:e.trigger,observations:e.observations,reason:`Routed to ${e.decision.route}: ${e.decision.summary}`,metadata:{routed:!0,route:e.decision.route,routeDecision:{id:r.id,contentHash:r.contentHash},expectedOutcome:e.decision.expectedOutcome,evidenceBasis:e.decision.evidenceBasis,refinerRelease:e.refinerRelease},now:i(()=>t,"now")})}i(dt,"persistExternalRoute");function ut(e,t,r){let n=e.route==="memory"?"memory":e.route==="skill"?"skill":e.route==="agent"?"agent":"instruction",o=t.find(s=>s.path===e.target);if(e.operation==="create"){if(o)throw new Error(`Refiner create target already exists: ${e.target}.`);if(!pt(e.route,e.target))throw new Error(`Refiner create target is not a safe ${e.route} component path: ${e.target}.`);return}if(!o)throw new Error(`Refiner targeted an unlisted source file: ${e.target}.`);if(o.kind!==n)throw new Error(`Refiner route ${e.route} cannot ${e.operation} ${o.kind} file ${o.path}.`);let a=r.find(s=>s.path===e.target);if(e.operation==="update"&&!a)throw new Error(`Refiner update target ${e.target} exceeded the bounded source budget.`)}i(ut,"assertSafeDecision");function mt(e,t){if(e.operation==="delete")return null;if(e.operation==="create"){if(e.createContent===null)throw new Error("Refiner create proposal is missing bounded component content.");return e.createContent}let r=t.find(a=>a.path===e.target);if(!r)throw new Error(`Refiner update target ${e.target} exceeded the bounded source budget.`);if(e.find===null||e.replace===null)throw new Error("Refiner update proposal is missing its exact find/replace edit.");let n=r.content.split(e.find).length-1;if(n!==1)throw new Error(`Refiner update find text must occur exactly once in ${e.target}; found ${n}.`);let o=r.content.replace(e.find,e.replace);if(o===r.content)throw new Error("Refiner proposal does not change the selected source file.");return o}i(mt,"materializeDecisionContent");function pt(e,t){let r=t.replaceAll("\\","/");return e==="memory"?/^memory\/[a-z0-9][a-z0-9-]{0,119}$/.test(r):e==="prompt"?/^instructions\/refinements\/[a-z0-9][a-z0-9-]*\.md$/.test(r):e==="skill"?/^skills\/[a-z0-9][a-z0-9-]*\/SKILL\.md$/.test(r):/^agents\/[a-z0-9][a-z0-9-]*\/agent\.ts$/.test(r)}i(pt,"safeCreatedComponentPath");function ft(e){let{decision:t}=e,r={id:R("overlay-edit",{trigger:e.trigger.contentHash,operation:t.operation,target:t.target,content:e.materializedContent}),route:t.route,operation:t.operation,target:t.target,summary:t.summary,content:e.materializedContent,contentHash:e.materializedContent===null?null:E(e.materializedContent),effects:e.effects};if(t.route==="memory")return[r];if(t.operation==="update")return[r];let n=e.manifest.files.find(d=>d.path===t.target),o=new Set,a=[],s=e.manifest.files;if(t.operation==="create"){let d=t.route==="skill"?"skill":t.route==="agent"?"agent":"instruction";s=[...s,{id:R(d,t.target),kind:d,path:t.target,parentId:null,mediaType:t.route==="agent"?"text/javascript":"text/markdown",visibility:"policy",portability:"portable"}]}else{if(!n)throw new Error(`Refiner delete target is not declared: ${t.target}.`);o.add(n.id);for(let d of e.manifest.files)d.parentId===n.id&&(o.add(d.id),a.push({id:R("overlay-edit",{trigger:e.trigger.contentHash,operation:"delete",target:d.path}),route:t.route,operation:"delete",target:d.path,summary:`Remove resource ${d.path} with ${t.target}.`,content:null,contentHash:null,effects:e.effects}));s=s.filter(d=>!o.has(d.id))}let l=B.parse({...e.manifest,files:s}),g=`${JSON.stringify(l,null,2)}
5
5
  `,m={id:R("overlay-edit",{trigger:e.trigger.contentHash,operation:"update",target:"harness.json",content:g}),route:t.route,operation:"update",target:"harness.json",summary:`${t.operation==="create"?"Register":"Remove"} Harness component ${t.target}.`,content:g,contentHash:E(g),effects:e.effects};return[r,...a,m]}i(ft,"buildProposalEdits");function gt(e){if(e.route==="agent")return["executable_code"];if(e.route==="memory")return["memory"];let t=[e.summary,e.expectedOutcome,e.createContent??"",e.find??"",e.replace??""].join(`
@@ -1,5 +1,5 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{n as V,o as G,u as J}from"./chunk-NZDLL6JN.js";import{b as ie,c as se,d as ce}from"./chunk-EXYSD45J.js";import{h as X,k as Z}from"./chunk-G7X73SBG.js";import{c as o,d as H,e as l,f as K,h as ae,i as w}from"./chunk-3M53YXEI.js";import{a as I}from"./chunk-6FA3GG5B.js";import{a as i}from"./chunk-FTQLQJQV.js";import{existsSync as j,readFileSync as _e}from"node:fs";import{createRequire as Ie}from"node:module";import b from"node:path";function de(e){let n=b.join(e,"node_modules","openpond-agent-sdk","dist","cli.js");if(j(n))return{command:process.execPath,args:[n]};let t=b.join(e,"node_modules",".bin","openpond-agent");if(j(t))return{command:t,args:[]};let r=b.join(e,"node_modules","openpond-agent-sdk","src","cli.ts");if(j(r))return ue(b.dirname(b.dirname(r)),r);let a=De(e);return a||{command:"openpond-agent",args:[]}}i(de,"resolveLocalAgentSdkCommand");function De(e){let n=b.join(e,"package.json");if(!j(n))return null;try{let t=JSON.parse(_e(n,"utf8")),r=t.dependencies?.["openpond-agent-sdk"]??t.devDependencies?.["openpond-agent-sdk"]??t.peerDependencies?.["openpond-agent-sdk"];if(!r?.startsWith("file:"))return null;let a=b.resolve(e,r.slice(5)),d=b.join(a,"src","cli.ts");if(j(d))return ue(a,d);let s=b.join(a,"dist","cli.js");if(j(s))return{command:process.execPath,args:[s]}}catch{return null}return null}i(De,"resolveAgentSdkDependencyCli");function ue(e,n){let t=Ie(b.join(e,"package.json")).resolve("tsx/cli");return{command:process.execPath,args:[t,n]}}i(ue,"nodeTypescriptCommand");import{Buffer as A}from"node:buffer";import{existsSync as U,promises as P}from"node:fs";import m from"node:path";import{createHash as Te}from"node:crypto";import{existsSync as T,promises as M,readFileSync as ye,statSync as Me}from"node:fs";import{tmpdir as $e}from"node:os";import y from"node:path";import{gunzipSync as ze}from"node:zlib";import{existsSync as C}from"node:fs";import v from"node:path";function L(e,n){let t=n.packageManager;if(typeof t=="string"){let r=t.split("@")[0];if(r==="bun"||r==="npm"||r==="pnpm"||r==="yarn")return r}return C(v.join(e,"bun.lock"))||C(v.join(e,"bun.lockb"))?"bun":C(v.join(e,"pnpm-lock.yaml"))?"pnpm":C(v.join(e,"yarn.lock"))?"yarn":C(v.join(e,"package-lock.json"))||C(v.join(e,"npm-shrinkwrap.json"))?"npm":"unknown"}i(L,"detectAgentSdkPackageManager");function le(e){return e==="npm"?"npm install --offline":e==="pnpm"?"pnpm install --offline":e==="yarn"?"yarn install --offline":e==="bun"?"bun install --offline":"pnpm install --offline"}i(le,"agentSdkDependencyInstallCommand");function pe(e,n){return e==="pnpm"?`pnpm run ${n}`:e==="yarn"?`yarn ${n}`:e==="npm"?`npm run ${n}`:e==="bun"?`bun run ${n}`:`pnpm run ${n}`}i(pe,"agentSdkRunScriptCommand");function ge(e,n){return e==="pnpm"?`pnpm --silent run ${n}`:e==="yarn"?`yarn --silent ${n}`:e==="npm"?`npm run --silent ${n}`:e==="bun"?`bun run --silent ${n}`:`pnpm --silent run ${n}`}i(ge,"agentSdkRunJsonScriptCommand");var ke=".openpond/vendor/openpond-agent-sdk.tgz",Ue=".openpond/vendor/npm",Ne=`file:${ke}`,fe="# openpond-agent-sdk-source-upload: synthesized-openpond-yaml";async function ne(e,n,t={}){return J(e,n,{cwd:t.cwd})}i(ne,"runCommand");function Je(e){for(let n of["dependencies","devDependencies","peerDependencies"]){let t=e[n];if(!t||typeof t!="object"||Array.isArray(t))continue;let r=t["openpond-agent-sdk"];if(typeof r=="string"&&r.trim())return r.trim()}return null}i(Je,"readOpenPondAgentSdkVersionSpec");async function he(e,n){let t=Ke(e,n);if(!t)return null;let r=await M.mkdtemp(y.join($e(),"openpond-agent-sdk-pack-"));try{let a=t.kind==="package_root"?await Le(t.packageRoot,r):t.kind==="registry"?await He(t.versionSpec,r):t.tarballContents,d=await Fe({sdkPackageJson:t.packageJson,dependencyBaseDir:t.dependencyBaseDir,projectPackageJson:n,projectPath:e,tempDir:r}),s=L(e,n),c=Xe(n,d,s),u=s==="pnpm"||s==="unknown"?Ze(e,d):null,p=le(s),f={packageName:"openpond-agent-sdk",source:"uploaded_tarball",path:ke,sha256:O(a),sizeBytes:a.byteLength};return{rewrittenPackageJson:c,pnpmWorkspaceSource:u,tarballs:[{...f,contents:a},...d],dependencySetup:{required:!0,packageManager:s,installCommand:p,commands:[p],packageJsonPath:"package.json",expectedBinaryPath:"node_modules/.bin/openpond-agent",generatedArtifactDirectory:".openpond",sdkPackage:f,dependencyPackages:d.map(g=>({packageName:g.packageName,source:g.source,versionSpec:g.versionSpec,path:g.path,sha256:g.sha256,sizeBytes:g.sizeBytes}))}}}finally{await M.rm(r,{recursive:!0,force:!0})}}i(he,"buildAgentSdkMaterializedDependency");async function Le(e,n){let t=await ne("npm",["pack","--silent","--pack-destination",n,e],{cwd:e});if(t.code!==0){let a=[t.stderr.trim(),t.stdout.trim()].filter(Boolean).join(`
2
+ import{n as V,o as G,u as J}from"./chunk-HYUTDZ3N.js";import{b as ie,c as se,d as ce}from"./chunk-EXYSD45J.js";import{h as X,k as Z}from"./chunk-G7X73SBG.js";import{c as o,d as H,e as l,f as K,h as ae,i as w}from"./chunk-3M53YXEI.js";import{a as I}from"./chunk-6FA3GG5B.js";import{a as i}from"./chunk-FTQLQJQV.js";import{existsSync as j,readFileSync as _e}from"node:fs";import{createRequire as Ie}from"node:module";import b from"node:path";function de(e){let n=b.join(e,"node_modules","openpond-agent-sdk","dist","cli.js");if(j(n))return{command:process.execPath,args:[n]};let t=b.join(e,"node_modules",".bin","openpond-agent");if(j(t))return{command:t,args:[]};let r=b.join(e,"node_modules","openpond-agent-sdk","src","cli.ts");if(j(r))return ue(b.dirname(b.dirname(r)),r);let a=De(e);return a||{command:"openpond-agent",args:[]}}i(de,"resolveLocalAgentSdkCommand");function De(e){let n=b.join(e,"package.json");if(!j(n))return null;try{let t=JSON.parse(_e(n,"utf8")),r=t.dependencies?.["openpond-agent-sdk"]??t.devDependencies?.["openpond-agent-sdk"]??t.peerDependencies?.["openpond-agent-sdk"];if(!r?.startsWith("file:"))return null;let a=b.resolve(e,r.slice(5)),d=b.join(a,"src","cli.ts");if(j(d))return ue(a,d);let s=b.join(a,"dist","cli.js");if(j(s))return{command:process.execPath,args:[s]}}catch{return null}return null}i(De,"resolveAgentSdkDependencyCli");function ue(e,n){let t=Ie(b.join(e,"package.json")).resolve("tsx/cli");return{command:process.execPath,args:[t,n]}}i(ue,"nodeTypescriptCommand");import{Buffer as A}from"node:buffer";import{existsSync as U,promises as P}from"node:fs";import m from"node:path";import{createHash as Te}from"node:crypto";import{existsSync as T,promises as M,readFileSync as ye,statSync as Me}from"node:fs";import{tmpdir as $e}from"node:os";import y from"node:path";import{gunzipSync as ze}from"node:zlib";import{existsSync as C}from"node:fs";import v from"node:path";function L(e,n){let t=n.packageManager;if(typeof t=="string"){let r=t.split("@")[0];if(r==="bun"||r==="npm"||r==="pnpm"||r==="yarn")return r}return C(v.join(e,"bun.lock"))||C(v.join(e,"bun.lockb"))?"bun":C(v.join(e,"pnpm-lock.yaml"))?"pnpm":C(v.join(e,"yarn.lock"))?"yarn":C(v.join(e,"package-lock.json"))||C(v.join(e,"npm-shrinkwrap.json"))?"npm":"unknown"}i(L,"detectAgentSdkPackageManager");function le(e){return e==="npm"?"npm install --offline":e==="pnpm"?"pnpm install --offline":e==="yarn"?"yarn install --offline":e==="bun"?"bun install --offline":"pnpm install --offline"}i(le,"agentSdkDependencyInstallCommand");function pe(e,n){return e==="pnpm"?`pnpm run ${n}`:e==="yarn"?`yarn ${n}`:e==="npm"?`npm run ${n}`:e==="bun"?`bun run ${n}`:`pnpm run ${n}`}i(pe,"agentSdkRunScriptCommand");function ge(e,n){return e==="pnpm"?`pnpm --silent run ${n}`:e==="yarn"?`yarn --silent ${n}`:e==="npm"?`npm run --silent ${n}`:e==="bun"?`bun run --silent ${n}`:`pnpm --silent run ${n}`}i(ge,"agentSdkRunJsonScriptCommand");var ke=".openpond/vendor/openpond-agent-sdk.tgz",Ue=".openpond/vendor/npm",Ne=`file:${ke}`,fe="# openpond-agent-sdk-source-upload: synthesized-openpond-yaml";async function ne(e,n,t={}){return J(e,n,{cwd:t.cwd})}i(ne,"runCommand");function Je(e){for(let n of["dependencies","devDependencies","peerDependencies"]){let t=e[n];if(!t||typeof t!="object"||Array.isArray(t))continue;let r=t["openpond-agent-sdk"];if(typeof r=="string"&&r.trim())return r.trim()}return null}i(Je,"readOpenPondAgentSdkVersionSpec");async function he(e,n){let t=Ke(e,n);if(!t)return null;let r=await M.mkdtemp(y.join($e(),"openpond-agent-sdk-pack-"));try{let a=t.kind==="package_root"?await Le(t.packageRoot,r):t.kind==="registry"?await He(t.versionSpec,r):t.tarballContents,d=await Fe({sdkPackageJson:t.packageJson,dependencyBaseDir:t.dependencyBaseDir,projectPackageJson:n,projectPath:e,tempDir:r}),s=L(e,n),c=Xe(n,d,s),u=s==="pnpm"||s==="unknown"?Ze(e,d):null,p=le(s),f={packageName:"openpond-agent-sdk",source:"uploaded_tarball",path:ke,sha256:O(a),sizeBytes:a.byteLength};return{rewrittenPackageJson:c,pnpmWorkspaceSource:u,tarballs:[{...f,contents:a},...d],dependencySetup:{required:!0,packageManager:s,installCommand:p,commands:[p],packageJsonPath:"package.json",expectedBinaryPath:"node_modules/.bin/openpond-agent",generatedArtifactDirectory:".openpond",sdkPackage:f,dependencyPackages:d.map(g=>({packageName:g.packageName,source:g.source,versionSpec:g.versionSpec,path:g.path,sha256:g.sha256,sizeBytes:g.sizeBytes}))}}}finally{await M.rm(r,{recursive:!0,force:!0})}}i(he,"buildAgentSdkMaterializedDependency");async function Le(e,n){let t=await ne("npm",["pack","--silent","--pack-destination",n,e],{cwd:e});if(t.code!==0){let a=[t.stderr.trim(),t.stdout.trim()].filter(Boolean).join(`
3
3
  `);throw new Error(`failed to pack openpond-agent-sdk for source upload${a?`:
4
4
  ${a}`:""}`)}let r=t.stdout.trim().split(/\r?\n/).filter(Boolean).pop();if(!r)throw new Error("failed to pack openpond-agent-sdk for source upload: npm pack did not return a tarball name");return M.readFile(y.join(n,r))}i(Le,"packOpenPondAgentSdkPackageRoot");async function Fe(e){let n=D(e.sdkPackageJson.dependencies),t=D(e.projectPackageJson.dependencies),r=D(e.projectPackageJson.devDependencies);delete t["openpond-agent-sdk"],delete r["openpond-agent-sdk"];let a=[...Object.entries(n).map(([c,u])=>({packageName:c,versionSpec:u,dependencyBaseDir:e.dependencyBaseDir})),...Object.entries(t).map(([c,u])=>({packageName:c,versionSpec:u,dependencyBaseDir:e.projectPath})),...Object.entries(r).map(([c,u])=>({packageName:c,versionSpec:u,dependencyBaseDir:e.projectPath}))].sort((c,u)=>c.packageName.localeCompare(u.packageName)),d=new Set,s=[];for(;a.length>0;){let{packageName:c,versionSpec:u,dependencyBaseDir:p}=a.shift();if(d.has(c))continue;d.add(c);let f=We({packageName:c,versionSpec:u,dependencyBaseDir:p}),g=await ne("npm",["pack","--silent","--pack-destination",e.tempDir,f],{cwd:p});if(g.code!==0){let h=[g.stderr.trim(),g.stdout.trim()].filter(Boolean).join(`
5
5
  `);throw new Error(`failed to pack openpond-agent-sdk dependency ${c}${h?`:
@@ -1,5 +1,5 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{j as U,m as W,n as K,o as q,r as X,y as O}from"./chunk-YI6ME6PU.js";import{Ba as V,oa as y,wa as N}from"./chunk-BU6MW65V.js";import{L as D}from"./chunk-4PUOWSDE.js";import{Ba as F,Ca as z,Ia as G,Ja as A,ab as $,bb as L,cb as J,ea as P}from"./chunk-ZY32SZ2P.js";import{i as B,l as j,m as E,n as g}from"./chunk-RCT3O3HQ.js";import{a as f}from"./chunk-FTQLQJQV.js";import{createHash as Y}from"node:crypto";import{mkdir as Z,readdir as ie,readFile as H,writeFile as Q}from"node:fs/promises";import m from"node:path";async function Ae(e,t){let a=y.parse(e),s=["tasks","assets","environment","graders","rubrics","comparisons","metrics","fixtures"];await Promise.all(s.map(w=>Z(m.join(t,w),{recursive:!0})));let i=await oe(a,t);if(a.metrics.customAggregator){let w=m.join(t,a.metrics.customAggregator.module),v=Y("sha256").update(await H(w)).digest("hex");a=y.parse({...a,metrics:{...a.metrics,customAggregator:{...a.metrics.customAggregator,contentHash:v}}})}let c=m.join(t,"taskset.json"),d=m.join(t,"tasks","tasks.jsonl"),n=m.join(t,"graders","graders.json"),o=m.join(t,"fixtures","grader-fixtures.json"),u=m.join(t,"metrics","policy.json"),r=m.join(t,"assets","manifest.json"),l=m.join(t,"environment","contract.json"),p=m.join(t,"rubrics","preference-review.md"),k=m.join(t,"comparisons","policy.json");return await Promise.all([...K(a)].map(([w,v])=>Q(m.join(t,w),v,"utf8"))),{directory:t,files:[c,d,r,l,n,p,k,u,o,...i],draft:a}}f(Ae,"writeTasksetDraftPackage");async function _e(e){let t=await ce(e),a=Y("sha256");for(let s of t)a.update(m.relative(e,s).replaceAll(m.sep,"/")),a.update("\0"),a.update(await H(s)),a.update("\0");return a.digest("hex")}f(_e,"hashTasksetDraftPackage");async function ee(e,t){let a=m.basename(e)==="taskset.json"?e:m.join(e,"taskset.json"),s=m.dirname(a),i=f(async n=>{if(!t)return H(n,"utf8");let o=t.get(m.relative(s,n).replaceAll(m.sep,"/"));if(!o)throw Object.assign(new Error("Authored file is absent."),{code:"ENOENT"});return new TextDecoder("utf-8",{fatal:!0}).decode(o)},"read"),c=JSON.parse(await i(a)),d=y.safeParse(c);if(d.success){let[n,o,u,r,l,p]=await Promise.all([de(m.join(s,"tasks","tasks.jsonl"),i),I(m.join(s,"graders","graders.json"),i),I(m.join(s,"fixtures","grader-fixtures.json"),i),I(m.join(s,"metrics","policy.json"),i),I(m.join(s,"environment","contract.json"),i),I(m.join(s,"comparisons","policy.json"),i)]);return y.parse({...d.data,...n===null?{}:{tasks:n},...o===null?{}:{graders:o},...u===null?{}:{graderFixtures:u},...r===null?{}:{metrics:r},...l===null?{}:{environment:l},...p===null?{}:{review:p}})}return O(c)}f(ee,"readTasksetDraftPackage");async function oe(e,t){let a=W(e),s=[];for(let i of a){let c=m.join(t,i.relativePath);await Z(m.dirname(c),{recursive:!0});try{await Q(c,i.source,{encoding:"utf8",flag:"wx"})}catch(d){if(!le(d))throw d}s.push(c)}return s}f(oe,"writeConfiguredStarterCode");async function ce(e){let t=[];async function a(s){let i=await ie(s,{withFileTypes:!0});i.sort((c,d)=>c.name.localeCompare(d.name));for(let c of i){let d=m.join(s,c.name);if(c.isSymbolicLink())throw new Error(`Taskset workspaces cannot contain symbolic links: ${d}`);c.isDirectory()?await a(d):c.isFile()&&t.push(d)}}return f(a,"visit"),await a(e),t}f(ce,"packageFiles");async function I(e,t=a=>H(a,"utf8")){try{return JSON.parse(await t(e))}catch(a){if(te(a))return null;throw a}}f(I,"readOptionalJson");async function de(e,t=a=>H(a,"utf8")){try{return(await t(e)).split(/\r?\n/).map(s=>s.trim()).filter(Boolean).map(s=>JSON.parse(s))}catch(a){if(te(a))return null;throw a}}f(de,"readOptionalJsonLines");function te(e){return e instanceof Error&&"code"in e&&e.code==="ENOENT"}f(te,"isMissingFile");function le(e){return e instanceof Error&&"code"in e&&e.code==="EEXIST"}f(le,"isFileExists");import{constants as re}from"node:fs";import{lstat as fe,open as me,readdir as ue}from"node:fs/promises";import _ from"node:path";async function Ge(e){let t=_.resolve(e.directory);if(!(await fe(t)).isDirectory())throw new Error("Dataset upload requires a regular authored folder.");let a=new Map,s=0;async function i(r,l){if(l>30)throw new Error("Dataset folder nesting exceeds 30 levels.");for(let p of(await ue(r,{withFileTypes:!0})).sort((k,w)=>k.name<w.name?-1:k.name>w.name?1:0)){if(p.name.startsWith("."))throw new Error("Dataset folders cannot include hidden files or directories.");if(p.isSymbolicLink()||!p.isDirectory()&&!p.isFile())throw new Error("Dataset folders can contain only regular files and directories.");let k=_.join(r,p.name);if(p.isDirectory()){await i(k,l+1);continue}if(a.size>=1e4)throw new Error("Dataset folder exceeds 10,000 files.");let w=await me(k,re.O_RDONLY|re.O_NOFOLLOW);try{let v=await w.stat();if(!v.isFile()||v.size>(e.maximumBytes??q)-s)throw new Error("Dataset folder exceeds its capture byte limit.");let R=new Uint8Array(v.size),S=0;for(;S<R.length;){let M=await w.read(R,S,R.length-S,S);if(!M.bytesRead)throw new Error("Dataset file changed during capture.");S+=M.bytesRead}let C=await w.stat();if(C.size!==v.size||C.mtimeMs!==v.mtimeMs||C.ctimeMs!==v.ctimeMs)throw new Error("Dataset file changed during capture.");s+=R.length,a.set(_.relative(t,k).replaceAll(_.sep,"/"),R)}finally{await w.close()}}}f(i,"visit"),await i(t,0);let c=await ee(t,a),d=[...a].map(([r,l])=>({path:r,contentHash:E(l),sizeBytes:l.byteLength})),n=g(d),o=y.parse({...c,id:e.datasetId??c.id,profileId:e.teamId,revision:e.expectedRevision+1,modelScope:null,status:"draft",publishedTasksetRef:null,metadata:{...c.metadata,importedTasksetPackage:{packageHash:n}}});return{workspace:X({schemaVersion:"openpond.tasksetDraftWorkspace.v1",draft:o,files:[...a].filter(([r])=>!U(r)).map(([r,l])=>({path:r,base64:Buffer.from(l).toString("base64"),contentHash:E(l),sizeBytes:l.byteLength}))},e.maximumBytes),sourceHash:n,sourceFiles:d,capturedBytes:s}}f(Ge,"captureTasksetDraftWorkspace");async function ae(e){let{binding:t,rewards:a}=e.learning,s=$(t,a),i=new Set(e.graders.map(r=>r.id));if(!i.size||i.size!==e.graders.length||e.graders.some(r=>{let l=s.find(p=>p.source.graderId===r.id);return!l||r.version!==String(l.reward.revision)||g(r.metadata.rewardBinding)!==g(D(t))}))throw new Error("Calibration graders differ from the immutable Reward binding.");let c=L(t,a).filter(r=>i.has(r.id)),d=P.parse({id:e.task.id,clusterKey:e.task.clusterKey,split:e.task.split,input:e.task.input,expectedOutput:e.task.expectedOutput,policyVisibleContext:e.task.policyVisibleContext,privilegedContextRef:e.task.privilegedContextRef,artifactRefs:[],tags:e.task.tags}),n=await G({task:d,graders:c,signal:e.signal,evidence:{output:e.attempt.output,artifactRefs:e.attempt.artifactRefs,runtimeEventRefs:e.attempt.runtimeEventRefs,infrastructureError:e.attempt.infrastructureError},customVerifier:e.customVerifier?async({grader:r})=>{let l=e.graders.find(k=>k.id===r.id);if(l?.kind!=="custom_verifier")throw new Error("Calibration verifier projection is missing.");let p=await e.customVerifier({grader:l,task:e.task,attempt:e.attempt,signal:e.signal});return{score:p.score,passed:p.passed,rewardEligible:r.rewardEligible,failureClass:null,feedback:[p.feedback],visibleEvidenceRefs:[],privilegedEvidenceRefs:p.evidenceRefs??[]}}:void 0,modelJudge:e.modelJudge?async({grader:r})=>{let l=e.graders.find(k=>k.id===r.id);if(l?.kind!=="model_judge")throw new Error("Calibration judge projection is missing.");let p=await e.modelJudge({grader:l,task:e.task,attempt:e.attempt});return{score:p.score,passed:p.passed,rewardEligible:r.rewardEligible,failureClass:null,feedback:[p.feedback],visibleEvidenceRefs:[],privilegedEvidenceRefs:p.evidenceRefs??[]}}:void 0}),o=A({graders:c,components:n,infrastructureError:e.attempt.infrastructureError}),u=n.map(r=>{let l=e.graders.find(p=>p.id===r.graderId);return{graderId:r.graderId,graderVersion:r.graderVersion,score:r.score,passed:r.passed,hardGate:l.hardGate,rewardEligible:r.rewardEligible,feedback:r.feedback.join(`
2
+ import{j as U,m as W,n as K,o as q,r as X,y as O}from"./chunk-GG6PM7TB.js";import{Ba as V,oa as y,wa as N}from"./chunk-BYVE4TMU.js";import{L as D}from"./chunk-ZEOYNUHL.js";import{Ba as F,Ca as z,Ia as G,Ja as A,ab as $,bb as L,cb as J,ea as P}from"./chunk-ZY32SZ2P.js";import{i as B,l as j,m as E,n as g}from"./chunk-RCT3O3HQ.js";import{a as f}from"./chunk-FTQLQJQV.js";import{createHash as Y}from"node:crypto";import{mkdir as Z,readdir as ie,readFile as H,writeFile as Q}from"node:fs/promises";import m from"node:path";async function Ae(e,t){let a=y.parse(e),s=["tasks","assets","environment","graders","rubrics","comparisons","metrics","fixtures"];await Promise.all(s.map(w=>Z(m.join(t,w),{recursive:!0})));let i=await oe(a,t);if(a.metrics.customAggregator){let w=m.join(t,a.metrics.customAggregator.module),v=Y("sha256").update(await H(w)).digest("hex");a=y.parse({...a,metrics:{...a.metrics,customAggregator:{...a.metrics.customAggregator,contentHash:v}}})}let c=m.join(t,"taskset.json"),d=m.join(t,"tasks","tasks.jsonl"),n=m.join(t,"graders","graders.json"),o=m.join(t,"fixtures","grader-fixtures.json"),u=m.join(t,"metrics","policy.json"),r=m.join(t,"assets","manifest.json"),l=m.join(t,"environment","contract.json"),p=m.join(t,"rubrics","preference-review.md"),k=m.join(t,"comparisons","policy.json");return await Promise.all([...K(a)].map(([w,v])=>Q(m.join(t,w),v,"utf8"))),{directory:t,files:[c,d,r,l,n,p,k,u,o,...i],draft:a}}f(Ae,"writeTasksetDraftPackage");async function _e(e){let t=await ce(e),a=Y("sha256");for(let s of t)a.update(m.relative(e,s).replaceAll(m.sep,"/")),a.update("\0"),a.update(await H(s)),a.update("\0");return a.digest("hex")}f(_e,"hashTasksetDraftPackage");async function ee(e,t){let a=m.basename(e)==="taskset.json"?e:m.join(e,"taskset.json"),s=m.dirname(a),i=f(async n=>{if(!t)return H(n,"utf8");let o=t.get(m.relative(s,n).replaceAll(m.sep,"/"));if(!o)throw Object.assign(new Error("Authored file is absent."),{code:"ENOENT"});return new TextDecoder("utf-8",{fatal:!0}).decode(o)},"read"),c=JSON.parse(await i(a)),d=y.safeParse(c);if(d.success){let[n,o,u,r,l,p]=await Promise.all([de(m.join(s,"tasks","tasks.jsonl"),i),I(m.join(s,"graders","graders.json"),i),I(m.join(s,"fixtures","grader-fixtures.json"),i),I(m.join(s,"metrics","policy.json"),i),I(m.join(s,"environment","contract.json"),i),I(m.join(s,"comparisons","policy.json"),i)]);return y.parse({...d.data,...n===null?{}:{tasks:n},...o===null?{}:{graders:o},...u===null?{}:{graderFixtures:u},...r===null?{}:{metrics:r},...l===null?{}:{environment:l},...p===null?{}:{review:p}})}return O(c)}f(ee,"readTasksetDraftPackage");async function oe(e,t){let a=W(e),s=[];for(let i of a){let c=m.join(t,i.relativePath);await Z(m.dirname(c),{recursive:!0});try{await Q(c,i.source,{encoding:"utf8",flag:"wx"})}catch(d){if(!le(d))throw d}s.push(c)}return s}f(oe,"writeConfiguredStarterCode");async function ce(e){let t=[];async function a(s){let i=await ie(s,{withFileTypes:!0});i.sort((c,d)=>c.name.localeCompare(d.name));for(let c of i){let d=m.join(s,c.name);if(c.isSymbolicLink())throw new Error(`Taskset workspaces cannot contain symbolic links: ${d}`);c.isDirectory()?await a(d):c.isFile()&&t.push(d)}}return f(a,"visit"),await a(e),t}f(ce,"packageFiles");async function I(e,t=a=>H(a,"utf8")){try{return JSON.parse(await t(e))}catch(a){if(te(a))return null;throw a}}f(I,"readOptionalJson");async function de(e,t=a=>H(a,"utf8")){try{return(await t(e)).split(/\r?\n/).map(s=>s.trim()).filter(Boolean).map(s=>JSON.parse(s))}catch(a){if(te(a))return null;throw a}}f(de,"readOptionalJsonLines");function te(e){return e instanceof Error&&"code"in e&&e.code==="ENOENT"}f(te,"isMissingFile");function le(e){return e instanceof Error&&"code"in e&&e.code==="EEXIST"}f(le,"isFileExists");import{constants as re}from"node:fs";import{lstat as fe,open as me,readdir as ue}from"node:fs/promises";import _ from"node:path";async function Ge(e){let t=_.resolve(e.directory);if(!(await fe(t)).isDirectory())throw new Error("Dataset upload requires a regular authored folder.");let a=new Map,s=0;async function i(r,l){if(l>30)throw new Error("Dataset folder nesting exceeds 30 levels.");for(let p of(await ue(r,{withFileTypes:!0})).sort((k,w)=>k.name<w.name?-1:k.name>w.name?1:0)){if(p.name.startsWith("."))throw new Error("Dataset folders cannot include hidden files or directories.");if(p.isSymbolicLink()||!p.isDirectory()&&!p.isFile())throw new Error("Dataset folders can contain only regular files and directories.");let k=_.join(r,p.name);if(p.isDirectory()){await i(k,l+1);continue}if(a.size>=1e4)throw new Error("Dataset folder exceeds 10,000 files.");let w=await me(k,re.O_RDONLY|re.O_NOFOLLOW);try{let v=await w.stat();if(!v.isFile()||v.size>(e.maximumBytes??q)-s)throw new Error("Dataset folder exceeds its capture byte limit.");let R=new Uint8Array(v.size),S=0;for(;S<R.length;){let M=await w.read(R,S,R.length-S,S);if(!M.bytesRead)throw new Error("Dataset file changed during capture.");S+=M.bytesRead}let C=await w.stat();if(C.size!==v.size||C.mtimeMs!==v.mtimeMs||C.ctimeMs!==v.ctimeMs)throw new Error("Dataset file changed during capture.");s+=R.length,a.set(_.relative(t,k).replaceAll(_.sep,"/"),R)}finally{await w.close()}}}f(i,"visit"),await i(t,0);let c=await ee(t,a),d=[...a].map(([r,l])=>({path:r,contentHash:E(l),sizeBytes:l.byteLength})),n=g(d),o=y.parse({...c,id:e.datasetId??c.id,profileId:e.teamId,revision:e.expectedRevision+1,modelScope:null,status:"draft",publishedTasksetRef:null,metadata:{...c.metadata,importedTasksetPackage:{packageHash:n}}});return{workspace:X({schemaVersion:"openpond.tasksetDraftWorkspace.v1",draft:o,files:[...a].filter(([r])=>!U(r)).map(([r,l])=>({path:r,base64:Buffer.from(l).toString("base64"),contentHash:E(l),sizeBytes:l.byteLength}))},e.maximumBytes),sourceHash:n,sourceFiles:d,capturedBytes:s}}f(Ge,"captureTasksetDraftWorkspace");async function ae(e){let{binding:t,rewards:a}=e.learning,s=$(t,a),i=new Set(e.graders.map(r=>r.id));if(!i.size||i.size!==e.graders.length||e.graders.some(r=>{let l=s.find(p=>p.source.graderId===r.id);return!l||r.version!==String(l.reward.revision)||g(r.metadata.rewardBinding)!==g(D(t))}))throw new Error("Calibration graders differ from the immutable Reward binding.");let c=L(t,a).filter(r=>i.has(r.id)),d=P.parse({id:e.task.id,clusterKey:e.task.clusterKey,split:e.task.split,input:e.task.input,expectedOutput:e.task.expectedOutput,policyVisibleContext:e.task.policyVisibleContext,privilegedContextRef:e.task.privilegedContextRef,artifactRefs:[],tags:e.task.tags}),n=await G({task:d,graders:c,signal:e.signal,evidence:{output:e.attempt.output,artifactRefs:e.attempt.artifactRefs,runtimeEventRefs:e.attempt.runtimeEventRefs,infrastructureError:e.attempt.infrastructureError},customVerifier:e.customVerifier?async({grader:r})=>{let l=e.graders.find(k=>k.id===r.id);if(l?.kind!=="custom_verifier")throw new Error("Calibration verifier projection is missing.");let p=await e.customVerifier({grader:l,task:e.task,attempt:e.attempt,signal:e.signal});return{score:p.score,passed:p.passed,rewardEligible:r.rewardEligible,failureClass:null,feedback:[p.feedback],visibleEvidenceRefs:[],privilegedEvidenceRefs:p.evidenceRefs??[]}}:void 0,modelJudge:e.modelJudge?async({grader:r})=>{let l=e.graders.find(k=>k.id===r.id);if(l?.kind!=="model_judge")throw new Error("Calibration judge projection is missing.");let p=await e.modelJudge({grader:l,task:e.task,attempt:e.attempt});return{score:p.score,passed:p.passed,rewardEligible:r.rewardEligible,failureClass:null,feedback:[p.feedback],visibleEvidenceRefs:[],privilegedEvidenceRefs:p.evidenceRefs??[]}}:void 0}),o=A({graders:c,components:n,infrastructureError:e.attempt.infrastructureError}),u=n.map(r=>{let l=e.graders.find(p=>p.id===r.graderId);return{graderId:r.graderId,graderVersion:r.graderVersion,score:r.score,passed:r.passed,hardGate:l.hardGate,rewardEligible:r.rewardEligible,feedback:r.feedback.join(`
3
3
  `)||null,evidenceRefs:[...r.visibleEvidenceRefs,...r.privilegedEvidenceRefs],judge:l.kind==="model_judge"?l.judge:null,calibrationStatus:l.kind==="model_judge"?l.calibrationStatus:"not_applicable"}});return{schemaVersion:"openpond.gradeResult.v1",id:`calibration_${g([e.attempt.id,t.contentHash,n]).slice(0,24)}`,attemptId:e.attempt.id,graderSetHash:g(e.graders),score:o.score,passed:o.passed,components:u,failureClass:o.failureClass,feedback:n.flatMap(r=>r.feedback),rewardEligible:o.rewardEligible,createdAt:e.now?.()??new Date().toISOString()}}f(ae,"gradeLearningCalibrationAttempt");async function se(e){let{binding:t,rewards:a}=e.learning,s=$(t,a);if(e.graders.length!==s.length||s.some(({source:o,reward:u})=>!e.graders.some(r=>r.id===o.graderId&&r.version===String(u.revision)&&g(r.metadata.rewardBinding)===g(D(t)))))throw new Error("Prepared Taskset graders do not match their immutable Reward binding.");let i=P.parse({id:e.task.id,clusterKey:e.task.clusterKey,split:e.task.split,input:e.task.input,expectedOutput:e.task.expectedOutput,policyVisibleContext:e.task.policyVisibleContext,privilegedContextRef:e.task.privilegedContextRef,artifactRefs:[],tags:e.task.tags}),c=await J({binding:t,rewards:a,task:i,signal:e.signal,evidence:{output:e.attempt.output,artifactRefs:e.attempt.artifactRefs,runtimeEventRefs:e.attempt.runtimeEventRefs,infrastructureError:e.attempt.infrastructureError},customVerifier:e.customVerifier?async({grader:o})=>{let u=e.graders.find(l=>l.id===o.id);if(u?.kind!=="custom_verifier")throw new Error("Bound verifier projection is missing.");let r=await e.customVerifier({grader:u,task:e.task,attempt:e.attempt,signal:e.signal});return{score:r.score,passed:r.passed,rewardEligible:o.rewardEligible,failureClass:null,feedback:[r.feedback],visibleEvidenceRefs:[],privilegedEvidenceRefs:r.evidenceRefs??[]}}:void 0,modelJudge:e.modelJudge?async({grader:o})=>{let u=e.graders.find(l=>l.id===o.id);if(u?.kind!=="model_judge")throw new Error("Bound judge projection is missing.");let r=await e.modelJudge({grader:u,task:e.task,attempt:e.attempt});return{score:r.score,passed:r.passed,rewardEligible:o.rewardEligible,failureClass:null,feedback:[r.feedback],visibleEvidenceRefs:[],privilegedEvidenceRefs:r.evidenceRefs??[]}}:void 0}),d=c.training.status==="not_configured"?c.evaluation:c.training,n=g(e.graders);return{schemaVersion:"openpond.gradeResult.v1",id:`grade_${g([e.attempt.id,c.contentHash]).slice(0,24)}`,attemptId:e.attempt.id,graderSetHash:n,score:d.score,passed:d.passed===!0,components:c.results.map(o=>{let u=t.sources.find(l=>l.graderId===o.graderId),r=e.graders.find(l=>l.id===o.graderId);return{graderId:o.graderId,graderVersion:r.version,score:o.normalizedScore,passed:o.passed===!0,hardGate:u.hardGate,rewardEligible:u.role==="training"&&o.status==="scored",feedback:o.message?.trim()||null,evidenceRefs:o.evidenceHashes,judge:r.kind==="model_judge"?r.judge:null,calibrationStatus:r.kind==="model_judge"?r.calibrationStatus:"not_applicable"}}),failureClass:e.attempt.infrastructureError?"infrastructure_failure":d.status!=="scored"?"grader_failure":d.passed?null:"policy_failure",feedback:c.results.flatMap(o=>o.message?.trim()?[o.message.trim()]:[]),rewardEligible:c.training.status==="scored",rewardComposition:c,createdAt:e.now?.()??new Date().toISOString()}}f(se,"gradeLearningBatchAttempt");async function ft(e){return e.learning?ae({...e,learning:e.learning}):he(e)}f(ft,"gradeCalibrationAttempt");async function he(e){if(e.learning)return se({...e,learning:e.learning});if(e.graders.some(i=>i.metadata.rewardBinding!==void 0))throw new Error("This Taskset requires its immutable public Reward binding to grade an attempt.");let t=g(e.graders),a=[];for(let i of e.graders)e.signal?.throwIfAborted(),a.push(e.attempt.infrastructureError?b(i,null,!1,"Infrastructure failure; no reward was produced.",[],!1):await we(i,e.task,e.attempt,e.modelJudge,e.customVerifier,e.signal));let s=A({graders:e.graders,infrastructureError:e.attempt.infrastructureError,components:a.map(i=>({...i,failureClass:i.score===null?"grader_failure":i.passed?null:"policy_failure"}))});return{schemaVersion:"openpond.gradeResult.v1",id:`grade_${g([e.attempt.id,t,a]).slice(0,24)}`,attemptId:e.attempt.id,graderSetHash:t,score:s.score,passed:s.passed,components:a,failureClass:s.failureClass,feedback:e.attempt.infrastructureError?[e.attempt.infrastructureError]:a.flatMap(i=>i.feedback?[i.feedback]:[]),rewardEligible:s.rewardEligible,createdAt:e.now?.()??new Date().toISOString()}}f(he,"gradeAttempt");async function we(e,t,a,s,i,c){if(e.kind==="model_judge"){if(!s)return b(e,null,!1,"Model judge runner is unavailable.",[],!1);if(e.calibrationStatus!=="passed")return b(e,null,!1,"Model judge calibration has not passed.",[],!1);let n=await s({grader:e,task:t,attempt:a});return b(e,n.score,n.passed,n.feedback,n.evidenceRefs??[])}if(e.kind==="human")return b(e,null,!1,"Human review is pending.",[],!1);if(e.kind==="custom_verifier"){if(!i)return b(e,null,!1,"Sandboxed verifier runner is unavailable.",[],!1);let n=await i({grader:e,task:t,attempt:a,signal:c});return b(e,n.score,n.passed,n.feedback,n.evidenceRefs??[])}let d=F({grader:z(e),task:t,evidence:a});return b(e,d.score,d.passed,d.feedback,[...a.artifactRefs,...a.runtimeEventRefs])}f(we,"runGrader");function b(e,t,a,s,i,c=e.rewardEligible){let d=t!==null&&Number.isFinite(t)?Math.max(0,Math.min(1,t)):null;return{graderId:e.id,graderVersion:e.version,score:d,passed:d!==null&&a,hardGate:e.hardGate,rewardEligible:d!==null&&c,feedback:s,evidenceRefs:i,judge:e.kind==="model_judge"?e.judge:null,calibrationStatus:e.kind==="model_judge"?e.calibrationStatus:"not_applicable"}}f(b,"component");import{access as ke,mkdir as T,readFile as ve,writeFile as x}from"node:fs/promises";import h from"node:path";async function Ft(e,t,a={}){let s=N.parse(e),i=new Map(s.graders.flatMap(n=>{if(n.kind!=="custom_verifier")return[];let o=B.safeParse(n.metadata.portableVerifierRef);return o.success&&o.data.visibility!=="policy"&&o.data.path===n.module?[[n.module,o.data]]:[]})),c=V(s);if(!c.valid)throw new Error(c.issues.map(n=>`${n.code}: ${n.message}`).join(`
4
4
  `));await T(h.join(t,"data"),{recursive:!0}),await T(h.join(t,"graders"),{recursive:!0}),await T(h.join(t,"environment"),{recursive:!0}),await T(h.join(t,"fixtures"),{recursive:!0});let d=[h.join(t,"taskset.json"),h.join(t,"capabilities.json"),h.join(t,"data","tasks.jsonl"),h.join(t,"graders","graders.json"),h.join(t,"fixtures","grader-fixtures.json"),h.join(t,"environment","taskset.ts")];await x(d[0],j(s),"utf8"),await x(d[1],j(s.capabilities),"utf8"),await x(d[2],s.tasks.map(n=>JSON.stringify(n)).join(`
5
5
  `)+`
@@ -1,2 +1,2 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{b as g,d as $,e as O,f as C}from"./chunk-R6I623SZ.js";import{a as w}from"./chunk-3M53YXEI.js";import{a as r}from"./chunk-FTQLQJQV.js";var L=Symbol("openpondCliOptionValues"),a=class extends Error{static{r(this,"CliUsageError")}exitCode=2;constructor(t){super(t),this.name="CliUsageError"}},K=new Set(["maxOutputBytes","timeoutSec"]);function k(n){let t=[...n],o="",i={},e={},u=[];for(;t.length>0;){let s=t.shift();if(s==="--"){u.push(...t);break}if(s.startsWith("--")){let f=s.indexOf("="),c=f>=0?s.slice(2,f):s.slice(2),p=N(c),d=f>=0?s.slice(f+1):P(t,p,o);h(i,e,p,d,o)}else _(s)?y(s,t,i,e):o?u.push(s):o=s}return Object.defineProperty(i,L,{value:e,enumerable:!1,configurable:!1,writable:!1}),V(o,i),{command:o,options:i,rest:u}}r(k,"parseArgs");function N(n){return n.replace(/-([a-z])/g,(t,o)=>o.toUpperCase())}r(N,"normalizeCliOptionKey");function _(n){return/^-[^-].*/.test(n)&&!S(n)}r(_,"isShortOptionToken");function y(n,t,o,i){let e=n.slice(1);if(!e)return;let u=e.indexOf("="),s=u>=0?e.slice(0,u):e,f=u>=0?e.slice(u+1):null;if(s.length!==1){for(let d of s){let m=g[d];if(!m)throw new a(`unknown short option -${d}`);if(C(m)!=="boolean")throw new a(`short option -${d} requires its own value`);h(o,i,m,"true")}return}let c=g[s];if(!c)throw new a(`unknown short option -${s}`);let p=f??P(t,c);h(o,i,c,p)}r(y,"parseShortOptionToken");function P(n,t,o){let i=I(t,o);if(i==="boolean")return n[0]&&x(n[0])?n.shift():"true";if(i){let e=n.shift();if(e===void 0||R(e)&&!S(e))throw e!==void 0&&n.unshift(e),new a(`${l(t)} must be ${b(i)}`);return e}return n[0]&&!n[0].startsWith("--")?n.shift():"true"}r(P,"readOptionValue");function h(n,t,o,i,e){T(o,i,e),n[o]=i,(t[o]??=[]).push(i)}r(h,"setParsedOption");function T(n,t,o){let i=I(n,o);if(i){if(i==="boolean"){if(!x(t))throw new a(`${l(n)} must be a boolean`);return}if(t.trim().length===0||t==="true")throw new a(`${l(n)} must be ${b(i)}`);if(i==="number"||i==="integer"){let e=Number(t);if(!Number.isFinite(e))throw new a(`${l(n)} must be ${b(i)}`);if(i==="integer"&&!Number.isInteger(e))throw new a(`${l(n)} must be an integer`);if(i==="integer"&&K.has(n)&&e<=0)throw new a(`${l(n)} must be a positive integer`);return}if(i==="json")try{w(t,l(n))}catch(e){throw new a(e instanceof Error?e.message:String(e))}}}r(T,"validateParsedOptionValue");function I(n,t){return t?O(t,n):C(n)}r(I,"typedOptionKind");function l(n){return n.replace(/[A-Z]/g,t=>`-${t.toLowerCase()}`)}r(l,"cliOptionLabel");function E(n){return n==="json"?"JSON value":n}r(E,"optionKindLabel");function b(n){let t=E(n);return/^[aeiou]/i.test(t)?`an ${t}`:`a ${t}`}r(b,"optionKindPhrase");function x(n){return/^(true|false|1|0|yes|no)$/i.test(n)}r(x,"isBooleanLiteral");function R(n){return n.startsWith("-")&&n!=="-"}r(R,"isOptionLike");function S(n){return/^-\d+(?:\.\d+)?$/.test(n)}r(S,"isNegativeNumber");function V(n,t){let o=n?$(n):null;for(let i of Object.keys(t))if(!O(n,i)){let e=l(i),u=o?` for ${o.name}`:"";throw new a(`unknown option --${e}${u}`)}}r(V,"validateCommandOptions");export{a,k as b};
2
+ import{b as g,d as $,e as O,f as C}from"./chunk-OKPV6MBX.js";import{a as w}from"./chunk-3M53YXEI.js";import{a as r}from"./chunk-FTQLQJQV.js";var L=Symbol("openpondCliOptionValues"),a=class extends Error{static{r(this,"CliUsageError")}exitCode=2;constructor(t){super(t),this.name="CliUsageError"}},K=new Set(["maxOutputBytes","timeoutSec"]);function k(n){let t=[...n],o="",i={},e={},u=[];for(;t.length>0;){let s=t.shift();if(s==="--"){u.push(...t);break}if(s.startsWith("--")){let f=s.indexOf("="),c=f>=0?s.slice(2,f):s.slice(2),p=N(c),d=f>=0?s.slice(f+1):P(t,p,o);h(i,e,p,d,o)}else _(s)?y(s,t,i,e):o?u.push(s):o=s}return Object.defineProperty(i,L,{value:e,enumerable:!1,configurable:!1,writable:!1}),V(o,i),{command:o,options:i,rest:u}}r(k,"parseArgs");function N(n){return n.replace(/-([a-z])/g,(t,o)=>o.toUpperCase())}r(N,"normalizeCliOptionKey");function _(n){return/^-[^-].*/.test(n)&&!S(n)}r(_,"isShortOptionToken");function y(n,t,o,i){let e=n.slice(1);if(!e)return;let u=e.indexOf("="),s=u>=0?e.slice(0,u):e,f=u>=0?e.slice(u+1):null;if(s.length!==1){for(let d of s){let m=g[d];if(!m)throw new a(`unknown short option -${d}`);if(C(m)!=="boolean")throw new a(`short option -${d} requires its own value`);h(o,i,m,"true")}return}let c=g[s];if(!c)throw new a(`unknown short option -${s}`);let p=f??P(t,c);h(o,i,c,p)}r(y,"parseShortOptionToken");function P(n,t,o){let i=I(t,o);if(i==="boolean")return n[0]&&x(n[0])?n.shift():"true";if(i){let e=n.shift();if(e===void 0||R(e)&&!S(e))throw e!==void 0&&n.unshift(e),new a(`${l(t)} must be ${b(i)}`);return e}return n[0]&&!n[0].startsWith("--")?n.shift():"true"}r(P,"readOptionValue");function h(n,t,o,i,e){T(o,i,e),n[o]=i,(t[o]??=[]).push(i)}r(h,"setParsedOption");function T(n,t,o){let i=I(n,o);if(i){if(i==="boolean"){if(!x(t))throw new a(`${l(n)} must be a boolean`);return}if(t.trim().length===0||t==="true")throw new a(`${l(n)} must be ${b(i)}`);if(i==="number"||i==="integer"){let e=Number(t);if(!Number.isFinite(e))throw new a(`${l(n)} must be ${b(i)}`);if(i==="integer"&&!Number.isInteger(e))throw new a(`${l(n)} must be an integer`);if(i==="integer"&&K.has(n)&&e<=0)throw new a(`${l(n)} must be a positive integer`);return}if(i==="json")try{w(t,l(n))}catch(e){throw new a(e instanceof Error?e.message:String(e))}}}r(T,"validateParsedOptionValue");function I(n,t){return t?O(t,n):C(n)}r(I,"typedOptionKind");function l(n){return n.replace(/[A-Z]/g,t=>`-${t.toLowerCase()}`)}r(l,"cliOptionLabel");function E(n){return n==="json"?"JSON value":n}r(E,"optionKindLabel");function b(n){let t=E(n);return/^[aeiou]/i.test(t)?`an ${t}`:`a ${t}`}r(b,"optionKindPhrase");function x(n){return/^(true|false|1|0|yes|no)$/i.test(n)}r(x,"isBooleanLiteral");function R(n){return n.startsWith("-")&&n!=="-"}r(R,"isOptionLike");function S(n){return/^-\d+(?:\.\d+)?$/.test(n)}r(S,"isNegativeNumber");function V(n,t){let o=n?$(n):null;for(let i of Object.keys(t))if(!O(n,i)){let e=l(i),u=o?` for ${o.name}`:"";throw new a(`unknown option --${e}${u}`)}}r(V,"validateCommandOptions");export{a,k as b};
@@ -1,5 +1,5 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{A as He,C as K,D as J,E as O,G as Me,N as je,O as z,P as L,S as ae,U as Fe,W as re,X as E,Y as _e,Z as G,_ as C,a as Q,b as me,c as Z,h as se,i as Re,j as Se,k as xe,l as De,p as Pe,r as Ee,s as q,t as B,y as Ae,z as Ie}from"./chunk-KU4TPDPH.js";import{d as ye}from"./chunk-I6VMRQF4.js";import{ha as we,ja as be}from"./chunk-D6L6UNUQ.js";import{L as H,M as te,N as _,Q as Te,o as ve}from"./chunk-4PUOWSDE.js";import{ga as ee,v as ue}from"./chunk-ZY32SZ2P.js";import{i as Y,l as F,m as W,n as i}from"./chunk-RCT3O3HQ.js";import{A as x}from"./chunk-X2J2P5ZT.js";import{a as f}from"./chunk-FTQLQJQV.js";var Xe=new Set(["taskset.json","capabilities.json","data/tasks.jsonl","tasks/tasks.jsonl","graders/graders.json","fixtures/grader-fixtures.json","metrics/policy.json","assets/manifest.json","environment/contract.json","environment/taskset.ts","rubrics/preference-review.md","comparisons/policy.json"]);function oe(t){return Xe.has(B.parse(t))}f(oe,"isManagedTasksetDraftFilePath");function Be(t){let e=z(t.source),s=z(t.edited),o=t.preparation;if(o.authoringGraph!=="bound"||!e.modelResources||e.learningResources||s.modelResources||s.learningResources)throw new Error("Bound task editing requires its source Reward and an ordinary edited workspace.");if(e.contentHash!==o.sourcePackageHash||!te(H(e.taskset),o.sourceTasksetRef))throw new Error("Bound draft differs from its retained source package.");let n=f(k=>k.taskset.graders.map(S=>S.kind==="custom_verifier"?{...S,exportName:S.exportName??"verify"}:S),"normalizedGraders");if(i(n(e))!==i(n(s)))throw new Error("Edit the saved Reward in Rewards before changing this Taskset's graders.");let c=e.modelResources,v=new Map(c.assets.map(k=>[k.id,k])),a=J(s),h=J(e),p=f(k=>{let{id:S,revision:fe,contentHash:le,metadata:pe,...Je}=k,{javascriptEnvironment:nt,...ge}=pe;return{...Je,metadata:{...ge,resources:ge.resources??[]}}},"environmentContent"),m=f(k=>{if(!k)return null;let{id:S,revision:fe,contentHash:le,...pe}=k.execution.javascript;return pe},"javascriptContent"),y=i(p(e.environment))===i(p(s.environment))&&i(m(h))===i(m(a)),D=y?e.environment:s.environment,u=y?h:a,b=new Set([...c.assets.map(k=>k.id),...s.taskset.tasks.flatMap(k=>k.privilegedContextRef?[k.privilegedContextRef]:[]),...[s.environment.actionSchemaRef,s.environment.observationSchemaRef,s.environment.stateSchemaRef].flatMap(k=>k?[k.id]:[]),...a?.assets.map(k=>k.id)??[]]),M=new Set([...b,...s.taskset.tasks.flatMap(k=>[...k.artifactRefs.map(S=>S.id),...(k.requiredOutputs??[]).flatMap(S=>S.schemaRef?[S.schemaRef.id]:[])])]),A=Ye(e,s,M);for(let k of b){let S=A.find(le=>le.asset.id===k);if(!S)throw new Error(`Bound Taskset asset is missing: ${k}.`);let fe=new TextDecoder("utf-8",{fatal:!0}).decode(K(S));v.set(k,Te.parse(_({schemaVersion:"openpond.learningTextAsset.v1",id:k,revision:1,asset:S.asset,text:fe})))}let R=je(s),{contentHash:$,...T}=c.taskDefinition,{policy:V,environment:ie,environmentRelease:N,tools:r,capabilities:d,verifierSetRelease:g}=s.taskset,l=ve.parse(_({...T,instructions:R,execution:{policy:V,environment:ie,environmentRelease:N,tools:r,capabilities:d,verifierSetRelease:g}})),{contentHash:w,...P}=s.taskset,j=ee.parse(_({...P,tasks:s.taskset.tasks.map(k=>c.instructionMode==="per_task"?k:{...k,policyVisibleContext:{...k.policyVisibleContext,instructions:R}})})),I=De({owner:o.lineage.owner,source:{...c,taskset:e.taskset,executionResources:{environment:e.environment,verifierSet:e.verifierSet}},rewardBinding:c.rewardBinding,rewards:c.rewards,assets:[...v.values()],edits:{taskset:j,taskDefinition:l,executionResources:{environment:D,verifierSet:s.verifierSet},...u?{execution:u.execution}:{}}}),U=Se.parse(I.taskset.metadata.modelTasksetDerivation);if(I.taskset.id!==o.tasksetId||I.taskset.revision!==o.tasksetRevision||i({...U,schemaVersion:o.lineage.schemaVersion})!==i(o.lineage))throw new Error("Bound draft differs from its retained ownership lineage.");let{taskset:ce,executionResources:de,...Ke}=I;return L({schemaVersion:"openpond.tasksetPackage.v1",taskset:ce,...de,modelResources:Ke,files:A})}f(Be,"publishBoundModelTasksetDraftPackage");function Ye(t,e,s){let o=e.files,n=new Map(t.files.map(a=>[a.asset.id,{file:a,assetHash:i(a.asset)}])),c=f(a=>{let h=n.get(a.asset.id);return h!==void 0&&h.file.base64===a.base64&&h.assetHash===i(a.asset)},"isSourceFile"),v=t.files.filter(a=>oe(a.asset.path)).map(a=>{let h=`source-artifact-${i({packageHash:t.contentHash,assetId:a.asset.id})}`;return{original:a,asset:{...a.asset,id:h,path:`source-artifacts/${t.contentHash}/${i(a.asset.path)}/${a.asset.path.split("/").at(-1)}`}}});for(let{original:a,asset:h}of v){let p=v.filter(u=>i({...u.original.asset,id:a.asset.id})===i(a.asset)),y=e.files.find(u=>u.asset.id===h.id)??p.flatMap(u=>e.files.filter(b=>i(b.asset)===i(u.asset)))[0];if(!y||y.base64!==a.base64||!p.some(u=>i(u.asset)===i(y.asset)))throw new Error(`Retained Taskset source artifact differs from its original bytes: ${a.asset.id}.`);let D=o.filter(u=>u.asset.path===a.asset.path||u.asset.id===a.asset.id);if(D.some(u=>u.asset.path!==a.asset.path||u.asset.id!==a.asset.id&&u.asset.id!==`taskset-file-${i(a.asset.path)}`&&!c(u)))throw new Error(`Retained Taskset source artifact conflicts with an authored file: ${a.asset.id}.`);o=[...o.filter(u=>u.asset.id!==h.id&&u.asset.id!==a.asset.id&&(!D.includes(u)||c(u))),a]}for(let a of t.files.filter(h=>!o.some(p=>p.asset.id===h.asset.id))){if(a.asset.path==="environment/execution.json"){let m=se.safeParse(JSON.parse(new TextDecoder("utf-8",{fatal:!0}).decode(K(a))));if(m.success&&i(O(m.data))===i(a))continue}let h=o.filter(m=>m.asset.path===a.asset.path),p=f(m=>i({...m.asset,id:a.asset.id})===i(a.asset)&&m.base64===a.base64,"sameEnvelope");if(s.has(a.asset.id)||!h.length||h.some(m=>!p(m)))throw new Error(`Retained Taskset source alias differs from its original bytes: ${a.asset.id}.`);o=[...o,a]}return o}f(Ye,"retainSourceFileIdentities");function Mt(t){let e=Ee.parse(t.request),s=Pe.parse(t.owner),o=z(t.source);if(o.learningResources)throw new Error("Reviewed Tasksets require their reviewed authoring workflow.");if(o.contentHash!==e.sourcePackageHash)throw new Error("Taskset draft source package changed.");if(o.modelResources){let h=xe({owner:s,source:{...o.modelResources,taskset:o.taskset,executionResources:{environment:o.environment,verifierSet:o.verifierSet}},rewardBinding:o.modelResources.rewardBinding,rewards:o.modelResources.rewards,assets:o.modelResources.assets}),p=h.taskset.metadata.modelTasksetDerivation;return q.parse({schemaVersion:"openpond.modelTasksetDraftPreparation.v1",draftId:`model-taskset-draft-${i({owner:s,operationId:e.operationId})}`,requestHash:i(e),sourcePackageHash:o.contentHash,sourceTasksetRef:H(o.taskset),tasksetId:h.taskset.id,tasksetRevision:h.taskset.revision,lineage:{...p,schemaVersion:"openpond.modelTasksetAuthoring.v1"},authoringGraph:"bound"})}let n=Ie(o.taskset),c=n&&i(n.owner)===i(s),v=c?n.root:H(o.taskset),a={schemaVersion:"openpond.modelTasksetAuthoring.v1",owner:s,root:v,parent:H(o.taskset)};return q.parse({schemaVersion:"openpond.modelTasksetDraftPreparation.v1",draftId:`model-taskset-draft-${i({owner:s,operationId:e.operationId})}`,requestHash:i(e),sourcePackageHash:o.contentHash,sourceTasksetRef:H(o.taskset),tasksetId:Ae(a),tasksetRevision:c?o.taskset.revision+1:1,lineage:a})}f(Mt,"prepareModelTasksetDraft");function Ce(t){let e=q.parse(t.preparation);if(!te(e.sourceTasksetRef,e.lineage.parent))throw new Error("Taskset draft preparation differs from its source lineage.");if(e.authoringGraph==="bound"){if(!t.source)throw new Error("Bound Taskset authoring requires its retained source package.");return Be({preparation:e,source:t.source,edited:t.edited})}let s=Qe(t.edited),{contentHash:o,...n}=s.verifierSet,c=be({...n,id:`${e.tasksetId}-verifiers`,revision:e.tasksetRevision,calibrationReceiptRefs:[],metadata:{sourceVerifierSet:H(s.verifierSet)}}),{contentHash:v,...a}=s.taskset,h=ee.parse(_({...a,id:e.tasksetId,revision:e.tasksetRevision,verifierSetRelease:{id:c.id,contentHash:c.contentHash},metadata:{modelTasksetAuthoring:e.lineage,...s.taskset.metadata.environmentResources===void 0?{}:{environmentResources:s.taskset.metadata.environmentResources},...s.taskset.metadata.ordinaryAuthoring===void 0?{}:{ordinaryAuthoring:s.taskset.metadata.ordinaryAuthoring}}})),p=J(s),m=p?[...s.files.filter(y=>y.asset.id!==Re(s.taskset)),O({...p.execution,verifierSet:c})]:s.files;return L({schemaVersion:"openpond.tasksetPackage.v1",taskset:h,environment:s.environment,verifierSet:c,files:m})}f(Ce,"publishModelTasksetDraftPackage");function Qe(t){let e=z(t);if(e.modelResources||e.learningResources)throw new Error("This Taskset requires its bound or reviewed authoring workflow.");return e}f(Qe,"requireOrdinaryPackage");function $e(t,e,s,o){if(t.environment.entrypoint!=="openpond.javascript-environment.v1")return{taskset:t,inventory:s,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 v=se.parse(JSON.parse(new TextDecoder("utf-8",{fatal:!0}).decode(c))),a=f(R=>{if(!R)return null;let $=s.find(T=>T.asset.id===R.id&&T.asset.path===R.path);if(!$)throw new Error(`Authored environment dependency is missing: ${R.id}.`);return $.asset},"repin"),{contentHash:h,...p}=v.javascript,m=ye.parse(_({...p,id:`javascript-${t.id}`,revision:t.revision,module:a(v.javascript.module)}));if(i(m.tools)!==i(t.environment.metadata.portableTools)||i(m.tools.map(R=>R.name))!==i(t.environment.toolNames))throw new Error("Authored environment tools differ from the Taskset's declared tools.");let y=we({schemaVersion:"openpond.environmentRelease.v1",id:`environment-${t.id}`,revision:t.revision,contract:Fe(t),actionSchemaRef:a(v.environment.actionSchemaRef),observationSchemaRef:a(v.environment.observationSchemaRef),stateSchemaRef:a(v.environment.stateSchemaRef),artifactCollection:v.environment.artifactCollection,adapterConformanceHashes:{},metadata:{javascriptEnvironment:H(m),resources:t.environment.resources??[]}}),D=E.parse({...t,environment:{...t.environment,metadata:{...t.environment.metadata,portableExecutionResources:{environment:y}}}}),u=ae({taskset:D,adapterId:o}),b=O({javascript:m,environment:y,verifierSet:u.verifierSetRelease}),M=[...s.filter(R=>R.sourcePath!==n),{asset:b.asset,sourcePath:n}],A=E.parse({...D,metadata:{...D.metadata,portableFileInventory:M}});return{taskset:E.parse({...A,contentHash:G(A)}),inventory:M,generatedFiles:[{path:n,role:"environment",content:new TextDecoder().decode(K(b))}]}}f($e,"prepareAuthoredToolEnvironment");var ne=x.array(x.object({asset:Y,sourcePath:x.string().min(1)}).strict()).max(1e4),Ze=new Set(["taskset.json","capabilities.json","data/tasks.jsonl","graders/graders.json","fixtures/grader-fixtures.json","environment/taskset.ts"]);function We(t){return Ze.has(t)}f(We,"isGeneratedTasksetPublicationFilePath");function Ve(t,e,s,o=He){let n=E.parse(t);for(let r of n.tasks)for(let d of r.requiredOutputs??[])if(Q(d.metadata)&&d.submissionMode!=="structured_json")throw new Error("Sampling schema requires a structured output.");if(n.metadata.taskDefinition!==void 0||n.metadata.rewardBinding!==void 0){for(let r of n.tasks)for(let d of re(r).requiredOutputs??[]){let g=Q(d.metadata);if(!g)continue;let l=re(r).artifactRefs.find(U=>U.id===g.schemaRef.id);if(!l||i(l)!==i(g.schemaRef)||!d.schemaRef)throw new Error("Sampling schema must match an ordinary declared policy artifact.");let w=f((U,ce)=>r.assets?.find(de=>de.id===U)?.artifactRef??ce,"sourcePath"),P=e.get(w(d.schemaRef.id,d.schemaRef.path)),j=e.get(w(l.id,l.path));if(!P||!j)throw new Error("Sampling schema source bytes are missing.");let I=Z(P,d.schemaRef.contentHash);me(I,g,j)}return{taskset:n,generatedFiles:[]}}let c=new Map,v=0;for(let[r,d]of e){if(B.parse(r),v+=d.byteLength,c.size>=1e4||v>o*3/4)throw new Error("Taskset source exceeds the package byte limit.");c.set(r,d.slice())}let a=n.metrics?.customAggregator,h=a?c.get(a.module):void 0;if(a&&!h)throw new Error("Declared Taskset metric module is missing.");let p=a&&h?{...n.metrics,customAggregator:{...a,contentHash:W(h)}}:n.metrics,m=new Map,y=new Set,D=[],u=f((r,d,g,l)=>{let w=c.get(d);if(!w)throw new Error(`Declared Taskset file is missing: ${d}.`);return{id:r,path:d,contentHash:W(w),sizeBytes:w.byteLength,mediaType:g,visibility:l}},"ref"),b=f((r,d=r.path)=>{let g=m.get(r.id);if(g&&i(g)!==i({asset:r,sourcePath:d}))throw new Error(`Conflicting Taskset file identity: ${r.id}.`);let l=c.get(d);if(!l||l.length!==r.sizeBytes||W(l)!==r.contentHash)throw new Error(`Taskset file differs from its declared bytes: ${r.id}.`);m.set(r.id,{asset:r,sourcePath:d}),y.add(d)},"add");for(let r of n.tasks){let d={};for(let l of r.requiredOutputs??[])if(l.submissionMode==="structured_json"){if(!l.schemaRef||l.mediaType!=="application/json")throw new Error("Structured outputs require a JSON schemaRef and application/json.");let w=r.metadata.portableTaskRecord?.requiredOutputs?.find(I=>I.path===l.path)?.schemaRef,P=w?.id===l.schemaRef?w.path:l.schemaRef,j=u(l.schemaRef,P,"application/schema+json","policy");if(w&&w.id===l.schemaRef&&w.visibility!=="policy")throw new Error("Structured output schema must be policy-visible.");Z(c.get(P),j.contentHash),d[l.schemaRef]=j}Object.keys(d).length&&(r.metadata={...r.metadata,outputSchemaRefs:d});let g=re(r);for(let l of g.artifactRefs)b(l,r.assets?.find(w=>w.id===l.id)?.artifactRef??l.path);for(let l of g.requiredOutputs??[])l.schemaRef&&b(l.schemaRef);for(let l of g.requiredOutputs??[]){let w=Q(l.metadata);if(!w)continue;let P=m.get(w.schemaRef.id);if(!P||i(P.asset)!==i(w.schemaRef)||!g.artifactRefs.some(I=>I.id===w.schemaRef.id)||!l.schemaRef)throw new Error("Sampling schema must match an ordinary declared policy artifact.");let j=Z(c.get(m.get(l.schemaRef.id).sourcePath),l.schemaRef.contentHash);me(j,w,c.get(P.sourcePath))}}for(let r of n.environment.resources??[])b(u(r.id,r.path,r.mediaType??"application/octet-stream",r.visibility==="policy_visible"?"policy":"host_private"));let M=n.graders.map(r=>{if(r.kind==="custom_verifier"){let d=u(`verifier-${r.id}`,r.module,"application/javascript","host_private"),g=Y.safeParse(r.metadata.portableVerifierRef);return g.success&&g.data.contentHash===d.contentHash&&g.data.sizeBytes===d.sizeBytes&&(d=g.data),b(d,r.module),{...r,metadata:{...r.metadata,portableVerifierRef:d}}}if(r.kind==="human"||r.kind==="model_judge"){let d=new TextEncoder().encode(r.rubric),g=`graders/rubric-${W(d)}.md`;c.set(g,d);let l=u(`rubric-${r.id}`,g,"text/markdown","verifier"),w=Y.safeParse(r.metadata.portableRubricRef);if(w.success&&w.data.contentHash===l.contentHash&&w.data.sizeBytes===l.sizeBytes){if(w.data.visibility==="policy")throw new Error("A grader rubric cannot become policy-visible.");l=w.data}return b(l,g),D.push({path:g,role:"verifier",content:r.rubric}),{...r,metadata:{...r.metadata,portableRubricRef:l}}}return r});a&&![...m.values()].some(r=>r.asset.path===a.module&&r.sourcePath===a.module&&r.asset.visibility!=="policy")&&b(u(`metric-${i(a.module)}`,a.module,"application/javascript","host_private"));let A=ne.parse(n.metadata.portableFileInventory??[]);for(let r of[...c.keys()].sort())if(!y.has(r)){let d=A.find(g=>g.sourcePath===r&&!m.has(g.asset.id));b(d?{...u(d.asset.id,r,d.asset.mediaType,d.asset.visibility),path:d.asset.path}:u(`taskset-file-${i(r)}`,r,"application/octet-stream","host_private"),r)}let{importedPackageHash:R,derivedPortableMetadata:$,...T}=n.metadata,V={...n.environment.metadata};if(V.portableExecutionResources!==void 0){let r=x.object({environment:x.unknown(),verifierSet:x.unknown().optional()}).parse(V.portableExecutionResources);V.portableExecutionResources={environment:r.environment}}let ie=E.parse({...n,graders:M,metrics:p,environment:{...n.environment,metadata:V},metadata:{...T,...R===void 0?{}:{sourceImportedPackageHash:R},portableFileInventory:ne.parse([...m.values()].sort((r,d)=>r.asset.id.localeCompare(d.asset.id)))}}),N=$e(ie,c,[...m.values()],s);return{taskset:E.parse({...N.taskset,contentHash:G(N.taskset)}),generatedFiles:[...D,...N.generatedFiles]}}f(Ve,"prepareAuthoredTasksetSource");var X=class extends Error{static{f(this,"TasksetDraftPublishError")}issues;constructor(e){super(e.map(s=>s.message).join(`
2
+ import{A as He,C as K,D as J,E as O,G as Me,N as je,O as z,P as L,S as ae,U as Fe,W as re,X as E,Y as _e,Z as G,_ as C,a as Q,b as me,c as Z,h as se,i as Re,j as Se,k as xe,l as De,p as Pe,r as Ee,s as q,t as B,y as Ae,z as Ie}from"./chunk-6LAGMWJE.js";import{d as ye}from"./chunk-I6VMRQF4.js";import{ha as we,ja as be}from"./chunk-D6L6UNUQ.js";import{L as H,M as te,N as _,Q as Te,o as ve}from"./chunk-ZEOYNUHL.js";import{ga as ee,v as ue}from"./chunk-ZY32SZ2P.js";import{i as Y,l as F,m as W,n as i}from"./chunk-RCT3O3HQ.js";import{A as x}from"./chunk-X2J2P5ZT.js";import{a as f}from"./chunk-FTQLQJQV.js";var Xe=new Set(["taskset.json","capabilities.json","data/tasks.jsonl","tasks/tasks.jsonl","graders/graders.json","fixtures/grader-fixtures.json","metrics/policy.json","assets/manifest.json","environment/contract.json","environment/taskset.ts","rubrics/preference-review.md","comparisons/policy.json"]);function oe(t){return Xe.has(B.parse(t))}f(oe,"isManagedTasksetDraftFilePath");function Be(t){let e=z(t.source),s=z(t.edited),o=t.preparation;if(o.authoringGraph!=="bound"||!e.modelResources||e.learningResources||s.modelResources||s.learningResources)throw new Error("Bound task editing requires its source Reward and an ordinary edited workspace.");if(e.contentHash!==o.sourcePackageHash||!te(H(e.taskset),o.sourceTasksetRef))throw new Error("Bound draft differs from its retained source package.");let n=f(k=>k.taskset.graders.map(S=>S.kind==="custom_verifier"?{...S,exportName:S.exportName??"verify"}:S),"normalizedGraders");if(i(n(e))!==i(n(s)))throw new Error("Edit the saved Reward in Rewards before changing this Taskset's graders.");let c=e.modelResources,v=new Map(c.assets.map(k=>[k.id,k])),a=J(s),h=J(e),p=f(k=>{let{id:S,revision:fe,contentHash:le,metadata:pe,...Je}=k,{javascriptEnvironment:nt,...ge}=pe;return{...Je,metadata:{...ge,resources:ge.resources??[]}}},"environmentContent"),m=f(k=>{if(!k)return null;let{id:S,revision:fe,contentHash:le,...pe}=k.execution.javascript;return pe},"javascriptContent"),y=i(p(e.environment))===i(p(s.environment))&&i(m(h))===i(m(a)),D=y?e.environment:s.environment,u=y?h:a,b=new Set([...c.assets.map(k=>k.id),...s.taskset.tasks.flatMap(k=>k.privilegedContextRef?[k.privilegedContextRef]:[]),...[s.environment.actionSchemaRef,s.environment.observationSchemaRef,s.environment.stateSchemaRef].flatMap(k=>k?[k.id]:[]),...a?.assets.map(k=>k.id)??[]]),M=new Set([...b,...s.taskset.tasks.flatMap(k=>[...k.artifactRefs.map(S=>S.id),...(k.requiredOutputs??[]).flatMap(S=>S.schemaRef?[S.schemaRef.id]:[])])]),A=Ye(e,s,M);for(let k of b){let S=A.find(le=>le.asset.id===k);if(!S)throw new Error(`Bound Taskset asset is missing: ${k}.`);let fe=new TextDecoder("utf-8",{fatal:!0}).decode(K(S));v.set(k,Te.parse(_({schemaVersion:"openpond.learningTextAsset.v1",id:k,revision:1,asset:S.asset,text:fe})))}let R=je(s),{contentHash:$,...T}=c.taskDefinition,{policy:V,environment:ie,environmentRelease:N,tools:r,capabilities:d,verifierSetRelease:g}=s.taskset,l=ve.parse(_({...T,instructions:R,execution:{policy:V,environment:ie,environmentRelease:N,tools:r,capabilities:d,verifierSetRelease:g}})),{contentHash:w,...P}=s.taskset,j=ee.parse(_({...P,tasks:s.taskset.tasks.map(k=>c.instructionMode==="per_task"?k:{...k,policyVisibleContext:{...k.policyVisibleContext,instructions:R}})})),I=De({owner:o.lineage.owner,source:{...c,taskset:e.taskset,executionResources:{environment:e.environment,verifierSet:e.verifierSet}},rewardBinding:c.rewardBinding,rewards:c.rewards,assets:[...v.values()],edits:{taskset:j,taskDefinition:l,executionResources:{environment:D,verifierSet:s.verifierSet},...u?{execution:u.execution}:{}}}),U=Se.parse(I.taskset.metadata.modelTasksetDerivation);if(I.taskset.id!==o.tasksetId||I.taskset.revision!==o.tasksetRevision||i({...U,schemaVersion:o.lineage.schemaVersion})!==i(o.lineage))throw new Error("Bound draft differs from its retained ownership lineage.");let{taskset:ce,executionResources:de,...Ke}=I;return L({schemaVersion:"openpond.tasksetPackage.v1",taskset:ce,...de,modelResources:Ke,files:A})}f(Be,"publishBoundModelTasksetDraftPackage");function Ye(t,e,s){let o=e.files,n=new Map(t.files.map(a=>[a.asset.id,{file:a,assetHash:i(a.asset)}])),c=f(a=>{let h=n.get(a.asset.id);return h!==void 0&&h.file.base64===a.base64&&h.assetHash===i(a.asset)},"isSourceFile"),v=t.files.filter(a=>oe(a.asset.path)).map(a=>{let h=`source-artifact-${i({packageHash:t.contentHash,assetId:a.asset.id})}`;return{original:a,asset:{...a.asset,id:h,path:`source-artifacts/${t.contentHash}/${i(a.asset.path)}/${a.asset.path.split("/").at(-1)}`}}});for(let{original:a,asset:h}of v){let p=v.filter(u=>i({...u.original.asset,id:a.asset.id})===i(a.asset)),y=e.files.find(u=>u.asset.id===h.id)??p.flatMap(u=>e.files.filter(b=>i(b.asset)===i(u.asset)))[0];if(!y||y.base64!==a.base64||!p.some(u=>i(u.asset)===i(y.asset)))throw new Error(`Retained Taskset source artifact differs from its original bytes: ${a.asset.id}.`);let D=o.filter(u=>u.asset.path===a.asset.path||u.asset.id===a.asset.id);if(D.some(u=>u.asset.path!==a.asset.path||u.asset.id!==a.asset.id&&u.asset.id!==`taskset-file-${i(a.asset.path)}`&&!c(u)))throw new Error(`Retained Taskset source artifact conflicts with an authored file: ${a.asset.id}.`);o=[...o.filter(u=>u.asset.id!==h.id&&u.asset.id!==a.asset.id&&(!D.includes(u)||c(u))),a]}for(let a of t.files.filter(h=>!o.some(p=>p.asset.id===h.asset.id))){if(a.asset.path==="environment/execution.json"){let m=se.safeParse(JSON.parse(new TextDecoder("utf-8",{fatal:!0}).decode(K(a))));if(m.success&&i(O(m.data))===i(a))continue}let h=o.filter(m=>m.asset.path===a.asset.path),p=f(m=>i({...m.asset,id:a.asset.id})===i(a.asset)&&m.base64===a.base64,"sameEnvelope");if(s.has(a.asset.id)||!h.length||h.some(m=>!p(m)))throw new Error(`Retained Taskset source alias differs from its original bytes: ${a.asset.id}.`);o=[...o,a]}return o}f(Ye,"retainSourceFileIdentities");function Mt(t){let e=Ee.parse(t.request),s=Pe.parse(t.owner),o=z(t.source);if(o.learningResources)throw new Error("Reviewed Tasksets require their reviewed authoring workflow.");if(o.contentHash!==e.sourcePackageHash)throw new Error("Taskset draft source package changed.");if(o.modelResources){let h=xe({owner:s,source:{...o.modelResources,taskset:o.taskset,executionResources:{environment:o.environment,verifierSet:o.verifierSet}},rewardBinding:o.modelResources.rewardBinding,rewards:o.modelResources.rewards,assets:o.modelResources.assets}),p=h.taskset.metadata.modelTasksetDerivation;return q.parse({schemaVersion:"openpond.modelTasksetDraftPreparation.v1",draftId:`model-taskset-draft-${i({owner:s,operationId:e.operationId})}`,requestHash:i(e),sourcePackageHash:o.contentHash,sourceTasksetRef:H(o.taskset),tasksetId:h.taskset.id,tasksetRevision:h.taskset.revision,lineage:{...p,schemaVersion:"openpond.modelTasksetAuthoring.v1"},authoringGraph:"bound"})}let n=Ie(o.taskset),c=n&&i(n.owner)===i(s),v=c?n.root:H(o.taskset),a={schemaVersion:"openpond.modelTasksetAuthoring.v1",owner:s,root:v,parent:H(o.taskset)};return q.parse({schemaVersion:"openpond.modelTasksetDraftPreparation.v1",draftId:`model-taskset-draft-${i({owner:s,operationId:e.operationId})}`,requestHash:i(e),sourcePackageHash:o.contentHash,sourceTasksetRef:H(o.taskset),tasksetId:Ae(a),tasksetRevision:c?o.taskset.revision+1:1,lineage:a})}f(Mt,"prepareModelTasksetDraft");function Ce(t){let e=q.parse(t.preparation);if(!te(e.sourceTasksetRef,e.lineage.parent))throw new Error("Taskset draft preparation differs from its source lineage.");if(e.authoringGraph==="bound"){if(!t.source)throw new Error("Bound Taskset authoring requires its retained source package.");return Be({preparation:e,source:t.source,edited:t.edited})}let s=Qe(t.edited),{contentHash:o,...n}=s.verifierSet,c=be({...n,id:`${e.tasksetId}-verifiers`,revision:e.tasksetRevision,calibrationReceiptRefs:[],metadata:{sourceVerifierSet:H(s.verifierSet)}}),{contentHash:v,...a}=s.taskset,h=ee.parse(_({...a,id:e.tasksetId,revision:e.tasksetRevision,verifierSetRelease:{id:c.id,contentHash:c.contentHash},metadata:{modelTasksetAuthoring:e.lineage,...s.taskset.metadata.environmentResources===void 0?{}:{environmentResources:s.taskset.metadata.environmentResources},...s.taskset.metadata.ordinaryAuthoring===void 0?{}:{ordinaryAuthoring:s.taskset.metadata.ordinaryAuthoring}}})),p=J(s),m=p?[...s.files.filter(y=>y.asset.id!==Re(s.taskset)),O({...p.execution,verifierSet:c})]:s.files;return L({schemaVersion:"openpond.tasksetPackage.v1",taskset:h,environment:s.environment,verifierSet:c,files:m})}f(Ce,"publishModelTasksetDraftPackage");function Qe(t){let e=z(t);if(e.modelResources||e.learningResources)throw new Error("This Taskset requires its bound or reviewed authoring workflow.");return e}f(Qe,"requireOrdinaryPackage");function $e(t,e,s,o){if(t.environment.entrypoint!=="openpond.javascript-environment.v1")return{taskset:t,inventory:s,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 v=se.parse(JSON.parse(new TextDecoder("utf-8",{fatal:!0}).decode(c))),a=f(R=>{if(!R)return null;let $=s.find(T=>T.asset.id===R.id&&T.asset.path===R.path);if(!$)throw new Error(`Authored environment dependency is missing: ${R.id}.`);return $.asset},"repin"),{contentHash:h,...p}=v.javascript,m=ye.parse(_({...p,id:`javascript-${t.id}`,revision:t.revision,module:a(v.javascript.module)}));if(i(m.tools)!==i(t.environment.metadata.portableTools)||i(m.tools.map(R=>R.name))!==i(t.environment.toolNames))throw new Error("Authored environment tools differ from the Taskset's declared tools.");let y=we({schemaVersion:"openpond.environmentRelease.v1",id:`environment-${t.id}`,revision:t.revision,contract:Fe(t),actionSchemaRef:a(v.environment.actionSchemaRef),observationSchemaRef:a(v.environment.observationSchemaRef),stateSchemaRef:a(v.environment.stateSchemaRef),artifactCollection:v.environment.artifactCollection,adapterConformanceHashes:{},metadata:{javascriptEnvironment:H(m),resources:t.environment.resources??[]}}),D=E.parse({...t,environment:{...t.environment,metadata:{...t.environment.metadata,portableExecutionResources:{environment:y}}}}),u=ae({taskset:D,adapterId:o}),b=O({javascript:m,environment:y,verifierSet:u.verifierSetRelease}),M=[...s.filter(R=>R.sourcePath!==n),{asset:b.asset,sourcePath:n}],A=E.parse({...D,metadata:{...D.metadata,portableFileInventory:M}});return{taskset:E.parse({...A,contentHash:G(A)}),inventory:M,generatedFiles:[{path:n,role:"environment",content:new TextDecoder().decode(K(b))}]}}f($e,"prepareAuthoredToolEnvironment");var ne=x.array(x.object({asset:Y,sourcePath:x.string().min(1)}).strict()).max(1e4),Ze=new Set(["taskset.json","capabilities.json","data/tasks.jsonl","graders/graders.json","fixtures/grader-fixtures.json","environment/taskset.ts"]);function We(t){return Ze.has(t)}f(We,"isGeneratedTasksetPublicationFilePath");function Ve(t,e,s,o=He){let n=E.parse(t);for(let r of n.tasks)for(let d of r.requiredOutputs??[])if(Q(d.metadata)&&d.submissionMode!=="structured_json")throw new Error("Sampling schema requires a structured output.");if(n.metadata.taskDefinition!==void 0||n.metadata.rewardBinding!==void 0){for(let r of n.tasks)for(let d of re(r).requiredOutputs??[]){let g=Q(d.metadata);if(!g)continue;let l=re(r).artifactRefs.find(U=>U.id===g.schemaRef.id);if(!l||i(l)!==i(g.schemaRef)||!d.schemaRef)throw new Error("Sampling schema must match an ordinary declared policy artifact.");let w=f((U,ce)=>r.assets?.find(de=>de.id===U)?.artifactRef??ce,"sourcePath"),P=e.get(w(d.schemaRef.id,d.schemaRef.path)),j=e.get(w(l.id,l.path));if(!P||!j)throw new Error("Sampling schema source bytes are missing.");let I=Z(P,d.schemaRef.contentHash);me(I,g,j)}return{taskset:n,generatedFiles:[]}}let c=new Map,v=0;for(let[r,d]of e){if(B.parse(r),v+=d.byteLength,c.size>=1e4||v>o*3/4)throw new Error("Taskset source exceeds the package byte limit.");c.set(r,d.slice())}let a=n.metrics?.customAggregator,h=a?c.get(a.module):void 0;if(a&&!h)throw new Error("Declared Taskset metric module is missing.");let p=a&&h?{...n.metrics,customAggregator:{...a,contentHash:W(h)}}:n.metrics,m=new Map,y=new Set,D=[],u=f((r,d,g,l)=>{let w=c.get(d);if(!w)throw new Error(`Declared Taskset file is missing: ${d}.`);return{id:r,path:d,contentHash:W(w),sizeBytes:w.byteLength,mediaType:g,visibility:l}},"ref"),b=f((r,d=r.path)=>{let g=m.get(r.id);if(g&&i(g)!==i({asset:r,sourcePath:d}))throw new Error(`Conflicting Taskset file identity: ${r.id}.`);let l=c.get(d);if(!l||l.length!==r.sizeBytes||W(l)!==r.contentHash)throw new Error(`Taskset file differs from its declared bytes: ${r.id}.`);m.set(r.id,{asset:r,sourcePath:d}),y.add(d)},"add");for(let r of n.tasks){let d={};for(let l of r.requiredOutputs??[])if(l.submissionMode==="structured_json"){if(!l.schemaRef||l.mediaType!=="application/json")throw new Error("Structured outputs require a JSON schemaRef and application/json.");let w=r.metadata.portableTaskRecord?.requiredOutputs?.find(I=>I.path===l.path)?.schemaRef,P=w?.id===l.schemaRef?w.path:l.schemaRef,j=u(l.schemaRef,P,"application/schema+json","policy");if(w&&w.id===l.schemaRef&&w.visibility!=="policy")throw new Error("Structured output schema must be policy-visible.");Z(c.get(P),j.contentHash),d[l.schemaRef]=j}Object.keys(d).length&&(r.metadata={...r.metadata,outputSchemaRefs:d});let g=re(r);for(let l of g.artifactRefs)b(l,r.assets?.find(w=>w.id===l.id)?.artifactRef??l.path);for(let l of g.requiredOutputs??[])l.schemaRef&&b(l.schemaRef);for(let l of g.requiredOutputs??[]){let w=Q(l.metadata);if(!w)continue;let P=m.get(w.schemaRef.id);if(!P||i(P.asset)!==i(w.schemaRef)||!g.artifactRefs.some(I=>I.id===w.schemaRef.id)||!l.schemaRef)throw new Error("Sampling schema must match an ordinary declared policy artifact.");let j=Z(c.get(m.get(l.schemaRef.id).sourcePath),l.schemaRef.contentHash);me(j,w,c.get(P.sourcePath))}}for(let r of n.environment.resources??[])b(u(r.id,r.path,r.mediaType??"application/octet-stream",r.visibility==="policy_visible"?"policy":"host_private"));let M=n.graders.map(r=>{if(r.kind==="custom_verifier"){let d=u(`verifier-${r.id}`,r.module,"application/javascript","host_private"),g=Y.safeParse(r.metadata.portableVerifierRef);return g.success&&g.data.contentHash===d.contentHash&&g.data.sizeBytes===d.sizeBytes&&(d=g.data),b(d,r.module),{...r,metadata:{...r.metadata,portableVerifierRef:d}}}if(r.kind==="human"||r.kind==="model_judge"){let d=new TextEncoder().encode(r.rubric),g=`graders/rubric-${W(d)}.md`;c.set(g,d);let l=u(`rubric-${r.id}`,g,"text/markdown","verifier"),w=Y.safeParse(r.metadata.portableRubricRef);if(w.success&&w.data.contentHash===l.contentHash&&w.data.sizeBytes===l.sizeBytes){if(w.data.visibility==="policy")throw new Error("A grader rubric cannot become policy-visible.");l=w.data}return b(l,g),D.push({path:g,role:"verifier",content:r.rubric}),{...r,metadata:{...r.metadata,portableRubricRef:l}}}return r});a&&![...m.values()].some(r=>r.asset.path===a.module&&r.sourcePath===a.module&&r.asset.visibility!=="policy")&&b(u(`metric-${i(a.module)}`,a.module,"application/javascript","host_private"));let A=ne.parse(n.metadata.portableFileInventory??[]);for(let r of[...c.keys()].sort())if(!y.has(r)){let d=A.find(g=>g.sourcePath===r&&!m.has(g.asset.id));b(d?{...u(d.asset.id,r,d.asset.mediaType,d.asset.visibility),path:d.asset.path}:u(`taskset-file-${i(r)}`,r,"application/octet-stream","host_private"),r)}let{importedPackageHash:R,derivedPortableMetadata:$,...T}=n.metadata,V={...n.environment.metadata};if(V.portableExecutionResources!==void 0){let r=x.object({environment:x.unknown(),verifierSet:x.unknown().optional()}).parse(V.portableExecutionResources);V.portableExecutionResources={environment:r.environment}}let ie=E.parse({...n,graders:M,metrics:p,environment:{...n.environment,metadata:V},metadata:{...T,...R===void 0?{}:{sourceImportedPackageHash:R},portableFileInventory:ne.parse([...m.values()].sort((r,d)=>r.asset.id.localeCompare(d.asset.id)))}}),N=$e(ie,c,[...m.values()],s);return{taskset:E.parse({...N.taskset,contentHash:G(N.taskset)}),generatedFiles:[...D,...N.generatedFiles]}}f(Ve,"prepareAuthoredTasksetSource");var X=class extends Error{static{f(this,"TasksetDraftPublishError")}issues;constructor(e){super(e.map(s=>s.message).join(`
3
3
  `)),this.name="TasksetDraftPublishError",this.issues=e}};function os(t){let e=t.now??new Date().toISOString(),s=t.id?.trim()||`taskset-draft-${globalThis.crypto.randomUUID()}`;return C.parse({schemaVersion:"openpond.tasksetDraft.v1",id:s,revision:1,profileId:t.profileId,modelScope:t.modelScope??null,name:t.name?.trim()??"",objective:"",purpose:"general",benchmark:null,preferenceComparison:null,status:"draft",sourceRefs:[],datasetArtifact:null,policy:{policyVisibleFields:["input"],privilegedFields:["expectedOutput"],hiddenGraderRefs:[],connectedAppScopes:[]},environment:{protocolVersion:"openpond.taskEnvironment.v1",kind:"chat",entrypoint:"openpond-chat-v1",stateful:!1,deterministicSeeds:!0,toolNames:[],lifecycle:["create","reset","step","grade","cleanup"],defaultTimeoutMs:12e4,networkPolicy:"none",resources:[],metadata:{}},output:{mode:"text",jsonSchema:null,renderer:null},capabilities:{schemaVersion:"openpond.tasksetCapabilities.v1",taskKind:"chat",supportedSignals:["demonstration","preference","correction","feedback","reward","label"],compatibleMethods:["none"],rewardKinds:["none"],requiresTools:!1,requiresState:!1,requiresPrivilegedGrading:!0,environmentPlacements:["local","remote","colocated"],exportable:!0,portabilityBlockers:[]},metrics:{schemaVersion:"openpond.tasksetMetricPolicy.v1",primaryMetric:"score",aggregation:"mean_score",missingReward:"zero",customAggregator:null},review:{enabled:!1,candidateCount:2,minimumSamples:100,allowTies:!0,allowRejectAll:!0,rubric:"",criteria:[]},tasks:[],graders:[],graderFixtures:[],learningSignals:{demonstrations:[],preferences:[],corrections:[],feedback:[],rewards:[],labels:[]},publishedTasksetRef:null,createdAt:e,updatedAt:e,metadata:{}})}f(os,"createTasksetDraft");function qe(t){let e=[];t.name.trim()||e.push({code:"name_missing",message:"Name is required.",path:"name"}),t.objective.trim()||e.push({code:"objective_missing",message:"Objective is required.",path:"objective"}),!t.datasetArtifact&&t.tasks.length===0&&e.push({code:"tasks_missing",message:"Add at least one task or Dataset artifact.",path:"tasks"});let s=new Set(t.sourceRefs.map(o=>o.id));for(let o of t.tasks)for(let n of o.sourceRefs)s.has(n)||e.push({code:"task_source_missing",message:`Task ${o.id} references missing source ${n}.`,path:`tasks.${o.id}.sourceRefs`});return e}f(qe,"draftPublishIssues");function Oe(t){let e=C.parse(t.draft),s=t.now??new Date().toISOString(),o=qe(e);if(o.length)throw new X(o);let n=e.modelScope?.source;if(n&&t.tasksetId&&t.tasksetId!==n.tasksetId)throw new Error("Taskset draft publication differs from its prepared identity.");let c=n?.tasksetId||t.tasksetId?.trim()||e.publishedTasksetRef?.id||e.id.replace(/-draft$/,""),v=n?.tasksetRevision??(e.publishedTasksetRef?.id===c?e.publishedTasksetRef.revision+1:1),a=e.sourceRefs.length?e.sourceRefs:[et(e,c,s)],h=a[0].id,p=e.tasks.map(T=>Me.parse({...T,sourceRefs:T.sourceRefs.length?T.sourceRefs:[h],metadata:{exampleOrigin:"expert_authored",...T.metadata}})),m=e.capabilities.compatibleMethods.find(T=>T!=="none"&&T!=="retrieval")??null,y=tt(e),D=e.graders.filter(T=>T.rewardEligible&&T.weight>0&&T.kind!=="human"),u=m===null&&y==="verifiable_reward"&&D.length>0,b=m??(u?"grpo":null),M=E.parse({schemaVersion:"openpond.taskset.v1",id:c,revision:v,profileId:e.profileId,profileRelease:null,createImproveRunId:null,name:e.name,objective:e.objective,purpose:e.purpose,benchmark:e.benchmark,preferenceComparison:e.preferenceComparison,status:"needs_review",sourceRefs:a,datasetArtifact:e.datasetArtifact??null,policy:e.policy,environment:e.environment,capabilities:u?{...e.capabilities,compatibleMethods:["grpo"],rewardKinds:[...new Set(D.map(T=>T.kind==="model_judge"?"model_judge":"deterministic"))]}:e.capabilities,metrics:e.metrics,tasks:p,graders:e.graders,graderFixtures:e.graderFixtures,learningSignals:e.learningSignals,authoringProvenance:{schemaVersion:"openpond.taskAuthoringProvenance.v1",model:null,modelConfig:{},skillHash:i("openpond-taskset-draft-authoring-v1"),promptTemplateVersion:"taskset-draft-v1",buildIntent:y,buildSpecification:null,evidenceHashes:a.map(T=>T.sourceHash),tasksetSdkVersion:"draft-v1",sourceCommit:null,repairHistory:[],createdAt:s},readiness:null,contentHash:"00000000",createdAt:v===1?e.createdAt:s,updatedAt:s,metadata:{...e.metadata,...n?{modelTasksetAuthoring:n.lineage}:{},tasksetReviewPolicy:e.review,tasksetOutputContract:e.output,...t.sourcePackageHash?{sourcePackageHash:t.sourcePackageHash}:{},...b?{trainingMethod:b}:{},diagnosis:{schemaVersion:"openpond.capabilityDiagnosis.v1",summary:e.objective,stableBehavior:[e.objective],changingKnowledge:[],requiredContext:[],requiredTools:e.environment.toolNames,intervention:b==="dpo"?"preference":b==="grpo"||b==="ppo"?"grpo_rft":b==="sft"?"sft":"no_training",trainingEligible:b!==null,rationale:b?[`The author selected ${b.toUpperCase()} compatibility.`]:["The Taskset is currently configured for evaluation only."],confidence:1}}}),A=E.parse({...M,contentHash:G(M)}),$=_e(A,{purpose:"publication"}).issues.filter(T=>T.severity==="error");if($.length)throw new X($.map(T=>({code:T.code,message:T.message,path:T.path})));return A}f(Oe,"publishTasksetDraft");function et(t,e,s){let o=i({draftId:t.id,draftRevision:t.revision,tasks:t.tasks});return{schemaVersion:"openpond.generatedDatasetSource.v1",kind:"generated",id:`source-${e}`,profileId:t.profileId,title:`${t.name} manual authoring`,sourceHash:o,occurredAt:s,licensingStatus:"approved",secretScanStatus:"passed",piiScanStatus:"passed",generatorId:"openpond-taskset-draft",generatorVersion:"1",seed:0,generatorHash:o,metadata:{draftId:t.id,draftRevision:t.revision}}}f(et,"generatedDraftSource");function tt(t){return t.metadata.buildIntent==="discovery"||!t.graders.length&&!t.learningSignals.preferences.length&&!t.learningSignals.rewards.length&&!t.learningSignals.labels.length?"discovery":t.learningSignals.preferences.length?"preferences":t.learningSignals.rewards.length?"verifiable_reward":t.learningSignals.labels.length?"rubric":!t.capabilities.compatibleMethods.some(e=>e!=="none"&&e!=="retrieval")&&t.graders.some(e=>e.rewardEligible&&e.weight>0&&e.kind!=="human")?"verifiable_reward":"demonstrations"}f(tt,"buildIntentForDraft");function Ts(t){let e=[];t.output.renderer&&e.push({relativePath:t.output.renderer.module,source:`export async function ${t.output.renderer.exportName}(output: unknown) {
4
4
  // Return artifact paths or bytes derived from the model's structured output.
5
5
  return output;