openpond 0.2.65 → 0.2.67
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.d.ts +23 -0
- package/dist/app-server.js +1 -1
- package/dist/chunks/{acp-PHMBLRCV.js → acp-NASAJV5E.js} +1 -1
- package/dist/chunks/{acp-agent-A7GK2VSH.js → acp-agent-C3CRF6DT.js} +1 -1
- package/dist/chunks/{actions-command-VLKMHCMI.js → actions-command-BYPLSGZL.js} +1 -1
- package/dist/chunks/{app-layer-J66CQ2QN.js → app-layer-XIEZ6ALX.js} +1 -1
- package/dist/chunks/{app-server-evaluations-V6LRWDUF.js → app-server-evaluations-5YZUFXQ2.js} +1 -1
- package/dist/chunks/{app-server-harness-services-6ZRLA3YD.js → app-server-harness-services-N5F5QVZI.js} +1 -1
- package/dist/chunks/{app-server-runtime-OMR2VE6L.js → app-server-runtime-HJ2N57DL.js} +1 -1
- package/dist/chunks/{apps-IHUFERZO.js → apps-WJTW64NW.js} +1 -1
- package/dist/chunks/{chunk-ZWW227M3.js → chunk-263WS3TB.js} +1 -1
- package/dist/chunks/{chunk-HX6GXMDK.js → chunk-26ID6A5C.js} +1 -1
- package/dist/chunks/{chunk-DSJZS77R.js → chunk-2RSGVLZT.js} +4 -4
- package/dist/chunks/{chunk-L4EJ5R3B.js → chunk-2UZHLO2V.js} +1 -1
- package/dist/chunks/{chunk-QYQZQVVN.js → chunk-375PADDM.js} +1 -1
- package/dist/chunks/{chunk-FUFI4THX.js → chunk-43QYVOYA.js} +1 -1
- package/dist/chunks/{chunk-H5ML7735.js → chunk-46RMTR2Z.js} +1 -1
- package/dist/chunks/{chunk-Z2TOBS3P.js → chunk-4B7EGNYX.js} +1 -1
- package/dist/chunks/{chunk-2GJD23CM.js → chunk-4EZI4KCT.js} +1 -1
- package/dist/chunks/{chunk-DMO3UIS7.js → chunk-4JJ4RYIB.js} +1 -1
- package/dist/chunks/{chunk-UM6EQOT2.js → chunk-4NN5OLKW.js} +2 -2
- package/dist/chunks/{chunk-66HFW4OU.js → chunk-4VZJQRQI.js} +1 -1
- package/dist/chunks/{chunk-7PKTCMZ6.js → chunk-543QHE3D.js} +1 -1
- package/dist/chunks/{chunk-TVDZXDQW.js → chunk-5QOFUGYQ.js} +1 -1
- package/dist/chunks/{chunk-6S2MWJVD.js → chunk-5TPYBXWM.js} +1 -1
- package/dist/chunks/{chunk-WLZJOCLA.js → chunk-5ZNE43XC.js} +1 -1
- package/dist/chunks/{chunk-KOKBDIGR.js → chunk-6HQUIKC5.js} +1 -1
- package/dist/chunks/{chunk-3BJ7LPE3.js → chunk-6IS5OLI5.js} +1 -1
- package/dist/chunks/{chunk-VS3AMJEK.js → chunk-6LFTQBXP.js} +1 -1
- package/dist/chunks/{chunk-VD2TQCMH.js → chunk-7HAGSE7L.js} +1 -1
- package/dist/chunks/{chunk-NTM3KQ25.js → chunk-ADOCQA4D.js} +1 -1
- package/dist/chunks/{chunk-4D3CICBG.js → chunk-ATFV2NA4.js} +1 -1
- package/dist/chunks/{chunk-YU4JYWCA.js → chunk-AXO6OHJB.js} +1 -1
- package/dist/chunks/{chunk-5KJMFK65.js → chunk-AXYAEWWA.js} +1 -1
- package/dist/chunks/{chunk-Q4AXZY2P.js → chunk-B2K5WQZE.js} +1 -1
- package/dist/chunks/{chunk-ANG2YMMD.js → chunk-B7XJBP4U.js} +1 -1
- package/dist/chunks/{chunk-E2S2EMYQ.js → chunk-BBIA24GD.js} +6 -6
- package/dist/chunks/{chunk-CYQLXS2U.js → chunk-BUZ7CBJC.js} +1 -1
- package/dist/chunks/{chunk-MVPKU72J.js → chunk-CJDGLPNX.js} +1 -1
- package/dist/chunks/{chunk-ZU3YBRXS.js → chunk-CSU7RDA5.js} +1 -1
- package/dist/chunks/{chunk-JLW5BQVO.js → chunk-CWAQOFLP.js} +1 -1
- package/dist/chunks/{chunk-WKHGXLJD.js → chunk-CX7HKSQ4.js} +2 -2
- package/dist/chunks/{chunk-M5QPL5NO.js → chunk-D5OFN47Z.js} +1 -1
- package/dist/chunks/{chunk-QCJY6FTC.js → chunk-FCXDPVGJ.js} +1 -1
- package/dist/chunks/{chunk-FEQ7HNJR.js → chunk-FE2ENE3U.js} +1 -1
- package/dist/chunks/{chunk-6TRVEA3T.js → chunk-FVK4W27G.js} +1 -1
- package/dist/chunks/{chunk-7FBWUVX7.js → chunk-GC6RJBRZ.js} +1 -1
- package/dist/chunks/{chunk-5Z3AU5CL.js → chunk-H2XG5N7D.js} +1 -1
- package/dist/chunks/chunk-H6EUFJJK.js +2 -0
- package/dist/chunks/{chunk-V3S2B6WU.js → chunk-IDILAYCW.js} +1 -1
- package/dist/chunks/{chunk-KGUPAPGR.js → chunk-IF5A3XWP.js} +1 -1
- package/dist/chunks/chunk-IHAEZ73V.js +2 -0
- package/dist/chunks/{chunk-GDJ4X2ZN.js → chunk-IR2Y2VQY.js} +1 -1
- package/dist/chunks/{chunk-WBO6FQHR.js → chunk-IXZ5ZGIL.js} +1 -1
- package/dist/chunks/{chunk-67HXM6AL.js → chunk-K3LS5SK7.js} +1 -1
- package/dist/chunks/{chunk-4MQHIFZL.js → chunk-K6DB5QWG.js} +1 -1
- package/dist/chunks/{chunk-QJJNHKLT.js → chunk-KQD36SBJ.js} +1 -1
- package/dist/chunks/{chunk-LXZLLTYQ.js → chunk-LI56PPCN.js} +1 -1
- package/dist/chunks/{chunk-KAWXVMHI.js → chunk-MX7KV5DA.js} +1 -1
- package/dist/chunks/{chunk-LARJARMS.js → chunk-N54CPLVD.js} +1 -1
- package/dist/chunks/{chunk-JRGECNP3.js → chunk-OE2OOWEQ.js} +1 -1
- package/dist/chunks/{chunk-B32CW3NT.js → chunk-OY4B7Y3T.js} +1 -1
- package/dist/chunks/chunk-OYIFH2OM.js +2 -0
- package/dist/chunks/{chunk-C5B3FMV3.js → chunk-P6NQYXN6.js} +1 -1
- package/dist/chunks/{chunk-D7R2AAX2.js → chunk-QFL2VQKX.js} +1 -1
- package/dist/chunks/{chunk-Y3B6ZUE6.js → chunk-QOUOU7FE.js} +1 -1
- package/dist/chunks/{chunk-GIU3Z45P.js → chunk-QQLS5FB7.js} +1 -1
- package/dist/chunks/chunk-R5GRESW3.js +2 -0
- package/dist/chunks/{chunk-6ZTP6CUJ.js → chunk-R6MMWEH4.js} +1 -1
- package/dist/chunks/{chunk-XHBMK6LC.js → chunk-R6VI7MX5.js} +1 -1
- package/dist/chunks/{chunk-GFAI2MCJ.js → chunk-RS526BG7.js} +1 -1
- package/dist/chunks/{chunk-EVQISX7M.js → chunk-RWRKUO5D.js} +1 -1
- package/dist/chunks/{chunk-DXA2UHBE.js → chunk-SD2XDZQW.js} +1 -1
- package/dist/chunks/{chunk-S6UCVXBC.js → chunk-SODAOLAP.js} +1 -1
- package/dist/chunks/{chunk-UK5LGSGT.js → chunk-SVNEPXU3.js} +1 -1
- package/dist/chunks/{chunk-5WPMI6QX.js → chunk-TERKCK4I.js} +1 -1
- package/dist/chunks/{chunk-OKEC2EIE.js → chunk-TS5HNRZB.js} +1 -1
- package/dist/chunks/{chunk-5KWKSR4P.js → chunk-TSQ2I6XV.js} +1 -1
- package/dist/chunks/{chunk-YRDPVTEI.js → chunk-TV2LE2BD.js} +1 -1
- package/dist/chunks/chunk-U3MVH2YT.js +2 -0
- package/dist/chunks/{chunk-FS2VKOT7.js → chunk-UBTP3QWI.js} +1 -1
- package/dist/chunks/{chunk-7XOUM6RK.js → chunk-UKSSFB4Q.js} +1 -1
- package/dist/chunks/{chunk-W7NXFRHN.js → chunk-UNE52L3Y.js} +1 -1
- package/dist/chunks/{chunk-ZUT4EM64.js → chunk-UXO33ST5.js} +1 -1
- package/dist/chunks/{chunk-FHLSLOKH.js → chunk-V3ILZQER.js} +1 -1
- package/dist/chunks/chunk-V3T2OJBZ.js +33 -0
- package/dist/chunks/{chunk-QAEZNFAM.js → chunk-V5AOM5MZ.js} +1 -1
- package/dist/chunks/{chunk-LI3FTPAH.js → chunk-VEXJV5H5.js} +1 -1
- package/dist/chunks/{chunk-AF3AVDPP.js → chunk-VPAEFG7X.js} +1 -1
- package/dist/chunks/{chunk-FGOTSCSE.js → chunk-W3ZILZUL.js} +1 -1
- package/dist/chunks/{chunk-U2BD545L.js → chunk-WD6ANOLL.js} +1 -1
- package/dist/chunks/{chunk-OTUS7NTQ.js → chunk-WDKZMXIU.js} +1 -1
- package/dist/chunks/chunk-WGISITX6.js +4 -0
- package/dist/chunks/{chunk-55Q64WWF.js → chunk-XD4ZIQZ2.js} +1 -1
- package/dist/chunks/{chunk-W22KWKF6.js → chunk-XDFXKRTI.js} +1 -1
- package/dist/chunks/{chunk-GRLQHYAU.js → chunk-XEU4J4GJ.js} +1 -1
- package/dist/chunks/{chunk-IEVJLG3V.js → chunk-XGJG2ZKE.js} +1 -1
- package/dist/chunks/chunk-XHU4BZQY.js +13 -0
- package/dist/chunks/{chunk-DIDQHTAX.js → chunk-XKZ4PFMQ.js} +1 -1
- package/dist/chunks/{chunk-B666Z2NS.js → chunk-XT5WUQGT.js} +1 -1
- package/dist/chunks/{chunk-N2AV7PHV.js → chunk-YKTJPCYZ.js} +3 -3
- package/dist/chunks/{chunk-5AU5Y6KS.js → chunk-YMCF5GR2.js} +1 -1
- package/dist/chunks/{chunk-LYVHYT3L.js → chunk-YONDU5TN.js} +1 -1
- package/dist/chunks/{chunk-BTJACFU3.js → chunk-YQBL5P6R.js} +1 -1
- package/dist/chunks/{chunk-SAZTOGX6.js → chunk-YR5URT73.js} +1 -1
- package/dist/chunks/{chunk-OXRVILDW.js → chunk-ZVMQLIRA.js} +1 -1
- package/dist/chunks/{chunk-MHPCVQOE.js → chunk-ZWEY66RT.js} +1 -1
- package/dist/chunks/cli-HV32F7HD.js +2 -0
- package/dist/chunks/command-NWOZXU57.js +58 -0
- package/dist/chunks/{configuration-command-465ODYTC.js → configuration-command-ZEIBQKB3.js} +1 -1
- package/dist/chunks/{connected-app-executor-7DYMZCD7.js → connected-app-executor-DFHWNMRM.js} +1 -1
- package/dist/chunks/{connected-evidence-XPAZQRFQ.js → connected-evidence-WOM6N5HO.js} +1 -1
- package/dist/chunks/{connected-starting-assets-2YX3QVDB.js → connected-starting-assets-66Y46ZPM.js} +1 -1
- package/dist/chunks/{continual-HQCFY7GN.js → continual-TNPTWTKK.js} +1 -1
- package/dist/chunks/{core-commands-PJOGRBHJ.js → core-commands-GWRHH53F.js} +1 -1
- package/dist/chunks/{dataset-preparation-authoring-KWRTMKN6.js → dataset-preparation-authoring-WJ2XEUO7.js} +1 -1
- package/dist/chunks/{datasets-OTE2I4VT.js → datasets-XIMF54QN.js} +1 -1
- package/dist/chunks/{desktop-test-Q6REQJ7K.js → desktop-test-HF42V2EP.js} +1 -1
- package/dist/chunks/dist-T6ES2TSM.js +2 -0
- package/dist/chunks/{evaluation-coordination-KRCY2H4C.js → evaluation-coordination-WZT6FDMS.js} +1 -1
- package/dist/chunks/{experiment-improvements-7MI2VYBR.js → experiment-improvements-H35VS6XZ.js} +1 -1
- package/dist/chunks/{experiments-CNUQKJZE.js → experiments-F54C32EE.js} +1 -1
- package/dist/chunks/{experiments-signal-4N344D4Y.js → experiments-signal-ONIGTGYR.js} +1 -1
- package/dist/chunks/{help-ZUKVY6RO.js → help-O53DTZGN.js} +1 -1
- package/dist/chunks/host-profile-evaluation-tools-LMCJ3MDJ.js +2 -0
- package/dist/chunks/{host-profile-external-dataset-YRKG2GL5.js → host-profile-external-dataset-4HOXANWK.js} +1 -1
- package/dist/chunks/{hosted-app-server-composition-DWSU6ASL.js → hosted-app-server-composition-Y64A2A2B.js} +1 -1
- package/dist/chunks/{hosted-experiment-improvement-NZTPZTDH.js → hosted-experiment-improvement-B2V2WIUI.js} +1 -1
- package/dist/chunks/hosted-harness-runtime-C7I4KSDK.js +2 -0
- package/dist/chunks/{hosted-profile-candidate-3CAT3XBI.js → hosted-profile-candidate-CXPVEEYQ.js} +1 -1
- package/dist/chunks/{hosted-profile-compiler-RXU626Q6.js → hosted-profile-compiler-FGCI2VRW.js} +1 -1
- package/dist/chunks/{hosted-profile-evaluation-control-CBDRKJ5J.js → hosted-profile-evaluation-control-INNUYMBD.js} +1 -1
- package/dist/chunks/{hosted-profile-evaluation-inspection-CHYKDYUQ.js → hosted-profile-evaluation-inspection-UPTBRYMS.js} +1 -1
- package/dist/chunks/{hosted-profile-evaluation-preparation-H5S7JZMD.js → hosted-profile-evaluation-preparation-TIQSVKLQ.js} +1 -1
- package/dist/chunks/{hosted-tasksets-AMGDDB2R.js → hosted-tasksets-7VMYOTIO.js} +1 -1
- package/dist/chunks/{human-review-HOBGC6RC.js → human-review-7XC77NQP.js} +1 -1
- package/dist/chunks/{import-Q3YRFVY7.js → import-OBAKUJPM.js} +1 -1
- package/dist/chunks/javascript-isolate-process-source-YAT3GPW4.js +2 -0
- package/dist/chunks/javascript-verifier-worker-source-LGRP74W4.js +2 -0
- package/dist/chunks/learning-3XDGIYUL.js +2 -0
- package/dist/chunks/{learning-XTY5VOTK.js → learning-CRR6NRPN.js} +1 -1
- package/dist/chunks/{local-harness-improvement-runtime-XEA73RGS.js → local-harness-improvement-runtime-UIKQSAMM.js} +1 -1
- package/dist/chunks/{local-harness-taskset-review-SW35G4DM.js → local-harness-taskset-review-6KJN3EQL.js} +1 -1
- package/dist/chunks/{model-projects-GHWCKDON.js → model-projects-HP4DELCP.js} +1 -1
- package/dist/chunks/{opchat-2LLDIWEJ.js → opchat-NWYWWIA7.js} +1 -1
- package/dist/chunks/{opchat-bounded-chat-FLDS36LU.js → opchat-bounded-chat-ICURZM6R.js} +1 -1
- package/dist/chunks/{organizations-VIFSOY6P.js → organizations-7DBQGCCV.js} +1 -1
- package/dist/chunks/{profile-KIHMW2WB.js → profile-3WZJ65CT.js} +1 -1
- package/dist/chunks/{project-action-payload-2G57RL74.js → project-action-payload-7DRABTHY.js} +1 -1
- package/dist/chunks/{project-agent-TJLQNMLA.js → project-agent-AXJOWXRU.js} +1 -1
- package/dist/chunks/{published-experiment-source-D3C2AWQD.js → published-experiment-source-YBBPLNF2.js} +1 -1
- package/dist/chunks/{refiner-profile-service-PPGGNVOV.js → refiner-profile-service-ATEFPF5O.js} +1 -1
- package/dist/chunks/{runtime-VSOOPNYN.js → runtime-XP4DEGR3.js} +1 -1
- package/dist/chunks/{sandbox-command-CQO6BEMQ.js → sandbox-command-CF2PJCFX.js} +1 -1
- package/dist/chunks/{sandbox-template-MU33IILL.js → sandbox-template-YFMHEMUQ.js} +1 -1
- package/dist/chunks/{saved-work-LAVTNKPT.js → saved-work-3OAVRBH3.js} +1 -1
- package/dist/chunks/setup-RHIMFI2Y.js +2 -0
- package/dist/chunks/{src-662QOKNP.js → src-GQPWOPYA.js} +1 -1
- package/dist/chunks/{src-CHQVWHV7.js → src-V236S6MV.js} +112 -112
- package/dist/chunks/{standalone-experiment-turn-owner-KKYIGGPF.js → standalone-experiment-turn-owner-CDRMGLWW.js} +1 -1
- package/dist/chunks/{store-chat-resources-ZWDYMDJF.js → store-chat-resources-P4EKCLSY.js} +1 -1
- package/dist/chunks/{store-continual-support-reviews-7PDLGRWF.js → store-continual-support-reviews-VVRQO2JK.js} +1 -1
- package/dist/chunks/{store-conversation-serving-WRT4N7N2.js → store-conversation-serving-YFEZYQD3.js} +1 -1
- package/dist/chunks/{store-create-improve-G46KIUVT.js → store-create-improve-2XI36AET.js} +1 -1
- package/dist/chunks/{store-datasets-O67F75BL.js → store-datasets-UFY422NG.js} +1 -1
- package/dist/chunks/{store-evaluation-results-BEPR4LVD.js → store-evaluation-results-VBH4R2U7.js} +1 -1
- package/dist/chunks/{store-harness-workspaces-PJJQ74G6.js → store-harness-workspaces-SGUEYDO2.js} +1 -1
- package/dist/chunks/{store-human-review-HJ3D7ZFA.js → store-human-review-RFCVZ3HP.js} +1 -1
- package/dist/chunks/{store-learned-preference-migration-validation-EXNRDHCO.js → store-learned-preference-migration-validation-FNBGGZU6.js} +1 -1
- package/dist/chunks/{store-learning-6P6IS7GH.js → store-learning-BFOT4QVT.js} +1 -1
- package/dist/chunks/{store-learning-credentials-EGJ2WTZI.js → store-learning-credentials-DYTMWQTC.js} +1 -1
- package/dist/chunks/{store-local-experiments-CBJA56X2.js → store-local-experiments-XPXGYXNM.js} +1 -1
- package/dist/chunks/{store-model-batch-review-YIVD7T2T.js → store-model-batch-review-J2L5JQV2.js} +1 -1
- package/dist/chunks/{store-model-configuration-T6XJJDAB.js → store-model-configuration-NJFWSYSA.js} +1 -1
- package/dist/chunks/{store-model-project-preparation-WWU5CJTV.js → store-model-project-preparation-OCLIFKI2.js} +1 -1
- package/dist/chunks/{store-preference-comparison-XQFTLMGH.js → store-preference-comparison-MZAYONCK.js} +1 -1
- package/dist/chunks/{store-task-inbox-VVXZUJIO.js → store-task-inbox-3BREANOX.js} +1 -1
- package/dist/chunks/{store-task-inventory-MQX44AI6.js → store-task-inventory-5HRZCDUT.js} +1 -1
- package/dist/chunks/{store-taskset-drafts-G3WFVN4M.js → store-taskset-drafts-BNKUVHPA.js} +1 -1
- package/dist/chunks/{store-training-DUVIDYK5.js → store-training-S3FXWLT6.js} +1 -1
- package/dist/chunks/{store-training-jobs-HHFH3V5O.js → store-training-jobs-2LCXPA7G.js} +1 -1
- package/dist/chunks/{store-training-models-C7UUZDTO.js → store-training-models-7AMKS7ZW.js} +1 -1
- package/dist/chunks/{taskset-7FQCJ55X.js → taskset-PLKWRT4X.js} +1 -1
- package/dist/chunks/{taskset-packages-NRRPON7B.js → taskset-packages-SXBLYHSP.js} +1 -1
- package/dist/chunks/{taskset-packages-RW4SFGDU.js → taskset-packages-V5T4V7YN.js} +1 -1
- package/dist/chunks/{teams-bot-D3LWA4S5.js → teams-bot-VQXUA7U4.js} +1 -1
- package/dist/chunks/{tool-learning-NGO7QHYK.js → tool-learning-47XQKELE.js} +1 -1
- package/dist/chunks/{training-XFM3OOPN.js → training-7VQNCOGH.js} +1 -1
- package/dist/chunks/{training-XILDD5RG.js → training-VKLPNCMC.js} +1 -1
- package/dist/chunks/{training-hosted-6BX2IASC.js → training-hosted-NNE6BP6S.js} +1 -1
- package/dist/chunks/training-hosted-checkpoint-evaluation-2X7RSOLC.js +2 -0
- package/dist/chunks/{training-hosted-learning-YN5VD3PW.js → training-hosted-learning-WQ2IP5FP.js} +1 -1
- package/dist/chunks/training-hosted-report-T633TNJG.js +2 -0
- package/dist/chunks/training-hosted-serving-report-VZ4SMLMG.js +2 -0
- package/dist/chunks/training-hosted-workers-Y2PO5IOA.js +2 -0
- package/dist/chunks/{training-model-start-E5MP3URL.js → training-model-start-G7YDZ7ZG.js} +1 -1
- package/dist/cli.js +1 -1
- package/dist/index.js +1 -1
- package/dist/skills/manifest.json +1 -1
- package/dist/web/assets/App-DmEA-Lia.js +53 -0
- package/dist/web/assets/{AppDialog-BILEK4np.js → AppDialog-BvskhHE9.js} +1 -1
- package/dist/web/assets/AppTerminalPanel-ScQKJV4z.js +2 -0
- package/dist/web/assets/{AppToastContext-C-FsCKXW.js → AppToastContext-D2788RqX.js} +1 -1
- package/dist/web/assets/AppsView-B1uNg9IQ.js +1 -0
- package/dist/web/assets/{AppsView-DNHWzJb2.css → AppsView-D3vVesNd.css} +1 -1
- package/dist/web/assets/{AttachmentTypeIcon-Bh7Ft_UL.js → AttachmentTypeIcon-DVluUHuc.js} +1 -1
- package/dist/web/assets/{BrowserSidebar-BG2MLJ9I.js → BrowserSidebar-DfVQoJHn.js} +1 -1
- package/dist/web/assets/{CartesianChart-CS6ES_XT.js → CartesianChart-DdBZ69lI.js} +1 -1
- package/dist/web/assets/{ChatTimelineEntry-Dr5X_XyN.js → ChatTimelineEntry-Bbc6HRks.js} +1 -1
- package/dist/web/assets/{CollaborationTabs-CPJ2w67F.js → CollaborationTabs-ba6WupeJ.js} +1 -1
- package/dist/web/assets/{CommandMenu-Fe1V7NJd.js → CommandMenu-D7wTaEgl.js} +1 -1
- package/dist/web/assets/{CommunityView-DHTcmOnI.js → CommunityView-mO58f2B0.js} +1 -1
- package/dist/web/assets/{ComposerAttachments-Ck9VWD6o.js → ComposerAttachments-aO90qXYz.js} +1 -1
- package/dist/web/assets/{ComposerCreateImproveStrip-yiXO7cf8.js → ComposerCreateImproveStrip-BPUJBSyS.js} +1 -1
- package/dist/web/assets/{ConversationImportsSettings-_VLzUnHQ.js → ConversationImportsSettings-Bo836wKJ.js} +1 -1
- package/dist/web/assets/{FilePagePreview-BpcM1DfE.js → FilePagePreview-C6wIp6uX.js} +2 -2
- package/dist/web/assets/{GetStartedView-BH-WJ-rW.js → GetStartedView-CxMv8q-h.js} +1 -1
- package/dist/web/assets/{GettingStartedDialog-CdQfj7RA.js → GettingStartedDialog-CEb0cS-o.js} +1 -1
- package/dist/web/assets/{HostedModelLearningReview-C3GsOlu9.js → HostedModelLearningReview-BQIS7hkd.js} +1 -1
- package/dist/web/assets/HostedModelLearningSettings-BQ-YeFMT.js +1 -0
- package/dist/web/assets/{HtmlVisual-CH0tb3fv.js → HtmlVisual-CCuUkYT8.js} +1 -1
- package/dist/web/assets/{LabModelVersionDetailPage-J2t9yILv.js → LabModelVersionDetailPage-BkHeVbAx.js} +1 -1
- package/dist/web/assets/{LabSkillSidebar-DdDYvfj2.js → LabSkillSidebar-CFROlATQ.js} +1 -1
- package/dist/web/assets/LabsRoute-YA9YckKj.js +101 -0
- package/dist/web/assets/MainChatThread-DpyPgGKW.js +2 -0
- package/dist/web/assets/{MainPane-Dje-hfUM.css → MainPane-BOWkynGB.css} +1 -1
- package/dist/web/assets/MainPane-WOeodByM.js +10 -0
- package/dist/web/assets/NativeSetupTerminal-fmG2c65K.js +2 -0
- package/dist/web/assets/{NativeSkillSidebar-DPYavzau.js → NativeSkillSidebar-MAJWS4mL.js} +1 -1
- package/dist/web/assets/{NewProjectDialog-BtmvE9Sp.js → NewProjectDialog-MQiUBVx3.js} +1 -1
- package/dist/web/assets/{OutputsPage-BMRY7RK2.js → OutputsPage-DpF-aRTu.js} +1 -1
- package/dist/web/assets/{PageChrome-5VRxH6Rp.js → PageChrome-8gH2hyDb.js} +1 -1
- package/dist/web/assets/{ProjectsPage-1LHqxOMo.js → ProjectsPage-BQ98oGyu.js} +1 -1
- package/dist/web/assets/{RightChatPanelStack-D_7KgExz.js → RightChatPanelStack-Bs7A4dLs.js} +1 -1
- package/dist/web/assets/RightSidebarHomePanel-C-D4kba2.js +1 -0
- package/dist/web/assets/{ScheduledWorkPage-Dtz4zJ0T.js → ScheduledWorkPage-CGCqZz_H.js} +1 -1
- package/dist/web/assets/{SettingsView-BeDYNPcD.js → SettingsView-CqpMFLxy.js} +3 -3
- package/dist/web/assets/{TasksetDraftEditorPrimitives-CcvKO3YA.js → TasksetDraftEditorPrimitives-DJvIvzBb.js} +1 -1
- package/dist/web/assets/{TeamChatView-DaXxOkTe.js → TeamChatView-DjmIaLO1.js} +1 -1
- package/dist/web/assets/{TerminalOverlay-CF8uB4qA.js → TerminalOverlay-D--M876l.js} +1 -1
- package/dist/web/assets/{TrainingCreationPanel-DmMO7x5T.js → TrainingCreationPanel-DDUoHQHU.js} +1 -1
- package/dist/web/assets/{TrainingDraftPanel-DCHbXjSx.js → TrainingDraftPanel-CwLXn3Z7.js} +1 -1
- package/dist/web/assets/{TrainingRunLineage-CwisTWs_.js → TrainingRunLineage-CtYe1KGX.js} +1 -1
- package/dist/web/assets/{UsageSettingsSection-Drt7gwRb.js → UsageSettingsSection-CGwPregx.js} +1 -1
- package/dist/web/assets/WorkSidebarPanel-C6wWuo7U.js +1 -0
- package/dist/web/assets/{WorkspaceDiffPanel-Dmbrg0-y.js → WorkspaceDiffPanel-JDOUmrC-.js} +3 -3
- package/dist/web/assets/{WorkspaceEnvironmentMenu-KEZm1gdb.js → WorkspaceEnvironmentMenu-sfL5LZeB.js} +1 -1
- package/dist/web/assets/{WorkspaceFileLocation-ChbOKrPO.js → WorkspaceFileLocation-D-ctFM4d.js} +1 -1
- package/dist/web/assets/{WorkspaceGitDialogs-BS2JQKNQ.js → WorkspaceGitDialogs-CQ28j3R7.js} +1 -1
- package/dist/web/assets/{WorkspaceMonacoEditor-CN1hE_C4.js → WorkspaceMonacoEditor-BrZs6-EW.js} +3 -3
- package/dist/web/assets/{WorkspacePdfPreview-Clb4m0le.js → WorkspacePdfPreview-CU6PSjjN.js} +2 -2
- package/dist/web/assets/{WorkspacePresentationPreview-CwQsdvAR.js → WorkspacePresentationPreview-IjXVXpIy.js} +1 -1
- package/dist/web/assets/{app-models-Cz3yxq4x.js → app-models-CKXrDTEU.js} +1 -1
- package/dist/web/assets/{bot-BNFltD5O.js → bot-Cd761lRF.js} +1 -1
- package/dist/web/assets/{browser-sidebar-links-ZyYiYBBd.js → browser-sidebar-links-D9v2cyJa.js} +1 -1
- package/dist/web/assets/chat-resources-BUDXdoG0.js +1 -0
- package/dist/web/assets/{chevron-down-BnnT0tnM.js → chevron-down-DEbd6Ek-.js} +1 -1
- package/dist/web/assets/chevron-right-DLYNg_Oq.js +1 -0
- package/dist/web/assets/{chevron-up-BAnwJJN3.js → chevron-up-DFJJccDl.js} +1 -1
- package/dist/web/assets/chunk-GHPCQXG5-DKDBSd8H.js +9 -0
- package/dist/web/assets/chunk-GJRXJL6G-luaxRTYI.js +1 -0
- package/dist/web/assets/chunk-H3JZ3P5T-CzpTARDY.js +2 -0
- package/dist/web/assets/chunk-JDQVAG3R-C0-rh1aR.js +1 -0
- package/dist/web/assets/chunk-TLSP5JKG-BrrVo5rJ.js +1 -0
- package/dist/web/assets/chunk-XMVSQIK4-BBU7r_NH.js +1 -0
- package/dist/web/assets/client-BNjO4Xi8.js +1 -0
- package/dist/web/assets/{client-choice-storage-Iuzoszas.js → client-choice-storage-DUWsS4X0.js} +1 -1
- package/dist/web/assets/{cloud-upload-CdSXJ7ms.js → cloud-upload-CoM1FGeB.js} +1 -1
- package/dist/web/assets/{common-BMjyKlX-.js → common-CFsO2ppZ.js} +1 -1
- package/dist/web/assets/{copy-CBFg6m0d.js → copy-BGOhV6Pk.js} +1 -1
- package/dist/web/assets/{create-pipeline-CyUZrbbO.js → create-pipeline-DRR0Qeec.js} +1 -1
- package/dist/web/assets/{createLucideIcon-DF2VR6WA.js → createLucideIcon-Bv-_eGcE.js} +1 -1
- package/dist/web/assets/{cssMode-BSQUZhUO.js → cssMode-SclUkqPt.js} +1 -1
- package/dist/web/assets/{external-link-Cql9bKdv.js → external-link-CVXsNeO3.js} +1 -1
- package/dist/web/assets/{folder-open-BXdVB5J1.js → folder-open-MnOmh19D.js} +1 -1
- package/dist/web/assets/{folder-plus-Cma2HulC.js → folder-plus-BRddLBtO.js} +1 -1
- package/dist/web/assets/{git-commit-horizontal-eF--16ps.js → git-commit-horizontal-Bm4rkXug.js} +1 -1
- package/dist/web/assets/{htmlMode-aLPlQtyU.js → htmlMode-X3mQtOeh.js} +1 -1
- package/dist/web/assets/icons-CZxmQtZs.js +1 -0
- package/dist/web/assets/{image-CqKPwnBn.js → image-BViGUAiq.js} +1 -1
- package/dist/web/assets/{index-CM0IRu1U.js → index-LXNhSUEL.js} +2 -2
- package/dist/web/assets/{info-CqeYEqG0.js → info-DYPIbKKD.js} +1 -1
- package/dist/web/assets/intake-contracts-wCkD2ErR.js +1 -0
- package/dist/web/assets/{jsonMode-fu7bEcHB.js → jsonMode-BoKiIdHd.js} +1 -1
- package/dist/web/assets/loader-circle-JFgFNsP5.js +1 -0
- package/dist/web/assets/{lspLanguageFeatures-DraXQA4w.js → lspLanguageFeatures-CO2mzpy1.js} +1 -1
- package/dist/web/assets/{maximize-2-yMp8X9ts.js → maximize-2-DXZCQO0b.js} +1 -1
- package/dist/web/assets/{message-square-DbIMQqfj.js → message-square-cOCAL8J1.js} +1 -1
- package/dist/web/assets/{monaco.contribution-BQhp1CJs.js → monaco.contribution-C7CAQIKF.js} +2 -2
- package/dist/web/assets/{monaco.contribution-Bd8EqYGR.js → monaco.contribution-CVe3mWSY.js} +2 -2
- package/dist/web/assets/{monaco.contribution-CYWKnVxQ.js → monaco.contribution-hrusiaZi.js} +2 -2
- package/dist/web/assets/{monaco.contribution-CmbWO0tB.js → monaco.contribution-wacA5FjV.js} +2 -2
- package/dist/web/assets/{monitor-DFE2fTkT.js → monitor-B35XSAvn.js} +1 -1
- package/dist/web/assets/{paperclip-D_qsKbVs.js → paperclip-CKgDxioG.js} +1 -1
- package/dist/web/assets/{pdf-DkQRsi4n.js → pdf-Ct3M2mVw.js} +1 -1
- package/dist/web/assets/play-DzqLr7fM.js +1 -0
- package/dist/web/assets/plus-Ddp1vXnw.js +1 -0
- package/dist/web/assets/{ponder-desktop-Dm7tOkKo.js → ponder-desktop-D-zB6X4L.js} +1 -1
- package/dist/web/assets/{presentation-BN_kIBPL.js → presentation-B0S9v7ib.js} +1 -1
- package/dist/web/assets/{profile-ref-DSNkG6Ol.js → profile-ref-CCxrOCio.js} +1 -1
- package/dist/web/assets/{python-DB9pj5Hr.js → python-C0-pUUAU.js} +1 -1
- package/dist/web/assets/{refresh-cw-B27ohHfn.js → refresh-cw-D45mW-vs.js} +1 -1
- package/dist/web/assets/{requests-BCbaFiqV.js → requests-DjSt-duM.js} +1 -1
- package/dist/web/assets/{reward-checks-Bcq9ETCA.js → reward-checks-D139zwha.js} +2 -2
- package/dist/web/assets/{save-D-rwjKop.js → save-Gu4R_82E.js} +1 -1
- package/dist/web/assets/schemas-C9IwV7NS.js +64 -0
- package/dist/web/assets/{settings-D7C-Auyi.js → settings-DdonLCIN.js} +1 -1
- package/dist/web/assets/settings-lists-CFHFtO0D.js +5 -0
- package/dist/web/assets/square-Dqduqyyu.js +1 -0
- package/dist/web/assets/{square-terminal-CeoK51wH.js → square-terminal-DS3zwi6X.js} +1 -1
- package/dist/web/assets/{submit-issue-command-DZNW7Evj.js → submit-issue-command-Gk3RKrY-.js} +1 -1
- package/dist/web/assets/{toggleHighContrast-Bs8L1gx0.js → toggleHighContrast-BnYUBgZB.js} +1 -1
- package/dist/web/assets/training-QBuGBGJd.js +2 -0
- package/dist/web/assets/{training-model-data-wHvE7xL1.js → training-model-data-CxR3xpmK.js} +1 -1
- package/dist/web/assets/{tsMode-C7EqshxC.js → tsMode-BVNyOY8h.js} +1 -1
- package/dist/web/assets/{upload-BWgjC2Jf.js → upload-ABSJxuUM.js} +1 -1
- package/dist/web/assets/{useAccountSettings-Dva1MpsJ.js → useAccountSettings-4_XfwJQi.js} +1 -1
- package/dist/web/assets/{useAgentInventory-CrjIOmvb.js → useAgentInventory-CVuamyT3.js} +1 -1
- package/dist/web/assets/{useLocalAgentSchedules-P-UaUKMb.js → useLocalAgentSchedules-CmwN4ohy.js} +1 -1
- package/dist/web/assets/{useQuery-Bn3KqR4r.js → useQuery-CCjwL8VI.js} +1 -1
- package/dist/web/assets/{wifi-off--mKrSPFc.js → wifi-off-DGJH7Pke.js} +1 -1
- package/dist/web/assets/{work-outputs-CK0nHe4g.js → work-outputs-CnbRtTLg.js} +1 -1
- package/dist/web/assets/{workers-p0Kn2KMK.js → workers-CjtQ2aBD.js} +1 -1
- package/dist/web/assets/x-B-_zJVOZ.js +1 -0
- package/dist/web/assets/{yaml-BeIdC4tu.js → yaml-N1KUjBZ8.js} +1 -1
- package/dist/web/index.html +1 -1
- package/docs/command-reference.md +7 -1
- package/package.json +1 -1
- package/dist/chunks/chunk-3MVKXAH7.js +0 -2
- package/dist/chunks/chunk-G4E3WGLM.js +0 -13
- package/dist/chunks/chunk-I3NYYOSS.js +0 -2
- package/dist/chunks/chunk-JBFPTEVE.js +0 -2
- package/dist/chunks/chunk-LOIYNRBC.js +0 -33
- package/dist/chunks/chunk-MMJU6PZV.js +0 -2
- package/dist/chunks/chunk-OW3EOC5Q.js +0 -4
- package/dist/chunks/chunk-YBKDEEEH.js +0 -2
- package/dist/chunks/cli-TE7RP5H7.js +0 -2
- package/dist/chunks/command-NDHFZAKA.js +0 -13
- package/dist/chunks/dist-J4KHAVO3.js +0 -2
- package/dist/chunks/host-profile-evaluation-tools-75EPCRSZ.js +0 -2
- package/dist/chunks/hosted-harness-runtime-3AJGEIFD.js +0 -2
- package/dist/chunks/javascript-isolate-process-source-ZPQKKLR4.js +0 -2
- package/dist/chunks/javascript-verifier-worker-source-F3LSGPOY.js +0 -2
- package/dist/chunks/learning-NJLTGZFQ.js +0 -2
- package/dist/chunks/setup-HSRCZ3WR.js +0 -2
- package/dist/chunks/training-hosted-checkpoint-evaluation-UXFW33QL.js +0 -2
- package/dist/chunks/training-hosted-report-UVGTPDOK.js +0 -2
- package/dist/chunks/training-hosted-serving-report-J4YOZLRP.js +0 -2
- package/dist/chunks/training-hosted-workers-6JTDCCWA.js +0 -2
- package/dist/web/assets/App-BZuSv1XM.js +0 -53
- package/dist/web/assets/AppTerminalPanel-BvxZ8bwD.js +0 -2
- package/dist/web/assets/AppsView-BMaq5oxx.js +0 -1
- package/dist/web/assets/HostedModelLearningSettings-SSMst6dl.js +0 -1
- package/dist/web/assets/LabsRoute-MJwIjSKg.js +0 -101
- package/dist/web/assets/MainChatThread-BcwtaTDZ.js +0 -2
- package/dist/web/assets/MainPane-DDO6diPt.js +0 -10
- package/dist/web/assets/NativeSetupTerminal-BPSUFpRm.js +0 -2
- package/dist/web/assets/RightSidebarHomePanel-iznJwDMf.js +0 -1
- package/dist/web/assets/WorkSidebarPanel-BrIIRtGW.js +0 -1
- package/dist/web/assets/chat-resources-CTN4f6KC.js +0 -1
- package/dist/web/assets/chevron-right-C8K5PZj7.js +0 -1
- package/dist/web/assets/chunk-GJRXJL6G-pJp1DyJd.js +0 -9
- package/dist/web/assets/chunk-H3JZ3P5T-B0SCoPw4.js +0 -2
- package/dist/web/assets/chunk-TLSP5JKG-DZmxtX-4.js +0 -1
- package/dist/web/assets/contracts-BLiqJxBv.js +0 -1
- package/dist/web/assets/icons-c3vt7y6n.js +0 -1
- package/dist/web/assets/intake-contracts-BW0Y0C2R.js +0 -1
- package/dist/web/assets/loader-circle-pxp89T5x.js +0 -1
- package/dist/web/assets/play-BtlX2stU.js +0 -1
- package/dist/web/assets/plus-DbASL_gy.js +0 -1
- package/dist/web/assets/schemas-lO3MoWQr.js +0 -64
- package/dist/web/assets/settings-lists-DgSaJQA4.js +0 -5
- package/dist/web/assets/square-C2caJ3NG.js +0 -1
- package/dist/web/assets/training-DCdoHJ0Y.js +0 -2
- package/dist/web/assets/x-D9GTV9ke.js +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
-
import{c as S,g as T,j as k,k as x,m as E}from"./chunk-5HPZGLOL.js";import{h as R}from"./chunk-G4E3WGLM.js";import{v as y}from"./chunk-ZY32SZ2P.js";import{A as e}from"./chunk-X2J2P5ZT.js";import{a as d}from"./chunk-FTQLQJQV.js";var m=e.string().trim().min(1).max(191),w=e.string().regex(/^[a-f0-9]{64}$/),H=e.discriminatedUnion("mode",[e.object({mode:e.literal("automatic"),objective:e.enum(["balanced","fast","economical"]),gpuCount:e.union([e.literal(1),e.literal(2)]).optional()}).strict(),e.object({mode:e.literal("manual"),availabilityId:m,gpuType:e.string().trim().min(1).max(256),gpuCount:e.union([e.literal(1),e.literal(2)]).optional()}).strict()]),ee=e.object({estimateId:m,inputHash:w,requestHash:w,pricingVersion:m,expiresAt:e.string().datetime({offset:!0}),token:e.string().min(1).max(8192)}).strict(),te=e.object({schemaVersion:e.literal("openpond.trainingGpuCatalog.v1"),observedAt:e.string().datetime({offset:!0}),expiresAt:e.string().datetime({offset:!0}),workerImageDigest:e.string().regex(/^sha256:[a-f0-9]{64}$/),supportedLoraRanks:e.array(e.number().int().positive()),pricingBasis:e.literal("accepted_compute_and_disk_hourly_before_credits"),offerings:e.array(e.object({availabilityId:m,gpuType:e.string().min(1).max(256),provider:m,region:e.string().min(1),dataCenterId:e.string().nullable(),gpuCount:e.number().int().positive(),gpuMemoryGb:e.number().positive(),stockStatus:e.enum(["High","Medium","Low"]),computeHourlyUsd:e.number().nonnegative(),diskHourlyUsd:e.number().nonnegative(),totalHourlyUsd:e.number().nonnegative()}).strict()).max(1e3)}).strict();var P=R.extend({mode:e.enum(["nightly","approved_count"]),minimumTasks:e.number().int().min(1).max(1e4),maximumSpendUsd:e.number().positive().max(1e5),maximumDailySpendUsd:e.number().positive().max(1e6)}).strict().superRefine((t,a)=>{t.maximumDailySpendUsd<t.maximumSpendUsd&&a.addIssue({code:"custom",path:["maximumDailySpendUsd"],message:"The daily budget must cover one update."})});var n=e.string().trim().min(1).max(500),c=e.string().regex(/^[a-f0-9]{64}$/),l=e.string().datetime({offset:!0}),u=e.object({id:n,contentHash:c}).strict(),v=u.extend({revision:e.number().int().positive()}).strict(),p=e.object({schemaVersion:e.literal("openpond.baseModelPreference.v1"),modelId:n,revision:e.string().trim().min(1).max(256).nullable(),tokenizerRevision:e.string().trim().min(1).max(256).nullable(),chatTemplateHash:e.string().trim().min(8).max(256).nullable(),modelAssetId:n.nullable(),source:e.enum(["managed","local","builtin"])}).strict(),O=e.enum(["sft","dpo","grpo","ppo","sdft","opd","opsd","sdpo"]),L=e.object({schemaVersion:e.string().regex(/^openpond\.[A-Za-z0-9]+Recipe\.v\d+$/),method:O,parameterization:e.enum(["lora","full"])}).catchall(e.unknown()),B=e.object({profileProjectId:n,sourceRevision:e.string().regex(/^[a-f0-9]{40,64}$/),harnessRelease:u}).strict(),J=e.object({profileProjectId:n,sourceRevision:e.string().regex(/^[a-f0-9]{40,64}$/),catalogHash:c,definitionId:n,harnessRelease:u,tasksetRelease:u}).strict(),D=e.object({tasksetRef:v.nullable().default(null),evaluationTasksetRef:v.nullable().optional(),profileSource:B.nullable().optional(),profileEvaluation:J.nullable().optional(),rewardBindingRef:v.nullable().optional(),tasksetRelease:u.nullable().default(null),harnessRelease:u.nullable().default(null),baseModel:p.nullable().default(null),method:O.nullable().default(null),destinationId:n.nullable().default(null),managedRolloutPlacement:e.enum(["local","remote"]).default("remote"),managedGpuPlacementObjective:e.enum(["fast","balanced","economical"]).default("balanced"),managedGpuSelection:H.optional(),continuationAdapterMode:e.enum(["residual_append","shared","sequential_merge"]).optional(),managedGpuRequirement:e.enum(["any","h100_hbm3"]).default("any"),runPreset:e.enum(["small","standard","custom","small_experiment"]).nullable().default(null),recipe:L.nullable().default(null),preferredMaximumSpendUsd:e.number().nonnegative().nullable().default(null),preferredRetentionDays:e.number().int().nonnegative().nullable().default(null)}).strict(),q=D,N=e.object({schemaVersion:e.literal("openpond.hostedModelProjectLink.v1"),apiOrigin:e.string().url().refine(t=>new URL(t).origin===t,"Use a canonical API origin.").nullable().default(null),teamId:n,projectId:n,portableProjectId:n,revision:e.number().int().positive(),etag:c,syncedSourceRevision:e.number().int().positive(),syncedAt:l,tasksets:e.array(e.object({localTasksetId:n,localTasksetHash:c.nullable().default(null),releaseId:n,releaseRevision:e.number().int().positive(),releaseHash:c,packageHash:c.nullable().default(null),hostedTasksetId:n,syncedAt:l}).strict()).max(1e4).default([])}).strict(),V=e.object({localTasksetId:n,releaseId:n,releaseRevision:e.number().int().positive(),releaseHash:c,state:e.enum(["syncing","synced","sync_failed"]),hostedTasksetId:n.nullable().default(null),lastAttemptAt:l,syncedAt:l.nullable().default(null),lastError:e.string().trim().min(1).max(5e3).nullable().default(null)}).strict(),$=e.object({schemaVersion:e.literal("openpond.modelProject.v2"),id:n,profileId:n,revision:e.number().int().positive().default(1),name:e.string().trim().min(1).max(200),objective:e.string().trim().max(5e3).nullable(),defaultBaseModel:p.nullable(),defaultDestinationId:n.nullable(),trainingSetup:D,hosted:N.nullable().default(null),tasksetSyncs:e.array(V).max(1e4).default([]),createdAt:l,updatedAt:l}).strict(),U=$.pick({id:!0,profileId:!0,name:!0,objective:!0,defaultBaseModel:!0,defaultDestinationId:!0,trainingSetup:!0}),G=e.object({schemaVersion:e.literal("openpond.modelProjectSave.v1"),operationId:n,expectedRevision:e.number().int().nonnegative(),project:U,learning:P.optional()}).strict().superRefine((t,a)=>{t.learning&&t.expectedRevision!==0&&a.addIssue({code:"custom",path:["learning"],message:"Use learning settings to edit an existing Model's policy."})}),Y=e.object({schemaVersion:e.literal("openpond.modelProjectConfigurationCheck.v1"),configurationHash:c,projectId:n,expectedRevision:e.number().int().nonnegative(),checkedAt:l,canSave:e.boolean(),deferred:e.array(e.enum(["base_model","taskset"])).max(2),findings:e.array(e.object({code:n,severity:e.enum(["error","warning"]),message:e.string().min(1).max(5e3),field:e.string().min(1).max(500).nullable()}).strict()).max(100)}).strict(),X=e.object({id:n,name:e.string().min(1).max(500),available:e.boolean(),preference:p}).strict();function M(t){try{y(t,524288)}catch{throw new h(400,{schemaVersion:"openpond.modelProjectApiError.v2",code:"model_configuration_json_invalid",message:"Model configuration must be bounded JSON data.",retryable:!1,requestId:null,details:{}})}return G.parse(t)}d(M,"parseModelProjectSaveRequest");async function ue(t,a,i){y(t,524288);let s=U.parse(t);x(s,524288,"Model configuration");let o=i?P.parse(i):void 0,r=await k({project:s,expectedRevision:a,...o?{learning:o}:{}});return M({schemaVersion:"openpond.modelProjectSave.v1",operationId:`model-save:${r}`,expectedRevision:a,project:s,...o?{learning:o}:{}})}d(ue,"createModelProjectSaveRequest");var F=e.object({schemaVersion:e.literal("openpond.hostedModelProjectSync.v2"),portableProjectId:n,name:e.string().trim().min(1).max(200),objective:e.string().trim().max(5e3).nullable(),defaultBaseModel:p.nullable(),defaultDestinationId:n.nullable(),trainingSetup:q,sourceRevision:e.number().int().positive(),sourceUpdatedAt:l,expectedEtag:c.nullable().default(null)}).strict(),f=e.object({id:n,teamId:n,portableProjectId:n,name:e.string().trim().min(1).max(200),objective:e.string().trim().max(5e3).nullable(),defaultBaseModel:p.nullable(),defaultDestinationId:n.nullable(),trainingSetup:q,sourceRevision:e.number().int().positive(),sourceUpdatedAt:l,revision:e.number().int().positive(),etag:c,createdAt:l,updatedAt:l}).strict(),Z=e.object({kind:e.enum(["taskset_release","harness_release","dataset_release","evidence_set","model_version","reward_model_version","evaluation_receipt"]),ref:u,role:e.string().trim().min(1).max(200).nullable().default(null),updatedAt:l}).strict(),K=e.object({project:f,resources:e.array(Z).max(1e4),jobCount:e.number().int().nonnegative(),latestJobIds:e.array(n).max(100)}).strict(),Q=e.object({schemaVersion:e.literal("openpond.modelProjectApiError.v2"),code:e.string().trim().min(1).max(200),message:e.string().trim().min(1).max(5e3),retryable:e.boolean().default(!1),requestId:e.string().trim().min(1).max(500).nullable().default(null),details:e.record(e.string(),e.unknown()).default({})}).strict(),h=class extends Error{static{d(this,"OpenPondModelProjectApiError")}status;code;retryable;requestId;details;constructor(a,i){super(i.message),this.name="OpenPondModelProjectApiError",this.status=a,this.code=i.code,this.retryable=i.retryable,this.requestId=i.requestId,this.details=i.details}};function A(t){let a={};return new Headers(t).forEach((i,s)=>{a[s]=i}),a}d(A,"headersRecord");function me(t){let a=t.fetch??fetch,i=t.baseUrl.replace(/\/$/,"");async function s(o,r){let j=typeof t.headers=="function"?await t.headers():t.headers??{},g=await a(`${i}${o}`,{...r,headers:{accept:S,...r?.body?{"content-type":S}:{},...A(j),...A(r?.headers)}}),I=await E(g,8388608,"Model Project API response");if(!g.ok){let _=Q.safeParse(I);throw _.success?new h(g.status,_.data):new T("invalid_error_response",`Model Project request failed with HTTP ${g.status} and an invalid error envelope.`)}return I}return d(s,"request"),{async configurationCandidates(){return e.object({candidates:e.array(X).max(1e3)}).strict().parse(await s("/v1/model-projects/configuration/candidates",{headers:{accept:"application/json"}})).candidates},async checkConfiguration(o){let r=M(o);return Y.parse(await s("/v1/model-projects/configuration/check",{method:"POST",headers:{accept:"application/json","content-type":"application/json"},body:JSON.stringify(r)}))},async saveConfiguration(o){let r=M(o);return f.parse(await s("/v1/model-projects/configuration/save",{method:"POST",headers:{accept:"application/json","content-type":"application/json"},body:JSON.stringify(r)}))},async upsert(o){x(o,524288,"Model Project sync");let r=F.parse(o),j=await s(`/v1/model-projects/${encodeURIComponent(r.portableProjectId)}`,{method:"PUT",body:JSON.stringify(r)});return f.parse(C(j,"project"))},async list(){let o=await s("/v1/model-projects");return e.array(f).parse(C(o,"projects"))},async get(o){let r=await s(`/v1/model-projects/${encodeURIComponent(n.parse(o))}`);return K.parse(r)}}}d(me,"createModelProjectsClient");function C(t,a){return!t||typeof t!="object"||Array.isArray(t)?t:a in t?t[a]:t}d(C,"unwrapObject");export{H as a,ee as b,te as c,u as d,v as e,p as f,L as g,q as h,U as i,ue as j,F as k,f as l,me as m};
|
|
2
|
+
import{c as S,g as T,j as k,k as x,m as E}from"./chunk-5HPZGLOL.js";import{h as R}from"./chunk-XHU4BZQY.js";import{v as y}from"./chunk-ZY32SZ2P.js";import{A as e}from"./chunk-X2J2P5ZT.js";import{a as d}from"./chunk-FTQLQJQV.js";var m=e.string().trim().min(1).max(191),w=e.string().regex(/^[a-f0-9]{64}$/),H=e.discriminatedUnion("mode",[e.object({mode:e.literal("automatic"),objective:e.enum(["balanced","fast","economical"]),gpuCount:e.union([e.literal(1),e.literal(2)]).optional()}).strict(),e.object({mode:e.literal("manual"),availabilityId:m,gpuType:e.string().trim().min(1).max(256),gpuCount:e.union([e.literal(1),e.literal(2)]).optional()}).strict()]),ee=e.object({estimateId:m,inputHash:w,requestHash:w,pricingVersion:m,expiresAt:e.string().datetime({offset:!0}),token:e.string().min(1).max(8192)}).strict(),te=e.object({schemaVersion:e.literal("openpond.trainingGpuCatalog.v1"),observedAt:e.string().datetime({offset:!0}),expiresAt:e.string().datetime({offset:!0}),workerImageDigest:e.string().regex(/^sha256:[a-f0-9]{64}$/),supportedLoraRanks:e.array(e.number().int().positive()),pricingBasis:e.literal("accepted_compute_and_disk_hourly_before_credits"),offerings:e.array(e.object({availabilityId:m,gpuType:e.string().min(1).max(256),provider:m,region:e.string().min(1),dataCenterId:e.string().nullable(),gpuCount:e.number().int().positive(),gpuMemoryGb:e.number().positive(),stockStatus:e.enum(["High","Medium","Low"]),computeHourlyUsd:e.number().nonnegative(),diskHourlyUsd:e.number().nonnegative(),totalHourlyUsd:e.number().nonnegative()}).strict()).max(1e3)}).strict();var P=R.extend({mode:e.enum(["nightly","approved_count"]),minimumTasks:e.number().int().min(1).max(1e4),maximumSpendUsd:e.number().positive().max(1e5),maximumDailySpendUsd:e.number().positive().max(1e6)}).strict().superRefine((t,a)=>{t.maximumDailySpendUsd<t.maximumSpendUsd&&a.addIssue({code:"custom",path:["maximumDailySpendUsd"],message:"The daily budget must cover one update."})});var n=e.string().trim().min(1).max(500),c=e.string().regex(/^[a-f0-9]{64}$/),l=e.string().datetime({offset:!0}),u=e.object({id:n,contentHash:c}).strict(),v=u.extend({revision:e.number().int().positive()}).strict(),p=e.object({schemaVersion:e.literal("openpond.baseModelPreference.v1"),modelId:n,revision:e.string().trim().min(1).max(256).nullable(),tokenizerRevision:e.string().trim().min(1).max(256).nullable(),chatTemplateHash:e.string().trim().min(8).max(256).nullable(),modelAssetId:n.nullable(),source:e.enum(["managed","local","builtin"])}).strict(),O=e.enum(["sft","dpo","grpo","ppo","sdft","opd","opsd","sdpo"]),L=e.object({schemaVersion:e.string().regex(/^openpond\.[A-Za-z0-9]+Recipe\.v\d+$/),method:O,parameterization:e.enum(["lora","full"])}).catchall(e.unknown()),B=e.object({profileProjectId:n,sourceRevision:e.string().regex(/^[a-f0-9]{40,64}$/),harnessRelease:u}).strict(),J=e.object({profileProjectId:n,sourceRevision:e.string().regex(/^[a-f0-9]{40,64}$/),catalogHash:c,definitionId:n,harnessRelease:u,tasksetRelease:u}).strict(),D=e.object({tasksetRef:v.nullable().default(null),evaluationTasksetRef:v.nullable().optional(),profileSource:B.nullable().optional(),profileEvaluation:J.nullable().optional(),rewardBindingRef:v.nullable().optional(),tasksetRelease:u.nullable().default(null),harnessRelease:u.nullable().default(null),baseModel:p.nullable().default(null),method:O.nullable().default(null),destinationId:n.nullable().default(null),managedRolloutPlacement:e.enum(["local","remote"]).default("remote"),managedGpuPlacementObjective:e.enum(["fast","balanced","economical"]).default("balanced"),managedGpuSelection:H.optional(),continuationAdapterMode:e.enum(["residual_append","shared","sequential_merge"]).optional(),managedGpuRequirement:e.enum(["any","h100_hbm3"]).default("any"),runPreset:e.enum(["small","standard","custom","small_experiment"]).nullable().default(null),recipe:L.nullable().default(null),preferredMaximumSpendUsd:e.number().nonnegative().nullable().default(null),preferredRetentionDays:e.number().int().nonnegative().nullable().default(null)}).strict(),q=D,N=e.object({schemaVersion:e.literal("openpond.hostedModelProjectLink.v1"),apiOrigin:e.string().url().refine(t=>new URL(t).origin===t,"Use a canonical API origin.").nullable().default(null),teamId:n,projectId:n,portableProjectId:n,revision:e.number().int().positive(),etag:c,syncedSourceRevision:e.number().int().positive(),syncedAt:l,tasksets:e.array(e.object({localTasksetId:n,localTasksetHash:c.nullable().default(null),releaseId:n,releaseRevision:e.number().int().positive(),releaseHash:c,packageHash:c.nullable().default(null),hostedTasksetId:n,syncedAt:l}).strict()).max(1e4).default([])}).strict(),V=e.object({localTasksetId:n,releaseId:n,releaseRevision:e.number().int().positive(),releaseHash:c,state:e.enum(["syncing","synced","sync_failed"]),hostedTasksetId:n.nullable().default(null),lastAttemptAt:l,syncedAt:l.nullable().default(null),lastError:e.string().trim().min(1).max(5e3).nullable().default(null)}).strict(),$=e.object({schemaVersion:e.literal("openpond.modelProject.v2"),id:n,profileId:n,revision:e.number().int().positive().default(1),name:e.string().trim().min(1).max(200),objective:e.string().trim().max(5e3).nullable(),defaultBaseModel:p.nullable(),defaultDestinationId:n.nullable(),trainingSetup:D,hosted:N.nullable().default(null),tasksetSyncs:e.array(V).max(1e4).default([]),createdAt:l,updatedAt:l}).strict(),U=$.pick({id:!0,profileId:!0,name:!0,objective:!0,defaultBaseModel:!0,defaultDestinationId:!0,trainingSetup:!0}),G=e.object({schemaVersion:e.literal("openpond.modelProjectSave.v1"),operationId:n,expectedRevision:e.number().int().nonnegative(),project:U,learning:P.optional()}).strict().superRefine((t,a)=>{t.learning&&t.expectedRevision!==0&&a.addIssue({code:"custom",path:["learning"],message:"Use learning settings to edit an existing Model's policy."})}),Y=e.object({schemaVersion:e.literal("openpond.modelProjectConfigurationCheck.v1"),configurationHash:c,projectId:n,expectedRevision:e.number().int().nonnegative(),checkedAt:l,canSave:e.boolean(),deferred:e.array(e.enum(["base_model","taskset"])).max(2),findings:e.array(e.object({code:n,severity:e.enum(["error","warning"]),message:e.string().min(1).max(5e3),field:e.string().min(1).max(500).nullable()}).strict()).max(100)}).strict(),X=e.object({id:n,name:e.string().min(1).max(500),available:e.boolean(),preference:p}).strict();function M(t){try{y(t,524288)}catch{throw new h(400,{schemaVersion:"openpond.modelProjectApiError.v2",code:"model_configuration_json_invalid",message:"Model configuration must be bounded JSON data.",retryable:!1,requestId:null,details:{}})}return G.parse(t)}d(M,"parseModelProjectSaveRequest");async function ue(t,a,i){y(t,524288);let s=U.parse(t);x(s,524288,"Model configuration");let o=i?P.parse(i):void 0,r=await k({project:s,expectedRevision:a,...o?{learning:o}:{}});return M({schemaVersion:"openpond.modelProjectSave.v1",operationId:`model-save:${r}`,expectedRevision:a,project:s,...o?{learning:o}:{}})}d(ue,"createModelProjectSaveRequest");var F=e.object({schemaVersion:e.literal("openpond.hostedModelProjectSync.v2"),portableProjectId:n,name:e.string().trim().min(1).max(200),objective:e.string().trim().max(5e3).nullable(),defaultBaseModel:p.nullable(),defaultDestinationId:n.nullable(),trainingSetup:q,sourceRevision:e.number().int().positive(),sourceUpdatedAt:l,expectedEtag:c.nullable().default(null)}).strict(),f=e.object({id:n,teamId:n,portableProjectId:n,name:e.string().trim().min(1).max(200),objective:e.string().trim().max(5e3).nullable(),defaultBaseModel:p.nullable(),defaultDestinationId:n.nullable(),trainingSetup:q,sourceRevision:e.number().int().positive(),sourceUpdatedAt:l,revision:e.number().int().positive(),etag:c,createdAt:l,updatedAt:l}).strict(),Z=e.object({kind:e.enum(["taskset_release","harness_release","dataset_release","evidence_set","model_version","reward_model_version","evaluation_receipt"]),ref:u,role:e.string().trim().min(1).max(200).nullable().default(null),updatedAt:l}).strict(),K=e.object({project:f,resources:e.array(Z).max(1e4),jobCount:e.number().int().nonnegative(),latestJobIds:e.array(n).max(100)}).strict(),Q=e.object({schemaVersion:e.literal("openpond.modelProjectApiError.v2"),code:e.string().trim().min(1).max(200),message:e.string().trim().min(1).max(5e3),retryable:e.boolean().default(!1),requestId:e.string().trim().min(1).max(500).nullable().default(null),details:e.record(e.string(),e.unknown()).default({})}).strict(),h=class extends Error{static{d(this,"OpenPondModelProjectApiError")}status;code;retryable;requestId;details;constructor(a,i){super(i.message),this.name="OpenPondModelProjectApiError",this.status=a,this.code=i.code,this.retryable=i.retryable,this.requestId=i.requestId,this.details=i.details}};function A(t){let a={};return new Headers(t).forEach((i,s)=>{a[s]=i}),a}d(A,"headersRecord");function me(t){let a=t.fetch??fetch,i=t.baseUrl.replace(/\/$/,"");async function s(o,r){let j=typeof t.headers=="function"?await t.headers():t.headers??{},g=await a(`${i}${o}`,{...r,headers:{accept:S,...r?.body?{"content-type":S}:{},...A(j),...A(r?.headers)}}),I=await E(g,8388608,"Model Project API response");if(!g.ok){let _=Q.safeParse(I);throw _.success?new h(g.status,_.data):new T("invalid_error_response",`Model Project request failed with HTTP ${g.status} and an invalid error envelope.`)}return I}return d(s,"request"),{async configurationCandidates(){return e.object({candidates:e.array(X).max(1e3)}).strict().parse(await s("/v1/model-projects/configuration/candidates",{headers:{accept:"application/json"}})).candidates},async checkConfiguration(o){let r=M(o);return Y.parse(await s("/v1/model-projects/configuration/check",{method:"POST",headers:{accept:"application/json","content-type":"application/json"},body:JSON.stringify(r)}))},async saveConfiguration(o){let r=M(o);return f.parse(await s("/v1/model-projects/configuration/save",{method:"POST",headers:{accept:"application/json","content-type":"application/json"},body:JSON.stringify(r)}))},async upsert(o){x(o,524288,"Model Project sync");let r=F.parse(o),j=await s(`/v1/model-projects/${encodeURIComponent(r.portableProjectId)}`,{method:"PUT",body:JSON.stringify(r)});return f.parse(C(j,"project"))},async list(){let o=await s("/v1/model-projects");return e.array(f).parse(C(o,"projects"))},async get(o){let r=await s(`/v1/model-projects/${encodeURIComponent(n.parse(o))}`);return K.parse(r)}}}d(me,"createModelProjectsClient");function C(t,a){return!t||typeof t!="object"||Array.isArray(t)?t:a in t?t[a]:t}d(C,"unwrapObject");export{H as a,ee as b,te as c,u as d,v as e,p as f,L as g,q as h,U as i,ue as j,F as k,f as l,me as m};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
-
import{Ca as J,Cb as ue,Da as ne,Db as fe,Ha as re,Ia as oe,Ka as ce,Kb as W,La as de,Lb as Z,Ma as le,Mb as he,Na as pe,Nb as ge,Ob as ve,Pb as be,Qb as we,Rb as ke,Sa as me,_ as ae,ja as se,na as ie,v as te,wa as F}from"./chunk-WLZJOCLA.js";import{b as q,c as I,d as G,f as B,k as D,l as $,m as d}from"./chunk-HIQPGYVH.js";import{m as ee}from"./chunk-ZWW227M3.js";import{K as V,R as O,b as K,ba as Y,ca as X}from"./chunk-G4E3WGLM.js";import{bb as U}from"./chunk-ZY32SZ2P.js";import{A as n}from"./chunk-X2J2P5ZT.js";import{a as k}from"./chunk-FTQLQJQV.js";var Ie=n.object({id:q,purpose:n.string().trim().min(1).max(500),audience:n.enum(["orchestrator","environment","privileged_scorer","trainer","infrastructure"]),required:n.boolean(),ttlSeconds:n.number().int().positive().max(86400),scopes:n.array(n.string().trim().min(1).max(500)).max(100).default([])}).strict(),qe=n.object({declarationId:q,leaseRef:n.string().trim().min(8).max(1e3),audience:Ie.shape.audience,expiresAt:G}).strict(),Me=n.object({adapterId:q,placement:n.enum(["local","remote","colocated","provider_native"]),capabilityReceipt:I,runtimeVersion:n.string().trim().min(1).max(200),dataPlane:n.object({provider:q,dataPlaneId:q,cellId:q,runnerPoolId:q,runtimeImageDigest:n.string().regex(/^sha256:[a-f0-9]{64}$/),capabilityReceipt:I}).strict().nullable()}).strict(),je=n.object({adapterId:q,kind:n.enum(["local","ssh","managed","custom"]),deviceOrPool:n.string().trim().min(1).max(1e3),capabilityReceipt:I,provider:q.nullable()}).strict(),Pe=n.object({adapterId:q,workerVersion:n.string().trim().min(1).max(200),workerImageDigest:n.string().regex(/^sha256:[a-f0-9]{64}$/).nullable(),upstreamRevision:n.string().trim().min(1).max(500),capabilityReceipt:I}).strict(),Re=n.object({schemaVersion:n.literal("openpond.harnessRunManifest.v1"),executionMode:n.literal("qualification").optional(),qualificationSamples:n.number().int().min(1).max(32).optional(),id:q,harnessRelease:B,datasetRelease:B,evidenceSets:n.array(B).max(1e4),model:n.object({source:n.string().trim().min(1).max(200),revision:n.string().trim().min(1).max(500),artifactHash:I.nullable(),tokenizerRevision:n.string().trim().min(1).max(500),chatTemplateHash:I}).strict(),recipe:n.object({method:n.string().trim().min(1).max(100),version:n.string().trim().min(1).max(200),configHash:I}).strict(),runtimeTarget:Me,computeTarget:je,engine:Pe,resolvedBundleHash:I,secretLeaseRefs:n.array(qe).max(1e3),approval:n.object({approvalHash:I,approvedAt:G,maximumSpendUsd:n.number().nonnegative().nullable()}).strict(),createdAt:G}).strict(),xe=Re.extend({contentHash:I}).strict(),Te=n.object({schemaVersion:n.literal("openpond.resolvedTrainingBundle.v1"),executionMode:n.literal("qualification").optional(),qualificationSamples:n.number().int().min(1).max(32).optional(),projection:n.literal("trainer"),harnessRelease:B,datasetRelease:B,evidenceSetRelease:B.nullable(),files:n.array(n.object({path:n.string().trim().min(1).max(2e3),sha256:I,sizeBytes:n.number().int().nonnegative()}).strict()).max(1e5)}).strict(),He=Te.extend({contentHash:I}).strict(),_e=[{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}],N=/\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}\b/gi,Q=/\b(?:\+?1[-.\s]?)?\(?\d{3}\)?[-.\s]\d{3}[-.\s]\d{4}\b/g;function Be(e){let t=[],a=e;for(let s of _e)s.pattern.lastIndex=0,s.pattern.test(a)&&t.push(s.label),s.pattern.lastIndex=0,a=a.replace(s.pattern,`[REDACTED ${s.label}]`);N.lastIndex=0;let r=N.test(a);N.lastIndex=0,r&&t.push("email address"),a=a.replace(N,"[REDACTED email]"),Q.lastIndex=0;let o=Q.test(a);return Q.lastIndex=0,o&&t.push("phone number"),a=a.replace(Q,"[REDACTED phone]"),{secretStatus:t.some(s=>!s.includes("email")&&!s.includes("phone"))?"blocked":"passed",piiStatus:r||o?"review":"passed",findings:t,redacted:a}}k(Be,"scanAndRedactEvidence");function ze(e){let t=new Map;return{tasks:e.tasks.map(({artifactRefs:r,...o})=>({...o,assets:r.map(s=>{if(s.visibility!=="policy")throw new Error("Learning task inputs must be policy-visible assets.");let i=e.assets?.find(m=>m.id===s.id),p=e.assetBytes?.get(s.id)??(i?new TextEncoder().encode(O(i,s)):void 0);if(!p||p.byteLength!==s.sizeBytes||$(p)!==s.contentHash)throw new Error(`Learning task input bytes are missing or changed: ${s.id}.`);let l=`learning/assets/${d({task:o.id,asset:s.id}).slice(0,40)}/${s.path}`;return t.set(l,new Uint8Array(p)),{id:s.id,sourceRefId:e.sourceId,artifactRef:l,fileName:s.path.split("/").at(-1),stagingPath:s.path,mediaType:s.mediaType,sha256:s.contentHash,sizeBytes:s.sizeBytes,split:o.split,metadata:{portableAsset:s}}}),...o.requiredOutputs?{requiredOutputs:o.requiredOutputs.map(s=>({...s,schemaRef:s.schemaRef?.id??null,maxBytes:s.maxBytes??void 0}))}:{}})),tasksetAssetBytes:t}}k(ze,"materializeLearningBatchAssets");function Ce(e){let t=Y(e),a=X(t),r=t.environment.kind==="work";if(!r&&(t.environment.kind!=="text"||t.tools.length||t.tasks.some(c=>c.artifactRefs.length))||r&&t.tasks.some(c=>!c.requiredOutputs?.length))throw new Error("This learning batch requires a supported text or Work environment with declared outputs.");let o=e.source.id,s=ze({tasks:t.tasks,sourceId:o,assets:e.assets,assetBytes:e.assetBytes}),i={demonstrations:[],preferences:[],corrections:[],feedback:[],rewards:[],labels:[]},p=[];for(let c of a.admissions){let b=e.evidence.find(h=>h.id===c.evidence.id),f=e.decisions.find(h=>h.id===c.decision.id);e.batch.purpose==="reward_training"&&f.grade?.training.status==="scored"&&i.rewards.push({id:`reward-${c.taskId}`,taskId:c.taskId,kind:"reward",task:e.definition.instructions,rules:[{id:e.binding.id,points:1,condition:"Execute the released Reward binding with its declared normalization, weights and gates."}],otherwisePoints:0,executable:!0,approved:!0,confidence:1,sourceRefs:[o],artifactRef:e.binding.id,metadata:{rewardBinding:V(e.binding),evidence:c.evidence,decision:c.decision}}),c.supervisedTarget!==null&&i.demonstrations.push({kind:"demonstration",id:`demo-${c.taskId}`,taskId:c.taskId,sourceRefs:[o],artifactRef:c.decision.id,approved:!0,confidence:1,prompt:null,response:JSON.stringify(c.supervisedTarget),metadata:{evidence:c.evidence,decision:c.decision,targetGradeHash:f.targetGrade?.contentHash}});for(let[h,x,S]of[["observed",b.submission.observedOutput,f.grade],["target",f.approvedTarget,f.targetGrade]]){let H=Oe(S);x===null||H===null||p.push({id:`fixture-${h}-${c.taskId}`,taskId:c.taskId,label:H.passed?"positive":"negative",output:x,infrastructureError:null,expectedPassed:H.passed,expectedRewardEligible:H.rewardEligible,metadata:{gradeReceiptHash:S.contentHash,evidence:c.evidence,decision:c.decision}})}}if(!p.length&&e.batch.purpose!=="reward_training")throw new Error("Grade at least one reviewed response before preparing this batch. Grader fixtures must come from actual receipts.");let l=ne(e.binding,e.rewards,e.assets),m=[];for(let c of t.graders){if(c.kind!=="custom_verifier")continue;let b=e.assets?.find(h=>h.id===c.verifierRef.id);if(!b)throw new Error(`Reward ${c.id} is missing its immutable verifier source.`);let f=c.verifierRef.path;m.some(h=>h.path===f)||m.push({path:f,role:"verifier",content:O(b,c.verifierRef)})}let v=F.parse({schemaVersion:"openpond.taskset.v1",id:`learning-${d([e.profileId,e.batch.contentHash]).slice(0,40)}`,revision:1,profileId:e.profileId,profileRelease:null,createImproveRunId:null,name:`${e.definition.name} \xB7 ${e.batch.examples.length} approved examples`,objective:e.definition.instructions,purpose:"general",benchmark:null,status:"needs_review",sourceRefs:[e.source],datasetArtifact:null,policy:t.policy,environment:{protocolVersion:"openpond.taskEnvironment.v1",kind:r?"work":"chat",entrypoint:t.environment.entrypoint,stateful:t.environment.stateful,deterministicSeeds:t.environment.deterministicSeeds,toolNames:t.tools.map(c=>c.name),lifecycle:["create","reset","step","grade","cleanup"],defaultTimeoutMs:t.environment.defaultTimeoutMs,networkPolicy:t.environment.networkPolicy,metadata:{portableEnvironment:t.environment,portableTools:t.tools}},capabilities:{schemaVersion:"openpond.tasksetCapabilities.v1",taskKind:r?"single_agent":"chat",supportedSignals:i.demonstrations.length?["demonstration","reward"]:["reward"],compatibleMethods:e.batch.purpose==="supervised_training"?["sft"]:e.batch.purpose==="reward_training"?["grpo","ppo"]:["none"],rewardKinds:[...new Set(t.graders.map(c=>c.kind==="human"?"human":c.kind==="model_judge"?"model_judge":"deterministic"))],requiresTools:t.tools.length>0,requiresState:t.environment.stateful,requiresPrivilegedGrading:!0,environmentPlacements:["local","remote"],exportable:!0,portabilityBlockers:[]},tasks:s.tasks.map(c=>({...c,schemaVersion:"openpond.taskData.v1",sourceRefs:[o],metadata:{admission:a.admissions.find(b=>b.taskId===c.id),exampleOrigin:e.evidence.find(b=>b.id===c.id)?.correctionFeedbackId?"corrected":"extracted"}})),graders:l,graderFixtures:p,learningSignals:i,authoringProvenance:{schemaVersion:"openpond.taskAuthoringProvenance.v1",model:null,modelConfig:{},skillHash:d("openpond-learning-batch-v1"),promptTemplateVersion:"learning-batch-v1",buildIntent:e.batch.purpose==="supervised_training"?"demonstrations":"verifiable_reward",buildSpecification:null,evidenceHashes:e.batch.examples.map(c=>c.evidence.contentHash),tasksetSdkVersion:"learning-batch-v1",sourceCommit:null,repairHistory:[],createdAt:e.batch.sealedAt},readiness:null,contentHash:"00000000",createdAt:e.batch.sealedAt,updatedAt:e.batch.sealedAt,metadata:{learning:a,learningRelease:V(t),trainingMethod:e.batch.purpose==="supervised_training"?"sft":e.batch.purpose==="reward_training"?"grpo":"none",tasksetOutputContract:r?{mode:"artifacts",requiredOutputSource:"task.requiredOutputs"}:{mode:"structured_json",jsonSchema:e.definition.outputSchema,renderer:null}}});return{taskset:F.parse({...v,contentHash:J(v)}),release:t,generatedFiles:m,tasksetAssetBytes:s.tasksetAssetBytes}}k(Ce,"materializeLearningBatchTaskset");function Oe(e){if(!e)return null;let t=e.training.status==="not_configured"?e.evaluation:e.training;return t.status!=="scored"?null:{passed:t.passed===!0,rewardEligible:e.training.status==="scored"}}k(Oe,"fixtureOutcome");function ot(e){let t=[],a=0;for(let s of new Map(e.evidence.flatMap(i=>i.submission.assets.map(p=>[p.id,p]))).values()){let i=e.assetBytes?.get(s.id),p=e.assets?.find(m=>m.id===s.id),l=i?.byteLength??(p?new TextEncoder().encode(p.text).byteLength:0);if(a+=l,a>ae)throw new Error("Learning input assets exceed the training package limit.");i?t.push(new TextDecoder().decode(i)):p&&t.push(p.text)}let r=Be(JSON.stringify({tasks:e.evidence.map(s=>s.submission),targets:e.decisions.map(s=>s.approvedTarget),definition:e.definition,inputAssets:t}));if(r.secretStatus!=="passed"||r.piiStatus!=="passed")throw new Error(`Learning batch contains unresolved data findings (${r.findings.join(", ")}). Correct the source examples and seal a revised batch before training.`);let o=te.parse({schemaVersion:"openpond.learningBatchDatasetSource.v1",kind:"learning_batch",id:`batch-source-${e.batch.contentHash.slice(0,40)}`,profileId:e.profileId,title:e.definition.name,sourceHash:e.batch.contentHash,occurredAt:e.batch.sealedAt,batch:V(e.batch),taskDefinition:e.batch.taskDefinition,admittedBy:e.batch.sealedBy,licensingStatus:"approved",secretScanStatus:r.secretStatus,piiScanStatus:r.piiStatus,metadata:{admission:e.admissionContext??"explicit_local_batch_review",privacyScanner:"openpond-evidence-v1",findings:r.findings}});return Ce({...e,source:o})}k(ot,"prepareReviewedLearningBatch");async function dt(e){let t=structuredClone(e),{project:a,recipe:r,taskset:o,approval:s}=t,i=xe.parse(t.manifest),p=He.parse(t.bundleManifest),l=t.executionMode==="qualification",m=t.gpuSelection??a.trainingSetup.managedGpuSelection?ee.parse(t.gpuSelection??a.trainingSetup.managedGpuSelection):void 0,v=t.physicalPlacement?fe.parse(t.physicalPlacement):void 0,c=i.qualificationSamples===void 0?null:n.object({rollout:n.object({groupSize:n.number().int().min(2).max(32)}).passthrough()}).passthrough().parse(r).rollout.groupSize;if(i.qualificationSamples!==p.qualificationSamples||i.qualificationSamples!==void 0&&(!l||i.qualificationSamples>c))throw new Error("Qualification samples must be within the pinned rollout group and cannot be used for training.");if(i.executionMode!==t.executionMode||p.executionMode!==t.executionMode)throw new Error("Managed submission execution mode differs from its immutable bundle.");if(l&&(t.evaluationSource||t.resumeFrom||t.rewardSource.kind!=="deterministic"))throw new Error("Qualification requires the original learner, deterministic rewards, and no evaluation source.");let{contentHash:b,...f}=i,{contentHash:h,...x}=p;if(d(f)!==b||d(x)!==h||i.resolvedBundleHash!==h||d(i.harnessRelease)!==d(p.harnessRelease)||d(i.datasetRelease)!==d(p.datasetRelease)||d(i.evidenceSets)!==d(p.evidenceSetRelease?[p.evidenceSetRelease]:[]))throw new Error("The managed training manifest or resolved bundle changed.");if(!a.hosted||a.hosted.syncedSourceRevision!==a.revision||a.hosted.portableProjectId!==a.id)throw new Error("Sync the exact Model Project revision before preparing managed training.");let S=a.trainingSetup.baseModel;if(!S||S.modelId!==i.model.source||S.revision!==i.model.revision||S.tokenizerRevision!==i.model.tokenizerRevision||S.chatTemplateHash!==i.model.chatTemplateHash)throw new Error("The synced Model Project base Model does not match the Run manifest.");if(!["grpo","sft"].includes(r.method)||d(r)!==i.recipe.configHash||s.approvalHash!==i.approval.approvalHash||s.maximumSpendUsd!==i.approval.maximumSpendUsd)throw new Error("Managed training requires the exact approved supported recipe and spend ceiling.");if(r.method==="sft"){let T=ue.parse(r);if(d(T)!==d(r))throw new Error("SFT recipe must be fully materialized before approval.");if(l||t.resumeFrom||v||(m?.gpuCount??1)!==1)throw new Error("Initial managed SFT requires a fresh single-GPU run without reuse-only placement or rollout qualification.")}let H=n.object({wallTimeMs:n.number().positive()}).parse(r.resourceLimits);t.idempotencyKey!==void 0&&n.string().trim().min(16).max(191).parse(t.idempotencyKey);let E=$e(p,t.files),A=l?null:Z.parse(t.evaluationSource),y=E.find(T=>T.path===W);if(A&&(!y||d(JSON.parse(Buffer.from(y.content,"base64").toString("utf8")))!==d(A)))throw new Error("The evaluation source differs from the immutable training bundle.");if(l&&(y||E.some(T=>T.path==="dataset/train.json")||!E.some(T=>T.path==="dataset/qualification.json")||!E.some(T=>T.path==="qualification-source.json")))throw new Error("Qualification requires its dedicated dataset and no training/evaluation datasets.");if(!l&&E.some(T=>T.path==="dataset/qualification.json"||T.path==="qualification-source.json"))throw new Error("Qualification datasets cannot be prepared as training.");let _=A?await ge(A):null,C={schemaVersion:"openpond.managedRlPortableSubmission.v1",...l?{executionMode:"qualification"}:{},...t.origin?{origin:K.parse(t.origin)}:{},...v?{physicalPlacement:v}:{},sourceRunRef:`openpond:model-run:${i.id}`,name:`OpenPond Managed \xB7 ${a.id}`.slice(0,191),idempotencyKey:t.idempotencyKey??`openpond-managed:${b}`.slice(0,191),modelProject:{id:a.hosted.projectId,portableProjectId:a.hosted.portableProjectId},manifest:i,sourceTaskset:o,modelImprovementQualification:t.modelImprovementQualification??null,recipe:r,resolvedBundle:{manifest:p,files:E},validationTasks:A?.tasks??[],validationAssets:A?.assets??[]},j={schemaVersion:"openpond.trainingInputArtifactUpload.v2",kind:"portable_training_bundle",idempotencyKey:`stage:${t.idempotencyKey??b}`,sourceManifest:{id:i.id,contentHash:b},payload:C},P=await be({...j,contentHash:await ve(j)}),u={schemaVersion:"openpond.trainingJobSubmission.v2",idempotencyKey:t.idempotencyKey??`openpond-training-v2:${b}`,name:`OpenPond Managed \xB7 ${a.id}`.slice(0,200),source:{...t.origin?{origin:K.parse(t.origin)}:{},modelProject:{id:a.hosted.projectId,portableProjectId:a.hosted.portableProjectId,revision:a.revision,contentHash:a.hosted.etag},harnessRunManifest:j.sourceManifest,harnessRelease:i.harnessRelease,taskset:o,tasksetRelease:{id:o.id,contentHash:o.contentHash},dataset:p.datasetRelease,..._?{evaluation:_}:{},evidenceSets:p.evidenceSetRelease?[p.evidenceSetRelease]:[]},job:{kind:"policy_optimize",...l?{executionMode:"qualification"}:{},baseModel:S,recipe:r,rewardSource:t.rewardSource,resumeFrom:t.resumeFrom},requestedCapabilities:[{id:l?"managed_rl.policy.qualification":r.method==="sft"?"managed_training.sft":"managed_rl.policy.grpo",version:"1",required:!0},...m?.gpuCount===2?[{id:"managed_rl.policy.data_parallel",version:"1",required:!0}]:[],{id:`managed_rl.rollouts.${i.runtimeTarget.placement}`,version:"1",required:!0},...a.trainingSetup.managedGpuRequirement==="h100_hbm3"?[{id:"managed_rl.gpu.h100_hbm3",version:"1",required:!0}]:[]],placementObjective:a.trainingSetup.managedGpuPlacementObjective,...m?{gpuSelection:m}:{},...v?{physicalPlacement:v}:{},budget:{maximumSpendUsd:s.maximumSpendUsd,maximumWallSeconds:Math.ceil(H.wallTimeMs/1e3)},approval:{...s,approvedAt:i.approval.approvedAt,exportApproved:!0}},w=await ke({...u,contentHash:await we(u)});return{artifact:P,submission:w}}k(dt,"prepareManagedTrainingSubmission");function $e(e,t){if(t.length!==e.files.length||new Set(t.map(r=>r.path)).size!==t.length)throw new Error("The managed bundle file inventory changed.");let a=new Map(t.map(r=>[r.path,r]));return e.files.map(r=>{let o=a.get(r.path);if(!o||o.path.includes("\\")||o.path.includes("\0")||o.path.split("/").some(i=>!i||i==="."||i==="..")||o.path==="bundle-manifest.json"||o.encoding!=="base64")throw new Error("The managed bundle contains an invalid file.");let s=Buffer.from(o.content,"base64");if(s.toString("base64")!==o.content||o.sha256!==r.sha256||o.sizeBytes!==r.sizeBytes||s.byteLength!==r.sizeBytes||$(s)!==r.sha256)throw new Error(`Managed training bundle file ${o.path} changed before upload.`);return o})}k($e,"verifyFiles");var Le=n.object({name:n.literal("adamw").default("adamw"),weightDecay:n.number().nonnegative().max(1).default(0),beta1:n.number().positive().lt(1).default(.9),beta2:n.number().positive().lt(1).default(.999),epsilon:n.number().positive().max(.01).default(1e-8)}).strict().default({name:"adamw",weightDecay:0,beta1:.9,beta2:.999,epsilon:1e-8});function pt(e,t){if(!t||typeof t!="object"||Array.isArray(t))return t;let a=t;if(a.method==="dpo"){let y=R(a.policyModel),_=R(a.referenceModel),C=R(a.dataset),j=d({tasksetHash:e.contentHash,preferenceSignals:e.learningSignals.preferences.map(P=>({id:P.id,artifactRef:P.artifactRef,prompt:P.prompt,chosen:P.chosen,rejected:P.rejected,approved:P.approved})),policyModel:y,referenceModel:_,dataset:C});return{...a,referenceLogprobs:{cacheSchemaVersion:"openpond.dpoReferenceLogprobs.v1",cacheKey:d(["dpo-reference-logprobs",j]),invalidationHash:j}}}if(a.method==="ppo"){let y=R(a.policyOptimization),_=R(y.policyModel),C=R(y.referenceModel),j=R(y.optimizer),P=R(j.valueModel),u=R(y.dataset),w=R(y.reward),T=d(_),g=d(C),L=d(P);return{...a,policyOptimization:{...y,dataset:{...u,tasksetId:e.id,tasksetHash:e.contentHash},reward:{...w,graderHash:d(e.graders)}},resume:{...R(a.resume),policyHash:T,referenceHash:g,valueModelHash:L}}}if(a.method!=="grpo")return t;let r=a.reward&&typeof a.reward=="object"&&!Array.isArray(a.reward)?a.reward:{},o=e.environment.metadata.toolContractHash,s=typeof o=="string"&&o.trim()?o:r.toolContractHash,i=R(a.baseModel),p=R(a.dataset),l=R(a.rollout),m=R(a.optimizer),v=R(a.loss),c=R(a.resourceLimits),b=M(p.maxExamples,1),f=M(l.groupSize,2),h=M(l.maxOutputTokens,1),x=M(p.maxPromptTokens,1),S=M(m.maxSteps,1),H=M(m.iterations,2),E=M(c.maxRollouts,S*f),A=M(l.maxTurns,1);return{...a,resourceLimits:{...c,maxGpuSeconds:c.maxGpuSeconds??Math.min(10800,Math.ceil(M(c.wallTimeMs,18e4)/1e3))},reward:{...r,graderHash:d(e.graders),toolContractHash:s},policyOptimization:{schemaVersion:"openpond.policyOptimization.v1",policyModel:i,referenceModel:i,dataset:{tasksetId:e.id,tasksetHash:e.contentHash,split:"train",selectionStrategy:p.selectionStrategy,selectionSeed:l.seed,maxExamples:b},sampler:{temperature:l.temperature,topP:l.topP,maxOutputTokens:h,maxTurns:l.maxTurns,concurrency:l.concurrency},environment:{id:r.environmentId,version:r.environmentVersion,toolContractHash:s},reward:{graderId:r.graderId,graderHash:d(e.graders),learnedPreference:r.learnedPreference??null},kl:{coefficient:v.klBeta??null,referenceConstraint:"fixed_reference"},budgets:{maxRollouts:E,maxEnvironmentExecutions:E,maxInputTokens:E*A*x,maxOutputTokens:E*A*h,maxOptimizerSteps:S*H,wallTimeMs:M(c.wallTimeMs,18e4),maximumCostUsd:null},checkpointEverySteps:1,seed:l.seed,evaluationSplit:"frozen_eval",optimizer:{method:"grpo",groupSize:f,normalization:"group_standardized",advantageEpsilon:typeof m.advantageEpsilon=="number"?m.advantageEpsilon:1e-8,loss:v.method??"grpo",clipRange:typeof m.clipRange=="number"?m.clipRange:.2,iterations:H,microbatchSize:M(m.microbatchSize,1),gradientAccumulationSteps:M(m.gradientAccumulationSteps,1),adamw:Le.parse(m.adamw)}}}}k(pt,"withAuthoritativeRecipeHashes");function R(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:{}}k(R,"record");function M(e,t){return typeof e=="number"&&Number.isInteger(e)&&e>0?e:t}k(M,"positiveInteger");function mt(e){let t=e.sourceRelease,a=[],r=e.skills??[],o=e.agents??[];if([...r,...o].some(m=>m.visibility!=="policy"))throw new Error("The portable policy Harness requires policy-visible dependencies.");let s=Se({id:"desktop-dependency-lock",path:".openpond/harness/dependency-lock.json",hashInput:{profileHead:e.profileHead??null,sourceRelease:t,tools:a,skills:r.map(({id:m,contentHash:v})=>({id:m,contentHash:v})),agents:o.map(({id:m,contentHash:v})=>({id:m,contentHash:v}))},mediaType:"application/json",visibility:"policy"}),i=re({schemaVersion:"openpond.agentSnapshot.v2",id:`agent-snapshot-${d([t,a,s.contentHash]).slice(0,24)}`,sourceRelease:t,instructions:[],skills:r,agents:o,toolDeclarations:a,capabilityRequirements:[],dependencyLock:s,portability:{portable:!0,blockers:[],localOnlyAssetRefs:[],hostPrivateAssetRefs:[]},metadata:{sourceReleaseId:t?.id??null}}),p=Se({id:"desktop-harness-program",path:".openpond/harness/program.json",hashInput:{program:"openpond.desktop-agent-loop.v1"},mediaType:"application/json",visibility:"policy"}),l=oe({schemaVersion:"openpond.harnessRelease.v2",id:`harness-${d([i.contentHash,p.contentHash,a]).slice(0,24)}`,agentSnapshot:{id:i.id,contentHash:i.contentHash},program:p,tools:a,lifecycle:{create:!0,reset:!0,step:!0,collect:!0,destroy:!0,resetScope:"attempt"},graderInterface:{visibleEvidence:["output","runtime_events","artifacts"],privilegedEvidence:["expected_output","private_verifier"],privateVerifierIsolation:!0},files:[...r,...o],metadata:{runtimeProtocol:"openpond.desktop-agent-loop.v1"}});return{agentSnapshot:i,harnessRelease:l}}k(mt,"createPolicyHarnessContext");function Se(e){let t=D(e.hashInput);return{id:e.id,path:e.path,contentHash:d(e.hashInput),sizeBytes:new TextEncoder().encode(t).byteLength,mediaType:e.mediaType,visibility:e.visibility}}k(Se,"asset");function ut(e){let{taskset:t,modelProject:a,harnessRelease:r,tasksetRelease:o}=e,s=a.trainingSetup,i=e.executionMode==="qualification",p=e.qualificationSamples===void 0?null:n.object({rollout:n.object({groupSize:n.number().int().min(2).max(32)}).passthrough()}).passthrough().parse(e.modelProject.trainingSetup.recipe).rollout.groupSize;if(e.qualificationSamples!==void 0&&(!i||!Number.isInteger(e.qualificationSamples)||e.qualificationSamples<1||e.qualificationSamples>p))throw new Error("Qualification samples must be within the pinned rollout group and cannot be used for training.");if(i&&e.evaluationSource)throw new Error("Qualification does not consume an independent evaluation source.");let l=i?se(e.qualificationSource):null;if(!i&&e.qualificationSource)throw new Error("Qualification sources cannot be used for training.");if(!i&&e.qualificationTaskId!==void 0)throw new Error("Qualification selection cannot be used for training.");if(i&&(!e.qualificationTaskId||!t.tasks.some(u=>u.id===e.qualificationTaskId)))throw new Error("Qualification requires one explicit task ID from its published source.");if(l&&(l.modelResources||l.learningResources||d(t.tasks.map(me))!==d(l.taskset.tasks)||ye(e.tasksetRelease)!==ye(l.taskset)))throw new Error("Qualification must preserve its ordinary source release and complete task population.");let m=B.parse(r),v=B.parse(o);if(e.openpondRelease,e.workerProtocol,J(t)!==t.contentHash)throw new Error("Taskset authoring state changed after its release was selected.");if(!s.baseModel?.revision||!s.baseModel.tokenizerRevision||!s.baseModel.chatTemplateHash||!s.recipe||!s.tasksetRef||s.tasksetRef.id!==(i?o.id:t.id)||s.tasksetRef.contentHash!==(i?o.contentHash:t.contentHash))throw new Error("Model Run must bind an exact Taskset, Model revision, tokenizer, chat template, and Recipe.");let b=t.profileRelease??{id:`profile_${t.profileId}`,revision:t.revision,contentHash:d({profileId:t.profileId,sourceCommit:t.authoringProvenance.sourceCommit,skillHash:t.authoringProvenance.skillHash})},f=new Map;if(l&&z(f,"qualification-source.json",l),e.evaluationSource){let u=Z.parse(e.evaluationSource);if(d(u.taskset)!==d(s.evaluationTasksetRef))throw new Error("The evaluation source differs from the prepared Model configuration.");he(t.tasks.filter(w=>w.split==="train"),u.tasks),f.set(W,new TextEncoder().encode(D(u)))}else if(!i&&s.evaluationTasksetRef)throw new Error("The prepared Model requires its pinned evaluation source bytes.");let h=e.harnessSource?e.harnessSource.schemaVersion==="openpond.harnessPolicySourcePackage.v1"?de(e.harnessSource,m):le(e.harnessSource,m):null;if(s.harnessRelease&&!h)throw new Error("A selected Harness requires its complete immutable source package.");if(h&&(!s.harnessRelease||s.harnessRelease.id!==m.id||s.harnessRelease.contentHash!==m.contentHash))throw new Error("Harness source differs from the Model's explicit selection.");if(h){if((e.runtime.placement!=="local"||e.compute.kind!=="local")&&(!h.agentSnapshot.portability.portable||h.schemaVersion==="openpond.harnessSourcePackage.v1"&&h.harnessRelease.files.some(w=>w.visibility!=="policy")))throw new Error("The selected Harness contains source that cannot leave its local host.");z(f,"harness/source-package.json",h)}z(f,"harness/execution.json",ce.parse({schemaVersion:"openpond.harnessSourceSelection.v1",mode:h?"selected_release":"taskset_owned",harnessRelease:m,sourcePackageHash:h?.contentHash??null}));let x=pe(t,e.rewardExecution);if(l&&(!x||d(U(x.binding,x.rewards))!==d(l.taskset.graders)||l.taskset.graders.some(u=>u.kind==="model_judge"||u.kind==="human")))throw new Error("Qualification requires the source package's exact deterministic graders.");if(x){let u=e.verifierAssets??[],w=[...x.rewards.flatMap(g=>g.assets),...U(x.binding,x.rewards).flatMap(g=>g.kind==="custom_verifier"?[g.verifierRef]:g.kind==="model_judge"?[g.rubricRef]:[])],T=new Set(w.map(g=>g.id));if(new Set(u.map(g=>g.id)).size!==u.length||new Set(u.map(g=>g.asset.path)).size!==u.length||u.some(g=>!T.has(g.id)))throw new Error("Unexpected or duplicate private verifier asset.");for(let g of w){let L=u.find(Ae=>Ae.id===g.id);if(!L||g.visibility!=="verifier")throw new Error("Training bundle requires its private verifier asset.");O(L,g)}z(f,"reward-binding.json",{kind:"reward_binding_v1",binding:x.binding,rewards:x.rewards,assets:u})}else if(e.verifierAssets?.length)throw new Error("Private verifier assets require a published Reward binding.");let S=t.metadata.tasksetOutputContract;S&&typeof S=="object"&&"responsePath"in S&&ie.parse({jsonSchema:null,renderer:null,...S}),z(f,"environment.json",{schemaVersion:"openpond.harnessEnvironment.v1",environment:{...t.environment,metadata:{...t.environment.metadata,policySystemPrompt:t.objective}},capabilities:t.capabilities,policy:t.policy,outputContract:t.metadata.tasksetOutputContract?.mode==="text"?null:t.metadata.tasksetOutputContract??null}),z(f,"graders.json",{schemaVersion:"openpond.harnessGraders.v1",graders:t.graders,fixtures:t.graderFixtures}),z(f,"tool-contract.json",{schemaVersion:"openpond.harnessToolContract.v1",toolNames:t.environment.toolNames,actionBindings:t.environment.actionBindings??[],capabilities:t.capabilities,connectedAppScopes:t.policy.connectedAppScopes});let H=i?t.tasks.filter(u=>u.id===e.qualificationTaskId):t.tasks.filter(u=>u.split==="train");if(H.length>0)z(f,i?"dataset/qualification.json":"dataset/train.json",{schemaVersion:i?"openpond.qualificationDataset.v1":"openpond.datasetSplit.v1",...i?{selectedTaskId:e.qualificationTaskId}:{split:"train"},tasks:H}),Ve({assets:f,tasks:H,tasksetAssetBytes:e.tasksetAssetBytes??new Map});else if(t.datasetArtifact)z(f,"dataset/artifact.json",t.datasetArtifact);else throw new Error("Taskset has no training dataset.");let E=Object.values(t.learningSignals).flat().filter(u=>u.approved);for(let u of E){let w=Ee(u);f.set(`evidence/signals/${$(w)}.json`,w)}let A={id:`dataset_${t.id}_r${t.revision}`,contentHash:d({taskset:v,sourceRefs:t.sourceRefs,datasetArtifact:t.datasetArtifact??null,...i?{executionMode:"qualification",tasks:H}:{trainTasks:H}})},y=E.length>0?{id:`evidence_${t.id}_r${t.revision}`,contentHash:d({taskset:v,harnessRelease:m,datasetRelease:A,profileRelease:b,signals:E})}:null,_=Te.parse({schemaVersion:"openpond.resolvedTrainingBundle.v1",...i?{executionMode:"qualification"}:{},...e.qualificationSamples!==void 0?{qualificationSamples:e.qualificationSamples}:{},projection:"trainer",harnessRelease:m,datasetRelease:A,evidenceSetRelease:y,files:[...f.entries()].sort(([u],[w])=>u.localeCompare(w)).map(([u,w])=>({path:u,sha256:$(w),sizeBytes:w.byteLength}))}),C=He.parse({..._,contentHash:d(_)}),j=Re.parse({schemaVersion:"openpond.harnessRunManifest.v1",...i?{executionMode:"qualification"}:{},...e.qualificationSamples!==void 0?{qualificationSamples:e.qualificationSamples}:{},id:`manifest_${e.modelRunId}_${e.approval.approvalHash.slice(0,16)}`,harnessRelease:r,datasetRelease:A,evidenceSets:y?[y]:[],model:{source:s.baseModel.modelId,revision:s.baseModel.revision,artifactHash:null,tokenizerRevision:s.baseModel.tokenizerRevision,chatTemplateHash:s.baseModel.chatTemplateHash},recipe:{method:s.recipe.method,version:"openpond.trainingRecipe.v1",configHash:d(s.recipe)},runtimeTarget:e.runtime,computeTarget:e.compute,engine:e.engine,resolvedBundleHash:C.contentHash,secretLeaseRefs:e.secretLeaseRefs??[],approval:e.approval,createdAt:a.updatedAt});return{manifest:xe.parse({...j,contentHash:d(j)}),resolvedBundleManifest:C,assets:f,profileRelease:b,harnessRelease:m,tasksetRelease:v,datasetRelease:A,evidenceSetRelease:y}}k(ut,"buildTasksetTrainingBundle");function Ve(e){let t=new Set;for(let a of e.tasks)for(let r of a.assets??[]){t.add(r.artifactRef);let o=e.tasksetAssetBytes.get(r.artifactRef);if(!o)throw new Error(`Resolved Training Bundle is missing Work asset ${r.artifactRef}.`);if(o.byteLength!==r.sizeBytes||$(o)!==r.sha256)throw new Error(`Resolved Training Bundle Work asset ${r.artifactRef} failed immutable verification.`);e.assets.set(r.artifactRef,o)}for(let a of e.tasksetAssetBytes.keys())if(!t.has(a))throw new Error(`Resolved Training Bundle received unexpected Work asset ${a}.`)}k(Ve,"addTasksetAssets");function z(e,t,a){e.set(t,Ee(a))}k(z,"addJsonAsset");function Ee(e){return Buffer.from(D(e),"utf8")}k(Ee,"bytes");function ye(e){return d({id:e.id,contentHash:e.contentHash})}k(ye,"releasedRefHash");export{Me as a,je as b,Pe as c,xe as d,He as e,Be as f,ot as g,dt as h,Le as i,pt as j,mt as k,ut as l};
|
|
2
|
+
import{Ca as J,Cb as ue,Da as ne,Db as fe,Ha as re,Ia as oe,Ka as ce,Kb as W,La as de,Lb as Z,Ma as le,Mb as he,Na as pe,Nb as ge,Ob as ve,Pb as be,Qb as we,Rb as ke,Sa as me,_ as ae,ja as se,na as ie,v as te,wa as F}from"./chunk-5ZNE43XC.js";import{b as q,c as I,d as G,f as B,k as D,l as $,m as d}from"./chunk-HIQPGYVH.js";import{m as ee}from"./chunk-263WS3TB.js";import{K as V,R as O,b as K,ba as Y,ca as X}from"./chunk-XHU4BZQY.js";import{bb as U}from"./chunk-ZY32SZ2P.js";import{A as n}from"./chunk-X2J2P5ZT.js";import{a as k}from"./chunk-FTQLQJQV.js";var Ie=n.object({id:q,purpose:n.string().trim().min(1).max(500),audience:n.enum(["orchestrator","environment","privileged_scorer","trainer","infrastructure"]),required:n.boolean(),ttlSeconds:n.number().int().positive().max(86400),scopes:n.array(n.string().trim().min(1).max(500)).max(100).default([])}).strict(),qe=n.object({declarationId:q,leaseRef:n.string().trim().min(8).max(1e3),audience:Ie.shape.audience,expiresAt:G}).strict(),Me=n.object({adapterId:q,placement:n.enum(["local","remote","colocated","provider_native"]),capabilityReceipt:I,runtimeVersion:n.string().trim().min(1).max(200),dataPlane:n.object({provider:q,dataPlaneId:q,cellId:q,runnerPoolId:q,runtimeImageDigest:n.string().regex(/^sha256:[a-f0-9]{64}$/),capabilityReceipt:I}).strict().nullable()}).strict(),je=n.object({adapterId:q,kind:n.enum(["local","ssh","managed","custom"]),deviceOrPool:n.string().trim().min(1).max(1e3),capabilityReceipt:I,provider:q.nullable()}).strict(),Pe=n.object({adapterId:q,workerVersion:n.string().trim().min(1).max(200),workerImageDigest:n.string().regex(/^sha256:[a-f0-9]{64}$/).nullable(),upstreamRevision:n.string().trim().min(1).max(500),capabilityReceipt:I}).strict(),Re=n.object({schemaVersion:n.literal("openpond.harnessRunManifest.v1"),executionMode:n.literal("qualification").optional(),qualificationSamples:n.number().int().min(1).max(32).optional(),id:q,harnessRelease:B,datasetRelease:B,evidenceSets:n.array(B).max(1e4),model:n.object({source:n.string().trim().min(1).max(200),revision:n.string().trim().min(1).max(500),artifactHash:I.nullable(),tokenizerRevision:n.string().trim().min(1).max(500),chatTemplateHash:I}).strict(),recipe:n.object({method:n.string().trim().min(1).max(100),version:n.string().trim().min(1).max(200),configHash:I}).strict(),runtimeTarget:Me,computeTarget:je,engine:Pe,resolvedBundleHash:I,secretLeaseRefs:n.array(qe).max(1e3),approval:n.object({approvalHash:I,approvedAt:G,maximumSpendUsd:n.number().nonnegative().nullable()}).strict(),createdAt:G}).strict(),xe=Re.extend({contentHash:I}).strict(),Te=n.object({schemaVersion:n.literal("openpond.resolvedTrainingBundle.v1"),executionMode:n.literal("qualification").optional(),qualificationSamples:n.number().int().min(1).max(32).optional(),projection:n.literal("trainer"),harnessRelease:B,datasetRelease:B,evidenceSetRelease:B.nullable(),files:n.array(n.object({path:n.string().trim().min(1).max(2e3),sha256:I,sizeBytes:n.number().int().nonnegative()}).strict()).max(1e5)}).strict(),He=Te.extend({contentHash:I}).strict(),_e=[{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}],N=/\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}\b/gi,Q=/\b(?:\+?1[-.\s]?)?\(?\d{3}\)?[-.\s]\d{3}[-.\s]\d{4}\b/g;function Be(e){let t=[],a=e;for(let s of _e)s.pattern.lastIndex=0,s.pattern.test(a)&&t.push(s.label),s.pattern.lastIndex=0,a=a.replace(s.pattern,`[REDACTED ${s.label}]`);N.lastIndex=0;let r=N.test(a);N.lastIndex=0,r&&t.push("email address"),a=a.replace(N,"[REDACTED email]"),Q.lastIndex=0;let o=Q.test(a);return Q.lastIndex=0,o&&t.push("phone number"),a=a.replace(Q,"[REDACTED phone]"),{secretStatus:t.some(s=>!s.includes("email")&&!s.includes("phone"))?"blocked":"passed",piiStatus:r||o?"review":"passed",findings:t,redacted:a}}k(Be,"scanAndRedactEvidence");function ze(e){let t=new Map;return{tasks:e.tasks.map(({artifactRefs:r,...o})=>({...o,assets:r.map(s=>{if(s.visibility!=="policy")throw new Error("Learning task inputs must be policy-visible assets.");let i=e.assets?.find(m=>m.id===s.id),p=e.assetBytes?.get(s.id)??(i?new TextEncoder().encode(O(i,s)):void 0);if(!p||p.byteLength!==s.sizeBytes||$(p)!==s.contentHash)throw new Error(`Learning task input bytes are missing or changed: ${s.id}.`);let l=`learning/assets/${d({task:o.id,asset:s.id}).slice(0,40)}/${s.path}`;return t.set(l,new Uint8Array(p)),{id:s.id,sourceRefId:e.sourceId,artifactRef:l,fileName:s.path.split("/").at(-1),stagingPath:s.path,mediaType:s.mediaType,sha256:s.contentHash,sizeBytes:s.sizeBytes,split:o.split,metadata:{portableAsset:s}}}),...o.requiredOutputs?{requiredOutputs:o.requiredOutputs.map(s=>({...s,schemaRef:s.schemaRef?.id??null,maxBytes:s.maxBytes??void 0}))}:{}})),tasksetAssetBytes:t}}k(ze,"materializeLearningBatchAssets");function Ce(e){let t=Y(e),a=X(t),r=t.environment.kind==="work";if(!r&&(t.environment.kind!=="text"||t.tools.length||t.tasks.some(c=>c.artifactRefs.length))||r&&t.tasks.some(c=>!c.requiredOutputs?.length))throw new Error("This learning batch requires a supported text or Work environment with declared outputs.");let o=e.source.id,s=ze({tasks:t.tasks,sourceId:o,assets:e.assets,assetBytes:e.assetBytes}),i={demonstrations:[],preferences:[],corrections:[],feedback:[],rewards:[],labels:[]},p=[];for(let c of a.admissions){let b=e.evidence.find(h=>h.id===c.evidence.id),f=e.decisions.find(h=>h.id===c.decision.id);e.batch.purpose==="reward_training"&&f.grade?.training.status==="scored"&&i.rewards.push({id:`reward-${c.taskId}`,taskId:c.taskId,kind:"reward",task:e.definition.instructions,rules:[{id:e.binding.id,points:1,condition:"Execute the released Reward binding with its declared normalization, weights and gates."}],otherwisePoints:0,executable:!0,approved:!0,confidence:1,sourceRefs:[o],artifactRef:e.binding.id,metadata:{rewardBinding:V(e.binding),evidence:c.evidence,decision:c.decision}}),c.supervisedTarget!==null&&i.demonstrations.push({kind:"demonstration",id:`demo-${c.taskId}`,taskId:c.taskId,sourceRefs:[o],artifactRef:c.decision.id,approved:!0,confidence:1,prompt:null,response:JSON.stringify(c.supervisedTarget),metadata:{evidence:c.evidence,decision:c.decision,targetGradeHash:f.targetGrade?.contentHash}});for(let[h,x,S]of[["observed",b.submission.observedOutput,f.grade],["target",f.approvedTarget,f.targetGrade]]){let H=Oe(S);x===null||H===null||p.push({id:`fixture-${h}-${c.taskId}`,taskId:c.taskId,label:H.passed?"positive":"negative",output:x,infrastructureError:null,expectedPassed:H.passed,expectedRewardEligible:H.rewardEligible,metadata:{gradeReceiptHash:S.contentHash,evidence:c.evidence,decision:c.decision}})}}if(!p.length&&e.batch.purpose!=="reward_training")throw new Error("Grade at least one reviewed response before preparing this batch. Grader fixtures must come from actual receipts.");let l=ne(e.binding,e.rewards,e.assets),m=[];for(let c of t.graders){if(c.kind!=="custom_verifier")continue;let b=e.assets?.find(h=>h.id===c.verifierRef.id);if(!b)throw new Error(`Reward ${c.id} is missing its immutable verifier source.`);let f=c.verifierRef.path;m.some(h=>h.path===f)||m.push({path:f,role:"verifier",content:O(b,c.verifierRef)})}let v=F.parse({schemaVersion:"openpond.taskset.v1",id:`learning-${d([e.profileId,e.batch.contentHash]).slice(0,40)}`,revision:1,profileId:e.profileId,profileRelease:null,createImproveRunId:null,name:`${e.definition.name} \xB7 ${e.batch.examples.length} approved examples`,objective:e.definition.instructions,purpose:"general",benchmark:null,status:"needs_review",sourceRefs:[e.source],datasetArtifact:null,policy:t.policy,environment:{protocolVersion:"openpond.taskEnvironment.v1",kind:r?"work":"chat",entrypoint:t.environment.entrypoint,stateful:t.environment.stateful,deterministicSeeds:t.environment.deterministicSeeds,toolNames:t.tools.map(c=>c.name),lifecycle:["create","reset","step","grade","cleanup"],defaultTimeoutMs:t.environment.defaultTimeoutMs,networkPolicy:t.environment.networkPolicy,metadata:{portableEnvironment:t.environment,portableTools:t.tools}},capabilities:{schemaVersion:"openpond.tasksetCapabilities.v1",taskKind:r?"single_agent":"chat",supportedSignals:i.demonstrations.length?["demonstration","reward"]:["reward"],compatibleMethods:e.batch.purpose==="supervised_training"?["sft"]:e.batch.purpose==="reward_training"?["grpo","ppo"]:["none"],rewardKinds:[...new Set(t.graders.map(c=>c.kind==="human"?"human":c.kind==="model_judge"?"model_judge":"deterministic"))],requiresTools:t.tools.length>0,requiresState:t.environment.stateful,requiresPrivilegedGrading:!0,environmentPlacements:["local","remote"],exportable:!0,portabilityBlockers:[]},tasks:s.tasks.map(c=>({...c,schemaVersion:"openpond.taskData.v1",sourceRefs:[o],metadata:{admission:a.admissions.find(b=>b.taskId===c.id),exampleOrigin:e.evidence.find(b=>b.id===c.id)?.correctionFeedbackId?"corrected":"extracted"}})),graders:l,graderFixtures:p,learningSignals:i,authoringProvenance:{schemaVersion:"openpond.taskAuthoringProvenance.v1",model:null,modelConfig:{},skillHash:d("openpond-learning-batch-v1"),promptTemplateVersion:"learning-batch-v1",buildIntent:e.batch.purpose==="supervised_training"?"demonstrations":"verifiable_reward",buildSpecification:null,evidenceHashes:e.batch.examples.map(c=>c.evidence.contentHash),tasksetSdkVersion:"learning-batch-v1",sourceCommit:null,repairHistory:[],createdAt:e.batch.sealedAt},readiness:null,contentHash:"00000000",createdAt:e.batch.sealedAt,updatedAt:e.batch.sealedAt,metadata:{learning:a,learningRelease:V(t),trainingMethod:e.batch.purpose==="supervised_training"?"sft":e.batch.purpose==="reward_training"?"grpo":"none",tasksetOutputContract:r?{mode:"artifacts",requiredOutputSource:"task.requiredOutputs"}:{mode:"structured_json",jsonSchema:e.definition.outputSchema,renderer:null}}});return{taskset:F.parse({...v,contentHash:J(v)}),release:t,generatedFiles:m,tasksetAssetBytes:s.tasksetAssetBytes}}k(Ce,"materializeLearningBatchTaskset");function Oe(e){if(!e)return null;let t=e.training.status==="not_configured"?e.evaluation:e.training;return t.status!=="scored"?null:{passed:t.passed===!0,rewardEligible:e.training.status==="scored"}}k(Oe,"fixtureOutcome");function ot(e){let t=[],a=0;for(let s of new Map(e.evidence.flatMap(i=>i.submission.assets.map(p=>[p.id,p]))).values()){let i=e.assetBytes?.get(s.id),p=e.assets?.find(m=>m.id===s.id),l=i?.byteLength??(p?new TextEncoder().encode(p.text).byteLength:0);if(a+=l,a>ae)throw new Error("Learning input assets exceed the training package limit.");i?t.push(new TextDecoder().decode(i)):p&&t.push(p.text)}let r=Be(JSON.stringify({tasks:e.evidence.map(s=>s.submission),targets:e.decisions.map(s=>s.approvedTarget),definition:e.definition,inputAssets:t}));if(r.secretStatus!=="passed"||r.piiStatus!=="passed")throw new Error(`Learning batch contains unresolved data findings (${r.findings.join(", ")}). Correct the source examples and seal a revised batch before training.`);let o=te.parse({schemaVersion:"openpond.learningBatchDatasetSource.v1",kind:"learning_batch",id:`batch-source-${e.batch.contentHash.slice(0,40)}`,profileId:e.profileId,title:e.definition.name,sourceHash:e.batch.contentHash,occurredAt:e.batch.sealedAt,batch:V(e.batch),taskDefinition:e.batch.taskDefinition,admittedBy:e.batch.sealedBy,licensingStatus:"approved",secretScanStatus:r.secretStatus,piiScanStatus:r.piiStatus,metadata:{admission:e.admissionContext??"explicit_local_batch_review",privacyScanner:"openpond-evidence-v1",findings:r.findings}});return Ce({...e,source:o})}k(ot,"prepareReviewedLearningBatch");async function dt(e){let t=structuredClone(e),{project:a,recipe:r,taskset:o,approval:s}=t,i=xe.parse(t.manifest),p=He.parse(t.bundleManifest),l=t.executionMode==="qualification",m=t.gpuSelection??a.trainingSetup.managedGpuSelection?ee.parse(t.gpuSelection??a.trainingSetup.managedGpuSelection):void 0,v=t.physicalPlacement?fe.parse(t.physicalPlacement):void 0,c=i.qualificationSamples===void 0?null:n.object({rollout:n.object({groupSize:n.number().int().min(2).max(32)}).passthrough()}).passthrough().parse(r).rollout.groupSize;if(i.qualificationSamples!==p.qualificationSamples||i.qualificationSamples!==void 0&&(!l||i.qualificationSamples>c))throw new Error("Qualification samples must be within the pinned rollout group and cannot be used for training.");if(i.executionMode!==t.executionMode||p.executionMode!==t.executionMode)throw new Error("Managed submission execution mode differs from its immutable bundle.");if(l&&(t.evaluationSource||t.resumeFrom||t.rewardSource.kind!=="deterministic"))throw new Error("Qualification requires the original learner, deterministic rewards, and no evaluation source.");let{contentHash:b,...f}=i,{contentHash:h,...x}=p;if(d(f)!==b||d(x)!==h||i.resolvedBundleHash!==h||d(i.harnessRelease)!==d(p.harnessRelease)||d(i.datasetRelease)!==d(p.datasetRelease)||d(i.evidenceSets)!==d(p.evidenceSetRelease?[p.evidenceSetRelease]:[]))throw new Error("The managed training manifest or resolved bundle changed.");if(!a.hosted||a.hosted.syncedSourceRevision!==a.revision||a.hosted.portableProjectId!==a.id)throw new Error("Sync the exact Model Project revision before preparing managed training.");let S=a.trainingSetup.baseModel;if(!S||S.modelId!==i.model.source||S.revision!==i.model.revision||S.tokenizerRevision!==i.model.tokenizerRevision||S.chatTemplateHash!==i.model.chatTemplateHash)throw new Error("The synced Model Project base Model does not match the Run manifest.");if(!["grpo","sft"].includes(r.method)||d(r)!==i.recipe.configHash||s.approvalHash!==i.approval.approvalHash||s.maximumSpendUsd!==i.approval.maximumSpendUsd)throw new Error("Managed training requires the exact approved supported recipe and spend ceiling.");if(r.method==="sft"){let T=ue.parse(r);if(d(T)!==d(r))throw new Error("SFT recipe must be fully materialized before approval.");if(l||t.resumeFrom||v||(m?.gpuCount??1)!==1)throw new Error("Initial managed SFT requires a fresh single-GPU run without reuse-only placement or rollout qualification.")}let H=n.object({wallTimeMs:n.number().positive()}).parse(r.resourceLimits);t.idempotencyKey!==void 0&&n.string().trim().min(16).max(191).parse(t.idempotencyKey);let E=$e(p,t.files),A=l?null:Z.parse(t.evaluationSource),y=E.find(T=>T.path===W);if(A&&(!y||d(JSON.parse(Buffer.from(y.content,"base64").toString("utf8")))!==d(A)))throw new Error("The evaluation source differs from the immutable training bundle.");if(l&&(y||E.some(T=>T.path==="dataset/train.json")||!E.some(T=>T.path==="dataset/qualification.json")||!E.some(T=>T.path==="qualification-source.json")))throw new Error("Qualification requires its dedicated dataset and no training/evaluation datasets.");if(!l&&E.some(T=>T.path==="dataset/qualification.json"||T.path==="qualification-source.json"))throw new Error("Qualification datasets cannot be prepared as training.");let _=A?await ge(A):null,C={schemaVersion:"openpond.managedRlPortableSubmission.v1",...l?{executionMode:"qualification"}:{},...t.origin?{origin:K.parse(t.origin)}:{},...v?{physicalPlacement:v}:{},sourceRunRef:`openpond:model-run:${i.id}`,name:`OpenPond Managed \xB7 ${a.id}`.slice(0,191),idempotencyKey:t.idempotencyKey??`openpond-managed:${b}`.slice(0,191),modelProject:{id:a.hosted.projectId,portableProjectId:a.hosted.portableProjectId},manifest:i,sourceTaskset:o,modelImprovementQualification:t.modelImprovementQualification??null,recipe:r,resolvedBundle:{manifest:p,files:E},validationTasks:A?.tasks??[],validationAssets:A?.assets??[]},j={schemaVersion:"openpond.trainingInputArtifactUpload.v2",kind:"portable_training_bundle",idempotencyKey:`stage:${t.idempotencyKey??b}`,sourceManifest:{id:i.id,contentHash:b},payload:C},P=await be({...j,contentHash:await ve(j)}),u={schemaVersion:"openpond.trainingJobSubmission.v2",idempotencyKey:t.idempotencyKey??`openpond-training-v2:${b}`,name:`OpenPond Managed \xB7 ${a.id}`.slice(0,200),source:{...t.origin?{origin:K.parse(t.origin)}:{},modelProject:{id:a.hosted.projectId,portableProjectId:a.hosted.portableProjectId,revision:a.revision,contentHash:a.hosted.etag},harnessRunManifest:j.sourceManifest,harnessRelease:i.harnessRelease,taskset:o,tasksetRelease:{id:o.id,contentHash:o.contentHash},dataset:p.datasetRelease,..._?{evaluation:_}:{},evidenceSets:p.evidenceSetRelease?[p.evidenceSetRelease]:[]},job:{kind:"policy_optimize",...l?{executionMode:"qualification"}:{},baseModel:S,recipe:r,rewardSource:t.rewardSource,resumeFrom:t.resumeFrom},requestedCapabilities:[{id:l?"managed_rl.policy.qualification":r.method==="sft"?"managed_training.sft":"managed_rl.policy.grpo",version:"1",required:!0},...m?.gpuCount===2?[{id:"managed_rl.policy.data_parallel",version:"1",required:!0}]:[],{id:`managed_rl.rollouts.${i.runtimeTarget.placement}`,version:"1",required:!0},...a.trainingSetup.managedGpuRequirement==="h100_hbm3"?[{id:"managed_rl.gpu.h100_hbm3",version:"1",required:!0}]:[]],placementObjective:a.trainingSetup.managedGpuPlacementObjective,...m?{gpuSelection:m}:{},...v?{physicalPlacement:v}:{},budget:{maximumSpendUsd:s.maximumSpendUsd,maximumWallSeconds:Math.ceil(H.wallTimeMs/1e3)},approval:{...s,approvedAt:i.approval.approvedAt,exportApproved:!0}},w=await ke({...u,contentHash:await we(u)});return{artifact:P,submission:w}}k(dt,"prepareManagedTrainingSubmission");function $e(e,t){if(t.length!==e.files.length||new Set(t.map(r=>r.path)).size!==t.length)throw new Error("The managed bundle file inventory changed.");let a=new Map(t.map(r=>[r.path,r]));return e.files.map(r=>{let o=a.get(r.path);if(!o||o.path.includes("\\")||o.path.includes("\0")||o.path.split("/").some(i=>!i||i==="."||i==="..")||o.path==="bundle-manifest.json"||o.encoding!=="base64")throw new Error("The managed bundle contains an invalid file.");let s=Buffer.from(o.content,"base64");if(s.toString("base64")!==o.content||o.sha256!==r.sha256||o.sizeBytes!==r.sizeBytes||s.byteLength!==r.sizeBytes||$(s)!==r.sha256)throw new Error(`Managed training bundle file ${o.path} changed before upload.`);return o})}k($e,"verifyFiles");var Le=n.object({name:n.literal("adamw").default("adamw"),weightDecay:n.number().nonnegative().max(1).default(0),beta1:n.number().positive().lt(1).default(.9),beta2:n.number().positive().lt(1).default(.999),epsilon:n.number().positive().max(.01).default(1e-8)}).strict().default({name:"adamw",weightDecay:0,beta1:.9,beta2:.999,epsilon:1e-8});function pt(e,t){if(!t||typeof t!="object"||Array.isArray(t))return t;let a=t;if(a.method==="dpo"){let y=R(a.policyModel),_=R(a.referenceModel),C=R(a.dataset),j=d({tasksetHash:e.contentHash,preferenceSignals:e.learningSignals.preferences.map(P=>({id:P.id,artifactRef:P.artifactRef,prompt:P.prompt,chosen:P.chosen,rejected:P.rejected,approved:P.approved})),policyModel:y,referenceModel:_,dataset:C});return{...a,referenceLogprobs:{cacheSchemaVersion:"openpond.dpoReferenceLogprobs.v1",cacheKey:d(["dpo-reference-logprobs",j]),invalidationHash:j}}}if(a.method==="ppo"){let y=R(a.policyOptimization),_=R(y.policyModel),C=R(y.referenceModel),j=R(y.optimizer),P=R(j.valueModel),u=R(y.dataset),w=R(y.reward),T=d(_),g=d(C),L=d(P);return{...a,policyOptimization:{...y,dataset:{...u,tasksetId:e.id,tasksetHash:e.contentHash},reward:{...w,graderHash:d(e.graders)}},resume:{...R(a.resume),policyHash:T,referenceHash:g,valueModelHash:L}}}if(a.method!=="grpo")return t;let r=a.reward&&typeof a.reward=="object"&&!Array.isArray(a.reward)?a.reward:{},o=e.environment.metadata.toolContractHash,s=typeof o=="string"&&o.trim()?o:r.toolContractHash,i=R(a.baseModel),p=R(a.dataset),l=R(a.rollout),m=R(a.optimizer),v=R(a.loss),c=R(a.resourceLimits),b=M(p.maxExamples,1),f=M(l.groupSize,2),h=M(l.maxOutputTokens,1),x=M(p.maxPromptTokens,1),S=M(m.maxSteps,1),H=M(m.iterations,2),E=M(c.maxRollouts,S*f),A=M(l.maxTurns,1);return{...a,resourceLimits:{...c,maxGpuSeconds:c.maxGpuSeconds??Math.min(10800,Math.ceil(M(c.wallTimeMs,18e4)/1e3))},reward:{...r,graderHash:d(e.graders),toolContractHash:s},policyOptimization:{schemaVersion:"openpond.policyOptimization.v1",policyModel:i,referenceModel:i,dataset:{tasksetId:e.id,tasksetHash:e.contentHash,split:"train",selectionStrategy:p.selectionStrategy,selectionSeed:l.seed,maxExamples:b},sampler:{temperature:l.temperature,topP:l.topP,maxOutputTokens:h,maxTurns:l.maxTurns,concurrency:l.concurrency},environment:{id:r.environmentId,version:r.environmentVersion,toolContractHash:s},reward:{graderId:r.graderId,graderHash:d(e.graders),learnedPreference:r.learnedPreference??null},kl:{coefficient:v.klBeta??null,referenceConstraint:"fixed_reference"},budgets:{maxRollouts:E,maxEnvironmentExecutions:E,maxInputTokens:E*A*x,maxOutputTokens:E*A*h,maxOptimizerSteps:S*H,wallTimeMs:M(c.wallTimeMs,18e4),maximumCostUsd:null},checkpointEverySteps:1,seed:l.seed,evaluationSplit:"frozen_eval",optimizer:{method:"grpo",groupSize:f,normalization:"group_standardized",advantageEpsilon:typeof m.advantageEpsilon=="number"?m.advantageEpsilon:1e-8,loss:v.method??"grpo",clipRange:typeof m.clipRange=="number"?m.clipRange:.2,iterations:H,microbatchSize:M(m.microbatchSize,1),gradientAccumulationSteps:M(m.gradientAccumulationSteps,1),adamw:Le.parse(m.adamw)}}}}k(pt,"withAuthoritativeRecipeHashes");function R(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:{}}k(R,"record");function M(e,t){return typeof e=="number"&&Number.isInteger(e)&&e>0?e:t}k(M,"positiveInteger");function mt(e){let t=e.sourceRelease,a=[],r=e.skills??[],o=e.agents??[];if([...r,...o].some(m=>m.visibility!=="policy"))throw new Error("The portable policy Harness requires policy-visible dependencies.");let s=Se({id:"desktop-dependency-lock",path:".openpond/harness/dependency-lock.json",hashInput:{profileHead:e.profileHead??null,sourceRelease:t,tools:a,skills:r.map(({id:m,contentHash:v})=>({id:m,contentHash:v})),agents:o.map(({id:m,contentHash:v})=>({id:m,contentHash:v}))},mediaType:"application/json",visibility:"policy"}),i=re({schemaVersion:"openpond.agentSnapshot.v2",id:`agent-snapshot-${d([t,a,s.contentHash]).slice(0,24)}`,sourceRelease:t,instructions:[],skills:r,agents:o,toolDeclarations:a,capabilityRequirements:[],dependencyLock:s,portability:{portable:!0,blockers:[],localOnlyAssetRefs:[],hostPrivateAssetRefs:[]},metadata:{sourceReleaseId:t?.id??null}}),p=Se({id:"desktop-harness-program",path:".openpond/harness/program.json",hashInput:{program:"openpond.desktop-agent-loop.v1"},mediaType:"application/json",visibility:"policy"}),l=oe({schemaVersion:"openpond.harnessRelease.v2",id:`harness-${d([i.contentHash,p.contentHash,a]).slice(0,24)}`,agentSnapshot:{id:i.id,contentHash:i.contentHash},program:p,tools:a,lifecycle:{create:!0,reset:!0,step:!0,collect:!0,destroy:!0,resetScope:"attempt"},graderInterface:{visibleEvidence:["output","runtime_events","artifacts"],privilegedEvidence:["expected_output","private_verifier"],privateVerifierIsolation:!0},files:[...r,...o],metadata:{runtimeProtocol:"openpond.desktop-agent-loop.v1"}});return{agentSnapshot:i,harnessRelease:l}}k(mt,"createPolicyHarnessContext");function Se(e){let t=D(e.hashInput);return{id:e.id,path:e.path,contentHash:d(e.hashInput),sizeBytes:new TextEncoder().encode(t).byteLength,mediaType:e.mediaType,visibility:e.visibility}}k(Se,"asset");function ut(e){let{taskset:t,modelProject:a,harnessRelease:r,tasksetRelease:o}=e,s=a.trainingSetup,i=e.executionMode==="qualification",p=e.qualificationSamples===void 0?null:n.object({rollout:n.object({groupSize:n.number().int().min(2).max(32)}).passthrough()}).passthrough().parse(e.modelProject.trainingSetup.recipe).rollout.groupSize;if(e.qualificationSamples!==void 0&&(!i||!Number.isInteger(e.qualificationSamples)||e.qualificationSamples<1||e.qualificationSamples>p))throw new Error("Qualification samples must be within the pinned rollout group and cannot be used for training.");if(i&&e.evaluationSource)throw new Error("Qualification does not consume an independent evaluation source.");let l=i?se(e.qualificationSource):null;if(!i&&e.qualificationSource)throw new Error("Qualification sources cannot be used for training.");if(!i&&e.qualificationTaskId!==void 0)throw new Error("Qualification selection cannot be used for training.");if(i&&(!e.qualificationTaskId||!t.tasks.some(u=>u.id===e.qualificationTaskId)))throw new Error("Qualification requires one explicit task ID from its published source.");if(l&&(l.modelResources||l.learningResources||d(t.tasks.map(me))!==d(l.taskset.tasks)||ye(e.tasksetRelease)!==ye(l.taskset)))throw new Error("Qualification must preserve its ordinary source release and complete task population.");let m=B.parse(r),v=B.parse(o);if(e.openpondRelease,e.workerProtocol,J(t)!==t.contentHash)throw new Error("Taskset authoring state changed after its release was selected.");if(!s.baseModel?.revision||!s.baseModel.tokenizerRevision||!s.baseModel.chatTemplateHash||!s.recipe||!s.tasksetRef||s.tasksetRef.id!==(i?o.id:t.id)||s.tasksetRef.contentHash!==(i?o.contentHash:t.contentHash))throw new Error("Model Run must bind an exact Taskset, Model revision, tokenizer, chat template, and Recipe.");let b=t.profileRelease??{id:`profile_${t.profileId}`,revision:t.revision,contentHash:d({profileId:t.profileId,sourceCommit:t.authoringProvenance.sourceCommit,skillHash:t.authoringProvenance.skillHash})},f=new Map;if(l&&z(f,"qualification-source.json",l),e.evaluationSource){let u=Z.parse(e.evaluationSource);if(d(u.taskset)!==d(s.evaluationTasksetRef))throw new Error("The evaluation source differs from the prepared Model configuration.");he(t.tasks.filter(w=>w.split==="train"),u.tasks),f.set(W,new TextEncoder().encode(D(u)))}else if(!i&&s.evaluationTasksetRef)throw new Error("The prepared Model requires its pinned evaluation source bytes.");let h=e.harnessSource?e.harnessSource.schemaVersion==="openpond.harnessPolicySourcePackage.v1"?de(e.harnessSource,m):le(e.harnessSource,m):null;if(s.harnessRelease&&!h)throw new Error("A selected Harness requires its complete immutable source package.");if(h&&(!s.harnessRelease||s.harnessRelease.id!==m.id||s.harnessRelease.contentHash!==m.contentHash))throw new Error("Harness source differs from the Model's explicit selection.");if(h){if((e.runtime.placement!=="local"||e.compute.kind!=="local")&&(!h.agentSnapshot.portability.portable||h.schemaVersion==="openpond.harnessSourcePackage.v1"&&h.harnessRelease.files.some(w=>w.visibility!=="policy")))throw new Error("The selected Harness contains source that cannot leave its local host.");z(f,"harness/source-package.json",h)}z(f,"harness/execution.json",ce.parse({schemaVersion:"openpond.harnessSourceSelection.v1",mode:h?"selected_release":"taskset_owned",harnessRelease:m,sourcePackageHash:h?.contentHash??null}));let x=pe(t,e.rewardExecution);if(l&&(!x||d(U(x.binding,x.rewards))!==d(l.taskset.graders)||l.taskset.graders.some(u=>u.kind==="model_judge"||u.kind==="human")))throw new Error("Qualification requires the source package's exact deterministic graders.");if(x){let u=e.verifierAssets??[],w=[...x.rewards.flatMap(g=>g.assets),...U(x.binding,x.rewards).flatMap(g=>g.kind==="custom_verifier"?[g.verifierRef]:g.kind==="model_judge"?[g.rubricRef]:[])],T=new Set(w.map(g=>g.id));if(new Set(u.map(g=>g.id)).size!==u.length||new Set(u.map(g=>g.asset.path)).size!==u.length||u.some(g=>!T.has(g.id)))throw new Error("Unexpected or duplicate private verifier asset.");for(let g of w){let L=u.find(Ae=>Ae.id===g.id);if(!L||g.visibility!=="verifier")throw new Error("Training bundle requires its private verifier asset.");O(L,g)}z(f,"reward-binding.json",{kind:"reward_binding_v1",binding:x.binding,rewards:x.rewards,assets:u})}else if(e.verifierAssets?.length)throw new Error("Private verifier assets require a published Reward binding.");let S=t.metadata.tasksetOutputContract;S&&typeof S=="object"&&"responsePath"in S&&ie.parse({jsonSchema:null,renderer:null,...S}),z(f,"environment.json",{schemaVersion:"openpond.harnessEnvironment.v1",environment:{...t.environment,metadata:{...t.environment.metadata,policySystemPrompt:t.objective}},capabilities:t.capabilities,policy:t.policy,outputContract:t.metadata.tasksetOutputContract?.mode==="text"?null:t.metadata.tasksetOutputContract??null}),z(f,"graders.json",{schemaVersion:"openpond.harnessGraders.v1",graders:t.graders,fixtures:t.graderFixtures}),z(f,"tool-contract.json",{schemaVersion:"openpond.harnessToolContract.v1",toolNames:t.environment.toolNames,actionBindings:t.environment.actionBindings??[],capabilities:t.capabilities,connectedAppScopes:t.policy.connectedAppScopes});let H=i?t.tasks.filter(u=>u.id===e.qualificationTaskId):t.tasks.filter(u=>u.split==="train");if(H.length>0)z(f,i?"dataset/qualification.json":"dataset/train.json",{schemaVersion:i?"openpond.qualificationDataset.v1":"openpond.datasetSplit.v1",...i?{selectedTaskId:e.qualificationTaskId}:{split:"train"},tasks:H}),Ve({assets:f,tasks:H,tasksetAssetBytes:e.tasksetAssetBytes??new Map});else if(t.datasetArtifact)z(f,"dataset/artifact.json",t.datasetArtifact);else throw new Error("Taskset has no training dataset.");let E=Object.values(t.learningSignals).flat().filter(u=>u.approved);for(let u of E){let w=Ee(u);f.set(`evidence/signals/${$(w)}.json`,w)}let A={id:`dataset_${t.id}_r${t.revision}`,contentHash:d({taskset:v,sourceRefs:t.sourceRefs,datasetArtifact:t.datasetArtifact??null,...i?{executionMode:"qualification",tasks:H}:{trainTasks:H}})},y=E.length>0?{id:`evidence_${t.id}_r${t.revision}`,contentHash:d({taskset:v,harnessRelease:m,datasetRelease:A,profileRelease:b,signals:E})}:null,_=Te.parse({schemaVersion:"openpond.resolvedTrainingBundle.v1",...i?{executionMode:"qualification"}:{},...e.qualificationSamples!==void 0?{qualificationSamples:e.qualificationSamples}:{},projection:"trainer",harnessRelease:m,datasetRelease:A,evidenceSetRelease:y,files:[...f.entries()].sort(([u],[w])=>u.localeCompare(w)).map(([u,w])=>({path:u,sha256:$(w),sizeBytes:w.byteLength}))}),C=He.parse({..._,contentHash:d(_)}),j=Re.parse({schemaVersion:"openpond.harnessRunManifest.v1",...i?{executionMode:"qualification"}:{},...e.qualificationSamples!==void 0?{qualificationSamples:e.qualificationSamples}:{},id:`manifest_${e.modelRunId}_${e.approval.approvalHash.slice(0,16)}`,harnessRelease:r,datasetRelease:A,evidenceSets:y?[y]:[],model:{source:s.baseModel.modelId,revision:s.baseModel.revision,artifactHash:null,tokenizerRevision:s.baseModel.tokenizerRevision,chatTemplateHash:s.baseModel.chatTemplateHash},recipe:{method:s.recipe.method,version:"openpond.trainingRecipe.v1",configHash:d(s.recipe)},runtimeTarget:e.runtime,computeTarget:e.compute,engine:e.engine,resolvedBundleHash:C.contentHash,secretLeaseRefs:e.secretLeaseRefs??[],approval:e.approval,createdAt:a.updatedAt});return{manifest:xe.parse({...j,contentHash:d(j)}),resolvedBundleManifest:C,assets:f,profileRelease:b,harnessRelease:m,tasksetRelease:v,datasetRelease:A,evidenceSetRelease:y}}k(ut,"buildTasksetTrainingBundle");function Ve(e){let t=new Set;for(let a of e.tasks)for(let r of a.assets??[]){t.add(r.artifactRef);let o=e.tasksetAssetBytes.get(r.artifactRef);if(!o)throw new Error(`Resolved Training Bundle is missing Work asset ${r.artifactRef}.`);if(o.byteLength!==r.sizeBytes||$(o)!==r.sha256)throw new Error(`Resolved Training Bundle Work asset ${r.artifactRef} failed immutable verification.`);e.assets.set(r.artifactRef,o)}for(let a of e.tasksetAssetBytes.keys())if(!t.has(a))throw new Error(`Resolved Training Bundle received unexpected Work asset ${a}.`)}k(Ve,"addTasksetAssets");function z(e,t,a){e.set(t,Ee(a))}k(z,"addJsonAsset");function Ee(e){return Buffer.from(D(e),"utf8")}k(Ee,"bytes");function ye(e){return d({id:e.id,contentHash:e.contentHash})}k(ye,"releasedRefHash");export{Me as a,je as b,Pe as c,xe as d,He as e,Be as f,ot as g,dt as h,Le as i,pt as j,mt as k,ut as l};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
-
import{a as D,b as J,c as q}from"./chunk-Q3WXB465.js";import{a as Y}from"./chunk-
|
|
2
|
+
import{a as D,b as J,c as q}from"./chunk-Q3WXB465.js";import{a as Y}from"./chunk-YMCF5GR2.js";import{a as L}from"./chunk-FEAKTSRS.js";import{b as z}from"./chunk-L3KS6MOV.js";import{na as F}from"./chunk-CJDGLPNX.js";import{X as C,x as W}from"./chunk-ZY32SZ2P.js";import{m as N,n as j}from"./chunk-RCT3O3HQ.js";import{A as x}from"./chunk-X2J2P5ZT.js";import{a as i}from"./chunk-FTQLQJQV.js";import{createHash as se}from"node:crypto";function U(a){let d=a.replace(/^\/workspace\/outputs\//,"").replace(/^\/workspace\/work\/outputs\//,"").replace(/^outputs\//,"");if(!d||d.startsWith("/")||d.includes("\0")||d.split(/[\\/]/).some(g=>!g||g==="."||g===".."))throw new Error("Select one file inside this case's writable outputs.");return d}i(U,"confinedProfileOutputPath");var K=i(a=>`'${a.replaceAll("'","'\\''")}'`,"quote");async function V(a){let d=U(a.path),g="const f=require('fs'),p=require('path'),c=require('crypto'),a=JSON.parse(process.argv[1]),r=f.realpathSync('/workspace/work/outputs'),q=f.realpathSync(p.join(r,a.path));if(!q.startsWith(r+'/'))throw Error('Output path escapes the case');const s=f.statSync(q);if(!s.isFile()||s.size>10000000)throw Error('Output exceeds its bound');if(a.offset===undefined){const b=f.readFileSync(q);process.stdout.write(JSON.stringify({size:b.length,hash:c.createHash('sha256').update(b).digest('hex')}))}else{const h=f.openSync(q,'r'),b=Buffer.alloc(Math.min(524288,s.size-a.offset));try{const n=f.readSync(h,b,0,b.length,a.offset);process.stdout.write(b.subarray(0,n).toString('base64'))}finally{f.closeSync(h)}}";async function w(E){let y=await a.command(`/runtime/node -e ${K(g)} ${K(JSON.stringify({path:d,...E!==void 0?{offset:E}:{}}))}`);if(y.code!==0)throw new Error("The confined output could not be read.");return y.stdout}i(w,"read");let b=x.object({size:x.number().int().min(1).max(F),hash:x.string().regex(/^[a-f0-9]{64}$/)}).strict().parse(JSON.parse(await w())),P=[];for(let E=0;E<b.size;E+=524288){let y=await w(E);if(!/^[A-Za-z0-9+/]*={0,2}$/.test(y)||y.length>7e5)throw new Error("Output chunk exceeded its boundary.");let O=Buffer.from(y,"base64");if(O.length!==Math.min(524288,b.size-E))throw new Error("The output changed during readback.");P.push(O)}let R=Buffer.concat(P),k=se("sha256").update(R).digest("hex"),T=x.object({size:x.number(),hash:x.string()}).strict().parse(JSON.parse(await w()));if(k!==b.hash||T.hash!==k||T.size!==R.length)throw new Error("The output changed before immutable readback.");return{bytes:R,title:d.split("/").at(-1)}}i(V,"readConfinedProfileOutput");import l from"node:path";import{promises as m}from"node:fs";import M from"node:path";function X(a,d,g,w){let b=i(()=>new Error("This source file is outside the public policy closure."),"denied"),P;if(a==="context_read"){if(typeof d.path!="string")throw b();P=d.path}else{let R=typeof d.name=="string"?w.get(d.name.trim()):void 0;if(!R||!Object.hasOwn(g,R))throw b();if(d.path===void 0)return R;let k=d.path;if(typeof k!="string"||!k||k.includes("\\")||k.includes("\0")||M.posix.isAbsolute(k)||M.win32.isAbsolute(k)||k.split("/").includes(".."))throw b();P=M.posix.join(M.posix.dirname(R),k)}if(!Object.hasOwn(g,P))throw b();return P}i(X,"resolveProfilePolicySourcePath");var Z=String.raw`
|
|
3
3
|
const fs=require('node:fs'),p=require('node:path');
|
|
4
4
|
const a=JSON.parse(fs.readFileSync(0,'utf8'));
|
|
5
5
|
const roots={work:'outputs',inputs:'inputs',harness:'harness'};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
-
import{e as Q}from"./chunk-5WPMI6QX.js";import{h as Ae}from"./chunk-5HPZGLOL.js";import{d as Jt,g as Wt,k as Kt}from"./chunk-I6VMRQF4.js";import{K as q,Qa as Nt,R as V,V as je,X as Pe,Y as Lt,aa as J,ca as W}from"./chunk-QAFXQHHG.js";import{A as Ot,C as Mt,K as v,L as T,M as _,N as Ee,Ob as qt,P as Y,Q as zt,Qb as Vt,R as D,Tb as Gt,aa as rt,ba as Bt,bb as Ft,ca as X,l as N,o as tt,s as $t,v as Dt}from"./chunk-G4E3WGLM.js";import{$a as It,C as At,Ca as Ct,Ra as pe,Sa as Ht,Wa as fe,aa as jt,bb as F,da as et,ea as ue,fa as Pt,ga as B,h as Vr,ia as Te,j as _e,v as le,x as Qe}from"./chunk-ZY32SZ2P.js";import{a as Tt,b as Et}from"./chunk-OTDDXEQ6.js";import{f as we}from"./chunk-HNQPEOJD.js";import{b as I,c as ye,d as Re,g as wt,h as _t,i as C,l as z,m as $,n as g}from"./chunk-RCT3O3HQ.js";import{A as e}from"./chunk-X2J2P5ZT.js";import{a as l,e as qr}from"./chunk-FTQLQJQV.js";var Xt=qr(Vr(),1);var E=l(t=>!!t&&typeof t=="object"&&!Array.isArray(t),"object"),Ut=l(t=>t.replaceAll("~","~0").replaceAll("/","~1"),"escape"),Gr=l(t=>t.replaceAll("~1","/").replaceAll("~0","~"),"unescape"),Lr=l(t=>t||"/","label");function Ce(t){let a=JSON.stringify(t);return a&&a.length<=160?a:"the value declared in the public schema"}l(Ce,"literal");function he(t,a){let r=t;for(let n of a){let s=Gr(n);if(!E(r)&&!Array.isArray(r)||!Object.hasOwn(r,s))return;r=r[s]}return r}l(he,"at");function at(t,a,r=0){return!E(t)||r>20?null:typeof t.$ref=="string"&&t.$ref.startsWith("#/")?at(he(a,t.$ref.slice(2).split("/")),a,r+1):t}l(at,"resolve");function st(t,a,r,n,s=0){let i=at(t,n);if(!i||s>6)return null;let o=Lr(a);if(Object.hasOwn(i,"const"))return`${o} must equal ${Ce(i.const)}`;if(Array.isArray(i.enum)&&i.enum.length<=12)return`${o} must be one of ${Ce(i.enum)}`;if(Array.isArray(r)){if(i.maxItems===0)return`${o} must be an empty array`;let u=E(i.not)?i.not:null,c=u&&E(u.items)?u.items:null,m=c&&E(c.not)?at(c.not,n):null,h=m?.required;if(m&&E(m.properties)&&Array.isArray(h)){let d=Object.entries(m.properties);if(d.length&&d.every(([p,x])=>E(x)&&Object.hasOwn(x,"const")&&h.includes(p))){let p=Object.fromEntries(d.map(([x,f])=>[x,f.const]));return`${o} must contain at least one item matching ${Ce(p)}`}}if(typeof i.maxItems=="number")return`${o} must contain at most ${i.maxItems} items`;if(typeof i.minItems=="number")return`${o} must contain at least ${i.minItems} items`}if(E(i.properties)&&E(r)){let u=Object.entries(i.properties).flatMap(([c,m])=>{if(!Object.hasOwn(r,c))return[];let h=st(m,a+"/"+Ut(c),r[c],n,s+1);return h?[h]:[]});if(u.length)return u.slice(0,4).join("; ")}if(Array.isArray(i.required)&&E(r)){let u=i.required.filter(c=>typeof c=="string"&&!Object.hasOwn(r,c));if(u.length)return`${o} must include ${u.slice(0,4).map(Ce).join(", ")}`}return null}l(st,"describe");function Zt(t,a,r){let n=r.instancePath+(r.keyword==="required"?"/"+Ut(String(r.params.missingProperty)):""),s=r.schemaPath.startsWith("#/")?r.schemaPath.slice(2).split("/"):[],i=r.message??"Schema assertion failed",o=he(t,s.slice(0,-1)),u=st(o,r.instancePath,he(a,r.instancePath?r.instancePath.slice(1).split("/"):[]),t);for(let c=s.length-1;c>=0;c--){if(s[c]!=="then"&&s[c]!=="else")continue;let m=he(t,s.slice(0,c));if(!E(m)||!E(m.if))continue;let h=r.instancePath?r.instancePath.slice(1).split("/"):[],d=s.slice(c+1),p=d.filter((b,R)=>R>0&&d[R-1]==="properties"||b==="items"&&d[R-1]!=="properties").length,x=p<=h.length?h.slice(0,h.length-p):[],f=x.length?"/"+x.join("/"):"",k=st(m.if,f,he(a,x),t);if(k&&u){let b=k.replaceAll(" must be "," is ").replaceAll(" must equal "," equals ").replaceAll(" must contain "," contains ").replaceAll(" must include "," includes ");i=`${s[c]==="then"?"When":"When the following condition does not hold:"} ${b}, ${u}.`}break}return i===r.message&&u&&["not","enum","const","minItems","maxItems"].includes(r.keyword)&&(i=u+"."),{path:n,message:i,keyword:r.keyword,schemaPath:r.schemaPath}}l(Zt,"structuredOutputDiagnostic");var He=e.object({schemaVersion:e.literal("openpond.structuredSamplingSchema.v1"),validationSchemaHash:e.string().regex(/^[a-f0-9]{64}$/),schemaRef:C.refine(t=>t.visibility==="policy"&&t.sizeBytes<=128e3&&["application/json","application/schema+json"].includes(t.mediaType),"Sampling schemas must be bounded policy-visible JSON assets."),postValidationOnly:e.array(e.object({schemaPath:e.string().min(1).max(2e3),keyword:e.literal("maxItems"),enforcement:e.literal("full_validation_only")}).strict()).min(1).max(100)}).strict(),Nr=e.object({declaration:He,schema:e.record(e.string(),e.unknown()),schemaHash:e.string().regex(/^[a-f0-9]{64}$/),schemaSource:e.string().max(128e3)}).strict();function it(t){let a=t?.structuredSamplingSchema;return a===void 0?void 0:He.parse(a)}l(it,"structuredSamplingSchemaDeclaration");var nt=l(t=>!!t&&typeof t=="object"&&!Array.isArray(t),"object"),Jr=l(t=>t.replaceAll("~","~0").replaceAll("/","~1"),"escape");function Wr(t,a){let r=He.parse(a);if(r.validationSchemaHash!==t.schemaHash)throw new Error("structured_sampling_validation_identity_changed");if(I(t.schemaSource)!==t.schemaHash||z(JSON.parse(t.schemaSource))!==z(t.schema))throw new Error("structured_sampling_validation_source_changed");let n=JSON.parse(t.schemaSource),s=new Map;function i(u,c,m=!0){if(!nt(u))return;if(u.$ref!==void 0)throw new Error("structured_sampling_reference_unsupported");let h=Array.isArray(u.type)?u.type:[u.type];m&&h.includes("array")&&Number.isSafeInteger(u.maxItems)&&Number(u.maxItems)>=0&&s.set(`${c}/maxItems`,u);for(let d of["properties","$defs"])if(nt(u[d]))for(let[p,x]of Object.entries(u[d]))i(x,`${c}/${d}/${Jr(p)}`,m&&d!=="$defs");for(let d of["items","additionalProperties","then","else","not","if"])u[d]!==void 0&&i(u[d],`${c}/${d}`,m&&d!=="not"&&d!=="if");for(let d of["allOf","anyOf","oneOf"])Array.isArray(u[d])&&u[d].forEach((p,x)=>i(p,`${c}/${d}/${x}`,m&&d!=="oneOf"))}l(i,"visit"),i(n,"");let o=new Set;for(let u of r.postValidationOnly){let c=s.get(u.schemaPath);if(!c||o.has(u.schemaPath))throw new Error("structured_sampling_assertion_path_invalid");o.add(u.schemaPath),delete c.maxItems}return n}l(Wr,"projectStructuredSamplingSchema");function Ie(t,a){let r=Nr.parse(a),n=Wr(t,r.declaration),s=JSON.stringify(n);if(r.schemaSource!==s||z(r.schema)!==z(n)||I(s)!==r.schemaHash||r.schemaHash!==r.declaration.schemaRef.contentHash||new TextEncoder().encode(s).byteLength!==r.declaration.schemaRef.sizeBytes)throw new Error("structured_sampling_schema_identity_changed")}l(Ie,"assertStructuredSamplingSchema");function ot(t,a,r){let n=He.parse(a);if(r.byteLength>128e3||r.byteLength!==n.schemaRef.sizeBytes||I(r)!==n.schemaRef.contentHash)throw new Error("structured_sampling_asset_mismatch");let s=new TextDecoder("utf-8",{fatal:!0}).decode(r),i={declaration:n,schema:JSON.parse(s),schemaHash:n.schemaRef.contentHash,schemaSource:s};return Ie(t,i),i}l(ot,"resolveStructuredSamplingSchema");function Yt(t,a){Ie(t,a);let r=JSON.parse(t.schemaSource);return a.declaration.postValidationOnly.map(n=>{let s=r;for(let i of n.schemaPath.slice(1).split("/")){let o=i.replaceAll("~1","/").replaceAll("~0","~");s=nt(s)||Array.isArray(s)?Reflect.get(s,o):void 0}return{...n,value:s}})}l(Yt,"structuredSamplingSchemaAssertions");var Kr="work.structured-output.v1",Ur=new Set(["$schema","$id","$defs","$ref","title","description","type","properties","required","additionalProperties","items","minItems","maxItems","minLength","maxLength","minimum","maximum","enum","const","allOf","anyOf","oneOf","not","if","then","else","uniqueItems","pattern","multipleOf","exclusiveMinimum","exclusiveMaximum","minProperties","maxProperties"]),ke=l(t=>!!t&&typeof t=="object"&&!Array.isArray(t),"object"),ge=new Map;function Qt(t){let a=I(JSON.stringify(t)),r=ge.get(a);return r||(r=new Xt.default({strict:!0,strictTypes:!1,strictRequired:!1,allErrors:!1,validateFormats:!0,ownProperties:!0}).compile(t),ge.size>=64&&ge.delete(ge.keys().next().value),ge.set(a,r)),r}l(Qt,"compiled");function er(t){if(!ke(t)||t.type!=="object"||JSON.stringify(t).length>128e3)throw new Error("structured_schema_tool_root_or_size_invalid");let a=t,r=0;function n(s,i,o){if(typeof s=="boolean")return;if(!ke(s)||i>20||++r>2e3||o.has(s))throw new Error("structured_schema_complexity_or_shape");let u=new Set(o).add(s);for(let c of Object.keys(s))if(!Ur.has(c))throw new Error(`structured_schema_keyword_unsupported:${c}`);if(s.$schema!==void 0&&s.$schema!=="https://json-schema.org/draft/2020-12/schema")throw new Error("structured_schema_dialect_unsupported");if(typeof s.$ref=="string"){if(!s.$ref.startsWith("#/$defs/"))throw new Error("structured_schema_external_or_recursive_ref");let c=a;for(let m of s.$ref.slice(2).split("/"))c=ke(c)&&Object.hasOwn(c,m.replaceAll("~1","/").replaceAll("~0","~"))?c[m.replaceAll("~1","/").replaceAll("~0","~")]:void 0;n(c,i+1,u)}if(s.pattern!==void 0){if(typeof s.pattern!="string"||s.pattern.length>200||/[()|\\]/.test(s.pattern))throw new Error("structured_schema_pattern_unsupported");let c=s.pattern.match(/[+*?{]/g)?.length??0;if(c>1||c===1&&(!s.pattern.startsWith("^")||!s.pattern.endsWith("$")))throw new Error("structured_schema_pattern_unsupported")}for(let c of["properties","$defs"])if(s[c]!==void 0){if(!ke(s[c]))throw new Error("structured_schema_map_invalid");for(let m of Object.values(s[c]))n(m,i+1,u)}for(let c of["items","additionalProperties","not","if","then","else"])s[c]!==void 0&&n(s[c],i+1,u);for(let c of["allOf","anyOf","oneOf"])if(s[c]!==void 0){if(!Array.isArray(s[c])||!s[c].length)throw new Error("structured_schema_union_invalid");for(let m of s[c])n(m,i+1,u)}}l(n,"visit"),n(t,0,new Set),Qt(t)}l(er,"assertStructuredOutputSchema");function ct(t,a){if(t.byteLength>128e3||I(t)!==a)throw new Error("structured_schema_asset_mismatch");let r=JSON.parse(new TextDecoder("utf-8",{fatal:!0}).decode(t));return er(r),{schema:r,schemaHash:a,schemaSource:new TextDecoder("utf-8",{fatal:!0}).decode(t)}}l(ct,"resolveStructuredOutput");function tr(t){if(er(t.schema),I(new TextEncoder().encode(t.schemaSource))!==t.schemaHash||z(JSON.parse(t.schemaSource))!==z(t.schema))throw new Error("structured_schema_contract_changed");if(!/^[a-f0-9]{64}$/.test(t.schemaHash))throw new Error("structured_schema_hash_invalid");t.sampling!==void 0&&Ie(t,t.sampling)}l(tr,"assertStructuredOutputContract");function _s(t){let a=new Set;return t.flatMap((r,n)=>{if(a.has(r.path)||!r.path||r.path.startsWith("/")||r.path.replaceAll("\\","/").split("/").some(s=>!s||s==="."||s===".."))throw new Error("structured_output_path_invalid_or_duplicate");if(a.add(r.path),r.submissionMode!=="structured_json"){if(r.structuredOutput)throw new Error("structured_output_opt_in_missing");return[]}if(r.mediaType!=="application/json"||!r.structuredOutput)throw new Error("structured_output_contract_missing");return tr(r.structuredOutput),[{type:"function",function:{name:`work_submit_output_${n+1}`,description:`Validate and save ${r.path}. Supply the output fields directly; validation errors can be corrected and resubmitted.${r.structuredOutput.sampling?" Full validation also enforces the postValidationOnly limits listed in requiredOutputs; a generated call can fail those submission limits.":""}`,parameters:r.structuredOutput.sampling?JSON.parse(r.structuredOutput.sampling.schemaSource):r.structuredOutput.schema}}]})}l(_s,"structuredOutputTools");function Ts(t,a){return t.find((r,n)=>r.submissionMode==="structured_json"&&a===`work_submit_output_${n+1}`)}l(Ts,"structuredToolOutput");function Zr(t,a){let r=0;function n(i,o){if(o>30||++r>1e4||Array.isArray(i)&&i.length>1e3)throw new Error("structured_output_payload_complexity");if(ke(i)||Array.isArray(i))for(let u of Object.values(i))n(u,o+1)}l(n,"bound"),n(a,0);let s=Qt(t);return s(a)?[]:(s.errors??[]).slice(0,20).map(i=>Zt(t,a,i))}l(Zr,"validateStructuredOutput");function Yr(t,a){if(a.byteLength>(t.maxBytes??1e7))throw new Error("work_output_too_large");if(t.submissionMode!=="structured_json")return;if(!t.structuredOutput)throw new Error("structured_output_contract_missing");tr(t.structuredOutput);let r;try{r=JSON.parse(new TextDecoder("utf-8",{fatal:!0}).decode(a))}catch{throw new Error("structured_output_invalid_json")}let n=Zr(t.structuredOutput.schema,r);if(n.length)throw new Error("structured_output_invalid:"+JSON.stringify(n));return{status:"passed",schemaHash:t.structuredOutput.schemaHash,...t.structuredOutput.sampling?{samplingSchemaHash:t.structuredOutput.sampling.schemaHash,samplingSchemaDeclaration:t.structuredOutput.sampling.declaration,postValidationOnly:Yt(t.structuredOutput,t.structuredOutput.sampling)}:{},artifactHash:I(a),capability:Kr}}l(Yr,"validateOutputBytes");function Es(t,a){let r=new TextEncoder().encode(JSON.stringify(a,null,2)+`
|
|
2
|
+
import{e as Q}from"./chunk-TERKCK4I.js";import{h as Ae}from"./chunk-5HPZGLOL.js";import{d as Jt,g as Wt,k as Kt}from"./chunk-I6VMRQF4.js";import{K as q,Qa as Nt,R as V,V as je,X as Pe,Y as Lt,aa as J,ca as W}from"./chunk-QAFXQHHG.js";import{A as Ot,C as Mt,K as v,L as T,M as _,N as Ee,P as Y,Q as zt,Qb as qt,R as D,Sb as Vt,Vb as Gt,aa as rt,ba as Bt,ca as X,db as Ft,l as N,o as tt,s as $t,v as Dt}from"./chunk-XHU4BZQY.js";import{$a as It,C as At,Ca as Ct,Ra as pe,Sa as Ht,Wa as fe,aa as jt,bb as F,da as et,ea as ue,fa as Pt,ga as B,h as Vr,ia as Te,j as _e,v as le,x as Qe}from"./chunk-ZY32SZ2P.js";import{a as Tt,b as Et}from"./chunk-OTDDXEQ6.js";import{f as we}from"./chunk-HNQPEOJD.js";import{b as I,c as ye,d as Re,g as wt,h as _t,i as C,l as z,m as $,n as g}from"./chunk-RCT3O3HQ.js";import{A as e}from"./chunk-X2J2P5ZT.js";import{a as l,e as qr}from"./chunk-FTQLQJQV.js";var Xt=qr(Vr(),1);var E=l(t=>!!t&&typeof t=="object"&&!Array.isArray(t),"object"),Ut=l(t=>t.replaceAll("~","~0").replaceAll("/","~1"),"escape"),Gr=l(t=>t.replaceAll("~1","/").replaceAll("~0","~"),"unescape"),Lr=l(t=>t||"/","label");function Ce(t){let a=JSON.stringify(t);return a&&a.length<=160?a:"the value declared in the public schema"}l(Ce,"literal");function he(t,a){let r=t;for(let n of a){let s=Gr(n);if(!E(r)&&!Array.isArray(r)||!Object.hasOwn(r,s))return;r=r[s]}return r}l(he,"at");function at(t,a,r=0){return!E(t)||r>20?null:typeof t.$ref=="string"&&t.$ref.startsWith("#/")?at(he(a,t.$ref.slice(2).split("/")),a,r+1):t}l(at,"resolve");function st(t,a,r,n,s=0){let i=at(t,n);if(!i||s>6)return null;let o=Lr(a);if(Object.hasOwn(i,"const"))return`${o} must equal ${Ce(i.const)}`;if(Array.isArray(i.enum)&&i.enum.length<=12)return`${o} must be one of ${Ce(i.enum)}`;if(Array.isArray(r)){if(i.maxItems===0)return`${o} must be an empty array`;let u=E(i.not)?i.not:null,c=u&&E(u.items)?u.items:null,m=c&&E(c.not)?at(c.not,n):null,h=m?.required;if(m&&E(m.properties)&&Array.isArray(h)){let d=Object.entries(m.properties);if(d.length&&d.every(([p,x])=>E(x)&&Object.hasOwn(x,"const")&&h.includes(p))){let p=Object.fromEntries(d.map(([x,f])=>[x,f.const]));return`${o} must contain at least one item matching ${Ce(p)}`}}if(typeof i.maxItems=="number")return`${o} must contain at most ${i.maxItems} items`;if(typeof i.minItems=="number")return`${o} must contain at least ${i.minItems} items`}if(E(i.properties)&&E(r)){let u=Object.entries(i.properties).flatMap(([c,m])=>{if(!Object.hasOwn(r,c))return[];let h=st(m,a+"/"+Ut(c),r[c],n,s+1);return h?[h]:[]});if(u.length)return u.slice(0,4).join("; ")}if(Array.isArray(i.required)&&E(r)){let u=i.required.filter(c=>typeof c=="string"&&!Object.hasOwn(r,c));if(u.length)return`${o} must include ${u.slice(0,4).map(Ce).join(", ")}`}return null}l(st,"describe");function Zt(t,a,r){let n=r.instancePath+(r.keyword==="required"?"/"+Ut(String(r.params.missingProperty)):""),s=r.schemaPath.startsWith("#/")?r.schemaPath.slice(2).split("/"):[],i=r.message??"Schema assertion failed",o=he(t,s.slice(0,-1)),u=st(o,r.instancePath,he(a,r.instancePath?r.instancePath.slice(1).split("/"):[]),t);for(let c=s.length-1;c>=0;c--){if(s[c]!=="then"&&s[c]!=="else")continue;let m=he(t,s.slice(0,c));if(!E(m)||!E(m.if))continue;let h=r.instancePath?r.instancePath.slice(1).split("/"):[],d=s.slice(c+1),p=d.filter((b,R)=>R>0&&d[R-1]==="properties"||b==="items"&&d[R-1]!=="properties").length,x=p<=h.length?h.slice(0,h.length-p):[],f=x.length?"/"+x.join("/"):"",k=st(m.if,f,he(a,x),t);if(k&&u){let b=k.replaceAll(" must be "," is ").replaceAll(" must equal "," equals ").replaceAll(" must contain "," contains ").replaceAll(" must include "," includes ");i=`${s[c]==="then"?"When":"When the following condition does not hold:"} ${b}, ${u}.`}break}return i===r.message&&u&&["not","enum","const","minItems","maxItems"].includes(r.keyword)&&(i=u+"."),{path:n,message:i,keyword:r.keyword,schemaPath:r.schemaPath}}l(Zt,"structuredOutputDiagnostic");var He=e.object({schemaVersion:e.literal("openpond.structuredSamplingSchema.v1"),validationSchemaHash:e.string().regex(/^[a-f0-9]{64}$/),schemaRef:C.refine(t=>t.visibility==="policy"&&t.sizeBytes<=128e3&&["application/json","application/schema+json"].includes(t.mediaType),"Sampling schemas must be bounded policy-visible JSON assets."),postValidationOnly:e.array(e.object({schemaPath:e.string().min(1).max(2e3),keyword:e.literal("maxItems"),enforcement:e.literal("full_validation_only")}).strict()).min(1).max(100)}).strict(),Nr=e.object({declaration:He,schema:e.record(e.string(),e.unknown()),schemaHash:e.string().regex(/^[a-f0-9]{64}$/),schemaSource:e.string().max(128e3)}).strict();function it(t){let a=t?.structuredSamplingSchema;return a===void 0?void 0:He.parse(a)}l(it,"structuredSamplingSchemaDeclaration");var nt=l(t=>!!t&&typeof t=="object"&&!Array.isArray(t),"object"),Jr=l(t=>t.replaceAll("~","~0").replaceAll("/","~1"),"escape");function Wr(t,a){let r=He.parse(a);if(r.validationSchemaHash!==t.schemaHash)throw new Error("structured_sampling_validation_identity_changed");if(I(t.schemaSource)!==t.schemaHash||z(JSON.parse(t.schemaSource))!==z(t.schema))throw new Error("structured_sampling_validation_source_changed");let n=JSON.parse(t.schemaSource),s=new Map;function i(u,c,m=!0){if(!nt(u))return;if(u.$ref!==void 0)throw new Error("structured_sampling_reference_unsupported");let h=Array.isArray(u.type)?u.type:[u.type];m&&h.includes("array")&&Number.isSafeInteger(u.maxItems)&&Number(u.maxItems)>=0&&s.set(`${c}/maxItems`,u);for(let d of["properties","$defs"])if(nt(u[d]))for(let[p,x]of Object.entries(u[d]))i(x,`${c}/${d}/${Jr(p)}`,m&&d!=="$defs");for(let d of["items","additionalProperties","then","else","not","if"])u[d]!==void 0&&i(u[d],`${c}/${d}`,m&&d!=="not"&&d!=="if");for(let d of["allOf","anyOf","oneOf"])Array.isArray(u[d])&&u[d].forEach((p,x)=>i(p,`${c}/${d}/${x}`,m&&d!=="oneOf"))}l(i,"visit"),i(n,"");let o=new Set;for(let u of r.postValidationOnly){let c=s.get(u.schemaPath);if(!c||o.has(u.schemaPath))throw new Error("structured_sampling_assertion_path_invalid");o.add(u.schemaPath),delete c.maxItems}return n}l(Wr,"projectStructuredSamplingSchema");function Ie(t,a){let r=Nr.parse(a),n=Wr(t,r.declaration),s=JSON.stringify(n);if(r.schemaSource!==s||z(r.schema)!==z(n)||I(s)!==r.schemaHash||r.schemaHash!==r.declaration.schemaRef.contentHash||new TextEncoder().encode(s).byteLength!==r.declaration.schemaRef.sizeBytes)throw new Error("structured_sampling_schema_identity_changed")}l(Ie,"assertStructuredSamplingSchema");function ot(t,a,r){let n=He.parse(a);if(r.byteLength>128e3||r.byteLength!==n.schemaRef.sizeBytes||I(r)!==n.schemaRef.contentHash)throw new Error("structured_sampling_asset_mismatch");let s=new TextDecoder("utf-8",{fatal:!0}).decode(r),i={declaration:n,schema:JSON.parse(s),schemaHash:n.schemaRef.contentHash,schemaSource:s};return Ie(t,i),i}l(ot,"resolveStructuredSamplingSchema");function Yt(t,a){Ie(t,a);let r=JSON.parse(t.schemaSource);return a.declaration.postValidationOnly.map(n=>{let s=r;for(let i of n.schemaPath.slice(1).split("/")){let o=i.replaceAll("~1","/").replaceAll("~0","~");s=nt(s)||Array.isArray(s)?Reflect.get(s,o):void 0}return{...n,value:s}})}l(Yt,"structuredSamplingSchemaAssertions");var Kr="work.structured-output.v1",Ur=new Set(["$schema","$id","$defs","$ref","title","description","type","properties","required","additionalProperties","items","minItems","maxItems","minLength","maxLength","minimum","maximum","enum","const","allOf","anyOf","oneOf","not","if","then","else","uniqueItems","pattern","multipleOf","exclusiveMinimum","exclusiveMaximum","minProperties","maxProperties"]),ke=l(t=>!!t&&typeof t=="object"&&!Array.isArray(t),"object"),ge=new Map;function Qt(t){let a=I(JSON.stringify(t)),r=ge.get(a);return r||(r=new Xt.default({strict:!0,strictTypes:!1,strictRequired:!1,allErrors:!1,validateFormats:!0,ownProperties:!0}).compile(t),ge.size>=64&&ge.delete(ge.keys().next().value),ge.set(a,r)),r}l(Qt,"compiled");function er(t){if(!ke(t)||t.type!=="object"||JSON.stringify(t).length>128e3)throw new Error("structured_schema_tool_root_or_size_invalid");let a=t,r=0;function n(s,i,o){if(typeof s=="boolean")return;if(!ke(s)||i>20||++r>2e3||o.has(s))throw new Error("structured_schema_complexity_or_shape");let u=new Set(o).add(s);for(let c of Object.keys(s))if(!Ur.has(c))throw new Error(`structured_schema_keyword_unsupported:${c}`);if(s.$schema!==void 0&&s.$schema!=="https://json-schema.org/draft/2020-12/schema")throw new Error("structured_schema_dialect_unsupported");if(typeof s.$ref=="string"){if(!s.$ref.startsWith("#/$defs/"))throw new Error("structured_schema_external_or_recursive_ref");let c=a;for(let m of s.$ref.slice(2).split("/"))c=ke(c)&&Object.hasOwn(c,m.replaceAll("~1","/").replaceAll("~0","~"))?c[m.replaceAll("~1","/").replaceAll("~0","~")]:void 0;n(c,i+1,u)}if(s.pattern!==void 0){if(typeof s.pattern!="string"||s.pattern.length>200||/[()|\\]/.test(s.pattern))throw new Error("structured_schema_pattern_unsupported");let c=s.pattern.match(/[+*?{]/g)?.length??0;if(c>1||c===1&&(!s.pattern.startsWith("^")||!s.pattern.endsWith("$")))throw new Error("structured_schema_pattern_unsupported")}for(let c of["properties","$defs"])if(s[c]!==void 0){if(!ke(s[c]))throw new Error("structured_schema_map_invalid");for(let m of Object.values(s[c]))n(m,i+1,u)}for(let c of["items","additionalProperties","not","if","then","else"])s[c]!==void 0&&n(s[c],i+1,u);for(let c of["allOf","anyOf","oneOf"])if(s[c]!==void 0){if(!Array.isArray(s[c])||!s[c].length)throw new Error("structured_schema_union_invalid");for(let m of s[c])n(m,i+1,u)}}l(n,"visit"),n(t,0,new Set),Qt(t)}l(er,"assertStructuredOutputSchema");function ct(t,a){if(t.byteLength>128e3||I(t)!==a)throw new Error("structured_schema_asset_mismatch");let r=JSON.parse(new TextDecoder("utf-8",{fatal:!0}).decode(t));return er(r),{schema:r,schemaHash:a,schemaSource:new TextDecoder("utf-8",{fatal:!0}).decode(t)}}l(ct,"resolveStructuredOutput");function tr(t){if(er(t.schema),I(new TextEncoder().encode(t.schemaSource))!==t.schemaHash||z(JSON.parse(t.schemaSource))!==z(t.schema))throw new Error("structured_schema_contract_changed");if(!/^[a-f0-9]{64}$/.test(t.schemaHash))throw new Error("structured_schema_hash_invalid");t.sampling!==void 0&&Ie(t,t.sampling)}l(tr,"assertStructuredOutputContract");function _s(t){let a=new Set;return t.flatMap((r,n)=>{if(a.has(r.path)||!r.path||r.path.startsWith("/")||r.path.replaceAll("\\","/").split("/").some(s=>!s||s==="."||s===".."))throw new Error("structured_output_path_invalid_or_duplicate");if(a.add(r.path),r.submissionMode!=="structured_json"){if(r.structuredOutput)throw new Error("structured_output_opt_in_missing");return[]}if(r.mediaType!=="application/json"||!r.structuredOutput)throw new Error("structured_output_contract_missing");return tr(r.structuredOutput),[{type:"function",function:{name:`work_submit_output_${n+1}`,description:`Validate and save ${r.path}. Supply the output fields directly; validation errors can be corrected and resubmitted.${r.structuredOutput.sampling?" Full validation also enforces the postValidationOnly limits listed in requiredOutputs; a generated call can fail those submission limits.":""}`,parameters:r.structuredOutput.sampling?JSON.parse(r.structuredOutput.sampling.schemaSource):r.structuredOutput.schema}}]})}l(_s,"structuredOutputTools");function Ts(t,a){return t.find((r,n)=>r.submissionMode==="structured_json"&&a===`work_submit_output_${n+1}`)}l(Ts,"structuredToolOutput");function Zr(t,a){let r=0;function n(i,o){if(o>30||++r>1e4||Array.isArray(i)&&i.length>1e3)throw new Error("structured_output_payload_complexity");if(ke(i)||Array.isArray(i))for(let u of Object.values(i))n(u,o+1)}l(n,"bound"),n(a,0);let s=Qt(t);return s(a)?[]:(s.errors??[]).slice(0,20).map(i=>Zt(t,a,i))}l(Zr,"validateStructuredOutput");function Yr(t,a){if(a.byteLength>(t.maxBytes??1e7))throw new Error("work_output_too_large");if(t.submissionMode!=="structured_json")return;if(!t.structuredOutput)throw new Error("structured_output_contract_missing");tr(t.structuredOutput);let r;try{r=JSON.parse(new TextDecoder("utf-8",{fatal:!0}).decode(a))}catch{throw new Error("structured_output_invalid_json")}let n=Zr(t.structuredOutput.schema,r);if(n.length)throw new Error("structured_output_invalid:"+JSON.stringify(n));return{status:"passed",schemaHash:t.structuredOutput.schemaHash,...t.structuredOutput.sampling?{samplingSchemaHash:t.structuredOutput.sampling.schemaHash,samplingSchemaDeclaration:t.structuredOutput.sampling.declaration,postValidationOnly:Yt(t.structuredOutput,t.structuredOutput.sampling)}:{},artifactHash:I(a),capability:Kr}}l(Yr,"validateOutputBytes");function Es(t,a){let r=new TextEncoder().encode(JSON.stringify(a,null,2)+`
|
|
3
3
|
`);return Yr(t,r),r}l(Es,"serializeStructuredOutput");var dt=e.object({batch:Mt,evidence:e.array(Dt).min(1).max(1e4),decisions:e.array(Ot).min(1).max(1e4),sources:e.array($t).min(1).max(1e4),assets:e.array(Y).max(1e3)}).strict();function rr(t){return t.evidence.filter(a=>a.submission.evaluatorContext!==null).map(a=>{let r=Ae(a.submission.evaluatorContext),n=new TextEncoder().encode(r);return{asset:{id:`task-evidence:${a.contentHash}`,path:`learning/context/${a.contentHash}.json`,contentHash:$(n),sizeBytes:n.byteLength,mediaType:"application/json",visibility:"host_private"},base64:btoa(Array.from(n,s=>String.fromCharCode(s)).join(""))}})}l(rr,"learningPackageContextFiles");function ar(t,a){let r=dt.parse(a),n=X(t);if(!T(v(r.batch),n.batch))throw new Error("Taskset learning batch differs from its admission metadata.");for(let m of[r.evidence,r.decisions,r.sources,r.assets]){let h=new Set;for(let d of m){Ee(d);let p=`${d.id}:${d.revision}`;if(h.has(p))throw new Error("Taskset learning resource identities must be unique.");h.add(p)}}if(r.evidence.length!==r.batch.examples.length||r.decisions.length!==r.batch.examples.length)throw new Error("Taskset learning snapshots must match the admitted batch inventory.");for(let m of r.evidence){let h=r.sources.find(d=>T(v(d),m.source));if(!h||!T(h.taskDefinition,v(n.definition)))throw new Error("Taskset evidence source differs from its task definition.")}if(r.sources.some(m=>!r.evidence.some(h=>T(h.source,v(m)))))throw new Error("Taskset package includes an unrelated learning source.");let s=n.rewards.flatMap(m=>[...m.assets,...m.implementation.kind==="custom_verifier"?[m.implementation.verifierRef]:m.implementation.kind==="model_judge"||m.implementation.kind==="human"?[m.implementation.rubricRef]:[],..."inputContract"in m.implementation?[m.implementation.inputContract]:[]]);for(let m of s){let h=r.assets.find(d=>d.id===m.id);if(!h)throw new Error("Taskset learning Reward asset is missing.");D(h,m)}if(r.assets.some(m=>!s.some(h=>h.id===m.id)))throw new Error("Taskset package includes an unrelated learning asset.");let i=Bt({batch:r.batch,definition:n.definition,binding:n.binding,rewards:n.rewards,evidence:r.evidence,decisions:r.decisions}),o=X(i);if(g(o)!==g(n))throw new Error("Taskset admission metadata differs from its reviewed snapshots.");let u=l(m=>({policy:m.policy,environment:m.environment,tools:m.tools}),"execution");if(g(u(i))!==g(u(t)))throw new Error("Taskset execution differs from its reviewed task definition.");let c=l(m=>({id:m.id,clusterKey:m.clusterKey,split:m.split,input:m.input,expectedOutput:m.expectedOutput,policyVisibleContext:m.policyVisibleContext,privilegedContextRef:m.privilegedContextRef,artifactRefs:m.artifactRefs,requiredOutputs:m.requiredOutputs??[],tags:m.tags}),"taskContent");if(g(i.tasks.map(c))!==g(t.tasks.map(c)))throw new Error("Taskset rows differ from their reviewed evidence.");return r}l(ar,"validateTasksetLearningResources");var K=N.shape.id,xe=e.string().regex(/^[a-f0-9]{64}$/),Xr=e.object({scopeId:K,modelId:K}).strict(),mt=e.object({schemaVersion:e.literal("openpond.modelTasksetAuthoring.v1"),owner:Xr,root:N,parent:N}).strict(),Bs=e.object({schemaVersion:e.literal("openpond.modelTasksetDraftRequest.v1"),operationId:K,modelId:K,expectedModelRevision:e.number().int().positive(),sourcePackageHash:xe}).strict(),sr=e.object({schemaVersion:e.literal("openpond.modelTasksetDraftPreparation.v1"),draftId:K,requestHash:xe,sourcePackageHash:xe,sourceTasksetRef:N,tasksetId:K,tasksetRevision:e.number().int().positive(),lineage:mt,authoringGraph:e.literal("bound").optional()}).strict(),nr=e.string().min(1).max(1024).refine(t=>!t.includes("\\")&&!t.includes(":")&&!t.includes("\0")&&!t.startsWith("/")&&!t.split("/").some(a=>!a||a==="."||a===".."||a.startsWith(".env")),"Use a relative Taskset file path without environment files."),Qr=e.object({path:nr,sizeBytes:e.number().int().nonnegative(),writable:e.boolean()}).strict(),ir=e.object({encoding:e.enum(["utf8","base64"]),data:e.string().max(8e6)}).strict(),Fs=Qr.extend({contentHash:xe,content:ir}).strict(),qs=e.object({draftId:K,expectedDraftRevision:e.number().int().positive(),path:nr,expectedFileHash:xe.nullable(),content:ir.nullable()}).strict();var $e=64*1024*1024,De=e.object({asset:C,base64:e.string()}).strict();function j(t){let a=De.parse(t),r=atob(a.base64);if(btoa(r)!==a.base64)throw new Error(`Taskset asset ${a.asset.id} has noncanonical base64.`);let n=new Uint8Array(r.length);for(let s=0;s<r.length;s++)n[s]=r.charCodeAt(s);if(n.byteLength!==a.asset.sizeBytes||$(n)!==a.asset.contentHash)throw new Error(`Taskset asset ${a.asset.id} differs from its immutable bytes.`);return n}l(j,"decodeTasksetPackageFile");var Qs=e.string().regex(/^[a-f0-9]{64}$/);var ee=e.object({environment:q,verifierSet:V,javascript:Jt}).strict(),en=e.object({actions:e.array(e.object({name:e.string().min(1).max(64),arguments:e.record(e.string(),e.unknown())}).strict()).max(1e3)}).strict();function lt(t){if(!t.environmentRelease||!t.verifierSetRelease)throw new Error("Starter execution release references are missing.");return`starter-execution-${_({environment:t.environmentRelease,verifiers:t.verifierSetRelease}).contentHash}`}l(lt,"modelStarterExecutionAssetId");function or(t){let a=ee.parse(t);cr(a);let r=lt({environmentRelease:{id:a.environment.id,contentHash:a.environment.contentHash},verifierSetRelease:{id:a.verifierSet.id,contentHash:a.verifierSet.contentHash}}),n=zt({text:Ae(a),path:"environment/execution.json",mediaType:"application/json",visibility:"host_private"}),{contentHash:s,...i}=n;return _({...i,id:r,asset:{...i.asset,id:r}})}l(or,"createModelStarterExecutionAsset");function U(t,a){return _({value:t}).contentHash===_({value:a}).contentHash}l(U,"equal");function cr(t){Wt(t.javascript);for(let a of[t.environment,t.verifierSet]){let{contentHash:r,...n}=a;if(_(n).contentHash!==r)throw new Error(`Starter execution resource integrity failed: ${a.id}.`)}if(!U(t.environment.metadata.javascriptEnvironment,v(t.javascript)))throw new Error("Starter execution resources differ from its declared task context.")}l(cr,"assertExecutionIntegrity");function Oe(t,a,r){if(!t){if(a.environment.entrypoint==="openpond.javascript-environment.v1")throw new Error("Starter JavaScript execution resources are missing.");return}let{environment:n,verifierSet:s,javascript:i}=t;if(cr(t),!U(a.environmentRelease,{id:n.id,contentHash:n.contentHash})||!U(a.verifierSetRelease,{id:s.id,contentHash:s.contentHash})||!U(n.contract,a.environment)||!U(s.graders,a.graders)||!U(a.tools,i.tools)||!U(n.metadata.javascriptEnvironment,v(i)))throw new Error("Starter execution resources differ from its declared task context.");let o=n.contract;if(o.entrypoint!=="openpond.javascript-environment.v1"||o.kind!=="agent"||!o.stateful||!o.deterministicSeeds||o.networkPolicy!=="none"||new Set(o.lifecycle).size!==5||a.capabilities.length||a.policy.connectedAppScopes.length)throw new Error("Starter JavaScript environment declares unsupported host capabilities.");for(let u of[i.module,n.actionSchemaRef,n.observationSchemaRef,n.stateSchemaRef]){if(!u)continue;let c=r.find(m=>m.id===u.id);if(!c)throw new Error(`Starter environment asset is missing: ${u.id}.`);D(c,u)}for(let u of a.tasks){let c=r.find(h=>h.id===u.privilegedContextRef);if(!c||c.asset.visibility!=="host_private"||c.asset.mediaType!=="application/json")throw new Error(`Starter private initial state is missing: ${u.id}.`);let m=JSON.parse(D(c,c.asset));if(!m||typeof m!="object"||Array.isArray(m))throw new Error(`Starter initial state must be a JSON object: ${u.id}.`);le(m,i.maxStateBytes)}}l(Oe,"validateModelStarterExecution");function ut(t){if(t.taskset.environment.entrypoint!=="openpond.javascript-environment.v1")return null;let a=new Map(t.files.map(o=>[o.asset.id,o])),r=l(o=>{let u=a.get(o);if(!u)throw new Error(`Taskset environment asset is missing: ${o}.`);if(u.asset.sizeBytes>524288)throw new Error("Taskset environment source exceeds the authored asset limit.");let c=new TextDecoder("utf-8",{fatal:!0}).decode(j(u));return Y.parse(_({schemaVersion:"openpond.learningTextAsset.v1",id:o,revision:1,asset:u.asset,text:c}))},"read"),n;if(t.modelResources){if(!t.modelResources.execution)throw new Error("Bound Taskset JavaScript execution resources are missing.");n=ee.parse(t.modelResources.execution)}else{let o=r(lt(t.taskset));if(o.asset.visibility!=="host_private"||o.asset.mediaType!=="application/json"||o.asset.path!=="environment/execution.json")throw new Error("Taskset execution declaration must be private JSON at environment/execution.json.");n=ee.parse(JSON.parse(o.text))}let i=[...new Set([n.javascript.module.id,...[n.environment.actionSchemaRef,n.environment.observationSchemaRef,n.environment.stateSchemaRef].flatMap(o=>o?[o.id]:[]),...t.taskset.tasks.flatMap(o=>o.privilegedContextRef?[o.privilegedContextRef]:[])])].map(r);return Oe(n,t.taskset,i),{execution:n,assets:i}}l(ut,"resolveTasksetPackageExecution");function ea(t){let a=or(t),r=new TextEncoder().encode(a.text),n="";for(let s of r)n+=String.fromCharCode(s);return{asset:a.asset,base64:btoa(n)}}l(ea,"createTasksetPackageExecutionFile");var dr=e.object({environment:q,verifierSet:V}).strict();var lr=e.object({scopeId:e.string().trim().min(1).max(500),modelId:e.string().trim().min(1).max(500)}).strict(),ta=e.object({schemaVersion:e.literal("openpond.modelTasksetDerivation.v1"),owner:lr,root:Q,parent:Q}).strict(),pt=e.object({taskset:B,taskDefinition:tt,rewardBinding:fe,rewards:e.array(pe).min(1).max(100),assets:e.array(Y).max(1e3),executionResources:dr.optional(),execution:ee.optional(),instructionMode:e.literal("per_task").optional()}).strict(),O=l((t,a)=>_({value:t}).contentHash===_({value:a}).contentHash,"same"),mr=l((t,a)=>`model-taskset-${_({owner:t,root:a}).contentHash}`,"identity");function yn(t){return ra({...t,source:Me(t.source)})}l(yn,"deriveModelTaskset");function ra(t){let a=lr.parse(t.owner),r=t.source,n=t.edits??r,s=r.taskset.metadata.modelTasksetDerivation===void 0?null:ta.parse(r.taskset.metadata.modelTasksetDerivation);if(s&&r.taskset.id!==mr(s.owner,s.root))throw new Error("Derived Taskset identity differs from its ownership lineage.");let i=s&&O(s.owner,a),o=i?s.root:v(r.taskset),u=i?r.taskset.id:mr(a,o),c=i?r.taskset.revision+1:1,m=fe.parse(t.rewardBinding),h=t.rewards.map(me=>pe.parse(me)),d=F(m,h);if(m.recipeRef)throw new Error("Resolve the Reward recipe into one standalone binding before deriving a Taskset.");let p={...n.taskset.policy,hiddenGraderRefs:d.filter(me=>me.privileged).map(me=>me.id)},x=n.executionResources??n.execution,f=x?.environment??je({schemaVersion:"openpond.environmentRelease.v1",id:`${u}-environment`,revision:1,contract:n.taskset.environment,actionSchemaRef:null,observationSchemaRef:null,stateSchemaRef:null,artifactCollection:{maxArtifacts:1e5,maxTotalBytes:25e7},adapterConformanceHashes:{},metadata:{}}),k=Pe({schemaVersion:"openpond.verifierSetRelease.v1",id:`${u}-verifiers`,revision:c,graders:d,isolation:x?.verifierSet.isolation??{processBoundary:"isolated_process",networkPolicy:"none",defaultTimeoutMs:Math.min(n.taskset.environment.defaultTimeoutMs,3e5)},calibrationReceiptRefs:[],metadata:x?{sourceVerifierSet:v(x.verifierSet)}:{}}),b={environment:f,verifierSet:k},R=n.execution?{...n.execution,verifierSet:k}:void 0,{contentHash:ce,...ve}=n.taskset,{contentHash:St,...bt}=n.taskDefinition,vt={...bt.execution,policy:p,environmentRelease:{id:f.id,contentHash:f.contentHash},verifierSetRelease:{id:k.id,contentHash:k.contentHash}},yt=tt.parse(_({...bt,id:`${u}-definition`,revision:c,rewardBinding:v(m),execution:vt})),de=n.taskset.metadata.starterAuthoring??n.taskset.metadata.ordinaryAuthoring,Rt=de&&typeof de=="object"&&!Array.isArray(de)&&"graderFixtures"in de?de.graderFixtures:void 0,Fr=B.parse(_({...ve,...vt,id:u,revision:c,graders:d,metadata:{starter:{taskDefinition:v(yt),rewardBinding:v(m)},rewardExecution:{binding:m,rewards:h},...Rt===void 0?{}:{starterAuthoring:{graderFixtures:Rt}},...n.taskset.metadata.environmentResources===void 0?{}:{environmentResources:n.taskset.metadata.environmentResources},...n.taskset.metadata.workAssetStagingPaths===void 0?{}:{workAssetStagingPaths:n.taskset.metadata.workAssetStagingPaths},...n.taskset.metadata.tasksetOutputContract===void 0?{}:{tasksetOutputContract:n.taskset.metadata.tasksetOutputContract},modelTasksetDerivation:{schemaVersion:"openpond.modelTasksetDerivation.v1",owner:a,root:o,parent:v(r.taskset)}}}));return Me({taskset:Fr,taskDefinition:yt,rewardBinding:m,rewards:h,assets:t.assets,executionResources:b,...R?{execution:R}:{},...r.instructionMode?{instructionMode:r.instructionMode}:{}})}l(ra,"compileModelTasksetReward");function Me(t){let a=pt.parse(t),{taskset:r,taskDefinition:n,rewardBinding:s,rewards:i,assets:o,execution:u}=a;for(let k of[r,n,s,...i,...o])Ee(k);if(Te(r),s.recipeRef)throw new Error("Resolve the Reward recipe into one standalone binding before deriving a Taskset.");if(!T(n.rewardBinding,v(s)))throw new Error("Taskset definition differs from its Reward binding.");let{policy:c,environment:m,environmentRelease:h,tools:d,capabilities:p,verifierSetRelease:x}=r;if(!O(n.execution,{policy:c,environment:m,...h?{environmentRelease:h}:{},tools:d,capabilities:p,...x?{verifierSetRelease:x}:{}}))throw new Error("Taskset definition differs from its execution resources.");if(!O(r.graders,F(s,i)))throw new Error("Taskset graders differ from its Reward binding.");if(r.metadata.starter!==void 0){let k=e.object({taskDefinition:Q,rewardBinding:Q}).passthrough().parse(r.metadata.starter);if(!T(k.taskDefinition,v(n))||!T(k.rewardBinding,v(s)))throw new Error("Taskset metadata differs from its immutable grading resources.")}if(r.metadata.rewardExecution!==void 0&&!O(r.metadata.rewardExecution,{binding:s,rewards:i}))throw new Error("Taskset embedded Rewards differ from its immutable grading resources.");if(r.metadata.rewardBinding!==void 0&&!T(Q.parse(r.metadata.rewardBinding),v(s)))throw new Error("Taskset Reward reference differs from its immutable grading resources.");let f=a.executionResources??u;if(r.environmentRelease&&!f)throw new Error("Deriving a Taskset requires its pinned execution resources.");if(f&&(!J(f.environment)||!W(f.verifierSet)||!O(r.environmentRelease,{id:f.environment.id,contentHash:f.environment.contentHash})||!O(r.verifierSetRelease,{id:f.verifierSet.id,contentHash:f.verifierSet.contentHash})||!O(r.environment,f.environment.contract)||!O(r.graders,f.verifierSet.graders)))throw new Error("Taskset differs from its pinned execution resources.");if(Oe(u,r,o),new Set(o.map(k=>k.id)).size!==o.length)throw new Error("Taskset asset identities must be unique.");for(let k of o)D(k,k.asset);for(let k of f?[f.environment.actionSchemaRef,f.environment.observationSchemaRef,f.environment.stateSchemaRef]:[]){if(!k)continue;let b=o.find(R=>R.id===k.id);if(!b)throw new Error(`Taskset environment asset is missing: ${k.id}.`);D(b,k)}for(let k of r.tasks){if(n.requiredOutputs&&!O(k.requiredOutputs,n.requiredOutputs))throw new Error(`Taskset outputs differ from its reviewed definition: ${k.id}.`);if(a.instructionMode!=="per_task"&&k.policyVisibleContext.instructions!==n.instructions||!Qe(n.inputSchema,k.input).valid||k.expectedOutput!==null&&!Qe(n.outputSchema,k.expectedOutput).valid)throw new Error(`Taskset task differs from its declared format: ${k.id}.`);if(k.privilegedContextRef&&!o.some(b=>b.id===k.privilegedContextRef&&b.asset.visibility==="host_private"))throw new Error(`Taskset private context is missing: ${k.id}.`)}for(let k of i){let b=k.implementation,R=[...k.assets,..."verifierRef"in b?[b.verifierRef]:[],..."rubricRef"in b?[b.rubricRef]:[],..."inputContract"in b?[b.inputContract]:[]];for(let ce of R){let ve=o.find(St=>St.id===ce.id);if(!ve||ce.visibility==="policy")throw new Error(`Taskset Reward requires its private asset: ${ce.id}.`);D(ve,ce)}}return a}l(Me,"validateModelTasksetPackage");function aa(t){return`model-authored-taskset-${g({owner:t.owner,root:t.root})}`}l(aa,"modelAuthoredTasksetId");function ur(t){if(t.metadata.modelTasksetAuthoring===void 0)return null;let a=mt.parse(t.metadata.modelTasksetAuthoring);if(t.id!==aa(a)||(t.revision===1?!T(a.parent,a.root):a.parent.id!==t.id||a.parent.revision!==t.revision-1))throw new Error("Authored Taskset revision differs from its ownership lineage.");return a}l(ur,"assertModelTasksetAuthoring");var A=e.string().trim().min(1).max(240),M=e.string().trim().min(1),G=e.string().trim().min(8).max(256),pr=e.string().trim().min(1).max(1e3).refine(t=>!t.startsWith("/")&&!t.startsWith("\\")&&!t.split(/[\\/]/).includes(".."),"Artifact paths must be relative and stay inside the Dataset."),L=e.enum(["train","validation","test","frozen_eval"]),sa=e.object({name:e.string().trim().min(1).max(500),semanticRole:e.enum(["row_id","cluster_id","prompt","messages","demonstration","chosen","rejected","expected_output","privileged_context","reward","feedback","tag","metadata"]),logicalType:e.enum(["string","integer","float","boolean","json","messages"]),nullable:e.boolean(),policy:e.enum(["visible","privileged","metadata"])}),na=e.object({schemaVersion:e.literal("openpond.datasetSemanticSchema.v1"),fields:e.array(sa).min(1).max(1e4),schemaHash:G}),ia=e.object({id:A,split:L,path:pr,contentHash:G,schemaHash:G,sizeBytes:e.number().int().nonnegative(),rowCount:e.number().int().positive(),rowGroupCount:e.number().int().positive()}),Se=e.object({schemaVersion:e.literal("openpond.datasetArtifact.v1"),id:A,tasksetId:A,tasksetRevision:e.number().int().positive(),contentHash:G,format:e.literal("parquet"),schema:na,shards:e.array(ia).min(1).max(1e5),rowCount:e.number().int().positive(),splitCounts:e.record(L,e.number().int().nonnegative()),sourceReceiptRefs:e.array(A).min(1).max(1e5),mappingHash:G,qualityReportHash:G,createdAt:M}),Cn=e.object({schemaVersion:e.literal("openpond.datasetArtifactSummary.v1"),artifactId:A,tasksetId:A,tasksetRevision:e.number().int().positive(),format:e.literal("parquet"),rowCount:e.number().int().positive(),splitCounts:e.record(L,e.number().int().nonnegative()),sizeBytes:e.number().int().nonnegative(),contentHash:G,available:e.boolean(),unavailableReason:e.string().trim().min(1).max(2e3).nullable(),createdAt:M}),oa=e.object({schemaVersion:e.literal("openpond.datasetCatalogItem.v1"),tasksetId:A,tasksetRevision:e.number().int().positive(),artifactId:A.nullable(),name:e.string().trim().min(1).max(500),status:e.enum(["draft","awaiting_disclosure_approval","awaiting_materialization_approval","materializing","validating","needs_review","baselining","ready","blocked","failed","archived"]),storageKind:e.enum(["inline","parquet"]),rowCount:e.number().int().nonnegative(),splitCounts:e.record(L,e.number().int().nonnegative()),sizeBytes:e.number().int().nonnegative().nullable(),available:e.boolean(),unavailableReason:e.string().trim().min(1).max(2e3).nullable(),createdAt:M,updatedAt:M}),Hn=e.object({schemaVersion:e.literal("openpond.datasetCatalog.v1"),profileId:A,datasets:e.array(oa),generatedAt:M}),In=e.object({schemaVersion:e.literal("openpond.datasetArtifactRegistry.v1"),manifest:Se,profileId:A,storageRoot:e.string().trim().min(1).max(4e3),relativeManifestPath:pr,available:e.boolean(),unavailableReason:e.string().trim().min(1).max(2e3).nullable(),verifiedAt:M.nullable(),createdAt:M,updatedAt:M}),$n=e.object({split:L.nullable().default(null),cursor:e.string().trim().min(1).max(2e3).nullable().default(null),limit:e.number().int().min(1).max(100).default(25),columns:e.array(e.string().trim().min(1).max(500)).max(100).default([])}),Dn=e.object({schemaVersion:e.literal("openpond.datasetRowPage.v1"),tasksetId:A,tasksetRevision:e.number().int().positive(),artifactHash:G,split:L.nullable(),rows:e.array(e.record(e.string(),e.unknown())).max(100),nextCursor:e.string().max(2e3).nullable(),totalRows:e.number().int().nonnegative(),returnedRows:e.number().int().nonnegative()}),ca=e.object({schemaVersion:e.literal("openpond.datasetStorageSettings.v1"),datasetStorePath:e.string().trim().min(1).max(4e3),updatedAt:M}),da=e.object({id:A,label:e.string().trim().min(1).max(500),path:e.string().trim().min(1).max(4e3),datasetStorePath:e.string().trim().min(1).max(4e3),kind:e.enum(["local","network","removable","cache"]),configured:e.boolean(),mounted:e.boolean(),writable:e.boolean(),totalBytes:e.number().int().nonnegative().nullable(),freeBytes:e.number().int().nonnegative().nullable()}),On=e.object({schemaVersion:e.literal("openpond.datasetStorageState.v1"),settings:ca,storageRoots:e.array(da)}),Mn=e.object({datasetStorePath:e.string().trim().min(1).max(4e3)});var te=e.string().trim().min(1).max(240),ma=e.string().trim().min(1),re=e.string().trim().min(8).max(256),la=e.record(e.string(),e.unknown()).default({}),ua=e.string().trim().min(7).max(256),pa=e.enum(["pending","approved","review","blocked"]),ze=e.object({id:te,profileId:te,title:e.string().trim().min(1).max(500),sourceHash:re,occurredAt:ma,licensingStatus:pa,secretScanStatus:e.enum(["pending","passed","blocked"]),piiScanStatus:e.enum(["pending","passed","review","blocked"]),metadata:la}),fa=ze.extend({schemaVersion:e.literal("openpond.huggingFaceDatasetSource.v1"),kind:e.literal("huggingface"),repositoryId:e.string().trim().regex(/^[^/\s]+\/[^/\s]+$/).max(500),repositoryUrl:e.string().url().max(2e3),revision:ua,configuration:e.string().trim().min(1).max(500),upstreamSplits:e.array(e.string().trim().min(1).max(500)).min(1).max(1e3),gated:e.boolean(),private:e.boolean(),declaredLicense:e.string().trim().min(1).max(500).nullable(),sourceFileHashes:e.array(re).min(1).max(1e5)}),ha=ze.extend({schemaVersion:e.literal("openpond.uploadedFileDatasetSource.v1"),kind:e.literal("uploaded_file"),originalFileNames:e.array(e.string().trim().min(1).max(500)).min(1).max(1e3),mediaTypes:e.array(e.string().trim().min(1).max(200)).min(1).max(1e3),sourceFileHashes:e.array(re).min(1).max(1e3),totalBytes:e.number().int().nonnegative(),parserVersion:e.string().trim().min(1).max(200)}),ga=ze.extend({schemaVersion:e.literal("openpond.generatedDatasetSource.v1"),kind:e.literal("generated"),generatorId:te,generatorVersion:e.string().trim().min(1).max(200),seed:e.number().int(),generatorHash:re}),ka=ze.extend({schemaVersion:e.literal("openpond.learningBatchDatasetSource.v1"),kind:e.literal("learning_batch"),batch:e.object({id:te,revision:e.number().int().positive(),contentHash:re}).strict(),taskDefinition:e.object({id:te,revision:e.number().int().positive(),contentHash:re}).strict(),admittedBy:te}),fr=e.discriminatedUnion("kind",[fa,ha,ga,ka]);var hr=e.object({schemaVersion:e.literal("openpond.connectedDatasetSource.v1"),kind:e.literal("connected_activity"),id:e.string().min(1).max(240),profileId:e.string().min(1).max(240),title:e.string().min(1).max(500),sourceHash:e.string().regex(/^[a-f0-9]{64}$/),occurredAt:e.string().datetime(),licensingStatus:e.enum(["pending","approved","review","blocked"]),secretScanStatus:e.enum(["pending","passed","blocked"]),piiScanStatus:e.enum(["pending","passed","review","blocked"]),origin:Kt,sourceId:e.string().min(1).max(500),sessionId:e.string().min(1).max(500),normalizerVersion:e.string().min(1).max(200),projection:e.enum(["turn","conversation"]),ownerUserId:e.string().min(1).max(500),purpose:e.literal("recorded_evaluation"),sourceFileHashes:e.array(e.string().regex(/^[a-f0-9]{64}$/)).max(100).optional(),metadata:e.record(e.string(),e.unknown()).default({})}).strict();var gr=e.object({schemaVersion:e.literal("openpond.harnessActionBinding.v1"),actionId:ye,modelToolName:e.string().trim().min(1).max(64).regex(/^[a-zA-Z][a-zA-Z0-9_-]*$/),description:e.string().trim().min(1).max(1e3),inputSchema:e.record(e.string(),e.unknown()),actionSchemaHash:Re,agentRelease:wt,implementationHash:Re,runtimeBindingId:ye,capabilityReceiptHash:Re,sideEffect:e.enum(["read","write"]),studentVisible:e.boolean(),timeoutMs:e.number().int().positive().max(36e5),episodeArgumentBindings:e.array(e.object({argument:ye,source:e.literal("case_id")}).strict()).max(20).default([])}).strict();var S=e.string().trim().min(1).max(240),ft=e.string().trim().min(1),xa=e.string().trim().min(8).max(256),ht=e.string().trim().regex(/^[a-f0-9]{64}$/),Sa=e.string().trim().regex(/^[A-Za-z_$][A-Za-z0-9_$]*$/),P=e.record(e.string(),e.unknown()).default({}),Fe=S.nullable();function ae(t){let a=t.trim().replaceAll("\\","/");return!a||a.startsWith("/")||a==="."||a===".."?!1:!a.split("/").some(r=>!r||r==="."||r==="..")}l(ae,"safeRelativeFilePath");function ba(t){let a=t.trim();return a.length>0&&a!=="."&&a!==".."&&!a.includes("/")&&!a.includes("\\")&&!a.includes("\0")}l(ba,"safeFileName");var Be=L,qe=e.enum(["general","benchmark"]),Ve=e.object({schemaVersion:e.literal("openpond.tasksetBenchmark.v1"),definitionId:S,releaseId:S,releaseHash:ht,managedReleasePath:e.string().trim().min(1).max(1e3).refine(ae,"Benchmark release paths must remain relative."),adaptationSplit:Be,evaluationSplit:Be,primaryMetric:e.enum(["foreground_tokens","success_rate","latency_ms","cost_usd"]),qualityGate:e.enum(["none","non_regression","all_pass"]),source:e.enum(["builtin","imported"]),metadata:P}),Ge=e.object({schemaVersion:e.literal("openpond.tasksetPreferenceComparisonBinding.v1"),releaseId:S,releaseHash:ht,publishedAt:ft,metadata:P}),va=e.object({status:e.enum(["pending","granted","denied","revoked"]),scope:e.enum(["metadata_only","selected_turns","full_session"]),grantedBy:Fe,grantedAt:ft.nullable(),purpose:e.literal("task_authoring_and_evaluation")}),ya=e.object({schemaVersion:e.literal("openpond.trainingSource.v1"),id:S,profileId:S,sessionId:S,turnIds:e.array(S).max(1e3).default([]),workspaceId:Fe,sourceHash:xa,clusterKey:S,title:e.string().trim().min(1).max(500),occurredAt:ft,consent:va,connectedAppIds:e.array(S).max(100).default([]),secretScanStatus:e.enum(["pending","passed","blocked"]),piiScanStatus:e.enum(["pending","passed","review","blocked"]),licensingStatus:e.enum(["pending","approved","review","blocked"]),metadata:P}),Le=e.union([ya,fr,hr]),Ne=e.object({policyVisibleFields:e.array(S).max(1e3).default([]),privilegedFields:e.array(S).max(1e3).default([]),hiddenGraderRefs:e.array(S).max(100).default([]),connectedAppScopes:e.array(S).max(100).default([])}),Ra=e.object({id:S,sourceRefId:S,artifactRef:e.string().trim().min(1).max(4e3).refine(ae,"Task asset references must be safe relative paths."),fileName:e.string().trim().min(1).max(500).refine(ba,"Task asset file names must not contain path separators."),stagingPath:e.string().trim().min(1).max(1e3).refine(ae,"Task asset staging paths must stay inside Work inputs.").optional(),mediaType:e.string().trim().min(1).max(200),sha256:ht,sizeBytes:e.number().int().nonnegative().max(25e7),split:Be,metadata:P}).superRefine((t,a)=>{t.stagingPath&&t.stagingPath.split("/").at(-1)!==t.fileName&&a.addIssue({code:"custom",message:"Staged task assets must preserve their source file name.",path:["stagingPath"]})}),wa=e.object({path:e.string().trim().min(1).max(1e3).refine(ae,"Required output paths must stay inside the Work output directory."),mediaType:e.string().trim().min(1).max(200),schemaRef:S.nullable().optional(),submissionMode:e.literal("structured_json").optional(),maxBytes:e.number().int().positive().max(1e7).optional(),metadata:P}),Je=e.object({schemaVersion:e.literal("openpond.taskData.v1"),id:S,clusterKey:S,split:Be,input:e.record(e.string(),e.unknown()),expectedOutput:e.record(e.string(),e.unknown()).nullable(),policyVisibleContext:e.record(e.string(),e.unknown()).default({}),privilegedContextRef:Fe,sourceRefs:e.array(S).min(1).max(100),assets:e.array(Ra).max(1e3).optional(),resourceRefs:e.array(S).max(1e3).optional(),requiredOutputs:e.array(wa).max(100).optional(),tags:e.array(S).max(100).default([]),metadata:P}),_a=e.object({id:S,kind:e.enum(["file","catalog","configuration","code_module"]),path:e.string().trim().min(1).max(1e3).refine(ae,"Environment resource paths must remain relative."),mediaType:e.string().trim().min(1).max(200).nullable().optional(),visibility:e.enum(["policy_visible","policy_hidden","privileged"]),required:e.boolean(),metadata:P}),se=e.object({id:S,taskId:Fe,sourceRefs:e.array(S).min(1).max(100),artifactRef:S,approved:e.boolean(),confidence:e.number().min(0).max(1),metadata:P}),kr=se.extend({kind:e.literal("demonstration"),prompt:e.string().max(1e5).nullable().default(null),response:e.string().max(2e5).nullable().default(null)}),xr=se.extend({kind:e.literal("preference"),prompt:e.string().max(1e5),chosen:e.string().max(2e5),rejected:e.string().max(2e5),rationale:e.string().max(1e5).nullable().default(null)}),Sr=se.extend({kind:e.literal("correction"),original:e.string().max(2e5),corrected:e.string().max(2e5),rationale:e.string().max(1e5).nullable().default(null)}),br=se.extend({kind:e.literal("feedback"),feedback:e.string().max(1e5),polarity:e.enum(["positive","negative","mixed","neutral"])}),vr=se.extend({kind:e.literal("reward"),task:e.string().max(1e5),rules:e.array(e.object({id:S,points:e.number().finite(),condition:e.string().trim().min(1).max(1e5)})).min(1).max(1e3),otherwisePoints:e.number().finite(),executable:e.boolean()}),yr=se.extend({kind:e.literal("label"),labelKind:e.literal("rubric"),task:e.string().max(1e5),criteria:e.array(e.object({id:S,label:e.string().trim().min(1).max(500),description:e.string().trim().min(1).max(1e5)})).min(1).max(1e3),calibrationExamples:e.object({positive:e.string().trim().min(1).max(2e5),negative:e.string().trim().min(1).max(2e5),boundary:e.string().trim().min(1).max(2e5)})}),ti=e.discriminatedUnion("kind",[kr,xr,Sr,br,vr,yr]),We=e.object({demonstrations:e.array(kr).max(1e5).default([]),preferences:e.array(xr).max(1e5).default([]),corrections:e.array(Sr).max(1e5).default([]),feedback:e.array(br).max(1e5).default([]),rewards:e.array(vr).max(1e5).default([]),labels:e.array(yr).max(1e5).default([])}),Ke=e.object({protocolVersion:e.literal("openpond.taskEnvironment.v1"),kind:e.enum(["chat","agent","program","stateful_harness","work"]),entrypoint:e.string().trim().min(1).max(1e3),stateful:e.boolean(),deterministicSeeds:e.boolean(),toolNames:e.array(S).max(200).default([]),actionBindings:e.array(gr).max(200).optional(),lifecycle:e.array(e.enum(["create","reset","step","grade","cleanup"])).min(1),defaultTimeoutMs:e.number().int().positive().max(36e5),networkPolicy:e.enum(["none","declared_read_only","declared_scoped"]),resources:e.array(_a).max(1e4).optional(),metadata:P}),Ue=e.object({schemaVersion:e.literal("openpond.tasksetCapabilities.v1"),taskKind:e.enum(["chat","single_agent","multi_agent","custom_program"]),supportedSignals:e.array(e.enum(["demonstration","preference","correction","feedback","reward","label"])),compatibleMethods:e.array(e.enum(["none","retrieval","sft","dpo","grpo","ppo","sdft","opd","opsd","sdpo"])),rewardKinds:e.array(e.enum(["none","exact","deterministic","model_judge","human"])),requiresTools:e.boolean(),requiresState:e.boolean(),requiresPrivilegedGrading:e.boolean(),environmentPlacements:e.array(e.enum(["local","remote","colocated","provider_native"])),exportable:e.boolean(),portabilityBlockers:e.array(e.string().trim().min(1).max(2e3)).default([])}),Ze=e.object({id:S,taskIds:e.array(S).min(1).max(1e4).refine(t=>new Set(t).size===t.length,"Grader task IDs must be unique.").optional(),version:e.string().trim().min(1).max(100),label:e.string().trim().min(1).max(500),weight:e.number().min(0).max(1e3).default(1),hardGate:e.boolean().default(!1),rewardEligible:e.boolean().default(!1),privileged:e.boolean().default(!1),metadata:P}),Ta=Ze.extend({kind:e.enum(["content","schema","file","diff","test","runtime_event","state"]),config:e.record(e.string(),e.unknown())}),Ea=Ze.extend({kind:e.literal("model_judge"),rubric:e.string().trim().min(1).max(5e4),judge:we,calibrationFixtureRefs:e.array(S).min(1).max(500),calibrationStatus:e.enum(["pending","passed","failed"]),temperature:e.number().min(0).max(2).default(0)}),Aa=Ze.extend({kind:e.literal("human"),form:At.optional(),rubric:e.string().trim().min(1).max(5e4),reviewerRole:e.string().trim().min(1).max(500)}),ja=Ze.extend({kind:e.literal("custom_verifier"),runtime:jt.optional(),module:e.string().trim().min(1).max(1e3).refine(ae,"Custom verifier modules must use a safe relative path."),exportName:Sa,timeoutMs:e.number().int().positive().max(3e5),networkPolicy:e.literal("none")}),Ye=e.union([Ta,Ea,Aa,ja]),Pa=e.enum(["positive","negative","boundary","adversarial","prompt_injection","infrastructure_failure"]),ne=e.object({id:S,taskId:S,label:Pa,output:e.record(e.string(),e.unknown()),infrastructureError:e.string().trim().min(1).max(1e4).nullable(),expectedPassed:e.boolean(),expectedRewardEligible:e.boolean(),metadata:P});var Rr=e.object({schemaVersion:e.literal("openpond.connectedRewardCalibrationProjection.v1"),sourceReward:Ht,fixtureSet:C,calibrationCheck:N,fixture:Ft,fixtureHash:e.string().regex(/^[a-f0-9]{64}$/),checkResultHash:e.string().regex(/^[a-f0-9]{64}$/),independentCalibrationTask:e.literal(!0),closureRef:C,graderId:e.string().min(1).max(240).optional()}).strict();function wr(t){let a=t.taskset.metadata.ordinaryAuthoring??t.taskset.metadata.starterAuthoring;return e.object({graderFixtures:ne.array().max(1e5).default([])}).passthrough().parse(a??{}).graderFixtures}l(wr,"authoredFixtures");function _r(t){for(let a of wr(t)){let r=a.metadata.rewardCalibration;r&&typeof r=="object"&&Object.hasOwn(r,"closureRef")&&Ca(t,a)}for(let a of t.files)a.asset.mediaType==="application/vnd.openpond.reward-calibration-closure+json"&&Tr(t,a.asset)}l(_r,"assertTasksetCalibrationClosures");function Ca(t,a){let r=Rr.parse(a.metadata.rewardCalibration),n=Tr(t,r.closureRef);(g(r.sourceReward)!==g(v(n.reward))||g(r.fixtureSet)!==g(n.reward.fixtureSetRef)||r.calibrationCheck.id!==n.check.id||r.calibrationCheck.revision!==n.check.revision||r.calibrationCheck.contentHash!==g(n.check))&&y("calibration_source_changed");let s=r.fixture,i=`calibration-${g([r.sourceReward,s.id])}`;(a.id!==i||a.taskId!==i||t.taskset.tasks.some(f=>f.id===i)||r.fixtureHash!==g(s)||g(a.output)!==g(s.output)||a.infrastructureError!==s.infrastructureError)&&y("calibration_fixture_changed");let o=n.check.results.filter(f=>f.fixture.id===s.id&&f.fixture.contentHash===r.fixtureHash);(o.length!==1||g(o[0])!==r.checkResultHash)&&y("calibration_result_changed");let u=s.expected;(u.status!=="scored"||typeof u.passed!="boolean"||a.expectedPassed!==u.passed||a.label!==(u.passed?"positive":"negative"))&&y("calibration_expectation_unsupported");let c=r.graderId??r.sourceReward.id,m=t.taskset.graders.filter(f=>f.id===c),h=m[0];(m.length!==1||!h)&&y("calibration_grader_not_unique"),a.expectedRewardEligible!==h.rewardEligible&&y("calibration_reward_expectation_changed");let d=It({schemaVersion:"openpond.rewardBinding.v1",id:`calibration-${n.contentHash}`,revision:1,sources:[{graderId:c,reward:r.sourceReward,role:"evaluation",normalization:{kind:"identity"},weight:h.weight,required:!0,hardGate:h.hardGate,privileged:h.privileged,fixtureRefs:[]}],aggregation:"weighted_mean",unscorable:"exclude_optional_require_all_required"},[n.reward]),p=F(d,[n.reward])[0],x=l(f=>{let{rewardEligible:k,taskIds:b,...R}=f;return R.kind==="model_judge"?{...R,temperature:R.temperature??0}:R},"implementation");return g(x(h))!==g(x(p))&&y("calibration_grader_changed"),h.kind==="model_judge"&&Ha(t,h,r,n),{kind:"independent_reward_calibration",fixtureId:i,task:ue.parse({id:i,clusterKey:i,split:"validation",input:s.input,expectedOutput:s.expectedOutput,privilegedContextRef:null}),evaluatorContext:s.evaluatorContext,evidence:{output:s.output,artifactRefs:s.artifactRefs,runtimeEventRefs:s.runtimeEventRefs,infrastructureError:s.infrastructureError},grader:p,reward:n.reward,binding:d,expected:u,source:{reward:r.sourceReward,fixtureSet:r.fixtureSet,check:r.calibrationCheck,closure:r.closureRef,fixtureHash:r.fixtureHash,checkResultHash:r.checkResultHash}}}l(Ca,"resolveIndependent");function Tr(t,a){(a.visibility!=="host_private"||a.sizeBytes>qt||a.mediaType!=="application/vnd.openpond.reward-calibration-closure+json")&&y("calibration_closure_not_private");let r=t.files.filter(c=>c.asset.id===a.id);(r.length!==1||g(r[0].asset)!==g(a))&&y("calibration_closure_asset_changed");let n=j(r[0]),s=new TextDecoder("utf-8",{fatal:!0}).decode(n),i=Vt(JSON.parse(s));g(Gt(i).asset)!==g(a)&&y("calibration_closure_reference_changed"),t.files.filter(c=>c.asset.contentHash===a.contentHash||c.asset.id===a.id||c.asset.path===a.path).some(c=>c.asset.visibility!=="host_private")&&y("calibration_closure_visible_alias");let u=l(c=>c.id===a.id||c.path===a.path||c.contentHash===a.contentHash,"isAlias");for(let c of t.taskset.tasks)(c.artifactRefs.some(u)||(c.requiredOutputs??[]).some(m=>m.schemaRef&&u(m.schemaRef))||c.privilegedContextRef&&t.files.some(m=>m.asset.id===c.privilegedContextRef&&u(m.asset)))&&y("calibration_closure_task_alias"),(gt(c.input,s,a.contentHash)||gt(c.policyVisibleContext,s,a.contentHash))&&y("calibration_closure_inline_alias");for(let c of[t.environment.actionSchemaRef,t.environment.observationSchemaRef,t.environment.stateSchemaRef])c&&u(c)&&y("calibration_closure_environment_schema_alias");for(let c of[t.taskset.metadata.environmentResources,t.environment.metadata.resources]){if(c===void 0)continue;let m=e.array(e.object({id:e.string().optional(),path:e.string(),visibility:e.string().optional()}).passthrough()).parse(c);for(let h of m){let d=t.files.find(p=>p.asset.path===h.path);(h.id===a.id||h.path===a.path||d&&u(d.asset))&&y("calibration_closure_environment_resource_alias")}}return i}l(Tr,"readPrivateClosure");function gt(t,a,r){return typeof t=="string"?t===a||$(t)===r:!t||typeof t!="object"?!1:$(JSON.stringify(t))===r?!0:Object.values(t).some(n=>gt(n,a,r))}l(gt,"containsClosure");function y(t){throw new Error(t)}l(y,"fail");function Ha(t,a,r,n){let s=a.id,i=t.taskset.metadata.ordinaryAuthoring??t.taskset.metadata.starterAuthoring,o=e.object({judgeCalibrationFixtures:e.record(e.string(),e.array(e.string().min(1)).max(500))}).passthrough().parse(i),u=n.check.fixtureRefs.map(m=>`calibration-${g([r.sourceReward,m.id])}`);g(o.judgeCalibrationFixtures[s]??[])!==g(u)&&y("calibration_judge_membership_changed");let c=wr(t);for(let m=0;m<u.length;m++){let h=c.filter(b=>b.id===u[m]);h.length!==1&&y("calibration_judge_membership_changed");let d=h[0],p=Rr.parse(d.metadata.rewardCalibration),x=p.fixture.expected;(x.status!=="scored"||typeof x.passed!="boolean"||d.expectedPassed!==x.passed||d.expectedRewardEligible!==a.rewardEligible||d.label!==(x.passed?"positive":"negative")||g(d.output)!==g(p.fixture.output)||d.infrastructureError!==p.fixture.infrastructureError)&&y("calibration_judge_membership_changed");let f=n.check.fixtureRefs[m],k=n.check.results.find(b=>b.fixture.id===f.id);(d.taskId!==d.id||p.fixture.id!==f.id||p.fixtureHash!==f.contentHash||g(p.fixture)!==f.contentHash||p.checkResultHash!==g(k)||g(p.sourceReward)!==g(r.sourceReward)||g(p.fixtureSet)!==g(r.fixtureSet)||g(p.calibrationCheck)!==g(r.calibrationCheck)||g(p.closureRef)!==g(r.closureRef)||(p.graderId??p.sourceReward.id)!==s)&&y("calibration_judge_membership_changed")}}l(Ha,"assertJudgeFixtureMembership");var Ia=pt.omit({taskset:!0,executionResources:!0}),Er=e.object({schemaVersion:e.literal("openpond.tasksetPackage.v1"),taskset:B,environment:q,verifierSet:V,files:e.array(De).max(1e4),modelResources:Ia.optional(),learningResources:dt.optional()}).strict(),$a=Er.extend({contentHash:e.string().regex(/^[a-f0-9]{64}$/)}).strict();function _i(t){return t.learningResources?X(t.taskset).binding:t.modelResources?.rewardBinding??null}l(_i,"tasksetPackageRewardBinding");function Da(t){return t.learningResources?X(t.taskset).definition.instructions:t.modelResources?t.modelResources.taskDefinition.instructions:e.object({instructions:e.string().max(2e4).optional()}).passthrough().parse(t.taskset.metadata.ordinaryAuthoring??{}).instructions??""}l(Da,"resolveTasksetPackageInstructions");function Ar(t,a=$e){le(t,a);let r=$a.parse(t),{contentHash:n,...s}=r;if(g(s)!==n)throw new Error("Taskset package content hash differs from its bytes.");let{taskset:i,environment:o,verifierSet:u}=r;if(Te(i),ur(i)&&(r.modelResources||r.learningResources))throw new Error("Taskset package cannot declare competing authoring graphs.");if(!J(o)||!W(u)||!Z(i.environmentRelease,{id:o.id,contentHash:o.contentHash})||!Z(i.verifierSetRelease,{id:u.id,contentHash:u.contentHash})||!Z(i.environment,o.contract)||!Z(i.graders,u.graders))throw new Error("Taskset package execution releases do not match its Taskset.");let m=new Map;for(let d of r.files){if(m.has(d.asset.id))throw new Error(`Duplicate Taskset asset identity: ${d.asset.id}.`);j(d),m.set(d.asset.id,d)}function h(d){let p=m.get(d.id);if(!p||!Z(p.asset,d))throw new Error(`Taskset package asset is missing or mismatched: ${d.id}.`)}l(h,"requireAsset");for(let d of i.tasks){for(let p of d.artifactRefs)h(p);for(let p of d.requiredOutputs??[]){let x=it(p.metadata);if(x&&p.submissionMode!=="structured_json")throw new Error("Sampling schema requires a structured output.");if(p.schemaRef&&h(p.schemaRef),p.submissionMode==="structured_json"){if(!p.schemaRef||p.schemaRef.visibility!=="policy"||p.mediaType!=="application/json"||o.contract.kind!=="work")throw new Error("Structured output requires a policy-visible JSON schema in Work.");let f=ct(j(m.get(p.schemaRef.id)),p.schemaRef.contentHash);if(x){if(h(x.schemaRef),!d.artifactRefs.some(k=>Z(k,x.schemaRef)))throw new Error("Sampling schema must be an ordinary declared policy artifact.");ot(f,x,j(m.get(x.schemaRef.id)))}}}if(d.privilegedContextRef&&m.get(d.privilegedContextRef)?.asset.visibility!=="host_private")throw new Error(`Taskset package private context is missing: ${d.id}.`)}for(let d of[o.actionSchemaRef,o.observationSchemaRef,o.stateSchemaRef])d&&h(d);for(let d of i.graders){let p="verifierRef"in d?d.verifierRef:"rubricRef"in d?d.rubricRef:null;if(p&&(h(p),p.visibility==="policy"))throw new Error(`Taskset grader asset must be private: ${p.id}.`)}if(i.metrics?.customAggregator){let d=i.metrics.customAggregator,p=r.files.filter(x=>x.asset.path===d.module);if(p.length!==1||p[0].asset.contentHash!==d.contentHash||p[0].asset.sizeBytes>524288||p[0].asset.visibility==="policy")throw new Error("Taskset metric module is missing or mismatched, public, or exceeds the source limit.")}for(let d of[i.metadata.environmentResources,o.metadata.resources])if(d!==void 0){for(let p of e.array(e.object({path:e.string().min(1)}).passthrough()).parse(d))if(!r.files.some(x=>x.asset.path===p.path))throw new Error(`Taskset environment resource is missing: ${p.path}.`)}if(r.learningResources){if(r.modelResources)throw new Error("Taskset package cannot declare competing authoring graphs.");let d=ar(i,r.learningResources);for(let p of rr(d))if(!Z(m.get(p.asset.id),p))throw new Error("Taskset private context differs from its reviewed evidence.");for(let p of d.assets)h(p.asset)}else if(r.modelResources){let d=Me({...r.modelResources,taskset:i,executionResources:{environment:o,verifierSet:u}});for(let p of d.assets)h(p.asset)}else if(["starter","rewardBinding","rewardExecution","modelTasksetDerivation","learning"].some(d=>i.metadata[d]!==void 0))throw new Error("Bound Taskset publication requires its complete model resources.");return ut(r),Da(r),_r(r),r}l(Ar,"validateTasksetPackage");function Ti(t,a=$e){le(t,a);let r=Er.parse(t);return Ar({...r,contentHash:g(r)},a)}l(Ti,"createTasksetPackage");function Z(t,a){return g({value:t})===g({value:a})}l(Z,"same");function Ei(t,a){let r=Ar(t),n=r.taskset.tasks.find(s=>s.id===a);if(!n||r.environment.contract.kind!=="work")throw new Error("Work Taskset task not found.");return(n.requiredOutputs??[]).map(s=>({path:s.path,mediaType:s.mediaType,maxBytes:s.maxBytes,...s.submissionMode==="structured_json"?{submissionMode:"structured_json",structuredOutput:(()=>{let i=ct(j(r.files.find(u=>u.asset.id===s.schemaRef.id)),s.schemaRef.contentHash),o=it(s.metadata);return o?{...i,sampling:ot(i,o,j(r.files.find(u=>u.asset.id===o.schemaRef.id)))}:i})()}:{}}))}l(Ei,"resolveTasksetWorkOutputs");function Oa(t,a){let r=t.metadata.learning===void 0?null:rt.parse(t.metadata.learning),n=t.metadata.rewardExecution,s=a??(n?{binding:fe.parse(n.binding),rewards:pe.array().parse(n.rewards)}:r);if(t.metadata.rewardBinding!==void 0){let i=t.metadata.rewardBinding;if(!s||!i||i.id!==s.binding.id||i.revision!==s.binding.revision||i.contentHash!==s.binding.contentHash)throw new Error("Portable Taskset requires its exact published Reward binding.")}return s&&F(s.binding,s.rewards),s?{binding:s.binding,rewards:s.rewards}:null}l(Oa,"resolvePortableTasksetRewardExecution");function zi(t){let a=Cr(t.taskset),r=Hr(t.taskset),n=t.taskset.metadata.learning===void 0?null:rt.parse(t.taskset.metadata.learning),s=t.taskset.metadata.rewardExecution,i=Oa(t.taskset,t.rewardExecution),o=i?F(i.binding,i.rewards):t.taskset.graders.map(za),u=t.selectedTasks?.length?t.selectedTasks:t.taskset.tasks;if(!u.length)throw new Error("A portable Taskset release requires at least one task.");let c=t.taskset.environment.metadata.portableExecutionResources;if(a.entrypoint==="openpond.javascript-environment.v1"&&!c)throw new Error("Tool Taskset publication requires its pinned execution resources.");let m=c?q.parse(c.environment):je({schemaVersion:"openpond.environmentRelease.v1",id:`environment-release-${t.taskset.id}-r${t.taskset.revision}`,revision:t.taskset.revision,contract:a,actionSchemaRef:null,observationSchemaRef:null,stateSchemaRef:null,artifactCollection:{maxArtifacts:1e5,maxTotalBytes:25e7},adapterConformanceHashes:{[t.adapterId]:g({adapterId:t.adapterId,environment:a,tools:r})},metadata:{sourceTasksetId:t.taskset.id,sourcePackageHash:t.taskset.metadata.sourcePackageHash??null,resources:t.taskset.environment.resources??[]}}),h=c?.verifierSet!==void 0?V.parse(c.verifierSet):Pe({schemaVersion:"openpond.verifierSetRelease.v1",id:`verifier-set-release-${t.taskset.id}-r${t.taskset.revision}`,revision:t.taskset.revision,graders:o,isolation:{processBoundary:"isolated_process",networkPolicy:"none",defaultTimeoutMs:Math.min(t.taskset.environment.defaultTimeoutMs,3e5)},calibrationReceiptRefs:[],metadata:{sourceTasksetId:t.taskset.id}});if(!J(m)||!W(h)||g(m.contract)!==g(a)||g(h.graders)!==g(o))throw new Error("Taskset execution resources differ from its declared environment or graders.");let d=Pt.parse({schemaVersion:"openpond.tasksetRelease.v2",id:t.taskset.metadata.derivedPortableMetadata===void 0?`taskset-release-${t.taskset.id}-r${t.taskset.revision}`:t.taskset.id,revision:t.taskset.revision,policy:{policyVisibleFields:t.taskset.policy.policyVisibleFields,privilegedFields:t.taskset.policy.privilegedFields,hiddenGraderRefs:t.taskset.policy.hiddenGraderRefs,connectedAppScopes:t.taskset.policy.connectedAppScopes},environment:a,tools:r,capabilities:Ba(t.taskset),tasks:u.map(Ma),graders:o,...t.taskset.metrics?{metrics:t.taskset.metrics}:{},metadata:{...t.taskset.metadata.derivedPortableMetadata??{sourceTasksetId:t.taskset.id,sourceTasksetHash:t.taskset.contentHash,sourcePackageHash:t.taskset.metadata.sourcePackageHash??null,environmentResources:t.taskset.environment.resources??[],workAssetStagingPaths:Object.fromEntries(u.filter(f=>f.assets?.some(k=>k.stagingPath)).map(f=>[f.id,Object.fromEntries((f.assets??[]).filter(k=>k.stagingPath).map(k=>[k.id,k.stagingPath]))])),ordinaryAuthoring:{instructions:t.taskset.objective,graderSourceRewards:Object.fromEntries(t.taskset.graders.filter(f=>f.metadata.sourceReward!==void 0).map(f=>[f.id,f.metadata.sourceReward])),graderOrigins:Object.fromEntries(t.taskset.graders.map(f=>[f.id,f.metadata.preparationOrigin==="reused"?"reused":f.metadata.preparationOrigin==="adapted"||f.metadata.adaptedFromReward?"adapted":"authored"])),graderFixtures:t.taskset.graderFixtures,judgeCalibrationFixtures:Object.fromEntries(t.taskset.graders.filter(f=>f.kind==="model_judge").map(f=>[f.id,f.calibrationFixtureRefs]))},...n?{learning:n}:{},...i&&!n&&(t.rewardExecution||s)?{rewardExecution:{binding:i.binding,rewards:i.rewards}}:{}},...t.taskset.metadata.tasksetOutputContract===void 0?{}:{tasksetOutputContract:t.taskset.metadata.tasksetOutputContract}}}),p=t.admittedTasksetRelease?B.parse(t.admittedTasksetRelease):B.parse({...d,contentHash:g(d)}),x=p.environmentRelease?Fa({draft:p,environmentRelease:m,verifierSetRelease:h}):Lt({taskset:p,environment:m,verifierSet:h});return{environmentRelease:m,verifierSetRelease:h,tasksetRelease:x}}l(zi,"materializePortableTasksetRelease");function Bi(t){if(!Nt(t.preferenceComparison))throw new Error("Preference comparison release failed immutable content verification.");let a=t.preferenceComparison;if(a.tasksetRelease.id!==t.tasksetRelease.id||a.tasksetRelease.contentHash!==t.tasksetRelease.contentHash)throw new Error("Preference comparison release must reference the admitted portable Taskset release.");return a}l(Bi,"projectPreferenceComparisonRelease");function Fi(t){return Cr(t)}l(Fi,"portableTasksetEnvironment");function qi(t){return Hr(t)}l(qi,"portableTasksetTools");function Ma(t){let a=t.metadata.portableTaskRecord;if(a!==void 0){let r=ue.parse(a),n=ue.parse({...r,id:t.id,clusterKey:t.clusterKey,split:t.split,input:t.input,expectedOutput:jr(t),policyVisibleContext:t.policyVisibleContext,privilegedContextRef:t.privilegedContextRef,tags:t.tags,artifactRefs:t.assets===void 0?r.artifactRefs:t.assets.filter(s=>r.artifactRefs.some(i=>i.id===s.id)||s.metadata.sharedEnvironmentResource===void 0&&!(t.requiredOutputs??[]).some(i=>i.submissionMode==="structured_json"&&i.schemaRef===s.id)).map(s=>{let i=r.artifactRefs.find(o=>o.id===s.id);return{id:s.id,path:i?.path??`tasks/${ie(t.id)}/${s.stagingPath??ie(s.fileName)}`,contentHash:kt(s.sha256),sizeBytes:s.sizeBytes,mediaType:s.mediaType,visibility:i?.visibility??"policy"}}),requiredOutputs:t.requiredOutputs===void 0?r.requiredOutputs:t.requiredOutputs.map(s=>{let i=r.requiredOutputs?.find(o=>o.path===s.path);return{path:s.path,mediaType:s.mediaType,...s.submissionMode?{submissionMode:s.submissionMode}:{},schemaRef:i?.schemaRef&&i.schemaRef.id===s.schemaRef?i.schemaRef:t.metadata.outputSchemaRefs?.[s.schemaRef??""]??null,maxBytes:s.maxBytes??null,metadata:{...s.metadata,...s.schemaRef&&i?.schemaRef?.id!==s.schemaRef?{legacySchemaRef:s.schemaRef}:{}}}})});return n.requiredOutputs===void 0&&delete n.requiredOutputs,n}return{id:t.id,clusterKey:t.clusterKey,split:t.split,input:t.input,expectedOutput:jr(t),policyVisibleContext:t.policyVisibleContext,privilegedContextRef:t.privilegedContextRef,artifactRefs:(t.assets??[]).map(r=>({id:r.id,path:`tasks/${ie(t.id)}/${r.stagingPath??ie(r.fileName)}`,contentHash:kt(r.sha256),sizeBytes:r.sizeBytes,mediaType:r.mediaType,visibility:"policy"})),requiredOutputs:(t.requiredOutputs??[]).map(r=>({path:r.path,mediaType:r.mediaType,...r.submissionMode?{submissionMode:r.submissionMode}:{},schemaRef:t.metadata.outputSchemaRefs?.[r.schemaRef??""]??null,maxBytes:r.maxBytes??null,metadata:{...r.metadata,legacySchemaRef:r.schemaRef??null}})),tags:t.tags}}l(Ma,"projectPortableTaskRecord");function jr(t){if(!t.expectedOutput)return null;if("artifactRenderer"in t.expectedOutput)throw new Error(`Task ${t.id} embeds an artifact renderer. Put shared renderer configuration in Environment resources and reference it from the Scenario.`);return t.expectedOutput}l(jr,"portableExpectedOutput");function Cr(t){return{protocolVersion:"openpond.environment.v1",kind:t.environment.kind==="chat"?"text":t.environment.kind==="work"?"work":t.environment.kind==="program"?"custom_program":"agent",entrypoint:t.environment.entrypoint,stateful:t.environment.stateful,deterministicSeeds:t.environment.deterministicSeeds,lifecycle:["create","reset","step","collect","destroy"],networkPolicy:t.environment.networkPolicy,defaultTimeoutMs:t.environment.defaultTimeoutMs}}l(Cr,"portableEnvironment");function Hr(t){let a=t.environment.metadata.portableTools;if(a!==void 0)return Tt.array().max(200).parse(a);let r=t.environment.actionBindings??[];return r.length?r.map(n=>({name:n.modelToolName,description:n.description,inputSchema:n.inputSchema,inputSchemaHash:kt(n.actionSchemaHash),sideEffect:n.sideEffect,timeoutMs:n.timeoutMs})):t.environment.toolNames.map(n=>({name:n,description:`Host-provided ${n} tool.`,inputSchema:{},inputSchemaHash:g({}),sideEffect:"write",timeoutMs:t.environment.defaultTimeoutMs}))}l(Hr,"portableTools");function za(t){let a={id:t.id,...t.taskIds?{taskIds:t.taskIds}:{},version:t.version,weight:t.weight,hardGate:t.hardGate,rewardEligible:t.rewardEligible,privileged:t.privileged};if(t.kind==="model_judge")return{...a,kind:"model_judge",rubricRef:Pr(t),model:qa(t),temperature:t.temperature,calibrationStatus:t.calibrationStatus};if(t.kind==="custom_verifier"){if(t.metadata.portableVerifierRef===void 0)throw new Error(`Custom verifier ${t.id} requires its immutable executable asset before publication.`);let r=et.safeParse(t.metadata.portableGrader),n=r.success&&r.data.kind==="custom_verifier"&&r.data.exportName===void 0&&t.exportName==="verify";return{...a,kind:"custom_verifier",...t.runtime===void 0?{}:{runtime:t.runtime},verifierRef:C.parse(t.metadata.portableVerifierRef),timeoutMs:t.timeoutMs,...n?{}:{exportName:t.exportName},networkPolicy:"none"}}return t.kind==="human"?{...a,kind:"human",rubricRef:Pr(t),reviewerRole:t.reviewerRole,...t.form?{form:t.form}:{}}:{...a,...Ct(t)}}l(za,"portableGrader");function Ba(t){let a=t.metadata.portableCapabilities;return a!==void 0?Et.array().max(200).parse(a):[...t.capabilities.requiresTools?[{id:"tools",required:!0,scopes:t.environment.toolNames}]:[],...t.capabilities.requiresState?[{id:"local-state",required:!0,scopes:[]}]:[],...t.capabilities.requiresPrivilegedGrading?[{id:"private-verifier",required:!0,scopes:t.policy.hiddenGraderRefs}]:[],...t.policy.connectedAppScopes.map(r=>({id:`connected-app-${ie(r)}`,required:!0,scopes:[r]}))].map(r=>({...r,portability:r.id==="local-state"?"host_adapter":"portable"}))}l(Ba,"portableCapabilities");function Fa(t){if(t.draft.environmentRelease?.id!==t.environmentRelease.id||t.draft.environmentRelease.contentHash!==t.environmentRelease.contentHash)throw new Error("Admitted Taskset Release binds a different Environment Release.");if(t.draft.verifierSetRelease?.id!==t.verifierSetRelease.id||t.draft.verifierSetRelease.contentHash!==t.verifierSetRelease.contentHash)throw new Error("Admitted Taskset Release binds a different Verifier Set Release.");if(g(t.draft.environment)!==g(t.environmentRelease.contract))throw new Error("Admitted Taskset Environment differs from its bound Environment Release.");if(g(t.draft.graders)!==g(t.verifierSetRelease.graders))throw new Error("Admitted Taskset graders differ from its bound Verifier Set Release.");return t.draft}l(Fa,"assertReleaseBindings");function qa(t){let a=t.metadata.portableGrader===void 0?null:et.parse(t.metadata.portableGrader),r=a?.kind==="model_judge"&&a.model?.providerId===t.judge.providerId&&a.model.modelId===t.judge.modelId?a.model.revision:null;return{...t.judge,revision:r}}l(qa,"modelJudgeRef");function Pr(t){let a=$(t.rubric),r=new TextEncoder().encode(t.rubric).byteLength,n=t.metadata.portableRubricRef;if(n!==void 0){let s=C.parse(n);if(s.contentHash!==a||s.sizeBytes!==r||s.visibility==="policy")throw new Error("Taskset rubric differs from its published private source.");return s}return{id:`rubric-${t.id}`,path:`graders/${ie(t.id)}/rubric.md`,contentHash:a,sizeBytes:r,mediaType:"text/markdown",visibility:"verifier"}}l(Pr,"rubricAsset");function kt(t){return/^[a-f0-9]{64}$/.test(t)?t:g(t)}l(kt,"hash");function ie(t){return t.trim().replace(/[^a-zA-Z0-9._-]+/g,"-").replace(/^-+|-+$/g,"")||"asset"}l(ie,"segment");var H=e.string().trim().min(1).max(240),be=e.string().trim().min(1),Xe=e.string().trim().min(8).max(256),$r=e.record(e.string(),e.unknown()).default({}),Va=H.nullable(),Dr=["work_capabilities","work_environment","work_list_files","work_read_file","work_read_document","work_write_file","work_write_docx","work_edit_file","work_delete_file","work_exec","work_save_output","work_stop"],Ga=e.enum(["draft","awaiting_disclosure_approval","awaiting_materialization_approval","materializing","validating","needs_review","baselining","ready","blocked","failed","archived"]),La=e.enum(["demonstrations","preferences","verifiable_reward","rubric","discovery"]),w=e.string().trim().max(1e5),Na=e.discriminatedUnion("kind",[e.object({kind:e.literal("demonstrations"),behavior:w,examples:e.array(e.object({id:H,prompt:w,response:w})).max(1e3).default([])}),e.object({kind:e.literal("preferences"),preference:w,pairs:e.array(e.object({id:H,prompt:w,chosen:w,rejected:w,rationale:w})).max(1e3).default([])}),e.object({kind:e.literal("verifiable_reward"),task:w,rules:e.array(e.object({id:H,points:e.number().finite(),condition:w})).max(1e3).default([]),otherwisePoints:e.number().finite().default(0)}),e.object({kind:e.literal("rubric"),task:w,criteria:e.array(e.object({id:H,label:e.string().trim().max(500),description:w})).max(1e3).default([]),positiveExample:w,negativeExample:w,boundaryExample:w})]),Zi=e.object({path:e.string().trim().min(1).max(1e3),role:e.enum(["environment","verifier","fixture"]),content:e.string().max(25e4)}),Ja=e.object({primaryMethod:e.enum(["sft","dpo","grpo","ppo","sdft","opsd","sdpo"]),bootstrap:e.object({method:e.literal("sft"),purpose:e.literal("trajectory_bootstrap"),demonstrationRefs:e.array(H).min(1).max(1e5),limitations:e.array(e.string().trim().min(1).max(5e3)).min(1).max(100)}).nullable()}),Wa=e.enum(["taskset_not_ready","demonstrations_missing","preference_pairs_missing","preference_pairs_invalid","executable_reward_missing","reward_not_calibrated","reward_model_missing","value_model_required","frozen_eval_missing"]),Ka=e.object({method:e.enum(["sft","dpo","grpo","ppo"]),status:e.enum(["recommended","compatible","needs_dataset_work"]),reasonCodes:e.array(Wa).default([]),reasons:e.array(e.string().trim().min(1).max(5e3)).default([])}),Ir=e.object({code:H,message:e.string().trim().min(1).max(5e3),path:e.string().trim().max(2e3).nullable()}),Ua=e.object({schemaVersion:e.literal("openpond.tasksetReadiness.v1"),tasksetId:H,tasksetHash:Xe,ready:e.boolean(),recommendedMethod:e.enum(["none","retrieval","sft","dpo","grpo","ppo","sdft","opd","opsd","sdpo"]),trainingPath:Ja.nullable().default(null),methodReadiness:e.array(Ka).default([]),compatibleDestinationClasses:e.array(e.enum(["export","custom","hosted_managed"])),blockers:e.array(Ir).default([]),advisories:e.array(Ir).default([]),warnings:e.array(e.string().trim().min(1).max(5e3)).default([]),generatedAt:be}),Za=e.object({attempt:e.number().int().positive(),summary:e.string().trim().min(1).max(5e3),createdAt:be}),Ya=e.object({schemaVersion:e.literal("openpond.taskAuthoringProvenance.v1"),model:we.nullable(),modelConfig:$r,skillHash:Xe,promptTemplateVersion:e.string().trim().min(1).max(200),buildIntent:La.default("demonstrations"),buildSpecification:Na.nullable().default(null),evidenceHashes:e.array(Xe).max(1e5),tasksetSdkVersion:e.string().trim().min(1).max(100),sourceCommit:e.string().trim().min(1).max(256).nullable(),repairHistory:e.array(Za).max(1e3),createdAt:be}),Or=e.object({schemaVersion:e.literal("openpond.taskset.v1"),id:H,revision:e.number().int().positive().default(1),profileId:H,profileRelease:_t.nullable().optional(),createImproveRunId:Va.default(null),name:e.string().trim().min(1).max(500),objective:e.string().trim().max(2e4),purpose:qe.default("general"),benchmark:Ve.nullable().default(null),preferenceComparison:Ge.nullable().default(null),status:Ga,sourceRefs:e.array(Le).min(1).max(1e5),datasetArtifact:Se.nullable().optional(),policy:Ne,environment:Ke,capabilities:Ue,metrics:_e.optional(),tasks:e.array(Je).max(1e6),graders:e.array(Ye).max(1e3),graderFixtures:e.array(ne).max(1e5),learningSignals:We,authoringProvenance:Ya,readiness:Ua.nullable(),contentHash:Xe,createdAt:be,updatedAt:be,metadata:$r}).superRefine((t,a)=>{t.purpose==="benchmark"&&!t.benchmark&&a.addIssue({code:"custom",message:"Benchmark Tasksets require an immutable benchmark binding.",path:["benchmark"]}),t.purpose!=="benchmark"&&t.benchmark&&a.addIssue({code:"custom",message:"Only benchmark Tasksets may carry a benchmark binding.",path:["benchmark"]}),t.datasetArtifact&&t.tasks.length>0&&a.addIssue({code:"custom",message:"Artifact-backed Tasksets may not duplicate canonical rows inline.",path:["tasks"]}),!t.datasetArtifact&&t.tasks.length===0&&a.addIssue({code:"custom",message:"A Taskset requires inline tasks or a Dataset artifact manifest.",path:["tasks"]})});function Mr(t){return t.schemaVersion==="openpond.trainingSource.v1"}l(Mr,"isTrainingSourceRef");function to(t,a={}){let r=Or.safeParse(t);if(!r.success)return{valid:!1,taskset:null,computedHash:null,issues:r.error.issues.map(o=>({code:"schema_invalid",severity:"error",message:o.message,path:o.path.join(".")}))};let n=r.data,s=[];es(n,s),Qa(n,s),ts(n,s),as(n,s),ss(n,s),a.purpose!=="publication"&&(n.graders.length||s.push({code:"graders_required",severity:"error",message:"Scored execution requires at least one grader.",path:"graders"}),Xa(n,s,a)),ns(n,s),is(n.capabilities,s,n),rs(n,s);let i=zr(n);return n.contentHash!==i&&s.push({code:"content_hash_mismatch",severity:"error",message:`Taskset contentHash is ${n.contentHash}, expected ${i}.`,path:"contentHash"}),{valid:!s.some(o=>o.severity==="error"),taskset:n,computedHash:i,issues:s}}l(to,"validateTaskset");function Xa(t,a,r){let n=t.graders.length>0&&t.graders.every(o=>o.kind==="human");!n&&!t.graderFixtures.length&&!(r.allowUnscoredOnlineRewardBatch&&t.metadata.trainingMethod==="grpo"&&t.metadata.learning)&&a.push({code:"grader_fixtures_required",severity:"error",message:"Taskset admission requires authored grader fixtures.",path:"graderFixtures"});let s=new Set(t.tasks.map(o=>o.id)),i=new Set(["positive","negative","boundary","adversarial","prompt_injection","infrastructure_failure"]);for(let o of t.graderFixtures)!t.datasetArtifact&&!s.has(o.taskId)&&a.push({code:"grader_fixture_task_missing",severity:"warning",message:`Fixture ${o.id} references a task outside this Taskset revision (${o.taskId}).`,path:`graderFixtures.${o.id}.taskId`}),i.delete(o.label),o.label==="infrastructure_failure"&&!o.infrastructureError&&a.push({code:"infrastructure_fixture_error_missing",severity:"error",message:`Infrastructure fixture ${o.id} must declare an infrastructure error.`,path:`graderFixtures.${o.id}.infrastructureError`});for(let o of n?[]:i)a.push({code:"grader_fixture_missing",severity:"warning",message:`Taskset does not include the optional ${o} grader calibration fixture.`,path:"graderFixtures"})}l(Xa,"validateGraderFixtures");function Qa(t,a){let r=t.datasetArtifact;if(!r)return;(r.tasksetId!==t.id||r.tasksetRevision!==t.revision)&&a.push({code:"dataset_artifact_taskset_mismatch",severity:"error",message:"Dataset artifact identity does not match its Taskset revision.",path:"datasetArtifact"});let n=Object.values(r.splitCounts).reduce((c,m)=>c+m,0),s=r.shards.reduce((c,m)=>c+m.rowCount,0);(n!==r.rowCount||s!==r.rowCount)&&a.push({code:"dataset_artifact_row_count_mismatch",severity:"error",message:"Dataset artifact row, split, and shard counts do not agree.",path:"datasetArtifact.rowCount"});let i=new Map;for(let c of r.shards)i.set(c.split,(i.get(c.split)??0)+c.rowCount);for(let[c,m]of Object.entries(r.splitCounts))(i.get(c)??0)!==m&&a.push({code:"dataset_artifact_split_count_mismatch",severity:"error",message:`Dataset artifact ${c} shard counts do not match its manifest.`,path:`datasetArtifact.splitCounts.${c}`});let{contentHash:o,...u}=r;g(u)!==r.contentHash&&a.push({code:"dataset_artifact_hash_mismatch",severity:"error",message:"Dataset artifact manifest content hash is invalid.",path:"datasetArtifact.contentHash"})}l(Qa,"validateDatasetArtifact");function ro(t){return zr(t)}l(ro,"computeTasksetHash");function zr(t){let{contentHash:a,status:r,readiness:n,updatedAt:s,...i}=t;return g(i)}l(zr,"tasksetContentHash");function es(t,a){for(let[r,n]of t.sourceRefs.entries())Mr(n)&&n.consent.status!=="granted"&&a.push({code:"source_consent_missing",severity:"error",message:`Source ${n.id} is not consented.`,path:`sourceRefs.${r}.consent.status`}),n.secretScanStatus!=="passed"&&a.push({code:"source_secret_scan",severity:"error",message:`Source ${n.id} did not pass secret scanning.`,path:`sourceRefs.${r}.secretScanStatus`}),n.piiScanStatus!=="passed"&&a.push({code:"source_pii_scan",severity:"error",message:`Source ${n.id} has unresolved PII policy.`,path:`sourceRefs.${r}.piiScanStatus`}),n.licensingStatus!=="approved"&&a.push({code:"source_license",severity:"error",message:`Source ${n.id} has unresolved licensing policy.`,path:`sourceRefs.${r}.licensingStatus`})}l(es,"validateSourceConsent");function ts(t,a){let r=new Map;for(let s of t.tasks){let i=r.get(s.clusterKey)??new Set;i.add(s.split),r.set(s.clusterKey,i)}for(let[s,i]of r)i.size>1&&a.push({code:"split_cluster_contamination",severity:"error",message:`Source cluster ${s} appears in multiple splits: ${[...i].join(", ")}.`,path:"tasks"});(t.datasetArtifact?t.datasetArtifact.splitCounts.frozen_eval??0:t.tasks.filter(s=>s.split==="frozen_eval").length)===0&&a.push({code:"frozen_eval_missing",severity:"warning",message:"Add an independent test example before training.",path:"tasks"})}l(ts,"validateSplitIsolation");function rs(t,a){if(t.environment.kind!=="work")return;t.environment.entrypoint!=="openpond-work-v1"&&a.push({code:"work_entrypoint_invalid",severity:"error",message:"Work Tasksets must use the openpond-work-v1 entrypoint.",path:"environment.entrypoint"}),(!t.environment.lifecycle.includes("reset")||!t.environment.lifecycle.includes("cleanup"))&&a.push({code:"work_reset_lifecycle_missing",severity:"error",message:"Work attempts require reset and cleanup; filesystem state belongs to one attempt.",path:"environment.lifecycle"});let r=new Set(Dr),n=t.environment.toolNames.filter(i=>!r.has(i));n.length&&a.push({code:"work_tool_unknown",severity:"error",message:`Work Taskset declares unknown tools: ${n.join(", ")}.`,path:"environment.toolNames"}),t.environment.toolNames.includes("work_save_output")||a.push({code:"work_output_tool_missing",severity:"error",message:"Work Tasksets must declare work_save_output.",path:"environment.toolNames"});for(let i of["create","reset","step","grade","cleanup"])t.environment.lifecycle.includes(i)||a.push({code:"work_lifecycle_incomplete",severity:"error",message:`Work Tasksets require the ${i} lifecycle stage.`,path:"environment.lifecycle"});let s=new Map(t.sourceRefs.map(i=>[i.id,i]));for(let[i,o]of t.tasks.entries()){let u=new Set,c=new Set;for(let[h,d]of(o.assets??[]).entries()){let p=`tasks.${i}.assets.${h}`;u.has(d.id)&&a.push({code:"work_asset_duplicate_id",severity:"error",message:`Task ${o.id} repeats asset id ${d.id}.`,path:`${p}.id`});let x=d.stagingPath??d.fileName;c.has(x)&&a.push({code:"work_asset_duplicate_name",severity:"error",message:`Task ${o.id} repeats staged path ${x}.`,path:`${p}.fileName`}),u.add(d.id),c.add(x),o.sourceRefs.includes(d.sourceRefId)||a.push({code:"work_asset_task_source_missing",severity:"error",message:`Asset ${d.id} references source ${d.sourceRefId} outside task ${o.id}.`,path:`${p}.sourceRefId`});let f=s.get(d.sourceRefId);f?"sourceFileHashes"in f&&!f.sourceFileHashes?.includes(d.sha256)&&a.push({code:"work_asset_hash_unregistered",severity:"error",message:`Asset ${d.id} hash is not registered by source ${d.sourceRefId}.`,path:`${p}.sha256`}):a.push({code:"work_asset_source_missing",severity:"error",message:`Asset ${d.id} references missing source ${d.sourceRefId}.`,path:`${p}.sourceRefId`}),f&&"kind"in f&&f.kind==="uploaded_file"&&!f.originalFileNames.includes(d.fileName)&&a.push({code:"work_asset_name_unregistered",severity:"error",message:`Asset ${d.id} file name is not registered by source ${d.sourceRefId}.`,path:`${p}.fileName`}),f&&"kind"in f&&f.kind==="uploaded_file"&&!f.mediaTypes.includes(d.mediaType)&&a.push({code:"work_asset_media_type_unregistered",severity:"error",message:`Asset ${d.id} media type is not registered by source ${d.sourceRefId}.`,path:`${p}.mediaType`}),d.split!==o.split&&a.push({code:"work_asset_split_mismatch",severity:"error",message:`Asset ${d.id} is assigned to ${d.split}, not task split ${o.split}.`,path:`${p}.split`})}let m=new Set;for(let[h,d]of(o.requiredOutputs??[]).entries()){let p=d.path.replaceAll("\\","/"),x=`tasks.${i}.requiredOutputs.${h}.path`;m.has(p)&&a.push({code:"work_output_duplicate_path",severity:"error",message:`Task ${o.id} repeats required output path ${p}.`,path:x}),m.add(p)}(o.requiredOutputs??[]).length===0&&a.push({code:"work_output_missing",severity:"error",message:`Work task ${o.id} must declare at least one required output.`,path:`tasks.${i}.requiredOutputs`})}}l(rs,"validateWorkExecution");function as(t,a){let r=new Set(t.policy.policyVisibleFields);for(let n of t.policy.privilegedFields)r.has(n)&&a.push({code:"privileged_field_visible",severity:"error",message:`Field ${n} is both policy-visible and privileged.`,path:"policy"});for(let n of t.tasks)n.privilegedContextRef&&Object.keys(n.policyVisibleContext).includes(n.privilegedContextRef)&&a.push({code:"privileged_context_leak",severity:"error",message:`Task ${n.id} exposes its privileged context reference.`,path:`tasks.${n.id}.policyVisibleContext`})}l(as,"validatePolicyBoundary");function ss(t,a){let r=new Set(t.tasks.map(s=>s.id)),n=new Set;for(let s of t.graders)s.taskIds?.some(i=>!r.has(i))&&a.push({code:"grader_task_missing",severity:"error",message:`Grader ${s.id} refers to a task outside this Dataset.`,path:"graders"}),n.has(s.id)&&a.push({code:"grader_duplicate",severity:"error",message:`Duplicate grader id ${s.id}.`,path:"graders"}),n.add(s.id),s.kind==="model_judge"&&s.rewardEligible&&s.calibrationStatus!=="passed"&&a.push({code:"judge_calibration_pending",severity:"warning",message:`Model judge ${s.id} is selected for reward without a passing advisory calibration report.`,path:`graders.${s.id}`}),s.kind==="model_judge"&&s.calibrationStatus==="passed"&&typeof s.metadata.calibrationEvidenceHash!="string"&&a.push({code:"judge_calibration_evidence_missing",severity:"warning",message:`Model judge ${s.id} declares calibration without an OpenPond fixture evidence hash.`,path:`graders.${s.id}.metadata.calibrationEvidenceHash`}),s.kind==="human"&&s.rewardEligible&&a.push({code:"human_online_reward",severity:"error",message:`Human grader ${s.id} cannot be an online optimizer reward.`,path:`graders.${s.id}`})}l(ss,"validateGraders");function ns(t,a){let r=new Set(t.tasks.map(s=>s.id)),n=new Set(t.sourceRefs.map(s=>s.id));for(let s of[...t.learningSignals.demonstrations,...t.learningSignals.preferences,...t.learningSignals.corrections,...t.learningSignals.feedback,...t.learningSignals.rewards,...t.learningSignals.labels])s.taskId&&!t.datasetArtifact&&!r.has(s.taskId)&&a.push({code:"learning_signal_task_missing",severity:"error",message:`Signal ${s.id} references missing task ${s.taskId}.`,path:`learningSignals.${s.kind}.${s.id}.taskId`}),s.sourceRefs.some(i=>!n.has(i))&&a.push({code:"learning_signal_source_missing",severity:"error",message:`Signal ${s.id} references a source outside the Dataset.`,path:`learningSignals.${s.kind}.${s.id}.sourceRefs`});for(let s of t.learningSignals.preferences)s.chosen.trim()===s.rejected.trim()&&a.push({code:"preference_pair_identical",severity:"error",message:`Preference ${s.id} has identical chosen and rejected responses.`,path:`learningSignals.preferences.${s.id}`});for(let s of t.learningSignals.rewards)s.executable||a.push({code:"reward_not_executable",severity:"warning",message:`Reward ${s.id} is a reviewed specification but has no executable verifier yet.`,path:`learningSignals.rewards.${s.id}.executable`})}l(ns,"validateLearningSignals");function is(t,a,r){!t.exportable&&t.portabilityBlockers.length===0&&a.push({code:"portability_reason_missing",severity:"error",message:"Non-exportable Tasksets must declare a portability blocker.",path:"capabilities.portabilityBlockers"}),t.compatibleMethods.includes("grpo")&&!t.rewardKinds.some(n=>n==="exact"||n==="deterministic"||n==="model_judge")&&a.push({code:"grpo_reward_missing",severity:"error",message:"GRPO compatibility requires a scalar reward kind.",path:"capabilities.rewardKinds"}),r?.capabilities.compatibleMethods.includes("sft")&&r.learningSignals.demonstrations.length===0&&a.push({code:"sft_demonstrations_missing",severity:"error",message:"SFT compatibility requires approved demonstrations.",path:"learningSignals.demonstrations"}),r?.capabilities.compatibleMethods.includes("dpo")&&r.learningSignals.preferences.length===0&&a.push({code:"dpo_preferences_missing",severity:"error",message:"DPO compatibility requires chosen and rejected response pairs.",path:"learningSignals.preferences"}),r&&(r.capabilities.compatibleMethods.includes("grpo")||r.capabilities.compatibleMethods.includes("ppo"))&&!r.learningSignals.rewards.some(n=>n.executable)&&!r.graders.some(n=>n.rewardEligible&&n.weight>0&&n.kind!=="human")&&a.push({code:"online_reward_not_executable",severity:"error",message:"GRPO/PPO compatibility requires an executable scalar reward.",path:"learningSignals.rewards"})}l(is,"validateCapabilities");var oe=e.string().trim().min(1).max(240),Br=e.string().trim().min(1),os=e.string().trim().min(8).max(256),cs=e.string().trim().regex(/^[A-Za-z_$][A-Za-z0-9_$]*$/),ds=e.record(e.string(),e.unknown()).default({});function xt(t){let a=t.trim().replaceAll("\\","/");return!a||a.startsWith("/")||a==="."||a===".."?!1:!a.split("/").some(r=>!r||r==="."||r==="..")}l(xt,"safeRelativeFilePath");var ms=Je.extend({sourceRefs:e.array(oe).max(100).default([])}),ls=e.enum(["draft","validating","needs_review","published"]),us=e.object({enabled:e.boolean(),candidateCount:e.number().int().min(2).max(4),minimumSamples:e.number().int().min(1).max(1e4).default(100),allowTies:e.boolean(),allowRejectAll:e.boolean(),rubric:e.string().trim().max(5e4),criteria:e.array(e.object({id:oe,label:e.string().trim().min(1).max(500),description:e.string().trim().max(1e4),weight:e.number().nonnegative().max(1e3)})).max(100)}),ps=e.object({mode:e.enum(["text","structured_json","artifacts"]),jsonSchema:e.record(e.string(),e.unknown()).nullable(),requiredOutputSource:e.literal("task.requiredOutputs").optional(),responsePath:e.string().trim().min(1).max(1e3).refine(xt,"Response paths must name a safe relative output path.").optional(),renderer:e.object({module:e.string().trim().min(1).max(1e3).refine(xt,"Renderer modules must use a safe relative path."),exportName:cs,configRef:e.string().trim().min(1).max(1e3).refine(xt,"Renderer configuration must use a safe relative path.").nullable().default(null)}).nullable()}).superRefine((t,a)=>{t.responsePath!==void 0&&(t.mode!=="artifacts"||t.requiredOutputSource!=="task.requiredOutputs")&&a.addIssue({code:"custom",path:["responsePath"],message:"An artifact response path requires artifacts mode and task.requiredOutputs."}),t.requiredOutputSource!==void 0&&t.mode!=="artifacts"&&a.addIssue({code:"custom",path:["requiredOutputSource"],message:"Required output sources belong to artifacts mode."}),t.mode==="structured_json"&&!t.jsonSchema&&a.addIssue({code:"custom",message:"Structured JSON output requires a JSON Schema.",path:["jsonSchema"]}),t.mode==="text"&&t.renderer&&a.addIssue({code:"custom",message:"Text output cannot configure an artifact renderer.",path:["renderer"]})}),lo=e.object({schemaVersion:e.literal("openpond.tasksetDraft.v1"),id:oe,revision:e.number().int().positive(),profileId:oe,modelScope:e.object({modelId:oe,expectedModelRevision:e.number().int().positive(),source:sr.optional()}).strict().nullable().default(null),name:e.string().trim().max(500),objective:e.string().trim().max(2e4),purpose:qe.default("general"),benchmark:Ve.nullable().default(null),preferenceComparison:Ge.nullable().default(null),status:ls,sourceRefs:e.array(Le).max(1e5).default([]),datasetArtifact:Se.nullable().optional(),policy:Ne,environment:Ke,output:ps.default({mode:"text",jsonSchema:null,renderer:null}),capabilities:Ue,metrics:_e,review:us,tasks:e.array(ms).max(1e6).default([]),graders:e.array(Ye).max(1e3).default([]),graderFixtures:e.array(ne).max(1e5).default([]),learningSignals:We,publishedTasksetRef:e.object({id:oe,revision:e.number().int().positive(),contentHash:os}).nullable(),createdAt:Br,updatedAt:Br,metadata:ds}).superRefine((t,a)=>{t.purpose==="benchmark"&&!t.benchmark&&a.addIssue({code:"custom",message:"Benchmark drafts require an immutable benchmark binding.",path:["benchmark"]}),t.purpose!=="benchmark"&&t.benchmark&&a.addIssue({code:"custom",message:"Only benchmark drafts may carry a benchmark binding.",path:["benchmark"]}),t.datasetArtifact&&t.tasks.length>0&&a.addIssue({code:"custom",message:"Artifact-backed drafts may not duplicate canonical rows inline.",path:["tasks"]}),t.status==="published"&&!t.publishedTasksetRef&&a.addIssue({code:"custom",message:"Published drafts require an immutable Taskset reference.",path:["publishedTasksetRef"]})});export{it as a,ot as b,ct as c,_s as d,Ts as e,Yr as f,Es as g,ee as h,lt as i,ta as j,yn as k,ra as l,dt as m,rr as n,ar as o,Xr as p,mt as q,Bs as r,sr as s,nr as t,Qr as u,ir as v,Fs as w,qs as x,aa as y,ur as z,$e as A,De as B,j as C,ut as D,ea as E,Le as F,Je as G,_a as H,Ye as I,ne as J,Er as K,$a as L,_i as M,Da as N,Ar as O,Ti as P,Ei as Q,Oa as R,zi as S,Bi as T,Fi as U,qi as V,Ma as W,Or as X,to as Y,ro as Z,lo as _};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
+
import{a as D}from"./chunk-IOSBGCRT.js";import{c as I}from"./chunk-3M53YXEI.js";import{a as p,b as s,c as P,d as f,e as $,f as _,h as E,i as G,j as V,k as M,l as v,m as N,n as O,o as J,p as U,q as F,r as q}from"./chunk-V3T2OJBZ.js";import{b as x,h as B}from"./chunk-UNE52L3Y.js";import{m as Q}from"./chunk-5HPZGLOL.js";import{l as b}from"./chunk-XHU4BZQY.js";import{v as z}from"./chunk-ZY32SZ2P.js";import{n as m}from"./chunk-RCT3O3HQ.js";import{A as t}from"./chunk-X2J2P5ZT.js";import{a as d}from"./chunk-FTQLQJQV.js";var L=t.object({state:t.enum(["incomplete","ambiguous","awaiting_owner_review"]),issues:t.array(t.enum(["missing_attempt","missing_observation","completion_not_observed","conflicting_observations","reference_mismatch","lineage_mismatch","mixed_scope","conflicting_event"])).max(8),groups:t.array(t.object({key:P,application:t.string().min(1).max(200),applicationVersion:t.string().min(1).max(200),tool:t.object({name:t.string().min(1).max(200),version:t.string().max(200).nullable(),server:t.string().max(200).nullable()}).strict(),environmentFingerprints:t.array(P).max(p.eventsPerEpisode),attempts:t.array(f).max(p.eventsPerEpisode)}).strict()).max(p.eventsPerEpisode)}).strict();function X(c){let n=t.array(E).max(p.eventsPerEpisode).parse(c),i=new Set,e=new Set,o=new Map,a=n[0];for(let r of n){a&&(r.installationId!==a.installationId||r.episodeId!==a.episodeId)&&e.add("mixed_scope"),r.parentSessionId===r.sessionId&&e.add("lineage_mismatch");let l=o.get(r.eventId);l&&l.contentHash!==r.contentHash?e.add("conflicting_event"):o.set(r.eventId,r)}let g=[...o.values()].filter(r=>r.eventKind==="attempt"),u=new Map,y=new Map;g.length||i.add("missing_attempt");for(let r of o.values()){if(r.eventKind!=="observation")continue;let l=o.get(r.payload.attempt.id);l?l.eventKind!=="attempt"||l.contentHash!==r.payload.attempt.contentHash||l.payload.actionHash!==r.payload.actionHash?e.add("reference_mismatch"):(l.sessionId!==r.sessionId||l.callId!==r.callId||l.parentSessionId&&r.parentSessionId&&l.parentSessionId!==r.parentSessionId||l.turnId&&r.turnId&&l.turnId!==r.turnId)&&e.add("lineage_mismatch"):i.add("missing_attempt");let h=u.get(r.payload.attempt.id)??[];h.push(r),u.set(r.payload.attempt.id,h)}let j=new Map;for(let r of g){let l=JSON.stringify([r.sessionId,r.callId]),h=y.get(l);h&&h!==r.contentHash&&e.add("lineage_mismatch"),y.set(l,r.contentHash);let S=u.get(r.eventId)??[];if(!S.length)i.add("missing_observation");else{let k=S.filter(A=>A.payload.outcome!=="incomplete");k.length||i.add("completion_not_observed"),new Set(k.map(A=>m(A.payload))).size>1&&e.add("conflicting_observations")}let{environment:T,tool:w}=r.payload,K=m([T.application,T.version,w.name,w.version,w.server]),C=j.get(K)??{application:T.application,applicationVersion:T.version,tool:w,fingerprints:new Set,attempts:[]};C.fingerprints.add(T.fingerprint),C.attempts.push({id:r.eventId,contentHash:r.contentHash}),j.set(K,C)}return L.parse({state:e.size?"ambiguous":i.size?"incomplete":"awaiting_owner_review",issues:[...new Set([...e,...i])].sort(),groups:[...j].sort(([r],[l])=>r.localeCompare(l)).map(([r,l])=>({key:r,application:l.application,applicationVersion:l.applicationVersion,tool:l.tool,environmentFingerprints:[...l.fingerprints].sort(),attempts:l.attempts.sort((h,S)=>h.id.localeCompare(S.id))}))})}d(X,"assembleToolLearningEpisode");var W=t.object({installation:v,apiKey:x}).strict(),Y=t.object({items:t.array(v).max(30),nextCursor:s.nullable()}).strict(),Z=t.object({installationId:s,scope:$,items:t.array(t.object({episodeId:s,eventCount:t.number().int().positive(),lastReceivedAt:t.iso.datetime()}).strict()).max(30),nextCursor:s.nullable(),learningEnrollment:t.literal(!1)}).strict(),ee=t.object({installationId:s,episodeId:s,scope:$,events:t.array(E).max(p.eventsPerEpisode),state:L.shape.state,assembly:L,verificationAuthority:t.literal("not_granted"),learningEnrollment:t.literal(!1)}).strict(),te=t.object({operationId:s,expectedRevision:t.number().int().positive()}).strict(),ne=t.object({installationId:s,operationId:s,purgedEvents:t.number().int().nonnegative(),learningEnrollment:t.literal(!1)}).strict();var oe=_(t.object({registration:M,credential:t.object({apiKey:x,expiresAt:t.iso.datetime()}).strict()}).strict(),p.eventBytes),re=_(t.object({operationId:s,expectedRevision:t.number().int().positive(),episodeId:s,failure:f,recovery:f,taskDefinition:b,familyKey:s,split:t.literal("train"),proposedTarget:F,saveToPrivateDataset:t.literal(!0),targetApproval:t.literal("pending_owner_review")}).strict(),p.eventBytes),se=_(t.object({installationId:s,projectId:s,operationId:s,source:b,evidence:b,originHash:t.string().regex(/^[a-f0-9]{64}$/),requestHash:t.string().regex(/^[a-f0-9]{64}$/),projectedAt:t.iso.datetime(),targetApproval:t.literal("pending_owner_review"),learningEnrollment:t.literal(!1)}).strict(),p.eventBytes),ie=_(t.object({operationId:s,expectedRevision:t.number().int().nonnegative(),state:t.enum(["enabled","disabled"]),modelId:s,qualification:t.discriminatedUnion("kind",[t.object({kind:t.literal("integration"),evaluationRunId:s}).strict(),t.object({kind:t.literal("learned"),evaluationRunId:s,baselineRunId:s,trainingRunId:s}).strict()]),capabilities:t.array(O.omit({qualification:!0})).min(1).max(16),limits:t.object({maxOutputTokens:t.number().int().min(128).max(2048),maximumCallUsd:t.number().positive().max(1),maximumDayUsd:t.number().positive().max(10),maximumSessionCalls:t.number().int().min(1).max(20),maximumDayCalls:t.number().int().min(1).max(200)}).strict()}).strict(),p.eventBytes),le=_(t.object({installationId:s,scope:t.object({teamId:s,projectId:s}).strict(),revision:t.number().int().positive(),operationId:s,requestHash:t.string().regex(/^[a-f0-9]{64}$/),configuration:ie,modelRelease:f,policySystemPrompt:t.string().min(1).max(16384),capabilities:t.array(O).max(16),updatedAt:t.iso.datetime()}).strict(),p.eventBytes);function Ce(c,n){let i=B({sourceId:c.installationId,name:"Tool learning installation",expiresAt:n});return oe.parse({registration:c,credential:{apiKey:i.apiKey,expiresAt:n}})}d(Ce,"prepareToolLearningRegistration");var H=class extends Error{constructor(i,e){super(`Tool learning request failed (${i}): ${e}`);this.status=i;this.code=e;this.name="OpenPondToolLearningError"}status;code;static{d(this,"OpenPondToolLearningError")}},R=class{static{d(this,"OpenPondToolLearningClient")}#o;#e;constructor(n){this.#e={...n};let i=new URL(n.baseUrl);if(!["https:","http:"].includes(i.protocol)||i.username||i.password||i.search||i.hash||!n.apiKey.trim()||!n.teamId.trim()||!n.projectId.trim())throw new Error("tool_learning_client_scope_required");this.#o=i.toString().replace(/\/+$/,"")}async register(n,i){let e=oe.parse(n);if(e.registration.projectId!==this.#e.projectId)throw new Error("tool_learning_project_mismatch");let o=W.parse(await this.#t("installations","POST",e,i));if(this.#n(o.installation,e.registration.installationId),o.apiKey!==e.credential.apiKey)throw new Error("tool_learning_credential_mismatch");let a=o.installation;if(a.client!==e.registration.client||a.clientVersion!==e.registration.clientVersion||a.machineSourceId!==e.registration.machineSourceId||m(a.adapterRelease)!==m(e.registration.adapterRelease)||m(a.collectionPolicy)!==m(e.registration.collectionPolicy)||a.collectionPolicyHash!==m(e.registration.collectionPolicy)||a.credential?.expiresAt!==e.credential.expiresAt)throw new Error("tool_learning_registration_receipt_mismatch");return o}async installation(n,i){let e=v.parse(await this.#t(`installations/${encodeURIComponent(n)}`,"GET",void 0,i));return this.#n(e,n),e}async installations(n,i){let e=Y.parse(await this.#t(`installations?projectId=${encodeURIComponent(this.#e.projectId)}${n?`&after=${encodeURIComponent(n)}`:""}`,"GET",void 0,i));for(let o of e.items)this.#n(o,o.id);if(e.nextCursor!==null&&e.nextCursor!==e.items.at(-1)?.id)throw new Error("tool_learning_installation_cursor_mismatch");return e}async episodes(n,i,e){let o=Z.parse(await this.#t(`installations/${encodeURIComponent(n)}/episodes${i?`?after=${encodeURIComponent(i)}`:""}`,"GET",void 0,e));if(o.installationId!==n||o.scope.teamId!==this.#e.teamId||o.scope.projectId!==this.#e.projectId||o.nextCursor!==null&&o.nextCursor!==o.items.at(-1)?.episodeId)throw new Error("tool_learning_episode_page_mismatch");return o}async episode(n,i,e){let o=ee.parse(await this.#t(`installations/${encodeURIComponent(n)}/episodes/${encodeURIComponent(i)}`,"GET",void 0,e));if(o.installationId!==n||o.episodeId!==i||o.scope.teamId!==this.#e.teamId||o.scope.projectId!==this.#e.projectId||o.events.some(a=>a.installationId!==n||a.episodeId!==i))throw new Error("tool_learning_episode_scope_mismatch");if(o.state!==o.assembly.state||m(X(o.events))!==m(o.assembly))throw new Error("tool_learning_episode_assembly_mismatch");return o}async purge(n,i,e){let o=te.parse(i),a=ne.parse(await this.#t(`installations/${encodeURIComponent(n)}/purge`,"POST",o,e));if(a.installationId!==n||a.operationId!==o.operationId)throw new Error("tool_learning_purge_scope_mismatch");return a}async project(n,i,e){let o=re.parse(i),a=se.parse(await this.#t(`installations/${encodeURIComponent(n)}/project`,"POST",o,e));if(a.installationId!==n||a.projectId!==this.#e.projectId||a.operationId!==o.operationId||a.requestHash!==m(o))throw new Error("tool_learning_projection_scope_mismatch");return a}async setState(n,i,e){let o=N.parse(i),a=v.parse(await this.#t(`installations/${encodeURIComponent(n)}`,"PATCH",o,e));if(this.#n(a,n),a.state!==o.state)throw new Error("tool_learning_state_mismatch");return a}async append(n,i){let e=G.parse(n),o=V.parse(await this.#t("episodes","POST",e,i));if(o.operationId!==e.operationId||o.installationId!==e.installationId||o.teamId!==this.#e.teamId||o.projectId!==this.#e.projectId||o.requestHash!==m(e)||o.events.length!==e.events.length||new Set(o.events.map(a=>a.eventId)).size!==o.events.length)throw new Error("tool_learning_append_receipt_mismatch");for(let a of o.events){let g=e.events.find(u=>u.eventId===a.eventId);if(!g||g.contentHash!==a.contentHash)throw new Error("tool_learning_append_event_mismatch")}return o}async routing(n,i){return this.#i(n,await this.#t(`installations/${encodeURIComponent(n)}/routing`,"GET",void 0,i))}async configureRouting(n,i,e){let o=ie.parse(i),a=this.#i(n,await this.#t(`installations/${encodeURIComponent(n)}/routing`,"POST",o,e));if(a.operationId!==o.operationId||a.requestHash!==m(o)||m(a.configuration)!==m(o))throw new Error("tool_learning_routing_receipt_mismatch");return a}#i(n,i){let e=le.parse(i);if(e.installationId!==n||e.scope.teamId!==this.#e.teamId||e.scope.projectId!==this.#e.projectId)throw new Error("tool_learning_routing_scope_mismatch");return e}async manifest(n,i){let e=J.parse(await this.#t(`installations/${encodeURIComponent(n)}/manifest`,"GET",void 0,i));if(e.installationId!==n||e.scope.teamId!==this.#e.teamId||e.scope.projectId!==this.#e.projectId)throw new Error("tool_learning_manifest_scope_mismatch");if(Date.parse(e.expiresAt)<=Date.now()||Date.parse(e.issuedAt)>Date.now()+3e4)throw new Error("tool_learning_manifest_expired");return e}async consult(n,i){let e=U.parse(n);if(e.scope.teamId!==this.#e.teamId||e.scope.projectId!==this.#e.projectId)throw new Error("tool_learning_consultation_scope_mismatch");return q(e,await this.#t("consultations","POST",e,i))}async consultation(n,i){let e=U.parse(n);if(e.scope.teamId!==this.#e.teamId||e.scope.projectId!==this.#e.projectId)throw new Error("tool_learning_consultation_scope_mismatch");return q(e,await this.#t(`installations/${encodeURIComponent(e.installationId)}/consultations/${encodeURIComponent(e.operationId)}`,"GET",void 0,i))}#n(n,i){if(n.id!==i||n.scope.teamId!==this.#e.teamId||n.scope.projectId!==this.#e.projectId)throw new Error("tool_learning_installation_scope_mismatch")}async#t(n,i,e,o){e!==void 0&&z(e,p.eventBytes*p.eventsPerAppend);let a=AbortSignal.timeout(3e4),g=await(this.#e.fetch??globalThis.fetch)(`${this.#o}/v1/tool-learning/${n}`,{method:i,redirect:"error",signal:o?AbortSignal.any([o,a]):a,headers:{Authorization:`Bearer ${this.#e.apiKey}`,"X-OpenPond-Team-Id":this.#e.teamId,Accept:"application/json",...e===void 0?{}:{"Content-Type":"application/json"}},...e===void 0?{}:{body:JSON.stringify(e)}}),u=await Q(g,p.eventBytes*p.eventsPerAppend,"Tool learning response");if(!g.ok){let y=t.object({code:t.string().regex(/^[a-z0-9_]+$/).max(200)}).passthrough().safeParse(u);throw new H(g.status,y.success?y.data.code:"tool_learning_request_failed")}return u}};async function qe(c,n){if(I(c,"teamId")&&I(c,"teamId")!==n.teamId)throw new Error("The selected workspace differs from this installation.");if(I(c,"projectId")&&I(c,"projectId")!==n.projectId)throw new Error("The selected Model Project differs from this installation.");let{context:i,baseUrl:e}=await D({...c,teamId:n.teamId,apiBaseUrl:n.apiOrigin,account:I(c,"account")||n.ownerAccount||""});return new R({baseUrl:e,apiKey:i.token,teamId:n.teamId,projectId:n.projectId})}d(qe,"toolLearningOwner");import{execFile as ce}from"node:child_process";import{promisify as pe}from"node:util";var ae={codex:"0.153.4",opencode:"1.14.48"};async function De(c){let{stdout:n}=await pe(ce)(c,["--version"],{timeout:1e4,maxBuffer:65536}),i=c==="codex"?n.trim().replace(/^codex-cli\s+/,""):n.trim();if(i!==ae[c])throw new Error(`This capture adapter supports ${c} ${ae[c]}. Qualify the installed hook protocol before connecting another version.`);return i}d(De,"externalCaptureVersion");export{ie as a,Ce as b,R as c,qe as d,De as e};
|