openpond 0.2.61 → 0.2.62

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (420) hide show
  1. package/dist/app-server.d.ts +3264 -18
  2. package/dist/app-server.js +1 -1
  3. package/dist/chunks/{acp-FUAWCKBH.js → acp-DYRBDJRU.js} +1 -1
  4. package/dist/chunks/{acp-agent-XBSJ27KI.js → acp-agent-UTLP7C3I.js} +1 -1
  5. package/dist/chunks/{actions-command-LOHNQUWP.js → actions-command-6LF4Z4WK.js} +1 -1
  6. package/dist/chunks/{app-layer-4BFMOMKM.js → app-layer-N2H3RBEN.js} +1 -1
  7. package/dist/chunks/{app-server-connected-apps-Q2VWWJNX.js → app-server-connected-apps-3T546FE7.js} +1 -1
  8. package/dist/chunks/app-server-evaluations-TXD747QA.js +2 -0
  9. package/dist/chunks/{app-server-harness-services-2PSZBT7U.js → app-server-harness-services-BBCDV5P3.js} +1 -1
  10. package/dist/chunks/app-server-runtime-VEJPDAFP.js +2 -0
  11. package/dist/chunks/{apps-7PIBF32Q.js → apps-CTT2XYRR.js} +1 -1
  12. package/dist/chunks/{chunk-KK626T3Z.js → chunk-2EPR4HLF.js} +1 -1
  13. package/dist/chunks/{chunk-5VPU7OS7.js → chunk-2IIBCCOK.js} +1 -1
  14. package/dist/chunks/{chunk-ZISYLRH6.js → chunk-2UDAKLJ4.js} +1 -1
  15. package/dist/chunks/{chunk-BDCTN4PU.js → chunk-2V4LPUBH.js} +1 -1
  16. package/dist/chunks/{chunk-I3X6M6ZO.js → chunk-3R4MSE2S.js} +1 -1
  17. package/dist/chunks/{chunk-OFVUN4KI.js → chunk-47AXSBPV.js} +1 -1
  18. package/dist/chunks/{chunk-BFKYRQMA.js → chunk-4N4EH3RJ.js} +1 -1
  19. package/dist/chunks/chunk-4PZWGNX4.js +86 -0
  20. package/dist/chunks/{chunk-VFLSBDNZ.js → chunk-4RZBGKT7.js} +1 -1
  21. package/dist/chunks/{chunk-VBW2X42G.js → chunk-4TM75R7V.js} +1 -1
  22. package/dist/chunks/chunk-4U2FNXQW.js +2 -0
  23. package/dist/chunks/{chunk-SCCYSPQ5.js → chunk-4ZBOYWQ3.js} +1 -1
  24. package/dist/chunks/{chunk-VWJ5IYQP.js → chunk-547AUVKN.js} +1 -1
  25. package/dist/chunks/{chunk-FJ3HMHT6.js → chunk-557XSPVS.js} +1 -1
  26. package/dist/chunks/{chunk-ZHFH2TZN.js → chunk-557YG77L.js} +1 -1
  27. package/dist/chunks/{chunk-MF35MALN.js → chunk-5A6ER3M2.js} +1 -1
  28. package/dist/chunks/{chunk-U4HZD2GM.js → chunk-5OSM75X5.js} +1 -1
  29. package/dist/chunks/{chunk-TH6Y4K5Z.js → chunk-6SH4B7DV.js} +1 -1
  30. package/dist/chunks/chunk-6XSSM4WT.js +3 -0
  31. package/dist/chunks/{chunk-HN2ZK6EV.js → chunk-7JBB4PXS.js} +1 -1
  32. package/dist/chunks/{chunk-SID4X3YN.js → chunk-7JXZNCBC.js} +1 -1
  33. package/dist/chunks/chunk-7KTARW23.js +2 -0
  34. package/dist/chunks/{chunk-M6JRS5PA.js → chunk-ABF3W2MO.js} +1 -1
  35. package/dist/chunks/{chunk-CGAL7IHZ.js → chunk-AKZPMKWP.js} +1 -1
  36. package/dist/chunks/{chunk-SIV5P6JO.js → chunk-AMO5DVKM.js} +2 -2
  37. package/dist/chunks/chunk-AZ7BL5FL.js +2 -0
  38. package/dist/chunks/{chunk-4RHM4WN2.js → chunk-B42QQUZY.js} +1 -1
  39. package/dist/chunks/{chunk-3DVWJCOA.js → chunk-B4RKHHF7.js} +1 -1
  40. package/dist/chunks/{chunk-CQF6QZEL.js → chunk-BEI4YULC.js} +1 -1
  41. package/dist/chunks/chunk-BKEDG3A4.js +22 -0
  42. package/dist/chunks/{chunk-GEXKTGLY.js → chunk-C7M2WBWZ.js} +14 -14
  43. package/dist/chunks/{chunk-ELYRVTTG.js → chunk-CJUVHE4U.js} +1 -1
  44. package/dist/chunks/{chunk-ZUNG6YDO.js → chunk-EIX2V2KU.js} +1 -1
  45. package/dist/chunks/{chunk-AWPYTDH4.js → chunk-EWOTDVDJ.js} +1 -1
  46. package/dist/chunks/{chunk-B47JMAVW.js → chunk-F4TJ7WQV.js} +1 -1
  47. package/dist/chunks/{chunk-TXBIZDXG.js → chunk-F7D4BMTO.js} +1 -1
  48. package/dist/chunks/{chunk-BWY4D3BN.js → chunk-FFWOTZQM.js} +1 -1
  49. package/dist/chunks/{chunk-6RVF2J47.js → chunk-FUSCTBJI.js} +1 -1
  50. package/dist/chunks/{chunk-BN5AVRUG.js → chunk-GAQLXFOT.js} +1 -1
  51. package/dist/chunks/{chunk-LHENAWLH.js → chunk-GEKORCMN.js} +1 -1
  52. package/dist/chunks/{chunk-ORLJJGZZ.js → chunk-GNCEZ3UP.js} +1 -1
  53. package/dist/chunks/{chunk-WRQEYW3V.js → chunk-GOIKLFXK.js} +1 -1
  54. package/dist/chunks/{chunk-65SM7Y2G.js → chunk-GQGLPKU4.js} +1 -1
  55. package/dist/chunks/{chunk-LBBXVOVR.js → chunk-GSWBNJGZ.js} +1 -1
  56. package/dist/chunks/{chunk-7EAWLYYB.js → chunk-GV3LFSMI.js} +1 -1
  57. package/dist/chunks/{chunk-GQUS7MCH.js → chunk-GW5SE3FM.js} +1 -1
  58. package/dist/chunks/{chunk-I3W27VK4.js → chunk-HBLN4OLY.js} +1 -1
  59. package/dist/chunks/{chunk-SGK4GR44.js → chunk-HFJUXKT5.js} +1 -1
  60. package/dist/chunks/{chunk-4P3X2RXA.js → chunk-HKV7RX5E.js} +1 -1
  61. package/dist/chunks/{chunk-QDBYLJGH.js → chunk-HXZXDDKW.js} +1 -1
  62. package/dist/chunks/{chunk-LNRFRAV5.js → chunk-INO67SEN.js} +1 -1
  63. package/dist/chunks/{chunk-E67M5WGY.js → chunk-IWK3RTLR.js} +1 -1
  64. package/dist/chunks/{chunk-U447MS3Y.js → chunk-J3B2GM4A.js} +1 -1
  65. package/dist/chunks/chunk-JCLTFDVW.js +2 -0
  66. package/dist/chunks/{chunk-25RDE7DV.js → chunk-JEISPWWM.js} +1 -1
  67. package/dist/chunks/{chunk-D4JZALZ4.js → chunk-JIFUGA3U.js} +1 -1
  68. package/dist/chunks/{chunk-H2AUR7OT.js → chunk-JQRMDFF3.js} +1 -1
  69. package/dist/chunks/{chunk-FWIPHEVA.js → chunk-JX6OX6XE.js} +1 -1
  70. package/dist/chunks/{chunk-D5ADDBS5.js → chunk-JY3YSI54.js} +1 -1
  71. package/dist/chunks/{chunk-CM5USMXN.js → chunk-KOKX7PBS.js} +1 -1
  72. package/dist/chunks/{chunk-3ZWLRBYZ.js → chunk-KUPJNBWG.js} +1 -1
  73. package/dist/chunks/chunk-LILXHGIA.js +2 -0
  74. package/dist/chunks/{chunk-MCIIGQT7.js → chunk-LJDBR3RN.js} +1 -1
  75. package/dist/chunks/{chunk-3TYCIYW6.js → chunk-LJPO3TEL.js} +1 -1
  76. package/dist/chunks/{chunk-MHYI7ATG.js → chunk-LRRBYIGH.js} +2 -2
  77. package/dist/chunks/{chunk-P4XM7LUT.js → chunk-M5IX6VUA.js} +1 -1
  78. package/dist/chunks/chunk-MEK7DLX3.js +2 -0
  79. package/dist/chunks/{chunk-TYHCBVQT.js → chunk-MILEWROZ.js} +1 -1
  80. package/dist/chunks/{chunk-ZBBVRYU3.js → chunk-MNFW5WLD.js} +1 -1
  81. package/dist/chunks/{chunk-2VXL6AU3.js → chunk-MNXNZDDW.js} +1 -1
  82. package/dist/chunks/chunk-N5GPINVP.js +2 -0
  83. package/dist/chunks/{chunk-TSAW2QVU.js → chunk-NBE74GLF.js} +1 -1
  84. package/dist/chunks/{chunk-VZXZ6CHS.js → chunk-NE4ESZPT.js} +1 -1
  85. package/dist/chunks/{chunk-CO3OJFPU.js → chunk-NKZNPTLA.js} +1 -1
  86. package/dist/chunks/{chunk-WFVOG5PU.js → chunk-NLQ2UPN2.js} +1 -1
  87. package/dist/chunks/chunk-NOSBNHGC.js +18 -0
  88. package/dist/chunks/{chunk-TTN63EAM.js → chunk-NWOK6NLE.js} +1 -1
  89. package/dist/chunks/{chunk-6MWT6BVU.js → chunk-NWQL6FNF.js} +1 -1
  90. package/dist/chunks/chunk-O3MHHGC5.js +151 -0
  91. package/dist/chunks/{chunk-IUGK6BBY.js → chunk-OCC43RSJ.js} +1 -1
  92. package/dist/chunks/{chunk-BQUWZRWU.js → chunk-P74RR2GB.js} +1 -1
  93. package/dist/chunks/{chunk-PAZDQRYU.js → chunk-PAE3PQEC.js} +1 -1
  94. package/dist/chunks/{chunk-M4ZRCRJM.js → chunk-PGO4FRHU.js} +2 -2
  95. package/dist/chunks/chunk-Q34IF4PW.js +2 -0
  96. package/dist/chunks/{chunk-Q324ZA5M.js → chunk-QAVQJZCM.js} +1 -1
  97. package/dist/chunks/{chunk-EIIGTADO.js → chunk-RBDUMASL.js} +1 -1
  98. package/dist/chunks/{chunk-TMMFF6DO.js → chunk-RH43WLBX.js} +1 -1
  99. package/dist/chunks/{chunk-RPOD6I64.js → chunk-RTJCELRR.js} +1 -1
  100. package/dist/chunks/{chunk-L3GA2CQI.js → chunk-SD64CLJX.js} +1 -1
  101. package/dist/chunks/{chunk-TNHDD3LO.js → chunk-SXMR6E2W.js} +1 -1
  102. package/dist/chunks/{chunk-MLTKB5G3.js → chunk-SZKFNKWO.js} +1 -1
  103. package/dist/chunks/chunk-T4QXKU5Y.js +1 -0
  104. package/dist/chunks/{chunk-PE7UKJXK.js → chunk-T6C5BNXK.js} +1 -1
  105. package/dist/chunks/{chunk-OMICIPPY.js → chunk-T6JN4PND.js} +1 -1
  106. package/dist/chunks/{chunk-OQUKSRU3.js → chunk-TGEGXTPR.js} +1 -1
  107. package/dist/chunks/chunk-TM4VEMNN.js +2 -0
  108. package/dist/chunks/chunk-TUCKED4T.js +4 -0
  109. package/dist/chunks/chunk-TVTFEGTU.js +2 -0
  110. package/dist/chunks/{chunk-HZLV773Y.js → chunk-TW3SRBLU.js} +1 -1
  111. package/dist/chunks/{chunk-BNZTJPK7.js → chunk-U456UP3N.js} +1 -1
  112. package/dist/chunks/chunk-UC3FXTDL.js +9 -0
  113. package/dist/chunks/{chunk-XLULTQLZ.js → chunk-UT6F6AIB.js} +1 -1
  114. package/dist/chunks/{chunk-OJFDI7VM.js → chunk-UTNGEMW5.js} +1 -1
  115. package/dist/chunks/{chunk-DW3GJRY3.js → chunk-VAJSRUAB.js} +1 -1
  116. package/dist/chunks/chunk-VE6ZIGUQ.js +2 -0
  117. package/dist/chunks/{chunk-GLVR74PX.js → chunk-VI32G77S.js} +1 -1
  118. package/dist/chunks/{chunk-ROE24PN5.js → chunk-VK4TPZTA.js} +1 -1
  119. package/dist/chunks/{chunk-Q66LWQGF.js → chunk-VSQXDS6H.js} +1 -1
  120. package/dist/chunks/{chunk-4GZ2FPB5.js → chunk-VWRTE64Y.js} +1 -1
  121. package/dist/chunks/{chunk-QRJPLZF7.js → chunk-W5W4IODW.js} +1 -1
  122. package/dist/chunks/{chunk-57RY3LSR.js → chunk-WGLVSGFA.js} +1 -1
  123. package/dist/chunks/{chunk-I7JCARVH.js → chunk-WQMXEZVE.js} +3 -3
  124. package/dist/chunks/chunk-X4ZT22SG.js +2 -0
  125. package/dist/chunks/{chunk-DGPGOBYZ.js → chunk-XSB3T4JZ.js} +1 -1
  126. package/dist/chunks/{chunk-ZZWAQBA2.js → chunk-XWDFXM3S.js} +1 -1
  127. package/dist/chunks/{chunk-4LZLO4OW.js → chunk-Y2KPHVZK.js} +1 -1
  128. package/dist/chunks/chunk-ZQHPGEYT.js +2 -0
  129. package/dist/chunks/{chunk-T4LLJC5N.js → chunk-ZXT7V64X.js} +1 -1
  130. package/dist/chunks/cli-GCSO2OAI.js +2 -0
  131. package/dist/chunks/{configuration-command-ONGI2BJD.js → configuration-command-BU2RPG33.js} +1 -1
  132. package/dist/chunks/connected-app-executor-UDE7U4KG.js +2 -0
  133. package/dist/chunks/{connected-evidence-4J3YXU4O.js → connected-evidence-GXIY2L7C.js} +1 -1
  134. package/dist/chunks/{connected-starting-assets-OXLT7S4O.js → connected-starting-assets-V5QXRK5Q.js} +1 -1
  135. package/dist/chunks/{connection-HJWE6SEW.js → connection-XMAAGMXJ.js} +1 -1
  136. package/dist/chunks/{continual-CJUZM5ZQ.js → continual-FLW6DAJK.js} +1 -1
  137. package/dist/chunks/{core-commands-JGXU6B4C.js → core-commands-NJ6TGND4.js} +1 -1
  138. package/dist/chunks/{dataset-preparation-authoring-DFGJBMVF.js → dataset-preparation-authoring-IUXUQK3L.js} +1 -1
  139. package/dist/chunks/{datasets-MNHZAZIB.js → datasets-AH56DKLZ.js} +1 -1
  140. package/dist/chunks/{desktop-test-P23MHAIG.js → desktop-test-PYUTEOWO.js} +1 -1
  141. package/dist/chunks/{dist-IIFTZWNR.js → dist-5267UT3V.js} +1 -1
  142. package/dist/chunks/{dist-X64FC6NA.js → dist-HSC43RG4.js} +1 -1
  143. package/dist/chunks/{evaluation-coordination-6NQEH5WU.js → evaluation-coordination-3AUICOC5.js} +1 -1
  144. package/dist/chunks/{experiment-improvements-M27Z5OF4.js → experiment-improvements-YS7GGPDW.js} +1 -1
  145. package/dist/chunks/experiments-EJZK7FPT.js +2 -0
  146. package/dist/chunks/{experiments-signal-R3NNH7WR.js → experiments-signal-NKUIJCIY.js} +1 -1
  147. package/dist/chunks/{extension-C33NUFDL.js → extension-ZM6NI5O5.js} +1 -1
  148. package/dist/chunks/{help-M2VQGPVC.js → help-PXUUREHZ.js} +1 -1
  149. package/dist/chunks/host-profile-evaluation-tools-CTC5JQPD.js +2 -0
  150. package/dist/chunks/host-profile-external-dataset-GJWDY3YT.js +2 -0
  151. package/dist/chunks/hosted-app-server-composition-TLJSKMJT.js +2 -0
  152. package/dist/chunks/hosted-experiment-improvement-TIVXXRPG.js +3 -0
  153. package/dist/chunks/hosted-harness-runtime-SFLJEZFI.js +2 -0
  154. package/dist/chunks/{hosted-profile-candidate-37ZFY2LH.js → hosted-profile-candidate-DKEMVIYG.js} +1 -1
  155. package/dist/chunks/hosted-profile-compiler-V6YR6EHO.js +2 -0
  156. package/dist/chunks/{hosted-profile-evaluation-control-UQBMML6K.js → hosted-profile-evaluation-control-ERCXAPZD.js} +1 -1
  157. package/dist/chunks/{hosted-profile-evaluation-inspection-YASS4T6L.js → hosted-profile-evaluation-inspection-Q3AIIIB6.js} +1 -1
  158. package/dist/chunks/hosted-profile-evaluation-preparation-ELLGH44Z.js +3 -0
  159. package/dist/chunks/{hosted-tasksets-CVUP7MS6.js → hosted-tasksets-X2YCFYEJ.js} +1 -1
  160. package/dist/chunks/{human-review-IJETDOWB.js → human-review-5WM6MSON.js} +1 -1
  161. package/dist/chunks/{import-WLLUIDS6.js → import-JWZSZCE4.js} +1 -1
  162. package/dist/chunks/local-harness-improvement-runtime-IGIKM6GJ.js +2 -0
  163. package/dist/chunks/local-harness-taskset-review-DR2ZIDOH.js +2 -0
  164. package/dist/chunks/{model-projects-AVBQDNYG.js → model-projects-H22KENI4.js} +1 -1
  165. package/dist/chunks/opchat-3S6TSDZO.js +3 -0
  166. package/dist/chunks/opchat-bounded-chat-B7LPCD4U.js +2 -0
  167. package/dist/chunks/{organizations-DJRJWC5I.js → organizations-62YNTZTO.js} +1 -1
  168. package/dist/chunks/{profile-JRS3JNRC.js → profile-ELE2D7HU.js} +1 -1
  169. package/dist/chunks/project-action-payload-32F4X2BB.js +2 -0
  170. package/dist/chunks/{project-agent-2KNJFNZI.js → project-agent-O4REKO6T.js} +1 -1
  171. package/dist/chunks/{published-experiment-source-LFYHKFAO.js → published-experiment-source-DAOTJLIN.js} +1 -1
  172. package/dist/chunks/refiner-profile-service-DYMZ7J3X.js +2 -0
  173. package/dist/chunks/{runtime-CBJF5GMB.js → runtime-776NUSE7.js} +2 -2
  174. package/dist/chunks/{sandbox-command-IIGTPYN3.js → sandbox-command-UQ26NDIX.js} +1 -1
  175. package/dist/chunks/{sandbox-template-FTANKQIA.js → sandbox-template-WP6YCGBK.js} +1 -1
  176. package/dist/chunks/saved-work-PG52WCRQ.js +2 -0
  177. package/dist/chunks/{send-turn-5UB7ZBJV.js → send-turn-RPB65PME.js} +1 -1
  178. package/dist/chunks/{src-4YZF6L6H.js → src-2R4CMCJ5.js} +1 -1
  179. package/dist/chunks/src-AU6LG7E6.js +421 -0
  180. package/dist/chunks/standalone-experiment-turn-owner-SD3SUTKX.js +2 -0
  181. package/dist/chunks/{store-chat-resources-CGW7PDCG.js → store-chat-resources-T4LR7K25.js} +1 -1
  182. package/dist/chunks/{store-continual-support-reviews-GWI2FRII.js → store-continual-support-reviews-R62D2HD6.js} +1 -1
  183. package/dist/chunks/{store-conversation-serving-637AHKBP.js → store-conversation-serving-25O7BAR2.js} +1 -1
  184. package/dist/chunks/{store-create-improve-ZG653Z63.js → store-create-improve-T5E2GUKK.js} +1 -1
  185. package/dist/chunks/{store-datasets-IW6F2QZM.js → store-datasets-5Y4U5L3R.js} +1 -1
  186. package/dist/chunks/{store-evaluation-results-V5J6L4NV.js → store-evaluation-results-WUVJWCFU.js} +1 -1
  187. package/dist/chunks/{store-harness-workspaces-HHMM6GNK.js → store-harness-workspaces-IFEFY5CK.js} +1 -1
  188. package/dist/chunks/{store-human-review-V5H4QDHR.js → store-human-review-ZQNLZRGG.js} +1 -1
  189. package/dist/chunks/store-learned-preference-migration-validation-UH6MJQSH.js +2 -0
  190. package/dist/chunks/{store-local-experiments-A2UWYPVQ.js → store-local-experiments-LOH4F4TF.js} +1 -1
  191. package/dist/chunks/{store-model-batch-review-KMYPYWJR.js → store-model-batch-review-QO4VVKWC.js} +1 -1
  192. package/dist/chunks/{store-model-configuration-UXNC4PGY.js → store-model-configuration-C3HSOFD5.js} +1 -1
  193. package/dist/chunks/store-model-project-preparation-RQ2YTC2Y.js +2 -0
  194. package/dist/chunks/{store-preference-comparison-HTOXLWKF.js → store-preference-comparison-RNIFLJRW.js} +1 -1
  195. package/dist/chunks/{store-schedules-QVWT7AEB.js → store-schedules-DVQ2PP4F.js} +1 -1
  196. package/dist/chunks/{store-sidebar-file-bookmarks-G5Z6NZWL.js → store-sidebar-file-bookmarks-LXWFFYCZ.js} +1 -1
  197. package/dist/chunks/{store-sidebar-preferences-27FFMUWU.js → store-sidebar-preferences-4HH7LX6N.js} +1 -1
  198. package/dist/chunks/{store-subagents-PK7ZWLPR.js → store-subagents-JLW4GD4Q.js} +1 -1
  199. package/dist/chunks/{store-task-inbox-LNDCZOYE.js → store-task-inbox-DL5RYFPO.js} +1 -1
  200. package/dist/chunks/{store-task-inventory-IG6HGWSQ.js → store-task-inventory-NJXRXFLC.js} +1 -1
  201. package/dist/chunks/store-taskset-drafts-UFGN4SGF.js +9 -0
  202. package/dist/chunks/{store-training-NQRRPKEZ.js → store-training-VRLU6NFX.js} +1 -1
  203. package/dist/chunks/{store-training-jobs-F6Y2ZTXP.js → store-training-jobs-3ZHG4LGI.js} +1 -1
  204. package/dist/chunks/{store-training-models-NRSLSBEW.js → store-training-models-KWQD5PRP.js} +1 -1
  205. package/dist/chunks/{store-usage-GFHQYT34.js → store-usage-ZRS3ILF2.js} +1 -1
  206. package/dist/chunks/{taskset-NYLUYX6K.js → taskset-QDMCQQDJ.js} +1 -1
  207. package/dist/chunks/{taskset-packages-I7I5KBFP.js → taskset-packages-CBLJFWDQ.js} +1 -1
  208. package/dist/chunks/{teams-bot-FMAEDGSD.js → teams-bot-GF272RGC.js} +1 -1
  209. package/dist/chunks/{training-UBX6E7SK.js → training-DF5UEPY3.js} +1 -1
  210. package/dist/chunks/{training-error-AYOGHHL2.js → training-error-L5V5IBX3.js} +1 -1
  211. package/dist/chunks/training-hosted-I2NDBYGS.js +2 -0
  212. package/dist/chunks/training-hosted-report-4F25RZZ4.js +2 -0
  213. package/dist/chunks/training-hosted-serving-QAV7ZGGV.js +2 -0
  214. package/dist/chunks/training-project-preparation-XWGRY5ME.js +3 -0
  215. package/dist/chunks/{web-search-Q4OQVUNH.js → web-search-5RUXYIOF.js} +1 -1
  216. package/dist/chunks/{workspaces-XREEVSTS.js → workspaces-JRY2IE7H.js} +1 -1
  217. package/dist/cli.js +2 -2
  218. package/dist/hosted-chat.d.ts +28 -0
  219. package/dist/index.js +1 -1
  220. package/dist/skills/openpond-cli/SKILL.md +15 -2
  221. package/dist/skills/openpond-cli/references/compact-resource-tables.md +3 -3
  222. package/dist/skills/openpond-cli/references/diagnose-and-improve.md +4 -2
  223. package/dist/skills/openpond-cli/references/experiments-and-training.md +155 -10
  224. package/dist/skills/openpond-taskset-authoring/SKILL.md +5 -4
  225. package/dist/skills/openpond-taskset-authoring/artifact.json +7 -7
  226. package/dist/skills/openpond-taskset-authoring/references/failure-diagnosis.md +52 -1
  227. package/dist/web/assets/App-DHJVXTI2.js +54 -0
  228. package/dist/web/assets/App-DpFKLxuA.css +1 -0
  229. package/dist/web/assets/AppDialog-BurL61qE.js +1 -0
  230. package/dist/web/assets/AppTerminalPanel-RjFlF-a4.js +2 -0
  231. package/dist/web/assets/{AppToastContext-BB_2hRfw.js → AppToastContext-DZLErwj0.js} +1 -1
  232. package/dist/web/assets/AppsView-ttlr9ckQ.js +1 -0
  233. package/dist/web/assets/{AttachmentTypeIcon-DOAsVQjt.js → AttachmentTypeIcon-CpMSfHCK.js} +1 -1
  234. package/dist/web/assets/BrowserSidebar-Cp2l0kg0.js +1 -0
  235. package/dist/web/assets/{CartesianChart-DO76yfJb.js → CartesianChart-CEbM980A.js} +1 -1
  236. package/dist/web/assets/{ChatTimelineEntry-IKzZsHoI.js → ChatTimelineEntry-BITv20Ze.js} +1 -1
  237. package/dist/web/assets/{CollaborationTabs-DNoknVMD.js → CollaborationTabs-DrKJmJZK.js} +1 -1
  238. package/dist/web/assets/{CommandMenu-CBY2AJxV.js → CommandMenu-6oj8FUr6.js} +1 -1
  239. package/dist/web/assets/CommunityView-BzpIq1lD.js +1 -0
  240. package/dist/web/assets/ComposerAttachments-6en7m_ov.js +2 -0
  241. package/dist/web/assets/ComposerCreateImproveStrip-ChplO9YP.js +1 -0
  242. package/dist/web/assets/ConversationImportsSettings-DRHgc7j_.js +1 -0
  243. package/dist/web/assets/FilePagePreview-CW4J_1u7.js +2 -0
  244. package/dist/web/assets/GetStartedView-CaBk_mX6.js +1 -0
  245. package/dist/web/assets/GettingStartedDialog-EsH-8Diz.css +1 -0
  246. package/dist/web/assets/GettingStartedDialog-JtFLyU3F.js +1 -0
  247. package/dist/web/assets/{HostedModelLearningReview-B0rbIVvn.js → HostedModelLearningReview-hhcjDifK.js} +1 -1
  248. package/dist/web/assets/HostedModelLearningSettings-CY8198Y1.js +1 -0
  249. package/dist/web/assets/LabModelVersionDetailPage-f0tHT-Sn.js +1 -0
  250. package/dist/web/assets/LabSkillSidebar-HibUEEko.js +1 -0
  251. package/dist/web/assets/{LabsRoute-DOnw39du.js → LabsRoute-B61l1b8P.js} +8 -8
  252. package/dist/web/assets/MainChatThread-egKi0gLk.js +2 -0
  253. package/dist/web/assets/MainPane-2dj6Dg4l.js +95 -0
  254. package/dist/web/assets/{MainPane-CuBUBA9F.css → MainPane-BwHw3UYp.css} +1 -1
  255. package/dist/web/assets/NativeSetupTerminal-3eR9D_R3.css +1 -0
  256. package/dist/web/assets/NativeSetupTerminal-CNHTByLo.js +2 -0
  257. package/dist/web/assets/NativeSkillSidebar-DCdMbSfe.js +1 -0
  258. package/dist/web/assets/NewProjectDialog-t9Imnb__.js +1 -0
  259. package/dist/web/assets/OutputsPage-CeGq_F1S.js +1 -0
  260. package/dist/web/assets/{PageChrome-BBnWAENV.js → PageChrome-VHME5V8j.js} +1 -1
  261. package/dist/web/assets/ProjectsPage-2TMZoEPB.js +1 -0
  262. package/dist/web/assets/RightChatPanelStack-B3mBViGC.js +1 -0
  263. package/dist/web/assets/RightSidebarHomePanel-CxDYSyyx.js +1 -0
  264. package/dist/web/assets/ScheduledWorkPage-Dh47iH11.js +1 -0
  265. package/dist/web/assets/SettingsView-D2bu3tK_.js +5 -0
  266. package/dist/web/assets/TeamChatView-CN17AsgA.js +1 -0
  267. package/dist/web/assets/TerminalOverlay-DlhRpi-X.js +16 -0
  268. package/dist/web/assets/TrainingCreationPanel-DJKzaNFj.js +1 -0
  269. package/dist/web/assets/{TrainingDraftPanel-HznyNCJ4.js → TrainingDraftPanel-BhhZPPuY.js} +1 -1
  270. package/dist/web/assets/{TrainingMetricWorkbench-BmzHLwIP.js → TrainingMetricWorkbench-DBy8F1xp.js} +1 -1
  271. package/dist/web/assets/{UsageSettingsSection-C3oZ1UEP.js → UsageSettingsSection-DTZslBeW.js} +2 -2
  272. package/dist/web/assets/WorkSidebarPanel-Ds-eTQLs.js +1 -0
  273. package/dist/web/assets/WorkspaceDiffPanel-D_iyg2D4.js +11 -0
  274. package/dist/web/assets/WorkspaceEnvironmentMenu-Fn-NlfMQ.js +35 -0
  275. package/dist/web/assets/WorkspaceFileLocation-ChEeZffU.js +1 -0
  276. package/dist/web/assets/WorkspaceGitDialogs-D_RUXhTi.js +1 -0
  277. package/dist/web/assets/{WorkspaceMonacoEditor-DfsL1WIi.js → WorkspaceMonacoEditor-BJxaiDrj.js} +3 -3
  278. package/dist/web/assets/{WorkspacePresentationPreview-WuS_B45u.js → WorkspacePresentationPreview-A28Poeca.js} +1 -1
  279. package/dist/web/assets/{chat-resources-CItQ4mZD.js → chat-resources-3SvnVeKv.js} +1 -1
  280. package/dist/web/assets/{chevron-down-Bnma8EMP.js → chevron-down-dYn0pd4Q.js} +1 -1
  281. package/dist/web/assets/chevron-right-sFx2xRvT.js +1 -0
  282. package/dist/web/assets/{chunk-24N6A6SF-BUjzKvRC.js → chunk-BYNVSWIQ-DWh9SmdB.js} +1 -1
  283. package/dist/web/assets/{chunk-GAIDBPFY-BLuHpurI.js → chunk-ZFYI4P6C-BmsNtSkR.js} +1 -1
  284. package/dist/web/assets/{client-choice-storage-BuNdhYSV.js → client-choice-storage-DTTLbrYt.js} +1 -1
  285. package/dist/web/assets/{cloud-upload-DOftANif.js → cloud-upload-CRMPCFnq.js} +1 -1
  286. package/dist/web/assets/connected-app-mentions-D3wRZLwI.js +1 -0
  287. package/dist/web/assets/copy-DR4ielPn.js +1 -0
  288. package/dist/web/assets/{createLucideIcon-C4b2afqG.js → createLucideIcon-DmttVQ_a.js} +1 -1
  289. package/dist/web/assets/{cssMode-0Hn7tCrE.js → cssMode-d-2GuNvW.js} +1 -1
  290. package/dist/web/assets/external-link-B4rPiZEp.js +1 -0
  291. package/dist/web/assets/{folder-open-wJwCoIDs.js → folder-open-BrIUcUk_.js} +1 -1
  292. package/dist/web/assets/{folder-plus-DnTN6mcP.js → folder-plus-DwImGEt-.js} +1 -1
  293. package/dist/web/assets/{git-commit-horizontal-98y7PP6G.js → git-commit-horizontal-Ds1mkrlW.js} +1 -1
  294. package/dist/web/assets/{htmlMode-JO_QluNH.js → htmlMode-s15GR0Fn.js} +1 -1
  295. package/dist/web/assets/icons-CK5-nxVC.js +1 -0
  296. package/dist/web/assets/{image-C7HVlg3X.js → image-CY-sHbfQ.js} +1 -1
  297. package/dist/web/assets/{index-BsPUniZy.js → index-DYrLeSyY.js} +2 -2
  298. package/dist/web/assets/index-Dezj4Z2p.css +1 -0
  299. package/dist/web/assets/{info-BLWDShaz.js → info-aSvM8YlJ.js} +1 -1
  300. package/dist/web/assets/{jsonMode-BfTXJted.js → jsonMode-vos9H2hz.js} +1 -1
  301. package/dist/web/assets/loader-circle-cyf35w3i.js +1 -0
  302. package/dist/web/assets/{lspLanguageFeatures-68cAgnuv.js → lspLanguageFeatures-pQmEaoMt.js} +1 -1
  303. package/dist/web/assets/{maximize-2-DUWvLap6.js → maximize-2-DgF6ZVOM.js} +1 -1
  304. package/dist/web/assets/{monaco.contribution-_3aU1TTb.js → monaco.contribution-BPwsKvRB.js} +2 -2
  305. package/dist/web/assets/{monaco.contribution-h8U8HXFT.js → monaco.contribution-BbMpa0_-.js} +2 -2
  306. package/dist/web/assets/{monaco.contribution-CWeY6ia1.js → monaco.contribution-CJlccVX3.js} +2 -2
  307. package/dist/web/assets/{monaco.contribution-DOiiDDen.js → monaco.contribution-pWurLXbm.js} +2 -2
  308. package/dist/web/assets/{monitor-B6OuAu13.js → monitor-DlEV241C.js} +1 -1
  309. package/dist/web/assets/{paperclip-DSHxP9CY.js → paperclip-fnRZSIRc.js} +1 -1
  310. package/dist/web/assets/{pdf-RXlFwNte.js → pdf-CT3zVKCE.js} +1 -1
  311. package/dist/web/assets/play-wI_3FLr4.js +1 -0
  312. package/dist/web/assets/plus-DoJe4fLj.js +1 -0
  313. package/dist/web/assets/{presentation-C9WnPDVr.js → presentation-Bb8ecExR.js} +1 -1
  314. package/dist/web/assets/profile-agent-labels-Duh96b8x.js +1 -0
  315. package/dist/web/assets/{python-BQXo7wMt.js → python-DXA1xp0A.js} +1 -1
  316. package/dist/web/assets/{refresh-cw-NXOER_CD.js → refresh-cw-B53QjxMO.js} +1 -1
  317. package/dist/web/assets/{save-BxXc21N6.js → save-V1Q4Fcqa.js} +1 -1
  318. package/dist/web/assets/settings-lists-CtH1A57b.js +5 -0
  319. package/dist/web/assets/square-BqSK-hv9.js +1 -0
  320. package/dist/web/assets/square-terminal-Dmgkm5zY.js +1 -0
  321. package/dist/web/assets/submit-issue-command-DRgUboVW.js +3 -0
  322. package/dist/web/assets/{toggleHighContrast-Di1cRuQ4.js → toggleHighContrast-B-BD2K2Q.js} +1 -1
  323. package/dist/web/assets/{training-managed-adapter-81RrdT1k.js → training-managed-adapter-BXNwgd3P.js} +1 -1
  324. package/dist/web/assets/{training-model-data-CmVo80ZR.js → training-model-data-14942K_Z.js} +5 -5
  325. package/dist/web/assets/{tsMode-PxisJRYB.js → tsMode-DdgIcxK3.js} +1 -1
  326. package/dist/web/assets/ui-theme.generated-D-mc26qt.js +144 -0
  327. package/dist/web/assets/{upload-NXasN1wU.js → upload-82Y6RjLi.js} +1 -1
  328. package/dist/web/assets/{useAccountSettings-Dqqt1vUY.js → useAccountSettings-BgHXNpq_.js} +1 -1
  329. package/dist/web/assets/{useAgentInventory-BV4CUWzJ.js → useAgentInventory-B-LNn3up.js} +1 -1
  330. package/dist/web/assets/{useLocalAgentSchedules-Cc0M_qax.js → useLocalAgentSchedules-CsKv22Hs.js} +1 -1
  331. package/dist/web/assets/{useQuery-ByaRC9SK.js → useQuery-CPC2wsWm.js} +1 -1
  332. package/dist/web/assets/{wifi-off-aVJ3AvT_.js → wifi-off-DXOoDN9l.js} +1 -1
  333. package/dist/web/assets/{workers-u92Boudu.js → workers-Clf4hKt5.js} +1 -1
  334. package/dist/web/assets/x-IPhrr4ju.js +1 -0
  335. package/dist/web/assets/{yaml-BxQUS0ew.js → yaml-I1tf8Uxx.js} +1 -1
  336. package/dist/web/index.html +12 -3
  337. package/docs/command-reference.md +28 -2
  338. package/package.json +2 -1
  339. package/dist/chunks/app-server-evaluations-HAAYVEXB.js +0 -2
  340. package/dist/chunks/app-server-runtime-B6BAJA6L.js +0 -2
  341. package/dist/chunks/chunk-4N3UF3U5.js +0 -2
  342. package/dist/chunks/chunk-6DCXAXVD.js +0 -22
  343. package/dist/chunks/chunk-BLKTUFGB.js +0 -2
  344. package/dist/chunks/chunk-E3EKBPCB.js +0 -2
  345. package/dist/chunks/chunk-F5JDBDYL.js +0 -2
  346. package/dist/chunks/chunk-JEVA7YQL.js +0 -3
  347. package/dist/chunks/chunk-KC7I6E6W.js +0 -2
  348. package/dist/chunks/chunk-OJSK4NSW.js +0 -151
  349. package/dist/chunks/chunk-UBCLPZSQ.js +0 -4
  350. package/dist/chunks/chunk-UJBEWIR3.js +0 -8
  351. package/dist/chunks/chunk-V67IFV26.js +0 -86
  352. package/dist/chunks/chunk-VSUHJ46L.js +0 -18
  353. package/dist/chunks/chunk-X3WEQL3O.js +0 -2
  354. package/dist/chunks/chunk-XK7SPL63.js +0 -2
  355. package/dist/chunks/chunk-YR5ID2SS.js +0 -2
  356. package/dist/chunks/cli-WC45SI7E.js +0 -2
  357. package/dist/chunks/connected-app-executor-TZJB25UZ.js +0 -2
  358. package/dist/chunks/experiments-IWSCFDBB.js +0 -2
  359. package/dist/chunks/host-profile-evaluation-tools-EFB2YIK2.js +0 -2
  360. package/dist/chunks/host-profile-external-dataset-KSNREH3Q.js +0 -2
  361. package/dist/chunks/hosted-app-server-composition-VV545TYL.js +0 -2
  362. package/dist/chunks/hosted-experiment-improvement-NYLADI7S.js +0 -3
  363. package/dist/chunks/hosted-harness-runtime-Z54E5MD7.js +0 -2
  364. package/dist/chunks/hosted-profile-compiler-SW2RWTDZ.js +0 -2
  365. package/dist/chunks/hosted-profile-evaluation-preparation-ZAOGDQXO.js +0 -3
  366. package/dist/chunks/local-harness-improvement-runtime-KB4OP3SM.js +0 -2
  367. package/dist/chunks/local-harness-taskset-review-SUDEUGUU.js +0 -2
  368. package/dist/chunks/opchat-KSOJEL4W.js +0 -3
  369. package/dist/chunks/project-action-payload-SQ5BSQHY.js +0 -2
  370. package/dist/chunks/refiner-profile-service-UWI4NAZ3.js +0 -2
  371. package/dist/chunks/saved-work-QA46KCME.js +0 -2
  372. package/dist/chunks/src-E7NWAN5B.js +0 -420
  373. package/dist/chunks/standalone-experiment-turn-owner-SQJ5HXDZ.js +0 -2
  374. package/dist/chunks/store-learned-preference-migration-validation-KOCW5NOZ.js +0 -2
  375. package/dist/chunks/store-taskset-drafts-TA6X245D.js +0 -9
  376. package/dist/chunks/training-hosted-4R4QTSAN.js +0 -2
  377. package/dist/chunks/training-hosted-report-UQVK6FTG.js +0 -2
  378. package/dist/web/assets/App-Df7uYQGj.css +0 -1
  379. package/dist/web/assets/App-Yy3l2sdD.js +0 -56
  380. package/dist/web/assets/AppTerminalPanel-Dqr6VS3I.js +0 -2
  381. package/dist/web/assets/AppsView-27Fl_-49.js +0 -1
  382. package/dist/web/assets/BrowserSidebar-bnI3sSZO.js +0 -1
  383. package/dist/web/assets/CommunityView-CFKM7FTY.js +0 -1
  384. package/dist/web/assets/ComposerAttachments-BdjBddKf.js +0 -2
  385. package/dist/web/assets/ComposerCreateImproveStrip-ViJ5E0We.js +0 -1
  386. package/dist/web/assets/ConversationImportsSettings-xLl-7G9R.js +0 -1
  387. package/dist/web/assets/FilePagePreview-CTHuPzJt.js +0 -2
  388. package/dist/web/assets/GetStartedView-DvV_RMgM.js +0 -1
  389. package/dist/web/assets/GettingStartedDialog-B1jFmfgd.js +0 -1
  390. package/dist/web/assets/GettingStartedDialog-C73Bdcz2.css +0 -1
  391. package/dist/web/assets/HostedModelLearningSettings-DzAiutjq.js +0 -1
  392. package/dist/web/assets/LabModelVersionDetailPage-CF8FkRUY.js +0 -1
  393. package/dist/web/assets/LabSkillSidebar-gjbl9Nlv.js +0 -1
  394. package/dist/web/assets/MainChatThread-BUKup-JB.js +0 -2
  395. package/dist/web/assets/MainPane-BpE7AKXu.js +0 -92
  396. package/dist/web/assets/NativeSkillSidebar-Br5Lk6iU.js +0 -1
  397. package/dist/web/assets/NewProjectDialog-DyuKPOvF.js +0 -1
  398. package/dist/web/assets/OutputsPage-Dl63CVrw.js +0 -1
  399. package/dist/web/assets/ProjectsPage-BNF1TiyR.js +0 -1
  400. package/dist/web/assets/RightChatPanelStack-CxVAAbp-.js +0 -1
  401. package/dist/web/assets/RightSidebarHomePanel-D46ktZg-.js +0 -1
  402. package/dist/web/assets/ScheduledWorkPage-Cp0Hf-hs.js +0 -1
  403. package/dist/web/assets/SettingsView-BT57Q5Wx.js +0 -5
  404. package/dist/web/assets/TeamChatView-BmxTJ9E5.js +0 -1
  405. package/dist/web/assets/TerminalOverlay-D-Yq8av_.js +0 -16
  406. package/dist/web/assets/TrainingCreationPanel-CwfNPj_G.js +0 -1
  407. package/dist/web/assets/WorkSidebarPanel-myTA9tsh.js +0 -1
  408. package/dist/web/assets/WorkspaceDiffPanel-D0dzFgzW.js +0 -11
  409. package/dist/web/assets/WorkspaceEnvironmentMenu-AUzME1eX.js +0 -35
  410. package/dist/web/assets/WorkspaceFileLocation-Ai8Tz2Mz.js +0 -1
  411. package/dist/web/assets/WorkspaceGitDialogs-D-UCCckC.js +0 -1
  412. package/dist/web/assets/chevron-right-Cxv_xBz5.js +0 -1
  413. package/dist/web/assets/git-dialogs-C631EFyO.css +0 -1
  414. package/dist/web/assets/icons-kaq6k88m.js +0 -1
  415. package/dist/web/assets/index-DUMDOdB2.css +0 -1
  416. package/dist/web/assets/play-BPPQoqMl.js +0 -1
  417. package/dist/web/assets/plus-D18vYzHF.js +0 -1
  418. package/dist/web/assets/settings-lists-DMNPkGYk.js +0 -5
  419. package/dist/web/assets/square-Da8RuqW4.js +0 -1
  420. package/dist/web/assets/ui-theme.generated-R0MY_Jy0.js +0 -136
@@ -0,0 +1,2 @@
1
+ import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
+ import{c as y,d as h,i as c,j as U}from"./chunk-6XSSM4WT.js";import{a as l}from"./chunk-FTQLQJQV.js";var O="openpond-chat",x="deepseek-v4-flash",$="not-a-real-opchat-model";async function R(e){let t=e.defaultModel||O,o=e.compatibilityModel||x,i=e.invalidModel||$,n=e.log||(()=>{});n(`opchat base: ${e.apiBaseUrl}`);let s=(await y({apiBaseUrl:e.apiBaseUrl,token:e.token})).data.map(M=>M.id);B(s,t),B(s,o),n(`models: ${s.join(", ")}`);let a=await h({apiBaseUrl:e.apiBaseUrl,token:e.token,model:t}),d=await h({apiBaseUrl:e.apiBaseUrl,token:e.token,model:o}),w=await _({apiBaseUrl:e.apiBaseUrl,token:e.token,model:i});n(`invalid model error: ${w}`);let p=k(t,await c({apiBaseUrl:e.apiBaseUrl,token:e.token,model:t,messages:[{role:"user",content:"Reply with a short plain sentence confirming OpChat works."}],metadata:{source:"openpond-code-opchat-smoke",mode:"non_stream"}}));C(p,`${t} non-streaming response`),n(`${t} non-stream: id=${p.id??"unknown"} usage=${f(p.usage)}`);let m=e.skipStream?void 0:await b({apiBaseUrl:e.apiBaseUrl,token:e.token,model:t});m&&n(`${t} stream: chunks=${m.textDeltaCount} finish=${m.finishReason??"none"} usage=${f(m.usage)}`);let g=k(o,await c({apiBaseUrl:e.apiBaseUrl,token:e.token,model:o,messages:[{role:"user",content:"Reply with one short sentence confirming compatibility."}],metadata:{source:"openpond-code-opchat-smoke",mode:"compatibility_non_stream"}}));C(g,`${o} non-streaming response`),n(`${o} non-stream: id=${g.id??"unknown"} usage=${f(g.usage)}`);let u=e.skipTool?void 0:await v({apiBaseUrl:e.apiBaseUrl,token:e.token,model:t});return u&&n(`${t} tool: calls=${u.toolCallCount} names=${u.toolNames.join(",")}`),{apiBaseUrl:e.apiBaseUrl,listedModels:s,defaultModel:t,compatibilityModel:o,modelLookups:[a.id,d.id],invalidModelError:w,nonStreaming:p,compatibilityNonStreaming:g,...m?{streaming:m}:{},...u?{toolCalling:u}:{}}}l(R,"runOpChatSmoke");async function _(e){try{await h(e)}catch(t){return t instanceof Error?t.message:String(t)}throw new Error(`expected invalid model ${e.model} to fail`)}l(_,"expectInvalidModel");async function b(e){let t=Date.now(),o=null,i="",n=0,r=null,s=null;for await(let a of U({apiBaseUrl:e.apiBaseUrl,token:e.token,model:e.model,messages:[{role:"user",content:"Reply with a short streamed sentence."}],metadata:{source:"openpond-code-opchat-smoke",mode:"stream"}}))a.type==="text_delta"?(o??=Date.now(),i+=a.text,n+=1):a.type==="finish"?r=a.finishReason:a.type==="usage"&&(s=a.usage);if(n===0||!i.trim())throw new Error("streaming response did not emit text deltas");if(!r)throw new Error("streaming response did not emit a terminal finish marker");return{model:e.model,textDeltaCount:n,textPreview:S(i),firstTextMs:o===null?null:o-t,totalMs:Date.now()-t,finishReason:r,usage:s}}l(b,"runStreamSmoke");async function v(e){let t=[{type:"function",function:{name:"get_current_weather",description:"Get the current weather for a city.",parameters:{type:"object",properties:{location:{type:"string",description:"City and region, for example Boston, MA."}},required:["location"]}}}],o=[{role:"user",content:"Use the get_current_weather tool for Boston, then wait for the result."}],n=(await c({apiBaseUrl:e.apiBaseUrl,token:e.token,model:e.model,messages:o,tools:t,toolChoice:"auto",metadata:{source:"openpond-code-opchat-smoke",mode:"tool_call"}})).choices?.[0],r=n?.message?.tool_calls??[];if(r.length===0)throw new Error("tool smoke did not receive an assistant tool call");let s=T(r),a=k(e.model,await c({apiBaseUrl:e.apiBaseUrl,token:e.token,model:e.model,messages:[...o,{role:"assistant",content:n?.message?.content??null,tool_calls:r},...s],metadata:{source:"openpond-code-opchat-smoke",mode:"tool_result"}}));return C(a,"tool follow-up response"),{model:e.model,toolCallCount:r.length,toolNames:r.map(d=>d.function?.name).filter(d=>!!d),finishReason:n?.finish_reason??null,followUp:a}}l(v,"runToolSmoke");function T(e){return e.map((t,o)=>{if(!t.id)throw new Error(`tool call ${o} is missing an id`);return{role:"tool",tool_call_id:t.id,content:JSON.stringify({location:"Boston, MA",temperature:"58 F",conditions:"clear"})}})}l(T,"buildToolResultMessages");function k(e,t){let o=t.choices?.[0];return{model:e,id:t.id??null,finishReason:o?.finish_reason??null,textPreview:S(o?.message?.content??""),usage:t.usage??null}}l(k,"summarizeCompletion");function B(e,t){if(!e.includes(t))throw new Error(`model list did not include ${t}`)}l(B,"requireModel");function C(e,t){if(!e.textPreview.trim())throw new Error(`${t} did not include assistant text`)}l(C,"requireText");function S(e,t=120){let o=e.replace(/\s+/g," ").trim();return o.length<=t?o:`${o.slice(0,t-1)}...`}l(S,"previewText");function f(e){return e?String(e.total_tokens??e.input_tokens??e.output_tokens??"unknown"):"none"}l(f,"formatUsage");export{R as a};
@@ -1,2 +1,2 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{b as d}from"./chunk-7EAWLYYB.js";import{a as c}from"./chunk-7KWD2I6W.js";import{d as o,e as l}from"./chunk-FJ3HMHT6.js";import{a as u}from"./chunk-QRJPLZF7.js";import{a as s}from"./chunk-FTQLQJQV.js";import{randomUUID as p}from"node:crypto";function f(e){let r=c(e.usage),t=e.requestKind??h({session:e.session,turn:e.turn??null,requestOrdinal:e.requestOrdinal}),n=e.completedAt,g=e.error&&l(e.error)||null;return{id:`usage_${p()}`,requestId:e.requestId,requestOrdinal:e.requestOrdinal,sessionId:e.session.id,turnId:e.turn?.id??null,provider:e.provider,model:e.model||"unknown",route:U(e.provider),source:r.promptTokens!==null||r.completionTokens!==null||r.totalTokens!==null?"provider_usage":"missing",requestKind:t,visibility:b(e.session,t),status:e.status,startedAt:e.startedAt,completedAt:n,durationMs:n?Math.max(0,Date.parse(n)-Date.parse(e.startedAt)):null,firstTokenMs:e.firstTokenMs,promptTokens:r.promptTokens,cachedPromptTokens:r.cachedPromptTokens,uncachedPromptTokens:r.uncachedPromptTokens,cacheWritePromptTokens:r.cacheWritePromptTokens,cacheTelemetrySource:r.cacheTelemetrySource,completionTokens:r.completionTokens,totalTokens:r.totalTokens,errorType:e.error?R(e.error):null,errorMessage:g,attribution:M({session:e.session,turn:e.turn??null,requestKind:t,requestOrdinal:e.requestOrdinal})}}s(f,"createProviderRequestUsageRecord");async function P(e){let r=new a(e);return await r.start(),r}s(P,"startProviderRequestUsageRecorder");var a=class{constructor(r){this.input=r}input;static{s(this,"ProviderRequestUsageRecorder")}latestUsage=null;firstTokenMs=null;startedAt=o();startedAtMs=Date.now();async start(){await this.upsert("started",null)}observeDelta(r){this.firstTokenMs===null&&k(r)&&(this.firstTokenMs=Math.max(0,Date.now()-this.startedAtMs)),r.usage&&(this.latestUsage=r.usage)}async complete(){await this.upsert("completed",o())}async fail(r,t){await this.upsert(t,o(),r)}async upsert(r,t,n){await this.input.upsert(f({session:this.input.session,turn:this.input.turn,provider:this.input.provider,model:this.input.model,requestId:this.input.requestId,requestOrdinal:this.input.requestOrdinal,requestKind:this.input.requestKind,startedAt:this.startedAt,completedAt:t,firstTokenMs:this.firstTokenMs,usage:this.latestUsage,status:r,error:n}))}};function k(e){return!!(e.text||e.reasoningText||e.toolCalls&&e.toolCalls.length>0)}s(k,"modelUsageDeltaHasOutput");function U(e){return e==="openpond"?"openpond_hosted":e==="codex"?"codex_app_server":d(e)?"local_byok":"unknown"}s(U,"modelUsageRoute");function h(e){let r=i(e.turn);return r?.subagentRunId||r?.workflowKind==="subagent"?"subagent":e.turn&&m(e.turn)?"slash_command":e.requestOrdinal===0?"chat_turn":"tool_loop"}s(h,"modelUsageRequestKind");function b(e,r){return e.systemKind?"system":r==="context_compaction"||r==="create_improve_planner"||r==="harness_refiner"||r==="subagent"||r==="codex_context"?"background":"user_facing"}s(b,"modelUsageVisibility");function M(e){let r=i(e.turn),t=m(e.turn);return{surface:r?.surface??q(e.session,e.requestKind),workflowKind:r?.workflowKind??T(e.requestKind,e.requestOrdinal,t),sessionId:e.session.id,turnId:e.turn?.id??null,goalId:r?.goalId??null,subagentRunId:r?.subagentRunId??null,subagentRoleId:r?.subagentRoleId??null,createImproveRunId:r?.createImproveRunId??e.turn?.createImproveRun?.id??null,commandName:t,commandSource:r?.commandSource??v(e.turn,t),appId:e.session.appId,workspaceKind:e.session.workspaceKind??null,workspaceId:e.session.workspaceId??null,localProjectId:e.session.localProjectId??null,cloudProjectId:e.session.cloudProjectId??null,sourceEventSequence:null}}s(M,"modelUsageAttribution");function q(e,r){return r==="create_improve_planner"?"create_improve":r==="harness_refiner"?"system":r==="context_compaction"?"compaction":"chat"}s(q,"usageSurface");function T(e,r,t){return e==="create_improve_planner"?"planner":e==="harness_refiner"?"other":e==="context_compaction"?"summary":e==="subagent"?"subagent":t||e==="slash_command"?"slash_command":r===0?"direct_chat":"tool_loop"}s(T,"usageWorkflowKind");function i(e){if(!e)return null;let r=u.safeParse(e.metadata?.usageAttribution);return r.success?r.data:null}s(i,"usageRequestAttributionFromTurn");function m(e){if(!e)return null;let t=i(e)?.commandName;if(typeof t=="string"&&t.trim())return t.trim();let n=e.createImproveRun?.command;return typeof n=="string"&&n.trim().startsWith("/")?n.trim():null}s(m,"commandNameFromTurn");function v(e,r){return e?.createImproveRun?.metadata?.source==="native_model_tool"?"model_tool":r?"prompt_parse":null}s(v,"commandSourceFromTurn");function R(e){return e instanceof Error&&e.name.trim()?e.name.trim():"Error"}s(R,"errorType");export{f as a,P as b};
2
+ import{b as d}from"./chunk-GV3LFSMI.js";import{a as c}from"./chunk-7KWD2I6W.js";import{d as o,e as l}from"./chunk-557XSPVS.js";import{a as u}from"./chunk-W5W4IODW.js";import{a as s}from"./chunk-FTQLQJQV.js";import{randomUUID as p}from"node:crypto";function f(e){let r=c(e.usage),t=e.requestKind??h({session:e.session,turn:e.turn??null,requestOrdinal:e.requestOrdinal}),n=e.completedAt,g=e.error&&l(e.error)||null;return{id:`usage_${p()}`,requestId:e.requestId,requestOrdinal:e.requestOrdinal,sessionId:e.session.id,turnId:e.turn?.id??null,provider:e.provider,model:e.model||"unknown",route:U(e.provider),source:r.promptTokens!==null||r.completionTokens!==null||r.totalTokens!==null?"provider_usage":"missing",requestKind:t,visibility:b(e.session,t),status:e.status,startedAt:e.startedAt,completedAt:n,durationMs:n?Math.max(0,Date.parse(n)-Date.parse(e.startedAt)):null,firstTokenMs:e.firstTokenMs,promptTokens:r.promptTokens,cachedPromptTokens:r.cachedPromptTokens,uncachedPromptTokens:r.uncachedPromptTokens,cacheWritePromptTokens:r.cacheWritePromptTokens,cacheTelemetrySource:r.cacheTelemetrySource,completionTokens:r.completionTokens,totalTokens:r.totalTokens,errorType:e.error?R(e.error):null,errorMessage:g,attribution:M({session:e.session,turn:e.turn??null,requestKind:t,requestOrdinal:e.requestOrdinal})}}s(f,"createProviderRequestUsageRecord");async function P(e){let r=new a(e);return await r.start(),r}s(P,"startProviderRequestUsageRecorder");var a=class{constructor(r){this.input=r}input;static{s(this,"ProviderRequestUsageRecorder")}latestUsage=null;firstTokenMs=null;startedAt=o();startedAtMs=Date.now();async start(){await this.upsert("started",null)}observeDelta(r){this.firstTokenMs===null&&k(r)&&(this.firstTokenMs=Math.max(0,Date.now()-this.startedAtMs)),r.usage&&(this.latestUsage=r.usage)}async complete(){await this.upsert("completed",o())}async fail(r,t){await this.upsert(t,o(),r)}async upsert(r,t,n){await this.input.upsert(f({session:this.input.session,turn:this.input.turn,provider:this.input.provider,model:this.input.model,requestId:this.input.requestId,requestOrdinal:this.input.requestOrdinal,requestKind:this.input.requestKind,startedAt:this.startedAt,completedAt:t,firstTokenMs:this.firstTokenMs,usage:this.latestUsage,status:r,error:n}))}};function k(e){return!!(e.text||e.reasoningText||e.toolCalls&&e.toolCalls.length>0)}s(k,"modelUsageDeltaHasOutput");function U(e){return e==="openpond"?"openpond_hosted":e==="codex"?"codex_app_server":d(e)?"local_byok":"unknown"}s(U,"modelUsageRoute");function h(e){let r=i(e.turn);return r?.subagentRunId||r?.workflowKind==="subagent"?"subagent":e.turn&&m(e.turn)?"slash_command":e.requestOrdinal===0?"chat_turn":"tool_loop"}s(h,"modelUsageRequestKind");function b(e,r){return e.systemKind?"system":r==="context_compaction"||r==="create_improve_planner"||r==="harness_refiner"||r==="subagent"||r==="codex_context"?"background":"user_facing"}s(b,"modelUsageVisibility");function M(e){let r=i(e.turn),t=m(e.turn);return{surface:r?.surface??q(e.session,e.requestKind),workflowKind:r?.workflowKind??T(e.requestKind,e.requestOrdinal,t),sessionId:e.session.id,turnId:e.turn?.id??null,goalId:r?.goalId??null,subagentRunId:r?.subagentRunId??null,subagentRoleId:r?.subagentRoleId??null,createImproveRunId:r?.createImproveRunId??e.turn?.createImproveRun?.id??null,commandName:t,commandSource:r?.commandSource??v(e.turn,t),appId:e.session.appId,workspaceKind:e.session.workspaceKind??null,workspaceId:e.session.workspaceId??null,localProjectId:e.session.localProjectId??null,cloudProjectId:e.session.cloudProjectId??null,sourceEventSequence:null}}s(M,"modelUsageAttribution");function q(e,r){return r==="create_improve_planner"?"create_improve":r==="harness_refiner"?"system":r==="context_compaction"?"compaction":"chat"}s(q,"usageSurface");function T(e,r,t){return e==="create_improve_planner"?"planner":e==="harness_refiner"?"other":e==="context_compaction"?"summary":e==="subagent"?"subagent":t||e==="slash_command"?"slash_command":r===0?"direct_chat":"tool_loop"}s(T,"usageWorkflowKind");function i(e){if(!e)return null;let r=u.safeParse(e.metadata?.usageAttribution);return r.success?r.data:null}s(i,"usageRequestAttributionFromTurn");function m(e){if(!e)return null;let t=i(e)?.commandName;if(typeof t=="string"&&t.trim())return t.trim();let n=e.createImproveRun?.command;return typeof n=="string"&&n.trim().startsWith("/")?n.trim():null}s(m,"commandNameFromTurn");function v(e,r){return e?.createImproveRun?.metadata?.source==="native_model_tool"?"model_tool":r?"prompt_parse":null}s(v,"commandSourceFromTurn");function R(e){return e instanceof Error&&e.name.trim()?e.name.trim():"Error"}s(R,"errorType");export{f as a,P as b};
@@ -1,2 +1,2 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{t as l}from"./chunk-HZLV773Y.js";import{a as f}from"./chunk-FTQLQJQV.js";function d(a,s){let{tasks:r,paths:i,policyPaths:c}=p(a.draft,s),o=a.draft.metadata.portableFileInventory,n=a.files.filter(e=>!c.has(e.path)||i.has(e.path)),t=new Set(n.map(e=>e.path));return l({schemaVersion:a.schemaVersion,files:n,draft:{...a.draft,tasks:r,metadata:{...a.draft.metadata,...Array.isArray(o)?{portableFileInventory:o.filter(e=>t.has(e.sourcePath))}:{},localDatasetTaskIds:s}}},Number.POSITIVE_INFINITY)}f(d,"projectLocalDatasetWorkspace");function p(a,s){let r=new Set(s);if(!r.size||r.size!==s.length||s.some(t=>!a.tasks.some(e=>e.id===t)))throw new Error("Select distinct existing local Dataset tasks.");for(let t of a.graderFixtures)r.add(t.taskId);let i=a.tasks.filter(t=>r.has(t.id)),c=new Set(i.flatMap(t=>(t.assets??[]).map(e=>e.artifactRef))),o=a.metadata.portableFileInventory,n=new Set;if(Array.isArray(o))for(let t of o)t.asset?.visibility==="policy"&&n.add(t.sourcePath);return{tasks:i,paths:c,policyPaths:n}}f(p,"localDatasetProjectionPaths");export{d as a,p as b};
2
+ import{t as l}from"./chunk-TW3SRBLU.js";import{a as f}from"./chunk-FTQLQJQV.js";function d(a,s){let{tasks:r,paths:i,policyPaths:c}=p(a.draft,s),o=a.draft.metadata.portableFileInventory,n=a.files.filter(e=>!c.has(e.path)||i.has(e.path)),t=new Set(n.map(e=>e.path));return l({schemaVersion:a.schemaVersion,files:n,draft:{...a.draft,tasks:r,metadata:{...a.draft.metadata,...Array.isArray(o)?{portableFileInventory:o.filter(e=>t.has(e.sourcePath))}:{},localDatasetTaskIds:s}}},Number.POSITIVE_INFINITY)}f(d,"projectLocalDatasetWorkspace");function p(a,s){let r=new Set(s);if(!r.size||r.size!==s.length||s.some(t=>!a.tasks.some(e=>e.id===t)))throw new Error("Select distinct existing local Dataset tasks.");for(let t of a.graderFixtures)r.add(t.taskId);let i=a.tasks.filter(t=>r.has(t.id)),c=new Set(i.flatMap(t=>(t.assets??[]).map(e=>e.artifactRef))),o=a.metadata.portableFileInventory,n=new Set;if(Array.isArray(o))for(let t of o)t.asset?.visibility==="policy"&&n.add(t.sourcePath);return{tasks:i,paths:c,policyPaths:n}}f(p,"localDatasetProjectionPaths");export{d as a,p as b};
@@ -1,2 +1,2 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{a as N,b as y,c as J}from"./chunk-BQUWZRWU.js";import{Ia as D,Ja as $,Ma as A,Na as O,Pa as z,Sa as K,Va as M,Wa as G,Xa as _,Ya as B,Za as L,ha as j}from"./chunk-M4ZRCRJM.js";import{f as b,m as d}from"./chunk-VNJAAYNQ.js";import{Hb as U,Kb as P,Ob as T,v as R}from"./chunk-M6JRS5PA.js";import{O as E,Pb as v,Qb as H,fb as C,ib as S,jb as k,qb as q}from"./chunk-PBZCXPPC.js";import{A as r}from"./chunk-PF56N7ZY.js";import{a as l}from"./chunk-FTQLQJQV.js";var F=r.string().regex(/^[a-f0-9]{64}$/),V=r.object({request:D,maximumCostUsd:r.number().finite().positive().max(1e4),graders:r.array(K).min(1).max(100),admissionRequestHash:F.optional(),sourceExperimentId:r.string().trim().min(1).max(200).optional()}).strict(),ee=V.extend({configurationHash:F}).strict(),te=$.extend({configuration:ee}).strict();function w(s){return s.policy.kind==="hosted_harness"?{...s,population:s.population.map(({receiptId:t,...e})=>e)}:s}l(w,"experimentConfigurationRequest");function se(s){let t=V.parse(s);return d({...t,request:w(t.request)})}l(se,"experimentRunConfigurationHash");async function re(s){let t=te.parse(s),{configuration:e,...a}=t,n=await O(a),{configurationHash:o,...i}=e;if(o!==se(i)||d(w(e.request))!==d(w(n.request))||e.maximumCostUsd!==n.manifest.limits.maximumSpendUsd)throw new Error("Experiment configuration differs from its retained run.");if(n.manifest.metadata.experimentDefinition===null){let m=G.parse({definition:null,configurationHash:e.configurationHash,maximumCostUsd:e.maximumCostUsd,graders:e.graders,...e.admissionRequestHash?{admissionRequestHash:e.admissionRequestHash}:{},...e.sourceExperimentId?{sourceExperimentId:e.sourceExperimentId}:{}});if(n.manifest.metadata.experimentConfigurationHash!==d(m))throw new Error("Experiment configuration differs from its admitted manifest.")}return{...n,configuration:e}}l(re,"verifyExperimentRunDetails");var ae=r.object({teamId:r.string().trim().min(1).max(240),items:r.array(r.object({name:r.string().trim().min(1).max(500),source:q,ready:r.boolean(),reason:r.string().min(1).max(2e3).nullable()}).strict()).max(8),nextCursor:r.string().min(1).max(8192).nullable()}).strict(),p=r.string().min(1).max(500),X=r.string().regex(/^[a-f0-9]{64}$/),g=r.iso.datetime(),I=r.number().finite().nonnegative().nullable(),h=r.number().int().nonnegative().nullable(),Q=r.object({id:p,sequence:r.number().int().nonnegative(),at:g.nullable(),type:r.string().max(160),action:r.string().max(160).nullable(),correlationId:p.nullable(),attempt:h,taskId:p.nullable(),status:r.string().max(100).nullable(),errorCode:r.string().max(200).nullable(),cleanupComplete:r.boolean().nullable()}).strict(),ne=r.object({id:p,kind:r.string().max(100),status:r.string().max(100),receiptId:p.nullable(),maximumUsd:I,settledUsd:I,model:r.string().max(200).nullable(),durationMs:h,inputTokens:h,outputTokens:h,totalTokens:h}).strict(),W=r.object({schemaVersion:r.literal("openpond.runDiagnostics.v1"),teamId:p,runId:p,location:r.enum(["local","hosted"]),manifestHash:X,observedAt:g,status:r.string().max(100),startedAt:g.nullable(),completedAt:g.nullable(),error:r.string().max(8192).nullable(),resultAvailable:r.boolean(),parent:r.object({id:p,status:r.string().max(100),attempt:h,heartbeatAt:g.nullable(),leaseExpiresAt:g.nullable(),releasedAt:g.nullable(),errorCode:r.string().max(200).nullable()}).strict().nullable(),accounting:r.object({maximumUsd:I,settledUsd:I,outstandingUsd:I,outstandingCount:h,final:r.boolean(),receiptCount:h}).strict(),events:r.array(Q).max(100),nextEventCursor:r.number().int().nonnegative().nullable(),eventCount:r.number().int().nonnegative(),calls:r.array(ne).max(100),nextCallCursor:p.nullable(),callCount:r.number().int().nonnegative(),limitations:r.array(r.string().max(1e3)).max(30)}).strict(),ie=W.extend({contentHash:X}).strict(),oe=r.object({afterSequence:r.number().int().nonnegative().optional(),afterCallId:p.optional()}).strict();function Re(s){let t=W.parse(s);return{...t,contentHash:d(t)}}l(Re,"sealRunDiagnostics");function de(s,t){let e=ie.parse(s),{contentHash:a,...n}=e;if(a!==d(n)||e.teamId!==t.teamId||e.runId!==t.runId||t.manifestHash&&e.manifestHash!==t.manifestHash)throw new Error("Diagnostics differ from the selected workspace, run or retained evidence.");if(e.events.length>e.eventCount||e.calls.length>e.callCount||new Set(e.events.map(o=>o.id)).size!==e.events.length||e.events.some((o,i)=>o.sequence<=(i?e.events[i-1].sequence:t.afterSequence??-1))||e.calls.some((o,i)=>o.id<=(i?e.calls[i-1].id:t.afterCallId??""))||e.nextEventCursor!==null&&e.nextEventCursor!==e.events.at(-1)?.sequence||e.nextCallCursor!==null&&e.nextCallCursor!==e.calls.at(-1)?.id||e.accounting.final&&(e.accounting.outstandingCount!==0||e.accounting.settledUsd===null||!e.accounting.receiptCount))throw new Error("Diagnostic evidence pagination or final accounting is inconsistent.");return e}l(de,"verifyRunDiagnostics");function Ue(s){let t=l(o=>o!==null&&typeof o=="object"&&!Array.isArray(o)?o:{},"record"),e=t(s.payload),a=t(e.data),n=l((o,i)=>typeof o=="string"&&/^[a-zA-Z0-9_.:/-]+$/.test(o)?o.slice(0,i):null,"token");return Q.parse({id:s.id,sequence:s.sequence,at:s.at,type:s.type.slice(0,160),action:n(e.action,160),correlationId:n(a.callId??a.toolCallId,500),attempt:typeof e.attempt=="number"&&Number.isInteger(e.attempt)&&e.attempt>=0?e.attempt:null,taskId:n(e.taskId??a.taskId,500),status:n(e.status,100),errorCode:n(e.errorCode??e.code,200),cleanupComplete:typeof e.complete=="boolean"&&s.type==="experiment.harness.cleanup"?e.complete:null})}l(Ue,"diagnosticEvent");function Pe(s){return s?s.match(/\b[a-z][a-z0-9]+(?:_[a-z0-9]+){1,12}\b/g)?.slice(0,6).join(" / ")||"Failure recorded. Inspect the authorized run for its exact message.":null}l(Pe,"diagnosticFailure");var c=r.string().trim().min(1).max(200),ce=class extends Error{static{l(this,"OpenPondExperimentError")}constructor(s,t,e){super(e),this.status=s,this.code=t,this.name="OpenPondExperimentError"}status;code},Te=class{static{l(this,"OpenPondExperimentsClient")}constructor(s){this.options=s;let t=new URL(s.baseUrl);if(!["http:","https:"].includes(t.protocol)||t.username||t.password||t.search||t.hash||!s.apiKey.trim()||!s.teamId.trim())throw new Error("A clean API origin and workspace credentials are required.");this.baseUrl=t.toString().replace(/\/+$/,"")}options;baseUrl;async defaults(s){return r.object({maximumSpendUsd:r.number().finite().min(1e-6).max(1e4),maximumComparisonSpendUsd:r.number().finite().min(1e-6).max(1e4),initialOutputTokens:r.number().int().positive()}).strict().parse(await this.request("/defaults","GET",void 0,s))}async createComparisonBudget(s,t){let e=r.object({id:c,operationIds:r.array(c).min(1).max(100),maximumSpendUsd:r.number().finite().min(1e-6).max(1e4).optional()}).strict().parse(s),a=this.comparisonBudgetResult(await this.request("/comparison-budgets","POST",e,t),e.id);if(d(a.operations.map(n=>n.operationId).sort())!==d([...e.operationIds].sort())||e.maximumSpendUsd!==void 0&&a.maximumSpendUsd!==e.maximumSpendUsd)throw new Error("Comparison admission differs from its requested operations or ceiling.");return a}async comparisonBudget(s,t){return this.comparisonBudgetResult(await this.request(`/comparison-budgets/${encodeURIComponent(c.parse(s))}`,"GET",void 0,t),s)}comparisonBudgetResult(s,t){let e=r.object({id:c,teamId:c,maximumSpendUsd:r.number().finite().positive(),settledUsd:r.number().finite().nonnegative(),reservedUsd:r.number().finite().nonnegative(),remainingUsd:r.number().finite().nonnegative(),operations:r.array(r.object({operationId:c,runId:c.nullable()}).strict()).min(1).max(100)}).strict().parse(s);if(e.id!==t||e.teamId!==this.options.teamId)throw new Error("Comparison budget scope mismatch.");return e}async harnessSources(s={}){let t=s.cursor===void 0?void 0:r.string().min(1).max(8192).parse(s.cursor),e=new URLSearchParams(t?{cursor:t}:{}),a=ae.parse(await this.request(`/harness-sources?${e}`,"GET",void 0,s.signal));if(a.teamId!==this.options.teamId||new Set(a.items.map(n=>d(n.source))).size!==a.items.length||a.nextCursor!==null&&a.nextCursor===t||a.items.some(n=>n.ready!==(n.reason===null)))throw new Error("Harness catalog differs from its workspace, readiness or continuation.");return a}async prepareHarness(s,t){let e=_.parse({...s,maximumCostUsd:s.maximumCostUsd??(await this.defaults(t)).maximumSpendUsd}),a=B.parse(await this.request("/harness-setup","POST",e,t));A(a.request,a.manifest);let n=a.request.policy;if(a.request.teamId!==this.options.teamId||a.request.operationId!==e.operationId||n.kind!=="hosted_harness"||n.profileRepositoryId!==e.profileRepositoryId||n.source.definitionId!==e.definitionId||n.modelId!==e.modelId||n.reasoningEffort!==e.reasoningEffort||a.maximumCostUsd!==e.maximumCostUsd||a.manifest.limits.maximumSpendUsd!==e.maximumCostUsd)throw new Error("Harness preparation differs from its requested scope or configuration.");return a}async run(s,t){let e=L.parse({...s,maximumCostUsd:s.maximumCostUsd??(await this.defaults(t)).maximumSpendUsd});if(e.request.teamId!==this.options.teamId)throw new Error("Experiment workspace mismatch.");let a=await this.details(await this.request("","POST",{...e,maximumCostUsd:s.maximumCostUsd},t));if(s.maximumCostUsd===void 0&&(e.maximumCostUsd=a.configuration.maximumCostUsd),d(w(a.request))!==d(w(e.request))||a.configuration.maximumCostUsd!==e.maximumCostUsd||a.configuration.sourceExperimentId!==e.sourceExperimentId||a.configuration.admissionRequestHash!==d(e))throw new Error("Experiment admission differs from its submitted configuration.");if(e.graders&&d(e.graders)!==d(a.configuration.graders.map(n=>({id:n.id,version:n.version,contentHash:n.contentHash,mappings:n.mappings??[]}))))throw new Error("Experiment admission differs from its selected graders or mappings.");return a}async get(s,t={}){return this.details(await this.request(`/${encodeURIComponent(c.parse(s))}`,"GET",void 0,t.signal),s)}async diagnostics(s,t={}){let e=oe.parse({afterSequence:t.afterSequence,afterCallId:t.afterCallId}),a=new URLSearchParams(Object.entries(e).filter(([,n])=>n!==void 0).map(([n,o])=>[n,String(o)]));return de(await this.request(`/${encodeURIComponent(c.parse(s))}/diagnostics?${a}`,"GET",void 0,t.signal),{teamId:this.options.teamId,runId:s,manifestHash:t.manifestHash,afterSequence:t.afterSequence,afterCallId:t.afterCallId})}async list(s={},t){let e=M.parse(s),a=new URLSearchParams(Object.entries(e).filter(([,i])=>i!==void 0).map(([i,m])=>[i,String(m)])),n=r.object({items:r.array(r.unknown()).max(100),nextCursor:c.nullable()}).strict().parse(await this.request(`?${a}`,"GET",void 0,t)),o=await Promise.all(n.items.map(i=>this.details(i)));if(o.length>e.limit||new Set(o.map(i=>i.summary.id)).size!==o.length||n.nextCursor!==null&&n.nextCursor!==o.at(-1)?.summary.id||o.some(i=>e.projectId&&i.request.project?.id!==e.projectId||e.datasetHash&&i.request.taskset.contentHash!==e.datasetHash||e.status&&i.summary.status!==e.status))throw new Error("Experiment page differs from its selected scope.");return{items:o,nextCursor:n.nextCursor}}async result(s,t){let e=r.object({executionId:c,passId:c.nullable(),manifest:r.unknown(),result:r.unknown()}).strict().parse(await this.request(`/${encodeURIComponent(c.parse(s))}/result`,"GET",void 0,t)),a=v(e);if(e.executionId!==s||a.manifest.teamId!==this.options.teamId||a.manifest.lineage?.execution.id!==s||a.manifest.lineage.scoringPassId!==e.passId)throw new Error("Experiment result identity mismatch.");return{...a,executionId:s,passId:e.passId}}async cancel(s,t){return this.details(await this.request(`/${encodeURIComponent(c.parse(s))}/cancel`,"POST",{},t),s)}async duplicate(s,t,e){let a=await this.details(await this.request(`/${encodeURIComponent(c.parse(s))}/duplicate`,"POST",{operationId:c.parse(t)},e));if(a.request.operationId!==t||a.configuration.sourceExperimentId!==s||a.summary.id===s)throw new Error("Duplicate Experiment admission differs from its source or operation.");return a}async score(s,t){let e=N.parse(s),a=this.pass(await this.request(`/${encodeURIComponent(e.execution.id)}/scoring-passes`,"POST",e,t));if(d(a.request)!==d(e))throw new Error("Scoring admission differs from its submitted inputs.");return a}async scoringPass(s,t){return this.pass(await this.request(`/scoring-passes/${encodeURIComponent(c.parse(s))}`,"GET",void 0,t),s)}async scoringPasses(s,t={}){let e=new URLSearchParams(t.afterId?{afterId:c.parse(t.afterId)}:{});t.executionKind&&e.set("executionKind",r.literal("recorded_evidence").parse(t.executionKind));let a=r.object({items:r.array(r.unknown()).max(30),nextCursor:c.nullable()}).strict().parse(await this.request(`/${encodeURIComponent(c.parse(s))}/scoring-passes?${e}`,"GET",void 0,t.signal)),n=a.items.map(o=>this.pass(o));if(n.some(o=>o.request.execution.id!==s||o.request.executionKind!==t.executionKind)||new Set(n.map(o=>o.id)).size!==n.length)throw new Error("Scoring pass page differs from its execution ownership.");return{items:n,nextCursor:a.nextCursor}}async cancelScoringPass(s,t){return this.pass(await this.request(`/scoring-passes/${encodeURIComponent(c.parse(s))}/cancel`,"POST",{},t),s)}async scoringResult(s,t){let e=r.object({executionId:c,passId:c,manifest:r.unknown(),result:r.unknown()}).strict().parse(await this.request(`/scoring-passes/${encodeURIComponent(c.parse(s))}/result`,"GET",void 0,t)),a=v(e);if(e.passId!==s||a.manifest.teamId!==this.options.teamId||a.manifest.id!==s||a.manifest.lineage?.execution.id!==e.executionId||a.manifest.lineage.scoringPassId!==s)throw new Error("Scoring result identity mismatch.");return{...a,executionId:e.executionId,passId:s}}async compare(s,t,e){let a=l(i=>i.startsWith("score_")?this.scoringResult(i,e):this.result(i,e),"read"),[n,o]=await Promise.all([a(s),a(t)]);return{baseline:n,candidate:o,comparison:H(n,o)}}async details(s,t){let e=await re(s);if(e.summary.teamId!==this.options.teamId||t&&e.summary.id!==t)throw new Error("Experiment identity mismatch.");return e}pass(s,t){let e=y(s);if(e.teamId!==this.options.teamId||t&&e.id!==t)throw new Error("Scoring pass identity mismatch.");return e}async request(s,t,e,a){let n=await(this.options.fetch??fetch)(`${this.baseUrl}/v1/experiments${s}`,{method:t,signal:a,redirect:"error",headers:{Authorization:`Bearer ${this.options.apiKey}`,"X-OpenPond-Team-Id":this.options.teamId,"Content-Type":"application/json",Accept:"application/json"},...e===void 0?{}:{body:JSON.stringify(e)}}),o=await n.json();if(!n.ok){let i=r.object({code:r.string(),message:r.string()}).safeParse(o);throw new ce(n.status,i.success?i.data.code:"experiment_request_failed",i.success?i.data.message:"Experiment request failed.")}return o}},f=r.string().trim().min(1).max(500),Z=r.string().regex(/^[a-f0-9]{64}$/),me=r.object({schemaVersion:r.literal("openpond.experimentCaseInspection.v1"),teamId:f,executionId:f,manifestHash:Z,receiptId:f,taskId:f,seed:r.string().min(1),input:r.record(r.string(),r.unknown()).nullable(),output:r.unknown().nullable(),error:r.string().nullable(),events:r.array(r.record(r.string(),r.unknown())).max(25),nextEventCursor:f.nullable(),eventCount:r.number().int().nonnegative()}).strict(),ue=me.extend({contentHash:Z}).strict(),De=class{static{l(this,"OpenPondExperimentInspectionClient")}constructor(s){this.options=s;let t=new URL(s.baseUrl);if(!["http:","https:"].includes(t.protocol)||t.username||t.password||t.search||t.hash||!s.apiKey.trim()||!s.teamId.trim())throw new Error("A clean API origin and workspace credentials are required.");this.baseUrl=t.toString().replace(/\/+$/,"")}options;baseUrl;async case(s,t,e={}){let a=new URLSearchParams(e.afterId?{afterId:f.parse(e.afterId)}:{}),n=await(this.options.fetch??fetch)(`${this.baseUrl}/v1/experiments/${encodeURIComponent(f.parse(s))}/cases/${encodeURIComponent(f.parse(t))}?${a}`,{signal:e.signal,redirect:"error",headers:{Authorization:`Bearer ${this.options.apiKey}`,"X-OpenPond-Team-Id":this.options.teamId,Accept:"application/json"}}),o=await n.json();if(!n.ok)throw new Error(r.object({message:r.string()}).parse(o).message);let i=ue.parse(o),{contentHash:m,...u}=i;if(d(u)!==m||i.teamId!==this.options.teamId||i.executionId!==s||i.receiptId!==t||e.manifestHash&&i.manifestHash!==e.manifestHash||i.events.length>i.eventCount)throw new Error("Case inspection differs from its requested workspace, execution or retained content.");return i}};function le(s){return JSON.stringify(s.release?["reward",s.release.id,s.release.revision,s.release.contentHash,s.feedbackKey]:["dataset",s.id,s.version,s.contentHash,s.feedbackKey])}l(le,"datasetGraderIdentity");function pe(s){let t=new Map;for(let e of s){let a=le(e),n=t.get(a);n?n.aliases.push(e):t.set(a,{key:a,grader:e,aliases:[e]})}return[...t.values()]}l(pe,"groupDatasetGraders");function $e(s){let t=pe(s),e=new Map;for(let a of t){let n=e.get(a.grader.feedbackKey);if(n&&n!==a.key)throw new Error(`Different selected grader releases use feedback key "${a.grader.feedbackKey}". Select one, or publish graders with distinct feedback keys.`);e.set(a.grader.feedbackKey,a.key);let o=JSON.stringify(a.grader.mappings??[]);if(a.aliases.some(i=>JSON.stringify(i.mappings??[])!==o))throw new Error(`Aliases of grader "${a.grader.feedbackKey}" have different field mappings. Select one alias and review its mappings.`)}return t.map(a=>a.grader)}l($e,"canonicalDatasetGraderSelection");function Ke(s){let t=C(s.binding),e=j(s.packageValue),a=e.taskset;if(a.id!==t.dataset.id||a.revision!==t.dataset.revision||a.contentHash!==t.dataset.contentHash||e.contentHash!==t.packageHash||d(a.environment)!==t.environmentHash||d(e.files.filter(n=>n.asset.visibility!=="policy").map(n=>n.asset))!==t.privateDatasetClosureHash)throw new Error("The selected Dataset package, environment or protected closure changed.");if(t.population.length>500)throw new Error("Select at most 500 exact Dataset cases before starting this bounded Profile evaluation.");for(let n of t.population){let o=a.tasks.find(i=>i.id===n.taskId);if(!o||o.split!==t.split)throw new Error("The selected ordered population is outside its exact Dataset split.");if(n.fixtureId!==null)throw new Error("This recorded cutoff needs an admitted replay fixture before executing the Profile target.")}if(t.gradingSource){if(!s.actualGrading)throw new Error("The actual selected scoring owner is required for this recipe.");let n=y(s.actualGrading.pass),o=v(r.object({manifest:r.unknown(),result:r.unknown()}).strict().parse(s.actualGrading.evidence));if(n.status!=="completed"||n.id!==t.gradingSource.pass.id||n.contentHash!==t.gradingSource.pass.contentHash||o.manifest.id!==t.gradingSource.evidence.id||o.result.contentHash!==t.gradingSource.evidence.contentHash||o.manifest.lineage?.scoringPassId!==n.id||d(o.manifest.dataset)!==d(t.dataset)||d(o.manifest.evaluators)!==d(t.evaluators)||d(t.fieldMappings)!==d(n.graders.map(u=>({graderId:u.id,fields:u.mappings??[]}))))throw new Error("The selected scoring owner changed its exact Dataset, measurements or mappings.");let i=o.manifest.population,m=t.recordedOrigin?t.recordedOrigin.members.map(u=>({caseId:u.caseId,seed:u.seed,fixtureId:u.fixtureId})):t.population.map(u=>({caseId:u.taskId,seed:u.seed,fixtureId:u.fixtureId}));if(i.length!==m.length||i.some((u,Y)=>d(u)!==d(m[Y])))throw new Error("The selected scoring population differs from the exact ordered original cases and cutoffs.")}else{if(t.fieldMappings.some(i=>!a.graders.some(m=>m.id===i.graderId)))throw new Error("The field mappings name a grader outside the selected release.");for(let i of t.fieldMappings)z.parse(i.fields);let n=t.evaluators.map(i=>{let m=s.graders.find(u=>u.feedbackKey===i.feedbackKey&&d(u.release??{id:u.id,revision:u.version,contentHash:u.contentHash})===d(i.release));if(!m)throw new Error("Select an exact released Dataset grader for this external recipe.");return m});if(t.fieldMappings.some(i=>!n.some(m=>m.id===i.graderId)))throw new Error("Field mappings refer to an unselected grader.");let o=n.map(i=>({release:i.release??{id:i.id,revision:i.version,contentHash:i.contentHash},feedbackKey:i.feedbackKey,configurationHash:d({graderHash:i.contentHash,mappings:t.fieldMappings.find(m=>m.graderId===i.id)?.fields??[]}),output:"score",categories:[]}));if(d(o)!==d(t.evaluators))throw new Error("The external recipe's graders or mappings differ from the current exact released grading settings.");for(let i of s.graders)if(!a.graders.some(m=>m.id===i.id&&m.version===i.version&&d(m)===i.contentHash))throw new Error("External grader pins differ from the actual Dataset implementation.")}for(let n of s.graders)if(!a.graders.some(o=>o.id===n.id&&o.version===n.version&&d(o)===n.contentHash))throw new Error("Dataset-native grader pins differ from their actual implementation.");return e}l(Ke,"verifyExternalDatasetPackage");var x=r.string().trim().min(1).max(240),fe=r.object({profileRef:r.object({source:r.enum(["local","github","openpond_git"]),repositoryId:x,profileId:x}).strict(),sourceRevision:r.string().min(1).max(500),harnessRelease:b,catalogHash:r.string().regex(/^[a-f0-9]{64}$/).nullable(),definitions:r.array(S).max(1e3),suites:r.array(k).max(100),runs:r.array(r.object({profileRef:r.object({source:r.enum(["local","github","openpond_git"]),repositoryId:x,profileId:x}).strict(),manifest:R,metric:E,gradeRefs:r.array(b),receiptRefs:r.array(b),passRate:r.number().min(0).max(1),passed:r.boolean(),completedAt:r.iso.datetime(),contentHash:r.string().regex(/^[a-f0-9]{64}$/)}).strict()).max(1e3),comparisons:r.array(U).max(1e3),suiteRuns:r.array(T).max(1e3),reports:r.array(P).max(1e3)}).strict(),he=r.object({teamId:x,profileRepositoryId:x,trainingProjectId:x.optional()}).strict(),_e=class{static{l(this,"OpenPondProfileEvaluationDiscoveryClient")}constructor(s){this.options=s;let t=new URL(s.baseUrl);if(!["http:","https:"].includes(t.protocol)||t.username||t.password||t.search||t.hash||!s.apiKey.trim()||!s.teamId.trim())throw new Error("Profile discovery requires a scoped HTTP endpoint and owner credential.")}options;async read(s,t){let e=he.parse({...s,teamId:this.options.teamId}),{response:a,value:n}=await J(this.options.fetch??fetch,`${this.options.baseUrl.replace(/\/$/,"")}/v1/profile-evaluation-discovery`,{method:"POST",redirect:"error",headers:{Authorization:`Bearer ${this.options.apiKey}`,"X-OpenPond-Team-Id":this.options.teamId,"Content-Type":"application/json"},body:JSON.stringify(e),signal:t},(i,m,u)=>new Error(u));if(!a.ok)throw new Error("The released Profile evaluation owner is unavailable to this account and workspace.");let o=fe.parse(n);if(o.profileRef.repositoryId!==e.profileRepositoryId)throw new Error("Profile discovery returned another source owner.");return o}};export{te as a,oe as b,Re as c,Ue as d,Pe as e,ce as f,Te as g,De as h,$e as i,Ke as j,_e as k};
2
+ import{a as N,b as y,c as J}from"./chunk-P74RR2GB.js";import{Ia as D,Ja as $,Ma as A,Na as O,Pa as z,Sa as K,Va as M,Wa as G,Xa as _,Ya as B,Za as L,ha as j}from"./chunk-PGO4FRHU.js";import{f as b,m as d}from"./chunk-VNJAAYNQ.js";import{Hb as U,Kb as P,Ob as T,v as R}from"./chunk-ABF3W2MO.js";import{O as E,Pb as v,Qb as H,fb as C,ib as S,jb as k,qb as q}from"./chunk-PBZCXPPC.js";import{A as r}from"./chunk-PF56N7ZY.js";import{a as l}from"./chunk-FTQLQJQV.js";var F=r.string().regex(/^[a-f0-9]{64}$/),V=r.object({request:D,maximumCostUsd:r.number().finite().positive().max(1e4),graders:r.array(K).min(1).max(100),admissionRequestHash:F.optional(),sourceExperimentId:r.string().trim().min(1).max(200).optional()}).strict(),ee=V.extend({configurationHash:F}).strict(),te=$.extend({configuration:ee}).strict();function w(s){return s.policy.kind==="hosted_harness"?{...s,population:s.population.map(({receiptId:t,...e})=>e)}:s}l(w,"experimentConfigurationRequest");function se(s){let t=V.parse(s);return d({...t,request:w(t.request)})}l(se,"experimentRunConfigurationHash");async function re(s){let t=te.parse(s),{configuration:e,...a}=t,n=await O(a),{configurationHash:o,...i}=e;if(o!==se(i)||d(w(e.request))!==d(w(n.request))||e.maximumCostUsd!==n.manifest.limits.maximumSpendUsd)throw new Error("Experiment configuration differs from its retained run.");if(n.manifest.metadata.experimentDefinition===null){let m=G.parse({definition:null,configurationHash:e.configurationHash,maximumCostUsd:e.maximumCostUsd,graders:e.graders,...e.admissionRequestHash?{admissionRequestHash:e.admissionRequestHash}:{},...e.sourceExperimentId?{sourceExperimentId:e.sourceExperimentId}:{}});if(n.manifest.metadata.experimentConfigurationHash!==d(m))throw new Error("Experiment configuration differs from its admitted manifest.")}return{...n,configuration:e}}l(re,"verifyExperimentRunDetails");var ae=r.object({teamId:r.string().trim().min(1).max(240),items:r.array(r.object({name:r.string().trim().min(1).max(500),source:q,ready:r.boolean(),reason:r.string().min(1).max(2e3).nullable()}).strict()).max(8),nextCursor:r.string().min(1).max(8192).nullable()}).strict(),p=r.string().min(1).max(500),X=r.string().regex(/^[a-f0-9]{64}$/),g=r.iso.datetime(),I=r.number().finite().nonnegative().nullable(),h=r.number().int().nonnegative().nullable(),Q=r.object({id:p,sequence:r.number().int().nonnegative(),at:g.nullable(),type:r.string().max(160),action:r.string().max(160).nullable(),correlationId:p.nullable(),attempt:h,taskId:p.nullable(),status:r.string().max(100).nullable(),errorCode:r.string().max(200).nullable(),cleanupComplete:r.boolean().nullable()}).strict(),ne=r.object({id:p,kind:r.string().max(100),status:r.string().max(100),receiptId:p.nullable(),maximumUsd:I,settledUsd:I,model:r.string().max(200).nullable(),durationMs:h,inputTokens:h,outputTokens:h,totalTokens:h}).strict(),W=r.object({schemaVersion:r.literal("openpond.runDiagnostics.v1"),teamId:p,runId:p,location:r.enum(["local","hosted"]),manifestHash:X,observedAt:g,status:r.string().max(100),startedAt:g.nullable(),completedAt:g.nullable(),error:r.string().max(8192).nullable(),resultAvailable:r.boolean(),parent:r.object({id:p,status:r.string().max(100),attempt:h,heartbeatAt:g.nullable(),leaseExpiresAt:g.nullable(),releasedAt:g.nullable(),errorCode:r.string().max(200).nullable()}).strict().nullable(),accounting:r.object({maximumUsd:I,settledUsd:I,outstandingUsd:I,outstandingCount:h,final:r.boolean(),receiptCount:h}).strict(),events:r.array(Q).max(100),nextEventCursor:r.number().int().nonnegative().nullable(),eventCount:r.number().int().nonnegative(),calls:r.array(ne).max(100),nextCallCursor:p.nullable(),callCount:r.number().int().nonnegative(),limitations:r.array(r.string().max(1e3)).max(30)}).strict(),ie=W.extend({contentHash:X}).strict(),oe=r.object({afterSequence:r.number().int().nonnegative().optional(),afterCallId:p.optional()}).strict();function Re(s){let t=W.parse(s);return{...t,contentHash:d(t)}}l(Re,"sealRunDiagnostics");function de(s,t){let e=ie.parse(s),{contentHash:a,...n}=e;if(a!==d(n)||e.teamId!==t.teamId||e.runId!==t.runId||t.manifestHash&&e.manifestHash!==t.manifestHash)throw new Error("Diagnostics differ from the selected workspace, run or retained evidence.");if(e.events.length>e.eventCount||e.calls.length>e.callCount||new Set(e.events.map(o=>o.id)).size!==e.events.length||e.events.some((o,i)=>o.sequence<=(i?e.events[i-1].sequence:t.afterSequence??-1))||e.calls.some((o,i)=>o.id<=(i?e.calls[i-1].id:t.afterCallId??""))||e.nextEventCursor!==null&&e.nextEventCursor!==e.events.at(-1)?.sequence||e.nextCallCursor!==null&&e.nextCallCursor!==e.calls.at(-1)?.id||e.accounting.final&&(e.accounting.outstandingCount!==0||e.accounting.settledUsd===null||!e.accounting.receiptCount))throw new Error("Diagnostic evidence pagination or final accounting is inconsistent.");return e}l(de,"verifyRunDiagnostics");function Ue(s){let t=l(o=>o!==null&&typeof o=="object"&&!Array.isArray(o)?o:{},"record"),e=t(s.payload),a=t(e.data),n=l((o,i)=>typeof o=="string"&&/^[a-zA-Z0-9_.:/-]+$/.test(o)?o.slice(0,i):null,"token");return Q.parse({id:s.id,sequence:s.sequence,at:s.at,type:s.type.slice(0,160),action:n(e.action,160),correlationId:n(a.callId??a.toolCallId,500),attempt:typeof e.attempt=="number"&&Number.isInteger(e.attempt)&&e.attempt>=0?e.attempt:null,taskId:n(e.taskId??a.taskId,500),status:n(e.status,100),errorCode:n(e.errorCode??e.code,200),cleanupComplete:typeof e.complete=="boolean"&&s.type==="experiment.harness.cleanup"?e.complete:null})}l(Ue,"diagnosticEvent");function Pe(s){return s?s.match(/\b[a-z][a-z0-9]+(?:_[a-z0-9]+){1,12}\b/g)?.slice(0,6).join(" / ")||"Failure recorded. Inspect the authorized run for its exact message.":null}l(Pe,"diagnosticFailure");var c=r.string().trim().min(1).max(200),ce=class extends Error{static{l(this,"OpenPondExperimentError")}constructor(s,t,e){super(e),this.status=s,this.code=t,this.name="OpenPondExperimentError"}status;code},Te=class{static{l(this,"OpenPondExperimentsClient")}constructor(s){this.options=s;let t=new URL(s.baseUrl);if(!["http:","https:"].includes(t.protocol)||t.username||t.password||t.search||t.hash||!s.apiKey.trim()||!s.teamId.trim())throw new Error("A clean API origin and workspace credentials are required.");this.baseUrl=t.toString().replace(/\/+$/,"")}options;baseUrl;async defaults(s){return r.object({maximumSpendUsd:r.number().finite().min(1e-6).max(1e4),maximumComparisonSpendUsd:r.number().finite().min(1e-6).max(1e4),initialOutputTokens:r.number().int().positive()}).strict().parse(await this.request("/defaults","GET",void 0,s))}async createComparisonBudget(s,t){let e=r.object({id:c,operationIds:r.array(c).min(1).max(100),maximumSpendUsd:r.number().finite().min(1e-6).max(1e4).optional()}).strict().parse(s),a=this.comparisonBudgetResult(await this.request("/comparison-budgets","POST",e,t),e.id);if(d(a.operations.map(n=>n.operationId).sort())!==d([...e.operationIds].sort())||e.maximumSpendUsd!==void 0&&a.maximumSpendUsd!==e.maximumSpendUsd)throw new Error("Comparison admission differs from its requested operations or ceiling.");return a}async comparisonBudget(s,t){return this.comparisonBudgetResult(await this.request(`/comparison-budgets/${encodeURIComponent(c.parse(s))}`,"GET",void 0,t),s)}comparisonBudgetResult(s,t){let e=r.object({id:c,teamId:c,maximumSpendUsd:r.number().finite().positive(),settledUsd:r.number().finite().nonnegative(),reservedUsd:r.number().finite().nonnegative(),remainingUsd:r.number().finite().nonnegative(),operations:r.array(r.object({operationId:c,runId:c.nullable()}).strict()).min(1).max(100)}).strict().parse(s);if(e.id!==t||e.teamId!==this.options.teamId)throw new Error("Comparison budget scope mismatch.");return e}async harnessSources(s={}){let t=s.cursor===void 0?void 0:r.string().min(1).max(8192).parse(s.cursor),e=new URLSearchParams(t?{cursor:t}:{}),a=ae.parse(await this.request(`/harness-sources?${e}`,"GET",void 0,s.signal));if(a.teamId!==this.options.teamId||new Set(a.items.map(n=>d(n.source))).size!==a.items.length||a.nextCursor!==null&&a.nextCursor===t||a.items.some(n=>n.ready!==(n.reason===null)))throw new Error("Harness catalog differs from its workspace, readiness or continuation.");return a}async prepareHarness(s,t){let e=_.parse({...s,maximumCostUsd:s.maximumCostUsd??(await this.defaults(t)).maximumSpendUsd}),a=B.parse(await this.request("/harness-setup","POST",e,t));A(a.request,a.manifest);let n=a.request.policy;if(a.request.teamId!==this.options.teamId||a.request.operationId!==e.operationId||n.kind!=="hosted_harness"||n.profileRepositoryId!==e.profileRepositoryId||n.source.definitionId!==e.definitionId||n.modelId!==e.modelId||n.reasoningEffort!==e.reasoningEffort||a.maximumCostUsd!==e.maximumCostUsd||a.manifest.limits.maximumSpendUsd!==e.maximumCostUsd)throw new Error("Harness preparation differs from its requested scope or configuration.");return a}async run(s,t){let e=L.parse({...s,maximumCostUsd:s.maximumCostUsd??(await this.defaults(t)).maximumSpendUsd});if(e.request.teamId!==this.options.teamId)throw new Error("Experiment workspace mismatch.");let a=await this.details(await this.request("","POST",{...e,maximumCostUsd:s.maximumCostUsd},t));if(s.maximumCostUsd===void 0&&(e.maximumCostUsd=a.configuration.maximumCostUsd),d(w(a.request))!==d(w(e.request))||a.configuration.maximumCostUsd!==e.maximumCostUsd||a.configuration.sourceExperimentId!==e.sourceExperimentId||a.configuration.admissionRequestHash!==d(e))throw new Error("Experiment admission differs from its submitted configuration.");if(e.graders&&d(e.graders)!==d(a.configuration.graders.map(n=>({id:n.id,version:n.version,contentHash:n.contentHash,mappings:n.mappings??[]}))))throw new Error("Experiment admission differs from its selected graders or mappings.");return a}async get(s,t={}){return this.details(await this.request(`/${encodeURIComponent(c.parse(s))}`,"GET",void 0,t.signal),s)}async diagnostics(s,t={}){let e=oe.parse({afterSequence:t.afterSequence,afterCallId:t.afterCallId}),a=new URLSearchParams(Object.entries(e).filter(([,n])=>n!==void 0).map(([n,o])=>[n,String(o)]));return de(await this.request(`/${encodeURIComponent(c.parse(s))}/diagnostics?${a}`,"GET",void 0,t.signal),{teamId:this.options.teamId,runId:s,manifestHash:t.manifestHash,afterSequence:t.afterSequence,afterCallId:t.afterCallId})}async list(s={},t){let e=M.parse(s),a=new URLSearchParams(Object.entries(e).filter(([,i])=>i!==void 0).map(([i,m])=>[i,String(m)])),n=r.object({items:r.array(r.unknown()).max(100),nextCursor:c.nullable()}).strict().parse(await this.request(`?${a}`,"GET",void 0,t)),o=await Promise.all(n.items.map(i=>this.details(i)));if(o.length>e.limit||new Set(o.map(i=>i.summary.id)).size!==o.length||n.nextCursor!==null&&n.nextCursor!==o.at(-1)?.summary.id||o.some(i=>e.projectId&&i.request.project?.id!==e.projectId||e.datasetHash&&i.request.taskset.contentHash!==e.datasetHash||e.status&&i.summary.status!==e.status))throw new Error("Experiment page differs from its selected scope.");return{items:o,nextCursor:n.nextCursor}}async result(s,t){let e=r.object({executionId:c,passId:c.nullable(),manifest:r.unknown(),result:r.unknown()}).strict().parse(await this.request(`/${encodeURIComponent(c.parse(s))}/result`,"GET",void 0,t)),a=v(e);if(e.executionId!==s||a.manifest.teamId!==this.options.teamId||a.manifest.lineage?.execution.id!==s||a.manifest.lineage.scoringPassId!==e.passId)throw new Error("Experiment result identity mismatch.");return{...a,executionId:s,passId:e.passId}}async cancel(s,t){return this.details(await this.request(`/${encodeURIComponent(c.parse(s))}/cancel`,"POST",{},t),s)}async duplicate(s,t,e){let a=await this.details(await this.request(`/${encodeURIComponent(c.parse(s))}/duplicate`,"POST",{operationId:c.parse(t)},e));if(a.request.operationId!==t||a.configuration.sourceExperimentId!==s||a.summary.id===s)throw new Error("Duplicate Experiment admission differs from its source or operation.");return a}async score(s,t){let e=N.parse(s),a=this.pass(await this.request(`/${encodeURIComponent(e.execution.id)}/scoring-passes`,"POST",e,t));if(d(a.request)!==d(e))throw new Error("Scoring admission differs from its submitted inputs.");return a}async scoringPass(s,t){return this.pass(await this.request(`/scoring-passes/${encodeURIComponent(c.parse(s))}`,"GET",void 0,t),s)}async scoringPasses(s,t={}){let e=new URLSearchParams(t.afterId?{afterId:c.parse(t.afterId)}:{});t.executionKind&&e.set("executionKind",r.literal("recorded_evidence").parse(t.executionKind));let a=r.object({items:r.array(r.unknown()).max(30),nextCursor:c.nullable()}).strict().parse(await this.request(`/${encodeURIComponent(c.parse(s))}/scoring-passes?${e}`,"GET",void 0,t.signal)),n=a.items.map(o=>this.pass(o));if(n.some(o=>o.request.execution.id!==s||o.request.executionKind!==t.executionKind)||new Set(n.map(o=>o.id)).size!==n.length)throw new Error("Scoring pass page differs from its execution ownership.");return{items:n,nextCursor:a.nextCursor}}async cancelScoringPass(s,t){return this.pass(await this.request(`/scoring-passes/${encodeURIComponent(c.parse(s))}/cancel`,"POST",{},t),s)}async scoringResult(s,t){let e=r.object({executionId:c,passId:c,manifest:r.unknown(),result:r.unknown()}).strict().parse(await this.request(`/scoring-passes/${encodeURIComponent(c.parse(s))}/result`,"GET",void 0,t)),a=v(e);if(e.passId!==s||a.manifest.teamId!==this.options.teamId||a.manifest.id!==s||a.manifest.lineage?.execution.id!==e.executionId||a.manifest.lineage.scoringPassId!==s)throw new Error("Scoring result identity mismatch.");return{...a,executionId:e.executionId,passId:s}}async compare(s,t,e){let a=l(i=>i.startsWith("score_")?this.scoringResult(i,e):this.result(i,e),"read"),[n,o]=await Promise.all([a(s),a(t)]);return{baseline:n,candidate:o,comparison:H(n,o)}}async details(s,t){let e=await re(s);if(e.summary.teamId!==this.options.teamId||t&&e.summary.id!==t)throw new Error("Experiment identity mismatch.");return e}pass(s,t){let e=y(s);if(e.teamId!==this.options.teamId||t&&e.id!==t)throw new Error("Scoring pass identity mismatch.");return e}async request(s,t,e,a){let n=await(this.options.fetch??fetch)(`${this.baseUrl}/v1/experiments${s}`,{method:t,signal:a,redirect:"error",headers:{Authorization:`Bearer ${this.options.apiKey}`,"X-OpenPond-Team-Id":this.options.teamId,"Content-Type":"application/json",Accept:"application/json"},...e===void 0?{}:{body:JSON.stringify(e)}}),o=await n.json();if(!n.ok){let i=r.object({code:r.string(),message:r.string()}).safeParse(o);throw new ce(n.status,i.success?i.data.code:"experiment_request_failed",i.success?i.data.message:"Experiment request failed.")}return o}},f=r.string().trim().min(1).max(500),Z=r.string().regex(/^[a-f0-9]{64}$/),me=r.object({schemaVersion:r.literal("openpond.experimentCaseInspection.v1"),teamId:f,executionId:f,manifestHash:Z,receiptId:f,taskId:f,seed:r.string().min(1),input:r.record(r.string(),r.unknown()).nullable(),output:r.unknown().nullable(),error:r.string().nullable(),events:r.array(r.record(r.string(),r.unknown())).max(25),nextEventCursor:f.nullable(),eventCount:r.number().int().nonnegative()}).strict(),ue=me.extend({contentHash:Z}).strict(),De=class{static{l(this,"OpenPondExperimentInspectionClient")}constructor(s){this.options=s;let t=new URL(s.baseUrl);if(!["http:","https:"].includes(t.protocol)||t.username||t.password||t.search||t.hash||!s.apiKey.trim()||!s.teamId.trim())throw new Error("A clean API origin and workspace credentials are required.");this.baseUrl=t.toString().replace(/\/+$/,"")}options;baseUrl;async case(s,t,e={}){let a=new URLSearchParams(e.afterId?{afterId:f.parse(e.afterId)}:{}),n=await(this.options.fetch??fetch)(`${this.baseUrl}/v1/experiments/${encodeURIComponent(f.parse(s))}/cases/${encodeURIComponent(f.parse(t))}?${a}`,{signal:e.signal,redirect:"error",headers:{Authorization:`Bearer ${this.options.apiKey}`,"X-OpenPond-Team-Id":this.options.teamId,Accept:"application/json"}}),o=await n.json();if(!n.ok)throw new Error(r.object({message:r.string()}).parse(o).message);let i=ue.parse(o),{contentHash:m,...u}=i;if(d(u)!==m||i.teamId!==this.options.teamId||i.executionId!==s||i.receiptId!==t||e.manifestHash&&i.manifestHash!==e.manifestHash||i.events.length>i.eventCount)throw new Error("Case inspection differs from its requested workspace, execution or retained content.");return i}};function le(s){return JSON.stringify(s.release?["reward",s.release.id,s.release.revision,s.release.contentHash,s.feedbackKey]:["dataset",s.id,s.version,s.contentHash,s.feedbackKey])}l(le,"datasetGraderIdentity");function pe(s){let t=new Map;for(let e of s){let a=le(e),n=t.get(a);n?n.aliases.push(e):t.set(a,{key:a,grader:e,aliases:[e]})}return[...t.values()]}l(pe,"groupDatasetGraders");function $e(s){let t=pe(s),e=new Map;for(let a of t){let n=e.get(a.grader.feedbackKey);if(n&&n!==a.key)throw new Error(`Different selected grader releases use feedback key "${a.grader.feedbackKey}". Select one, or publish graders with distinct feedback keys.`);e.set(a.grader.feedbackKey,a.key);let o=JSON.stringify(a.grader.mappings??[]);if(a.aliases.some(i=>JSON.stringify(i.mappings??[])!==o))throw new Error(`Aliases of grader "${a.grader.feedbackKey}" have different field mappings. Select one alias and review its mappings.`)}return t.map(a=>a.grader)}l($e,"canonicalDatasetGraderSelection");function Ke(s){let t=C(s.binding),e=j(s.packageValue),a=e.taskset;if(a.id!==t.dataset.id||a.revision!==t.dataset.revision||a.contentHash!==t.dataset.contentHash||e.contentHash!==t.packageHash||d(a.environment)!==t.environmentHash||d(e.files.filter(n=>n.asset.visibility!=="policy").map(n=>n.asset))!==t.privateDatasetClosureHash)throw new Error("The selected Dataset package, environment or protected closure changed.");if(t.population.length>500)throw new Error("Select at most 500 exact Dataset cases before starting this bounded Profile evaluation.");for(let n of t.population){let o=a.tasks.find(i=>i.id===n.taskId);if(!o||o.split!==t.split)throw new Error("The selected ordered population is outside its exact Dataset split.");if(n.fixtureId!==null)throw new Error("This recorded cutoff needs an admitted replay fixture before executing the Profile target.")}if(t.gradingSource){if(!s.actualGrading)throw new Error("The actual selected scoring owner is required for this recipe.");let n=y(s.actualGrading.pass),o=v(r.object({manifest:r.unknown(),result:r.unknown()}).strict().parse(s.actualGrading.evidence));if(n.status!=="completed"||n.id!==t.gradingSource.pass.id||n.contentHash!==t.gradingSource.pass.contentHash||o.manifest.id!==t.gradingSource.evidence.id||o.result.contentHash!==t.gradingSource.evidence.contentHash||o.manifest.lineage?.scoringPassId!==n.id||d(o.manifest.dataset)!==d(t.dataset)||d(o.manifest.evaluators)!==d(t.evaluators)||d(t.fieldMappings)!==d(n.graders.map(u=>({graderId:u.id,fields:u.mappings??[]}))))throw new Error("The selected scoring owner changed its exact Dataset, measurements or mappings.");let i=o.manifest.population,m=t.recordedOrigin?t.recordedOrigin.members.map(u=>({caseId:u.caseId,seed:u.seed,fixtureId:u.fixtureId})):t.population.map(u=>({caseId:u.taskId,seed:u.seed,fixtureId:u.fixtureId}));if(i.length!==m.length||i.some((u,Y)=>d(u)!==d(m[Y])))throw new Error("The selected scoring population differs from the exact ordered original cases and cutoffs.")}else{if(t.fieldMappings.some(i=>!a.graders.some(m=>m.id===i.graderId)))throw new Error("The field mappings name a grader outside the selected release.");for(let i of t.fieldMappings)z.parse(i.fields);let n=t.evaluators.map(i=>{let m=s.graders.find(u=>u.feedbackKey===i.feedbackKey&&d(u.release??{id:u.id,revision:u.version,contentHash:u.contentHash})===d(i.release));if(!m)throw new Error("Select an exact released Dataset grader for this external recipe.");return m});if(t.fieldMappings.some(i=>!n.some(m=>m.id===i.graderId)))throw new Error("Field mappings refer to an unselected grader.");let o=n.map(i=>({release:i.release??{id:i.id,revision:i.version,contentHash:i.contentHash},feedbackKey:i.feedbackKey,configurationHash:d({graderHash:i.contentHash,mappings:t.fieldMappings.find(m=>m.graderId===i.id)?.fields??[]}),output:"score",categories:[]}));if(d(o)!==d(t.evaluators))throw new Error("The external recipe's graders or mappings differ from the current exact released grading settings.");for(let i of s.graders)if(!a.graders.some(m=>m.id===i.id&&m.version===i.version&&d(m)===i.contentHash))throw new Error("External grader pins differ from the actual Dataset implementation.")}for(let n of s.graders)if(!a.graders.some(o=>o.id===n.id&&o.version===n.version&&d(o)===n.contentHash))throw new Error("Dataset-native grader pins differ from their actual implementation.");return e}l(Ke,"verifyExternalDatasetPackage");var x=r.string().trim().min(1).max(240),fe=r.object({profileRef:r.object({source:r.enum(["local","github","openpond_git"]),repositoryId:x,profileId:x}).strict(),sourceRevision:r.string().min(1).max(500),harnessRelease:b,catalogHash:r.string().regex(/^[a-f0-9]{64}$/).nullable(),definitions:r.array(S).max(1e3),suites:r.array(k).max(100),runs:r.array(r.object({profileRef:r.object({source:r.enum(["local","github","openpond_git"]),repositoryId:x,profileId:x}).strict(),manifest:R,metric:E,gradeRefs:r.array(b),receiptRefs:r.array(b),passRate:r.number().min(0).max(1),passed:r.boolean(),completedAt:r.iso.datetime(),contentHash:r.string().regex(/^[a-f0-9]{64}$/)}).strict()).max(1e3),comparisons:r.array(U).max(1e3),suiteRuns:r.array(T).max(1e3),reports:r.array(P).max(1e3)}).strict(),he=r.object({teamId:x,profileRepositoryId:x,trainingProjectId:x.optional()}).strict(),_e=class{static{l(this,"OpenPondProfileEvaluationDiscoveryClient")}constructor(s){this.options=s;let t=new URL(s.baseUrl);if(!["http:","https:"].includes(t.protocol)||t.username||t.password||t.search||t.hash||!s.apiKey.trim()||!s.teamId.trim())throw new Error("Profile discovery requires a scoped HTTP endpoint and owner credential.")}options;async read(s,t){let e=he.parse({...s,teamId:this.options.teamId}),{response:a,value:n}=await J(this.options.fetch??fetch,`${this.options.baseUrl.replace(/\/$/,"")}/v1/profile-evaluation-discovery`,{method:"POST",redirect:"error",headers:{Authorization:`Bearer ${this.options.apiKey}`,"X-OpenPond-Team-Id":this.options.teamId,"Content-Type":"application/json"},body:JSON.stringify(e),signal:t},(i,m,u)=>new Error(u));if(!a.ok)throw new Error("The released Profile evaluation owner is unavailable to this account and workspace.");let o=fe.parse(n);if(o.profileRef.repositoryId!==e.profileRepositoryId)throw new Error("Profile discovery returned another source owner.");return o}};export{te as a,oe as b,Re as c,Ue as d,Pe as e,ce as f,Te as g,De as h,$e as i,Ke as j,_e as k};
@@ -1,2 +1,2 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{a as H,b as y,c as C,e as E,g as S,h as P,i as j}from"./chunk-CQF6QZEL.js";import{c as I}from"./chunk-BQUWZRWU.js";import{jb as w,lb as b}from"./chunk-M4ZRCRJM.js";import{f as h,l as v,m as l}from"./chunk-VNJAAYNQ.js";import{A as e}from"./chunk-PF56N7ZY.js";import{a as f}from"./chunk-FTQLQJQV.js";var a=e.string().min(1).max(240),d=e.string().regex(/^[a-f0-9]{64}$/),g=e.string().regex(/^[a-f0-9]{40}$/),x=e.object({schemaVersion:e.literal("openpond.hostedProfileCandidateExport.v1"),actorId:a,teamId:a,candidateId:a,candidateRevision:e.number().int().positive(),projectId:a.nullable(),profileRef:e.object({source:e.literal("openpond_git"),repositoryId:a,profileId:a}).strict(),expectedCommit:g,component:y.shape.component,baseRelease:h,frozenHash:d,executableSourceHash:d,protectedClosureHash:d,compiler:e.object({workspaceId:a,name:e.string().max(500),repositoryId:a}).strict(),sourceManifest:e.object({base64:e.string().max(28e5),contentHash:d,sizeBytes:e.number().int().positive().max(2e6)}).strict(),policySource:w,qualification:e.object({kind:e.enum(["owner_attested_local","hosted_execution"]),ownerActorId:a,teamId:a,originalEvidence:h,baseline:h,candidate:h,comparisonHash:d,recipe:H}).strict(),createdAt:e.string().datetime(),contentHash:d}).strict();function J(n){let o=x.parse(n),{contentHash:t,...c}=o;if(l(c)!==t||o.qualification.ownerActorId!==o.actorId||o.qualification.teamId!==o.teamId||o.qualification.recipe.externalDatasetBinding.profileId!==o.profileRef.profileId||o.qualification.recipe.externalDatasetBinding.protectedProfileClosureHash!==o.protectedClosureHash)throw new Error("Hosted candidate owner attestation identity differs.");return b(o.policySource),o}f(J,"verifyHostedProfileCandidateExport");var O=e.object({schemaVersion:e.literal("openpond.hostedProfileCandidateAdoption.v1"),id:a,operationId:a,actorId:a,teamId:a,candidateId:a,exportHash:d,executionOrigin:e.enum(["owner_attested_local","hosted_execution"]),qualification:x.shape.qualification,testedCandidateRelease:h,activeRelease:h,expectedCommit:g,committedProfileGit:g,executableSourceHash:d,protectedClosureHash:d,createdAt:e.string().datetime(),contentHash:d}).strict();function R(n){let o=O.parse(n),{contentHash:t,...c}=o;if(l(c)!==t||o.executionOrigin!==o.qualification.kind||o.qualification.ownerActorId!==o.actorId||o.qualification.teamId!==o.teamId)throw new Error("Hosted candidate receipt integrity differs.");return o}f(R,"verifyHostedProfileCandidateReceipt");var T=e.discriminatedUnion("operation",[e.object({operation:e.literal("adopt"),operationId:a,export:x}).strict(),e.object({operation:e.enum(["read","rollback"]),operationId:a,adoptionOperationId:a,profileRepositoryId:a}).strict()]),K=class{static{f(this,"ExperimentImprovementClient")}constructor(n){this.options=n;let o=new URL(n.baseUrl);if(!["http:","https:"].includes(o.protocol)||o.username||o.password||o.hash||o.search||!n.apiKey.trim()||!n.teamId.trim()||!n.actorId.trim())throw new Error("Select the authenticated Improve owner and API origin.");this.origin=o.toString().replace(/\/+$/,"")}options;origin;async hostedCandidate(n,o){let t=T.parse(n);if(t.operation==="adopt"&&(t.export.actorId!==this.options.actorId||t.export.teamId!==this.options.teamId))throw new Error("The hosted candidate export belongs to a different owner.");let{response:c,value:p}=await I(this.options.fetch??fetch,`${this.origin}/v1/profile-candidate-adoptions`,{method:"POST",redirect:"error",headers:{Authorization:`Bearer ${this.options.apiKey}`,"Content-Type":"application/json","X-OpenPond-Team-Id":this.options.teamId},body:JSON.stringify({teamId:this.options.teamId,command:t}),signal:o},(m,u,r)=>Object.assign(new Error(r),{status:m,code:u}));if(!c.ok){let m=e.object({code:e.string(),message:e.string().optional(),error:e.string().optional()}).passthrough().safeParse(p);throw Object.assign(new Error(m.success?m.data.message??m.data.error??m.data.code:"Hosted candidate operation failed."),{status:c.status,code:m.success?m.data.code:void 0})}let i=R(p);if(i.actorId!==this.options.actorId||i.teamId!==this.options.teamId||i.operationId!==t.operationId||t.operation==="adopt"&&(i.exportHash!==t.export.contentHash||i.candidateId!==t.export.candidateId||i.testedCandidateRelease.contentHash!==t.export.policySource.harnessRelease.contentHash))throw new Error("Hosted candidate readback differs from the exact owner request.");return i}async command(n,o){let t=S.parse(n),{response:c,value:p}=await I(this.options.fetch??fetch,`${this.origin}/v1/experiment-improvements`,{method:"POST",redirect:"error",headers:{Authorization:`Bearer ${this.options.apiKey}`,"Content-Type":"application/json","X-OpenPond-Team-Id":this.options.teamId},body:JSON.stringify({teamId:this.options.teamId,request:t}),signal:o},(r,s,q)=>Object.assign(new Error(q),{status:r,code:s}));if(!c.ok){let r=e.object({error:e.string(),code:e.string().optional()}).passthrough().safeParse(p);throw Object.assign(new Error(r.success?r.data.error:"The Improve operation failed."),{status:c.status,code:r.success?r.data.code:void 0})}if(t.operation==="options"){let r=P.parse(p);if(r.teamId!==this.options.teamId||l(r.evidence)!==l(t.evidence))throw new Error("The Improve choices changed their exact originating evidence.");return r}if(t.operation==="humanComparisonOptions"){let r=j(p);if(r.candidateId!==t.id||r.actorId!==this.options.actorId||r.teamId!==this.options.teamId)throw new Error("Human discovery belongs to another owner or candidate.");return r}if(t.operation==="instructions"){let r=e.object({candidateId:e.string(),candidateRevision:e.number().int().positive(),path:e.string(),text:e.string().max(25e4),textHash:e.string().regex(/^[a-f0-9]{64}$/),contentHash:e.string().regex(/^[a-f0-9]{64}$/)}).strict().parse(p);if(r.candidateId!==t.id||v(r.text)!==r.textHash)throw new Error("The candidate instructions belong to a different revision.");return r}let i=t.operation==="list"?E.parse(p):null;if(t.operation==="list"&&i&&(i.states.length>t.limit||i.states.some((r,s)=>t.cursor&&r.id<=t.cursor||s>0&&r.id<=i.states[s-1].id)||i.nextCursor&&(t.cursor&&i.nextCursor<=t.cursor||i.states.some(r=>r.id>i.nextCursor))))throw new Error("The retained candidate page changed its scan boundary.");let u=(i?i.states:[p]).map(r=>{let s=C(r);if(s.actorId!==this.options.actorId||s.teamId!==this.options.teamId||"id"in t&&s.id!==t.id)throw new Error("The Improve response belongs to a different owner or candidate.");if(t.operation==="start"&&s.requestHash!==l(t.request))throw new Error("The Improve request identity changed.");return s});return i?{states:u,nextCursor:i.nextCursor}:u[0]}};export{J as a,K as b};
2
+ import{a as H,b as y,c as C,e as E,g as S,h as P,i as j}from"./chunk-BEI4YULC.js";import{c as I}from"./chunk-P74RR2GB.js";import{jb as w,lb as b}from"./chunk-PGO4FRHU.js";import{f as h,l as v,m as l}from"./chunk-VNJAAYNQ.js";import{A as e}from"./chunk-PF56N7ZY.js";import{a as f}from"./chunk-FTQLQJQV.js";var a=e.string().min(1).max(240),d=e.string().regex(/^[a-f0-9]{64}$/),g=e.string().regex(/^[a-f0-9]{40}$/),x=e.object({schemaVersion:e.literal("openpond.hostedProfileCandidateExport.v1"),actorId:a,teamId:a,candidateId:a,candidateRevision:e.number().int().positive(),projectId:a.nullable(),profileRef:e.object({source:e.literal("openpond_git"),repositoryId:a,profileId:a}).strict(),expectedCommit:g,component:y.shape.component,baseRelease:h,frozenHash:d,executableSourceHash:d,protectedClosureHash:d,compiler:e.object({workspaceId:a,name:e.string().max(500),repositoryId:a}).strict(),sourceManifest:e.object({base64:e.string().max(28e5),contentHash:d,sizeBytes:e.number().int().positive().max(2e6)}).strict(),policySource:w,qualification:e.object({kind:e.enum(["owner_attested_local","hosted_execution"]),ownerActorId:a,teamId:a,originalEvidence:h,baseline:h,candidate:h,comparisonHash:d,recipe:H}).strict(),createdAt:e.string().datetime(),contentHash:d}).strict();function J(n){let o=x.parse(n),{contentHash:t,...c}=o;if(l(c)!==t||o.qualification.ownerActorId!==o.actorId||o.qualification.teamId!==o.teamId||o.qualification.recipe.externalDatasetBinding.profileId!==o.profileRef.profileId||o.qualification.recipe.externalDatasetBinding.protectedProfileClosureHash!==o.protectedClosureHash)throw new Error("Hosted candidate owner attestation identity differs.");return b(o.policySource),o}f(J,"verifyHostedProfileCandidateExport");var O=e.object({schemaVersion:e.literal("openpond.hostedProfileCandidateAdoption.v1"),id:a,operationId:a,actorId:a,teamId:a,candidateId:a,exportHash:d,executionOrigin:e.enum(["owner_attested_local","hosted_execution"]),qualification:x.shape.qualification,testedCandidateRelease:h,activeRelease:h,expectedCommit:g,committedProfileGit:g,executableSourceHash:d,protectedClosureHash:d,createdAt:e.string().datetime(),contentHash:d}).strict();function R(n){let o=O.parse(n),{contentHash:t,...c}=o;if(l(c)!==t||o.executionOrigin!==o.qualification.kind||o.qualification.ownerActorId!==o.actorId||o.qualification.teamId!==o.teamId)throw new Error("Hosted candidate receipt integrity differs.");return o}f(R,"verifyHostedProfileCandidateReceipt");var T=e.discriminatedUnion("operation",[e.object({operation:e.literal("adopt"),operationId:a,export:x}).strict(),e.object({operation:e.enum(["read","rollback"]),operationId:a,adoptionOperationId:a,profileRepositoryId:a}).strict()]),K=class{static{f(this,"ExperimentImprovementClient")}constructor(n){this.options=n;let o=new URL(n.baseUrl);if(!["http:","https:"].includes(o.protocol)||o.username||o.password||o.hash||o.search||!n.apiKey.trim()||!n.teamId.trim()||!n.actorId.trim())throw new Error("Select the authenticated Improve owner and API origin.");this.origin=o.toString().replace(/\/+$/,"")}options;origin;async hostedCandidate(n,o){let t=T.parse(n);if(t.operation==="adopt"&&(t.export.actorId!==this.options.actorId||t.export.teamId!==this.options.teamId))throw new Error("The hosted candidate export belongs to a different owner.");let{response:c,value:p}=await I(this.options.fetch??fetch,`${this.origin}/v1/profile-candidate-adoptions`,{method:"POST",redirect:"error",headers:{Authorization:`Bearer ${this.options.apiKey}`,"Content-Type":"application/json","X-OpenPond-Team-Id":this.options.teamId},body:JSON.stringify({teamId:this.options.teamId,command:t}),signal:o},(m,u,r)=>Object.assign(new Error(r),{status:m,code:u}));if(!c.ok){let m=e.object({code:e.string(),message:e.string().optional(),error:e.string().optional()}).passthrough().safeParse(p);throw Object.assign(new Error(m.success?m.data.message??m.data.error??m.data.code:"Hosted candidate operation failed."),{status:c.status,code:m.success?m.data.code:void 0})}let i=R(p);if(i.actorId!==this.options.actorId||i.teamId!==this.options.teamId||i.operationId!==t.operationId||t.operation==="adopt"&&(i.exportHash!==t.export.contentHash||i.candidateId!==t.export.candidateId||i.testedCandidateRelease.contentHash!==t.export.policySource.harnessRelease.contentHash))throw new Error("Hosted candidate readback differs from the exact owner request.");return i}async command(n,o){let t=S.parse(n),{response:c,value:p}=await I(this.options.fetch??fetch,`${this.origin}/v1/experiment-improvements`,{method:"POST",redirect:"error",headers:{Authorization:`Bearer ${this.options.apiKey}`,"Content-Type":"application/json","X-OpenPond-Team-Id":this.options.teamId},body:JSON.stringify({teamId:this.options.teamId,request:t}),signal:o},(r,s,q)=>Object.assign(new Error(q),{status:r,code:s}));if(!c.ok){let r=e.object({error:e.string(),code:e.string().optional()}).passthrough().safeParse(p);throw Object.assign(new Error(r.success?r.data.error:"The Improve operation failed."),{status:c.status,code:r.success?r.data.code:void 0})}if(t.operation==="options"){let r=P.parse(p);if(r.teamId!==this.options.teamId||l(r.evidence)!==l(t.evidence))throw new Error("The Improve choices changed their exact originating evidence.");return r}if(t.operation==="humanComparisonOptions"){let r=j(p);if(r.candidateId!==t.id||r.actorId!==this.options.actorId||r.teamId!==this.options.teamId)throw new Error("Human discovery belongs to another owner or candidate.");return r}if(t.operation==="instructions"){let r=e.object({candidateId:e.string(),candidateRevision:e.number().int().positive(),path:e.string(),text:e.string().max(25e4),textHash:e.string().regex(/^[a-f0-9]{64}$/),contentHash:e.string().regex(/^[a-f0-9]{64}$/)}).strict().parse(p);if(r.candidateId!==t.id||v(r.text)!==r.textHash)throw new Error("The candidate instructions belong to a different revision.");return r}let i=t.operation==="list"?E.parse(p):null;if(t.operation==="list"&&i&&(i.states.length>t.limit||i.states.some((r,s)=>t.cursor&&r.id<=t.cursor||s>0&&r.id<=i.states[s-1].id)||i.nextCursor&&(t.cursor&&i.nextCursor<=t.cursor||i.states.some(r=>r.id>i.nextCursor))))throw new Error("The retained candidate page changed its scan boundary.");let u=(i?i.states:[p]).map(r=>{let s=C(r);if(s.actorId!==this.options.actorId||s.teamId!==this.options.teamId||"id"in t&&s.id!==t.id)throw new Error("The Improve response belongs to a different owner or candidate.");if(t.operation==="start"&&s.requestHash!==l(t.request))throw new Error("The Improve request identity changed.");return s});return i?{states:u,nextCursor:i.nextCursor}:u[0]}};export{J as a,K as b};
@@ -1,2 +1,2 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{m as d}from"./chunk-UBCLPZSQ.js";import{a as n}from"./chunk-FTQLQJQV.js";import{access as m,readFile as g}from"node:fs/promises";import{createHash as h}from"node:crypto";import o from"node:path";import{fileURLToPath as w}from"node:url";var i="openpond-taskset-authoring",f="artifact.json",u=o.dirname(w(import.meta.url));async function P(e=process.cwd()){return(await p(e)).bundle}n(P,"loadTasksetAuthoringSkillBundle");async function p(e=process.cwd()){let s=await k(e),t=JSON.parse(await g(o.join(s,f),"utf8"));if(t.schemaVersion!==1||t.skillName!==i||!t.artifactVersion||!t.bundle||!/^[a-f0-9]{64}$/.test(t.contentHash))throw new Error("Bundled Taskset Authoring artifact is invalid.");let{contentHash:r,...a}=t;if(h("sha256").update(JSON.stringify(a)).digest("hex")!==r)throw new Error("Bundled Taskset Authoring artifact hash does not match.");for(let l of t.files)if(h("sha256").update(l.contents).digest("hex")!==l.sha256)throw new Error(`Bundled Taskset Authoring file hash does not match: ${l.path}`);return t}n(p,"loadTasksetAuthoringSkillArtifact");async function S(e=process.cwd()){let s=await k(e),t=await p(e),r=t.bundle,a=d.find(c=>c.name===i);if(!a)throw new Error("Taskset Authoring skill metadata is missing.");return{...a,path:o.join(s,"SKILL.md"),sourcePath:s,charCount:r.length,sourceHash:t.contentHash,validationMessages:[...a.validationMessages],resourceFiles:[...a.resourceFiles]}}n(S,"loadTasksetAuthoringProfileSkill");async function O(e=process.cwd()){let s=await S(e),t=await P(e);return{name:s.name,description:s.description,body:t,path:s.path,sourceHash:s.sourceHash,charCount:s.charCount,packagePath:s.sourcePath,resourceFiles:s.resourceFiles}}n(O,"readTasksetAuthoringProfileSkill");async function k(e=process.cwd(),s=process.execPath){let t=[process.env.OPENPOND_TASKSET_AUTHORING_SKILL_ROOT,o.resolve(e,"apps","cli","skills",i),o.resolve(e,"dist","skills",i),o.resolve(o.dirname(s),"skills",i),o.resolve(u,"skills",i),o.resolve(u,"..","skills",i)].filter(r=>!!r);for(let r of t)if(await m(o.join(r,f)).then(()=>!0,()=>!1))return r;throw new Error(`Bundled Taskset Authoring skill was not found. Checked: ${t.join(", ")}`)}n(k,"resolveTasksetAuthoringSkillRoot");export{p as a,S as b,O as c};
2
+ import{m as d}from"./chunk-TUCKED4T.js";import{a as n}from"./chunk-FTQLQJQV.js";import{access as m,readFile as g}from"node:fs/promises";import{createHash as h}from"node:crypto";import o from"node:path";import{fileURLToPath as w}from"node:url";var i="openpond-taskset-authoring",f="artifact.json",u=o.dirname(w(import.meta.url));async function P(e=process.cwd()){return(await p(e)).bundle}n(P,"loadTasksetAuthoringSkillBundle");async function p(e=process.cwd()){let s=await k(e),t=JSON.parse(await g(o.join(s,f),"utf8"));if(t.schemaVersion!==1||t.skillName!==i||!t.artifactVersion||!t.bundle||!/^[a-f0-9]{64}$/.test(t.contentHash))throw new Error("Bundled Taskset Authoring artifact is invalid.");let{contentHash:r,...a}=t;if(h("sha256").update(JSON.stringify(a)).digest("hex")!==r)throw new Error("Bundled Taskset Authoring artifact hash does not match.");for(let l of t.files)if(h("sha256").update(l.contents).digest("hex")!==l.sha256)throw new Error(`Bundled Taskset Authoring file hash does not match: ${l.path}`);return t}n(p,"loadTasksetAuthoringSkillArtifact");async function S(e=process.cwd()){let s=await k(e),t=await p(e),r=t.bundle,a=d.find(c=>c.name===i);if(!a)throw new Error("Taskset Authoring skill metadata is missing.");return{...a,path:o.join(s,"SKILL.md"),sourcePath:s,charCount:r.length,sourceHash:t.contentHash,validationMessages:[...a.validationMessages],resourceFiles:[...a.resourceFiles]}}n(S,"loadTasksetAuthoringProfileSkill");async function O(e=process.cwd()){let s=await S(e),t=await P(e);return{name:s.name,description:s.description,body:t,path:s.path,sourceHash:s.sourceHash,charCount:s.charCount,packagePath:s.sourcePath,resourceFiles:s.resourceFiles}}n(O,"readTasksetAuthoringProfileSkill");async function k(e=process.cwd(),s=process.execPath){let t=[process.env.OPENPOND_TASKSET_AUTHORING_SKILL_ROOT,o.resolve(e,"apps","cli","skills",i),o.resolve(e,"dist","skills",i),o.resolve(o.dirname(s),"skills",i),o.resolve(u,"skills",i),o.resolve(u,"..","skills",i)].filter(r=>!!r);for(let r of t)if(await m(o.join(r,f)).then(()=>!0,()=>!1))return r;throw new Error(`Bundled Taskset Authoring skill was not found. Checked: ${t.join(", ")}`)}n(k,"resolveTasksetAuthoringSkillRoot");export{p as a,S as b,O as c};
@@ -1,2 +1,2 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{i}from"./chunk-OJFDI7VM.js";import{a as s}from"./chunk-GLUWATL5.js";import{a as n}from"./chunk-FTQLQJQV.js";import{stdin as a,stdout as c}from"node:process";import{createInterface as l}from"node:readline/promises";var p=`${s}/console/services/identity-access/api-keys`;function u(e){let t=process.env.OPENPOND_API_KEY?.trim();if(t)return t;let r=e.apiKey?.trim();if(r)return r;let o=e.token?.trim();return o&&o.startsWith("opk_")?o:null}n(u,"resolveApiKey");async function P(){if(!a.isTTY||!c.isTTY)throw new Error("OpenPond API key is required in non-interactive mode. Set OPENPOND_API_KEY or run `openpond login` in a terminal.");console.log("Open the OpenPond UI to create an API key:"),console.log(p);let e=l({input:a,output:c});try{let t=(await e.question("Paste your OpenPond API key: ")).trim();if(!t)throw new Error("API key is required");return t.startsWith("opk_")||console.log("warning: API keys usually start with opk_."),t}finally{e.close()}}n(P,"promptForApiKey");async function A(e,t){let r=u(e);if(r)return r;let o=await P();return await i({apiKey:o,baseUrl:t,activeProfile:e.activeProfile}),console.log("Saved account credentials to the encrypted OpenPond credential store."),o}n(A,"ensureApiKey");export{u as a,P as b,A as c};
2
+ import{i}from"./chunk-UTNGEMW5.js";import{a as s}from"./chunk-GLUWATL5.js";import{a as n}from"./chunk-FTQLQJQV.js";import{stdin as a,stdout as c}from"node:process";import{createInterface as l}from"node:readline/promises";var p=`${s}/console/services/identity-access/api-keys`;function u(e){let t=process.env.OPENPOND_API_KEY?.trim();if(t)return t;let r=e.apiKey?.trim();if(r)return r;let o=e.token?.trim();return o&&o.startsWith("opk_")?o:null}n(u,"resolveApiKey");async function P(){if(!a.isTTY||!c.isTTY)throw new Error("OpenPond API key is required in non-interactive mode. Set OPENPOND_API_KEY or run `openpond login` in a terminal.");console.log("Open the OpenPond UI to create an API key:"),console.log(p);let e=l({input:a,output:c});try{let t=(await e.question("Paste your OpenPond API key: ")).trim();if(!t)throw new Error("API key is required");return t.startsWith("opk_")||console.log("warning: API keys usually start with opk_."),t}finally{e.close()}}n(P,"promptForApiKey");async function A(e,t){let r=u(e);if(r)return r;let o=await P();return await i({apiKey:o,baseUrl:t,activeProfile:e.activeProfile}),console.log("Saved account credentials to the encrypted OpenPond credential store."),o}n(A,"ensureApiKey");export{u as a,P as b,A as c};
@@ -1,2 +1,2 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{C as x}from"./chunk-57RY3LSR.js";import{B as I}from"./chunk-3DVWJCOA.js";import{p as T}from"./chunk-YU3C6U5V.js";import{a as A}from"./chunk-KVTBX2UP.js";import{a}from"./chunk-FTQLQJQV.js";function G(e){let n=e.trim().replace(/^```(?:json)?\s*/i,"").replace(/```\s*$/,"");try{let t=JSON.parse(n);return typeof t.score!="number"||typeof t.passed!="boolean"?null:{score:Math.max(0,Math.min(1,t.score)),passed:t.passed,feedback:typeof t.feedback=="string"?t.feedback.slice(0,2e4):"Model judge completed.",evidenceRefs:[]}}catch{return null}}a(G,"parseModelJudgeResult");function X(e){if(typeof e=="number"&&Number.isFinite(e)&&e>0)return Math.floor(e);let n=process.env.OPENPOND_HOSTED_WORKSPACE_TOOL_ROUNDS?.trim();if(!n)return 64;if(/^(unlimited|infinite|infinity)$/i.test(n))return Number.POSITIVE_INFINITY;let t=Number.parseInt(n,10);return Number.isFinite(t)&&t>0?t:64}a(X,"resolveMaxHostedWorkspaceToolRounds");function Y(e,n,t){let o=Date.now()-6e4;for(let r=e.length-1;r>=0;r-=1){let i=e[r],s=Date.parse(i.timestamp);if(Number.isFinite(s)&&s<o)return null;if(i.sessionId!==n||i.name!=="session.compaction.completed")continue;let d=i.data&&typeof i.data=="object"?i.data:null;if(d?.provider==="codex"&&d.codexThreadId===t)return i}return null}a(Y,"findRecentCodexCompactionCompleted");function Q(e){return e==="agent"||e==="skill"||e==="extension"||e==="model"||e==="configuration"?e:null}a(Q,"createImproveTargetKind");function V(e){if(!e)return;let n=Number(e);return Number.isFinite(n)&&n>0?Math.trunc(n):void 0}a(V,"createImproveLimit");var ne=new Set(["ask_user","get_profile","agent_inspect","agent_build","agent_validate","agent_eval","agent_run","agent_traces","agent_check","exec_command","view_image","list_files","read_files","search_files","write_file","write_files","edit_file","delete_file","workspace_status"]);function re(e){let n={type:"string"},t={type:"string",minLength:1};return[["list_files",{},[]],["workspace_status",{},[]],["read_files",{paths:{type:"array",items:t,minItems:1,maxItems:30}},["paths"]],["search_files",{query:{type:"string",minLength:1,maxLength:2e3}},["query"]],["write_file",{path:t,content:n},["path","content"]],["write_files",{files:{type:"object",additionalProperties:n,maxProperties:30}},["files"]],["edit_file",{path:t,oldText:{type:"string",minLength:1},newText:n,replaceAll:{type:"boolean"}},["path","oldText","newText"]],["delete_file",{path:t},["path"]]].map(([r,i,s])=>({name:r,description:`${r.replaceAll("_"," ")} in the isolated selected candidate component. Paths are relative to its public source tree.`,parameters:{type:"object",additionalProperties:!1,properties:i,required:s},execute:a(async d=>{let c=await e(d.session.id,{action:r,args:d.args,source:"chat_action"},{turnId:d.turnId,workspaceDiffBaseline:d.workspaceDiffBaseline});return x(d.callId,r,c)},"execute")}))}a(re,"candidateFileToolDefinitions");import{realpath as C}from"node:fs/promises";import p from"node:path";function ce(e){let n=[O()];if(!e.loadProfileState)return n;let t=a(async(r,i)=>{if(i&&(i.turnMetadata?.source==="experiment-improvement"||i.turnMetadata?.refinementCandidate!==void 0||i.session.metadata?.source==="experiment-improvement"||i.session.metadata?.refinementCandidate!==void 0)){if(!e.resolveCandidateProfile)throw new Error("Candidate authoring requires an admitted isolated Profile resolver.");let s=await e.resolveCandidateProfile(i);return S(s),s}return e.loadProfileState(r,i)},"loadProfileState"),o=a(async r=>{if(r.context.turnMetadata?.source==="experiment-improvement"||r.context.turnMetadata?.refinementCandidate!==void 0||r.context.session.metadata?.source==="experiment-improvement"||r.context.session.metadata?.refinementCandidate!==void 0){if(!e.executeCandidateAgentCommand)throw new Error("Candidate Agent commands require filesystem-confined execution.");return e.executeCandidateAgentCommand(r)}return I({...r,throwOnFailure:!1})},"runCommand");return n.push(E(t),u(t,o,"agent_inspect","inspect"),u(t,o,"agent_build","build"),u(t,o,"agent_validate","validate"),u(t,o,"agent_eval","eval"),D(t,o),u(t,o,"agent_traces","traces"),L(t,o)),n}a(ce,"createAuthoringModelToolDefinitions");function O(){return{name:"ask_user",description:"Ask one blocking user question when the answer materially changes the requested work and cannot be inferred safely. This call ends the current model turn after persisting the question; do not batch it with mutations.",parameters:{type:"object",additionalProperties:!1,properties:{question:{type:"string",minLength:1,maxLength:2e3},reason:{type:"string",minLength:1,maxLength:1e3},options:{type:"array",minItems:2,maxItems:5,items:{type:"object",additionalProperties:!1,properties:{id:{type:"string",minLength:1,maxLength:80},label:{type:"string",minLength:1,maxLength:160},description:{type:"string",minLength:1,maxLength:500}},required:["id","label"]}},allowFreeform:{type:"boolean"}},required:["question"]},execute:a(async e=>{let n=m(e.args,"question"),t=R(e.args,"reason"),o=q(e.args,"options").map(i=>g(i)).filter(i=>!!i).map(i=>({id:m(i,"id"),label:m(i,"label"),description:R(i,"description")})),r={questionId:`question_${e.turnId}_${e.callId}`,question:n,reason:t,options:o,allowFreeform:e.args.allowFreeform!==!1,status:"awaiting_user_input",nextStep:"end_turn"};return{...l(e.callId,"ask_user",!0,n,r),turnControl:"await_user_input"}},"execute")}}a(O,"askUserDefinition");function E(e){return{name:"get_profile",description:"Return the exact OpenPond Profile selected for this chat turn, including bounded local path, Skill, Agent, action, and Git context. Call before Profile authoring. This tool does not change the selected Profile or grant filesystem permission.",parameters:{type:"object",additionalProperties:!1,properties:{}},execute:a(async n=>{let t=h(n),o=await e(t,n),r=N(o,n.turnMetadata,t);return l(n.callId,"get_profile",!o.error,o.error??"Resolved selected Profile.",r)},"execute")}}a(E,"getProfileDefinition");function u(e,n,t,o){return{name:t,description:j(t),parameters:M(),execute:a(async r=>{let i=await f(e,r),s=await v(n,r,o,i.cwd);return l(r.callId,t,s.code===0&&!s.timedOut,s.code===0&&!s.timedOut?`${t} passed for ${i.agentId}.`:`${t} failed for ${i.agentId}.`,{agentId:i.agentId,cwd:i.cwd,command:o,...P(s)})},"execute")}}a(u,"agentCommandDefinition");function D(e,n){return{name:"agent_run",description:"Run one declared action on an exact enabled Profile Agent with typed JSON input. Use for behavioral proof, not as the default validation gate.",parameters:{type:"object",additionalProperties:!1,properties:{agentId:{type:"string",minLength:1},action:{type:"string",minLength:1},input:{type:"object",additionalProperties:!0}},required:["agentId","action"]},execute:a(async t=>{let o=await f(e,t),r=m(t.args,"action"),i=g(t.args,"input")??{},s=await n({context:t,command:"run",args:[r,"--json","--input",JSON.stringify(i),"--cwd",o.cwd],cwd:o.cwd,timeoutMs:12e4,maxOutputBytes:25e4});return l(t.callId,"agent_run",s.code===0&&!s.timedOut,s.code===0&&!s.timedOut?`Action ${r} passed for ${o.agentId}.`:`Action ${r} failed for ${o.agentId}.`,{agentId:o.agentId,cwd:o.cwd,action:r,input:i,...P(s)})},"execute")}}a(D,"agentRunDefinition");function L(e,n){return{name:"agent_check",description:"Run the mandatory Agent authoring gate\u2014inspect, build, validate, and eval\u2014in order for one exact Profile Agent. Stops on the first failure and returns bounded per-step receipts.",parameters:M(),execute:a(async t=>{let o=await f(e,t),r=[];for(let s of["inspect","build","validate","eval"]){let d=await v(n,t,s,o.cwd),c=P(d);if(r.push({command:s,receipt:c}),d.code!==0||d.timedOut)return l(t.callId,"agent_check",!1,`agent_check stopped at ${s} for ${o.agentId}.`,{agentId:o.agentId,cwd:o.cwd,passed:!1,failedStep:s,steps:r})}let i=await e(h(t),t);return l(t.callId,"agent_check",!0,`agent_check passed for ${o.agentId}.`,{agentId:o.agentId,cwd:o.cwd,passed:!0,failedStep:null,steps:r,profileRefresh:{activeProfile:i.activeProfile,agentIds:i.agents.map(s=>s.id).slice(0,200),actionIds:i.actionCatalog.map(s=>s.id).slice(0,500)}})},"execute")}}a(L,"agentCheckDefinition");async function f(e,n){let t=m(n.args,"agentId"),o=await e(h(n),n);S(o);let r=g(n.turnMetadata,"authoringIntent");if(r?.artifact==="agent"&&r.operation==="improve"&&typeof r.targetAgentId=="string"&&r.targetAgentId!==t)throw new Error(`Agent improve is bound to ${r.targetAgentId}; ${t} is not authorized.`);if(!o.agents.find(k=>k.id===t)?.enabled)throw new Error(`Enabled Profile Agent not found: ${t}`);let s=t==="default"?o.sourcePath:p.resolve(o.sourcePath,"agents",t),d=await C(o.sourcePath),c=await C(s).catch(()=>null);if(!c)throw new Error(`Profile Agent source does not exist: ${t}`);if(!F(d,c))throw new Error(`Profile Agent source escapes the selected Profile: ${t}`);return{profile:o,agentId:t,cwd:c}}a(f,"resolveAgentTarget");async function v(e,n,t,o){return e({context:n,command:t,args:t==="inspect"||t==="validate"||t==="eval"||t==="traces"?["--json"]:[],cwd:o,timeoutMs:t==="eval"?18e4:12e4,maxOutputBytes:25e4})}a(v,"executeAgentCommand");function S(e){if(e.error)throw new Error(e.error);if(e.mode!=="local"||!e.repoPath||!e.sourcePath)throw new Error("The selected OpenPond Profile is not locally editable.")}a(S,"assertEditableProfile");function N(e,n,t){let o=e.git?.files.slice(0,200).map(r=>r.path)??[];return{mode:e.mode,editable:e.mode==="local"&&!!(e.repoPath&&e.sourcePath)&&!e.error,blockedReason:e.error??(e.mode==="local"&&e.repoPath&&e.sourcePath?null:"The selected Profile is not locally editable."),ref:t,activeProfile:e.activeProfile,repoPath:e.repoPath,sourcePath:e.sourcePath,manifestPath:e.manifestPath,profileConfigPath:e.sourcePath?p.join(e.sourcePath,"settings","profile.yaml"):null,authoring:g(n,"authoringIntent"),skills:e.skills.slice(0,200).map(r=>({name:r.name,description:r.description,path:r.path,sourcePath:r.sourcePath,enabled:r.enabled,validationStatus:r.validationStatus})),agents:e.agents.slice(0,200).map(r=>{let i=e.actionCatalog.filter(s=>s.agentId===r.id).slice(0,100);return{id:r.id,name:r.name,path:r.path,sourcePath:e.sourcePath?r.id==="default"?e.sourcePath:p.resolve(e.sourcePath,"agents",r.id):r.path,enabled:r.enabled,defaultAction:i.find(s=>s.sourceActionId==="chat"||s.id===`${r.id}.chat`)?.id??i[0]?.id??null,actionNames:i.map(s=>s.id)}}),git:e.git?{branch:e.git.branch,head:e.git.head,dirty:e.git.dirty,changedPaths:o,truncated:e.git.files.length>o.length}:null}}a(N,"profileProjection");function h(e){let n=g(e.turnMetadata,"selectedProfileRef");return n&&(n.source==="local"||n.source==="github"||n.source==="openpond_git")&&typeof n.repositoryId=="string"&&n.repositoryId.trim()&&typeof n.profileId=="string"&&n.profileId.trim()?{source:n.source,repositoryId:n.repositoryId,profileId:n.profileId}:e.session.currentProfile??null}a(h,"selectedProfileRef");function M(){return{type:"object",additionalProperties:!1,properties:{agentId:{type:"string",minLength:1,description:"Exact enabled Agent ID from get_profile."}},required:["agentId"]}}a(M,"agentTargetParameters");function j(e){return`Run OpenPond Agent SDK ${e.replace(/^agent_/,"")} for one exact enabled Agent beneath the selected Profile and return a bounded structured receipt.`}a(j,"agentToolDescription");function P(e){return{code:e.code,timedOut:e.timedOut,stdout:$(e.stdout),stderr:e.stderr,stdoutTruncated:e.stdoutTruncated,stderrTruncated:e.stderrTruncated}}a(P,"commandReceipt");function $(e){let n=e.trim();if(!n)return"";try{return JSON.parse(n)}catch{return n}}a($,"parseJsonOrText");function l(e,n,t,o,r){return{toolCallId:e,name:n,ok:t,contentText:JSON.stringify({ok:t,action:n,output:o,data:r},null,2),data:r}}a(l,"modelResult");function m(e,n){let t=e[n];if(typeof t!="string"||!t.trim())throw new Error(`${n} is required`);return t.trim()}a(m,"stringArg");function R(e,n){let t=e[n];return typeof t=="string"&&t.trim()?t.trim():null}a(R,"optionalStringArg");function q(e,n){let t=e[n];return Array.isArray(t)?t:[]}a(q,"arrayArg");function g(e,n){let t=n&&e&&typeof e=="object"&&!Array.isArray(e)?e[n]:e;return t&&typeof t=="object"&&!Array.isArray(t)?t:null}a(g,"recordArg");function F(e,n){let t=p.relative(e,n);return t===""||!t.startsWith("..")&&!p.isAbsolute(t)}a(F,"isWithin");import{execFile as B}from"node:child_process";import y from"node:path";var b=12,_=8,w=" .:-=+*#%@";function he(e={}){return{name:"view_image",description:"Inspect a real local PNG, JPEG, GIF, WebP, or AVIF file. Reads the image bytes directly and returns dimensions plus a coarse pixel/color map; it also creates an actual image preview in the chat UI. Use this instead of opening file:// URLs or browser snapshots, which cannot inspect local image pixels. For many video frames, build one contact sheet and inspect that rather than reading frames one by one.",parameters:{type:"object",additionalProperties:!1,properties:{path:{type:"string",minLength:1,description:"Absolute image path, or a path relative to the selected local project."}},required:["path"]},enabled:a(n=>n.provider==="codex"||n.session.provider==="codex"||n.session.openPondCommandAccessMode==="disabled"?!1:A({session:n.session}).target!=="sandbox","enabled"),execute:a(async n=>{if(n.turnMetadata?.source==="experiment-improvement"||n.turnMetadata?.refinementCandidate!==void 0||n.session.metadata?.source==="experiment-improvement"||n.session.metadata?.refinementCandidate!==void 0){if(!e.executeCandidateImage)throw new Error("Candidate image inspection requires its confined filesystem executor.");return e.executeCandidateImage(n)}let t=K(n.args.path,"path"),o=y.isAbsolute(t)?y.resolve(t):n.session.cwd?y.resolve(n.session.cwd,t):"";if(!o)throw new Error("A relative image path requires a selected local project.");let r=await T(o);if(!r)throw new Error(`Local image was not found or is not a supported image: ${o}`);let i=await U(r.path,n.signal);return{toolCallId:n.callId,name:"view_image",ok:!0,contentText:JSON.stringify({ok:!0,action:"view_image",output:`Read actual image pixels from ${r.path}.`,data:{path:r.path,contentType:r.contentType,sizeBytes:r.sizeBytes,...i,note:"The luminance and color maps are deterministic pixel samples, not a semantic vision caption."}},null,2),data:{openpondImagePreviewPath:r.path,path:r.path,contentType:r.contentType,sizeBytes:r.sizeBytes,...i}}},"execute")}}a(he,"createLocalImageModelToolDefinition");async function U(e,n,t=z){let o=await t("identify",["-format","%m %w %h",e],n),r=/^(\S+)\s+(\d+)\s+(\d+)/.exec(o.trim());if(!r)throw new Error("Image metadata could not be decoded.");let i=await t("convert",[e,"-resize",`${b}x${_}!`,"-depth","8","txt:-"],n),s=W(i);return{format:r[1],width:Number.parseInt(r[2],10),height:Number.parseInt(r[3],10),luminanceMap:s.map(d=>d.map(J).join("")),colorMap:s.map(d=>d.map(c=>`#${c.map(H).join("")}`))}}a(U,"inspectImagePixels");function W(e){let n=Array.from({length:_},()=>Array.from({length:b},()=>[0,0,0]));for(let t of e.split(/\r?\n/)){let o=/^(\d+),(\d+):\s*\(\s*(\d+),\s*(\d+),\s*(\d+)/.exec(t);if(!o)continue;let r=Number.parseInt(o[1],10),i=Number.parseInt(o[2],10);r>=b||i>=_||(n[i][r]=[Number.parseInt(o[3],10),Number.parseInt(o[4],10),Number.parseInt(o[5],10)])}return n}a(W,"sampledPixelRows");function J([e,n,t]){let o=.2126*e+.7152*n+.0722*t;return w[Math.min(w.length-1,Math.round(o/255*(w.length-1)))]}a(J,"luminanceCharacter");function H(e){return Math.max(0,Math.min(255,e)).toString(16).padStart(2,"0")}a(H,"hexByte");function z(e,n,t){return new Promise((o,r)=>{B(e,n,{encoding:"utf8",maxBuffer:256*1024,signal:t},(i,s)=>{if(i){r(new Error(`${e} could not inspect the image: ${i.message}`));return}o(s)})})}a(z,"runImageCommand");function K(e,n){if(typeof e!="string"||!e.trim())throw new Error(`${n} is required.`);return e.trim()}a(K,"stringArg");export{ne as a,re as b,ce as c,he as d,U as e,G as f,X as g,Y as h,Q as i,V as j};
2
+ import{C as x}from"./chunk-WGLVSGFA.js";import{B as I}from"./chunk-B4RKHHF7.js";import{p as T}from"./chunk-YU3C6U5V.js";import{a as A}from"./chunk-KVTBX2UP.js";import{a}from"./chunk-FTQLQJQV.js";function G(e){let n=e.trim().replace(/^```(?:json)?\s*/i,"").replace(/```\s*$/,"");try{let t=JSON.parse(n);return typeof t.score!="number"||typeof t.passed!="boolean"?null:{score:Math.max(0,Math.min(1,t.score)),passed:t.passed,feedback:typeof t.feedback=="string"?t.feedback.slice(0,2e4):"Model judge completed.",evidenceRefs:[]}}catch{return null}}a(G,"parseModelJudgeResult");function X(e){if(typeof e=="number"&&Number.isFinite(e)&&e>0)return Math.floor(e);let n=process.env.OPENPOND_HOSTED_WORKSPACE_TOOL_ROUNDS?.trim();if(!n)return 64;if(/^(unlimited|infinite|infinity)$/i.test(n))return Number.POSITIVE_INFINITY;let t=Number.parseInt(n,10);return Number.isFinite(t)&&t>0?t:64}a(X,"resolveMaxHostedWorkspaceToolRounds");function Y(e,n,t){let o=Date.now()-6e4;for(let r=e.length-1;r>=0;r-=1){let i=e[r],s=Date.parse(i.timestamp);if(Number.isFinite(s)&&s<o)return null;if(i.sessionId!==n||i.name!=="session.compaction.completed")continue;let d=i.data&&typeof i.data=="object"?i.data:null;if(d?.provider==="codex"&&d.codexThreadId===t)return i}return null}a(Y,"findRecentCodexCompactionCompleted");function Q(e){return e==="agent"||e==="skill"||e==="extension"||e==="model"||e==="configuration"?e:null}a(Q,"createImproveTargetKind");function V(e){if(!e)return;let n=Number(e);return Number.isFinite(n)&&n>0?Math.trunc(n):void 0}a(V,"createImproveLimit");var ne=new Set(["ask_user","get_profile","agent_inspect","agent_build","agent_validate","agent_eval","agent_run","agent_traces","agent_check","exec_command","view_image","list_files","read_files","search_files","write_file","write_files","edit_file","delete_file","workspace_status"]);function re(e){let n={type:"string"},t={type:"string",minLength:1};return[["list_files",{},[]],["workspace_status",{},[]],["read_files",{paths:{type:"array",items:t,minItems:1,maxItems:30}},["paths"]],["search_files",{query:{type:"string",minLength:1,maxLength:2e3}},["query"]],["write_file",{path:t,content:n},["path","content"]],["write_files",{files:{type:"object",additionalProperties:n,maxProperties:30}},["files"]],["edit_file",{path:t,oldText:{type:"string",minLength:1},newText:n,replaceAll:{type:"boolean"}},["path","oldText","newText"]],["delete_file",{path:t},["path"]]].map(([r,i,s])=>({name:r,description:`${r.replaceAll("_"," ")} in the isolated selected candidate component. Paths are relative to its public source tree.`,parameters:{type:"object",additionalProperties:!1,properties:i,required:s},execute:a(async d=>{let c=await e(d.session.id,{action:r,args:d.args,source:"chat_action"},{turnId:d.turnId,workspaceDiffBaseline:d.workspaceDiffBaseline});return x(d.callId,r,c)},"execute")}))}a(re,"candidateFileToolDefinitions");import{realpath as C}from"node:fs/promises";import p from"node:path";function ce(e){let n=[O()];if(!e.loadProfileState)return n;let t=a(async(r,i)=>{if(i&&(i.turnMetadata?.source==="experiment-improvement"||i.turnMetadata?.refinementCandidate!==void 0||i.session.metadata?.source==="experiment-improvement"||i.session.metadata?.refinementCandidate!==void 0)){if(!e.resolveCandidateProfile)throw new Error("Candidate authoring requires an admitted isolated Profile resolver.");let s=await e.resolveCandidateProfile(i);return S(s),s}return e.loadProfileState(r,i)},"loadProfileState"),o=a(async r=>{if(r.context.turnMetadata?.source==="experiment-improvement"||r.context.turnMetadata?.refinementCandidate!==void 0||r.context.session.metadata?.source==="experiment-improvement"||r.context.session.metadata?.refinementCandidate!==void 0){if(!e.executeCandidateAgentCommand)throw new Error("Candidate Agent commands require filesystem-confined execution.");return e.executeCandidateAgentCommand(r)}return I({...r,throwOnFailure:!1})},"runCommand");return n.push(E(t),u(t,o,"agent_inspect","inspect"),u(t,o,"agent_build","build"),u(t,o,"agent_validate","validate"),u(t,o,"agent_eval","eval"),D(t,o),u(t,o,"agent_traces","traces"),L(t,o)),n}a(ce,"createAuthoringModelToolDefinitions");function O(){return{name:"ask_user",description:"Ask one blocking user question when the answer materially changes the requested work and cannot be inferred safely. This call ends the current model turn after persisting the question; do not batch it with mutations.",parameters:{type:"object",additionalProperties:!1,properties:{question:{type:"string",minLength:1,maxLength:2e3},reason:{type:"string",minLength:1,maxLength:1e3},options:{type:"array",minItems:2,maxItems:5,items:{type:"object",additionalProperties:!1,properties:{id:{type:"string",minLength:1,maxLength:80},label:{type:"string",minLength:1,maxLength:160},description:{type:"string",minLength:1,maxLength:500}},required:["id","label"]}},allowFreeform:{type:"boolean"}},required:["question"]},execute:a(async e=>{let n=m(e.args,"question"),t=R(e.args,"reason"),o=q(e.args,"options").map(i=>g(i)).filter(i=>!!i).map(i=>({id:m(i,"id"),label:m(i,"label"),description:R(i,"description")})),r={questionId:`question_${e.turnId}_${e.callId}`,question:n,reason:t,options:o,allowFreeform:e.args.allowFreeform!==!1,status:"awaiting_user_input",nextStep:"end_turn"};return{...l(e.callId,"ask_user",!0,n,r),turnControl:"await_user_input"}},"execute")}}a(O,"askUserDefinition");function E(e){return{name:"get_profile",description:"Return the exact OpenPond Profile selected for this chat turn, including bounded local path, Skill, Agent, action, and Git context. Call before Profile authoring. This tool does not change the selected Profile or grant filesystem permission.",parameters:{type:"object",additionalProperties:!1,properties:{}},execute:a(async n=>{let t=h(n),o=await e(t,n),r=N(o,n.turnMetadata,t);return l(n.callId,"get_profile",!o.error,o.error??"Resolved selected Profile.",r)},"execute")}}a(E,"getProfileDefinition");function u(e,n,t,o){return{name:t,description:j(t),parameters:M(),execute:a(async r=>{let i=await f(e,r),s=await v(n,r,o,i.cwd);return l(r.callId,t,s.code===0&&!s.timedOut,s.code===0&&!s.timedOut?`${t} passed for ${i.agentId}.`:`${t} failed for ${i.agentId}.`,{agentId:i.agentId,cwd:i.cwd,command:o,...P(s)})},"execute")}}a(u,"agentCommandDefinition");function D(e,n){return{name:"agent_run",description:"Run one declared action on an exact enabled Profile Agent with typed JSON input. Use for behavioral proof, not as the default validation gate.",parameters:{type:"object",additionalProperties:!1,properties:{agentId:{type:"string",minLength:1},action:{type:"string",minLength:1},input:{type:"object",additionalProperties:!0}},required:["agentId","action"]},execute:a(async t=>{let o=await f(e,t),r=m(t.args,"action"),i=g(t.args,"input")??{},s=await n({context:t,command:"run",args:[r,"--json","--input",JSON.stringify(i),"--cwd",o.cwd],cwd:o.cwd,timeoutMs:12e4,maxOutputBytes:25e4});return l(t.callId,"agent_run",s.code===0&&!s.timedOut,s.code===0&&!s.timedOut?`Action ${r} passed for ${o.agentId}.`:`Action ${r} failed for ${o.agentId}.`,{agentId:o.agentId,cwd:o.cwd,action:r,input:i,...P(s)})},"execute")}}a(D,"agentRunDefinition");function L(e,n){return{name:"agent_check",description:"Run the mandatory Agent authoring gate\u2014inspect, build, validate, and eval\u2014in order for one exact Profile Agent. Stops on the first failure and returns bounded per-step receipts.",parameters:M(),execute:a(async t=>{let o=await f(e,t),r=[];for(let s of["inspect","build","validate","eval"]){let d=await v(n,t,s,o.cwd),c=P(d);if(r.push({command:s,receipt:c}),d.code!==0||d.timedOut)return l(t.callId,"agent_check",!1,`agent_check stopped at ${s} for ${o.agentId}.`,{agentId:o.agentId,cwd:o.cwd,passed:!1,failedStep:s,steps:r})}let i=await e(h(t),t);return l(t.callId,"agent_check",!0,`agent_check passed for ${o.agentId}.`,{agentId:o.agentId,cwd:o.cwd,passed:!0,failedStep:null,steps:r,profileRefresh:{activeProfile:i.activeProfile,agentIds:i.agents.map(s=>s.id).slice(0,200),actionIds:i.actionCatalog.map(s=>s.id).slice(0,500)}})},"execute")}}a(L,"agentCheckDefinition");async function f(e,n){let t=m(n.args,"agentId"),o=await e(h(n),n);S(o);let r=g(n.turnMetadata,"authoringIntent");if(r?.artifact==="agent"&&r.operation==="improve"&&typeof r.targetAgentId=="string"&&r.targetAgentId!==t)throw new Error(`Agent improve is bound to ${r.targetAgentId}; ${t} is not authorized.`);if(!o.agents.find(k=>k.id===t)?.enabled)throw new Error(`Enabled Profile Agent not found: ${t}`);let s=t==="default"?o.sourcePath:p.resolve(o.sourcePath,"agents",t),d=await C(o.sourcePath),c=await C(s).catch(()=>null);if(!c)throw new Error(`Profile Agent source does not exist: ${t}`);if(!F(d,c))throw new Error(`Profile Agent source escapes the selected Profile: ${t}`);return{profile:o,agentId:t,cwd:c}}a(f,"resolveAgentTarget");async function v(e,n,t,o){return e({context:n,command:t,args:t==="inspect"||t==="validate"||t==="eval"||t==="traces"?["--json"]:[],cwd:o,timeoutMs:t==="eval"?18e4:12e4,maxOutputBytes:25e4})}a(v,"executeAgentCommand");function S(e){if(e.error)throw new Error(e.error);if(e.mode!=="local"||!e.repoPath||!e.sourcePath)throw new Error("The selected OpenPond Profile is not locally editable.")}a(S,"assertEditableProfile");function N(e,n,t){let o=e.git?.files.slice(0,200).map(r=>r.path)??[];return{mode:e.mode,editable:e.mode==="local"&&!!(e.repoPath&&e.sourcePath)&&!e.error,blockedReason:e.error??(e.mode==="local"&&e.repoPath&&e.sourcePath?null:"The selected Profile is not locally editable."),ref:t,activeProfile:e.activeProfile,repoPath:e.repoPath,sourcePath:e.sourcePath,manifestPath:e.manifestPath,profileConfigPath:e.sourcePath?p.join(e.sourcePath,"settings","profile.yaml"):null,authoring:g(n,"authoringIntent"),skills:e.skills.slice(0,200).map(r=>({name:r.name,description:r.description,path:r.path,sourcePath:r.sourcePath,enabled:r.enabled,validationStatus:r.validationStatus})),agents:e.agents.slice(0,200).map(r=>{let i=e.actionCatalog.filter(s=>s.agentId===r.id).slice(0,100);return{id:r.id,name:r.name,path:r.path,sourcePath:e.sourcePath?r.id==="default"?e.sourcePath:p.resolve(e.sourcePath,"agents",r.id):r.path,enabled:r.enabled,defaultAction:i.find(s=>s.sourceActionId==="chat"||s.id===`${r.id}.chat`)?.id??i[0]?.id??null,actionNames:i.map(s=>s.id)}}),git:e.git?{branch:e.git.branch,head:e.git.head,dirty:e.git.dirty,changedPaths:o,truncated:e.git.files.length>o.length}:null}}a(N,"profileProjection");function h(e){let n=g(e.turnMetadata,"selectedProfileRef");return n&&(n.source==="local"||n.source==="github"||n.source==="openpond_git")&&typeof n.repositoryId=="string"&&n.repositoryId.trim()&&typeof n.profileId=="string"&&n.profileId.trim()?{source:n.source,repositoryId:n.repositoryId,profileId:n.profileId}:e.session.currentProfile??null}a(h,"selectedProfileRef");function M(){return{type:"object",additionalProperties:!1,properties:{agentId:{type:"string",minLength:1,description:"Exact enabled Agent ID from get_profile."}},required:["agentId"]}}a(M,"agentTargetParameters");function j(e){return`Run OpenPond Agent SDK ${e.replace(/^agent_/,"")} for one exact enabled Agent beneath the selected Profile and return a bounded structured receipt.`}a(j,"agentToolDescription");function P(e){return{code:e.code,timedOut:e.timedOut,stdout:$(e.stdout),stderr:e.stderr,stdoutTruncated:e.stdoutTruncated,stderrTruncated:e.stderrTruncated}}a(P,"commandReceipt");function $(e){let n=e.trim();if(!n)return"";try{return JSON.parse(n)}catch{return n}}a($,"parseJsonOrText");function l(e,n,t,o,r){return{toolCallId:e,name:n,ok:t,contentText:JSON.stringify({ok:t,action:n,output:o,data:r},null,2),data:r}}a(l,"modelResult");function m(e,n){let t=e[n];if(typeof t!="string"||!t.trim())throw new Error(`${n} is required`);return t.trim()}a(m,"stringArg");function R(e,n){let t=e[n];return typeof t=="string"&&t.trim()?t.trim():null}a(R,"optionalStringArg");function q(e,n){let t=e[n];return Array.isArray(t)?t:[]}a(q,"arrayArg");function g(e,n){let t=n&&e&&typeof e=="object"&&!Array.isArray(e)?e[n]:e;return t&&typeof t=="object"&&!Array.isArray(t)?t:null}a(g,"recordArg");function F(e,n){let t=p.relative(e,n);return t===""||!t.startsWith("..")&&!p.isAbsolute(t)}a(F,"isWithin");import{execFile as B}from"node:child_process";import y from"node:path";var b=12,_=8,w=" .:-=+*#%@";function he(e={}){return{name:"view_image",description:"Inspect a real local PNG, JPEG, GIF, WebP, or AVIF file. Reads the image bytes directly and returns dimensions plus a coarse pixel/color map; it also creates an actual image preview in the chat UI. Use this instead of opening file:// URLs or browser snapshots, which cannot inspect local image pixels. For many video frames, build one contact sheet and inspect that rather than reading frames one by one.",parameters:{type:"object",additionalProperties:!1,properties:{path:{type:"string",minLength:1,description:"Absolute image path, or a path relative to the selected local project."}},required:["path"]},enabled:a(n=>n.provider==="codex"||n.session.provider==="codex"||n.session.openPondCommandAccessMode==="disabled"?!1:A({session:n.session}).target!=="sandbox","enabled"),execute:a(async n=>{if(n.turnMetadata?.source==="experiment-improvement"||n.turnMetadata?.refinementCandidate!==void 0||n.session.metadata?.source==="experiment-improvement"||n.session.metadata?.refinementCandidate!==void 0){if(!e.executeCandidateImage)throw new Error("Candidate image inspection requires its confined filesystem executor.");return e.executeCandidateImage(n)}let t=K(n.args.path,"path"),o=y.isAbsolute(t)?y.resolve(t):n.session.cwd?y.resolve(n.session.cwd,t):"";if(!o)throw new Error("A relative image path requires a selected local project.");let r=await T(o);if(!r)throw new Error(`Local image was not found or is not a supported image: ${o}`);let i=await U(r.path,n.signal);return{toolCallId:n.callId,name:"view_image",ok:!0,contentText:JSON.stringify({ok:!0,action:"view_image",output:`Read actual image pixels from ${r.path}.`,data:{path:r.path,contentType:r.contentType,sizeBytes:r.sizeBytes,...i,note:"The luminance and color maps are deterministic pixel samples, not a semantic vision caption."}},null,2),data:{openpondImagePreviewPath:r.path,path:r.path,contentType:r.contentType,sizeBytes:r.sizeBytes,...i}}},"execute")}}a(he,"createLocalImageModelToolDefinition");async function U(e,n,t=z){let o=await t("identify",["-format","%m %w %h",e],n),r=/^(\S+)\s+(\d+)\s+(\d+)/.exec(o.trim());if(!r)throw new Error("Image metadata could not be decoded.");let i=await t("convert",[e,"-resize",`${b}x${_}!`,"-depth","8","txt:-"],n),s=W(i);return{format:r[1],width:Number.parseInt(r[2],10),height:Number.parseInt(r[3],10),luminanceMap:s.map(d=>d.map(J).join("")),colorMap:s.map(d=>d.map(c=>`#${c.map(H).join("")}`))}}a(U,"inspectImagePixels");function W(e){let n=Array.from({length:_},()=>Array.from({length:b},()=>[0,0,0]));for(let t of e.split(/\r?\n/)){let o=/^(\d+),(\d+):\s*\(\s*(\d+),\s*(\d+),\s*(\d+)/.exec(t);if(!o)continue;let r=Number.parseInt(o[1],10),i=Number.parseInt(o[2],10);r>=b||i>=_||(n[i][r]=[Number.parseInt(o[3],10),Number.parseInt(o[4],10),Number.parseInt(o[5],10)])}return n}a(W,"sampledPixelRows");function J([e,n,t]){let o=.2126*e+.7152*n+.0722*t;return w[Math.min(w.length-1,Math.round(o/255*(w.length-1)))]}a(J,"luminanceCharacter");function H(e){return Math.max(0,Math.min(255,e)).toString(16).padStart(2,"0")}a(H,"hexByte");function z(e,n,t){return new Promise((o,r)=>{B(e,n,{encoding:"utf8",maxBuffer:256*1024,signal:t},(i,s)=>{if(i){r(new Error(`${e} could not inspect the image: ${i.message}`));return}o(s)})})}a(z,"runImageCommand");function K(e,n){if(typeof e!="string"||!e.trim())throw new Error(`${n} is required.`);return e.trim()}a(K,"stringArg");export{ne as a,re as b,ce as c,he as d,U as e,G as f,X as g,Y as h,Q as i,V as j};
@@ -0,0 +1 @@
1
+ import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
@@ -1,2 +1,2 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{e as H,j as R}from"./chunk-MHYI7ATG.js";import{v as I,z as C}from"./chunk-3DVWJCOA.js";import{m as k,n as b}from"./chunk-VVNV4NNW.js";import{a as h}from"./chunk-FTQLQJQV.js";import{promises as s}from"node:fs";import n from"node:path";import{execFile as O}from"node:child_process";import{promisify as A}from"node:util";var T=A(O);async function v(e,i,a={}){return(await T("git",["-C",e,...i],{encoding:"utf8",timeout:3e4,maxBuffer:8388608,env:{...process.env,...a}})).stdout.trim()}h(v,"candidateGit");async function j(e,i=I,a=!1){if(e.profileRef.source!=="local"&&!a)throw new Error("This Git adapter requires the actual installed local Profile owner; hosted adoption needs its published-source owner.");let r=await i(e.profileRef);if(r.error||r.mode!=="local"||r.activeProfile!==e.profileRef.profileId||!r.repoPath||!r.sourcePath)throw new Error("The original Profile owner is unavailable.");let l=await s.realpath(r.repoPath),p=await s.realpath(r.sourcePath),f=n.relative(l,p);if(f.startsWith("..")||n.isAbsolute(f))throw new Error("Profile source escapes its actual Git owner.");return{profile:r,repo:l,source:p,sourceRelative:f}}h(j,"originalCandidateProfile");async function ce(e,i,a=!0){if(!/^[a-f0-9]{40}$/.test(i)||await v(e,["rev-parse","HEAD"])!==i)throw new Error("The original Profile Git revision changed.");if(a&&await v(e,["status","--porcelain","--untracked-files=all"]))throw new Error("Commit or reconcile changes in the original Profile before this operation.")}h(ce,"assertCandidateGitHead");async function me(e,i){let a=await j(e.state,e.loadProfile,e.allowRemoteSnapshot),r=n.join(e.storeDir,"library","harnesses","profile-candidate-staging");await s.mkdir(r,{recursive:!0,mode:448});let l=await s.mkdtemp(n.join(r,"source-"));await s.rmdir(l),await v(a.repo,["worktree","add","--detach",l,e.commit]);try{let p=await C({repoPath:l,profileId:e.state.profileRef.profileId});if(p.error||!p.sourcePath)throw new Error("The staged original Profile cannot be loaded.");return await i({root:l,profile:p,repo:a.repo,source:p.sourcePath})}finally{await v(a.repo,["worktree","remove","--force",l]).catch(()=>{}),await s.rm(l,{recursive:!0,force:!0})}}h(me,"withCandidateProfileWorktree");function y(e){if(!e||n.isAbsolute(e)||e.includes("\\")||e.split("/").some(i=>!i||i==="."||i===".."))throw new Error("Original Profile patch path is not contained.");return e}h(y,"portable");async function pe(e){let i=e.base.manifest.metadata.profileSourceBindings;if(!Array.isArray(i))throw new Error("The original release needs compiler source bindings before candidate adoption.");let a=e.state.component.path,r=e.state.component,l=new Map(i.map(t=>{if(!t||typeof t!="object"||typeof t.releasedPath!="string"||typeof t.profileRelativePath!="string")throw new Error("Original Profile source binding is invalid.");return[y(t.releasedPath),y(t.profileRelativePath)]})),p=r.kind==="instruction"&&a==="instructions/system.md"&&e.base.manifest.metadata.profileInstructionSourcePath==="instructions/system.md"&&!l.has(a),f=l.get(a)??(p?"instructions/system.md":void 0),S=r.kind==="workflow"?`workflows/${r.workflowId}/`:r.kind==="agent"?a.split("/").slice(0,2).join("/")+"/":n.posix.dirname(a)+"/",w=f?n.posix.dirname(f)+"/":null;if(r.kind==="workflow"&&!f&&(w=S),r.kind==="agent"){let t=e.profile.agents.find(o=>a.startsWith(`agents/${o.id}/`));if(!t)throw new Error("The selected Agent original source is unavailable.");let c=y(t.path);w=((await s.lstat(n.join(e.source,c))).isDirectory()?c:n.posix.dirname(c))+"/"}let E=new Map(e.base.sourceFiles.map(t=>[t.path,t])),x=new Map(e.candidate.sourceFiles.map(t=>[t.path,t])),g=new Map;for(let t of new Set([...E.keys(),...x.keys()])){let c=E.get(t),m=x.get(t);if(c?.asset.contentHash===m?.asset.contentHash)continue;if(c&&c.asset.visibility!=="policy"||m&&m.asset.visibility!=="policy")throw new Error("A candidate cannot change protected Profile source.");let o=l.get(t)??(p&&t===a?f:void 0);if(!o&&t.startsWith(S)&&w&&(o=w+t.slice(S.length)),!o&&t==="workflows/catalog.json"&&[...l.keys()].some(P=>/^workflows\/[^/]+\/(PROMPT\.md|ACTION\.json)$/.test(P))||!o&&t==="dependency-lock/profile-import.json")continue;if(!o)throw new Error(`The selected component has no original Profile source mapping: ${t}`);if(o=y(o),o!==f&&!(r.kind!=="instruction"&&w&&o.startsWith(w)))throw new Error("Candidate patch changes a different original Profile component.");if(H(o))throw new Error("Candidate patch crosses the protected Profile evaluation closure.");let u=g.get(o),d=m?.bytes??null;if(u&&(u.before!==(c?.asset.contentHash??null)||b(u.bytes===null?null:Array.from(u.bytes))!==b(d===null?null:Array.from(d))))throw new Error("Public component aliases disagree on the original source edit.");g.set(o,{before:p&&t===a?null:c?.asset.contentHash??null,bytes:d})}for(let[t,c]of g){let m=n.join(e.source,...t.split("/")),o=n.dirname(m);for(;!await s.stat(o).catch(()=>null);)o=n.dirname(o);let u=n.relative(await s.realpath(e.source),await s.realpath(o));if(u.startsWith("..")||n.isAbsolute(u))throw new Error("Candidate patch escapes the staged Profile source.");let d=await s.lstat(m).catch(()=>null);if(d?.isSymbolicLink()||d&&!d.isFile())throw new Error("Original source patch needs a regular file.");let P=d?await s.readFile(m):null;if((P?k(P):null)!==c.before)throw new Error("Original source bytes differ from the exact candidate baseline.");c.bytes===null?await s.rm(m):(await s.mkdir(n.dirname(m),{recursive:!0}),await s.writeFile(m,c.bytes,{mode:d?.mode??384}))}return[...g.keys()]}h(pe,"applyCandidateProfileSource");function fe(e){let i=e.base.manifest.metadata.profileRepositoryId;return R({storeDir:e.storeDir,workspaceId:e.state.ownerWorkspaceId,name:e.base.manifest.name,profile:e.profile,sourceRevision:e.sourceRevision,...typeof i=="string"?{repositoryId:i}:{}})}h(fe,"compileOriginalCandidateProfile");export{v as a,j as b,ce as c,me as d,pe as e,fe as f};
2
+ import{e as H,j as R}from"./chunk-LRRBYIGH.js";import{v as I,z as C}from"./chunk-B4RKHHF7.js";import{m as k,n as b}from"./chunk-VVNV4NNW.js";import{a as h}from"./chunk-FTQLQJQV.js";import{promises as s}from"node:fs";import n from"node:path";import{execFile as O}from"node:child_process";import{promisify as A}from"node:util";var T=A(O);async function v(e,i,a={}){return(await T("git",["-C",e,...i],{encoding:"utf8",timeout:3e4,maxBuffer:8388608,env:{...process.env,...a}})).stdout.trim()}h(v,"candidateGit");async function j(e,i=I,a=!1){if(e.profileRef.source!=="local"&&!a)throw new Error("This Git adapter requires the actual installed local Profile owner; hosted adoption needs its published-source owner.");let r=await i(e.profileRef);if(r.error||r.mode!=="local"||r.activeProfile!==e.profileRef.profileId||!r.repoPath||!r.sourcePath)throw new Error("The original Profile owner is unavailable.");let l=await s.realpath(r.repoPath),p=await s.realpath(r.sourcePath),f=n.relative(l,p);if(f.startsWith("..")||n.isAbsolute(f))throw new Error("Profile source escapes its actual Git owner.");return{profile:r,repo:l,source:p,sourceRelative:f}}h(j,"originalCandidateProfile");async function ce(e,i,a=!0){if(!/^[a-f0-9]{40}$/.test(i)||await v(e,["rev-parse","HEAD"])!==i)throw new Error("The original Profile Git revision changed.");if(a&&await v(e,["status","--porcelain","--untracked-files=all"]))throw new Error("Commit or reconcile changes in the original Profile before this operation.")}h(ce,"assertCandidateGitHead");async function me(e,i){let a=await j(e.state,e.loadProfile,e.allowRemoteSnapshot),r=n.join(e.storeDir,"library","harnesses","profile-candidate-staging");await s.mkdir(r,{recursive:!0,mode:448});let l=await s.mkdtemp(n.join(r,"source-"));await s.rmdir(l),await v(a.repo,["worktree","add","--detach",l,e.commit]);try{let p=await C({repoPath:l,profileId:e.state.profileRef.profileId});if(p.error||!p.sourcePath)throw new Error("The staged original Profile cannot be loaded.");return await i({root:l,profile:p,repo:a.repo,source:p.sourcePath})}finally{await v(a.repo,["worktree","remove","--force",l]).catch(()=>{}),await s.rm(l,{recursive:!0,force:!0})}}h(me,"withCandidateProfileWorktree");function y(e){if(!e||n.isAbsolute(e)||e.includes("\\")||e.split("/").some(i=>!i||i==="."||i===".."))throw new Error("Original Profile patch path is not contained.");return e}h(y,"portable");async function pe(e){let i=e.base.manifest.metadata.profileSourceBindings;if(!Array.isArray(i))throw new Error("The original release needs compiler source bindings before candidate adoption.");let a=e.state.component.path,r=e.state.component,l=new Map(i.map(t=>{if(!t||typeof t!="object"||typeof t.releasedPath!="string"||typeof t.profileRelativePath!="string")throw new Error("Original Profile source binding is invalid.");return[y(t.releasedPath),y(t.profileRelativePath)]})),p=r.kind==="instruction"&&a==="instructions/system.md"&&e.base.manifest.metadata.profileInstructionSourcePath==="instructions/system.md"&&!l.has(a),f=l.get(a)??(p?"instructions/system.md":void 0),S=r.kind==="workflow"?`workflows/${r.workflowId}/`:r.kind==="agent"?a.split("/").slice(0,2).join("/")+"/":n.posix.dirname(a)+"/",w=f?n.posix.dirname(f)+"/":null;if(r.kind==="workflow"&&!f&&(w=S),r.kind==="agent"){let t=e.profile.agents.find(o=>a.startsWith(`agents/${o.id}/`));if(!t)throw new Error("The selected Agent original source is unavailable.");let c=y(t.path);w=((await s.lstat(n.join(e.source,c))).isDirectory()?c:n.posix.dirname(c))+"/"}let E=new Map(e.base.sourceFiles.map(t=>[t.path,t])),x=new Map(e.candidate.sourceFiles.map(t=>[t.path,t])),g=new Map;for(let t of new Set([...E.keys(),...x.keys()])){let c=E.get(t),m=x.get(t);if(c?.asset.contentHash===m?.asset.contentHash)continue;if(c&&c.asset.visibility!=="policy"||m&&m.asset.visibility!=="policy")throw new Error("A candidate cannot change protected Profile source.");let o=l.get(t)??(p&&t===a?f:void 0);if(!o&&t.startsWith(S)&&w&&(o=w+t.slice(S.length)),!o&&t==="workflows/catalog.json"&&[...l.keys()].some(P=>/^workflows\/[^/]+\/(PROMPT\.md|ACTION\.json)$/.test(P))||!o&&t==="dependency-lock/profile-import.json")continue;if(!o)throw new Error(`The selected component has no original Profile source mapping: ${t}`);if(o=y(o),o!==f&&!(r.kind!=="instruction"&&w&&o.startsWith(w)))throw new Error("Candidate patch changes a different original Profile component.");if(H(o))throw new Error("Candidate patch crosses the protected Profile evaluation closure.");let u=g.get(o),d=m?.bytes??null;if(u&&(u.before!==(c?.asset.contentHash??null)||b(u.bytes===null?null:Array.from(u.bytes))!==b(d===null?null:Array.from(d))))throw new Error("Public component aliases disagree on the original source edit.");g.set(o,{before:p&&t===a?null:c?.asset.contentHash??null,bytes:d})}for(let[t,c]of g){let m=n.join(e.source,...t.split("/")),o=n.dirname(m);for(;!await s.stat(o).catch(()=>null);)o=n.dirname(o);let u=n.relative(await s.realpath(e.source),await s.realpath(o));if(u.startsWith("..")||n.isAbsolute(u))throw new Error("Candidate patch escapes the staged Profile source.");let d=await s.lstat(m).catch(()=>null);if(d?.isSymbolicLink()||d&&!d.isFile())throw new Error("Original source patch needs a regular file.");let P=d?await s.readFile(m):null;if((P?k(P):null)!==c.before)throw new Error("Original source bytes differ from the exact candidate baseline.");c.bytes===null?await s.rm(m):(await s.mkdir(n.dirname(m),{recursive:!0}),await s.writeFile(m,c.bytes,{mode:d?.mode??384}))}return[...g.keys()]}h(pe,"applyCandidateProfileSource");function fe(e){let i=e.base.manifest.metadata.profileRepositoryId;return R({storeDir:e.storeDir,workspaceId:e.state.ownerWorkspaceId,name:e.base.manifest.name,profile:e.profile,sourceRevision:e.sourceRevision,...typeof i=="string"?{repositoryId:i}:{}})}h(fe,"compileOriginalCandidateProfile");export{v as a,j as b,ce as c,me as d,pe as e,fe as f};
@@ -1,5 +1,5 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{a as be,b as Ae,c as Ie,d as ve}from"./chunk-25RDE7DV.js";import{c as O,i as L}from"./chunk-OJFDI7VM.js";import{a as Re}from"./chunk-6FA3GG5B.js";import{f as Oe}from"./chunk-UGOK7VTC.js";import{a as s}from"./chunk-FTQLQJQV.js";var W=class extends Error{static{s(this,"OpenPondProfileSetupRequiredError")}code="agent_source_setup_required";details;constructor(t,n){let o=n.blockingRequirements.map(r=>r.label);super(["agent_source_setup_required",`Profile action ${t} has unresolved required setup.`,o.length?`Missing setup: ${o.join(", ")}`:""].filter(Boolean).join(`
2
+ import{a as be,b as Ae,c as Ie,d as ve}from"./chunk-JEISPWWM.js";import{c as O,i as L}from"./chunk-UTNGEMW5.js";import{a as Re}from"./chunk-6FA3GG5B.js";import{f as Oe}from"./chunk-UGOK7VTC.js";import{a as s}from"./chunk-FTQLQJQV.js";var W=class extends Error{static{s(this,"OpenPondProfileSetupRequiredError")}code="agent_source_setup_required";details;constructor(t,n){let o=n.blockingRequirements.map(r=>r.label);super(["agent_source_setup_required",`Profile action ${t} has unresolved required setup.`,o.length?`Missing setup: ${o.join(", ")}`:""].filter(Boolean).join(`
3
3
  `)),this.name="OpenPondProfileSetupRequiredError",this.details={error:"agent_source_setup_required",actionId:t,setupGate:n,missing:o,blockingSetupRequirements:n.blockingRequirements,setupRequirements:n.requirements}}};function K(e){let t=new Map;for(let a of e.sourceSetupRequirements??[]){let l=bt(a);if(e.actionId&&l&&l!==e.actionId&&h(a.actionName)!==e.actionId&&h(a.sourceActionId)!==e.actionId)continue;let c=Ee({record:a,source:"source_upload_metadata",actionId:l});c&&t.set(c.ref,c)}for(let a of e.actionCatalog)if(!(e.actionId&&a.id!==e.actionId&&a.name!==e.actionId))for(let l of a.setupRequirements??[]){let c=Ee({record:l,source:"action_catalog",actionId:a.id});c&&t.set(c.ref,c)}let n=Array.from(t.values()),o=n.filter(a=>a.blocking),r=n.filter(a=>!a.required&&!ne(a.status)).length,i=n.filter(a=>ne(a.status)).length;return{status:It(o),requirementCount:n.length,blockingCount:o.length,optionalMissingCount:r,readyCount:i,requirements:n,blockingRequirements:o}}s(K,"buildOpenPondProfileSetupGate");function oe(e,t){if(t.blockingRequirements.length>0)throw new W(e,t)}s(oe,"assertOpenPondProfileActionReady");function Rt(e){let t=e.actionId?`${e.actionId}: `:"",n=e.required?"required":"optional";return`${t}${e.label} (${n}, ${e.status})`}s(Rt,"formatOpenPondProfileSetupRequirement");function Ee(e){let t=e.source==="action_catalog"&&h(e.record.source)==="source_upload_metadata"?"source_upload_metadata":e.source,n=h(e.record.kind)??h(e.record.type),o=h(e.record.label)??h(e.record.name)??h(e.record.key)??h(e.record.provider)??h(e.record.tool)??h(e.record.command)??h(e.record.packageName)??h(e.record.path)??h(e.record.repo)??h(e.record.url)??h(e.record.id)??n??"setup requirement",r=e.record.required!==!1,i=At(e.record);return{ref:[t,e.actionId??"source",n??"requirement",o].join(":"),source:t,actionId:e.actionId,kind:n,label:o,status:i,required:r,blocking:r&&!ne(i)}}s(Ee,"setupRequirementFromRecord");function bt(e){return h(e.actionId)??h(e.sourceActionId)??h(e.actionName)}s(bt,"setupRequirementActionId");function At(e){let t=h(e.status)??h(e.state);return t?t==="satisfied"||t==="connected"||t==="provided"?"ready":t:typeof e.satisfied=="boolean"?e.satisfied?"ready":"setup_required":typeof e.ready=="boolean"&&e.ready?"ready":"setup_required"}s(At,"setupStatus");function It(e){return e.length===0?"ready":e.some(t=>["blocked","unsupported","unsupported_dependency","stale"].includes(t.status))?"blocked":"setup_required"}s(It,"gateStatus");function ne(e){return e==="ready"||e==="disabled"}s(ne,"isReadyStatus");function h(e){return typeof e=="string"&&e.trim()?e.trim():null}s(h,"text");import{stat as qt}from"node:fs/promises";import se from"node:path";import{spawn as vt}from"node:child_process";import{existsSync as re}from"node:fs";import{readFile as Et,rm as Kn,writeFile as _e}from"node:fs/promises";import ie from"node:path";var Le=["**/node_modules/","**/.bun/","**/.env","**/.env.*","**/.openpond/traces/","**/.openpond/vendor/","**/.openpond/eval-results.json","**/.openpond/artifact-index.json","**/.openpond/source-upload-cache.json",""].join(`
4
4
  `);async function Me(e){if(!re(ie.join(e,".git"))){let i=await R(e,["init","-b","main"]);if(i.code!==0)throw new Error(H("git init",i))}let t=ie.join(e,".gitignore");if(re(t)?await xt(t):await _e(t,Le,"utf8"),await _t(e))return;let n=await N(e);if(!n.dirty&&n.files.length===0)return;let o=await R(e,["add","-A"]);if(o.code!==0)throw new Error(H("git add",o));let r=await R(e,["commit","-m","Initialize OpenPond profile"],{env:{...process.env,GIT_AUTHOR_NAME:process.env.GIT_AUTHOR_NAME||"OpenPond",GIT_AUTHOR_EMAIL:process.env.GIT_AUTHOR_EMAIL||"openpond@example.invalid",GIT_COMMITTER_NAME:process.env.GIT_COMMITTER_NAME||"OpenPond",GIT_COMMITTER_EMAIL:process.env.GIT_COMMITTER_EMAIL||"openpond@example.invalid"}});if(r.code!==0&&!/nothing to commit/i.test(r.stdout+r.stderr))throw new Error(H("git commit",r))}s(Me,"ensureProfileGitRepo");async function xt(e){let t=await Et(e,"utf8").catch(()=>""),n=Le.split(/\r?\n/).map(r=>r.trim()).filter(Boolean).filter(r=>!t.split(/\r?\n/).some(i=>i.trim()===r));if(n.length===0)return;let o=t.endsWith(`
5
5
  `)||t.length===0?"":`
@@ -1,5 +1,5 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{vb as p}from"./chunk-UBCLPZSQ.js";import{u as _}from"./chunk-HZLV773Y.js";import{a as n}from"./chunk-FTQLQJQV.js";import{createHash as h}from"node:crypto";var N=`
2
+ import{wb as p}from"./chunk-TUCKED4T.js";import{u as _}from"./chunk-TW3SRBLU.js";import{a as n}from"./chunk-FTQLQJQV.js";import{createHash as h}from"node:crypto";var N=`
3
3
  CREATE TABLE IF NOT EXISTS local_resource_owner (singleton INTEGER PRIMARY KEY CHECK(singleton = 1), id TEXT NOT NULL);
4
4
  CREATE TABLE IF NOT EXISTS local_dataset_blobs (content_hash TEXT PRIMARY KEY, size_bytes INTEGER NOT NULL, bytes BLOB NOT NULL);
5
5
  CREATE TABLE IF NOT EXISTS local_dataset_records (record_hash TEXT PRIMARY KEY, payload TEXT NOT NULL);
@@ -0,0 +1,2 @@
1
+ import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
+ import{a as Je}from"./chunk-7JXZNCBC.js";import{a as F,e as $,f as Ye,h as Ue}from"./chunk-EWOTDVDJ.js";import{b as ie}from"./chunk-6PKXJEJM.js";import{a as $e}from"./chunk-FEAKTSRS.js";import{a as Ge}from"./chunk-HIYQPZ7C.js";import{f as Fe,h as R}from"./chunk-LJDBR3RN.js";import{a as Me}from"./chunk-RBDUMASL.js";import{b as We}from"./chunk-F4TJ7WQV.js";import{d as ze}from"./chunk-MEK7DLX3.js";import{b as O,c as W}from"./chunk-ZQHPGEYT.js";import{d as X}from"./chunk-GW5SE3FM.js";import{a as Oe}from"./chunk-VFH5C6D2.js";import{d as je,e as Ne}from"./chunk-NWOK6NLE.js";import{m as Be}from"./chunk-LRRBYIGH.js";import{u as _e}from"./chunk-B4RKHHF7.js";import{Ab as qe,wb as Ve}from"./chunk-TUCKED4T.js";import{p as Ae,t as Q}from"./chunk-JY3YSI54.js";import{i as Le,j as Ce}from"./chunk-RH43WLBX.js";import{f as be}from"./chunk-IWK3RTLR.js";import{i as Te}from"./chunk-N5GPINVP.js";import{t as U,x as K,y as Se}from"./chunk-TW3SRBLU.js";import{$ as Y,Ga as De,Jb as He,_ as q,fa as Re,ga as Ie,ha as L,i as J,la as N,wa as Pe,za as Ee}from"./chunk-PGO4FRHU.js";import{w as we,x as ve,z}from"./chunk-ABF3W2MO.js";import{a as re,f as oe}from"./chunk-OE22TAXP.js";import{ba as xe,d as fe,g as ye}from"./chunk-4M3YW3EQ.js";import{Ga as le,H as ce,Ja as de,Ya as pe,e as ne,eb as ue,fb as M,gb as me,hb as he,nb as ge,vb as ke}from"./chunk-PBZCXPPC.js";import{r as se}from"./chunk-NJLULBTM.js";import{c as b,d as _,e as ae,m as V,n as f}from"./chunk-VVNV4NNW.js";import{A as x}from"./chunk-PF56N7ZY.js";import{a as h}from"./chunk-FTQLQJQV.js";import{promises as it}from"node:fs";import nt from"node:path";async function _t(e){let o=e.definition.tasksetRelease,c=await je(e.store,e.harnessRelease);if(!c)throw new Error("Evaluation Profile Harness release is unavailable.");let a=await lt({...e,runtime:c});if(a)return a;let s=await e.store.listTasksetRevisions(e.profileId);for(let i of s){if(o.id!==i.id&&o.id!==`taskset-release-${i.id}-r${i.revision}`)continue;let r=await ct(e.storeDir,i);if(r.taskset.id===o.id&&r.taskset.contentHash===o.contentHash)return r}throw new Error(`Released Taskset ${o.id} is unavailable in Profile ${e.profileId}.`)}h(_t,"loadLocalProfileEvaluationTaskset");async function ct(e,o){let c=o.metadata.importedPackageHash;if(typeof c=="string"){let i=await W(e,c);if(i.taskset.id!==o.id||i.taskset.revision!==o.revision)throw new Error("Imported evaluation Taskset differs from its local Profile revision.");return i}if(Ee(o)!==o.contentHash)throw new Error("Authored evaluation Taskset differs from its immutable revision.");let a=He({taskset:o,adapterId:ze(o)}),s=await We({storeDir:e,taskset:o,content:{schemaVersion:"openpond.tasksetPackage.v1",taskset:a.tasksetRelease,environment:a.environmentRelease,verifierSet:a.verifierSetRelease}});return await O(e,s),s}h(ct,"loadCandidate");async function lt(e){let o=e.definition.tasksetRelease,c=e.runtime;if(c.release.harnessRelease.id!==e.harnessRelease.id||c.release.harnessRelease.contentHash!==e.harnessRelease.contentHash)throw new Error("Evaluation Taskset runtime differs from its requested release.");let a=`evals/tasksets/${o.contentHash}.json`,s=c.release.harnessRelease.files.find(i=>i.path===a);if(s){if(s.visibility!=="verifier")throw new Error("Evaluation Taskset package is not verifier-private.");let i=await it.readFile(nt.join(c.release.bundlePath,"source",...a.split("/")));if(V(i)!==s.contentHash)throw new Error("Released evaluation Taskset package bytes differ from their source receipt.");let r=L(JSON.parse(i.toString("utf8")));if(r.taskset.id!==o.id||r.taskset.contentHash!==o.contentHash)throw new Error("Released evaluation Taskset package differs from its definition.");return r}return null}h(lt,"loadReleasedProfileEvaluationTaskset");function Z(e){return{id:he(e),label:"Selected Dataset evaluation",description:"Explicit sealed external Dataset evaluation recipe.",target:e.target,tasksetRelease:{id:e.dataset.id,contentHash:e.dataset.contentHash},split:e.split,taskIds:[...new Set(e.population.map(o=>o.taskId))],seeds:[...new Set(e.population.map(o=>o.seed))],criterion:e.criterion}}h(Z,"externalProfileEvaluationDefinition");async function Bt(e){let o=e.manifest.profileEvaluation,c=o?.externalDatasetBinding?M(o.externalDatasetBinding):null;if(!c)return null;if(!e.resolveExternalDataset)throw new Error("This owner has no authorized external Dataset resolver.");let a=await e.resolveExternalDataset(c,e.selected);await a.authorize();let s=L(a.packageValue),i=await e.loadCatalog({ref:e.selected.profileRef,sourceRevision:e.selected.sourceRevision,harnessRelease:e.selected.harnessRelease});if(f(a.binding)!==f(c)||c.profileId!==e.selected.profileRef.profileId||c.declaredProfileCatalogHash!==i.catalogHash||s.contentHash!==c.packageHash||f(s.taskset)!==f(e.taskset)||c.environmentHash!==f(s.taskset.environment)||c.privateDatasetClosureHash!==f(s.files.filter(t=>t.asset.visibility!=="policy").map(t=>t.asset)))throw new Error("External Dataset admission changed its actual Profile, package or private closure.");let r=Z(c),u={schemaVersion:"openpond.profileEvaluations.v1",definitions:[r],suites:[]};if(z(e.manifest,e.taskset,u),!o||o.catalogHash!==f(u)||o.definitionHash!==f(r)||f(o.target)!==f(c.target))throw new Error("External Dataset manifest changed its derived definition.");return await a.authorize(),{...a,packageValue:s,definition:r,catalog:u}}h(Bt,"admitProfileExternalDataset");import vt from"node:path";function Ke(e,o){return e.map(c=>{let a=c.workspace.draft,s=a.metadata.profileTarget,i=s&&typeof s=="object"&&!Array.isArray(s)?s:{},r=typeof i.profileId=="string"?{profileId:i.profileId,workflowId:typeof i.workflowId=="string"?i.workflowId:null}:null,u=c.checks.find(t=>t.kind==="graders"&&t.workspaceHash===c.workspace.contentHash);return{summary:{...o(c),rows:[]},projectId:c.projectId,profileTarget:r,updatedAt:a.updatedAt,workspaceHash:c.workspace.contentHash,packageHash:c.packageHash,graders:a.graders.map(t=>{let p=u?.scopes?.find(l=>l.graderId===t.id),g=t.metadata.portableVerifierRef;return{id:`grader-${f([a.id,t.id]).slice(0,40)}`,graderId:t.id,name:t.label,kind:t.kind,version:t.version,configurationHash:f(t),weight:t.weight,hardGate:t.hardGate,rewardEligible:t.rewardEligible,privileged:t.privileged,checkState:p?`${p.checked}/${p.total} ${p.status}`:u?u.status:"Not checked",verifierPath:g&&typeof g=="object"&&"path"in g&&typeof g.path=="string"?g.path:null,fields:Array.isArray(a.metadata.fields)?a.metadata.fields.filter(l=>typeof l=="string"):[]}})}})}h(Ke,"localLearningCatalog");function B(e){let o=e.workspace.draft,c=e.checks.find(a=>a.kind==="graders");return o.graders.map(a=>{let s=c?.scopes?.find(u=>u.graderId===a.id),i=c&&c.workspaceHash!==e.workspace.contentHash?"Checks stale":s?.status??"Not tested",r=o.graderFixtures.filter(u=>!Array.isArray(u.metadata.graderIds)||u.metadata.graderIds.includes(a.id));return{kind:"grader",id:`grader-${f([o.id,a.id]).slice(0,40)}`,revision:o.revision,name:a.label,datasetId:o.id,datasetRevision:o.revision,graderId:a.id,graderType:a.kind,state:i,description:a.kind==="content"&&typeof a.config.operator=="string"?a.config.operator:`${a.kind} grader \xB7 ${a.version}`,checkState:s?`${s.checked}/${s.total} examples checked \xB7 ${i}`:i,rows:r.slice(0,3).map(u=>({id:u.id,label:u.label,detail:JSON.stringify(u.output)}))}})}h(B,"localGraderSummaries");function Xe(e,o,c){let{offset:a,limit:s}=x.object({offset:x.number().int().nonnegative().default(0),limit:x.number().int().min(1).max(100).default(20)}).parse(c),i=e.workspace.draft,r=i.graders.find(g=>g.id===o.graderId),u=i.graderFixtures.filter(g=>!Array.isArray(g.metadata.graderIds)||g.metadata.graderIds.includes(r.id)),t=r.kind==="custom_verifier"?e.workspace.files.find(g=>g.path===r.module):null,p=t?Buffer.from(t.base64,"base64").toString("utf8"):null;return{summary:o,dataset:{id:i.id,revision:i.revision,name:i.name,workspaceHash:e.workspace.contentHash},grader:r,taskCount:i.tasks.length,fixtures:{total:u.length,offset:a,items:u.slice(a,a+s),hasMore:a+s<u.length},files:t?[{path:t.path,contentHash:t.contentHash,sizeBytes:t.sizeBytes,content:p.slice(0,24e3),truncated:p.length>24e3}]:[]}}h(Xe,"localGraderInspection");async function Qe(e,o,c,a){let s=a?e.checks.find(l=>l.kind==="graders"&&l.revision===e.workspace.draft.revision&&l.workspaceHash===e.workspace.contentHash):void 0,i=s?.scopes?.filter(l=>l.graderId!==a&&o.taskset.graders.some(d=>d.id===l.graderId))??[],r=s?.issues.filter(l=>l.graderId&&i.some(d=>d.graderId===l.graderId))??[],u=e.workspace.draft.graderFixtures,t=i.reduce((l,d)=>l+d.checked,0),p=i.reduce((l,d)=>l+d.total,0),g=[...i];for(let l of o.taskset.graders){let d=u.filter(n=>!Array.isArray(n.metadata.graderIds)||n.metadata.graderIds.includes(l.id));if(a&&l.id!==a){i.some(n=>n.graderId===l.id)||(p+=d.length,g.push({graderId:l.id,checked:0,total:d.length,status:"unavailable"}),r.push({code:"grader_not_checked",message:"This grader has not been checked at the saved revision.",graderId:l.id}));continue}let k=t,I=r.length;p+=d.length,(!d.some(n=>n.label==="positive")||!d.some(n=>n.label==="negative"))&&r.push({code:"examples_missing",message:"Add known-good and known-bad examples before claiming qualification.",graderId:l.id});for(let n of d){c?.throwIfAborted();let P=o.taskset.tasks.find(w=>w.id===n.taskId);if(!P){r.push({code:"fixture_task_missing",message:`Example ${n.id} references a missing task.`,graderId:l.id,taskId:n.taskId});continue}try{let w=Ye(o,n),v={output:n.output,runtimeEventRefs:[],artifactRefs:w.map(E=>E.reference.id),artifacts:w,infrastructureError:n.infrastructureError},[S]=await ce({task:P,graders:[l],purpose:"fixture_calibration",signal:c,evidence:v,customVerifier:h(async({grader:E,task:D,evidence:H})=>{let C=o.files.find(y=>y.asset.id===E.verifierRef.id);if(!C||f(C.asset)!==f(E.verifierRef))throw new Error("The exact verifier source is missing.");let T=E.runtime==="sandbox_process"?await F({packageValue:o,grader:E,task:D,evidence:{...H,artifacts:w},signal:c,authorize:h(async()=>{c?.throwIfAborted()},"authorize")}):await $({source:new TextDecoder("utf-8",{fatal:!0}).decode(q(C)),exportName:E.exportName,runtime:E.runtime,timeoutMs:E.timeoutMs,signal:c,value:{task:D,attempt:H,input:D.input,expectedOutput:D.expectedOutput,output:H.output,artifacts:w,infrastructureError:n.infrastructureError}});return{score:T.score,passed:T.passed,rewardEligible:E.rewardEligible,failureClass:null,feedback:[T.feedback],visibleEvidenceRefs:[],privilegedEvidenceRefs:T.evidenceRefs}},"customVerifier")});!S||S.score===null&&!n.infrastructureError||S.status==="pending"?r.push({code:"grader_unavailable",message:S?.feedback.join(" ")??"The grader returned no evidence.",graderId:l.id,taskId:P.id}):(t++,(S.passed!==n.expectedPassed||S.rewardEligible!==n.expectedRewardEligible)&&r.push({code:"example_mismatch",message:`Example ${n.id} did not match its expected pass/reward outcome. ${S.feedback.join(" ").slice(0,2e3)}`,graderId:l.id,taskId:P.id}))}catch(w){r.push({code:"grader_unavailable",message:w instanceof Error?w.message:"Example check failed.",graderId:l.id,taskId:P.id})}}let m=r.slice(I);g.push({graderId:l.id,checked:t-k,total:d.length,status:m.some(n=>n.code==="example_mismatch")?"failed":m.length?"unavailable":"passed"})}return o.taskset.graders.length||r.push({code:"graders_missing",message:"No graders are configured."}),{kind:"graders",revision:e.workspace.draft.revision,workspaceHash:e.workspace.contentHash,status:r.some(l=>l.code==="example_mismatch")?"failed":r.length?"unavailable":"passed",checked:t,total:p,scopes:g,issues:r,checkedAt:new Date().toISOString()}}h(Qe,"checkLocalDatasetGraders");var dt=new Set(["unknown","other"]);function Ze(e,o){return o?"approved":!e||dt.has(e.toLowerCase())?"review":"approved"}h(Ze,"approvedLicenseStatus");function pt(e,o){if(e.schemaVersion!=="openpond.huggingFaceDatasetSource.v1")throw new Error("Selected source checks require a captured Hugging Face sample.");let c=V(o);if(e.metadata.capturedSourceHash!==c||!e.sourceFileHashes.includes(c))throw new Error("The captured source bytes do not match their retained hash.");let a=new TextDecoder("utf-8",{fatal:!0}).decode(o),s=be(a);return{...e,secretScanStatus:s.secretStatus,piiScanStatus:s.piiStatus,licensingStatus:Ze(e.declaredLicense,!1),metadata:{...e.metadata,privacyScanner:"openpond-evidence-v1",findings:s.findings,checkedSourceHash:c}}}h(pt,"checkCapturedHuggingFaceSource");function et(e){let o=0,c=e.draft.sourceRefs.map(a=>{if(a.schemaVersion!=="openpond.huggingFaceDatasetSource.v1"||typeof a.metadata.capturedSourcePath!="string")return a;let s=e.files.find(r=>r.path===a.metadata.capturedSourcePath);if(!s)throw new Error("The captured source file is missing.");let i=Buffer.from(s.base64,"base64");if(V(i)!==s.contentHash||i.byteLength!==s.sizeBytes)throw new Error("The captured source file failed integrity verification.");return o++,pt(a,i)});if(!o)throw new Error("This Dataset has no captured Hugging Face samples to check.");return c}h(et,"checkCapturedDatasetSources");function A(e){let{draft:o}=e.workspace,c=e.checks.filter(a=>a.workspaceHash===e.workspace.contentHash);return{kind:"dataset",id:o.id,revision:o.revision,name:o.name||"Untitled dataset",state:e.packageHash?"Runnable":"Saved draft",evaluationHash:e.workspace.contentHash,taskCount:o.datasetArtifact?.rowCount??o.tasks.length,graderCount:o.graders.length,checkState:c.length?c.map(a=>`${a.kind}: ${a.status} (${a.checked}/${a.total})`).join(" \xB7 "):e.checks.length?"Checks stale":"Not checked",syncState:e.sync?e.sync.paused?"Paused":e.sync.acknowledgedHash===e.workspace.contentHash&&e.sync.status==="synced"?"Synced":e.sync.status==="synced"?"Sync pending":e.sync.status:"Local",rows:o.tasks.slice(0,3).map(a=>({id:a.id,label:typeof a.input.prompt=="string"?a.input.prompt:JSON.stringify(a.input),detail:o.graders.map(s=>s.label).join(", ")}))}}h(A,"localDatasetSummary");function tt(e){async function o(r,u){let t=await e.store.readLocalDataset(r,u);if(!t||t.ownerId!==await e.store.localResourceOwnerId())throw new Error("Local Dataset was not found.");return t}h(o,"read");async function c(r,u){let t=await e.store.readLocalDatasetListing(r,u);if(!t||t.ownerId!==await e.store.localResourceOwnerId())throw new Error("Local Dataset was not found.");return t}h(c,"readListing");function a(r,u,t=r.workspace.contentHash){return Te({workspace:u?Me(r.workspace,u):r.workspace,sourceWorkspaceHash:t,maximumBytes:Number.POSITIVE_INFINITY,preparation:null,adapterId:"openpond-desktop-taskset-authoring-v1",now:r.workspace.draft.updatedAt})}h(a,"compile");async function s(r,u,t){if(t){let d=await e.store.readLocalDatasetProjection(r,t,{revision:u});if(!d||d.record.ownerId!==await e.store.localResourceOwnerId())throw new Error("Local Dataset was not found.");let k=a(d.record,void 0,d.sourceWorkspaceHash);return await O(e.home,k,Number.POSITIVE_INFINITY),{record:d.record,package:k}}let p=await o(r,u),g=a(p,t);await O(e.home,g,Number.POSITIVE_INFINITY);let l=await o(r);if(!t&&l.workspace.contentHash===p.workspace.contentHash&&l.packageHash!==g.contentHash)try{p=await e.store.updateLocalDatasetMetadata(r,f(l),d=>({...d,packageHash:g.contentHash}))}catch(d){if(!(d instanceof Error)||!d.message.startsWith("Dataset state changed."))throw d}return{record:p,package:g}}h(s,"packageDataset");async function i(r,u){let t=qe.parse(r),p=await e.store.localResourceOwnerId();if(t.action==="schema"){let m=x.enum(["task","grader","fixture","draft","file"]).parse(t.payload.kind??"task"),n=m==="task"?N.shape.tasks.unwrap().element:m==="grader"?N.shape.graders.unwrap().element:m==="fixture"?N.shape.graderFixtures.unwrap().element:m==="file"?J:N;return{kind:m,schema:x.toJSONSchema(n),...m==="grader"?{example:{id:"exact-answer",version:"1",label:"Exact answer",kind:"content",weight:1,hardGate:!0,rewardEligible:!1,privileged:!0,config:{operator:"final_answer_equals_expected"},metadata:{}}}:{}}}if(t.action==="list"){let m=(await e.store.listLocalDatasetListings()).filter(n=>n.ownerId===p);return t.payload.view==="catalog"?Ke(m,A):m.map(n=>({...A(n),projectId:n.projectId}))}if(t.action==="inspect_source"||t.action==="import_source"){if(!e.sourceAction)throw new Error("This Dataset source adapter is unavailable.");return e.sourceAction(t.action,t.payload,p)}if(t.action==="related_chats"){let m=t.payload.kind;if(m!==void 0&&!["dataset","grader","experiment"].includes(String(m)))throw new Error("Select a supported resource kind.");let n=await e.store.chatResourceLinks({kind:typeof m=="string"?m:"dataset",id:t.id}),P=[...new Set(n.map(w=>w.sessionId))];return(await Promise.all(P.map(w=>e.store.getSession(w)))).filter(w=>w&&!w.systemKind&&w.workspaceKind!=="sandbox").map(w=>({id:w.id,title:w.title}))}let g=f(t);if(["create","save","file","import","save_grader","check_sources"].includes(t.action)){if(!t.operationId)throw new Error("A stable operationId is required. Reuse it after an uncertain response.");let m=await e.store.recoverLocalDatasetOperation(t.operationId,g);if(m)return{record:m,summary:A(m),summaries:B(m)};let n=new Date().toISOString(),P;if(t.action==="create"||t.action==="import"){let v=`dataset-${f([p,t.operationId]).slice(0,40)}`,S;if(t.action==="import"){if(typeof t.payload.path!="string")throw new Error("Import requires a package folder path.");S=(await X({directory:t.payload.path,teamId:p,datasetId:v,expectedRevision:0,maximumBytes:Number.POSITIVE_INFINITY})).workspace}else{let E=Pe({profileId:p,id:v,name:typeof t.payload.name=="string"?t.payload.name:"",now:n});S=U({schemaVersion:"openpond.tasksetDraftWorkspace.v1",draft:{...E,...t.payload.draft,id:v,profileId:p,modelScope:null,revision:1,status:"draft",publishedTasksetRef:null,createdAt:n,updatedAt:n},files:Array.isArray(t.payload.files)?t.payload.files:[]},Number.POSITIVE_INFINITY)}P=Ve.parse({schemaVersion:"openpond.localDataset.v1",ownerId:p,projectId:typeof t.payload.projectId=="string"?t.payload.projectId:null,workspace:S,checks:[],packageHash:null,sync:null})}else{if(!t.id||t.expectedRevision===void 0)throw new Error("Editing requires a Dataset ID and expectedRevision.");let v=await o(t.id),S=t.payload.draft;if(t.action==="check_sources"&&(S={sourceRefs:et(v.workspace)}),t.action==="save_grader"){let D=N.shape.graders.unwrap().element.parse(t.payload.grader),H=v.workspace.draft.graders.filter(T=>T.id!==D.id),C=v.workspace.draft.graders.findIndex(T=>T.id===D.id);H.splice(C<0?H.length:C,0,D),S={graders:H,...Array.isArray(t.payload.fixtures)?{graderFixtures:t.payload.fixtures}:{}}}let E;if(t.action==="save"&&typeof t.payload.path=="string"){if(v.workspace.draft.modelScope)throw new Error("Folder replacement requires an ordinary local Dataset.");let D=await X({directory:t.payload.path,teamId:p,datasetId:t.id,expectedRevision:t.expectedRevision,maximumBytes:Number.POSITIVE_INFINITY}),H=K({workspace:v.workspace,expectedDraftRevision:t.expectedRevision,draft:{...D.workspace.draft,id:v.workspace.draft.id,profileId:v.workspace.draft.profileId,modelScope:v.workspace.draft.modelScope,revision:v.workspace.draft.revision,status:v.workspace.draft.status,createdAt:v.workspace.draft.createdAt,publishedTasksetRef:v.workspace.draft.publishedTasksetRef},now:n,maximumBytes:Number.POSITIVE_INFINITY});E=U({schemaVersion:H.schemaVersion,draft:H.draft,files:D.workspace.files},Number.POSITIVE_INFINITY)}else E=t.action==="file"?Se({workspace:v.workspace,mutation:J.parse({...t.payload,draftId:t.id,expectedDraftRevision:t.expectedRevision}),now:n,maximumBytes:Number.POSITIVE_INFINITY}):K({workspace:v.workspace,expectedDraftRevision:t.expectedRevision,draft:{...v.workspace.draft,...S},now:n,maximumBytes:Number.POSITIVE_INFINITY});P={...v,workspace:E,packageHash:null}}u?.throwIfAborted();let w=await e.store.saveLocalDataset({record:P,expectedRevision:t.action==="create"||t.action==="import"?0:t.expectedRevision,operationId:t.operationId,requestHash:g});return e.onSaved?.(w),{record:w,summary:A(w),summaries:B(w)}}if(!t.id)throw new Error("A Dataset ID is required.");if(t.action==="read"&&t.payload.view==="metadata"){let m=t.payload.revision===void 0?void 0:x.number().int().positive().parse(t.payload.revision),n=await c(t.id,m);return{record:n,summary:A(n)}}let l=await o(t.id,["read","read_grader","list_graders"].includes(t.action)&&t.expectedRevision?t.expectedRevision:void 0);if(t.action==="list_graders")return{summaries:B(l)};if(t.action==="read_grader"){let m=B(l).find(n=>n.graderId===t.payload.graderId||n.id===t.payload.graderId);if(!m)throw new Error("The saved grader was not found.");return t.payload.view==="inspection"?Xe(l,m,t.payload):{record:l,summary:m,grader:l.workspace.draft.graders.find(n=>n.id===m.graderId)}}if(t.action==="read")return{record:l,summary:A(l)};if(["upload","sync","pause_sync","disconnect_sync","publish"].includes(t.action)){if(t.expectedRevision!==l.workspace.draft.revision)throw new Error("Cloud actions require the exact current saved expectedRevision.");if(!e.syncAction)throw new Error("Cloud Dataset synchronization is unavailable.");let m=await e.syncAction(t.action,l,t.payload);return{record:m,summary:A(m)}}if(t.expectedRevision!==l.workspace.draft.revision)throw new Error("Checks and packaging require the exact saved expectedRevision.");if(t.action==="test_grader"&&!l.workspace.draft.graders.some(m=>m.id===t.payload.graderId))throw new Error("The saved grader was not found.");let d=null,k={kind:"structure",revision:l.workspace.draft.revision,workspaceHash:l.workspace.contentHash,status:"passed",checked:l.workspace.draft.tasks.length,total:l.workspace.draft.datasetArtifact?.rowCount??l.workspace.draft.tasks.length,checkedAt:new Date().toISOString(),issues:[]};try{d=a(l),await O(e.home,d,Number.POSITIVE_INFINITY)}catch(m){k={...k,status:"failed",issues:[{code:"package_invalid",message:m instanceof Error?m.message:"Package validation failed."}]}}if(["check_graders","test_grader"].includes(t.action)&&d){let m=[...new Set(l.workspace.draft.graderFixtures.map(n=>n.taskId))];k=await Qe(l,m.length?a(l,m):d,u,t.action==="test_grader"?t.payload.graderId:void 0)}let I=await e.store.updateLocalDatasetMetadata(t.id,f(l),m=>({...m,packageHash:d?.contentHash??null,checks:[...m.checks.filter(n=>n.kind!==k.kind),k]}));return{record:I,summary:t.action==="test_grader"?B(I).find(m=>m.graderId===t.payload.graderId):A(I),summaries:B(I),check:k,...t.action==="package"&&d?{package:d}:{}}}return h(i,"request"),{request:i,read:o,readListing:c,packageDataset:s,compile:a}}h(tt,"createLocalDatasetService");import{mkdtemp as ft,mkdir as ut,rm as mt}from"node:fs/promises";import ht from"node:os";import at from"node:path";var rt=new Set(["work_exec","work_save_output"]);function ot(e){let o=e.taskset,c=o.environment.kind==="text"&&o.tools.length===0,a=o.environment.kind==="work"&&o.environment.entrypoint==="openpond-work-v1"&&o.tools.every(s=>rt.has(s.name));return(c||a)&&o.policy.connectedAppScopes.length===0&&o.capabilities.every(s=>!s.required||s.id==="private-verifier"||s.id==="tools"&&s.scopes.every(i=>rt.has(i)&&o.tools.some(r=>r.name===i)))}h(ot,"supportsLocalProfileEnvironment");async function ba(){let e=await ft(at.join(ht.tmpdir(),"openpond-work-preflight-"));try{await ut(at.join(e,"outputs"));let o="local-work-preflight",a=await $e({authorize:h(async()=>({candidateId:o,candidateRevision:1,ownerId:o,sessionId:o,turnId:o,sourceRoot:e,layout:"profile_case",writablePaths:["outputs"]}),"authorize")})({candidateId:o,expectedRevision:1,sessionId:o,turnId:o,timeoutMs:5e3,command:`/runtime/node -e 'require("node:fs").writeFileSync("outputs/probe","ready");process.stdout.write("ready")'`});if(a.code!==0||a.timedOut||a.stdout!=="ready")throw new Error("The confined local Work executor is unavailable.")}finally{await mt(e,{recursive:!0,force:!0})}}h(ba,"assertLocalProfileWorkRuntime");function G(e){let o=Re(e),c=e.modelResources?.rewards??(e.learningResources?xe(e.taskset).rewards:[]);if(o&&f(pe(o,c))!==f(e.taskset.graders))throw new R("local_grader_closure_conflict","The retained Reward closure differs from the released Dataset graders.",422);return e.taskset.graders.map(a=>{let s=o?.sources.find(r=>r.graderId===a.id),i=s&&c.find(r=>r.id===s.reward.id&&r.revision===s.reward.revision&&r.contentHash===s.reward.contentHash);return{id:a.id,version:a.version,contentHash:f(a),name:i?.name??("config"in a&&a.config.operator==="final_answer_equals_expected"?"Answer accuracy":`${a.kind.replaceAll("_"," ")} grader`),feedbackKey:i?de(i):`grader_${f(a.id).slice(0,24)}`,release:i?{id:i.id,revision:i.revision,contentHash:i.contentHash}:null}})}h(G,"localPackageGraders");function za(e,o){let c=G(e),a=o?o.map(s=>{let i=c.find(r=>r.id===s.id&&r.version===s.version&&r.contentHash===s.contentHash);if(!i)throw new R("local_grader_pin_unavailable","Select an exact grader from the retained Dataset package.",422);return{...i,mappings:s.mappings}}):c;try{return Le(a)}catch(s){throw new R("experiment_grader_feedback_conflict",s instanceof Error?s.message:"Grader selection conflicts.",422)}}h(za,"selectLocalPackageGraders");function Wa(e,o,c,a=!1,s=!1,i=!1){let r=L(o),u=e.configuration.request;if(r.contentHash!==e.packageHash||f(u.taskset)!==f({id:r.taskset.id,revision:r.taskset.revision,contentHash:r.taskset.contentHash}))throw new R("local_dataset_pin_conflict","Local execution requires the exact retained Dataset package.",422);if(u.policy.kind!=="hosted_chat"&&!(u.policy.kind==="hosted_harness"&&i))throw new R("local_target_not_qualified","This local execution path requires a qualified exact target owner.",422);let t=i&&u.policy.kind==="hosted_harness"&&ot(r);if(["claude-code","codex"].includes(e.model.providerId)&&!t&&(gt(r)||r.taskset.environment.kind!=="text"||r.taskset.tools.length))throw new R("native_text_environment_not_admitted","This native model adapter requires a text Dataset with no environment tools. Additional tool owners require explicit admission.",422);let p=u.policy.kind==="hosted_chat"?u.policy.harness:void 0;if(p&&!a)throw new R("local_harness_not_qualified","A released Harness must execute through its native turn owner.",422);let g=Y(r);if(r.taskset.policy.connectedAppScopes.length)throw new R("local_connected_scope_not_qualified","This Dataset requires connected scopes that have not been admitted for local execution.",422);for(let l of r.taskset.capabilities.filter(d=>d.required)){if(l.id==="tools"&&i&&l.scopes.every(k=>["work_exec","work_save_output"].includes(k)&&r.taskset.tools.some(I=>I.name===k)))continue;if(l.id!=="private-verifier")throw new R("local_capability_not_qualified","This Dataset requires capabilities not supplied by the local execution owner.",422);if((l.scopes.length?l.scopes:r.taskset.policy.hiddenGraderRefs).some(k=>!r.taskset.policy.hiddenGraderRefs.includes(k)||!r.taskset.graders.some(I=>I.id===k&&I.privileged&&I.kind!=="human")))throw new R("local_capability_not_qualified","The required private grader scope has no supported exact local grader owner.",422)}if(!g&&r.taskset.tools.length&&!i)throw new R("local_tool_target_not_qualified","This Dataset's tools require a released native target executor.",422);if(g?.execution.javascript.executionServices?.length&&!s)throw new R("local_prepared_environment_not_qualified","This Dataset requires prepared compute services that are not yet bound to the local execution owner.",422);if(r.taskset.environment.kind!=="text"&&!g&&!t)throw new R("local_environment_unavailable","The released Dataset has no supported local environment executor.",422);if(p&&(g||r.taskset.environment.kind!=="text"))throw new R("local_harness_environment_not_qualified","This native Harness requires a compatible text Dataset.",422);return u.population.map(l=>{let d=r.taskset.tasks.find(P=>P.id===l.taskId);if(!d)throw new R("local_population_unavailable","The selected task is absent from this immutable Dataset release.",422);let k=le(d);if((k.artifactRefs.length||d.requiredOutputs?.length)&&!(i&&u.policy.kind==="hosted_harness"))throw new R("local_work_target_not_qualified","This Dataset requires document input or Work output capabilities not supplied by this local model target.",422);let I=g?.assets.find(P=>P.id===g.execution.javascript.module.id),m=g?.assets.find(P=>P.id===d.privilegedContextRef);if(g&&(!I||!m))throw new R("local_environment_assets_missing","Private environment resources are missing from the retained package.",422);let n={kind:"model",id:`local-case-${f([c,l.receiptId]).slice(0,48)}`,taskId:d.id,model:e.model,...p?{harness:p}:{},instructions:Ie(r),input:k.input,policyVisibleContext:k.policyVisibleContext,timeoutMs:r.taskset.environment.defaultTimeoutMs,environment:g?{kind:"javascript",definition:g.execution.javascript,asset:I,initialState:JSON.parse(fe(m,m.asset)),seed:Number(l.seed)}:{kind:"text"}};return{receiptId:l.receiptId,taskId:l.taskId,seed:l.seed,request:Fe.parse({...n,admissionHash:f(n)})}})}h(Wa,"localExperimentAdmissions");function gt(e){return!!Y(e)}h(gt,"executionForClaude");import{readFile as kt}from"node:fs/promises";import wt from"node:path";async function st(e,o,c,a){let s=await e.getHarnessReleaseRecord(o.contentHash),i=s&&await e.getHarnessWorkspace(s.workspaceId);if(!s||!i||s.harnessRelease.id!==o.id||i.location!=="local"||i.metadata.sourceLayout!=="openpond.harnessSourceManifest.v1")throw new R("local_profile_source_unavailable","The exact Profile Harness is unavailable.",403);let r=i.metadata.profileExperimentOrigin!==void 0||i.metadata.experimentCandidateOrigin!==void 0;if(r){if(!a||!c)throw new R("local_profile_origin_access_denied","This source requires its authenticated origin.",403);await a(i,o,c)}else{if(i.ownerScope.kind!=="personal"||i.ownerScope.id!=="desktop-personal"||typeof s.harnessRelease.metadata.profileRepositoryId=="string"||typeof s.agentSnapshot.metadata.profileRepositoryId=="string")throw new R("local_profile_origin_access_denied","The Profile is not device-owned.",403);let d=s.harnessRelease.metadata.profile;if(c&&(c.source!=="local"||d?.id!==c.profileId||d.repositoryId&&d.repositoryId!==c.repositoryId))throw new R("local_profile_origin_access_denied","The retained Harness differs from this exact Profile reference.",403);if(i.metadata.selectionEligible===!1&&(!c||!d?.repositoryId||d.repositoryId!==c.repositoryId||i.id!==`${Oe}${f({ref:c,sourceRevision:d.sourceRevision}).slice(0,24)}`))throw new R("local_profile_origin_access_denied","This explicit Profile release requires its canonical accepted reference.",403)}let u=await Ne({workspace:i,release:s}),t=new Map;for(let d of s.harnessRelease.files)t.set(d.path,await kt(wt.join(s.bundlePath,"source",...d.path.split("/"))));let p=se({agentSnapshot:s.agentSnapshot,harnessRelease:s.harnessRelease,files:t}),g=ke(s);ie({sourcePackage:p,expectedRelease:o,baseSystemPrompt:"",runtimeId:"openpond.native-profile-experiment.v1",maxContextCharacters:262144,tools:g.map(d=>({name:d.name,inputSchema:d.inputSchema,definition:{type:"function",function:{name:d.name,description:d.description,parameters:d.inputSchema}}}))});let l=await e.getHarnessWorkspace(i.id);if(!l||f(l.ownerScope)!==f(i.ownerScope)||f(l.metadata)!==f(i.metadata))throw new R("local_profile_origin_access_denied","Profile source ownership changed during admission.",403);return r&&await a(i,o,c),u}h(st,"resolveLocalProfileExperimentSource");var ee=x.object({id:b,revision:x.number().int().positive(),workspaceHash:_,taskIds:x.array(b).min(1).max(500),seed:x.string().trim().min(1).max(500).default("1")}).strict();function mr(e){let o=tt({store:e.store,home:e.storeDir});async function c(r){if(r.profileRef.source!=="local")throw new Error("Installation-local Datasets require an accepted local Profile.");if(!(await _e()).profiles.some(l=>f(l.ref)===f(r.profileRef)))throw new Error("The local Dataset's Profile is no longer in this installation's accepted library.");let t=await st(e.store,r.harnessRelease,r.profileRef),p=await Je({store:e.store,ref:r.profileRef,sourceRevision:r.sourceRevision,harnessRelease:r.harnessRelease}),g=await Be({workspaceId:typeof t.release.agentSnapshot.metadata.workspaceId=="string"?t.release.agentSnapshot.metadata.workspaceId:t.release.workspaceId,sourceDir:vt.join(t.release.bundlePath,"source")});if(g.harnessRelease.contentHash!==r.harnessRelease.contentHash)throw new Error("The local Dataset's frozen Profile source changed.");return{catalog:p,protectedClosureHash:Ge(g).protectedClosureHash}}h(c,"profileAuthority");async function a(r,u,t){let p=await e.store.readLocalDatasetProjection(r,t,{workspaceHash:u});if(!p||p.record.ownerId!==await e.store.localResourceOwnerId())throw new Error("The exact installation-local Dataset workspace is unavailable to this owner.");return{record:p.record,packageValue:o.compile(p.record,void 0,p.sourceWorkspaceHash)}}return h(a,"savedPackage"),{prepareBinding:h(async(r,u,t)=>{let p=ee.parse(r);if((await o.readListing(p.id,p.revision)).workspace.contentHash!==p.workspaceHash)throw new Error("The selected local Dataset revision or workspace hash changed.");if(new Set(p.taskIds).size!==p.taskIds.length)throw new Error("Select each local Dataset task once.");let{package:l}=await o.packageDataset(p.id,p.revision,p.taskIds),d=p.taskIds.map(n=>l.taskset.tasks.find(P=>P.id===n));if(d.some(n=>!n)||d.some(n=>n.split!==d[0].split))throw new Error("Select existing local Dataset tasks from one exact split.");let{catalog:k,protectedClosureHash:I}=await c(u);if(!k.definitions.some(n=>f(n)===f(t)))throw new Error("The local Dataset target differs from the accepted Profile definition.");let m=G(l);return me({schemaVersion:"openpond.profileExternalDatasetBinding.v1",dataset:{id:l.taskset.id,revision:l.taskset.revision,contentHash:l.taskset.contentHash},packageHash:l.contentHash,profileId:u.profileRef.profileId,target:t.target,declaredProfileCatalogHash:k.catalogHash,protectedProfileClosureHash:I,split:d[0].split,population:p.taskIds.map(n=>({taskId:n,seed:p.seed,fixtureId:null})),evaluators:m.map(n=>({release:n.release??{id:n.id,revision:n.version,contentHash:n.contentHash},feedbackKey:n.feedbackKey,configurationHash:f({graderHash:n.contentHash,mappings:[]}),output:"score",categories:[]})),fieldMappings:[],fieldMappingsHash:f([]),environmentHash:f(l.taskset.environment),privateDatasetClosureHash:f(l.files.filter(n=>n.asset.visibility!=="policy").map(n=>n.asset)),criterion:t.criterion})},"prepareBinding"),resolveExternalDataset:h(async(r,u)=>{let t;try{t=await W(e.storeDir,r.packageHash)}catch(n){if(n.code!=="ENOENT")throw n}let p=t?x.object({sourceTasksetId:b,sourcePackageHash:_}).passthrough().safeParse(t.taskset.metadata):null,g=p?.success?await e.store.readLocalDatasetListing(p.data.sourceTasksetId):null;if(!t||!p?.success||!g){if(!e.remote)throw new Error("This external Dataset has no installation-local owner.");return e.remote(r,u)}let l=p.data,d=t.contentHash,k=g.ownerId;async function I(){let n=[...new Set(r.population.map(S=>S.taskId))],{record:P,packageValue:w}=await a(l.sourceTasksetId,l.sourcePackageHash,n);if(P.ownerId!==k||w.contentHash!==d)throw new Error("The cached Dataset differs from its exact saved local source.");let v=await c(u);if(r.profileId!==u.profileRef.profileId||r.declaredProfileCatalogHash!==v.catalog.catalogHash||r.protectedProfileClosureHash!==v.protectedClosureHash)throw new Error("The local Dataset recipe changed its accepted Profile or protected evaluator closure.");return Ce({binding:r,packageValue:w,graders:G(w)})}h(I,"read");let m=await I();return{binding:r,packageValue:m,authorize:h(async()=>{if(f(await I())!==f(m))throw new Error("The local Dataset authority changed during execution.")},"authorize")}},"resolveExternalDataset")}}h(mr,"createInstallationLocalProfileDatasets");var yt=x.object({id:b,createdAt:ae,definitionId:b,externalDatasetBinding:ue.optional(),localDataset:ee.optional(),profileRef:Ae.optional(),profileSource:x.object({sourceRevision:x.string().min(1).max(500),harnessRelease:x.object({id:b,contentHash:_}).strict()}).strict().optional(),modelRef:oe,hostModelConfigurationHash:_.optional(),hostArtifactHash:_.optional(),maximumSpendUsd:x.number().positive().max(1e4).optional(),expectedManifestHash:_.optional(),hostExperiment:x.object({definition:x.object({id:b,revision:x.number().int().positive(),contentHash:_}).strict().nullable(),configurationHash:_,project:x.object({id:b,revision:x.number().int().positive(),contentHash:_,targetId:b.nullable()}).strict().optional()}).strict().optional()}).strict();function Er(e){return async(o,c)=>{let a=yt.parse(o);if(c?.requireExpectedManifestHash&&!a.expectedManifestHash)throw new Error("Profile evaluation execution requires the reviewed manifest hash.");if(a.profileSource&&!a.profileRef)throw new Error("An exact Profile source requires its accepted Profile reference.");let s=c?.selectedWorkflows??await e.selectedWorkflows(a.profileRef,a.profileSource);if(a.profileRef&&f(a.profileRef)!==f(s.profileRef))throw new Error("Profile preparation did not resolve the explicitly selected Profile.");if(a.profileSource&&(s.sourceRevision!==a.profileSource.sourceRevision||f(s.harnessRelease)!==f(a.profileSource.harnessRelease)))throw new Error("Profile preparation changed its explicitly pinned source.");if(a.localDataset&&a.externalDatasetBinding)throw new Error("Select a local Dataset or an external recipe, not both.");let i=await e.loadCatalog({ref:s.profileRef,sourceRevision:s.sourceRevision,harnessRelease:s.harnessRelease}),r=a.localDataset?i.definitions.find(y=>y.id===a.definitionId):null;if(a.localDataset&&!r)throw new Error("Choose an existing accepted Profile definition as the local Dataset target.");let t=(a.localDataset&&r?await(e.prepareLocalDatasetBinding?e.prepareLocalDatasetBinding(a.localDataset,s,r):Promise.reject(new Error("This host has not qualified installation-local Profile Datasets."))):null)??(a.externalDatasetBinding?M(a.externalDatasetBinding):null),p=t?await(e.resolveExternalDataset?e.resolveExternalDataset(t,s):Promise.reject(new Error("This host has not qualified external Dataset Profile execution."))):null;if(p&&(await p.authorize(),f(M(p.binding))!==f(t)))throw new Error("External Dataset admission differs from the actual authorized recipe.");if(t&&t.declaredProfileCatalogHash!==i.catalogHash)throw new Error("The original Profile verifier catalog changed.");let g=t?Z(t):null;if(g&&!a.localDataset&&a.definitionId!==g.id)throw new Error("Use the external recipe's own definition identity.");let l={schemaVersion:"openpond.profileEvaluations.v1",definitions:g?[g]:i.definitions,suites:g?[]:i.suites},d=g??i.definitions.find(y=>y.id===a.definitionId);if(!d)throw new Error(`Evaluation ${a.definitionId} is absent from the selected Profile release.`);let k=d.target,I=k.kind==="workflow"?s.workflows.find(y=>y.binding.workflowId===k.workflowId)?.binding:ne.parse({schemaVersion:"openpond.profileComponentBinding.v1",profileId:s.profileRef.profileId,sourceRevision:s.sourceRevision,harnessRelease:s.harnessRelease,target:k});if(!I)throw new Error(`Evaluation workflow ${k.kind==="workflow"?k.workflowId:""} is absent from the selected Profile release.`);let m=L(p?.packageValue??await e.loadTasksetPackage(d,s.profileRef.profileId,s.harnessRelease)),n=m.taskset;if(n.id!==d.tasksetRelease.id||n.contentHash!==d.tasksetRelease.contentHash)throw new Error("Evaluation Taskset package differs from its released definition.");let P=n.environment.kind==="text"&&n.tools.length===0,w=n.environment.kind==="work"&&n.environment.entrypoint==="openpond-work-v1"&&n.tools.every(y=>["work_exec","work_save_output"].includes(y.name));if(!P&&!w)throw new Error("Profile evaluation supports text cases or Work cases with the built-in execution and output tools.");if(a.maximumSpendUsd!==void 0&&w){if(typeof e.boundedWorkComputeAvailable=="function")await e.boundedWorkComputeAvailable();else if(!e.boundedWorkComputeAvailable)throw new Error("This host has not admitted budgeted Work compute.")}if(n.tasks.some(y=>y.artifactRefs.length>Q.maxAttachments||y.artifactRefs.some(j=>j.visibility!=="policy"||j.mediaType!=="application/pdf"||j.sizeBytes>Q.maxAttachmentBytes)))throw new Error("Profile evaluation accepts only bounded policy-visible PDF task attachments.");if(!t&&!e.privateGradingPreflight&&(n.graders.some(y=>y.kind==="model_judge"||y.kind==="custom_verifier")||n.metrics?.aggregation==="custom"))throw new Error("Profile evaluation cannot run this Taskset's model judge, custom verifier, or custom metric in the current app-server runtime.");await e.privateGradingPreflight?.(m);let v={adapterId:k.kind==="workflow"?"openpond.profile-workflow":"openpond.profile-component",placement:e.placement,runtimeVersion:"app-server-v1",capabilityReceipt:f({adapterId:k.kind==="workflow"?"openpond.profile-workflow":"openpond.profile-component",packageHash:m.contentHash,connectedAppScopes:n.policy.connectedAppScopes})},E={...ge({catalog:l,definitionId:d.id,profileId:s.profileRef.profileId,sourceRevision:s.sourceRevision,harnessRelease:s.harnessRelease,environmentHash:f({packageHash:m.contentHash,runtimeTarget:v})}),...t?{externalDatasetBinding:t}:{},...e.sourceCandidate?{sourceCandidate:e.sourceCandidate}:{}};if(t&&(t.packageHash!==m.contentHash||t.environmentHash!==f(n.environment)||t.privateDatasetClosureHash!==f(m.files.filter(y=>y.asset.visibility!=="policy").map(y=>y.asset))))throw new Error("External Dataset package/environment/private closure changed.");let D=re.parse({provider:a.modelRef.providerId,model:a.modelRef.modelId,revision:null,artifactHash:a.hostArtifactHash??null,tokenizerRevision:null,chatTemplateHash:null}),H=await e.modelConfigurationHash(a.modelRef,a),C=c?.modelSampling?f({ownerModelConfigurationHash:H,sampling:De.parse(c.modelSampling)}):H,T=we({schemaVersion:"openpond.tasksetRunManifest.v1",id:a.id,tasksetRelease:d.tasksetRelease,packageHash:m.contentHash,execution:{kind:"harness",harnessRelease:s.harnessRelease},profileEvaluation:E,policy:{kind:"model",model:D,configurationHash:C},gradingRole:"evaluation",metricPolicy:ve(n),population:t?t.population.map(y=>({...y,receiptId:`evaluation-${f([a.id,y.taskId,y.seed,y.fixtureId]).slice(0,32)}`})):d.taskIds.flatMap(y=>d.seeds.map(j=>({receiptId:`evaluation-${f([a.id,y,j]).slice(0,32)}`,taskId:y,seed:j,fixtureId:null}))),runtimeTarget:v,limits:{maxTurns:128,timeoutMs:n.environment.defaultTimeoutMs,maxOutputBytes:25e7,maximumSpendUsd:a.maximumSpendUsd??null},createdAt:a.createdAt,metadata:{sourceTasksetId:n.metadata.sourceTasksetId??n.id,...s.profileRef.source==="openpond_git"?{profileRepositoryId:s.profileRef.repositoryId}:{},...a.hostExperiment?{experimentDefinition:a.hostExperiment.definition,experimentConfigurationHash:a.hostExperiment.configurationHash,...a.hostExperiment.project?{project:a.hostExperiment.project}:{}}:{}}});if(z(T,n,l),p&&await p.authorize(),a.expectedManifestHash&&T.contentHash!==a.expectedManifestHash)throw new Error("Profile evaluation setup changed since preview; prepare the run again.");return{manifest:T,taskset:n,profileRef:s.profileRef,binding:I,modelRef:a.modelRef,modelConfigurationHash:C}}}h(Er,"createProfileEvaluationRunPreparationService");async function xt(e,o){let c=L(e);for(let s of c.taskset.graders){if(s.kind==="model_judge"&&(!o||s.calibrationStatus!=="passed"))throw new Error("This Profile requires its current calibrated judge and bounded private provider owner.");let i="verifierRef"in s?s.verifierRef:"rubricRef"in s?s.rubricRef:null;i&&te(c,i)}let a=c.taskset.metrics?.customAggregator;if(a){let s=c.files.find(i=>i.asset.path===a.module);if(!s||s.asset.visibility==="policy"||V(q(s))!==a.contentHash)throw new Error("The authored aggregate metric is not its exact private release.");new TextDecoder("utf8",{fatal:!0}).decode(q(s))}}h(xt,"preflightProfilePrivateGrading");function te(e,o){let c=e.files.find(a=>a.asset.id===o.id);if(!c||c.asset.visibility==="policy"||f(c.asset)!==f(o))throw new Error("The exact private grader asset is unavailable.");return new TextDecoder("utf8",{fatal:!0}).decode(q(c))}h(te,"readPrivate");async function Ar(e){let o=L(e.packageValue);if(o.contentHash!==e.manifest.packageHash||o.taskset.contentHash!==e.manifest.tasksetRelease.contentHash)throw new Error("The private grading package changed its frozen Run identity.");await e.authorize(),await xt(o,!!e.executeBudgetedJudge),await e.authorize();let c=h(async({grader:i,task:r,evidence:u})=>{let t=e.signal;await e.authorize(),t?.throwIfAborted();let p={manifest:e.manifest,packageValue:o,grader:i,task:r,evidence:u,signal:t,authorize:e.authorize},g=e.executeSandboxVerifier?await e.executeSandboxVerifier(p):i.runtime==="sandbox_process"?await F(p):await $({source:te(o,i.verifierRef),exportName:i.exportName,runtime:i.runtime,timeoutMs:i.timeoutMs,signal:t,value:{task:r,attempt:u,input:r.input,output:u.output,artifacts:"artifacts"in u?u.artifacts:[],expectedOutput:r.expectedOutput,infrastructureError:u.infrastructureError??null}});return await e.authorize(),t?.throwIfAborted(),{score:g.score,passed:g.passed,rewardEligible:i.rewardEligible,failureClass:null,feedback:[g.feedback],visibleEvidenceRefs:[],privilegedEvidenceRefs:g.evidenceRefs}},"customVerifier"),a=o.taskset.metrics?.customAggregator,s=a?new TextDecoder("utf8",{fatal:!0}).decode(q(o.files.find(i=>i.asset.path===a.module))):void 0;return{authorize:e.authorize,customVerifier:c,...e.executeBudgetedJudge?{modelJudge:ye({readRubric:h(async i=>{await e.authorize();let r=te(o,i);return await e.authorize(),r},"readRubric"),executeBudgeted:h(async(i,r)=>{await e.authorize(),r?.throwIfAborted();let u=await e.executeBudgetedJudge(i,r);return await e.authorize(),r?.throwIfAborted(),u},"executeBudgeted")})}:{},...s!==void 0?{metricSource:s,metricExecutor:h(async i=>{await e.authorize(),i.signal?.throwIfAborted();let r=await Ue(i);return await e.authorize(),i.signal?.throwIfAborted(),r},"metricExecutor")}:{}}}h(Ar,"createProfilePrivateGradingOwner");export{_t as a,lt as b,Bt as c,B as d,Ze as e,pt as f,A as g,tt as h,ot as i,ba as j,G as k,za as l,Wa as m,st as n,mr as o,Er as p,xt as q,Ar as r};