openpond 0.2.44 → 0.2.45
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app-server.d.ts +12010 -3269
- package/dist/app-server.js +1 -1
- package/dist/chunks/actions-command-CRDLSPFA.js +2 -0
- package/dist/chunks/{app-layer-7SPLENWD.js → app-layer-MDJFV3HZ.js} +1 -1
- package/dist/chunks/app-server-runtime-PJONTCCO.js +2 -0
- package/dist/chunks/apps-MD2DKEDW.js +2 -0
- package/dist/chunks/{chunk-ZEVARU6J.js → chunk-25GCTLAZ.js} +1 -1
- package/dist/chunks/chunk-3BJ4P5LI.js +520 -0
- package/dist/chunks/chunk-3SRIPOJQ.js +2 -0
- package/dist/chunks/{chunk-PEYA2Q7Q.js → chunk-4EGDKOYP.js} +3 -3
- package/dist/chunks/{chunk-Z6ZR5O3J.js → chunk-5ZFEQLRI.js} +1 -1
- package/dist/chunks/chunk-6BL2ZIAP.js +184 -0
- package/dist/chunks/chunk-6QUICEQA.js +5 -0
- package/dist/chunks/chunk-7D2WMUWK.js +3 -0
- package/dist/chunks/chunk-7KIBRK3A.js +4 -0
- package/dist/chunks/{chunk-ANVOHBUV.js → chunk-B6LYKEMU.js} +1 -1
- package/dist/chunks/chunk-CXS3WXL3.js +2 -0
- package/dist/chunks/chunk-DWGB536R.js +19 -0
- package/dist/chunks/{chunk-OI2N2636.js → chunk-EG55BFQ4.js} +1 -1
- package/dist/chunks/chunk-ELNJUG64.js +17 -0
- package/dist/chunks/{chunk-W5NQ2DI7.js → chunk-FXIUKYUR.js} +1 -1
- package/dist/chunks/chunk-GEDEVI4Y.js +2 -0
- package/dist/chunks/chunk-H3C4ZYEA.js +16 -0
- package/dist/chunks/chunk-HUBI3RUK.js +2 -0
- package/dist/chunks/{chunk-X2B4MN6W.js → chunk-IYRHG54Q.js} +1 -1
- package/dist/chunks/chunk-J65BMG5Q.js +2 -0
- package/dist/chunks/chunk-KOR2AZVB.js +24 -0
- package/dist/chunks/{chunk-2CXJK2M3.js → chunk-LL4QP2IM.js} +1 -1
- package/dist/chunks/chunk-M2YXYBSP.js +2 -0
- package/dist/chunks/chunk-NPOHW5OU.js +2 -0
- package/dist/chunks/{chunk-KRC2S5QF.js → chunk-NXUCGKY2.js} +3 -3
- package/dist/chunks/chunk-PDIT2QS7.js +8 -0
- package/dist/chunks/{chunk-YF6IDYTS.js → chunk-PGKEDR3S.js} +1 -1
- package/dist/chunks/chunk-QVRNOGAU.js +21 -0
- package/dist/chunks/chunk-TNXILYI6.js +2 -0
- package/dist/chunks/chunk-TVQE3JMI.js +2 -0
- package/dist/chunks/chunk-U6SFIFDM.js +2409 -0
- package/dist/chunks/chunk-V6WBSW5Q.js +3 -0
- package/dist/chunks/chunk-VESOG2SS.js +2 -0
- package/dist/chunks/chunk-VFTUP5NQ.js +2 -0
- package/dist/chunks/{chunk-RAWEO7SJ.js → chunk-VVV5I22A.js} +2 -2
- package/dist/chunks/chunk-XPB6NY7L.js +42 -0
- package/dist/chunks/{chunk-OMM4ZO7E.js → chunk-XWLI7WJH.js} +2 -24
- package/dist/chunks/{chunk-KIGN4FI6.js → chunk-YWX7FKLM.js} +1 -1
- package/dist/chunks/cli-BKBH6FZY.js +2 -0
- package/dist/chunks/{configuration-command-LDPUCHVH.js → configuration-command-75ZCMZ6X.js} +1 -1
- package/dist/chunks/connected-evidence-UPUVVQ6P.js +2 -0
- package/dist/chunks/{continual-MHMPLLUZ.js → continual-WWPXK2LO.js} +1 -1
- package/dist/chunks/core-commands-SS2GV7WU.js +2 -0
- package/dist/chunks/datasets-TCLXV34N.js +2 -0
- package/dist/chunks/desktop-test-7ZHZHUB6.js +3 -0
- package/dist/chunks/{dist-6YP37XI5.js → dist-VDN6E54A.js} +1 -1
- package/dist/chunks/evaluation-coordination-ZX5GLMRC.js +2 -0
- package/dist/chunks/experiment-improvements-O6DCQXCX.js +2 -0
- package/dist/chunks/experiments-JOQOBQXY.js +2 -0
- package/dist/chunks/{extension-JEUZZJ5X.js → extension-3M2CSWZB.js} +1 -1
- package/dist/chunks/{help-4F4QGL4C.js → help-RLRU33WN.js} +1 -1
- package/dist/chunks/hosted-experiment-improvement-IKO677PI.js +3 -0
- package/dist/chunks/hosted-harness-runtime-H2Q2SNZT.js +2 -0
- package/dist/chunks/hosted-profile-candidate-FHHSLJNO.js +3 -0
- package/dist/chunks/hosted-profile-compiler-5B256VV3.js +2 -0
- package/dist/chunks/hosted-profile-evaluation-control-Z25TZOW4.js +2 -0
- package/dist/chunks/hosted-profile-evaluation-inspection-MFYPLTZQ.js +3 -0
- package/dist/chunks/hosted-profile-evaluation-preparation-MAB2PSCC.js +3 -0
- package/dist/chunks/human-review-6H3BW7OZ.js +2 -0
- package/dist/chunks/learning-Y6WNDVQW.js +2 -0
- package/dist/chunks/{opchat-UFWWVJL6.js → opchat-3E4FH3DC.js} +1 -1
- package/dist/chunks/organizations-PRVCUPMN.js +2 -0
- package/dist/chunks/{profile-ESULTWDN.js → profile-DC4UEVVG.js} +1 -1
- package/dist/chunks/project-agent-ZX3CELKI.js +2 -0
- package/dist/chunks/sandbox-command-HHQMZK3G.js +2 -0
- package/dist/chunks/{sandbox-template-7WHGNVM6.js → sandbox-template-DFHWHCIQ.js} +1 -1
- package/dist/chunks/{src-A3OVZOSV.js → src-CREVQF7M.js} +1 -1
- package/dist/chunks/src-MAZ7OBVY.js +327 -0
- package/dist/chunks/taskset-TB2ICAZU.js +2 -0
- package/dist/chunks/{teams-bot-YMCDLBGT.js → teams-bot-BNBL57S5.js} +1 -1
- package/dist/chunks/training-FW5FOGR3.js +2 -0
- package/dist/chunks/{workspaces-ZZ7R5BUL.js → workspaces-WTPFRJMS.js} +1 -1
- package/dist/cli.js +1 -1
- package/dist/index.js +1 -1
- package/dist/web/assets/App-BgeSqoRS.css +1 -0
- package/dist/web/assets/App-C6EWFrLP.js +227 -0
- package/dist/web/assets/{AppDialog-CV3ddujB.js → AppDialog-Cgn_fTGR.js} +1 -1
- package/dist/web/assets/{AppTerminalPanel-dhbGOO_K.js → AppTerminalPanel-cNYkSvM2.js} +2 -2
- package/dist/web/assets/{AppsView-Bxa-9BF2.js → AppsView-9zpKBSLv.js} +1 -1
- package/dist/web/assets/{BrowserSidebar-BLwL2FOG.js → BrowserSidebar-Xo21N1ej.js} +1 -1
- package/dist/web/assets/{CartesianChart-BOxN-Su1.js → CartesianChart-Bg3Lm5mZ.js} +1 -1
- package/dist/web/assets/{CollaborationTabs-DTmJvNJx.js → CollaborationTabs-BIfgIy5X.js} +1 -1
- package/dist/web/assets/{CommandMenu-DggN2ygj.js → CommandMenu-D9BimyPx.js} +1 -1
- package/dist/web/assets/{CommunityView-CuDrYOIf.js → CommunityView-BoW-yLju.js} +1 -1
- package/dist/web/assets/{ComposerCreateImproveStrip-BrduENlL.js → ComposerCreateImproveStrip-BIKVEgr1.js} +1 -1
- package/dist/web/assets/{GetStartedView-Db1IEWzv.js → GetStartedView-B99v4-hh.js} +1 -1
- package/dist/web/assets/HostedModelLearningReview-DEScpX2Z.js +1 -0
- package/dist/web/assets/HostedModelLearningSettings-4HT5eEiL.js +1 -0
- package/dist/web/assets/LabModelVersionDetailPage-DkYdI7gr.js +1 -0
- package/dist/web/assets/{LabSkillSidebar-Bz0U-Nmw.js → LabSkillSidebar-Bp5XYipm.js} +1 -1
- package/dist/web/assets/LabsRoute-ACN76d2j.css +1 -0
- package/dist/web/assets/LabsRoute-VopO7n34.js +105 -0
- package/dist/web/assets/MainChatThread-3Gg0oDZT.js +2 -0
- package/dist/web/assets/{MainPane-Cs2Kng_k.js → MainPane-CUqMVG9-.js} +11 -11
- package/dist/web/assets/{MarkdownText-BhzHRq1J.js → MarkdownText-De0WzrEw.js} +1 -1
- package/dist/web/assets/{NativeSkillSidebar-LU-PhEhW.js → NativeSkillSidebar-B4jtf5RO.js} +1 -1
- package/dist/web/assets/{NewExperienceSwitcher-Bi_gpHLG.js → NewExperienceSwitcher-Bg1DVr96.js} +1 -1
- package/dist/web/assets/{NewProjectDialog-B8pWvSkq.js → NewProjectDialog-i_wvIBw-.js} +1 -1
- package/dist/web/assets/{OutputsPage-BkGI0kHp.js → OutputsPage-CZiPxLyN.js} +1 -1
- package/dist/web/assets/{ProjectsPage-Ca8_iEWu.js → ProjectsPage-BD0eml0M.js} +1 -1
- package/dist/web/assets/RightChatPanelStack-CEBFPHKP.js +1 -0
- package/dist/web/assets/{RightSidebarHomePanel-6pygznxX.js → RightSidebarHomePanel-BTpU5wGh.js} +1 -1
- package/dist/web/assets/{ScheduledWorkPage-BSiOxxAH.js → ScheduledWorkPage-Y6XGoh-X.js} +1 -1
- package/dist/web/assets/{SettingsView-1XN7KLBl.js → SettingsView-Kh14f463.js} +3 -3
- package/dist/web/assets/{TeamChatView-BGLCPTen.js → TeamChatView-5LjuRNd6.js} +2 -2
- package/dist/web/assets/{TerminalOverlay-DHkS2cVJ.js → TerminalOverlay-BCWBSotQ.js} +1 -1
- package/dist/web/assets/{TrainingCreationPanel-Dneamjzh.js → TrainingCreationPanel-hvOHRVJx.js} +1 -1
- package/dist/web/assets/{TrainingDraftPanel-Cfh59jLZ.js → TrainingDraftPanel-CGEHGljE.js} +1 -1
- package/dist/web/assets/{UsageSettingsSection-C9l1KY-O.js → UsageSettingsSection-B8nbqhag.js} +1 -1
- package/dist/web/assets/{WorkSidebarPanel-CEnO-Txp.js → WorkSidebarPanel-B6hlPEIs.js} +1 -1
- package/dist/web/assets/{WorkspaceDiffPanel-BiuQBflC.js → WorkspaceDiffPanel-q8A15-0x.js} +9 -9
- package/dist/web/assets/{WorkspaceEnvironmentMenu-Dr-E0c1j.js → WorkspaceEnvironmentMenu-BiFTPWtC.js} +1 -1
- package/dist/web/assets/{WorkspaceGitDialogs-mE3Og6Zo.js → WorkspaceGitDialogs-Dyx4Rbiy.js} +1 -1
- package/dist/web/assets/{WorkspaceMonacoEditor-DPZ0n0G9.js → WorkspaceMonacoEditor-B1dKexHo.js} +3 -3
- package/dist/web/assets/{arrow-up-right-DU2KsZD-.js → arrow-up-right-CCj7SOGp.js} +1 -1
- package/dist/web/assets/chunk-DJWHN7NU-1eQoMoKO.js +1 -0
- package/dist/web/assets/{clipboard-g2b4_k81.js → clipboard-BY6ELc9Z.js} +1 -1
- package/dist/web/assets/{cloud-upload-P2bDOPsQ.js → cloud-upload-BOka5EKK.js} +1 -1
- package/dist/web/assets/{cssMode-CPbPVAUt.js → cssMode-C34j8ti5.js} +1 -1
- package/dist/web/assets/{folder-open-BmsONNsr.js → folder-open-CX2jidFj.js} +1 -1
- package/dist/web/assets/{folder-plus-B18NgUxy.js → folder-plus-Dh2Q9LP3.js} +1 -1
- package/dist/web/assets/{git-commit-horizontal-enxGCV_e.js → git-commit-horizontal-CfevriuT.js} +1 -1
- package/dist/web/assets/{htmlMode-DiV88uQv.js → htmlMode-BORwVkZg.js} +1 -1
- package/dist/web/assets/{index-vfpCN9zy.js → index-BBjRfC--.js} +2 -2
- package/dist/web/assets/{info-DmuSBIYe.js → info-Bv3dbs3G.js} +1 -1
- package/dist/web/assets/{jsonMode-BaeOjuKU.js → jsonMode-BYWtZ6AK.js} +1 -1
- package/dist/web/assets/{lspLanguageFeatures-D8To0CQA.js → lspLanguageFeatures-CEAdFSpU.js} +1 -1
- package/dist/web/assets/{minimize-2-C2xnEzCe.js → minimize-2-MhorZwY5.js} +1 -1
- package/dist/web/assets/{monaco.contribution-JW3MxX6k.js → monaco.contribution-CDhPpbIo.js} +2 -2
- package/dist/web/assets/{monaco.contribution-bytkwn0O.js → monaco.contribution-CN7AWJNd.js} +2 -2
- package/dist/web/assets/{monaco.contribution-DbrACt99.js → monaco.contribution-DHA7FuJX.js} +2 -2
- package/dist/web/assets/{monaco.contribution-DgTFvG2Q.js → monaco.contribution-ZUUVx_3M.js} +2 -2
- package/dist/web/assets/{monitor-mtHVW7gU.js → monitor-DLcrkfM5.js} +1 -1
- package/dist/web/assets/{python-DAPe0Urm.js → python-CXwvPmc4.js} +1 -1
- package/dist/web/assets/{refresh-cw-Dvm_Pq3U.js → refresh-cw-BTfIxHb3.js} +1 -1
- package/dist/web/assets/{save-B2eVAjW6.js → save-DaN65kMq.js} +1 -1
- package/dist/web/assets/{square-16bX2k2i.js → square-zRgIUdSv.js} +1 -1
- package/dist/web/assets/{toggleHighContrast-Ce0YhEQg.js → toggleHighContrast-DWeRZFzr.js} +1 -1
- package/dist/web/assets/{tsMode-CnvMmHz6.js → tsMode-nLBhKngY.js} +1 -1
- package/dist/web/assets/{upload-COPbAaD-.js → upload-BfUu4Eu1.js} +1 -1
- package/dist/web/assets/{useLocalAgentSchedules-C-Wjm5HK.js → useLocalAgentSchedules-BCITWhg2.js} +1 -1
- package/dist/web/assets/{useSessionTurnCache-BfVbncMB.js → useSessionTurnCache-BQMWfV8u.js} +1 -1
- package/dist/web/assets/{wifi-off-C9iLbCC-.js → wifi-off-bdka5es5.js} +1 -1
- package/dist/web/assets/{workers-BXh_u8Fr.js → workers-z7XHFFNs.js} +1 -1
- package/dist/web/assets/{yaml-CRSr9x6_.js → yaml-BTr4i4DD.js} +1 -1
- package/dist/web/index.html +1 -1
- package/docs/command-reference.md +77 -0
- package/package.json +4 -2
- package/dist/chunks/actions-command-5IEZEP6W.js +0 -2
- package/dist/chunks/app-server-runtime-NQ2BYPGK.js +0 -2
- package/dist/chunks/apps-XQ7PHJTD.js +0 -2
- package/dist/chunks/chunk-36RCXSEJ.js +0 -2
- package/dist/chunks/chunk-3QC2DDQ5.js +0 -2
- package/dist/chunks/chunk-3XDFNA7W.js +0 -2
- package/dist/chunks/chunk-4S4WH65X.js +0 -3
- package/dist/chunks/chunk-4TMC5F2P.js +0 -5
- package/dist/chunks/chunk-65QCNUGE.js +0 -659
- package/dist/chunks/chunk-6XF4GI35.js +0 -2
- package/dist/chunks/chunk-ARJUNUH6.js +0 -5
- package/dist/chunks/chunk-CEEZ7Y2J.js +0 -2
- package/dist/chunks/chunk-DZVVGU6K.js +0 -8
- package/dist/chunks/chunk-HY2Q7EDK.js +0 -4
- package/dist/chunks/chunk-IT4AT6LB.js +0 -42
- package/dist/chunks/chunk-L6HCBIAU.js +0 -2
- package/dist/chunks/chunk-LNEOLOK2.js +0 -13
- package/dist/chunks/chunk-NM2GYDPA.js +0 -19
- package/dist/chunks/chunk-OQPFFKU6.js +0 -2
- package/dist/chunks/chunk-QID62K65.js +0 -2400
- package/dist/chunks/chunk-YOOPTMQK.js +0 -3
- package/dist/chunks/cli-OJU6NQSA.js +0 -2
- package/dist/chunks/core-commands-UZL5RF2M.js +0 -2
- package/dist/chunks/datasets-42AZHVSV.js +0 -13
- package/dist/chunks/desktop-test-DI76HKS7.js +0 -3
- package/dist/chunks/experiments-Z3S35BYN.js +0 -2
- package/dist/chunks/hosted-harness-runtime-VZNYNQ6T.js +0 -2
- package/dist/chunks/hosted-profile-compiler-JXLPR7SX.js +0 -2
- package/dist/chunks/hosted-profile-evaluation-control-Q54YXXIM.js +0 -2
- package/dist/chunks/hosted-profile-evaluation-inspection-7WESM3ZH.js +0 -3
- package/dist/chunks/hosted-profile-evaluation-preparation-QP24PYBL.js +0 -3
- package/dist/chunks/organizations-SBBIOF6O.js +0 -2
- package/dist/chunks/project-agent-IBHUQ3JX.js +0 -2
- package/dist/chunks/sandbox-command-PAJAIMWM.js +0 -2
- package/dist/chunks/src-5MJSO3UD.js +0 -326
- package/dist/chunks/taskset-BZYQT65N.js +0 -2
- package/dist/chunks/training-7PST5HZU.js +0 -2
- package/dist/web/assets/App-6AQXN2SM.js +0 -226
- package/dist/web/assets/App-7h_oHCFd.css +0 -1
- package/dist/web/assets/HostedModelLearningReview-kofNdPAe.js +0 -1
- package/dist/web/assets/HostedModelLearningSettings-6ij3nwWD.js +0 -1
- package/dist/web/assets/LabModelVersionDetailPage-C7Maqcit.js +0 -1
- package/dist/web/assets/LabsRoute-Ch1N-e2S.js +0 -52
- package/dist/web/assets/LabsRoute-Dw6-12kt.css +0 -1
- package/dist/web/assets/MainChatThread-BJbhZOvs.js +0 -2
- package/dist/web/assets/RightChatPanelStack-DjEdxsq8.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 F}from"./chunk-
|
|
2
|
+
import{d as F}from"./chunk-PGKEDR3S.js";import{a as o}from"./chunk-FTQLQJQV.js";import{spawn as nt,spawnSync as At}from"node:child_process";import{accessSync as vt,constants as Rt,existsSync as _t,promises as Bt}from"node:fs";import et from"node:path";var rt="Git is required for OpenPond app workspaces, but macOS reports Apple Command Line Tools are not installed. OpenPond skipped /usr/bin/git to avoid opening the Xcode installer prompt. Install Command Line Tools with `xcode-select --install`, install Git from Homebrew, or put a non-Apple git binary earlier on PATH.",T;function Lt(e){try{return _t(e)?(vt(e,Rt.X_OK),!0):!1}catch{return!1}}o(Lt,"isExecutable");function Ot(){let e=(process.env.PATH??"").split(et.delimiter).map(t=>t.trim()).filter(Boolean);for(let t of e){let n=et.join(t,"git");if(!(n==="/usr/bin/git"||n==="/bin/git")&&Lt(n))return n}return null}o(Ot,"firstNonAppleGitOnPath");function it(){let e=At("/usr/bin/xcode-select",["-p"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]});return e.status===0&&!!e.stdout.trim()}o(it,"appleDeveloperToolsAvailable");function Dt(e){if(e!=="git"||process.platform!=="darwin")return{command:e};if(T!==void 0)return{command:T};let t=Ot();return t?(T=t,{command:t}):it()?(T="git",{command:"git"}):{error:rt}}o(Dt,"resolveWorkspaceCommand");function u(e,t,n,r={},i){return new Promise(s=>{let a=Dt(e);if("error"in a){s({code:1,stdout:"",stderr:a.error});return}let c=nt(a.command,t,{cwd:n,env:{...process.env,...r,GIT_TERMINAL_PROMPT:"0"},stdio:[i===void 0?"ignore":"pipe","pipe","pipe"]}),d=[],p=[];i!==void 0&&c.stdin?.end(i),c.stdout?.on("data",h=>d.push(h)),c.stderr?.on("data",h=>p.push(h)),c.on("error",h=>{s({code:1,stdout:"",stderr:h.message})}),c.on("close",h=>{s({code:h??1,stdout:Buffer.concat(d).toString("utf8"),stderr:Buffer.concat(p).toString("utf8")})})})}o(u,"runCommand");function Gt(e){return!!(e&&e.includes(rt.slice(0,80)))}o(Gt,"isMacOSGitDeveloperToolsMissing");async function Se(e){await Bt.mkdir(e,{recursive:!0});let t=await u("git",["--version"],e);if(t.code===0)return{ok:!0,command:T??"git",version:(t.stdout||t.stderr).trim()};let n=t.stderr.trim()||t.stdout.trim()||"Git is required for OpenPond app workspaces.";return{ok:!1,error:n,installAction:process.platform==="darwin"&&Gt(n)?"macos_command_line_tools":"manual_git_install"}}o(Se,"checkWorkspaceGitAvailability");function ye(){if(process.platform!=="darwin")return{ok:!1,error:"Apple Command Line Tools installation is only available on macOS."};if(it())return{ok:!0,message:"Apple Command Line Tools already appear to be installed."};try{return nt("/usr/bin/xcode-select",["--install"],{detached:!0,stdio:"ignore"}).unref(),{ok:!0,message:"Opened the Apple Command Line Tools installer."}}catch(e){return{ok:!1,error:e instanceof Error?e.message:String(e)}}}o(ye,"startMacOSCommandLineToolsInstall");import{promises as k}from"node:fs";import m from"node:path";var st=24e3,ot=8e4,It=512*1024,ct=15*1024*1024,Tt=20*1024*1024,Mt=new Set([".cache",".eggs",".git",".ipynb_checkpoints",".mypy_cache",".next",".nox",".nuxt",".openpond",".output",".parcel-cache",".pytest_cache",".pyre",".ruff_cache",".svelte-kit",".tox",".turbo",".venv","__pycache__","artifacts","build","coverage","dist","env","node_modules","out","site-packages","target","venv","volumes"]),zt=new Set([".7z",".avif",".db",".doc",".docx",".gif",".gz",".ico",".jpeg",".jpg",".mov",".mp4",".pdf",".png",".sqlite",".tar",".webp",".xls",".xlsm",".xlsx",".zip"]),$t=new Map([[".avif","image/avif"],[".gif","image/gif"],[".jpeg","image/jpeg"],[".jpg","image/jpeg"],[".png","image/png"],[".webp","image/webp"]]),Nt=new Map([[".m4v","video/x-m4v"],[".mov","video/quicktime"],[".mp4","video/mp4"],[".webm","video/webm"]]),Ht=new Set([".doc",".docx",".pdf"]);function Ut(e){return e.replace(/[^a-zA-Z0-9._-]/g,"-").slice(0,120)||"app"}o(Ut,"safeAppSegment");function N(e){if(!e)return"unknown";try{let t=new URL(e).hostname.toLowerCase();if(t==="github.com"||t.endsWith(".github.com"))return"github";if(t==="openpond.ai"||t.endsWith(".openpond.ai"))return"openpond"}catch{return"unknown"}return"local_git"}o(N,"sourceFromRemote");function $(e){return e.replace(/x-access-token:[^@]+@/g,"x-access-token:***@").replace(/Authorization:\s*Basic\s+[A-Za-z0-9+/=]+/gi,"Authorization: Basic ***")}o($,"redactRemoteUrl");async function G(e){try{return await k.access(e),!0}catch{return!1}}o(G,"pathExists");async function O(e){return await G(e)?(await u("git",["rev-parse","--git-dir"],e)).code===0:!1}o(O,"isGitRepo");function X(e){return e.length<=st?e:`${e.slice(0,st)}
|
|
3
3
|
|
|
4
4
|
[diff truncated]`}o(X,"truncatePatch");function jt(e){return e.length<=ot?e:`${e.slice(0,ot)}
|
|
5
5
|
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
+
import{P as x,S as T,U as C,V as _,f as b,g as E}from"./chunk-XWLI7WJH.js";import{T as S,ha as A,ia as M}from"./chunk-QVRNOGAU.js";import{h as k,l as m,m as y}from"./chunk-HZP5U2AA.js";import{b as p}from"./chunk-ES2ISFJC.js";import{a as g}from"./chunk-FTQLQJQV.js";var w=p.object({sessionId:p.string().trim().min(1).max(500),turnId:p.string().trim().min(1).max(500)}).strict();async function $(e){T(e.manifest,e.taskset,e.catalog),_(e.taskset,e.metricSource);let o=e.manifest.profileEvaluation,t=e.catalog.definitions.find(r=>r.id===o.definitionId),d=new Map(e.taskset.tasks.map(r=>[r.id,r])),u=[],s=[];for(let r of e.manifest.population){e.signal?.throwIfAborted();let l=d.get(r.taskId),a=await e.loadCompletedMember?.(r)??null;if(a){let{receipt:f,grade:I}=a,{contentHash:P,...U}=A.parse(I);if(!E(f)||P!==m(U)||f.id!==r.receiptId||f.runManifest.id!==e.manifest.id||f.runManifest.contentHash!==e.manifest.contentHash||f.taskId!==r.taskId||f.seed!==r.seed||f.graderEvidenceRefs.length!==1||f.graderEvidenceRefs[0]?.contentHash!==P||I.taskHash!==m(l)||I.graderSetHash!==m(e.taskset.graders)||f.metadata.score!==I.score||f.metadata.passed!==I.passed)throw new Error(`Retained Profile evaluation member ${r.receiptId} differs from its admitted evidence.`);s.push(I),u.push(f);continue}let i=await e.execute({task:S(l),seed:r.seed,source:o,...e.signal?{signal:e.signal}:{}});e.signal?.throwIfAborted();let c=await M({task:l,evidence:i.evidence,graders:e.taskset.graders,...e.modelJudge?{modelJudge:e.modelJudge}:{},...e.customVerifier?{customVerifier:e.customVerifier}:{},...e.signal?{signal:e.signal}:{}}),v=k.parse(await e.saveGrade(c));if(v.contentHash!==c.contentHash)throw new Error("Stored Profile evaluation grade differs from its graded evidence.");let H=i.failureClass??c.failureClass,R=b({schemaVersion:"openpond.attemptReceipt.v1",id:r.receiptId,runManifest:{id:e.manifest.id,contentHash:e.manifest.contentHash},taskId:r.taskId,seed:r.seed,terminal:i.terminal,failureClass:H,outputHash:i.evidence.infrastructureError?null:m(i.evidence.output),traceHash:i.traceHash,artifactRefs:i.artifactRefs,graderEvidenceRefs:[v],startedAt:i.startedAt,completedAt:i.completedAt,latencyMs:i.latencyMs,costUsd:i.costUsd,metadata:{gradingRole:"evaluation",score:c.score,passed:c.passed,rewardEligible:c.rewardEligible,sourceRevision:o.sourceRevision,definitionHash:o.definitionHash,environmentHash:o.environmentHash,...i.retainedEvidenceRef?{retainedEvidenceRef:w.parse(i.retainedEvidenceRef)}:{}}});await e.saveReceipt(R),s.push(c),u.push(R)}let n=await C({manifest:e.manifest,taskset:e.taskset,receipts:u,...e.metricSource!==void 0?{source:e.metricSource}:{},...e.signal?{signal:e.signal}:{}},e.metricExecutor),h=s.filter(r=>r.passed).length/s.length;return{receipts:u,grades:s,metric:n,passRate:h,passed:h>=t.criterion.minimumPassRate&&(!t.criterion.requireComplete||u.every(r=>r.terminal))}}g($,"executeProfileEvaluationRun");function V(e,o){if(o==="agent_action"){let t=e.find(d=>d.name==="workspace_action_result"&&d.action==="profile_workflow_action")?.output;if(typeof t!="string")throw new Error("Profile Agent action evaluation did not produce a released action result.");return t}return e.filter(t=>t.name==="assistant.delta"&&typeof t.output=="string").map(t=>t.output??"").join("")}g(V,"profileEvaluationOutput");async function L(e){let{store:o,manifest:t,receipt:d}=e;if(!d.metadata.retainedEvidenceRef)return null;let u=w.parse(d.metadata.retainedEvidenceRef),[s,n]=await Promise.all([o.getSession(u.sessionId),o.getTurn(u.turnId)]),h=s?.metadata?.profileEvaluationRun,r=t.profileEvaluation;if(!s||!n||n.sessionId!==s.id||!r||!s.currentProfile||m(s.currentProfile)!==m(e.profileRef)||m(h)!==m({id:t.id,contentHash:t.contentHash})||s.metadata?.taskId!==d.taskId||s.metadata?.seed!==d.seed||!n.completedAt||n.completedAt!==d.completedAt||n.startedAt!==d.startedAt||!n.harnessSnapshot||n.harnessSnapshot.harnessRelease.id!==r.harnessRelease.id||n.harnessSnapshot.harnessRelease.contentHash!==r.harnessRelease.contentHash||t.policy.kind!=="model"||!n.modelRef||n.modelRef.providerId!==t.policy.model.provider||n.modelRef.modelId!==t.policy.model.model)throw new Error("Retained Profile policy turn differs from its admitted case.");let l=await o.runtimeEventsForTurn(n.id);if(l.some(f=>f.turnId!==n.id)||m(l)!==d.traceHash)throw new Error("Retained Profile policy trace differs from its immutable receipt.");let a=V(l,r.target.kind);if(d.outputHash!==null&&m({text:a})!==d.outputHash)throw new Error("Retained Profile output differs from its immutable receipt.");let i=await o.listModelUsageRecords({sessionId:s.id,turnId:n.id,limit:1e4}),c=e.eventAfterId?l.findIndex(f=>f.id===e.eventAfterId):-1;if(e.eventAfterId&&c<0)throw new Error("Profile trace cursor is unavailable in this case.");let v=c+1,H=Math.max(1,Math.min(250,e.eventLimit??100)),R=l.slice(v,v+H);return{ref:u,prompt:n.prompt,output:d.outputHash===null?null:{text:a},partialOutput:d.outputHash===null&&a?{text:a}:null,error:n.error,events:R,eventCount:l.length,nextEventCursor:v+R.length<l.length?R.at(-1).id:null,usage:i,usageCoverage:i.length===1e4?"partial":"complete"}}g(L,"readProfileEvaluationPolicyEvidence");var te=p.object({runId:p.string().trim().min(1).max(240),receiptId:p.string().trim().min(1).max(500).optional(),eventAfterId:p.string().trim().min(1).max(500).optional(),eventLimit:p.number().int().min(1).max(250).optional(),manifest:x.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 re(e){let o=await e.store.getProfileEvaluationRun(e.runId);if(o&&m(o.profileRef)!==m(e.profileRef))throw new Error("Profile evaluation run is unavailable in the selected Profile.");let t=o?.manifest??e.manifest;if(!t||!o&&!e.receiptId)throw new Error("Profile evaluation run is unavailable in the selected Profile.");if(o){if(e.manifest&&e.manifest.contentHash!==o.manifest.contentHash)throw new Error("Profile evaluation run differs from its pinned manifest.")}else if(y(t,"Interrupted Profile evaluation manifest"),t.id!==e.runId||t.profileEvaluation?.profileId!==e.profileRef.profileId||e.profileRef.source==="openpond_git"&&t.metadata.profileRepositoryId!==e.profileRef.repositoryId)throw new Error("Profile evaluation run is unavailable in the selected Profile.");let d=t.population.map((s,n)=>({member:s,index:n})).filter(({member:s})=>!e.receiptId||s.receiptId===e.receiptId);if(e.receiptId&&d.length!==1)throw new Error("Profile evaluation case is unavailable in the selected run.");let u=await Promise.all(d.map(async({member:s,index:n})=>{let h=o?null:await e.store.getProfileEvaluationReceipt(s.receiptId),r=o?.receiptRefs[n]??(h?{id:h.id,contentHash:h.contentHash}:null),l=o?.gradeRefs[n]??h?.graderEvidenceRefs[0];if(!r||!l)throw new Error("Profile evaluation run has incomplete case evidence.");let[a,i]=await Promise.all([e.store.getProfileEvaluationReceipt(r.id),e.store.getProfileEvaluationGrade(l.contentHash)]);if(!a||!o&&!E(a)||a.contentHash!==r.contentHash||a.id!==s.receiptId||a.taskId!==s.taskId||a.seed!==s.seed||a.runManifest.id!==t.id||a.runManifest.contentHash!==t.contentHash||!i||i.contentHash!==l.contentHash||!a.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:s.taskId,seed:s.seed,receiptId:a.id,receiptHash:a.contentHash,traceHash:a.traceHash,outputHash:a.outputHash,score:i.score,passed:i.passed,gradingStatus:i.gradingStatus,failureClass:i.failureClass,artifactCount:a.artifactRefs.length,latencyMs:a.latencyMs,costUsd:a.costUsd,terminal:a.terminal,feedback:i.components.map(c=>({graderId:c.graderId,graderVersion:c.graderVersion,score:c.score,passed:c.passed,feedback:c.feedback})),...e.receiptId?{receipt:a,evidence:await L({store:e.store,profileRef:e.profileRef,manifest:t,receipt:a,eventAfterId:e.eventAfterId,eventLimit:e.eventLimit})}:{}}}));return{runId:t.id,sourceRevision:t.profileEvaluation?.sourceRevision??null,cases:u}}g(re,"inspectProfileEvaluationRun");export{$ as a,V as b,te as c,re as d};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
+
import{c as q}from"./chunk-BSHAIAXY.js";import{c as m,f as P,g as S,h as R}from"./chunk-3M53YXEI.js";import{f as x,h as U}from"./chunk-H7IWJN7L.js";import{a}from"./chunk-FTQLQJQV.js";import{readFile as $}from"node:fs/promises";import{request as D}from"node:http";import{randomUUID as N}from"node:crypto";import{createInterface as B}from"node:readline/promises";var H="http://127.0.0.1:17874",J=new Set(["cancelled","completed","failed","succeeded"]);async function de(e,n,t={}){let r=n[0],o=n[1];if(!r||!["start","status","watch","logs","cancel","resume","artifacts","benchmark","create-project"].includes(r)||!o)throw new Error("usage: training <create-project|start|status|watch|logs|cancel|resume|artifacts|benchmark> <taskset-id|model-run-id|run-id|model-id>");if(n.length>2)throw new Error(`training ${r} accepts exactly one identifier`);let s=q(e)??process.env.OPENPOND_LOCAL_API_URL?.replace(/\/$/,"")??H,i=new O({baseUrl:s,request:t.request??await G(s)}),c=P(e.json);if(r==="create-project"){let p=await F({client:i,options:e,tasksetId:o});T(p,c);return}if(r==="benchmark"){await V({client:i,modelId:o,options:e,json:c,sleep:t.sleep});return}if(r==="resume"){let p=await i.modelRun(o,"resume","POST");T(p,c),await A({client:i,runId:o,json:c,intervalMs:R(e.intervalMs,"interval-ms")??2e3,sleep:t.sleep});return}if(r==="start"){await W({client:i,dependencies:t,json:c,modelRunId:o,options:e});return}if(r==="watch"){await A({client:i,runId:o,json:c,intervalMs:R(e.intervalMs,"interval-ms")??2e3,sleep:t.sleep});return}let f=r==="status"?"status":r==="logs"?"logs":r==="artifacts"?"artifacts":"cancel",u=await i.modelRun(o,f,r==="cancel"?"POST":"GET");T(u,c)}a(de,"runTrainingCommand");async function G(e){let n=new URL(e);if(n.protocol!=="http:"||!["127.0.0.1","localhost","[::1]"].includes(n.hostname))return fetch;let t=(await $(U(x()).token,"utf8")).trim();if(!t)throw new Error("OpenPond local capability token is empty.");return(async(r,o={})=>{let s=r instanceof Request?new URL(r.url):new URL(String(r));if(s.origin!==n.origin||s.username||s.password)throw new Error("Local capability requests must remain on the selected server origin.");let i=new Headers(o.headers);i.set("authorization",`Bearer ${t}`);let c={};i.forEach((u,p)=>{c[p]=u});let f=o.signal?AbortSignal.any([o.signal,AbortSignal.timeout(6e4)]):AbortSignal.timeout(6e4);return new Promise((u,p)=>{let y=!1,h=D(s,{method:o.method??"GET",headers:c},d=>{let k=[],I=0;d.on("data",g=>{if(I+=g.byteLength,I>8388608){d.destroy(new Error("Local evaluation response exceeds 8 MiB."));return}k.push(g)}),d.once("error",j),d.once("end",()=>{if(y)return;y=!0;let g=new Headers;for(let[E,w]of Object.entries(d.headers))if(Array.isArray(w))for(let b of w)g.append(E,b);else w!==void 0&&g.set(E,w);u(new Response(new Uint8Array(Buffer.concat(k)),{status:d.statusCode??500,statusText:d.statusMessage,headers:g}))})}),j=a(d=>{y||(y=!0,p(d))},"rejectOnce");if(h.once("error",j),f){let d=a(()=>h.destroy(f.reason instanceof Error?f.reason:new Error("Training API request aborted.")),"abort");f.aborted?d():f.addEventListener("abort",d,{once:!0})}if(o.body!==void 0&&o.body!==null){if(typeof o.body!="string"&&!(o.body instanceof Uint8Array)){h.destroy(new Error("Local Training API supports string or byte request bodies."));return}h.write(o.body)}h.end()})})}a(G,"createLocalAuthenticatedRequest");var O=class{static{a(this,"TrainingApiClient")}baseUrl;request;constructor(n){this.baseUrl=n.baseUrl.replace(/\/$/,""),this.request=n.request??fetch}modelRun(n,t,r,o){return this.json(`/v1/training/model-runs/${encodeURIComponent(n)}/${t}`,r,o)}prepareModelProject(n,t){return this.json(`/v1/training/model-projects/${encodeURIComponent(n)}/training/prepare`,"POST",t)}startModelProject(n,t){return this.json(`/v1/training/model-projects/${encodeURIComponent(n)}/training/start`,"POST",t)}trainingState(){return this.json("/v1/training","GET")}startHarnessRefinerBenchmark(n,t){return this.json(`/v1/training/models/${encodeURIComponent(n)}/harness-refiner-benchmark`,"POST",t)}importTasksetDraftPackage(n){return this.json("/v1/training/taskset-drafts/import","POST",n)}publishTasksetDraft(n,t){return this.json(`/v1/training/taskset-drafts/${encodeURIComponent(n)}/publish`,"POST",t?{modelId:t}:{})}tasksetReadiness(n){return this.json("/v1/training/readiness","POST",{tasksetId:n})}deleteTasksetDraft(n){return this.json(`/v1/training/taskset-drafts/${encodeURIComponent(n)}`,"DELETE")}saveModelProject(n){return this.json("/v1/training/models","PUT",n)}async json(n,t,r){let o=await this.request(`${this.baseUrl}${n}`,{method:t,headers:r===void 0?{Accept:"application/json"}:{Accept:"application/json","Content-Type":"application/json"},body:r===void 0?void 0:JSON.stringify(r)}),s=await o.text(),i=null;if(s)try{i=JSON.parse(s)}catch{i=s}if(!o.ok){let c=i&&typeof i=="object"&&"error"in i&&typeof i.error=="string"?i.error:`${o.status} ${o.statusText}`.trim();throw new Error(`Training API request failed: ${c}`)}return i}};async function V(e){let n=await e.client.trainingState(),t=z(n,e.modelId),r=m(e.options,"provider")||"openpond",o=m(e.options,"model")||"openpond-chat",s=m(e.options,"reasoningEffort")||"high",i=S(e.options.maxSpend,"max-spend")??10;if(i<=0)throw new Error("max-spend must be greater than zero");if(P(e.options.detach))throw new Error("Harness Refiner benchmark runs must be watched to terminal state.");let c=await e.client.startHarnessRefinerBenchmark(e.modelId,{profileId:t.profileId,model:{providerId:r,modelId:o},reasoningEffort:s==="none"?"none":s,maximumSpendUsd:i});T(c,e.json);let f=l(c,"id");if(!f)throw new Error("Benchmark start did not return a Model Run id.");await A({client:e.client,runId:f,json:e.json,intervalMs:R(e.options.intervalMs,"interval-ms")??2e3,sleep:e.sleep})}a(V,"startHarnessRefinerBenchmark");function z(e,n){if(!e||typeof e!="object"||!("modelProjects"in e))throw new Error("Training state did not include Models.");let r=(Array.isArray(e.modelProjects)?e.modelProjects:[]).find(s=>s&&typeof s=="object"&&"id"in s&&s.id===n),o=r&&typeof r=="object"?l(r,"profileId"):null;if(!o)throw new Error(`Model ${n} was not found.`);return{profileId:o}}a(z,"modelProject");function l(e,n){if(!e||typeof e!="object"||!(n in e))return null;let t=e[n];return typeof t=="string"&&t?t:null}a(l,"objectString");async function F(e){let n=m(e.options,"recipe");if(!n)throw new Error("training create-project requires --recipe <versioned-recipe.json>");let t=await Q(n,"Training recipe"),r=await e.client.trainingState(),o=K(r,"tasksets",e.tasksetId,"Taskset"),s=m(e.options,"profile")||l(o,"profileId");if(!s)throw new Error(`The Taskset has no Profile id (received ${typeof o.profileId}: ${String(o.profileId)}).`);let i=l(o,"profileId");if(i!==s)throw new Error(`Taskset ${e.tasksetId} belongs to Profile ${i??"unknown"}, not ${s}.`);let c=m(e.options,"projectId")||`model_${N()}`,u=C(r,"modelProjects").find(b=>l(b,"id")===c),p=M(e.options,"rolloutPlacement",["local","remote"],"local"),y=M(e.options,"gpuPlacementObjective",["fast","balanced","economical"],"balanced"),h=M(e.options,"runPreset",["small","standard","custom","small_experiment"],"custom"),j=S(e.options.maxSpend,"max-spend")??null;if(j!==null&&j<0)throw new Error("max-spend must be non-negative");let d=R(e.options.retentionDays,"retention-days")??null;if(d!==null&&d<0)throw new Error("retention-days must be non-negative");let k=new Date().toISOString(),I=l(o,"contentHash"),g=L(o,"revision");if(!I||!g||g<1)throw new Error("The Taskset does not have an immutable published revision.");let E=l(t,"method");if(!E)throw new Error("Training recipe must declare its method.");let w=Y(t);if(u){let b=v(u,"trainingSetup"),_=v(b,"tasksetRef");if(l(_,"id")!==e.tasksetId||l(u,"profileId")!==s)throw new Error(`Model Project ${c} already exists for a different Profile or Taskset.`);if(v(b,"baseModel"))throw new Error(`Model Project ${c} already exists.`);return e.client.saveModelProject({...u,revision:L(u,"revision")??1,defaultBaseModel:w,trainingSetup:{...b,baseModel:w,recipe:t},updatedAt:k})}return e.client.saveModelProject({schemaVersion:"openpond.modelProject.v2",id:c,profileId:s,revision:1,name:m(e.options,"name")||l(o,"name")||"Managed Model",objective:m(e.options,"objective")||l(o,"objective"),defaultBaseModel:w,defaultDestinationId:m(e.options,"destination")||"openpond_managed",trainingSetup:{tasksetRef:{id:e.tasksetId,revision:g,contentHash:I},tasksetRelease:null,harnessRelease:null,baseModel:w,method:E,destinationId:m(e.options,"destination")||"openpond_managed",managedRolloutPlacement:p,managedGpuPlacementObjective:y,managedGpuRequirement:"any",runPreset:h,recipe:t,preferredMaximumSpendUsd:j,preferredRetentionDays:d},hosted:null,tasksetSyncs:[],createdAt:k,updatedAt:k})}a(F,"createManagedModelProject");function Y(e){let n=v(e,"baseModel"),t=l(n,"id"),r=l(n,"revision"),o=l(n,"tokenizerRevision"),s=l(n,"chatTemplateHash");if(!t||!r||!o||!s)throw new Error("Managed GRPO recipe must pin baseModel id, revision, tokenizerRevision, and chatTemplateHash.");return{schemaVersion:"openpond.baseModelPreference.v1",modelId:t,revision:r,tokenizerRevision:o,chatTemplateHash:s,modelAssetId:null,source:"managed"}}a(Y,"managedBasePreferenceFromRecipe");function K(e,n,t,r){let o=C(e,n).find(s=>l(s,"id")===t);if(!o)throw new Error(`${r} ${t} was not found.`);return o}a(K,"trainingStateRecord");function C(e,n){if(!e||typeof e!="object"||!(n in e))return[];let t=e[n];return Array.isArray(t)?t.filter(r=>!!r&&typeof r=="object"&&!Array.isArray(r)):[]}a(C,"trainingStateRecords");function L(e,n){if(!e||typeof e!="object"||!(n in e))return null;let t=e[n];return typeof t=="number"&&Number.isFinite(t)?t:null}a(L,"objectNumber");function v(e,n){if(!e||typeof e!="object"||!(n in e))return null;let t=e[n];return t&&typeof t=="object"&&!Array.isArray(t)?t:null}a(v,"objectRecord");function M(e,n,t,r){let o=m(e,n)||r;if(!t.includes(o))throw new Error(`${n} must be one of ${t.join(", ")}`);return o}a(M,"enumOption");async function Q(e,n){let t;try{t=JSON.parse(await $(e,"utf8"))}catch(r){throw new Error(`Could not read ${n} ${e}: ${r instanceof Error?r.message:String(r)}`)}if(!t||typeof t!="object"||Array.isArray(t))throw new Error(`${n} must be a JSON object.`);return t}a(Q,"readJsonObject");async function W(e){let n=S(e.options.maxSpend,"max-spend")??null;if(n!==null&&n<0)throw new Error("max-spend must be non-negative");let t=R(e.options.retentionDays,"retention-days")??null;if(t!==null&&t<=0)throw new Error("retention-days must be a positive integer");let r=m(e.options,"manifest"),o=r?await X(r):void 0,s=m(e.options,"comparisonSeriesEntry")||null,i={maximumSpendUsd:n,retentionDays:t},c=await e.client.prepareModelProject(e.modelRunId,i);if(e.json||(console.log("Preparation:"),console.log(JSON.stringify(c,null,2))),!(P(e.options.yes)||await Z(e.dependencies.confirm)))throw new Error("Training start cancelled.");let u=await e.client.startModelProject(e.modelRunId,{...i,exportApproved:P(e.options.exportApproved),manifest:o,comparisonSeriesEntryId:s});if(T(u,e.json),P(e.options.detach))return;let p=ee(u)??e.modelRunId;await A({client:e.client,runId:p,json:e.json,intervalMs:2e3,sleep:e.dependencies.sleep})}a(W,"startTraining");async function A(e){if(e.intervalMs<250)throw new Error("interval-ms must be at least 250");let n=e.sleep??(r=>new Promise(o=>setTimeout(o,r))),t="";for(;;){let r=await e.client.modelRun(e.runId,"status","GET"),o=JSON.stringify(r);if((e.json||o!==t)&&(T(r,e.json),t=o),J.has(ne(r)))return;await n(e.intervalMs)}}a(A,"watchTraining");async function X(e){let n;try{n=JSON.parse(await $(e,"utf8"))}catch(t){throw new Error(`Could not read Harness Run Manifest ${e}: ${t instanceof Error?t.message:String(t)}`)}if(!n||typeof n!="object"||Array.isArray(n))throw new Error("Harness Run Manifest must be a JSON object.");return n}a(X,"readManifest");async function Z(e){let n="Start this exact prepared training run? Downloads, provisioning, or spend may begin.";if(e)return e(n);if(!process.stdin.isTTY||!process.stdout.isTTY)throw new Error("training start requires --yes when standard input is not interactive");let t=B({input:process.stdin,output:process.stdout});try{let r=await t.question(`${n} [y/N] `);return r.trim().toLowerCase()==="y"||r.trim().toLowerCase()==="yes"}finally{t.close()}}a(Z,"confirmStart");function ee(e){if(!e||typeof e!="object")return null;let n="job"in e?e.job:null;return!n||typeof n!="object"||!("id"in n)?null:typeof n.id=="string"?n.id:null}a(ee,"readRunId");function ne(e){return!e||typeof e!="object"?"":"state"in e&&typeof e.state=="string"?e.state:"status"in e&&typeof e.status=="string"?e.status:""}a(ne,"readStatus");function T(e,n){if(n){console.log(JSON.stringify(e));return}console.log(JSON.stringify(e,null,2))}a(T,"printResult");export{H as a,de as b,G as c,O as d};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
-
import{b as e}from"./chunk-ES2ISFJC.js";import{a}from"./chunk-FTQLQJQV.js";import{createHash as be}from"node:crypto";function V(r){if(r===null||typeof r=="boolean"||typeof r=="string")return r;if(typeof r=="number"){if(!Number.isFinite(r))throw new Error("Canonical JSON cannot encode a non-finite number.");return r}if(Array.isArray(r))return r.map(V);if(typeof r=="object"){let t={};for(let i of Object.keys(r).sort()){let n=r[i];n!==void 0&&(t[i]=V(n))}return t}throw new Error(`Canonical JSON cannot encode ${typeof r}.`)}a(V,"canonicalJson");function I(r){return be("sha256").update(JSON.stringify(V(r)),"utf8").digest("hex")}a(I,"canonicalHash");function Be(r){if(!r.maxContextTokens||!r.usableContextTokens)return{shouldCompact:!1,projectedTokens:r.projectedTokens,thresholdTokens:Number.MAX_SAFE_INTEGER,usableContextTokens:0,maxContextTokens:0,tokenSource:"heuristic"};let t=Math.max(.01,Math.min(1,(r.triggerPercent??85)/100)),i=Math.max(1,Math.floor(r.usableContextTokens*t));return{shouldCompact:r.projectedTokens>=i,projectedTokens:r.projectedTokens,thresholdTokens:i,usableContextTokens:r.usableContextTokens,maxContextTokens:r.maxContextTokens,tokenSource:"heuristic"}}a(Be,"agentCompactionDecision");async function Ne(r){await r.started();try{return await r.compact()}catch(t){throw await r.failed(t),t}}a(Ne,"runAgentCompaction");async function $e(r){let t=r.host.projectEvents(r.events),i=r.host.selectEvents(t,r.maxContextTokens),{summaryEvents:n,preservedEvents:o,preservedEventIds:l}=i;if(n.length===0)throw new Error("There is not enough prior context to compact.");let u=r.host.normalizeRecords(n),p=r.host.normalizeRecords(o),f=r.host.buildFileLedger(r.host.normalizeRecords(t)),m=r.host.serializeRecords(u,r.host.inputCharBudget(r.maxContextTokens));if(!m.text.trim())throw new Error("There is not enough prior context to compact.");let R=r.host.buildSummaryMessages({serializedHistory:m.text,fileLedger:f}),j=Date.now(),S=(await r.host.streamSummary({model:r.model,messages:R,signal:r.signal})).trim(),z=Date.now()-j;if(!S)throw new Error("Compaction summary was empty.");let h=r.host.estimateProjection({events:t,preservedEvents:o,summary:S}),g=r.host.createMetrics({sourceEvents:t.length,summarizedEvents:n.length,preservedEvents:o.length,sourceRecords:m.sourceRecordCount,includedRecords:m.includedRecordCount,omittedRecords:m.omittedRecordCount,preservedRecords:p.length,truncatedRecords:m.truncatedRecordCount,summaryInputTruncated:m.inputTruncated,sourceSelectionStrategy:m.selectionStrategy,summaryInputChars:m.inputChars,retainedTailTokens:i.retainedTailTokens,retainedTailBudgetTokens:i.retainedTailBudgetTokens,finalProviderContextTokens:h.inputTokensAfter,durationMs:z,fileLedgerEntries:f.length,splitTurnId:i.splitTurnId});return{summary:S,model:r.model,compactedThroughEventId:t[t.length-1]?.id??null,compactedThroughTurnId:r.host.lastTurnId(t),preservedFromEventId:o[0]?.id??null,preservedEventIds:l,preservedResourceRefs:r.host.durableResourceRefs(r.events),sourceEventCount:n.length,preservedEventCount:o.length,fileLedger:f,inputTokensBefore:h.inputTokensBefore,inputTokensAfter:h.inputTokensAfter,maxContextTokens:r.maxContextTokens,tokenSource:"heuristic",metrics:g}}a($e,"runAgentCompactionProgram");var fe=e.enum(["thread.started","thread.resumed","turn.started","turn.steered","turn.interrupted","turn.completed","turn.failed","item.started","item.delta","item.completed","assistant.reasoning.delta","assistant.delta","tool.started","tool.completed","approval.requested","approval.resolved","user_input.requested","user_input.resolved","compaction.started","compaction.completed","harness.admitted","harness.refiner.queued","harness.refiner.started","harness.refiner.completed","harness.refiner.failed","diagnostic"]),ge=e.object({sequence:e.number().int().nonnegative(),name:fe,source:e.enum(["runtime","provider","tool","host","refiner"]),status:e.string().trim().min(1).nullable().default(null),threadId:e.string().trim().min(1),turnId:e.string().trim().min(1).nullable().default(null),callId:e.string().trim().min(1).nullable().default(null),output:e.string().nullable().default(null),error:e.string().nullable().default(null),data:e.record(e.string(),e.unknown()).default({})}).strict();function De(r){return I(ge.parse(r))}a(De,"canonicalEventHash");var E="2026-09-20",Ge=["initialize","initialized","runtime/capabilities","thread/start","thread/resume","thread/read","turn/start","turn/steer","task/inbox","task/queue","task/inputUpdate","turn/interrupt","approval/resolve","userInput/resolve","profile/workflows","profile/evaluations","profile/trainingSource","profile/evaluations/prepare","profile/evaluations/run","profile/evaluations/runSuite","profile/evaluations/executeCase","profile/evaluations/executeRun","profile/evaluations/compare","profile/evaluations/report","experiments/executeCase","experiments/cancelCase","harness/inspect","harness/proposalReview","harness/review","harness/acceptEvaluationReview","harness/materializeEvaluationTaskset","harness/runEvaluationBaseline","harness/validate","harness/backgroundReview","harness/diff","harness/rollback","refiner/inspect","refiner/update","refiner/activate","refiner/rollback"],J=e.object({jsonrpc:e.literal("2.0"),id:e.union([e.string(),e.number()]),method:e.string().trim().min(1),params:e.unknown().optional()}).strict(),L=e.object({jsonrpc:e.literal("2.0"),method:e.string().trim().min(1),params:e.unknown().optional()}).strict(),O=e.object({jsonrpc:e.literal("2.0"),id:e.union([e.string(),e.number()]),result:e.unknown()}).strict(),B=e.object({jsonrpc:e.literal("2.0"),id:e.union([e.string(),e.number(),e.null()]),error:e.object({code:e.number().int(),message:e.string(),data:e.unknown().optional()}).strict()}).strict(),Qe=e.union([J,L,O,B]),ve=e.object({protocolVersion:e.string().trim().min(1),client:e.object({name:e.string().trim().min(1),version:e.string().trim().min(1)}).strict(),capabilities:e.record(e.string(),e.unknown()).default({})}).strict(),P=class{static{a(this,"AgentJsonRpcDispatcher")}#e;#t=null;#r=!1;constructor(t){this.#e=t}get initialized(){return this.#r}async handle(t){let i=L.safeParse(t);if(i.success&&!("id"in t)){if(i.data.method==="initialized"){if(!this.#t)throw new w(-32002,"initialize must be called first");this.#r=!0}return null}let n=J.safeParse(t);if(!n.success)return U(null,-32600,"Invalid Request",n.error.flatten());let o=n.data;try{let l=await this.#n(o.method,o.params);return{jsonrpc:"2.0",id:o.id,result:l}}catch(l){let u=l instanceof w?l:new w(-32603,l instanceof Error?l.message:String(l));return U(o.id,u.code,u.message,u.data)}}async#n(t,i){if(t==="initialize"){let n=ve.parse(i);if(n.protocolVersion!==E)throw new w(-32001,"Incompatible agent protocol version",{requested:n.protocolVersion,supported:E});return this.#t=n,{protocolVersion:E,server:{name:"openpond-app-server",version:"1"},capabilities:await this.#e.capabilities()}}if(!this.#r)throw new w(-32002,"initialized notification is required");switch(t){case"runtime/capabilities":return this.#e.capabilities(i);case"thread/start":return this.#e.threadStart(i);case"thread/resume":return this.#e.threadResume(i);case"thread/read":return this.#e.threadRead(i);case"turn/start":return this.#e.turnStart(i);case"turn/steer":return this.#e.turnSteer(i);case"task/inbox":return this.#e.taskInbox(i);case"task/queue":return this.#e.taskQueue(i);case"task/inputUpdate":return this.#e.taskInputUpdate(i);case"turn/interrupt":return this.#e.turnInterrupt(i);case"approval/resolve":return this.#e.approvalResolve(i);case"userInput/resolve":return this.#e.userInputResolve(i);case"profile/workflows":return this.#e.profileWorkflows(i);case"profile/evaluations":return this.#e.profileEvaluations(i);case"profile/trainingSource":return this.#e.profileTrainingSource(i);case"profile/evaluations/prepare":return this.#e.profileEvaluationPrepare(i);case"profile/evaluations/run":return this.#e.profileEvaluationRun(i);case"experiments/executeCase":{if(!this.#e.experimentExecuteCase)throw new Error("Experiment execution is unavailable in this runtime.");return this.#e.experimentExecuteCase(i)}case"experiments/cancelCase":{if(!this.#e.experimentCancelCase)throw new Error("Experiment cancellation is unavailable in this runtime.");return this.#e.experimentCancelCase(i)}case"profile/evaluations/runSuite":return this.#e.profileEvaluationRunSuite(i);case"profile/evaluations/executeCase":return this.#e.profileEvaluationExecuteCase(i);case"profile/evaluations/executeRun":return this.#e.profileEvaluationExecuteRun(i);case"profile/evaluations/compare":return this.#e.profileEvaluationCompare(i);case"profile/evaluations/report":return this.#e.profileEvaluationReport(i);case"harness/inspect":return this.#e.harnessInspect(i);case"harness/proposalReview":return this.#e.harnessProposalReview(i);case"harness/review":return this.#e.harnessReview(i);case"harness/acceptEvaluationReview":return this.#e.harnessAcceptEvaluationReview(i);case"harness/materializeEvaluationTaskset":return this.#e.harnessMaterializeEvaluationTaskset(i);case"harness/runEvaluationBaseline":return this.#e.harnessRunEvaluationBaseline(i);case"harness/validate":return this.#e.harnessValidate(i);case"harness/backgroundReview":return this.#e.harnessBackgroundReview(i);case"harness/diff":return this.#e.harnessDiff(i);case"harness/rollback":return this.#e.harnessRollback(i);case"refiner/inspect":return this.#e.refinerInspect(i);case"refiner/update":return this.#e.refinerUpdate(i);case"refiner/activate":return this.#e.refinerActivate(i);case"refiner/rollback":return this.#e.refinerRollback(i);default:throw new w(-32601,`Method not found: ${t}`)}}},w=class extends Error{static{a(this,"JsonRpcDispatchError")}code;data;constructor(t,i,n){super(i),this.code=t,this.data=n}};function U(r,t,i,n){return{jsonrpc:"2.0",id:r,error:{code:t,message:i,...n===void 0?{}:{data:n}}}}a(U,"jsonRpcError");var D=class{static{a(this,"AgentRpcClient")}#e;#t;constructor(t){this.#e=t.request.bind(t),this.#t=t.notify.bind(t)}async initialize(t,i={}){let n=await this.#e("initialize",{protocolVersion:E,client:t,capabilities:i});return await this.#t("initialized"),n}capabilities=a((t={})=>this.#e("runtime/capabilities",t),"capabilities");threadStart=a(t=>this.#e("thread/start",t),"threadStart");threadResume=a(t=>this.#e("thread/resume",t),"threadResume");threadRead=a(t=>this.#e("thread/read",t),"threadRead");turnStart=a(t=>this.#e("turn/start",t),"turnStart");turnSteer=a(t=>this.#e("turn/steer",t),"turnSteer");taskInbox=a(t=>this.#e("task/inbox",t),"taskInbox");taskQueue=a(t=>this.#e("task/queue",t),"taskQueue");taskInputUpdate=a(t=>this.#e("task/inputUpdate",t),"taskInputUpdate");turnInterrupt=a(t=>this.#e("turn/interrupt",t),"turnInterrupt");approvalResolve=a(t=>this.#e("approval/resolve",t),"approvalResolve");userInputResolve=a(t=>this.#e("userInput/resolve",t),"userInputResolve");profileWorkflows=a(t=>this.#e("profile/workflows",t),"profileWorkflows");profileEvaluations=a(t=>this.#e("profile/evaluations",t),"profileEvaluations");profileEvaluationPrepare=a(t=>this.#e("profile/evaluations/prepare",t),"profileEvaluationPrepare");profileEvaluationRun=a(t=>this.#e("profile/evaluations/run",t),"profileEvaluationRun");profileEvaluationRunSuite=a(t=>this.#e("profile/evaluations/runSuite",t),"profileEvaluationRunSuite");profileEvaluationExecuteCase=a(t=>this.#e("profile/evaluations/executeCase",t),"profileEvaluationExecuteCase");profileEvaluationExecuteRun=a(t=>this.#e("profile/evaluations/executeRun",t),"profileEvaluationExecuteRun");profileEvaluationCompare=a(t=>this.#e("profile/evaluations/compare",t),"profileEvaluationCompare");experimentExecuteCase=a(t=>this.#e("experiments/executeCase",t),"experimentExecuteCase");experimentCancelCase=a(t=>this.#e("experiments/cancelCase",t),"experimentCancelCase");harnessInspect=a((t={})=>this.#e("harness/inspect",t),"harnessInspect");harnessProposalReview=a((t={})=>this.#e("harness/proposalReview",t),"harnessProposalReview");harnessReview=a((t={})=>this.#e("harness/review",t),"harnessReview");harnessAcceptEvaluationReview=a((t={})=>this.#e("harness/acceptEvaluationReview",t),"harnessAcceptEvaluationReview");harnessMaterializeEvaluationTaskset=a((t={})=>this.#e("harness/materializeEvaluationTaskset",t),"harnessMaterializeEvaluationTaskset");harnessRunEvaluationBaseline=a((t={})=>this.#e("harness/runEvaluationBaseline",t),"harnessRunEvaluationBaseline");harnessValidate=a((t={})=>this.#e("harness/validate",t),"harnessValidate");harnessBackgroundReview=a((t={})=>this.#e("harness/backgroundReview",t),"harnessBackgroundReview");harnessDiff=a((t={})=>this.#e("harness/diff",t),"harnessDiff");harnessRollback=a((t={})=>this.#e("harness/rollback",t),"harnessRollback");refinerInspect=a(t=>this.#e("refiner/inspect",t),"refinerInspect");refinerUpdate=a(t=>this.#e("refiner/update",t),"refinerUpdate");refinerActivate=a(t=>this.#e("refiner/activate",t),"refinerActivate");refinerRollback=a(t=>this.#e("refiner/rollback",t),"refinerRollback")};var N=e.object({caseId:e.string().trim().min(1).max(191),admissionHash:e.string().regex(/^[a-f0-9]{64}$/),definitionHash:e.string().regex(/^[a-f0-9]{64}$/),ordinal:e.number().int().nonnegative(),operation:e.enum(["create","reset","step","collect","destroy"]),value:e.record(e.string(),e.unknown()),timeoutMs:e.number().int().min(1).max(3e4)}).strict();var c=e.string().trim().min(1).max(200),A=e.string().trim().min(1).max(32e3),T=e.number().int().nonnegative(),F=e.object({id:c,sessionId:c,senderSessionId:c.nullable(),senderKind:e.enum(["user","task","runtime"]),kind:e.enum(["steer","message","followup","queued","result"]),body:A,payload:e.record(e.string(),e.unknown()),idempotencyKey:c,replyTo:c.nullable(),expectedTurnId:c.nullable()}).strict(),xe=e.discriminatedUnion("action",[e.object({action:e.literal("resume"),expectedRevision:e.number().int().positive()}).strict(),e.object({action:e.literal("cancel"),expectedRevision:e.number().int().positive()}).strict(),e.object({action:e.literal("edit"),expectedRevision:e.number().int().positive(),body:A}).strict(),e.object({action:e.literal("steer"),expectedRevision:e.number().int().positive(),expectedTurnId:c}).strict()]),W=e.object({id:c,sessionId:c,turnId:c,targetSessionId:c.nullable(),targetTurnId:c.nullable(),targetInputId:c.nullable(),afterSequence:T,deadline:e.string(),state:e.enum(["waiting","message","completed","failed","interrupted","unavailable","timeout","cancelled"]),createdAt:e.string(),updatedAt:e.string()}).strict(),K=e.record(e.string(),e.unknown()),Ie=e.enum(["queued","running","completed","failed","cancelled","needs_resume"]),we=e.object({parentSessionId:c.nullable().optional(),childSessionId:c.nullable().optional(),status:e.array(Ie).nullable().optional(),afterId:e.string().max(200),limit:e.number().int().min(1).max(10)}).strict(),G=e.discriminatedUnion("action",[e.object({action:e.literal("recoverTaskInboxOwners"),ownerId:c}).strict(),e.object({action:e.literal("hasTaskCompletion"),turnId:c}).strict(),e.object({action:e.literal("taskInboxSnapshot"),sessionId:c}).strict(),e.object({action:e.literal("taskInboxSnapshotInputs"),sessionId:c,afterSequence:T}).strict(),e.object({action:e.literal("declareTaskWork"),sessionId:c,turnId:c,ownerId:c,areas:e.array(A).max(100)}).strict(),e.object({action:e.literal("taskWorkAreas"),sessionId:c}).strict(),e.object({action:e.literal("admitTaskInput"),input:F}).strict(),e.object({action:e.literal("admitTaskInputs"),inputs:e.array(F).max(50)}).strict(),e.object({action:e.literal("rejectTaskInput"),id:c,error:A}).strict(),e.object({action:e.literal("getTaskInput"),id:c}).strict(),e.object({action:e.literal("taskInputsForSession"),sessionId:c,query:e.object({afterSequence:T.optional(),pendingOnly:e.boolean().optional(),limit:e.number().int().min(1).max(500).optional()}).strict()}).strict(),e.object({action:e.literal("mutateTaskInput"),sessionId:c,inputId:c,change:xe}).strict(),e.object({action:e.literal("openTaskInboxTurn"),sessionId:c,turnId:c,ownerId:c}).strict(),e.object({action:e.literal("renewTaskInboxTurn"),sessionId:c,turnId:c,ownerId:c}).strict(),e.object({action:e.literal("pendingTaskInputs"),sessionId:c,turnId:c,afterSequence:T}).strict(),e.object({action:e.literal("taskAssignmentInputs"),turnId:c,afterSequence:T}).strict(),e.object({action:e.literal("pauseTaskInboxTurn"),sessionId:c,turnId:c,ownerId:c}).strict(),e.object({action:e.literal("includeTaskInputs"),sessionId:c,turnId:c,ownerId:c,requestId:c}).strict(),e.object({action:e.literal("settleTaskInputRequest"),requestId:c,outcome:e.enum(["resolved","failed","replaced"])}).strict(),e.object({action:e.literal("sealTaskInboxTurn"),sessionId:c,turnId:c,ownerId:c}).strict(),e.object({action:e.literal("sealNativeTaskInboxTurn"),sessionId:c,turnId:c,ownerId:c}).strict(),e.object({action:e.literal("closeTaskInboxTurn"),sessionId:c,turnId:c,ownerId:c,outcome:e.enum(["completed","failed","interrupted"])}).strict(),e.object({action:e.literal("taskInboxPaused"),sessionId:c}).strict(),e.object({action:e.literal("reserveTaskFollowup"),sessionId:c,turnId:c,ownerId:c}).strict(),e.object({action:e.literal("taskInboxWakeTargets"),afterSessionId:e.string().max(200)}).strict(),e.object({action:e.literal("createTaskWait"),value:W}).strict(),e.object({action:e.literal("settleTaskWait"),id:c,state:W.shape.state}).strict(),e.object({action:e.literal("taskWaitsForSession"),sessionId:c,afterId:e.string().max(200)}).strict(),e.object({action:e.literal("commitSubagentCompletion"),value:K,turnId:c}).strict(),e.object({action:e.literal("pendingTaskCompletions"),afterTurnId:e.string().max(200)}).strict(),e.object({action:e.literal("settleTaskCompletion"),turnId:c,inputId:c}).strict(),e.object({action:e.literal("upsertSubagentRun"),value:K}).strict(),e.object({action:e.literal("getSubagentRun"),id:c}).strict(),e.object({action:e.literal("listSubagentRuns"),query:we}).strict()]);var q=e.string().trim().min(1).max(191),Q=e.object({createdAt:e.string().min(1),id:q}).strict(),X=e.enum(["trigger_decision","route_decision","refiner_outcome","proposal","targeted_validation","apply_receipt"]),Y=e.discriminatedUnion("action",[e.object({action:e.literal("active_release"),workspaceId:q}).strict(),e.object({action:e.literal("put_artifact"),workspaceId:q,kind:X,artifact:e.record(e.string(),e.unknown())}).strict(),e.object({action:e.literal("artifact_page"),workspaceId:q,kind:X,before:Q.nullable(),limit:e.number().int().min(1).max(200)}).strict(),e.object({action:e.literal("pending_trigger_page"),workspaceId:q,before:Q.nullable(),limit:e.number().int().min(1).max(200)}).strict()]);var b=e.string().trim().min(1).max(240),Z=e.string().regex(/^[a-f0-9]{64}$/),ee=e.enum(["run_overlay","observation","trigger_decision","route_decision","proposal","targeted_validation","apply_receipt","refiner_outcome"]),te=e.object({createdAt:e.string().datetime(),id:b}).strict(),re=e.discriminatedUnion("action",[e.object({action:e.literal("artifact_put"),workspaceId:b,kind:ee,artifact:e.record(e.string(),e.unknown())}).strict(),e.object({action:e.literal("artifact_page"),workspaceId:b,kind:ee,before:te.nullable(),limit:e.number().int().min(1).max(100)}).strict(),e.object({action:e.literal("pending_page"),workspaceId:b,before:te.nullable(),limit:e.number().int().min(1).max(100)}).strict(),e.object({action:e.literal("workspace_get"),workspaceId:b}).strict(),e.object({action:e.literal("background_get"),workspaceId:b}).strict(),e.object({action:e.literal("overlay_get"),runId:b}).strict(),e.object({action:e.literal("overlay_freeze"),runId:b,expectedRevision:e.number().int().nonnegative(),overlay:e.record(e.string(),e.unknown()),proposal:e.record(e.string(),e.unknown())}).strict(),e.object({action:e.literal("memory_get"),workspaceId:b,sessionId:b,key:b}).strict(),e.object({action:e.literal("memory_page"),workspaceId:b,sessionId:b,before:e.object({updatedAt:e.string().datetime(),key:b}).strict().nullable(),limit:e.number().int().min(1).max(20),includeDeleted:e.boolean()}).strict(),e.object({action:e.literal("memory_write"),sessionId:b,input:e.record(e.string(),e.unknown())}).strict(),e.object({action:e.literal("release_get"),contentHash:Z}).strict(),e.object({action:e.literal("release_put"),record:e.record(e.string(),e.unknown())}).strict(),e.object({action:e.literal("session_get"),sessionId:b}).strict(),e.object({action:e.literal("turn_get"),turnId:b}).strict(),e.object({action:e.literal("turn_page"),sessionId:b,before:e.number().int().positive().nullable(),limit:e.number().int().min(1).max(100)}).strict(),e.object({action:e.literal("event_page"),turnId:b,afterSequence:e.number().int().nonnegative(),names:e.array(b).max(40),limit:e.number().int().min(1).max(100)}).strict(),e.object({action:e.literal("event_append"),event:e.record(e.string(),e.unknown())}).strict(),e.object({action:e.literal("usage_put"),record:e.record(e.string(),e.unknown())}).strict(),e.object({action:e.literal("snapshot_restore"),turnId:b,expectedHash:Z,snapshot:e.record(e.string(),e.unknown())}).strict()]);var v=e.string().trim().min(1).max(200),ne=e.string().regex(/^[a-f0-9]{64}$/),ke=e.object({kind:e.enum(["structural","visual","test","user_review"]),status:e.enum(["passed","failed","not_run"]),label:e.string().trim().min(1).max(240),detail:e.string().trim().max(4e3).nullable().optional(),ref:e.string().trim().max(4096).nullable().optional()}),ae=e.object({id:v,title:e.string().trim().min(1).max(240),sourceTaskId:v,sourceTurnId:v,revision:e.number().int().positive(),createdAt:e.string().datetime(),contentType:e.string().trim().min(1).max(200),sizeBytes:e.number().int().min(1).max(1e7),sha256:ne,validation:e.array(ke).max(32)}).strict(),ie=e.object({sessionId:v,turnId:v,output:ae}).strict(),se=e.object({uploadId:v,index:e.number().int().min(0).max(1024),offset:e.number().int().min(0).max(1e7),sha256:ne,contentsBase64:e.string().min(1).max(131072)}).strict(),oe=e.object({uploadId:v}).strict(),je=ae.pick({id:!0,title:!0,sourceTaskId:!0,sourceTurnId:!0,revision:!0,createdAt:!0,validation:!0}),ce=e.object({sessionId:v,turnId:v,output:je,sandboxPath:e.string().trim().min(1).max(4096)}).strict();var _=e.string().trim().min(1).max(200),ye=e.object({type:e.enum(["create","get","start","stop","exec","open_port","list_files","download_file","upload_file","search_files","delete_file","stat_file","mkdir","move_file","process_start","process_get","git_status","git_diff","git_export_patch","git_branch","git_commit","git_pull","git_push"]),sandboxId:_.optional(),payload:e.unknown().optional(),processId:_.optional(),failOnUnpreservedChanges:e.boolean().optional()}).strict().superRefine((r,t)=>{r.type!=="create"&&!r.sandboxId&&t.addIssue({code:"custom",message:"Sandbox identity is required."}),r.type==="create"&&r.sandboxId&&t.addIssue({code:"custom",message:"Create cannot target a sandbox identity."}),r.type==="process_get"&&!r.processId&&t.addIssue({code:"custom",message:"Process identity is required."})}),le=e.object({action:ye}).strict(),ue=e.object({sessionId:_,turnId:_,name:_}).strict();var d=1,s=e.string().trim().min(1).max(191),k=e.number().int().min(1).max(200),wt=e.object({teamId:s,ownerUserId:s,workspaceId:s,conversationId:s,turnId:s,attempt:e.number().int().min(1),leaseGeneration:e.number().int().min(1)}).strict(),de=e.discriminatedUnion("operation",[e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("experiment/environment"),params:N}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("experiment/policy"),params:e.object({caseId:s,admissionHash:e.string().regex(/^[a-f0-9]{64}$/),ordinal:e.number().int().nonnegative(),messages:e.array(e.record(e.string(),e.unknown())).max(2e3),tools:e.array(e.record(e.string(),e.unknown())).max(200)}).strict()}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("sandbox/request"),params:le}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("embedding/authorize"),params:ue}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("output/begin"),params:ie}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("output/chunk"),params:se}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("output/complete"),params:oe}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("output/saveSandboxFile"),params:ce}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("settings/get"),params:e.object({}).strict()}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("harness/get"),params:e.object({reference:e.object({id:s,contentHash:e.string().regex(/^[a-f0-9]{64}$/)}).strict().nullable()}).strict()}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("harness/overlay/get"),params:e.object({runId:s}).strict()}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("harness/overlay/put"),params:e.object({runId:s,expectedRevision:e.number().int().min(0).nullable(),overlay:e.record(e.string(),e.unknown())}).strict()}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("harness/overlay/freezeProposal"),params:e.object({runId:s,expectedRevision:e.number().int().min(0),overlay:e.record(e.string(),e.unknown()),proposal:e.record(e.string(),e.unknown())}).strict()}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("harness/memory/get"),params:e.object({workspaceId:s,key:e.string().min(1).max(120)}).strict()}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("harness/memory/list"),params:e.object({workspaceId:s,includeDeleted:e.boolean(),before:e.object({updatedAt:e.string(),key:e.string()}).strict().nullable(),limit:k}).strict()}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("harness/memory/search"),params:e.object({workspaceId:s,query:e.string().trim().min(1).max(500),limit:e.number().int().min(1).max(20)}).strict()}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("harness/memory/write"),params:e.object({input:e.record(e.string(),e.unknown())}).strict()}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("harness/state/read"),params:e.object({workspaceId:s,kind:e.enum(["selection","workspace_settings","evaluation_review_settings","candidates","cross_run_requests"]),afterId:s.nullable(),limit:e.number().int().min(1).max(100)}).strict()}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("profile-evaluations/execute"),params:e.discriminatedUnion("action",[e.object({action:e.literal("get"),kind:e.enum(["grade","receipt","run","comparison","suite"]),id:s}).strict(),e.object({action:e.literal("page"),kind:e.enum(["grade","receipt","run","comparison","suite"]),profileKey:e.string().regex(/^[a-f0-9]{64}$/),before:e.object({createdAt:e.string(),id:s}).strict().nullable(),limit:e.number().int().min(1).max(100)}).strict(),e.object({action:e.literal("put"),kind:e.enum(["grade","receipt","run","comparison","suite"]),payload:e.record(e.string(),e.unknown()),profileKey:e.string().regex(/^[a-f0-9]{64}$/).nullable(),createdAt:e.string()}).strict()])}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("harness/workspace/transition"),params:e.discriminatedUnion("action",[e.object({action:e.literal("advance"),receiptId:s,workspaceId:s,proposal:e.record(e.string(),e.unknown()),validations:e.array(e.record(e.string(),e.unknown())).max(100),nextRelease:e.object({id:s,contentHash:e.string().regex(/^[a-f0-9]{64}$/)}).strict(),nextSourceRevision:e.string().min(1),now:e.string()}).strict(),e.object({action:e.literal("reviewedAdvance"),receiptId:s,workspaceId:s,proposal:e.record(e.string(),e.unknown()),validations:e.array(e.record(e.string(),e.unknown())).max(100),nextRelease:e.object({id:s,contentHash:e.string().regex(/^[a-f0-9]{64}$/)}).strict(),nextSourceRevision:e.string().min(1),reviewer:s,now:e.string()}).strict(),e.object({action:e.literal("rollback"),receiptId:s,workspaceId:s,expectedWorkspaceRevision:e.number().int().nonnegative(),expectedChannelRevision:e.number().int().nonnegative(),targetRelease:e.object({id:s,contentHash:e.string().regex(/^[a-f0-9]{64}$/)}).strict(),targetSourceRevision:e.string().min(1),rollbackOf:e.object({id:s,contentHash:e.string().regex(/^[a-f0-9]{64}$/)}).strict(),now:e.string()}).strict()])}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("task-inbox/execute"),params:G}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("harness/review/execute"),params:re}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("refiner/execute"),params:e.object({action:Y}).strict()}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("create-improve/execute"),params:e.discriminatedUnion("action",[e.object({action:e.literal("get"),runId:s}).strict(),e.object({action:e.literal("page"),query:e.object({profileId:s.nullable(),targetKind:s.nullable(),targetId:s.nullable(),state:e.array(s).max(20)}).strict(),before:e.object({updatedAt:e.string(),id:s}).strict().nullable(),limit:k}).strict(),e.object({action:e.literal("put"),run:e.record(e.string(),e.unknown())}).strict(),e.object({action:e.literal("mutate"),mutation:e.record(e.string(),e.unknown()),next:e.record(e.string(),e.unknown())}).strict()])}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("approval/get"),params:e.object({approvalId:s}).strict()}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("approval/upsert"),params:e.object({approval:e.record(e.string(),e.unknown()),expectedRevision:e.number().int().min(1).nullable()}).strict()}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("usage/getByRequestId"),params:e.object({requestId:s}).strict()}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("usage/upsert"),params:e.object({record:e.record(e.string(),e.unknown())}).strict()}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("usage/page"),params:e.object({query:e.object({sessionId:s.optional(),turnId:s.optional(),provider:s.optional(),model:s.optional(),startedAtFrom:e.string().optional(),startedAtTo:e.string().optional(),visibility:e.enum(["user_facing","background","system"]).optional(),status:e.enum(["started","completed","failed","interrupted","missing"]).optional()}).strict(),before:e.object({startedAt:e.string(),requestOrdinal:e.number().int().min(0),id:s}).strict().nullable(),limit:k}).strict()}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("capabilities"),params:e.object({}).strict()}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("session/count"),params:e.object({}).strict()}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("session/get"),params:e.object({sessionId:s}).strict()}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("session/page"),params:e.object({afterId:s.nullable(),limit:k}).strict()}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("session/put"),params:e.object({sessionId:s,expectedRevision:e.number().int().min(1).nullable(),session:e.record(e.string(),e.unknown())}).strict()}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("turn/count"),params:e.object({sessionId:s}).strict()}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("turn/wakeCount"),params:e.object({sessionId:s,key:e.enum(["messageId","fromRunId"]),value:s}).strict()}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("turn/get"),params:e.object({turnId:s}).strict()}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("turn/put"),params:e.object({sessionId:s,turnId:s,expectedRevision:e.number().int().min(1).nullable(),turn:e.record(e.string(),e.unknown())}).strict()}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("turn/latest"),params:e.object({sessionId:s,status:e.enum(["in_progress","completed","failed","interrupted"]).nullable()}).strict()}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("turn/page"),params:e.object({sessionId:s,beforeSortIndex:e.number().int().min(0).nullable().optional(),limit:k}).strict()}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("thread/turnPage"),params:e.object({sessionId:s,beforeSortIndex:e.number().int().min(0).nullable().optional(),limit:k}).strict()}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("event/append"),params:e.object({event:e.record(e.string(),e.unknown())}).strict()}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("events/page"),params:e.object({sessionId:s.nullable(),afterSequence:e.number().int().min(0),beforeSequence:e.number().int().min(1).nullable().optional(),limit:k,excludeReasoningDeltas:e.boolean().optional()}).strict()}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("events/latestAssistantText"),params:e.object({sessionId:s}).strict()}).strict()]),kt=e.object({contractVersion:e.literal(d),operations:e.array(e.enum(["experiment/policy","experiment/environment","sandbox/request","embedding/authorize","output/begin","output/chunk","output/complete","output/saveSandboxFile","settings/get","harness/get","harness/overlay/get","harness/overlay/put","harness/overlay/freezeProposal","harness/memory/get","harness/memory/list","harness/memory/search","harness/memory/write","harness/state/read","profile-evaluations/execute","harness/review/execute","harness/workspace/transition","task-inbox/execute","refiner/execute","create-improve/execute","approval/get","approval/upsert","usage/getByRequestId","usage/upsert","usage/page","session/count","session/get","session/page","session/put","turn/count","turn/wakeCount","turn/get","turn/put","turn/latest","turn/page","thread/turnPage","event/append","events/page","events/latestAssistantText"])).max(48),allowedTools:e.array(s).max(128),maxPageSize:k,maxRequestBytes:e.number().int().min(1).max(8388608),maxInFlight:e.number().int().min(1).max(64)}).strict();var pe=class{static{a(this,"AgentHostStorageClient")}#e=new Map;#t=null;#r=1;bind(t){if(this.#t)throw new Error("Host storage client is already bound.");this.#t=t}async request(t,i=15e3){let n=de.parse(t);if(!this.#t)throw new Error("Host storage transport is unavailable.");if(this.#e.size>=32)throw new Error("Host storage request limit exceeded.");let o=`host-storage:${this.#r++}`,l={jsonrpc:"2.0",id:o,method:"host/storage",params:n},u=n.operation==="experiment/policy"||n.operation==="experiment/environment";if(Buffer.byteLength(JSON.stringify(l))>(u?8388608:256e3))throw new Error("Host storage request is too large.");let p=new Promise((f,m)=>{let R=n.operation==="sandbox/request"||u?3e5:6e4,j=setTimeout(()=>{this.#e.delete(o),m(new Error("Host storage request timed out."))},Math.max(1,Math.min(R,i)));this.#e.set(o,{resolve:f,reject:m,timer:j,maxResponseBytes:n.operation==="experiment/environment"?16e5:1e6})});try{await this.#t(l)}catch(f){let m=this.#e.get(o);m&&(clearTimeout(m.timer),this.#e.delete(o),m.reject(f instanceof Error?f:new Error(String(f))))}return p}accept(t){let i=O.safeParse(t),n=i.success?null:B.safeParse(t),o=i.success?i.data:n?.success?n.data:null;if(!o||typeof o.id!="string"||!o.id.startsWith("host-storage:"))return!1;let l=this.#e.get(o.id);return l?(clearTimeout(l.timer),this.#e.delete(o.id),Buffer.byteLength(JSON.stringify(o))>l.maxResponseBytes?(l.reject(new Error("Host storage response is too large.")),!0):("error"in o?l.reject(new Error(`Host storage request failed: ${o.error.message}`)):l.resolve(o.result),!0)):!0}close(){this.#t=null;for(let t of this.#e.values())clearTimeout(t.timer),t.reject(new Error("Host storage transport closed."));this.#e.clear()}};import{once as Re}from"node:events";import{createInterface as Se}from"node:readline";async function Pt(r){let t=null,i=Promise.resolve(),n=[],o=a(h=>(i=i.then(async()=>{r.writable.write(`${JSON.stringify(h)}
|
|
3
|
-
`)||await Re(r.writable,"drain")}),i),"write");r.hostStorageClient?.bind(h=>o(h));let l=a(()=>{if(!(!t?.initialized||n.length===0))for(let h of n.splice(0))o(h)},"flushPendingNotifications"),u,p=new Set,f=Se({input:r.readable,crlfDelay:1/0}),m=[],R=!1,j=null,S=a(async h=>{let g=t;if(!g)throw new Error("Agent runtime dispatcher is unavailable.");let x=(async()=>{let M=await g.handle(h);M&&await o(M),l()})()
|
|
2
|
+
import{b as e}from"./chunk-ES2ISFJC.js";import{a}from"./chunk-FTQLQJQV.js";import{createHash as be}from"node:crypto";function V(r){if(r===null||typeof r=="boolean"||typeof r=="string")return r;if(typeof r=="number"){if(!Number.isFinite(r))throw new Error("Canonical JSON cannot encode a non-finite number.");return r}if(Array.isArray(r))return r.map(V);if(typeof r=="object"){let t={};for(let i of Object.keys(r).sort()){let n=r[i];n!==void 0&&(t[i]=V(n))}return t}throw new Error(`Canonical JSON cannot encode ${typeof r}.`)}a(V,"canonicalJson");function I(r){return be("sha256").update(JSON.stringify(V(r)),"utf8").digest("hex")}a(I,"canonicalHash");function Be(r){if(!r.maxContextTokens||!r.usableContextTokens)return{shouldCompact:!1,projectedTokens:r.projectedTokens,thresholdTokens:Number.MAX_SAFE_INTEGER,usableContextTokens:0,maxContextTokens:0,tokenSource:"heuristic"};let t=Math.max(.01,Math.min(1,(r.triggerPercent??85)/100)),i=Math.max(1,Math.floor(r.usableContextTokens*t));return{shouldCompact:r.projectedTokens>=i,projectedTokens:r.projectedTokens,thresholdTokens:i,usableContextTokens:r.usableContextTokens,maxContextTokens:r.maxContextTokens,tokenSource:"heuristic"}}a(Be,"agentCompactionDecision");async function $e(r){await r.started();try{return await r.compact()}catch(t){throw await r.failed(t),t}}a($e,"runAgentCompaction");async function Ne(r){let t=r.host.projectEvents(r.events),i=r.host.selectEvents(t,r.maxContextTokens),{summaryEvents:n,preservedEvents:o,preservedEventIds:l}=i;if(n.length===0)throw new Error("There is not enough prior context to compact.");let u=r.host.normalizeRecords(n),p=r.host.normalizeRecords(o),f=r.host.buildFileLedger(r.host.normalizeRecords(t)),m=r.host.serializeRecords(u,r.host.inputCharBudget(r.maxContextTokens));if(!m.text.trim())throw new Error("There is not enough prior context to compact.");let R=r.host.buildSummaryMessages({serializedHistory:m.text,fileLedger:f}),j=Date.now(),S=(await r.host.streamSummary({model:r.model,messages:R,signal:r.signal})).trim(),z=Date.now()-j;if(!S)throw new Error("Compaction summary was empty.");let h=r.host.estimateProjection({events:t,preservedEvents:o,summary:S}),g=r.host.createMetrics({sourceEvents:t.length,summarizedEvents:n.length,preservedEvents:o.length,sourceRecords:m.sourceRecordCount,includedRecords:m.includedRecordCount,omittedRecords:m.omittedRecordCount,preservedRecords:p.length,truncatedRecords:m.truncatedRecordCount,summaryInputTruncated:m.inputTruncated,sourceSelectionStrategy:m.selectionStrategy,summaryInputChars:m.inputChars,retainedTailTokens:i.retainedTailTokens,retainedTailBudgetTokens:i.retainedTailBudgetTokens,finalProviderContextTokens:h.inputTokensAfter,durationMs:z,fileLedgerEntries:f.length,splitTurnId:i.splitTurnId});return{summary:S,model:r.model,compactedThroughEventId:t[t.length-1]?.id??null,compactedThroughTurnId:r.host.lastTurnId(t),preservedFromEventId:o[0]?.id??null,preservedEventIds:l,preservedResourceRefs:r.host.durableResourceRefs(r.events),sourceEventCount:n.length,preservedEventCount:o.length,fileLedger:f,inputTokensBefore:h.inputTokensBefore,inputTokensAfter:h.inputTokensAfter,maxContextTokens:r.maxContextTokens,tokenSource:"heuristic",metrics:g}}a(Ne,"runAgentCompactionProgram");var fe=e.enum(["thread.started","thread.resumed","turn.started","turn.steered","turn.interrupted","turn.completed","turn.failed","item.started","item.delta","item.completed","assistant.reasoning.delta","assistant.delta","tool.started","tool.completed","approval.requested","approval.resolved","user_input.requested","user_input.resolved","compaction.started","compaction.completed","harness.admitted","harness.refiner.queued","harness.refiner.started","harness.refiner.completed","harness.refiner.failed","diagnostic"]),ge=e.object({sequence:e.number().int().nonnegative(),name:fe,source:e.enum(["runtime","provider","tool","host","refiner"]),status:e.string().trim().min(1).nullable().default(null),threadId:e.string().trim().min(1),turnId:e.string().trim().min(1).nullable().default(null),callId:e.string().trim().min(1).nullable().default(null),output:e.string().nullable().default(null),error:e.string().nullable().default(null),data:e.record(e.string(),e.unknown()).default({})}).strict();function Le(r){return I(ge.parse(r))}a(Le,"canonicalEventHash");var E="2026-09-20",Ge=["initialize","initialized","runtime/capabilities","thread/start","thread/resume","thread/read","turn/start","turn/steer","task/inbox","task/queue","task/inputUpdate","turn/interrupt","approval/resolve","userInput/resolve","profile/workflows","profile/evaluations","profile/trainingSource","profile/evaluations/prepare","profile/evaluations/run","profile/evaluations/runSuite","profile/evaluations/executeCase","profile/evaluations/executeRun","profile/evaluations/compare","profile/evaluations/report","experiments/executeCase","experiments/cancelCase","harness/inspect","harness/proposalReview","harness/review","harness/acceptEvaluationReview","harness/materializeEvaluationTaskset","harness/runEvaluationBaseline","harness/validate","harness/backgroundReview","harness/diff","harness/rollback","refiner/inspect","refiner/update","refiner/activate","refiner/rollback"],D=e.object({jsonrpc:e.literal("2.0"),id:e.union([e.string(),e.number()]),method:e.string().trim().min(1),params:e.unknown().optional()}).strict(),J=e.object({jsonrpc:e.literal("2.0"),method:e.string().trim().min(1),params:e.unknown().optional()}).strict(),O=e.object({jsonrpc:e.literal("2.0"),id:e.union([e.string(),e.number()]),result:e.unknown()}).strict(),B=e.object({jsonrpc:e.literal("2.0"),id:e.union([e.string(),e.number(),e.null()]),error:e.object({code:e.number().int(),message:e.string(),data:e.unknown().optional()}).strict()}).strict(),Qe=e.union([D,J,O,B]),ve=e.object({protocolVersion:e.string().trim().min(1),client:e.object({name:e.string().trim().min(1),version:e.string().trim().min(1)}).strict(),capabilities:e.record(e.string(),e.unknown()).default({})}).strict(),P=class{static{a(this,"AgentJsonRpcDispatcher")}#e;#t=null;#r=!1;constructor(t){this.#e=t}get initialized(){return this.#r}async handle(t){let i=J.safeParse(t);if(i.success&&!("id"in t)){if(i.data.method==="initialized"){if(!this.#t)throw new w(-32002,"initialize must be called first");this.#r=!0}return null}let n=D.safeParse(t);if(!n.success)return U(null,-32600,"Invalid Request",n.error.flatten());let o=n.data;try{let l=await this.#n(o.method,o.params);return{jsonrpc:"2.0",id:o.id,result:l}}catch(l){let u=l instanceof w?l:new w(-32603,l instanceof Error?l.message:String(l));return U(o.id,u.code,u.message,u.data)}}async#n(t,i){if(t==="initialize"){let n=ve.parse(i);if(n.protocolVersion!==E)throw new w(-32001,"Incompatible agent protocol version",{requested:n.protocolVersion,supported:E});return this.#t=n,{protocolVersion:E,server:{name:"openpond-app-server",version:"1"},capabilities:await this.#e.capabilities()}}if(!this.#r)throw new w(-32002,"initialized notification is required");switch(t){case"runtime/capabilities":return this.#e.capabilities(i);case"thread/start":return this.#e.threadStart(i);case"thread/resume":return this.#e.threadResume(i);case"thread/read":return this.#e.threadRead(i);case"turn/start":return this.#e.turnStart(i);case"turn/steer":return this.#e.turnSteer(i);case"task/inbox":return this.#e.taskInbox(i);case"task/queue":return this.#e.taskQueue(i);case"task/inputUpdate":return this.#e.taskInputUpdate(i);case"turn/interrupt":return this.#e.turnInterrupt(i);case"approval/resolve":return this.#e.approvalResolve(i);case"userInput/resolve":return this.#e.userInputResolve(i);case"profile/workflows":return this.#e.profileWorkflows(i);case"profile/evaluations":return this.#e.profileEvaluations(i);case"profile/trainingSource":return this.#e.profileTrainingSource(i);case"profile/evaluations/prepare":return this.#e.profileEvaluationPrepare(i);case"profile/evaluations/run":return this.#e.profileEvaluationRun(i);case"experiments/executeCase":{if(!this.#e.experimentExecuteCase)throw new Error("Experiment execution is unavailable in this runtime.");return this.#e.experimentExecuteCase(i)}case"experiments/cancelCase":{if(!this.#e.experimentCancelCase)throw new Error("Experiment cancellation is unavailable in this runtime.");return this.#e.experimentCancelCase(i)}case"profile/evaluations/runSuite":return this.#e.profileEvaluationRunSuite(i);case"profile/evaluations/executeCase":return this.#e.profileEvaluationExecuteCase(i);case"profile/evaluations/executeRun":return this.#e.profileEvaluationExecuteRun(i);case"profile/evaluations/compare":return this.#e.profileEvaluationCompare(i);case"profile/evaluations/report":return this.#e.profileEvaluationReport(i);case"harness/inspect":return this.#e.harnessInspect(i);case"harness/proposalReview":return this.#e.harnessProposalReview(i);case"harness/review":return this.#e.harnessReview(i);case"harness/acceptEvaluationReview":return this.#e.harnessAcceptEvaluationReview(i);case"harness/materializeEvaluationTaskset":return this.#e.harnessMaterializeEvaluationTaskset(i);case"harness/runEvaluationBaseline":return this.#e.harnessRunEvaluationBaseline(i);case"harness/validate":return this.#e.harnessValidate(i);case"harness/backgroundReview":return this.#e.harnessBackgroundReview(i);case"harness/diff":return this.#e.harnessDiff(i);case"harness/rollback":return this.#e.harnessRollback(i);case"refiner/inspect":return this.#e.refinerInspect(i);case"refiner/update":return this.#e.refinerUpdate(i);case"refiner/activate":return this.#e.refinerActivate(i);case"refiner/rollback":return this.#e.refinerRollback(i);default:throw new w(-32601,`Method not found: ${t}`)}}},w=class extends Error{static{a(this,"JsonRpcDispatchError")}code;data;constructor(t,i,n){super(i),this.code=t,this.data=n}};function U(r,t,i,n){return{jsonrpc:"2.0",id:r,error:{code:t,message:i,...n===void 0?{}:{data:n}}}}a(U,"jsonRpcError");var L=class{static{a(this,"AgentRpcClient")}#e;#t;constructor(t){this.#e=t.request.bind(t),this.#t=t.notify.bind(t)}async initialize(t,i={}){let n=await this.#e("initialize",{protocolVersion:E,client:t,capabilities:i});return await this.#t("initialized"),n}capabilities=a((t={})=>this.#e("runtime/capabilities",t),"capabilities");threadStart=a(t=>this.#e("thread/start",t),"threadStart");threadResume=a(t=>this.#e("thread/resume",t),"threadResume");threadRead=a(t=>this.#e("thread/read",t),"threadRead");turnStart=a(t=>this.#e("turn/start",t),"turnStart");turnSteer=a(t=>this.#e("turn/steer",t),"turnSteer");taskInbox=a(t=>this.#e("task/inbox",t),"taskInbox");taskQueue=a(t=>this.#e("task/queue",t),"taskQueue");taskInputUpdate=a(t=>this.#e("task/inputUpdate",t),"taskInputUpdate");turnInterrupt=a(t=>this.#e("turn/interrupt",t),"turnInterrupt");approvalResolve=a(t=>this.#e("approval/resolve",t),"approvalResolve");userInputResolve=a(t=>this.#e("userInput/resolve",t),"userInputResolve");profileWorkflows=a(t=>this.#e("profile/workflows",t),"profileWorkflows");profileEvaluations=a(t=>this.#e("profile/evaluations",t),"profileEvaluations");profileEvaluationPrepare=a(t=>this.#e("profile/evaluations/prepare",t),"profileEvaluationPrepare");profileEvaluationRun=a(t=>this.#e("profile/evaluations/run",t),"profileEvaluationRun");profileEvaluationRunSuite=a(t=>this.#e("profile/evaluations/runSuite",t),"profileEvaluationRunSuite");profileEvaluationExecuteCase=a(t=>this.#e("profile/evaluations/executeCase",t),"profileEvaluationExecuteCase");profileEvaluationExecuteRun=a(t=>this.#e("profile/evaluations/executeRun",t),"profileEvaluationExecuteRun");profileEvaluationCompare=a(t=>this.#e("profile/evaluations/compare",t),"profileEvaluationCompare");experimentExecuteCase=a(t=>this.#e("experiments/executeCase",t),"experimentExecuteCase");experimentCancelCase=a(t=>this.#e("experiments/cancelCase",t),"experimentCancelCase");harnessInspect=a((t={})=>this.#e("harness/inspect",t),"harnessInspect");harnessProposalReview=a((t={})=>this.#e("harness/proposalReview",t),"harnessProposalReview");harnessReview=a((t={})=>this.#e("harness/review",t),"harnessReview");harnessAcceptEvaluationReview=a((t={})=>this.#e("harness/acceptEvaluationReview",t),"harnessAcceptEvaluationReview");harnessMaterializeEvaluationTaskset=a((t={})=>this.#e("harness/materializeEvaluationTaskset",t),"harnessMaterializeEvaluationTaskset");harnessRunEvaluationBaseline=a((t={})=>this.#e("harness/runEvaluationBaseline",t),"harnessRunEvaluationBaseline");harnessValidate=a((t={})=>this.#e("harness/validate",t),"harnessValidate");harnessBackgroundReview=a((t={})=>this.#e("harness/backgroundReview",t),"harnessBackgroundReview");harnessDiff=a((t={})=>this.#e("harness/diff",t),"harnessDiff");harnessRollback=a((t={})=>this.#e("harness/rollback",t),"harnessRollback");refinerInspect=a(t=>this.#e("refiner/inspect",t),"refinerInspect");refinerUpdate=a(t=>this.#e("refiner/update",t),"refinerUpdate");refinerActivate=a(t=>this.#e("refiner/activate",t),"refinerActivate");refinerRollback=a(t=>this.#e("refiner/rollback",t),"refinerRollback")};var $=e.object({caseId:e.string().trim().min(1).max(191),admissionHash:e.string().regex(/^[a-f0-9]{64}$/),definitionHash:e.string().regex(/^[a-f0-9]{64}$/),ordinal:e.number().int().nonnegative(),operation:e.enum(["create","reset","step","collect","destroy"]),value:e.record(e.string(),e.unknown()),timeoutMs:e.number().int().min(1).max(3e4)}).strict();var c=e.string().trim().min(1).max(200),A=e.string().trim().min(1).max(32e3),T=e.number().int().nonnegative(),F=e.object({id:c,sessionId:c,senderSessionId:c.nullable(),senderKind:e.enum(["user","task","runtime"]),kind:e.enum(["steer","message","followup","queued","result"]),body:A,payload:e.record(e.string(),e.unknown()),idempotencyKey:c,replyTo:c.nullable(),expectedTurnId:c.nullable()}).strict(),xe=e.discriminatedUnion("action",[e.object({action:e.literal("resume"),expectedRevision:e.number().int().positive()}).strict(),e.object({action:e.literal("cancel"),expectedRevision:e.number().int().positive()}).strict(),e.object({action:e.literal("edit"),expectedRevision:e.number().int().positive(),body:A}).strict(),e.object({action:e.literal("steer"),expectedRevision:e.number().int().positive(),expectedTurnId:c}).strict()]),W=e.object({id:c,sessionId:c,turnId:c,targetSessionId:c.nullable(),targetTurnId:c.nullable(),targetInputId:c.nullable(),afterSequence:T,deadline:e.string(),state:e.enum(["waiting","message","completed","failed","interrupted","unavailable","timeout","cancelled"]),createdAt:e.string(),updatedAt:e.string()}).strict(),K=e.record(e.string(),e.unknown()),Ie=e.enum(["queued","running","completed","failed","cancelled","needs_resume"]),we=e.object({parentSessionId:c.nullable().optional(),childSessionId:c.nullable().optional(),status:e.array(Ie).nullable().optional(),afterId:e.string().max(200),limit:e.number().int().min(1).max(10)}).strict(),G=e.discriminatedUnion("action",[e.object({action:e.literal("recoverTaskInboxOwners"),ownerId:c}).strict(),e.object({action:e.literal("hasTaskCompletion"),turnId:c}).strict(),e.object({action:e.literal("taskInboxSnapshot"),sessionId:c}).strict(),e.object({action:e.literal("taskInboxSnapshotInputs"),sessionId:c,afterSequence:T}).strict(),e.object({action:e.literal("declareTaskWork"),sessionId:c,turnId:c,ownerId:c,areas:e.array(A).max(100)}).strict(),e.object({action:e.literal("taskWorkAreas"),sessionId:c}).strict(),e.object({action:e.literal("admitTaskInput"),input:F}).strict(),e.object({action:e.literal("admitTaskInputs"),inputs:e.array(F).max(50)}).strict(),e.object({action:e.literal("rejectTaskInput"),id:c,error:A}).strict(),e.object({action:e.literal("getTaskInput"),id:c}).strict(),e.object({action:e.literal("taskInputsForSession"),sessionId:c,query:e.object({afterSequence:T.optional(),pendingOnly:e.boolean().optional(),limit:e.number().int().min(1).max(500).optional()}).strict()}).strict(),e.object({action:e.literal("mutateTaskInput"),sessionId:c,inputId:c,change:xe}).strict(),e.object({action:e.literal("openTaskInboxTurn"),sessionId:c,turnId:c,ownerId:c}).strict(),e.object({action:e.literal("renewTaskInboxTurn"),sessionId:c,turnId:c,ownerId:c}).strict(),e.object({action:e.literal("pendingTaskInputs"),sessionId:c,turnId:c,afterSequence:T}).strict(),e.object({action:e.literal("taskAssignmentInputs"),turnId:c,afterSequence:T}).strict(),e.object({action:e.literal("pauseTaskInboxTurn"),sessionId:c,turnId:c,ownerId:c}).strict(),e.object({action:e.literal("includeTaskInputs"),sessionId:c,turnId:c,ownerId:c,requestId:c}).strict(),e.object({action:e.literal("settleTaskInputRequest"),requestId:c,outcome:e.enum(["resolved","failed","replaced"])}).strict(),e.object({action:e.literal("sealTaskInboxTurn"),sessionId:c,turnId:c,ownerId:c}).strict(),e.object({action:e.literal("sealNativeTaskInboxTurn"),sessionId:c,turnId:c,ownerId:c}).strict(),e.object({action:e.literal("closeTaskInboxTurn"),sessionId:c,turnId:c,ownerId:c,outcome:e.enum(["completed","failed","interrupted"])}).strict(),e.object({action:e.literal("taskInboxPaused"),sessionId:c}).strict(),e.object({action:e.literal("reserveTaskFollowup"),sessionId:c,turnId:c,ownerId:c}).strict(),e.object({action:e.literal("taskInboxWakeTargets"),afterSessionId:e.string().max(200)}).strict(),e.object({action:e.literal("createTaskWait"),value:W}).strict(),e.object({action:e.literal("settleTaskWait"),id:c,state:W.shape.state}).strict(),e.object({action:e.literal("taskWaitsForSession"),sessionId:c,afterId:e.string().max(200)}).strict(),e.object({action:e.literal("commitSubagentCompletion"),value:K,turnId:c}).strict(),e.object({action:e.literal("pendingTaskCompletions"),afterTurnId:e.string().max(200)}).strict(),e.object({action:e.literal("settleTaskCompletion"),turnId:c,inputId:c}).strict(),e.object({action:e.literal("upsertSubagentRun"),value:K}).strict(),e.object({action:e.literal("getSubagentRun"),id:c}).strict(),e.object({action:e.literal("listSubagentRuns"),query:we}).strict()]);var q=e.string().trim().min(1).max(191),Q=e.object({createdAt:e.string().min(1),id:q}).strict(),X=e.enum(["trigger_decision","route_decision","refiner_outcome","proposal","targeted_validation","apply_receipt"]),Y=e.discriminatedUnion("action",[e.object({action:e.literal("active_release"),workspaceId:q}).strict(),e.object({action:e.literal("put_artifact"),workspaceId:q,kind:X,artifact:e.record(e.string(),e.unknown())}).strict(),e.object({action:e.literal("artifact_page"),workspaceId:q,kind:X,before:Q.nullable(),limit:e.number().int().min(1).max(200)}).strict(),e.object({action:e.literal("pending_trigger_page"),workspaceId:q,before:Q.nullable(),limit:e.number().int().min(1).max(200)}).strict()]);var b=e.string().trim().min(1).max(240),Z=e.string().regex(/^[a-f0-9]{64}$/),ee=e.enum(["run_overlay","observation","trigger_decision","route_decision","proposal","targeted_validation","apply_receipt","refiner_outcome"]),te=e.object({createdAt:e.string().datetime(),id:b}).strict(),re=e.discriminatedUnion("action",[e.object({action:e.literal("artifact_put"),workspaceId:b,kind:ee,artifact:e.record(e.string(),e.unknown())}).strict(),e.object({action:e.literal("artifact_page"),workspaceId:b,kind:ee,before:te.nullable(),limit:e.number().int().min(1).max(100)}).strict(),e.object({action:e.literal("pending_page"),workspaceId:b,before:te.nullable(),limit:e.number().int().min(1).max(100)}).strict(),e.object({action:e.literal("workspace_get"),workspaceId:b}).strict(),e.object({action:e.literal("background_get"),workspaceId:b}).strict(),e.object({action:e.literal("overlay_get"),runId:b}).strict(),e.object({action:e.literal("overlay_freeze"),runId:b,expectedRevision:e.number().int().nonnegative(),overlay:e.record(e.string(),e.unknown()),proposal:e.record(e.string(),e.unknown())}).strict(),e.object({action:e.literal("memory_get"),workspaceId:b,sessionId:b,key:b}).strict(),e.object({action:e.literal("memory_page"),workspaceId:b,sessionId:b,before:e.object({updatedAt:e.string().datetime(),key:b}).strict().nullable(),limit:e.number().int().min(1).max(20),includeDeleted:e.boolean()}).strict(),e.object({action:e.literal("memory_write"),sessionId:b,input:e.record(e.string(),e.unknown())}).strict(),e.object({action:e.literal("release_get"),contentHash:Z}).strict(),e.object({action:e.literal("release_put"),record:e.record(e.string(),e.unknown())}).strict(),e.object({action:e.literal("session_get"),sessionId:b}).strict(),e.object({action:e.literal("turn_get"),turnId:b}).strict(),e.object({action:e.literal("turn_page"),sessionId:b,before:e.number().int().positive().nullable(),limit:e.number().int().min(1).max(100)}).strict(),e.object({action:e.literal("event_page"),turnId:b,afterSequence:e.number().int().nonnegative(),names:e.array(b).max(40),limit:e.number().int().min(1).max(100)}).strict(),e.object({action:e.literal("event_append"),event:e.record(e.string(),e.unknown())}).strict(),e.object({action:e.literal("usage_put"),record:e.record(e.string(),e.unknown())}).strict(),e.object({action:e.literal("snapshot_restore"),turnId:b,expectedHash:Z,snapshot:e.record(e.string(),e.unknown())}).strict()]);var v=e.string().trim().min(1).max(200),ne=e.string().regex(/^[a-f0-9]{64}$/),ke=e.object({kind:e.enum(["structural","visual","test","user_review"]),status:e.enum(["passed","failed","not_run"]),label:e.string().trim().min(1).max(240),detail:e.string().trim().max(4e3).nullable().optional(),ref:e.string().trim().max(4096).nullable().optional()}),ae=e.object({id:v,title:e.string().trim().min(1).max(240),sourceTaskId:v,sourceTurnId:v,revision:e.number().int().positive(),createdAt:e.string().datetime(),contentType:e.string().trim().min(1).max(200),sizeBytes:e.number().int().min(1).max(1e7),sha256:ne,validation:e.array(ke).max(32)}).strict(),ie=e.object({sessionId:v,turnId:v,output:ae}).strict(),se=e.object({uploadId:v,index:e.number().int().min(0).max(1024),offset:e.number().int().min(0).max(1e7),sha256:ne,contentsBase64:e.string().min(1).max(131072)}).strict(),oe=e.object({uploadId:v}).strict(),je=ae.pick({id:!0,title:!0,sourceTaskId:!0,sourceTurnId:!0,revision:!0,createdAt:!0,validation:!0}),ce=e.object({sessionId:v,turnId:v,output:je,sandboxPath:e.string().trim().min(1).max(4096)}).strict();var _=e.string().trim().min(1).max(200),ye=e.object({type:e.enum(["create","get","start","stop","exec","open_port","list_files","download_file","upload_file","search_files","delete_file","stat_file","mkdir","move_file","process_start","process_get","git_status","git_diff","git_export_patch","git_branch","git_commit","git_pull","git_push"]),sandboxId:_.optional(),payload:e.unknown().optional(),processId:_.optional(),failOnUnpreservedChanges:e.boolean().optional()}).strict().superRefine((r,t)=>{r.type!=="create"&&!r.sandboxId&&t.addIssue({code:"custom",message:"Sandbox identity is required."}),r.type==="create"&&r.sandboxId&&t.addIssue({code:"custom",message:"Create cannot target a sandbox identity."}),r.type==="process_get"&&!r.processId&&t.addIssue({code:"custom",message:"Process identity is required."})}),le=e.object({action:ye}).strict(),ue=e.object({sessionId:_,turnId:_,name:_}).strict();var d=1,s=e.string().trim().min(1).max(191),k=e.number().int().min(1).max(200),wt=e.object({teamId:s,ownerUserId:s,workspaceId:s,conversationId:s,turnId:s,attempt:e.number().int().min(1),leaseGeneration:e.number().int().min(1)}).strict(),de=e.discriminatedUnion("operation",[e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("profile.externalDataset.authorize"),params:e.object({bindingHash:e.string().regex(/^[a-f0-9]{64}$/),manifestHash:e.string().regex(/^[a-f0-9]{64}$/).optional(),taskId:s.optional(),seed:e.string().min(1).max(500).optional()}).strict().refine(r=>!!r.taskId==!!r.seed,"Case authority requires both task and seed.")}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("experiment/environment"),params:$}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("experiment/policy"),params:e.object({caseId:s,admissionHash:e.string().regex(/^[a-f0-9]{64}$/),ordinal:e.number().int().nonnegative(),messages:e.array(e.record(e.string(),e.unknown())).max(2e3),tools:e.array(e.record(e.string(),e.unknown())).max(200)}).strict()}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("sandbox/request"),params:le}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("embedding/authorize"),params:ue}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("output/begin"),params:ie}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("output/chunk"),params:se}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("output/complete"),params:oe}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("output/saveSandboxFile"),params:ce}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("settings/get"),params:e.object({}).strict()}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("harness/get"),params:e.object({reference:e.object({id:s,contentHash:e.string().regex(/^[a-f0-9]{64}$/)}).strict().nullable()}).strict()}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("harness/overlay/get"),params:e.object({runId:s}).strict()}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("harness/overlay/put"),params:e.object({runId:s,expectedRevision:e.number().int().min(0).nullable(),overlay:e.record(e.string(),e.unknown())}).strict()}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("harness/overlay/freezeProposal"),params:e.object({runId:s,expectedRevision:e.number().int().min(0),overlay:e.record(e.string(),e.unknown()),proposal:e.record(e.string(),e.unknown())}).strict()}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("harness/memory/get"),params:e.object({workspaceId:s,key:e.string().min(1).max(120)}).strict()}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("harness/memory/list"),params:e.object({workspaceId:s,includeDeleted:e.boolean(),before:e.object({updatedAt:e.string(),key:e.string()}).strict().nullable(),limit:k}).strict()}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("harness/memory/search"),params:e.object({workspaceId:s,query:e.string().trim().min(1).max(500),limit:e.number().int().min(1).max(20)}).strict()}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("harness/memory/write"),params:e.object({input:e.record(e.string(),e.unknown())}).strict()}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("harness/state/read"),params:e.object({workspaceId:s,kind:e.enum(["selection","workspace_settings","evaluation_review_settings","candidates","cross_run_requests"]),afterId:s.nullable(),limit:e.number().int().min(1).max(100)}).strict()}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("profile-evaluations/execute"),params:e.discriminatedUnion("action",[e.object({action:e.literal("get"),kind:e.enum(["grade","receipt","run","comparison","suite"]),id:s}).strict(),e.object({action:e.literal("page"),kind:e.enum(["grade","receipt","run","comparison","suite"]),profileKey:e.string().regex(/^[a-f0-9]{64}$/),before:e.object({createdAt:e.string(),id:s}).strict().nullable(),limit:e.number().int().min(1).max(100)}).strict(),e.object({action:e.literal("put"),kind:e.enum(["grade","receipt","run","comparison","suite"]),payload:e.record(e.string(),e.unknown()),profileKey:e.string().regex(/^[a-f0-9]{64}$/).nullable(),createdAt:e.string()}).strict()])}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("harness/workspace/transition"),params:e.discriminatedUnion("action",[e.object({action:e.literal("advance"),receiptId:s,workspaceId:s,proposal:e.record(e.string(),e.unknown()),validations:e.array(e.record(e.string(),e.unknown())).max(100),nextRelease:e.object({id:s,contentHash:e.string().regex(/^[a-f0-9]{64}$/)}).strict(),nextSourceRevision:e.string().min(1),now:e.string()}).strict(),e.object({action:e.literal("reviewedAdvance"),receiptId:s,workspaceId:s,proposal:e.record(e.string(),e.unknown()),validations:e.array(e.record(e.string(),e.unknown())).max(100),nextRelease:e.object({id:s,contentHash:e.string().regex(/^[a-f0-9]{64}$/)}).strict(),nextSourceRevision:e.string().min(1),reviewer:s,now:e.string()}).strict(),e.object({action:e.literal("rollback"),receiptId:s,workspaceId:s,expectedWorkspaceRevision:e.number().int().nonnegative(),expectedChannelRevision:e.number().int().nonnegative(),targetRelease:e.object({id:s,contentHash:e.string().regex(/^[a-f0-9]{64}$/)}).strict(),targetSourceRevision:e.string().min(1),rollbackOf:e.object({id:s,contentHash:e.string().regex(/^[a-f0-9]{64}$/)}).strict(),now:e.string()}).strict()])}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("task-inbox/execute"),params:G}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("harness/review/execute"),params:re}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("refiner/execute"),params:e.object({action:Y}).strict()}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("create-improve/execute"),params:e.discriminatedUnion("action",[e.object({action:e.literal("get"),runId:s}).strict(),e.object({action:e.literal("page"),query:e.object({profileId:s.nullable(),targetKind:s.nullable(),targetId:s.nullable(),state:e.array(s).max(20)}).strict(),before:e.object({updatedAt:e.string(),id:s}).strict().nullable(),limit:k}).strict(),e.object({action:e.literal("put"),run:e.record(e.string(),e.unknown())}).strict(),e.object({action:e.literal("mutate"),mutation:e.record(e.string(),e.unknown()),next:e.record(e.string(),e.unknown())}).strict()])}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("approval/get"),params:e.object({approvalId:s}).strict()}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("approval/upsert"),params:e.object({approval:e.record(e.string(),e.unknown()),expectedRevision:e.number().int().min(1).nullable()}).strict()}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("usage/getByRequestId"),params:e.object({requestId:s}).strict()}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("usage/upsert"),params:e.object({record:e.record(e.string(),e.unknown())}).strict()}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("usage/page"),params:e.object({query:e.object({sessionId:s.optional(),turnId:s.optional(),provider:s.optional(),model:s.optional(),startedAtFrom:e.string().optional(),startedAtTo:e.string().optional(),visibility:e.enum(["user_facing","background","system"]).optional(),status:e.enum(["started","completed","failed","interrupted","missing"]).optional()}).strict(),before:e.object({startedAt:e.string(),requestOrdinal:e.number().int().min(0),id:s}).strict().nullable(),limit:k}).strict()}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("capabilities"),params:e.object({}).strict()}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("session/count"),params:e.object({}).strict()}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("session/get"),params:e.object({sessionId:s}).strict()}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("session/page"),params:e.object({afterId:s.nullable(),limit:k}).strict()}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("session/put"),params:e.object({sessionId:s,expectedRevision:e.number().int().min(1).nullable(),session:e.record(e.string(),e.unknown())}).strict()}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("turn/count"),params:e.object({sessionId:s}).strict()}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("turn/wakeCount"),params:e.object({sessionId:s,key:e.enum(["messageId","fromRunId"]),value:s}).strict()}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("turn/get"),params:e.object({turnId:s}).strict()}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("turn/put"),params:e.object({sessionId:s,turnId:s,expectedRevision:e.number().int().min(1).nullable(),turn:e.record(e.string(),e.unknown())}).strict()}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("turn/latest"),params:e.object({sessionId:s,status:e.enum(["in_progress","completed","failed","interrupted"]).nullable()}).strict()}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("turn/page"),params:e.object({sessionId:s,beforeSortIndex:e.number().int().min(0).nullable().optional(),limit:k}).strict()}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("thread/turnPage"),params:e.object({sessionId:s,beforeSortIndex:e.number().int().min(0).nullable().optional(),limit:k}).strict()}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("event/append"),params:e.object({event:e.record(e.string(),e.unknown())}).strict()}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("events/page"),params:e.object({sessionId:s.nullable(),afterSequence:e.number().int().min(0),beforeSequence:e.number().int().min(1).nullable().optional(),limit:k,excludeReasoningDeltas:e.boolean().optional()}).strict()}).strict(),e.object({contractVersion:e.literal(d),requestId:s,operation:e.literal("events/latestAssistantText"),params:e.object({sessionId:s}).strict()}).strict()]),kt=e.object({contractVersion:e.literal(d),operations:e.array(e.enum(["experiment/policy","experiment/environment","sandbox/request","embedding/authorize","output/begin","output/chunk","output/complete","output/saveSandboxFile","settings/get","harness/get","harness/overlay/get","harness/overlay/put","harness/overlay/freezeProposal","harness/memory/get","harness/memory/list","harness/memory/search","harness/memory/write","harness/state/read","profile-evaluations/execute","harness/review/execute","harness/workspace/transition","task-inbox/execute","refiner/execute","create-improve/execute","approval/get","approval/upsert","usage/getByRequestId","usage/upsert","usage/page","session/count","session/get","session/page","session/put","turn/count","turn/wakeCount","turn/get","turn/put","turn/latest","turn/page","thread/turnPage","event/append","events/page","events/latestAssistantText"])).max(48),allowedTools:e.array(s).max(128),maxPageSize:k,maxRequestBytes:e.number().int().min(1).max(8388608),maxInFlight:e.number().int().min(1).max(64)}).strict();var pe=class{static{a(this,"AgentHostStorageClient")}#e=new Map;#t=null;#r=1;bind(t){if(this.#t)throw new Error("Host storage client is already bound.");this.#t=t}async request(t,i=15e3){let n=de.parse(t);if(!this.#t)throw new Error("Host storage transport is unavailable.");if(this.#e.size>=32)throw new Error("Host storage request limit exceeded.");let o=`host-storage:${this.#r++}`,l={jsonrpc:"2.0",id:o,method:"host/storage",params:n},u=n.operation==="experiment/policy"||n.operation==="experiment/environment";if(Buffer.byteLength(JSON.stringify(l))>(u?8388608:256e3))throw new Error("Host storage request is too large.");let p=new Promise((f,m)=>{let R=n.operation==="sandbox/request"||u?3e5:6e4,j=setTimeout(()=>{this.#e.delete(o),m(new Error("Host storage request timed out."))},Math.max(1,Math.min(R,i)));this.#e.set(o,{resolve:f,reject:m,timer:j,maxResponseBytes:n.operation==="experiment/environment"?16e5:1e6})});try{await this.#t(l)}catch(f){let m=this.#e.get(o);m&&(clearTimeout(m.timer),this.#e.delete(o),m.reject(f instanceof Error?f:new Error(String(f))))}return p}accept(t){let i=O.safeParse(t),n=i.success?null:B.safeParse(t),o=i.success?i.data:n?.success?n.data:null;if(!o||typeof o.id!="string"||!o.id.startsWith("host-storage:"))return!1;let l=this.#e.get(o.id);return l?(clearTimeout(l.timer),this.#e.delete(o.id),Buffer.byteLength(JSON.stringify(o))>l.maxResponseBytes?(l.reject(new Error("Host storage response is too large.")),!0):("error"in o?l.reject(new Error(`Host storage request failed: ${o.error.message}`)):l.resolve(o.result),!0)):!0}close(){this.#t=null;for(let t of this.#e.values())clearTimeout(t.timer),t.reject(new Error("Host storage transport closed."));this.#e.clear()}};import{once as Re}from"node:events";import{createInterface as Se}from"node:readline";async function Pt(r){let t=null,i=Promise.resolve(),n=[],o=a(h=>(i=i.then(async()=>{r.writable.write(`${JSON.stringify(h)}
|
|
3
|
+
`)||await Re(r.writable,"drain")}),i),"write");r.hostStorageClient?.bind(h=>o(h));let l=a(()=>{if(!(!t?.initialized||n.length===0))for(let h of n.splice(0))o(h)},"flushPendingNotifications"),u,p=new Set,f=Se({input:r.readable,crlfDelay:1/0}),m=[],R=!1,j=null,S=a(async h=>{let g=t;if(!g)throw new Error("Agent runtime dispatcher is unavailable.");let x=(async()=>{let M=await g.handle(h);M&&await o(M),l()})(),N=h&&typeof h=="object"&&"method"in h?h.method:null;if(N==="initialize"||N==="initialized"){await x;return}p.add(x),x.finally(()=>p.delete(x))},"dispatch"),z=(async()=>{let h=typeof r.host=="function"?await r.host():r.host;for(t=new P(h),u=h.subscribe?.(g=>{if(!t?.initialized){n.push(g);return}o(g)});m.length>0;)await S(m.shift());R=!0})().catch(h=>{j=h,f.close()});try{for await(let h of f){if(!h.trim())continue;if(Buffer.byteLength(h,"utf8")>1e6){await o({jsonrpc:"2.0",id:null,error:{code:-32600,message:"Request exceeds the JSONL size limit"}});continue}let g;try{g=JSON.parse(h)}catch{await o({jsonrpc:"2.0",id:null,error:{code:-32700,message:"Parse error"}});continue}if(!r.hostStorageClient?.accept(g))if(R)await S(g);else if(m.length>=64){let x=g&&typeof g=="object"&&"id"in g?g.id:null;(typeof x=="string"||typeof x=="number")&&await o({jsonrpc:"2.0",id:x,error:{code:-32e3,message:"Runtime startup request limit exceeded"}})}else m.push(g)}if(await z,j)throw j;await Promise.all(p),await i}finally{r.hostStorageClient?.close(),u?.()}}a(Pt,"runAgentJsonlServer");var H=e.object({threadId:e.string().trim().min(1)}).passthrough(),Ee=H.extend({includeHistory:e.boolean().optional()}),Te=e.object({session:e.unknown()}).strict(),C=H.extend({input:e.unknown()}),qe=C.extend({idempotencyKey:e.string().trim().min(1).max(200)}),_e=C.extend({inputId:e.string().trim().min(1)}),Ce=H.extend({reason:e.string().trim().min(1).optional()}),Pe=e.object({approvalId:e.string().trim().min(1),input:e.unknown()}).strict();function Mt(r){let t=a(async(n,o,l)=>{let u=performance.now();r.telemetry?.({method:n,phase:"started",threadId:o,durationMs:null,errorClass:null});try{let p=await l();return r.telemetry?.({method:n,phase:"completed",threadId:o,durationMs:performance.now()-u,errorClass:null}),p}catch(p){throw r.telemetry?.({method:n,phase:"failed",threadId:o,durationMs:performance.now()-u,errorClass:p instanceof Error?p.name:"UnknownError"}),p}},"run"),i=a(async(n,o="thread/read")=>{let{threadId:l,includeHistory:u}=Ee.parse(n);return t(o,l,async()=>{if(u===!1)return{thread:await r.readThread(l),turns:[],events:[]};let[p,f,m]=await Promise.all([r.readThread(l),r.listTurns(l),r.listEvents(l)]);return{thread:p,turns:f,events:m}})},"threadRead");return{capabilities:a(n=>t("runtime/capabilities",null,()=>r.capabilities(n)),"capabilities"),threadStart:a(async n=>t("thread/start",null,async()=>({thread:await r.createThread(Te.parse(n).session)})),"threadStart"),threadResume:a(n=>i(n,"thread/resume"),"threadResume"),threadRead:i,turnStart:a(async n=>{let o=C.parse(n);return t("turn/start",o.threadId,async()=>({turn:await r.startTurn(o.threadId,o.input)}))},"turnStart"),turnSteer:a(async n=>{let o=C.parse(n);return t("turn/steer",o.threadId,async()=>({receipt:await r.steerTurn(o.threadId,o.input)}))},"turnSteer"),taskInbox:a(async n=>{let{threadId:o}=H.parse(n);return t("task/inbox",o,()=>r.readTaskInbox(o))},"taskInbox"),taskQueue:a(async n=>{let o=qe.parse(n);return t("task/queue",o.threadId,()=>r.queueTaskInput(o.threadId,o.input,o.idempotencyKey))},"taskQueue"),taskInputUpdate:a(async n=>{let o=_e.parse(n);return t("task/inputUpdate",o.threadId,()=>r.updateTaskInput(o.threadId,o.inputId,o.input))},"taskInputUpdate"),turnInterrupt:a(async n=>{let o=Ce.parse(n);return t("turn/interrupt",o.threadId,async()=>({turn:await r.interruptTurn(o.threadId,o.reason)}))},"turnInterrupt"),approvalResolve:a(async n=>{let o=Pe.parse(n);return t("approval/resolve",null,async()=>({approval:await r.resolveApproval(o.approvalId,o.input)}))},"approvalResolve"),userInputResolve:a(async n=>{let o=C.parse(n);return t("userInput/resolve",o.threadId,async()=>(r.isTurnActive(o.threadId)&&await r.waitForTurnSettlement(o.threadId),{turn:await r.startTurn(o.threadId,o.input)}))},"userInputResolve"),profileWorkflows:a(()=>t("profile/workflows",null,()=>r.listProfileWorkflows()),"profileWorkflows"),profileEvaluations:a(n=>t("profile/evaluations",null,()=>r.listProfileEvaluations(n)),"profileEvaluations"),profileTrainingSource:a(()=>t("profile/trainingSource",null,()=>r.loadProfileTrainingSource()),"profileTrainingSource"),profileEvaluationPrepare:a(n=>t("profile/evaluations/prepare",null,()=>r.prepareProfileEvaluationRun(n)),"profileEvaluationPrepare"),profileEvaluationRun:a(n=>t("profile/evaluations/run",null,()=>r.runPreparedProfileEvaluation(n)),"profileEvaluationRun"),...r.executeExperimentCase?{experimentExecuteCase:a(n=>t("experiments/executeCase",null,()=>r.executeExperimentCase(n)),"experimentExecuteCase")}:{},...r.cancelExperimentCase?{experimentCancelCase:a(n=>t("experiments/cancelCase",null,()=>r.cancelExperimentCase(n)),"experimentCancelCase")}:{},profileEvaluationRunSuite:a(n=>t("profile/evaluations/runSuite",null,()=>r.runProfileEvaluationSuite(n)),"profileEvaluationRunSuite"),profileEvaluationExecuteCase:a(n=>t("profile/evaluations/executeCase",null,()=>r.executeProfileEvaluationCase(n)),"profileEvaluationExecuteCase"),profileEvaluationExecuteRun:a(n=>t("profile/evaluations/executeRun",null,()=>r.executeProfileEvaluationRun(n)),"profileEvaluationExecuteRun"),profileEvaluationCompare:a(n=>t("profile/evaluations/compare",null,()=>r.compareProfileEvaluationRuns(n)),"profileEvaluationCompare"),profileEvaluationReport:a(n=>t("profile/evaluations/report",null,()=>r.buildProfileEvaluationReport(n)),"profileEvaluationReport"),harnessInspect:a(()=>t("harness/inspect",null,()=>r.inspectHarness()),"harnessInspect"),harnessProposalReview:a(n=>t("harness/proposalReview",null,()=>r.reviewHarnessProposal(n)),"harnessProposalReview"),harnessReview:a(n=>t("harness/review",null,()=>r.reviewHarness(n)),"harnessReview"),harnessAcceptEvaluationReview:a(n=>t("harness/acceptEvaluationReview",null,()=>r.acceptHarnessEvaluationReview(n)),"harnessAcceptEvaluationReview"),harnessMaterializeEvaluationTaskset:a(n=>t("harness/materializeEvaluationTaskset",null,()=>r.materializeHarnessEvaluationTaskset(n)),"harnessMaterializeEvaluationTaskset"),harnessRunEvaluationBaseline:a(n=>t("harness/runEvaluationBaseline",null,()=>r.runHarnessEvaluationBaseline(n)),"harnessRunEvaluationBaseline"),harnessValidate:a(()=>t("harness/validate",null,()=>r.validateHarness()),"harnessValidate"),harnessBackgroundReview:a(n=>t("harness/backgroundReview",null,()=>r.updateHarnessBackgroundReview(n)),"harnessBackgroundReview"),harnessDiff:a(n=>t("harness/diff",null,()=>r.diffHarness(n)),"harnessDiff"),harnessRollback:a(n=>t("harness/rollback",null,()=>r.rollbackHarness(n)),"harnessRollback"),refinerInspect:a(()=>t("refiner/inspect",null,()=>r.inspectRefiner()),"refinerInspect"),refinerUpdate:a(n=>t("refiner/update",null,()=>r.updateRefiner(n)),"refinerUpdate"),refinerActivate:a(n=>t("refiner/activate",null,()=>r.activateRefiner(n)),"refinerActivate"),refinerRollback:a(n=>t("refiner/rollback",null,()=>r.rollbackRefiner(n)),"refinerRollback"),subscribe:r.subscribeEvents&&r.eventNotification?n=>r.subscribeEvents(o=>n(r.eventNotification(o))):void 0}}a(Mt,"createAgentRuntimeService");var y=e.string().regex(/^[a-f0-9]{64}$/),Ae=e.object({harnessReleaseHash:y,instructionsHash:y,skillHashes:e.record(e.string(),y),agentAssetHashes:e.record(e.string(),y),toolCatalogHash:y,memoryRevision:e.number().int().nonnegative().nullable()}).strict(),He=e.object({protocolVersion:e.string().trim().min(1),threadId:e.string().trim().min(1),turnId:e.string().trim().min(1),harnessReleaseHash:y,toolCatalogHash:y,context:e.record(e.string(),e.unknown()),pendingInteraction:e.record(e.string(),e.unknown()).nullable(),usage:e.record(e.string(),e.unknown())}).strict();function Ft(r){return I(Ae.parse(r))}a(Ft,"effectiveSurfaceHash");function Wt(r){return I(He.parse(r))}a(Wt,"checkpointHash");function Kt(r){return[r.system,...r.harnessInstructions,...r.skillInstructions,...r.hostInstructions??[]].map(t=>t.trim()).filter(Boolean).join(`
|
|
4
4
|
|
|
5
|
-
`)}a(Kt,"materializeAgentPrompt");function Zt(r){let t=new Map;for(let u of r){let p=u.name.trim();if(!p)throw new Error("Agent tool names cannot be empty.");if(t.has(p))throw new Error(`Duplicate agent tool: ${p}.`);if(!u.unavailableReason&&!u.execute)throw new Error(`Agent tool ${p} is declared as available without an executor.`);t.set(p,{...u,name:p})}let i=[...t.values()].sort((u,p)=>u.name.localeCompare(p.name)),n=i.filter(u=>!u.unavailableReason).map(u=>({name:u.name,description:u.description,inputSchema:e.toJSONSchema(u.inputSchema,{target:"draft-7",unrepresentable:"any"})})),o=i.map(u=>({name:u.name,displayLabel:u.displayLabel??u.name,placement:u.placement,available:!u.unavailableReason,unavailableReason:u.unavailableReason??null})),l=I({modelTools:n,capabilities:o});return{byName:t,tools:i,modelTools:n,capabilities:o,hash:l}}a(Zt,"createAgentToolCatalog");async function er(r,t){let i=r.byName.get(t.name);if(!i)throw new Error(`Unknown agent tool: ${t.name}.`);if(i.unavailableReason)throw new Error(`Agent tool ${t.name} is unavailable: ${i.unavailableReason}`);if(!i.execute)throw new Error(`Agent tool ${t.name} has no executor.`);return i.execute(i.inputSchema.parse(t.arguments),t.context)}a(er,"executeAgentTool");function tr(r){let t=new Set,i=[...r].map(l=>{let u=l.name.trim();if(!u)throw new Error("Agent tool names cannot be empty.");if(t.has(u))throw new Error(`Duplicate agent tool: ${u}.`);if(t.add(u),!l.unavailableReason&&!l.executorAvailable)throw new Error(`Agent tool ${u} is declared as available without an executor.`);return{...l,name:u}}).sort((l,u)=>l.name.localeCompare(u.name)),n=i.filter(l=>!l.unavailableReason).map(l=>({name:l.name,description:l.description,inputSchema:l.inputSchema})),o=i.map(l=>({name:l.name,displayLabel:l.displayLabel??l.name,placement:l.placement,available:!l.unavailableReason,unavailableReason:l.unavailableReason??null}));return{byName:new Map(i.map(l=>[l.name,l])),tools:i,modelTools:n,capabilities:o,hash:I({modelTools:n,capabilities:o})}}a(tr,"createAgentToolCatalogProjection");async function rr(r,t){let i=r.byName.get(t.name);if(!i)throw new Error(`Unknown agent tool: ${t.name}.`);if(i.unavailableReason)throw new Error(`Agent tool ${t.name} is unavailable: ${i.unavailableReason}`);if(!i.execute)throw new Error(`Agent tool ${t.name} has no executor.`);let n=i.validateArguments?i.validateArguments(t.arguments):t.arguments;return i.execute(n,t.context)}a(rr,"executeProjectedAgentTool");var me=class{static{a(this,"TaskSignals")}#e=new Map;notify(t){for(let i of[...this.#e.get(t)??[]])i()}subscribe(t,i){let n=this.#e.get(t);return n||this.#e.set(t,n=new Set),n.add(i),()=>{n.delete(i),n.size===0&&this.#e.delete(t)}}async wait(t){let i=a(()=>{},"wake"),n=0,o=a(()=>{n+=1,i()},"changed"),l=[...new Set(t.taskIds)].map(p=>this.subscribe(p,o)),u=setTimeout(o,Math.max(0,t.deadline-Date.now()));t.signal.addEventListener("abort",o);try{for(;;){t.signal.throwIfAborted();let p=n,f=await t.read();if(f!==null)return f;if(Date.now()>=t.deadline)return null;n===p&&await new Promise(m=>{i=m,(n!==p||t.signal.aborted)&&m()})}}finally{clearTimeout(u),t.signal.removeEventListener("abort",o);for(let p of l)p()}}},he=class{static{a(this,"TaskSerialExecutor")}#e=new Map;async run(t,i){let o=(this.#e.get(t)??Promise.resolve()).then(i),l=o.then(()=>{},()=>{});this.#e.set(t,l);try{return await o}finally{this.#e.get(t)===l&&this.#e.delete(t)}}};export{V as a,I as b,Be as c
|
|
5
|
+
`)}a(Kt,"materializeAgentPrompt");function Zt(r){let t=new Map;for(let u of r){let p=u.name.trim();if(!p)throw new Error("Agent tool names cannot be empty.");if(t.has(p))throw new Error(`Duplicate agent tool: ${p}.`);if(!u.unavailableReason&&!u.execute)throw new Error(`Agent tool ${p} is declared as available without an executor.`);t.set(p,{...u,name:p})}let i=[...t.values()].sort((u,p)=>u.name.localeCompare(p.name)),n=i.filter(u=>!u.unavailableReason).map(u=>({name:u.name,description:u.description,inputSchema:e.toJSONSchema(u.inputSchema,{target:"draft-7",unrepresentable:"any"})})),o=i.map(u=>({name:u.name,displayLabel:u.displayLabel??u.name,placement:u.placement,available:!u.unavailableReason,unavailableReason:u.unavailableReason??null})),l=I({modelTools:n,capabilities:o});return{byName:t,tools:i,modelTools:n,capabilities:o,hash:l}}a(Zt,"createAgentToolCatalog");async function er(r,t){let i=r.byName.get(t.name);if(!i)throw new Error(`Unknown agent tool: ${t.name}.`);if(i.unavailableReason)throw new Error(`Agent tool ${t.name} is unavailable: ${i.unavailableReason}`);if(!i.execute)throw new Error(`Agent tool ${t.name} has no executor.`);return i.execute(i.inputSchema.parse(t.arguments),t.context)}a(er,"executeAgentTool");function tr(r){let t=new Set,i=[...r].map(l=>{let u=l.name.trim();if(!u)throw new Error("Agent tool names cannot be empty.");if(t.has(u))throw new Error(`Duplicate agent tool: ${u}.`);if(t.add(u),!l.unavailableReason&&!l.executorAvailable)throw new Error(`Agent tool ${u} is declared as available without an executor.`);return{...l,name:u}}).sort((l,u)=>l.name.localeCompare(u.name)),n=i.filter(l=>!l.unavailableReason).map(l=>({name:l.name,description:l.description,inputSchema:l.inputSchema})),o=i.map(l=>({name:l.name,displayLabel:l.displayLabel??l.name,placement:l.placement,available:!l.unavailableReason,unavailableReason:l.unavailableReason??null}));return{byName:new Map(i.map(l=>[l.name,l])),tools:i,modelTools:n,capabilities:o,hash:I({modelTools:n,capabilities:o})}}a(tr,"createAgentToolCatalogProjection");async function rr(r,t){let i=r.byName.get(t.name);if(!i)throw new Error(`Unknown agent tool: ${t.name}.`);if(i.unavailableReason)throw new Error(`Agent tool ${t.name} is unavailable: ${i.unavailableReason}`);if(!i.execute)throw new Error(`Agent tool ${t.name} has no executor.`);let n=i.validateArguments?i.validateArguments(t.arguments):t.arguments;return i.execute(n,t.context)}a(rr,"executeProjectedAgentTool");var me=class{static{a(this,"TaskSignals")}#e=new Map;notify(t){for(let i of[...this.#e.get(t)??[]])i()}subscribe(t,i){let n=this.#e.get(t);return n||this.#e.set(t,n=new Set),n.add(i),()=>{n.delete(i),n.size===0&&this.#e.delete(t)}}async wait(t){let i=a(()=>{},"wake"),n=0,o=a(()=>{n+=1,i()},"changed"),l=[...new Set(t.taskIds)].map(p=>this.subscribe(p,o)),u=setTimeout(o,Math.max(0,t.deadline-Date.now()));t.signal.addEventListener("abort",o);try{for(;;){t.signal.throwIfAborted();let p=n,f=await t.read();if(f!==null)return f;if(Date.now()>=t.deadline)return null;n===p&&await new Promise(m=>{i=m,(n!==p||t.signal.aborted)&&m()})}}finally{clearTimeout(u),t.signal.removeEventListener("abort",o);for(let p of l)p()}}},he=class{static{a(this,"TaskSerialExecutor")}#e=new Map;async run(t,i){let o=(this.#e.get(t)??Promise.resolve()).then(i),l=o.then(()=>{},()=>{});this.#e.set(t,l);try{return await o}finally{this.#e.get(t)===l&&this.#e.delete(t)}}};export{V as a,I as b,Be as c,$e as d,Ne as e,fe as f,ge as g,Le as h,E as i,Ge as j,D as k,J as l,O as m,B as n,Qe as o,ve as p,P as q,L as r,$ as s,G as t,Y as u,re as v,ae as w,ie as x,se as y,oe as z,je as A,ce as B,ye as C,le as D,ue as E,d as F,wt as G,de as H,kt as I,pe as J,Pt as K,Mt as L,Ae as M,He as N,Ft as O,Wt as P,Kt as Q,Zt as R,er as S,tr as T,rr as U,me as V,he as W};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
+
import{$a as N,Qa as z,Sa as P,Va as x,Ya as G,ab as J,bb as U,db as W,kb as $}from"./chunk-KOR2AZVB.js";import{P as C,ea as O,fa as F,ga as V,ra as M,rb as L,ta as B}from"./chunk-QVRNOGAU.js";import{j as E,k as H,l as h}from"./chunk-HZP5U2AA.js";import{a as l}from"./chunk-FTQLQJQV.js";import{constants as Q}from"node:fs";import{lstat as ie,open as ce,readdir as le}from"node:fs/promises";import A from"node:path";import{createHash as q}from"node:crypto";import{mkdir as K,readdir as ae,readFile as I,writeFile as X}from"node:fs/promises";import d from"node:path";async function je(e,t){let a=x.parse(e),r=["tasks","assets","environment","graders","rubrics","comparisons","metrics","fixtures"];await Promise.all(r.map(g=>K(d.join(t,g),{recursive:!0})));let o=await re(a,t);if(a.metrics.customAggregator){let g=d.join(t,a.metrics.customAggregator.module),k=q("sha256").update(await I(g)).digest("hex");a=x.parse({...a,metrics:{...a.metrics,customAggregator:{...a.metrics.customAggregator,contentHash:k}}})}let n=d.join(t,"taskset.json"),s=d.join(t,"tasks","tasks.jsonl"),f=d.join(t,"graders","graders.json"),i=d.join(t,"fixtures","grader-fixtures.json"),u=d.join(t,"metrics","policy.json"),c=d.join(t,"assets","manifest.json"),m=d.join(t,"environment","contract.json"),w=d.join(t,"rubrics","preference-review.md"),v=d.join(t,"comparisons","policy.json");return await Promise.all([...J(a)].map(([g,k])=>X(d.join(t,g),k,"utf8"))),{directory:t,files:[n,s,c,m,f,w,v,u,i,...o],draft:a}}l(je,"writeTasksetDraftPackage");async function Re(e){let t=await se(e),a=q("sha256");for(let r of t)a.update(d.relative(e,r).replaceAll(d.sep,"/")),a.update("\0"),a.update(await I(r)),a.update("\0");return a.digest("hex")}l(Re,"hashTasksetDraftPackage");async function Y(e,t){let a=d.basename(e)==="taskset.json"?e:d.join(e,"taskset.json"),r=d.dirname(a),o=l(async f=>{if(!t)return I(f,"utf8");let i=t.get(d.relative(r,f).replaceAll(d.sep,"/"));if(!i)throw Object.assign(new Error("Authored file is absent."),{code:"ENOENT"});return new TextDecoder("utf-8",{fatal:!0}).decode(i)},"read"),n=JSON.parse(await o(a)),s=x.safeParse(n);if(s.success){let[f,i,u,c,m,w]=await Promise.all([ne(d.join(r,"tasks","tasks.jsonl"),o),S(d.join(r,"graders","graders.json"),o),S(d.join(r,"fixtures","grader-fixtures.json"),o),S(d.join(r,"metrics","policy.json"),o),S(d.join(r,"environment","contract.json"),o),S(d.join(r,"comparisons","policy.json"),o)]);return x.parse({...s.data,...f===null?{}:{tasks:f},...i===null?{}:{graders:i},...u===null?{}:{graderFixtures:u},...c===null?{}:{metrics:c},...m===null?{}:{environment:m},...w===null?{}:{review:w}})}return $(n)}l(Y,"readTasksetDraftPackage");async function re(e,t){let a=N(e),r=[];for(let o of a){let n=d.join(t,o.relativePath);await K(d.dirname(n),{recursive:!0});try{await X(n,o.source,{encoding:"utf8",flag:"wx"})}catch(s){if(!oe(s))throw s}r.push(n)}return r}l(re,"writeConfiguredStarterCode");async function se(e){let t=[];async function a(r){let o=await ae(r,{withFileTypes:!0});o.sort((n,s)=>n.name.localeCompare(s.name));for(let n of o){let s=d.join(r,n.name);if(n.isSymbolicLink())throw new Error(`Taskset workspaces cannot contain symbolic links: ${s}`);n.isDirectory()?await a(s):n.isFile()&&t.push(s)}}return l(a,"visit"),await a(e),t}l(se,"packageFiles");async function S(e,t=a=>I(a,"utf8")){try{return JSON.parse(await t(e))}catch(a){if(Z(a))return null;throw a}}l(S,"readOptionalJson");async function ne(e,t=a=>I(a,"utf8")){try{return(await t(e)).split(/\r?\n/).map(r=>r.trim()).filter(Boolean).map(r=>JSON.parse(r))}catch(a){if(Z(a))return null;throw a}}l(ne,"readOptionalJsonLines");function Z(e){return e instanceof Error&&"code"in e&&e.code==="ENOENT"}l(Z,"isMissingFile");function oe(e){return e instanceof Error&&"code"in e&&e.code==="EEXIST"}l(oe,"isFileExists");async function Oe(e){let t=A.resolve(e.directory);if(!(await ie(t)).isDirectory())throw new Error("Dataset upload requires a regular authored folder.");let a=new Map,r=0;async function o(c,m){if(m>30)throw new Error("Dataset folder nesting exceeds 30 levels.");for(let w of(await le(c,{withFileTypes:!0})).sort((v,g)=>v.name<g.name?-1:v.name>g.name?1:0)){if(w.name.startsWith("."))throw new Error("Dataset folders cannot include hidden files or directories.");if(w.isSymbolicLink()||!w.isDirectory()&&!w.isFile())throw new Error("Dataset folders can contain only regular files and directories.");let v=A.join(c,w.name);if(w.isDirectory()){await o(v,m+1);continue}if(a.size>=1e4)throw new Error("Dataset folder exceeds 10,000 files.");let g=await ce(v,Q.O_RDONLY|Q.O_NOFOLLOW);try{let k=await g.stat();if(!k.isFile()||k.size>U-r)throw new Error("Dataset folder exceeds the 64 MiB capture limit.");let j=new Uint8Array(k.size),R=0;for(;R<j.length;){let D=await g.read(j,R,j.length-R,R);if(!D.bytesRead)throw new Error("Dataset file changed during capture.");R+=D.bytesRead}let _=await g.stat();if(_.size!==k.size||_.mtimeMs!==k.mtimeMs||_.ctimeMs!==k.ctimeMs)throw new Error("Dataset file changed during capture.");r+=j.length,a.set(A.relative(t,v).replaceAll(A.sep,"/"),j)}finally{await g.close()}}}l(o,"visit"),await o(t,0);let n=await Y(t,a),s=[...a].map(([c,m])=>({path:c,contentHash:H(m),sizeBytes:m.byteLength})),f=h(s),i=x.parse({...n,id:e.datasetId??n.id,profileId:e.teamId,revision:e.expectedRevision+1,modelScope:null,status:"draft",publishedTasksetRef:null,metadata:{...n.metadata,importedTasksetPackage:{packageHash:f}}});return{workspace:W({schemaVersion:"openpond.tasksetDraftWorkspace.v1",draft:i,files:[...a].filter(([c])=>!G(c)).map(([c,m])=>({path:c,base64:Buffer.from(m).toString("base64"),contentHash:H(m),sizeBytes:m.byteLength}))}),sourceHash:f,sourceFiles:s,capturedBytes:r}}l(Oe,"captureTasksetDraftWorkspace");async function ee(e){let{binding:t,rewards:a}=e.learning,r=M(t,a);if(e.graders.length!==r.length||r.some(({source:i,reward:u})=>!e.graders.some(c=>c.id===i.graderId&&c.version===String(u.revision)&&h(c.metadata.rewardBinding)===h(L(t)))))throw new Error("Prepared Taskset graders do not match their immutable Reward binding.");let o=C.parse({id:e.task.id,clusterKey:e.task.clusterKey,split:e.task.split,input:e.task.input,expectedOutput:e.task.expectedOutput,policyVisibleContext:e.task.policyVisibleContext,privilegedContextRef:e.task.privilegedContextRef,artifactRefs:[],tags:e.task.tags}),n=await B({binding:t,rewards:a,task:o,signal:e.signal,evidence:{output:e.attempt.output,artifactRefs:e.attempt.artifactRefs,runtimeEventRefs:e.attempt.runtimeEventRefs,infrastructureError:e.attempt.infrastructureError},customVerifier:e.customVerifier?async({grader:i})=>{let u=e.graders.find(m=>m.id===i.id);if(u?.kind!=="custom_verifier")throw new Error("Bound verifier projection is missing.");let c=await e.customVerifier({grader:u,task:e.task,attempt:e.attempt,signal:e.signal});return{score:c.score,passed:c.passed,rewardEligible:i.rewardEligible,failureClass:null,feedback:[c.feedback],visibleEvidenceRefs:[],privilegedEvidenceRefs:c.evidenceRefs??[]}}:void 0,modelJudge:e.modelJudge?async({grader:i})=>{let u=e.graders.find(m=>m.id===i.id);if(u?.kind!=="model_judge")throw new Error("Bound judge projection is missing.");let c=await e.modelJudge({grader:u,task:e.task,attempt:e.attempt});return{score:c.score,passed:c.passed,rewardEligible:i.rewardEligible,failureClass:null,feedback:[c.feedback],visibleEvidenceRefs:[],privilegedEvidenceRefs:c.evidenceRefs??[]}}:void 0}),s=n.training.status==="not_configured"?n.evaluation:n.training,f=h(e.graders);return{schemaVersion:"openpond.gradeResult.v1",id:`grade_${h([e.attempt.id,n.contentHash]).slice(0,24)}`,attemptId:e.attempt.id,graderSetHash:f,score:s.score,passed:s.passed===!0,components:n.results.map(i=>{let u=t.sources.find(m=>m.graderId===i.graderId),c=e.graders.find(m=>m.id===i.graderId);return{graderId:i.graderId,graderVersion:c.version,score:i.normalizedScore,passed:i.passed===!0,hardGate:u.hardGate,rewardEligible:u.role==="training"&&i.status==="scored",feedback:i.message?.trim()||null,evidenceRefs:i.evidenceHashes,judge:c.kind==="model_judge"?c.judge:null,calibrationStatus:c.kind==="model_judge"?c.calibrationStatus:"not_applicable"}}),failureClass:e.attempt.infrastructureError?"infrastructure_failure":s.status!=="scored"?"grader_failure":s.passed?null:"policy_failure",feedback:n.results.flatMap(i=>i.message?.trim()?[i.message.trim()]:[]),rewardEligible:n.training.status==="scored",rewardComposition:n,createdAt:e.now?.()??new Date().toISOString()}}l(ee,"gradeLearningBatchAttempt");async function at(e){if(e.learning)return ee({...e,learning:e.learning});if(e.graders.some(o=>o.metadata.rewardBinding!==void 0))throw new Error("This Taskset requires its immutable public Reward binding to grade an attempt.");let t=h(e.graders),a=[];for(let o of e.graders)e.signal?.throwIfAborted(),a.push(e.attempt.infrastructureError?b(o,null,!1,"Infrastructure failure; no reward was produced.",[],!1):await me(o,e.task,e.attempt,e.modelJudge,e.customVerifier,e.signal));let r=V({graders:e.graders,infrastructureError:e.attempt.infrastructureError,components:a.map(o=>({...o,failureClass:o.score===null?"grader_failure":o.passed?null:"policy_failure"}))});return{schemaVersion:"openpond.gradeResult.v1",id:`grade_${h([e.attempt.id,t,a]).slice(0,24)}`,attemptId:e.attempt.id,graderSetHash:t,score:r.score,passed:r.passed,components:a,failureClass:r.failureClass,feedback:e.attempt.infrastructureError?[e.attempt.infrastructureError]:a.flatMap(o=>o.feedback?[o.feedback]:[]),rewardEligible:r.rewardEligible,createdAt:e.now?.()??new Date().toISOString()}}l(at,"gradeAttempt");async function me(e,t,a,r,o,n){if(e.kind==="model_judge"){if(!r)return b(e,null,!1,"Model judge runner is unavailable.",[],!1);if(e.calibrationStatus!=="passed")return b(e,null,!1,"Model judge calibration has not passed.",[],!1);let f=await r({grader:e,task:t,attempt:a});return b(e,f.score,f.passed,f.feedback,f.evidenceRefs??[])}if(e.kind==="human")return b(e,null,!1,"Human review is pending.",[],!1);if(e.kind==="custom_verifier"){if(!o)return b(e,null,!1,"Sandboxed verifier runner is unavailable.",[],!1);let f=await o({grader:e,task:t,attempt:a,signal:n});return b(e,f.score,f.passed,f.feedback,f.evidenceRefs??[])}let s=O({grader:F(e),task:t,evidence:a});return b(e,s.score,s.passed,s.feedback,[...a.artifactRefs,...a.runtimeEventRefs])}l(me,"runGrader");function b(e,t,a,r,o,n=e.rewardEligible){let s=t!==null&&Number.isFinite(t)?Math.max(0,Math.min(1,t)):null;return{graderId:e.id,graderVersion:e.version,score:s,passed:s!==null&&a,hardGate:e.hardGate,rewardEligible:s!==null&&n,feedback:r,evidenceRefs:o,judge:e.kind==="model_judge"?e.judge:null,calibrationStatus:e.kind==="model_judge"?e.calibrationStatus:"not_applicable"}}l(b,"component");import{access as ue,mkdir as T,readFile as Vt,writeFile as y}from"node:fs/promises";import p from"node:path";async function Gt(e,t,a={}){let r=z.parse(e),o=P(r);if(!o.valid)throw new Error(o.issues.map(s=>`${s.code}: ${s.message}`).join(`
|
|
3
|
+
`));await T(p.join(t,"data"),{recursive:!0}),await T(p.join(t,"graders"),{recursive:!0}),await T(p.join(t,"environment"),{recursive:!0}),await T(p.join(t,"fixtures"),{recursive:!0});let n=[p.join(t,"taskset.json"),p.join(t,"capabilities.json"),p.join(t,"data","tasks.jsonl"),p.join(t,"graders","graders.json"),p.join(t,"fixtures","grader-fixtures.json"),p.join(t,"environment","taskset.ts")];await y(n[0],E(r),"utf8"),await y(n[1],E(r.capabilities),"utf8"),await y(n[2],r.tasks.map(s=>JSON.stringify(s)).join(`
|
|
4
|
+
`)+`
|
|
5
|
+
`,"utf8"),await y(n[3],E(r.graders),"utf8"),await y(n[4],E(r.graderFixtures),"utf8"),await y(n[5],pe(r),"utf8");for(let s of a.generatedFiles??[]){let f=te(s.path,s.role),i=p.join(t,f);await T(p.dirname(i),{recursive:!0}),await y(i,s.content,"utf8"),n.push(i)}for(let s of r.graders){if(s.kind!=="custom_verifier")continue;let f=te(s.module,"verifier");try{await ue(p.join(t,f))}catch{throw new Error(`Custom verifier ${s.id} is missing generated source ${f}.`)}}return{directory:t,files:n,taskset:r}}l(Gt,"buildTaskset");function te(e,t){let a=e.replaceAll("\\","/");if(p.posix.isAbsolute(a)||a.split("/").includes(".."))throw new Error(`Generated ${t} path must stay inside the Taskset: ${e}.`);let r=t==="verifier"?"graders/":t==="environment"?"environment/":"fixtures/";if(!a.startsWith(r))throw new Error(`Generated ${t} path must start with ${r}.`);return a}l(te,"safeGeneratedPath");function pe(e){return`// Generated by @openpond/taskset-sdk.
|
|
6
|
+
export const environment = ${JSON.stringify(e.environment,null,2)} as const;
|
|
7
|
+
export const tasks = ${JSON.stringify(e.tasks.map(t=>({id:t.id,input:t.input,split:t.split})),null,2)} as const;
|
|
8
|
+
`}l(pe,"generatedEnvironmentSource");export{je as a,Re as b,Y as c,Oe as d,at as e,Gt as f};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
-
import{a as n}from"./chunk-FTQLQJQV.js";var s="127.0.0.1";var f="0.2.
|
|
2
|
+
import{a as n}from"./chunk-FTQLQJQV.js";var s="127.0.0.1";var f="0.2.45",m="You are OpenPond Chat. Respond in the user's language. If the user's latest message is language-neutral, ambiguous, or only a short test, respond in English. Be concise and directly answer the latest request. Do not use emojis. Use Markdown when it improves scanability. If you emit reasoning or thinking content, keep it sparse and user-readable: at most one short sentence for major progress, decisions, or blockers. Omit reasoning for routine searches, reads, tool calls, and obvious next steps. Do not restate the user request, narrate every action, or include code blocks, code excerpts, diffs, raw tool payloads, or markdown examples in reasoning. Put necessary code or exact snippets only in the final assistant answer. When the user asks to show or preview an image that is available as a workspace path or signed image URL, use Markdown image syntax like  instead of a bare path or raw HTML. For workspace-backed answers, use a Codex-style shape: brief outcome first, then Changed Files if files changed, then Verification if checks ran. End with a concise final answer that summarizes the result and verification when relevant. Do not mention raw tool JSON, internal repo paths, or origin/remote URLs unless the user explicitly asks for them or they are necessary to explain a git/deploy failure.";import{randomUUID as p}from"node:crypto";import i from"node:path";import{fileURLToPath as c}from"node:url";function u(){return new Date().toISOString()}n(u,"now");function l(e){if(typeof e=="string")return e;if(e instanceof Error)return e.message||e.name;if(e==null)return"";try{return JSON.stringify(e)}catch{return String(e)}}n(l,"textFromUnknown");function w(e){if(!e||typeof e!="object")return"";let t=e;for(let r of["delta","text","output","chunk","message"])if(typeof t[r]=="string")return t[r];return t.delta&&typeof t.delta=="object"?l(t.delta):""}n(w,"extractDelta");function x(e){return{id:p(),timestamp:u(),...e}}n(x,"event");function k(e){let t=e.replace(/^https?:\/\//,""),[r,o]=t.split(":");return{host:r||s,port:o?Number.parseInt(o,10):17874}}n(k,"parseListen");function b(e){return(process.argv[1]?i.resolve(process.argv[1]):"")===i.resolve(c(e))}n(b,"isCliEntrypoint");export{s as a,f as b,m as c,u as d,l as e,w as f,x as g,k as h,b as i};
|