openpond 0.2.43 → 0.2.45

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.
Files changed (210) hide show
  1. package/dist/app-server.d.ts +18127 -5586
  2. package/dist/app-server.js +1 -1
  3. package/dist/chunks/actions-command-CRDLSPFA.js +2 -0
  4. package/dist/chunks/{app-layer-OV7RVSQW.js → app-layer-MDJFV3HZ.js} +1 -1
  5. package/dist/chunks/app-server-runtime-PJONTCCO.js +2 -0
  6. package/dist/chunks/apps-MD2DKEDW.js +2 -0
  7. package/dist/chunks/{chunk-T5QA4W2H.js → chunk-25GCTLAZ.js} +5 -5
  8. package/dist/chunks/chunk-3BJ4P5LI.js +520 -0
  9. package/dist/chunks/chunk-3SRIPOJQ.js +2 -0
  10. package/dist/chunks/{chunk-7EDOA6KD.js → chunk-4EGDKOYP.js} +3 -3
  11. package/dist/chunks/{chunk-QUNRWDVO.js → chunk-5ZFEQLRI.js} +3 -3
  12. package/dist/chunks/chunk-6BL2ZIAP.js +184 -0
  13. package/dist/chunks/chunk-6QUICEQA.js +5 -0
  14. package/dist/chunks/chunk-7D2WMUWK.js +3 -0
  15. package/dist/chunks/chunk-7KIBRK3A.js +4 -0
  16. package/dist/chunks/{chunk-O277DPTX.js → chunk-B6LYKEMU.js} +1 -1
  17. package/dist/chunks/{chunk-ZG7QX66E.js → chunk-CR6CDOKS.js} +8 -8
  18. package/dist/chunks/chunk-CXS3WXL3.js +2 -0
  19. package/dist/chunks/chunk-DWGB536R.js +19 -0
  20. package/dist/chunks/{chunk-6UPCR6EL.js → chunk-EG55BFQ4.js} +1 -1
  21. package/dist/chunks/chunk-ELNJUG64.js +17 -0
  22. package/dist/chunks/{chunk-HI7W3IVO.js → chunk-FXIUKYUR.js} +12 -12
  23. package/dist/chunks/chunk-GEDEVI4Y.js +2 -0
  24. package/dist/chunks/chunk-H3C4ZYEA.js +16 -0
  25. package/dist/chunks/chunk-HUBI3RUK.js +2 -0
  26. package/dist/chunks/{chunk-IE2WZ3I3.js → chunk-IYRHG54Q.js} +1 -1
  27. package/dist/chunks/chunk-J65BMG5Q.js +2 -0
  28. package/dist/chunks/chunk-KOR2AZVB.js +24 -0
  29. package/dist/chunks/{chunk-LLNCHGE4.js → chunk-LL4QP2IM.js} +1 -1
  30. package/dist/chunks/chunk-M2YXYBSP.js +2 -0
  31. package/dist/chunks/chunk-NPOHW5OU.js +2 -0
  32. package/dist/chunks/{chunk-KRC2S5QF.js → chunk-NXUCGKY2.js} +3 -3
  33. package/dist/chunks/chunk-PDIT2QS7.js +8 -0
  34. package/dist/chunks/{chunk-T7MJBBHE.js → chunk-PGKEDR3S.js} +1 -1
  35. package/dist/chunks/chunk-QVRNOGAU.js +21 -0
  36. package/dist/chunks/chunk-TNXILYI6.js +2 -0
  37. package/dist/chunks/chunk-TVQE3JMI.js +2 -0
  38. package/dist/chunks/chunk-U6SFIFDM.js +2409 -0
  39. package/dist/chunks/chunk-V6WBSW5Q.js +3 -0
  40. package/dist/chunks/chunk-VESOG2SS.js +2 -0
  41. package/dist/chunks/chunk-VFTUP5NQ.js +2 -0
  42. package/dist/chunks/{chunk-G2WJC6DE.js → chunk-VVV5I22A.js} +2 -2
  43. package/dist/chunks/chunk-XPB6NY7L.js +42 -0
  44. package/dist/chunks/{chunk-VG7XO6PR.js → chunk-XWLI7WJH.js} +2 -24
  45. package/dist/chunks/{chunk-KIGN4FI6.js → chunk-YWX7FKLM.js} +1 -1
  46. package/dist/chunks/cli-BKBH6FZY.js +2 -0
  47. package/dist/chunks/{configuration-command-ANYM5UYG.js → configuration-command-75ZCMZ6X.js} +1 -1
  48. package/dist/chunks/connected-evidence-UPUVVQ6P.js +2 -0
  49. package/dist/chunks/{continual-MHMPLLUZ.js → continual-WWPXK2LO.js} +1 -1
  50. package/dist/chunks/core-commands-SS2GV7WU.js +2 -0
  51. package/dist/chunks/datasets-TCLXV34N.js +2 -0
  52. package/dist/chunks/desktop-test-7ZHZHUB6.js +3 -0
  53. package/dist/chunks/{dist-GC7DXKTI.js → dist-VDN6E54A.js} +1 -1
  54. package/dist/chunks/evaluation-coordination-ZX5GLMRC.js +2 -0
  55. package/dist/chunks/experiment-improvements-O6DCQXCX.js +2 -0
  56. package/dist/chunks/experiments-JOQOBQXY.js +2 -0
  57. package/dist/chunks/{extension-5LQRULQP.js → extension-3M2CSWZB.js} +1 -1
  58. package/dist/chunks/{help-NTSTG6RR.js → help-RLRU33WN.js} +1 -1
  59. package/dist/chunks/hosted-experiment-improvement-IKO677PI.js +3 -0
  60. package/dist/chunks/hosted-harness-runtime-H2Q2SNZT.js +2 -0
  61. package/dist/chunks/hosted-profile-candidate-FHHSLJNO.js +3 -0
  62. package/dist/chunks/hosted-profile-compiler-5B256VV3.js +2 -0
  63. package/dist/chunks/hosted-profile-evaluation-control-Z25TZOW4.js +2 -0
  64. package/dist/chunks/hosted-profile-evaluation-inspection-MFYPLTZQ.js +3 -0
  65. package/dist/chunks/hosted-profile-evaluation-preparation-MAB2PSCC.js +3 -0
  66. package/dist/chunks/human-review-6H3BW7OZ.js +2 -0
  67. package/dist/chunks/learning-Y6WNDVQW.js +2 -0
  68. package/dist/chunks/{opchat-77PRAQ5W.js → opchat-3E4FH3DC.js} +1 -1
  69. package/dist/chunks/{organizations-2KWTYIPU.js → organizations-PRVCUPMN.js} +1 -1
  70. package/dist/chunks/{profile-HVLH672B.js → profile-DC4UEVVG.js} +1 -1
  71. package/dist/chunks/project-agent-ZX3CELKI.js +2 -0
  72. package/dist/chunks/sandbox-command-HHQMZK3G.js +2 -0
  73. package/dist/chunks/{sandbox-template-QMB6DSTS.js → sandbox-template-DFHWHCIQ.js} +1 -1
  74. package/dist/chunks/{src-N447LUPO.js → src-CREVQF7M.js} +1 -1
  75. package/dist/chunks/src-MAZ7OBVY.js +327 -0
  76. package/dist/chunks/taskset-TB2ICAZU.js +2 -0
  77. package/dist/chunks/{teams-bot-RNHQMPQA.js → teams-bot-BNBL57S5.js} +1 -1
  78. package/dist/chunks/training-FW5FOGR3.js +2 -0
  79. package/dist/chunks/{workspaces-V5YTXJLV.js → workspaces-WTPFRJMS.js} +1 -1
  80. package/dist/cli.js +1 -1
  81. package/dist/index.js +1 -1
  82. package/dist/profile/local-profile.d.ts +2 -0
  83. package/dist/web/assets/App-BgeSqoRS.css +1 -0
  84. package/dist/web/assets/App-C6EWFrLP.js +227 -0
  85. package/dist/web/assets/{AppDialog-v-BfV1lA.js → AppDialog-Cgn_fTGR.js} +1 -1
  86. package/dist/web/assets/AppTerminalPanel-cNYkSvM2.js +2 -0
  87. package/dist/web/assets/{AppsView-Dl-37F0w.js → AppsView-9zpKBSLv.js} +1 -1
  88. package/dist/web/assets/{BrowserSidebar-DltF217k.js → BrowserSidebar-Xo21N1ej.js} +1 -1
  89. package/dist/web/assets/{CartesianChart-gK-Ll3kX.js → CartesianChart-Bg3Lm5mZ.js} +1 -1
  90. package/dist/web/assets/{CollaborationTabs-BuWquQYn.js → CollaborationTabs-BIfgIy5X.js} +1 -1
  91. package/dist/web/assets/{CommandMenu-Cs5S8t-Q.js → CommandMenu-D9BimyPx.js} +1 -1
  92. package/dist/web/assets/{CommunityView-BJBkQEMV.js → CommunityView-BoW-yLju.js} +1 -1
  93. package/dist/web/assets/{ComposerCreateImproveStrip-C36fKc-v.js → ComposerCreateImproveStrip-BIKVEgr1.js} +1 -1
  94. package/dist/web/assets/{GetStartedView-9A49MgYA.js → GetStartedView-B99v4-hh.js} +1 -1
  95. package/dist/web/assets/HostedModelLearningReview-DEScpX2Z.js +1 -0
  96. package/dist/web/assets/HostedModelLearningSettings-4HT5eEiL.js +1 -0
  97. package/dist/web/assets/LabModelVersionDetailPage-DkYdI7gr.js +1 -0
  98. package/dist/web/assets/{LabSkillSidebar-BAKym5GY.js → LabSkillSidebar-Bp5XYipm.js} +1 -1
  99. package/dist/web/assets/LabsRoute-ACN76d2j.css +1 -0
  100. package/dist/web/assets/LabsRoute-VopO7n34.js +105 -0
  101. package/dist/web/assets/MainChatThread-3Gg0oDZT.js +2 -0
  102. package/dist/web/assets/{MainPane-gPkr0OWu.js → MainPane-CUqMVG9-.js} +11 -11
  103. package/dist/web/assets/{MarkdownText-B-au2zEv.js → MarkdownText-De0WzrEw.js} +1 -1
  104. package/dist/web/assets/{NativeSkillSidebar-DHFKZ7P1.js → NativeSkillSidebar-B4jtf5RO.js} +1 -1
  105. package/dist/web/assets/{NewExperienceSwitcher-Dhbf5KJT.js → NewExperienceSwitcher-Bg1DVr96.js} +1 -1
  106. package/dist/web/assets/{NewProjectDialog-hlAzFK2Y.js → NewProjectDialog-i_wvIBw-.js} +1 -1
  107. package/dist/web/assets/{OutputsPage-C0N2rOxE.js → OutputsPage-CZiPxLyN.js} +1 -1
  108. package/dist/web/assets/{ProjectsPage-CkHBgLPx.js → ProjectsPage-BD0eml0M.js} +1 -1
  109. package/dist/web/assets/{RightChatPanelStack-BiW6ZzPN.js → RightChatPanelStack-CEBFPHKP.js} +1 -1
  110. package/dist/web/assets/{RightSidebarHomePanel-BS9YSdYB.js → RightSidebarHomePanel-BTpU5wGh.js} +1 -1
  111. package/dist/web/assets/{ScheduledWorkPage-819sQcDR.js → ScheduledWorkPage-Y6XGoh-X.js} +1 -1
  112. package/dist/web/assets/{SettingsView-BZrOUPZb.js → SettingsView-Kh14f463.js} +3 -3
  113. package/dist/web/assets/{TeamChatView-CUNcbSa7.js → TeamChatView-5LjuRNd6.js} +1 -1
  114. package/dist/web/assets/{TerminalOverlay-MIlGPpXe.js → TerminalOverlay-BCWBSotQ.js} +1 -1
  115. package/dist/web/assets/{TrainingCreationPanel-BNcyNoa8.js → TrainingCreationPanel-hvOHRVJx.js} +1 -1
  116. package/dist/web/assets/{TrainingDraftPanel-CKV16LNC.js → TrainingDraftPanel-CGEHGljE.js} +1 -1
  117. package/dist/web/assets/{UsageSettingsSection-SVgUHnUL.js → UsageSettingsSection-B8nbqhag.js} +1 -1
  118. package/dist/web/assets/{WorkSidebarPanel-CfkaaFHA.js → WorkSidebarPanel-B6hlPEIs.js} +1 -1
  119. package/dist/web/assets/{WorkspaceDiffPanel-CQhqlqg5.js → WorkspaceDiffPanel-q8A15-0x.js} +9 -9
  120. package/dist/web/assets/{WorkspaceEnvironmentMenu-CJB-z2tS.js → WorkspaceEnvironmentMenu-BiFTPWtC.js} +1 -1
  121. package/dist/web/assets/{WorkspaceGitDialogs-B3xtasTt.js → WorkspaceGitDialogs-Dyx4Rbiy.js} +1 -1
  122. package/dist/web/assets/{WorkspaceMonacoEditor-DVfyICNZ.js → WorkspaceMonacoEditor-B1dKexHo.js} +60 -60
  123. package/dist/web/assets/{arrow-up-right-CYG4Vm07.js → arrow-up-right-CCj7SOGp.js} +1 -1
  124. package/dist/web/assets/chunk-DJWHN7NU-1eQoMoKO.js +1 -0
  125. package/dist/web/assets/{clipboard-DGSnfljX.js → clipboard-BY6ELc9Z.js} +1 -1
  126. package/dist/web/assets/{cloud-upload-Bw_zrS2y.js → cloud-upload-BOka5EKK.js} +1 -1
  127. package/dist/web/assets/cssMode-C34j8ti5.js +1 -0
  128. package/dist/web/assets/{folder-open-CcGOldH7.js → folder-open-CX2jidFj.js} +1 -1
  129. package/dist/web/assets/{folder-plus-DEIDaX2B.js → folder-plus-Dh2Q9LP3.js} +1 -1
  130. package/dist/web/assets/{git-commit-horizontal-B-Ao6y--.js → git-commit-horizontal-CfevriuT.js} +1 -1
  131. package/dist/web/assets/htmlMode-BORwVkZg.js +1 -0
  132. package/dist/web/assets/index-B9VSiz_z.css +1 -0
  133. package/dist/web/assets/{index-C8_8-lW7.js → index-BBjRfC--.js} +6 -6
  134. package/dist/web/assets/{info-DwOXHkN_.js → info-Bv3dbs3G.js} +1 -1
  135. package/dist/web/assets/{jsonMode-txmGM7K6.js → jsonMode-BYWtZ6AK.js} +4 -4
  136. package/dist/web/assets/{lspLanguageFeatures-D59Drc_9.js → lspLanguageFeatures-CEAdFSpU.js} +1 -1
  137. package/dist/web/assets/{minimize-2-C5UCV16_.js → minimize-2-MhorZwY5.js} +1 -1
  138. package/dist/web/assets/{monaco.contribution-BOmcYK8k.js → monaco.contribution-CDhPpbIo.js} +2 -2
  139. package/dist/web/assets/{monaco.contribution-CbK7796k.js → monaco.contribution-CN7AWJNd.js} +2 -2
  140. package/dist/web/assets/monaco.contribution-DHA7FuJX.js +2 -0
  141. package/dist/web/assets/{monaco.contribution-5HcktwaM.js → monaco.contribution-ZUUVx_3M.js} +2 -2
  142. package/dist/web/assets/{monitor-D4hpNTai.js → monitor-DLcrkfM5.js} +1 -1
  143. package/dist/web/assets/{python-Cie4Ghu8.js → python-CXwvPmc4.js} +1 -1
  144. package/dist/web/assets/{refresh-cw-CIOzrJnj.js → refresh-cw-BTfIxHb3.js} +1 -1
  145. package/dist/web/assets/{save-D7EtdMHG.js → save-DaN65kMq.js} +1 -1
  146. package/dist/web/assets/{square-JpDfrqp_.js → square-zRgIUdSv.js} +1 -1
  147. package/dist/web/assets/toggleHighContrast-BgpFWRpS.css +1 -0
  148. package/dist/web/assets/{toggleHighContrast-DdGkc-Be.js → toggleHighContrast-DWeRZFzr.js} +1 -1
  149. package/dist/web/assets/{tsMode-DwgEL7oI.js → tsMode-nLBhKngY.js} +1 -1
  150. package/dist/web/assets/{upload-BkwOzqS-.js → upload-BfUu4Eu1.js} +1 -1
  151. package/dist/web/assets/{useLocalAgentSchedules-bO0Qycih.js → useLocalAgentSchedules-BCITWhg2.js} +1 -1
  152. package/dist/web/assets/{useSessionTurnCache-DxUh5scW.js → useSessionTurnCache-BQMWfV8u.js} +1 -1
  153. package/dist/web/assets/{wifi-off-D6Keejtn.js → wifi-off-bdka5es5.js} +1 -1
  154. package/dist/web/assets/{workers-BgG66q0n.js → workers-z7XHFFNs.js} +1 -1
  155. package/dist/web/assets/{yaml-COMRGPWg.js → yaml-BTr4i4DD.js} +1 -1
  156. package/dist/web/index.html +5 -5
  157. package/docs/command-reference.md +85 -1
  158. package/package.json +6 -2
  159. package/dist/chunks/actions-command-DWQ3VGGP.js +0 -2
  160. package/dist/chunks/app-server-runtime-JVLXE5LF.js +0 -2
  161. package/dist/chunks/apps-5DQAYDNI.js +0 -2
  162. package/dist/chunks/chunk-3D4QN4NM.js +0 -19
  163. package/dist/chunks/chunk-45UOD2DA.js +0 -2
  164. package/dist/chunks/chunk-5IN3HQJU.js +0 -2
  165. package/dist/chunks/chunk-6KKQXETR.js +0 -5
  166. package/dist/chunks/chunk-6XF4GI35.js +0 -2
  167. package/dist/chunks/chunk-7KC5LWCU.js +0 -2
  168. package/dist/chunks/chunk-7R7O2XXP.js +0 -2
  169. package/dist/chunks/chunk-DGD52VZC.js +0 -13
  170. package/dist/chunks/chunk-E6WT4HWF.js +0 -3
  171. package/dist/chunks/chunk-EWQZASG4.js +0 -2400
  172. package/dist/chunks/chunk-IFI24VF6.js +0 -5
  173. package/dist/chunks/chunk-KDOS6YMH.js +0 -2
  174. package/dist/chunks/chunk-MDE3HHLH.js +0 -2
  175. package/dist/chunks/chunk-P45OSKQL.js +0 -4
  176. package/dist/chunks/chunk-ROJX6IYW.js +0 -578
  177. package/dist/chunks/chunk-SXN3QOW4.js +0 -3
  178. package/dist/chunks/chunk-V44RF57H.js +0 -2
  179. package/dist/chunks/chunk-VJJ3UXOI.js +0 -42
  180. package/dist/chunks/chunk-W3NG7YLC.js +0 -8
  181. package/dist/chunks/chunk-XMKAMR7M.js +0 -2
  182. package/dist/chunks/cli-7D7CYCIY.js +0 -2
  183. package/dist/chunks/core-commands-TYWE3TNW.js +0 -2
  184. package/dist/chunks/datasets-FM3UBK4R.js +0 -13
  185. package/dist/chunks/desktop-test-Z5IKJU3P.js +0 -3
  186. package/dist/chunks/experiments-IWBRIDQE.js +0 -2
  187. package/dist/chunks/hosted-harness-runtime-S75BLD57.js +0 -2
  188. package/dist/chunks/hosted-profile-compiler-JNNYWLC7.js +0 -2
  189. package/dist/chunks/hosted-profile-evaluation-control-IK4Y2EQZ.js +0 -2
  190. package/dist/chunks/hosted-profile-evaluation-inspection-YWKUB7RT.js +0 -3
  191. package/dist/chunks/hosted-profile-evaluation-preparation-JXOF73BB.js +0 -3
  192. package/dist/chunks/project-agent-7NLKJMAM.js +0 -2
  193. package/dist/chunks/sandbox-command-FNS4JBVC.js +0 -2
  194. package/dist/chunks/src-TZBL6NA7.js +0 -325
  195. package/dist/chunks/taskset-BZYQT65N.js +0 -2
  196. package/dist/chunks/training-7PST5HZU.js +0 -2
  197. package/dist/web/assets/App-7h_oHCFd.css +0 -1
  198. package/dist/web/assets/App-BEQmrTGQ.js +0 -226
  199. package/dist/web/assets/AppTerminalPanel-CnKcllS2.js +0 -2
  200. package/dist/web/assets/HostedModelLearningReview-JgxDUDio.js +0 -1
  201. package/dist/web/assets/HostedModelLearningSettings-CH7CsAhw.js +0 -1
  202. package/dist/web/assets/LabModelVersionDetailPage-N2qcy1Yv.js +0 -1
  203. package/dist/web/assets/LabsRoute-DooCmsN8.css +0 -1
  204. package/dist/web/assets/LabsRoute-Y992kQoQ.js +0 -52
  205. package/dist/web/assets/MainChatThread-CPhREQso.js +0 -2
  206. package/dist/web/assets/cssMode-CSpYOKj-.js +0 -1
  207. package/dist/web/assets/htmlMode-DstkgJXG.js +0 -1
  208. package/dist/web/assets/index-DUIWDN8o.css +0 -1
  209. package/dist/web/assets/monaco.contribution-BomZ1gys.js +0 -2
  210. package/dist/web/assets/toggleHighContrast-B7NOMXDY.css +0 -1
@@ -0,0 +1,24 @@
1
+ import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
+ import{O as In,P as la,T as Hn,c as xn,ha as ua,ka as _n,l as Ne,o as Ue,oa as jn,r as vt,t as bt,u as Tn,x as Ge,z as Je}from"./chunk-XWLI7WJH.js";import{$ as Ja,$a as Le,Aa as pn,Cd as yn,Jb as Ka,Ka as ht,Kb as vn,Kd as wn,L as rn,Lb as ie,N as nn,Nd as Rn,O as Ua,P as Ga,Q as sn,Qa as fn,R as de,Rb as bn,S as ra,Ta as at,U as na,Ua as Re,Vc as Wa,Wc as Ya,Xa as re,Xc as kn,ad as Sn,b as aa,cb as rt,d as en,da as me,e as tn,fa as on,fb as oa,ha as ia,hb as ca,ja as cn,jb as da,k as ge,la as tt,lb as hn,m as Na,na as Ee,oa as dn,ob as gn,pa as mn,qa as ln,r as an,ra as sa,rb as R,sa as le,sb as U,tb as M,ua as un,ub as gt,wb as xe,xb as ma,yb as K}from"./chunk-QVRNOGAU.js";import{Ha as $s}from"./chunk-5ZFEQLRI.js";import{b as e}from"./chunk-ES2ISFJC.js";import{a as c,e as Ms}from"./chunk-FTQLQJQV.js";var nt=Re.shape.id,qt=e.string().regex(/^[a-f0-9]{64}$/),pa=e.object({scopeId:nt,modelId:nt}).strict(),fa=e.object({schemaVersion:e.literal("openpond.modelTasksetAuthoring.v1"),owner:pa,root:Re,parent:Re}).strict(),Xa=e.object({schemaVersion:e.literal("openpond.modelTasksetDraftRequest.v1"),operationId:nt,modelId:nt,expectedModelRevision:e.number().int().positive(),sourcePackageHash:qt}).strict(),Ae=e.object({schemaVersion:e.literal("openpond.modelTasksetDraftPreparation.v1"),draftId:nt,requestHash:qt,sourcePackageHash:qt,sourceTasksetRef:Re,tasksetId:nt,tasksetRevision:e.number().int().positive(),lineage:fa,authoringGraph:e.literal("bound").optional()}).strict(),se=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."),Pn=e.object({path:se,sizeBytes:e.number().int().nonnegative(),writable:e.boolean()}).strict(),Dt=e.object({encoding:e.enum(["utf8","base64"]),data:e.string().max(8e6)}).strict(),qs=Pn.extend({contentHash:qt,content:Dt}).strict(),Qa=e.object({draftId:nt,expectedDraftRevision:e.number().int().positive(),path:se,expectedFileHash:qt.nullable(),content:Dt.nullable()}).strict();var Za=fn.extend({mode:e.enum(["nightly","approved_count"]),minimumTasks:e.number().int().min(1).max(1e4),maximumSpendUsd:e.number().positive().max(1e5),maximumDailySpendUsd:e.number().positive().max(1e6)}).strict().superRefine((t,a)=>{t.maximumDailySpendUsd<t.maximumSpendUsd&&a.addIssue({code:"custom",path:["maximumDailySpendUsd"],message:"The daily budget must cover one update."})});var tr="application/vnd.openpond.training+json;version=2",En="application/vnd.openpond.model-project+json;version=2",Mn=1048576,kt=67108864,ar=8388608,ha=524288,Ds=8388608,P=class extends Error{static{c(this,"OpenPondProtocolError")}code;constructor(t,a){super(a),this.name="OpenPondProtocolError",this.code=t}};function C(t){return JSON.stringify(er(t))}c(C,"canonicalJson");function Os(t){return new TextEncoder().encode(C(t)).byteLength}c(Os,"canonicalJsonByteLength");async function L(t){let a=new TextEncoder().encode(C(t)),r=await globalThis.crypto.subtle.digest("SHA-256",a);return Array.from(new Uint8Array(r),n=>n.toString(16).padStart(2,"0")).join("")}c(L,"canonicalSha256");function Me(t,a,r){let n=Os(t);if(n>a)throw new P("payload_too_large",`${r} is ${n} bytes; the maximum is ${a} bytes.`)}c(Me,"assertCanonicalPayloadSize");function rr(t,a,r){let n=new TextEncoder().encode(t).byteLength;if(n>a)throw new P("response_too_large",`${r} is ${n} bytes; the maximum is ${a} bytes.`);try{return JSON.parse(t)}catch{throw new P("invalid_json",`${r} was not valid JSON.`)}}c(rr,"parseBoundedJson");function er(t){if(t===null||typeof t=="string"||typeof t=="boolean")return t;if(typeof t=="number"){if(!Number.isFinite(t))throw new P("non_json_value","Canonical JSON cannot contain a non-finite number.");return Object.is(t,-0)?0:t}if(Array.isArray(t))return t.map(a=>er(a));if(typeof t=="object"){let a=Object.getPrototypeOf(t);if(a!==Object.prototype&&a!==null)throw new P("non_json_value","Canonical JSON accepts only plain objects.");let r={};for(let n of Object.keys(t).sort()){let i=t[n];if(i===void 0||typeof i=="function"||typeof i=="symbol")throw new P("non_json_value",`Canonical JSON cannot contain ${typeof i} at ${n}.`);r[n]=er(i)}return r}throw new P("non_json_value",`Canonical JSON cannot contain ${typeof t}.`)}c(er,"normalizeCanonicalJson");var D=e.string().trim().min(1).max(500),Te=e.string().regex(/^[a-f0-9]{64}$/),ue=e.string().datetime({offset:!0}),_=e.object({id:D,contentHash:Te}).strict(),N=_.extend({revision:e.number().int().positive()}).strict(),Ke=e.object({schemaVersion:e.literal("openpond.baseModelPreference.v1"),modelId:D,revision:e.string().trim().min(1).max(256).nullable(),tokenizerRevision:e.string().trim().min(1).max(256).nullable(),chatTemplateHash:e.string().trim().min(8).max(256).nullable(),modelAssetId:D.nullable(),source:e.enum(["managed","local","builtin"])}).strict(),$n=e.enum(["sft","dpo","grpo","ppo","sdft","opd","opsd","sdpo"]),nr=e.object({schemaVersion:e.string().regex(/^openpond\.[A-Za-z0-9]+Recipe\.v\d+$/),method:$n,parameterization:e.enum(["lora","full"])}).catchall(e.unknown()),Bs=e.object({profileProjectId:D,sourceRevision:e.string().regex(/^[a-f0-9]{40,64}$/),harnessRelease:_}).strict(),Vs=e.object({profileProjectId:D,sourceRevision:e.string().regex(/^[a-f0-9]{40,64}$/),catalogHash:Te,definitionId:D,harnessRelease:_,tasksetRelease:_}).strict(),qn=e.object({tasksetRef:N.nullable().default(null),evaluationTasksetRef:N.nullable().optional(),profileSource:Bs.nullable().optional(),profileEvaluation:Vs.nullable().optional(),rewardBindingRef:N.nullable().optional(),tasksetRelease:_.nullable().default(null),harnessRelease:_.nullable().default(null),baseModel:Ke.nullable().default(null),method:$n.nullable().default(null),destinationId:D.nullable().default(null),managedRolloutPlacement:e.enum(["local","remote"]).default("remote"),managedGpuPlacementObjective:e.enum(["fast","balanced","economical"]).default("balanced"),managedGpuRequirement:e.enum(["any","h100_hbm3"]).default("any"),runPreset:e.enum(["small","standard","custom","small_experiment"]).nullable().default(null),recipe:nr.nullable().default(null),preferredMaximumSpendUsd:e.number().nonnegative().nullable().default(null),preferredRetentionDays:e.number().int().nonnegative().nullable().default(null)}).strict(),Ot=qn.omit({managedGpuRequirement:!0}),zs=e.object({schemaVersion:e.literal("openpond.hostedModelProjectLink.v1"),apiOrigin:e.string().url().refine(t=>new URL(t).origin===t,"Use a canonical API origin.").nullable().default(null),teamId:D,projectId:D,portableProjectId:D,revision:e.number().int().positive(),etag:Te,syncedSourceRevision:e.number().int().positive(),syncedAt:ue,tasksets:e.array(e.object({localTasksetId:D,localTasksetHash:Te.nullable().default(null),releaseId:D,releaseRevision:e.number().int().positive(),releaseHash:Te,packageHash:Te.nullable().default(null),hostedTasksetId:D,syncedAt:ue}).strict()).max(1e4).default([])}).strict(),Fs=e.object({localTasksetId:D,releaseId:D,releaseRevision:e.number().int().positive(),releaseHash:Te,state:e.enum(["syncing","synced","sync_failed"]),hostedTasksetId:D.nullable().default(null),lastAttemptAt:ue,syncedAt:ue.nullable().default(null),lastError:e.string().trim().min(1).max(5e3).nullable().default(null)}).strict(),Ls=e.object({schemaVersion:e.literal("openpond.modelProject.v2"),id:D,profileId:D,revision:e.number().int().positive().default(1),name:e.string().trim().min(1).max(200),objective:e.string().trim().max(5e3).nullable(),defaultBaseModel:Ke.nullable(),defaultDestinationId:D.nullable(),trainingSetup:qn,hosted:zs.nullable().default(null),tasksetSyncs:e.array(Fs).max(1e4).default([]),createdAt:ue,updatedAt:ue}).strict(),Dn=Ls.pick({id:!0,profileId:!0,name:!0,objective:!0,defaultBaseModel:!0,defaultDestinationId:!0,trainingSetup:!0}),Ns=e.object({schemaVersion:e.literal("openpond.modelProjectSave.v1"),operationId:D,expectedRevision:e.number().int().nonnegative(),project:Dn,learning:Za.optional()}).strict().superRefine((t,a)=>{t.learning&&t.expectedRevision!==0&&a.addIssue({code:"custom",path:["learning"],message:"Use learning settings to edit an existing Model's policy."})}),Us=e.object({schemaVersion:e.literal("openpond.modelProjectConfigurationCheck.v1"),configurationHash:Te,projectId:D,expectedRevision:e.number().int().nonnegative(),checkedAt:ue,canSave:e.boolean(),deferred:e.array(e.enum(["base_model","taskset"])).max(2),findings:e.array(e.object({code:D,severity:e.enum(["error","warning"]),message:e.string().min(1).max(5e3),field:e.string().min(1).max(500).nullable()}).strict()).max(100)}).strict(),Gs=e.object({id:D,name:e.string().min(1).max(500),available:e.boolean(),preference:Ke}).strict();async function Al(t){let a=ga(t);return L({project:a.project,expectedRevision:a.expectedRevision,...a.learning?{learning:a.learning}:{}})}c(Al,"modelProjectConfigurationHash");function ga(t){try{ge(t,ha)}catch{throw new On(400,{schemaVersion:"openpond.modelProjectApiError.v2",code:"model_configuration_json_invalid",message:"Model configuration must be bounded JSON data.",retryable:!1,requestId:null,details:{}})}return Ns.parse(t)}c(ga,"parseModelProjectSaveRequest");async function Cl(t,a,r){ge(t,ha);let n=Dn.parse(t);Me(n,ha,"Model configuration");let i=r?Za.parse(r):void 0,s=await L({project:n,expectedRevision:a,...i?{learning:i}:{}});return ga({schemaVersion:"openpond.modelProjectSave.v1",operationId:`model-save:${s}`,expectedRevision:a,project:n,...i?{learning:i}:{}})}c(Cl,"createModelProjectSaveRequest");var ir=e.object({schemaVersion:e.literal("openpond.hostedModelProjectSync.v2"),portableProjectId:D,name:e.string().trim().min(1).max(200),objective:e.string().trim().max(5e3).nullable(),defaultBaseModel:Ke.nullable(),defaultDestinationId:D.nullable(),trainingSetup:Ot,sourceRevision:e.number().int().positive(),sourceUpdatedAt:ue,expectedEtag:Te.nullable().default(null)}).strict(),Ce=e.object({id:D,teamId:D,portableProjectId:D,name:e.string().trim().min(1).max(200),objective:e.string().trim().max(5e3).nullable(),defaultBaseModel:Ke.nullable(),defaultDestinationId:D.nullable(),trainingSetup:Ot,sourceRevision:e.number().int().positive(),sourceUpdatedAt:ue,revision:e.number().int().positive(),etag:Te,createdAt:ue,updatedAt:ue}).strict(),Js=e.object({kind:e.enum(["taskset_release","harness_release","dataset_release","evidence_set","model_version","reward_model_version","evaluation_receipt"]),ref:_,role:e.string().trim().min(1).max(200).nullable().default(null),updatedAt:ue}).strict(),Ks=e.object({project:Ce,resources:e.array(Js).max(1e4),jobCount:e.number().int().nonnegative(),latestJobIds:e.array(D).max(100)}).strict(),Ws=e.object({schemaVersion:e.literal("openpond.modelProjectApiError.v2"),code:e.string().trim().min(1).max(200),message:e.string().trim().min(1).max(5e3),retryable:e.boolean().default(!1),requestId:e.string().trim().min(1).max(500).nullable().default(null),details:e.record(e.string(),e.unknown()).default({})}).strict(),On=class extends Error{static{c(this,"OpenPondModelProjectApiError")}status;code;retryable;requestId;details;constructor(t,a){super(a.message),this.name="OpenPondModelProjectApiError",this.status=t,this.code=a.code,this.retryable=a.retryable,this.requestId=a.requestId,this.details=a.details}};function An(t){let a={};return new Headers(t).forEach((r,n)=>{a[n]=r}),a}c(An,"headersRecord");function Ml(t){let a=t.fetch??fetch,r=t.baseUrl.replace(/\/$/,"");async function n(i,s){let o=typeof t.headers=="function"?await t.headers():t.headers??{},m=await a(`${r}${i}`,{...s,headers:{accept:En,...s?.body?{"content-type":En}:{},...An(o),...An(s?.headers)}}),u=rr(await m.text(),Ds,"Model Project API response");if(!m.ok){let d=Ws.safeParse(u);throw d.success?new On(m.status,d.data):new P("invalid_error_response",`Model Project request failed with HTTP ${m.status} and an invalid error envelope.`)}return u}return c(n,"request"),{async configurationCandidates(){return e.object({candidates:e.array(Gs).max(1e3)}).strict().parse(await n("/v1/model-projects/configuration/candidates",{headers:{accept:"application/json"}})).candidates},async checkConfiguration(i){let s=ga(i);return Us.parse(await n("/v1/model-projects/configuration/check",{method:"POST",headers:{accept:"application/json","content-type":"application/json"},body:JSON.stringify(s)}))},async saveConfiguration(i){let s=ga(i);return Ce.parse(await n("/v1/model-projects/configuration/save",{method:"POST",headers:{accept:"application/json","content-type":"application/json"},body:JSON.stringify(s)}))},async upsert(i){Me(i,ha,"Model Project sync");let s=ir.parse(i),o=await n(`/v1/model-projects/${encodeURIComponent(s.portableProjectId)}`,{method:"PUT",body:JSON.stringify(s)});return Ce.parse(Cn(o,"project"))},async list(){let i=await n("/v1/model-projects");return e.array(Ce).parse(Cn(i,"projects"))},async get(i){let s=await n(`/v1/model-projects/${encodeURIComponent(D.parse(i))}`);return Ks.parse(s)}}}c(Ml,"createModelProjectsClient");function Cn(t,a){return!t||typeof t!="object"||Array.isArray(t)?t:a in t?t[a]:t}c(Cn,"unwrapObject");var Ys=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Xs=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]);function Qs(t){let a=typeof t=="string"?new TextEncoder().encode(t):t,r=Math.ceil((a.byteLength+9)/64)*64,n=new Uint8Array(r);n.set(a),n[a.byteLength]=128;let i=a.byteLength*8,s=new DataView(n.buffer);s.setUint32(r-8,Math.floor(i/4294967296),!1),s.setUint32(r-4,i>>>0,!1);let o=new Uint32Array(Ys),m=new Uint32Array(64);for(let u=0;u<r;u+=64){for(let j=0;j<16;j+=1)m[j]=s.getUint32(u+j*4,!1);for(let j=16;j<64;j+=1){let I=m[j-15],T=m[j-2],Y=Ie(I,7)^Ie(I,18)^I>>>3,Z=Ie(T,17)^Ie(T,19)^T>>>10;m[j]=m[j-16]+Y+m[j-7]+Z>>>0}let d=o[0],l=o[1],p=o[2],h=o[3],g=o[4],v=o[5],w=o[6],E=o[7];for(let j=0;j<64;j+=1){let I=g&v^~g&w,T=d&l^d&p^l&p,Y=Ie(d,2)^Ie(d,13)^Ie(d,22),Z=Ie(g,6)^Ie(g,11)^Ie(g,25),k=E+Z+I+Xs[j]+m[j]>>>0,H=Y+T>>>0;E=w,w=v,v=g,g=h+k>>>0,h=p,p=l,l=d,d=k+H>>>0}o[0]=o[0]+d>>>0,o[1]=o[1]+l>>>0,o[2]=o[2]+p>>>0,o[3]=o[3]+h>>>0,o[4]=o[4]+g>>>0,o[5]=o[5]+v>>>0,o[6]=o[6]+w>>>0,o[7]=o[7]+E>>>0}return Array.from(o,u=>u.toString(16).padStart(8,"0")).join("")}c(Qs,"sha256Hex");function Ie(t,a){return t>>>a|t<<32-a}c(Ie,"rotateRight");var Zs=2e3,zn=25e7,b=e.string().trim().min(1).max(240),x=e.string().regex(/^[a-f0-9]{64}$/),$=e.string().datetime({offset:!0}),Bt=e.record(e.string(),e.unknown()).default({}),S=e.object({id:b,contentHash:x}).strict(),Fn=S.extend({revision:e.number().int().positive()}).strict(),X=e.object({id:b,path:e.string().trim().min(1).max(Zs).refine(eo),contentHash:x,sizeBytes:e.number().int().nonnegative().max(zn),mediaType:e.string().trim().min(1).max(200),visibility:e.enum(["policy","verifier","host_private"])}).strict(),Ln=e.object({id:b,contentHash:x,mediaType:e.string().trim().min(1).max(200).nullable().default(null),sizeBytes:e.number().int().nonnegative().max(zn).nullable().default(null)}).strict(),va=e.enum(["policy_failure","grader_failure","environment_failure","infrastructure_failure","timeout","cancelled"]);function $e(t){return`${JSON.stringify(sr(t),null,2)}
3
+ `}c($e,"canonicalJson");function G(t){return Qs(t)}c(G,"sha256");function f(t){return G($e(t))}c(f,"contentHash");function He(t,a){let{contentHash:r,...n}=t,i=f(n);if(r!==i)throw new Error(`${a} contentHash is ${r}; expected ${i}.`)}c(He,"assertContentHash");function eo(t){let a=t.replaceAll("\\","/");return!a||a.startsWith("/")||a.includes("\0")?!1:!a.split("/").some(r=>!r||r==="."||r==="..")}c(eo,"safeRelativePath");function sr(t){return Array.isArray(t)?t.map(sr):!t||typeof t!="object"?t:Object.fromEntries(Object.entries(t).sort(([a],[r])=>a.localeCompare(r)).map(([a,r])=>[a,sr(r)]))}c(sr,"sortValue");var to=e.enum(["memory","prompt","skill","agent"]),ao=e.enum(["runtime","product","taskset","training"]),ro=e.object({id:e.string().trim().min(1).max(120).regex(/^[a-z0-9][a-z0-9._-]*$/),text:e.string().trim().min(1).max(1e4)}).strict(),no=e.object({schemaVersion:e.literal("openpond.refinerReviewProfile.v1"),id:e.string().trim().min(1).max(120).regex(/^[a-z0-9][a-z0-9._-]*$/),version:e.string().trim().min(1).max(120),name:e.string().trim().min(1).max(200),objective:e.string().trim().min(1).max(1e4),instructions:e.array(ro).max(100),allowedProposalRoutes:e.array(to).max(4),allowedExternalRoutes:e.array(ao).max(4)}).strict().superRefine((t,a)=>{let r=t.instructions.map(n=>n.id);new Set(r).size!==r.length&&a.addIssue({code:"custom",message:"instruction IDs must be unique",path:["instructions"]}),new Set(t.allowedProposalRoutes).size!==t.allowedProposalRoutes.length&&a.addIssue({code:"custom",message:"proposal routes must be unique",path:["allowedProposalRoutes"]}),new Set(t.allowedExternalRoutes).size!==t.allowedExternalRoutes.length&&a.addIssue({code:"custom",message:"external routes must be unique",path:["allowedExternalRoutes"]})});var zl=e.object({schemaVersion:e.literal("openpond.refinerRelease.v1"),id:e.string().trim().min(1).max(240),coreVersion:e.string().trim().min(1).max(120),coreHash:x,profile:no,profileHash:x,composedPromptHash:x,createdAt:$,contentHash:x}).strict(),Fl=e.object({schemaVersion:e.literal("openpond.refinerBinding.v1"),channel:e.literal("active"),revision:e.number().int().nonnegative(),release:S,updatedAt:$}).strict(),Ll=e.object({schemaVersion:e.literal("openpond.refinerTransitionReceipt.v1"),id:e.string().trim().min(1).max(240),operation:e.enum(["initialize","update","activate","rollback"]),bindingChanged:e.boolean(),previousRelease:S.nullable(),nextRelease:S,actor:e.string().trim().min(1).max(240),reason:e.string().trim().min(1).max(1e4),authoringSkillHash:x.nullable(),validation:e.object({valid:e.boolean(),messages:e.array(e.string().max(2e3)).max(100)}).strict(),createdAt:$,contentHash:x}).strict();var io=e.object({schemaVersion:e.literal("openpond.localHarnessRefinerDecision.v1"),decision:e.literal("no_action"),reason:e.string().trim().min(1).max(1e4)}).strip(),so=e.object({schemaVersion:e.literal("openpond.localHarnessRefinerDecision.v1"),decision:e.literal("route"),route:e.enum(["runtime","product","taskset","training"]),summary:e.string().trim().min(1).max(2e3),expectedOutcome:e.string().trim().min(1).max(1e4),reason:e.string().trim().min(1).max(1e4)}).strip(),oo=e.object({schemaVersion:e.literal("openpond.localHarnessRefinerDecision.v1"),decision:e.literal("propose"),route:e.enum(["memory","prompt","skill","agent"]),operation:e.enum(["create","update","delete"]),target:e.string().trim().min(1).max(2e3),summary:e.string().trim().min(1).max(2e3),createContent:e.string().min(1).max(2e4).nullable(),find:e.string().min(1).max(8e3).nullable(),replace:e.string().max(8e3).nullable(),expectedOutcome:e.string().trim().min(1).max(1e4),reason:e.string().trim().min(1).max(1e4)}).strip().superRefine((t,a)=>{t.operation==="create"&&(t.createContent===null||t.find!==null||t.replace!==null)&&a.addIssue({code:"custom",message:"create proposals require createContent and null find/replace",path:["createContent"]}),t.operation==="update"&&(t.createContent!==null||t.find===null||t.replace===null)&&a.addIssue({code:"custom",message:"update proposals require one exact find/replace edit and null createContent",path:["find"]}),t.operation==="delete"&&(t.createContent!==null||t.find!==null||t.replace!==null)&&a.addIssue({code:"custom",message:"delete proposals require null createContent/find/replace",path:["createContent"]})}),co=e.discriminatedUnion("decision",[io,so,oo]),mo=co,ba=e.object({kind:e.enum(["single_deterministic","recurrent_independent"]),supportingEvidenceIds:e.array(e.string().trim().min(1).max(2e3)).min(1).max(100),counterevidence:e.array(e.string().trim().min(1).max(2e3)).max(20)}).strict().superRefine((t,a)=>{new Set(t.supportingEvidenceIds).size!==t.supportingEvidenceIds.length&&a.addIssue({code:"custom",message:"supporting evidence IDs must be unique",path:["supportingEvidenceIds"]}),t.kind==="recurrent_independent"&&t.supportingEvidenceIds.length<2&&a.addIssue({code:"custom",message:"recurrent independent evidence requires at least two supplied incidents",path:["supportingEvidenceIds"]})}),lo=e.object({schemaVersion:e.literal("openpond.localHarnessRefinerDecision.v2"),decision:e.literal("no_action"),reason:e.string().trim().min(1).max(1e4)}).strict(),uo=e.object({schemaVersion:e.literal("openpond.localHarnessRefinerDecision.v2"),decision:e.literal("route"),route:e.enum(["runtime","product","taskset","training"]),summary:e.string().trim().min(1).max(2e3),evidenceBasis:ba,expectedOutcome:e.string().trim().min(1).max(1e4),reason:e.string().trim().min(1).max(1e4)}).strict(),po=e.object({schemaVersion:e.literal("openpond.localHarnessRefinerDecision.v2"),decision:e.literal("propose"),route:e.enum(["memory","prompt","skill","agent"]),operation:e.enum(["create","update","delete"]),target:e.string().trim().min(1).max(2e3),summary:e.string().trim().min(1).max(2e3),evidenceBasis:ba,createContent:e.string().min(1).max(2e4).nullable(),find:e.string().min(1).max(8e3).nullable(),replace:e.string().max(8e3).nullable(),expectedOutcome:e.string().trim().min(1).max(1e4),reason:e.string().trim().min(1).max(1e4)}).strict().superRefine((t,a)=>{t.operation==="create"&&(t.createContent===null||t.find!==null||t.replace!==null)&&a.addIssue({code:"custom",message:"create proposals require createContent and null find/replace",path:["createContent"]}),t.operation==="update"&&(t.createContent!==null||t.find===null||t.replace===null)&&a.addIssue({code:"custom",message:"update proposals require one exact find/replace edit and null createContent",path:["find"]}),t.operation==="delete"&&(t.createContent!==null||t.find!==null||t.replace!==null)&&a.addIssue({code:"custom",message:"delete proposals require null createContent/find/replace",path:["createContent"]})}),Nn=e.discriminatedUnion("decision",[lo,uo,po]),Ul=e.union([mo,Nn]),ka=e.object({memory:e.boolean(),prompt:e.boolean(),skill:e.boolean(),agent:e.boolean()}).strict(),Un=e.enum(["memory","instruction","skill","agent"]),Bn=e.object({path:e.string().trim().min(1).max(2e3),kind:Un,content:e.string().max(6e4),loaded:e.boolean()}).strict(),Vn=e.object({path:e.string().trim().min(1).max(2e3),kind:Un,loaded:e.boolean()}).strict(),fo=e.object({capabilities:ka,trigger:e.record(e.string(),e.unknown()),observations:e.array(e.record(e.string(),e.unknown())).max(20),admissibleEvidenceIds:e.array(e.string().trim().min(1).max(2e3)).max(1e4),reviewPacket:e.object({currentTurn:e.object({id:e.string().trim().min(1).max(2e3),status:e.string().trim().min(1).max(100).nullable(),error:e.string().max(2100).nullable(),prompt:e.string().max(8100).nullable(),assistantOutput:e.string().max(8100).nullable(),assistantOutputLinkCount:e.number().int().nonnegative()}).strict(),priorConversation:e.array(e.object({turnId:e.string().trim().min(1).max(2e3),status:e.string().trim().min(1).max(100).nullable(),prompt:e.string().max(3100).nullable(),assistantOutput:e.string().max(3100).nullable()}).strict()).max(3),timeline:e.array(e.record(e.string(),e.unknown())).max(60),artifacts:e.array(e.record(e.string(),e.unknown())).max(30),artifactDiagnostics:e.array(e.record(e.string(),e.unknown())).max(20),executionProfile:e.object({modelRequestCount:e.number().int().nonnegative(),failedModelRequestCount:e.number().int().nonnegative(),promptTokens:e.number().int().nonnegative(),completionTokens:e.number().int().nonnegative(),totalTokens:e.number().int().nonnegative(),toolFailureCount:e.number().int().nonnegative(),retryCount:e.number().int().nonnegative(),recoveryCount:e.number().int().nonnegative()}).strict(),priorIncidents:e.array(e.record(e.string(),e.unknown())).max(3),truncation:e.object({timelineEventCount:e.number().int().nonnegative(),includedTimelineEventCount:e.number().int().nonnegative(),timelineTruncated:e.boolean()}).strict()}).strict(),runtimeActivation:e.object({admittedRelease:S,currentRelease:S,rebasedOntoCurrent:e.boolean(),admittedSourceFiles:e.array(Bn).max(100),admittedSourceCatalog:e.array(Vn).max(1e3)}).strict(),sourceFiles:e.array(Bn).max(100),sourceCatalog:e.array(Vn).max(1e3),additionalEvidence:e.unknown().nullable().optional()}).strict();var ho=e.object({id:e.string().trim().min(1).max(240),revision:e.number().int().nonnegative(),contentHash:x}).strict(),Gl=e.object({schemaVersion:e.literal("openpond.hostedHarnessRefinerRequest.v2"),requestId:e.string().trim().min(1).max(240),idempotencyKey:e.string().trim().min(1).max(240),evidenceHash:x,harness:e.object({admittedRelease:S,currentRelease:S,overlay:ho,workspace:e.object({id:e.string().trim().min(1).max(240),revision:e.number().int().nonnegative(),sourceRevision:x,channelRevision:e.number().int().nonnegative()}).strict(),capabilities:ka}).strict(),evidence:fo}).strict(),go=e.object({promptTokens:e.number().int().nonnegative(),completionTokens:e.number().int().nonnegative(),totalTokens:e.number().int().nonnegative()}).strict(),Jl=e.object({schemaVersion:e.literal("openpond.hostedHarnessRefinerResponse.v2"),requestId:e.string().trim().min(1).max(240),evidenceHash:x,admittedRelease:S,currentRelease:S,decision:Nn,serviceRevision:e.string().trim().min(1).max(240),usage:go}).strict();var Sa=e.string().regex(/^[a-f0-9]{64}$/),nu=e.object({schemaVersion:e.literal("openpond.javascriptEnvironmentAttempt.v1"),taskId:e.string(),status:e.enum(["completed","budget_exhausted","cancelled","timed_out","policy_failure","environment_failure"]),output:e.string().nullable(),collected:e.boolean(),environmentCleanupComplete:e.boolean(),snapshot:e.object({definition:N,inputHash:Sa,seed:e.number().int(),initialStateHash:Sa,finalStateHash:Sa,state:e.record(e.string(),e.unknown()),events:e.array(e.record(e.string(),e.unknown()))}).strict().nullable(),messages:e.array(e.unknown()),error:e.string().nullable(),contentHash:Sa}).strict();var st=e.object({environment:Ne,verifierSet:Ue,javascript:ua}).strict(),iu=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 Vt(t){if(!t.environmentRelease||!t.verifierSetRelease)throw new Error("Starter execution release references are missing.");return`starter-execution-${M({environment:t.environmentRelease,verifiers:t.verifierSetRelease}).contentHash}`}c(Vt,"modelStarterExecutionAssetId");function vo(t){let a=st.parse(t);Jn(a);let r=Vt({environmentRelease:{id:a.environment.id,contentHash:a.environment.contentHash},verifierSetRelease:{id:a.verifierSet.id,contentHash:a.verifierSet.contentHash}}),n=ma({text:C(a),path:"environment/execution.json",mediaType:"application/json",visibility:"host_private"}),{contentHash:i,...s}=n;return M({...s,id:r,asset:{...s.asset,id:r}})}c(vo,"createModelStarterExecutionAsset");function su(t,a,r){if(a.id!==Vt(t)||a.asset.visibility!=="host_private"||a.asset.mediaType!=="application/json")throw new Error("Starter execution asset differs from its Taskset references.");let n=st.parse(JSON.parse(K(a,a.asset)));return or(n,t,r),n}c(su,"resolveModelStarterExecutionAsset");function it(t,a){return M({value:t}).contentHash===M({value:a}).contentHash}c(it,"equal");function Jn(t){_n(t.javascript);for(let a of[t.environment,t.verifierSet]){let{contentHash:r,...n}=a;if(M(n).contentHash!==r)throw new Error(`Starter execution resource integrity failed: ${a.id}.`)}if(!it(t.environment.metadata.javascriptEnvironment,R(t.javascript)))throw new Error("Starter execution resources differ from its declared task context.")}c(Jn,"assertExecutionIntegrity");function or(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:i,javascript:s}=t;if(Jn(t),!it(a.environmentRelease,{id:n.id,contentHash:n.contentHash})||!it(a.verifierSetRelease,{id:i.id,contentHash:i.contentHash})||!it(n.contract,a.environment)||!it(i.graders,a.graders)||!it(a.tools,s.tools)||!it(n.metadata.javascriptEnvironment,R(s)))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 m of[s.module,n.actionSchemaRef,n.observationSchemaRef,n.stateSchemaRef]){if(!m)continue;let u=r.find(d=>d.id===m.id);if(!u)throw new Error(`Starter environment asset is missing: ${m.id}.`);K(u,m)}for(let m of a.tasks){let u=r.find(l=>l.id===m.privilegedContextRef);if(!u||u.asset.visibility!=="host_private"||u.asset.mediaType!=="application/json")throw new Error(`Starter private initial state is missing: ${m.id}.`);let d=JSON.parse(K(u,u.asset));if(!d||typeof d!="object"||Array.isArray(d))throw new Error(`Starter initial state must be a JSON object: ${m.id}.`);ge(d,s.maxStateBytes)}}c(or,"validateModelStarterExecution");var Kn=e.object({environment:Ne,verifierSet:Ue}).strict();function bo(t){if(!t.environmentRelease||!t.verifierSetRelease)throw new Error("Taskset execution references are missing.");return`taskset-execution-${M({environment:t.environmentRelease,verifiers:t.verifierSetRelease}).contentHash}`}c(bo,"modelTasksetExecutionResourcesAssetId");function mu(t){let a=Kn.parse({environment:t.environment,verifierSet:t.verifierSet});ko(a);let r=bo({environmentRelease:{id:a.environment.id,contentHash:a.environment.contentHash},verifierSetRelease:{id:a.verifierSet.id,contentHash:a.verifierSet.contentHash}}),{contentHash:n,...i}=ma({text:C(a),path:"environment/resources.json",mediaType:"application/json",visibility:"host_private"});return M({...i,id:r,asset:{...i.asset,id:r}})}c(mu,"createModelTasksetExecutionResourcesAsset");function ko(t){if(!Ge(t.environment)||!Je(t.verifierSet))throw new Error("Taskset execution resource integrity failed.")}c(ko,"assertIntegrity");var Wn=e.object({scopeId:e.string().trim().min(1).max(500),modelId:e.string().trim().min(1).max(500)}).strict(),cr=e.object({schemaVersion:e.literal("openpond.modelTasksetDerivation.v1"),owner:Wn,root:N,parent:N}).strict(),Yn=e.object({taskset:de,taskDefinition:re,rewardBinding:Ee,rewards:e.array(tt).min(1).max(100),assets:e.array(xe).max(1e3),executionResources:Kn.optional(),execution:st.optional(),instructionMode:e.literal("per_task").optional()}).strict(),qe=c((t,a)=>M({value:t}).contentHash===M({value:a}).contentHash,"same"),Gn=c((t,a)=>`model-taskset-${M({owner:t,root:a}).contentHash}`,"identity");function Xn(t){return zt({...t,source:dr(t.source)})}c(Xn,"deriveModelTaskset");function zt(t){let a=Wn.parse(t.owner),r=t.source,n=t.edits??r,i=r.taskset.metadata.modelTasksetDerivation===void 0?null:cr.parse(r.taskset.metadata.modelTasksetDerivation);if(i&&r.taskset.id!==Gn(i.owner,i.root))throw new Error("Derived Taskset identity differs from its ownership lineage.");let s=i&&qe(i.owner,a),o=s?i.root:R(r.taskset),m=s?r.taskset.id:Gn(a,o),u=s?r.taskset.revision+1:1,d=Ee.parse(t.rewardBinding),l=t.rewards.map(F=>tt.parse(F)),p=le(d,l);if(d.recipeRef)throw new Error("Resolve the Reward recipe into one standalone binding before deriving a Taskset.");let h={...n.taskset.policy,hiddenGraderRefs:p.filter(F=>F.privileged).map(F=>F.id)},g=n.executionResources??n.execution,v=g?.environment??vt({schemaVersion:"openpond.environmentRelease.v1",id:`${m}-environment`,revision:1,contract:n.taskset.environment,actionSchemaRef:null,observationSchemaRef:null,stateSchemaRef:null,artifactCollection:{maxArtifacts:1e5,maxTotalBytes:25e7},adapterConformanceHashes:{},metadata:{}}),w=bt({schemaVersion:"openpond.verifierSetRelease.v1",id:`${m}-verifiers`,revision:u,graders:p,isolation:g?.verifierSet.isolation??{processBoundary:"isolated_process",networkPolicy:"none",defaultTimeoutMs:Math.min(n.taskset.environment.defaultTimeoutMs,3e5)},calibrationReceiptRefs:[],metadata:g?{sourceVerifierSet:R(g.verifierSet)}:{}}),E={environment:v,verifierSet:w},j=n.execution?{...n.execution,verifierSet:w}:void 0,{contentHash:I,...T}=n.taskset,{contentHash:Y,...Z}=n.taskDefinition,k={...Z.execution,policy:h,environmentRelease:{id:v.id,contentHash:v.contentHash},verifierSetRelease:{id:w.id,contentHash:w.contentHash}},H=re.parse(M({...Z,id:`${m}-definition`,revision:u,rewardBinding:R(d),execution:k})),A=r.taskset.metadata.starterAuthoring??r.taskset.metadata.ordinaryAuthoring,J=A&&typeof A=="object"&&!Array.isArray(A)&&"graderFixtures"in A?A.graderFixtures:void 0,y=de.parse(M({...T,...k,id:m,revision:u,graders:p,metadata:{starter:{taskDefinition:R(H),rewardBinding:R(d)},rewardExecution:{binding:d,rewards:l},...J===void 0?{}:{starterAuthoring:{graderFixtures:J}},...n.taskset.metadata.environmentResources===void 0?{}:{environmentResources:n.taskset.metadata.environmentResources},modelTasksetDerivation:{schemaVersion:"openpond.modelTasksetDerivation.v1",owner:a,root:o,parent:R(r.taskset)}}}));return dr({taskset:y,taskDefinition:H,rewardBinding:d,rewards:l,assets:t.assets,executionResources:E,...j?{execution:j}:{},...r.instructionMode?{instructionMode:r.instructionMode}:{}})}c(zt,"compileModelTasksetReward");function dr(t){let a=Yn.parse(t),{taskset:r,taskDefinition:n,rewardBinding:i,rewards:s,assets:o,execution:m}=a;for(let w of[r,n,i,...s,...o])gt(w);if(ra(r),i.recipeRef)throw new Error("Resolve the Reward recipe into one standalone binding before deriving a Taskset.");if(!U(n.rewardBinding,R(i)))throw new Error("Taskset definition differs from its Reward binding.");let{policy:u,environment:d,environmentRelease:l,tools:p,capabilities:h,verifierSetRelease:g}=r;if(!qe(n.execution,{policy:u,environment:d,...l?{environmentRelease:l}:{},tools:p,capabilities:h,...g?{verifierSetRelease:g}:{}}))throw new Error("Taskset definition differs from its execution resources.");if(!qe(r.graders,le(i,s)))throw new Error("Taskset graders differ from its Reward binding.");if(r.metadata.starter!==void 0){let w=e.object({taskDefinition:N,rewardBinding:N}).passthrough().parse(r.metadata.starter);if(!U(w.taskDefinition,R(n))||!U(w.rewardBinding,R(i)))throw new Error("Taskset metadata differs from its immutable grading resources.")}if(r.metadata.rewardExecution!==void 0&&!qe(r.metadata.rewardExecution,{binding:i,rewards:s}))throw new Error("Taskset embedded Rewards differ from its immutable grading resources.");if(r.metadata.rewardBinding!==void 0&&!U(N.parse(r.metadata.rewardBinding),R(i)))throw new Error("Taskset Reward reference differs from its immutable grading resources.");let v=a.executionResources??m;if(r.environmentRelease&&!v)throw new Error("Deriving a Taskset requires its pinned execution resources.");if(v&&(!Ge(v.environment)||!Je(v.verifierSet)||!qe(r.environmentRelease,{id:v.environment.id,contentHash:v.environment.contentHash})||!qe(r.verifierSetRelease,{id:v.verifierSet.id,contentHash:v.verifierSet.contentHash})||!qe(r.environment,v.environment.contract)||!qe(r.graders,v.verifierSet.graders)))throw new Error("Taskset differs from its pinned execution resources.");if(or(m,r,o),new Set(o.map(w=>w.id)).size!==o.length)throw new Error("Taskset asset identities must be unique.");for(let w of o)K(w,w.asset);for(let w of v?[v.environment.actionSchemaRef,v.environment.observationSchemaRef,v.environment.stateSchemaRef]:[]){if(!w)continue;let E=o.find(j=>j.id===w.id);if(!E)throw new Error(`Taskset environment asset is missing: ${w.id}.`);K(E,w)}for(let w of r.tasks){if(n.requiredOutputs&&!qe(w.requiredOutputs,n.requiredOutputs))throw new Error(`Taskset outputs differ from its reviewed definition: ${w.id}.`);if(a.instructionMode!=="per_task"&&w.policyVisibleContext.instructions!==n.instructions||!Na(n.inputSchema,w.input).valid||w.expectedOutput!==null&&!Na(n.outputSchema,w.expectedOutput).valid)throw new Error(`Taskset task differs from its declared format: ${w.id}.`);if(w.privilegedContextRef&&!o.some(E=>E.id===w.privilegedContextRef&&E.asset.visibility==="host_private"))throw new Error(`Taskset private context is missing: ${w.id}.`)}for(let w of s){let E=w.implementation,j=[...w.assets,..."verifierRef"in E?[E.verifierRef]:[],..."rubricRef"in E?[E.rubricRef]:[],..."inputContract"in E?[E.inputContract]:[]];for(let I of j){let T=o.find(Y=>Y.id===I.id);if(!T||I.visibility==="policy")throw new Error(`Taskset Reward requires its private asset: ${I.id}.`);K(T,I)}}return a}c(dr,"validateModelTasksetPackage");var mr=e.object({batch:da,evidence:e.array(rt).min(1).max(1e4),decisions:e.array(ca).min(1).max(1e4),sources:e.array(Le).min(1).max(1e4),assets:e.array(xe).max(1e3)}).strict();function Qn(t){return t.evidence.filter(a=>a.submission.evaluatorContext!==null).map(a=>{let r=C(a.submission.evaluatorContext),n=new TextEncoder().encode(r);return{asset:{id:`task-evidence:${a.contentHash}`,path:`learning/context/${a.contentHash}.json`,contentHash:G(n),sizeBytes:n.byteLength,mediaType:"application/json",visibility:"host_private"},base64:btoa(Array.from(n,i=>String.fromCharCode(i)).join(""))}})}c(Qn,"learningPackageContextFiles");function Zn(t,a){let r=mr.parse(a),n=ie(t);if(!U(R(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 l=new Set;for(let p of d){gt(p);let h=`${p.id}:${p.revision}`;if(l.has(h))throw new Error("Taskset learning resource identities must be unique.");l.add(h)}}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 l=r.sources.find(p=>U(R(p),d.source));if(!l||!U(l.taskDefinition,R(n.definition)))throw new Error("Taskset evidence source differs from its task definition.")}if(r.sources.some(d=>!r.evidence.some(l=>U(l.source,R(d)))))throw new Error("Taskset package includes an unrelated learning source.");let i=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 i){let l=r.assets.find(p=>p.id===d.id);if(!l)throw new Error("Taskset learning Reward asset is missing.");K(l,d)}if(r.assets.some(d=>!i.some(l=>l.id===d.id)))throw new Error("Taskset package includes an unrelated learning asset.");let s=vn({batch:r.batch,definition:n.definition,binding:n.binding,rewards:n.rewards,evidence:r.evidence,decisions:r.decisions}),o=ie(s);if(f(o)!==f(n))throw new Error("Taskset admission metadata differs from its reviewed snapshots.");let m=c(d=>({policy:d.policy,environment:d.environment,tools:d.tools}),"execution");if(f(m(s))!==f(m(t)))throw new Error("Taskset execution differs from its reviewed task definition.");let u=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(f(s.tasks.map(u))!==f(t.tasks.map(u)))throw new Error("Taskset rows differ from their reviewed evidence.");return r}c(Zn,"validateTasksetLearningResources");var De=64*1024*1024,lr=e.object({asset:X,base64:e.string().max(Math.ceil(De/3)*4)}).strict();function ve(t){let a=lr.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,i=>i.charCodeAt(0));if(n.byteLength!==a.asset.sizeBytes||G(n)!==a.asset.contentHash)throw new Error(`Taskset asset ${a.asset.id} differs from its immutable bytes.`);return n}c(ve,"decodeTasksetPackageFile");function We(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 m=a.get(o);if(!m)throw new Error(`Taskset environment asset is missing: ${o}.`);if(m.asset.sizeBytes>524288)throw new Error("Taskset environment source exceeds the authored asset limit.");let u=new TextDecoder("utf-8",{fatal:!0}).decode(ve(m));return xe.parse(M({schemaVersion:"openpond.learningTextAsset.v1",id:o,revision:1,asset:m.asset,text:u}))},"read"),n;if(t.modelResources){if(!t.modelResources.execution)throw new Error("Bound Taskset JavaScript execution resources are missing.");n=st.parse(t.modelResources.execution)}else{let o=r(Vt(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=st.parse(JSON.parse(o.text))}let s=[...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 or(n,t.taskset,s),{execution:n,assets:s}}c(We,"resolveTasksetPackageExecution");function ya(t){let a=vo(t),r=new TextEncoder().encode(a.text),n="";for(let i of r)n+=String.fromCharCode(i);return{asset:a.asset,base64:btoa(n)}}c(ya,"createTasksetPackageExecutionFile");function ur(t){return`model-authored-taskset-${f({owner:t.owner,root:t.root})}`}c(ur,"modelAuthoredTasksetId");function pr(t){if(t.metadata.modelTasksetAuthoring===void 0)return null;let a=fa.parse(t.metadata.modelTasksetAuthoring);if(t.id!==ur(a)||(t.revision===1?!U(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(pr,"assertModelTasksetAuthoring");var So=Yn.omit({taskset:!0,executionResources:!0}),fr=e.object({schemaVersion:e.literal("openpond.tasksetPackage.v1"),taskset:de,environment:Ne,verifierSet:Ue,files:e.array(lr).max(1e4),modelResources:So.optional(),learningResources:mr.optional()}).strict(),ot=fr.extend({contentHash:e.string().regex(/^[a-f0-9]{64}$/)}).strict();function hr(t){return t.learningResources?ie(t.taskset).binding:t.modelResources?.rewardBinding??null}c(hr,"tasksetPackageRewardBinding");function ct(t){return t.learningResources?ie(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(ct,"resolveTasksetPackageInstructions");function W(t){ge(t,De);let a=ot.parse(t),{contentHash:r,...n}=a;if(f(n)!==r)throw new Error("Taskset package content hash differs from its bytes.");let{taskset:i,environment:s,verifierSet:o}=a;if(ra(i),pr(i)&&(a.modelResources||a.learningResources))throw new Error("Taskset package cannot declare competing authoring graphs.");if(!Ge(s)||!Je(o)||!St(i.environmentRelease,{id:s.id,contentHash:s.contentHash})||!St(i.verifierSetRelease,{id:o.id,contentHash:o.contentHash})||!St(i.environment,s.contract)||!St(i.graders,o.graders))throw new Error("Taskset package execution releases do not match its Taskset.");let u=new Map;for(let l of a.files){if(u.has(l.asset.id))throw new Error(`Duplicate Taskset asset identity: ${l.asset.id}.`);ve(l),u.set(l.asset.id,l)}function d(l){let p=u.get(l.id);if(!p||!St(p.asset,l))throw new Error(`Taskset package asset is missing or mismatched: ${l.id}.`)}c(d,"requireAsset");for(let l of i.tasks){for(let p of l.artifactRefs)d(p);for(let p of l.requiredOutputs??[])p.schemaRef&&d(p.schemaRef);if(l.privilegedContextRef&&u.get(l.privilegedContextRef)?.asset.visibility!=="host_private")throw new Error(`Taskset package private context is missing: ${l.id}.`)}for(let l of[s.actionSchemaRef,s.observationSchemaRef,s.stateSchemaRef])l&&d(l);for(let l of i.graders){let p="verifierRef"in l?l.verifierRef:"rubricRef"in l?l.rubricRef:null;if(p&&(d(p),p.visibility==="policy"))throw new Error(`Taskset grader asset must be private: ${p.id}.`)}if(i.metrics?.customAggregator){let l=i.metrics.customAggregator,p=a.files.filter(h=>h.asset.path===l.module);if(p.length!==1||p[0].asset.contentHash!==l.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 l of[i.metadata.environmentResources,s.metadata.resources])if(l!==void 0){for(let p of e.array(e.object({path:e.string().min(1)}).passthrough()).parse(l))if(!a.files.some(h=>h.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 l=Zn(i,a.learningResources);for(let p of Qn(l))if(!St(u.get(p.asset.id),p))throw new Error("Taskset private context differs from its reviewed evidence.");for(let p of l.assets)d(p.asset)}else if(a.modelResources){let l=dr({...a.modelResources,taskset:i,executionResources:{environment:s,verifierSet:o}});for(let p of l.assets)d(p.asset)}else if(["starter","rewardBinding","rewardExecution","modelTasksetDerivation","learning"].some(l=>i.metadata[l]!==void 0))throw new Error("Bound Taskset publication requires its complete model resources.");return We(a),ct(a),a}c(W,"validateTasksetPackage");function yt(t){ge(t,De);let a=fr.parse(t);return W({...a,contentHash:f(a)})}c(yt,"createTasksetPackage");function St(t,a){return f({value:t})===f({value:a})}c(St,"same2");var wa=Re.shape.id,gr=e.object({schemaVersion:e.literal("openpond.modelBatchReviewInspection.v1"),packageHash:e.string().regex(/^[a-f0-9]{64}$/),definition:re,binding:Ee,evidence:e.array(rt).min(1).max(1e4),decisions:e.array(ca).min(1).max(1e4)}).strict(),Ra=e.object({schemaVersion:e.literal("openpond.modelBatchReviewRequest.v1"),operationId:wa,modelId:wa,expectedModelRevision:e.number().int().positive(),tasksetRef:Re,rewardBindingRef:Re.nullable(),definition:e.object({name:e.string().trim().min(1).max(500).optional(),instructions:e.string().trim().min(1).max(2e4).optional(),inputSchema:at.optional(),outputSchema:at.optional(),requiredOutputs:re.shape.requiredOutputs}).strict(),examples:e.array(e.object({evidence:Re,input:at.optional(),expected:at.nullable().optional(),evaluatorContext:at.nullable().optional(),proposedTarget:at.nullable().optional()}).strict()).max(1e4)}).strict(),vr=e.object({schemaVersion:e.literal("openpond.modelBatchReviewReceipt.v1"),operationId:wa,modelId:wa,source:Le,evidence:e.array(rt).min(1).max(1e4),proposals:e.array(oa).max(1e4)}).strict();var yp=Ms($s(),1);var $u=e.object({provider:b,model:b,revision:e.string().trim().min(1).max(500).nullable().default(null),artifactHash:x.nullable().default(null),tokenizerRevision:e.string().trim().min(1).max(500).nullable().default(null),chatTemplateHash:x.nullable().default(null)}).strict(),yo=["openpond","codex","anthropic","openai","xai","google","openrouter","deepseek","zai","moonshot","together","groq","custom-openai-compatible"],wo=e.enum(yo),kr=e.object({providerId:wo,modelId:e.string().trim().min(1).max(300)}),Ta=e.object({name:e.string().trim().min(1).max(64).regex(/^[a-zA-Z][a-zA-Z0-9_-]*$/),description:e.string().trim().min(1).max(2e3),inputSchema:e.record(e.string(),e.unknown()),inputSchemaHash:x,sideEffect:e.enum(["read","write"]),timeoutMs:e.number().int().positive().max(36e5)}).strict(),Sr=e.object({id:b,required:e.boolean(),scopes:e.array(e.string().trim().min(1).max(500)).max(100).default([]),portability:e.enum(["portable","host_adapter","local_only","hosted_only"])}).strict(),Ro=e.object({portable:e.boolean(),blockers:e.array(e.string().trim().min(1).max(2e3)).max(1e3),localOnlyAssetRefs:e.array(b).max(1e4),hostPrivateAssetRefs:e.array(b).max(1e4)}).strict(),ai=e.object({schemaVersion:e.literal("openpond.agentSnapshot.v2"),id:b,sourceRelease:S.nullable(),instructions:e.array(X).max(1e4),skills:e.array(X).max(1e4),agents:e.array(X).max(1e4),toolDeclarations:e.array(Ta).max(200),capabilityRequirements:e.array(Sr).max(200),dependencyLock:X,portability:Ro,metadata:Bt}).strict(),ri=ai.extend({contentHash:x}).strict(),xo=e.object({create:e.literal(!0),reset:e.literal(!0),step:e.literal(!0),collect:e.literal(!0),destroy:e.literal(!0),resetScope:e.enum(["task","attempt"])}).strict(),To=e.object({visibleEvidence:e.array(b).max(1e3),privilegedEvidence:e.array(b).max(1e3),privateVerifierIsolation:e.boolean()}).strict(),ni=e.object({schemaVersion:e.literal("openpond.harnessRelease.v2"),id:b,agentSnapshot:S,program:X,tools:e.array(Ta).max(200),lifecycle:xo,graderInterface:To,files:e.array(X).max(1e5),metadata:Bt}).strict(),ii=ni.extend({contentHash:x}).strict(),Io=e.object({id:b,turn:e.number().int().nonnegative(),kind:e.enum(["message","tool_call","terminal"]),name:b.nullable(),arguments:e.record(e.string(),e.unknown()),content:e.string().max(1e6).nullable()}).strict(),Ho=e.object({actionId:b,turn:e.number().int().nonnegative(),terminal:e.boolean(),output:e.record(e.string(),e.unknown()),artifactRefs:e.array(Ln).max(1e5)}).strict();function Bu(t){let a=ai.parse(t);return ri.parse({...a,contentHash:f(a)})}c(Bu,"createAgentSnapshot");function Vu(t){let a=ni.parse(t);return ii.parse({...a,contentHash:f(a)})}c(Vu,"createHarnessRelease");var _o=e.object({sequence:e.number().int().nonnegative(),type:e.enum(["created","reset","action","observation","terminal","failure","collected","destroyed"]),payloadHash:x,metadata:Bt}).strict(),zu=e.object({schemaVersion:e.literal("openpond.harnessTrace.v1"),manifest:S,taskId:b,seed:e.string().trim().min(1).max(500),events:e.array(_o).max(1e6),actions:e.array(Io).max(1e5),observations:e.array(Ho).max(1e5),terminal:e.boolean(),failureClass:va.nullable(),output:e.record(e.string(),e.unknown()),contentHash:x}).strict(),yr=25*1024*1024,jo=e.object({path:X.shape.path,base64:e.string().max(Math.ceil(yr/3)*4)}).strict(),si=e.object({schemaVersion:e.literal("openpond.harnessSourcePackage.v1"),agentSnapshot:ri,harnessRelease:ii,files:e.array(jo).max(1e4)}).strict(),Po=si.extend({contentHash:x}).strict(),Eo=si.extend({schemaVersion:e.literal("openpond.harnessPolicySourcePackage.v1"),contentHash:x}).strict(),Fu=e.object({schemaVersion:e.literal("openpond.harnessSourceSelection.v1"),mode:e.enum(["taskset_owned","selected_release"]),harnessRelease:S,sourcePackageHash:x.nullable()}).strict().superRefine((t,a)=>{t.mode==="selected_release"!=(t.sourcePackageHash!==null)&&a.addIssue({code:"custom",path:["sourcePackageHash"],message:"Only a selected release binds a source package."})});function Lu(t,a){let r=Eo.parse(t);He(r,"Harness policy source package"),He(r.agentSnapshot,"Harness policy source Agent snapshot"),He(r.harnessRelease,"Harness policy source release");let{agentSnapshot:n,harnessRelease:i}=r;if(a&&(a.id!==i.id||a.contentHash!==i.contentHash))throw new Error("Harness policy source package differs from the selected release.");if(i.agentSnapshot.id!==n.id||i.agentSnapshot.contentHash!==n.contentHash)throw new Error("Harness policy source release does not bind its Agent snapshot.");let s=new Map;for(let d of i.files){if(s.has(d.path))throw new Error("Harness policy source contains duplicate asset paths.");s.set(d.path,d)}for(let d of[i.program,n.dependencyLock,...n.instructions,...n.skills,...n.agents])if(f(s.get(d.path)??null)!==f(d))throw new Error(`Harness policy source dependency ${d.path} is absent or differs from its release inventory.`);for(let d of[i.program,n.dependencyLock,...n.instructions,...n.skills])if(d.visibility!=="policy")throw new Error(`Harness policy source dependency ${d.path} is private.`);let o=new Set(i.files.filter(d=>d.visibility==="policy").map(d=>d.path)),m=new Set,u=0;for(let d of r.files){if(m.has(d.path))throw new Error("Harness policy source contains duplicate files.");m.add(d.path);let l=s.get(d.path);if(!l||l.visibility!=="policy")throw new Error(`Harness policy source file ${d.path} is not policy-visible.`);let p=oi(d.base64);if(u+=p.byteLength,u>yr)throw new Error("Harness policy source exceeds its byte limit.");if(p.byteLength!==l.sizeBytes||G(p)!==l.contentHash)throw new Error(`Harness policy source file ${d.path} differs from its immutable bytes.`)}if(m.size!==o.size||[...o].some(d=>!m.has(d)))throw new Error("Harness policy source is missing released policy files.");return r}c(Lu,"validateHarnessPolicySourcePackage");function wr(t,a){let r=Po.parse(t);He(r,"Harness source package"),He(r.agentSnapshot,"Harness source Agent snapshot"),He(r.harnessRelease,"Harness source release");let{agentSnapshot:n,harnessRelease:i}=r;if(a&&(a.id!==i.id||a.contentHash!==i.contentHash))throw new Error("Harness source package differs from the selected release.");if(i.agentSnapshot.id!==n.id||i.agentSnapshot.contentHash!==n.contentHash)throw new Error("Harness source release does not bind its Agent snapshot.");let s=new Map,o=new Set;for(let d of i.files){if(d.path.includes("\\")||d.path.includes(":"))throw new Error("Harness source requires portable relative file paths.");if(s.has(d.path)||o.has(d.id))throw new Error("Harness source contains duplicate asset paths or identities.");s.set(d.path,d),o.add(d.id)}for(let d of[i.program,n.dependencyLock,...n.instructions,...n.skills,...n.agents])if(f(s.get(d.path)??null)!==f(d))throw new Error(`Harness source dependency ${d.path} is absent or differs from its release inventory.`);for(let d of[...n.instructions,...n.skills])if(d.visibility!=="policy")throw new Error(`Harness policy source ${d.path} is private.`);let m=new Set,u=0;for(let d of r.files){if(m.has(d.path))throw new Error("Harness source package contains duplicate files.");m.add(d.path);let l=s.get(d.path);if(!l)throw new Error(`Harness source file ${d.path} is not declared by its release.`);let p=oi(d.base64);if(u+=p.byteLength,u>yr)throw new Error("Harness source package exceeds its byte limit.");if(p.byteLength!==l.sizeBytes||G(p)!==l.contentHash)throw new Error(`Harness source file ${d.path} differs from its immutable bytes.`)}if(m.size!==s.size)throw new Error("Harness source package is missing released files.");return r}c(wr,"validateHarnessSourcePackage");function oi(t){let a;try{a=atob(t)}catch{throw new Error("Harness source file is not valid base64.")}if(btoa(a)!==t)throw new Error("Harness source file is not canonical base64.");return Uint8Array.from(a,r=>r.charCodeAt(0))}c(oi,"decode");var Oe=e.string().trim().min(1).max(1e5),Ao=e.enum(["no_action","harness_maintenance","runtime","product","taskset","model_improvement"]),Co=e.enum(["none","runtime_service","product_team","human_review","evaluation_system","training_system"]),ci=e.enum(["observation","trigger","route_decision","refiner_outcome","proposal","validation","apply_receipt","harness_advance","rollback","work_outcome","taskset","evaluation","training_qualification","model_candidate"]),Rr=e.object({kind:e.enum(["personal","team"]),id:b}).strict(),di=e.object({policy:S,state:e.enum(["authorized","revoked","deleted","expired"]),checkedAt:$}).strict(),Ft=e.object({evidence:S,kind:ci,sourceRef:b,sourcePolicy:di,occurrenceKey:x,occurredAt:$}).strict(),Mo=e.object({evidence:S,sourcePolicy:di.nullable(),reason:e.enum(["outside_scope","before_watermark","duplicate","resolved","revoked","deleted","expired","sensitive","unverified","budget"])}).strict(),ei=e.object({cursor:x,throughCreatedAt:$}).strict(),$o=e.object({fingerprint:x,recurrenceFamily:e.string().trim().min(1).max(1e3),statement:Oe,candidateDisposition:e.enum(["observe","confirm"]).optional(),independentOccurrences:e.number().int().positive().max(1e6),unresolvedOccurrences:e.number().int().positive().max(1e6)}).strict().refine(t=>t.unresolvedOccurrences<=t.independentOccurrences,"unresolved occurrences cannot exceed independent occurrences"),mi=e.enum(["harness","runtime","product","retrieval","tools","evaluation","model"]),qo=e.object({layer:mi,status:e.enum(["not_applicable","unresolved","resolved","blocked"]),reason:Oe,evidenceRefs:e.array(S).max(1e3)}).strict(),Do=e.object({schemaVersion:e.literal("openpond.harnessEvaluationReviewReceipt.v1"),id:b,ownerScope:Rr,workspaceRef:b,harnessRelease:S,previousWatermark:ei.nullable(),nextWatermark:ei,selectedEvidence:e.array(Ft).max(1e4),excludedEvidence:e.array(Mo).max(1e4),claim:$o.nullable(),classification:Ao,triage:e.array(qo).max(16),reason:Oe,nextAuthority:Co,maxEstimatedCostUsd:e.number().finite().nonnegative(),tasksetProposal:S.nullable(),evaluation:S.nullable(),trainingQualification:S.nullable(),policyVersion:b,createdAt:$,metadata:Bt}).strict().superRefine((t,a)=>{let r=t.selectedEvidence.map(n=>`${n.evidence.id}:${n.evidence.contentHash}`);new Set(r).size!==r.length&&a.addIssue({code:"custom",message:"selected review evidence must be unique",path:["selectedEvidence"]}),t.selectedEvidence.some(n=>n.sourcePolicy.state!=="authorized")&&a.addIssue({code:"custom",message:"selected review evidence must be authorized at review time",path:["selectedEvidence"]}),t.classification==="no_action"?(t.nextAuthority!=="none"&&a.addIssue({code:"custom",message:"no-action review receipts require no next authority",path:["nextAuthority"]}),(t.tasksetProposal||t.evaluation||t.trainingQualification)&&a.addIssue({code:"custom",message:"no-action review receipts cannot carry downstream refs"})):(!t.claim||t.selectedEvidence.length===0)&&a.addIssue({code:"custom",message:"actionable review receipts require a claim and selected evidence"}),t.classification==="runtime"&&t.nextAuthority!=="runtime_service"&&a.addIssue({code:"custom",message:"runtime classifications route to runtime-service authority",path:["nextAuthority"]}),t.classification==="product"&&t.nextAuthority!=="product_team"&&a.addIssue({code:"custom",message:"product classifications route to product-team authority",path:["nextAuthority"]}),t.classification==="taskset"&&t.nextAuthority!=="human_review"&&a.addIssue({code:"custom",message:"Taskset classifications require human review"}),t.classification==="model_improvement"&&(!t.evaluation||!t.trainingQualification||!["human_review","training_system"].includes(t.nextAuthority))&&a.addIssue({code:"custom",message:"model-improvement classifications require Evaluation and qualification refs plus explicit authority"})}),Uu=Do.extend({contentHash:x}).strict(),Gu=e.object({id:b,evidence:S,kind:ci,sourceRef:b,occurredAt:$,payload:e.record(e.string(),e.unknown())}).strict(),Oo=e.object({schemaVersion:e.literal("openpond.harnessEvaluationReviewModelDecision.v2"),decision:e.literal("no_action"),reason:Oe,ignoredEvidence:e.array(e.object({id:b,reason:e.string().trim().min(1).max(2e3)}).strict()).max(1e3)}).strict(),Bo=e.object({schemaVersion:e.literal("openpond.harnessEvaluationReviewModelDecision.v2"),decision:e.literal("review"),classification:e.enum(["harness_maintenance","runtime","product","taskset"]),selectedEvidenceIds:e.array(b).min(1).max(1e3),ignoredEvidence:e.array(e.object({id:b,reason:e.string().trim().min(1).max(2e3)}).strict()).max(1e3),recurrenceFamily:e.string().trim().min(1).max(1e3),statement:Oe,triageLayer:mi,expectedOutcome:Oe,counterevidence:e.string().trim().max(1e4),confidence:e.number().min(0).max(1),candidateDisposition:e.enum(["observe","confirm"]).nullable(),reason:Oe}).strict().superRefine((t,a)=>{t.classification==="harness_maintenance"!==(t.candidateDisposition!==null)&&a.addIssue({code:"custom",message:"Harness maintenance requires a candidate disposition; external routes require null",path:["candidateDisposition"]})}),Vo=e.object({schemaVersion:e.literal("openpond.harnessEvaluationReviewModelDecision.v2"),decision:e.literal("resolve_candidate"),candidateId:b,candidateFingerprint:x,selectedEvidenceIds:e.array(b).min(1).max(1e3),ignoredEvidence:e.array(e.object({id:b,reason:e.string().trim().min(1).max(2e3)}).strict()).max(1e3),confidence:e.number().min(0).max(1),reason:Oe}).strict(),Ju=e.discriminatedUnion("decision",[Oo,Bo,Vo]),Ku=e.object({schemaVersion:e.literal("openpond.harnessEvaluationReviewNavigationDecision.v1"),selectedEvidenceIds:e.array(b).min(1).max(50),reason:Oe}).strict(),Rt=e.record(e.string(),e.unknown()).default({}),pe=e.number().int().nonnegative(),Ia=e.string().trim().min(1).max(1e5),li=e.object({kind:e.enum(["personal","team"]),id:b}).strict(),zo=e.object({name:b,release:S.nullable(),revision:pe}).strict(),Xu=e.object({schemaVersion:e.literal("openpond.harnessWorkspace.v1"),id:b,ownerScope:li,name:e.string().trim().min(1).max(240),location:e.enum(["local","hosted"]),sourceRevision:e.string().trim().min(1).max(500),revision:pe,dirty:e.boolean(),currentChannel:zo,createdAt:$,updatedAt:$,metadata:Rt}).strict(),wt=e.enum(["runtime","memory","prompt","skill","agent","product","taskset","training"]),ui=e.enum(["text_instruction","memory","dependency_selection","executable_code","business_logic","financial_logic","permission","connected_app","publication","deployment","training","model_binding","team_or_global"]),pi=e.object({id:b,route:wt,operation:e.enum(["create","update","delete"]),target:e.string().trim().min(1).max(2e3),summary:e.string().trim().min(1).max(2e3),content:e.string().max(1e6).nullable(),contentHash:x.nullable(),effects:e.array(ui).min(1).max(20)}).strict().superRefine((t,a)=>{if(t.operation==="delete"){(t.content!==null||t.contentHash!==null)&&a.addIssue({code:"custom",message:"delete edits cannot include replacement content",path:["content"]});return}if(t.content===null||t.contentHash===null){a.addIssue({code:"custom",message:"create and update edits require content and contentHash",path:["content"]});return}let r=f(t.content);t.contentHash!==r&&a.addIssue({code:"custom",message:`edit contentHash is ${t.contentHash}; expected ${r}`,path:["contentHash"]})}),fi=e.object({workspaceId:b,revision:pe,sourceRevision:e.string().trim().min(1).max(500),channelRevision:pe}).strict(),Be=e.object({id:b,revision:pe,contentHash:x}).strict(),Qu=e.object({schemaVersion:e.literal("openpond.harnessTurnSnapshot.v1"),workspaceId:b,workspaceRevision:pe,sourceRevision:e.string().trim().min(1).max(500),channelName:b,channelRevision:pe,harnessRelease:S,toolCatalogHash:x.nullable().optional(),overlay:Be.nullable().optional().default(null)}).strict(),Fo=e.object({schemaVersion:e.literal("openpond.harnessRunOverlay.v1"),id:b,runId:b,baseHarnessRelease:S,workspace:fi,revision:pe,status:e.enum(["active","frozen","abandoned"]),edits:e.array(pi).max(1e3),createdAt:$,updatedAt:$,metadata:Rt}).strict(),Zu=Fo.extend({contentHash:x}).strict(),hi=e.object({kind:e.enum(["tool_event","recovery","validation","user_turn","work_output","work_receipt"]),id:b,contentHash:x.nullable()}).strict(),gi=e.object({id:b,kind:e.enum(["dependency","schema","package","file_render","skill","prompt","business_formula","targeted_evaluation","observed_recovery","memory","component_activation"]),description:Ia,required:e.boolean()}).strict(),Lo=e.object({schemaVersion:e.literal("openpond.harnessImprovementProposal.v1"),id:b,overlay:Be,baseHarnessRelease:S,expectedWorkspace:fi,requestedScope:e.enum(["personal","team","global"]),route:wt,risk:e.enum(["low","review","restricted"]),effects:e.array(ui).min(1).max(20),evidence:e.array(hi).min(1).max(1e3),edits:e.array(pi).min(1).max(1e3),validationPlan:e.array(gi).min(1).max(100),expectedOutcome:Ia,createdAt:$,metadata:Rt}).strict().superRefine((t,a)=>{let r=new Set(t.effects);for(let[n,i]of t.edits.entries()){i.route!==t.route&&a.addIssue({code:"custom",message:"every edit route must match the proposal route",path:["edits",n,"route"]});for(let s of i.effects)r.has(s)||a.addIssue({code:"custom",message:`edit effect ${s} is missing from proposal effects`,path:["edits",n,"effects"]})}new Set(t.validationPlan.map(n=>n.id)).size!==t.validationPlan.length&&a.addIssue({code:"custom",message:"validation plan ids must be unique",path:["validationPlan"]})}),ep=Lo.extend({contentHash:x}).strict(),No=e.object({schemaVersion:e.literal("openpond.harnessTargetedValidationReceipt.v1"),id:b,proposal:S,validationId:b,kind:gi.shape.kind,status:e.enum(["passed","failed","blocked","skipped"]),summary:Ia,evidenceRefs:e.array(hi).max(1e3),createdAt:$,metadata:Rt}).strict(),tp=No.extend({contentHash:x}).strict(),Uo=e.enum(["advanced","retained","conflict","rolled_back"]),Go=e.object({schemaVersion:e.literal("openpond.harnessAdvanceReceipt.v1"),id:b,workspaceId:b,ownerScope:li,proposal:S.nullable(),expectedWorkspaceRevision:pe,observedWorkspaceRevision:pe,previousChannelRevision:pe,nextChannelRevision:pe,previousRelease:S.nullable(),nextRelease:S.nullable(),validationReceipts:e.array(S).max(100),decision:Uo,reason:Ia,rollbackOf:S.nullable(),createdAt:$,metadata:Rt}).strict().superRefine((t,a)=>{let r=t.nextChannelRevision===t.previousChannelRevision+1;["advanced","rolled_back"].includes(t.decision)!==r&&a.addIssue({code:"custom",message:"only successful advancement or rollback increments the channel revision",path:["nextChannelRevision"]}),t.decision==="rolled_back"&&t.rollbackOf===null&&a.addIssue({code:"custom",message:"rollback receipts require rollbackOf",path:["rollbackOf"]}),t.decision!=="rolled_back"&&t.rollbackOf!==null&&a.addIssue({code:"custom",message:"rollbackOf is only valid for rollback receipts",path:["rollbackOf"]})}),ap=Go.extend({contentHash:x}).strict(),Jo=e.object({schemaVersion:e.literal("openpond.harnessOverlayMergeReceipt.v1"),id:b,workspaceId:b,baseHarnessRelease:S,leftOverlay:Be,rightOverlay:Be,decision:e.enum(["merged","conflict"]),mergedOverlay:Be.nullable(),conflictTargets:e.array(e.string().trim().min(1).max(2e3)).max(1e3),requiresRevalidation:e.literal(!0),createdAt:$,metadata:Rt}).strict().superRefine((t,a)=>{t.decision==="merged"!=(t.mergedOverlay!==null)&&a.addIssue({code:"custom",message:"merged decisions require a merged overlay; conflicts cannot provide one",path:["mergedOverlay"]}),t.decision==="conflict"!=t.conflictTargets.length>0&&a.addIssue({code:"custom",message:"conflict decisions require conflict targets and merged decisions cannot include them",path:["conflictTargets"]})}),rp=Jo.extend({contentHash:x}).strict(),Ha=e.string().trim().min(1).max(1e5),Lt=e.record(e.string(),e.unknown()).default({}),Ko=e.enum(["completed_tool_batch","before_model_step","turn_completed","turn_paused"]),vi=e.object({kind:Ko,eventSequence:e.number().int().nonnegative(),occurredAt:$}).strict(),bi=e.object({id:b,sequence:e.number().int().nonnegative().nullable(),contentHash:x}).strict(),Wo=e.enum(["tool_failure","retry","recovery","validation","user_turn","reusable_success","completion_detour"]),Yo=e.enum(["open","recovered","terminal"]),Xo=e.object({name:e.string().trim().min(1).max(500),invocationKey:x}).strict(),Qo=e.object({schemaVersion:e.literal("openpond.improvementObservation.v1"),id:b,runRef:b,turnId:b,harnessRelease:S,overlay:Be.nullable(),eventRefs:e.array(bi).min(1).max(100),kind:Wo,state:Yo,tool:Xo.nullable(),deterministicClass:e.string().trim().min(1).max(500).nullable(),summary:Ha,createdAt:$,metadata:Lt}).strict().superRefine((t,a)=>{new Set(t.eventRefs.map(r=>r.id)).size!==t.eventRefs.length&&a.addIssue({code:"custom",message:"observation event refs must be unique",path:["eventRefs"]}),["tool_failure","retry","recovery","completion_detour"].includes(t.kind)&&t.tool===null&&a.addIssue({code:"custom",message:`${t.kind} observations require a tool identity`,path:["tool"]})}),np=Qo.extend({contentHash:x}).strict(),Zo=e.object({schemaVersion:e.literal("openpond.refinementTriggerPolicy.v1"),maxEstimatedCostUsd:e.number().finite().nonnegative(),cooldownMs:e.number().int().nonnegative(),maxPendingPlans:e.number().int().min(1).max(100),maxEvidenceEvents:e.number().int().min(1).max(1e3),maxProposalEdits:e.number().int().min(1).max(1e3),maxProposalBytes:e.number().int().min(1).max(1e7)}).strict(),ec=e.enum(["no_action","route_deterministically","queue_refiner"]),tc=e.object({schemaVersion:e.literal("openpond.refinementTriggerDecision.v1"),id:b,runRef:b,turnId:b,harnessRelease:S,overlay:Be.nullable(),observations:e.array(S).max(100),decision:ec,deterministicRoute:wt.nullable(),suggestedRoutes:e.array(wt).max(8),reason:Ha,deduplicationKey:x,policy:Zo,estimatedMaxCostUsd:e.number().finite().nonnegative(),pendingPlanCount:e.number().int().nonnegative(),boundary:vi,cooldownUntil:$.nullable(),createdAt:$,metadata:Lt}).strict().superRefine((t,a)=>{t.estimatedMaxCostUsd>t.policy.maxEstimatedCostUsd&&a.addIssue({code:"custom",message:"estimated Refiner cost exceeds the trigger policy budget",path:["estimatedMaxCostUsd"]}),t.pendingPlanCount>t.policy.maxPendingPlans&&a.addIssue({code:"custom",message:"pending plan count exceeds the trigger policy limit",path:["pendingPlanCount"]}),t.observations.length>t.policy.maxEvidenceEvents&&a.addIssue({code:"custom",message:"trigger observations exceed the evidence budget",path:["observations"]}),t.decision==="route_deterministically"&&t.deterministicRoute===null&&a.addIssue({code:"custom",message:"deterministic decisions require a route",path:["deterministicRoute"]}),t.decision!=="route_deterministically"&&t.deterministicRoute!==null&&a.addIssue({code:"custom",message:"only deterministic decisions may declare a deterministic route",path:["deterministicRoute"]}),t.decision==="no_action"&&t.suggestedRoutes.length>0&&a.addIssue({code:"custom",message:"no-action decisions cannot suggest routes",path:["suggestedRoutes"]}),t.decision!=="no_action"&&t.observations.length===0&&a.addIssue({code:"custom",message:"actionable trigger decisions require observations",path:["observations"]})}),ip=tc.extend({contentHash:x}).strict(),ac=e.enum(["runtime_service","refiner_model","human_review","evaluation_system","training_system"]),rc=e.object({schemaVersion:e.literal("openpond.improvementRouteDecision.v1"),id:b,trigger:S,route:wt,authority:ac,automatic:e.boolean(),reason:Ha,createdAt:$,metadata:Lt}).strict().superRefine((t,a)=>{t.automatic&&["human_review","evaluation_system","training_system"].includes(t.authority)&&a.addIssue({code:"custom",message:`${t.authority} routes cannot be marked automatic`,path:["automatic"]}),t.route==="training"&&t.automatic&&t.authority!=="training_system"&&a.addIssue({code:"custom",message:"automatic training routes require training-system authority",path:["authority"]})}),sp=rc.extend({contentHash:x}).strict(),nc=e.object({schemaVersion:e.literal("openpond.harnessRefinerOutcome.v1"),id:b,trigger:S,decision:e.enum(["no_action","proposed"]),proposal:S.nullable(),reason:Ha,evidenceRefs:e.array(S).max(100),estimatedCostUsd:e.number().finite().nonnegative(),createdAt:$,metadata:Lt}).strict().superRefine((t,a)=>{t.decision==="proposed"!=(t.proposal!==null)&&a.addIssue({code:"custom",message:"proposed Refiner outcomes require a proposal; no-action outcomes cannot include one",path:["proposal"]})}),op=nc.extend({contentHash:x}).strict(),ic=e.enum(["applied","retained","declined","conflict","rolled_back"]),sc=e.object({schemaVersion:e.literal("openpond.improvementApplyReceipt.v1"),id:b,proposal:S,beforeOverlay:Be,afterOverlay:Be.nullable(),decision:ic,boundary:vi,validationRefs:e.array(S).max(100),outcomeEvidenceRefs:e.array(bi).max(1e3),rollbackOf:S.nullable(),createdAt:$,metadata:Lt}).strict().superRefine((t,a)=>{t.decision==="applied"!=(t.afterOverlay!==null)&&a.addIssue({code:"custom",message:"applied receipts require an after-overlay; other decisions cannot include one",path:["afterOverlay"]}),t.decision==="rolled_back"!=(t.rollbackOf!==null)&&a.addIssue({code:"custom",message:"only rollback receipts require rollbackOf",path:["rollbackOf"]})}),cp=sc.extend({contentHash:x}).strict(),oc=e.string().trim().min(1).max(2e3),xr=e.string().trim().min(1).max(1e5),cc=e.enum(["create","update","delete"]),dc=e.enum(["memory","prompt","skill","agent"]),mc=e.enum(["runtime","product","taskset","training"]),lc=e.enum(["no_action","routed","applied","retained","failed"]),uc=e.enum(["not_applicable","pending","passed","rejected","failed"]),pc=e.enum(["not_applicable","pending","passed","failed"]),fc=e.object({schemaVersion:e.literal("openpond.harnessRefinerActivityReceipt.v1"),id:b,runRef:b,turnId:b,result:lc,decision:e.enum(["no_action","route","propose"]).nullable(),route:wt.nullable(),operation:cc.nullable(),target:e.string().trim().min(1).max(2e3).nullable(),summary:oc,evidenceBasis:ba.nullable(),critiqueStatus:uc,validationStatus:pc,trigger:S,outcome:S.nullable(),proposal:S.nullable(),applyReceipt:S.nullable(),inputHarness:S,outputHarness:S.nullable(),createdAt:$}).strict().superRefine((t,a)=>{let r=t.result==="applied"||t.result==="retained";t.result==="no_action"?ti(a,t,{decision:"no_action",route:null,operation:null,target:null,evidenceBasis:null,proposal:null,applyReceipt:null,outputHarness:null,critiqueStatus:"not_applicable",validationStatus:"not_applicable"}):t.result==="routed"?((t.decision!=="route"||!mc.safeParse(t.route).success||t.operation!==null||t.target!==null||t.evidenceBasis===null||t.proposal!==null||t.applyReceipt!==null||t.outputHarness!==null)&&a.addIssue({code:"custom",message:"routed activity requires an external route and evidence basis without proposal state"}),ti(a,t,{critiqueStatus:"not_applicable",validationStatus:"not_applicable"})):r?((t.decision!=="propose"||!dc.safeParse(t.route).success||t.operation===null||t.target===null||t.evidenceBasis===null||t.proposal===null||t.applyReceipt===null)&&a.addIssue({code:"custom",message:"applied and retained activity requires complete proposal state"}),t.result==="applied"&&t.outputHarness===null&&a.addIssue({code:"custom",message:"applied activity requires the advanced Harness release",path:["outputHarness"]}),t.result==="applied"&&(t.critiqueStatus!=="passed"||t.validationStatus!=="passed")&&a.addIssue({code:"custom",message:"applied activity requires passed critique and validation"}),t.result==="retained"&&t.outputHarness!==null&&a.addIssue({code:"custom",message:"retained activity cannot report a new Harness release",path:["outputHarness"]})):(t.decision!==null||t.route!==null||t.operation!==null||t.target!==null||t.evidenceBasis!==null||t.outcome!==null||t.proposal!==null||t.applyReceipt!==null||t.outputHarness!==null)&&a.addIssue({code:"custom",message:"failed activity cannot claim a decision, route, proposal, or release transition"}),t.result!=="failed"&&t.outcome===null&&a.addIssue({code:"custom",message:"terminal Refiner decisions require an outcome reference",path:["outcome"]})}),mp=fc.extend({contentHash:x}).strict(),hc=e.enum(["unresolved","confirmed","resolved","rejected","expired"]),gc=e.object({kind:e.enum(["applied_change","later_success","manual_rejection","source_revoked","expired"]),reason:xr,evidenceRefs:e.array(S).max(1e3),resolvedAt:$}).strict(),vc=e.object({schemaVersion:e.literal("openpond.harnessRefinementCandidate.v1"),id:b,ownerScope:Rr,workspaceRef:b,fingerprint:x,recurrenceFamily:e.string().trim().min(1).max(1e3),statement:xr,status:hc,occurrences:e.array(Ft).max(1e3),counterevidence:e.array(Ft).max(1e3),sourceReviews:e.array(S).min(1).max(100),relatedHarnessReleases:e.array(S).max(100),firstSeenAt:$,lastSeenAt:$,lastReviewedAt:$,expiresAt:$,resolution:gc.nullable(),createdAt:$,updatedAt:$}).strict().superRefine((t,a)=>{dt(a,t.occurrences,"occurrences"),dt(a,t.counterevidence,"counterevidence"),dt(a,t.sourceReviews,"sourceReviews"),dt(a,t.relatedHarnessReleases,"relatedHarnessReleases");let r=new Set(t.occurrences.map(i=>i.occurrenceKey));t.counterevidence.some(i=>r.has(i.occurrenceKey))&&a.addIssue({code:"custom",message:"supporting occurrences and counterevidence must be disjoint",path:["counterevidence"]});let n=t.status==="unresolved"||t.status==="confirmed";n&&t.occurrences.length===0&&a.addIssue({code:"custom",message:"actionable candidates require at least one supporting occurrence",path:["occurrences"]}),n&&[...t.occurrences,...t.counterevidence].some(i=>i.sourcePolicy.state!=="authorized")&&a.addIssue({code:"custom",message:"actionable candidates may contain only currently authorized evidence",path:["occurrences"]}),n!==(t.resolution===null)&&a.addIssue({code:"custom",message:"only resolved, rejected, or expired candidates require a resolution",path:["resolution"]}),t.status==="expired"&&t.resolution?.kind!=="expired"&&a.addIssue({code:"custom",message:"expired candidates require an expired resolution",path:["resolution","kind"]}),t.status==="rejected"&&t.resolution&&!["manual_rejection","source_revoked"].includes(t.resolution.kind)&&a.addIssue({code:"custom",message:"rejected candidates require a rejection or revocation resolution",path:["resolution","kind"]}),t.status==="resolved"&&t.resolution&&!["applied_change","later_success"].includes(t.resolution.kind)&&a.addIssue({code:"custom",message:"resolved candidates require applied-change or later-success evidence",path:["resolution","kind"]}),wc(a,t)}),lp=vc.extend({contentHash:x}).strict(),bc=e.enum(["created","merged","rejected","expired","reopened","resolved"]),kc=e.object({schemaVersion:e.literal("openpond.harnessRefinementCandidateLifecycleReceipt.v1"),id:b,candidateId:b,decision:bc,beforeCandidate:S.nullable(),afterCandidate:S,review:S,addedEvidence:e.array(Ft).max(1e3),removedEvidence:e.array(S).max(1e3),reason:xr,createdAt:$}).strict().superRefine((t,a)=>{t.decision==="created"!=(t.beforeCandidate===null)&&a.addIssue({code:"custom",message:"only candidate creation omits the previous candidate reference",path:["beforeCandidate"]}),t.beforeCandidate&&t.beforeCandidate.contentHash===t.afterCandidate.contentHash&&a.addIssue({code:"custom",message:"candidate lifecycle transitions must change candidate content",path:["afterCandidate"]}),["created","reopened"].includes(t.decision)&&t.addedEvidence.length===0&&a.addIssue({code:"custom",message:`${t.decision} candidate transitions require added evidence`,path:["addedEvidence"]}),t.addedEvidence.some(n=>n.sourcePolicy.state!=="authorized")&&a.addIssue({code:"custom",message:"candidate transitions may add only authorized evidence",path:["addedEvidence"]}),dt(a,t.addedEvidence,"addedEvidence"),dt(a,t.removedEvidence,"removedEvidence");let r=new Set(t.removedEvidence.map(n=>br(n)));t.addedEvidence.some(n=>r.has(br(n.evidence)))&&a.addIssue({code:"custom",message:"candidate lifecycle evidence cannot be added and removed together",path:["removedEvidence"]})}),up=kc.extend({contentHash:x}).strict(),Sc=e.object({schemaVersion:e.literal("openpond.harnessCrossRunRefinementRequest.v1"),id:b,ownerScope:Rr,workspaceRef:b,candidate:S,candidateFingerprint:x,review:S,admittedHarness:S,evidence:e.array(Ft).min(1).max(1e3),capabilities:ka,deduplicationKey:x,createdAt:$}).strict().superRefine((t,a)=>{t.evidence.some(n=>n.sourcePolicy.state!=="authorized")&&a.addIssue({code:"custom",message:"cross-run refinement requires currently authorized evidence",path:["evidence"]}),dt(a,t.evidence,"evidence"),Object.values(t.capabilities).some(Boolean)||a.addIssue({code:"custom",message:"cross-run refinement requires at least one available Harness capability",path:["capabilities"]});let r=yc(t);t.deduplicationKey!==r&&a.addIssue({code:"custom",message:`cross-run refinement deduplicationKey is ${t.deduplicationKey}; expected ${r}`,path:["deduplicationKey"]})}),pp=Sc.extend({contentHash:x}).strict();function yc(t){return f({schemaVersion:"openpond.harnessCrossRunRefinementIdentity.v1",workspaceRef:t.workspaceRef,candidateFingerprint:t.candidateFingerprint,admittedHarness:t.admittedHarness})}c(yc,"harnessCrossRunRefinementDeduplicationKey");function ti(t,a,r){for(let[n,i]of Object.entries(r))a[n]!==i&&t.addIssue({code:"custom",message:`${n} must be ${String(i)}`,path:[n]})}c(ti,"requireFields");function dt(t,a,r){let n=a.map(i=>br(i));new Set(n).size!==n.length&&t.addIssue({code:"custom",message:`${r} references must be unique`,path:[r]})}c(dt,"requireUniqueRefs");function br(t){if(!t||typeof t!="object"||Array.isArray(t))return String(t);let a=t;if(typeof a.occurrenceKey=="string")return a.occurrenceKey;let r=a.evidence;if(r&&typeof r=="object"&&!Array.isArray(r)){let n=r;return`${String(n.id)}:${String(n.contentHash)}`}return`${String(a.id)}:${String(a.contentHash)}`}c(br,"refKey");function wc(t,a){let r=[["firstSeenAt",a.firstSeenAt],["lastSeenAt",a.lastSeenAt],["lastReviewedAt",a.lastReviewedAt],["updatedAt",a.updatedAt],["expiresAt",a.expiresAt]];for(let n=1;n<r.length;n+=1){let i=r[n-1],s=r[n];Date.parse(i[1])<=Date.parse(s[1])||t.addIssue({code:"custom",message:`${s[0]} must not precede ${i[0]}`,path:[s[0]]})}Date.parse(a.createdAt)>Date.parse(a.updatedAt)&&t.addIssue({code:"custom",message:"updatedAt must not precede createdAt",path:["updatedAt"]})}c(wc,"requireChronology");var hp=e.object({path:e.string().min(1).max(2e3),offset:e.number().int().nonnegative().default(0),length:e.number().int().positive().max(65536).default(16384)}).strict(),ki=e.string().regex(/^[a-z][a-z0-9_-]{0,119}$/),Si=e.string().min(1).max(2e3).refine(t=>!t.includes("\\")&&!t.includes(":")&&!t.startsWith("/")&&t.split("/").every(a=>a!==""&&a!=="."&&a!==".."),"workflow references require portable relative paths"),Rc=e.object({id:ki,label:e.string().trim().min(1).max(240),description:e.string().max(4e3),inputSchema:e.record(e.string(),e.unknown()),invocation:e.discriminatedUnion("kind",[e.object({kind:e.literal("instructions"),instructions:e.string().min(1).max(1e5).refine(t=>!!t.trim())}).strict(),e.object({kind:e.literal("agent_action"),actionId:e.string().trim().min(1).max(240)}).strict()]),skillPaths:e.array(Si).max(100)}).strict(),vp=e.object({schemaVersion:e.literal("openpond.profileWorkflows.v1"),workflows:e.array(Rc).max(1e3)}).strict(),xc=e.object({id:e.string().trim().min(1).max(240),agentId:e.string().regex(/^[a-zA-Z0-9_-]{1,240}$/),sourceActionId:e.string().trim().min(1).max(240),inputSchema:e.record(e.string(),e.unknown())}).strict(),bp=e.object({schemaVersion:e.literal("openpond.profileWorkflowActions.v1"),actions:e.array(xc).max(200)}).strict(),kp=e.object({schemaVersion:e.literal("openpond.profileWorkflowBinding.v1"),profileId:e.string().trim().min(1).max(240),sourceRevision:e.string().trim().min(1).max(240),harnessRelease:S,catalogHash:x,workflowId:ki}).strict(),Sp=e.object({schemaVersion:e.literal("openpond.profileComponentBinding.v1"),profileId:e.string().trim().min(1).max(240),sourceRevision:e.string().trim().min(1).max(240),harnessRelease:S,target:e.discriminatedUnion("kind",[e.object({kind:e.literal("profile")}).strict(),e.object({kind:e.literal("skill"),skillPath:Si}).strict(),e.object({kind:e.literal("agent_action"),actionId:e.string().trim().min(1).max(240)}).strict()])}).strict(),xa=e.string().min(1).max(2e3).refine(t=>!t.includes("\\")&&!t.includes(":")&&!t.startsWith("/")&&t.split("/").every(a=>a!==""&&a!=="."&&a!==".."),"source paths must be portable relative paths"),xp=e.string().regex(/^[a-z][a-z0-9_-]{0,119}$/),Tc={type:"object",properties:{},additionalProperties:!1},Tp=e.object({name:e.string().trim().min(1).max(240).optional(),description:e.string().max(4e3).optional(),skillPaths:e.array(xa).max(100).optional(),assetPaths:e.array(xa).max(100).optional()}).strict(),Ip=e.object({actionId:e.string().trim().min(1).max(240),name:e.string().trim().min(1).max(240),description:e.string().max(4e3).default(""),inputSchema:e.record(e.string(),e.unknown()).default(Tc),skillPaths:e.array(xa).max(100).default([]),assetPaths:e.array(xa).max(100).default([])}).strict();var Ic=e.object({schemaVersion:e.literal("openpond.connectedDatasetSource.v1"),kind:e.literal("connected_activity"),id:e.string().min(1).max(240),profileId:e.string().min(1).max(240),title:e.string().min(1).max(500),sourceHash:e.string().regex(/^[a-f0-9]{64}$/),occurredAt:e.string().datetime(),licensingStatus:e.enum(["pending","approved","review","blocked"]),secretScanStatus:e.enum(["pending","passed","blocked"]),piiScanStatus:e.enum(["pending","passed","review","blocked"]),origin:jn,sourceId:e.string().min(1).max(500),sessionId:e.string().min(1).max(500),normalizerVersion:e.string().min(1).max(200),projection:e.enum(["turn","conversation"]),ownerUserId:e.string().min(1).max(500),purpose:e.literal("recorded_evaluation"),metadata:e.record(e.string(),e.unknown()).default({})}).strict(),fe=e.string().trim().min(1).max(240),Ve=e.string().trim().min(1),Ye=e.string().trim().min(8).max(256),wi=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."),mt=e.enum(["train","validation","test","frozen_eval"]),Hc=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"])}),_c=e.object({schemaVersion:e.literal("openpond.datasetSemanticSchema.v1"),fields:e.array(Hc).min(1).max(1e4),schemaHash:Ye}),jc=e.object({id:fe,split:mt,path:wi,contentHash:Ye,schemaHash:Ye,sizeBytes:e.number().int().nonnegative(),rowCount:e.number().int().positive(),rowGroupCount:e.number().int().positive()}),Pa=e.object({schemaVersion:e.literal("openpond.datasetArtifact.v1"),id:fe,tasksetId:fe,tasksetRevision:e.number().int().positive(),contentHash:Ye,format:e.literal("parquet"),schema:_c,shards:e.array(jc).min(1).max(1e5),rowCount:e.number().int().positive(),splitCounts:e.record(mt,e.number().int().nonnegative()),sourceReceiptRefs:e.array(fe).min(1).max(1e5),mappingHash:Ye,qualityReportHash:Ye,createdAt:Ve}),Mp=e.object({schemaVersion:e.literal("openpond.datasetArtifactSummary.v1"),artifactId:fe,tasksetId:fe,tasksetRevision:e.number().int().positive(),format:e.literal("parquet"),rowCount:e.number().int().positive(),splitCounts:e.record(mt,e.number().int().nonnegative()),sizeBytes:e.number().int().nonnegative(),contentHash:Ye,available:e.boolean(),unavailableReason:e.string().trim().min(1).max(2e3).nullable(),createdAt:Ve}),Pc=e.object({schemaVersion:e.literal("openpond.datasetCatalogItem.v1"),tasksetId:fe,tasksetRevision:e.number().int().positive(),artifactId:fe.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(mt,e.number().int().nonnegative()),sizeBytes:e.number().int().nonnegative().nullable(),available:e.boolean(),unavailableReason:e.string().trim().min(1).max(2e3).nullable(),createdAt:Ve,updatedAt:Ve}),$p=e.object({schemaVersion:e.literal("openpond.datasetCatalog.v1"),profileId:fe,datasets:e.array(Pc),generatedAt:Ve}),qp=e.object({schemaVersion:e.literal("openpond.datasetArtifactRegistry.v1"),manifest:Pa,profileId:fe,storageRoot:e.string().trim().min(1).max(4e3),relativeManifestPath:wi,available:e.boolean(),unavailableReason:e.string().trim().min(1).max(2e3).nullable(),verifiedAt:Ve.nullable(),createdAt:Ve,updatedAt:Ve}),Dp=e.object({split:mt.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([])}),Op=e.object({schemaVersion:e.literal("openpond.datasetRowPage.v1"),tasksetId:fe,tasksetRevision:e.number().int().positive(),artifactHash:Ye,split:mt.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()}),Ec=e.object({schemaVersion:e.literal("openpond.datasetStorageSettings.v1"),datasetStorePath:e.string().trim().min(1).max(4e3),updatedAt:Ve}),Ac=e.object({id:fe,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()}),Bp=e.object({schemaVersion:e.literal("openpond.datasetStorageState.v1"),settings:Ec,storageRoots:e.array(Ac)}),Vp=e.object({datasetStorePath:e.string().trim().min(1).max(4e3)}),xt=e.string().trim().min(1).max(240),Cc=e.string().trim().min(1),Tt=e.string().trim().min(8).max(256),Mc=e.record(e.string(),e.unknown()).default({}),$c=e.string().trim().min(7).max(256),qc=e.enum(["pending","approved","review","blocked"]),Ea=e.object({id:xt,profileId:xt,title:e.string().trim().min(1).max(500),sourceHash:Tt,occurredAt:Cc,licensingStatus:qc,secretScanStatus:e.enum(["pending","passed","blocked"]),piiScanStatus:e.enum(["pending","passed","review","blocked"]),metadata:Mc}),Dc=Ea.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:$c,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(Tt).min(1).max(1e5)}),Oc=Ea.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(Tt).min(1).max(1e3),totalBytes:e.number().int().nonnegative(),parserVersion:e.string().trim().min(1).max(200)}),Bc=Ea.extend({schemaVersion:e.literal("openpond.generatedDatasetSource.v1"),kind:e.literal("generated"),generatorId:xt,generatorVersion:e.string().trim().min(1).max(200),seed:e.number().int(),generatorHash:Tt}),Vc=Ea.extend({schemaVersion:e.literal("openpond.learningBatchDatasetSource.v1"),kind:e.literal("learning_batch"),batch:e.object({id:xt,revision:e.number().int().positive(),contentHash:Tt}).strict(),taskDefinition:e.object({id:xt,revision:e.number().int().positive(),contentHash:Tt}).strict(),admittedBy:xt}),zc=e.discriminatedUnion("kind",[Dc,Oc,Bc,Vc]),Fc=e.object({schemaVersion:e.literal("openpond.harnessActionBinding.v1"),actionId:b,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:x,agentRelease:S,implementationHash:x,runtimeBindingId:b,capabilityReceiptHash:x,sideEffect:e.enum(["read","write"]),studentVisible:e.boolean(),timeoutMs:e.number().int().positive().max(36e5),episodeArgumentBindings:e.array(e.object({argument:b,source:e.literal("case_id")}).strict()).max(20).default([])}).strict(),q=e.string().trim().min(1).max(240),Tr=e.string().trim().min(1),Lc=e.string().trim().min(8).max(256),Ir=e.string().trim().regex(/^[a-f0-9]{64}$/),Nc=e.string().trim().regex(/^[A-Za-z_$][A-Za-z0-9_$]*$/),be=e.record(e.string(),e.unknown()).default({}),Aa=q.nullable();function Ut(t){let a=t.trim().replaceAll("\\","/");return!a||a.startsWith("/")||a==="."||a===".."?!1:!a.split("/").some(r=>!r||r==="."||r==="..")}c(Ut,"safeRelativeFilePath");function Uc(t){let a=t.trim();return a.length>0&&a!=="."&&a!==".."&&!a.includes("/")&&!a.includes("\\")&&!a.includes("\0")}c(Uc,"safeFileName");var _a=mt,Hr=e.enum(["general","benchmark"]),_r=e.object({schemaVersion:e.literal("openpond.tasksetBenchmark.v1"),definitionId:q,releaseId:q,releaseHash:Ir,managedReleasePath:e.string().trim().min(1).max(1e3).refine(Ut,"Benchmark release paths must remain relative."),adaptationSplit:_a,evaluationSplit:_a,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:be}),jr=e.object({schemaVersion:e.literal("openpond.tasksetPreferenceComparisonBinding.v1"),releaseId:q,releaseHash:Ir,publishedAt:Tr,metadata:be}),Gc=e.object({status:e.enum(["pending","granted","denied","revoked"]),scope:e.enum(["metadata_only","selected_turns","full_session"]),grantedBy:Aa,grantedAt:Tr.nullable(),purpose:e.literal("task_authoring_and_evaluation")}),Jc=e.object({schemaVersion:e.literal("openpond.trainingSource.v1"),id:q,profileId:q,sessionId:q,turnIds:e.array(q).max(1e3).default([]),workspaceId:Aa,sourceHash:Lc,clusterKey:q,title:e.string().trim().min(1).max(500),occurredAt:Tr,consent:Gc,connectedAppIds:e.array(q).max(100).default([]),secretScanStatus:e.enum(["pending","passed","blocked"]),piiScanStatus:e.enum(["pending","passed","review","blocked"]),licensingStatus:e.enum(["pending","approved","review","blocked"]),metadata:be}),Gt=e.union([Jc,zc,Ic]),Pr=e.object({policyVisibleFields:e.array(q).max(1e3).default([]),privilegedFields:e.array(q).max(1e3).default([]),hiddenGraderRefs:e.array(q).max(100).default([]),connectedAppScopes:e.array(q).max(100).default([])}),Kc=e.object({id:q,sourceRefId:q,artifactRef:e.string().trim().min(1).max(4e3).refine(Ut,"Task asset references must be safe relative paths."),fileName:e.string().trim().min(1).max(500).refine(Uc,"Task asset file names must not contain path separators."),mediaType:e.string().trim().min(1).max(200),sha256:Ir,sizeBytes:e.number().int().nonnegative().max(25e7),split:_a,metadata:be}),Wc=e.object({path:e.string().trim().min(1).max(1e3).refine(Ut,"Required output paths must stay inside the Work output directory."),mediaType:e.string().trim().min(1).max(200),schemaRef:q.nullable().optional(),maxBytes:e.number().int().positive().max(1e7).optional(),metadata:be}),Ca=e.object({schemaVersion:e.literal("openpond.taskData.v1"),id:q,clusterKey:q,split:_a,input:e.record(e.string(),e.unknown()),expectedOutput:e.record(e.string(),e.unknown()).nullable(),policyVisibleContext:e.record(e.string(),e.unknown()).default({}),privilegedContextRef:Aa,sourceRefs:e.array(q).min(1).max(100),assets:e.array(Kc).max(1e3).optional(),resourceRefs:e.array(q).max(1e3).optional(),requiredOutputs:e.array(Wc).max(100).optional(),tags:e.array(q).max(100).default([]),metadata:be}),Er=e.object({id:q,kind:e.enum(["file","catalog","configuration","code_module"]),path:e.string().trim().min(1).max(1e3).refine(Ut,"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:be}),It=e.object({id:q,taskId:Aa,sourceRefs:e.array(q).min(1).max(100),artifactRef:q,approved:e.boolean(),confidence:e.number().min(0).max(1),metadata:be}),Ri=It.extend({kind:e.literal("demonstration"),prompt:e.string().max(1e5).nullable().default(null),response:e.string().max(2e5).nullable().default(null)}),xi=It.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)}),Ti=It.extend({kind:e.literal("correction"),original:e.string().max(2e5),corrected:e.string().max(2e5),rationale:e.string().max(1e5).nullable().default(null)}),Ii=It.extend({kind:e.literal("feedback"),feedback:e.string().max(1e5),polarity:e.enum(["positive","negative","mixed","neutral"])}),Hi=It.extend({kind:e.literal("reward"),task:e.string().max(1e5),rules:e.array(e.object({id:q,points:e.number().finite(),condition:e.string().trim().min(1).max(1e5)})).min(1).max(1e3),otherwisePoints:e.number().finite(),executable:e.boolean()}),_i=It.extend({kind:e.literal("label"),labelKind:e.literal("rubric"),task:e.string().max(1e5),criteria:e.array(e.object({id:q,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)})}),Gp=e.discriminatedUnion("kind",[Ri,xi,Ti,Ii,Hi,_i]),Ar=e.object({demonstrations:e.array(Ri).max(1e5).default([]),preferences:e.array(xi).max(1e5).default([]),corrections:e.array(Ti).max(1e5).default([]),feedback:e.array(Ii).max(1e5).default([]),rewards:e.array(Hi).max(1e5).default([]),labels:e.array(_i).max(1e5).default([])}),Cr=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(q).max(200).default([]),actionBindings:e.array(Fc).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(Er).max(1e4).optional(),metadata:be}),Mr=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([])}),Ma=e.object({id:q,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:be}),Yc=Ma.extend({kind:e.enum(["content","schema","file","diff","test","runtime_event","state"]),config:e.record(e.string(),e.unknown())}),Xc=Ma.extend({kind:e.literal("model_judge"),rubric:e.string().trim().min(1).max(5e4),judge:kr,calibrationFixtureRefs:e.array(q).min(1).max(500),calibrationStatus:e.enum(["pending","passed","failed"]),temperature:e.number().min(0).max(2).default(0)}),Qc=Ma.extend({kind:e.literal("human"),form:an.optional(),rubric:e.string().trim().min(1).max(5e4),reviewerRole:e.string().trim().min(1).max(500)}),Zc=Ma.extend({kind:e.literal("custom_verifier"),runtime:nn.optional(),module:e.string().trim().min(1).max(1e3).refine(Ut,"Custom verifier modules must use a safe relative path."),exportName:Nc,timeoutMs:e.number().int().positive().max(3e5),networkPolicy:e.literal("none")}),he=e.union([Yc,Xc,Qc,Zc]),ed=e.enum(["positive","negative","boundary","adversarial","prompt_injection","infrastructure_failure"]),Jt=e.object({id:q,taskId:q,label:ed,output:e.record(e.string(),e.unknown()),infrastructureError:e.string().trim().min(1).max(1e4).nullable(),expectedPassed:e.boolean(),expectedRewardEligible:e.boolean(),metadata:be}),_e=e.string().trim().min(1).max(240),Nt=e.string().trim().min(1),ja=e.string().trim().min(8).max(256),ji=e.record(e.string(),e.unknown()).default({}),td=_e.nullable(),ad=["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"],rd=e.enum(["draft","awaiting_disclosure_approval","awaiting_materialization_approval","materializing","validating","needs_review","baselining","ready","blocked","failed","archived"]),nd=e.enum(["demonstrations","preferences","verifiable_reward","rubric","discovery"]),ee=e.string().trim().max(1e5),id=e.discriminatedUnion("kind",[e.object({kind:e.literal("demonstrations"),behavior:ee,examples:e.array(e.object({id:_e,prompt:ee,response:ee})).max(1e3).default([])}),e.object({kind:e.literal("preferences"),preference:ee,pairs:e.array(e.object({id:_e,prompt:ee,chosen:ee,rejected:ee,rationale:ee})).max(1e3).default([])}),e.object({kind:e.literal("verifiable_reward"),task:ee,rules:e.array(e.object({id:_e,points:e.number().finite(),condition:ee})).max(1e3).default([]),otherwisePoints:e.number().finite().default(0)}),e.object({kind:e.literal("rubric"),task:ee,criteria:e.array(e.object({id:_e,label:e.string().trim().max(500),description:ee})).max(1e3).default([]),positiveExample:ee,negativeExample:ee,boundaryExample:ee})]),Wp=e.object({path:e.string().trim().min(1).max(1e3),role:e.enum(["environment","verifier","fixture"]),content:e.string().max(25e4)}),sd=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(_e).min(1).max(1e5),limitations:e.array(e.string().trim().min(1).max(5e3)).min(1).max(100)}).nullable()}),od=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"]),cd=e.object({method:e.enum(["sft","dpo","grpo","ppo"]),status:e.enum(["recommended","compatible","needs_dataset_work"]),reasonCodes:e.array(od).default([]),reasons:e.array(e.string().trim().min(1).max(5e3)).default([])}),yi=e.object({code:_e,message:e.string().trim().min(1).max(5e3),path:e.string().trim().max(2e3).nullable()}),dd=e.object({schemaVersion:e.literal("openpond.tasksetReadiness.v1"),tasksetId:_e,tasksetHash:ja,ready:e.boolean(),recommendedMethod:e.enum(["none","retrieval","sft","dpo","grpo","ppo","sdft","opd","opsd","sdpo"]),trainingPath:sd.nullable().default(null),methodReadiness:e.array(cd).default([]),compatibleDestinationClasses:e.array(e.enum(["export","custom","hosted_managed"])),blockers:e.array(yi).default([]),advisories:e.array(yi).default([]),warnings:e.array(e.string().trim().min(1).max(5e3)).default([]),generatedAt:Nt}),md=e.object({attempt:e.number().int().positive(),summary:e.string().trim().min(1).max(5e3),createdAt:Nt}),ld=e.object({schemaVersion:e.literal("openpond.taskAuthoringProvenance.v1"),model:kr.nullable(),modelConfig:ji,skillHash:ja,promptTemplateVersion:e.string().trim().min(1).max(200),buildIntent:nd.default("demonstrations"),buildSpecification:id.nullable().default(null),evidenceHashes:e.array(ja).max(1e5),tasksetSdkVersion:e.string().trim().min(1).max(100),sourceCommit:e.string().trim().min(1).max(256).nullable(),repairHistory:e.array(md).max(1e3),createdAt:Nt}),te=e.object({schemaVersion:e.literal("openpond.taskset.v1"),id:_e,revision:e.number().int().positive().default(1),profileId:_e,profileRelease:Fn.nullable().optional(),createImproveRunId:td.default(null),name:e.string().trim().min(1).max(500),objective:e.string().trim().max(2e4),purpose:Hr.default("general"),benchmark:_r.nullable().default(null),preferenceComparison:jr.nullable().default(null),status:rd,sourceRefs:e.array(Gt).min(1).max(1e5),datasetArtifact:Pa.nullable().optional(),policy:Pr,environment:Cr,capabilities:Mr,metrics:aa.optional(),tasks:e.array(Ca).max(1e6),graders:e.array(he).min(1).max(1e3),graderFixtures:e.array(Jt).max(1e5),learningSignals:Ar,authoringProvenance:ld,readiness:dd.nullable(),contentHash:ja,createdAt:Nt,updatedAt:Nt,metadata:ji}).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 ud(t){return t.schemaVersion==="openpond.trainingSource.v1"}c(ud,"isTrainingSourceRef");function Pi(t,a={}){let r=te.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,i=[];hd(n,i),fd(n,i),gd(n,i),bd(n,i),kd(n,i),pd(n,i,a),Sd(n,i),yd(n.capabilities,i,n),vd(n,i);let s=Ei(n);return n.contentHash!==s&&i.push({code:"content_hash_mismatch",severity:"error",message:`Taskset contentHash is ${n.contentHash}, expected ${s}.`,path:"contentHash"}),{valid:!i.some(o=>o.severity==="error"),taskset:n,computedHash:s,issues:i}}c(Pi,"validateTaskset");function pd(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(s=>s.id)),i=new Set(["positive","negative","boundary","adversarial","prompt_injection","infrastructure_failure"]);for(let s of t.graderFixtures)!t.datasetArtifact&&!n.has(s.taskId)&&a.push({code:"grader_fixture_task_missing",severity:"warning",message:`Fixture ${s.id} references a task outside this Taskset revision (${s.taskId}).`,path:`graderFixtures.${s.id}.taskId`}),i.delete(s.label),s.label==="infrastructure_failure"&&!s.infrastructureError&&a.push({code:"infrastructure_fixture_error_missing",severity:"error",message:`Infrastructure fixture ${s.id} must declare an infrastructure error.`,path:`graderFixtures.${s.id}.infrastructureError`});for(let s of i)a.push({code:"grader_fixture_missing",severity:"warning",message:`Taskset does not include the optional ${s} grader calibration fixture.`,path:"graderFixtures"})}c(pd,"validateGraderFixtures");function fd(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((u,d)=>u+d,0),i=r.shards.reduce((u,d)=>u+d.rowCount,0);(n!==r.rowCount||i!==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 s=new Map;for(let u of r.shards)s.set(u.split,(s.get(u.split)??0)+u.rowCount);for(let[u,d]of Object.entries(r.splitCounts))(s.get(u)??0)!==d&&a.push({code:"dataset_artifact_split_count_mismatch",severity:"error",message:`Dataset artifact ${u} shard counts do not match its manifest.`,path:`datasetArtifact.splitCounts.${u}`});let{contentHash:o,...m}=r;f(m)!==r.contentHash&&a.push({code:"dataset_artifact_hash_mismatch",severity:"error",message:"Dataset artifact manifest content hash is invalid.",path:"datasetArtifact.contentHash"})}c(fd,"validateDatasetArtifact");function lt(t){return Ei(t)}c(lt,"computeTasksetHash");function Ei(t){let{contentHash:a,status:r,readiness:n,updatedAt:i,...s}=t;return f(s)}c(Ei,"tasksetContentHash");function hd(t,a){for(let[r,n]of t.sourceRefs.entries())ud(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(hd,"validateSourceConsent");function gd(t,a){let r=new Map;for(let i of t.tasks){let s=r.get(i.clusterKey)??new Set;s.add(i.split),r.set(i.clusterKey,s)}for(let[i,s]of r)s.size>1&&a.push({code:"split_cluster_contamination",severity:"error",message:`Source cluster ${i} appears in multiple splits: ${[...s].join(", ")}.`,path:"tasks"});(t.datasetArtifact?t.datasetArtifact.splitCounts.frozen_eval??0:t.tasks.filter(i=>i.split==="frozen_eval").length)===0&&a.push({code:"frozen_eval_missing",severity:"warning",message:"Add an independent test example before training.",path:"tasks"})}c(gd,"validateSplitIsolation");function vd(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(ad),n=t.environment.toolNames.filter(s=>!r.has(s));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 s of["create","reset","step","grade","cleanup"])t.environment.lifecycle.includes(s)||a.push({code:"work_lifecycle_incomplete",severity:"error",message:`Work Tasksets require the ${s} lifecycle stage.`,path:"environment.lifecycle"});let i=new Map(t.sourceRefs.map(s=>[s.id,s]));for(let[s,o]of t.tasks.entries()){let m=new Set,u=new Set;for(let[l,p]of(o.assets??[]).entries()){let h=`tasks.${s}.assets.${l}`;m.has(p.id)&&a.push({code:"work_asset_duplicate_id",severity:"error",message:`Task ${o.id} repeats asset id ${p.id}.`,path:`${h}.id`}),u.has(p.fileName)&&a.push({code:"work_asset_duplicate_name",severity:"error",message:`Task ${o.id} repeats staged file name ${p.fileName}.`,path:`${h}.fileName`}),m.add(p.id),u.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:`${h}.sourceRefId`});let g=i.get(p.sourceRefId);g?"sourceFileHashes"in g&&!g.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:`${h}.sha256`}):a.push({code:"work_asset_source_missing",severity:"error",message:`Asset ${p.id} references missing source ${p.sourceRefId}.`,path:`${h}.sourceRefId`}),g&&"kind"in g&&g.kind==="uploaded_file"&&!g.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:`${h}.fileName`}),g&&"kind"in g&&g.kind==="uploaded_file"&&!g.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:`${h}.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:`${h}.split`})}let d=new Set;for(let[l,p]of(o.requiredOutputs??[]).entries()){let h=p.path.replaceAll("\\","/"),g=`tasks.${s}.requiredOutputs.${l}.path`;d.has(h)&&a.push({code:"work_output_duplicate_path",severity:"error",message:`Task ${o.id} repeats required output path ${h}.`,path:g}),d.add(h)}(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.${s}.requiredOutputs`})}}c(vd,"validateWorkExecution");function bd(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(bd,"validatePolicyBoundary");function kd(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(kd,"validateGraders");function Sd(t,a){let r=new Set(t.tasks.map(i=>i.id)),n=new Set(t.sourceRefs.map(i=>i.id));for(let i of[...t.learningSignals.demonstrations,...t.learningSignals.preferences,...t.learningSignals.corrections,...t.learningSignals.feedback,...t.learningSignals.rewards,...t.learningSignals.labels])i.taskId&&!t.datasetArtifact&&!r.has(i.taskId)&&a.push({code:"learning_signal_task_missing",severity:"error",message:`Signal ${i.id} references missing task ${i.taskId}.`,path:`learningSignals.${i.kind}.${i.id}.taskId`}),i.sourceRefs.some(s=>!n.has(s))&&a.push({code:"learning_signal_source_missing",severity:"error",message:`Signal ${i.id} references a source outside the Dataset.`,path:`learningSignals.${i.kind}.${i.id}.sourceRefs`});for(let i of t.learningSignals.preferences)i.chosen.trim()===i.rejected.trim()&&a.push({code:"preference_pair_identical",severity:"error",message:`Preference ${i.id} has identical chosen and rejected responses.`,path:`learningSignals.preferences.${i.id}`});for(let i of t.learningSignals.rewards)i.executable||a.push({code:"reward_not_executable",severity:"warning",message:`Reward ${i.id} is a reviewed specification but has no executable verifier yet.`,path:`learningSignals.rewards.${i.id}.executable`})}c(Sd,"validateLearningSignals");function yd(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(yd,"validateCapabilities");function Ai(t){let a=t.taskset.metadata.ordinaryAuthoring,r=e.record(e.string(),e.array(e.string().min(1)).max(1e5)).parse(a?.judgeCalibrationFixtures??{});return t.taskset.graders.map(n=>{let i={...n,label:n.id,metadata:{portableGrader:n}};if(n.kind==="custom_verifier")return he.parse({...i,module:Kt(n.verifierRef.contentHash),exportName:n.exportName??"verify",metadata:{...i.metadata,portableVerifierRef:n.verifierRef}});if(n.kind==="human"||n.kind==="model_judge"){let s=t.files.find(u=>u.asset.id===n.rubricRef.id);if(!s)throw new Error(`Imported rubric is missing: ${n.id}.`);let o=new TextDecoder("utf-8",{fatal:!0}).decode(ve(s)),m={...i.metadata,portableRubricRef:n.rubricRef};if(n.kind==="human")return he.parse({...i,rubric:o,metadata:m});if(!n.model)throw new Error(`Imported judge ${n.id} requires its declared model before local preparation.`);return he.parse({...i,rubric:o,metadata:m,judge:n.model,temperature:n.temperature??0,calibrationStatus:"pending",calibrationFixtureRefs:r[n.id]??[]})}return he.parse({...i,kind:n.kind==="artifact"?"file":n.kind,config:n.kind==="artifact"?{...n.config,...n.config.refIncludes===void 0?{}:{pathIncludes:n.config.refIncludes}}:n.config})})}c(Ai,"importedPackageGraders");function $a(t,a,r=[]){let n=sa(t,a);return le(t,a).map(i=>{let s=n.find(({source:m})=>m.graderId===i.id).reward,o={...i,label:s.name,metadata:{rewardBinding:R(t)}};if(i.kind==="model_judge"){if(!i.model||i.calibrationStatus!=="passed"||!s.calibrationCheckRef||!s.fixtureSetRef)throw new Error(`Reward ${i.id} needs a retained passing calibration check before preparation.`);let m=r.find(l=>l.id===i.rubricRef.id),u=r.find(l=>l.id===s.fixtureSetRef.id);if(!m||!u)throw new Error(`Reward ${i.id} is missing its immutable rubric or calibration fixtures.`);let d=bn.array().min(1).max(50).parse(JSON.parse(K(u,s.fixtureSetRef)));return he.parse({...o,rubric:K(m,i.rubricRef),judge:i.model,temperature:i.temperature??0,calibrationFixtureRefs:d.map(l=>l.id),metadata:{...o.metadata,portableRubricRef:i.rubricRef,calibrationEvidenceHash:s.calibrationCheckRef.contentHash,calibrationCheckRef:s.calibrationCheckRef}})}if(i.kind==="custom_verifier")return he.parse({...o,module:Kt(i.verifierRef.contentHash),exportName:i.exportName??"verify",metadata:{...o.metadata,portableVerifierRef:i.verifierRef}});if(i.kind==="human"){let m=r.find(u=>u.id===i.rubricRef.id);if(!m)throw new Error(`Reward ${i.id} is missing its immutable rubric.`);return he.parse({...o,rubric:K(m,i.rubricRef)})}return he.parse({...o,kind:i.kind==="artifact"?"file":i.kind})})}c($a,"projectLearningBatchGraders");function Kt(t){return`graders/reward-${t}.js`}c(Kt,"learningVerifierModule");var Ht=e.string().trim().min(1).max(240),Ci=e.string().trim().min(1),wd=e.string().trim().min(8).max(256),Rd=e.string().trim().regex(/^[A-Za-z_$][A-Za-z0-9_$]*$/),xd=e.record(e.string(),e.unknown()).default({});function Mi(t){let a=t.trim().replaceAll("\\","/");return!a||a.startsWith("/")||a==="."||a===".."?!1:!a.split("/").some(r=>!r||r==="."||r==="..")}c(Mi,"safeRelativeFilePath");var Td=Ca.extend({sourceRefs:e.array(Ht).max(100).default([])}),Id=e.enum(["draft","validating","needs_review","published"]),Hd=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:Ht,label:e.string().trim().min(1).max(500),description:e.string().trim().max(1e4),weight:e.number().nonnegative().max(1e3)})).max(100)}),_d=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(Mi,"Renderer modules must use a safe relative path."),exportName:Rd,configRef:e.string().trim().min(1).max(1e3).refine(Mi,"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"]})}),je=e.object({schemaVersion:e.literal("openpond.tasksetDraft.v1"),id:Ht,revision:e.number().int().positive(),profileId:Ht,modelScope:e.object({modelId:Ht,expectedModelRevision:e.number().int().positive(),source:Ae.optional()}).strict().nullable().default(null),name:e.string().trim().max(500),objective:e.string().trim().max(2e4),purpose:Hr.default("general"),benchmark:_r.nullable().default(null),preferenceComparison:jr.nullable().default(null),status:Id,sourceRefs:e.array(Gt).max(1e5).default([]),datasetArtifact:Pa.nullable().optional(),policy:Pr,environment:Cr,output:_d.default({mode:"text",jsonSchema:null,renderer:null}),capabilities:Mr,metrics:aa,review:Hd,tasks:e.array(Td).max(1e6).default([]),graders:e.array(he).max(1e3).default([]),graderFixtures:e.array(Jt).max(1e5).default([]),learningSignals:Ar,publishedTasksetRef:e.object({id:Ht,revision:e.number().int().positive(),contentHash:wd}).nullable(),createdAt:Ci,updatedAt:Ci,metadata:xd}).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"]})}),Di=6e6,Oi=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 $r(t){let a=se.parse(t);return!Oi.has(a)&&!a.startsWith("source-artifacts/")}c($r,"isWritableTasksetDraftFilePath");function _t(t){return Oi.has(se.parse(t))}c(_t,"isManagedTasksetDraftFilePath");function jd(t,a){let r=$r(t);if(a.byteLength>Di)throw new Error("Taskset draft file content is invalid or exceeds 6 MB.");let n;try{let i=new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0}).decode(a);n=/[\u0000-\u0008\u000e-\u001f]/.test(i)?$i(a):{encoding:"utf8",data:i}}catch{n=$i(a)}return{path:t,writable:r,content:n,sizeBytes:a.byteLength,contentHash:G(a)}}c(jd,"createTasksetDraftFile");function Pd(t){let a=Dt.parse(t),r;try{if(a.encoding==="utf8")r=new TextEncoder().encode(a.data);else{let n=atob(a.data);if(btoa(n)!==a.data)throw new Error("Noncanonical base64");r=Uint8Array.from(n,i=>i.charCodeAt(0))}}catch{throw new Error("Taskset draft file content is invalid or exceeds 6 MB.")}if(r.byteLength>Di)throw new Error("Taskset draft file content is invalid or exceeds 6 MB.");return r}c(Pd,"decodeTasksetDraftFileContent");function $i(t){let a="";for(let r=0;r<t.length;r+=8192)a+=String.fromCharCode(...t.subarray(r,r+8192));return{encoding:"base64",data:btoa(a)}}c($i,"base64Content");function Bi(t){let a=[];t.output.renderer&&a.push({relativePath:t.output.renderer.module,source:`export async function ${t.output.renderer.exportName}(output: unknown) {
4
+ // Return artifact paths or bytes derived from the model's structured output.
5
+ return output;
6
+ }
7
+ `});for(let r of t.graders)r.kind==="custom_verifier"&&a.push({relativePath:r.module,source:`export async function ${r.exportName}(input: { output: unknown; task: unknown }) {
8
+ return { passed: false, score: 0, feedback: "Implement this verifier." };
9
+ }
10
+ `});t.metrics.customAggregator&&a.push({relativePath:t.metrics.customAggregator.module,source:`export function ${t.metrics.customAggregator.exportName}(scores: number[]) {
11
+ return scores.length ? scores.reduce((sum, score) => sum + score, 0) / scores.length : 0;
12
+ }
13
+ `});for(let r of a)se.parse(r.relativePath);return a}c(Bi,"configuredTasksetDraftFiles");function qr(t){let a=je.parse(t);return new Map([["taskset.json",$e(a)],["tasks/tasks.jsonl",Ad(a.tasks)],["graders/graders.json",$e(a.graders)],["fixtures/grader-fixtures.json",$e(a.graderFixtures)],["metrics/policy.json",$e(a.metrics)],["assets/manifest.json",$e(a.tasks.flatMap(r=>r.assets??[]))],["environment/contract.json",$e(a.environment)],["rubrics/preference-review.md",Ed(a)],["comparisons/policy.json",$e(a.review)]])}c(qr,"renderTasksetDraftManifests");function Ed(t){let a=t.review.criteria.length?`
14
+
15
+ ## Criteria
16
+
17
+ ${t.review.criteria.map(r=>`- **${r.label}** (${r.weight}): ${r.description}`).join(`
18
+ `)}`:"";return`# Preference review rubric
19
+
20
+ ${t.review.rubric}${a}
21
+ `}c(Ed,"rubricMarkdown");function Ad(t){return t.length?`${t.map(a=>JSON.stringify(a)).join(`
22
+ `)}
23
+ `:""}c(Ad,"jsonLines");var qa=64*1024*1024,Vi=e.string().regex(/^[a-f0-9]{64}$/),zi=e.object({path:se,contentHash:Vi,sizeBytes:e.number().int().nonnegative().max(qa),base64:e.string().max(qa)}).strict(),Fi=e.object({schemaVersion:e.literal("openpond.tasksetDraftWorkspace.v1"),draft:je,files:e.array(zi).max(1e4)}).strict(),Cd=Fi.extend({contentHash:Vi}).strict();function Dr(t){ge(t,qa);let a=Fi.parse(t);return a.files.sort((r,n)=>r.path<n.path?-1:r.path>n.path?1:0),Wt({...a,contentHash:f(a)})}c(Dr,"createTasksetDraftWorkspace");function Wt(t){ge(t,qa);let a=Cd.parse(t),{contentHash:r,...n}=a;if(f(n)!==r)throw new Error("Taskset draft workspace differs from its retained bytes.");let i=null,s=new Set;for(let o of a.files){if(_t(o.path))throw new Error("Managed Taskset files are represented by the draft document.");if(i!==null&&i>=o.path)throw new Error("Taskset draft file paths must be unique and sorted.");let m=o.path.split("/");for(let u=1;u<m.length;u++)if(s.has(m.slice(0,u).join("/")))throw new Error("A Taskset draft file occupies another file's directory.");Da(o),s.add(o.path),i=o.path}return a}c(Wt,"validateTasksetDraftWorkspace");function pf(t,a){let r=Wt(t);se.parse(a);let n=r.files.find(o=>o.path===a),i=_t(a)?qr(r.draft).get(a):void 0;if(!n&&i===void 0)throw new Error("Taskset draft file does not exist.");let s=jd(a,n?Da(n):new TextEncoder().encode(i));return{draftRevision:r.draft.revision,file:{...s,writable:s.writable&&r.draft.status!=="published"}}}c(pf,"readTasksetDraftWorkspaceFile");function ff(t){let a=Wt(t),r=a.files.map(n=>({path:n.path,sizeBytes:n.sizeBytes,writable:a.draft.status!=="published"&&$r(n.path)}));for(let[n,i]of qr(a.draft))r.push({path:n,sizeBytes:new TextEncoder().encode(i).byteLength,writable:!1});return{draftRevision:a.draft.revision,files:r.sort((n,i)=>n.path<i.path?-1:n.path>i.path?1:0)}}c(ff,"listTasksetDraftWorkspaceFiles");function hf(t){let a=Li(t.workspace,t.expectedDraftRevision),r=je.parse(t.draft),n=a.draft;if(r.id!==n.id||r.profileId!==n.profileId||f(r.modelScope)!==f(n.modelScope))throw new Error("Taskset draft Model ownership cannot change.");if(r.revision!==n.revision||r.status!==n.status||r.createdAt!==n.createdAt||f(r.publishedTasksetRef)!==f(n.publishedTasksetRef))throw new Error("Taskset draft lifecycle fields cannot change through form edits.");let i=[...a.files];for(let m of Bi(r))if(!i.some(u=>u.path===m.relativePath)){let u=new TextEncoder().encode(m.source);i.push({path:m.relativePath,contentHash:G(u),sizeBytes:u.byteLength,base64:Ni(u)})}let s=r.metrics.customAggregator,o=s?i.find(m=>m.path===s.module):void 0;return Dr({schemaVersion:a.schemaVersion,files:i,draft:{...r,revision:n.revision+1,status:"draft",updatedAt:t.now,...s&&o?{metrics:{...r.metrics,customAggregator:{...s,contentHash:o.contentHash}}}:{}}})}c(hf,"saveTasksetDraftWorkspaceDocument");function gf(t){let a=Qa.parse(t.mutation),r=Li(t.workspace,a.expectedDraftRevision);if(r.draft.id!==a.draftId)throw new Error("Taskset draft file belongs to another draft.");if(!$r(a.path))throw new Error("This file is managed by the Taskset forms or retained source history.");let n=r.files.find(s=>s.path===a.path);if((n?.contentHash??null)!==a.expectedFileHash)throw new Error("Taskset draft file changed. Reload it before saving.");if(!n&&a.content===null)throw new Error("Taskset draft file does not exist.");let i=r.files.filter(s=>s.path!==a.path);if(a.content!==null){let s=Pd(a.content);i.push({path:a.path,contentHash:G(s),sizeBytes:s.byteLength,base64:Ni(s)})}return Dr({schemaVersion:r.schemaVersion,files:i,draft:{...r.draft,revision:r.draft.revision+1,status:"draft",updatedAt:t.now}})}c(gf,"saveTasksetDraftWorkspaceFile");function Li(t,a){let r=Wt(t);if(r.draft.status==="published")throw new Error("Published Taskset drafts are immutable.");if(r.draft.revision!==a)throw new Error("Taskset draft changed. Reload before saving.");return r}c(Li,"editableWorkspace");function Da(t){let a=zi.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,i=>i.charCodeAt(0));if(n.byteLength!==a.sizeBytes||G(n)!==a.contentHash)throw new Error("Taskset draft file differs from its retained bytes.");return n}c(Da,"decodeTasksetDraftWorkspaceFile");function Ni(t){let a="";for(let r=0;r<t.length;r+=8192)a+=String.fromCharCode(...t.subarray(r,r+8192));return btoa(a)}c(Ni,"base64");var qi=class extends Error{static{c(this,"TasksetDraftPublishError")}issues;constructor(t){super(t.map(a=>a.message).join(`
24
+ `)),this.name="TasksetDraftPublishError",this.issues=t}};function Ui(t){let a=t.now??new Date().toISOString(),r=t.id?.trim()||`taskset-draft-${globalThis.crypto.randomUUID()}`;return je.parse({schemaVersion:"openpond.tasksetDraft.v1",id:r,revision:1,profileId:t.profileId,modelScope:t.modelScope??null,name:t.name?.trim()??"",objective:"",purpose:"general",benchmark:null,preferenceComparison:null,status:"draft",sourceRefs:[],datasetArtifact:null,policy:{policyVisibleFields:["input"],privilegedFields:["expectedOutput"],hiddenGraderRefs:[],connectedAppScopes:[]},environment:{protocolVersion:"openpond.taskEnvironment.v1",kind:"chat",entrypoint:"openpond-chat-v1",stateful:!1,deterministicSeeds:!0,toolNames:[],lifecycle:["create","reset","step","grade","cleanup"],defaultTimeoutMs:12e4,networkPolicy:"none",resources:[],metadata:{}},output:{mode:"text",jsonSchema:null,renderer:null},capabilities:{schemaVersion:"openpond.tasksetCapabilities.v1",taskKind:"chat",supportedSignals:["demonstration","preference","correction","feedback","reward","label"],compatibleMethods:["none"],rewardKinds:["none"],requiresTools:!1,requiresState:!1,requiresPrivilegedGrading:!0,environmentPlacements:["local","remote","colocated"],exportable:!0,portabilityBlockers:[]},metrics:{schemaVersion:"openpond.tasksetMetricPolicy.v1",primaryMetric:"score",aggregation:"mean_score",missingReward:"zero",customAggregator:null},review:{enabled:!1,candidateCount:2,minimumSamples:100,allowTies:!0,allowRejectAll:!0,rubric:"",criteria:[]},tasks:[],graders:[],graderFixtures:[],learningSignals:{demonstrations:[],preferences:[],corrections:[],feedback:[],rewards:[],labels:[]},publishedTasksetRef:null,createdAt:a,updatedAt:a,metadata:{}})}c(Ui,"createTasksetDraft");function Md(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 i of n.sourceRefs)r.has(i)||a.push({code:"task_source_missing",message:`Task ${n.id} references missing source ${i}.`,path:`tasks.${n.id}.sourceRefs`});return a}c(Md,"draftPublishIssues");function vf(t,a=new Date().toISOString()){let r=te.parse(t);return je.parse({schemaVersion:"openpond.tasksetDraft.v1",id:`${r.id}-draft`,revision:1,profileId:r.profileId,name:r.name,objective:r.objective,purpose:r.purpose,benchmark:r.benchmark,preferenceComparison:r.preferenceComparison,status:"draft",sourceRefs:r.sourceRefs,datasetArtifact:r.datasetArtifact??null,policy:r.policy,environment:r.environment,output:Od(r.metadata),capabilities:r.capabilities,metrics:r.metrics??{schemaVersion:"openpond.tasksetMetricPolicy.v1",primaryMetric:"score",aggregation:"mean_score",missingReward:"zero",customAggregator:null},review:{enabled:!!r.preferenceComparison,candidateCount:2,minimumSamples:100,allowTies:!0,allowRejectAll:!0,rubric:"",criteria:[]},tasks:r.tasks,graders:r.graders,graderFixtures:r.graderFixtures,learningSignals:r.learningSignals,publishedTasksetRef:{id:r.id,revision:r.revision,contentHash:r.contentHash},createdAt:a,updatedAt:a,metadata:{...r.metadata,importedFromTaskset:{id:r.id,revision:r.revision,contentHash:r.contentHash}}})}c(vf,"tasksetDraftFromTaskset");function $d(t){let a=je.parse(t.draft),r=t.now??new Date().toISOString(),n=Md(a);if(n.length)throw new qi(n);let i=a.modelScope?.source;if(i&&t.tasksetId&&t.tasksetId!==i.tasksetId)throw new Error("Taskset draft publication differs from its prepared identity.");let s=i?.tasksetId||t.tasksetId?.trim()||a.publishedTasksetRef?.id||a.id.replace(/-draft$/,""),o=i?.tasksetRevision??(a.publishedTasksetRef?.id===s?a.publishedTasksetRef.revision+1:1),m=a.sourceRefs.length?a.sourceRefs:[qd(a,s,r)],u=m[0].id,d=a.tasks.map(T=>Ca.parse({...T,sourceRefs:T.sourceRefs.length?T.sourceRefs:[u],metadata:{exampleOrigin:"expert_authored",...T.metadata}})),l=a.capabilities.compatibleMethods.find(T=>T!=="none"&&T!=="retrieval")??null,p=Dd(a),h=a.graders.filter(T=>T.rewardEligible&&T.weight>0&&T.kind!=="human"),g=l===null&&p==="verifiable_reward"&&h.length>0,v=l??(g?"grpo":null),w=te.parse({schemaVersion:"openpond.taskset.v1",id:s,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:m,datasetArtifact:a.datasetArtifact??null,policy:a.policy,environment:a.environment,capabilities:g?{...a.capabilities,compatibleMethods:["grpo"],rewardKinds:[...new Set(h.map(T=>T.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:f("openpond-taskset-draft-authoring-v1"),promptTemplateVersion:"taskset-draft-v1",buildIntent:p,buildSpecification:null,evidenceHashes:m.map(T=>T.sourceHash),tasksetSdkVersion:"draft-v1",sourceCommit:null,repairHistory:[],createdAt:r},readiness:null,contentHash:"00000000",createdAt:o===1?a.createdAt:r,updatedAt:r,metadata:{...a.metadata,...i?{modelTasksetAuthoring:i.lineage}:{},tasksetReviewPolicy:a.review,tasksetOutputContract:a.output,...t.sourcePackageHash?{sourcePackageHash:t.sourcePackageHash}:{},...v?{trainingMethod:v}:{},diagnosis:{schemaVersion:"openpond.capabilityDiagnosis.v1",summary:a.objective,stableBehavior:[a.objective],changingKnowledge:[],requiredContext:[],requiredTools:a.environment.toolNames,intervention:v==="dpo"?"preference":v==="grpo"||v==="ppo"?"grpo_rft":v==="sft"?"sft":"no_training",trainingEligible:v!==null,rationale:v?[`The author selected ${v.toUpperCase()} compatibility.`]:["The Taskset is currently configured for evaluation only."],confidence:1}}}),E=te.parse({...w,contentHash:lt(w)}),I=Pi(E).issues.filter(T=>T.severity==="error");if(I.length)throw new qi(I.map(T=>({code:T.code,message:T.message,path:T.path})));return E}c($d,"publishTasksetDraft");function qd(t,a,r){let n=f({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(qd,"generatedDraftSource");function Dd(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(Dd,"buildIntentForDraft");function Od(t){let a=t.tasksetOutputContract;return a&&typeof a=="object"&&!Array.isArray(a)?a:{mode:"text",jsonSchema:null,renderer:null}}c(Od,"tasksetOutputContract");function Ki(t,a){let r=t.metadata.learning===void 0?null:Ka.parse(t.metadata.learning),n=t.metadata.rewardExecution,i=a??(n?{binding:Ee.parse(n.binding),rewards:tt.array().parse(n.rewards)}:r);if(t.metadata.rewardBinding!==void 0){let s=t.metadata.rewardBinding;if(!i||!s||s.id!==i.binding.id||s.revision!==i.binding.revision||s.contentHash!==i.binding.contentHash)throw new Error("Portable Taskset requires its exact published Reward binding.")}return i&&le(i.binding,i.rewards),i?{binding:i.binding,rewards:i.rewards}:null}c(Ki,"resolvePortableTasksetRewardExecution");function Br(t){let a=Wi(t.taskset),r=Yi(t.taskset),n=t.taskset.metadata.learning===void 0?null:Ka.parse(t.taskset.metadata.learning),i=t.taskset.metadata.rewardExecution,s=Ki(t.taskset,t.rewardExecution),o=s?le(s.binding,s.rewards):t.taskset.graders.map(Vd),m=t.selectedTasks?.length?t.selectedTasks:t.taskset.tasks;if(!m.length)throw new Error("A portable Taskset release requires at least one task.");let u=t.taskset.environment.metadata.portableExecutionResources;if(a.entrypoint==="openpond.javascript-environment.v1"&&!u)throw new Error("Tool Taskset publication requires its pinned execution resources.");let d=u?Ne.parse(u.environment):vt({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]:f({adapterId:t.adapterId,environment:a,tools:r})},metadata:{sourceTasksetId:t.taskset.id,sourcePackageHash:t.taskset.metadata.sourcePackageHash??null,resources:t.taskset.environment.resources??[]}}),l=u?.verifierSet!==void 0?Ue.parse(u.verifierSet):bt({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(!Ge(d)||!Je(l)||f(d.contract)!==f(a)||f(l.graders)!==f(o))throw new Error("Taskset execution resources differ from its declared environment or graders.");let p=sn.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:zd(t.taskset),tasks:m.map(Oa),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(v=>v.kind==="model_judge").map(v=>[v.id,v.calibrationFixtureRefs]))},...n?{learning:n}:{},...s&&!n&&(t.rewardExecution||i)?{rewardExecution:{binding:s.binding,rewards:s.rewards}}:{}}}),h=t.admittedTasksetRelease?de.parse(t.admittedTasksetRelease):de.parse({...p,contentHash:f(p)}),g=h.environmentRelease?Fd({draft:h,environmentRelease:d,verifierSetRelease:l}):Tn({taskset:h,environment:d,verifierSet:l});return{environmentRelease:d,verifierSetRelease:l,tasksetRelease:g}}c(Br,"materializePortableTasksetRelease");function Vr(t){return Wi(t)}c(Vr,"portableTasksetEnvironment");function Bd(t){return Yi(t)}c(Bd,"portableTasksetTools");function Oa(t){let a=t.metadata.portableTaskRecord;if(a!==void 0){let r=Ga.parse(a),n=Ga.parse({...r,id:t.id,clusterKey:t.clusterKey,split:t.split,input:t.input,expectedOutput:Gi(t),policyVisibleContext:t.policyVisibleContext,privilegedContextRef:t.privilegedContextRef,tags:t.tags,artifactRefs:t.assets===void 0?r.artifactRefs:t.assets.map(i=>{let s=r.artifactRefs.find(o=>o.id===i.id);return{id:i.id,path:s?.path??`tasks/${jt(t.id)}/${jt(i.fileName)}`,contentHash:Or(i.sha256),sizeBytes:i.sizeBytes,mediaType:i.mediaType,visibility:s?.visibility??"policy"}}),requiredOutputs:t.requiredOutputs===void 0?r.requiredOutputs:t.requiredOutputs.map(i=>{let s=r.requiredOutputs?.find(o=>o.path===i.path);return{path:i.path,mediaType:i.mediaType,schemaRef:s?.schemaRef&&s.schemaRef.id===i.schemaRef?s.schemaRef:null,maxBytes:i.maxBytes??null,metadata:{...i.metadata,...i.schemaRef&&s?.schemaRef?.id!==i.schemaRef?{legacySchemaRef:i.schemaRef}:{}}}})});return n.requiredOutputs===void 0&&delete n.requiredOutputs,n}return{id:t.id,clusterKey:t.clusterKey,split:t.split,input:t.input,expectedOutput:Gi(t),policyVisibleContext:t.policyVisibleContext,privilegedContextRef:t.privilegedContextRef,artifactRefs:(t.assets??[]).map(r=>({id:r.id,path:`tasks/${jt(t.id)}/${jt(r.fileName)}`,contentHash:Or(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(Oa,"projectPortableTaskRecord");function Gi(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(Gi,"portableExpectedOutput");function Wi(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(Wi,"portableEnvironment");function Yi(t){let a=t.environment.metadata.portableTools;if(a!==void 0)return Ta.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:Or(n.actionSchemaHash),sideEffect:n.sideEffect,timeoutMs:n.timeoutMs})):t.environment.toolNames.map(n=>({name:n,description:`Host-provided ${n} tool.`,inputSchema:{},inputSchemaHash:f({}),sideEffect:"write",timeoutMs:t.environment.defaultTimeoutMs}))}c(Yi,"portableTools");function Vd(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:Ji(t),model:Ld(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=Ua.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:X.parse(t.metadata.portableVerifierRef),timeoutMs:t.timeoutMs,...n?{}:{exportName:t.exportName},networkPolicy:"none"}}return t.kind==="human"?{...a,kind:"human",rubricRef:Ji(t),reviewerRole:t.reviewerRole}:{...a,...on(t)}}c(Vd,"portableGrader");function zd(t){let a=t.metadata.portableCapabilities;return a!==void 0?Sr.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-${jt(r)}`,required:!0,scopes:[r]}))].map(r=>({...r,portability:r.id==="local-state"?"host_adapter":"portable"}))}c(zd,"portableCapabilities");function Fd(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(f(t.draft.environment)!==f(t.environmentRelease.contract))throw new Error("Admitted Taskset Environment differs from its bound Environment Release.");if(f(t.draft.graders)!==f(t.verifierSetRelease.graders))throw new Error("Admitted Taskset graders differ from its bound Verifier Set Release.");return t.draft}c(Fd,"assertReleaseBindings");function Ld(t){let a=t.metadata.portableGrader===void 0?null:Ua.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(Ld,"modelJudgeRef");function Ji(t){let a=G(t.rubric),r=new TextEncoder().encode(t.rubric).byteLength,n=t.metadata.portableRubricRef;if(n!==void 0){let i=X.parse(n);if(i.contentHash!==a||i.sizeBytes!==r||i.visibility==="policy")throw new Error("Taskset rubric differs from its published private source.");return i}return{id:`rubric-${t.id}`,path:`graders/${jt(t.id)}/rubric.md`,contentHash:a,sizeBytes:r,mediaType:"text/markdown",visibility:"verifier"}}c(Ji,"rubricAsset");function Or(t){return/^[a-f0-9]{64}$/.test(t)?t:f(t)}c(Or,"hash");function jt(t){return t.trim().replace(/[^a-zA-Z0-9._-]+/g,"-").replace(/^-+|-+$/g,"")||"asset"}c(jt,"segment");function Nd(t){let a=W(t.source),r=W(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||!U(R(a.taskset),n.sourceTasksetRef))throw new Error("Bound draft differs from its retained source package.");let i=c(V=>V.taskset.graders.map(we=>we.kind==="custom_verifier"?{...we,exportName:we.exportName??"verify"}:we),"normalizedGraders");if(f(i(a))!==f(i(r)))throw new Error("Edit the saved Reward in Rewards before changing this Taskset's graders.");let s=a.modelResources,o=new Map(s.assets.map(V=>[V.id,V])),m=We(r),u=We(a),d=c(V=>{let{id:we,revision:za,contentHash:Fa,metadata:La,...Cs}=V,{javascriptEnvironment:wl,...Zr}=La;return{...Cs,metadata:{...Zr,resources:Zr.resources??[]}}},"environmentContent"),l=c(V=>{if(!V)return null;let{id:we,revision:za,contentHash:Fa,...La}=V.execution.javascript;return La},"javascriptContent"),p=f(d(a.environment))===f(d(r.environment))&&f(l(u))===f(l(m)),h=p?a.environment:r.environment,g=p?u:m,v=new Set([...s.assets.map(V=>V.id),...r.taskset.tasks.flatMap(V=>V.privilegedContextRef?[V.privilegedContextRef]:[]),...[r.environment.actionSchemaRef,r.environment.observationSchemaRef,r.environment.stateSchemaRef].flatMap(V=>V?[V.id]:[]),...m?.assets.map(V=>V.id)??[]]);for(let V of v){let we=r.files.find(Fa=>Fa.asset.id===V);if(!we)throw new Error(`Bound Taskset asset is missing: ${V}.`);let za=new TextDecoder("utf-8",{fatal:!0}).decode(ve(we));o.set(V,xe.parse(M({schemaVersion:"openpond.learningTextAsset.v1",id:V,revision:1,asset:we.asset,text:za})))}let w=ct(r),{contentHash:E,...j}=s.taskDefinition,{policy:I,environment:T,environmentRelease:Y,tools:Z,capabilities:k,verifierSetRelease:H}=r.taskset,A=re.parse(M({...j,instructions:w,execution:{policy:I,environment:T,environmentRelease:Y,tools:Z,capabilities:k,verifierSetRelease:H}})),{contentHash:J,...y}=r.taskset,F=de.parse(M({...y,tasks:r.taskset.tasks.map(V=>s.instructionMode==="per_task"?V:{...V,policyVisibleContext:{...V.policyVisibleContext,instructions:w}})})),ce=zt({owner:n.lineage.owner,source:{...s,taskset:a.taskset,executionResources:{environment:a.environment,verifierSet:a.verifierSet}},rewardBinding:s.rewardBinding,rewards:s.rewards,assets:[...o.values()],edits:{taskset:F,taskDefinition:A,executionResources:{environment:h,verifierSet:r.verifierSet},...g?{execution:g.execution}:{}}}),Fe=cr.parse(ce.taskset.metadata.modelTasksetDerivation);if(ce.taskset.id!==n.tasksetId||ce.taskset.revision!==n.tasksetRevision||f({...Fe,schemaVersion:n.lineage.schemaVersion})!==f(n.lineage))throw new Error("Bound draft differs from its retained ownership lineage.");let{taskset:Va,executionResources:Es,...As}=ce;return yt({schemaVersion:"openpond.tasksetPackage.v1",taskset:Va,...Es,modelResources:As,files:r.files})}c(Nd,"publishBoundModelTasksetDraftPackage");function Ud(t){let a=Xa.parse(t.request),r=pa.parse(t.owner),n=W(t.source);if(n.learningResources)throw new Error("Reviewed Tasksets require their reviewed authoring workflow.");if(n.contentHash!==a.sourcePackageHash)throw new Error("Taskset draft source package changed.");if(n.modelResources){let u=Xn({owner:r,source:{...n.modelResources,taskset:n.taskset,executionResources:{environment:n.environment,verifierSet:n.verifierSet}},rewardBinding:n.modelResources.rewardBinding,rewards:n.modelResources.rewards,assets:n.modelResources.assets}),d=u.taskset.metadata.modelTasksetDerivation;return Ae.parse({schemaVersion:"openpond.modelTasksetDraftPreparation.v1",draftId:`model-taskset-draft-${f({owner:r,operationId:a.operationId})}`,requestHash:f(a),sourcePackageHash:n.contentHash,sourceTasksetRef:R(n.taskset),tasksetId:u.taskset.id,tasksetRevision:u.taskset.revision,lineage:{...d,schemaVersion:"openpond.modelTasksetAuthoring.v1"},authoringGraph:"bound"})}let i=pr(n.taskset),s=i&&f(i.owner)===f(r),o=s?i.root:R(n.taskset),m={schemaVersion:"openpond.modelTasksetAuthoring.v1",owner:r,root:o,parent:R(n.taskset)};return Ae.parse({schemaVersion:"openpond.modelTasksetDraftPreparation.v1",draftId:`model-taskset-draft-${f({owner:r,operationId:a.operationId})}`,requestHash:f(a),sourcePackageHash:n.contentHash,sourceTasksetRef:R(n.taskset),tasksetId:ur(m),tasksetRevision:s?n.taskset.revision+1:1,lineage:m})}c(Ud,"prepareModelTasksetDraft");function Gd(t){let a=Ae.parse(t.preparation);if(!U(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 Nd({preparation:a,source:t.source,edited:t.edited})}let r=Jd(t.edited),{contentHash:n,...i}=r.verifierSet,s=bt({...i,id:`${a.tasksetId}-verifiers`,revision:a.tasksetRevision,calibrationReceiptRefs:[],metadata:{sourceVerifierSet:R(r.verifierSet)}}),{contentHash:o,...m}=r.taskset,u=de.parse(M({...m,id:a.tasksetId,revision:a.tasksetRevision,verifierSetRelease:{id:s.id,contentHash:s.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=We(r),l=d?[...r.files.filter(p=>p.asset.id!==Vt(r.taskset)),ya({...d.execution,verifierSet:s})]:r.files;return yt({schemaVersion:"openpond.tasksetPackage.v1",taskset:u,environment:r.environment,verifierSet:s,files:l})}c(Gd,"publishModelTasksetDraftPackage");function Jd(t){let a=W(t);if(a.modelResources||a.learningResources)throw new Error("This Taskset requires its bound or reviewed authoring workflow.");return a}c(Jd,"requireOrdinaryPackage");function Kd(t,a,r,n){if(t.environment.entrypoint!=="openpond.javascript-environment.v1")return{taskset:t,inventory:r,generatedFiles:[]};let i="environment/execution.json",s=a.get(i);if(!s||s.length>524288)throw new Error("Authored tool environment requires its bounded private execution declaration.");let o=st.parse(JSON.parse(new TextDecoder("utf-8",{fatal:!0}).decode(s))),m=c(j=>{if(!j)return null;let I=r.find(T=>T.asset.id===j.id&&T.asset.path===j.path);if(!I)throw new Error(`Authored environment dependency is missing: ${j.id}.`);return I.asset},"repin"),{contentHash:u,...d}=o.javascript,l=ua.parse(M({...d,id:`javascript-${t.id}`,revision:t.revision,module:m(o.javascript.module)}));if(f(l.tools)!==f(t.environment.metadata.portableTools)||f(l.tools.map(j=>j.name))!==f(t.environment.toolNames))throw new Error("Authored environment tools differ from the Taskset's declared tools.");let p=vt({schemaVersion:"openpond.environmentRelease.v1",id:`environment-${t.id}`,revision:t.revision,contract:Vr(t),actionSchemaRef:m(o.environment.actionSchemaRef),observationSchemaRef:m(o.environment.observationSchemaRef),stateSchemaRef:m(o.environment.stateSchemaRef),artifactCollection:o.environment.artifactCollection,adapterConformanceHashes:{},metadata:{javascriptEnvironment:R(l),resources:t.environment.resources??[]}}),h=te.parse({...t,environment:{...t.environment,metadata:{...t.environment.metadata,portableExecutionResources:{environment:p}}}}),g=Br({taskset:h,adapterId:n}),v=ya({javascript:l,environment:p,verifierSet:g.verifierSetRelease}),w=[...r.filter(j=>j.sourcePath!==i),{asset:v.asset,sourcePath:i}],E=te.parse({...h,metadata:{...h.metadata,portableFileInventory:w}});return{taskset:te.parse({...E,contentHash:lt(E)}),inventory:w,generatedFiles:[{path:i,role:"environment",content:new TextDecoder().decode(ve(v))}]}}c(Kd,"prepareAuthoredToolEnvironment");var Yt=e.array(e.object({asset:X,sourcePath:e.string().min(1)}).strict()).max(1e4),Wd=new Set(["taskset.json","capabilities.json","data/tasks.jsonl","graders/graders.json","fixtures/grader-fixtures.json","environment/taskset.ts"]);function Yd(t){return Wd.has(t)}c(Yd,"isGeneratedTasksetPublicationFilePath");function Xd(t,a,r){let n=te.parse(t);if(n.metadata.taskDefinition!==void 0||n.metadata.rewardBinding!==void 0)return{taskset:n,generatedFiles:[]};let i=new Map,s=0;for(let[k,H]of a){if(se.parse(k),s+=H.byteLength,i.size>=1e4||s>De*3/4)throw new Error("Taskset source exceeds the package byte limit.");i.set(k,H.slice())}let o=n.metrics?.customAggregator,m=o?i.get(o.module):void 0;if(o&&!m)throw new Error("Declared Taskset metric module is missing.");let u=o&&m?{...n.metrics,customAggregator:{...o,contentHash:G(m)}}:n.metrics,d=new Map,l=new Set,p=[],h=c((k,H,A,J)=>{let y=i.get(H);if(!y)throw new Error(`Declared Taskset file is missing: ${H}.`);return{id:k,path:H,contentHash:G(y),sizeBytes:y.byteLength,mediaType:A,visibility:J}},"ref"),g=c((k,H=k.path)=>{let A=d.get(k.id);if(A&&f(A)!==f({asset:k,sourcePath:H}))throw new Error(`Conflicting Taskset file identity: ${k.id}.`);let J=i.get(H);if(!J||J.length!==k.sizeBytes||G(J)!==k.contentHash)throw new Error(`Taskset file differs from its declared bytes: ${k.id}.`);d.set(k.id,{asset:k,sourcePath:H}),l.add(H)},"add");for(let k of n.tasks){let H=Oa(k);for(let A of H.artifactRefs)g(A,k.assets?.find(J=>J.id===A.id)?.artifactRef??A.path);for(let A of H.requiredOutputs??[])A.schemaRef&&g(A.schemaRef)}for(let k of n.environment.resources??[])g(h(k.id,k.path,k.mediaType??"application/octet-stream",k.visibility==="policy_visible"?"policy":"host_private"));let v=n.graders.map(k=>{if(k.kind==="custom_verifier"){let H=h(`verifier-${k.id}`,k.module,"application/javascript","host_private"),A=X.safeParse(k.metadata.portableVerifierRef);return A.success&&A.data.contentHash===H.contentHash&&A.data.sizeBytes===H.sizeBytes&&(H=A.data),g(H,k.module),{...k,metadata:{...k.metadata,portableVerifierRef:H}}}if(k.kind==="human"||k.kind==="model_judge"){let H=new TextEncoder().encode(k.rubric),A=`graders/rubric-${G(H)}.md`;i.set(A,H);let J=h(`rubric-${k.id}`,A,"text/markdown","verifier"),y=X.safeParse(k.metadata.portableRubricRef);if(y.success&&y.data.contentHash===J.contentHash&&y.data.sizeBytes===J.sizeBytes){if(y.data.visibility==="policy")throw new Error("A grader rubric cannot become policy-visible.");J=y.data}return g(J,A),p.push({path:A,role:"verifier",content:k.rubric}),{...k,metadata:{...k.metadata,portableRubricRef:J}}}return k});o&&![...d.values()].some(k=>k.asset.path===o.module&&k.sourcePath===o.module&&k.asset.visibility!=="policy")&&g(h(`metric-${f(o.module)}`,o.module,"application/javascript","host_private"));let w=Yt.parse(n.metadata.portableFileInventory??[]);for(let k of[...i.keys()].sort())if(!l.has(k)){let H=w.find(A=>A.sourcePath===k&&!d.has(A.asset.id));g(H?{...h(H.asset.id,k,H.asset.mediaType,H.asset.visibility),path:H.asset.path}:h(`taskset-file-${f(k)}`,k,"application/octet-stream","host_private"),k)}let{importedPackageHash:E,derivedPortableMetadata:j,...I}=n.metadata,T={...n.environment.metadata};if(T.portableExecutionResources!==void 0){let k=e.object({environment:e.unknown(),verifierSet:e.unknown().optional()}).parse(T.portableExecutionResources);T.portableExecutionResources={environment:k.environment}}let Y=te.parse({...n,graders:v,metrics:u,environment:{...n.environment,metadata:T},metadata:{...I,...E===void 0?{}:{sourceImportedPackageHash:E},portableFileInventory:Yt.parse([...d.values()].sort((k,H)=>k.asset.id.localeCompare(H.asset.id)))}}),Z=Kd(Y,i,[...d.values()],r);return{taskset:te.parse({...Z.taskset,contentHash:lt(Z.taskset)}),generatedFiles:[...p,...Z.generatedFiles]}}c(Xd,"prepareAuthoredTasksetSource");function Qd(t){let a=W(t.source);if(a.modelResources||a.learningResources)throw new Error("Binding an ordinary Reward requires an ordinary source package.");let r=ct(a);if(!r.trim())throw new Error("Add collection instructions before selecting a saved Reward.");let n=new Map,i=We(a);for(let I of i?.assets??[])n.set(I.id,I);let s=new Set([...a.taskset.tasks.flatMap(I=>I.privilegedContextRef?[I.privilegedContextRef]:[]),...[a.environment.actionSchemaRef,a.environment.observationSchemaRef,a.environment.stateSchemaRef].flatMap(I=>I?[I.id]:[])]);for(let I of s){if(n.has(I))continue;let T=a.files.find(Z=>Z.asset.id===I);if(!T)throw new Error(`Source Taskset context is missing: ${I}.`);let Y=new TextDecoder("utf-8",{fatal:!0}).decode(ve(T));n.set(I,xe.parse(M({schemaVersion:"openpond.learningTextAsset.v1",id:I,revision:1,asset:T.asset,text:Y})))}for(let I of t.assets){let T=a.files.find(Y=>Y.asset.id===I.id);if(T&&M({asset:T.asset}).contentHash!==M({asset:I.asset}).contentHash)throw new Error(`Selected Reward conflicts with a source asset: ${I.id}.`);n.set(I.id,I)}let{policy:o,environment:m,environmentRelease:u,tools:d,capabilities:l,verifierSetRelease:p}=a.taskset,h=re.parse(M({schemaVersion:"openpond.taskDefinition.v1",id:`${a.taskset.id}-definition`,revision:1,name:a.taskset.id,description:"",instructions:r,category:"custom",familyNamespace:a.taskset.id,inputSchema:{type:"object"},outputSchema:{type:"object"},rewardBinding:R(t.rewardBinding),harness:null,execution:{policy:o,environment:m,environmentRelease:u,tools:d,capabilities:l,verifierSetRelease:p}})),g=zt({...t,assets:[...n.values()],source:{taskset:a.taskset,taskDefinition:h,instructionMode:"per_task",executionResources:{environment:a.environment,verifierSet:a.verifierSet},...i?{execution:i.execution}:{}}}),v=new Map(a.files.map(I=>[I.asset.id,I]));for(let I of g.assets){let T="";for(let Y of new TextEncoder().encode(I.text))T+=String.fromCharCode(Y);v.set(I.id,{asset:I.asset,base64:btoa(T)})}let{taskset:w,executionResources:E,...j}=g;return yt({schemaVersion:"openpond.tasksetPackage.v1",taskset:w,...E,modelResources:j,files:[...v.values()]})}c(Qd,"bindOrdinaryModelTasksetReward");function Zd(t){let{request:a,package:r}=t,n=r.learningResources;if(!n)throw new me("model_review_batch_required",422);let i=ie(r.taskset),s=`model-review-${f([t.scope,a.modelId,a.operationId])}`,o=new Map(a.examples.map(y=>[f(y.evidence),y])),m=new Set(n.evidence.map(y=>f(R(y)))),u=new Map(n.decisions.map(y=>[f(y.evidence),y]));if(o.size!==a.examples.length||a.examples.some(y=>!m.has(f(y.evidence))))throw new me("model_review_evidence_mismatch",409);for(let y of[t.binding,...t.rewards,...t.assets])gt(y);sa(t.binding,t.rewards);let d=new Map;for(let y of t.binding.sources){let F=t.rewards.find(Va=>U(R(Va),y.reward)),{contentHash:ce,...Fe}=F;d.set(F.contentHash,mn({...Fe,id:`${s}-reward-${F.contentHash}`,revision:1}))}let l=[...d.values()],{contentHash:p,recipeRef:h,...g}=t.binding,v=ln({...g,id:`${s}-binding`,revision:1,sources:t.binding.sources.map(y=>({...y,reward:R(d.get(y.reward.contentHash))}))},l),w=l.flatMap(y=>[...y.assets,..."verifierRef"in y.implementation?[y.implementation.verifierRef]:[],..."rubricRef"in y.implementation?[y.implementation.rubricRef]:[],..."inputContract"in y.implementation?[y.implementation.inputContract]:[]]),E=[...new Map(w.map(y=>{let F=t.assets.find(ce=>ce.id===y.id);if(!F)throw new me("model_review_reward_asset_missing",422);if(K(F,y),y.visibility==="policy")throw new me("reward_asset_visibility_invalid",422);return[F.id,F]})).values()],{environmentRelease:j,verifierSetRelease:I,...T}=i.definition.execution,{contentHash:Y,...Z}=i.definition,k=re.parse(M({...Z,...a.definition,id:`${s}-definition`,revision:1,rewardBinding:R(v),execution:{...T,policy:{...T.policy,hiddenGraderRefs:le(v,l).filter(y=>y.privileged).map(y=>y.id)}}})),H=Le.parse(M({schemaVersion:"openpond.learningSource.v1",id:s,revision:1,name:`${k.name} review`,kind:"direct",taskDefinition:R(k),enabled:!0,allowedSplits:[...new Set(n.evidence.map(y=>y.submission.split))],mapping:null,adapterVersion:null,reviewOrigin:{modelId:a.modelId,packageHash:r.contentHash,taskset:R(r.taskset),batch:R(n.batch),rewardBinding:R(t.binding)}})),A=n.evidence.map(y=>{let F=o.get(f(R(y))),ce=`review-${y.contentHash}`,Fe=f({instructions:k.instructions,inputSchema:k.inputSchema,outputSchema:k.outputSchema,requiredOutputs:k.requiredOutputs??[],input:F?.input??y.submission.input})!==f({instructions:i.definition.instructions,inputSchema:i.definition.inputSchema,outputSchema:i.definition.outputSchema,requiredOutputs:i.definition.requiredOutputs??[],input:y.submission.input});return rt.parse(M({schemaVersion:"openpond.taskEvidence.v1",id:kn(H.id,y.submission.exampleId,ce),revision:1,source:R(H),submission:{...y.submission,sourceId:H.id,taskDefinition:R(k),attemptId:ce,observedOutput:Fe?null:y.submission.observedOutput,idempotencyKey:`${s}-${y.contentHash}`,...F?.input===void 0?{}:{input:F.input},...F?.expected===void 0?{}:{expected:F.expected},...F?.evaluatorContext===void 0?{}:{evaluatorContext:F.evaluatorContext}},supersedes:R(y),correctionFeedbackId:null,receivedAt:t.now}))}),J=A.flatMap(y=>{let F=o.get(f(y.supersedes)),ce=u.get(f(y.supersedes)),Fe=F?.proposedTarget===void 0?ce.approvedTarget:F.proposedTarget;return Fe===null?[]:[oa.parse({schemaVersion:"openpond.taskFeedbackRecord.v1",id:`feedback-${f([s,y.id])}`,revision:1,submission:{schemaVersion:"openpond.taskFeedback.v1",sourceId:H.id,idempotencyKey:`${s}-${y.id}`,exampleId:y.submission.exampleId,attemptId:y.submission.attemptId,expectedEvidenceHash:y.contentHash,occurredAt:t.now,kind:"target_correction",value:Fe,note:"Proposed target for the revised task. Grade and review before admission."},status:"pending_review",evidence:R(y),createdAt:t.now,review:null})]});return{source:H,definition:k,binding:v,rewards:l,assets:E,evidence:A,proposals:J}}c(Zd,"prepareModelBatchReview");var Xi=c(t=>`model-batch-review-${f([t.modelId,t.operationId])}`,"operation");function em(t){let a=W(t);if(!a.learningResources)throw new me("model_review_batch_required",422);let r=ie(a.taskset);return gr.parse({schemaVersion:"openpond.modelBatchReviewInspection.v1",packageHash:a.contentHash,definition:r.definition,binding:r.binding,evidence:a.learningResources.evidence,decisions:a.learningResources.decisions})}c(em,"inspectModelBatchPackage");async function Qi(t,a){let r=Ra.parse(a),n=await t.operation(Xi(r));if(!n)return null;if(n.requestHash!==f(r))throw new me("learning_idempotency_conflict",409);return Zi(t,r,n.resources)}c(Qi,"findModelBatchReview");async function tm(t,a){let r=Ra.parse(a.request),n=await Qi(t,r);if(n)return n;let i=W(a.package);if(!i.learningResources)throw new me("model_review_batch_required",422);let s=ie(i.taskset),o=r.rewardBindingRef,m=!o||U(o,R(s.binding)),u=m?s.binding:await Ya(t,"binding",o),d=m?s.rewards:await Promise.all(u.sources.map(v=>Ya(t,"reward",v.reward))),l=new Set(d.flatMap(v=>[...v.assets,..."verifierRef"in v.implementation?[v.implementation.verifierRef]:[],..."rubricRef"in v.implementation?[v.implementation.rubricRef]:[],..."inputContract"in v.implementation?[v.implementation.inputContract]:[]]).map(v=>v.id)),p=m?i.learningResources.assets:await Promise.all([...l].map(v=>Wa(t,"asset",v,1))),h=Zd({...a,request:r,package:i,binding:u,rewards:d,assets:p}),g=[];for(let v of h.assets){let w=await t.get("asset",v.id,1);if(w&&w.contentHash!==v.contentHash)throw new me("model_review_asset_conflict",409);w||await t.put("asset",v,0)}for(let v of h.rewards)await t.put("reward",v,0);await t.put("binding",h.binding,0),await t.put("definition",h.definition,0),await t.put("source",h.source,0,{parentId:r.modelId}),g.push({kind:"source",id:h.source.id,revision:1});for(let v of h.evidence)await t.put("evidence",v,0,{parentId:h.source.id}),g.push({kind:"evidence",id:v.id,revision:1});for(let v of h.proposals)await t.put("feedback",v,0,{parentId:v.evidence.id,status:v.status}),g.push({kind:"feedback",id:v.id,revision:1});return await t.saveOperation(Xi(r),{requestHash:f(r),resources:g}),Zi(t,r,g)}c(tm,"beginModelBatchReview");async function Zi(t,a,r){let n=await Promise.all(r.map(i=>Wa(t,i.kind,i.id,i.revision)));return vr.parse({schemaVersion:"openpond.modelBatchReviewReceipt.v1",operationId:a.operationId,modelId:a.modelId,source:n.find(i=>i.schemaVersion==="openpond.learningSource.v1"),evidence:n.filter(i=>i.schemaVersion==="openpond.taskEvidence.v1"),proposals:n.filter(i=>i.schemaVersion==="openpond.taskFeedbackRecord.v1")})}c(Zi,"readReceipt");function am(t){let a=W(t.package),r=a.taskset,n=a.modelResources,i=a.learningResources?ie(r):void 0,s=Gt.parse({schemaVersion:"openpond.uploadedFileDatasetSource.v1",kind:"uploaded_file",id:`package-source-${f({profileId:t.profileId,packageHash:a.contentHash})}`,profileId:t.profileId,title:t.name,sourceHash:a.contentHash,occurredAt:t.createdAt,licensingStatus:"pending",secretScanStatus:"pending",piiScanStatus:"pending",originalFileNames:["taskset-package.json"],mediaTypes:["application/json"],sourceFileHashes:[a.contentHash],totalBytes:new TextEncoder().encode(JSON.stringify(a)).byteLength,parserVersion:"openpond.tasksetPackage.v1",metadata:{}}),o=Ui({profileId:t.profileId,id:`${r.id}-import`,name:t.name,now:t.createdAt}),m=[];for(let h of r.graders)if(h.kind==="custom_verifier"){let g=n?.assets.find(E=>E.id===h.verifierRef.id),v=a.files.find(E=>E.asset.id===h.verifierRef.id);if(!v)throw new Error(`Imported verifier source is missing: ${h.id}.`);let w=Kt(h.verifierRef.contentHash);m.some(E=>E.path===w)||m.push({path:w,role:"verifier",content:g?K(g,h.verifierRef):new TextDecoder("utf-8",{fatal:!0}).decode(ve(v))})}let u=r.metadata.ordinaryAuthoring??r.metadata.starterAuthoring,d=Jt.array().max(1e5).parse(u?.graderFixtures??[]),l=r.environment.kind==="text"?"chat":r.environment.kind==="custom_program"?"program":r.environment.kind,p=te.parse({schemaVersion:"openpond.taskset.v1",id:r.id,revision:r.revision,profileId:t.profileId,profileRelease:null,createImproveRunId:null,name:t.name,objective:ct(a),status:"needs_review",sourceRefs:[s],datasetArtifact:null,policy:r.policy,environment:{...o.environment,kind:l,entrypoint:r.environment.entrypoint,resources:Er.array().max(1e4).parse(r.metadata.environmentResources??[]),stateful:r.environment.stateful,deterministicSeeds:r.environment.deterministicSeeds,toolNames:r.tools.map(h=>h.name),defaultTimeoutMs:r.environment.defaultTimeoutMs,networkPolicy:r.environment.networkPolicy,metadata:{runtimeSourceTasksetId:es(t.profileId,a.contentHash),portableEnvironment:r.environment,portableTools:r.tools,portableExecutionResources:{environment:a.environment,verifierSet:a.verifierSet}}},capabilities:{...o.capabilities,taskKind:l==="chat"?"chat":l==="program"?"custom_program":"single_agent",compatibleMethods:["none"],requiresTools:r.tools.length>0,requiresState:r.environment.stateful,rewardKinds:[...new Set(r.graders.map(h=>h.kind==="human"?"human":h.kind==="model_judge"?"model_judge":"deterministic"))]},tasks:r.tasks.map(h=>({...h,schemaVersion:"openpond.taskData.v1",sourceRefs:[s.id],assets:h.artifactRefs.map(g=>({id:g.id,sourceRefId:s.id,artifactRef:g.path,fileName:g.path.split("/").at(-1),mediaType:g.mediaType,sha256:g.contentHash,sizeBytes:g.sizeBytes,split:h.split,metadata:{portableAsset:g}})),...h.requiredOutputs?{requiredOutputs:h.requiredOutputs.map(g=>({...g,schemaRef:g.schemaRef?.id??null,maxBytes:g.maxBytes??void 0}))}:{},metadata:{portableTaskRecord:h,exampleOrigin:"imported"}})),graders:n?$a(n.rewardBinding,n.rewards,n.assets):i?$a(i.binding,i.rewards,a.learningResources.assets):Ai(a),graderFixtures:d,learningSignals:o.learningSignals,...r.metrics?{metrics:r.metrics}:{},authoringProvenance:{schemaVersion:"openpond.taskAuthoringProvenance.v1",model:null,modelConfig:{},skillHash:f("openpond-package-import-v1"),promptTemplateVersion:"package-import-v1",buildIntent:"discovery",buildSpecification:null,evidenceHashes:[a.contentHash],tasksetSdkVersion:"package-import-v1",sourceCommit:null,repairHistory:[],createdAt:t.createdAt},readiness:null,contentHash:"00000000",createdAt:t.createdAt,updatedAt:t.createdAt,metadata:{importedPackageHash:a.contentHash,...i?{learning:i}:{},portableFileInventory:a.files.map(h=>({asset:h.asset,sourcePath:h.asset.path})),...n?{taskDefinition:R(n.taskDefinition),rewardBinding:R(n.rewardBinding),rewardExecution:{binding:n.rewardBinding,rewards:n.rewards}}:{},portableCapabilities:r.capabilities,derivedPortableMetadata:r.metadata,...r.metadata.modelTasksetDerivation?{modelTasksetDerivation:r.metadata.modelTasksetDerivation}:{}}});return{package:a,taskset:te.parse({...p,contentHash:lt(p)}),generatedFiles:m}}c(am,"prepareImportedTasksetPackage");function es(t,a){return`package-${f({profileId:t,packageHash:a})}`}c(es,"tasksetPackageSourceId");var ts=e.object({draft:je,filePaths:e.array(e.object({assetId:e.string().min(1),paths:e.array(se).min(1).max(1e4)}).strict()).max(1e4)}).strict();function rm(t){let a=W(t.source),r=je.parse(t.sourceDraft),n=Ae.parse(t.preparation);if(a.contentHash!==n.sourcePackageHash||!U(R(a.taskset),n.sourceTasksetRef))throw new Error("Taskset draft preparation differs from its source package.");if(a.learningResources)throw new Error("Reviewed Tasksets require their reviewed authoring workflow.");if(!!a.modelResources!=(n.authoringGraph==="bound"))throw new Error("Taskset draft authoring graph differs from its source.");let i=Yt.parse(r.metadata.portableFileInventory??[]),s=c(l=>_t(l)?`source-artifacts/${a.contentHash}/${f(l)}/${l.split("/").at(-1)}`:l,"sourcePath");if([...r.tasks.flatMap(l=>(l.assets??[]).map(p=>p.artifactRef)),...(r.environment.resources??[]).map(l=>l.path),...a.taskset.tasks.flatMap(l=>(l.requiredOutputs??[]).flatMap(p=>p.schemaRef?[p.schemaRef.path]:[])),...r.metrics.customAggregator?[r.metrics.customAggregator.module]:[],...r.graders.flatMap(l=>l.kind==="custom_verifier"?[l.module]:[])].some(_t))throw new Error("A referenced source asset occupies a reserved Taskset authoring path.");let m=a.files.map(l=>{let p=new Set([l.asset.path]);for(let h of i)h.asset.id===l.asset.id&&p.add(h.sourcePath);for(let h of r.tasks)for(let g of h.assets??[])g.id===l.asset.id&&p.add(g.artifactRef);for(let h of a.taskset.graders)if(h.kind==="custom_verifier"&&h.verifierRef.id===l.asset.id){let g=r.graders.find(v=>v.id===h.id);g?.kind==="custom_verifier"&&p.add(g.module)}return{assetId:l.asset.id,paths:[...p].map(s)}}),u={...r.metadata};if(a.modelResources)for(let l of["taskDefinition","rewardBinding","rewardExecution","derivedPortableMetadata","modelTasksetDerivation","importedPackageHash"])delete u[l];let d=je.parse({...r,id:n.draftId,revision:1,status:"draft",graders:r.graders.map(l=>({...l,metadata:{...l.metadata,portableGrader:a.taskset.graders.find(p=>p.id===l.id)}})),environment:{...r.environment,metadata:{...r.environment.metadata,portableExecutionResources:{environment:a.environment}}},modelScope:{modelId:n.lineage.owner.modelId,expectedModelRevision:t.expectedModelRevision,source:n},publishedTasksetRef:n.tasksetRevision>1?n.sourceTasksetRef:null,metadata:{...u,modelTasksetAuthoring:n.lineage,portableFileInventory:i.map(l=>({...l,sourcePath:s(l.sourcePath),asset:{...l.asset,id:_t(l.sourcePath)?`source-artifact-${f({packageHash:a.contentHash,assetId:l.asset.id})}`:l.asset.id,path:s(l.asset.path)}}))}});return ts.parse({draft:d,filePaths:m})}c(rm,"prepareTasksetDraftSource");var Et=e.string().trim().min(1).max(500),nm=e.string().regex(/^[a-f0-9]{64}$/),Xe=e.object({id:Et,revision:e.number().int().positive(),contentHash:nm}).strict(),zr=e.object({schemaVersion:e.literal("openpond.hostedTasksetSummary.v1"),id:Et,teamId:Et,release:Xe,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(),im=e.object({afterId:e.string().trim().min(1).max(2e3).optional(),limit:e.number().int().min(1).max(100).default(30),modelProjectId:Et.optional(),projectId:Et.optional(),search:e.string().trim().max(100).optional(),sort:e.enum(["id","name","updated"]).default("id")}).strict(),sm=e.object({items:e.array(zr).max(100),nextCursor:e.string().trim().min(1).max(2e3).nullable()}).strict(),om=e.object({code:e.string().min(1),message:e.string().min(1)}).strict(),Pt=class extends Error{static{c(this,"OpenPondTasksetCatalogError")}constructor(t,a,r){super(r),this.status=t,this.code=a,this.name="OpenPondTasksetCatalogError"}status;code},uh=class{static{c(this,"OpenPondTasksetCatalogClient")}#e;constructor(t){if(!t.apiKey.trim()||!t.teamId.trim())throw new Error("Taskset API key and workspace are required.");let a=new URL(t.baseUrl);if(!["http:","https:"].includes(a.protocol)||a.username||a.password||a.search||a.hash)throw new Error("Taskset base URL must be an HTTP(S) endpoint without credentials, query, or fragment.");this.#e={...t,baseUrl:a.toString().replace(/\/+$/,"")}}async list(t={},a={}){let r=im.parse(t),n=new URLSearchParams({limit:String(r.limit)});r.afterId&&n.set("afterId",r.afterId),r.modelProjectId&&n.set("modelProjectId",r.modelProjectId),r.projectId&&n.set("projectId",r.projectId),r.search!==void 0&&n.set("search",r.search),n.set("sort",r.sort);let i=sm.parse(await this.#t(`?${n}`,a.signal));if(i.items.length>r.limit||new Set(i.items.map(s=>s.id)).size!==i.items.length||i.items.some(s=>s.teamId!==this.#e.teamId))throw new Pt(502,"catalog_scope_mismatch","Taskset inventory did not match the requested workspace or page size.");return i}async get(t,a={}){let r=Et.parse(t),n=zr.parse(await this.#t(`/${encodeURIComponent(r)}`,a.signal));if(n.id!==r||n.teamId!==this.#e.teamId)throw new Pt(502,"catalog_identity_mismatch","Taskset metadata did not match the requested identity.");return n}async resolve(t,a={}){let r=Xe.parse(t),n=zr.parse(await this.#t(`/releases/${encodeURIComponent(r.id)}/${r.revision}/${r.contentHash}`,a.signal));if(n.teamId!==this.#e.teamId||n.release.id!==r.id||n.release.revision!==r.revision||n.release.contentHash!==r.contentHash)throw new Pt(502,"catalog_release_mismatch","Taskset metadata did not match the requested immutable release.");return n}async#t(t,a){let r=await(this.#e.fetch??globalThis.fetch)(`${this.#e.baseUrl}/v1/taskset-catalog${t}`,{headers:{Authorization:`Bearer ${this.#e.apiKey}`,"X-OpenPond-Team-Id":this.#e.teamId,Accept:"application/json"},signal:a,redirect:"error"}),n=r.body?.getReader();if(!n)throw new Pt(r.status,"empty_response","Taskset catalog response was empty.");let i=new TextDecoder,s=0,o="";try{for(;;){let u=await n.read();if(u.done)break;if(s+=u.value.byteLength,s>4194304)throw new Pt(r.status,"response_too_large","Taskset catalog response exceeded 4 MiB.");o+=i.decode(u.value,{stream:!0})}o+=i.decode()}finally{await n.cancel(),n.releaseLock()}let m=JSON.parse(o);if(!r.ok){let u=om.safeParse(m);throw new Pt(r.status,u.success?u.data.code:"invalid_error_response",u.success?u.data.message:`Taskset catalog request failed (${r.status}).`)}return m}};var ke=e.string().trim().min(1).max(500),At=e.string().regex(/^[a-f0-9]{64}$/),as=ir.pick({portableProjectId:!0,name:!0,objective:!0,defaultBaseModel:!0,defaultDestinationId:!0,sourceRevision:!0,sourceUpdatedAt:!0}).extend({trainingSetup:Ot.omit({tasksetRef:!0,rewardBindingRef:!0,tasksetRelease:!0})}).strict(),rs=e.object({schemaVersion:e.literal("openpond.tasksetPackagePublication.v1"),operationId:ke,modelProjectId:ke,expectedProjectEtag:At.nullable(),name:e.string().trim().min(1).max(200),description:e.string().max(5e3),buildIntent:e.enum(["demonstrations","preferences","verifiable_reward","rubric","discovery"]),methodHint:e.enum(["sft","dpo","grpo","ppo"]).nullable(),package:ot,modelConfiguration:as.optional(),evaluationPackage:ot.optional(),selection:e.enum(["select","attach"]).optional()}).strict().refine(t=>t.selection!=="attach"||t.modelConfiguration===void 0,"Attachment-only publication cannot replace Model configuration.").refine(t=>!t.evaluationPackage||t.modelConfiguration!==void 0&&t.modelConfiguration.trainingSetup.evaluationTasksetRef!=null&&f(t.modelConfiguration.trainingSetup.evaluationTasksetRef)===f(R(t.evaluationPackage.taskset)),"Evaluation package must match the selected immutable evaluation in Model configuration."),ns=e.object({schemaVersion:e.literal("openpond.tasksetPackageReceipt.v1"),teamId:ke,modelProjectId:ke,operationId:ke,taskset:Xe,packageHash:At,hostedTasksetId:ke,projectEtag:At,project:Ce.optional(),selection:e.enum(["select","attach"]).optional(),evaluation:e.object({taskset:Xe,packageHash:At,hostedTasksetId:ke}).strict().optional()}).strict(),is=e.object({schemaVersion:e.literal("openpond.tasksetPackageReadback.v1"),teamId:ke,modelProjectId:ke,package:ot}).strict(),ss=e.object({schemaVersion:e.literal("openpond.tasksetReleasePackageReadback.v1"),teamId:ke,release:Xe,package:ot}).strict(),oe=class extends Error{static{c(this,"OpenPondTasksetPackageError")}constructor(t,a,r){super(r),this.status=t,this.code=a,this.name="OpenPondTasksetPackageError"}status;code},cm=class{static{c(this,"OpenPondTasksetPackageClient")}#e;constructor(t){let a=new URL(t.baseUrl);if(!["http:","https:"].includes(a.protocol)||a.username||a.password||a.search||a.hash||!t.apiKey.trim()||!t.teamId.trim())throw new Error("Taskset package client requires a clean HTTP(S) endpoint and workspace credentials.");this.#e={...t,baseUrl:a.toString().replace(/\/+$/,"")}}async publish(t,a={}){let r=rs.parse(t);W(r.package),r.evaluationPackage&&W(r.evaluationPackage);let n=ns.parse(await this.#t("","POST",r,a.signal)),i=r.package.taskset;if(n.teamId!==this.#e.teamId||n.modelProjectId!==r.modelProjectId||n.operationId!==r.operationId||n.packageHash!==r.package.contentHash||n.taskset.id!==i.id||n.taskset.revision!==i.revision||n.taskset.contentHash!==i.contentHash)throw new oe(502,"package_receipt_mismatch","Taskset publication receipt did not match the requested package and owner.");if(r.selection!==void 0&&n.selection!==r.selection)throw new oe(502,"package_receipt_mismatch","Taskset publication did not retain its selection mode.");if(r.evaluationPackage&&(!n.evaluation||n.evaluation.packageHash!==r.evaluationPackage.contentHash||f(n.evaluation.taskset)!==f(R(r.evaluationPackage.taskset))))throw new oe(502,"package_receipt_mismatch","Taskset publication did not retain the complete selected evaluation package.");if(r.selection==="attach"&&n.projectEtag!==r.expectedProjectEtag)throw new oe(502,"package_receipt_mismatch","Attaching a historical Taskset changed the Model configuration.");if(r.modelConfiguration){let s=r.modelConfiguration,o=n.project,m=hr(r.package),u=Ot.parse({...s.trainingSetup,tasksetRef:R(i),rewardBindingRef:m?R(m):null,tasksetRelease:null});if(!o||o.teamId!==this.#e.teamId||o.etag!==n.projectEtag||![o.id,o.portableProjectId].includes(r.modelProjectId)||o.portableProjectId!==s.portableProjectId||o.name!==s.name||o.objective!==s.objective||o.sourceRevision!==s.sourceRevision||Date.parse(o.sourceUpdatedAt)!==Date.parse(s.sourceUpdatedAt)||f(o.defaultBaseModel)!==f(s.defaultBaseModel)||o.defaultDestinationId!==s.defaultDestinationId||f(o.trainingSetup)!==f(u))throw new oe(502,"package_receipt_mismatch","Taskset publication did not retain the requested Model configuration.")}return n}async getByRelease(t,a={}){let r=Xe.parse(t),n=a.expectedPackageHash===void 0?void 0:At.parse(a.expectedPackageHash),i=ss.parse(await this.#t(`/releases/${encodeURIComponent(r.id)}/${r.revision}/${r.contentHash}/package`,"GET",void 0,a.signal)),s=W(i.package),o={id:s.taskset.id,revision:s.taskset.revision,contentHash:s.taskset.contentHash};if(i.teamId!==this.#e.teamId||f(i.release)!==f(r)||f(o)!==f(r)||n!==void 0&&s.contentHash!==n)throw new oe(502,"package_readback_mismatch","Independent Dataset package differs from the requested workspace or exact release.");return s}async get(t,a,r={}){let n=ke.parse(t),i=Xe.parse(a),s=r.expectedPackageHash===void 0?void 0:At.parse(r.expectedPackageHash),o=is.parse(await this.#t(`/${encodeURIComponent(n)}/${encodeURIComponent(i.id)}/${i.revision}/${i.contentHash}`,"GET",void 0,r.signal)),m=o.package.taskset;if(o.teamId!==this.#e.teamId||o.modelProjectId!==n||m.id!==i.id||m.revision!==i.revision||m.contentHash!==i.contentHash)throw new oe(502,"package_readback_mismatch","Taskset package did not match the requested release and owner.");if(s!==void 0&&o.package.contentHash!==s)throw new oe(502,"package_readback_mismatch","Taskset package did not match the saved publication receipt.");return W(o.package)}async#t(t,a,r,n){let i=r===void 0?void 0:JSON.stringify(r);if(i&&new TextEncoder().encode(i).byteLength>De)throw new oe(413,"package_too_large","Taskset publication exceeds the 64 MiB envelope.");let s=await(this.#e.fetch??globalThis.fetch)(`${this.#e.baseUrl}/v1/taskset-packages${t}`,{method:a,headers:{Authorization:`Bearer ${this.#e.apiKey}`,"X-OpenPond-Team-Id":this.#e.teamId,Accept:"application/json",...i?{"Content-Type":"application/json"}:{}},body:i,signal:n,redirect:"error"}),o=s.body?.getReader();if(!o)throw new oe(s.status,"empty_response","Taskset package response was empty.");let m=new TextDecoder("utf-8",{fatal:!0}),u=0,d="";try{for(;;){let p=await o.read();if(p.done)break;if(u+=p.value.byteLength,u>De)throw new oe(413,"package_too_large","Taskset response exceeds the 64 MiB envelope.");d+=m.decode(p.value,{stream:!0})}d+=m.decode()}finally{await o.cancel(),o.releaseLock()}let l=JSON.parse(d);if(!s.ok){let p=e.object({code:e.string(),message:e.string()}).safeParse(l);throw new oe(s.status,p.success?p.data.code:"package_request_failed",p.success?p.data.message:`Taskset package request failed (${s.status}).`)}return l}};var Ct=e.string().regex(/^[a-f0-9]{64}$/),os=e.object({providerId:e.literal("claude-code"),configurationHash:Ct,executableHash:Ct,version:e.string().regex(/^2\.\d+\.\d+$/),capabilityHash:Ct,maximumRequestCostUsd:e.number().finite().positive().max(1e4),requestTimeoutMs:e.number().int().min(1e3).max(3e5),maximumTurns:e.number().int().min(1).max(100),holdOpen:e.boolean()}).strict(),Ph=e.object({id:e.string().min(1).max(200),receiptId:e.string().min(1).max(200),sessionId:e.uuid(),operationId:e.string().min(1).max(200),action:e.enum(["message","seal"]),text:e.string().max(262144).optional()}).strict().superRefine((t,a)=>{t.action==="message"&&!t.text?.trim()&&a.addIssue({code:"custom",message:"A human intervention requires a message."}),t.action==="seal"&&t.text!==void 0&&a.addIssue({code:"custom",message:"Sealing does not add a prompt."})}),Eh=e.object({provider:e.literal("claude-code"),sessionId:e.uuid(),requestId:e.string().min(1).max(200),modelId:e.string().min(1).max(500),runtime:os,sourceHash:Ct,outputHash:Ct,traceHash:Ct,runtimeEventRefs:e.array(e.string().min(1).max(200)).min(1).max(2e4),eventCount:e.number().int().positive().max(2e4),startedAt:e.iso.datetime(),completedAt:e.iso.datetime(),cleanupComplete:e.literal(!0)}).strict().superRefine((t,a)=>{(t.runtimeEventRefs.length!==t.eventCount||new Set(t.runtimeEventRefs).size!==t.eventCount)&&a.addIssue({code:"custom",message:"Process event references must match the exact retained trace population."})}),Xt=e.object({id:e.string().trim().min(1).max(240),revision:e.number().int().positive(),contentHash:e.string().regex(/^[a-f0-9]{64}$/),targetId:e.string().trim().min(1).max(240).nullable()}).strict(),dm=e.array(e.object({role:e.enum(["system","user","assistant"]),content:e.string().max(1e5)}).strict()).max(100).superRefine((t,a)=>{t.reduce((r,n)=>r+n.content.length,0)>1e5&&a.addIssue({code:"custom",message:"Evaluation prompt exceeds 100,000 characters."})}),mm=e.object({schemaVersion:e.literal("openpond.experimentAttemptGrade.v1"),selectionHash:e.string().regex(/^[a-f0-9]{64}$/),grades:e.array(ia).min(1).max(100),score:e.number().min(0).max(1).nullable(),passed:e.boolean(),rewardEligible:e.boolean(),gradingStatus:e.enum(["scored","pending","unscorable","not_configured"]),failureClass:va.nullable(),contentHash:e.string().regex(/^[a-f0-9]{64}$/)}).strict().superRefine((t,a)=>{let{contentHash:r,...n}=t;f(n)!==r&&a.addIssue({code:"custom",message:"Experiment grading integrity failed."});let i=t.grades.flatMap(s=>s.components);(i.length!==t.grades.length||new Set(i.map(s=>s.graderId)).size!==i.length)&&a.addIssue({code:"custom",message:"Each selected criterion requires exactly one distinct grader result."});for(let s of t.grades){let{contentHash:o,...m}=s;f(m)!==o&&a.addIssue({code:"custom",message:"A retained criterion changed."});for(let u of s.components){let{contentHash:d,...l}=u;f(l)!==d&&a.addIssue({code:"custom",message:"A retained grader result changed."})}}}),O=e.string().trim().min(1).max(200),ut=e.string().regex(/^[a-f0-9]{64}$/),Fr=e.discriminatedUnion("kind",[e.object({kind:e.literal("hosted_chat"),modelId:O,localRuntime:e.union([e.object({providerId:e.literal("custom-openai-compatible"),configurationHash:ut,maximumRequestCostUsd:e.number().finite().positive().max(1e4),requestTimeoutMs:e.number().int().min(1e3).max(3e5)}).strict(),os]).optional(),candidate:e.object({artifactId:O,contentHash:ut,preparationId:O,dispatchId:O,baseProfileId:O,workerImageDigest:e.string().regex(/^sha256:[a-f0-9]{64}$/)}).strict().optional(),harness:un.optional(),messages:dm.optional(),maxOutputTokens:e.number().int().min(1).max(4096).default(1024),temperature:e.number().min(0).max(2).default(0),topP:e.number().gt(0).max(1).default(1)}).strict(),e.object({kind:e.literal("fixture"),fixtureId:O}).strict()]),cs=e.object({schemaVersion:e.literal("openpond.modelStarterAttemptRequest.v1"),operationId:O,teamId:O,modelProjectId:O.nullable(),project:Xt.optional(),taskset:N,taskId:O,environmentSeed:e.number().int().min(0).max(2147483647).default(0),policy:Fr}).strict(),lm=e.object({modelProjectId:O.nullable(),taskset:N,afterTaskId:O.optional(),limit:e.number().int().min(1).max(100).default(25)}).strict(),um=e.object({modelProjectId:O.nullable(),taskset:N,available:e.boolean(),unavailableReason:e.string().max(1e3).nullable(),models:e.array(e.object({id:O,name:e.string().max(500)}).strict()).max(200),tasks:e.array(e.object({id:O,split:rn,inputPreview:e.string().max(500),fixtures:e.array(e.object({id:O,label:e.string().max(200)}).strict()).max(1e3)}).strict()).max(100),nextCursor:O.nullable()}).strict(),Qt=e.object({schemaVersion:e.literal("openpond.modelStarterAttemptSummary.v1"),id:O,revision:e.number().int().positive(),request:cs,status:e.enum(["queued","running","cancelling","completed","failed","cancelled"]),policySnapshot:e.object({modelId:O,provider:O,upstreamModelId:e.string().min(1).max(500),configurationHash:ut}).strict().nullable(),createdAt:e.iso.datetime(),startedAt:e.iso.datetime().nullable(),completedAt:e.iso.datetime().nullable(),cleanupComplete:e.boolean(),resultAvailable:e.boolean(),score:e.number().min(0).max(1).nullable(),gradingStatus:e.enum(["not_started","pending","scored","unscorable","not_configured"]).default("not_started"),passed:e.boolean().nullable(),outputPreview:e.string().max(500).nullable(),error:e.object({code:O,message:e.string().max(2e3)}).strict().nullable()}).strict().superRefine((t,a)=>{t.request.policy.kind==="fixture"!=(t.policySnapshot===null)&&a.addIssue({code:"custom",path:["policySnapshot"],message:"Fixture execution must not claim a model identity."}),t.status==="completed"&&(!t.cleanupComplete||!t.resultAvailable||!t.completedAt)&&a.addIssue({code:"custom",message:"Completed attempts require retained results and confirmed cleanup."})}),pm=e.object({modelProjectId:O,afterId:O.optional(),limit:e.number().int().min(1).max(100).default(25)}).strict(),fm=e.object({items:e.array(Qt).max(100),nextCursor:O.nullable()}).strict(),hm=e.object({schemaVersion:e.literal("openpond.modelStarterAttemptResult.v1"),attempt:Qt,output:e.string().max(1048576).nullable(),messages:e.array(e.record(e.string(),e.unknown())).max(4002),composition:dn.nullable(),grade:ia.nullable().optional(),experimentGrade:mm.nullable().optional(),environment:e.object({status:e.enum(["completed","budget_exhausted","cancelled","timed_out","policy_failure","environment_failure"]),collected:e.boolean(),definition:N,initialStateHash:ut.nullable(),finalStateHash:ut.nullable(),attemptHash:ut}).strict(),native:pn.optional(),providerRequestIds:e.array(O).max(1001),contentHash:ut}).strict().superRefine((t,a)=>{let r=t.attempt.request.policy.kind==="hosted_chat"?t.attempt.request.policy.harness:void 0;!!r!=!!t.native&&a.addIssue({code:"custom",path:["native"],message:"Standalone Harness results require their exact native evidence."}),t.native&&(!r||f(r)!==f(t.native.source)||t.native.modelConfigurationHash!==t.attempt.policySnapshot?.configurationHash||t.environment.initialStateHash!==null||t.environment.finalStateHash!==null||t.environment.status==="completed"&&(!t.environment.collected||t.output===null||t.native.partialOutputAvailable||t.native.outputHash!==f(t.output)))&&a.addIssue({code:"custom",path:["native"],message:"Native evidence differs from the admitted source, model or output."}),t.experimentGrade&&((t.grade||t.composition)&&a.addIssue({code:"custom",message:"Selected Experiment grading cannot claim another grade population."}),(!["completed","failed"].includes(t.attempt.status)||!t.attempt.resultAvailable||t.attempt.score!==t.experimentGrade.score||t.attempt.gradingStatus!==t.experimentGrade.gradingStatus||t.attempt.passed!==(t.experimentGrade.score===null?null:t.experimentGrade.passed))&&a.addIssue({code:"custom",message:"Experiment grading differs from its retained attempt summary."})),t.grade&&(t.composition&&a.addIssue({code:"custom",path:["grade"],message:"An ordinary grade cannot also claim a Reward composition."}),(!["completed","failed"].includes(t.attempt.status)||!t.attempt.resultAvailable||t.attempt.score!==t.grade.score||t.attempt.gradingStatus!==t.grade.gradingStatus||t.attempt.passed!==(t.grade.score===null?null:t.grade.passed))&&a.addIssue({code:"custom",path:["grade"],message:"Ordinary grade differs from its terminal attempt summary."}))}),Qe=class extends Error{static{c(this,"OpenPondModelStarterAttemptError")}constructor(t,a,r){super(r),this.status=t,this.code=a,this.name="OpenPondModelStarterAttemptError"}status;code},Vh=class{static{c(this,"OpenPondModelStarterAttemptsClient")}#e;constructor(t){let a=new URL(t.baseUrl);if(!t.apiKey.trim()||!t.teamId.trim()||!["https:","http:"].includes(a.protocol)||a.username||a.password||a.search||a.hash)throw new Error("Starter attempts require an HTTP(S) endpoint and workspace credentials.");this.#e={...t,baseUrl:a.toString().replace(/\/+$/,"")}}async create(t,a={}){let r=cs.parse(t);if(r.teamId!==this.#e.teamId)throw new Error("Attempt belongs to another workspace.");let n=this.#t(await this.#a("","POST",r,a.signal));if(C(n.request)!==C(r))throw new Qe(502,"attempt_request_mismatch","Attempt receipt differs from the submitted request.");return n}async get(t,a={}){return this.#t(await this.#a(`/${encodeURIComponent(O.parse(t))}`,"GET",void 0,a.signal),t)}async choices(t,a={}){let r=lm.parse(t),n=new URLSearchParams({...r.modelProjectId?{modelProjectId:r.modelProjectId}:{},tasksetId:r.taskset.id,revision:String(r.taskset.revision),contentHash:r.taskset.contentHash,limit:String(r.limit)});r.afterTaskId&&n.set("afterTaskId",r.afterTaskId);let i=um.parse(await this.#a(`/choices?${n}`,"GET",void 0,a.signal));if(i.modelProjectId!==r.modelProjectId||C(i.taskset)!==C(r.taskset)||i.tasks.length>r.limit||new Set(i.tasks.map(s=>s.id)).size!==i.tasks.length)throw new Qe(502,"attempt_choices_mismatch","Attempt choices differ from the selected model or Taskset.");return i}async cancel(t,a={}){return this.#t(await this.#a(`/${encodeURIComponent(O.parse(t))}/cancel`,"POST",void 0,a.signal),t)}async result(t,a={}){let r=hm.parse(await this.#a(`/${encodeURIComponent(O.parse(t))}/result`,"GET",void 0,a.signal));this.#t(r.attempt,t);let{contentHash:n,...i}=r;if(!r.attempt.resultAvailable||await L(i)!==n)throw new Qe(502,"attempt_result_integrity","Attempt result integrity failed.");return r}async list(t,a={}){let r=pm.parse(t),n=new URLSearchParams({modelProjectId:r.modelProjectId,limit:String(r.limit)});r.afterId&&n.set("afterId",r.afterId);let i=fm.parse(await this.#a(`?${n}`,"GET",void 0,a.signal));if(i.items.length>r.limit||new Set(i.items.map(s=>s.id)).size!==i.items.length||i.items.some(s=>this.#t(s).request.modelProjectId!==r.modelProjectId))throw new Qe(502,"attempt_page_mismatch","Attempt page differs from the selected model.");return i}#t(t,a){let r=Qt.parse(t);if(r.request.teamId!==this.#e.teamId||a&&r.id!==a)throw new Qe(502,"attempt_identity_mismatch","Attempt receipt belongs to another identity or workspace.");return r}async#a(t,a,r,n){let i=await(this.#e.fetch??globalThis.fetch)(`${this.#e.baseUrl}/v1/model-starter-attempts${t}`,{method:a,headers:{Authorization:`Bearer ${this.#e.apiKey}`,"X-OpenPond-Team-Id":this.#e.teamId,"Content-Type":"application/json",Accept:"application/json"},...r===void 0?{}:{body:JSON.stringify(r)},signal:n,redirect:"error"}),s=i.body?.getReader();if(!s)throw new Qe(i.status,"attempt_empty_response","Attempt response was empty.");let o=0,m="",u=new TextDecoder;try{for(;;){let l=await s.read();if(l.done)break;if(o+=l.value.byteLength,o>16777216)throw new Qe(502,"attempt_response_too_large","Attempt response exceeded its byte limit.");m+=u.decode(l.value,{stream:!0})}m+=u.decode()}finally{await s.cancel(),s.releaseLock()}let d=JSON.parse(m);if(!i.ok){let l=e.object({code:O,message:e.string().max(2e3)}).safeParse(d);throw new Qe(i.status,l.success?l.data.code:"attempt_request_failed",l.success?l.data.message:"Attempt request failed.")}return d}};var Mt=e.string().trim().min(1).max(240),Lr=e.string().regex(/^[a-f0-9]{64}$/),Nr=e.object({kind:e.literal("hosted_harness"),modelId:Mt,candidate:e.object({artifactId:Mt,contentHash:Lr,preparationId:Mt,dispatchId:Mt,baseProfileId:Mt,workerImageDigest:e.string().regex(/^sha256:[a-f0-9]{64}$/)}).strict().optional(),sourceCandidate:Ja.shape.sourceCandidate,reasoningEffort:e.enum(["off","low","medium","high","xhigh","max"]).optional(),profileRepositoryId:Mt,source:Ja,modelConfigurationHash:Lr,packageHash:Lr,externalDatasetBinding:na.optional()}).strict().superRefine((t,a)=>{JSON.stringify(t.externalDatasetBinding??null)!==JSON.stringify(t.source.externalDatasetBinding??null)&&a.addIssue({code:"custom",message:"The policy and source must bind the same external Dataset recipe."}),JSON.stringify(t.sourceCandidate??null)!==JSON.stringify(t.source.sourceCandidate??null)&&a.addIssue({code:"custom",message:"The policy and prepared source must bind the same actual source candidate."})}),Se=e.string().trim().min(1).max(200),ds=e.string().regex(/^[a-f0-9]{64}$/),gm=e.discriminatedUnion("kind",[Fr.options[0],e.object({kind:e.literal("fixture")}).strict(),Nr]),pt=e.object({schemaVersion:e.literal("openpond.modelTasksetRunRequest.v1"),operationId:Se,teamId:Se,modelProjectId:Se.nullable(),name:e.string().trim().min(1).max(200).optional(),project:Xt.optional(),taskset:N,policy:gm,population:e.array(In).min(1).max(1e4)}).strict().superRefine((t,a)=>{new Set(t.population.map(r=>r.receiptId)).size!==t.population.length&&a.addIssue({code:"custom",path:["population"],message:"Run receipt identities must be unique."}),t.population.some(r=>r.fixtureId!==null!=(t.policy.kind==="fixture"))&&a.addIssue({code:"custom",path:["population"],message:"Only fixture runs require a fixture identity for every member."}),t.population.some(r=>!/^(0|[1-9][0-9]*)$/.test(r.seed)||Number(r.seed)>2147483647)&&a.addIssue({code:"custom",path:["population"],message:"Hosted environment seeds must be integers from 0 to 2147483647."}),t.policy.kind==="hosted_harness"&&t.modelProjectId!==null&&a.addIssue({code:"custom",path:["modelProjectId"],message:"A Harness target retains its released Profile binding separately from Model artifacts."}),t.policy.kind==="hosted_harness"&&new Set(t.population.map(r=>C([r.taskId,r.seed]))).size!==t.population.length&&a.addIssue({code:"custom",path:["population"],message:"Harness case identities must be unique for each task and seed."})}),ms=e.object({schemaVersion:e.literal("openpond.modelTasksetRunSummary.v1"),id:Se,revision:e.number().int().positive(),teamId:Se,modelProjectId:Se.nullable(),name:e.string().trim().min(1).max(200).optional(),project:Xt.optional(),operationId:Se,taskset:N,policyKind:e.enum(["hosted_chat","fixture","hosted_harness"]),manifestHash:ds,status:e.enum(["queued","running","cancelling","completed","failed","cancelled"]),totalCount:e.number().int().min(1).max(1e4),counts:e.object({pending:e.number().int().nonnegative(),running:e.number().int().nonnegative(),completed:e.number().int().nonnegative(),failed:e.number().int().nonnegative(),cancelled:e.number().int().nonnegative()}).strict(),createdAt:e.iso.datetime(),startedAt:e.iso.datetime().nullable(),completedAt:e.iso.datetime().nullable(),cleanupComplete:e.boolean(),resultAvailable:e.boolean(),score:e.number().min(0).max(1).nullable(),metricName:e.string().min(1).max(240),error:e.object({code:Se,message:e.string().max(2e3)}).strict().nullable()}).strict().superRefine((t,a)=>{Object.values(t.counts).reduce((r,n)=>r+n,0)!==t.totalCount&&a.addIssue({code:"custom",path:["counts"],message:"Run counts must account for the complete population."}),t.status!=="completed"&&t.score!==null&&a.addIssue({code:"custom",path:["score"],message:"Only completed evaluations publish a metric value."}),["completed","failed","cancelled"].includes(t.status)&&(!t.completedAt||t.counts.pending||t.counts.running)&&a.addIssue({code:"custom",message:"Terminal runs require complete population accounting."}),t.status==="cancelled"&&!t.cleanupComplete&&a.addIssue({code:"custom",message:"Cancelled runs require confirmed cleanup."}),t.resultAvailable&&!["completed","failed","cancelled"].includes(t.status)&&a.addIssue({code:"custom",message:"Run results require terminal population accounting."}),t.status==="completed"&&(!t.cleanupComplete||!t.resultAvailable)&&a.addIssue({code:"custom",message:"Completed evaluations require retained results and confirmed cleanup."})}),ls=e.object({summary:ms,request:pt,manifest:la,policySnapshot:Qt.shape.policySnapshot}).strict(),Zh=e.object({modelProjectId:Se.optional(),projectId:Xt.shape.id.optional(),afterId:Se.optional(),limit:e.number().int().min(1).max(100).default(25)}).strict(),eg=e.object({items:e.array(ms).max(100),nextCursor:Se.nullable()}).strict(),vm=e.object({schemaVersion:e.literal("openpond.modelTasksetRunResult.v1"),run:ls,receipts:e.array(xn).min(1).max(1e4),metric:en.nullable(),contentHash:ds}).strict();function bm(t,a){He(a,"Taskset run manifest");let r=t.policy;if(r.kind!=="hosted_harness"||a.execution.kind!=="harness"||C(a.profileEvaluation)!==C(r.source)||C(a.execution.harnessRelease)!==C(r.source.harnessRelease)||a.metadata.profileRepositoryId!==r.profileRepositoryId||a.packageHash!==r.packageHash||a.policy.kind!=="model"||a.policy.model.provider!=="openpond"||a.policy.model.model!==r.modelId||a.policy.model.revision!==null||a.policy.model.artifactHash!==(r.candidate?.contentHash??null)||a.policy.model.tokenizerRevision!==null||a.policy.model.chatTemplateHash!==null||a.policy.configurationHash!==r.modelConfigurationHash||a.tasksetRelease.id!==t.taskset.id||a.tasksetRelease.contentHash!==t.taskset.contentHash||C(a.population)!==C(t.population)||a.population.some(n=>n.receiptId!==`evaluation-${f([a.id,n.taskId,n.seed]).slice(0,32)}`))throw new Error("Harness evaluation differs from its admitted source, package or model configuration.")}c(bm,"verifyHarnessExperimentManifest");async function km(t){let a=ls.parse(t),{summary:r,request:n,manifest:i,policySnapshot:s}=a;if(He(i,"Taskset run manifest"),i.contentHash!==r.manifestHash||i.id!==r.id||i.createdAt!==r.createdAt||r.teamId!==n.teamId||r.modelProjectId!==n.modelProjectId||C(r.project??null)!==C(n.project??null)||C(i.metadata.project??null)!==C(n.project??null)||(r.name??null)!==(n.name??null)||r.operationId!==n.operationId||r.policyKind!==n.policy.kind||r.totalCount!==n.population.length||r.metricName!==i.metricPolicy.primaryMetric||C(r.taskset)!==C(n.taskset)||i.tasksetRelease.id!==n.taskset.id||i.tasksetRelease.contentHash!==n.taskset.contentHash||C(i.population)!==C(n.population))throw new Error("Evaluation run differs from its admitted request or manifest.");if(n.policy.kind==="fixture"){if(i.policy.kind!=="fixture"||s!==null)throw new Error("Fixture checks cannot claim a model identity.")}else if(n.policy.kind==="hosted_harness"){if(bm(n,i),s!==null)throw new Error("Harness evaluations retain the native host model configuration.")}else if(i.policy.kind!=="model"||!s||s.modelId!==n.policy.modelId||i.policy.model.provider!==s.provider||i.policy.model.model!==s.upstreamModelId||i.policy.model.revision!==null||i.policy.model.artifactHash!==(n.policy.candidate?.contentHash??null)||i.policy.model.tokenizerRevision!==null||i.policy.model.chatTemplateHash!==null||i.policy.configurationHash!==await L({policy:n.policy,snapshot:s}))throw new Error("Evaluation model differs from its admitted policy.");return a}c(km,"verifyModelTasksetRunDetails");async function tg(t){let a=vm.parse(t),{contentHash:r,...n}=a;if(await L(n)!==r)throw new Error("Evaluation result integrity failed.");let{summary:i,manifest:s}=await km(a.run);if(!i.resultAvailable||!["completed","failed","cancelled"].includes(i.status))throw new Error("Evaluation result is not terminal.");let o=Hn(s,a.receipts);if(C(o)!==C(a.receipts))throw new Error("Evaluation receipts differ from the admitted order.");if(i.status==="completed"!=(a.metric!==null))throw new Error("Only completed evaluations retain a metric.");if(a.metric&&(tn(a.metric),a.metric.runManifest.id!==s.id||a.metric.runManifest.contentHash!==s.contentHash||C(a.metric.tasksetRelease)!==C(s.tasksetRelease)||C(a.metric.policy)!==C(s.metricPolicy)||C(a.metric.receiptRefs)!==C(a.receipts.map(({id:m,contentHash:u})=>({id:m,contentHash:u})))||a.metric.value!==i.score))throw new Error("Evaluation metric differs from its admitted run or receipt population.");return a}c(tg,"verifyModelTasksetRunResult");var hs=e.string().min(1).max(200).refine(t=>!["__proto__","prototype","constructor"].includes(t),"Use an ordinary field name."),Sm=e.array(hs).min(1).max(20),us=e.enum(["input","output","expectedOutput","evaluatorContext"]),ym=e.object({destination:us,path:Sm,source:us,sourcePath:e.array(hs).max(20)}).strict(),Ur=e.array(ym).max(100).superRefine((t,a)=>{for(let[r,n]of t.entries())t.slice(0,r).some(i=>i.destination===n.destination&&(fs(i.path,n.path)||fs(n.path,i.path)))&&a.addIssue({code:"custom",path:[r,"path"],message:"Mapped destination paths must not overlap."})});function og(t,a){let r=Ur.parse(a),n=structuredClone(t);for(let i of r){let s=t[i.source];for(let m of i.sourcePath){if(!ps(s)||!Object.hasOwn(s,m))throw new Error("The configured grader source field is unavailable.");s=s[m]}if(s===void 0)throw new Error("The configured grader source field is unavailable.");let o=n[i.destination];o===null&&(n[i.destination]=o={});for(let m of i.path.slice(0,-1)){let u=Object.hasOwn(o,m)?o[m]:void 0;if(u!==void 0&&!ps(u))throw new Error("A grader destination path crosses a scalar field.");u===void 0&&(o[m]={}),o=o[m]}o[i.path.at(-1)]=structuredClone(s)}return n}c(og,"mapExperimentGradingFields");function ps(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)}c(ps,"record");function fs(t,a){return t.length<=a.length&&t.every((r,n)=>r===a[n])}c(fs,"prefix");var ae=e.string().trim().min(1).max(200),ft=e.string().regex(/^[a-f0-9]{64}$/),Gr=e.object({id:ae,revision:e.number().int().positive(),contentHash:ft}).strict(),Jr=e.object({id:ae,version:e.string().min(1).max(200),contentHash:ft,name:e.string().trim().min(1).max(500).optional(),feedbackKey:cn,release:Gr.nullable(),mappings:Ur.optional()}).strict(),Kr=e.object({id:ae,version:e.string().min(1).max(200),contentHash:ft,mappings:Ur}).strict(),ug=e.object({operationId:ae,id:ae.optional(),expectedRevision:e.number().int().nonnegative(),request:pt,maximumCostUsd:e.number().finite().positive().max(1e4),graders:e.array(Kr).min(1).max(100).optional()}).strict().superRefine((t,a)=>{t.request.name||a.addIssue({code:"custom",path:["request","name"],message:"Name this Experiment before saving it."}),!!t.id!=t.expectedRevision>0&&a.addIssue({code:"custom",path:["expectedRevision"],message:"An update requires its saved definition revision."}),Math.round(t.maximumCostUsd*1e6)<1&&a.addIssue({code:"custom",path:["maximumCostUsd"],message:"The budget must be at least $0.000001."}),t.graders&&new Set(t.graders.map(r=>r.id)).size!==t.graders.length&&a.addIssue({code:"custom",path:["graders"],message:"Select each grader once."})}),wm=e.object({schemaVersion:e.literal("openpond.experimentDefinition.v1"),id:ae,teamId:ae,revision:e.number().int().positive(),request:pt,maximumCostUsd:e.number().finite().positive().max(1e4),graders:e.array(Jr).min(1).max(100),createdAt:e.iso.datetime(),updatedAt:e.iso.datetime()}).strict(),pg=wm.extend({contentHash:ft}),fg=e.object({operationId:ae,definition:Gr}).strict(),hg=e.object({projectId:ae.optional(),datasetHash:ft.optional(),search:e.string().trim().max(200).optional(),status:e.enum(["queued","running","cancelling","completed","failed","cancelled"]).optional(),afterId:ae.optional(),limit:e.number().int().min(1).max(100).default(30)}).strict(),gg=e.object({definition:Gr.nullable(),configurationHash:ft.optional(),admissionRequestHash:ft.optional(),sourceExperimentId:ae.optional(),maximumCostUsd:e.number().finite().positive().max(1e4),graders:e.array(Jr).min(1).max(100)}).strict().superRefine((t,a)=>{t.definition===null&&(!t.configurationHash||!t.admissionRequestHash)&&a.addIssue({code:"custom",path:["configurationHash"],message:"A flat Experiment requires its sealed configuration hash."})}),vg=e.object({operationId:ae,profileRepositoryId:ae,definitionId:ae,modelId:ae,reasoningEffort:e.enum(["off","low","medium","high","xhigh","max"]).optional(),maximumCostUsd:e.number().finite().positive().max(1e4),externalDatasetBinding:na.optional(),sourceCandidate:Nr.shape.sourceCandidate}).strict(),bg=e.object({request:pt,manifest:la,maximumCostUsd:e.number().finite().positive().max(1e4),graders:e.array(Jr).min(1).max(100)}).strict();var gs=e.string().trim().min(1).max(200),Wr=e.object({operationId:gs,request:pt,maximumCostUsd:e.number().finite().positive().max(1e4),graders:e.array(Kr).min(1).max(100).optional(),sourceExperimentId:gs.optional()}).strict().superRefine((t,a)=>{t.request.name||a.addIssue({code:"custom",path:["request","name"],message:"Name this Experiment before starting it."}),t.operationId!==t.request.operationId&&a.addIssue({code:"custom",path:["request","operationId"],message:"Use one operation identity for this Experiment."}),Math.round(t.maximumCostUsd*1e6)<1&&a.addIssue({code:"custom",path:["maximumCostUsd"],message:"The spending cap must be at least $0.000001."}),t.graders&&new Set(t.graders.map(r=>r.id)).size!==t.graders.length&&a.addIssue({code:"custom",path:["graders"],message:"Select each grader once."})});var B=e.string().trim().min(1).max(200),Pe=e.string().regex(/^[a-f0-9]{64}$/),Ba=e.object({id:B,contentHash:Pe}).strict(),Cg=e.object({available:e.boolean(),reason:e.string().max(1e3).nullable(),origin:ht.nullable()}).strict(),vs=e.object({schemaVersion:e.literal("openpond.postTrainingAttachment.v1"),binding:e.object({kind:e.enum(["preparation","policy"]),id:B,revision:e.number().int().positive(),contentHash:Pe}).strict(),projectId:B.nullable(),automatic:e.boolean(),maximumSpendUsd:e.number().finite().positive().max(1e4),experiments:e.array(e.object({id:B,configuration:Wr}).strict()).min(1).max(20),acceptancePlan:yn.nullable()}).strict().superRefine((t,a)=>{if(new Set(t.experiments.map(r=>r.id)).size!==t.experiments.length&&a.addIssue({code:"custom",message:"Attach each evaluation once."}),t.experiments.reduce((r,n)=>r+n.configuration.maximumCostUsd,0)>t.maximumSpendUsd+1e-9&&a.addIssue({code:"custom",message:"Attached evaluation budgets exceed the total approved budget."}),t.experiments.some(r=>(r.configuration.request.project?.id??null)!==t.projectId)&&a.addIssue({code:"custom",message:"Attached experiments must use the training Project."}),t.acceptancePlan){let r=new Set(t.acceptancePlan.checks.map(i=>i.id));t.acceptancePlan.checks.some(i=>!t.experiments.some(s=>s.id===i.id))&&a.addIssue({code:"custom",message:"Select the frozen Experiment for each acceptance check."}),t.acceptancePlan.maximumSpendUsd+t.experiments.filter(i=>!r.has(i.id)).reduce((i,s)=>i+s.configuration.maximumCostUsd,0)>t.maximumSpendUsd+1e-9&&a.addIssue({code:"custom",message:"Paired acceptance and diagnostic ceilings exceed the approved evaluation budget."})}});var Rm=e.object({baseline:Ba,checks:e.array(e.object({id:B,sourceRunId:B,sourceManifestHash:Pe,targetConfigurationHash:Pe,executionHash:Pe,populationHash:Pe,evaluator:Ba,feedbackKey:B,output:e.enum(["boolean","score"]),unit:e.string().min(1).max(80)}).strict()).min(1).max(100)}).strict(),xm=e.enum(["waiting_for_training","ready","preparing","queued","running","cleaning","completed","failed","blocked","cancelled","budget_exhausted"]),bs=e.object({schemaVersion:e.literal("openpond.postTrainingSummary.v1"),id:B,teamId:B,jobId:B,revision:e.number().int().positive(),planHash:Pe,automatic:e.boolean(),candidate:Ba.nullable(),state:xm,total:e.number().int().positive(),completed:e.number().int().nonnegative(),failed:e.number().int().nonnegative(),requiredOutcome:e.enum(["none","pending","passed","failed","blocked"]),reason:e.string().max(500).nullable(),groupId:B.nullable(),experimentIds:e.array(B).max(20),updatedAt:e.iso.datetime()}).strict().superRefine((t,a)=>{t.completed+t.failed>t.total&&a.addIssue({code:"custom",message:"Evaluation totals are inconsistent."}),["preparing","queued","running","cleaning","completed"].includes(t.state)&&!t.candidate&&a.addIssue({code:"custom",message:"Evaluation execution requires the exact trained candidate."})}),Tm=e.object({operationId:B,expectedRevision:e.number().int().positive(),planHash:Pe}).strict(),Im=e.object({operationId:B,attachment:vs}).strict(),Hm=e.object({id:B,teamId:B,ownerUserId:B,attachment:vs,qualification:Rm.nullable(),contentHash:Pe,createdAt:e.iso.datetime()}).strict();function _m(t){let a=Hm.parse(t);if(a.contentHash!==f({attachment:a.attachment,qualification:a.qualification}))throw new Error("The retained evaluation attachment or qualification changed.");return a}c(_m,"verifyPostTrainingPlan");function ks(t){let{request:a}=t,r=c(i=>`/v1/training/jobs/${encodeURIComponent(B.parse(i))}/post-training`,"path");async function n(i,s,o){if(i===null)return null;let m=bs.parse(i);if(m.teamId!==s||m.jobId!==o)throw new P("post_training_scope_mismatch","The evaluation summary belongs to another run or workspace.");return m}return c(n,"read"),{async attach(i,s){let o=Im.parse(s),m=_m(await a("/v1/training/post-training-plans",{method:"POST",body:JSON.stringify(o)}));if(m.teamId!==i||await L(m.attachment)!==await L(o.attachment))throw new P("post_training_plan_mismatch","The retained attachment differs from the reviewed plan.");return m},async get(i,s){return n(await a(r(s)),i,s)},async control(i,s,o,m){let u=Tm.parse(m),d=await n(await a(`${r(s)}/${o}`,{method:"POST",body:JSON.stringify(u)}),i,s);if(!d||d.planHash!==u.planHash)throw new P("post_training_control_mismatch","Evaluation control did not retain the approved plan.");return d}}}c(ks,"createPostTrainingClient");var Mg=e.object({teamId:B,actorId:B,projectId:B.nullable(),configuration:Ce,batches:e.array(da).max(1e4),sources:e.array(Le).max(1e4),definitions:e.array(re).max(1e4),experiments:e.array(e.object({id:B,name:e.string().max(500),configuration:Wr,graders:e.array(e.object({feedbackKey:B,name:e.string().max(500),ref:Ba}).strict()).max(100)}).strict()).max(1e4)}).strict(),$g=e.enum(["prepare","start","cancel","publish","attach"]),qg=e.object({teamId:B,actorId:B,configuration:Ce,policy:hn,inspection:Sn,iterations:e.array(e.object({iteration:gn,evals:bs.nullable()}).strict()).max(100),nextCursor:B.nullable()}).strict(),Dg=e.object({id:B,expectedRevision:e.number().int().positive(),policyHash:Pe,operationId:B,action:e.enum(["pause","resume","reserve","cancel-iteration","retry-iteration"]),iterationId:B.optional(),iterationRevision:e.number().int().positive().optional()}).strict();var ze=e.string().trim().min(1).max(240),Ts=_.extend({revision:e.number().int().positive()}).strict(),jm=Ts.extend({teamId:ze,jobId:ze,plan:_,baseline:_,candidate:_,state:wn.shape.state,updatedAt:e.string().datetime()}).strict(),Pm=e.object({schemaVersion:e.literal("openpond.trainingAcceptanceGroupPage.v1"),teamId:ze,jobId:ze,groups:e.array(jm).max(100),nextCursor:ze.nullable()}).strict(),Em=e.object({cursor:ze.optional(),limit:e.number().int().min(1).max(100).default(25)}).strict();function Am(t){let a=c(r=>(ze.parse(r.teamId),`/v1/training/jobs/${encodeURIComponent(ze.parse(r.jobId))}/acceptance-groups`),"route");return{async acceptanceGroups(r,n={}){let i=Em.parse(n),s=new URLSearchParams({limit:String(i.limit)});i.cursor&&s.set("cursor",i.cursor);let o=Pm.parse(await t(`${a(r)}?${s}`));if(o.teamId!==r.teamId||o.jobId!==r.jobId||o.groups.length>i.limit||o.groups.some(m=>m.teamId!==r.teamId||m.jobId!==r.jobId||i.cursor&&m.id<=i.cursor)||new Set(o.groups.map(m=>m.id)).size!==o.groups.length||o.nextCursor!==null&&o.nextCursor!==o.groups.at(-1)?.id)throw new P("acceptance_group_scope_mismatch","Acceptance groups do not match the requested workspace, job or cursor.");return o},async acceptanceGroup(r,n,i){let s=i?Ts.parse({id:i.id,revision:i.revision,contentHash:i.contentHash}):null;if(s&&s.id!==n)throw new P("acceptance_group_identity_mismatch","The retained group reference differs from the requested group.");let o=s?`?revision=${s.revision}`:"",m=Rn(await t(`${a(r)}/${encodeURIComponent(ze.parse(n))}${o}`));if(m.manifest.teamId!==r.teamId||m.manifest.trainingJob.id!==r.jobId||m.manifest.id!==n||s&&(m.revision!==s.revision||m.contentHash!==s.contentHash))throw new P("acceptance_group_identity_mismatch","Acceptance evidence does not match the requested workspace, job or retained revision.");return m}}}c(Am,"createTrainingAcceptanceClient");var Q=e.string().trim().min(1).max(191),ta=e.string().regex(/^[a-f0-9]{64}$/),Is=e.object({schemaVersion:e.literal("openpond.trainingPreparationRequest.v1"),teamId:Q,operationId:Q,projectId:Q.nullable(),configuration:e.object({id:Q,expectedRevision:e.number().int().positive(),expectedEtag:ta}).strict(),origin:ht.optional(),batch:N,name:e.string().trim().min(1).max(191),maximumSpendUsd:e.number().finite().positive().max(1e6)}).strict(),Cm=e.object({schemaVersion:e.literal("openpond.trainingPreparationPlan.v1"),id:Q,creatorUserId:Q,request:Is,requestHash:ta,source:e.lazy(()=>js),submissionHash:ta,createdAt:e.string().datetime({offset:!0})}).strict(),Mm=Cm.extend({contentHash:ta}).strict(),Hs=e.object({schemaVersion:e.literal("openpond.trainingPreparationReceipt.v1"),plan:Mm,revision:e.number().int().positive(),state:e.enum(["prepared","submitted","cancelled"]),jobId:Q.nullable()}).strict().superRefine((t,a)=>{t.state==="submitted"!=!!t.jobId&&a.addIssue({code:"custom",path:["jobId"],message:"Only submitted preparations identify a job."})}),Ss=e.object({teamId:Q,planHash:ta,expectedRevision:e.number().int().positive()}).strict(),$m=e.object({projectId:Q.optional(),state:e.enum(["prepared","submitted","cancelled"]).optional(),afterId:Q.optional(),limit:e.number().int().min(1).max(100).default(25)}).strict(),qm=e.object({schemaVersion:e.literal("openpond.trainingPreparationPage.v1"),teamId:Q,items:e.array(Hs).max(100),nextCursor:Q.nullable()}).strict();async function Dm(t){let a=Hs.parse(t),{contentHash:r,...n}=a.plan;if(await L(n)!==r||await L(n.request)!==n.requestHash||n.source.modelProject.id!==n.request.configuration.id||await L(n.source.origin??null)!==await L(n.request.origin??null))throw new P("training_preparation_mismatch","The prepared training inputs changed.");return a}c(Dm,"parseAndVerifyTrainingPreparationReceipt");function Om(t){async function a(r,n,i){let s=await Dm(r);if(s.plan.request.teamId!==n||i&&s.plan.id!==i)throw new P("training_preparation_scope_mismatch","The training preparation belongs to a different workspace or request.");return s}return c(a,"read"),{async listPreparations(r,n={}){let i=Q.parse(r),s=$m.parse(n),o=new URLSearchParams;for(let[d,l]of Object.entries(s))o.set(d,String(l));let m=qm.parse(await t(`/v1/training/preparations?${o}`));if(m.teamId!==i||m.items.length>s.limit||new Set(m.items.map(d=>d.plan.id)).size!==m.items.length||m.nextCursor!==null&&(m.nextCursor!==m.items.at(-1)?.plan.id||m.nextCursor===s.afterId))throw new P("training_preparation_page_mismatch","The preparation page does not match its workspace or cursor.");let u=await Promise.all(m.items.map(async d=>{let l=await a(d,i);if(s.projectId&&l.plan.request.projectId!==s.projectId||s.state&&l.state!==s.state)throw new P("training_preparation_page_mismatch","A preparation does not match the requested Project or state.");return l}));return{...m,items:u}},async prepareRun(r){let n=Is.parse(r),i=await a(await t("/v1/training/preparations",{method:"POST",body:JSON.stringify(n)}),n.teamId);if(i.plan.requestHash!==await L(n))throw new P("training_preparation_request_mismatch","The preparation does not match the requested run.");return i},async getPreparation(r,n){return a(await t(`/v1/training/preparations/${encodeURIComponent(Q.parse(n))}`),Q.parse(r),n)},async startPreparation(r,n){let i=Ss.parse(n),s=await a(await t(`/v1/training/preparations/${encodeURIComponent(Q.parse(r))}/start`,{method:"POST",body:JSON.stringify(i)}),i.teamId,r);if(s.plan.contentHash!==i.planHash||s.state!=="submitted")throw new P("training_preparation_start_mismatch","The submitted run does not match the approved preparation.");return s},async cancelPreparation(r,n){let i=Ss.parse(n),s=await a(await t(`/v1/training/preparations/${encodeURIComponent(Q.parse(r))}/cancel`,{method:"POST",body:JSON.stringify(i)}),i.teamId,r);if(s.plan.contentHash!==i.planHash||s.state!=="cancelled")throw new P("training_preparation_cancel_mismatch","The preparation cancellation could not be verified.");return s}}}c(Om,"createTrainingPreparationClient");var Bm=e.object({schemaVersion:e.literal("openpond.trainingHarnessSourcePublication.v1"),harnessRelease:S,sourcePackageHash:e.string().regex(/^[a-f0-9]{64}$/),sizeBytes:e.number().int().positive().max(kt)}).strict();function Vm(t){let a=c(r=>{let n=S.parse(r);return`/v1/training/harness-sources/${encodeURIComponent(n.id)}/${n.contentHash}`},"route");return{async publishHarnessSource(r){Me(r,kt,"Training Harness source");let n=wr(r),i=n.agentSnapshot.portability;if(!i.portable||i.blockers.length||i.localOnlyAssetRefs.length||i.hostPrivateAssetRefs.length||n.harnessRelease.files.some(o=>o.visibility!=="policy"))throw new Error("Hosted training Harness publication requires portable, policy-visible source.");let s=Bm.parse(await t(a({id:n.harnessRelease.id,contentHash:n.harnessRelease.contentHash}),{method:"PUT",body:JSON.stringify(n)}));if(s.harnessRelease.id!==n.harnessRelease.id||s.harnessRelease.contentHash!==n.harnessRelease.contentHash||s.sourcePackageHash!==n.contentHash)throw new Error("Published Harness source differs from the selected immutable package.");return s},async getHarnessSource(r){let n=await t(a(r),void 0,kt);return Me(n,kt,"Training Harness source"),wr(n,r)}}}c(Vm,"createTrainingHarnessSourceClient");var et=e.string().trim().min(1).max(500),zm=e.string().regex(/^[a-f0-9]{64}$/),Xr=e.object({schemaVersion:e.literal("openpond.trainingCandidateDecisionRequest.v1"),teamId:et,jobId:et,artifact:_,evaluation:_,executionReceipt:_,decision:e.enum(["accepted","rejected"]),reason:e.string().trim().min(1).max(5e3),idempotencyKey:et,expectedDecision:_.nullable()}).strict(),Fm=e.object({schemaVersion:e.literal("openpond.trainingCandidateDecision.v1"),id:et,request:Xr,revision:e.number().int().positive(),actor:e.object({userId:et,kind:e.enum(["user","api_key","agent_delegate"]),id:et}).strict(),decidedAt:e.string().datetime({offset:!0}),contentHash:zm}).strict().superRefine((t,a)=>{t.revision===1!=(t.request.expectedDecision===null)&&a.addIssue({code:"custom",path:["revision"],message:"A first decision has no predecessor; later decisions must reference the prior decision."}),t.request.expectedDecision?.id===t.id&&a.addIssue({code:"custom",path:["request","expectedDecision"],message:"A decision cannot supersede itself."})});async function Lm(t){let{contentHash:a,...r}=t;return L(r)}c(Lm,"trainingCandidateDecisionHash");async function ys(t,a){Me(t,32768,"Training candidate decision");let r=Fm.parse(t);if(r.contentHash!==await Lm(r))throw new P("content_hash_mismatch","Training candidate decision content hash does not match.");if(r.request.teamId!==a.teamId||r.request.jobId!==a.jobId||r.request.artifact.id!==a.artifact.id||r.request.artifact.contentHash!==a.artifact.contentHash)throw new P("candidate_decision_identity_mismatch","Training candidate decision belongs to a different team, Job or artifact.");if(a.request&&await L(r.request)!==await L(Xr.parse(a.request)))throw new P("candidate_decision_request_mismatch","Training candidate decision does not match the submitted review.");return r}c(ys,"parseAndVerifyTrainingCandidateDecision");function Nm(t){function a(r){return`/v1/training/jobs/${encodeURIComponent(et.parse(r.jobId))}/candidates/${encodeURIComponent(_.parse(r.artifact).id)}/decision`}return c(a,"route"),{async candidateDecision(r,n={}){et.parse(r.teamId);let i=n.decision?_.parse(n.decision):void 0,s=i?`?decisionId=${encodeURIComponent(i.id)}`:"",o=e.object({decision:e.unknown().nullable()}).strict().parse(await t(`${a(r)}${s}`));if(o.decision===null&&!i)return null;let m=await ys(o.decision,r);if(i&&(m.id!==i.id||m.contentHash!==i.contentHash))throw new P("candidate_decision_identity_mismatch","Training candidate decision does not match the requested history entry.");return m},async recordCandidateDecision(r){let n=Xr.parse(r),i=await t(a(n),{method:"POST",body:JSON.stringify(n)});return ys(i,{...n,request:n})}}}c(Nm,"createTrainingCandidateDecisionClient");var $t=e.string().trim().min(1).max(500),ea=e.string().regex(/^[a-f0-9]{64}$/),Um=e.object({taskId:$t,taskSha256:ea,resultSha256:ea,input:e.object({instruction:e.string().max(1e6),context:e.record(e.string(),e.unknown())}).strict(),output:e.string().max(1e6),outputSha256:ea,score:e.number().finite().min(0).max(1),evidence:e.object({kind:e.enum(["worker_command","hosted_trace","local_trace"]),id:$t}).strict()}).strict(),Gm=e.object({schemaVersion:e.literal("openpond.trainingEvaluationTaskPage.v1"),jobId:$t,teamId:$t,evaluation:_,kind:e.enum(["baseline","candidate"]),policyVersion:e.number().int().nonnegative(),taskset:N,panelSha256:ea,offset:e.number().int().nonnegative(),total:e.number().int().min(1).max(1e4),tasks:e.array(Um).min(1).max(100),nextCursor:e.string().regex(/^[1-9]\d*$/).nullable(),contentHash:ea}).strict().superRefine((t,a)=>{let r=t.offset+t.tasks.length,n=r<t.total?String(r):null;(r>t.total||t.nextCursor!==n)&&a.addIssue({code:"custom",path:["nextCursor"],message:"Evaluation pagination must cover consecutive task positions."}),new Set(t.tasks.map(i=>i.taskId)).size!==t.tasks.length&&a.addIssue({code:"custom",path:["tasks"],message:"Evaluation task identities must be unique."})});async function Jm(t){let{contentHash:a,...r}=t;return L(r)}c(Jm,"trainingEvaluationTaskPageHash");async function Km(t,a){Me(t,ar,"Training evaluation task page");let r=Gm.parse(t),n=_.parse(a.evaluation);if(r.jobId!==$t.parse(a.jobId)||r.evaluation.id!==n.id||r.evaluation.contentHash!==n.contentHash||r.offset!==(a.offset??0)||a.teamId!==void 0&&r.teamId!==$t.parse(a.teamId))throw new P("evaluation_page_identity_mismatch","Evaluation results differ from the requested Job, evaluation, or page.");if(await Jm(r)!==r.contentHash)throw new P("evaluation_page_hash_mismatch","Evaluation task page content hash did not match.");for(let i of r.tasks)if(await L(i.output)!==i.outputSha256)throw new P("evaluation_output_hash_mismatch","A retained evaluation output hash did not match.");return r}c(Km,"parseAndVerifyTrainingEvaluationTaskPage");var Wm=e.array(e.object({id:e.string().trim().min(1)}).catchall(e.unknown())).min(1).max(1e3),Ym=e.object({binding:Ee,rewards:e.array(tt).min(1).max(100)}).strict();async function Zg(t){let a=t.rewardExecution?Ym.parse(t.rewardExecution):null,r=Wm.parse(a?le(a.binding,a.rewards):t.graders);if(new Set(r.map(i=>i.id)).size!==r.length)throw new Error("Training grader identities must be unique.");let n=await L({schemaVersion:"openpond.trainingGraderSet.v1",graders:r});return{kind:"deterministic",grader:{id:`training-graders-${n.slice(0,32)}`,contentHash:n},composer:a?{id:a.binding.id,contentHash:a.binding.contentHash}:null}}c(Zg,"deterministicTrainingRewardSource");var tv="evaluation-source.json",Yr=e.object({id:e.string().trim().min(1),clusterKey:e.string().trim().min(1),split:e.enum(["train","validation","frozen_eval"])}).passthrough(),Xm=e.object({schemaVersion:e.literal("openpond.trainingEvaluationSource.v1"),taskset:N,tasks:e.array(Yr).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,i)=>{n.split==="train"&&a.addIssue({code:"custom",path:["tasks",i,"split"],message:"Evaluation sources require held-out tasks."}),r.has(n.id)&&a.addIssue({code:"custom",path:["tasks",i,"id"],message:"Evaluation task identities must be unique."}),r.add(n.id)})});function av(t,a){let r=e.array(Yr).min(1).max(1e4).parse(t),n=e.array(Yr).min(1).max(1e4).parse(a),i=new Set,s=new Set;for(let m of r){if(m.split!=="train")throw new Error("The training population contains a held-out task.");if(i.has(m.id))throw new Error("Training task identities must be unique.");i.add(m.id),s.add(m.clusterKey)}let o=new Set;for(let m of n){if(m.split==="train")throw new Error("The evaluation population contains a training task.");if(o.has(m.id))throw new Error("Evaluation task identities must be unique.");if(i.has(m.id)||s.has(m.clusterKey))throw new Error("Training and evaluation tasks or families overlap.");o.add(m.id)}}c(av,"assertTrainingEvaluationIsolation");async function rv(t){let a=Xm.parse(t),r=await L(a);return{taskset:a.taskset,dataset:{id:`training-evaluation-${r.slice(0,32)}`,contentHash:r}}}c(rv,"trainingEvaluationSourceRef");var z=e.string().trim().min(1).max(500),ne=e.string().regex(/^[a-f0-9]{64}$/),ye=e.string().datetime({offset:!0}),Qm=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:_,payload:e.unknown(),contentHash:ne}).strict(),Zm=e.object({schemaVersion:e.literal("openpond.trainingInputArtifact.v2"),kind:e.enum(["portable_training_bundle","reward_model_dataset"]),sourceManifest:_,artifactRef:e.string().trim().min(1).max(2e3),contentHash:ne,sizeBytes:e.number().int().positive(),createdAt:ye}).strict();async function el(t){let{contentHash:a,...r}=t;return L(r)}c(el,"trainingInputArtifactUploadHash");async function tl(t){Me(t,kt,"Training input artifact");let a=Qm.parse(t),r=await el(a);if(a.contentHash!==r)throw new P("content_hash_mismatch",`Training input artifact contentHash ${a.contentHash} does not match ${r}.`);return a}c(tl,"parseAndVerifyTrainingInputArtifactUpload");var _s=e.enum(["reward_model_train","policy_optimize"]),al=e.enum(["queued","admitting","provisioning","running","stopping","cancelling","succeeded","failed","cancelled"]),rl=e.object({id:z,version:e.string().trim().min(1).max(200).nullable().default(null),required:e.boolean().default(!0)}).strict(),js=e.object({origin:ht.optional(),modelProject:e.object({id:z,portableProjectId:z,revision:e.number().int().positive(),contentHash:ne}).strict(),harnessRunManifest:_,harnessRelease:_,taskset:N,tasksetRelease:_,evaluation:e.object({taskset:N,dataset:_}).strict().nullable().optional(),dataset:_,evidenceSets:e.array(_).max(1e4)}).strict(),nl=e.object({kind:e.literal("reward_model_train"),baseModel:Ke,preferenceDatasetRelease:_,processorRelease:_,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(),il=e.object({kind:e.literal("deterministic"),grader:_,composer:_.nullable().default(null)}).strict(),sl=e.object({kind:e.literal("learned_reward"),rewardModelVersion:_,qualificationReport:_.nullable().default(null),evaluationReferences:e.array(_).max(1e3).default([]),scorerArtifact:e.object({artifactRef:e.string().trim().min(1).max(2e3),contentHash:ne,executionReceipt:_}).strict(),processorRelease:_,rewardComposerRelease:_}).strict(),ol=e.object({kind:e.literal("policy_optimize"),baseModel:Ke,recipe:nr,rewardSource:e.discriminatedUnion("kind",[il,sl]),resumeFrom:_.nullable().default(null)}).strict(),cl=e.discriminatedUnion("kind",[nl,ol]),dl=e.object({approvalHash:ne,approvedAt:ye,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(),ml=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:js,job:cl,requestedCapabilities:e.array(rl).max(1e3),placementObjective:e.enum(["fast","balanced","economical"]),budget:e.object({maximumSpendUsd:e.number().nonnegative(),maximumWallSeconds:e.number().int().positive()}).strict(),approval:dl,contentHash:ne}).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."})});async function ll(t){let{contentHash:a,...r}=t;return L(r)}c(ll,"trainingJobSubmissionHash");async function ul(t){Me(t,Mn,"Training Job submission");let a=ml.parse(t),r=await ll(a);if(a.contentHash!==r)throw new P("content_hash_mismatch",`Training Job contentHash ${a.contentHash} does not match ${r}.`);return a}c(ul,"parseAndVerifyTrainingJobSubmission");var Zt=e.object({schemaVersion:e.literal("openpond.trainingJob.v2"),id:z,teamId:z,kind:_s,modelProjectId:z,portableProjectId:z,sourceProjectRevision:e.number().int().positive(),submissionHash:ne,state:al,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:ye,updatedAt:ye,completedAt:ye.nullable()}).strict(),pl=e.object({schemaVersion:e.literal("openpond.trainingJobPage.v2"),jobs:e.array(Zt).max(1e3),nextCursor:e.string().trim().min(1).max(2e3).nullable()}).strict(),fl=e.object({schemaVersion:e.literal("openpond.trainingJobEvent.v2"),id:z,jobId:z,sequence:e.number().int().nonnegative(),type:z,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:ye}).strict(),hl=e.object({schemaVersion:e.literal("openpond.trainingJobLog.v2"),jobId:z,sequence:e.number().int().nonnegative(),level:e.enum(["debug","info","warning","error"]),message:e.string().max(2e4),createdAt:ye}).strict(),ws=e.object({expectedVersion:e.number().int().nonnegative()}).strict(),gl=e.object({schemaVersion:e.literal("openpond.trainingJobOutput.v2"),id:z,jobId:z,kind:e.enum(["checkpoint","adapter","scorer","metrics","evaluation","trace","receipt"]),artifactRef:e.string().trim().min(1).max(2e3),contentHash:ne,sizeBytes:e.number().int().nonnegative(),metadata:e.record(e.string(),e.unknown()).default({}),createdAt:ye}).strict(),Qr=e.object({schemaVersion:e.literal("openpond.trainingExecutionReceipt.v2"),id:z,teamId:z,jobId:z,submissionHash:ne,manifestHash:ne,recipeHash:ne,capabilityHash:ne,runtimeRelease:_,inputs:e.array(_).max(1e4),outputs:e.array(_).max(1e4),spendUsd:e.number().nonnegative(),durationSeconds:e.number().nonnegative(),cleanupComplete:e.boolean(),issuer:z,issuedAt:ye,signature:e.string().trim().min(1).max(1e4).nullable()}).strict();async function vl(t){return L(Qr.parse(t))}c(vl,"trainingExecutionReceiptHash");async function nv(t,a){let r=Qr.parse(t),n=z.parse(a.id),i=ne.parse(a.contentHash),s=await vl(r);if(r.id!==n||s!==i)throw new P("execution_receipt_mismatch","The execution receipt identity or canonical content hash did not match.");if(a.teamId!==void 0&&r.teamId!==z.parse(a.teamId))throw new P("execution_receipt_team_mismatch","The execution receipt belongs to a different team.");if(a.jobId!==void 0&&r.jobId!==z.parse(a.jobId))throw new P("execution_receipt_job_mismatch","The execution receipt belongs to a different Training Job.");if((a.requireCleanup??!0)&&!r.cleanupComplete)throw new P("execution_cleanup_incomplete","The execution receipt does not attest complete terminal cleanup.");return r}c(nv,"parseAndVerifyTrainingExecutionReceipt");var bl=e.object({schemaVersion:e.literal("openpond.trainingJobOutputs.v2"),outputs:e.array(gl).max(1e4),receipt:Qr.nullable()}).strict(),kl=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(),Ps=class extends Error{static{c(this,"OpenPondTrainingApiError")}status;code;retryable;requestId;details;constructor(t,a){super(a.message),this.name="OpenPondTrainingApiError",this.status=t,this.code=a.code,this.retryable=a.retryable,this.requestId=a.requestId,this.details=a.details}},Sl=e.object({schemaVersion:e.literal("openpond.trainingCapabilities.v2"),capabilityHash:ne,jobKinds:e.array(_s),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:ye,expiresAt:ye}).strict();function Rs(t){let a={};return new Headers(t).forEach((r,n)=>{a[n]=r}),a}c(Rs,"headersRecord");function iv(t){let a=t.fetch??fetch,r=t.baseUrl.replace(/\/$/,"");async function n(i,s,o=ar){let u=s?.method===void 0||s.method.toUpperCase()==="GET"?3:1;for(let d=1;d<=u;d+=1){let l;try{let g=typeof t.headers=="function"?await t.headers():t.headers??{};l=await a(`${r}${i}`,{...s,headers:{accept:tr,...s?.body?{"content-type":tr}:{},...Rs(g),...Rs(s?.headers)}})}catch(g){if(d===u||s?.signal?.aborted||!xs(null,g))throw g;await new Promise(v=>setTimeout(v,250*2**(d-1)));continue}let p=rr(await l.text(),o,"Training API response");if(l.ok)return p;let h=yl(p,l.status);if(d===u||!xs(l.status,h))throw h;await new Promise(g=>setTimeout(g,250*2**(d-1)))}throw new P("training_read_retry_exhausted","Training read retry loop exhausted without a response.")}return c(n,"request"),{postTraining:ks({request:n}),...Om(n),...Am(n),...Vm(n),...Nm(n),async capabilities(){return Sl.parse(Ze(await n("/v1/training/capabilities"),"capabilities"))},async stageArtifact(i){let s=await tl(i);return Zm.parse(Ze(await n("/v1/training/artifacts",{method:"POST",body:JSON.stringify(s)}),"artifact"))},async createJob(i){let s=await ul(i);return Zt.parse(Ze(await n("/v1/training/jobs",{method:"POST",body:JSON.stringify(s)}),"job"))},async listJobs(i={}){let s=new URLSearchParams;i.modelProjectId&&s.set("modelProjectId",z.parse(i.modelProjectId)),i.cursor&&s.set("cursor",e.string().trim().min(1).max(2e3).parse(i.cursor)),i.limit!==void 0&&s.set("limit",String(e.number().int().min(1).max(1e3).parse(i.limit)));let o=s.size>0?`?${s.toString()}`:"";return pl.parse(await n(`/v1/training/jobs${o}`))},async getJob(i){return Zt.parse(Ze(await n(`/v1/training/jobs/${encodeURIComponent(z.parse(i))}`),"job"))},async cancelJob(i,s){let o=ws.parse({expectedVersion:s});return Zt.parse(Ze(await n(`/v1/training/jobs/${encodeURIComponent(z.parse(i))}/cancel`,{method:"POST",body:JSON.stringify(o)}),"job"))},async stopAfterGroup(i,s){let o=ws.parse({expectedVersion:s});return Zt.parse(Ze(await n(`/v1/training/jobs/${encodeURIComponent(z.parse(i))}/stop-after-group`,{method:"POST",body:JSON.stringify(o)}),"job"))},async events(i){return e.array(fl).parse(Ze(await n(`/v1/training/jobs/${encodeURIComponent(z.parse(i))}/events`),"events"))},async outputs(i){return bl.parse(await n(`/v1/training/jobs/${encodeURIComponent(z.parse(i))}/outputs`))},async evaluationTasks(i,s,o={}){let m=z.parse(i),u=_.parse(s),d=new URLSearchParams,l=o.cursor===void 0?void 0:e.string().regex(/^[1-9]\d*$/).parse(o.cursor),p=l===void 0?0:e.number().int().min(1).max(9999).parse(Number(l));l!==void 0&&d.set("cursor",l),o.limit!==void 0&&d.set("limit",String(e.number().int().min(1).max(100).parse(o.limit)));let h=d.size?`?${d.toString()}`:"";return Km(await n(`/v1/training/jobs/${encodeURIComponent(m)}/evaluations/${encodeURIComponent(u.id)}/tasks${h}`),{jobId:m,evaluation:u,offset:p})},async logs(i){return e.array(hl).max(1e5).parse(Ze(await n(`/v1/training/jobs/${encodeURIComponent(z.parse(i))}/logs`),"logs"))}}}c(iv,"createTrainingClient");function xs(t,a){return t!==null?t===408||t===429||t>=500:a instanceof Ps?a.retryable:a instanceof P?a.code==="invalid_error_response":a instanceof TypeError}c(xs,"trainingReadFailureIsRetryable");function Ze(t,a){return!t||typeof t!="object"||Array.isArray(t)?t:a in t?t[a]:t}c(Ze,"unwrapObject");function yl(t,a){let r=kl.safeParse(t);return r.success?new Ps(a,r.data):new P("invalid_error_response",`Training request failed with HTTP ${a} and an invalid error envelope.`)}c(yl,"trainingApiError");export{Xe as a,uh as b,fa as c,Xa as d,se as e,Pn as f,qs as g,Qa as h,Za as i,En as j,C as k,L as l,N as m,Ke as n,$n as o,qn as p,Ot as q,Ls as r,Dn as s,Us as t,Al as u,ga as v,Cl as w,Ce as x,On as y,Ml as z,b as A,x as B,$ as C,S as D,$e as E,G as F,f as G,He as H,nu as I,st as J,iu as K,Vt as L,vo as M,su as N,or as O,mu as P,cr as Q,Yn as R,Xn as S,dr as T,Qn as U,De as V,ve as W,We as X,ot as Y,hr as Z,ct as _,W as $,yt as aa,as as ba,rs as ca,ns as da,oe as ea,cm as fa,kr as ga,Bu as ha,Vu as ia,Eo as ja,Fu as ka,Lu as la,wr as ma,mt as na,Pa as oa,Mp as pa,$p as qa,qp as ra,Dp as sa,Op as ta,Ec as ua,Bp as va,Vp as wa,Dc as xa,Vc as ya,zc as za,_a as Aa,Jc as Ba,Gt as Ca,Pr as Da,Ca as Ea,Mr as Fa,he as Ga,ed as Ha,Jt as Ia,nd as Ja,id as Ka,Wp as La,sd as Ma,od as Na,dd as Oa,md as Pa,te as Qa,ud as Ra,Pi as Sa,lt as Ta,Id as Ua,je as Va,Di as Wa,$r as Xa,_t as Ya,jd as Za,Pd as _a,Bi as $a,qr as ab,qa as bb,Cd as cb,Dr as db,Wt as eb,pf as fb,ff as gb,hf as hb,gf as ib,Ui as jb,vf as kb,$d as lb,os as mb,Ph as nb,Eh as ob,mm as pb,lm as qb,Vh as rb,pt as sb,ls as tb,Zh as ub,eg as vb,bm as wb,km as xb,tg as yb,Ur as zb,og as Ab,Gr as Bb,Jr as Cb,Kr as Db,ug as Eb,hg as Fb,gg as Gb,vg as Hb,bg as Ib,Wr as Jb,Cg as Kb,vs as Lb,bs as Mb,Tm as Nb,Im as Ob,_m as Pb,Mg as Qb,qg as Rb,Dg as Sb,Is as Tb,Ss as Ub,Xr as Vb,ys as Wb,Km as Xb,Zg as Yb,tv as Zb,Xm as _b,av as $b,rv as ac,el as bc,tl as cc,ll as dc,ul as ec,Zt as fc,fl as gc,vl as hc,nv as ic,bl as jc,Ps as kc,iv as lc,$a as mc,Kt as nc,Ki as oc,Br as pc,Vr as qc,Bd as rc,Oa as sc,Ra as tc,Ud as uc,Gd as vc,Yt as wc,Yd as xc,Xd as yc,Qd as zc,em as Ac,Qi as Bc,tm as Cc,am as Dc,es as Ec,ts as Fc,rm as Gc};