openpond 0.2.61 → 0.2.63

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (549) hide show
  1. package/README.md +2 -0
  2. package/dist/app-server.d.ts +4713 -477
  3. package/dist/app-server.js +1 -1
  4. package/dist/chunks/{acp-FUAWCKBH.js → acp-H3MJCPHX.js} +1 -1
  5. package/dist/chunks/{acp-agent-XBSJ27KI.js → acp-agent-DWA7272M.js} +1 -1
  6. package/dist/chunks/actions-command-IIYOO4LL.js +2 -0
  7. package/dist/chunks/{app-layer-4BFMOMKM.js → app-layer-K7H2WJ56.js} +1 -1
  8. package/dist/chunks/app-server-connected-apps-RM5E2VWF.js +2 -0
  9. package/dist/chunks/{app-server-evaluations-HAAYVEXB.js → app-server-evaluations-XGMGS67X.js} +1 -1
  10. package/dist/chunks/app-server-harness-services-BHD6S5II.js +2 -0
  11. package/dist/chunks/app-server-runtime-LFIL6F7D.js +2 -0
  12. package/dist/chunks/apps-QKAHJGQ4.js +2 -0
  13. package/dist/chunks/chunk-25XXZS3E.js +2 -0
  14. package/dist/chunks/chunk-27JGS3KB.js +12 -0
  15. package/dist/chunks/{chunk-KK626T3Z.js → chunk-2EPR4HLF.js} +1 -1
  16. package/dist/chunks/{chunk-HN2ZK6EV.js → chunk-2HAWOMZK.js} +1 -1
  17. package/dist/chunks/chunk-2LJCJOJ7.js +2 -0
  18. package/dist/chunks/{chunk-BDCTN4PU.js → chunk-2V4LPUBH.js} +1 -1
  19. package/dist/chunks/{chunk-CN5OXQ7A.js → chunk-3YXYBYWK.js} +1 -1
  20. package/dist/chunks/{chunk-LHENAWLH.js → chunk-42V4NV2F.js} +1 -1
  21. package/dist/chunks/{chunk-DW3GJRY3.js → chunk-4FNCBA3Y.js} +1 -1
  22. package/dist/chunks/{chunk-TXBIZDXG.js → chunk-4L6DU6Z2.js} +1 -1
  23. package/dist/chunks/{chunk-BFKYRQMA.js → chunk-4N4EH3RJ.js} +1 -1
  24. package/dist/chunks/{chunk-MLTKB5G3.js → chunk-4SZ3HKHU.js} +1 -1
  25. package/dist/chunks/{chunk-SCCYSPQ5.js → chunk-4ZBOYWQ3.js} +1 -1
  26. package/dist/chunks/chunk-5EP2DZLJ.js +2 -0
  27. package/dist/chunks/chunk-5FU5RLML.js +2 -0
  28. package/dist/chunks/{chunk-TH6Y4K5Z.js → chunk-5MHYGMJG.js} +1 -1
  29. package/dist/chunks/chunk-6EBCS57F.js +2 -0
  30. package/dist/chunks/chunk-6RS4NAOY.js +2 -0
  31. package/dist/chunks/chunk-6XSSM4WT.js +3 -0
  32. package/dist/chunks/{chunk-NVHZRKXB.js → chunk-7HRLWPPZ.js} +1 -1
  33. package/dist/chunks/chunk-7O6Z3VOZ.js +2 -0
  34. package/dist/chunks/{chunk-BQUWZRWU.js → chunk-7WYL2IDD.js} +1 -1
  35. package/dist/chunks/chunk-7YLXGILH.js +2 -0
  36. package/dist/chunks/chunk-7ZLXFKRI.js +2 -0
  37. package/dist/chunks/{chunk-M6JRS5PA.js → chunk-ABF3W2MO.js} +1 -1
  38. package/dist/chunks/{chunk-TTN63EAM.js → chunk-AH26AQN7.js} +1 -1
  39. package/dist/chunks/chunk-AHOBCBVZ.js +2 -0
  40. package/dist/chunks/chunk-AZ7BL5FL.js +2 -0
  41. package/dist/chunks/{chunk-3DVWJCOA.js → chunk-B4RKHHF7.js} +1 -1
  42. package/dist/chunks/chunk-B5R53U74.js +2 -0
  43. package/dist/chunks/chunk-BKEDG3A4.js +22 -0
  44. package/dist/chunks/{chunk-CO3OJFPU.js → chunk-BPZOABMC.js} +1 -1
  45. package/dist/chunks/{chunk-5VPU7OS7.js → chunk-BSPFY3Y5.js} +1 -1
  46. package/dist/chunks/{chunk-U4HZD2GM.js → chunk-BU27SLZP.js} +2 -2
  47. package/dist/chunks/chunk-C2AXMKK4.js +2 -0
  48. package/dist/chunks/{chunk-SIV5P6JO.js → chunk-C2LAEGOW.js} +2 -2
  49. package/dist/chunks/{chunk-ORLJJGZZ.js → chunk-CZ5R4JXZ.js} +1 -1
  50. package/dist/chunks/{chunk-D4JZALZ4.js → chunk-DABBHWSF.js} +1 -1
  51. package/dist/chunks/{chunk-ROE24PN5.js → chunk-DLANLLKH.js} +1 -1
  52. package/dist/chunks/{chunk-57RY3LSR.js → chunk-DQI5TE6A.js} +2 -2
  53. package/dist/chunks/chunk-DTTFUANI.js +12 -0
  54. package/dist/chunks/{chunk-VBW2X42G.js → chunk-DUL6DXOI.js} +1 -1
  55. package/dist/chunks/{chunk-OQUKSRU3.js → chunk-ELX7VRSU.js} +1 -1
  56. package/dist/chunks/chunk-ERL2M773.js +3 -0
  57. package/dist/chunks/chunk-ERT32RZA.js +86 -0
  58. package/dist/chunks/{chunk-RPOD6I64.js → chunk-EZRUWIP6.js} +1 -1
  59. package/dist/chunks/{chunk-MCIIGQT7.js → chunk-F6UQ6PPK.js} +1 -1
  60. package/dist/chunks/chunk-F7QTIHXX.js +2 -0
  61. package/dist/chunks/chunk-FAKDGLZQ.js +8 -0
  62. package/dist/chunks/{chunk-BWY4D3BN.js → chunk-FVRII5XO.js} +1 -1
  63. package/dist/chunks/{chunk-GEXKTGLY.js → chunk-FYYYECHE.js} +50 -48
  64. package/dist/chunks/chunk-G32BO6M5.js +4 -0
  65. package/dist/chunks/{chunk-TSAW2QVU.js → chunk-G6OR5NB6.js} +1 -1
  66. package/dist/chunks/{chunk-65SM7Y2G.js → chunk-GGJUWIGR.js} +1 -1
  67. package/dist/chunks/{chunk-Q66LWQGF.js → chunk-GPL2Z65R.js} +1 -1
  68. package/dist/chunks/{chunk-LNRFRAV5.js → chunk-GS6ZUSIN.js} +2 -2
  69. package/dist/chunks/{chunk-OFVUN4KI.js → chunk-GVARQXYI.js} +1 -1
  70. package/dist/chunks/chunk-GXCUH2VV.js +17 -0
  71. package/dist/chunks/{chunk-IUGK6BBY.js → chunk-GXZCMO6S.js} +1 -1
  72. package/dist/chunks/{chunk-CLFYRN46.js → chunk-H6C4MAUN.js} +1 -1
  73. package/dist/chunks/{chunk-SGK4GR44.js → chunk-HFJUXKT5.js} +1 -1
  74. package/dist/chunks/{chunk-I3W27VK4.js → chunk-HUCBKXTU.js} +1 -1
  75. package/dist/chunks/{chunk-P4XM7LUT.js → chunk-IHB5GTOJ.js} +2 -2
  76. package/dist/chunks/{chunk-U447MS3Y.js → chunk-IWWXIUAQ.js} +1 -1
  77. package/dist/chunks/chunk-J572ANHX.js +13 -0
  78. package/dist/chunks/{chunk-CGAL7IHZ.js → chunk-J7ZTPXRQ.js} +1 -1
  79. package/dist/chunks/chunk-JCLTFDVW.js +2 -0
  80. package/dist/chunks/{chunk-25RDE7DV.js → chunk-JEISPWWM.js} +1 -1
  81. package/dist/chunks/{chunk-ELYRVTTG.js → chunk-JORRZ4BB.js} +1 -1
  82. package/dist/chunks/{chunk-H2AUR7OT.js → chunk-JQRMDFF3.js} +1 -1
  83. package/dist/chunks/chunk-JSQRLLN6.js +2 -0
  84. package/dist/chunks/chunk-KCOTDUGW.js +2 -0
  85. package/dist/chunks/{chunk-NK4JKB7C.js → chunk-KHTAAVC2.js} +1 -1
  86. package/dist/chunks/{chunk-CM5USMXN.js → chunk-KOKX7PBS.js} +1 -1
  87. package/dist/chunks/{chunk-3ZWLRBYZ.js → chunk-KUPJNBWG.js} +1 -1
  88. package/dist/chunks/{chunk-MHYI7ATG.js → chunk-LK2K3SPM.js} +2 -2
  89. package/dist/chunks/{chunk-FJ3HMHT6.js → chunk-LKKMLBOH.js} +1 -1
  90. package/dist/chunks/{chunk-BNZTJPK7.js → chunk-LSZJ5M3X.js} +1 -1
  91. package/dist/chunks/chunk-M3FLEZ4E.js +4 -0
  92. package/dist/chunks/{chunk-4LZLO4OW.js → chunk-M3SCON53.js} +1 -1
  93. package/dist/chunks/{chunk-VPDG2V2R.js → chunk-MEGKXGW3.js} +1 -1
  94. package/dist/chunks/{chunk-TYHCBVQT.js → chunk-MILEWROZ.js} +1 -1
  95. package/dist/chunks/chunk-MPNJ2BB4.js +2 -0
  96. package/dist/chunks/{chunk-VFLSBDNZ.js → chunk-N33D7KCW.js} +1 -1
  97. package/dist/chunks/chunk-N42HT64M.js +2 -0
  98. package/dist/chunks/{chunk-L3GA2CQI.js → chunk-N4VHLJBZ.js} +1 -1
  99. package/dist/chunks/chunk-NEJLJ2XY.js +2 -0
  100. package/dist/chunks/chunk-NG2L6D7G.js +2 -0
  101. package/dist/chunks/{chunk-7EAWLYYB.js → chunk-NLYZ5K7U.js} +2 -2
  102. package/dist/chunks/{chunk-B47JMAVW.js → chunk-NT7N6KLE.js} +1 -1
  103. package/dist/chunks/{chunk-6MWT6BVU.js → chunk-NWQL6FNF.js} +1 -1
  104. package/dist/chunks/{chunk-PAZDQRYU.js → chunk-NZTCH6K5.js} +1 -1
  105. package/dist/chunks/{chunk-CQF6QZEL.js → chunk-OG33QAG6.js} +1 -1
  106. package/dist/chunks/chunk-OTUBJV6C.js +6 -0
  107. package/dist/chunks/{chunk-TMMFF6DO.js → chunk-PBTXLQAU.js} +1 -1
  108. package/dist/chunks/chunk-Q34IF4PW.js +2 -0
  109. package/dist/chunks/{chunk-I3X6M6ZO.js → chunk-QJ6KUVAR.js} +1 -1
  110. package/dist/chunks/{chunk-SID4X3YN.js → chunk-QU4UE73E.js} +1 -1
  111. package/dist/chunks/{chunk-I7JCARVH.js → chunk-R6VJDOQM.js} +3 -3
  112. package/dist/chunks/{chunk-6RVF2J47.js → chunk-R6WMY6AH.js} +1 -1
  113. package/dist/chunks/{chunk-ZUNG6YDO.js → chunk-RDSVU6F6.js} +1 -1
  114. package/dist/chunks/{chunk-R4PDSOB4.js → chunk-RFMME46Z.js} +1 -1
  115. package/dist/chunks/{chunk-GQUS7MCH.js → chunk-RZUCVF2Q.js} +1 -1
  116. package/dist/chunks/chunk-SFKZITAG.js +9 -0
  117. package/dist/chunks/{chunk-MF35MALN.js → chunk-SHJY5RLU.js} +1 -1
  118. package/dist/chunks/chunk-SI5W5LBV.js +2 -0
  119. package/dist/chunks/chunk-SO42ZB5K.js +2 -0
  120. package/dist/chunks/{chunk-TNHDD3LO.js → chunk-SXMR6E2W.js} +1 -1
  121. package/dist/chunks/{chunk-OMICIPPY.js → chunk-T6JN4PND.js} +1 -1
  122. package/dist/chunks/{chunk-ZISYLRH6.js → chunk-TCOTXCV6.js} +1 -1
  123. package/dist/chunks/{chunk-QCSLEMZF.js → chunk-U2K7QJCG.js} +1 -1
  124. package/dist/chunks/{chunk-ISIXFK6U.js → chunk-UH4JSSRL.js} +28 -28
  125. package/dist/chunks/chunk-UPWJSNL5.js +2 -0
  126. package/dist/chunks/chunk-URNMC46H.js +157 -0
  127. package/dist/chunks/{chunk-OJFDI7VM.js → chunk-UTNGEMW5.js} +1 -1
  128. package/dist/chunks/{chunk-WFVOG5PU.js → chunk-V7KR74NO.js} +1 -1
  129. package/dist/chunks/{chunk-QDBYLJGH.js → chunk-VHXDWAEH.js} +1 -1
  130. package/dist/chunks/{chunk-VZXZ6CHS.js → chunk-W2TICQ62.js} +1 -1
  131. package/dist/chunks/{chunk-QRJPLZF7.js → chunk-W5W4IODW.js} +1 -1
  132. package/dist/chunks/chunk-WP2L2NY2.js +2 -0
  133. package/dist/chunks/chunk-WSOUMXH3.js +24 -0
  134. package/dist/chunks/chunk-WWQNMC7C.js +6 -0
  135. package/dist/chunks/chunk-XMHIQ3SK.js +5 -0
  136. package/dist/chunks/{chunk-5MTN6KXV.js → chunk-XNOMIWEY.js} +1 -1
  137. package/dist/chunks/{chunk-T4LLJC5N.js → chunk-XOB6FKQV.js} +1 -1
  138. package/dist/chunks/chunk-Y766IN7Y.js +2 -0
  139. package/dist/chunks/chunk-YCZZ62C2.js +2 -0
  140. package/dist/chunks/chunk-YM4PSVFW.js +4 -0
  141. package/dist/chunks/chunk-YNQWJWIC.js +10 -0
  142. package/dist/chunks/{chunk-LBBXVOVR.js → chunk-Z3BWCFLV.js} +1 -1
  143. package/dist/chunks/{chunk-WRQEYW3V.js → chunk-ZG6353RM.js} +1 -1
  144. package/dist/chunks/{chunk-PE7UKJXK.js → chunk-ZPTKR3GB.js} +1 -1
  145. package/dist/chunks/{chunk-2VXL6AU3.js → chunk-ZYVHOVKL.js} +1 -1
  146. package/dist/chunks/chunk-ZZHXQCNB.js +22 -0
  147. package/dist/chunks/cli-PSXMIJTF.js +2 -0
  148. package/dist/chunks/{configuration-command-ONGI2BJD.js → configuration-command-XYKMXIWF.js} +1 -1
  149. package/dist/chunks/connected-app-executor-6G2LA3PQ.js +2 -0
  150. package/dist/chunks/connected-evidence-IRXYN6YD.js +2 -0
  151. package/dist/chunks/{connected-starting-assets-OXLT7S4O.js → connected-starting-assets-JONPTII6.js} +1 -1
  152. package/dist/chunks/{connection-HJWE6SEW.js → connection-XMAAGMXJ.js} +1 -1
  153. package/dist/chunks/{continual-CJUZM5ZQ.js → continual-Z7MO2PF6.js} +1 -1
  154. package/dist/chunks/core-commands-WWN7X3XC.js +2 -0
  155. package/dist/chunks/dataset-preparation-authoring-F3OZIQSP.js +4 -0
  156. package/dist/chunks/datasets-2PC2HP7N.js +2 -0
  157. package/dist/chunks/desktop-test-VU6AFAMO.js +3 -0
  158. package/dist/chunks/dist-47AYOIH6.js +2 -0
  159. package/dist/chunks/{dist-X64FC6NA.js → dist-HSC43RG4.js} +1 -1
  160. package/dist/chunks/{dist-DCSLPBO2.js → dist-MXBEBM4D.js} +1 -1
  161. package/dist/chunks/evaluation-coordination-UOWZHHC5.js +2 -0
  162. package/dist/chunks/experiment-improvements-EB2CV5RA.js +2 -0
  163. package/dist/chunks/experiments-SZQYR6MH.js +2 -0
  164. package/dist/chunks/experiments-signal-2KJCP25D.js +2 -0
  165. package/dist/chunks/{extension-C33NUFDL.js → extension-ZM6NI5O5.js} +1 -1
  166. package/dist/chunks/{help-M2VQGPVC.js → help-7HXFWIKS.js} +1 -1
  167. package/dist/chunks/host-profile-evaluation-tools-Y2LQ4WQN.js +2 -0
  168. package/dist/chunks/host-profile-external-dataset-FRIGXOO7.js +2 -0
  169. package/dist/chunks/hosted-app-server-composition-PGKQNDW6.js +2 -0
  170. package/dist/chunks/hosted-experiment-improvement-UXC542SZ.js +3 -0
  171. package/dist/chunks/hosted-harness-runtime-6PEI7F2U.js +2 -0
  172. package/dist/chunks/hosted-profile-candidate-HM44BIUX.js +3 -0
  173. package/dist/chunks/hosted-profile-compiler-UAZ4PHYE.js +2 -0
  174. package/dist/chunks/hosted-profile-evaluation-control-EUL57FAB.js +2 -0
  175. package/dist/chunks/hosted-profile-evaluation-inspection-7USY75Z4.js +3 -0
  176. package/dist/chunks/{hosted-profile-evaluation-preparation-ZAOGDQXO.js → hosted-profile-evaluation-preparation-2LSMZQNA.js} +1 -1
  177. package/dist/chunks/{hosted-tasksets-CVUP7MS6.js → hosted-tasksets-WGXGXJ7E.js} +1 -1
  178. package/dist/chunks/human-review-M26UKGJL.js +2 -0
  179. package/dist/chunks/{import-WLLUIDS6.js → import-6SI4BEKS.js} +2 -2
  180. package/dist/chunks/learning-HM3NWOV5.js +2 -0
  181. package/dist/chunks/local-harness-improvement-runtime-QGWFWNSR.js +2 -0
  182. package/dist/chunks/local-harness-taskset-review-KS4WPMN6.js +2 -0
  183. package/dist/chunks/model-projects-YUAMBQTO.js +2 -0
  184. package/dist/chunks/opchat-AG4CWVY4.js +3 -0
  185. package/dist/chunks/opchat-bounded-chat-IQMP5IIO.js +2 -0
  186. package/dist/chunks/organizations-KDKX77XZ.js +2 -0
  187. package/dist/chunks/{profile-JRS3JNRC.js → profile-O5HL5DTQ.js} +1 -1
  188. package/dist/chunks/project-action-payload-QA24HYGF.js +2 -0
  189. package/dist/chunks/project-agent-XBOOM5TS.js +2 -0
  190. package/dist/chunks/published-experiment-source-GZGN354O.js +2 -0
  191. package/dist/chunks/refiner-profile-service-BJMOYKTC.js +2 -0
  192. package/dist/chunks/{runtime-CBJF5GMB.js → runtime-XBA744HJ.js} +2 -2
  193. package/dist/chunks/sandbox-command-5ECGS7DG.js +2 -0
  194. package/dist/chunks/{sandbox-template-FTANKQIA.js → sandbox-template-27U3FQN7.js} +1 -1
  195. package/dist/chunks/saved-work-KUNVTJ7O.js +2 -0
  196. package/dist/chunks/{send-turn-5UB7ZBJV.js → send-turn-FIPWOXWV.js} +1 -1
  197. package/dist/chunks/src-BLWX6DRG.js +424 -0
  198. package/dist/chunks/{src-4YZF6L6H.js → src-PU7QTFO5.js} +1 -1
  199. package/dist/chunks/standalone-experiment-turn-owner-XIE46VNH.js +2 -0
  200. package/dist/chunks/store-chat-resources-YOEJ2BI6.js +2 -0
  201. package/dist/chunks/{store-continual-support-reviews-GWI2FRII.js → store-continual-support-reviews-FOMYYS25.js} +1 -1
  202. package/dist/chunks/{store-conversation-serving-637AHKBP.js → store-conversation-serving-K324SQTO.js} +1 -1
  203. package/dist/chunks/{store-create-improve-ZG653Z63.js → store-create-improve-3LQMIYAP.js} +1 -1
  204. package/dist/chunks/{store-datasets-IW6F2QZM.js → store-datasets-3KSX7RSO.js} +1 -1
  205. package/dist/chunks/store-evaluation-results-LHCCNNE6.js +7 -0
  206. package/dist/chunks/{store-harness-evaluation-review-settings-I2R3HPO3.js → store-harness-evaluation-review-settings-AAN7KKJ5.js} +1 -1
  207. package/dist/chunks/{store-harness-refinement-candidates-SUT45FQX.js → store-harness-refinement-candidates-3PHL3BUY.js} +1 -1
  208. package/dist/chunks/store-harness-workspaces-ZHNCNWVI.js +2 -0
  209. package/dist/chunks/store-human-review-QJY3ZPPF.js +7 -0
  210. package/dist/chunks/store-learned-preference-migration-validation-X32SRBOM.js +2 -0
  211. package/dist/chunks/{store-learning-MFS4DGQR.js → store-learning-DW3QLQXU.js} +1 -1
  212. package/dist/chunks/{store-learning-credentials-BECWEG2Y.js → store-learning-credentials-67QNTPA7.js} +1 -1
  213. package/dist/chunks/{store-local-experiments-A2UWYPVQ.js → store-local-experiments-QTVHJAEP.js} +1 -1
  214. package/dist/chunks/store-model-batch-review-PBYQZJJJ.js +2 -0
  215. package/dist/chunks/store-model-configuration-3SU73CMS.js +3 -0
  216. package/dist/chunks/store-model-project-preparation-TFCG2F2F.js +2 -0
  217. package/dist/chunks/store-ponder-history-WDLMXBIJ.js +2 -0
  218. package/dist/chunks/store-ponder-hosted-DX6E2BVW.js +4 -0
  219. package/dist/chunks/{store-preference-comparison-HTOXLWKF.js → store-preference-comparison-DWV5XSMY.js} +1 -1
  220. package/dist/chunks/{store-schedules-QVWT7AEB.js → store-schedules-2KUY4T6M.js} +1 -1
  221. package/dist/chunks/{store-sidebar-file-bookmarks-G5Z6NZWL.js → store-sidebar-file-bookmarks-A4XCS7RM.js} +1 -1
  222. package/dist/chunks/{store-sidebar-preferences-27FFMUWU.js → store-sidebar-preferences-V2PKRXUZ.js} +1 -1
  223. package/dist/chunks/{store-subagents-PK7ZWLPR.js → store-subagents-UGVEFA6M.js} +1 -1
  224. package/dist/chunks/store-task-inbox-QABI4ZAH.js +33 -0
  225. package/dist/chunks/{store-task-inventory-IG6HGWSQ.js → store-task-inventory-GEQIZELY.js} +1 -1
  226. package/dist/chunks/store-taskset-drafts-GXABQR5G.js +9 -0
  227. package/dist/chunks/{store-training-NQRRPKEZ.js → store-training-CQV7PL3V.js} +1 -1
  228. package/dist/chunks/{store-training-jobs-F6Y2ZTXP.js → store-training-jobs-XKN6K66J.js} +18 -10
  229. package/dist/chunks/{store-training-models-NRSLSBEW.js → store-training-models-Q7DTTR4S.js} +1 -1
  230. package/dist/chunks/{store-usage-GFHQYT34.js → store-usage-XGAX7NLB.js} +1 -1
  231. package/dist/chunks/{taskset-NYLUYX6K.js → taskset-ARKJQKYQ.js} +1 -1
  232. package/dist/chunks/taskset-packages-X4K65DTW.js +2 -0
  233. package/dist/chunks/taskset-packages-XK7FSD45.js +2 -0
  234. package/dist/chunks/{teams-bot-FMAEDGSD.js → teams-bot-UTQAJA6H.js} +1 -1
  235. package/dist/chunks/training-3IWW4256.js +2 -0
  236. package/dist/chunks/{training-UBX6E7SK.js → training-RVIESURJ.js} +1 -1
  237. package/dist/chunks/training-error-2EWDOQ4G.js +2 -0
  238. package/dist/chunks/training-hosted-PFJHYTEU.js +2 -0
  239. package/dist/chunks/training-hosted-checkpoint-evaluation-JJPP7KFW.js +2 -0
  240. package/dist/chunks/training-hosted-feedback-5B2KJGOT.js +2 -0
  241. package/dist/chunks/training-hosted-learning-Y7NHRY4V.js +2 -0
  242. package/dist/chunks/training-hosted-report-UVGTPDOK.js +2 -0
  243. package/dist/chunks/training-hosted-serving-QAV7ZGGV.js +2 -0
  244. package/dist/chunks/training-hosted-serving-report-OX4A5OKB.js +2 -0
  245. package/dist/chunks/training-hosted-workers-LST4ZUXN.js +2 -0
  246. package/dist/chunks/training-model-start-ROLS3E4V.js +2 -0
  247. package/dist/chunks/training-project-preparation-XWGRY5ME.js +3 -0
  248. package/dist/chunks/{web-search-Q4OQVUNH.js → web-search-7FBUBZ66.js} +1 -1
  249. package/dist/chunks/{workspaces-XREEVSTS.js → workspaces-G3CMY7ZA.js} +1 -1
  250. package/dist/cli.js +2 -2
  251. package/dist/hosted-chat.d.ts +28 -0
  252. package/dist/index.js +1 -1
  253. package/dist/sandbox/url.d.ts +3 -1
  254. package/dist/skills/LICENSE +21 -0
  255. package/dist/skills/manifest.json +168 -0
  256. package/dist/skills/openpond-agent-authoring/SKILL.md +9 -3
  257. package/dist/skills/openpond-agent-authoring/references/profile-layout.md +1 -1
  258. package/dist/skills/openpond-agent-authoring/references/validation-and-repair.md +2 -2
  259. package/dist/skills/openpond-cli/SKILL.md +24 -7
  260. package/dist/skills/openpond-cli/references/compact-resource-tables.md +3 -3
  261. package/dist/skills/openpond-cli/references/diagnose-and-improve.md +4 -2
  262. package/dist/skills/openpond-cli/references/experiments-and-training.md +156 -11
  263. package/dist/skills/openpond-refiner-authoring/SKILL.md +4 -0
  264. package/dist/skills/openpond-skill-authoring/SKILL.md +5 -1
  265. package/dist/skills/openpond-taskset-authoring/SKILL.md +5 -4
  266. package/dist/skills/openpond-taskset-authoring/artifact.json +7 -7
  267. package/dist/skills/openpond-taskset-authoring/references/failure-diagnosis.md +52 -1
  268. package/dist/web/assets/App-DY2R8Z6r.js +53 -0
  269. package/dist/web/assets/App-DpFKLxuA.css +1 -0
  270. package/dist/web/assets/AppDialog-8Y0FYalT.js +1 -0
  271. package/dist/web/assets/AppTerminalPanel-YcnBD5DF.js +2 -0
  272. package/dist/web/assets/{AppToastContext-BB_2hRfw.js → AppToastContext-BiQbbVxq.js} +1 -1
  273. package/dist/web/assets/AppsView-Dtte4h6e.js +1 -0
  274. package/dist/web/assets/{AttachmentTypeIcon-DOAsVQjt.js → AttachmentTypeIcon-DgADV7dn.js} +1 -1
  275. package/dist/web/assets/BrowserSidebar-BUqDvEv9.js +1 -0
  276. package/dist/web/assets/{CartesianChart-DO76yfJb.js → CartesianChart-J4ChOjvG.js} +1 -1
  277. package/dist/web/assets/ChatTimelineEntry-DC93wlDa.js +8 -0
  278. package/dist/web/assets/ChatTimelineEntry-DztFb85D.css +1 -0
  279. package/dist/web/assets/{CollaborationTabs-DNoknVMD.js → CollaborationTabs-CFCpk2Ck.js} +1 -1
  280. package/dist/web/assets/CommandMenu-EPPjB14H.js +1 -0
  281. package/dist/web/assets/CommunityView-Okydjpqm.js +1 -0
  282. package/dist/web/assets/ComposerAttachments-RXCiE88M.js +2 -0
  283. package/dist/web/assets/ComposerCreateImproveStrip-CSngc8-V.js +1 -0
  284. package/dist/web/assets/ConversationImportsSettings-DS73kyfj.js +1 -0
  285. package/dist/web/assets/FilePagePreview-Qc4B0vue.js +2 -0
  286. package/dist/web/assets/GetStartedView-DGFPQ1We.js +1 -0
  287. package/dist/web/assets/GettingStartedDialog-DFBYQdHz.js +1 -0
  288. package/dist/web/assets/GettingStartedDialog-EsH-8Diz.css +1 -0
  289. package/dist/web/assets/{HostedModelLearningReview-B0rbIVvn.js → HostedModelLearningReview-BDu3FlcU.js} +1 -1
  290. package/dist/web/assets/HostedModelLearningSettings-CHaTHwC8.js +1 -0
  291. package/dist/web/assets/HtmlVisual-C7GlEVfH.css +1 -0
  292. package/dist/web/assets/HtmlVisual-D9Mh7xds.js +81 -0
  293. package/dist/web/assets/LabModelVersionDetailPage-DgY7lAu5.js +1 -0
  294. package/dist/web/assets/LabSkillSidebar-BwtlThO7.js +1 -0
  295. package/dist/web/assets/LabsRoute-BV7ZJGEw.js +101 -0
  296. package/dist/web/assets/MainChatThread-pzHKd_YN.js +2 -0
  297. package/dist/web/assets/MainPane-6OlLiKKb.js +10 -0
  298. package/dist/web/assets/MainPane-Dje-hfUM.css +1 -0
  299. package/dist/web/assets/NativeSetupTerminal-3eR9D_R3.css +1 -0
  300. package/dist/web/assets/NativeSetupTerminal-CPDChcMi.js +2 -0
  301. package/dist/web/assets/NativeSkillSidebar-BEJvt5_H.js +1 -0
  302. package/dist/web/assets/NewProjectDialog-CjrjgkTN.js +1 -0
  303. package/dist/web/assets/OutputsPage-jzx93QQ3.js +1 -0
  304. package/dist/web/assets/{PageChrome-BBnWAENV.js → PageChrome-C1M13qG2.js} +1 -1
  305. package/dist/web/assets/ProjectsPage-DZrjlMp2.js +1 -0
  306. package/dist/web/assets/RightChatPanelStack-BsxJg9sy.js +1 -0
  307. package/dist/web/assets/RightSidebarHomePanel-CCVQ9LMB.js +1 -0
  308. package/dist/web/assets/ScheduledWorkPage-Cw1ja2GF.js +1 -0
  309. package/dist/web/assets/{SettingsView-Y8f98GSE.css → SettingsView-Cc0376pY.css} +1 -1
  310. package/dist/web/assets/SettingsView-CckoIki3.js +5 -0
  311. package/dist/web/assets/TasksetDraftEditorPrimitives-ByC8bDjp.js +1 -0
  312. package/dist/web/assets/TeamChatView-OprnSKLF.js +1 -0
  313. package/dist/web/assets/TerminalOverlay-d7A2F9Lx.js +16 -0
  314. package/dist/web/assets/TrainingCreationPanel-Cyn6R6I6.js +1 -0
  315. package/dist/web/assets/{TrainingDraftPanel-HznyNCJ4.js → TrainingDraftPanel-Mpb5e7t5.js} +1 -1
  316. package/dist/web/assets/TrainingRunLineage-PXzWR65d.css +1 -0
  317. package/dist/web/assets/TrainingRunLineage-VcKz7dIR.js +1 -0
  318. package/dist/web/assets/{UsageSettingsSection-C3oZ1UEP.js → UsageSettingsSection-FhYymrfc.js} +2 -2
  319. package/dist/web/assets/WorkSidebarPanel-u87uptH0.js +1 -0
  320. package/dist/web/assets/WorkspaceDiffPanel-B5rlW7bA.js +11 -0
  321. package/dist/web/assets/WorkspaceEnvironmentMenu-C8y3537a.js +35 -0
  322. package/dist/web/assets/WorkspaceFileLocation-LrEWj4UK.js +1 -0
  323. package/dist/web/assets/WorkspaceGitDialogs-NRIMXnkS.js +1 -0
  324. package/dist/web/assets/{WorkspaceMonacoEditor-DfsL1WIi.js → WorkspaceMonacoEditor-CvDGjKAL.js} +3 -3
  325. package/dist/web/assets/WorkspacePdfPreview-BZ0BbnHv.js +2 -0
  326. package/dist/web/assets/{WorkspacePresentationPreview-WuS_B45u.js → WorkspacePresentationPreview-DJrjrvT0.js} +1 -1
  327. package/dist/web/assets/app-models-CUA9XB9U.js +1 -0
  328. package/dist/web/assets/bot-6OhUEmkE.js +1 -0
  329. package/dist/web/assets/browser-sidebar-links-ZyYiYBBd.js +1 -0
  330. package/dist/web/assets/chat-resources-CI8KFVO5.js +1 -0
  331. package/dist/web/assets/{chevron-down-Bnma8EMP.js → chevron-down-jmVA1BIf.js} +1 -1
  332. package/dist/web/assets/chevron-right-BYmDQ7ti.js +1 -0
  333. package/dist/web/assets/chevron-up-CstyLXH3.js +1 -0
  334. package/dist/web/assets/{chunk-GAIDBPFY-BLuHpurI.js → chunk-ONGOAEY6-C__DQmRT.js} +5 -5
  335. package/dist/web/assets/{chunk-24N6A6SF-BUjzKvRC.js → chunk-SQBYHWZU-DumrB9SB.js} +1 -1
  336. package/dist/web/assets/{client-choice-storage-BuNdhYSV.js → client-choice-storage-BdQ_YDuk.js} +1 -1
  337. package/dist/web/assets/{cloud-upload-DOftANif.js → cloud-upload-Ck1ufAr8.js} +1 -1
  338. package/dist/web/assets/connected-app-mentions-D3wRZLwI.js +1 -0
  339. package/dist/web/assets/contracts-BLiqJxBv.js +1 -0
  340. package/dist/web/assets/copy-CPkbMfXt.js +1 -0
  341. package/dist/web/assets/{createLucideIcon-C4b2afqG.js → createLucideIcon-CXQny8HU.js} +1 -1
  342. package/dist/web/assets/{cssMode-0Hn7tCrE.js → cssMode-CYxYl_om.js} +1 -1
  343. package/dist/web/assets/external-link-CDKOLG_v.js +1 -0
  344. package/dist/web/assets/{folder-open-wJwCoIDs.js → folder-open-CEtOb_lK.js} +1 -1
  345. package/dist/web/assets/{folder-plus-DnTN6mcP.js → folder-plus-CVMYZs3e.js} +1 -1
  346. package/dist/web/assets/{git-commit-horizontal-98y7PP6G.js → git-commit-horizontal-DDyhPjxS.js} +1 -1
  347. package/dist/web/assets/{htmlMode-JO_QluNH.js → htmlMode-DoY4V_j0.js} +1 -1
  348. package/dist/web/assets/icons-D7jkCa2d.js +1 -0
  349. package/dist/web/assets/{image-C7HVlg3X.js → image-B-PjDSwU.js} +1 -1
  350. package/dist/web/assets/{index-BsPUniZy.js → index-D9WbJMSq.js} +2 -2
  351. package/dist/web/assets/index-g7UqJhnX.css +1 -0
  352. package/dist/web/assets/{info-BLWDShaz.js → info-CCnw-K3b.js} +1 -1
  353. package/dist/web/assets/intake-contracts-BW0Y0C2R.js +1 -0
  354. package/dist/web/assets/{jsonMode-BfTXJted.js → jsonMode-CeOpZdPj.js} +1 -1
  355. package/dist/web/assets/loader-circle-CPaJeTDy.js +1 -0
  356. package/dist/web/assets/{lspLanguageFeatures-68cAgnuv.js → lspLanguageFeatures-DAbgLCqZ.js} +1 -1
  357. package/dist/web/assets/{maximize-2-DUWvLap6.js → maximize-2-BZX38cpr.js} +1 -1
  358. package/dist/web/assets/message-square-CvgSecgD.js +1 -0
  359. package/dist/web/assets/{monaco.contribution-_3aU1TTb.js → monaco.contribution-CF2JDhi4.js} +2 -2
  360. package/dist/web/assets/{monaco.contribution-CWeY6ia1.js → monaco.contribution-cbDqt48m.js} +2 -2
  361. package/dist/web/assets/{monaco.contribution-h8U8HXFT.js → monaco.contribution-m2ze2EsL.js} +2 -2
  362. package/dist/web/assets/{monaco.contribution-DOiiDDen.js → monaco.contribution-yeyow_-Q.js} +2 -2
  363. package/dist/web/assets/{monitor-B6OuAu13.js → monitor-By0s4hxb.js} +1 -1
  364. package/dist/web/assets/{paperclip-DSHxP9CY.js → paperclip-BJ2QgJLa.js} +1 -1
  365. package/dist/web/assets/{pdf-RXlFwNte.js → pdf-C4x-1jjP.js} +1 -1
  366. package/dist/web/assets/pdf.worker.min-BrEVksTu.js +1 -0
  367. package/dist/web/assets/play-D_SuGDBM.js +1 -0
  368. package/dist/web/assets/plus-yw95Iaj8.js +1 -0
  369. package/dist/web/assets/{presentation-C9WnPDVr.js → presentation-I86G1Gd9.js} +1 -1
  370. package/dist/web/assets/profile-agent-labels-Duh96b8x.js +1 -0
  371. package/dist/web/assets/{python-BQXo7wMt.js → python-CqFTPj8r.js} +1 -1
  372. package/dist/web/assets/{refresh-cw-NXOER_CD.js → refresh-cw-Dga35Eay.js} +1 -1
  373. package/dist/web/assets/requests-BCbaFiqV.js +1 -0
  374. package/dist/web/assets/{reward-checks-5AOStF27.js → reward-checks-Bcq9ETCA.js} +1 -1
  375. package/dist/web/assets/{save-BxXc21N6.js → save-BLKjYtzR.js} +1 -1
  376. package/dist/web/assets/settings-D7C-Auyi.js +21 -0
  377. package/dist/web/assets/settings-lists-DMKA1lCN.js +5 -0
  378. package/dist/web/assets/square-BY5lG2Ol.js +1 -0
  379. package/dist/web/assets/square-terminal-B-n7vUex.js +1 -0
  380. package/dist/web/assets/submit-issue-command-B7Hrt2tU.js +3 -0
  381. package/dist/web/assets/{toggleHighContrast-Di1cRuQ4.js → toggleHighContrast-BhmBE5XE.js} +1 -1
  382. package/dist/web/assets/training-QrdkRQZQ.js +2 -0
  383. package/dist/web/assets/{training-model-data-CmVo80ZR.js → training-model-data-DB-jg6L_.js} +12 -12
  384. package/dist/web/assets/{tsMode-PxisJRYB.js → tsMode-BSWEII2p.js} +1 -1
  385. package/dist/web/assets/ui-theme.generated-D-mc26qt.js +144 -0
  386. package/dist/web/assets/{upload-NXasN1wU.js → upload-C4MPhQn8.js} +1 -1
  387. package/dist/web/assets/{useAccountSettings-Dqqt1vUY.js → useAccountSettings-9oqWdRLs.js} +1 -1
  388. package/dist/web/assets/useAgentInventory-isO79ui9.js +1 -0
  389. package/dist/web/assets/{useLocalAgentSchedules-Cc0M_qax.js → useLocalAgentSchedules-CZX6PxoK.js} +1 -1
  390. package/dist/web/assets/{useQuery-ByaRC9SK.js → useQuery-BD0Uexmh.js} +1 -1
  391. package/dist/web/assets/{wifi-off-aVJ3AvT_.js → wifi-off-Cloe0WuQ.js} +1 -1
  392. package/dist/web/assets/{workers-u92Boudu.js → workers-BXagz5eg.js} +1 -1
  393. package/dist/web/assets/x-Dqpel42h.js +1 -0
  394. package/dist/web/assets/{yaml-BxQUS0ew.js → yaml-sBdvVbCc.js} +1 -1
  395. package/dist/web/index.html +12 -3
  396. package/docs/command-reference.md +49 -5
  397. package/package.json +6 -2
  398. package/dist/chunks/actions-command-LOHNQUWP.js +0 -2
  399. package/dist/chunks/app-server-connected-apps-Q2VWWJNX.js +0 -2
  400. package/dist/chunks/app-server-harness-services-2PSZBT7U.js +0 -2
  401. package/dist/chunks/app-server-runtime-B6BAJA6L.js +0 -2
  402. package/dist/chunks/apps-7PIBF32Q.js +0 -2
  403. package/dist/chunks/chunk-3TYCIYW6.js +0 -17
  404. package/dist/chunks/chunk-4GZ2FPB5.js +0 -2
  405. package/dist/chunks/chunk-4M3YW3EQ.js +0 -13
  406. package/dist/chunks/chunk-4N3UF3U5.js +0 -2
  407. package/dist/chunks/chunk-4P3X2RXA.js +0 -2
  408. package/dist/chunks/chunk-4RHM4WN2.js +0 -2
  409. package/dist/chunks/chunk-6DCXAXVD.js +0 -22
  410. package/dist/chunks/chunk-AWPYTDH4.js +0 -4
  411. package/dist/chunks/chunk-BLKTUFGB.js +0 -2
  412. package/dist/chunks/chunk-BN5AVRUG.js +0 -2
  413. package/dist/chunks/chunk-D5ADDBS5.js +0 -2
  414. package/dist/chunks/chunk-DGPGOBYZ.js +0 -5
  415. package/dist/chunks/chunk-E3EKBPCB.js +0 -2
  416. package/dist/chunks/chunk-E67M5WGY.js +0 -2
  417. package/dist/chunks/chunk-EIIGTADO.js +0 -2
  418. package/dist/chunks/chunk-F5JDBDYL.js +0 -2
  419. package/dist/chunks/chunk-FWIPHEVA.js +0 -12
  420. package/dist/chunks/chunk-GLVR74PX.js +0 -2
  421. package/dist/chunks/chunk-HZLV773Y.js +0 -22
  422. package/dist/chunks/chunk-JEVA7YQL.js +0 -3
  423. package/dist/chunks/chunk-KC7I6E6W.js +0 -2
  424. package/dist/chunks/chunk-M4ZRCRJM.js +0 -10
  425. package/dist/chunks/chunk-N663LL27.js +0 -2
  426. package/dist/chunks/chunk-NR5VASQB.js +0 -2
  427. package/dist/chunks/chunk-OJSK4NSW.js +0 -151
  428. package/dist/chunks/chunk-OZ6LRNRE.js +0 -2
  429. package/dist/chunks/chunk-Q324ZA5M.js +0 -2
  430. package/dist/chunks/chunk-UBCLPZSQ.js +0 -4
  431. package/dist/chunks/chunk-UJBEWIR3.js +0 -8
  432. package/dist/chunks/chunk-V67IFV26.js +0 -86
  433. package/dist/chunks/chunk-VSUHJ46L.js +0 -18
  434. package/dist/chunks/chunk-VWJ5IYQP.js +0 -2
  435. package/dist/chunks/chunk-X3WEQL3O.js +0 -2
  436. package/dist/chunks/chunk-XK7SPL63.js +0 -2
  437. package/dist/chunks/chunk-XLULTQLZ.js +0 -12
  438. package/dist/chunks/chunk-YR5ID2SS.js +0 -2
  439. package/dist/chunks/chunk-ZBBVRYU3.js +0 -6
  440. package/dist/chunks/chunk-ZHFH2TZN.js +0 -2
  441. package/dist/chunks/chunk-ZZWAQBA2.js +0 -2
  442. package/dist/chunks/cli-WC45SI7E.js +0 -2
  443. package/dist/chunks/connected-app-executor-TZJB25UZ.js +0 -2
  444. package/dist/chunks/connected-evidence-4J3YXU4O.js +0 -2
  445. package/dist/chunks/core-commands-JGXU6B4C.js +0 -2
  446. package/dist/chunks/dataset-preparation-authoring-DFGJBMVF.js +0 -4
  447. package/dist/chunks/datasets-MNHZAZIB.js +0 -2
  448. package/dist/chunks/desktop-test-P23MHAIG.js +0 -3
  449. package/dist/chunks/dist-IIFTZWNR.js +0 -2
  450. package/dist/chunks/evaluation-coordination-6NQEH5WU.js +0 -2
  451. package/dist/chunks/experiment-improvements-M27Z5OF4.js +0 -2
  452. package/dist/chunks/experiments-IWSCFDBB.js +0 -2
  453. package/dist/chunks/experiments-signal-R3NNH7WR.js +0 -2
  454. package/dist/chunks/host-profile-evaluation-tools-EFB2YIK2.js +0 -2
  455. package/dist/chunks/host-profile-external-dataset-KSNREH3Q.js +0 -2
  456. package/dist/chunks/hosted-app-server-composition-VV545TYL.js +0 -2
  457. package/dist/chunks/hosted-experiment-improvement-NYLADI7S.js +0 -3
  458. package/dist/chunks/hosted-harness-runtime-Z54E5MD7.js +0 -2
  459. package/dist/chunks/hosted-profile-candidate-37ZFY2LH.js +0 -3
  460. package/dist/chunks/hosted-profile-compiler-SW2RWTDZ.js +0 -2
  461. package/dist/chunks/hosted-profile-evaluation-control-UQBMML6K.js +0 -2
  462. package/dist/chunks/hosted-profile-evaluation-inspection-YASS4T6L.js +0 -3
  463. package/dist/chunks/human-review-IJETDOWB.js +0 -2
  464. package/dist/chunks/learning-KVLTMRLD.js +0 -2
  465. package/dist/chunks/local-harness-improvement-runtime-KB4OP3SM.js +0 -2
  466. package/dist/chunks/local-harness-taskset-review-SUDEUGUU.js +0 -2
  467. package/dist/chunks/model-projects-AVBQDNYG.js +0 -2
  468. package/dist/chunks/opchat-KSOJEL4W.js +0 -3
  469. package/dist/chunks/organizations-DJRJWC5I.js +0 -2
  470. package/dist/chunks/project-action-payload-SQ5BSQHY.js +0 -2
  471. package/dist/chunks/project-agent-2KNJFNZI.js +0 -2
  472. package/dist/chunks/published-experiment-source-LFYHKFAO.js +0 -2
  473. package/dist/chunks/refiner-profile-service-UWI4NAZ3.js +0 -2
  474. package/dist/chunks/sandbox-command-IIGTPYN3.js +0 -2
  475. package/dist/chunks/saved-work-QA46KCME.js +0 -2
  476. package/dist/chunks/src-E7NWAN5B.js +0 -420
  477. package/dist/chunks/standalone-experiment-turn-owner-SQJ5HXDZ.js +0 -2
  478. package/dist/chunks/store-chat-resources-CGW7PDCG.js +0 -2
  479. package/dist/chunks/store-evaluation-results-V5J6L4NV.js +0 -7
  480. package/dist/chunks/store-harness-workspaces-HHMM6GNK.js +0 -2
  481. package/dist/chunks/store-human-review-V5H4QDHR.js +0 -7
  482. package/dist/chunks/store-learned-preference-migration-validation-KOCW5NOZ.js +0 -2
  483. package/dist/chunks/store-model-batch-review-KMYPYWJR.js +0 -2
  484. package/dist/chunks/store-model-configuration-UXNC4PGY.js +0 -3
  485. package/dist/chunks/store-task-inbox-LNDCZOYE.js +0 -33
  486. package/dist/chunks/store-taskset-drafts-TA6X245D.js +0 -9
  487. package/dist/chunks/taskset-packages-I7I5KBFP.js +0 -2
  488. package/dist/chunks/training-error-AYOGHHL2.js +0 -2
  489. package/dist/chunks/training-hosted-4R4QTSAN.js +0 -2
  490. package/dist/chunks/training-hosted-report-UQVK6FTG.js +0 -2
  491. package/dist/chunks/training-hosted-workers-KI767T4Y.js +0 -2
  492. package/dist/skills/openpond-desktop-harness/SKILL.md +0 -113
  493. package/dist/skills/openpond-desktop-harness/agents/openai.yaml +0 -4
  494. package/dist/web/assets/App-Df7uYQGj.css +0 -1
  495. package/dist/web/assets/App-Yy3l2sdD.js +0 -56
  496. package/dist/web/assets/AppTerminalPanel-Dqr6VS3I.js +0 -2
  497. package/dist/web/assets/AppsView-27Fl_-49.js +0 -1
  498. package/dist/web/assets/BrowserSidebar-bnI3sSZO.js +0 -1
  499. package/dist/web/assets/ChatTimelineEntry-IKzZsHoI.js +0 -1
  500. package/dist/web/assets/CommandMenu-CBY2AJxV.js +0 -1
  501. package/dist/web/assets/CommunityView-CFKM7FTY.js +0 -1
  502. package/dist/web/assets/ComposerAttachments-BdjBddKf.js +0 -2
  503. package/dist/web/assets/ComposerCreateImproveStrip-ViJ5E0We.js +0 -1
  504. package/dist/web/assets/ConversationImportsSettings-xLl-7G9R.js +0 -1
  505. package/dist/web/assets/FilePagePreview-CTHuPzJt.js +0 -2
  506. package/dist/web/assets/GetStartedView-DvV_RMgM.js +0 -1
  507. package/dist/web/assets/GettingStartedDialog-B1jFmfgd.js +0 -1
  508. package/dist/web/assets/GettingStartedDialog-C73Bdcz2.css +0 -1
  509. package/dist/web/assets/HostedModelLearningSettings-DzAiutjq.js +0 -1
  510. package/dist/web/assets/LabModelVersionDetailPage-CF8FkRUY.js +0 -1
  511. package/dist/web/assets/LabSkillSidebar-gjbl9Nlv.js +0 -1
  512. package/dist/web/assets/LabsRoute-DOnw39du.js +0 -101
  513. package/dist/web/assets/MainChatThread-BUKup-JB.js +0 -2
  514. package/dist/web/assets/MainPane-BpE7AKXu.js +0 -92
  515. package/dist/web/assets/MainPane-CuBUBA9F.css +0 -1
  516. package/dist/web/assets/NativeSkillSidebar-Br5Lk6iU.js +0 -1
  517. package/dist/web/assets/NewProjectDialog-DyuKPOvF.js +0 -1
  518. package/dist/web/assets/OutputsPage-Dl63CVrw.js +0 -1
  519. package/dist/web/assets/ProjectsPage-BNF1TiyR.js +0 -1
  520. package/dist/web/assets/RightChatPanelStack-CxVAAbp-.js +0 -1
  521. package/dist/web/assets/RightSidebarHomePanel-D46ktZg-.js +0 -1
  522. package/dist/web/assets/ScheduledWorkPage-Cp0Hf-hs.js +0 -1
  523. package/dist/web/assets/SettingsView-BT57Q5Wx.js +0 -5
  524. package/dist/web/assets/TeamChatView-BmxTJ9E5.js +0 -1
  525. package/dist/web/assets/TerminalOverlay-D-Yq8av_.js +0 -16
  526. package/dist/web/assets/TrainingCreationPanel-CwfNPj_G.js +0 -1
  527. package/dist/web/assets/TrainingMetricWorkbench-BmzHLwIP.js +0 -1
  528. package/dist/web/assets/WorkSidebarPanel-myTA9tsh.js +0 -1
  529. package/dist/web/assets/WorkspaceDiffPanel-D0dzFgzW.js +0 -11
  530. package/dist/web/assets/WorkspaceEnvironmentMenu-AUzME1eX.js +0 -35
  531. package/dist/web/assets/WorkspaceFileLocation-Ai8Tz2Mz.js +0 -1
  532. package/dist/web/assets/WorkspaceGitDialogs-D-UCCckC.js +0 -1
  533. package/dist/web/assets/app-models-BviS9b7U.js +0 -1
  534. package/dist/web/assets/browser-sidebar-links-ujSvTf5h.js +0 -1
  535. package/dist/web/assets/chat-resources-CItQ4mZD.js +0 -1
  536. package/dist/web/assets/chevron-right-Cxv_xBz5.js +0 -1
  537. package/dist/web/assets/contracts-BHTOD1nd.js +0 -1
  538. package/dist/web/assets/git-dialogs-C631EFyO.css +0 -1
  539. package/dist/web/assets/icons-kaq6k88m.js +0 -1
  540. package/dist/web/assets/index-DUMDOdB2.css +0 -1
  541. package/dist/web/assets/play-BPPQoqMl.js +0 -1
  542. package/dist/web/assets/plus-D18vYzHF.js +0 -1
  543. package/dist/web/assets/settings-BKmRueaw.js +0 -21
  544. package/dist/web/assets/settings-lists-DMNPkGYk.js +0 -5
  545. package/dist/web/assets/square-Da8RuqW4.js +0 -1
  546. package/dist/web/assets/training-managed-adapter-81RrdT1k.js +0 -1
  547. package/dist/web/assets/ui-theme.generated-R0MY_Jy0.js +0 -136
  548. package/dist/web/assets/useAgentInventory-BV4CUWzJ.js +0 -1
  549. /package/dist/chunks/{chunk-GLDYJM7O.js → chunk-T4QXKU5Y.js} +0 -0
@@ -0,0 +1,6 @@
1
+ import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
+ import{a as he,b as ye,d as Ae,e as D}from"./chunk-4N4EH3RJ.js";import{a as L,b as ge,c as Pe,d as we,e as Oe}from"./chunk-HFJUXKT5.js";import{j as xe}from"./chunk-5ZBLCWEJ.js";import{d as N,e as E}from"./chunk-JCLTFDVW.js";import{E as ae,h as re}from"./chunk-BKEDG3A4.js";import{d as me}from"./chunk-OE22TAXP.js";import{a}from"./chunk-FTQLQJQV.js";var Le=new URL(E).hostname,be=new URL(N).hostname,$e=`${E}/opchat/v1`;function l(e){if(!e)return null;let t=e.trim();return t?t.replace(/\/+$/,""):null}a(l,"normalizeBaseUrl");function X(e){let t=l(e);if(!t)return null;try{let o=new URL(t).hostname.toLowerCase();if(o===Le)return E;if(o===be||o===`www.${be}`||o==="openpond.live"||o==="www.openpond.live")return E;if(o.startsWith("api."))return t}catch{return null}return null}a(X,"mapUiBaseToApiBase");function Y(e,t){let n=l(process.env.OPENPOND_API_URL);if(n)return n;let o=l(e?.apiBaseUrl);if(o)return o;let r=l(t.apiBaseUrl);if(r)return r;let s=X(process.env.OPENPOND_BASE_URL);return s||(X(e?.baseUrl||t.baseUrl)??E)}a(Y,"resolvePublicApiBaseUrl");function Q(e,t,n){return He(e,t,n)}a(Q,"resolveHostedChatApiBaseUrl");function He(e,t,n){let o=typeof process<"u"?process.env:{};return J(o.OPENPOND_OPCHAT_API_URL)??J(e?.chatApiBaseUrl??t.chatApiBaseUrl)??J(o.OPENPOND_CHAT_API_URL)??Me(n)}a(He,"resolveOpChatApiBaseUrl");function J(e){let t=l(e);if(!t)return null;try{let n=new URL(t),o=n.pathname.split("/").filter(Boolean),r=o.findIndex(i=>i.toLowerCase()==="opchat");return r>=0?(n.pathname=`/${[...o.slice(0,r+1),"v1"].join("/")}`,n.search="",n.hash="",l(n.toString())??null):o.findIndex(i=>i.toLowerCase()==="v1")>=0?(n.pathname="/opchat/v1",n.search="",n.hash="",l(n.toString())??null):(n.pathname=`${n.pathname.replace(/\/+$/,"")}/opchat/v1`.replace(/\/{2,}/g,"/"),n.search="",n.hash="",l(n.toString())??null)}catch{return null}}a(J,"normalizeOpChatApiBaseUrl");function Me(e){return J(e)??$e}a(Me,"opChatBaseFromPublicApiBase");function $(e){return e?.trim()?e.trim():"production"}a($,"deriveEnvironment");function Z(e,t=process.env){let n=[e?.apiKey,e?.session?.token,e?.token,t.OPENPOND_API_KEY];for(let o of n){let r=typeof o=="string"?o.trim():"";if(r)return r}return null}a(Z,"accountToken");function P(e,t){return!!(e&&t&&e.toLowerCase()===t.toLowerCase())}a(P,"handleEquals");function b(e,t){return l(e)===l(t)}a(b,"baseUrlEquals");function q(e,t){return`${e?.trim().toLowerCase()||""}|${l(t)??"default"}`}a(q,"profileKey");function ee(e){return l(e?.baseUrl)}a(ee,"selectorBaseUrl");function v(e){let t=l(e.baseUrl);return t?{handle:e.handle,baseUrl:t}:{handle:e.handle}}a(v,"selectorFromAccount");function A(e){let t=typeof e?.handle=="string"?e.handle.trim():"";if(!t)return null;let n=l(e?.baseUrl);return n?{handle:t,baseUrl:n}:{handle:t}}a(A,"normalizeActiveProfile");function U(e,t){if(!P(e.handle,t.handle))return!1;let n=ee(t);return n?b(e.baseUrl,n):!l(e.baseUrl)}a(U,"accountMatchesSelector");function se(e,t){if(!P(e.handle,t.handle))return!1;let n=ee(t);return n?b(e.baseUrl,n):!l(e.baseUrl)}a(se,"profileMatchesSelector");function Ue(e,t,n){let o=Array.isArray(e.accounts)?e.accounts:[],r=t||process.env.OPENPOND_ACCOUNT?A({handle:t||process.env.OPENPOND_ACCOUNT||"",baseUrl:n??process.env.OPENPOND_BASE_URL??null}):A(e.activeProfile);if(r){let s=o.find(c=>U(c,r));if(s)return s;let i=o.filter(c=>P(c.handle,r.handle));return i.length===1?i[0]??null:null}return o[0]?o[0]:null}a(Ue,"findActiveAccount");function ke(e){let t=Array.isArray(e.accounts)?e.accounts:[],n=A(e.activeProfile)??(t[0]?v(t[0]):null);return ie(t.map(o=>({handle:o.handle,baseUrl:l(o.baseUrl),apiBaseUrl:l(o.apiBaseUrl),chatApiBaseUrl:l(o.chatApiBaseUrl),environment:$(o.environment),isActive:n?U(o,n):!1,hasApiKey:!!o.apiKey?.trim(),hasSessionToken:!!(o.session?.token?.trim()||o.token?.trim()),sessionAppId:o.session?.appId??null,sessionConversationId:o.session?.conversationId??null})))}a(ke,"fallbackProfilesFromConfig");function ie(e){let t=new Map;for(let n of e){let o=l(n.baseUrl),r=`${n.handle.toLowerCase()}|${o??"default"}`,s={...n,baseUrl:o,apiBaseUrl:l(n.apiBaseUrl),chatApiBaseUrl:l(n.chatApiBaseUrl),environment:$(n.environment),isActive:n.isActive},i=t.get(r);(!i||s.isActive&&!i.isActive||s.hasApiKey&&!i.hasApiKey)&&t.set(r,s)}return Array.from(t.values())}a(ie,"normalizeProfiles");function Ee(e){return e.hasApiKey||e.hasSessionToken?"signed_in":"signed_out"}a(Ee,"profileAuthHealth");function ze(e,t){return e?{reachable:e.reachable,authenticated:e.authenticated,apiBase:e.apiBase||t,latencyMs:e.latencyMs,status:e.status,service:e.service,checkedAt:e.checkedAt,error:e.error??null}:null}a(ze,"normalizeHealth");function Be(e){let t=e?.account;return t?{id:t.id??null,email:t.email??null,name:t.name??null,handle:t.handle??null,image:t.image??null,timezone:t.timezone??null,isAdmin:t.isAdmin??null,isVerified:t.isVerified??null,dailyAgentAppId:t.dailyAgentAppId??null,dailyAgentDeploymentId:t.dailyAgentDeploymentId??null,credits:t.credits??null}:null}a(Be,"normalizeProfile");function Fe(e){return(e??[]).map(t=>({...t,id:t.id||t.userProductId||t.openPondProductId||t.name,name:t.name,type:t.type,status:t.status,isActive:t.isActive??null,price:t.price??null,currency:t.currency??null,credits:t.credits??null}))}a(Fe,"normalizeProducts");function je(e){return e.handle.trim().toLowerCase()==="default"&&!l(e.baseUrl)&&!e.hasApiKey&&!e.hasSessionToken}a(je,"isEmptyDefaultProfile");function Ke(e){let t=e?.trim();return t?t.length>=12?`\u2022\u2022\u2022\u2022\u2022\u2022${t.slice(-6)}`:"\u2022\u2022\u2022\u2022\u2022\u2022":null}a(Ke,"apiKeyHint");function qe(e){return e?.auth?.authType!=="openpond-api-key"||!e.auth.keyAccess?null:{ownerType:e.auth.keyAccess.ownerType,teamId:e.auth.keyAccess.teamId,scopes:e.auth.scopes}}a(qe,"apiKeyAccess");function H(e){let{config:t,profiles:n,account:o,token:r,apiBaseUrl:s,accountResponse:i,accountProfiles:c,health:m,authFailed:g,error:f}=e,w=Q(o,t,s),h=Be(i??null),C=A(t.activeProfile),_=(o?v(o):null)??C,O=h?.handle||o?.handle||_?.handle||null,I=(_?n.find(p=>se(p,_)):null)??n.find(p=>p.isActive)??null,y=g?"auth_error":r?"signed_in":"signed_out",d=h?.name||h?.handle||h?.email||O||"Signed out",R=l(I?.baseUrl||o?.baseUrl||N),k=$(I?.environment||o?.environment),x=A(_)??(O?A({handle:O,baseUrl:I?.baseUrl??o?.baseUrl}):null),j=(n.length>0?n:O?[{handle:O,baseUrl:ee(x)??l(o?.baseUrl),apiBaseUrl:s,chatApiBaseUrl:w,environment:k,isActive:!0,hasApiKey:!!r,hasSessionToken:!1,sessionAppId:null,sessionConversationId:null}]:[]).filter(p=>!je(p));return{state:y,activeProfile:x,label:d,email:h?.email??null,avatarUrl:h?.image??null,environment:k,baseUrl:R,apiBaseUrl:s,chatApiBaseUrl:w,creditsLabel:h?.credits??null,profile:h,products:Fe(i?.products),apiHealth:ze(m??null,s),accounts:j.map(p=>{let T=l(p.baseUrl),De=t.accounts?.find(fe=>P(fe.handle,p.handle)&&b(fe.baseUrl,T)),oe=c?.[q(p.handle,T)]??null,K=Be(oe?.response??null);return{handle:p.handle,baseUrl:T,apiBaseUrl:l(p.apiBaseUrl),chatApiBaseUrl:l(p.chatApiBaseUrl),environment:$(p.environment),isActive:x?se(p,x):!1,authHealth:oe?.authFailed?"auth_error":Ee(p),displayLabel:K?.name||K?.handle||K?.email||p.handle,email:K?.email??null,avatarUrl:K?.image??null,apiKeyHint:Ke(De?.apiKey),apiKeyAccess:qe(oe?.response??null)}}),error:f??m?.error??null}}a(H,"toAccountState");async function Ge(e){try{return ie(await Pe())}catch{return ke(e)}}a(Ge,"loadProfiles");async function u(e,t){let n=await ge(),o=await Ge(n),r=Ue(n,e,t),s=Z(r),i=Y(r,n),c=Q(r,n,i);return{config:n,profiles:o,account:r,token:s,apiBaseUrl:i,chatApiBaseUrl:c,accountState:H({config:n,profiles:o,account:r,token:s,apiBaseUrl:i})}}a(u,"loadOpenPondAccountContext");async function We(e){let t=l(e.baseUrl);return await we(e.handle,{baseUrl:t}),u(e.handle,t)}a(We,"switchOpenPondAccount");import{createHash as Ve}from"node:crypto";function le(e){return Ve("sha256").update(JSON.stringify([e.accountState.activeProfile,e.apiBaseUrl,e.chatApiBaseUrl,e.token])).digest("hex")}a(le,"authorityKey");var G=null,M=null;async function Je(e){let t=le(e);if(G?.key===t&&G.expiresAt>Date.now())return G.response;if(M?.key===t)return M.promise;G=null;let n={key:t,promise:D(e.apiBaseUrl,e.token)};M=n;try{let o=await n.promise;return M===n&&o.account?.id&&(G={key:t,response:o,expiresAt:Date.now()+5e3}),o}finally{M===n&&(M=null)}}a(Je,"authenticate");async function Xe(){let e=await u();if(!e.token)return e;let t=await Je(e),n=await u();if(le(n)!==le(e))throw new Error("openpond_account_authority_changed");if(!t.account?.id)throw new Error("openpond_authenticated_owner_unavailable");return{...n,accountState:H({...n,accountResponse:t})}}a(Xe,"loadAuthenticatedOpenPondAccountContext");import{randomUUID as Ye}from"node:crypto";function z(e){return e instanceof Error?e.message:String(e)}a(z,"errorMessage");var Qe=15e3;function Ze(e){return e===ae?"OpenPond Chat":e==="deepseek-v4-flash"?"DeepSeek V4 Flash":e.replace(/[-_/]+/g," ")}a(Ze,"displayNameForHostedModel");function et(e){let t=typeof e.id=="string"?e.id:null;return t?{id:t,displayName:Ze(t),ownedBy:typeof e.owned_by=="string"?e.owned_by:null,streaming:!0,raw:e}:null}a(et,"normalizeHostedModel");async function tt(){let e=await u();if(!e.token)return{models:[],error:"No OpenPond API key or session token is configured."};try{return{models:(await rt({apiBaseUrl:e.chatApiBaseUrl,token:e.token})).data.map(o=>et(o)).filter(o=>!!o),error:null}}catch(t){return{models:[],error:z(t)}}}a(tt,"loadOpenPondHostedModels");async function nt(){let e=await u();if(!e.token)return{catalog:null,error:"No OpenPond API key or session token is configured."};let t=new AbortController,n=setTimeout(()=>{t.abort(new Error("OpenPond provider catalog request timed out."))},Qe);try{return{catalog:await Se({apiBaseUrl:e.chatApiBaseUrl,token:e.token,signal:t.signal}),error:null}}catch(o){return{catalog:null,error:z(o)}}finally{clearTimeout(n)}}a(nt,"loadOpenPondProviderCatalog");async function*ot(e){let t=await u();if(!t.token)throw new Error("OpenPond is signed out. Add an account in Settings before using OpenPond Chat.");yield*Ce({apiBaseUrl:t.chatApiBaseUrl,token:t.token,model:e.model||ae,messages:e.messages,tools:e.tools,toolChoice:e.toolChoice,requestId:e.requestId,reasoningEffort:e.reasoningEffort,maxTokens:e.maxTokens,temperature:e.temperature,topP:e.topP,signal:e.signal})}a(ot,"streamOpenPondHostedChatTurn");async function rt(e){let t=ce(e.apiBaseUrl,"models"),n=await fetch(t,{method:"GET",headers:ue(e.token,"application/json"),signal:e.signal});if(!n.ok)throw new Error(`OpenPond OpChat model list failed: ${n.status} ${await de(n)}`);return await n.json()}a(rt,"listOpChatModels");async function Se(e){let t=ce(e.apiBaseUrl,"provider-catalog"),n=await fetch(t,{method:"GET",headers:ue(e.token,"application/json"),signal:e.signal});if(!n.ok)throw new Error(`OpenPond OpChat provider catalog failed: ${n.status} ${await de(n)}`);let o=await n.json();return!o||typeof o!="object"||!Array.isArray(o.providers)?re.parse(o):re.parse({...o,providers:o.providers.filter(r=>r!==null&&typeof r=="object"&&me.safeParse(r.id).success)})}a(Se,"listOpChatProviderCatalog");async function*Ce(e){let t=ce(e.apiBaseUrl,"chat/completions"),n=await fetch(t,{method:"POST",headers:ue(e.token,"text/event-stream",e.requestId),body:JSON.stringify(ut(e,!0)),signal:e.signal});if(!n.ok)throw new Error(`OpenPond OpChat request failed: ${n.status} ${await de(n)}`);if(!n.body)throw new Error("OpenPond OpChat request failed: streaming response body is missing.");let o=new Map,r=!1,s=null,i={},c="",m=null,g=at(n.headers),f=n.body.getReader(),w=new TextDecoder,h="",C=[],ne=a(()=>{if(C.length===0)return[];let y=C.join(`
3
+ `);if(C=[],y==="[DONE]")return r=!0,[];let d;try{d=JSON.parse(y)}catch{throw new Error("OpenPond OpChat request failed: malformed streaming event.")}if(d&&typeof d=="object"&&"error"in d)throw new Error(`OpenPond OpChat request failed: ${Ie(d)}`);i=d;let R=d&&typeof d=="object"?d:{},k=Array.isArray(R.choices)?R.choices:[],x=k[0]&&typeof k[0]=="object"?k[0]:{},V=x.delta&&typeof x.delta=="object"?x.delta:{},j=[],p=ve(V.reasoning_content);p&&(c+=p,j.push({type:"reasoning_delta",text:p,raw:d}));let T=ve(V.content);return T&&j.push({type:"text_delta",text:T,raw:d}),lt(o,V.tool_calls),s=F(x.finish_reason)??s,m=ft(d)??m,j},"consumeEvent"),_=a(y=>{let d=y.endsWith("\r")?y.slice(0,-1):y;return d?d.startsWith(":")?[]:(d.startsWith("data:")&&C.push(d.slice(5).trimStart()),[]):ne()},"consumeLine");try{for(;;){let y=await f.read();if(y.done)break;h+=w.decode(y.value,{stream:!0});let d=h.split(`
4
+ `);h=d.pop()??"";for(let R of d)for(let k of _(R))yield k}if(h+=w.decode(),h)for(let y of _(h))yield y;for(let y of ne())yield y}finally{f.releaseLock()}if(!r)throw new Error("OpenPond OpChat request failed: stream ended before [DONE].");let O=ct(o);O.length>0&&(yield{type:"tool_call_delta",toolCalls:O,raw:i}),O.length>0&&c&&(yield{type:"continuation",continuation:{kind:"chat_completions_reasoning",reasoningContent:c},raw:i});let I=st(m,g);I&&(yield{type:"usage",usage:I,raw:i}),yield{type:"finish",finishReason:s,raw:i}}a(Ce,"streamOpChatChatCompletion");function at(e){let t=_e(e,["fireworks-prompt-tokens","prompt-tokens"]),n=_e(e,["fireworks-cached-prompt-tokens","cached-prompt-tokens"]);return n===null?null:{...t===null?{}:{prompt_tokens:t},cached_input_tokens:n,cache_telemetry_source:"provider_response_headers"}}a(at,"cacheUsageFromResponseHeaders");function _e(e,t){for(let n of t){let o=e.get(n);if(o===null||!/^\d+$/.test(o.trim()))continue;let r=Number(o);if(Number.isSafeInteger(r)&&r>=0)return r}return null}a(_e,"firstHeaderTokenCount");function st(e,t){if(!t||it(e))return e;let n={...e??{},cached_input_tokens:t.cached_input_tokens,cache_telemetry_source:"provider_response_headers"};return B(e?.prompt_tokens)===null&&t.prompt_tokens!==void 0&&(n.prompt_tokens=t.prompt_tokens),n}a(st,"usageWithResponseHeaderCache");function it(e){return e?B(e.cached_input_tokens)!==null||B(e.cache_read_input_tokens)!==null||B(e.cache_creation_input_tokens)!==null||B(e.prompt_cache_hit_tokens)!==null||B(e.prompt_cache_miss_tokens)!==null?!0:B(e.prompt_tokens_details?.cached_tokens)!==null||B(e.input_tokens_details?.cached_tokens)!==null:!1}a(it,"usageHasCacheTelemetry");function B(e){if(typeof e=="number"&&Number.isSafeInteger(e)&&e>=0)return e;if(typeof e!="string"||!/^\d+$/.test(e.trim()))return null;let t=Number(e);return Number.isSafeInteger(t)?t:null}a(B,"usageTokenCount");function lt(e,t){Array.isArray(t)&&t.forEach((n,o)=>{if(!n||typeof n!="object")return;let r=n,s=typeof r.index=="number"&&Number.isInteger(r.index)?r.index:o,i=e.get(s)??{arguments:""};typeof r.id=="string"&&(i.id=r.id);let c=r.function&&typeof r.function=="object"?r.function:{};typeof c.name=="string"&&(i.name=`${i.name??""}${c.name}`),typeof c.arguments=="string"&&(i.arguments+=c.arguments),e.set(s,i)})}a(lt,"mergeOpChatToolCallDeltas");function ct(e){return[...e.entries()].sort(([t],[n])=>t-n).flatMap(([,t])=>t.id&&t.name?[{id:t.id,type:"function",function:{name:t.name,arguments:t.arguments}}]:[])}a(ct,"completedOpChatToolCalls");function ut(e,t){let n={model:e.model,messages:e.messages.map(pt),stream:t};return e.tools&&(n.tools=e.tools),e.toolChoice!==void 0&&(n.tool_choice=e.toolChoice),typeof e.maxTokens=="number"&&(n.max_tokens=e.maxTokens),typeof e.temperature=="number"&&(n.temperature=e.temperature),typeof e.topP=="number"&&(n.top_p=e.topP),Object.assign(n,dt(e.reasoningEffort)),n}a(ut,"buildOpChatBody");function dt(e){return e?e==="off"?{thinking:{type:"disabled"}}:{thinking:{type:"enabled"},reasoning_effort:e}:{}}a(dt,"opChatReasoningFields");function pt(e){let{continuation:t,images:n,...o}=e,r=n?.length?[...typeof e.content=="string"&&e.content.trim()?[{type:"text",text:e.content}]:[],...n.map(s=>({type:"image_url",image_url:{url:s.url,...s.detail?{detail:s.detail}:{}}}))]:e.content;return e.role==="assistant"&&t?.kind==="chat_completions_reasoning"?{...o,...r!==void 0?{content:r}:{},reasoning_content:t.reasoningContent}:{...o,...r!==void 0?{content:r}:{}}}a(pt,"opChatMessage");function ce(e,t){let n=e.trim().replace(/\/+$/,"");if(!n)throw new Error("OpenPond OpChat API base URL is required.");return`${n}/${t}`}a(ce,"opChatEndpointUrl");function ue(e,t,n){let o=e.trim();if(!o)throw new Error("OpenPond API key is required for OpChat.");let r=new Headers;r.set("Authorization",`Bearer ${o}`),r.set("Content-Type","application/json"),r.set("Accept",t),r.set("x-openpond-client","openpond-app");let s=n||Ye();return r.set("x-openpond-request-id",s),r.set("x-request-id",s),r}a(ue,"opChatHeaders");async function de(e){let t=await e.text().catch(()=>"");if(!t)return e.statusText||`HTTP ${e.status}`;try{return Ie(JSON.parse(t))}catch{return t}}a(de,"readOpChatError");function Ie(e){if(!e||typeof e!="object")return String(e||"unknown_error");let t=e,n=t.error;if(n&&typeof n=="object"){let o=n;return[F(o.code),F(o.type),F(o.message)].filter(Boolean).join(": ")}return[F(t.error),F(t.message)].filter(Boolean).join(": ")||JSON.stringify(e)}a(Ie,"errorMessageFromPayload");function ft(e){if(!e||typeof e!="object")return null;let t=e.usage;return!t||typeof t!="object"?null:t}a(ft,"parseUsage");function F(e){return typeof e=="string"&&e.trim()?e:null}a(F,"stringValue");function ve(e){return typeof e=="string"&&e.length>0?e:null}a(ve,"streamTextValue");import{readFileSync as mt}from"node:fs";var W;function ht(){if(W!==void 0)return W??"openpond-code bundled";try{let e=new URL("../package.json",import.meta.resolve("openpond")),t=JSON.parse(mt(e,"utf8"));W=typeof t.version=="string"?`openpond-code@${t.version}`:null}catch{W=null}return W??"openpond-code bundled"}a(ht,"getBundledRuntimeVersion");function yt(e,t){let n="",o=a(r=>{r.startsWith(e)&&t(JSON.parse(r.slice(e.length)))},"processLine");return{push(r){for(n+=r;;){let s=At(n);if(s<0)return;let i=n.slice(0,s).replace(/\r$/,""),c=n[s]==="\r"&&n[s+1]===`
5
+ `?2:1;n=n.slice(s+c),o(i)}},flush(){let r=n.trimEnd();n="",r&&o(r)}}}a(yt,"createReadyLineParser");function At(e){let t=e.indexOf(`
6
+ `),n=e.indexOf("\r");return t<0?n:n<0?t:Math.min(t,n)}a(At,"nextLineEnd");var An="OPENPOND_STORAGE_PROGRESS ";import{spawn as gt}from"node:child_process";function Re(e,t=process.platform){return t==="darwin"?{command:"open",args:[e]}:t==="win32"?{command:"rundll32.exe",args:["url.dll,FileProtocolHandler",e]}:{command:"xdg-open",args:[e]}}a(Re,"resolveSystemBrowserCommand");async function Pt(e,t={}){let n=t.command??Re(e),o=t.handoffTimeoutMs??1500;return new Promise(r=>{let s=!1,i=null,c=a(g=>{s||(s=!0,i&&clearTimeout(i),r(g))},"finish"),m=gt(n.command,n.args,{detached:!1,shell:!1,stdio:"ignore",windowsHide:!0});m.once("error",g=>{let f=g.code;c({opened:!1,error:f?`browser launcher ${n.command} failed (${f})`:`browser launcher ${n.command} failed`})}),m.once("close",(g,f)=>{if(g===0){c({opened:!0});return}let w=f?`signal ${f}`:`code ${g??"unknown"}`;c({opened:!1,error:`browser launcher ${n.command} exited with ${w}`})}),i=setTimeout(()=>{m.unref(),c({opened:!0})},o),i.unref()})}a(Pt,"openUrlWithSystemBrowser");function wt(e){if(!e||typeof e!="object")return null;let t=e,n=typeof t.id=="string"?t.id:null,o=typeof t.name=="string"?t.name:n;if(!n||!o)return null;let r=t.latestDeployment&&typeof t.latestDeployment=="object"?t.latestDeployment:null,s=xe.safeParse(t.sandboxActionRegistry);return{id:n,name:o,description:typeof t.description=="string"?t.description:null,visibility:typeof t.visibility=="string"?t.visibility:null,gitOwner:typeof t.gitOwner=="string"?t.gitOwner:null,gitRepo:typeof t.gitRepo=="string"?t.gitRepo:null,gitHost:typeof t.gitHost=="string"?t.gitHost:null,defaultBranch:typeof t.defaultBranch=="string"?t.defaultBranch:null,sandbox:t.sandbox===!0,sandboxActionRegistry:s.success?s.data:null,sandboxManifestHash:typeof t.sandboxManifestHash=="string"?t.sandboxManifestHash:null,sandboxManifestPath:typeof t.sandboxManifestPath=="string"?t.sandboxManifestPath:null,sandboxManifestSyncedAt:typeof t.sandboxManifestSyncedAt=="string"?t.sandboxManifestSyncedAt:t.sandboxManifestSyncedAt instanceof Date?t.sandboxManifestSyncedAt.toISOString():null,sandboxManifestError:typeof t.sandboxManifestError=="string"?t.sandboxManifestError:null,updatedAt:typeof t.updatedAt=="string"?t.updatedAt:null,latestDeployment:r?{id:typeof r.id=="string"?r.id:void 0,status:typeof r.status=="string"?r.status:void 0,deploymentDomain:typeof r.deploymentDomain=="string"?r.deploymentDomain:null,createdAt:typeof r.createdAt=="string"?r.createdAt:void 0,isProduction:typeof r.isProduction=="boolean"?r.isProduction:null,gitBranch:typeof r.gitBranch=="string"?r.gitBranch:null}:null,scheduleSummary:xt(t.scheduleSummary)}}a(wt,"normalizeApp");function S(e){return typeof e=="string"?e:e instanceof Date?e.toISOString():null}a(S,"normalizeDateString");function Ot(e){if(!e||typeof e!="object")return null;let t=e,n=typeof t.id=="string"?t.id:null,o=typeof t.name=="string"?t.name:n,r=typeof t.deploymentId=="string"?t.deploymentId:null;return!n||!o||!r?null:{id:n,name:o,description:typeof t.description=="string"?t.description:null,scheduleType:typeof t.scheduleType=="string"?t.scheduleType:"cron",scheduleExpression:typeof t.scheduleExpression=="string"?t.scheduleExpression:"",enabled:!!t.enabled,rawEnabled:typeof t.rawEnabled=="boolean"?t.rawEnabled:void 0,syncStatus:typeof t.syncStatus=="string"?t.syncStatus:null,syncError:typeof t.syncError=="string"?t.syncError:null,startAt:S(t.startAt),endAt:S(t.endAt),maxRuns:typeof t.maxRuns=="number"?t.maxRuns:null,executionCount:typeof t.executionCount=="number"?t.executionCount:null,lifecycleStatus:typeof t.lifecycleStatus=="string"?t.lifecycleStatus:null,lifecycleReason:typeof t.lifecycleReason=="string"?t.lifecycleReason:null,lastExecutionAt:S(t.lastExecutionAt),lastExecutionStatus:typeof t.lastExecutionStatus=="string"?t.lastExecutionStatus:null,lastRunNowAt:S(t.lastRunNowAt),lastRunNowStatus:typeof t.lastRunNowStatus=="string"?t.lastRunNowStatus:null,updatedAt:S(t.updatedAt)??new Date().toISOString(),deploymentId:r,isProduction:typeof t.isProduction=="boolean"?t.isProduction:void 0,payload:t.payload}}a(Ot,"normalizeSchedule");function xt(e){if(!e||typeof e!="object")return null;let t=e,n=Array.isArray(t.schedules)?t.schedules.map(Ot).filter(i=>!!i):[],o=typeof t.total=="number"?t.total:n.length,r=typeof t.active=="number"?t.active:n.filter(i=>i.enabled).length,s=typeof t.paused=="number"?t.paused:Math.max(0,o-r);return{total:o,active:r,paused:s,enabled:typeof t.enabled=="number"?t.enabled:r,disabled:typeof t.disabled=="number"?t.disabled:s,nextRunAt:S(t.nextRunAt),lastRunAt:S(t.lastRunAt),schedules:n,truncated:typeof t.truncated=="boolean"?t.truncated:void 0}}a(xt,"normalizeScheduleSummary");async function bt(e){let t=Array.isArray(e.config.accounts)?e.config.accounts:[],n=await Promise.all(t.map(async o=>{let r=q(o.handle,o.baseUrl),s=Z(o);if(!s)return[r,{response:null,authFailed:!1,error:null}];try{return[r,{response:await D(Y(o,e.config),s),authFailed:!1,error:null}]}catch(i){return[r,{response:null,authFailed:!0,error:z(i)}]}}));return Object.fromEntries(n)}a(bt,"loadAccountProfileLookups");async function Te(e){let t=await bt(e),n=e.account?t[q(e.account.handle,e.account.baseUrl)]??null:null,o=n?.response??null,r=e.token&&n?.authFailed?n.error||"OpenPond account authentication failed.":null;return{account:H({...e,accountResponse:o,accountProfiles:t,authFailed:!!r,error:r})}}a(Te,"loadOpenPondAccountStateForContext");async function Ut(){return Te(await u())}a(Ut,"loadOpenPondAccountState");async function Ne(e={}){let t=await u(),n=Te(t);if(!t.token)return{...await n,apps:[],error:"No OpenPond API key or session token is configured."};let[o,r]=await Promise.allSettled([n,he(t.apiBaseUrl,t.token,{handle:t.account?.handle,limit:e.limit??20,offset:e.offset??0,includeScheduled:e.includeScheduled??!0})]);if(o.status==="rejected")throw o.reason;return{account:o.value.account,apps:r.status==="fulfilled"?r.value.map(wt).filter(s=>!!s):[],error:r.status==="rejected"?z(r.reason):null}}a(Ne,"loadOpenPondApps");async function kt(e){let t=await u();if(!t.token)throw new Error("No OpenPond API key or session token is configured.");return{account:t,response:await ye(t.apiBaseUrl,t.token,e)}}a(kt,"createOpenPondRepoApp");import{createHash as Et}from"node:crypto";function Bt(e){return`account-${Et("sha256").update(e).digest("hex").slice(0,8)}`}a(Bt,"fallbackHandleForApiKey");function te(e){let t=e?.trim();return t?t.replace(/^@/,""):null}a(te,"normalizeDerivedHandle");async function _t(e,t){let n=te(e.handle);if(n)return n;try{let r=(await D(t,e.apiKey)).account,s=te(r.handle)??te(r.email?.split("@")[0])??te(r.id);if(s)return s}catch{}return Bt(e.apiKey)}a(_t,"deriveHandleForApiKey");async function vt(e){let t=e.baseUrl??N,n=l(e.apiBaseUrl)??X(t)??E,o=l(e.chatApiBaseUrl),r=await _t(e,n);return await Oe({handle:r,apiKey:e.apiKey,baseUrl:t,apiBaseUrl:n,chatApiBaseUrl:o,environment:e.environment??"production",setActive:e.setActive}),u(r,t)}a(vt,"saveOpenPondAccount");function St(e,t,n){let o=l(n),r=e.findIndex(i=>P(i.handle,t)&&b(i.baseUrl,o));if(r!==-1)return r;let s=e.map((i,c)=>({account:i,index:c})).filter(({account:i})=>P(i.handle,t));if(s.length===1)return s[0].index;if(s.length>1)throw new Error(`Multiple OpenPond accounts match ${t}; select one with its base URL.`);return-1}a(St,"findAccountIndex");async function Ct(e){let t=e.handle.trim();if(!t)throw new Error("OpenPond account handle is required.");return await L(n=>{let o=(n.accounts??[]).map(m=>({...m})),r=St(o,t,e.baseUrl);if(r===-1)throw new Error(`OpenPond account not found: ${t}`);let s=o[r],i=A(n.activeProfile),c=!!(i&&U(s,i));o.splice(r,1),n.accounts=o,(c||!i||!o.some(m=>U(m,i)))&&(o[0]?n.activeProfile=v(o[0]):delete n.activeProfile)}),u()}a(Ct,"removeOpenPondAccount");async function It(){let e;return await L(t=>{let n=A(t.activeProfile),o=(t.accounts??[]).map(s=>({...s})),r=n?o.findIndex(s=>U(s,n)):0;if(r<0||!o[r])throw new Error("No active OpenPond account to log out.");e={...o[r]},delete e.apiKey,delete e.session,o[r]=e,t.accounts=o}),u(e.handle,e.baseUrl)}a(It,"signOutOpenPondAccount");function Rt(e,t,n){let o=l(n),r=e.findIndex(i=>P(i.handle,t)&&b(i.baseUrl,o));if(r!==-1)return r;let s=e.map((i,c)=>({account:i,index:c})).filter(({account:i})=>P(i.handle,t));if(s.length===1)return s[0].index;if(s.length>1)throw new Error(`Multiple OpenPond accounts match ${t}; select one with its current base URL.`);return-1}a(Rt,"findAccountIndex");function pe(e,t,n){if(n===void 0)return;let o=l(n);if(o){e[t]=o;return}(n===null||n.trim()==="")&&delete e[t]}a(pe,"applyOptionalUrl");async function Tt(e){let t=e.handle.trim();if(!t)throw new Error("OpenPond account handle is required.");let n;return await L(o=>{let r=(o.accounts??[]).map(f=>({...f})),s=Rt(r,t,e.currentBaseUrl);if(s===-1)throw new Error(`OpenPond account not found: ${t}`);let i=r[s];if(n={...i},e.apiKey!==void 0){let f=e.apiKey.trim();if(!f)throw new Error("OpenPond API key cannot be empty.");n.apiKey=f,delete n.session,delete n.token}if(pe(n,"baseUrl",e.baseUrl),pe(n,"apiBaseUrl",e.apiBaseUrl),pe(n,"chatApiBaseUrl",e.chatApiBaseUrl),e.environment===null?delete n.environment:typeof e.environment=="string"&&e.environment.trim()&&(n.environment=e.environment.trim()),r.findIndex((f,w)=>w!==s&&P(f.handle,n.handle)&&b(f.baseUrl,n.baseUrl))!==-1)throw new Error("Another OpenPond account already uses that handle and base URL.");let m=A(o.activeProfile),g=!!(m&&U(i,m));r[s]=n,o.accounts=r,o.activeProfile=e.setActive||g?v(n):o.activeProfile}),u(n.handle,n.baseUrl)}a(Tt,"updateOpenPondAccountConfig");async function Nt(e){let t=await u();if(!t.token)throw new Error("OpenPond is signed out. Add an account before reading app config.");return Ae(t.apiBaseUrl,t.token,e.appId)}a(Nt,"getOpenPondAppEnvironment");export{u as a,We as b,Xe as c,Ut as d,Ne as e,kt as f,tt as g,nt as h,ot as i,Ce as j,vt as k,Ct as l,It as m,Tt as n,Nt as o,ht as p,yt as q,An as r,Pt as s};
@@ -0,0 +1,5 @@
1
+ import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
+ import{a as ne}from"./chunk-YCZZ62C2.js";import{a as we}from"./chunk-WP2L2NY2.js";import{k as Te}from"./chunk-6RS4NAOY.js";import{A as ve,B as he}from"./chunk-ZZHXQCNB.js";import{Ca as ae,L as fe,N as ue,O as z,R as Q,Rb as Re,S as te,Sb as X,T as me,U as ge,Ub as se,ka as ke,wa as A}from"./chunk-YNQWJWIC.js";import{A as F,G as U,N as J,l as u,q,w as pe}from"./chunk-7ZLXFKRI.js";import{O as R,P as M,Q as $,R as b,aa as le,d as V,jb as W}from"./chunk-J572ANHX.js";import{Da as G,Ma as oe,Ra as ee,Xa as de,Ya as ce}from"./chunk-PBZCXPPC.js";import{a as g}from"./chunk-FTQLQJQV.js";import{createHash as Me}from"node:crypto";function w(e,s,a,n){let t=W[a].parse(n),r=e.get("SELECT payload FROM learning_revisions WHERE scope = ? AND kind = ? AND id = ? AND revision = ?",[s,a,t.id,t.revision]);if(r){if(u(JSON.parse(r.payload))!==u(t))throw new Error(`Starter dependency conflicts with an existing revision: ${t.id}.`);return}e.run("INSERT INTO learning_revisions (scope, kind, id, revision, payload) VALUES (?, ?, ?, ?, ?)",[s,a,t.id,t.revision,JSON.stringify(t)]),e.run(`INSERT INTO learning_resources (scope, kind, id, revision) VALUES (?, ?, ?, ?)
3
+ ON CONFLICT (scope, kind, id) DO UPDATE SET revision = excluded.revision
4
+ WHERE learning_resources.revision < excluded.revision`,[s,a,t.id,t.revision])}g(w,"importStarterReleaseInTransaction");function Se(e,s,a){function n(o,d){let k=e.get("SELECT payload FROM learning_revisions WHERE scope = ? AND kind = ? AND id = ? AND revision = ?",[s,o,d.id,d.revision]);k||D(404,"model_reward_unavailable",`The exact ${o} resource is unavailable in this Profile.`);let l=W[o].parse(JSON.parse(k.payload));return b(l),d.contentHash&&l.contentHash!==d.contentHash&&D(409,"model_reward_changed","The selected resource does not match its immutable content hash."),l}g(n,"read");let t=n("binding",a),r=[...new Map(t.sources.map(o=>[u(o.reward),n("reward",o.reward)])).values()],i=new Map;for(let o of r){let d=o.implementation;for(let k of[...o.assets,..."verifierRef"in d?[d.verifierRef]:[],..."rubricRef"in d?[d.rubricRef]:[],..."inputContract"in d?[d.inputContract]:[]])i.has(k.id)||i.set(k.id,n("asset",{id:k.id,revision:1})),V(i.get(k.id),k)}return{rewardBinding:t,rewards:r,assets:[...i.values()]}}g(Se,"readSelectedModelReward");function Y(e,s,a,n){let t=q.parse(s.metadata.rewardBinding),r=g((c,f)=>{let H=e.get("SELECT payload FROM learning_revisions WHERE scope = ? AND kind = ? AND id = ? AND revision = ?",[s.profileId,c,f.id,f.revision]);H||D(404,"model_reward_unavailable",`The exact ${c} resource is unavailable in this Profile.`);let m=W[c].parse(JSON.parse(H.payload));return b(m),f.contentHash&&m.contentHash!==f.contentHash&&D(409,"model_reward_changed","The selected resource does not match its immutable content hash."),m},"read"),i=r("definition",q.parse(s.metadata.taskDefinition));(u(s.policy)!==u(i.execution.policy)||u(s.environment.metadata.portableEnvironment)!==u(i.execution.environment)||u(s.environment.metadata.portableTools)!==u(i.execution.tools))&&D(409,"model_taskset_context_changed","Taskset context differs from its immutable task definition.");let o=r("binding",t),d=[...new Map(o.sources.map(c=>[u(c.reward),r("reward",c.reward)])).values()];s.metadata.rewardExecution!==void 0&&u(s.metadata.rewardExecution)!==u({binding:o,rewards:d})&&D(409,"model_taskset_rewards_changed","Taskset embedded Rewards differ from their immutable binding.");let k=r("binding",a),l=[...new Map(k.sources.map(c=>[u(c.reward),r("reward",c.reward)])).values()],T=new Map((n?.modelResources?.assets??[]).map(c=>[c.id,c])),v=g(c=>{T.has(c)||T.set(c,r("asset",{id:c,revision:1}))},"addAsset");for(let c of[...d,...l]){let f=c.implementation;for(let H of[...c.assets,..."verifierRef"in f?[f.verifierRef]:[],..."rubricRef"in f?[f.rubricRef]:[],..."inputContract"in f?[f.inputContract]:[]])v(H.id)}let h,S=me.shape.executionResources.parse(s.environment.metadata.portableExecutionResources);if(i.execution.environment.entrypoint==="openpond.javascript-environment.v1"){let c=r("asset",{id:ue(i.execution),revision:1});h=fe.parse(JSON.parse(V(c,c.asset)));for(let f of[h.javascript.module,h.environment.actionSchemaRef,h.environment.observationSchemaRef,h.environment.stateSchemaRef])f&&v(f.id)}for(let c of s.tasks)c.privilegedContextRef&&v(c.privilegedContextRef);u(s.graders)!==u(X(o,d,[...T.values()]))&&D(409,"model_taskset_graders_changed","Taskset graders differ from their immutable Reward binding.");let N=G.parse($({schemaVersion:"openpond.tasksetRelease.v2",id:s.id,revision:s.revision,...i.execution,graders:ce(o,d),...s.metrics?{metrics:s.metrics}:{},tasks:s.tasks.map(c=>{let f=Re(c);return c.requiredOutputs===void 0&&c.metadata.portableTaskRecord===void 0&&delete f.requiredOutputs,f}),metadata:s.metadata.derivedPortableMetadata??{localSource:R(s),starter:{taskDefinition:R(i),rewardBinding:t}}}));return{sourcePackage:n?{...n.modelResources,taskset:n.taskset,executionResources:{environment:n.environment,verifierSet:n.verifierSet}}:{taskset:N,taskDefinition:i,rewardBinding:o,rewards:d,assets:[...T.values()],...S?{executionResources:S}:{},...h?{execution:h}:{}},selectedBinding:k,selectedRewards:l,assets:T}}g(Y,"readModelTasksetSource");function D(e,s,a){throw new J(e,{schemaVersion:"openpond.modelProjectApiError.v2",code:s,message:a,retryable:!1,requestId:null,details:{}})}g(D,"fail");function re(e){if(e?.metadata.learning===void 0)return null;let s=le.parse(e.metadata.learning);return b(s.definition),de(s.binding,s.rewards),M(s.definition.rewardBinding,R(s.binding))||x(409,"model_batch_binding_changed","Reviewed task definition and Reward binding do not match."),s.binding}g(re,"reviewedTasksetRewardBinding");function it(e,s,a=!0,n){let t=U(s),{project:r}=t,i=e.get("SELECT payload FROM model_projects WHERE id = ?",[r.id]),o=i?F.parse(JSON.parse(i.payload)):null;o&&o.profileId!==r.profileId&&x(404,"model_not_found","Model is not available in this Profile."),(o?.revision??0)!==t.expectedRevision&&x(409,"model_revision_conflict","Model changed since it was opened. Refresh before saving.");let d=r.trainingSetup.tasksetRef;if(!d||!r.trainingSetup.rewardBindingRef)return null;let k=e.get("SELECT payload FROM taskset_revisions WHERE taskset_id = ? AND revision = ?",[d.id,d.revision]),l=k?A.parse(JSON.parse(k.payload)):null;(!l||l.profileId!==r.profileId)&&x(404,"model_taskset_not_found","The selected Taskset revision is not available in this Profile."),(l.contentHash!==d.contentHash||ae(l)!==l.contentHash)&&x(409,"model_taskset_changed","The selected Taskset does not match its immutable content hash.");let T=re(l);if(T)return M(R(T),r.trainingSetup.rewardBindingRef)||x(422,"model_batch_reward_review_required","Changing a reviewed batch's Reward requires regrading and a new reviewed batch."),null;let v=l.metadata.rewardBinding===void 0?null:q.parse(l.metadata.rewardBinding);if(v&&M(v,r.trainingSetup.rewardBindingRef))return null;if(!v&&n&&!n.modelResources&&!n.learningResources){let p=Se(e,r.profileId,r.trainingSetup.rewardBindingRef),_=Te({owner:{scopeId:r.profileId,modelId:r.id},source:n,...p}),O=_e(e,t,a),P=se({package:_,profileId:r.profileId,name:l.name,createdAt:O.created_at});P.taskset=ne(P.taskset,l);let L={..._.modelResources,taskset:_.taskset,executionResources:{environment:_.environment,verifierSet:_.verifierSet}};return{taskset:P.taskset,generatedFiles:P.generatedFiles,directoryId:String(P.taskset.environment.metadata.runtimeSourceTasksetId),source:l,sourcePackage:null,derived:L,imported:P}}v||x(422,"model_taskset_derivation_unavailable","This Taskset needs an authored task definition and Reward binding before its Reward can be changed.");let{sourcePackage:h,selectedBinding:S,selectedRewards:N,assets:I}=Y(e,l,r.trainingSetup.rewardBindingRef,n),c=te.safeParse(h.taskset.metadata.modelTasksetDerivation),H=o?.hosted?.apiOrigin&&o.hosted.tasksets.some(p=>{if(!c.success||p.localTasksetId!==l.id||!p.packageHash||!p.localTasksetHash)return!1;let _=e.get("SELECT payload FROM taskset_revisions WHERE taskset_id = ? AND content_hash = ? AND profile_id = ?",[l.id,p.localTasksetHash,r.profileId]),O=_?A.parse(JSON.parse(_.payload)):null;if(!O||O.contentHash!==p.localTasksetHash)return!1;let P=e.get("SELECT payload FROM learning_revisions WHERE scope = ? AND kind = 'package' AND id = ? AND revision = ?",[r.profileId,p.releaseId,p.releaseRevision]),L=P?G.parse(JSON.parse(P.payload)):null,y=te.safeParse(L?.metadata.modelTasksetDerivation);return L?.contentHash===p.releaseHash&&y.success&&u(y.data.owner)===u(c.data.owner)&&M(y.data.root,c.data.root)})&&c.success&&c.data.owner.modelId===r.id?c.data.owner:{scopeId:r.profileId,modelId:r.id},m=ge({owner:H,source:h,rewardBinding:S,rewards:N,assets:[...I.values()]}),K=_e(e,t,a);if(n){let p=new Map(n.files.map(B=>[B.asset.id,B]));for(let B of m.assets)p.set(B.id,{asset:B.asset,base64:Buffer.from(B.text).toString("base64")});let{taskset:_,executionResources:O,...P}=m;if(!O)throw new Error("Derived imported package is missing execution resources.");let L=ke({schemaVersion:"openpond.tasksetPackage.v1",taskset:_,...O,modelResources:P,files:[...p.values()]}),y=se({package:L,profileId:r.profileId,name:l.name,createdAt:K.created_at});return y.taskset=ne(y.taskset,l),{taskset:y.taskset,generatedFiles:y.generatedFiles,directoryId:String(y.taskset.environment.metadata.runtimeSourceTasksetId),source:l,sourcePackage:h,derived:m,imported:y}}let ie=`${m.taskset.id}-r${m.taskset.revision}-${$({packageHash:m.taskset.contentHash,preparedAt:K.created_at}).contentHash}`,j=ve(l,K.created_at),ye=new Map(m.taskset.tasks.map(p=>[p.id,p])),Z=[];for(let p of m.taskset.graders)if(p.kind==="custom_verifier"){let _=p.verifierRef.path;Z.some(O=>O.path===_)||Z.push({path:_,role:"verifier",content:V(I.get(p.verifierRef.id),p.verifierRef)})}let C=he({tasksetId:m.taskset.id,now:K.created_at,sourcePackageHash:m.taskset.contentHash,draft:{...j,policy:m.taskset.policy,tasks:j.tasks.map(p=>({...p,metadata:{...p.metadata,portableTaskRecord:ye.get(p.id)}})),environment:{...j.environment,metadata:{...j.environment.metadata,runtimeSourceTasksetId:ie,portableExecutionResources:m.executionResources}},graders:X(S,N,[...I.values()]),learningSignals:{...j.learningSignals,rewards:j.learningSignals.rewards.map(p=>({...p,rules:[{id:S.id,points:1,condition:"Execute the published Reward binding with its declared normalization, weights and required gates."}],artifactRef:S.id,metadata:{...p.metadata,rewardBinding:R(S)}}))},metadata:{...j.metadata,portableCapabilities:m.taskset.capabilities,taskDefinition:R(m.taskDefinition),rewardBinding:R(S),rewardExecution:{binding:S,rewards:N},derivedPortableMetadata:m.taskset.metadata,modelTasksetDerivation:m.taskset.metadata.modelTasksetDerivation}}});if(C.metrics=m.taskset.metrics,m.taskset.metadata.tasksetOutputContract===void 0?delete C.metadata.tasksetOutputContract:C.metadata.tasksetOutputContract=m.taskset.metadata.tasksetOutputContract,C.contentHash=ae(C),C.revision!==m.taskset.revision)throw new Error("Derived local and portable Taskset revisions differ.");return{taskset:C,generatedFiles:Z,directoryId:ie,source:l,sourcePackage:h,derived:m}}g(it,"prepareModelTasksetSave");function Pe(e,s,a){let n=s.project.profileId;for(let o of[a.sourcePackage,a.derived]){if(!o)continue;for(let k of o.assets)w(e,n,"asset",k);for(let k of o.rewards)w(e,n,"reward",k);w(e,n,"binding",o.rewardBinding),w(e,n,"package",o.taskset),w(e,n,"definition",o.taskDefinition);let d=o.executionResources??o.execution;d&&w(e,n,"asset",Q(d)),o.execution&&w(e,n,"asset",z(o.execution))}let t=a.taskset;e.get("SELECT content_hash FROM taskset_revisions WHERE taskset_id = ? AND revision = ?",[t.id,t.revision])&&x(409,"model_taskset_revision_conflict","The derived Taskset revision was already published. Refresh before saving.");let i=JSON.stringify(t);e.run("INSERT INTO tasksets (id, profile_id, status, payload, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?) ON CONFLICT(id) DO UPDATE SET status = excluded.status, payload = excluded.payload, updated_at = excluded.updated_at",[t.id,n,t.status,i,t.createdAt,t.updatedAt]),e.run("INSERT INTO taskset_revisions (taskset_id, revision, content_hash, profile_id, status, payload, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?)",[t.id,t.revision,t.contentHash,n,t.status,i,t.createdAt,t.updatedAt]),e.run("UPDATE model_project_taskset_preparations SET state = 'committed' WHERE profile_id = ? AND operation_id = ?",[n,s.operationId])}g(Pe,"commitPreparedModelTaskset");function _e(e,s,a){let n=Me("sha256").update(u(s)).digest("hex"),t=s.project.profileId;a&&e.run("INSERT OR IGNORE INTO model_project_taskset_preparations (profile_id, operation_id, request_hash, created_at, state) VALUES (?, ?, ?, ?, 'preparing')",[t,s.operationId,n,new Date().toISOString()]);let r=e.get("SELECT request_hash, created_at FROM model_project_taskset_preparations WHERE profile_id = ? AND operation_id = ?",[t,s.operationId])??{request_hash:n,created_at:new Date().toISOString()};return r.request_hash!==n&&x(409,"model_operation_conflict","This save operation was already used with different Model configuration."),r}g(_e,"recordModelTasksetPreparation");function x(e,s,a){throw new J(e,{schemaVersion:"openpond.modelProjectApiError.v2",code:s,message:a,retryable:!1,requestId:null,details:{}})}g(x,"fail");import{createHash as Ee}from"node:crypto";function Ie(e,s){let a=U(s),n=e.get("SELECT request_hash, payload FROM model_project_save_operations WHERE profile_id = ? AND operation_id = ?",[a.project.profileId,a.operationId]);if(!n)return null;let t=Ee("sha256").update(u(a)).digest("hex");return n.request_hash!==t&&E(409,"model_operation_conflict","This save operation was already used with different Model configuration."),F.parse(JSON.parse(n.payload))}g(Ie,"findModelProjectSave");function ht(e,s,a,n){e.exec("BEGIN IMMEDIATE");try{let t=Oe(e,s,a,n);return e.exec("COMMIT"),t}catch(t){throw e.exec("ROLLBACK"),t}}g(ht,"commitModelProjectSave");function Oe(e,s,a,n){let t=U(s);t.learning&&E(422,"model_learning_hosted_required","Create this Model in a hosted workspace to enable continual learning.");let r=Ee("sha256").update(u(t)).digest("hex"),{project:i,operationId:o,expectedRevision:d}=t,k=Ie(e,t);if(k)return k;let l=e.get("SELECT payload FROM model_projects WHERE id = ?",[i.id]),T=l?F.parse(JSON.parse(l.payload)):null;T&&T.profileId!==i.profileId&&E(404,"model_not_found","Model is not available in this Profile."),(T?.revision??0)!==d&&E(409,"model_revision_conflict","Model changed since it was opened. Refresh before saving.");let v=xe(e,t),h=re(v);h||Ne(e,t);let S=h?R(h):v?.metadata.rewardBinding===void 0?null:q.parse(v.metadata.rewardBinding);v&&i.trainingSetup.rewardBindingRef&&(!S||!M(S,i.trainingSetup.rewardBindingRef))&&!a&&E(409,"model_taskset_preparation_required","Changing this Reward requires publishing its model-owned Taskset revision."),a&&((!i.trainingSetup.tasksetRef||!M(i.trainingSetup.tasksetRef,R(a.source))||!i.trainingSetup.rewardBindingRef||!M(i.trainingSetup.rewardBindingRef,R(a.derived.rewardBinding)))&&E(409,"model_taskset_preparation_changed","The prepared Taskset differs from the selected configuration."),Pe(e,t,a));let N=new Date().toISOString(),I=pe.parse({...i.trainingSetup,baseModel:i.trainingSetup.baseModel??i.defaultBaseModel,method:i.trainingSetup.method??(v?.authoringProvenance.buildIntent==="verifiable_reward"?"grpo":v?.authoringProvenance.buildIntent==="demonstrations"?"sft":null),...S?{rewardBindingRef:S}:{},...a?{rewardBindingRef:R(a.derived.rewardBinding),tasksetRef:R(a.taskset),tasksetRelease:null,recipe:null,...i.trainingSetup.evaluationTasksetRef&&M(i.trainingSetup.evaluationTasksetRef,R(a.source))?{evaluationTasksetRef:R(a.taskset)}:{}}:{}}),c=a?.derived??n??(v&&!h&&I.rewardBindingRef&&v.metadata.taskDefinition!==void 0&&v.metadata.rewardBinding!==void 0?Y(e,v,I.rewardBindingRef).sourcePackage:void 0),f=F.parse({...T,...i,trainingSetup:c?we({setup:I,package:c}):I,schemaVersion:"openpond.modelProject.v2",revision:d+1,hosted:T?.hosted??null,tasksetSyncs:T?.tasksetSyncs??[],createdAt:T?.createdAt??N,updatedAt:N});return e.run(`INSERT INTO model_projects (id, profile_id, payload, created_at, updated_at) VALUES (?, ?, ?, ?, ?)
5
+ ON CONFLICT(id) DO UPDATE SET payload = excluded.payload, updated_at = excluded.updated_at`,[f.id,f.profileId,JSON.stringify(f),f.createdAt,f.updatedAt]),e.run("INSERT INTO model_project_save_operations (profile_id, operation_id, request_hash, payload) VALUES (?, ?, ?, ?)",[f.profileId,o,r,JSON.stringify(f)]),f}g(Oe,"saveModelProjectInTransaction");function xe(e,s){let a=s.project.trainingSetup.tasksetRef;if(!a){s.project.trainingSetup.tasksetRelease&&E(400,"model_taskset_required","Choose the Taskset corresponding to this release.");return}let n=e.get("SELECT payload FROM taskset_revisions WHERE taskset_id = ? AND revision = ?",[a.id,a.revision]),t=n?A.parse(JSON.parse(n.payload)):null;return(!t||t.profileId!==s.project.profileId)&&E(404,"model_taskset_not_found","The selected Taskset revision is not available in this Profile."),t.contentHash!==a.contentHash&&E(409,"model_taskset_changed","The selected Taskset does not match its immutable content hash."),t}g(xe,"assertTaskset");function Ne(e,s){let a=s.project.trainingSetup.rewardBindingRef;if(!a)return;function n(r,i){let o=e.get("SELECT payload FROM learning_revisions WHERE scope = ? AND kind = ? AND id = ? AND revision = ?",[s.project.profileId,r,i.id,i.revision]);o||E(404,"model_reward_unavailable","The exact Reward configuration is unavailable in this Profile.");let d=(r==="binding"?ee:oe).parse(JSON.parse(o.payload));return d.contentHash!==i.contentHash&&E(409,"model_reward_changed","The selected Reward does not match its immutable content hash."),b(d),d}g(n,"read");let t=ee.parse(n("binding",a));for(let r of t.sources)n("reward",r.reward)}g(Ne,"assertReward");function E(e,s,a){throw new J(e,{schemaVersion:"openpond.modelProjectApiError.v2",code:s,message:a,retryable:!1,requestId:null,details:{}})}g(E,"fail");function Et(e,s){let{taskset:a,package:n}=s,t=a.profileId,r=e.get("SELECT payload FROM taskset_revisions WHERE taskset_id = ? AND revision = ?",[a.id,a.revision]);if(r&&u(A.parse(JSON.parse(r.payload)))!==u(a))throw new Error("Imported Taskset revision conflicts with an existing immutable local revision.");let i=e.get("SELECT payload FROM tasksets WHERE id = ?",[a.id]),o=i?A.parse(JSON.parse(i.payload)):null;if(o&&o.profileId!==t)throw new Error("Imported Taskset belongs to another Profile.");w(e,t,"package",n.taskset);let d=n.modelResources;if(d){w(e,t,"definition",d.taskDefinition),w(e,t,"binding",d.rewardBinding);for(let l of d.rewards)w(e,t,"reward",l);for(let l of d.assets)w(e,t,"asset",l);w(e,t,"asset",Q({environment:n.environment,verifierSet:n.verifierSet})),d.execution&&w(e,t,"asset",z(d.execution))}let k=JSON.stringify(a);r||e.run("INSERT INTO taskset_revisions (taskset_id, revision, content_hash, profile_id, status, payload, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?)",[a.id,a.revision,a.contentHash,t,a.status,k,a.createdAt,a.updatedAt]),(!o||o.revision<a.revision)&&e.run("INSERT INTO tasksets (id, profile_id, status, payload, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?) ON CONFLICT(id) DO UPDATE SET status = excluded.status, payload = excluded.payload, updated_at = excluded.updated_at",[a.id,t,a.status,k,a.createdAt,a.updatedAt])}g(Et,"importTasksetPackageInTransaction");export{w as a,it as b,Ie as c,ht as d,Oe as e,Et as f};
@@ -7,4 +7,4 @@ import{A as e}from"./chunk-PF56N7ZY.js";import{a as o}from"./chunk-FTQLQJQV.js";
7
7
  `))!==-1;){let i=this.buffer.slice(0,r);if(this.buffer=this.buffer.slice(r+1),!!i.trim())try{if(Buffer.byteLength(i)>te)throw new Error("ACP frame exceeds the size limit.");this.receive(JSON.parse(i))}catch{this.fail(new Error("Invalid ACP protocol frame.")),this.stop();return}}Buffer.byteLength(this.buffer)>te&&(this.fail(new Error("ACP frame exceeds the size limit.")),this.stop())}receive(t){if(!z(t)||t.jsonrpc!=="2.0")throw new Error("Invalid JSON-RPC envelope.");if(typeof t.method=="string"){if("id"in t){this.handleRequest(t);return}if(t.method==="session/update"&&z(t.params)){let{sessionId:i,update:n}=t.params;if(typeof i!="string"||!this.sessions.has(i)||!z(n))return;this.updateQueue=this.updateQueue.then(async()=>{await this.options.onUpdate?.(i,n)}),this.updateQueue.catch(a=>{this.fail(a),this.stop()})}return}if(typeof t.id!="number")return;let r=this.pending.get(t.id);r&&(this.pending.delete(t.id),r.timer&&clearTimeout(r.timer),z(t.error)?r.reject(new J(Number(t.error.code),String(t.error.message),t.error.data)):r.resolve(t.result))}async handleRequest(t){let r=t.id;if(!(typeof r!="number"&&typeof r!="string"))try{if(t.method!=="session/request_permission"){this.write({jsonrpc:"2.0",id:r,error:{code:-32601,message:"Client method not supported."}});return}let i=t.params;if(!z(i)||typeof i.sessionId!="string"||!Array.isArray(i.options)||!z(i.toolCall))throw new Error("Invalid permission request.");if(this.assertSession(i.sessionId),!this.activePrompts.has(i.sessionId)){this.write({jsonrpc:"2.0",id:r,result:G});return}let n=new AbortController,a=this.permissions.get(i.sessionId)??new Set;a.add(n),this.permissions.set(i.sessionId,a);let c=G;try{if(this.options.onPermission&&(c=await Promise.race([this.options.onPermission(i,n.signal),new Promise(u=>n.signal.addEventListener("abort",()=>u(G),{once:!0}))])),n.signal.aborted&&(c=G),c.outcome.outcome==="selected"){let u=c.outcome.optionId;if(!i.options.some(d=>z(d)&&d.optionId===u))throw new Error("Permission option was not advertised by the agent.")}}finally{a.delete(n),a.size||this.permissions.delete(i.sessionId)}this.child&&this.write({jsonrpc:"2.0",id:r,result:c})}catch{this.child&&this.write({jsonrpc:"2.0",id:r,error:{code:-32602,message:"Invalid or expired client request."}})}}cancelPermissions(t){for(let r of this.permissions.get(t)??[])r.abort();this.permissions.delete(t)}fail(t){let r=this.child,i=!!r;this.child=null,r&&(_(r,"SIGTERM"),setTimeout(()=>_(r,"SIGKILL"),2e3).unref());for(let n of this.pending.values())n.timer&&clearTimeout(n.timer),n.reject(t);this.pending.clear();for(let n of this.sessions)this.cancelPermissions(n);this.sessions.clear(),i&&this.options.onExit?.(t)}};var M=o(s=>s&&typeof s=="object"&&!Array.isArray(s)?s:{},"record"),ct=o(s=>s==="pending"||s==="in_progress"||s==="completed"?s:null,"status"),N=class{static{o(this,"ClaudeTaskProgress")}emit;calls=new Map;tasks=new Map;constructor(t){this.emit=t}beginTurn(){this.calls.clear()}tool(t){let r=String(t.title);["TodoWrite","TaskCreate","TaskUpdate","TaskGet","TaskList"].includes(r)&&this.calls.set(String(t.toolCallId),{name:r,input:M(t.rawInput)})}result(t,r){let i=String(t.tool_use_id),n=this.calls.get(i);if(!n)return;this.calls.delete(i);let a=M(r),c=n.input;if(!(t.is_error||a.success===!1)){if(n.name==="TodoWrite"){let u=Array.isArray(a.newTodos)?a.newTodos:c.todos;if(!Array.isArray(u))return;let d=new Map;for(let[h,g]of u.entries()){let f=this.parse(g,"content");if(!f)return;d.set(String(h),f)}this.tasks=d}else if(n.name==="TaskCreate"){let u=M(a.task),d=this.parse({...c,subject:u.subject??c.subject,status:"pending"},"subject");if(typeof u.id!="string"||!d)return;this.tasks.set(u.id,d)}else if(n.name==="TaskUpdate"){let u=c.taskId??c.id??c.task_id;if(typeof u!="string")return;if(c.status==="deleted")this.tasks.delete(u);else{let d=this.tasks.get(u);if(!d)return;let h=this.parse({subject:d.content,...d,...c,activeForm:c.activeForm??c.active_form??d.activeForm},"subject");if(!h)return;this.tasks.set(u,h)}}else if(n.name==="TaskGet"){let u=M(a.task),d=this.parse(u,"subject");if(typeof u.id!="string"||!d)return;this.tasks.set(u.id,d)}else{if(!Array.isArray(a.tasks))return;let u=new Map;for(let d of a.tasks){let h=M(d),g=this.parse(h,"subject");if(typeof h.id!="string"||!g)return;u.set(h.id,{...this.tasks.get(h.id),...g})}this.tasks=u}this.emit({sessionUpdate:"plan",entries:[...this.tasks.entries()].map(([u,d])=>({id:u,...d})),nativeTaskProgress:!0})}}parse(t,r){let i=M(t),n=ct(i.status),a=i[r];if(!n||typeof a!="string"||!a.trim())return null;let c=i.activeForm??i.active_form;return{content:a,status:n,...typeof c=="string"?{activeForm:c}:{}}}};var E=o(s=>s&&typeof s=="object"&&!Array.isArray(s)?s:{},"record"),R=o(s=>typeof s=="number"&&Number.isFinite(s)&&s>=0?Math.floor(s):null,"count"),K=class{static{o(this,"ClaudeObservations")}emit;contextWindows;tools=new Map;models=new Set;latestUsage={};latestModel="unknown";compacting=!1;constructor(t,r=new Map){this.emit=t,this.contextWindows=r}tool(t){let r=String(t.toolCallId),n={...this.tools.get(r)??{},...t};this.tools.set(r,n),this.emit(n)}observe(t){if(!t.parent_tool_use_id){if(t.type==="stream_event"){let r=E(t.event),i=E(r.message);r.type==="message_start"&&this.assistant(i,!0),r.type==="message_delta"&&(this.latestUsage={...this.latestUsage,...E(r.usage)},this.context())}if(t.type==="assistant"){this.assistant(E(t.message),!1);let r=E(t.context_usage),i=R(r.total_tokens),n=R(r.raw_max_tokens);i!==null&&n&&typeof r.model=="string"&&(this.contextWindows.set(r.model,n),this.emit({sessionUpdate:"context_usage",model:r.model,usedTokens:i,maxContextTokens:n}))}if(t.type==="system"&&t.subtype==="status"&&t.status==="compacting"&&!this.compacting&&(this.compacting=!0,this.emit({sessionUpdate:"compaction_started"})),t.type==="system"&&t.subtype==="compact_boundary"){this.compacting=!1,this.latestUsage={};let r=E(t.compact_metadata);this.emit({sessionUpdate:"compaction_completed",reason:r.trigger,preTokens:r.pre_tokens})}}}assistant(t,r){typeof t.model=="string"&&!t.model.startsWith("<")&&(this.latestModel=t.model,this.models.add(t.model));let i=E(t.usage);r?this.latestUsage=i:this.latestUsage={...this.latestUsage,...i,output_tokens:Math.max(R(this.latestUsage.output_tokens)??0,R(i.output_tokens)??0)}}result(t,r){this.finishCompaction(),this.emit({sessionUpdate:"usage_update",usage:t.usage,model:this.models.size>1?"Claude Code (multiple models)":this.latestModel,status:r?"interrupted":t.is_error?"failed":"completed",scope:"main_loop_turn"});for(let[i,n]of Object.entries(E(t.modelUsage))){let a=R(E(n).contextWindow);a&&this.contextWindows.set(i,a)}this.context()}context(){let t=this.contextWindows.get(this.latestModel),r=R(this.latestUsage.input_tokens);if(t&&r!==null){let i=r+(R(this.latestUsage.cache_read_input_tokens)??0)+(R(this.latestUsage.cache_creation_input_tokens)??0)+(R(this.latestUsage.output_tokens)??0);this.emit({sessionUpdate:"context_usage",model:this.latestModel,usedTokens:i,maxContextTokens:t})}}finishCompaction(){this.compacting&&(this.compacting=!1,this.emit({sessionUpdate:"compaction_failed",error:"Claude ended before confirming compaction completed."}))}};var Pe=o(s=>s&&typeof s=="object"&&!Array.isArray(s)?s:{},"record"),re=new Set(["completed","failed","stopped","killed"]),Q=class{static{o(this,"ClaudeBackgroundTasks")}emit;live=new Set;tasks=new Map;tools=new Map;constructor(t){this.emit=t}get running(){return this.live.size>0}get ids(){return[...this.live]}beginTurn(){this.tasks.clear(),this.tools.clear()}tool(t){let r=String(t.toolCallId);this.tools.set(r,{...this.tools.get(r),...t})}observe(t){if(t.type!=="system")return;if(t.subtype==="background_tasks_changed"&&Array.isArray(t.tasks)){this.live=new Set(t.tasks.map(Pe).filter(c=>c.ambient!==!0&&typeof c.task_id=="string").map(c=>String(c.task_id)));return}if(typeof t.task_id!="string")return;let r=t.task_id,i=this.tasks.get(r);if(!["task_started","task_updated","task_progress","task_notification"].includes(String(t.subtype)))return;let n=t.subtype==="task_updated"?Pe(t.patch):t,a={id:r,status:"running",background:this.live.has(r),ambient:!1,...i,...typeof t.tool_use_id=="string"?{toolCallId:t.tool_use_id}:{},...typeof n.description=="string"?{description:n.description}:{},...typeof n.status=="string"?{status:n.status}:{},...typeof n.is_backgrounded=="boolean"?{background:n.is_backgrounded}:{},...typeof t.ambient=="boolean"?{ambient:t.ambient}:{},...typeof t.summary=="string"?{summary:t.summary}:typeof n.error=="string"?{summary:n.error}:{}};i&&re.has(i.status)&&(a.status=i.status),this.tasks.set(r,a),!(i&&JSON.stringify(i)===JSON.stringify(a))&&this.publish(a)}result(t,r){let i=typeof r.backgroundTaskId=="string"?r.backgroundTaskId:void 0,n=[...this.tasks.values()].find(c=>c.toolCallId===t.tool_use_id&&c.background);if(!i&&!n)return null;let a=n??this.tasks.get(i)??{id:i,status:"running",background:!0,ambient:!1};return a.toolCallId=String(t.tool_use_id),this.tasks.set(a.id,a),this.update(a,t.content)}interrupt(){for(let t of this.tasks.values())t.background&&!re.has(t.status)&&(t.status="stopped",t.summary="Background task interrupted.",this.publish(t))}publish(t){let r=this.update(t,t.summary??t.description);r&&this.emit(r)}update(t,r){if(!t.background||t.ambient||!t.toolCallId)return null;let i=this.tools.get(t.toolCallId)??{};return{...i,sessionUpdate:"tool_call_update",toolCallId:t.toolCallId,title:i.title??t.description??"Background task",status:re.has(t.status)?t.status==="completed"?"completed":"failed":"in_progress",nativeBackgroundTask:!0,nativeTaskId:t.id,content:r}}};function ze(s,t){if(!s||s.status!=="rejected")return null;let i={five_hour:"5-hour usage limit",seven_day:"Weekly usage limit",seven_day_opus:"Weekly Opus usage limit",seven_day_sonnet:"Weekly Sonnet usage limit"}[String(s.rateLimitType)];if(!i)return null;let n=`Claude ${i} reached.`,a=t?.match(/\bresets\b[^\n]+/i)?.[0];if(a)return`${n} ${a[0].toUpperCase()}${a.slice(1)}`;if(typeof s.resetsAt=="number"&&Number.isFinite(s.resetsAt)){let c=new Date(s.resetsAt*1e3);if(Number.isFinite(c.getTime())){let u=new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric",hour:"numeric",minute:"2-digit",timeZoneName:"short"}).format(c);return`${n} Resets ${u}.`}}return t?`${n} ${t}`:n}o(ze,"claudeRateLimitError");import{spawn as ut}from"node:child_process";import{randomUUID as O}from"node:crypto";import{StringDecoder as Me}from"node:string_decoder";var x=o(s=>s&&typeof s=="object"&&!Array.isArray(s)?s:{},"record"),Oe=[{id:"manual",name:"Ask for permissions"},{id:"plan",name:"Plan"},{id:"bypassPermissions",name:"YOLO / Full access"}],He=class{static{o(this,"ClaudeCliClient")}options;child=null;sessionId=null;pending=new Map;turn=null;messageId="";lastTextMessageId=null;apiErrorText=null;rateLimitInfo=null;completedResultIds=new Set;permissions=new Set;updates=Promise.resolve();closed=!1;model="default";contextWindows=new Map;observations=this.createObservations();taskProgress=new N(t=>this.emit(t));backgroundTasks=new Q(t=>this.observations.tool(t));stderrTail="";constructor(t){this.options=t}async initialize(){return{protocolVersion:1,agentCapabilities:{loadSession:!0,mcpCapabilities:{http:!0},promptCapabilities:{image:!0,embeddedContext:!0}},authMethods:[],agentInfo:{name:"Claude Code CLI",version:"native"}}}async authenticate(t){throw new Error("Use Claude Code's native login, then reconnect.")}async createSession(t,r=[]){return this.start(O(),t,!1,r)}async loadSession(t,r,i=[]){return this.start(t,r,!0,i)}async start(t,r,i,n){if(this.child||this.closed)throw new Error("Claude connection already owns a session or is closed.");if(!/^[a-f0-9-]{36}$/i.test(t))throw new Error("Invalid native Claude session identity.");this.sessionId=t;let a=Object.fromEntries(n.map(f=>[String(f.name),{type:"http",url:f.url,headers:Object.fromEntries((Array.isArray(f.headers)?f.headers:[]).map(y=>{let I=x(y);return[String(I.name),String(I.value)]}))}])),c=["--print","--verbose","--input-format","stream-json","--output-format","stream-json","--include-partial-messages",...this.options.reportingOnly?["--restricted","--tools","","--strict-mcp-config","--disable-slash-commands","--settings",JSON.stringify({disableAllHooks:!0})]:["--allow-dangerously-skip-permissions"],"--permission-prompt-tool","stdio","--append-system-prompt","When you create files for the user, link each deliverable using Markdown with its absolute local path so OpenPond can open it. For example: [Report](/absolute/path/report.pdf).",...(this.options.additionalDirectories??[]).flatMap(f=>["--add-dir",f]),...n.length?["--mcp-config",JSON.stringify({mcpServers:a})]:[],i?"--resume":"--session-id",t],u=ut(this.options.command,c,{cwd:r,env:{...this.options.env??process.env,CLAUDE_CODE_EMIT_SESSION_STATE_EVENTS:"1",...this.options.reportingOnly?{}:{CLAUDE_CODE_ENABLE_TODO_TOOLS:"1",CLAUDE_CODE_QUESTION_PREVIEW_FORMAT:"html"}},stdio:["pipe","pipe","pipe"],shell:!1,detached:process.platform!=="win32"});this.child=u;let d=new Me("utf8"),h="",g=new Me("utf8");u.stderr.on("data",f=>{this.stderrTail=(this.stderrTail+g.write(f)).slice(-4096)}),u.stdout.on("data",f=>{h+=d.write(f);let y;for(;(y=h.indexOf(`
8
8
  `))>=0;){let I=h.slice(0,y);if(h=h.slice(y+1),!!I.trim())try{if(Buffer.byteLength(I)>8*1024*1024)throw new Error("Oversized frame");this.receive(x(JSON.parse(I)))}catch{this.fail(new Error("Invalid Claude CLI protocol frame.")),this.stop();return}}Buffer.byteLength(h)>8*1024*1024&&(this.fail(new Error("Claude CLI frame exceeds limit.")),this.stop())}),u.on("error",f=>this.fail(f)),u.stdin.on("error",f=>this.fail(f)),u.on("exit",f=>{this.fail(new Error(`Claude CLI exited (${f??"signal"}).${this.stderrTail.trim()?` ${this.stderrTail.trim()}`:""}`)),_(u,"SIGTERM"),setTimeout(()=>_(u,"SIGKILL"),2e3).unref(),this.child=null});try{let f=await this.control({subtype:"initialize",hooks:null}),y=Array.isArray(f.models)?f.models.map(x).filter(w=>typeof w.value=="string"):[],I=y.find(w=>w.value==="default")?.description,j=typeof I=="string"?y.find(w=>w.value!=="default"&&typeof w.displayName=="string"&&(I===w.displayName||I.startsWith(`${w.displayName} \xB7`))):void 0;return{sessionId:t,models:{currentModelId:this.model,availableModels:y.map(w=>({modelId:String(w.value),name:w.value==="default"&&j?`${j.displayName} (default)`:String(w.displayName??w.value),...typeof w.description=="string"?{description:w.description}:{}}))},modes:{currentModeId:String(f.current_permission_mode??"manual"),availableModes:Oe.map(w=>({...w}))}}}catch(f){throw await this.stop(),f}}async setModel(t,r){this.assertSession(t),await this.control({subtype:"set_model",model:r}),this.model=r}async setMode(t,r){if(this.assertSession(t),!Oe.some(i=>i.id===r))throw new Error("Unsupported Claude permission mode.");if(this.options.reportingOnly&&r!=="manual")throw new Error("Reporting-only Claude cannot enable an editing or bypass mode.");await this.control({subtype:"set_permission_mode",mode:r})}async prompt(t,r,i){if(this.assertSession(t),this.turn)throw new Error("A prompt is already active for this native session.");if(i?.aborted)throw new Error("Claude turn cancelled.");this.observations=this.createObservations(),this.backgroundTasks.beginTurn(),this.taskProgress.beginTurn(),this.stderrTail="",this.messageId=O(),this.lastTextMessageId=null,this.apiErrorText=null,this.rateLimitInfo=null;let n=new Promise((u,d)=>{this.turn={resolve:u,reject:d,signal:i,resultReceived:!1,idle:!1,cancellationAcknowledged:!1,settled:!1,replyOrdinal:0}}),a,c=o(()=>{let u=this.turn;for(let d of this.permissions)d.abort();a=setTimeout(()=>{this.stop()},5e3),a.unref(),Promise.all([...this.backgroundTasks.ids.map(d=>this.control({subtype:"stop_task",task_id:d})),this.control({subtype:"interrupt",cancel_queued:!0})]).then(()=>{u&&this.turn===u&&!u.settled&&(u.cancellationAcknowledged=!0,this.settleCancellation())}).catch(()=>{this.stop()})},"abort");i?.addEventListener("abort",c,{once:!0});try{this.write({type:"user",session_id:t,parent_tool_use_id:null,message:{role:"user",content:r.map(d=>d.type==="image"?{type:"image",source:{type:"base64",media_type:d.mimeType,data:d.data}}:d)}});let u=await n;return await this.updates,i?.aborted?{stopReason:"cancelled"}:u}catch(u){if(await this.updates.catch(()=>{}),i?.aborted)return{stopReason:"cancelled"};throw u}finally{i?.removeEventListener("abort",c),a&&clearTimeout(a),this.turn=null;for(let u of this.permissions)u.abort();this.permissions.clear()}}assertSession(t){if(!this.child||this.sessionId!==t||this.closed)throw new Error("Session does not belong to this Claude connection.")}write(t){if(!this.child||this.child.stdin.destroyed)throw new Error("Claude connection is closed.");let r=JSON.stringify(t);if(Buffer.byteLength(r)>8*1024*1024)throw new Error("Claude input exceeds limit.");this.child.stdin.write(`${r}
9
9
  `)}control(t){let r=O();return new Promise((i,n)=>{let a=setTimeout(()=>{this.pending.delete(r),n(new Error(`Claude control request timed out: ${t.subtype}`))},this.options.requestTimeoutMs??3e4);a.unref(),this.pending.set(r,{resolve:i,reject:n,timer:a});try{this.write({type:"control_request",request_id:r,request:t})}catch(c){clearTimeout(a),this.pending.delete(r),n(c)}})}emit(t){if(!this.turn||!this.sessionId)return;let r=this.sessionId;this.updates=this.updates.then(async()=>{await this.options.onUpdate?.(r,t)}),this.updates.catch(i=>{this.fail(i),this.stop()})}createObservations(){return new K(t=>this.emit(t.sessionUpdate==="usage_update"?{...t,replyOrdinal:this.turn?.replyOrdinal??0}:t),this.contextWindows)}tool(t,r=!0){r&&this.taskProgress.tool(t),this.backgroundTasks.tool(t),this.observations.tool(t)}settleCancellation(){let t=this.turn;t&&!t.settled&&t.cancellationAcknowledged&&t.resultReceived&&t.idle&&(this.backgroundTasks.interrupt(),t.settled=!0,t.resolve({stopReason:"cancelled"}))}receive(t){if(typeof t.session_id=="string"&&t.session_id!==this.sessionId){this.fail(new Error("Claude changed native session identity.")),this.stop();return}if(!(t.type==="result"&&typeof t.uuid=="string"&&this.completedResultIds.has(t.uuid))){if(t.type==="rate_limit_event"){this.turn&&!this.turn.settled&&(this.rateLimitInfo=x(t.rate_limit_info));return}if(this.backgroundTasks.observe(t),t.type==="system"&&t.subtype==="session_state_changed"){let r=this.turn;if(!r||r.settled)return;r.idle=t.state==="idle",t.state==="running"&&r.resultReceived&&(r.resultReceived=!1,r.replyOrdinal++,this.observations=this.createObservations(),this.messageId=O(),this.lastTextMessageId=null,this.apiErrorText=null,this.rateLimitInfo=null),t.state==="idle"&&r.resultReceived&&!this.backgroundTasks.running&&!r.signal?.aborted&&(r.settled=!0,r.resolve({stopReason:"end_turn"})),this.settleCancellation();return}if(this.turn&&!this.turn.resultReceived&&this.observations.observe(t),t.type==="control_response"){let r=x(t.response),i=String(r.request_id),n=this.pending.get(i);if(!n)return;clearTimeout(n.timer),this.pending.delete(i),r.subtype==="error"?n.reject(new Error(String(r.error??"Claude control failed."))):n.resolve(x(r.response))}else if(t.type==="control_request")this.permission(t);else if(t.type==="stream_event"){if(!this.turn||this.turn.settled||this.turn.resultReceived||t.parent_tool_use_id)return;let r=x(t.event),i=x(r.delta),n=x(r.content_block);if(r.type==="message_start"){let a=x(r.message).id;this.messageId=typeof a=="string"?a:O(),this.lastTextMessageId=null}if(r.type==="content_block_delta"&&(i.type==="text_delta"||i.type==="thinking_delta")){let a=i.type==="text_delta";a&&(this.lastTextMessageId=this.messageId),this.emit({sessionUpdate:a?"agent_message_chunk":"agent_thought_chunk",messageId:this.messageId,phase:a?"commentary":"reasoning",content:{type:"text",text:i.text??i.thinking??""}})}r.type==="content_block_start"&&n.type==="tool_use"&&(this.lastTextMessageId=null,this.tool({sessionUpdate:"tool_call",toolCallId:n.id,title:n.name,kind:"other",status:"in_progress",rawInput:n.input}))}else if(t.type==="assistant"){if(!this.turn||this.turn.settled||this.turn.resultReceived)return;let r=x(t.message),i=r.content;if(!t.parent_tool_use_id&&(t.isApiErrorMessage===!0||typeof t.error=="string")){this.apiErrorText=(Array.isArray(i)?i.map(x).filter(n=>n.type==="text"&&typeof n.text=="string").map(n=>String(n.text).trim()).filter(Boolean).join(`
10
- `):"")||null,t.error==="rate_limit"&&t.quotaLimits&&(this.rateLimitInfo=x(t.quotaLimits));return}!t.parent_tool_use_id&&typeof r.id=="string"&&Array.isArray(i)&&i.some(n=>x(n).type==="text")&&(this.lastTextMessageId=r.id),!t.parent_tool_use_id&&Array.isArray(i)&&i.some(n=>x(n).type==="tool_use")&&(this.lastTextMessageId=null);for(let n of Array.isArray(i)?i.map(x):[])n.type==="tool_use"&&this.tool({sessionUpdate:"tool_call_update",toolCallId:n.id,title:n.name,status:"in_progress",rawInput:n.input},!t.parent_tool_use_id)}else if(t.type==="user"){if(!this.turn||this.turn.settled||this.turn.resultReceived)return;let r=x(t.message).content;for(let i of Array.isArray(r)?r.map(x):[])i.type==="tool_result"&&(this.observations.tool(this.backgroundTasks.result(i,x(t.tool_use_result))??{sessionUpdate:"tool_call_update",toolCallId:i.tool_use_id,status:i.is_error?"failed":"completed",content:i.content,rawOutput:t.tool_use_result}),t.parent_tool_use_id||this.taskProgress.result(i,t.tool_use_result))}else if(t.type==="result"){if(!this.turn||this.turn.settled||this.turn.resultReceived)return;if(typeof t.uuid=="string"&&this.completedResultIds.add(t.uuid),this.turn.resultReceived=!0,t.session_id&&t.session_id!==this.sessionId){this.fail(new Error("Claude changed native session identity."));return}if(!t.is_error&&!this.turn.signal?.aborted&&typeof t.result=="string"&&t.result.trim()&&this.emit({sessionUpdate:"agent_message_final",messageId:this.lastTextMessageId??O(),content:{type:"text",text:t.result}}),this.observations.result(t,!!this.turn.signal?.aborted),t.is_error&&!this.turn.signal?.aborted){let r=Array.isArray(t.errors)?t.errors.map(String).map(n=>n.trim()).filter(Boolean).join("; "):"",i=typeof t.result=="string"?t.result.trim():"";this.turn.settled=!0,this.turn.reject(new Error(ze(this.rateLimitInfo,this.apiErrorText||i||r)||r||this.apiErrorText||i||"Claude turn failed."))}}}}async permission(t){let r=x(t.request),i=String(t.request_id);if(r.subtype!=="can_use_tool"||!this.turn||this.turn.settled||this.turn.signal?.aborted||!this.sessionId){this.write({type:"control_response",response:{subtype:"error",request_id:i,error:"Unsupported or inactive control request."}});return}let n=new AbortController;this.permissions.add(n);try{let a=x(r.input),c=r.tool_name==="AskUserQuestion"&&Array.isArray(a.questions)?a.questions:void 0,u=new Promise(g=>n.signal.addEventListener("abort",()=>g({outcome:{outcome:"cancelled"}}),{once:!0})),d=await Promise.race([u,this.options.onPermission?.({sessionId:this.sessionId,toolCall:{toolCallId:r.tool_use_id,title:r.title??r.tool_name,toolName:r.tool_name,rawInput:r.input},questions:c,options:[{optionId:"allow",name:"Allow once",kind:"allow_once"},{optionId:"deny",name:"Deny",kind:"reject_once"}]},n.signal)]),h=!n.signal.aborted&&d?.outcome.outcome==="selected"&&d.outcome.optionId==="allow";this.child&&this.write({type:"control_response",response:{subtype:"success",request_id:i,response:h?{behavior:"allow",updatedInput:c?{...a,answers:d?.answers}:r.input}:{behavior:"deny",message:"Permission declined or turn cancelled."}}})}catch{this.child&&this.write({type:"control_response",response:{subtype:"success",request_id:i,response:{behavior:"deny",message:"Permission could not be resolved."}}})}finally{this.permissions.delete(n)}}fail(t){this.backgroundTasks.interrupt(),this.observations.finishCompaction();for(let r of this.pending.values())clearTimeout(r.timer),r.reject(t);this.pending.clear(),this.turn?.reject(t),this.turn=null;for(let r of this.permissions)r.abort();this.permissions.clear(),this.options.onExit?.(t)}async stop(){if(this.closed)return;this.closed=!0,this.fail(new Error("Claude connection closed."));let t=this.child;!t||t.exitCode!==null||t.signalCode!==null||(await new Promise(r=>{let i=setTimeout(()=>_(t,"SIGKILL"),2e3);i.unref(),t.once("exit",()=>{clearTimeout(i),r()}),_(t,"SIGTERM")}),this.child=null)}};export{Re as a,Qe as b,Xe as c,br as d,H as e,jt as f,ne as g,oe as h,Y as i,Z as j,St as k,$e as l,D as m,lr as n,X as o,C as p,st as q,nt as r,yr as s,Ir as t,kr as u,Ue as v,Le as w,yt as x,ht as y,ft as z,bt as A,Er as B,Rr as C,Cr as D,Ar as E,Ce as F,Ae as G,J as H,qe as I,N as J,He as K,ae as L,ee as M,de as N,he as O,we as P,xe as Q,ye as R,Ie as S,ke as T,We as U,_e as V,Je as W,je as X,Se as Y,m as Z,Xt as _,Te as $,Yt as aa,Ee as ba};
10
+ `):"")||null,t.error==="rate_limit"&&t.quotaLimits&&(this.rateLimitInfo=x(t.quotaLimits));return}!t.parent_tool_use_id&&typeof r.id=="string"&&Array.isArray(i)&&i.some(n=>x(n).type==="text")&&(this.lastTextMessageId=r.id),!t.parent_tool_use_id&&Array.isArray(i)&&i.some(n=>x(n).type==="tool_use")&&(this.lastTextMessageId=null);for(let n of Array.isArray(i)?i.map(x):[])n.type==="tool_use"&&this.tool({sessionUpdate:"tool_call_update",toolCallId:n.id,title:n.name,status:"in_progress",rawInput:n.input},!t.parent_tool_use_id)}else if(t.type==="user"){if(!this.turn||this.turn.settled||this.turn.resultReceived)return;let r=x(t.message).content;for(let i of Array.isArray(r)?r.map(x):[])i.type==="tool_result"&&(this.observations.tool(this.backgroundTasks.result(i,x(t.tool_use_result))??{sessionUpdate:"tool_call_update",toolCallId:i.tool_use_id,status:i.is_error?"failed":"completed",content:i.content,rawOutput:t.tool_use_result}),t.parent_tool_use_id||this.taskProgress.result(i,t.tool_use_result))}else if(t.type==="result"){if(!this.turn||this.turn.settled||this.turn.resultReceived)return;if(typeof t.uuid=="string"&&this.completedResultIds.add(t.uuid),this.turn.resultReceived=!0,t.session_id&&t.session_id!==this.sessionId){this.fail(new Error("Claude changed native session identity."));return}if(!t.is_error&&!this.turn.signal?.aborted&&typeof t.result=="string"&&t.result.trim()&&this.emit({sessionUpdate:"agent_message_final",messageId:this.lastTextMessageId??O(),content:{type:"text",text:t.result}}),this.observations.result(t,!!this.turn.signal?.aborted),t.is_error&&!this.turn.signal?.aborted){let r=Array.isArray(t.errors)?t.errors.map(String).map(n=>n.trim()).filter(Boolean).join("; "):"",i=typeof t.result=="string"?t.result.trim():"";this.turn.settled=!0,this.turn.reject(new Error(ze(this.rateLimitInfo,this.apiErrorText||i||r)||r||this.apiErrorText||i||"Claude turn failed."))}}}}async permission(t){let r=x(t.request),i=String(t.request_id);if(r.subtype!=="can_use_tool"||!this.turn||this.turn.settled||this.turn.signal?.aborted||!this.sessionId){this.write({type:"control_response",response:{subtype:"error",request_id:i,error:"Unsupported or inactive control request."}});return}let n=new AbortController;this.permissions.add(n);try{let a=x(r.input),c=r.tool_name==="AskUserQuestion"&&Array.isArray(a.questions)?a.questions:void 0,u=new Promise(g=>n.signal.addEventListener("abort",()=>g({outcome:{outcome:"cancelled"}}),{once:!0})),d=await Promise.race([u,this.options.onPermission?.({sessionId:this.sessionId,toolCall:{toolCallId:r.tool_use_id,title:r.title??r.tool_name,toolName:r.tool_name,rawInput:r.input},questions:c,options:[{optionId:"allow",name:"Allow once",kind:"allow_once"},{optionId:"deny",name:"Deny",kind:"reject_once"}]},n.signal)]),h=!n.signal.aborted&&d?.outcome.outcome==="selected"&&d.outcome.optionId==="allow";this.child&&this.write({type:"control_response",response:{subtype:"success",request_id:i,response:h?{behavior:"allow",updatedInput:c?{...a,answers:d?.answers}:r.input}:{behavior:"deny",message:"Permission declined or turn cancelled."}}})}catch{this.child&&this.write({type:"control_response",response:{subtype:"success",request_id:i,response:{behavior:"deny",message:"Permission could not be resolved."}}})}finally{this.permissions.delete(n)}}fail(t){this.backgroundTasks.interrupt(),this.observations.finishCompaction();for(let r of this.pending.values())clearTimeout(r.timer),r.reject(t);this.pending.clear(),this.turn?.reject(t),this.turn=null;for(let r of this.permissions)r.abort();this.permissions.clear(),this.options.onExit?.(t)}async stop(){if(this.closed)return;this.closed=!0,this.fail(new Error("Claude connection closed."));let t=this.child;!t||t.exitCode!==null||t.signalCode!==null||(await new Promise(r=>{let i=setTimeout(()=>_(t,"SIGKILL"),2e3);i.unref(),t.once("exit",()=>{clearTimeout(i),r()}),_(t,"SIGTERM")}),this.child=null)}};export{Re as a,Qe as b,Xe as c,br as d,H as e,jt as f,ne as g,oe as h,Y as i,Z as j,St as k,$e as l,D as m,lr as n,X as o,C as p,st as q,nt as r,yr as s,Ir as t,kr as u,Ue as v,Le as w,yt as x,Ce as y,Ae as z,ht as A,ft as B,bt as C,Er as D,Rr as E,Cr as F,Ar as G,J as H,qe as I,N as J,He as K,ae as L,ee as M,de as N,he as O,we as P,xe as Q,ye as R,Ie as S,ke as T,We as U,_e as V,Je as W,je as X,Se as Y,m as Z,Xt as _,Te as $,Yt as aa,Ee as ba};
@@ -1,2 +1,2 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{a as x}from"./chunk-HIYQPZ7C.js";import{m as w}from"./chunk-MHYI7ATG.js";import{j as u}from"./chunk-TMMFF6DO.js";import{ha as f}from"./chunk-M4ZRCRJM.js";import{ab as h,eb as m,fb as p}from"./chunk-PBZCXPPC.js";import{n as s}from"./chunk-VVNV4NNW.js";import{A as e}from"./chunk-PF56N7ZY.js";import{a as c}from"./chunk-FTQLQJQV.js";import g from"node:path";import{lstat as k,readFile as v,realpath as b}from"node:fs/promises";import{randomUUID as D}from"node:crypto";var y=e.object({id:e.string(),version:e.string(),contentHash:e.string().regex(/^[a-f0-9]{64}$/),feedbackKey:e.string(),release:e.object({id:e.string(),revision:e.union([e.string(),e.number()]),contentHash:e.string().regex(/^[a-f0-9]{64}$/)}).strict().nullable()}).strict(),H=e.object({binding:m,packageValue:e.unknown(),graders:e.array(y).max(100),actualGrading:e.object({pass:e.unknown(),evidence:e.unknown()}).strict().optional(),sourceCandidate:h.optional()}).strict();async function q(i,o){let n=await b(o),a=g.resolve(i);if(g.dirname(a)!==n||await b(a)!==a)throw new Error("External Dataset package escaped its private owner home.");let l=await k(a);if(!l.isFile()||l.isSymbolicLink()||l.size>32*1024*1024)throw new Error("External Dataset package is not a bounded regular file.");let r=H.parse(JSON.parse(new TextDecoder("utf8",{fatal:!0}).decode(await v(a))));return r.binding=p(r.binding),r.packageValue=u({...r,packageValue:f(r.packageValue)}),r}c(q,"readHostProfileExternalDataset");async function A(i){let o=H.parse(i.value),n=p(o.binding),a=i.release,l={id:a.harnessRelease.id,contentHash:a.harnessRelease.contentHash};if(n.protectedProfileClosureHash!==s(a.harnessRelease.files.filter(t=>t.visibility!=="policy").map(t=>({path:t.path,asset:t}))))throw new Error("The external Dataset protected Profile closure changed.");if(o.sourceCandidate){let t=await w({workspaceId:typeof a.agentSnapshot.metadata.workspaceId=="string"?a.agentSnapshot.metadata.workspaceId:a.workspaceId,sourceDir:g.join(a.bundlePath,"source")});if(s(o.sourceCandidate.harnessRelease)!==s(l)||x(t).protectedClosureHash!==o.sourceCandidate.protectedClosureHash)throw new Error("The external Dataset candidate differs from its retained frozen compiled source.")}let r=c(async t=>{if(e.object({authorized:e.literal(!0),bindingHash:e.string().regex(/^[a-f0-9]{64}$/)}).strict().parse(await i.client.request({contractVersion:1,requestId:D(),operation:"profile.externalDataset.authorize",params:{...t,bindingHash:n.contentHash}})).bindingHash!==n.contentHash)throw new Error("The host authorized another external Dataset binding.")},"authorize");return{authorize:r,resolveExternalDataset:c(async(t,d)=>{if(await r(),s(t)!==s(n)||d.profileRef.profileId!==n.profileId||d.sourceRevision!==i.sourceRevision||s(d.harnessRelease)!==s(l))throw new Error("External Dataset requested another actual Profile source or recipe.");let E=u({...o,binding:t,packageValue:f(o.packageValue)});return{binding:n,packageValue:E,authorize:r}},"resolveExternalDataset"),sourceCandidate:o.sourceCandidate}}c(A,"createHostProfileExternalDataset");export{q as a,A as b};
2
+ import{a as x}from"./chunk-HIYQPZ7C.js";import{m as w}from"./chunk-LK2K3SPM.js";import{j as u}from"./chunk-PBTXLQAU.js";import{ja as f}from"./chunk-YNQWJWIC.js";import{ab as h,eb as m,fb as p}from"./chunk-PBZCXPPC.js";import{n as s}from"./chunk-VVNV4NNW.js";import{A as e}from"./chunk-PF56N7ZY.js";import{a as c}from"./chunk-FTQLQJQV.js";import g from"node:path";import{lstat as k,readFile as v,realpath as b}from"node:fs/promises";import{randomUUID as D}from"node:crypto";var y=e.object({id:e.string(),version:e.string(),contentHash:e.string().regex(/^[a-f0-9]{64}$/),feedbackKey:e.string(),release:e.object({id:e.string(),revision:e.union([e.string(),e.number()]),contentHash:e.string().regex(/^[a-f0-9]{64}$/)}).strict().nullable()}).strict(),H=e.object({binding:m,packageValue:e.unknown(),graders:e.array(y).max(100),actualGrading:e.object({pass:e.unknown(),evidence:e.unknown()}).strict().optional(),sourceCandidate:h.optional()}).strict();async function q(i,o){let n=await b(o),a=g.resolve(i);if(g.dirname(a)!==n||await b(a)!==a)throw new Error("External Dataset package escaped its private owner home.");let l=await k(a);if(!l.isFile()||l.isSymbolicLink()||l.size>32*1024*1024)throw new Error("External Dataset package is not a bounded regular file.");let r=H.parse(JSON.parse(new TextDecoder("utf8",{fatal:!0}).decode(await v(a))));return r.binding=p(r.binding),r.packageValue=u({...r,packageValue:f(r.packageValue)}),r}c(q,"readHostProfileExternalDataset");async function A(i){let o=H.parse(i.value),n=p(o.binding),a=i.release,l={id:a.harnessRelease.id,contentHash:a.harnessRelease.contentHash};if(n.protectedProfileClosureHash!==s(a.harnessRelease.files.filter(t=>t.visibility!=="policy").map(t=>({path:t.path,asset:t}))))throw new Error("The external Dataset protected Profile closure changed.");if(o.sourceCandidate){let t=await w({workspaceId:typeof a.agentSnapshot.metadata.workspaceId=="string"?a.agentSnapshot.metadata.workspaceId:a.workspaceId,sourceDir:g.join(a.bundlePath,"source")});if(s(o.sourceCandidate.harnessRelease)!==s(l)||x(t).protectedClosureHash!==o.sourceCandidate.protectedClosureHash)throw new Error("The external Dataset candidate differs from its retained frozen compiled source.")}let r=c(async t=>{if(e.object({authorized:e.literal(!0),bindingHash:e.string().regex(/^[a-f0-9]{64}$/)}).strict().parse(await i.client.request({contractVersion:1,requestId:D(),operation:"profile.externalDataset.authorize",params:{...t,bindingHash:n.contentHash}})).bindingHash!==n.contentHash)throw new Error("The host authorized another external Dataset binding.")},"authorize");return{authorize:r,resolveExternalDataset:c(async(t,d)=>{if(await r(),s(t)!==s(n)||d.profileRef.profileId!==n.profileId||d.sourceRevision!==i.sourceRevision||s(d.harnessRelease)!==s(l))throw new Error("External Dataset requested another actual Profile source or recipe.");let E=u({...o,binding:t,packageValue:f(o.packageValue)});return{binding:n,packageValue:E,authorize:r}},"resolveExternalDataset"),sourceCandidate:o.sourceCandidate}}c(A,"createHostProfileExternalDataset");export{q as a,A as b};
@@ -0,0 +1,2 @@
1
+ import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
+ import{a as b}from"./chunk-H6C4MAUN.js";import{b as P}from"./chunk-JORRZ4BB.js";import{f as _}from"./chunk-G32BO6M5.js";import{g as h}from"./chunk-LKKMLBOH.js";import{x}from"./chunk-M3FLEZ4E.js";import{h as T}from"./chunk-3YXYBYWK.js";import{h as E,j as I,k as y}from"./chunk-UWHIU24L.js";import{F as w}from"./chunk-BKEDG3A4.js";import{a as l}from"./chunk-FTQLQJQV.js";function L(e){let a=e.result.proposal,d=a?.edits.find(t=>t.target!=="harness.json")??a?.edits[0]??null,c=e.result.outcome.metadata.routed===!0,n=a?e.result.applyReceipt?.decision==="applied"?"applied":"retained":c?"routed":"no_action",r=a?.baseHarnessRelease??e.trigger.harnessRelease,o=n==="applied"?e.result.advanceReceipt?.nextRelease??r:null;return{schemaVersion:"openpond.localHarnessRefinerActivityDisplay.v1",visibility:C(e.session)?"always":"material_only",state:"completed",workspaceId:e.result.workspace.id,result:n,decision:a?"propose":c?"route":"no_action",route:a?.route??g(e.result.outcome.metadata.route),operation:d?.operation??null,target:d?.target??null,summary:d?.summary??g(e.result.outcome.metadata.summary)??U(n,a?.route??g(e.result.outcome.metadata.route)),expectedOutcome:a?.expectedOutcome??g(e.result.outcome.metadata.expectedOutcome),reason:e.result.outcome.reason,evidenceBasis:B(e.result),critiqueStatus:a?"passed":"not_applicable",validationStatus:W(e.result),validationReceipts:e.result.validations.map(t=>({id:t.id,contentHash:t.contentHash,status:t.status,summary:t.summary})),edits:a?.edits.map(t=>({id:t.id,operation:t.operation,target:t.target,summary:t.summary,content:t.content}))??[],trigger:{id:e.trigger.id,contentHash:e.trigger.contentHash},outcome:{id:e.result.outcome.id,contentHash:e.result.outcome.contentHash},proposal:a?{id:a.id,contentHash:a.contentHash}:null,applyReceipt:e.result.applyReceipt?{id:e.result.applyReceipt.id,contentHash:e.result.applyReceipt.contentHash}:null,advanceReceipt:e.result.advanceReceipt?{id:e.result.advanceReceipt.id,contentHash:e.result.advanceReceipt.contentHash}:null,inputHarness:r,outputHarness:o}}l(L,"localHarnessRefinerActivityDisplay");function B(e){let a=e.proposal?.metadata.evidenceBasis??e.outcome.metadata.evidenceBasis,d=E.safeParse(a);return d.success?d.data:null}l(B,"evidenceBasisFromResult");function W(e){if(!e.proposal)return"not_applicable";let a=new Map(e.validations.map(c=>[c.validationId,c])),d=e.proposal.validationPlan.filter(c=>c.required);return d.some(c=>!a.has(c.id))?"pending":d.every(c=>a.get(c.id)?.status==="passed")?"passed":"failed"}l(W,"proposalValidationStatus");function C(e){return e.metadata?.automatedTasksetWorkAttempt===!0||typeof e.metadata?.tasksetId=="string"||typeof e.metadata?.benchmarkRuntime=="string"}l(C,"isEvaluationSession");function g(e){return typeof e=="string"&&e.trim()?e.trim():null}l(g,"stringMetadata");function U(e,a){return e==="no_action"?"No reusable change":e==="routed"?a?`${k(a)} issue routed`:"Issue routed":e==="applied"?a?`${k(a)} change`:"Harness change":a?`${k(a)} change`:"Harness change"}l(U,"resultSummary");function k(e){return e.length>0?`${e[0].toUpperCase()}${e.slice(1)}`:e}l(k,"titleCase");function G(e){let a=new Set,d=l((async function(n){if(q(n.session))return;let r=await b({store:e.store,...n});if(!r)return;let o=r.trigger;if(o.decision==="route_deterministically"&&o.deterministicRoute){let t=T({schemaVersion:"openpond.improvementRouteDecision.v1",id:`route-${o.contentHash.slice(0,24)}`,trigger:{id:o.id,contentHash:o.contentHash},route:o.deterministicRoute,authority:"runtime_service",automatic:!0,reason:o.reason,createdAt:o.createdAt,metadata:{}});await e.store.saveHarnessImprovementArtifact(n.turn.harnessSnapshot.workspaceId,"route_decision",t);return}o.decision==="queue_refiner"&&await c(n,o,!1)}),"processLocalHarnessImprovementBoundary");async function c(n,r,o){if(r.decision!=="queue_refiner")throw new Error("Only queued Harness Refiner triggers can be enqueued.");if(a.has(r.contentHash))return;a.add(r.contentHash);let t=Date.now();try{await e.appendRuntimeEvent(h({sessionId:n.session.id,turnId:n.turn.id,name:"harness.refiner.queued",source:"server",appId:n.session.appId,status:"pending",output:r.reason,data:{triggerId:r.id,timeoutMs:I,maxOutputTokens:y,execution:"public_package",recoveredAfterRestart:o,activity:{schemaVersion:"openpond.localHarnessRefinerActivityDisplay.v1",visibility:D(n.session),state:"running",summary:"Reviewing this Work for a reusable improvement"}}}))}catch(f){throw a.delete(r.contentHash),f}e.queue.enqueue({label:"Refine the Local Harness from a recovered execution detour",metadata:{key:r.contentHash,sessionId:n.session.id,turnId:n.turn.id,triggerId:r.id,recoveredAfterRestart:o}},async()=>{let f=0,p=Date.now(),u=null,i=null;try{await e.appendRuntimeEvent(h({sessionId:n.session.id,turnId:n.turn.id,name:"harness.refiner.started",source:"server",appId:n.session.appId,status:"started",data:{triggerId:r.id,queueWaitMs:Math.max(0,p-t),timeoutMs:I,maxOutputTokens:y,execution:"public_package",recoveredAfterRestart:o,activity:{schemaVersion:"openpond.localHarnessRefinerActivityDisplay.v1",visibility:D(n.session),state:"running",summary:"Reviewing this Work for a reusable improvement"}}})),await e.prepareReview?.(r);let s=await P({store:e.store,storeDir:e.storeDir,loadActiveRefinerRelease:e.loadActiveRefinerRelease,trigger:r,signal:new AbortController().signal,stream:l(async function*({messages:O,signal:S}){u===null&&(u=Date.now());let M=f++,A=`harness-refiner:${r.id}:${M}`,v=await _({session:n.session,turn:n.turn,provider:"openpond",model:w,requestId:A,requestOrdinal:M,requestKind:"harness_refiner",upsert:e.upsertModelUsageRecord});try{for await(let m of e.streamOpenPondHostedChatTurn({model:w,messages:O,requestId:A,reasoningEffort:"low",maxTokens:y,signal:S}))m.type==="text_delta"&&m.text?(v.observeDelta({text:m.text}),yield{text:m.text}):m.type==="reasoning_delta"&&m.text?v.observeDelta({reasoningText:m.text}):m.type==="usage"&&v.observeDelta({usage:m.usage});await v.complete(),i=Date.now()}catch(m){throw i=Date.now(),await v.fail(m,S.aborted?"interrupted":"failed"),m}},"stream")}),R=Date.now(),H=L({session:n.session,trigger:r,result:s});await e.appendRuntimeEvent(h({sessionId:n.session.id,turnId:n.turn.id,name:"harness.refiner.completed",source:"server",appId:n.session.appId,status:"completed",output:s.outcome.reason,data:{recoveredAfterRestart:o,trigger:{id:r.id,contentHash:r.contentHash},outcome:{id:s.outcome.id,contentHash:s.outcome.contentHash,decision:s.outcome.decision,routed:s.outcome.metadata.routed===!0,route:typeof s.outcome.metadata.route=="string"?s.outcome.metadata.route:null},proposal:s.proposal?{id:s.proposal.id,contentHash:s.proposal.contentHash}:null,workspaceAdvance:s.advanceReceipt?.decision??null,activity:H,timing:{queueWaitMs:Math.max(0,p-t),modelDurationMs:u===null||i===null?null:Math.max(0,i-u),materializationDurationMs:i===null?null:Math.max(0,R-i),totalJobDurationMs:Math.max(0,R-p)}}}))}catch(s){let R=Date.now();throw await e.appendRuntimeEvent(h({sessionId:n.session.id,turnId:n.turn.id,name:"harness.refiner.failed",source:"server",appId:n.session.appId,status:"failed",output:s instanceof Error?s.message:String(s),data:{triggerId:r.id,recoveredAfterRestart:o,activity:{schemaVersion:"openpond.localHarnessRefinerActivityDisplay.v1",visibility:D(n.session),state:"failed",summary:"Refiner review failed",reason:s instanceof Error?s.message:String(s)},timing:{queueWaitMs:Math.max(0,p-t),modelDurationMs:u===null||i===null?null:Math.max(0,i-u),totalJobDurationMs:Math.max(0,R-p)}}})).catch(()=>{}),s}finally{a.delete(r.contentHash)}})}return l(c,"enqueueTrigger"),d.reconcilePending=async()=>{let n=await e.store.listPendingHarnessRefinerTriggers(),r=0;for(let{workspaceId:o,trigger:t}of n){let[f,p]=await Promise.all([e.store.getSession(t.runRef),e.store.getTurn(t.turnId)]);if(!f||!p||p.sessionId!==f.id)throw new Error(`Pending Harness Refiner trigger ${t.id} references an unavailable session or turn.`);if(q(f))continue;let u=p;if(!u.harnessSnapshot){let[i,s]=await Promise.all([e.store.getHarnessWorkspace(o),e.store.getHarnessRunOverlay(t.runRef)]),R=!!(i&&s&&t.overlay&&s.id===t.overlay.id&&s.revision===t.overlay.revision&&s.contentHash===t.overlay.contentHash&&s.workspace.workspaceId===o&&s.workspace.revision===i.revision&&s.workspace.sourceRevision===i.sourceRevision&&s.workspace.channelRevision===i.currentChannel.revision&&s.baseHarnessRelease.id===t.harnessRelease.id&&s.baseHarnessRelease.contentHash===t.harnessRelease.contentHash);if(!i||!s||!t.overlay||!R)throw new Error(`Pending Harness Refiner trigger ${t.id} cannot reconstruct its missing Harness snapshot.`);u=await e.store.updateTurn(u.id,H=>x.parse({...H,harnessSnapshot:{schemaVersion:"openpond.harnessTurnSnapshot.v1",workspaceId:o,workspaceRevision:s.workspace.revision,sourceRevision:s.workspace.sourceRevision,channelName:i.currentChannel.name,channelRevision:s.workspace.channelRevision,harnessRelease:t.harnessRelease,overlay:t.overlay}}))??u}if(u.harnessSnapshot?.workspaceId!==o)throw new Error(`Pending Harness Refiner trigger ${t.id} no longer matches its Harness workspace.`);await c({session:f,turn:u},t,!0),r+=1}return r},d}l(G,"createLocalHarnessImprovementRuntime");function q(e){return e.metadata?.source==="experiment-improvement"&&typeof e.metadata.refinementCandidate=="object"?!0:e.metadata?.automatedTasksetWorkAttempt===!0&&typeof e.metadata.parentModelRunId=="string"&&e.metadata.parentModelRunId.trim().length>0}l(q,"parentModelRunOwnsRefinement");function D(e){return e.metadata?.automatedTasksetWorkAttempt===!0||typeof e.metadata?.tasksetId=="string"||typeof e.metadata?.benchmarkRuntime=="string"?"always":"material_only"}l(D,"refinerActivityVisibility");export{G as a};
@@ -0,0 +1,2 @@
1
+ import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
+ import{Ca as b,ja as w,wa as y}from"./chunk-YNQWJWIC.js";import{i as f,n}from"./chunk-VVNV4NNW.js";import{a as h}from"./chunk-FTQLQJQV.js";function I(r,a){if(!a)return null;let g=w(a),m=(r.environment.resources??[]).filter(o=>o.kind==="file"&&o.visibility==="policy_visible");if(!m.length)return null;let k=m.map(o=>{let l=g.files.filter(s=>s.asset.path===o.path&&s.asset.visibility==="policy");if(l.length!==1)throw new Error("Reviewed shared resource differs from the exact owner-local package.");let c=f.parse(l[0].asset),t=r.sourceRefs.find(s=>"sourceFileHashes"in s&&s.sourceFileHashes?.includes(c.contentHash)&&"originalFileNames"in s&&s.originalFileNames?.includes(c.path.split("/").at(-1))&&"mediaTypes"in s&&s.mediaTypes?.includes(c.mediaType));if(!t)throw new Error("Shared workflow files require existing source review of their exact bytes.");return{asset:c,sourceRefId:t.id}});return new Map(k.map(o=>[o.asset.id,o]))}h(I,"reviewedModelSharedResources");function O(r,a,g){if(r.profileId!==a.profileId||r.tasks.length!==a.tasks.length)throw new Error("Model Taskset review differs from its compiled task scope.");let m=new Map(a.sourceRefs.map(t=>[t.id,t])),k=I(a,g),o=r.tasks.map(t=>{let s=a.tasks.find(e=>e.id===t.id);if(!s)throw new Error("Model Taskset review is missing a compiled task.");if(n(t.input)!==n(s.input)||n(t.expectedOutput)!==n(s.expectedOutput)||n(t.policyVisibleContext)!==n(s.policyVisibleContext))throw new Error("Model Taskset review differs from its compiled task content.");let T=(t.assets??[]).map(e=>{let i=s.assets?.find(u=>u.id===e.id);if(!i){let u=k?.get(e.id),d=u?.asset,R=f.safeParse(e.metadata.portableAsset);if(!d||!R.success||n(R.data)!==n(d)||e.artifactRef!==d.path||e.stagingPath!==d.path||e.sha256!==d.contentHash||e.sizeBytes!==d.sizeBytes||e.mediaType!==d.mediaType||e.fileName!==d.path.split("/").at(-1)||e.split!==t.split)throw new Error("Model Taskset review differs from its compiled shared resource.");return{...e,sourceRefId:u.sourceRefId}}let p=f.safeParse(i?.metadata.portableAsset),P=i?.artifactRef===e.artifactRef||p.success&&p.data.path===e.artifactRef&&p.data.id===e.id&&p.data.contentHash===e.sha256&&p.data.sizeBytes===e.sizeBytes&&p.data.mediaType===e.mediaType&&p.data.visibility==="policy";if(!i||i.sha256!==e.sha256||i.sizeBytes!==e.sizeBytes||!P||i.mediaType!==e.mediaType||i.fileName!==e.fileName||i.split!==t.split||!s.sourceRefs.includes(i.sourceRefId)||!m.has(i.sourceRefId))throw new Error("Model Taskset review differs from its compiled input asset.");return{...e,sourceRefId:i.sourceRefId,...i.stagingPath===void 0?{}:{stagingPath:i.stagingPath}}});if((s.assets??[]).some(e=>!T.some(i=>i.id===e.id)))throw new Error("Model Taskset review lost an input asset.");return{...t,sourceRefs:[...new Set([...s.sourceRefs,...T.map(e=>e.sourceRefId)])],assets:T}}),l=r.metadata.rewardBinding,c=y.parse({...r,sourceRefs:a.sourceRefs,tasks:o,metadata:{...r.metadata,...Object.fromEntries(["trainingMethod","diagnosis","buildIntent"].filter(t=>a.metadata[t]!==void 0).map(t=>[t,a.metadata[t]]))},capabilities:{...r.capabilities,supportedSignals:a.capabilities.supportedSignals,compatibleMethods:a.capabilities.compatibleMethods},graderFixtures:a.graderFixtures,learningSignals:{...a.learningSignals,rewards:a.learningSignals.rewards.map(t=>l?{...t,artifactRef:l.id,rules:[{id:l.id,points:1,condition:"Execute the published Reward binding with its declared normalization, weights and required gates."}]}:t)}});return y.parse({...c,contentHash:b(c)})}h(O,"retainModelTasksetInputReview");export{O as a};
@@ -0,0 +1,4 @@
1
+ import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
+ import{a as z}from"./chunk-FEAKTSRS.js";import{a as P,b as _}from"./chunk-F6UQ6PPK.js";import{$ as V,Z as B}from"./chunk-XNOMIWEY.js";import{aa as S,ja as O}from"./chunk-YNQWJWIC.js";import{D as A}from"./chunk-ABF3W2MO.js";import{x as I}from"./chunk-PBZCXPPC.js";import{n as k}from"./chunk-VVNV4NNW.js";import{A as g}from"./chunk-PF56N7ZY.js";import{a as i}from"./chunk-FTQLQJQV.js";import{randomUUID as E,createHash as $}from"node:crypto";import{mkdtemp as j,mkdir as q,writeFile as R,rm as L}from"node:fs/promises";import C from"node:os";import v from"node:path";var w=g.object({score:g.number().finite().min(0).max(1).nullable(),passed:g.boolean(),feedback:g.string().max(2e4),evidenceRefs:g.array(g.string().max(240)).max(1e3).default([])}).strict().refine(e=>e.score!==null||!e.passed,{message:"Unscorable verifiers cannot pass.",path:["passed"]});function N(e){if(e==="sandbox_process")throw new Error("verifier_sandbox_process_required")}i(N,"assertIsolatedVerifierRuntime");var ce=i(async e=>{let r=O(e.packageValue);if(e.grader.runtime!=="sandbox_process")throw new Error("Select the sandbox process runtime for a local file grader.");if(!r.taskset.graders.some(o=>k(o)===k(e.grader)))throw new Error("The private grader differs from its package.");if(!r.taskset.tasks.some(o=>k(o)===k(e.task)))throw new Error("The private case differs from its package.");await e.authorize(),e.signal?.throwIfAborted();let s=await j(v.join(C.tmpdir(),"profile-private-grade-")),d=E();try{let o=new Map;for(let a of r.files.filter(t=>t.asset.visibility!=="policy")){let t=a.asset.path;if(v.isAbsolute(t)||t.split(/[\\/]/).some(n=>!n||n==="."||n===".."))throw new Error("Private grader asset path invalid.");let u=o.get(t);if(u){if(u.contentHash!==a.asset.contentHash||u.sizeBytes!==a.asset.sizeBytes)throw new Error("Private grader assets declare conflicting bytes at the same path.");continue}o.set(t,{contentHash:a.asset.contentHash,sizeBytes:a.asset.sizeBytes});let x=v.join(s,"package",t);await q(v.dirname(x),{recursive:!0,mode:448}),await R(x,S(a),{mode:256})}await R(v.join(s,"request.json"),JSON.stringify({task:e.task,attempt:e.evidence,input:e.task.input,output:e.evidence.output,artifacts:"artifacts"in e.evidence?e.evidence.artifacts:[],expectedOutput:e.task.expectedOutput}),{mode:256});let c=`import fs from 'node:fs/promises'; const module=await import(${JSON.stringify("./package/"+e.grader.verifierRef.path)}); const result=await module[${JSON.stringify(e.grader.exportName??"verify")}](JSON.parse(await fs.readFile('request.json','utf8'))); console.log(JSON.stringify(result));`;await R(v.join(s,"runner.mjs"),c,{mode:256});let m=await z({authorize:i(async()=>(await e.authorize(),e.signal?.throwIfAborted(),{candidateId:d,candidateRevision:1,ownerId:d,sessionId:d,turnId:d,sourceRoot:s,writablePaths:[]}),"authorize")})({candidateId:d,sessionId:d,turnId:d,expectedRevision:1,command:"/runtime/node --max-old-space-size=512 runner.mjs",timeoutMs:e.grader.timeoutMs,maxOutputBytes:7e4,signal:e.signal});if(await e.authorize(),e.signal?.throwIfAborted(),m.code!==0||m.timedOut||m.stdoutTruncated||m.stderrTruncated)throw new Error("Private grading sandbox did not complete.");return w.parse(JSON.parse(m.stdout))}finally{await L(s,{recursive:!0,force:!0})}},"executeLocalProfileVerifier");function de(e){return async r=>{if(!r.manifest)throw new Error("The hosted grader requires its admitted manifest.");await r.authorize(),r.signal?.throwIfAborted();let s="artifacts"in r.evidence&&Array.isArray(r.evidence.artifacts)?r.evidence.artifacts.map(({reference:a,title:t,contentType:u})=>({reference:a,title:t,contentType:u})):[],d="caseOwner"in r.evidence?r.evidence.caseOwner:null;if(!d?.sessionId||!d.turnId)throw new Error("The private grader has no sealed case owner.");let o=Buffer.from(JSON.stringify({manifest:r.manifest,packageValue:r.packageValue,graderId:r.grader.id,taskId:r.task.id,evidence:{...r.evidence,artifacts:s}}));if(o.length>2e7)throw new Error("The private grading package exceeds its transport limit.");let c={callId:E(),sessionId:d.sessionId,turnId:d.turnId,sha256:$("sha256").update(o).digest("hex"),sizeBytes:o.length,timeoutMs:r.grader.timeoutMs},f=i((a,t=12e4)=>e.request(V.parse({contractVersion:B,requestId:E(),operation:"profile-evaluations/grade",params:a}),t),"request");for(let a=0;a<o.length;a+=98304)await r.authorize(),r.signal?.throwIfAborted(),await f({...c,action:"upload",offset:a,contentsBase64:o.subarray(a,a+98304).toString("base64")});let m=await f({...c,action:"execute"},r.grader.timeoutMs+12e4);return await r.authorize(),r.signal?.throwIfAborted(),w.parse(m)}}i(de,"createHostedProfileVerifier");import{Worker as W}from"node:worker_threads";async function b(e){e.signal?.throwIfAborted(),_(e);let{javascriptVerifierWorkerSource:r}=await import("./javascript-verifier-worker-source-F3LSGPOY.js");e.signal?.throwIfAborted();let s=e.signal,d={source:e.source,exportName:e.exportName,value:e.value,timeoutMs:e.timeoutMs,maxResultBytes:e.maxResultBytes,deterministic:e.deterministic===!0,errorPrefix:e.errorPrefix},o=i(c=>new Error(`${e.errorPrefix}_${c}`),"error");return new Promise((c,f)=>{let m=new W(r,{eval:!0,workerData:d,execArgv:[],env:{},resourceLimits:{maxOldGenerationSizeMb:64,maxYoungGenerationSizeMb:16,stackSizeMb:4}}),a=!1,t=i(n=>{a||(a=!0,clearTimeout(x),s?.removeEventListener("abort",u),m.terminate().then(()=>{"error"in n?f(n.error):c(n.result)},f))},"finish"),u=i(()=>t({error:s?.reason instanceof Error?s.reason:o("cancelled")}),"cancel"),x=setTimeout(()=>t({error:o("timeout")}),e.timeoutMs);s?.addEventListener("abort",u,{once:!0}),m.once("error",n=>t({error:n})),m.once("exit",()=>{a||t({error:o("worker_exited_without_result")})}),m.once("message",n=>{try{if(!n||typeof n!="object"||!("ok"in n))throw o("worker_invalid_response");if(n.ok!==!0)throw new Error("error"in n&&typeof n.error=="string"?n.error:`${e.errorPrefix}_execution_failed`);if(!("result"in n))throw o("worker_invalid_response");I(n.result,e.maxResultBytes),t({result:n.result})}catch(h){t({error:h instanceof Error?h:o("worker_invalid_response")})}}),s?.aborted&&u()})}i(b,"executeJavaScriptIsolateInWorker");import{spawn as F}from"node:child_process";async function ye(e){e.signal?.throwIfAborted(),_(e);let{javascriptIsolateProcessSource:r}=await import("./javascript-isolate-process-source-ZPQKKLR4.js");e.signal?.throwIfAborted();let{signal:s,stripTypeScript:d,...o}=e,c=i(m=>new Error(`${e.errorPrefix}_${m}`),"error"),f=`globalThis.__openpondIsolateInput = JSON.parse(${JSON.stringify(JSON.stringify(o))});
3
+ ${d?`globalThis.__openpondIsolateInput.source = require("node:module").stripTypeScriptTypes(globalThis.__openpondIsolateInput.source, { mode: "strip" });
4
+ `:""}${r}`;return new Promise((m,a)=>{let t=F("node",["--max-old-space-size=64","--input-type=commonjs","-"],{stdio:["pipe","pipe","pipe"],env:{PATH:process.env.PATH},windowsHide:!0}),u,x="",n=0,h=0,y=i(p=>{u??=p,t.kill("SIGKILL")},"stop"),T=i(()=>y(s?.reason instanceof Error?s.reason:c("cancelled")),"cancel"),H=setTimeout(()=>y(e.errorPrefix==="candidate"?new P("candidate_timeout"):c("timeout")),e.timeoutMs);s?.addEventListener("abort",T,{once:!0}),t.stdout.setEncoding("utf8"),t.stdout.on("data",p=>{n+=Buffer.byteLength(p),n>e.maxResultBytes+65536?y(c("process_response_too_large")):x+=p}),t.stderr.on("data",p=>{h+=p.byteLength,h>65536&&y(c("process_stderr_too_large"))}),t.once("error",p=>{u??=p}),t.stdin.on("error",p=>y(p)),t.once("close",p=>{if(clearTimeout(H),s?.removeEventListener("abort",T),u){a(u);return}try{if(p!==0)throw c("process_exited_without_result");let l=JSON.parse(x);if(!l||typeof l!="object"||!("ok"in l))throw c("process_invalid_response");if(l.ok!==!0){let J="error"in l&&typeof l.error=="string"?l.error:`${e.errorPrefix}_execution_failed`;throw"executionError"in l&&l.executionError===!0?new P(J):new Error(J)}if(!("result"in l))throw c("process_invalid_response");I(l.result,e.maxResultBytes),m(l.result)}catch(l){a(l instanceof Error?l:c("process_invalid_response"))}}),t.stdin.end(f),s?.aborted&&T()})}i(ye,"executeJavaScriptIsolateInProcess");async function be(e){return N(e.runtime),w.parse(await b({...e,exportName:e.exportName??"verify",maxResultBytes:65536,errorPrefix:"verifier"}))}i(be,"executeJavaScriptVerifierInWorker");function Oe(e){return A(e,M)}i(Oe,"aggregateTasksetEvaluationInWorker");var M=i(async({source:e,module:r,exportName:s,scores:d,timeoutMs:o,signal:c})=>{let f=/\.[cm]?ts$/.test(r)?(await import("node:module")).stripTypeScriptTypes(e,{mode:"strip"}):e;return b({source:f,exportName:s,value:d,timeoutMs:o,signal:c,maxResultBytes:1024,deterministic:!0,errorPrefix:"metric"})},"executeMetric");var Be=M;import G from"node:path";function $e(e,r){let s=g.array(g.string().min(1).max(240)).max(16).parse(r.metadata.artifactAssetIds??[]);if(new Set(s).size!==s.length)throw new Error("An artifact fixture contains duplicate assets.");let d=0;return s.map(o=>{let c=e.files.filter(a=>a.asset.id===o),f=c[0];if(c.length!==1||!f||f.asset.visibility!=="host_private")throw new Error("Artifact fixtures require a unique private package asset.");let m=S(f);if((d+=m.length)>2e7)throw new Error("Artifact fixtures exceed their aggregate byte limit.");return{reference:{id:`fixture/${r.id}/${f.asset.path}`,contentHash:f.asset.contentHash,mediaType:f.asset.mediaType,sizeBytes:f.asset.sizeBytes},title:G.posix.basename(f.asset.path),contentType:f.asset.mediaType,base64:Buffer.from(m).toString("base64")}})}i($e,"localGraderFixtureArtifacts");export{ce as a,de as b,b as c,ye as d,be as e,$e as f,Oe as g,Be as h};