openpond 0.2.70 → 0.2.72
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/dist/app-server.js +1 -1
- package/dist/chunks/{acp-QTA6IU6W.js → acp-7A2UPCG5.js} +1 -1
- package/dist/chunks/{acp-agent-N77HPAYQ.js → acp-agent-AGALGR6V.js} +1 -1
- package/dist/chunks/{actions-command-BZQCUDMD.js → actions-command-AXGXBU75.js} +1 -1
- package/dist/chunks/{app-layer-YQQNLIXA.js → app-layer-DUCNCJ2X.js} +1 -1
- package/dist/chunks/{app-server-evaluations-RRLYWLPK.js → app-server-evaluations-SNWXULKD.js} +1 -1
- package/dist/chunks/{app-server-harness-services-XXM336NU.js → app-server-harness-services-YNMGMKPK.js} +1 -1
- package/dist/chunks/app-server-runtime-BKJ7L6JZ.js +2 -0
- package/dist/chunks/{apps-WG7WY5CB.js → apps-2OWE23BH.js} +1 -1
- package/dist/chunks/{chunk-ZDEIVUUI.js → chunk-27OJ2OLP.js} +1 -1
- package/dist/chunks/{chunk-NSSZ2ZIU.js → chunk-2EAZB2MW.js} +1 -1
- package/dist/chunks/{chunk-DRLP7GIU.js → chunk-2GEZ3ZY7.js} +1 -1
- package/dist/chunks/{chunk-PAYFJHPO.js → chunk-2PVW2XFF.js} +1 -1
- package/dist/chunks/chunk-2Q2AWPP2.js +2 -0
- package/dist/chunks/{chunk-Y2WNZWT2.js → chunk-2Q6FTL4C.js} +1 -1
- package/dist/chunks/{chunk-KP2MYTP5.js → chunk-2QHB5P2K.js} +1 -1
- package/dist/chunks/{chunk-HG2YFMVU.js → chunk-2THZ6GZY.js} +1 -1
- package/dist/chunks/{chunk-DXJC3QW7.js → chunk-3VT2PPKW.js} +1 -1
- package/dist/chunks/{chunk-4BUM6JEC.js → chunk-4JKWCLTQ.js} +1 -1
- package/dist/chunks/{chunk-AQUZCWM3.js → chunk-5TPJ5ECJ.js} +1 -1
- package/dist/chunks/{chunk-RCQYEHHD.js → chunk-5TTQCT3G.js} +1 -1
- package/dist/chunks/{chunk-NMMHXYDJ.js → chunk-5WFKBZCU.js} +1 -1
- package/dist/chunks/{chunk-P4QM63L3.js → chunk-5ZBDHIIE.js} +1 -1
- package/dist/chunks/{chunk-WD4KAKEX.js → chunk-64EDQ7UV.js} +1 -1
- package/dist/chunks/{chunk-KU4TPDPH.js → chunk-6LAGMWJE.js} +1 -1
- package/dist/chunks/{chunk-VJYOKU3C.js → chunk-6OD2FKUS.js} +1 -1
- package/dist/chunks/{chunk-65FJWWXG.js → chunk-6YR5IYHH.js} +1 -1
- package/dist/chunks/{chunk-AUO5DCEU.js → chunk-73COPJ32.js} +1 -1
- package/dist/chunks/{chunk-SSHE6B7Z.js → chunk-AITV76GO.js} +1 -1
- package/dist/chunks/{chunk-PLROXHG2.js → chunk-ATI52WMB.js} +1 -1
- package/dist/chunks/chunk-AWD72O3G.js +2 -0
- package/dist/chunks/{chunk-DKOVZ6R2.js → chunk-BQNU4HZW.js} +1 -1
- package/dist/chunks/{chunk-UANH7U3Y.js → chunk-BTEBZYK3.js} +1 -1
- package/dist/chunks/{chunk-3Z4VM2LF.js → chunk-BUMCJHQP.js} +1 -1
- package/dist/chunks/{chunk-BU6MW65V.js → chunk-BYVE4TMU.js} +1 -1
- package/dist/chunks/{chunk-PNPV2LDE.js → chunk-BZS2PA4O.js} +1 -1
- package/dist/chunks/{chunk-AFYYIJ6K.js → chunk-C7NQPICU.js} +1 -1
- package/dist/chunks/{chunk-EWH64WRR.js → chunk-CAYKEJJY.js} +1 -1
- package/dist/chunks/{chunk-K7KBFM2T.js → chunk-CBD554GZ.js} +1 -1
- package/dist/chunks/{chunk-7RJOCGQ6.js → chunk-CHRED2FK.js} +1 -1
- package/dist/chunks/{chunk-3A2Y7UK3.js → chunk-CQRA5TXF.js} +1 -1
- package/dist/chunks/{chunk-GYYJ47GX.js → chunk-CWE2N3JI.js} +1 -1
- package/dist/chunks/{chunk-ZYLLPRPU.js → chunk-CX4T7I47.js} +1 -1
- package/dist/chunks/{chunk-TAXCMCYZ.js → chunk-CX4U32VO.js} +4 -4
- package/dist/chunks/{chunk-7TM25J6S.js → chunk-DFSQ5HZ7.js} +2 -2
- package/dist/chunks/{chunk-2PXKSAG6.js → chunk-DLOJG7LP.js} +1 -1
- package/dist/chunks/{chunk-BGMAWETL.js → chunk-DNRC6TPJ.js} +1 -1
- package/dist/chunks/{chunk-5FSPDSAO.js → chunk-DUR32LJG.js} +1 -1
- package/dist/chunks/{chunk-FHDH4OUA.js → chunk-EHMA5XS7.js} +1 -1
- package/dist/chunks/{chunk-Z33RVGP6.js → chunk-ENY24ZBB.js} +1 -1
- package/dist/chunks/{chunk-JVNKSU27.js → chunk-F3IEAU7O.js} +1 -1
- package/dist/chunks/{chunk-M4A7G4S5.js → chunk-FOAM3YZQ.js} +1 -1
- package/dist/chunks/{chunk-VJR2GNRY.js → chunk-FVMTQSVW.js} +1 -1
- package/dist/chunks/{chunk-YI6ME6PU.js → chunk-GG6PM7TB.js} +1 -1
- package/dist/chunks/{chunk-DDOIPTOM.js → chunk-GMA365GI.js} +1 -1
- package/dist/chunks/{chunk-KCLMA2IH.js → chunk-GPGXBKXU.js} +1 -1
- package/dist/chunks/{chunk-JVMSN7LH.js → chunk-GR4MJJCE.js} +1 -1
- package/dist/chunks/{chunk-7OFD6TFD.js → chunk-HA762QYM.js} +1 -1
- package/dist/chunks/{chunk-Q7FBVLLB.js → chunk-HBGTHOOB.js} +1 -1
- package/dist/chunks/{chunk-AFH462DO.js → chunk-HT6ILPD6.js} +1 -1
- package/dist/chunks/{chunk-XYZV3FKD.js → chunk-I6KTJ3GH.js} +1 -1
- package/dist/chunks/{chunk-OUJ63LMU.js → chunk-IA6CTX7A.js} +1 -1
- package/dist/chunks/{chunk-XHACK2KR.js → chunk-IUYGQO2K.js} +1 -1
- package/dist/chunks/{chunk-55YD4UTW.js → chunk-IV2HEX3I.js} +1 -1
- package/dist/chunks/{chunk-MOXIGLN2.js → chunk-JALL5NPH.js} +1 -1
- package/dist/chunks/{chunk-U7X5ZLAL.js → chunk-JCHLDNCX.js} +1 -1
- package/dist/chunks/{chunk-7PKDJHT6.js → chunk-JH4RACOB.js} +1 -1
- package/dist/chunks/{chunk-MIFVX5PK.js → chunk-JSDGOQ5U.js} +1 -1
- package/dist/chunks/{chunk-65WRWLUD.js → chunk-JVEIK4RH.js} +1 -1
- package/dist/chunks/{chunk-PPF6EBTQ.js → chunk-K3WM4NEC.js} +1 -1
- package/dist/chunks/{chunk-CCZ276IA.js → chunk-KOIXRLZZ.js} +1 -1
- package/dist/chunks/{chunk-6C6ZCYTL.js → chunk-KRJZ5CW3.js} +1 -1
- package/dist/chunks/{chunk-CUB6PWAJ.js → chunk-KTQWWCP2.js} +6 -6
- package/dist/chunks/{chunk-Y4E5AAI7.js → chunk-KUEVP7WM.js} +1 -1
- package/dist/chunks/{chunk-U7D6Q744.js → chunk-L5L3H6CI.js} +1 -1
- package/dist/chunks/{chunk-VWWKWYSQ.js → chunk-LHTRQAPZ.js} +1 -1
- package/dist/chunks/{chunk-QLGP2OAQ.js → chunk-MLLMLXKG.js} +1 -1
- package/dist/chunks/{chunk-QUNQM2E3.js → chunk-MPEK4ZNY.js} +1 -1
- package/dist/chunks/{chunk-EGP6DF34.js → chunk-MPXOPL7R.js} +2 -2
- package/dist/chunks/{chunk-PHZZBXDO.js → chunk-MQMMJKOZ.js} +1 -1
- package/dist/chunks/{chunk-B66QCXH2.js → chunk-MWPMYCYB.js} +1 -1
- package/dist/chunks/{chunk-5G7BQAUA.js → chunk-N5FT6PTI.js} +1 -1
- package/dist/chunks/{chunk-SDHG6CKU.js → chunk-NDNSLCPE.js} +1 -1
- package/dist/chunks/{chunk-WCNPGKST.js → chunk-O4YHISU2.js} +1 -1
- package/dist/chunks/{chunk-IO5DZUKL.js → chunk-OI4DAZ4U.js} +1 -1
- package/dist/chunks/{chunk-Q73RKX7I.js → chunk-OIIE5GUK.js} +1 -1
- package/dist/chunks/{chunk-N5EAVX4G.js → chunk-OOKHHOIU.js} +1 -1
- package/dist/chunks/{chunk-7OKZCJHS.js → chunk-OXRN2257.js} +1 -1
- package/dist/chunks/{chunk-HES4VP3D.js → chunk-PYPXP5R3.js} +1 -1
- package/dist/chunks/{chunk-ZK3ET5EP.js → chunk-QKBMXL4D.js} +3 -3
- package/dist/chunks/{chunk-YAA7F5LI.js → chunk-QKGNAYSC.js} +1 -1
- package/dist/chunks/{chunk-KDER7R45.js → chunk-RIFWD5XM.js} +1 -1
- package/dist/chunks/{chunk-WZ35ICTE.js → chunk-RWBP2H4M.js} +1 -1
- package/dist/chunks/{chunk-SO4GMSNP.js → chunk-S5ACNR5Y.js} +1 -1
- package/dist/chunks/{chunk-M4ZHFDRJ.js → chunk-SRK4WX7D.js} +1 -1
- package/dist/chunks/{chunk-XY7HFXLH.js → chunk-SVLVIYH2.js} +1 -1
- package/dist/chunks/{chunk-FNGZ4UDZ.js → chunk-T6ML5SCD.js} +1 -1
- package/dist/chunks/{chunk-CO23RRN7.js → chunk-TD5YYA5Z.js} +1 -1
- package/dist/chunks/{chunk-7NCM6GBN.js → chunk-TOWY6Y23.js} +1 -1
- package/dist/chunks/{chunk-OXQ2WFIH.js → chunk-TR5UC5AF.js} +1 -1
- package/dist/chunks/{chunk-JQOVC35K.js → chunk-UCPD526R.js} +1 -1
- package/dist/chunks/{chunk-Y4I6CFZJ.js → chunk-UGDBMRCT.js} +1 -1
- package/dist/chunks/{chunk-E2JB5OCO.js → chunk-UZE3C2SF.js} +1 -1
- package/dist/chunks/{chunk-PACLKDTN.js → chunk-V4VM2R6D.js} +1 -1
- package/dist/chunks/{chunk-XOPHFUUY.js → chunk-VMBWCIGG.js} +1 -1
- package/dist/chunks/{chunk-CIZI6Z7D.js → chunk-VMW23TIZ.js} +1 -1
- package/dist/chunks/{chunk-4G3GTEVS.js → chunk-VSQPWLAG.js} +1 -1
- package/dist/chunks/{chunk-54755JYM.js → chunk-VXFGSFIE.js} +2 -2
- package/dist/chunks/{chunk-R2FYCJL6.js → chunk-W4JBPYGW.js} +1 -1
- package/dist/chunks/{chunk-JZKTBYNB.js → chunk-WMJEQK4G.js} +1 -1
- package/dist/chunks/{chunk-ESYPMD7Q.js → chunk-X2MJFTLS.js} +1 -1
- package/dist/chunks/{chunk-67U7PAMU.js → chunk-X7ZMUWJO.js} +1 -1
- package/dist/chunks/{chunk-WGQ3FMRF.js → chunk-XKDOPNQ5.js} +1 -1
- package/dist/chunks/{chunk-EYTTZ5H4.js → chunk-XLZMSD5K.js} +1 -1
- package/dist/chunks/{chunk-ZIQJDTQB.js → chunk-XTT3K3TR.js} +1 -1
- package/dist/chunks/{chunk-Q7P34B2O.js → chunk-YFHQRDNQ.js} +1 -1
- package/dist/chunks/{chunk-UGFSAG4U.js → chunk-YG3HITOU.js} +1 -1
- package/dist/chunks/{chunk-DWF3FCY4.js → chunk-Z5R4OSGC.js} +1 -1
- package/dist/chunks/{chunk-JT5YQ52I.js → chunk-Z6HWSTEP.js} +1 -1
- package/dist/chunks/{chunk-4PUOWSDE.js → chunk-ZEOYNUHL.js} +1 -1
- package/dist/chunks/{chunk-4KTGYHCE.js → chunk-ZMRP2A7K.js} +1 -1
- package/dist/chunks/{chunk-OL3L3U36.js → chunk-ZSWATWK2.js} +1 -1
- package/dist/chunks/cli-KXU5DNVV.js +2 -0
- package/dist/chunks/{command-5AXJMFYC.js → command-X35I53H3.js} +3 -3
- package/dist/chunks/{configuration-command-5LUNWPOL.js → configuration-command-VJUK34UQ.js} +1 -1
- package/dist/chunks/{connected-app-executor-DHXZE4X3.js → connected-app-executor-JBFJF2H5.js} +1 -1
- package/dist/chunks/{connected-evidence-NWMPICKJ.js → connected-evidence-CQ533AML.js} +1 -1
- package/dist/chunks/{connected-starting-assets-NRVXIKQ2.js → connected-starting-assets-RL5X6LZ7.js} +1 -1
- package/dist/chunks/{continual-UCKQ2QLH.js → continual-PHGIZFF6.js} +1 -1
- package/dist/chunks/{core-commands-ZPBX35M2.js → core-commands-5DYMDWXY.js} +1 -1
- package/dist/chunks/{dataset-preparation-authoring-UUYFWWCT.js → dataset-preparation-authoring-UDSX33YK.js} +1 -1
- package/dist/chunks/{datasets-6K3ZANIV.js → datasets-BW4JFUUU.js} +1 -1
- package/dist/chunks/{desktop-test-57INNJ76.js → desktop-test-RIG4CB2Z.js} +1 -1
- package/dist/chunks/{dist-2MKJC6HN.js → dist-C5XFRP53.js} +1 -1
- package/dist/chunks/{evaluation-coordination-B7CN4R2D.js → evaluation-coordination-6QJ6XTUX.js} +1 -1
- package/dist/chunks/{experiment-improvements-G357VLDB.js → experiment-improvements-2XF63AQ4.js} +1 -1
- package/dist/chunks/{experiments-BHQO26LJ.js → experiments-3S2BVNK6.js} +1 -1
- package/dist/chunks/{experiments-signal-BI6NKETB.js → experiments-signal-IRBHGGW5.js} +1 -1
- package/dist/chunks/{help-UQN5RUPA.js → help-Q2VMJVTR.js} +1 -1
- package/dist/chunks/host-profile-evaluation-tools-5LZQHA32.js +2 -0
- package/dist/chunks/{host-profile-external-dataset-KSEPXY2S.js → host-profile-external-dataset-C6ZPMTX6.js} +1 -1
- package/dist/chunks/{hosted-app-server-composition-WDDO6F23.js → hosted-app-server-composition-AYZM2HY6.js} +1 -1
- package/dist/chunks/{hosted-experiment-improvement-VVYXQ65K.js → hosted-experiment-improvement-SMZJYRJ7.js} +1 -1
- package/dist/chunks/hosted-harness-runtime-QWIFAITG.js +2 -0
- package/dist/chunks/{hosted-profile-candidate-PTGQLPZO.js → hosted-profile-candidate-WOMWAE5N.js} +1 -1
- package/dist/chunks/{hosted-profile-compiler-FS5R6CHJ.js → hosted-profile-compiler-NZ2BXN32.js} +1 -1
- package/dist/chunks/{hosted-profile-evaluation-control-UUEZEMXU.js → hosted-profile-evaluation-control-3ECFFM7E.js} +1 -1
- package/dist/chunks/{hosted-profile-evaluation-inspection-4F7OEF4T.js → hosted-profile-evaluation-inspection-TM7RKONG.js} +1 -1
- package/dist/chunks/{hosted-profile-evaluation-preparation-LIJJZDHQ.js → hosted-profile-evaluation-preparation-2MZIRT75.js} +1 -1
- package/dist/chunks/{hosted-tasksets-KCLNMPG5.js → hosted-tasksets-IUK3VWSL.js} +1 -1
- package/dist/chunks/{human-review-PX6DBIFT.js → human-review-PG4WWVWV.js} +1 -1
- package/dist/chunks/{import-2HEYPHPW.js → import-FAZAVZBF.js} +1 -1
- package/dist/chunks/{learning-Y3UKNUGE.js → learning-3XDYMYBE.js} +1 -1
- package/dist/chunks/{learning-LSXBL5DB.js → learning-OR4CYV4B.js} +1 -1
- package/dist/chunks/local-harness-improvement-runtime-OYLTKMJU.js +2 -0
- package/dist/chunks/local-harness-taskset-review-I7YU4RZI.js +2 -0
- package/dist/chunks/{model-projects-6YWVD2TS.js → model-projects-POZRHXTF.js} +1 -1
- package/dist/chunks/{opchat-66BCRKEZ.js → opchat-TCZA6373.js} +1 -1
- package/dist/chunks/{opchat-bounded-chat-KQWXZVFN.js → opchat-bounded-chat-GMYDXLWB.js} +1 -1
- package/dist/chunks/{organizations-IOYWDOCC.js → organizations-PYKGA2P2.js} +1 -1
- package/dist/chunks/{profile-YH6G3ZTD.js → profile-GYYI555I.js} +1 -1
- package/dist/chunks/project-action-payload-FE6M2OXJ.js +2 -0
- package/dist/chunks/{project-agent-RYVMKW2F.js → project-agent-4ISJFMJD.js} +1 -1
- package/dist/chunks/{published-experiment-source-SDXUVPE7.js → published-experiment-source-E2YAJCLM.js} +1 -1
- package/dist/chunks/{refiner-profile-service-56VYLZQJ.js → refiner-profile-service-LKGXD5WJ.js} +1 -1
- package/dist/chunks/{runtime-ISLJIGWC.js → runtime-UDLOZD4Y.js} +2 -2
- package/dist/chunks/{sandbox-command-DI45NRTV.js → sandbox-command-4J6DAY7T.js} +1 -1
- package/dist/chunks/{sandbox-template-T42MDUSR.js → sandbox-template-TSXWJMWG.js} +1 -1
- package/dist/chunks/saved-work-QTEBKVUB.js +2 -0
- package/dist/chunks/{send-turn-YLY3YNEQ.js → send-turn-4MH4WMLW.js} +1 -1
- package/dist/chunks/{setup-D6TY2GWV.js → setup-IVT2FQSE.js} +1 -1
- package/dist/chunks/{src-7RN7BF4W.js → src-DC7N2H7A.js} +111 -113
- package/dist/chunks/{src-LF5X4RNQ.js → src-TOSQX36I.js} +1 -1
- package/dist/chunks/{standalone-experiment-turn-owner-TW5MTWIO.js → standalone-experiment-turn-owner-UYPA6XHW.js} +1 -1
- package/dist/chunks/{store-chat-resources-IRHBW2EC.js → store-chat-resources-QLXKKYYC.js} +1 -1
- package/dist/chunks/{store-continual-support-reviews-3KK42L4I.js → store-continual-support-reviews-4F2BOG3H.js} +1 -1
- package/dist/chunks/{store-conversation-serving-IVURK52V.js → store-conversation-serving-EUD47W6X.js} +1 -1
- package/dist/chunks/{store-create-improve-UTCLBXF2.js → store-create-improve-QUOTNNIM.js} +1 -1
- package/dist/chunks/{store-datasets-4AQOVAQY.js → store-datasets-ZUC7CNVO.js} +1 -1
- package/dist/chunks/{store-evaluation-results-PK2P3IMH.js → store-evaluation-results-LHHPHESK.js} +1 -1
- package/dist/chunks/{store-harness-workspaces-YEXB4IRV.js → store-harness-workspaces-TKX5PZWP.js} +1 -1
- package/dist/chunks/{store-human-review-O4BVHP25.js → store-human-review-7WZWRJ6X.js} +1 -1
- package/dist/chunks/{store-learned-preference-migration-validation-44SVX6YB.js → store-learned-preference-migration-validation-MVNKBR4X.js} +1 -1
- package/dist/chunks/{store-learning-SIUQIY5C.js → store-learning-WLUW2PWE.js} +1 -1
- package/dist/chunks/{store-learning-credentials-BUHR7SN6.js → store-learning-credentials-FDKCEDHK.js} +1 -1
- package/dist/chunks/{store-local-experiments-BHVTKPPE.js → store-local-experiments-HB53QFLL.js} +1 -1
- package/dist/chunks/{store-model-batch-review-RVAYUVK2.js → store-model-batch-review-O3I6GIAA.js} +1 -1
- package/dist/chunks/{store-model-configuration-AYFGMC5D.js → store-model-configuration-CDIGNU6Q.js} +1 -1
- package/dist/chunks/{store-model-project-preparation-5DEIS7TB.js → store-model-project-preparation-QMQ2HMJV.js} +1 -1
- package/dist/chunks/{store-modification-recordings-LCPK6K2T.js → store-modification-recordings-W4VEZKKQ.js} +1 -1
- package/dist/chunks/{store-preference-comparison-5YVIQNVB.js → store-preference-comparison-JKURBESE.js} +1 -1
- package/dist/chunks/{store-sidebar-file-bookmarks-WLMYDA4E.js → store-sidebar-file-bookmarks-KAEDHVVF.js} +1 -1
- package/dist/chunks/{store-sidebar-preferences-AFMYIDWT.js → store-sidebar-preferences-QPBLTHY6.js} +1 -1
- package/dist/chunks/{store-subagents-KFPVSTRO.js → store-subagents-ZELQP3MX.js} +1 -1
- package/dist/chunks/{store-task-inbox-L6IQTY26.js → store-task-inbox-4ZDQR2E7.js} +1 -1
- package/dist/chunks/{store-task-inventory-QWS2C656.js → store-task-inventory-CTIJDLYE.js} +1 -1
- package/dist/chunks/{store-taskset-drafts-EAOOY6CR.js → store-taskset-drafts-FRPBYLTW.js} +1 -1
- package/dist/chunks/{store-training-FYXZU2FE.js → store-training-WQAYUT7B.js} +1 -1
- package/dist/chunks/{store-training-jobs-3N3VKPIY.js → store-training-jobs-O5EHGTH7.js} +1 -1
- package/dist/chunks/{store-training-models-VOFVGPZR.js → store-training-models-YSZMC66T.js} +1 -1
- package/dist/chunks/{taskset-HNDIGYQG.js → taskset-OVYM4QMS.js} +1 -1
- package/dist/chunks/{taskset-packages-WMG5DUBN.js → taskset-packages-FUQWNTSB.js} +1 -1
- package/dist/chunks/{taskset-packages-T6B6HYKZ.js → taskset-packages-GM6IUOTY.js} +1 -1
- package/dist/chunks/{teams-bot-Z5CZLWE4.js → teams-bot-U2M3ORWR.js} +1 -1
- package/dist/chunks/{tool-learning-ZQ6NSJ5K.js → tool-learning-NXVR4YPA.js} +1 -1
- package/dist/chunks/{training-JTYQA7GA.js → training-EQ7G5FDY.js} +1 -1
- package/dist/chunks/training-LQUAL4Y4.js +2 -0
- package/dist/chunks/training-PEZYJ2SN.js +2 -0
- package/dist/chunks/{training-hosted-36SZFS4U.js → training-hosted-XKSUTMLQ.js} +1 -1
- package/dist/chunks/{training-hosted-alphaedit-HSMRDJTD.js → training-hosted-alphaedit-VCOEYLKK.js} +1 -1
- package/dist/chunks/{training-hosted-decision-7JALOU6O.js → training-hosted-decision-IKWWXA56.js} +1 -1
- package/dist/chunks/{training-hosted-engram-SXO75MFG.js → training-hosted-engram-3TOPPVSW.js} +1 -1
- package/dist/chunks/{training-hosted-learning-E2N32YU5.js → training-hosted-learning-UEBGSSNC.js} +1 -1
- package/dist/chunks/{training-hosted-modification-comparison-TXFDJFTG.js → training-hosted-modification-comparison-C6S4JFHW.js} +1 -1
- package/dist/chunks/{training-hosted-neuron-training-J42WK4EH.js → training-hosted-neuron-training-EP2U4PHG.js} +1 -1
- package/dist/chunks/{training-hosted-serving-report-BAEABGJH.js → training-hosted-serving-report-KJMRZJLQ.js} +1 -1
- package/dist/chunks/{training-hosted-steering-T556BUBG.js → training-hosted-steering-I27DV6A2.js} +1 -1
- package/dist/chunks/{training-model-start-P3PXDWNT.js → training-model-start-NWXNGRDC.js} +1 -1
- package/dist/chunks/{workspaces-EK62ANTB.js → workspaces-FVQYJPOS.js} +1 -1
- package/dist/cli.js +1 -1
- package/dist/index.js +1 -1
- package/dist/skills/manifest.json +3 -3
- package/dist/skills/openpond-cli/references/experiments-and-training.md +19 -0
- package/dist/web/assets/App-QM6Y2Eod.js +54 -0
- package/dist/web/assets/{AppDialog-x1HU1uLv.js → AppDialog-C8um481a.js} +1 -1
- package/dist/web/assets/{AppTerminalPanel-CNIKmqKc.js → AppTerminalPanel-OwNr-bp6.js} +2 -2
- package/dist/web/assets/{AppToastContext-DNWd43HS.js → AppToastContext-BQ4iRFif.js} +1 -1
- package/dist/web/assets/{AppsView-BvOD83Z1.js → AppsView-mk8m_Cra.js} +1 -1
- package/dist/web/assets/{AttachmentTypeIcon-BLdDr3JZ.js → AttachmentTypeIcon-SITPqTtF.js} +1 -1
- package/dist/web/assets/{BrowserSidebar-Ar0FlFKg.js → BrowserSidebar-BghdIKTB.js} +1 -1
- package/dist/web/assets/{CartesianChart-tS7f1HZv.js → CartesianChart-BdRx7q_O.js} +1 -1
- package/dist/web/assets/{ChatTimelineEntry-z7_kur3h.js → ChatTimelineEntry-BBOnAzJB.js} +1 -1
- package/dist/web/assets/{CollaborationTabs-CaiFEKrv.js → CollaborationTabs-Beja-9s5.js} +1 -1
- package/dist/web/assets/{CommandMenu-BpubEqaA.js → CommandMenu-CQtrSUpu.js} +1 -1
- package/dist/web/assets/{CommunityView-TGR4s99l.js → CommunityView-LPTAakS-.js} +1 -1
- package/dist/web/assets/{ComposerAttachments-DPWCjKXz.js → ComposerAttachments-DI-Gr7Zw.js} +1 -1
- package/dist/web/assets/{ComposerCreateImproveStrip-Drji01_6.js → ComposerCreateImproveStrip-CY5Uw1yc.js} +1 -1
- package/dist/web/assets/{ConversationImportsSettings-B_oW0cz7.js → ConversationImportsSettings-DFwhKERw.js} +1 -1
- package/dist/web/assets/{DatasetReviewImport-Dr3unJSY.js → DatasetReviewImport-C9xraQk7.js} +1 -1
- package/dist/web/assets/{ExperimentTrainingDataWorkspace-DObvpJAw.js → ExperimentTrainingDataWorkspace-Cx58S6R_.js} +2 -2
- package/dist/web/assets/{FilePagePreview-9kkXbARN.js → FilePagePreview-dlbmR8s8.js} +2 -2
- package/dist/web/assets/{GetStartedView-Dv2b_SlH.js → GetStartedView-BkTV_shK.js} +1 -1
- package/dist/web/assets/{GettingStartedDialog-sPaPMc61.js → GettingStartedDialog-DulDLYnr.js} +1 -1
- package/dist/web/assets/{HostedModelLearningReview-BlwhGxS6.js → HostedModelLearningReview--fXJEOfI.js} +1 -1
- package/dist/web/assets/{HostedModelLearningSettings-B5ahk3je.js → HostedModelLearningSettings-BEb7B_PC.js} +1 -1
- package/dist/web/assets/{HtmlVisual-rGsClq0p.js → HtmlVisual-BS61T2qR.js} +1 -1
- package/dist/web/assets/{LabModelVersionDetailPage-Da7AwZWV.js → LabModelVersionDetailPage-CmzUIDbR.js} +1 -1
- package/dist/web/assets/{LabModelWorkspace-DTeYViWH.js → LabModelWorkspace-DoAnQKWk.js} +1 -1
- package/dist/web/assets/{LabSkillSidebar-BieHbNl6.js → LabSkillSidebar-DJTm7ZQs.js} +1 -1
- package/dist/web/assets/{LabsRoute-D3XqPB0-.js → LabsRoute-DNtBot4a.js} +4 -4
- package/dist/web/assets/{LearningBatchesPage-CCBuf2u4.js → LearningBatchesPage-C_oQjciE.js} +1 -1
- package/dist/web/assets/{MainChatThread-B6BQJfcq.js → MainChatThread-D9e-to8e.js} +2 -2
- package/dist/web/assets/{MainPane-D3fQou29.js → MainPane-mWeD0M-f.js} +6 -6
- package/dist/web/assets/{ModelProjectPageHeader-BZn9Lu_J.js → ModelProjectPageHeader-BecKU_2p.js} +1 -1
- package/dist/web/assets/{NativeSetupTerminal-Bglqab_g.js → NativeSetupTerminal-DO0DN4fH.js} +2 -2
- package/dist/web/assets/{NativeSkillSidebar-pUGRdnV_.js → NativeSkillSidebar-jnxgQASC.js} +1 -1
- package/dist/web/assets/{NewProjectDialog-BpHN38MA.js → NewProjectDialog-ByHR4vMf.js} +1 -1
- package/dist/web/assets/{OutputsPage-LunDCQ6w.js → OutputsPage-DZY4BUCy.js} +1 -1
- package/dist/web/assets/{PageChrome-DThEcWAx.js → PageChrome-DjPuwWsn.js} +1 -1
- package/dist/web/assets/{ProjectsPage-vct_TQgL.js → ProjectsPage-DKbwhIM4.js} +1 -1
- package/dist/web/assets/{RightChatPanelStack-CgFK7DY0.js → RightChatPanelStack-BARH0XuL.js} +1 -1
- package/dist/web/assets/RightSidebarHomePanel-qKL8dZrN.js +1 -0
- package/dist/web/assets/{ScheduledWorkPage-mmaZfybl.js → ScheduledWorkPage-CElrmRz9.js} +1 -1
- package/dist/web/assets/{SettingsView-CJfeRsWR.js → SettingsView-CsFSjE9s.js} +3 -3
- package/dist/web/assets/{TasksetDraftEditorPrimitives-CuimAfkv.js → TasksetDraftEditorPrimitives-DJoYkvWq.js} +1 -1
- package/dist/web/assets/{TeamChatView-BcK0lF1b.js → TeamChatView-D9Y4e98Y.js} +1 -1
- package/dist/web/assets/{TerminalOverlay-0pzEvy-C.js → TerminalOverlay-CUO8yZjy.js} +1 -1
- package/dist/web/assets/{TrainingCreationPanel-CcyzFz7l.js → TrainingCreationPanel-_mnLQ1HA.js} +1 -1
- package/dist/web/assets/{TrainingDraftPanel-DSLZXdLz.js → TrainingDraftPanel-CCqQTHo5.js} +1 -1
- package/dist/web/assets/{UsageSettingsSection-BT9pcnCn.js → UsageSettingsSection-CdWq5oYC.js} +1 -1
- package/dist/web/assets/WorkSidebarPanel-DRXaK-E6.js +1 -0
- package/dist/web/assets/{WorkspaceDiffPanel-Bbz5qrVA.js → WorkspaceDiffPanel-CdHr8bX6.js} +3 -3
- package/dist/web/assets/{WorkspaceEnvironmentMenu-6hXpvMTl.js → WorkspaceEnvironmentMenu-BnUh4dg9.js} +1 -1
- package/dist/web/assets/{WorkspaceFileLocation-BijVemBl.js → WorkspaceFileLocation-VzrSq_Ki.js} +1 -1
- package/dist/web/assets/{WorkspaceGitDialogs-BOO0E5i9.js → WorkspaceGitDialogs-nwvQOm9r.js} +1 -1
- package/dist/web/assets/{WorkspaceMonacoEditor-B_YzK7Do.js → WorkspaceMonacoEditor-m3bCIpZe.js} +3 -3
- package/dist/web/assets/{WorkspacePdfPreview-CFti1fvu.js → WorkspacePdfPreview-u6Iv0qr0.js} +2 -2
- package/dist/web/assets/{WorkspacePresentationPreview-DPAhNaV6.js → WorkspacePresentationPreview-CjvTjhUO.js} +1 -1
- package/dist/web/assets/{bot-BE2rL_qv.js → bot-DiDSZBLn.js} +1 -1
- package/dist/web/assets/{chat-resources-Beh5lB36.js → chat-resources-CmBtWC5V.js} +1 -1
- package/dist/web/assets/chevron-down-CqxKXYPf.js +1 -0
- package/dist/web/assets/chevron-right-ClP6ukIq.js +1 -0
- package/dist/web/assets/chevron-up-DY7wpdJ1.js +1 -0
- package/dist/web/assets/{chunk-C3TS766N-j1MK0e3c.js → chunk-C3TS766N-DSA4vs-Y.js} +1 -1
- package/dist/web/assets/{client-BnJhN-14.js → client-_uDCFdg5.js} +1 -1
- package/dist/web/assets/{client-choice-storage-CQ0CNkzG.js → client-choice-storage-CRKZpilL.js} +1 -1
- package/dist/web/assets/{cloud-upload-DFjZE4O4.js → cloud-upload-CWamjPts.js} +1 -1
- package/dist/web/assets/{copy-CGrLUtw5.js → copy-B56YjDkW.js} +1 -1
- package/dist/web/assets/{cssMode-DvRw2fUx.js → cssMode-BuC9qQvo.js} +1 -1
- package/dist/web/assets/{external-link-3ZnEFUXd.js → external-link-BSn21e-y.js} +1 -1
- package/dist/web/assets/{folder-open-i9n8450i.js → folder-open-CaJGWSr2.js} +1 -1
- package/dist/web/assets/{folder-plus-cu8Md_ej.js → folder-plus-eTUep-az.js} +1 -1
- package/dist/web/assets/{git-commit-horizontal-CwckmC09.js → git-commit-horizontal-Buk_hy6T.js} +1 -1
- package/dist/web/assets/{htmlMode-8VF4Ovtw.js → htmlMode-D7kF2kDL.js} +1 -1
- package/dist/web/assets/{icons-4yRSxBZj.js → icons-B4B5eUyR.js} +1 -1
- package/dist/web/assets/{image-D-umhyyK.js → image--4h1aK2l.js} +1 -1
- package/dist/web/assets/{index-DiVhx1GM.js → index-CCaTs7xt.js} +2 -2
- package/dist/web/assets/{info-Dq2RsPDJ.js → info-DjMTH4sJ.js} +1 -1
- package/dist/web/assets/{jsonMode-CvCYQHkB.js → jsonMode-BVX_7KjE.js} +1 -1
- package/dist/web/assets/loader-circle-DNHvEoaP.js +1 -0
- package/dist/web/assets/{lspLanguageFeatures-CjufNNFF.js → lspLanguageFeatures-RBOb-3wX.js} +1 -1
- package/dist/web/assets/{maximize-2-CKY8dua6.js → maximize-2-Cjg-f1xT.js} +1 -1
- package/dist/web/assets/{message-square-CVDgKlKX.js → message-square-oIMQDMc3.js} +1 -1
- package/dist/web/assets/{monaco.contribution-BYAgjZbj.js → monaco.contribution-CIbGU5-C.js} +2 -2
- package/dist/web/assets/{monaco.contribution-PjJ1258q.js → monaco.contribution-CIwt2mTE.js} +2 -2
- package/dist/web/assets/{monaco.contribution-BYY3-y9l.js → monaco.contribution-Dd1cPdSS.js} +2 -2
- package/dist/web/assets/{monaco.contribution-Bh0CKj9i.js → monaco.contribution-KRLNg324.js} +2 -2
- package/dist/web/assets/{monitor-UYe42gew.js → monitor-BWaitd6I.js} +1 -1
- package/dist/web/assets/{paperclip-DrlSVUoz.js → paperclip-FYK6OySO.js} +1 -1
- package/dist/web/assets/{pdf-BMhday2W.js → pdf-DbwlsqZP.js} +1 -1
- package/dist/web/assets/play-DieChKfF.js +1 -0
- package/dist/web/assets/plus-DkfcQyma.js +1 -0
- package/dist/web/assets/{presentation-DcZKqH7w.js → presentation-B6MaAPC7.js} +1 -1
- package/dist/web/assets/{python-CiA01i07.js → python-DRYJxjiM.js} +1 -1
- package/dist/web/assets/{refresh-cw-00D-GDnF.js → refresh-cw-DOVpqCfJ.js} +1 -1
- package/dist/web/assets/{save-CXe7bqR7.js → save-BuyyyR4Q.js} +1 -1
- package/dist/web/assets/{settings-lists-B5J40WM6.js → settings-lists-BeAdxSjx.js} +1 -1
- package/dist/web/assets/square-D0YnIVh6.js +1 -0
- package/dist/web/assets/{square-terminal-DxC7TTds.js → square-terminal-DTOIZy6_.js} +1 -1
- package/dist/web/assets/{submit-issue-command-Dq3TqJLV.js → submit-issue-command-V--K9lVQ.js} +1 -1
- package/dist/web/assets/{toggleHighContrast-BH3Jckfo.js → toggleHighContrast-nNzCoE0h.js} +1 -1
- package/dist/web/assets/training-DZgfVcI-.js +1 -0
- package/dist/web/assets/{training-model-data-B6IZ3x-t.js → training-model-data-CWoTokkb.js} +1 -1
- package/dist/web/assets/{tsMode-DXkj4bqC.js → tsMode-BfVi5_FZ.js} +1 -1
- package/dist/web/assets/{upload-B3KRHVHl.js → upload-C2MnlWjj.js} +1 -1
- package/dist/web/assets/{useAccountSettings-BGRkTRrp.js → useAccountSettings-QwRbZIKu.js} +1 -1
- package/dist/web/assets/{useAgentInventory-D_1AlAZJ.js → useAgentInventory-B7xEgMCA.js} +1 -1
- package/dist/web/assets/{useChatContextSelection-hoMSuUSE.js → useChatContextSelection-O6wo4EqD.js} +1 -1
- package/dist/web/assets/{useLocalAgentSchedules-DxTER7Ow.js → useLocalAgentSchedules-DpHnOGoV.js} +1 -1
- package/dist/web/assets/{useQuery-DkPec_9x.js → useQuery-CvZ8bzdW.js} +1 -1
- package/dist/web/assets/{wifi-off-CMzpvbWl.js → wifi-off-B8d12Alh.js} +1 -1
- package/dist/web/assets/{workers-ziY_bTv2.js → workers-sIVKxb8c.js} +1 -1
- package/dist/web/assets/x-BvVvVB-j.js +1 -0
- package/dist/web/assets/{yaml-mSvqVSko.js → yaml-8-aLM3zj.js} +1 -1
- package/dist/web/index.html +1 -1
- package/docs/command-reference.md +1 -0
- package/package.json +1 -1
- package/dist/chunks/app-server-runtime-B7AMBGQZ.js +0 -2
- package/dist/chunks/chunk-6D3FI2XT.js +0 -2
- package/dist/chunks/chunk-VEBW7NKD.js +0 -2
- package/dist/chunks/cli-ALEEFAJ7.js +0 -2
- package/dist/chunks/host-profile-evaluation-tools-UF4ATIUF.js +0 -2
- package/dist/chunks/hosted-harness-runtime-MMTLCL23.js +0 -2
- package/dist/chunks/local-harness-improvement-runtime-3YJQRYXC.js +0 -2
- package/dist/chunks/local-harness-taskset-review-E5GN5LTR.js +0 -2
- package/dist/chunks/project-action-payload-53OH6WDH.js +0 -2
- package/dist/chunks/saved-work-54I5ZJTC.js +0 -2
- package/dist/chunks/training-5NT2YB2L.js +0 -2
- package/dist/chunks/training-UY6KRG4M.js +0 -2
- package/dist/web/assets/App-CXhxya9x.js +0 -54
- package/dist/web/assets/RightSidebarHomePanel-BJmzUcmy.js +0 -1
- package/dist/web/assets/WorkSidebarPanel-CP-nHAsJ.js +0 -1
- package/dist/web/assets/chevron-down-Bn8yph2O.js +0 -1
- package/dist/web/assets/chevron-right-BU-jUmb2.js +0 -1
- package/dist/web/assets/chevron-up-DacwuDJZ.js +0 -1
- package/dist/web/assets/loader-circle-DBl6qqtR.js +0 -1
- package/dist/web/assets/play-DIqZnaNf.js +0 -1
- package/dist/web/assets/plus-CFNxAPMK.js +0 -1
- package/dist/web/assets/square-DJEaBefe.js +0 -1
- package/dist/web/assets/training-DWfghwfZ.js +0 -1
- package/dist/web/assets/x-omjwMPbJ.js +0 -1
|
@@ -8,6 +8,6 @@ Authored rubric:
|
|
|
8
8
|
}
|
|
9
9
|
const passed = output.answer === expectedOutput.answer;
|
|
10
10
|
return { score: passed ? 1 : 0, passed, feedback: passed ? "Answer matched" : "Answer differed" };
|
|
11
|
-
}`;function Pi(t){V(t,262144);let e=ei.parse(t.fields),a=t.base?Y.parse(t.base):null;if(a&&a.id!==t.id)throw new b("reward_authoring_base_mismatch",422);let n=e.fixtures?.length?se({text:JSON.stringify(e.fixtures),path:"reward-fixtures.json",mediaType:"application/json",visibility:"verifier"}):null,r=null,s,c;if(e.kind==="custom_verifier")r=se({text:e.code,path:"verifier.mjs",mediaType:"application/javascript",visibility:"verifier"}),s={kind:e.kind,verifierRef:r.asset,exportName:e.exportName,timeoutMs:Ae(e.timeout,"Time limit"),networkPolicy:"none",...e.verifierRuntime??(a?.implementation.kind==="custom_verifier"?a.implementation.runtime:void 0)?{runtime:e.verifierRuntime??(a?.implementation.kind==="custom_verifier"?a.implementation.runtime:void 0)}:{}};else if(e.kind==="model_judge"||e.kind==="human"){if(!e.rubric.trim())throw new b("reward_rubric_required",422,"Write the rubric before checking or publishing this Reward.");if(r=se({text:e.rubric,path:"rubric.md",mediaType:"text/markdown",visibility:"verifier"}),e.kind==="human")s={kind:e.kind,rubricRef:r.asset,reviewerRole:e.reviewerRole,form:gi.parse(JSON.parse(e.humanForm||JSON.stringify({schemaVersion:"openpond.humanForm.v1",mode:"individual",instructions:e.rubric,criteria:[{id:"quality",label:"Quality",instructions:e.rubric,required:!0,allowAbstain:!0,kind:"score",minimum:0,maximum:1,step:.1}]})))};else{let p={providerId:e.providerId,modelId:e.modelId,revision:e.modelRevision.trim()||null},w=Ae(e.temperature,"Temperature"),f=a?.implementation,l=f?.kind==="model_judge"&&f.rubricRef.contentHash===r.asset.contentHash&&f.model?.providerId===p.providerId&&f.model?.modelId===p.modelId&&f.model?.revision===p.revision&&(f.temperature??0)===w&&a?.fixtureSetRef?.contentHash===n?.asset.contentHash;s={kind:e.kind,rubricRef:r.asset,model:p,temperature:w,calibrationStatus:l?f.calibrationStatus:"pending"},l&&(c=a?.calibrationCheckRef)}}else e.kind==="learned_model"?(Ce(e.inputContract,"Model input contract"),r=se({text:e.inputContract,path:"input-contract.json",mediaType:"application/json",visibility:"verifier"}),s={kind:e.kind,modelVersion:{id:e.learnedId,contentHash:e.learnedHash},inputContract:r.asset}):e.kind==="state"?s={kind:e.kind,config:{fields:Bi(e.fields)}}:e.kind==="content"?s={kind:e.kind,config:{outputField:e.outputField,expectedField:e.expectedField,...e.expectedValue?{expectedValue:e.expectedValue}:{}}}:e.kind==="schema"?s={kind:e.kind,config:{jsonSchema:Ce(e.schema,"Output schema")}}:e.kind==="artifact"?s={kind:e.kind,config:{refIncludes:e.reference}}:s={kind:e.kind,config:{requiredEvents:Bi(e.events)}};let o=[...r?[r]:[],...n?[n]:[]];return{reward:je({schemaVersion:"openpond.rewardRelease.v1",id:t.id,revision:(a?.revision??0)+1,name:e.name,description:e.description,...e.feedbackKey===void 0?{}:{feedbackKey:e.feedbackKey},implementation:s,rawScore:e.kind==="learned_model"?{minimum:Ae(e.minimum,"Minimum score"),maximum:Ae(e.maximum,"Maximum score")}:{minimum:0,maximum:1},assets:o.map(p=>p.asset),...n?{fixtureSetRef:n.asset}:{},...c?{calibrationCheckRef:c}:{}}),assets:o}}g(Pi,"compileRewardAuthoring");function ss(t,e,a=null){let n=t?.implementation,r=n&&"verifierRef"in n?n.verifierRef:n&&"rubricRef"in n?n.rubricRef:n&&"inputContract"in n?n.inputContract:null;if(r&&!e)throw new b("reward_source_required",422);let s=r&&e?N(e,r):"";if(t?.fixtureSetRef&&!a)throw new b("reward_fixtures_required",422);let c=t?.fixtureSetRef&&a?Xt.array().max(50).parse(JSON.parse(N(a,t.fixtureSetRef))):[],o=n&&"config"in n?n.config:{};return{name:t?.name??"",description:t?.description??"",...t?.feedbackKey?{feedbackKey:t.feedbackKey}:{},kind:n?.kind??"state",fields:Oi(o.fields).join(", ")||"answer",outputField:yt(o.outputField)||"text",expectedField:yt(o.expectedField)||"text",expectedValue:yt(o.expectedValue),schema:JSON.stringify(o.jsonSchema??{type:"object",properties:{answer:{type:"string"}},required:["answer"]},null,2),reference:yt(o.refIncludes),events:Oi(o.requiredEvents).join(", "),code:n?.kind==="custom_verifier"?s:Zn,verifierRuntime:n?.kind==="custom_verifier"?n.runtime??"isolated_javascript":"isolated_javascript",exportName:n?.kind==="custom_verifier"?n.exportName??"verify":"verify",timeout:String(n?.kind==="custom_verifier"?n.timeoutMs:5e3),rubric:n?.kind==="model_judge"||n?.kind==="human"?s:"",providerId:n?.kind==="model_judge"?n.model?.providerId??"":"",modelId:n?.kind==="model_judge"?n.model?.modelId??"":"",modelRevision:n?.kind==="model_judge"?n.model?.revision??"":"",temperature:String(n?.kind==="model_judge"?n.temperature??0:0),reviewerRole:n?.kind==="human"?n.reviewerRole:"Subject matter reviewer",humanForm:n?.kind==="human"&&n.form?JSON.stringify(n.form,null,2):"",learnedId:n?.kind==="learned_model"?n.modelVersion.id:"",learnedHash:n?.kind==="learned_model"?n.modelVersion.contentHash:"",inputContract:n?.kind==="learned_model"?s:"{}",minimum:String(t?.rawScore.minimum??0),maximum:String(t?.rawScore.maximum??1),...c.length?{fixtures:c}:{}}}g(ss,"rewardAuthoringFields");function Ce(t,e){try{let a=JSON.parse(t);return V(a,131072),O.parse(a)}catch{throw new b("reward_authoring_json_invalid",422,`${e} must be a JSON object.`)}}g(Ce,"parseRewardAuthoringObject");function Ae(t,e){let a=Number(t);if(!t.trim()||!Number.isFinite(a))throw new b("reward_authoring_number_invalid",422,`${e} must be a finite number.`);return a}g(Ae,"authoringNumber");function yt(t){return typeof t=="string"?t:""}g(yt,"text");function Oi(t){return Array.isArray(t)?t.filter(e=>typeof e=="string"):[]}g(Oi,"strings");function Bi(t){return t.split(",").map(e=>e.trim()).filter(Boolean)}g(Bi,"split");var ai=i.object({id:v,name:i.string().trim().min(1).max(500),input:O,output:O,expectedOutput:O.nullable(),evaluatorContext:O.nullable(),artifactRefs:i.array(v).max(100),runtimeEventRefs:i.array(v).max(100),infrastructureError:i.string().max(2e4).nullable(),expected:i.discriminatedUnion("status",[i.object({status:i.literal("scored"),minimum:i.number().finite(),maximum:i.number().finite(),passed:i.boolean().nullable()}).strict(),i.object({status:i.enum(["pending","unavailable","failed"])}).strict()])}).strict().superRefine((t,e)=>{t.expected.status==="scored"&&t.expected.minimum>t.expected.maximum&&e.addIssue({code:"custom",path:["expected"],message:"Expected score minimum must not exceed maximum."})}),ri=i.object({id:v,packageVersion:i.string().min(1).max(100),engine:i.string().min(1).max(200)}).strict(),Vi=i.object({fixture:i.object({id:v,contentHash:B}).strict(),result:mt,matchesExpectation:i.boolean()}).strict(),$=i.object({schemaVersion:i.literal("openpond.rewardCheckRun.v1"),id:v,revision:i.number().int().positive(),draft:y,reward:y,snapshotHash:B,fixtureRefs:i.array(i.object({id:v,contentHash:B}).strict()).min(1).max(50),status:i.enum(["queued","running","completed","failed","cancelling","cancelled"]),runtime:ri.nullable(),results:i.array(Vi).max(50),matchesExpectations:i.boolean().nullable(),failure:i.string().max(2e4).nullable(),timeoutMs:i.number().int().min(100).max(3e5),maximumSpendUsd:i.number().nonnegative().max(1e3),judgeCalls:i.array(Ge).max(1e3).optional(),requestedBy:v.optional(),leaseOwner:v.nullable(),leaseExpiresAt:E.nullable(),attemptCount:i.number().int().nonnegative(),createdAt:E,updatedAt:E}).strict();function Yn(t){if(!t.length||t.length>50)throw new b("reward_check_fixtures_required",422,"Add between one and 50 fixtures before checking this Reward.");if(new Set(t.map(e=>e.id)).size!==t.length)throw new b("reward_fixture_id_duplicate",422);return t.map(e=>ai.parse({id:e.id,name:e.name,input:Ce(e.input,`${e.name}: input`),output:Ce(e.output,`${e.name}: output`),expectedOutput:e.expectedOutput.trim()?Ce(e.expectedOutput,`${e.name}: expected answer`):null,evaluatorContext:e.evaluatorContext.trim()?Ce(e.evaluatorContext,`${e.name}: evaluator context`):null,artifactRefs:e.artifactRefs.map(a=>a.trim()).filter(Boolean),runtimeEventRefs:e.runtimeEventRefs.map(a=>a.trim()).filter(Boolean),infrastructureError:e.infrastructureError||null,expected:e.expectedStatus==="scored"?{status:e.expectedStatus,minimum:Ae(e.minimumScore,`${e.name}: minimum score`),maximum:Ae(e.maximumScore,`${e.name}: maximum score`),passed:e.expectedPassed==="any"?null:e.expectedPassed==="true"}:{status:e.expectedStatus}}))}g(Yn,"compileRewardFixtures");function de(t,e){let a=Pi({id:t.targetId,fields:t.fields,base:e}),n=Yn(t.fields.fixtures??[]),r=n.map(s=>({id:s.id,contentHash:_(s)}));return{...a,fixtures:n,fixtureRefs:r,snapshotHash:_({reward:a.reward,fixtures:n})}}g(de,"compileRewardCheck");async function Fi(t){let e=ai.parse(t.fixture),a=re.parse({id:e.id,clusterKey:e.id,split:"validation",input:e.input,expectedOutput:e.expectedOutput,privilegedContextRef:null}),n=ue({schemaVersion:"openpond.rewardBinding.v1",id:`fixture-binding-${_(A(t.reward))}`,revision:1,sources:[{graderId:t.reward.id,reward:A(t.reward),role:"evaluation",normalization:t.reward.rawScore.minimum===0&&t.reward.rawScore.maximum===1?{kind:"identity"}:{kind:"linear",minimum:t.reward.rawScore.minimum,maximum:t.reward.rawScore.maximum,direction:"higher"},weight:1,required:!0,hardGate:!1,privileged:!0,fixtureRefs:[]}],aggregation:"weighted_mean",unscorable:"exclude_optional_require_all_required"},[t.reward]);return(await ht({binding:n,rewards:[t.reward],task:a,evaluatorContext:e.evaluatorContext,evidence:{output:e.output,artifactRefs:e.artifactRefs,runtimeEventRefs:e.runtimeEventRefs,infrastructureError:e.infrastructureError},signal:t.signal,customVerifier:t.customVerifier,modelJudge:t.modelJudge,purpose:"fixture_calibration"})).results[0]}g(Fi,"executeRewardFixture");function Fe(t,e){let a=t.expected,n=e.status===a.status&&(a.status!=="scored"||e.rawScore!==null&&e.rawScore>=a.minimum&&e.rawScore<=a.maximum&&(a.passed===null||a.passed===e.passed));return Vi.parse({fixture:{id:t.id,contentHash:_(t)},result:e,matchesExpectation:n})}g(Fe,"matchRewardFixture");var At={draft:ve,reward_check:$,asset:we,definition:G,reward:Y,binding:Ee,source:ie,evidence:he,feedback:ge,decision:Re,batch:De,policy:He,chain:W,consumption:xt,reservation:be,dispatch:ce,schedule:_e,schedule_fire:Rt,iteration:M,grade:X,package:Ne},si=i.enum(Object.keys(At)),ee=class extends b{static{g(this,"LearningConflictError")}kind;id;expectedRevision;currentRevision;constructor(e,a,n,r){super("learning_revision_conflict",409,`Revision conflict for ${e} ${a}: expected ${n}, current ${r}.`),this.kind=e,this.id=a,this.expectedRevision=n,this.currentRevision=r,this.name="LearningConflictError"}};async function C(t,e,a,n){let r=await t.get(e,a,n);if(!r)throw new b("learning_resource_not_found",404,`${e}:${a}`);return At[e].parse(r)}g(C,"requireLearningResource");async function L(t,e,a){let n=await C(t,e,a.id,a.revision);if(!("contentHash"in n)||n.contentHash!==a.contentHash)throw new b("learning_release_hash_mismatch",409,`${e}:${a.id}`);return K(n),n}g(L,"requireLearningRelease");function xe(t,e,a){return`evidence-${_([t,e,a])}`}g(xe,"learningEvidenceId");function Ui(t,e){return _([t,e])}g(Ui,"learningOperationId");async function Ct(t,e,a){let n=await C(t,"iteration",e.iterationId);if(n.revision!==e.expectedRevision)throw new ee("iteration",n.id,e.expectedRevision,n.revision);let r=await C(t,"reservation",n.id);if(n.status==="cancelled")return[{kind:"iteration",id:n.id,revision:n.revision}];if(n.trainingJob||n.evaluationJob||!["ready","waiting_for_data","waiting_for_review"].includes(n.status))throw new b("learning_execution_cancellation_required",409);let s=M.parse({...n,revision:n.revision+1,status:"cancelled",updatedAt:a}),c=be.parse({...r,revision:r.revision+1,budget:{...r.budget,reservedSpendUsd:0,settledSpendUsd:0,settledAt:a},updatedAt:a});await t.put("iteration",s,n.revision,{parentId:r.chainId,status:s.status}),await t.put("reservation",c,r.revision,{parentId:r.chainId,status:r.outcome});let o=await C(t,"chain",r.chainId);return o.activeIterationId===n.id&&await t.put("chain",W.parse({...o,revision:o.revision+1,activeIterationId:null,updatedAt:a}),o.revision,{parentId:o.modelProjectId}),[{kind:"iteration",id:s.id,revision:s.revision},{kind:"reservation",id:c.id,revision:c.revision}]}g(Ct,"cancelLearningIterationReservation");async function Ji(t,e,a){let n=await C(t,"iteration",e.iterationId);if(n.revision!==e.expectedRevision)throw new ee("iteration",n.id,e.expectedRevision,n.revision);let r=await t.get("dispatch",n.dispatchId);if(e.action==="cancel_iteration"&&!r)return Ct(t,{...e,action:"cancel_iteration_reservation"},a);if(!r)throw new b("learning_dispatch_not_started",409);if(r.state==="settled")throw new b("learning_execution_already_terminal",409);if(e.action==="retry_iteration_dispatch"&&r.state!=="blocked")throw new b("learning_dispatch_not_blocked",409);let s=e.action==="cancel_iteration"||!!r.cancelRequestedAt,c=M.parse({...n,revision:n.revision+1,status:s?"cancelling":n.status,failure:null,updatedAt:a}),o=ce.parse({...r,revision:r.revision+1,state:r.execution?"submitted":r.submission?"prepared":"preparing",cancelRequestedAt:s?r.cancelRequestedAt??a:null,consecutiveFailures:0,nextAttemptAt:null,lastError:null,admission:null,updatedAt:a});return await t.put("dispatch",o,r.revision,{parentId:n.id,status:o.state}),await t.put("iteration",c,n.revision,{parentId:r.chainId,status:c.status}),[{kind:"iteration",id:c.id,revision:c.revision},{kind:"dispatch",id:o.id,revision:o.revision}]}g(Ji,"commandLearningIterationDispatch");async function Et(t,e,a,n){let{batch:r,release:s,evidence:c,definition:o}=await oi(t,e,a,n);for(let u of c)for(let p of Pe(u,o))await t.reserveFamilySplit(p.namespace,p.kind,p.key,p.split);return await t.put("batch",r,0,{parentId:o.id}),await t.put("package",s,0,{parentId:r.id}),[Mi("batch",r),Mi("package",s)]}g(Et,"sealLearningBatch");async function oi(t,e,a,n){let r=await L(t,"definition",e.taskDefinition),s=await L(t,"binding",r.rewardBinding),c=await Promise.all(s.sources.map(l=>L(t,"reward",l.reward)));ft(s,c);let o=await Promise.all(e.evidence.map(l=>Ue(t,l))),u=await Promise.all(e.decisions.map(async l=>{let m=await L(t,"decision",l),d=await C(t,"decision",l.id);if(!D(A(d),l))throw new b("task_admission_revision_stale",409);return m})),p=[];for(let l of o)for(let m of Pe(l,r)){let d=await t.familySplit(m.namespace,m.kind,m.key);d!==null&&p.push({...m,split:d})}let w=ji({id:e.batchId,definition:r,binding:s,rewards:c,purpose:e.purpose,evidence:o,decisions:u,priorSplits:p,actorId:a,now:n}),f=Ti({batch:w,definition:r,binding:s,rewards:c,evidence:o,decisions:u});return{batch:w,release:f,evidence:o,definition:r}}g(oi,"prepareLearningBatch");async function Ue(t,e){let a=await L(t,"evidence",e),n=await C(t,"evidence",e.id);if(!D(A(n),e))throw new b("task_evidence_revision_stale",409);return a}g(Ue,"requireCurrentLearningEvidence");function Mi(t,e){return{kind:t,id:e.id,revision:e.revision}}g(Mi,"pointer");function tt(t){return`chain-${_(t)}`}g(tt,"learningChainId");function ci(t,e){return`consumption-${_([t,e.id,e.revision])}`}g(ci,"learningConsumptionId");async function ke(t,e,a={}){let n=e.training.method==="sft"?"supervised_training":"reward_training";if(!["sft","grpo","ppo"].includes(e.training.method))throw new b("learning_batch_method_unsupported",422);if(e.admission.mode!=="human")throw new b("learning_automatic_admission_not_available",422);let r=await L(t,"definition",e.taskDefinition);if(!D(r.rewardBinding,e.rewardBinding))throw new b("learning_policy_binding_mismatch",422);let s={eligible:0,awaitingReview:0,excluded:0,consumed:0},c=[],o=[],u=tt(e.modelProjectId),p=new Set,w=0;for(let f of e.sources){let l=await L(t,"source",f),m=await C(t,"source",l.id);if(!l.enabled||!m.enabled)throw new b("learning_source_disabled",409);if(!D(l.taskDefinition,e.taskDefinition))throw new b("learning_policy_source_definition_mismatch",422);let d;do{let h=await t.list("evidence",{parentId:l.id,limit:100,...d?{afterId:d}:{}});for(let x of h.items){if(p.has(x.id))continue;if(p.add(x.id),!e.sources.some(k=>D(x.source,k))||!D(x.submission.taskDefinition,e.taskDefinition)||x.submission.split!=="train"){s.excluded+=1;continue}if(await t.get("consumption",ci(u,x))){s.consumed+=1;continue}if(++w>e.limits.maxBacklogExamples)throw new b("learning_backlog_limit_exceeded",409);let S=await t.get("decision",`decision-${x.id}`);if(!S||!D(S.evidence,A(x))||S.taskAdmissibility==="pending"||S.actor.kind!=="human"){s.awaitingReview+=1;continue}try{Be({decision:S,evidence:x,definition:r,purpose:n})}catch(k){if(!(k instanceof b))throw k;s.excluded+=1;continue}s.eligible+=1,a.collectEligible&&o.push(A(x)),c.length<e.limits.maxBatchExamples&&c.push({evidence:x,decision:S})}d=h.nextCursor??void 0}while(d)}return{counts:s,selected:c,purpose:n,eligibleEvidence:o}}g(ke,"inspectIterationEligibility");async function jt(t,e,a){let n=new Date(a).toISOString().slice(0,10),r=0,s=0,c;do{let o=await t.list("reservation",{parentId:e,limit:100,...c?{afterId:c}:{}});for(let{budget:u}of o.items)r+=u.reservedSpendUsd,u.settledAt&&new Date(u.settledAt).toISOString().slice(0,10)===n&&(s+=u.settledSpendUsd);c=o.nextCursor??void 0}while(c);return{reservedSpendUsd:r,settledSpendUsd:s,committedSpendUsd:r+s}}g(jt,"readLearningIterationBudget");async function Je(t,e,a=!1){let n=null,r;do{let s=await t.list("iteration",{parentId:e,status:"accepted",limit:100,...r?{afterId:r}:{}});for(let c of s.items){if(!c.candidateVersion||!c.candidateDecision||!c.candidateDecisionAt||!c.trainingJob){if(a)throw new b("learning_accepted_parent_evidence_missing",409);continue}let o=ye.parse({iterationId:c.id,iterationRevision:c.revision,candidate:c.candidateVersion,decision:c.candidateDecision,decidedAt:c.candidateDecisionAt}),u=[Date.parse(o.decidedAt),o.decision.id,o.decision.revision],p=n?[Date.parse(n.decidedAt),n.decision.id,n.decision.revision]:null;(!p||u[0]>p[0]||u[0]===p[0]&&(u[1]>p[1]||u[1]===p[1]&&u[2]>p[2]))&&(n=o)}r=s.nextCursor??void 0}while(r);return n}g(Je,"latestAcceptedLearningParent");async function it(t,e,a){if(!a)return{trainingParent:e.trainingParent,trainingParentSelection:null};let n=await C(t,"iteration",a.iterationId,a.iterationRevision),r=await L(t,"policy",n.policy);if(n.status!=="accepted"||!n.candidateVersion||!n.candidateDecision||!n.trainingJob||n.candidateVersion.id!==a.candidate.id||n.candidateVersion.contentHash!==a.candidate.contentHash||!D(n.candidateDecision,a.decision)||n.candidateDecisionAt!==a.decidedAt||r.modelProjectId!==e.modelProjectId||r.executionOwner!==e.executionOwner)throw new b("learning_accepted_parent_evidence_mismatch",409);if(r.trainingParent.id!==e.trainingParent.id||r.trainingParent.contentHash!==e.trainingParent.contentHash||r.training.method!==e.training.method)throw new b("learning_accepted_parent_configuration_mismatch",409,"The accepted checkpoint belongs to a different starting model or training method.");return{trainingParent:a.candidate,trainingParentSelection:a}}g(it,"resolveLearningTrainingParent");async function Lt(t,e,a,n){let r=await L(t,"policy",e.policy),s=tt(r.modelProjectId),c=e.trigger.kind==="schedule"?{...e.trigger,scheduledAt:new Date(e.trigger.scheduledAt).toISOString()}:e.trigger.kind==="approved_count"?{...e.trigger,checkedAt:new Date(e.trigger.checkedAt).toISOString()}:e.trigger,o=_([e.policy.id,c]),u=`iteration-${_([s,o])}`,p=_({policy:e.policy,trigger:c}),w=await t.get("reservation",u);if(w){if(w.requestHash!==p)throw new b("learning_trigger_identity_conflict",409);return[{kind:"iteration",id:u,revision:(await C(t,"iteration",u)).revision},{kind:"reservation",id:u,revision:w.revision}]}let f=await C(t,"policy",r.id);if(!D(A(f),e.policy))throw new b("learning_policy_revision_stale",409);if(!r.enabled)throw new b("learning_policy_paused",409);if(r.automation.accept||r.automation.serve)throw new b("learning_automatic_acceptance_not_available",422);if(e.trigger.kind==="schedule"){if(!["schedule","nightly"].includes(r.trigger.kind)||!r.automation.train)throw new b("learning_schedule_not_enabled",409);if(Date.parse(e.trigger.scheduledAt)>Date.parse(n))throw new b("learning_schedule_not_due",409)}if(e.trigger.kind==="approved_count"){if(r.trigger.kind!=="approved_count"||!r.automation.train)throw new b("learning_count_trigger_not_enabled",409);if(Date.parse(e.trigger.checkedAt)>Date.parse(n))throw new b("learning_count_trigger_not_due",409)}let l=await t.get("chain",s);if(l?.activeIterationId)throw new b("learning_iteration_active",409,l.activeIterationId);if(l?.lastReservedAt&&Date.parse(n)-Date.parse(l.lastReservedAt)<r.limits.cooldownSeconds*1e3)throw new b("learning_iteration_cooldown",409);let m=await ke(t,r),d=m.counts.eligible>=r.admission.minimumApprovedExamples;if(e.trigger.kind==="approved_count"&&!d)throw new b("learning_count_threshold_not_met",409);let h=d?"ready":m.counts.awaitingReview>0?"waiting_for_review":"waiting_for_data",x=[],S=await Je(t,s,!0),k=await it(t,r,S),j=null;if(d){await Xn(t,s,n,r.limits.maxIterationSpendUsd,r.limits.maxDailySpendUsd);let q=await Et(t,{action:"seal_batch",operationId:e.operationId,batchId:`batch-${_(u)}`,taskDefinition:r.taskDefinition,purpose:m.purpose,evidence:m.selected.map(P=>A(P.evidence)),decisions:m.selected.map(P=>A(P.decision))},a,n);x.push(...q),j=A(await C(t,"batch",q[0].id));for(let P of m.selected){let J=xt.parse({schemaVersion:"openpond.learningConsumption.v1",id:ci(s,P.evidence),revision:1,chainId:s,iterationId:u,evidence:A(P.evidence),decision:A(P.decision),reservedAt:n});await t.put("consumption",J,0,{parentId:s})}}let I=M.parse({schemaVersion:"openpond.learningIteration.v1",id:u,revision:1,policy:e.policy,status:h,triggerIdentity:o,batch:j,sourceWatermarks:{},...k,teacher:r.teacher,upstreamEvent:null,trainingJob:null,evaluationJob:null,candidateVersion:null,dispatchId:`dispatch-${_(u)}`,retryCount:0,spendUsd:0,failure:null,createdAt:n,updatedAt:n}),R=be.parse({schemaVersion:"openpond.learningIterationReservation.v1",id:u,revision:1,chainId:s,iterationId:u,policy:e.policy,trigger:c,requestHash:p,outcome:d?"reserved":h,counts:m.counts,budget:{maximumSpendUsd:d?r.limits.maxIterationSpendUsd:0,reservedSpendUsd:d?r.limits.maxIterationSpendUsd:0,settledSpendUsd:0,settledAt:d?null:n},createdAt:n,updatedAt:n}),T=W.parse({schemaVersion:"openpond.learningChain.v1",id:s,revision:(l?.revision??0)+1,modelProjectId:r.modelProjectId,activeIterationId:d?u:null,latestIterationId:u,acceptedParent:S,lastReservedAt:d?n:l?.lastReservedAt??null,updatedAt:n});return await t.put("iteration",I,0,{parentId:s,status:h}),await t.put("reservation",R,0,{parentId:s,status:R.outcome}),await t.put("chain",T,l?.revision??0,{parentId:r.modelProjectId}),[{kind:"iteration",id:u,revision:1},{kind:"reservation",id:u,revision:1},...x]}g(Lt,"reserveLearningIteration");async function Xn(t,e,a,n,r){if((await jt(t,e,a)).committedSpendUsd+n>r)throw new b("learning_daily_budget_exhausted",409)}g(Xn,"assertAvailableBudget");function ea(t){return`schedule-${_(t)}`}g(ea,"learningScheduleId");async function Ki(t,e,a){K(e);let n=await C(t,"policy",e.id);if(!D(A(n),A(e)))throw new b("learning_policy_revision_stale",409);let r=ea(e.id),s=await t.get("schedule",r);if(s&&D(s.policy,A(e)))return s;let c=e.trigger.kind==="schedule"?e.trigger.intervalSeconds:e.trigger.kind==="approved_count"?60:null,o=e.trigger.kind==="nightly"?{localTime:e.trigger.localTime,timeZone:e.trigger.timeZone}:null,u=e.enabled&&e.automation.train&&(c!==null||o!==null),p=s?await L(t,"policy",s.policy):null,w=s?.nextRunAt&&s.intervalSeconds===c&&JSON.stringify(s.calendar)===JSON.stringify(o)&&p?.trigger.kind===e.trigger.kind&&s.executionOwner===e.executionOwner,f=_e.parse({schemaVersion:"openpond.learningSchedule.v1",id:r,revision:(s?.revision??0)+1,policy:A(e),modelProjectId:e.modelProjectId,executionOwner:e.executionOwner,state:u?"scheduled":"disabled",intervalSeconds:c,calendar:o,nextRunAt:u?w?s.nextRunAt:o?Pt(o,a):new Date(Date.parse(a)+c*1e3).toISOString():null,lastFire:s?.lastFire??null,consecutiveFailures:0,nextAttemptAt:null,lastError:null,createdAt:s?.createdAt??a,updatedAt:a});return await t.put("schedule",f,s?.revision??0,{parentId:e.modelProjectId,status:f.state}),f}g(Ki,"synchronizeLearningSchedule");var ta=i.object({policy:y,modelProjectId:v,inspectedAt:E,chain:W.nullable(),trainingParent:i.object({reference:H,selection:ye.nullable()}).strict().nullable().default(null),counts:Wt.nullable(),minimumApprovedExamples:i.number().int().positive(),canReserve:i.boolean(),blockers:i.array(i.object({code:i.string().min(1).max(200),message:i.string().min(1).max(2e4)}).strict()).max(20),cooldownUntil:E.nullable(),budget:i.object({reservedSpendUsd:i.number().nonnegative(),settledSpendUsd:i.number().nonnegative(),committedSpendUsd:i.number().nonnegative(),maximumIterationSpendUsd:i.number().nonnegative(),maximumDailySpendUsd:i.number().nonnegative()}).strict()}).strict();async function zi(t,e,a,n){let r=await L(t,"policy",e),s=await C(t,"policy",r.id);if(!D(A(s),e))throw new b("learning_policy_revision_stale",409);let c=tt(r.modelProjectId),o=await t.get("chain",c),u=await jt(t,c,n),p=[],w=g((d,h)=>{p.push({code:d,message:h})},"block");r.enabled||w("learning_policy_paused","Learning is paused."),(r.automation.accept||r.automation.serve)&&w("learning_automatic_acceptance_not_available","Candidates require explicit acceptance and serving selection."),o?.activeIterationId&&w("learning_iteration_active","An iteration is already active.");let f=o?.lastReservedAt&&Date.parse(n)-Date.parse(o.lastReservedAt)<r.limits.cooldownSeconds*1e3?new Date(Date.parse(o.lastReservedAt)+r.limits.cooldownSeconds*1e3).toISOString():null;f&&w("learning_iteration_cooldown","The training cooldown has not elapsed."),u.committedSpendUsd+r.limits.maxIterationSpendUsd>r.limits.maxDailySpendUsd&&w("learning_daily_budget_exhausted","The daily budget cannot cover another iteration's maximum spend.");let l=null;try{let d=await ke(t,r);l=d.counts,l.eligible<r.admission.minimumApprovedExamples?l.awaitingReview>0?w("learning_waiting_for_review","More approved tasks are required before training."):w("learning_waiting_for_data","More eligible new tasks are required before training."):await oi(t,{action:"seal_batch",operationId:"policy-inspection",batchId:"policy-inspection",taskDefinition:r.taskDefinition,purpose:d.purpose,evidence:d.selected.map(h=>A(h.evidence)),decisions:d.selected.map(h=>A(h.decision))},a,n)}catch(d){if(!(d instanceof b))throw d;w(d.code,d.message.slice(0,2e4))}let m=null;try{let d=await it(t,r,await Je(t,c,!0));m={reference:d.trainingParent,selection:d.trainingParentSelection}}catch(d){if(!(d instanceof b))throw d;w(d.code,d.message.slice(0,2e4))}return ta.parse({policy:A(r),modelProjectId:r.modelProjectId,inspectedAt:n,chain:o,trainingParent:m,counts:l,minimumApprovedExamples:r.admission.minimumApprovedExamples,canReserve:p.length===0,blockers:p,cooldownUntil:f,budget:{...u,maximumIterationSpendUsd:r.limits.maxIterationSpendUsd,maximumDailySpendUsd:r.limits.maxDailySpendUsd}})}g(zi,"inspectLearningPolicy");async function Ni(t,e,a){V(e.draft,131072);let n=await t.get("draft",e.draft.id);if(n&&(n.status!=="draft"||n.targetId!==e.draft.targetId||n.targetKind!==e.draft.targetKind||(n.baseRelease===null?e.draft.baseRelease!==null:e.draft.baseRelease===null||!D(n.baseRelease,e.draft.baseRelease))))throw new b("authoring_draft_identity_conflict",409);if(e.draft.baseRelease){if(e.draft.baseRelease.id!==e.draft.targetId)throw new b("authoring_draft_base_mismatch",422);await L(t,e.draft.targetKind,e.draft.baseRelease)}if(e.draft.targetKind==="reward")for(let s of e.draft.fields.fixtures??[]){if(!s.sourceLabel)continue;let{evidence:c,feedback:o}=s.sourceLabel;await L(t,"evidence",c);let u=await C(t,"feedback",o.id,o.revision);if(!u.evidence||!D(u.evidence,c))throw new b("reward_fixture_label_mismatch",422)}let r=ve.parse(F({...e.draft,schemaVersion:"openpond.authoringDraft.v1",revision:e.expectedRevision+1,status:"draft",publishedRelease:null,createdAt:n?.createdAt??a,updatedAt:a}));return await t.put("draft",r,e.expectedRevision,{parentId:r.targetKind,status:r.status}),{kind:"draft",id:r.id,revision:r.revision}}g(Ni,"saveAuthoringDraft");async function $i(t,e,a){let n=await Me(t,e),{contentHash:r,...s}=n,c=ve.parse(F({...s,revision:n.revision+1,status:"archived",updatedAt:a}));return await t.put("draft",c,n.revision,{parentId:n.targetKind,status:c.status}),{kind:"draft",id:c.id,revision:c.revision}}g($i,"archiveAuthoringDraft");async function di(t,e,a,n){let r=e.finalizeDraft;if(!r)return null;let s=await Me(t,r.draft);if(s.targetKind!==r.targetKind||s.targetId!==r.release.id||r.release.revision!==(s.baseRelease?.revision??0)+1||!a.some(p=>p.kind===r.targetKind&&p.id===r.release.id&&p.revision===r.release.revision))throw new b("authoring_draft_publication_mismatch",422);await L(t,r.targetKind,r.release);let{contentHash:c,...o}=s,u=ve.parse(F({...o,revision:s.revision+1,status:"published",publishedRelease:r.release,updatedAt:n}));return await t.put("draft",u,s.revision,{parentId:s.targetKind,status:u.status}),{kind:"draft",id:u.id,revision:u.revision}}g(di,"finalizeAuthoringDraft");async function Me(t,e){let a=await L(t,"draft",e),n=await t.get("draft",e.id);if(!n||!D(A(n),e))throw new b("authoring_draft_revision_stale",409);if(a.status!=="draft")throw new b("authoring_draft_closed",409);return a}g(Me,"currentDraft");function nt(t,e,a){let n=de(t,e),r=n.reward.implementation;if(r.kind==="human"||r.kind==="learned_model")throw new b("reward_calibration_kind_unsupported",422);if(r.kind==="model_judge"&&!r.model)throw new b("reward_calibration_model_required",422);if(!D(a.draft,A(t))||!D(a.reward,A(n.reward))||a.snapshotHash!==n.snapshotHash||_(a.fixtureRefs)!==_(n.fixtureRefs))throw new b("reward_calibration_snapshot_mismatch",422);if(a.status!=="completed"||!a.runtime||a.matchesExpectations!==!0||a.failure||a.results.length!==n.fixtures.length)throw new b("reward_calibration_check_incomplete",422);if(!n.fixtures.some(o=>o.expected.status==="scored"&&o.expected.passed===!0)||!n.fixtures.some(o=>o.expected.status==="scored"&&o.expected.passed===!1))throw new b("reward_calibration_coverage_required",422,"Check both a passing and a failing example before publishing a calibrated grader.");for(let o of n.fixtures){let u=a.results.filter(l=>l.fixture.id===o.id),p=u[0];if(u.length!==1||!p||p.fixture.contentHash!==_(o)||p.result.graderId!==n.reward.id||p.result.role!=="evaluation"||!D(p.result.reward,a.reward)||!Fe(o,p.result).matchesExpectation)throw new b("reward_calibration_fixture_mismatch",422);if(o.expected.status!=="scored"||r.kind!=="model_judge")continue;if(!r.model)throw new b("reward_calibration_model_required",422);let w=p.result.graderEvidence?.modelJudgeReceipt,f=a.judgeCalls?.find(l=>l.id===`fixture-${_([o,n.reward.contentHash])}`);if(!w||w.providerId!==r.model.providerId||w.modelId!==r.model.modelId||r.model.revision!==null&&w.modelRevision!==r.model.revision||f?.status!=="settled"||!f.response||f.requestHash!==w.requestHash||_(f.response)!==w.responseHash)throw new b("reward_calibration_provider_receipt_mismatch",422)}let{contentHash:s,...c}=n.reward;return{...n,reward:je({...c,implementation:r.kind==="model_judge"?{...r,calibrationStatus:"passed"}:r,calibrationCheckRef:{id:a.id,revision:a.revision,contentHash:_(a)}})}}g(nt,"qualifyRewardCheck");async function Gi(t,e){let a=e.implementation,n=e.calibrationCheckRef;if(a.kind==="human"||a.kind==="learned_model"||a.kind==="model_judge"&&a.calibrationStatus!=="passed"){if(n)throw new b("reward_calibration_reference_invalid",422);return}if(!n){if(a.kind==="model_judge")throw new b("reward_calibration_check_required",422);return}let r=await C(t,"reward_check",n.id,n.revision);if(_(r)!==n.contentHash)throw new b("reward_calibration_check_changed",422);let s=await L(t,"draft",r.draft);if(s.targetKind!=="reward")throw new b("reward_calibration_draft_kind_invalid",422);let c=s.baseRelease?await L(t,"reward",s.baseRelease):null,o=nt(s,c,r).reward,u=g(p=>_([p.implementation,p.rawScore,p.assets,p.fixtureSetRef??null]),"scoring");if(e.id!==o.id||u(e)!==u(o))throw new b("reward_calibration_configuration_changed",422)}g(Gi,"assertRewardCalibration");async function Wi(t,e,a,n,r){let s=await Me(t,e.draft);if(s.targetKind!=="reward")throw new b("reward_check_draft_kind_invalid",422);let c=s.baseRelease?await L(t,"reward",s.baseRelease):null,o=de(s,c),u=$.parse({schemaVersion:"openpond.rewardCheckRun.v1",id:`reward-check-${a}`,revision:1,draft:A(s),reward:A(o.reward),snapshotHash:o.snapshotHash,fixtureRefs:o.fixtureRefs,status:"queued",runtime:null,results:[],matchesExpectations:null,timeoutMs:e.timeoutMs,maximumSpendUsd:e.maximumSpendUsd,requestedBy:r,leaseOwner:null,leaseExpiresAt:null,attemptCount:0,failure:null,createdAt:n,updatedAt:n});return await t.put("reward_check",u,0,{parentId:s.targetId,status:u.status}),{kind:"reward_check",id:u.id,revision:u.revision}}g(Wi,"queueRewardCheck");async function Qi(t,e,a){let n=await C(t,"reward_check",e.checkId);if(n.revision!==e.expectedRevision)throw new ee("reward_check",n.id,e.expectedRevision,n.revision);if(["completed","failed","cancelled"].includes(n.status))return{kind:"reward_check",id:n.id,revision:n.revision};let r=$.parse({...n,revision:n.revision+1,status:n.status==="queued"?"cancelled":"cancelling",updatedAt:a});return await t.put("reward_check",r,n.revision,{parentId:n.reward.id,status:r.status}),{kind:"reward_check",id:r.id,revision:r.revision}}g(Qi,"cancelRewardCheck");var ia=i.object({modelProjectId:v.nullable(),inspectedAt:E,pendingTrainingCount:i.number().int().nonnegative().nullable(),issues:i.array(i.object({policyId:v,code:i.string(),message:i.string()}).strict())}).strict();async function Zi(t,e,a){let n=new Set,r=[],s;do{let c=await t.list("policy",{limit:100,...e?{parentId:e}:{},...s?{afterId:s}:{}});for(let o of c.items)try{let u=await ke(t,o,{collectEligible:!0}),p=await L(t,"definition",o.taskDefinition);for(let w of u.eligibleEvidence){let f=await L(t,"evidence",w),l=!1;for(let m of Pe(f,p)){let d=await t.familySplit(m.namespace,m.kind,m.key);if(d!==null&&d!=="train"){l=!0;break}}l||n.add(JSON.stringify([w.id,w.revision,w.contentHash]))}}catch(u){if(!(u instanceof b))throw u;r.push({policyId:o.id,code:u.code,message:u.message})}s=c.nextCursor??void 0}while(s);return ia.parse({modelProjectId:e,inspectedAt:a,pendingTrainingCount:r.length?null:n.size,issues:r})}g(Zi,"inspectLearningTaskQueue");function Cc(t){try{V(t,16777216)}catch(e){throw new b("learning_json_invalid",400,e instanceof Error?e.message:"Expected bounded JSON.")}}g(Cc,"assertLearningRequestJson");var Ec=i.object({scope:v,command:It}).strict(),Yi=i.discriminatedUnion("action",[i.object({action:i.literal("inspect_task_queue"),scope:v,modelProjectId:v.nullable()}).strict(),i.object({action:i.literal("inspect_policy"),scope:v,policy:y}).strict(),i.object({action:i.literal("inspect_evidence"),scope:v,evidence:y}).strict(),i.object({action:i.literal("get"),scope:v,kind:si,id:v,revision:i.number().int().positive().optional()}).strict(),i.object({action:i.literal("list"),scope:v,kind:si,parentId:v.optional(),status:i.string().min(1).max(200).optional(),reviewState:i.enum(["inbox","reviewed"]).optional(),afterId:v.optional(),limit:i.number().int().min(1).max(100).default(50)}).strict()]),jc=i.object({evidence:y,definition:y,inspection:i.object({evidenceValidity:i.enum(["valid","invalid"]),taskReady:i.boolean(),observedOutputValid:i.boolean().nullable(),issues:i.array(i.object({path:i.string(),code:i.string(),message:i.string()}).strict()).max(100)}).strict()}).strict(),Lc=i.object({operationId:v,resources:i.array(i.union(Object.values(At))).max(100)}).strict();function Xi(t){let e=[],a=[],n="",r=!1,s=!1,c=g(()=>{a.push(n),n="",s=!1},"finishField"),o=g(()=>{if(c(),a.some(w=>w.length)&&e.push(a),a=[],e.length>z.records+1)throw new Error("CSV exceeds the 1,000-record limit.")},"finishRow");for(let w=0;w<t.length;w++){let f=t[w];if(r)f==='"'&&t[w+1]==='"'?(n+='"',w++):f==='"'?(r=!1,s=!0):n+=f;else if(f===",")c();else if(f===`
|
|
11
|
+
}`;function Pi(t){V(t,262144);let e=ei.parse(t.fields),a=t.base?Y.parse(t.base):null;if(a&&a.id!==t.id)throw new b("reward_authoring_base_mismatch",422);let n=e.fixtures?.length?se({text:JSON.stringify(e.fixtures),path:"reward-fixtures.json",mediaType:"application/json",visibility:"verifier"}):null,r=null,s,c;if(e.kind==="custom_verifier")r=se({text:e.code,path:"verifier.mjs",mediaType:"application/javascript",visibility:"verifier"}),s={kind:e.kind,verifierRef:r.asset,exportName:e.exportName,timeoutMs:Ae(e.timeout,"Time limit"),networkPolicy:"none",...e.verifierRuntime??(a?.implementation.kind==="custom_verifier"?a.implementation.runtime:void 0)?{runtime:e.verifierRuntime??(a?.implementation.kind==="custom_verifier"?a.implementation.runtime:void 0)}:{}};else if(e.kind==="model_judge"||e.kind==="human"){if(!e.rubric.trim())throw new b("reward_rubric_required",422,"Write the rubric before checking or publishing this Reward.");if(r=se({text:e.rubric,path:"rubric.md",mediaType:"text/markdown",visibility:"verifier"}),e.kind==="human")s={kind:e.kind,rubricRef:r.asset,reviewerRole:e.reviewerRole,form:gi.parse(JSON.parse(e.humanForm||JSON.stringify({schemaVersion:"openpond.humanForm.v1",mode:"individual",instructions:e.rubric,criteria:[{id:"quality",label:"Quality",instructions:e.rubric,required:!0,allowAbstain:!0,kind:"score",minimum:0,maximum:1,step:.1}]})))};else{let p={providerId:e.providerId,modelId:e.modelId,revision:e.modelRevision.trim()||null},w=Ae(e.temperature,"Temperature"),f=a?.implementation,l=f?.kind==="model_judge"&&f.rubricRef.contentHash===r.asset.contentHash&&f.model?.providerId===p.providerId&&f.model?.modelId===p.modelId&&f.model?.revision===p.revision&&(f.temperature??0)===w&&a?.fixtureSetRef?.contentHash===n?.asset.contentHash;s={kind:e.kind,rubricRef:r.asset,model:p,temperature:w,calibrationStatus:l?f.calibrationStatus:"pending"},l&&(c=a?.calibrationCheckRef)}}else e.kind==="learned_model"?(Ce(e.inputContract,"Model input contract"),r=se({text:e.inputContract,path:"input-contract.json",mediaType:"application/json",visibility:"verifier"}),s={kind:e.kind,modelVersion:{id:e.learnedId,contentHash:e.learnedHash},inputContract:r.asset}):e.kind==="state"?s={kind:e.kind,config:{fields:Bi(e.fields)}}:e.kind==="content"?s={kind:e.kind,config:{outputField:e.outputField,expectedField:e.expectedField,...e.expectedValue?{expectedValue:e.expectedValue}:{}}}:e.kind==="schema"?s={kind:e.kind,config:{jsonSchema:Ce(e.schema,"Output schema")}}:e.kind==="artifact"?s={kind:e.kind,config:{refIncludes:e.reference}}:s={kind:e.kind,config:{requiredEvents:Bi(e.events)}};let o=[...r?[r]:[],...n?[n]:[]];return{reward:je({schemaVersion:"openpond.rewardRelease.v1",id:t.id,revision:(a?.revision??0)+1,name:e.name,description:e.description,...e.feedbackKey===void 0?{}:{feedbackKey:e.feedbackKey},implementation:s,rawScore:e.kind==="learned_model"?{minimum:Ae(e.minimum,"Minimum score"),maximum:Ae(e.maximum,"Maximum score")}:{minimum:0,maximum:1},assets:o.map(p=>p.asset),...n?{fixtureSetRef:n.asset}:{},...c?{calibrationCheckRef:c}:{}}),assets:o}}g(Pi,"compileRewardAuthoring");function ss(t,e,a=null){let n=t?.implementation,r=n&&"verifierRef"in n?n.verifierRef:n&&"rubricRef"in n?n.rubricRef:n&&"inputContract"in n?n.inputContract:null;if(r&&!e)throw new b("reward_source_required",422);let s=r&&e?N(e,r):"";if(t?.fixtureSetRef&&!a)throw new b("reward_fixtures_required",422);let c=t?.fixtureSetRef&&a?Xt.array().max(50).parse(JSON.parse(N(a,t.fixtureSetRef))):[],o=n&&"config"in n?n.config:{};return{name:t?.name??"",description:t?.description??"",...t?.feedbackKey?{feedbackKey:t.feedbackKey}:{},kind:n?.kind??"state",fields:Oi(o.fields).join(", ")||"answer",outputField:yt(o.outputField)||"text",expectedField:yt(o.expectedField)||"text",expectedValue:yt(o.expectedValue),schema:JSON.stringify(o.jsonSchema??{type:"object",properties:{answer:{type:"string"}},required:["answer"]},null,2),reference:yt(o.refIncludes),events:Oi(o.requiredEvents).join(", "),code:n?.kind==="custom_verifier"?s:Zn,verifierRuntime:n?.kind==="custom_verifier"?n.runtime??"isolated_javascript":"isolated_javascript",exportName:n?.kind==="custom_verifier"?n.exportName??"verify":"verify",timeout:String(n?.kind==="custom_verifier"?n.timeoutMs:5e3),rubric:n?.kind==="model_judge"||n?.kind==="human"?s:"",providerId:n?.kind==="model_judge"?n.model?.providerId??"":"",modelId:n?.kind==="model_judge"?n.model?.modelId??"":"",modelRevision:n?.kind==="model_judge"?n.model?.revision??"":"",temperature:String(n?.kind==="model_judge"?n.temperature??0:0),reviewerRole:n?.kind==="human"?n.reviewerRole:"Subject matter reviewer",humanForm:n?.kind==="human"&&n.form?JSON.stringify(n.form,null,2):"",learnedId:n?.kind==="learned_model"?n.modelVersion.id:"",learnedHash:n?.kind==="learned_model"?n.modelVersion.contentHash:"",inputContract:n?.kind==="learned_model"?s:"{}",minimum:String(t?.rawScore.minimum??0),maximum:String(t?.rawScore.maximum??1),...c.length?{fixtures:c}:{}}}g(ss,"rewardAuthoringFields");function Ce(t,e){try{let a=JSON.parse(t);return V(a,131072),O.parse(a)}catch{throw new b("reward_authoring_json_invalid",422,`${e} must be a JSON object.`)}}g(Ce,"parseRewardAuthoringObject");function Ae(t,e){let a=Number(t);if(!t.trim()||!Number.isFinite(a))throw new b("reward_authoring_number_invalid",422,`${e} must be a finite number.`);return a}g(Ae,"authoringNumber");function yt(t){return typeof t=="string"?t:""}g(yt,"text");function Oi(t){return Array.isArray(t)?t.filter(e=>typeof e=="string"):[]}g(Oi,"strings");function Bi(t){return t.split(",").map(e=>e.trim()).filter(Boolean)}g(Bi,"split");var ai=i.object({id:v,name:i.string().trim().min(1).max(500),input:O,output:O,expectedOutput:O.nullable(),evaluatorContext:O.nullable(),artifactRefs:i.array(v).max(100),runtimeEventRefs:i.array(v).max(100),infrastructureError:i.string().max(2e4).nullable(),expected:i.discriminatedUnion("status",[i.object({status:i.literal("scored"),minimum:i.number().finite(),maximum:i.number().finite(),passed:i.boolean().nullable()}).strict(),i.object({status:i.enum(["pending","unavailable","failed"])}).strict()])}).strict().superRefine((t,e)=>{t.expected.status==="scored"&&t.expected.minimum>t.expected.maximum&&e.addIssue({code:"custom",path:["expected"],message:"Expected score minimum must not exceed maximum."})}),ri=i.object({id:v,packageVersion:i.string().min(1).max(100),engine:i.string().min(1).max(200)}).strict(),Vi=i.object({fixture:i.object({id:v,contentHash:B}).strict(),result:mt,matchesExpectation:i.boolean()}).strict(),$=i.object({schemaVersion:i.literal("openpond.rewardCheckRun.v1"),id:v,revision:i.number().int().positive(),draft:y,reward:y,snapshotHash:B,fixtureRefs:i.array(i.object({id:v,contentHash:B}).strict()).min(1).max(50),status:i.enum(["queued","running","completed","failed","cancelling","cancelled"]),runtime:ri.nullable(),results:i.array(Vi).max(50),matchesExpectations:i.boolean().nullable(),failure:i.string().max(2e4).nullable(),timeoutMs:i.number().int().min(100).max(3e5),maximumSpendUsd:i.number().nonnegative().max(1e3),judgeCalls:i.array(Ge).max(1e3).optional(),requestedBy:v.optional(),leaseOwner:v.nullable(),leaseExpiresAt:E.nullable(),attemptCount:i.number().int().nonnegative(),createdAt:E,updatedAt:E}).strict();function Yn(t){if(!t.length||t.length>50)throw new b("reward_check_fixtures_required",422,"Add between one and 50 fixtures before checking this Reward.");if(new Set(t.map(e=>e.id)).size!==t.length)throw new b("reward_fixture_id_duplicate",422);return t.map(e=>ai.parse({id:e.id,name:e.name,input:Ce(e.input,`${e.name}: input`),output:Ce(e.output,`${e.name}: output`),expectedOutput:e.expectedOutput.trim()?Ce(e.expectedOutput,`${e.name}: expected answer`):null,evaluatorContext:e.evaluatorContext.trim()?Ce(e.evaluatorContext,`${e.name}: evaluator context`):null,artifactRefs:e.artifactRefs.map(a=>a.trim()).filter(Boolean),runtimeEventRefs:e.runtimeEventRefs.map(a=>a.trim()).filter(Boolean),infrastructureError:e.infrastructureError||null,expected:e.expectedStatus==="scored"?{status:e.expectedStatus,minimum:Ae(e.minimumScore,`${e.name}: minimum score`),maximum:Ae(e.maximumScore,`${e.name}: maximum score`),passed:e.expectedPassed==="any"?null:e.expectedPassed==="true"}:{status:e.expectedStatus}}))}g(Yn,"compileRewardFixtures");function de(t,e){let a=Pi({id:t.targetId,fields:t.fields,base:e}),n=Yn(t.fields.fixtures??[]),r=n.map(s=>({id:s.id,contentHash:_(s)}));return{...a,fixtures:n,fixtureRefs:r,snapshotHash:_({reward:a.reward,fixtures:n})}}g(de,"compileRewardCheck");async function Fi(t){let e=ai.parse(t.fixture),a=re.parse({id:e.id,clusterKey:e.id,split:"validation",input:e.input,expectedOutput:e.expectedOutput,privilegedContextRef:null}),n=ue({schemaVersion:"openpond.rewardBinding.v1",id:`fixture-binding-${_(A(t.reward))}`,revision:1,sources:[{graderId:t.reward.id,reward:A(t.reward),role:"evaluation",normalization:t.reward.rawScore.minimum===0&&t.reward.rawScore.maximum===1?{kind:"identity"}:{kind:"linear",minimum:t.reward.rawScore.minimum,maximum:t.reward.rawScore.maximum,direction:"higher"},weight:1,required:!0,hardGate:!1,privileged:!0,fixtureRefs:[]}],aggregation:"weighted_mean",unscorable:"exclude_optional_require_all_required"},[t.reward]);return(await ht({binding:n,rewards:[t.reward],task:a,evaluatorContext:e.evaluatorContext,evidence:{output:e.output,artifactRefs:e.artifactRefs,runtimeEventRefs:e.runtimeEventRefs,infrastructureError:e.infrastructureError},signal:t.signal,customVerifier:t.customVerifier,modelJudge:t.modelJudge,purpose:"fixture_calibration"})).results[0]}g(Fi,"executeRewardFixture");function Fe(t,e){let a=t.expected,n=e.status===a.status&&(a.status!=="scored"||e.rawScore!==null&&e.rawScore>=a.minimum&&e.rawScore<=a.maximum&&(a.passed===null||a.passed===e.passed));return Vi.parse({fixture:{id:t.id,contentHash:_(t)},result:e,matchesExpectation:n})}g(Fe,"matchRewardFixture");var At={draft:ve,reward_check:$,asset:we,definition:G,reward:Y,binding:Ee,source:ie,evidence:he,feedback:ge,decision:Re,batch:De,policy:He,chain:W,consumption:xt,reservation:be,dispatch:ce,schedule:_e,schedule_fire:Rt,iteration:M,grade:X,package:Ne},si=i.enum(Object.keys(At)),ee=class extends b{static{g(this,"LearningConflictError")}kind;id;expectedRevision;currentRevision;constructor(e,a,n,r){super("learning_revision_conflict",409,`Revision conflict for ${e} ${a}: expected ${n}, current ${r}.`),this.kind=e,this.id=a,this.expectedRevision=n,this.currentRevision=r,this.name="LearningConflictError"}};async function C(t,e,a,n){let r=await t.get(e,a,n);if(!r)throw new b("learning_resource_not_found",404,`${e}:${a}`);return At[e].parse(r)}g(C,"requireLearningResource");async function L(t,e,a){let n=await C(t,e,a.id,a.revision);if(!("contentHash"in n)||n.contentHash!==a.contentHash)throw new b("learning_release_hash_mismatch",409,`${e}:${a.id}`);return K(n),n}g(L,"requireLearningRelease");function xe(t,e,a){return`evidence-${_([t,e,a])}`}g(xe,"learningEvidenceId");function Ui(t,e){return _([t,e])}g(Ui,"learningOperationId");async function Ct(t,e,a){let n=await C(t,"iteration",e.iterationId);if(n.revision!==e.expectedRevision)throw new ee("iteration",n.id,e.expectedRevision,n.revision);let r=await C(t,"reservation",n.id);if(n.status==="cancelled")return[{kind:"iteration",id:n.id,revision:n.revision}];if(n.trainingJob||n.evaluationJob||!["ready","waiting_for_data","waiting_for_review"].includes(n.status))throw new b("learning_execution_cancellation_required",409);let s=M.parse({...n,revision:n.revision+1,status:"cancelled",updatedAt:a}),c=be.parse({...r,revision:r.revision+1,budget:{...r.budget,reservedSpendUsd:0,settledSpendUsd:0,settledAt:a},updatedAt:a});await t.put("iteration",s,n.revision,{parentId:r.chainId,status:s.status}),await t.put("reservation",c,r.revision,{parentId:r.chainId,status:r.outcome});let o=await C(t,"chain",r.chainId);return o.activeIterationId===n.id&&await t.put("chain",W.parse({...o,revision:o.revision+1,activeIterationId:null,updatedAt:a}),o.revision,{parentId:o.modelProjectId}),[{kind:"iteration",id:s.id,revision:s.revision},{kind:"reservation",id:c.id,revision:c.revision}]}g(Ct,"cancelLearningIterationReservation");async function Ji(t,e,a){let n=await C(t,"iteration",e.iterationId);if(n.revision!==e.expectedRevision)throw new ee("iteration",n.id,e.expectedRevision,n.revision);let r=await t.get("dispatch",n.dispatchId);if(e.action==="cancel_iteration"&&!r)return Ct(t,{...e,action:"cancel_iteration_reservation"},a);if(!r)throw new b("learning_dispatch_not_started",409);if(r.state==="settled")throw new b("learning_execution_already_terminal",409);if(e.action==="retry_iteration_dispatch"&&r.state!=="blocked")throw new b("learning_dispatch_not_blocked",409);let s=e.action==="cancel_iteration"||!!r.cancelRequestedAt,c=M.parse({...n,revision:n.revision+1,status:s?"cancelling":n.status,failure:null,updatedAt:a}),o=ce.parse({...r,revision:r.revision+1,state:r.execution?"submitted":r.submission?"prepared":"preparing",cancelRequestedAt:s?r.cancelRequestedAt??a:null,consecutiveFailures:0,nextAttemptAt:null,lastError:null,admission:null,updatedAt:a});return await t.put("dispatch",o,r.revision,{parentId:n.id,status:o.state}),await t.put("iteration",c,n.revision,{parentId:r.chainId,status:c.status}),[{kind:"iteration",id:c.id,revision:c.revision},{kind:"dispatch",id:o.id,revision:o.revision}]}g(Ji,"commandLearningIterationDispatch");async function Et(t,e,a,n){let{batch:r,release:s,evidence:c,definition:o}=await oi(t,e,a,n);for(let u of c)for(let p of Pe(u,o))await t.reserveFamilySplit(p.namespace,p.kind,p.key,p.split);return await t.put("batch",r,0,{parentId:o.id}),await t.put("package",s,0,{parentId:r.id}),[Mi("batch",r),Mi("package",s)]}g(Et,"sealLearningBatch");async function oi(t,e,a,n){let r=await L(t,"definition",e.taskDefinition),s=await L(t,"binding",r.rewardBinding),c=await Promise.all(s.sources.map(l=>L(t,"reward",l.reward)));ft(s,c);let o=await Promise.all(e.evidence.map(l=>Ue(t,l))),u=await Promise.all(e.decisions.map(async l=>{let m=await L(t,"decision",l),d=await C(t,"decision",l.id);if(!D(A(d),l))throw new b("task_admission_revision_stale",409);return m})),p=[];for(let l of o)for(let m of Pe(l,r)){let d=await t.familySplit(m.namespace,m.kind,m.key);d!==null&&p.push({...m,split:d})}let w=ji({id:e.batchId,definition:r,binding:s,rewards:c,purpose:e.purpose,evidence:o,decisions:u,priorSplits:p,actorId:a,now:n}),f=Ti({batch:w,definition:r,binding:s,rewards:c,evidence:o,decisions:u});return{batch:w,release:f,evidence:o,definition:r}}g(oi,"prepareLearningBatch");async function Ue(t,e){let a=await L(t,"evidence",e),n=await C(t,"evidence",e.id);if(!D(A(n),e))throw new b("task_evidence_revision_stale",409);return a}g(Ue,"requireCurrentLearningEvidence");function Mi(t,e){return{kind:t,id:e.id,revision:e.revision}}g(Mi,"pointer");function tt(t){return`chain-${_(t)}`}g(tt,"learningChainId");function ci(t,e){return`consumption-${_([t,e.id,e.revision])}`}g(ci,"learningConsumptionId");async function ke(t,e,a={}){let n=e.training.method==="sft"?"supervised_training":"reward_training";if(!["sft","grpo","ppo"].includes(e.training.method))throw new b("learning_batch_method_unsupported",422);if(e.admission.mode!=="human")throw new b("learning_automatic_admission_not_available",422);let r=await L(t,"definition",e.taskDefinition);if(!D(r.rewardBinding,e.rewardBinding))throw new b("learning_policy_binding_mismatch",422);let s={eligible:0,awaitingReview:0,excluded:0,consumed:0},c=[],o=[],u=tt(e.modelProjectId),p=new Set,w=0;for(let f of e.sources){let l=await L(t,"source",f),m=await C(t,"source",l.id);if(!l.enabled||!m.enabled)throw new b("learning_source_disabled",409);if(!D(l.taskDefinition,e.taskDefinition))throw new b("learning_policy_source_definition_mismatch",422);let d;do{let h=await t.list("evidence",{parentId:l.id,limit:100,...d?{afterId:d}:{}});for(let x of h.items){if(p.has(x.id))continue;if(p.add(x.id),!e.sources.some(k=>D(x.source,k))||!D(x.submission.taskDefinition,e.taskDefinition)||x.submission.split!=="train"){s.excluded+=1;continue}if(await t.get("consumption",ci(u,x))){s.consumed+=1;continue}if(++w>e.limits.maxBacklogExamples)throw new b("learning_backlog_limit_exceeded",409);let S=await t.get("decision",`decision-${x.id}`);if(!S||!D(S.evidence,A(x))||S.taskAdmissibility==="pending"||S.actor.kind!=="human"){s.awaitingReview+=1;continue}try{Be({decision:S,evidence:x,definition:r,purpose:n})}catch(k){if(!(k instanceof b))throw k;s.excluded+=1;continue}s.eligible+=1,a.collectEligible&&o.push(A(x)),c.length<e.limits.maxBatchExamples&&c.push({evidence:x,decision:S})}d=h.nextCursor??void 0}while(d)}return{counts:s,selected:c,purpose:n,eligibleEvidence:o}}g(ke,"inspectIterationEligibility");async function jt(t,e,a){let n=new Date(a).toISOString().slice(0,10),r=0,s=0,c;do{let o=await t.list("reservation",{parentId:e,limit:100,...c?{afterId:c}:{}});for(let{budget:u}of o.items)r+=u.reservedSpendUsd,u.settledAt&&new Date(u.settledAt).toISOString().slice(0,10)===n&&(s+=u.settledSpendUsd);c=o.nextCursor??void 0}while(c);return{reservedSpendUsd:r,settledSpendUsd:s,committedSpendUsd:r+s}}g(jt,"readLearningIterationBudget");async function Je(t,e,a=!1){let n=null,r;do{let s=await t.list("iteration",{parentId:e,status:"accepted",limit:100,...r?{afterId:r}:{}});for(let c of s.items){if(!c.candidateVersion||!c.candidateDecision||!c.candidateDecisionAt||!c.trainingJob){if(a)throw new b("learning_accepted_parent_evidence_missing",409);continue}let o=ye.parse({iterationId:c.id,iterationRevision:c.revision,candidate:c.candidateVersion,decision:c.candidateDecision,decidedAt:c.candidateDecisionAt}),u=[Date.parse(o.decidedAt),o.decision.id,o.decision.revision],p=n?[Date.parse(n.decidedAt),n.decision.id,n.decision.revision]:null;(!p||u[0]>p[0]||u[0]===p[0]&&(u[1]>p[1]||u[1]===p[1]&&u[2]>p[2]))&&(n=o)}r=s.nextCursor??void 0}while(r);return n}g(Je,"latestAcceptedLearningParent");async function it(t,e,a){if(!a||e.training.method==="sft")return{trainingParent:e.trainingParent,trainingParentSelection:null};let n=await C(t,"iteration",a.iterationId,a.iterationRevision),r=await L(t,"policy",n.policy);if(n.status!=="accepted"||!n.candidateVersion||!n.candidateDecision||!n.trainingJob||n.candidateVersion.id!==a.candidate.id||n.candidateVersion.contentHash!==a.candidate.contentHash||!D(n.candidateDecision,a.decision)||n.candidateDecisionAt!==a.decidedAt||r.modelProjectId!==e.modelProjectId||r.executionOwner!==e.executionOwner)throw new b("learning_accepted_parent_evidence_mismatch",409);if(r.trainingParent.id!==e.trainingParent.id||r.trainingParent.contentHash!==e.trainingParent.contentHash||r.training.method!==e.training.method)throw new b("learning_accepted_parent_configuration_mismatch",409,"The accepted checkpoint belongs to a different starting model or training method.");return{trainingParent:a.candidate,trainingParentSelection:a}}g(it,"resolveLearningTrainingParent");async function Lt(t,e,a,n){let r=await L(t,"policy",e.policy),s=tt(r.modelProjectId),c=e.trigger.kind==="schedule"?{...e.trigger,scheduledAt:new Date(e.trigger.scheduledAt).toISOString()}:e.trigger.kind==="approved_count"?{...e.trigger,checkedAt:new Date(e.trigger.checkedAt).toISOString()}:e.trigger,o=_([e.policy.id,c]),u=`iteration-${_([s,o])}`,p=_({policy:e.policy,trigger:c}),w=await t.get("reservation",u);if(w){if(w.requestHash!==p)throw new b("learning_trigger_identity_conflict",409);return[{kind:"iteration",id:u,revision:(await C(t,"iteration",u)).revision},{kind:"reservation",id:u,revision:w.revision}]}let f=await C(t,"policy",r.id);if(!D(A(f),e.policy))throw new b("learning_policy_revision_stale",409);if(!r.enabled)throw new b("learning_policy_paused",409);if(r.automation.accept||r.automation.serve)throw new b("learning_automatic_acceptance_not_available",422);if(e.trigger.kind==="schedule"){if(!["schedule","nightly"].includes(r.trigger.kind)||!r.automation.train)throw new b("learning_schedule_not_enabled",409);if(Date.parse(e.trigger.scheduledAt)>Date.parse(n))throw new b("learning_schedule_not_due",409)}if(e.trigger.kind==="approved_count"){if(r.trigger.kind!=="approved_count"||!r.automation.train)throw new b("learning_count_trigger_not_enabled",409);if(Date.parse(e.trigger.checkedAt)>Date.parse(n))throw new b("learning_count_trigger_not_due",409)}let l=await t.get("chain",s);if(l?.activeIterationId)throw new b("learning_iteration_active",409,l.activeIterationId);if(l?.lastReservedAt&&Date.parse(n)-Date.parse(l.lastReservedAt)<r.limits.cooldownSeconds*1e3)throw new b("learning_iteration_cooldown",409);let m=await ke(t,r),d=m.counts.eligible>=r.admission.minimumApprovedExamples;if(e.trigger.kind==="approved_count"&&!d)throw new b("learning_count_threshold_not_met",409);let h=d?"ready":m.counts.awaitingReview>0?"waiting_for_review":"waiting_for_data",x=[],S=await Je(t,s,!0),k=await it(t,r,S),j=null;if(d){await Xn(t,s,n,r.limits.maxIterationSpendUsd,r.limits.maxDailySpendUsd);let q=await Et(t,{action:"seal_batch",operationId:e.operationId,batchId:`batch-${_(u)}`,taskDefinition:r.taskDefinition,purpose:m.purpose,evidence:m.selected.map(P=>A(P.evidence)),decisions:m.selected.map(P=>A(P.decision))},a,n);x.push(...q),j=A(await C(t,"batch",q[0].id));for(let P of m.selected){let J=xt.parse({schemaVersion:"openpond.learningConsumption.v1",id:ci(s,P.evidence),revision:1,chainId:s,iterationId:u,evidence:A(P.evidence),decision:A(P.decision),reservedAt:n});await t.put("consumption",J,0,{parentId:s})}}let I=M.parse({schemaVersion:"openpond.learningIteration.v1",id:u,revision:1,policy:e.policy,status:h,triggerIdentity:o,batch:j,sourceWatermarks:{},...k,teacher:r.teacher,upstreamEvent:null,trainingJob:null,evaluationJob:null,candidateVersion:null,dispatchId:`dispatch-${_(u)}`,retryCount:0,spendUsd:0,failure:null,createdAt:n,updatedAt:n}),R=be.parse({schemaVersion:"openpond.learningIterationReservation.v1",id:u,revision:1,chainId:s,iterationId:u,policy:e.policy,trigger:c,requestHash:p,outcome:d?"reserved":h,counts:m.counts,budget:{maximumSpendUsd:d?r.limits.maxIterationSpendUsd:0,reservedSpendUsd:d?r.limits.maxIterationSpendUsd:0,settledSpendUsd:0,settledAt:d?null:n},createdAt:n,updatedAt:n}),T=W.parse({schemaVersion:"openpond.learningChain.v1",id:s,revision:(l?.revision??0)+1,modelProjectId:r.modelProjectId,activeIterationId:d?u:null,latestIterationId:u,acceptedParent:S,lastReservedAt:d?n:l?.lastReservedAt??null,updatedAt:n});return await t.put("iteration",I,0,{parentId:s,status:h}),await t.put("reservation",R,0,{parentId:s,status:R.outcome}),await t.put("chain",T,l?.revision??0,{parentId:r.modelProjectId}),[{kind:"iteration",id:u,revision:1},{kind:"reservation",id:u,revision:1},...x]}g(Lt,"reserveLearningIteration");async function Xn(t,e,a,n,r){if((await jt(t,e,a)).committedSpendUsd+n>r)throw new b("learning_daily_budget_exhausted",409)}g(Xn,"assertAvailableBudget");function ea(t){return`schedule-${_(t)}`}g(ea,"learningScheduleId");async function Ki(t,e,a){K(e);let n=await C(t,"policy",e.id);if(!D(A(n),A(e)))throw new b("learning_policy_revision_stale",409);let r=ea(e.id),s=await t.get("schedule",r);if(s&&D(s.policy,A(e)))return s;let c=e.trigger.kind==="schedule"?e.trigger.intervalSeconds:e.trigger.kind==="approved_count"?60:null,o=e.trigger.kind==="nightly"?{localTime:e.trigger.localTime,timeZone:e.trigger.timeZone}:null,u=e.enabled&&e.automation.train&&(c!==null||o!==null),p=s?await L(t,"policy",s.policy):null,w=s?.nextRunAt&&s.intervalSeconds===c&&JSON.stringify(s.calendar)===JSON.stringify(o)&&p?.trigger.kind===e.trigger.kind&&s.executionOwner===e.executionOwner,f=_e.parse({schemaVersion:"openpond.learningSchedule.v1",id:r,revision:(s?.revision??0)+1,policy:A(e),modelProjectId:e.modelProjectId,executionOwner:e.executionOwner,state:u?"scheduled":"disabled",intervalSeconds:c,calendar:o,nextRunAt:u?w?s.nextRunAt:o?Pt(o,a):new Date(Date.parse(a)+c*1e3).toISOString():null,lastFire:s?.lastFire??null,consecutiveFailures:0,nextAttemptAt:null,lastError:null,createdAt:s?.createdAt??a,updatedAt:a});return await t.put("schedule",f,s?.revision??0,{parentId:e.modelProjectId,status:f.state}),f}g(Ki,"synchronizeLearningSchedule");var ta=i.object({policy:y,modelProjectId:v,inspectedAt:E,chain:W.nullable(),trainingParent:i.object({reference:H,selection:ye.nullable()}).strict().nullable().default(null),counts:Wt.nullable(),minimumApprovedExamples:i.number().int().positive(),canReserve:i.boolean(),blockers:i.array(i.object({code:i.string().min(1).max(200),message:i.string().min(1).max(2e4)}).strict()).max(20),cooldownUntil:E.nullable(),budget:i.object({reservedSpendUsd:i.number().nonnegative(),settledSpendUsd:i.number().nonnegative(),committedSpendUsd:i.number().nonnegative(),maximumIterationSpendUsd:i.number().nonnegative(),maximumDailySpendUsd:i.number().nonnegative()}).strict()}).strict();async function zi(t,e,a,n){let r=await L(t,"policy",e),s=await C(t,"policy",r.id);if(!D(A(s),e))throw new b("learning_policy_revision_stale",409);let c=tt(r.modelProjectId),o=await t.get("chain",c),u=await jt(t,c,n),p=[],w=g((d,h)=>{p.push({code:d,message:h})},"block");r.enabled||w("learning_policy_paused","Learning is paused."),(r.automation.accept||r.automation.serve)&&w("learning_automatic_acceptance_not_available","Candidates require explicit acceptance and serving selection."),o?.activeIterationId&&w("learning_iteration_active","An iteration is already active.");let f=o?.lastReservedAt&&Date.parse(n)-Date.parse(o.lastReservedAt)<r.limits.cooldownSeconds*1e3?new Date(Date.parse(o.lastReservedAt)+r.limits.cooldownSeconds*1e3).toISOString():null;f&&w("learning_iteration_cooldown","The training cooldown has not elapsed."),u.committedSpendUsd+r.limits.maxIterationSpendUsd>r.limits.maxDailySpendUsd&&w("learning_daily_budget_exhausted","The daily budget cannot cover another iteration's maximum spend.");let l=null;try{let d=await ke(t,r);l=d.counts,l.eligible<r.admission.minimumApprovedExamples?l.awaitingReview>0?w("learning_waiting_for_review","More approved tasks are required before training."):w("learning_waiting_for_data","More eligible new tasks are required before training."):await oi(t,{action:"seal_batch",operationId:"policy-inspection",batchId:"policy-inspection",taskDefinition:r.taskDefinition,purpose:d.purpose,evidence:d.selected.map(h=>A(h.evidence)),decisions:d.selected.map(h=>A(h.decision))},a,n)}catch(d){if(!(d instanceof b))throw d;w(d.code,d.message.slice(0,2e4))}let m=null;try{let d=await it(t,r,await Je(t,c,!0));m={reference:d.trainingParent,selection:d.trainingParentSelection}}catch(d){if(!(d instanceof b))throw d;w(d.code,d.message.slice(0,2e4))}return ta.parse({policy:A(r),modelProjectId:r.modelProjectId,inspectedAt:n,chain:o,trainingParent:m,counts:l,minimumApprovedExamples:r.admission.minimumApprovedExamples,canReserve:p.length===0,blockers:p,cooldownUntil:f,budget:{...u,maximumIterationSpendUsd:r.limits.maxIterationSpendUsd,maximumDailySpendUsd:r.limits.maxDailySpendUsd}})}g(zi,"inspectLearningPolicy");async function Ni(t,e,a){V(e.draft,131072);let n=await t.get("draft",e.draft.id);if(n&&(n.status!=="draft"||n.targetId!==e.draft.targetId||n.targetKind!==e.draft.targetKind||(n.baseRelease===null?e.draft.baseRelease!==null:e.draft.baseRelease===null||!D(n.baseRelease,e.draft.baseRelease))))throw new b("authoring_draft_identity_conflict",409);if(e.draft.baseRelease){if(e.draft.baseRelease.id!==e.draft.targetId)throw new b("authoring_draft_base_mismatch",422);await L(t,e.draft.targetKind,e.draft.baseRelease)}if(e.draft.targetKind==="reward")for(let s of e.draft.fields.fixtures??[]){if(!s.sourceLabel)continue;let{evidence:c,feedback:o}=s.sourceLabel;await L(t,"evidence",c);let u=await C(t,"feedback",o.id,o.revision);if(!u.evidence||!D(u.evidence,c))throw new b("reward_fixture_label_mismatch",422)}let r=ve.parse(F({...e.draft,schemaVersion:"openpond.authoringDraft.v1",revision:e.expectedRevision+1,status:"draft",publishedRelease:null,createdAt:n?.createdAt??a,updatedAt:a}));return await t.put("draft",r,e.expectedRevision,{parentId:r.targetKind,status:r.status}),{kind:"draft",id:r.id,revision:r.revision}}g(Ni,"saveAuthoringDraft");async function $i(t,e,a){let n=await Me(t,e),{contentHash:r,...s}=n,c=ve.parse(F({...s,revision:n.revision+1,status:"archived",updatedAt:a}));return await t.put("draft",c,n.revision,{parentId:n.targetKind,status:c.status}),{kind:"draft",id:c.id,revision:c.revision}}g($i,"archiveAuthoringDraft");async function di(t,e,a,n){let r=e.finalizeDraft;if(!r)return null;let s=await Me(t,r.draft);if(s.targetKind!==r.targetKind||s.targetId!==r.release.id||r.release.revision!==(s.baseRelease?.revision??0)+1||!a.some(p=>p.kind===r.targetKind&&p.id===r.release.id&&p.revision===r.release.revision))throw new b("authoring_draft_publication_mismatch",422);await L(t,r.targetKind,r.release);let{contentHash:c,...o}=s,u=ve.parse(F({...o,revision:s.revision+1,status:"published",publishedRelease:r.release,updatedAt:n}));return await t.put("draft",u,s.revision,{parentId:s.targetKind,status:u.status}),{kind:"draft",id:u.id,revision:u.revision}}g(di,"finalizeAuthoringDraft");async function Me(t,e){let a=await L(t,"draft",e),n=await t.get("draft",e.id);if(!n||!D(A(n),e))throw new b("authoring_draft_revision_stale",409);if(a.status!=="draft")throw new b("authoring_draft_closed",409);return a}g(Me,"currentDraft");function nt(t,e,a){let n=de(t,e),r=n.reward.implementation;if(r.kind==="human"||r.kind==="learned_model")throw new b("reward_calibration_kind_unsupported",422);if(r.kind==="model_judge"&&!r.model)throw new b("reward_calibration_model_required",422);if(!D(a.draft,A(t))||!D(a.reward,A(n.reward))||a.snapshotHash!==n.snapshotHash||_(a.fixtureRefs)!==_(n.fixtureRefs))throw new b("reward_calibration_snapshot_mismatch",422);if(a.status!=="completed"||!a.runtime||a.matchesExpectations!==!0||a.failure||a.results.length!==n.fixtures.length)throw new b("reward_calibration_check_incomplete",422);if(!n.fixtures.some(o=>o.expected.status==="scored"&&o.expected.passed===!0)||!n.fixtures.some(o=>o.expected.status==="scored"&&o.expected.passed===!1))throw new b("reward_calibration_coverage_required",422,"Check both a passing and a failing example before publishing a calibrated grader.");for(let o of n.fixtures){let u=a.results.filter(l=>l.fixture.id===o.id),p=u[0];if(u.length!==1||!p||p.fixture.contentHash!==_(o)||p.result.graderId!==n.reward.id||p.result.role!=="evaluation"||!D(p.result.reward,a.reward)||!Fe(o,p.result).matchesExpectation)throw new b("reward_calibration_fixture_mismatch",422);if(o.expected.status!=="scored"||r.kind!=="model_judge")continue;if(!r.model)throw new b("reward_calibration_model_required",422);let w=p.result.graderEvidence?.modelJudgeReceipt,f=a.judgeCalls?.find(l=>l.id===`fixture-${_([o,n.reward.contentHash])}`);if(!w||w.providerId!==r.model.providerId||w.modelId!==r.model.modelId||r.model.revision!==null&&w.modelRevision!==r.model.revision||f?.status!=="settled"||!f.response||f.requestHash!==w.requestHash||_(f.response)!==w.responseHash)throw new b("reward_calibration_provider_receipt_mismatch",422)}let{contentHash:s,...c}=n.reward;return{...n,reward:je({...c,implementation:r.kind==="model_judge"?{...r,calibrationStatus:"passed"}:r,calibrationCheckRef:{id:a.id,revision:a.revision,contentHash:_(a)}})}}g(nt,"qualifyRewardCheck");async function Gi(t,e){let a=e.implementation,n=e.calibrationCheckRef;if(a.kind==="human"||a.kind==="learned_model"||a.kind==="model_judge"&&a.calibrationStatus!=="passed"){if(n)throw new b("reward_calibration_reference_invalid",422);return}if(!n){if(a.kind==="model_judge")throw new b("reward_calibration_check_required",422);return}let r=await C(t,"reward_check",n.id,n.revision);if(_(r)!==n.contentHash)throw new b("reward_calibration_check_changed",422);let s=await L(t,"draft",r.draft);if(s.targetKind!=="reward")throw new b("reward_calibration_draft_kind_invalid",422);let c=s.baseRelease?await L(t,"reward",s.baseRelease):null,o=nt(s,c,r).reward,u=g(p=>_([p.implementation,p.rawScore,p.assets,p.fixtureSetRef??null]),"scoring");if(e.id!==o.id||u(e)!==u(o))throw new b("reward_calibration_configuration_changed",422)}g(Gi,"assertRewardCalibration");async function Wi(t,e,a,n,r){let s=await Me(t,e.draft);if(s.targetKind!=="reward")throw new b("reward_check_draft_kind_invalid",422);let c=s.baseRelease?await L(t,"reward",s.baseRelease):null,o=de(s,c),u=$.parse({schemaVersion:"openpond.rewardCheckRun.v1",id:`reward-check-${a}`,revision:1,draft:A(s),reward:A(o.reward),snapshotHash:o.snapshotHash,fixtureRefs:o.fixtureRefs,status:"queued",runtime:null,results:[],matchesExpectations:null,timeoutMs:e.timeoutMs,maximumSpendUsd:e.maximumSpendUsd,requestedBy:r,leaseOwner:null,leaseExpiresAt:null,attemptCount:0,failure:null,createdAt:n,updatedAt:n});return await t.put("reward_check",u,0,{parentId:s.targetId,status:u.status}),{kind:"reward_check",id:u.id,revision:u.revision}}g(Wi,"queueRewardCheck");async function Qi(t,e,a){let n=await C(t,"reward_check",e.checkId);if(n.revision!==e.expectedRevision)throw new ee("reward_check",n.id,e.expectedRevision,n.revision);if(["completed","failed","cancelled"].includes(n.status))return{kind:"reward_check",id:n.id,revision:n.revision};let r=$.parse({...n,revision:n.revision+1,status:n.status==="queued"?"cancelled":"cancelling",updatedAt:a});return await t.put("reward_check",r,n.revision,{parentId:n.reward.id,status:r.status}),{kind:"reward_check",id:r.id,revision:r.revision}}g(Qi,"cancelRewardCheck");var ia=i.object({modelProjectId:v.nullable(),inspectedAt:E,pendingTrainingCount:i.number().int().nonnegative().nullable(),issues:i.array(i.object({policyId:v,code:i.string(),message:i.string()}).strict())}).strict();async function Zi(t,e,a){let n=new Set,r=[],s;do{let c=await t.list("policy",{limit:100,...e?{parentId:e}:{},...s?{afterId:s}:{}});for(let o of c.items)try{let u=await ke(t,o,{collectEligible:!0}),p=await L(t,"definition",o.taskDefinition);for(let w of u.eligibleEvidence){let f=await L(t,"evidence",w),l=!1;for(let m of Pe(f,p)){let d=await t.familySplit(m.namespace,m.kind,m.key);if(d!==null&&d!=="train"){l=!0;break}}l||n.add(JSON.stringify([w.id,w.revision,w.contentHash]))}}catch(u){if(!(u instanceof b))throw u;r.push({policyId:o.id,code:u.code,message:u.message})}s=c.nextCursor??void 0}while(s);return ia.parse({modelProjectId:e,inspectedAt:a,pendingTrainingCount:r.length?null:n.size,issues:r})}g(Zi,"inspectLearningTaskQueue");function Cc(t){try{V(t,16777216)}catch(e){throw new b("learning_json_invalid",400,e instanceof Error?e.message:"Expected bounded JSON.")}}g(Cc,"assertLearningRequestJson");var Ec=i.object({scope:v,command:It}).strict(),Yi=i.discriminatedUnion("action",[i.object({action:i.literal("inspect_task_queue"),scope:v,modelProjectId:v.nullable()}).strict(),i.object({action:i.literal("inspect_policy"),scope:v,policy:y}).strict(),i.object({action:i.literal("inspect_evidence"),scope:v,evidence:y}).strict(),i.object({action:i.literal("get"),scope:v,kind:si,id:v,revision:i.number().int().positive().optional()}).strict(),i.object({action:i.literal("list"),scope:v,kind:si,parentId:v.optional(),status:i.string().min(1).max(200).optional(),reviewState:i.enum(["inbox","reviewed"]).optional(),afterId:v.optional(),limit:i.number().int().min(1).max(100).default(50)}).strict()]),jc=i.object({evidence:y,definition:y,inspection:i.object({evidenceValidity:i.enum(["valid","invalid"]),taskReady:i.boolean(),observedOutputValid:i.boolean().nullable(),issues:i.array(i.object({path:i.string(),code:i.string(),message:i.string()}).strict()).max(100)}).strict()}).strict(),Lc=i.object({operationId:v,resources:i.array(i.union(Object.values(At))).max(100)}).strict();function Xi(t){let e=[],a=[],n="",r=!1,s=!1,c=g(()=>{a.push(n),n="",s=!1},"finishField"),o=g(()=>{if(c(),a.some(w=>w.length)&&e.push(a),a=[],e.length>z.records+1)throw new Error("CSV exceeds the 1,000-record limit.")},"finishRow");for(let w=0;w<t.length;w++){let f=t[w];if(r)f==='"'&&t[w+1]==='"'?(n+='"',w++):f==='"'?(r=!1,s=!0):n+=f;else if(f===",")c();else if(f===`
|
|
12
12
|
`||f==="\r")f==="\r"&&t[w+1]===`
|
|
13
13
|
`&&w++,o();else if(f==='"'&&!n&&!s)r=!0;else{if(s||f==='"')throw new Error("CSV has an invalid quoted field.");n+=f}}if(r)throw new Error("CSV has an unterminated quoted field.");(n||a.length||s)&&o();let u=e.shift()?.map(w=>w.trim().replace(/^\uFEFF/u,""));if(!u?.includes("instruction"))throw new Error("CSV requires an instruction column.");let p=new Set(["instruction","context","reference","labels","id","familyKey","split"]);if(u.some(w=>!p.has(w))||new Set(u).size!==u.length)throw new Error("CSV has duplicate or unsupported columns. Use instruction, context, reference, labels, id, familyKey and split.");return e.map((w,f)=>{if(w.length!==u.length)throw new Error(`CSV record ${f+2} has a different number of columns from its header.`);return Object.fromEntries(u.map((l,m)=>[l,w[m]]).filter(([,l])=>l!==""))})}g(Xi,"parseTaskIntakeCsv");function na(t){try{return new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0}).decode(t)}catch{throw new Error("Import files must contain valid UTF-8 text. Binary attachments are not supported by this import format.")}}g(na,"decodeTaskIntakeText");function Tt(t){return t.startsWith("\uFEFF")?t.slice(1):t}g(Tt,"structuredIntakeText");var en=i.object({role:i.string().min(1),content:i.json().nullable().optional()}).catchall(i.json()),aa=i.object({id:i.string().min(1),messages:i.array(en).min(1).max(z.messages),lineage_session_ids:i.array(i.string()).optional(),parent_session_id:i.string().nullable().optional()}).catchall(i.json());function tn(t){let e=aa.parse(t),a=e.lineage_session_ids?.[0]??e.parent_session_id??e.id,{messages:n,segments:r,...s}=e;return an("hermes",e.id,a,e.messages,{sourceHash:_(t),metadata:{session:s},warnings:["Imported session context and tools need review before this can become an executable task."]})}g(tn,"parseHermesSession");var ra=i.object({traceSchema:i.literal("openclaw-trajectory"),schemaVersion:i.literal(1),traceId:i.string().min(1),sessionId:i.string().min(1),leafId:i.string().nullable(),eventCount:i.number().int().nonnegative(),warnings:i.array(O).optional()}).catchall(i.json()),sa=i.object({traceSchema:i.literal("openclaw-trajectory"),schemaVersion:i.literal(1),traceId:i.string(),sessionId:i.string(),seq:i.number().int().nonnegative(),type:i.string(),ts:i.string()}).catchall(i.json()),oa=i.object({header:O.nullable(),leafId:i.string().nullable(),entries:i.array(i.object({id:i.string().min(1),type:i.string().min(1),parentId:i.string().nullable().optional(),message:en.optional()}).catchall(i.json())).max(z.messages)}).strict();function nn(t){let e=g(o=>{let u=t.find(p=>p.path===o);if(!u)throw new Error(`OpenClaw bundle is missing ${o}.`);return Tt(u.text)},"read"),a=ra.parse(JSON.parse(e("manifest.json"))),n=oa.parse(JSON.parse(e("session-branch.json")));if(n.leafId!==a.leafId)throw new Error("OpenClaw manifest and session branch identify different leaves.");let r=e("events.jsonl").split(/\r?\n/u).filter(o=>o.trim()).map(o=>sa.parse(JSON.parse(o)));if(r.length!==a.eventCount||r.some(o=>o.traceId!==a.traceId||o.sessionId!==a.sessionId))throw new Error("OpenClaw events do not match the manifest identity or count.");if(n.header&&n.header.id!==a.sessionId)throw new Error("OpenClaw session header does not match the manifest.");let s=new Set;for(let[o,u]of n.entries.entries()){if(s.has(u.id))throw new Error("OpenClaw branch contains duplicate entry IDs.");if(o&&u.parentId!==n.entries[o-1].id)throw new Error("OpenClaw branch is incomplete or out of order.");s.add(u.id)}if(n.entries.length&&n.entries.at(-1).id!==n.leafId)throw new Error("OpenClaw branch does not reach its declared leaf.");let c=n.entries.filter(o=>o.type==="message"&&o.message).map(o=>({...o.message,entryId:o.id,timestamp:typeof o.timestamp=="string"?o.timestamp:typeof o.message.timestamp=="number"?new Date(o.message.timestamp).toISOString():null}));return an("openclaw",a.sessionId,a.sessionId,c,{sourceHash:_(t),metadata:{manifest:a,sourceFiles:t.map(o=>o.path)},warnings:["Imported trajectory context and tools need review before this can become an executable task.",...(a.warnings??[]).map(o=>typeof o.message=="string"?o.message.slice(0,2e3):"The source exporter reported incomplete context.")]})}g(nn,"parseOpenClawBundle");function an(t,e,a,n,r){let s=n.flatMap((o,u)=>o.role==="user"?[u]:[]);if(!s.length)throw new Error("This history contains no user request. Supply a session with its request context.");let c=0;return s.map((o,u)=>{let p=s[u+1]??n.length,w=n.slice(o+1,p),f=w.filter(h=>h.role==="assistant").at(-1),l=n[o],m=l.entryId??l.message_id??l.id??_({start:o,request:l}),d={id:oe(t,[e,m]),familyKey:oe(t,a),split:"train",kind:"attempt",input:{request:l.content??null,messages:n.slice(0,o+1)},observedOutput:f?{response:f.content??null,messages:w}:null,expected:null,sourceId:`${t}:${e}:${String(m)}`,sourceHash:r.sourceHash,occurredAt:St(f?.timestamp??l.timestamp),metadata:r.metadata,warnings:[...r.warnings,...f?[]:["No assistant response was recorded for this request."]],needsContext:!0};if(V(d),c+=new TextEncoder().encode(JSON.stringify(d)).length,c>z.bytes)throw new Error("Expanded history exceeds the 5 MiB preview limit. Export a smaller session selection.");return Xe.parse(d)})}g(an,"historyRecords");var ca=i.object({instruction:i.string().trim().min(1).max(1e5),context:i.union([i.string(),O]).optional(),reference:i.union([i.string(),O]).optional(),labels:i.union([i.string(),i.array(i.string()),O]).optional(),id:i.string().min(1).max(200).optional(),familyKey:i.string().min(1).max(200).optional(),split:te.optional()}).strict(),da=i.object({input:O,observedOutput:O.nullable().optional(),expectedOutput:O.nullable().optional(),id:i.string().min(1).max(200).optional(),familyKey:i.string().min(1).max(200).optional(),split:te.optional(),occurredAt:i.string().datetime().optional(),labels:O.optional()}).strict();function sn(t){let e=Ye.parse(t.format),a=i.array(kt).min(1).max(z.files).parse(t.files);if(a.reduce((p,w)=>p+new TextEncoder().encode(w.text).length,0)>z.bytes)throw new Error("Import exceeds the 5 MiB size limit.");if(a.some(p=>p.path.startsWith("/")||p.path.includes("\\")||p.path.split("/").some(w=>!w||w==="."||w===".."))||new Set(a.map(p=>p.path)).size!==a.length)throw new Error("Import contains an unsafe or duplicate file path.");let n=[],r=[],s=new Map,c=new Map,o=0;function u(p,w,f){try{let l=f();if(n.length+l.length>z.records)throw new Error("Import exceeds the 1,000-record limit.");let m=new Map(s),d=new Map(c),h=0;for(let x of l){V(x);let S=_(x),k=m.get(x.id);if(k&&k!==S)throw new Error("The same record identity has different content in this upload.");k||(h+=new TextEncoder().encode(JSON.stringify(x)).length),m.set(x.id,S);for(let j of[`family:${x.familyKey}`,`input:${_(x.input)}`]){if(d.has(j)&&d.get(j)!==x.split)throw new Error("The same task family or request occurs in different splits.");d.set(j,x.split)}}if(o+h>z.bytes*2)throw new Error("Expanded import exceeds the 10 MiB preview limit. Select fewer source files.");for(let x of l)s.has(x.id)||n.push(x),s.set(x.id,_(x));for(let[x,S]of d)c.set(x,S);o+=h}catch(l){r.push({file:p,row:w,message:l instanceof i.ZodError?`Unsupported record fields or values (${l.issues.slice(0,3).map(m=>m.path.join(".")||"record").join(", ")}).`:l instanceof SyntaxError?"Invalid JSON.":l instanceof Error?l.message:"Invalid import record."})}}if(g(u,"attempt"),e==="openclaw")u("manifest.json",null,()=>nn(a));else for(let p of a){let w=Tt(p.text);if(e==="jsonl"||e==="hermes"){for(let[f,l]of w.split(/\r?\n/u).entries())if(l.trim()){if(r.length>=z.records)break;u(p.path,f+1,()=>e==="hermes"?tn(JSON.parse(l)):[rn(JSON.parse(l))])}}else{let f;try{let l=e==="csv"?Xi(w):JSON.parse(w);f=Array.isArray(l)?l:[l]}catch(l){u(p.path,null,()=>{throw l});continue}if(f.length>z.records){u(p.path,null,()=>{throw new Error("Import exceeds the 1,000-record limit.")});continue}f.forEach((l,m)=>u(p.path,m+(e==="csv"?2:1),()=>[rn(l)]))}}return Di.parse({schemaVersion:"openpond.taskIntakePreview.v1",format:e,contentHash:_({format:e,files:a}),records:n,issues:r.slice(0,1e3)})}g(sn,"previewTaskIntake");function rn(t){let e=i.union([ca,da]).parse(t),a="instruction"in e,n=a?{instruction:e.instruction,...e.context===void 0?{}:{context:e.context}}:e.input,r=a?e.reference===void 0?null:typeof e.reference=="string"?{text:e.reference}:e.reference:e.expectedOutput??null,s=a?null:e.observedOutput??null,c=e.familyKey??oe("family",n),o=e.id??oe("task",{input:n,expected:r,observedOutput:s});return Xe.parse({id:o,familyKey:c,split:e.split??"train",kind:s?"attempt":"task",input:n,expected:r,observedOutput:s,sourceId:o,sourceHash:_(t),occurredAt:a?null:St(e.occurredAt),metadata:e.labels===void 0?{}:{importedLabels:e.labels,labelOrigin:"unverified_import"},warnings:[],needsContext:!1})}g(rn,"normalizeTask");async function on(t,e,a,n){let r=sn(e);if(r.contentHash!==e.expectedPreviewHash)throw new b("task_intake_preview_changed",409);if(new Set(e.recordIds).size!==e.recordIds.length)throw new b("task_intake_duplicate_selection",422);let s=e.recordIds.map(w=>{let f=r.records.find(l=>l.id===w);if(!f)throw new b("task_intake_record_missing",422,"Choose only valid records from the current preview.");return f}),c=`intake-${r.contentHash}`,o=[];for(let w of e.files){let f=0,l=0;do{let m=Math.min(f+131072,w.text.length);m<w.text.length&&w.text.charCodeAt(m-1)>=55296&&w.text.charCodeAt(m-1)<=56319&&m--;let d=se({text:w.text.slice(f,m),path:`${c}/${w.path}.part-${String(l++).padStart(4,"0")}`,mediaType:"text/plain",visibility:"host_private"}),h=await t.get("asset",d.id,1);h?N(h,d.asset):await t.put("asset",d,0),o.push(d.asset),f=m}while(f<w.text.length)}let u=await t.get("source",c);if(!u){let w=ue({schemaVersion:"openpond.rewardBinding.v1",id:`${c}-binding`,revision:1,sources:[],aggregation:"weighted_mean",unscorable:"exclude_optional_require_all_required"},[]),f=G.parse(F({schemaVersion:"openpond.taskDefinition.v1",id:`${c}-definition`,revision:1,name:e.name,description:`Imported ${e.format} records. Labels and task admission remain separate.`,instructions:"Respond to the retained request using its supplied context.",category:"custom",familyNamespace:`intake-${e.format}`,inputSchema:{type:"object"},outputSchema:{type:"object"},rewardBinding:A(w),harness:null,contextRequirements:r.records.some(l=>l.needsContext)?["Review the imported history and configure its reusable input, tools and runtime before admitting tasks."]:[],execution:{policy:{policyVisibleFields:["input"],privilegedFields:["expectedOutput","evaluatorContext"],hiddenGraderRefs:[],connectedAppScopes:[]},environment:{protocolVersion:"openpond.environment.v1",kind:"text",entrypoint:"openpond.text.v1",stateful:!1,deterministicSeeds:!0,lifecycle:["create","reset","step","collect","destroy"],networkPolicy:"none",defaultTimeoutMs:3e4},tools:[],capabilities:[]}}));u=ie.parse(F({schemaVersion:"openpond.learningSource.v1",id:c,revision:1,name:e.name,kind:"direct",taskDefinition:A(f),enabled:!0,allowedSplits:["train","validation","test","frozen_eval"],mapping:null,adapterVersion:`openpond.intake.${e.format}.v1`})),await t.put("binding",w,0),await t.put("definition",f,0),await t.put("source",u,0)}let p=[{kind:"source",id:u.id,revision:u.revision}];for(let w of s){let f=oe("attempt",[w.id,w.sourceHash]),l=await t.get("evidence",xe(u.id,w.id,f),1);p.push(await n(t,{action:"submit_example",operationId:e.operationId,example:fe.parse({schemaVersion:"openpond.taskExample.v1",sourceId:u.id,idempotencyKey:oe("record",[r.contentHash,w.id]),taskDefinition:u.taskDefinition,exampleId:w.id,attemptId:f,occurredAt:w.occurredAt??l?.submission.occurredAt??a,familyKey:w.familyKey,split:w.split,input:w.input,observedOutput:w.observedOutput,expected:w.expected,evaluatorContext:{intake:{format:r.format,uploadHash:r.contentHash,sourceHash:w.sourceHash,needsContext:w.needsContext,warnings:w.warnings,timestampOrigin:w.occurredAt?"source":"import_time",metadata:w.metadata}},assets:o,provenance:{sourceRecordRef:w.sourceId,mappingHash:null}})}))}return p}g(on,"importTaskIntake");function Bd(t,e={}){let a=e.now??(()=>new Date().toISOString());async function n(l,m){V(m,16777216);let d=It.parse(m);la(l,d);let h=d.action==="submit_example"?d.example:d.action==="submit_feedback"?d.feedback:null,x=h?_([d.action,h.sourceId,h.idempotencyKey]):Ui(l.actor.id,d.operationId),S=_(h?{action:d.action,value:h}:d);return t.transaction(l.scope,async k=>{let j=await k.operation(x);if(j){if(j.requestHash!==S)throw new b("learning_idempotency_conflict",409);return{operationId:d.operationId,resources:await Promise.all(j.resources.map(R=>C(k,R.kind,R.id,R.revision)))}}let I;switch(d.action){case"publish_checked_reward":{let R=await Me(k,d.draft);if(R.targetKind!=="reward")throw new b("reward_calibration_draft_kind_invalid",422);let T=R.baseRelease?await L(k,"reward",R.baseRelease):null,q=await C(k,"reward_check",d.checkId,d.checkRevision),P=nt(R,T,q),{contentHash:J,...ne}=P.reward,Dt={action:"publish_resources",operationId:d.operationId,finalizeDraft:{draft:d.draft,targetKind:"reward",release:A(P.reward)},resources:[...P.assets.map(({contentHash:fi,...xn})=>({kind:"asset",expectedRevision:0,content:xn})),{kind:"reward",expectedRevision:T?.revision??0,content:ne}]};I=[];for(let fi of Dt.resources)I.push(await r(k,{...fi,action:"publish",operationId:d.operationId}));let ct=await di(k,Dt,I,a());ct&&I.push(ct);break}case"import_intake":I=await on(k,d,a(),s);break;case"cancel_iteration":case"retry_iteration_dispatch":I=await Ji(k,d,a());break;case"cancel_iteration_reservation":I=await Ct(k,d,a());break;case"reserve_iteration":I=await Lt(k,d,l.actor.id,a());break;case"queue_reward_check":I=[await Wi(k,d,x,a(),l.actor.id)];break;case"cancel_reward_check":I=[await Qi(k,d,a())];break;case"save_draft":I=[await Ni(k,d,a())];break;case"archive_draft":I=[await $i(k,d.draft,a())];break;case"publish":I=[await r(k,d)];break;case"publish_resources":{I=[];for(let R of d.resources)I.push(await r(k,{...R,action:"publish",operationId:d.operationId}));break}case"submit_example":I=[await s(k,d)];break;case"submit_feedback":I=[await c(k,d,l.actor)];break;case"apply_correction":I=await o(k,d,l.actor.id);break;case"resolve_feedback":I=[await u(k,d,l.actor.id)];break;case"queue_grade":I=[await p(k,d,x,l.actor.id)];break;case"cancel_grade":I=[await w(k,d)];break;case"review":I=[await f(k,d,l.actor.id)];break;case"seal_batch":I=await Et(k,d,l.actor.id,a());break}if(d.action==="publish"||d.action==="publish_resources"){let R=await di(k,d,I,a());R&&I.push(R)}return await k.saveOperation(x,{requestHash:S,resources:I}),{operationId:d.operationId,resources:await Promise.all(I.map(R=>C(k,R.kind,R.id,R.revision)))}})}g(n,"command");async function r(l,m){if(m.content.revision!==m.expectedRevision+1)throw new b("learning_publication_revision_invalid",422);let d;switch(m.kind){case"asset":{d=we.parse(F(m.content));let h=await l.get("asset",d.id,1);if(h?.contentHash===d.contentHash)return Q("asset",h);break}case"reward":{d=je(m.content),await Gi(l,d);let h=m.content.implementation,x=[...m.content.assets,..."verifierRef"in h?[h.verifierRef]:[],..."rubricRef"in h?[h.rubricRef]:[],..."inputContract"in h?[h.inputContract]:[]];for(let S of x){let k=await C(l,"asset",S.id,1);if(N(k,S),S.visibility==="policy")throw new b("reward_asset_visibility_invalid",422,"Reward source and rubrics must be private to the evaluator.")}break}case"binding":{m.content.recipeRef&&await L(l,"binding",m.content.recipeRef);let h=await Promise.all(m.content.sources.map(x=>L(l,"reward",x.reward)));d=ue(m.content,h);break}case"definition":{await L(l,"binding",m.content.rewardBinding),d=G.parse(F(m.content));break}case"source":{await L(l,"definition",m.content.taskDefinition),d=ie.parse(F(m.content));break}case"policy":{let h=await L(l,"definition",m.content.taskDefinition);if(!D(h.rewardBinding,m.content.rewardBinding))throw new b("learning_policy_binding_mismatch",422);for(let x of m.content.sources){let S=await L(l,"source",x);if(!D(S.taskDefinition,m.content.taskDefinition))throw new b("learning_policy_source_definition_mismatch",422)}d=He.parse(F(m.content));break}}return await l.put(m.kind,d,m.expectedRevision,m.kind==="policy"?{parentId:m.content.modelProjectId}:void 0),m.kind==="policy"&&await Ki(l,He.parse(d),a()),Q(m.kind,d)}g(r,"publish");async function s(l,m){let d=await C(l,"source",m.example.sourceId),h=Nt(d,m.example);await L(l,"definition",h.taskDefinition);let x=xe(h.sourceId,h.exampleId,h.attemptId),S=await l.get("evidence",x,1);if(S){let{idempotencyKey:I,...R}=S.submission,{idempotencyKey:T,...q}=h;if(_(R)!==_(q))throw new b("task_evidence_identity_conflict",409);return Q("evidence",S)}let k=he.parse(F(wt.parse({schemaVersion:"openpond.taskEvidence.v1",id:x,revision:1,source:A(d),submission:h,supersedes:null,correctionFeedbackId:null,receivedAt:a()})));await l.put("evidence",k,0,{parentId:d.id});let j;do{let I=await l.list("feedback",{parentId:k.id,status:"pending_example",limit:100,...j?{afterId:j}:{}});for(let R of I.items){let T=ge.parse({...R,revision:R.revision+1,status:"pending_review",evidence:A(k)});await l.put("feedback",T,R.revision,{parentId:k.id,status:T.status})}j=I.nextCursor??void 0}while(j);return Q("evidence",k)}g(s,"submit");async function c(l,m,d){let h=await C(l,"source",m.feedback.sourceId);if(!h.enabled)throw new b("learning_source_disabled",409);let x=xe(h.id,m.feedback.exampleId,m.feedback.attemptId),S=await l.get("evidence",x);if(m.feedback.value.schemaVersion==="openpond.taskRating.v1"&&(!S||S.contentHash!==m.feedback.expectedEvidenceHash||!S.submission.observedOutput))throw new b("task_rating_evidence_stale",409,"Open the current observed response before submitting a rating.");let k=ge.parse({schemaVersion:"openpond.taskFeedbackRecord.v1",id:`feedback-${_([h.id,m.feedback.idempotencyKey])}`,submission:m.feedback,status:S?"pending_review":"pending_example",evidence:S?A(S):null,createdAt:a(),revision:1,submittedBy:{id:d.id,role:d.role,sourceId:d.sourceId??null}});return await l.put("feedback",k,0,{parentId:x,status:k.status}),Q("feedback",k)}g(c,"feedback");async function o(l,m,d){let h=await C(l,"feedback",m.feedbackId);if(["applied","rejected","superseded"].includes(h.status))throw new b("task_feedback_already_resolved",409);let x=await Ue(l,m.evidence);if(xe(h.submission.sourceId,h.submission.exampleId,h.submission.attemptId)!==x.id||h.submission.expectedEvidenceHash!==null&&h.submission.expectedEvidenceHash!==x.contentHash)throw new b("task_feedback_evidence_mismatch",409);let k=await L(l,"definition",x.submission.taskDefinition),j={...x.submission},{kind:I,value:R}=h.submission;if(I==="ground_truth_correction"){if(!le(k.outputSchema,R).valid)throw new b("task_corrected_expected_schema_invalid",422);j.expected=R}else if(I==="input_correction"){if(!le(k.inputSchema,R).valid)throw new b("task_corrected_input_schema_invalid",422);j.input=R}else if(I==="family_resolution"){if(typeof R.familyKey!="string"||!R.familyKey.trim())throw new b("task_family_resolution_invalid",422);j.familyKey=R.familyKey}else throw new b("task_feedback_requires_target_review",422);let{contentHash:T,...q}=x,P=he.parse(F(wt.parse({...q,revision:x.revision+1,submission:j,supersedes:A(x),correctionFeedbackId:h.id,receivedAt:a()}))),J=ge.parse({...h,revision:h.revision+1,status:"applied",evidence:A(P),review:{actorId:d,decision:null,note:"Applied as a corrected evidence revision.",resolvedAt:a()}});return await l.put("evidence",P,x.revision,{parentId:j.sourceId}),await l.put("feedback",J,h.revision,{parentId:x.id,status:J.status}),[Q("evidence",P),Q("feedback",J)]}g(o,"correct");async function u(l,m,d){let h=await C(l,"feedback",m.feedbackId);if(h.revision!==m.expectedRevision)throw new ee("feedback",h.id,m.expectedRevision,h.revision);if(["applied","rejected","superseded"].includes(h.status))throw new b("task_feedback_already_resolved",409);if(m.disposition==="applied"&&!m.decision)throw new b("task_feedback_decision_required");if(m.decision){let S=await L(l,"decision",m.decision),k=await C(l,"decision",S.id);if(!D(A(k),m.decision))throw new b("task_admission_revision_stale",409);let j=await Ue(l,S.evidence);if(xe(h.submission.sourceId,h.submission.exampleId,h.submission.attemptId)!==j.id||h.submission.expectedEvidenceHash!==null&&h.submission.expectedEvidenceHash!==j.contentHash)throw new b("task_feedback_evidence_mismatch",409);if(m.disposition==="applied"){if(S.taskAdmissibility==="pending")throw new b("task_feedback_decision_pending");if(h.submission.kind==="target_correction"){if(S.targetApproval!=="approved"||_(S.approvedTarget)!==_(h.submission.value))throw new b("task_feedback_target_not_approved")}else if(h.submission.kind!=="outcome")throw new b("task_feedback_requires_evidence_correction")}}let x=ge.parse({...h,revision:h.revision+1,status:m.disposition,review:{actorId:d,decision:m.decision,note:m.note,resolvedAt:a()}});return await l.put("feedback",x,h.revision,{parentId:xe(h.submission.sourceId,h.submission.exampleId,h.submission.attemptId),status:x.status}),Q("feedback",x)}g(u,"resolveFeedback");async function p(l,m,d,h){let x=await Ue(l,m.evidence),S=await L(l,"definition",x.submission.taskDefinition);if(!Oe(x,S).taskReady)throw new b("task_evidence_not_ready",422);let k=m.target==="observed"?x.submission.observedOutput:m.proposedTarget;if(k===null)throw new b("task_grade_output_required",422);if(m.target==="observed"&&m.proposedTarget!==null)throw new b("observed_grade_cannot_replace_output",422);let j=X.parse({schemaVersion:"openpond.taskGradeRun.v1",id:`grade-${d}`,revision:1,evidence:A(x),binding:S.rewardBinding,target:m.target,output:k,status:"queued",composition:null,leaseOwner:null,leaseExpiresAt:null,attemptCount:0,timeoutMs:m.timeoutMs,maximumSpendUsd:m.maximumSpendUsd,requestedBy:h,failure:null,createdAt:a(),updatedAt:a()});return await l.put("grade",j,0,{parentId:x.id,status:j.status}),Q("grade",j)}g(p,"queueGrade");async function w(l,m){let d=await C(l,"grade",m.gradeId);if(d.revision!==m.expectedRevision)throw new ee("grade",d.id,m.expectedRevision,d.revision);if(["completed","failed","cancelled"].includes(d.status))return Q("grade",d);let h=X.parse({...d,revision:d.revision+1,status:d.status==="queued"?"cancelled":"cancelling",updatedAt:a()});return await l.put("grade",h,d.revision,{parentId:d.evidence.id,status:h.status}),Q("grade",h)}g(w,"cancelGrade");async function f(l,m,d){let h=await Ue(l,m.evidence),x=await L(l,"definition",h.submission.taskDefinition),S=Oe(h,x),k=`decision-${h.id}`,j=await l.get("decision",k),I=await cn(l,m.observedGradeId,h,"observed"),R=await cn(l,m.targetGradeId,h,"proposed_target"),T=I?.training.status==="scored"?I.training:I?.evaluation,q=Re.parse(F(Mt.parse({schemaVersion:"openpond.taskAdmissionDecision.v1",id:k,revision:m.expectedRevision+1,evidence:A(h),supersedes:j?A(j):null,actor:{kind:"human",id:d,policy:null},evidenceValidity:S.evidenceValidity,taskAdmissibility:m.disposition,observedQuality:T?.status==="scored"?T.passed?"passed":"failed":I?"unavailable":"unscored",targetApproval:m.targetApproval,approvedTarget:m.approvedTarget,grade:I,targetGrade:R,note:m.note,decidedAt:a()})));return m.disposition==="approved"&&Be({decision:q,evidence:h,definition:x,purpose:m.targetApproval==="approved"?"supervised_training":"reward_training"}),await l.put("decision",q,m.expectedRevision,{parentId:h.id,status:q.taskAdmissibility}),Q("decision",q)}return g(f,"review"),{command:n,async inspectTaskQueue(l,m=null){at(l);let d=Yi.parse({action:"inspect_task_queue",scope:l.scope,modelProjectId:m});if(d.action!=="inspect_task_queue")throw new b("learning_request_invalid",400);return t.transaction(l.scope,h=>Zi(h,d.modelProjectId,a()))},async inspectPolicy(l,m){at(l);let d=y.parse(m);return t.transaction(l.scope,h=>zi(h,d,l.actor.id,a()))},async inspectEvidence(l,m){at(l);let d=y.parse(m);return t.transaction(l.scope,async h=>{let x=await L(h,"evidence",d),S=await L(h,"definition",x.submission.taskDefinition);return{evidence:A(x),definition:A(S),inspection:Oe(x,S)}})},async get(l,m,d,h){return at(l),t.transaction(l.scope,x=>C(x,m,d,h))},async list(l,m,d={}){if(at(l),d.reviewState!==void 0&&(m!=="evidence"||!["inbox","reviewed"].includes(d.reviewState)))throw new b("learning_review_filter_invalid",400);let h=Math.max(1,Math.min(100,Math.trunc(d.limit??50)));return t.transaction(l.scope,x=>x.list(m,{...d,limit:h}))}}}g(Bd,"createLearningService");async function cn(t,e,a,n){if(e===null)return null;let r=await C(t,"grade",e);if(r.status!=="completed"||!r.composition||r.target!==n||!D(r.evidence,A(a)))throw new b("task_grade_not_applicable",422);let s=await L(t,"definition",a.submission.taskDefinition);return qe(r.composition,a,s,r.output),r.composition}g(cn,"gradeResult");function Q(t,e){return{kind:t,id:e.id,revision:e.revision}}g(Q,"pointer");function at(t){if(!t.scope.trim()||!t.actor.id.trim()||t.actor.role==="source")throw new b("learning_read_not_authorized",403)}g(at,"authorizeRead");function la(t,e){if(!t.scope.trim()||!t.actor.id.trim())throw new b("learning_scope_required",400);let a=e.action==="publish"?[e]:e.action==="publish_resources"?e.resources:[];if(t.actor.role!=="reviewer"&&a.some(n=>n.kind==="policy"&&n.content.enabled&&n.content.automation.train&&n.content.trigger.kind!=="manual"))throw new b("learning_review_not_authorized",403);if(t.actor.role==="source"){let n=e.action==="submit_example"?e.example.sourceId:e.action==="submit_feedback"?e.feedback.sourceId:null;if(!n||n!==t.actor.sourceId)throw new b("learning_source_not_authorized",403)}if(["review","apply_correction","resolve_feedback","seal_batch","reserve_iteration","cancel_iteration_reservation","cancel_iteration","retry_iteration_dispatch"].includes(e.action)&&t.actor.role!=="reviewer")throw new b("learning_review_not_authorized",403)}g(la,"authorize");function Kd(){return{execute(t){return ht({binding:t.binding,rewards:t.rewards,task:_t(t.evidence,t.definition),evidence:$t(t.evidence,t.run.output),signal:t.signal})},async cancel(){return!0}}}g(Kd,"createBuiltinTaskGradeExecutor");function zd(t,e,a){let n=a.now??(()=>new Date().toISOString()),r=new Map,s=g((u,p)=>JSON.stringify([u,p]),"key");async function c(u,p){let w=await t.transaction(u,async m=>{let d=await C(m,"grade",p);if(["completed","failed","cancelled"].includes(d.status))return{acquired:!1,run:d};if(d.leaseExpiresAt!==null&&Date.parse(d.leaseExpiresAt)>Date.parse(n()))return{acquired:!1,run:d};let h=X.parse({...d,revision:d.revision+1,status:d.status==="cancelling"?"cancelling":"running",leaseOwner:a.workerId,leaseExpiresAt:new Date(Date.parse(n())+d.timeoutMs+3e4).toISOString(),attemptCount:d.attemptCount+1,updatedAt:n()});return await m.put("grade",h,d.revision,{parentId:d.evidence.id,status:h.status}),{acquired:!0,run:h}});if(!w.acquired)return w.run;if(w.run.status==="cancelling"){let m=await e.cancel({scope:u,run:w.run});return o(u,w.run,m?{status:"cancelled",composition:null,failure:null}:{status:"cancelling",composition:null,failure:null})}let f=new AbortController;r.set(s(u,p),f);let l=setTimeout(()=>f.abort(new Error("task_grade_timeout")),w.run.timeoutMs);try{let m=await t.transaction(u,async h=>{let x=await L(h,"evidence",w.run.evidence),S=await L(h,"definition",x.submission.taskDefinition),k=await L(h,"binding",w.run.binding),j=await Promise.all(k.sources.map(I=>L(h,"reward",I.reward)));return{evidence:x,definition:S,binding:k,rewards:j}});f.signal.throwIfAborted();let d=await e.execute({scope:u,run:w.run,...m,signal:f.signal});return f.signal.throwIfAborted(),qe(d,m.evidence,m.definition,w.run.output),await o(u,w.run,{status:"completed",composition:d,failure:null})}catch(m){if(f.signal.aborted){if(!await e.cancel({scope:u,run:w.run}))return o(u,w.run,{status:"cancelling",composition:null,failure:"Execution cancellation is awaiting owner confirmation."});if(f.signal.reason instanceof Error&&f.signal.reason.message==="task_grade_cancel_requested")return o(u,w.run,{status:"cancelled",composition:null,failure:null})}return await o(u,w.run,{status:"failed",composition:null,failure:m instanceof Error?m.message:"Task grading failed."})}finally{clearTimeout(l),r.delete(s(u,p))}}g(c,"run");async function o(u,p,w){return t.transaction(u,async f=>{let l=await C(f,"grade",p.id);if(l.leaseOwner!==a.workerId||l.attemptCount!==p.attemptCount||["completed","failed","cancelled"].includes(l.status))return l;let m=w.status,d=X.parse({...l,...w,status:m,composition:m==="completed"?w.composition:null,revision:l.revision+1,leaseOwner:null,leaseExpiresAt:m==="cancelling"?new Date(Date.parse(n())+5e3).toISOString():null,updatedAt:n()});return await f.put("grade",d,l.revision,{parentId:l.evidence.id,status:d.status}),d})}return g(o,"finish"),{run:c,requestCancellation(u,p){r.get(s(u,p))?.abort(new Error("task_grade_cancel_requested"))},async drain(u,p=20){let w=await t.transaction(u,async l=>{let m=[];for(let d of["queued","running","cancelling"])m.push(...(await l.list("grade",{status:d,limit:Math.max(1,Math.min(100,p))})).items);return m}),f=[];for(let l of w)f.push(await c(u,l.id));return f}}}g(zd,"createTaskGradeWorker");function Qd(t,e,a={minimum:0,maximum:1}){if(!e.evidence||!D(e.evidence,A(t))||e.submission.expectedEvidenceHash!==t.contentHash||e.submission.kind!=="outcome"||!t.submission.observedOutput)throw new b("rating_fixture_evidence_mismatch",422);let n=Ut.parse(e.submission.value);if(!Number.isFinite(a.minimum)||!Number.isFinite(a.maximum)||a.minimum>=a.maximum)throw new b("rating_fixture_scale_invalid",422);let r=a.minimum+(n.score-n.scale.minimum)/(n.scale.maximum-n.scale.minimum)*(a.maximum-a.minimum);return{id:`label-${e.id}-${e.revision}`,name:t.submission.exampleId,input:JSON.stringify(t.submission.input,null,2),output:JSON.stringify(t.submission.observedOutput,null,2),expectedOutput:t.submission.expected?JSON.stringify(t.submission.expected,null,2):"",evaluatorContext:t.submission.evaluatorContext?JSON.stringify(t.submission.evaluatorContext,null,2):"",artifactRefs:[],runtimeEventRefs:[],infrastructureError:"",expectedStatus:"scored",minimumScore:String(r),maximumScore:String(r),expectedPassed:"any",sourceLabel:{evidence:A(t),feedback:{id:e.id,revision:e.revision}}}}g(Qd,"rewardFixtureFromRating");function dn(t){let e=t.now??(()=>new Date().toISOString());return{transaction(a,n){return t.repository.transaction(t.scope,async r=>{let s=await C(r,"reward_check",t.run.id);if(s.snapshotHash!==t.run.snapshotHash)throw new Error("model_judge_budget_snapshot_changed");if(a==="dispatch"&&(s.status!=="running"||!s.leaseOwner||s.leaseOwner!==t.run.leaseOwner||s.attemptCount!==t.run.attemptCount||!s.leaseExpiresAt||Date.parse(s.leaseExpiresAt)<=Date.parse(e())))throw new Error("model_judge_budget_owner_inactive");let c=s.judgeCalls??[],o=n({maximumSpendUsd:s.maximumSpendUsd,calls:c});if(_(o.calls)!==_(c)){let u=$.parse({...s,revision:s.revision+1,judgeCalls:o.calls,updatedAt:e()});await r.put("reward_check",u,s.revision,{parentId:s.reward.id,status:s.status})}return o.result})}}}g(dn,"createRewardCheckJudgeBudgetStore");function ol(t){let e=t.now??(()=>new Date().toISOString()),a=g(n=>_([n.evidence,n.binding,n.target,n.output]),"identity");return{transaction(n,r){return t.repository.transaction(t.scope,async s=>{let c=await C(s,"grade",t.run.id);if(a(c)!==a(t.run))throw new Error("model_judge_budget_snapshot_changed");if(n==="dispatch"&&(c.status!=="running"||!c.leaseOwner||c.leaseOwner!==t.run.leaseOwner||c.attemptCount!==t.run.attemptCount||!c.leaseExpiresAt||Date.parse(c.leaseExpiresAt)<=Date.parse(e())))throw new Error("model_judge_budget_owner_inactive");let o=c.judgeCalls??[],u=r({maximumSpendUsd:c.maximumSpendUsd,calls:o});if(_(u.calls)!==_(o)){let p=X.parse({...c,revision:c.revision+1,judgeCalls:u.calls,updatedAt:e()});await s.put("grade",p,c.revision,{parentId:c.evidence.id,status:c.status})}return u.result})}}}g(ol,"createTaskGradeJudgeBudgetStore");function ln(t){return{runtime:t.runtime,async execute(e){return Fi({reward:e.reward,fixture:e.fixture,signal:e.signal,modelJudge:e.reward.implementation.kind==="model_judge"?await t.createModelJudge?.(e):void 0,customVerifier:g(async({grader:a,task:n,evidence:r})=>{let s=e.assets.find(u=>u.id===a.verifierRef.id);if(!s)throw new Error("reward_check_source_missing");let c=N(s,a.verifierRef),o=await t.executeJavaScript({source:c,exportName:a.exportName,runtime:a.runtime,signal:e.signal,timeoutMs:Math.min(a.timeoutMs,e.run.timeoutMs),value:{task:n,attempt:r,input:n.input,output:r.output,expectedOutput:n.expectedOutput,evaluatorContext:e.fixture.evaluatorContext,infrastructureError:r.infrastructureError??null}});return{score:o.score,passed:o.passed,rewardEligible:a.rewardEligible,failureClass:null,feedback:[o.feedback],visibleEvidenceRefs:[],privilegedEvidenceRefs:o.evidenceRefs}},"customVerifier")})},async cancel(e){return t.createModelJudge?t.cancelModelJudge?.(e)??!1:!0}}}g(ln,"createIsolatedRewardFixtureExecutor");function xl(t){return ln({runtime:t.runtime,executeJavaScript:t.executeJavaScript,async cancelModelJudge(e){let a=await t.repository.transaction(e.scope,n=>C(n,"reward_check",e.run.id));return a.judgeCalls?.some(n=>n.status==="reserved")?!1:t.provider.cancel({...e,run:a})},async createModelJudge(e){let a=dn({repository:t.repository,scope:e.scope,run:e.run});return Ri({transportPolicy:t.transportPolicy,async readRubric(n){let r=e.assets.find(s=>s.id===n.id);if(!r)throw new Error("reward_check_rubric_missing");return N(r,n)},async executeBudgeted(n,r){let s=await t.provider.prepare(n,{scope:e.scope,run:e.run});return yi({store:a,maximumCharge:g(()=>s.maximumChargeUsd,"maximumCharge"),dispatch:g((o,u)=>s.dispatch(u),"dispatch")})(`fixture-${_([e.fixture,e.reward.contentHash])}`,n,r)}})}})}g(xl,"createBudgetedRewardFixtureExecutor");var ua=524288,un=i.object({schemaVersion:i.literal("openpond.rewardCalibrationClosure.v1"),reward:Y,draft:ve,base:Y.nullable(),check:$,assets:i.array(we).min(1).max(100)}).strict(),ma=un.extend({contentHash:B}).strict();function mn(t){V(t,ua);let e=ma.parse(t),{contentHash:a,...n}=e;_(n)!==a&&Z("reward_calibration_closure_changed"),Ot(e.reward),K(e.draft),(e.draft.targetKind!=="reward"||e.draft.targetId!==e.reward.id)&&Z("reward_calibration_closure_draft_mismatch"),e.base&&Ot(e.base),(e.draft.baseRelease?!e.base||!D(e.draft.baseRelease,A(e.base)):e.base!==null)&&Z("reward_calibration_closure_base_mismatch");let r=de(e.draft,e.base),{check:s,reward:c}=e;(!D(s.draft,A(e.draft))||!D(s.reward,A(r.reward))||s.snapshotHash!==r.snapshotHash||_(s.fixtureRefs)!==_(r.fixtureRefs)||s.status!=="completed"||!s.runtime||s.matchesExpectations!==!0||s.failure!==null||s.results.length!==r.fixtures.length)&&Z("reward_calibration_closure_check_mismatch");let o=nt(e.draft,e.base,s).reward,u=g(f=>_([f.implementation,f.rawScore,f.assets,f.fixtureSetRef??null]),"scoring");(c.id!==o.id||u(c)!==u(o)||_(c.calibrationCheckRef??null)!==_(o.calibrationCheckRef??null))&&Z("reward_calibration_closure_reward_mismatch");let p=new Map(e.assets.map(f=>[f.id,f]));(p.size!==e.assets.length||p.size!==r.assets.length)&&Z("reward_calibration_closure_assets_mismatch");for(let f of r.assets){let l=p.get(f.id);(!l||_(l)!==_(f))&&Z("reward_calibration_closure_asset_changed"),N(l,f.asset),l.asset.visibility==="policy"&&Z("reward_calibration_closure_asset_visible")}(!c.fixtureSetRef||!p.has(c.fixtureSetRef.id))&&Z("reward_calibration_closure_fixtures_missing");let w=ue({schemaVersion:"openpond.rewardBinding.v1",id:`fixture-binding-${_(A(r.reward))}`,revision:1,sources:[{graderId:r.reward.id,reward:A(r.reward),role:"evaluation",normalization:r.reward.rawScore.minimum===0&&r.reward.rawScore.maximum===1?{kind:"identity"}:{kind:"linear",minimum:r.reward.rawScore.minimum,maximum:r.reward.rawScore.maximum,direction:"higher"},weight:1,required:!0,hardGate:!1,privileged:!0,fixtureRefs:[]}],aggregation:"weighted_mean",unscorable:"exclude_optional_require_all_required"},[r.reward]);for(let f of r.fixtures){let l=s.results.filter(h=>h.fixture.id===f.id),m=l[0];(l.length!==1||!m||m.fixture.contentHash!==_(f)||!D(m.result.reward,s.reward)||!m.matchesExpectation||!Fe(f,m.result).matchesExpectation)&&Z("reward_calibration_closure_fixture_mismatch");let d=re.parse({id:f.id,clusterKey:f.id,split:"validation",input:f.input,expectedOutput:f.expectedOutput,privilegedContextRef:null});ki({binding:w,taskHash:_(d),outputHash:_({output:f.output,artifactRefs:f.artifactRefs,runtimeEventRefs:f.runtimeEventRefs,infrastructureError:f.infrastructureError}),results:[m.result]})}return e}g(mn,"verifyRewardCalibrationClosure");function pa(t){let e=un.parse(t);return mn({...e,contentHash:_(e)})}g(pa,"createRewardCalibrationClosure");async function Ol(t,e){let a=await L(t,"reward",e.reward),n=await C(t,"reward_check",e.check.id,e.check.revision);_(n)!==e.check.contentHash&&Z("reward_calibration_closure_check_changed");let r=await L(t,"draft",n.draft);r.targetKind!=="reward"&&Z("reward_calibration_closure_draft_mismatch");let s=r.baseRelease?await L(t,"reward",r.baseRelease):null,c=de(r,s),o=await Promise.all(c.assets.map(u=>C(t,"asset",u.id,1)));return pa({schemaVersion:"openpond.rewardCalibrationClosure.v1",reward:a,check:n,draft:r,base:s,assets:o})}g(Ol,"exportRewardCalibrationClosure");function Bl(t){let e=mn(t);return se({text:JSON.stringify(e),path:`graders/calibration/${e.contentHash}.json`,mediaType:"application/vnd.openpond.reward-calibration-closure+json",visibility:"host_private"})}g(Bl,"rewardCalibrationClosureAsset");function Z(t){throw new b(t,422)}g(Z,"fail");function $l(t,e,a){let n=ri.parse(e.runtime),r=a.now??(()=>new Date().toISOString()),s=new Map,c=g((f,l)=>JSON.stringify([f,l]),"key"),o=g(f=>["completed","failed","cancelled"].includes(f.status),"terminal");async function u(f,l){let m=await t.transaction(f,async x=>{let S=await C(x,"reward_check",l);if(o(S)||S.leaseExpiresAt&&Date.parse(S.leaseExpiresAt)>Date.parse(r()))return{acquired:!1,run:S};let k=$.parse({...S,revision:S.revision+1,status:S.status==="cancelling"?"cancelling":"running",runtime:S.status==="cancelling"?S.runtime:n,leaseOwner:a.workerId,leaseExpiresAt:new Date(Date.parse(r())+S.timeoutMs+3e4).toISOString(),attemptCount:S.attemptCount+1,results:S.results,matchesExpectations:null,failure:null,updatedAt:r()});return await x.put("reward_check",k,S.revision,{parentId:k.reward.id,status:k.status}),{acquired:!0,run:k}});if(!m.acquired)return m.run;if(m.run.status==="cancelling"){let x=await e.cancel({scope:f,run:m.run});return w(f,m.run,x?"cancelled":"cancelling",null)}let d=new AbortController;s.set(c(f,l),d);let h=setTimeout(()=>d.abort(new Error("reward_check_timeout")),m.run.timeoutMs);try{let x=await t.transaction(f,async S=>{let k=await L(S,"draft",m.run.draft);if(k.targetKind!=="reward")throw new Error("reward_check_draft_kind_invalid");let j=k.baseRelease?await L(S,"reward",k.baseRelease):null,I=de(k,j);if(I.snapshotHash!==m.run.snapshotHash||!D(A(I.reward),m.run.reward)||_(I.fixtureRefs)!==_(m.run.fixtureRefs))throw new Error("reward_check_snapshot_mismatch");return I});for(let S of x.fixtures){d.signal.throwIfAborted();let k=m.run.results.find(R=>R.fixture.id===S.id);if(k){if(k.fixture.contentHash!==_(S)||!D(k.result.reward,m.run.reward)||k.result.graderId!==x.reward.id||k.result.role!=="evaluation")throw new Error("reward_check_retained_fixture_mismatch");continue}let j=mt.parse(await e.execute({...x,scope:f,run:m.run,fixture:S,signal:d.signal}));if(j.graderId!==x.reward.id||!D(j.reward,m.run.reward)||j.role!=="evaluation")throw new Error("reward_check_result_identity_mismatch");let I=await t.transaction(f,async R=>{let T=await C(R,"reward_check",l);if(!p(T,m.run)||o(T))return T;let q=$.parse({...T,revision:T.revision+1,results:[...T.results,Fe(S,j)],updatedAt:r()});return await R.put("reward_check",q,T.revision,{parentId:T.reward.id,status:T.status}),q});if(!p(I,m.run)||o(I))return I;I.status==="cancelling"&&d.abort(new Error("reward_check_cancel_requested"))}return d.signal.throwIfAborted(),await w(f,m.run,"completed",null)}catch(x){if(d.signal.aborted){if(!await e.cancel({scope:f,run:m.run}))return w(f,m.run,"cancelling","Execution cleanup is awaiting owner confirmation.");if(d.signal.reason instanceof Error&&d.signal.reason.message==="reward_check_cancel_requested")return w(f,m.run,"cancelled",null)}return await w(f,m.run,"failed",x instanceof Error?x.message:"Reward checks failed.")}finally{clearTimeout(h),s.delete(c(f,l))}}g(u,"run");function p(f,l){return f.leaseOwner===a.workerId&&f.attemptCount===l.attemptCount}g(p,"owns");async function w(f,l,m,d){return t.transaction(f,async h=>{let x=await C(h,"reward_check",l.id);if(!p(x,l)||o(x))return x;if(m==="completed"&&x.results.length!==x.fixtureRefs.length)throw new Error("reward_check_results_incomplete");let S=$.parse({...x,revision:x.revision+1,status:m,failure:d,matchesExpectations:m==="completed"?x.results.every(k=>k.matchesExpectation):null,leaseOwner:null,leaseExpiresAt:m==="cancelling"?new Date(Date.parse(r())+5e3).toISOString():null,updatedAt:r()});return await h.put("reward_check",S,x.revision,{parentId:x.reward.id,status:S.status}),S})}return g(w,"finish"),{run:u,requestCancellation(f,l){s.get(c(f,l))?.abort(new Error("reward_check_cancel_requested"))},async drain(f,l=20){let m=await t.transaction(f,async h=>{let x=[];for(let S of["queued","running","cancelling"])x.push(...(await h.list("reward_check",{status:S,limit:Math.max(1,Math.min(100,l))})).items);return x}),d=[];for(let h of m)d.push(await u(f,h.id));return d}}}g($l,"createRewardCheckWorker");async function pn(t,e,a,n,r,s){let c=et.parse(r);if(c.scope!==e||c.dispatchId!==a.id||c.submissionHash!==a.submissionHash||c.leaseGeneration!==a.leaseGeneration||!a.submissionStartedAt||a.execution||a.state!=="prepared"||!a.leaseOwner||!a.leaseExpiresAt||Date.parse(a.leaseExpiresAt)<=Date.parse(s)||n.id!==a.iterationId||n.status!=="dispatching"&&!(a.cancelRequestedAt&&n.status==="cancelling"))throw new b("learning_submission_deferral_fenced",409);let o=new Date(Math.max(Date.parse(c.retryAt),Date.parse(s)+1e3)).toISOString(),u=ce.parse({...a,revision:a.revision+1,submissionStartedAt:null,leaseGeneration:a.leaseGeneration+1,leaseOwner:null,leaseExpiresAt:null,admission:a.cancelRequestedAt?null:{status:"deferred",reason:c.reason,retryAt:o},nextAttemptAt:a.cancelRequestedAt?null:o,lastSubmissionDeferral:c,consecutiveFailures:0,lastError:null,updatedAt:s});return await t.put("dispatch",u,a.revision,{parentId:a.iterationId,status:u.state}),n.failure&&await t.put("iteration",M.parse({...n,revision:n.revision+1,failure:null,updatedAt:s}),n.revision,{parentId:a.chainId,status:n.status}),u}g(pn,"deferLearningIterationSubmission");var fa=new Set(["accepted","rejected","failed","cancelled","completed_without_candidate"]);function du(t,e,a){let n=a.now??(()=>new Date().toISOString()),r=a.leaseMs??6e4,s=a.requestTimeoutMs??45e3;if(!Number.isFinite(r)||!Number.isFinite(s)||s<1||r<=s)throw new Error("Iteration lease must exceed its bounded request timeout.");async function c(f,l){return t.transaction(f,async m=>{let d=await C(m,"iteration",l);if(fa.has(d.status)||d.status==="candidate_ready"||!d.batch)return null;let h=await m.get("dispatch",d.dispatchId),x=n();if(h?.state==="settled"||h?.state==="blocked"&&!h.cancelRequestedAt||h?.leaseExpiresAt&&Date.parse(h.leaseExpiresAt)>Date.parse(x)||!h?.cancelRequestedAt&&h?.nextAttemptAt&&Date.parse(h.nextAttemptAt)>Date.parse(x))return null;let S=await L(m,"policy",d.policy);if(S.executionOwner!==a.executionOwner)throw new b("learning_execution_owner_mismatch",409);if(!(await C(m,"policy",S.id)).enabled&&!h?.submissionStartedAt&&!h?.cancelRequestedAt)return null;let j=await L(m,"batch",d.batch),I=await C(m,"reservation",l),R=await C(m,"chain",I.chainId);if(R.activeIterationId!==l||I.outcome!=="reserved")throw new b("learning_dispatch_reservation_mismatch",409);let T=ce.parse({schemaVersion:"openpond.learningIterationDispatch.v1",id:d.dispatchId,iterationId:l,chainId:R.id,policy:d.policy,batch:d.batch,state:"preparing",submission:null,submissionHash:null,submissionStartedAt:null,execution:null,terminalReceipt:null,cancelRequestedAt:null,consecutiveFailures:0,nextAttemptAt:null,lastError:null,createdAt:x,...h,revision:(h?.revision??0)+1,leaseOwner:a.workerId,leaseGeneration:(h?.leaseGeneration??0)+1,leaseExpiresAt:new Date(Date.parse(x)+r).toISOString(),updatedAt:x});if(T.iterationId!==l||_(T.policy)!==_(d.policy)||_(T.batch)!==_(d.batch))throw new b("learning_dispatch_identity_mismatch",409);await m.put("dispatch",T,h?.revision??0,{parentId:l,status:T.state});let q=M.parse({...d,revision:d.revision+1,status:d.status==="cancelling"?"cancelling":h?.submissionStartedAt?d.status:"dispatching",updatedAt:x});return await m.put("iteration",q,d.revision,{parentId:R.id,status:q.status}),{dispatch:T,iteration:q,policy:S,batch:j}})}g(c,"claim");async function o(f,l,m){return t.transaction(f,async d=>{let h=await C(d,"dispatch",l.id);return h.leaseOwner!==a.workerId||h.leaseGeneration!==l.leaseGeneration||!h.leaseExpiresAt||Date.parse(h.leaseExpiresAt)<=Date.parse(n())||h.state==="settled"?null:m(d,h,await C(d,"iteration",h.iterationId))})}g(o,"fenced");async function u(f,l,m){let d=ce.parse({...l,...m,revision:l.revision+1,updatedAt:n()});return await f.put("dispatch",d,l.revision,{parentId:l.iterationId,status:d.state}),d}g(u,"saveDispatch");async function p(f,l,m,d){let h=!d||["succeeded","failed","cancelled"].includes(d.status),x=d?d.status==="succeeded"?d.candidate?"candidate_ready":"completed_without_candidate":d.status==="running"?l.cancelRequestedAt?"cancelling":"training":d.status==="evaluating"?l.cancelRequestedAt?"cancelling":"evaluating":d.status:"cancelled",S=M.parse({...m,revision:m.revision+1,status:x,updatedAt:n(),trainingJob:d?.execution??m.trainingJob,evaluationJob:d?.evaluation??m.evaluationJob,candidateVersion:d?.candidate??m.candidateVersion,spendUsd:d?.spendUsd??m.spendUsd,failure:d?.failure?{code:"learning_execution_failed",message:d.failure}:null});if(await f.put("iteration",S,m.revision,{parentId:l.chainId,status:x}),await u(f,l,{state:h?"settled":"submitted",execution:d?.execution??l.execution,terminalReceipt:d?.receipt??null,leaseOwner:null,leaseExpiresAt:null,admission:null,nextAttemptAt:h?null:new Date(Date.parse(n())+5e3).toISOString(),consecutiveFailures:0,lastError:null}),h){let k=await C(f,"reservation",m.id),j=be.parse({...k,revision:k.revision+1,budget:{...k.budget,reservedSpendUsd:0,settledSpendUsd:S.spendUsd,settledAt:n()},updatedAt:n()});if(await f.put("reservation",j,k.revision,{parentId:l.chainId,status:j.outcome}),x!=="candidate_ready"){let I=await C(f,"chain",l.chainId);I.activeIterationId===m.id&&await f.put("chain",W.parse({...I,revision:I.revision+1,activeIterationId:null,updatedAt:n()}),I.revision,{parentId:I.modelProjectId})}}return S}g(p,"settle");async function w(f,l){let m=await c(f,l),d=g(()=>t.transaction(f,S=>C(S,"iteration",l)),"read");if(!m)return d();let h=m.dispatch,x=g(async S=>{let k=new AbortController,j,I=new Promise((R,T)=>{j=setTimeout(()=>{let q=new Error("Learning dispatch request timed out; reconcile its existing identity.");k.abort(q),T(q)},s)});try{return await Promise.race([S({...structuredClone({scope:f,...m,dispatch:h}),signal:k.signal}),I])}finally{clearTimeout(j)}},"bounded");try{if(h.cancelRequestedAt&&!h.submissionStartedAt)return await o(f,h,(I,R,T)=>p(I,R,T,null)),d();if(!h.submission){let I=ii.parse(await x(T=>e.prepare(T))),R=await o(f,h,(T,q)=>u(T,q,{submission:I,submissionHash:_(I),state:"prepared"}));if(!R)return d();h=R}if(!h.submissionStartedAt&&!h.cancelRequestedAt&&e.admit){let I=n(),R=ni.parse(await x(T=>e.admit(T)));if(R.status==="deferred"){if(Date.parse(R.retryAt)<=Date.parse(I))throw new b("learning_admission_retry_time_invalid",409);return await o(f,h,async(T,q,P)=>{if(q.cancelRequestedAt)return p(T,q,P,null);let J=new Date(Math.max(Date.parse(R.retryAt),Date.parse(n())+1e3)).toISOString();await u(T,q,{admission:{...R,retryAt:J},nextAttemptAt:J,consecutiveFailures:0,lastError:null,leaseOwner:null,leaseExpiresAt:null}),P.failure&&await T.put("iteration",M.parse({...P,revision:P.revision+1,failure:null,updatedAt:n()}),P.revision,{parentId:q.chainId,status:P.status})}),d()}}let S=await o(f,h,async(I,R,T)=>R.cancelRequestedAt&&!R.submissionStartedAt?(await p(I,R,T,null),null):!(await C(I,"policy",R.policy.id)).enabled&&!R.submissionStartedAt?(await u(I,R,{leaseOwner:null,leaseExpiresAt:null}),null):u(I,R,{submissionStartedAt:R.submissionStartedAt??n(),admission:null}));if(!S)return d();h=S;let k=h.cancelRequestedAt?await x(I=>e.cancel(I)):await x(I=>e.reconcile(I));if(!k){let I=await o(f,h,(R,T)=>u(R,T,{}));if(!I)return d();h=I,k=h.cancelRequestedAt?await x(R=>e.cancel(R)):await x(R=>e.submit(R))}if(k.status==="deferred"){let I=et.parse(k);if(I.scope!==f||I.dispatchId!==h.id||I.submissionHash!==h.submissionHash||I.leaseGeneration!==h.leaseGeneration)throw new b("learning_execution_identity_mismatch",409);return await o(f,h,(R,T,q)=>pn(R,f,T,q,I,n())),d()}let j=qi.parse(k);if(j.scope!==f||j.dispatchId!==h.id||j.submissionHash!==h.submissionHash||h.execution&&_(j.execution)!==_(h.execution))throw new b("learning_execution_identity_mismatch",409);await o(f,h,async(I,R,T)=>{if(j.submissionHash!==R.submissionHash||R.execution&&_(j.execution)!==_(R.execution))throw new b("learning_execution_identity_mismatch",409);if(j.spendUsd<T.spendUsd)throw new b("learning_execution_spend_regressed",409);return p(I,R,T,j)})}catch(S){await o(f,h,async(k,j,I)=>{let R=j.consecutiveFailures+1,T=R>m.policy.limits.maxRetries,q=(S instanceof Error?S.message:"Learning dispatch failed.").slice(0,2e4);await u(k,j,{state:T?"blocked":j.state,consecutiveFailures:R,lastError:q,leaseOwner:null,leaseExpiresAt:null,admission:null,nextAttemptAt:T?null:new Date(Date.parse(n())+Math.min(6e4,1e3*2**Math.min(R,6))).toISOString()});let P=M.parse({...I,revision:I.revision+1,retryCount:I.retryCount+1,failure:{code:T?"learning_dispatch_attention_required":"learning_dispatch_retry_pending",message:q},updatedAt:n()});await k.put("iteration",P,I.revision,{parentId:j.chainId,status:P.status})})}return d()}return g(w,"run"),{run:w}}g(du,"createLearningIterationWorker");var ha=i.object({scope:v,iterationId:v,decision:y,decidedAt:E,outcome:i.enum(["accepted","rejected"]),execution:H,candidate:H,evaluation:H,receipt:H}).strict();async function vu(t,e,a={}){let n=ha.parse(e);return t.transaction(n.scope,async r=>{let s=await C(r,"iteration",n.iterationId),c=await C(r,"dispatch",s.dispatchId),o=g((m,d)=>m?.id===d.id&&m.contentHash===d.contentHash,"same");if(c.iterationId!==s.id||c.state!=="settled"||!o(s.trainingJob,n.execution)||!o(c.execution,n.execution)||!o(s.candidateVersion,n.candidate)||!o(s.evaluationJob,n.evaluation)||!o(c.terminalReceipt,n.receipt))throw new b("learning_candidate_decision_evidence_mismatch",409);if(!["candidate_ready","accepted","rejected"].includes(s.status))throw new b("learning_candidate_not_reviewable",409);let u=s.candidateDecision;if(u&&n.decision.revision<u.revision)return s;if(u&&n.decision.revision===u.revision){if(!o(u,n.decision)||s.status!==n.outcome||s.candidateDecisionAt!=null&&s.candidateDecisionAt!==n.decidedAt)throw new b("learning_candidate_decision_revision_conflict",409);if(s.candidateDecisionAt!=null)return s}let p=(a.now??(()=>new Date().toISOString()))(),w=M.parse({...s,revision:s.revision+1,candidateDecision:n.decision,candidateDecisionAt:n.decidedAt,status:n.outcome,updatedAt:p});await r.put("iteration",w,s.revision,{parentId:c.chainId,status:w.status});let f=await C(r,"chain",c.chainId),l=await Je(r,f.id);return await r.put("chain",W.parse({...f,acceptedParent:l,revision:f.revision+1,activeIterationId:f.activeIterationId===s.id?null:f.activeIterationId,updatedAt:p}),f.revision,{parentId:f.modelProjectId}),w})}g(vu,"reconcileLearningCandidateDecision");var ga=new Map([["learning_iteration_active","active_iteration"],["learning_iteration_cooldown","cooldown"],["learning_daily_budget_exhausted","daily_budget"]]);function ju(t,e){let a=e.now??(()=>new Date().toISOString());async function n(r,s,c){let o=null;try{return await t.transaction(r,async u=>{let p=await C(u,"schedule",s);if(p.executionOwner!==e.executionOwner)throw new b("learning_execution_owner_mismatch",409);let w=a(),f=Date.parse(w);if(p.state!=="scheduled"||!p.nextRunAt||Date.parse(p.nextRunAt)>f||p.nextAttemptAt&&Date.parse(p.nextAttemptAt)>f)return p;o={schedule:p,maxRetries:0};let l=await L(u,"policy",p.policy);o.maxRetries=l.limits.maxRetries;let m=l.trigger.kind==="nightly"?p.intervalSeconds===null&&p.calendar?.localTime===l.trigger.localTime&&p.calendar.timeZone===l.trigger.timeZone:l.trigger.kind==="schedule"?p.calendar===null&&l.trigger.intervalSeconds===p.intervalSeconds:l.trigger.kind==="approved_count"&&p.calendar===null&&p.intervalSeconds===60;if(l.executionOwner!==p.executionOwner||!m)throw new b("learning_schedule_policy_mismatch",409);let d=p.nextRunAt,h=(p.intervalSeconds??86400)*1e3,x=Date.parse(d),S=Math.floor((f-x)/h),k=p.calendar?Ei(p.calendar,d,w):{coalescedCount:S,coalescedThroughAt:new Date(x+S*h).toISOString(),nextRunAt:new Date(x+(S+1)*h).toISOString()};if(l.trigger.kind==="approved_count"&&(await ke(u,l)).counts.eligible<l.admission.minimumApprovedExamples){let J=_e.parse({...p,revision:p.revision+1,nextRunAt:k.nextRunAt,consecutiveFailures:0,nextAttemptAt:null,lastError:null,updatedAt:w});return await u.put("schedule",J,p.revision,{parentId:p.modelProjectId,status:J.state}),J}let j=`schedule-fire-${_([p.id,d])}`,I="skipped",R=null,T=null;try{let ne=(await Lt(u,{action:"reserve_iteration",operationId:j,policy:p.policy,trigger:l.trigger.kind==="approved_count"?{kind:"approved_count",checkedAt:d}:{kind:"schedule",scheduledAt:d}},c,w)).find(ct=>ct.kind==="iteration");if(!ne)throw new b("learning_schedule_reservation_missing",409);I=(await C(u,"reservation",ne.id)).outcome,T={id:ne.id,revision:ne.revision}}catch(J){let ne=J instanceof b?ga.get(J.code):void 0;if(!ne)throw J;R=ne}let q=Rt.parse(F({schemaVersion:"openpond.learningScheduleFire.v1",id:j,revision:1,scheduleId:s,policy:p.policy,scheduledAt:d,coalescedThroughAt:k.coalescedThroughAt,coalescedCount:k.coalescedCount,outcome:I,reason:R,iteration:T,createdAt:w}));await u.put("schedule_fire",q,0,{parentId:p.id,status:I});let P=_e.parse({...p,revision:p.revision+1,nextRunAt:k.nextRunAt,lastFire:A(q),consecutiveFailures:0,nextAttemptAt:null,lastError:null,updatedAt:w});return await u.put("schedule",P,p.revision,{parentId:p.modelProjectId,status:P.state}),P})}catch(u){let p=o;if(!p)throw u;return t.transaction(r,async w=>{let f=await C(w,"schedule",s);if(f.revision!==p.schedule.revision)return f;let l=a(),m=f.consecutiveFailures+1,d=m>p.maxRetries,h=_e.parse({...f,revision:f.revision+1,state:d?"blocked":"scheduled",consecutiveFailures:m,nextAttemptAt:d?null:new Date(Date.parse(l)+Math.min(6e4,1e3*2**Math.min(m-1,10))).toISOString(),lastError:(u instanceof Error?u.message:String(u)).slice(0,2e4),updatedAt:l});return await w.put("schedule",h,f.revision,{parentId:f.modelProjectId,status:h.state}),h})}}return g(n,"run"),{run:n}}g(ju,"createLearningScheduleWorker");var rt=i.string().trim().min(1).max(240),Se=i.string().regex(/^[a-f0-9]{64}$/),wa=i.object({id:rt,name:i.string().trim().min(1).max(200),required:i.boolean(),role:i.enum(["quality","retention","diagnostic"]).optional(),unit:i.string().trim().min(1).max(80).optional(),baselineReuse:i.object({maximumAgeSeconds:i.number().int().positive().max(31536e3),qualification:H}).strict().optional(),dataset:H,evaluator:H,executionHash:Se,populationHash:Se,metric:rt,direction:i.enum(["higher","lower"]),minimumCoverage:i.number().positive().max(1),threshold:i.number().finite(),maximumRegression:i.number().finite().nonnegative(),maximumSpendUsd:i.number().finite().positive()}).strict().superRefine((t,e)=>{t.role==="diagnostic"&&t.required&&e.addIssue({code:"custom",message:"Diagnostic checks cannot be required acceptance gates."})}),fn=i.object({schemaVersion:i.literal("openpond.acceptancePlan.v1"),id:rt,revision:i.number().int().positive(),checks:i.array(wa).min(1).max(100),maximumSpendUsd:i.number().finite().positive()}).strict().superRefine((t,e)=>{new Set(t.checks.map(a=>a.id)).size!==t.checks.length&&e.addIssue({code:"custom",message:"Acceptance check IDs must be unique."}),t.checks.some(a=>a.required)||e.addIssue({code:"custom",message:"An acceptance plan needs at least one required check."}),t.checks.reduce((a,n)=>a+n.maximumSpendUsd,0)>t.maximumSpendUsd+1e-9&&e.addIssue({code:"custom",message:"Check budgets exceed the total plan budget."})}),li=fn.safeExtend({contentHash:Se});function qu(t){let e=fn.parse(t);return{...e,contentHash:_(e)}}g(qu,"createAcceptancePlan");var ui=i.object({runId:rt,artifact:H,checkHash:Se,populationHash:Se,scoredPopulationHash:Se,executionHash:Se,evaluator:H,metric:rt,expectedCount:i.number().int().positive(),scoredCount:i.number().int().nonnegative(),score:i.number().finite().nullable(),status:i.enum(["pending","running","completed","failed","cancelled"]),evidenceHash:Se}).strict().superRefine((t,e)=>{t.scoredCount>t.expectedCount&&e.addIssue({code:"custom",message:"Scored count exceeds declared population."}),t.scoredCount===0!=(t.score===null)&&e.addIssue({code:"custom",message:"Scores require a nonempty scored population."})});function hn(t){let e=li.parse(t.plan);ae(e,"Acceptance plan");let a=H.parse(t.baseline),n=H.parse(t.candidate);if(new Set(t.measurements.map(s=>s.checkId)).size!==t.measurements.length||t.measurements.some(s=>!e.checks.some(c=>c.id===s.checkId)))throw new Error("Acceptance evidence has duplicate or unknown checks.");let r=e.checks.map(s=>{let c=t.measurements.find(m=>m.checkId===s.id),o=[],u=_(s),p=[c?.baseline??null,c?.candidate??null].map((m,d)=>{if(!m)return o.push(d?"candidate_missing":"baseline_missing"),null;let h=ui.parse(m);return _(h.artifact)!==_(d?n:a)&&o.push("artifact_mismatch"),(h.checkHash!==u||h.populationHash!==s.populationHash||h.executionHash!==s.executionHash||_(h.evaluator)!==_(s.evaluator)||h.metric!==s.metric)&&o.push("configuration_mismatch"),h.status!=="completed"&&o.push(`execution_${h.status}`),(h.score===null||h.scoredCount/h.expectedCount<s.minimumCoverage)&&o.push("coverage_incomplete"),h});if(p[0]&&p[1]&&(p[0].expectedCount!==p[1].expectedCount||p[0].scoredCount!==p[1].scoredCount||p[0].scoredPopulationHash!==p[1].scoredPopulationHash)&&o.push("population_count_mismatch"),o.length)return{id:s.id,required:s.required,state:"blocked",reasons:[...new Set(o)],delta:null};let w=p[0].score,f=p[1].score,l=(f-w)*(s.direction==="higher"?1:-1);return(s.direction==="higher"?f<s.threshold:f>s.threshold)&&o.push("threshold_failed"),l<-s.maximumRegression&&o.push("regression_failed"),{id:s.id,required:s.required,state:o.length?"failed":"passed",reasons:o,delta:l}});return{passed:r.filter(s=>s.required).every(s=>s.state==="passed"),checks:r}}g(hn,"evaluateAcceptancePlan");var Ie=i.string().trim().min(1).max(240),mi=i.string().regex(/^[a-f0-9]{64}$/),st=i.iso.datetime(),gn=i.number().finite().nonnegative(),Ke=new Set(["completed","failed","cancelled","budget_exhausted"]),pi=new Set(["completed","failed","cancelled","budget_exhausted"]),ba={queued:["queued","running","blocked","cancelling","failed","budget_exhausted"],running:["running","blocked","cancelling","cleaning","completed","failed","budget_exhausted"],blocked:["blocked","running","cancelling","failed","budget_exhausted"],cancelling:["cancelling","cleaning","cancelled","budget_exhausted"],cleaning:["cleaning","completed","failed","cancelled","budget_exhausted"]},va={queued:["queued","dispatching","failed","cancelled","budget_exhausted"],dispatching:["dispatching","running","cleaning","failed","cancelled","budget_exhausted"],running:["running","grading","cleaning","failed","cancelled","budget_exhausted"],grading:["grading","cleaning","completed","failed","cancelled","budget_exhausted"],cleaning:["cleaning","completed","failed","cancelled","budget_exhausted"]},wn=i.object({schemaVersion:i.literal("openpond.acceptanceGroupManifest.v1"),id:Ie,teamId:Ie,trainingJob:H,baseline:H,candidate:H,plan:li,maximumParallelAttempts:i.number().int().min(1).max(8),createdAt:st}).strict().superRefine((t,e)=>{t.plan.checks.some(a=>!a.role||!a.unit)&&e.addIssue({code:"custom",message:"Durable acceptance checks require explicit roles and score units."})}),bn=wn.safeExtend({contentHash:mi}),_a=i.object({id:Ie,checkId:Ie,subject:i.enum(["baseline","candidate"]),ordinal:i.number().int().positive(),dispatchId:Ie,state:i.enum(["queued","dispatching","running","grading","cleaning","completed","failed","cancelled","budget_exhausted"]),artifact:H,checkHash:mi,measurement:ui.nullable(),executionReceipt:H.nullable(),reusedFrom:i.object({group:H,attemptId:Ie}).strict().nullable(),spendUsd:gn,reservedUsd:gn,cleanupComplete:i.boolean(),accountingComplete:i.boolean(),failureCode:Ie.nullable(),createdAt:st,updatedAt:st}).strict().superRefine((t,e)=>{Date.parse(t.updatedAt)<Date.parse(t.createdAt)&&e.addIssue({code:"custom",message:"Attempt timestamps are reversed."}),Ke.has(t.state)&&(!t.cleanupComplete||!t.accountingComplete||t.reservedUsd!==0)&&e.addIssue({code:"custom",message:"Terminal attempts require cleanup and settled accounting."}),t.state==="completed"&&(t.measurement?.status!=="completed"||!t.executionReceipt)&&e.addIssue({code:"custom",message:"Completed attempts require retained measurement and execution receipts."}),t.reusedFrom&&(t.subject!=="baseline"||t.state!=="completed"||t.spendUsd!==0)&&e.addIssue({code:"custom",message:"Only completed baselines may reuse retained evidence without new spend."})}),vn=i.object({schemaVersion:i.literal("openpond.acceptanceGroupSnapshot.v1"),manifest:bn,revision:i.number().int().positive(),state:i.enum(["queued","running","blocked","cancelling","cleaning","completed","failed","cancelled","budget_exhausted"]),attempts:i.array(_a).max(2e3),failureCode:Ie.nullable(),updatedAt:st}).strict(),xa=vn.extend({contentHash:mi});function Uu(t){let e=wn.parse(t);return ae(e.plan,"Acceptance plan"),{...e,contentHash:_(e)}}g(Uu,"createAcceptanceGroupManifest");function Ju(t){let e=vn.parse(t);return ot({...e,contentHash:_(e)})}g(Ju,"createAcceptanceGroupSnapshot");function ot(t){let e=xa.parse(t);ae(e,"Acceptance group snapshot"),ae(e.manifest,"Acceptance group manifest"),ae(e.manifest.plan,"Acceptance plan");let a=new Map(e.manifest.plan.checks.map(c=>[c.id,c])),n=new Set,r=new Set,s=new Set;for(let c of e.attempts){let o=a.get(c.checkId);if(!o||c.checkHash!==_(o)||_(c.artifact)!==_(e.manifest[c.subject]))throw new Error("Acceptance attempt does not match its pinned check and artifact.");let u=JSON.stringify([c.checkId,c.subject,c.ordinal]);if(n.has(c.id)||r.has(c.dispatchId)||s.has(u))throw new Error("Acceptance attempts require unique identities, dispatches and positions.");if(n.add(c.id),r.add(c.dispatchId),s.add(u),c.measurement&&(c.measurement.checkHash!==c.checkHash||_(c.measurement.artifact)!==_(c.artifact)))throw new Error("Acceptance measurement does not match its attempt.");if(c.reusedFrom&&!o.baselineReuse)throw new Error("This check does not permit baseline reuse.")}for(let c of a.values())for(let o of["baseline","candidate"]){let u=e.attempts.filter(p=>p.checkId===c.id&&p.subject===o).sort((p,w)=>p.ordinal-w.ordinal);u.forEach((p,w)=>{if(p.ordinal!==w+1||w>0&&(!Ke.has(u[w-1].state)||u[w-1].state==="completed"))throw new Error("Retries must follow a settled failed attempt; completed evidence requires a new group to rerun.")})}if(pi.has(e.state)&&e.attempts.some(c=>!Ke.has(c.state)))throw new Error("Terminal groups cannot retain unsettled attempts.");if(e.attempts.filter(c=>!Ke.has(c.state)&&c.state!=="queued").length>e.manifest.maximumParallelAttempts)throw new Error("Acceptance attempts exceed the declared concurrency limit.");if(Date.parse(e.updatedAt)<Date.parse(e.manifest.createdAt)||e.attempts.some(c=>Date.parse(c.createdAt)<Date.parse(e.manifest.createdAt)||Date.parse(c.updatedAt)>Date.parse(e.updatedAt)))throw new Error("Acceptance group timestamps do not contain their attempts.");if(e.state==="completed"&&e.manifest.plan.checks.some(c=>["baseline","candidate"].some(o=>!e.attempts.some(u=>u.checkId===c.id&&u.subject===o))))throw new Error("Completed groups require an attempt for each declared check and subject.");return e}g(ot,"assertAcceptanceGroupSnapshot");function Mu(t,e){let a=ot(t),n=ot(e);if(a.manifest.contentHash!==n.manifest.contentHash||n.revision!==a.revision+1||pi.has(a.state))throw new Error("Acceptance group revision or immutable identity changed.");if(!ba[a.state]?.includes(n.state))throw new Error("Invalid acceptance group transition.");if(["cancelling","cleaning"].includes(a.state)&&n.attempts.length!==a.attempts.length)throw new Error("Stopping groups cannot dispatch additional attempts.");if(Date.parse(n.updatedAt)<Date.parse(a.updatedAt))throw new Error("Acceptance group time moved backwards.");let r=new Set(a.attempts.map(c=>c.id));for(let c of n.attempts.filter(o=>!r.has(o.id))){if(c.state!=="queued"&&!(c.state==="completed"&&c.reusedFrom))throw new Error("New attempts must enter the queue or retain an explicitly reused baseline.");if(Date.parse(c.createdAt)<Date.parse(a.updatedAt))throw new Error("New attempts cannot predate the preceding group revision.")}for(let c of a.attempts){let o=n.attempts.find(u=>u.id===c.id);if(!o||o.checkId!==c.checkId||o.subject!==c.subject||o.ordinal!==c.ordinal||o.dispatchId!==c.dispatchId||o.createdAt!==c.createdAt||o.checkHash!==c.checkHash||_(o.reusedFrom)!==_(c.reusedFrom)||_(o.artifact)!==_(c.artifact))throw new Error("Acceptance attempt identity or history changed.");if(o.spendUsd<c.spendUsd||Date.parse(o.updatedAt)<Date.parse(c.updatedAt)||Ke.has(c.state)&&_(c)!==_(o))throw new Error("Settled acceptance evidence and spend cannot be rewritten.");if(!Ke.has(c.state)&&!va[c.state]?.includes(o.state))throw new Error("Invalid acceptance attempt transition.")}if(n.attempts.some(c=>c.state==="dispatching"&&a.attempts.find(o=>o.id===c.id)?.state==="queued")){let c=g(o=>o.spendUsd+o.reservedUsd,"committed");if(n.attempts.reduce((o,u)=>o+c(u),0)>n.manifest.plan.maximumSpendUsd+1e-9||n.manifest.plan.checks.some(o=>n.attempts.filter(u=>u.checkId===o.id).reduce((u,p)=>u+c(p),0)>o.maximumSpendUsd+1e-9))throw new Error("Dispatch exceeds the pinned acceptance budget, including outstanding reservations and retry spend.")}return n}g(Mu,"assertAcceptanceGroupUpdate");function Ku(t){let e=ot(t.sourceGroup),a=bn.parse(t.targetManifest);ae(a,"Acceptance group manifest"),ae(a.plan,"Acceptance plan");let n=a.plan.checks.find(o=>o.id===t.checkId),r=e.attempts.find(o=>o.id===t.attemptId),s=Date.parse(st.parse(t.now));if(!n?.baselineReuse||!r||!pi.has(e.state)||e.manifest.id===a.id||e.manifest.teamId!==a.teamId||r.state!=="completed"||!r.measurement||r.reusedFrom||!r.cleanupComplete||!r.accountingComplete)throw new Error("This retained attempt is not eligible for baseline reuse.");if(r.checkId!==n.id||r.checkHash!==_(n)||_(r.artifact)!==_(a.baseline)||s<Date.parse(r.updatedAt)||s-Date.parse(r.updatedAt)>n.baselineReuse.maximumAgeSeconds*1e3)throw new Error("Baseline reuse requires the exact artifact, check, qualification and freshness window.");let c=r.measurement;if(c.status!=="completed"||c.score===null||c.scoredCount/c.expectedCount<n.minimumCoverage||c.populationHash!==n.populationHash||c.executionHash!==n.executionHash||_(c.evaluator)!==_(n.evaluator)||c.metric!==n.metric)throw new Error("Baseline reuse requires complete compatible retained measurements.");return r}g(Ku,"assertAcceptanceBaselineReuse");function zu(t){let e=ot(t),{manifest:a}=e,n=g((u,p)=>e.attempts.filter(w=>w.checkId===u&&w.subject===p).sort((w,f)=>f.ordinal-w.ordinal)[0],"latest"),r=a.plan.checks.map(u=>({checkId:u.id,baseline:n(u.id,"baseline")?.measurement??null,candidate:n(u.id,"candidate")?.measurement??null})),s=hn({plan:a.plan,baseline:a.baseline,candidate:a.candidate,measurements:r}),c=[];e.state!=="completed"&&c.push("group_not_completed"),e.attempts.some(u=>!u.cleanupComplete||!u.accountingComplete||u.reservedUsd!==0)&&c.push("cleanup_or_accounting_incomplete");let o=e.attempts.reduce((u,p)=>u+p.spendUsd,0);(o>a.plan.maximumSpendUsd+1e-9||a.plan.checks.some(u=>e.attempts.filter(p=>p.checkId===u.id).reduce((p,w)=>p+w.spendUsd,0)>u.maximumSpendUsd+1e-9))&&c.push("acceptance_budget_exceeded");for(let u of a.plan.checks.filter(p=>p.required))["baseline","candidate"].some(p=>n(u.id,p)?.state!=="completed")&&c.push("required_attempt_incomplete");return{...s,passed:s.passed&&c.length===0,reasons:[...new Set(c)],spendUsd:o}}g(zu,"acceptanceGroupVerdict");var ka=i.object({id:v,role:i.enum(["replay","transfer"]),taskId:v,seeds:i.array(i.string().min(1).max(500)).min(1).max(100),grader:i.object({id:v,revision:i.string().min(1).max(200),contentHash:B,reward:y.nullable().default(null)}).strict(),failureMeaning:i.literal("corrected_mistake_repeated")}).strict(),Sa=i.object({schemaVersion:i.literal("openpond.correctionVerificationPlan.v1"),id:v,revision:i.literal(1),teamId:v,ownerUserId:v,modelId:v,classification:i.literal("reviewed_model_behavior"),feedback:y,evidence:y,trainingJobId:v,checkpoint:H,artifact:H,taskset:y,checks:i.array(ka).min(1).max(1e3),baselineOperationId:v,candidateOperationId:v,criterion:i.literal("all_declared_checks_pass_after_failed_parent"),receivedAt:E,eligibleAt:E,frozenAt:E}).strict().superRefine((t,e)=>{t.baselineOperationId===t.candidateOperationId&&e.addIssue({code:"custom",path:["candidateOperationId"],message:"Parent and candidate must have distinct evaluation operations."}),new Set(t.checks.map(a=>a.id)).size!==t.checks.length&&e.addIssue({code:"custom",path:["checks"],message:"Correction check identities must be unique."});for(let[a,n]of t.checks.entries())new Set(n.seeds).size!==n.seeds.length&&e.addIssue({code:"custom",path:["checks",a,"seeds"],message:"Seeds must be unique per correction check."})}),Zu=Sa.safeExtend({contentHash:B}),Ia=i.object({schemaVersion:i.literal("openpond.correctionOpportunity.v1"),id:v,correction:H,source:i.enum(["evaluation","live"]),modelId:v,trainingJobId:v,artifactId:v,checkpointId:v,observedAt:E,occurredAt:E,attempt:H,classification:i.enum(["confirmed_repeat","passed","unscored"]),checkIds:i.array(v).min(1).max(1e3)}).strict(),Yu=i.object({schemaVersion:i.literal("openpond.correctionMetricObservation.v1"),correction:H,modelId:v,trainingJobId:v,checkpointId:v,artifactId:v,receivedAt:E,eligibleAt:E,firstBatchConsumptionAt:E.nullable(),firstTrainingUseAt:E.nullable(),verifiedAt:E.nullable(),servedAt:E.nullable(),baselineEvaluation:H.nullable(),candidateEvaluation:H.nullable(),status:i.enum(["pending_exposure","pending_verification","baseline_not_failed","verified","regressed","withdrawn"]),opportunities:i.array(Ia).max(1e5),blockers:i.array(i.string().max(500)).max(20).default([]),observedAt:E}).strict(),_n=i.object({confirmedRepeats:i.number().int().nonnegative(),scoredRelevantOpportunities:i.number().int().nonnegative(),unscoredOpportunities:i.number().int().nonnegative(),rate:i.number().min(0).max(1).nullable()}).strict(),Xu=i.object({schemaVersion:i.literal("openpond.correctionMetricSummary.v1"),observedAt:E,scope:i.object({teamId:v,modelId:v,runId:v.nullable(),checkpointId:v.nullable(),artifactId:v.nullable()}).strict(),window:i.object({from:E,to:E}).strict(),correctionCount:i.number().int().nonnegative(),adaptation:i.object({medianSeconds:i.number().nonnegative().nullable(),resolvedCount:i.number().int().nonnegative(),pendingCount:i.number().int().nonnegative(),oldestPendingSeconds:i.number().nonnegative().nullable()}).strict(),evaluation:_n.safeExtend({source:i.literal("evaluation")}),live:_n.safeExtend({source:i.literal("live")})}).strict();export{Ii as a,Bt as b,gt as c,Ri as d,Ge as e,In as f,yi as g,Te as h,Pt as i,Ei as j,O as k,y as l,pe as m,Vt as n,G as o,Rn as p,yn as q,An as r,Ft as s,ie as t,fe as u,wt as v,he as w,Ut as x,Jt as y,ge as z,Mt as A,Re as B,Kt as C,De as D,zt as E,He as F,ye as G,Cn as H,M as I,X as J,er as K,A as L,D as M,F as N,K as O,bt as P,we as Q,se as R,N as S,Oe as T,Nt as U,gr as V,vt as W,_t as X,$t as Y,Be as Z,qe as _,Pe as $,ji as aa,Li as ba,Ti as ca,wr as da,Gt as ea,W as fa,Wt as ga,xt as ha,be as ia,Xt as ja,ei as ka,En as la,jn as ma,Ln as na,Ze as oa,Yt as pa,ve as qa,ti as ra,z as sa,Ye as ta,kt as ua,Xe as va,Di as wa,oe as xa,St as ya,Tn as za,Hi as Aa,Dn as Ba,Hn as Ca,qn as Da,On as Ea,Bn as Fa,Pn as Ga,Vn as Ha,Fn as Ia,Un as Ja,Jn as Ka,Mn as La,Kn as Ma,zn as Na,Nn as Oa,$n as Pa,Gn as Qa,Wn as Ra,Qn as Sa,It as Ta,ii as Ua,ni as Va,et as Wa,ce as Xa,qi as Ya,_e as Za,Rt as _a,Zn as $a,Pi as ab,ss as bb,Ce as cb,Ae as db,ai as eb,ri as fb,Vi as gb,$ as hb,Yn as ib,de as jb,Fi as kb,Fe as lb,At as mb,si as nb,ee as ob,C as pb,L as qb,xe as rb,Ui as sb,it as tb,ea as ub,Ki as vb,ta as wb,zi as xb,nt as yb,Gi as zb,ia as Ab,Zi as Bb,Cc as Cb,Ec as Db,Yi as Eb,jc as Fb,Lc as Gb,na as Hb,sn as Ib,Bd as Jb,Kd as Kb,zd as Lb,Qd as Mb,dn as Nb,ol as Ob,ln as Pb,xl as Qb,ua as Rb,ma as Sb,mn as Tb,pa as Ub,Ol as Vb,Bl as Wb,$l as Xb,pn as Yb,du as Zb,ha as _b,vu as $b,ju as ac,wa as bc,fn as cc,li as dc,qu as ec,ui as fc,hn as gc,wn as hc,bn as ic,_a as jc,vn as kc,xa as lc,Uu as mc,Ju as nc,ot as oc,Mu as pc,Ku as qc,zu as rc,ka as sc,Sa as tc,Zu as uc,Ia as vc,Yu as wc,Xu as xc};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
-
import{B as h,k as a,l as t,o as s,t as l,w as c,z as u}from"./chunk-
|
|
2
|
+
import{B as h,k as a,l as t,o as s,t as l,w as c,z as u}from"./chunk-ZEOYNUHL.js";import{Wa as m}from"./chunk-ZY32SZ2P.js";import{A as e}from"./chunk-X2J2P5ZT.js";var r=t.shape.id,S=e.object({schemaVersion:e.literal("openpond.modelBatchReviewInspection.v1"),packageHash:e.string().regex(/^[a-f0-9]{64}$/),definition:s,binding:m,evidence:e.array(c).min(1).max(1e4),decisions:e.array(h).min(1).max(1e4)}).strict(),p=e.object({schemaVersion:e.literal("openpond.modelBatchReviewRequest.v1"),operationId:r,modelId:r,expectedModelRevision:e.number().int().positive(),tasksetRef:t,rewardBindingRef:t.nullable(),definition:e.object({name:e.string().trim().min(1).max(500).optional(),instructions:e.string().trim().min(1).max(2e4).optional(),inputSchema:a.optional(),outputSchema:a.optional(),requiredOutputs:s.shape.requiredOutputs}).strict(),examples:e.array(e.object({evidence:t,input:a.optional(),expected:a.nullable().optional(),evaluatorContext:a.nullable().optional(),proposedTarget:a.nullable().optional()}).strict()).max(1e4)}).strict(),w=e.object({schemaVersion:e.literal("openpond.modelBatchReviewReceipt.v1"),operationId:r,modelId:r,source:l,evidence:e.array(c).min(1).max(1e4),proposals:e.array(u).max(1e4)}).strict();var i=t.shape.id,o=e.string().regex(/^[a-f0-9]{64}$/),y=e.object({schemaVersion:e.literal("openpond.datasetTrainingReviewRequest.v1"),teamId:i,operationId:i,dataset:t,packageHash:o,taskIds:e.array(i).min(1).max(1e4).nullable().default(null),purpose:e.enum(["supervised_training","reward_training"]),rewardBindingRef:t.nullable().default(null),definition:p.shape.definition.default({}),targetSource:e.enum(["none","expected_output","approved_parent"]).default("none"),shareWithWorkspace:e.literal(!0)}).strict().superRefine((n,d)=>{n.taskIds&&new Set(n.taskIds).size!==n.taskIds.length&&d.addIssue({code:"custom",path:["taskIds"],message:"Select each Dataset task once."}),n.purpose!=="supervised_training"&&n.targetSource!=="none"&&d.addIssue({code:"custom",path:["targetSource"],message:"Target proposals require a supervised review."})}),T=e.object({schemaVersion:e.literal("openpond.datasetTrainingReviewSource.v1"),dataset:t,packageHash:o,taskCount:e.number().int().nonnegative(),definition:p.shape.definition,rewardBinding:t.nullable(),hasParentTargets:e.boolean()}).strict(),R=e.object({schemaVersion:e.literal("openpond.datasetTrainingReviewReceipt.v1"),id:i,teamId:i,actorId:i,operationId:i,requestHash:o,dataset:t,packageHash:o,purpose:e.enum(["supervised_training","reward_training"]),shareWithWorkspace:e.literal(!0),source:t,definition:t,evidence:e.array(t).min(1).max(1e4),proposals:e.array(t.pick({id:!0,revision:!0})).max(1e4),createdAt:e.string().datetime({offset:!0})}).strict(),B=R.extend({contentHash:o}).strict();export{S as a,p as b,w as c,y as d,T as e,R as f,B as g};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
-
import{j as sr,v as Bt}from"./chunk-
|
|
2
|
+
import{j as sr,v as Bt}from"./chunk-TR5UC5AF.js";import{a as tt}from"./chunk-WLQEONBF.js";import{b as at}from"./chunk-CQRA5TXF.js";import{a as or}from"./chunk-Q3WXB465.js";import{a as nr}from"./chunk-FEAKTSRS.js";import{a as et}from"./chunk-TPOAAJKA.js";import{d as Ze}from"./chunk-5TPJ5ECJ.js";import{b as Ye}from"./chunk-JVEIK4RH.js";import{a as tr,e as ar,f as rr}from"./chunk-MWPMYCYB.js";import{a as Mt}from"./chunk-IZ6DLEVY.js";import{a as Ga}from"./chunk-6YR5IYHH.js";import{c as Za,e as He}from"./chunk-XLZMSD5K.js";import{a as Ka,b as _e,c as Xa,d as Oe,g as Xe,l as Qe,m as se,n as Ya}from"./chunk-BQNU4HZW.js";import{a as Qa}from"./chunk-G4747MOW.js";import{a as er}from"./chunk-7KWD2I6W.js";import{c as la,y as ma}from"./chunk-OFJPOTES.js";import{d as he}from"./chunk-L5L3H6CI.js";import{x as Be}from"./chunk-2THZ6GZY.js";import{a as Ct}from"./chunk-BL3CZWWD.js";import{A as F,B as Ke,u as Ja,y as Ge}from"./chunk-OXRN2257.js";import{a as za,c as Se,d as Je,f as Ua,l as La,p as Va,r as Wa}from"./chunk-TOWY6Y23.js";import{b as ga,d as wa,e as va}from"./chunk-4V73I4OL.js";import{a as Le,e as ua,f as pa,g as fa,h as ha}from"./chunk-LE75SVEL.js";import{e as Ia}from"./chunk-LZPCA6DH.js";import{b as ca}from"./chunk-L3KS6MOV.js";import{f as $a}from"./chunk-Z6HWSTEP.js";import{Ca as Tt,Fa,aa as Na,ja as Da,wa as Me}from"./chunk-BYVE4TMU.js";import{f as qa}from"./chunk-LK77GI6M.js";import{k as ka}from"./chunk-HVM2GUM3.js";import{G as We,H as xa,L as Pa,R as Ta,S as Ca,T as Ma,ba as Ba,e as Ea,f as Ve,ga as _a,n as Aa,pa as Oa,ra as ja}from"./chunk-D6L6UNUQ.js";import{Eb as Ie,Fb as Ha,b as ya,ga as Sa}from"./chunk-ZY32SZ2P.js";import{r as Ra,s as ba}from"./chunk-OTDDXEQ6.js";import{Z as da}from"./chunk-SV7ZBEK2.js";import{M as sa}from"./chunk-2MEOUS24.js";import{i as oa,l as re,m as fe,n as v}from"./chunk-RCT3O3HQ.js";import{m as ia}from"./chunk-UGOK7VTC.js";import{A as M}from"./chunk-X2J2P5ZT.js";import{a as h}from"./chunk-FTQLQJQV.js";import{execFile as Wr}from"node:child_process";import{readFile as Jr}from"node:fs/promises";import{promisify as Gr}from"node:util";var Kr=5,Xr=20*1024*1024,ir=4e4,Ot=Gr(Wr);function Zn(e){return async({grader:t,task:a,attempt:n})=>{let s=[],o=0,i=await Qr({store:e.store,attempt:n}),d=n.modelRef?.providerId===t.judge.providerId&&n.modelRef.modelId===t.judge.modelId?sr(n.metadata.hostedTokenPricing)??void 0:void 0,g=await e.modelText({model:t.judge,hostedTokenPricing:d,signal:new AbortController().signal,requestId:`task-judge:${n.id}:${t.id}`,onUsage:h((m,r)=>{s.push(m),typeof r=="number"&&Number.isFinite(r)&&r>=0&&(o+=r)},"onUsage"),messages:[{role:"system",content:`Apply this rubric and return JSON only with score (0..1), passed, and feedback.
|
|
3
3
|
|
|
4
4
|
${t.rubric}`},{role:"user",content:JSON.stringify({input:a.input,expectedOutput:a.expectedOutput,output:n.output,artifactEvidence:i})}]}),f=rr(g);if(!f)throw new Error("Model judge returned invalid structured output.");return{...f,usage:s,...o>0?{costUsd:o}:{}}}}h(Zn,"createTaskAttemptModelJudge");async function Qr(e){let t=(await e.store.listTaskAttemptArtifacts({attemptId:e.attempt.id})).filter(a=>a.kind==="output_artifact").slice(0,Kr);return Promise.all(t.map(async a=>{let n={artifactId:a.id,mediaType:a.mediaType??null,sha256:a.sha256,sizeBytes:a.sizeBytes,requiredOutputPath:typeof a.metadata.requiredOutputPath=="string"?a.metadata.requiredOutputPath:null};if(a.sizeBytes>Xr)return{...n,extraction:"omitted",reason:"artifact exceeds inspection bound"};try{if(a.mediaType==="application/pdf"){let{stdout:s}=await Ot("pdftotext",[a.path,"-"],{env:{...process.env,PATH:Mt()},maxBuffer:8388608,timeout:15e3});return{...n,extraction:"pdf_text",content:_t(s)}}if(Zr(a.mediaType)){let s=await en(a.path,a.mediaType);return{...n,extraction:"open_xml_text",content:_t(s.content),structure:s.structure}}return Yr(a.mediaType)?{...n,extraction:"text",content:_t(await Jr(a.path,"utf8"))}:{...n,extraction:"metadata_only"}}catch(s){return{...n,extraction:"unavailable",reason:s instanceof Error?s.message.slice(0,500):String(s).slice(0,500)}}}))}h(Qr,"loadTaskAttemptGraderEvidence");function Yr(e){return!!(e?.startsWith("text/")||e==="application/json"||e==="application/javascript"||e==="application/sql"||e==="application/xml"||e==="application/yaml")}h(Yr,"isTextArtifact");function Zr(e){return e==="application/vnd.openxmlformats-officedocument.wordprocessingml.document"||e==="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"||e==="application/vnd.openxmlformats-officedocument.presentationml.presentation"}h(Zr,"isOpenXmlArtifact");async function en(e,t){let a={env:{...process.env,PATH:Mt()},maxBuffer:16777216,timeout:15e3},{stdout:n}=await Ot("unzip",["-Z1",e],a),s=n.split(/\r?\n/).filter(Boolean),o=tn(s,t).slice(0,250),i=[];for(let d of o){let{stdout:g}=await Ot("unzip",["-p",e,d],a),f=rn(g);f&&i.push(`[${d}]
|
|
5
5
|
${f}`)}return{content:i.join(`
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
+
import{i as a,j as b,k as c}from"./chunk-DFSQ5HZ7.js";import"./chunk-T6ML5SCD.js";import"./chunk-OIIE5GUK.js";import"./chunk-TPOAAJKA.js";import"./chunk-CX4T7I47.js";import"./chunk-PKJHN666.js";import"./chunk-PYNW5OFA.js";import"./chunk-XLZMSD5K.js";import"./chunk-SVLVIYH2.js";import"./chunk-6I5AUTVO.js";import"./chunk-BQNU4HZW.js";import"./chunk-AFKFN25T.js";import"./chunk-G4747MOW.js";import"./chunk-KCJVFLBB.js";import"./chunk-2ACX7IW5.js";import"./chunk-OFJPOTES.js";import"./chunk-L5L3H6CI.js";import"./chunk-2THZ6GZY.js";import"./chunk-OQPJ7FJF.js";import"./chunk-BL3CZWWD.js";import"./chunk-FYWQWKVS.js";import"./chunk-GD3RCUDH.js";import"./chunk-OXRN2257.js";import"./chunk-UTIELP6F.js";import"./chunk-TOWY6Y23.js";import"./chunk-4V73I4OL.js";import"./chunk-LE75SVEL.js";import"./chunk-6ESBAHWK.js";import"./chunk-LZPCA6DH.js";import"./chunk-L3KS6MOV.js";import"./chunk-7J2NMUTK.js";import"./chunk-2Q2AWPP2.js";import"./chunk-W45RKGM6.js";import"./chunk-73COPJ32.js";import"./chunk-UGDBMRCT.js";import"./chunk-AITV76GO.js";import"./chunk-EDYCSW22.js";import"./chunk-Z6HWSTEP.js";import"./chunk-XGY4OQLC.js";import"./chunk-2PVW2XFF.js";import"./chunk-64EDQ7UV.js";import"./chunk-DLOJG7LP.js";import"./chunk-ULTV6INR.js";import"./chunk-XKDOPNQ5.js";import"./chunk-JXLDEYRW.js";import"./chunk-GR4MJJCE.js";import"./chunk-GG6PM7TB.js";import"./chunk-2GEZ3ZY7.js";import"./chunk-BYVE4TMU.js";import"./chunk-LVXL7T5O.js";import"./chunk-HIQPGYVH.js";import"./chunk-3VT2PPKW.js";import"./chunk-5ZBDHIIE.js";import"./chunk-MTP3B2SU.js";import"./chunk-LK77GI6M.js";import"./chunk-HVM2GUM3.js";import"./chunk-I6VMRQF4.js";import"./chunk-D6L6UNUQ.js";import"./chunk-AJXWJLZA.js";import"./chunk-OKKNDQJF.js";import"./chunk-ZEOYNUHL.js";import"./chunk-ZY32SZ2P.js";import"./chunk-OTDDXEQ6.js";import"./chunk-ECOH24MC.js";import"./chunk-EJOV6Z6F.js";import"./chunk-GY7YSD6J.js";import"./chunk-KUE46HTH.js";import"./chunk-MZKCW6CB.js";import"./chunk-6FA3GG5B.js";import"./chunk-SV7ZBEK2.js";import"./chunk-2MEOUS24.js";import"./chunk-HNQPEOJD.js";import"./chunk-RCT3O3HQ.js";import"./chunk-UGOK7VTC.js";import"./chunk-ZFJWA4JK.js";import"./chunk-X2J2P5ZT.js";import"./chunk-FTQLQJQV.js";export{a as resolveWebLaunchMessages,c as runOpenPondAppServerCli,b as runOpenPondServerCli};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
-
import"./chunk-W45RKGM6.js";import{a as fe,b as me,c as ge,d as K,e as q}from"./chunk-
|
|
2
|
+
import"./chunk-W45RKGM6.js";import{a as fe,b as me,c as ge,d as K,e as q}from"./chunk-PYPXP5R3.js";import{b as we}from"./chunk-HBGTHOOB.js";import"./chunk-4DYWVGVS.js";import"./chunk-4TO743HO.js";import"./chunk-A77DLBR4.js";import"./chunk-2EAZB2MW.js";import{A as O,B as R,C as A,D as M,g as Q,i as pe,k as ue,s as C,v as Z,w as T,x as he,y as x,z as B}from"./chunk-4JKWCLTQ.js";import"./chunk-YG3HITOU.js";import"./chunk-AITV76GO.js";import"./chunk-64EDQ7UV.js";import"./chunk-DLOJG7LP.js";import"./chunk-ULTV6INR.js";import"./chunk-XKDOPNQ5.js";import"./chunk-BYVE4TMU.js";import"./chunk-LVXL7T5O.js";import"./chunk-HIQPGYVH.js";import"./chunk-3VT2PPKW.js";import"./chunk-5ZBDHIIE.js";import"./chunk-MTP3B2SU.js";import"./chunk-BZS2PA4O.js";import"./chunk-6LAGMWJE.js";import"./chunk-C7NQPICU.js";import"./chunk-I6VMRQF4.js";import"./chunk-D6L6UNUQ.js";import"./chunk-AJXWJLZA.js";import"./chunk-OKKNDQJF.js";import"./chunk-ZEOYNUHL.js";import{v as $}from"./chunk-ZY32SZ2P.js";import"./chunk-OTDDXEQ6.js";import"./chunk-ECOH24MC.js";import{a as de}from"./chunk-HIMG7S5E.js";import"./chunk-REGKOCDO.js";import{a as le}from"./chunk-JF7WWLNW.js";import"./chunk-BSHAIAXY.js";import"./chunk-XWPC3AN4.js";import{c as E}from"./chunk-3M53YXEI.js";import"./chunk-EJOV6Z6F.js";import"./chunk-GY7YSD6J.js";import"./chunk-KUE46HTH.js";import"./chunk-GLUWATL5.js";import"./chunk-MZKCW6CB.js";import"./chunk-6FA3GG5B.js";import{I as ce,c as L,e as P,f as N}from"./chunk-SV7ZBEK2.js";import"./chunk-2MEOUS24.js";import"./chunk-HNQPEOJD.js";import{n as y}from"./chunk-RCT3O3HQ.js";import"./chunk-UGOK7VTC.js";import"./chunk-5HPZGLOL.js";import"./chunk-ZFJWA4JK.js";import{A as s}from"./chunk-X2J2P5ZT.js";import{a as g}from"./chunk-FTQLQJQV.js";import{readFile as He,realpath as it}from"node:fs/promises";import{resolve as st}from"node:path";var je=[{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,J=/\b(?:\+?1[-.\s]?)?\(?\d{3}\)?[-.\s]\d{3}[-.\s]\d{4}\b/g;function F(n){let o=[],t=n;for(let c of je)c.pattern.lastIndex=0,c.pattern.test(t)&&o.push(c.label),c.pattern.lastIndex=0,t=t.replace(c.pattern,`[REDACTED ${c.label}]`);V.lastIndex=0;let e=V.test(t);V.lastIndex=0,e&&o.push("email address"),t=t.replace(V,"[REDACTED email]"),J.lastIndex=0;let l=J.test(t);return J.lastIndex=0,l&&o.push("phone number"),t=t.replace(J,"[REDACTED phone]"),{secretStatus:o.some(c=>!c.includes("email")&&!c.includes("phone"))?"blocked":"passed",piiStatus:e||l?"review":"passed",findings:o,redacted:t}}g(F,"scanAndRedactEvidence");import{execFile as Be}from"node:child_process";import{promisify as Me}from"node:util";import{access as Ne,realpath as qe,mkdir as $e}from"node:fs/promises";import{join as H,dirname as Ue,resolve as De}from"node:path";var Ve=Me(Be),z=["SessionStart","PreToolUse","PostToolUse","PostToolUseFailure"],ve=s.object({schemaVersion:s.literal("openpond.toolLearningClientInstall.v1"),installationId:s.string(),workspaceRoot:s.string(),clientVersion:s.string(),adapterRelease:s.object({id:s.string(),contentHash:s.string()}),launcher:s.array(s.string()).min(1),command:s.string(),settingsPath:s.string(),installedAt:s.iso.datetime(),configurationHash:s.string(),ownedCommands:s.array(s.string()).min(1).max(32),mcpName:s.string(),ownedMcpHashes:s.array(s.string()).min(1).max(32)}).strict(),Je=g(n=>`'${n.replaceAll("'","'\\''")}'`,"quote"),X=g((n,o)=>H(n,"tool-learning",`client-${y(o)}.json`),"receiptPath");function j(n){if(!n||typeof n!="object"||Array.isArray(n))throw new Error("Claude settings must be a JSON object.");return n}g(j,"object");function Y(n){return n.hooks===void 0?{}:j(n.hooks)}g(Y,"hookGroups");function ee(n){if(n===void 0)return[];if(!Array.isArray(n))throw new Error("Claude hooks must be arrays.");return n}g(ee,"groups");function Fe(n,o){if(!n||typeof n!="object"||Array.isArray(n))return!1;let t=n.hooks;return Array.isArray(t)&&t.some(e=>!!e&&typeof e=="object"&&e.command===o)}g(Fe,"owns");function ye(n,o){return n.flatMap(t=>{if(!t||typeof t!="object"||Array.isArray(t))return[t];let e=t;if(!Array.isArray(e.hooks))return[t];let l=e.hooks.filter(c=>!c||typeof c!="object"||!o.includes(String(c.command)));return l.length?[{...e,hooks:l}]:[]})}g(ye,"withoutOwned");async function te(n,o){let t=await L(X(n,o));return t?ve.parse(JSON.parse(t)):null}g(te,"installedReceipt");async function ne(n,o){if(process.platform==="win32")throw new Error("Claude tool-learning shell hooks are not qualified on Windows yet.");let t=T(n),{value:e}=await x(t,o);if(e.prepared.registration.client!=="claude_code")throw new Error("Select a Claude Code installation.");if(!e.locallyEnabled||e.installation?.state!=="enabled")throw new Error("Enable this registered installation before installing its hooks.");let l=await O(e).installation(o);if(l.state!=="enabled"||l.collectionPolicyHash!==e.installation.collectionPolicyHash)throw new Error("The installation or collection policy changed. Reconfigure it before installing hooks.");if((await Ve("claude",["--version"],{timeout:1e4,maxBuffer:65536})).stdout.trim().split(" ")[0]!==e.prepared.registration.clientVersion)throw new Error("Claude version changed. Register and qualify the installed version before enabling hooks.");let r=await qe(e.workspaceRoot),i=H(r,".claude","settings.local.json"),a=[...!!1&&/\.[cm]?ts$/u.test(process.argv[1]??"")?["/usr/bin/env",`TSX_TSCONFIG_PATH=${De(Ue(process.argv[1]),"../../tsconfig.json")}`]:[],process.execPath,...[...process.execArgv,process.argv[1]],"tool-learning","hook",o,"--home",t];if(a.some(v=>!v||v.includes(`
|
|
3
3
|
`)||v.includes("\r")))throw new Error("Invalid hook launcher.");let u=a.map(Je).join(" "),d=await te(t,o),f=`openpond-tool-learning-${y(o).slice(0,12)}`,m={type:"stdio",command:a[0],args:a.slice(1).map((v,w)=>w===a.indexOf("hook")-1?"mcp":v)},h=ve.parse({schemaVersion:"openpond.toolLearningClientInstall.v1",installationId:o,workspaceRoot:r,clientVersion:e.prepared.registration.clientVersion,adapterRelease:e.prepared.registration.adapterRelease,launcher:a,command:u,settingsPath:i,installedAt:new Date().toISOString(),configurationHash:y({command:u,events:z}),ownedCommands:[...new Set([...d?.ownedCommands??[],u])],mcpName:f,ownedMcpHashes:[...new Set([...d?.ownedMcpHashes??[],y(m)])]});await P(X(t,o),JSON.stringify(h,null,2)+`
|
|
4
4
|
`),await $e(H(r,".claude"),{recursive:!0,mode:448}),await N(H(t,"tool-learning",`settings-${y(i)}`),async()=>{let v=await L(i);if(v&&Buffer.byteLength(v)>1048576)throw new Error("Claude settings exceed 1 MiB.");let w=v?j(JSON.parse(v)):{},k=Y(w);for(let S of z){let I=ye(ee(k[S]),h.ownedCommands);k[S]=[...I,{...S==="SessionStart"?{matcher:"startup|resume|compact"}:{},hooks:[{type:"command",command:u,timeout:8}]}]}w.hooks=k,await P(i,JSON.stringify(w,null,2)+`
|
|
5
5
|
`,{privateParent:!1})});let b=H(r,".mcp.json");return await N(H(t,"tool-learning",`mcp-${y(b)}`),async()=>{let v=await L(b);if(v&&Buffer.byteLength(v)>1048576)throw new Error("MCP configuration exceeds 1 MiB.");let w=v?j(JSON.parse(v)):{},k=w.mcpServers===void 0?{}:j(w.mcpServers);if(k[f]!==void 0&&!h.ownedMcpHashes.includes(y(k[f])))throw new Error("The MCP name contains user changes. Preserve or rename that entry before reinstalling.");k[f]=m,w.mcpServers=k,await P(b,JSON.stringify(w,null,2)+`
|
|
@@ -54,5 +54,5 @@ Inspect tool-learning run --help for optional model and sandbox choices. Reuse C
|
|
|
54
54
|
`),await P(a,f,{privateParent:!1})}),{installationId:o,configuration:"installed",settingsPath:a,clientRestartRequired:!0,clientTrust:l==="codex"?"Use the installed openpond-fix-it skill to launch a captured Codex CLI task. Desktop chats are not observed.":"Restart OpenCode to load the project plugin.",learningEnrollment:!1,consultation:"not_installed"}}g(ae,"installExternalToolLearning");async function Ce(n,o){let t=T(n),e=await re(t,o);if(!e)return{installationId:o,configuration:"already_absent"};let{value:l}=await x(t,o);if(e.workspaceRoot!==l.workspaceRoot||e.client!==l.prepared.registration.client)throw new Error("Capture receipt scope differs from the installation.");return await N(D(t,"tool-learning",`external-settings-${y(e.path)}`),async()=>{if((await Re(e.path).catch(()=>null))?.isSymbolicLink())throw new Error("Capture configuration became a symlink; the file was preserved.");let c=await L(e.path);if(c){if(Buffer.byteLength(c)>1048576)throw new Error("Capture configuration exceeds 1 MiB.");if(!e.owned.includes(y(c)))throw new Error("The installed capture file has user changes; it was preserved.");await Xe(e.path)}}),{installationId:o,configuration:"removed",retainedData:"Saved dataset records have separate retention."}}g(Ce,"uninstallExternalToolLearning");async function Ie(n,o){let t=T(n),{value:e}=await x(t,o),l=await re(t,o),c=await O(e).installation(o),r=[],i=!1;if(l){await Ze(l.launcher[0]);let a=await L(l.path);a&&Buffer.byteLength(a)<=1048576&&(i=l.owned.includes(y(a)));try{await q(l.client)}catch{r.push("The installed client version differs from the qualified adapter.")}}i||r.push("Run tool-learning install for this registered installation.");let p=new C(t);try{let a=p.clientObservations(o),u=p.status(o);return a.some(d=>["start","resume","compact","pre_tool"].includes(String(d.event)))||r.push("Start a captured client session; Codex uses tool-learning run."),(!e.locallyEnabled||c.state!=="enabled")&&r.push("Collection is disabled or revoked."),u.pendingEvents&&r.push("Pending evidence remains queued; run tool-learning flush."),u.droppedEvents&&r.push("Some evidence was excluded by privacy or capacity limits."),{installationId:o,configured:i,remoteState:c.state,locallyEnabled:e.locallyEnabled,observed:a,local:u,issues:r,consultation:"not_installed",learningEnrollment:!1}}finally{p.close()}}g(Ie,"doctorExternalToolLearning");import{realpath as tt}from"node:fs/promises";var nt=s.object({cwd:s.string().min(1).max(4e3),sessionId:s.string().min(1).max(200),event:s.enum(["start","resume","compact","idle","attempt","observation","failure"]),callId:s.string().max(200).optional(),tool:s.string().max(200).optional(),arguments:s.unknown().optional(),text:s.string().optional(),exitCode:s.number().int().nullable().optional()}),ot=s.union([nt,s.object({cwd:s.string().min(1).max(4e3),event:s.literal("flush")})]);async function _e(n,o,t){let e=[],l=0;for await(let h of process.stdin){let b=Buffer.isBuffer(h)?h:Buffer.from(h);if(l+=b.length,l>1048576)throw new Error("capture_input_limit");e.push(b)}let c=JSON.parse(Buffer.concat(e).toString("utf8"));$(c,1048576);let r=ot.parse(c),i=T(n),p=await x(i,o),a=p.value;if(a.prepared.registration.client!==t||!a.locallyEnabled||await tt(r.cwd)!==a.workspaceRoot)return;let u=new C(i);try{if(R(u,a,a.installation),await q(t)!==a.prepared.registration.clientVersion){let h={...a,locallyEnabled:!1};await B(i,h,p.revision),R(u,h,a.installation);return}if(r.event==="flush"){try{await A(i,u,a,AbortSignal.timeout(5e3))}catch{}return}if(["start","resume","compact","idle"].includes(r.event)){r.event!=="idle"&&u.recordClientObservation(o,r.event);try{await A(i,u,a,AbortSignal.timeout(5e3))}catch{}return}u.recordClientObservation(o,r.event==="attempt"?"pre_tool":r.event==="failure"?"failure":"post_tool")}finally{u.close()}if(!r.tool||!r.callId)return;let d={client:t,installationId:o,workspaceRoot:r.cwd,sessionId:r.sessionId,callId:r.callId,tool:r.tool,clientVersion:a.prepared.registration.clientVersion};if(r.event==="attempt"){await M(i,{...d,phase:"attempt",arguments:r.arguments});return}let f=r.exitCode??null,m=r.event==="failure"||f!==null&&f!==0;await M(i,{...d,phase:"observation",result:{outcome:m?"failed":f===0?"succeeded":"incomplete",execution:f===null?"unknown":"executed",sideEffects:"unknown",text:r.text??"",exitCode:f,classification:f!==null&&f!==0?"process_failure":"unknown_failure"}})}g(_e,"runExternalToolLearningHook");import{spawn as rt}from"node:child_process";import{once as Pe}from"node:events";var at=s.object({id:s.string().min(1).max(200),type:s.literal("command_execution"),command:s.string().max(32768),aggregated_output:s.string(),exit_code:s.number().int().nullable(),status:s.enum(["in_progress","completed","failed"])});async function Oe(n,o){if(process.env.OPENPOND_CODEX_CAPTURE_ACTIVE)throw new Error("This Codex task already runs inside a captured session. Continue with its normal tools.");let t=T(n),{value:e}=await x(t,o);if(e.prepared.registration.client!=="codex"||!e.locallyEnabled||e.installation?.state!=="enabled")throw new Error("Select an enabled Codex capture installation.");if(await q("codex")!==e.prepared.registration.clientVersion)throw new Error("Codex version changed; run tool-learning doctor.");let l=E(n,"prompt");if(!l)throw new Error("Use tool-learning run <installation-id> --prompt <task> for a fresh Codex CLI session.");let c=["exec","--json","--cd",e.workspaceRoot],r=E(n,"model"),i=E(n,"sandbox");r&&c.push("--model",r),i&&c.push("--sandbox",s.enum(["read-only","workspace-write"]).parse(i)),c.push("--",l);let p=new C(t);try{R(p,e,e.installation);let a=rt("codex",c,{cwd:e.workspaceRoot,stdio:["inherit","pipe","inherit"],env:{...process.env,OPENPOND_CODEX_CAPTURE_ACTIVE:o}}),u=Pe(a,"close").catch(w=>[null,w]),d=g(()=>a.kill("SIGINT"),"interrupt"),f=g(()=>a.kill("SIGTERM"),"terminate");process.once("SIGINT",d),process.once("SIGTERM",f);let m=null,h="",b=!1,v=g(async w=>{let k;try{k=JSON.parse(w)}catch{return}if(k.type==="thread.started"&&typeof k.thread_id=="string"&&(m=k.thread_id,p.recordClientObservation(o,"start")),!m||!["item.started","item.completed"].includes(k.type))return;let S=at.safeParse(k.item);if(!S.success)return;let I=S.data,ie=k.type==="item.started";p.recordClientObservation(o,ie?"pre_tool":"post_tool");let se={client:"codex",installationId:o,workspaceRoot:e.workspaceRoot,sessionId:m,callId:I.id,tool:"Bash",clientVersion:e.prepared.registration.clientVersion};ie?await M(t,{...se,phase:"attempt",arguments:{command:I.command}}):await M(t,{...se,phase:"observation",result:{outcome:I.exit_code===null?"incomplete":I.exit_code===0?"succeeded":"failed",execution:I.exit_code===null?"unknown":"executed",sideEffects:"unknown",text:I.aggregated_output,exitCode:I.exit_code,classification:"process_failure"}})},"observe");try{a.stdout.setEncoding("utf8");for await(let S of a.stdout){process.stdout.write(S)||await Pe(process.stdout,"drain");for(let I of String(S).split(/(?<=\n)/u))if(b||(h+=I,Buffer.byteLength(h)>1048576&&(h="",b=!0,p.recordDropped(o))),I.endsWith(`
|
|
55
55
|
`)){if(!b)try{await v(h)}catch{process.stderr.write(`Fix-it capture unavailable; run tool-learning doctor.
|
|
56
56
|
`)}h="",b=!1}}let[w,k]=await u;if(k instanceof Error)throw k;(w!==0||k)&&(process.exitCode=typeof w=="number"?w:1);try{await A(t,p,e,AbortSignal.timeout(5e3))}catch{process.stderr.write(`Fix-it evidence remains queued; run tool-learning flush.
|
|
57
|
-
`)}}finally{process.removeListener("SIGINT",d),process.removeListener("SIGTERM",f),a.exitCode===null&&a.kill("SIGTERM")}}finally{p.close()}}g(Oe,"runCodexWithCapture");var _=g(n=>console.log(JSON.stringify(n,null,2)),"print");async function W(n){let o=E(n,"inputFile");if(!o)throw new Error("This operation requires --input-file <absolute-json-path>.");let t=await He(o);if(t.byteLength>2097152)throw new Error("Tool learning input exceeds 2 MiB.");let e=JSON.parse(t.toString("utf8"));return $(e,2097152),e}g(W,"inputJson");async function Ae(n,o){let t=null,e=E(n,"environmentFile");if(e){let b=await He(e);if(b.byteLength>16384)throw new Error("Environment context exceeds 16 KiB.");let v=Q.partial({fingerprint:!0}).parse(JSON.parse(b.toString("utf8")));t=Q.parse({...v,fingerprint:v.fingerprint??y(v)});let w=F(JSON.stringify(t));if(w.secretStatus!=="passed"||w.piiStatus!=="passed")throw new Error("Remove private data from the environment context.")}let l=ue.parse(o??await W(n));if(!["claude_code","openpond","codex","opencode"].includes(l.client))throw new Error("This client is outside the current tool learning release.");if(E(n,"projectId")&&E(n,"projectId")!==l.projectId)throw new Error("The selected Model Project differs from the registration.");let c=T(n),r=await it(st(E(n,"workspace")||E(n,"cwd")||process.cwd()));if(!l.collectionPolicy.workspaceRootHashes.includes(y(r)))throw new Error("The collection policy must explicitly include this workspace root hash.");let{context:i,baseUrl:p,teamId:a}=await de(n),u=l.installationId,d=await ce(c,he(u)),f=d?.revision??null,m;if(d){if(m=Z.parse(d.value),m.apiOrigin!==new URL(p).origin||m.teamId!==a||m.workspaceRoot!==r||y(m.prepared.registration)!==y(l)||e!==""&&y(m.environment)!==y(t))throw new Error("This installation is already bound to different registration bytes or workspace. Use a new installation ID.")}else m=Z.parse({schemaVersion:"openpond.toolLearningLocalCredential.v1",apiOrigin:new URL(p).origin,teamId:a,projectId:l.projectId,workspaceRoot:r,ownerAccount:i.account?.handle??null,locallyEnabled:!0,environment:t,prepared:me(l,E(n,"expiresAt")||new Date(Date.now()+30*864e5).toISOString()),installation:null}),f=await B(c,m,null);let h=new C(c);try{R(h,m,null);let v=await new ge({fetch:le,baseUrl:p,apiKey:i.token,teamId:a,projectId:l.projectId}).register(m.prepared);return m={...m,installation:v.installation},await B(c,m,f),R(h,m,v.installation),{installation:v.installation,local:h.status(u),credentials:"stored_privately",learningEnrollment:!1}}finally{h.close()}}g(Ae,"register");async function $n(n,o){let[t,e,l]=o;if(!t||!["register","setup","run","routing","configure","install","doctor","uninstall","hook","opencode-hook","mcp","status","append","flush","episodes","episode","project","disable","enable","revoke","purge"].includes(t)||o.length>(t==="episode"?3:2))throw new Error("Use tool-learning <register|status|append|flush|episodes|episode|project|disable|enable|revoke|purge> [installation-id].");if(t==="setup"){if(e)throw new Error("Setup takes --project-id, not an installation argument.");let a=await(await import("./setup-
|
|
58
|
-
`)}return}if(t==="mcp"){await(await import("./tool-learning-
|
|
57
|
+
`)}}finally{process.removeListener("SIGINT",d),process.removeListener("SIGTERM",f),a.exitCode===null&&a.kill("SIGTERM")}}finally{p.close()}}g(Oe,"runCodexWithCapture");var _=g(n=>console.log(JSON.stringify(n,null,2)),"print");async function W(n){let o=E(n,"inputFile");if(!o)throw new Error("This operation requires --input-file <absolute-json-path>.");let t=await He(o);if(t.byteLength>2097152)throw new Error("Tool learning input exceeds 2 MiB.");let e=JSON.parse(t.toString("utf8"));return $(e,2097152),e}g(W,"inputJson");async function Ae(n,o){let t=null,e=E(n,"environmentFile");if(e){let b=await He(e);if(b.byteLength>16384)throw new Error("Environment context exceeds 16 KiB.");let v=Q.partial({fingerprint:!0}).parse(JSON.parse(b.toString("utf8")));t=Q.parse({...v,fingerprint:v.fingerprint??y(v)});let w=F(JSON.stringify(t));if(w.secretStatus!=="passed"||w.piiStatus!=="passed")throw new Error("Remove private data from the environment context.")}let l=ue.parse(o??await W(n));if(!["claude_code","openpond","codex","opencode"].includes(l.client))throw new Error("This client is outside the current tool learning release.");if(E(n,"projectId")&&E(n,"projectId")!==l.projectId)throw new Error("The selected Model Project differs from the registration.");let c=T(n),r=await it(st(E(n,"workspace")||E(n,"cwd")||process.cwd()));if(!l.collectionPolicy.workspaceRootHashes.includes(y(r)))throw new Error("The collection policy must explicitly include this workspace root hash.");let{context:i,baseUrl:p,teamId:a}=await de(n),u=l.installationId,d=await ce(c,he(u)),f=d?.revision??null,m;if(d){if(m=Z.parse(d.value),m.apiOrigin!==new URL(p).origin||m.teamId!==a||m.workspaceRoot!==r||y(m.prepared.registration)!==y(l)||e!==""&&y(m.environment)!==y(t))throw new Error("This installation is already bound to different registration bytes or workspace. Use a new installation ID.")}else m=Z.parse({schemaVersion:"openpond.toolLearningLocalCredential.v1",apiOrigin:new URL(p).origin,teamId:a,projectId:l.projectId,workspaceRoot:r,ownerAccount:i.account?.handle??null,locallyEnabled:!0,environment:t,prepared:me(l,E(n,"expiresAt")||new Date(Date.now()+30*864e5).toISOString()),installation:null}),f=await B(c,m,null);let h=new C(c);try{R(h,m,null);let v=await new ge({fetch:le,baseUrl:p,apiKey:i.token,teamId:a,projectId:l.projectId}).register(m.prepared);return m={...m,installation:v.installation},await B(c,m,f),R(h,m,v.installation),{installation:v.installation,local:h.status(u),credentials:"stored_privately",learningEnrollment:!1}}finally{h.close()}}g(Ae,"register");async function $n(n,o){let[t,e,l]=o;if(!t||!["register","setup","run","routing","configure","install","doctor","uninstall","hook","opencode-hook","mcp","status","append","flush","episodes","episode","project","disable","enable","revoke","purge"].includes(t)||o.length>(t==="episode"?3:2))throw new Error("Use tool-learning <register|status|append|flush|episodes|episode|project|disable|enable|revoke|purge> [installation-id].");if(t==="setup"){if(e)throw new Error("Setup takes --project-id, not an installation argument.");let a=await(await import("./setup-IVT2FQSE.js")).prepareToolLearningSetup(n),u=await Ae(n,a),d=a.client==="claude_code"?await ne(n,a.installationId):a.client==="codex"||a.client==="opencode"?await ae(n,a.installationId):{bundled:!0,restartSession:!0};_({...u,integration:d,next:"Restart the client, then run tool-learning doctor. Review evidence separately before training."});return}if(t==="register"){if(e)throw new Error("Registration takes --input-file, not an installation argument.");_(await Ae(n));return}if(!e)throw new Error("Select a tool learning installation ID.");if(["hook","opencode-hook"].includes(t)){try{t==="hook"?await Te(n,e):await _e(n,e,"opencode")}catch{process.stderr.write(`OpenPond capture was unavailable; run tool-learning doctor.
|
|
58
|
+
`)}return}if(t==="mcp"){await(await import("./tool-learning-NXVR4YPA.js")).runToolLearningMcp(T(n),e);return}if(t==="run"){await Oe(n,e);return}if(t==="install"){let{value:a}=await x(T(n),e);_(await(a.prepared.registration.client==="codex"||a.prepared.registration.client==="opencode"?ae:ne)(n,e));return}if(t==="doctor"){let{value:a}=await x(T(n),e);_(await(a.prepared.registration.client==="codex"||a.prepared.registration.client==="opencode"?Ie:be)(n,e));return}let c=T(n),r=await x(c,e),i=r.value,p=new C(c);try{if(t==="routing"||t==="configure"){let d=await K(n,i);_(t==="routing"?await d.routing(e):await d.configureRouting(e,fe.parse(await W(n))));return}if(t==="status"){let d=!i.installation||i.installation.state==="revoked"?i.installation:await O(i).installation(e);d&&R(p,i,d),_({installation:d,registrationPending:d===null,locallyEnabled:i.locallyEnabled,local:p.status(e),learningEnrollment:!1});return}if(t==="append"){if(!i.locallyEnabled||!i.installation)throw new Error("This installation is disabled or has not completed registration.");let d=pe.parse(await W(n));if(d.installationId!==e)throw new Error("Append belongs to another installation.");R(p,i,i.installation);for(let f of d.events){let m=F(JSON.stringify(f.payload));if(m.secretStatus!=="passed"||m.piiStatus!=="passed")throw new Error("Remove private data before adding this event to the local queue.");let h=p.append(f);if(!["retained","already_retained"].includes(h))throw new Error(`Tool learning capture could not retain this event: ${h}.`)}}if(t==="append"||t==="flush"){let d=Number(E(n,"timeoutSec")||"10");if(!Number.isInteger(d)||d<1||d>60)throw new Error("--timeout-sec must be between 1 and 60.");_(await A(c,p,i,AbortSignal.timeout(d*1e3)));return}let a=await K(n,i);if(t==="episodes"){_(await a.episodes(e,E(n,"after")||void 0));return}if(t==="episode"){if(!l)throw new Error("Select an episode ID.");_(await a.episode(e,l));return}if(t==="project"){_(await a.project(e,await W(n)));return}let u=t==="disable"?"disabled":t==="enable"?"enabled":t==="revoke"||t==="uninstall"?"revoked":null;if(u){u!=="enabled"&&(i={...i,locallyEnabled:!1},r={revision:await B(c,i,r.revision),value:i},R(p,i,null));let d=await a.installation(e),f=d.state===u?d:await a.setState(e,{operationId:crypto.randomUUID(),expectedRevision:d.revision,state:u});i={...i,installation:f,locallyEnabled:u==="enabled"},await B(c,i,r.revision),R(p,i,f),_({installation:f,locallyEnabled:i.locallyEnabled,local:p.status(e),...t==="uninstall"?{client:await(i.prepared.registration.client==="codex"||i.prepared.registration.client==="opencode"?Ce:ke)(n,e)}:{}});return}if(t==="purge"){let d=await a.installation(e);_(await a.purge(e,{operationId:crypto.randomUUID(),expectedRevision:d.revision}));return}throw new Error("Unknown tool learning operation.")}finally{p.close()}}g($n,"runToolLearningCommand");export{$n as runToolLearningCommand};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
-
import{a as f}from"./chunk-
|
|
2
|
+
import{a as f}from"./chunk-KUEVP7WM.js";import"./chunk-KTQWWCP2.js";import"./chunk-XRKFTPHD.js";import"./chunk-3M53YXEI.js";import{H as J,W as N,X as q,_ as k,aa as A,b as d,ba as B,c as w,e as b,ea as H,fa as I,na as E,oa as M,p as C,pa as T,r as m,s as j,t as x,u as F,v,w as P}from"./chunk-SV7ZBEK2.js";import"./chunk-2MEOUS24.js";import"./chunk-HNQPEOJD.js";import"./chunk-RCT3O3HQ.js";import{d as O,f as S,h as g}from"./chunk-UGOK7VTC.js";import"./chunk-ZFJWA4JK.js";import"./chunk-X2J2P5ZT.js";import{a as l}from"./chunk-FTQLQJQV.js";import R from"node:path";import{readFile as p}from"node:fs/promises";var n=l((t,s)=>typeof t[s]=="string"?t[s]:void 0,"stringOption");function a(t){console.log(JSON.stringify(t,null,2))}l(a,"print");function U(t,s){let i=n(t,"keyPath");if(i){let r=JSON.parse(i);if(Array.isArray(r)&&r.length&&r.every(c=>typeof c=="string"&&c.length))return r;throw new f("--key-path must be a JSON array of key segments.")}if(!s)throw new f("Specify a setting key, or --key-path for keys containing dots.");return s.split(".")}l(U,"keyPath");async function G(t,s){let i=S({home:n(t,"home")}),r=s[0]??"get",c=g(i).config;if(r==="path"){console.log(c);return}if(r==="export"){let e=await T(i),o=n(t,"file");o?(await b(R.resolve(o),JSON.stringify(e,null,2),{privateParent:!1}),a({path:R.resolve(o),requiresRebinding:e.requiresRebinding})):a(e);return}if(r==="backup"||r==="restore"){let e=n(t,"file"),o=n(t,"keyFile");if(!e||!o)throw new f(`config ${r} requires --file <encrypted-backup> and --key-file <separate-32-byte-key-file>.`);let u=await p(o),y=u.length===32?u:Buffer.from(u.toString("utf8").trim(),"base64");try{a(r==="backup"?await E(i,e,y):await M(e,i,y))}finally{y.fill(0),u.fill(0)}return}if(r==="collect-orphans"){a(await N(i));return}if(r==="schema"){a(F());return}if(r==="migrate"){let e=n(t,"resolutionFile"),o=e?q.parse(JSON.parse(await p(e,"utf8"))):void 0;a(await k(i,{resolutions:o,sourceAppHome:n(t,"sourceAppHome"),sourceConfig:n(t,"sourceConfig"),sourceBrowserState:n(t,"sourceBrowserState"),dryRun:t.dryRun===!0||t.dryRun==="true"}));return}if(r==="recover"){let e=n(t,"revision");a(e?await x(i,e,n(t,"expectedRevision")??d(await w(c))):await A(i));return}if(r==="restart-migration"){a(await B(i));return}if(r==="effective"){a(await I(i,{projectRoot:n(t,"projectRoot"),accountId:n(t,"accountId")}));return}if(r==="trust"||r==="untrust"){let e=n(t,"projectRoot")??s[1];if(!e)throw new f("Specify the canonical project root with --project-root.");await H(i,e,n(t,"accountId")??"local",r==="trust"),a({root:e,trusted:r==="trust"});return}if(r==="revisions"){a(await m(i));return}if(r==="validate"){let e=n(t,"file")??c;C(await p(e,"utf8"),e,t.project===!0||t.project==="true"?"project":"user"),a({valid:!0,path:e});return}if(r==="replace"){let e=n(t,"file");if(!e)throw new f("config replace requires --file <validated-toml-file>.");a(await j(i,n(t,"expectedRevision")??d(await w(c)),await p(e,"utf8")));return}if(r==="doctor"){let e=await w(c),o=null;try{await v(i)}catch(u){o=O(u,c)}a({home:i,path:c,rawRevision:d(e),issue:o,recoverableRevisions:await m(i),migration:await w(R.join(g(i).runtime,"migration.json"))!==null}),o&&(process.exitCode=1);return}if(await k(i),r==="clear-cache"){await J(i),a({cleared:!0,path:g(i).cache});return}let h=await v(i);if(r==="get"){if(!s[1]&&!t.keyPath){a(h);return}let e=h.document;for(let o of U(t,s[1]))e=e&&typeof e=="object"?e[o]:void 0;a(e??null);return}if(r==="set"||r==="unset"){let e=U(t,s[1]),o;if(r==="set"){let u=n(t,"value")??s[2];if(u===void 0)throw new f("config set requires a value. Use JSON for arrays, tables, numbers and booleans.");try{o=JSON.parse(u)}catch{o=u}}a(await P(i,n(t,"expectedRevision")??h.rawRevision,[r==="set"?{op:"set",path:e,value:o}:{op:"unset",path:e}]));return}throw new f(`Unknown config command: ${r}`)}l(G,"runConfigurationCommand");export{G as runConfigurationCommand};
|