openpond 0.2.40 → 0.2.42
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app-server.d.ts +23 -1
- package/dist/app-server.js +1 -1
- package/dist/chunks/actions-command-6EMO4BIK.js +2 -0
- package/dist/chunks/{app-layer-W2M7SM2L.js → app-layer-ETI5QXQ3.js} +1 -1
- package/dist/chunks/app-server-runtime-CJ7SJTTF.js +2 -0
- package/dist/chunks/apps-LH5AJCUI.js +2 -0
- package/dist/chunks/{chunk-FFTVDR3E.js → chunk-2VTXKZNK.js} +132 -132
- package/dist/chunks/{chunk-ALYT2HWV.js → chunk-2Z6H32OC.js} +1 -1
- package/dist/chunks/chunk-3CKJETWW.js +2 -0
- package/dist/chunks/chunk-4F2Q4CFS.js +4 -0
- package/dist/chunks/{chunk-3HQEEZPO.js → chunk-65BW2QXY.js} +1 -1
- package/dist/chunks/{chunk-J4S7AVGF.js → chunk-6UGTLC7Z.js} +1 -1
- package/dist/chunks/chunk-76YP4FDQ.js +3 -0
- package/dist/chunks/{chunk-YHBIGFFA.js → chunk-AANEPCEZ.js} +1 -1
- package/dist/chunks/chunk-ALZRXBEC.js +33 -0
- package/dist/chunks/chunk-ANCZVBMI.js +42 -0
- package/dist/chunks/chunk-AT6XYNQ5.js +2 -0
- package/dist/chunks/{chunk-IYWNO4RB.js → chunk-AUOMUBLE.js} +2 -2
- package/dist/chunks/{chunk-4QURHV3Q.js → chunk-BAQ3DWH2.js} +1 -1
- package/dist/chunks/chunk-BJSXEGWG.js +2 -0
- package/dist/chunks/chunk-DXAZUJPA.js +2 -0
- package/dist/chunks/{chunk-H7YH35JO.js → chunk-EEJ3HL6O.js} +1 -1
- package/dist/chunks/chunk-GC4OCTP6.js +2 -0
- package/dist/chunks/chunk-JYM3O4G7.js +5 -0
- package/dist/chunks/chunk-KCENW4ME.js +2 -0
- package/dist/chunks/{chunk-T7Y5OYO2.js → chunk-KIGN4FI6.js} +1 -1
- package/dist/chunks/{chunk-FUFIZ37W.js → chunk-LRGLV6JX.js} +1 -1
- package/dist/chunks/chunk-MOMDY22U.js +2 -0
- package/dist/chunks/chunk-MTJNKRXL.js +22 -0
- package/dist/chunks/{chunk-JARGGWF5.js → chunk-NT2UKDF7.js} +1 -1
- package/dist/chunks/chunk-OUN6VQDO.js +5 -0
- package/dist/chunks/{chunk-3UQU3KOS.js → chunk-QZ4KTU65.js} +1 -1
- package/dist/chunks/chunk-R6YJY7F2.js +3 -0
- package/dist/chunks/chunk-S2MLTFZF.js +2 -0
- package/dist/chunks/chunk-SUAT5DR4.js +9 -0
- package/dist/chunks/{chunk-ELUCM7CG.js → chunk-TPMXLA5Y.js} +7 -7
- package/dist/chunks/{chunk-TU5ITNMX.js → chunk-TPOW52DO.js} +3 -3
- package/dist/chunks/chunk-V62BHD5G.js +2 -0
- package/dist/chunks/{chunk-JIG7KQOX.js → chunk-VI3ZF54E.js} +2 -2
- package/dist/chunks/{chunk-ZCFX6HQO.js → chunk-VQG25QBJ.js} +1 -1
- package/dist/chunks/{chunk-ASRSYRE3.js → chunk-VTWY3U4M.js} +1 -1
- package/dist/chunks/chunk-XJAK6DDB.js +5 -0
- package/dist/chunks/chunk-Z2BYC6TP.js +2 -0
- package/dist/chunks/chunk-Z7VAZVC5.js +578 -0
- package/dist/chunks/{chunk-562Q5UVS.js → chunk-ZG7QX66E.js} +1 -1
- package/dist/chunks/{chunk-WWCU4ETR.js → chunk-ZLQQUZH7.js} +1 -1
- package/dist/chunks/{chunk-3QXPXBVG.js → chunk-ZQWXPDCB.js} +1 -1
- package/dist/chunks/cli-FM3DESGO.js +2 -0
- package/dist/chunks/configuration-command-N2FD7DWB.js +2 -0
- package/dist/chunks/core-commands-D2MJ7QFZ.js +2 -0
- package/dist/chunks/datasets-UYIZCMNZ.js +13 -0
- package/dist/chunks/desktop-test-IWDHFDSZ.js +3 -0
- package/dist/chunks/dist-ELWB75PL.js +2 -0
- package/dist/chunks/{dist-GKCGK44T.js → dist-JPRXSUXC.js} +1 -1
- package/dist/chunks/experiments-Q6TAHJV3.js +2 -0
- package/dist/chunks/{extension-3P3JNRYN.js → extension-7GYFAHRP.js} +1 -1
- package/dist/chunks/{help-23QDOMG7.js → help-MD7Z72QS.js} +1 -1
- package/dist/chunks/hosted-harness-runtime-LMYM7PYZ.js +2 -0
- package/dist/chunks/hosted-profile-compiler-H2J5HFT3.js +2 -0
- package/dist/chunks/hosted-profile-evaluation-control-VV2NXFBE.js +2 -0
- package/dist/chunks/hosted-profile-evaluation-inspection-XMPRKON6.js +3 -0
- package/dist/chunks/hosted-profile-evaluation-preparation-ZZ3MZJDR.js +3 -0
- package/dist/chunks/opchat-URWW53CK.js +3 -0
- package/dist/chunks/organizations-BPBJV7LZ.js +2 -0
- package/dist/chunks/{profile-NJMKPS6Z.js → profile-BZDCYKGL.js} +1 -1
- package/dist/chunks/project-agent-U6YNYPHS.js +2 -0
- package/dist/chunks/sandbox-command-TTLFWUXV.js +2 -0
- package/dist/chunks/{sandbox-template-RCDR2FXX.js → sandbox-template-ZYXK4QCI.js} +1 -1
- package/dist/chunks/{src-H7VE4J62.js → src-5Z35O6L7.js} +1 -1
- package/dist/chunks/src-NABQMSR3.js +325 -0
- package/dist/chunks/{teams-bot-KCKZTM3N.js → teams-bot-WXGP3PA6.js} +1 -1
- package/dist/chunks/{workspaces-J5QQUR53.js → workspaces-7WY3ZVQW.js} +1 -1
- package/dist/cli.js +3 -3
- package/dist/index.js +1 -1
- package/dist/web/assets/App-BpYDvJ6x.js +226 -0
- package/dist/web/assets/{AppDialog-CmPsGOzE.js → AppDialog-DMymIOcU.js} +1 -1
- package/dist/web/assets/{AppTerminalPanel-0_Ewf4wJ.js → AppTerminalPanel-CFsUD-di.js} +2 -2
- package/dist/web/assets/{AppsView-Ddn9R2I-.js → AppsView-CUrRKOiz.js} +1 -1
- package/dist/web/assets/{BrowserSidebar-j2Yyiaz-.js → BrowserSidebar-C5psWtoF.js} +1 -1
- package/dist/web/assets/{CartesianChart-BWAkc0mY.js → CartesianChart-DVGs4fGn.js} +1 -1
- package/dist/web/assets/{CollaborationTabs-SVc7oX8N.js → CollaborationTabs-D6eqNw88.js} +1 -1
- package/dist/web/assets/{CommandMenu-CcX5ypdX.js → CommandMenu--GRjuf3j.js} +1 -1
- package/dist/web/assets/{CommunityView-B7W1C8KG.js → CommunityView-CHGceVA_.js} +1 -1
- package/dist/web/assets/{ComposerCreateImproveStrip-BBKdrbNP.js → ComposerCreateImproveStrip-D08PAaxI.js} +1 -1
- package/dist/web/assets/{GetStartedView-BXuTBT4U.js → GetStartedView-BPZcWzsG.js} +1 -1
- package/dist/web/assets/HostedModelLearningReview-DiS-n3XW.js +1 -0
- package/dist/web/assets/HostedModelLearningSettings-BmEMKcoy.js +1 -0
- package/dist/web/assets/{LabModelVersionDetailPage-CctGBUae.js → LabModelVersionDetailPage-CX5pOLl2.js} +1 -1
- package/dist/web/assets/{LabSkillSidebar-Cl8Sdiqc.js → LabSkillSidebar-C4vAz_0b.js} +1 -1
- package/dist/web/assets/LabsRoute-BL04wKhE.js +52 -0
- package/dist/web/assets/LabsRoute-Cq9XLVDP.css +1 -0
- package/dist/web/assets/{MainChatThread-BaEeNsrh.js → MainChatThread-BSwHDALr.js} +2 -2
- package/dist/web/assets/{MainPane-Dw90VsN-.js → MainPane-EwtIf5_E.js} +14 -14
- package/dist/web/assets/{MarkdownText-CGGUFrZe.js → MarkdownText-Bj9uRWtM.js} +1 -1
- package/dist/web/assets/{NativeSkillSidebar-2mgh6WV4.js → NativeSkillSidebar-U7PHw5DO.js} +1 -1
- package/dist/web/assets/{NewExperienceSwitcher-DMTe3jS9.js → NewExperienceSwitcher-DneuamYK.js} +1 -1
- package/dist/web/assets/{NewProjectDialog-D6pvuCoo.js → NewProjectDialog-CrpXYCYV.js} +1 -1
- package/dist/web/assets/{OutputsPage-DMeIKxzN.js → OutputsPage-C1SPqz45.js} +1 -1
- package/dist/web/assets/{ProjectsPage-V5oXwB-5.js → ProjectsPage-CCW3mGQb.js} +1 -1
- package/dist/web/assets/{RightChatPanelStack-B0y2XNdm.js → RightChatPanelStack-D7ECzLfp.js} +1 -1
- package/dist/web/assets/{RightSidebarHomePanel-BksZR71F.js → RightSidebarHomePanel-B-4r-yLc.js} +1 -1
- package/dist/web/assets/{ScheduledWorkPage-BRcVebWV.js → ScheduledWorkPage-XjmcT64Z.js} +1 -1
- package/dist/web/assets/{SettingsView-CtI170q1.js → SettingsView-BEBpD7W0.js} +3 -3
- package/dist/web/assets/{TeamChatView-DWGM8eXj.js → TeamChatView-n9GnPY4F.js} +2 -2
- package/dist/web/assets/{TerminalOverlay-DLSmAkbQ.js → TerminalOverlay-CNaaMo7W.js} +1 -1
- package/dist/web/assets/{TrainingCreationPanel-C6e6zhC8.js → TrainingCreationPanel-CEEXMmC5.js} +1 -1
- package/dist/web/assets/{TrainingDraftPanel-Q1GXOAlQ.js → TrainingDraftPanel-CwyoL_Dy.js} +1 -1
- package/dist/web/assets/{UsageSettingsSection-UET2vS1c.js → UsageSettingsSection-BNjgosYd.js} +1 -1
- package/dist/web/assets/{WorkSidebarPanel-DMsXId2s.js → WorkSidebarPanel-BatJltaq.js} +1 -1
- package/dist/web/assets/{WorkspaceDiffPanel-B_eZE-bq.js → WorkspaceDiffPanel-Cbr7qcqm.js} +3 -3
- package/dist/web/assets/{WorkspaceEnvironmentMenu-C848cDBP.js → WorkspaceEnvironmentMenu-DYu-PXRv.js} +1 -1
- package/dist/web/assets/{WorkspaceGitDialogs-CSnIC26s.js → WorkspaceGitDialogs-BoamHtgk.js} +1 -1
- package/dist/web/assets/{WorkspaceMonacoEditor-C5dvv9s_.js → WorkspaceMonacoEditor-yg83VXk5.js} +3 -3
- package/dist/web/assets/{arrow-up-right-CsvQameJ.js → arrow-up-right-CN9lcbsD.js} +1 -1
- package/dist/web/assets/{clipboard-fZsv7_ot.js → clipboard-DfLDGpSz.js} +1 -1
- package/dist/web/assets/{cloud-upload-CUXNsLn2.js → cloud-upload-hk4EBTu-.js} +1 -1
- package/dist/web/assets/{cssMode-1tbsSShK.js → cssMode-DkhTpCaH.js} +1 -1
- package/dist/web/assets/{folder-open-Da8t5AtB.js → folder-open-BmhusYOx.js} +1 -1
- package/dist/web/assets/{folder-plus-X7B8dzc3.js → folder-plus-Bedc_RqV.js} +1 -1
- package/dist/web/assets/{git-commit-horizontal-CajQIfK5.js → git-commit-horizontal-D2Zvz4i7.js} +1 -1
- package/dist/web/assets/{htmlMode-qapgENKW.js → htmlMode-Bf3_KJ2b.js} +1 -1
- package/dist/web/assets/{index-DUQK09vA.js → index-CpTHPmvd.js} +2 -2
- package/dist/web/assets/index-DUIWDN8o.css +1 -0
- package/dist/web/assets/{info-BYfs9_PT.js → info-CayXQYUk.js} +1 -1
- package/dist/web/assets/{jsonMode-DYPkWxLK.js → jsonMode-_Ywm0ZC4.js} +1 -1
- package/dist/web/assets/{lspLanguageFeatures-Cbcp__rz.js → lspLanguageFeatures-Caw_TPYu.js} +1 -1
- package/dist/web/assets/{minimize-2-Dp7tWjno.js → minimize-2-sPQtjkx8.js} +1 -1
- package/dist/web/assets/{monaco.contribution-DApKEq_e.js → monaco.contribution-Bqi-s2-g.js} +2 -2
- package/dist/web/assets/{monaco.contribution-COP3_DCK.js → monaco.contribution-CngZuH1Z.js} +2 -2
- package/dist/web/assets/{monaco.contribution-cIq6c5M4.js → monaco.contribution-DKY5M77J.js} +2 -2
- package/dist/web/assets/{monaco.contribution-CcL6YtdZ.js → monaco.contribution-DmEqb8O2.js} +2 -2
- package/dist/web/assets/{monitor-nP1D5S_1.js → monitor-BuaCDSIZ.js} +1 -1
- package/dist/web/assets/{python-DXYfRGSs.js → python-D6SoZF70.js} +1 -1
- package/dist/web/assets/{refresh-cw-D_9Q01ox.js → refresh-cw-DmpWkVF6.js} +1 -1
- package/dist/web/assets/{save-BxG7d5Nm.js → save-Di43Sc13.js} +1 -1
- package/dist/web/assets/{square--Ua9DQPL.js → square-Cui64whj.js} +1 -1
- package/dist/web/assets/{toggleHighContrast-CqAtkn5E.js → toggleHighContrast-e8XiQRTr.js} +1 -1
- package/dist/web/assets/{tsMode-BCdfa4wT.js → tsMode-Cvh0MpFm.js} +1 -1
- package/dist/web/assets/{upload-BkYSJcbc.js → upload-Dphgk6dy.js} +1 -1
- package/dist/web/assets/{useLocalAgentSchedules-CGlPbPZr.js → useLocalAgentSchedules-CDN8WQld.js} +1 -1
- package/dist/web/assets/{useSessionTurnCache-DtNQyWXl.js → useSessionTurnCache-Bvcc_al6.js} +1 -1
- package/dist/web/assets/{wifi-off-DF8YmlRa.js → wifi-off-CIWXrn3o.js} +1 -1
- package/dist/web/assets/{workers-BUHY0ojx.js → workers-XU4YZxHD.js} +1 -1
- package/dist/web/assets/{yaml-CtBzXx8s.js → yaml-BZ0UGaZH.js} +1 -1
- package/dist/web/index.html +2 -2
- package/package.json +1 -1
- package/dist/chunks/actions-command-X2ERGYMA.js +0 -2
- package/dist/chunks/app-server-runtime-IO3FDF37.js +0 -2
- package/dist/chunks/apps-IBVU56HR.js +0 -2
- package/dist/chunks/chunk-5OA57RW4.js +0 -2
- package/dist/chunks/chunk-62H5KUOS.js +0 -12
- package/dist/chunks/chunk-AOBTILU5.js +0 -2
- package/dist/chunks/chunk-CYZOPDTW.js +0 -2
- package/dist/chunks/chunk-DDHUSA3I.js +0 -2
- package/dist/chunks/chunk-DWY6YCBI.js +0 -578
- package/dist/chunks/chunk-GTG2ODOV.js +0 -5
- package/dist/chunks/chunk-PKBU37CH.js +0 -5
- package/dist/chunks/chunk-QCLVO56H.js +0 -4
- package/dist/chunks/chunk-QK2GLRCY.js +0 -53
- package/dist/chunks/chunk-SHCKK3SU.js +0 -2
- package/dist/chunks/chunk-XRI3HLZ3.js +0 -42
- package/dist/chunks/chunk-ZCPIVNCS.js +0 -2
- package/dist/chunks/cli-QXO6OHZJ.js +0 -2
- package/dist/chunks/configuration-command-6VJUXQNZ.js +0 -2
- package/dist/chunks/core-commands-J6OY62PE.js +0 -2
- package/dist/chunks/datasets-W24QTQL7.js +0 -13
- package/dist/chunks/desktop-test-SHS2VUYP.js +0 -3
- package/dist/chunks/dist-4OUZANXR.js +0 -2
- package/dist/chunks/experiments-O7WTSICN.js +0 -2
- package/dist/chunks/hosted-harness-runtime-U7JV7Z5T.js +0 -2
- package/dist/chunks/hosted-profile-compiler-ZCVMUTFA.js +0 -3
- package/dist/chunks/opchat-OI2YFNNY.js +0 -3
- package/dist/chunks/organizations-LB5QXKWT.js +0 -2
- package/dist/chunks/project-agent-SZLUVG3U.js +0 -2
- package/dist/chunks/sandbox-command-FQBOFZGM.js +0 -2
- package/dist/chunks/src-JVSP6UKT.js +0 -325
- package/dist/web/assets/App-BL1D_PLh.js +0 -226
- package/dist/web/assets/HostedModelLearningReview-C3oAdyoF.js +0 -1
- package/dist/web/assets/HostedModelLearningSettings-9e5z5eRf.js +0 -1
- package/dist/web/assets/LabsRoute-C1FWCoYb.css +0 -1
- package/dist/web/assets/LabsRoute-di9O0XV1.js +0 -32
- package/dist/web/assets/index-lqk3IxE0.css +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
-
import{a as be,b as Ae,c as Ie,d as ve}from"./chunk-
|
|
2
|
+
import{a as be,b as Ae,c as Ie,d as ve}from"./chunk-V62BHD5G.js";import{c as O,i as L}from"./chunk-DXAZUJPA.js";import{a as Oe}from"./chunk-6FA3GG5B.js";import{f as Re}from"./chunk-H7IWJN7L.js";import{a as s}from"./chunk-FTQLQJQV.js";var J=class extends Error{static{s(this,"OpenPondProfileSetupRequiredError")}code="agent_source_setup_required";details;constructor(t,n){let o=n.blockingRequirements.map(r=>r.label);super(["agent_source_setup_required",`Profile action ${t} has unresolved required setup.`,o.length?`Missing setup: ${o.join(", ")}`:""].filter(Boolean).join(`
|
|
3
3
|
`)),this.name="OpenPondProfileSetupRequiredError",this.details={error:"agent_source_setup_required",actionId:t,setupGate:n,missing:o,blockingSetupRequirements:n.blockingRequirements,setupRequirements:n.requirements}}};function W(e){let t=new Map;for(let a of e.sourceSetupRequirements??[]){let l=bt(a);if(e.actionId&&l&&l!==e.actionId&&h(a.actionName)!==e.actionId&&h(a.sourceActionId)!==e.actionId)continue;let c=Ee({record:a,source:"source_upload_metadata",actionId:l});c&&t.set(c.ref,c)}for(let a of e.actionCatalog)if(!(e.actionId&&a.id!==e.actionId&&a.name!==e.actionId))for(let l of a.setupRequirements??[]){let c=Ee({record:l,source:"action_catalog",actionId:a.id});c&&t.set(c.ref,c)}let n=Array.from(t.values()),o=n.filter(a=>a.blocking),r=n.filter(a=>!a.required&&!ne(a.status)).length,i=n.filter(a=>ne(a.status)).length;return{status:It(o),requirementCount:n.length,blockingCount:o.length,optionalMissingCount:r,readyCount:i,requirements:n,blockingRequirements:o}}s(W,"buildOpenPondProfileSetupGate");function oe(e,t){if(t.blockingRequirements.length>0)throw new J(e,t)}s(oe,"assertOpenPondProfileActionReady");function Rt(e){let t=e.actionId?`${e.actionId}: `:"",n=e.required?"required":"optional";return`${t}${e.label} (${n}, ${e.status})`}s(Rt,"formatOpenPondProfileSetupRequirement");function Ee(e){let t=e.source==="action_catalog"&&h(e.record.source)==="source_upload_metadata"?"source_upload_metadata":e.source,n=h(e.record.kind)??h(e.record.type),o=h(e.record.label)??h(e.record.name)??h(e.record.key)??h(e.record.provider)??h(e.record.tool)??h(e.record.command)??h(e.record.packageName)??h(e.record.path)??h(e.record.repo)??h(e.record.url)??h(e.record.id)??n??"setup requirement",r=e.record.required!==!1,i=At(e.record);return{ref:[t,e.actionId??"source",n??"requirement",o].join(":"),source:t,actionId:e.actionId,kind:n,label:o,status:i,required:r,blocking:r&&!ne(i)}}s(Ee,"setupRequirementFromRecord");function bt(e){return h(e.actionId)??h(e.sourceActionId)??h(e.actionName)}s(bt,"setupRequirementActionId");function At(e){let t=h(e.status)??h(e.state);return t?t==="satisfied"||t==="connected"||t==="provided"?"ready":t:typeof e.satisfied=="boolean"?e.satisfied?"ready":"setup_required":typeof e.ready=="boolean"&&e.ready?"ready":"setup_required"}s(At,"setupStatus");function It(e){return e.length===0?"ready":e.some(t=>["blocked","unsupported","unsupported_dependency","stale"].includes(t.status))?"blocked":"setup_required"}s(It,"gateStatus");function ne(e){return e==="ready"||e==="disabled"}s(ne,"isReadyStatus");function h(e){return typeof e=="string"&&e.trim()?e.trim():null}s(h,"text");import{stat as qt}from"node:fs/promises";import se from"node:path";import{spawn as vt}from"node:child_process";import{existsSync as re}from"node:fs";import{readFile as Et,rm as Kn,writeFile as _e}from"node:fs/promises";import ie from"node:path";var Le=["**/node_modules/","**/.bun/","**/.env","**/.env.*","**/.openpond/traces/","**/.openpond/vendor/","**/.openpond/eval-results.json","**/.openpond/artifact-index.json","**/.openpond/source-upload-cache.json",""].join(`
|
|
4
4
|
`);async function Me(e){if(!re(ie.join(e,".git"))){let i=await R(e,["init","-b","main"]);if(i.code!==0)throw new Error(H("git init",i))}let t=ie.join(e,".gitignore");if(re(t)?await xt(t):await _e(t,Le,"utf8"),await _t(e))return;let n=await N(e);if(!n.dirty&&n.files.length===0)return;let o=await R(e,["add","-A"]);if(o.code!==0)throw new Error(H("git add",o));let r=await R(e,["commit","-m","Initialize OpenPond profile"],{env:{...process.env,GIT_AUTHOR_NAME:process.env.GIT_AUTHOR_NAME||"OpenPond",GIT_AUTHOR_EMAIL:process.env.GIT_AUTHOR_EMAIL||"openpond@example.invalid",GIT_COMMITTER_NAME:process.env.GIT_COMMITTER_NAME||"OpenPond",GIT_COMMITTER_EMAIL:process.env.GIT_COMMITTER_EMAIL||"openpond@example.invalid"}});if(r.code!==0&&!/nothing to commit/i.test(r.stdout+r.stderr))throw new Error(H("git commit",r))}s(Me,"ensureProfileGitRepo");async function xt(e){let t=await Et(e,"utf8").catch(()=>""),n=Le.split(/\r?\n/).map(r=>r.trim()).filter(Boolean).filter(r=>!t.split(/\r?\n/).some(i=>i.trim()===r));if(n.length===0)return;let o=t.endsWith(`
|
|
5
5
|
`)||t.length===0?"":`
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
-
import{a as me,b as D,c as G,d as j,e as z,g as ye,i as T,j as we,k as S,l as he,v as B,x as F}from"./chunk-FUFIZ37W.js";import{a as re,b as L,c as R}from"./chunk-3HQEEZPO.js";import{b as H,c as be,d as ve,f as w,h as P,i as Re}from"./chunk-BSHAIAXY.js";import{a as Z,b as ee,c as te}from"./chunk-IYWNO4RB.js";import{a as M,f as v,k as X}from"./chunk-3M53YXEI.js";import{M as pe,N as ue,R as ge,V as fe,h as $,i as ie,l as ae,n as se,o as ce,p as le,q as de}from"./chunk-SHCKK3SU.js";import{d as y,e as ne,f as oe,g as C}from"./chunk-AOBTILU5.js";import{a as g}from"./chunk-FTQLQJQV.js";import{promises as V,existsSync as W}from"node:fs";import U from"node:path";import{stdin as $e}from"node:process";async function Ge(e,o){let t=await y(),r=w(t),n=P(t),i=await R(t,r),{app:a}=await T(n,i,o),s=await ce(n,i,a.id);console.log(JSON.stringify(s,null,2))}g(Ge,"runTemplateStatus");async function je(e,o){let t=await y(),r=w(t),n=P(t),i=await R(t,r),{app:a}=await T(n,i,o),s=await le(n,i,a.id);console.log(JSON.stringify(s,null,2))}g(je,"runTemplateBranches");async function ze(e,o){let t=await y(),r=w(t),n=P(t),i=await R(t,r),{app:a}=await T(n,i,o),s=typeof e.env=="string"?e.env:typeof e.environment=="string"?e.environment:void 0,f=X(s),c=await de(n,i,a.id,{environment:f});console.log(JSON.stringify(c,null,2))}g(ze,"runTemplateUpdate");async function He(e){let o=await y(),t=w(o),r=typeof e.apiKey=="string"?e.apiKey:typeof e.key=="string"?e.key:null,n=r?r.trim():await L();if(!n)throw new Error("API key is required");n.startsWith("opk_")||console.log("warning: API keys usually start with opk_."),await C({handle:o.activeProfile?.handle||"default",apiKey:n,baseUrl:t,apiBaseUrl:o.apiBaseUrl,chatApiBaseUrl:o.chatApiBaseUrl,setActive:!0}),console.log("Saved account credentials to the encrypted OpenPond credential store.")}g(He,"runLogin");async function Fe(e,o){let t=o[0]||"list";if(t==="list"){let r=await ne();console.log(JSON.stringify({profiles:r},null,2));return}if(t==="use"){let r=o[1];if(!r)throw new Error("usage: profiles use <name> [--base-url <url>]");let n=await oe(r,{baseUrl:H(e)});console.log(JSON.stringify({profile:n},null,2));return}if(t==="save"){let r=o[1];if(!r)throw new Error("usage: profiles save <name> --api-key <key> [--base-url <url>] [--api-base-url <url>] [--chat-api-base-url <url>]");let n=typeof e.apiKey=="string"?e.apiKey:typeof e.key=="string"?e.key:null,i=n?n.trim():await L(),a=typeof e.environment=="string"?e.environment:typeof e.env=="string"?e.env:void 0,s=await C({handle:r,apiKey:i,baseUrl:H(e),apiBaseUrl:be(e),chatApiBaseUrl:ve(e),environment:a,setActive:!0});console.log(JSON.stringify({profile:s},null,2));return}throw new Error("usage: profiles <list|use|save> [args]")}g(Fe,"runProfiles");async function Ve(){let e=await y(),o=w(e),t=P(e),r=await R(e,o),n=await pe(t,r);console.log(JSON.stringify(n,null,2))}g(Ve,"runAccount");async function We(e){let o=await y(),t=P(o),r=re(o),n=await ue(t,r);console.log(JSON.stringify(n,null,2))}g(We,"runHealth");async function qe(e,o){let t=await y(),r=w(t),n=P(t),i=await R(t,r),{app:a}=await T(n,i,o),s=typeof e.branch=="string"?String(e.branch):void 0,f=await $(n,i,a.id,{branch:s});if(!f?.id){console.log("no deployments found");return}let c=await ie(n,i,f.id),d=(c&&Array.isArray(c.toolsJson)?c.toolsJson:null)||(c&&typeof c.metadataJson=="object"&&c.metadataJson?c.metadataJson.tools:null),u=Array.isArray(d)?d:[];if(u.length===0){console.log("no tools found");return}for(let l of u){let m=l,h=m.profile||m.function,I=m.name||h?.name||"unknown",p=m.description||h?.description||"";console.log(p?`${I} - ${p}`:I)}}g(qe,"runToolList");async function Ye(e,o,t){let r=await y(),n=w(r),i=P(r),a=await R(r,n),{app:s}=await T(i,a,o),f=typeof e.branch=="string"?String(e.branch):void 0,c=await $(i,a,s.id,{branch:f});if(!c?.id)throw new Error("no deployments found");let d;if(typeof e.body=="string")try{d=JSON.parse(e.body)}catch{throw new Error("tool body must be valid JSON")}let u=typeof e.method=="string"?String(e.method).toUpperCase():"POST",l=await fe(n,a,{appId:s.id,deploymentId:c.id,toolName:t,method:u,body:d,headers:a?{"openpond-api-key":a}:void 0});if(!l.ok)throw new Error(l.error||`tool failed (${l.status})`);let m=l.data??{ok:!0};console.log(JSON.stringify(m,null,2))}g(Ye,"runToolRun");async function Qe(e,o,t){let r=await y(),n=w(r),i=P(r),a=await R(r,n),{app:s}=await T(i,a,o),f=typeof e.branch=="string"?String(e.branch):void 0,c=typeof e.deploymentId=="string"?String(e.deploymentId):void 0,d=c?{id:c}:await $(i,a,s.id,{branch:f});if(!d?.id)throw new Error("no deployments found");let u=typeof e.body=="string"?M(String(e.body),"body"):{};if(!u||typeof u!="object"||Array.isArray(u))throw new Error("body must be a JSON object");let l=typeof e.method=="string"?String(e.method).toUpperCase():"POST",m={...u,appId:s.id,deploymentId:d.id,toolName:t,method:l},h=await ge(i,a,m);console.log(JSON.stringify(h,null,2))}g(Qe,"runBacktestRun");async function Xe(e,o){let t=await y(),r=w(t),n=P(t),i=await R(t,r),{app:a,handle:s,repo:f}=await T(n,i,o),c=typeof e.branch=="string"?String(e.branch):void 0,d=typeof e.deploymentId=="string"?String(e.deploymentId):void 0,u=d?{id:d}:await $(n,i,a.id,{branch:c});if(!u?.id){console.log("no deployments found");return}await we({baseUrl:n,apiKey:i,deploymentId:u.id,prefix:`[${s}/${f}] `,intervalMs:e.interval?Number(e.interval):void 0,timeoutMs:e.timeout?Number(e.timeout):void 0})}g(Xe,"runDeployWatch");async function Ze(e,o){let r=((typeof e.name=="string"?e.name:null)||o.join(" ")).trim();if(!r)throw new Error("usage: repo create --name <name> [--team-id <id>] [--path <dir>] [--template <owner/repo|url>] [--template-branch <branch>] [--empty|--opentool] [--sandbox] [--token] [--auto-schedule-migration <true|false>]");let n=await y(),i=w(n),a=await R(n,i),s=P(n),f=typeof e.teamId=="string"&&e.teamId.trim()?e.teamId.trim():void 0,c=typeof e.template=="string"?e.template.trim():"";if(c&&(e.empty==="true"||e.opentool==="true"))throw new Error("choose one: --template or --empty/--opentool");if(e.empty==="true"&&e.opentool==="true")throw new Error("choose one: --empty or --opentool");let d=typeof e.description=="string"?e.description.trim():void 0,u=typeof e.templateBranch=="string"&&e.templateBranch.trim().length>0?e.templateBranch.trim():void 0,l=typeof e.env=="string"?M(e.env,"env"):void 0;if(l){if(typeof l!="object"||Array.isArray(l))throw new Error("env must be a JSON object");for(let[b,A]of Object.entries(l))if(typeof A!="string")throw new Error(`env value for ${b} must be a string`)}if(c){e.deployOnPush!==void 0&&console.warn("deploy-on-push is not used for template create (auto deploys)");let b=Re(c,i),k=(await se(s,a,[{name:r,...d?{description:d}:{},templateRepoUrl:b,...u?{templateBranch:u}:{},...l?{envVars:l}:{}}],f)).items?.[0];if(!k||k.status!=="ok"||!k.appId)throw new Error(k?.error||"Template create failed");console.log(`app_id: ${k.appId}`),k.deploymentId&&console.log(`deployment_id: ${k.deploymentId}`),k.conversationId&&console.log(`conversation_id: ${k.conversationId}`);return}let m=process.cwd(),h=typeof e.path=="string"?e.path:typeof e.dir=="string"?e.dir:null,I=h&&h.trim().length>0?h.trim():$e.isTTY?await he(m):m,p=U.resolve(I);if(W(p)){if(!(await V.stat(p)).isDirectory())throw new Error(`path is not a directory: ${p}`)}else await V.mkdir(p,{recursive:!0});let Pe=(await V.readdir(p)).filter(b=>b!==".git").length===0,x=v(e.yes)||v(e.force);if(!Pe&&!x&&!await S(`Directory is not empty (${p}). Continue?`,!1)){console.log("aborted");return}let ke=U.join(p,".git");if(!W(ke)){if(!(x?!0:await S("Initialize git repository here?",!0))){console.log("aborted");return}let A=await B("git",["init"],{cwd:p});if(A.code!==0)throw new Error(`git init failed: ${A.stderr.trim()||A.stdout.trim()||"unknown error"}`)}let K=await F(p,"origin");if(K&&!x&&!await S(`Remote "origin" already set (${K}). Replace it?`,!1)){console.log("aborted");return}let q=e.opentool==="true"?"opentool":"empty",Te=v(e.sandbox),Be=v(e.deployOnPush),N=e.autoScheduleMigration,Y=typeof N=="string"||typeof N=="boolean",Ee=Y?v(N):void 0,E=await ae(s,a,{name:r,...f?{teamId:f}:{},...d?{description:d}:{},...q?{repoInit:q}:{},...Te?{sandbox:!0}:{},...l?{envVars:l}:{},...Be?{deployOnPush:!0}:{},...Y?{autoScheduleMigration:Ee}:{}}),O=me(E);z(O);let J=v(e.token)||v(e.setRemoteToken),Oe=D(O,a),Q=J?Oe:O,_=await B("git",K?["remote","set-url","origin",Q]:["remote","add","origin",Q],{cwd:p});if(_.code!==0)throw new Error(`git remote failed: ${j(_.stderr.trim()||_.stdout.trim()||"unknown error")}`);let Ae=J?G(O):O;console.log(`app_id: ${E.appId}`),E.gitOwner&&E.gitRepo&&console.log(`repo: ${E.gitOwner}/${E.gitRepo}`),console.log(`remote: ${Ae}`),console.log('next: git add . && git commit -m "init"');let Ie=E.defaultBranch||"master";console.log(`next: openpond repo push --path ${p} --branch ${Ie}`),J||console.log(`token-remote (non-interactive): git -C ${p} remote set-url origin ${G(O)}`);try{await ye({apiBase:s,apiKey:a,forceRefresh:!0})}catch(b){console.warn("cache refresh failed",b)}}g(Ze,"runRepoCreate");async function Se(e){let o=await B("git",["rev-parse","--abbrev-ref","HEAD"],{cwd:e});if(o.code!==0)return null;let t=o.stdout.trim();return t.length>0?t:null}g(Se,"resolveGitBranch");async function et(e){let o=await y(),t=w(o),r=await R(o,t),n=typeof e.path=="string"?e.path:typeof e.dir=="string"?e.dir:null,i=U.resolve(n&&n.trim().length>0?n.trim():"."),a=U.join(i,".git");if(!W(a))throw new Error(`git repo not found at ${i} (missing .git)`);let s=await F(i,"origin");if(!s)throw new Error("origin remote not set; run `openpond repo create` first");z(s);let c=(typeof e.branch=="string"?e.branch.trim():"")||await Se(i);if(!c)throw new Error("unable to resolve git branch; pass --branch");let d;try{d=D(s,r)}catch{throw new Error("origin remote must be https for tokenized pushes")}let u=v(e.keepTokenRemote)||v(e.token)||v(e.setRemoteToken),l=s.includes("x-access-token:"),m=!u&&!l?s:null,h=process.env.GIT_TERMINAL_PROMPT;process.env.GIT_TERMINAL_PROMPT="0";try{if(!l){let p=await B("git",["remote","set-url","origin",d],{cwd:i});if(p.code!==0)throw new Error(`git remote set-url failed: ${j(p.stderr.trim()||p.stdout.trim()||"unknown error")}`)}if((await B("git",["push","-u","origin",c],{cwd:i,inherit:!0})).code!==0)throw new Error("git push failed")}finally{m&&await B("git",["remote","set-url","origin",m],{cwd:i}).catch(()=>null),h===void 0?delete process.env.GIT_TERMINAL_PROMPT:process.env.GIT_TERMINAL_PROMPT=h}}g(et,"runRepoPush");async function tt(e){if(e.length===0)throw new Error("usage: opentool <init|validate|build> [args]");let o=process.platform==="win32"?"npx.cmd":"npx";if((await B(o,["opentool",...e],{inherit:!0})).code!==0)throw new Error("opentool command failed")}g(tt,"runOpentool");async function nt(){let e="openpond",o=Z(),t=await te(e),r=`npm i -g ${e}@${t}`,n=ee(o,t);if(n===0){console.log(`${e} is up to date (${o})`);return}if(n===-1){console.log(`Update available: ${o} -> ${t}`),console.log(`Run: ${r}`);return}if(n===1){console.log(`Installed version (${o}) is newer than npm latest (${t}).`);return}if(o===t){console.log(`${e} is up to date (${o})`);return}console.log(`Installed: ${o}`),console.log(`Latest: ${t}`),console.log(`Run: ${r}`)}g(nt,"runCheckUpdate");export{Ge as a,je as b,ze as c,He as d,Fe as e,Ve as f,We as g,qe as h,Ye as i,Qe as j,Xe as k,Ze as l,Se as m,et as n,tt as o,nt as p};
|
|
2
|
+
import{a as me,b as D,c as G,d as j,e as z,g as ye,i as T,j as we,k as S,l as he,v as B,x as F}from"./chunk-LRGLV6JX.js";import{a as re,b as L,c as R}from"./chunk-65BW2QXY.js";import{b as H,c as be,d as ve,f as w,h as P,i as Re}from"./chunk-BSHAIAXY.js";import{a as Z,b as ee,c as te}from"./chunk-AUOMUBLE.js";import{a as M,f as v,k as X}from"./chunk-3M53YXEI.js";import{M as pe,N as ue,R as ge,V as fe,h as $,i as ie,l as ae,n as se,o as ce,p as le,q as de}from"./chunk-Z2BYC6TP.js";import{d as y,e as ne,f as oe,g as C}from"./chunk-DXAZUJPA.js";import{a as g}from"./chunk-FTQLQJQV.js";import{promises as V,existsSync as W}from"node:fs";import U from"node:path";import{stdin as $e}from"node:process";async function Ge(e,o){let t=await y(),r=w(t),n=P(t),i=await R(t,r),{app:a}=await T(n,i,o),s=await ce(n,i,a.id);console.log(JSON.stringify(s,null,2))}g(Ge,"runTemplateStatus");async function je(e,o){let t=await y(),r=w(t),n=P(t),i=await R(t,r),{app:a}=await T(n,i,o),s=await le(n,i,a.id);console.log(JSON.stringify(s,null,2))}g(je,"runTemplateBranches");async function ze(e,o){let t=await y(),r=w(t),n=P(t),i=await R(t,r),{app:a}=await T(n,i,o),s=typeof e.env=="string"?e.env:typeof e.environment=="string"?e.environment:void 0,f=X(s),c=await de(n,i,a.id,{environment:f});console.log(JSON.stringify(c,null,2))}g(ze,"runTemplateUpdate");async function He(e){let o=await y(),t=w(o),r=typeof e.apiKey=="string"?e.apiKey:typeof e.key=="string"?e.key:null,n=r?r.trim():await L();if(!n)throw new Error("API key is required");n.startsWith("opk_")||console.log("warning: API keys usually start with opk_."),await C({handle:o.activeProfile?.handle||"default",apiKey:n,baseUrl:t,apiBaseUrl:o.apiBaseUrl,chatApiBaseUrl:o.chatApiBaseUrl,setActive:!0}),console.log("Saved account credentials to the encrypted OpenPond credential store.")}g(He,"runLogin");async function Fe(e,o){let t=o[0]||"list";if(t==="list"){let r=await ne();console.log(JSON.stringify({profiles:r},null,2));return}if(t==="use"){let r=o[1];if(!r)throw new Error("usage: profiles use <name> [--base-url <url>]");let n=await oe(r,{baseUrl:H(e)});console.log(JSON.stringify({profile:n},null,2));return}if(t==="save"){let r=o[1];if(!r)throw new Error("usage: profiles save <name> --api-key <key> [--base-url <url>] [--api-base-url <url>] [--chat-api-base-url <url>]");let n=typeof e.apiKey=="string"?e.apiKey:typeof e.key=="string"?e.key:null,i=n?n.trim():await L(),a=typeof e.environment=="string"?e.environment:typeof e.env=="string"?e.env:void 0,s=await C({handle:r,apiKey:i,baseUrl:H(e),apiBaseUrl:be(e),chatApiBaseUrl:ve(e),environment:a,setActive:!0});console.log(JSON.stringify({profile:s},null,2));return}throw new Error("usage: profiles <list|use|save> [args]")}g(Fe,"runProfiles");async function Ve(){let e=await y(),o=w(e),t=P(e),r=await R(e,o),n=await pe(t,r);console.log(JSON.stringify(n,null,2))}g(Ve,"runAccount");async function We(e){let o=await y(),t=P(o),r=re(o),n=await ue(t,r);console.log(JSON.stringify(n,null,2))}g(We,"runHealth");async function qe(e,o){let t=await y(),r=w(t),n=P(t),i=await R(t,r),{app:a}=await T(n,i,o),s=typeof e.branch=="string"?String(e.branch):void 0,f=await $(n,i,a.id,{branch:s});if(!f?.id){console.log("no deployments found");return}let c=await ie(n,i,f.id),d=(c&&Array.isArray(c.toolsJson)?c.toolsJson:null)||(c&&typeof c.metadataJson=="object"&&c.metadataJson?c.metadataJson.tools:null),u=Array.isArray(d)?d:[];if(u.length===0){console.log("no tools found");return}for(let l of u){let m=l,h=m.profile||m.function,I=m.name||h?.name||"unknown",p=m.description||h?.description||"";console.log(p?`${I} - ${p}`:I)}}g(qe,"runToolList");async function Ye(e,o,t){let r=await y(),n=w(r),i=P(r),a=await R(r,n),{app:s}=await T(i,a,o),f=typeof e.branch=="string"?String(e.branch):void 0,c=await $(i,a,s.id,{branch:f});if(!c?.id)throw new Error("no deployments found");let d;if(typeof e.body=="string")try{d=JSON.parse(e.body)}catch{throw new Error("tool body must be valid JSON")}let u=typeof e.method=="string"?String(e.method).toUpperCase():"POST",l=await fe(n,a,{appId:s.id,deploymentId:c.id,toolName:t,method:u,body:d,headers:a?{"openpond-api-key":a}:void 0});if(!l.ok)throw new Error(l.error||`tool failed (${l.status})`);let m=l.data??{ok:!0};console.log(JSON.stringify(m,null,2))}g(Ye,"runToolRun");async function Qe(e,o,t){let r=await y(),n=w(r),i=P(r),a=await R(r,n),{app:s}=await T(i,a,o),f=typeof e.branch=="string"?String(e.branch):void 0,c=typeof e.deploymentId=="string"?String(e.deploymentId):void 0,d=c?{id:c}:await $(i,a,s.id,{branch:f});if(!d?.id)throw new Error("no deployments found");let u=typeof e.body=="string"?M(String(e.body),"body"):{};if(!u||typeof u!="object"||Array.isArray(u))throw new Error("body must be a JSON object");let l=typeof e.method=="string"?String(e.method).toUpperCase():"POST",m={...u,appId:s.id,deploymentId:d.id,toolName:t,method:l},h=await ge(i,a,m);console.log(JSON.stringify(h,null,2))}g(Qe,"runBacktestRun");async function Xe(e,o){let t=await y(),r=w(t),n=P(t),i=await R(t,r),{app:a,handle:s,repo:f}=await T(n,i,o),c=typeof e.branch=="string"?String(e.branch):void 0,d=typeof e.deploymentId=="string"?String(e.deploymentId):void 0,u=d?{id:d}:await $(n,i,a.id,{branch:c});if(!u?.id){console.log("no deployments found");return}await we({baseUrl:n,apiKey:i,deploymentId:u.id,prefix:`[${s}/${f}] `,intervalMs:e.interval?Number(e.interval):void 0,timeoutMs:e.timeout?Number(e.timeout):void 0})}g(Xe,"runDeployWatch");async function Ze(e,o){let r=((typeof e.name=="string"?e.name:null)||o.join(" ")).trim();if(!r)throw new Error("usage: repo create --name <name> [--team-id <id>] [--path <dir>] [--template <owner/repo|url>] [--template-branch <branch>] [--empty|--opentool] [--sandbox] [--token] [--auto-schedule-migration <true|false>]");let n=await y(),i=w(n),a=await R(n,i),s=P(n),f=typeof e.teamId=="string"&&e.teamId.trim()?e.teamId.trim():void 0,c=typeof e.template=="string"?e.template.trim():"";if(c&&(e.empty==="true"||e.opentool==="true"))throw new Error("choose one: --template or --empty/--opentool");if(e.empty==="true"&&e.opentool==="true")throw new Error("choose one: --empty or --opentool");let d=typeof e.description=="string"?e.description.trim():void 0,u=typeof e.templateBranch=="string"&&e.templateBranch.trim().length>0?e.templateBranch.trim():void 0,l=typeof e.env=="string"?M(e.env,"env"):void 0;if(l){if(typeof l!="object"||Array.isArray(l))throw new Error("env must be a JSON object");for(let[b,A]of Object.entries(l))if(typeof A!="string")throw new Error(`env value for ${b} must be a string`)}if(c){e.deployOnPush!==void 0&&console.warn("deploy-on-push is not used for template create (auto deploys)");let b=Re(c,i),k=(await se(s,a,[{name:r,...d?{description:d}:{},templateRepoUrl:b,...u?{templateBranch:u}:{},...l?{envVars:l}:{}}],f)).items?.[0];if(!k||k.status!=="ok"||!k.appId)throw new Error(k?.error||"Template create failed");console.log(`app_id: ${k.appId}`),k.deploymentId&&console.log(`deployment_id: ${k.deploymentId}`),k.conversationId&&console.log(`conversation_id: ${k.conversationId}`);return}let m=process.cwd(),h=typeof e.path=="string"?e.path:typeof e.dir=="string"?e.dir:null,I=h&&h.trim().length>0?h.trim():$e.isTTY?await he(m):m,p=U.resolve(I);if(W(p)){if(!(await V.stat(p)).isDirectory())throw new Error(`path is not a directory: ${p}`)}else await V.mkdir(p,{recursive:!0});let Pe=(await V.readdir(p)).filter(b=>b!==".git").length===0,x=v(e.yes)||v(e.force);if(!Pe&&!x&&!await S(`Directory is not empty (${p}). Continue?`,!1)){console.log("aborted");return}let ke=U.join(p,".git");if(!W(ke)){if(!(x?!0:await S("Initialize git repository here?",!0))){console.log("aborted");return}let A=await B("git",["init"],{cwd:p});if(A.code!==0)throw new Error(`git init failed: ${A.stderr.trim()||A.stdout.trim()||"unknown error"}`)}let K=await F(p,"origin");if(K&&!x&&!await S(`Remote "origin" already set (${K}). Replace it?`,!1)){console.log("aborted");return}let q=e.opentool==="true"?"opentool":"empty",Te=v(e.sandbox),Be=v(e.deployOnPush),N=e.autoScheduleMigration,Y=typeof N=="string"||typeof N=="boolean",Ee=Y?v(N):void 0,E=await ae(s,a,{name:r,...f?{teamId:f}:{},...d?{description:d}:{},...q?{repoInit:q}:{},...Te?{sandbox:!0}:{},...l?{envVars:l}:{},...Be?{deployOnPush:!0}:{},...Y?{autoScheduleMigration:Ee}:{}}),O=me(E);z(O);let J=v(e.token)||v(e.setRemoteToken),Oe=D(O,a),Q=J?Oe:O,_=await B("git",K?["remote","set-url","origin",Q]:["remote","add","origin",Q],{cwd:p});if(_.code!==0)throw new Error(`git remote failed: ${j(_.stderr.trim()||_.stdout.trim()||"unknown error")}`);let Ae=J?G(O):O;console.log(`app_id: ${E.appId}`),E.gitOwner&&E.gitRepo&&console.log(`repo: ${E.gitOwner}/${E.gitRepo}`),console.log(`remote: ${Ae}`),console.log('next: git add . && git commit -m "init"');let Ie=E.defaultBranch||"master";console.log(`next: openpond repo push --path ${p} --branch ${Ie}`),J||console.log(`token-remote (non-interactive): git -C ${p} remote set-url origin ${G(O)}`);try{await ye({apiBase:s,apiKey:a,forceRefresh:!0})}catch(b){console.warn("cache refresh failed",b)}}g(Ze,"runRepoCreate");async function Se(e){let o=await B("git",["rev-parse","--abbrev-ref","HEAD"],{cwd:e});if(o.code!==0)return null;let t=o.stdout.trim();return t.length>0?t:null}g(Se,"resolveGitBranch");async function et(e){let o=await y(),t=w(o),r=await R(o,t),n=typeof e.path=="string"?e.path:typeof e.dir=="string"?e.dir:null,i=U.resolve(n&&n.trim().length>0?n.trim():"."),a=U.join(i,".git");if(!W(a))throw new Error(`git repo not found at ${i} (missing .git)`);let s=await F(i,"origin");if(!s)throw new Error("origin remote not set; run `openpond repo create` first");z(s);let c=(typeof e.branch=="string"?e.branch.trim():"")||await Se(i);if(!c)throw new Error("unable to resolve git branch; pass --branch");let d;try{d=D(s,r)}catch{throw new Error("origin remote must be https for tokenized pushes")}let u=v(e.keepTokenRemote)||v(e.token)||v(e.setRemoteToken),l=s.includes("x-access-token:"),m=!u&&!l?s:null,h=process.env.GIT_TERMINAL_PROMPT;process.env.GIT_TERMINAL_PROMPT="0";try{if(!l){let p=await B("git",["remote","set-url","origin",d],{cwd:i});if(p.code!==0)throw new Error(`git remote set-url failed: ${j(p.stderr.trim()||p.stdout.trim()||"unknown error")}`)}if((await B("git",["push","-u","origin",c],{cwd:i,inherit:!0})).code!==0)throw new Error("git push failed")}finally{m&&await B("git",["remote","set-url","origin",m],{cwd:i}).catch(()=>null),h===void 0?delete process.env.GIT_TERMINAL_PROMPT:process.env.GIT_TERMINAL_PROMPT=h}}g(et,"runRepoPush");async function tt(e){if(e.length===0)throw new Error("usage: opentool <init|validate|build> [args]");let o=process.platform==="win32"?"npx.cmd":"npx";if((await B(o,["opentool",...e],{inherit:!0})).code!==0)throw new Error("opentool command failed")}g(tt,"runOpentool");async function nt(){let e="openpond",o=Z(),t=await te(e),r=`npm i -g ${e}@${t}`,n=ee(o,t);if(n===0){console.log(`${e} is up to date (${o})`);return}if(n===-1){console.log(`Update available: ${o} -> ${t}`),console.log(`Run: ${r}`);return}if(n===1){console.log(`Installed version (${o}) is newer than npm latest (${t}).`);return}if(o===t){console.log(`${e} is up to date (${o})`);return}console.log(`Installed: ${o}`),console.log(`Latest: ${t}`),console.log(`Run: ${r}`)}g(nt,"runCheckUpdate");export{Ge as a,je as b,ze as c,He as d,Fe as e,Ve as f,We as g,qe as h,Ye as i,Qe as j,Xe as k,Ze as l,Se as m,et as n,tt as o,nt as p};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
-
import{
|
|
2
|
+
import{Ac as pt,Bc as mt,D as H,E as j,F as le,G as L,J as de,K as G,L as f,Mb as pe,N as Ye,O as Qe,P as et,Pb as me,Qa as at,Qb as ct,Rb as $,V as tt,db as nt,eb as rt,fb as st,gb as ot,hb as it,i as Je,j as We,mc as ue,nc as he,oc as Re,pc as Te,qc as Ie,rc as Pe,sc as Ee,tb as xe,tc as _e,zc as dt}from"./chunk-TPMXLA5Y.js";import{Da as C,Ea as Ge,Fa as Ue,Ga as ie,H as ze,Ha as Ke,Ia as X,Ja as ce,Ma as Xe,O as D,P as se,Qa as Ze,b as re,fa as oe,m as Q,ma as W,wa as Ve,xa as Fe}from"./chunk-TPOW52DO.js";import{a as $e}from"./chunk-QUNRWDVO.js";import{a as lt}from"./chunk-6FA3GG5B.js";import{a as V,b as N,c as F,d as Y,e as R,h as we,l as A,n as ne}from"./chunk-HZP5U2AA.js";import{b as t}from"./chunk-ES2ISFJC.js";import{a as l}from"./chunk-FTQLQJQV.js";var Vt=t.string().trim().min(1).max(1e5),Ft=t.enum(["no_training","sft","preference","rl"]),Gt=t.object({kind:t.enum(["none","demonstrations","chosen_rejected","scalar_reward"]),strength:t.enum(["absent","weak","usable"]),calibrated:t.boolean(),confounded:t.boolean(),variance:t.number().finite().nonnegative().nullable(),evidenceRefs:t.array(R).max(1e5)}).strict(),ht=t.object({schemaVersion:t.literal("openpond.modelImprovementQualificationReceipt.v1"),id:V,review:R,harnessRelease:R,tasksetRelease:R.nullable(),baselineEvaluation:R.nullable(),model:ne,environmentHash:N.nullable(),toolContractHash:N.nullable(),permissionContractHash:N.nullable(),policyHash:N.nullable(),verifierRef:R.nullable(),sourcePolicies:t.array($e).max(1e4),trainingEvidenceRefs:t.array(R).max(1e5),frozenEvaluationEvidenceRefs:t.array(R).max(1e5),privacyApproval:R.nullable(),budgetApproval:R.nullable(),maximumCostUsd:t.number().finite().nonnegative(),signal:Gt,decision:Ft,reasons:t.array(Vt).min(1).max(100),createdAt:F,metadata:Y}).strict().superRefine((e,a)=>{let n=new Set(e.trainingEvidenceRefs.map(ut));if(e.frozenEvaluationEvidenceRefs.some(o=>n.has(ut(o)))&&a.addIssue({code:"custom",message:"frozen Evaluation evidence cannot be used as training evidence",path:["frozenEvaluationEvidenceRefs"]}),e.decision==="no_training")return;(!e.tasksetRelease||!e.baselineEvaluation||!e.environmentHash||!e.toolContractHash||!e.permissionContractHash||!e.policyHash||!e.verifierRef||!e.privacyApproval||!e.budgetApproval||e.sourcePolicies.length===0||e.sourcePolicies.some(o=>o.state!=="authorized")||e.trainingEvidenceRefs.length===0||e.signal.strength!=="usable"||!e.signal.calibrated||e.signal.confounded)&&a.addIssue({code:"custom",message:"qualified model improvement requires frozen lineage, authorized signal, privacy, and budget gates"}),e.decision==="sft"&&e.signal.kind!=="demonstrations"&&a.addIssue({code:"custom",message:"SFT qualification requires demonstration signal",path:["signal","kind"]}),e.decision==="preference"&&e.signal.kind!=="chosen_rejected"&&a.addIssue({code:"custom",message:"preference qualification requires chosen/rejected signal",path:["signal","kind"]}),e.decision==="rl"&&(e.signal.kind!=="scalar_reward"||e.signal.variance===null||e.signal.variance<=0)&&a.addIssue({code:"custom",message:"RL qualification requires a usable scalar reward with variance",path:["signal"]})}),Ut=ht.extend({contentHash:N}).strict();function gn(e){let a=ht.parse(e);return Ut.parse({...a,contentHash:A(a)})}l(gn,"createModelImprovementQualificationReceipt");function ut(e){return`${e.id}:${e.contentHash}`}l(ut,"refKey");var Kt=t.object({schemaVersion:t.literal("openpond.optimizerTrainingSample.v1"),tokenIds:t.array(t.number().int().nonnegative()).min(2).max(32768),mask:t.array(t.boolean()).min(2).max(32768),logprobs:t.array(t.number().finite()).min(2).max(32768),temperatures:t.array(t.number().positive().finite()).min(2).max(32768),envName:t.string().trim().min(1).max(200),modelRequestId:t.string().trim().min(1).max(1e3),promptTokenCount:t.number().int().positive(),completionTokenCount:t.number().int().positive(),servedPolicyVersion:t.number().int().nonnegative()}).strict().superRefine((e,a)=>{let n=e.tokenIds.length;for(let[r,o]of[["mask",e.mask],["logprobs",e.logprobs],["temperatures",e.temperatures]])o.length!==n&&a.addIssue({code:"custom",path:[r],message:`${r} must align with tokenIds`});e.promptTokenCount+e.completionTokenCount!==n&&a.addIssue({code:"custom",path:["completionTokenCount"],message:"prompt and completion token counts must span tokenIds"}),e.mask.filter(r=>!r).length!==e.promptTokenCount&&a.addIssue({code:"custom",path:["mask"],message:"promptTokenCount must equal the non-trainable mask count"}),e.mask.filter(Boolean).length!==e.completionTokenCount&&a.addIssue({code:"custom",path:["mask"],message:"completionTokenCount must equal the trainable mask count"})}),Jt=t.object({id:V,environmentRelease:R,status:t.enum(["completed","failed","timed_out","cancelled"]),startedAt:F,completedAt:F,traceRefs:t.array(we).max(1e4),metadata:Y}).strict(),Wt=t.object({receiptRef:R,status:Ye,value:t.number().min(0).max(1).nullable(),learningEligible:t.boolean(),passed:t.boolean(),outcomeClass:et,failureOwner:Qe.nullable(),components:t.record(V,t.number().min(0).max(1).nullable())}).strict(),ft=t.object({schemaVersion:t.literal("openpond.canonicalRolloutRecord.v1"),id:V,attemptRef:R,artifactManifestRef:R,tasksetRelease:R,environmentRelease:R,verifierSetRelease:R,harnessRelease:R,taskId:V,split:Q,model:ne,seed:t.string().trim().min(1).max(500),reward:Wt,traceRef:we,optimizerSample:Kt.nullable(),environmentExecutions:t.array(Jt).min(1).max(1e5),startedAt:F,completedAt:F,metadata:Y}).strict();function gt(e,a){e.reward.status==="scored"&&(e.reward.value===null||!e.reward.learningEligible)&&a.addIssue({code:"custom",path:["reward","status"],message:"A scored rollout requires a numeric, learning-eligible reward."}),e.reward.status==="unscorable"&&(e.reward.value!==null||e.reward.learningEligible)&&a.addIssue({code:"custom",path:["reward","status"],message:"An unscorable rollout has no reward and cannot be learning-eligible."})}l(gt,"validateCanonicalRolloutRecord");var Xt=ft.superRefine(gt),Zt=t.object({...ft.shape,contentHash:N}).strict().superRefine(gt);function Rn(e){let a=Xe.parse(e.attemptReceipt);if(!Ze(a))throw new Error("Rollout Attempt Receipt failed content-hash verification.");let n=tt.parse(e.rewardReceipt);if(n.attemptRef.id!==a.id||n.attemptRef.contentHash!==a.contentHash)throw new Error("Rollout Attempt Receipt does not match its Reward Receipt.");if(n.artifactManifestRef.id!==e.artifactManifestRef.id||n.artifactManifestRef.contentHash!==e.artifactManifestRef.contentHash)throw new Error("Rollout Artifact Manifest does not match its Reward Receipt.");if(e.environmentExecutions.some(o=>o.environmentRelease.id!==e.environmentRelease.id||o.environmentRelease.contentHash!==e.environmentRelease.contentHash))throw new Error("Rollout Environment execution does not match its admitted Environment Release.");let r=Xt.parse({schemaVersion:"openpond.canonicalRolloutRecord.v1",id:e.id,attemptRef:n.attemptRef,artifactManifestRef:e.artifactManifestRef,tasksetRelease:e.tasksetRelease,environmentRelease:e.environmentRelease,verifierSetRelease:n.verifierSetRef,harnessRelease:e.harnessRelease,taskId:e.taskId,split:e.split,model:e.model,seed:e.seed,reward:{receiptRef:{id:n.id,contentHash:n.contentHash},status:n.status,value:n.reward,learningEligible:n.learningEligible,passed:n.passed,outcomeClass:n.outcomeClass,failureOwner:n.failureOwner,components:Object.fromEntries(n.components.map(o=>[o.verifierId,o.rewardContribution]))},traceRef:e.traceRef,optimizerSample:e.optimizerSample,environmentExecutions:e.environmentExecutions,startedAt:e.startedAt,completedAt:e.completedAt,metadata:e.metadata??{}});return Zt.parse({...r,contentHash:A(r)})}l(Rn,"createCanonicalRolloutRecord");function bt(e){let a=[],n=[],r="",o=!1,s=!1,c=l(()=>{n.push(r),r="",s=!1},"finishField"),i=l(()=>{if(c(),n.some(p=>p.length)&&a.push(n),n=[],a.length>C.records+1)throw new Error("CSV exceeds the 1,000-record limit.")},"finishRow");for(let p=0;p<e.length;p++){let d=e[p];if(o)d==='"'&&e[p+1]==='"'?(r+='"',p++):d==='"'?(o=!1,s=!0):r+=d;else if(d===",")c();else if(d===`
|
|
3
3
|
`||d==="\r")d==="\r"&&e[p+1]===`
|
|
4
4
|
`&&p++,i();else if(d==='"'&&!r&&!s)o=!0;else{if(s||d==='"')throw new Error("CSV has an invalid quoted field.");r+=d}}if(o)throw new Error("CSV has an unterminated quoted field.");(r||n.length||s)&&i();let u=a.shift()?.map(p=>p.trim().replace(/^\uFEFF/u,""));if(!u?.includes("instruction"))throw new Error("CSV requires an instruction column.");let h=new Set(["instruction","context","reference","labels","id","familyKey","split"]);if(u.some(p=>!h.has(p))||new Set(u).size!==u.length)throw new Error("CSV has duplicate or unsupported columns. Use instruction, context, reference, labels, id, familyKey and split.");return a.map((p,d)=>{if(p.length!==u.length)throw new Error(`CSV record ${d+2} has a different number of columns from its header.`);return Object.fromEntries(u.map((m,g)=>[m,p[g]]).filter(([,m])=>m!==""))})}l(bt,"parseTaskIntakeCsv");function fe(e){return e.startsWith("\uFEFF")?e.slice(1):e}l(fe,"structuredIntakeText");var vt=t.object({role:t.string().min(1),content:t.json().nullable().optional()}).catchall(t.json()),Yt=t.object({id:t.string().min(1),messages:t.array(vt).min(1).max(C.messages),lineage_session_ids:t.array(t.string()).optional(),parent_session_id:t.string().nullable().optional()}).catchall(t.json());function St(e){let a=Yt.parse(e),n=a.lineage_session_ids?.[0]??a.parent_session_id??a.id,{messages:r,segments:o,...s}=a;return kt("hermes",a.id,n,a.messages,{sourceHash:A(e),metadata:{session:s},warnings:["Imported session context and tools need review before this can become an executable task."]})}l(St,"parseHermesSession");var Qt=t.object({traceSchema:t.literal("openclaw-trajectory"),schemaVersion:t.literal(1),traceId:t.string().min(1),sessionId:t.string().min(1),leafId:t.string().nullable(),eventCount:t.number().int().nonnegative(),warnings:t.array(D).optional()}).catchall(t.json()),ea=t.object({traceSchema:t.literal("openclaw-trajectory"),schemaVersion:t.literal(1),traceId:t.string(),sessionId:t.string(),seq:t.number().int().nonnegative(),type:t.string(),ts:t.string()}).catchall(t.json()),ta=t.object({header:D.nullable(),leafId:t.string().nullable(),entries:t.array(t.object({id:t.string().min(1),type:t.string().min(1),parentId:t.string().nullable().optional(),message:vt.optional()}).catchall(t.json())).max(C.messages)}).strict();function yt(e){let a=l(i=>{let u=e.find(h=>h.path===i);if(!u)throw new Error(`OpenClaw bundle is missing ${i}.`);return fe(u.text)},"read"),n=Qt.parse(JSON.parse(a("manifest.json"))),r=ta.parse(JSON.parse(a("session-branch.json")));if(r.leafId!==n.leafId)throw new Error("OpenClaw manifest and session branch identify different leaves.");let o=a("events.jsonl").split(/\r?\n/u).filter(i=>i.trim()).map(i=>ea.parse(JSON.parse(i)));if(o.length!==n.eventCount||o.some(i=>i.traceId!==n.traceId||i.sessionId!==n.sessionId))throw new Error("OpenClaw events do not match the manifest identity or count.");if(r.header&&r.header.id!==n.sessionId)throw new Error("OpenClaw session header does not match the manifest.");let s=new Set;for(let[i,u]of r.entries.entries()){if(s.has(u.id))throw new Error("OpenClaw branch contains duplicate entry IDs.");if(i&&u.parentId!==r.entries[i-1].id)throw new Error("OpenClaw branch is incomplete or out of order.");s.add(u.id)}if(r.entries.length&&r.entries.at(-1).id!==r.leafId)throw new Error("OpenClaw branch does not reach its declared leaf.");let c=r.entries.filter(i=>i.type==="message"&&i.message).map(i=>({...i.message,entryId:i.id,timestamp:typeof i.timestamp=="string"?i.timestamp:typeof i.message.timestamp=="number"?new Date(i.message.timestamp).toISOString():null}));return kt("openclaw",n.sessionId,n.sessionId,c,{sourceHash:A(e),metadata:{manifest:n,sourceFiles:e.map(i=>i.path)},warnings:["Imported trajectory context and tools need review before this can become an executable task.",...(n.warnings??[]).map(i=>typeof i.message=="string"?i.message.slice(0,2e3):"The source exporter reported incomplete context.")]})}l(yt,"parseOpenClawBundle");function kt(e,a,n,r,o){let s=r.flatMap((i,u)=>i.role==="user"?[u]:[]);if(!s.length)throw new Error("This history contains no user request. Supply a session with its request context.");let c=0;return s.map((i,u)=>{let h=s[u+1]??r.length,p=r.slice(i+1,h),d=p.filter(x=>x.role==="assistant").at(-1),m=r[i],g=m.entryId??m.message_id??m.id??A({start:i,request:m}),v={id:X(e,[a,g]),familyKey:X(e,n),split:"train",kind:"attempt",input:{request:m.content??null,messages:r.slice(0,i+1)},observedOutput:d?{response:d.content??null,messages:p}:null,expected:null,sourceId:`${e}:${a}:${String(g)}`,sourceHash:o.sourceHash,occurredAt:ce(d?.timestamp??m.timestamp),metadata:o.metadata,warnings:[...o.warnings,...d?[]:["No assistant response was recorded for this request."]],needsContext:!0};if(re(v),c+=new TextEncoder().encode(JSON.stringify(v)).length,c>C.bytes)throw new Error("Expanded history exceeds the 5 MiB preview limit. Export a smaller session selection.");return ie.parse(v)})}l(kt,"historyRecords");var aa=t.object({instruction:t.string().trim().min(1).max(1e5),context:t.union([t.string(),D]).optional(),reference:t.union([t.string(),D]).optional(),labels:t.union([t.string(),t.array(t.string()),D]).optional(),id:t.string().min(1).max(200).optional(),familyKey:t.string().min(1).max(200).optional(),split:Q.optional()}).strict(),na=t.object({input:D,observedOutput:D.nullable().optional(),expectedOutput:D.nullable().optional(),id:t.string().min(1).max(200).optional(),familyKey:t.string().min(1).max(200).optional(),split:Q.optional(),occurredAt:t.string().datetime().optional(),labels:D.optional()}).strict();function Wn(e){let a=Ge.parse(e.format),n=t.array(Ue).min(1).max(C.files).parse(e.files);if(n.reduce((h,p)=>h+new TextEncoder().encode(p.text).length,0)>C.bytes)throw new Error("Import exceeds the 5 MiB size limit.");if(n.some(h=>h.path.startsWith("/")||h.path.includes("\\")||h.path.split("/").some(p=>!p||p==="."||p===".."))||new Set(n.map(h=>h.path)).size!==n.length)throw new Error("Import contains an unsafe or duplicate file path.");let r=[],o=[],s=new Map,c=new Map,i=0;function u(h,p,d){try{let m=d();if(r.length+m.length>C.records)throw new Error("Import exceeds the 1,000-record limit.");let g=new Map(s),v=new Map(c),x=0;for(let b of m){re(b);let T=A(b),I=g.get(b.id);if(I&&I!==T)throw new Error("The same record identity has different content in this upload.");I||(x+=new TextEncoder().encode(JSON.stringify(b)).length),g.set(b.id,T);for(let _ of[`family:${b.familyKey}`,`input:${A(b.input)}`]){if(v.has(_)&&v.get(_)!==b.split)throw new Error("The same task family or request occurs in different splits.");v.set(_,b.split)}}if(i+x>C.bytes*2)throw new Error("Expanded import exceeds the 10 MiB preview limit. Select fewer source files.");for(let b of m)s.has(b.id)||r.push(b),s.set(b.id,A(b));for(let[b,T]of v)c.set(b,T);i+=x}catch(m){o.push({file:h,row:p,message:m instanceof t.ZodError?`Unsupported record fields or values (${m.issues.slice(0,3).map(g=>g.path.join(".")||"record").join(", ")}).`:m instanceof SyntaxError?"Invalid JSON.":m instanceof Error?m.message:"Invalid import record."})}}if(l(u,"attempt"),a==="openclaw")u("manifest.json",null,()=>yt(n));else for(let h of n){let p=fe(h.text);if(a==="jsonl"||a==="hermes"){for(let[d,m]of p.split(/\r?\n/u).entries())if(m.trim()){if(o.length>=C.records)break;u(h.path,d+1,()=>a==="hermes"?St(JSON.parse(m)):[wt(JSON.parse(m))])}}else{let d;try{let m=a==="csv"?bt(p):JSON.parse(p);d=Array.isArray(m)?m:[m]}catch(m){u(h.path,null,()=>{throw m});continue}if(d.length>C.records){u(h.path,null,()=>{throw new Error("Import exceeds the 1,000-record limit.")});continue}d.forEach((m,g)=>u(h.path,g+(a==="csv"?2:1),()=>[wt(m)]))}}return Ke.parse({schemaVersion:"openpond.taskIntakePreview.v1",format:a,contentHash:A({format:a,files:n}),records:r,issues:o.slice(0,1e3)})}l(Wn,"previewTaskIntake");function wt(e){let a=t.union([aa,na]).parse(e),n="instruction"in a,r=n?{instruction:a.instruction,...a.context===void 0?{}:{context:a.context}}:a.input,o=n?a.reference===void 0?null:typeof a.reference=="string"?{text:a.reference}:a.reference:a.expectedOutput??null,s=n?null:a.observedOutput??null,c=a.familyKey??X("family",r),i=a.id??X("task",{input:r,expected:o,observedOutput:s});return ie.parse({id:i,familyKey:c,split:a.split??"train",kind:s?"attempt":"task",input:r,expected:o,observedOutput:s,sourceId:i,sourceHash:A(e),occurredAt:n?null:ce(a.occurredAt),metadata:a.labels===void 0?{}:{importedLabels:a.labels,labelOrigin:"unverified_import"},warnings:[],needsContext:!1})}l(wt,"normalizeTask");var q=$.shape.id,M=t.number().int().positive(),U=t.string().regex(/^[a-f0-9]{64}$/),K={teamId:q,modelId:q},Zs=t.object({schemaVersion:t.literal("openpond.tasksetDraftCreate.v1"),operationId:q,modelId:q,expectedModelRevision:M,name:$.shape.name}).strict(),Ys=t.object({schemaVersion:t.literal("openpond.tasksetDraftSourceDescriptor.v1"),...K,expectedModelRevision:M,sourcePackageHash:U}).strict(),Qs=t.object({schemaVersion:t.literal("openpond.tasksetDraftReadback.v1"),...K,draft:$,workspaceHash:U,projectEtag:U}).strict().refine(e=>e.draft.profileId===e.teamId&&e.draft.modelScope?.modelId===e.modelId,"The hosted draft must belong to its declared workspace and Model."),ra=t.object({id:q,revision:M,name:$.shape.name,status:ct,updatedAt:$.shape.updatedAt,sourceTasksetRef:se.nullable()}).strict(),eo=t.object({schemaVersion:t.literal("openpond.tasksetDraftList.v1"),...K,drafts:t.array(ra).max(100),nextCursor:t.string().min(1).max(2e3).nullable()}).strict(),to=t.object({expectedDraftRevision:M,draft:$}).strict(),ao=t.object({expectedDraftRevision:M,expectedModelRevision:M}).strict(),sa=t.object({expectedDraftRevision:M,expectedWorkspaceHash:U}).strict(),no=t.object({schemaVersion:t.literal("openpond.tasksetDraftValidation.v1"),...K,draftId:q,draftRevision:M,workspaceHash:U,valid:t.boolean(),issues:t.array(t.object({code:t.string().min(1),severity:t.enum(["warning","error"]),message:t.string(),path:t.string().nullable()}).strict()),packageHash:U.nullable(),tasksetRef:se.nullable()}).strict().refine(e=>e.valid?e.packageHash!==null&&e.tasksetRef!==null&&e.issues.every(a=>a.severity!=="error"):e.packageHash===null&&e.tasksetRef===null&&e.issues.some(a=>a.severity==="error"),"Validation must retain either a compiled package or publication errors."),ro=sa.extend({operationId:q,expectedPackageHash:U,expectedTasksetRef:se}).strict(),so=t.object({schemaVersion:t.literal("openpond.tasksetDraftFileList.v1"),...K,draftId:q,draftRevision:M,files:t.array(Je).max(10020)}).strict(),oo=t.object({schemaVersion:t.literal("openpond.tasksetDraftFileReadback.v1"),...K,draftId:q,draftRevision:M,file:We}).strict(),io=t.object({schemaVersion:t.literal("openpond.tasksetDraftDeletion.v1"),...K,draftId:q,revision:M,deleted:t.literal(!0)}).strict(),lo=$.shape.id,po=t.number().int().positive();var B=t.string().trim().min(1).max(500),uo=t.object({projectId:B.optional(),tasksetId:B.optional(),draftId:B.optional(),taskId:B.optional(),query:t.string().trim().max(1e3).default(""),split:t.enum(["train","validation","test","frozen_eval"]).optional(),after:t.string().min(1).max(2e3).optional(),limit:t.number().int().min(1).max(100).default(30)}).strict(),oa=t.object({id:B,method:t.enum(["code","judge","human"]),required:t.boolean()}),ia=t.object({tasksetId:B,tasksetName:t.string(),tasksetRevision:t.number().int().positive(),tasksetHash:t.string(),taskId:B,ordinal:t.number().int().nonnegative(),title:t.string(),description:t.string(),split:t.string(),scoring:t.array(oa),configuration:t.enum(["configured","needs_reward","needs_checks"]),draftId:B.nullable().default(null),modelId:B.nullable().default(null)}),ho=t.object({items:t.array(ia).max(100),nextCursor:t.string().nullable()});function fo(e,a){let n=[e.instruction,e.prompt,e.request,e.question,e.message].find(s=>typeof s=="string"&&s.trim().length>0),r=typeof e.title=="string"?e.title.trim():"",o=n?.trim()??"";return{title:(r||o||a).slice(0,180),description:o.slice(0,2e3)}}l(fo,"describeTaskInput");function go(e){return e.map(a=>({id:a.id,method:a.kind==="model_judge"?"judge":a.kind==="human"?"human":"code",required:a.hardGate}))}l(go,"summarizeTaskScoring");function bo(e){return e.some(a=>a.kind!=="human")?e.some(a=>a.kind==="model_judge"&&a.calibrationStatus!=="passed")?"needs_checks":"configured":"needs_reward"}l(bo,"taskConfiguration");var He=3e3,Oe=9999,ge="openpond.yaml",wo="openpond-template-plan.json",ca="openpond.sandboxTemplate.buildPlan.v1",la=["google","github","x"],De=new Set([22,2222,2375,2376,3108,5900,5901,6080,7818]),xt=t.array(t.string().trim().min(1).max(1e3)).max(50),ee=t.string().trim().min(1).max(4096).refine(_t,{message:"path must be a relative workspace path"}),da=t.string().trim().min(1).max(500).refine(e=>!e.includes("\0")&&!/\s/.test(e),"image ref must be a single OCI reference"),pa=t.string().trim().regex(/^sha256:[0-9a-f]{64}$/i),Tt=t.string().trim().min(1).max(500).refine(e=>e.startsWith("/")&&!e.includes("\0"),"workspaceRoot must be an absolute guest path"),ma=t.object({ref:da,digest:pa.optional(),registrySecretRef:t.string().trim().min(1).max(500).optional(),platform:t.literal("linux/amd64").optional(),workspaceRoot:Tt.optional()}).strict(),ua=t.object({context:ee.default("."),path:ee.default("Dockerfile"),target:t.string().trim().min(1).max(191).optional(),buildArgs:t.record(t.string().max(191),t.string().max(500)).optional(),registrySecretRefs:t.array(t.string().trim().min(1).max(500)).max(10).optional(),platform:t.literal("linux/amd64").optional(),workspaceRoot:Tt.optional()}).strict(),ha=t.object({base:t.string().trim().min(1).max(120).optional(),snapshot:t.string().trim().min(1).max(191).optional(),image:ma.optional(),dockerfile:ua.optional()}).strict().superRefine((e,a)=>{[e.base,e.snapshot,e.image,e.dockerfile].filter(Boolean).length!==1&&a.addIssue({code:t.ZodIssueCode.custom,message:"runtime must declare exactly one of base, snapshot, image, or dockerfile"})}),It=t.object({cpu:t.number().positive().max(8).optional(),memoryGb:t.number().positive().max(32).optional(),diskGb:t.number().positive().max(100).optional()}).strict(),fa=t.object({provider:t.enum(la),scopes:t.array(t.string().trim().min(1).max(200)).max(100).default([]),capabilities:t.array(t.string().trim().min(1).max(200)).max(100).default([])}).strict(),ga=t.object({models:t.array(t.string().trim().min(1).max(200)).max(100).default([]),scopes:t.array(t.string().trim().min(1).max(200)).max(100).default([])}).strict(),ba=t.object({opchat:ga.optional()}).catchall(t.record(t.string(),t.unknown())).default({}),va=t.object({name:t.string().trim().regex(/^[A-Za-z_][A-Za-z0-9_-]*$/).max(63).optional(),mountPath:t.string().trim().min(1).max(256).optional(),storageGb:t.number().int().positive().max(100).optional(),deleteOnSandboxDelete:t.boolean().optional()}).strict(),Sa=t.object({port:t.number().int().min(He).max(Oe).refine(e=>!De.has(e),{message:"preview port is reserved"}),protocol:t.literal("http").default("http"),label:t.string().trim().min(1).max(80).optional(),access:t.enum(["private","public"]).default("private"),path:t.string().trim().min(1).max(512).refine(e=>e.startsWith("/"),{message:"preview path must start with /"}).default("/")}).strict(),Pt=t.object({command:t.string().trim().min(1).max(1e3),cwd:ee.optional(),timeoutSeconds:t.number().int().positive().max(86400).optional(),requiresStart:t.boolean().default(!1),ports:t.array(Sa).max(20).default([]),artifactPaths:t.array(ee).max(100).default([])}).strict(),Rt=Pt.extend({name:t.string().trim().min(1).max(80)}).strict(),ya=t.object({name:t.string().trim().min(1).max(80).optional(),service:t.string().trim().min(1).max(80).optional(),port:t.number().int().min(He).max(Oe).refine(e=>!De.has(e),{message:"app MCP port is reserved"}),path:t.string().trim().min(1).max(512).refine(e=>e.startsWith("/"),{message:"app MCP path must start with /"}).default("/mcp")}).strict(),ka=t.object({name:t.string().trim().min(1).max(80).optional(),port:t.number().int().min(He).max(Oe).refine(e=>!De.has(e),{message:"validation probe port is reserved"}),path:t.string().trim().min(1).max(512).refine(e=>e.startsWith("/"),{message:"validation probe path must start with /"}).default("/"),expectedStatus:t.number().int().min(100).max(599).default(200)}).strict(),wa=t.record(t.string(),t.unknown()).refine(e=>e.type==="object","input schema must be a JSON schema object"),xa=t.object({name:t.string().trim().regex(/^[A-Za-z_][A-Za-z0-9_]*$/).max(191),required:t.boolean().default(!1),secret:t.boolean().default(!0),description:t.string().trim().max(500).optional()}).strict(),Ae=t.string().trim().min(1).max(120),Ra=t.object({name:t.string().trim().min(1).max(120),description:t.string().trim().max(500).optional(),cron:t.string().trim().min(1).max(500).optional(),rate:t.string().trim().min(1).max(500).optional(),once:Ae.optional(),scheduleType:t.enum(["rate","cron","once"]).optional(),scheduleExpression:t.string().trim().min(1).max(500).optional(),timezone:t.string().trim().min(1).max(100).optional(),enabled:t.boolean().default(!0),startAt:Ae.optional(),endAt:Ae.optional(),maxRuns:t.number().int().positive().nullable().optional(),runtimePolicy:t.enum(["run_and_stop","run_and_archive","run_and_delete","use_existing_running"]).default("run_and_stop"),action:t.string().trim().min(1).max(120).optional(),actionName:t.string().trim().min(1).max(120).optional(),command:t.string().trim().min(1).max(2e3).optional(),target:t.object({kind:t.enum(["start","action","service","command"]).optional(),name:t.string().trim().min(1).max(120).optional(),actionName:t.string().trim().min(1).max(120).optional(),command:t.string().trim().min(1).max(2e3).optional(),requiresStart:t.boolean().optional()}).strict().optional(),requiresStart:t.boolean().optional(),budget:t.object({maxUsd:t.string().trim().min(1).max(40).optional()}).strict().optional(),resources:It.optional(),quotas:t.record(t.string(),t.unknown()).optional(),lifecycle:t.record(t.string(),t.unknown()).optional(),retentionPolicy:t.record(t.string(),t.unknown()).optional(),env:t.array(t.object({name:t.string().trim().regex(/^[A-Za-z_][A-Za-z0-9_]*$/).max(191),value:t.string().optional(),secretRef:t.string().optional()}).strict()).max(100).optional(),integrationLeases:t.array(t.record(t.string(),t.unknown())).max(20).optional(),metadata:t.record(t.string(),t.unknown()).optional()}).strict().superRefine((e,a)=>{[e.cron,e.rate,e.once,e.scheduleExpression].filter(i=>typeof i=="string"&&i.trim()).length!==1&&a.addIssue({code:t.ZodIssueCode.custom,path:["scheduleExpression"],message:"schedule must declare exactly one of cron, rate, once, or scheduleExpression"}),e.scheduleExpression&&!e.scheduleType&&a.addIssue({code:t.ZodIssueCode.custom,path:["scheduleType"],message:"scheduleType is required with scheduleExpression"});let r=e.command??e.target?.command??null,o=e.target?.name??null,s=e.actionName??e.action??e.target?.actionName??(e.target?.kind==="action"?o:null),c=e.target?.kind??(r?"command":"action");c==="action"&&!s&&a.addIssue({code:t.ZodIssueCode.custom,path:["action"],message:"schedule action target is required"}),c==="service"&&!o&&a.addIssue({code:t.ZodIssueCode.custom,path:["target","name"],message:"schedule service target name is required"}),c==="command"&&!r&&a.addIssue({code:t.ZodIssueCode.custom,path:["command"],message:"schedule command target is required"})}),Ta=t.object({schemaVersion:t.literal(1),name:t.string().trim().min(1).max(80).regex(/^[a-z0-9][a-z0-9-]*[a-z0-9]$/),version:t.string().trim().min(1).max(40),useCase:t.string().trim().min(1).max(80),description:t.string().trim().min(1).max(500),runtime:ha,resources:It.optional(),setup:t.object({commands:xt.default([])}).strict().default({commands:[]}),validation:t.object({commands:xt.min(1),probes:t.array(ka).max(20).default([])}).strict(),start:Pt,actions:t.array(Rt).max(20).default([]),services:t.array(Rt).max(20).default([]),schedules:t.array(Ra).max(20).default([]),mcp:t.object({endpoints:t.array(ya).max(10).default([])}).strict().default({endpoints:[]}),volumes:t.array(va).max(5).default([]),integrations:t.object({requiredLeases:t.array(fa).max(20).default([])}).strict().default({requiredLeases:[]}),permissions:ba,inputs:t.object({schema:wa.default({type:"object"}),env:t.array(xa).max(100).default([])}).strict().default({schema:{type:"object"},env:[]}),artifacts:t.object({paths:t.array(ee).max(100).default([])}).strict().default({paths:[]}),network:t.object({egress:t.enum(["restricted","allow","block"]).default("restricted")}).strict().default({egress:"restricted"})}).strict().superRefine((e,a)=>{_a(e,a),Me(a,e.volumes.flatMap(n=>n.name?[n.name]:[]),"volume names must be unique","volumes"),Aa(e,a),Ca(e,a),ja(e,a),Ha(e,a)}),xo=t.object({path:t.string(),message:t.string(),code:t.string()});function Ro(e){let a;try{a=lt.load(e)}catch(n){return{ok:!1,manifest:null,diagnostics:[{path:"$",code:"invalid_yaml",message:n instanceof Error?n.message:"Invalid YAML"}]}}return Ia(a)}l(Ro,"validateSandboxTemplateYaml");function Ia(e){if(!e||typeof e!="object"||Array.isArray(e))return{ok:!1,manifest:null,diagnostics:[{path:"$",code:"invalid_type",message:`${ge} must be an object`}]};if(Object.prototype.hasOwnProperty.call(e,"databases"))return{ok:!1,manifest:null,diagnostics:[{path:"$.databases",code:"database_resources_removed",message:"managed database requests are unsupported for Firecracker sandbox templates; use a durable volume with SQLite or files instead"}]};let a=Ta.safeParse(e);return a.success?{ok:!0,manifest:a.data,diagnostics:[]}:{ok:!1,manifest:null,diagnostics:a.error.issues.map(n=>({path:Ea(n.path),code:n.code,message:n.message}))}}l(Ia,"validateSandboxTemplateManifest");function To(e){return e.map(a=>`${a.path}: ${a.message}`).join(`
|
|
5
5
|
`)}l(To,"formatSandboxTemplateDiagnostics");function Et(e){return[{kind:"start",name:"start",...e.start,artifactPaths:je(e.start,e)},...e.actions.map(a=>({kind:"action",name:a.name,command:a.command,cwd:a.cwd,timeoutSeconds:a.timeoutSeconds,requiresStart:a.requiresStart,ports:a.ports,artifactPaths:je(a,e)})),...e.services.map(a=>({kind:"service",name:a.name,command:a.command,cwd:a.cwd,timeoutSeconds:a.timeoutSeconds,requiresStart:a.requiresStart,ports:a.ports,artifactPaths:je(a,e)}))]}l(Et,"sandboxTemplateExecutableEntries");function Pa(e){let a=Et(e);return{template:{name:e.name,version:e.version,useCase:e.useCase,runtime:e.runtime},resources:e.resources??null,volumes:e.volumes,executables:a.map(n=>({kind:n.kind,name:n.name,command:n.command,cwd:n.cwd??null,timeoutSeconds:n.timeoutSeconds??null,requiresStart:n.requiresStart,ports:n.ports.map(r=>r.port),artifactPaths:n.artifactPaths})),ports:a.flatMap(n=>n.ports.map(r=>({executable:n.name,kind:n.kind,port:r.port,access:r.access,label:r.label??null}))),appMcpEndpoints:e.mcp.endpoints.map(n=>({name:n.name??null,service:n.service??null,port:n.port,path:n.path})),validation:{commands:e.validation.commands,probes:e.validation.probes},schedules:e.schedules}}l(Pa,"sandboxTemplateBuildMetadata");function Io(e){return{kind:ca,schemaVersion:1,manifestFile:e.manifestFile,projectRoot:e.projectRoot,manifest:e.manifest,metadata:Pa(e.manifest),executables:Et(e.manifest)}}l(Io,"sandboxTemplateBuildPlan");function Po(e){let a=e.name.trim()||"Sandbox Template",n=Oa(a),r=e.description?.trim()||`Local scaffold for ${a}.`;return{".gitignore":["node_modules","artifacts",".DS_Store",""].join(`
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
+
import{i as a,j as b,k as c}from"./chunk-ANCZVBMI.js";import"./chunk-BJSXEGWG.js";import"./chunk-JYM3O4G7.js";import"./chunk-OUN6VQDO.js";import"./chunk-VTWY3U4M.js";import"./chunk-SUAT5DR4.js";import"./chunk-2VTXKZNK.js";import"./chunk-EEJ3HL6O.js";import"./chunk-MOMDY22U.js";import"./chunk-S2MLTFZF.js";import"./chunk-BAQ3DWH2.js";import"./chunk-AANEPCEZ.js";import"./chunk-VI3ZF54E.js";import"./chunk-L3KS6MOV.js";import"./chunk-3CKJETWW.js";import"./chunk-ZQWXPDCB.js";import"./chunk-6MI4KKWF.js";import"./chunk-TPMXLA5Y.js";import"./chunk-2Z6H32OC.js";import"./chunk-MJC26GOX.js";import"./chunk-TPOW52DO.js";import"./chunk-QUNRWDVO.js";import"./chunk-6FA3GG5B.js";import"./chunk-SDO4FC4Q.js";import"./chunk-IR3YJWPW.js";import"./chunk-ALZRXBEC.js";import"./chunk-MTJNKRXL.js";import"./chunk-HZP5U2AA.js";import"./chunk-ES2ISFJC.js";import"./chunk-H7IWJN7L.js";import"./chunk-FTQLQJQV.js";export{a as resolveWebLaunchMessages,c as runOpenPondAppServerCli,b as runOpenPondServerCli};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
+
import{a as f}from"./chunk-QZ4KTU65.js";import"./chunk-AUOMUBLE.js";import"./chunk-3M53YXEI.js";import{H as J,W as N,X as q,_ as k,aa as A,b as d,ba as B,c as w,e as b,ea as H,fa as I,na as E,oa as M,p as C,pa as T,r as m,s as j,t as x,u as F,v,w as P}from"./chunk-ALZRXBEC.js";import"./chunk-MTJNKRXL.js";import"./chunk-HZP5U2AA.js";import"./chunk-ES2ISFJC.js";import{d as O,f as S,h as g}from"./chunk-H7IWJN7L.js";import{a as l}from"./chunk-FTQLQJQV.js";import R from"node:path";import{readFile as p}from"node:fs/promises";var n=l((t,s)=>typeof t[s]=="string"?t[s]:void 0,"stringOption");function a(t){console.log(JSON.stringify(t,null,2))}l(a,"print");function U(t,s){let i=n(t,"keyPath");if(i){let r=JSON.parse(i);if(Array.isArray(r)&&r.length&&r.every(c=>typeof c=="string"&&c.length))return r;throw new f("--key-path must be a JSON array of key segments.")}if(!s)throw new f("Specify a setting key, or --key-path for keys containing dots.");return s.split(".")}l(U,"keyPath");async function G(t,s){let i=S({home:n(t,"home")}),r=s[0]??"get",c=g(i).config;if(r==="path"){console.log(c);return}if(r==="export"){let e=await T(i),o=n(t,"file");o?(await b(R.resolve(o),JSON.stringify(e,null,2),{privateParent:!1}),a({path:R.resolve(o),requiresRebinding:e.requiresRebinding})):a(e);return}if(r==="backup"||r==="restore"){let e=n(t,"file"),o=n(t,"keyFile");if(!e||!o)throw new f(`config ${r} requires --file <encrypted-backup> and --key-file <separate-32-byte-key-file>.`);let u=await p(o),y=u.length===32?u:Buffer.from(u.toString("utf8").trim(),"base64");try{a(r==="backup"?await E(i,e,y):await M(e,i,y))}finally{y.fill(0),u.fill(0)}return}if(r==="collect-orphans"){a(await N(i));return}if(r==="schema"){a(F());return}if(r==="migrate"){let e=n(t,"resolutionFile"),o=e?q.parse(JSON.parse(await p(e,"utf8"))):void 0;a(await k(i,{resolutions:o,sourceAppHome:n(t,"sourceAppHome"),sourceConfig:n(t,"sourceConfig"),sourceBrowserState:n(t,"sourceBrowserState"),dryRun:t.dryRun===!0||t.dryRun==="true"}));return}if(r==="recover"){let e=n(t,"revision");a(e?await x(i,e,n(t,"expectedRevision")??d(await w(c))):await A(i));return}if(r==="restart-migration"){a(await B(i));return}if(r==="effective"){a(await I(i,{projectRoot:n(t,"projectRoot"),accountId:n(t,"accountId")}));return}if(r==="trust"||r==="untrust"){let e=n(t,"projectRoot")??s[1];if(!e)throw new f("Specify the canonical project root with --project-root.");await H(i,e,n(t,"accountId")??"local",r==="trust"),a({root:e,trusted:r==="trust"});return}if(r==="revisions"){a(await m(i));return}if(r==="validate"){let e=n(t,"file")??c;C(await p(e,"utf8"),e,t.project===!0||t.project==="true"?"project":"user"),a({valid:!0,path:e});return}if(r==="replace"){let e=n(t,"file");if(!e)throw new f("config replace requires --file <validated-toml-file>.");a(await j(i,n(t,"expectedRevision")??d(await w(c)),await p(e,"utf8")));return}if(r==="doctor"){let e=await w(c),o=null;try{await v(i)}catch(u){o=O(u,c)}a({home:i,path:c,rawRevision:d(e),issue:o,recoverableRevisions:await m(i),migration:await w(R.join(g(i).runtime,"migration.json"))!==null}),o&&(process.exitCode=1);return}if(await k(i),r==="clear-cache"){await J(i),a({cleared:!0,path:g(i).cache});return}let h=await v(i);if(r==="get"){if(!s[1]&&!t.keyPath){a(h);return}let e=h.document;for(let o of U(t,s[1]))e=e&&typeof e=="object"?e[o]:void 0;a(e??null);return}if(r==="set"||r==="unset"){let e=U(t,s[1]),o;if(r==="set"){let u=n(t,"value")??s[2];if(u===void 0)throw new f("config set requires a value. Use JSON for arrays, tables, numbers and booleans.");try{o=JSON.parse(u)}catch{o=u}}a(await P(i,n(t,"expectedRevision")??h.rawRevision,[r==="set"?{op:"set",path:e,value:o}:{op:"unset",path:e}]));return}throw new f(`Unknown config command: ${r}`)}l(G,"runConfigurationCommand");export{G as runConfigurationCommand};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
+
import{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p}from"./chunk-ZLQQUZH7.js";import"./chunk-LRGLV6JX.js";import"./chunk-65BW2QXY.js";import"./chunk-BSHAIAXY.js";import"./chunk-QZ4KTU65.js";import"./chunk-AUOMUBLE.js";import"./chunk-XWPC3AN4.js";import"./chunk-3M53YXEI.js";import"./chunk-OGPHXXCD.js";import"./chunk-XJAK6DDB.js";import"./chunk-Z2BYC6TP.js";import"./chunk-DXAZUJPA.js";import"./chunk-GLUWATL5.js";import"./chunk-KCENW4ME.js";import"./chunk-2Z6H32OC.js";import"./chunk-MJC26GOX.js";import"./chunk-TPOW52DO.js";import"./chunk-QUNRWDVO.js";import"./chunk-ALZRXBEC.js";import"./chunk-MTJNKRXL.js";import"./chunk-HZP5U2AA.js";import"./chunk-ES2ISFJC.js";import"./chunk-H7IWJN7L.js";import"./chunk-FTQLQJQV.js";export{m as resolveGitBranch,f as runAccount,j as runBacktestRun,p as runCheckUpdate,k as runDeployWatch,g as runHealth,d as runLogin,o as runOpentool,e as runProfiles,l as runRepoCreate,n as runRepoPush,b as runTemplateBranches,a as runTemplateStatus,c as runTemplateUpdate,h as runToolList,i as runToolRun};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
+
import"./chunk-LRGLV6JX.js";import{c as Pa}from"./chunk-65BW2QXY.js";import{c as Ea,f as Aa}from"./chunk-BSHAIAXY.js";import"./chunk-QZ4KTU65.js";import"./chunk-AUOMUBLE.js";import"./chunk-XWPC3AN4.js";import{c as G,f as oa}from"./chunk-3M53YXEI.js";import{d as xa}from"./chunk-AANEPCEZ.js";import"./chunk-VI3ZF54E.js";import"./chunk-3CKJETWW.js";import"./chunk-ZQWXPDCB.js";import"./chunk-6MI4KKWF.js";import{Q as ne,T as se,W as xe,Y as Re,Z as wa,aa as he,c as ya,ca as ge,wa as pt,za as Ta}from"./chunk-TPMXLA5Y.js";import"./chunk-OGPHXXCD.js";import{a as _e,b as x,c as M,d as Vt,e as Ra,i as _a}from"./chunk-XJAK6DDB.js";import"./chunk-Z2BYC6TP.js";import{d as Ia}from"./chunk-DXAZUJPA.js";import"./chunk-GLUWATL5.js";import"./chunk-KCENW4ME.js";import"./chunk-2Z6H32OC.js";import"./chunk-MJC26GOX.js";import{$ as ba,B as ue,H as fe,P as Fe,R as Ue,T as ha,W as ga,_ as ka,b as pe,d as zt,f as pa,fa as I,ga as D,ha as E,ia as mt,j as ct,ka as re,la as va,m as la,ma as X,o as ua,p as qt,q as Oe,r as fa,s as O,t as dt,va as Bt,wa as Sa,xa as Ge,y as le}from"./chunk-TPOW52DO.js";import{g as da,h as ma}from"./chunk-QUNRWDVO.js";import"./chunk-6FA3GG5B.js";import"./chunk-SDO4FC4Q.js";import"./chunk-IR3YJWPW.js";import"./chunk-ALZRXBEC.js";import"./chunk-MTJNKRXL.js";import{a as nt,b as st,e as it,f as ca,g as K,j as ae,k as z,l as g,q as ot}from"./chunk-HZP5U2AA.js";import{b as e}from"./chunk-ES2ISFJC.js";import"./chunk-H7IWJN7L.js";import{a as c}from"./chunk-FTQLQJQV.js";var ke=Fe.shape.id,Ne=e.string().regex(/^[a-f0-9]{64}$/),ja=e.object({scopeId:ke,modelId:ke}).strict(),Ot=e.object({schemaVersion:e.literal("openpond.modelTasksetAuthoring.v1"),owner:ja,root:Fe,parent:Fe}).strict(),Vr=e.object({schemaVersion:e.literal("openpond.modelTasksetDraftRequest.v1"),operationId:ke,modelId:ke,expectedModelRevision:e.number().int().positive(),sourcePackageHash:Ne}).strict(),Ie=e.object({schemaVersion:e.literal("openpond.modelTasksetDraftPreparation.v1"),draftId:ke,requestHash:Ne,sourcePackageHash:Ne,sourceTasksetRef:Fe,tasksetId:ke,tasksetRevision:e.number().int().positive(),lineage:Ot,authoringGraph:e.literal("bound").optional()}).strict(),Q=e.string().min(1).max(1024).refine(t=>!t.includes("\\")&&!t.includes(":")&&!t.includes("\0")&&!t.startsWith("/")&&!t.split("/").some(a=>!a||a==="."||a===".."||a.startsWith(".env")),"Use a relative Taskset file path without environment files."),Or=e.object({path:Q,sizeBytes:e.number().int().nonnegative(),writable:e.boolean()}).strict(),Ft=e.object({encoding:e.enum(["utf8","base64"]),data:e.string().max(8e6)}).strict(),$s=Or.extend({contentHash:Ne,content:Ft}).strict(),Fr=e.object({draftId:ke,expectedDraftRevision:e.number().int().positive(),path:Q,expectedFileHash:Ne.nullable(),content:Ft.nullable()}).strict();var F=e.string().trim().min(1).max(240),Y=e.string().trim().min(1),ie=e.string().trim().min(8).max(256),Da=e.string().trim().min(1).max(1e3).refine(t=>!t.startsWith("/")&&!t.startsWith("\\")&&!t.split(/[\\/]/).includes(".."),"Artifact paths must be relative and stay inside the Dataset."),oe=e.enum(["train","validation","test","frozen_eval"]),Ur=e.object({name:e.string().trim().min(1).max(500),semanticRole:e.enum(["row_id","cluster_id","prompt","messages","demonstration","chosen","rejected","expected_output","privileged_context","reward","feedback","tag","metadata"]),logicalType:e.enum(["string","integer","float","boolean","json","messages"]),nullable:e.boolean(),policy:e.enum(["visible","privileged","metadata"])}),Gr=e.object({schemaVersion:e.literal("openpond.datasetSemanticSchema.v1"),fields:e.array(Ur).min(1).max(1e4),schemaHash:ie}),Nr=e.object({id:F,split:oe,path:Da,contentHash:ie,schemaHash:ie,sizeBytes:e.number().int().nonnegative(),rowCount:e.number().int().positive(),rowGroupCount:e.number().int().positive()}),Le=e.object({schemaVersion:e.literal("openpond.datasetArtifact.v1"),id:F,tasksetId:F,tasksetRevision:e.number().int().positive(),contentHash:ie,format:e.literal("parquet"),schema:Gr,shards:e.array(Nr).min(1).max(1e5),rowCount:e.number().int().positive(),splitCounts:e.record(oe,e.number().int().nonnegative()),sourceReceiptRefs:e.array(F).min(1).max(1e5),mappingHash:ie,qualityReportHash:ie,createdAt:Y}),Bs=e.object({schemaVersion:e.literal("openpond.datasetArtifactSummary.v1"),artifactId:F,tasksetId:F,tasksetRevision:e.number().int().positive(),format:e.literal("parquet"),rowCount:e.number().int().positive(),splitCounts:e.record(oe,e.number().int().nonnegative()),sizeBytes:e.number().int().nonnegative(),contentHash:ie,available:e.boolean(),unavailableReason:e.string().trim().min(1).max(2e3).nullable(),createdAt:Y}),Lr=e.object({schemaVersion:e.literal("openpond.datasetCatalogItem.v1"),tasksetId:F,tasksetRevision:e.number().int().positive(),artifactId:F.nullable(),name:e.string().trim().min(1).max(500),status:e.enum(["draft","awaiting_disclosure_approval","awaiting_materialization_approval","materializing","validating","needs_review","baselining","ready","blocked","failed","archived"]),storageKind:e.enum(["inline","parquet"]),rowCount:e.number().int().nonnegative(),splitCounts:e.record(oe,e.number().int().nonnegative()),sizeBytes:e.number().int().nonnegative().nullable(),available:e.boolean(),unavailableReason:e.string().trim().min(1).max(2e3).nullable(),createdAt:Y,updatedAt:Y}),Vs=e.object({schemaVersion:e.literal("openpond.datasetCatalog.v1"),profileId:F,datasets:e.array(Lr),generatedAt:Y}),Os=e.object({schemaVersion:e.literal("openpond.datasetArtifactRegistry.v1"),manifest:Le,profileId:F,storageRoot:e.string().trim().min(1).max(4e3),relativeManifestPath:Da,available:e.boolean(),unavailableReason:e.string().trim().min(1).max(2e3).nullable(),verifiedAt:Y.nullable(),createdAt:Y,updatedAt:Y}),Fs=e.object({split:oe.nullable().default(null),cursor:e.string().trim().min(1).max(2e3).nullable().default(null),limit:e.number().int().min(1).max(100).default(25),columns:e.array(e.string().trim().min(1).max(500)).max(100).default([])}),Us=e.object({schemaVersion:e.literal("openpond.datasetRowPage.v1"),tasksetId:F,tasksetRevision:e.number().int().positive(),artifactHash:ie,split:oe.nullable(),rows:e.array(e.record(e.string(),e.unknown())).max(100),nextCursor:e.string().max(2e3).nullable(),totalRows:e.number().int().nonnegative(),returnedRows:e.number().int().nonnegative()}),Jr=e.object({schemaVersion:e.literal("openpond.datasetStorageSettings.v1"),datasetStorePath:e.string().trim().min(1).max(4e3),updatedAt:Y}),Wr=e.object({id:F,label:e.string().trim().min(1).max(500),path:e.string().trim().min(1).max(4e3),datasetStorePath:e.string().trim().min(1).max(4e3),kind:e.enum(["local","network","removable","cache"]),configured:e.boolean(),mounted:e.boolean(),writable:e.boolean(),totalBytes:e.number().int().nonnegative().nullable(),freeBytes:e.number().int().nonnegative().nullable()}),Gs=e.object({schemaVersion:e.literal("openpond.datasetStorageState.v1"),settings:Jr,storageRoots:e.array(Wr)}),Ns=e.object({datasetStorePath:e.string().trim().min(1).max(4e3)});var Pe=e.string().trim().min(1).max(240),Kr=e.string().trim().min(1),Ee=e.string().trim().min(8).max(256),Xr=e.record(e.string(),e.unknown()).default({}),Qr=e.string().trim().min(7).max(256),Yr=e.enum(["pending","approved","review","blocked"]),lt=e.object({id:Pe,profileId:Pe,title:e.string().trim().min(1).max(500),sourceHash:Ee,occurredAt:Kr,licensingStatus:Yr,secretScanStatus:e.enum(["pending","passed","blocked"]),piiScanStatus:e.enum(["pending","passed","review","blocked"]),metadata:Xr}),Zr=lt.extend({schemaVersion:e.literal("openpond.huggingFaceDatasetSource.v1"),kind:e.literal("huggingface"),repositoryId:e.string().trim().regex(/^[^/\s]+\/[^/\s]+$/).max(500),repositoryUrl:e.string().url().max(2e3),revision:Qr,configuration:e.string().trim().min(1).max(500),upstreamSplits:e.array(e.string().trim().min(1).max(500)).min(1).max(1e3),gated:e.boolean(),private:e.boolean(),declaredLicense:e.string().trim().min(1).max(500).nullable(),sourceFileHashes:e.array(Ee).min(1).max(1e5)}),en=lt.extend({schemaVersion:e.literal("openpond.uploadedFileDatasetSource.v1"),kind:e.literal("uploaded_file"),originalFileNames:e.array(e.string().trim().min(1).max(500)).min(1).max(1e3),mediaTypes:e.array(e.string().trim().min(1).max(200)).min(1).max(1e3),sourceFileHashes:e.array(Ee).min(1).max(1e3),totalBytes:e.number().int().nonnegative(),parserVersion:e.string().trim().min(1).max(200)}),tn=lt.extend({schemaVersion:e.literal("openpond.generatedDatasetSource.v1"),kind:e.literal("generated"),generatorId:Pe,generatorVersion:e.string().trim().min(1).max(200),seed:e.number().int(),generatorHash:Ee}),an=lt.extend({schemaVersion:e.literal("openpond.learningBatchDatasetSource.v1"),kind:e.literal("learning_batch"),batch:e.object({id:Pe,revision:e.number().int().positive(),contentHash:Ee}).strict(),taskDefinition:e.object({id:Pe,revision:e.number().int().positive(),contentHash:Ee}).strict(),admittedBy:Pe}),Ha=e.discriminatedUnion("kind",[Zr,en,tn,an]);var Ca=e.object({schemaVersion:e.literal("openpond.harnessActionBinding.v1"),actionId:nt,modelToolName:e.string().trim().min(1).max(64).regex(/^[a-zA-Z][a-zA-Z0-9_-]*$/),description:e.string().trim().min(1).max(1e3),inputSchema:e.record(e.string(),e.unknown()),actionSchemaHash:st,agentRelease:it,implementationHash:st,runtimeBindingId:nt,capabilityReceiptHash:st,sideEffect:e.enum(["read","write"]),studentVisible:e.boolean(),timeoutMs:e.number().int().positive().max(36e5),episodeArgumentBindings:e.array(e.object({argument:nt,source:e.literal("case_id")}).strict()).max(20).default([])}).strict();var w=e.string().trim().min(1).max(240),Ut=e.string().trim().min(1),rn=e.string().trim().min(8).max(256),Gt=e.string().trim().regex(/^[a-f0-9]{64}$/),nn=e.string().trim().regex(/^[A-Za-z_$][A-Za-z0-9_$]*$/),N=e.record(e.string(),e.unknown()).default({}),ft=w.nullable();function Je(t){let a=t.trim().replaceAll("\\","/");return!a||a.startsWith("/")||a==="."||a===".."?!1:!a.split("/").some(r=>!r||r==="."||r==="..")}c(Je,"safeRelativeFilePath");function sn(t){let a=t.trim();return a.length>0&&a!=="."&&a!==".."&&!a.includes("/")&&!a.includes("\\")&&!a.includes("\0")}c(sn,"safeFileName");var ut=oe,ht=e.enum(["general","benchmark"]),gt=e.object({schemaVersion:e.literal("openpond.tasksetBenchmark.v1"),definitionId:w,releaseId:w,releaseHash:Gt,managedReleasePath:e.string().trim().min(1).max(1e3).refine(Je,"Benchmark release paths must remain relative."),adaptationSplit:ut,evaluationSplit:ut,primaryMetric:e.enum(["foreground_tokens","success_rate","latency_ms","cost_usd"]),qualityGate:e.enum(["none","non_regression","all_pass"]),source:e.enum(["builtin","imported"]),metadata:N}),kt=e.object({schemaVersion:e.literal("openpond.tasksetPreferenceComparisonBinding.v1"),releaseId:w,releaseHash:Gt,publishedAt:Ut,metadata:N}),on=e.object({status:e.enum(["pending","granted","denied","revoked"]),scope:e.enum(["metadata_only","selected_turns","full_session"]),grantedBy:ft,grantedAt:Ut.nullable(),purpose:e.literal("task_authoring_and_evaluation")}),cn=e.object({schemaVersion:e.literal("openpond.trainingSource.v1"),id:w,profileId:w,sessionId:w,turnIds:e.array(w).max(1e3).default([]),workspaceId:ft,sourceHash:rn,clusterKey:w,title:e.string().trim().min(1).max(500),occurredAt:Ut,consent:on,connectedAppIds:e.array(w).max(100).default([]),secretScanStatus:e.enum(["pending","passed","blocked"]),piiScanStatus:e.enum(["pending","passed","review","blocked"]),licensingStatus:e.enum(["pending","approved","review","blocked"]),metadata:N}),bt=e.union([cn,Ha]),vt=e.object({policyVisibleFields:e.array(w).max(1e3).default([]),privilegedFields:e.array(w).max(1e3).default([]),hiddenGraderRefs:e.array(w).max(100).default([]),connectedAppScopes:e.array(w).max(100).default([])}),dn=e.object({id:w,sourceRefId:w,artifactRef:e.string().trim().min(1).max(4e3).refine(Je,"Task asset references must be safe relative paths."),fileName:e.string().trim().min(1).max(500).refine(sn,"Task asset file names must not contain path separators."),mediaType:e.string().trim().min(1).max(200),sha256:Gt,sizeBytes:e.number().int().nonnegative().max(25e7),split:ut,metadata:N}),mn=e.object({path:e.string().trim().min(1).max(1e3).refine(Je,"Required output paths must stay inside the Work output directory."),mediaType:e.string().trim().min(1).max(200),schemaRef:w.nullable().optional(),maxBytes:e.number().int().positive().max(1e7).optional(),metadata:N}),Ae=e.object({schemaVersion:e.literal("openpond.taskData.v1"),id:w,clusterKey:w,split:ut,input:e.record(e.string(),e.unknown()),expectedOutput:e.record(e.string(),e.unknown()).nullable(),policyVisibleContext:e.record(e.string(),e.unknown()).default({}),privilegedContextRef:ft,sourceRefs:e.array(w).min(1).max(100),assets:e.array(dn).max(1e3).optional(),resourceRefs:e.array(w).max(1e3).optional(),requiredOutputs:e.array(mn).max(100).optional(),tags:e.array(w).max(100).default([]),metadata:N}),pn=e.object({id:w,kind:e.enum(["file","catalog","configuration","code_module"]),path:e.string().trim().min(1).max(1e3).refine(Je,"Environment resource paths must remain relative."),mediaType:e.string().trim().min(1).max(200).nullable().optional(),visibility:e.enum(["policy_visible","policy_hidden","privileged"]),required:e.boolean(),metadata:N}),je=e.object({id:w,taskId:ft,sourceRefs:e.array(w).min(1).max(100),artifactRef:w,approved:e.boolean(),confidence:e.number().min(0).max(1),metadata:N}),Ma=je.extend({kind:e.literal("demonstration"),prompt:e.string().max(1e5).nullable().default(null),response:e.string().max(2e5).nullable().default(null)}),$a=je.extend({kind:e.literal("preference"),prompt:e.string().max(1e5),chosen:e.string().max(2e5),rejected:e.string().max(2e5),rationale:e.string().max(1e5).nullable().default(null)}),za=je.extend({kind:e.literal("correction"),original:e.string().max(2e5),corrected:e.string().max(2e5),rationale:e.string().max(1e5).nullable().default(null)}),qa=je.extend({kind:e.literal("feedback"),feedback:e.string().max(1e5),polarity:e.enum(["positive","negative","mixed","neutral"])}),Ba=je.extend({kind:e.literal("reward"),task:e.string().max(1e5),rules:e.array(e.object({id:w,points:e.number().finite(),condition:e.string().trim().min(1).max(1e5)})).min(1).max(1e3),otherwisePoints:e.number().finite(),executable:e.boolean()}),Va=je.extend({kind:e.literal("label"),labelKind:e.literal("rubric"),task:e.string().max(1e5),criteria:e.array(e.object({id:w,label:e.string().trim().min(1).max(500),description:e.string().trim().min(1).max(1e5)})).min(1).max(1e3),calibrationExamples:e.object({positive:e.string().trim().min(1).max(2e5),negative:e.string().trim().min(1).max(2e5),boundary:e.string().trim().min(1).max(2e5)})}),ni=e.discriminatedUnion("kind",[Ma,$a,za,qa,Ba,Va]),St=e.object({demonstrations:e.array(Ma).max(1e5).default([]),preferences:e.array($a).max(1e5).default([]),corrections:e.array(za).max(1e5).default([]),feedback:e.array(qa).max(1e5).default([]),rewards:e.array(Ba).max(1e5).default([]),labels:e.array(Va).max(1e5).default([])}),yt=e.object({protocolVersion:e.literal("openpond.taskEnvironment.v1"),kind:e.enum(["chat","agent","program","stateful_harness","work"]),entrypoint:e.string().trim().min(1).max(1e3),stateful:e.boolean(),deterministicSeeds:e.boolean(),toolNames:e.array(w).max(200).default([]),actionBindings:e.array(Ca).max(200).optional(),lifecycle:e.array(e.enum(["create","reset","step","grade","cleanup"])).min(1),defaultTimeoutMs:e.number().int().positive().max(36e5),networkPolicy:e.enum(["none","declared_read_only","declared_scoped"]),resources:e.array(pn).max(1e4).optional(),metadata:N}),wt=e.object({schemaVersion:e.literal("openpond.tasksetCapabilities.v1"),taskKind:e.enum(["chat","single_agent","multi_agent","custom_program"]),supportedSignals:e.array(e.enum(["demonstration","preference","correction","feedback","reward","label"])),compatibleMethods:e.array(e.enum(["none","retrieval","sft","dpo","grpo","ppo","sdft","opd","opsd","sdpo"])),rewardKinds:e.array(e.enum(["none","exact","deterministic","model_judge","human"])),requiresTools:e.boolean(),requiresState:e.boolean(),requiresPrivilegedGrading:e.boolean(),environmentPlacements:e.array(e.enum(["local","remote","colocated","provider_native"])),exportable:e.boolean(),portabilityBlockers:e.array(e.string().trim().min(1).max(2e3)).default([])}),Tt=e.object({id:w,version:e.string().trim().min(1).max(100),label:e.string().trim().min(1).max(500),weight:e.number().min(0).max(1e3).default(1),hardGate:e.boolean().default(!1),rewardEligible:e.boolean().default(!1),privileged:e.boolean().default(!1),metadata:N}),ln=Tt.extend({kind:e.enum(["content","schema","file","diff","test","runtime_event","state"]),config:e.record(e.string(),e.unknown())}),un=Tt.extend({kind:e.literal("model_judge"),rubric:e.string().trim().min(1).max(5e4),judge:ot,calibrationFixtureRefs:e.array(w).min(1).max(500),calibrationStatus:e.enum(["pending","passed","failed"]),temperature:e.number().min(0).max(2).default(0)}),fn=Tt.extend({kind:e.literal("human"),rubric:e.string().trim().min(1).max(5e4),reviewerRole:e.string().trim().min(1).max(500)}),hn=Tt.extend({kind:e.literal("custom_verifier"),runtime:ua.optional(),module:e.string().trim().min(1).max(1e3).refine(Je,"Custom verifier modules must use a safe relative path."),exportName:nn,timeoutMs:e.number().int().positive().max(3e5),networkPolicy:e.literal("none")}),xt=e.union([ln,un,fn,hn]),gn=e.enum(["positive","negative","boundary","adversarial","prompt_injection","infrastructure_failure"]),Rt=e.object({id:w,taskId:w,label:gn,output:e.record(e.string(),e.unknown()),infrastructureError:e.string().trim().min(1).max(1e4).nullable(),expectedPassed:e.boolean(),expectedRewardEligible:e.boolean(),metadata:N});var De=e.string().trim().min(1).max(240),Oa=e.string().trim().min(1),kn=e.string().trim().min(8).max(256),bn=e.string().trim().regex(/^[A-Za-z_$][A-Za-z0-9_$]*$/),vn=e.record(e.string(),e.unknown()).default({});function Fa(t){let a=t.trim().replaceAll("\\","/");return!a||a.startsWith("/")||a==="."||a===".."?!1:!a.split("/").some(r=>!r||r==="."||r==="..")}c(Fa,"safeRelativeFilePath");var Sn=Ae.extend({sourceRefs:e.array(De).max(100).default([])}),yn=e.enum(["draft","validating","needs_review","published"]),wn=e.object({enabled:e.boolean(),candidateCount:e.number().int().min(2).max(4),minimumSamples:e.number().int().min(1).max(1e4).default(100),allowTies:e.boolean(),allowRejectAll:e.boolean(),rubric:e.string().trim().max(5e4),criteria:e.array(e.object({id:De,label:e.string().trim().min(1).max(500),description:e.string().trim().max(1e4),weight:e.number().nonnegative().max(1e3)})).max(100)}),Tn=e.object({mode:e.enum(["text","structured_json","artifacts"]),jsonSchema:e.record(e.string(),e.unknown()).nullable(),renderer:e.object({module:e.string().trim().min(1).max(1e3).refine(Fa,"Renderer modules must use a safe relative path."),exportName:bn,configRef:e.string().trim().min(1).max(1e3).refine(Fa,"Renderer configuration must use a safe relative path.").nullable().default(null)}).nullable()}).superRefine((t,a)=>{t.mode==="structured_json"&&!t.jsonSchema&&a.addIssue({code:"custom",message:"Structured JSON output requires a JSON Schema.",path:["jsonSchema"]}),t.mode==="text"&&t.renderer&&a.addIssue({code:"custom",message:"Text output cannot configure an artifact renderer.",path:["renderer"]})}),be=e.object({schemaVersion:e.literal("openpond.tasksetDraft.v1"),id:De,revision:e.number().int().positive(),profileId:De,modelScope:e.object({modelId:De,expectedModelRevision:e.number().int().positive(),source:Ie.optional()}).strict().nullable().default(null),name:e.string().trim().max(500),objective:e.string().trim().max(2e4),purpose:ht.default("general"),benchmark:gt.nullable().default(null),preferenceComparison:kt.nullable().default(null),status:yn,sourceRefs:e.array(bt).max(1e5).default([]),datasetArtifact:Le.nullable().optional(),policy:vt,environment:yt,output:Tn.default({mode:"text",jsonSchema:null,renderer:null}),capabilities:wt,metrics:ct,review:wn,tasks:e.array(Sn).max(1e6).default([]),graders:e.array(xt).max(1e3).default([]),graderFixtures:e.array(Rt).max(1e5).default([]),learningSignals:St,publishedTasksetRef:e.object({id:De,revision:e.number().int().positive(),contentHash:kn}).nullable(),createdAt:Oa,updatedAt:Oa,metadata:vn}).superRefine((t,a)=>{t.purpose==="benchmark"&&!t.benchmark&&a.addIssue({code:"custom",message:"Benchmark drafts require an immutable benchmark binding.",path:["benchmark"]}),t.purpose!=="benchmark"&&t.benchmark&&a.addIssue({code:"custom",message:"Only benchmark drafts may carry a benchmark binding.",path:["benchmark"]}),t.datasetArtifact&&t.tasks.length>0&&a.addIssue({code:"custom",message:"Artifact-backed drafts may not duplicate canonical rows inline.",path:["tasks"]}),t.status==="published"&&!t.publishedTasksetRef&&a.addIssue({code:"custom",message:"Published drafts require an immutable Taskset reference.",path:["publishedTasksetRef"]})});var xn=new Set(["taskset.json","capabilities.json","data/tasks.jsonl","tasks/tasks.jsonl","graders/graders.json","fixtures/grader-fixtures.json","metrics/policy.json","assets/manifest.json","environment/contract.json","environment/taskset.ts","rubrics/preference-review.md","comparisons/policy.json"]);function Ua(t){return xn.has(Q.parse(t))}c(Ua,"isManagedTasksetDraftFilePath");function Nt(t){let a=be.parse(t);return new Map([["taskset.json",ae(a)],["tasks/tasks.jsonl",_n(a.tasks)],["graders/graders.json",ae(a.graders)],["fixtures/grader-fixtures.json",ae(a.graderFixtures)],["metrics/policy.json",ae(a.metrics)],["assets/manifest.json",ae(a.tasks.flatMap(r=>r.assets??[]))],["environment/contract.json",ae(a.environment)],["rubrics/preference-review.md",Rn(a)],["comparisons/policy.json",ae(a.review)]])}c(Nt,"renderTasksetDraftManifests");function Rn(t){let a=t.review.criteria.length?`
|
|
3
|
+
|
|
4
|
+
## Criteria
|
|
5
|
+
|
|
6
|
+
${t.review.criteria.map(r=>`- **${r.label}** (${r.weight}): ${r.description}`).join(`
|
|
7
|
+
`)}`:"";return`# Preference review rubric
|
|
8
|
+
|
|
9
|
+
${t.review.rubric}${a}
|
|
10
|
+
`}c(Rn,"rubricMarkdown");function _n(t){return t.length?`${t.map(a=>JSON.stringify(a)).join(`
|
|
11
|
+
`)}
|
|
12
|
+
`:""}c(_n,"jsonLines");var Lt=64*1024*1024,Ga=e.string().regex(/^[a-f0-9]{64}$/),Na=e.object({path:Q,contentHash:Ga,sizeBytes:e.number().int().nonnegative().max(Lt),base64:e.string().max(Lt)}).strict(),In=e.object({schemaVersion:e.literal("openpond.tasksetDraftWorkspace.v1"),draft:be,files:e.array(Na).max(1e4)}).strict(),_t=In.extend({contentHash:Ga}).strict();function We(t){pe(t,Lt);let a=_t.parse(t),{contentHash:r,...n}=a;if(g(n)!==r)throw new Error("Taskset draft workspace differs from its retained bytes.");let s=null,i=new Set;for(let o of a.files){if(Ua(o.path))throw new Error("Managed Taskset files are represented by the draft document.");if(s!==null&&s>=o.path)throw new Error("Taskset draft file paths must be unique and sorted.");let u=o.path.split("/");for(let l=1;l<u.length;l++)if(i.has(u.slice(0,l).join("/")))throw new Error("A Taskset draft file occupies another file's directory.");Jt(o),i.add(o.path),s=o.path}return a}c(We,"validateTasksetDraftWorkspace");function Jt(t){let a=Na.parse(t),r;try{r=atob(a.base64)}catch{throw new Error("Taskset draft file contains invalid base64.")}if(btoa(r)!==a.base64)throw new Error("Taskset draft file contains noncanonical base64.");let n=Uint8Array.from(r,s=>s.charCodeAt(0));if(n.byteLength!==a.sizeBytes||z(n)!==a.contentHash)throw new Error("Taskset draft file differs from its retained bytes.");return n}c(Jt,"decodeTasksetDraftWorkspaceFile");var He=e.string().trim().min(1).max(500),Pn=e.string().regex(/^[a-f0-9]{64}$/),ve=e.object({id:He,revision:e.number().int().positive(),contentHash:Pn}).strict(),En=e.object({schemaVersion:e.literal("openpond.hostedTasksetSummary.v1"),id:He,teamId:He,release:ve,name:e.string().min(1).max(500),description:e.string().max(2e4),taskCount:e.number().int().nonnegative(),buildIntent:e.string().min(1).max(100),methodHint:e.string().min(1).max(100).nullable(),packageBytes:e.number().int().nonnegative().nullable(),storedBytes:e.number().int().nonnegative().nullable(),createdAt:e.string().datetime({offset:!0})}).strict(),zi=e.object({afterId:He.optional(),limit:e.number().int().min(1).max(100).default(30),modelProjectId:He.optional()}).strict(),qi=e.object({items:e.array(En).max(100),nextCursor:He.nullable()}).strict(),Bi=e.object({code:e.string().min(1),message:e.string().min(1)}).strict();function La(t){return`model-authored-taskset-${g({owner:t.owner,root:t.root})}`}c(La,"modelAuthoredTasksetId");function Wt(t){if(t.metadata.modelTasksetAuthoring===void 0)return null;let a=Ot.parse(t.metadata.modelTasksetAuthoring);if(t.id!==La(a)||(t.revision===1?!D(a.parent,a.root):a.parent.id!==t.id||a.parent.revision!==t.revision-1))throw new Error("Authored Taskset revision differs from its ownership lineage.");return a}c(Wt,"assertModelTasksetAuthoring");var eo=e.string().regex(/^[a-f0-9]{64}$/);var ce=e.object({environment:ne,verifierSet:se,javascript:pt}).strict(),to=e.object({actions:e.array(e.object({name:e.string().min(1).max(64),arguments:e.record(e.string(),e.unknown())}).strict()).max(1e3)}).strict();function Ke(t){if(!t.environmentRelease||!t.verifierSetRelease)throw new Error("Starter execution release references are missing.");return`starter-execution-${E({environment:t.environmentRelease,verifiers:t.verifierSetRelease}).contentHash}`}c(Ke,"modelStarterExecutionAssetId");function Ja(t){let a=ce.parse(t);Wa(a);let r=Ke({environmentRelease:{id:a.environment.id,contentHash:a.environment.contentHash},verifierSetRelease:{id:a.verifierSet.id,contentHash:a.verifierSet.contentHash}}),n=va({text:_e(a),path:"environment/execution.json",mediaType:"application/json",visibility:"host_private"}),{contentHash:s,...i}=n;return E({...i,id:r,asset:{...i.asset,id:r}})}c(Ja,"createModelStarterExecutionAsset");function Se(t,a){return E({value:t}).contentHash===E({value:a}).contentHash}c(Se,"equal");function Wa(t){Ta(t.javascript);for(let a of[t.environment,t.verifierSet]){let{contentHash:r,...n}=a;if(E(n).contentHash!==r)throw new Error(`Starter execution resource integrity failed: ${a.id}.`)}if(!Se(t.environment.metadata.javascriptEnvironment,I(t.javascript)))throw new Error("Starter execution resources differ from its declared task context.")}c(Wa,"assertExecutionIntegrity");function It(t,a,r){if(!t){if(a.environment.entrypoint==="openpond.javascript-environment.v1")throw new Error("Starter JavaScript execution resources are missing.");return}let{environment:n,verifierSet:s,javascript:i}=t;if(Wa(t),!Se(a.environmentRelease,{id:n.id,contentHash:n.contentHash})||!Se(a.verifierSetRelease,{id:s.id,contentHash:s.contentHash})||!Se(n.contract,a.environment)||!Se(s.graders,a.graders)||!Se(a.tools,i.tools)||!Se(n.metadata.javascriptEnvironment,I(i)))throw new Error("Starter execution resources differ from its declared task context.");let o=n.contract;if(o.entrypoint!=="openpond.javascript-environment.v1"||o.kind!=="agent"||!o.stateful||!o.deterministicSeeds||o.networkPolicy!=="none"||new Set(o.lifecycle).size!==5||a.capabilities.length||a.policy.connectedAppScopes.length)throw new Error("Starter JavaScript environment declares unsupported host capabilities.");for(let u of[i.module,n.actionSchemaRef,n.observationSchemaRef,n.stateSchemaRef]){if(!u)continue;let l=r.find(d=>d.id===u.id);if(!l)throw new Error(`Starter environment asset is missing: ${u.id}.`);X(l,u)}for(let u of a.tasks){let l=r.find(m=>m.id===u.privilegedContextRef);if(!l||l.asset.visibility!=="host_private"||l.asset.mediaType!=="application/json")throw new Error(`Starter private initial state is missing: ${u.id}.`);let d=JSON.parse(X(l,l.asset));if(!d||typeof d!="object"||Array.isArray(d))throw new Error(`Starter initial state must be a JSON object: ${u.id}.`);pe(d,i.maxStateBytes)}}c(It,"validateModelStarterExecution");var Ka=e.object({environment:ne,verifierSet:se}).strict();var Qa=e.object({scopeId:e.string().trim().min(1).max(500),modelId:e.string().trim().min(1).max(500)}).strict(),Kt=e.object({schemaVersion:e.literal("openpond.modelTasksetDerivation.v1"),owner:Qa,root:M,parent:M}).strict(),Xt=e.object({taskset:O,taskDefinition:Ue,rewardBinding:ue,rewards:e.array(le).min(1).max(100),assets:e.array(re).max(1e3),executionResources:Ka.optional(),execution:ce.optional(),instructionMode:e.literal("per_task").optional()}).strict(),Z=c((t,a)=>E({value:t}).contentHash===E({value:a}).contentHash,"same"),Xa=c((t,a)=>`model-taskset-${E({owner:t,root:a}).contentHash}`,"identity");function Ya(t){let a=Qa.parse(t.owner),r=t.source,n=t.edits??r,s=r.taskset.metadata.modelTasksetDerivation===void 0?null:Kt.parse(r.taskset.metadata.modelTasksetDerivation);if(s&&r.taskset.id!==Xa(s.owner,s.root))throw new Error("Derived Taskset identity differs from its ownership lineage.");let i=s&&Z(s.owner,a),o=i?s.root:I(r.taskset),u=i?r.taskset.id:Xa(a,o),l=i?r.taskset.revision+1:1,d=ue.parse(t.rewardBinding),m=t.rewards.map(me=>le.parse(me)),p=fe(d,m);if(d.recipeRef)throw new Error("Resolve the Reward recipe into one standalone binding before deriving a Taskset.");let f={...n.taskset.policy,hiddenGraderRefs:p.filter(me=>me.privileged).map(me=>me.id)},v=n.executionResources??n.execution,k=v?.environment??xe({schemaVersion:"openpond.environmentRelease.v1",id:`${u}-environment`,revision:1,contract:n.taskset.environment,actionSchemaRef:null,observationSchemaRef:null,stateSchemaRef:null,artifactCollection:{maxArtifacts:1e5,maxTotalBytes:25e7},adapterConformanceHashes:{},metadata:{}}),b=Re({schemaVersion:"openpond.verifierSetRelease.v1",id:`${u}-verifiers`,revision:l,graders:p,isolation:v?.verifierSet.isolation??{processBoundary:"isolated_process",networkPolicy:"none",defaultTimeoutMs:Math.min(n.taskset.environment.defaultTimeoutMs,3e5)},calibrationReceiptRefs:[],metadata:v?{sourceVerifierSet:I(v.verifierSet)}:{}}),R={environment:k,verifierSet:b},P=n.execution?{...n.execution,verifierSet:b}:void 0,{contentHash:C,...S}=n.taskset,{contentHash:Te,...te}=n.taskDefinition,h={...te.execution,policy:f,environmentRelease:{id:k.id,contentHash:k.contentHash},verifierSetRelease:{id:b.id,contentHash:b.contentHash}},y=Ue.parse(E({...te,id:`${u}-definition`,revision:l,rewardBinding:I(d),execution:h})),T=r.taskset.metadata.starterAuthoring??r.taskset.metadata.ordinaryAuthoring,A=T&&typeof T=="object"&&!Array.isArray(T)&&"graderFixtures"in T?T.graderFixtures:void 0,q=O.parse(E({...S,...h,id:u,revision:l,graders:p,metadata:{starter:{taskDefinition:I(y),rewardBinding:I(d)},rewardExecution:{binding:d,rewards:m},...A===void 0?{}:{starterAuthoring:{graderFixtures:A}},...n.taskset.metadata.environmentResources===void 0?{}:{environmentResources:n.taskset.metadata.environmentResources},modelTasksetDerivation:{schemaVersion:"openpond.modelTasksetDerivation.v1",owner:a,root:o,parent:I(r.taskset)}}}));return Qt({taskset:q,taskDefinition:y,rewardBinding:d,rewards:m,assets:t.assets,executionResources:R,...P?{execution:P}:{},...r.instructionMode?{instructionMode:r.instructionMode}:{}})}c(Ya,"compileModelTasksetReward");function Qt(t){let a=Xt.parse(t),{taskset:r,taskDefinition:n,rewardBinding:s,rewards:i,assets:o,execution:u}=a;for(let b of[r,n,s,...i,...o])mt(b);if(dt(r),s.recipeRef)throw new Error("Resolve the Reward recipe into one standalone binding before deriving a Taskset.");if(!D(n.rewardBinding,I(s)))throw new Error("Taskset definition differs from its Reward binding.");let{policy:l,environment:d,environmentRelease:m,tools:p,capabilities:f,verifierSetRelease:v}=r;if(!Z(n.execution,{policy:l,environment:d,...m?{environmentRelease:m}:{},tools:p,capabilities:f,...v?{verifierSetRelease:v}:{}}))throw new Error("Taskset definition differs from its execution resources.");if(!Z(r.graders,fe(s,i)))throw new Error("Taskset graders differ from its Reward binding.");if(r.metadata.starter!==void 0){let b=e.object({taskDefinition:M,rewardBinding:M}).passthrough().parse(r.metadata.starter);if(!D(b.taskDefinition,I(n))||!D(b.rewardBinding,I(s)))throw new Error("Taskset metadata differs from its immutable grading resources.")}if(r.metadata.rewardExecution!==void 0&&!Z(r.metadata.rewardExecution,{binding:s,rewards:i}))throw new Error("Taskset embedded Rewards differ from its immutable grading resources.");if(r.metadata.rewardBinding!==void 0&&!D(M.parse(r.metadata.rewardBinding),I(s)))throw new Error("Taskset Reward reference differs from its immutable grading resources.");let k=a.executionResources??u;if(r.environmentRelease&&!k)throw new Error("Deriving a Taskset requires its pinned execution resources.");if(k&&(!he(k.environment)||!ge(k.verifierSet)||!Z(r.environmentRelease,{id:k.environment.id,contentHash:k.environment.contentHash})||!Z(r.verifierSetRelease,{id:k.verifierSet.id,contentHash:k.verifierSet.contentHash})||!Z(r.environment,k.environment.contract)||!Z(r.graders,k.verifierSet.graders)))throw new Error("Taskset differs from its pinned execution resources.");if(It(u,r,o),new Set(o.map(b=>b.id)).size!==o.length)throw new Error("Taskset asset identities must be unique.");for(let b of o)X(b,b.asset);for(let b of k?[k.environment.actionSchemaRef,k.environment.observationSchemaRef,k.environment.stateSchemaRef]:[]){if(!b)continue;let R=o.find(P=>P.id===b.id);if(!R)throw new Error(`Taskset environment asset is missing: ${b.id}.`);X(R,b)}for(let b of r.tasks){if(n.requiredOutputs&&!Z(b.requiredOutputs,n.requiredOutputs))throw new Error(`Taskset outputs differ from its reviewed definition: ${b.id}.`);if(a.instructionMode!=="per_task"&&b.policyVisibleContext.instructions!==n.instructions||!zt(n.inputSchema,b.input).valid||b.expectedOutput!==null&&!zt(n.outputSchema,b.expectedOutput).valid)throw new Error(`Taskset task differs from its declared format: ${b.id}.`);if(b.privilegedContextRef&&!o.some(R=>R.id===b.privilegedContextRef&&R.asset.visibility==="host_private"))throw new Error(`Taskset private context is missing: ${b.id}.`)}for(let b of i){let R=b.implementation,P=[...b.assets,..."verifierRef"in R?[R.verifierRef]:[],..."rubricRef"in R?[R.rubricRef]:[],..."inputContract"in R?[R.inputContract]:[]];for(let C of P){let S=o.find(Te=>Te.id===C.id);if(!S||C.visibility==="policy")throw new Error(`Taskset Reward requires its private asset: ${C.id}.`);X(S,C)}}return a}c(Qt,"validateModelTasksetPackage");var Ce=e.string().trim().min(1).max(240),Za=x.extend({revision:e.number().int().positive()}).strict(),er=Za.extend({teamId:Ce,jobId:Ce,plan:x,baseline:x,candidate:x,state:ya.shape.state,updatedAt:e.string().datetime()}).strict(),An=e.object({schemaVersion:e.literal("openpond.trainingAcceptanceGroupPage.v1"),teamId:Ce,jobId:Ce,groups:e.array(er).max(100),nextCursor:Ce.nullable()}).strict(),jn=e.object({cursor:Ce.optional(),limit:e.number().int().min(1).max(100).default(25)}).strict();var U=e.string().trim().min(1).max(191),Qe=e.string().regex(/^[a-f0-9]{64}$/),tr=e.object({schemaVersion:e.literal("openpond.trainingPreparationRequest.v1"),teamId:U,operationId:U,projectId:U.nullable(),configuration:e.object({id:U,expectedRevision:e.number().int().positive(),expectedEtag:Qe}).strict(),batch:M,name:e.string().trim().min(1).max(191),maximumSpendUsd:e.number().finite().positive().max(1e6)}).strict(),ar=e.object({schemaVersion:e.literal("openpond.trainingPreparationPlan.v1"),id:U,creatorUserId:U,request:tr,requestHash:Qe,source:e.lazy(()=>Yt),submissionHash:Qe,createdAt:e.string().datetime({offset:!0})}).strict(),rr=ar.extend({contentHash:Qe}).strict(),nr=e.object({schemaVersion:e.literal("openpond.trainingPreparationReceipt.v1"),plan:rr,revision:e.number().int().positive(),state:e.enum(["prepared","submitted","cancelled"]),jobId:U.nullable()}).strict().superRefine((t,a)=>{t.state==="submitted"!=!!t.jobId&&a.addIssue({code:"custom",path:["jobId"],message:"Only submitted preparations identify a job."})}),Dn=e.object({teamId:U,planHash:Qe,expectedRevision:e.number().int().positive()}).strict(),Hn=e.object({projectId:U.optional(),state:e.enum(["prepared","submitted","cancelled"]).optional(),afterId:U.optional(),limit:e.number().int().min(1).max(100).default(25)}).strict(),Cn=e.object({schemaVersion:e.literal("openpond.trainingPreparationPage.v1"),teamId:U,items:e.array(nr).max(100),nextCursor:U.nullable()}).strict();var Mn=e.object({schemaVersion:e.literal("openpond.trainingHarnessSourcePublication.v1"),harnessRelease:it,sourcePackageHash:e.string().regex(/^[a-f0-9]{64}$/),sizeBytes:e.number().int().positive().max(67108864)}).strict();var Qo=e.array(e.object({id:e.string().trim().min(1)}).catchall(e.unknown())).min(1).max(1e3),Yo=e.object({binding:ue,rewards:e.array(le).min(1).max(100)}).strict();var $n=e.object({id:e.string().trim().min(1),clusterKey:e.string().trim().min(1),split:e.enum(["train","validation","frozen_eval"])}).passthrough(),zn=e.object({schemaVersion:e.literal("openpond.trainingEvaluationSource.v1"),taskset:M,tasks:e.array($n).min(1).max(1e4),assets:e.array(e.object({path:e.string().trim().min(1).max(2e3),sha256:e.string().regex(/^[a-f0-9]{64}$/),sizeBytes:e.number().int().nonnegative(),encoding:e.literal("base64"),content:e.string().max(32*1024*1024)}).strict()).max(1e4)}).strict().superRefine((t,a)=>{let r=new Set;t.tasks.forEach((n,s)=>{n.split==="train"&&a.addIssue({code:"custom",path:["tasks",s,"split"],message:"Evaluation sources require held-out tasks."}),r.has(n.id)&&a.addIssue({code:"custom",path:["tasks",s,"id"],message:"Evaluation task identities must be unique."}),r.add(n.id)})});var j=e.string().trim().min(1).max(500),B=e.string().regex(/^[a-f0-9]{64}$/),L=e.string().datetime({offset:!0}),Dc=e.object({schemaVersion:e.literal("openpond.trainingInputArtifactUpload.v2"),kind:e.enum(["portable_training_bundle","reward_model_dataset"]),idempotencyKey:e.string().trim().min(1).max(500),sourceManifest:x,payload:e.unknown(),contentHash:B}).strict(),Hc=e.object({schemaVersion:e.literal("openpond.trainingInputArtifact.v2"),kind:e.enum(["portable_training_bundle","reward_model_dataset"]),sourceManifest:x,artifactRef:e.string().trim().min(1).max(2e3),contentHash:B,sizeBytes:e.number().int().positive(),createdAt:L}).strict();var ir=e.enum(["reward_model_train","policy_optimize"]),Fn=e.enum(["queued","admitting","provisioning","running","stopping","cancelling","succeeded","failed","cancelled"]),Un=e.object({id:j,version:e.string().trim().min(1).max(200).nullable().default(null),required:e.boolean().default(!0)}).strict(),Yt=e.object({modelProject:e.object({id:j,portableProjectId:j,revision:e.number().int().positive(),contentHash:B}).strict(),harnessRunManifest:x,harnessRelease:x,taskset:M,tasksetRelease:x,evaluation:e.object({taskset:M,dataset:x}).strict().nullable().optional(),dataset:x,evidenceSets:e.array(x).max(1e4)}).strict(),Gn=e.object({kind:e.literal("reward_model_train"),baseModel:Vt,preferenceDatasetRelease:x,processorRelease:x,recipe:e.object({schemaVersion:e.literal("openpond.rewardModelRecipe.v1"),method:e.literal("reward_model"),parameterization:e.literal("lora_with_scalar_head")}).catchall(e.unknown())}).strict(),Nn=e.object({kind:e.literal("deterministic"),grader:x,composer:x.nullable().default(null)}).strict(),Ln=e.object({kind:e.literal("learned_reward"),rewardModelVersion:x,qualificationReport:x.nullable().default(null),evaluationReferences:e.array(x).max(1e3).default([]),scorerArtifact:e.object({artifactRef:e.string().trim().min(1).max(2e3),contentHash:B,executionReceipt:x}).strict(),processorRelease:x,rewardComposerRelease:x}).strict(),Jn=e.object({kind:e.literal("policy_optimize"),baseModel:Vt,recipe:Ra,rewardSource:e.discriminatedUnion("kind",[Nn,Ln]),resumeFrom:x.nullable().default(null)}).strict(),Wn=e.discriminatedUnion("kind",[Gn,Jn]),Kn=e.object({approvalHash:B,approvedAt:L,exportApproved:e.boolean(),maximumSpendUsd:e.number().nonnegative(),retentionDays:e.number().int().nonnegative().nullable(),region:e.string().trim().min(1).max(200).nullable().default(null)}).strict(),Cc=e.object({schemaVersion:e.literal("openpond.trainingJobSubmission.v2"),idempotencyKey:e.string().trim().min(1).max(500),name:e.string().trim().min(1).max(200),source:Yt,job:Wn,requestedCapabilities:e.array(Un).max(1e3),placementObjective:e.enum(["fast","balanced","economical"]),budget:e.object({maximumSpendUsd:e.number().nonnegative(),maximumWallSeconds:e.number().int().positive()}).strict(),approval:Kn,contentHash:B}).strict().superRefine((t,a)=>{t.approval.maximumSpendUsd!==t.budget.maximumSpendUsd&&a.addIssue({code:"custom",path:["approval","maximumSpendUsd"],message:"Approved spend must equal the immutable Job budget."})});var Xn=e.object({schemaVersion:e.literal("openpond.trainingJob.v2"),id:j,teamId:j,kind:ir,modelProjectId:j,portableProjectId:j,sourceProjectRevision:e.number().int().positive(),submissionHash:B,state:Fn,phase:e.string().trim().min(1).max(200),version:e.number().int().nonnegative(),progress:e.number().min(0).max(1),rolloutProgress:e.object({groupsCompleted:e.number().int().nonnegative(),groupsTarget:e.number().int().nonnegative(),optimizerUpdatesApplied:e.number().int().nonnegative(),optimizerUpdatesSkipped:e.number().int().nonnegative()}).strict(),accruedSpendUsd:e.number().nonnegative(),terminalReason:e.string().trim().min(1).max(5e3).nullable(),createdAt:L,updatedAt:L,completedAt:L.nullable()}).strict(),Mc=e.object({schemaVersion:e.literal("openpond.trainingJobPage.v2"),jobs:e.array(Xn).max(1e3),nextCursor:e.string().trim().min(1).max(2e3).nullable()}).strict(),$c=e.object({schemaVersion:e.literal("openpond.trainingJobEvent.v2"),id:j,jobId:j,sequence:e.number().int().nonnegative(),type:j,phase:e.string().trim().min(1).max(200),message:e.string().trim().min(1).max(5e3).nullable(),data:e.record(e.string(),e.unknown()).default({}),createdAt:L}).strict(),zc=e.object({schemaVersion:e.literal("openpond.trainingJobLog.v2"),jobId:j,sequence:e.number().int().nonnegative(),level:e.enum(["debug","info","warning","error"]),message:e.string().max(2e4),createdAt:L}).strict(),qc=e.object({expectedVersion:e.number().int().nonnegative()}).strict(),Qn=e.object({schemaVersion:e.literal("openpond.trainingJobOutput.v2"),id:j,jobId:j,kind:e.enum(["checkpoint","adapter","scorer","metrics","evaluation","trace","receipt"]),artifactRef:e.string().trim().min(1).max(2e3),contentHash:B,sizeBytes:e.number().int().nonnegative(),metadata:e.record(e.string(),e.unknown()).default({}),createdAt:L}).strict(),Yn=e.object({schemaVersion:e.literal("openpond.trainingExecutionReceipt.v2"),id:j,teamId:j,jobId:j,submissionHash:B,manifestHash:B,recipeHash:B,capabilityHash:B,runtimeRelease:x,inputs:e.array(x).max(1e4),outputs:e.array(x).max(1e4),spendUsd:e.number().nonnegative(),durationSeconds:e.number().nonnegative(),cleanupComplete:e.boolean(),issuer:j,issuedAt:L,signature:e.string().trim().min(1).max(1e4).nullable()}).strict();var Bc=e.object({schemaVersion:e.literal("openpond.trainingJobOutputs.v2"),outputs:e.array(Qn).max(1e4),receipt:Yn.nullable()}).strict(),Vc=e.object({schemaVersion:e.literal("openpond.trainingApiError.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();var Oc=e.object({schemaVersion:e.literal("openpond.trainingCapabilities.v2"),capabilityHash:B,jobKinds:e.array(ir),methods:e.array(e.string().trim().min(1).max(200)),placements:e.array(e.enum(["local","remote","colocated","provider_native"])),controls:e.object({cancel:e.boolean(),stopAfterGroup:e.boolean(),resumeFromCheckpoint:e.boolean()}).strict(),limits:e.object({maximumSpendUsd:e.number().nonnegative(),maximumWallSeconds:e.number().int().positive(),maximumArtifactBytes:e.number().int().positive()}).strict(),checkedAt:L,expiresAt:L}).strict();var ea=e.object({batch:ba,evidence:e.array(ga).min(1).max(1e4),decisions:e.array(ka).min(1).max(1e4),sources:e.array(ha).min(1).max(1e4),assets:e.array(re).max(1e3)}).strict();function or(t){return t.evidence.filter(a=>a.submission.evaluatorContext!==null).map(a=>{let r=_e(a.submission.evaluatorContext),n=new TextEncoder().encode(r);return{asset:{id:`task-evidence:${a.contentHash}`,path:`learning/context/${a.contentHash}.json`,contentHash:z(n),sizeBytes:n.byteLength,mediaType:"application/json",visibility:"host_private"},base64:btoa(Array.from(n,s=>String.fromCharCode(s)).join(""))}})}c(or,"learningPackageContextFiles");function cr(t,a){let r=ea.parse(a),n=Ge(t);if(!D(I(r.batch),n.batch))throw new Error("Taskset learning batch differs from its admission metadata.");for(let d of[r.evidence,r.decisions,r.sources,r.assets]){let m=new Set;for(let p of d){mt(p);let f=`${p.id}:${p.revision}`;if(m.has(f))throw new Error("Taskset learning resource identities must be unique.");m.add(f)}}if(r.evidence.length!==r.batch.examples.length||r.decisions.length!==r.batch.examples.length)throw new Error("Taskset learning snapshots must match the admitted batch inventory.");for(let d of r.evidence){let m=r.sources.find(p=>D(I(p),d.source));if(!m||!D(m.taskDefinition,I(n.definition)))throw new Error("Taskset evidence source differs from its task definition.")}if(r.sources.some(d=>!r.evidence.some(m=>D(m.source,I(d)))))throw new Error("Taskset package includes an unrelated learning source.");let s=n.rewards.flatMap(d=>[...d.assets,...d.implementation.kind==="custom_verifier"?[d.implementation.verifierRef]:d.implementation.kind==="model_judge"||d.implementation.kind==="human"?[d.implementation.rubricRef]:[],..."inputContract"in d.implementation?[d.implementation.inputContract]:[]]);for(let d of s){let m=r.assets.find(p=>p.id===d.id);if(!m)throw new Error("Taskset learning Reward asset is missing.");X(m,d)}if(r.assets.some(d=>!s.some(m=>m.id===d.id)))throw new Error("Taskset package includes an unrelated learning asset.");let i=Sa({batch:r.batch,definition:n.definition,binding:n.binding,rewards:n.rewards,evidence:r.evidence,decisions:r.decisions}),o=Ge(i);if(g(o)!==g(n))throw new Error("Taskset admission metadata differs from its reviewed snapshots.");let u=c(d=>({policy:d.policy,environment:d.environment,tools:d.tools}),"execution");if(g(u(i))!==g(u(t)))throw new Error("Taskset execution differs from its reviewed task definition.");let l=c(d=>({id:d.id,clusterKey:d.clusterKey,split:d.split,input:d.input,expectedOutput:d.expectedOutput,policyVisibleContext:d.policyVisibleContext,privilegedContextRef:d.privilegedContextRef,artifactRefs:d.artifactRefs,requiredOutputs:d.requiredOutputs??[],tags:d.tags}),"taskContent");if(g(i.tasks.map(l))!==g(t.tasks.map(l)))throw new Error("Taskset rows differ from their reviewed evidence.");return r}c(cr,"validateTasksetLearningResources");var ye=64*1024*1024,Et=e.object({asset:K,base64:e.string().max(Math.ceil(ye/3)*4)}).strict();function ee(t){let a=Et.parse(t),r=atob(a.base64);if(btoa(r)!==a.base64)throw new Error(`Taskset asset ${a.asset.id} has noncanonical base64.`);let n=Uint8Array.from(r,s=>s.charCodeAt(0));if(n.byteLength!==a.asset.sizeBytes||z(n)!==a.asset.contentHash)throw new Error(`Taskset asset ${a.asset.id} differs from its immutable bytes.`);return n}c(ee,"decodeTasksetPackageFile");function de(t){if(t.taskset.environment.entrypoint!=="openpond.javascript-environment.v1")return null;let a=new Map(t.files.map(o=>[o.asset.id,o])),r=c(o=>{let u=a.get(o);if(!u)throw new Error(`Taskset environment asset is missing: ${o}.`);if(u.asset.sizeBytes>524288)throw new Error("Taskset environment source exceeds the authored asset limit.");let l=new TextDecoder("utf-8",{fatal:!0}).decode(ee(u));return re.parse(E({schemaVersion:"openpond.learningTextAsset.v1",id:o,revision:1,asset:u.asset,text:l}))},"read"),n;if(t.modelResources){if(!t.modelResources.execution)throw new Error("Bound Taskset JavaScript execution resources are missing.");n=ce.parse(t.modelResources.execution)}else{let o=r(Ke(t.taskset));if(o.asset.visibility!=="host_private"||o.asset.mediaType!=="application/json"||o.asset.path!=="environment/execution.json")throw new Error("Taskset execution declaration must be private JSON at environment/execution.json.");n=ce.parse(JSON.parse(o.text))}let i=[...new Set([n.javascript.module.id,...[n.environment.actionSchemaRef,n.environment.observationSchemaRef,n.environment.stateSchemaRef].flatMap(o=>o?[o.id]:[]),...t.taskset.tasks.flatMap(o=>o.privilegedContextRef?[o.privilegedContextRef]:[])])].map(r);return It(n,t.taskset,i),{execution:n,assets:i}}c(de,"resolveTasksetPackageExecution");function Ye(t){let a=Ja(t),r=new TextEncoder().encode(a.text),n="";for(let s of r)n+=String.fromCharCode(s);return{asset:a.asset,base64:btoa(n)}}c(Ye,"createTasksetPackageExecutionFile");var Zn=Xt.omit({taskset:!0,executionResources:!0}),dr=e.object({schemaVersion:e.literal("openpond.tasksetPackage.v1"),taskset:O,environment:ne,verifierSet:se,files:e.array(Et).max(1e4),modelResources:Zn.optional(),learningResources:ea.optional()}).strict(),es=dr.extend({contentHash:e.string().regex(/^[a-f0-9]{64}$/)}).strict();function ta(t){return t.learningResources?Ge(t.taskset).definition.instructions:t.modelResources?t.modelResources.taskDefinition.instructions:e.object({instructions:e.string().max(2e4).optional()}).passthrough().parse(t.taskset.metadata.ordinaryAuthoring??{}).instructions??""}c(ta,"resolveTasksetPackageInstructions");function ze(t){pe(t,ye);let a=es.parse(t),{contentHash:r,...n}=a;if(g(n)!==r)throw new Error("Taskset package content hash differs from its bytes.");let{taskset:s,environment:i,verifierSet:o}=a;if(dt(s),Wt(s)&&(a.modelResources||a.learningResources))throw new Error("Taskset package cannot declare competing authoring graphs.");if(!he(i)||!ge(o)||!$e(s.environmentRelease,{id:i.id,contentHash:i.contentHash})||!$e(s.verifierSetRelease,{id:o.id,contentHash:o.contentHash})||!$e(s.environment,i.contract)||!$e(s.graders,o.graders))throw new Error("Taskset package execution releases do not match its Taskset.");let l=new Map;for(let m of a.files){if(l.has(m.asset.id))throw new Error(`Duplicate Taskset asset identity: ${m.asset.id}.`);ee(m),l.set(m.asset.id,m)}function d(m){let p=l.get(m.id);if(!p||!$e(p.asset,m))throw new Error(`Taskset package asset is missing or mismatched: ${m.id}.`)}c(d,"requireAsset");for(let m of s.tasks){for(let p of m.artifactRefs)d(p);for(let p of m.requiredOutputs??[])p.schemaRef&&d(p.schemaRef);if(m.privilegedContextRef&&l.get(m.privilegedContextRef)?.asset.visibility!=="host_private")throw new Error(`Taskset package private context is missing: ${m.id}.`)}for(let m of[i.actionSchemaRef,i.observationSchemaRef,i.stateSchemaRef])m&&d(m);for(let m of s.graders){let p="verifierRef"in m?m.verifierRef:"rubricRef"in m?m.rubricRef:null;if(p&&(d(p),p.visibility==="policy"))throw new Error(`Taskset grader asset must be private: ${p.id}.`)}if(s.metrics?.customAggregator){let m=s.metrics.customAggregator,p=a.files.filter(f=>f.asset.path===m.module);if(p.length!==1||p[0].asset.contentHash!==m.contentHash||p[0].asset.sizeBytes>524288||p[0].asset.visibility==="policy")throw new Error("Taskset metric module is missing or mismatched, public, or exceeds the source limit.")}for(let m of[s.metadata.environmentResources,i.metadata.resources])if(m!==void 0){for(let p of e.array(e.object({path:e.string().min(1)}).passthrough()).parse(m))if(!a.files.some(f=>f.asset.path===p.path))throw new Error(`Taskset environment resource is missing: ${p.path}.`)}if(a.learningResources){if(a.modelResources)throw new Error("Taskset package cannot declare competing authoring graphs.");let m=cr(s,a.learningResources);for(let p of or(m))if(!$e(l.get(p.asset.id),p))throw new Error("Taskset private context differs from its reviewed evidence.");for(let p of m.assets)d(p.asset)}else if(a.modelResources){let m=Qt({...a.modelResources,taskset:s,executionResources:{environment:i,verifierSet:o}});for(let p of m.assets)d(p.asset)}else if(["starter","rewardBinding","rewardExecution","modelTasksetDerivation","learning"].some(m=>s.metadata[m]!==void 0))throw new Error("Bound Taskset publication requires its complete model resources.");return de(a),ta(a),a}c(ze,"validateTasksetPackage");function qe(t){pe(t,ye);let a=dr.parse(t);return ze({...a,contentHash:g(a)})}c(qe,"createTasksetPackage");function $e(t,a){return g({value:t})===g({value:a})}c($e,"same");function mr(t){let a=ze(t.source),r=ze(t.edited),n=t.preparation;if(n.authoringGraph!=="bound"||!a.modelResources||a.learningResources||r.modelResources||r.learningResources)throw new Error("Bound task editing requires its source Reward and an ordinary edited workspace.");if(a.contentHash!==n.sourcePackageHash||!D(I(a.taskset),n.sourceTasksetRef))throw new Error("Bound draft differs from its retained source package.");let s=c(_=>_.taskset.graders.map(J=>J.kind==="custom_verifier"?{...J,exportName:J.exportName??"verify"}:J),"normalizedGraders");if(g(s(a))!==g(s(r)))throw new Error("Edit the saved Reward in Rewards before changing this Taskset's graders.");let i=a.modelResources,o=new Map(i.assets.map(_=>[_.id,_])),u=de(r),l=de(a),d=c(_=>{let{id:J,revision:Ct,contentHash:Mt,metadata:$t,...Br}=_,{javascriptEnvironment:Hs,...ia}=$t;return{...Br,metadata:{...ia,resources:ia.resources??[]}}},"environmentContent"),m=c(_=>{if(!_)return null;let{id:J,revision:Ct,contentHash:Mt,...$t}=_.execution.javascript;return $t},"javascriptContent"),p=g(d(a.environment))===g(d(r.environment))&&g(m(l))===g(m(u)),f=p?a.environment:r.environment,v=p?l:u,k=new Set([...i.assets.map(_=>_.id),...r.taskset.tasks.flatMap(_=>_.privilegedContextRef?[_.privilegedContextRef]:[]),...[r.environment.actionSchemaRef,r.environment.observationSchemaRef,r.environment.stateSchemaRef].flatMap(_=>_?[_.id]:[]),...u?.assets.map(_=>_.id)??[]]);for(let _ of k){let J=r.files.find(Mt=>Mt.asset.id===_);if(!J)throw new Error(`Bound Taskset asset is missing: ${_}.`);let Ct=new TextDecoder("utf-8",{fatal:!0}).decode(ee(J));o.set(_,re.parse(E({schemaVersion:"openpond.learningTextAsset.v1",id:_,revision:1,asset:J.asset,text:Ct})))}let b=ta(r),{contentHash:R,...P}=i.taskDefinition,{policy:C,environment:S,environmentRelease:Te,tools:te,capabilities:h,verifierSetRelease:y}=r.taskset,T=Ue.parse(E({...P,instructions:b,execution:{policy:C,environment:S,environmentRelease:Te,tools:te,capabilities:h,verifierSetRelease:y}})),{contentHash:A,...q}=r.taskset,me=O.parse(E({...q,tasks:r.taskset.tasks.map(_=>i.instructionMode==="per_task"?_:{..._,policyVisibleContext:{..._.policyVisibleContext,instructions:b}})})),rt=Ya({owner:n.lineage.owner,source:{...i,taskset:a.taskset,executionResources:{environment:a.environment,verifierSet:a.verifierSet}},rewardBinding:i.rewardBinding,rewards:i.rewards,assets:[...o.values()],edits:{taskset:me,taskDefinition:T,executionResources:{environment:f,verifierSet:r.verifierSet},...v?{execution:v.execution}:{}}}),Mr=Kt.parse(rt.taskset.metadata.modelTasksetDerivation);if(rt.taskset.id!==n.tasksetId||rt.taskset.revision!==n.tasksetRevision||g({...Mr,schemaVersion:n.lineage.schemaVersion})!==g(n.lineage))throw new Error("Bound draft differs from its retained ownership lineage.");let{taskset:$r,executionResources:zr,...qr}=rt;return qe({schemaVersion:"openpond.tasksetPackage.v1",taskset:$r,...zr,modelResources:qr,files:r.files})}c(mr,"publishBoundModelTasksetDraftPackage");function pr(t){let a=Ie.parse(t.preparation);if(!D(a.sourceTasksetRef,a.lineage.parent))throw new Error("Taskset draft preparation differs from its source lineage.");if(a.authoringGraph==="bound"){if(!t.source)throw new Error("Bound Taskset authoring requires its retained source package.");return mr({preparation:a,source:t.source,edited:t.edited})}let r=ts(t.edited),{contentHash:n,...s}=r.verifierSet,i=Re({...s,id:`${a.tasksetId}-verifiers`,revision:a.tasksetRevision,calibrationReceiptRefs:[],metadata:{sourceVerifierSet:I(r.verifierSet)}}),{contentHash:o,...u}=r.taskset,l=O.parse(E({...u,id:a.tasksetId,revision:a.tasksetRevision,verifierSetRelease:{id:i.id,contentHash:i.contentHash},metadata:{modelTasksetAuthoring:a.lineage,...r.taskset.metadata.environmentResources===void 0?{}:{environmentResources:r.taskset.metadata.environmentResources},...r.taskset.metadata.ordinaryAuthoring===void 0?{}:{ordinaryAuthoring:r.taskset.metadata.ordinaryAuthoring}}})),d=de(r),m=d?[...r.files.filter(p=>p.asset.id!==Ke(r.taskset)),Ye({...d.execution,verifierSet:i})]:r.files;return qe({schemaVersion:"openpond.tasksetPackage.v1",taskset:l,environment:r.environment,verifierSet:i,files:m})}c(pr,"publishModelTasksetDraftPackage");function ts(t){let a=ze(t);if(a.modelResources||a.learningResources)throw new Error("This Taskset requires its bound or reviewed authoring workflow.");return a}c(ts,"requireOrdinaryPackage");var W=e.string().trim().min(1).max(240),Ze=e.string().trim().min(1),At=e.string().trim().min(8).max(256),ur=e.record(e.string(),e.unknown()).default({}),as=W.nullable(),fr=["work_capabilities","work_environment","work_list_files","work_read_file","work_read_document","work_write_file","work_write_docx","work_edit_file","work_delete_file","work_exec","work_save_output","work_stop"],rs=e.enum(["draft","awaiting_disclosure_approval","awaiting_materialization_approval","materializing","validating","needs_review","baselining","ready","blocked","failed","archived"]),ns=e.enum(["demonstrations","preferences","verifiable_reward","rubric","discovery"]),$=e.string().trim().max(1e5),ss=e.discriminatedUnion("kind",[e.object({kind:e.literal("demonstrations"),behavior:$,examples:e.array(e.object({id:W,prompt:$,response:$})).max(1e3).default([])}),e.object({kind:e.literal("preferences"),preference:$,pairs:e.array(e.object({id:W,prompt:$,chosen:$,rejected:$,rationale:$})).max(1e3).default([])}),e.object({kind:e.literal("verifiable_reward"),task:$,rules:e.array(e.object({id:W,points:e.number().finite(),condition:$})).max(1e3).default([]),otherwisePoints:e.number().finite().default(0)}),e.object({kind:e.literal("rubric"),task:$,criteria:e.array(e.object({id:W,label:e.string().trim().max(500),description:$})).max(1e3).default([]),positiveExample:$,negativeExample:$,boundaryExample:$})]),nm=e.object({path:e.string().trim().min(1).max(1e3),role:e.enum(["environment","verifier","fixture"]),content:e.string().max(25e4)}),is=e.object({primaryMethod:e.enum(["sft","dpo","grpo","ppo","sdft","opsd","sdpo"]),bootstrap:e.object({method:e.literal("sft"),purpose:e.literal("trajectory_bootstrap"),demonstrationRefs:e.array(W).min(1).max(1e5),limitations:e.array(e.string().trim().min(1).max(5e3)).min(1).max(100)}).nullable()}),os=e.enum(["taskset_not_ready","demonstrations_missing","preference_pairs_missing","preference_pairs_invalid","executable_reward_missing","reward_not_calibrated","reward_model_missing","value_model_required","frozen_eval_missing"]),cs=e.object({method:e.enum(["sft","dpo","grpo","ppo"]),status:e.enum(["recommended","compatible","needs_dataset_work"]),reasonCodes:e.array(os).default([]),reasons:e.array(e.string().trim().min(1).max(5e3)).default([])}),lr=e.object({code:W,message:e.string().trim().min(1).max(5e3),path:e.string().trim().max(2e3).nullable()}),ds=e.object({schemaVersion:e.literal("openpond.tasksetReadiness.v1"),tasksetId:W,tasksetHash:At,ready:e.boolean(),recommendedMethod:e.enum(["none","retrieval","sft","dpo","grpo","ppo","sdft","opd","opsd","sdpo"]),trainingPath:is.nullable().default(null),methodReadiness:e.array(cs).default([]),compatibleDestinationClasses:e.array(e.enum(["export","custom","hosted_managed"])),blockers:e.array(lr).default([]),advisories:e.array(lr).default([]),warnings:e.array(e.string().trim().min(1).max(5e3)).default([]),generatedAt:Ze}),ms=e.object({attempt:e.number().int().positive(),summary:e.string().trim().min(1).max(5e3),createdAt:Ze}),ps=e.object({schemaVersion:e.literal("openpond.taskAuthoringProvenance.v1"),model:ot.nullable(),modelConfig:ur,skillHash:At,promptTemplateVersion:e.string().trim().min(1).max(200),buildIntent:ns.default("demonstrations"),buildSpecification:ss.nullable().default(null),evidenceHashes:e.array(At).max(1e5),tasksetSdkVersion:e.string().trim().min(1).max(100),sourceCommit:e.string().trim().min(1).max(256).nullable(),repairHistory:e.array(ms).max(1e3),createdAt:Ze}),V=e.object({schemaVersion:e.literal("openpond.taskset.v1"),id:W,revision:e.number().int().positive().default(1),profileId:W,profileRelease:ca.nullable().optional(),createImproveRunId:as.default(null),name:e.string().trim().min(1).max(500),objective:e.string().trim().max(2e4),purpose:ht.default("general"),benchmark:gt.nullable().default(null),preferenceComparison:kt.nullable().default(null),status:rs,sourceRefs:e.array(bt).min(1).max(1e5),datasetArtifact:Le.nullable().optional(),policy:vt,environment:yt,capabilities:wt,metrics:ct.optional(),tasks:e.array(Ae).max(1e6),graders:e.array(xt).min(1).max(1e3),graderFixtures:e.array(Rt).max(1e5),learningSignals:St,authoringProvenance:ps,readiness:ds.nullable(),contentHash:At,createdAt:Ze,updatedAt:Ze,metadata:ur}).superRefine((t,a)=>{t.purpose==="benchmark"&&!t.benchmark&&a.addIssue({code:"custom",message:"Benchmark Tasksets require an immutable benchmark binding.",path:["benchmark"]}),t.purpose!=="benchmark"&&t.benchmark&&a.addIssue({code:"custom",message:"Only benchmark Tasksets may carry a benchmark binding.",path:["benchmark"]}),t.datasetArtifact&&t.tasks.length>0&&a.addIssue({code:"custom",message:"Artifact-backed Tasksets may not duplicate canonical rows inline.",path:["tasks"]}),!t.datasetArtifact&&t.tasks.length===0&&a.addIssue({code:"custom",message:"A Taskset requires inline tasks or a Dataset artifact manifest.",path:["tasks"]})});function hr(t){return t.schemaVersion==="openpond.trainingSource.v1"}c(hr,"isTrainingSourceRef");var et=class extends Error{static{c(this,"TasksetDraftPublishError")}issues;constructor(a){super(a.map(r=>r.message).join(`
|
|
13
|
+
`)),this.name="TasksetDraftPublishError",this.issues=a}};function gr(t){let a=[];t.name.trim()||a.push({code:"name_missing",message:"Name is required.",path:"name"}),t.objective.trim()||a.push({code:"objective_missing",message:"Objective is required.",path:"objective"}),!t.datasetArtifact&&t.tasks.length===0&&a.push({code:"tasks_missing",message:"Add at least one task or Dataset artifact.",path:"tasks"}),t.graders.length===0&&a.push({code:"graders_missing",message:"Add at least one grader.",path:"graders"}),t.graderFixtures.length===0&&a.push({code:"grader_fixtures_missing",message:"Add grader fixtures before publishing.",path:"graderFixtures"});let r=new Set(t.sourceRefs.map(n=>n.id));for(let n of t.tasks)for(let s of n.sourceRefs)r.has(s)||a.push({code:"task_source_missing",message:`Task ${n.id} references missing source ${s}.`,path:`tasks.${n.id}.sourceRefs`});return a}c(gr,"draftPublishIssues");function kr(t,a={}){let r=V.safeParse(t);if(!r.success)return{valid:!1,taskset:null,computedHash:null,issues:r.error.issues.map(o=>({code:"schema_invalid",severity:"error",message:o.message,path:o.path.join(".")}))};let n=r.data,s=[];fs(n,s),us(n,s),hs(n,s),ks(n,s),bs(n,s),ls(n,s,a),vs(n,s),Ss(n.capabilities,s,n),gs(n,s);let i=br(n);return n.contentHash!==i&&s.push({code:"content_hash_mismatch",severity:"error",message:`Taskset contentHash is ${n.contentHash}, expected ${i}.`,path:"contentHash"}),{valid:!s.some(o=>o.severity==="error"),taskset:n,computedHash:i,issues:s}}c(kr,"validateTaskset");function ls(t,a,r){!t.graderFixtures.length&&!(r.allowUnscoredOnlineRewardBatch&&t.metadata.trainingMethod==="grpo"&&t.metadata.learning)&&a.push({code:"grader_fixtures_required",severity:"error",message:"Taskset admission requires authored grader fixtures.",path:"graderFixtures"});let n=new Set(t.tasks.map(i=>i.id)),s=new Set(["positive","negative","boundary","adversarial","prompt_injection","infrastructure_failure"]);for(let i of t.graderFixtures)!t.datasetArtifact&&!n.has(i.taskId)&&a.push({code:"grader_fixture_task_missing",severity:"warning",message:`Fixture ${i.id} references a task outside this Taskset revision (${i.taskId}).`,path:`graderFixtures.${i.id}.taskId`}),s.delete(i.label),i.label==="infrastructure_failure"&&!i.infrastructureError&&a.push({code:"infrastructure_fixture_error_missing",severity:"error",message:`Infrastructure fixture ${i.id} must declare an infrastructure error.`,path:`graderFixtures.${i.id}.infrastructureError`});for(let i of s)a.push({code:"grader_fixture_missing",severity:"warning",message:`Taskset does not include the optional ${i} grader calibration fixture.`,path:"graderFixtures"})}c(ls,"validateGraderFixtures");function us(t,a){let r=t.datasetArtifact;if(!r)return;(r.tasksetId!==t.id||r.tasksetRevision!==t.revision)&&a.push({code:"dataset_artifact_taskset_mismatch",severity:"error",message:"Dataset artifact identity does not match its Taskset revision.",path:"datasetArtifact"});let n=Object.values(r.splitCounts).reduce((l,d)=>l+d,0),s=r.shards.reduce((l,d)=>l+d.rowCount,0);(n!==r.rowCount||s!==r.rowCount)&&a.push({code:"dataset_artifact_row_count_mismatch",severity:"error",message:"Dataset artifact row, split, and shard counts do not agree.",path:"datasetArtifact.rowCount"});let i=new Map;for(let l of r.shards)i.set(l.split,(i.get(l.split)??0)+l.rowCount);for(let[l,d]of Object.entries(r.splitCounts))(i.get(l)??0)!==d&&a.push({code:"dataset_artifact_split_count_mismatch",severity:"error",message:`Dataset artifact ${l} shard counts do not match its manifest.`,path:`datasetArtifact.splitCounts.${l}`});let{contentHash:o,...u}=r;g(u)!==r.contentHash&&a.push({code:"dataset_artifact_hash_mismatch",severity:"error",message:"Dataset artifact manifest content hash is invalid.",path:"datasetArtifact.contentHash"})}c(us,"validateDatasetArtifact");function Be(t){return br(t)}c(Be,"computeTasksetHash");function br(t){let{contentHash:a,status:r,readiness:n,updatedAt:s,...i}=t;return g(i)}c(br,"tasksetContentHash");function fs(t,a){for(let[r,n]of t.sourceRefs.entries())hr(n)&&n.consent.status!=="granted"&&a.push({code:"source_consent_missing",severity:"error",message:`Source ${n.id} is not consented.`,path:`sourceRefs.${r}.consent.status`}),n.secretScanStatus!=="passed"&&a.push({code:"source_secret_scan",severity:"error",message:`Source ${n.id} did not pass secret scanning.`,path:`sourceRefs.${r}.secretScanStatus`}),n.piiScanStatus!=="passed"&&a.push({code:"source_pii_scan",severity:"error",message:`Source ${n.id} has unresolved PII policy.`,path:`sourceRefs.${r}.piiScanStatus`}),n.licensingStatus!=="approved"&&a.push({code:"source_license",severity:"error",message:`Source ${n.id} has unresolved licensing policy.`,path:`sourceRefs.${r}.licensingStatus`})}c(fs,"validateSourceConsent");function hs(t,a){let r=new Map;for(let s of t.tasks){let i=r.get(s.clusterKey)??new Set;i.add(s.split),r.set(s.clusterKey,i)}for(let[s,i]of r)i.size>1&&a.push({code:"split_cluster_contamination",severity:"error",message:`Source cluster ${s} appears in multiple splits: ${[...i].join(", ")}.`,path:"tasks"});(t.datasetArtifact?t.datasetArtifact.splitCounts.frozen_eval??0:t.tasks.filter(s=>s.split==="frozen_eval").length)===0&&a.push({code:"frozen_eval_missing",severity:"warning",message:"Add an independent test example before training.",path:"tasks"})}c(hs,"validateSplitIsolation");function gs(t,a){if(t.environment.kind!=="work")return;t.environment.entrypoint!=="openpond-work-v1"&&a.push({code:"work_entrypoint_invalid",severity:"error",message:"Work Tasksets must use the openpond-work-v1 entrypoint.",path:"environment.entrypoint"}),(!t.environment.lifecycle.includes("reset")||!t.environment.lifecycle.includes("cleanup"))&&a.push({code:"work_reset_lifecycle_missing",severity:"error",message:"Work attempts require reset and cleanup; filesystem state belongs to one attempt.",path:"environment.lifecycle"});let r=new Set(fr),n=t.environment.toolNames.filter(i=>!r.has(i));n.length&&a.push({code:"work_tool_unknown",severity:"error",message:`Work Taskset declares unknown tools: ${n.join(", ")}.`,path:"environment.toolNames"}),t.environment.toolNames.includes("work_save_output")||a.push({code:"work_output_tool_missing",severity:"error",message:"Work Tasksets must declare work_save_output.",path:"environment.toolNames"});for(let i of["create","reset","step","grade","cleanup"])t.environment.lifecycle.includes(i)||a.push({code:"work_lifecycle_incomplete",severity:"error",message:`Work Tasksets require the ${i} lifecycle stage.`,path:"environment.lifecycle"});let s=new Map(t.sourceRefs.map(i=>[i.id,i]));for(let[i,o]of t.tasks.entries()){let u=new Set,l=new Set;for(let[m,p]of(o.assets??[]).entries()){let f=`tasks.${i}.assets.${m}`;u.has(p.id)&&a.push({code:"work_asset_duplicate_id",severity:"error",message:`Task ${o.id} repeats asset id ${p.id}.`,path:`${f}.id`}),l.has(p.fileName)&&a.push({code:"work_asset_duplicate_name",severity:"error",message:`Task ${o.id} repeats staged file name ${p.fileName}.`,path:`${f}.fileName`}),u.add(p.id),l.add(p.fileName),o.sourceRefs.includes(p.sourceRefId)||a.push({code:"work_asset_task_source_missing",severity:"error",message:`Asset ${p.id} references source ${p.sourceRefId} outside task ${o.id}.`,path:`${f}.sourceRefId`});let v=s.get(p.sourceRefId);v?"sourceFileHashes"in v&&!v.sourceFileHashes.includes(p.sha256)&&a.push({code:"work_asset_hash_unregistered",severity:"error",message:`Asset ${p.id} hash is not registered by source ${p.sourceRefId}.`,path:`${f}.sha256`}):a.push({code:"work_asset_source_missing",severity:"error",message:`Asset ${p.id} references missing source ${p.sourceRefId}.`,path:`${f}.sourceRefId`}),v&&"kind"in v&&v.kind==="uploaded_file"&&!v.originalFileNames.includes(p.fileName)&&a.push({code:"work_asset_name_unregistered",severity:"error",message:`Asset ${p.id} file name is not registered by source ${p.sourceRefId}.`,path:`${f}.fileName`}),v&&"kind"in v&&v.kind==="uploaded_file"&&!v.mediaTypes.includes(p.mediaType)&&a.push({code:"work_asset_media_type_unregistered",severity:"error",message:`Asset ${p.id} media type is not registered by source ${p.sourceRefId}.`,path:`${f}.mediaType`}),p.split!==o.split&&a.push({code:"work_asset_split_mismatch",severity:"error",message:`Asset ${p.id} is assigned to ${p.split}, not task split ${o.split}.`,path:`${f}.split`})}let d=new Set;for(let[m,p]of(o.requiredOutputs??[]).entries()){let f=p.path.replaceAll("\\","/"),v=`tasks.${i}.requiredOutputs.${m}.path`;d.has(f)&&a.push({code:"work_output_duplicate_path",severity:"error",message:`Task ${o.id} repeats required output path ${f}.`,path:v}),d.add(f)}(o.requiredOutputs??[]).length===0&&a.push({code:"work_output_missing",severity:"error",message:`Work task ${o.id} must declare at least one required output.`,path:`tasks.${i}.requiredOutputs`})}}c(gs,"validateWorkExecution");function ks(t,a){let r=new Set(t.policy.policyVisibleFields);for(let n of t.policy.privilegedFields)r.has(n)&&a.push({code:"privileged_field_visible",severity:"error",message:`Field ${n} is both policy-visible and privileged.`,path:"policy"});for(let n of t.tasks)n.privilegedContextRef&&Object.keys(n.policyVisibleContext).includes(n.privilegedContextRef)&&a.push({code:"privileged_context_leak",severity:"error",message:`Task ${n.id} exposes its privileged context reference.`,path:`tasks.${n.id}.policyVisibleContext`})}c(ks,"validatePolicyBoundary");function bs(t,a){let r=new Set;for(let n of t.graders)r.has(n.id)&&a.push({code:"grader_duplicate",severity:"error",message:`Duplicate grader id ${n.id}.`,path:"graders"}),r.add(n.id),n.kind==="model_judge"&&n.rewardEligible&&n.calibrationStatus!=="passed"&&a.push({code:"judge_calibration_pending",severity:"warning",message:`Model judge ${n.id} is selected for reward without a passing advisory calibration report.`,path:`graders.${n.id}`}),n.kind==="model_judge"&&n.calibrationStatus==="passed"&&typeof n.metadata.calibrationEvidenceHash!="string"&&a.push({code:"judge_calibration_evidence_missing",severity:"warning",message:`Model judge ${n.id} declares calibration without an OpenPond fixture evidence hash.`,path:`graders.${n.id}.metadata.calibrationEvidenceHash`}),n.kind==="human"&&n.rewardEligible&&a.push({code:"human_online_reward",severity:"error",message:`Human grader ${n.id} cannot be an online optimizer reward.`,path:`graders.${n.id}`})}c(bs,"validateGraders");function vs(t,a){let r=new Set(t.tasks.map(s=>s.id)),n=new Set(t.sourceRefs.map(s=>s.id));for(let s of[...t.learningSignals.demonstrations,...t.learningSignals.preferences,...t.learningSignals.corrections,...t.learningSignals.feedback,...t.learningSignals.rewards,...t.learningSignals.labels])s.taskId&&!t.datasetArtifact&&!r.has(s.taskId)&&a.push({code:"learning_signal_task_missing",severity:"error",message:`Signal ${s.id} references missing task ${s.taskId}.`,path:`learningSignals.${s.kind}.${s.id}.taskId`}),s.sourceRefs.some(i=>!n.has(i))&&a.push({code:"learning_signal_source_missing",severity:"error",message:`Signal ${s.id} references a source outside the Dataset.`,path:`learningSignals.${s.kind}.${s.id}.sourceRefs`});for(let s of t.learningSignals.preferences)s.chosen.trim()===s.rejected.trim()&&a.push({code:"preference_pair_identical",severity:"error",message:`Preference ${s.id} has identical chosen and rejected responses.`,path:`learningSignals.preferences.${s.id}`});for(let s of t.learningSignals.rewards)s.executable||a.push({code:"reward_not_executable",severity:"warning",message:`Reward ${s.id} is a reviewed specification but has no executable verifier yet.`,path:`learningSignals.rewards.${s.id}.executable`})}c(vs,"validateLearningSignals");function Ss(t,a,r){!t.exportable&&t.portabilityBlockers.length===0&&a.push({code:"portability_reason_missing",severity:"error",message:"Non-exportable Tasksets must declare a portability blocker.",path:"capabilities.portabilityBlockers"}),t.compatibleMethods.includes("grpo")&&!t.rewardKinds.some(n=>n==="exact"||n==="deterministic"||n==="model_judge")&&a.push({code:"grpo_reward_missing",severity:"error",message:"GRPO compatibility requires a scalar reward kind.",path:"capabilities.rewardKinds"}),r?.capabilities.compatibleMethods.includes("sft")&&r.learningSignals.demonstrations.length===0&&a.push({code:"sft_demonstrations_missing",severity:"error",message:"SFT compatibility requires approved demonstrations.",path:"learningSignals.demonstrations"}),r?.capabilities.compatibleMethods.includes("dpo")&&r.learningSignals.preferences.length===0&&a.push({code:"dpo_preferences_missing",severity:"error",message:"DPO compatibility requires chosen and rejected response pairs.",path:"learningSignals.preferences"}),r&&(r.capabilities.compatibleMethods.includes("grpo")||r.capabilities.compatibleMethods.includes("ppo"))&&!r.learningSignals.rewards.some(n=>n.executable)&&!r.graders.some(n=>n.rewardEligible&&n.weight>0&&n.kind!=="human")&&a.push({code:"online_reward_not_executable",severity:"error",message:"GRPO/PPO compatibility requires an executable scalar reward.",path:"learningSignals.rewards"})}c(Ss,"validateCapabilities");function vr(t){let a=be.parse(t.draft),r=t.now??new Date().toISOString(),n=gr(a);if(n.length)throw new et(n);let s=a.modelScope?.source;if(s&&t.tasksetId&&t.tasksetId!==s.tasksetId)throw new Error("Taskset draft publication differs from its prepared identity.");let i=s?.tasksetId||t.tasksetId?.trim()||a.publishedTasksetRef?.id||a.id.replace(/-draft$/,""),o=s?.tasksetRevision??(a.publishedTasksetRef?.id===i?a.publishedTasksetRef.revision+1:1),u=a.sourceRefs.length?a.sourceRefs:[ys(a,i,r)],l=u[0].id,d=a.tasks.map(S=>Ae.parse({...S,sourceRefs:S.sourceRefs.length?S.sourceRefs:[l],metadata:{exampleOrigin:"expert_authored",...S.metadata}})),m=a.capabilities.compatibleMethods.find(S=>S!=="none"&&S!=="retrieval")??null,p=ws(a),f=a.graders.filter(S=>S.rewardEligible&&S.weight>0&&S.kind!=="human"),v=m===null&&p==="verifiable_reward"&&f.length>0,k=m??(v?"grpo":null),b=V.parse({schemaVersion:"openpond.taskset.v1",id:i,revision:o,profileId:a.profileId,profileRelease:null,createImproveRunId:null,name:a.name,objective:a.objective,purpose:a.purpose,benchmark:a.benchmark,preferenceComparison:a.preferenceComparison,status:"needs_review",sourceRefs:u,datasetArtifact:a.datasetArtifact??null,policy:a.policy,environment:a.environment,capabilities:v?{...a.capabilities,compatibleMethods:["grpo"],rewardKinds:[...new Set(f.map(S=>S.kind==="model_judge"?"model_judge":"deterministic"))]}:a.capabilities,metrics:a.metrics,tasks:d,graders:a.graders,graderFixtures:a.graderFixtures,learningSignals:a.learningSignals,authoringProvenance:{schemaVersion:"openpond.taskAuthoringProvenance.v1",model:null,modelConfig:{},skillHash:g("openpond-taskset-draft-authoring-v1"),promptTemplateVersion:"taskset-draft-v1",buildIntent:p,buildSpecification:null,evidenceHashes:u.map(S=>S.sourceHash),tasksetSdkVersion:"draft-v1",sourceCommit:null,repairHistory:[],createdAt:r},readiness:null,contentHash:"00000000",createdAt:o===1?a.createdAt:r,updatedAt:r,metadata:{...a.metadata,...s?{modelTasksetAuthoring:s.lineage}:{},tasksetReviewPolicy:a.review,tasksetOutputContract:a.output,...t.sourcePackageHash?{sourcePackageHash:t.sourcePackageHash}:{},...k?{trainingMethod:k}:{},diagnosis:{schemaVersion:"openpond.capabilityDiagnosis.v1",summary:a.objective,stableBehavior:[a.objective],changingKnowledge:[],requiredContext:[],requiredTools:a.environment.toolNames,intervention:k==="dpo"?"preference":k==="grpo"||k==="ppo"?"grpo_rft":k==="sft"?"sft":"no_training",trainingEligible:k!==null,rationale:k?[`The author selected ${k.toUpperCase()} compatibility.`]:["The Taskset is currently configured for evaluation only."],confidence:1}}}),R=V.parse({...b,contentHash:Be(b)}),C=kr(R).issues.filter(S=>S.severity==="error");if(C.length)throw new et(C.map(S=>({code:S.code,message:S.message,path:S.path})));return R}c(vr,"publishTasksetDraft");function ys(t,a,r){let n=g({draftId:t.id,draftRevision:t.revision,tasks:t.tasks});return{schemaVersion:"openpond.generatedDatasetSource.v1",kind:"generated",id:`source-${a}`,profileId:t.profileId,title:`${t.name} manual authoring`,sourceHash:n,occurredAt:r,licensingStatus:"approved",secretScanStatus:"passed",piiScanStatus:"passed",generatorId:"openpond-taskset-draft",generatorVersion:"1",seed:0,generatorHash:n,metadata:{draftId:t.id,draftRevision:t.revision}}}c(ys,"generatedDraftSource");function ws(t){return t.learningSignals.preferences.length?"preferences":t.learningSignals.rewards.length?"verifiable_reward":t.learningSignals.labels.length?"rubric":!t.capabilities.compatibleMethods.some(a=>a!=="none"&&a!=="retrieval")&&t.graders.some(a=>a.rewardEligible&&a.weight>0&&a.kind!=="human")?"verifiable_reward":"demonstrations"}c(ws,"buildIntentForDraft");function Ts(t,a){let r=t.metadata.learning===void 0?null:Bt.parse(t.metadata.learning),n=t.metadata.rewardExecution,s=a??(n?{binding:ue.parse(n.binding),rewards:le.array().parse(n.rewards)}:r);if(t.metadata.rewardBinding!==void 0){let i=t.metadata.rewardBinding;if(!s||!i||i.id!==s.binding.id||i.revision!==s.binding.revision||i.contentHash!==s.binding.contentHash)throw new Error("Portable Taskset requires its exact published Reward binding.")}return s&&fe(s.binding,s.rewards),s?{binding:s.binding,rewards:s.rewards}:null}c(Ts,"resolvePortableTasksetRewardExecution");function jt(t){let a=Tr(t.taskset),r=xs(t.taskset),n=t.taskset.metadata.learning===void 0?null:Bt.parse(t.taskset.metadata.learning),s=t.taskset.metadata.rewardExecution,i=Ts(t.taskset,t.rewardExecution),o=i?fe(i.binding,i.rewards):t.taskset.graders.map(Rs),u=t.selectedTasks?.length?t.selectedTasks:t.taskset.tasks;if(!u.length)throw new Error("A portable Taskset release requires at least one task.");let l=t.taskset.environment.metadata.portableExecutionResources;if(a.entrypoint==="openpond.javascript-environment.v1"&&!l)throw new Error("Tool Taskset publication requires its pinned execution resources.");let d=l?ne.parse(l.environment):xe({schemaVersion:"openpond.environmentRelease.v1",id:`environment-release-${t.taskset.id}-r${t.taskset.revision}`,revision:t.taskset.revision,contract:a,actionSchemaRef:null,observationSchemaRef:null,stateSchemaRef:null,artifactCollection:{maxArtifacts:1e5,maxTotalBytes:25e7},adapterConformanceHashes:{[t.adapterId]:g({adapterId:t.adapterId,environment:a,tools:r})},metadata:{sourceTasksetId:t.taskset.id,sourcePackageHash:t.taskset.metadata.sourcePackageHash??null,resources:t.taskset.environment.resources??[]}}),m=l?.verifierSet!==void 0?se.parse(l.verifierSet):Re({schemaVersion:"openpond.verifierSetRelease.v1",id:`verifier-set-release-${t.taskset.id}-r${t.taskset.revision}`,revision:t.taskset.revision,graders:o,isolation:{processBoundary:"isolated_process",networkPolicy:"none",defaultTimeoutMs:Math.min(t.taskset.environment.defaultTimeoutMs,3e5)},calibrationReceiptRefs:[],metadata:{sourceTasksetId:t.taskset.id}});if(!he(d)||!ge(m)||g(d.contract)!==g(a)||g(m.graders)!==g(o))throw new Error("Taskset execution resources differ from its declared environment or graders.");let p=fa.parse({schemaVersion:"openpond.tasksetRelease.v2",id:t.taskset.metadata.derivedPortableMetadata===void 0?`taskset-release-${t.taskset.id}-r${t.taskset.revision}`:t.taskset.id,revision:t.taskset.revision,policy:{policyVisibleFields:t.taskset.policy.policyVisibleFields,privilegedFields:t.taskset.policy.privilegedFields,hiddenGraderRefs:t.taskset.policy.hiddenGraderRefs,connectedAppScopes:t.taskset.policy.connectedAppScopes},environment:a,tools:r,capabilities:_s(t.taskset),tasks:u.map(ra),graders:o,...t.taskset.metrics?{metrics:t.taskset.metrics}:{},metadata:t.taskset.metadata.derivedPortableMetadata??{sourceTasksetId:t.taskset.id,sourceTasksetHash:t.taskset.contentHash,sourcePackageHash:t.taskset.metadata.sourcePackageHash??null,environmentResources:t.taskset.environment.resources??[],ordinaryAuthoring:{instructions:t.taskset.objective,graderFixtures:t.taskset.graderFixtures,judgeCalibrationFixtures:Object.fromEntries(t.taskset.graders.filter(k=>k.kind==="model_judge").map(k=>[k.id,k.calibrationFixtureRefs]))},...n?{learning:n}:{},...i&&!n&&(t.rewardExecution||s)?{rewardExecution:{binding:i.binding,rewards:i.rewards}}:{}}}),f=t.admittedTasksetRelease?O.parse(t.admittedTasksetRelease):O.parse({...p,contentHash:g(p)}),v=f.environmentRelease?Is({draft:f,environmentRelease:d,verifierSetRelease:m}):wa({taskset:f,environment:d,verifierSet:m});return{environmentRelease:d,verifierSetRelease:m,tasksetRelease:v}}c(jt,"materializePortableTasksetRelease");function wr(t){return Tr(t)}c(wr,"portableTasksetEnvironment");function ra(t){let a=t.metadata.portableTaskRecord;if(a!==void 0){let r=Oe.parse(a),n=Oe.parse({...r,id:t.id,clusterKey:t.clusterKey,split:t.split,input:t.input,expectedOutput:Sr(t),policyVisibleContext:t.policyVisibleContext,privilegedContextRef:t.privilegedContextRef,tags:t.tags,artifactRefs:t.assets===void 0?r.artifactRefs:t.assets.map(s=>{let i=r.artifactRefs.find(o=>o.id===s.id);return{id:s.id,path:i?.path??`tasks/${Ve(t.id)}/${Ve(s.fileName)}`,contentHash:aa(s.sha256),sizeBytes:s.sizeBytes,mediaType:s.mediaType,visibility:i?.visibility??"policy"}}),requiredOutputs:t.requiredOutputs===void 0?r.requiredOutputs:t.requiredOutputs.map(s=>{let i=r.requiredOutputs?.find(o=>o.path===s.path);return{path:s.path,mediaType:s.mediaType,schemaRef:i?.schemaRef&&i.schemaRef.id===s.schemaRef?i.schemaRef:null,maxBytes:s.maxBytes??null,metadata:{...s.metadata,...s.schemaRef&&i?.schemaRef?.id!==s.schemaRef?{legacySchemaRef:s.schemaRef}:{}}}})});return n.requiredOutputs===void 0&&delete n.requiredOutputs,n}return{id:t.id,clusterKey:t.clusterKey,split:t.split,input:t.input,expectedOutput:Sr(t),policyVisibleContext:t.policyVisibleContext,privilegedContextRef:t.privilegedContextRef,artifactRefs:(t.assets??[]).map(r=>({id:r.id,path:`tasks/${Ve(t.id)}/${Ve(r.fileName)}`,contentHash:aa(r.sha256),sizeBytes:r.sizeBytes,mediaType:r.mediaType,visibility:"policy"})),requiredOutputs:(t.requiredOutputs??[]).map(r=>({path:r.path,mediaType:r.mediaType,schemaRef:null,maxBytes:r.maxBytes??null,metadata:{...r.metadata,legacySchemaRef:r.schemaRef??null}})),tags:t.tags}}c(ra,"projectPortableTaskRecord");function Sr(t){if(!t.expectedOutput)return null;if("artifactRenderer"in t.expectedOutput)throw new Error(`Task ${t.id} embeds an artifact renderer. Put shared renderer configuration in Environment resources and reference it from the Scenario.`);return t.expectedOutput}c(Sr,"portableExpectedOutput");function Tr(t){return{protocolVersion:"openpond.environment.v1",kind:t.environment.kind==="chat"?"text":t.environment.kind==="work"?"work":t.environment.kind==="program"?"custom_program":"agent",entrypoint:t.environment.entrypoint,stateful:t.environment.stateful,deterministicSeeds:t.environment.deterministicSeeds,lifecycle:["create","reset","step","collect","destroy"],networkPolicy:t.environment.networkPolicy,defaultTimeoutMs:t.environment.defaultTimeoutMs}}c(Tr,"portableEnvironment");function xs(t){let a=t.environment.metadata.portableTools;if(a!==void 0)return da.array().max(200).parse(a);let r=t.environment.actionBindings??[];return r.length?r.map(n=>({name:n.modelToolName,description:n.description,inputSchema:n.inputSchema,inputSchemaHash:aa(n.actionSchemaHash),sideEffect:n.sideEffect,timeoutMs:n.timeoutMs})):t.environment.toolNames.map(n=>({name:n,description:`Host-provided ${n} tool.`,inputSchema:{},inputSchemaHash:g({}),sideEffect:"write",timeoutMs:t.environment.defaultTimeoutMs}))}c(xs,"portableTools");function Rs(t){let a={id:t.id,version:t.version,weight:t.weight,hardGate:t.hardGate,rewardEligible:t.rewardEligible,privileged:t.privileged};if(t.kind==="model_judge")return{...a,kind:"model_judge",rubricRef:yr(t),model:Ps(t),temperature:t.temperature,calibrationStatus:t.calibrationStatus};if(t.kind==="custom_verifier"){if(t.metadata.portableVerifierRef===void 0)throw new Error(`Custom verifier ${t.id} requires its immutable executable asset before publication.`);let r=qt.safeParse(t.metadata.portableGrader),n=r.success&&r.data.kind==="custom_verifier"&&r.data.exportName===void 0&&t.exportName==="verify";return{...a,kind:"custom_verifier",...t.runtime===void 0?{}:{runtime:t.runtime},verifierRef:K.parse(t.metadata.portableVerifierRef),timeoutMs:t.timeoutMs,...n?{}:{exportName:t.exportName},networkPolicy:"none"}}return t.kind==="human"?{...a,kind:"human",rubricRef:yr(t),reviewerRole:t.reviewerRole}:{...a,...pa(t)}}c(Rs,"portableGrader");function _s(t){let a=t.metadata.portableCapabilities;return a!==void 0?ma.array().max(200).parse(a):[...t.capabilities.requiresTools?[{id:"tools",required:!0,scopes:t.environment.toolNames}]:[],...t.capabilities.requiresState?[{id:"local-state",required:!0,scopes:[]}]:[],...t.capabilities.requiresPrivilegedGrading?[{id:"private-verifier",required:!0,scopes:t.policy.hiddenGraderRefs}]:[],...t.policy.connectedAppScopes.map(r=>({id:`connected-app-${Ve(r)}`,required:!0,scopes:[r]}))].map(r=>({...r,portability:r.id==="local-state"?"host_adapter":"portable"}))}c(_s,"portableCapabilities");function Is(t){if(t.draft.environmentRelease?.id!==t.environmentRelease.id||t.draft.environmentRelease.contentHash!==t.environmentRelease.contentHash)throw new Error("Admitted Taskset Release binds a different Environment Release.");if(t.draft.verifierSetRelease?.id!==t.verifierSetRelease.id||t.draft.verifierSetRelease.contentHash!==t.verifierSetRelease.contentHash)throw new Error("Admitted Taskset Release binds a different Verifier Set Release.");if(g(t.draft.environment)!==g(t.environmentRelease.contract))throw new Error("Admitted Taskset Environment differs from its bound Environment Release.");if(g(t.draft.graders)!==g(t.verifierSetRelease.graders))throw new Error("Admitted Taskset graders differ from its bound Verifier Set Release.");return t.draft}c(Is,"assertReleaseBindings");function Ps(t){let a=t.metadata.portableGrader===void 0?null:qt.parse(t.metadata.portableGrader),r=a?.kind==="model_judge"&&a.model?.providerId===t.judge.providerId&&a.model.modelId===t.judge.modelId?a.model.revision:null;return{...t.judge,revision:r}}c(Ps,"modelJudgeRef");function yr(t){let a=z(t.rubric),r=new TextEncoder().encode(t.rubric).byteLength,n=t.metadata.portableRubricRef;if(n!==void 0){let s=K.parse(n);if(s.contentHash!==a||s.sizeBytes!==r||s.visibility==="policy")throw new Error("Taskset rubric differs from its published private source.");return s}return{id:`rubric-${t.id}`,path:`graders/${Ve(t.id)}/rubric.md`,contentHash:a,sizeBytes:r,mediaType:"text/markdown",visibility:"verifier"}}c(yr,"rubricAsset");function aa(t){return/^[a-f0-9]{64}$/.test(t)?t:g(t)}c(aa,"hash");function Ve(t){return t.trim().replace(/[^a-zA-Z0-9._-]+/g,"-").replace(/^-+|-+$/g,"")||"asset"}c(Ve,"segment");function xr(t,a,r,n){if(t.environment.entrypoint!=="openpond.javascript-environment.v1")return{taskset:t,inventory:r,generatedFiles:[]};let s="environment/execution.json",i=a.get(s);if(!i||i.length>524288)throw new Error("Authored tool environment requires its bounded private execution declaration.");let o=ce.parse(JSON.parse(new TextDecoder("utf-8",{fatal:!0}).decode(i))),u=c(P=>{if(!P)return null;let C=r.find(S=>S.asset.id===P.id&&S.asset.path===P.path);if(!C)throw new Error(`Authored environment dependency is missing: ${P.id}.`);return C.asset},"repin"),{contentHash:l,...d}=o.javascript,m=pt.parse(E({...d,id:`javascript-${t.id}`,revision:t.revision,module:u(o.javascript.module)}));if(g(m.tools)!==g(t.environment.metadata.portableTools)||g(m.tools.map(P=>P.name))!==g(t.environment.toolNames))throw new Error("Authored environment tools differ from the Taskset's declared tools.");let p=xe({schemaVersion:"openpond.environmentRelease.v1",id:`environment-${t.id}`,revision:t.revision,contract:wr(t),actionSchemaRef:u(o.environment.actionSchemaRef),observationSchemaRef:u(o.environment.observationSchemaRef),stateSchemaRef:u(o.environment.stateSchemaRef),artifactCollection:o.environment.artifactCollection,adapterConformanceHashes:{},metadata:{javascriptEnvironment:I(m),resources:t.environment.resources??[]}}),f=V.parse({...t,environment:{...t.environment,metadata:{...t.environment.metadata,portableExecutionResources:{environment:p}}}}),v=jt({taskset:f,adapterId:n}),k=Ye({javascript:m,environment:p,verifierSet:v.verifierSetRelease}),b=[...r.filter(P=>P.sourcePath!==s),{asset:k.asset,sourcePath:s}],R=V.parse({...f,metadata:{...f.metadata,portableFileInventory:b}});return{taskset:V.parse({...R,contentHash:Be(R)}),inventory:b,generatedFiles:[{path:s,role:"environment",content:new TextDecoder().decode(ee(k))}]}}c(xr,"prepareAuthoredToolEnvironment");var Dt=e.array(e.object({asset:K,sourcePath:e.string().min(1)}).strict()).max(1e4),Es=new Set(["taskset.json","capabilities.json","data/tasks.jsonl","graders/graders.json","fixtures/grader-fixtures.json","environment/taskset.ts"]);function Rr(t){return Es.has(t)}c(Rr,"isGeneratedTasksetPublicationFilePath");function _r(t,a,r){let n=V.parse(t);if(n.metadata.taskDefinition!==void 0||n.metadata.rewardBinding!==void 0)return{taskset:n,generatedFiles:[]};let s=new Map,i=0;for(let[h,y]of a){if(Q.parse(h),i+=y.byteLength,s.size>=1e4||i>ye*3/4)throw new Error("Taskset source exceeds the package byte limit.");s.set(h,y.slice())}let o=n.metrics?.customAggregator,u=o?s.get(o.module):void 0;if(o&&!u)throw new Error("Declared Taskset metric module is missing.");let l=o&&u?{...n.metrics,customAggregator:{...o,contentHash:z(u)}}:n.metrics,d=new Map,m=new Set,p=[],f=c((h,y,T,A)=>{let q=s.get(y);if(!q)throw new Error(`Declared Taskset file is missing: ${y}.`);return{id:h,path:y,contentHash:z(q),sizeBytes:q.byteLength,mediaType:T,visibility:A}},"ref"),v=c((h,y=h.path)=>{let T=d.get(h.id);if(T&&g(T)!==g({asset:h,sourcePath:y}))throw new Error(`Conflicting Taskset file identity: ${h.id}.`);let A=s.get(y);if(!A||A.length!==h.sizeBytes||z(A)!==h.contentHash)throw new Error(`Taskset file differs from its declared bytes: ${h.id}.`);d.set(h.id,{asset:h,sourcePath:y}),m.add(y)},"add");for(let h of n.tasks){let y=ra(h);for(let T of y.artifactRefs)v(T,h.assets?.find(A=>A.id===T.id)?.artifactRef??T.path);for(let T of y.requiredOutputs??[])T.schemaRef&&v(T.schemaRef)}for(let h of n.environment.resources??[])v(f(h.id,h.path,h.mediaType??"application/octet-stream",h.visibility==="policy_visible"?"policy":"host_private"));let k=n.graders.map(h=>{if(h.kind==="custom_verifier"){let y=f(`verifier-${h.id}`,h.module,"application/javascript","host_private"),T=K.safeParse(h.metadata.portableVerifierRef);return T.success&&T.data.contentHash===y.contentHash&&T.data.sizeBytes===y.sizeBytes&&(y=T.data),v(y,h.module),{...h,metadata:{...h.metadata,portableVerifierRef:y}}}if(h.kind==="human"||h.kind==="model_judge"){let y=new TextEncoder().encode(h.rubric),T=`graders/rubric-${z(y)}.md`;s.set(T,y);let A=f(`rubric-${h.id}`,T,"text/markdown","verifier"),q=K.safeParse(h.metadata.portableRubricRef);if(q.success&&q.data.contentHash===A.contentHash&&q.data.sizeBytes===A.sizeBytes){if(q.data.visibility==="policy")throw new Error("A grader rubric cannot become policy-visible.");A=q.data}return v(A,T),p.push({path:T,role:"verifier",content:h.rubric}),{...h,metadata:{...h.metadata,portableRubricRef:A}}}return h});o&&![...d.values()].some(h=>h.asset.path===o.module&&h.sourcePath===o.module&&h.asset.visibility!=="policy")&&v(f(`metric-${g(o.module)}`,o.module,"application/javascript","host_private"));let b=Dt.parse(n.metadata.portableFileInventory??[]);for(let h of[...s.keys()].sort())if(!m.has(h)){let y=b.find(T=>T.sourcePath===h&&!d.has(T.asset.id));v(y?{...f(y.asset.id,h,y.asset.mediaType,y.asset.visibility),path:y.asset.path}:f(`taskset-file-${g(h)}`,h,"application/octet-stream","host_private"),h)}let{importedPackageHash:R,derivedPortableMetadata:P,...C}=n.metadata,S={...n.environment.metadata};if(S.portableExecutionResources!==void 0){let h=e.object({environment:e.unknown(),verifierSet:e.unknown().optional()}).parse(S.portableExecutionResources);S.portableExecutionResources={environment:h.environment}}let Te=V.parse({...n,graders:k,metrics:l,environment:{...n.environment,metadata:S},metadata:{...C,...R===void 0?{}:{sourceImportedPackageHash:R},portableFileInventory:Dt.parse([...d.values()].sort((h,y)=>h.asset.id.localeCompare(y.asset.id)))}}),te=xr(Te,s,[...d.values()],r);return{taskset:V.parse({...te.taskset,contentHash:Be(te.taskset)}),generatedFiles:[...p,...te.generatedFiles]}}c(_r,"prepareAuthoredTasksetSource");function na(t){let a=We(t.workspace),r=t.preparation===null?null:Ie.parse(t.preparation);if(r?a.draft.id!==r.draftId||a.draft.modelScope?.modelId!==r.lineage.owner.modelId||a.draft.profileId!==r.lineage.owner.scopeId||g(a.draft.modelScope?.source??null)!==g(r):a.draft.modelScope?.source!==void 0)throw new Error("Taskset draft differs from its retained source preparation.");let n=vr({draft:a.draft,now:a.draft.updatedAt,sourcePackageHash:a.contentHash}),s=new Map(a.files.map(d=>[d.path,Jt(d)]));for(let[d,m]of Nt(a.draft))Rr(d)||s.set(d,new TextEncoder().encode(m));let i=_r(n,s,t.adapterId);for(let d of i.generatedFiles)s.set(d.path,new TextEncoder().encode(d.content));let o=jt({taskset:i.taskset,adapterId:t.adapterId}),u=Dt.parse(i.taskset.metadata.portableFileInventory),l=qe({schemaVersion:"openpond.tasksetPackage.v1",taskset:o.tasksetRelease,environment:o.environmentRelease,verifierSet:o.verifierSetRelease,files:u.map(d=>{let m=s.get(d.sourcePath);if(!m)throw new Error(`Captured Taskset file is missing: ${d.sourcePath}.`);return{asset:d.asset,base64:Buffer.from(m).toString("base64")}})});return r?pr({preparation:r,edited:l,source:t.source}):l}c(na,"compileTasksetDraftWorkspace");var H=e.string().trim().min(1).max(240),tt=e.string().regex(/^[a-f0-9]{64}$/),Ir=e.object({operationId:H,expectedRevision:e.number().int().nonnegative(),originProjectId:H.optional(),workspace:_t,ownerScope:e.enum(["workspace","personal"]).optional()}).strict().superRefine((t,a)=>{t.workspace.draft.modelScope!==null&&a.addIssue({code:"custom",message:"Independent datasets cannot carry Model-owned draft preparation."}),t.workspace.draft.status!=="draft"&&a.addIssue({code:"custom",message:"Only draft workspaces can be saved."})}),we=e.object({schemaVersion:e.literal("openpond.datasetWorkspaceReceipt.v1"),teamId:H,datasetId:H,revision:e.number().int().positive(),originProjectId:H.optional(),workspace:_t,ownerScope:e.enum(["workspace","personal"]).optional(),publication:e.object({tasksetId:H,release:ve,packageHash:tt}).strict().nullable()}).strict().superRefine((t,a)=>{(t.workspace.draft.id!==t.datasetId||t.workspace.draft.profileId!==t.teamId||t.workspace.draft.revision!==t.revision||t.workspace.draft.modelScope!==null)&&a.addIssue({code:"custom",message:"Dataset workspace scope/revision mismatch."})}),Pr=e.object({operationId:H,expectedRevision:e.number().int().positive(),workspaceHash:tt,packageHash:tt}).strict(),Er=e.object({operationId:H,expectedRevision:e.number().int().positive()}).strict(),Ar=e.object({teamId:H,datasetId:H,items:e.array(e.object({workspaceRevision:e.number().int().positive(),publication:we.shape.publication.unwrap(),publishedAt:e.iso.datetime()}).strict()).max(25),nextBeforeRevision:e.number().int().positive().nullable()}).strict(),jr=e.object({teamId:H,datasets:e.array(e.object({id:H,revision:e.number().int().positive(),originProjectId:H.optional(),name:e.string(),status:e.enum(["draft","published"]),ownerScope:e.enum(["workspace","personal"]).optional(),publication:we.shape.publication,updatedAt:e.string().datetime()}).strict()).max(100),nextCursor:H.nullable()}).strict(),Dr=e.object({teamId:H,datasetId:H,revision:e.number().int().positive(),workspaceHash:tt,packageHash:tt,release:ve}).strict();var sa=e.enum(["create","save","publish","begin_version"]),Hr=e.object({operationId:e.string().trim().min(1).max(240),kind:sa,requestHash:e.string().regex(/^[a-f0-9]{64}$/),receipt:we,base:we.nullable()}).strict().superRefine((t,a)=>{let{receipt:r,base:n,kind:s}=t;(n&&(n.teamId!==r.teamId||n.datasetId!==r.datasetId||n.revision+1!==r.revision)||!n&&r.revision!==1)&&a.addIssue({code:"custom",message:"Operation recovery history identity/revision mismatch."}),n&&((n.ownerScope??"workspace")!==(r.ownerScope??"workspace")||n.originProjectId!==r.originProjectId||n.workspace.draft.createdAt!==r.workspace.draft.createdAt)&&a.addIssue({code:"custom",message:"Operation recovery cannot change Dataset ownership or origin."});let i=n?r.workspace.draft.status==="published"?"publish":n.workspace.draft.status==="published"?"begin_version":"save":"create";s!==i&&a.addIssue({code:"custom",message:"Operation recovery kind differs from its retained lifecycle."})});var at=class{constructor(a){this.options=a;let r=new URL(a.baseUrl);if(!["http:","https:"].includes(r.protocol)||r.username||r.password||r.search||r.hash||!a.apiKey.trim()||!a.teamId.trim())throw new Error("A clean API origin and workspace credentials are required.");this.baseUrl=r.toString().replace(/\/+$/,"")}options;static{c(this,"OpenPondDatasetWorkspaceClient")}baseUrl;async list(a={}){let r=new URLSearchParams({...a.cursor?{cursor:a.cursor}:{},...a.projectId?{projectId:a.projectId}:{}}),n=jr.parse(await this.request(`?${r}`,"GET",void 0,a.signal));if(n.teamId!==this.options.teamId)throw new Error("Dataset list workspace mismatch.");return n}async get(a,r){return this.readback(await this.request(`/${encodeURIComponent(a)}`,"GET",void 0,r),a)}async operationResult(a,r){let n=sa.parse(r.kind),s=new URLSearchParams({kind:n,...r.datasetId?{datasetId:r.datasetId}:{}}),i=await this.request(`/operations/${encodeURIComponent(a)}?${s}`,"GET",void 0,r.signal,132*1024*1024);if(i===null)return null;let o=Hr.parse(i);if(this.readback(o.receipt,o.receipt.datasetId),o.base&&this.readback(o.base,o.receipt.datasetId),o.operationId!==a||o.kind!==n||r.datasetId&&o.receipt.datasetId!==r.datasetId||r.requestHash&&o.requestHash!==r.requestHash)throw new Error("Dataset operation recovery identity/request mismatch.");return o}async beginVersion(a,r,n){let s=Er.parse(r),i=this.readback(await this.request(`/${encodeURIComponent(a)}/begin-version`,"POST",s,n),a);if(i.revision!==s.expectedRevision+1||i.workspace.draft.status!=="draft"||!i.publication||!i.workspace.draft.publishedTasksetRef)throw new Error("Editable version receipt mismatch.");return i}async versions(a,r={}){let n=new URLSearchParams(r.beforeRevision===void 0?{}:{beforeRevision:String(r.beforeRevision)}),s=Ar.parse(await this.request(`/${encodeURIComponent(a)}/versions?${n}`,"GET",void 0,r.signal));if(s.teamId!==this.options.teamId||s.datasetId!==a||s.items.some((i,o)=>o>0&&i.workspaceRevision>=s.items[o-1].workspaceRevision||r.beforeRevision!==void 0&&i.workspaceRevision>=r.beforeRevision))throw new Error("Dataset version history scope/order mismatch.");return s}async version(a,r,n){let s=this.readback(await this.request(`/${encodeURIComponent(a)}/versions/${r}`,"GET",void 0,n),a);if(s.revision!==r||s.workspace.draft.status!=="published")throw new Error("Dataset immutable version mismatch.");return s}async save(a,r){let n=Ir.parse(a),s=We(n.workspace);if(s.draft.profileId!==this.options.teamId||s.draft.revision!==n.expectedRevision+1)throw new Error("Dataset write scope or revision mismatch.");let i=this.readback(await this.request(`/${encodeURIComponent(s.draft.id)}`,"PUT",n,r),s.draft.id);if(n.originProjectId&&i.originProjectId!==n.originProjectId)throw new Error("Dataset origin Project mismatch.");if(n.ownerScope&&i.ownerScope!==n.ownerScope)throw new Error("Dataset owner scope mismatch.");if(i.workspace.contentHash!==s.contentHash)throw new Error("Dataset write receipt differs from the saved bytes.");return i}async validate(a,r,n){let s=Dr.parse(await this.request(`/${encodeURIComponent(a)}/validate`,"POST",{expectedRevision:r},n));if(s.teamId!==this.options.teamId||s.datasetId!==a||s.revision!==r)throw new Error("Dataset validation receipt mismatch.");return s}async publish(a,r,n){let s=Pr.parse(r),i=this.readback(await this.request(`/${encodeURIComponent(a)}/publish`,"POST",s,n),a);if(i.revision!==s.expectedRevision+1||i.workspace.draft.status!=="published"||i.publication?.packageHash!==s.packageHash)throw new Error("Dataset publication receipt mismatch.");return i}readback(a,r){let n=we.parse(a);if(We(n.workspace),n.datasetId!==r||n.teamId!==this.options.teamId)throw new Error("Dataset identity mismatch.");return n}async request(a,r,n,s,i){let o=await(this.options.fetch??fetch)(`${this.baseUrl}/v1/dataset-workspaces${a}`,{method:r,signal:s,redirect:"error",headers:{Authorization:`Bearer ${this.options.apiKey}`,"X-OpenPond-Team-Id":this.options.teamId,"Content-Type":"application/json"},...n===void 0?{}:{body:JSON.stringify(n)}});if(!o.ok)throw new Error(`Dataset request failed (${o.status}).`);if(i!==void 0){if(!o.body)throw new Error("Dataset response is empty.");let u=o.body.getReader(),l=[],d=0;try{for(;;){let f=await u.read();if(f.done)break;if(d+=f.value.byteLength,d>i)throw new Error("Dataset recovery exceeds its bounded response.");l.push(f.value)}}finally{await u.cancel()}let m=new Uint8Array(d),p=0;for(let f of l)m.set(f,p),p+=f.length;return JSON.parse(new TextDecoder("utf-8",{fatal:!0}).decode(m))}return o.json()}};var Ht=e.string().trim().min(1).max(500),As=e.string().regex(/^[a-f0-9]{64}$/),js=e.object({release:ve,afterId:Ht.optional(),limit:e.number().int().min(1).max(1e4).default(100),view:e.enum(["ids","policy"]).default("ids")}).strict().superRefine((t,a)=>{t.view==="policy"&&t.limit>100&&a.addIssue({code:"custom",path:["limit"],message:"Policy previews are bounded to 100 tasks."})}),Cr=e.object({id:Oe.shape.id,split:la}).strict(),Ds=Cr.extend({input:e.record(e.string(),e.unknown()),policyVisibleContext:e.record(e.string(),e.unknown()),artifacts:e.array(e.object({id:Ht,path:e.string(),mediaType:e.string(),sizeBytes:e.number().int().nonnegative()}).strict()).max(1e3)}).strict(),Pp=e.object({schemaVersion:e.literal("openpond.datasetPopulationPage.v1"),teamId:Ht,release:ve,view:js.shape.view,taskCount:e.number().int().nonnegative(),items:e.array(e.union([Cr,Ds])).max(1e4),graders:e.array(_a).max(1e3),nextCursor:Ht.nullable(),contentHash:As}).strict().superRefine((t,a)=>{t.view==="policy"&&t.items.length>100&&a.addIssue({code:"custom",message:"Policy preview exceeded its task bound."}),t.items.some(r=>"input"in r!=(t.view==="policy"))&&a.addIssue({code:"custom",message:"Dataset task view differs from the requested projection."})});async function Vp(t,a){let[r,n]=a,s=G(t,"team"),i=Ea(t);if(!s||!i||!r||a.length>2||!["upload","read","list","validate","publish"].includes(r))throw new Error("usage: datasets <upload|read|list|validate|publish> [folder|id] --team <id> --api-base-url <origin> [--operation-id <id>] [--expected-revision <n>] [--publish] [--project <id>]");let o=await Ia(),u=new at({teamId:s,baseUrl:i,apiKey:await Pa(o,Aa(o))}),l=G(t,"operationId"),d;if(r==="list"){if(n)throw new Error("List does not accept a dataset id.");d=await u.list({cursor:G(t,"cursor")||void 0})}else{if(!n)throw new Error(`${r} requires a ${r==="upload"?"folder":"dataset id"}.`);if(r==="read")d=await u.get(n);else if(r==="upload"){if(!l||l.length>220)throw new Error("Upload requires a stable --operation-id of at most 220 characters. Reuse it after an uncertain response.");let m=G(t,"expectedRevision"),p=m?Number(m):0;if(!Number.isSafeInteger(p)||p<0)throw new Error("Expected revision must be a nonnegative integer.");let f=await xa({directory:n,teamId:s,expectedRevision:p,datasetId:G(t,"datasetId")||void 0}),v=na({workspace:f.workspace,preparation:null,adapterId:"openpond-hosted-taskset-authoring-v1",now:f.workspace.draft.updatedAt}),k=await u.save({operationId:`${l}:save`,expectedRevision:p,workspace:f.workspace,...G(t,"project")?{originProjectId:G(t,"project")}:{}}),b=await u.get(k.datasetId);if(b.workspace.draft.status==="draft"){let P=await u.validate(k.datasetId,k.revision);if(P.workspaceHash!==f.workspace.contentHash||P.packageHash!==v.contentHash)throw new Error("Hosted validation differs from the captured folder bytes.")}else if(b.publication?.packageHash!==v.contentHash)throw new Error("This dataset was changed after the upload receipt. Read the current version before continuing.");let R=oa(t.publish)?await u.publish(k.datasetId,{operationId:`${l}:publish`,expectedRevision:k.revision,workspaceHash:k.workspace.contentHash,packageHash:v.contentHash}):k;d={teamId:s,datasetId:R.datasetId,revision:R.revision,status:R.workspace.draft.status,operationId:l,capturedBytes:f.capturedBytes,sourceHash:f.sourceHash,sourceFiles:f.sourceFiles,workspaceHash:k.workspace.contentHash,packageHash:v.contentHash,publication:R.publication}}else{let m=Number(G(t,"expectedRevision"));if(!Number.isSafeInteger(m)||m<=0)throw new Error(`${r} requires --expected-revision with the retained dataset revision.`);if(r==="validate")d=await u.validate(n,m);else{if(!l)throw new Error("Publish requires a stable --operation-id.");let p=G(t,"workspaceHash"),f=G(t,"packageHash");if(!p||!f)throw new Error("Publish requires --workspace-hash and --package-hash from the retained validation receipt. Keep these pins and the operation id unchanged on retry.");d=await u.publish(n,{operationId:l,expectedRevision:m,workspaceHash:p,packageHash:f})}}}console.log(JSON.stringify(d,null,2))}c(Vp,"runDatasetsCommand");export{Vp as runDatasetsCommand};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
+
import{u as f}from"./chunk-LRGLV6JX.js";import"./chunk-65BW2QXY.js";import"./chunk-BSHAIAXY.js";import{a as c}from"./chunk-QZ4KTU65.js";import"./chunk-AUOMUBLE.js";import"./chunk-XWPC3AN4.js";import{c as p,f as u}from"./chunk-3M53YXEI.js";import"./chunk-OGPHXXCD.js";import"./chunk-XJAK6DDB.js";import"./chunk-Z2BYC6TP.js";import"./chunk-DXAZUJPA.js";import"./chunk-GLUWATL5.js";import"./chunk-KCENW4ME.js";import"./chunk-2Z6H32OC.js";import"./chunk-MJC26GOX.js";import"./chunk-TPOW52DO.js";import"./chunk-QUNRWDVO.js";import"./chunk-ALZRXBEC.js";import"./chunk-MTJNKRXL.js";import"./chunk-HZP5U2AA.js";import"./chunk-ES2ISFJC.js";import"./chunk-H7IWJN7L.js";import{a as r}from"./chunk-FTQLQJQV.js";import d from"node:path";import{access as v}from"node:fs/promises";import{constants as C}from"node:fs";import{createRequire as P}from"node:module";var l=d.join("scripts","desktop-harness.ts");async function $(n,t){let o=await j({options:n,rest:t}),e=await f(o.command,o.args,{cwd:o.cwd,inherit:!0,timeoutMs:0});if(e.code!==0)throw new m(e.code)}r($,"runDesktopTestCommand");async function j(n){let t=n.options,o=n.rest,e=o[0];if(e!=="run"&&e!=="attach")throw new c(D());let a=o.slice(1);if(a.length===0)throw new c("usage: openpond desktop-test run <scenario...> [options]");let g=p(t,"cwd")||n.cwd||process.cwd(),w=await O(g),k=(n.env??process.env).OPENPOND_NODE_BINARY?.trim()||process.execPath,s=[P(import.meta.url).resolve("tsx/cli"),l,"run",...a],h=x(t,e);return h&&s.push(`--${h}`),i(s,"--app",t,"app"),i(s,"--server",t,"server"),i(s,"--token",t,"token"),i(s,"--token-file",t,"tokenFile"),i(s,"--devtools-port",t,"devtoolsPort"),i(s,"--artifacts-dir",t,"artifactsDir"),H(s,t),i(s,"--grep",t,"grep"),i(s,"--timeout-ms",t,"timeoutMs"),u(t.keepHome)&&s.push("--keep-home"),{command:k,args:s,cwd:w}}r(j,"buildDesktopHarnessInvocation");async function O(n){let t=d.resolve(n);for(;;){let o=d.join(t,l);if(await R(o))return t;let e=d.dirname(t);if(e===t)throw new c(`Could not find ${l}. Run this command from the OpenPond source checkout or pass --cwd <repo>.`);t=e}}r(O,"resolveDesktopHarnessRepoRoot");function x(n,t){let o=t==="attach"?"attach":null;for(let e of["isolated","attach","packaged","none"])if(u(n[e])){if(o&&o!==e)throw new c("Choose only one desktop harness launch mode: --isolated, --attach, --packaged, or --none.");o=e}return o}r(x,"resolveLaunchMode");function i(n,t,o,e){let a=p(o,e);a&&n.push(t,a)}r(i,"appendStringFlag");function H(n,t){let o=p(t,"json"),e=p(t,"jsonPath");if(o&&y(o))throw new c("harness --json requires a report path. Use --json <path> or --json-path <path>.");if(o&&e&&o!==e)throw new c("Use only one JSON report path: --json <path> or --json-path <path>.");let a=o||e;a&&n.push("--json",a)}r(H,"appendJsonFlag");function y(n){return/^(true|false|1|0|yes|no)$/i.test(n)}r(y,"isBooleanLiteral");async function R(n){try{return await v(n,C.R_OK),!0}catch{return!1}}r(R,"fileExists");function D(){return["usage: openpond desktop-test run <scenario...> [options]"," openpond desktop-test attach <scenario...> [options]","","Options include --isolated, --attach, --packaged, --none, --app <path>,","--server <url>, --token <token>, --token-file <path>, --devtools-port <port>, --artifacts-dir <path>,","--json <path>, --json-path <path>, --grep <pattern>, --timeout-ms <ms>,","--keep-home, and --cwd <repo>."].join(`
|
|
3
|
+
`)}r(D,"desktopHarnessCliUsage");var m=class extends Error{static{r(this,"HarnessCommandFailedError")}exitCode;constructor(t){let o=typeof t=="number"&&t>0?t:1;super(`desktop harness failed with exit code ${o}`),this.name="HarnessCommandFailedError",this.exitCode=o}};export{j as buildDesktopHarnessInvocation,O as resolveDesktopHarnessRepoRoot,$ as runDesktopTestCommand};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
+
import{$ as ra,A as L,B as M,C as N,D as O,E as W,F as X,G as Y,H as Z,I as _,J as $,K as aa,L as ba,M as ca,N as da,O as ea,P as fa,Q as ga,R as ha,S as ia,T as ja,U as ka,V as la,W as ma,X as na,Y as oa,Z as pa,_ as qa,a as l,aa as sa,b as m,ba as ta,c as n,ca as ua,d as o,da as va,e as p,ea as wa,f as q,fa as xa,g as r,ga as ya,h as s,ha as za,i as t,ia as Aa,j as u,ja as Ba,k as v,ka as Ca,l as w,la as Da,m as x,ma as Ea,n as y,na as Fa,o as z,oa as Ga,p as A,pa as Ha,q as B,qa as Ia,r as C,s as D,t as E,u as F,v as G,w as H,x as I,y as J,z as K}from"./chunk-ALZRXBEC.js";import"./chunk-MTJNKRXL.js";import"./chunk-HZP5U2AA.js";import"./chunk-ES2ISFJC.js";import{a,b,c,d,e,f,g,h,i,k as j,l as k,m as P,n as Q,o as R,p as S,q as T,r as U,s as V}from"./chunk-H7IWJN7L.js";import"./chunk-FTQLQJQV.js";export{Ca as CLIENT_CHOICE_KEYS,Ba as ClientChoicesSchema,w as ConfigSchema,v as CredentialReferenceSchema,L as LAYOUT_PREFERENCE_KEYS,l as MISSING_REVISION,na as MigrationResolutionsSchema,P as PERSISTENCE_TABLES_SQL,c as PersistenceError,ea as accountId,r as acquireFileLock,ja as artifactReference,za as assertConfigRunCurrent,Ia as assertHomeCompatible,k as assertStorageAncestors,p as atomicWriteFile,b as bindHomeCallbacks,ya as captureConfigRun,Z as clearCache,ma as collectArtifactOrphans,F as configEditorSchema,C as configRecoveryRevisions,N as configToPreferences,da as credentialVersions,ba as deleteCredential,V as deleteLocalRecord,y as diffConfig,Aa as effectivePreferences,g as expandHome,Fa as exportRecoveryBackup,Ha as exportSettings,m as fileRevision,S as getLocalRecord,qa as initializeHome,e as isMissing,O as layoutPreferences,Y as listCache,T as listLocalRecords,J as mergeConfig,ca as newCredentialId,Q as openStorageDatabase,H as patchConfig,d as persistenceIssue,M as preferencesToConfig,o as privateDirectory,s as processIsDead,j as protectPrivateDirectory,ia as publishManagedArtifact,U as putLocalRecord,fa as readAccountConfiguration,W as readCache,Da as readClientChoices,G as readConfig,_ as readCredential,$ as readCredentials,t as readJsonFile,oa as readMigrationJournal,n as readOptionalFile,ua as readPreferences,sa as recoverMigration,la as releaseArtifactReference,B as rememberValidConfig,D as replaceConfigText,i as resolveConfigPath,xa as resolveEffectiveConfig,f as resolveOpenPondHome,pa as resolveStoredPath,ta as restartMigration,E as restoreConfigRevision,Ga as restoreRecoveryBackup,z as serializeConfig,wa as setProjectTrust,h as storagePaths,ga as updateAccountConfiguration,Ea as updateClientChoices,I as updateConfig,u as updateJsonFile,va as updatePreferences,x as validateConfigDocument,A as validateConfigText,ha as validateManagedArtifacts,ra as validateMigratedHome,K as watchConfig,q as withFileLock,R as withLocalDatabase,ka as withManagedArtifact,a as withOpenPondHome,X as writeCache,aa as writeCredential};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
-
import{A as D,B as E,C as F,D as G,E as H,F as I,G as J,H as K,I as L,J as M,K as N,L as O,M as P,N as Q,O as R,P as S,Q as T,R as U,S as V,T as W,U as X,V as Y,a as d,b as e,c as f,d as g,e as h,f as i,g as j,h as k,i as l,j as m,k as n,l as o,m as p,n as q,o as r,p as s,q as t,r as u,s as v,t as w,u as x,v as y,w as z,x as A,y as B,z as C}from"./chunk-
|
|
2
|
+
import{A as D,B as E,C as F,D as G,E as H,F as I,G as J,H as K,I as L,J as M,K as N,L as O,M as P,N as Q,O as R,P as S,Q as T,R as U,S as V,T as W,U as X,V as Y,a as d,b as e,c as f,d as g,e as h,f as i,g as j,h as k,i as l,j as m,k as n,l as o,m as p,n as q,o as r,p as s,q as t,r as u,s as v,t as w,u as x,v as y,w as z,x as A,y as B,z as C}from"./chunk-OUN6VQDO.js";import{ta as a,ua as b,va as c}from"./chunk-QUNRWDVO.js";import"./chunk-HZP5U2AA.js";import"./chunk-ES2ISFJC.js";import"./chunk-FTQLQJQV.js";export{l as AGENT_PROTOCOL_VERSION,m as AGENT_RPC_METHODS,P as AgentCheckpointSchema,O as AgentEffectiveSurfaceSchema,i as AgentEventNameSchema,L as AgentHostStorageClient,t as AgentJsonRpcDispatcher,r as AgentProtocolEnvelopeSchema,u as AgentRpcClient,j as CanonicalAgentEventSchema,H as HOST_STORAGE_CONTRACT_VERSION,x as HarnessReviewStorageParamsSchema,K as HostStorageCapabilitySchema,J as HostStorageRequestSchema,I as HostStorageScopeSchema,z as HostedOutputBeginParamsSchema,A as HostedOutputChunkParamsSchema,B as HostedOutputCompleteParamsSchema,y as HostedOutputIdentitySchema,D as HostedOutputSaveSandboxFileParamsSchema,E as HostedSandboxActionSchema,C as HostedSandboxOutputIdentitySchema,F as HostedSandboxRequestParamsSchema,G as HostedToolAuthorizationParamsSchema,s as InitializeParamsSchema,q as JsonRpcErrorSchema,o as JsonRpcNotificationSchema,n as JsonRpcRequestSchema,p as JsonRpcSuccessSchema,w as RefinerStorageActionSchema,v as TaskInboxStorageParamsSchema,Y as TaskSerialExecutor,X as TaskSignals,f as agentCompactionDecision,k as canonicalEventHash,e as canonicalHash,d as canonicalJson,R as checkpointHash,N as createAgentRuntimeService,T as createAgentToolCatalog,V as createAgentToolCatalogProjection,Q as effectiveSurfaceHash,U as executeAgentTool,W as executeProjectedAgentTool,S as materializeAgentPrompt,a as providerRoundSequence,g as runAgentCompaction,h as runAgentCompactionProgram,M as runAgentJsonlServer,c as runProviderRound,b as runProviderRoundLoop};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
+
import"./chunk-LRGLV6JX.js";import{c as k}from"./chunk-65BW2QXY.js";import{c as R,f as A}from"./chunk-BSHAIAXY.js";import"./chunk-QZ4KTU65.js";import"./chunk-AUOMUBLE.js";import"./chunk-XWPC3AN4.js";import{c as o}from"./chunk-3M53YXEI.js";import"./chunk-OGPHXXCD.js";import{f as g,g as u,h as y,j as I,k as E,l as b,m as S,n as v,o as P}from"./chunk-XJAK6DDB.js";import"./chunk-Z2BYC6TP.js";import{d as H}from"./chunk-DXAZUJPA.js";import{b as U}from"./chunk-GLUWATL5.js";import"./chunk-KCENW4ME.js";import"./chunk-2Z6H32OC.js";import"./chunk-MJC26GOX.js";import"./chunk-TPOW52DO.js";import"./chunk-QUNRWDVO.js";import"./chunk-ALZRXBEC.js";import"./chunk-MTJNKRXL.js";import"./chunk-HZP5U2AA.js";import{b as e}from"./chunk-ES2ISFJC.js";import"./chunk-H7IWJN7L.js";import{a as l}from"./chunk-FTQLQJQV.js";import{readFile as h,stat as w}from"node:fs/promises";var p=e.string().trim().min(1).max(500),C=e.string().regex(/^[a-f0-9]{64}$/),$=e.object({schemaVersion:e.literal("openpond.experimentCaseInspection.v1"),teamId:p,executionId:p,manifestHash:C,receiptId:p,taskId:p,seed:e.string().min(1),input:e.record(e.string(),e.unknown()).nullable(),output:e.unknown().nullable(),error:e.string().nullable(),events:e.array(e.record(e.string(),e.unknown())).max(25),nextEventCursor:p.nullable(),eventCount:e.number().int().nonnegative()}).strict(),K=$.extend({contentHash:C}).strict();var d=e.string().trim().min(1).max(240),F=e.object({projectId:d.optional(),afterId:d.optional(),limit:e.number().int().min(1).max(100).default(30),status:u.shape.status.optional(),search:e.string().trim().max(100).optional(),modelId:d.optional(),tasksetHash:e.string().regex(/^[a-f0-9]{64}$/).optional()}).strict(),j=e.object({summary:u,definition:y,policy:g}).strict().superRefine((a,c)=>{a.summary.policyKind!==a.policy.kind&&c.addIssue({code:"custom",path:["policy"],message:"History target differs from the retained execution."})}),J=e.object({items:e.array(j).max(100),nextCursor:d.nullable()}).strict();async function ce(a,c){let[t,i]=c,x=o(a,"team");if(!x||!t||c.length>(t==="compare"?3:2))throw new Error("usage: experiments <prepare-harness|save|read|list|executions|start|status|cancel|retry|score|passes|pass|cancel-pass|pass-result|result|compare> [id] [candidate-id] --team <id> [--input-file <path>] [--operation-id <id>]");let f=await H(),q={teamId:x,apiKey:await k(f,A(f)),baseUrl:R(a)??f.apiBaseUrl??U},s=new P(q),n;if(t==="prepare-harness"){let r=o(a,"inputFile");if(!r||i||(await w(r)).size>1048576)throw new Error("Harness preparation requires a bounded --input-file with its released target, model and ceiling.");n=await s.prepareHarness(b.parse(JSON.parse(await h(r,"utf8"))))}else if(t==="save"){let r=o(a,"inputFile");if(!r||i)throw new Error("Saving requires --input-file with the complete configuration and stable operationId.");if((await w(r)).size>1048576)throw new Error("Experiment input exceeds one MiB.");n=await s.save(I.parse(JSON.parse(await h(r,"utf8"))))}else if(t==="list"){if(i)throw new Error("List does not accept an Experiment id.");let r=o(a,"limit");n=await s.list({projectId:o(a,"project")||void 0,datasetHash:o(a,"datasetHash")||void 0,search:o(a,"search")||void 0,afterId:o(a,"afterId")||void 0,...r?{limit:Number(r)}:{}})}else{if(!i)throw new Error(`${t} requires an id.`);if(t==="read")n=await s.get(i);else if(t==="start"){let r=o(a,"operationId");if(!r)throw new Error("Start requires --operation-id. Reuse it after a transport failure; use a new id for another execution.");let m=await s.get(i);n=await s.start(E.parse({operationId:r,definition:S(m)}))}else if(t==="executions")n=await s.executions(i,{afterId:o(a,"afterId")||void 0});else if(t==="status")n=await s.execution(i);else if(t==="cancel")n=await s.cancel(i);else if(t==="retry"){let r=o(a,"operationId");if(!r)throw new Error("Retry requires a stable --operation-id for the new execution.");n=await s.retry(i,r)}else if(t==="score"){let r=o(a,"inputFile");if(!r||(await w(r)).size>1048576)throw new Error("Score requires --input-file containing an exact execution reference, grader releases and explicit ceiling, within one MiB.");let m=v.parse(JSON.parse(await h(r,"utf8")));if(m.execution.id!==i)throw new Error("Scoring input belongs to a different execution.");n=await s.score(m)}else if(t==="passes")n=await s.scoringPasses(i,{afterId:o(a,"afterId")||void 0});else if(t==="pass")n=await s.scoringPass(i);else if(t==="cancel-pass")n=await s.cancelScoringPass(i);else if(t==="pass-result")n=await s.scoringResult(i);else if(t==="result")n=await s.result(i);else if(t==="compare"){if(!c[2])throw new Error("Compare requires a baseline and candidate execution id.");n=await s.compare(i,c[2])}else throw new Error(`Unknown Experiment action: ${t}`)}console.log(JSON.stringify(n,null,2))}l(ce,"runExperimentsCommand");export{ce as runExperimentsCommand};
|