openpond 0.2.53 → 0.2.55
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 +1514 -100
- package/dist/app-server.js +1 -1
- package/dist/chunks/actions-command-WTFZA7LF.js +2 -0
- package/dist/chunks/{app-layer-I7MZYVLL.js → app-layer-Y2UERCPY.js} +1 -1
- package/dist/chunks/app-server-runtime-2RM3N4I6.js +2 -0
- package/dist/chunks/apps-KDNWYO3G.js +2 -0
- package/dist/chunks/chunk-2DFR7PJ4.js +2460 -0
- package/dist/chunks/chunk-4CRM2ADK.js +2 -0
- package/dist/chunks/{chunk-7ZG3IT7C.js → chunk-4WEUCGJ3.js} +6 -6
- package/dist/chunks/chunk-55G6B54U.js +6 -0
- package/dist/chunks/chunk-73G5UYBB.js +12 -0
- package/dist/chunks/{chunk-DALJMSJG.js → chunk-ARQEJOEK.js} +24 -24
- package/dist/chunks/chunk-B7QDZPNX.js +2 -0
- package/dist/chunks/chunk-BFKYRQMA.js +2 -0
- package/dist/chunks/{chunk-AH22RHPS.js → chunk-BQAF5P7K.js} +2 -2
- package/dist/chunks/{chunk-YJ4PNAST.js → chunk-BTI4N7YO.js} +1 -1
- package/dist/chunks/chunk-C6D4WAYN.js +6 -0
- package/dist/chunks/chunk-CGBI2VYJ.js +2 -0
- package/dist/chunks/chunk-DLVPSCTB.js +2 -0
- package/dist/chunks/{chunk-UJ5EFSEC.js → chunk-G6JMQGX7.js} +1 -1
- package/dist/chunks/chunk-GGIG3XU7.js +3 -0
- package/dist/chunks/chunk-IODUCRBA.js +58 -0
- package/dist/chunks/chunk-JIMU3KDA.js +24 -0
- package/dist/chunks/chunk-JUJSA7KI.js +22 -0
- package/dist/chunks/chunk-K5SBVO3B.js +195 -0
- package/dist/chunks/chunk-KD3QVRIJ.js +21 -0
- package/dist/chunks/chunk-KGNCKIFP.js +3 -0
- package/dist/chunks/chunk-L4235TRQ.js +140 -0
- package/dist/chunks/{chunk-N5QNXMIS.js → chunk-MH3LHSGX.js} +1 -1
- package/dist/chunks/chunk-MVF3F5QS.js +2 -0
- package/dist/chunks/{chunk-N3DEA6PG.js → chunk-NNIRIUSY.js} +1 -1
- package/dist/chunks/{chunk-WITSXYEW.js → chunk-NOTXPD2T.js} +1 -1
- package/dist/chunks/{chunk-T5LE6R5S.js → chunk-OSIO7PLX.js} +1 -1
- package/dist/chunks/chunk-OULAKUIN.js +2 -0
- package/dist/chunks/chunk-OWNLDB2O.js +2 -0
- package/dist/chunks/{chunk-NAZ26IZL.js → chunk-Q7AXHFZV.js} +1 -1
- package/dist/chunks/chunk-QDHMP5FS.js +2 -0
- package/dist/chunks/chunk-QKD5OMDI.js +2 -0
- package/dist/chunks/{chunk-YD55Z5H3.js → chunk-QRAKXZOC.js} +10 -10
- package/dist/chunks/{chunk-JDLAHVAJ.js → chunk-R27YGT77.js} +1 -1
- package/dist/chunks/chunk-R2BSIRYL.js +3 -0
- package/dist/chunks/chunk-SHQOIROR.js +42 -0
- package/dist/chunks/chunk-STDMBJOQ.js +9 -0
- package/dist/chunks/chunk-T4QGDQHP.js +4 -0
- package/dist/chunks/{chunk-R3XFY7VL.js → chunk-TERVLCRG.js} +1 -1
- package/dist/chunks/{chunk-PA7XP42P.js → chunk-U2YMBCX7.js} +1 -1
- package/dist/chunks/{chunk-GXSTZBM6.js → chunk-UA5DA5I2.js} +1 -1
- package/dist/chunks/chunk-VJEZPDBS.js +5 -0
- package/dist/chunks/chunk-WDFLCNRC.js +8 -0
- package/dist/chunks/chunk-WZYRAR7X.js +16 -0
- package/dist/chunks/chunk-YDT7L3VZ.js +24 -0
- package/dist/chunks/chunk-YR5ID2SS.js +2 -0
- package/dist/chunks/chunk-YUPBAWBJ.js +554 -0
- package/dist/chunks/cli-465VC2WP.js +2 -0
- package/dist/chunks/{configuration-command-MATM4XR5.js → configuration-command-LAAP2EXT.js} +1 -1
- package/dist/chunks/connected-evidence-XM626247.js +2 -0
- package/dist/chunks/{continual-PKK2BOTB.js → continual-TTGJ6YTR.js} +1 -1
- package/dist/chunks/core-commands-W7EK552V.js +2 -0
- package/dist/chunks/datasets-QJWYTTQL.js +2 -0
- package/dist/chunks/desktop-test-3B2D34NF.js +3 -0
- package/dist/chunks/dist-FAJX2UBW.js +2 -0
- package/dist/chunks/{dist-4HV2W6V4.js → dist-HUAE2KFZ.js} +1 -1
- package/dist/chunks/{chunk-6VF3Q6QJ.js → dist-SKYG5LZO.js} +2 -4
- package/dist/chunks/evaluation-coordination-2MONR4AX.js +2 -0
- package/dist/chunks/experiment-improvements-WVQ5FK46.js +2 -0
- package/dist/chunks/experiments-S5UQ32QB.js +2 -0
- package/dist/chunks/extension-DWMY6D2R.js +4 -0
- package/dist/chunks/{help-WLKSACLZ.js → help-A72QDRNG.js} +1 -1
- package/dist/chunks/hosted-experiment-improvement-2OWOQLHC.js +3 -0
- package/dist/chunks/hosted-harness-runtime-TGFMAV7W.js +2 -0
- package/dist/chunks/hosted-profile-candidate-WQSI6HZO.js +3 -0
- package/dist/chunks/hosted-profile-compiler-Z2A4TEA6.js +2 -0
- package/dist/chunks/hosted-profile-evaluation-control-FKGARUEE.js +2 -0
- package/dist/chunks/hosted-profile-evaluation-inspection-QOY2JKV4.js +3 -0
- package/dist/chunks/hosted-profile-evaluation-preparation-WVP6CALP.js +3 -0
- package/dist/chunks/human-review-TGHQKXFZ.js +2 -0
- package/dist/chunks/{import-V3HUGRHR.js → import-4UE5XNSG.js} +1 -1
- package/dist/chunks/javascript-isolate-process-source-ZPQKKLR4.js +2 -0
- package/dist/chunks/javascript-verifier-worker-source-F3LSGPOY.js +2 -0
- package/dist/chunks/learning-R2XBMMEM.js +2 -0
- package/dist/chunks/opchat-WULL6CUP.js +3 -0
- package/dist/chunks/organizations-I37HISVX.js +2 -0
- package/dist/chunks/profile-NOZ6TVXL.js +3 -0
- package/dist/chunks/project-agent-T6XKC54C.js +2 -0
- package/dist/chunks/sandbox-command-STB47FRY.js +2 -0
- package/dist/chunks/{sandbox-template-BBGGPJMI.js → sandbox-template-LKGBDVJ4.js} +1 -1
- package/dist/chunks/sql-execution-process-source-B4HQM6ZV.js +2 -0
- package/dist/chunks/src-T3KWWCAH.js +322 -0
- package/dist/chunks/{src-CR6UZYTX.js → src-ZWJ5IO7A.js} +1 -1
- package/dist/chunks/{taskset-LUG3ZU6J.js → taskset-RNYDR4GS.js} +1 -1
- package/dist/chunks/{teams-bot-7I4BAUVO.js → teams-bot-H7XT23XB.js} +1 -1
- package/dist/chunks/{training-XHE6FVII.js → training-M6FAPRSJ.js} +1 -1
- package/dist/cli.js +1 -1
- package/dist/index.js +1 -1
- package/dist/web/assets/App-CLFfy_Av.js +154 -0
- package/dist/web/assets/App-CTlAPuCY.css +1 -0
- package/dist/web/assets/{AppDialog-BdusXgU0.js → AppDialog-CPHTPqrx.js} +1 -1
- package/dist/web/assets/{AppTerminalPanel-C4uRpnBz.js → AppTerminalPanel-BVj5Tj93.js} +2 -2
- package/dist/web/assets/AppsView-O69zEBY3.js +1 -0
- package/dist/web/assets/{BrowserSidebar-Bl7V6YO2.js → BrowserSidebar-Pr_Kpe8p.js} +1 -1
- package/dist/web/assets/{CartesianChart-BstFbsdn.js → CartesianChart-JPqo6YOf.js} +1 -1
- package/dist/web/assets/{CollaborationTabs-B8YAf0c1.js → CollaborationTabs-CAJcQFn2.js} +1 -1
- package/dist/web/assets/{CommandMenu-DZct7zUJ.js → CommandMenu-B-w53n9A.js} +1 -1
- package/dist/web/assets/{CommunityView-CR0-W-uG.js → CommunityView-DbZKK8_P.js} +1 -1
- package/dist/web/assets/{ComposerCreateImproveStrip-DR-Qo7b4.js → ComposerCreateImproveStrip-3_083PF4.js} +1 -1
- package/dist/web/assets/{GetStartedView-xqQoMMei.js → GetStartedView-D7JGm_6c.js} +1 -1
- package/dist/web/assets/HostedModelLearningReview-DwgMfZ7_.js +1 -0
- package/dist/web/assets/{HostedModelLearningSettings-De3i9wF4.js → HostedModelLearningSettings-JRfQadRl.js} +1 -1
- package/dist/web/assets/{LabModelVersionDetailPage-DAY1MmqP.js → LabModelVersionDetailPage-BUYflJY_.js} +1 -1
- package/dist/web/assets/{LabSkillSidebar-DLnIgnry.js → LabSkillSidebar-BBiqk7Rf.js} +1 -1
- package/dist/web/assets/LabsRoute-Ci6vUnSd.js +99 -0
- package/dist/web/assets/MainChatThread-BQK3oI2N.js +2 -0
- package/dist/web/assets/MainPane-D3ojiN-p.js +18 -0
- package/dist/web/assets/{MarkdownText-gJMuefaJ.js → MarkdownText-DOdOVFXL.js} +25 -25
- package/dist/web/assets/{NativeSkillSidebar-Dlxb8iOC.js → NativeSkillSidebar-CRI_ri8z.js} +1 -1
- package/dist/web/assets/{NewExperienceSwitcher-DM-cqJ-K.js → NewExperienceSwitcher-DhYtfE68.js} +1 -1
- package/dist/web/assets/{NewProjectDialog-Cu1q75gq.js → NewProjectDialog-D8sy1gOz.js} +1 -1
- package/dist/web/assets/{OutputsPage-DiXMkasl.js → OutputsPage-CbWgrhXA.js} +1 -1
- package/dist/web/assets/{ProjectsPage-DqiBHiCB.js → ProjectsPage-DLB67lyA.js} +1 -1
- package/dist/web/assets/RightChatPanelStack-ozSKnDyX.js +1 -0
- package/dist/web/assets/{RightSidebarHomePanel-CeSFJM5s.js → RightSidebarHomePanel-CKs3OwhD.js} +1 -1
- package/dist/web/assets/ScheduledWorkPage-Cafv_QnR.js +1 -0
- package/dist/web/assets/SettingsView-T1vYDPjh.js +5 -0
- package/dist/web/assets/{TeamChatView-DM0adMtj.js → TeamChatView-vIrmXOY_.js} +2 -2
- package/dist/web/assets/{TerminalOverlay-CFlH51DD.js → TerminalOverlay-CAmF__Dq.js} +1 -1
- package/dist/web/assets/{TrainingCreationPanel-CgIBVGha.js → TrainingCreationPanel-D75K0yk5.js} +1 -1
- package/dist/web/assets/{TrainingDraftPanel-Bbo3RRie.js → TrainingDraftPanel-D7XZePAk.js} +1 -1
- package/dist/web/assets/{UsageSettingsSection-CSRjJUSa.js → UsageSettingsSection-CYTmp7PG.js} +1 -1
- package/dist/web/assets/WorkSidebarPanel-CODMjVHY.js +1 -0
- package/dist/web/assets/WorkspaceDiffPanel-DQGoIjH9.js +14 -0
- package/dist/web/assets/WorkspaceEnvironmentMenu-c1pHDskn.js +63 -0
- package/dist/web/assets/{WorkspaceGitDialogs-Dgmg-6XG.js → WorkspaceGitDialogs-DrVtapQQ.js} +1 -1
- package/dist/web/assets/{WorkspaceMonacoEditor-BR4qxMgU.js → WorkspaceMonacoEditor-BCKzvSj2.js} +3 -3
- package/dist/web/assets/arrow-up-right-CP4hZdrJ.js +1 -0
- package/dist/web/assets/chunk-NOJECMB7-Bhcms-w5.js +1 -0
- package/dist/web/assets/{clipboard-BZzZ82Bk.js → clipboard-BgrXorn-.js} +1 -1
- package/dist/web/assets/{cloud-upload-CJPYPVl8.js → cloud-upload-B_zYztb6.js} +1 -1
- package/dist/web/assets/{cssMode-WC4Rg1l-.js → cssMode-DanjGgA8.js} +1 -1
- package/dist/web/assets/{folder-open-sLZJxLQy.js → folder-open-CdVKbtGq.js} +1 -1
- package/dist/web/assets/folder-plus-Cc5KElB6.js +1 -0
- package/dist/web/assets/{git-commit-horizontal-Cotm7KEC.js → git-commit-horizontal-CjGIIgRi.js} +1 -1
- package/dist/web/assets/{htmlMode-C6oZGeaB.js → htmlMode-DRGDF_UL.js} +1 -1
- package/dist/web/assets/index-B5re-RJy.css +1 -0
- package/dist/web/assets/{index-BxWTVKtn.js → index-BE-wXZ5R.js} +2 -2
- package/dist/web/assets/info-BLj0RvhA.js +1 -0
- package/dist/web/assets/{jsonMode-BET4LQIn.js → jsonMode-CCu0j2GD.js} +1 -1
- package/dist/web/assets/{lspLanguageFeatures-BPxA_-Kg.js → lspLanguageFeatures-s_Lhm7P6.js} +1 -1
- package/dist/web/assets/minimize-2-Cyg_zD9z.js +1 -0
- package/dist/web/assets/{monaco.contribution-DXzyQfVi.js → monaco.contribution-CAzXvYkn.js} +2 -2
- package/dist/web/assets/{monaco.contribution-DFzEyaHi.js → monaco.contribution-CY7mRgOB.js} +2 -2
- package/dist/web/assets/{monaco.contribution-7AUuf2NS.js → monaco.contribution-aUeLcBEg.js} +2 -2
- package/dist/web/assets/{monaco.contribution-BH6kkO4b.js → monaco.contribution-mUPNK9ra.js} +2 -2
- package/dist/web/assets/monitor-DZvOs_wC.js +1 -0
- package/dist/web/assets/play-BJPzemuY.js +1 -0
- package/dist/web/assets/{python-PzBkTjWx.js → python-B_qnnVaG.js} +1 -1
- package/dist/web/assets/{save-DpezrtH2.js → save-BDy9tA3E.js} +1 -1
- package/dist/web/assets/square-Cb2c5td4.js +1 -0
- package/dist/web/assets/{toggleHighContrast-Cto-fOXm.js → toggleHighContrast-MhO1JLyR.js} +1 -1
- package/dist/web/assets/{tsMode-BYA4LNc6.js → tsMode-DfBXJb9V.js} +1 -1
- package/dist/web/assets/{upload-C5YFNgtS.js → upload-D56kThRh.js} +1 -1
- package/dist/web/assets/{useLocalAgentSchedules-CnyTsqlf.js → useLocalAgentSchedules-DMnGfswi.js} +1 -1
- package/dist/web/assets/useProviderSettings-Bv5B9eNk.js +5 -0
- package/dist/web/assets/{useSessionTurnCache-DICuJSJW.js → useSessionTurnCache-ClAY8gze.js} +1 -1
- package/dist/web/assets/{wifi-off-nzHj7JXp.js → wifi-off-C9lWJmVm.js} +1 -1
- package/dist/web/assets/{workers-Dboaw6f_.js → workers-BYzrH8by.js} +1 -1
- package/dist/web/assets/{yaml-uuY5JmO8.js → yaml-D3T8UkT3.js} +1 -1
- package/dist/web/index.html +2 -2
- package/package.json +3 -3
- package/dist/chunks/actions-command-DSO6YOEE.js +0 -2
- package/dist/chunks/app-server-runtime-KZP2LB5X.js +0 -2
- package/dist/chunks/apps-TM74FFQB.js +0 -2
- package/dist/chunks/chunk-2JO2KWT3.js +0 -5
- package/dist/chunks/chunk-2SPZYBDN.js +0 -16
- package/dist/chunks/chunk-3LX6RU3C.js +0 -3
- package/dist/chunks/chunk-4SHKI3BH.js +0 -2
- package/dist/chunks/chunk-4TZHH5FC.js +0 -2409
- package/dist/chunks/chunk-5TNDPNS3.js +0 -2
- package/dist/chunks/chunk-6JAN4RMN.js +0 -42
- package/dist/chunks/chunk-7QEE4PBI.js +0 -8
- package/dist/chunks/chunk-AFUDIT36.js +0 -2
- package/dist/chunks/chunk-BX4J2VDU.js +0 -2
- package/dist/chunks/chunk-EMKZVP7Z.js +0 -2
- package/dist/chunks/chunk-FPUUZQUP.js +0 -6
- package/dist/chunks/chunk-GCOUYYHG.js +0 -5
- package/dist/chunks/chunk-GS2NKNKG.js +0 -4
- package/dist/chunks/chunk-H2VT22JK.js +0 -2
- package/dist/chunks/chunk-HA7EFTPF.js +0 -23
- package/dist/chunks/chunk-IKWDL3RB.js +0 -17
- package/dist/chunks/chunk-L3KS6MOV.js +0 -2
- package/dist/chunks/chunk-NHFGEVVH.js +0 -518
- package/dist/chunks/chunk-NNF6KCHD.js +0 -3
- package/dist/chunks/chunk-PJM2G7SG.js +0 -21
- package/dist/chunks/chunk-PQHTZ5CP.js +0 -2
- package/dist/chunks/chunk-PYABBF53.js +0 -53
- package/dist/chunks/chunk-QRWPEW3Z.js +0 -24
- package/dist/chunks/chunk-QXVIIM4T.js +0 -2
- package/dist/chunks/chunk-SDEDAHV6.js +0 -160
- package/dist/chunks/chunk-TGIB24K4.js +0 -22
- package/dist/chunks/chunk-USKE34VR.js +0 -9
- package/dist/chunks/chunk-WV2APYWG.js +0 -2
- package/dist/chunks/chunk-XGE2XI6M.js +0 -191
- package/dist/chunks/chunk-XM26DGML.js +0 -3
- package/dist/chunks/chunk-YIB3J4RC.js +0 -2
- package/dist/chunks/chunk-YL6VFJ4P.js +0 -2
- package/dist/chunks/chunk-Z3D4C7BG.js +0 -12
- package/dist/chunks/cli-JVB345H2.js +0 -2
- package/dist/chunks/connected-evidence-YDPGNHLP.js +0 -2
- package/dist/chunks/core-commands-MTV4EKXY.js +0 -2
- package/dist/chunks/datasets-CP3IT47T.js +0 -2
- package/dist/chunks/desktop-test-IAZC5MAH.js +0 -3
- package/dist/chunks/dist-SAABJU5F.js +0 -2
- package/dist/chunks/evaluation-coordination-EPHLZXYM.js +0 -2
- package/dist/chunks/experiment-improvements-6JTOPA74.js +0 -2
- package/dist/chunks/experiments-XHPFGECH.js +0 -2
- package/dist/chunks/extension-GX7DLW2X.js +0 -4
- package/dist/chunks/hosted-experiment-improvement-HAB3UE6A.js +0 -3
- package/dist/chunks/hosted-harness-runtime-YM23QNDK.js +0 -2
- package/dist/chunks/hosted-profile-candidate-EOBGKQAS.js +0 -3
- package/dist/chunks/hosted-profile-compiler-OZAOZ2ES.js +0 -2
- package/dist/chunks/hosted-profile-evaluation-control-RJ6XJZCS.js +0 -2
- package/dist/chunks/hosted-profile-evaluation-inspection-SJIDXPHI.js +0 -3
- package/dist/chunks/hosted-profile-evaluation-preparation-26EI5LJR.js +0 -3
- package/dist/chunks/human-review-AAVMISBF.js +0 -2
- package/dist/chunks/learning-FNBEIAY6.js +0 -2
- package/dist/chunks/opchat-QK43DXTY.js +0 -3
- package/dist/chunks/organizations-SRPAWKC7.js +0 -2
- package/dist/chunks/profile-C6CQNVYE.js +0 -3
- package/dist/chunks/project-agent-GZV5HNYI.js +0 -2
- package/dist/chunks/sandbox-command-4TJXQTKT.js +0 -2
- package/dist/chunks/src-P3VYLFLI.js +0 -329
- package/dist/web/assets/App-CO2F717V.css +0 -1
- package/dist/web/assets/App-CuhaCsfb.js +0 -235
- package/dist/web/assets/AppsView-BS1czXUP.js +0 -1
- package/dist/web/assets/HostedModelLearningReview-CHxxf_Lu.js +0 -1
- package/dist/web/assets/LabsRoute-CXJRJMhr.js +0 -99
- package/dist/web/assets/MainChatThread-BwAla81W.js +0 -2
- package/dist/web/assets/MainPane-CakOBCHw.js +0 -19
- package/dist/web/assets/RightChatPanelStack-VaOOmxwd.js +0 -1
- package/dist/web/assets/ScheduledWorkPage-D1jRQxFs.js +0 -1
- package/dist/web/assets/SettingsView-RA9OXgcu.js +0 -5
- package/dist/web/assets/WorkSidebarPanel-DwlEMEoG.js +0 -1
- package/dist/web/assets/WorkspaceDiffPanel-pGVezNMw.js +0 -14
- package/dist/web/assets/WorkspaceEnvironmentMenu-Byjngd9V.js +0 -32
- package/dist/web/assets/arrow-up-right-H0pvnH2s.js +0 -1
- package/dist/web/assets/chunk-UHVJOMWN-BqXRe639.js +0 -1
- package/dist/web/assets/folder-plus-C84wrpt_.js +0 -1
- package/dist/web/assets/index-dSmk3FLJ.css +0 -1
- package/dist/web/assets/info-Dc81lEfw.js +0 -1
- package/dist/web/assets/minimize-2-Bs7MVN3C.js +0 -1
- package/dist/web/assets/monitor-DXL019Wf.js +0 -1
- package/dist/web/assets/play-CXkxUZeU.js +0 -1
- package/dist/web/assets/square-oy7f5Ce6.js +0 -1
- package/dist/web/assets/useProviderSettings-B_KeQjE5.js +0 -5
- /package/dist/chunks/{chunk-OGPHXXCD.js → chunk-BT5YNE5U.js} +0 -0
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
+
import{Pb as O}from"./chunk-JIMU3KDA.js";import{E as _,F as k,I as q,L as U,N as j,O as L}from"./chunk-55G6B54U.js";import{E as b,F as x,ta as C}from"./chunk-KD3QVRIJ.js";import{i as T,m as u,n as M}from"./chunk-KGNCKIFP.js";import{b as R}from"./chunk-ES2ISFJC.js";import{a as I}from"./chunk-FTQLQJQV.js";var y=R.object({sessionId:R.string().trim().min(1).max(500),turnId:R.string().trim().min(1).max(500)}).strict();async function Q(e){U(e.manifest,e.taskset,e.catalog),L(e.taskset,e.metricSource);let n=e.manifest.profileEvaluation,o=e.catalog.definitions.find(a=>a.id===n.definitionId),i=new Map(e.taskset.tasks.map(a=>[a.id,a])),p=[],t=[];for(let a of e.manifest.population){e.signal?.throwIfAborted();let l=i.get(a.taskId),s=await e.loadCompletedMember?.(a)??null;if(s){let{receipt:h,grade:g}=s,{contentHash:H,...v}=b.parse(g);if(!k(h)||H!==u(v)||h.id!==a.receiptId||h.runManifest.id!==e.manifest.id||h.runManifest.contentHash!==e.manifest.contentHash||h.taskId!==a.taskId||h.seed!==a.seed||h.graderEvidenceRefs.length!==1||h.graderEvidenceRefs[0]?.contentHash!==H||g.taskHash!==u(l)||g.graderSetHash!==u(e.taskset.graders)||h.metadata.score!==g.score||h.metadata.passed!==g.passed)throw new Error(`Retained Profile evaluation member ${a.receiptId} differs from its admitted evidence.`);t.push(g),p.push(h);continue}let d=await e.execute({task:C(l),seed:a.seed,source:n,...e.signal?{signal:e.signal}:{}});e.signal?.throwIfAborted();let c=await x({task:l,evidence:d.evidence,graders:e.taskset.graders,...e.modelJudge?{modelJudge:e.modelJudge}:{},...e.customVerifier?{customVerifier:e.customVerifier}:{},...e.signal?{signal:e.signal}:{}}),w=T.parse(await e.saveGrade(c));if(w.contentHash!==c.contentHash)throw new Error("Stored Profile evaluation grade differs from its graded evidence.");let E=d.failureClass??c.failureClass,P=_({schemaVersion:"openpond.attemptReceipt.v1",id:a.receiptId,runManifest:{id:e.manifest.id,contentHash:e.manifest.contentHash},taskId:a.taskId,seed:a.seed,terminal:d.terminal,failureClass:E,outputHash:d.evidence.infrastructureError?null:u(d.evidence.output),traceHash:d.traceHash,artifactRefs:d.artifactRefs,graderEvidenceRefs:[w],startedAt:d.startedAt,completedAt:d.completedAt,latencyMs:d.latencyMs,costUsd:d.costUsd,metadata:{gradingRole:"evaluation",score:c.score,passed:c.passed,rewardEligible:c.rewardEligible,sourceRevision:n.sourceRevision,definitionHash:n.definitionHash,environmentHash:n.environmentHash,...d.retainedEvidenceRef?{retainedEvidenceRef:y.parse(d.retainedEvidenceRef)}:{}}});await e.saveReceipt(P),t.push(c),p.push(P)}let r=await j({manifest:e.manifest,taskset:e.taskset,receipts:p,...e.metricSource!==void 0?{source:e.metricSource}:{},...e.signal?{signal:e.signal}:{}},e.metricExecutor),f=t.filter(a=>a.passed).length/t.length;return{receipts:p,grades:t,metric:r,passRate:f,passed:f>=o.criterion.minimumPassRate&&(!o.criterion.requireComplete||p.every(a=>a.terminal))}}I(Q,"executeProfileEvaluationRun");function $(e,n,o){if(n==="agent_action"){let i=e.find(p=>p.name==="workspace_action_result"&&p.action==="profile_workflow_action")?.output;if(typeof i!="string")throw new Error("Profile Agent action evaluation did not produce a released action result.");return i}if(o==="completed"){let t=[...e].reverse().find(f=>f.name==="turn.completed")?.data?.providerResponse;if(typeof t?.requestId!="string"||!t.requestId||typeof t.contentHash!="string")throw new Error("Profile evaluation has no retained final provider response.");let r=e.filter(f=>f.name==="assistant.delta"&&f.data?.providerRequestId===t.requestId).map(f=>f.output??"").join("");if(u(r)!==t.contentHash)throw new Error("Profile evaluation final provider response differs from its retained trace.");return r}return e.filter(i=>i.name==="assistant.delta"&&typeof i.output=="string").map(i=>i.output??"").join("")}I($,"profileEvaluationOutput");async function V(e){let{store:n,manifest:o,receipt:i}=e;if(!i.metadata.retainedEvidenceRef)return null;let p=y.parse(i.metadata.retainedEvidenceRef),[t,r]=await Promise.all([n.getSession(p.sessionId),n.getTurn(p.turnId)]),f=t?.metadata?.profileEvaluationRun,a=o.profileEvaluation;if(!t||!r||r.sessionId!==t.id||!a||!t.currentProfile||u(t.currentProfile)!==u(e.profileRef)||u(f)!==u({id:o.id,contentHash:o.contentHash})||t.metadata?.taskId!==i.taskId||t.metadata?.seed!==i.seed||!r.completedAt||r.completedAt!==i.completedAt||r.startedAt!==i.startedAt||!r.harnessSnapshot||r.harnessSnapshot.harnessRelease.id!==a.harnessRelease.id||r.harnessSnapshot.harnessRelease.contentHash!==a.harnessRelease.contentHash||o.policy.kind!=="model"||!r.modelRef||r.modelRef.providerId!==o.policy.model.provider||r.modelRef.modelId!==o.policy.model.model)throw new Error("Retained Profile policy turn differs from its admitted case.");let l=await n.runtimeEventsForTurn(r.id);if(l.some(g=>g.turnId!==r.id)||u(l)!==i.traceHash)throw new Error("Retained Profile policy trace differs from its immutable receipt.");let s=$(l,a.target.kind,r.status);if(i.outputHash!==null&&u({text:s})!==i.outputHash)throw new Error("Retained Profile output differs from its immutable receipt.");let d=i.artifactRefs.flatMap(g=>{let H=l.filter(m=>(m.action==="work_output_save"||m.action==="sandbox_save_output")&&m.status==="completed").flatMap(m=>{let z=m.data&&typeof m.data=="object"?m.data:{},A=O.safeParse(z.outputRef);return A.success?[A.data]:[]}).filter(m=>m.sourceTaskId===t.id&&m.sourceTurnId===r.id&&`${t.id}/${m.id}/${m.revision}/${m.title}`===g.id&&m.sha256===g.contentHash&&m.sizeBytes===g.sizeBytes&&m.contentType===g.mediaType);if(H.length!==1)throw new Error("The case output has no unique sealed saved-file identity.");let v=H[0];if(v.location.kind!=="managed")return[];let S=`/api/work/outputs/${encodeURIComponent(v.location.fileId)}`;if(v.location.downloadPath!==S)throw new Error("The saved output has no canonical managed download route.");return[{id:v.id,title:v.title,revision:v.revision,contentType:v.contentType,sizeBytes:v.sizeBytes,sha256:v.sha256,downloadPath:S}]}),c=await n.listModelUsageRecords({sessionId:t.id,turnId:r.id,limit:1e4}),w=e.eventAfterId?l.findIndex(g=>g.id===e.eventAfterId):-1;if(e.eventAfterId&&w<0)throw new Error("Profile trace cursor is unavailable in this case.");let E=w+1,P=Math.max(1,Math.min(250,e.eventLimit??100)),h=l.slice(E,E+P);return{ref:p,prompt:r.prompt,output:i.outputHash===null?null:{text:s},partialOutput:i.outputHash===null&&s?{text:s}:null,error:r.error,events:h,eventCount:l.length,nextEventCursor:E+h.length<l.length?h.at(-1).id:null,files:d,usage:c,usageCoverage:c.length===1e4?"partial":"complete"}}I(V,"readProfileEvaluationPolicyEvidence");var oe=R.object({runId:R.string().trim().min(1).max(240),receiptId:R.string().trim().min(1).max(500).optional(),eventAfterId:R.string().trim().min(1).max(500).optional(),eventLimit:R.number().int().min(1).max(250).optional(),manifest:q.optional()}).strict().refine(e=>e.receiptId||!e.eventAfterId&&!e.eventLimit,"Select a case before requesting its trace page.").refine(e=>!e.manifest||e.receiptId,"Interrupted-run inspection requires one exact case.");async function de(e){let n=await e.store.getProfileEvaluationRun(e.runId);if(n&&u(n.profileRef)!==u(e.profileRef))throw new Error("Profile evaluation run is unavailable in the selected Profile.");let o=n?.manifest??e.manifest;if(!o||!n&&!e.receiptId)throw new Error("Profile evaluation run is unavailable in the selected Profile.");if(n){if(e.manifest&&e.manifest.contentHash!==n.manifest.contentHash)throw new Error("Profile evaluation run differs from its pinned manifest.")}else if(M(o,"Interrupted Profile evaluation manifest"),o.id!==e.runId||o.profileEvaluation?.profileId!==e.profileRef.profileId||e.profileRef.source==="openpond_git"&&o.metadata.profileRepositoryId!==e.profileRef.repositoryId)throw new Error("Profile evaluation run is unavailable in the selected Profile.");let i=o.population.map((t,r)=>({member:t,index:r})).filter(({member:t})=>!e.receiptId||t.receiptId===e.receiptId);if(e.receiptId&&i.length!==1)throw new Error("Profile evaluation case is unavailable in the selected run.");let p=await Promise.all(i.map(async({member:t,index:r})=>{let f=n?null:await e.store.getProfileEvaluationReceipt(t.receiptId),a=n?.receiptRefs[r]??(f?{id:f.id,contentHash:f.contentHash}:null),l=n?.gradeRefs[r]??f?.graderEvidenceRefs[0];if(!a||!l)throw new Error("Profile evaluation run has incomplete case evidence.");let[s,d]=await Promise.all([e.store.getProfileEvaluationReceipt(a.id),e.store.getProfileEvaluationGrade(l.contentHash)]);if(!s||!n&&!k(s)||s.contentHash!==a.contentHash||s.id!==t.receiptId||s.taskId!==t.taskId||s.seed!==t.seed||s.runManifest.id!==o.id||s.runManifest.contentHash!==o.contentHash||!d||d.contentHash!==l.contentHash||!s.graderEvidenceRefs.some(c=>c.id===l.id&&c.contentHash===l.contentHash))throw new Error("Profile evaluation case evidence differs from its retained run.");return{taskId:t.taskId,seed:t.seed,receiptId:s.id,receiptHash:s.contentHash,traceHash:s.traceHash,outputHash:s.outputHash,score:d.score,passed:d.passed,gradingStatus:d.gradingStatus,failureClass:d.failureClass,artifactCount:s.artifactRefs.length,latencyMs:s.latencyMs,costUsd:s.costUsd,terminal:s.terminal,feedback:d.components.map(c=>({graderId:c.graderId,graderVersion:c.graderVersion,score:c.score,passed:c.passed,feedback:c.feedback})),...e.receiptId?{receipt:s,evidence:await V({store:e.store,profileRef:e.profileRef,manifest:o,receipt:s,eventAfterId:e.eventAfterId,eventLimit:e.eventLimit})}:{}}}));return{runId:o.id,sourceRevision:o.profileEvaluation?.sourceRevision??null,cases:p}}I(de,"inspectProfileEvaluationRun");export{Q as a,$ as b,oe as c,de as d};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
+
import{a as H,f as te,h as ae,i as ie}from"./chunk-T4QGDQHP.js";import{g as se}from"./chunk-STDMBJOQ.js";import{Ga as Y,Ha as Z,La as ee,xa as X}from"./chunk-2DFR7PJ4.js";import{I as re,K as oe}from"./chunk-4WEUCGJ3.js";import{Va as K,nb as b}from"./chunk-JIMU3KDA.js";import{Na as U,pc as Q,ra as P,wa as g}from"./chunk-YDT7L3VZ.js";import{J as G,K as F,L as T}from"./chunk-55G6B54U.js";import{Ka as N,La as y,Na as W,Ta as $,lb as L,u as _}from"./chunk-KD3QVRIJ.js";import{a as j,d as q}from"./chunk-JUJSA7KI.js";import{b as R,c as v,d as J,l as S,m as n}from"./chunk-KGNCKIFP.js";import{b as h}from"./chunk-ES2ISFJC.js";import{a as d}from"./chunk-FTQLQJQV.js";import{randomUUID as V,createHash as fe}from"node:crypto";import{mkdtemp as ue,mkdir as pe,writeFile as D,rm as me}from"node:fs/promises";import he from"node:os";import E from"node:path";var ne=d(async e=>{let a=g(e.packageValue);if(e.grader.runtime!=="sandbox_process")throw new Error("Select the sandbox process runtime for a local file grader.");if(!a.taskset.graders.some(r=>n(r)===n(e.grader)))throw new Error("The private grader differs from its package.");if(!a.taskset.tasks.some(r=>n(r)===n(e.task)))throw new Error("The private case differs from its package.");await e.authorize(),e.signal?.throwIfAborted();let i=await ue(E.join(he.tmpdir(),"profile-private-grade-")),t=V();try{for(let f of a.files.filter(l=>l.asset.visibility!=="policy")){let l=f.asset.path;if(E.isAbsolute(l)||l.split(/[\\/]/).some(u=>!u||u==="."||u===".."))throw new Error("Private grader asset path invalid.");let m=E.join(i,"package",l);await pe(E.dirname(m),{recursive:!0,mode:448}),await D(m,P(f),{mode:256})}await D(E.join(i,"request.json"),JSON.stringify({task:e.task,attempt:e.evidence,input:e.task.input,output:e.evidence.output,artifacts:"artifacts"in e.evidence?e.evidence.artifacts:[],expectedOutput:e.task.expectedOutput}),{mode:256});let r=`import fs from 'node:fs/promises'; const module=await import(${JSON.stringify("./package/"+e.grader.verifierRef.path)}); const result=await module[${JSON.stringify(e.grader.exportName??"verify")}](JSON.parse(await fs.readFile('request.json','utf8'))); console.log(JSON.stringify(result));`;await D(E.join(i,"runner.mjs"),r,{mode:256});let s=await ie({authorize:d(async()=>(await e.authorize(),e.signal?.throwIfAborted(),{candidateId:t,candidateRevision:1,ownerId:t,sessionId:t,turnId:t,sourceRoot:i,writablePaths:[]}),"authorize")})({candidateId:t,sessionId:t,turnId:t,expectedRevision:1,command:"/runtime/node --max-old-space-size=512 runner.mjs",timeoutMs:e.grader.timeoutMs,maxOutputBytes:7e4,signal:e.signal});if(await e.authorize(),e.signal?.throwIfAborted(),s.code!==0||s.timedOut||s.stdoutTruncated||s.stderrTruncated)throw new Error("Private grading sandbox did not complete.");return H.parse(JSON.parse(s.stdout))}finally{await me(i,{recursive:!0,force:!0})}},"executeLocalProfileVerifier");function Me(e){return async a=>{if(!a.manifest)throw new Error("The hosted grader requires its admitted manifest.");await a.authorize(),a.signal?.throwIfAborted();let i="artifacts"in a.evidence&&Array.isArray(a.evidence.artifacts)?a.evidence.artifacts.map(({reference:l,title:m,contentType:u})=>({reference:l,title:m,contentType:u})):[],t="caseOwner"in a.evidence?a.evidence.caseOwner:null;if(!t?.sessionId||!t.turnId)throw new Error("The private grader has no sealed case owner.");let r=Buffer.from(JSON.stringify({manifest:a.manifest,packageValue:a.packageValue,graderId:a.grader.id,taskId:a.task.id,evidence:{...a.evidence,artifacts:i}}));if(r.length>2e7)throw new Error("The private grading package exceeds its transport limit.");let o={callId:V(),sessionId:t.sessionId,turnId:t.turnId,sha256:fe("sha256").update(r).digest("hex"),sizeBytes:r.length,timeoutMs:a.grader.timeoutMs},s=d((l,m=12e4)=>e.request(oe.parse({contractVersion:re,requestId:V(),operation:"profile-evaluations/grade",params:l}),m),"request");for(let l=0;l<r.length;l+=98304)await a.authorize(),a.signal?.throwIfAborted(),await s({...o,action:"upload",offset:l,contentsBase64:r.subarray(l,l+98304).toString("base64")});let f=await s({...o,action:"execute"},a.grader.timeoutMs+12e4);return await a.authorize(),a.signal?.throwIfAborted(),H.parse(f)}}d(Me,"createHostedProfileVerifier");async function ge(e,a){let i=g(e);for(let r of i.taskset.graders){if(r.kind==="model_judge"&&(!a||r.calibrationStatus!=="passed"))throw new Error("This Profile requires its current calibrated judge and bounded private provider owner.");let o="verifierRef"in r?r.verifierRef:"rubricRef"in r?r.rubricRef:null;o&&A(i,o)}let t=i.taskset.metrics?.customAggregator;if(t){let r=i.files.find(o=>o.asset.path===t.module);if(!r||r.asset.visibility==="policy"||S(P(r))!==t.contentHash)throw new Error("The authored aggregate metric is not its exact private release.");new TextDecoder("utf8",{fatal:!0}).decode(P(r))}}d(ge,"preflightProfilePrivateGrading");function A(e,a){let i=e.files.find(t=>t.asset.id===a.id);if(!i||i.asset.visibility==="policy"||n(i.asset)!==n(a))throw new Error("The exact private grader asset is unavailable.");return new TextDecoder("utf8",{fatal:!0}).decode(P(i))}d(A,"readPrivate");async function $e(e){let a=g(e.packageValue);if(a.contentHash!==e.manifest.packageHash||a.taskset.contentHash!==e.manifest.tasksetRelease.contentHash)throw new Error("The private grading package changed its frozen Run identity.");await e.authorize(),await ge(a,!!e.executeBudgetedJudge),await e.authorize();let i=d(async({grader:o,task:s,evidence:f})=>{let l=e.signal;await e.authorize(),l?.throwIfAborted();let m={manifest:e.manifest,packageValue:a,grader:o,task:s,evidence:f,signal:l,authorize:e.authorize},u=e.executeSandboxVerifier?await e.executeSandboxVerifier(m):o.runtime==="sandbox_process"?await ne(m):await te({source:A(a,o.verifierRef),exportName:o.exportName,runtime:o.runtime,timeoutMs:o.timeoutMs,signal:l,value:{task:s,attempt:f,input:s.input,output:f.output,artifacts:"artifacts"in f?f.artifacts:[],expectedOutput:s.expectedOutput,infrastructureError:f.infrastructureError??null}});return await e.authorize(),l?.throwIfAborted(),{score:u.score,passed:u.passed,rewardEligible:o.rewardEligible,failureClass:null,feedback:[u.feedback],visibleEvidenceRefs:[],privilegedEvidenceRefs:u.evidenceRefs}},"customVerifier"),t=a.taskset.metrics?.customAggregator,r=t?new TextDecoder("utf8",{fatal:!0}).decode(P(a.files.find(o=>o.asset.path===t.module))):void 0;return{authorize:e.authorize,customVerifier:i,...e.executeBudgetedJudge?{modelJudge:L({readRubric:d(async o=>{await e.authorize();let s=A(a,o);return await e.authorize(),s},"readRubric"),executeBudgeted:d(async(o,s)=>{await e.authorize(),s?.throwIfAborted();let f=await e.executeBudgetedJudge(o,s);return await e.authorize(),s?.throwIfAborted(),f},"executeBudgeted")})}:{},...r!==void 0?{metricSource:r,metricExecutor:d(async o=>{await e.authorize(),o.signal?.throwIfAborted();let s=await ae(o);return await e.authorize(),o.signal?.throwIfAborted(),s},"metricExecutor")}:{}}}d($e,"createProfilePrivateGradingOwner");import{promises as ve}from"node:fs";import ke from"node:path";async function at(e){let a=e.definition.tasksetRelease,i=await se(e.store,e.harnessRelease);if(!i)throw new Error("Evaluation Profile Harness release is unavailable.");let t=await Re({...e,runtime:i});if(t)return t;let r=await e.store.listTasksetRevisions(e.profileId);for(let o of r){if(a.id!==o.id&&a.id!==`taskset-release-${o.id}-r${o.revision}`)continue;let s=await we(e.storeDir,o);if(s.taskset.id===a.id&&s.taskset.contentHash===a.contentHash)return s}throw new Error(`Released Taskset ${a.id} is unavailable in Profile ${e.profileId}.`)}d(at,"loadLocalProfileEvaluationTaskset");async function we(e,a){let i=a.metadata.importedPackageHash;if(typeof i=="string"){let o=await Z(e,i);if(o.taskset.id!==a.id||o.taskset.revision!==a.revision)throw new Error("Imported evaluation Taskset differs from its local Profile revision.");return o}if(U(a)!==a.contentHash)throw new Error("Authored evaluation Taskset differs from its immutable revision.");let t=Q({taskset:a,adapterId:X(a)}),r=await ee({storeDir:e,taskset:a,content:{schemaVersion:"openpond.tasksetPackage.v1",taskset:t.tasksetRelease,environment:t.environmentRelease,verifierSet:t.verifierSetRelease}});return await Y(e,r),r}d(we,"loadCandidate");async function Re(e){let a=e.definition.tasksetRelease,i=e.runtime;if(i.release.harnessRelease.id!==e.harnessRelease.id||i.release.harnessRelease.contentHash!==e.harnessRelease.contentHash)throw new Error("Evaluation Taskset runtime differs from its requested release.");let t=`evals/tasksets/${a.contentHash}.json`,r=i.release.harnessRelease.files.find(o=>o.path===t);if(r){if(r.visibility!=="verifier")throw new Error("Evaluation Taskset package is not verifier-private.");let o=await ve.readFile(ke.join(i.release.bundlePath,"source",...t.split("/")));if(S(o)!==r.contentHash)throw new Error("Released evaluation Taskset package bytes differ from their source receipt.");let s=g(JSON.parse(o.toString("utf8")));if(s.taskset.id!==a.id||s.taskset.contentHash!==a.contentHash)throw new Error("Released evaluation Taskset package differs from its definition.");return s}return null}d(Re,"loadReleasedProfileEvaluationTaskset");function C(e){return{id:W(e),label:"Selected Dataset evaluation",description:"Explicit sealed external Dataset evaluation recipe.",target:e.target,tasksetRelease:{id:e.dataset.id,contentHash:e.dataset.contentHash},split:e.split,taskIds:[...new Set(e.population.map(a=>a.taskId))],seeds:[...new Set(e.population.map(a=>a.seed))],criterion:e.criterion}}d(C,"externalProfileEvaluationDefinition");async function lt(e){let a=e.manifest.profileEvaluation,i=a?.externalDatasetBinding?y(a.externalDatasetBinding):null;if(!i)return null;if(!e.resolveExternalDataset)throw new Error("This owner has no authorized external Dataset resolver.");let t=await e.resolveExternalDataset(i,e.selected);await t.authorize();let r=g(t.packageValue),o=await e.loadCatalog({ref:e.selected.profileRef,sourceRevision:e.selected.sourceRevision,harnessRelease:e.selected.harnessRelease});if(n(t.binding)!==n(i)||i.profileId!==e.selected.profileRef.profileId||i.declaredProfileCatalogHash!==o.catalogHash||r.contentHash!==i.packageHash||n(r.taskset)!==n(e.taskset)||i.environmentHash!==n(r.taskset.environment)||i.privateDatasetClosureHash!==n(r.files.filter(l=>l.asset.visibility!=="policy").map(l=>l.asset)))throw new Error("External Dataset admission changed its actual Profile, package or private closure.");let s=C(i),f={schemaVersion:"openpond.profileEvaluations.v1",definitions:[s],suites:[]};if(T(e.manifest,e.taskset,f),!a||a.catalogHash!==n(f)||a.definitionHash!==n(s)||n(a.target)!==n(i.target))throw new Error("External Dataset manifest changed its derived definition.");return await t.authorize(),{...t,packageValue:r,definition:s,catalog:f}}d(lt,"admitProfileExternalDataset");var Pe=h.object({id:R,createdAt:J,definitionId:R,externalDatasetBinding:N.optional(),profileRef:K.optional(),profileSource:h.object({sourceRevision:h.string().min(1).max(500),harnessRelease:h.object({id:R,contentHash:v}).strict()}).strict().optional(),modelRef:q,hostModelConfigurationHash:v.optional(),hostArtifactHash:v.optional(),maximumSpendUsd:h.number().positive().max(1e4).optional(),expectedManifestHash:v.optional(),hostExperiment:h.object({definition:h.object({id:R,revision:h.number().int().positive(),contentHash:v}).strict().nullable(),configurationHash:v,project:h.object({id:R,revision:h.number().int().positive(),contentHash:v,targetId:R.nullable()}).strict().optional()}).strict().optional()}).strict();function vt(e){return async(a,i)=>{let t=Pe.parse(a);if(i?.requireExpectedManifestHash&&!t.expectedManifestHash)throw new Error("Profile evaluation execution requires the reviewed manifest hash.");if(t.profileSource&&!t.profileRef)throw new Error("An exact Profile source requires its accepted Profile reference.");let r=i?.selectedWorkflows??await e.selectedWorkflows(t.profileRef,t.profileSource);if(t.profileRef&&n(t.profileRef)!==n(r.profileRef))throw new Error("Profile preparation did not resolve the explicitly selected Profile.");if(t.profileSource&&(r.sourceRevision!==t.profileSource.sourceRevision||n(r.harnessRelease)!==n(t.profileSource.harnessRelease)))throw new Error("Profile preparation changed its explicitly pinned source.");let o=t.externalDatasetBinding?y(t.externalDatasetBinding):null,s=o?await(e.resolveExternalDataset?e.resolveExternalDataset(o,r):Promise.reject(new Error("This host has not qualified external Dataset Profile execution."))):null;if(s&&(await s.authorize(),n(y(s.binding))!==n(o)))throw new Error("External Dataset admission differs from the actual authorized recipe.");let f=await e.loadCatalog({ref:r.profileRef,sourceRevision:r.sourceRevision,harnessRelease:r.harnessRelease});if(o&&o.declaredProfileCatalogHash!==f.catalogHash)throw new Error("The original Profile verifier catalog changed.");let l=o?C(o):null;if(l&&t.definitionId!==l.id)throw new Error("Use the external recipe's own definition identity.");let m={schemaVersion:"openpond.profileEvaluations.v1",definitions:l?[l]:f.definitions,suites:l?[]:f.suites},u=l??f.definitions.find(c=>c.id===t.definitionId);if(!u)throw new Error(`Evaluation ${t.definitionId} is absent from the selected Profile release.`);let k=u.target,z=k.kind==="workflow"?r.workflows.find(c=>c.binding.workflowId===k.workflowId)?.binding:_.parse({schemaVersion:"openpond.profileComponentBinding.v1",profileId:r.profileRef.profileId,sourceRevision:r.sourceRevision,harnessRelease:r.harnessRelease,target:k});if(!z)throw new Error(`Evaluation workflow ${k.kind==="workflow"?k.workflowId:""} is absent from the selected Profile release.`);let w=g(s?.packageValue??await e.loadTasksetPackage(u,r.profileRef.profileId,r.harnessRelease)),p=w.taskset;if(p.id!==u.tasksetRelease.id||p.contentHash!==u.tasksetRelease.contentHash)throw new Error("Evaluation Taskset package differs from its released definition.");let le=p.environment.kind==="text"&&p.tools.length===0,M=p.environment.kind==="work"&&p.environment.entrypoint==="openpond-work-v1"&&p.tools.every(c=>["work_exec","work_save_output"].includes(c.name));if(!le&&!M)throw new Error("Profile evaluation supports text cases or Work cases with the built-in execution and output tools.");if(t.maximumSpendUsd!==void 0&&M&&!e.boundedWorkComputeAvailable)throw new Error("This host has not admitted budgeted Work compute.");if(p.tasks.some(c=>c.artifactRefs.length>b.maxAttachments||c.artifactRefs.some(x=>x.visibility!=="policy"||x.mediaType!=="application/pdf"||x.sizeBytes>b.maxAttachmentBytes)))throw new Error("Profile evaluation accepts only bounded policy-visible PDF task attachments.");if(!o&&!e.privateGradingPreflight&&(p.graders.some(c=>c.kind==="model_judge"||c.kind==="custom_verifier")||p.metrics?.aggregation==="custom"))throw new Error("Profile evaluation cannot run this Taskset's model judge, custom verifier, or custom metric in the current app-server runtime.");await e.privateGradingPreflight?.(w);let B={adapterId:k.kind==="workflow"?"openpond.profile-workflow":"openpond.profile-component",placement:e.placement,runtimeVersion:"app-server-v1",capabilityReceipt:n({adapterId:k.kind==="workflow"?"openpond.profile-workflow":"openpond.profile-component",packageHash:w.contentHash,connectedAppScopes:p.policy.connectedAppScopes})},ce={...$({catalog:m,definitionId:u.id,profileId:r.profileRef.profileId,sourceRevision:r.sourceRevision,harnessRelease:r.harnessRelease,environmentHash:n({packageHash:w.contentHash,runtimeTarget:B})}),...o?{externalDatasetBinding:o}:{},...e.sourceCandidate?{sourceCandidate:e.sourceCandidate}:{}};if(o&&(o.packageHash!==w.contentHash||o.environmentHash!==n(p.environment)||o.privateDatasetClosureHash!==n(w.files.filter(c=>c.asset.visibility!=="policy").map(c=>c.asset))))throw new Error("External Dataset package/environment/private closure changed.");let de=j.parse({provider:t.modelRef.providerId,model:t.modelRef.modelId,revision:null,artifactHash:t.hostArtifactHash??null,tokenizerRevision:null,chatTemplateHash:null}),O=await e.modelConfigurationHash(t.modelRef,t),I=G({schemaVersion:"openpond.tasksetRunManifest.v1",id:t.id,tasksetRelease:u.tasksetRelease,packageHash:w.contentHash,execution:{kind:"harness",harnessRelease:r.harnessRelease},profileEvaluation:ce,policy:{kind:"model",model:de,configurationHash:O},gradingRole:"evaluation",metricPolicy:F(p),population:o?o.population.map(c=>({...c,receiptId:`evaluation-${n([t.id,c.taskId,c.seed,c.fixtureId]).slice(0,32)}`})):u.taskIds.flatMap(c=>u.seeds.map(x=>({receiptId:`evaluation-${n([t.id,c,x]).slice(0,32)}`,taskId:c,seed:x,fixtureId:null}))),runtimeTarget:B,limits:{maxTurns:128,timeoutMs:p.environment.defaultTimeoutMs,maxOutputBytes:25e7,maximumSpendUsd:t.maximumSpendUsd??null},createdAt:t.createdAt,metadata:{sourceTasksetId:p.metadata.sourceTasksetId??p.id,...r.profileRef.source==="openpond_git"?{profileRepositoryId:r.profileRef.repositoryId}:{},...t.hostExperiment?{experimentDefinition:t.hostExperiment.definition,experimentConfigurationHash:t.hostExperiment.configurationHash,...t.hostExperiment.project?{project:t.hostExperiment.project}:{}}:{}}});if(T(I,p,m),s&&await s.authorize(),t.expectedManifestHash&&I.contentHash!==t.expectedManifestHash)throw new Error("Profile evaluation setup changed since preview; prepare the run again.");return{manifest:I,taskset:p,profileRef:r.profileRef,binding:z,modelRef:t.modelRef,modelConfigurationHash:O}}}d(vt,"createProfileEvaluationRunPreparationService");export{ne as a,Me as b,ge as c,$e as d,at as e,Re as f,lt as g,vt as h};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
-
import{b as ie,c as se,d as ce}from"./chunk-
|
|
2
|
+
import{b as ie,c as se,d as ce}from"./chunk-R27YGT77.js";import{h as X,k as Z}from"./chunk-EAPFMACH.js";import{a as I}from"./chunk-6FA3GG5B.js";import{n as V,o as G,u as J}from"./chunk-NNIRIUSY.js";import{c as o,d as H,e as l,f as K,h as ae,i as w}from"./chunk-3M53YXEI.js";import{a as i}from"./chunk-FTQLQJQV.js";import{existsSync as j,readFileSync as _e}from"node:fs";import{createRequire as Ie}from"node:module";import b from"node:path";function de(e){let n=b.join(e,"node_modules","openpond-agent-sdk","dist","cli.js");if(j(n))return{command:process.execPath,args:[n]};let t=b.join(e,"node_modules",".bin","openpond-agent");if(j(t))return{command:t,args:[]};let r=b.join(e,"node_modules","openpond-agent-sdk","src","cli.ts");if(j(r))return ue(b.dirname(b.dirname(r)),r);let a=De(e);return a||{command:"openpond-agent",args:[]}}i(de,"resolveLocalAgentSdkCommand");function De(e){let n=b.join(e,"package.json");if(!j(n))return null;try{let t=JSON.parse(_e(n,"utf8")),r=t.dependencies?.["openpond-agent-sdk"]??t.devDependencies?.["openpond-agent-sdk"]??t.peerDependencies?.["openpond-agent-sdk"];if(!r?.startsWith("file:"))return null;let a=b.resolve(e,r.slice(5)),d=b.join(a,"src","cli.ts");if(j(d))return ue(a,d);let s=b.join(a,"dist","cli.js");if(j(s))return{command:process.execPath,args:[s]}}catch{return null}return null}i(De,"resolveAgentSdkDependencyCli");function ue(e,n){let t=Ie(b.join(e,"package.json")).resolve("tsx/cli");return{command:process.execPath,args:[t,n]}}i(ue,"nodeTypescriptCommand");import{Buffer as A}from"node:buffer";import{existsSync as U,promises as P}from"node:fs";import m from"node:path";import{createHash as Te}from"node:crypto";import{existsSync as T,promises as M,readFileSync as ye,statSync as Me}from"node:fs";import{tmpdir as $e}from"node:os";import y from"node:path";import{gunzipSync as ze}from"node:zlib";import{existsSync as C}from"node:fs";import v from"node:path";function L(e,n){let t=n.packageManager;if(typeof t=="string"){let r=t.split("@")[0];if(r==="bun"||r==="npm"||r==="pnpm"||r==="yarn")return r}return C(v.join(e,"bun.lock"))||C(v.join(e,"bun.lockb"))?"bun":C(v.join(e,"pnpm-lock.yaml"))?"pnpm":C(v.join(e,"yarn.lock"))?"yarn":C(v.join(e,"package-lock.json"))||C(v.join(e,"npm-shrinkwrap.json"))?"npm":"unknown"}i(L,"detectAgentSdkPackageManager");function le(e){return e==="npm"?"npm install --offline":e==="pnpm"?"pnpm install --offline":e==="yarn"?"yarn install --offline":e==="bun"?"bun install --offline":"pnpm install --offline"}i(le,"agentSdkDependencyInstallCommand");function pe(e,n){return e==="pnpm"?`pnpm run ${n}`:e==="yarn"?`yarn ${n}`:e==="npm"?`npm run ${n}`:e==="bun"?`bun run ${n}`:`pnpm run ${n}`}i(pe,"agentSdkRunScriptCommand");function ge(e,n){return e==="pnpm"?`pnpm --silent run ${n}`:e==="yarn"?`yarn --silent ${n}`:e==="npm"?`npm run --silent ${n}`:e==="bun"?`bun run --silent ${n}`:`pnpm --silent run ${n}`}i(ge,"agentSdkRunJsonScriptCommand");var ke=".openpond/vendor/openpond-agent-sdk.tgz",Ue=".openpond/vendor/npm",Ne=`file:${ke}`,fe="# openpond-agent-sdk-source-upload: synthesized-openpond-yaml";async function ne(e,n,t={}){return J(e,n,{cwd:t.cwd})}i(ne,"runCommand");function Je(e){for(let n of["dependencies","devDependencies","peerDependencies"]){let t=e[n];if(!t||typeof t!="object"||Array.isArray(t))continue;let r=t["openpond-agent-sdk"];if(typeof r=="string"&&r.trim())return r.trim()}return null}i(Je,"readOpenPondAgentSdkVersionSpec");async function he(e,n){let t=Ke(e,n);if(!t)return null;let r=await M.mkdtemp(y.join($e(),"openpond-agent-sdk-pack-"));try{let a=t.kind==="package_root"?await Le(t.packageRoot,r):t.kind==="registry"?await He(t.versionSpec,r):t.tarballContents,d=await Fe({sdkPackageJson:t.packageJson,dependencyBaseDir:t.dependencyBaseDir,projectPackageJson:n,projectPath:e,tempDir:r}),s=L(e,n),c=Xe(n,d,s),u=s==="pnpm"||s==="unknown"?Ze(e,d):null,p=le(s),f={packageName:"openpond-agent-sdk",source:"uploaded_tarball",path:ke,sha256:O(a),sizeBytes:a.byteLength};return{rewrittenPackageJson:c,pnpmWorkspaceSource:u,tarballs:[{...f,contents:a},...d],dependencySetup:{required:!0,packageManager:s,installCommand:p,commands:[p],packageJsonPath:"package.json",expectedBinaryPath:"node_modules/.bin/openpond-agent",generatedArtifactDirectory:".openpond",sdkPackage:f,dependencyPackages:d.map(g=>({packageName:g.packageName,source:g.source,versionSpec:g.versionSpec,path:g.path,sha256:g.sha256,sizeBytes:g.sizeBytes}))}}}finally{await M.rm(r,{recursive:!0,force:!0})}}i(he,"buildAgentSdkMaterializedDependency");async function Le(e,n){let t=await ne("npm",["pack","--silent","--pack-destination",n,e],{cwd:e});if(t.code!==0){let a=[t.stderr.trim(),t.stdout.trim()].filter(Boolean).join(`
|
|
3
3
|
`);throw new Error(`failed to pack openpond-agent-sdk for source upload${a?`:
|
|
4
4
|
${a}`:""}`)}let r=t.stdout.trim().split(/\r?\n/).filter(Boolean).pop();if(!r)throw new Error("failed to pack openpond-agent-sdk for source upload: npm pack did not return a tarball name");return M.readFile(y.join(n,r))}i(Le,"packOpenPondAgentSdkPackageRoot");async function Fe(e){let n=D(e.sdkPackageJson.dependencies),t=D(e.projectPackageJson.dependencies),r=D(e.projectPackageJson.devDependencies);delete t["openpond-agent-sdk"],delete r["openpond-agent-sdk"];let a=[...Object.entries(n).map(([c,u])=>({packageName:c,versionSpec:u,dependencyBaseDir:e.dependencyBaseDir})),...Object.entries(t).map(([c,u])=>({packageName:c,versionSpec:u,dependencyBaseDir:e.projectPath})),...Object.entries(r).map(([c,u])=>({packageName:c,versionSpec:u,dependencyBaseDir:e.projectPath}))].sort((c,u)=>c.packageName.localeCompare(u.packageName)),d=new Set,s=[];for(;a.length>0;){let{packageName:c,versionSpec:u,dependencyBaseDir:p}=a.shift();if(d.has(c))continue;d.add(c);let f=We({packageName:c,versionSpec:u,dependencyBaseDir:p}),g=await ne("npm",["pack","--silent","--pack-destination",e.tempDir,f],{cwd:p});if(g.code!==0){let h=[g.stderr.trim(),g.stdout.trim()].filter(Boolean).join(`
|
|
5
5
|
`);throw new Error(`failed to pack openpond-agent-sdk dependency ${c}${h?`:
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
+
import{Ab as _,Bb as z,Cb as K,Db as G,l as P,mb as ie,nb as oe,o as d,qb as ce,rb as me,tb as q,wa as ne,wb as T,zb as M}from"./chunk-YDT7L3VZ.js";import{I as R}from"./chunk-55G6B54U.js";import{I as X,J as Q,La as Y,Oa as Z,Pa as ee,Qa as te,Ra as re,Va as se,hb as C,ib as ae,xa as W}from"./chunk-KD3QVRIJ.js";import{b as w,c as f,d as y,f as S,m as u,n as U}from"./chunk-KGNCKIFP.js";import{b as t}from"./chunk-ES2ISFJC.js";import{a as l}from"./chunk-FTQLQJQV.js";var de=t.object({schemaVersion:t.literal("openpond.profileEvaluationComparison.v1"),id:w,tasksetRelease:S,populationHash:f,environmentHash:f,metricPolicyHash:f,limitsHash:f,members:t.array(t.object({runManifest:S,metricResultHash:f,source:re,policy:R.shape.policy,score:t.number().min(0).max(1).nullable()}).strict()).min(2).max(100),createdAt:y}).strict(),L=de.extend({contentHash:f}).strict();function Ve(r){if(r.members.length<2)throw new Error("A comparison requires at least two runs.");let e=r.members.map(({manifest:o,result:p})=>{if(R.parse(o),U(o,"Taskset run manifest"),Q(p),!o.profileEvaluation||o.execution.kind!=="harness")throw new Error("Profile comparison requires released Profile evaluation runs.");if(p.runManifest.id!==o.id||p.runManifest.contentHash!==o.contentHash||p.tasksetRelease.id!==o.tasksetRelease.id||p.tasksetRelease.contentHash!==o.tasksetRelease.contentHash||p.policyHash!==u(o.metricPolicy))throw new Error("Profile comparison metric differs from its run manifest.");return{manifest:o,result:p,source:o.profileEvaluation}}),s=e[0],a=u(s.manifest.population.map(({taskId:o,seed:p,fixtureId:g})=>({taskId:o,seed:p,fixtureId:g}))),n=u(s.manifest.metricPolicy),c=u(s.manifest.limits),i=new Set;for(let o of e){if(i.has(o.manifest.id))throw new Error("Profile comparison repeats a run.");if(i.add(o.manifest.id),o.manifest.tasksetRelease.id!==s.manifest.tasksetRelease.id||o.manifest.tasksetRelease.contentHash!==s.manifest.tasksetRelease.contentHash||u(o.manifest.population.map(({taskId:p,seed:g,fixtureId:v})=>({taskId:p,seed:g,fixtureId:v})))!==a||o.source.environmentHash!==s.source.environmentHash||u(o.manifest.metricPolicy)!==n||u(o.manifest.limits)!==c||o.manifest.runtimeTarget.adapterId!==s.manifest.runtimeTarget.adapterId||o.manifest.runtimeTarget.placement!==s.manifest.runtimeTarget.placement||o.manifest.runtimeTarget.runtimeVersion!==s.manifest.runtimeTarget.runtimeVersion)throw new Error("Profile comparison runs differ in frozen tasks, environment, grading, limits, or runtime.")}let m=de.parse({schemaVersion:"openpond.profileEvaluationComparison.v1",id:r.id,tasksetRelease:s.manifest.tasksetRelease,populationHash:a,environmentHash:s.source.environmentHash,metricPolicyHash:n,limitsHash:c,members:e.map(({manifest:o,result:p,source:g})=>({runManifest:{id:o.id,contentHash:o.contentHash},metricResultHash:p.contentHash,source:g,policy:o.policy,score:p.value})),createdAt:r.createdAt});return L.parse({...m,contentHash:u(m)})}l(Ve,"createProfileEvaluationComparison");var le=t.object({schemaVersion:t.literal("openpond.profileEvaluationSuiteRun.v1"),id:w,suiteId:w,suiteHash:f,catalogHash:f,profileId:w,sourceRevision:t.string().trim().min(1).max(240),harnessRelease:S,members:t.array(t.object({definitionId:w,runManifest:S,runHash:f,passed:t.boolean(),score:t.number().min(0).max(1).nullable()}).strict()).min(1).max(1e3),passed:t.boolean(),createdAt:y,completedAt:y}).strict(),V=le.extend({contentHash:f}).strict();function We(r){let e=te.parse(r.catalog),s=e.suites.find(m=>m.id===r.suiteId);if(!s)throw new Error(`Profile evaluation suite ${r.suiteId} is absent from its catalog.`);if(r.members.length!==s.definitionIds.length)throw new Error("Profile evaluation suite has an incomplete run population.");let a=r.members.map((m,o)=>{let p=s.definitionIds[o],g=e.definitions.find(b=>b.id===p);if(!g||m.definitionId!==p)throw new Error("Profile evaluation suite members differ from declared definition order.");let v=R.parse(m.manifest);U(v,"Profile evaluation suite member manifest");let x=v.profileEvaluation;if(!x||v.execution.kind!=="harness"||x.definitionId!==p||x.definitionHash!==u(g)||u(x.target)!==u(g.target)||x.catalogHash!==u(e)||v.tasksetRelease.id!==g.tasksetRelease.id||v.tasksetRelease.contentHash!==g.tasksetRelease.contentHash)throw new Error("Profile evaluation suite member differs from its released definition.");return{...m,manifest:v,source:x}}),n=a[0].source,c=a[0].manifest.policy;if(c.kind!=="model")throw new Error("Profile evaluation suite requires model runs.");for(let m of a){if(m.source.profileId!==n.profileId||m.source.sourceRevision!==n.sourceRevision||m.source.harnessRelease.id!==n.harnessRelease.id||m.source.harnessRelease.contentHash!==n.harnessRelease.contentHash)throw new Error("Profile evaluation suite members use different Profile releases.");let o=m.manifest.policy;if(o.kind!=="model"||u(o)!==u(c))throw new Error("Profile evaluation suite members use different model configurations.")}let i=le.parse({schemaVersion:"openpond.profileEvaluationSuiteRun.v1",id:r.id,suiteId:s.id,suiteHash:u(s),catalogHash:u(e),profileId:n.profileId,sourceRevision:n.sourceRevision,harnessRelease:n.harnessRelease,members:a.map(m=>({definitionId:m.definitionId,runManifest:{id:m.manifest.id,contentHash:m.manifest.contentHash},runHash:m.runHash,passed:m.passed,score:m.score})),passed:a.every(m=>m.passed),createdAt:r.createdAt,completedAt:r.completedAt});return V.parse({...i,contentHash:u(i)})}l(We,"createProfileEvaluationSuiteRun");var qe=t.object({profileId:w,sourceRevision:t.string().trim().min(1).max(240),harnessRelease:S}).strict(),Te=t.object({kind:t.enum(["run","suite","comparison"]),id:w,contentHash:f}).strict(),pe=t.object({schemaVersion:t.literal("openpond.profileEvaluationReport.v1"),id:w,createdAt:y,testedSources:t.array(qe).min(1).max(100),tasksetReleases:t.array(S).min(1).max(100),metricPolicyHashes:t.array(f).min(1).max(100),modelConfigurationHashes:t.array(f).min(1).max(100),evidence:t.array(Te).min(1).max(100),summary:t.object({totalChecks:t.number().int().nonnegative(),passedChecks:t.number().int().nonnegative(),failedChecks:t.number().int().nonnegative(),unscoredChecks:t.number().int().nonnegative(),meanScore:t.number().min(0).max(1).nullable()}).strict()}).strict().superRefine((r,e)=>{let{summary:s}=r;s.passedChecks+s.failedChecks+s.unscoredChecks!==s.totalChecks&&e.addIssue({code:"custom",path:["summary"],message:"Report check counts must add up."}),new Set(r.evidence.map(({kind:a,id:n})=>`${a}:${n}`)).size!==r.evidence.length&&e.addIssue({code:"custom",path:["evidence"],message:"Report evidence must be unique."})}),D=pe.safeExtend({contentHash:f});function rt(r){let e=pe.parse(r);return D.parse({...e,contentHash:u(e)})}l(rt,"createProfileEvaluationReport");function st(r){let e=D.parse(r),{contentHash:s,...a}=e;if(u(a)!==s)throw new Error("Profile evaluation report content hash differs from its source bytes.");return e}l(st,"assertProfileEvaluationReport");var j=t.string().trim().min(1).max(200),A=t.object({operationId:j,execution:P,executionKind:t.literal("recorded_evidence").optional(),graders:t.array(W).min(1).max(100),maximumCostUsd:t.number().finite().min(1e-6).max(1e4),mappings:t.array(t.object({graderId:j,fields:q}).strict()).max(100).optional()}).strict().superRefine((r,e)=>{new Set(r.graders.map(s=>s.id)).size!==r.graders.length&&e.addIssue({code:"custom",path:["graders"],message:"Select each grader once."}),r.mappings&&(new Set(r.mappings.map(s=>s.graderId)).size!==r.mappings.length||r.mappings.some(s=>!r.graders.some(a=>a.id===s.graderId)))&&e.addIssue({code:"custom",path:["mappings"],message:"Map each selected grader at most once."})}),je=t.object({schemaVersion:t.literal("openpond.experimentScoringPass.v1"),id:j,teamId:j,revision:t.number().int().positive(),request:A,graders:t.array(T).min(1).max(100),status:t.enum(["queued","running","cancelling","completed","failed","cancelled"]),totalCount:t.number().int().min(1).max(1e4),counts:t.object({pending:t.number().int().nonnegative(),running:t.number().int().nonnegative(),scored:t.number().int().nonnegative(),unavailable:t.number().int().nonnegative(),failed:t.number().int().nonnegative(),cancelled:t.number().int().nonnegative()}).strict(),resultAvailable:t.boolean(),createdAt:t.iso.datetime(),startedAt:t.iso.datetime().nullable(),completedAt:t.iso.datetime().nullable(),error:t.object({code:j,message:t.string().max(2e3)}).strict().nullable()}).strict(),ue=je.extend({contentHash:t.string().regex(/^[a-f0-9]{64}$/)});function $(r){let e=ue.parse(r),{contentHash:s,...a}=e;if(d(a)!==s||Object.values(e.counts).reduce((c,i)=>c+i,0)!==e.totalCount)throw new Error("Scoring pass integrity or population accounting failed.");let n=["completed","failed","cancelled"].includes(e.status);if(n&&(!e.completedAt||e.counts.pending||e.counts.running)||!n&&(e.completedAt!==null||e.resultAvailable)||e.status==="completed"&&!e.resultAvailable)throw new Error("Scoring pass lifecycle differs from its retained result.");if(e.graders.length!==e.request.graders.length||new Set(e.graders.map(c=>c.feedbackKey)).size!==e.graders.length||e.graders.some((c,i)=>d(c.release)!==d(e.request.graders[i])||d(c.mappings??[])!==d(e.request.mappings?.find(m=>m.graderId===c.release?.id)?.fields??[])))throw new Error("Scoring pass graders differ from their exact admission.");return e}l($,"verifyExperimentScoringPass");var fe=8388608;async function he(r,e,s,a){let n=new AbortController,c=s.signal,i=l(()=>n.abort(c?.reason),"forward");c?.aborted?i():c?.addEventListener("abort",i,{once:!0});let m=setTimeout(()=>n.abort(new Error("Connected evidence request timed out.")),6e4),o,p=l(()=>{o&&o.cancel(n.signal.reason).catch(()=>{})},"abortReader");n.signal.addEventListener("abort",p,{once:!0});let g=new Promise((v,x)=>{let b=l(()=>x(n.signal.reason??new DOMException("Request aborted","AbortError")),"abort");n.signal.aborted?b():n.signal.addEventListener("abort",b,{once:!0})});try{let v=r(e,{...s,signal:n.signal}).then(E=>{if(n.signal.aborted)throw E.body?.cancel(n.signal.reason).catch(()=>{}),n.signal.reason;return E}),x=await Promise.race([v,g]),b=x.headers.get("content-length");if(o=x.body?.getReader(),n.signal.aborted)throw await o?.cancel(n.signal.reason),n.signal.reason;if(b&&Number(b)>fe)throw await o?.cancel(),a(502,"connected_response_too_large","Connected evidence response exceeds 8 MiB.");let J=[],O=0;if(o)for(;;){let E=await Promise.race([o.read(),g]);if(E.done)break;if(O+=E.value.byteLength,O>fe)throw await o.cancel(),a(502,"connected_response_too_large","Connected evidence response exceeds 8 MiB.");J.push(E.value)}let N=new Uint8Array(O),B=0;for(let E of J)N.set(E,B),B+=E.byteLength;let F;try{F=JSON.parse(new TextDecoder("utf-8",{fatal:!0}).decode(N))}catch{throw a(502,"connected_response_invalid","Connected evidence response is not valid JSON.")}return{response:x,value:F}}finally{clearTimeout(m),c?.removeEventListener("abort",i),n.signal.removeEventListener("abort",p),o?.releaseLock()}}l(he,"fetchConnectedJson");var ge=t.string().regex(/^[a-f0-9]{64}$/),xe=t.object({request:ie,maximumCostUsd:t.number().finite().positive().max(1e4),graders:t.array(T).min(1).max(100),admissionRequestHash:ge.optional(),sourceExperimentId:t.string().trim().min(1).max(200).optional()}).strict(),ve=xe.extend({configurationHash:ge}).strict(),we=oe.extend({configuration:ve}).strict();function k(r){return r.policy.kind==="hosted_harness"?{...r,population:r.population.map(({receiptId:e,...s})=>s)}:r}l(k,"experimentConfigurationRequest");function Ee(r){let e=xe.parse(r);return d({...e,request:k(e.request)})}l(Ee,"experimentRunConfigurationHash");async function Se(r){let e=we.parse(r),{configuration:s,...a}=e,n=await me(a),{configurationHash:c,...i}=s;if(c!==Ee(i)||d(k(s.request))!==d(k(n.request))||s.maximumCostUsd!==n.manifest.limits.maximumSpendUsd)throw new Error("Experiment configuration differs from its retained run.");if(n.manifest.metadata.experimentDefinition===null){let m=_.parse({definition:null,configurationHash:s.configurationHash,maximumCostUsd:s.maximumCostUsd,graders:s.graders,...s.admissionRequestHash?{admissionRequestHash:s.admissionRequestHash}:{},...s.sourceExperimentId?{sourceExperimentId:s.sourceExperimentId}:{}});if(n.manifest.metadata.experimentConfigurationHash!==d(m))throw new Error("Experiment configuration differs from its admitted manifest.")}return{...n,configuration:s}}l(Se,"verifyExperimentRunDetails");var Ie=t.object({teamId:t.string().trim().min(1).max(240),items:t.array(t.object({name:t.string().trim().min(1).max(500),source:se,ready:t.boolean(),reason:t.string().min(1).max(2e3).nullable()}).strict()).max(8),nextCursor:t.string().min(1).max(8192).nullable()}).strict(),h=t.string().trim().min(1).max(200),be=class extends Error{static{l(this,"OpenPondExperimentError")}constructor(r,e,s){super(s),this.status=r,this.code=e,this.name="OpenPondExperimentError"}status;code},Ue=class{static{l(this,"OpenPondExperimentsClient")}constructor(r){this.options=r;let e=new URL(r.baseUrl);if(!["http:","https:"].includes(e.protocol)||e.username||e.password||e.search||e.hash||!r.apiKey.trim()||!r.teamId.trim())throw new Error("A clean API origin and workspace credentials are required.");this.baseUrl=e.toString().replace(/\/+$/,"")}options;baseUrl;async harnessSources(r={}){let e=r.cursor===void 0?void 0:t.string().min(1).max(8192).parse(r.cursor),s=new URLSearchParams(e?{cursor:e}:{}),a=Ie.parse(await this.request(`/harness-sources?${s}`,"GET",void 0,r.signal));if(a.teamId!==this.options.teamId||new Set(a.items.map(n=>d(n.source))).size!==a.items.length||a.nextCursor!==null&&a.nextCursor===e||a.items.some(n=>n.ready!==(n.reason===null)))throw new Error("Harness catalog differs from its workspace, readiness or continuation.");return a}async prepareHarness(r,e){let s=z.parse(r),a=K.parse(await this.request("/harness-setup","POST",s,e));ce(a.request,a.manifest);let n=a.request.policy;if(a.request.teamId!==this.options.teamId||a.request.operationId!==s.operationId||n.kind!=="hosted_harness"||n.profileRepositoryId!==s.profileRepositoryId||n.source.definitionId!==s.definitionId||n.modelId!==s.modelId||n.reasoningEffort!==s.reasoningEffort||a.maximumCostUsd!==s.maximumCostUsd||a.manifest.limits.maximumSpendUsd!==s.maximumCostUsd)throw new Error("Harness preparation differs from its requested scope or configuration.");return a}async run(r,e){let s=G.parse(r);if(s.request.teamId!==this.options.teamId)throw new Error("Experiment workspace mismatch.");let a=await this.details(await this.request("","POST",s,e));if(d(k(a.request))!==d(k(s.request))||a.configuration.maximumCostUsd!==s.maximumCostUsd||a.configuration.sourceExperimentId!==s.sourceExperimentId||a.configuration.admissionRequestHash!==d(s))throw new Error("Experiment admission differs from its submitted configuration.");if(s.graders&&d(s.graders)!==d(a.configuration.graders.map(n=>({id:n.id,version:n.version,contentHash:n.contentHash,mappings:n.mappings??[]}))))throw new Error("Experiment admission differs from its selected graders or mappings.");return a}async get(r,e={}){return this.details(await this.request(`/${encodeURIComponent(h.parse(r))}`,"GET",void 0,e.signal),r)}async list(r={},e){let s=M.parse(r),a=new URLSearchParams(Object.entries(s).filter(([,i])=>i!==void 0).map(([i,m])=>[i,String(m)])),n=t.object({items:t.array(t.unknown()).max(100),nextCursor:h.nullable()}).strict().parse(await this.request(`?${a}`,"GET",void 0,e)),c=await Promise.all(n.items.map(i=>this.details(i)));if(c.length>s.limit||new Set(c.map(i=>i.summary.id)).size!==c.length||n.nextCursor!==null&&n.nextCursor!==c.at(-1)?.summary.id||c.some(i=>s.projectId&&i.request.project?.id!==s.projectId||s.datasetHash&&i.request.taskset.contentHash!==s.datasetHash||s.status&&i.summary.status!==s.status))throw new Error("Experiment page differs from its selected scope.");return{items:c,nextCursor:n.nextCursor}}async result(r,e){let s=t.object({executionId:h,passId:h.nullable(),manifest:t.unknown(),result:t.unknown()}).strict().parse(await this.request(`/${encodeURIComponent(h.parse(r))}/result`,"GET",void 0,e)),a=C(s);if(s.executionId!==r||a.manifest.teamId!==this.options.teamId||a.manifest.lineage?.execution.id!==r||a.manifest.lineage.scoringPassId!==s.passId)throw new Error("Experiment result identity mismatch.");return{...a,executionId:r,passId:s.passId}}async cancel(r,e){return this.details(await this.request(`/${encodeURIComponent(h.parse(r))}/cancel`,"POST",{},e),r)}async duplicate(r,e,s){let a=await this.details(await this.request(`/${encodeURIComponent(h.parse(r))}/duplicate`,"POST",{operationId:h.parse(e)},s));if(a.request.operationId!==e||a.configuration.sourceExperimentId!==r||a.summary.id===r)throw new Error("Duplicate Experiment admission differs from its source or operation.");return a}async score(r,e){let s=A.parse(r),a=this.pass(await this.request(`/${encodeURIComponent(s.execution.id)}/scoring-passes`,"POST",s,e));if(d(a.request)!==d(s))throw new Error("Scoring admission differs from its submitted inputs.");return a}async scoringPass(r,e){return this.pass(await this.request(`/scoring-passes/${encodeURIComponent(h.parse(r))}`,"GET",void 0,e),r)}async scoringPasses(r,e={}){let s=new URLSearchParams(e.afterId?{afterId:h.parse(e.afterId)}:{});e.executionKind&&s.set("executionKind",t.literal("recorded_evidence").parse(e.executionKind));let a=t.object({items:t.array(t.unknown()).max(30),nextCursor:h.nullable()}).strict().parse(await this.request(`/${encodeURIComponent(h.parse(r))}/scoring-passes?${s}`,"GET",void 0,e.signal)),n=a.items.map(c=>this.pass(c));if(n.some(c=>c.request.execution.id!==r||c.request.executionKind!==e.executionKind)||new Set(n.map(c=>c.id)).size!==n.length)throw new Error("Scoring pass page differs from its execution ownership.");return{items:n,nextCursor:a.nextCursor}}async cancelScoringPass(r,e){return this.pass(await this.request(`/scoring-passes/${encodeURIComponent(h.parse(r))}/cancel`,"POST",{},e),r)}async scoringResult(r,e){let s=t.object({executionId:h,passId:h,manifest:t.unknown(),result:t.unknown()}).strict().parse(await this.request(`/scoring-passes/${encodeURIComponent(h.parse(r))}/result`,"GET",void 0,e)),a=C(s);if(s.passId!==r||a.manifest.teamId!==this.options.teamId||a.manifest.id!==r||a.manifest.lineage?.execution.id!==s.executionId||a.manifest.lineage.scoringPassId!==r)throw new Error("Scoring result identity mismatch.");return{...a,executionId:s.executionId,passId:r}}async compare(r,e,s){let a=l(i=>i.startsWith("score_")?this.scoringResult(i,s):this.result(i,s),"read"),[n,c]=await Promise.all([a(r),a(e)]);return{baseline:n,candidate:c,comparison:ae(n,c)}}async details(r,e){let s=await Se(r);if(s.summary.teamId!==this.options.teamId||e&&s.summary.id!==e)throw new Error("Experiment identity mismatch.");return s}pass(r,e){let s=$(r);if(s.teamId!==this.options.teamId||e&&s.id!==e)throw new Error("Scoring pass identity mismatch.");return s}async request(r,e,s,a){let n=await(this.options.fetch??fetch)(`${this.baseUrl}/v1/experiments${r}`,{method:e,signal:a,redirect:"error",headers:{Authorization:`Bearer ${this.options.apiKey}`,"X-OpenPond-Team-Id":this.options.teamId,"Content-Type":"application/json",Accept:"application/json"},...s===void 0?{}:{body:JSON.stringify(s)}}),c=await n.json();if(!n.ok){let i=t.object({code:t.string(),message:t.string()}).safeParse(c);throw new be(n.status,i.success?i.data.code:"experiment_request_failed",i.success?i.data.message:"Experiment request failed.")}return c}},I=t.string().trim().min(1).max(500),ye=t.string().regex(/^[a-f0-9]{64}$/),De=t.object({schemaVersion:t.literal("openpond.experimentCaseInspection.v1"),teamId:I,executionId:I,manifestHash:ye,receiptId:I,taskId:I,seed:t.string().min(1),input:t.record(t.string(),t.unknown()).nullable(),output:t.unknown().nullable(),error:t.string().nullable(),events:t.array(t.record(t.string(),t.unknown())).max(25),nextEventCursor:I.nullable(),eventCount:t.number().int().nonnegative()}).strict(),Re=De.extend({contentHash:ye}).strict(),Ae=class{static{l(this,"OpenPondExperimentInspectionClient")}constructor(r){this.options=r;let e=new URL(r.baseUrl);if(!["http:","https:"].includes(e.protocol)||e.username||e.password||e.search||e.hash||!r.apiKey.trim()||!r.teamId.trim())throw new Error("A clean API origin and workspace credentials are required.");this.baseUrl=e.toString().replace(/\/+$/,"")}options;baseUrl;async case(r,e,s={}){let a=new URLSearchParams(s.afterId?{afterId:I.parse(s.afterId)}:{}),n=await(this.options.fetch??fetch)(`${this.baseUrl}/v1/experiments/${encodeURIComponent(I.parse(r))}/cases/${encodeURIComponent(I.parse(e))}?${a}`,{signal:s.signal,redirect:"error",headers:{Authorization:`Bearer ${this.options.apiKey}`,"X-OpenPond-Team-Id":this.options.teamId,Accept:"application/json"}}),c=await n.json();if(!n.ok)throw new Error(t.object({message:t.string()}).parse(c).message);let i=Re.parse(c),{contentHash:m,...o}=i;if(d(o)!==m||i.teamId!==this.options.teamId||i.executionId!==r||i.receiptId!==e||s.manifestHash&&i.manifestHash!==s.manifestHash||i.events.length>i.eventCount)throw new Error("Case inspection differs from its requested workspace, execution or retained content.");return i}};function He(r){return JSON.stringify(r.release?["reward",r.release.id,r.release.revision,r.release.contentHash,r.feedbackKey]:["dataset",r.id,r.version,r.contentHash,r.feedbackKey])}l(He,"datasetGraderIdentity");function Pe(r){let e=new Map;for(let s of r){let a=He(s),n=e.get(a);n?n.aliases.push(s):e.set(a,{key:a,grader:s,aliases:[s]})}return[...e.values()]}l(Pe,"groupDatasetGraders");function $e(r){let e=Pe(r),s=new Map;for(let a of e){let n=s.get(a.grader.feedbackKey);if(n&&n!==a.key)throw new Error(`Different selected grader releases use feedback key "${a.grader.feedbackKey}". Select one, or publish graders with distinct feedback keys.`);s.set(a.grader.feedbackKey,a.key);let c=JSON.stringify(a.grader.mappings??[]);if(a.aliases.some(i=>JSON.stringify(i.mappings??[])!==c))throw new Error(`Aliases of grader "${a.grader.feedbackKey}" have different field mappings. Select one alias and review its mappings.`)}return e.map(a=>a.grader)}l($e,"canonicalDatasetGraderSelection");function Oe(r){let e=Y(r.binding),s=ne(r.packageValue),a=s.taskset;if(a.id!==e.dataset.id||a.revision!==e.dataset.revision||a.contentHash!==e.dataset.contentHash||s.contentHash!==e.packageHash||d(a.environment)!==e.environmentHash||d(s.files.filter(n=>n.asset.visibility!=="policy").map(n=>n.asset))!==e.privateDatasetClosureHash)throw new Error("The selected Dataset package, environment or protected closure changed.");if(e.population.length>500)throw new Error("Select at most 500 exact Dataset cases before starting this bounded Profile evaluation.");for(let n of e.population){let c=a.tasks.find(i=>i.id===n.taskId);if(!c||c.split!==e.split)throw new Error("The selected ordered population is outside its exact Dataset split.");if(n.fixtureId!==null)throw new Error("This recorded cutoff needs an admitted replay fixture before executing the Profile target.")}if(e.gradingSource){if(!r.actualGrading)throw new Error("The actual selected scoring owner is required for this recipe.");let n=$(r.actualGrading.pass),c=C(t.object({manifest:t.unknown(),result:t.unknown()}).strict().parse(r.actualGrading.evidence));if(n.status!=="completed"||n.id!==e.gradingSource.pass.id||n.contentHash!==e.gradingSource.pass.contentHash||c.manifest.id!==e.gradingSource.evidence.id||c.result.contentHash!==e.gradingSource.evidence.contentHash||c.manifest.lineage?.scoringPassId!==n.id||d(c.manifest.dataset)!==d(e.dataset)||d(c.manifest.evaluators)!==d(e.evaluators)||d(e.fieldMappings)!==d(n.graders.map(o=>({graderId:o.id,fields:o.mappings??[]}))))throw new Error("The selected scoring owner changed its exact Dataset, measurements or mappings.");let i=c.manifest.population,m=e.recordedOrigin?e.recordedOrigin.members.map(o=>({caseId:o.caseId,seed:o.seed,fixtureId:o.fixtureId})):e.population.map(o=>({caseId:o.taskId,seed:o.seed,fixtureId:o.fixtureId}));if(i.length!==m.length||i.some((o,p)=>d(o)!==d(m[p])))throw new Error("The selected scoring population differs from the exact ordered original cases and cutoffs.")}else{if(e.fieldMappings.some(i=>!a.graders.some(m=>m.id===i.graderId)))throw new Error("The field mappings name a grader outside the selected release.");for(let i of e.fieldMappings)q.parse(i.fields);let n=e.evaluators.map(i=>{let m=r.graders.find(o=>o.feedbackKey===i.feedbackKey&&d(o.release??{id:o.id,revision:o.version,contentHash:o.contentHash})===d(i.release));if(!m)throw new Error("Select an exact released Dataset grader for this external recipe.");return m});if(e.fieldMappings.some(i=>!n.some(m=>m.id===i.graderId)))throw new Error("Field mappings refer to an unselected grader.");let c=n.map(i=>({release:i.release??{id:i.id,revision:i.version,contentHash:i.contentHash},feedbackKey:i.feedbackKey,configurationHash:d({graderHash:i.contentHash,mappings:e.fieldMappings.find(m=>m.graderId===i.id)?.fields??[]}),output:"score",categories:[]}));if(d(c)!==d(e.evaluators))throw new Error("The external recipe's graders or mappings differ from the current exact released grading settings.");for(let i of r.graders)if(!a.graders.some(m=>m.id===i.id&&m.version===i.version&&d(m)===i.contentHash))throw new Error("External grader pins differ from the actual Dataset implementation.")}for(let n of r.graders)if(!a.graders.some(c=>c.id===n.id&&c.version===n.version&&d(c)===n.contentHash))throw new Error("Dataset-native grader pins differ from their actual implementation.");return s}l(Oe,"verifyExternalDatasetPackage");var H=t.string().trim().min(1).max(240),ke=t.object({profileRef:t.object({source:t.enum(["local","github","openpond_git"]),repositoryId:H,profileId:H}).strict(),sourceRevision:t.string().min(1).max(500),harnessRelease:P,catalogHash:t.string().regex(/^[a-f0-9]{64}$/).nullable(),definitions:t.array(Z).max(1e3),suites:t.array(ee).max(100),runs:t.array(t.object({profileRef:t.object({source:t.enum(["local","github","openpond_git"]),repositoryId:H,profileId:H}).strict(),manifest:R,metric:X,gradeRefs:t.array(P),receiptRefs:t.array(P),passRate:t.number().min(0).max(1),passed:t.boolean(),completedAt:t.iso.datetime(),contentHash:t.string().regex(/^[a-f0-9]{64}$/)}).strict()).max(1e3),comparisons:t.array(L).max(1e3),suiteRuns:t.array(V).max(1e3),reports:t.array(D).max(1e3)}).strict(),Ce=t.object({teamId:H,profileRepositoryId:H,trainingProjectId:H.optional()}).strict(),Me=class{static{l(this,"OpenPondProfileEvaluationDiscoveryClient")}constructor(r){this.options=r;let e=new URL(r.baseUrl);if(!["http:","https:"].includes(e.protocol)||e.username||e.password||e.search||e.hash||!r.apiKey.trim()||!r.teamId.trim())throw new Error("Profile discovery requires a scoped HTTP endpoint and owner credential.")}options;async read(r,e){let s=Ce.parse({...r,teamId:this.options.teamId}),{response:a,value:n}=await he(this.options.fetch??fetch,`${this.options.baseUrl.replace(/\/$/,"")}/v1/profile-evaluation-discovery`,{method:"POST",redirect:"error",headers:{Authorization:`Bearer ${this.options.apiKey}`,"X-OpenPond-Team-Id":this.options.teamId,"Content-Type":"application/json"},body:JSON.stringify(s),signal:e},(i,m,o)=>new Error(o));if(!a.ok)throw new Error("The released Profile evaluation owner is unavailable to this account and workspace.");let c=ke.parse(n);if(c.profileRef.repositoryId!==s.profileRepositoryId)throw new Error("Profile discovery returned another source owner.");return c}};export{L as a,Ve as b,rt as c,st as d,V as e,We as f,A as g,he as h,be as i,Ue as j,Ae as k,$e as l,Oe as m,Me as n};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
+
import{Ed as H,Fd as y,Gd as C,Id as E,Kd as S,Ld as P,Md as j}from"./chunk-JIMU3KDA.js";import{h as I}from"./chunk-QDHMP5FS.js";import{Pb as w,Rb as b,l as h,n as v,o as l}from"./chunk-YDT7L3VZ.js";import{b as e}from"./chunk-ES2ISFJC.js";import{a as f}from"./chunk-FTQLQJQV.js";var a=e.string().min(1).max(240),d=e.string().regex(/^[a-f0-9]{64}$/),g=e.string().regex(/^[a-f0-9]{40}$/),x=e.object({schemaVersion:e.literal("openpond.hostedProfileCandidateExport.v1"),actorId:a,teamId:a,candidateId:a,candidateRevision:e.number().int().positive(),projectId:a.nullable(),profileRef:e.object({source:e.literal("openpond_git"),repositoryId:a,profileId:a}).strict(),expectedCommit:g,component:y.shape.component,baseRelease:h,frozenHash:d,executableSourceHash:d,protectedClosureHash:d,compiler:e.object({workspaceId:a,name:e.string().max(500),repositoryId:a}).strict(),sourceManifest:e.object({base64:e.string().max(28e5),contentHash:d,sizeBytes:e.number().int().positive().max(2e6)}).strict(),policySource:w,qualification:e.object({kind:e.enum(["owner_attested_local","hosted_execution"]),ownerActorId:a,teamId:a,originalEvidence:h,baseline:h,candidate:h,comparisonHash:d,recipe:H}).strict(),createdAt:e.string().datetime(),contentHash:d}).strict();function J(n){let o=x.parse(n),{contentHash:t,...c}=o;if(l(c)!==t||o.qualification.ownerActorId!==o.actorId||o.qualification.teamId!==o.teamId||o.qualification.recipe.externalDatasetBinding.profileId!==o.profileRef.profileId||o.qualification.recipe.externalDatasetBinding.protectedProfileClosureHash!==o.protectedClosureHash)throw new Error("Hosted candidate owner attestation identity differs.");return b(o.policySource),o}f(J,"verifyHostedProfileCandidateExport");var O=e.object({schemaVersion:e.literal("openpond.hostedProfileCandidateAdoption.v1"),id:a,operationId:a,actorId:a,teamId:a,candidateId:a,exportHash:d,executionOrigin:e.enum(["owner_attested_local","hosted_execution"]),qualification:x.shape.qualification,testedCandidateRelease:h,activeRelease:h,expectedCommit:g,committedProfileGit:g,executableSourceHash:d,protectedClosureHash:d,createdAt:e.string().datetime(),contentHash:d}).strict();function R(n){let o=O.parse(n),{contentHash:t,...c}=o;if(l(c)!==t||o.executionOrigin!==o.qualification.kind||o.qualification.ownerActorId!==o.actorId||o.qualification.teamId!==o.teamId)throw new Error("Hosted candidate receipt integrity differs.");return o}f(R,"verifyHostedProfileCandidateReceipt");var T=e.discriminatedUnion("operation",[e.object({operation:e.literal("adopt"),operationId:a,export:x}).strict(),e.object({operation:e.enum(["read","rollback"]),operationId:a,adoptionOperationId:a,profileRepositoryId:a}).strict()]),K=class{static{f(this,"ExperimentImprovementClient")}constructor(n){this.options=n;let o=new URL(n.baseUrl);if(!["http:","https:"].includes(o.protocol)||o.username||o.password||o.hash||o.search||!n.apiKey.trim()||!n.teamId.trim()||!n.actorId.trim())throw new Error("Select the authenticated Improve owner and API origin.");this.origin=o.toString().replace(/\/+$/,"")}options;origin;async hostedCandidate(n,o){let t=T.parse(n);if(t.operation==="adopt"&&(t.export.actorId!==this.options.actorId||t.export.teamId!==this.options.teamId))throw new Error("The hosted candidate export belongs to a different owner.");let{response:c,value:p}=await I(this.options.fetch??fetch,`${this.origin}/v1/profile-candidate-adoptions`,{method:"POST",redirect:"error",headers:{Authorization:`Bearer ${this.options.apiKey}`,"Content-Type":"application/json","X-OpenPond-Team-Id":this.options.teamId},body:JSON.stringify({teamId:this.options.teamId,command:t}),signal:o},(m,u,r)=>Object.assign(new Error(r),{status:m,code:u}));if(!c.ok){let m=e.object({code:e.string(),message:e.string().optional(),error:e.string().optional()}).passthrough().safeParse(p);throw Object.assign(new Error(m.success?m.data.message??m.data.error??m.data.code:"Hosted candidate operation failed."),{status:c.status,code:m.success?m.data.code:void 0})}let i=R(p);if(i.actorId!==this.options.actorId||i.teamId!==this.options.teamId||i.operationId!==t.operationId||t.operation==="adopt"&&(i.exportHash!==t.export.contentHash||i.candidateId!==t.export.candidateId||i.testedCandidateRelease.contentHash!==t.export.policySource.harnessRelease.contentHash))throw new Error("Hosted candidate readback differs from the exact owner request.");return i}async command(n,o){let t=S.parse(n),{response:c,value:p}=await I(this.options.fetch??fetch,`${this.origin}/v1/experiment-improvements`,{method:"POST",redirect:"error",headers:{Authorization:`Bearer ${this.options.apiKey}`,"Content-Type":"application/json","X-OpenPond-Team-Id":this.options.teamId},body:JSON.stringify({teamId:this.options.teamId,request:t}),signal:o},(r,s,q)=>Object.assign(new Error(q),{status:r,code:s}));if(!c.ok){let r=e.object({error:e.string(),code:e.string().optional()}).passthrough().safeParse(p);throw Object.assign(new Error(r.success?r.data.error:"The Improve operation failed."),{status:c.status,code:r.success?r.data.code:void 0})}if(t.operation==="options"){let r=P.parse(p);if(r.teamId!==this.options.teamId||l(r.evidence)!==l(t.evidence))throw new Error("The Improve choices changed their exact originating evidence.");return r}if(t.operation==="humanComparisonOptions"){let r=j(p);if(r.candidateId!==t.id||r.actorId!==this.options.actorId||r.teamId!==this.options.teamId)throw new Error("Human discovery belongs to another owner or candidate.");return r}if(t.operation==="instructions"){let r=e.object({candidateId:e.string(),candidateRevision:e.number().int().positive(),path:e.string(),text:e.string().max(25e4),textHash:e.string().regex(/^[a-f0-9]{64}$/),contentHash:e.string().regex(/^[a-f0-9]{64}$/)}).strict().parse(p);if(r.candidateId!==t.id||v(r.text)!==r.textHash)throw new Error("The candidate instructions belong to a different revision.");return r}let i=t.operation==="list"?E.parse(p):null;if(t.operation==="list"&&i&&(i.states.length>t.limit||i.states.some((r,s)=>t.cursor&&r.id<=t.cursor||s>0&&r.id<=i.states[s-1].id)||i.nextCursor&&(t.cursor&&i.nextCursor<=t.cursor||i.states.some(r=>r.id>i.nextCursor))))throw new Error("The retained candidate page changed its scan boundary.");let u=(i?i.states:[p]).map(r=>{let s=C(r);if(s.actorId!==this.options.actorId||s.teamId!==this.options.teamId||"id"in t&&s.id!==t.id)throw new Error("The Improve response belongs to a different owner or candidate.");if(t.operation==="start"&&s.requestHash!==l(t.request))throw new Error("The Improve request identity changed.");return s});return i?{states:u,nextCursor:i.nextCursor}:u[0]}};export{J as a,K as b};
|