openpond 0.2.61 → 0.2.63

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 (549) hide show
  1. package/README.md +2 -0
  2. package/dist/app-server.d.ts +4713 -477
  3. package/dist/app-server.js +1 -1
  4. package/dist/chunks/{acp-FUAWCKBH.js → acp-H3MJCPHX.js} +1 -1
  5. package/dist/chunks/{acp-agent-XBSJ27KI.js → acp-agent-DWA7272M.js} +1 -1
  6. package/dist/chunks/actions-command-IIYOO4LL.js +2 -0
  7. package/dist/chunks/{app-layer-4BFMOMKM.js → app-layer-K7H2WJ56.js} +1 -1
  8. package/dist/chunks/app-server-connected-apps-RM5E2VWF.js +2 -0
  9. package/dist/chunks/{app-server-evaluations-HAAYVEXB.js → app-server-evaluations-XGMGS67X.js} +1 -1
  10. package/dist/chunks/app-server-harness-services-BHD6S5II.js +2 -0
  11. package/dist/chunks/app-server-runtime-LFIL6F7D.js +2 -0
  12. package/dist/chunks/apps-QKAHJGQ4.js +2 -0
  13. package/dist/chunks/chunk-25XXZS3E.js +2 -0
  14. package/dist/chunks/chunk-27JGS3KB.js +12 -0
  15. package/dist/chunks/{chunk-KK626T3Z.js → chunk-2EPR4HLF.js} +1 -1
  16. package/dist/chunks/{chunk-HN2ZK6EV.js → chunk-2HAWOMZK.js} +1 -1
  17. package/dist/chunks/chunk-2LJCJOJ7.js +2 -0
  18. package/dist/chunks/{chunk-BDCTN4PU.js → chunk-2V4LPUBH.js} +1 -1
  19. package/dist/chunks/{chunk-CN5OXQ7A.js → chunk-3YXYBYWK.js} +1 -1
  20. package/dist/chunks/{chunk-LHENAWLH.js → chunk-42V4NV2F.js} +1 -1
  21. package/dist/chunks/{chunk-DW3GJRY3.js → chunk-4FNCBA3Y.js} +1 -1
  22. package/dist/chunks/{chunk-TXBIZDXG.js → chunk-4L6DU6Z2.js} +1 -1
  23. package/dist/chunks/{chunk-BFKYRQMA.js → chunk-4N4EH3RJ.js} +1 -1
  24. package/dist/chunks/{chunk-MLTKB5G3.js → chunk-4SZ3HKHU.js} +1 -1
  25. package/dist/chunks/{chunk-SCCYSPQ5.js → chunk-4ZBOYWQ3.js} +1 -1
  26. package/dist/chunks/chunk-5EP2DZLJ.js +2 -0
  27. package/dist/chunks/chunk-5FU5RLML.js +2 -0
  28. package/dist/chunks/{chunk-TH6Y4K5Z.js → chunk-5MHYGMJG.js} +1 -1
  29. package/dist/chunks/chunk-6EBCS57F.js +2 -0
  30. package/dist/chunks/chunk-6RS4NAOY.js +2 -0
  31. package/dist/chunks/chunk-6XSSM4WT.js +3 -0
  32. package/dist/chunks/{chunk-NVHZRKXB.js → chunk-7HRLWPPZ.js} +1 -1
  33. package/dist/chunks/chunk-7O6Z3VOZ.js +2 -0
  34. package/dist/chunks/{chunk-BQUWZRWU.js → chunk-7WYL2IDD.js} +1 -1
  35. package/dist/chunks/chunk-7YLXGILH.js +2 -0
  36. package/dist/chunks/chunk-7ZLXFKRI.js +2 -0
  37. package/dist/chunks/{chunk-M6JRS5PA.js → chunk-ABF3W2MO.js} +1 -1
  38. package/dist/chunks/{chunk-TTN63EAM.js → chunk-AH26AQN7.js} +1 -1
  39. package/dist/chunks/chunk-AHOBCBVZ.js +2 -0
  40. package/dist/chunks/chunk-AZ7BL5FL.js +2 -0
  41. package/dist/chunks/{chunk-3DVWJCOA.js → chunk-B4RKHHF7.js} +1 -1
  42. package/dist/chunks/chunk-B5R53U74.js +2 -0
  43. package/dist/chunks/chunk-BKEDG3A4.js +22 -0
  44. package/dist/chunks/{chunk-CO3OJFPU.js → chunk-BPZOABMC.js} +1 -1
  45. package/dist/chunks/{chunk-5VPU7OS7.js → chunk-BSPFY3Y5.js} +1 -1
  46. package/dist/chunks/{chunk-U4HZD2GM.js → chunk-BU27SLZP.js} +2 -2
  47. package/dist/chunks/chunk-C2AXMKK4.js +2 -0
  48. package/dist/chunks/{chunk-SIV5P6JO.js → chunk-C2LAEGOW.js} +2 -2
  49. package/dist/chunks/{chunk-ORLJJGZZ.js → chunk-CZ5R4JXZ.js} +1 -1
  50. package/dist/chunks/{chunk-D4JZALZ4.js → chunk-DABBHWSF.js} +1 -1
  51. package/dist/chunks/{chunk-ROE24PN5.js → chunk-DLANLLKH.js} +1 -1
  52. package/dist/chunks/{chunk-57RY3LSR.js → chunk-DQI5TE6A.js} +2 -2
  53. package/dist/chunks/chunk-DTTFUANI.js +12 -0
  54. package/dist/chunks/{chunk-VBW2X42G.js → chunk-DUL6DXOI.js} +1 -1
  55. package/dist/chunks/{chunk-OQUKSRU3.js → chunk-ELX7VRSU.js} +1 -1
  56. package/dist/chunks/chunk-ERL2M773.js +3 -0
  57. package/dist/chunks/chunk-ERT32RZA.js +86 -0
  58. package/dist/chunks/{chunk-RPOD6I64.js → chunk-EZRUWIP6.js} +1 -1
  59. package/dist/chunks/{chunk-MCIIGQT7.js → chunk-F6UQ6PPK.js} +1 -1
  60. package/dist/chunks/chunk-F7QTIHXX.js +2 -0
  61. package/dist/chunks/chunk-FAKDGLZQ.js +8 -0
  62. package/dist/chunks/{chunk-BWY4D3BN.js → chunk-FVRII5XO.js} +1 -1
  63. package/dist/chunks/{chunk-GEXKTGLY.js → chunk-FYYYECHE.js} +50 -48
  64. package/dist/chunks/chunk-G32BO6M5.js +4 -0
  65. package/dist/chunks/{chunk-TSAW2QVU.js → chunk-G6OR5NB6.js} +1 -1
  66. package/dist/chunks/{chunk-65SM7Y2G.js → chunk-GGJUWIGR.js} +1 -1
  67. package/dist/chunks/{chunk-Q66LWQGF.js → chunk-GPL2Z65R.js} +1 -1
  68. package/dist/chunks/{chunk-LNRFRAV5.js → chunk-GS6ZUSIN.js} +2 -2
  69. package/dist/chunks/{chunk-OFVUN4KI.js → chunk-GVARQXYI.js} +1 -1
  70. package/dist/chunks/chunk-GXCUH2VV.js +17 -0
  71. package/dist/chunks/{chunk-IUGK6BBY.js → chunk-GXZCMO6S.js} +1 -1
  72. package/dist/chunks/{chunk-CLFYRN46.js → chunk-H6C4MAUN.js} +1 -1
  73. package/dist/chunks/{chunk-SGK4GR44.js → chunk-HFJUXKT5.js} +1 -1
  74. package/dist/chunks/{chunk-I3W27VK4.js → chunk-HUCBKXTU.js} +1 -1
  75. package/dist/chunks/{chunk-P4XM7LUT.js → chunk-IHB5GTOJ.js} +2 -2
  76. package/dist/chunks/{chunk-U447MS3Y.js → chunk-IWWXIUAQ.js} +1 -1
  77. package/dist/chunks/chunk-J572ANHX.js +13 -0
  78. package/dist/chunks/{chunk-CGAL7IHZ.js → chunk-J7ZTPXRQ.js} +1 -1
  79. package/dist/chunks/chunk-JCLTFDVW.js +2 -0
  80. package/dist/chunks/{chunk-25RDE7DV.js → chunk-JEISPWWM.js} +1 -1
  81. package/dist/chunks/{chunk-ELYRVTTG.js → chunk-JORRZ4BB.js} +1 -1
  82. package/dist/chunks/{chunk-H2AUR7OT.js → chunk-JQRMDFF3.js} +1 -1
  83. package/dist/chunks/chunk-JSQRLLN6.js +2 -0
  84. package/dist/chunks/chunk-KCOTDUGW.js +2 -0
  85. package/dist/chunks/{chunk-NK4JKB7C.js → chunk-KHTAAVC2.js} +1 -1
  86. package/dist/chunks/{chunk-CM5USMXN.js → chunk-KOKX7PBS.js} +1 -1
  87. package/dist/chunks/{chunk-3ZWLRBYZ.js → chunk-KUPJNBWG.js} +1 -1
  88. package/dist/chunks/{chunk-MHYI7ATG.js → chunk-LK2K3SPM.js} +2 -2
  89. package/dist/chunks/{chunk-FJ3HMHT6.js → chunk-LKKMLBOH.js} +1 -1
  90. package/dist/chunks/{chunk-BNZTJPK7.js → chunk-LSZJ5M3X.js} +1 -1
  91. package/dist/chunks/chunk-M3FLEZ4E.js +4 -0
  92. package/dist/chunks/{chunk-4LZLO4OW.js → chunk-M3SCON53.js} +1 -1
  93. package/dist/chunks/{chunk-VPDG2V2R.js → chunk-MEGKXGW3.js} +1 -1
  94. package/dist/chunks/{chunk-TYHCBVQT.js → chunk-MILEWROZ.js} +1 -1
  95. package/dist/chunks/chunk-MPNJ2BB4.js +2 -0
  96. package/dist/chunks/{chunk-VFLSBDNZ.js → chunk-N33D7KCW.js} +1 -1
  97. package/dist/chunks/chunk-N42HT64M.js +2 -0
  98. package/dist/chunks/{chunk-L3GA2CQI.js → chunk-N4VHLJBZ.js} +1 -1
  99. package/dist/chunks/chunk-NEJLJ2XY.js +2 -0
  100. package/dist/chunks/chunk-NG2L6D7G.js +2 -0
  101. package/dist/chunks/{chunk-7EAWLYYB.js → chunk-NLYZ5K7U.js} +2 -2
  102. package/dist/chunks/{chunk-B47JMAVW.js → chunk-NT7N6KLE.js} +1 -1
  103. package/dist/chunks/{chunk-6MWT6BVU.js → chunk-NWQL6FNF.js} +1 -1
  104. package/dist/chunks/{chunk-PAZDQRYU.js → chunk-NZTCH6K5.js} +1 -1
  105. package/dist/chunks/{chunk-CQF6QZEL.js → chunk-OG33QAG6.js} +1 -1
  106. package/dist/chunks/chunk-OTUBJV6C.js +6 -0
  107. package/dist/chunks/{chunk-TMMFF6DO.js → chunk-PBTXLQAU.js} +1 -1
  108. package/dist/chunks/chunk-Q34IF4PW.js +2 -0
  109. package/dist/chunks/{chunk-I3X6M6ZO.js → chunk-QJ6KUVAR.js} +1 -1
  110. package/dist/chunks/{chunk-SID4X3YN.js → chunk-QU4UE73E.js} +1 -1
  111. package/dist/chunks/{chunk-I7JCARVH.js → chunk-R6VJDOQM.js} +3 -3
  112. package/dist/chunks/{chunk-6RVF2J47.js → chunk-R6WMY6AH.js} +1 -1
  113. package/dist/chunks/{chunk-ZUNG6YDO.js → chunk-RDSVU6F6.js} +1 -1
  114. package/dist/chunks/{chunk-R4PDSOB4.js → chunk-RFMME46Z.js} +1 -1
  115. package/dist/chunks/{chunk-GQUS7MCH.js → chunk-RZUCVF2Q.js} +1 -1
  116. package/dist/chunks/chunk-SFKZITAG.js +9 -0
  117. package/dist/chunks/{chunk-MF35MALN.js → chunk-SHJY5RLU.js} +1 -1
  118. package/dist/chunks/chunk-SI5W5LBV.js +2 -0
  119. package/dist/chunks/chunk-SO42ZB5K.js +2 -0
  120. package/dist/chunks/{chunk-TNHDD3LO.js → chunk-SXMR6E2W.js} +1 -1
  121. package/dist/chunks/{chunk-OMICIPPY.js → chunk-T6JN4PND.js} +1 -1
  122. package/dist/chunks/{chunk-ZISYLRH6.js → chunk-TCOTXCV6.js} +1 -1
  123. package/dist/chunks/{chunk-QCSLEMZF.js → chunk-U2K7QJCG.js} +1 -1
  124. package/dist/chunks/{chunk-ISIXFK6U.js → chunk-UH4JSSRL.js} +28 -28
  125. package/dist/chunks/chunk-UPWJSNL5.js +2 -0
  126. package/dist/chunks/chunk-URNMC46H.js +157 -0
  127. package/dist/chunks/{chunk-OJFDI7VM.js → chunk-UTNGEMW5.js} +1 -1
  128. package/dist/chunks/{chunk-WFVOG5PU.js → chunk-V7KR74NO.js} +1 -1
  129. package/dist/chunks/{chunk-QDBYLJGH.js → chunk-VHXDWAEH.js} +1 -1
  130. package/dist/chunks/{chunk-VZXZ6CHS.js → chunk-W2TICQ62.js} +1 -1
  131. package/dist/chunks/{chunk-QRJPLZF7.js → chunk-W5W4IODW.js} +1 -1
  132. package/dist/chunks/chunk-WP2L2NY2.js +2 -0
  133. package/dist/chunks/chunk-WSOUMXH3.js +24 -0
  134. package/dist/chunks/chunk-WWQNMC7C.js +6 -0
  135. package/dist/chunks/chunk-XMHIQ3SK.js +5 -0
  136. package/dist/chunks/{chunk-5MTN6KXV.js → chunk-XNOMIWEY.js} +1 -1
  137. package/dist/chunks/{chunk-T4LLJC5N.js → chunk-XOB6FKQV.js} +1 -1
  138. package/dist/chunks/chunk-Y766IN7Y.js +2 -0
  139. package/dist/chunks/chunk-YCZZ62C2.js +2 -0
  140. package/dist/chunks/chunk-YM4PSVFW.js +4 -0
  141. package/dist/chunks/chunk-YNQWJWIC.js +10 -0
  142. package/dist/chunks/{chunk-LBBXVOVR.js → chunk-Z3BWCFLV.js} +1 -1
  143. package/dist/chunks/{chunk-WRQEYW3V.js → chunk-ZG6353RM.js} +1 -1
  144. package/dist/chunks/{chunk-PE7UKJXK.js → chunk-ZPTKR3GB.js} +1 -1
  145. package/dist/chunks/{chunk-2VXL6AU3.js → chunk-ZYVHOVKL.js} +1 -1
  146. package/dist/chunks/chunk-ZZHXQCNB.js +22 -0
  147. package/dist/chunks/cli-PSXMIJTF.js +2 -0
  148. package/dist/chunks/{configuration-command-ONGI2BJD.js → configuration-command-XYKMXIWF.js} +1 -1
  149. package/dist/chunks/connected-app-executor-6G2LA3PQ.js +2 -0
  150. package/dist/chunks/connected-evidence-IRXYN6YD.js +2 -0
  151. package/dist/chunks/{connected-starting-assets-OXLT7S4O.js → connected-starting-assets-JONPTII6.js} +1 -1
  152. package/dist/chunks/{connection-HJWE6SEW.js → connection-XMAAGMXJ.js} +1 -1
  153. package/dist/chunks/{continual-CJUZM5ZQ.js → continual-Z7MO2PF6.js} +1 -1
  154. package/dist/chunks/core-commands-WWN7X3XC.js +2 -0
  155. package/dist/chunks/dataset-preparation-authoring-F3OZIQSP.js +4 -0
  156. package/dist/chunks/datasets-2PC2HP7N.js +2 -0
  157. package/dist/chunks/desktop-test-VU6AFAMO.js +3 -0
  158. package/dist/chunks/dist-47AYOIH6.js +2 -0
  159. package/dist/chunks/{dist-X64FC6NA.js → dist-HSC43RG4.js} +1 -1
  160. package/dist/chunks/{dist-DCSLPBO2.js → dist-MXBEBM4D.js} +1 -1
  161. package/dist/chunks/evaluation-coordination-UOWZHHC5.js +2 -0
  162. package/dist/chunks/experiment-improvements-EB2CV5RA.js +2 -0
  163. package/dist/chunks/experiments-SZQYR6MH.js +2 -0
  164. package/dist/chunks/experiments-signal-2KJCP25D.js +2 -0
  165. package/dist/chunks/{extension-C33NUFDL.js → extension-ZM6NI5O5.js} +1 -1
  166. package/dist/chunks/{help-M2VQGPVC.js → help-7HXFWIKS.js} +1 -1
  167. package/dist/chunks/host-profile-evaluation-tools-Y2LQ4WQN.js +2 -0
  168. package/dist/chunks/host-profile-external-dataset-FRIGXOO7.js +2 -0
  169. package/dist/chunks/hosted-app-server-composition-PGKQNDW6.js +2 -0
  170. package/dist/chunks/hosted-experiment-improvement-UXC542SZ.js +3 -0
  171. package/dist/chunks/hosted-harness-runtime-6PEI7F2U.js +2 -0
  172. package/dist/chunks/hosted-profile-candidate-HM44BIUX.js +3 -0
  173. package/dist/chunks/hosted-profile-compiler-UAZ4PHYE.js +2 -0
  174. package/dist/chunks/hosted-profile-evaluation-control-EUL57FAB.js +2 -0
  175. package/dist/chunks/hosted-profile-evaluation-inspection-7USY75Z4.js +3 -0
  176. package/dist/chunks/{hosted-profile-evaluation-preparation-ZAOGDQXO.js → hosted-profile-evaluation-preparation-2LSMZQNA.js} +1 -1
  177. package/dist/chunks/{hosted-tasksets-CVUP7MS6.js → hosted-tasksets-WGXGXJ7E.js} +1 -1
  178. package/dist/chunks/human-review-M26UKGJL.js +2 -0
  179. package/dist/chunks/{import-WLLUIDS6.js → import-6SI4BEKS.js} +2 -2
  180. package/dist/chunks/learning-HM3NWOV5.js +2 -0
  181. package/dist/chunks/local-harness-improvement-runtime-QGWFWNSR.js +2 -0
  182. package/dist/chunks/local-harness-taskset-review-KS4WPMN6.js +2 -0
  183. package/dist/chunks/model-projects-YUAMBQTO.js +2 -0
  184. package/dist/chunks/opchat-AG4CWVY4.js +3 -0
  185. package/dist/chunks/opchat-bounded-chat-IQMP5IIO.js +2 -0
  186. package/dist/chunks/organizations-KDKX77XZ.js +2 -0
  187. package/dist/chunks/{profile-JRS3JNRC.js → profile-O5HL5DTQ.js} +1 -1
  188. package/dist/chunks/project-action-payload-QA24HYGF.js +2 -0
  189. package/dist/chunks/project-agent-XBOOM5TS.js +2 -0
  190. package/dist/chunks/published-experiment-source-GZGN354O.js +2 -0
  191. package/dist/chunks/refiner-profile-service-BJMOYKTC.js +2 -0
  192. package/dist/chunks/{runtime-CBJF5GMB.js → runtime-XBA744HJ.js} +2 -2
  193. package/dist/chunks/sandbox-command-5ECGS7DG.js +2 -0
  194. package/dist/chunks/{sandbox-template-FTANKQIA.js → sandbox-template-27U3FQN7.js} +1 -1
  195. package/dist/chunks/saved-work-KUNVTJ7O.js +2 -0
  196. package/dist/chunks/{send-turn-5UB7ZBJV.js → send-turn-FIPWOXWV.js} +1 -1
  197. package/dist/chunks/src-BLWX6DRG.js +424 -0
  198. package/dist/chunks/{src-4YZF6L6H.js → src-PU7QTFO5.js} +1 -1
  199. package/dist/chunks/standalone-experiment-turn-owner-XIE46VNH.js +2 -0
  200. package/dist/chunks/store-chat-resources-YOEJ2BI6.js +2 -0
  201. package/dist/chunks/{store-continual-support-reviews-GWI2FRII.js → store-continual-support-reviews-FOMYYS25.js} +1 -1
  202. package/dist/chunks/{store-conversation-serving-637AHKBP.js → store-conversation-serving-K324SQTO.js} +1 -1
  203. package/dist/chunks/{store-create-improve-ZG653Z63.js → store-create-improve-3LQMIYAP.js} +1 -1
  204. package/dist/chunks/{store-datasets-IW6F2QZM.js → store-datasets-3KSX7RSO.js} +1 -1
  205. package/dist/chunks/store-evaluation-results-LHCCNNE6.js +7 -0
  206. package/dist/chunks/{store-harness-evaluation-review-settings-I2R3HPO3.js → store-harness-evaluation-review-settings-AAN7KKJ5.js} +1 -1
  207. package/dist/chunks/{store-harness-refinement-candidates-SUT45FQX.js → store-harness-refinement-candidates-3PHL3BUY.js} +1 -1
  208. package/dist/chunks/store-harness-workspaces-ZHNCNWVI.js +2 -0
  209. package/dist/chunks/store-human-review-QJY3ZPPF.js +7 -0
  210. package/dist/chunks/store-learned-preference-migration-validation-X32SRBOM.js +2 -0
  211. package/dist/chunks/{store-learning-MFS4DGQR.js → store-learning-DW3QLQXU.js} +1 -1
  212. package/dist/chunks/{store-learning-credentials-BECWEG2Y.js → store-learning-credentials-67QNTPA7.js} +1 -1
  213. package/dist/chunks/{store-local-experiments-A2UWYPVQ.js → store-local-experiments-QTVHJAEP.js} +1 -1
  214. package/dist/chunks/store-model-batch-review-PBYQZJJJ.js +2 -0
  215. package/dist/chunks/store-model-configuration-3SU73CMS.js +3 -0
  216. package/dist/chunks/store-model-project-preparation-TFCG2F2F.js +2 -0
  217. package/dist/chunks/store-ponder-history-WDLMXBIJ.js +2 -0
  218. package/dist/chunks/store-ponder-hosted-DX6E2BVW.js +4 -0
  219. package/dist/chunks/{store-preference-comparison-HTOXLWKF.js → store-preference-comparison-DWV5XSMY.js} +1 -1
  220. package/dist/chunks/{store-schedules-QVWT7AEB.js → store-schedules-2KUY4T6M.js} +1 -1
  221. package/dist/chunks/{store-sidebar-file-bookmarks-G5Z6NZWL.js → store-sidebar-file-bookmarks-A4XCS7RM.js} +1 -1
  222. package/dist/chunks/{store-sidebar-preferences-27FFMUWU.js → store-sidebar-preferences-V2PKRXUZ.js} +1 -1
  223. package/dist/chunks/{store-subagents-PK7ZWLPR.js → store-subagents-UGVEFA6M.js} +1 -1
  224. package/dist/chunks/store-task-inbox-QABI4ZAH.js +33 -0
  225. package/dist/chunks/{store-task-inventory-IG6HGWSQ.js → store-task-inventory-GEQIZELY.js} +1 -1
  226. package/dist/chunks/store-taskset-drafts-GXABQR5G.js +9 -0
  227. package/dist/chunks/{store-training-NQRRPKEZ.js → store-training-CQV7PL3V.js} +1 -1
  228. package/dist/chunks/{store-training-jobs-F6Y2ZTXP.js → store-training-jobs-XKN6K66J.js} +18 -10
  229. package/dist/chunks/{store-training-models-NRSLSBEW.js → store-training-models-Q7DTTR4S.js} +1 -1
  230. package/dist/chunks/{store-usage-GFHQYT34.js → store-usage-XGAX7NLB.js} +1 -1
  231. package/dist/chunks/{taskset-NYLUYX6K.js → taskset-ARKJQKYQ.js} +1 -1
  232. package/dist/chunks/taskset-packages-X4K65DTW.js +2 -0
  233. package/dist/chunks/taskset-packages-XK7FSD45.js +2 -0
  234. package/dist/chunks/{teams-bot-FMAEDGSD.js → teams-bot-UTQAJA6H.js} +1 -1
  235. package/dist/chunks/training-3IWW4256.js +2 -0
  236. package/dist/chunks/{training-UBX6E7SK.js → training-RVIESURJ.js} +1 -1
  237. package/dist/chunks/training-error-2EWDOQ4G.js +2 -0
  238. package/dist/chunks/training-hosted-PFJHYTEU.js +2 -0
  239. package/dist/chunks/training-hosted-checkpoint-evaluation-JJPP7KFW.js +2 -0
  240. package/dist/chunks/training-hosted-feedback-5B2KJGOT.js +2 -0
  241. package/dist/chunks/training-hosted-learning-Y7NHRY4V.js +2 -0
  242. package/dist/chunks/training-hosted-report-UVGTPDOK.js +2 -0
  243. package/dist/chunks/training-hosted-serving-QAV7ZGGV.js +2 -0
  244. package/dist/chunks/training-hosted-serving-report-OX4A5OKB.js +2 -0
  245. package/dist/chunks/training-hosted-workers-LST4ZUXN.js +2 -0
  246. package/dist/chunks/training-model-start-ROLS3E4V.js +2 -0
  247. package/dist/chunks/training-project-preparation-XWGRY5ME.js +3 -0
  248. package/dist/chunks/{web-search-Q4OQVUNH.js → web-search-7FBUBZ66.js} +1 -1
  249. package/dist/chunks/{workspaces-XREEVSTS.js → workspaces-G3CMY7ZA.js} +1 -1
  250. package/dist/cli.js +2 -2
  251. package/dist/hosted-chat.d.ts +28 -0
  252. package/dist/index.js +1 -1
  253. package/dist/sandbox/url.d.ts +3 -1
  254. package/dist/skills/LICENSE +21 -0
  255. package/dist/skills/manifest.json +168 -0
  256. package/dist/skills/openpond-agent-authoring/SKILL.md +9 -3
  257. package/dist/skills/openpond-agent-authoring/references/profile-layout.md +1 -1
  258. package/dist/skills/openpond-agent-authoring/references/validation-and-repair.md +2 -2
  259. package/dist/skills/openpond-cli/SKILL.md +24 -7
  260. package/dist/skills/openpond-cli/references/compact-resource-tables.md +3 -3
  261. package/dist/skills/openpond-cli/references/diagnose-and-improve.md +4 -2
  262. package/dist/skills/openpond-cli/references/experiments-and-training.md +156 -11
  263. package/dist/skills/openpond-refiner-authoring/SKILL.md +4 -0
  264. package/dist/skills/openpond-skill-authoring/SKILL.md +5 -1
  265. package/dist/skills/openpond-taskset-authoring/SKILL.md +5 -4
  266. package/dist/skills/openpond-taskset-authoring/artifact.json +7 -7
  267. package/dist/skills/openpond-taskset-authoring/references/failure-diagnosis.md +52 -1
  268. package/dist/web/assets/App-DY2R8Z6r.js +53 -0
  269. package/dist/web/assets/App-DpFKLxuA.css +1 -0
  270. package/dist/web/assets/AppDialog-8Y0FYalT.js +1 -0
  271. package/dist/web/assets/AppTerminalPanel-YcnBD5DF.js +2 -0
  272. package/dist/web/assets/{AppToastContext-BB_2hRfw.js → AppToastContext-BiQbbVxq.js} +1 -1
  273. package/dist/web/assets/AppsView-Dtte4h6e.js +1 -0
  274. package/dist/web/assets/{AttachmentTypeIcon-DOAsVQjt.js → AttachmentTypeIcon-DgADV7dn.js} +1 -1
  275. package/dist/web/assets/BrowserSidebar-BUqDvEv9.js +1 -0
  276. package/dist/web/assets/{CartesianChart-DO76yfJb.js → CartesianChart-J4ChOjvG.js} +1 -1
  277. package/dist/web/assets/ChatTimelineEntry-DC93wlDa.js +8 -0
  278. package/dist/web/assets/ChatTimelineEntry-DztFb85D.css +1 -0
  279. package/dist/web/assets/{CollaborationTabs-DNoknVMD.js → CollaborationTabs-CFCpk2Ck.js} +1 -1
  280. package/dist/web/assets/CommandMenu-EPPjB14H.js +1 -0
  281. package/dist/web/assets/CommunityView-Okydjpqm.js +1 -0
  282. package/dist/web/assets/ComposerAttachments-RXCiE88M.js +2 -0
  283. package/dist/web/assets/ComposerCreateImproveStrip-CSngc8-V.js +1 -0
  284. package/dist/web/assets/ConversationImportsSettings-DS73kyfj.js +1 -0
  285. package/dist/web/assets/FilePagePreview-Qc4B0vue.js +2 -0
  286. package/dist/web/assets/GetStartedView-DGFPQ1We.js +1 -0
  287. package/dist/web/assets/GettingStartedDialog-DFBYQdHz.js +1 -0
  288. package/dist/web/assets/GettingStartedDialog-EsH-8Diz.css +1 -0
  289. package/dist/web/assets/{HostedModelLearningReview-B0rbIVvn.js → HostedModelLearningReview-BDu3FlcU.js} +1 -1
  290. package/dist/web/assets/HostedModelLearningSettings-CHaTHwC8.js +1 -0
  291. package/dist/web/assets/HtmlVisual-C7GlEVfH.css +1 -0
  292. package/dist/web/assets/HtmlVisual-D9Mh7xds.js +81 -0
  293. package/dist/web/assets/LabModelVersionDetailPage-DgY7lAu5.js +1 -0
  294. package/dist/web/assets/LabSkillSidebar-BwtlThO7.js +1 -0
  295. package/dist/web/assets/LabsRoute-BV7ZJGEw.js +101 -0
  296. package/dist/web/assets/MainChatThread-pzHKd_YN.js +2 -0
  297. package/dist/web/assets/MainPane-6OlLiKKb.js +10 -0
  298. package/dist/web/assets/MainPane-Dje-hfUM.css +1 -0
  299. package/dist/web/assets/NativeSetupTerminal-3eR9D_R3.css +1 -0
  300. package/dist/web/assets/NativeSetupTerminal-CPDChcMi.js +2 -0
  301. package/dist/web/assets/NativeSkillSidebar-BEJvt5_H.js +1 -0
  302. package/dist/web/assets/NewProjectDialog-CjrjgkTN.js +1 -0
  303. package/dist/web/assets/OutputsPage-jzx93QQ3.js +1 -0
  304. package/dist/web/assets/{PageChrome-BBnWAENV.js → PageChrome-C1M13qG2.js} +1 -1
  305. package/dist/web/assets/ProjectsPage-DZrjlMp2.js +1 -0
  306. package/dist/web/assets/RightChatPanelStack-BsxJg9sy.js +1 -0
  307. package/dist/web/assets/RightSidebarHomePanel-CCVQ9LMB.js +1 -0
  308. package/dist/web/assets/ScheduledWorkPage-Cw1ja2GF.js +1 -0
  309. package/dist/web/assets/{SettingsView-Y8f98GSE.css → SettingsView-Cc0376pY.css} +1 -1
  310. package/dist/web/assets/SettingsView-CckoIki3.js +5 -0
  311. package/dist/web/assets/TasksetDraftEditorPrimitives-ByC8bDjp.js +1 -0
  312. package/dist/web/assets/TeamChatView-OprnSKLF.js +1 -0
  313. package/dist/web/assets/TerminalOverlay-d7A2F9Lx.js +16 -0
  314. package/dist/web/assets/TrainingCreationPanel-Cyn6R6I6.js +1 -0
  315. package/dist/web/assets/{TrainingDraftPanel-HznyNCJ4.js → TrainingDraftPanel-Mpb5e7t5.js} +1 -1
  316. package/dist/web/assets/TrainingRunLineage-PXzWR65d.css +1 -0
  317. package/dist/web/assets/TrainingRunLineage-VcKz7dIR.js +1 -0
  318. package/dist/web/assets/{UsageSettingsSection-C3oZ1UEP.js → UsageSettingsSection-FhYymrfc.js} +2 -2
  319. package/dist/web/assets/WorkSidebarPanel-u87uptH0.js +1 -0
  320. package/dist/web/assets/WorkspaceDiffPanel-B5rlW7bA.js +11 -0
  321. package/dist/web/assets/WorkspaceEnvironmentMenu-C8y3537a.js +35 -0
  322. package/dist/web/assets/WorkspaceFileLocation-LrEWj4UK.js +1 -0
  323. package/dist/web/assets/WorkspaceGitDialogs-NRIMXnkS.js +1 -0
  324. package/dist/web/assets/{WorkspaceMonacoEditor-DfsL1WIi.js → WorkspaceMonacoEditor-CvDGjKAL.js} +3 -3
  325. package/dist/web/assets/WorkspacePdfPreview-BZ0BbnHv.js +2 -0
  326. package/dist/web/assets/{WorkspacePresentationPreview-WuS_B45u.js → WorkspacePresentationPreview-DJrjrvT0.js} +1 -1
  327. package/dist/web/assets/app-models-CUA9XB9U.js +1 -0
  328. package/dist/web/assets/bot-6OhUEmkE.js +1 -0
  329. package/dist/web/assets/browser-sidebar-links-ZyYiYBBd.js +1 -0
  330. package/dist/web/assets/chat-resources-CI8KFVO5.js +1 -0
  331. package/dist/web/assets/{chevron-down-Bnma8EMP.js → chevron-down-jmVA1BIf.js} +1 -1
  332. package/dist/web/assets/chevron-right-BYmDQ7ti.js +1 -0
  333. package/dist/web/assets/chevron-up-CstyLXH3.js +1 -0
  334. package/dist/web/assets/{chunk-GAIDBPFY-BLuHpurI.js → chunk-ONGOAEY6-C__DQmRT.js} +5 -5
  335. package/dist/web/assets/{chunk-24N6A6SF-BUjzKvRC.js → chunk-SQBYHWZU-DumrB9SB.js} +1 -1
  336. package/dist/web/assets/{client-choice-storage-BuNdhYSV.js → client-choice-storage-BdQ_YDuk.js} +1 -1
  337. package/dist/web/assets/{cloud-upload-DOftANif.js → cloud-upload-Ck1ufAr8.js} +1 -1
  338. package/dist/web/assets/connected-app-mentions-D3wRZLwI.js +1 -0
  339. package/dist/web/assets/contracts-BLiqJxBv.js +1 -0
  340. package/dist/web/assets/copy-CPkbMfXt.js +1 -0
  341. package/dist/web/assets/{createLucideIcon-C4b2afqG.js → createLucideIcon-CXQny8HU.js} +1 -1
  342. package/dist/web/assets/{cssMode-0Hn7tCrE.js → cssMode-CYxYl_om.js} +1 -1
  343. package/dist/web/assets/external-link-CDKOLG_v.js +1 -0
  344. package/dist/web/assets/{folder-open-wJwCoIDs.js → folder-open-CEtOb_lK.js} +1 -1
  345. package/dist/web/assets/{folder-plus-DnTN6mcP.js → folder-plus-CVMYZs3e.js} +1 -1
  346. package/dist/web/assets/{git-commit-horizontal-98y7PP6G.js → git-commit-horizontal-DDyhPjxS.js} +1 -1
  347. package/dist/web/assets/{htmlMode-JO_QluNH.js → htmlMode-DoY4V_j0.js} +1 -1
  348. package/dist/web/assets/icons-D7jkCa2d.js +1 -0
  349. package/dist/web/assets/{image-C7HVlg3X.js → image-B-PjDSwU.js} +1 -1
  350. package/dist/web/assets/{index-BsPUniZy.js → index-D9WbJMSq.js} +2 -2
  351. package/dist/web/assets/index-g7UqJhnX.css +1 -0
  352. package/dist/web/assets/{info-BLWDShaz.js → info-CCnw-K3b.js} +1 -1
  353. package/dist/web/assets/intake-contracts-BW0Y0C2R.js +1 -0
  354. package/dist/web/assets/{jsonMode-BfTXJted.js → jsonMode-CeOpZdPj.js} +1 -1
  355. package/dist/web/assets/loader-circle-CPaJeTDy.js +1 -0
  356. package/dist/web/assets/{lspLanguageFeatures-68cAgnuv.js → lspLanguageFeatures-DAbgLCqZ.js} +1 -1
  357. package/dist/web/assets/{maximize-2-DUWvLap6.js → maximize-2-BZX38cpr.js} +1 -1
  358. package/dist/web/assets/message-square-CvgSecgD.js +1 -0
  359. package/dist/web/assets/{monaco.contribution-_3aU1TTb.js → monaco.contribution-CF2JDhi4.js} +2 -2
  360. package/dist/web/assets/{monaco.contribution-CWeY6ia1.js → monaco.contribution-cbDqt48m.js} +2 -2
  361. package/dist/web/assets/{monaco.contribution-h8U8HXFT.js → monaco.contribution-m2ze2EsL.js} +2 -2
  362. package/dist/web/assets/{monaco.contribution-DOiiDDen.js → monaco.contribution-yeyow_-Q.js} +2 -2
  363. package/dist/web/assets/{monitor-B6OuAu13.js → monitor-By0s4hxb.js} +1 -1
  364. package/dist/web/assets/{paperclip-DSHxP9CY.js → paperclip-BJ2QgJLa.js} +1 -1
  365. package/dist/web/assets/{pdf-RXlFwNte.js → pdf-C4x-1jjP.js} +1 -1
  366. package/dist/web/assets/pdf.worker.min-BrEVksTu.js +1 -0
  367. package/dist/web/assets/play-D_SuGDBM.js +1 -0
  368. package/dist/web/assets/plus-yw95Iaj8.js +1 -0
  369. package/dist/web/assets/{presentation-C9WnPDVr.js → presentation-I86G1Gd9.js} +1 -1
  370. package/dist/web/assets/profile-agent-labels-Duh96b8x.js +1 -0
  371. package/dist/web/assets/{python-BQXo7wMt.js → python-CqFTPj8r.js} +1 -1
  372. package/dist/web/assets/{refresh-cw-NXOER_CD.js → refresh-cw-Dga35Eay.js} +1 -1
  373. package/dist/web/assets/requests-BCbaFiqV.js +1 -0
  374. package/dist/web/assets/{reward-checks-5AOStF27.js → reward-checks-Bcq9ETCA.js} +1 -1
  375. package/dist/web/assets/{save-BxXc21N6.js → save-BLKjYtzR.js} +1 -1
  376. package/dist/web/assets/settings-D7C-Auyi.js +21 -0
  377. package/dist/web/assets/settings-lists-DMKA1lCN.js +5 -0
  378. package/dist/web/assets/square-BY5lG2Ol.js +1 -0
  379. package/dist/web/assets/square-terminal-B-n7vUex.js +1 -0
  380. package/dist/web/assets/submit-issue-command-B7Hrt2tU.js +3 -0
  381. package/dist/web/assets/{toggleHighContrast-Di1cRuQ4.js → toggleHighContrast-BhmBE5XE.js} +1 -1
  382. package/dist/web/assets/training-QrdkRQZQ.js +2 -0
  383. package/dist/web/assets/{training-model-data-CmVo80ZR.js → training-model-data-DB-jg6L_.js} +12 -12
  384. package/dist/web/assets/{tsMode-PxisJRYB.js → tsMode-BSWEII2p.js} +1 -1
  385. package/dist/web/assets/ui-theme.generated-D-mc26qt.js +144 -0
  386. package/dist/web/assets/{upload-NXasN1wU.js → upload-C4MPhQn8.js} +1 -1
  387. package/dist/web/assets/{useAccountSettings-Dqqt1vUY.js → useAccountSettings-9oqWdRLs.js} +1 -1
  388. package/dist/web/assets/useAgentInventory-isO79ui9.js +1 -0
  389. package/dist/web/assets/{useLocalAgentSchedules-Cc0M_qax.js → useLocalAgentSchedules-CZX6PxoK.js} +1 -1
  390. package/dist/web/assets/{useQuery-ByaRC9SK.js → useQuery-BD0Uexmh.js} +1 -1
  391. package/dist/web/assets/{wifi-off-aVJ3AvT_.js → wifi-off-Cloe0WuQ.js} +1 -1
  392. package/dist/web/assets/{workers-u92Boudu.js → workers-BXagz5eg.js} +1 -1
  393. package/dist/web/assets/x-Dqpel42h.js +1 -0
  394. package/dist/web/assets/{yaml-BxQUS0ew.js → yaml-sBdvVbCc.js} +1 -1
  395. package/dist/web/index.html +12 -3
  396. package/docs/command-reference.md +49 -5
  397. package/package.json +6 -2
  398. package/dist/chunks/actions-command-LOHNQUWP.js +0 -2
  399. package/dist/chunks/app-server-connected-apps-Q2VWWJNX.js +0 -2
  400. package/dist/chunks/app-server-harness-services-2PSZBT7U.js +0 -2
  401. package/dist/chunks/app-server-runtime-B6BAJA6L.js +0 -2
  402. package/dist/chunks/apps-7PIBF32Q.js +0 -2
  403. package/dist/chunks/chunk-3TYCIYW6.js +0 -17
  404. package/dist/chunks/chunk-4GZ2FPB5.js +0 -2
  405. package/dist/chunks/chunk-4M3YW3EQ.js +0 -13
  406. package/dist/chunks/chunk-4N3UF3U5.js +0 -2
  407. package/dist/chunks/chunk-4P3X2RXA.js +0 -2
  408. package/dist/chunks/chunk-4RHM4WN2.js +0 -2
  409. package/dist/chunks/chunk-6DCXAXVD.js +0 -22
  410. package/dist/chunks/chunk-AWPYTDH4.js +0 -4
  411. package/dist/chunks/chunk-BLKTUFGB.js +0 -2
  412. package/dist/chunks/chunk-BN5AVRUG.js +0 -2
  413. package/dist/chunks/chunk-D5ADDBS5.js +0 -2
  414. package/dist/chunks/chunk-DGPGOBYZ.js +0 -5
  415. package/dist/chunks/chunk-E3EKBPCB.js +0 -2
  416. package/dist/chunks/chunk-E67M5WGY.js +0 -2
  417. package/dist/chunks/chunk-EIIGTADO.js +0 -2
  418. package/dist/chunks/chunk-F5JDBDYL.js +0 -2
  419. package/dist/chunks/chunk-FWIPHEVA.js +0 -12
  420. package/dist/chunks/chunk-GLVR74PX.js +0 -2
  421. package/dist/chunks/chunk-HZLV773Y.js +0 -22
  422. package/dist/chunks/chunk-JEVA7YQL.js +0 -3
  423. package/dist/chunks/chunk-KC7I6E6W.js +0 -2
  424. package/dist/chunks/chunk-M4ZRCRJM.js +0 -10
  425. package/dist/chunks/chunk-N663LL27.js +0 -2
  426. package/dist/chunks/chunk-NR5VASQB.js +0 -2
  427. package/dist/chunks/chunk-OJSK4NSW.js +0 -151
  428. package/dist/chunks/chunk-OZ6LRNRE.js +0 -2
  429. package/dist/chunks/chunk-Q324ZA5M.js +0 -2
  430. package/dist/chunks/chunk-UBCLPZSQ.js +0 -4
  431. package/dist/chunks/chunk-UJBEWIR3.js +0 -8
  432. package/dist/chunks/chunk-V67IFV26.js +0 -86
  433. package/dist/chunks/chunk-VSUHJ46L.js +0 -18
  434. package/dist/chunks/chunk-VWJ5IYQP.js +0 -2
  435. package/dist/chunks/chunk-X3WEQL3O.js +0 -2
  436. package/dist/chunks/chunk-XK7SPL63.js +0 -2
  437. package/dist/chunks/chunk-XLULTQLZ.js +0 -12
  438. package/dist/chunks/chunk-YR5ID2SS.js +0 -2
  439. package/dist/chunks/chunk-ZBBVRYU3.js +0 -6
  440. package/dist/chunks/chunk-ZHFH2TZN.js +0 -2
  441. package/dist/chunks/chunk-ZZWAQBA2.js +0 -2
  442. package/dist/chunks/cli-WC45SI7E.js +0 -2
  443. package/dist/chunks/connected-app-executor-TZJB25UZ.js +0 -2
  444. package/dist/chunks/connected-evidence-4J3YXU4O.js +0 -2
  445. package/dist/chunks/core-commands-JGXU6B4C.js +0 -2
  446. package/dist/chunks/dataset-preparation-authoring-DFGJBMVF.js +0 -4
  447. package/dist/chunks/datasets-MNHZAZIB.js +0 -2
  448. package/dist/chunks/desktop-test-P23MHAIG.js +0 -3
  449. package/dist/chunks/dist-IIFTZWNR.js +0 -2
  450. package/dist/chunks/evaluation-coordination-6NQEH5WU.js +0 -2
  451. package/dist/chunks/experiment-improvements-M27Z5OF4.js +0 -2
  452. package/dist/chunks/experiments-IWSCFDBB.js +0 -2
  453. package/dist/chunks/experiments-signal-R3NNH7WR.js +0 -2
  454. package/dist/chunks/host-profile-evaluation-tools-EFB2YIK2.js +0 -2
  455. package/dist/chunks/host-profile-external-dataset-KSNREH3Q.js +0 -2
  456. package/dist/chunks/hosted-app-server-composition-VV545TYL.js +0 -2
  457. package/dist/chunks/hosted-experiment-improvement-NYLADI7S.js +0 -3
  458. package/dist/chunks/hosted-harness-runtime-Z54E5MD7.js +0 -2
  459. package/dist/chunks/hosted-profile-candidate-37ZFY2LH.js +0 -3
  460. package/dist/chunks/hosted-profile-compiler-SW2RWTDZ.js +0 -2
  461. package/dist/chunks/hosted-profile-evaluation-control-UQBMML6K.js +0 -2
  462. package/dist/chunks/hosted-profile-evaluation-inspection-YASS4T6L.js +0 -3
  463. package/dist/chunks/human-review-IJETDOWB.js +0 -2
  464. package/dist/chunks/learning-KVLTMRLD.js +0 -2
  465. package/dist/chunks/local-harness-improvement-runtime-KB4OP3SM.js +0 -2
  466. package/dist/chunks/local-harness-taskset-review-SUDEUGUU.js +0 -2
  467. package/dist/chunks/model-projects-AVBQDNYG.js +0 -2
  468. package/dist/chunks/opchat-KSOJEL4W.js +0 -3
  469. package/dist/chunks/organizations-DJRJWC5I.js +0 -2
  470. package/dist/chunks/project-action-payload-SQ5BSQHY.js +0 -2
  471. package/dist/chunks/project-agent-2KNJFNZI.js +0 -2
  472. package/dist/chunks/published-experiment-source-LFYHKFAO.js +0 -2
  473. package/dist/chunks/refiner-profile-service-UWI4NAZ3.js +0 -2
  474. package/dist/chunks/sandbox-command-IIGTPYN3.js +0 -2
  475. package/dist/chunks/saved-work-QA46KCME.js +0 -2
  476. package/dist/chunks/src-E7NWAN5B.js +0 -420
  477. package/dist/chunks/standalone-experiment-turn-owner-SQJ5HXDZ.js +0 -2
  478. package/dist/chunks/store-chat-resources-CGW7PDCG.js +0 -2
  479. package/dist/chunks/store-evaluation-results-V5J6L4NV.js +0 -7
  480. package/dist/chunks/store-harness-workspaces-HHMM6GNK.js +0 -2
  481. package/dist/chunks/store-human-review-V5H4QDHR.js +0 -7
  482. package/dist/chunks/store-learned-preference-migration-validation-KOCW5NOZ.js +0 -2
  483. package/dist/chunks/store-model-batch-review-KMYPYWJR.js +0 -2
  484. package/dist/chunks/store-model-configuration-UXNC4PGY.js +0 -3
  485. package/dist/chunks/store-task-inbox-LNDCZOYE.js +0 -33
  486. package/dist/chunks/store-taskset-drafts-TA6X245D.js +0 -9
  487. package/dist/chunks/taskset-packages-I7I5KBFP.js +0 -2
  488. package/dist/chunks/training-error-AYOGHHL2.js +0 -2
  489. package/dist/chunks/training-hosted-4R4QTSAN.js +0 -2
  490. package/dist/chunks/training-hosted-report-UQVK6FTG.js +0 -2
  491. package/dist/chunks/training-hosted-workers-KI767T4Y.js +0 -2
  492. package/dist/skills/openpond-desktop-harness/SKILL.md +0 -113
  493. package/dist/skills/openpond-desktop-harness/agents/openai.yaml +0 -4
  494. package/dist/web/assets/App-Df7uYQGj.css +0 -1
  495. package/dist/web/assets/App-Yy3l2sdD.js +0 -56
  496. package/dist/web/assets/AppTerminalPanel-Dqr6VS3I.js +0 -2
  497. package/dist/web/assets/AppsView-27Fl_-49.js +0 -1
  498. package/dist/web/assets/BrowserSidebar-bnI3sSZO.js +0 -1
  499. package/dist/web/assets/ChatTimelineEntry-IKzZsHoI.js +0 -1
  500. package/dist/web/assets/CommandMenu-CBY2AJxV.js +0 -1
  501. package/dist/web/assets/CommunityView-CFKM7FTY.js +0 -1
  502. package/dist/web/assets/ComposerAttachments-BdjBddKf.js +0 -2
  503. package/dist/web/assets/ComposerCreateImproveStrip-ViJ5E0We.js +0 -1
  504. package/dist/web/assets/ConversationImportsSettings-xLl-7G9R.js +0 -1
  505. package/dist/web/assets/FilePagePreview-CTHuPzJt.js +0 -2
  506. package/dist/web/assets/GetStartedView-DvV_RMgM.js +0 -1
  507. package/dist/web/assets/GettingStartedDialog-B1jFmfgd.js +0 -1
  508. package/dist/web/assets/GettingStartedDialog-C73Bdcz2.css +0 -1
  509. package/dist/web/assets/HostedModelLearningSettings-DzAiutjq.js +0 -1
  510. package/dist/web/assets/LabModelVersionDetailPage-CF8FkRUY.js +0 -1
  511. package/dist/web/assets/LabSkillSidebar-gjbl9Nlv.js +0 -1
  512. package/dist/web/assets/LabsRoute-DOnw39du.js +0 -101
  513. package/dist/web/assets/MainChatThread-BUKup-JB.js +0 -2
  514. package/dist/web/assets/MainPane-BpE7AKXu.js +0 -92
  515. package/dist/web/assets/MainPane-CuBUBA9F.css +0 -1
  516. package/dist/web/assets/NativeSkillSidebar-Br5Lk6iU.js +0 -1
  517. package/dist/web/assets/NewProjectDialog-DyuKPOvF.js +0 -1
  518. package/dist/web/assets/OutputsPage-Dl63CVrw.js +0 -1
  519. package/dist/web/assets/ProjectsPage-BNF1TiyR.js +0 -1
  520. package/dist/web/assets/RightChatPanelStack-CxVAAbp-.js +0 -1
  521. package/dist/web/assets/RightSidebarHomePanel-D46ktZg-.js +0 -1
  522. package/dist/web/assets/ScheduledWorkPage-Cp0Hf-hs.js +0 -1
  523. package/dist/web/assets/SettingsView-BT57Q5Wx.js +0 -5
  524. package/dist/web/assets/TeamChatView-BmxTJ9E5.js +0 -1
  525. package/dist/web/assets/TerminalOverlay-D-Yq8av_.js +0 -16
  526. package/dist/web/assets/TrainingCreationPanel-CwfNPj_G.js +0 -1
  527. package/dist/web/assets/TrainingMetricWorkbench-BmzHLwIP.js +0 -1
  528. package/dist/web/assets/WorkSidebarPanel-myTA9tsh.js +0 -1
  529. package/dist/web/assets/WorkspaceDiffPanel-D0dzFgzW.js +0 -11
  530. package/dist/web/assets/WorkspaceEnvironmentMenu-AUzME1eX.js +0 -35
  531. package/dist/web/assets/WorkspaceFileLocation-Ai8Tz2Mz.js +0 -1
  532. package/dist/web/assets/WorkspaceGitDialogs-D-UCCckC.js +0 -1
  533. package/dist/web/assets/app-models-BviS9b7U.js +0 -1
  534. package/dist/web/assets/browser-sidebar-links-ujSvTf5h.js +0 -1
  535. package/dist/web/assets/chat-resources-CItQ4mZD.js +0 -1
  536. package/dist/web/assets/chevron-right-Cxv_xBz5.js +0 -1
  537. package/dist/web/assets/contracts-BHTOD1nd.js +0 -1
  538. package/dist/web/assets/git-dialogs-C631EFyO.css +0 -1
  539. package/dist/web/assets/icons-kaq6k88m.js +0 -1
  540. package/dist/web/assets/index-DUMDOdB2.css +0 -1
  541. package/dist/web/assets/play-BPPQoqMl.js +0 -1
  542. package/dist/web/assets/plus-D18vYzHF.js +0 -1
  543. package/dist/web/assets/settings-BKmRueaw.js +0 -21
  544. package/dist/web/assets/settings-lists-DMNPkGYk.js +0 -5
  545. package/dist/web/assets/square-Da8RuqW4.js +0 -1
  546. package/dist/web/assets/training-managed-adapter-81RrdT1k.js +0 -1
  547. package/dist/web/assets/ui-theme.generated-R0MY_Jy0.js +0 -136
  548. package/dist/web/assets/useAgentInventory-BV4CUWzJ.js +0 -1
  549. /package/dist/chunks/{chunk-GLDYJM7O.js → chunk-T4QXKU5Y.js} +0 -0
@@ -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-VZXZ6CHS.js";import{a as we}from"./chunk-IZ6DLEVY.js";import{a as Re,c as he}from"./chunk-TH6Y4K5Z.js";import{t as ve}from"./chunk-UBCLPZSQ.js";import{a as B}from"./chunk-WBUK73ST.js";import{a as de,b as G,h as V,i as z,j as Y}from"./chunk-CN5OXQ7A.js";import{k as le}from"./chunk-OZ6LRNRE.js";import{m as ue,n as me,o as pe,p as fe,q as ge}from"./chunk-UWHIU24L.js";import{n as E}from"./chunk-VVNV4NNW.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-W2TICQ62.js";import{a as we}from"./chunk-IZ6DLEVY.js";import{a as Re,c as he}from"./chunk-5MHYGMJG.js";import{ia as ve}from"./chunk-M3FLEZ4E.js";import{a as B}from"./chunk-WBUK73ST.js";import{a as de,b as G,h as V,i as z,j as Y}from"./chunk-3YXYBYWK.js";import{k as le}from"./chunk-MPNJ2BB4.js";import{m as ue,n as me,o as pe,p as fe,q as ge}from"./chunk-UWHIU24L.js";import{n as E}from"./chunk-VVNV4NNW.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,2 +1,2 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{a as T,b as M,c as U}from"./chunk-RG3NH6YQ.js";import{I as S,J as x,K as k,L as P}from"./chunk-KK626T3Z.js";import{A as a}from"./chunk-PF56N7ZY.js";import{a as c}from"./chunk-FTQLQJQV.js";import{randomUUID as N}from"node:crypto";var r=class extends Error{constructor(i,n){super(n);this.status=i}status;static{c(this,"EnclaveError")}};function b(e){let t;try{t=new URL(e)}catch{throw new r(400,"Enter a valid model endpoint URL.")}let i=["localhost","127.0.0.1","[::1]"].includes(t.hostname);if(t.protocol!=="https:"&&!(t.protocol==="http:"&&i)||t.username||t.password||t.search||t.hash)throw new r(400,"Use HTTPS, or HTTP for a local model, without credentials, a query, or fragment in the URL.");return t.toString().replace(/\/+$/,"").replace(/\/chat\/completions$/,"")}c(b,"normalizeModelEndpoint");async function w(e){let t=new AbortController,i=c(()=>t.abort(),"abort");e.signal?.addEventListener("abort",i,{once:!0}),e.signal?.aborted&&t.abort();let n=setTimeout(i,e.timeoutMs??15e3);try{let o=await(e.fetch??fetch)(`${b(e.endpoint)}/${e.path}`,{method:e.body===void 0?"GET":"POST",redirect:"error",signal:t.signal,headers:{...e.token?{Authorization:`Bearer ${e.token}`}:{},"Content-Type":"application/json","User-Agent":"OpenPond-Model-Connection/1.0"},...e.body===void 0?{}:{body:JSON.stringify(e.body)}});if(e.expectedStatus&&o.status===e.expectedStatus)return await o.body?.cancel(),null;if(!o.ok)throw await o.body?.cancel(),new r(o.status===401||o.status===403?401:o.status===503?503:502,o.status===401||o.status===403?"The endpoint rejected the API key. Check its credentials.":o.status===503?"The endpoint is starting or busy. Try again shortly.":"The endpoint did not return a compatible response.");if(!o.body)throw new r(502,"The endpoint returned an empty response.");let s=o.body.getReader(),d=[],l=0;try{for(;;){let p=await s.read();if(p.done)break;if(l+=p.value.byteLength,l>1024*1024)throw new r(502,"The endpoint response exceeded its size limit.");d.push(p.value)}}finally{await s.cancel().catch(()=>{}),s.releaseLock()}return JSON.parse(Buffer.concat(d).toString("utf8"))}catch(o){throw o instanceof r?o:t.signal.aborted?new r(408,e.signal?.aborted?"Request cancelled.":"The endpoint request timed out."):new r(502,"Could not reach a compatible model endpoint. Check the URL and service health.")}finally{clearTimeout(n),e.signal?.removeEventListener("abort",i)}}c(w,"remoteJson");var g="url-model:",f=a.object({providerName:a.string().trim().min(1).max(100).default("Models from URL"),name:a.string().trim().min(1).max(100),endpoint:a.string(),model:a.string().trim().min(1).max(300),protocol:a.enum(["openai","tvc"]),token:a.string().max(4096).regex(/^[\x21-\x7e]*$/)}),E=a.object({endpoint:a.string(),token:f.shape.token.default("")}).strict(),A=E.extend({name:f.shape.name,providerName:f.shape.providerName,model:f.shape.model}),L=a.object({id:a.string().regex(/^url:[a-f0-9-]{36}$/)}).strict(),y=c(e=>`${g}${e.slice(4)}`,"storageId"),$=c((e,t)=>({id:e,name:t.name,providerName:t.providerName,endpoint:t.endpoint,model:t.model,protocol:t.protocol,hasToken:!!t.token}),"publicModel");async function v(e){return Object.entries(await x(e,g)).map(([t,i])=>$(`url:${t.slice(g.length)}`,f.parse(i.value)))}c(v,"listUrlModels");async function j(e,t){if(!L.safeParse({id:t}).success)throw new r(400,"Select a saved URL model.");let i=await S(e,y(t));if(!i)throw new r(409,"This model connection was removed. Add it again in Providers.");return f.parse(i.value)}c(j,"resolveUrlModel");function D(e){let t=new Map;async function i(n,o){let s=b(n.endpoint),d=await w({...n,endpoint:s,path:"health",signal:o,fetch:e.fetch}).catch(h=>{if(o?.aborted)throw h;return null}),l=T.safeParse(d);if(l.success)return await w({...n,endpoint:s,path:"chat",body:{prompt:""},expectedStatus:400,signal:o,fetch:e.fetch}),{protocol:"tvc",models:[l.data.model],contextTokens:l.data.contextTokens};let p=await w({...n,endpoint:s,path:"models",signal:o,fetch:e.fetch}),m=a.object({data:a.array(a.object({id:a.string().min(1).max(300)})).max(5e3)}).safeParse(p);if(!m.success||!m.data.data.length)throw new r(502,"No models were returned. Use the API base URL, such as https://host/v1.");return{protocol:"openai",models:[...new Set(m.data.data.map(h=>h.id))]}}return c(i,"inspect"),async(n,o,s)=>{if(s?.throwIfAborted(),n==="list")return{models:await v(e.home)};if(n==="inspect"||n==="save"){let m=(n==="save"?A:E).safeParse(o);if(!m.success)throw new r(400,"Provide a valid endpoint, API key, model, and display name.");let h=await i(m.data,s);if(n==="inspect")return h;let u=A.parse(m.data);if(!h.models.includes(u.model))throw new r(400,"The selected model is no longer offered by this endpoint. Fetch models again.");s?.throwIfAborted();let C=(await v(e.home)).find(R=>R.providerName.toLocaleLowerCase()===u.providerName.toLocaleLowerCase())?.providerName??u.providerName,I=`url:${N()}`;return await k(e.home,y(I),{...u,providerName:C,endpoint:b(u.endpoint),protocol:h.protocol},null),{models:await v(e.home)}}let d=L.safeParse(n==="chat"&&o&&typeof o=="object"?{id:o.id}:o);if(!d.success)throw new r(400,"Select a saved model connection.");if(n==="remove")return t.get(d.data.id)?.abort(),await P(e.home,y(d.data.id)),{models:await v(e.home)};if(t.has(d.data.id))throw new r(409,"This model is busy. Cancel its current turn or wait for it to finish.");let l=new AbortController;t.set(d.data.id,l);let p=c(()=>l.abort(),"abort");s?.addEventListener("abort",p,{once:!0}),s?.aborted&&l.abort();try{let m=await j(e.home,d.data.id);if(m.protocol!=="tvc")throw new r(400,"This model uses the OpenAI-compatible chat API.");let h=U.safeParse({prompt:o.prompt});if(!h.success)throw new r(400,"Enter a text message of at most 1,024 UTF-8 bytes.");return M.parse(await w({...m,path:"chat",body:h.data,signal:l.signal,timeoutMs:31e4,fetch:e.fetch}))}finally{s?.removeEventListener("abort",p),t.delete(d.data.id)}}}c(D,"createEnclaveConnection");export{r as a,v as b,j as c,D as d};
2
+ import{a as T,b as M,c as U}from"./chunk-RG3NH6YQ.js";import{I as S,J as x,K as k,L as P}from"./chunk-2EPR4HLF.js";import{A as a}from"./chunk-PF56N7ZY.js";import{a as c}from"./chunk-FTQLQJQV.js";import{randomUUID as N}from"node:crypto";var r=class extends Error{constructor(i,n){super(n);this.status=i}status;static{c(this,"EnclaveError")}};function b(e){let t;try{t=new URL(e)}catch{throw new r(400,"Enter a valid model endpoint URL.")}let i=["localhost","127.0.0.1","[::1]"].includes(t.hostname);if(t.protocol!=="https:"&&!(t.protocol==="http:"&&i)||t.username||t.password||t.search||t.hash)throw new r(400,"Use HTTPS, or HTTP for a local model, without credentials, a query, or fragment in the URL.");return t.toString().replace(/\/+$/,"").replace(/\/chat\/completions$/,"")}c(b,"normalizeModelEndpoint");async function w(e){let t=new AbortController,i=c(()=>t.abort(),"abort");e.signal?.addEventListener("abort",i,{once:!0}),e.signal?.aborted&&t.abort();let n=setTimeout(i,e.timeoutMs??15e3);try{let o=await(e.fetch??fetch)(`${b(e.endpoint)}/${e.path}`,{method:e.body===void 0?"GET":"POST",redirect:"error",signal:t.signal,headers:{...e.token?{Authorization:`Bearer ${e.token}`}:{},"Content-Type":"application/json","User-Agent":"OpenPond-Model-Connection/1.0"},...e.body===void 0?{}:{body:JSON.stringify(e.body)}});if(e.expectedStatus&&o.status===e.expectedStatus)return await o.body?.cancel(),null;if(!o.ok)throw await o.body?.cancel(),new r(o.status===401||o.status===403?401:o.status===503?503:502,o.status===401||o.status===403?"The endpoint rejected the API key. Check its credentials.":o.status===503?"The endpoint is starting or busy. Try again shortly.":"The endpoint did not return a compatible response.");if(!o.body)throw new r(502,"The endpoint returned an empty response.");let s=o.body.getReader(),d=[],l=0;try{for(;;){let p=await s.read();if(p.done)break;if(l+=p.value.byteLength,l>1024*1024)throw new r(502,"The endpoint response exceeded its size limit.");d.push(p.value)}}finally{await s.cancel().catch(()=>{}),s.releaseLock()}return JSON.parse(Buffer.concat(d).toString("utf8"))}catch(o){throw o instanceof r?o:t.signal.aborted?new r(408,e.signal?.aborted?"Request cancelled.":"The endpoint request timed out."):new r(502,"Could not reach a compatible model endpoint. Check the URL and service health.")}finally{clearTimeout(n),e.signal?.removeEventListener("abort",i)}}c(w,"remoteJson");var g="url-model:",f=a.object({providerName:a.string().trim().min(1).max(100).default("Models from URL"),name:a.string().trim().min(1).max(100),endpoint:a.string(),model:a.string().trim().min(1).max(300),protocol:a.enum(["openai","tvc"]),token:a.string().max(4096).regex(/^[\x21-\x7e]*$/)}),E=a.object({endpoint:a.string(),token:f.shape.token.default("")}).strict(),A=E.extend({name:f.shape.name,providerName:f.shape.providerName,model:f.shape.model}),L=a.object({id:a.string().regex(/^url:[a-f0-9-]{36}$/)}).strict(),y=c(e=>`${g}${e.slice(4)}`,"storageId"),$=c((e,t)=>({id:e,name:t.name,providerName:t.providerName,endpoint:t.endpoint,model:t.model,protocol:t.protocol,hasToken:!!t.token}),"publicModel");async function v(e){return Object.entries(await x(e,g)).map(([t,i])=>$(`url:${t.slice(g.length)}`,f.parse(i.value)))}c(v,"listUrlModels");async function j(e,t){if(!L.safeParse({id:t}).success)throw new r(400,"Select a saved URL model.");let i=await S(e,y(t));if(!i)throw new r(409,"This model connection was removed. Add it again in Providers.");return f.parse(i.value)}c(j,"resolveUrlModel");function D(e){let t=new Map;async function i(n,o){let s=b(n.endpoint),d=await w({...n,endpoint:s,path:"health",signal:o,fetch:e.fetch}).catch(h=>{if(o?.aborted)throw h;return null}),l=T.safeParse(d);if(l.success)return await w({...n,endpoint:s,path:"chat",body:{prompt:""},expectedStatus:400,signal:o,fetch:e.fetch}),{protocol:"tvc",models:[l.data.model],contextTokens:l.data.contextTokens};let p=await w({...n,endpoint:s,path:"models",signal:o,fetch:e.fetch}),m=a.object({data:a.array(a.object({id:a.string().min(1).max(300)})).max(5e3)}).safeParse(p);if(!m.success||!m.data.data.length)throw new r(502,"No models were returned. Use the API base URL, such as https://host/v1.");return{protocol:"openai",models:[...new Set(m.data.data.map(h=>h.id))]}}return c(i,"inspect"),async(n,o,s)=>{if(s?.throwIfAborted(),n==="list")return{models:await v(e.home)};if(n==="inspect"||n==="save"){let m=(n==="save"?A:E).safeParse(o);if(!m.success)throw new r(400,"Provide a valid endpoint, API key, model, and display name.");let h=await i(m.data,s);if(n==="inspect")return h;let u=A.parse(m.data);if(!h.models.includes(u.model))throw new r(400,"The selected model is no longer offered by this endpoint. Fetch models again.");s?.throwIfAborted();let C=(await v(e.home)).find(R=>R.providerName.toLocaleLowerCase()===u.providerName.toLocaleLowerCase())?.providerName??u.providerName,I=`url:${N()}`;return await k(e.home,y(I),{...u,providerName:C,endpoint:b(u.endpoint),protocol:h.protocol},null),{models:await v(e.home)}}let d=L.safeParse(n==="chat"&&o&&typeof o=="object"?{id:o.id}:o);if(!d.success)throw new r(400,"Select a saved model connection.");if(n==="remove")return t.get(d.data.id)?.abort(),await P(e.home,y(d.data.id)),{models:await v(e.home)};if(t.has(d.data.id))throw new r(409,"This model is busy. Cancel its current turn or wait for it to finish.");let l=new AbortController;t.set(d.data.id,l);let p=c(()=>l.abort(),"abort");s?.addEventListener("abort",p,{once:!0}),s?.aborted&&l.abort();try{let m=await j(e.home,d.data.id);if(m.protocol!=="tvc")throw new r(400,"This model uses the OpenAI-compatible chat API.");let h=U.safeParse({prompt:o.prompt});if(!h.success)throw new r(400,"Enter a text message of at most 1,024 UTF-8 bytes.");return M.parse(await w({...m,path:"chat",body:h.data,signal:l.signal,timeoutMs:31e4,fetch:e.fetch}))}finally{s?.removeEventListener("abort",p),t.delete(d.data.id)}}}c(D,"createEnclaveConnection");export{r as a,v as b,j as c,D as d};
@@ -0,0 +1,2 @@
1
+ import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
+ import{D as oe,F as V,G as Ae,J as W,K as De,L as ee,M as P,N as Ee,R as ce,S as qe,T as Ce,_ as de,h as Te,i as xe,n as Se,o as Pe,p as j,q as ye,r as K,s as Z,t as Ie,v as He,x as _e,y as z,z as je}from"./chunk-WSOUMXH3.js";import{s as re,v as Be,w as Me}from"./chunk-NG2L6D7G.js";import{C as Q,E as ve,O as v,P as F,Q as M,R as we,b as ke,ca as $,d as D,ia as Re,mb as ie,nb as ne,o as q,ob as be,p as N,s as C,w as Y,z as U}from"./chunk-J572ANHX.js";import{Ra as fe,Va as he,Wa as ge,Xa as J,Ya as X,t as H}from"./chunk-PBZCXPPC.js";import{m as ue,n as u}from"./chunk-VVNV4NNW.js";import{A as c}from"./chunk-PF56N7ZY.js";import{a as b}from"./chunk-FTQLQJQV.js";function Ke(s){let t=P(s.source);if(t.modelResources||t.learningResources)throw new Error("Binding an ordinary Reward requires an ordinary source package.");let a=ee(t);if(!a.trim())throw new Error("Add collection instructions before selecting a saved Reward.");let e=new Map,i=Ae(t);for(let g of i?.assets??[])e.set(g.id,g);let r=new Set([...t.taskset.tasks.flatMap(g=>g.privilegedContextRef?[g.privilegedContextRef]:[]),...[t.environment.actionSchemaRef,t.environment.observationSchemaRef,t.environment.stateSchemaRef].flatMap(g=>g?[g.id]:[])]);for(let g of r){if(e.has(g))continue;let S=t.files.find(se=>se.asset.id===g);if(!S)throw new Error(`Source Taskset context is missing: ${g}.`);let I=new TextDecoder("utf-8",{fatal:!0}).decode(V(S));e.set(g,ke.parse(M({schemaVersion:"openpond.learningTextAsset.v1",id:g,revision:1,asset:S.asset,text:I})))}for(let g of s.assets){let S=t.files.find(I=>I.asset.id===g.id);if(S&&M({asset:S.asset}).contentHash!==M({asset:g.asset}).contentHash)throw new Error(`Selected Reward conflicts with a source asset: ${g.id}.`);e.set(g.id,g)}let{policy:p,environment:o,environmentRelease:k,tools:w,capabilities:n,verifierSetRelease:R}=t.taskset,l=C.parse(M({schemaVersion:"openpond.taskDefinition.v1",id:`${t.taskset.id}-definition`,revision:1,name:t.taskset.id,description:"",instructions:a,category:"custom",familyNamespace:t.taskset.id,inputSchema:{type:"object"},outputSchema:{type:"object"},rewardBinding:v(s.rewardBinding),harness:null,execution:{policy:p,environment:o,environmentRelease:k,tools:w,capabilities:n,verifierSetRelease:R}})),T=je({...s,assets:[...e.values()],source:{taskset:t.taskset,taskDefinition:l,instructionMode:"per_task",executionResources:{environment:t.environment,verifierSet:t.verifierSet},...i?{execution:i.execution}:{}}}),m=new Map(t.files.map(g=>[g.asset.id,g]));for(let g of T.assets){let S="";for(let I of new TextEncoder().encode(g.text))S+=String.fromCharCode(I);m.set(g.id,{asset:g.asset,base64:btoa(S)})}let{taskset:B,executionResources:f,...h}=T;return Ee({schemaVersion:"openpond.tasksetPackage.v1",taskset:B,...f,modelResources:h,files:[...m.values()]})}b(Ke,"bindOrdinaryModelTasksetReward");var _=c.string().trim().min(1).max(500),O=c.string().regex(/^[a-f0-9]{64}$/),We=Be.pick({portableProjectId:!0,name:!0,objective:!0,defaultBaseModel:!0,defaultDestinationId:!0,sourceRevision:!0,sourceUpdatedAt:!0}).extend({trainingSetup:re.omit({tasksetRef:!0,rewardBindingRef:!0,tasksetRelease:!0})}).strict(),Je=c.object({schemaVersion:c.literal("openpond.tasksetPackagePublication.v1"),operationId:_,modelProjectId:_,expectedProjectEtag:O.nullable(),name:c.string().trim().min(1).max(200),description:c.string().max(5e3),buildIntent:c.enum(["demonstrations","preferences","verifiable_reward","rubric","discovery"]),methodHint:c.enum(["sft","dpo","grpo","ppo"]).nullable(),package:W,modelConfiguration:We.optional(),evaluationPackage:W.optional(),selection:c.enum(["select","attach"]).optional()}).strict().refine(s=>s.selection!=="attach"||s.modelConfiguration===void 0,"Attachment-only publication cannot replace Model configuration.").refine(s=>!s.evaluationPackage||s.modelConfiguration!==void 0&&s.modelConfiguration.trainingSetup.evaluationTasksetRef!=null&&u(s.modelConfiguration.trainingSetup.evaluationTasksetRef)===u(v(s.evaluationPackage.taskset)),"Evaluation package must match the selected immutable evaluation in Model configuration."),Xe=c.object({schemaVersion:c.literal("openpond.tasksetPackageReceipt.v1"),teamId:_,modelProjectId:_,operationId:_,taskset:z,packageHash:O,hostedTasksetId:_,projectEtag:O,project:Me.optional(),selection:c.enum(["select","attach"]).optional(),evaluation:c.object({taskset:z,packageHash:O,hostedTasksetId:_}).strict().optional()}).strict(),Ye=c.object({schemaVersion:c.literal("openpond.tasksetPackageReadback.v1"),teamId:_,modelProjectId:_,package:W}).strict(),Qe=c.object({schemaVersion:c.literal("openpond.tasksetReleasePackageReadback.v1"),teamId:_,release:z,package:W}).strict(),y=class extends Error{constructor(a,e,i){super(i);this.status=a;this.code=e;this.name="OpenPondTasksetPackageError"}status;code;static{b(this,"OpenPondTasksetPackageError")}},$e=class{static{b(this,"OpenPondTasksetPackageClient")}#e;constructor(t){let a=new URL(t.baseUrl);if(!["http:","https:"].includes(a.protocol)||a.username||a.password||a.search||a.hash||!t.apiKey.trim()||!t.teamId.trim())throw new Error("Taskset package client requires a clean HTTP(S) endpoint and workspace credentials.");this.#e={...t,baseUrl:a.toString().replace(/\/+$/,"")}}async publish(t,a={}){let e=Je.parse(t);P(e.package),e.evaluationPackage&&P(e.evaluationPackage);let{evaluationPackage:i,...r}=e,p=i?.contentHash===e.package.contentHash?r:e,o=Xe.parse(await this.#t("","POST",p,a.signal)),k=e.package.taskset;if(o.teamId!==this.#e.teamId||o.modelProjectId!==e.modelProjectId||o.operationId!==e.operationId||o.packageHash!==e.package.contentHash||o.taskset.id!==k.id||o.taskset.revision!==k.revision||o.taskset.contentHash!==k.contentHash)throw new y(502,"package_receipt_mismatch","Taskset publication receipt did not match the requested package and owner.");if(e.selection!==void 0&&o.selection!==e.selection)throw new y(502,"package_receipt_mismatch","Taskset publication did not retain its selection mode.");if(e.evaluationPackage&&(!o.evaluation||o.evaluation.packageHash!==e.evaluationPackage.contentHash||u(o.evaluation.taskset)!==u(v(e.evaluationPackage.taskset))))throw new y(502,"package_receipt_mismatch","Taskset publication did not retain the complete selected evaluation package.");if(e.selection==="attach"&&o.projectEtag!==e.expectedProjectEtag)throw new y(502,"package_receipt_mismatch","Attaching a historical Taskset changed the Model configuration.");if(e.modelConfiguration){let w=e.modelConfiguration,n=o.project,R=De(e.package),l=re.parse({...w.trainingSetup,tasksetRef:v(k),rewardBindingRef:R?v(R):null,tasksetRelease:null});if(!n||n.teamId!==this.#e.teamId||n.etag!==o.projectEtag||![n.id,n.portableProjectId].includes(e.modelProjectId)||n.portableProjectId!==w.portableProjectId||n.name!==w.name||n.objective!==w.objective||n.sourceRevision!==w.sourceRevision||Date.parse(n.sourceUpdatedAt)!==Date.parse(w.sourceUpdatedAt)||u(n.defaultBaseModel)!==u(w.defaultBaseModel)||n.defaultDestinationId!==w.defaultDestinationId||u(n.trainingSetup)!==u(l))throw new y(502,"package_receipt_mismatch","Taskset publication did not retain the requested Model configuration.")}return o}async getByRelease(t,a={}){let e=z.parse(t),i=a.expectedPackageHash===void 0?void 0:O.parse(a.expectedPackageHash),r=Qe.parse(await this.#t(`/releases/${encodeURIComponent(e.id)}/${e.revision}/${e.contentHash}/package`,"GET",void 0,a.signal)),p=P(r.package),o={id:p.taskset.id,revision:p.taskset.revision,contentHash:p.taskset.contentHash};if(r.teamId!==this.#e.teamId||u(r.release)!==u(e)||u(o)!==u(e)||i!==void 0&&p.contentHash!==i)throw new y(502,"package_readback_mismatch","Independent Dataset package differs from the requested workspace or exact release.");return p}async get(t,a,e={}){let i=_.parse(t),r=z.parse(a),p=e.expectedPackageHash===void 0?void 0:O.parse(e.expectedPackageHash),o=Ye.parse(await this.#t(`/${encodeURIComponent(i)}/${encodeURIComponent(r.id)}/${r.revision}/${r.contentHash}`,"GET",void 0,e.signal)),k=o.package.taskset;if(o.teamId!==this.#e.teamId||o.modelProjectId!==i||k.id!==r.id||k.revision!==r.revision||k.contentHash!==r.contentHash)throw new y(502,"package_readback_mismatch","Taskset package did not match the requested release and owner.");if(p!==void 0&&o.package.contentHash!==p)throw new y(502,"package_readback_mismatch","Taskset package did not match the saved publication receipt.");return P(o.package)}async#t(t,a,e,i){let r=e===void 0?void 0:JSON.stringify(e);if(r&&new TextEncoder().encode(r).byteLength>oe)throw new y(413,"package_too_large","Taskset publication exceeds the 64 MiB envelope.");let p=await(this.#e.fetch??globalThis.fetch)(`${this.#e.baseUrl}/v1/taskset-packages${t}`,{method:a,headers:{Authorization:`Bearer ${this.#e.apiKey}`,"X-OpenPond-Team-Id":this.#e.teamId,Accept:"application/json",...r?{"Content-Type":"application/json"}:{}},body:r,signal:i,redirect:"error"}),o=p.body?.getReader();if(!o)throw new y(p.status,"empty_response","Taskset package response was empty.");let k=new TextDecoder("utf-8",{fatal:!0}),w=0,n="";try{for(;;){let l=await o.read();if(l.done)break;if(w+=l.value.byteLength,w>oe)throw new y(413,"package_too_large","Taskset response exceeds the 64 MiB envelope.");n+=k.decode(l.value,{stream:!0})}n+=k.decode()}finally{await o.cancel(),o.releaseLock()}let R=JSON.parse(n);if(!p.ok){let l=c.object({code:c.string(),message:c.string()}).safeParse(R);throw new y(p.status,l.success?l.data.code:"package_request_failed",l.success?l.data.message:`Taskset package request failed (${p.status}).`)}return R}};var te=N.shape.id,Le=c.object({schemaVersion:c.literal("openpond.modelBatchReviewInspection.v1"),packageHash:c.string().regex(/^[a-f0-9]{64}$/),definition:C,binding:fe,evidence:c.array(U).min(1).max(1e4),decisions:c.array(ve).min(1).max(1e4)}).strict(),pe=c.object({schemaVersion:c.literal("openpond.modelBatchReviewRequest.v1"),operationId:te,modelId:te,expectedModelRevision:c.number().int().positive(),tasksetRef:N,rewardBindingRef:N.nullable(),definition:c.object({name:c.string().trim().min(1).max(500).optional(),instructions:c.string().trim().min(1).max(2e4).optional(),inputSchema:q.optional(),outputSchema:q.optional(),requiredOutputs:C.shape.requiredOutputs}).strict(),examples:c.array(c.object({evidence:N,input:q.optional(),expected:q.nullable().optional(),evaluatorContext:q.nullable().optional(),proposedTarget:q.nullable().optional()}).strict()).max(1e4)}).strict(),Fe=c.object({schemaVersion:c.literal("openpond.modelBatchReviewReceipt.v1"),operationId:te,modelId:te,source:Y,evidence:c.array(U).min(1).max(1e4),proposals:c.array(Q).max(1e4)}).strict();function ze(s){let{request:t,package:a}=s,e=a.learningResources;if(!e)throw new H("model_review_batch_required",422);let i=$(a.taskset),r=`model-review-${u([s.scope,t.modelId,t.operationId])}`,p=new Map(t.examples.map(d=>[u(d.evidence),d])),o=new Set(e.evidence.map(d=>u(v(d)))),k=new Map(e.decisions.map(d=>[u(d.evidence),d]));if(p.size!==t.examples.length||t.examples.some(d=>!o.has(u(d.evidence))))throw new H("model_review_evidence_mismatch",409);for(let d of[s.binding,...s.rewards,...s.assets])we(d);J(s.binding,s.rewards);let w=new Map;for(let d of s.binding.sources){let x=s.rewards.find(Ue=>F(v(Ue),d.reward)),{contentHash:E,...L}=x;w.set(x.contentHash,he({...L,id:`${r}-reward-${x.contentHash}`,revision:1}))}let n=[...w.values()],{contentHash:R,recipeRef:l,...T}=s.binding,m=ge({...T,id:`${r}-binding`,revision:1,sources:s.binding.sources.map(d=>({...d,reward:v(w.get(d.reward.contentHash))}))},n),B=n.flatMap(d=>[...d.assets,..."verifierRef"in d.implementation?[d.implementation.verifierRef]:[],..."rubricRef"in d.implementation?[d.implementation.rubricRef]:[],..."inputContract"in d.implementation?[d.implementation.inputContract]:[]]),f=[...new Map(B.map(d=>{let x=s.assets.find(E=>E.id===d.id);if(!x)throw new H("model_review_reward_asset_missing",422);if(D(x,d),d.visibility==="policy")throw new H("reward_asset_visibility_invalid",422);return[x.id,x]})).values()],{environmentRelease:h,verifierSetRelease:g,...S}=i.definition.execution,{contentHash:I,...se}=i.definition,A=C.parse(M({...se,...t.definition,id:`${r}-definition`,revision:1,rewardBinding:v(m),execution:{...S,policy:{...S.policy,hiddenGraderRefs:X(m,n).filter(d=>d.privileged).map(d=>d.id)}}})),G=Y.parse(M({schemaVersion:"openpond.learningSource.v1",id:r,revision:1,name:`${A.name} review`,kind:"direct",taskDefinition:v(A),enabled:!0,allowedSplits:[...new Set(e.evidence.map(d=>d.submission.split))],mapping:null,adapterVersion:null,reviewOrigin:{modelId:t.modelId,packageHash:a.contentHash,taskset:v(a.taskset),batch:v(e.batch),rewardBinding:v(s.binding)}})),le=e.evidence.map(d=>{let x=p.get(u(v(d))),E=`review-${d.contentHash}`,L=u({instructions:A.instructions,inputSchema:A.inputSchema,outputSchema:A.outputSchema,requiredOutputs:A.requiredOutputs??[],input:x?.input??d.submission.input})!==u({instructions:i.definition.instructions,inputSchema:i.definition.inputSchema,outputSchema:i.definition.outputSchema,requiredOutputs:i.definition.requiredOutputs??[],input:d.submission.input});return U.parse(M({schemaVersion:"openpond.taskEvidence.v1",id:be(G.id,d.submission.exampleId,E),revision:1,source:v(G),submission:{...d.submission,sourceId:G.id,taskDefinition:v(A),attemptId:E,observedOutput:L?null:d.submission.observedOutput,idempotencyKey:`${r}-${d.contentHash}`,...x?.input===void 0?{}:{input:x.input},...x?.expected===void 0?{}:{expected:x.expected},...x?.evaluatorContext===void 0?{}:{evaluatorContext:x.evaluatorContext}},supersedes:v(d),correctionFeedbackId:null,receivedAt:s.now}))}),Ne=le.flatMap(d=>{let x=p.get(u(d.supersedes)),E=k.get(u(d.supersedes)),L=x?.proposedTarget===void 0?E.approvedTarget:x.proposedTarget;return L===null?[]:[Q.parse({schemaVersion:"openpond.taskFeedbackRecord.v1",id:`feedback-${u([r,d.id])}`,revision:1,submission:{schemaVersion:"openpond.taskFeedback.v1",sourceId:G.id,idempotencyKey:`${r}-${d.id}`,exampleId:d.submission.exampleId,attemptId:d.submission.attemptId,expectedEvidenceHash:d.contentHash,occurredAt:s.now,kind:"target_correction",value:L,note:"Proposed target for the revised task. Grade and review before admission."},status:"pending_review",evidence:v(d),createdAt:s.now,review:null})]});return{source:G,definition:A,binding:m,rewards:n,assets:f,evidence:le,proposals:Ne}}b(ze,"prepareModelBatchReview");var Ve=b(s=>`model-batch-review-${u([s.modelId,s.operationId])}`,"operation");function At(s){let t=P(s);if(!t.learningResources)throw new H("model_review_batch_required",422);let a=$(t.taskset);return Le.parse({schemaVersion:"openpond.modelBatchReviewInspection.v1",packageHash:t.contentHash,definition:a.definition,binding:a.binding,evidence:t.learningResources.evidence,decisions:t.learningResources.decisions})}b(At,"inspectModelBatchPackage");async function Ze(s,t){let a=pe.parse(t),e=await s.operation(Ve(a));if(!e)return null;if(e.requestHash!==u(a))throw new H("learning_idempotency_conflict",409);return Oe(s,a,e.resources)}b(Ze,"findModelBatchReview");async function Dt(s,t){let a=pe.parse(t.request),e=await Ze(s,a);if(e)return e;let i=P(t.package);if(!i.learningResources)throw new H("model_review_batch_required",422);let r=$(i.taskset),p=a.rewardBindingRef,o=!p||F(p,v(r.binding)),k=o?r.binding:await ne(s,"binding",p),w=o?r.rewards:await Promise.all(k.sources.map(m=>ne(s,"reward",m.reward))),n=new Set(w.flatMap(m=>[...m.assets,..."verifierRef"in m.implementation?[m.implementation.verifierRef]:[],..."rubricRef"in m.implementation?[m.implementation.rubricRef]:[],..."inputContract"in m.implementation?[m.implementation.inputContract]:[]]).map(m=>m.id)),R=o?i.learningResources.assets:await Promise.all([...n].map(m=>ie(s,"asset",m,1))),l=ze({...t,request:a,package:i,binding:k,rewards:w,assets:R}),T=[];for(let m of l.assets){let B=await s.get("asset",m.id,1);if(B&&B.contentHash!==m.contentHash)throw new H("model_review_asset_conflict",409);B||await s.put("asset",m,0)}for(let m of l.rewards)await s.put("reward",m,0);await s.put("binding",l.binding,0),await s.put("definition",l.definition,0),await s.put("source",l.source,0,{parentId:a.modelId}),T.push({kind:"source",id:l.source.id,revision:1});for(let m of l.evidence)await s.put("evidence",m,0,{parentId:l.source.id}),T.push({kind:"evidence",id:m.id,revision:1});for(let m of l.proposals)await s.put("feedback",m,0,{parentId:m.evidence.id,status:m.status}),T.push({kind:"feedback",id:m.id,revision:1});return await s.saveOperation(Ve(a),{requestHash:u(a),resources:T}),Oe(s,a,T)}b(Dt,"beginModelBatchReview");async function Oe(s,t,a){let e=await Promise.all(a.map(i=>ie(s,i.kind,i.id,i.revision)));return Fe.parse({schemaVersion:"openpond.modelBatchReviewReceipt.v1",operationId:t.operationId,modelId:t.modelId,source:e.find(i=>i.schemaVersion==="openpond.learningSource.v1"),evidence:e.filter(i=>i.schemaVersion==="openpond.taskEvidence.v1"),proposals:e.filter(i=>i.schemaVersion==="openpond.taskFeedbackRecord.v1")})}b(Oe,"readReceipt");function Ge(s){let t=s.taskset.metadata.ordinaryAuthoring,a=c.record(c.string(),c.array(c.string().min(1)).max(1e5)).parse(t?.judgeCalibrationFixtures??{});return s.taskset.graders.map(e=>{let i={...e,label:e.id,metadata:{portableGrader:e}};if(e.kind==="custom_verifier")return j.parse({...i,module:e.verifierRef.path,exportName:e.exportName??"verify",metadata:{...i.metadata,portableVerifierRef:e.verifierRef}});if(e.kind==="human"||e.kind==="model_judge"){let r=s.files.find(k=>k.asset.id===e.rubricRef.id);if(!r)throw new Error(`Imported rubric is missing: ${e.id}.`);let p=new TextDecoder("utf-8",{fatal:!0}).decode(V(r)),o={...i.metadata,portableRubricRef:e.rubricRef};if(e.kind==="human")return j.parse({...i,rubric:p,metadata:o});if(!e.model)throw new Error(`Imported judge ${e.id} requires its declared model before local preparation.`);return j.parse({...i,rubric:p,metadata:o,judge:e.model,temperature:e.temperature??0,calibrationStatus:"pending",calibrationFixtureRefs:a[e.id]??[]})}return j.parse({...i,kind:e.kind==="artifact"?"file":e.kind,config:e.kind==="artifact"?{...e.config,...e.config.refIncludes===void 0?{}:{pathIncludes:e.config.refIncludes}}:e.config})})}b(Ge,"importedPackageGraders");function ae(s,t,a=[]){let e=J(s,t);return X(s,t).map(i=>{let r=e.find(({source:o})=>o.graderId===i.id).reward,p={...i,label:r.name,metadata:{rewardBinding:v(s)}};if(i.kind==="model_judge"){if(!i.model||i.calibrationStatus!=="passed"||!r.calibrationCheckRef||!r.fixtureSetRef)throw new Error(`Reward ${i.id} needs a retained passing calibration check before preparation.`);let o=a.find(n=>n.id===i.rubricRef.id),k=a.find(n=>n.id===r.fixtureSetRef.id);if(!o||!k)throw new Error(`Reward ${i.id} is missing its immutable rubric or calibration fixtures.`);let w=Re.array().min(1).max(50).parse(JSON.parse(D(k,r.fixtureSetRef)));return j.parse({...p,rubric:D(o,i.rubricRef),judge:i.model,temperature:i.temperature??0,calibrationFixtureRefs:w.map(n=>n.id),metadata:{...p.metadata,portableGrader:i,portableRubricRef:i.rubricRef,calibrationEvidenceHash:r.calibrationCheckRef.contentHash,calibrationCheckRef:r.calibrationCheckRef}})}if(i.kind==="custom_verifier")return j.parse({...p,module:i.verifierRef.path,exportName:i.exportName??"verify",metadata:{...p.metadata,portableVerifierRef:i.verifierRef}});if(i.kind==="human"){let o=a.find(k=>k.id===i.rubricRef.id);if(!o)throw new Error(`Reward ${i.id} is missing its immutable rubric.`);return j.parse({...p,rubric:D(o,i.rubricRef),metadata:{...p.metadata,portableGrader:i,portableRubricRef:i.rubricRef}})}return j.parse({...p,kind:i.kind==="artifact"?"file":i.kind})})}b(ae,"projectLearningBatchGraders");function et(s){return`graders/reward-${s}.js`}b(et,"learningVerifierModule");function ta(s){let t=P(s.package),a=t.taskset,e=t.modelResources,i=t.learningResources?$(a):void 0,r=Se.parse({schemaVersion:"openpond.uploadedFileDatasetSource.v1",kind:"uploaded_file",id:`package-source-${u({profileId:s.profileId,packageHash:t.contentHash})}`,profileId:s.profileId,title:s.name,sourceHash:t.contentHash,occurredAt:s.createdAt,licensingStatus:"pending",secretScanStatus:"pending",piiScanStatus:"pending",originalFileNames:["taskset-package.json"],mediaTypes:["application/json"],sourceFileHashes:[t.contentHash],totalBytes:new TextEncoder().encode(JSON.stringify(t)).byteLength,parserVersion:"openpond.tasksetPackage.v1",metadata:{}}),p=qe({profileId:s.profileId,id:`${a.id}-import`,name:s.name,now:s.createdAt}),o=[];for(let f of a.graders)if(f.kind==="custom_verifier"){let h=e?.assets.find(I=>I.id===f.verifierRef.id),g=t.files.find(I=>I.asset.id===f.verifierRef.id);if(!g)throw new Error(`Imported verifier source is missing: ${f.id}.`);let S=f.verifierRef.path;o.some(I=>I.path===S)||o.push({path:S,role:"verifier",content:h?D(h,f.verifierRef):new TextDecoder("utf-8",{fatal:!0}).decode(V(g))})}let k=a.metadata.ordinaryAuthoring??a.metadata.starterAuthoring,w=ye.array().max(1e5).parse(k?.graderFixtures??[]),n=a.environment.kind==="text"?"chat":a.environment.kind==="custom_program"?"program":a.environment.kind,R=c.record(c.string(),c.record(c.string(),c.string())).parse(a.metadata.workAssetStagingPaths??{}),l=Pe.array().max(1e4).parse(a.metadata.environmentResources??[]),T=l.filter(f=>f.visibility==="policy_visible").map(f=>{let h=t.files.filter(g=>g.asset.path===f.path);if(h.length!==1||h[0].asset.visibility!=="policy")throw new Error(`Policy environment resource requires one public package file: ${f.path}.`);return h[0].asset}),m=new Set(T.map(f=>f.id)),B=ce.parse({schemaVersion:"openpond.taskset.v1",id:a.id,revision:a.revision,profileId:s.profileId,profileRelease:null,createImproveRunId:null,name:s.name,objective:ee(t),status:"needs_review",sourceRefs:[r],datasetArtifact:null,policy:a.policy,environment:{...p.environment,kind:n,entrypoint:a.environment.entrypoint,resources:l,stateful:a.environment.stateful,deterministicSeeds:a.environment.deterministicSeeds,toolNames:a.tools.map(f=>f.name),defaultTimeoutMs:a.environment.defaultTimeoutMs,networkPolicy:a.environment.networkPolicy,metadata:{runtimeSourceTasksetId:tt(s.profileId,t.contentHash),portableEnvironment:a.environment,portableTools:a.tools,portableExecutionResources:{environment:t.environment,verifierSet:t.verifierSet}}},capabilities:{...p.capabilities,taskKind:n==="chat"?"chat":n==="program"?"custom_program":"single_agent",compatibleMethods:["none"],requiresTools:a.tools.length>0,requiresState:a.environment.stateful,rewardKinds:[...new Set(a.graders.map(f=>f.kind==="human"?"human":f.kind==="model_judge"?"model_judge":"deterministic"))]},tasks:a.tasks.map(f=>({...f,schemaVersion:"openpond.taskData.v1",sourceRefs:[r.id],assets:[...new Map([...f.artifactRefs,...(f.requiredOutputs??[]).flatMap(h=>h.submissionMode==="structured_json"&&h.schemaRef?[h.schemaRef]:[]),...T].map(h=>[h.id,h])).values()].map(h=>({id:h.id,sourceRefId:r.id,artifactRef:h.path,fileName:h.path.split("/").at(-1),...m.has(h.id)?{stagingPath:h.path}:R[f.id]?.[h.id]?{stagingPath:R[f.id][h.id]}:{},mediaType:h.mediaType,sha256:h.contentHash,sizeBytes:h.sizeBytes,split:f.split,metadata:{portableAsset:h,...m.has(h.id)?{sharedEnvironmentResource:{id:l.find(g=>g.path===h.path).id,path:h.path}}:{}}})),...f.requiredOutputs?{requiredOutputs:f.requiredOutputs.map(h=>({...h,schemaRef:h.schemaRef?.id??null,maxBytes:h.maxBytes??void 0}))}:{},metadata:{portableTaskRecord:f,exampleOrigin:"imported"}})),graders:e?ae(e.rewardBinding,e.rewards,e.assets):i?ae(i.binding,i.rewards,t.learningResources.assets):Ge(t),graderFixtures:w,learningSignals:p.learningSignals,...a.metrics?{metrics:a.metrics}:{},authoringProvenance:{schemaVersion:"openpond.taskAuthoringProvenance.v1",model:null,modelConfig:{},skillHash:u("openpond-package-import-v1"),promptTemplateVersion:"package-import-v1",buildIntent:"discovery",buildSpecification:null,evidenceHashes:[t.contentHash],tasksetSdkVersion:"package-import-v1",sourceCommit:null,repairHistory:[],createdAt:s.createdAt},readiness:null,contentHash:"00000000",createdAt:s.createdAt,updatedAt:s.createdAt,metadata:{importedPackageHash:t.contentHash,...a.metadata.tasksetOutputContract===void 0?{}:{tasksetOutputContract:a.metadata.tasksetOutputContract},...i?{learning:i}:{},portableFileInventory:t.files.map(f=>({asset:f.asset,sourcePath:f.asset.path})),...e?{taskDefinition:v(e.taskDefinition),rewardBinding:v(e.rewardBinding),rewardExecution:{binding:e.rewardBinding,rewards:e.rewards}}:{},portableCapabilities:a.capabilities,derivedPortableMetadata:a.metadata,...a.metadata.modelTasksetDerivation?{modelTasksetDerivation:a.metadata.modelTasksetDerivation}:{}}});return{package:t,taskset:ce.parse({...B,contentHash:Ce(B)}),generatedFiles:o}}b(ta,"prepareImportedTasksetPackage");function tt(s,t){return`package-${u({profileId:s,packageHash:t})}`}b(tt,"tasksetPackageSourceId");var me=c.object({draft:K,filePaths:c.array(c.object({assetId:c.string().min(1),paths:c.array(xe).min(1).max(1e4)}).strict()).max(1e4)}).strict();function at(s){let t=P(s.source),a=K.parse(s.sourceDraft),e=Te.parse(s.preparation);if(t.contentHash!==e.sourcePackageHash||!F(v(t.taskset),e.sourceTasksetRef))throw new Error("Taskset draft preparation differs from its source package.");if(t.learningResources)throw new Error("Reviewed Tasksets require their reviewed authoring workflow.");if(!!t.modelResources!=(e.authoringGraph==="bound"))throw new Error("Taskset draft authoring graph differs from its source.");let i=de.parse(a.metadata.portableFileInventory??[]),r=b(n=>Z(n)?`source-artifacts/${t.contentHash}/${u(n)}/${n.split("/").at(-1)}`:n,"sourcePath");if([...a.tasks.flatMap(n=>(n.assets??[]).map(R=>R.artifactRef)),...(a.environment.resources??[]).map(n=>n.path),...t.taskset.tasks.flatMap(n=>(n.requiredOutputs??[]).flatMap(R=>R.schemaRef?[R.schemaRef.path]:[])),...a.metrics.customAggregator?[a.metrics.customAggregator.module]:[],...a.graders.flatMap(n=>n.kind==="custom_verifier"?[n.module]:[])].some(Z))throw new Error("A referenced source asset occupies a reserved Taskset authoring path.");let o=t.files.map(n=>{let R=new Set([n.asset.path]);for(let l of i)l.asset.id===n.asset.id&&R.add(l.sourcePath);for(let l of a.tasks)for(let T of l.assets??[])T.id===n.asset.id&&R.add(T.artifactRef);for(let l of t.taskset.graders)if(l.kind==="custom_verifier"&&l.verifierRef.id===n.asset.id){let T=a.graders.find(m=>m.id===l.id);T?.kind==="custom_verifier"&&R.add(T.module)}return{assetId:n.asset.id,paths:[...R].map(r)}}),k={...a.metadata};if(t.modelResources)for(let n of["taskDefinition","rewardBinding","rewardExecution","derivedPortableMetadata","modelTasksetDerivation","importedPackageHash"])delete k[n];let w=K.parse({...a,id:e.draftId,revision:1,status:"draft",graders:a.graders.map(n=>({...n,metadata:{...n.metadata,portableGrader:t.taskset.graders.find(R=>R.id===n.id)}})),environment:{...a.environment,metadata:{...a.environment.metadata,portableExecutionResources:{environment:t.environment}}},modelScope:{modelId:e.lineage.owner.modelId,expectedModelRevision:s.expectedModelRevision,source:e},publishedTasksetRef:e.tasksetRevision>1?e.sourceTasksetRef:null,metadata:{...k,modelTasksetAuthoring:e.lineage,portableFileInventory:i.map(n=>({...n,sourcePath:r(n.sourcePath),asset:{...n.asset,id:Z(n.sourcePath)?`source-artifact-${u({packageHash:t.contentHash,assetId:n.asset.id})}`:n.asset.id,path:r(n.asset.path)}}))}});return me.parse({draft:w,filePaths:o})}b(at,"prepareTasksetDraftSource");function st(s){let t=me.parse(s.initialized),a=P(s.source);if(t.draft.modelScope?.source?.sourcePackageHash!==a.contentHash)throw new Error("Taskset draft lost its source preparation.");let e=new Map;for(let r of t.filePaths){let p=a.files.find(o=>o.asset.id===r.assetId);if(!p)throw new Error("Taskset draft source asset is missing.");for(let o of r.paths){let k=e.get(o);if(k&&k.contentHash!==p.asset.contentHash)throw new Error("Taskset draft source paths conflict.");e.set(o,{path:o,contentHash:p.asset.contentHash,sizeBytes:p.asset.sizeBytes,base64:p.base64})}}for(let r of Ie(t.draft))if(!e.has(r.relativePath)){let p=new TextEncoder().encode(r.source);e.set(r.relativePath,{path:r.relativePath,contentHash:ue(p),sizeBytes:p.byteLength,base64:Buffer.from(p).toString("base64")})}let i=t.draft;if(i.metrics.customAggregator){let r=e.get(i.metrics.customAggregator.module);if(!r)throw new Error("Declared Taskset metric module is missing.");_e(r),i=K.parse({...i,metrics:{...i.metrics,customAggregator:{...i.metrics.customAggregator,contentHash:r.contentHash}}})}return He({schemaVersion:"openpond.tasksetDraftWorkspace.v1",draft:i,files:[...e.values()]})}b(st,"materializeTasksetDraftWorkspace");export{Ke as a,We as b,Je as c,Xe as d,Ye as e,Qe as f,y as g,$e as h,Le as i,pe as j,Fe as k,At as l,Ze as m,Dt as n,ae as o,et as p,ta as q,tt as r,me as s,at as t,st as u};
@@ -0,0 +1,2 @@
1
+ import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
+ import{Vb as E,_ as m,aa as T,ja as p}from"./chunk-YNQWJWIC.js";import{ca as y}from"./chunk-J572ANHX.js";import{n as w}from"./chunk-VVNV4NNW.js";import{a as k}from"./chunk-FTQLQJQV.js";import{constants as u}from"node:fs";import{link as O,lstat as F,mkdir as h,mkdtemp as P,open as N,readFile as x,readdir as B,rename as A,rm as v,writeFile as I}from"node:fs/promises";import i from"node:path";async function M(r,a){let s=a.metadata.importedPackageHash;if(s===void 0)return;if(typeof s!="string"||!r)throw new Error("Imported batch requires its package storage directory.");let t=await S(r,s);if(!t.learningResources||t.taskset.id!==a.id||t.taskset.revision!==a.revision||w(y(t.taskset))!==w(a.metadata.learning))throw new Error("Imported batch differs from its pinned package.");return t}k(M,"readImportedLearningTasksetPackage");async function J(r,a,s=m){let t=p(a,s),o=i.join(r,"training","portable-packages");await h(o,{recursive:!0});let d=i.join(o,`${t.contentHash}.json`),c=await P(i.join(o,".package-"));try{let n=i.join(c,"package.json");await I(n,JSON.stringify(t),{flag:"wx",mode:384});try{await O(n,d)}catch(e){if(e.code!=="EEXIST")throw e;await S(r,t.contentHash,s)}}finally{await v(c,{recursive:!0,force:!0})}}k(J,"cacheTasksetPackage");async function S(r,a,s=m){if(!/^[a-f0-9]{64}$/.test(a))throw new Error("Invalid Taskset package cache identity.");let t=i.join(r,"training","portable-packages",`${a}.json`),o=await N(t,u.O_RDONLY|u.O_NOFOLLOW|u.O_NONBLOCK);try{let d=await o.stat();if(!d.isFile()||d.size>s)throw new Error("Taskset package cache must be a bounded regular file.");let c=Buffer.alloc(d.size),n=0;for(;n<c.length;){let f=await o.read(c,n,c.length-n,n);if(!f.bytesRead)throw new Error("Taskset package cache changed during read.");n+=f.bytesRead}if((await o.read(Buffer.alloc(1),0,1,n)).bytesRead)throw new Error("Taskset package cache changed during read.");let e=p(JSON.parse(c.toString("utf8")),s);if(e.contentHash!==a)throw new Error("Cached Taskset package differs from its saved receipt.");return e}finally{await o.close()}}k(S,"readCachedTasksetPackage");async function $(r){let a=p(r.package),s=E(r.taskset.profileId,a.contentHash);if(r.taskset.environment.metadata.runtimeSourceTasksetId!==s)throw new Error("Imported Taskset directory differs from its package identity.");let t=new Map,o=k((e,f)=>{if(i.isAbsolute(e)||e.includes("\\")||e.split("/").some(l=>!l||l==="."||l===".."))throw new Error("Taskset package file requires a safe relative path.");let g=t.get(e);if(g&&!Buffer.from(g).equals(Buffer.from(f)))throw new Error(`Taskset package files collide at ${e}.`);t.set(e,f)},"add");for(let e of a.files)o(e.asset.path,T(e));for(let e of r.generatedFiles)o(e.path,Buffer.from(e.content,"utf8"));o("taskset.json",Buffer.from(JSON.stringify(r.taskset),"utf8"));let d=i.join(r.home,"training","tasksets");await h(d,{recursive:!0});let c=await P(i.join(d,".package-import-")),n=i.join(d,s);try{for(let[e,f]of t)await h(i.dirname(i.join(c,e)),{recursive:!0}),await I(i.join(c,e),f,{flag:"wx",mode:384});try{await A(c,n)}catch(e){if(!["EEXIST","ENOTEMPTY"].includes(e.code??""))throw e;let f=await F(n);if(!f.isDirectory()||f.isSymbolicLink())throw new Error("Imported Taskset destination must be a regular directory.");let g=await j(n);if(JSON.stringify(g.sort())!==JSON.stringify([...t.keys()].sort()))throw new Error("Imported Taskset file inventory changed.");for(let[l,b]of t)if(!(await x(i.join(n,l))).equals(Buffer.from(b)))throw new Error("Imported Taskset files differ from the pinned package.")}await J(r.home,a)}finally{await v(c,{recursive:!0,force:!0})}}k($,"materializeImportedTasksetPackage");async function j(r,a=""){let s=[];for(let t of await B(i.join(r,a),{withFileTypes:!0})){let o=i.posix.join(a,t.name);if(t.isSymbolicLink())throw new Error("Imported Taskset directories cannot contain symbolic links.");if(t.isDirectory())s.push(...await j(r,o));else if(t.isFile())s.push(o);else throw new Error("Imported Taskset packages require regular files.")}return s}k(j,"regularFiles");export{M as a,J as b,S as c,$ as d};
@@ -1,5 +1,5 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{a as R}from"./chunk-KCJVFLBB.js";import{ib as u,kb as E}from"./chunk-4M3YW3EQ.js";import{a as d}from"./chunk-FTQLQJQV.js";var S=class extends R{static{d(this,"SqliteLearningStore")}async listLearningScopes(){return await this.ready,await this.writeQueue,(await this.all("SELECT DISTINCT scope FROM learning_resources ORDER BY scope",[])).map(t=>t.scope)}learningRepository(){return{transaction:d(async(t,o)=>{if(!t.trim())throw new Error("learning_scope_required");await this.ready;let a=this.writeQueue.then(async()=>{let e=this.db;if(!e)throw new Error("learning_store_closed");e.exec("BEGIN IMMEDIATE");let n=!0,i=_(e,t,()=>{if(!n)throw new Error("learning_transaction_closed")});try{let r=await o(i);return e.exec("COMMIT"),r}catch(r){throw e.exec("ROLLBACK"),r}finally{n=!1}});return this.writeQueue=a.then(()=>{},()=>{}),a},"transaction")}}};function _(s,t,o){let a=d((e,n)=>u[e].parse(JSON.parse(n.payload)),"parse");return{async get(e,n,i){o();let r=i===void 0?s.get(`SELECT history.payload FROM learning_resources current
2
+ import{a as R}from"./chunk-KCJVFLBB.js";import{jb as u,lb as E}from"./chunk-J572ANHX.js";import{a as d}from"./chunk-FTQLQJQV.js";var S=class extends R{static{d(this,"SqliteLearningStore")}async listLearningScopes(){return await this.ready,await this.writeQueue,(await this.all("SELECT DISTINCT scope FROM learning_resources ORDER BY scope",[])).map(t=>t.scope)}learningRepository(){return{transaction:d(async(t,o)=>{if(!t.trim())throw new Error("learning_scope_required");await this.ready;let a=this.writeQueue.then(async()=>{let e=this.db;if(!e)throw new Error("learning_store_closed");e.exec("BEGIN IMMEDIATE");let n=!0,i=_(e,t,()=>{if(!n)throw new Error("learning_transaction_closed")});try{let r=await o(i);return e.exec("COMMIT"),r}catch(r){throw e.exec("ROLLBACK"),r}finally{n=!1}});return this.writeQueue=a.then(()=>{},()=>{}),a},"transaction")}}};function _(s,t,o){let a=d((e,n)=>u[e].parse(JSON.parse(n.payload)),"parse");return{async get(e,n,i){o();let r=i===void 0?s.get(`SELECT history.payload FROM learning_resources current
3
3
  JOIN learning_revisions history USING (scope, kind, id, revision)
4
4
  WHERE current.scope = ? AND current.kind = ? AND current.id = ?`,[t,e,n]):s.get("SELECT payload FROM learning_revisions WHERE scope = ? AND kind = ? AND id = ? AND revision = ?",[t,e,n,i]);return r?a(e,r):null},async put(e,n,i,r){o(),N(s,t,e,n,i,r)},async list(e,n){o();let i=Math.max(1,Math.min(100,Math.trunc(n.limit)));if(!Number.isFinite(i))throw new Error("learning_query_limit_invalid");let r=["current.scope = ?","current.kind = ?"],c=[t,e];if(n.reviewState!==void 0){if(e!=="evidence")throw new Error("learning_review_filter_requires_evidence");let l=`EXISTS (SELECT 1 FROM learning_resources decision
5
5
  JOIN learning_revisions decision_history USING (scope, kind, id, revision)
@@ -1,2 +1,2 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{Tb as l}from"./chunk-M6JRS5PA.js";import{c as n,d as a,e as i,g as t}from"./chunk-VVNV4NNW.js";import{A as e}from"./chunk-PF56N7ZY.js";var k=e.enum(["trajectory","reward","demonstration","preference","correction","critique","targeted_feedback","grader_evidence","infrastructure_failure"]),c=e.object({datasetRelease:t,harnessRelease:t,evidenceSetRelease:t.nullable(),profileRelease:t.nullable(),model:e.object({source:e.string().trim().min(1).max(200),revision:e.string().trim().min(1).max(500),artifactHash:a.nullable()}).strict(),environmentHash:a,graderHash:a,toolContractHash:a,verificationReceiptHash:a.nullable()}).strict(),r=e.object({schemaVersion:e.literal("openpond.learningSignal.v1"),id:n,taskId:n.nullable(),episodeId:n.nullable(),policyVersion:e.number().int().nonnegative().nullable(),lineage:c,approved:e.boolean(),verifier:e.enum(["deterministic","model_judge","human","none"]),createdAt:i,contentHash:a,metadata:e.record(e.string(),e.unknown()).default({})}).strict(),m=r.extend({kind:e.literal("trajectory"),payload:e.object({traceRef:e.string().trim().min(1).max(2e3),traceHash:a,terminal:e.boolean(),failureClass:e.enum(["policy_failure","grader_failure","environment_failure","infrastructure_failure","timeout","cancelled"]).nullable(),optimizerSample:l.nullable().optional()}).strict()}).strict(),d=r.extend({kind:e.literal("reward"),payload:e.object({reward:e.number().finite(),components:e.record(e.string(),e.number().finite()),eligible:e.boolean(),graderEvidenceRefs:e.array(n).max(1e3)}).strict()}).strict(),g=r.extend({kind:e.literal("demonstration"),payload:e.object({prompt:e.string().max(5e5),response:e.string().max(1e6)}).strict()}).strict(),u=r.extend({kind:e.literal("preference"),payload:e.object({prompt:e.string().max(5e5),chosen:e.string().max(1e6),rejected:e.string().max(1e6),rationale:e.string().max(5e5).nullable()}).strict()}).strict(),p=r.extend({kind:e.literal("correction"),payload:e.object({original:e.string().max(1e6),corrected:e.string().max(1e6),rationale:e.string().max(5e5).nullable()}).strict()}).strict(),b=r.extend({kind:e.literal("critique"),payload:e.object({response:e.string().max(1e6),critique:e.string().max(5e5),severity:e.enum(["note","warning","error"])}).strict()}).strict(),f=r.extend({kind:e.literal("targeted_feedback"),payload:e.object({turnIndex:e.number().int().nonnegative(),target:e.enum(["reasoning","tool","answer","policy"]),feedback:e.string().max(5e5)}).strict()}).strict(),h=r.extend({kind:e.literal("grader_evidence"),payload:e.object({graderId:n,score:e.number().finite().nullable(),passed:e.boolean(),privilegedArtifactRefs:e.array(e.string().trim().min(1).max(2e3))}).strict()}).strict(),x=r.extend({kind:e.literal("infrastructure_failure"),approved:e.literal(!1),verifier:e.literal("none"),payload:e.object({code:n,phase:n,retryable:e.boolean(),rewardEligible:e.literal(!1)}).strict()}).strict(),o=e.discriminatedUnion("kind",[m,d,g,u,p,b,f,h,x]),H=e.object({schemaVersion:e.literal("openpond.learningSignalBatch.v1"),manifestId:n,manifestHash:a,sequence:e.number().int().nonnegative(),signals:e.array(o).min(1).max(1e5),contentHash:a}).strict();var S=e.object({id:n,turn:e.number().int().nonnegative(),kind:e.enum(["message","tool_call","terminal"]),name:n.nullable(),arguments:e.record(e.string(),e.unknown()),content:e.string().max(1e6).nullable(),contentHash:a}).strict(),_=e.object({actionId:n,turn:e.number().int().nonnegative(),terminal:e.boolean(),output:e.record(e.string(),e.unknown()),artifactRefs:e.array(e.string().trim().min(1).max(2e3)),contentHash:a}).strict(),v=e.object({sequence:e.number().int().nonnegative(),type:e.enum(["created","reset","action","observation","terminal","graded","feedback","failure","collected","destroyed"]),timestamp:i,payloadHash:a,metadata:e.record(e.string(),e.unknown()).default({})}).strict(),s=e.object({graderId:n,graderVersion:e.string().trim().min(1).max(200),score:e.number().finite().nullable(),passed:e.boolean(),rewardEligible:e.boolean(),failureClass:e.enum(["policy_failure","grader_failure","environment_failure","infrastructure_failure","timeout","cancelled"]).nullable(),feedback:e.array(e.string().max(5e5)),visibleEvidenceRefs:e.array(e.string().trim().min(1).max(2e3)),privilegedEvidenceRefs:e.array(e.string().trim().min(1).max(2e3)),contentHash:a}).strict(),A=e.object({schemaVersion:e.literal("openpond.harnessRunTrace.v1"),manifest:t,taskId:n,seed:e.string().trim().min(1).max(500),events:e.array(v).max(1e6),actions:e.array(S).max(1e5),observations:e.array(_).max(1e5),graderEvidence:e.array(s).max(1e4),learningSignals:e.array(o).max(1e5),terminal:e.boolean(),failureClass:s.shape.failureClass,artifactHash:a,contentHash:a}).strict();export{k as a};
2
+ import{Tb as l}from"./chunk-ABF3W2MO.js";import{c as n,d as a,e as i,g as t}from"./chunk-VVNV4NNW.js";import{A as e}from"./chunk-PF56N7ZY.js";var k=e.enum(["trajectory","reward","demonstration","preference","correction","critique","targeted_feedback","grader_evidence","infrastructure_failure"]),c=e.object({datasetRelease:t,harnessRelease:t,evidenceSetRelease:t.nullable(),profileRelease:t.nullable(),model:e.object({source:e.string().trim().min(1).max(200),revision:e.string().trim().min(1).max(500),artifactHash:a.nullable()}).strict(),environmentHash:a,graderHash:a,toolContractHash:a,verificationReceiptHash:a.nullable()}).strict(),r=e.object({schemaVersion:e.literal("openpond.learningSignal.v1"),id:n,taskId:n.nullable(),episodeId:n.nullable(),policyVersion:e.number().int().nonnegative().nullable(),lineage:c,approved:e.boolean(),verifier:e.enum(["deterministic","model_judge","human","none"]),createdAt:i,contentHash:a,metadata:e.record(e.string(),e.unknown()).default({})}).strict(),m=r.extend({kind:e.literal("trajectory"),payload:e.object({traceRef:e.string().trim().min(1).max(2e3),traceHash:a,terminal:e.boolean(),failureClass:e.enum(["policy_failure","grader_failure","environment_failure","infrastructure_failure","timeout","cancelled"]).nullable(),optimizerSample:l.nullable().optional()}).strict()}).strict(),d=r.extend({kind:e.literal("reward"),payload:e.object({reward:e.number().finite(),components:e.record(e.string(),e.number().finite()),eligible:e.boolean(),graderEvidenceRefs:e.array(n).max(1e3)}).strict()}).strict(),g=r.extend({kind:e.literal("demonstration"),payload:e.object({prompt:e.string().max(5e5),response:e.string().max(1e6)}).strict()}).strict(),u=r.extend({kind:e.literal("preference"),payload:e.object({prompt:e.string().max(5e5),chosen:e.string().max(1e6),rejected:e.string().max(1e6),rationale:e.string().max(5e5).nullable()}).strict()}).strict(),p=r.extend({kind:e.literal("correction"),payload:e.object({original:e.string().max(1e6),corrected:e.string().max(1e6),rationale:e.string().max(5e5).nullable()}).strict()}).strict(),b=r.extend({kind:e.literal("critique"),payload:e.object({response:e.string().max(1e6),critique:e.string().max(5e5),severity:e.enum(["note","warning","error"])}).strict()}).strict(),f=r.extend({kind:e.literal("targeted_feedback"),payload:e.object({turnIndex:e.number().int().nonnegative(),target:e.enum(["reasoning","tool","answer","policy"]),feedback:e.string().max(5e5)}).strict()}).strict(),h=r.extend({kind:e.literal("grader_evidence"),payload:e.object({graderId:n,score:e.number().finite().nullable(),passed:e.boolean(),privilegedArtifactRefs:e.array(e.string().trim().min(1).max(2e3))}).strict()}).strict(),x=r.extend({kind:e.literal("infrastructure_failure"),approved:e.literal(!1),verifier:e.literal("none"),payload:e.object({code:n,phase:n,retryable:e.boolean(),rewardEligible:e.literal(!1)}).strict()}).strict(),o=e.discriminatedUnion("kind",[m,d,g,u,p,b,f,h,x]),H=e.object({schemaVersion:e.literal("openpond.learningSignalBatch.v1"),manifestId:n,manifestHash:a,sequence:e.number().int().nonnegative(),signals:e.array(o).min(1).max(1e5),contentHash:a}).strict();var S=e.object({id:n,turn:e.number().int().nonnegative(),kind:e.enum(["message","tool_call","terminal"]),name:n.nullable(),arguments:e.record(e.string(),e.unknown()),content:e.string().max(1e6).nullable(),contentHash:a}).strict(),_=e.object({actionId:n,turn:e.number().int().nonnegative(),terminal:e.boolean(),output:e.record(e.string(),e.unknown()),artifactRefs:e.array(e.string().trim().min(1).max(2e3)),contentHash:a}).strict(),v=e.object({sequence:e.number().int().nonnegative(),type:e.enum(["created","reset","action","observation","terminal","graded","feedback","failure","collected","destroyed"]),timestamp:i,payloadHash:a,metadata:e.record(e.string(),e.unknown()).default({})}).strict(),s=e.object({graderId:n,graderVersion:e.string().trim().min(1).max(200),score:e.number().finite().nullable(),passed:e.boolean(),rewardEligible:e.boolean(),failureClass:e.enum(["policy_failure","grader_failure","environment_failure","infrastructure_failure","timeout","cancelled"]).nullable(),feedback:e.array(e.string().max(5e5)),visibleEvidenceRefs:e.array(e.string().trim().min(1).max(2e3)),privilegedEvidenceRefs:e.array(e.string().trim().min(1).max(2e3)),contentHash:a}).strict(),A=e.object({schemaVersion:e.literal("openpond.harnessRunTrace.v1"),manifest:t,taskId:n,seed:e.string().trim().min(1).max(500),events:e.array(v).max(1e6),actions:e.array(S).max(1e5),observations:e.array(_).max(1e5),graderEvidence:e.array(s).max(1e4),learningSignals:e.array(o).max(1e5),terminal:e.boolean(),failureClass:s.shape.failureClass,artifactHash:a,contentHash:a}).strict();export{k as a};
@@ -1,3 +1,3 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{Ib as P,Lb as h,Mb as E}from"./chunk-M6JRS5PA.js";import{c as u,n as f}from"./chunk-VVNV4NNW.js";import{A as d}from"./chunk-PF56N7ZY.js";import{a as c}from"./chunk-FTQLQJQV.js";var S=d.object({id:u,runIds:d.array(u).min(2).max(100)}).strict();function j(r){return async s=>{let i=S.parse(s),l=await r.selectedProfile();if(!l)throw new Error("Select a Profile before comparing its evaluation runs.");let a=[];for(let e of i.runIds){let t=await r.store.getProfileEvaluationRun(e);if(!t||f(t.profileRef)!==f(l.ref))throw new Error(`Profile evaluation run ${e} is unavailable in the selected Profile.`);a.push({manifest:t.manifest,result:t.metric})}let o=await r.store.getProfileEvaluationComparison(i.id),n=P({id:i.id,members:a,createdAt:o?.createdAt??new Date().toISOString()});return r.store.saveProfileEvaluationComparison(l.ref,n)}}c(j,"createProfileEvaluationComparisonService");import{promises as m}from"node:fs";import v from"node:path";var y=d.object({id:u,evidenceKind:d.enum(["run","suite","comparison"]),evidenceId:u}).strict();function w(r){return v.join(r,"evals","reports")}c(w,"reportDirectory");async function R(r){let s=await m.lstat(r).catch(i=>{if(i.code==="ENOENT")return null;throw i});if(s&&(!s.isDirectory()||s.isSymbolicLink()))throw new Error("Profile evaluation report directory must be a regular directory.");s||await m.mkdir(r)}c(R,"ensureRegularDirectory");async function k(r){let s,i;if(r.evidenceKind==="run")s=[r.evidenceId],i="";else if(r.evidenceKind==="suite"){let o=await r.store.getProfileEvaluationSuiteRun(r.evidenceId);if(!o||o.profileId!==r.profileRef.profileId)throw new Error("Profile evaluation suite is unavailable.");s=o.members.map(n=>n.runManifest.id),i=o.contentHash}else{let o=await r.store.getProfileEvaluationComparison(r.evidenceId);if(!o)throw new Error("Profile evaluation comparison is unavailable.");s=o.members.map(n=>n.runManifest.id),i=o.contentHash}let l=await Promise.all(s.map(o=>r.store.getProfileEvaluationRun(o)));if(l.some(o=>!o||f(o.profileRef)!==f(r.profileRef)))throw new Error("Profile evaluation report is missing authorized run evidence.");let a=l;if(r.evidenceKind==="run"&&(i=a[0].contentHash),r.evidenceKind!=="run"){let o=r.evidenceKind==="suite"?(await r.store.getProfileEvaluationSuiteRun(r.evidenceId)).members.map(n=>n.runHash):(await r.store.getProfileEvaluationComparison(r.evidenceId)).members.map(n=>n.metricResultHash);for(let[n,e]of a.entries())if(r.evidenceKind==="suite"&&o[n]!==e.contentHash||r.evidenceKind==="comparison"&&o[n]!==e.metric.contentHash)throw new Error("Profile evaluation report evidence differs from retained member runs.")}return{runs:a,primary:{kind:r.evidenceKind,id:r.evidenceId,contentHash:i}}}c(k,"loadRuns");async function H(r){let s=y.parse(r.request),{runs:i,primary:l}=await k({store:r.store,profileRef:r.profileRef,evidenceKind:s.evidenceKind,evidenceId:s.evidenceId}),a=c(e=>[...new Map(e.map(t=>[f(t),t])).values()],"unique"),o=a(i.map(e=>f(e.manifest.metricPolicy))),n=i.map(e=>e.metric.value).filter(e=>e!==null);return h({schemaVersion:"openpond.profileEvaluationReport.v1",id:s.id,createdAt:new Date().toISOString(),testedSources:a(i.map(e=>({profileId:e.manifest.profileEvaluation.profileId,sourceRevision:e.manifest.profileEvaluation.sourceRevision,harnessRelease:e.manifest.profileEvaluation.harnessRelease}))),tasksetReleases:a(i.map(e=>e.manifest.tasksetRelease)),metricPolicyHashes:o,modelConfigurationHashes:a(i.map(e=>e.manifest.policy.kind==="model"?e.manifest.policy.configurationHash:f(e.manifest.policy))),evidence:[l,...i.filter(e=>l.kind!=="run"||e.manifest.id!==l.id).map(e=>({kind:"run",id:e.manifest.id,contentHash:e.contentHash}))],summary:{totalChecks:i.length,passedChecks:i.filter(e=>e.passed).length,failedChecks:i.filter(e=>!e.passed&&e.metric.value!==null).length,unscoredChecks:i.filter(e=>!e.passed&&e.metric.value===null).length,meanScore:o.length===1&&n.length===i.length?n.reduce((e,t)=>e+t,0)/n.length:null}})}c(H,"buildProfileEvaluationReport");function q(r){return{list:c(async()=>{let l=await r.selectedProfile();if(!l)return[];let a=w(l.sourcePath),o=await m.lstat(a).catch(t=>{if(t.code==="ENOENT")return null;throw t});if(!o)return[];if(!o.isDirectory()||o.isSymbolicLink())throw new Error("Profile evaluation report directory is unsafe.");let n=await m.readdir(a,{withFileTypes:!0});return(await Promise.all(n.filter(t=>t.name.endsWith(".json")).map(async t=>{if(!t.isFile()||t.isSymbolicLink())throw new Error("Profile evaluation report must be a regular file.");let p=E(JSON.parse(await m.readFile(v.join(a,t.name),"utf8")));if(`${p.id}.json`!==t.name||p.testedSources.some(g=>g.profileId!==l.ref.profileId))throw new Error("Profile evaluation report differs from its source location.");return p}))).sort((t,p)=>p.createdAt.localeCompare(t.createdAt))},"list"),save:c(async l=>{let a=await r.selectedProfile();if(!a?.gitBacked)throw new Error("Select a Git-backed Profile before saving an evaluation report.");let o=await H({store:r.store,profileRef:a.ref,request:l}),n=v.join(a.sourcePath,"evals");await R(n);let e=w(a.sourcePath);return await R(e),await m.writeFile(v.join(e,`${o.id}.json`),`${JSON.stringify(o,null,2)}
2
+ import{Ib as P,Lb as h,Mb as E}from"./chunk-ABF3W2MO.js";import{c as u,n as f}from"./chunk-VVNV4NNW.js";import{A as d}from"./chunk-PF56N7ZY.js";import{a as c}from"./chunk-FTQLQJQV.js";var S=d.object({id:u,runIds:d.array(u).min(2).max(100)}).strict();function j(r){return async s=>{let i=S.parse(s),l=await r.selectedProfile();if(!l)throw new Error("Select a Profile before comparing its evaluation runs.");let a=[];for(let e of i.runIds){let t=await r.store.getProfileEvaluationRun(e);if(!t||f(t.profileRef)!==f(l.ref))throw new Error(`Profile evaluation run ${e} is unavailable in the selected Profile.`);a.push({manifest:t.manifest,result:t.metric})}let o=await r.store.getProfileEvaluationComparison(i.id),n=P({id:i.id,members:a,createdAt:o?.createdAt??new Date().toISOString()});return r.store.saveProfileEvaluationComparison(l.ref,n)}}c(j,"createProfileEvaluationComparisonService");import{promises as m}from"node:fs";import v from"node:path";var y=d.object({id:u,evidenceKind:d.enum(["run","suite","comparison"]),evidenceId:u}).strict();function w(r){return v.join(r,"evals","reports")}c(w,"reportDirectory");async function R(r){let s=await m.lstat(r).catch(i=>{if(i.code==="ENOENT")return null;throw i});if(s&&(!s.isDirectory()||s.isSymbolicLink()))throw new Error("Profile evaluation report directory must be a regular directory.");s||await m.mkdir(r)}c(R,"ensureRegularDirectory");async function k(r){let s,i;if(r.evidenceKind==="run")s=[r.evidenceId],i="";else if(r.evidenceKind==="suite"){let o=await r.store.getProfileEvaluationSuiteRun(r.evidenceId);if(!o||o.profileId!==r.profileRef.profileId)throw new Error("Profile evaluation suite is unavailable.");s=o.members.map(n=>n.runManifest.id),i=o.contentHash}else{let o=await r.store.getProfileEvaluationComparison(r.evidenceId);if(!o)throw new Error("Profile evaluation comparison is unavailable.");s=o.members.map(n=>n.runManifest.id),i=o.contentHash}let l=await Promise.all(s.map(o=>r.store.getProfileEvaluationRun(o)));if(l.some(o=>!o||f(o.profileRef)!==f(r.profileRef)))throw new Error("Profile evaluation report is missing authorized run evidence.");let a=l;if(r.evidenceKind==="run"&&(i=a[0].contentHash),r.evidenceKind!=="run"){let o=r.evidenceKind==="suite"?(await r.store.getProfileEvaluationSuiteRun(r.evidenceId)).members.map(n=>n.runHash):(await r.store.getProfileEvaluationComparison(r.evidenceId)).members.map(n=>n.metricResultHash);for(let[n,e]of a.entries())if(r.evidenceKind==="suite"&&o[n]!==e.contentHash||r.evidenceKind==="comparison"&&o[n]!==e.metric.contentHash)throw new Error("Profile evaluation report evidence differs from retained member runs.")}return{runs:a,primary:{kind:r.evidenceKind,id:r.evidenceId,contentHash:i}}}c(k,"loadRuns");async function H(r){let s=y.parse(r.request),{runs:i,primary:l}=await k({store:r.store,profileRef:r.profileRef,evidenceKind:s.evidenceKind,evidenceId:s.evidenceId}),a=c(e=>[...new Map(e.map(t=>[f(t),t])).values()],"unique"),o=a(i.map(e=>f(e.manifest.metricPolicy))),n=i.map(e=>e.metric.value).filter(e=>e!==null);return h({schemaVersion:"openpond.profileEvaluationReport.v1",id:s.id,createdAt:new Date().toISOString(),testedSources:a(i.map(e=>({profileId:e.manifest.profileEvaluation.profileId,sourceRevision:e.manifest.profileEvaluation.sourceRevision,harnessRelease:e.manifest.profileEvaluation.harnessRelease}))),tasksetReleases:a(i.map(e=>e.manifest.tasksetRelease)),metricPolicyHashes:o,modelConfigurationHashes:a(i.map(e=>e.manifest.policy.kind==="model"?e.manifest.policy.configurationHash:f(e.manifest.policy))),evidence:[l,...i.filter(e=>l.kind!=="run"||e.manifest.id!==l.id).map(e=>({kind:"run",id:e.manifest.id,contentHash:e.contentHash}))],summary:{totalChecks:i.length,passedChecks:i.filter(e=>e.passed).length,failedChecks:i.filter(e=>!e.passed&&e.metric.value!==null).length,unscoredChecks:i.filter(e=>!e.passed&&e.metric.value===null).length,meanScore:o.length===1&&n.length===i.length?n.reduce((e,t)=>e+t,0)/n.length:null}})}c(H,"buildProfileEvaluationReport");function q(r){return{list:c(async()=>{let l=await r.selectedProfile();if(!l)return[];let a=w(l.sourcePath),o=await m.lstat(a).catch(t=>{if(t.code==="ENOENT")return null;throw t});if(!o)return[];if(!o.isDirectory()||o.isSymbolicLink())throw new Error("Profile evaluation report directory is unsafe.");let n=await m.readdir(a,{withFileTypes:!0});return(await Promise.all(n.filter(t=>t.name.endsWith(".json")).map(async t=>{if(!t.isFile()||t.isSymbolicLink())throw new Error("Profile evaluation report must be a regular file.");let p=E(JSON.parse(await m.readFile(v.join(a,t.name),"utf8")));if(`${p.id}.json`!==t.name||p.testedSources.some(g=>g.profileId!==l.ref.profileId))throw new Error("Profile evaluation report differs from its source location.");return p}))).sort((t,p)=>p.createdAt.localeCompare(t.createdAt))},"list"),save:c(async l=>{let a=await r.selectedProfile();if(!a?.gitBacked)throw new Error("Select a Git-backed Profile before saving an evaluation report.");let o=await H({store:r.store,profileRef:a.ref,request:l}),n=v.join(a.sourcePath,"evals");await R(n);let e=w(a.sourcePath);return await R(e),await m.writeFile(v.join(e,`${o.id}.json`),`${JSON.stringify(o,null,2)}
3
3
  `,{flag:"wx"}),o},"save")}}c(q,"createProfileEvaluationReportService");export{j as a,H as b,q as c};
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{F as Ie}from"./chunk-3DVWJCOA.js";import{e as He}from"./chunk-MWXW2CA6.js";import{a as Ee}from"./chunk-IZ56L2ZK.js";import{a as B}from"./chunk-WBUK73ST.js";import{a as je}from"./chunk-OZ6LRNRE.js";import{b as Re,c as ie,y as ne}from"./chunk-PBZCXPPC.js";import{e as ve,i as Se,l as Pe,m as be}from"./chunk-NJLULBTM.js";import{l as v,m as fe,n as j}from"./chunk-VVNV4NNW.js";import{a as c}from"./chunk-FTQLQJQV.js";import{promises as f}from"node:fs";import n from"node:path";import te from"node:path";import{constants as De,promises as D}from"node:fs";import R from"node:path";async function Fe(e){let t=await D.lstat(e);if(t.isSymbolicLink())throw new Error(`Profile source cannot be a symlink: ${e}`);if(t.isFile())return[R.basename(e)];if(!t.isDirectory())throw new Error(`Profile source is not a file or directory: ${e}`);return _(e)}c(Fe,"sourceFilesForImport");function xe(e){for(let t of["agent.ts","index.ts","agent/agent.ts","agent.yaml","agent.yml","agent.json"])if(e.includes(t))return t;return e[0]}c(xe,"selectAgentPrimaryFile");async function $e(e,t){let a=await D.lstat(e);if(!a.isFile()||a.isSymbolicLink())throw new Error(`Harness import source must be a regular non-symlink file: ${e}`);await D.mkdir(R.dirname(t),{recursive:!0}),await D.copyFile(e,t,De.COPYFILE_EXCL)}c($e,"copyRegularFile");function Z(e){let t=R.extname(e).toLowerCase();return[".md",".txt"].includes(t)?t===".md"?"text/markdown":"text/plain":[".json"].includes(t)?"application/json":[".yaml",".yml"].includes(t)?"application/yaml":[".ts",".tsx",".js",".mjs",".cjs"].includes(t)?"text/javascript":t===".py"?"text/x-python":"application/octet-stream"}c(Z,"mediaTypeForPath");async function ee(e,t){let a=R.resolve(e,...t.split("/")),o=R.relative(e,a);if(!o||o.startsWith("..")||R.isAbsolute(o))throw new Error(`Harness source path escapes its root: ${t}`);let s=await D.lstat(a);if(!s.isFile()||s.isSymbolicLink())throw new Error(`Harness source path must be a regular non-symlink file: ${t}`);let r=await D.realpath(a),w=R.relative(await D.realpath(e),r);if(w.startsWith("..")||R.isAbsolute(w))throw new Error(`Harness source path resolves outside its root: ${t}`);return a}c(ee,"resolveContainedRegularFile");async function _(e,t=e){let a=await D.readdir(t,{withFileTypes:!0}),o=[];for(let s of a){if(["node_modules",".git",".openpond"].includes(s.name)||s.name.startsWith(".env"))continue;let r=R.join(t,s.name);if(s.isSymbolicLink())throw new Error(`Harness source cannot contain symlinks: ${R.relative(e,r)}`);if(s.isDirectory())o.push(...await _(e,r));else if(s.isFile())o.push(R.relative(e,r).split(R.sep).join("/"));else throw new Error(`Harness source contains an unsupported entry: ${R.relative(e,r)}`)}return o.sort()}c(_,"listRegularFiles");function H(e){return e.toLowerCase().replace(/[^a-z0-9_-]+/g,"-").replace(/^-+|-+$/g,"").slice(0,48)||"harness"}c(H,"safeSegment");function Ae(e,t){let a=[];return{async copy(o,s){await $e(o,s);let r=te.relative(e,o),w=te.relative(t,s);r&&!r.startsWith("..")&&!te.isAbsolute(r)&&a.push({releasedPath:w.split(te.sep).join("/"),profileRelativePath:r.split(te.sep).join("/")})},add(o,s){a.push({releasedPath:o,profileRelativePath:s})},policy(o){return a.filter(s=>o.some(r=>r.path===s.releasedPath&&r.visibility==="policy"))}}}c(Ae,"createProfileSourceBindings");var Le=c(e=>e==="evals/catalog.json"||/^evals\/(definitions|suites|tasksets)\//.test(e)||/^workflows\/[^/]+\/evals\//.test(e),"isProfilePrivateEvaluationPath");import{execFile as _e}from"node:child_process";import{promises as L}from"node:fs";import G from"node:path";import{promisify as Ne}from"node:util";var ze=Ne(_e);async function nt(e){let t=G.join(e.runPath,"package.json"),a=await L.lstat(t).catch(()=>null);if(a&&(!a.isFile()||a.isSymbolicLink()))throw new Error("Released Profile Agent package manifest must be a regular file.");a||await L.writeFile(t,`{"type":"module"}
3
- `,{flag:"wx"});let o=await me(e.runPath);if(o){let r=o==="npm"?["ci","--omit=dev","--ignore-scripts","--no-audit","--no-fund"]:["install","--prod","--frozen-lockfile","--ignore-scripts","--config.node-linker=hoisted"];await(e.install??Je)(o,r,e.runPath)}let s=G.join(e.runPath,"node_modules","openpond-agent-sdk");if(!await L.lstat(s).catch(()=>null)){let r=JSON.parse(await L.readFile(t,"utf8"));if({...le(r.dependencies),...le(r.optionalDependencies)}["openpond-agent-sdk"])throw new Error("Released Profile Agent declared an SDK dependency that the locked installation did not provide.");let P=await Ie();await L.mkdir(G.dirname(s),{recursive:!0}),await L.symlink(P,s,"dir")}}c(nt,"prepareReleasedProfileActionDependencies");async function me(e){let t=G.join(e,"package.json"),a=await L.lstat(t).catch(()=>null);if(!a)return null;if(!a.isFile()||a.isSymbolicLink())throw new Error("Released Profile Agent package manifest must be a regular file.");let o=JSON.parse(await L.readFile(t,"utf8")),s={...le(o.dependencies),...le(o.optionalDependencies)};if(Object.keys(s).length){for(let[P,u]of Object.entries(s))if(/^(?:file:|link:|workspace:|git\+|https?:)/i.test(u))throw new Error(`Released Profile Agent dependency ${P} must use a portable registry version.`);let r=await We(G.join(e,"package-lock.json")),w=await We(G.join(e,"pnpm-lock.yaml"));if(r===w)throw new Error("Released Profile Agent with third-party dependencies requires exactly one npm or pnpm lockfile.");return r?"npm":"pnpm"}return null}c(me,"inspectReleasedProfileActionDependencies");function le(e){if(e===void 0)return{};if(!e||typeof e!="object"||Array.isArray(e))throw new Error("Released Profile Agent dependencies must be a package map.");let t=Object.entries(e);if(t.some(([a,o])=>!a||typeof o!="string"||!o.trim()))throw new Error("Released Profile Agent dependencies must name portable versions.");return Object.fromEntries(t)}c(le,"dependencyMap");async function We(e){let t=await L.lstat(e).catch(()=>null);if(t&&(!t.isFile()||t.isSymbolicLink()))throw new Error("Released Profile Agent lockfile must be a regular file.");return!!t}c(We,"regularFile");async function Je(e,t,a){try{let o=process.platform==="win32"?`${e}.cmd`:e;await ze(o,t,{cwd:a,timeout:3e5,maxBuffer:1e6,...process.platform==="win32"?{shell:!0}:{}})}catch{throw new Error(`Released Profile Agent locked ${e} dependency installation failed.`)}}c(Je,"installLockedDependencies");var Te="harness.json";async function we(e,t,a,o,s){let r=n.resolve(a.sourcePath),w=[],P=Ae(r,e),u=P.copy,N=new Set((await _(r)).filter(Le)),E=new Set,y=c(i=>{let h=i.id;E.has(h)&&(h=`${h}-${j(i.path).slice(0,8)}`),E.add(h);let b={...i,id:h};return w.push(b),b},"addDeclaration");await f.mkdir(e,{recursive:!0});let ae=n.join(r,"instructions","system.md"),V=await f.lstat(ae).catch(i=>{if(i.code==="ENOENT")return null;throw i});if(V){if(!V.isFile()||V.isSymbolicLink())throw new Error("Profile instructions require an actual regular source file.");await u(ae,n.join(e,"instructions","system.md")),y({id:"instruction-system",kind:"instruction",path:"instructions/system.md",parentId:null,mediaType:"text/markdown",visibility:"policy",portability:"portable"})}for(let i of a.skills.filter(h=>h.enabled)){if(i.validationStatus!=="valid")throw new Error(`Cannot import invalid Profile Skill ${i.name}: ${i.validationMessages.join(" ")}`);let h=n.dirname(n.join(r,i.path)),b=`skills/${H(i.name)}/SKILL.md`;await u(n.join(h,"SKILL.md"),n.join(e,...b.split("/")));let T=y({id:`skill-${H(i.name)}`,kind:"skill",path:b,parentId:null,mediaType:"text/markdown",visibility:"policy",portability:"portable"});for(let p of i.resourceFiles){let O=`skills/${H(i.name)}/${p.split(n.sep).join("/")}`;await u(n.join(h,p),n.join(e,...O.split("/"))),y({id:`skill-resource-${H(i.name)}-${j(p).slice(0,12)}`,kind:"skill_resource",path:O,parentId:T.id,mediaType:Z(O),visibility:"policy",portability:"portable"})}}for(let i of a.agents.filter(h=>h.enabled)){let h=n.resolve(r,i.path),b=await f.realpath(h),T=await f.realpath(r),p=n.relative(T,b);if(p.startsWith("..")||n.isAbsolute(p))throw new Error("Profile Agent source escapes its admitted Profile root.");let O=await f.lstat(h),U=(await Fe(h)).filter(A=>{let C=O.isDirectory()?n.join(b,...A.split("/")):b;return!N.has(n.relative(T,C).split(n.sep).join("/"))});if(U.length===0)throw new Error(`Profile Agent ${i.id} has no source files.`);let Y=xe(U);for(let A of U){let C=`agents/${H(i.id)}/${A}`,Q=(await f.stat(h)).isDirectory()?n.join(h,...A.split("/")):h;await u(Q,n.join(e,...C.split("/"))),y({id:A===Y?`agent-${H(i.id)}`:`agent-asset-${H(i.id)}-${j(A).slice(0,12)}`,kind:A===Y?"agent":"asset",path:C,parentId:null,mediaType:Z(C),visibility:"policy",portability:"portable"})}await me(n.join(e,"agents",H(i.id)))}let X=new Set,se=new Set(a.agents.filter(i=>i.enabled).map(i=>i.id)),W=a.actionCatalog.filter(i=>i.agentId&&se.has(i.agentId)).map(i=>({id:i.id,agentId:H(i.agentId),sourceActionId:i.sourceActionId??i.id,inputSchema:typeof i.inputSchema=="object"&&i.inputSchema!==null?i.inputSchema:{type:"object",additionalProperties:!0}})),re=new Set(W.map(i=>i.id)),z=n.join(r,"workflows","catalog.json"),F=await f.lstat(z).catch(()=>null),l=(await _(r)).filter(i=>i.startsWith("workflows/")),S=l.some(i=>/^workflows\/[^/]+\/(PROMPT\.md|ACTION\.json)$/.test(i));if(S&&F)throw new Error("Authored Workflow packages and legacy workflows/catalog.json cannot coexist; migrate the catalog first.");if(F||S||W.length){if(F&&(!F.isFile()||F.isSymbolicLink()))throw new Error("Profile workflow catalog must be a regular file.");let i=S?He({files:new Map(await Promise.all(l.map(async p=>[p,await f.readFile(await ee(r,p),"utf8")]))),skillPaths:new Set(w.filter(p=>p.kind==="skill").map(p=>p.path)),actionIds:re}):null,h=i?Buffer.from(v(i.catalog)):F?await f.readFile(z):Buffer.from(v({schemaVersion:"openpond.profileWorkflows.v1",workflows:[]}));F&&P.add("workflows/catalog.json","workflows/catalog.json");let b=ie({catalog:JSON.parse(h.toString("utf8")),sourcePaths:new Set(w.filter(p=>p.kind==="skill").map(p=>p.path)),actionIds:new Set(W.map(p=>p.id))});for(let p of b.workflows)X.add(p.id);ue(b);let T="workflows/catalog.json";await f.mkdir(n.join(e,"workflows"),{recursive:!0}),await f.writeFile(n.join(e,"workflows","catalog.json"),h,{flag:"wx"});for(let p of i?.referencedPaths??[])await u(n.join(r,...p.split("/")),n.join(e,...p.split("/"))),y({id:`profile-workflow-source-${j(p).slice(0,16)}`,kind:"asset",path:p,parentId:null,mediaType:Z(p),visibility:"policy",portability:"portable"});y({id:"profile-workflows",kind:"workflow",path:T,parentId:null,mediaType:"application/json",visibility:"policy",portability:"portable"})}(F||S||W.length)&&(await f.writeFile(n.join(e,"workflows","actions.json"),v({schemaVersion:"openpond.profileWorkflowActions.v1",actions:W}),{flag:"wx"}),y({id:"profile-workflow-actions",kind:"asset",path:"workflows/actions.json",parentId:null,mediaType:"application/json",visibility:"policy",portability:"portable"}));let I=n.join(r,"evals","catalog.json"),J=await f.lstat(I).catch(()=>null),$=(await _(r)).filter(i=>/^workflows\/[^/]+\/evals\/[^/]+\.json$/.test(i)||/^evals\/(definitions|suites)\/[^/]+\.json$/.test(i));if(J&&$.length)throw new Error("Authored evaluation definitions and legacy evals/catalog.json cannot coexist; migrate the catalog first.");if(J||$.length){let[{ProfileEvaluationDefinitionSchema:i,ProfileEvaluationSuiteSchema:h,validateProfileEvaluationCatalog:b},{validateTasksetPackage:T}]=await Promise.all([import("./dist-IIFTZWNR.js"),import("./taskset-packages-I7I5KBFP.js")]);if(J&&(!J.isFile()||J.isSymbolicLink()))throw new Error("Profile evaluation catalog must be a regular file.");let p=[],O=[];for(let g of $){let x=JSON.parse(await f.readFile(await ee(r,g),"utf8"));if(g.startsWith("evals/suites/"))O.push(h.parse(x));else{let M=i.parse(x),K=/^workflows\/([^/]+)\/evals\//.exec(g)?.[1];if(K&&(M.target.kind!=="workflow"||M.target.workflowId!==K))throw new Error(`Profile evaluation ${M.id} must target its containing Workflow ${K}.`);p.push(M)}}let U=$.length?Buffer.from(v({schemaVersion:"openpond.profileEvaluations.v1",definitions:p.sort((g,x)=>g.id.localeCompare(x.id)),suites:O.sort((g,x)=>g.id.localeCompare(x.id))})):await f.readFile(I),{catalog:Y}=b({catalog:JSON.parse(U.toString("utf8")),workflowIds:X,skillPaths:new Set(w.filter(g=>g.kind==="skill").map(g=>g.path)),actionIds:re});await f.mkdir(n.join(e,"evals"),{recursive:!0}),await f.writeFile(n.join(e,"evals","catalog.json"),U,{flag:"wx"});for(let g of $)await u(n.join(r,...g.split("/")),n.join(e,...g.split("/"))),y({id:`profile-evaluation-source-${j(g).slice(0,16)}`,kind:"asset",path:g,parentId:null,mediaType:"application/json",visibility:"verifier",portability:"portable"});y({id:"profile-evaluations",kind:"asset",path:"evals/catalog.json",parentId:null,mediaType:"application/json",visibility:"verifier",portability:"portable"});let A=new Set(Y.definitions.map(g=>g.tasksetRelease.contentHash)),C=n.join(r,"evals","tasksets"),Q=await f.lstat(C).catch(()=>null);if(Q&&(!Q.isDirectory()||Q.isSymbolicLink()))throw new Error("Profile evaluation Taskset directory must be a regular directory.");for(let g of A){let x=n.join(C,`${g}.json`),M=await f.lstat(x).catch(()=>null);if(!M)throw new Error(`Profile evaluation Taskset package ${g} is missing.`);if(!M.isFile()||M.isSymbolicLink())throw new Error("Profile evaluation Taskset package must be a regular file.");let K=T(JSON.parse(await f.readFile(x,"utf8")));if(K.taskset.contentHash!==g||!Y.definitions.some(ye=>ye.tasksetRelease.contentHash===g&&ye.tasksetRelease.id===K.taskset.id))throw new Error("Profile evaluation Taskset package differs from its catalog reference.");let ke=`evals/tasksets/${g}.json`;await u(x,n.join(e,...ke.split("/"))),y({id:`profile-evaluation-taskset-${g.slice(0,16)}`,kind:"asset",path:ke,parentId:null,mediaType:"application/json",visibility:"verifier",portability:"portable"})}}let q=await Be(a,o),k=`dependency-lock/${q.name}`;await f.mkdir(n.join(e,"dependency-lock"),{recursive:!0}),q.sourcePath?await u(q.sourcePath,n.join(e,...k.split("/"))):await f.writeFile(n.join(e,...k.split("/")),v(q.generated),{flag:"wx"}),y({id:"dependency-lock",kind:"dependency_lock",path:k,parentId:null,mediaType:Z(k),visibility:"policy",portability:"portable"}),await f.writeFile(n.join(e,"program.json"),v({runtimeProtocol:"openpond.agent-runtime.v1"}),{flag:"wx"}),y({id:"agent-runtime-program",kind:"program",path:"program.json",parentId:null,mediaType:"application/json",visibility:"policy",portability:"portable"});let de=B.parse({schemaVersion:"openpond.harnessSourceManifest.v1",name:t,files:w,toolDeclarations:[],capabilityRequirements:[],lifecycle:{create:!0,reset:!0,step:!0,collect:!0,destroy:!0,resetScope:"attempt"},graderInterface:{visibleEvidence:["output","runtime_events","artifacts"],privilegedEvidence:["expected_output","private_verifier"],privateVerifierIsolation:!0},runtimeProtocol:"openpond.agent-runtime.v1",metadata:{importedFrom:"openpond.profile",profileId:a.activeProfile,...s?{profileRepositoryId:s}:{},profileGitHead:o??a.git?.head??null,profileSourceBindings:P.policy(w),profileInstructionSourcePath:"instructions/system.md",excludedEvalCount:a.evals.length,actionConversionPending:a.actionCatalog.length>0}});await f.writeFile(n.join(e,Te),v(de),{flag:"wx"}),await ce(e,t)}c(we,"writeImportedProfileSource");function ue(e){for(let t of e.workflows){let a=ne(t.inputSchema);if(!a.valid)throw new Error(`Profile workflow ${t.id} has an invalid input schema: ${a.issues[0]?.message??"schema mismatch"}`)}}c(ue,"assertProfileWorkflowInputSchemas");async function ce(e,t){let a=n.join(e,Te),o=B.parse(JSON.parse(await f.readFile(a,"utf8")));if(o.files.some(u=>u.kind==="instruction"))return;let s="instructions/system.md";await f.mkdir(n.join(e,"instructions"),{recursive:!0}),await f.writeFile(n.join(e,...s.split("/")),`# ${t}
2
+ import{F as Ie}from"./chunk-B4RKHHF7.js";import{a as B}from"./chunk-WBUK73ST.js";import{e as He}from"./chunk-MWXW2CA6.js";import{a as Ee}from"./chunk-IZ56L2ZK.js";import{a as je}from"./chunk-MPNJ2BB4.js";import{b as Re,c as ie,y as ne}from"./chunk-PBZCXPPC.js";import{e as ve,i as Se,l as Pe,m as be}from"./chunk-NJLULBTM.js";import{l as v,m as fe,n as j}from"./chunk-VVNV4NNW.js";import{a as c}from"./chunk-FTQLQJQV.js";import{promises as f}from"node:fs";import n from"node:path";import te from"node:path";import{constants as De,promises as D}from"node:fs";import R from"node:path";async function Fe(e){let t=await D.lstat(e);if(t.isSymbolicLink())throw new Error(`Profile source cannot be a symlink: ${e}`);if(t.isFile())return[R.basename(e)];if(!t.isDirectory())throw new Error(`Profile source is not a file or directory: ${e}`);return _(e)}c(Fe,"sourceFilesForImport");function xe(e){for(let t of["agent.ts","index.ts","agent/agent.ts","agent.yaml","agent.yml","agent.json"])if(e.includes(t))return t;return e[0]}c(xe,"selectAgentPrimaryFile");async function $e(e,t){let a=await D.lstat(e);if(!a.isFile()||a.isSymbolicLink())throw new Error(`Harness import source must be a regular non-symlink file: ${e}`);await D.mkdir(R.dirname(t),{recursive:!0}),await D.copyFile(e,t,De.COPYFILE_EXCL)}c($e,"copyRegularFile");function Z(e){let t=R.extname(e).toLowerCase();return[".md",".txt"].includes(t)?t===".md"?"text/markdown":"text/plain":[".json"].includes(t)?"application/json":[".yaml",".yml"].includes(t)?"application/yaml":[".ts",".tsx",".js",".mjs",".cjs"].includes(t)?"text/javascript":t===".py"?"text/x-python":"application/octet-stream"}c(Z,"mediaTypeForPath");async function ee(e,t){let a=R.resolve(e,...t.split("/")),o=R.relative(e,a);if(!o||o.startsWith("..")||R.isAbsolute(o))throw new Error(`Harness source path escapes its root: ${t}`);let s=await D.lstat(a);if(!s.isFile()||s.isSymbolicLink())throw new Error(`Harness source path must be a regular non-symlink file: ${t}`);let r=await D.realpath(a),w=R.relative(await D.realpath(e),r);if(w.startsWith("..")||R.isAbsolute(w))throw new Error(`Harness source path resolves outside its root: ${t}`);return a}c(ee,"resolveContainedRegularFile");async function _(e,t=e){let a=await D.readdir(t,{withFileTypes:!0}),o=[];for(let s of a){if(["node_modules",".git",".openpond"].includes(s.name)||s.name.startsWith(".env"))continue;let r=R.join(t,s.name);if(s.isSymbolicLink())throw new Error(`Harness source cannot contain symlinks: ${R.relative(e,r)}`);if(s.isDirectory())o.push(...await _(e,r));else if(s.isFile())o.push(R.relative(e,r).split(R.sep).join("/"));else throw new Error(`Harness source contains an unsupported entry: ${R.relative(e,r)}`)}return o.sort()}c(_,"listRegularFiles");function H(e){return e.toLowerCase().replace(/[^a-z0-9_-]+/g,"-").replace(/^-+|-+$/g,"").slice(0,48)||"harness"}c(H,"safeSegment");function Ae(e,t){let a=[];return{async copy(o,s){await $e(o,s);let r=te.relative(e,o),w=te.relative(t,s);r&&!r.startsWith("..")&&!te.isAbsolute(r)&&a.push({releasedPath:w.split(te.sep).join("/"),profileRelativePath:r.split(te.sep).join("/")})},add(o,s){a.push({releasedPath:o,profileRelativePath:s})},policy(o){return a.filter(s=>o.some(r=>r.path===s.releasedPath&&r.visibility==="policy"))}}}c(Ae,"createProfileSourceBindings");var Le=c(e=>e==="evals/catalog.json"||/^evals\/(definitions|suites|tasksets)\//.test(e)||/^workflows\/[^/]+\/evals\//.test(e),"isProfilePrivateEvaluationPath");import{execFile as _e}from"node:child_process";import{promises as L}from"node:fs";import G from"node:path";import{promisify as Ne}from"node:util";var ze=Ne(_e);async function nt(e){let t=G.join(e.runPath,"package.json"),a=await L.lstat(t).catch(()=>null);if(a&&(!a.isFile()||a.isSymbolicLink()))throw new Error("Released Profile Agent package manifest must be a regular file.");a||await L.writeFile(t,`{"type":"module"}
3
+ `,{flag:"wx"});let o=await me(e.runPath);if(o){let r=o==="npm"?["ci","--omit=dev","--ignore-scripts","--no-audit","--no-fund"]:["install","--prod","--frozen-lockfile","--ignore-scripts","--config.node-linker=hoisted"];await(e.install??Je)(o,r,e.runPath)}let s=G.join(e.runPath,"node_modules","openpond-agent-sdk");if(!await L.lstat(s).catch(()=>null)){let r=JSON.parse(await L.readFile(t,"utf8"));if({...le(r.dependencies),...le(r.optionalDependencies)}["openpond-agent-sdk"])throw new Error("Released Profile Agent declared an SDK dependency that the locked installation did not provide.");let P=await Ie();await L.mkdir(G.dirname(s),{recursive:!0}),await L.symlink(P,s,"dir")}}c(nt,"prepareReleasedProfileActionDependencies");async function me(e){let t=G.join(e,"package.json"),a=await L.lstat(t).catch(()=>null);if(!a)return null;if(!a.isFile()||a.isSymbolicLink())throw new Error("Released Profile Agent package manifest must be a regular file.");let o=JSON.parse(await L.readFile(t,"utf8")),s={...le(o.dependencies),...le(o.optionalDependencies)};if(Object.keys(s).length){for(let[P,u]of Object.entries(s))if(/^(?:file:|link:|workspace:|git\+|https?:)/i.test(u))throw new Error(`Released Profile Agent dependency ${P} must use a portable registry version.`);let r=await We(G.join(e,"package-lock.json")),w=await We(G.join(e,"pnpm-lock.yaml"));if(r===w)throw new Error("Released Profile Agent with third-party dependencies requires exactly one npm or pnpm lockfile.");return r?"npm":"pnpm"}return null}c(me,"inspectReleasedProfileActionDependencies");function le(e){if(e===void 0)return{};if(!e||typeof e!="object"||Array.isArray(e))throw new Error("Released Profile Agent dependencies must be a package map.");let t=Object.entries(e);if(t.some(([a,o])=>!a||typeof o!="string"||!o.trim()))throw new Error("Released Profile Agent dependencies must name portable versions.");return Object.fromEntries(t)}c(le,"dependencyMap");async function We(e){let t=await L.lstat(e).catch(()=>null);if(t&&(!t.isFile()||t.isSymbolicLink()))throw new Error("Released Profile Agent lockfile must be a regular file.");return!!t}c(We,"regularFile");async function Je(e,t,a){try{let o=process.platform==="win32"?`${e}.cmd`:e;await ze(o,t,{cwd:a,timeout:3e5,maxBuffer:1e6,...process.platform==="win32"?{shell:!0}:{}})}catch{throw new Error(`Released Profile Agent locked ${e} dependency installation failed.`)}}c(Je,"installLockedDependencies");var Te="harness.json";async function we(e,t,a,o,s){let r=n.resolve(a.sourcePath),w=[],P=Ae(r,e),u=P.copy,N=new Set((await _(r)).filter(Le)),E=new Set,y=c(i=>{let h=i.id;E.has(h)&&(h=`${h}-${j(i.path).slice(0,8)}`),E.add(h);let b={...i,id:h};return w.push(b),b},"addDeclaration");await f.mkdir(e,{recursive:!0});let ae=n.join(r,"instructions","system.md"),V=await f.lstat(ae).catch(i=>{if(i.code==="ENOENT")return null;throw i});if(V){if(!V.isFile()||V.isSymbolicLink())throw new Error("Profile instructions require an actual regular source file.");await u(ae,n.join(e,"instructions","system.md")),y({id:"instruction-system",kind:"instruction",path:"instructions/system.md",parentId:null,mediaType:"text/markdown",visibility:"policy",portability:"portable"})}for(let i of a.skills.filter(h=>h.enabled)){if(i.validationStatus!=="valid")throw new Error(`Cannot import invalid Profile Skill ${i.name}: ${i.validationMessages.join(" ")}`);let h=n.dirname(n.join(r,i.path)),b=`skills/${H(i.name)}/SKILL.md`;await u(n.join(h,"SKILL.md"),n.join(e,...b.split("/")));let T=y({id:`skill-${H(i.name)}`,kind:"skill",path:b,parentId:null,mediaType:"text/markdown",visibility:"policy",portability:"portable"});for(let p of i.resourceFiles){let O=`skills/${H(i.name)}/${p.split(n.sep).join("/")}`;await u(n.join(h,p),n.join(e,...O.split("/"))),y({id:`skill-resource-${H(i.name)}-${j(p).slice(0,12)}`,kind:"skill_resource",path:O,parentId:T.id,mediaType:Z(O),visibility:"policy",portability:"portable"})}}for(let i of a.agents.filter(h=>h.enabled)){let h=n.resolve(r,i.path),b=await f.realpath(h),T=await f.realpath(r),p=n.relative(T,b);if(p.startsWith("..")||n.isAbsolute(p))throw new Error("Profile Agent source escapes its admitted Profile root.");let O=await f.lstat(h),U=(await Fe(h)).filter(A=>{let C=O.isDirectory()?n.join(b,...A.split("/")):b;return!N.has(n.relative(T,C).split(n.sep).join("/"))});if(U.length===0)throw new Error(`Profile Agent ${i.id} has no source files.`);let Y=xe(U);for(let A of U){let C=`agents/${H(i.id)}/${A}`,Q=(await f.stat(h)).isDirectory()?n.join(h,...A.split("/")):h;await u(Q,n.join(e,...C.split("/"))),y({id:A===Y?`agent-${H(i.id)}`:`agent-asset-${H(i.id)}-${j(A).slice(0,12)}`,kind:A===Y?"agent":"asset",path:C,parentId:null,mediaType:Z(C),visibility:"policy",portability:"portable"})}await me(n.join(e,"agents",H(i.id)))}let X=new Set,se=new Set(a.agents.filter(i=>i.enabled).map(i=>i.id)),W=a.actionCatalog.filter(i=>i.agentId&&se.has(i.agentId)).map(i=>({id:i.id,agentId:H(i.agentId),sourceActionId:i.sourceActionId??i.id,inputSchema:typeof i.inputSchema=="object"&&i.inputSchema!==null?i.inputSchema:{type:"object",additionalProperties:!0}})),re=new Set(W.map(i=>i.id)),z=n.join(r,"workflows","catalog.json"),F=await f.lstat(z).catch(()=>null),l=(await _(r)).filter(i=>i.startsWith("workflows/")),S=l.some(i=>/^workflows\/[^/]+\/(PROMPT\.md|ACTION\.json)$/.test(i));if(S&&F)throw new Error("Authored Workflow packages and legacy workflows/catalog.json cannot coexist; migrate the catalog first.");if(F||S||W.length){if(F&&(!F.isFile()||F.isSymbolicLink()))throw new Error("Profile workflow catalog must be a regular file.");let i=S?He({files:new Map(await Promise.all(l.map(async p=>[p,await f.readFile(await ee(r,p),"utf8")]))),skillPaths:new Set(w.filter(p=>p.kind==="skill").map(p=>p.path)),actionIds:re}):null,h=i?Buffer.from(v(i.catalog)):F?await f.readFile(z):Buffer.from(v({schemaVersion:"openpond.profileWorkflows.v1",workflows:[]}));F&&P.add("workflows/catalog.json","workflows/catalog.json");let b=ie({catalog:JSON.parse(h.toString("utf8")),sourcePaths:new Set(w.filter(p=>p.kind==="skill").map(p=>p.path)),actionIds:new Set(W.map(p=>p.id))});for(let p of b.workflows)X.add(p.id);ue(b);let T="workflows/catalog.json";await f.mkdir(n.join(e,"workflows"),{recursive:!0}),await f.writeFile(n.join(e,"workflows","catalog.json"),h,{flag:"wx"});for(let p of i?.referencedPaths??[])await u(n.join(r,...p.split("/")),n.join(e,...p.split("/"))),y({id:`profile-workflow-source-${j(p).slice(0,16)}`,kind:"asset",path:p,parentId:null,mediaType:Z(p),visibility:"policy",portability:"portable"});y({id:"profile-workflows",kind:"workflow",path:T,parentId:null,mediaType:"application/json",visibility:"policy",portability:"portable"})}(F||S||W.length)&&(await f.writeFile(n.join(e,"workflows","actions.json"),v({schemaVersion:"openpond.profileWorkflowActions.v1",actions:W}),{flag:"wx"}),y({id:"profile-workflow-actions",kind:"asset",path:"workflows/actions.json",parentId:null,mediaType:"application/json",visibility:"policy",portability:"portable"}));let I=n.join(r,"evals","catalog.json"),J=await f.lstat(I).catch(()=>null),$=(await _(r)).filter(i=>/^workflows\/[^/]+\/evals\/[^/]+\.json$/.test(i)||/^evals\/(definitions|suites)\/[^/]+\.json$/.test(i));if(J&&$.length)throw new Error("Authored evaluation definitions and legacy evals/catalog.json cannot coexist; migrate the catalog first.");if(J||$.length){let[{ProfileEvaluationDefinitionSchema:i,ProfileEvaluationSuiteSchema:h,validateProfileEvaluationCatalog:b},{validateTasksetPackage:T}]=await Promise.all([import("./dist-47AYOIH6.js"),import("./taskset-packages-XK7FSD45.js")]);if(J&&(!J.isFile()||J.isSymbolicLink()))throw new Error("Profile evaluation catalog must be a regular file.");let p=[],O=[];for(let g of $){let x=JSON.parse(await f.readFile(await ee(r,g),"utf8"));if(g.startsWith("evals/suites/"))O.push(h.parse(x));else{let M=i.parse(x),K=/^workflows\/([^/]+)\/evals\//.exec(g)?.[1];if(K&&(M.target.kind!=="workflow"||M.target.workflowId!==K))throw new Error(`Profile evaluation ${M.id} must target its containing Workflow ${K}.`);p.push(M)}}let U=$.length?Buffer.from(v({schemaVersion:"openpond.profileEvaluations.v1",definitions:p.sort((g,x)=>g.id.localeCompare(x.id)),suites:O.sort((g,x)=>g.id.localeCompare(x.id))})):await f.readFile(I),{catalog:Y}=b({catalog:JSON.parse(U.toString("utf8")),workflowIds:X,skillPaths:new Set(w.filter(g=>g.kind==="skill").map(g=>g.path)),actionIds:re});await f.mkdir(n.join(e,"evals"),{recursive:!0}),await f.writeFile(n.join(e,"evals","catalog.json"),U,{flag:"wx"});for(let g of $)await u(n.join(r,...g.split("/")),n.join(e,...g.split("/"))),y({id:`profile-evaluation-source-${j(g).slice(0,16)}`,kind:"asset",path:g,parentId:null,mediaType:"application/json",visibility:"verifier",portability:"portable"});y({id:"profile-evaluations",kind:"asset",path:"evals/catalog.json",parentId:null,mediaType:"application/json",visibility:"verifier",portability:"portable"});let A=new Set(Y.definitions.map(g=>g.tasksetRelease.contentHash)),C=n.join(r,"evals","tasksets"),Q=await f.lstat(C).catch(()=>null);if(Q&&(!Q.isDirectory()||Q.isSymbolicLink()))throw new Error("Profile evaluation Taskset directory must be a regular directory.");for(let g of A){let x=n.join(C,`${g}.json`),M=await f.lstat(x).catch(()=>null);if(!M)throw new Error(`Profile evaluation Taskset package ${g} is missing.`);if(!M.isFile()||M.isSymbolicLink())throw new Error("Profile evaluation Taskset package must be a regular file.");let K=T(JSON.parse(await f.readFile(x,"utf8")));if(K.taskset.contentHash!==g||!Y.definitions.some(ye=>ye.tasksetRelease.contentHash===g&&ye.tasksetRelease.id===K.taskset.id))throw new Error("Profile evaluation Taskset package differs from its catalog reference.");let ke=`evals/tasksets/${g}.json`;await u(x,n.join(e,...ke.split("/"))),y({id:`profile-evaluation-taskset-${g.slice(0,16)}`,kind:"asset",path:ke,parentId:null,mediaType:"application/json",visibility:"verifier",portability:"portable"})}}let q=await Be(a,o),k=`dependency-lock/${q.name}`;await f.mkdir(n.join(e,"dependency-lock"),{recursive:!0}),q.sourcePath?await u(q.sourcePath,n.join(e,...k.split("/"))):await f.writeFile(n.join(e,...k.split("/")),v(q.generated),{flag:"wx"}),y({id:"dependency-lock",kind:"dependency_lock",path:k,parentId:null,mediaType:Z(k),visibility:"policy",portability:"portable"}),await f.writeFile(n.join(e,"program.json"),v({runtimeProtocol:"openpond.agent-runtime.v1"}),{flag:"wx"}),y({id:"agent-runtime-program",kind:"program",path:"program.json",parentId:null,mediaType:"application/json",visibility:"policy",portability:"portable"});let de=B.parse({schemaVersion:"openpond.harnessSourceManifest.v1",name:t,files:w,toolDeclarations:[],capabilityRequirements:[],lifecycle:{create:!0,reset:!0,step:!0,collect:!0,destroy:!0,resetScope:"attempt"},graderInterface:{visibleEvidence:["output","runtime_events","artifacts"],privilegedEvidence:["expected_output","private_verifier"],privateVerifierIsolation:!0},runtimeProtocol:"openpond.agent-runtime.v1",metadata:{importedFrom:"openpond.profile",profileId:a.activeProfile,...s?{profileRepositoryId:s}:{},profileGitHead:o??a.git?.head??null,profileSourceBindings:P.policy(w),profileInstructionSourcePath:"instructions/system.md",excludedEvalCount:a.evals.length,actionConversionPending:a.actionCatalog.length>0}});await f.writeFile(n.join(e,Te),v(de),{flag:"wx"}),await ce(e,t)}c(we,"writeImportedProfileSource");function ue(e){for(let t of e.workflows){let a=ne(t.inputSchema);if(!a.valid)throw new Error(`Profile workflow ${t.id} has an invalid input schema: ${a.issues[0]?.message??"schema mismatch"}`)}}c(ue,"assertProfileWorkflowInputSchemas");async function ce(e,t){let a=n.join(e,Te),o=B.parse(JSON.parse(await f.readFile(a,"utf8")));if(o.files.some(u=>u.kind==="instruction"))return;let s="instructions/system.md";await f.mkdir(n.join(e,"instructions"),{recursive:!0}),await f.writeFile(n.join(e,...s.split("/")),`# ${t}
4
4
 
5
5
  Keep reusable, provider-neutral execution guidance for this Harness here.
6
6
  `,{flag:"wx"});let w=new Set(o.files.map(u=>u.id)).has("instruction-system")?`instruction-system-${j(s).slice(0,8)}`:"instruction-system",P=B.parse({...o,name:t,files:[...o.files,{id:w,kind:"instruction",path:s,parentId:null,mediaType:"text/markdown",visibility:"policy",portability:"portable"}]});await f.writeFile(a,v(P),{flag:"w"})}c(ce,"ensureHarnessInstructionSurface");async function Be(e,t){let a=e.repoPath?n.resolve(e.repoPath):null;if(a)for(let o of["pnpm-lock.yaml","package-lock.json","yarn.lock"]){let s=n.join(a,o),r=await f.lstat(s).catch(()=>null);if(r?.isFile()&&!r.isSymbolicLink())return{name:o,sourcePath:s}}return{name:"profile-import.json",sourcePath:null,generated:{source:"openpond.profile",profileId:e.activeProfile,profileGitHead:t??e.git?.head??null,dependenciesResolved:!1}}}c(Be,"importedDependencyLock");import{randomUUID as ge}from"node:crypto";import{promises as d}from"node:fs";import m from"node:path";var oe="harness.json",Oe=25e7;function Ve(e,t){let a=`${H(t)}-${j(t).slice(0,16)}`,o=m.join(e,"library","harnesses","workspaces",a);return{root:o,source:m.join(o,"source")}}c(Ve,"localHarnessWorkspacePaths");async function xt(e){return pe({...e,initializeSource:c(t=>Ue(t,e.name),"initializeSource")})}c(xt,"createLocalHarnessWorkspace");async function $t(e){if(e.profile.mode!=="local"||!e.profile.sourcePath)throw new Error("Only a loaded local Profile with a source path can be imported.");return pe({...e,compilationWorkspaceId:e.repositoryId?Me(e.repositoryId,e.name):e.id,initializeSource:c(t=>we(t,e.name,e.profile,e.sourceRevision,e.repositoryId),"initializeSource")})}c($t,"importProfileIntoLocalHarnessWorkspace");function Me(e,t){return`profile-source-${j([e,t]).slice(0,24)}`}c(Me,"profileCompilationWorkspaceId");async function At(e){if(e.profile.mode!=="local"||!e.profile.sourcePath)throw new Error("Only a loaded Profile source can be compiled.");let t=m.join(e.storeDir,"library","harnesses","profile-previews");await d.mkdir(t,{recursive:!0});let a=m.join(t,ge());try{await we(a,e.name,e.profile,e.sourceRevision,e.repositoryId);let o=e.repositoryId?Me(e.repositoryId,e.name):e.workspaceId;return await he({workspaceId:o,sourceDir:a})}finally{await d.rm(a,{recursive:!0,force:!0})}}c(At,"compileProfileHarnessSource");async function Lt(e){let t=await he({workspaceId:e.id,sourceDir:e.sourceDir}),a=await e.store.getHarnessWorkspace(e.id);if(a){let o=a.currentChannel.release?await e.store.getHarnessReleaseRecord(a.currentChannel.release.contentHash):null;if(a.ownerScope.id!==e.ownerId||a.sourceRevision!==t.sourceRevision||o?.harnessRelease.contentHash!==t.harnessRelease.contentHash)throw new Error("Configured Harness source changed; use a new workspace ID for the new release.");return}await pe({...e,initializeSource:c(async o=>{await d.mkdir(o,{recursive:!0}),await d.writeFile(m.join(o,oe),v(t.manifest));for(let s of t.sourceFiles){let r=m.join(o,s.path);await d.mkdir(m.dirname(r),{recursive:!0}),await d.writeFile(r,s.bytes)}},"initializeSource")})}c(Lt,"importLocalHarnessWorkspaceSource");async function Wt(e){let t=await e.store.getHarnessReleaseRecord(e.sourceRelease.contentHash);if(!t||t.harnessRelease.id!==e.sourceRelease.id)throw new Error("Harness workspace fork source release is unavailable.");return pe({...e,initializeSource:c(async a=>{await d.cp(m.join(t.bundlePath,"source"),a,{recursive:!0,force:!1,errorOnExist:!0,verbatimSymlinks:!1}),await ce(a,e.name)},"initializeSource")})}c(Wt,"forkLocalHarnessWorkspaceFromRelease");async function pe(e){let t=e.now??(()=>new Date().toISOString()),a=Ve(e.storeDir,e.id),o=m.dirname(a.root);await d.mkdir(o,{recursive:!0});let s=m.join(o,`.${m.basename(a.root)}.creating-${ge()}`),r=m.join(s,"source");try{await e.initializeSource(r),await d.rename(s,a.root)}catch(w){throw await d.rm(s,{recursive:!0,force:!0}).catch(()=>{}),w}try{let w=await he({workspaceId:e.compilationWorkspaceId??e.id,sourceDir:a.source}),P=await qe({storeDir:e.storeDir,workspaceId:e.id,compiled:w,createdAt:t()}),u=t(),N=je.parse({schemaVersion:"openpond.harnessWorkspace.v1",id:e.id,ownerScope:e.originOwnerScope??{kind:"personal",id:e.ownerId},name:e.name,location:"local",sourceRevision:w.sourceRevision,revision:0,dirty:!1,currentChannel:{name:"personal",release:{id:w.harnessRelease.id,contentHash:w.harnessRelease.contentHash},revision:1},createdAt:u,updatedAt:u,metadata:{...e.originMetadata,sourceLayout:"openpond.harnessSourceManifest.v1",...e.selectionEligible===!1?{selectionEligible:!1}:{}}});return await e.store.createHarnessWorkspaceWithRelease({workspace:N,release:P})}catch(w){throw await d.rm(a.root,{recursive:!0,force:!0}).catch(()=>{}),w}}c(pe,"createLocalHarnessWorkspaceFromInitializer");async function he(e){let t=m.resolve(e.sourceDir),a=m.join(t,oe),o=B.parse(JSON.parse(await d.readFile(a,"utf8"))),s=new Set(o.files.map(l=>l.path)),r=(await _(t)).filter(l=>l!==oe),w=r.filter(l=>!s.has(l)),P=[...s].filter(l=>!r.includes(l));if(w.length||P.length)throw new Error(`Harness source manifest mismatch. Unlisted: ${w.join(", ")||"none"}; missing: ${P.join(", ")||"none"}.`);let u=[];for(let l of o.files){let S=await ee(t,l.path),I=await d.readFile(S);if(I.byteLength>Oe)throw new Error(`Harness source file ${l.path} exceeds ${Oe} bytes.`);u.push({path:l.path,bytes:I,asset:{id:l.id,path:l.path,contentHash:fe(I),sizeBytes:I.byteLength,mediaType:l.mediaType,visibility:l.visibility}})}let N=u.find(({path:l})=>l==="workflows/catalog.json");if(N){let l=o.files.find(k=>k.path===N.path);if(l?.kind!=="workflow"||l.visibility!=="policy")throw new Error("Profile workflow catalog requires a policy-visible workflow declaration.");let S=u.find(({path:k})=>k==="workflows/actions.json"),I=o.files.find(k=>k.path==="workflows/actions.json");if(!S||I?.visibility!=="policy")throw new Error("Profile workflow catalog requires a released action inventory.");let J=Re.parse(JSON.parse(new TextDecoder().decode(S.bytes))).actions,$=new Set;for(let k of J){if($.has(k.id))throw new Error(`Duplicate Profile workflow action ${k.id}.`);if($.add(k.id),!ne(k.inputSchema).valid)throw new Error(`Profile workflow action ${k.id} has an invalid input schema.`);if(!o.files.some(de=>de.path.startsWith(`agents/${k.agentId}/`)))throw new Error(`Profile workflow action ${k.id} lacks its Agent source.`)}let q=ie({catalog:JSON.parse(new TextDecoder().decode(N.bytes)),sourcePaths:new Set(o.files.filter(k=>k.kind==="skill").map(k=>k.path)),actionIds:$});ue(q)}let E=j({manifest:o,files:u.map(({path:l,asset:S})=>({path:l,contentHash:S.contentHash,sizeBytes:S.sizeBytes}))}),y=c(l=>u.filter(({path:S})=>o.files.find(I=>I.path===S)?.kind===l).map(({asset:S})=>S),"byKind"),ae=y("dependency_lock")[0],V=y("program")[0],X=o.files.filter(l=>l.portability==="local_only").map(l=>l.id),se=o.files.filter(l=>l.visibility==="host_private").map(l=>l.id),W=[...X.map(l=>`Asset ${l} is local-only.`),...se.map(l=>`Asset ${l} is host-private.`)],re={id:`harness-source-${E.slice(0,24)}`,contentHash:E},z=Pe({schemaVersion:"openpond.agentSnapshot.v2",id:`agent-snapshot-${j([E,o.toolDeclarations]).slice(0,24)}`,sourceRelease:re,instructions:y("instruction"),skills:y("skill"),agents:y("agent"),toolDeclarations:o.toolDeclarations,capabilityRequirements:o.capabilityRequirements,dependencyLock:ae,portability:{portable:W.length===0,blockers:W,localOnlyAssetRefs:X,hostPrivateAssetRefs:se},metadata:{workspaceId:e.workspaceId,sourceRevision:E,sourceLayout:o.schemaVersion}}),F=be({schemaVersion:"openpond.harnessRelease.v2",id:`harness-${j([z.contentHash,V.contentHash,o.lifecycle]).slice(0,24)}`,agentSnapshot:{id:z.id,contentHash:z.contentHash},program:V,tools:o.toolDeclarations,lifecycle:o.lifecycle,graderInterface:o.graderInterface,files:u.map(({asset:l})=>l),metadata:{runtimeProtocol:o.runtimeProtocol,sourceRevision:E,sourceLayout:o.schemaVersion,...o.metadata.importedFrom==="openpond.profile"?{profile:{id:o.metadata.profileId,sourceRevision:o.metadata.profileGitHead??E,...o.metadata.profileRepositoryId?{repositoryId:o.metadata.profileRepositoryId}:{}}}:{}}});return{manifest:o,sourceRevision:E,agentSnapshot:z,harnessRelease:F,sourceFiles:u}}c(he,"compileLocalHarnessSource");async function qe(e){let t=m.join(e.storeDir,"library","harnesses","releases"),a=m.join(t,e.compiled.harnessRelease.contentHash);await d.mkdir(t,{recursive:!0});let o=m.join(t,`.${e.compiled.harnessRelease.contentHash}.materializing-${ge()}`);try{await d.mkdir(m.join(o,"source"),{recursive:!0});for(let s of e.compiled.sourceFiles){let r=m.join(o,"source",...s.path.split("/"));await d.mkdir(m.dirname(r),{recursive:!0}),await d.writeFile(r,s.bytes,{flag:"wx"})}await d.writeFile(m.join(o,"source",oe),v(e.compiled.manifest),{flag:"wx"}),await d.writeFile(m.join(o,"agent-snapshot.json"),v(e.compiled.agentSnapshot),{flag:"wx"}),await d.writeFile(m.join(o,"harness-release.json"),v(e.compiled.harnessRelease),{flag:"wx"});try{await d.rename(o,a)}catch(s){if(s.code!=="EEXIST"&&s.code!=="ENOTEMPTY")throw s;await Ce(a,e.compiled),await d.rm(o,{recursive:!0,force:!0})}await Ce(a,e.compiled)}catch(s){throw await d.rm(o,{recursive:!0,force:!0}).catch(()=>{}),s}return Ee.parse({schemaVersion:"openpond.localHarnessReleaseRecord.v1",workspaceId:e.workspaceId,sourceRevision:e.compiled.sourceRevision,agentSnapshot:e.compiled.agentSnapshot,harnessRelease:e.compiled.harnessRelease,bundlePath:a,createdAt:e.createdAt})}c(qe,"materializeLocalHarnessRelease");async function Ue(e,t){let a=B.parse({schemaVersion:"openpond.harnessSourceManifest.v1",name:t,files:[{id:"dependency-lock",kind:"dependency_lock",path:"dependency-lock.json",parentId:null,mediaType:"application/json",visibility:"policy",portability:"portable"},{id:"agent-runtime-program",kind:"program",path:"program.json",parentId:null,mediaType:"application/json",visibility:"policy",portability:"portable"}],toolDeclarations:[],capabilityRequirements:[],lifecycle:{create:!0,reset:!0,step:!0,collect:!0,destroy:!0,resetScope:"attempt"},graderInterface:{visibleEvidence:["output","runtime_events","artifacts"],privilegedEvidence:["expected_output","private_verifier"],privateVerifierIsolation:!0},runtimeProtocol:"openpond.agent-runtime.v1",metadata:{}});await d.mkdir(e,{recursive:!0}),await d.writeFile(m.join(e,"dependency-lock.json"),v({dependencies:{}}),{flag:"wx"}),await d.writeFile(m.join(e,"program.json"),v({runtimeProtocol:"openpond.agent-runtime.v1"}),{flag:"wx"}),await d.writeFile(m.join(e,oe),v(a),{flag:"wx"}),await ce(e,t)}c(Ue,"writeDefaultHarnessSource");async function Ce(e,t){let a=ve.parse(JSON.parse(await d.readFile(m.join(e,"agent-snapshot.json"),"utf8"))),o=Se.parse(JSON.parse(await d.readFile(m.join(e,"harness-release.json"),"utf8")));if(a.contentHash!==t.agentSnapshot.contentHash||o.contentHash!==t.harnessRelease.contentHash)throw new Error("Materialized Harness release does not match the compiled immutable objects.");for(let s of t.sourceFiles){let r=await d.readFile(m.join(e,"source",...s.path.split("/")));if(fe(r)!==s.asset.contentHash)throw new Error(`Materialized Harness asset ${s.path} failed hash verification.`)}}c(Ce,"verifyMaterializedRelease");export{Z as a,ee as b,_ as c,H as d,Le as e,nt as f,Ve as g,xt as h,$t as i,At as j,Lt as k,Wt as l,he as m,qe as n};
@@ -1,3 +1,3 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{a as n}from"./chunk-FTQLQJQV.js";var s="127.0.0.1";var d="0.2.59",h=["You are OpenPond Chat. Respond in the user's language. If the user's latest message is language-neutral, ambiguous, or only a short test, respond in English. Be concise and directly answer the latest request. Do not use emojis. Use Markdown when it improves scanability.","If you emit reasoning or thinking content, keep it sparse and user-readable: at most one short sentence for major progress, decisions, or blockers. Omit reasoning for routine searches, reads, tool calls, and obvious next steps. Do not restate the user request, narrate every action, or include code blocks, code excerpts, diffs, raw tool payloads, or markdown examples in reasoning. Put necessary code or exact snippets only in the final assistant answer.","When the user asks to show or preview an image that is available as a workspace path or signed image URL, use Markdown image syntax like ![description](path-or-url) instead of a bare path or raw HTML.","Final responses:","- After substantial work, including research, analysis, document creation, and coding, finish with a concise, self-contained wrap-up. The user should understand the outcome without reading progress updates or tool output.","- Lead with the result and summarize the meaningful changes or findings. Link relevant deliverables and supporting sources when available, using links the user can open.","- Report what was actually checked and what the evidence establishes when verification matters. Distinguish completed work from anything unfinished, unverified, or still running; never imply that starting an operation confirms its success.","- If genuinely blocked, state what was completed, the blocker, and the specific input or action needed to continue. Continue authorized work until complete or genuinely blocked before giving the wrap-up.","- For code changes, explain what changed and why, reference important files when useful, and report relevant checks and their results. Use Changed Files or Verification sections only when they make the answer easier to read.","- Match the length and structure to the task and respect the user's requested output format. Simple questions and small actions need a direct answer, without a separate recap or fixed headings. Avoid repeating the work log or adding generic next steps.","Do not mention raw tool JSON, internal repo paths, or origin/remote URLs unless the user explicitly asks for them or they are necessary to explain a git/deploy failure."].join(`
2
+ import{a as n}from"./chunk-FTQLQJQV.js";var s="127.0.0.1";var d="0.2.63",h=["You are OpenPond Chat. Respond in the user's language. If the user's latest message is language-neutral, ambiguous, or only a short test, respond in English. Be concise and directly answer the latest request. Do not use emojis. Use Markdown when it improves scanability.","If you emit reasoning or thinking content, keep it sparse and user-readable: at most one short sentence for major progress, decisions, or blockers. Omit reasoning for routine searches, reads, tool calls, and obvious next steps. Do not restate the user request, narrate every action, or include code blocks, code excerpts, diffs, raw tool payloads, or markdown examples in reasoning. Put necessary code or exact snippets only in the final assistant answer.","When the user asks to show or preview an image that is available as a workspace path or signed image URL, use Markdown image syntax like ![description](path-or-url) instead of a bare path or raw HTML.","Final responses:","- After substantial work, including research, analysis, document creation, and coding, finish with a concise, self-contained wrap-up. The user should understand the outcome without reading progress updates or tool output.","- Lead with the result and summarize the meaningful changes or findings. Link relevant deliverables and supporting sources when available, using links the user can open.","- Report what was actually checked and what the evidence establishes when verification matters. Distinguish completed work from anything unfinished, unverified, or still running; never imply that starting an operation confirms its success.","- If genuinely blocked, state what was completed, the blocker, and the specific input or action needed to continue. Continue authorized work until complete or genuinely blocked before giving the wrap-up.","- For code changes, explain what changed and why, reference important files when useful, and report relevant checks and their results. Use Changed Files or Verification sections only when they make the answer easier to read.","- Match the length and structure to the task and respect the user's requested output format. Simple questions and small actions need a direct answer, without a separate recap or fixed headings. Avoid repeating the work log or adding generic next steps.","Do not mention raw tool JSON, internal repo paths, or origin/remote URLs unless the user explicitly asks for them or they are necessary to explain a git/deploy failure."].join(`
3
3
  `);import{randomUUID as c}from"node:crypto";import i from"node:path";import{fileURLToPath as p}from"node:url";function u(){return new Date().toISOString()}n(u,"now");function l(e){if(typeof e=="string")return e;if(e instanceof Error)return e.message||e.name;if(e==null)return"";try{return JSON.stringify(e)}catch{return String(e)}}n(l,"textFromUnknown");function k(e){if(!e||typeof e!="object")return"";let t=e;for(let r of["delta","text","output","chunk","message"])if(typeof t[r]=="string")return t[r];return t.delta&&typeof t.delta=="object"?l(t.delta):""}n(k,"extractDelta");function x(e){return{id:c(),timestamp:u(),...e}}n(x,"event");function E(e){let t=e.replace(/^https?:\/\//,""),[r,o]=t.split(":");return{host:r||s,port:o?Number.parseInt(o,10):17874}}n(E,"parseListen");function b(e){return(process.argv[1]?i.resolve(process.argv[1]):"")===i.resolve(p(e))}n(b,"isCliEntrypoint");export{s as a,d as b,h as c,u as d,l as e,k as f,x as g,E as h,b as i};
@@ -1,5 +1,5 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{n as z,o as V,p as G,q}from"./chunk-Q66LWQGF.js";import{a as A,f as v,g as k,h as p,i as f}from"./chunk-3M53YXEI.js";import{a}from"./chunk-FTQLQJQV.js";import{Buffer as Y}from"node:buffer";import{readdirSync as H,readFileSync as Q,statSync as F}from"node:fs";import b from"node:path";var K=500,Z=8*1024*1024,W=8*1024*1024;async function me(e,t){if(!t.sandboxRuntime&&!t.runtimeId)return{sandbox:await X(e,await e.create(t.sandbox,{async:!0}))};let n=t.runtimeId?void 0:await e.createSandboxRuntime(t.sandboxRuntime),r=t.runtimeId??n.id,o=await e.createSandboxRuntimeSandbox(r,t.sandbox);return{sandbox:await X(e,o.sandbox),runtime:o.runtime??n}}a(me,"createSandboxFromPlan");async function X(e,t){if(t.state==="running"||t.state==="stopped")return t;if(t.state==="error")throw new Error(`sandbox create failed: ${t.id}
2
+ import{n as z,o as V,p as G,q}from"./chunk-GPL2Z65R.js";import{a as A,f as v,g as k,h as p,i as f}from"./chunk-3M53YXEI.js";import{a}from"./chunk-FTQLQJQV.js";import{Buffer as Y}from"node:buffer";import{readdirSync as H,readFileSync as Q,statSync as F}from"node:fs";import b from"node:path";var K=500,Z=8*1024*1024,W=8*1024*1024;async function me(e,t){if(!t.sandboxRuntime&&!t.runtimeId)return{sandbox:await X(e,await e.create(t.sandbox,{async:!0}))};let n=t.runtimeId?void 0:await e.createSandboxRuntime(t.sandboxRuntime),r=t.runtimeId??n.id,o=await e.createSandboxRuntimeSandbox(r,t.sandbox);return{sandbox:await X(e,o.sandbox),runtime:o.runtime??n}}a(me,"createSandboxFromPlan");async function X(e,t){if(t.state==="running"||t.state==="stopped")return t;if(t.state==="error")throw new Error(`sandbox create failed: ${t.id}
3
3
  ${t.logs.join(`
4
4
  `)}`);let n=12*6e4,r=3e3,o=Date.now()+n,i=t;for(;Date.now()<o;){if(await new Promise(s=>setTimeout(s,r)),i=await e.get(t.id),i.state==="running"||i.state==="stopped")return i;if(i.state==="error")throw new Error(`sandbox create failed: ${i.id}
5
5
  ${i.logs.join(`