openpond 0.2.59 → 0.2.60
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +27 -0
- package/dist/app-server.d.ts +7 -0
- package/dist/app-server.js +1 -1
- package/dist/chunks/acp-ARBNMIPT.js +2 -0
- package/dist/chunks/acp-agent-53COYDHB.js +21 -0
- package/dist/chunks/{actions-command-JJ3CU7J6.js → actions-command-6YSZ7EJS.js} +1 -1
- package/dist/chunks/{app-layer-KAUZAHGE.js → app-layer-TVG7KTW6.js} +1 -1
- package/dist/chunks/{app-server-connected-apps-SXGZOUJJ.js → app-server-connected-apps-K62M6LCT.js} +1 -1
- package/dist/chunks/{app-server-evaluations-N4OMTPCI.js → app-server-evaluations-RM6WXX3H.js} +1 -1
- package/dist/chunks/app-server-harness-services-RLKMWOQ4.js +2 -0
- package/dist/chunks/app-server-runtime-OKMEHNEU.js +2 -0
- package/dist/chunks/apps-YWZL2H34.js +2 -0
- package/dist/chunks/{chunk-JUQMSHNR.js → chunk-23P2O7PH.js} +1 -1
- package/dist/chunks/{chunk-PF5R6CMP.js → chunk-2GICDASL.js} +1 -1
- package/dist/chunks/{chunk-6MI4KKWF.js → chunk-2ITZW2CN.js} +1 -1
- package/dist/chunks/chunk-2MMCZHKL.js +2 -0
- package/dist/chunks/{chunk-EOBHQ3JT.js → chunk-2PAJCXFC.js} +1 -1
- package/dist/chunks/{chunk-GYJQKCEO.js → chunk-2RNCXDJC.js} +1 -1
- package/dist/chunks/{chunk-APB2STJK.js → chunk-2SUMZ73C.js} +1 -1
- package/dist/chunks/{chunk-DZUN5YWB.js → chunk-3CWRTKHY.js} +1 -1
- package/dist/chunks/{chunk-TRQQNFMO.js → chunk-44LWH5U6.js} +1 -1
- package/dist/chunks/{chunk-BVQWVIGK.js → chunk-52KIORRX.js} +1 -1
- package/dist/chunks/{chunk-TG7P7BSV.js → chunk-5RHYSQZ5.js} +1 -1
- package/dist/chunks/{chunk-3QIB5FXI.js → chunk-5ZBLCWEJ.js} +1 -1
- package/dist/chunks/{chunk-25JDHAZ5.js → chunk-637UACKH.js} +1 -1
- package/dist/chunks/{chunk-VRODAXFS.js → chunk-655DQ6AX.js} +26 -26
- package/dist/chunks/{chunk-N4FFQPLR.js → chunk-6GWOVHIG.js} +1 -1
- package/dist/chunks/chunk-6HQB3MQO.js +2 -0
- package/dist/chunks/{chunk-GOPFFQZU.js → chunk-7LZISGTA.js} +2 -2
- package/dist/chunks/{chunk-MMQRHR3V.js → chunk-7RC5WPVT.js} +1 -1
- package/dist/chunks/{chunk-H6IW2R22.js → chunk-7YTHEMWI.js} +1 -1
- package/dist/chunks/{chunk-PCSIOUHF.js → chunk-A3L74U3W.js} +1 -1
- package/dist/chunks/{chunk-XMKCCLGB.js → chunk-A66CSUBJ.js} +1 -1
- package/dist/chunks/{chunk-OUVIWDL2.js → chunk-AGVOGPAZ.js} +1 -1
- package/dist/chunks/{chunk-U2MAPON2.js → chunk-AW5Q6NXT.js} +1 -1
- package/dist/chunks/{chunk-7AVNZF36.js → chunk-B46HZ3MX.js} +1 -1
- package/dist/chunks/{chunk-KGNCKIFP.js → chunk-BIPQCJ5V.js} +1 -1
- package/dist/chunks/{chunk-776WNDV2.js → chunk-BIQ33JV5.js} +1 -1
- package/dist/chunks/{chunk-JFXWI3EN.js → chunk-BK63OQRW.js} +1 -1
- package/dist/chunks/{chunk-BO5JZYWG.js → chunk-CFSIU6CW.js} +1 -1
- package/dist/chunks/{chunk-WC42WOLG.js → chunk-D3RRUWNN.js} +1 -1
- package/dist/chunks/{chunk-X4OSOOSU.js → chunk-D4UX2O45.js} +1 -1
- package/dist/chunks/{chunk-GJ2ZJFDD.js → chunk-DG4TYVPF.js} +1 -1
- package/dist/chunks/{chunk-QIKWJ2AA.js → chunk-DGIEXZJV.js} +1 -1
- package/dist/chunks/{chunk-JMBQYBPI.js → chunk-DIGX56JY.js} +1 -1
- package/dist/chunks/{chunk-4GPXTISD.js → chunk-DISNCX6R.js} +1 -1
- package/dist/chunks/{chunk-EWOSLZDX.js → chunk-DK7IKI7O.js} +1 -1
- package/dist/chunks/{chunk-74IIXVAE.js → chunk-DX7YEUNQ.js} +1 -1
- package/dist/chunks/{chunk-523TE4BI.js → chunk-E63VWAQA.js} +1 -1
- package/dist/chunks/{chunk-OLDK2LKJ.js → chunk-EL454L26.js} +1 -1
- package/dist/chunks/{chunk-WRI4XKSK.js → chunk-ENSB6ZTM.js} +1 -1
- package/dist/chunks/{chunk-EAPFMACH.js → chunk-ERJV5BMC.js} +1 -1
- package/dist/chunks/{chunk-RNIAFXMB.js → chunk-EXJGCNRS.js} +1 -1
- package/dist/chunks/chunk-F5KCCDQM.js +2 -0
- package/dist/chunks/{chunk-57TRXBLT.js → chunk-FSQWAANK.js} +1 -1
- package/dist/chunks/{chunk-BGJYITVI.js → chunk-G5B3PB5X.js} +1 -1
- package/dist/chunks/{chunk-ARLOVWQ3.js → chunk-GAWGIJQG.js} +1 -1
- package/dist/chunks/{chunk-ABZ2ZOLU.js → chunk-GGGF5NHJ.js} +1 -1
- package/dist/chunks/{chunk-4EDIRCD3.js → chunk-GOYBYYPQ.js} +1 -1
- package/dist/chunks/{chunk-H7ATCPPB.js → chunk-H3BSIAQO.js} +1 -1
- package/dist/chunks/{chunk-RBZH6A6M.js → chunk-HCEJAOIF.js} +1 -1
- package/dist/chunks/{chunk-OPNRWESL.js → chunk-IFQCOSU6.js} +1 -1
- package/dist/chunks/{chunk-VGRMAGOK.js → chunk-IJHZBHEK.js} +2 -2
- package/dist/chunks/{chunk-GUOLMLZN.js → chunk-ISFIDCIH.js} +1 -1
- package/dist/chunks/{chunk-PY6K2JRH.js → chunk-ITKTILKI.js} +1 -1
- package/dist/chunks/{chunk-3CDEBKSU.js → chunk-IUBARBGI.js} +1 -1
- package/dist/chunks/{chunk-2L5XWJJ5.js → chunk-J24I74EM.js} +1 -1
- package/dist/chunks/{chunk-IRV6GWGG.js → chunk-J7QGHA7G.js} +3 -3
- package/dist/chunks/{chunk-FAYASU7Z.js → chunk-JGWINTT5.js} +1 -1
- package/dist/chunks/{chunk-GL3NX3F3.js → chunk-JHEFWB6O.js} +1 -1
- package/dist/chunks/{chunk-V34H7Y2T.js → chunk-JHMS2WXM.js} +2 -2
- package/dist/chunks/{chunk-PSGGOZFM.js → chunk-JHR3LF2F.js} +1 -1
- package/dist/chunks/{chunk-O4VIXU7A.js → chunk-KGLJU66U.js} +3 -3
- package/dist/chunks/{chunk-XEOEKFG6.js → chunk-KJFRCVQC.js} +1 -1
- package/dist/chunks/chunk-KNO355LC.js +2 -0
- package/dist/chunks/{chunk-BQS7Z4AP.js → chunk-LD7PGREF.js} +2 -2
- package/dist/chunks/{chunk-MNC4YUDI.js → chunk-LHA7RQBA.js} +1 -1
- package/dist/chunks/{chunk-RZUEVS64.js → chunk-LO3O45IX.js} +1 -1
- package/dist/chunks/{chunk-TIHXUKFD.js → chunk-M2SKXY5C.js} +2 -2
- package/dist/chunks/{chunk-2IHO4GDJ.js → chunk-M3ZQDPRS.js} +1 -1
- package/dist/chunks/{chunk-DPHAN6N3.js → chunk-M4ZF44H5.js} +1 -1
- package/dist/chunks/{chunk-Y4OWBBDD.js → chunk-M55H7KVR.js} +1 -1
- package/dist/chunks/{chunk-NTB2O4RP.js → chunk-MGKMIRYG.js} +1 -1
- package/dist/chunks/{chunk-XJZSIXEO.js → chunk-MJGU2JJ2.js} +2 -2
- package/dist/chunks/{chunk-7K7O3CKY.js → chunk-MS37ISA4.js} +2 -2
- package/dist/chunks/{chunk-BRORSFJX.js → chunk-NCKXI2VB.js} +11 -11
- package/dist/chunks/chunk-NHUUCNAD.js +2 -0
- package/dist/chunks/{chunk-2WKUBGIF.js → chunk-O3VP46SE.js} +1 -1
- package/dist/chunks/{chunk-EUMXMT3S.js → chunk-O4FBOUNX.js} +1 -1
- package/dist/chunks/chunk-O6IFVTZT.js +9 -0
- package/dist/chunks/{chunk-ZH3K7LKQ.js → chunk-O7B44IYN.js} +1 -1
- package/dist/chunks/{chunk-ZAN4DYLH.js → chunk-OGMDEA3Y.js} +1 -1
- package/dist/chunks/{chunk-BL3YH2QU.js → chunk-OKBIWRHC.js} +1 -1
- package/dist/chunks/{chunk-FFRFSDBM.js → chunk-ON2RNOCG.js} +1 -1
- package/dist/chunks/{chunk-76M2MEHV.js → chunk-ONDCV5QC.js} +1 -1
- package/dist/chunks/{chunk-UCPGRPWY.js → chunk-OQ4VGCRG.js} +1 -1
- package/dist/chunks/{chunk-GVZLGS2U.js → chunk-OWK7HU5I.js} +1 -1
- package/dist/chunks/{chunk-JQKSXCAJ.js → chunk-OY5HC2P6.js} +1 -1
- package/dist/chunks/{chunk-T5AACNJI.js → chunk-P7HRF4FM.js} +1 -1
- package/dist/chunks/{chunk-7ED24PP6.js → chunk-PCNLC5H3.js} +1 -1
- package/dist/chunks/{chunk-ES2ISFJC.js → chunk-PF56N7ZY.js} +1 -1
- package/dist/chunks/{chunk-OX3XZKGK.js → chunk-PKALOVHC.js} +2 -2
- package/dist/chunks/{chunk-ZCHXGRRU.js → chunk-PR5TYTY4.js} +1 -1
- package/dist/chunks/{chunk-Q4TBTRIG.js → chunk-PWK5Z5S3.js} +1 -1
- package/dist/chunks/chunk-PXS4SVQG.js +16 -0
- package/dist/chunks/{chunk-AY64VY4E.js → chunk-QGOPYQW3.js} +1 -1
- package/dist/chunks/{chunk-LPWBIGKW.js → chunk-R7YEURUQ.js} +1 -1
- package/dist/chunks/{chunk-ACYFMLWG.js → chunk-RCA6NGVA.js} +2 -2
- package/dist/chunks/{chunk-DUURYZOI.js → chunk-RG3NH6YQ.js} +1 -1
- package/dist/chunks/{chunk-ATAOHSFR.js → chunk-RJIUOLWY.js} +1 -1
- package/dist/chunks/{chunk-37MWETFU.js → chunk-RXE3FYMJ.js} +1 -1
- package/dist/chunks/chunk-RYGWCN2R.js +2 -0
- package/dist/chunks/{chunk-VYLGI3IH.js → chunk-SFNCAPCJ.js} +1 -1
- package/dist/chunks/{chunk-Z4Z5UOZM.js → chunk-SG6JZ7HD.js} +1 -1
- package/dist/chunks/{chunk-IFDALGZE.js → chunk-SKRNWRKV.js} +5 -5
- package/dist/chunks/{chunk-ANFDRKUU.js → chunk-SLZH4Z6C.js} +1 -1
- package/dist/chunks/{chunk-WN3V6KDN.js → chunk-SPDSSMFD.js} +1 -1
- package/dist/chunks/{chunk-EQOV34UH.js → chunk-STWRTNRK.js} +1 -1
- package/dist/chunks/{chunk-XMWXH7TS.js → chunk-T5J7HIHR.js} +1 -1
- package/dist/chunks/{chunk-E72UU4VX.js → chunk-TBUAQWFS.js} +1 -1
- package/dist/chunks/{chunk-ZUJ3XUCP.js → chunk-TEPRCBDV.js} +1 -1
- package/dist/chunks/{chunk-2G4BEISF.js → chunk-TOFMA2L5.js} +2 -2
- package/dist/chunks/{chunk-TKLBP3MM.js → chunk-UFHLLSCE.js} +1 -1
- package/dist/chunks/{chunk-BE6SS65L.js → chunk-UJKQLO6B.js} +2 -2
- package/dist/chunks/{chunk-O3RF72BT.js → chunk-UZQNFTLR.js} +1 -1
- package/dist/chunks/{chunk-F74GBN6K.js → chunk-V2HMWCT6.js} +1 -1
- package/dist/chunks/{chunk-6ZFPQYHG.js → chunk-V4KT5FCJ.js} +1 -1
- package/dist/chunks/{chunk-TVQAPBLZ.js → chunk-VHSX3JPX.js} +1 -1
- package/dist/chunks/{chunk-22VMH6JV.js → chunk-W2SXOGTQ.js} +1 -1
- package/dist/chunks/{chunk-PH6IORGZ.js → chunk-WDEO44UN.js} +1 -1
- package/dist/chunks/{chunk-LNCHFVHT.js → chunk-WEHBK3MC.js} +1 -1
- package/dist/chunks/{chunk-KO3HNMLJ.js → chunk-WGX7WY4N.js} +1 -1
- package/dist/chunks/{chunk-CKMSBAI2.js → chunk-WHREO7A2.js} +1 -1
- package/dist/chunks/{chunk-N6ENLEMY.js → chunk-WS2ZZBAQ.js} +3 -3
- package/dist/chunks/{chunk-DIO5CB6U.js → chunk-WYZWDMMF.js} +1 -1
- package/dist/chunks/{chunk-MQULU465.js → chunk-XO3H32KX.js} +1 -1
- package/dist/chunks/{chunk-FKJHEZCW.js → chunk-XQBIHPPX.js} +1 -1
- package/dist/chunks/chunk-XRKFTPHD.js +2 -0
- package/dist/chunks/{chunk-YHHF4Q7Y.js → chunk-XSCIOQYE.js} +1 -1
- package/dist/chunks/{chunk-COHMDT7A.js → chunk-XTWEWYK7.js} +7 -7
- package/dist/chunks/{chunk-AQD7K4Z5.js → chunk-Y3GIM6WK.js} +1 -1
- package/dist/chunks/{chunk-74ZXXBGN.js → chunk-Y54RKLOI.js} +1 -1
- package/dist/chunks/{chunk-C37PUHA6.js → chunk-Y777GISF.js} +1 -1
- package/dist/chunks/{chunk-PFSMXKTI.js → chunk-YDU3S6UT.js} +1 -1
- package/dist/chunks/{chunk-UGL7WF3W.js → chunk-YOZIZYSC.js} +1 -1
- package/dist/chunks/{chunk-OSIO7PLX.js → chunk-YQKOB56U.js} +1 -1
- package/dist/chunks/chunk-YVNDDNMK.js +3 -0
- package/dist/chunks/{chunk-U5FKRYJO.js → chunk-ZAZKJJOT.js} +1 -1
- package/dist/chunks/{chunk-2RNQQNB7.js → chunk-ZR7LIMJS.js} +1 -1
- package/dist/chunks/{chunk-PQJTYOR2.js → chunk-ZTJOOY2F.js} +1 -1
- package/dist/chunks/{chunk-GPVCOEUH.js → chunk-ZTVXRZ6D.js} +1 -1
- package/dist/chunks/cli-CNYNXKGQ.js +2 -0
- package/dist/chunks/configuration-command-5K7EE2J5.js +2 -0
- package/dist/chunks/connected-app-executor-E25XCNAS.js +2 -0
- package/dist/chunks/connected-evidence-QNSO5BTF.js +2 -0
- package/dist/chunks/connection-Y2KCMBYD.js +2 -0
- package/dist/chunks/{continual-WFPIDWPH.js → continual-SOO3QBNQ.js} +1 -1
- package/dist/chunks/core-commands-ZTWPYAFQ.js +2 -0
- package/dist/chunks/datasets-XPUMWGOC.js +2 -0
- package/dist/chunks/desktop-test-HVSW4JHY.js +3 -0
- package/dist/chunks/dist-4N6AHWNN.js +2 -0
- package/dist/chunks/{dist-OMGUJYPD.js → dist-N6R6VNFD.js} +1 -1
- package/dist/chunks/{dist-OGLX76LL.js → dist-QN7WKZ2D.js} +1 -1
- package/dist/chunks/{enclave-QS4BUNDU.js → enclave-VURYNILU.js} +1 -1
- package/dist/chunks/evaluation-coordination-AOTFPVMS.js +2 -0
- package/dist/chunks/experiment-improvements-75CN3VI7.js +2 -0
- package/dist/chunks/experiments-AGAHM2AK.js +2 -0
- package/dist/chunks/{experiments-VFQGE4HC.js → experiments-DYSHYBGB.js} +1 -1
- package/dist/chunks/{extension-JCUA3RWV.js → extension-UT4CSDJF.js} +1 -1
- package/dist/chunks/help-KU52CFMW.js +8 -0
- package/dist/chunks/host-profile-evaluation-tools-LZDMQCMT.js +2 -0
- package/dist/chunks/host-profile-external-dataset-VK3NJHMC.js +2 -0
- package/dist/chunks/hosted-app-server-composition-P7V7K7CG.js +2 -0
- package/dist/chunks/{hosted-experiment-improvement-42YWXB3P.js → hosted-experiment-improvement-P433KDX2.js} +1 -1
- package/dist/chunks/hosted-harness-runtime-Y4DONWPC.js +2 -0
- package/dist/chunks/{hosted-profile-candidate-HVVC43XQ.js → hosted-profile-candidate-72MMPN6U.js} +1 -1
- package/dist/chunks/hosted-profile-compiler-RXHLK224.js +2 -0
- package/dist/chunks/hosted-profile-evaluation-control-LS4DCSDO.js +2 -0
- package/dist/chunks/{hosted-profile-evaluation-inspection-BUWLCKCD.js → hosted-profile-evaluation-inspection-3Q6EHO66.js} +1 -1
- package/dist/chunks/{hosted-profile-evaluation-preparation-3XLRR6UH.js → hosted-profile-evaluation-preparation-ZD27HNLF.js} +1 -1
- package/dist/chunks/{hosted-tasksets-THKM5QY5.js → hosted-tasksets-V2PQZJN4.js} +1 -1
- package/dist/chunks/human-review-4FJFINQX.js +2 -0
- package/dist/chunks/{import-CBDJ4DME.js → import-GBHSLA3G.js} +1 -1
- package/dist/chunks/{learning-ACEVFL5M.js → learning-U3FZL5YB.js} +1 -1
- package/dist/chunks/local-harness-improvement-runtime-UP2P7UT4.js +2 -0
- package/dist/chunks/local-harness-taskset-review-ZNOKSPJJ.js +2 -0
- package/dist/chunks/{local-scope-HVF2GZ5W.js → local-scope-62GWHDXS.js} +1 -1
- package/dist/chunks/{model-projects-QPO22JPA.js → model-projects-LQ4C6R3X.js} +1 -1
- package/dist/chunks/opchat-Q4PIWPYW.js +3 -0
- package/dist/chunks/organizations-TEH6HBQ3.js +2 -0
- package/dist/chunks/{profile-Y2MCSOUK.js → profile-SWPVCGTR.js} +1 -1
- package/dist/chunks/{profile-training-source-6GOT7AHM.js → profile-training-source-J73ZLNSC.js} +1 -1
- package/dist/chunks/project-action-payload-OU3ZPHW7.js +2 -0
- package/dist/chunks/project-agent-J7ILCRBS.js +2 -0
- package/dist/chunks/{published-experiment-source-5TMGLKDM.js → published-experiment-source-HVHKSYDL.js} +1 -1
- package/dist/chunks/refiner-profile-service-E7YU4E3N.js +2 -0
- package/dist/chunks/{runtime-QFXCXSVB.js → runtime-LIPHPKKJ.js} +2 -2
- package/dist/chunks/sandbox-command-G6KID3OP.js +2 -0
- package/dist/chunks/{sandbox-template-XWWPWWNR.js → sandbox-template-MZTMAUFS.js} +1 -1
- package/dist/chunks/saved-work-LOUWLF37.js +2 -0
- package/dist/chunks/{send-turn-SIXOZUVJ.js → send-turn-UEUEGY5W.js} +1 -1
- package/dist/chunks/{src-EZAKCCUV.js → src-7WMZOWZZ.js} +102 -95
- package/dist/chunks/{src-6SHCCYEN.js → src-MVAK6D6Y.js} +1 -1
- package/dist/chunks/standalone-experiment-turn-owner-YRKEOEJ2.js +2 -0
- package/dist/chunks/{store-continual-support-reviews-GDX6CSUU.js → store-continual-support-reviews-FJLLNKCY.js} +1 -1
- package/dist/chunks/{store-conversation-serving-W55XMDH4.js → store-conversation-serving-4KWR4IZY.js} +1 -1
- package/dist/chunks/{store-create-improve-A7E7CUPZ.js → store-create-improve-JWBJZRAU.js} +1 -1
- package/dist/chunks/{store-datasets-HKF3EO7B.js → store-datasets-4N2M6Y3K.js} +2 -2
- package/dist/chunks/{store-evaluation-results-645RFBGR.js → store-evaluation-results-OBM4623U.js} +1 -1
- package/dist/chunks/{store-harness-memory-VINCZ4GK.js → store-harness-memory-4HUEMRCD.js} +1 -1
- package/dist/chunks/{store-harness-refinement-candidates-EA5KFQPH.js → store-harness-refinement-candidates-NMRWMN23.js} +1 -1
- package/dist/chunks/store-harness-workspaces-BGONIQDY.js +2 -0
- package/dist/chunks/{store-human-review-F5KESW52.js → store-human-review-J75SIZAL.js} +1 -1
- package/dist/chunks/store-learned-preference-migration-validation-VLASM4CT.js +2 -0
- package/dist/chunks/store-learning-TUCQFBLT.js +2 -0
- package/dist/chunks/{store-learning-credentials-WZQJ4HPJ.js → store-learning-credentials-S4RF57NV.js} +1 -1
- package/dist/chunks/{store-local-experiments-HWQWNTIU.js → store-local-experiments-LULRLTII.js} +5 -5
- package/dist/chunks/{store-model-batch-review-TOCSDVAP.js → store-model-batch-review-SVL4MT6D.js} +1 -1
- package/dist/chunks/{store-model-configuration-6543ASY2.js → store-model-configuration-ZHDSM3XM.js} +2 -2
- package/dist/chunks/{store-preference-comparison-LV32MHVL.js → store-preference-comparison-YMMCKXS5.js} +1 -1
- package/dist/chunks/{store-schedules-VGTEQVKH.js → store-schedules-6Z4QS3NU.js} +1 -1
- package/dist/chunks/{store-sidebar-file-bookmarks-53B7QIGS.js → store-sidebar-file-bookmarks-MX6EP6OB.js} +2 -2
- package/dist/chunks/{store-sidebar-preferences-YXGEJVUO.js → store-sidebar-preferences-VYREPW26.js} +1 -1
- package/dist/chunks/{store-subagents-HRCAK7VZ.js → store-subagents-WGBCRALX.js} +1 -1
- package/dist/chunks/{store-task-inbox-WF74W4U2.js → store-task-inbox-43BNZSB7.js} +6 -6
- package/dist/chunks/{store-task-inventory-KHCTEZVK.js → store-task-inventory-AEW4POAJ.js} +2 -2
- package/dist/chunks/{store-taskset-drafts-3ACG5AVX.js → store-taskset-drafts-DKFO2CYB.js} +1 -1
- package/dist/chunks/{store-training-R46WOGXB.js → store-training-6PFFR6ST.js} +1 -1
- package/dist/chunks/{store-training-jobs-D4LECE7O.js → store-training-jobs-ANDEBQ67.js} +2 -2
- package/dist/chunks/{store-training-models-EQVNXOVB.js → store-training-models-OOI4ZJPX.js} +2 -2
- package/dist/chunks/{store-usage-IE2U2FD3.js → store-usage-U72RNW64.js} +1 -1
- package/dist/chunks/{store-work-evidence-QQDKM5AQ.js → store-work-evidence-NY5OBATB.js} +1 -1
- package/dist/chunks/{taskset-NR2X2UOK.js → taskset-SL3YOXW7.js} +1 -1
- package/dist/chunks/{taskset-packages-ONULEIVI.js → taskset-packages-3PCEYYDA.js} +1 -1
- package/dist/chunks/{teams-bot-CHUYMD6K.js → teams-bot-IDEF3BMI.js} +1 -1
- package/dist/chunks/{training-IDSGYGU2.js → training-57ISIC7U.js} +1 -1
- package/dist/chunks/web-search-222Y63QW.js +2 -0
- package/dist/chunks/{workspaces-2TJRDM5K.js → workspaces-5DF4H5EX.js} +1 -1
- package/dist/cli.js +1 -1
- package/dist/index.js +1 -1
- package/dist/sandbox-template/manifest.js +1 -1
- package/dist/web/assets/{App-CaRMZoxo.css → App-DbYvV_W6.css} +1 -1
- package/dist/web/assets/{App-pcwmC4IR.js → App-nzE7JU_O.js} +4 -4
- package/dist/web/assets/{AppDialog-CdHad7GT.js → AppDialog-VtNvqbDm.js} +1 -1
- package/dist/web/assets/{AppTerminalPanel-CrmoOgd4.js → AppTerminalPanel-BMfKdrrN.js} +2 -2
- package/dist/web/assets/{AppsView-0P6cBsD4.js → AppsView-CdWyrDEb.js} +1 -1
- package/dist/web/assets/{BrowserSidebar-Cb6edJw6.js → BrowserSidebar-CtOIciOa.js} +1 -1
- package/dist/web/assets/{CartesianChart-B2Sxi0lv.js → CartesianChart-u1lvLM30.js} +1 -1
- package/dist/web/assets/{CollaborationTabs-PP0AIXhb.js → CollaborationTabs-CaBfDYRW.js} +1 -1
- package/dist/web/assets/{CommandMenu-GfQIMe6W.js → CommandMenu-CFW3WJ11.js} +1 -1
- package/dist/web/assets/{CommunityView-V6KmMl5n.js → CommunityView-D2EjaeuH.js} +1 -1
- package/dist/web/assets/{ComposerCreateImproveStrip-oeVeyhPX.js → ComposerCreateImproveStrip-6wYSJdzv.js} +1 -1
- package/dist/web/assets/{ConversationImportsSettings-CuQcvVgE.js → ConversationImportsSettings-BJ4QhF7p.js} +1 -1
- package/dist/web/assets/{GetStartedView-2oZ068h_.js → GetStartedView-DBcOwIJn.js} +1 -1
- package/dist/web/assets/{HostedModelLearningReview-DLzak_Vf.js → HostedModelLearningReview-BNpK6_W9.js} +1 -1
- package/dist/web/assets/{HostedModelLearningSettings-Eca6Pd9R.js → HostedModelLearningSettings-SrsdeeoA.js} +1 -1
- package/dist/web/assets/{LabModelVersionDetailPage-DsBblnMp.js → LabModelVersionDetailPage-Cd6bRHt9.js} +1 -1
- package/dist/web/assets/{LabSkillSidebar-DDknttrB.js → LabSkillSidebar-CQfvel4w.js} +1 -1
- package/dist/web/assets/{LabsRoute-CgNiUHsy.js → LabsRoute-sXLJt1KR.js} +4 -4
- package/dist/web/assets/{MainChatThread-yCVg99LU.js → MainChatThread-dlDDK2JM.js} +2 -2
- package/dist/web/assets/{MainPane-C86le7UF.js → MainPane-DCz38-qy.js} +4 -4
- package/dist/web/assets/{MarkdownText-BBVriBCj.js → MarkdownText-Drjq6-JM.js} +1 -1
- package/dist/web/assets/{NativeSkillSidebar-D2uVZkqh.js → NativeSkillSidebar-jncZijt-.js} +1 -1
- package/dist/web/assets/{NewExperienceSwitcher-DuD6GScJ.js → NewExperienceSwitcher-DXKzoMaM.js} +1 -1
- package/dist/web/assets/{NewProjectDialog-B6XZkJrU.js → NewProjectDialog-DIyjAxJG.js} +1 -1
- package/dist/web/assets/{OutputsPage-PUlmcWjv.js → OutputsPage-Dy1cNr3n.js} +1 -1
- package/dist/web/assets/{ProjectsPage-DWBRmej6.js → ProjectsPage-D2EeybIv.js} +1 -1
- package/dist/web/assets/{RightChatPanelStack-HaCVep4t.js → RightChatPanelStack-4wUL-W9_.js} +1 -1
- package/dist/web/assets/{RightSidebarHomePanel-BUtdPb2L.js → RightSidebarHomePanel-Bd_AHUp8.js} +1 -1
- package/dist/web/assets/{ScheduledWorkPage-Dg9GkGrT.js → ScheduledWorkPage-BJkSzwz2.js} +1 -1
- package/dist/web/assets/{SettingsView-DtldfnV-.js → SettingsView-BhcP72KH.js} +3 -3
- package/dist/web/assets/{TeamChatView-C71JX4je.js → TeamChatView-CR0fdicZ.js} +1 -1
- package/dist/web/assets/{TerminalOverlay-B4F6Q36s.js → TerminalOverlay-DGrZRZ_3.js} +10 -10
- package/dist/web/assets/{TrainingCreationPanel-B9MxFzQx.js → TrainingCreationPanel-BsTG7aFS.js} +1 -1
- package/dist/web/assets/{TrainingDraftPanel-7C48sHfC.js → TrainingDraftPanel-ByErrht7.js} +1 -1
- package/dist/web/assets/{UsageSettingsSection-CC57FcUB.js → UsageSettingsSection-DeYTJbcM.js} +1 -1
- package/dist/web/assets/{WorkSidebarPanel-Cto1usLM.js → WorkSidebarPanel-DcNvEEoy.js} +1 -1
- package/dist/web/assets/{WorkspaceDiffPanel-CL7wi3kp.js → WorkspaceDiffPanel-CdPRcYWN.js} +3 -3
- package/dist/web/assets/{WorkspaceEnvironmentMenu-zdzSDofs.js → WorkspaceEnvironmentMenu-xUYg-iGn.js} +1 -1
- package/dist/web/assets/{WorkspaceGitDialogs-CZSmjnrc.js → WorkspaceGitDialogs-CBViLL3S.js} +1 -1
- package/dist/web/assets/{WorkspaceMonacoEditor-TrUDJMKb.js → WorkspaceMonacoEditor-frxie2_S.js} +3 -3
- package/dist/web/assets/{agent-connections-4Dza2mDg.js → agent-connections-D7ao-vbU.js} +1 -1
- package/dist/web/assets/{arrow-up-right-xKb5kWQJ.js → arrow-up-right-DCWPxdbD.js} +1 -1
- package/dist/web/assets/{chunk-P3BRSSRD-BsGTkgyC.js → chunk-P3BRSSRD-B5JXa0Nh.js} +1 -1
- package/dist/web/assets/{clipboard-BgjV3aCx.js → clipboard-B-GnMVLp.js} +1 -1
- package/dist/web/assets/{cloud-upload-Bw9XUsKQ.js → cloud-upload-DpaGFZ9J.js} +1 -1
- package/dist/web/assets/{cssMode-DxsFJGb-.js → cssMode-DJHE7R3W.js} +1 -1
- package/dist/web/assets/{folder-open-CbmUjIYS.js → folder-open-B-DFLDFH.js} +1 -1
- package/dist/web/assets/{folder-plus-slsst7Ct.js → folder-plus-CPXxPvSH.js} +1 -1
- package/dist/web/assets/{git-commit-horizontal-BIS-8MuS.js → git-commit-horizontal-DCTzcivA.js} +1 -1
- package/dist/web/assets/{htmlMode-BE4VOrZo.js → htmlMode-DxZVBAYd.js} +1 -1
- package/dist/web/assets/index-BojtIRzO.css +1 -0
- package/dist/web/assets/{index-DEg0S7Qk.js → index-Di1MU6Xr.js} +2 -2
- package/dist/web/assets/{info-5bL9xSSf.js → info-BMxsR_bn.js} +1 -1
- package/dist/web/assets/{jsonMode-CYimnBhD.js → jsonMode-CzWoMkpp.js} +1 -1
- package/dist/web/assets/{lspLanguageFeatures-CiFuk-P7.js → lspLanguageFeatures-15K7ND6Q.js} +1 -1
- package/dist/web/assets/{minimize-2-BGVWKvTg.js → minimize-2-DwUgqXoR.js} +1 -1
- package/dist/web/assets/{monaco.contribution-DkLVGT8N.js → monaco.contribution-BBLKjER5.js} +2 -2
- package/dist/web/assets/{monaco.contribution-BTY4dJ0f.js → monaco.contribution-DBjvSu8p.js} +2 -2
- package/dist/web/assets/{monaco.contribution-DUE3CQph.js → monaco.contribution-DUWvjhIG.js} +2 -2
- package/dist/web/assets/{monaco.contribution-C7sMrcos.js → monaco.contribution-w0zfkYLX.js} +2 -2
- package/dist/web/assets/{monitor-B5hx_tzp.js → monitor-Ihu5LVYx.js} +1 -1
- package/dist/web/assets/{play-pmSO95Qg.js → play-D_YGCdxU.js} +1 -1
- package/dist/web/assets/{python-CiZvL3LX.js → python-Q4OuoXYc.js} +1 -1
- package/dist/web/assets/{save-CvYL4DUg.js → save-DJYUOhtD.js} +1 -1
- package/dist/web/assets/{square-DT_uFOml.js → square-DXtoCBNw.js} +1 -1
- package/dist/web/assets/{toggleHighContrast-CrE1_HY0.js → toggleHighContrast-CaNeuWVE.js} +1 -1
- package/dist/web/assets/{tsMode-CI_PdZmj.js → tsMode-CJnQ2wmM.js} +1 -1
- package/dist/web/assets/{upload-PVi8vC3T.js → upload-fCP3_OEO.js} +1 -1
- package/dist/web/assets/{useLocalAgentSchedules-BHJNVf42.js → useLocalAgentSchedules-BFoH_gwZ.js} +1 -1
- package/dist/web/assets/{useProviderSettings-CU3zXyie.js → useProviderSettings-2eysgqiA.js} +1 -1
- package/dist/web/assets/{useSessionTurnCache-BE7cipLX.js → useSessionTurnCache-DLF5SPD-.js} +1 -1
- package/dist/web/assets/{wifi-off-7WiFuOhD.js → wifi-off-DZoiFrRz.js} +1 -1
- package/dist/web/assets/{workers-Cv8r4CvM.js → workers-D5nr74M-.js} +1 -1
- package/dist/web/assets/{yaml-Bj7mdkV2.js → yaml-CwsoTJmk.js} +1 -1
- package/dist/web/index.html +2 -2
- package/docs/command-reference.md +12 -0
- package/package.json +1 -1
- package/dist/chunks/app-server-harness-services-DDFUMNYC.js +0 -2
- package/dist/chunks/app-server-runtime-SVB6L26M.js +0 -2
- package/dist/chunks/apps-EZB56RHV.js +0 -2
- package/dist/chunks/chunk-7UH4YDA7.js +0 -3
- package/dist/chunks/chunk-CGWA54LE.js +0 -2
- package/dist/chunks/chunk-K44RHALX.js +0 -2
- package/dist/chunks/chunk-MFMYWZK2.js +0 -2
- package/dist/chunks/chunk-P2RSBSCT.js +0 -2
- package/dist/chunks/chunk-QDC4OW3S.js +0 -2
- package/dist/chunks/chunk-SF5HJ7PL.js +0 -16
- package/dist/chunks/chunk-YBT2NB32.js +0 -2
- package/dist/chunks/chunk-YCQSVHCD.js +0 -9
- package/dist/chunks/cli-5DFVQL5Y.js +0 -2
- package/dist/chunks/configuration-command-JS6U3RMC.js +0 -2
- package/dist/chunks/connected-app-executor-UBMGMV76.js +0 -2
- package/dist/chunks/connected-evidence-NLAIEVQ3.js +0 -2
- package/dist/chunks/connection-NZSD3U5O.js +0 -2
- package/dist/chunks/core-commands-U4IBRRY5.js +0 -2
- package/dist/chunks/datasets-UX47DTTB.js +0 -2
- package/dist/chunks/desktop-test-UUU7PD4P.js +0 -3
- package/dist/chunks/dist-W5MJYSPF.js +0 -2
- package/dist/chunks/evaluation-coordination-3YQN5JQW.js +0 -2
- package/dist/chunks/experiment-improvements-ZRVD2AGY.js +0 -2
- package/dist/chunks/experiments-JEB5A2N5.js +0 -2
- package/dist/chunks/help-KA4OINP5.js +0 -8
- package/dist/chunks/host-profile-evaluation-tools-2URLU5SG.js +0 -2
- package/dist/chunks/host-profile-external-dataset-B2AQNSDR.js +0 -2
- package/dist/chunks/hosted-app-server-composition-VJQ3FM4I.js +0 -2
- package/dist/chunks/hosted-harness-runtime-BM4WONJN.js +0 -2
- package/dist/chunks/hosted-profile-compiler-RKDWHYK3.js +0 -2
- package/dist/chunks/hosted-profile-evaluation-control-57V24UGU.js +0 -2
- package/dist/chunks/human-review-CSYAW4PC.js +0 -2
- package/dist/chunks/local-harness-improvement-runtime-3T6E7I5Q.js +0 -2
- package/dist/chunks/local-harness-taskset-review-LQPQBALH.js +0 -2
- package/dist/chunks/opchat-6ADSONAD.js +0 -3
- package/dist/chunks/organizations-GT24ZTCN.js +0 -2
- package/dist/chunks/project-action-payload-GHSLE7K3.js +0 -2
- package/dist/chunks/project-agent-YYSQIHVE.js +0 -2
- package/dist/chunks/refiner-profile-service-ZK7KAFP5.js +0 -2
- package/dist/chunks/sandbox-command-U6346TVJ.js +0 -2
- package/dist/chunks/saved-work-SWHZ4OLO.js +0 -2
- package/dist/chunks/standalone-experiment-turn-owner-LIAQWTGI.js +0 -2
- package/dist/chunks/store-harness-workspaces-XUM4Z66X.js +0 -2
- package/dist/chunks/store-learned-preference-migration-validation-V27XD4I7.js +0 -2
- package/dist/chunks/store-learning-WLG6KFIO.js +0 -2
- package/dist/chunks/web-search-BPON7H5N.js +0 -2
- package/dist/web/assets/index-erq7hUne.css +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
-
import{b as g}from"./chunk-
|
|
2
|
+
import{b as g}from"./chunk-DG4TYVPF.js";import{h as H,i as S}from"./chunk-Y54RKLOI.js";import{a as v,c as m}from"./chunk-BK63OQRW.js";import{b as c,c as u,d as o,f as r,m as f}from"./chunk-BIPQCJ5V.js";import{A as n}from"./chunk-PF56N7ZY.js";import{a as d}from"./chunk-FTQLQJQV.js";var x=n.string().trim().min(1).max(2e3),R=n.string().trim().min(1).max(1e5),_=n.enum(["create","update","delete"]),q=n.enum(["memory","prompt","skill","agent"]),w=n.enum(["runtime","product","taskset","training"]),j=n.enum(["no_action","routed","applied","retained","failed"]),k=n.enum(["not_applicable","pending","passed","rejected","failed"]),E=n.enum(["not_applicable","pending","passed","failed"]),K=n.object({schemaVersion:n.literal("openpond.harnessRefinerActivityReceipt.v1"),id:c,runRef:c,turnId:c,result:j,decision:n.enum(["no_action","route","propose"]).nullable(),route:g.nullable(),operation:_.nullable(),target:n.string().trim().min(1).max(2e3).nullable(),summary:x,evidenceBasis:H.nullable(),critiqueStatus:k,validationStatus:E,trigger:r,outcome:r.nullable(),proposal:r.nullable(),applyReceipt:r.nullable(),inputHarness:r,outputHarness:r.nullable(),createdAt:o}).strict().superRefine((e,s)=>{let a=e.result==="applied"||e.result==="retained";e.result==="no_action"?b(s,e,{decision:"no_action",route:null,operation:null,target:null,evidenceBasis:null,proposal:null,applyReceipt:null,outputHarness:null,critiqueStatus:"not_applicable",validationStatus:"not_applicable"}):e.result==="routed"?((e.decision!=="route"||!w.safeParse(e.route).success||e.operation!==null||e.target!==null||e.evidenceBasis===null||e.proposal!==null||e.applyReceipt!==null||e.outputHarness!==null)&&s.addIssue({code:"custom",message:"routed activity requires an external route and evidence basis without proposal state"}),b(s,e,{critiqueStatus:"not_applicable",validationStatus:"not_applicable"})):a?((e.decision!=="propose"||!q.safeParse(e.route).success||e.operation===null||e.target===null||e.evidenceBasis===null||e.proposal===null||e.applyReceipt===null)&&s.addIssue({code:"custom",message:"applied and retained activity requires complete proposal state"}),e.result==="applied"&&e.outputHarness===null&&s.addIssue({code:"custom",message:"applied activity requires the advanced Harness release",path:["outputHarness"]}),e.result==="applied"&&(e.critiqueStatus!=="passed"||e.validationStatus!=="passed")&&s.addIssue({code:"custom",message:"applied activity requires passed critique and validation"}),e.result==="retained"&&e.outputHarness!==null&&s.addIssue({code:"custom",message:"retained activity cannot report a new Harness release",path:["outputHarness"]})):(e.decision!==null||e.route!==null||e.operation!==null||e.target!==null||e.evidenceBasis!==null||e.outcome!==null||e.proposal!==null||e.applyReceipt!==null||e.outputHarness!==null)&&s.addIssue({code:"custom",message:"failed activity cannot claim a decision, route, proposal, or release transition"}),e.result!=="failed"&&e.outcome===null&&s.addIssue({code:"custom",message:"terminal Refiner decisions require an outcome reference",path:["outcome"]})}),M=K.extend({contentHash:u}).strict(),$=n.enum(["unresolved","confirmed","resolved","rejected","expired"]),z=n.object({kind:n.enum(["applied_change","later_success","manual_rejection","source_revoked","expired"]),reason:R,evidenceRefs:n.array(r).max(1e3),resolvedAt:o}).strict(),C=n.object({schemaVersion:n.literal("openpond.harnessRefinementCandidate.v1"),id:c,ownerScope:v,workspaceRef:c,fingerprint:u,recurrenceFamily:n.string().trim().min(1).max(1e3),statement:R,status:$,occurrences:n.array(m).max(1e3),counterevidence:n.array(m).max(1e3),sourceReviews:n.array(r).min(1).max(100),relatedHarnessReleases:n.array(r).max(100),firstSeenAt:o,lastSeenAt:o,lastReviewedAt:o,expiresAt:o,resolution:z.nullable(),createdAt:o,updatedAt:o}).strict().superRefine((e,s)=>{l(s,e.occurrences,"occurrences"),l(s,e.counterevidence,"counterevidence"),l(s,e.sourceReviews,"sourceReviews"),l(s,e.relatedHarnessReleases,"relatedHarnessReleases");let a=new Set(e.occurrences.map(i=>i.occurrenceKey));e.counterevidence.some(i=>a.has(i.occurrenceKey))&&s.addIssue({code:"custom",message:"supporting occurrences and counterevidence must be disjoint",path:["counterevidence"]});let t=e.status==="unresolved"||e.status==="confirmed";t&&e.occurrences.length===0&&s.addIssue({code:"custom",message:"actionable candidates require at least one supporting occurrence",path:["occurrences"]}),t&&[...e.occurrences,...e.counterevidence].some(i=>i.sourcePolicy.state!=="authorized")&&s.addIssue({code:"custom",message:"actionable candidates may contain only currently authorized evidence",path:["occurrences"]}),t!==(e.resolution===null)&&s.addIssue({code:"custom",message:"only resolved, rejected, or expired candidates require a resolution",path:["resolution"]}),e.status==="expired"&&e.resolution?.kind!=="expired"&&s.addIssue({code:"custom",message:"expired candidates require an expired resolution",path:["resolution","kind"]}),e.status==="rejected"&&e.resolution&&!["manual_rejection","source_revoked"].includes(e.resolution.kind)&&s.addIssue({code:"custom",message:"rejected candidates require a rejection or revocation resolution",path:["resolution","kind"]}),e.status==="resolved"&&e.resolution&&!["applied_change","later_success"].includes(e.resolution.kind)&&s.addIssue({code:"custom",message:"resolved candidates require applied-change or later-success evidence",path:["resolution","kind"]}),F(s,e)}),B=C.extend({contentHash:u}).strict(),V=n.enum(["created","merged","rejected","expired","reopened","resolved"]),A=n.object({schemaVersion:n.literal("openpond.harnessRefinementCandidateLifecycleReceipt.v1"),id:c,candidateId:c,decision:V,beforeCandidate:r.nullable(),afterCandidate:r,review:r,addedEvidence:n.array(m).max(1e3),removedEvidence:n.array(r).max(1e3),reason:R,createdAt:o}).strict().superRefine((e,s)=>{e.decision==="created"!=(e.beforeCandidate===null)&&s.addIssue({code:"custom",message:"only candidate creation omits the previous candidate reference",path:["beforeCandidate"]}),e.beforeCandidate&&e.beforeCandidate.contentHash===e.afterCandidate.contentHash&&s.addIssue({code:"custom",message:"candidate lifecycle transitions must change candidate content",path:["afterCandidate"]}),["created","reopened"].includes(e.decision)&&e.addedEvidence.length===0&&s.addIssue({code:"custom",message:`${e.decision} candidate transitions require added evidence`,path:["addedEvidence"]}),e.addedEvidence.some(t=>t.sourcePolicy.state!=="authorized")&&s.addIssue({code:"custom",message:"candidate transitions may add only authorized evidence",path:["addedEvidence"]}),l(s,e.addedEvidence,"addedEvidence"),l(s,e.removedEvidence,"removedEvidence");let a=new Set(e.removedEvidence.map(t=>h(t)));e.addedEvidence.some(t=>a.has(h(t.evidence)))&&s.addIssue({code:"custom",message:"candidate lifecycle evidence cannot be added and removed together",path:["removedEvidence"]})}),D=A.extend({contentHash:u}).strict(),I=n.object({schemaVersion:n.literal("openpond.harnessCrossRunRefinementRequest.v1"),id:c,ownerScope:v,workspaceRef:c,candidate:r,candidateFingerprint:u,review:r,admittedHarness:r,evidence:n.array(m).min(1).max(1e3),capabilities:S,deduplicationKey:u,createdAt:o}).strict().superRefine((e,s)=>{e.evidence.some(t=>t.sourcePolicy.state!=="authorized")&&s.addIssue({code:"custom",message:"cross-run refinement requires currently authorized evidence",path:["evidence"]}),l(s,e.evidence,"evidence"),Object.values(e.capabilities).some(Boolean)||s.addIssue({code:"custom",message:"cross-run refinement requires at least one available Harness capability",path:["capabilities"]});let a=P(e);e.deduplicationKey!==a&&s.addIssue({code:"custom",message:`cross-run refinement deduplicationKey is ${e.deduplicationKey}; expected ${a}`,path:["deduplicationKey"]})}),L=I.extend({contentHash:u}).strict();function N(e){return y(e,C,B)}d(N,"createHarnessRefinementCandidate");function Q(e){return y(e,A,D)}d(Q,"createHarnessRefinementCandidateLifecycleReceipt");function P(e){return f({schemaVersion:"openpond.harnessCrossRunRefinementIdentity.v1",workspaceRef:e.workspaceRef,candidateFingerprint:e.candidateFingerprint,admittedHarness:e.admittedHarness})}d(P,"harnessCrossRunRefinementDeduplicationKey");function W(e){return y(e,I,L)}d(W,"createHarnessCrossRunRefinementRequest");function y(e,s,a){let t=s.parse(e);return a.parse({...t,contentHash:f(t)})}d(y,"createHashedContract");function b(e,s,a){for(let[t,i]of Object.entries(a))s[t]!==i&&e.addIssue({code:"custom",message:`${t} must be ${String(i)}`,path:[t]})}d(b,"requireFields");function l(e,s,a){let t=s.map(i=>h(i));new Set(t).size!==t.length&&e.addIssue({code:"custom",message:`${a} references must be unique`,path:[a]})}d(l,"requireUniqueRefs");function h(e){if(!e||typeof e!="object"||Array.isArray(e))return String(e);let s=e;if(typeof s.occurrenceKey=="string")return s.occurrenceKey;let a=s.evidence;if(a&&typeof a=="object"&&!Array.isArray(a)){let t=a;return`${String(t.id)}:${String(t.contentHash)}`}return`${String(s.id)}:${String(s.contentHash)}`}d(h,"refKey");function F(e,s){let a=[["firstSeenAt",s.firstSeenAt],["lastSeenAt",s.lastSeenAt],["lastReviewedAt",s.lastReviewedAt],["updatedAt",s.updatedAt],["expiresAt",s.expiresAt]];for(let t=1;t<a.length;t+=1){let i=a[t-1],p=a[t];Date.parse(i[1])<=Date.parse(p[1])||e.addIssue({code:"custom",message:`${p[0]} must not precede ${i[0]}`,path:[p[0]]})}Date.parse(s.createdAt)>Date.parse(s.updatedAt)&&e.addIssue({code:"custom",message:"updatedAt must not precede createdAt",path:["updatedAt"]})}d(F,"requireChronology");export{B as a,D as b,L as c,N as d,Q as e,P as f,W as g};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
-
import{Fb as le,Gb as pe,Hb as me,aa as Y,db as X,eb as ee,gb as te,hb as ae,ib as se,pb as U,qb as F,rb as ne,sb as re,tb as ie,ua as N,ub as oe,v as Q,vb as ce,wb as de,xa as K}from"./chunk-XMKCCLGB.js";import{a as A,b as H,c as $,e as M,j as L,k as j,l}from"./chunk-WN3V6KDN.js";import{N as C,aa as W,ba as Z,d as _,e as G}from"./chunk-VYLGI3IH.js";import{La as J}from"./chunk-ACYFMLWG.js";import{b as o}from"./chunk-ES2ISFJC.js";import{a as y}from"./chunk-FTQLQJQV.js";var Re=o.object({id:A,purpose:o.string().trim().min(1).max(500),audience:o.enum(["orchestrator","environment","privileged_scorer","trainer","infrastructure"]),required:o.boolean(),ttlSeconds:o.number().int().positive().max(86400),scopes:o.array(o.string().trim().min(1).max(500)).max(100).default([])}).strict(),ke=o.object({declarationId:A,leaseRef:o.string().trim().min(8).max(1e3),audience:Re.shape.audience,expiresAt:$}).strict(),we=o.object({adapterId:A,placement:o.enum(["local","remote","colocated","provider_native"]),capabilityReceipt:H,runtimeVersion:o.string().trim().min(1).max(200),dataPlane:o.object({provider:A,dataPlaneId:A,cellId:A,runnerPoolId:A,runtimeImageDigest:o.string().regex(/^sha256:[a-f0-9]{64}$/),capabilityReceipt:H}).strict().nullable()}).strict(),Se=o.object({adapterId:A,kind:o.enum(["local","ssh","managed","custom"]),deviceOrPool:o.string().trim().min(1).max(1e3),capabilityReceipt:H,provider:A.nullable()}).strict(),He=o.object({adapterId:A,workerVersion:o.string().trim().min(1).max(200),workerImageDigest:o.string().regex(/^sha256:[a-f0-9]{64}$/).nullable(),upstreamRevision:o.string().trim().min(1).max(500),capabilityReceipt:H}).strict(),ue=o.object({schemaVersion:o.literal("openpond.harnessRunManifest.v1"),id:A,harnessRelease:M,datasetRelease:M,evidenceSets:o.array(M).max(1e4),model:o.object({source:o.string().trim().min(1).max(200),revision:o.string().trim().min(1).max(500),artifactHash:H.nullable(),tokenizerRevision:o.string().trim().min(1).max(500),chatTemplateHash:H}).strict(),recipe:o.object({method:o.string().trim().min(1).max(100),version:o.string().trim().min(1).max(200),configHash:H}).strict(),runtimeTarget:we,computeTarget:Se,engine:He,resolvedBundleHash:H,secretLeaseRefs:o.array(ke).max(1e3),approval:o.object({approvalHash:H,approvedAt:$,maximumSpendUsd:o.number().nonnegative().nullable()}).strict(),createdAt:$}).strict(),fe=ue.extend({contentHash:H}).strict(),ge=o.object({schemaVersion:o.literal("openpond.resolvedTrainingBundle.v1"),projection:o.literal("trainer"),harnessRelease:M,datasetRelease:M,evidenceSetRelease:M.nullable(),files:o.array(o.object({path:o.string().trim().min(1).max(2e3),sha256:H,sizeBytes:o.number().int().nonnegative()}).strict()).max(1e5)}).strict(),ve=ge.extend({contentHash:H}).strict(),Te=[{label:"OpenAI-style API key",pattern:/\bsk-[A-Za-z0-9_-]{16,}\b/g},{label:"OpenPond API key",pattern:/\bopk_[A-Za-z0-9_-]{12,}\b/g},{label:"private key",pattern:/-----BEGIN (?:RSA |EC |OPENSSH )?PRIVATE KEY-----/g},{label:"credential assignment",pattern:/\b(?:api[_-]?key|password|secret|token)["']?\s*[:=]\s*["']?[^\s"']{8,}/gi}],V=/\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}\b/gi,q=/\b(?:\+?1[-.\s]?)?\(?\d{3}\)?[-.\s]\d{3}[-.\s]\d{4}\b/g;function xe(e){let t=[],a=e;for(let s of Te)s.pattern.lastIndex=0,s.pattern.test(a)&&t.push(s.label),s.pattern.lastIndex=0,a=a.replace(s.pattern,`[REDACTED ${s.label}]`);V.lastIndex=0;let n=V.test(a);V.lastIndex=0,n&&t.push("email address"),a=a.replace(V,"[REDACTED email]"),q.lastIndex=0;let c=q.test(a);return q.lastIndex=0,c&&t.push("phone number"),a=a.replace(q,"[REDACTED phone]"),{secretStatus:t.some(s=>!s.includes("email")&&!s.includes("phone"))?"blocked":"passed",piiStatus:n||c?"review":"passed",findings:t,redacted:a}}y(xe,"scanAndRedactEvidence");function Ae(e){let t=new Map;return{tasks:e.tasks.map(({artifactRefs:n,...c})=>({...c,assets:n.map(s=>{if(s.visibility!=="policy")throw new Error("Learning task inputs must be policy-visible assets.");let i=e.assets?.find(p=>p.id===s.id),d=e.assetBytes?.get(s.id)??(i?new TextEncoder().encode(_(i,s)):void 0);if(!d||d.byteLength!==s.sizeBytes||j(d)!==s.contentHash)throw new Error(`Learning task input bytes are missing or changed: ${s.id}.`);let g=`learning/assets/${l({task:c.id,asset:s.id}).slice(0,40)}/${s.path}`;return t.set(g,new Uint8Array(d)),{id:s.id,sourceRefId:e.sourceId,artifactRef:g,fileName:s.path.split("/").at(-1),mediaType:s.mediaType,sha256:s.contentHash,sizeBytes:s.sizeBytes,split:c.split,metadata:{portableAsset:s}}}),...c.requiredOutputs?{requiredOutputs:c.requiredOutputs.map(s=>({...s,schemaRef:s.schemaRef?.id??null,maxBytes:s.maxBytes??void 0}))}:{}})),tasksetAssetBytes:t}}y(Ae,"materializeLearningBatchAssets");function Ee(e){let t=W(e),a=Z(t),n=t.environment.kind==="work";if(!n&&(t.environment.kind!=="text"||t.tools.length||t.tasks.some(r=>r.artifactRefs.length))||n&&t.tasks.some(r=>!r.requiredOutputs?.length))throw new Error("This learning batch requires a supported text or Work environment with declared outputs.");let c=e.source.id,s=Ae({tasks:t.tasks,sourceId:c,assets:e.assets,assetBytes:e.assetBytes}),i={demonstrations:[],preferences:[],corrections:[],feedback:[],rewards:[],labels:[]},d=[];for(let r of a.admissions){let h=e.evidence.find(b=>b.id===r.evidence.id),v=e.decisions.find(b=>b.id===r.decision.id);e.batch.purpose==="reward_training"&&v.grade?.training.status==="scored"&&i.rewards.push({id:`reward-${r.taskId}`,taskId:r.taskId,kind:"reward",task:e.definition.instructions,rules:[{id:e.binding.id,points:1,condition:"Execute the released Reward binding with its declared normalization, weights and gates."}],otherwisePoints:0,executable:!0,approved:!0,confidence:1,sourceRefs:[c],artifactRef:e.binding.id,metadata:{rewardBinding:C(e.binding),evidence:r.evidence,decision:r.decision}}),r.supervisedTarget!==null&&i.demonstrations.push({kind:"demonstration",id:`demo-${r.taskId}`,taskId:r.taskId,sourceRefs:[c],artifactRef:r.decision.id,approved:!0,confidence:1,prompt:null,response:JSON.stringify(r.supervisedTarget),metadata:{evidence:r.evidence,decision:r.decision,targetGradeHash:v.targetGrade?.contentHash}});for(let[b,w,T]of[["observed",h.submission.observedOutput,v.grade],["target",v.approvedTarget,v.targetGrade]]){let x=Ie(T);w===null||x===null||d.push({id:`fixture-${b}-${r.taskId}`,taskId:r.taskId,label:x.passed?"positive":"negative",output:w,infrastructureError:null,expectedPassed:x.passed,expectedRewardEligible:x.rewardEligible,metadata:{gradeReceiptHash:T.contentHash,evidence:r.evidence,decision:r.decision}})}}if(!d.length&&e.batch.purpose!=="reward_training")throw new Error("Grade at least one reviewed response before preparing this batch. Grader fixtures must come from actual receipts.");let g=le(e.binding,e.rewards,e.assets),p=[];for(let r of t.graders){if(r.kind!=="custom_verifier")continue;let h=e.assets?.find(b=>b.id===r.verifierRef.id);if(!h)throw new Error(`Reward ${r.id} is missing its immutable verifier source.`);let v=pe(r.verifierRef.contentHash);p.some(b=>b.path===v)||p.push({path:v,role:"verifier",content:_(h,r.verifierRef)})}let u=N.parse({schemaVersion:"openpond.taskset.v1",id:`learning-${l([e.profileId,e.batch.contentHash]).slice(0,40)}`,revision:1,profileId:e.profileId,profileRelease:null,createImproveRunId:null,name:`${e.definition.name} \xB7 ${e.batch.examples.length} approved examples`,objective:e.definition.instructions,purpose:"general",benchmark:null,status:"needs_review",sourceRefs:[e.source],datasetArtifact:null,policy:t.policy,environment:{protocolVersion:"openpond.taskEnvironment.v1",kind:n?"work":"chat",entrypoint:t.environment.entrypoint,stateful:t.environment.stateful,deterministicSeeds:t.environment.deterministicSeeds,toolNames:t.tools.map(r=>r.name),lifecycle:["create","reset","step","grade","cleanup"],defaultTimeoutMs:t.environment.defaultTimeoutMs,networkPolicy:t.environment.networkPolicy,metadata:{portableEnvironment:t.environment,portableTools:t.tools}},capabilities:{schemaVersion:"openpond.tasksetCapabilities.v1",taskKind:n?"single_agent":"chat",supportedSignals:i.demonstrations.length?["demonstration","reward"]:["reward"],compatibleMethods:e.batch.purpose==="supervised_training"?["sft"]:e.batch.purpose==="reward_training"?["grpo","ppo"]:["none"],rewardKinds:[...new Set(t.graders.map(r=>r.kind==="human"?"human":r.kind==="model_judge"?"model_judge":"deterministic"))],requiresTools:t.tools.length>0,requiresState:t.environment.stateful,requiresPrivilegedGrading:!0,environmentPlacements:["local","remote"],exportable:!0,portabilityBlockers:[]},tasks:s.tasks.map(r=>({...r,schemaVersion:"openpond.taskData.v1",sourceRefs:[c],metadata:{admission:a.admissions.find(h=>h.taskId===r.id),exampleOrigin:e.evidence.find(h=>h.id===r.id)?.correctionFeedbackId?"corrected":"extracted"}})),graders:g,graderFixtures:d,learningSignals:i,authoringProvenance:{schemaVersion:"openpond.taskAuthoringProvenance.v1",model:null,modelConfig:{},skillHash:l("openpond-learning-batch-v1"),promptTemplateVersion:"learning-batch-v1",buildIntent:e.batch.purpose==="supervised_training"?"demonstrations":"verifiable_reward",buildSpecification:null,evidenceHashes:e.batch.examples.map(r=>r.evidence.contentHash),tasksetSdkVersion:"learning-batch-v1",sourceCommit:null,repairHistory:[],createdAt:e.batch.sealedAt},readiness:null,contentHash:"00000000",createdAt:e.batch.sealedAt,updatedAt:e.batch.sealedAt,metadata:{learning:a,learningRelease:C(t),trainingMethod:e.batch.purpose==="supervised_training"?"sft":e.batch.purpose==="reward_training"?"grpo":"none",tasksetOutputContract:n?{mode:"artifacts",requiredOutputSource:"task.requiredOutputs"}:{mode:"structured_json",jsonSchema:e.definition.outputSchema,renderer:null}}});return{taskset:N.parse({...u,contentHash:K(u)}),release:t,generatedFiles:p,tasksetAssetBytes:s.tasksetAssetBytes}}y(Ee,"materializeLearningBatchTaskset");function Ie(e){if(!e)return null;let t=e.training.status==="not_configured"?e.evaluation:e.training;return t.status!=="scored"?null:{passed:t.passed===!0,rewardEligible:e.training.status==="scored"}}y(Ie,"fixtureOutcome");function Ue(e){let t=[],a=0;for(let s of new Map(e.evidence.flatMap(i=>i.submission.assets.map(d=>[d.id,d]))).values()){let i=e.assetBytes?.get(s.id),d=e.assets?.find(p=>p.id===s.id),g=i?.byteLength??(d?new TextEncoder().encode(d.text).byteLength:0);if(a+=g,a>Y)throw new Error("Learning input assets exceed the training package limit.");i?t.push(new TextDecoder().decode(i)):d&&t.push(d.text)}let n=xe(JSON.stringify({tasks:e.evidence.map(s=>s.submission),targets:e.decisions.map(s=>s.approvedTarget),definition:e.definition,inputAssets:t}));if(n.secretStatus!=="passed"||n.piiStatus!=="passed")throw new Error(`Learning batch contains unresolved data findings (${n.findings.join(", ")}). Correct the source examples and seal a revised batch before training.`);let c=Q.parse({schemaVersion:"openpond.learningBatchDatasetSource.v1",kind:"learning_batch",id:`batch-source-${e.batch.contentHash.slice(0,40)}`,profileId:e.profileId,title:e.definition.name,sourceHash:e.batch.contentHash,occurredAt:e.batch.sealedAt,batch:C(e.batch),taskDefinition:e.batch.taskDefinition,admittedBy:e.batch.sealedBy,licensingStatus:"approved",secretScanStatus:n.secretStatus,piiScanStatus:n.piiStatus,metadata:{admission:e.admissionContext??"explicit_local_batch_review",privacyScanner:"openpond-evidence-v1",findings:n.findings}});return Ee({...e,source:c})}y(Ue,"prepareReviewedLearningBatch");async function Je(e){let t=structuredClone(e),{project:a,recipe:n,taskset:c,approval:s}=t,i=fe.parse(t.manifest),d=ve.parse(t.bundleManifest),{contentHash:g,...p}=i,{contentHash:u,...r}=d;if(l(p)!==g||l(r)!==u||i.resolvedBundleHash!==u||l(i.harnessRelease)!==l(d.harnessRelease)||l(i.datasetRelease)!==l(d.datasetRelease)||l(i.evidenceSets)!==l(d.evidenceSetRelease?[d.evidenceSetRelease]:[]))throw new Error("The managed training manifest or resolved bundle changed.");if(!a.hosted||a.hosted.syncedSourceRevision!==a.revision||a.hosted.portableProjectId!==a.id)throw new Error("Sync the exact Model Project revision before preparing managed training.");let h=a.trainingSetup.baseModel;if(!h||h.modelId!==i.model.source||h.revision!==i.model.revision||h.tokenizerRevision!==i.model.tokenizerRevision||h.chatTemplateHash!==i.model.chatTemplateHash)throw new Error("The synced Model Project base Model does not match the Run manifest.");if(n.method!=="grpo"||l(n)!==i.recipe.configHash||s.approvalHash!==i.approval.approvalHash||s.maximumSpendUsd!==i.approval.maximumSpendUsd)throw new Error("Managed training requires the exact approved GRPO recipe and spend ceiling.");let v=o.object({wallTimeMs:o.number().positive()}).parse(n.resourceLimits);t.idempotencyKey!==void 0&&o.string().trim().min(16).max(191).parse(t.idempotencyKey);let b=Me(d,t.files),w=F.parse(t.evaluationSource),T=b.find(z=>z.path===U);if(!T||l(JSON.parse(Buffer.from(T.content,"base64").toString("utf8")))!==l(w))throw new Error("The evaluation source differs from the immutable training bundle.");let x=await re(w),S={schemaVersion:"openpond.managedRlPortableSubmission.v1",...t.origin?{origin:G.parse(t.origin)}:{},sourceRunRef:`openpond:model-run:${i.id}`,name:`OpenPond Managed \xB7 ${a.id}`.slice(0,191),idempotencyKey:t.idempotencyKey??`openpond-managed:${g}`.slice(0,191),modelProject:{id:a.hosted.projectId,portableProjectId:a.hosted.portableProjectId},manifest:i,sourceTaskset:c,modelImprovementQualification:t.modelImprovementQualification??null,recipe:n,resolvedBundle:{manifest:d,files:b},validationTasks:w.tasks,validationAssets:w.assets},I={schemaVersion:"openpond.trainingInputArtifactUpload.v2",kind:"portable_training_bundle",idempotencyKey:`stage:${t.idempotencyKey??g}`,sourceManifest:{id:i.id,contentHash:g},payload:S},P=await oe({...I,contentHash:await ie(I)}),m={schemaVersion:"openpond.trainingJobSubmission.v2",idempotencyKey:t.idempotencyKey??`openpond-training-v2:${g}`,name:`OpenPond Managed \xB7 ${a.id}`.slice(0,200),source:{...t.origin?{origin:G.parse(t.origin)}:{},modelProject:{id:a.hosted.projectId,portableProjectId:a.hosted.portableProjectId,revision:a.revision,contentHash:a.hosted.etag},harnessRunManifest:I.sourceManifest,harnessRelease:i.harnessRelease,taskset:c,tasksetRelease:{id:c.id,contentHash:c.contentHash},dataset:d.datasetRelease,evaluation:x,evidenceSets:d.evidenceSetRelease?[d.evidenceSetRelease]:[]},job:{kind:"policy_optimize",baseModel:h,recipe:n,rewardSource:t.rewardSource,resumeFrom:t.resumeFrom},requestedCapabilities:[{id:"managed_rl.policy.grpo",version:"1",required:!0},{id:`managed_rl.rollouts.${i.runtimeTarget.placement}`,version:"1",required:!0},...a.trainingSetup.managedGpuRequirement==="h100_hbm3"?[{id:"managed_rl.gpu.h100_hbm3",version:"1",required:!0}]:[]],placementObjective:a.trainingSetup.managedGpuPlacementObjective,budget:{maximumSpendUsd:s.maximumSpendUsd,maximumWallSeconds:Math.ceil(v.wallTimeMs/1e3)},approval:{...s,approvedAt:i.approval.approvedAt,exportApproved:!0}},f=await de({...m,contentHash:await ce(m)});return{artifact:P,submission:f}}y(Je,"prepareManagedTrainingSubmission");function Me(e,t){if(t.length!==e.files.length||new Set(t.map(n=>n.path)).size!==t.length)throw new Error("The managed bundle file inventory changed.");let a=new Map(t.map(n=>[n.path,n]));return e.files.map(n=>{let c=a.get(n.path);if(!c||c.path.includes("\\")||c.path.includes("\0")||c.path.split("/").some(i=>!i||i==="."||i==="..")||c.path==="bundle-manifest.json"||c.encoding!=="base64")throw new Error("The managed bundle contains an invalid file.");let s=Buffer.from(c.content,"base64");if(s.toString("base64")!==c.content||c.sha256!==n.sha256||c.sizeBytes!==n.sizeBytes||s.byteLength!==n.sizeBytes||j(s)!==n.sha256)throw new Error(`Managed training bundle file ${c.path} changed before upload.`);return c})}y(Me,"verifyFiles");var Be=o.object({name:o.literal("adamw").default("adamw"),weightDecay:o.number().nonnegative().max(1).default(0),beta1:o.number().positive().lt(1).default(.9),beta2:o.number().positive().lt(1).default(.999),epsilon:o.number().positive().max(.01).default(1e-8)}).strict().default({name:"adamw",weightDecay:0,beta1:.9,beta2:.999,epsilon:1e-8});function Ze(e,t){if(!t||typeof t!="object"||Array.isArray(t))return t;let a=t;if(a.method==="dpo"){let S=R(a.policyModel),I=R(a.referenceModel),P=R(a.dataset),m=l({tasksetHash:e.contentHash,preferenceSignals:e.learningSignals.preferences.map(f=>({id:f.id,artifactRef:f.artifactRef,prompt:f.prompt,chosen:f.chosen,rejected:f.rejected,approved:f.approved})),policyModel:S,referenceModel:I,dataset:P});return{...a,referenceLogprobs:{cacheSchemaVersion:"openpond.dpoReferenceLogprobs.v1",cacheKey:l(["dpo-reference-logprobs",m]),invalidationHash:m}}}if(a.method==="ppo"){let S=R(a.policyOptimization),I=R(S.policyModel),P=R(S.referenceModel),m=R(S.optimizer),f=R(m.valueModel),z=R(S.dataset),k=R(S.reward),O=l(I),D=l(P),ye=l(f);return{...a,policyOptimization:{...S,dataset:{...z,tasksetId:e.id,tasksetHash:e.contentHash},reward:{...k,graderHash:l(e.graders)}},resume:{...R(a.resume),policyHash:O,referenceHash:D,valueModelHash:ye}}}if(a.method!=="grpo")return t;let n=a.reward&&typeof a.reward=="object"&&!Array.isArray(a.reward)?a.reward:{},c=e.environment.metadata.toolContractHash,s=typeof c=="string"&&c.trim()?c:n.toolContractHash,i=R(a.baseModel),d=R(a.dataset),g=R(a.rollout),p=R(a.optimizer),u=R(a.loss),r=R(a.resourceLimits),h=E(d.maxExamples,1),v=E(g.groupSize,2),b=E(g.maxOutputTokens,1),w=E(d.maxPromptTokens,1),T=E(p.maxSteps,1),x=E(p.iterations,2);return{...a,resourceLimits:{...r,maxGpuSeconds:r.maxGpuSeconds??Math.min(10800,Math.ceil(E(r.wallTimeMs,18e4)/1e3))},reward:{...n,graderHash:l(e.graders),toolContractHash:s},policyOptimization:{schemaVersion:"openpond.policyOptimization.v1",policyModel:i,referenceModel:i,dataset:{tasksetId:e.id,tasksetHash:e.contentHash,split:"train",selectionStrategy:d.selectionStrategy,selectionSeed:g.seed,maxExamples:h},sampler:{temperature:g.temperature,topP:g.topP,maxOutputTokens:b,maxTurns:g.maxTurns,concurrency:g.concurrency},environment:{id:n.environmentId,version:n.environmentVersion,toolContractHash:s},reward:{graderId:n.graderId,graderHash:l(e.graders),learnedPreference:n.learnedPreference??null},kl:{coefficient:u.klBeta??null,referenceConstraint:"fixed_reference"},budgets:{maxRollouts:E(r.maxRollouts,h*v),maxEnvironmentExecutions:E(r.maxRollouts,h*v),maxInputTokens:h*v*w,maxOutputTokens:h*v*b,maxOptimizerSteps:T*x,wallTimeMs:E(r.wallTimeMs,18e4),maximumCostUsd:null},checkpointEverySteps:1,seed:g.seed,evaluationSplit:"frozen_eval",optimizer:{method:"grpo",groupSize:v,normalization:"group_standardized",advantageEpsilon:typeof p.advantageEpsilon=="number"?p.advantageEpsilon:1e-8,loss:u.method??"grpo",clipRange:typeof p.clipRange=="number"?p.clipRange:.2,iterations:x,microbatchSize:E(p.microbatchSize,1),gradientAccumulationSteps:E(p.gradientAccumulationSteps,1),adamw:Be.parse(p.adamw)}}}}y(Ze,"withAuthoritativeRecipeHashes");function R(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:{}}y(R,"record");function E(e,t){return typeof e=="number"&&Number.isInteger(e)&&e>0?e:t}y(E,"positiveInteger");function Qe(e){let t=e.sourceRelease,a=[],n=e.skills??[],c=e.agents??[];if([...n,...c].some(p=>p.visibility!=="policy"))throw new Error("The portable policy Harness requires policy-visible dependencies.");let s=he({id:"desktop-dependency-lock",path:".openpond/harness/dependency-lock.json",hashInput:{profileHead:e.profileHead??null,sourceRelease:t,tools:a,skills:n.map(({id:p,contentHash:u})=>({id:p,contentHash:u})),agents:c.map(({id:p,contentHash:u})=>({id:p,contentHash:u}))},mediaType:"application/json",visibility:"policy"}),i=X({schemaVersion:"openpond.agentSnapshot.v2",id:`agent-snapshot-${l([t,a,s.contentHash]).slice(0,24)}`,sourceRelease:t,instructions:[],skills:n,agents:c,toolDeclarations:a,capabilityRequirements:[],dependencyLock:s,portability:{portable:!0,blockers:[],localOnlyAssetRefs:[],hostPrivateAssetRefs:[]},metadata:{sourceReleaseId:t?.id??null}}),d=he({id:"desktop-harness-program",path:".openpond/harness/program.json",hashInput:{program:"openpond.desktop-agent-loop.v1"},mediaType:"application/json",visibility:"policy"}),g=ee({schemaVersion:"openpond.harnessRelease.v2",id:`harness-${l([i.contentHash,d.contentHash,a]).slice(0,24)}`,agentSnapshot:{id:i.id,contentHash:i.contentHash},program:d,tools:a,lifecycle:{create:!0,reset:!0,step:!0,collect:!0,destroy:!0,resetScope:"attempt"},graderInterface:{visibleEvidence:["output","runtime_events","artifacts"],privilegedEvidence:["expected_output","private_verifier"],privateVerifierIsolation:!0},files:[...n,...c],metadata:{runtimeProtocol:"openpond.desktop-agent-loop.v1"}});return{agentSnapshot:i,harnessRelease:g}}y(Qe,"createPolicyHarnessContext");function he(e){let t=L(e.hashInput);return{id:e.id,path:e.path,contentHash:l(e.hashInput),sizeBytes:new TextEncoder().encode(t).byteLength,mediaType:e.mediaType,visibility:e.visibility}}y(he,"asset");function Ye(e){let{taskset:t,modelProject:a,harnessRelease:n,tasksetRelease:c}=e,s=a.trainingSetup,i=M.parse(n),d=M.parse(c);if(e.openpondRelease,e.workerProtocol,K(t)!==t.contentHash)throw new Error("Taskset authoring state changed after its release was selected.");if(!s.baseModel?.revision||!s.baseModel.tokenizerRevision||!s.baseModel.chatTemplateHash||!s.recipe||!s.tasksetRef||s.tasksetRef.id!==t.id||s.tasksetRef.contentHash!==t.contentHash)throw new Error("Model Run must bind an exact Taskset, Model revision, tokenizer, chat template, and Recipe.");let p=t.profileRelease??{id:`profile_${t.profileId}`,revision:t.revision,contentHash:l({profileId:t.profileId,sourceCommit:t.authoringProvenance.sourceCommit,skillHash:t.authoringProvenance.skillHash})},u=new Map;if(e.evaluationSource){let m=F.parse(e.evaluationSource);if(l(m.taskset)!==l(s.evaluationTasksetRef))throw new Error("The evaluation source differs from the prepared Model configuration.");ne(t.tasks.filter(f=>f.split==="train"),m.tasks),u.set(U,new TextEncoder().encode(L(m)))}else if(s.evaluationTasksetRef)throw new Error("The prepared Model requires its pinned evaluation source bytes.");let r=e.harnessSource?e.harnessSource.schemaVersion==="openpond.harnessPolicySourcePackage.v1"?ae(e.harnessSource,i):se(e.harnessSource,i):null;if(s.harnessRelease&&!r)throw new Error("A selected Harness requires its complete immutable source package.");if(r&&(!s.harnessRelease||s.harnessRelease.id!==i.id||s.harnessRelease.contentHash!==i.contentHash))throw new Error("Harness source differs from the Model's explicit selection.");if(r){if((e.runtime.placement!=="local"||e.compute.kind!=="local")&&(!r.agentSnapshot.portability.portable||r.schemaVersion==="openpond.harnessSourcePackage.v1"&&r.harnessRelease.files.some(f=>f.visibility!=="policy")))throw new Error("The selected Harness contains source that cannot leave its local host.");B(u,"harness/source-package.json",r)}B(u,"harness/execution.json",te.parse({schemaVersion:"openpond.harnessSourceSelection.v1",mode:r?"selected_release":"taskset_owned",harnessRelease:i,sourcePackageHash:r?.contentHash??null}));let h=me(t,e.rewardExecution);if(h){let m=e.verifierAssets??[],f=J(h.binding,h.rewards).flatMap(k=>k.kind==="custom_verifier"?[k.verifierRef]:k.kind==="model_judge"?[k.rubricRef]:[]),z=new Set(f.map(k=>k.id));if(new Set(m.map(k=>k.id)).size!==m.length||m.some(k=>!z.has(k.id)))throw new Error("Unexpected or duplicate private verifier asset.");for(let k of f){let O=m.find(D=>D.id===k.id);if(!O||k.visibility!=="verifier")throw new Error("Training bundle requires its private verifier asset.");_(O,k)}B(u,"reward-binding.json",{kind:"reward_binding_v1",binding:h.binding,rewards:h.rewards,assets:m})}else if(e.verifierAssets?.length)throw new Error("Private verifier assets require a published Reward binding.");B(u,"environment.json",{schemaVersion:"openpond.harnessEnvironment.v1",environment:t.environment,capabilities:t.capabilities,policy:t.policy,outputContract:t.metadata.tasksetOutputContract?.mode==="text"?null:t.metadata.tasksetOutputContract??null}),B(u,"graders.json",{schemaVersion:"openpond.harnessGraders.v1",graders:t.graders,fixtures:t.graderFixtures}),B(u,"tool-contract.json",{schemaVersion:"openpond.harnessToolContract.v1",toolNames:t.environment.toolNames,actionBindings:t.environment.actionBindings??[],capabilities:t.capabilities,connectedAppScopes:t.policy.connectedAppScopes});let v=t.tasks.filter(m=>m.split==="train");if(v.length>0)B(u,"dataset/train.json",{schemaVersion:"openpond.datasetSplit.v1",split:"train",tasks:v}),Pe({assets:u,tasks:v,tasksetAssetBytes:e.tasksetAssetBytes??new Map});else if(t.datasetArtifact)B(u,"dataset/artifact.json",t.datasetArtifact);else throw new Error("Taskset has no training dataset.");let b=Object.values(t.learningSignals).flat().filter(m=>m.approved);for(let m of b){let f=be(m);u.set(`evidence/signals/${j(f)}.json`,f)}let w={id:`dataset_${t.id}_r${t.revision}`,contentHash:l({taskset:d,sourceRefs:t.sourceRefs,datasetArtifact:t.datasetArtifact??null,trainTasks:v})},T=b.length>0?{id:`evidence_${t.id}_r${t.revision}`,contentHash:l({taskset:d,harnessRelease:i,datasetRelease:w,profileRelease:p,signals:b})}:null,x=ge.parse({schemaVersion:"openpond.resolvedTrainingBundle.v1",projection:"trainer",harnessRelease:i,datasetRelease:w,evidenceSetRelease:T,files:[...u.entries()].sort(([m],[f])=>m.localeCompare(f)).map(([m,f])=>({path:m,sha256:j(f),sizeBytes:f.byteLength}))}),S=ve.parse({...x,contentHash:l(x)}),I=ue.parse({schemaVersion:"openpond.harnessRunManifest.v1",id:`manifest_${e.modelRunId}_${e.approval.approvalHash.slice(0,16)}`,harnessRelease:n,datasetRelease:w,evidenceSets:T?[T]:[],model:{source:s.baseModel.modelId,revision:s.baseModel.revision,artifactHash:null,tokenizerRevision:s.baseModel.tokenizerRevision,chatTemplateHash:s.baseModel.chatTemplateHash},recipe:{method:s.recipe.method,version:"openpond.trainingRecipe.v1",configHash:l(s.recipe)},runtimeTarget:e.runtime,computeTarget:e.compute,engine:e.engine,resolvedBundleHash:S.contentHash,secretLeaseRefs:e.secretLeaseRefs??[],approval:e.approval,createdAt:a.updatedAt});return{manifest:fe.parse({...I,contentHash:l(I)}),resolvedBundleManifest:S,assets:u,profileRelease:p,harnessRelease:i,tasksetRelease:d,datasetRelease:w,evidenceSetRelease:T}}y(Ye,"buildTasksetTrainingBundle");function Pe(e){let t=new Set;for(let a of e.tasks)for(let n of a.assets??[]){if(t.has(n.artifactRef))throw new Error(`Training asset path ${n.artifactRef} is shared by multiple tasks.`);t.add(n.artifactRef);let c=e.tasksetAssetBytes.get(n.artifactRef);if(!c)throw new Error(`Resolved Training Bundle is missing Work asset ${n.artifactRef}.`);if(c.byteLength!==n.sizeBytes||j(c)!==n.sha256)throw new Error(`Resolved Training Bundle Work asset ${n.artifactRef} failed immutable verification.`);e.assets.set(n.artifactRef,c)}for(let a of e.tasksetAssetBytes.keys())if(!t.has(a))throw new Error(`Resolved Training Bundle received unexpected Work asset ${a}.`)}y(Pe,"addTasksetAssets");function B(e,t,a){e.set(t,be(a))}y(B,"addJsonAsset");function be(e){return Buffer.from(L(e),"utf8")}y(be,"bytes");export{we as a,Se as b,He as c,fe as d,ve as e,xe as f,Ue as g,Je as h,Be as i,Ze as j,Qe as k,Ye as l};
|
|
2
|
+
import{Fb as le,Gb as pe,Hb as me,aa as Y,db as X,eb as ee,gb as te,hb as ae,ib as se,pb as U,qb as F,rb as ne,sb as re,tb as ie,ua as N,ub as oe,v as Q,vb as ce,wb as de,xa as K}from"./chunk-A66CSUBJ.js";import{a as A,b as H,c as $,e as M,j as L,k as j,l}from"./chunk-SPDSSMFD.js";import{N as C,aa as W,ba as Z,d as _,e as G}from"./chunk-SFNCAPCJ.js";import{Wa as J}from"./chunk-RCA6NGVA.js";import{A as o}from"./chunk-PF56N7ZY.js";import{a as y}from"./chunk-FTQLQJQV.js";var Re=o.object({id:A,purpose:o.string().trim().min(1).max(500),audience:o.enum(["orchestrator","environment","privileged_scorer","trainer","infrastructure"]),required:o.boolean(),ttlSeconds:o.number().int().positive().max(86400),scopes:o.array(o.string().trim().min(1).max(500)).max(100).default([])}).strict(),ke=o.object({declarationId:A,leaseRef:o.string().trim().min(8).max(1e3),audience:Re.shape.audience,expiresAt:$}).strict(),we=o.object({adapterId:A,placement:o.enum(["local","remote","colocated","provider_native"]),capabilityReceipt:H,runtimeVersion:o.string().trim().min(1).max(200),dataPlane:o.object({provider:A,dataPlaneId:A,cellId:A,runnerPoolId:A,runtimeImageDigest:o.string().regex(/^sha256:[a-f0-9]{64}$/),capabilityReceipt:H}).strict().nullable()}).strict(),Se=o.object({adapterId:A,kind:o.enum(["local","ssh","managed","custom"]),deviceOrPool:o.string().trim().min(1).max(1e3),capabilityReceipt:H,provider:A.nullable()}).strict(),He=o.object({adapterId:A,workerVersion:o.string().trim().min(1).max(200),workerImageDigest:o.string().regex(/^sha256:[a-f0-9]{64}$/).nullable(),upstreamRevision:o.string().trim().min(1).max(500),capabilityReceipt:H}).strict(),ue=o.object({schemaVersion:o.literal("openpond.harnessRunManifest.v1"),id:A,harnessRelease:M,datasetRelease:M,evidenceSets:o.array(M).max(1e4),model:o.object({source:o.string().trim().min(1).max(200),revision:o.string().trim().min(1).max(500),artifactHash:H.nullable(),tokenizerRevision:o.string().trim().min(1).max(500),chatTemplateHash:H}).strict(),recipe:o.object({method:o.string().trim().min(1).max(100),version:o.string().trim().min(1).max(200),configHash:H}).strict(),runtimeTarget:we,computeTarget:Se,engine:He,resolvedBundleHash:H,secretLeaseRefs:o.array(ke).max(1e3),approval:o.object({approvalHash:H,approvedAt:$,maximumSpendUsd:o.number().nonnegative().nullable()}).strict(),createdAt:$}).strict(),fe=ue.extend({contentHash:H}).strict(),ge=o.object({schemaVersion:o.literal("openpond.resolvedTrainingBundle.v1"),projection:o.literal("trainer"),harnessRelease:M,datasetRelease:M,evidenceSetRelease:M.nullable(),files:o.array(o.object({path:o.string().trim().min(1).max(2e3),sha256:H,sizeBytes:o.number().int().nonnegative()}).strict()).max(1e5)}).strict(),ve=ge.extend({contentHash:H}).strict(),Te=[{label:"OpenAI-style API key",pattern:/\bsk-[A-Za-z0-9_-]{16,}\b/g},{label:"OpenPond API key",pattern:/\bopk_[A-Za-z0-9_-]{12,}\b/g},{label:"private key",pattern:/-----BEGIN (?:RSA |EC |OPENSSH )?PRIVATE KEY-----/g},{label:"credential assignment",pattern:/\b(?:api[_-]?key|password|secret|token)["']?\s*[:=]\s*["']?[^\s"']{8,}/gi}],V=/\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}\b/gi,q=/\b(?:\+?1[-.\s]?)?\(?\d{3}\)?[-.\s]\d{3}[-.\s]\d{4}\b/g;function xe(e){let t=[],a=e;for(let s of Te)s.pattern.lastIndex=0,s.pattern.test(a)&&t.push(s.label),s.pattern.lastIndex=0,a=a.replace(s.pattern,`[REDACTED ${s.label}]`);V.lastIndex=0;let n=V.test(a);V.lastIndex=0,n&&t.push("email address"),a=a.replace(V,"[REDACTED email]"),q.lastIndex=0;let c=q.test(a);return q.lastIndex=0,c&&t.push("phone number"),a=a.replace(q,"[REDACTED phone]"),{secretStatus:t.some(s=>!s.includes("email")&&!s.includes("phone"))?"blocked":"passed",piiStatus:n||c?"review":"passed",findings:t,redacted:a}}y(xe,"scanAndRedactEvidence");function Ae(e){let t=new Map;return{tasks:e.tasks.map(({artifactRefs:n,...c})=>({...c,assets:n.map(s=>{if(s.visibility!=="policy")throw new Error("Learning task inputs must be policy-visible assets.");let i=e.assets?.find(p=>p.id===s.id),d=e.assetBytes?.get(s.id)??(i?new TextEncoder().encode(_(i,s)):void 0);if(!d||d.byteLength!==s.sizeBytes||j(d)!==s.contentHash)throw new Error(`Learning task input bytes are missing or changed: ${s.id}.`);let g=`learning/assets/${l({task:c.id,asset:s.id}).slice(0,40)}/${s.path}`;return t.set(g,new Uint8Array(d)),{id:s.id,sourceRefId:e.sourceId,artifactRef:g,fileName:s.path.split("/").at(-1),mediaType:s.mediaType,sha256:s.contentHash,sizeBytes:s.sizeBytes,split:c.split,metadata:{portableAsset:s}}}),...c.requiredOutputs?{requiredOutputs:c.requiredOutputs.map(s=>({...s,schemaRef:s.schemaRef?.id??null,maxBytes:s.maxBytes??void 0}))}:{}})),tasksetAssetBytes:t}}y(Ae,"materializeLearningBatchAssets");function Ee(e){let t=W(e),a=Z(t),n=t.environment.kind==="work";if(!n&&(t.environment.kind!=="text"||t.tools.length||t.tasks.some(r=>r.artifactRefs.length))||n&&t.tasks.some(r=>!r.requiredOutputs?.length))throw new Error("This learning batch requires a supported text or Work environment with declared outputs.");let c=e.source.id,s=Ae({tasks:t.tasks,sourceId:c,assets:e.assets,assetBytes:e.assetBytes}),i={demonstrations:[],preferences:[],corrections:[],feedback:[],rewards:[],labels:[]},d=[];for(let r of a.admissions){let h=e.evidence.find(b=>b.id===r.evidence.id),v=e.decisions.find(b=>b.id===r.decision.id);e.batch.purpose==="reward_training"&&v.grade?.training.status==="scored"&&i.rewards.push({id:`reward-${r.taskId}`,taskId:r.taskId,kind:"reward",task:e.definition.instructions,rules:[{id:e.binding.id,points:1,condition:"Execute the released Reward binding with its declared normalization, weights and gates."}],otherwisePoints:0,executable:!0,approved:!0,confidence:1,sourceRefs:[c],artifactRef:e.binding.id,metadata:{rewardBinding:C(e.binding),evidence:r.evidence,decision:r.decision}}),r.supervisedTarget!==null&&i.demonstrations.push({kind:"demonstration",id:`demo-${r.taskId}`,taskId:r.taskId,sourceRefs:[c],artifactRef:r.decision.id,approved:!0,confidence:1,prompt:null,response:JSON.stringify(r.supervisedTarget),metadata:{evidence:r.evidence,decision:r.decision,targetGradeHash:v.targetGrade?.contentHash}});for(let[b,w,T]of[["observed",h.submission.observedOutput,v.grade],["target",v.approvedTarget,v.targetGrade]]){let x=Ie(T);w===null||x===null||d.push({id:`fixture-${b}-${r.taskId}`,taskId:r.taskId,label:x.passed?"positive":"negative",output:w,infrastructureError:null,expectedPassed:x.passed,expectedRewardEligible:x.rewardEligible,metadata:{gradeReceiptHash:T.contentHash,evidence:r.evidence,decision:r.decision}})}}if(!d.length&&e.batch.purpose!=="reward_training")throw new Error("Grade at least one reviewed response before preparing this batch. Grader fixtures must come from actual receipts.");let g=le(e.binding,e.rewards,e.assets),p=[];for(let r of t.graders){if(r.kind!=="custom_verifier")continue;let h=e.assets?.find(b=>b.id===r.verifierRef.id);if(!h)throw new Error(`Reward ${r.id} is missing its immutable verifier source.`);let v=pe(r.verifierRef.contentHash);p.some(b=>b.path===v)||p.push({path:v,role:"verifier",content:_(h,r.verifierRef)})}let u=N.parse({schemaVersion:"openpond.taskset.v1",id:`learning-${l([e.profileId,e.batch.contentHash]).slice(0,40)}`,revision:1,profileId:e.profileId,profileRelease:null,createImproveRunId:null,name:`${e.definition.name} \xB7 ${e.batch.examples.length} approved examples`,objective:e.definition.instructions,purpose:"general",benchmark:null,status:"needs_review",sourceRefs:[e.source],datasetArtifact:null,policy:t.policy,environment:{protocolVersion:"openpond.taskEnvironment.v1",kind:n?"work":"chat",entrypoint:t.environment.entrypoint,stateful:t.environment.stateful,deterministicSeeds:t.environment.deterministicSeeds,toolNames:t.tools.map(r=>r.name),lifecycle:["create","reset","step","grade","cleanup"],defaultTimeoutMs:t.environment.defaultTimeoutMs,networkPolicy:t.environment.networkPolicy,metadata:{portableEnvironment:t.environment,portableTools:t.tools}},capabilities:{schemaVersion:"openpond.tasksetCapabilities.v1",taskKind:n?"single_agent":"chat",supportedSignals:i.demonstrations.length?["demonstration","reward"]:["reward"],compatibleMethods:e.batch.purpose==="supervised_training"?["sft"]:e.batch.purpose==="reward_training"?["grpo","ppo"]:["none"],rewardKinds:[...new Set(t.graders.map(r=>r.kind==="human"?"human":r.kind==="model_judge"?"model_judge":"deterministic"))],requiresTools:t.tools.length>0,requiresState:t.environment.stateful,requiresPrivilegedGrading:!0,environmentPlacements:["local","remote"],exportable:!0,portabilityBlockers:[]},tasks:s.tasks.map(r=>({...r,schemaVersion:"openpond.taskData.v1",sourceRefs:[c],metadata:{admission:a.admissions.find(h=>h.taskId===r.id),exampleOrigin:e.evidence.find(h=>h.id===r.id)?.correctionFeedbackId?"corrected":"extracted"}})),graders:g,graderFixtures:d,learningSignals:i,authoringProvenance:{schemaVersion:"openpond.taskAuthoringProvenance.v1",model:null,modelConfig:{},skillHash:l("openpond-learning-batch-v1"),promptTemplateVersion:"learning-batch-v1",buildIntent:e.batch.purpose==="supervised_training"?"demonstrations":"verifiable_reward",buildSpecification:null,evidenceHashes:e.batch.examples.map(r=>r.evidence.contentHash),tasksetSdkVersion:"learning-batch-v1",sourceCommit:null,repairHistory:[],createdAt:e.batch.sealedAt},readiness:null,contentHash:"00000000",createdAt:e.batch.sealedAt,updatedAt:e.batch.sealedAt,metadata:{learning:a,learningRelease:C(t),trainingMethod:e.batch.purpose==="supervised_training"?"sft":e.batch.purpose==="reward_training"?"grpo":"none",tasksetOutputContract:n?{mode:"artifacts",requiredOutputSource:"task.requiredOutputs"}:{mode:"structured_json",jsonSchema:e.definition.outputSchema,renderer:null}}});return{taskset:N.parse({...u,contentHash:K(u)}),release:t,generatedFiles:p,tasksetAssetBytes:s.tasksetAssetBytes}}y(Ee,"materializeLearningBatchTaskset");function Ie(e){if(!e)return null;let t=e.training.status==="not_configured"?e.evaluation:e.training;return t.status!=="scored"?null:{passed:t.passed===!0,rewardEligible:e.training.status==="scored"}}y(Ie,"fixtureOutcome");function Ue(e){let t=[],a=0;for(let s of new Map(e.evidence.flatMap(i=>i.submission.assets.map(d=>[d.id,d]))).values()){let i=e.assetBytes?.get(s.id),d=e.assets?.find(p=>p.id===s.id),g=i?.byteLength??(d?new TextEncoder().encode(d.text).byteLength:0);if(a+=g,a>Y)throw new Error("Learning input assets exceed the training package limit.");i?t.push(new TextDecoder().decode(i)):d&&t.push(d.text)}let n=xe(JSON.stringify({tasks:e.evidence.map(s=>s.submission),targets:e.decisions.map(s=>s.approvedTarget),definition:e.definition,inputAssets:t}));if(n.secretStatus!=="passed"||n.piiStatus!=="passed")throw new Error(`Learning batch contains unresolved data findings (${n.findings.join(", ")}). Correct the source examples and seal a revised batch before training.`);let c=Q.parse({schemaVersion:"openpond.learningBatchDatasetSource.v1",kind:"learning_batch",id:`batch-source-${e.batch.contentHash.slice(0,40)}`,profileId:e.profileId,title:e.definition.name,sourceHash:e.batch.contentHash,occurredAt:e.batch.sealedAt,batch:C(e.batch),taskDefinition:e.batch.taskDefinition,admittedBy:e.batch.sealedBy,licensingStatus:"approved",secretScanStatus:n.secretStatus,piiScanStatus:n.piiStatus,metadata:{admission:e.admissionContext??"explicit_local_batch_review",privacyScanner:"openpond-evidence-v1",findings:n.findings}});return Ee({...e,source:c})}y(Ue,"prepareReviewedLearningBatch");async function Je(e){let t=structuredClone(e),{project:a,recipe:n,taskset:c,approval:s}=t,i=fe.parse(t.manifest),d=ve.parse(t.bundleManifest),{contentHash:g,...p}=i,{contentHash:u,...r}=d;if(l(p)!==g||l(r)!==u||i.resolvedBundleHash!==u||l(i.harnessRelease)!==l(d.harnessRelease)||l(i.datasetRelease)!==l(d.datasetRelease)||l(i.evidenceSets)!==l(d.evidenceSetRelease?[d.evidenceSetRelease]:[]))throw new Error("The managed training manifest or resolved bundle changed.");if(!a.hosted||a.hosted.syncedSourceRevision!==a.revision||a.hosted.portableProjectId!==a.id)throw new Error("Sync the exact Model Project revision before preparing managed training.");let h=a.trainingSetup.baseModel;if(!h||h.modelId!==i.model.source||h.revision!==i.model.revision||h.tokenizerRevision!==i.model.tokenizerRevision||h.chatTemplateHash!==i.model.chatTemplateHash)throw new Error("The synced Model Project base Model does not match the Run manifest.");if(n.method!=="grpo"||l(n)!==i.recipe.configHash||s.approvalHash!==i.approval.approvalHash||s.maximumSpendUsd!==i.approval.maximumSpendUsd)throw new Error("Managed training requires the exact approved GRPO recipe and spend ceiling.");let v=o.object({wallTimeMs:o.number().positive()}).parse(n.resourceLimits);t.idempotencyKey!==void 0&&o.string().trim().min(16).max(191).parse(t.idempotencyKey);let b=Me(d,t.files),w=F.parse(t.evaluationSource),T=b.find(z=>z.path===U);if(!T||l(JSON.parse(Buffer.from(T.content,"base64").toString("utf8")))!==l(w))throw new Error("The evaluation source differs from the immutable training bundle.");let x=await re(w),S={schemaVersion:"openpond.managedRlPortableSubmission.v1",...t.origin?{origin:G.parse(t.origin)}:{},sourceRunRef:`openpond:model-run:${i.id}`,name:`OpenPond Managed \xB7 ${a.id}`.slice(0,191),idempotencyKey:t.idempotencyKey??`openpond-managed:${g}`.slice(0,191),modelProject:{id:a.hosted.projectId,portableProjectId:a.hosted.portableProjectId},manifest:i,sourceTaskset:c,modelImprovementQualification:t.modelImprovementQualification??null,recipe:n,resolvedBundle:{manifest:d,files:b},validationTasks:w.tasks,validationAssets:w.assets},I={schemaVersion:"openpond.trainingInputArtifactUpload.v2",kind:"portable_training_bundle",idempotencyKey:`stage:${t.idempotencyKey??g}`,sourceManifest:{id:i.id,contentHash:g},payload:S},P=await oe({...I,contentHash:await ie(I)}),m={schemaVersion:"openpond.trainingJobSubmission.v2",idempotencyKey:t.idempotencyKey??`openpond-training-v2:${g}`,name:`OpenPond Managed \xB7 ${a.id}`.slice(0,200),source:{...t.origin?{origin:G.parse(t.origin)}:{},modelProject:{id:a.hosted.projectId,portableProjectId:a.hosted.portableProjectId,revision:a.revision,contentHash:a.hosted.etag},harnessRunManifest:I.sourceManifest,harnessRelease:i.harnessRelease,taskset:c,tasksetRelease:{id:c.id,contentHash:c.contentHash},dataset:d.datasetRelease,evaluation:x,evidenceSets:d.evidenceSetRelease?[d.evidenceSetRelease]:[]},job:{kind:"policy_optimize",baseModel:h,recipe:n,rewardSource:t.rewardSource,resumeFrom:t.resumeFrom},requestedCapabilities:[{id:"managed_rl.policy.grpo",version:"1",required:!0},{id:`managed_rl.rollouts.${i.runtimeTarget.placement}`,version:"1",required:!0},...a.trainingSetup.managedGpuRequirement==="h100_hbm3"?[{id:"managed_rl.gpu.h100_hbm3",version:"1",required:!0}]:[]],placementObjective:a.trainingSetup.managedGpuPlacementObjective,budget:{maximumSpendUsd:s.maximumSpendUsd,maximumWallSeconds:Math.ceil(v.wallTimeMs/1e3)},approval:{...s,approvedAt:i.approval.approvedAt,exportApproved:!0}},f=await de({...m,contentHash:await ce(m)});return{artifact:P,submission:f}}y(Je,"prepareManagedTrainingSubmission");function Me(e,t){if(t.length!==e.files.length||new Set(t.map(n=>n.path)).size!==t.length)throw new Error("The managed bundle file inventory changed.");let a=new Map(t.map(n=>[n.path,n]));return e.files.map(n=>{let c=a.get(n.path);if(!c||c.path.includes("\\")||c.path.includes("\0")||c.path.split("/").some(i=>!i||i==="."||i==="..")||c.path==="bundle-manifest.json"||c.encoding!=="base64")throw new Error("The managed bundle contains an invalid file.");let s=Buffer.from(c.content,"base64");if(s.toString("base64")!==c.content||c.sha256!==n.sha256||c.sizeBytes!==n.sizeBytes||s.byteLength!==n.sizeBytes||j(s)!==n.sha256)throw new Error(`Managed training bundle file ${c.path} changed before upload.`);return c})}y(Me,"verifyFiles");var Be=o.object({name:o.literal("adamw").default("adamw"),weightDecay:o.number().nonnegative().max(1).default(0),beta1:o.number().positive().lt(1).default(.9),beta2:o.number().positive().lt(1).default(.999),epsilon:o.number().positive().max(.01).default(1e-8)}).strict().default({name:"adamw",weightDecay:0,beta1:.9,beta2:.999,epsilon:1e-8});function Ze(e,t){if(!t||typeof t!="object"||Array.isArray(t))return t;let a=t;if(a.method==="dpo"){let S=R(a.policyModel),I=R(a.referenceModel),P=R(a.dataset),m=l({tasksetHash:e.contentHash,preferenceSignals:e.learningSignals.preferences.map(f=>({id:f.id,artifactRef:f.artifactRef,prompt:f.prompt,chosen:f.chosen,rejected:f.rejected,approved:f.approved})),policyModel:S,referenceModel:I,dataset:P});return{...a,referenceLogprobs:{cacheSchemaVersion:"openpond.dpoReferenceLogprobs.v1",cacheKey:l(["dpo-reference-logprobs",m]),invalidationHash:m}}}if(a.method==="ppo"){let S=R(a.policyOptimization),I=R(S.policyModel),P=R(S.referenceModel),m=R(S.optimizer),f=R(m.valueModel),z=R(S.dataset),k=R(S.reward),O=l(I),D=l(P),ye=l(f);return{...a,policyOptimization:{...S,dataset:{...z,tasksetId:e.id,tasksetHash:e.contentHash},reward:{...k,graderHash:l(e.graders)}},resume:{...R(a.resume),policyHash:O,referenceHash:D,valueModelHash:ye}}}if(a.method!=="grpo")return t;let n=a.reward&&typeof a.reward=="object"&&!Array.isArray(a.reward)?a.reward:{},c=e.environment.metadata.toolContractHash,s=typeof c=="string"&&c.trim()?c:n.toolContractHash,i=R(a.baseModel),d=R(a.dataset),g=R(a.rollout),p=R(a.optimizer),u=R(a.loss),r=R(a.resourceLimits),h=E(d.maxExamples,1),v=E(g.groupSize,2),b=E(g.maxOutputTokens,1),w=E(d.maxPromptTokens,1),T=E(p.maxSteps,1),x=E(p.iterations,2);return{...a,resourceLimits:{...r,maxGpuSeconds:r.maxGpuSeconds??Math.min(10800,Math.ceil(E(r.wallTimeMs,18e4)/1e3))},reward:{...n,graderHash:l(e.graders),toolContractHash:s},policyOptimization:{schemaVersion:"openpond.policyOptimization.v1",policyModel:i,referenceModel:i,dataset:{tasksetId:e.id,tasksetHash:e.contentHash,split:"train",selectionStrategy:d.selectionStrategy,selectionSeed:g.seed,maxExamples:h},sampler:{temperature:g.temperature,topP:g.topP,maxOutputTokens:b,maxTurns:g.maxTurns,concurrency:g.concurrency},environment:{id:n.environmentId,version:n.environmentVersion,toolContractHash:s},reward:{graderId:n.graderId,graderHash:l(e.graders),learnedPreference:n.learnedPreference??null},kl:{coefficient:u.klBeta??null,referenceConstraint:"fixed_reference"},budgets:{maxRollouts:E(r.maxRollouts,h*v),maxEnvironmentExecutions:E(r.maxRollouts,h*v),maxInputTokens:h*v*w,maxOutputTokens:h*v*b,maxOptimizerSteps:T*x,wallTimeMs:E(r.wallTimeMs,18e4),maximumCostUsd:null},checkpointEverySteps:1,seed:g.seed,evaluationSplit:"frozen_eval",optimizer:{method:"grpo",groupSize:v,normalization:"group_standardized",advantageEpsilon:typeof p.advantageEpsilon=="number"?p.advantageEpsilon:1e-8,loss:u.method??"grpo",clipRange:typeof p.clipRange=="number"?p.clipRange:.2,iterations:x,microbatchSize:E(p.microbatchSize,1),gradientAccumulationSteps:E(p.gradientAccumulationSteps,1),adamw:Be.parse(p.adamw)}}}}y(Ze,"withAuthoritativeRecipeHashes");function R(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:{}}y(R,"record");function E(e,t){return typeof e=="number"&&Number.isInteger(e)&&e>0?e:t}y(E,"positiveInteger");function Qe(e){let t=e.sourceRelease,a=[],n=e.skills??[],c=e.agents??[];if([...n,...c].some(p=>p.visibility!=="policy"))throw new Error("The portable policy Harness requires policy-visible dependencies.");let s=he({id:"desktop-dependency-lock",path:".openpond/harness/dependency-lock.json",hashInput:{profileHead:e.profileHead??null,sourceRelease:t,tools:a,skills:n.map(({id:p,contentHash:u})=>({id:p,contentHash:u})),agents:c.map(({id:p,contentHash:u})=>({id:p,contentHash:u}))},mediaType:"application/json",visibility:"policy"}),i=X({schemaVersion:"openpond.agentSnapshot.v2",id:`agent-snapshot-${l([t,a,s.contentHash]).slice(0,24)}`,sourceRelease:t,instructions:[],skills:n,agents:c,toolDeclarations:a,capabilityRequirements:[],dependencyLock:s,portability:{portable:!0,blockers:[],localOnlyAssetRefs:[],hostPrivateAssetRefs:[]},metadata:{sourceReleaseId:t?.id??null}}),d=he({id:"desktop-harness-program",path:".openpond/harness/program.json",hashInput:{program:"openpond.desktop-agent-loop.v1"},mediaType:"application/json",visibility:"policy"}),g=ee({schemaVersion:"openpond.harnessRelease.v2",id:`harness-${l([i.contentHash,d.contentHash,a]).slice(0,24)}`,agentSnapshot:{id:i.id,contentHash:i.contentHash},program:d,tools:a,lifecycle:{create:!0,reset:!0,step:!0,collect:!0,destroy:!0,resetScope:"attempt"},graderInterface:{visibleEvidence:["output","runtime_events","artifacts"],privilegedEvidence:["expected_output","private_verifier"],privateVerifierIsolation:!0},files:[...n,...c],metadata:{runtimeProtocol:"openpond.desktop-agent-loop.v1"}});return{agentSnapshot:i,harnessRelease:g}}y(Qe,"createPolicyHarnessContext");function he(e){let t=L(e.hashInput);return{id:e.id,path:e.path,contentHash:l(e.hashInput),sizeBytes:new TextEncoder().encode(t).byteLength,mediaType:e.mediaType,visibility:e.visibility}}y(he,"asset");function Ye(e){let{taskset:t,modelProject:a,harnessRelease:n,tasksetRelease:c}=e,s=a.trainingSetup,i=M.parse(n),d=M.parse(c);if(e.openpondRelease,e.workerProtocol,K(t)!==t.contentHash)throw new Error("Taskset authoring state changed after its release was selected.");if(!s.baseModel?.revision||!s.baseModel.tokenizerRevision||!s.baseModel.chatTemplateHash||!s.recipe||!s.tasksetRef||s.tasksetRef.id!==t.id||s.tasksetRef.contentHash!==t.contentHash)throw new Error("Model Run must bind an exact Taskset, Model revision, tokenizer, chat template, and Recipe.");let p=t.profileRelease??{id:`profile_${t.profileId}`,revision:t.revision,contentHash:l({profileId:t.profileId,sourceCommit:t.authoringProvenance.sourceCommit,skillHash:t.authoringProvenance.skillHash})},u=new Map;if(e.evaluationSource){let m=F.parse(e.evaluationSource);if(l(m.taskset)!==l(s.evaluationTasksetRef))throw new Error("The evaluation source differs from the prepared Model configuration.");ne(t.tasks.filter(f=>f.split==="train"),m.tasks),u.set(U,new TextEncoder().encode(L(m)))}else if(s.evaluationTasksetRef)throw new Error("The prepared Model requires its pinned evaluation source bytes.");let r=e.harnessSource?e.harnessSource.schemaVersion==="openpond.harnessPolicySourcePackage.v1"?ae(e.harnessSource,i):se(e.harnessSource,i):null;if(s.harnessRelease&&!r)throw new Error("A selected Harness requires its complete immutable source package.");if(r&&(!s.harnessRelease||s.harnessRelease.id!==i.id||s.harnessRelease.contentHash!==i.contentHash))throw new Error("Harness source differs from the Model's explicit selection.");if(r){if((e.runtime.placement!=="local"||e.compute.kind!=="local")&&(!r.agentSnapshot.portability.portable||r.schemaVersion==="openpond.harnessSourcePackage.v1"&&r.harnessRelease.files.some(f=>f.visibility!=="policy")))throw new Error("The selected Harness contains source that cannot leave its local host.");B(u,"harness/source-package.json",r)}B(u,"harness/execution.json",te.parse({schemaVersion:"openpond.harnessSourceSelection.v1",mode:r?"selected_release":"taskset_owned",harnessRelease:i,sourcePackageHash:r?.contentHash??null}));let h=me(t,e.rewardExecution);if(h){let m=e.verifierAssets??[],f=J(h.binding,h.rewards).flatMap(k=>k.kind==="custom_verifier"?[k.verifierRef]:k.kind==="model_judge"?[k.rubricRef]:[]),z=new Set(f.map(k=>k.id));if(new Set(m.map(k=>k.id)).size!==m.length||m.some(k=>!z.has(k.id)))throw new Error("Unexpected or duplicate private verifier asset.");for(let k of f){let O=m.find(D=>D.id===k.id);if(!O||k.visibility!=="verifier")throw new Error("Training bundle requires its private verifier asset.");_(O,k)}B(u,"reward-binding.json",{kind:"reward_binding_v1",binding:h.binding,rewards:h.rewards,assets:m})}else if(e.verifierAssets?.length)throw new Error("Private verifier assets require a published Reward binding.");B(u,"environment.json",{schemaVersion:"openpond.harnessEnvironment.v1",environment:t.environment,capabilities:t.capabilities,policy:t.policy,outputContract:t.metadata.tasksetOutputContract?.mode==="text"?null:t.metadata.tasksetOutputContract??null}),B(u,"graders.json",{schemaVersion:"openpond.harnessGraders.v1",graders:t.graders,fixtures:t.graderFixtures}),B(u,"tool-contract.json",{schemaVersion:"openpond.harnessToolContract.v1",toolNames:t.environment.toolNames,actionBindings:t.environment.actionBindings??[],capabilities:t.capabilities,connectedAppScopes:t.policy.connectedAppScopes});let v=t.tasks.filter(m=>m.split==="train");if(v.length>0)B(u,"dataset/train.json",{schemaVersion:"openpond.datasetSplit.v1",split:"train",tasks:v}),Pe({assets:u,tasks:v,tasksetAssetBytes:e.tasksetAssetBytes??new Map});else if(t.datasetArtifact)B(u,"dataset/artifact.json",t.datasetArtifact);else throw new Error("Taskset has no training dataset.");let b=Object.values(t.learningSignals).flat().filter(m=>m.approved);for(let m of b){let f=be(m);u.set(`evidence/signals/${j(f)}.json`,f)}let w={id:`dataset_${t.id}_r${t.revision}`,contentHash:l({taskset:d,sourceRefs:t.sourceRefs,datasetArtifact:t.datasetArtifact??null,trainTasks:v})},T=b.length>0?{id:`evidence_${t.id}_r${t.revision}`,contentHash:l({taskset:d,harnessRelease:i,datasetRelease:w,profileRelease:p,signals:b})}:null,x=ge.parse({schemaVersion:"openpond.resolvedTrainingBundle.v1",projection:"trainer",harnessRelease:i,datasetRelease:w,evidenceSetRelease:T,files:[...u.entries()].sort(([m],[f])=>m.localeCompare(f)).map(([m,f])=>({path:m,sha256:j(f),sizeBytes:f.byteLength}))}),S=ve.parse({...x,contentHash:l(x)}),I=ue.parse({schemaVersion:"openpond.harnessRunManifest.v1",id:`manifest_${e.modelRunId}_${e.approval.approvalHash.slice(0,16)}`,harnessRelease:n,datasetRelease:w,evidenceSets:T?[T]:[],model:{source:s.baseModel.modelId,revision:s.baseModel.revision,artifactHash:null,tokenizerRevision:s.baseModel.tokenizerRevision,chatTemplateHash:s.baseModel.chatTemplateHash},recipe:{method:s.recipe.method,version:"openpond.trainingRecipe.v1",configHash:l(s.recipe)},runtimeTarget:e.runtime,computeTarget:e.compute,engine:e.engine,resolvedBundleHash:S.contentHash,secretLeaseRefs:e.secretLeaseRefs??[],approval:e.approval,createdAt:a.updatedAt});return{manifest:fe.parse({...I,contentHash:l(I)}),resolvedBundleManifest:S,assets:u,profileRelease:p,harnessRelease:i,tasksetRelease:d,datasetRelease:w,evidenceSetRelease:T}}y(Ye,"buildTasksetTrainingBundle");function Pe(e){let t=new Set;for(let a of e.tasks)for(let n of a.assets??[]){if(t.has(n.artifactRef))throw new Error(`Training asset path ${n.artifactRef} is shared by multiple tasks.`);t.add(n.artifactRef);let c=e.tasksetAssetBytes.get(n.artifactRef);if(!c)throw new Error(`Resolved Training Bundle is missing Work asset ${n.artifactRef}.`);if(c.byteLength!==n.sizeBytes||j(c)!==n.sha256)throw new Error(`Resolved Training Bundle Work asset ${n.artifactRef} failed immutable verification.`);e.assets.set(n.artifactRef,c)}for(let a of e.tasksetAssetBytes.keys())if(!t.has(a))throw new Error(`Resolved Training Bundle received unexpected Work asset ${a}.`)}y(Pe,"addTasksetAssets");function B(e,t,a){e.set(t,be(a))}y(B,"addJsonAsset");function be(e){return Buffer.from(L(e),"utf8")}y(be,"bytes");export{we as a,Se as b,He as c,fe as d,ve as e,xe as f,Ue as g,Je as h,Be as i,Ze as j,Qe as k,Ye as l};
|