openpond 0.2.62 → 0.2.63
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/dist/app-server.d.ts +1053 -63
- package/dist/app-server.js +1 -1
- package/dist/chunks/{acp-DYRBDJRU.js → acp-H3MJCPHX.js} +1 -1
- package/dist/chunks/{acp-agent-UTLP7C3I.js → acp-agent-DWA7272M.js} +1 -1
- package/dist/chunks/actions-command-IIYOO4LL.js +2 -0
- package/dist/chunks/{app-layer-N2H3RBEN.js → app-layer-K7H2WJ56.js} +1 -1
- package/dist/chunks/app-server-connected-apps-RM5E2VWF.js +2 -0
- package/dist/chunks/app-server-evaluations-XGMGS67X.js +2 -0
- package/dist/chunks/app-server-harness-services-BHD6S5II.js +2 -0
- package/dist/chunks/app-server-runtime-LFIL6F7D.js +2 -0
- package/dist/chunks/apps-QKAHJGQ4.js +2 -0
- package/dist/chunks/chunk-25XXZS3E.js +2 -0
- package/dist/chunks/chunk-27JGS3KB.js +12 -0
- package/dist/chunks/{chunk-7JBB4PXS.js → chunk-2HAWOMZK.js} +1 -1
- package/dist/chunks/chunk-2LJCJOJ7.js +2 -0
- package/dist/chunks/{chunk-CN5OXQ7A.js → chunk-3YXYBYWK.js} +1 -1
- package/dist/chunks/{chunk-GEKORCMN.js → chunk-42V4NV2F.js} +1 -1
- package/dist/chunks/{chunk-VAJSRUAB.js → chunk-4FNCBA3Y.js} +1 -1
- package/dist/chunks/{chunk-F7D4BMTO.js → chunk-4L6DU6Z2.js} +1 -1
- package/dist/chunks/{chunk-SZKFNKWO.js → chunk-4SZ3HKHU.js} +1 -1
- package/dist/chunks/chunk-5EP2DZLJ.js +2 -0
- package/dist/chunks/chunk-5FU5RLML.js +2 -0
- package/dist/chunks/{chunk-6SH4B7DV.js → chunk-5MHYGMJG.js} +1 -1
- package/dist/chunks/{chunk-MEK7DLX3.js → chunk-6EBCS57F.js} +1 -1
- package/dist/chunks/chunk-6RS4NAOY.js +2 -0
- package/dist/chunks/{chunk-NVHZRKXB.js → chunk-7HRLWPPZ.js} +1 -1
- package/dist/chunks/chunk-7O6Z3VOZ.js +2 -0
- package/dist/chunks/{chunk-P74RR2GB.js → chunk-7WYL2IDD.js} +1 -1
- package/dist/chunks/chunk-7YLXGILH.js +2 -0
- package/dist/chunks/chunk-7ZLXFKRI.js +2 -0
- package/dist/chunks/{chunk-NWOK6NLE.js → chunk-AH26AQN7.js} +1 -1
- package/dist/chunks/chunk-AHOBCBVZ.js +2 -0
- package/dist/chunks/chunk-B5R53U74.js +2 -0
- package/dist/chunks/{chunk-NKZNPTLA.js → chunk-BPZOABMC.js} +1 -1
- package/dist/chunks/{chunk-2IIBCCOK.js → chunk-BSPFY3Y5.js} +1 -1
- package/dist/chunks/{chunk-5OSM75X5.js → chunk-BU27SLZP.js} +2 -2
- package/dist/chunks/chunk-C2AXMKK4.js +2 -0
- package/dist/chunks/{chunk-AMO5DVKM.js → chunk-C2LAEGOW.js} +2 -2
- package/dist/chunks/{chunk-GNCEZ3UP.js → chunk-CZ5R4JXZ.js} +1 -1
- package/dist/chunks/{chunk-JIFUGA3U.js → chunk-DABBHWSF.js} +1 -1
- package/dist/chunks/{chunk-VK4TPZTA.js → chunk-DLANLLKH.js} +1 -1
- package/dist/chunks/{chunk-WGLVSGFA.js → chunk-DQI5TE6A.js} +2 -2
- package/dist/chunks/chunk-DTTFUANI.js +12 -0
- package/dist/chunks/{chunk-4TM75R7V.js → chunk-DUL6DXOI.js} +1 -1
- package/dist/chunks/{chunk-TGEGXTPR.js → chunk-ELX7VRSU.js} +1 -1
- package/dist/chunks/chunk-ERL2M773.js +3 -0
- package/dist/chunks/{chunk-4PZWGNX4.js → chunk-ERT32RZA.js} +4 -4
- package/dist/chunks/{chunk-RTJCELRR.js → chunk-EZRUWIP6.js} +1 -1
- package/dist/chunks/{chunk-LJDBR3RN.js → chunk-F6UQ6PPK.js} +1 -1
- package/dist/chunks/chunk-F7QTIHXX.js +2 -0
- package/dist/chunks/chunk-FAKDGLZQ.js +8 -0
- package/dist/chunks/{chunk-FFWOTZQM.js → chunk-FVRII5XO.js} +1 -1
- package/dist/chunks/{chunk-C7M2WBWZ.js → chunk-FYYYECHE.js} +51 -49
- package/dist/chunks/chunk-G32BO6M5.js +4 -0
- package/dist/chunks/{chunk-NBE74GLF.js → chunk-G6OR5NB6.js} +1 -1
- package/dist/chunks/{chunk-GQGLPKU4.js → chunk-GGJUWIGR.js} +1 -1
- package/dist/chunks/{chunk-VSQXDS6H.js → chunk-GPL2Z65R.js} +1 -1
- package/dist/chunks/{chunk-INO67SEN.js → chunk-GS6ZUSIN.js} +2 -2
- package/dist/chunks/{chunk-47AXSBPV.js → chunk-GVARQXYI.js} +1 -1
- package/dist/chunks/chunk-GXCUH2VV.js +17 -0
- package/dist/chunks/{chunk-OCC43RSJ.js → chunk-GXZCMO6S.js} +1 -1
- package/dist/chunks/{chunk-CLFYRN46.js → chunk-H6C4MAUN.js} +1 -1
- package/dist/chunks/{chunk-HBLN4OLY.js → chunk-HUCBKXTU.js} +1 -1
- package/dist/chunks/{chunk-M5IX6VUA.js → chunk-IHB5GTOJ.js} +2 -2
- package/dist/chunks/{chunk-J3B2GM4A.js → chunk-IWWXIUAQ.js} +1 -1
- package/dist/chunks/chunk-J572ANHX.js +13 -0
- package/dist/chunks/{chunk-AKZPMKWP.js → chunk-J7ZTPXRQ.js} +1 -1
- package/dist/chunks/{chunk-CJUVHE4U.js → chunk-JORRZ4BB.js} +1 -1
- package/dist/chunks/chunk-JSQRLLN6.js +2 -0
- package/dist/chunks/chunk-KCOTDUGW.js +2 -0
- package/dist/chunks/{chunk-NK4JKB7C.js → chunk-KHTAAVC2.js} +1 -1
- package/dist/chunks/{chunk-LRRBYIGH.js → chunk-LK2K3SPM.js} +2 -2
- package/dist/chunks/{chunk-557XSPVS.js → chunk-LKKMLBOH.js} +1 -1
- package/dist/chunks/{chunk-U456UP3N.js → chunk-LSZJ5M3X.js} +1 -1
- package/dist/chunks/chunk-M3FLEZ4E.js +4 -0
- package/dist/chunks/{chunk-Y2KPHVZK.js → chunk-M3SCON53.js} +1 -1
- package/dist/chunks/{chunk-VPDG2V2R.js → chunk-MEGKXGW3.js} +1 -1
- package/dist/chunks/chunk-MPNJ2BB4.js +2 -0
- package/dist/chunks/{chunk-4RZBGKT7.js → chunk-N33D7KCW.js} +1 -1
- package/dist/chunks/chunk-N42HT64M.js +2 -0
- package/dist/chunks/{chunk-SD64CLJX.js → chunk-N4VHLJBZ.js} +1 -1
- package/dist/chunks/chunk-NEJLJ2XY.js +2 -0
- package/dist/chunks/chunk-NG2L6D7G.js +2 -0
- package/dist/chunks/{chunk-GV3LFSMI.js → chunk-NLYZ5K7U.js} +1 -1
- package/dist/chunks/{chunk-F4TJ7WQV.js → chunk-NT7N6KLE.js} +1 -1
- package/dist/chunks/{chunk-PAE3PQEC.js → chunk-NZTCH6K5.js} +1 -1
- package/dist/chunks/{chunk-BEI4YULC.js → chunk-OG33QAG6.js} +1 -1
- package/dist/chunks/chunk-OTUBJV6C.js +6 -0
- package/dist/chunks/{chunk-RH43WLBX.js → chunk-PBTXLQAU.js} +1 -1
- package/dist/chunks/{chunk-3R4MSE2S.js → chunk-QJ6KUVAR.js} +1 -1
- package/dist/chunks/{chunk-7JXZNCBC.js → chunk-QU4UE73E.js} +1 -1
- package/dist/chunks/{chunk-WQMXEZVE.js → chunk-R6VJDOQM.js} +3 -3
- package/dist/chunks/{chunk-FUSCTBJI.js → chunk-R6WMY6AH.js} +1 -1
- package/dist/chunks/{chunk-EIX2V2KU.js → chunk-RDSVU6F6.js} +1 -1
- package/dist/chunks/{chunk-R4PDSOB4.js → chunk-RFMME46Z.js} +1 -1
- package/dist/chunks/{chunk-GW5SE3FM.js → chunk-RZUCVF2Q.js} +1 -1
- package/dist/chunks/{chunk-UC3FXTDL.js → chunk-SFKZITAG.js} +5 -5
- package/dist/chunks/{chunk-5A6ER3M2.js → chunk-SHJY5RLU.js} +1 -1
- package/dist/chunks/chunk-SI5W5LBV.js +2 -0
- package/dist/chunks/chunk-SO42ZB5K.js +2 -0
- package/dist/chunks/{chunk-2UDAKLJ4.js → chunk-TCOTXCV6.js} +1 -1
- package/dist/chunks/{chunk-QCSLEMZF.js → chunk-U2K7QJCG.js} +1 -1
- package/dist/chunks/{chunk-ISIXFK6U.js → chunk-UH4JSSRL.js} +28 -28
- package/dist/chunks/{chunk-X4ZT22SG.js → chunk-UPWJSNL5.js} +1 -1
- package/dist/chunks/chunk-URNMC46H.js +157 -0
- package/dist/chunks/{chunk-NLQ2UPN2.js → chunk-V7KR74NO.js} +1 -1
- package/dist/chunks/{chunk-HXZXDDKW.js → chunk-VHXDWAEH.js} +1 -1
- package/dist/chunks/{chunk-NE4ESZPT.js → chunk-W2TICQ62.js} +1 -1
- package/dist/chunks/chunk-WP2L2NY2.js +2 -0
- package/dist/chunks/chunk-WSOUMXH3.js +24 -0
- package/dist/chunks/chunk-WWQNMC7C.js +6 -0
- package/dist/chunks/chunk-XMHIQ3SK.js +5 -0
- package/dist/chunks/{chunk-5MTN6KXV.js → chunk-XNOMIWEY.js} +1 -1
- package/dist/chunks/{chunk-ZXT7V64X.js → chunk-XOB6FKQV.js} +1 -1
- package/dist/chunks/chunk-Y766IN7Y.js +2 -0
- package/dist/chunks/chunk-YCZZ62C2.js +2 -0
- package/dist/chunks/chunk-YM4PSVFW.js +4 -0
- package/dist/chunks/chunk-YNQWJWIC.js +10 -0
- package/dist/chunks/{chunk-GSWBNJGZ.js → chunk-Z3BWCFLV.js} +1 -1
- package/dist/chunks/{chunk-GOIKLFXK.js → chunk-ZG6353RM.js} +1 -1
- package/dist/chunks/{chunk-T6C5BNXK.js → chunk-ZPTKR3GB.js} +1 -1
- package/dist/chunks/{chunk-MNXNZDDW.js → chunk-ZYVHOVKL.js} +1 -1
- package/dist/chunks/chunk-ZZHXQCNB.js +22 -0
- package/dist/chunks/cli-PSXMIJTF.js +2 -0
- package/dist/chunks/{configuration-command-BU2RPG33.js → configuration-command-XYKMXIWF.js} +1 -1
- package/dist/chunks/connected-app-executor-6G2LA3PQ.js +2 -0
- package/dist/chunks/connected-evidence-IRXYN6YD.js +2 -0
- package/dist/chunks/{connected-starting-assets-V5QXRK5Q.js → connected-starting-assets-JONPTII6.js} +1 -1
- package/dist/chunks/{continual-FLW6DAJK.js → continual-Z7MO2PF6.js} +1 -1
- package/dist/chunks/core-commands-WWN7X3XC.js +2 -0
- package/dist/chunks/dataset-preparation-authoring-F3OZIQSP.js +4 -0
- package/dist/chunks/datasets-2PC2HP7N.js +2 -0
- package/dist/chunks/desktop-test-VU6AFAMO.js +3 -0
- package/dist/chunks/dist-47AYOIH6.js +2 -0
- package/dist/chunks/{dist-DCSLPBO2.js → dist-MXBEBM4D.js} +1 -1
- package/dist/chunks/evaluation-coordination-UOWZHHC5.js +2 -0
- package/dist/chunks/experiment-improvements-EB2CV5RA.js +2 -0
- package/dist/chunks/experiments-SZQYR6MH.js +2 -0
- package/dist/chunks/experiments-signal-2KJCP25D.js +2 -0
- package/dist/chunks/{help-PXUUREHZ.js → help-7HXFWIKS.js} +1 -1
- package/dist/chunks/host-profile-evaluation-tools-Y2LQ4WQN.js +2 -0
- package/dist/chunks/host-profile-external-dataset-FRIGXOO7.js +2 -0
- package/dist/chunks/hosted-app-server-composition-PGKQNDW6.js +2 -0
- package/dist/chunks/hosted-experiment-improvement-UXC542SZ.js +3 -0
- package/dist/chunks/hosted-harness-runtime-6PEI7F2U.js +2 -0
- package/dist/chunks/hosted-profile-candidate-HM44BIUX.js +3 -0
- package/dist/chunks/hosted-profile-compiler-UAZ4PHYE.js +2 -0
- package/dist/chunks/hosted-profile-evaluation-control-EUL57FAB.js +2 -0
- package/dist/chunks/hosted-profile-evaluation-inspection-7USY75Z4.js +3 -0
- package/dist/chunks/hosted-profile-evaluation-preparation-2LSMZQNA.js +3 -0
- package/dist/chunks/{hosted-tasksets-X2YCFYEJ.js → hosted-tasksets-WGXGXJ7E.js} +1 -1
- package/dist/chunks/human-review-M26UKGJL.js +2 -0
- package/dist/chunks/{import-JWZSZCE4.js → import-6SI4BEKS.js} +2 -2
- package/dist/chunks/learning-HM3NWOV5.js +2 -0
- package/dist/chunks/local-harness-improvement-runtime-QGWFWNSR.js +2 -0
- package/dist/chunks/local-harness-taskset-review-KS4WPMN6.js +2 -0
- package/dist/chunks/model-projects-YUAMBQTO.js +2 -0
- package/dist/chunks/opchat-AG4CWVY4.js +3 -0
- package/dist/chunks/opchat-bounded-chat-IQMP5IIO.js +2 -0
- package/dist/chunks/organizations-KDKX77XZ.js +2 -0
- package/dist/chunks/{profile-ELE2D7HU.js → profile-O5HL5DTQ.js} +1 -1
- package/dist/chunks/project-action-payload-QA24HYGF.js +2 -0
- package/dist/chunks/project-agent-XBOOM5TS.js +2 -0
- package/dist/chunks/published-experiment-source-GZGN354O.js +2 -0
- package/dist/chunks/refiner-profile-service-BJMOYKTC.js +2 -0
- package/dist/chunks/{runtime-776NUSE7.js → runtime-XBA744HJ.js} +2 -2
- package/dist/chunks/sandbox-command-5ECGS7DG.js +2 -0
- package/dist/chunks/{sandbox-template-WP6YCGBK.js → sandbox-template-27U3FQN7.js} +1 -1
- package/dist/chunks/saved-work-KUNVTJ7O.js +2 -0
- package/dist/chunks/{send-turn-RPB65PME.js → send-turn-FIPWOXWV.js} +1 -1
- package/dist/chunks/src-BLWX6DRG.js +424 -0
- package/dist/chunks/{src-2R4CMCJ5.js → src-PU7QTFO5.js} +1 -1
- package/dist/chunks/standalone-experiment-turn-owner-XIE46VNH.js +2 -0
- package/dist/chunks/store-chat-resources-YOEJ2BI6.js +2 -0
- package/dist/chunks/{store-continual-support-reviews-R62D2HD6.js → store-continual-support-reviews-FOMYYS25.js} +1 -1
- package/dist/chunks/{store-conversation-serving-25O7BAR2.js → store-conversation-serving-K324SQTO.js} +1 -1
- package/dist/chunks/{store-create-improve-T5E2GUKK.js → store-create-improve-3LQMIYAP.js} +1 -1
- package/dist/chunks/{store-datasets-5Y4U5L3R.js → store-datasets-3KSX7RSO.js} +1 -1
- package/dist/chunks/store-evaluation-results-LHCCNNE6.js +7 -0
- package/dist/chunks/{store-harness-evaluation-review-settings-I2R3HPO3.js → store-harness-evaluation-review-settings-AAN7KKJ5.js} +1 -1
- package/dist/chunks/{store-harness-refinement-candidates-SUT45FQX.js → store-harness-refinement-candidates-3PHL3BUY.js} +1 -1
- package/dist/chunks/store-harness-workspaces-ZHNCNWVI.js +2 -0
- package/dist/chunks/store-human-review-QJY3ZPPF.js +7 -0
- package/dist/chunks/store-learned-preference-migration-validation-X32SRBOM.js +2 -0
- package/dist/chunks/{store-learning-MFS4DGQR.js → store-learning-DW3QLQXU.js} +1 -1
- package/dist/chunks/{store-learning-credentials-BECWEG2Y.js → store-learning-credentials-67QNTPA7.js} +1 -1
- package/dist/chunks/{store-local-experiments-LOH4F4TF.js → store-local-experiments-QTVHJAEP.js} +1 -1
- package/dist/chunks/store-model-batch-review-PBYQZJJJ.js +2 -0
- package/dist/chunks/store-model-configuration-3SU73CMS.js +3 -0
- package/dist/chunks/store-model-project-preparation-TFCG2F2F.js +2 -0
- package/dist/chunks/store-ponder-history-WDLMXBIJ.js +2 -0
- package/dist/chunks/store-ponder-hosted-DX6E2BVW.js +4 -0
- package/dist/chunks/{store-preference-comparison-RNIFLJRW.js → store-preference-comparison-DWV5XSMY.js} +1 -1
- package/dist/chunks/{store-schedules-DVQ2PP4F.js → store-schedules-2KUY4T6M.js} +1 -1
- package/dist/chunks/{store-sidebar-file-bookmarks-LXWFFYCZ.js → store-sidebar-file-bookmarks-A4XCS7RM.js} +1 -1
- package/dist/chunks/{store-sidebar-preferences-4HH7LX6N.js → store-sidebar-preferences-V2PKRXUZ.js} +1 -1
- package/dist/chunks/{store-subagents-JLW4GD4Q.js → store-subagents-UGVEFA6M.js} +1 -1
- package/dist/chunks/store-task-inbox-QABI4ZAH.js +33 -0
- package/dist/chunks/{store-task-inventory-NJXRXFLC.js → store-task-inventory-GEQIZELY.js} +1 -1
- package/dist/chunks/store-taskset-drafts-GXABQR5G.js +9 -0
- package/dist/chunks/{store-training-VRLU6NFX.js → store-training-CQV7PL3V.js} +1 -1
- package/dist/chunks/{store-training-jobs-3ZHG4LGI.js → store-training-jobs-XKN6K66J.js} +18 -10
- package/dist/chunks/{store-training-models-KWQD5PRP.js → store-training-models-Q7DTTR4S.js} +1 -1
- package/dist/chunks/{store-usage-ZRS3ILF2.js → store-usage-XGAX7NLB.js} +1 -1
- package/dist/chunks/{taskset-QDMCQQDJ.js → taskset-ARKJQKYQ.js} +1 -1
- package/dist/chunks/taskset-packages-X4K65DTW.js +2 -0
- package/dist/chunks/taskset-packages-XK7FSD45.js +2 -0
- package/dist/chunks/{teams-bot-GF272RGC.js → teams-bot-UTQAJA6H.js} +1 -1
- package/dist/chunks/training-3IWW4256.js +2 -0
- package/dist/chunks/{training-DF5UEPY3.js → training-RVIESURJ.js} +1 -1
- package/dist/chunks/training-error-2EWDOQ4G.js +2 -0
- package/dist/chunks/training-hosted-PFJHYTEU.js +2 -0
- package/dist/chunks/training-hosted-checkpoint-evaluation-JJPP7KFW.js +2 -0
- package/dist/chunks/training-hosted-feedback-5B2KJGOT.js +2 -0
- package/dist/chunks/training-hosted-learning-Y7NHRY4V.js +2 -0
- package/dist/chunks/training-hosted-report-UVGTPDOK.js +2 -0
- package/dist/chunks/training-hosted-serving-report-OX4A5OKB.js +2 -0
- package/dist/chunks/training-hosted-workers-LST4ZUXN.js +2 -0
- package/dist/chunks/training-model-start-ROLS3E4V.js +2 -0
- package/dist/chunks/{web-search-5RUXYIOF.js → web-search-7FBUBZ66.js} +1 -1
- package/dist/chunks/{workspaces-JRY2IE7H.js → workspaces-G3CMY7ZA.js} +1 -1
- package/dist/cli.js +1 -1
- package/dist/index.js +1 -1
- package/dist/sandbox/url.d.ts +3 -1
- package/dist/skills/LICENSE +21 -0
- package/dist/skills/manifest.json +168 -0
- package/dist/skills/openpond-agent-authoring/SKILL.md +9 -3
- package/dist/skills/openpond-agent-authoring/references/profile-layout.md +1 -1
- package/dist/skills/openpond-agent-authoring/references/validation-and-repair.md +2 -2
- package/dist/skills/openpond-cli/SKILL.md +11 -7
- package/dist/skills/openpond-cli/references/experiments-and-training.md +1 -1
- package/dist/skills/openpond-refiner-authoring/SKILL.md +4 -0
- package/dist/skills/openpond-skill-authoring/SKILL.md +5 -1
- package/dist/web/assets/App-DY2R8Z6r.js +53 -0
- package/dist/web/assets/{AppDialog-BurL61qE.js → AppDialog-8Y0FYalT.js} +1 -1
- package/dist/web/assets/AppTerminalPanel-YcnBD5DF.js +2 -0
- package/dist/web/assets/{AppToastContext-DZLErwj0.js → AppToastContext-BiQbbVxq.js} +1 -1
- package/dist/web/assets/AppsView-Dtte4h6e.js +1 -0
- package/dist/web/assets/{AttachmentTypeIcon-CpMSfHCK.js → AttachmentTypeIcon-DgADV7dn.js} +1 -1
- package/dist/web/assets/BrowserSidebar-BUqDvEv9.js +1 -0
- package/dist/web/assets/{CartesianChart-CEbM980A.js → CartesianChart-J4ChOjvG.js} +1 -1
- package/dist/web/assets/ChatTimelineEntry-DC93wlDa.js +8 -0
- package/dist/web/assets/ChatTimelineEntry-DztFb85D.css +1 -0
- package/dist/web/assets/{CollaborationTabs-DrKJmJZK.js → CollaborationTabs-CFCpk2Ck.js} +1 -1
- package/dist/web/assets/CommandMenu-EPPjB14H.js +1 -0
- package/dist/web/assets/{CommunityView-BzpIq1lD.js → CommunityView-Okydjpqm.js} +1 -1
- package/dist/web/assets/ComposerAttachments-RXCiE88M.js +2 -0
- package/dist/web/assets/{ComposerCreateImproveStrip-ChplO9YP.js → ComposerCreateImproveStrip-CSngc8-V.js} +1 -1
- package/dist/web/assets/{ConversationImportsSettings-DRHgc7j_.js → ConversationImportsSettings-DS73kyfj.js} +1 -1
- package/dist/web/assets/FilePagePreview-Qc4B0vue.js +2 -0
- package/dist/web/assets/{GetStartedView-CaBk_mX6.js → GetStartedView-DGFPQ1We.js} +1 -1
- package/dist/web/assets/{GettingStartedDialog-JtFLyU3F.js → GettingStartedDialog-DFBYQdHz.js} +1 -1
- package/dist/web/assets/{HostedModelLearningReview-hhcjDifK.js → HostedModelLearningReview-BDu3FlcU.js} +1 -1
- package/dist/web/assets/{HostedModelLearningSettings-CY8198Y1.js → HostedModelLearningSettings-CHaTHwC8.js} +1 -1
- package/dist/web/assets/HtmlVisual-C7GlEVfH.css +1 -0
- package/dist/web/assets/HtmlVisual-D9Mh7xds.js +81 -0
- package/dist/web/assets/LabModelVersionDetailPage-DgY7lAu5.js +1 -0
- package/dist/web/assets/{LabSkillSidebar-HibUEEko.js → LabSkillSidebar-BwtlThO7.js} +1 -1
- package/dist/web/assets/LabsRoute-BV7ZJGEw.js +101 -0
- package/dist/web/assets/MainChatThread-pzHKd_YN.js +2 -0
- package/dist/web/assets/MainPane-6OlLiKKb.js +10 -0
- package/dist/web/assets/MainPane-Dje-hfUM.css +1 -0
- package/dist/web/assets/NativeSetupTerminal-CPDChcMi.js +2 -0
- package/dist/web/assets/NativeSkillSidebar-BEJvt5_H.js +1 -0
- package/dist/web/assets/{NewProjectDialog-t9Imnb__.js → NewProjectDialog-CjrjgkTN.js} +1 -1
- package/dist/web/assets/{OutputsPage-CeGq_F1S.js → OutputsPage-jzx93QQ3.js} +1 -1
- package/dist/web/assets/{PageChrome-VHME5V8j.js → PageChrome-C1M13qG2.js} +1 -1
- package/dist/web/assets/{ProjectsPage-2TMZoEPB.js → ProjectsPage-DZrjlMp2.js} +1 -1
- package/dist/web/assets/RightChatPanelStack-BsxJg9sy.js +1 -0
- package/dist/web/assets/RightSidebarHomePanel-CCVQ9LMB.js +1 -0
- package/dist/web/assets/ScheduledWorkPage-Cw1ja2GF.js +1 -0
- package/dist/web/assets/{SettingsView-Y8f98GSE.css → SettingsView-Cc0376pY.css} +1 -1
- package/dist/web/assets/SettingsView-CckoIki3.js +5 -0
- package/dist/web/assets/TasksetDraftEditorPrimitives-ByC8bDjp.js +1 -0
- package/dist/web/assets/TeamChatView-OprnSKLF.js +1 -0
- package/dist/web/assets/{TerminalOverlay-DlhRpi-X.js → TerminalOverlay-d7A2F9Lx.js} +2 -2
- package/dist/web/assets/TrainingCreationPanel-Cyn6R6I6.js +1 -0
- package/dist/web/assets/{TrainingDraftPanel-BhhZPPuY.js → TrainingDraftPanel-Mpb5e7t5.js} +1 -1
- package/dist/web/assets/TrainingRunLineage-PXzWR65d.css +1 -0
- package/dist/web/assets/TrainingRunLineage-VcKz7dIR.js +1 -0
- package/dist/web/assets/{UsageSettingsSection-DTZslBeW.js → UsageSettingsSection-FhYymrfc.js} +2 -2
- package/dist/web/assets/WorkSidebarPanel-u87uptH0.js +1 -0
- package/dist/web/assets/WorkspaceDiffPanel-B5rlW7bA.js +11 -0
- package/dist/web/assets/WorkspaceEnvironmentMenu-C8y3537a.js +35 -0
- package/dist/web/assets/{WorkspaceFileLocation-ChEeZffU.js → WorkspaceFileLocation-LrEWj4UK.js} +1 -1
- package/dist/web/assets/{WorkspaceGitDialogs-D_RUXhTi.js → WorkspaceGitDialogs-NRIMXnkS.js} +1 -1
- package/dist/web/assets/{WorkspaceMonacoEditor-BJxaiDrj.js → WorkspaceMonacoEditor-CvDGjKAL.js} +3 -3
- package/dist/web/assets/WorkspacePdfPreview-BZ0BbnHv.js +2 -0
- package/dist/web/assets/{WorkspacePresentationPreview-A28Poeca.js → WorkspacePresentationPreview-DJrjrvT0.js} +1 -1
- package/dist/web/assets/app-models-CUA9XB9U.js +1 -0
- package/dist/web/assets/bot-6OhUEmkE.js +1 -0
- package/dist/web/assets/browser-sidebar-links-ZyYiYBBd.js +1 -0
- package/dist/web/assets/chat-resources-CI8KFVO5.js +1 -0
- package/dist/web/assets/{chevron-down-dYn0pd4Q.js → chevron-down-jmVA1BIf.js} +1 -1
- package/dist/web/assets/chevron-right-BYmDQ7ti.js +1 -0
- package/dist/web/assets/chevron-up-CstyLXH3.js +1 -0
- package/dist/web/assets/{chunk-ZFYI4P6C-BmsNtSkR.js → chunk-ONGOAEY6-C__DQmRT.js} +5 -5
- package/dist/web/assets/{chunk-BYNVSWIQ-DWh9SmdB.js → chunk-SQBYHWZU-DumrB9SB.js} +1 -1
- package/dist/web/assets/{client-choice-storage-DTTLbrYt.js → client-choice-storage-BdQ_YDuk.js} +1 -1
- package/dist/web/assets/{cloud-upload-CRMPCFnq.js → cloud-upload-Ck1ufAr8.js} +1 -1
- package/dist/web/assets/contracts-BLiqJxBv.js +1 -0
- package/dist/web/assets/{copy-DR4ielPn.js → copy-CPkbMfXt.js} +1 -1
- package/dist/web/assets/{createLucideIcon-DmttVQ_a.js → createLucideIcon-CXQny8HU.js} +1 -1
- package/dist/web/assets/{cssMode-d-2GuNvW.js → cssMode-CYxYl_om.js} +1 -1
- package/dist/web/assets/{external-link-B4rPiZEp.js → external-link-CDKOLG_v.js} +1 -1
- package/dist/web/assets/{folder-open-BrIUcUk_.js → folder-open-CEtOb_lK.js} +1 -1
- package/dist/web/assets/{folder-plus-DwImGEt-.js → folder-plus-CVMYZs3e.js} +1 -1
- package/dist/web/assets/{git-commit-horizontal-Ds1mkrlW.js → git-commit-horizontal-DDyhPjxS.js} +1 -1
- package/dist/web/assets/{htmlMode-s15GR0Fn.js → htmlMode-DoY4V_j0.js} +1 -1
- package/dist/web/assets/icons-D7jkCa2d.js +1 -0
- package/dist/web/assets/{image-CY-sHbfQ.js → image-B-PjDSwU.js} +1 -1
- package/dist/web/assets/{index-DYrLeSyY.js → index-D9WbJMSq.js} +2 -2
- package/dist/web/assets/index-g7UqJhnX.css +1 -0
- package/dist/web/assets/{info-aSvM8YlJ.js → info-CCnw-K3b.js} +1 -1
- package/dist/web/assets/intake-contracts-BW0Y0C2R.js +1 -0
- package/dist/web/assets/{jsonMode-vos9H2hz.js → jsonMode-CeOpZdPj.js} +1 -1
- package/dist/web/assets/loader-circle-CPaJeTDy.js +1 -0
- package/dist/web/assets/{lspLanguageFeatures-pQmEaoMt.js → lspLanguageFeatures-DAbgLCqZ.js} +1 -1
- package/dist/web/assets/{maximize-2-DgF6ZVOM.js → maximize-2-BZX38cpr.js} +1 -1
- package/dist/web/assets/message-square-CvgSecgD.js +1 -0
- package/dist/web/assets/{monaco.contribution-BPwsKvRB.js → monaco.contribution-CF2JDhi4.js} +2 -2
- package/dist/web/assets/{monaco.contribution-CJlccVX3.js → monaco.contribution-cbDqt48m.js} +2 -2
- package/dist/web/assets/{monaco.contribution-BbMpa0_-.js → monaco.contribution-m2ze2EsL.js} +2 -2
- package/dist/web/assets/{monaco.contribution-pWurLXbm.js → monaco.contribution-yeyow_-Q.js} +2 -2
- package/dist/web/assets/{monitor-DlEV241C.js → monitor-By0s4hxb.js} +1 -1
- package/dist/web/assets/{paperclip-fnRZSIRc.js → paperclip-BJ2QgJLa.js} +1 -1
- package/dist/web/assets/{pdf-CT3zVKCE.js → pdf-C4x-1jjP.js} +1 -1
- package/dist/web/assets/pdf.worker.min-BrEVksTu.js +1 -0
- package/dist/web/assets/play-D_SuGDBM.js +1 -0
- package/dist/web/assets/plus-yw95Iaj8.js +1 -0
- package/dist/web/assets/{presentation-Bb8ecExR.js → presentation-I86G1Gd9.js} +1 -1
- package/dist/web/assets/{python-DXA1xp0A.js → python-CqFTPj8r.js} +1 -1
- package/dist/web/assets/{refresh-cw-B53QjxMO.js → refresh-cw-Dga35Eay.js} +1 -1
- package/dist/web/assets/requests-BCbaFiqV.js +1 -0
- package/dist/web/assets/{reward-checks-5AOStF27.js → reward-checks-Bcq9ETCA.js} +1 -1
- package/dist/web/assets/{save-V1Q4Fcqa.js → save-BLKjYtzR.js} +1 -1
- package/dist/web/assets/settings-D7C-Auyi.js +21 -0
- package/dist/web/assets/{settings-lists-CtH1A57b.js → settings-lists-DMKA1lCN.js} +5 -5
- package/dist/web/assets/square-BY5lG2Ol.js +1 -0
- package/dist/web/assets/{square-terminal-Dmgkm5zY.js → square-terminal-B-n7vUex.js} +1 -1
- package/dist/web/assets/submit-issue-command-B7Hrt2tU.js +3 -0
- package/dist/web/assets/{toggleHighContrast-B-BD2K2Q.js → toggleHighContrast-BhmBE5XE.js} +1 -1
- package/dist/web/assets/training-QrdkRQZQ.js +2 -0
- package/dist/web/assets/{training-model-data-14942K_Z.js → training-model-data-DB-jg6L_.js} +12 -12
- package/dist/web/assets/{tsMode-DdgIcxK3.js → tsMode-BSWEII2p.js} +1 -1
- package/dist/web/assets/{upload-82Y6RjLi.js → upload-C4MPhQn8.js} +1 -1
- package/dist/web/assets/{useAccountSettings-BgHXNpq_.js → useAccountSettings-9oqWdRLs.js} +1 -1
- package/dist/web/assets/useAgentInventory-isO79ui9.js +1 -0
- package/dist/web/assets/{useLocalAgentSchedules-CsKv22Hs.js → useLocalAgentSchedules-CZX6PxoK.js} +1 -1
- package/dist/web/assets/{useQuery-CPC2wsWm.js → useQuery-BD0Uexmh.js} +1 -1
- package/dist/web/assets/{wifi-off-DXOoDN9l.js → wifi-off-Cloe0WuQ.js} +1 -1
- package/dist/web/assets/{workers-Clf4hKt5.js → workers-BXagz5eg.js} +1 -1
- package/dist/web/assets/x-Dqpel42h.js +1 -0
- package/dist/web/assets/{yaml-I1tf8Uxx.js → yaml-sBdvVbCc.js} +1 -1
- package/dist/web/index.html +2 -2
- package/docs/command-reference.md +22 -4
- package/package.json +5 -2
- package/dist/chunks/actions-command-6LF4Z4WK.js +0 -2
- package/dist/chunks/app-server-connected-apps-3T546FE7.js +0 -2
- package/dist/chunks/app-server-evaluations-TXD747QA.js +0 -2
- package/dist/chunks/app-server-harness-services-BBCDV5P3.js +0 -2
- package/dist/chunks/app-server-runtime-VEJPDAFP.js +0 -2
- package/dist/chunks/apps-CTT2XYRR.js +0 -2
- package/dist/chunks/chunk-4M3YW3EQ.js +0 -13
- package/dist/chunks/chunk-4U2FNXQW.js +0 -2
- package/dist/chunks/chunk-547AUVKN.js +0 -2
- package/dist/chunks/chunk-557YG77L.js +0 -2
- package/dist/chunks/chunk-7KTARW23.js +0 -2
- package/dist/chunks/chunk-B42QQUZY.js +0 -2
- package/dist/chunks/chunk-EWOTDVDJ.js +0 -4
- package/dist/chunks/chunk-GAQLXFOT.js +0 -2
- package/dist/chunks/chunk-GLDYJM7O.js +0 -1
- package/dist/chunks/chunk-HKV7RX5E.js +0 -2
- package/dist/chunks/chunk-IWK3RTLR.js +0 -2
- package/dist/chunks/chunk-JX6OX6XE.js +0 -12
- package/dist/chunks/chunk-JY3YSI54.js +0 -2
- package/dist/chunks/chunk-LILXHGIA.js +0 -2
- package/dist/chunks/chunk-LJPO3TEL.js +0 -17
- package/dist/chunks/chunk-MNFW5WLD.js +0 -6
- package/dist/chunks/chunk-N5GPINVP.js +0 -2
- package/dist/chunks/chunk-N663LL27.js +0 -2
- package/dist/chunks/chunk-NOSBNHGC.js +0 -18
- package/dist/chunks/chunk-NR5VASQB.js +0 -2
- package/dist/chunks/chunk-O3MHHGC5.js +0 -151
- package/dist/chunks/chunk-OZ6LRNRE.js +0 -2
- package/dist/chunks/chunk-PGO4FRHU.js +0 -10
- package/dist/chunks/chunk-QAVQJZCM.js +0 -2
- package/dist/chunks/chunk-RBDUMASL.js +0 -2
- package/dist/chunks/chunk-TM4VEMNN.js +0 -2
- package/dist/chunks/chunk-TUCKED4T.js +0 -4
- package/dist/chunks/chunk-TVTFEGTU.js +0 -2
- package/dist/chunks/chunk-TW3SRBLU.js +0 -22
- package/dist/chunks/chunk-UT6F6AIB.js +0 -12
- package/dist/chunks/chunk-VE6ZIGUQ.js +0 -2
- package/dist/chunks/chunk-VI32G77S.js +0 -2
- package/dist/chunks/chunk-VWRTE64Y.js +0 -2
- package/dist/chunks/chunk-XSB3T4JZ.js +0 -5
- package/dist/chunks/chunk-XWDFXM3S.js +0 -2
- package/dist/chunks/chunk-ZQHPGEYT.js +0 -2
- package/dist/chunks/cli-GCSO2OAI.js +0 -2
- package/dist/chunks/connected-app-executor-UDE7U4KG.js +0 -2
- package/dist/chunks/connected-evidence-GXIY2L7C.js +0 -2
- package/dist/chunks/core-commands-NJ6TGND4.js +0 -2
- package/dist/chunks/dataset-preparation-authoring-IUXUQK3L.js +0 -4
- package/dist/chunks/datasets-AH56DKLZ.js +0 -2
- package/dist/chunks/desktop-test-PYUTEOWO.js +0 -3
- package/dist/chunks/dist-5267UT3V.js +0 -2
- package/dist/chunks/evaluation-coordination-3AUICOC5.js +0 -2
- package/dist/chunks/experiment-improvements-YS7GGPDW.js +0 -2
- package/dist/chunks/experiments-EJZK7FPT.js +0 -2
- package/dist/chunks/experiments-signal-NKUIJCIY.js +0 -2
- package/dist/chunks/host-profile-evaluation-tools-CTC5JQPD.js +0 -2
- package/dist/chunks/host-profile-external-dataset-GJWDY3YT.js +0 -2
- package/dist/chunks/hosted-app-server-composition-TLJSKMJT.js +0 -2
- package/dist/chunks/hosted-experiment-improvement-TIVXXRPG.js +0 -3
- package/dist/chunks/hosted-harness-runtime-SFLJEZFI.js +0 -2
- package/dist/chunks/hosted-profile-candidate-DKEMVIYG.js +0 -3
- package/dist/chunks/hosted-profile-compiler-V6YR6EHO.js +0 -2
- package/dist/chunks/hosted-profile-evaluation-control-ERCXAPZD.js +0 -2
- package/dist/chunks/hosted-profile-evaluation-inspection-Q3AIIIB6.js +0 -3
- package/dist/chunks/hosted-profile-evaluation-preparation-ELLGH44Z.js +0 -3
- package/dist/chunks/human-review-5WM6MSON.js +0 -2
- package/dist/chunks/learning-KVLTMRLD.js +0 -2
- package/dist/chunks/local-harness-improvement-runtime-IGIKM6GJ.js +0 -2
- package/dist/chunks/local-harness-taskset-review-DR2ZIDOH.js +0 -2
- package/dist/chunks/model-projects-H22KENI4.js +0 -2
- package/dist/chunks/opchat-3S6TSDZO.js +0 -3
- package/dist/chunks/opchat-bounded-chat-B7LPCD4U.js +0 -2
- package/dist/chunks/organizations-62YNTZTO.js +0 -2
- package/dist/chunks/project-action-payload-32F4X2BB.js +0 -2
- package/dist/chunks/project-agent-O4REKO6T.js +0 -2
- package/dist/chunks/published-experiment-source-DAOTJLIN.js +0 -2
- package/dist/chunks/refiner-profile-service-DYMZ7J3X.js +0 -2
- package/dist/chunks/sandbox-command-UQ26NDIX.js +0 -2
- package/dist/chunks/saved-work-PG52WCRQ.js +0 -2
- package/dist/chunks/src-AU6LG7E6.js +0 -421
- package/dist/chunks/standalone-experiment-turn-owner-SD3SUTKX.js +0 -2
- package/dist/chunks/store-chat-resources-T4LR7K25.js +0 -2
- package/dist/chunks/store-evaluation-results-WUVJWCFU.js +0 -7
- package/dist/chunks/store-harness-workspaces-IFEFY5CK.js +0 -2
- package/dist/chunks/store-human-review-ZQNLZRGG.js +0 -7
- package/dist/chunks/store-learned-preference-migration-validation-UH6MJQSH.js +0 -2
- package/dist/chunks/store-model-batch-review-QO4VVKWC.js +0 -2
- package/dist/chunks/store-model-configuration-C3HSOFD5.js +0 -3
- package/dist/chunks/store-model-project-preparation-RQ2YTC2Y.js +0 -2
- package/dist/chunks/store-task-inbox-DL5RYFPO.js +0 -33
- package/dist/chunks/store-taskset-drafts-UFGN4SGF.js +0 -9
- package/dist/chunks/taskset-packages-CBLJFWDQ.js +0 -2
- package/dist/chunks/training-error-L5V5IBX3.js +0 -2
- package/dist/chunks/training-hosted-I2NDBYGS.js +0 -2
- package/dist/chunks/training-hosted-report-4F25RZZ4.js +0 -2
- package/dist/chunks/training-hosted-workers-KI767T4Y.js +0 -2
- package/dist/skills/openpond-desktop-harness/SKILL.md +0 -113
- package/dist/skills/openpond-desktop-harness/agents/openai.yaml +0 -4
- package/dist/web/assets/App-DHJVXTI2.js +0 -54
- package/dist/web/assets/AppTerminalPanel-RjFlF-a4.js +0 -2
- package/dist/web/assets/AppsView-ttlr9ckQ.js +0 -1
- package/dist/web/assets/BrowserSidebar-Cp2l0kg0.js +0 -1
- package/dist/web/assets/ChatTimelineEntry-BITv20Ze.js +0 -1
- package/dist/web/assets/CommandMenu-6oj8FUr6.js +0 -1
- package/dist/web/assets/ComposerAttachments-6en7m_ov.js +0 -2
- package/dist/web/assets/FilePagePreview-CW4J_1u7.js +0 -2
- package/dist/web/assets/LabModelVersionDetailPage-f0tHT-Sn.js +0 -1
- package/dist/web/assets/LabsRoute-B61l1b8P.js +0 -101
- package/dist/web/assets/MainChatThread-egKi0gLk.js +0 -2
- package/dist/web/assets/MainPane-2dj6Dg4l.js +0 -95
- package/dist/web/assets/MainPane-BwHw3UYp.css +0 -1
- package/dist/web/assets/NativeSetupTerminal-CNHTByLo.js +0 -2
- package/dist/web/assets/NativeSkillSidebar-DCdMbSfe.js +0 -1
- package/dist/web/assets/RightChatPanelStack-B3mBViGC.js +0 -1
- package/dist/web/assets/RightSidebarHomePanel-CxDYSyyx.js +0 -1
- package/dist/web/assets/ScheduledWorkPage-Dh47iH11.js +0 -1
- package/dist/web/assets/SettingsView-D2bu3tK_.js +0 -5
- package/dist/web/assets/TeamChatView-CN17AsgA.js +0 -1
- package/dist/web/assets/TrainingCreationPanel-DJKzaNFj.js +0 -1
- package/dist/web/assets/TrainingMetricWorkbench-DBy8F1xp.js +0 -1
- package/dist/web/assets/WorkSidebarPanel-Ds-eTQLs.js +0 -1
- package/dist/web/assets/WorkspaceDiffPanel-D_iyg2D4.js +0 -11
- package/dist/web/assets/WorkspaceEnvironmentMenu-Fn-NlfMQ.js +0 -35
- package/dist/web/assets/app-models-BviS9b7U.js +0 -1
- package/dist/web/assets/browser-sidebar-links-ujSvTf5h.js +0 -1
- package/dist/web/assets/chat-resources-3SvnVeKv.js +0 -1
- package/dist/web/assets/chevron-right-sFx2xRvT.js +0 -1
- package/dist/web/assets/contracts-BHTOD1nd.js +0 -1
- package/dist/web/assets/icons-CK5-nxVC.js +0 -1
- package/dist/web/assets/index-Dezj4Z2p.css +0 -1
- package/dist/web/assets/loader-circle-cyf35w3i.js +0 -1
- package/dist/web/assets/play-wI_3FLr4.js +0 -1
- package/dist/web/assets/plus-DoJe4fLj.js +0 -1
- package/dist/web/assets/settings-BKmRueaw.js +0 -21
- package/dist/web/assets/square-BqSK-hv9.js +0 -1
- package/dist/web/assets/submit-issue-command-DRgUboVW.js +0 -3
- package/dist/web/assets/training-managed-adapter-BXNwgd3P.js +0 -1
- package/dist/web/assets/useAgentInventory-B-LNn3up.js +0 -1
- package/dist/web/assets/x-IPhrr4ju.js +0 -1
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
+
import{Ab as me,Bb as ue,Ca as J,Cb as fe,Db as he,Eb as ge,Mb as ve,Rb as be,Sb as we,_ as ae,ja as se,kb as ne,lb as re,na as ie,nb as oe,ob as ce,pb as de,qb as le,v as te,wa as F,xb as W,yb as Z,zb as pe}from"./chunk-YNQWJWIC.js";import{b as I,c as H,d as V,f as _,k as G,l as O,m as d}from"./chunk-VNJAAYNQ.js";import{a as ee}from"./chunk-7ZLXFKRI.js";import{O as L,ba as Y,ca as X,d as C,f as U}from"./chunk-J572ANHX.js";import{Ya as K}from"./chunk-PBZCXPPC.js";import{A as n}from"./chunk-PF56N7ZY.js";import{a as k}from"./chunk-FTQLQJQV.js";var Ae=n.object({id:I,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(),Ie=n.object({declarationId:I,leaseRef:n.string().trim().min(8).max(1e3),audience:Ae.shape.audience,expiresAt:V}).strict(),qe=n.object({adapterId:I,placement:n.enum(["local","remote","colocated","provider_native"]),capabilityReceipt:H,runtimeVersion:n.string().trim().min(1).max(200),dataPlane:n.object({provider:I,dataPlaneId:I,cellId:I,runnerPoolId:I,runtimeImageDigest:n.string().regex(/^sha256:[a-f0-9]{64}$/),capabilityReceipt:H}).strict().nullable()}).strict(),Me=n.object({adapterId:I,kind:n.enum(["local","ssh","managed","custom"]),deviceOrPool:n.string().trim().min(1).max(1e3),capabilityReceipt:H,provider:I.nullable()}).strict(),je=n.object({adapterId:I,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:H}).strict(),ye=n.object({schemaVersion:n.literal("openpond.harnessRunManifest.v1"),executionMode:n.literal("qualification").optional(),qualificationSamples:n.number().int().min(1).max(32).optional(),id:I,harnessRelease:_,datasetRelease:_,evidenceSets:n.array(_).max(1e4),model:n.object({source:n.string().trim().min(1).max(200),revision:n.string().trim().min(1).max(500),artifactHash:H.nullable(),tokenizerRevision:n.string().trim().min(1).max(500),chatTemplateHash:H}).strict(),recipe:n.object({method:n.string().trim().min(1).max(100),version:n.string().trim().min(1).max(200),configHash:H}).strict(),runtimeTarget:qe,computeTarget:Me,engine:je,resolvedBundleHash:H,secretLeaseRefs:n.array(Ie).max(1e3),approval:n.object({approvalHash:H,approvedAt:V,maximumSpendUsd:n.number().nonnegative().nullable()}).strict(),createdAt:V}).strict(),Re=ye.extend({contentHash:H}).strict(),xe=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:_,datasetRelease:_,evidenceSetRelease:_.nullable(),files:n.array(n.object({path:n.string().trim().min(1).max(2e3),sha256:H,sizeBytes:n.number().int().nonnegative()}).strict()).max(1e5)}).strict(),Te=xe.extend({contentHash:H}).strict(),Pe=[{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}],D=/\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}\b/gi,N=/\b(?:\+?1[-.\s]?)?\(?\d{3}\)?[-.\s]\d{3}[-.\s]\d{4}\b/g;function _e(e){let t=[],a=e;for(let s of Pe)s.pattern.lastIndex=0,s.pattern.test(a)&&t.push(s.label),s.pattern.lastIndex=0,a=a.replace(s.pattern,`[REDACTED ${s.label}]`);D.lastIndex=0;let r=D.test(a);D.lastIndex=0,r&&t.push("email address"),a=a.replace(D,"[REDACTED email]"),N.lastIndex=0;let o=N.test(a);return N.lastIndex=0,o&&t.push("phone number"),a=a.replace(N,"[REDACTED phone]"),{secretStatus:t.some(s=>!s.includes("email")&&!s.includes("phone"))?"blocked":"passed",piiStatus:r||o?"review":"passed",findings:t,redacted:a}}k(_e,"scanAndRedactEvidence");function Be(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),l=e.assetBytes?.get(s.id)??(i?new TextEncoder().encode(C(i,s)):void 0);if(!l||l.byteLength!==s.sizeBytes||O(l)!==s.contentHash)throw new Error(`Learning task input bytes are missing or changed: ${s.id}.`);let p=`learning/assets/${d({task:o.id,asset:s.id}).slice(0,40)}/${s.path}`;return t.set(p,new Uint8Array(l)),{id:s.id,sourceRefId:e.sourceId,artifactRef:p,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(Be,"materializeLearningBatchAssets");function ze(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=Be({tasks:t.tasks,sourceId:o,assets:e.assets,assetBytes:e.assetBytes}),i={demonstrations:[],preferences:[],corrections:[],feedback:[],rewards:[],labels:[]},l=[];for(let c of a.admissions){let x=e.evidence.find(g=>g.id===c.evidence.id),f=e.decisions.find(g=>g.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:L(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[g,v,E]of[["observed",x.submission.observedOutput,f.grade],["target",f.approvedTarget,f.targetGrade]]){let b=Ce(E);v===null||b===null||l.push({id:`fixture-${g}-${c.taskId}`,taskId:c.taskId,label:b.passed?"positive":"negative",output:v,infrastructureError:null,expectedPassed:b.passed,expectedRewardEligible:b.rewardEligible,metadata:{gradeReceiptHash:E.contentHash,evidence:c.evidence,decision:c.decision}})}}if(!l.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 p=we(e.binding,e.rewards,e.assets),m=[];for(let c of t.graders){if(c.kind!=="custom_verifier")continue;let x=e.assets?.find(g=>g.id===c.verifierRef.id);if(!x)throw new Error(`Reward ${c.id} is missing its immutable verifier source.`);let f=c.verifierRef.path;m.some(g=>g.path===f)||m.push({path:f,role:"verifier",content:C(x,c.verifierRef)})}let R=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(x=>x.taskId===c.id),exampleOrigin:e.evidence.find(x=>x.id===c.id)?.correctionFeedbackId?"corrected":"extracted"}})),graders:p,graderFixtures:l,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:L(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({...R,contentHash:J(R)}),release:t,generatedFiles:m,tasksetAssetBytes:s.tasksetAssetBytes}}k(ze,"materializeLearningBatchTaskset");function Ce(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(Ce,"fixtureOutcome");function rt(e){let t=[],a=0;for(let s of new Map(e.evidence.flatMap(i=>i.submission.assets.map(l=>[l.id,l]))).values()){let i=e.assetBytes?.get(s.id),l=e.assets?.find(m=>m.id===s.id),p=i?.byteLength??(l?new TextEncoder().encode(l.text).byteLength:0);if(a+=p,a>ae)throw new Error("Learning input assets exceed the training package limit.");i?t.push(new TextDecoder().decode(i)):l&&t.push(l.text)}let r=_e(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:L(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 ze({...e,source:o})}k(rt,"prepareReviewedLearningBatch");async function ct(e){let t=structuredClone(e),{project:a,recipe:r,taskset:o,approval:s}=t,i=Re.parse(t.manifest),l=Te.parse(t.bundleManifest),p=t.executionMode==="qualification",m=t.physicalPlacement?le.parse(t.physicalPlacement):void 0,R=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!==l.qualificationSamples||i.qualificationSamples!==void 0&&(!p||i.qualificationSamples>R))throw new Error("Qualification samples must be within the pinned rollout group and cannot be used for training.");if(i.executionMode!==t.executionMode||l.executionMode!==t.executionMode)throw new Error("Managed submission execution mode differs from its immutable bundle.");if(p&&(t.evaluationSource||t.resumeFrom||t.rewardSource.kind!=="deterministic"))throw new Error("Qualification requires the original learner, deterministic rewards, and no evaluation source.");let{contentHash:c,...x}=i,{contentHash:f,...g}=l;if(d(x)!==c||d(g)!==f||i.resolvedBundleHash!==f||d(i.harnessRelease)!==d(l.harnessRelease)||d(i.datasetRelease)!==d(l.datasetRelease)||d(i.evidenceSets)!==d(l.evidenceSetRelease?[l.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 v=a.trainingSetup.baseModel;if(!v||v.modelId!==i.model.source||v.revision!==i.model.revision||v.tokenizerRevision!==i.model.tokenizerRevision||v.chatTemplateHash!==i.model.chatTemplateHash)throw new Error("The synced Model Project base Model does not match the Run manifest.");if(r.method!=="grpo"||d(r)!==i.recipe.configHash||s.approvalHash!==i.approval.approvalHash||s.maximumSpendUsd!==i.approval.maximumSpendUsd)throw new Error("Managed training requires the exact approved GRPO recipe and spend ceiling.");let E=n.object({wallTimeMs:n.number().positive()}).parse(r.resourceLimits);t.idempotencyKey!==void 0&&n.string().trim().min(16).max(191).parse(t.idempotencyKey);let b=Oe(l,t.files),T=p?null:Z.parse(t.evaluationSource),M=b.find(h=>h.path===W);if(T&&(!M||d(JSON.parse(Buffer.from(M.content,"base64").toString("utf8")))!==d(T)))throw new Error("The evaluation source differs from the immutable training bundle.");if(p&&(M||b.some(h=>h.path==="dataset/train.json")||!b.some(h=>h.path==="dataset/qualification.json")||!b.some(h=>h.path==="qualification-source.json")))throw new Error("Qualification requires its dedicated dataset and no training/evaluation datasets.");if(!p&&b.some(h=>h.path==="dataset/qualification.json"||h.path==="qualification-source.json"))throw new Error("Qualification datasets cannot be prepared as training.");let y=T?await me(T):null,z={schemaVersion:"openpond.managedRlPortableSubmission.v1",...p?{executionMode:"qualification"}:{},...t.origin?{origin:U.parse(t.origin)}:{},...m?{physicalPlacement:m}:{},sourceRunRef:`openpond:model-run:${i.id}`,name:`OpenPond Managed \xB7 ${a.id}`.slice(0,191),idempotencyKey:t.idempotencyKey??`openpond-managed:${c}`.slice(0,191),modelProject:{id:a.hosted.projectId,portableProjectId:a.hosted.portableProjectId},manifest:i,sourceTaskset:o,modelImprovementQualification:t.modelImprovementQualification??null,recipe:r,resolvedBundle:{manifest:l,files:b},validationTasks:T?.tasks??[],validationAssets:T?.assets??[]},j={schemaVersion:"openpond.trainingInputArtifactUpload.v2",kind:"portable_training_bundle",idempotencyKey:`stage:${t.idempotencyKey??c}`,sourceManifest:{id:i.id,contentHash:c},payload:z},P=await fe({...j,contentHash:await ue(j)}),A={schemaVersion:"openpond.trainingJobSubmission.v2",idempotencyKey:t.idempotencyKey??`openpond-training-v2:${c}`,name:`OpenPond Managed \xB7 ${a.id}`.slice(0,200),source:{...t.origin?{origin:U.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:l.datasetRelease,...y?{evaluation:y}:{},evidenceSets:l.evidenceSetRelease?[l.evidenceSetRelease]:[]},job:{kind:"policy_optimize",...p?{executionMode:"qualification"}:{},baseModel:v,recipe:r,rewardSource:t.rewardSource,resumeFrom:t.resumeFrom},requestedCapabilities:[{id:p?"managed_rl.policy.qualification":"managed_rl.policy.grpo",version:"1",required:!0},{id:`managed_rl.rollouts.${i.runtimeTarget.placement}`,version:"1",required:!0},...a.trainingSetup.managedGpuRequirement==="h100_hbm3"?[{id:"managed_rl.gpu.h100_hbm3",version:"1",required:!0}]:[]],placementObjective:a.trainingSetup.managedGpuPlacementObjective,...t.gpuSelection??a.trainingSetup.managedGpuSelection?{gpuSelection:ee.parse(t.gpuSelection??a.trainingSetup.managedGpuSelection)}:{},...m?{physicalPlacement:m}:{},budget:{maximumSpendUsd:s.maximumSpendUsd,maximumWallSeconds:Math.ceil(E.wallTimeMs/1e3)},approval:{...s,approvedAt:i.approval.approvedAt,exportApproved:!0}},u=await ge({...A,contentHash:await he(A)});return{artifact:P,submission:u}}k(ct,"prepareManagedTrainingSubmission");function Oe(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||O(s)!==r.sha256)throw new Error(`Managed training bundle file ${o.path} changed before upload.`);return o})}k(Oe,"verifyFiles");var $e=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 lt(e,t){if(!t||typeof t!="object"||Array.isArray(t))return t;let a=t;if(a.method==="dpo"){let y=S(a.policyModel),z=S(a.referenceModel),j=S(a.dataset),P=d({tasksetHash:e.contentHash,preferenceSignals:e.learningSignals.preferences.map(A=>({id:A.id,artifactRef:A.artifactRef,prompt:A.prompt,chosen:A.chosen,rejected:A.rejected,approved:A.approved})),policyModel:y,referenceModel:z,dataset:j});return{...a,referenceLogprobs:{cacheSchemaVersion:"openpond.dpoReferenceLogprobs.v1",cacheKey:d(["dpo-reference-logprobs",P]),invalidationHash:P}}}if(a.method==="ppo"){let y=S(a.policyOptimization),z=S(y.policyModel),j=S(y.referenceModel),P=S(y.optimizer),A=S(P.valueModel),u=S(y.dataset),h=S(y.reward),Q=d(z),w=d(j),$=d(A);return{...a,policyOptimization:{...y,dataset:{...u,tasksetId:e.id,tasksetHash:e.contentHash},reward:{...h,graderHash:d(e.graders)}},resume:{...S(a.resume),policyHash:Q,referenceHash:w,valueModelHash:$}}}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=S(a.baseModel),l=S(a.dataset),p=S(a.rollout),m=S(a.optimizer),R=S(a.loss),c=S(a.resourceLimits),x=q(l.maxExamples,1),f=q(p.groupSize,2),g=q(p.maxOutputTokens,1),v=q(l.maxPromptTokens,1),E=q(m.maxSteps,1),b=q(m.iterations,2),T=q(c.maxRollouts,E*f),M=q(p.maxTurns,1);return{...a,resourceLimits:{...c,maxGpuSeconds:c.maxGpuSeconds??Math.min(10800,Math.ceil(q(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:l.selectionStrategy,selectionSeed:p.seed,maxExamples:x},sampler:{temperature:p.temperature,topP:p.topP,maxOutputTokens:g,maxTurns:p.maxTurns,concurrency:p.concurrency},environment:{id:r.environmentId,version:r.environmentVersion,toolContractHash:s},reward:{graderId:r.graderId,graderHash:d(e.graders),learnedPreference:r.learnedPreference??null},kl:{coefficient:R.klBeta??null,referenceConstraint:"fixed_reference"},budgets:{maxRollouts:T,maxEnvironmentExecutions:T,maxInputTokens:T*M*v,maxOutputTokens:T*M*g,maxOptimizerSteps:E*b,wallTimeMs:q(c.wallTimeMs,18e4),maximumCostUsd:null},checkpointEverySteps:1,seed:p.seed,evaluationSplit:"frozen_eval",optimizer:{method:"grpo",groupSize:f,normalization:"group_standardized",advantageEpsilon:typeof m.advantageEpsilon=="number"?m.advantageEpsilon:1e-8,loss:R.method??"grpo",clipRange:typeof m.clipRange=="number"?m.clipRange:.2,iterations:b,microbatchSize:q(m.microbatchSize,1),gradientAccumulationSteps:q(m.gradientAccumulationSteps,1),adamw:$e.parse(m.adamw)}}}}k(lt,"withAuthoritativeRecipeHashes");function S(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:{}}k(S,"record");function q(e,t){return typeof e=="number"&&Number.isInteger(e)&&e>0?e:t}k(q,"positiveInteger");function pt(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=ke({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:R})=>({id:m,contentHash:R})),agents:o.map(({id:m,contentHash:R})=>({id:m,contentHash:R}))},mediaType:"application/json",visibility:"policy"}),i=ne({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}}),l=ke({id:"desktop-harness-program",path:".openpond/harness/program.json",hashInput:{program:"openpond.desktop-agent-loop.v1"},mediaType:"application/json",visibility:"policy"}),p=re({schemaVersion:"openpond.harnessRelease.v2",id:`harness-${d([i.contentHash,l.contentHash,a]).slice(0,24)}`,agentSnapshot:{id:i.id,contentHash:i.contentHash},program:l,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:p}}k(pt,"createPolicyHarnessContext");function ke(e){let t=G(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(ke,"asset");function mt(e){let{taskset:t,modelProject:a,harnessRelease:r,tasksetRelease:o}=e,s=a.trainingSetup,i=e.executionMode==="qualification",l=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>l))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 p=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(p&&(p.modelResources||p.learningResources||d(t.tasks.map(be))!==d(p.taskset.tasks)||Se(e.tasksetRelease)!==Se(p.taskset)))throw new Error("Qualification must preserve its ordinary source release and complete task population.");let m=_.parse(r),R=_.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 x=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(p&&B(f,"qualification-source.json",p),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.");pe(t.tasks.filter(h=>h.split==="train"),u.tasks),f.set(W,new TextEncoder().encode(G(u)))}else if(!i&&s.evaluationTasksetRef)throw new Error("The prepared Model requires its pinned evaluation source bytes.");let g=e.harnessSource?e.harnessSource.schemaVersion==="openpond.harnessPolicySourcePackage.v1"?ce(e.harnessSource,m):de(e.harnessSource,m):null;if(s.harnessRelease&&!g)throw new Error("A selected Harness requires its complete immutable source package.");if(g&&(!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(g){if((e.runtime.placement!=="local"||e.compute.kind!=="local")&&(!g.agentSnapshot.portability.portable||g.schemaVersion==="openpond.harnessSourcePackage.v1"&&g.harnessRelease.files.some(h=>h.visibility!=="policy")))throw new Error("The selected Harness contains source that cannot leave its local host.");B(f,"harness/source-package.json",g)}B(f,"harness/execution.json",oe.parse({schemaVersion:"openpond.harnessSourceSelection.v1",mode:g?"selected_release":"taskset_owned",harnessRelease:m,sourcePackageHash:g?.contentHash??null}));let v=ve(t,e.rewardExecution);if(p&&(!v||d(K(v.binding,v.rewards))!==d(p.taskset.graders)||p.taskset.graders.some(u=>u.kind==="model_judge"||u.kind==="human")))throw new Error("Qualification requires the source package's exact deterministic graders.");if(v){let u=e.verifierAssets??[],h=[...v.rewards.flatMap(w=>w.assets),...K(v.binding,v.rewards).flatMap(w=>w.kind==="custom_verifier"?[w.verifierRef]:w.kind==="model_judge"?[w.rubricRef]:[])],Q=new Set(h.map(w=>w.id));if(new Set(u.map(w=>w.id)).size!==u.length||new Set(u.map(w=>w.asset.path)).size!==u.length||u.some(w=>!Q.has(w.id)))throw new Error("Unexpected or duplicate private verifier asset.");for(let w of h){let $=u.find(Ee=>Ee.id===w.id);if(!$||w.visibility!=="verifier")throw new Error("Training bundle requires its private verifier asset.");C($,w)}B(f,"reward-binding.json",{kind:"reward_binding_v1",binding:v.binding,rewards:v.rewards,assets:u})}else if(e.verifierAssets?.length)throw new Error("Private verifier assets require a published Reward binding.");let E=t.metadata.tasksetOutputContract;E&&typeof E=="object"&&"responsePath"in E&&ie.parse({jsonSchema:null,renderer:null,...E}),B(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}),B(f,"graders.json",{schemaVersion:"openpond.harnessGraders.v1",graders:t.graders,fixtures:t.graderFixtures}),B(f,"tool-contract.json",{schemaVersion:"openpond.harnessToolContract.v1",toolNames:t.environment.toolNames,actionBindings:t.environment.actionBindings??[],capabilities:t.capabilities,connectedAppScopes:t.policy.connectedAppScopes});let b=i?t.tasks.filter(u=>u.id===e.qualificationTaskId):t.tasks.filter(u=>u.split==="train");if(b.length>0)B(f,i?"dataset/qualification.json":"dataset/train.json",{schemaVersion:i?"openpond.qualificationDataset.v1":"openpond.datasetSplit.v1",...i?{selectedTaskId:e.qualificationTaskId}:{split:"train"},tasks:b}),Le({assets:f,tasks:b,tasksetAssetBytes:e.tasksetAssetBytes??new Map});else if(t.datasetArtifact)B(f,"dataset/artifact.json",t.datasetArtifact);else throw new Error("Taskset has no training dataset.");let T=Object.values(t.learningSignals).flat().filter(u=>u.approved);for(let u of T){let h=He(u);f.set(`evidence/signals/${O(h)}.json`,h)}let M={id:`dataset_${t.id}_r${t.revision}`,contentHash:d({taskset:R,sourceRefs:t.sourceRefs,datasetArtifact:t.datasetArtifact??null,...i?{executionMode:"qualification",tasks:b}:{trainTasks:b}})},y=T.length>0?{id:`evidence_${t.id}_r${t.revision}`,contentHash:d({taskset:R,harnessRelease:m,datasetRelease:M,profileRelease:x,signals:T})}:null,z=xe.parse({schemaVersion:"openpond.resolvedTrainingBundle.v1",...i?{executionMode:"qualification"}:{},...e.qualificationSamples!==void 0?{qualificationSamples:e.qualificationSamples}:{},projection:"trainer",harnessRelease:m,datasetRelease:M,evidenceSetRelease:y,files:[...f.entries()].sort(([u],[h])=>u.localeCompare(h)).map(([u,h])=>({path:u,sha256:O(h),sizeBytes:h.byteLength}))}),j=Te.parse({...z,contentHash:d(z)}),P=ye.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:M,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:j.contentHash,secretLeaseRefs:e.secretLeaseRefs??[],approval:e.approval,createdAt:a.updatedAt});return{manifest:Re.parse({...P,contentHash:d(P)}),resolvedBundleManifest:j,assets:f,profileRelease:x,harnessRelease:m,tasksetRelease:R,datasetRelease:M,evidenceSetRelease:y}}k(mt,"buildTasksetTrainingBundle");function Le(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(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(Le,"addTasksetAssets");function B(e,t,a){e.set(t,He(a))}k(B,"addJsonAsset");function He(e){return Buffer.from(G(e),"utf8")}k(He,"bytes");function Se(e){return d({id:e.id,contentHash:e.contentHash})}k(Se,"releasedRefHash");export{qe as a,Me as b,je as c,Re as d,Te as e,_e as f,rt as g,ct as h,$e as i,lt as j,pt as k,mt as l};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
+
import{pc as a,sc as u,tc as h}from"./chunk-J572ANHX.js";import{Ma as l}from"./chunk-PBZCXPPC.js";import{A as e}from"./chunk-PF56N7ZY.js";import{a as p}from"./chunk-FTQLQJQV.js";var o=e.string().trim().min(1).max(240),S=e.object({projectId:o.optional(),search:e.string().max(300).optional(),kind:e.string().max(100).optional(),sort:e.enum(["name","type","version","projects","datasets","runs"]).optional(),direction:e.enum(["asc","desc"]).optional(),after:e.string().max(3e3).optional(),limit:e.number().int().min(1).max(100).default(30)}).strict(),v=e.object({teamId:o,items:e.array(e.object({reward:l,projects:e.number().int().nonnegative(),datasets:e.number().int().nonnegative(),runs:e.number().int().nonnegative()}).strict()).max(100),nextCursor:e.string().nullable()}).strict(),b=e.object({teamId:o,id:o,items:e.array(l).max(100),nextRevision:e.number().int().positive().nullable()}).strict(),g=e.object({section:e.enum(["projects","datasets","runs"]),after:o.optional(),limit:e.number().int().min(1).max(100).default(25)}).strict(),I=e.object({teamId:o,id:o,section:g.shape.section,items:e.array(e.union([e.object({id:o,name:e.string(),graderRevisions:e.array(e.number().int().positive()),archived:e.boolean()}).strict(),e.object({id:o,name:e.string(),revision:e.number().int().positive(),graderRevisions:e.array(e.number().int().positive())}).strict(),e.object({id:o,name:e.string(),status:e.string()}).strict()])).max(100),nextCursor:o.nullable()}).strict(),G=class{static{p(this,"OpenPondGraderInspectionClient")}constructor(n){this.options=n;let i=new URL(n.baseUrl);if(!["http:","https:"].includes(i.protocol)||i.username||i.password||i.search||i.hash||!n.apiKey.trim()||!n.teamId.trim())throw new Error("A clean API origin and workspace credentials are required.");this.baseUrl=i.toString().replace(/\/+$/,"")}options;baseUrl;async catalog(n={},i){let c=S.parse(n),t=v.parse(await this.read("",c,i));if(t.teamId!==this.options.teamId||t.items.length>c.limit||new Set(t.items.map(r=>r.reward.id)).size!==t.items.length)throw new Error("Grader catalog differs from its requested workspace or bounds.");return t}async versions(n,i={},c){let t=e.object({beforeRevision:e.number().int().positive().optional(),limit:e.number().int().min(1).max(100).default(25)}).strict().parse(i),r=b.parse(await this.read(`/${encodeURIComponent(o.parse(n))}/versions`,t,c));if(r.teamId!==this.options.teamId||r.id!==n||r.items.length>t.limit||r.items.some((d,m)=>d.id!==n||t.beforeRevision&&d.revision>=t.beforeRevision||m>0&&d.revision>=r.items[m-1].revision))throw new Error("Grader versions differ from their requested identity or revision order.");return r}async usage(n,i,c){let t=g.parse(i),r=I.parse(await this.read(`/${encodeURIComponent(o.parse(n))}/usage`,t,c));if(r.teamId!==this.options.teamId||r.id!==n||r.section!==t.section||r.items.length>t.limit)throw new Error("Grader usage differs from its requested workspace, identity or bounds.");return r}async read(n,i,c){let t=new URLSearchParams(Object.entries(i).filter(([,m])=>m!==void 0).map(([m,f])=>[m,String(f)])),r=await(this.options.fetch??fetch)(`${this.baseUrl}/v1/learning/read/graders${n}?${t}`,{signal:c,redirect:"error",headers:{Authorization:`Bearer ${this.options.apiKey}`,"X-OpenPond-Team-Id":this.options.teamId,Accept:"application/json"}}),d=await r.json();if(!r.ok)throw new Error(e.object({error:e.string()}).parse(d).error);return d}};var s=e.string().trim().min(1).max(500),w=e.object({id:s,contentHash:e.string().regex(/^[a-f0-9]{64}$/)}).strict(),J=e.object({teamId:s,modelId:s,runId:s.optional(),from:e.string().datetime().optional(),to:e.string().datetime().optional()}).strict(),K=e.discriminatedUnion("action",[e.object({action:e.literal("declare_verification"),teamId:s,operationId:s,plan:e.object({modelId:a.shape.modelId,classification:a.shape.classification,feedback:a.shape.feedback,evidence:a.shape.evidence,trainingJobId:a.shape.trainingJobId,checkpoint:a.shape.checkpoint,artifact:a.shape.artifact,taskset:a.shape.taskset,checks:a.shape.checks,baselineOperationId:a.shape.baselineOperationId,candidateOperationId:a.shape.candidateOperationId,criterion:a.shape.criterion}).strict()}).strict(),e.object({action:e.literal("link_live_opportunity"),teamId:s,operationId:s,correction:w,inferenceRequestId:s,grade:e.object({id:s,revision:e.number().int().positive()}).strict(),checkIds:e.array(s).min(1).max(1e3)}).strict()]),N=e.object({summary:h.nullable(),observations:e.array(u).max(1e3)}).strict();export{S as a,g as b,G as c};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
-
import{g as E,m as g,n as j}from"./chunk-LRRBYIGH.js";import{k as P}from"./chunk-CN5OXQ7A.js";import{e as A,f as x,g as D,l as I}from"./chunk-OZ6LRNRE.js";import{b as W}from"./chunk-L3KS6MOV.js";import{n as $}from"./chunk-VVNV4NNW.js";import{a as v}from"./chunk-FTQLQJQV.js";import{randomUUID as H}from"node:crypto";import{promises as p}from"node:fs";import{stripTypeScriptTypes as M}from"node:module";import m from"node:path";async function Q(e){let r=A.parse(e.overlay),t=x.parse(e.proposal),o=e.validations.map(h=>D.parse(h));if((t.route==="agent"?t.edits.filter(h=>h.target!=="harness.json"&&h.operation!=="delete"):[]).length>0){let h=t.validationPlan.find(n=>n.kind==="component_activation"&&n.required);if(!h)throw new Error("Desktop Work Agent proposals require component-activation validation before review.");if(o.find(n=>n.validationId===h.id)?.status==="passed")throw new Error("Desktop Work cannot accept a passed Agent activation receipt until an Agent source executor exists.")}if(t.overlay.id!==r.id||t.overlay.revision!==r.revision||t.overlay.contentHash!==r.contentHash)throw new Error("Refiner proposal is not bound to the supplied run overlay.");if(r.status!=="frozen")throw new Error("Only a frozen run overlay can advance a Harness workspace.");let i=await e.store.getHarnessWorkspace(t.expectedWorkspace.workspaceId);if(!i)throw new Error(`Harness workspace ${t.expectedWorkspace.workspaceId} does not exist.`);if(i.location!==e.store.harnessStoragePlacement)throw new Error("Refiner workspace does not match the admitted storage placement.");let s=E(e.storeDir,i.id),l=await g({workspaceId:i.id,sourceDir:s.source});if(l.sourceRevision!==i.sourceRevision)throw new Error(`Harness source is ${l.sourceRevision}; workspace expects ${i.sourceRevision}. Record or revert the source change before refinement.`);let w=m.join(s.root,`.source-candidate-${H()}`);await p.cp(s.source,w,{recursive:!0,force:!1,errorOnExist:!0,verbatimSymlinks:!1});try{await V(w,t);let h=await g({workspaceId:i.id,sourceDir:w}),f=(e.now??(()=>new Date().toISOString()))(),n=await j({storeDir:e.storeDir,workspaceId:i.id,compiled:h,createdAt:f});await e.store.saveHarnessReleaseRecord(n),await e.store.saveHarnessImprovementArtifact(i.id,"run_overlay",r),await e.store.saveHarnessImprovementArtifact(i.id,"proposal",t);for(let a of o)await e.store.saveHarnessImprovementArtifact(i.id,"targeted_validation",a);if(!P({workspace:i,proposal:t}).eligible&&!e.reviewAuthority)return e.store.advanceHarnessWorkspaceAtomically({receiptId:e.receiptId,workspaceId:i.id,proposal:t,validations:o,nextRelease:{id:n.harnessRelease.id,contentHash:n.harnessRelease.contentHash},nextSourceRevision:n.sourceRevision,now:f});let u=m.join(s.root,`.source-backup-${H()}`),c=m.join(s.root,"source-swap.json");await _(c,{schemaVersion:"openpond.localHarnessSourceSwap.v1",workspaceId:i.id,expectedWorkspaceRevision:i.revision,previousSourceRevision:i.sourceRevision,nextSourceRevision:n.sourceRevision,backupSource:u,candidateSource:w,createdAt:f}),await p.rename(s.source,u),await p.rename(w,s.source);try{let a=e.reviewAuthority?await e.store.advanceReviewedHarnessWorkspaceAtomically({receiptId:e.receiptId,workspaceId:i.id,proposal:t,validations:o,nextRelease:{id:n.harnessRelease.id,contentHash:n.harnessRelease.contentHash},nextSourceRevision:n.sourceRevision,reviewer:e.reviewAuthority.reviewer,now:f}):await e.store.advanceHarnessWorkspaceAtomically({receiptId:e.receiptId,workspaceId:i.id,proposal:t,validations:o,nextRelease:{id:n.harnessRelease.id,contentHash:n.harnessRelease.contentHash},nextSourceRevision:n.sourceRevision,now:f});return a.receipt.decision!=="advanced"?await b(s.source,u):await p.rm(u,{recursive:!0,force:!0}),await p.rm(c,{force:!0}),a}catch(a){throw await b(s.source,u).catch(()=>{}),await p.rm(c,{force:!0}).catch(()=>{}),a}}finally{await p.rm(w,{recursive:!0,force:!0}).catch(()=>{})}}v(Q,"applyLocalHarnessRefinerProposal");async function X(e){let r=await e.store.getHarnessWorkspace(e.workspaceId);if(!r||r.location!==e.store.harnessStoragePlacement)throw new Error(`Local Harness workspace ${e.workspaceId} does not exist.`);if(r.currentChannel.release?.id!==e.rollbackOf.id||r.currentChannel.release.contentHash!==e.rollbackOf.contentHash)throw new Error("Harness rollback source is no longer the current release.");let t=await e.store.getHarnessReleaseRecord(e.targetRelease.contentHash);if(!t||t.workspaceId!==r.id||t.harnessRelease.id!==e.targetRelease.id)throw new Error("Harness rollback target is unavailable in this workspace.");let o=E(e.storeDir,r.id);if((await g({workspaceId:r.id,sourceDir:o.source})).sourceRevision!==r.sourceRevision)throw new Error("Harness source changed before rollback.");let i=m.join(o.root,`.source-rollback-${H()}`);await p.cp(m.join(t.bundlePath,"source"),i,{recursive:!0,force:!1,errorOnExist:!0,verbatimSymlinks:!1});try{if((await g({workspaceId:r.id,sourceDir:i})).sourceRevision!==t.sourceRevision)throw new Error("Harness rollback bundle does not reproduce its registered source revision.");let l=(e.now??(()=>new Date().toISOString()))(),w=m.join(o.root,`.source-backup-${H()}`),h=m.join(o.root,"source-swap.json");await _(h,{schemaVersion:"openpond.localHarnessSourceSwap.v1",workspaceId:r.id,expectedWorkspaceRevision:r.revision,previousSourceRevision:r.sourceRevision,nextSourceRevision:t.sourceRevision,backupSource:w,candidateSource:i,createdAt:l}),await p.rename(o.source,w),await p.rename(i,o.source);try{let f=await e.store.rollbackHarnessWorkspaceAtomically({receiptId:e.receiptId,workspaceId:r.id,expectedWorkspaceRevision:r.revision,expectedChannelRevision:r.currentChannel.revision,targetRelease:e.targetRelease,targetSourceRevision:t.sourceRevision,rollbackOf:e.rollbackOf,now:l});return f.receipt.decision!=="rolled_back"?await b(o.source,w):await p.rm(w,{recursive:!0,force:!0}),await p.rm(h,{force:!0}),f}catch(f){throw await b(o.source,w).catch(()=>{}),await p.rm(h,{force:!0}).catch(()=>{}),f}}finally{await p.rm(i,{recursive:!0,force:!0}).catch(()=>{})}}v(X,"rollbackLocalHarnessWorkspaceRelease");async function Y(e){let r=x.parse(e.proposal);if(r.expectedWorkspace.workspaceId!==e.workspace.id)throw new Error("Refiner proposal targets a different Harness workspace.");if(r.route==="memory")return q({proposal:r,now:e.now});let t=E(e.storeDir,e.workspace.id),o=await g({workspaceId:e.workspace.id,sourceDir:t.source});if(o.sourceRevision!==r.expectedWorkspace.sourceRevision)throw new Error("Refiner proposal source revision no longer matches the Local Harness workspace.");let d=m.join(t.root,`.validation-candidate-${H()}`);await p.cp(t.source,d,{recursive:!0,force:!1,errorOnExist:!0,verbatimSymlinks:!1});let i=(e.now??(()=>new Date().toISOString()))();try{await V(d,r);let s=await g({workspaceId:e.workspace.id,sourceDir:d}),l=new Map(s.manifest.files.map(n=>[n.path,n])),w=new Map(r.edits.map(n=>[n.target,n])),h=O(o),f=O(s);return Promise.all(r.validationPlan.map(async n=>{let y="passed",u="The candidate Harness source compiles and preserves its manifest contract.";try{if(n.kind==="observed_recovery"){let c=r.evidence.filter(a=>a.kind==="recovery");if(c.length===0)throw new Error("Observed-recovery validation requires recorded recovery evidence.");u=`Validated ${c.length} immutable recovery evidence reference(s) before candidate advancement.`}else if(n.kind==="prompt"){let c=r.edits.filter(a=>a.route==="prompt"&&a.target!=="harness.json");if(c.length===0)throw new Error("Prompt validation requires an instruction-file edit.");for(let a of c){let k=l.get(a.target);if(a.operation==="delete"){if(k)throw new Error(`Deleted instruction ${a.target} remains declared.`)}else if(k?.kind!=="instruction")throw new Error(`Instruction ${a.target} is not declared in the candidate Harness.`);if(a.content!==null&&/\b(?:api[_-]?key|access[_-]?token|password|secret)\s*[:=]/i.test(a.content))throw new Error(`Instruction ${a.target} appears to contain credential material.`)}u=`Validated ${c.length} textual instruction edit(s) and compiled candidate ${s.harnessRelease.id}.`}else if(n.kind==="skill"){let c=r.edits.filter(a=>a.route==="skill"&&a.target!=="harness.json");if(c.length===0)throw new Error("Skill validation requires a declared Skill-file edit.");for(let a of c){let k=l.get(a.target);if(a.operation==="delete"){if(k)throw new Error(`Deleted Skill ${a.target} remains declared.`);continue}if(k?.kind!=="skill")throw new Error(`Skill ${a.target} is not declared in the candidate Harness.`);let S=w.get(a.target)?.content;if(!S)throw new Error(`Skill edit ${a.target} has no content.`);let R=W(S);if(!R.name||!R.description||R.messages.length>0)throw new Error(`Skill ${a.target} is invalid: ${R.messages.join(" ")}`)}u=`Validated ${c.length} Skill edit(s), Skill frontmatter, and compiled candidate ${s.harnessRelease.id}.`}else if(n.kind==="dependency"){let c=s.manifest.files.find(a=>a.kind==="dependency_lock");if(!c)throw new Error("Candidate Harness has no dependency lock.");JSON.parse(await p.readFile(T(d,c.path),"utf8")),u=`Validated dependency lock ${c.path} and compiled candidate ${s.harnessRelease.id}.`}else if(n.kind==="schema")x.parse(r),u=`Validated proposal, manifest, and candidate release schemas for ${s.harnessRelease.id}.`;else if(n.kind==="package"){let c=r.edits.filter(a=>a.route==="agent"&&a.operation!=="delete"&&a.target!=="harness.json");for(let a of c){if(!a.content)throw new Error(`Agent edit ${a.target} has no source.`);M(a.content,{mode:"transform",sourceUrl:a.target,sourceMap:!1})}u=c.length>0?`Syntax-checked ${c.length} Agent source edit(s) and compiled candidate ${s.harnessRelease.id}.`:`Compiled candidate package ${s.harnessRelease.id} and preserved the Harness source manifest contract.`}else if(n.kind==="component_activation"){let c=r.edits.filter(a=>a.target!=="harness.json");if(c.length===0)throw new Error("Component activation requires a concrete Harness component edit.");if(r.route==="agent"){if(c.filter(k=>k.operation!=="delete").length>0)throw new Error("Desktop Work does not compile or execute released Agent source; use an active instruction or standalone Skill, or add an Agent executor before release.");u=`Confirmed ${c.length} deleted Agent component(s) were inactive in Desktop Work.`}else{if(!["prompt","skill"].includes(r.route))throw new Error(`Desktop Work has no activation policy for ${r.route} proposals.`);let a=r.route==="prompt"?"instruction":"skill";for(let k of c){let S=f.components.find(R=>R.path===k.target&&R.kind===a);if(k.operation==="delete"?S:!S)throw new Error(`${a} ${k.target} is not reflected in the candidate Desktop Work runtime surface.`)}if(h.contentHash===f.contentHash)throw new Error("The candidate does not change the effective Desktop Work runtime surface.");u=`Activated ${c.length} ${a} edit(s) in the candidate Desktop Work runtime surface.`}}else n.kind==="business_formula"?(y="blocked",u="Business or financial logic is retained for review until an approved deterministic fixture supplies inputs and expected outputs."):n.kind==="targeted_evaluation"?(y="blocked",u="This sensitive change requires an explicit authority-preserving targeted Evaluation before release."):n.kind==="file_render"?(y="blocked",u="File-render validation requires an exact produced artifact reference; no artifact was attached to this Harness-source proposal."):(y="blocked",u=`Local targeted validation does not yet own ${n.kind}; it requires its dedicated validator.`)}catch(c){y="failed",u=c instanceof Error?c.message:String(c)}return I({schemaVersion:"openpond.harnessTargetedValidationReceipt.v1",id:`validation-${r.id}-${n.id}`,proposal:{id:r.id,contentHash:r.contentHash},validationId:n.id,kind:n.kind,status:y,summary:u,evidenceRefs:r.evidence,createdAt:i,metadata:{candidateHarnessRelease:{id:s.harnessRelease.id,contentHash:s.harnessRelease.contentHash},sourceRevision:s.sourceRevision,...n.kind==="component_activation"?{targetRuntime:"desktop_work",beforeEffectiveRuntimeHash:h.contentHash,afterEffectiveRuntimeHash:f.contentHash,activatedComponentRefs:f.components,inactiveAgentRefs:f.inactiveAgents}:{}}})}))}catch(s){let l=s instanceof Error?s.message:String(s);return r.validationPlan.map(w=>I({schemaVersion:"openpond.harnessTargetedValidationReceipt.v1",id:`validation-${r.id}-${w.id}`,proposal:{id:r.id,contentHash:r.contentHash},validationId:w.id,kind:w.kind,status:"failed",summary:l,evidenceRefs:r.evidence,createdAt:i,metadata:{}}))}finally{await p.rm(d,{recursive:!0,force:!0}).catch(()=>{})}}v(Y,"validateLocalHarnessRefinerProposal");function O(e){let r=[...e.agentSnapshot.instructions.map(o=>({kind:"instruction",path:o.path,contentHash:o.contentHash})),...e.agentSnapshot.skills.map(o=>({kind:"skill",path:o.path,contentHash:o.contentHash}))].sort((o,d)=>o.path.localeCompare(d.path)),t=e.agentSnapshot.agents.map(o=>({path:o.path,contentHash:o.contentHash})).sort((o,d)=>o.path.localeCompare(d.path));return{contentHash:$({schemaVersion:"openpond.desktopWorkHarnessSurface.v1",components:r}),components:r,inactiveAgents:t}}v(O,"desktopWorkRuntimeSurface");function q(e){let r=(e.now??(()=>new Date().toISOString()))(),t=e.proposal.edits.find(o=>o.route==="memory");return e.proposal.validationPlan.map(o=>{let d="passed",i="Memory candidate is bounded, scoped, and contains no obvious credential material.";try{if(o.kind==="observed_recovery"){if(!e.proposal.evidence.some(s=>s.kind==="recovery"))throw new Error("Observed-recovery validation requires recorded recovery evidence.");i="Memory proposal is grounded in immutable recovery evidence."}else if(o.kind==="memory"){if(!t||!/^memory\/[a-z0-9][a-z0-9-]{0,119}$/.test(t.target))throw new Error("Memory proposal requires one safe memory/<slug> target.");let s=e.proposal.metadata.expectedMemory;if(!s||typeof s!="object"||Array.isArray(s))throw new Error("Memory proposal requires an expected revision snapshot.");let l=s;if(l.key!==C(t.target))throw new Error("Memory proposal expected revision targets a different key.");if(l.revision!==null&&(!Number.isInteger(l.revision)||Number(l.revision)<1))throw new Error("Memory proposal expected revision is invalid.");if(l.contentHash!==null&&typeof l.contentHash!="string")throw new Error("Memory proposal expected content hash is invalid.");if(l.status!==null&&l.status!=="active"&&l.status!=="deleted")throw new Error("Memory proposal expected status is invalid.");if(l.revision===null&&(l.contentHash!==null||l.status!==null))throw new Error("New memory snapshot must not claim existing content or status.");if(l.revision!==null&&(typeof l.contentHash!="string"||l.status===null))throw new Error("Existing memory snapshot requires its content hash and status.");if(t.operation==="delete"&&l.status!=="active")throw new Error("Memory deletion requires an active expected revision.");if(t.operation!=="delete"){if(!t.content?.trim()||t.content.length>24e3)throw new Error("Memory content must contain 1-24,000 characters.");if(/\b(?:api[_-]?key|access[_-]?token|password|secret)\s*[:=]/i.test(t.content))throw new Error("Memory content appears to contain credential material.")}}else d="blocked",i=`Memory validation cannot satisfy ${o.kind}.`}catch(s){d="failed",i=s instanceof Error?s.message:String(s)}return I({schemaVersion:"openpond.harnessTargetedValidationReceipt.v1",id:`validation-${e.proposal.id}-${o.id}`,proposal:{id:e.proposal.id,contentHash:e.proposal.contentHash},validationId:o.id,kind:o.kind,status:d,summary:i,evidenceRefs:e.proposal.evidence,createdAt:r,metadata:{externalState:"harness_memory"}})})}v(q,"validateMemoryProposal");function C(e){let r=e.replaceAll("\\","/"),t=/^memory\/([a-z0-9][a-z0-9-]{0,119})$/.exec(r);if(!t)throw new Error(`Invalid Harness memory target: ${e}.`);return t[1]}v(C,"memoryKeyFromTarget");async function Z(e){let r=await e.store.getHarnessWorkspace(e.workspaceId);if(!r)throw new Error(`Harness workspace ${e.workspaceId} does not exist.`);let t=E(e.storeDir,r.id),o=m.join(t.root,"source-swap.json"),d=await p.readFile(o,"utf8").then(JSON.parse).catch(l=>{if(l.code==="ENOENT")return null;throw l});if(!d)return"none";let i=await g({workspaceId:r.id,sourceDir:t.source});if(r.sourceRevision===d.nextSourceRevision&&i.sourceRevision===d.nextSourceRevision)return await p.rm(d.backupSource,{recursive:!0,force:!0}),await p.rm(o,{force:!0}),"completed";let s=await g({workspaceId:r.id,sourceDir:d.backupSource});if(r.sourceRevision===d.previousSourceRevision&&s.sourceRevision===d.previousSourceRevision)return await b(t.source,d.backupSource),await p.rm(o,{force:!0}),"restored";throw new Error("Harness source-swap recovery cannot reconcile filesystem and workspace revisions.")}v(Z,"recoverLocalHarnessSourceSwap");async function V(e,r){for(let t of r.edits){let o=T(e,t.target);if(t.operation==="delete"){await p.rm(o,{force:!1});continue}if(t.content===null)throw new Error(`Refiner edit ${t.id} has no content.`);if(t.operation==="create")await p.mkdir(m.dirname(o),{recursive:!0}),await p.writeFile(o,t.content,{flag:"wx"});else{let d=await p.lstat(o);if(!d.isFile()||d.isSymbolicLink())throw new Error(`Refiner update target must be a regular file: ${t.target}`);await p.writeFile(o,t.content,{flag:"w"})}}}v(V,"applyOverlayEdits");function T(e,r){let t=m.resolve(e),o=m.resolve(t,...r.replaceAll("\\","/").split("/")),d=m.relative(t,o);if(!d||d.startsWith("..")||m.isAbsolute(d))throw new Error(`Refiner edit target escapes the Harness source: ${r}`);return o}v(T,"containedPath");async function _(e,r){let t=`${e}.${H()}.tmp`;await p.writeFile(t,`${JSON.stringify(r,null,2)}
|
|
2
|
+
import{g as E,m as g,n as j}from"./chunk-LK2K3SPM.js";import{b as W}from"./chunk-L3KS6MOV.js";import{k as P}from"./chunk-3YXYBYWK.js";import{e as A,f as x,g as D,l as I}from"./chunk-MPNJ2BB4.js";import{n as $}from"./chunk-VVNV4NNW.js";import{a as v}from"./chunk-FTQLQJQV.js";import{randomUUID as H}from"node:crypto";import{promises as p}from"node:fs";import{stripTypeScriptTypes as M}from"node:module";import m from"node:path";async function Q(e){let r=A.parse(e.overlay),t=x.parse(e.proposal),o=e.validations.map(h=>D.parse(h));if((t.route==="agent"?t.edits.filter(h=>h.target!=="harness.json"&&h.operation!=="delete"):[]).length>0){let h=t.validationPlan.find(n=>n.kind==="component_activation"&&n.required);if(!h)throw new Error("Desktop Work Agent proposals require component-activation validation before review.");if(o.find(n=>n.validationId===h.id)?.status==="passed")throw new Error("Desktop Work cannot accept a passed Agent activation receipt until an Agent source executor exists.")}if(t.overlay.id!==r.id||t.overlay.revision!==r.revision||t.overlay.contentHash!==r.contentHash)throw new Error("Refiner proposal is not bound to the supplied run overlay.");if(r.status!=="frozen")throw new Error("Only a frozen run overlay can advance a Harness workspace.");let i=await e.store.getHarnessWorkspace(t.expectedWorkspace.workspaceId);if(!i)throw new Error(`Harness workspace ${t.expectedWorkspace.workspaceId} does not exist.`);if(i.location!==e.store.harnessStoragePlacement)throw new Error("Refiner workspace does not match the admitted storage placement.");let s=E(e.storeDir,i.id),l=await g({workspaceId:i.id,sourceDir:s.source});if(l.sourceRevision!==i.sourceRevision)throw new Error(`Harness source is ${l.sourceRevision}; workspace expects ${i.sourceRevision}. Record or revert the source change before refinement.`);let w=m.join(s.root,`.source-candidate-${H()}`);await p.cp(s.source,w,{recursive:!0,force:!1,errorOnExist:!0,verbatimSymlinks:!1});try{await V(w,t);let h=await g({workspaceId:i.id,sourceDir:w}),f=(e.now??(()=>new Date().toISOString()))(),n=await j({storeDir:e.storeDir,workspaceId:i.id,compiled:h,createdAt:f});await e.store.saveHarnessReleaseRecord(n),await e.store.saveHarnessImprovementArtifact(i.id,"run_overlay",r),await e.store.saveHarnessImprovementArtifact(i.id,"proposal",t);for(let a of o)await e.store.saveHarnessImprovementArtifact(i.id,"targeted_validation",a);if(!P({workspace:i,proposal:t}).eligible&&!e.reviewAuthority)return e.store.advanceHarnessWorkspaceAtomically({receiptId:e.receiptId,workspaceId:i.id,proposal:t,validations:o,nextRelease:{id:n.harnessRelease.id,contentHash:n.harnessRelease.contentHash},nextSourceRevision:n.sourceRevision,now:f});let u=m.join(s.root,`.source-backup-${H()}`),c=m.join(s.root,"source-swap.json");await _(c,{schemaVersion:"openpond.localHarnessSourceSwap.v1",workspaceId:i.id,expectedWorkspaceRevision:i.revision,previousSourceRevision:i.sourceRevision,nextSourceRevision:n.sourceRevision,backupSource:u,candidateSource:w,createdAt:f}),await p.rename(s.source,u),await p.rename(w,s.source);try{let a=e.reviewAuthority?await e.store.advanceReviewedHarnessWorkspaceAtomically({receiptId:e.receiptId,workspaceId:i.id,proposal:t,validations:o,nextRelease:{id:n.harnessRelease.id,contentHash:n.harnessRelease.contentHash},nextSourceRevision:n.sourceRevision,reviewer:e.reviewAuthority.reviewer,now:f}):await e.store.advanceHarnessWorkspaceAtomically({receiptId:e.receiptId,workspaceId:i.id,proposal:t,validations:o,nextRelease:{id:n.harnessRelease.id,contentHash:n.harnessRelease.contentHash},nextSourceRevision:n.sourceRevision,now:f});return a.receipt.decision!=="advanced"?await b(s.source,u):await p.rm(u,{recursive:!0,force:!0}),await p.rm(c,{force:!0}),a}catch(a){throw await b(s.source,u).catch(()=>{}),await p.rm(c,{force:!0}).catch(()=>{}),a}}finally{await p.rm(w,{recursive:!0,force:!0}).catch(()=>{})}}v(Q,"applyLocalHarnessRefinerProposal");async function X(e){let r=await e.store.getHarnessWorkspace(e.workspaceId);if(!r||r.location!==e.store.harnessStoragePlacement)throw new Error(`Local Harness workspace ${e.workspaceId} does not exist.`);if(r.currentChannel.release?.id!==e.rollbackOf.id||r.currentChannel.release.contentHash!==e.rollbackOf.contentHash)throw new Error("Harness rollback source is no longer the current release.");let t=await e.store.getHarnessReleaseRecord(e.targetRelease.contentHash);if(!t||t.workspaceId!==r.id||t.harnessRelease.id!==e.targetRelease.id)throw new Error("Harness rollback target is unavailable in this workspace.");let o=E(e.storeDir,r.id);if((await g({workspaceId:r.id,sourceDir:o.source})).sourceRevision!==r.sourceRevision)throw new Error("Harness source changed before rollback.");let i=m.join(o.root,`.source-rollback-${H()}`);await p.cp(m.join(t.bundlePath,"source"),i,{recursive:!0,force:!1,errorOnExist:!0,verbatimSymlinks:!1});try{if((await g({workspaceId:r.id,sourceDir:i})).sourceRevision!==t.sourceRevision)throw new Error("Harness rollback bundle does not reproduce its registered source revision.");let l=(e.now??(()=>new Date().toISOString()))(),w=m.join(o.root,`.source-backup-${H()}`),h=m.join(o.root,"source-swap.json");await _(h,{schemaVersion:"openpond.localHarnessSourceSwap.v1",workspaceId:r.id,expectedWorkspaceRevision:r.revision,previousSourceRevision:r.sourceRevision,nextSourceRevision:t.sourceRevision,backupSource:w,candidateSource:i,createdAt:l}),await p.rename(o.source,w),await p.rename(i,o.source);try{let f=await e.store.rollbackHarnessWorkspaceAtomically({receiptId:e.receiptId,workspaceId:r.id,expectedWorkspaceRevision:r.revision,expectedChannelRevision:r.currentChannel.revision,targetRelease:e.targetRelease,targetSourceRevision:t.sourceRevision,rollbackOf:e.rollbackOf,now:l});return f.receipt.decision!=="rolled_back"?await b(o.source,w):await p.rm(w,{recursive:!0,force:!0}),await p.rm(h,{force:!0}),f}catch(f){throw await b(o.source,w).catch(()=>{}),await p.rm(h,{force:!0}).catch(()=>{}),f}}finally{await p.rm(i,{recursive:!0,force:!0}).catch(()=>{})}}v(X,"rollbackLocalHarnessWorkspaceRelease");async function Y(e){let r=x.parse(e.proposal);if(r.expectedWorkspace.workspaceId!==e.workspace.id)throw new Error("Refiner proposal targets a different Harness workspace.");if(r.route==="memory")return q({proposal:r,now:e.now});let t=E(e.storeDir,e.workspace.id),o=await g({workspaceId:e.workspace.id,sourceDir:t.source});if(o.sourceRevision!==r.expectedWorkspace.sourceRevision)throw new Error("Refiner proposal source revision no longer matches the Local Harness workspace.");let d=m.join(t.root,`.validation-candidate-${H()}`);await p.cp(t.source,d,{recursive:!0,force:!1,errorOnExist:!0,verbatimSymlinks:!1});let i=(e.now??(()=>new Date().toISOString()))();try{await V(d,r);let s=await g({workspaceId:e.workspace.id,sourceDir:d}),l=new Map(s.manifest.files.map(n=>[n.path,n])),w=new Map(r.edits.map(n=>[n.target,n])),h=O(o),f=O(s);return Promise.all(r.validationPlan.map(async n=>{let y="passed",u="The candidate Harness source compiles and preserves its manifest contract.";try{if(n.kind==="observed_recovery"){let c=r.evidence.filter(a=>a.kind==="recovery");if(c.length===0)throw new Error("Observed-recovery validation requires recorded recovery evidence.");u=`Validated ${c.length} immutable recovery evidence reference(s) before candidate advancement.`}else if(n.kind==="prompt"){let c=r.edits.filter(a=>a.route==="prompt"&&a.target!=="harness.json");if(c.length===0)throw new Error("Prompt validation requires an instruction-file edit.");for(let a of c){let k=l.get(a.target);if(a.operation==="delete"){if(k)throw new Error(`Deleted instruction ${a.target} remains declared.`)}else if(k?.kind!=="instruction")throw new Error(`Instruction ${a.target} is not declared in the candidate Harness.`);if(a.content!==null&&/\b(?:api[_-]?key|access[_-]?token|password|secret)\s*[:=]/i.test(a.content))throw new Error(`Instruction ${a.target} appears to contain credential material.`)}u=`Validated ${c.length} textual instruction edit(s) and compiled candidate ${s.harnessRelease.id}.`}else if(n.kind==="skill"){let c=r.edits.filter(a=>a.route==="skill"&&a.target!=="harness.json");if(c.length===0)throw new Error("Skill validation requires a declared Skill-file edit.");for(let a of c){let k=l.get(a.target);if(a.operation==="delete"){if(k)throw new Error(`Deleted Skill ${a.target} remains declared.`);continue}if(k?.kind!=="skill")throw new Error(`Skill ${a.target} is not declared in the candidate Harness.`);let S=w.get(a.target)?.content;if(!S)throw new Error(`Skill edit ${a.target} has no content.`);let R=W(S);if(!R.name||!R.description||R.messages.length>0)throw new Error(`Skill ${a.target} is invalid: ${R.messages.join(" ")}`)}u=`Validated ${c.length} Skill edit(s), Skill frontmatter, and compiled candidate ${s.harnessRelease.id}.`}else if(n.kind==="dependency"){let c=s.manifest.files.find(a=>a.kind==="dependency_lock");if(!c)throw new Error("Candidate Harness has no dependency lock.");JSON.parse(await p.readFile(T(d,c.path),"utf8")),u=`Validated dependency lock ${c.path} and compiled candidate ${s.harnessRelease.id}.`}else if(n.kind==="schema")x.parse(r),u=`Validated proposal, manifest, and candidate release schemas for ${s.harnessRelease.id}.`;else if(n.kind==="package"){let c=r.edits.filter(a=>a.route==="agent"&&a.operation!=="delete"&&a.target!=="harness.json");for(let a of c){if(!a.content)throw new Error(`Agent edit ${a.target} has no source.`);M(a.content,{mode:"transform",sourceUrl:a.target,sourceMap:!1})}u=c.length>0?`Syntax-checked ${c.length} Agent source edit(s) and compiled candidate ${s.harnessRelease.id}.`:`Compiled candidate package ${s.harnessRelease.id} and preserved the Harness source manifest contract.`}else if(n.kind==="component_activation"){let c=r.edits.filter(a=>a.target!=="harness.json");if(c.length===0)throw new Error("Component activation requires a concrete Harness component edit.");if(r.route==="agent"){if(c.filter(k=>k.operation!=="delete").length>0)throw new Error("Desktop Work does not compile or execute released Agent source; use an active instruction or standalone Skill, or add an Agent executor before release.");u=`Confirmed ${c.length} deleted Agent component(s) were inactive in Desktop Work.`}else{if(!["prompt","skill"].includes(r.route))throw new Error(`Desktop Work has no activation policy for ${r.route} proposals.`);let a=r.route==="prompt"?"instruction":"skill";for(let k of c){let S=f.components.find(R=>R.path===k.target&&R.kind===a);if(k.operation==="delete"?S:!S)throw new Error(`${a} ${k.target} is not reflected in the candidate Desktop Work runtime surface.`)}if(h.contentHash===f.contentHash)throw new Error("The candidate does not change the effective Desktop Work runtime surface.");u=`Activated ${c.length} ${a} edit(s) in the candidate Desktop Work runtime surface.`}}else n.kind==="business_formula"?(y="blocked",u="Business or financial logic is retained for review until an approved deterministic fixture supplies inputs and expected outputs."):n.kind==="targeted_evaluation"?(y="blocked",u="This sensitive change requires an explicit authority-preserving targeted Evaluation before release."):n.kind==="file_render"?(y="blocked",u="File-render validation requires an exact produced artifact reference; no artifact was attached to this Harness-source proposal."):(y="blocked",u=`Local targeted validation does not yet own ${n.kind}; it requires its dedicated validator.`)}catch(c){y="failed",u=c instanceof Error?c.message:String(c)}return I({schemaVersion:"openpond.harnessTargetedValidationReceipt.v1",id:`validation-${r.id}-${n.id}`,proposal:{id:r.id,contentHash:r.contentHash},validationId:n.id,kind:n.kind,status:y,summary:u,evidenceRefs:r.evidence,createdAt:i,metadata:{candidateHarnessRelease:{id:s.harnessRelease.id,contentHash:s.harnessRelease.contentHash},sourceRevision:s.sourceRevision,...n.kind==="component_activation"?{targetRuntime:"desktop_work",beforeEffectiveRuntimeHash:h.contentHash,afterEffectiveRuntimeHash:f.contentHash,activatedComponentRefs:f.components,inactiveAgentRefs:f.inactiveAgents}:{}}})}))}catch(s){let l=s instanceof Error?s.message:String(s);return r.validationPlan.map(w=>I({schemaVersion:"openpond.harnessTargetedValidationReceipt.v1",id:`validation-${r.id}-${w.id}`,proposal:{id:r.id,contentHash:r.contentHash},validationId:w.id,kind:w.kind,status:"failed",summary:l,evidenceRefs:r.evidence,createdAt:i,metadata:{}}))}finally{await p.rm(d,{recursive:!0,force:!0}).catch(()=>{})}}v(Y,"validateLocalHarnessRefinerProposal");function O(e){let r=[...e.agentSnapshot.instructions.map(o=>({kind:"instruction",path:o.path,contentHash:o.contentHash})),...e.agentSnapshot.skills.map(o=>({kind:"skill",path:o.path,contentHash:o.contentHash}))].sort((o,d)=>o.path.localeCompare(d.path)),t=e.agentSnapshot.agents.map(o=>({path:o.path,contentHash:o.contentHash})).sort((o,d)=>o.path.localeCompare(d.path));return{contentHash:$({schemaVersion:"openpond.desktopWorkHarnessSurface.v1",components:r}),components:r,inactiveAgents:t}}v(O,"desktopWorkRuntimeSurface");function q(e){let r=(e.now??(()=>new Date().toISOString()))(),t=e.proposal.edits.find(o=>o.route==="memory");return e.proposal.validationPlan.map(o=>{let d="passed",i="Memory candidate is bounded, scoped, and contains no obvious credential material.";try{if(o.kind==="observed_recovery"){if(!e.proposal.evidence.some(s=>s.kind==="recovery"))throw new Error("Observed-recovery validation requires recorded recovery evidence.");i="Memory proposal is grounded in immutable recovery evidence."}else if(o.kind==="memory"){if(!t||!/^memory\/[a-z0-9][a-z0-9-]{0,119}$/.test(t.target))throw new Error("Memory proposal requires one safe memory/<slug> target.");let s=e.proposal.metadata.expectedMemory;if(!s||typeof s!="object"||Array.isArray(s))throw new Error("Memory proposal requires an expected revision snapshot.");let l=s;if(l.key!==C(t.target))throw new Error("Memory proposal expected revision targets a different key.");if(l.revision!==null&&(!Number.isInteger(l.revision)||Number(l.revision)<1))throw new Error("Memory proposal expected revision is invalid.");if(l.contentHash!==null&&typeof l.contentHash!="string")throw new Error("Memory proposal expected content hash is invalid.");if(l.status!==null&&l.status!=="active"&&l.status!=="deleted")throw new Error("Memory proposal expected status is invalid.");if(l.revision===null&&(l.contentHash!==null||l.status!==null))throw new Error("New memory snapshot must not claim existing content or status.");if(l.revision!==null&&(typeof l.contentHash!="string"||l.status===null))throw new Error("Existing memory snapshot requires its content hash and status.");if(t.operation==="delete"&&l.status!=="active")throw new Error("Memory deletion requires an active expected revision.");if(t.operation!=="delete"){if(!t.content?.trim()||t.content.length>24e3)throw new Error("Memory content must contain 1-24,000 characters.");if(/\b(?:api[_-]?key|access[_-]?token|password|secret)\s*[:=]/i.test(t.content))throw new Error("Memory content appears to contain credential material.")}}else d="blocked",i=`Memory validation cannot satisfy ${o.kind}.`}catch(s){d="failed",i=s instanceof Error?s.message:String(s)}return I({schemaVersion:"openpond.harnessTargetedValidationReceipt.v1",id:`validation-${e.proposal.id}-${o.id}`,proposal:{id:e.proposal.id,contentHash:e.proposal.contentHash},validationId:o.id,kind:o.kind,status:d,summary:i,evidenceRefs:e.proposal.evidence,createdAt:r,metadata:{externalState:"harness_memory"}})})}v(q,"validateMemoryProposal");function C(e){let r=e.replaceAll("\\","/"),t=/^memory\/([a-z0-9][a-z0-9-]{0,119})$/.exec(r);if(!t)throw new Error(`Invalid Harness memory target: ${e}.`);return t[1]}v(C,"memoryKeyFromTarget");async function Z(e){let r=await e.store.getHarnessWorkspace(e.workspaceId);if(!r)throw new Error(`Harness workspace ${e.workspaceId} does not exist.`);let t=E(e.storeDir,r.id),o=m.join(t.root,"source-swap.json"),d=await p.readFile(o,"utf8").then(JSON.parse).catch(l=>{if(l.code==="ENOENT")return null;throw l});if(!d)return"none";let i=await g({workspaceId:r.id,sourceDir:t.source});if(r.sourceRevision===d.nextSourceRevision&&i.sourceRevision===d.nextSourceRevision)return await p.rm(d.backupSource,{recursive:!0,force:!0}),await p.rm(o,{force:!0}),"completed";let s=await g({workspaceId:r.id,sourceDir:d.backupSource});if(r.sourceRevision===d.previousSourceRevision&&s.sourceRevision===d.previousSourceRevision)return await b(t.source,d.backupSource),await p.rm(o,{force:!0}),"restored";throw new Error("Harness source-swap recovery cannot reconcile filesystem and workspace revisions.")}v(Z,"recoverLocalHarnessSourceSwap");async function V(e,r){for(let t of r.edits){let o=T(e,t.target);if(t.operation==="delete"){await p.rm(o,{force:!1});continue}if(t.content===null)throw new Error(`Refiner edit ${t.id} has no content.`);if(t.operation==="create")await p.mkdir(m.dirname(o),{recursive:!0}),await p.writeFile(o,t.content,{flag:"wx"});else{let d=await p.lstat(o);if(!d.isFile()||d.isSymbolicLink())throw new Error(`Refiner update target must be a regular file: ${t.target}`);await p.writeFile(o,t.content,{flag:"w"})}}}v(V,"applyOverlayEdits");function T(e,r){let t=m.resolve(e),o=m.resolve(t,...r.replaceAll("\\","/").split("/")),d=m.relative(t,o);if(!d||d.startsWith("..")||m.isAbsolute(d))throw new Error(`Refiner edit target escapes the Harness source: ${r}`);return o}v(T,"containedPath");async function _(e,r){let t=`${e}.${H()}.tmp`;await p.writeFile(t,`${JSON.stringify(r,null,2)}
|
|
3
3
|
`,{flag:"wx"}),await p.rename(t,e)}v(_,"writeSwapJournal");async function b(e,r){await p.rm(e,{recursive:!0,force:!0}),await p.rename(r,e)}v(b,"restoreSource");export{Q as a,X as b,Y as c,Z as d};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
-
import{k as Y}from"./chunk-IWK3RTLR.js";import{g as W,h as U}from"./chunk-N5GPINVP.js";import{Jb as K,Lb as V,Mb as N,W as v,Y as w,ia as q}from"./chunk-PGO4FRHU.js";import{V as z,W as B,Xb as j,f as _,k as M,l as $,la as G,ma as D,ta as F,ua as L}from"./chunk-ABF3W2MO.js";import{d as P}from"./chunk-4M3YW3EQ.js";import{e as E,i as I}from"./chunk-NJLULBTM.js";import{i as x,l as C,n as u}from"./chunk-VVNV4NNW.js";import{a as c}from"./chunk-FTQLQJQV.js";import{constants as b}from"node:fs";import{lstat as oe,open as ne,readdir as ie}from"node:fs/promises";import S from"node:path";function pe(e){let t=N(e.taskset),{agentSnapshot:a,harnessRelease:s}=e.releasedHarness?{agentSnapshot:E.parse(e.releasedHarness.agentSnapshot),harnessRelease:I.parse(e.releasedHarness.harnessRelease)}:Q(e.taskset,e.profile);if(s.agentSnapshot.id!==a.id||s.agentSnapshot.contentHash!==a.contentHash)throw new Error("Released Harness does not bind the supplied Agent snapshot.");let d=V(e.taskset),n=e.taskset.tasks.length?e.taskset.tasks:e.selectedTask?[e.selectedTask]:[];if(!n.length)throw new Error("A portable Taskset release requires at least one resolved task.");let{environmentRelease:i,verifierSetRelease:o,tasksetRelease:l}=K({taskset:e.taskset,selectedTasks:n,adapterId:e.adapterId??A(e.taskset),admittedTasksetRelease:e.tasksetRelease,rewardExecution:e.rewardExecution}),R=e.now??(()=>new Date().toISOString()),f=M({schemaVersion:"openpond.runManifest.v1",id:`run-manifest-${u([s.contentHash,l.contentHash,e.model]).slice(0,24)}`,harnessRelease:{id:s.id,contentHash:s.contentHash},tasksetRelease:{id:l.id,contentHash:l.contentHash},model:{provider:e.model.providerId,model:e.model.modelId,revision:null,artifactHash:null,tokenizerRevision:null,chatTemplateHash:null},runtimeTarget:{adapterId:e.adapterId??A(e.taskset),placement:"local",runtimeVersion:"desktop-v1",capabilityReceipt:u({environment:d,tools:t,capabilities:e.taskset.capabilities})},limits:{maxTurns:128,timeoutMs:e.taskset.environment.defaultTimeoutMs,maxOutputBytes:25e7,maximumSpendUsd:null},approval:null,createdAt:R(),metadata:{sourceTasksetId:e.taskset.id,sourceTasksetRevision:e.taskset.revision,reasoningEffort:e.reasoningEffort??null}});return{agentSnapshot:a,harnessRelease:s,environmentRelease:i,verifierSetRelease:o,tasksetRelease:l,runManifest:f}}c(pe,"compileDesktopHarnessContext");function Q(e,t){let a=e.profileRelease?{id:e.profileRelease.id,contentHash:k(e.profileRelease.contentHash)}:t?.git?.head?{id:`source-${h(t.git.head)}`,contentHash:k(t.git.head)}:null;return Y({sourceRelease:a,profileHead:t?.git?.head??null,skills:se(t),agents:re(t)})}c(Q,"compileTemporaryProfileHarness");function ee(e){let t=e.artifacts.map(T),a=e.artifacts.find(n=>n.kind==="environment_state")??e.artifacts.find(n=>n.kind==="runtime_trace")??e.artifacts.find(n=>n.kind==="raw_model_response"),s=J(e.attempt,e.grade),d=e.grade.components.map(n=>({id:`grader-${h(n.graderId)}-${e.grade.id}`,contentHash:u(n),mediaType:"application/vnd.openpond.grader-evidence+json",sizeBytes:Buffer.byteLength(C(n))}));return _.parse($({schemaVersion:"openpond.attemptReceipt.v1",id:`receipt-${u([e.manifest.contentHash,e.attempt.id,e.grade.id]).slice(0,24)}`,runManifest:{id:e.manifest.id,contentHash:e.manifest.contentHash},taskId:e.attempt.taskId,seed:String(e.attempt.seed),terminal:!["infrastructure_failure","timeout","cancelled"].includes(s??""),failureClass:s,outputHash:e.attempt.infrastructureError?null:u(e.attempt.output),traceHash:a?k(a.sha256):u({attemptId:e.attempt.id,output:e.attempt.output,runtimeEventRefs:e.attempt.runtimeEventRefs,artifactRefs:e.attempt.artifactRefs,metadata:e.attempt.metadata}),artifactRefs:t,graderEvidenceRefs:d,startedAt:e.attempt.startedAt,completedAt:e.attempt.completedAt,latencyMs:e.attempt.latencyMs,costUsd:e.attempt.costUsd,legacyAttemptRef:e.attempt.id,metadata:{legacyGradeRef:e.grade.id,rewardEligible:e.grade.rewardEligible,score:e.grade.score,passed:e.grade.passed,usage:e.attempt.metadata.usage??[]}}))}c(ee,"projectDesktopAttemptReceipt");function ue(e){let t=ee({manifest:e.context.runManifest,attempt:e.attempt,grade:e.grade,artifacts:e.artifacts}),a=e.context.tasksetRelease.tasks.find(r=>r.id===e.attempt.taskId);if(!a)throw new Error(`Task ${e.attempt.taskId} is absent from the admitted Taskset Release.`);let s=a.requiredOutputs??[],d=e.artifacts.filter(r=>r.kind==="output_artifact").map(r=>({path:typeof r.metadata.requiredOutputPath=="string"?r.metadata.requiredOutputPath:r.path,artifact:T(r),detectedMediaType:r.mediaType??null,status:"collected",parseStatus:X(r.metadata.parseStatus),schemaStatus:X(r.metadata.schemaStatus),evidenceRefs:[T(r)],metadata:{sourceArtifactId:r.id}})),n=F({id:`artifact-manifest-${t.id}`,attemptRef:{id:t.id,contentHash:t.contentHash},requiredOutputs:s,collectedArtifacts:d,createdAt:e.attempt.completedAt,metadata:{legacyAttemptRef:e.attempt.id}}),i=e.grade.components.map((r,O)=>te({component:r,grader:e.context.verifierSetRelease.graders.find(g=>g.id===r.graderId),evidenceRef:t.graderEvidenceRefs[O]??null,gradeScored:e.grade.score!==null,boundResult:e.grade.rewardComposition?.results.find(g=>g.graderId===r.graderId)})),o=L({requiredOutputs:s,manifest:n}),l=ae(e.attempt,e.grade),R=o.some(r=>r.status==="unscorable"&&r.failureOwner==="collector"),f=o.some(r=>r.status==="scored"&&!r.passed),p=l.outcomeClass==="completed"&&R?{outcomeClass:"collector_failure",failureOwner:"collector"}:l.outcomeClass==="completed"&&f?{outcomeClass:"incomplete_output",failureOwner:"policy"}:l,m=D({id:`reward-${u([t.contentHash,e.context.verifierSetRelease.contentHash,n.contentHash,e.grade.id]).slice(0,24)}`,attemptRef:{id:t.id,contentHash:t.contentHash},verifierSet:e.context.verifierSetRelease,artifactManifest:n,...p,components:[...i,...o],createdAt:e.grade.createdAt,metadata:{legacyGradeRef:e.grade.id,legacyAttemptRef:e.attempt.id,...e.grade.rewardComposition?{rewardComposition:e.grade.rewardComposition}:{}}});return{attemptReceipt:t,artifactManifest:n,rewardReceipt:m}}c(ue,"projectDesktopCanonicalReceipts");function Re(e){let t=e.artifacts.find(n=>n.kind==="runtime_trace")??e.artifacts.find(n=>n.kind==="raw_model_response"),a=t?T(t):{id:`trace-${e.canonical.attemptReceipt.id}`,contentHash:e.canonical.attemptReceipt.traceHash,mediaType:"application/vnd.openpond.attempt-trace+json",sizeBytes:null},s=e.canonical.rewardReceipt.outcomeClass==="task_deadline"||e.canonical.rewardReceipt.outcomeClass==="infrastructure_timeout",d=e.canonical.rewardReceipt.outcomeClass==="cancelled";return j({id:`rollout-${u([e.canonical.attemptReceipt.contentHash,e.canonical.rewardReceipt.contentHash,a.contentHash]).slice(0,24)}`,attemptReceipt:e.canonical.attemptReceipt,rewardReceipt:e.canonical.rewardReceipt,artifactManifestRef:{id:e.canonical.artifactManifest.id,contentHash:e.canonical.artifactManifest.contentHash},tasksetRelease:{id:e.context.tasksetRelease.id,contentHash:e.context.tasksetRelease.contentHash},environmentRelease:{id:e.context.environmentRelease.id,contentHash:e.context.environmentRelease.contentHash},harnessRelease:{id:e.context.harnessRelease.id,contentHash:e.context.harnessRelease.contentHash},taskId:e.attempt.taskId,split:e.attempt.split,model:e.context.runManifest.model,seed:String(e.attempt.seed),traceRef:a,optimizerSample:e.optimizerSample??null,environmentExecutions:[{id:`environment-execution-${e.attempt.id}`,environmentRelease:{id:e.context.environmentRelease.id,contentHash:e.context.environmentRelease.contentHash},status:d?"cancelled":s?"timed_out":e.canonical.rewardReceipt.status==="scored"?"completed":"failed",startedAt:e.attempt.startedAt,completedAt:e.attempt.completedAt,traceRefs:[a],metadata:{legacyAttemptRef:e.attempt.id,runtimeEventCount:e.attempt.runtimeEventRefs.length}}],startedAt:e.attempt.startedAt,completedAt:e.attempt.completedAt,metadata:{source:"openpond.desktop-local-runtime",optimizerSamplePresent:!!e.optimizerSample}})}c(Re,"projectDesktopCanonicalRollout");function te(e){if(!e.grader)throw new Error(`Grade component ${e.component.graderId} has no admitted Verifier definition.`);let t=(e.boundResult?e.boundResult.status==="scored":e.gradeScored)?"scored":"unscorable",a=t==="scored"&&e.component.rewardEligible,s=e.evidenceRef?[e.evidenceRef]:[];return{verifierId:e.component.graderId,verifierVersion:e.component.graderVersion,status:t,rawScore:t==="scored"?e.boundResult?.rawScore??e.component.score:null,normalizedScore:t==="scored"?e.boundResult?.normalizedScore??e.component.score:null,weight:e.grader.weight,passed:e.component.passed,hardGate:e.component.hardGate,rewardEligible:a,rewardContribution:a?e.component.score:null,failureOwner:e.component.passed?null:t==="scored"?"policy":"verifier",feedback:e.component.feedback?[e.component.feedback]:[],visibleEvidenceRefs:e.grader.privileged?[]:s,privilegedEvidenceRefs:e.grader.privileged?s:[],metadata:{judge:e.component.judge??null,calibrationStatus:e.component.calibrationStatus,legacyEvidenceRefs:e.component.evidenceRefs}}}c(te,"portableRewardComponent");function ae(e,t){let a=B.safeParse(e.metadata.outcomeClass);if(a.success){let d=e.metadata.failureOwner===null?null:z.safeParse(e.metadata.failureOwner);if(d!==null&&!d.success)throw new Error("Attempt has an invalid explicit failure owner.");return{outcomeClass:a.data,failureOwner:d===null?null:d.data}}let s=J(e,t);return s?G({failureClass:s,timeoutKind:e.metadata.timeoutKind==="task_deadline"?"task_deadline":"infrastructure_timeout"}):t.score===null?{outcomeClass:"verifier_failure",failureOwner:"verifier"}:t.passed?{outcomeClass:"completed",failureOwner:null}:{outcomeClass:"policy_failure",failureOwner:"policy"}}c(ae,"canonicalOutcome");function X(e){return e==="passed"||e==="failed"?e:"not_requested"}c(X,"artifactValidationStatus");function se(e){return(e?.skills??[]).filter(t=>t.enabled).map(t=>({id:`skill-${h(t.name)}`,path:`skills/${h(t.name)}/SKILL.md`,contentHash:k(t.sourceHash),sizeBytes:Math.max(0,t.charCount),mediaType:"text/markdown",visibility:"policy"}))}c(se,"portableSkills");function re(e){let t=new Map;for(let a of e?.agents??[])a.enabled&&t.set(a.id,u({name:a.name,path:a.path}));return[...t].map(([a,s])=>({id:`agent-${h(a)}`,path:`agents/${h(a)}/release.json`,contentHash:k(s),sizeBytes:0,mediaType:"application/vnd.openpond.agent-release+json",visibility:"policy"}))}c(re,"portableAgents");function A(e){let t=e.environment.metadata.runtimeAdapterId;if(typeof t=="string"&&t.trim())return t.trim();let a=e.environment.metadata.benchmark;if(a&&typeof a=="object"&&!Array.isArray(a)){let s=Reflect.get(a,"id");if(typeof s=="string"&&s.trim())return`conformance:${s.trim()}`}return e.environment.kind==="work"?"openpond:desktop-work":e.environment.kind==="chat"?"openpond:desktop-text":`openpond:${h(e.environment.entrypoint)}`}c(A,"desktopTasksetRuntimeAdapterId");function T(e){return{id:e.id,contentHash:k(e.sha256),mediaType:e.mediaType??null,sizeBytes:e.sizeBytes}}c(T,"portableArtifact");function J(e,t){if(e.infrastructureError)return"infrastructure_failure";if(t.failureClass)return t.failureClass;let a=e.metadata.failureClass;return a==="policy_failure"||a==="grader_failure"||a==="environment_failure"||a==="infrastructure_failure"||a==="timeout"||a==="cancelled"?a:null}c(J,"attemptFailureClass");function k(e){return/^[a-f0-9]{64}$/.test(e)?e:u(e)}c(k,"hash");function h(e){return e.trim().replace(/[^a-zA-Z0-9._-]+/g,"-").replace(/^-+|-+$/g,"")||"asset"}c(h,"segment");async function be(e,t){if(e.metadata.taskDefinition!==void 0||e.metadata.rewardBinding!==void 0)return{taskset:e,generatedFiles:[]};let a=await oe(t);if(!a.isDirectory()||a.isSymbolicLink())throw new Error("Taskset source must be a regular directory.");let s=new Map,d=0;async function n(i=""){for(let o of await ie(S.join(t,i),{withFileTypes:!0})){let l=S.posix.join(i,o.name);if(o.isSymbolicLink())throw new Error("Taskset files cannot contain symbolic links.");if(o.name.startsWith(".env"))throw new Error("Environment files cannot be included in a Taskset package.");if(o.isDirectory()){await n(l);continue}if(!o.isFile())throw new Error("Taskset packages require regular files.");if(W(l))continue;if(s.size>=1e4)throw new Error("Taskset source exceeds the file inventory limit.");let R=await ne(S.join(t,l),b.O_RDONLY|b.O_NOFOLLOW|b.O_NONBLOCK);try{let f=await R.stat();if(d+=f.size,!f.isFile()||d>w*3/4)throw new Error("Taskset source exceeds the package byte limit.");let p=Buffer.alloc(f.size),m=0;for(;m<p.length;){let r=await R.read(p,m,p.length-m,m);if(!r.bytesRead)throw new Error("Taskset source changed during capture.");m+=r.bytesRead}if((await R.read(Buffer.alloc(1),0,1,m)).bytesRead)throw new Error("Taskset source changed during capture.");s.set(l,p)}finally{await R.close()}}}return c(n,"visit"),await n(),U(e,s,A(e))}c(be,"prepareAuthoredTasksetFiles");import{constants as H}from"node:fs";import{open as ce,realpath as Z}from"node:fs/promises";import y from"node:path";function Me(e,t){return t?new Set:new Set([...(e.modelResources?.assets??[]).map(a=>a.asset.id),...(e.learningResources?.assets??[]).map(a=>a.asset.id),...e.learningResources?v(e.learningResources).map(a=>a.asset.id):[]])}c(Me,"tasksetPackageInlineAssetIds");async function $e(e){let t=e.sources.length?await Z(e.root):y.resolve(e.root),a=[],s=new Set,d=0,n=c((i,o)=>{if(s.has(i.id))throw new Error(`Duplicate local Taskset asset: ${i.id}.`);if(s.add(i.id),d+=4*Math.ceil(o.byteLength/3),d>w)throw new Error("Local Taskset files exceed the package envelope.");a.push({asset:i,base64:Buffer.from(o).toString("base64")})},"append");for(let i of e.sources){let o=x.parse(i.asset);if(!i.sourcePath||y.isAbsolute(i.sourcePath))throw new Error(`Taskset asset ${o.id} requires a relative source path.`);let l=y.resolve(t,i.sourcePath);if(!l.startsWith(`${t}${y.sep}`))throw new Error(`Taskset asset ${o.id} escapes its local package.`);if(!(await Z(l)).startsWith(`${t}${y.sep}`))throw new Error(`Taskset asset ${o.id} escapes its local package.`);let f=await ce(l,H.O_RDONLY|H.O_NOFOLLOW|H.O_NONBLOCK);try{let p=await f.stat();if(!p.isFile()||p.size!==o.sizeBytes)throw new Error(`Taskset asset ${o.id} differs from its immutable file size.`);if(4*Math.ceil(p.size/3)+d>w)throw new Error("Local Taskset files exceed the package envelope.");let m=Buffer.alloc(p.size),r=0;for(;r<m.length;){let g=await f.read(m,r,m.length-r,r);if(!g.bytesRead)throw new Error(`Taskset asset ${o.id} changed during capture.`);r+=g.bytesRead}if((await f.read(Buffer.alloc(1),0,1,r)).bytesRead)throw new Error(`Taskset asset ${o.id} changed during capture.`);n(o,m)}finally{await f.close()}}for(let i of[...e.content.modelResources?.assets??[],...e.content.learningResources?.assets??[]])s.has(i.asset.id)||n(i.asset,Buffer.from(P(i,i.asset),"utf8"));if(e.content.learningResources)for(let i of v(e.content.learningResources))s.has(i.asset.id)||n(i.asset,Buffer.from(i.base64,"base64"));if(e.fileOrder){if(new Set(e.fileOrder).size!==a.length||e.fileOrder.length!==a.length||e.fileOrder.some(o=>!s.has(o)))throw new Error("Saved package file order differs from its inventory.");let i=new Map(e.fileOrder.map((o,l)=>[o,l]));a.sort((o,l)=>i.get(o.asset.id)-i.get(l.asset.id))}return q({...e.content,files:a})}c($e,"captureLocalTasksetPackage");export{pe as a,ue as b,Re as c,A as d,be as e,Me as f,$e as g};
|
|
2
|
+
import{k as Y}from"./chunk-5EP2DZLJ.js";import{g as W,h as U}from"./chunk-6RS4NAOY.js";import{Nb as K,Pb as V,Qb as N,Y as v,_ as w,ka as q}from"./chunk-YNQWJWIC.js";import{V as z,W as B,Xb as j,f as _,k as M,l as $,la as G,ma as D,ta as F,ua as L}from"./chunk-ABF3W2MO.js";import{d as P}from"./chunk-J572ANHX.js";import{e as E,i as I}from"./chunk-NJLULBTM.js";import{i as x,l as C,n as u}from"./chunk-VVNV4NNW.js";import{a as c}from"./chunk-FTQLQJQV.js";import{constants as b}from"node:fs";import{lstat as oe,open as ne,readdir as ie}from"node:fs/promises";import S from"node:path";function pe(e){let t=N(e.taskset),{agentSnapshot:a,harnessRelease:s}=e.releasedHarness?{agentSnapshot:E.parse(e.releasedHarness.agentSnapshot),harnessRelease:I.parse(e.releasedHarness.harnessRelease)}:Q(e.taskset,e.profile);if(s.agentSnapshot.id!==a.id||s.agentSnapshot.contentHash!==a.contentHash)throw new Error("Released Harness does not bind the supplied Agent snapshot.");let d=V(e.taskset),n=e.taskset.tasks.length?e.taskset.tasks:e.selectedTask?[e.selectedTask]:[];if(!n.length)throw new Error("A portable Taskset release requires at least one resolved task.");let{environmentRelease:i,verifierSetRelease:o,tasksetRelease:l}=K({taskset:e.taskset,selectedTasks:n,adapterId:e.adapterId??A(e.taskset),admittedTasksetRelease:e.tasksetRelease,rewardExecution:e.rewardExecution}),R=e.now??(()=>new Date().toISOString()),f=M({schemaVersion:"openpond.runManifest.v1",id:`run-manifest-${u([s.contentHash,l.contentHash,e.model]).slice(0,24)}`,harnessRelease:{id:s.id,contentHash:s.contentHash},tasksetRelease:{id:l.id,contentHash:l.contentHash},model:{provider:e.model.providerId,model:e.model.modelId,revision:null,artifactHash:null,tokenizerRevision:null,chatTemplateHash:null},runtimeTarget:{adapterId:e.adapterId??A(e.taskset),placement:"local",runtimeVersion:"desktop-v1",capabilityReceipt:u({environment:d,tools:t,capabilities:e.taskset.capabilities})},limits:{maxTurns:128,timeoutMs:e.taskset.environment.defaultTimeoutMs,maxOutputBytes:25e7,maximumSpendUsd:null},approval:null,createdAt:R(),metadata:{sourceTasksetId:e.taskset.id,sourceTasksetRevision:e.taskset.revision,reasoningEffort:e.reasoningEffort??null}});return{agentSnapshot:a,harnessRelease:s,environmentRelease:i,verifierSetRelease:o,tasksetRelease:l,runManifest:f}}c(pe,"compileDesktopHarnessContext");function Q(e,t){let a=e.profileRelease?{id:e.profileRelease.id,contentHash:k(e.profileRelease.contentHash)}:t?.git?.head?{id:`source-${h(t.git.head)}`,contentHash:k(t.git.head)}:null;return Y({sourceRelease:a,profileHead:t?.git?.head??null,skills:se(t),agents:re(t)})}c(Q,"compileTemporaryProfileHarness");function ee(e){let t=e.artifacts.map(T),a=e.artifacts.find(n=>n.kind==="environment_state")??e.artifacts.find(n=>n.kind==="runtime_trace")??e.artifacts.find(n=>n.kind==="raw_model_response"),s=J(e.attempt,e.grade),d=e.grade.components.map(n=>({id:`grader-${h(n.graderId)}-${e.grade.id}`,contentHash:u(n),mediaType:"application/vnd.openpond.grader-evidence+json",sizeBytes:Buffer.byteLength(C(n))}));return _.parse($({schemaVersion:"openpond.attemptReceipt.v1",id:`receipt-${u([e.manifest.contentHash,e.attempt.id,e.grade.id]).slice(0,24)}`,runManifest:{id:e.manifest.id,contentHash:e.manifest.contentHash},taskId:e.attempt.taskId,seed:String(e.attempt.seed),terminal:!["infrastructure_failure","timeout","cancelled"].includes(s??""),failureClass:s,outputHash:e.attempt.infrastructureError?null:u(e.attempt.output),traceHash:a?k(a.sha256):u({attemptId:e.attempt.id,output:e.attempt.output,runtimeEventRefs:e.attempt.runtimeEventRefs,artifactRefs:e.attempt.artifactRefs,metadata:e.attempt.metadata}),artifactRefs:t,graderEvidenceRefs:d,startedAt:e.attempt.startedAt,completedAt:e.attempt.completedAt,latencyMs:e.attempt.latencyMs,costUsd:e.attempt.costUsd,legacyAttemptRef:e.attempt.id,metadata:{legacyGradeRef:e.grade.id,rewardEligible:e.grade.rewardEligible,score:e.grade.score,passed:e.grade.passed,usage:e.attempt.metadata.usage??[]}}))}c(ee,"projectDesktopAttemptReceipt");function ue(e){let t=ee({manifest:e.context.runManifest,attempt:e.attempt,grade:e.grade,artifacts:e.artifacts}),a=e.context.tasksetRelease.tasks.find(r=>r.id===e.attempt.taskId);if(!a)throw new Error(`Task ${e.attempt.taskId} is absent from the admitted Taskset Release.`);let s=a.requiredOutputs??[],d=e.artifacts.filter(r=>r.kind==="output_artifact").map(r=>({path:typeof r.metadata.requiredOutputPath=="string"?r.metadata.requiredOutputPath:r.path,artifact:T(r),detectedMediaType:r.mediaType??null,status:"collected",parseStatus:X(r.metadata.parseStatus),schemaStatus:X(r.metadata.schemaStatus),evidenceRefs:[T(r)],metadata:{sourceArtifactId:r.id}})),n=F({id:`artifact-manifest-${t.id}`,attemptRef:{id:t.id,contentHash:t.contentHash},requiredOutputs:s,collectedArtifacts:d,createdAt:e.attempt.completedAt,metadata:{legacyAttemptRef:e.attempt.id}}),i=e.grade.components.map((r,O)=>te({component:r,grader:e.context.verifierSetRelease.graders.find(g=>g.id===r.graderId),evidenceRef:t.graderEvidenceRefs[O]??null,gradeScored:e.grade.score!==null,boundResult:e.grade.rewardComposition?.results.find(g=>g.graderId===r.graderId)})),o=L({requiredOutputs:s,manifest:n}),l=ae(e.attempt,e.grade),R=o.some(r=>r.status==="unscorable"&&r.failureOwner==="collector"),f=o.some(r=>r.status==="scored"&&!r.passed),p=l.outcomeClass==="completed"&&R?{outcomeClass:"collector_failure",failureOwner:"collector"}:l.outcomeClass==="completed"&&f?{outcomeClass:"incomplete_output",failureOwner:"policy"}:l,m=D({id:`reward-${u([t.contentHash,e.context.verifierSetRelease.contentHash,n.contentHash,e.grade.id]).slice(0,24)}`,attemptRef:{id:t.id,contentHash:t.contentHash},verifierSet:e.context.verifierSetRelease,artifactManifest:n,...p,components:[...i,...o],createdAt:e.grade.createdAt,metadata:{legacyGradeRef:e.grade.id,legacyAttemptRef:e.attempt.id,...e.grade.rewardComposition?{rewardComposition:e.grade.rewardComposition}:{}}});return{attemptReceipt:t,artifactManifest:n,rewardReceipt:m}}c(ue,"projectDesktopCanonicalReceipts");function Re(e){let t=e.artifacts.find(n=>n.kind==="runtime_trace")??e.artifacts.find(n=>n.kind==="raw_model_response"),a=t?T(t):{id:`trace-${e.canonical.attemptReceipt.id}`,contentHash:e.canonical.attemptReceipt.traceHash,mediaType:"application/vnd.openpond.attempt-trace+json",sizeBytes:null},s=e.canonical.rewardReceipt.outcomeClass==="task_deadline"||e.canonical.rewardReceipt.outcomeClass==="infrastructure_timeout",d=e.canonical.rewardReceipt.outcomeClass==="cancelled";return j({id:`rollout-${u([e.canonical.attemptReceipt.contentHash,e.canonical.rewardReceipt.contentHash,a.contentHash]).slice(0,24)}`,attemptReceipt:e.canonical.attemptReceipt,rewardReceipt:e.canonical.rewardReceipt,artifactManifestRef:{id:e.canonical.artifactManifest.id,contentHash:e.canonical.artifactManifest.contentHash},tasksetRelease:{id:e.context.tasksetRelease.id,contentHash:e.context.tasksetRelease.contentHash},environmentRelease:{id:e.context.environmentRelease.id,contentHash:e.context.environmentRelease.contentHash},harnessRelease:{id:e.context.harnessRelease.id,contentHash:e.context.harnessRelease.contentHash},taskId:e.attempt.taskId,split:e.attempt.split,model:e.context.runManifest.model,seed:String(e.attempt.seed),traceRef:a,optimizerSample:e.optimizerSample??null,environmentExecutions:[{id:`environment-execution-${e.attempt.id}`,environmentRelease:{id:e.context.environmentRelease.id,contentHash:e.context.environmentRelease.contentHash},status:d?"cancelled":s?"timed_out":e.canonical.rewardReceipt.status==="scored"?"completed":"failed",startedAt:e.attempt.startedAt,completedAt:e.attempt.completedAt,traceRefs:[a],metadata:{legacyAttemptRef:e.attempt.id,runtimeEventCount:e.attempt.runtimeEventRefs.length}}],startedAt:e.attempt.startedAt,completedAt:e.attempt.completedAt,metadata:{source:"openpond.desktop-local-runtime",optimizerSamplePresent:!!e.optimizerSample}})}c(Re,"projectDesktopCanonicalRollout");function te(e){if(!e.grader)throw new Error(`Grade component ${e.component.graderId} has no admitted Verifier definition.`);let t=(e.boundResult?e.boundResult.status==="scored":e.gradeScored)?"scored":"unscorable",a=t==="scored"&&e.component.rewardEligible,s=e.evidenceRef?[e.evidenceRef]:[];return{verifierId:e.component.graderId,verifierVersion:e.component.graderVersion,status:t,rawScore:t==="scored"?e.boundResult?.rawScore??e.component.score:null,normalizedScore:t==="scored"?e.boundResult?.normalizedScore??e.component.score:null,weight:e.grader.weight,passed:e.component.passed,hardGate:e.component.hardGate,rewardEligible:a,rewardContribution:a?e.component.score:null,failureOwner:e.component.passed?null:t==="scored"?"policy":"verifier",feedback:e.component.feedback?[e.component.feedback]:[],visibleEvidenceRefs:e.grader.privileged?[]:s,privilegedEvidenceRefs:e.grader.privileged?s:[],metadata:{judge:e.component.judge??null,calibrationStatus:e.component.calibrationStatus,legacyEvidenceRefs:e.component.evidenceRefs}}}c(te,"portableRewardComponent");function ae(e,t){let a=B.safeParse(e.metadata.outcomeClass);if(a.success){let d=e.metadata.failureOwner===null?null:z.safeParse(e.metadata.failureOwner);if(d!==null&&!d.success)throw new Error("Attempt has an invalid explicit failure owner.");return{outcomeClass:a.data,failureOwner:d===null?null:d.data}}let s=J(e,t);return s?G({failureClass:s,timeoutKind:e.metadata.timeoutKind==="task_deadline"?"task_deadline":"infrastructure_timeout"}):t.score===null?{outcomeClass:"verifier_failure",failureOwner:"verifier"}:t.passed?{outcomeClass:"completed",failureOwner:null}:{outcomeClass:"policy_failure",failureOwner:"policy"}}c(ae,"canonicalOutcome");function X(e){return e==="passed"||e==="failed"?e:"not_requested"}c(X,"artifactValidationStatus");function se(e){return(e?.skills??[]).filter(t=>t.enabled).map(t=>({id:`skill-${h(t.name)}`,path:`skills/${h(t.name)}/SKILL.md`,contentHash:k(t.sourceHash),sizeBytes:Math.max(0,t.charCount),mediaType:"text/markdown",visibility:"policy"}))}c(se,"portableSkills");function re(e){let t=new Map;for(let a of e?.agents??[])a.enabled&&t.set(a.id,u({name:a.name,path:a.path}));return[...t].map(([a,s])=>({id:`agent-${h(a)}`,path:`agents/${h(a)}/release.json`,contentHash:k(s),sizeBytes:0,mediaType:"application/vnd.openpond.agent-release+json",visibility:"policy"}))}c(re,"portableAgents");function A(e){let t=e.environment.metadata.runtimeAdapterId;if(typeof t=="string"&&t.trim())return t.trim();let a=e.environment.metadata.benchmark;if(a&&typeof a=="object"&&!Array.isArray(a)){let s=Reflect.get(a,"id");if(typeof s=="string"&&s.trim())return`conformance:${s.trim()}`}return e.environment.kind==="work"?"openpond:desktop-work":e.environment.kind==="chat"?"openpond:desktop-text":`openpond:${h(e.environment.entrypoint)}`}c(A,"desktopTasksetRuntimeAdapterId");function T(e){return{id:e.id,contentHash:k(e.sha256),mediaType:e.mediaType??null,sizeBytes:e.sizeBytes}}c(T,"portableArtifact");function J(e,t){if(e.infrastructureError)return"infrastructure_failure";if(t.failureClass)return t.failureClass;let a=e.metadata.failureClass;return a==="policy_failure"||a==="grader_failure"||a==="environment_failure"||a==="infrastructure_failure"||a==="timeout"||a==="cancelled"?a:null}c(J,"attemptFailureClass");function k(e){return/^[a-f0-9]{64}$/.test(e)?e:u(e)}c(k,"hash");function h(e){return e.trim().replace(/[^a-zA-Z0-9._-]+/g,"-").replace(/^-+|-+$/g,"")||"asset"}c(h,"segment");async function be(e,t){if(e.metadata.taskDefinition!==void 0||e.metadata.rewardBinding!==void 0)return{taskset:e,generatedFiles:[]};let a=await oe(t);if(!a.isDirectory()||a.isSymbolicLink())throw new Error("Taskset source must be a regular directory.");let s=new Map,d=0;async function n(i=""){for(let o of await ie(S.join(t,i),{withFileTypes:!0})){let l=S.posix.join(i,o.name);if(o.isSymbolicLink())throw new Error("Taskset files cannot contain symbolic links.");if(o.name.startsWith(".env"))throw new Error("Environment files cannot be included in a Taskset package.");if(o.isDirectory()){await n(l);continue}if(!o.isFile())throw new Error("Taskset packages require regular files.");if(W(l))continue;if(s.size>=1e4)throw new Error("Taskset source exceeds the file inventory limit.");let R=await ne(S.join(t,l),b.O_RDONLY|b.O_NOFOLLOW|b.O_NONBLOCK);try{let f=await R.stat();if(d+=f.size,!f.isFile()||d>w*3/4)throw new Error("Taskset source exceeds the package byte limit.");let p=Buffer.alloc(f.size),m=0;for(;m<p.length;){let r=await R.read(p,m,p.length-m,m);if(!r.bytesRead)throw new Error("Taskset source changed during capture.");m+=r.bytesRead}if((await R.read(Buffer.alloc(1),0,1,m)).bytesRead)throw new Error("Taskset source changed during capture.");s.set(l,p)}finally{await R.close()}}}return c(n,"visit"),await n(),U(e,s,A(e))}c(be,"prepareAuthoredTasksetFiles");import{constants as H}from"node:fs";import{open as ce,realpath as Z}from"node:fs/promises";import y from"node:path";function Me(e,t){return t?new Set:new Set([...(e.modelResources?.assets??[]).map(a=>a.asset.id),...(e.learningResources?.assets??[]).map(a=>a.asset.id),...e.learningResources?v(e.learningResources).map(a=>a.asset.id):[]])}c(Me,"tasksetPackageInlineAssetIds");async function $e(e){let t=e.sources.length?await Z(e.root):y.resolve(e.root),a=[],s=new Set,d=0,n=c((i,o)=>{if(s.has(i.id))throw new Error(`Duplicate local Taskset asset: ${i.id}.`);if(s.add(i.id),d+=4*Math.ceil(o.byteLength/3),d>w)throw new Error("Local Taskset files exceed the package envelope.");a.push({asset:i,base64:Buffer.from(o).toString("base64")})},"append");for(let i of e.sources){let o=x.parse(i.asset);if(!i.sourcePath||y.isAbsolute(i.sourcePath))throw new Error(`Taskset asset ${o.id} requires a relative source path.`);let l=y.resolve(t,i.sourcePath);if(!l.startsWith(`${t}${y.sep}`))throw new Error(`Taskset asset ${o.id} escapes its local package.`);if(!(await Z(l)).startsWith(`${t}${y.sep}`))throw new Error(`Taskset asset ${o.id} escapes its local package.`);let f=await ce(l,H.O_RDONLY|H.O_NOFOLLOW|H.O_NONBLOCK);try{let p=await f.stat();if(!p.isFile()||p.size!==o.sizeBytes)throw new Error(`Taskset asset ${o.id} differs from its immutable file size.`);if(4*Math.ceil(p.size/3)+d>w)throw new Error("Local Taskset files exceed the package envelope.");let m=Buffer.alloc(p.size),r=0;for(;r<m.length;){let g=await f.read(m,r,m.length-r,r);if(!g.bytesRead)throw new Error(`Taskset asset ${o.id} changed during capture.`);r+=g.bytesRead}if((await f.read(Buffer.alloc(1),0,1,r)).bytesRead)throw new Error(`Taskset asset ${o.id} changed during capture.`);n(o,m)}finally{await f.close()}}for(let i of[...e.content.modelResources?.assets??[],...e.content.learningResources?.assets??[]])s.has(i.asset.id)||n(i.asset,Buffer.from(P(i,i.asset),"utf8"));if(e.content.learningResources)for(let i of v(e.content.learningResources))s.has(i.asset.id)||n(i.asset,Buffer.from(i.base64,"base64"));if(e.fileOrder){if(new Set(e.fileOrder).size!==a.length||e.fileOrder.length!==a.length||e.fileOrder.some(o=>!s.has(o)))throw new Error("Saved package file order differs from its inventory.");let i=new Map(e.fileOrder.map((o,l)=>[o,l]));a.sort((o,l)=>i.get(o.asset.id)-i.get(l.asset.id))}return q({...e.content,files:a})}c($e,"captureLocalTasksetPackage");export{pe as a,ue as b,Re as c,A as d,be as e,Me as f,$e as g};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
+
import{B as Ze,l as X,o as Xe,p as Ye,t as Qe,u as Ue,z as ue}from"./chunk-ZZHXQCNB.js";import{Ca as ye,L as xe,N as ze,Nb as Ee,Pb as et,Rb as le,S as Ge,U as Ne,V as me,_ as We,a as Fe,aa as W,ba as J,c as Oe,ca as fe,d as z,da as Je,e as re,ea as Ke,ia as pe,ja as C,ka as K,oa as ee,wa as N,x as ce,y as Te,z as de}from"./chunk-YNQWJWIC.js";import{h as ie,l as G,m}from"./chunk-VNJAAYNQ.js";import{n as Ve}from"./chunk-LV3CQ72P.js";import{ha as Ce,ja as Le}from"./chunk-ABF3W2MO.js";import{C as oe,E as $e,O as y,P as L,Q as P,R as qe,b as ae,ca as Z,d as Ae,mb as be,nb as Se,o as O,ob as je,p as Q,s as V,w as ne,z as U}from"./chunk-J572ANHX.js";import{Da as se,Ra as Pe,Va as Me,Wa as _e,Xa as Be,Ya as De,t as j}from"./chunk-PBZCXPPC.js";import{A as x}from"./chunk-PF56N7ZY.js";import{a as T}from"./chunk-FTQLQJQV.js";var he=Q.shape.id,tt=x.object({schemaVersion:x.literal("openpond.modelBatchReviewInspection.v1"),packageHash:x.string().regex(/^[a-f0-9]{64}$/),definition:V,binding:Pe,evidence:x.array(U).min(1).max(1e4),decisions:x.array($e).min(1).max(1e4)}).strict(),He=x.object({schemaVersion:x.literal("openpond.modelBatchReviewRequest.v1"),operationId:he,modelId:he,expectedModelRevision:x.number().int().positive(),tasksetRef:Q,rewardBindingRef:Q.nullable(),definition:x.object({name:x.string().trim().min(1).max(500).optional(),instructions:x.string().trim().min(1).max(2e4).optional(),inputSchema:O.optional(),outputSchema:O.optional(),requiredOutputs:V.shape.requiredOutputs}).strict(),examples:x.array(x.object({evidence:Q,input:O.optional(),expected:O.nullable().optional(),evaluatorContext:O.nullable().optional(),proposedTarget:O.nullable().optional()}).strict()).max(1e4)}).strict(),st=x.object({schemaVersion:x.literal("openpond.modelBatchReviewReceipt.v1"),operationId:he,modelId:he,source:ne,evidence:x.array(U).min(1).max(1e4),proposals:x.array(oe).max(1e4)}).strict();function ct(t){let e=C(t.source),s=C(t.edited),n=t.preparation;if(n.authoringGraph!=="bound"||!e.modelResources||e.learningResources||s.modelResources||s.learningResources)throw new Error("Bound task editing requires its source Reward and an ordinary edited workspace.");if(e.contentHash!==n.sourcePackageHash||!L(y(e.taskset),n.sourceTasksetRef))throw new Error("Bound draft differs from its retained source package.");let i=T(S=>S.taskset.graders.map(_=>_.kind==="custom_verifier"?{..._,exportName:_.exportName??"verify"}:_),"normalizedGraders");if(m(i(e))!==m(i(s)))throw new Error("Edit the saved Reward in Rewards before changing this Taskset's graders.");let d=e.modelResources,h=new Map(d.assets.map(S=>[S.id,S])),o=J(s),v=J(e),k=T(S=>{let{id:_,revision:ge,contentHash:we,metadata:Re,...it}=S,{javascriptEnvironment:wt,...Ie}=Re;return{...it,metadata:{...Ie,resources:Ie.resources??[]}}},"environmentContent"),r=T(S=>{if(!S)return null;let{id:_,revision:ge,contentHash:we,...Re}=S.execution.javascript;return Re},"javascriptContent"),R=m(k(e.environment))===m(k(s.environment))&&m(r(v))===m(r(o)),g=R?e.environment:s.environment,p=R?v:o,f=new Set([...d.assets.map(S=>S.id),...s.taskset.tasks.flatMap(S=>S.privilegedContextRef?[S.privilegedContextRef]:[]),...[s.environment.actionSchemaRef,s.environment.observationSchemaRef,s.environment.stateSchemaRef].flatMap(S=>S?[S.id]:[]),...o?.assets.map(S=>S.id)??[]]),B=new Set([...f,...s.taskset.tasks.flatMap(S=>[...S.artifactRefs.map(_=>_.id),...(S.requiredOutputs??[]).flatMap(_=>_.schemaRef?[_.schemaRef.id]:[])])]),q=dt(e,s,B);for(let S of f){let _=q.find(we=>we.asset.id===S);if(!_)throw new Error(`Bound Taskset asset is missing: ${S}.`);let ge=new TextDecoder("utf-8",{fatal:!0}).decode(W(_));h.set(S,ae.parse(P({schemaVersion:"openpond.learningTextAsset.v1",id:S,revision:1,asset:_.asset,text:ge})))}let I=pe(s),{contentHash:w,...E}=d.taskDefinition,{policy:A,environment:F,environmentRelease:D,tools:c,capabilities:l,verifierSetRelease:b}=s.taskset,a=V.parse(P({...E,instructions:I,execution:{policy:A,environment:F,environmentRelease:D,tools:c,capabilities:l,verifierSetRelease:b}})),{contentHash:u,...H}=s.taskset,M=se.parse(P({...H,tasks:s.taskset.tasks.map(S=>d.instructionMode==="per_task"?S:{...S,policyVisibleContext:{...S.policyVisibleContext,instructions:I}})})),$=me({owner:n.lineage.owner,source:{...d,taskset:e.taskset,executionResources:{environment:e.environment,verifierSet:e.verifierSet}},rewardBinding:d.rewardBinding,rewards:d.rewards,assets:[...h.values()],edits:{taskset:M,taskDefinition:a,executionResources:{environment:g,verifierSet:s.verifierSet},...p?{execution:p.execution}:{}}}),Y=Ge.parse($.taskset.metadata.modelTasksetDerivation);if($.taskset.id!==n.tasksetId||$.taskset.revision!==n.tasksetRevision||m({...Y,schemaVersion:n.lineage.schemaVersion})!==m(n.lineage))throw new Error("Bound draft differs from its retained ownership lineage.");let{taskset:ve,executionResources:ke,...rt}=$;return K({schemaVersion:"openpond.tasksetPackage.v1",taskset:ve,...ke,modelResources:rt,files:q})}T(ct,"publishBoundModelTasksetDraftPackage");function dt(t,e,s){let n=e.files,i=new Map(t.files.map(o=>[o.asset.id,{file:o,assetHash:m(o.asset)}])),d=T(o=>{let v=i.get(o.asset.id);return v!==void 0&&v.file.base64===o.base64&&v.assetHash===m(o.asset)},"isSourceFile"),h=t.files.filter(o=>X(o.asset.path)).map(o=>{let v=`source-artifact-${m({packageHash:t.contentHash,assetId:o.asset.id})}`;return{original:o,asset:{...o.asset,id:v,path:`source-artifacts/${t.contentHash}/${m(o.asset.path)}/${o.asset.path.split("/").at(-1)}`}}});for(let{original:o,asset:v}of h){let k=h.filter(p=>m({...p.original.asset,id:o.asset.id})===m(o.asset)),R=e.files.find(p=>p.asset.id===v.id)??k.flatMap(p=>e.files.filter(f=>m(f.asset)===m(p.asset)))[0];if(!R||R.base64!==o.base64||!k.some(p=>m(p.asset)===m(R.asset)))throw new Error(`Retained Taskset source artifact differs from its original bytes: ${o.asset.id}.`);let g=n.filter(p=>p.asset.path===o.asset.path||p.asset.id===o.asset.id);if(g.some(p=>p.asset.path!==o.asset.path||p.asset.id!==o.asset.id&&p.asset.id!==`taskset-file-${m(o.asset.path)}`&&!d(p)))throw new Error(`Retained Taskset source artifact conflicts with an authored file: ${o.asset.id}.`);n=[...n.filter(p=>p.asset.id!==v.id&&p.asset.id!==o.asset.id&&(!g.includes(p)||d(p))),o]}for(let o of t.files.filter(v=>!n.some(k=>k.asset.id===v.asset.id))){if(o.asset.path==="environment/execution.json"){let r=xe.safeParse(JSON.parse(new TextDecoder("utf-8",{fatal:!0}).decode(W(o))));if(r.success&&m(fe(r.data))===m(o))continue}let v=n.filter(r=>r.asset.path===o.asset.path),k=T(r=>m({...r.asset,id:o.asset.id})===m(o.asset)&&r.base64===o.base64,"sameEnvelope");if(s.has(o.asset.id)||!v.length||v.some(r=>!k(r)))throw new Error(`Retained Taskset source alias differs from its original bytes: ${o.asset.id}.`);n=[...n,o]}return n}T(dt,"retainSourceFileIdentities");function $t(t){let e=Oe.parse(t.request),s=Fe.parse(t.owner),n=C(t.source);if(n.learningResources)throw new Error("Reviewed Tasksets require their reviewed authoring workflow.");if(n.contentHash!==e.sourcePackageHash)throw new Error("Taskset draft source package changed.");if(n.modelResources){let v=Ne({owner:s,source:{...n.modelResources,taskset:n.taskset,executionResources:{environment:n.environment,verifierSet:n.verifierSet}},rewardBinding:n.modelResources.rewardBinding,rewards:n.modelResources.rewards,assets:n.modelResources.assets}),k=v.taskset.metadata.modelTasksetDerivation;return z.parse({schemaVersion:"openpond.modelTasksetDraftPreparation.v1",draftId:`model-taskset-draft-${m({owner:s,operationId:e.operationId})}`,requestHash:m(e),sourcePackageHash:n.contentHash,sourceTasksetRef:y(n.taskset),tasksetId:v.taskset.id,tasksetRevision:v.taskset.revision,lineage:{...k,schemaVersion:"openpond.modelTasksetAuthoring.v1"},authoringGraph:"bound"})}let i=Ke(n.taskset),d=i&&m(i.owner)===m(s),h=d?i.root:y(n.taskset),o={schemaVersion:"openpond.modelTasksetAuthoring.v1",owner:s,root:h,parent:y(n.taskset)};return z.parse({schemaVersion:"openpond.modelTasksetDraftPreparation.v1",draftId:`model-taskset-draft-${m({owner:s,operationId:e.operationId})}`,requestHash:m(e),sourcePackageHash:n.contentHash,sourceTasksetRef:y(n.taskset),tasksetId:Je(o),tasksetRevision:d?n.taskset.revision+1:1,lineage:o})}T($t,"prepareModelTasksetDraft");function mt(t){let e=z.parse(t.preparation);if(!L(e.sourceTasksetRef,e.lineage.parent))throw new Error("Taskset draft preparation differs from its source lineage.");if(e.authoringGraph==="bound"){if(!t.source)throw new Error("Bound Taskset authoring requires its retained source package.");return ct({preparation:e,source:t.source,edited:t.edited})}let s=ft(t.edited),{contentHash:n,...i}=s.verifierSet,d=Le({...i,id:`${e.tasksetId}-verifiers`,revision:e.tasksetRevision,calibrationReceiptRefs:[],metadata:{sourceVerifierSet:y(s.verifierSet)}}),{contentHash:h,...o}=s.taskset,v=se.parse(P({...o,id:e.tasksetId,revision:e.tasksetRevision,verifierSetRelease:{id:d.id,contentHash:d.contentHash},metadata:{modelTasksetAuthoring:e.lineage,...s.taskset.metadata.environmentResources===void 0?{}:{environmentResources:s.taskset.metadata.environmentResources},...s.taskset.metadata.ordinaryAuthoring===void 0?{}:{ordinaryAuthoring:s.taskset.metadata.ordinaryAuthoring}}})),k=J(s),r=k?[...s.files.filter(R=>R.asset.id!==ze(s.taskset)),fe({...k.execution,verifierSet:d})]:s.files;return K({schemaVersion:"openpond.tasksetPackage.v1",taskset:v,environment:s.environment,verifierSet:d,files:r})}T(mt,"publishModelTasksetDraftPackage");function ft(t){let e=C(t);if(e.modelResources||e.learningResources)throw new Error("This Taskset requires its bound or reviewed authoring workflow.");return e}T(ft,"requireOrdinaryPackage");function pt(t,e,s,n){if(t.environment.entrypoint!=="openpond.javascript-environment.v1")return{taskset:t,inventory:s,generatedFiles:[]};let i="environment/execution.json",d=e.get(i);if(!d||d.length>524288)throw new Error("Authored tool environment requires its bounded private execution declaration.");let h=xe.parse(JSON.parse(new TextDecoder("utf-8",{fatal:!0}).decode(d))),o=T(I=>{if(!I)return null;let w=s.find(E=>E.asset.id===I.id&&E.asset.path===I.path);if(!w)throw new Error(`Authored environment dependency is missing: ${I.id}.`);return w.asset},"repin"),{contentHash:v,...k}=h.javascript,r=Ve.parse(P({...k,id:`javascript-${t.id}`,revision:t.revision,module:o(h.javascript.module)}));if(m(r.tools)!==m(t.environment.metadata.portableTools)||m(r.tools.map(I=>I.name))!==m(t.environment.toolNames))throw new Error("Authored environment tools differ from the Taskset's declared tools.");let R=Ce({schemaVersion:"openpond.environmentRelease.v1",id:`environment-${t.id}`,revision:t.revision,contract:et(t),actionSchemaRef:o(h.environment.actionSchemaRef),observationSchemaRef:o(h.environment.observationSchemaRef),stateSchemaRef:o(h.environment.stateSchemaRef),artifactCollection:h.environment.artifactCollection,adapterConformanceHashes:{},metadata:{javascriptEnvironment:y(r),resources:t.environment.resources??[]}}),g=N.parse({...t,environment:{...t.environment,metadata:{...t.environment.metadata,portableExecutionResources:{environment:R}}}}),p=Ee({taskset:g,adapterId:n}),f=fe({javascript:r,environment:R,verifierSet:p.verifierSetRelease}),B=[...s.filter(I=>I.sourcePath!==i),{asset:f.asset,sourcePath:i}],q=N.parse({...g,metadata:{...g.metadata,portableFileInventory:B}});return{taskset:N.parse({...q,contentHash:ye(q)}),inventory:B,generatedFiles:[{path:i,role:"environment",content:new TextDecoder().decode(W(f))}]}}T(pt,"prepareAuthoredToolEnvironment");var te=x.array(x.object({asset:ie,sourcePath:x.string().min(1)}).strict()).max(1e4),ut=new Set(["taskset.json","capabilities.json","data/tasks.jsonl","graders/graders.json","fixtures/grader-fixtures.json","environment/taskset.ts"]);function lt(t){return ut.has(t)}T(lt,"isGeneratedTasksetPublicationFilePath");function ht(t,e,s,n=We){let i=N.parse(t);for(let c of i.tasks)for(let l of c.requiredOutputs??[])if(ce(l.metadata)&&l.submissionMode!=="structured_json")throw new Error("Sampling schema requires a structured output.");if(i.metadata.taskDefinition!==void 0||i.metadata.rewardBinding!==void 0){for(let c of i.tasks)for(let l of le(c).requiredOutputs??[]){let b=ce(l.metadata);if(!b)continue;let a=le(c).artifactRefs.find(Y=>Y.id===b.schemaRef.id);if(!a||m(a)!==m(b.schemaRef)||!l.schemaRef)throw new Error("Sampling schema must match an ordinary declared policy artifact.");let u=T((Y,ve)=>c.assets?.find(ke=>ke.id===Y)?.artifactRef??ve,"sourcePath"),H=e.get(u(l.schemaRef.id,l.schemaRef.path)),M=e.get(u(a.id,a.path));if(!H||!M)throw new Error("Sampling schema source bytes are missing.");let $=de(H,l.schemaRef.contentHash);Te($,b,M)}return{taskset:i,generatedFiles:[]}}let d=new Map,h=0;for(let[c,l]of e){if(re.parse(c),h+=l.byteLength,d.size>=1e4||h>n*3/4)throw new Error("Taskset source exceeds the package byte limit.");d.set(c,l.slice())}let o=i.metrics?.customAggregator,v=o?d.get(o.module):void 0;if(o&&!v)throw new Error("Declared Taskset metric module is missing.");let k=o&&v?{...i.metrics,customAggregator:{...o,contentHash:G(v)}}:i.metrics,r=new Map,R=new Set,g=[],p=T((c,l,b,a)=>{let u=d.get(l);if(!u)throw new Error(`Declared Taskset file is missing: ${l}.`);return{id:c,path:l,contentHash:G(u),sizeBytes:u.byteLength,mediaType:b,visibility:a}},"ref"),f=T((c,l=c.path)=>{let b=r.get(c.id);if(b&&m(b)!==m({asset:c,sourcePath:l}))throw new Error(`Conflicting Taskset file identity: ${c.id}.`);let a=d.get(l);if(!a||a.length!==c.sizeBytes||G(a)!==c.contentHash)throw new Error(`Taskset file differs from its declared bytes: ${c.id}.`);r.set(c.id,{asset:c,sourcePath:l}),R.add(l)},"add");for(let c of i.tasks){let l={};for(let a of c.requiredOutputs??[])if(a.submissionMode==="structured_json"){if(!a.schemaRef||a.mediaType!=="application/json")throw new Error("Structured outputs require a JSON schemaRef and application/json.");let u=c.metadata.portableTaskRecord?.requiredOutputs?.find($=>$.path===a.path)?.schemaRef,H=u?.id===a.schemaRef?u.path:a.schemaRef,M=p(a.schemaRef,H,"application/schema+json","policy");if(u&&u.id===a.schemaRef&&u.visibility!=="policy")throw new Error("Structured output schema must be policy-visible.");de(d.get(H),M.contentHash),l[a.schemaRef]=M}Object.keys(l).length&&(c.metadata={...c.metadata,outputSchemaRefs:l});let b=le(c);for(let a of b.artifactRefs)f(a,c.assets?.find(u=>u.id===a.id)?.artifactRef??a.path);for(let a of b.requiredOutputs??[])a.schemaRef&&f(a.schemaRef);for(let a of b.requiredOutputs??[]){let u=ce(a.metadata);if(!u)continue;let H=r.get(u.schemaRef.id);if(!H||m(H.asset)!==m(u.schemaRef)||!b.artifactRefs.some($=>$.id===u.schemaRef.id)||!a.schemaRef)throw new Error("Sampling schema must match an ordinary declared policy artifact.");let M=de(d.get(r.get(a.schemaRef.id).sourcePath),a.schemaRef.contentHash);Te(M,u,d.get(H.sourcePath))}}for(let c of i.environment.resources??[])f(p(c.id,c.path,c.mediaType??"application/octet-stream",c.visibility==="policy_visible"?"policy":"host_private"));let B=i.graders.map(c=>{if(c.kind==="custom_verifier"){let l=p(`verifier-${c.id}`,c.module,"application/javascript","host_private"),b=ie.safeParse(c.metadata.portableVerifierRef);return b.success&&b.data.contentHash===l.contentHash&&b.data.sizeBytes===l.sizeBytes&&(l=b.data),f(l,c.module),{...c,metadata:{...c.metadata,portableVerifierRef:l}}}if(c.kind==="human"||c.kind==="model_judge"){let l=new TextEncoder().encode(c.rubric),b=`graders/rubric-${G(l)}.md`;d.set(b,l);let a=p(`rubric-${c.id}`,b,"text/markdown","verifier"),u=ie.safeParse(c.metadata.portableRubricRef);if(u.success&&u.data.contentHash===a.contentHash&&u.data.sizeBytes===a.sizeBytes){if(u.data.visibility==="policy")throw new Error("A grader rubric cannot become policy-visible.");a=u.data}return f(a,b),g.push({path:b,role:"verifier",content:c.rubric}),{...c,metadata:{...c.metadata,portableRubricRef:a}}}return c});o&&![...r.values()].some(c=>c.asset.path===o.module&&c.sourcePath===o.module&&c.asset.visibility!=="policy")&&f(p(`metric-${m(o.module)}`,o.module,"application/javascript","host_private"));let q=te.parse(i.metadata.portableFileInventory??[]);for(let c of[...d.keys()].sort())if(!R.has(c)){let l=q.find(b=>b.sourcePath===c&&!r.has(b.asset.id));f(l?{...p(l.asset.id,c,l.asset.mediaType,l.asset.visibility),path:l.asset.path}:p(`taskset-file-${m(c)}`,c,"application/octet-stream","host_private"),c)}let{importedPackageHash:I,derivedPortableMetadata:w,...E}=i.metadata,A={...i.environment.metadata};if(A.portableExecutionResources!==void 0){let c=x.object({environment:x.unknown(),verifierSet:x.unknown().optional()}).parse(A.portableExecutionResources);A.portableExecutionResources={environment:c.environment}}let F=N.parse({...i,graders:B,metrics:k,environment:{...i.environment,metadata:A},metadata:{...E,...I===void 0?{}:{sourceImportedPackageHash:I},portableFileInventory:te.parse([...r.values()].sort((c,l)=>c.asset.id.localeCompare(l.asset.id)))}}),D=pt(F,d,[...r.values()],s);return{taskset:N.parse({...D.taskset,contentHash:ye(D.taskset)}),generatedFiles:[...g,...D.generatedFiles]}}T(ht,"prepareAuthoredTasksetSource");function vt(t){let e=Ue(t.workspace,t.maximumBytes),s=t.preparation===null?null:z.parse(t.preparation);if(s?e.draft.id!==s.draftId||e.draft.modelScope?.modelId!==s.lineage.owner.modelId||e.draft.profileId!==s.lineage.owner.scopeId||m(e.draft.modelScope?.source??null)!==m(s):e.draft.modelScope?.source!==void 0)throw new Error("Taskset draft differs from its retained source preparation.");let n=Ze({draft:e.draft,now:e.draft.updatedAt,sourcePackageHash:t.sourceWorkspaceHash??e.contentHash}),i=new Map(e.files.map(k=>[k.path,ue(k)]));for(let[k,r]of Ye(e.draft))lt(k)||i.set(k,new TextEncoder().encode(r));let d=ht(n,i,t.adapterId,t.maximumBytes);for(let k of d.generatedFiles)i.set(k.path,new TextEncoder().encode(k.content));let h=Ee({taskset:d.taskset,adapterId:t.adapterId}),o=te.parse(d.taskset.metadata.portableFileInventory),v=K({schemaVersion:"openpond.tasksetPackage.v1",taskset:h.tasksetRelease,environment:h.environmentRelease,verifierSet:h.verifierSetRelease,files:o.map(k=>{let r=i.get(k.sourcePath);if(!r)throw new Error(`Captured Taskset file is missing: ${k.sourcePath}.`);return{asset:k.asset,base64:Buffer.from(r).toString("base64")}})},t.maximumBytes);return s?mt({preparation:s,edited:v,source:t.source}):v}T(vt,"compileTasksetDraftWorkspace");function Vt(t){if(!t.workspace.draft.modelScope)throw new Error("Taskset draft requires a Model owner.");return vt(t)}T(Vt,"compileModelTasksetDraftWorkspace");function Qt(t){let e=C(t.source);if(e.modelResources||e.learningResources)throw new Error("Binding an ordinary Reward requires an ordinary source package.");let s=pe(e);if(!s.trim())throw new Error("Add collection instructions before selecting a saved Reward.");let n=new Map,i=J(e);for(let w of i?.assets??[])n.set(w.id,w);let d=new Set([...e.taskset.tasks.flatMap(w=>w.privilegedContextRef?[w.privilegedContextRef]:[]),...[e.environment.actionSchemaRef,e.environment.observationSchemaRef,e.environment.stateSchemaRef].flatMap(w=>w?[w.id]:[])]);for(let w of d){if(n.has(w))continue;let E=e.files.find(F=>F.asset.id===w);if(!E)throw new Error(`Source Taskset context is missing: ${w}.`);let A=new TextDecoder("utf-8",{fatal:!0}).decode(W(E));n.set(w,ae.parse(P({schemaVersion:"openpond.learningTextAsset.v1",id:w,revision:1,asset:E.asset,text:A})))}for(let w of t.assets){let E=e.files.find(A=>A.asset.id===w.id);if(E&&P({asset:E.asset}).contentHash!==P({asset:w.asset}).contentHash)throw new Error(`Selected Reward conflicts with a source asset: ${w.id}.`);n.set(w.id,w)}let{policy:h,environment:o,environmentRelease:v,tools:k,capabilities:r,verifierSetRelease:R}=e.taskset,g=V.parse(P({schemaVersion:"openpond.taskDefinition.v1",id:`${e.taskset.id}-definition`,revision:1,name:e.taskset.id,description:"",instructions:s,category:"custom",familyNamespace:e.taskset.id,inputSchema:{type:"object"},outputSchema:{type:"object"},rewardBinding:y(t.rewardBinding),harness:null,execution:{policy:h,environment:o,environmentRelease:v,tools:k,capabilities:r,verifierSetRelease:R}})),p=me({...t,assets:[...n.values()],source:{taskset:e.taskset,taskDefinition:g,instructionMode:"per_task",executionResources:{environment:e.environment,verifierSet:e.verifierSet},...i?{execution:i.execution}:{}}}),f=new Map(e.files.map(w=>[w.asset.id,w]));for(let w of p.assets){let E="";for(let A of new TextEncoder().encode(w.text))E+=String.fromCharCode(A);f.set(w.id,{asset:w.asset,base64:btoa(E)})}let{taskset:B,executionResources:q,...I}=p;return K({schemaVersion:"openpond.tasksetPackage.v1",taskset:B,...q,modelResources:I,files:[...f.values()]})}T(Qt,"bindOrdinaryModelTasksetReward");function kt(t){let{request:e,package:s}=t,n=s.learningResources;if(!n)throw new j("model_review_batch_required",422);let i=Z(s.taskset),d=`model-review-${m([t.scope,e.modelId,e.operationId])}`,h=new Map(e.examples.map(a=>[m(a.evidence),a])),o=new Set(n.evidence.map(a=>m(y(a)))),v=new Map(n.decisions.map(a=>[m(a.evidence),a]));if(h.size!==e.examples.length||e.examples.some(a=>!o.has(m(a.evidence))))throw new j("model_review_evidence_mismatch",409);for(let a of[t.binding,...t.rewards,...t.assets])qe(a);Be(t.binding,t.rewards);let k=new Map;for(let a of t.binding.sources){let u=t.rewards.find($=>L(y($),a.reward)),{contentHash:H,...M}=u;k.set(u.contentHash,Me({...M,id:`${d}-reward-${u.contentHash}`,revision:1}))}let r=[...k.values()],{contentHash:R,recipeRef:g,...p}=t.binding,f=_e({...p,id:`${d}-binding`,revision:1,sources:t.binding.sources.map(a=>({...a,reward:y(k.get(a.reward.contentHash))}))},r),B=r.flatMap(a=>[...a.assets,..."verifierRef"in a.implementation?[a.implementation.verifierRef]:[],..."rubricRef"in a.implementation?[a.implementation.rubricRef]:[],..."inputContract"in a.implementation?[a.implementation.inputContract]:[]]),q=[...new Map(B.map(a=>{let u=t.assets.find(H=>H.id===a.id);if(!u)throw new j("model_review_reward_asset_missing",422);if(Ae(u,a),a.visibility==="policy")throw new j("reward_asset_visibility_invalid",422);return[u.id,u]})).values()],{environmentRelease:I,verifierSetRelease:w,...E}=i.definition.execution,{contentHash:A,...F}=i.definition,D=V.parse(P({...F,...e.definition,id:`${d}-definition`,revision:1,rewardBinding:y(f),execution:{...E,policy:{...E.policy,hiddenGraderRefs:De(f,r).filter(a=>a.privileged).map(a=>a.id)}}})),c=ne.parse(P({schemaVersion:"openpond.learningSource.v1",id:d,revision:1,name:`${D.name} review`,kind:"direct",taskDefinition:y(D),enabled:!0,allowedSplits:[...new Set(n.evidence.map(a=>a.submission.split))],mapping:null,adapterVersion:null,reviewOrigin:{modelId:e.modelId,packageHash:s.contentHash,taskset:y(s.taskset),batch:y(n.batch),rewardBinding:y(t.binding)}})),l=n.evidence.map(a=>{let u=h.get(m(y(a))),H=`review-${a.contentHash}`,M=m({instructions:D.instructions,inputSchema:D.inputSchema,outputSchema:D.outputSchema,requiredOutputs:D.requiredOutputs??[],input:u?.input??a.submission.input})!==m({instructions:i.definition.instructions,inputSchema:i.definition.inputSchema,outputSchema:i.definition.outputSchema,requiredOutputs:i.definition.requiredOutputs??[],input:a.submission.input});return U.parse(P({schemaVersion:"openpond.taskEvidence.v1",id:je(c.id,a.submission.exampleId,H),revision:1,source:y(c),submission:{...a.submission,sourceId:c.id,taskDefinition:y(D),attemptId:H,observedOutput:M?null:a.submission.observedOutput,idempotencyKey:`${d}-${a.contentHash}`,...u?.input===void 0?{}:{input:u.input},...u?.expected===void 0?{}:{expected:u.expected},...u?.evaluatorContext===void 0?{}:{evaluatorContext:u.evaluatorContext}},supersedes:y(a),correctionFeedbackId:null,receivedAt:t.now}))}),b=l.flatMap(a=>{let u=h.get(m(a.supersedes)),H=v.get(m(a.supersedes)),M=u?.proposedTarget===void 0?H.approvedTarget:u.proposedTarget;return M===null?[]:[oe.parse({schemaVersion:"openpond.taskFeedbackRecord.v1",id:`feedback-${m([d,a.id])}`,revision:1,submission:{schemaVersion:"openpond.taskFeedback.v1",sourceId:c.id,idempotencyKey:`${d}-${a.id}`,exampleId:a.submission.exampleId,attemptId:a.submission.attemptId,expectedEvidenceHash:a.contentHash,occurredAt:t.now,kind:"target_correction",value:M,note:"Proposed target for the revised task. Grade and review before admission."},status:"pending_review",evidence:y(a),createdAt:t.now,review:null})]});return{source:c,definition:D,binding:f,rewards:r,assets:q,evidence:l,proposals:b}}T(kt,"prepareModelBatchReview");var at=T(t=>`model-batch-review-${m([t.modelId,t.operationId])}`,"operation");function ss(t){let e=C(t);if(!e.learningResources)throw new j("model_review_batch_required",422);let s=Z(e.taskset);return tt.parse({schemaVersion:"openpond.modelBatchReviewInspection.v1",packageHash:e.contentHash,definition:s.definition,binding:s.binding,evidence:e.learningResources.evidence,decisions:e.learningResources.decisions})}T(ss,"inspectModelBatchPackage");async function gt(t,e){let s=He.parse(e),n=await t.operation(at(s));if(!n)return null;if(n.requestHash!==m(s))throw new j("learning_idempotency_conflict",409);return nt(t,s,n.resources)}T(gt,"findModelBatchReview");async function as(t,e){let s=He.parse(e.request),n=await gt(t,s);if(n)return n;let i=C(e.package);if(!i.learningResources)throw new j("model_review_batch_required",422);let d=Z(i.taskset),h=s.rewardBindingRef,o=!h||L(h,y(d.binding)),v=o?d.binding:await Se(t,"binding",h),k=o?d.rewards:await Promise.all(v.sources.map(f=>Se(t,"reward",f.reward))),r=new Set(k.flatMap(f=>[...f.assets,..."verifierRef"in f.implementation?[f.implementation.verifierRef]:[],..."rubricRef"in f.implementation?[f.implementation.rubricRef]:[],..."inputContract"in f.implementation?[f.implementation.inputContract]:[]]).map(f=>f.id)),R=o?i.learningResources.assets:await Promise.all([...r].map(f=>be(t,"asset",f,1))),g=kt({...e,request:s,package:i,binding:v,rewards:k,assets:R}),p=[];for(let f of g.assets){let B=await t.get("asset",f.id,1);if(B&&B.contentHash!==f.contentHash)throw new j("model_review_asset_conflict",409);B||await t.put("asset",f,0)}for(let f of g.rewards)await t.put("reward",f,0);await t.put("binding",g.binding,0),await t.put("definition",g.definition,0),await t.put("source",g.source,0,{parentId:s.modelId}),p.push({kind:"source",id:g.source.id,revision:1});for(let f of g.evidence)await t.put("evidence",f,0,{parentId:g.source.id}),p.push({kind:"evidence",id:f.id,revision:1});for(let f of g.proposals)await t.put("feedback",f,0,{parentId:f.evidence.id,status:f.status}),p.push({kind:"feedback",id:f.id,revision:1});return await t.saveOperation(at(s),{requestHash:m(s),resources:p}),nt(t,s,p)}T(as,"beginModelBatchReview");async function nt(t,e,s){let n=await Promise.all(s.map(i=>be(t,i.kind,i.id,i.revision)));return st.parse({schemaVersion:"openpond.modelBatchReviewReceipt.v1",operationId:e.operationId,modelId:e.modelId,source:n.find(i=>i.schemaVersion==="openpond.learningSource.v1"),evidence:n.filter(i=>i.schemaVersion==="openpond.taskEvidence.v1"),proposals:n.filter(i=>i.schemaVersion==="openpond.taskFeedbackRecord.v1")})}T(nt,"readReceipt");var ot=x.object({draft:ee,filePaths:x.array(x.object({assetId:x.string().min(1),paths:x.array(re).min(1).max(1e4)}).strict()).max(1e4)}).strict();function rs(t){let e=C(t.source),s=ee.parse(t.sourceDraft),n=z.parse(t.preparation);if(e.contentHash!==n.sourcePackageHash||!L(y(e.taskset),n.sourceTasksetRef))throw new Error("Taskset draft preparation differs from its source package.");if(e.learningResources)throw new Error("Reviewed Tasksets require their reviewed authoring workflow.");if(!!e.modelResources!=(n.authoringGraph==="bound"))throw new Error("Taskset draft authoring graph differs from its source.");let i=te.parse(s.metadata.portableFileInventory??[]),d=T(r=>X(r)?`source-artifacts/${e.contentHash}/${m(r)}/${r.split("/").at(-1)}`:r,"sourcePath");if([...s.tasks.flatMap(r=>(r.assets??[]).map(R=>R.artifactRef)),...(s.environment.resources??[]).map(r=>r.path),...e.taskset.tasks.flatMap(r=>(r.requiredOutputs??[]).flatMap(R=>R.schemaRef?[R.schemaRef.path]:[])),...s.metrics.customAggregator?[s.metrics.customAggregator.module]:[],...s.graders.flatMap(r=>r.kind==="custom_verifier"?[r.module]:[])].some(X))throw new Error("A referenced source asset occupies a reserved Taskset authoring path.");let o=e.files.map(r=>{let R=new Set([r.asset.path]);for(let g of i)g.asset.id===r.asset.id&&R.add(g.sourcePath);for(let g of s.tasks)for(let p of g.assets??[])p.id===r.asset.id&&R.add(p.artifactRef);for(let g of e.taskset.graders)if(g.kind==="custom_verifier"&&g.verifierRef.id===r.asset.id){let p=s.graders.find(f=>f.id===g.id);p?.kind==="custom_verifier"&&R.add(p.module)}return{assetId:r.asset.id,paths:[...R].map(d)}}),v={...s.metadata};if(e.modelResources)for(let r of["taskDefinition","rewardBinding","rewardExecution","derivedPortableMetadata","modelTasksetDerivation","importedPackageHash"])delete v[r];let k=ee.parse({...s,id:n.draftId,revision:1,status:"draft",graders:s.graders.map(r=>({...r,metadata:{...r.metadata,portableGrader:e.taskset.graders.find(R=>R.id===r.id)}})),environment:{...s.environment,metadata:{...s.environment.metadata,portableExecutionResources:{environment:e.environment}}},modelScope:{modelId:n.lineage.owner.modelId,expectedModelRevision:t.expectedModelRevision,source:n},publishedTasksetRef:n.tasksetRevision>1?n.sourceTasksetRef:null,metadata:{...v,modelTasksetAuthoring:n.lineage,portableFileInventory:i.map(r=>({...r,sourcePath:d(r.sourcePath),asset:{...r.asset,id:X(r.sourcePath)?`source-artifact-${m({packageHash:e.contentHash,assetId:r.asset.id})}`:r.asset.id,path:d(r.asset.path)}}))}});return ot.parse({draft:k,filePaths:o})}T(rs,"prepareTasksetDraftSource");function is(t){let e=ot.parse(t.initialized),s=C(t.source);if(e.draft.modelScope?.source?.sourcePackageHash!==s.contentHash)throw new Error("Taskset draft lost its source preparation.");let n=new Map;for(let d of e.filePaths){let h=s.files.find(o=>o.asset.id===d.assetId);if(!h)throw new Error("Taskset draft source asset is missing.");for(let o of d.paths){let v=n.get(o);if(v&&v.contentHash!==h.asset.contentHash)throw new Error("Taskset draft source paths conflict.");n.set(o,{path:o,contentHash:h.asset.contentHash,sizeBytes:h.asset.sizeBytes,base64:h.base64})}}for(let d of Xe(e.draft))if(!n.has(d.relativePath)){let h=new TextEncoder().encode(d.source);n.set(d.relativePath,{path:d.relativePath,contentHash:G(h),sizeBytes:h.byteLength,base64:Buffer.from(h).toString("base64")})}let i=e.draft;if(i.metrics.customAggregator){let d=n.get(i.metrics.customAggregator.module);if(!d)throw new Error("Declared Taskset metric module is missing.");ue(d),i=ee.parse({...i,metrics:{...i.metrics,customAggregator:{...i.metrics.customAggregator,contentHash:d.contentHash}}})}return Qe({schemaVersion:"openpond.tasksetDraftWorkspace.v1",draft:i,files:[...n.values()]})}T(is,"materializeTasksetDraftWorkspace");export{tt as a,He as b,st as c,$t as d,mt as e,te as f,lt as g,ht as h,vt as i,Vt as j,Qt as k,ss as l,gt as m,as as n,ot as o,rs as p,is as q};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
-
import{
|
|
2
|
+
import{l as i}from"./chunk-J572ANHX.js";import{A as e}from"./chunk-PF56N7ZY.js";var t=i.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((m,a)=>{m.maximumDailySpendUsd<m.maximumSpendUsd&&a.addIssue({code:"custom",path:["maximumDailySpendUsd"],message:"The daily budget must cover one update."})});export{t as a};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
+
import{A as h,C as I,D as f,G as u,H as S,I as k,f as R,h as y,ma as w,oa as n,qa as P,ra as g,sa as T,ua as v}from"./chunk-YNQWJWIC.js";import{p}from"./chunk-J572ANHX.js";import{A as e}from"./chunk-PF56N7ZY.js";import{a as l}from"./chunk-FTQLQJQV.js";var c=e.string().trim().min(1).max(240),o=e.string().trim().min(1).max(5e3),E=e.enum(["no_training","prompting","retrieval","sft","preference","grpo_rft","sdft_opsd","sdpo","agentic_rl"]),C=e.object({id:c,taskIndex:e.number().int().nonnegative(),label:k,output:e.record(e.string(),e.unknown()),infrastructureError:e.string().trim().min(1).max(1e4).nullable(),expectedPassed:e.boolean(),expectedRewardEligible:e.boolean(),metadata:e.record(e.string(),e.unknown()).default({})}),j=e.object({schemaVersion:e.literal("openpond.capabilityDiagnosis.v1"),summary:e.string().trim().min(1).max(1e4),stableBehavior:e.array(o).max(100).default([]),changingKnowledge:e.array(o).max(100).default([]),requiredContext:e.array(o).max(100).default([]),requiredTools:e.array(c).max(100).default([]),intervention:E,trainingEligible:e.boolean(),rationale:e.array(o).min(1).max(100),confidence:e.number().min(0).max(1)}),F=e.object({id:c,sourceId:c,sourceTurnId:c.nullable(),split:h,origin:e.enum(["extracted","corrected","synthetic","expert_authored"]),inputPrompt:e.string().trim().min(1).max(1e5),expectedOutputText:e.string().trim().min(1).max(2e5).nullable(),rationale:o}),D=e.object({schemaVersion:e.literal("openpond.taskDesignProposal.v1"),id:c,name:e.string().trim().min(1).max(500),objective:e.string().trim().min(1).max(2e4),diagnosis:j.default({schemaVersion:"openpond.capabilityDiagnosis.v1",summary:"Reproduce the selected approved behavior.",stableBehavior:[],changingKnowledge:[],requiredContext:[],requiredTools:[],intervention:"sft",trainingEligible:!0,rationale:["The selected examples were supplied as demonstrations."],confidence:.5}),taskKind:u.shape.taskKind,sourceIds:e.array(c).min(1).max(1e5),assumptions:e.array(o).max(1e3),successCriteria:e.array(o).min(1).max(1e3),proposedGraders:e.array(S).max(1e3).default([]),graderFixtures:e.array(C).max(1e5).default([]),generatedFiles:e.array(g).max(1e3).default([]),proposedExamples:e.array(F).max(1e5).default([]),proposedMethod:v.shape.recommendedMethod,trainingPath:T.nullable().default(null),policy:f,warnings:e.array(e.string().trim().min(1)).default([]),createdAt:e.string().trim().min(1)});var q=e.string().min(1).max(240),_=e.string().regex(/^[a-f0-9]{64}$/),H=e.array(e.object({source:I,excerpts:e.array(e.object({role:e.enum(["user","assistant"]),text:e.string().max(2e5),turnId:q}).strict()).max(200)}).strict()).min(1).max(20),Ht=e.discriminatedUnion("action",[e.object({action:e.literal("messages"),id:q,evidence:H,instruction:e.string().max(2*1024*1024),buildSpecification:P,currentProposal:D.nullable().default(null)}).strict(),e.object({action:e.literal("validate"),evidence:H,content:e.string().max(2*1024*1024)}).strict()]),qt=e.object({messages:e.array(e.object({role:e.enum(["system","user"]),content:e.string()}).strict()).min(1).max(20),skillHash:_}).strict(),_t=e.object({proposal:D,skillHash:_}).strict(),r=n.shape.id,s=e.number().int().positive(),d=e.string().regex(/^[a-f0-9]{64}$/),m={teamId:r,modelId:r},At=e.object({schemaVersion:e.literal("openpond.tasksetDraftCreate.v1"),operationId:r,modelId:r,expectedModelRevision:s,name:n.shape.name}).strict(),Lt=e.object({schemaVersion:e.literal("openpond.tasksetDraftSourceDescriptor.v1"),...m,expectedModelRevision:s,sourcePackageHash:d}).strict(),Ut=e.object({schemaVersion:e.literal("openpond.tasksetDraftReadback.v1"),...m,draft:n,workspaceHash:d,projectEtag:d}).strict().refine(t=>t.draft.profileId===t.teamId&&t.draft.modelScope?.modelId===t.modelId,"The hosted draft must belong to its declared workspace and Model."),A=e.object({id:r,revision:s,name:n.shape.name,status:w,updatedAt:n.shape.updatedAt,sourceTasksetRef:p.nullable()}).strict(),Ot=e.object({schemaVersion:e.literal("openpond.tasksetDraftList.v1"),...m,drafts:e.array(A).max(100),nextCursor:e.string().min(1).max(2e3).nullable()}).strict(),Gt=e.object({expectedDraftRevision:s,draft:n}).strict(),Vt=e.object({expectedDraftRevision:s,expectedModelRevision:s}).strict(),L=e.object({expectedDraftRevision:s,expectedWorkspaceHash:d}).strict(),Bt=e.object({schemaVersion:e.literal("openpond.tasksetDraftValidation.v1"),...m,draftId:r,draftRevision:s,workspaceHash:d,valid:e.boolean(),issues:e.array(e.object({code:e.string().min(1),severity:e.enum(["warning","error"]),message:e.string(),path:e.string().nullable()}).strict()),packageHash:d.nullable(),tasksetRef:p.nullable()}).strict().refine(t=>t.valid?t.packageHash!==null&&t.tasksetRef!==null&&t.issues.every(a=>a.severity!=="error"):t.packageHash===null&&t.tasksetRef===null&&t.issues.some(a=>a.severity==="error"),"Validation must retain either a compiled package or publication errors."),zt=L.extend({operationId:r,expectedPackageHash:d,expectedTasksetRef:p}).strict(),Kt=e.object({schemaVersion:e.literal("openpond.tasksetDraftFileList.v1"),...m,draftId:r,draftRevision:s,files:e.array(R).max(10020)}).strict(),Wt=e.object({schemaVersion:e.literal("openpond.tasksetDraftFileReadback.v1"),...m,draftId:r,draftRevision:s,file:y}).strict(),Nt=e.object({schemaVersion:e.literal("openpond.tasksetDraftDeletion.v1"),...m,draftId:r,revision:s,deleted:e.literal(!0)}).strict(),Xt=n.shape.id,Yt=e.number().int().positive();var i=e.string().trim().min(1).max(500),Zt=e.object({projectId:i.optional(),tasksetId:i.optional(),draftId:i.optional(),taskId:i.optional(),query:e.string().trim().max(1e3).default(""),split:e.enum(["train","validation","test","frozen_eval"]).optional(),after:e.string().min(1).max(2e3).optional(),limit:e.number().int().min(1).max(100).default(30)}).strict(),U=e.object({id:i,method:e.enum(["code","judge","human"]),required:e.boolean()}),O=e.object({tasksetId:i,tasksetName:e.string(),tasksetRevision:e.number().int().positive(),tasksetHash:e.string(),taskId:i,ordinal:e.number().int().nonnegative(),title:e.string(),description:e.string(),split:e.string(),scoring:e.array(U),configuration:e.enum(["configured","needs_reward","needs_checks"]),draftId:i.nullable().default(null),modelId:i.nullable().default(null)}),ea=e.object({items:e.array(O).max(100),nextCursor:e.string().nullable()});function ta(t,a){let $=[t.instruction,t.prompt,t.request,t.question,t.message].find(b=>typeof b=="string"&&b.trim().length>0),M=typeof t.title=="string"?t.title.trim():"",x=$?.trim()??"";return{title:(M||x||a).slice(0,180),description:x.slice(0,2e3)}}l(ta,"describeTaskInput");function aa(t){return t.map(a=>({id:a.id,method:a.kind==="model_judge"?"judge":a.kind==="human"?"human":"code",required:a.hardGate}))}l(aa,"summarizeTaskScoring");function sa(t){return t.some(a=>a.kind!=="human")?t.some(a=>a.kind==="model_judge"&&a.calibrationStatus!=="passed")?"needs_checks":"configured":"needs_reward"}l(sa,"taskConfiguration");export{E as a,D as b,Ht as c,Zt as d,O as e,ea as f,ta as g,aa as h,sa as i};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
-
import{
|
|
2
|
+
import{Sa as _,Va as C}from"./chunk-YNQWJWIC.js";import{f as R,m}from"./chunk-VNJAAYNQ.js";import{Na as A}from"./chunk-PBZCXPPC.js";import{A as e}from"./chunk-PF56N7ZY.js";import{a as l}from"./chunk-FTQLQJQV.js";var u=e.string().trim().min(1).max(200),P=e.object({operationId:u,execution:R,executionKind:e.literal("recorded_evidence").optional(),graders:e.array(A).min(1).max(100),maximumCostUsd:e.number().finite().min(1e-6).max(1e4),mappings:e.array(e.object({graderId:u,fields:_}).strict()).max(100).optional()}).strict().superRefine((a,n)=>{new Set(a.graders.map(o=>o.id)).size!==a.graders.length&&n.addIssue({code:"custom",path:["graders"],message:"Select each grader once."}),a.mappings&&(new Set(a.mappings.map(o=>o.graderId)).size!==a.mappings.length||a.mappings.some(o=>!a.graders.some(c=>c.id===o.graderId)))&&n.addIssue({code:"custom",path:["mappings"],message:"Map each selected grader at most once."})}),q=e.object({schemaVersion:e.literal("openpond.experimentScoringPass.v1"),id:u,teamId:u,revision:e.number().int().positive(),request:P,graders:e.array(C).min(1).max(100),status:e.enum(["queued","running","cancelling","completed","failed","cancelled"]),totalCount:e.number().int().min(1).max(1e4),counts:e.object({pending:e.number().int().nonnegative(),running:e.number().int().nonnegative(),scored:e.number().int().nonnegative(),unavailable:e.number().int().nonnegative(),failed:e.number().int().nonnegative(),cancelled:e.number().int().nonnegative()}).strict(),resultAvailable:e.boolean(),createdAt:e.iso.datetime(),startedAt:e.iso.datetime().nullable(),completedAt:e.iso.datetime().nullable(),error:e.object({code:u,message:e.string().max(2e3)}).strict().nullable()}).strict(),L=q.extend({contentHash:e.string().regex(/^[a-f0-9]{64}$/)});function O(a){let n=L.parse(a),{contentHash:o,...c}=n;if(m(c)!==o||Object.values(n.counts).reduce((r,d)=>r+d,0)!==n.totalCount)throw new Error("Scoring pass integrity or population accounting failed.");let t=["completed","failed","cancelled"].includes(n.status);if(t&&(!n.completedAt||n.counts.pending||n.counts.running)||!t&&(n.completedAt!==null||n.resultAvailable)||n.status==="completed"&&!n.resultAvailable)throw new Error("Scoring pass lifecycle differs from its retained result.");if(n.graders.length!==n.request.graders.length||new Set(n.graders.map(r=>r.feedbackKey)).size!==n.graders.length||n.graders.some((r,d)=>m(r.release)!==m(n.request.graders[d])||m(r.mappings??[])!==m(n.request.mappings?.find(f=>f.graderId===r.release?.id)?.fields??[])))throw new Error("Scoring pass graders differ from their exact admission.");return n}l(O,"verifyExperimentScoringPass");var I=8388608;async function B(a,n,o,c){let t=new AbortController,r=o.signal,d=l(()=>t.abort(r?.reason),"forward");r?.aborted?d():r?.addEventListener("abort",d,{once:!0});let f=setTimeout(()=>t.abort(new Error("Connected evidence request timed out.")),6e4),s,h=l(()=>{s&&s.cancel(t.signal.reason).catch(()=>{})},"abortReader");t.signal.addEventListener("abort",h,{once:!0});let v=new Promise((w,g)=>{let p=l(()=>g(t.signal.reason??new DOMException("Request aborted","AbortError")),"abort");t.signal.aborted?p():t.signal.addEventListener("abort",p,{once:!0})});try{let w=a(n,{...o,signal:t.signal}).then(i=>{if(t.signal.aborted)throw i.body?.cancel(t.signal.reason).catch(()=>{}),t.signal.reason;return i}),g=await Promise.race([w,v]),p=g.headers.get("content-length");if(s=g.body?.getReader(),t.signal.aborted)throw await s?.cancel(t.signal.reason),t.signal.reason;if(p&&Number(p)>I)throw await s?.cancel(),c(502,"connected_response_too_large","Connected evidence response exceeds 8 MiB.");let x=[],b=0;if(s)for(;;){let i=await Promise.race([s.read(),v]);if(i.done)break;if(b+=i.value.byteLength,b>I)throw await s.cancel(),c(502,"connected_response_too_large","Connected evidence response exceeds 8 MiB.");x.push(i.value)}let S=new Uint8Array(b),E=0;for(let i of x)S.set(i,E),E+=i.byteLength;let y;try{y=JSON.parse(new TextDecoder("utf-8",{fatal:!0}).decode(S))}catch{throw c(502,"connected_response_invalid","Connected evidence response is not valid JSON.")}return{response:g,value:y}}finally{clearTimeout(f),r?.removeEventListener("abort",d),t.signal.removeEventListener("abort",h),s?.releaseLock()}}l(B,"fetchConnectedJson");export{P as a,O as b,B as c};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
+
import{b}from"./chunk-F7QTIHXX.js";import{ia as M}from"./chunk-M3FLEZ4E.js";import{Qb as x,m as T,v as A}from"./chunk-ABF3W2MO.js";import{n as c,o as S}from"./chunk-VVNV4NNW.js";import{A as I}from"./chunk-PF56N7ZY.js";import{a as R}from"./chunk-FTQLQJQV.js";function j(e,a,i){if(a==="agent_action"){let n=e.find(u=>u.name==="workspace_action_result"&&u.action==="profile_workflow_action")?.output;if(typeof n!="string")throw new Error("Profile Agent action evaluation did not produce a released action result.");return n}if(i==="completed"){let n=[...e].reverse().find(s=>s.name==="turn.completed"),r=n?.data?.providerResponse,o=n?.data;if(!r&&o?.turn?.status==="completed"){let s=[...e].reverse().find(t=>P(t)!==null);if(!s)throw new Error("Native Profile evaluation has no retained final answer.");let d=P(s);return e.filter(t=>P(t)===d).map(t=>t.output??"").join("")}if(typeof r?.requestId!="string"||!r.requestId||typeof r.contentHash!="string")throw new Error("Profile evaluation has no retained final provider response.");let p=e.filter(s=>s.name==="assistant.delta"&&s.data?.providerRequestId===r.requestId).map(s=>s.output??"").join("");if(c(p)!==r.contentHash)throw new Error("Profile evaluation final provider response differs from its retained trace.");return b(e)??p}return e.filter(n=>n.name==="assistant.delta"&&typeof n.output=="string").map(n=>n.output??"").join("")}R(j,"profileEvaluationOutput");function P(e){let a=e.data;return e.name==="assistant.delta"&&a?.provider==="codex"&&a.phase==="final_answer"&&typeof a.itemId=="string"?a.itemId:null}R(P,"nativeFinalAnswerItemId");async function _(e){let{store:a,manifest:i,receipt:n}=e;if(!n.metadata.retainedEvidenceRef)return null;let u=x.parse(n.metadata.retainedEvidenceRef),[r,o]=await Promise.all([a.getSession(u.sessionId),a.getTurn(u.turnId)]),p=r?.metadata?.profileEvaluationRun,s=i.profileEvaluation;if(!r||!o||o.sessionId!==r.id||!s||!r.currentProfile||c(r.currentProfile)!==c(e.profileRef)||c(p)!==c({id:i.id,contentHash:i.contentHash})||r.metadata?.taskId!==n.taskId||r.metadata?.seed!==n.seed||!o.completedAt||o.completedAt!==n.completedAt||o.startedAt!==n.startedAt||!o.harnessSnapshot||o.harnessSnapshot.harnessRelease.id!==s.harnessRelease.id||o.harnessSnapshot.harnessRelease.contentHash!==s.harnessRelease.contentHash||i.policy.kind!=="model"||!o.modelRef||o.modelRef.providerId!==i.policy.model.provider||o.modelRef.modelId!==i.policy.model.model)throw new Error("Retained Profile policy turn differs from its admitted case.");let d=await a.runtimeEventsForTurn(o.id);if(d.some(v=>v.turnId!==o.id)||c(d)!==n.traceHash)throw new Error("Retained Profile policy trace differs from its immutable receipt.");let t=j(d,s.target.kind,o.status);if(n.outputHash!==null&&c({text:t})!==n.outputHash)throw new Error("Retained Profile output differs from its immutable receipt.");let m=n.artifactRefs.flatMap(v=>{let y=d.filter(l=>(l.action==="work_output_save"||l.action==="sandbox_save_output")&&l.status==="completed").flatMap(l=>{let C=l.data&&typeof l.data=="object"?l.data:{},k=M.safeParse(C.outputRef);return k.success?[k.data]:[]}).filter(l=>l.sourceTaskId===r.id&&l.sourceTurnId===o.id&&`${r.id}/${l.id}/${l.revision}/${l.title}`===v.id&&l.sha256===v.contentHash&&l.sizeBytes===v.sizeBytes&&l.contentType===v.mediaType);if(y.length!==1)throw new Error("The case output has no unique sealed saved-file identity.");let h=y[0];if(h.location.kind!=="managed")return[];let H=`/api/work/outputs/${encodeURIComponent(h.location.fileId)}`;if(h.location.downloadPath!==H)throw new Error("The saved output has no canonical managed download route.");return[{id:h.id,title:h.title,revision:h.revision,contentType:h.contentType,sizeBytes:h.sizeBytes,sha256:h.sha256,downloadPath:H}]}),f=await a.listModelUsageRecords({sessionId:r.id,turnId:o.id,limit:1e4}),E=e.eventAfterId?d.findIndex(v=>v.id===e.eventAfterId):-1;if(e.eventAfterId&&E<0)throw new Error("Profile trace cursor is unavailable in this case.");let g=E+1,q=Math.max(1,Math.min(250,e.eventLimit??100)),w=d.slice(g,g+q);return{ref:u,prompt:o.prompt,output:n.outputHash===null?null:{text:t},partialOutput:n.outputHash===null&&t?{text:t}:null,error:o.error,events:w,eventCount:d.length,nextEventCursor:g+w.length<d.length?w.at(-1).id:null,files:m,usage:f,usageCoverage:f.length===1e4?"partial":"complete"}}R(_,"readProfileEvaluationPolicyEvidence");var W=I.object({runId:I.string().trim().min(1).max(240),receiptId:I.string().trim().min(1).max(500).optional(),eventAfterId:I.string().trim().min(1).max(500).optional(),eventLimit:I.number().int().min(1).max(250).optional(),manifest:A.optional()}).strict().refine(e=>e.receiptId||!e.eventAfterId&&!e.eventLimit,"Select a case before requesting its trace page.").refine(e=>!e.manifest||e.receiptId,"Interrupted-run inspection requires one exact case.");async function D(e){let a=await e.store.getProfileEvaluationRun(e.runId);if(a&&c(a.profileRef)!==c(e.profileRef))throw new Error("Profile evaluation run is unavailable in the selected Profile.");let i=a?.manifest??e.manifest;if(!i||!a&&!e.receiptId)throw new Error("Profile evaluation run is unavailable in the selected Profile.");if(a){if(e.manifest&&e.manifest.contentHash!==a.manifest.contentHash)throw new Error("Profile evaluation run differs from its pinned manifest.")}else if(S(i,"Interrupted Profile evaluation manifest"),i.id!==e.runId||i.profileEvaluation?.profileId!==e.profileRef.profileId||e.profileRef.source==="openpond_git"&&i.metadata.profileRepositoryId!==e.profileRef.repositoryId)throw new Error("Profile evaluation run is unavailable in the selected Profile.");let n=i.population.map((r,o)=>({member:r,index:o})).filter(({member:r})=>!e.receiptId||r.receiptId===e.receiptId);if(e.receiptId&&n.length!==1)throw new Error("Profile evaluation case is unavailable in the selected run.");let u=await Promise.all(n.map(async({member:r,index:o})=>{let p=a?null:await e.store.getProfileEvaluationReceipt(r.receiptId),s=a?.receiptRefs[o]??(p?{id:p.id,contentHash:p.contentHash}:null),d=a?.gradeRefs[o]??p?.graderEvidenceRefs[0];if(!s||!d)throw new Error("Profile evaluation run has incomplete case evidence.");let[t,m]=await Promise.all([e.store.getProfileEvaluationReceipt(s.id),e.store.getProfileEvaluationGrade(d.contentHash)]);if(!t||!a&&!T(t)||t.contentHash!==s.contentHash||t.id!==r.receiptId||t.taskId!==r.taskId||t.seed!==r.seed||t.runManifest.id!==i.id||t.runManifest.contentHash!==i.contentHash||!m||m.contentHash!==d.contentHash||!t.graderEvidenceRefs.some(f=>f.id===d.id&&f.contentHash===d.contentHash))throw new Error("Profile evaluation case evidence differs from its retained run.");return{taskId:r.taskId,seed:r.seed,receiptId:t.id,receiptHash:t.contentHash,traceHash:t.traceHash,outputHash:t.outputHash,score:m.score,passed:m.passed,gradingStatus:m.gradingStatus,failureClass:m.failureClass,artifactCount:t.artifactRefs.length,latencyMs:t.latencyMs,costUsd:t.costUsd,terminal:t.terminal,feedback:m.components.map(f=>({graderId:f.graderId,graderVersion:f.graderVersion,score:f.score,passed:f.passed,feedback:f.feedback})),...e.receiptId?{receipt:t,evidence:await _({store:e.store,profileRef:e.profileRef,manifest:i,receipt:t,eventAfterId:e.eventAfterId,eventLimit:e.eventLimit})}:{}}}));return{runId:i.id,sourceRevision:i.profileEvaluation?.sourceRevision??null,cases:u}}R(D,"inspectProfileEvaluationRun");export{j as a,W as b,D as c};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
+
import{a as S}from"./chunk-7HRLWPPZ.js";import{x as y}from"./chunk-PBZCXPPC.js";import{A as e}from"./chunk-PF56N7ZY.js";import{a as s}from"./chunk-FTQLQJQV.js";var p=e.string().trim().min(1).max(191),x=e.string().regex(/^[a-f0-9]{64}$/),J=e.discriminatedUnion("mode",[e.object({mode:e.literal("automatic"),objective:e.enum(["balanced","fast","economical"])}).strict(),e.object({mode:e.literal("manual"),availabilityId:p,gpuType:e.string().trim().min(1).max(256)}).strict()]),oe=e.object({estimateId:p,inputHash:x,requestHash:x,pricingVersion:p,expiresAt:e.string().datetime({offset:!0}),token:e.string().min(1).max(8192)}).strict(),re=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:p,gpuType:e.string().min(1).max(256),provider:p,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 se="application/vnd.openpond.training+json;version=2",R="application/vnd.openpond.model-project+json;version=2",le=1048576,ce=67108864,de=8388608,h=524288,B=8388608,u=class extends Error{static{s(this,"OpenPondProtocolError")}code;constructor(t,n){super(n),this.name="OpenPondProtocolError",this.code=t}};function T(t){return JSON.stringify(_(t))}s(T,"canonicalJson");function U(t){return new TextEncoder().encode(T(t)).byteLength}s(U,"canonicalJsonByteLength");async function O(t){let n=new TextEncoder().encode(T(t)),i=await globalThis.crypto.subtle.digest("SHA-256",n);return Array.from(new Uint8Array(i),o=>o.toString(16).padStart(2,"0")).join("")}s(O,"canonicalSha256");function E(t,n,i){let o=U(t);if(o>n)throw new u("payload_too_large",`${i} is ${o} bytes; the maximum is ${n} bytes.`)}s(E,"assertCanonicalPayloadSize");function D(t,n,i){let o=new TextEncoder().encode(t).byteLength;if(o>n)throw new u("response_too_large",`${i} is ${o} bytes; the maximum is ${n} bytes.`);try{return JSON.parse(t)}catch{throw new u("invalid_json",`${i} was not valid JSON.`)}}s(D,"parseBoundedJson");function _(t){if(t===null||typeof t=="string"||typeof t=="boolean")return t;if(typeof t=="number"){if(!Number.isFinite(t))throw new u("non_json_value","Canonical JSON cannot contain a non-finite number.");return Object.is(t,-0)?0:t}if(Array.isArray(t))return t.map(n=>_(n));if(typeof t=="object"){let n=Object.getPrototypeOf(t);if(n!==Object.prototype&&n!==null)throw new u("non_json_value","Canonical JSON accepts only plain objects.");let i={};for(let o of Object.keys(t).sort()){let r=t[o];if(r===void 0||typeof r=="function"||typeof r=="symbol")throw new u("non_json_value",`Canonical JSON cannot contain ${typeof r} at ${o}.`);i[o]=_(r)}return i}throw new u("non_json_value",`Canonical JSON cannot contain ${typeof t}.`)}s(_,"normalizeCanonicalJson");var a=e.string().trim().min(1).max(500),d=e.string().regex(/^[a-f0-9]{64}$/),c=e.string().datetime({offset:!0}),m=e.object({id:a,contentHash:d}).strict(),P=m.extend({revision:e.number().int().positive()}).strict(),f=e.object({schemaVersion:e.literal("openpond.baseModelPreference.v1"),modelId:a,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:a.nullable(),source:e.enum(["managed","local","builtin"])}).strict(),k=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:k,parameterization:e.enum(["lora","full"])}).catchall(e.unknown()),q=e.object({profileProjectId:a,sourceRevision:e.string().regex(/^[a-f0-9]{40,64}$/),harnessRelease:m}).strict(),V=e.object({profileProjectId:a,sourceRevision:e.string().regex(/^[a-f0-9]{40,64}$/),catalogHash:d,definitionId:a,harnessRelease:m,tasksetRelease:m}).strict(),N=e.object({tasksetRef:P.nullable().default(null),evaluationTasksetRef:P.nullable().optional(),profileSource:q.nullable().optional(),profileEvaluation:V.nullable().optional(),rewardBindingRef:P.nullable().optional(),tasksetRelease:m.nullable().default(null),harnessRelease:m.nullable().default(null),baseModel:f.nullable().default(null),method:k.nullable().default(null),destinationId:a.nullable().default(null),managedRolloutPlacement:e.enum(["local","remote"]).default("remote"),managedGpuPlacementObjective:e.enum(["fast","balanced","economical"]).default("balanced"),managedGpuSelection:J.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(),C=N,G=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:a,projectId:a,portableProjectId:a,revision:e.number().int().positive(),etag:d,syncedSourceRevision:e.number().int().positive(),syncedAt:c,tasksets:e.array(e.object({localTasksetId:a,localTasksetHash:d.nullable().default(null),releaseId:a,releaseRevision:e.number().int().positive(),releaseHash:d,packageHash:d.nullable().default(null),hostedTasksetId:a,syncedAt:c}).strict()).max(1e4).default([])}).strict(),z=e.object({localTasksetId:a,releaseId:a,releaseRevision:e.number().int().positive(),releaseHash:d,state:e.enum(["syncing","synced","sync_failed"]),hostedTasksetId:a.nullable().default(null),lastAttemptAt:c,syncedAt:c.nullable().default(null),lastError:e.string().trim().min(1).max(5e3).nullable().default(null)}).strict(),Y=e.object({schemaVersion:e.literal("openpond.modelProject.v2"),id:a,profileId:a,revision:e.number().int().positive().default(1),name:e.string().trim().min(1).max(200),objective:e.string().trim().max(5e3).nullable(),defaultBaseModel:f.nullable(),defaultDestinationId:a.nullable(),trainingSetup:N,hosted:G.nullable().default(null),tasksetSyncs:e.array(z).max(1e4).default([]),createdAt:c,updatedAt:c}).strict(),H=Y.pick({id:!0,profileId:!0,name:!0,objective:!0,defaultBaseModel:!0,defaultDestinationId:!0,trainingSetup:!0}),X=e.object({schemaVersion:e.literal("openpond.modelProjectSave.v1"),operationId:a,expectedRevision:e.number().int().nonnegative(),project:H,learning:S.optional()}).strict().superRefine((t,n)=>{t.learning&&t.expectedRevision!==0&&n.addIssue({code:"custom",path:["learning"],message:"Use learning settings to edit an existing Model's policy."})}),F=e.object({schemaVersion:e.literal("openpond.modelProjectConfigurationCheck.v1"),configurationHash:d,projectId:a,expectedRevision:e.number().int().nonnegative(),checkedAt:c,canSave:e.boolean(),deferred:e.array(e.enum(["base_model","taskset"])).max(2),findings:e.array(e.object({code:a,severity:e.enum(["error","warning"]),message:e.string().min(1).max(5e3),field:e.string().min(1).max(500).nullable()}).strict()).max(100)}).strict(),Z=e.object({id:a,name:e.string().min(1).max(500),available:e.boolean(),preference:f}).strict();async function ue(t){let n=v(t);return O({project:n.project,expectedRevision:n.expectedRevision,...n.learning?{learning:n.learning}:{}})}s(ue,"modelProjectConfigurationHash");function v(t){try{y(t,h)}catch{throw new $(400,{schemaVersion:"openpond.modelProjectApiError.v2",code:"model_configuration_json_invalid",message:"Model configuration must be bounded JSON data.",retryable:!1,requestId:null,details:{}})}return X.parse(t)}s(v,"parseModelProjectSaveRequest");async function me(t,n,i){y(t,h);let o=H.parse(t);E(o,h,"Model configuration");let r=i?S.parse(i):void 0,l=await O({project:o,expectedRevision:n,...r?{learning:r}:{}});return v({schemaVersion:"openpond.modelProjectSave.v1",operationId:`model-save:${l}`,expectedRevision:n,project:o,...r?{learning:r}:{}})}s(me,"createModelProjectSaveRequest");var K=e.object({schemaVersion:e.literal("openpond.hostedModelProjectSync.v2"),portableProjectId:a,name:e.string().trim().min(1).max(200),objective:e.string().trim().max(5e3).nullable(),defaultBaseModel:f.nullable(),defaultDestinationId:a.nullable(),trainingSetup:C,sourceRevision:e.number().int().positive(),sourceUpdatedAt:c,expectedEtag:d.nullable().default(null)}).strict(),g=e.object({id:a,teamId:a,portableProjectId:a,name:e.string().trim().min(1).max(200),objective:e.string().trim().max(5e3).nullable(),defaultBaseModel:f.nullable(),defaultDestinationId:a.nullable(),trainingSetup:C,sourceRevision:e.number().int().positive(),sourceUpdatedAt:c,revision:e.number().int().positive(),etag:d,createdAt:c,updatedAt:c}).strict(),Q=e.object({kind:e.enum(["taskset_release","harness_release","dataset_release","evidence_set","model_version","reward_model_version","evaluation_receipt"]),ref:m,role:e.string().trim().min(1).max(200).nullable().default(null),updatedAt:c}).strict(),W=e.object({project:g,resources:e.array(Q).max(1e4),jobCount:e.number().int().nonnegative(),latestJobIds:e.array(a).max(100)}).strict(),ee=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(),$=class extends Error{static{s(this,"OpenPondModelProjectApiError")}status;code;retryable;requestId;details;constructor(t,n){super(n.message),this.name="OpenPondModelProjectApiError",this.status=t,this.code=n.code,this.retryable=n.retryable,this.requestId=n.requestId,this.details=n.details}};function A(t){let n={};return new Headers(t).forEach((i,o)=>{n[o]=i}),n}s(A,"headersRecord");function pe(t){let n=t.fetch??fetch,i=t.baseUrl.replace(/\/$/,"");async function o(r,l){let j=typeof t.headers=="function"?await t.headers():t.headers??{},b=await n(`${i}${r}`,{...l,headers:{accept:R,...l?.body?{"content-type":R}:{},...A(j),...A(l?.headers)}}),I=D(await b.text(),B,"Model Project API response");if(!b.ok){let M=ee.safeParse(I);throw M.success?new $(b.status,M.data):new u("invalid_error_response",`Model Project request failed with HTTP ${b.status} and an invalid error envelope.`)}return I}return s(o,"request"),{async configurationCandidates(){return e.object({candidates:e.array(Z).max(1e3)}).strict().parse(await o("/v1/model-projects/configuration/candidates",{headers:{accept:"application/json"}})).candidates},async checkConfiguration(r){let l=v(r);return F.parse(await o("/v1/model-projects/configuration/check",{method:"POST",headers:{accept:"application/json","content-type":"application/json"},body:JSON.stringify(l)}))},async saveConfiguration(r){let l=v(r);return g.parse(await o("/v1/model-projects/configuration/save",{method:"POST",headers:{accept:"application/json","content-type":"application/json"},body:JSON.stringify(l)}))},async upsert(r){E(r,h,"Model Project sync");let l=K.parse(r),j=await o(`/v1/model-projects/${encodeURIComponent(l.portableProjectId)}`,{method:"PUT",body:JSON.stringify(l)});return g.parse(w(j,"project"))},async list(){let r=await o("/v1/model-projects");return e.array(g).parse(w(r,"projects"))},async get(r){let l=await o(`/v1/model-projects/${encodeURIComponent(a.parse(r))}`);return W.parse(l)}}}s(pe,"createModelProjectsClient");function w(t,n){return!t||typeof t!="object"||Array.isArray(t)?t:n in t?t[n]:t}s(w,"unwrapObject");export{J as a,oe as b,re as c,se as d,R as e,le as f,ce as g,de as h,h as i,B as j,u as k,T as l,O as m,E as n,D as o,m as p,P as q,f as r,k as s,L as t,q as u,V as v,N as w,C as x,G as y,z,Y as A,H as B,X as C,F as D,Z as E,ue as F,v as G,me as H,K as I,g as J,Q as K,W as L,ee as M,$ as N,pe as O};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
-
import{d as v}from"./chunk-
|
|
2
|
+
import{d as v}from"./chunk-5MHYGMJG.js";import{h as b,i as E}from"./chunk-LK2K3SPM.js";import{b as S}from"./chunk-L3KS6MOV.js";import{m as u,o as f}from"./chunk-VVNV4NNW.js";import{a as p}from"./chunk-FTQLQJQV.js";var c="desktop-personal",L="personal-default";async function K(s){let a=await s.store.getSelectedHarnessWorkspace({ownerKind:"personal",ownerId:c});if(a&&a.metadata.selectionEligible!==!1)return await v({store:s.store,storeDir:s.storeDir,workspaceId:a.id}),H(s.store,a.id,a.currentChannel.release?.contentHash??null);let t=(await s.store.listHarnessWorkspaces({ownerKind:"personal",ownerId:c})).find(o=>o.metadata.selectionEligible!==!1);if(t)return await s.store.selectHarnessWorkspace({ownerKind:"personal",ownerId:c,workspaceId:t.id,updatedAt:(s.now??(()=>new Date().toISOString()))()}),H(s.store,t.id,t.currentChannel.release?.contentHash??null);let r=await s.loadProfileState(),n=r.mode==="local"&&r.sourcePath&&!r.error?await E({store:s.store,storeDir:s.storeDir,id:L,ownerId:c,name:r.activeProfile?.trim()||"Personal Harness",profile:r,now:s.now}):await b({store:s.store,storeDir:s.storeDir,id:L,ownerId:c,name:"Personal Harness",now:s.now});return await s.store.selectHarnessWorkspace({ownerKind:"personal",ownerId:c,workspaceId:n.workspace.id,updatedAt:(s.now??(()=>new Date().toISOString()))()}),n.release}p(K,"ensureSelectedLocalHarnessWorkspace");async function W(s){let a=await s.getSelectedHarnessWorkspace({ownerKind:"personal",ownerId:c});return a?H(s,a.id,a.currentChannel.release?.contentHash??null):null}p(W,"resolveSelectedLocalHarnessRelease");async function H(s,a,t){if(!t)throw new Error(`Selected Harness workspace ${a} has no current release.`);let r=await s.getHarnessReleaseRecord(t);if(!r||r.workspaceId!==a)throw new Error(`Selected Harness workspace ${a} points to a missing release ${t}.`);return f(r.agentSnapshot,"Selected Agent snapshot"),f(r.harnessRelease,"Selected Harness release"),r}p(H,"requireCurrentRelease");import{promises as I}from"node:fs";import i from"node:path";async function J(s,a){if(a){let n=await s.getHarnessReleaseRecord(a.contentHash);if(!n||n.harnessRelease.id!==a.id)throw new Error("The selected immutable Harness release is unavailable.");let o=await s.getHarnessWorkspace(n.workspaceId);if(!o||o.ownerScope.kind!=="personal"||o.ownerScope.id!==c)throw new Error("The selected Harness release is not available to this local owner.");return f(n.agentSnapshot,"Selected Agent snapshot"),f(n.harnessRelease,"Selected Harness release"),A({workspace:o,release:n})}let t=await W(s);if(!t)return null;let r=await s.getSelectedHarnessWorkspace({ownerKind:"personal",ownerId:c});if(!r||r.id!==t.workspaceId)throw new Error("Selected Harness workspace changed while its release was being admitted.");return A({workspace:r,release:t})}p(J,"loadSelectedLocalHarnessRuntime");async function A(s){let{workspace:a,release:t}=s;if(t.workspaceId!==a.id)throw new Error("Harness release does not belong to the requested workspace.");let r=i.join(t.bundlePath,"source");await Promise.all(t.harnessRelease.files.map(e=>x(r,e.path,e.contentHash)));let n=await Promise.all(t.agentSnapshot.instructions.map(async e=>({path:e.path,content:await g(r,e.path,e.contentHash)}))),o=[],m=new Map;for(let e of t.agentSnapshot.skills){let l=await g(r,e.path,e.contentHash),d=S(l);if(!d.name||!d.description||d.messages.length>0)throw new Error(`Released Harness Skill ${e.path} is invalid: ${d.messages.join(" ")||"missing name or description"}`);if(m.has(d.name))throw new Error(`Released Harness has duplicate Skill ${d.name}.`);let k=`${i.posix.dirname(e.path)}/`,P=t.harnessRelease.files.filter(h=>h.visibility==="policy"&&h.path.startsWith(k)&&h.path!==e.path).map(h=>h.path.slice(k.length)).sort(),y={name:d.name,description:d.description,path:e.path,scope:"profile",enabled:!0,sourcePath:r,charCount:l.length,sourceHash:e.contentHash,validationStatus:"valid",validationMessages:[],resourceFiles:P};o.push(y),m.set(y.name,async()=>{let h=await g(r,e.path,e.contentHash),w=S(h);if(!w.name||!w.description||w.messages.length>0)throw new Error(`Released Harness Skill ${e.path} failed validation while loading.`);return{name:w.name,description:w.description,body:w.body,path:e.path,sourceHash:e.contentHash,charCount:h.length,packagePath:i.join(r,...i.posix.dirname(e.path).split("/")),resourceFiles:P}})}o.sort((e,l)=>e.name.localeCompare(l.name));let $={profileSourcePath:r,skills:o,readSkill:m.size>0?async e=>{let l=m.get(e);if(!l)throw new Error(`Released Harness Skill not found: ${e}`);return l()}:null},R=n.sort((e,l)=>e.path.localeCompare(l.path)).map(({path:e,content:l})=>[`Active Harness instruction (${e}):`,l.trim()].join(`
|
|
3
3
|
`)).filter(e=>e.trim().length>0),D=[["Harness capability receipt:",JSON.stringify({harnessRelease:{id:t.harnessRelease.id,contentHash:t.harnessRelease.contentHash},agentSnapshot:{id:t.agentSnapshot.id,contentHash:t.agentSnapshot.contentHash},files:t.harnessRelease.files.filter(e=>e.visibility==="policy").map(e=>({path:e.path,contentHash:e.contentHash})),skills:t.agentSnapshot.skills.map(e=>e.path),agents:t.agentSnapshot.agents.map(e=>e.path),tools:t.agentSnapshot.toolDeclarations.map(e=>e.name),capabilityRequirements:t.agentSnapshot.capabilityRequirements})].join(`
|
|
4
4
|
`),R.length>0?["Active Harness preflight:","Apply the following released instructions when planning work and immediately before every tool call.","Preflight each call: (1) identify any active instruction that matches the planned operation, (2) inspect the exact tool arguments for a forbidden pattern, and (3) rewrite the call before sending it when a pattern matches. Compliance is required even when the prohibited call might still succeed.",...R].join(`
|
|
5
5
|
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
+
import{c as H}from"./chunk-BSHAIAXY.js";import{c as u,f as E,g as M,h as S}from"./chunk-3M53YXEI.js";import{q as N,t as O,u as U}from"./chunk-NG2L6D7G.js";import{f as L,h as _}from"./chunk-UGOK7VTC.js";import{a as l}from"./chunk-FTQLQJQV.js";import{readFile as x}from"node:fs/promises";import{request as J}from"node:http";import{randomUUID as V}from"node:crypto";import{createInterface as z}from"node:readline/promises";var F="http://127.0.0.1:17874",Y=128*1024*1024,W=new Set(["cancelled","completed","failed","succeeded"]);async function we(e,n,r={}){let t=n[0];if(t==="estimate"){await(await import("./training-hosted-PFJHYTEU.js")).runHostedTrainingCommand(e,["hosted-estimate-model",...n.slice(1)]);return}if(t==="start"&&u(e,"teamId")){await(await import("./training-hosted-PFJHYTEU.js")).runHostedTrainingCommand(e,["hosted-start-model",...n.slice(1)]);return}if(t?.startsWith("hosted-")){await(await import("./training-hosted-PFJHYTEU.js")).runHostedTrainingCommand(e,n);return}let o=n[1];if(!t||!["start","status","watch","logs","cancel","resume","artifacts","benchmark","create-project","prepare-project","pull-project","projects","inspect-project"].includes(t)||!o&&t!=="projects")throw new Error("usage: training <projects|inspect-project|create-project|prepare-project|pull-project|start|status|watch|logs|cancel|resume|artifacts|benchmark> [identifier]");if(n.length>2)throw new Error(`training ${t} accepts exactly one identifier`);if(t==="projects"&&o)throw new Error("training projects does not accept an identifier; use inspect-project <id>.");let s=t==="pull-project"?u(e,"profile"):null;if(t==="pull-project"&&!s)throw new Error("training pull-project requires --profile <local-profile-id>.");let a=H(e)??process.env.OPENPOND_LOCAL_API_URL?.replace(/\/$/,"")??F;if(["pull-project","projects","inspect-project","prepare-project"].includes(t)){let c=new URL(a);if(c.protocol!=="http:"||!["127.0.0.1","localhost","[::1]"].includes(c.hostname)||c.username||c.password||c.search||c.hash||c.pathname!=="/")throw new Error(`training ${t} uses the local app's HTTP loopback API; the app resolves its signed-in hosted account.`)}let i=new q({baseUrl:a,request:r.request??await K(a,{maximumResponseBytes:Y,timeoutMs:t==="pull-project"?3e5:6e4})}),d=E(e.json);if(t==="projects"||t==="inspect-project"){b(await i.inspectProjects(t==="inspect-project"?o:void 0,u(e,"profile")??void 0),d);return}if(!o)throw new Error(`training ${t} requires an identifier.`);if(t==="pull-project"){let c=u(e,"snapshotFile"),g=c?await x(c):null;if(g&&g.byteLength>64*1024*1024)throw new Error("Model pull snapshot exceeds 64 MiB.");let P=g?JSON.parse(g.toString("utf8")):void 0;b(await i.pullHostedProject(o,s,P),d);return}if(t==="create-project"){let c=await Z({client:i,options:e,tasksetId:o});b(c,d);return}if(t==="prepare-project"){await(await import("./training-project-preparation-XWGRY5ME.js")).runProjectPreparation(i,o,e);return}if(t==="benchmark"){await Q({client:i,modelId:o,options:e,json:d,sleep:r.sleep});return}if(t==="resume"){let c=await i.modelRun(o,"resume","POST");b(c,d),await A({client:i,runId:o,json:d,intervalMs:S(e.intervalMs,"interval-ms")??2e3,sleep:r.sleep});return}if(t==="start"){await re({client:i,dependencies:r,json:d,modelRunId:o,options:e});return}if(t==="watch"){await A({client:i,runId:o,json:d,intervalMs:S(e.intervalMs,"interval-ms")??2e3,sleep:r.sleep});return}let w=t==="status"?"status":t==="logs"?"logs":t==="artifacts"?"artifacts":"cancel",y=await i.modelRun(o,w,t==="cancel"?"POST":"GET");b(y,d)}l(we,"runTrainingCommand");async function K(e,n={}){let r=new URL(e);if(r.protocol!=="http:"||!["127.0.0.1","localhost","[::1]"].includes(r.hostname))return fetch;let t=(await x(_(L()).token,"utf8")).trim();if(!t)throw new Error("OpenPond local capability token is empty.");let o=n.maximumResponseBytes??8388608,s=n.timeoutMs??6e4;if(!Number.isSafeInteger(s)||s<1||s>864e5)throw new Error("Local request timeout must be between one millisecond and one day.");return(async(a,i={})=>{let d=a instanceof Request?new URL(a.url):new URL(String(a));if(d.origin!==r.origin||d.username||d.password)throw new Error("Local capability requests must remain on the selected server origin.");let w=new Headers(i.headers);w.set("authorization",`Bearer ${t}`);let y={};w.forEach((g,P)=>{y[P]=g});let c=i.signal?AbortSignal.any([i.signal,AbortSignal.timeout(s)]):AbortSignal.timeout(s);return new Promise((g,P)=>{let R=!1,h=J(d,{method:i.method??"GET",headers:y},m=>{let T=[],v=0;m.on("data",f=>{if(v+=f.byteLength,v>o){m.destroy(new Error(`Local response exceeds ${o} bytes.`));return}T.push(f)}),m.once("error",k),m.once("end",()=>{if(R)return;R=!0;let f=new Headers;for(let[j,I]of Object.entries(m.headers))if(Array.isArray(I))for(let G of I)f.append(j,G);else I!==void 0&&f.set(j,I);g(new Response(new Uint8Array(Buffer.concat(T)),{status:m.statusCode??500,statusText:m.statusMessage,headers:f}))})}),k=l(m=>{R||(R=!0,P(m))},"rejectOnce");if(h.once("error",k),c){let m=l(()=>h.destroy(c.reason instanceof Error?c.reason:new Error("Training API request aborted.")),"abort");c.aborted?m():c.addEventListener("abort",m,{once:!0})}if(i.body!==void 0&&i.body!==null){if(typeof i.body!="string"&&!(i.body instanceof Uint8Array)){h.destroy(new Error("Local Training API supports string or byte request bodies."));return}h.write(i.body)}h.end()})})}l(K,"createLocalAuthenticatedRequest");var q=class{static{l(this,"TrainingApiClient")}baseUrl;request;constructor(n){this.baseUrl=n.baseUrl.replace(/\/$/,""),this.request=n.request??fetch}async modelRun(n,r,t,o){let s=await this.json(`/v1/training/model-runs/${encodeURIComponent(n)}/${r}`,t,o);return await this.attachTraining({modelRunId:n}),s}prepareModelProject(n,r){return this.json(`/v1/training/model-projects/${encodeURIComponent(n)}/training/prepare`,"POST",r)}async startModelProject(n,r){let t=await this.json(`/v1/training/model-projects/${encodeURIComponent(n)}/training/start`,"POST",r),o=t&&typeof t=="object"&&"job"in t?t.job:null;return o&&typeof o=="object"&&"id"in o&&typeof o.id=="string"&&await this.attachTraining({jobId:o.id}),t}async attachTraining(n){let r=process.env.OPENPOND_CHAT_INVOCATION;if(r)try{await this.json("/v1/chat-experiments","POST",{action:"attach_training",payload:n,invocationToken:r})}catch(t){console.error(`Training operation succeeded, but chat attachment failed: ${t instanceof Error?t.message:String(t)}. Inspect the saved job to retry attachment; do not submit it again.`)}}trainingState(n){let r=n?`?profileId=${encodeURIComponent(n)}`:"";return this.json(`/v1/training${r}`,"GET")}inspectProjects(n,r){let t=r?`?profileId=${encodeURIComponent(r)}`:"";return this.json(`/v1/training/model-projects${n?`/${encodeURIComponent(n)}`:""}${t}`,"GET")}pullHostedProject(n,r,t){return this.json(`/v1/training/hosted-model-projects/${encodeURIComponent(n)}/pull`,"POST",{profileId:r,...t!==void 0?{snapshot:t}:{}})}startHarnessRefinerBenchmark(n,r){return this.json(`/v1/training/models/${encodeURIComponent(n)}/harness-refiner-benchmark`,"POST",r)}importTasksetDraftPackage(n){return this.json("/v1/training/taskset-drafts/import","POST",n)}publishTasksetDraft(n,r){return this.json(`/v1/training/taskset-drafts/${encodeURIComponent(n)}/publish`,"POST",r?{modelId:r}:{})}tasksetReadiness(n){return this.json("/v1/training/readiness","POST",{tasksetId:n})}deleteTasksetDraft(n){return this.json(`/v1/training/taskset-drafts/${encodeURIComponent(n)}`,"DELETE")}saveModelProject(n){return this.json("/v1/training/models","PUT",n)}prepareLocalModelProject(n,r){return this.json(`/v1/training/model-project-preparations/${r?"apply":"prepare"}`,"POST",n)}async json(n,r,t){let o=await this.request(`${this.baseUrl}${n}`,{method:r,headers:t===void 0?{Accept:"application/json"}:{Accept:"application/json","Content-Type":"application/json"},body:t===void 0?void 0:JSON.stringify(t)}),s=await o.text(),a=null;if(s)try{a=JSON.parse(s)}catch{a=s}if(!o.ok){let i=a&&typeof a=="object"&&"error"in a&&typeof a.error=="string"?a.error:`${o.status} ${o.statusText}`.trim();throw new Error(`Training API request failed: ${i}`)}return a}};async function Q(e){let n=await e.client.trainingState(u(e.options,"profile")),r=X(n,e.modelId),t=u(e.options,"provider")||"openpond",o=u(e.options,"model")||"openpond-chat",s=u(e.options,"reasoningEffort")||"high",a=M(e.options.maxSpend,"max-spend")??10;if(a<=0)throw new Error("max-spend must be greater than zero");if(E(e.options.detach))throw new Error("Harness Refiner benchmark runs must be watched to terminal state.");let i=await e.client.startHarnessRefinerBenchmark(e.modelId,{profileId:r.profileId,model:{providerId:t,modelId:o},reasoningEffort:s==="none"?"none":s,maximumSpendUsd:a});b(i,e.json);let d=p(i,"id");if(!d)throw new Error("Benchmark start did not return a Model Run id.");await A({client:e.client,runId:d,json:e.json,intervalMs:S(e.options.intervalMs,"interval-ms")??2e3,sleep:e.sleep})}l(Q,"startHarnessRefinerBenchmark");function X(e,n){if(!e||typeof e!="object"||!("modelProjects"in e))throw new Error("Training state did not include Models.");let t=(Array.isArray(e.modelProjects)?e.modelProjects:[]).find(s=>s&&typeof s=="object"&&"id"in s&&s.id===n),o=t&&typeof t=="object"?p(t,"profileId"):null;if(!o)throw new Error(`Model ${n} was not found.`);return{profileId:o}}l(X,"modelProject");function p(e,n){if(!e||typeof e!="object"||!(n in e))return null;let r=e[n];return typeof r=="string"&&r?r:null}l(p,"objectString");async function Z(e){let n=u(e.options,"recipe");if(!n)throw new Error("training create-project requires --recipe <versioned-recipe.json>");let r=await te(n,"Training recipe"),t=u(e.options,"profile"),o=await e.client.trainingState(t),s=ne(o,"tasksets",e.tasksetId,"Taskset"),a=t||p(s,"profileId");if(!a)throw new Error(`The Taskset has no Profile id (received ${typeof s.profileId}: ${String(s.profileId)}).`);let i=p(s,"profileId");if(i!==a)throw new Error(`Taskset ${e.tasksetId} belongs to Profile ${i??"unknown"}, not ${a}.`);let d=u(e.options,"projectId")||`model_${V()}`,w=t?o:await e.client.trainingState(a),c=D(w,"modelProjects").find(j=>p(j,"id")===d),g=C(e.options,"rolloutPlacement",["local","remote"],"local"),P=C(e.options,"gpuPlacementObjective",["fast","balanced","economical"],"balanced"),R=C(e.options,"runPreset",["small","standard","custom","small_experiment"],"custom"),h=M(e.options.maxSpend,"max-spend")??null;if(h!==null&&h<0)throw new Error("max-spend must be non-negative");let k=S(e.options.retentionDays,"retention-days")??null;if(k!==null&&k<0)throw new Error("retention-days must be non-negative");let m=p(s,"contentHash"),T=B(s,"revision");if(!m||!T||T<1)throw new Error("The Taskset does not have an immutable published revision.");let v=p(r,"method");if(!v)throw new Error("Training recipe must declare its method.");let f=ee(r);if(c){let j=$(c,"trainingSetup"),I=$(j,"tasksetRef");if(p(I,"id")!==e.tasksetId||p(c,"profileId")!==a)throw new Error(`Model Project ${d} already exists for a different Profile or Taskset.`);if($(j,"baseModel"))throw new Error(`Model Project ${d} already exists.`);return e.client.saveModelProject(await U(O.parse({...O.strip().parse(c),defaultBaseModel:f,trainingSetup:{...j,baseModel:f,recipe:r}}),B(c,"revision")??1))}return e.client.saveModelProject(await U(O.parse({id:d,profileId:a,name:u(e.options,"name")||p(s,"name")||"Managed Model",objective:u(e.options,"objective")||p(s,"objective"),defaultBaseModel:f,defaultDestinationId:u(e.options,"destination")||"openpond_managed",trainingSetup:{tasksetRef:{id:e.tasksetId,revision:T,contentHash:m},tasksetRelease:null,harnessRelease:null,baseModel:f,method:v,destinationId:u(e.options,"destination")||"openpond_managed",managedRolloutPlacement:g,managedGpuPlacementObjective:P,managedGpuRequirement:"any",runPreset:R,recipe:r,preferredMaximumSpendUsd:h,preferredRetentionDays:k}}),0))}l(Z,"createManagedModelProject");function ee(e){let n=$(e,"baseModel"),r=p(n,"id"),t=p(n,"revision"),o=p(n,"tokenizerRevision"),s=p(n,"chatTemplateHash");if(!r||!t||!o||!s)throw new Error("Managed GRPO recipe must pin baseModel id, revision, tokenizerRevision, and chatTemplateHash.");return N.parse({schemaVersion:"openpond.baseModelPreference.v1",modelId:r,revision:t,tokenizerRevision:o,chatTemplateHash:s,modelAssetId:null,source:"managed"})}l(ee,"managedBasePreferenceFromRecipe");function ne(e,n,r,t){let o=D(e,n).find(s=>p(s,"id")===r);if(!o)throw new Error(`${t} ${r} was not found.`);return o}l(ne,"trainingStateRecord");function D(e,n){if(!e||typeof e!="object"||!(n in e))return[];let r=e[n];return Array.isArray(r)?r.filter(t=>!!t&&typeof t=="object"&&!Array.isArray(t)):[]}l(D,"trainingStateRecords");function B(e,n){if(!e||typeof e!="object"||!(n in e))return null;let r=e[n];return typeof r=="number"&&Number.isFinite(r)?r:null}l(B,"objectNumber");function $(e,n){if(!e||typeof e!="object"||!(n in e))return null;let r=e[n];return r&&typeof r=="object"&&!Array.isArray(r)?r:null}l($,"objectRecord");function C(e,n,r,t){let o=u(e,n)||t;if(!r.includes(o))throw new Error(`${n} must be one of ${r.join(", ")}`);return o}l(C,"enumOption");async function te(e,n){let r;try{r=JSON.parse(await x(e,"utf8"))}catch(t){throw new Error(`Could not read ${n} ${e}: ${t instanceof Error?t.message:String(t)}`)}if(!r||typeof r!="object"||Array.isArray(r))throw new Error(`${n} must be a JSON object.`);return r}l(te,"readJsonObject");async function re(e){let n=M(e.options.maxSpend,"max-spend")??null;if(n!==null&&n<0)throw new Error("max-spend must be non-negative");let r=S(e.options.retentionDays,"retention-days")??null;if(r!==null&&r<=0)throw new Error("retention-days must be a positive integer");let t=u(e.options,"manifest"),o=t?await oe(t):void 0,s=u(e.options,"comparisonSeriesEntry")||null,a={maximumSpendUsd:n,retentionDays:r},i=await e.client.prepareModelProject(e.modelRunId,a);if(e.json||(console.log("Preparation:"),console.log(JSON.stringify(i,null,2))),!(E(e.options.yes)||await se(e.dependencies.confirm)))throw new Error("Training start cancelled.");let w=await e.client.startModelProject(e.modelRunId,{...a,exportApproved:E(e.options.exportApproved),manifest:o,comparisonSeriesEntryId:s});if(b(w,e.json),E(e.options.detach))return;let y=ie(w)??e.modelRunId;await A({client:e.client,runId:y,json:e.json,intervalMs:2e3,sleep:e.dependencies.sleep})}l(re,"startTraining");async function A(e){if(e.intervalMs<250)throw new Error("interval-ms must be at least 250");let n=e.sleep??(t=>new Promise(o=>setTimeout(o,t))),r="";for(;;){let t=await e.client.modelRun(e.runId,"status","GET"),o=JSON.stringify(t);if((e.json||o!==r)&&(b(t,e.json),r=o),W.has(ae(t)))return;await n(e.intervalMs)}}l(A,"watchTraining");async function oe(e){let n;try{n=JSON.parse(await x(e,"utf8"))}catch(r){throw new Error(`Could not read Harness Run Manifest ${e}: ${r instanceof Error?r.message:String(r)}`)}if(!n||typeof n!="object"||Array.isArray(n))throw new Error("Harness Run Manifest must be a JSON object.");return n}l(oe,"readManifest");async function se(e){let n="Start this exact prepared training run? Downloads, provisioning, or spend may begin.";if(e)return e(n);if(!process.stdin.isTTY||!process.stdout.isTTY)throw new Error("training start requires --yes when standard input is not interactive");let r=z({input:process.stdin,output:process.stdout});try{let t=await r.question(`${n} [y/N] `);return t.trim().toLowerCase()==="y"||t.trim().toLowerCase()==="yes"}finally{r.close()}}l(se,"confirmStart");function ie(e){if(!e||typeof e!="object")return null;let n="job"in e?e.job:null;return!n||typeof n!="object"||!("id"in n)?null:typeof n.id=="string"?n.id:null}l(ie,"readRunId");function ae(e){return!e||typeof e!="object"?"":"state"in e&&typeof e.state=="string"?e.state:"status"in e&&typeof e.status=="string"?e.status:""}l(ae,"readStatus");function b(e,n){if(n){console.log(JSON.stringify(e));return}console.log(JSON.stringify(e,null,2))}l(b,"printResult");export{F as a,Y as b,we as c,K as d,q as e};
|