openpond 0.2.35 → 0.2.36
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app-server.d.ts +8 -1
- package/dist/app-server.js +1 -1
- package/dist/chunks/{actions-command-6LFZFTLA.js → actions-command-U2DMVGDS.js} +1 -1
- package/dist/chunks/{app-layer-HK2GTSRX.js → app-layer-KPPQSL67.js} +1 -1
- package/dist/chunks/app-server-runtime-ELR3VCKR.js +2 -0
- package/dist/chunks/{apps-YJRRLX2N.js → apps-NBV45ZGW.js} +1 -1
- package/dist/chunks/{chunk-VL553I5E.js → chunk-5WFHGIQB.js} +2 -2
- package/dist/chunks/{chunk-QWENRTVW.js → chunk-BFHAJTU4.js} +1 -1
- package/dist/chunks/{chunk-BAKCGJ5D.js → chunk-CL6YPTWP.js} +1 -1
- package/dist/chunks/{chunk-77BXXOHW.js → chunk-DJHJIXMW.js} +1 -1
- package/dist/chunks/{chunk-PZ2ZILPN.js → chunk-FIFGH6W3.js} +1 -1
- package/dist/chunks/chunk-JB6FTAMW.js +2 -0
- package/dist/chunks/{chunk-TBX3Z7TX.js → chunk-L67V63N3.js} +1 -1
- package/dist/chunks/{chunk-BOQBDCVU.js → chunk-LL3ZAZEU.js} +1 -1
- package/dist/chunks/{chunk-XR6ZLKVW.js → chunk-MPNHNWN6.js} +1 -1
- package/dist/chunks/{chunk-E4U7LXSW.js → chunk-P3DI3ZMK.js} +2 -2
- package/dist/chunks/{chunk-OYJ73BSC.js → chunk-PBRD43CI.js} +1 -1
- package/dist/chunks/{chunk-BRJKTOMI.js → chunk-Q2Z27DCK.js} +1 -1
- package/dist/chunks/{chunk-CWW2EK77.js → chunk-RC3JXLP7.js} +1 -1
- package/dist/chunks/{chunk-SRQVXHSM.js → chunk-SHWLRMDG.js} +1 -1
- package/dist/chunks/{chunk-JLWAK5PS.js → chunk-VRY5TEEF.js} +4 -4
- package/dist/chunks/{chunk-5BFWDFPX.js → chunk-VVKE6EYN.js} +68 -68
- package/dist/chunks/{chunk-PMXE4CAA.js → chunk-YZ262JZT.js} +1 -1
- package/dist/chunks/{chunk-JFSDNQHW.js → chunk-ZF6OAPTQ.js} +3 -3
- package/dist/chunks/cli-EG7K37TB.js +2 -0
- package/dist/chunks/{configuration-command-CYUWO6CD.js → configuration-command-MSDFCKOT.js} +1 -1
- package/dist/chunks/{core-commands-Z5C7S6OH.js → core-commands-WDHXJPCY.js} +1 -1
- package/dist/chunks/{desktop-test-JBZCCTSN.js → desktop-test-SN4BHDV3.js} +1 -1
- package/dist/chunks/{extension-RMJAXEKN.js → extension-LG3JL5QD.js} +1 -1
- package/dist/chunks/{help-QDMTLEIL.js → help-XP73IYAV.js} +1 -1
- package/dist/chunks/hosted-profile-compiler-HQ6T6NDP.js +3 -0
- package/dist/chunks/{opchat-MHH4C5YQ.js → opchat-5NQ22CPO.js} +1 -1
- package/dist/chunks/{organizations-5KM2JD32.js → organizations-AY52SHI4.js} +1 -1
- package/dist/chunks/{profile-KVDJTM4D.js → profile-O7NIC76F.js} +1 -1
- package/dist/chunks/{project-agent-SXUMNJLZ.js → project-agent-UKGWIFFI.js} +1 -1
- package/dist/chunks/{sandbox-command-FQGX5MSS.js → sandbox-command-WL6DAJTO.js} +1 -1
- package/dist/chunks/{sandbox-template-Q6K5JXA3.js → sandbox-template-H5M4NV2F.js} +1 -1
- package/dist/chunks/{src-ZGGKHNNF.js → src-BITVDQDA.js} +3 -3
- package/dist/chunks/{src-42VXY5DZ.js → src-WN3RDFPF.js} +1 -1
- package/dist/chunks/{teams-bot-7TPB34DR.js → teams-bot-RPZVD4UD.js} +1 -1
- package/dist/chunks/{workspaces-XFUQZH5T.js → workspaces-XMU4772P.js} +1 -1
- package/dist/cli.js +1 -1
- package/dist/index.js +1 -1
- package/dist/web/assets/{App-BKY1b22z.js → App-BRZg56AC.js} +32 -32
- package/dist/web/assets/{AppDialog-C64bP66E.js → AppDialog-BR9UjEFe.js} +1 -1
- package/dist/web/assets/{AppTerminalPanel-fVkWSvWK.js → AppTerminalPanel-DNXVV6S_.js} +2 -2
- package/dist/web/assets/{AppsView-DHnab11q.js → AppsView-DhaB7uT7.js} +1 -1
- package/dist/web/assets/{BrowserSidebar-C7YeQ9KS.js → BrowserSidebar-zecj1P2T.js} +1 -1
- package/dist/web/assets/{CartesianChart-CYX3IXBM.js → CartesianChart-DRhWC0XA.js} +1 -1
- package/dist/web/assets/{CollaborationTabs-j2oBkesr.js → CollaborationTabs-BzNNwOcD.js} +1 -1
- package/dist/web/assets/{CommandMenu-BN1a4dTn.js → CommandMenu-C7HuXmgN.js} +1 -1
- package/dist/web/assets/{CommunityView-CNoxP71Z.js → CommunityView-C4HfU5ky.js} +1 -1
- package/dist/web/assets/{ComposerCreateImproveStrip-IoK3lqK8.js → ComposerCreateImproveStrip-CG8YZxWB.js} +1 -1
- package/dist/web/assets/{GetStartedView-QPabIxZC.js → GetStartedView-ZxtcgU5X.js} +1 -1
- package/dist/web/assets/HostedModelLearningReview-BhGIhvoc.js +1 -0
- package/dist/web/assets/{HostedModelLearningSettings-TkSSxw8x.js → HostedModelLearningSettings-BKM_1-LZ.js} +1 -1
- package/dist/web/assets/{LabModelVersionDetailPage-CRFw6V7e.js → LabModelVersionDetailPage-CklKwV_e.js} +1 -1
- package/dist/web/assets/{LabSkillSidebar-Dl8KWUe0.js → LabSkillSidebar-Cq_axOXr.js} +1 -1
- package/dist/web/assets/{LabsRoute-BzdL7mUM.js → LabsRoute-BPGkQnKq.js} +6 -6
- package/dist/web/assets/{MainChatThread-C3IdxbN3.js → MainChatThread-DvllW6Ej.js} +2 -2
- package/dist/web/assets/{MainPane-BdR1K59_.js → MainPane-BaUIvio6.js} +4 -4
- package/dist/web/assets/{MarkdownText-CkLxqh2M.js → MarkdownText-DP7Hjp4L.js} +1 -1
- package/dist/web/assets/{NativeSkillSidebar-VkWpZX6S.js → NativeSkillSidebar-BSSKKH-y.js} +1 -1
- package/dist/web/assets/{NewExperienceSwitcher-D_K16Ho-.js → NewExperienceSwitcher-cWw4m_pU.js} +1 -1
- package/dist/web/assets/{NewProjectDialog-B6E1wWOM.js → NewProjectDialog-BMzXEHsC.js} +1 -1
- package/dist/web/assets/{OutputsPage-27MuutGA.js → OutputsPage-CGWtgJ_j.js} +1 -1
- package/dist/web/assets/{ProjectsPage-CokpZHgx.js → ProjectsPage-C00Wt3oR.js} +1 -1
- package/dist/web/assets/{RightChatPanelStack-B6JhJdlc.js → RightChatPanelStack-0D_jpeAm.js} +1 -1
- package/dist/web/assets/{RightSidebarHomePanel-nn0dqUF0.js → RightSidebarHomePanel-BgHpI97K.js} +1 -1
- package/dist/web/assets/{ScheduledWorkPage-idJ8AO15.js → ScheduledWorkPage-C-P_Jv04.js} +1 -1
- package/dist/web/assets/{SettingsView-ZH2gDC6E.js → SettingsView-BJDvzvtZ.js} +3 -3
- package/dist/web/assets/{TeamChatView-B5cG9M6w.js → TeamChatView-BdUQNXvx.js} +2 -2
- package/dist/web/assets/{TerminalOverlay-9SPRce9W.js → TerminalOverlay-85H1eqcg.js} +1 -1
- package/dist/web/assets/{TrainingCreationPanel-2dkxe7py.js → TrainingCreationPanel-Bdx2BJzb.js} +1 -1
- package/dist/web/assets/{TrainingDraftPanel-oYbOFapi.js → TrainingDraftPanel-TcvqZfYS.js} +1 -1
- package/dist/web/assets/{UsageSettingsSection-zWs4Z_9b.js → UsageSettingsSection-Dm8bsNIT.js} +1 -1
- package/dist/web/assets/{WorkSidebarPanel-CiBQztz6.js → WorkSidebarPanel-C9bKi4NH.js} +1 -1
- package/dist/web/assets/{WorkspaceDiffPanel-BPt29A2a.js → WorkspaceDiffPanel-CFzHklbv.js} +3 -3
- package/dist/web/assets/{WorkspaceEnvironmentMenu-pb6fs4-2.js → WorkspaceEnvironmentMenu-_e6IkhGw.js} +1 -1
- package/dist/web/assets/{WorkspaceGitDialogs-DHD-L4Vs.js → WorkspaceGitDialogs-BglcR8S9.js} +1 -1
- package/dist/web/assets/{WorkspaceMonacoEditor-BxtCNaRo.js → WorkspaceMonacoEditor-BuipCT-i.js} +3 -3
- package/dist/web/assets/{arrow-up-right-DcP3EZaY.js → arrow-up-right-jN0p0koy.js} +1 -1
- package/dist/web/assets/{clipboard-BXulVWTJ.js → clipboard-Bat4as9H.js} +1 -1
- package/dist/web/assets/{cloud-upload-B3hP6o0H.js → cloud-upload-CFs0F_2n.js} +1 -1
- package/dist/web/assets/{cssMode-c85YG3Pd.js → cssMode-Cg4Jey3B.js} +1 -1
- package/dist/web/assets/{folder-open-CtOXE4jL.js → folder-open-BqInWH_9.js} +1 -1
- package/dist/web/assets/{folder-plus-KO96VZiR.js → folder-plus-BSA6I7ld.js} +1 -1
- package/dist/web/assets/{git-commit-horizontal-Bhtev2bN.js → git-commit-horizontal-CLDqrpDQ.js} +1 -1
- package/dist/web/assets/{htmlMode-BbCawv2y.js → htmlMode-DHHN3vwk.js} +1 -1
- package/dist/web/assets/{index-Hynq87d2.js → index-VtbQYCWA.js} +2 -2
- package/dist/web/assets/{info-Dqf1UVHA.js → info-BSebzpyp.js} +1 -1
- package/dist/web/assets/{jsonMode-CFycP8DE.js → jsonMode-mvqMGlEK.js} +1 -1
- package/dist/web/assets/{lspLanguageFeatures-CYX4VXe2.js → lspLanguageFeatures-Bw_QMGcP.js} +1 -1
- package/dist/web/assets/{minimize-2-BCmNskf_.js → minimize-2-CaHjbHpF.js} +1 -1
- package/dist/web/assets/{monaco.contribution-CJYgsAyM.js → monaco.contribution-CBkwYqsg.js} +2 -2
- package/dist/web/assets/{monaco.contribution-CPkt_0fd.js → monaco.contribution-CiXEi4Ka.js} +2 -2
- package/dist/web/assets/{monaco.contribution-3ZJbmsu3.js → monaco.contribution-DubQum0F.js} +2 -2
- package/dist/web/assets/{monaco.contribution-DR_TcZx7.js → monaco.contribution-KrPDFXc4.js} +2 -2
- package/dist/web/assets/{monitor-DWlfguJj.js → monitor-DwOfVMY6.js} +1 -1
- package/dist/web/assets/{python-rAXzgbqp.js → python-BPnA89YS.js} +1 -1
- package/dist/web/assets/{refresh-cw-BUPgzu5R.js → refresh-cw-DO-hUyTn.js} +1 -1
- package/dist/web/assets/{save-Mb-ECgFZ.js → save-C7WFI7Mn.js} +1 -1
- package/dist/web/assets/{square-CxNbsHso.js → square-DiLQ59tw.js} +1 -1
- package/dist/web/assets/{toggleHighContrast-DUvtEJ40.js → toggleHighContrast-BWFPIQBM.js} +1 -1
- package/dist/web/assets/{tsMode-IPAavolh.js → tsMode-CWxqU0x6.js} +1 -1
- package/dist/web/assets/{upload-Bn6_UQEa.js → upload-vUnuWYGk.js} +1 -1
- package/dist/web/assets/{useLocalAgentSchedules-DAHspLJg.js → useLocalAgentSchedules-BFbGmflA.js} +1 -1
- package/dist/web/assets/{useSessionTurnCache-CUiJuUjd.js → useSessionTurnCache-C0zgYrCB.js} +1 -1
- package/dist/web/assets/{wifi-off-Bsy0Wjm8.js → wifi-off-DbNO6u3Z.js} +1 -1
- package/dist/web/assets/{workers-35o3qFXU.js → workers-4I09fePv.js} +1 -1
- package/dist/web/assets/{yaml-Ba5fmKgb.js → yaml-DpHYonDY.js} +1 -1
- package/dist/web/index.html +1 -1
- package/package.json +1 -1
- package/dist/chunks/app-server-runtime-CAWXM33C.js +0 -2
- package/dist/chunks/chunk-B5LKUQGM.js +0 -2
- package/dist/chunks/cli-YI6G22CQ.js +0 -2
- package/dist/chunks/hosted-profile-compiler-7SGXUZB4.js +0 -3
- package/dist/web/assets/HostedModelLearningReview-CNd3-FrC.js +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
-
import{d as pe}from"./chunk-PMXE4CAA.js";import{$d as Ye,Aa as ot,Ac as pr,Bc as mr,Cc as Xs,Da as dt,Dc as Ds,Dd as Ct,Ec as xo,Jc as fr,Kc as Hs,Kd as ua,Ld as Tr,Md as pa,Oc as da,Pd as Us,Qa as Po,Rd as Pt,S as Ao,Sc as We,Sd as Fs,Xc as ve,Yd as Er,Zc as Ot,Zd as _r,_c as Lt,ad as bt,dd as ct,de as Do,ee as Ho,fd as At,fe as Uo,ge as xt,id as ca,jd as la,kd as Mo,md as Xo,ne as Fo,pa as xs,qc as na,ra as Co,rc as Ms,uc as oa}from"./chunk-77BXXOHW.js";import{a as lo,b as ho,c as go,d as qe,e as wo,f as Ro,g as yo,i as ko,j as So,k as It,l as Cs,m as No,n as vo}from"./chunk-TBX3Z7TX.js";import{E as Io,F as Oo,G as Ps,H as Lo,U as bo,a as Dn,b as ao,e as ro}from"./chunk-QWENRTVW.js";import{$ as _s,$b as U,Bb as ra,Ea as cr,J as Gn,Jb as ur,K as Qn,L as Zn,Lb as sa,M as eo,N as to,Ob as uo,R as at,Ra as ta,Sa as Rs,Ta as ys,Ua as Fe,Wa as no,Xa as st,Ya as St,Za as ks,Zb as vs,_ as Es,_a as aa,ab as Ss,ba as or,bb as Ns,bc as Is,c as Qt,cb as it,cc as ce,d as nr,db as Nt,e as Hn,ea as hs,ec as Be,f as Un,fa as gs,fc as vt,g as Fn,ha as M,hc as ee,ic as po,j as jn,ja as re,jc as mo,k as Bn,ka as ws,kb as je,l as Zt,la as dr,lb as lr,lc as fo,ma as rt,mc as To,n as qn,nc as Eo,oa as B,ob as oo,oc as _o,pa as so,pb as co,pc as Os,q as Wn,qc as nt,rc as ia,s as Yn,sa as ea,t as $n,ta as io,tc as be,uc as Ls,va as Ue,vc as bs,w as Kn,wc as As,x as Jn,xa as Z,y as Vn,z as zn}from"./chunk-JFSDNQHW.js";import{A as bn,B as An,C as Cn,D as Pn,E as xn,F as He,G as Mn,H as Xn,a as tr,b as En,c as ar,d as _n,e as hn,f as gn,g as wn,h as Le,i as kt,j as Rn,k as sr,l as de,m as ge,n as x,o as X,p as De,q as yn,r as ir,s as Gt,t as kn,u as Sn,v as Nn,w as vn,x as In,y as On,z as Ln}from"./chunk-B5LKUQGM.js";import{$ as et,$a as Ne,$b as Tn,A as Yi,Ab as ms,B as qa,C as $i,Cb as zt,D as Ki,Db as ln,E as Ji,Eb as un,Ha as zi,Hb as fs,Ja as Se,Jb as yt,Ka as ls,Kb as Xe,La as ht,Lb as I,Ma as Gi,Mb as C,Na as Qi,Nb as F,Oa as Zi,Ob as he,Pa as us,Qb as Ga,Rb as pn,Sb as Q,Ta as en,Tb as Qa,Ua as Ya,Ub as mn,Va as tt,Xb as fn,Yb as Za,Za as tn,a as v,aa as Wa,ab as an,ba as Jt,bc as er,d as Bi,db as $a,fb as Vt,fc as rr,gb as rn,ib as Ka,j as Ge,jb as Ja,kb as Va,lb as gt,m as Qe,mb as sn,mc as Ts,n as ns,nb as nn,o as os,p as _e,pb as on,r as Ze,rb as dn,s as ja,t as qi,tb as wt,u as Ba,v as Wi,vb as Rt,w as ds,xa as Vi,xb as za,ya as cs,yb as cn,zb as ps}from"./chunk-5BFWDFPX.js";import{W as is,Z as Hi,ca as Ui,e as rs,f as Xi,fa as Fi,k as ue,l as $,m as Me,n as Kt,o as G,q as Di,t as Y,u as ze,v as g,w as oe,x as ss}from"./chunk-IFP6W4OW.js";import{b as _}from"./chunk-ES2ISFJC.js";import{c as Mi,n as ji}from"./chunk-H7IWJN7L.js";import{a as c}from"./chunk-FTQLQJQV.js";async function hr(a,e,t){let r=await x(a,"iteration",e.iterationId);if(r.revision!==e.expectedRevision)throw new ge("iteration",r.id,e.expectedRevision,r.revision);let s=await x(a,"reservation",r.id);if(r.status==="cancelled")return[{kind:"iteration",id:r.id,revision:r.revision}];if(r.trainingJob||r.evaluationJob||!["ready","waiting_for_data","waiting_for_review"].includes(r.status))throw new v("learning_execution_cancellation_required",409);let i=yt.parse({...r,revision:r.revision+1,status:"cancelled",updatedAt:t}),n=ar.parse({...s,revision:s.revision+1,budget:{...s.budget,reservedSpendUsd:0,settledSpendUsd:0,settledAt:t},updatedAt:t});await a.put("iteration",i,r.revision,{parentId:s.chainId,status:i.status}),await a.put("reservation",n,s.revision,{parentId:s.chainId,status:s.outcome});let d=await x(a,"chain",s.chainId);return d.activeIterationId===r.id&&await a.put("chain",tr.parse({...d,revision:d.revision+1,activeIterationId:null,updatedAt:t}),d.revision,{parentId:d.modelProjectId}),[{kind:"iteration",id:i.id,revision:i.revision},{kind:"reservation",id:n.id,revision:n.revision}]}c(hr,"cancelLearningIterationReservation");async function jo(a,e,t){let r=await x(a,"iteration",e.iterationId);if(r.revision!==e.expectedRevision)throw new ge("iteration",r.id,e.expectedRevision,r.revision);let s=await a.get("dispatch",r.dispatchId);if(e.action==="cancel_iteration"&&!s)return hr(a,{...e,action:"cancel_iteration_reservation"},t);if(!s)throw new v("learning_dispatch_not_started",409);if(s.state==="settled")throw new v("learning_execution_already_terminal",409);if(e.action==="retry_iteration_dispatch"&&s.state!=="blocked")throw new v("learning_dispatch_not_blocked",409);let i=e.action==="cancel_iteration"||!!s.cancelRequestedAt,n=yt.parse({...r,revision:r.revision+1,status:i?"cancelling":r.status,failure:null,updatedAt:t}),d=hn.parse({...s,revision:s.revision+1,state:s.execution?"submitted":s.submission?"prepared":"preparing",cancelRequestedAt:i?s.cancelRequestedAt??t:null,consecutiveFailures:0,nextAttemptAt:null,lastError:null,updatedAt:t});return await a.put("dispatch",d,s.revision,{parentId:r.id,status:d.state}),await a.put("iteration",n,r.revision,{parentId:s.chainId,status:n.status}),[{kind:"iteration",id:n.id,revision:n.revision},{kind:"dispatch",id:d.id,revision:d.revision}]}c(jo,"commandLearningIterationDispatch");async function Bo(a,e,t,r){let s=await X(a,"policy",e.policy),i=kn(s.modelProjectId),n=e.trigger.kind==="schedule"?{...e.trigger,scheduledAt:new Date(e.trigger.scheduledAt).toISOString()}:e.trigger.kind==="approved_count"?{...e.trigger,checkedAt:new Date(e.trigger.checkedAt).toISOString()}:e.trigger,d=g([e.policy.id,n]),o=`iteration-${g([i,d])}`,u=g({policy:e.policy,trigger:n}),l=await a.get("reservation",o);if(l){if(l.requestHash!==u)throw new v("learning_trigger_identity_conflict",409);return[{kind:"iteration",id:o,revision:(await x(a,"iteration",o)).revision},{kind:"reservation",id:o,revision:l.revision}]}let T=await x(a,"policy",s.id);if(!C(I(T),e.policy))throw new v("learning_policy_revision_stale",409);if(!s.enabled)throw new v("learning_policy_paused",409);if(s.automation.accept||s.automation.serve)throw new v("learning_automatic_acceptance_not_available",422);if(e.trigger.kind==="schedule"){if(!["schedule","nightly"].includes(s.trigger.kind)||!s.automation.train)throw new v("learning_schedule_not_enabled",409);if(Date.parse(e.trigger.scheduledAt)>Date.parse(r))throw new v("learning_schedule_not_due",409)}if(e.trigger.kind==="approved_count"){if(s.trigger.kind!=="approved_count"||!s.automation.train)throw new v("learning_count_trigger_not_enabled",409);if(Date.parse(e.trigger.checkedAt)>Date.parse(r))throw new v("learning_count_trigger_not_due",409)}let p=await a.get("chain",i);if(p?.activeIterationId)throw new v("learning_iteration_active",409,p.activeIterationId);if(p?.lastReservedAt&&Date.parse(r)-Date.parse(p.lastReservedAt)<s.limits.cooldownSeconds*1e3)throw new v("learning_iteration_cooldown",409);let m=await Nn(a,s),f=m.counts.eligible>=s.admission.minimumApprovedExamples;if(e.trigger.kind==="approved_count"&&!f)throw new v("learning_count_threshold_not_met",409);let h=f?"ready":m.counts.awaitingReview>0?"waiting_for_review":"waiting_for_data",w=[],R=await In(a,i,!0),y=await On(a,s,R),S=null;if(f){await El(a,i,r,s.limits.maxIterationSpendUsd,s.limits.maxDailySpendUsd);let N=await ir(a,{action:"seal_batch",operationId:e.operationId,batchId:`batch-${g(o)}`,taskDefinition:s.taskDefinition,purpose:m.purpose,evidence:m.selected.map(P=>I(P.evidence)),decisions:m.selected.map(P=>I(P.decision))},t,r);w.push(...N),S=I(await x(a,"batch",N[0].id));for(let P of m.selected){let j=En.parse({schemaVersion:"openpond.learningConsumption.v1",id:Sn(i,P.evidence),revision:1,chainId:i,iterationId:o,evidence:I(P.evidence),decision:I(P.decision),reservedAt:r});await a.put("consumption",j,0,{parentId:i})}}let E=yt.parse({schemaVersion:"openpond.learningIteration.v1",id:o,revision:1,policy:e.policy,status:h,triggerIdentity:d,batch:S,sourceWatermarks:{},...y,teacher:s.teacher,upstreamEvent:null,trainingJob:null,evaluationJob:null,candidateVersion:null,dispatchId:`dispatch-${g(o)}`,retryCount:0,spendUsd:0,failure:null,createdAt:r,updatedAt:r}),k=ar.parse({schemaVersion:"openpond.learningIterationReservation.v1",id:o,revision:1,chainId:i,iterationId:o,policy:e.policy,trigger:n,requestHash:u,outcome:f?"reserved":h,counts:m.counts,budget:{maximumSpendUsd:f?s.limits.maxIterationSpendUsd:0,reservedSpendUsd:f?s.limits.maxIterationSpendUsd:0,settledSpendUsd:0,settledAt:f?null:r},createdAt:r,updatedAt:r}),A=tr.parse({schemaVersion:"openpond.learningChain.v1",id:i,revision:(p?.revision??0)+1,modelProjectId:s.modelProjectId,activeIterationId:f?o:null,latestIterationId:o,acceptedParent:R,lastReservedAt:f?r:p?.lastReservedAt??null,updatedAt:r});return await a.put("iteration",E,0,{parentId:i,status:h}),await a.put("reservation",k,0,{parentId:i,status:k.outcome}),await a.put("chain",A,p?.revision??0,{parentId:s.modelProjectId}),[{kind:"iteration",id:o,revision:1},{kind:"reservation",id:o,revision:1},...w]}c(Bo,"reserveLearningIteration");async function El(a,e,t,r,s){if((await vn(a,e,t)).committedSpendUsd+r>s)throw new v("learning_daily_budget_exhausted",409)}c(El,"assertAvailableBudget");function _l(a){return`schedule-${g(a)}`}c(_l,"learningScheduleId");async function qo(a,e,t){he(e);let r=await x(a,"policy",e.id);if(!C(I(r),I(e)))throw new v("learning_policy_revision_stale",409);let s=_l(e.id),i=await a.get("schedule",s);if(i&&C(i.policy,I(e)))return i;let n=e.trigger.kind==="schedule"?e.trigger.intervalSeconds:e.trigger.kind==="approved_count"?60:null,d=e.trigger.kind==="nightly"?{localTime:e.trigger.localTime,timeZone:e.trigger.timeZone}:null,o=e.enabled&&e.automation.train&&(n!==null||d!==null),u=i?await X(a,"policy",i.policy):null,l=i?.nextRunAt&&i.intervalSeconds===n&&JSON.stringify(i.calendar)===JSON.stringify(d)&&u?.trigger.kind===e.trigger.kind&&i.executionOwner===e.executionOwner,T=gn.parse({schemaVersion:"openpond.learningSchedule.v1",id:s,revision:(i?.revision??0)+1,policy:I(e),modelProjectId:e.modelProjectId,executionOwner:e.executionOwner,state:o?"scheduled":"disabled",intervalSeconds:n,calendar:d,nextRunAt:o?l?i.nextRunAt:d?dn(d,t):new Date(Date.parse(t)+n*1e3).toISOString():null,lastFire:i?.lastFire??null,consecutiveFailures:0,nextAttemptAt:null,lastError:null,createdAt:i?.createdAt??t,updatedAt:t});return await a.put("schedule",T,i?.revision??0,{parentId:e.modelProjectId,status:T.state}),T}c(qo,"synchronizeLearningSchedule");async function Wo(a,e,t){Se(e.draft,131072);let r=await a.get("draft",e.draft.id);if(r&&(r.status!=="draft"||r.targetId!==e.draft.targetId||r.targetKind!==e.draft.targetKind||(r.baseRelease===null?e.draft.baseRelease!==null:e.draft.baseRelease===null||!C(r.baseRelease,e.draft.baseRelease))))throw new v("authoring_draft_identity_conflict",409);if(e.draft.baseRelease){if(e.draft.baseRelease.id!==e.draft.targetId)throw new v("authoring_draft_base_mismatch",422);await X(a,e.draft.targetKind,e.draft.baseRelease)}if(e.draft.targetKind==="reward")for(let i of e.draft.fields.fixtures??[]){if(!i.sourceLabel)continue;let{evidence:n,feedback:d}=i.sourceLabel;await X(a,"evidence",n);let o=await x(a,"feedback",d.id,d.revision);if(!o.evidence||!C(o.evidence,n))throw new v("reward_fixture_label_mismatch",422)}let s=rr.parse(F({...e.draft,schemaVersion:"openpond.authoringDraft.v1",revision:e.expectedRevision+1,status:"draft",publishedRelease:null,createdAt:r?.createdAt??t,updatedAt:t}));return await a.put("draft",s,e.expectedRevision,{parentId:s.targetKind,status:s.status}),{kind:"draft",id:s.id,revision:s.revision}}c(Wo,"saveAuthoringDraft");async function Yo(a,e,t){let r=await Mt(a,e),{contentHash:s,...i}=r,n=rr.parse(F({...i,revision:r.revision+1,status:"archived",updatedAt:t}));return await a.put("draft",n,r.revision,{parentId:r.targetKind,status:n.status}),{kind:"draft",id:n.id,revision:n.revision}}c(Yo,"archiveAuthoringDraft");async function js(a,e,t,r){let s=e.finalizeDraft;if(!s)return null;let i=await Mt(a,s.draft);if(i.targetKind!==s.targetKind||i.targetId!==s.release.id||s.release.revision!==(i.baseRelease?.revision??0)+1||!t.some(u=>u.kind===s.targetKind&&u.id===s.release.id&&u.revision===s.release.revision))throw new v("authoring_draft_publication_mismatch",422);await X(a,s.targetKind,s.release);let{contentHash:n,...d}=i,o=rr.parse(F({...d,revision:i.revision+1,status:"published",publishedRelease:s.release,updatedAt:r}));return await a.put("draft",o,i.revision,{parentId:i.targetKind,status:o.status}),{kind:"draft",id:o.id,revision:o.revision}}c(js,"finalizeAuthoringDraft");async function Mt(a,e){let t=await X(a,"draft",e),r=await a.get("draft",e.id);if(!r||!C(I(r),e))throw new v("authoring_draft_revision_stale",409);if(t.status!=="draft")throw new v("authoring_draft_closed",409);return t}c(Mt,"currentDraft");function Bs(a,e,t){let r=kt(a,e),s=r.reward.implementation;if(s.kind!=="model_judge"||!s.model)throw new v("reward_calibration_model_required",422);if(!C(t.draft,I(a))||!C(t.reward,I(r.reward))||t.snapshotHash!==r.snapshotHash||g(t.fixtureRefs)!==g(r.fixtureRefs))throw new v("reward_calibration_snapshot_mismatch",422);if(t.status!=="completed"||!t.runtime||t.matchesExpectations!==!0||t.failure||t.results.length!==r.fixtures.length)throw new v("reward_calibration_check_incomplete",422);if(!r.fixtures.some(d=>d.expected.status==="scored"&&d.expected.passed===!0)||!r.fixtures.some(d=>d.expected.status==="scored"&&d.expected.passed===!1))throw new v("reward_calibration_coverage_required",422,"Check both a passing and a failing example before publishing a calibrated judge.");for(let d of r.fixtures){let o=t.results.filter(p=>p.fixture.id===d.id),u=o[0];if(o.length!==1||!u||u.fixture.contentHash!==g(d)||!C(u.result.reward,t.reward)||!sr(d,u.result).matchesExpectation)throw new v("reward_calibration_fixture_mismatch",422);if(d.expected.status!=="scored")continue;let l=u.result.graderEvidence?.modelJudgeReceipt,T=t.judgeCalls?.find(p=>p.id===`fixture-${g([d,r.reward.contentHash])}`);if(!l||l.providerId!==s.model.providerId||l.modelId!==s.model.modelId||s.model.revision!==null&&l.modelRevision!==s.model.revision||T?.status!=="settled"||!T.response||T.requestHash!==l.requestHash||g(T.response)!==l.responseHash)throw new v("reward_calibration_provider_receipt_mismatch",422)}let{contentHash:i,...n}=r.reward;return{...r,reward:Ka({...n,implementation:{...s,calibrationStatus:"passed"},calibrationCheckRef:{id:t.id,revision:t.revision,contentHash:g(t)}})}}c(Bs,"qualifyRewardCheck");async function $o(a,e){if(e.implementation.kind!=="model_judge"||e.implementation.calibrationStatus!=="passed"){if(e.calibrationCheckRef)throw new v("reward_calibration_reference_invalid",422);return}let t=e.calibrationCheckRef;if(!t)throw new v("reward_calibration_check_required",422);let r=await x(a,"reward_check",t.id,t.revision);if(g(r)!==t.contentHash)throw new v("reward_calibration_check_changed",422);let s=await X(a,"draft",r.draft);if(s.targetKind!=="reward")throw new v("reward_calibration_draft_kind_invalid",422);let i=s.baseRelease?await X(a,"reward",s.baseRelease):null,n=Bs(s,i,r).reward,d=c(o=>g([o.implementation,o.rawScore,o.assets,o.fixtureSetRef??null]),"scoring");if(e.id!==n.id||d(e)!==d(n))throw new v("reward_calibration_configuration_changed",422)}c($o,"assertRewardCalibration");async function Ko(a,e,t,r,s){let i=await Mt(a,e.draft);if(i.targetKind!=="reward")throw new v("reward_check_draft_kind_invalid",422);let n=i.baseRelease?await X(a,"reward",i.baseRelease):null,d=kt(i,n),o=Le.parse({schemaVersion:"openpond.rewardCheckRun.v1",id:`reward-check-${t}`,revision:1,draft:I(i),reward:I(d.reward),snapshotHash:d.snapshotHash,fixtureRefs:d.fixtureRefs,status:"queued",runtime:null,results:[],matchesExpectations:null,timeoutMs:e.timeoutMs,maximumSpendUsd:e.maximumSpendUsd,requestedBy:s,leaseOwner:null,leaseExpiresAt:null,attemptCount:0,failure:null,createdAt:r,updatedAt:r});return await a.put("reward_check",o,0,{parentId:i.targetId,status:o.status}),{kind:"reward_check",id:o.id,revision:o.revision}}c(Ko,"queueRewardCheck");async function Jo(a,e,t){let r=await x(a,"reward_check",e.checkId);if(r.revision!==e.expectedRevision)throw new ge("reward_check",r.id,e.expectedRevision,r.revision);if(["completed","failed","cancelled"].includes(r.status))return{kind:"reward_check",id:r.id,revision:r.revision};let s=Le.parse({...r,revision:r.revision+1,status:r.status==="queued"?"cancelled":"cancelling",updatedAt:t});return await a.put("reward_check",s,r.revision,{parentId:r.reward.id,status:s.status}),{kind:"reward_check",id:s.id,revision:s.revision}}c(Jo,"cancelRewardCheck");async function Vo(a,e,t,r){let s=Dn(e);if(s.contentHash!==e.expectedPreviewHash)throw new v("task_intake_preview_changed",409);if(new Set(e.recordIds).size!==e.recordIds.length)throw new v("task_intake_duplicate_selection",422);let i=e.recordIds.map(l=>{let T=s.records.find(p=>p.id===l);if(!T)throw new v("task_intake_record_missing",422,"Choose only valid records from the current preview.");return T}),n=`intake-${s.contentHash}`,d=[];for(let l of e.files){let T=0,p=0;do{let m=Math.min(T+131072,l.text.length);m<l.text.length&&l.text.charCodeAt(m-1)>=55296&&l.text.charCodeAt(m-1)<=56319&&m--;let f=pn({text:l.text.slice(T,m),path:`${n}/${l.path}.part-${String(p++).padStart(4,"0")}`,mediaType:"text/plain",visibility:"host_private"}),h=await a.get("asset",f.id,1);h?Q(h,f.asset):await a.put("asset",f,0),d.push(f.asset),T=m}while(T<l.text.length)}let o=await a.get("source",n);if(!o){let l=Ja({schemaVersion:"openpond.rewardBinding.v1",id:`${n}-binding`,revision:1,sources:[],aggregation:"weighted_mean",unscorable:"exclude_optional_require_all_required"},[]),T=Rt.parse(F({schemaVersion:"openpond.taskDefinition.v1",id:`${n}-definition`,revision:1,name:e.name,description:`Imported ${e.format} records. Labels and task admission remain separate.`,instructions:"Respond to the retained request using its supplied context.",category:"custom",familyNamespace:`intake-${e.format}`,inputSchema:{type:"object"},outputSchema:{type:"object"},rewardBinding:I(l),harness:null,contextRequirements:s.records.some(p=>p.needsContext)?["Review the imported history and configure its reusable input, tools and runtime before admitting tasks."]:[],execution:{policy:{policyVisibleFields:["input"],privilegedFields:["expectedOutput","evaluatorContext"],hiddenGraderRefs:[],connectedAppScopes:[]},environment:{protocolVersion:"openpond.environment.v1",kind:"text",entrypoint:"openpond.text.v1",stateful:!1,deterministicSeeds:!0,lifecycle:["create","reset","step","collect","destroy"],networkPolicy:"none",defaultTimeoutMs:3e4},tools:[],capabilities:[]}}));o=za.parse(F({schemaVersion:"openpond.learningSource.v1",id:n,revision:1,name:e.name,kind:"direct",taskDefinition:I(T),enabled:!0,allowedSplits:["train","validation","test","frozen_eval"],mapping:null,adapterVersion:`openpond.intake.${e.format}.v1`})),await a.put("binding",l,0),await a.put("definition",T,0),await a.put("source",o,0)}let u=[{kind:"source",id:o.id,revision:o.revision}];for(let l of i){let T=Ts("attempt",[l.id,l.sourceHash]),p=await a.get("evidence",De(o.id,l.id,T),1);u.push(await r(a,{action:"submit_example",operationId:e.operationId,example:cn.parse({schemaVersion:"openpond.taskExample.v1",sourceId:o.id,idempotencyKey:Ts("record",[s.contentHash,l.id]),taskDefinition:o.taskDefinition,exampleId:l.id,attemptId:T,occurredAt:l.occurredAt??p?.submission.occurredAt??t,familyKey:l.familyKey,split:l.split,input:l.input,observedOutput:l.observedOutput,expected:l.expected,evaluatorContext:{intake:{format:s.format,uploadHash:s.contentHash,sourceHash:l.sourceHash,needsContext:l.needsContext,warnings:l.warnings,timestampOrigin:l.occurredAt?"source":"import_time",metadata:l.metadata}},assets:d,provenance:{sourceRecordRef:l.sourceId,mappingHash:null}})}))}return u}c(Vo,"importTaskIntake");function af(a,e={}){let t=e.now??(()=>new Date().toISOString());async function r(p,m){Se(m,16777216);let f=_n.parse(m);hl(p,f);let h=f.action==="submit_example"?f.example:f.action==="submit_feedback"?f.feedback:null,w=h?g([f.action,h.sourceId,h.idempotencyKey]):yn(p.actor.id,f.operationId),R=g(h?{action:f.action,value:h}:f);return a.transaction(p.scope,async y=>{let S=await y.operation(w);if(S){if(S.requestHash!==R)throw new v("learning_idempotency_conflict",409);return{operationId:f.operationId,resources:await Promise.all(S.resources.map(k=>x(y,k.kind,k.id,k.revision)))}}let E;switch(f.action){case"publish_checked_reward":{let k=await Mt(y,f.draft);if(k.targetKind!=="reward")throw new v("reward_calibration_draft_kind_invalid",422);let A=k.baseRelease?await X(y,"reward",k.baseRelease):null,N=await x(y,"reward_check",f.checkId,f.checkRevision),P=Bs(k,A,N),{contentHash:j,...H}=P.reward,O={action:"publish_resources",operationId:f.operationId,finalizeDraft:{draft:f.draft,targetKind:"reward",release:I(P.reward)},resources:[...P.assets.map(({contentHash:K,...D})=>({kind:"asset",expectedRevision:0,content:D})),{kind:"reward",expectedRevision:A?.revision??0,content:H}]};E=[];for(let K of O.resources)E.push(await s(y,{...K,action:"publish",operationId:f.operationId}));let q=await js(y,O,E,t());q&&E.push(q);break}case"import_intake":E=await Vo(y,f,t(),i);break;case"cancel_iteration":case"retry_iteration_dispatch":E=await jo(y,f,t());break;case"cancel_iteration_reservation":E=await hr(y,f,t());break;case"reserve_iteration":E=await Bo(y,f,p.actor.id,t());break;case"queue_reward_check":E=[await Ko(y,f,w,t(),p.actor.id)];break;case"cancel_reward_check":E=[await Jo(y,f,t())];break;case"save_draft":E=[await Wo(y,f,t())];break;case"archive_draft":E=[await Yo(y,f.draft,t())];break;case"publish":E=[await s(y,f)];break;case"publish_resources":{E=[];for(let k of f.resources)E.push(await s(y,{...k,action:"publish",operationId:f.operationId}));break}case"submit_example":E=[await i(y,f)];break;case"submit_feedback":E=[await n(y,f,p.actor)];break;case"apply_correction":E=await d(y,f,p.actor.id);break;case"resolve_feedback":E=[await o(y,f,p.actor.id)];break;case"queue_grade":E=[await u(y,f,w,p.actor.id)];break;case"cancel_grade":E=[await l(y,f)];break;case"review":E=[await T(y,f,p.actor.id)];break;case"seal_batch":E=await ir(y,f,p.actor.id,t());break}if(f.action==="publish"||f.action==="publish_resources"){let k=await js(y,f,E,t());k&&E.push(k)}return await y.saveOperation(w,{requestHash:R,resources:E}),{operationId:f.operationId,resources:await Promise.all(E.map(k=>x(y,k.kind,k.id,k.revision)))}})}c(r,"command");async function s(p,m){if(m.content.revision!==m.expectedRevision+1)throw new v("learning_publication_revision_invalid",422);let f;switch(m.kind){case"asset":{f=Ga.parse(F(m.content));let h=await p.get("asset",f.id,1);if(h?.contentHash===f.contentHash)return me("asset",h);break}case"reward":{f=Ka(m.content),await $o(p,f);let h=m.content.implementation,w=[...m.content.assets,..."verifierRef"in h?[h.verifierRef]:[],..."rubricRef"in h?[h.rubricRef]:[],..."inputContract"in h?[h.inputContract]:[]];for(let R of w){let y=await x(p,"asset",R.id,1);if(Q(y,R),R.visibility==="policy")throw new v("reward_asset_visibility_invalid",422,"Reward source and rubrics must be private to the evaluator.")}break}case"binding":{m.content.recipeRef&&await X(p,"binding",m.content.recipeRef);let h=await Promise.all(m.content.sources.map(w=>X(p,"reward",w.reward)));f=Ja(m.content,h);break}case"definition":{await X(p,"binding",m.content.rewardBinding),f=Rt.parse(F(m.content));break}case"source":{await X(p,"definition",m.content.taskDefinition),f=za.parse(F(m.content));break}case"policy":{let h=await X(p,"definition",m.content.taskDefinition);if(!C(h.rewardBinding,m.content.rewardBinding))throw new v("learning_policy_binding_mismatch",422);for(let w of m.content.sources){let R=await X(p,"source",w);if(!C(R.taskDefinition,m.content.taskDefinition))throw new v("learning_policy_source_definition_mismatch",422)}f=fs.parse(F(m.content));break}}return await p.put(m.kind,f,m.expectedRevision,m.kind==="policy"?{parentId:m.content.modelProjectId}:void 0),m.kind==="policy"&&await qo(p,fs.parse(f),t()),me(m.kind,f)}c(s,"publish");async function i(p,m){let f=await x(p,"source",m.example.sourceId),h=mn(f,m.example);await X(p,"definition",h.taskDefinition);let w=De(h.sourceId,h.exampleId,h.attemptId),R=await p.get("evidence",w,1);if(R){let{idempotencyKey:E,...k}=R.submission,{idempotencyKey:A,...N}=h;if(g(k)!==g(N))throw new v("task_evidence_identity_conflict",409);return me("evidence",R)}let y=ms.parse(F(ps.parse({schemaVersion:"openpond.taskEvidence.v1",id:w,revision:1,source:I(f),submission:h,supersedes:null,correctionFeedbackId:null,receivedAt:t()})));await p.put("evidence",y,0,{parentId:f.id});let S;do{let E=await p.list("feedback",{parentId:y.id,status:"pending_example",limit:100,...S?{afterId:S}:{}});for(let k of E.items){let A=zt.parse({...k,revision:k.revision+1,status:"pending_review",evidence:I(y)});await p.put("feedback",A,k.revision,{parentId:y.id,status:A.status})}S=E.nextCursor??void 0}while(S);return me("evidence",y)}c(i,"submit");async function n(p,m,f){let h=await x(p,"source",m.feedback.sourceId);if(!h.enabled)throw new v("learning_source_disabled",409);let w=De(h.id,m.feedback.exampleId,m.feedback.attemptId),R=await p.get("evidence",w);if(m.feedback.value.schemaVersion==="openpond.taskRating.v1"&&(!R||R.contentHash!==m.feedback.expectedEvidenceHash||!R.submission.observedOutput))throw new v("task_rating_evidence_stale",409,"Open the current observed response before submitting a rating.");let y=zt.parse({schemaVersion:"openpond.taskFeedbackRecord.v1",id:`feedback-${g([h.id,m.feedback.idempotencyKey])}`,submission:m.feedback,status:R?"pending_review":"pending_example",evidence:R?I(R):null,createdAt:t(),revision:1,submittedBy:{id:f.id,role:f.role,sourceId:f.sourceId??null}});return await p.put("feedback",y,0,{parentId:w,status:y.status}),me("feedback",y)}c(n,"feedback");async function d(p,m,f){let h=await x(p,"feedback",m.feedbackId);if(["applied","rejected","superseded"].includes(h.status))throw new v("task_feedback_already_resolved",409);let w=await Gt(p,m.evidence);if(De(h.submission.sourceId,h.submission.exampleId,h.submission.attemptId)!==w.id||h.submission.expectedEvidenceHash!==null&&h.submission.expectedEvidenceHash!==w.contentHash)throw new v("task_feedback_evidence_mismatch",409);let y=await X(p,"definition",w.submission.taskDefinition),S={...w.submission},{kind:E,value:k}=h.submission;if(E==="ground_truth_correction"){if(!ht(y.outputSchema,k).valid)throw new v("task_corrected_expected_schema_invalid",422);S.expected=k}else if(E==="input_correction"){if(!ht(y.inputSchema,k).valid)throw new v("task_corrected_input_schema_invalid",422);S.input=k}else if(E==="family_resolution"){if(typeof k.familyKey!="string"||!k.familyKey.trim())throw new v("task_family_resolution_invalid",422);S.familyKey=k.familyKey}else throw new v("task_feedback_requires_target_review",422);let{contentHash:A,...N}=w,P=ms.parse(F(ps.parse({...N,revision:w.revision+1,submission:S,supersedes:I(w),correctionFeedbackId:h.id,receivedAt:t()}))),j=zt.parse({...h,revision:h.revision+1,status:"applied",evidence:I(P),review:{actorId:f,decision:null,note:"Applied as a corrected evidence revision.",resolvedAt:t()}});return await p.put("evidence",P,w.revision,{parentId:S.sourceId}),await p.put("feedback",j,h.revision,{parentId:w.id,status:j.status}),[me("evidence",P),me("feedback",j)]}c(d,"correct");async function o(p,m,f){let h=await x(p,"feedback",m.feedbackId);if(h.revision!==m.expectedRevision)throw new ge("feedback",h.id,m.expectedRevision,h.revision);if(["applied","rejected","superseded"].includes(h.status))throw new v("task_feedback_already_resolved",409);if(m.disposition==="applied"&&!m.decision)throw new v("task_feedback_decision_required");if(m.decision){let R=await X(p,"decision",m.decision),y=await x(p,"decision",R.id);if(!C(I(y),m.decision))throw new v("task_admission_revision_stale",409);let S=await Gt(p,R.evidence);if(De(h.submission.sourceId,h.submission.exampleId,h.submission.attemptId)!==S.id||h.submission.expectedEvidenceHash!==null&&h.submission.expectedEvidenceHash!==S.contentHash)throw new v("task_feedback_evidence_mismatch",409);if(m.disposition==="applied"){if(R.taskAdmissibility==="pending")throw new v("task_feedback_decision_pending");if(h.submission.kind==="target_correction"){if(R.targetApproval!=="approved"||g(R.approvedTarget)!==g(h.submission.value))throw new v("task_feedback_target_not_approved")}else if(h.submission.kind!=="outcome")throw new v("task_feedback_requires_evidence_correction")}}let w=zt.parse({...h,revision:h.revision+1,status:m.disposition,review:{actorId:f,decision:m.decision,note:m.note,resolvedAt:t()}});return await p.put("feedback",w,h.revision,{parentId:De(h.submission.sourceId,h.submission.exampleId,h.submission.attemptId),status:w.status}),me("feedback",w)}c(o,"resolveFeedback");async function u(p,m,f,h){let w=await Gt(p,m.evidence),R=await X(p,"definition",w.submission.taskDefinition);if(!Qa(w,R).taskReady)throw new v("task_evidence_not_ready",422);let y=m.target==="observed"?w.submission.observedOutput:m.proposedTarget;if(y===null)throw new v("task_grade_output_required",422);if(m.target==="observed"&&m.proposedTarget!==null)throw new v("observed_grade_cannot_replace_output",422);let S=Xe.parse({schemaVersion:"openpond.taskGradeRun.v1",id:`grade-${f}`,revision:1,evidence:I(w),binding:R.rewardBinding,target:m.target,output:y,status:"queued",composition:null,leaseOwner:null,leaseExpiresAt:null,attemptCount:0,timeoutMs:m.timeoutMs,maximumSpendUsd:m.maximumSpendUsd,requestedBy:h,failure:null,createdAt:t(),updatedAt:t()});return await p.put("grade",S,0,{parentId:w.id,status:S.status}),me("grade",S)}c(u,"queueGrade");async function l(p,m){let f=await x(p,"grade",m.gradeId);if(f.revision!==m.expectedRevision)throw new ge("grade",f.id,m.expectedRevision,f.revision);if(["completed","failed","cancelled"].includes(f.status))return me("grade",f);let h=Xe.parse({...f,revision:f.revision+1,status:f.status==="queued"?"cancelled":"cancelling",updatedAt:t()});return await p.put("grade",h,f.revision,{parentId:f.evidence.id,status:h.status}),me("grade",h)}c(l,"cancelGrade");async function T(p,m,f){let h=await Gt(p,m.evidence),w=await X(p,"definition",h.submission.taskDefinition),R=Qa(h,w),y=`decision-${h.id}`,S=await p.get("decision",y),E=await zo(p,m.observedGradeId,h,"observed"),k=await zo(p,m.targetGradeId,h,"proposed_target"),A=E?.training.status==="scored"?E.training:E?.evaluation,N=un.parse(F(ln.parse({schemaVersion:"openpond.taskAdmissionDecision.v1",id:y,revision:m.expectedRevision+1,evidence:I(h),supersedes:S?I(S):null,actor:{kind:"human",id:f,policy:null},evidenceValidity:R.evidenceValidity,taskAdmissibility:m.disposition,observedQuality:A?.status==="scored"?A.passed?"passed":"failed":E?"unavailable":"unscored",targetApproval:m.targetApproval,approvedTarget:m.approvedTarget,grade:E,targetGrade:k,note:m.note,decidedAt:t()})));return m.disposition==="approved"&&fn({decision:N,evidence:h,definition:w,purpose:m.targetApproval==="approved"?"supervised_training":"reward_training"}),await p.put("decision",N,m.expectedRevision,{parentId:h.id,status:N.taskAdmissibility}),me("decision",N)}return c(T,"review"),{command:r,async inspectTaskQueue(p,m=null){ma(p);let f=He.parse({action:"inspect_task_queue",scope:p.scope,modelProjectId:m});if(f.action!=="inspect_task_queue")throw new v("learning_request_invalid",400);return a.transaction(p.scope,h=>Cn(h,f.modelProjectId,t()))},async inspectPolicy(p,m){ma(p);let f=wt.parse(m);return a.transaction(p.scope,h=>bn(h,f,p.actor.id,t()))},async inspectEvidence(p,m){ma(p);let f=wt.parse(m);return a.transaction(p.scope,async h=>{let w=await X(h,"evidence",f),R=await X(h,"definition",w.submission.taskDefinition);return{evidence:I(w),definition:I(R),inspection:Qa(w,R)}})},async get(p,m,f,h){return ma(p),a.transaction(p.scope,w=>x(w,m,f,h))},async list(p,m,f={}){if(ma(p),f.reviewState!==void 0&&(m!=="evidence"||!["inbox","reviewed"].includes(f.reviewState)))throw new v("learning_review_filter_invalid",400);let h=Math.max(1,Math.min(100,Math.trunc(f.limit??50)));return a.transaction(p.scope,w=>w.list(m,{...f,limit:h}))}}}c(af,"createLearningService");async function zo(a,e,t,r){if(e===null)return null;let s=await x(a,"grade",e);if(s.status!=="completed"||!s.composition||s.target!==r||!C(s.evidence,I(t)))throw new v("task_grade_not_applicable",422);let i=await X(a,"definition",t.submission.taskDefinition);return Za(s.composition,t,i,s.output),s.composition}c(zo,"gradeResult");function me(a,e){return{kind:a,id:e.id,revision:e.revision}}c(me,"pointer");function ma(a){if(!a.scope.trim()||!a.actor.id.trim()||a.actor.role==="source")throw new v("learning_read_not_authorized",403)}c(ma,"authorizeRead");function hl(a,e){if(!a.scope.trim()||!a.actor.id.trim())throw new v("learning_scope_required",400);let t=e.action==="publish"?[e]:e.action==="publish_resources"?e.resources:[];if(a.actor.role!=="reviewer"&&t.some(r=>r.kind==="policy"&&r.content.enabled&&r.content.automation.train&&r.content.trigger.kind!=="manual"))throw new v("learning_review_not_authorized",403);if(a.actor.role==="source"){let r=e.action==="submit_example"?e.example.sourceId:e.action==="submit_feedback"?e.feedback.sourceId:null;if(!r||r!==a.actor.sourceId)throw new v("learning_source_not_authorized",403)}if(["review","apply_correction","resolve_feedback","seal_batch","reserve_iteration","cancel_iteration_reservation","cancel_iteration","retry_iteration_dispatch"].includes(e.action)&&a.actor.role!=="reviewer")throw new v("learning_review_not_authorized",403)}c(hl,"authorize");function uf(a,e,t){let r=t.now??(()=>new Date().toISOString()),s=new Map,i=c((o,u)=>JSON.stringify([o,u]),"key");async function n(o,u){let l=await a.transaction(o,async m=>{let f=await x(m,"grade",u);if(["completed","failed","cancelled"].includes(f.status))return{acquired:!1,run:f};if(f.leaseExpiresAt!==null&&Date.parse(f.leaseExpiresAt)>Date.parse(r()))return{acquired:!1,run:f};let h=Xe.parse({...f,revision:f.revision+1,status:f.status==="cancelling"?"cancelling":"running",leaseOwner:t.workerId,leaseExpiresAt:new Date(Date.parse(r())+f.timeoutMs+3e4).toISOString(),attemptCount:f.attemptCount+1,updatedAt:r()});return await m.put("grade",h,f.revision,{parentId:f.evidence.id,status:h.status}),{acquired:!0,run:h}});if(!l.acquired)return l.run;if(l.run.status==="cancelling"){let m=await e.cancel({scope:o,run:l.run});return d(o,l.run,m?{status:"cancelled",composition:null,failure:null}:{status:"cancelling",composition:null,failure:null})}let T=new AbortController;s.set(i(o,u),T);let p=setTimeout(()=>T.abort(new Error("task_grade_timeout")),l.run.timeoutMs);try{let m=await a.transaction(o,async h=>{let w=await X(h,"evidence",l.run.evidence),R=await X(h,"definition",w.submission.taskDefinition),y=await X(h,"binding",l.run.binding),S=await Promise.all(y.sources.map(E=>X(h,"reward",E.reward)));return{evidence:w,definition:R,binding:y,rewards:S}});T.signal.throwIfAborted();let f=await e.execute({scope:o,run:l.run,...m,signal:T.signal});return T.signal.throwIfAborted(),Za(f,m.evidence,m.definition,l.run.output),await d(o,l.run,{status:"completed",composition:f,failure:null})}catch(m){if(T.signal.aborted){if(!await e.cancel({scope:o,run:l.run}))return d(o,l.run,{status:"cancelling",composition:null,failure:"Execution cancellation is awaiting owner confirmation."});if(T.signal.reason instanceof Error&&T.signal.reason.message==="task_grade_cancel_requested")return d(o,l.run,{status:"cancelled",composition:null,failure:null})}return await d(o,l.run,{status:"failed",composition:null,failure:m instanceof Error?m.message:"Task grading failed."})}finally{clearTimeout(p),s.delete(i(o,u))}}c(n,"run");async function d(o,u,l){return a.transaction(o,async T=>{let p=await x(T,"grade",u.id);if(p.leaseOwner!==t.workerId||p.attemptCount!==u.attemptCount||["completed","failed","cancelled"].includes(p.status))return p;let m=l.status,f=Xe.parse({...p,...l,status:m,composition:m==="completed"?l.composition:null,revision:p.revision+1,leaseOwner:null,leaseExpiresAt:m==="cancelling"?new Date(Date.parse(r())+5e3).toISOString():null,updatedAt:r()});return await T.put("grade",f,p.revision,{parentId:p.evidence.id,status:f.status}),f})}return c(d,"finish"),{run:n,requestCancellation(o,u){s.get(i(o,u))?.abort(new Error("task_grade_cancel_requested"))},async drain(o,u=20){let l=await a.transaction(o,async p=>{let m=[];for(let f of["queued","running","cancelling"])m.push(...(await p.list("grade",{status:f,limit:Math.max(1,Math.min(100,u))})).items);return m}),T=[];for(let p of l)T.push(await n(o,p.id));return T}}}c(uf,"createTaskGradeWorker");function Go(a){let e=a.now??(()=>new Date().toISOString());return{transaction(t,r){return a.repository.transaction(a.scope,async s=>{let i=await x(s,"reward_check",a.run.id);if(i.snapshotHash!==a.run.snapshotHash)throw new Error("model_judge_budget_snapshot_changed");if(t==="dispatch"&&(i.status!=="running"||!i.leaseOwner||i.leaseOwner!==a.run.leaseOwner||i.attemptCount!==a.run.attemptCount||!i.leaseExpiresAt||Date.parse(i.leaseExpiresAt)<=Date.parse(e())))throw new Error("model_judge_budget_owner_inactive");let n=i.judgeCalls??[],d=r({maximumSpendUsd:i.maximumSpendUsd,calls:n});if(g(d.calls)!==g(n)){let o=Le.parse({...i,revision:i.revision+1,judgeCalls:d.calls,updatedAt:e()});await s.put("reward_check",o,i.revision,{parentId:i.reward.id,status:i.status})}return d.result})}}}c(Go,"createRewardCheckJudgeBudgetStore");function yf(a){let e=a.now??(()=>new Date().toISOString()),t=c(r=>g([r.evidence,r.binding,r.target,r.output]),"identity");return{transaction(r,s){return a.repository.transaction(a.scope,async i=>{let n=await x(i,"grade",a.run.id);if(t(n)!==t(a.run))throw new Error("model_judge_budget_snapshot_changed");if(r==="dispatch"&&(n.status!=="running"||!n.leaseOwner||n.leaseOwner!==a.run.leaseOwner||n.attemptCount!==a.run.attemptCount||!n.leaseExpiresAt||Date.parse(n.leaseExpiresAt)<=Date.parse(e())))throw new Error("model_judge_budget_owner_inactive");let d=n.judgeCalls??[],o=s({maximumSpendUsd:n.maximumSpendUsd,calls:d});if(g(o.calls)!==g(d)){let u=Xe.parse({...n,revision:n.revision+1,judgeCalls:o.calls,updatedAt:e()});await i.put("grade",u,n.revision,{parentId:n.evidence.id,status:n.status})}return o.result})}}}c(yf,"createTaskGradeJudgeBudgetStore");function Qo(a){return{runtime:a.runtime,async execute(e){return Rn({reward:e.reward,fixture:e.fixture,signal:e.signal,modelJudge:e.reward.implementation.kind==="model_judge"?await a.createModelJudge?.(e):void 0,customVerifier:c(async({grader:t,task:r,evidence:s})=>{let i=e.assets.find(o=>o.id===t.verifierRef.id);if(!i)throw new Error("reward_check_source_missing");let n=Q(i,t.verifierRef),d=await a.executeJavaScript({source:n,exportName:t.exportName,runtime:t.runtime,signal:e.signal,timeoutMs:Math.min(t.timeoutMs,e.run.timeoutMs),value:{task:r,attempt:s,input:r.input,output:s.output,expectedOutput:r.expectedOutput,evaluatorContext:e.fixture.evaluatorContext,infrastructureError:s.infrastructureError??null}});return{score:d.score,passed:d.passed,rewardEligible:t.rewardEligible,failureClass:null,feedback:[d.feedback],visibleEvidenceRefs:[],privilegedEvidenceRefs:d.evidenceRefs}},"customVerifier")})},async cancel(e){return a.createModelJudge?a.cancelModelJudge?.(e)??!1:!0}}}c(Qo,"createIsolatedRewardFixtureExecutor");function Xf(a){return Qo({runtime:a.runtime,executeJavaScript:a.executeJavaScript,async cancelModelJudge(e){let t=await a.repository.transaction(e.scope,r=>x(r,"reward_check",e.run.id));return t.judgeCalls?.some(r=>r.status==="reserved")?!1:a.provider.cancel({...e,run:t})},async createModelJudge(e){let t=Go({repository:a.repository,scope:e.scope,run:e.run});return nn({async readRubric(r){let s=e.assets.find(i=>i.id===r.id);if(!s)throw new Error("reward_check_rubric_missing");return Q(s,r)},async executeBudgeted(r,s){let i=await a.provider.prepare(r,{scope:e.scope,run:e.run});return on({store:t,maximumCharge:c(()=>i.maximumChargeUsd,"maximumCharge"),dispatch:c((d,o)=>i.dispatch(o),"dispatch")})(`fixture-${g([e.fixture,e.reward.contentHash])}`,r,s)}})}})}c(Xf,"createBudgetedRewardFixtureExecutor");function Wf(a,e,t){let r=wn.parse(e.runtime),s=t.now??(()=>new Date().toISOString()),i=new Map,n=c((T,p)=>JSON.stringify([T,p]),"key"),d=c(T=>["completed","failed","cancelled"].includes(T.status),"terminal");async function o(T,p){let m=await a.transaction(T,async w=>{let R=await x(w,"reward_check",p);if(d(R)||R.leaseExpiresAt&&Date.parse(R.leaseExpiresAt)>Date.parse(s()))return{acquired:!1,run:R};let y=Le.parse({...R,revision:R.revision+1,status:R.status==="cancelling"?"cancelling":"running",runtime:R.status==="cancelling"?R.runtime:r,leaseOwner:t.workerId,leaseExpiresAt:new Date(Date.parse(s())+R.timeoutMs+3e4).toISOString(),attemptCount:R.attemptCount+1,results:R.results,matchesExpectations:null,failure:null,updatedAt:s()});return await w.put("reward_check",y,R.revision,{parentId:y.reward.id,status:y.status}),{acquired:!0,run:y}});if(!m.acquired)return m.run;if(m.run.status==="cancelling"){let w=await e.cancel({scope:T,run:m.run});return l(T,m.run,w?"cancelled":"cancelling",null)}let f=new AbortController;i.set(n(T,p),f);let h=setTimeout(()=>f.abort(new Error("reward_check_timeout")),m.run.timeoutMs);try{let w=await a.transaction(T,async R=>{let y=await X(R,"draft",m.run.draft);if(y.targetKind!=="reward")throw new Error("reward_check_draft_kind_invalid");let S=y.baseRelease?await X(R,"reward",y.baseRelease):null,E=kt(y,S);if(E.snapshotHash!==m.run.snapshotHash||!C(I(E.reward),m.run.reward)||g(E.fixtureRefs)!==g(m.run.fixtureRefs))throw new Error("reward_check_snapshot_mismatch");return E});for(let R of w.fixtures){f.signal.throwIfAborted();let y=m.run.results.find(k=>k.fixture.id===R.id);if(y){if(y.fixture.contentHash!==g(R)||!C(y.result.reward,m.run.reward)||y.result.graderId!==w.reward.id||y.result.role!=="evaluation")throw new Error("reward_check_retained_fixture_mismatch");continue}let S=rn.parse(await e.execute({...w,scope:T,run:m.run,fixture:R,signal:f.signal}));if(S.graderId!==w.reward.id||!C(S.reward,m.run.reward)||S.role!=="evaluation")throw new Error("reward_check_result_identity_mismatch");let E=await a.transaction(T,async k=>{let A=await x(k,"reward_check",p);if(!u(A,m.run)||d(A))return A;let N=Le.parse({...A,revision:A.revision+1,results:[...A.results,sr(R,S)],updatedAt:s()});return await k.put("reward_check",N,A.revision,{parentId:A.reward.id,status:A.status}),N});if(!u(E,m.run)||d(E))return E;E.status==="cancelling"&&f.abort(new Error("reward_check_cancel_requested"))}return f.signal.throwIfAborted(),await l(T,m.run,"completed",null)}catch(w){if(f.signal.aborted){if(!await e.cancel({scope:T,run:m.run}))return l(T,m.run,"cancelling","Execution cleanup is awaiting owner confirmation.");if(f.signal.reason instanceof Error&&f.signal.reason.message==="reward_check_cancel_requested")return l(T,m.run,"cancelled",null)}return await l(T,m.run,"failed",w instanceof Error?w.message:"Reward checks failed.")}finally{clearTimeout(h),i.delete(n(T,p))}}c(o,"run");function u(T,p){return T.leaseOwner===t.workerId&&T.attemptCount===p.attemptCount}c(u,"owns");async function l(T,p,m,f){return a.transaction(T,async h=>{let w=await x(h,"reward_check",p.id);if(!u(w,p)||d(w))return w;if(m==="completed"&&w.results.length!==w.fixtureRefs.length)throw new Error("reward_check_results_incomplete");let R=Le.parse({...w,revision:w.revision+1,status:m,failure:f,matchesExpectations:m==="completed"?w.results.every(y=>y.matchesExpectation):null,leaseOwner:null,leaseExpiresAt:m==="cancelling"?new Date(Date.parse(s())+5e3).toISOString():null,updatedAt:s()});return await h.put("reward_check",R,w.revision,{parentId:w.reward.id,status:R.status}),R})}return c(l,"finish"),{run:o,requestCancellation(T,p){i.get(n(T,p))?.abort(new Error("reward_check_cancel_requested"))},async drain(T,p=20){let m=await a.transaction(T,async h=>{let w=[];for(let R of["queued","running","cancelling"])w.push(...(await h.list("reward_check",{status:R,limit:Math.max(1,Math.min(100,p))})).items);return w}),f=[];for(let h of m)f.push(await o(T,h.id));return f}}}c(Wf,"createRewardCheckWorker");var gl=Ne.parse({capabilities:[{id:"filesystem.workspace",portability:"host_adapter",required:!0,scopes:["inputs:read","work:read-write","outputs:write"]},{id:"network.web-read",portability:"host_adapter",required:!0,scopes:["search","fetch"]},{id:"artifact.pdf",portability:"host_adapter",required:!0,scopes:["create","render","inspect"]},{id:"artifact.spreadsheet",portability:"host_adapter",required:!0,scopes:["create","calculate","inspect"]}],contentHash:"20e247cec268ecb6380bc7af204abc9056f7eaa90e1e85aa5e11544f2506888d",environment:{defaultTimeoutMs:9e5,deterministicSeeds:!1,entrypoint:"openpond-work-v1",kind:"work",lifecycle:["create","reset","step","collect","destroy"],networkPolicy:"declared_read_only",protocolVersion:"openpond.environment.v1",stateful:!0},graders:[{hardGate:!0,id:"task-output-contract",kind:"custom_verifier",networkPolicy:"none",privileged:!0,rewardEligible:!0,timeoutMs:3e4,verifierRef:{contentHash:"31cda791adf4e55131ee49651431432b429f1404dbc4fa610a3fe1466574f270",id:"verifiers-taskset-output-verifier-mjs",mediaType:"text/javascript",path:"verifiers/taskset-output-verifier.mjs",sizeBytes:2994,visibility:"verifier"},version:"1",weight:1}],id:"harness-refiner-20260818-v2",metadata:{adaptationSplit:"validation",benchmark:"harness-refiner",frozenEvaluationSplit:"frozen_eval",modelJudgeRole:"supplementary_uncalibrated_not_executed",orderSeed:"harness-refiner-20260818-order-v1",primaryMetric:"paired_verified_reward",protocolVersion:"3",qualityPolicy:"complete_frozen_cohort",refinementMode:"sequential_product_lifecycle",resultSchemaVersion:"openpond.harnessRefinerPublicResult.v2",secondaryMetrics:["paired_foreground_provider_tokens"],supplementaryModelJudge:{calibrationStatus:"pending",executable:!1,id:"task-quality-judge",rewardEligible:!1,rubricRef:{contentHash:"455b3697c0617333a34b6521f167760fb8ae7e286059fa2ec327a5c97e66a2b3",id:"rubrics-task-quality-md",mediaType:"text/markdown",path:"rubrics/task-quality.md",sizeBytes:1496,visibility:"verifier"},version:"1"},toolDeclarationSource:"openpond-production-model-tool-definitions",trainingSideEffect:!1},policy:{connectedAppScopes:[],hiddenGraderRefs:["rubrics-task-quality-md","verifiers-taskset-output-verifier-mjs"],policyVisibleFields:["input"],privilegedFields:["expectedOutput"]},revision:2,schemaVersion:"openpond.tasksetRelease.v2",tasks:[{artifactRefs:[{contentHash:"8879f8e31a916f165724a3c3e3e57db5baa858cd170ac6799064aa49bc623aa4",id:"fixtures-adaptation-board-launch-md",mediaType:"text/markdown",path:"fixtures/adaptation-board-launch.md",sizeBytes:642,visibility:"policy"}],clusterKey:"northstar-launch-packet",expectedOutput:{deliverable:"pdf",deterministicContract:{},mustInclude:["three decision options","owners and dates","confirmed facts","open legal and finance gates"],mustNot:["present an open gate as approved","invent a recommended decision"],validation:["structural","visual"]},id:"adaptation-board-launch-brief",input:{attachments:["adaptation-board-launch.md"],prompt:"Please turn the attached Northstar launch packet into a polished two-page PDF decision brief for the executive meeting. Make the three options, owners, dates, confirmed facts, open gates, and risks easy to scan. The source records no final choice, so do not select, recommend, or imply a preferred option. Visually check the finished PDF before you send it back."},policyVisibleContext:{attachmentCount:1},privilegedContextRef:"expected-adaptation-board-launch-brief",requiredOutputs:[{maxBytes:1e7,mediaType:"application/pdf",metadata:{validationKinds:["structural","visual"]},path:"adaptation-board-launch-brief.pdf",schemaRef:null}],split:"validation",tags:["artifact-verification","decision-brief","adaptation"]},{artifactRefs:[{contentHash:"a3d44bb123a242d78d0f60d4d8ad352e499bef677eaf816a19d07359a172743f",id:"fixtures-adaptation-latency-incident-md",mediaType:"text/markdown",path:"fixtures/adaptation-latency-incident.md",sizeBytes:733,visibility:"policy"}],clusterKey:"checkout-latency-incident-packet",expectedOutput:{deliverable:"pdf",deterministicContract:{},mustInclude:["incident window","confirmed impact","recovery","hypotheses labeled as hypotheses","unknowns","follow-up owners"],mustNot:["state either hypothesis as root cause","claim unresolved carts were recovered"],validation:["structural","visual"]},id:"adaptation-latency-incident-review",input:{attachments:["adaptation-latency-incident.md"],prompt:"Create a concise PDF incident review from the attached checkout latency packet. Clearly separate confirmed observations, recovery actions, hypotheses, unknowns, customer impact, and follow-up owners. Check that the rendered PDF is readable and complete."},policyVisibleContext:{attachmentCount:1},privilegedContextRef:"expected-adaptation-latency-incident-review",requiredOutputs:[{maxBytes:1e7,mediaType:"application/pdf",metadata:{validationKinds:["structural","visual"]},path:"adaptation-latency-incident-review.pdf",schemaRef:null}],split:"validation",tags:["artifact-verification","incident-review","adaptation"]},{artifactRefs:[{contentHash:"63bca96753ae1491a45ba13e1a06cfb48973cfbe4f392e8f181e7b9648fd9db4",id:"fixtures-adaptation-program-budget-md",mediaType:"text/markdown",path:"fixtures/adaptation-program-budget.md",sizeBytes:649,visibility:"policy"}],clusterKey:"harbor-program-budget-packet",expectedOutput:{deliverable:"spreadsheet",deterministicContract:{},mustInclude:["summary sheet","detail sheet","formula-driven full-year forecast","formula-driven variance","owner column","overrun flag"],mustNot:["replace formulas with typed totals","reverse the variance sign"],validation:["structural","test"]},id:"adaptation-program-budget-workbook",input:{attachments:["adaptation-program-budget.md"],prompt:"Build an Excel workbook from the attached Harbor youth program budget. Include a one-page summary and a detail sheet with formulas for full-year forecast and variance, clearly flag forecast overruns, preserve the listed owners, and verify the calculations before returning it."},policyVisibleContext:{attachmentCount:1},privilegedContextRef:"expected-adaptation-program-budget-workbook",requiredOutputs:[{maxBytes:1e7,mediaType:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",metadata:{validationKinds:["structural","test"]},path:"adaptation-program-budget-workbook.xlsx",schemaRef:null}],split:"validation",tags:["artifact-verification","spreadsheet","adaptation"]},{artifactRefs:[],clusterKey:"northwind-invoice-correction-message",expectedOutput:{deliverable:"message",deterministicContract:{forbiddenText:["intentional error","deliberate error"],maxWords:130,requiredAny:[["no payment","not due"]],requiredText:["inv-1842","120","102","august 14","accounts@example.com"],requireMessageBody:!0},mustInclude:["complete send-ready message copy","INV-1842","120 seats instead of 102","August 14","no payment due until corrected","accounts@example.com"],mustNot:["suggest the error was intentional","exceed 130 words","return only a checklist or file path instead of the message"],validation:[]},id:"adaptation-invoice-correction-email",input:{attachments:[],prompt:"Draft a courteous email to Northwind Labs explaining that invoice INV-1842 incorrectly lists 120 seats instead of 102. A corrected invoice will arrive by August 14, no payment is due until it arrives, and billing questions should go to accounts@example.com. Keep it under 130 words and do not suggest the error was intentional."},policyVisibleContext:{attachmentCount:0},privilegedContextRef:"expected-adaptation-invoice-correction-email",requiredOutputs:[],split:"validation",tags:["constraint-following","direct-deliverable","communication","adaptation"]},{artifactRefs:[],clusterKey:"nextjs-security-current-sources",expectedOutput:{deliverable:"report",deterministicContract:{minLinks:1,requiredAny:[["affected"],["fixed","patched"],["checked","as of"],["version and configuration","version or configuration","exact version"]]},mustInclude:["official advisory links","affected and fixed versions","date checked","limits on exposure inference"],mustNot:["declare exposure without project version and configuration","use an uncited vulnerability list"],validation:[]},id:"adaptation-nextjs-security-audit",input:{attachments:[],prompt:"Audit the currently supported Next.js release lines for security advisories published in the last twelve months. Use primary sources, explain which versions are affected and fixed, avoid inferring that a project is vulnerable without its exact version and configuration, and give me a concise linked report with the date checked."},policyVisibleContext:{attachmentCount:0},privilegedContextRef:"expected-adaptation-nextjs-security-audit",requiredOutputs:[],split:"validation",tags:["research-efficiency","primary-sources","security","adaptation"]},{artifactRefs:[],clusterKey:"juniper-workshop-reschedule-message",expectedOutput:{deliverable:"message",deterministicContract:{forbiddenText:["venue caused","venue's fault"],maxWords:120,requiredAny:[["facilitator","presenter"],["registration","registrations"]],requiredText:["september 10","2:00","et","recording","events@example.com"],requireMessageBody:!0},mustInclude:["complete send-ready message copy","September 10","2:00 p.m. ET","facilitator unavailable","registrations carry over","recording","events@example.com"],mustNot:["blame the venue","exceed 120 words","return only a checklist or file path instead of the message"],validation:[]},id:"adaptation-workshop-reschedule-email",input:{attachments:[],prompt:"Draft a warm email to Juniper workshop registrants explaining that the September 3 session is moving to September 10 at 2:00 p.m. ET because the facilitator is unavailable. Existing registrations carry over, a recording will be shared, and questions should go to events@example.com. Keep it under 120 words and do not imply the venue caused the change."},policyVisibleContext:{attachmentCount:0},privilegedContextRef:"expected-adaptation-workshop-reschedule-email",requiredOutputs:[],split:"validation",tags:["constraint-following","direct-deliverable","communication","adaptation"]},{artifactRefs:[],clusterKey:"boston-dc-accessibility-sources",expectedOutput:{deliverable:"report",deterministicContract:{minLinks:1,requiredAny:[["wheelchair","accessible","accessibility"],["outbound"],["return"],["disruption","service alert"],["checked","as of"],["confirm","confirmation"]],requiredText:["september 17","september 19"]},mustInclude:["official operator sources","outbound and return plan","accessibility details","disruption check","time checked","items needing confirmation"],mustNot:["guarantee availability not confirmed by booking","hide access limitations"],validation:[]},id:"adaptation-accessible-boston-dc-plan",input:{attachments:[],prompt:"Plan a wheelchair-accessible train trip from Boston to Washington, DC for September 17, 2026, returning September 19. Verify accessibility and disruption information from official sources, distinguish facts from anything that still needs confirmation, include direct links and the time checked, and keep the answer practical and concise."},policyVisibleContext:{attachmentCount:0},privilegedContextRef:"expected-adaptation-accessible-boston-dc-plan",requiredOutputs:[],split:"validation",tags:["research-efficiency","current-information","travel","adaptation"]},{artifactRefs:[],clusterKey:"chatgpt-x-reddit-public-sample",expectedOutput:{deliverable:"report",deterministicContract:{minLinks:1,requiredAny:[["positive"],["negative"],["anecdote","anecdotal"],["pattern","recurring"],["sampling","sample"],["limitation","access"]]},mustInclude:["links to public examples","dates","positive experiences","negative experiences","pattern versus anecdote","sampling limitations"],mustNot:["post or interact","represent a convenience sample as representative sentiment"],validation:[]},id:"adaptation-chatgpt-public-experiences",input:{attachments:[],prompt:"Research what people have publicly said about using ChatGPT on X and Reddit during the last thirty days. Give me a concise, linked summary of recurring positive and negative experiences, separate patterns from anecdotes, include dates, and explain any platform-access or sampling limitations. Do not post or interact with anyone."},policyVisibleContext:{attachmentCount:0},privilegedContextRef:"expected-adaptation-chatgpt-public-experiences",requiredOutputs:[],split:"validation",tags:["research-efficiency","current-information","social-research","adaptation"]},{artifactRefs:[],clusterKey:"acme-launch-delay-message",expectedOutput:{deliverable:"message",deterministicContract:{forbiddenText:["testing failed","test failed","compensation"],maxWords:140,requiredAny:[["accessibility testing","accessibility test"],["pilot access"]],requiredText:["august 27","august 22","pilot-support@example.com"],requireMessageBody:!0},mustInclude:["complete send-ready message copy","August 27","accessibility testing incomplete","August 22 expectation","pilot access remains","support email"],mustNot:["say testing failed","exceed 140 words","invent compensation","return only a checklist or file path instead of the message"],validation:[]},id:"adaptation-launch-delay-email",input:{attachments:[],prompt:"Draft a calm email to the Acme pilot customers explaining that the August 20 launch is moving to August 27 because final accessibility testing is not complete. Testing is expected to finish August 22, existing pilot access remains available, and questions should go to pilot-support@example.com. Keep it under 140 words and do not imply the test has failed."},policyVisibleContext:{attachmentCount:0},privilegedContextRef:"expected-adaptation-launch-delay-email",requiredOutputs:[],split:"validation",tags:["constraint-following","direct-deliverable","communication","adaptation"]},{artifactRefs:[],clusterKey:"cirrus-service-window-message",expectedOutput:{deliverable:"message",deterministicContract:{forbiddenText:["zero interruption","no interruption"],maxWords:125,requiredAny:[["read-only","read only"],["alerts"],["no data loss"]],requiredText:["august 18","1:00","2:00","utc","status.example.com"],requireMessageBody:!0},mustInclude:["complete send-ready message copy","August 18","1:00 to 2:00 UTC","dashboard read-only","alerts continue","no data loss expected","status.example.com"],mustNot:["promise zero interruption","exceed 125 words","return only a checklist or file path instead of the message"],validation:[]},id:"adaptation-service-window-email",input:{attachments:[],prompt:"Draft a calm email to Cirrus customers about planned maintenance on August 18 from 1:00 to 2:00 UTC. The dashboard will be read-only, alerts will continue, no data loss is expected, and updates will appear at status.example.com. Keep it under 125 words and do not promise that there will be zero interruption."},policyVisibleContext:{attachmentCount:0},privilegedContextRef:"expected-adaptation-service-window-email",requiredOutputs:[],split:"validation",tags:["constraint-following","direct-deliverable","communication","adaptation"]},{artifactRefs:[{contentHash:"cb3aec594b140129ebd872c427053ba63a303cc36d160448afc9ed1a0289d3ca",id:"fixtures-frozen-clinic-relocation-md",mediaType:"text/markdown",path:"fixtures/frozen-clinic-relocation.md",sizeBytes:652,visibility:"policy"}],clusterKey:"riverside-clinic-relocation-packet",expectedOutput:{deliverable:"pdf",deterministicContract:{},mustInclude:["three opening options","owners and dates","confirmed facts","permit and parking gates","delivery risk"],mustNot:["present either approval as complete","invent a chosen opening option"],validation:["structural","visual"]},id:"frozen-clinic-relocation-brief",input:{attachments:["frozen-clinic-relocation.md"],prompt:"Please turn the attached Riverside clinic relocation packet into a polished two-page PDF decision brief. Make the opening options, owners, dates, confirmed facts, unresolved approvals, and delivery risk easy to scan, and visually check the finished PDF before returning it."},policyVisibleContext:{attachmentCount:1},privilegedContextRef:"expected-frozen-clinic-relocation-brief",requiredOutputs:[{maxBytes:1e7,mediaType:"application/pdf",metadata:{validationKinds:["structural","visual"]},path:"frozen-clinic-relocation-brief.pdf",schemaRef:null}],split:"frozen_eval",tags:["artifact-verification","decision-brief","frozen-eval"]},{artifactRefs:[{contentHash:"80aad04ac67682165f098884fd1a86e9fb3ef15d2da3124401308dd23884b612",id:"fixtures-frozen-payment-incident-md",mediaType:"text/markdown",path:"fixtures/frozen-payment-incident.md",sizeBytes:672,visibility:"policy"}],clusterKey:"subscription-renewal-incident-packet",expectedOutput:{deliverable:"pdf",deterministicContract:{},mustInclude:["incident window","attempt and timeout counts","recovery","hypothesis label","33 unresolved accounts","follow-up owners"],mustNot:["state the certificate hypothesis as confirmed","claim all accounts resolved"],validation:["structural","visual"]},id:"frozen-payment-incident-review",input:{attachments:["frozen-payment-incident.md"],prompt:"Create a concise PDF incident review from the attached subscription renewal incident packet. Separate confirmed impact and recovery from the root-cause hypothesis and unresolved customer accounts, preserve the owners, and check the rendered PDF for readability and completeness."},policyVisibleContext:{attachmentCount:1},privilegedContextRef:"expected-frozen-payment-incident-review",requiredOutputs:[{maxBytes:1e7,mediaType:"application/pdf",metadata:{validationKinds:["structural","visual"]},path:"frozen-payment-incident-review.pdf",schemaRef:null}],split:"frozen_eval",tags:["artifact-verification","incident-review","frozen-eval"]},{artifactRefs:[{contentHash:"c58b740d57b031cfe22d475d30b39a1a49a43820f1840a1d8054731cef58c8e8",id:"fixtures-frozen-grant-budget-md",mediaType:"text/markdown",path:"fixtures/frozen-grant-budget.md",sizeBytes:661,visibility:"policy"}],clusterKey:"greenway-grant-budget-packet",expectedOutput:{deliverable:"spreadsheet",deterministicContract:{},mustInclude:["summary sheet","detail sheet","formula-driven full-year forecast","formula-driven variance","owner column","overrun flag"],mustNot:["replace formulas with typed totals","reverse the variance sign"],validation:["structural","test"]},id:"frozen-grant-budget-workbook",input:{attachments:["frozen-grant-budget.md"],prompt:"Build an Excel workbook from the attached Greenway community grant budget. Include a one-page summary and detail sheet with formulas for full-year forecast and variance, flag forecast overruns, preserve owners, and verify all calculations before returning it."},policyVisibleContext:{attachmentCount:1},privilegedContextRef:"expected-frozen-grant-budget-workbook",requiredOutputs:[{maxBytes:1e7,mediaType:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",metadata:{validationKinds:["structural","test"]},path:"frozen-grant-budget-workbook.xlsx",schemaRef:null}],split:"frozen_eval",tags:["artifact-verification","spreadsheet","frozen-eval"]},{artifactRefs:[],clusterKey:"beacon-shipping-delay-message",expectedOutput:{deliverable:"message",deterministicContract:{forbiddenText:["equipment is lost","shipment is lost"],maxWords:90,requiredAny:[["transfer window"],["installation","crew"]],requiredText:["august 21","august 22","morgan","logistics"],requireMessageBody:!0},mustInclude:["complete ready-to-post message copy","August 21","carrier missed transfer window","August 22 installation","Morgan","logistics channel"],mustNot:["say the equipment is lost","exceed 90 words","return only a checklist or file path instead of the message"],validation:[]},id:"frozen-shipping-delay-chat-message",input:{attachments:[],prompt:"Write a concise team chat message explaining that the Beacon equipment shipment is now expected August 21 instead of August 19 because the carrier missed its transfer window. The installation crew remains booked for August 22, Morgan owns the carrier follow-up, and the team should flag conflicts in the logistics channel. Keep it under 90 words and do not say the equipment is lost."},policyVisibleContext:{attachmentCount:0},privilegedContextRef:"expected-frozen-shipping-delay-chat-message",requiredOutputs:[],split:"frozen_eval",tags:["constraint-following","direct-deliverable","communication","frozen-eval"]},{artifactRefs:[],clusterKey:"python-requests-security-current-sources",expectedOutput:{deliverable:"report",deterministicContract:{minLinks:1,requiredAny:[["affected"],["fixed","patched"],["checked","as of"],["dependency graph","exact dependency","usage"]]},mustInclude:["primary advisory links","affected and fixed versions","date checked","dependency and usage caveat"],mustNot:["declare deployment exposure without evidence","use an uncited vulnerability list"],validation:[]},id:"frozen-python-requests-security-audit",input:{attachments:[],prompt:"Audit the supported Python Requests release lines for security advisories published in the last eighteen months. Use primary sources, identify affected and fixed versions, avoid claiming a specific deployment is exposed without its exact dependency graph and usage, and provide a concise linked report with the date checked."},policyVisibleContext:{attachmentCount:0},privilegedContextRef:"expected-frozen-python-requests-security-audit",requiredOutputs:[],split:"frozen_eval",tags:["research-efficiency","primary-sources","security","frozen-eval"]},{artifactRefs:[],clusterKey:"cobalt-refund-support-message",expectedOutput:{deliverable:"message",deterministicContract:{forbiddenText:["refund is approved","refund has been approved"],maxWords:110,requiredAny:[["original payment method"],["duplicate","charge"]],requiredText:["$48","august 16","five business days","cb-7714"],requireMessageBody:!0},mustInclude:["complete send-ready reply copy","$48 duplicate charge","August 16","original payment method","five business days","CB-7714"],mustNot:["state the refund is already approved","exceed 110 words","return only a checklist or file path instead of the message"],validation:[]},id:"frozen-refund-support-reply",input:{attachments:[],prompt:"Write a helpful support reply to a Cobalt customer whose duplicate $48 charge is being reviewed. The review should finish by August 16, any confirmed duplicate will be refunded to the original payment method within five business days, and the case number is CB-7714. Keep it under 110 words and do not state that the refund has already been approved."},policyVisibleContext:{attachmentCount:0},privilegedContextRef:"expected-frozen-refund-support-reply",requiredOutputs:[],split:"frozen_eval",tags:["constraint-following","direct-deliverable","communication","frozen-eval"]},{artifactRefs:[],clusterKey:"chicago-stl-accessibility-sources",expectedOutput:{deliverable:"report",deterministicContract:{minLinks:1,requiredAny:[["wheelchair","accessible","accessibility"],["outbound"],["return"],["disruption","service alert"],["checked","as of"],["confirm","confirmation"]],requiredText:["october 8","october 10"]},mustInclude:["official operator sources","outbound and return plan","accessibility details","disruption check","time checked","items needing confirmation"],mustNot:["guarantee unconfirmed availability","hide access limitations"],validation:[]},id:"frozen-accessible-chicago-stl-plan",input:{attachments:[],prompt:"Plan a wheelchair-accessible train trip from Chicago to St. Louis for October 8, 2026, returning October 10. Verify accessibility and disruption information from official sources, distinguish confirmed facts from anything requiring booking confirmation, include direct links and the time checked, and keep it practical."},policyVisibleContext:{attachmentCount:0},privilegedContextRef:"expected-frozen-accessible-chicago-stl-plan",requiredOutputs:[],split:"frozen_eval",tags:["research-efficiency","current-information","travel","frozen-eval"]},{artifactRefs:[],clusterKey:"new-jersey-youth-grant-sources",expectedOutput:{deliverable:"report",deterministicContract:{minLinks:1,requiredAny:[["new jersey","nj"],["eligibility","eligible"],["deadline","due"],["checked","as of"]]},mustInclude:["authoritative source links","eligibility evidence","deadlines","date checked","only realistic matches"],mustNot:["include closed grants","include grants without verified nonprofit and program eligibility","pad the list"],validation:[]},id:"frozen-new-jersey-youth-grants",input:{attachments:[],prompt:"Find currently open grants that a New Jersey nonprofit running after-school programs could realistically apply for, with deadlines between now and December 31, 2026. Use authoritative sources, link each opportunity, verify eligibility and deadline, omit weak matches instead of padding the list, and state when you checked."},policyVisibleContext:{attachmentCount:0},privilegedContextRef:"expected-frozen-new-jersey-youth-grants",requiredOutputs:[],split:"frozen_eval",tags:["research-efficiency","current-information","funding","frozen-eval"]},{artifactRefs:[],clusterKey:"maple-maintenance-followup-message",expectedOutput:{deliverable:"message",deterministicContract:{forbiddenText:["sue","lawsuit","legal action"],maxWords:130,requiredAny:[["repair date","repair schedule"]],requiredText:["july 28","august 1","security","two business days"],requireMessageBody:!0},mustInclude:["complete send-ready message copy","July 28","August 1 inspection","security concern","repair date within two business days"],mustNot:["make a legal threat","claim facts not supplied","exceed 130 words","return only a checklist or file path instead of the message"],validation:[]},id:"frozen-maintenance-followup-email",input:{attachments:[],prompt:"Draft a firm but courteous email to Maple Property Management following up on a bedroom window that has not closed securely since July 28. Maintenance inspected it August 1 but did not repair it. Ask for a repair date within two business days, mention the security concern, and keep the email under 130 words without making legal threats."},policyVisibleContext:{attachmentCount:0},privilegedContextRef:"expected-frozen-maintenance-followup-email",requiredOutputs:[],split:"frozen_eval",tags:["constraint-following","direct-deliverable","communication","frozen-eval"]},{artifactRefs:[],clusterKey:"meridian-vendor-document-message",expectedOutput:{deliverable:"message",deterministicContract:{forbiddenText:["cancel the contract","contract cancellation"],maxWords:120,requiredAny:[["onboarding","cannot finish","blocked"]],requiredText:["insurance certificate","august 7","rosa","august 12"],requireMessageBody:!0},mustInclude:["complete send-ready message copy","insurance certificate","August 7","onboarding blocked","Rosa","August 12"],mustNot:["threaten contract cancellation","exceed 120 words","return only a checklist or file path instead of the message"],validation:[]},id:"frozen-vendor-document-followup-email",input:{attachments:[],prompt:"Draft a firm but professional email to Meridian Freight following up on the insurance certificate promised for August 7. It has not arrived, carrier onboarding cannot finish without it, and Rosa needs the document or a confirmed delivery date by August 12. Keep it under 120 words and do not threaten to cancel the contract."},policyVisibleContext:{attachmentCount:0},privilegedContextRef:"expected-frozen-vendor-document-followup-email",requiredOutputs:[],split:"frozen_eval",tags:["constraint-following","direct-deliverable","communication","frozen-eval"]}],tools:[{description:"Start Work compute only when it is needed, then return live sandbox status and the stable /workspace/inputs, /workspace/work, and /workspace/outputs layout.",inputSchema:{additionalProperties:!1,properties:{},type:"object"},inputSchemaHash:"042b35e50dd5dd505f0228e829f17a8aeaae50e49d865c4754cf9ba1edba9bd0",name:"work_environment",sideEffect:"write",timeoutMs:12e4},{description:"List files in the Work scratch, input, or completed-output area. This lazily starts Work compute.",inputSchema:{additionalProperties:!1,properties:{area:{enum:["inputs","work","outputs"],type:"string"},path:{description:"Optional relative path inside the selected area.",type:"string"},recursive:{type:"boolean"}},required:["area"],type:"object"},inputSchemaHash:"a3a68e8aeb4f23710aa21fe95d4a361a14c08bcbb61a2a959a60b7b00c82807f",name:"work_list_files",sideEffect:"read",timeoutMs:12e4},{description:"Read a bounded file from Work inputs, scratch space, or completed-output candidates.",inputSchema:{additionalProperties:!1,properties:{area:{enum:["inputs","work","outputs"],type:"string"},maxBytes:{maximum:1e6,minimum:1,type:"integer"},path:{minLength:1,type:"string"}},required:["area","path"],type:"object"},inputSchemaHash:"deb9cd248f2734751286054c381ac9572b248370181970ced6563a73c905a4f0",name:"work_read_file",sideEffect:"read",timeoutMs:12e4},{description:"Write a UTF-8 Work scratch file or completed-output candidate. Use area=outputs only for a finished result that is ready to validate and save.",inputSchema:{additionalProperties:!1,properties:{area:{enum:["work","outputs"],type:"string"},content:{type:"string"},path:{minLength:1,type:"string"}},required:["area","path","content"],type:"object"},inputSchemaHash:"6a19df98686e99a324564006b0b92082f185ac4b430e9285829f781251dd145b",name:"work_write_file",sideEffect:"write",timeoutMs:12e4},{description:"Edit a Work scratch file or output candidate by exact text replacement after reading it.",inputSchema:{additionalProperties:!1,properties:{area:{enum:["work","outputs"],type:"string"},newText:{type:"string"},oldText:{minLength:1,type:"string"},path:{minLength:1,type:"string"},replaceAll:{type:"boolean"}},required:["area","path","oldText","newText"],type:"object"},inputSchemaHash:"f507d9d9abbd8cf1556f6e925c159234295c3fa01800c5556767f96be8b011db",name:"work_edit_file",sideEffect:"write",timeoutMs:12e4},{description:"Run a bounded shell command from /workspace/work. Write finished deliverables to ../outputs and inspect them; the runtime preserves output files automatically when the turn ends.",inputSchema:{additionalProperties:!1,properties:{command:{minLength:1,type:"string"},timeoutSeconds:{maximum:3600,minimum:1,type:"integer"}},required:["command"],type:"object"},inputSchemaHash:"5ba3a52cddb3f575218bed855020e91eef14092d75922c963a24c6bc97fadeda",name:"work_exec",sideEffect:"write",timeoutMs:3e5},{description:"Explicitly copy one completed file from /workspace/outputs to durable OpenPond output storage before turn completion. Normal Work turns preserve output files automatically.",inputSchema:{additionalProperties:!1,properties:{path:{description:"Path relative to /workspace/outputs, for example report.md.",minLength:1,type:"string"},suggestedName:{maxLength:180,minLength:1,type:"string"},validation:{items:{additionalProperties:!1,properties:{detail:{maxLength:4e3,type:"string"},kind:{enum:["structural","visual","test","user_review"],type:"string"},label:{maxLength:240,minLength:1,type:"string"},ref:{maxLength:4096,type:"string"},status:{enum:["passed","failed","not_run"],type:"string"}},required:["kind","status","label"],type:"object"},maxItems:32,type:"array"}},required:["path"],type:"object"},inputSchemaHash:"ca853f64b300c74441b522db03facbcc9c5bb89c86189dae24182bab39510a83",name:"work_save_output",sideEffect:"write",timeoutMs:12e4},{description:"Stop Work compute after durable outputs have been saved. Saved OutputRefs remain available.",inputSchema:{additionalProperties:!1,properties:{},type:"object"},inputSchemaHash:"042b35e50dd5dd505f0228e829f17a8aeaae50e49d865c4754cf9ba1edba9bd0",name:"work_stop",sideEffect:"write",timeoutMs:12e4},{description:"Search the web for current or external information. The app renders clickable source pills automatically. Cite by source title or source name in prose by default; when the user explicitly requests URLs or linked evidence, use the result URLs in clickable Markdown links.",inputSchema:{additionalProperties:!1,properties:{domains:{description:"Optional domain filters.",items:{type:"string"},maxItems:10,type:"array"},limit:{description:"Maximum number of results to return.",maximum:10,minimum:1,type:"integer"},query:{description:"Search query.",minLength:1,type:"string"},recencyDays:{description:"Only return results from this many recent days when supported.",minimum:0,type:"integer"}},required:["query"],type:"object"},inputSchemaHash:"2a138bf9b526a624ac2442669fccb277fac2ba818821b3a2da1dd27d62954056",name:"web_search",sideEffect:"read",timeoutMs:12e4},{description:"Fetch and extract readable text from a known HTTP(S) URL. Use this when the user provides a URL or a search result has an exact page to inspect; use web_search when discovering unknown pages by query.",inputSchema:{additionalProperties:!1,properties:{maxBytes:{description:"Maximum UTF-8 bytes of extracted text to return. Defaults to 20000.",maximum:1e5,minimum:1,type:"integer"},url:{description:"HTTP or HTTPS URL to fetch.",minLength:1,type:"string"}},required:["url"],type:"object"},inputSchemaHash:"0afe31d8dbe05643e4a19ca0897c606e379f37d741b4f61816ad8ba4d48b61b3",name:"web_fetch",sideEffect:"read",timeoutMs:12e4}]}),wl=Object.freeze({"fixtures/adaptation-board-launch.md":`# Northstar launch decision packet
|
|
2
|
+
import{d as pe}from"./chunk-YZ262JZT.js";import{$d as Ye,Aa as ot,Ac as pr,Bc as mr,Cc as Xs,Da as dt,Dc as Ds,Dd as Ct,Ec as xo,Jc as fr,Kc as Hs,Kd as ua,Ld as Tr,Md as pa,Oc as da,Pd as Us,Qa as Po,Rd as Pt,S as Ao,Sc as We,Sd as Fs,Xc as ve,Yd as Er,Zc as Ot,Zd as _r,_c as Lt,ad as bt,dd as ct,de as Do,ee as Ho,fd as At,fe as Uo,ge as xt,id as ca,jd as la,kd as Mo,md as Xo,ne as Fo,pa as xs,qc as na,ra as Co,rc as Ms,uc as oa}from"./chunk-DJHJIXMW.js";import{a as lo,b as ho,c as go,d as qe,e as wo,f as Ro,g as yo,i as ko,j as So,k as It,l as Cs,m as No,n as vo}from"./chunk-L67V63N3.js";import{E as Io,F as Oo,G as Ps,H as Lo,U as bo,a as Dn,b as ao,e as ro}from"./chunk-BFHAJTU4.js";import{$ as _s,$b as U,A as Gn,Bb as ra,D as Qn,E as Zn,Ea as cr,F as eo,G as to,Jb as ur,Lb as sa,Ob as uo,R as at,Ra as ta,Sa as Rs,Ta as ys,Ua as Fe,Wa as no,Xa as st,Ya as St,Za as ks,Zb as vs,_ as Es,_a as aa,ab as Ss,ba as or,bb as Ns,bc as Is,c as Qt,cb as it,cc as ce,d as nr,db as Nt,e as Hn,ea as hs,ec as Be,f as Un,fa as gs,fc as vt,g as Fn,ha as M,hc as ee,ic as po,j as jn,ja as re,jc as mo,k as Bn,ka as ws,kb as je,l as Zt,la as dr,lb as lr,lc as fo,ma as rt,mc as To,n as qn,nc as Eo,oa as B,ob as oo,oc as _o,pa as so,pb as co,pc as Os,q as Wn,qc as nt,rc as ia,s as Yn,sa as ea,t as $n,ta as io,tc as be,uc as Ls,va as Ue,vc as bs,w as Kn,wc as As,x as Jn,xa as Z,y as Vn,z as zn}from"./chunk-ZF6OAPTQ.js";import{A as bn,B as An,C as Cn,D as Pn,E as xn,F as He,G as Mn,H as Xn,a as tr,b as En,c as ar,d as _n,e as hn,f as gn,g as wn,h as Le,i as kt,j as Rn,k as sr,l as de,m as ge,n as x,o as X,p as De,q as yn,r as ir,s as Gt,t as kn,u as Sn,v as Nn,w as vn,x as In,y as On,z as Ln}from"./chunk-JB6FTAMW.js";import{$ as et,$a as Ne,A as Yi,Ab as ps,B as qa,Bb as ms,C as $i,D as Ki,Db as zt,E as Ji,Eb as ln,Fb as un,Ha as zi,Ib as fs,Ja as Se,Ka as ls,Kb as yt,La as ht,Lb as Xe,Ma as Gi,Mb as I,Na as Qi,Nb as C,Oa as Zi,Ob as F,Pa as us,Pb as he,Rb as Ga,Sb as pn,Ta as en,Tb as Q,Ua as Ya,Ub as Qa,Va as tt,Vb as mn,Yb as fn,Za as tn,Zb as Za,a as v,aa as Wa,ab as an,ac as Tn,ba as Jt,cc as er,d as Bi,eb as $a,gb as Vt,gc as rr,hb as rn,j as Ge,jb as Ka,kb as Ja,lb as Va,m as Qe,mb as gt,n as ns,nb as sn,nc as Ts,o as os,ob as nn,p as _e,qb as on,r as Ze,s as ja,sb as dn,t as qi,u as Ba,ub as wt,v as Wi,w as ds,wb as Rt,xa as Vi,ya as cs,yb as za,zb as cn}from"./chunk-VVKE6EYN.js";import{W as is,Z as Hi,ca as Ui,e as rs,f as Xi,fa as Fi,k as ue,l as $,m as Me,n as Kt,o as G,q as Di,t as Y,u as ze,v as g,w as oe,x as ss}from"./chunk-IFP6W4OW.js";import{b as _}from"./chunk-ES2ISFJC.js";import{c as Mi,n as ji}from"./chunk-H7IWJN7L.js";import{a as c}from"./chunk-FTQLQJQV.js";async function hr(a,e,t){let r=await x(a,"iteration",e.iterationId);if(r.revision!==e.expectedRevision)throw new ge("iteration",r.id,e.expectedRevision,r.revision);let s=await x(a,"reservation",r.id);if(r.status==="cancelled")return[{kind:"iteration",id:r.id,revision:r.revision}];if(r.trainingJob||r.evaluationJob||!["ready","waiting_for_data","waiting_for_review"].includes(r.status))throw new v("learning_execution_cancellation_required",409);let i=yt.parse({...r,revision:r.revision+1,status:"cancelled",updatedAt:t}),n=ar.parse({...s,revision:s.revision+1,budget:{...s.budget,reservedSpendUsd:0,settledSpendUsd:0,settledAt:t},updatedAt:t});await a.put("iteration",i,r.revision,{parentId:s.chainId,status:i.status}),await a.put("reservation",n,s.revision,{parentId:s.chainId,status:s.outcome});let d=await x(a,"chain",s.chainId);return d.activeIterationId===r.id&&await a.put("chain",tr.parse({...d,revision:d.revision+1,activeIterationId:null,updatedAt:t}),d.revision,{parentId:d.modelProjectId}),[{kind:"iteration",id:i.id,revision:i.revision},{kind:"reservation",id:n.id,revision:n.revision}]}c(hr,"cancelLearningIterationReservation");async function jo(a,e,t){let r=await x(a,"iteration",e.iterationId);if(r.revision!==e.expectedRevision)throw new ge("iteration",r.id,e.expectedRevision,r.revision);let s=await a.get("dispatch",r.dispatchId);if(e.action==="cancel_iteration"&&!s)return hr(a,{...e,action:"cancel_iteration_reservation"},t);if(!s)throw new v("learning_dispatch_not_started",409);if(s.state==="settled")throw new v("learning_execution_already_terminal",409);if(e.action==="retry_iteration_dispatch"&&s.state!=="blocked")throw new v("learning_dispatch_not_blocked",409);let i=e.action==="cancel_iteration"||!!s.cancelRequestedAt,n=yt.parse({...r,revision:r.revision+1,status:i?"cancelling":r.status,failure:null,updatedAt:t}),d=hn.parse({...s,revision:s.revision+1,state:s.execution?"submitted":s.submission?"prepared":"preparing",cancelRequestedAt:i?s.cancelRequestedAt??t:null,consecutiveFailures:0,nextAttemptAt:null,lastError:null,updatedAt:t});return await a.put("dispatch",d,s.revision,{parentId:r.id,status:d.state}),await a.put("iteration",n,r.revision,{parentId:s.chainId,status:n.status}),[{kind:"iteration",id:n.id,revision:n.revision},{kind:"dispatch",id:d.id,revision:d.revision}]}c(jo,"commandLearningIterationDispatch");async function Bo(a,e,t,r){let s=await X(a,"policy",e.policy),i=kn(s.modelProjectId),n=e.trigger.kind==="schedule"?{...e.trigger,scheduledAt:new Date(e.trigger.scheduledAt).toISOString()}:e.trigger.kind==="approved_count"?{...e.trigger,checkedAt:new Date(e.trigger.checkedAt).toISOString()}:e.trigger,d=g([e.policy.id,n]),o=`iteration-${g([i,d])}`,u=g({policy:e.policy,trigger:n}),l=await a.get("reservation",o);if(l){if(l.requestHash!==u)throw new v("learning_trigger_identity_conflict",409);return[{kind:"iteration",id:o,revision:(await x(a,"iteration",o)).revision},{kind:"reservation",id:o,revision:l.revision}]}let T=await x(a,"policy",s.id);if(!C(I(T),e.policy))throw new v("learning_policy_revision_stale",409);if(!s.enabled)throw new v("learning_policy_paused",409);if(s.automation.accept||s.automation.serve)throw new v("learning_automatic_acceptance_not_available",422);if(e.trigger.kind==="schedule"){if(!["schedule","nightly"].includes(s.trigger.kind)||!s.automation.train)throw new v("learning_schedule_not_enabled",409);if(Date.parse(e.trigger.scheduledAt)>Date.parse(r))throw new v("learning_schedule_not_due",409)}if(e.trigger.kind==="approved_count"){if(s.trigger.kind!=="approved_count"||!s.automation.train)throw new v("learning_count_trigger_not_enabled",409);if(Date.parse(e.trigger.checkedAt)>Date.parse(r))throw new v("learning_count_trigger_not_due",409)}let p=await a.get("chain",i);if(p?.activeIterationId)throw new v("learning_iteration_active",409,p.activeIterationId);if(p?.lastReservedAt&&Date.parse(r)-Date.parse(p.lastReservedAt)<s.limits.cooldownSeconds*1e3)throw new v("learning_iteration_cooldown",409);let m=await Nn(a,s),f=m.counts.eligible>=s.admission.minimumApprovedExamples;if(e.trigger.kind==="approved_count"&&!f)throw new v("learning_count_threshold_not_met",409);let h=f?"ready":m.counts.awaitingReview>0?"waiting_for_review":"waiting_for_data",w=[],R=await In(a,i,!0),y=await On(a,s,R),S=null;if(f){await El(a,i,r,s.limits.maxIterationSpendUsd,s.limits.maxDailySpendUsd);let N=await ir(a,{action:"seal_batch",operationId:e.operationId,batchId:`batch-${g(o)}`,taskDefinition:s.taskDefinition,purpose:m.purpose,evidence:m.selected.map(P=>I(P.evidence)),decisions:m.selected.map(P=>I(P.decision))},t,r);w.push(...N),S=I(await x(a,"batch",N[0].id));for(let P of m.selected){let j=En.parse({schemaVersion:"openpond.learningConsumption.v1",id:Sn(i,P.evidence),revision:1,chainId:i,iterationId:o,evidence:I(P.evidence),decision:I(P.decision),reservedAt:r});await a.put("consumption",j,0,{parentId:i})}}let E=yt.parse({schemaVersion:"openpond.learningIteration.v1",id:o,revision:1,policy:e.policy,status:h,triggerIdentity:d,batch:S,sourceWatermarks:{},...y,teacher:s.teacher,upstreamEvent:null,trainingJob:null,evaluationJob:null,candidateVersion:null,dispatchId:`dispatch-${g(o)}`,retryCount:0,spendUsd:0,failure:null,createdAt:r,updatedAt:r}),k=ar.parse({schemaVersion:"openpond.learningIterationReservation.v1",id:o,revision:1,chainId:i,iterationId:o,policy:e.policy,trigger:n,requestHash:u,outcome:f?"reserved":h,counts:m.counts,budget:{maximumSpendUsd:f?s.limits.maxIterationSpendUsd:0,reservedSpendUsd:f?s.limits.maxIterationSpendUsd:0,settledSpendUsd:0,settledAt:f?null:r},createdAt:r,updatedAt:r}),A=tr.parse({schemaVersion:"openpond.learningChain.v1",id:i,revision:(p?.revision??0)+1,modelProjectId:s.modelProjectId,activeIterationId:f?o:null,latestIterationId:o,acceptedParent:R,lastReservedAt:f?r:p?.lastReservedAt??null,updatedAt:r});return await a.put("iteration",E,0,{parentId:i,status:h}),await a.put("reservation",k,0,{parentId:i,status:k.outcome}),await a.put("chain",A,p?.revision??0,{parentId:s.modelProjectId}),[{kind:"iteration",id:o,revision:1},{kind:"reservation",id:o,revision:1},...w]}c(Bo,"reserveLearningIteration");async function El(a,e,t,r,s){if((await vn(a,e,t)).committedSpendUsd+r>s)throw new v("learning_daily_budget_exhausted",409)}c(El,"assertAvailableBudget");function _l(a){return`schedule-${g(a)}`}c(_l,"learningScheduleId");async function qo(a,e,t){he(e);let r=await x(a,"policy",e.id);if(!C(I(r),I(e)))throw new v("learning_policy_revision_stale",409);let s=_l(e.id),i=await a.get("schedule",s);if(i&&C(i.policy,I(e)))return i;let n=e.trigger.kind==="schedule"?e.trigger.intervalSeconds:e.trigger.kind==="approved_count"?60:null,d=e.trigger.kind==="nightly"?{localTime:e.trigger.localTime,timeZone:e.trigger.timeZone}:null,o=e.enabled&&e.automation.train&&(n!==null||d!==null),u=i?await X(a,"policy",i.policy):null,l=i?.nextRunAt&&i.intervalSeconds===n&&JSON.stringify(i.calendar)===JSON.stringify(d)&&u?.trigger.kind===e.trigger.kind&&i.executionOwner===e.executionOwner,T=gn.parse({schemaVersion:"openpond.learningSchedule.v1",id:s,revision:(i?.revision??0)+1,policy:I(e),modelProjectId:e.modelProjectId,executionOwner:e.executionOwner,state:o?"scheduled":"disabled",intervalSeconds:n,calendar:d,nextRunAt:o?l?i.nextRunAt:d?dn(d,t):new Date(Date.parse(t)+n*1e3).toISOString():null,lastFire:i?.lastFire??null,consecutiveFailures:0,nextAttemptAt:null,lastError:null,createdAt:i?.createdAt??t,updatedAt:t});return await a.put("schedule",T,i?.revision??0,{parentId:e.modelProjectId,status:T.state}),T}c(qo,"synchronizeLearningSchedule");async function Wo(a,e,t){Se(e.draft,131072);let r=await a.get("draft",e.draft.id);if(r&&(r.status!=="draft"||r.targetId!==e.draft.targetId||r.targetKind!==e.draft.targetKind||(r.baseRelease===null?e.draft.baseRelease!==null:e.draft.baseRelease===null||!C(r.baseRelease,e.draft.baseRelease))))throw new v("authoring_draft_identity_conflict",409);if(e.draft.baseRelease){if(e.draft.baseRelease.id!==e.draft.targetId)throw new v("authoring_draft_base_mismatch",422);await X(a,e.draft.targetKind,e.draft.baseRelease)}if(e.draft.targetKind==="reward")for(let i of e.draft.fields.fixtures??[]){if(!i.sourceLabel)continue;let{evidence:n,feedback:d}=i.sourceLabel;await X(a,"evidence",n);let o=await x(a,"feedback",d.id,d.revision);if(!o.evidence||!C(o.evidence,n))throw new v("reward_fixture_label_mismatch",422)}let s=rr.parse(F({...e.draft,schemaVersion:"openpond.authoringDraft.v1",revision:e.expectedRevision+1,status:"draft",publishedRelease:null,createdAt:r?.createdAt??t,updatedAt:t}));return await a.put("draft",s,e.expectedRevision,{parentId:s.targetKind,status:s.status}),{kind:"draft",id:s.id,revision:s.revision}}c(Wo,"saveAuthoringDraft");async function Yo(a,e,t){let r=await Mt(a,e),{contentHash:s,...i}=r,n=rr.parse(F({...i,revision:r.revision+1,status:"archived",updatedAt:t}));return await a.put("draft",n,r.revision,{parentId:r.targetKind,status:n.status}),{kind:"draft",id:n.id,revision:n.revision}}c(Yo,"archiveAuthoringDraft");async function js(a,e,t,r){let s=e.finalizeDraft;if(!s)return null;let i=await Mt(a,s.draft);if(i.targetKind!==s.targetKind||i.targetId!==s.release.id||s.release.revision!==(i.baseRelease?.revision??0)+1||!t.some(u=>u.kind===s.targetKind&&u.id===s.release.id&&u.revision===s.release.revision))throw new v("authoring_draft_publication_mismatch",422);await X(a,s.targetKind,s.release);let{contentHash:n,...d}=i,o=rr.parse(F({...d,revision:i.revision+1,status:"published",publishedRelease:s.release,updatedAt:r}));return await a.put("draft",o,i.revision,{parentId:i.targetKind,status:o.status}),{kind:"draft",id:o.id,revision:o.revision}}c(js,"finalizeAuthoringDraft");async function Mt(a,e){let t=await X(a,"draft",e),r=await a.get("draft",e.id);if(!r||!C(I(r),e))throw new v("authoring_draft_revision_stale",409);if(t.status!=="draft")throw new v("authoring_draft_closed",409);return t}c(Mt,"currentDraft");function Bs(a,e,t){let r=kt(a,e),s=r.reward.implementation;if(s.kind!=="model_judge"||!s.model)throw new v("reward_calibration_model_required",422);if(!C(t.draft,I(a))||!C(t.reward,I(r.reward))||t.snapshotHash!==r.snapshotHash||g(t.fixtureRefs)!==g(r.fixtureRefs))throw new v("reward_calibration_snapshot_mismatch",422);if(t.status!=="completed"||!t.runtime||t.matchesExpectations!==!0||t.failure||t.results.length!==r.fixtures.length)throw new v("reward_calibration_check_incomplete",422);if(!r.fixtures.some(d=>d.expected.status==="scored"&&d.expected.passed===!0)||!r.fixtures.some(d=>d.expected.status==="scored"&&d.expected.passed===!1))throw new v("reward_calibration_coverage_required",422,"Check both a passing and a failing example before publishing a calibrated judge.");for(let d of r.fixtures){let o=t.results.filter(p=>p.fixture.id===d.id),u=o[0];if(o.length!==1||!u||u.fixture.contentHash!==g(d)||!C(u.result.reward,t.reward)||!sr(d,u.result).matchesExpectation)throw new v("reward_calibration_fixture_mismatch",422);if(d.expected.status!=="scored")continue;let l=u.result.graderEvidence?.modelJudgeReceipt,T=t.judgeCalls?.find(p=>p.id===`fixture-${g([d,r.reward.contentHash])}`);if(!l||l.providerId!==s.model.providerId||l.modelId!==s.model.modelId||s.model.revision!==null&&l.modelRevision!==s.model.revision||T?.status!=="settled"||!T.response||T.requestHash!==l.requestHash||g(T.response)!==l.responseHash)throw new v("reward_calibration_provider_receipt_mismatch",422)}let{contentHash:i,...n}=r.reward;return{...r,reward:Ka({...n,implementation:{...s,calibrationStatus:"passed"},calibrationCheckRef:{id:t.id,revision:t.revision,contentHash:g(t)}})}}c(Bs,"qualifyRewardCheck");async function $o(a,e){if(e.implementation.kind!=="model_judge"||e.implementation.calibrationStatus!=="passed"){if(e.calibrationCheckRef)throw new v("reward_calibration_reference_invalid",422);return}let t=e.calibrationCheckRef;if(!t)throw new v("reward_calibration_check_required",422);let r=await x(a,"reward_check",t.id,t.revision);if(g(r)!==t.contentHash)throw new v("reward_calibration_check_changed",422);let s=await X(a,"draft",r.draft);if(s.targetKind!=="reward")throw new v("reward_calibration_draft_kind_invalid",422);let i=s.baseRelease?await X(a,"reward",s.baseRelease):null,n=Bs(s,i,r).reward,d=c(o=>g([o.implementation,o.rawScore,o.assets,o.fixtureSetRef??null]),"scoring");if(e.id!==n.id||d(e)!==d(n))throw new v("reward_calibration_configuration_changed",422)}c($o,"assertRewardCalibration");async function Ko(a,e,t,r,s){let i=await Mt(a,e.draft);if(i.targetKind!=="reward")throw new v("reward_check_draft_kind_invalid",422);let n=i.baseRelease?await X(a,"reward",i.baseRelease):null,d=kt(i,n),o=Le.parse({schemaVersion:"openpond.rewardCheckRun.v1",id:`reward-check-${t}`,revision:1,draft:I(i),reward:I(d.reward),snapshotHash:d.snapshotHash,fixtureRefs:d.fixtureRefs,status:"queued",runtime:null,results:[],matchesExpectations:null,timeoutMs:e.timeoutMs,maximumSpendUsd:e.maximumSpendUsd,requestedBy:s,leaseOwner:null,leaseExpiresAt:null,attemptCount:0,failure:null,createdAt:r,updatedAt:r});return await a.put("reward_check",o,0,{parentId:i.targetId,status:o.status}),{kind:"reward_check",id:o.id,revision:o.revision}}c(Ko,"queueRewardCheck");async function Jo(a,e,t){let r=await x(a,"reward_check",e.checkId);if(r.revision!==e.expectedRevision)throw new ge("reward_check",r.id,e.expectedRevision,r.revision);if(["completed","failed","cancelled"].includes(r.status))return{kind:"reward_check",id:r.id,revision:r.revision};let s=Le.parse({...r,revision:r.revision+1,status:r.status==="queued"?"cancelled":"cancelling",updatedAt:t});return await a.put("reward_check",s,r.revision,{parentId:r.reward.id,status:s.status}),{kind:"reward_check",id:s.id,revision:s.revision}}c(Jo,"cancelRewardCheck");async function Vo(a,e,t,r){let s=Dn(e);if(s.contentHash!==e.expectedPreviewHash)throw new v("task_intake_preview_changed",409);if(new Set(e.recordIds).size!==e.recordIds.length)throw new v("task_intake_duplicate_selection",422);let i=e.recordIds.map(l=>{let T=s.records.find(p=>p.id===l);if(!T)throw new v("task_intake_record_missing",422,"Choose only valid records from the current preview.");return T}),n=`intake-${s.contentHash}`,d=[];for(let l of e.files){let T=0,p=0;do{let m=Math.min(T+131072,l.text.length);m<l.text.length&&l.text.charCodeAt(m-1)>=55296&&l.text.charCodeAt(m-1)<=56319&&m--;let f=pn({text:l.text.slice(T,m),path:`${n}/${l.path}.part-${String(p++).padStart(4,"0")}`,mediaType:"text/plain",visibility:"host_private"}),h=await a.get("asset",f.id,1);h?Q(h,f.asset):await a.put("asset",f,0),d.push(f.asset),T=m}while(T<l.text.length)}let o=await a.get("source",n);if(!o){let l=Ja({schemaVersion:"openpond.rewardBinding.v1",id:`${n}-binding`,revision:1,sources:[],aggregation:"weighted_mean",unscorable:"exclude_optional_require_all_required"},[]),T=Rt.parse(F({schemaVersion:"openpond.taskDefinition.v1",id:`${n}-definition`,revision:1,name:e.name,description:`Imported ${e.format} records. Labels and task admission remain separate.`,instructions:"Respond to the retained request using its supplied context.",category:"custom",familyNamespace:`intake-${e.format}`,inputSchema:{type:"object"},outputSchema:{type:"object"},rewardBinding:I(l),harness:null,contextRequirements:s.records.some(p=>p.needsContext)?["Review the imported history and configure its reusable input, tools and runtime before admitting tasks."]:[],execution:{policy:{policyVisibleFields:["input"],privilegedFields:["expectedOutput","evaluatorContext"],hiddenGraderRefs:[],connectedAppScopes:[]},environment:{protocolVersion:"openpond.environment.v1",kind:"text",entrypoint:"openpond.text.v1",stateful:!1,deterministicSeeds:!0,lifecycle:["create","reset","step","collect","destroy"],networkPolicy:"none",defaultTimeoutMs:3e4},tools:[],capabilities:[]}}));o=za.parse(F({schemaVersion:"openpond.learningSource.v1",id:n,revision:1,name:e.name,kind:"direct",taskDefinition:I(T),enabled:!0,allowedSplits:["train","validation","test","frozen_eval"],mapping:null,adapterVersion:`openpond.intake.${e.format}.v1`})),await a.put("binding",l,0),await a.put("definition",T,0),await a.put("source",o,0)}let u=[{kind:"source",id:o.id,revision:o.revision}];for(let l of i){let T=Ts("attempt",[l.id,l.sourceHash]),p=await a.get("evidence",De(o.id,l.id,T),1);u.push(await r(a,{action:"submit_example",operationId:e.operationId,example:cn.parse({schemaVersion:"openpond.taskExample.v1",sourceId:o.id,idempotencyKey:Ts("record",[s.contentHash,l.id]),taskDefinition:o.taskDefinition,exampleId:l.id,attemptId:T,occurredAt:l.occurredAt??p?.submission.occurredAt??t,familyKey:l.familyKey,split:l.split,input:l.input,observedOutput:l.observedOutput,expected:l.expected,evaluatorContext:{intake:{format:s.format,uploadHash:s.contentHash,sourceHash:l.sourceHash,needsContext:l.needsContext,warnings:l.warnings,timestampOrigin:l.occurredAt?"source":"import_time",metadata:l.metadata}},assets:d,provenance:{sourceRecordRef:l.sourceId,mappingHash:null}})}))}return u}c(Vo,"importTaskIntake");function af(a,e={}){let t=e.now??(()=>new Date().toISOString());async function r(p,m){Se(m,16777216);let f=_n.parse(m);hl(p,f);let h=f.action==="submit_example"?f.example:f.action==="submit_feedback"?f.feedback:null,w=h?g([f.action,h.sourceId,h.idempotencyKey]):yn(p.actor.id,f.operationId),R=g(h?{action:f.action,value:h}:f);return a.transaction(p.scope,async y=>{let S=await y.operation(w);if(S){if(S.requestHash!==R)throw new v("learning_idempotency_conflict",409);return{operationId:f.operationId,resources:await Promise.all(S.resources.map(k=>x(y,k.kind,k.id,k.revision)))}}let E;switch(f.action){case"publish_checked_reward":{let k=await Mt(y,f.draft);if(k.targetKind!=="reward")throw new v("reward_calibration_draft_kind_invalid",422);let A=k.baseRelease?await X(y,"reward",k.baseRelease):null,N=await x(y,"reward_check",f.checkId,f.checkRevision),P=Bs(k,A,N),{contentHash:j,...H}=P.reward,O={action:"publish_resources",operationId:f.operationId,finalizeDraft:{draft:f.draft,targetKind:"reward",release:I(P.reward)},resources:[...P.assets.map(({contentHash:K,...D})=>({kind:"asset",expectedRevision:0,content:D})),{kind:"reward",expectedRevision:A?.revision??0,content:H}]};E=[];for(let K of O.resources)E.push(await s(y,{...K,action:"publish",operationId:f.operationId}));let q=await js(y,O,E,t());q&&E.push(q);break}case"import_intake":E=await Vo(y,f,t(),i);break;case"cancel_iteration":case"retry_iteration_dispatch":E=await jo(y,f,t());break;case"cancel_iteration_reservation":E=await hr(y,f,t());break;case"reserve_iteration":E=await Bo(y,f,p.actor.id,t());break;case"queue_reward_check":E=[await Ko(y,f,w,t(),p.actor.id)];break;case"cancel_reward_check":E=[await Jo(y,f,t())];break;case"save_draft":E=[await Wo(y,f,t())];break;case"archive_draft":E=[await Yo(y,f.draft,t())];break;case"publish":E=[await s(y,f)];break;case"publish_resources":{E=[];for(let k of f.resources)E.push(await s(y,{...k,action:"publish",operationId:f.operationId}));break}case"submit_example":E=[await i(y,f)];break;case"submit_feedback":E=[await n(y,f,p.actor)];break;case"apply_correction":E=await d(y,f,p.actor.id);break;case"resolve_feedback":E=[await o(y,f,p.actor.id)];break;case"queue_grade":E=[await u(y,f,w,p.actor.id)];break;case"cancel_grade":E=[await l(y,f)];break;case"review":E=[await T(y,f,p.actor.id)];break;case"seal_batch":E=await ir(y,f,p.actor.id,t());break}if(f.action==="publish"||f.action==="publish_resources"){let k=await js(y,f,E,t());k&&E.push(k)}return await y.saveOperation(w,{requestHash:R,resources:E}),{operationId:f.operationId,resources:await Promise.all(E.map(k=>x(y,k.kind,k.id,k.revision)))}})}c(r,"command");async function s(p,m){if(m.content.revision!==m.expectedRevision+1)throw new v("learning_publication_revision_invalid",422);let f;switch(m.kind){case"asset":{f=Ga.parse(F(m.content));let h=await p.get("asset",f.id,1);if(h?.contentHash===f.contentHash)return me("asset",h);break}case"reward":{f=Ka(m.content),await $o(p,f);let h=m.content.implementation,w=[...m.content.assets,..."verifierRef"in h?[h.verifierRef]:[],..."rubricRef"in h?[h.rubricRef]:[],..."inputContract"in h?[h.inputContract]:[]];for(let R of w){let y=await x(p,"asset",R.id,1);if(Q(y,R),R.visibility==="policy")throw new v("reward_asset_visibility_invalid",422,"Reward source and rubrics must be private to the evaluator.")}break}case"binding":{m.content.recipeRef&&await X(p,"binding",m.content.recipeRef);let h=await Promise.all(m.content.sources.map(w=>X(p,"reward",w.reward)));f=Ja(m.content,h);break}case"definition":{await X(p,"binding",m.content.rewardBinding),f=Rt.parse(F(m.content));break}case"source":{await X(p,"definition",m.content.taskDefinition),f=za.parse(F(m.content));break}case"policy":{let h=await X(p,"definition",m.content.taskDefinition);if(!C(h.rewardBinding,m.content.rewardBinding))throw new v("learning_policy_binding_mismatch",422);for(let w of m.content.sources){let R=await X(p,"source",w);if(!C(R.taskDefinition,m.content.taskDefinition))throw new v("learning_policy_source_definition_mismatch",422)}f=fs.parse(F(m.content));break}}return await p.put(m.kind,f,m.expectedRevision,m.kind==="policy"?{parentId:m.content.modelProjectId}:void 0),m.kind==="policy"&&await qo(p,fs.parse(f),t()),me(m.kind,f)}c(s,"publish");async function i(p,m){let f=await x(p,"source",m.example.sourceId),h=mn(f,m.example);await X(p,"definition",h.taskDefinition);let w=De(h.sourceId,h.exampleId,h.attemptId),R=await p.get("evidence",w,1);if(R){let{idempotencyKey:E,...k}=R.submission,{idempotencyKey:A,...N}=h;if(g(k)!==g(N))throw new v("task_evidence_identity_conflict",409);return me("evidence",R)}let y=ms.parse(F(ps.parse({schemaVersion:"openpond.taskEvidence.v1",id:w,revision:1,source:I(f),submission:h,supersedes:null,correctionFeedbackId:null,receivedAt:t()})));await p.put("evidence",y,0,{parentId:f.id});let S;do{let E=await p.list("feedback",{parentId:y.id,status:"pending_example",limit:100,...S?{afterId:S}:{}});for(let k of E.items){let A=zt.parse({...k,revision:k.revision+1,status:"pending_review",evidence:I(y)});await p.put("feedback",A,k.revision,{parentId:y.id,status:A.status})}S=E.nextCursor??void 0}while(S);return me("evidence",y)}c(i,"submit");async function n(p,m,f){let h=await x(p,"source",m.feedback.sourceId);if(!h.enabled)throw new v("learning_source_disabled",409);let w=De(h.id,m.feedback.exampleId,m.feedback.attemptId),R=await p.get("evidence",w);if(m.feedback.value.schemaVersion==="openpond.taskRating.v1"&&(!R||R.contentHash!==m.feedback.expectedEvidenceHash||!R.submission.observedOutput))throw new v("task_rating_evidence_stale",409,"Open the current observed response before submitting a rating.");let y=zt.parse({schemaVersion:"openpond.taskFeedbackRecord.v1",id:`feedback-${g([h.id,m.feedback.idempotencyKey])}`,submission:m.feedback,status:R?"pending_review":"pending_example",evidence:R?I(R):null,createdAt:t(),revision:1,submittedBy:{id:f.id,role:f.role,sourceId:f.sourceId??null}});return await p.put("feedback",y,0,{parentId:w,status:y.status}),me("feedback",y)}c(n,"feedback");async function d(p,m,f){let h=await x(p,"feedback",m.feedbackId);if(["applied","rejected","superseded"].includes(h.status))throw new v("task_feedback_already_resolved",409);let w=await Gt(p,m.evidence);if(De(h.submission.sourceId,h.submission.exampleId,h.submission.attemptId)!==w.id||h.submission.expectedEvidenceHash!==null&&h.submission.expectedEvidenceHash!==w.contentHash)throw new v("task_feedback_evidence_mismatch",409);let y=await X(p,"definition",w.submission.taskDefinition),S={...w.submission},{kind:E,value:k}=h.submission;if(E==="ground_truth_correction"){if(!ht(y.outputSchema,k).valid)throw new v("task_corrected_expected_schema_invalid",422);S.expected=k}else if(E==="input_correction"){if(!ht(y.inputSchema,k).valid)throw new v("task_corrected_input_schema_invalid",422);S.input=k}else if(E==="family_resolution"){if(typeof k.familyKey!="string"||!k.familyKey.trim())throw new v("task_family_resolution_invalid",422);S.familyKey=k.familyKey}else throw new v("task_feedback_requires_target_review",422);let{contentHash:A,...N}=w,P=ms.parse(F(ps.parse({...N,revision:w.revision+1,submission:S,supersedes:I(w),correctionFeedbackId:h.id,receivedAt:t()}))),j=zt.parse({...h,revision:h.revision+1,status:"applied",evidence:I(P),review:{actorId:f,decision:null,note:"Applied as a corrected evidence revision.",resolvedAt:t()}});return await p.put("evidence",P,w.revision,{parentId:S.sourceId}),await p.put("feedback",j,h.revision,{parentId:w.id,status:j.status}),[me("evidence",P),me("feedback",j)]}c(d,"correct");async function o(p,m,f){let h=await x(p,"feedback",m.feedbackId);if(h.revision!==m.expectedRevision)throw new ge("feedback",h.id,m.expectedRevision,h.revision);if(["applied","rejected","superseded"].includes(h.status))throw new v("task_feedback_already_resolved",409);if(m.disposition==="applied"&&!m.decision)throw new v("task_feedback_decision_required");if(m.decision){let R=await X(p,"decision",m.decision),y=await x(p,"decision",R.id);if(!C(I(y),m.decision))throw new v("task_admission_revision_stale",409);let S=await Gt(p,R.evidence);if(De(h.submission.sourceId,h.submission.exampleId,h.submission.attemptId)!==S.id||h.submission.expectedEvidenceHash!==null&&h.submission.expectedEvidenceHash!==S.contentHash)throw new v("task_feedback_evidence_mismatch",409);if(m.disposition==="applied"){if(R.taskAdmissibility==="pending")throw new v("task_feedback_decision_pending");if(h.submission.kind==="target_correction"){if(R.targetApproval!=="approved"||g(R.approvedTarget)!==g(h.submission.value))throw new v("task_feedback_target_not_approved")}else if(h.submission.kind!=="outcome")throw new v("task_feedback_requires_evidence_correction")}}let w=zt.parse({...h,revision:h.revision+1,status:m.disposition,review:{actorId:f,decision:m.decision,note:m.note,resolvedAt:t()}});return await p.put("feedback",w,h.revision,{parentId:De(h.submission.sourceId,h.submission.exampleId,h.submission.attemptId),status:w.status}),me("feedback",w)}c(o,"resolveFeedback");async function u(p,m,f,h){let w=await Gt(p,m.evidence),R=await X(p,"definition",w.submission.taskDefinition);if(!Qa(w,R).taskReady)throw new v("task_evidence_not_ready",422);let y=m.target==="observed"?w.submission.observedOutput:m.proposedTarget;if(y===null)throw new v("task_grade_output_required",422);if(m.target==="observed"&&m.proposedTarget!==null)throw new v("observed_grade_cannot_replace_output",422);let S=Xe.parse({schemaVersion:"openpond.taskGradeRun.v1",id:`grade-${f}`,revision:1,evidence:I(w),binding:R.rewardBinding,target:m.target,output:y,status:"queued",composition:null,leaseOwner:null,leaseExpiresAt:null,attemptCount:0,timeoutMs:m.timeoutMs,maximumSpendUsd:m.maximumSpendUsd,requestedBy:h,failure:null,createdAt:t(),updatedAt:t()});return await p.put("grade",S,0,{parentId:w.id,status:S.status}),me("grade",S)}c(u,"queueGrade");async function l(p,m){let f=await x(p,"grade",m.gradeId);if(f.revision!==m.expectedRevision)throw new ge("grade",f.id,m.expectedRevision,f.revision);if(["completed","failed","cancelled"].includes(f.status))return me("grade",f);let h=Xe.parse({...f,revision:f.revision+1,status:f.status==="queued"?"cancelled":"cancelling",updatedAt:t()});return await p.put("grade",h,f.revision,{parentId:f.evidence.id,status:h.status}),me("grade",h)}c(l,"cancelGrade");async function T(p,m,f){let h=await Gt(p,m.evidence),w=await X(p,"definition",h.submission.taskDefinition),R=Qa(h,w),y=`decision-${h.id}`,S=await p.get("decision",y),E=await zo(p,m.observedGradeId,h,"observed"),k=await zo(p,m.targetGradeId,h,"proposed_target"),A=E?.training.status==="scored"?E.training:E?.evaluation,N=un.parse(F(ln.parse({schemaVersion:"openpond.taskAdmissionDecision.v1",id:y,revision:m.expectedRevision+1,evidence:I(h),supersedes:S?I(S):null,actor:{kind:"human",id:f,policy:null},evidenceValidity:R.evidenceValidity,taskAdmissibility:m.disposition,observedQuality:A?.status==="scored"?A.passed?"passed":"failed":E?"unavailable":"unscored",targetApproval:m.targetApproval,approvedTarget:m.approvedTarget,grade:E,targetGrade:k,note:m.note,decidedAt:t()})));return m.disposition==="approved"&&fn({decision:N,evidence:h,definition:w,purpose:m.targetApproval==="approved"?"supervised_training":"reward_training"}),await p.put("decision",N,m.expectedRevision,{parentId:h.id,status:N.taskAdmissibility}),me("decision",N)}return c(T,"review"),{command:r,async inspectTaskQueue(p,m=null){ma(p);let f=He.parse({action:"inspect_task_queue",scope:p.scope,modelProjectId:m});if(f.action!=="inspect_task_queue")throw new v("learning_request_invalid",400);return a.transaction(p.scope,h=>Cn(h,f.modelProjectId,t()))},async inspectPolicy(p,m){ma(p);let f=wt.parse(m);return a.transaction(p.scope,h=>bn(h,f,p.actor.id,t()))},async inspectEvidence(p,m){ma(p);let f=wt.parse(m);return a.transaction(p.scope,async h=>{let w=await X(h,"evidence",f),R=await X(h,"definition",w.submission.taskDefinition);return{evidence:I(w),definition:I(R),inspection:Qa(w,R)}})},async get(p,m,f,h){return ma(p),a.transaction(p.scope,w=>x(w,m,f,h))},async list(p,m,f={}){if(ma(p),f.reviewState!==void 0&&(m!=="evidence"||!["inbox","reviewed"].includes(f.reviewState)))throw new v("learning_review_filter_invalid",400);let h=Math.max(1,Math.min(100,Math.trunc(f.limit??50)));return a.transaction(p.scope,w=>w.list(m,{...f,limit:h}))}}}c(af,"createLearningService");async function zo(a,e,t,r){if(e===null)return null;let s=await x(a,"grade",e);if(s.status!=="completed"||!s.composition||s.target!==r||!C(s.evidence,I(t)))throw new v("task_grade_not_applicable",422);let i=await X(a,"definition",t.submission.taskDefinition);return Za(s.composition,t,i,s.output),s.composition}c(zo,"gradeResult");function me(a,e){return{kind:a,id:e.id,revision:e.revision}}c(me,"pointer");function ma(a){if(!a.scope.trim()||!a.actor.id.trim()||a.actor.role==="source")throw new v("learning_read_not_authorized",403)}c(ma,"authorizeRead");function hl(a,e){if(!a.scope.trim()||!a.actor.id.trim())throw new v("learning_scope_required",400);let t=e.action==="publish"?[e]:e.action==="publish_resources"?e.resources:[];if(a.actor.role!=="reviewer"&&t.some(r=>r.kind==="policy"&&r.content.enabled&&r.content.automation.train&&r.content.trigger.kind!=="manual"))throw new v("learning_review_not_authorized",403);if(a.actor.role==="source"){let r=e.action==="submit_example"?e.example.sourceId:e.action==="submit_feedback"?e.feedback.sourceId:null;if(!r||r!==a.actor.sourceId)throw new v("learning_source_not_authorized",403)}if(["review","apply_correction","resolve_feedback","seal_batch","reserve_iteration","cancel_iteration_reservation","cancel_iteration","retry_iteration_dispatch"].includes(e.action)&&a.actor.role!=="reviewer")throw new v("learning_review_not_authorized",403)}c(hl,"authorize");function uf(a,e,t){let r=t.now??(()=>new Date().toISOString()),s=new Map,i=c((o,u)=>JSON.stringify([o,u]),"key");async function n(o,u){let l=await a.transaction(o,async m=>{let f=await x(m,"grade",u);if(["completed","failed","cancelled"].includes(f.status))return{acquired:!1,run:f};if(f.leaseExpiresAt!==null&&Date.parse(f.leaseExpiresAt)>Date.parse(r()))return{acquired:!1,run:f};let h=Xe.parse({...f,revision:f.revision+1,status:f.status==="cancelling"?"cancelling":"running",leaseOwner:t.workerId,leaseExpiresAt:new Date(Date.parse(r())+f.timeoutMs+3e4).toISOString(),attemptCount:f.attemptCount+1,updatedAt:r()});return await m.put("grade",h,f.revision,{parentId:f.evidence.id,status:h.status}),{acquired:!0,run:h}});if(!l.acquired)return l.run;if(l.run.status==="cancelling"){let m=await e.cancel({scope:o,run:l.run});return d(o,l.run,m?{status:"cancelled",composition:null,failure:null}:{status:"cancelling",composition:null,failure:null})}let T=new AbortController;s.set(i(o,u),T);let p=setTimeout(()=>T.abort(new Error("task_grade_timeout")),l.run.timeoutMs);try{let m=await a.transaction(o,async h=>{let w=await X(h,"evidence",l.run.evidence),R=await X(h,"definition",w.submission.taskDefinition),y=await X(h,"binding",l.run.binding),S=await Promise.all(y.sources.map(E=>X(h,"reward",E.reward)));return{evidence:w,definition:R,binding:y,rewards:S}});T.signal.throwIfAborted();let f=await e.execute({scope:o,run:l.run,...m,signal:T.signal});return T.signal.throwIfAborted(),Za(f,m.evidence,m.definition,l.run.output),await d(o,l.run,{status:"completed",composition:f,failure:null})}catch(m){if(T.signal.aborted){if(!await e.cancel({scope:o,run:l.run}))return d(o,l.run,{status:"cancelling",composition:null,failure:"Execution cancellation is awaiting owner confirmation."});if(T.signal.reason instanceof Error&&T.signal.reason.message==="task_grade_cancel_requested")return d(o,l.run,{status:"cancelled",composition:null,failure:null})}return await d(o,l.run,{status:"failed",composition:null,failure:m instanceof Error?m.message:"Task grading failed."})}finally{clearTimeout(p),s.delete(i(o,u))}}c(n,"run");async function d(o,u,l){return a.transaction(o,async T=>{let p=await x(T,"grade",u.id);if(p.leaseOwner!==t.workerId||p.attemptCount!==u.attemptCount||["completed","failed","cancelled"].includes(p.status))return p;let m=l.status,f=Xe.parse({...p,...l,status:m,composition:m==="completed"?l.composition:null,revision:p.revision+1,leaseOwner:null,leaseExpiresAt:m==="cancelling"?new Date(Date.parse(r())+5e3).toISOString():null,updatedAt:r()});return await T.put("grade",f,p.revision,{parentId:p.evidence.id,status:f.status}),f})}return c(d,"finish"),{run:n,requestCancellation(o,u){s.get(i(o,u))?.abort(new Error("task_grade_cancel_requested"))},async drain(o,u=20){let l=await a.transaction(o,async p=>{let m=[];for(let f of["queued","running","cancelling"])m.push(...(await p.list("grade",{status:f,limit:Math.max(1,Math.min(100,u))})).items);return m}),T=[];for(let p of l)T.push(await n(o,p.id));return T}}}c(uf,"createTaskGradeWorker");function Go(a){let e=a.now??(()=>new Date().toISOString());return{transaction(t,r){return a.repository.transaction(a.scope,async s=>{let i=await x(s,"reward_check",a.run.id);if(i.snapshotHash!==a.run.snapshotHash)throw new Error("model_judge_budget_snapshot_changed");if(t==="dispatch"&&(i.status!=="running"||!i.leaseOwner||i.leaseOwner!==a.run.leaseOwner||i.attemptCount!==a.run.attemptCount||!i.leaseExpiresAt||Date.parse(i.leaseExpiresAt)<=Date.parse(e())))throw new Error("model_judge_budget_owner_inactive");let n=i.judgeCalls??[],d=r({maximumSpendUsd:i.maximumSpendUsd,calls:n});if(g(d.calls)!==g(n)){let o=Le.parse({...i,revision:i.revision+1,judgeCalls:d.calls,updatedAt:e()});await s.put("reward_check",o,i.revision,{parentId:i.reward.id,status:i.status})}return d.result})}}}c(Go,"createRewardCheckJudgeBudgetStore");function yf(a){let e=a.now??(()=>new Date().toISOString()),t=c(r=>g([r.evidence,r.binding,r.target,r.output]),"identity");return{transaction(r,s){return a.repository.transaction(a.scope,async i=>{let n=await x(i,"grade",a.run.id);if(t(n)!==t(a.run))throw new Error("model_judge_budget_snapshot_changed");if(r==="dispatch"&&(n.status!=="running"||!n.leaseOwner||n.leaseOwner!==a.run.leaseOwner||n.attemptCount!==a.run.attemptCount||!n.leaseExpiresAt||Date.parse(n.leaseExpiresAt)<=Date.parse(e())))throw new Error("model_judge_budget_owner_inactive");let d=n.judgeCalls??[],o=s({maximumSpendUsd:n.maximumSpendUsd,calls:d});if(g(o.calls)!==g(d)){let u=Xe.parse({...n,revision:n.revision+1,judgeCalls:o.calls,updatedAt:e()});await i.put("grade",u,n.revision,{parentId:n.evidence.id,status:n.status})}return o.result})}}}c(yf,"createTaskGradeJudgeBudgetStore");function Qo(a){return{runtime:a.runtime,async execute(e){return Rn({reward:e.reward,fixture:e.fixture,signal:e.signal,modelJudge:e.reward.implementation.kind==="model_judge"?await a.createModelJudge?.(e):void 0,customVerifier:c(async({grader:t,task:r,evidence:s})=>{let i=e.assets.find(o=>o.id===t.verifierRef.id);if(!i)throw new Error("reward_check_source_missing");let n=Q(i,t.verifierRef),d=await a.executeJavaScript({source:n,exportName:t.exportName,runtime:t.runtime,signal:e.signal,timeoutMs:Math.min(t.timeoutMs,e.run.timeoutMs),value:{task:r,attempt:s,input:r.input,output:s.output,expectedOutput:r.expectedOutput,evaluatorContext:e.fixture.evaluatorContext,infrastructureError:s.infrastructureError??null}});return{score:d.score,passed:d.passed,rewardEligible:t.rewardEligible,failureClass:null,feedback:[d.feedback],visibleEvidenceRefs:[],privilegedEvidenceRefs:d.evidenceRefs}},"customVerifier")})},async cancel(e){return a.createModelJudge?a.cancelModelJudge?.(e)??!1:!0}}}c(Qo,"createIsolatedRewardFixtureExecutor");function Xf(a){return Qo({runtime:a.runtime,executeJavaScript:a.executeJavaScript,async cancelModelJudge(e){let t=await a.repository.transaction(e.scope,r=>x(r,"reward_check",e.run.id));return t.judgeCalls?.some(r=>r.status==="reserved")?!1:a.provider.cancel({...e,run:t})},async createModelJudge(e){let t=Go({repository:a.repository,scope:e.scope,run:e.run});return nn({async readRubric(r){let s=e.assets.find(i=>i.id===r.id);if(!s)throw new Error("reward_check_rubric_missing");return Q(s,r)},async executeBudgeted(r,s){let i=await a.provider.prepare(r,{scope:e.scope,run:e.run});return on({store:t,maximumCharge:c(()=>i.maximumChargeUsd,"maximumCharge"),dispatch:c((d,o)=>i.dispatch(o),"dispatch")})(`fixture-${g([e.fixture,e.reward.contentHash])}`,r,s)}})}})}c(Xf,"createBudgetedRewardFixtureExecutor");function Wf(a,e,t){let r=wn.parse(e.runtime),s=t.now??(()=>new Date().toISOString()),i=new Map,n=c((T,p)=>JSON.stringify([T,p]),"key"),d=c(T=>["completed","failed","cancelled"].includes(T.status),"terminal");async function o(T,p){let m=await a.transaction(T,async w=>{let R=await x(w,"reward_check",p);if(d(R)||R.leaseExpiresAt&&Date.parse(R.leaseExpiresAt)>Date.parse(s()))return{acquired:!1,run:R};let y=Le.parse({...R,revision:R.revision+1,status:R.status==="cancelling"?"cancelling":"running",runtime:R.status==="cancelling"?R.runtime:r,leaseOwner:t.workerId,leaseExpiresAt:new Date(Date.parse(s())+R.timeoutMs+3e4).toISOString(),attemptCount:R.attemptCount+1,results:R.results,matchesExpectations:null,failure:null,updatedAt:s()});return await w.put("reward_check",y,R.revision,{parentId:y.reward.id,status:y.status}),{acquired:!0,run:y}});if(!m.acquired)return m.run;if(m.run.status==="cancelling"){let w=await e.cancel({scope:T,run:m.run});return l(T,m.run,w?"cancelled":"cancelling",null)}let f=new AbortController;i.set(n(T,p),f);let h=setTimeout(()=>f.abort(new Error("reward_check_timeout")),m.run.timeoutMs);try{let w=await a.transaction(T,async R=>{let y=await X(R,"draft",m.run.draft);if(y.targetKind!=="reward")throw new Error("reward_check_draft_kind_invalid");let S=y.baseRelease?await X(R,"reward",y.baseRelease):null,E=kt(y,S);if(E.snapshotHash!==m.run.snapshotHash||!C(I(E.reward),m.run.reward)||g(E.fixtureRefs)!==g(m.run.fixtureRefs))throw new Error("reward_check_snapshot_mismatch");return E});for(let R of w.fixtures){f.signal.throwIfAborted();let y=m.run.results.find(k=>k.fixture.id===R.id);if(y){if(y.fixture.contentHash!==g(R)||!C(y.result.reward,m.run.reward)||y.result.graderId!==w.reward.id||y.result.role!=="evaluation")throw new Error("reward_check_retained_fixture_mismatch");continue}let S=rn.parse(await e.execute({...w,scope:T,run:m.run,fixture:R,signal:f.signal}));if(S.graderId!==w.reward.id||!C(S.reward,m.run.reward)||S.role!=="evaluation")throw new Error("reward_check_result_identity_mismatch");let E=await a.transaction(T,async k=>{let A=await x(k,"reward_check",p);if(!u(A,m.run)||d(A))return A;let N=Le.parse({...A,revision:A.revision+1,results:[...A.results,sr(R,S)],updatedAt:s()});return await k.put("reward_check",N,A.revision,{parentId:A.reward.id,status:A.status}),N});if(!u(E,m.run)||d(E))return E;E.status==="cancelling"&&f.abort(new Error("reward_check_cancel_requested"))}return f.signal.throwIfAborted(),await l(T,m.run,"completed",null)}catch(w){if(f.signal.aborted){if(!await e.cancel({scope:T,run:m.run}))return l(T,m.run,"cancelling","Execution cleanup is awaiting owner confirmation.");if(f.signal.reason instanceof Error&&f.signal.reason.message==="reward_check_cancel_requested")return l(T,m.run,"cancelled",null)}return await l(T,m.run,"failed",w instanceof Error?w.message:"Reward checks failed.")}finally{clearTimeout(h),i.delete(n(T,p))}}c(o,"run");function u(T,p){return T.leaseOwner===t.workerId&&T.attemptCount===p.attemptCount}c(u,"owns");async function l(T,p,m,f){return a.transaction(T,async h=>{let w=await x(h,"reward_check",p.id);if(!u(w,p)||d(w))return w;if(m==="completed"&&w.results.length!==w.fixtureRefs.length)throw new Error("reward_check_results_incomplete");let R=Le.parse({...w,revision:w.revision+1,status:m,failure:f,matchesExpectations:m==="completed"?w.results.every(y=>y.matchesExpectation):null,leaseOwner:null,leaseExpiresAt:m==="cancelling"?new Date(Date.parse(s())+5e3).toISOString():null,updatedAt:s()});return await h.put("reward_check",R,w.revision,{parentId:w.reward.id,status:R.status}),R})}return c(l,"finish"),{run:o,requestCancellation(T,p){i.get(n(T,p))?.abort(new Error("reward_check_cancel_requested"))},async drain(T,p=20){let m=await a.transaction(T,async h=>{let w=[];for(let R of["queued","running","cancelling"])w.push(...(await h.list("reward_check",{status:R,limit:Math.max(1,Math.min(100,p))})).items);return w}),f=[];for(let h of m)f.push(await o(T,h.id));return f}}}c(Wf,"createRewardCheckWorker");var gl=Ne.parse({capabilities:[{id:"filesystem.workspace",portability:"host_adapter",required:!0,scopes:["inputs:read","work:read-write","outputs:write"]},{id:"network.web-read",portability:"host_adapter",required:!0,scopes:["search","fetch"]},{id:"artifact.pdf",portability:"host_adapter",required:!0,scopes:["create","render","inspect"]},{id:"artifact.spreadsheet",portability:"host_adapter",required:!0,scopes:["create","calculate","inspect"]}],contentHash:"20e247cec268ecb6380bc7af204abc9056f7eaa90e1e85aa5e11544f2506888d",environment:{defaultTimeoutMs:9e5,deterministicSeeds:!1,entrypoint:"openpond-work-v1",kind:"work",lifecycle:["create","reset","step","collect","destroy"],networkPolicy:"declared_read_only",protocolVersion:"openpond.environment.v1",stateful:!0},graders:[{hardGate:!0,id:"task-output-contract",kind:"custom_verifier",networkPolicy:"none",privileged:!0,rewardEligible:!0,timeoutMs:3e4,verifierRef:{contentHash:"31cda791adf4e55131ee49651431432b429f1404dbc4fa610a3fe1466574f270",id:"verifiers-taskset-output-verifier-mjs",mediaType:"text/javascript",path:"verifiers/taskset-output-verifier.mjs",sizeBytes:2994,visibility:"verifier"},version:"1",weight:1}],id:"harness-refiner-20260818-v2",metadata:{adaptationSplit:"validation",benchmark:"harness-refiner",frozenEvaluationSplit:"frozen_eval",modelJudgeRole:"supplementary_uncalibrated_not_executed",orderSeed:"harness-refiner-20260818-order-v1",primaryMetric:"paired_verified_reward",protocolVersion:"3",qualityPolicy:"complete_frozen_cohort",refinementMode:"sequential_product_lifecycle",resultSchemaVersion:"openpond.harnessRefinerPublicResult.v2",secondaryMetrics:["paired_foreground_provider_tokens"],supplementaryModelJudge:{calibrationStatus:"pending",executable:!1,id:"task-quality-judge",rewardEligible:!1,rubricRef:{contentHash:"455b3697c0617333a34b6521f167760fb8ae7e286059fa2ec327a5c97e66a2b3",id:"rubrics-task-quality-md",mediaType:"text/markdown",path:"rubrics/task-quality.md",sizeBytes:1496,visibility:"verifier"},version:"1"},toolDeclarationSource:"openpond-production-model-tool-definitions",trainingSideEffect:!1},policy:{connectedAppScopes:[],hiddenGraderRefs:["rubrics-task-quality-md","verifiers-taskset-output-verifier-mjs"],policyVisibleFields:["input"],privilegedFields:["expectedOutput"]},revision:2,schemaVersion:"openpond.tasksetRelease.v2",tasks:[{artifactRefs:[{contentHash:"8879f8e31a916f165724a3c3e3e57db5baa858cd170ac6799064aa49bc623aa4",id:"fixtures-adaptation-board-launch-md",mediaType:"text/markdown",path:"fixtures/adaptation-board-launch.md",sizeBytes:642,visibility:"policy"}],clusterKey:"northstar-launch-packet",expectedOutput:{deliverable:"pdf",deterministicContract:{},mustInclude:["three decision options","owners and dates","confirmed facts","open legal and finance gates"],mustNot:["present an open gate as approved","invent a recommended decision"],validation:["structural","visual"]},id:"adaptation-board-launch-brief",input:{attachments:["adaptation-board-launch.md"],prompt:"Please turn the attached Northstar launch packet into a polished two-page PDF decision brief for the executive meeting. Make the three options, owners, dates, confirmed facts, open gates, and risks easy to scan. The source records no final choice, so do not select, recommend, or imply a preferred option. Visually check the finished PDF before you send it back."},policyVisibleContext:{attachmentCount:1},privilegedContextRef:"expected-adaptation-board-launch-brief",requiredOutputs:[{maxBytes:1e7,mediaType:"application/pdf",metadata:{validationKinds:["structural","visual"]},path:"adaptation-board-launch-brief.pdf",schemaRef:null}],split:"validation",tags:["artifact-verification","decision-brief","adaptation"]},{artifactRefs:[{contentHash:"a3d44bb123a242d78d0f60d4d8ad352e499bef677eaf816a19d07359a172743f",id:"fixtures-adaptation-latency-incident-md",mediaType:"text/markdown",path:"fixtures/adaptation-latency-incident.md",sizeBytes:733,visibility:"policy"}],clusterKey:"checkout-latency-incident-packet",expectedOutput:{deliverable:"pdf",deterministicContract:{},mustInclude:["incident window","confirmed impact","recovery","hypotheses labeled as hypotheses","unknowns","follow-up owners"],mustNot:["state either hypothesis as root cause","claim unresolved carts were recovered"],validation:["structural","visual"]},id:"adaptation-latency-incident-review",input:{attachments:["adaptation-latency-incident.md"],prompt:"Create a concise PDF incident review from the attached checkout latency packet. Clearly separate confirmed observations, recovery actions, hypotheses, unknowns, customer impact, and follow-up owners. Check that the rendered PDF is readable and complete."},policyVisibleContext:{attachmentCount:1},privilegedContextRef:"expected-adaptation-latency-incident-review",requiredOutputs:[{maxBytes:1e7,mediaType:"application/pdf",metadata:{validationKinds:["structural","visual"]},path:"adaptation-latency-incident-review.pdf",schemaRef:null}],split:"validation",tags:["artifact-verification","incident-review","adaptation"]},{artifactRefs:[{contentHash:"63bca96753ae1491a45ba13e1a06cfb48973cfbe4f392e8f181e7b9648fd9db4",id:"fixtures-adaptation-program-budget-md",mediaType:"text/markdown",path:"fixtures/adaptation-program-budget.md",sizeBytes:649,visibility:"policy"}],clusterKey:"harbor-program-budget-packet",expectedOutput:{deliverable:"spreadsheet",deterministicContract:{},mustInclude:["summary sheet","detail sheet","formula-driven full-year forecast","formula-driven variance","owner column","overrun flag"],mustNot:["replace formulas with typed totals","reverse the variance sign"],validation:["structural","test"]},id:"adaptation-program-budget-workbook",input:{attachments:["adaptation-program-budget.md"],prompt:"Build an Excel workbook from the attached Harbor youth program budget. Include a one-page summary and a detail sheet with formulas for full-year forecast and variance, clearly flag forecast overruns, preserve the listed owners, and verify the calculations before returning it."},policyVisibleContext:{attachmentCount:1},privilegedContextRef:"expected-adaptation-program-budget-workbook",requiredOutputs:[{maxBytes:1e7,mediaType:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",metadata:{validationKinds:["structural","test"]},path:"adaptation-program-budget-workbook.xlsx",schemaRef:null}],split:"validation",tags:["artifact-verification","spreadsheet","adaptation"]},{artifactRefs:[],clusterKey:"northwind-invoice-correction-message",expectedOutput:{deliverable:"message",deterministicContract:{forbiddenText:["intentional error","deliberate error"],maxWords:130,requiredAny:[["no payment","not due"]],requiredText:["inv-1842","120","102","august 14","accounts@example.com"],requireMessageBody:!0},mustInclude:["complete send-ready message copy","INV-1842","120 seats instead of 102","August 14","no payment due until corrected","accounts@example.com"],mustNot:["suggest the error was intentional","exceed 130 words","return only a checklist or file path instead of the message"],validation:[]},id:"adaptation-invoice-correction-email",input:{attachments:[],prompt:"Draft a courteous email to Northwind Labs explaining that invoice INV-1842 incorrectly lists 120 seats instead of 102. A corrected invoice will arrive by August 14, no payment is due until it arrives, and billing questions should go to accounts@example.com. Keep it under 130 words and do not suggest the error was intentional."},policyVisibleContext:{attachmentCount:0},privilegedContextRef:"expected-adaptation-invoice-correction-email",requiredOutputs:[],split:"validation",tags:["constraint-following","direct-deliverable","communication","adaptation"]},{artifactRefs:[],clusterKey:"nextjs-security-current-sources",expectedOutput:{deliverable:"report",deterministicContract:{minLinks:1,requiredAny:[["affected"],["fixed","patched"],["checked","as of"],["version and configuration","version or configuration","exact version"]]},mustInclude:["official advisory links","affected and fixed versions","date checked","limits on exposure inference"],mustNot:["declare exposure without project version and configuration","use an uncited vulnerability list"],validation:[]},id:"adaptation-nextjs-security-audit",input:{attachments:[],prompt:"Audit the currently supported Next.js release lines for security advisories published in the last twelve months. Use primary sources, explain which versions are affected and fixed, avoid inferring that a project is vulnerable without its exact version and configuration, and give me a concise linked report with the date checked."},policyVisibleContext:{attachmentCount:0},privilegedContextRef:"expected-adaptation-nextjs-security-audit",requiredOutputs:[],split:"validation",tags:["research-efficiency","primary-sources","security","adaptation"]},{artifactRefs:[],clusterKey:"juniper-workshop-reschedule-message",expectedOutput:{deliverable:"message",deterministicContract:{forbiddenText:["venue caused","venue's fault"],maxWords:120,requiredAny:[["facilitator","presenter"],["registration","registrations"]],requiredText:["september 10","2:00","et","recording","events@example.com"],requireMessageBody:!0},mustInclude:["complete send-ready message copy","September 10","2:00 p.m. ET","facilitator unavailable","registrations carry over","recording","events@example.com"],mustNot:["blame the venue","exceed 120 words","return only a checklist or file path instead of the message"],validation:[]},id:"adaptation-workshop-reschedule-email",input:{attachments:[],prompt:"Draft a warm email to Juniper workshop registrants explaining that the September 3 session is moving to September 10 at 2:00 p.m. ET because the facilitator is unavailable. Existing registrations carry over, a recording will be shared, and questions should go to events@example.com. Keep it under 120 words and do not imply the venue caused the change."},policyVisibleContext:{attachmentCount:0},privilegedContextRef:"expected-adaptation-workshop-reschedule-email",requiredOutputs:[],split:"validation",tags:["constraint-following","direct-deliverable","communication","adaptation"]},{artifactRefs:[],clusterKey:"boston-dc-accessibility-sources",expectedOutput:{deliverable:"report",deterministicContract:{minLinks:1,requiredAny:[["wheelchair","accessible","accessibility"],["outbound"],["return"],["disruption","service alert"],["checked","as of"],["confirm","confirmation"]],requiredText:["september 17","september 19"]},mustInclude:["official operator sources","outbound and return plan","accessibility details","disruption check","time checked","items needing confirmation"],mustNot:["guarantee availability not confirmed by booking","hide access limitations"],validation:[]},id:"adaptation-accessible-boston-dc-plan",input:{attachments:[],prompt:"Plan a wheelchair-accessible train trip from Boston to Washington, DC for September 17, 2026, returning September 19. Verify accessibility and disruption information from official sources, distinguish facts from anything that still needs confirmation, include direct links and the time checked, and keep the answer practical and concise."},policyVisibleContext:{attachmentCount:0},privilegedContextRef:"expected-adaptation-accessible-boston-dc-plan",requiredOutputs:[],split:"validation",tags:["research-efficiency","current-information","travel","adaptation"]},{artifactRefs:[],clusterKey:"chatgpt-x-reddit-public-sample",expectedOutput:{deliverable:"report",deterministicContract:{minLinks:1,requiredAny:[["positive"],["negative"],["anecdote","anecdotal"],["pattern","recurring"],["sampling","sample"],["limitation","access"]]},mustInclude:["links to public examples","dates","positive experiences","negative experiences","pattern versus anecdote","sampling limitations"],mustNot:["post or interact","represent a convenience sample as representative sentiment"],validation:[]},id:"adaptation-chatgpt-public-experiences",input:{attachments:[],prompt:"Research what people have publicly said about using ChatGPT on X and Reddit during the last thirty days. Give me a concise, linked summary of recurring positive and negative experiences, separate patterns from anecdotes, include dates, and explain any platform-access or sampling limitations. Do not post or interact with anyone."},policyVisibleContext:{attachmentCount:0},privilegedContextRef:"expected-adaptation-chatgpt-public-experiences",requiredOutputs:[],split:"validation",tags:["research-efficiency","current-information","social-research","adaptation"]},{artifactRefs:[],clusterKey:"acme-launch-delay-message",expectedOutput:{deliverable:"message",deterministicContract:{forbiddenText:["testing failed","test failed","compensation"],maxWords:140,requiredAny:[["accessibility testing","accessibility test"],["pilot access"]],requiredText:["august 27","august 22","pilot-support@example.com"],requireMessageBody:!0},mustInclude:["complete send-ready message copy","August 27","accessibility testing incomplete","August 22 expectation","pilot access remains","support email"],mustNot:["say testing failed","exceed 140 words","invent compensation","return only a checklist or file path instead of the message"],validation:[]},id:"adaptation-launch-delay-email",input:{attachments:[],prompt:"Draft a calm email to the Acme pilot customers explaining that the August 20 launch is moving to August 27 because final accessibility testing is not complete. Testing is expected to finish August 22, existing pilot access remains available, and questions should go to pilot-support@example.com. Keep it under 140 words and do not imply the test has failed."},policyVisibleContext:{attachmentCount:0},privilegedContextRef:"expected-adaptation-launch-delay-email",requiredOutputs:[],split:"validation",tags:["constraint-following","direct-deliverable","communication","adaptation"]},{artifactRefs:[],clusterKey:"cirrus-service-window-message",expectedOutput:{deliverable:"message",deterministicContract:{forbiddenText:["zero interruption","no interruption"],maxWords:125,requiredAny:[["read-only","read only"],["alerts"],["no data loss"]],requiredText:["august 18","1:00","2:00","utc","status.example.com"],requireMessageBody:!0},mustInclude:["complete send-ready message copy","August 18","1:00 to 2:00 UTC","dashboard read-only","alerts continue","no data loss expected","status.example.com"],mustNot:["promise zero interruption","exceed 125 words","return only a checklist or file path instead of the message"],validation:[]},id:"adaptation-service-window-email",input:{attachments:[],prompt:"Draft a calm email to Cirrus customers about planned maintenance on August 18 from 1:00 to 2:00 UTC. The dashboard will be read-only, alerts will continue, no data loss is expected, and updates will appear at status.example.com. Keep it under 125 words and do not promise that there will be zero interruption."},policyVisibleContext:{attachmentCount:0},privilegedContextRef:"expected-adaptation-service-window-email",requiredOutputs:[],split:"validation",tags:["constraint-following","direct-deliverable","communication","adaptation"]},{artifactRefs:[{contentHash:"cb3aec594b140129ebd872c427053ba63a303cc36d160448afc9ed1a0289d3ca",id:"fixtures-frozen-clinic-relocation-md",mediaType:"text/markdown",path:"fixtures/frozen-clinic-relocation.md",sizeBytes:652,visibility:"policy"}],clusterKey:"riverside-clinic-relocation-packet",expectedOutput:{deliverable:"pdf",deterministicContract:{},mustInclude:["three opening options","owners and dates","confirmed facts","permit and parking gates","delivery risk"],mustNot:["present either approval as complete","invent a chosen opening option"],validation:["structural","visual"]},id:"frozen-clinic-relocation-brief",input:{attachments:["frozen-clinic-relocation.md"],prompt:"Please turn the attached Riverside clinic relocation packet into a polished two-page PDF decision brief. Make the opening options, owners, dates, confirmed facts, unresolved approvals, and delivery risk easy to scan, and visually check the finished PDF before returning it."},policyVisibleContext:{attachmentCount:1},privilegedContextRef:"expected-frozen-clinic-relocation-brief",requiredOutputs:[{maxBytes:1e7,mediaType:"application/pdf",metadata:{validationKinds:["structural","visual"]},path:"frozen-clinic-relocation-brief.pdf",schemaRef:null}],split:"frozen_eval",tags:["artifact-verification","decision-brief","frozen-eval"]},{artifactRefs:[{contentHash:"80aad04ac67682165f098884fd1a86e9fb3ef15d2da3124401308dd23884b612",id:"fixtures-frozen-payment-incident-md",mediaType:"text/markdown",path:"fixtures/frozen-payment-incident.md",sizeBytes:672,visibility:"policy"}],clusterKey:"subscription-renewal-incident-packet",expectedOutput:{deliverable:"pdf",deterministicContract:{},mustInclude:["incident window","attempt and timeout counts","recovery","hypothesis label","33 unresolved accounts","follow-up owners"],mustNot:["state the certificate hypothesis as confirmed","claim all accounts resolved"],validation:["structural","visual"]},id:"frozen-payment-incident-review",input:{attachments:["frozen-payment-incident.md"],prompt:"Create a concise PDF incident review from the attached subscription renewal incident packet. Separate confirmed impact and recovery from the root-cause hypothesis and unresolved customer accounts, preserve the owners, and check the rendered PDF for readability and completeness."},policyVisibleContext:{attachmentCount:1},privilegedContextRef:"expected-frozen-payment-incident-review",requiredOutputs:[{maxBytes:1e7,mediaType:"application/pdf",metadata:{validationKinds:["structural","visual"]},path:"frozen-payment-incident-review.pdf",schemaRef:null}],split:"frozen_eval",tags:["artifact-verification","incident-review","frozen-eval"]},{artifactRefs:[{contentHash:"c58b740d57b031cfe22d475d30b39a1a49a43820f1840a1d8054731cef58c8e8",id:"fixtures-frozen-grant-budget-md",mediaType:"text/markdown",path:"fixtures/frozen-grant-budget.md",sizeBytes:661,visibility:"policy"}],clusterKey:"greenway-grant-budget-packet",expectedOutput:{deliverable:"spreadsheet",deterministicContract:{},mustInclude:["summary sheet","detail sheet","formula-driven full-year forecast","formula-driven variance","owner column","overrun flag"],mustNot:["replace formulas with typed totals","reverse the variance sign"],validation:["structural","test"]},id:"frozen-grant-budget-workbook",input:{attachments:["frozen-grant-budget.md"],prompt:"Build an Excel workbook from the attached Greenway community grant budget. Include a one-page summary and detail sheet with formulas for full-year forecast and variance, flag forecast overruns, preserve owners, and verify all calculations before returning it."},policyVisibleContext:{attachmentCount:1},privilegedContextRef:"expected-frozen-grant-budget-workbook",requiredOutputs:[{maxBytes:1e7,mediaType:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",metadata:{validationKinds:["structural","test"]},path:"frozen-grant-budget-workbook.xlsx",schemaRef:null}],split:"frozen_eval",tags:["artifact-verification","spreadsheet","frozen-eval"]},{artifactRefs:[],clusterKey:"beacon-shipping-delay-message",expectedOutput:{deliverable:"message",deterministicContract:{forbiddenText:["equipment is lost","shipment is lost"],maxWords:90,requiredAny:[["transfer window"],["installation","crew"]],requiredText:["august 21","august 22","morgan","logistics"],requireMessageBody:!0},mustInclude:["complete ready-to-post message copy","August 21","carrier missed transfer window","August 22 installation","Morgan","logistics channel"],mustNot:["say the equipment is lost","exceed 90 words","return only a checklist or file path instead of the message"],validation:[]},id:"frozen-shipping-delay-chat-message",input:{attachments:[],prompt:"Write a concise team chat message explaining that the Beacon equipment shipment is now expected August 21 instead of August 19 because the carrier missed its transfer window. The installation crew remains booked for August 22, Morgan owns the carrier follow-up, and the team should flag conflicts in the logistics channel. Keep it under 90 words and do not say the equipment is lost."},policyVisibleContext:{attachmentCount:0},privilegedContextRef:"expected-frozen-shipping-delay-chat-message",requiredOutputs:[],split:"frozen_eval",tags:["constraint-following","direct-deliverable","communication","frozen-eval"]},{artifactRefs:[],clusterKey:"python-requests-security-current-sources",expectedOutput:{deliverable:"report",deterministicContract:{minLinks:1,requiredAny:[["affected"],["fixed","patched"],["checked","as of"],["dependency graph","exact dependency","usage"]]},mustInclude:["primary advisory links","affected and fixed versions","date checked","dependency and usage caveat"],mustNot:["declare deployment exposure without evidence","use an uncited vulnerability list"],validation:[]},id:"frozen-python-requests-security-audit",input:{attachments:[],prompt:"Audit the supported Python Requests release lines for security advisories published in the last eighteen months. Use primary sources, identify affected and fixed versions, avoid claiming a specific deployment is exposed without its exact dependency graph and usage, and provide a concise linked report with the date checked."},policyVisibleContext:{attachmentCount:0},privilegedContextRef:"expected-frozen-python-requests-security-audit",requiredOutputs:[],split:"frozen_eval",tags:["research-efficiency","primary-sources","security","frozen-eval"]},{artifactRefs:[],clusterKey:"cobalt-refund-support-message",expectedOutput:{deliverable:"message",deterministicContract:{forbiddenText:["refund is approved","refund has been approved"],maxWords:110,requiredAny:[["original payment method"],["duplicate","charge"]],requiredText:["$48","august 16","five business days","cb-7714"],requireMessageBody:!0},mustInclude:["complete send-ready reply copy","$48 duplicate charge","August 16","original payment method","five business days","CB-7714"],mustNot:["state the refund is already approved","exceed 110 words","return only a checklist or file path instead of the message"],validation:[]},id:"frozen-refund-support-reply",input:{attachments:[],prompt:"Write a helpful support reply to a Cobalt customer whose duplicate $48 charge is being reviewed. The review should finish by August 16, any confirmed duplicate will be refunded to the original payment method within five business days, and the case number is CB-7714. Keep it under 110 words and do not state that the refund has already been approved."},policyVisibleContext:{attachmentCount:0},privilegedContextRef:"expected-frozen-refund-support-reply",requiredOutputs:[],split:"frozen_eval",tags:["constraint-following","direct-deliverable","communication","frozen-eval"]},{artifactRefs:[],clusterKey:"chicago-stl-accessibility-sources",expectedOutput:{deliverable:"report",deterministicContract:{minLinks:1,requiredAny:[["wheelchair","accessible","accessibility"],["outbound"],["return"],["disruption","service alert"],["checked","as of"],["confirm","confirmation"]],requiredText:["october 8","october 10"]},mustInclude:["official operator sources","outbound and return plan","accessibility details","disruption check","time checked","items needing confirmation"],mustNot:["guarantee unconfirmed availability","hide access limitations"],validation:[]},id:"frozen-accessible-chicago-stl-plan",input:{attachments:[],prompt:"Plan a wheelchair-accessible train trip from Chicago to St. Louis for October 8, 2026, returning October 10. Verify accessibility and disruption information from official sources, distinguish confirmed facts from anything requiring booking confirmation, include direct links and the time checked, and keep it practical."},policyVisibleContext:{attachmentCount:0},privilegedContextRef:"expected-frozen-accessible-chicago-stl-plan",requiredOutputs:[],split:"frozen_eval",tags:["research-efficiency","current-information","travel","frozen-eval"]},{artifactRefs:[],clusterKey:"new-jersey-youth-grant-sources",expectedOutput:{deliverable:"report",deterministicContract:{minLinks:1,requiredAny:[["new jersey","nj"],["eligibility","eligible"],["deadline","due"],["checked","as of"]]},mustInclude:["authoritative source links","eligibility evidence","deadlines","date checked","only realistic matches"],mustNot:["include closed grants","include grants without verified nonprofit and program eligibility","pad the list"],validation:[]},id:"frozen-new-jersey-youth-grants",input:{attachments:[],prompt:"Find currently open grants that a New Jersey nonprofit running after-school programs could realistically apply for, with deadlines between now and December 31, 2026. Use authoritative sources, link each opportunity, verify eligibility and deadline, omit weak matches instead of padding the list, and state when you checked."},policyVisibleContext:{attachmentCount:0},privilegedContextRef:"expected-frozen-new-jersey-youth-grants",requiredOutputs:[],split:"frozen_eval",tags:["research-efficiency","current-information","funding","frozen-eval"]},{artifactRefs:[],clusterKey:"maple-maintenance-followup-message",expectedOutput:{deliverable:"message",deterministicContract:{forbiddenText:["sue","lawsuit","legal action"],maxWords:130,requiredAny:[["repair date","repair schedule"]],requiredText:["july 28","august 1","security","two business days"],requireMessageBody:!0},mustInclude:["complete send-ready message copy","July 28","August 1 inspection","security concern","repair date within two business days"],mustNot:["make a legal threat","claim facts not supplied","exceed 130 words","return only a checklist or file path instead of the message"],validation:[]},id:"frozen-maintenance-followup-email",input:{attachments:[],prompt:"Draft a firm but courteous email to Maple Property Management following up on a bedroom window that has not closed securely since July 28. Maintenance inspected it August 1 but did not repair it. Ask for a repair date within two business days, mention the security concern, and keep the email under 130 words without making legal threats."},policyVisibleContext:{attachmentCount:0},privilegedContextRef:"expected-frozen-maintenance-followup-email",requiredOutputs:[],split:"frozen_eval",tags:["constraint-following","direct-deliverable","communication","frozen-eval"]},{artifactRefs:[],clusterKey:"meridian-vendor-document-message",expectedOutput:{deliverable:"message",deterministicContract:{forbiddenText:["cancel the contract","contract cancellation"],maxWords:120,requiredAny:[["onboarding","cannot finish","blocked"]],requiredText:["insurance certificate","august 7","rosa","august 12"],requireMessageBody:!0},mustInclude:["complete send-ready message copy","insurance certificate","August 7","onboarding blocked","Rosa","August 12"],mustNot:["threaten contract cancellation","exceed 120 words","return only a checklist or file path instead of the message"],validation:[]},id:"frozen-vendor-document-followup-email",input:{attachments:[],prompt:"Draft a firm but professional email to Meridian Freight following up on the insurance certificate promised for August 7. It has not arrived, carrier onboarding cannot finish without it, and Rosa needs the document or a confirmed delivery date by August 12. Keep it under 120 words and do not threaten to cancel the contract."},policyVisibleContext:{attachmentCount:0},privilegedContextRef:"expected-frozen-vendor-document-followup-email",requiredOutputs:[],split:"frozen_eval",tags:["constraint-following","direct-deliverable","communication","frozen-eval"]}],tools:[{description:"Start Work compute only when it is needed, then return live sandbox status and the stable /workspace/inputs, /workspace/work, and /workspace/outputs layout.",inputSchema:{additionalProperties:!1,properties:{},type:"object"},inputSchemaHash:"042b35e50dd5dd505f0228e829f17a8aeaae50e49d865c4754cf9ba1edba9bd0",name:"work_environment",sideEffect:"write",timeoutMs:12e4},{description:"List files in the Work scratch, input, or completed-output area. This lazily starts Work compute.",inputSchema:{additionalProperties:!1,properties:{area:{enum:["inputs","work","outputs"],type:"string"},path:{description:"Optional relative path inside the selected area.",type:"string"},recursive:{type:"boolean"}},required:["area"],type:"object"},inputSchemaHash:"a3a68e8aeb4f23710aa21fe95d4a361a14c08bcbb61a2a959a60b7b00c82807f",name:"work_list_files",sideEffect:"read",timeoutMs:12e4},{description:"Read a bounded file from Work inputs, scratch space, or completed-output candidates.",inputSchema:{additionalProperties:!1,properties:{area:{enum:["inputs","work","outputs"],type:"string"},maxBytes:{maximum:1e6,minimum:1,type:"integer"},path:{minLength:1,type:"string"}},required:["area","path"],type:"object"},inputSchemaHash:"deb9cd248f2734751286054c381ac9572b248370181970ced6563a73c905a4f0",name:"work_read_file",sideEffect:"read",timeoutMs:12e4},{description:"Write a UTF-8 Work scratch file or completed-output candidate. Use area=outputs only for a finished result that is ready to validate and save.",inputSchema:{additionalProperties:!1,properties:{area:{enum:["work","outputs"],type:"string"},content:{type:"string"},path:{minLength:1,type:"string"}},required:["area","path","content"],type:"object"},inputSchemaHash:"6a19df98686e99a324564006b0b92082f185ac4b430e9285829f781251dd145b",name:"work_write_file",sideEffect:"write",timeoutMs:12e4},{description:"Edit a Work scratch file or output candidate by exact text replacement after reading it.",inputSchema:{additionalProperties:!1,properties:{area:{enum:["work","outputs"],type:"string"},newText:{type:"string"},oldText:{minLength:1,type:"string"},path:{minLength:1,type:"string"},replaceAll:{type:"boolean"}},required:["area","path","oldText","newText"],type:"object"},inputSchemaHash:"f507d9d9abbd8cf1556f6e925c159234295c3fa01800c5556767f96be8b011db",name:"work_edit_file",sideEffect:"write",timeoutMs:12e4},{description:"Run a bounded shell command from /workspace/work. Write finished deliverables to ../outputs and inspect them; the runtime preserves output files automatically when the turn ends.",inputSchema:{additionalProperties:!1,properties:{command:{minLength:1,type:"string"},timeoutSeconds:{maximum:3600,minimum:1,type:"integer"}},required:["command"],type:"object"},inputSchemaHash:"5ba3a52cddb3f575218bed855020e91eef14092d75922c963a24c6bc97fadeda",name:"work_exec",sideEffect:"write",timeoutMs:3e5},{description:"Explicitly copy one completed file from /workspace/outputs to durable OpenPond output storage before turn completion. Normal Work turns preserve output files automatically.",inputSchema:{additionalProperties:!1,properties:{path:{description:"Path relative to /workspace/outputs, for example report.md.",minLength:1,type:"string"},suggestedName:{maxLength:180,minLength:1,type:"string"},validation:{items:{additionalProperties:!1,properties:{detail:{maxLength:4e3,type:"string"},kind:{enum:["structural","visual","test","user_review"],type:"string"},label:{maxLength:240,minLength:1,type:"string"},ref:{maxLength:4096,type:"string"},status:{enum:["passed","failed","not_run"],type:"string"}},required:["kind","status","label"],type:"object"},maxItems:32,type:"array"}},required:["path"],type:"object"},inputSchemaHash:"ca853f64b300c74441b522db03facbcc9c5bb89c86189dae24182bab39510a83",name:"work_save_output",sideEffect:"write",timeoutMs:12e4},{description:"Stop Work compute after durable outputs have been saved. Saved OutputRefs remain available.",inputSchema:{additionalProperties:!1,properties:{},type:"object"},inputSchemaHash:"042b35e50dd5dd505f0228e829f17a8aeaae50e49d865c4754cf9ba1edba9bd0",name:"work_stop",sideEffect:"write",timeoutMs:12e4},{description:"Search the web for current or external information. The app renders clickable source pills automatically. Cite by source title or source name in prose by default; when the user explicitly requests URLs or linked evidence, use the result URLs in clickable Markdown links.",inputSchema:{additionalProperties:!1,properties:{domains:{description:"Optional domain filters.",items:{type:"string"},maxItems:10,type:"array"},limit:{description:"Maximum number of results to return.",maximum:10,minimum:1,type:"integer"},query:{description:"Search query.",minLength:1,type:"string"},recencyDays:{description:"Only return results from this many recent days when supported.",minimum:0,type:"integer"}},required:["query"],type:"object"},inputSchemaHash:"2a138bf9b526a624ac2442669fccb277fac2ba818821b3a2da1dd27d62954056",name:"web_search",sideEffect:"read",timeoutMs:12e4},{description:"Fetch and extract readable text from a known HTTP(S) URL. Use this when the user provides a URL or a search result has an exact page to inspect; use web_search when discovering unknown pages by query.",inputSchema:{additionalProperties:!1,properties:{maxBytes:{description:"Maximum UTF-8 bytes of extracted text to return. Defaults to 20000.",maximum:1e5,minimum:1,type:"integer"},url:{description:"HTTP or HTTPS URL to fetch.",minLength:1,type:"string"}},required:["url"],type:"object"},inputSchemaHash:"0afe31d8dbe05643e4a19ca0897c606e379f37d741b4f61816ad8ba4d48b61b3",name:"web_fetch",sideEffect:"read",timeoutMs:12e4}]}),wl=Object.freeze({"fixtures/adaptation-board-launch.md":`# Northstar launch decision packet
|
|
3
3
|
|
|
4
4
|
- Decision meeting: August 18, 2026 at 2:00 PM America/New_York.
|
|
5
5
|
- Proposed launch: September 14, 2026.
|
|
@@ -181,7 +181,7 @@ privileged expected outcome.
|
|
|
181
181
|
failures,
|
|
182
182
|
};
|
|
183
183
|
}
|
|
184
|
-
`});var Zo=_.enum(["foreground_tokens","success_rate","latency_ms","cost_usd"]),ed=_.enum(["baseline","candidate"]),Rl=_.object({split:tt,taskIds:_.array(ue).min(1).max(1e5),seeds:_.array(_.string().trim().min(1).max(500)).min(1).max(100),repetitions:_.number().int().positive().max(20),runtimeTargetHash:$,environmentHash:$,toolContractHash:$,limitsHash:$}).strict(),yl=_.object({schemaVersion:_.literal("openpond.benchmarkDefinition.v1"),id:ue,title:_.string().trim().min(1).max(500),description:_.string().trim().min(1).max(5e3),tasksetRelease:G,adaptationSplit:tt,evaluationSplit:tt,primaryMetric:Zo,qualityGate:_.enum(["none","non_regression","all_pass"]),caseCounts:_.object({adaptation:_.number().int().nonnegative(),evaluation:_.number().int().positive()}).strict(),metadata:Kt}).strict(),Qf=_.object({schemaVersion:_.literal("openpond.benchmarkRunRequest.v1"),phase:ed,model:ss,reasoningEffort:_.string().trim().min(1).max(100).nullable(),split:tt,seeds:_.array(_.string().trim().min(1).max(500)).min(1).max(100),repetitions:_.number().int().positive().max(20),metadata:Kt}).strict(),kl=_.object({inputTokens:_.number().int().nonnegative(),outputTokens:_.number().int().nonnegative(),totalTokens:_.number().int().nonnegative()}).strict(),td=_.object({schemaVersion:_.literal("openpond.benchmarkRunSummary.v1"),id:ue,phase:ed,tasksetRelease:G,harnessRelease:G,evaluationResult:G,model:ss,reasoningEffort:_.string().trim().min(1).max(100).nullable(),protocol:Rl,attemptCount:_.number().int().positive(),passedCount:_.number().int().nonnegative(),terminalCount:_.number().int().nonnegative(),usage:kl,costUsd:_.number().nonnegative().nullable(),latencyMs:_.number().int().nonnegative(),createdAt:Me,metadata:Kt}).strict(),gr=td.extend({contentHash:$}).strict(),ad=_.object({schemaVersion:_.literal("openpond.benchmarkComparison.v1"),id:ue,baseline:G,candidate:G,tasksetRelease:G,primaryMetric:Zo,qualityPassed:_.boolean(),baselinePassRate:_.number().min(0).max(1),candidatePassRate:_.number().min(0).max(1),foregroundTokenDelta:_.number().int(),foregroundTokenDeltaPercent:_.number().finite().nullable(),improved:_.boolean(),createdAt:Me,metadata:Kt}).strict(),wr=ad.extend({contentHash:$}).strict();function Zf(a){return yl.parse(a)}c(Zf,"createBenchmarkDefinition");function eT(a){if(a.receipts.length!==a.evaluation.attemptCount)throw new Error("Benchmark receipt count does not match its Evaluation result.");let e=a.receipts.reduce((s,i)=>rd(s,Sl(i.metadata.usage)),Ws()),t=a.receipts.flatMap(s=>typeof s.costUsd=="number"?[s.costUsd]:[]),r=td.parse({schemaVersion:"openpond.benchmarkRunSummary.v1",id:a.id,phase:a.phase,tasksetRelease:a.evaluation.tasksetRelease,harnessRelease:a.evaluation.harnessRelease,evaluationResult:{id:a.evaluation.id,contentHash:a.evaluation.contentHash},model:a.evaluation.model,reasoningEffort:a.reasoningEffort,protocol:a.protocol,attemptCount:a.evaluation.attemptCount,passedCount:a.receipts.filter(s=>s.metadata.passed===!0).length,terminalCount:a.evaluation.terminalCount,usage:e,costUsd:t.length?t.reduce((s,i)=>s+i,0):null,latencyMs:a.receipts.reduce((s,i)=>s+i.latencyMs,0),createdAt:a.createdAt,metadata:a.metadata??{}});return gr.parse({...r,contentHash:g(r)})}c(eT,"createBenchmarkRunSummary");function tT(a){let{baseline:e,candidate:t}=a;if(e.tasksetRelease.contentHash!==t.tasksetRelease.contentHash||e.model.provider!==t.model.provider||e.model.model!==t.model.model||e.reasoningEffort!==t.reasoningEffort||g(e.protocol)!==g(t.protocol))throw new Error("Benchmark runs are not comparable under the pinned protocol.");let r=e.passedCount/e.attemptCount,s=t.passedCount/t.attemptCount,n=e.terminalCount===e.attemptCount&&t.terminalCount===t.attemptCount&&(a.qualityGate==="none"||(a.qualityGate==="all_pass"?s===1:(e.passedCount>0||t.passedCount>0)&&s>=r)),d=t.usage.totalTokens-e.usage.totalTokens,o=e.usage.totalTokens>0?d/e.usage.totalTokens*100:null,u=a.primaryMetric==="foreground_tokens"?d<0:a.primaryMetric==="success_rate"?s>r:a.primaryMetric==="latency_ms"?t.latencyMs<e.latencyMs:t.costUsd!==null&&e.costUsd!==null&&t.costUsd<e.costUsd,l=ad.parse({schemaVersion:"openpond.benchmarkComparison.v1",id:a.id,baseline:{id:e.id,contentHash:e.contentHash},candidate:{id:t.id,contentHash:t.contentHash},tasksetRelease:e.tasksetRelease,primaryMetric:a.primaryMetric,qualityPassed:n,baselinePassRate:r,candidatePassRate:s,foregroundTokenDelta:d,foregroundTokenDeltaPercent:o,improved:n&&u,createdAt:a.createdAt,metadata:a.metadata??{}});return wr.parse({...l,contentHash:g(l)})}c(tT,"compareBenchmarkRuns");function Sl(a){return(Array.isArray(a)?a:a?[a]:[]).reduce((t,r)=>rd(t,Nl(r)),Ws())}c(Sl,"providerUsage");function Nl(a){if(!a||typeof a!="object"||Array.isArray(a))return Ws();let e=a,t=qs(e,["inputTokens","input_tokens","promptTokens","prompt_tokens"]),r=qs(e,["outputTokens","output_tokens","completionTokens","completion_tokens"]),s=qs(e,["totalTokens","total_tokens"]);return{inputTokens:t,outputTokens:r,totalTokens:s||t+r}}c(Nl,"usageRecord");function qs(a,e){for(let t of e){let r=a[t];if(typeof r=="number"&&Number.isFinite(r)&&r>=0)return Math.trunc(r)}return 0}c(qs,"token");function Ws(){return{inputTokens:0,outputTokens:0,totalTokens:0}}c(Ws,"emptyUsage");function rd(a,e){return{inputTokens:a.inputTokens+e.inputTokens,outputTokens:a.outputTokens+e.outputTokens,totalTokens:a.totalTokens+e.totalTokens}}c(rd,"addUsage");function sd(a){let e=new Map;for(let s of a.collectedArtifacts){let i=e.get(s.path)??[];i.push(s),e.set(s.path,i)}let t=new Set,r=a.requiredOutputs.map(s=>{let i=e.get(s.path)??[];if(i.length===0)return Zt.parse({requiredOutputPath:s.path,collectedPath:null,declaredMediaType:s.mediaType,detectedMediaType:null,artifact:null,status:"missing",parseStatus:"not_requested",schemaStatus:"not_requested",errorCode:"required_output_missing",failureOwner:"policy",evidenceRefs:[],metadata:{maxBytes:s.maxBytes,schemaRef:s.schemaRef}});if(i.length>1){for(let d of i)t.add(d);return Zt.parse({requiredOutputPath:s.path,collectedPath:s.path,declaredMediaType:s.mediaType,detectedMediaType:null,artifact:null,status:"failed",parseStatus:"not_requested",schemaStatus:"not_requested",errorCode:"artifact_collection_ambiguous",failureOwner:"collector",evidenceRefs:i.flatMap(d=>d.evidenceRefs??[]),metadata:{duplicateCount:i.length}})}let[n]=i;return t.add(n),vl(s,n)});for(let s of a.collectedArtifacts)t.has(s)||r.push(Zt.parse({requiredOutputPath:null,collectedPath:s.path,declaredMediaType:null,detectedMediaType:s.detectedMediaType,artifact:s.artifact,status:s.status,parseStatus:s.parseStatus??"not_requested",schemaStatus:s.schemaStatus??"not_requested",errorCode:s.errorCode??null,failureOwner:s.failureOwner??null,evidenceRefs:s.evidenceRefs??[],metadata:s.metadata??{}}));return Wn({schemaVersion:"openpond.artifactManifest.v1",id:a.id,attemptRef:a.attemptRef,entries:r,createdAt:a.createdAt,metadata:a.metadata??{}})}c(sd,"buildArtifactManifest");function id(a){return a.requiredOutputs.map(e=>{let t=a.manifest.entries.find(s=>s.requiredOutputPath===e.path);if(!t||t.status==="missing")return Ys(e,t??null,{status:"scored",score:0,passed:!1,rewardEligible:!0,failureOwner:"policy",feedback:`Required output ${e.path} was not collected.`});if(t.status==="failed"&&t.failureOwner!=="policy")return Ys(e,t,{status:"unscorable",score:null,passed:!1,rewardEligible:!1,failureOwner:t.failureOwner??"collector",feedback:`Required output ${e.path} could not be collected reliably.`});let r=Il(e,t);return Ys(e,t,{status:"scored",score:r.length===0?1:0,passed:r.length===0,rewardEligible:!0,failureOwner:r.length===0?null:"policy",feedback:r.length===0?`Required output ${e.path} passed structural verification.`:r.join(" ")})})}c(id,"verifyRequiredOutputs");function vl(a,e){return Zt.parse({requiredOutputPath:a.path,collectedPath:e.path,declaredMediaType:a.mediaType,detectedMediaType:e.detectedMediaType,artifact:e.artifact,status:e.status,parseStatus:e.parseStatus??"not_requested",schemaStatus:e.schemaStatus??"not_requested",errorCode:e.errorCode??null,failureOwner:e.failureOwner??null,evidenceRefs:e.evidenceRefs??[],metadata:{...e.metadata,maxBytes:a.maxBytes,schemaRef:a.schemaRef}})}c(vl,"manifestEntry");function Il(a,e){let t=[];return e.artifact||t.push(`Required output ${a.path} has no immutable artifact reference.`),e.detectedMediaType!==a.mediaType&&t.push(`Required output ${a.path} has media type ${e.detectedMediaType??"unknown"}; expected ${a.mediaType}.`),a.maxBytes!==null&&e.artifact?.sizeBytes!==null&&e.artifact&&e.artifact.sizeBytes>a.maxBytes&&t.push(`Required output ${a.path} exceeds ${a.maxBytes} bytes.`),e.parseStatus==="failed"&&t.push(`Required output ${a.path} could not be parsed.`),e.schemaStatus==="failed"&&t.push(`Required output ${a.path} failed schema validation.`),t}c(Il,"structuralFailures");function Ys(a,e,t){let r=[...e?.evidenceRefs??[],...e?.artifact?[e.artifact]:[]];return qn.parse({verifierId:`required-output:${a.path}`,verifierVersion:"1",status:t.status,rawScore:t.score,normalizedScore:t.score,weight:1,passed:t.passed,hardGate:!0,rewardEligible:t.rewardEligible,rewardContribution:t.rewardEligible?t.score:null,failureOwner:t.failureOwner,feedback:[t.feedback],visibleEvidenceRefs:r,privilegedEvidenceRefs:[],metadata:{requiredOutputPath:a.path}})}c(Ys,"requiredOutputComponent");var nd=_.object({schemaVersion:_.literal("openpond.profileEvaluationComparison.v1"),id:ue,tasksetRelease:G,populationHash:$,environmentHash:$,metricPolicyHash:$,limitsHash:$,members:_.array(_.object({runManifest:G,metricResultHash:$,source:eo,policy:at.shape.policy,score:_.number().min(0).max(1).nullable()}).strict()).min(2).max(100),createdAt:Me}).strict(),fa=nd.extend({contentHash:$}).strict();function od(a){if(a.members.length<2)throw new Error("A comparison requires at least two runs.");let e=a.members.map(({manifest:o,result:u})=>{if(at.parse(o),oe(o,"Taskset run manifest"),Ya(u),!o.profileEvaluation||o.execution.kind!=="harness")throw new Error("Profile comparison requires released Profile evaluation runs.");if(u.runManifest.id!==o.id||u.runManifest.contentHash!==o.contentHash||u.tasksetRelease.id!==o.tasksetRelease.id||u.tasksetRelease.contentHash!==o.tasksetRelease.contentHash||u.policyHash!==g(o.metricPolicy))throw new Error("Profile comparison metric differs from its run manifest.");return{manifest:o,result:u,source:o.profileEvaluation}}),t=e[0],r=g(t.manifest.population.map(({taskId:o,seed:u,fixtureId:l})=>({taskId:o,seed:u,fixtureId:l}))),s=g(t.manifest.metricPolicy),i=g(t.manifest.limits),n=new Set;for(let o of e){if(n.has(o.manifest.id))throw new Error("Profile comparison repeats a run.");if(n.add(o.manifest.id),o.manifest.tasksetRelease.id!==t.manifest.tasksetRelease.id||o.manifest.tasksetRelease.contentHash!==t.manifest.tasksetRelease.contentHash||g(o.manifest.population.map(({taskId:u,seed:l,fixtureId:T})=>({taskId:u,seed:l,fixtureId:T})))!==r||o.source.environmentHash!==t.source.environmentHash||g(o.manifest.metricPolicy)!==s||g(o.manifest.limits)!==i||o.manifest.runtimeTarget.adapterId!==t.manifest.runtimeTarget.adapterId||o.manifest.runtimeTarget.placement!==t.manifest.runtimeTarget.placement||o.manifest.runtimeTarget.runtimeVersion!==t.manifest.runtimeTarget.runtimeVersion)throw new Error("Profile comparison runs differ in frozen tasks, environment, grading, limits, or runtime.")}let d=nd.parse({schemaVersion:"openpond.profileEvaluationComparison.v1",id:a.id,tasksetRelease:t.manifest.tasksetRelease,populationHash:r,environmentHash:t.source.environmentHash,metricPolicyHash:s,limitsHash:i,members:e.map(({manifest:o,result:u,source:l})=>({runManifest:{id:o.id,contentHash:o.contentHash},metricResultHash:u.contentHash,source:l,policy:o.policy,score:u.value})),createdAt:a.createdAt});return fa.parse({...d,contentHash:g(d)})}c(od,"createProfileEvaluationComparison");var dd=_.object({schemaVersion:_.literal("openpond.profileEvaluationSuiteRun.v1"),id:ue,suiteId:ue,suiteHash:$,catalogHash:$,profileId:ue,sourceRevision:_.string().trim().min(1).max(240),harnessRelease:G,members:_.array(_.object({definitionId:ue,runManifest:G,runHash:$,passed:_.boolean(),score:_.number().min(0).max(1).nullable()}).strict()).min(1).max(1e3),passed:_.boolean(),createdAt:Me,completedAt:Me}).strict(),Ta=dd.extend({contentHash:$}).strict();function cd(a){let e=Zn.parse(a.catalog),t=e.suites.find(d=>d.id===a.suiteId);if(!t)throw new Error(`Profile evaluation suite ${a.suiteId} is absent from its catalog.`);if(a.members.length!==t.definitionIds.length)throw new Error("Profile evaluation suite has an incomplete run population.");let r=a.members.map((d,o)=>{let u=t.definitionIds[o],l=e.definitions.find(m=>m.id===u);if(!l||d.definitionId!==u)throw new Error("Profile evaluation suite members differ from declared definition order.");let T=at.parse(d.manifest);oe(T,"Profile evaluation suite member manifest");let p=T.profileEvaluation;if(!p||T.execution.kind!=="harness"||p.definitionId!==u||p.definitionHash!==g(l)||g(p.target)!==g(l.target)||p.catalogHash!==g(e)||T.tasksetRelease.id!==l.tasksetRelease.id||T.tasksetRelease.contentHash!==l.tasksetRelease.contentHash)throw new Error("Profile evaluation suite member differs from its released definition.");return{...d,manifest:T,source:p}}),s=r[0].source,i=r[0].manifest.policy;if(i.kind!=="model")throw new Error("Profile evaluation suite requires model runs.");for(let d of r){if(d.source.profileId!==s.profileId||d.source.sourceRevision!==s.sourceRevision||d.source.harnessRelease.id!==s.harnessRelease.id||d.source.harnessRelease.contentHash!==s.harnessRelease.contentHash)throw new Error("Profile evaluation suite members use different Profile releases.");let o=d.manifest.policy;if(o.kind!=="model"||g(o)!==g(i))throw new Error("Profile evaluation suite members use different model configurations.")}let n=dd.parse({schemaVersion:"openpond.profileEvaluationSuiteRun.v1",id:a.id,suiteId:t.id,suiteHash:g(t),catalogHash:g(e),profileId:s.profileId,sourceRevision:s.sourceRevision,harnessRelease:s.harnessRelease,members:r.map(d=>({definitionId:d.definitionId,runManifest:{id:d.manifest.id,contentHash:d.manifest.contentHash},runHash:d.runHash,passed:d.passed,score:d.score})),passed:r.every(d=>d.passed),createdAt:a.createdAt,completedAt:a.completedAt});return Ta.parse({...n,contentHash:g(n)})}c(cd,"createProfileEvaluationSuiteRun");import{createHash as ld}from"node:crypto";import{mkdir as ud,readdir as Ol,readFile as _a,writeFile as pd}from"node:fs/promises";import W from"node:path";async function ha(a,e){let t=ee.parse(a),r=["tasks","assets","environment","graders","rubrics","comparisons","metrics","fixtures"];await Promise.all(r.map(f=>ud(W.join(e,f),{recursive:!0})));let s=await Ll(t,e);if(t.metrics.customAggregator){let f=W.join(e,t.metrics.customAggregator.module),h=ld("sha256").update(await _a(f)).digest("hex");t=ee.parse({...t,metrics:{...t.metrics,customAggregator:{...t.metrics.customAggregator,contentHash:h}}})}let i=W.join(e,"taskset.json"),n=W.join(e,"tasks","tasks.jsonl"),d=W.join(e,"graders","graders.json"),o=W.join(e,"fixtures","grader-fixtures.json"),u=W.join(e,"metrics","policy.json"),l=W.join(e,"assets","manifest.json"),T=W.join(e,"environment","contract.json"),p=W.join(e,"rubrics","preference-review.md"),m=W.join(e,"comparisons","policy.json");return await Promise.all([..._o(t)].map(([f,h])=>pd(W.join(e,f),h,"utf8"))),{directory:e,files:[i,n,l,T,d,p,m,u,o,...s],draft:t}}c(ha,"writeTasksetDraftPackage");async function te(a){let e=await bl(a),t=ld("sha256");for(let r of e)t.update(W.relative(a,r).replaceAll(W.sep,"/")),t.update("\0"),t.update(await _a(r)),t.update("\0");return t.digest("hex")}c(te,"hashTasksetDraftPackage");async function $s(a){let e=W.basename(a)==="taskset.json"?a:W.join(a,"taskset.json"),t=W.dirname(e),r=JSON.parse(await _a(e,"utf8")),s=ee.safeParse(r);if(s.success){let[i,n,d,o,u,l]=await Promise.all([Al(W.join(t,"tasks","tasks.jsonl")),Ea(W.join(t,"graders","graders.json")),Ea(W.join(t,"fixtures","grader-fixtures.json")),Ea(W.join(t,"metrics","policy.json")),Ea(W.join(t,"environment","contract.json")),Ea(W.join(t,"comparisons","policy.json"))]);return ee.parse({...s.data,...i===null?{}:{tasks:i},...n===null?{}:{graders:n},...d===null?{}:{graderFixtures:d},...o===null?{}:{metrics:o},...u===null?{}:{environment:u},...l===null?{}:{review:l}})}return nt(r)}c($s,"readTasksetDraftPackage");async function Ll(a,e){let t=Eo(a),r=[];for(let s of t){let i=W.join(e,s.relativePath);await ud(W.dirname(i),{recursive:!0});try{await pd(i,s.source,{encoding:"utf8",flag:"wx"})}catch(n){if(!Cl(n))throw n}r.push(i)}return r}c(Ll,"writeConfiguredStarterCode");async function bl(a){let e=[];async function t(r){let s=await Ol(r,{withFileTypes:!0});s.sort((i,n)=>i.name.localeCompare(n.name));for(let i of s){let n=W.join(r,i.name);if(i.isSymbolicLink())throw new Error(`Taskset workspaces cannot contain symbolic links: ${n}`);i.isDirectory()?await t(n):i.isFile()&&e.push(n)}}return c(t,"visit"),await t(a),e}c(bl,"packageFiles");async function Ea(a){try{return JSON.parse(await _a(a,"utf8"))}catch(e){if(md(e))return null;throw e}}c(Ea,"readOptionalJson");async function Al(a){try{return(await _a(a,"utf8")).split(/\r?\n/).map(t=>t.trim()).filter(Boolean).map(t=>JSON.parse(t))}catch(e){if(md(e))return null;throw e}}c(Al,"readOptionalJsonLines");function md(a){return a instanceof Error&&"code"in a&&a.code==="ENOENT"}c(md,"isMissingFile");function Cl(a){return a instanceof Error&&"code"in a&&a.code==="EEXIST"}c(Cl,"isFileExists");async function fd(a){let{binding:e,rewards:t}=a.learning,r=Va(e,t);if(a.graders.length!==r.length||r.some(({source:o,reward:u})=>!a.graders.some(l=>l.id===o.graderId&&l.version===String(u.revision)&&g(l.metadata.rewardBinding)===g(I(e)))))throw new Error("Prepared Taskset graders do not match their immutable Reward binding.");let s=tn.parse({id:a.task.id,clusterKey:a.task.clusterKey,split:a.task.split,input:a.task.input,expectedOutput:a.task.expectedOutput,policyVisibleContext:a.task.policyVisibleContext,privilegedContextRef:a.task.privilegedContextRef,artifactRefs:[],tags:a.task.tags}),i=await sn({binding:e,rewards:t,task:s,signal:a.signal,evidence:{output:a.attempt.output,artifactRefs:a.attempt.artifactRefs,runtimeEventRefs:a.attempt.runtimeEventRefs,infrastructureError:a.attempt.infrastructureError},customVerifier:a.customVerifier?async({grader:o})=>{let u=a.graders.find(T=>T.id===o.id);if(u?.kind!=="custom_verifier")throw new Error("Bound verifier projection is missing.");let l=await a.customVerifier({grader:u,task:a.task,attempt:a.attempt,signal:a.signal});return{score:l.score,passed:l.passed,rewardEligible:o.rewardEligible,failureClass:null,feedback:[l.feedback],visibleEvidenceRefs:[],privilegedEvidenceRefs:l.evidenceRefs??[]}}:void 0,modelJudge:a.modelJudge?async({grader:o})=>{let u=a.graders.find(T=>T.id===o.id);if(u?.kind!=="model_judge")throw new Error("Bound judge projection is missing.");let l=await a.modelJudge({grader:u,task:a.task,attempt:a.attempt});return{score:l.score,passed:l.passed,rewardEligible:o.rewardEligible,failureClass:null,feedback:[l.feedback],visibleEvidenceRefs:[],privilegedEvidenceRefs:l.evidenceRefs??[]}}:void 0}),n=i.training.status==="not_configured"?i.evaluation:i.training,d=g(a.graders);return{schemaVersion:"openpond.gradeResult.v1",id:`grade_${g([a.attempt.id,i.contentHash]).slice(0,24)}`,attemptId:a.attempt.id,graderSetHash:d,score:n.score,passed:n.passed===!0,components:i.results.map(o=>{let u=e.sources.find(T=>T.graderId===o.graderId),l=a.graders.find(T=>T.id===o.graderId);return{graderId:o.graderId,graderVersion:l.version,score:o.normalizedScore,passed:o.passed===!0,hardGate:u.hardGate,rewardEligible:u.role==="training"&&o.status==="scored",feedback:o.message?.trim()||null,evidenceRefs:o.evidenceHashes,judge:l.kind==="model_judge"?l.judge:null,calibrationStatus:l.kind==="model_judge"?l.calibrationStatus:"not_applicable"}}),failureClass:a.attempt.infrastructureError?"infrastructure_failure":n.status!=="scored"?"grader_failure":n.passed?null:"policy_failure",feedback:i.results.flatMap(o=>o.message?.trim()?[o.message.trim()]:[]),rewardEligible:i.training.status==="scored",rewardComposition:i,createdAt:a.now?.()??new Date().toISOString()}}c(fd,"gradeLearningBatchAttempt");async function $T(a){if(a.learning)return fd({...a,learning:a.learning});if(a.graders.some(s=>s.metadata.rewardBinding!==void 0))throw new Error("This Taskset requires its immutable public Reward binding to grade an attempt.");let e=g(a.graders),t=[];for(let s of a.graders)a.signal?.throwIfAborted(),t.push(a.attempt.infrastructureError?$e(s,null,!1,"Infrastructure failure; no reward was produced.",[],!1):await Pl(s,a.task,a.attempt,a.modelJudge,a.customVerifier,a.signal));let r=Zi({graders:a.graders,infrastructureError:a.attempt.infrastructureError,components:t.map(s=>({...s,failureClass:s.score===null?"grader_failure":s.passed?null:"policy_failure"}))});return{schemaVersion:"openpond.gradeResult.v1",id:`grade_${g([a.attempt.id,e,t]).slice(0,24)}`,attemptId:a.attempt.id,graderSetHash:e,score:r.score,passed:r.passed,components:t,failureClass:r.failureClass,feedback:a.attempt.infrastructureError?[a.attempt.infrastructureError]:t.flatMap(s=>s.feedback?[s.feedback]:[]),rewardEligible:r.rewardEligible,createdAt:a.now?.()??new Date().toISOString()}}c($T,"gradeAttempt");async function Pl(a,e,t,r,s,i){if(a.kind==="model_judge"){if(!r)return $e(a,null,!1,"Model judge runner is unavailable.",[],!1);if(a.calibrationStatus!=="passed")return $e(a,null,!1,"Model judge calibration has not passed.",[],!1);let d=await r({grader:a,task:e,attempt:t});return $e(a,d.score,d.passed,d.feedback,d.evidenceRefs??[])}if(a.kind==="human")return $e(a,null,!1,"Human review is pending.",[],!1);if(a.kind==="custom_verifier"){if(!s)return $e(a,null,!1,"Sandboxed verifier runner is unavailable.",[],!1);let d=await s({grader:a,task:e,attempt:t,signal:i});return $e(a,d.score,d.passed,d.feedback,d.evidenceRefs??[])}let n=Gi({grader:Qi(a),task:e,evidence:t});return $e(a,n.score,n.passed,n.feedback,[...t.artifactRefs,...t.runtimeEventRefs])}c(Pl,"runGrader");function $e(a,e,t,r,s,i=a.rewardEligible){let n=e!==null&&Number.isFinite(e)?Math.max(0,Math.min(1,e)):null;return{graderId:a.id,graderVersion:a.version,score:n,passed:n!==null&&t,hardGate:a.hardGate,rewardEligible:n!==null&&i,feedback:r,evidenceRefs:s,judge:a.kind==="model_judge"?a.judge:null,calibrationStatus:a.kind==="model_judge"?a.calibrationStatus:"not_applicable"}}c($e,"component");import{access as xl,mkdir as ga,readFile as yE,writeFile as lt}from"node:fs/promises";import se from"node:path";async function Ed(a,e,t={}){let r=U.parse(a),s=Is(r);if(!s.valid)throw new Error(s.issues.map(n=>`${n.code}: ${n.message}`).join(`
|
|
184
|
+
`});var Zo=_.enum(["foreground_tokens","success_rate","latency_ms","cost_usd"]),ed=_.enum(["baseline","candidate"]),Rl=_.object({split:tt,taskIds:_.array(ue).min(1).max(1e5),seeds:_.array(_.string().trim().min(1).max(500)).min(1).max(100),repetitions:_.number().int().positive().max(20),runtimeTargetHash:$,environmentHash:$,toolContractHash:$,limitsHash:$}).strict(),yl=_.object({schemaVersion:_.literal("openpond.benchmarkDefinition.v1"),id:ue,title:_.string().trim().min(1).max(500),description:_.string().trim().min(1).max(5e3),tasksetRelease:G,adaptationSplit:tt,evaluationSplit:tt,primaryMetric:Zo,qualityGate:_.enum(["none","non_regression","all_pass"]),caseCounts:_.object({adaptation:_.number().int().nonnegative(),evaluation:_.number().int().positive()}).strict(),metadata:Kt}).strict(),Qf=_.object({schemaVersion:_.literal("openpond.benchmarkRunRequest.v1"),phase:ed,model:ss,reasoningEffort:_.string().trim().min(1).max(100).nullable(),split:tt,seeds:_.array(_.string().trim().min(1).max(500)).min(1).max(100),repetitions:_.number().int().positive().max(20),metadata:Kt}).strict(),kl=_.object({inputTokens:_.number().int().nonnegative(),outputTokens:_.number().int().nonnegative(),totalTokens:_.number().int().nonnegative()}).strict(),td=_.object({schemaVersion:_.literal("openpond.benchmarkRunSummary.v1"),id:ue,phase:ed,tasksetRelease:G,harnessRelease:G,evaluationResult:G,model:ss,reasoningEffort:_.string().trim().min(1).max(100).nullable(),protocol:Rl,attemptCount:_.number().int().positive(),passedCount:_.number().int().nonnegative(),terminalCount:_.number().int().nonnegative(),usage:kl,costUsd:_.number().nonnegative().nullable(),latencyMs:_.number().int().nonnegative(),createdAt:Me,metadata:Kt}).strict(),gr=td.extend({contentHash:$}).strict(),ad=_.object({schemaVersion:_.literal("openpond.benchmarkComparison.v1"),id:ue,baseline:G,candidate:G,tasksetRelease:G,primaryMetric:Zo,qualityPassed:_.boolean(),baselinePassRate:_.number().min(0).max(1),candidatePassRate:_.number().min(0).max(1),foregroundTokenDelta:_.number().int(),foregroundTokenDeltaPercent:_.number().finite().nullable(),improved:_.boolean(),createdAt:Me,metadata:Kt}).strict(),wr=ad.extend({contentHash:$}).strict();function Zf(a){return yl.parse(a)}c(Zf,"createBenchmarkDefinition");function eT(a){if(a.receipts.length!==a.evaluation.attemptCount)throw new Error("Benchmark receipt count does not match its Evaluation result.");let e=a.receipts.reduce((s,i)=>rd(s,Sl(i.metadata.usage)),Ws()),t=a.receipts.flatMap(s=>typeof s.costUsd=="number"?[s.costUsd]:[]),r=td.parse({schemaVersion:"openpond.benchmarkRunSummary.v1",id:a.id,phase:a.phase,tasksetRelease:a.evaluation.tasksetRelease,harnessRelease:a.evaluation.harnessRelease,evaluationResult:{id:a.evaluation.id,contentHash:a.evaluation.contentHash},model:a.evaluation.model,reasoningEffort:a.reasoningEffort,protocol:a.protocol,attemptCount:a.evaluation.attemptCount,passedCount:a.receipts.filter(s=>s.metadata.passed===!0).length,terminalCount:a.evaluation.terminalCount,usage:e,costUsd:t.length?t.reduce((s,i)=>s+i,0):null,latencyMs:a.receipts.reduce((s,i)=>s+i.latencyMs,0),createdAt:a.createdAt,metadata:a.metadata??{}});return gr.parse({...r,contentHash:g(r)})}c(eT,"createBenchmarkRunSummary");function tT(a){let{baseline:e,candidate:t}=a;if(e.tasksetRelease.contentHash!==t.tasksetRelease.contentHash||e.model.provider!==t.model.provider||e.model.model!==t.model.model||e.reasoningEffort!==t.reasoningEffort||g(e.protocol)!==g(t.protocol))throw new Error("Benchmark runs are not comparable under the pinned protocol.");let r=e.passedCount/e.attemptCount,s=t.passedCount/t.attemptCount,n=e.terminalCount===e.attemptCount&&t.terminalCount===t.attemptCount&&(a.qualityGate==="none"||(a.qualityGate==="all_pass"?s===1:(e.passedCount>0||t.passedCount>0)&&s>=r)),d=t.usage.totalTokens-e.usage.totalTokens,o=e.usage.totalTokens>0?d/e.usage.totalTokens*100:null,u=a.primaryMetric==="foreground_tokens"?d<0:a.primaryMetric==="success_rate"?s>r:a.primaryMetric==="latency_ms"?t.latencyMs<e.latencyMs:t.costUsd!==null&&e.costUsd!==null&&t.costUsd<e.costUsd,l=ad.parse({schemaVersion:"openpond.benchmarkComparison.v1",id:a.id,baseline:{id:e.id,contentHash:e.contentHash},candidate:{id:t.id,contentHash:t.contentHash},tasksetRelease:e.tasksetRelease,primaryMetric:a.primaryMetric,qualityPassed:n,baselinePassRate:r,candidatePassRate:s,foregroundTokenDelta:d,foregroundTokenDeltaPercent:o,improved:n&&u,createdAt:a.createdAt,metadata:a.metadata??{}});return wr.parse({...l,contentHash:g(l)})}c(tT,"compareBenchmarkRuns");function Sl(a){return(Array.isArray(a)?a:a?[a]:[]).reduce((t,r)=>rd(t,Nl(r)),Ws())}c(Sl,"providerUsage");function Nl(a){if(!a||typeof a!="object"||Array.isArray(a))return Ws();let e=a,t=qs(e,["inputTokens","input_tokens","promptTokens","prompt_tokens"]),r=qs(e,["outputTokens","output_tokens","completionTokens","completion_tokens"]),s=qs(e,["totalTokens","total_tokens"]);return{inputTokens:t,outputTokens:r,totalTokens:s||t+r}}c(Nl,"usageRecord");function qs(a,e){for(let t of e){let r=a[t];if(typeof r=="number"&&Number.isFinite(r)&&r>=0)return Math.trunc(r)}return 0}c(qs,"token");function Ws(){return{inputTokens:0,outputTokens:0,totalTokens:0}}c(Ws,"emptyUsage");function rd(a,e){return{inputTokens:a.inputTokens+e.inputTokens,outputTokens:a.outputTokens+e.outputTokens,totalTokens:a.totalTokens+e.totalTokens}}c(rd,"addUsage");function sd(a){let e=new Map;for(let s of a.collectedArtifacts){let i=e.get(s.path)??[];i.push(s),e.set(s.path,i)}let t=new Set,r=a.requiredOutputs.map(s=>{let i=e.get(s.path)??[];if(i.length===0)return Zt.parse({requiredOutputPath:s.path,collectedPath:null,declaredMediaType:s.mediaType,detectedMediaType:null,artifact:null,status:"missing",parseStatus:"not_requested",schemaStatus:"not_requested",errorCode:"required_output_missing",failureOwner:"policy",evidenceRefs:[],metadata:{maxBytes:s.maxBytes,schemaRef:s.schemaRef}});if(i.length>1){for(let d of i)t.add(d);return Zt.parse({requiredOutputPath:s.path,collectedPath:s.path,declaredMediaType:s.mediaType,detectedMediaType:null,artifact:null,status:"failed",parseStatus:"not_requested",schemaStatus:"not_requested",errorCode:"artifact_collection_ambiguous",failureOwner:"collector",evidenceRefs:i.flatMap(d=>d.evidenceRefs??[]),metadata:{duplicateCount:i.length}})}let[n]=i;return t.add(n),vl(s,n)});for(let s of a.collectedArtifacts)t.has(s)||r.push(Zt.parse({requiredOutputPath:null,collectedPath:s.path,declaredMediaType:null,detectedMediaType:s.detectedMediaType,artifact:s.artifact,status:s.status,parseStatus:s.parseStatus??"not_requested",schemaStatus:s.schemaStatus??"not_requested",errorCode:s.errorCode??null,failureOwner:s.failureOwner??null,evidenceRefs:s.evidenceRefs??[],metadata:s.metadata??{}}));return Wn({schemaVersion:"openpond.artifactManifest.v1",id:a.id,attemptRef:a.attemptRef,entries:r,createdAt:a.createdAt,metadata:a.metadata??{}})}c(sd,"buildArtifactManifest");function id(a){return a.requiredOutputs.map(e=>{let t=a.manifest.entries.find(s=>s.requiredOutputPath===e.path);if(!t||t.status==="missing")return Ys(e,t??null,{status:"scored",score:0,passed:!1,rewardEligible:!0,failureOwner:"policy",feedback:`Required output ${e.path} was not collected.`});if(t.status==="failed"&&t.failureOwner!=="policy")return Ys(e,t,{status:"unscorable",score:null,passed:!1,rewardEligible:!1,failureOwner:t.failureOwner??"collector",feedback:`Required output ${e.path} could not be collected reliably.`});let r=Il(e,t);return Ys(e,t,{status:"scored",score:r.length===0?1:0,passed:r.length===0,rewardEligible:!0,failureOwner:r.length===0?null:"policy",feedback:r.length===0?`Required output ${e.path} passed structural verification.`:r.join(" ")})})}c(id,"verifyRequiredOutputs");function vl(a,e){return Zt.parse({requiredOutputPath:a.path,collectedPath:e.path,declaredMediaType:a.mediaType,detectedMediaType:e.detectedMediaType,artifact:e.artifact,status:e.status,parseStatus:e.parseStatus??"not_requested",schemaStatus:e.schemaStatus??"not_requested",errorCode:e.errorCode??null,failureOwner:e.failureOwner??null,evidenceRefs:e.evidenceRefs??[],metadata:{...e.metadata,maxBytes:a.maxBytes,schemaRef:a.schemaRef}})}c(vl,"manifestEntry");function Il(a,e){let t=[];return e.artifact||t.push(`Required output ${a.path} has no immutable artifact reference.`),e.detectedMediaType!==a.mediaType&&t.push(`Required output ${a.path} has media type ${e.detectedMediaType??"unknown"}; expected ${a.mediaType}.`),a.maxBytes!==null&&e.artifact?.sizeBytes!==null&&e.artifact&&e.artifact.sizeBytes>a.maxBytes&&t.push(`Required output ${a.path} exceeds ${a.maxBytes} bytes.`),e.parseStatus==="failed"&&t.push(`Required output ${a.path} could not be parsed.`),e.schemaStatus==="failed"&&t.push(`Required output ${a.path} failed schema validation.`),t}c(Il,"structuralFailures");function Ys(a,e,t){let r=[...e?.evidenceRefs??[],...e?.artifact?[e.artifact]:[]];return qn.parse({verifierId:`required-output:${a.path}`,verifierVersion:"1",status:t.status,rawScore:t.score,normalizedScore:t.score,weight:1,passed:t.passed,hardGate:!0,rewardEligible:t.rewardEligible,rewardContribution:t.rewardEligible?t.score:null,failureOwner:t.failureOwner,feedback:[t.feedback],visibleEvidenceRefs:r,privilegedEvidenceRefs:[],metadata:{requiredOutputPath:a.path}})}c(Ys,"requiredOutputComponent");var nd=_.object({schemaVersion:_.literal("openpond.profileEvaluationComparison.v1"),id:ue,tasksetRelease:G,populationHash:$,environmentHash:$,metricPolicyHash:$,limitsHash:$,members:_.array(_.object({runManifest:G,metricResultHash:$,source:zn,policy:at.shape.policy,score:_.number().min(0).max(1).nullable()}).strict()).min(2).max(100),createdAt:Me}).strict(),fa=nd.extend({contentHash:$}).strict();function od(a){if(a.members.length<2)throw new Error("A comparison requires at least two runs.");let e=a.members.map(({manifest:o,result:u})=>{if(at.parse(o),oe(o,"Taskset run manifest"),Ya(u),!o.profileEvaluation||o.execution.kind!=="harness")throw new Error("Profile comparison requires released Profile evaluation runs.");if(u.runManifest.id!==o.id||u.runManifest.contentHash!==o.contentHash||u.tasksetRelease.id!==o.tasksetRelease.id||u.tasksetRelease.contentHash!==o.tasksetRelease.contentHash||u.policyHash!==g(o.metricPolicy))throw new Error("Profile comparison metric differs from its run manifest.");return{manifest:o,result:u,source:o.profileEvaluation}}),t=e[0],r=g(t.manifest.population.map(({taskId:o,seed:u,fixtureId:l})=>({taskId:o,seed:u,fixtureId:l}))),s=g(t.manifest.metricPolicy),i=g(t.manifest.limits),n=new Set;for(let o of e){if(n.has(o.manifest.id))throw new Error("Profile comparison repeats a run.");if(n.add(o.manifest.id),o.manifest.tasksetRelease.id!==t.manifest.tasksetRelease.id||o.manifest.tasksetRelease.contentHash!==t.manifest.tasksetRelease.contentHash||g(o.manifest.population.map(({taskId:u,seed:l,fixtureId:T})=>({taskId:u,seed:l,fixtureId:T})))!==r||o.source.environmentHash!==t.source.environmentHash||g(o.manifest.metricPolicy)!==s||g(o.manifest.limits)!==i||o.manifest.runtimeTarget.adapterId!==t.manifest.runtimeTarget.adapterId||o.manifest.runtimeTarget.placement!==t.manifest.runtimeTarget.placement||o.manifest.runtimeTarget.runtimeVersion!==t.manifest.runtimeTarget.runtimeVersion)throw new Error("Profile comparison runs differ in frozen tasks, environment, grading, limits, or runtime.")}let d=nd.parse({schemaVersion:"openpond.profileEvaluationComparison.v1",id:a.id,tasksetRelease:t.manifest.tasksetRelease,populationHash:r,environmentHash:t.source.environmentHash,metricPolicyHash:s,limitsHash:i,members:e.map(({manifest:o,result:u,source:l})=>({runManifest:{id:o.id,contentHash:o.contentHash},metricResultHash:u.contentHash,source:l,policy:o.policy,score:u.value})),createdAt:a.createdAt});return fa.parse({...d,contentHash:g(d)})}c(od,"createProfileEvaluationComparison");var dd=_.object({schemaVersion:_.literal("openpond.profileEvaluationSuiteRun.v1"),id:ue,suiteId:ue,suiteHash:$,catalogHash:$,profileId:ue,sourceRevision:_.string().trim().min(1).max(240),harnessRelease:G,members:_.array(_.object({definitionId:ue,runManifest:G,runHash:$,passed:_.boolean(),score:_.number().min(0).max(1).nullable()}).strict()).min(1).max(1e3),passed:_.boolean(),createdAt:Me,completedAt:Me}).strict(),Ta=dd.extend({contentHash:$}).strict();function cd(a){let e=Vn.parse(a.catalog),t=e.suites.find(d=>d.id===a.suiteId);if(!t)throw new Error(`Profile evaluation suite ${a.suiteId} is absent from its catalog.`);if(a.members.length!==t.definitionIds.length)throw new Error("Profile evaluation suite has an incomplete run population.");let r=a.members.map((d,o)=>{let u=t.definitionIds[o],l=e.definitions.find(m=>m.id===u);if(!l||d.definitionId!==u)throw new Error("Profile evaluation suite members differ from declared definition order.");let T=at.parse(d.manifest);oe(T,"Profile evaluation suite member manifest");let p=T.profileEvaluation;if(!p||T.execution.kind!=="harness"||p.definitionId!==u||p.definitionHash!==g(l)||g(p.target)!==g(l.target)||p.catalogHash!==g(e)||T.tasksetRelease.id!==l.tasksetRelease.id||T.tasksetRelease.contentHash!==l.tasksetRelease.contentHash)throw new Error("Profile evaluation suite member differs from its released definition.");return{...d,manifest:T,source:p}}),s=r[0].source,i=r[0].manifest.policy;if(i.kind!=="model")throw new Error("Profile evaluation suite requires model runs.");for(let d of r){if(d.source.profileId!==s.profileId||d.source.sourceRevision!==s.sourceRevision||d.source.harnessRelease.id!==s.harnessRelease.id||d.source.harnessRelease.contentHash!==s.harnessRelease.contentHash)throw new Error("Profile evaluation suite members use different Profile releases.");let o=d.manifest.policy;if(o.kind!=="model"||g(o)!==g(i))throw new Error("Profile evaluation suite members use different model configurations.")}let n=dd.parse({schemaVersion:"openpond.profileEvaluationSuiteRun.v1",id:a.id,suiteId:t.id,suiteHash:g(t),catalogHash:g(e),profileId:s.profileId,sourceRevision:s.sourceRevision,harnessRelease:s.harnessRelease,members:r.map(d=>({definitionId:d.definitionId,runManifest:{id:d.manifest.id,contentHash:d.manifest.contentHash},runHash:d.runHash,passed:d.passed,score:d.score})),passed:r.every(d=>d.passed),createdAt:a.createdAt,completedAt:a.completedAt});return Ta.parse({...n,contentHash:g(n)})}c(cd,"createProfileEvaluationSuiteRun");import{createHash as ld}from"node:crypto";import{mkdir as ud,readdir as Ol,readFile as _a,writeFile as pd}from"node:fs/promises";import W from"node:path";async function ha(a,e){let t=ee.parse(a),r=["tasks","assets","environment","graders","rubrics","comparisons","metrics","fixtures"];await Promise.all(r.map(f=>ud(W.join(e,f),{recursive:!0})));let s=await Ll(t,e);if(t.metrics.customAggregator){let f=W.join(e,t.metrics.customAggregator.module),h=ld("sha256").update(await _a(f)).digest("hex");t=ee.parse({...t,metrics:{...t.metrics,customAggregator:{...t.metrics.customAggregator,contentHash:h}}})}let i=W.join(e,"taskset.json"),n=W.join(e,"tasks","tasks.jsonl"),d=W.join(e,"graders","graders.json"),o=W.join(e,"fixtures","grader-fixtures.json"),u=W.join(e,"metrics","policy.json"),l=W.join(e,"assets","manifest.json"),T=W.join(e,"environment","contract.json"),p=W.join(e,"rubrics","preference-review.md"),m=W.join(e,"comparisons","policy.json");return await Promise.all([..._o(t)].map(([f,h])=>pd(W.join(e,f),h,"utf8"))),{directory:e,files:[i,n,l,T,d,p,m,u,o,...s],draft:t}}c(ha,"writeTasksetDraftPackage");async function te(a){let e=await bl(a),t=ld("sha256");for(let r of e)t.update(W.relative(a,r).replaceAll(W.sep,"/")),t.update("\0"),t.update(await _a(r)),t.update("\0");return t.digest("hex")}c(te,"hashTasksetDraftPackage");async function $s(a){let e=W.basename(a)==="taskset.json"?a:W.join(a,"taskset.json"),t=W.dirname(e),r=JSON.parse(await _a(e,"utf8")),s=ee.safeParse(r);if(s.success){let[i,n,d,o,u,l]=await Promise.all([Al(W.join(t,"tasks","tasks.jsonl")),Ea(W.join(t,"graders","graders.json")),Ea(W.join(t,"fixtures","grader-fixtures.json")),Ea(W.join(t,"metrics","policy.json")),Ea(W.join(t,"environment","contract.json")),Ea(W.join(t,"comparisons","policy.json"))]);return ee.parse({...s.data,...i===null?{}:{tasks:i},...n===null?{}:{graders:n},...d===null?{}:{graderFixtures:d},...o===null?{}:{metrics:o},...u===null?{}:{environment:u},...l===null?{}:{review:l}})}return nt(r)}c($s,"readTasksetDraftPackage");async function Ll(a,e){let t=Eo(a),r=[];for(let s of t){let i=W.join(e,s.relativePath);await ud(W.dirname(i),{recursive:!0});try{await pd(i,s.source,{encoding:"utf8",flag:"wx"})}catch(n){if(!Cl(n))throw n}r.push(i)}return r}c(Ll,"writeConfiguredStarterCode");async function bl(a){let e=[];async function t(r){let s=await Ol(r,{withFileTypes:!0});s.sort((i,n)=>i.name.localeCompare(n.name));for(let i of s){let n=W.join(r,i.name);if(i.isSymbolicLink())throw new Error(`Taskset workspaces cannot contain symbolic links: ${n}`);i.isDirectory()?await t(n):i.isFile()&&e.push(n)}}return c(t,"visit"),await t(a),e}c(bl,"packageFiles");async function Ea(a){try{return JSON.parse(await _a(a,"utf8"))}catch(e){if(md(e))return null;throw e}}c(Ea,"readOptionalJson");async function Al(a){try{return(await _a(a,"utf8")).split(/\r?\n/).map(t=>t.trim()).filter(Boolean).map(t=>JSON.parse(t))}catch(e){if(md(e))return null;throw e}}c(Al,"readOptionalJsonLines");function md(a){return a instanceof Error&&"code"in a&&a.code==="ENOENT"}c(md,"isMissingFile");function Cl(a){return a instanceof Error&&"code"in a&&a.code==="EEXIST"}c(Cl,"isFileExists");async function fd(a){let{binding:e,rewards:t}=a.learning,r=Va(e,t);if(a.graders.length!==r.length||r.some(({source:o,reward:u})=>!a.graders.some(l=>l.id===o.graderId&&l.version===String(u.revision)&&g(l.metadata.rewardBinding)===g(I(e)))))throw new Error("Prepared Taskset graders do not match their immutable Reward binding.");let s=tn.parse({id:a.task.id,clusterKey:a.task.clusterKey,split:a.task.split,input:a.task.input,expectedOutput:a.task.expectedOutput,policyVisibleContext:a.task.policyVisibleContext,privilegedContextRef:a.task.privilegedContextRef,artifactRefs:[],tags:a.task.tags}),i=await sn({binding:e,rewards:t,task:s,signal:a.signal,evidence:{output:a.attempt.output,artifactRefs:a.attempt.artifactRefs,runtimeEventRefs:a.attempt.runtimeEventRefs,infrastructureError:a.attempt.infrastructureError},customVerifier:a.customVerifier?async({grader:o})=>{let u=a.graders.find(T=>T.id===o.id);if(u?.kind!=="custom_verifier")throw new Error("Bound verifier projection is missing.");let l=await a.customVerifier({grader:u,task:a.task,attempt:a.attempt,signal:a.signal});return{score:l.score,passed:l.passed,rewardEligible:o.rewardEligible,failureClass:null,feedback:[l.feedback],visibleEvidenceRefs:[],privilegedEvidenceRefs:l.evidenceRefs??[]}}:void 0,modelJudge:a.modelJudge?async({grader:o})=>{let u=a.graders.find(T=>T.id===o.id);if(u?.kind!=="model_judge")throw new Error("Bound judge projection is missing.");let l=await a.modelJudge({grader:u,task:a.task,attempt:a.attempt});return{score:l.score,passed:l.passed,rewardEligible:o.rewardEligible,failureClass:null,feedback:[l.feedback],visibleEvidenceRefs:[],privilegedEvidenceRefs:l.evidenceRefs??[]}}:void 0}),n=i.training.status==="not_configured"?i.evaluation:i.training,d=g(a.graders);return{schemaVersion:"openpond.gradeResult.v1",id:`grade_${g([a.attempt.id,i.contentHash]).slice(0,24)}`,attemptId:a.attempt.id,graderSetHash:d,score:n.score,passed:n.passed===!0,components:i.results.map(o=>{let u=e.sources.find(T=>T.graderId===o.graderId),l=a.graders.find(T=>T.id===o.graderId);return{graderId:o.graderId,graderVersion:l.version,score:o.normalizedScore,passed:o.passed===!0,hardGate:u.hardGate,rewardEligible:u.role==="training"&&o.status==="scored",feedback:o.message?.trim()||null,evidenceRefs:o.evidenceHashes,judge:l.kind==="model_judge"?l.judge:null,calibrationStatus:l.kind==="model_judge"?l.calibrationStatus:"not_applicable"}}),failureClass:a.attempt.infrastructureError?"infrastructure_failure":n.status!=="scored"?"grader_failure":n.passed?null:"policy_failure",feedback:i.results.flatMap(o=>o.message?.trim()?[o.message.trim()]:[]),rewardEligible:i.training.status==="scored",rewardComposition:i,createdAt:a.now?.()??new Date().toISOString()}}c(fd,"gradeLearningBatchAttempt");async function $T(a){if(a.learning)return fd({...a,learning:a.learning});if(a.graders.some(s=>s.metadata.rewardBinding!==void 0))throw new Error("This Taskset requires its immutable public Reward binding to grade an attempt.");let e=g(a.graders),t=[];for(let s of a.graders)a.signal?.throwIfAborted(),t.push(a.attempt.infrastructureError?$e(s,null,!1,"Infrastructure failure; no reward was produced.",[],!1):await Pl(s,a.task,a.attempt,a.modelJudge,a.customVerifier,a.signal));let r=Zi({graders:a.graders,infrastructureError:a.attempt.infrastructureError,components:t.map(s=>({...s,failureClass:s.score===null?"grader_failure":s.passed?null:"policy_failure"}))});return{schemaVersion:"openpond.gradeResult.v1",id:`grade_${g([a.attempt.id,e,t]).slice(0,24)}`,attemptId:a.attempt.id,graderSetHash:e,score:r.score,passed:r.passed,components:t,failureClass:r.failureClass,feedback:a.attempt.infrastructureError?[a.attempt.infrastructureError]:t.flatMap(s=>s.feedback?[s.feedback]:[]),rewardEligible:r.rewardEligible,createdAt:a.now?.()??new Date().toISOString()}}c($T,"gradeAttempt");async function Pl(a,e,t,r,s,i){if(a.kind==="model_judge"){if(!r)return $e(a,null,!1,"Model judge runner is unavailable.",[],!1);if(a.calibrationStatus!=="passed")return $e(a,null,!1,"Model judge calibration has not passed.",[],!1);let d=await r({grader:a,task:e,attempt:t});return $e(a,d.score,d.passed,d.feedback,d.evidenceRefs??[])}if(a.kind==="human")return $e(a,null,!1,"Human review is pending.",[],!1);if(a.kind==="custom_verifier"){if(!s)return $e(a,null,!1,"Sandboxed verifier runner is unavailable.",[],!1);let d=await s({grader:a,task:e,attempt:t,signal:i});return $e(a,d.score,d.passed,d.feedback,d.evidenceRefs??[])}let n=Gi({grader:Qi(a),task:e,evidence:t});return $e(a,n.score,n.passed,n.feedback,[...t.artifactRefs,...t.runtimeEventRefs])}c(Pl,"runGrader");function $e(a,e,t,r,s,i=a.rewardEligible){let n=e!==null&&Number.isFinite(e)?Math.max(0,Math.min(1,e)):null;return{graderId:a.id,graderVersion:a.version,score:n,passed:n!==null&&t,hardGate:a.hardGate,rewardEligible:n!==null&&i,feedback:r,evidenceRefs:s,judge:a.kind==="model_judge"?a.judge:null,calibrationStatus:a.kind==="model_judge"?a.calibrationStatus:"not_applicable"}}c($e,"component");import{access as xl,mkdir as ga,readFile as yE,writeFile as lt}from"node:fs/promises";import se from"node:path";async function Ed(a,e,t={}){let r=U.parse(a),s=Is(r);if(!s.valid)throw new Error(s.issues.map(n=>`${n.code}: ${n.message}`).join(`
|
|
185
185
|
`));await ga(se.join(e,"data"),{recursive:!0}),await ga(se.join(e,"graders"),{recursive:!0}),await ga(se.join(e,"environment"),{recursive:!0}),await ga(se.join(e,"fixtures"),{recursive:!0});let i=[se.join(e,"taskset.json"),se.join(e,"capabilities.json"),se.join(e,"data","tasks.jsonl"),se.join(e,"graders","graders.json"),se.join(e,"fixtures","grader-fixtures.json"),se.join(e,"environment","taskset.ts")];await lt(i[0],Y(r),"utf8"),await lt(i[1],Y(r.capabilities),"utf8"),await lt(i[2],r.tasks.map(n=>JSON.stringify(n)).join(`
|
|
186
186
|
`)+`
|
|
187
187
|
`,"utf8"),await lt(i[3],Y(r.graders),"utf8"),await lt(i[4],Y(r.graderFixtures),"utf8"),await lt(i[5],Ml(r),"utf8");for(let n of t.generatedFiles??[]){let d=Td(n.path,n.role),o=se.join(e,d);await ga(se.dirname(o),{recursive:!0}),await lt(o,n.content,"utf8"),i.push(o)}for(let n of r.graders){if(n.kind!=="custom_verifier")continue;let d=Td(n.module,"verifier");try{await xl(se.join(e,d))}catch{throw new Error(`Custom verifier ${n.id} is missing generated source ${d}.`)}}return{directory:e,files:i,taskset:r}}c(Ed,"buildTaskset");function Td(a,e){let t=a.replaceAll("\\","/");if(se.posix.isAbsolute(t)||t.split("/").includes(".."))throw new Error(`Generated ${e} path must stay inside the Taskset: ${a}.`);let r=e==="verifier"?"graders/":e==="environment"?"environment/":"fixtures/";if(!t.startsWith(r))throw new Error(`Generated ${e} path must start with ${r}.`);return t}c(Td,"safeGeneratedPath");function Ml(a){return`// Generated by @openpond/taskset-sdk.
|
|
@@ -191,7 +191,7 @@ export const tasks = ${JSON.stringify(a.tasks.map(e=>({id:e.id,input:e.input,spl
|
|
|
191
191
|
`,{flag:"wx"});let r=await Ks(a.runPath);if(r){let i=r==="npm"?["ci","--omit=dev","--ignore-scripts","--no-audit","--no-fund"]:["install","--prod","--frozen-lockfile","--ignore-scripts","--config.node-linker=hoisted"];await(a.install??Ul)(r,i,a.runPath)}let s=Xt.join(a.runPath,"node_modules","openpond-agent-sdk");if(!await Ae.lstat(s).catch(()=>null)){let i=JSON.parse(await Ae.readFile(e,"utf8"));if({...Rr(i.dependencies),...Rr(i.optionalDependencies)}["openpond-agent-sdk"])throw new Error("Released Profile Agent declared an SDK dependency that the locked installation did not provide.");let d=await Ao();await Ae.mkdir(Xt.dirname(s),{recursive:!0}),await Ae.symlink(d,s,"dir")}}c(JE,"prepareReleasedProfileActionDependencies");async function Ks(a){let e=Xt.join(a,"package.json"),t=await Ae.lstat(e).catch(()=>null);if(!t)return null;if(!t.isFile()||t.isSymbolicLink())throw new Error("Released Profile Agent package manifest must be a regular file.");let r=JSON.parse(await Ae.readFile(e,"utf8")),s={...Rr(r.dependencies),...Rr(r.optionalDependencies)};if(Object.keys(s).length){for(let[d,o]of Object.entries(s))if(/^(?:file:|link:|workspace:|git\+|https?:)/i.test(o))throw new Error(`Released Profile Agent dependency ${d} must use a portable registry version.`);let i=await _d(Xt.join(a,"package-lock.json")),n=await _d(Xt.join(a,"pnpm-lock.yaml"));if(i===n)throw new Error("Released Profile Agent with third-party dependencies requires exactly one npm or pnpm lockfile.");return i?"npm":"pnpm"}return null}c(Ks,"inspectReleasedProfileActionDependencies");function Rr(a){if(a===void 0)return{};if(!a||typeof a!="object"||Array.isArray(a))throw new Error("Released Profile Agent dependencies must be a package map.");let e=Object.entries(a);if(e.some(([t,r])=>!t||typeof r!="string"||!r.trim()))throw new Error("Released Profile Agent dependencies must name portable versions.");return Object.fromEntries(e)}c(Rr,"dependencyMap");async function _d(a){let e=await Ae.lstat(a).catch(()=>null);if(e&&(!e.isFile()||e.isSymbolicLink()))throw new Error("Released Profile Agent lockfile must be a regular file.");return!!e}c(_d,"regularFile");async function Ul(a,e,t){try{let r=process.platform==="win32"?`${a}.cmd`:a;await Hl(r,e,{cwd:t,timeout:3e5,maxBuffer:1e6,...process.platform==="win32"?{shell:!0}:{}})}catch{throw new Error(`Released Profile Agent locked ${a} dependency installation failed.`)}}c(Ul,"installLockedDependencies");import{constants as Fl,promises as Ke}from"node:fs";import le from"node:path";async function hd(a){let e=await Ke.lstat(a);if(e.isSymbolicLink())throw new Error(`Profile source cannot be a symlink: ${a}`);if(e.isFile())return[le.basename(a)];if(!e.isDirectory())throw new Error(`Profile source is not a file or directory: ${a}`);return Dt(a)}c(hd,"sourceFilesForImport");function gd(a){for(let e of["agent.ts","index.ts","agent/agent.ts","agent.yaml","agent.yml","agent.json"])if(a.includes(e))return e;return a[0]}c(gd,"selectAgentPrimaryFile");async function Je(a,e){let t=await Ke.lstat(a);if(!t.isFile()||t.isSymbolicLink())throw new Error(`Harness import source must be a regular non-symlink file: ${a}`);await Ke.mkdir(le.dirname(e),{recursive:!0}),await Ke.copyFile(a,e,Fl.COPYFILE_EXCL)}c(Je,"copyRegularFile");function wa(a){let e=le.extname(a).toLowerCase();return[".md",".txt"].includes(e)?e===".md"?"text/markdown":"text/plain":[".json"].includes(e)?"application/json":[".yaml",".yml"].includes(e)?"application/yaml":[".ts",".tsx",".js",".mjs",".cjs"].includes(e)?"text/javascript":e===".py"?"text/x-python":"application/octet-stream"}c(wa,"mediaTypeForPath");async function yr(a,e){let t=le.resolve(a,...e.split("/")),r=le.relative(a,t);if(!r||r.startsWith("..")||le.isAbsolute(r))throw new Error(`Harness source path escapes its root: ${e}`);let s=await Ke.lstat(t);if(!s.isFile()||s.isSymbolicLink())throw new Error(`Harness source path must be a regular non-symlink file: ${e}`);let i=await Ke.realpath(t),n=le.relative(await Ke.realpath(a),i);if(n.startsWith("..")||le.isAbsolute(n))throw new Error(`Harness source path resolves outside its root: ${e}`);return t}c(yr,"resolveContainedRegularFile");async function Dt(a,e=a){let t=await Ke.readdir(e,{withFileTypes:!0}),r=[];for(let s of t){if(["node_modules",".git",".openpond"].includes(s.name)||s.name.startsWith(".env"))continue;let i=le.join(e,s.name);if(s.isSymbolicLink())throw new Error(`Harness source cannot contain symlinks: ${le.relative(a,i)}`);if(s.isDirectory())r.push(...await Dt(a,i));else if(s.isFile())r.push(le.relative(a,i).split(le.sep).join("/"));else throw new Error(`Harness source contains an unsupported entry: ${le.relative(a,i)}`)}return r.sort()}c(Dt,"listRegularFiles");function we(a){return a.toLowerCase().replace(/[^a-z0-9_-]+/g,"-").replace(/^-+|-+$/g,"").slice(0,48)||"harness"}c(we,"safeSegment");var jl=new Set(["contentsBase64","contentBase64","fileBase64","bodyBase64"]),Bl=new Set(["command.output","tool.completed","workspace_action_result"]);function kr(a){return Js(ql(a),0,"")}c(kr,"sanitizeRuntimeEvent");function ql(a){if(!Bl.has(a.name)||typeof a.output!="string"||Kl(a.data)||a.output.length<=32e3)return a;let e=a.output.length,t=a.output.slice(0,2e4),r=a.output.slice(-12e3),s=e-t.length-r.length,i=`
|
|
192
192
|
[openpond event output compacted: ${s} chars omitted from ${e} chars]
|
|
193
193
|
`,n=`${t}${i}${r}`,d={schemaVersion:"openpond.runtimeEventOutputCompaction.v1",reason:"large_output",originalChars:e,retainedChars:n.length,omittedChars:s,headChars:t.length,tailChars:r.length};return{...a,output:n,data:Wl(a.data,d)}}c(ql,"compactLargeRuntimeEventOutput");function Wl(a,e){return a===void 0?{outputCompaction:e}:Vs(a)?{...a,outputCompaction:e}:a}c(Wl,"compactedEventData");function Js(a,e,t){if(typeof a=="string")return Yl(a,t);if(!a||typeof a!="object")return a;if(e>=8)return Array.isArray(a)?`[array:${a.length}]`:"[object]";if(Array.isArray(a)){let r=a.slice(0,100).map(s=>Js(s,e+1,t));return a.length>100&&r.push(`[${a.length-100} items truncated]`),r}return Object.fromEntries(Object.entries(a).slice(0,120).map(([r,s])=>[r,Js(s,e+1,r)]))}c(Js,"sanitizeEventValue");function Yl(a,e){return jl.has(e)?`[redacted base64 content: ${$l(a)} bytes]`:a.length<=12e4?a:`${a.slice(0,12e4)}
|
|
194
|
-
[event string truncated: ${a.length-12e4} chars omitted]`}c(Yl,"sanitizeEventString");function $l(a){let e=a.endsWith("==")?2:a.endsWith("=")?1:0;return Math.max(0,Math.floor(a.length*3/4)-e)}c($l,"estimatedBase64Bytes");function Vs(a){return!!a&&typeof a=="object"&&!Array.isArray(a)}c(Vs,"isPlainRecord");function Kl(a){if(!Vs(a))return!1;let e=a.outputCompaction;return Vs(e)&&e.schemaVersion==="openpond.runtimeEventOutputCompaction.v1"}c(Kl,"hasOutputCompaction");async function Sr(a,e){return(await a.allPayloadRows(`SELECT payload FROM ${e} ORDER BY sort_index ASC`)).map(r=>JSON.parse(r.payload))}c(Sr,"readStorePayloads");function Ra(a){let e=a,t=Fi.safeParse(e.openPondCommandAccessMode);return{...e,experience:Jl(e),openPondCommandAccessMode:t.success?t.data:Ui,currentProfile:e.currentProfile??null}}c(Ra,"normalizeSessionPayload");function Jl(a){let e=Co.safeParse(a.experience);return e.success?e.data:!!(a.provider==="codex"||a.codexThreadId||a.systemKind||a.parentSessionId||a.subagentRunId||a.appId||a.workspaceKind||a.workspaceId||a.localProjectId||a.cloudProjectId)?"development":"chat"}c(Jl,"storedSessionExperience");async function wd(a){return{sessions:(await Sr(a,"sessions")).map(Ra),turns:await Sr(a,"turns"),events:(await Sr(a,"events")).map(kr),approvals:await Sr(a,"approvals")}}c(wd,"readStoreData");async function Rd(a,e){let t=pe();await e.exec("BEGIN IMMEDIATE");try{await e.exec("DELETE FROM approvals; DELETE FROM events; DELETE FROM turns; DELETE FROM sessions;");for(let[r,s]of a.sessions.entries())await e.run("INSERT INTO sessions (id, sort_index, payload, updated_at) VALUES (?, ?, ?, ?)",[s.id,r,JSON.stringify(s),s.updatedAt]);for(let[r,s]of a.turns.entries())await e.run("INSERT INTO turns (id, session_id, provider_turn_id, status, sort_index, payload, updated_at) VALUES (?, ?, ?, ?, ?, ?, ?)",[s.id,s.sessionId,s.providerTurnId,s.status,r,JSON.stringify(s),s.completedAt??s.startedAt]);for(let[r,s]of a.events.entries()){let i=r+1;await e.run("INSERT INTO events (id, session_id, turn_id, name, timestamp, sequence, sort_index, payload) VALUES (?, ?, ?, ?, ?, ?, ?, ?)",[s.id,s.sessionId??null,s.turnId??null,s.name,s.timestamp,i,r,JSON.stringify(s)])}for(let[r,s]of a.approvals.entries())await e.run("INSERT INTO approvals (id, session_id, status, sort_index, payload, updated_at) VALUES (?, ?, ?, ?, ?, ?)",[s.id,s.sessionId,s.status,r,JSON.stringify(s),t]);await e.exec("COMMIT")}catch(r){throw await e.exec("ROLLBACK"),r}}c(Rd,"persistStoreData");import op from"node:path";import{randomUUID as Vu}from"node:crypto";import{cp as zu,mkdir as Gu,readdir as Qu,rename as Ri,rm as zc,stat as Zu}from"node:fs/promises";import Ma from"node:path";var fe=_.string().trim().min(1).max(500),Ht=_.iso.datetime({offset:!0}),ya=_.object({schemaVersion:_.literal("openpond.preferenceComparisonReleaseRecord.v1"),id:fe,tasksetId:fe,tasksetRelease:Ne,release:Kn,publishedBy:fe,sourceConsent:_.enum(["authorized","revoked"]),retentionUntil:Ht.nullable(),createdAt:Ht}).strict(),ut=_.object({schemaVersion:_.literal("openpond.preferenceComparisonAssignmentRecord.v1"),id:fe,tasksetId:fe,assignment:Jn,state:_.enum(["queued","in_review","submitted","unreviewable","revoked"]),reviewerKey:fe.nullable(),unreviewableReason:_.string().trim().min(1).max(2e3).nullable(),createdAt:Ht,updatedAt:Ht}).strict().superRefine((a,e)=>{a.state==="unreviewable"&&!a.unreviewableReason&&e.addIssue({code:"custom",path:["unreviewableReason"],message:"Unreviewable assignments require a reason."}),a.state!=="unreviewable"&&a.unreviewableReason&&e.addIssue({code:"custom",path:["unreviewableReason"],message:"Only unreviewable assignments may retain a reason."})}),ka=_.object({schemaVersion:_.literal("openpond.preferenceComparisonSubmissionRecord.v1"),id:fe,tasksetId:fe,assignmentId:fe,reviewerKey:fe,receipt:Vn,submittedAt:Ht}).strict(),zs=_.object({schemaVersion:_.literal("openpond.preferenceComparisonCalibrationRecord.v1"),id:fe,tasksetId:fe,report:zn,createdAt:Ht}).strict();function yd(a,e,t){let r=Fo.safeParse(t.metadata.portableExecutionRef);return a.kind!=="training"||a.status!=="failed"||a.receipt!==null||e.status!=="succeeded"||e.receipt?.schemaVersion!=="openpond.modelRunReceipt.v1"||e.failure!==null||t.status!=="failed"||t.metadata.phase!=="artifact_collection_failed"||t.metadata.modelRunId!==a.id||!r.success||e.receipt.providerRunId!==(r.data.providerJobId??r.data.runId)||e.receipt.assignmentHash!==t.metadata.harnessRunManifestHash?!1:JSON.stringify({...a,status:e.status,receipt:e.receipt,adapterArtifactLineageId:e.adapterArtifactLineageId,failure:null,completedAt:e.completedAt,updatedAt:e.updatedAt})===JSON.stringify(e)}c(yd,"isArtifactCollectionRecoveryTransition");function Gs(a,e){if(a.kind!=="evaluation"||!["failed","cancelled"].includes(a.status)||e.status!=="running"||e.receipt!==null||e.failure!==null||e.completedAt!==null||!a.evaluation)return!1;let t=a.evaluation.attemptPlan.filter(d=>d.stage==="baseline"||d.stage==="adaptation").reduce((d,o)=>d+o.attemptCount,0),r=a.evaluation.attemptPlan.reduce((d,o)=>d+o.attemptCount,0),s=a.evaluation.attemptPlan.find(d=>d.stage==="candidate_adaptation"),i=t+(s?.attemptCount??0);return!(a.evaluationProgress?.stage==="refiner"&&a.evaluationProgress.completedAttempts===t||a.evaluationProgress?.stage==="candidate_adaptation"&&a.evaluationProgress.completedAttempts>=t&&a.evaluationProgress.completedAttempts<=i||["candidate_adaptation","candidate","comparison"].includes(a.evaluationProgress?.stage??"")&&a.evaluationProgress?.completedAttempts===r)||!a.evaluationProgress?.accounting?!1:JSON.stringify({...a,status:"running",receipt:null,failure:null,completedAt:null,updatedAt:e.updatedAt})===JSON.stringify(e)}c(Gs,"isCheckpointResumeTransition");var Re=_.object({id:Z,scope:Z,sourceId:Z,name:_.string().trim().min(1).max(100),keyPrefix:_.string().min(1).max(100),createdAt:_.iso.datetime(),expiresAt:_.iso.datetime(),revokedAt:_.iso.datetime().nullable()}).strict(),Qs=_.string().regex(/^opk_key_[A-Za-z0-9]{16}_[A-Za-z0-9]{48}$/),Nr=_.discriminatedUnion("action",[_.object({action:_.literal("create"),scope:Z,sourceId:Z,name:_.string().trim().min(1).max(100),expiresAt:_.iso.datetime(),operationId:Z,apiKey:Qs}).strict(),_.object({action:_.literal("list"),scope:Z,sourceId:Z,afterId:Z.optional(),limit:_.number().int().min(1).max(100).default(30)}).strict(),_.object({action:_.literal("revoke"),scope:Z,sourceId:Z,id:Z}).strict()]),kd=_.object({credential:Re,apiKey:Qs}).strict(),Sd=_.object({items:_.array(Re).max(100),nextCursor:Z.nullable()}).strict(),Nd=_.object({scope:Z,sourceId:Z}).strict(),vd=_.object({scope:Z,source:wt,taskDefinition:wt,enabled:_.boolean(),allowedSplits:_.array(tt).min(1).max(4)}).strict();function Vl(a,e){let t=Date.parse(_.iso.datetime().parse(a));if(t<=e.getTime()||t>e.getTime()+2160*60*60*1e3)throw new Error("Source credentials must expire within 90 days.")}c(Vl,"assertLearningCredentialExpiry");var Id=_.object({batchId:_.string().trim().min(1).max(500),modelProjectId:_.string().trim().min(1).max(500)}).strict(),Od=_.object({batchId:_.string().min(1),projectId:_.string().min(1),tasksetId:_.string().min(1),releaseId:_.string().min(1),revision:_.number().int().positive(),contentHash:_.string().regex(/^[a-f0-9]{64}$/)}).strict(),ie=class extends Error{static{c(this,"OpenPondLearningError")}constructor(a,e,t,r){super(t),this.status=a,this.code=e,this.details=r,this.name="OpenPondLearningError"}status;code;details},zl=class{static{c(this,"OpenPondLearningClient")}#e;constructor(a){if(!a.apiKey.trim()||!a.scope.trim())throw new Error("Learning API key and scope are required.");let e=new URL(a.baseUrl);if(!["http:","https:"].includes(e.protocol)||e.username||e.password||e.search||e.hash)throw new Error("Learning base URL must be an HTTP(S) endpoint without credentials, query, or fragment.");this.#e={...a,baseUrl:e.toString().replace(/\/+$/,"")}}async command(a,e={}){Pn(a);let t=xn.parse({scope:this.#e.scope,command:a}),r=Xn.parse(await this.#t("commands",t,e));if(r.operationId!==a.operationId)throw new ie(502,"operation_identity_mismatch","Learning response did not match the submitted operation.",null);return r}submitExample(a,e={}){return this.command({action:"submit_example",operationId:a.idempotencyKey,example:a},e)}submitFeedback(a,e={}){return this.command({action:"submit_feedback",operationId:a.idempotencyKey,feedback:a},e)}async get(a,e,t,r={}){let s=He.parse({action:"get",scope:this.#e.scope,kind:a,id:e,...t===void 0?{}:{revision:t}});return de[a].parse(await this.#t("read",s,r))}async inspectEvidence(a,e={}){let t=He.parse({action:"inspect_evidence",scope:this.#e.scope,evidence:a}),r=Mn.parse(await this.#t("read",t,e));if(!C(r.evidence,a))throw new ie(502,"evidence_identity_mismatch","Inspection did not match the requested evidence release.",null);return r}async inspectTaskQueue(a=null,e={}){let t=He.parse({action:"inspect_task_queue",scope:this.#e.scope,modelProjectId:a}),r=An.parse(await this.#t("read",t,e));if(r.modelProjectId!==a)throw new ie(502,"model_identity_mismatch","Task queue did not match the requested Model.",null);return r}async inspectPolicy(a,e={}){let t=He.parse({action:"inspect_policy",scope:this.#e.scope,policy:a}),r=Ln.parse(await this.#t("read",t,e));if(!C(r.policy,a))throw new ie(502,"policy_identity_mismatch","Inspection did not match the requested policy release.",null);return r}async createSourceCredential(a,e={}){let t=Nr.parse({...a,action:"create",scope:this.#e.scope}),r=kd.parse(await this.#t("credentials",t,e));if(this.#a(r.credential,a.sourceId),r.apiKey!==a.apiKey||!a.apiKey.startsWith(`${r.credential.keyPrefix}_`))throw new ie(502,"credential_identity_mismatch","Credential response did not match the prepared credential.",null);return r}async listSourceCredentials(a,e={},t={}){let r=Nr.parse({...e,action:"list",scope:this.#e.scope,sourceId:a}),s=Sd.parse(await this.#t("credentials",r,t));if(s.items.length>(e.limit??30))throw new ie(502,"credential_page_invalid","Credential response exceeded the requested page size.",null);for(let i of s.items)this.#a(i,a);return s}async revokeSourceCredential(a,e,t={}){let r=Nr.parse({action:"revoke",scope:this.#e.scope,sourceId:a,id:e}),s=Re.parse(await this.#t("credentials",r,t));if(this.#a(s,a),s.id!==e||s.revokedAt===null)throw new ie(502,"credential_revocation_mismatch","Credential revocation did not match the requested credential.",null);return s}async sourceConfiguration(a,e={}){let t=Nd.parse({scope:this.#e.scope,sourceId:a}),r=vd.parse(await this.#t("source-config",t,e));if(r.scope!==this.#e.scope||r.source.id!==a)throw new ie(502,"source_identity_mismatch","Source configuration did not match the requested source.",null);return r}#a(a,e){if(a.scope!==this.#e.scope||a.sourceId!==e)throw new ie(502,"credential_scope_mismatch","Credential response did not match the requested source.",null)}async list(a,e={},t={}){let r=He.parse({action:"list",scope:this.#e.scope,kind:a,...e});return _.object({items:_.array(de[a]).max(100),nextCursor:_.string().nullable()}).strict().parse(await this.#t("read",r,t))}async publishBatch(a,e={}){let t=Id.parse(a),r=Od.parse(await this.#t("publish-batch",{...t,scope:this.#e.scope},e));if(r.batchId!==t.batchId)throw new ie(502,"batch_identity_mismatch","Published batch response did not match the requested batch.",null);return r}async#t(a,e,t){Se(e,16777216);let r=await(this.#e.fetch??globalThis.fetch)(`${this.#e.baseUrl}/v1/learning/${a}`,{method:"POST",headers:{Authorization:`Bearer ${this.#e.apiKey}`,"Content-Type":"application/json",Accept:"application/json","X-OpenPond-Team-Id":this.#e.scope},body:JSON.stringify(e),signal:t.signal,redirect:"error"}),s=await Gl(r);if(!r.ok){let i=_.object({code:_.string().optional(),error:_.string().optional()}).passthrough().safeParse(s);throw new ie(r.status,i.success?i.data.code??"learning_request_failed":"learning_request_failed",i.success?i.data.error??`Learning request failed (${r.status}).`:`Learning request failed (${r.status}).`,s)}return s}};async function Gl(a){let t=a.body?.getReader();if(!t)throw new ie(a.status,"empty_response","Learning response was empty.",null);let r=new TextDecoder,s=0,i="";try{for(;;){let d=await t.read();if(d.done)break;if(s+=d.value.byteLength,s>16777216)throw new ie(a.status,"response_too_large","Learning response exceeded 16 MiB; request a smaller page.",null);i+=r.decode(d.value,{stream:!0})}i+=r.decode();let n=JSON.parse(i);return Se(n,16777216),n}finally{await t.cancel(),t.releaseLock()}}c(Gl,"readBoundedLearningResponse");import{backup as nu}from"node:sqlite";import{promises as ni}from"node:fs";import Na from"node:path";var Ld=`
|
|
194
|
+
[event string truncated: ${a.length-12e4} chars omitted]`}c(Yl,"sanitizeEventString");function $l(a){let e=a.endsWith("==")?2:a.endsWith("=")?1:0;return Math.max(0,Math.floor(a.length*3/4)-e)}c($l,"estimatedBase64Bytes");function Vs(a){return!!a&&typeof a=="object"&&!Array.isArray(a)}c(Vs,"isPlainRecord");function Kl(a){if(!Vs(a))return!1;let e=a.outputCompaction;return Vs(e)&&e.schemaVersion==="openpond.runtimeEventOutputCompaction.v1"}c(Kl,"hasOutputCompaction");async function Sr(a,e){return(await a.allPayloadRows(`SELECT payload FROM ${e} ORDER BY sort_index ASC`)).map(r=>JSON.parse(r.payload))}c(Sr,"readStorePayloads");function Ra(a){let e=a,t=Fi.safeParse(e.openPondCommandAccessMode);return{...e,experience:Jl(e),openPondCommandAccessMode:t.success?t.data:Ui,currentProfile:e.currentProfile??null}}c(Ra,"normalizeSessionPayload");function Jl(a){let e=Co.safeParse(a.experience);return e.success?e.data:!!(a.provider==="codex"||a.codexThreadId||a.systemKind||a.parentSessionId||a.subagentRunId||a.appId||a.workspaceKind||a.workspaceId||a.localProjectId||a.cloudProjectId)?"development":"chat"}c(Jl,"storedSessionExperience");async function wd(a){return{sessions:(await Sr(a,"sessions")).map(Ra),turns:await Sr(a,"turns"),events:(await Sr(a,"events")).map(kr),approvals:await Sr(a,"approvals")}}c(wd,"readStoreData");async function Rd(a,e){let t=pe();await e.exec("BEGIN IMMEDIATE");try{await e.exec("DELETE FROM approvals; DELETE FROM events; DELETE FROM turns; DELETE FROM sessions;");for(let[r,s]of a.sessions.entries())await e.run("INSERT INTO sessions (id, sort_index, payload, updated_at) VALUES (?, ?, ?, ?)",[s.id,r,JSON.stringify(s),s.updatedAt]);for(let[r,s]of a.turns.entries())await e.run("INSERT INTO turns (id, session_id, provider_turn_id, status, sort_index, payload, updated_at) VALUES (?, ?, ?, ?, ?, ?, ?)",[s.id,s.sessionId,s.providerTurnId,s.status,r,JSON.stringify(s),s.completedAt??s.startedAt]);for(let[r,s]of a.events.entries()){let i=r+1;await e.run("INSERT INTO events (id, session_id, turn_id, name, timestamp, sequence, sort_index, payload) VALUES (?, ?, ?, ?, ?, ?, ?, ?)",[s.id,s.sessionId??null,s.turnId??null,s.name,s.timestamp,i,r,JSON.stringify(s)])}for(let[r,s]of a.approvals.entries())await e.run("INSERT INTO approvals (id, session_id, status, sort_index, payload, updated_at) VALUES (?, ?, ?, ?, ?, ?)",[s.id,s.sessionId,s.status,r,JSON.stringify(s),t]);await e.exec("COMMIT")}catch(r){throw await e.exec("ROLLBACK"),r}}c(Rd,"persistStoreData");import op from"node:path";import{randomUUID as Vu}from"node:crypto";import{cp as zu,mkdir as Gu,readdir as Qu,rename as Ri,rm as zc,stat as Zu}from"node:fs/promises";import Ma from"node:path";var fe=_.string().trim().min(1).max(500),Ht=_.iso.datetime({offset:!0}),ya=_.object({schemaVersion:_.literal("openpond.preferenceComparisonReleaseRecord.v1"),id:fe,tasksetId:fe,tasksetRelease:Ne,release:Qn,publishedBy:fe,sourceConsent:_.enum(["authorized","revoked"]),retentionUntil:Ht.nullable(),createdAt:Ht}).strict(),ut=_.object({schemaVersion:_.literal("openpond.preferenceComparisonAssignmentRecord.v1"),id:fe,tasksetId:fe,assignment:Zn,state:_.enum(["queued","in_review","submitted","unreviewable","revoked"]),reviewerKey:fe.nullable(),unreviewableReason:_.string().trim().min(1).max(2e3).nullable(),createdAt:Ht,updatedAt:Ht}).strict().superRefine((a,e)=>{a.state==="unreviewable"&&!a.unreviewableReason&&e.addIssue({code:"custom",path:["unreviewableReason"],message:"Unreviewable assignments require a reason."}),a.state!=="unreviewable"&&a.unreviewableReason&&e.addIssue({code:"custom",path:["unreviewableReason"],message:"Only unreviewable assignments may retain a reason."})}),ka=_.object({schemaVersion:_.literal("openpond.preferenceComparisonSubmissionRecord.v1"),id:fe,tasksetId:fe,assignmentId:fe,reviewerKey:fe,receipt:eo,submittedAt:Ht}).strict(),zs=_.object({schemaVersion:_.literal("openpond.preferenceComparisonCalibrationRecord.v1"),id:fe,tasksetId:fe,report:to,createdAt:Ht}).strict();function yd(a,e,t){let r=Fo.safeParse(t.metadata.portableExecutionRef);return a.kind!=="training"||a.status!=="failed"||a.receipt!==null||e.status!=="succeeded"||e.receipt?.schemaVersion!=="openpond.modelRunReceipt.v1"||e.failure!==null||t.status!=="failed"||t.metadata.phase!=="artifact_collection_failed"||t.metadata.modelRunId!==a.id||!r.success||e.receipt.providerRunId!==(r.data.providerJobId??r.data.runId)||e.receipt.assignmentHash!==t.metadata.harnessRunManifestHash?!1:JSON.stringify({...a,status:e.status,receipt:e.receipt,adapterArtifactLineageId:e.adapterArtifactLineageId,failure:null,completedAt:e.completedAt,updatedAt:e.updatedAt})===JSON.stringify(e)}c(yd,"isArtifactCollectionRecoveryTransition");function Gs(a,e){if(a.kind!=="evaluation"||!["failed","cancelled"].includes(a.status)||e.status!=="running"||e.receipt!==null||e.failure!==null||e.completedAt!==null||!a.evaluation)return!1;let t=a.evaluation.attemptPlan.filter(d=>d.stage==="baseline"||d.stage==="adaptation").reduce((d,o)=>d+o.attemptCount,0),r=a.evaluation.attemptPlan.reduce((d,o)=>d+o.attemptCount,0),s=a.evaluation.attemptPlan.find(d=>d.stage==="candidate_adaptation"),i=t+(s?.attemptCount??0);return!(a.evaluationProgress?.stage==="refiner"&&a.evaluationProgress.completedAttempts===t||a.evaluationProgress?.stage==="candidate_adaptation"&&a.evaluationProgress.completedAttempts>=t&&a.evaluationProgress.completedAttempts<=i||["candidate_adaptation","candidate","comparison"].includes(a.evaluationProgress?.stage??"")&&a.evaluationProgress?.completedAttempts===r)||!a.evaluationProgress?.accounting?!1:JSON.stringify({...a,status:"running",receipt:null,failure:null,completedAt:null,updatedAt:e.updatedAt})===JSON.stringify(e)}c(Gs,"isCheckpointResumeTransition");var Re=_.object({id:Z,scope:Z,sourceId:Z,name:_.string().trim().min(1).max(100),keyPrefix:_.string().min(1).max(100),createdAt:_.iso.datetime(),expiresAt:_.iso.datetime(),revokedAt:_.iso.datetime().nullable()}).strict(),Qs=_.string().regex(/^opk_key_[A-Za-z0-9]{16}_[A-Za-z0-9]{48}$/),Nr=_.discriminatedUnion("action",[_.object({action:_.literal("create"),scope:Z,sourceId:Z,name:_.string().trim().min(1).max(100),expiresAt:_.iso.datetime(),operationId:Z,apiKey:Qs}).strict(),_.object({action:_.literal("list"),scope:Z,sourceId:Z,afterId:Z.optional(),limit:_.number().int().min(1).max(100).default(30)}).strict(),_.object({action:_.literal("revoke"),scope:Z,sourceId:Z,id:Z}).strict()]),kd=_.object({credential:Re,apiKey:Qs}).strict(),Sd=_.object({items:_.array(Re).max(100),nextCursor:Z.nullable()}).strict(),Nd=_.object({scope:Z,sourceId:Z}).strict(),vd=_.object({scope:Z,source:wt,taskDefinition:wt,enabled:_.boolean(),allowedSplits:_.array(tt).min(1).max(4)}).strict();function Vl(a,e){let t=Date.parse(_.iso.datetime().parse(a));if(t<=e.getTime()||t>e.getTime()+2160*60*60*1e3)throw new Error("Source credentials must expire within 90 days.")}c(Vl,"assertLearningCredentialExpiry");var Id=_.object({batchId:_.string().trim().min(1).max(500),modelProjectId:_.string().trim().min(1).max(500)}).strict(),Od=_.object({batchId:_.string().min(1),projectId:_.string().min(1),tasksetId:_.string().min(1),releaseId:_.string().min(1),revision:_.number().int().positive(),contentHash:_.string().regex(/^[a-f0-9]{64}$/)}).strict(),ie=class extends Error{static{c(this,"OpenPondLearningError")}constructor(a,e,t,r){super(t),this.status=a,this.code=e,this.details=r,this.name="OpenPondLearningError"}status;code;details},zl=class{static{c(this,"OpenPondLearningClient")}#e;constructor(a){if(!a.apiKey.trim()||!a.scope.trim())throw new Error("Learning API key and scope are required.");let e=new URL(a.baseUrl);if(!["http:","https:"].includes(e.protocol)||e.username||e.password||e.search||e.hash)throw new Error("Learning base URL must be an HTTP(S) endpoint without credentials, query, or fragment.");this.#e={...a,baseUrl:e.toString().replace(/\/+$/,"")}}async command(a,e={}){Pn(a);let t=xn.parse({scope:this.#e.scope,command:a}),r=Xn.parse(await this.#t("commands",t,e));if(r.operationId!==a.operationId)throw new ie(502,"operation_identity_mismatch","Learning response did not match the submitted operation.",null);return r}submitExample(a,e={}){return this.command({action:"submit_example",operationId:a.idempotencyKey,example:a},e)}submitFeedback(a,e={}){return this.command({action:"submit_feedback",operationId:a.idempotencyKey,feedback:a},e)}async get(a,e,t,r={}){let s=He.parse({action:"get",scope:this.#e.scope,kind:a,id:e,...t===void 0?{}:{revision:t}});return de[a].parse(await this.#t("read",s,r))}async inspectEvidence(a,e={}){let t=He.parse({action:"inspect_evidence",scope:this.#e.scope,evidence:a}),r=Mn.parse(await this.#t("read",t,e));if(!C(r.evidence,a))throw new ie(502,"evidence_identity_mismatch","Inspection did not match the requested evidence release.",null);return r}async inspectTaskQueue(a=null,e={}){let t=He.parse({action:"inspect_task_queue",scope:this.#e.scope,modelProjectId:a}),r=An.parse(await this.#t("read",t,e));if(r.modelProjectId!==a)throw new ie(502,"model_identity_mismatch","Task queue did not match the requested Model.",null);return r}async inspectPolicy(a,e={}){let t=He.parse({action:"inspect_policy",scope:this.#e.scope,policy:a}),r=Ln.parse(await this.#t("read",t,e));if(!C(r.policy,a))throw new ie(502,"policy_identity_mismatch","Inspection did not match the requested policy release.",null);return r}async createSourceCredential(a,e={}){let t=Nr.parse({...a,action:"create",scope:this.#e.scope}),r=kd.parse(await this.#t("credentials",t,e));if(this.#a(r.credential,a.sourceId),r.apiKey!==a.apiKey||!a.apiKey.startsWith(`${r.credential.keyPrefix}_`))throw new ie(502,"credential_identity_mismatch","Credential response did not match the prepared credential.",null);return r}async listSourceCredentials(a,e={},t={}){let r=Nr.parse({...e,action:"list",scope:this.#e.scope,sourceId:a}),s=Sd.parse(await this.#t("credentials",r,t));if(s.items.length>(e.limit??30))throw new ie(502,"credential_page_invalid","Credential response exceeded the requested page size.",null);for(let i of s.items)this.#a(i,a);return s}async revokeSourceCredential(a,e,t={}){let r=Nr.parse({action:"revoke",scope:this.#e.scope,sourceId:a,id:e}),s=Re.parse(await this.#t("credentials",r,t));if(this.#a(s,a),s.id!==e||s.revokedAt===null)throw new ie(502,"credential_revocation_mismatch","Credential revocation did not match the requested credential.",null);return s}async sourceConfiguration(a,e={}){let t=Nd.parse({scope:this.#e.scope,sourceId:a}),r=vd.parse(await this.#t("source-config",t,e));if(r.scope!==this.#e.scope||r.source.id!==a)throw new ie(502,"source_identity_mismatch","Source configuration did not match the requested source.",null);return r}#a(a,e){if(a.scope!==this.#e.scope||a.sourceId!==e)throw new ie(502,"credential_scope_mismatch","Credential response did not match the requested source.",null)}async list(a,e={},t={}){let r=He.parse({action:"list",scope:this.#e.scope,kind:a,...e});return _.object({items:_.array(de[a]).max(100),nextCursor:_.string().nullable()}).strict().parse(await this.#t("read",r,t))}async publishBatch(a,e={}){let t=Id.parse(a),r=Od.parse(await this.#t("publish-batch",{...t,scope:this.#e.scope},e));if(r.batchId!==t.batchId)throw new ie(502,"batch_identity_mismatch","Published batch response did not match the requested batch.",null);return r}async#t(a,e,t){Se(e,16777216);let r=await(this.#e.fetch??globalThis.fetch)(`${this.#e.baseUrl}/v1/learning/${a}`,{method:"POST",headers:{Authorization:`Bearer ${this.#e.apiKey}`,"Content-Type":"application/json",Accept:"application/json","X-OpenPond-Team-Id":this.#e.scope},body:JSON.stringify(e),signal:t.signal,redirect:"error"}),s=await Gl(r);if(!r.ok){let i=_.object({code:_.string().optional(),error:_.string().optional()}).passthrough().safeParse(s);throw new ie(r.status,i.success?i.data.code??"learning_request_failed":"learning_request_failed",i.success?i.data.error??`Learning request failed (${r.status}).`:`Learning request failed (${r.status}).`,s)}return s}};async function Gl(a){let t=a.body?.getReader();if(!t)throw new ie(a.status,"empty_response","Learning response was empty.",null);let r=new TextDecoder,s=0,i="";try{for(;;){let d=await t.read();if(d.done)break;if(s+=d.value.byteLength,s>16777216)throw new ie(a.status,"response_too_large","Learning response exceeded 16 MiB; request a smaller page.",null);i+=r.decode(d.value,{stream:!0})}i+=r.decode();let n=JSON.parse(i);return Se(n,16777216),n}finally{await t.cancel(),t.releaseLock()}}c(Gl,"readBoundedLearningResponse");import{backup as nu}from"node:sqlite";import{promises as ni}from"node:fs";import Na from"node:path";var Ld=`
|
|
195
195
|
CREATE TABLE IF NOT EXISTS sessions (
|
|
196
196
|
id TEXT PRIMARY KEY,
|
|
197
197
|
sort_index INTEGER NOT NULL,
|
|
@@ -2400,7 +2400,7 @@ CREATE INDEX IF NOT EXISTS task_inventory_list ON task_inventory_rows(profile_id
|
|
|
2400
2400
|
channel_revision = ?, current_release_hash = ?, payload = ?, updated_at = ?
|
|
2401
2401
|
WHERE id = ?`,[t.ownerScope.kind,t.ownerScope.id,t.location,t.revision,t.sourceRevision,t.currentChannel.revision,t.currentChannel.release?.contentHash??null,JSON.stringify(t),t.updatedAt,t.id])}async readHarnessReleaseRecord(e){let t=await this.get("SELECT payload FROM harness_release_records WHERE content_hash = ?",[e]);return t?Ve.parse(JSON.parse(t.payload)):null}async readHarnessAdvanceReceipt(e){let t=await this.get("SELECT payload FROM harness_advance_receipts WHERE id = ?",[e]);return t?Ba.parse(JSON.parse(t.payload)):null}async insertHarnessAdvanceReceipt(e){let t=Ba.parse(e);await this.run(`INSERT INTO harness_advance_receipts (
|
|
2402
2402
|
content_hash, id, workspace_id, decision, payload, created_at
|
|
2403
|
-
) VALUES (?, ?, ?, ?, ?, ?)`,[t.contentHash,t.id,t.workspaceId,t.decision,JSON.stringify(t),t.createdAt])}};function Tp(a){if(!a||typeof a!="object")return!1;let e=a;return typeof e.id=="string"&&typeof e.contentHash=="string"}c(Tp,"isReleaseRef");function Li(a,e){return a.id===e.id&&a.contentHash===e.contentHash}c(Li,"sameReleaseRef");var _t="harness.json",ul=25e7;function Ep(a,e){let t=`${we(e)}-${g(e).slice(0,16)}`,r=L.join(a,"library","harnesses","workspaces",t);return{root:r,source:L.join(r,"source")}}c(Ep,"localHarnessWorkspacePaths");async function gv(a){return as({...a,initializeSource:c(e=>hp(e,a.name),"initializeSource")})}c(gv,"createLocalHarnessWorkspace");async function wv(a){if(a.profile.mode!=="local"||!a.profile.sourcePath)throw new Error("Only a loaded local Profile with a source path can be imported.");return as({...a,compilationWorkspaceId:a.repositoryId?ml(a.repositoryId,a.name):a.id,initializeSource:c(e=>fl(e,a.name,a.profile,a.sourceRevision,a.repositoryId),"initializeSource")})}c(wv,"importProfileIntoLocalHarnessWorkspace");function ml(a,e){return`profile-source-${g([a,e]).slice(0,24)}`}c(ml,"profileCompilationWorkspaceId");async function Rv(a){if(a.profile.mode!=="local"||!a.profile.sourcePath)throw new Error("Only a loaded Profile source can be compiled.");let e=L.join(a.storeDir,"library","harnesses","profile-previews");await b.mkdir(e,{recursive:!0});let t=L.join(e,bi());try{await fl(t,a.name,a.profile,a.sourceRevision,a.repositoryId);let r=a.repositoryId?ml(a.repositoryId,a.name):a.workspaceId;return await Ai({workspaceId:r,sourceDir:t})}finally{await b.rm(t,{recursive:!0,force:!0})}}c(Rv,"compileProfileHarnessSource");async function yv(a){let e=await Ai({workspaceId:a.id,sourceDir:a.sourceDir}),t=await a.store.getHarnessWorkspace(a.id);if(t){let r=t.currentChannel.release?await a.store.getHarnessReleaseRecord(t.currentChannel.release.contentHash):null;if(t.ownerScope.id!==a.ownerId||t.sourceRevision!==e.sourceRevision||r?.harnessRelease.contentHash!==e.harnessRelease.contentHash)throw new Error("Configured Harness source changed; use a new workspace ID for the new release.");return}await as({...a,initializeSource:c(async r=>{await b.mkdir(r,{recursive:!0}),await b.writeFile(L.join(r,_t),Y(e.manifest));for(let s of e.sourceFiles){let i=L.join(r,s.path);await b.mkdir(L.dirname(i),{recursive:!0}),await b.writeFile(i,s.bytes)}},"initializeSource")})}c(yv,"importLocalHarnessWorkspaceSource");async function kv(a){let e=await a.store.getHarnessReleaseRecord(a.sourceRelease.contentHash);if(!e||e.harnessRelease.id!==a.sourceRelease.id)throw new Error("Harness workspace fork source release is unavailable.");return as({...a,initializeSource:c(async t=>{await b.cp(L.join(e.bundlePath,"source"),t,{recursive:!0,force:!1,errorOnExist:!0,verbatimSymlinks:!1}),await Ci(t,a.name)},"initializeSource")})}c(kv,"forkLocalHarnessWorkspaceFromRelease");async function as(a){let e=a.now??(()=>new Date().toISOString()),t=Ep(a.storeDir,a.id),r=L.dirname(t.root);await b.mkdir(r,{recursive:!0});let s=L.join(r,`.${L.basename(t.root)}.creating-${bi()}`),i=L.join(s,"source");try{await a.initializeSource(i),await b.rename(s,t.root)}catch(n){throw await b.rm(s,{recursive:!0,force:!0}).catch(()=>{}),n}try{let n=await Ai({workspaceId:a.compilationWorkspaceId??a.id,sourceDir:t.source}),d=await _p({storeDir:a.storeDir,workspaceId:a.id,compiled:n,createdAt:e()}),o=e(),u=_e.parse({schemaVersion:"openpond.harnessWorkspace.v1",id:a.id,ownerScope:{kind:"personal",id:a.ownerId},name:a.name,location:"local",sourceRevision:n.sourceRevision,revision:0,dirty:!1,currentChannel:{name:"personal",release:{id:n.harnessRelease.id,contentHash:n.harnessRelease.contentHash},revision:1},createdAt:o,updatedAt:o,metadata:{sourceLayout:"openpond.harnessSourceManifest.v1",...a.selectionEligible===!1?{selectionEligible:!1}:{}}});return await a.store.createHarnessWorkspaceWithRelease({workspace:u,release:d})}catch(n){throw await b.rm(t.root,{recursive:!0,force:!0}).catch(()=>{}),n}}c(as,"createLocalHarnessWorkspaceFromInitializer");async function Ai(a){let e=L.resolve(a.sourceDir),t=L.join(e,_t),r=xt.parse(JSON.parse(await b.readFile(t,"utf8"))),s=new Set(r.files.map(E=>E.path)),i=(await Dt(e)).filter(E=>E!==_t),n=i.filter(E=>!s.has(E)),d=[...s].filter(E=>!i.includes(E));if(n.length||d.length)throw new Error(`Harness source manifest mismatch. Unlisted: ${n.join(", ")||"none"}; missing: ${d.join(", ")||"none"}.`);let o=[];for(let E of r.files){let k=await yr(e,E.path),A=await b.readFile(k);if(A.byteLength>ul)throw new Error(`Harness source file ${E.path} exceeds ${ul} bytes.`);o.push({path:E.path,bytes:A,asset:{id:E.id,path:E.path,contentHash:ze(A),sizeBytes:A.byteLength,mediaType:E.mediaType,visibility:E.visibility}})}let u=o.find(({path:E})=>E==="workflows/catalog.json");if(u){let E=r.files.find(H=>H.path===u.path);if(E?.kind!=="workflow"||E.visibility!=="policy")throw new Error("Profile workflow catalog requires a policy-visible workflow declaration.");let k=o.find(({path:H})=>H==="workflows/actions.json"),A=r.files.find(H=>H.path==="workflows/actions.json");if(!k||A?.visibility!=="policy")throw new Error("Profile workflow catalog requires a released action inventory.");let N=Vi.parse(JSON.parse(new TextDecoder().decode(k.bytes))).actions,P=new Set;for(let H of N){if(P.has(H.id))throw new Error(`Duplicate Profile workflow action ${H.id}.`);if(P.add(H.id),!ls(H.inputSchema).valid)throw new Error(`Profile workflow action ${H.id} has an invalid input schema.`);if(!r.files.some(O=>O.path.startsWith(`agents/${H.agentId}/`)))throw new Error(`Profile workflow action ${H.id} lacks its Agent source.`)}let j=cs({catalog:JSON.parse(new TextDecoder().decode(u.bytes)),sourcePaths:new Set(r.files.filter(H=>H.kind==="skill").map(H=>H.path)),actionIds:P});Tl(j)}let l=g({manifest:r,files:o.map(({path:E,asset:k})=>({path:E,contentHash:k.contentHash,sizeBytes:k.sizeBytes}))}),T=c(E=>o.filter(({path:k})=>r.files.find(A=>A.path===k)?.kind===E).map(({asset:k})=>k),"byKind"),p=T("dependency_lock")[0],m=T("program")[0],f=r.files.filter(E=>E.portability==="local_only").map(E=>E.id),h=r.files.filter(E=>E.visibility==="host_private").map(E=>E.id),w=[...f.map(E=>`Asset ${E} is local-only.`),...h.map(E=>`Asset ${E} is host-private.`)],R={id:`harness-source-${l.slice(0,24)}`,contentHash:l},y=ns({schemaVersion:"openpond.agentSnapshot.v2",id:`agent-snapshot-${g([l,r.toolDeclarations]).slice(0,24)}`,sourceRelease:R,instructions:T("instruction"),skills:T("skill"),agents:T("agent"),toolDeclarations:r.toolDeclarations,capabilityRequirements:r.capabilityRequirements,dependencyLock:p,portability:{portable:w.length===0,blockers:w,localOnlyAssetRefs:f,hostPrivateAssetRefs:h},metadata:{workspaceId:a.workspaceId,sourceRevision:l,sourceLayout:r.schemaVersion}}),S=os({schemaVersion:"openpond.harnessRelease.v2",id:`harness-${g([y.contentHash,m.contentHash,r.lifecycle]).slice(0,24)}`,agentSnapshot:{id:y.id,contentHash:y.contentHash},program:m,tools:r.toolDeclarations,lifecycle:r.lifecycle,graderInterface:r.graderInterface,files:o.map(({asset:E})=>E),metadata:{runtimeProtocol:r.runtimeProtocol,sourceRevision:l,sourceLayout:r.schemaVersion,...r.metadata.importedFrom==="openpond.profile"?{profile:{id:r.metadata.profileId,sourceRevision:r.metadata.profileGitHead??l,...r.metadata.profileRepositoryId?{repositoryId:r.metadata.profileRepositoryId}:{}}}:{}}});return{manifest:r,sourceRevision:l,agentSnapshot:y,harnessRelease:S,sourceFiles:o}}c(Ai,"compileLocalHarnessSource");async function _p(a){let e=L.join(a.storeDir,"library","harnesses","releases"),t=L.join(e,a.compiled.harnessRelease.contentHash);await b.mkdir(e,{recursive:!0});let r=L.join(e,`.${a.compiled.harnessRelease.contentHash}.materializing-${bi()}`);try{await b.mkdir(L.join(r,"source"),{recursive:!0});for(let s of a.compiled.sourceFiles){let i=L.join(r,"source",...s.path.split("/"));await b.mkdir(L.dirname(i),{recursive:!0}),await b.writeFile(i,s.bytes,{flag:"wx"})}await b.writeFile(L.join(r,"source",_t),Y(a.compiled.manifest),{flag:"wx"}),await b.writeFile(L.join(r,"agent-snapshot.json"),Y(a.compiled.agentSnapshot),{flag:"wx"}),await b.writeFile(L.join(r,"harness-release.json"),Y(a.compiled.harnessRelease),{flag:"wx"});try{await b.rename(r,t)}catch(s){if(s.code!=="EEXIST"&&s.code!=="ENOTEMPTY")throw s;await pl(t,a.compiled),await b.rm(r,{recursive:!0,force:!0})}await pl(t,a.compiled)}catch(s){throw await b.rm(r,{recursive:!0,force:!0}).catch(()=>{}),s}return Ve.parse({schemaVersion:"openpond.localHarnessReleaseRecord.v1",workspaceId:a.workspaceId,sourceRevision:a.compiled.sourceRevision,agentSnapshot:a.compiled.agentSnapshot,harnessRelease:a.compiled.harnessRelease,bundlePath:t,createdAt:a.createdAt})}c(_p,"materializeLocalHarnessRelease");async function hp(a,e){let t=xt.parse({schemaVersion:"openpond.harnessSourceManifest.v1",name:e,files:[{id:"dependency-lock",kind:"dependency_lock",path:"dependency-lock.json",parentId:null,mediaType:"application/json",visibility:"policy",portability:"portable"},{id:"agent-runtime-program",kind:"program",path:"program.json",parentId:null,mediaType:"application/json",visibility:"policy",portability:"portable"}],toolDeclarations:[],capabilityRequirements:[],lifecycle:{create:!0,reset:!0,step:!0,collect:!0,destroy:!0,resetScope:"attempt"},graderInterface:{visibleEvidence:["output","runtime_events","artifacts"],privilegedEvidence:["expected_output","private_verifier"],privateVerifierIsolation:!0},runtimeProtocol:"openpond.agent-runtime.v1",metadata:{}});await b.mkdir(a,{recursive:!0}),await b.writeFile(L.join(a,"dependency-lock.json"),Y({dependencies:{}}),{flag:"wx"}),await b.writeFile(L.join(a,"program.json"),Y({runtimeProtocol:"openpond.agent-runtime.v1"}),{flag:"wx"}),await b.writeFile(L.join(a,_t),Y(t),{flag:"wx"}),await Ci(a,e)}c(hp,"writeDefaultHarnessSource");async function fl(a,e,t,r,s){let i=L.resolve(t.sourcePath),n=[],d=new Set,o=c(N=>{let P=N.id;d.has(P)&&(P=`${P}-${g(N.path).slice(0,8)}`),d.add(P);let j={...N,id:P};return n.push(j),j},"addDeclaration");await b.mkdir(a,{recursive:!0});for(let N of t.skills.filter(P=>P.enabled)){if(N.validationStatus!=="valid")throw new Error(`Cannot import invalid Profile Skill ${N.name}: ${N.validationMessages.join(" ")}`);let P=L.dirname(L.join(i,N.path)),j=`skills/${we(N.name)}/SKILL.md`;await Je(L.join(P,"SKILL.md"),L.join(a,...j.split("/")));let H=o({id:`skill-${we(N.name)}`,kind:"skill",path:j,parentId:null,mediaType:"text/markdown",visibility:"policy",portability:"portable"});for(let O of N.resourceFiles){let q=`skills/${we(N.name)}/${O.split(L.sep).join("/")}`;await Je(L.join(P,O),L.join(a,...q.split("/"))),o({id:`skill-resource-${we(N.name)}-${g(O).slice(0,12)}`,kind:"skill_resource",path:q,parentId:H.id,mediaType:wa(q),visibility:"policy",portability:"portable"})}}for(let N of t.agents.filter(P=>P.enabled)){let P=L.resolve(i,N.path),j=await hd(P);if(j.length===0)throw new Error(`Profile Agent ${N.id} has no source files.`);let H=gd(j);for(let O of j){let q=`agents/${we(N.id)}/${O}`,K=(await b.stat(P)).isDirectory()?L.join(P,...O.split("/")):P;await Je(K,L.join(a,...q.split("/"))),o({id:O===H?`agent-${we(N.id)}`:`agent-asset-${we(N.id)}-${g(O).slice(0,12)}`,kind:O===H?"agent":"asset",path:q,parentId:null,mediaType:wa(q),visibility:"policy",portability:"portable"})}await Ks(L.join(a,"agents",we(N.id)))}let u=new Set,l=new Set(t.agents.filter(N=>N.enabled).map(N=>N.id)),T=t.actionCatalog.filter(N=>N.agentId&&l.has(N.agentId)).map(N=>({id:N.id,agentId:we(N.agentId),sourceActionId:N.sourceActionId??N.id,inputSchema:typeof N.inputSchema=="object"&&N.inputSchema!==null?N.inputSchema:{type:"object",additionalProperties:!0}})),p=new Set(T.map(N=>N.id)),m=L.join(i,"workflows","catalog.json"),f=await b.lstat(m).catch(()=>null),h=(await Dt(i)).filter(N=>N.startsWith("workflows/")),w=h.some(N=>/^workflows\/[^/]+\/(PROMPT\.md|ACTION\.json)$/.test(N));if(w&&f)throw new Error("Authored Workflow packages and legacy workflows/catalog.json cannot coexist; migrate the catalog first.");if(f||w||T.length){if(f&&(!f.isFile()||f.isSymbolicLink()))throw new Error("Profile workflow catalog must be a regular file.");let N=w?zi({files:new Map(await Promise.all(h.map(async O=>[O,await b.readFile(await yr(i,O),"utf8")]))),skillPaths:new Set(n.filter(O=>O.kind==="skill").map(O=>O.path)),actionIds:p}):null,P=N?Buffer.from(Y(N.catalog)):f?await b.readFile(m):Buffer.from(Y({schemaVersion:"openpond.profileWorkflows.v1",workflows:[]})),j=cs({catalog:JSON.parse(P.toString("utf8")),sourcePaths:new Set(n.filter(O=>O.kind==="skill").map(O=>O.path)),actionIds:new Set(T.map(O=>O.id))});for(let O of j.workflows)u.add(O.id);Tl(j);let H="workflows/catalog.json";await b.mkdir(L.join(a,"workflows"),{recursive:!0}),await b.writeFile(L.join(a,"workflows","catalog.json"),P,{flag:"wx"});for(let O of N?.referencedPaths??[])await Je(L.join(i,...O.split("/")),L.join(a,...O.split("/"))),o({id:`profile-workflow-source-${g(O).slice(0,16)}`,kind:"asset",path:O,parentId:null,mediaType:wa(O),visibility:"policy",portability:"portable"});o({id:"profile-workflows",kind:"workflow",path:H,parentId:null,mediaType:"application/json",visibility:"policy",portability:"portable"})}(f||w||T.length)&&(await b.writeFile(L.join(a,"workflows","actions.json"),Y({schemaVersion:"openpond.profileWorkflowActions.v1",actions:T}),{flag:"wx"}),o({id:"profile-workflow-actions",kind:"asset",path:"workflows/actions.json",parentId:null,mediaType:"application/json",visibility:"policy",portability:"portable"}));let R=L.join(i,"evals","catalog.json"),y=await b.lstat(R).catch(()=>null),S=(await Dt(i)).filter(N=>/^workflows\/[^/]+\/evals\/[^/]+\.json$/.test(N)||/^evals\/(definitions|suites)\/[^/]+\.json$/.test(N));if(y&&S.length)throw new Error("Authored evaluation definitions and legacy evals/catalog.json cannot coexist; migrate the catalog first.");if(y||S.length){if(y&&(!y.isFile()||y.isSymbolicLink()))throw new Error("Profile evaluation catalog must be a regular file.");let N=[],P=[];for(let D of S){let V=JSON.parse(await b.readFile(await yr(i,D),"utf8"));if(D.startsWith("evals/suites/"))P.push(Qn.parse(V));else{let z=Gn.parse(V),ne=/^workflows\/([^/]+)\/evals\//.exec(D)?.[1];if(ne&&(z.target.kind!=="workflow"||z.target.workflowId!==ne))throw new Error(`Profile evaluation ${z.id} must target its containing Workflow ${ne}.`);N.push(z)}}let j=S.length?Buffer.from(Y({schemaVersion:"openpond.profileEvaluations.v1",definitions:N.sort((D,V)=>D.id.localeCompare(V.id)),suites:P.sort((D,V)=>D.id.localeCompare(V.id))})):await b.readFile(R),{catalog:H}=to({catalog:JSON.parse(j.toString("utf8")),workflowIds:u,skillPaths:new Set(n.filter(D=>D.kind==="skill").map(D=>D.path)),actionIds:p});await b.mkdir(L.join(a,"evals"),{recursive:!0}),await b.writeFile(L.join(a,"evals","catalog.json"),j,{flag:"wx"});for(let D of S)await Je(L.join(i,...D.split("/")),L.join(a,...D.split("/"))),o({id:`profile-evaluation-source-${g(D).slice(0,16)}`,kind:"asset",path:D,parentId:null,mediaType:"application/json",visibility:"verifier",portability:"portable"});o({id:"profile-evaluations",kind:"asset",path:"evals/catalog.json",parentId:null,mediaType:"application/json",visibility:"verifier",portability:"portable"});let O=new Set(H.definitions.map(D=>D.tasksetRelease.contentHash)),q=L.join(i,"evals","tasksets"),K=await b.lstat(q).catch(()=>null);if(K&&(!K.isDirectory()||K.isSymbolicLink()))throw new Error("Profile evaluation Taskset directory must be a regular directory.");for(let D of O){let V=L.join(q,`${D}.json`),z=await b.lstat(V).catch(()=>null);if(!z)throw new Error(`Profile evaluation Taskset package ${D} is missing.`);if(!z.isFile()||z.isSymbolicLink())throw new Error("Profile evaluation Taskset package must be a regular file.");let ne=je(JSON.parse(await b.readFile(V,"utf8")));if(ne.taskset.contentHash!==D||!H.definitions.some(xi=>xi.tasksetRelease.contentHash===D&&xi.tasksetRelease.id===ne.taskset.id))throw new Error("Profile evaluation Taskset package differs from its catalog reference.");let Pi=`evals/tasksets/${D}.json`;await Je(V,L.join(a,...Pi.split("/"))),o({id:`profile-evaluation-taskset-${D.slice(0,16)}`,kind:"asset",path:Pi,parentId:null,mediaType:"application/json",visibility:"verifier",portability:"portable"})}}let E=await gp(t,r),k=`dependency-lock/${E.name}`;await b.mkdir(L.join(a,"dependency-lock"),{recursive:!0}),E.sourcePath?await Je(E.sourcePath,L.join(a,...k.split("/"))):await b.writeFile(L.join(a,...k.split("/")),Y(E.generated),{flag:"wx"}),o({id:"dependency-lock",kind:"dependency_lock",path:k,parentId:null,mediaType:wa(k),visibility:"policy",portability:"portable"}),await b.writeFile(L.join(a,"program.json"),Y({runtimeProtocol:"openpond.agent-runtime.v1"}),{flag:"wx"}),o({id:"agent-runtime-program",kind:"program",path:"program.json",parentId:null,mediaType:"application/json",visibility:"policy",portability:"portable"});let A=xt.parse({schemaVersion:"openpond.harnessSourceManifest.v1",name:e,files:n,toolDeclarations:[],capabilityRequirements:[],lifecycle:{create:!0,reset:!0,step:!0,collect:!0,destroy:!0,resetScope:"attempt"},graderInterface:{visibleEvidence:["output","runtime_events","artifacts"],privilegedEvidence:["expected_output","private_verifier"],privateVerifierIsolation:!0},runtimeProtocol:"openpond.agent-runtime.v1",metadata:{importedFrom:"openpond.profile",profileId:t.activeProfile,...s?{profileRepositoryId:s}:{},profileGitHead:r??t.git?.head??null,excludedEvalCount:t.evals.length,actionConversionPending:t.actionCatalog.length>0}});await b.writeFile(L.join(a,_t),Y(A),{flag:"wx"}),await Ci(a,e)}c(fl,"writeImportedProfileSource");function Tl(a){for(let e of a.workflows){let t=ls(e.inputSchema);if(!t.valid)throw new Error(`Profile workflow ${e.id} has an invalid input schema: ${t.issues[0]?.message??"schema mismatch"}`)}}c(Tl,"assertProfileWorkflowInputSchemas");async function Ci(a,e){let t=L.join(a,_t),r=xt.parse(JSON.parse(await b.readFile(t,"utf8")));if(r.files.some(o=>o.kind==="instruction"))return;let s="instructions/system.md";await b.mkdir(L.join(a,"instructions"),{recursive:!0}),await b.writeFile(L.join(a,...s.split("/")),`# ${e}
|
|
2403
|
+
) VALUES (?, ?, ?, ?, ?, ?)`,[t.contentHash,t.id,t.workspaceId,t.decision,JSON.stringify(t),t.createdAt])}};function Tp(a){if(!a||typeof a!="object")return!1;let e=a;return typeof e.id=="string"&&typeof e.contentHash=="string"}c(Tp,"isReleaseRef");function Li(a,e){return a.id===e.id&&a.contentHash===e.contentHash}c(Li,"sameReleaseRef");var _t="harness.json",ul=25e7;function Ep(a,e){let t=`${we(e)}-${g(e).slice(0,16)}`,r=L.join(a,"library","harnesses","workspaces",t);return{root:r,source:L.join(r,"source")}}c(Ep,"localHarnessWorkspacePaths");async function gv(a){return as({...a,initializeSource:c(e=>hp(e,a.name),"initializeSource")})}c(gv,"createLocalHarnessWorkspace");async function wv(a){if(a.profile.mode!=="local"||!a.profile.sourcePath)throw new Error("Only a loaded local Profile with a source path can be imported.");return as({...a,compilationWorkspaceId:a.repositoryId?ml(a.repositoryId,a.name):a.id,initializeSource:c(e=>fl(e,a.name,a.profile,a.sourceRevision,a.repositoryId),"initializeSource")})}c(wv,"importProfileIntoLocalHarnessWorkspace");function ml(a,e){return`profile-source-${g([a,e]).slice(0,24)}`}c(ml,"profileCompilationWorkspaceId");async function Rv(a){if(a.profile.mode!=="local"||!a.profile.sourcePath)throw new Error("Only a loaded Profile source can be compiled.");let e=L.join(a.storeDir,"library","harnesses","profile-previews");await b.mkdir(e,{recursive:!0});let t=L.join(e,bi());try{await fl(t,a.name,a.profile,a.sourceRevision,a.repositoryId);let r=a.repositoryId?ml(a.repositoryId,a.name):a.workspaceId;return await Ai({workspaceId:r,sourceDir:t})}finally{await b.rm(t,{recursive:!0,force:!0})}}c(Rv,"compileProfileHarnessSource");async function yv(a){let e=await Ai({workspaceId:a.id,sourceDir:a.sourceDir}),t=await a.store.getHarnessWorkspace(a.id);if(t){let r=t.currentChannel.release?await a.store.getHarnessReleaseRecord(t.currentChannel.release.contentHash):null;if(t.ownerScope.id!==a.ownerId||t.sourceRevision!==e.sourceRevision||r?.harnessRelease.contentHash!==e.harnessRelease.contentHash)throw new Error("Configured Harness source changed; use a new workspace ID for the new release.");return}await as({...a,initializeSource:c(async r=>{await b.mkdir(r,{recursive:!0}),await b.writeFile(L.join(r,_t),Y(e.manifest));for(let s of e.sourceFiles){let i=L.join(r,s.path);await b.mkdir(L.dirname(i),{recursive:!0}),await b.writeFile(i,s.bytes)}},"initializeSource")})}c(yv,"importLocalHarnessWorkspaceSource");async function kv(a){let e=await a.store.getHarnessReleaseRecord(a.sourceRelease.contentHash);if(!e||e.harnessRelease.id!==a.sourceRelease.id)throw new Error("Harness workspace fork source release is unavailable.");return as({...a,initializeSource:c(async t=>{await b.cp(L.join(e.bundlePath,"source"),t,{recursive:!0,force:!1,errorOnExist:!0,verbatimSymlinks:!1}),await Ci(t,a.name)},"initializeSource")})}c(kv,"forkLocalHarnessWorkspaceFromRelease");async function as(a){let e=a.now??(()=>new Date().toISOString()),t=Ep(a.storeDir,a.id),r=L.dirname(t.root);await b.mkdir(r,{recursive:!0});let s=L.join(r,`.${L.basename(t.root)}.creating-${bi()}`),i=L.join(s,"source");try{await a.initializeSource(i),await b.rename(s,t.root)}catch(n){throw await b.rm(s,{recursive:!0,force:!0}).catch(()=>{}),n}try{let n=await Ai({workspaceId:a.compilationWorkspaceId??a.id,sourceDir:t.source}),d=await _p({storeDir:a.storeDir,workspaceId:a.id,compiled:n,createdAt:e()}),o=e(),u=_e.parse({schemaVersion:"openpond.harnessWorkspace.v1",id:a.id,ownerScope:{kind:"personal",id:a.ownerId},name:a.name,location:"local",sourceRevision:n.sourceRevision,revision:0,dirty:!1,currentChannel:{name:"personal",release:{id:n.harnessRelease.id,contentHash:n.harnessRelease.contentHash},revision:1},createdAt:o,updatedAt:o,metadata:{sourceLayout:"openpond.harnessSourceManifest.v1",...a.selectionEligible===!1?{selectionEligible:!1}:{}}});return await a.store.createHarnessWorkspaceWithRelease({workspace:u,release:d})}catch(n){throw await b.rm(t.root,{recursive:!0,force:!0}).catch(()=>{}),n}}c(as,"createLocalHarnessWorkspaceFromInitializer");async function Ai(a){let e=L.resolve(a.sourceDir),t=L.join(e,_t),r=xt.parse(JSON.parse(await b.readFile(t,"utf8"))),s=new Set(r.files.map(E=>E.path)),i=(await Dt(e)).filter(E=>E!==_t),n=i.filter(E=>!s.has(E)),d=[...s].filter(E=>!i.includes(E));if(n.length||d.length)throw new Error(`Harness source manifest mismatch. Unlisted: ${n.join(", ")||"none"}; missing: ${d.join(", ")||"none"}.`);let o=[];for(let E of r.files){let k=await yr(e,E.path),A=await b.readFile(k);if(A.byteLength>ul)throw new Error(`Harness source file ${E.path} exceeds ${ul} bytes.`);o.push({path:E.path,bytes:A,asset:{id:E.id,path:E.path,contentHash:ze(A),sizeBytes:A.byteLength,mediaType:E.mediaType,visibility:E.visibility}})}let u=o.find(({path:E})=>E==="workflows/catalog.json");if(u){let E=r.files.find(H=>H.path===u.path);if(E?.kind!=="workflow"||E.visibility!=="policy")throw new Error("Profile workflow catalog requires a policy-visible workflow declaration.");let k=o.find(({path:H})=>H==="workflows/actions.json"),A=r.files.find(H=>H.path==="workflows/actions.json");if(!k||A?.visibility!=="policy")throw new Error("Profile workflow catalog requires a released action inventory.");let N=Vi.parse(JSON.parse(new TextDecoder().decode(k.bytes))).actions,P=new Set;for(let H of N){if(P.has(H.id))throw new Error(`Duplicate Profile workflow action ${H.id}.`);if(P.add(H.id),!ls(H.inputSchema).valid)throw new Error(`Profile workflow action ${H.id} has an invalid input schema.`);if(!r.files.some(O=>O.path.startsWith(`agents/${H.agentId}/`)))throw new Error(`Profile workflow action ${H.id} lacks its Agent source.`)}let j=cs({catalog:JSON.parse(new TextDecoder().decode(u.bytes)),sourcePaths:new Set(r.files.filter(H=>H.kind==="skill").map(H=>H.path)),actionIds:P});Tl(j)}let l=g({manifest:r,files:o.map(({path:E,asset:k})=>({path:E,contentHash:k.contentHash,sizeBytes:k.sizeBytes}))}),T=c(E=>o.filter(({path:k})=>r.files.find(A=>A.path===k)?.kind===E).map(({asset:k})=>k),"byKind"),p=T("dependency_lock")[0],m=T("program")[0],f=r.files.filter(E=>E.portability==="local_only").map(E=>E.id),h=r.files.filter(E=>E.visibility==="host_private").map(E=>E.id),w=[...f.map(E=>`Asset ${E} is local-only.`),...h.map(E=>`Asset ${E} is host-private.`)],R={id:`harness-source-${l.slice(0,24)}`,contentHash:l},y=ns({schemaVersion:"openpond.agentSnapshot.v2",id:`agent-snapshot-${g([l,r.toolDeclarations]).slice(0,24)}`,sourceRelease:R,instructions:T("instruction"),skills:T("skill"),agents:T("agent"),toolDeclarations:r.toolDeclarations,capabilityRequirements:r.capabilityRequirements,dependencyLock:p,portability:{portable:w.length===0,blockers:w,localOnlyAssetRefs:f,hostPrivateAssetRefs:h},metadata:{workspaceId:a.workspaceId,sourceRevision:l,sourceLayout:r.schemaVersion}}),S=os({schemaVersion:"openpond.harnessRelease.v2",id:`harness-${g([y.contentHash,m.contentHash,r.lifecycle]).slice(0,24)}`,agentSnapshot:{id:y.id,contentHash:y.contentHash},program:m,tools:r.toolDeclarations,lifecycle:r.lifecycle,graderInterface:r.graderInterface,files:o.map(({asset:E})=>E),metadata:{runtimeProtocol:r.runtimeProtocol,sourceRevision:l,sourceLayout:r.schemaVersion,...r.metadata.importedFrom==="openpond.profile"?{profile:{id:r.metadata.profileId,sourceRevision:r.metadata.profileGitHead??l,...r.metadata.profileRepositoryId?{repositoryId:r.metadata.profileRepositoryId}:{}}}:{}}});return{manifest:r,sourceRevision:l,agentSnapshot:y,harnessRelease:S,sourceFiles:o}}c(Ai,"compileLocalHarnessSource");async function _p(a){let e=L.join(a.storeDir,"library","harnesses","releases"),t=L.join(e,a.compiled.harnessRelease.contentHash);await b.mkdir(e,{recursive:!0});let r=L.join(e,`.${a.compiled.harnessRelease.contentHash}.materializing-${bi()}`);try{await b.mkdir(L.join(r,"source"),{recursive:!0});for(let s of a.compiled.sourceFiles){let i=L.join(r,"source",...s.path.split("/"));await b.mkdir(L.dirname(i),{recursive:!0}),await b.writeFile(i,s.bytes,{flag:"wx"})}await b.writeFile(L.join(r,"source",_t),Y(a.compiled.manifest),{flag:"wx"}),await b.writeFile(L.join(r,"agent-snapshot.json"),Y(a.compiled.agentSnapshot),{flag:"wx"}),await b.writeFile(L.join(r,"harness-release.json"),Y(a.compiled.harnessRelease),{flag:"wx"});try{await b.rename(r,t)}catch(s){if(s.code!=="EEXIST"&&s.code!=="ENOTEMPTY")throw s;await pl(t,a.compiled),await b.rm(r,{recursive:!0,force:!0})}await pl(t,a.compiled)}catch(s){throw await b.rm(r,{recursive:!0,force:!0}).catch(()=>{}),s}return Ve.parse({schemaVersion:"openpond.localHarnessReleaseRecord.v1",workspaceId:a.workspaceId,sourceRevision:a.compiled.sourceRevision,agentSnapshot:a.compiled.agentSnapshot,harnessRelease:a.compiled.harnessRelease,bundlePath:t,createdAt:a.createdAt})}c(_p,"materializeLocalHarnessRelease");async function hp(a,e){let t=xt.parse({schemaVersion:"openpond.harnessSourceManifest.v1",name:e,files:[{id:"dependency-lock",kind:"dependency_lock",path:"dependency-lock.json",parentId:null,mediaType:"application/json",visibility:"policy",portability:"portable"},{id:"agent-runtime-program",kind:"program",path:"program.json",parentId:null,mediaType:"application/json",visibility:"policy",portability:"portable"}],toolDeclarations:[],capabilityRequirements:[],lifecycle:{create:!0,reset:!0,step:!0,collect:!0,destroy:!0,resetScope:"attempt"},graderInterface:{visibleEvidence:["output","runtime_events","artifacts"],privilegedEvidence:["expected_output","private_verifier"],privateVerifierIsolation:!0},runtimeProtocol:"openpond.agent-runtime.v1",metadata:{}});await b.mkdir(a,{recursive:!0}),await b.writeFile(L.join(a,"dependency-lock.json"),Y({dependencies:{}}),{flag:"wx"}),await b.writeFile(L.join(a,"program.json"),Y({runtimeProtocol:"openpond.agent-runtime.v1"}),{flag:"wx"}),await b.writeFile(L.join(a,_t),Y(t),{flag:"wx"}),await Ci(a,e)}c(hp,"writeDefaultHarnessSource");async function fl(a,e,t,r,s){let i=L.resolve(t.sourcePath),n=[],d=new Set,o=c(N=>{let P=N.id;d.has(P)&&(P=`${P}-${g(N.path).slice(0,8)}`),d.add(P);let j={...N,id:P};return n.push(j),j},"addDeclaration");await b.mkdir(a,{recursive:!0});for(let N of t.skills.filter(P=>P.enabled)){if(N.validationStatus!=="valid")throw new Error(`Cannot import invalid Profile Skill ${N.name}: ${N.validationMessages.join(" ")}`);let P=L.dirname(L.join(i,N.path)),j=`skills/${we(N.name)}/SKILL.md`;await Je(L.join(P,"SKILL.md"),L.join(a,...j.split("/")));let H=o({id:`skill-${we(N.name)}`,kind:"skill",path:j,parentId:null,mediaType:"text/markdown",visibility:"policy",portability:"portable"});for(let O of N.resourceFiles){let q=`skills/${we(N.name)}/${O.split(L.sep).join("/")}`;await Je(L.join(P,O),L.join(a,...q.split("/"))),o({id:`skill-resource-${we(N.name)}-${g(O).slice(0,12)}`,kind:"skill_resource",path:q,parentId:H.id,mediaType:wa(q),visibility:"policy",portability:"portable"})}}for(let N of t.agents.filter(P=>P.enabled)){let P=L.resolve(i,N.path),j=await hd(P);if(j.length===0)throw new Error(`Profile Agent ${N.id} has no source files.`);let H=gd(j);for(let O of j){let q=`agents/${we(N.id)}/${O}`,K=(await b.stat(P)).isDirectory()?L.join(P,...O.split("/")):P;await Je(K,L.join(a,...q.split("/"))),o({id:O===H?`agent-${we(N.id)}`:`agent-asset-${we(N.id)}-${g(O).slice(0,12)}`,kind:O===H?"agent":"asset",path:q,parentId:null,mediaType:wa(q),visibility:"policy",portability:"portable"})}await Ks(L.join(a,"agents",we(N.id)))}let u=new Set,l=new Set(t.agents.filter(N=>N.enabled).map(N=>N.id)),T=t.actionCatalog.filter(N=>N.agentId&&l.has(N.agentId)).map(N=>({id:N.id,agentId:we(N.agentId),sourceActionId:N.sourceActionId??N.id,inputSchema:typeof N.inputSchema=="object"&&N.inputSchema!==null?N.inputSchema:{type:"object",additionalProperties:!0}})),p=new Set(T.map(N=>N.id)),m=L.join(i,"workflows","catalog.json"),f=await b.lstat(m).catch(()=>null),h=(await Dt(i)).filter(N=>N.startsWith("workflows/")),w=h.some(N=>/^workflows\/[^/]+\/(PROMPT\.md|ACTION\.json)$/.test(N));if(w&&f)throw new Error("Authored Workflow packages and legacy workflows/catalog.json cannot coexist; migrate the catalog first.");if(f||w||T.length){if(f&&(!f.isFile()||f.isSymbolicLink()))throw new Error("Profile workflow catalog must be a regular file.");let N=w?zi({files:new Map(await Promise.all(h.map(async O=>[O,await b.readFile(await yr(i,O),"utf8")]))),skillPaths:new Set(n.filter(O=>O.kind==="skill").map(O=>O.path)),actionIds:p}):null,P=N?Buffer.from(Y(N.catalog)):f?await b.readFile(m):Buffer.from(Y({schemaVersion:"openpond.profileWorkflows.v1",workflows:[]})),j=cs({catalog:JSON.parse(P.toString("utf8")),sourcePaths:new Set(n.filter(O=>O.kind==="skill").map(O=>O.path)),actionIds:new Set(T.map(O=>O.id))});for(let O of j.workflows)u.add(O.id);Tl(j);let H="workflows/catalog.json";await b.mkdir(L.join(a,"workflows"),{recursive:!0}),await b.writeFile(L.join(a,"workflows","catalog.json"),P,{flag:"wx"});for(let O of N?.referencedPaths??[])await Je(L.join(i,...O.split("/")),L.join(a,...O.split("/"))),o({id:`profile-workflow-source-${g(O).slice(0,16)}`,kind:"asset",path:O,parentId:null,mediaType:wa(O),visibility:"policy",portability:"portable"});o({id:"profile-workflows",kind:"workflow",path:H,parentId:null,mediaType:"application/json",visibility:"policy",portability:"portable"})}(f||w||T.length)&&(await b.writeFile(L.join(a,"workflows","actions.json"),Y({schemaVersion:"openpond.profileWorkflowActions.v1",actions:T}),{flag:"wx"}),o({id:"profile-workflow-actions",kind:"asset",path:"workflows/actions.json",parentId:null,mediaType:"application/json",visibility:"policy",portability:"portable"}));let R=L.join(i,"evals","catalog.json"),y=await b.lstat(R).catch(()=>null),S=(await Dt(i)).filter(N=>/^workflows\/[^/]+\/evals\/[^/]+\.json$/.test(N)||/^evals\/(definitions|suites)\/[^/]+\.json$/.test(N));if(y&&S.length)throw new Error("Authored evaluation definitions and legacy evals/catalog.json cannot coexist; migrate the catalog first.");if(y||S.length){if(y&&(!y.isFile()||y.isSymbolicLink()))throw new Error("Profile evaluation catalog must be a regular file.");let N=[],P=[];for(let D of S){let V=JSON.parse(await b.readFile(await yr(i,D),"utf8"));if(D.startsWith("evals/suites/"))P.push(Jn.parse(V));else{let z=Kn.parse(V),ne=/^workflows\/([^/]+)\/evals\//.exec(D)?.[1];if(ne&&(z.target.kind!=="workflow"||z.target.workflowId!==ne))throw new Error(`Profile evaluation ${z.id} must target its containing Workflow ${ne}.`);N.push(z)}}let j=S.length?Buffer.from(Y({schemaVersion:"openpond.profileEvaluations.v1",definitions:N.sort((D,V)=>D.id.localeCompare(V.id)),suites:P.sort((D,V)=>D.id.localeCompare(V.id))})):await b.readFile(R),{catalog:H}=Gn({catalog:JSON.parse(j.toString("utf8")),workflowIds:u,skillPaths:new Set(n.filter(D=>D.kind==="skill").map(D=>D.path)),actionIds:p});await b.mkdir(L.join(a,"evals"),{recursive:!0}),await b.writeFile(L.join(a,"evals","catalog.json"),j,{flag:"wx"});for(let D of S)await Je(L.join(i,...D.split("/")),L.join(a,...D.split("/"))),o({id:`profile-evaluation-source-${g(D).slice(0,16)}`,kind:"asset",path:D,parentId:null,mediaType:"application/json",visibility:"verifier",portability:"portable"});o({id:"profile-evaluations",kind:"asset",path:"evals/catalog.json",parentId:null,mediaType:"application/json",visibility:"verifier",portability:"portable"});let O=new Set(H.definitions.map(D=>D.tasksetRelease.contentHash)),q=L.join(i,"evals","tasksets"),K=await b.lstat(q).catch(()=>null);if(K&&(!K.isDirectory()||K.isSymbolicLink()))throw new Error("Profile evaluation Taskset directory must be a regular directory.");for(let D of O){let V=L.join(q,`${D}.json`),z=await b.lstat(V).catch(()=>null);if(!z)throw new Error(`Profile evaluation Taskset package ${D} is missing.`);if(!z.isFile()||z.isSymbolicLink())throw new Error("Profile evaluation Taskset package must be a regular file.");let ne=je(JSON.parse(await b.readFile(V,"utf8")));if(ne.taskset.contentHash!==D||!H.definitions.some(xi=>xi.tasksetRelease.contentHash===D&&xi.tasksetRelease.id===ne.taskset.id))throw new Error("Profile evaluation Taskset package differs from its catalog reference.");let Pi=`evals/tasksets/${D}.json`;await Je(V,L.join(a,...Pi.split("/"))),o({id:`profile-evaluation-taskset-${D.slice(0,16)}`,kind:"asset",path:Pi,parentId:null,mediaType:"application/json",visibility:"verifier",portability:"portable"})}}let E=await gp(t,r),k=`dependency-lock/${E.name}`;await b.mkdir(L.join(a,"dependency-lock"),{recursive:!0}),E.sourcePath?await Je(E.sourcePath,L.join(a,...k.split("/"))):await b.writeFile(L.join(a,...k.split("/")),Y(E.generated),{flag:"wx"}),o({id:"dependency-lock",kind:"dependency_lock",path:k,parentId:null,mediaType:wa(k),visibility:"policy",portability:"portable"}),await b.writeFile(L.join(a,"program.json"),Y({runtimeProtocol:"openpond.agent-runtime.v1"}),{flag:"wx"}),o({id:"agent-runtime-program",kind:"program",path:"program.json",parentId:null,mediaType:"application/json",visibility:"policy",portability:"portable"});let A=xt.parse({schemaVersion:"openpond.harnessSourceManifest.v1",name:e,files:n,toolDeclarations:[],capabilityRequirements:[],lifecycle:{create:!0,reset:!0,step:!0,collect:!0,destroy:!0,resetScope:"attempt"},graderInterface:{visibleEvidence:["output","runtime_events","artifacts"],privilegedEvidence:["expected_output","private_verifier"],privateVerifierIsolation:!0},runtimeProtocol:"openpond.agent-runtime.v1",metadata:{importedFrom:"openpond.profile",profileId:t.activeProfile,...s?{profileRepositoryId:s}:{},profileGitHead:r??t.git?.head??null,excludedEvalCount:t.evals.length,actionConversionPending:t.actionCatalog.length>0}});await b.writeFile(L.join(a,_t),Y(A),{flag:"wx"}),await Ci(a,e)}c(fl,"writeImportedProfileSource");function Tl(a){for(let e of a.workflows){let t=ls(e.inputSchema);if(!t.valid)throw new Error(`Profile workflow ${e.id} has an invalid input schema: ${t.issues[0]?.message??"schema mismatch"}`)}}c(Tl,"assertProfileWorkflowInputSchemas");async function Ci(a,e){let t=L.join(a,_t),r=xt.parse(JSON.parse(await b.readFile(t,"utf8")));if(r.files.some(o=>o.kind==="instruction"))return;let s="instructions/system.md";await b.mkdir(L.join(a,"instructions"),{recursive:!0}),await b.writeFile(L.join(a,...s.split("/")),`# ${e}
|
|
2404
2404
|
|
|
2405
2405
|
Keep reusable, provider-neutral execution guidance for this Harness here.
|
|
2406
2406
|
`,{flag:"wx"});let n=new Set(r.files.map(o=>o.id)).has("instruction-system")?`instruction-system-${g(s).slice(0,8)}`:"instruction-system",d=xt.parse({...r,name:e,files:[...r.files,{id:n,kind:"instruction",path:s,parentId:null,mediaType:"text/markdown",visibility:"policy",portability:"portable"}]});await b.writeFile(t,Y(d),{flag:"w"})}c(Ci,"ensureHarnessInstructionSurface");async function gp(a,e){let t=a.repoPath?L.resolve(a.repoPath):null;if(t)for(let r of["pnpm-lock.yaml","package-lock.json","yarn.lock"]){let s=L.join(t,r),i=await b.lstat(s).catch(()=>null);if(i?.isFile()&&!i.isSymbolicLink())return{name:r,sourcePath:s}}return{name:"profile-import.json",sourcePath:null,generated:{source:"openpond.profile",profileId:a.activeProfile,profileGitHead:e??a.git?.head??null,dependenciesResolved:!1}}}c(gp,"importedDependencyLock");async function pl(a,e){let t=Ge.parse(JSON.parse(await b.readFile(L.join(a,"agent-snapshot.json"),"utf8"))),r=Qe.parse(JSON.parse(await b.readFile(L.join(a,"harness-release.json"),"utf8")));if(t.contentHash!==e.agentSnapshot.contentHash||r.contentHash!==e.harnessRelease.contentHash)throw new Error("Materialized Harness release does not match the compiled immutable objects.");for(let s of e.sourceFiles){let i=await b.readFile(L.join(a,"source",...s.path.split("/")));if(ze(i)!==s.asset.contentHash)throw new Error(`Materialized Harness asset ${s.path} failed hash verification.`)}}c(pl,"verifyMaterializedRelease");export{_l as a,af as b,uf as c,yf as d,Xf as e,Wf as f,gl as g,wl as h,yl as i,Zf as j,eT as k,tT as l,od as m,cd as n,JE as o,kr as p,Ra as q,te as r,$T as s,Ed as t,Qs as u,Nr as v,Nd as w,vd as x,Vl as y,ie as z,zl as A,qd as B,oh as C,dh as D,ch as E,lh as F,uh as G,ph as H,mh as I,fh as J,Th as K,Eh as L,_h as M,Vd as N,Tu as O,dw as P,cw as Q,lw as R,Ie as S,Ec as T,jt as U,wc as V,yc as W,La as X,Nu as Y,Aa as Z,ny as _,Tt as $,Oe as aa,jc as ba,Wt as ca,$t as da,tl as ea,Ve as fa,ll as ga,Ep as ha,gv as ia,wv as ja,Rv as ka,yv as la,kv as ma,Ai as na,_p as oa};
|