openpond 0.2.30 → 0.2.31
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/api/types.d.ts +8 -0
- package/dist/app-server.d.ts +27797 -513
- package/dist/app-server.js +1 -1
- package/dist/chunks/{actions-command-NOCBOF5S.js → actions-command-6LFZFTLA.js} +1 -1
- package/dist/chunks/{app-layer-GLXYIT4B.js → app-layer-ZZHTHTJU.js} +1 -1
- package/dist/chunks/app-server-runtime-256UCS6N.js +2 -0
- package/dist/chunks/{apps-YSWZT656.js → apps-C2BMJ7DO.js} +1 -1
- package/dist/chunks/{chunk-GOQDMRUV.js → chunk-34URWDE7.js} +1 -1
- package/dist/chunks/chunk-4476RDBS.js +41 -0
- package/dist/chunks/{chunk-J3ZRHNGL.js → chunk-4QX2I2DX.js} +1 -1
- package/dist/chunks/{chunk-TOIG2PMH.js → chunk-55UCBRIX.js} +1 -1
- package/dist/chunks/{chunk-2LSP2AAN.js → chunk-5BFWDFPX.js} +1 -1
- package/dist/chunks/{chunk-JPCPNW6T.js → chunk-B5LKUQGM.js} +1 -1
- package/dist/chunks/{chunk-I7XD5OBR.js → chunk-BAKCGJ5D.js} +1 -1
- package/dist/chunks/{chunk-HMADUZ5P.js → chunk-CE27WEHK.js} +1 -1
- package/dist/chunks/{chunk-7TV2VBSD.js → chunk-DR3XPQRZ.js} +1 -1
- package/dist/chunks/{chunk-C5OV4XWF.js → chunk-EFTLCT7C.js} +1 -1
- package/dist/chunks/{chunk-GHGVF2KG.js → chunk-GCU66EAF.js} +1 -1
- package/dist/chunks/{chunk-F4WS5QIT.js → chunk-IFP6W4OW.js} +22 -22
- package/dist/chunks/{chunk-I5K74TOH.js → chunk-JEVA7YQL.js} +2 -2
- package/dist/chunks/{chunk-JKMPJFMN.js → chunk-JFR34MIK.js} +2 -2
- package/dist/chunks/chunk-JVIHGSOV.js +6 -0
- package/dist/chunks/{chunk-6ZK5EZGN.js → chunk-K6EGNB2A.js} +1 -1
- package/dist/chunks/chunk-L2UT3YIF.js +5 -0
- package/dist/chunks/{chunk-XLF7VRKY.js → chunk-L54LZUGH.js} +1 -1
- package/dist/chunks/{chunk-J2S7BOZU.js → chunk-MJC26GOX.js} +4 -4
- package/dist/chunks/{chunk-MAMUNDBZ.js → chunk-MVAJMRCW.js} +3 -3
- package/dist/chunks/{chunk-Y2NQXJ2Q.js → chunk-MXLB6MEW.js} +1 -1
- package/dist/chunks/chunk-PSZKG3E3.js +4 -0
- package/dist/chunks/{chunk-N6HBB2EA.js → chunk-PZ6KPMEZ.js} +342 -335
- package/dist/chunks/{chunk-XRV4WLI7.js → chunk-QPZNN5Q3.js} +1 -1
- package/dist/chunks/{chunk-ETH4SZO6.js → chunk-QTEYV4TW.js} +1 -1
- package/dist/chunks/{chunk-Y2KDWP74.js → chunk-T22TCCWW.js} +1 -1
- package/dist/chunks/{chunk-WVUPFGU7.js → chunk-UU7RXSJS.js} +1 -1
- package/dist/chunks/{chunk-TJNIYJUH.js → chunk-XCTFXXVY.js} +1 -1
- package/dist/chunks/{chunk-6LY7GYNK.js → chunk-Z6F6PYF4.js} +1 -1
- package/dist/chunks/cli-DSFTE4KT.js +2 -0
- package/dist/chunks/{configuration-command-VGYAJAKN.js → configuration-command-IHUB6BBM.js} +1 -1
- package/dist/chunks/{core-commands-QQNCA4WQ.js → core-commands-F2HIN7V4.js} +1 -1
- package/dist/chunks/{desktop-test-BMDAEN6Z.js → desktop-test-BFFUGVRS.js} +1 -1
- package/dist/chunks/{dist-5C6RYTQQ.js → dist-XCT2G25K.js} +1 -1
- package/dist/chunks/extension-D7IYZW7H.js +4 -0
- package/dist/chunks/{help-DZBHIKVE.js → help-5MKQV36D.js} +1 -1
- package/dist/chunks/opchat-XO7EDHY7.js +3 -0
- package/dist/chunks/{organizations-LAUKUPDF.js → organizations-DIRGTVK5.js} +1 -1
- package/dist/chunks/{profile-ESJFHPYC.js → profile-EMVJ5DJQ.js} +1 -1
- package/dist/chunks/{project-agent-CPQP4ZY6.js → project-agent-4QC7N3MB.js} +1 -1
- package/dist/chunks/{sandbox-command-W6NWHFAR.js → sandbox-command-L263BBOL.js} +1 -1
- package/dist/chunks/{sandbox-template-SM62NUMJ.js → sandbox-template-RYKWTBW7.js} +1 -1
- package/dist/chunks/{src-4L62URN6.js → src-RINMQ7IQ.js} +1 -1
- package/dist/chunks/src-RM2LIZGT.js +325 -0
- package/dist/chunks/{teams-bot-6LEMA4OH.js → teams-bot-NIZB6DOY.js} +1 -1
- package/dist/chunks/{workspaces-5PQMYPBV.js → workspaces-GPYDSN4C.js} +1 -1
- package/dist/cli.js +1 -1
- package/dist/hosted-chat.d.ts +1 -0
- package/dist/index.js +1 -1
- package/dist/web/assets/App-BcbjzSeU.js +226 -0
- package/dist/web/assets/{AppDialog-FvWvdWfk.js → AppDialog-C1cvE0gH.js} +1 -1
- package/dist/web/assets/{AppTerminalPanel-Dfo_tXAE.js → AppTerminalPanel-BFJNR2ik.js} +2 -2
- package/dist/web/assets/{AppsView-CKg2_SXF.js → AppsView-CReOofAf.js} +1 -1
- package/dist/web/assets/BrowserSidebar-CPxAck2O.js +1 -0
- package/dist/web/assets/{CartesianChart-iXtVfIXm.js → CartesianChart-SlZ8Qfkg.js} +1 -1
- package/dist/web/assets/{CollaborationTabs-BFuRwsEy.js → CollaborationTabs-DgFEunqQ.js} +1 -1
- package/dist/web/assets/{CommandMenu-Coahy7-K.js → CommandMenu-BiROlSdv.js} +1 -1
- package/dist/web/assets/CommunityView-DVST_ZxO.js +1 -0
- package/dist/web/assets/ComposerCreateImproveStrip-jRBhdiFB.js +1 -0
- package/dist/web/assets/GetStartedView-Ck4EW1_s.js +1 -0
- package/dist/web/assets/HostedModelLearningReview-DYFjp-96.js +1 -0
- package/dist/web/assets/HostedModelLearningSettings-BD7quEFA.js +1 -0
- package/dist/web/assets/LabModelVersionDetailPage-8-Gb5AAH.js +1 -0
- package/dist/web/assets/{LabSkillSidebar-C7BuAuNK.js → LabSkillSidebar-DO-kFl9Z.js} +1 -1
- package/dist/web/assets/{LabsRoute-CUVbklNy.js → LabsRoute-Dc9RQKdA.js} +6 -6
- package/dist/web/assets/MainChatThread-DZXcFgmJ.js +2 -0
- package/dist/web/assets/MainPane-BYrnuI30.js +19 -0
- package/dist/web/assets/{MarkdownText-DV3sDJG3.js → MarkdownText-ueZFkEyk.js} +21 -21
- package/dist/web/assets/{NativeSkillSidebar-B3wc0iGh.js → NativeSkillSidebar-DlAX2-dH.js} +1 -1
- package/dist/web/assets/NewExperienceSwitcher-BHYLG0IZ.js +1 -0
- package/dist/web/assets/NewProjectDialog-BwN6SnxR.js +1 -0
- package/dist/web/assets/OutputsPage-Q0kpdfq_.js +1 -0
- package/dist/web/assets/ProjectsPage-TnlBYfFy.js +1 -0
- package/dist/web/assets/{ProjectsPage-DdG-U9ZW.css → ProjectsPage-kun3Ron2.css} +1 -1
- package/dist/web/assets/RightChatPanelStack-D2qZ-1nK.js +1 -0
- package/dist/web/assets/{RightSidebarHomePanel-DweT04nf.js → RightSidebarHomePanel-q6FF-DR9.js} +1 -1
- package/dist/web/assets/ScheduledWorkPage-BTX3Sjoa.js +1 -0
- package/dist/web/assets/SettingsView-C7av3zwv.css +1 -0
- package/dist/web/assets/SettingsView-gAhNO4Rg.js +9 -0
- package/dist/web/assets/{TeamChatView-BoQYnywK.js → TeamChatView-DZtfZ12z.js} +2 -2
- package/dist/web/assets/{TerminalOverlay-oLOOTbdP.js → TerminalOverlay-MJqx0xg6.js} +1 -1
- package/dist/web/assets/{TrainingCreationPanel-aCFYDuYZ.js → TrainingCreationPanel-ORoKcc3m.js} +1 -1
- package/dist/web/assets/{TrainingDraftPanel-CFa1YRTU.js → TrainingDraftPanel-oolNVDIx.js} +1 -1
- package/dist/web/assets/{UsageSettingsSection-CakaMl6_.js → UsageSettingsSection-Lh_fLOcC.js} +1 -1
- package/dist/web/assets/WorkSidebarPanel-BIqP9SXr.js +1 -0
- package/dist/web/assets/WorkspaceDiffPanel-B0Zwyx9a.js +14 -0
- package/dist/web/assets/WorkspaceEnvironmentMenu-BpgvG43X.js +32 -0
- package/dist/web/assets/{WorkspaceGitDialogs-CE6uwWBo.js → WorkspaceGitDialogs-Bw5ADFuc.js} +1 -1
- package/dist/web/assets/{WorkspaceMonacoEditor-Dd1yWxIF.js → WorkspaceMonacoEditor-BpivuGzo.js} +3 -3
- package/dist/web/assets/{arrow-up-right-DrBHDOjJ.js → arrow-up-right-BjC4ygxR.js} +1 -1
- package/dist/web/assets/{clipboard-BwxTBPCP.js → clipboard-BOJ-sNJz.js} +1 -1
- package/dist/web/assets/{cloud-upload-Ce9uYXcQ.js → cloud-upload-D-_3UWhI.js} +1 -1
- package/dist/web/assets/{cssMode-DDD1HmKz.js → cssMode-CnHRib-_.js} +1 -1
- package/dist/web/assets/{folder-open-BmWqQp0P.js → folder-open-CO3Vz0rT.js} +1 -1
- package/dist/web/assets/{folder-plus-B402AJf4.js → folder-plus-CL6B10XJ.js} +1 -1
- package/dist/web/assets/{git-commit-horizontal-C1uAivqm.js → git-commit-horizontal-C_SNHoOD.js} +1 -1
- package/dist/web/assets/git-dialogs-C-F47S10.css +1 -0
- package/dist/web/assets/{htmlMode-1MNILRvh.js → htmlMode-DBpIV7Gx.js} +1 -1
- package/dist/web/assets/{index-CPTsOhRN.js → index-Dx0lr1R3.js} +2 -2
- package/dist/web/assets/index-lqk3IxE0.css +1 -0
- package/dist/web/assets/{info-BNROwjpD.js → info-C1C3X2vW.js} +1 -1
- package/dist/web/assets/{jsonMode-mGxJ8u70.js → jsonMode-B9puI-La.js} +1 -1
- package/dist/web/assets/{lspLanguageFeatures-DnwAgCyz.js → lspLanguageFeatures-DwPRvLkn.js} +1 -1
- package/dist/web/assets/{minimize-2-DFgldo5D.js → minimize-2-Cr76Lc_J.js} +1 -1
- package/dist/web/assets/{monaco.contribution-BlgPPKyd.js → monaco.contribution-CnlZLXhW.js} +2 -2
- package/dist/web/assets/{monaco.contribution-CBuz55_x.js → monaco.contribution-DKa3PSXH.js} +2 -2
- package/dist/web/assets/{monaco.contribution-qZ9QzQ68.js → monaco.contribution-DQxsY08y.js} +2 -2
- package/dist/web/assets/{monaco.contribution-CGYtN1vj.js → monaco.contribution-OemObo_b.js} +2 -2
- package/dist/web/assets/monitor-CktBkAZk.js +1 -0
- package/dist/web/assets/{python-CpsWHcA8.js → python-CVC74_7Q.js} +1 -1
- package/dist/web/assets/refresh-cw-JaxiGpHD.js +1 -0
- package/dist/web/assets/{save-8XYI0E0Y.js → save-DFm1K29k.js} +1 -1
- package/dist/web/assets/{square-FQ0GLxuE.js → square-D5fFhDFt.js} +1 -1
- package/dist/web/assets/{toggleHighContrast-CX2hgvvU.js → toggleHighContrast-D_EkCruq.js} +1 -1
- package/dist/web/assets/{tsMode-D9XBNmxG.js → tsMode-BczIS4rA.js} +1 -1
- package/dist/web/assets/{upload-BNXILcvp.js → upload-DvED7nbd.js} +1 -1
- package/dist/web/assets/{useLocalAgentSchedules-Ccst1Wnz.js → useLocalAgentSchedules-DWd5OvYb.js} +1 -1
- package/dist/web/assets/useSessionTurnCache-oMoxBcGj.js +1 -0
- package/dist/web/assets/{wifi-off-BoQdtnnN.js → wifi-off-BZL-Op_B.js} +1 -1
- package/dist/web/assets/{workers-DpMJzLwE.js → workers-DapCJCaQ.js} +1 -1
- package/dist/web/assets/{yaml-BqS3gPsN.js → yaml-DB9KLqu1.js} +1 -1
- package/dist/web/index.html +2 -2
- package/docs/command-reference.md +1 -0
- package/package.json +1 -1
- package/dist/chunks/app-server-runtime-SNSNFJW7.js +0 -2
- package/dist/chunks/chunk-3YSCXFE6.js +0 -5
- package/dist/chunks/chunk-DDRIX3EP.js +0 -40
- package/dist/chunks/chunk-P57W2CB2.js +0 -6
- package/dist/chunks/cli-DCFZ4GT6.js +0 -2
- package/dist/chunks/extension-IQW2KDT6.js +0 -6
- package/dist/chunks/opchat-BSTDLB7O.js +0 -3
- package/dist/chunks/src-G3GYZMCL.js +0 -323
- package/dist/web/assets/App-eRfSvxdE.js +0 -226
- package/dist/web/assets/BrowserSidebar-CBRz9dVj.js +0 -1
- package/dist/web/assets/CommunityView-C0B6EVIp.js +0 -1
- package/dist/web/assets/ComposerCreateImproveStrip-C0MkRhov.js +0 -1
- package/dist/web/assets/GetStartedView-f90pfPRp.js +0 -1
- package/dist/web/assets/HostedModelLearningReview-DdZnSPKb.js +0 -1
- package/dist/web/assets/HostedModelLearningSettings-p9RdBxGd.js +0 -1
- package/dist/web/assets/LabModelVersionDetailPage-DLqT1fMT.js +0 -1
- package/dist/web/assets/MainChatThread-Crjs_iFv.js +0 -2
- package/dist/web/assets/MainPane-Bl91XbhC.js +0 -10
- package/dist/web/assets/Messages-Bxo_ATcK.js +0 -10
- package/dist/web/assets/NewExperienceSwitcher-DBdsaysM.js +0 -1
- package/dist/web/assets/NewProjectDialog-CtJJ6u5l.js +0 -1
- package/dist/web/assets/OutputsPage-CV9rYjbQ.js +0 -1
- package/dist/web/assets/ProjectsPage-O162K_Yb.js +0 -1
- package/dist/web/assets/RightChatPanelStack-CXzHpD5V.js +0 -1
- package/dist/web/assets/ScheduledWorkPage-DFvjzhvz.js +0 -1
- package/dist/web/assets/SettingsView-B-O30p4h.js +0 -9
- package/dist/web/assets/SettingsView-BaWWvIJW.css +0 -1
- package/dist/web/assets/WorkSidebarPanel-XFwuIBFa.js +0 -1
- package/dist/web/assets/WorkspaceDiffPanel-CL-lAcvW.js +0 -14
- package/dist/web/assets/WorkspaceEnvironmentMenu-DcFKeae1.js +0 -32
- package/dist/web/assets/chat-file-links-DKYaOINv.js +0 -1
- package/dist/web/assets/chevron-up-CT-jxFh0.js +0 -1
- package/dist/web/assets/desktop-files-BQj1J-ob.js +0 -1
- package/dist/web/assets/git-dialogs-BZDqS1eT.css +0 -1
- package/dist/web/assets/index-BZ4iTv8E.css +0 -1
- package/dist/web/assets/play-BQFyTfNz.js +0 -1
- package/dist/web/assets/refresh-cw-DfFBmfXv.js +0 -1
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
-
import{c as
|
|
3
|
-
`);s=l.pop()||"";for(let d of l){let c=d.trim();if(!c.startsWith("data:"))continue;let u=c.slice(5).trim();if(u){if(u==="[DONE]")return;yield JSON.parse(u)}}}}finally{try{n.releaseLock()}catch{}}}r(E,"parseOpenAISSE");async function*R(e){let n=`${g(e.apiBaseUrl)}/chat/completions`,o=await fetch(n,{method:"POST",headers:h(e.token,"text/event-stream",e.requestId),body:JSON.stringify(b(e,!0)),signal:e.signal});if(!o.ok||!o.body)throw new Error(`Hosted chat stream failed: ${o.status} ${await f(o)}`);for await(let s of E(o.body,e.signal)){let i=s;if(i.error)throw new Error(i.error.message||"Hosted chat stream error");i.usage&&(yield{type:"usage",usage:i.usage,raw:s});let a=i.choices?.[0];if(!a)continue;let l=a.delta?.content;l&&(yield{type:"text_delta",text:l,raw:s});let d=a.delta?.reasoning_content;d&&(yield{type:"reasoning_delta",text:d,raw:s});let c=a.delta?.tool_calls;Array.isArray(c)&&c.length>0&&(yield{type:"tool_call_delta",toolCalls:c,raw:s}),a.finish_reason!==void 0&&a.finish_reason!==null&&(yield{type:"finish",finishReason:a.finish_reason,raw:s})}}r(R,"streamHostedChatTurn");var q="openpond-chat",I="deepseek-v4-flash",D="not-a-real-opchat-model";async function Z(e){let t=e.defaultModel||q,n=e.compatibilityModel||I,o=e.invalidModel||D,s=e.log||(()=>{});s(`opchat base: ${e.apiBaseUrl}`);let a=(await _({apiBaseUrl:e.apiBaseUrl,token:e.token})).data.map(T=>T.id);v(a,t),v(a,n),s(`models: ${a.join(", ")}`);let l=await C({apiBaseUrl:e.apiBaseUrl,token:e.token,model:t}),d=await C({apiBaseUrl:e.apiBaseUrl,token:e.token,model:n}),c=await N({apiBaseUrl:e.apiBaseUrl,token:e.token,model:o});s(`invalid model error: ${c}`);let u=H(t,await k({apiBaseUrl:e.apiBaseUrl,token:e.token,model:t,messages:[{role:"user",content:"Reply with a short plain sentence confirming OpChat works."}],metadata:{source:"openpond-code-opchat-smoke",mode:"non_stream"}}));
|
|
2
|
+
import{c as B}from"./chunk-GLUWATL5.js";import{a as r}from"./chunk-FTQLQJQV.js";import{randomUUID as P}from"node:crypto";function g(e){let t=p(e);if(!t)throw new Error("apiBaseUrl is required");return t}r(g,"normalizeApiBaseUrl");function O(e){return e.replace(/\/+$/,"")}r(O,"trimTrailingSlashes");function p(e){let t=O(e?.trim()??"");return t?(t=t.replace(/\/chat\/completions$/i,"").replace(/\/models(?:\/[^/]+)?$/i,""),t.endsWith("/opchat/v1")?t:t.endsWith("/opchat")?`${t}/v1`:(t.endsWith("/v1")&&(t=t.slice(0,-3)),`${O(t)}/opchat/v1`)):null}r(p,"normalizeOptionalOpChatApiBaseUrl");function M(e={}){let t=e.env??(typeof process<"u"?process.env:{}),n=p(e.opChatApiBaseUrl)??p(t.OPENPOND_OPCHAT_API_URL);if(n)return n;let o=p(e.chatApiBaseUrl)??p(t.OPENPOND_CHAT_API_URL)??p(t.OPENPOND_GATEWAY_URL);return o||(p(e.apiBaseUrl)??p(t.OPENPOND_API_URL)??B)}r(M,"resolveOpChatApiBaseUrl");function W(e={}){return M(e)}r(W,"resolveHostedChatApiBaseUrl");function $(e){let t=e.trim();if(!t)throw new Error("OpenPond API key is required");return t}r($,"requireToken");function h(e,t,n){let o=new Headers;return o.set("Authorization",`Bearer ${$(e)}`),o.set("Content-Type","application/json"),o.set("Accept",t),o.set("x-openpond-client","openpond-code"),o.set("x-openpond-request-id",n||P()),o}r(h,"hostedHeaders");async function f(e){let t=await e.text().catch(()=>"");if(!t)return e.statusText||`HTTP ${e.status}`;try{let n=JSON.parse(t),o=typeof n.error=="string"||n.error&&typeof n.error=="object"&&!Array.isArray(n.error)?n.error:null,s=typeof n.code=="string"?n.code:o&&typeof o!="string"&&typeof o.code=="string"?o.code:null,i=typeof n.message=="string"?n.message:o&&typeof o!="string"&&typeof o.message=="string"?o.message:null,a=typeof o=="string"?o:o&&typeof o.type=="string"?o.type:null;return[s,a,i].filter(Boolean).join(": ")||t}catch{return t}}r(f,"readError");function b(e,t){let n={model:e.model,messages:e.messages,stream:t};typeof e.temperature=="number"&&(n.temperature=e.temperature),typeof e.maxTokens=="number"&&(n.max_tokens=e.maxTokens),e.reasoningEffort==="off"?n.thinking={type:"disabled"}:e.reasoningEffort&&(n.reasoning_effort=e.reasoningEffort),e.tools&&(n.tools=e.tools);let o=e.toolChoice??e.tool_choice;return o!==void 0&&(n.tool_choice=o),e.metadata&&(n.metadata=e.metadata),n}r(b,"buildHostedChatBody");async function _(e){let n=`${g(e.apiBaseUrl)}/models`,o=await fetch(n,{method:"GET",headers:h(e.token,"application/json"),signal:e.signal});if(!o.ok)throw new Error(`Hosted model list failed: ${o.status} ${await f(o)}`);return await o.json()}r(_,"listOpChatModels");async function C(e){let n=`${g(e.apiBaseUrl)}/models/${encodeURIComponent(e.model)}`,o=await fetch(n,{method:"GET",headers:h(e.token,"application/json"),signal:e.signal});if(!o.ok)throw new Error(`Hosted model lookup failed: ${o.status} ${await f(o)}`);return await o.json()}r(C,"getOpChatModel");var F=_;async function A(e){let n=`${g(e.apiBaseUrl)}/providers`,o=await fetch(n,{method:"GET",headers:h(e.token,"application/json"),signal:e.signal});if(!o.ok)throw new Error(`Hosted provider list failed: ${o.status} ${await f(o)}`);return await o.json()}r(A,"listOpChatProviders");async function Y(e){let n=`${g(e.apiBaseUrl)}/providers/${encodeURIComponent(e.provider)}`,o=await fetch(n,{method:"GET",headers:h(e.token,"application/json"),signal:e.signal});if(!o.ok)throw new Error(`Hosted provider lookup failed: ${o.status} ${await f(o)}`);return await o.json()}r(Y,"getOpChatProvider");var V=A;async function k(e){let n=`${g(e.apiBaseUrl)}/chat/completions`,o=await fetch(n,{method:"POST",headers:h(e.token,"application/json",e.requestId),body:JSON.stringify(b(e,!1)),signal:e.signal});if(!o.ok)throw new Error(`Hosted chat failed: ${o.status} ${await f(o)}`);return await o.json()}r(k,"sendHostedChatTurn");async function*E(e,t){let n=e.getReader(),o=new TextDecoder,s="",i=r(()=>t?.reason instanceof Error?t.reason:new Error("hosted_chat_aborted"),"readAbortError");try{for(;;){if(t?.aborted)throw i();let a=await n.read();if(a.done)break;s+=o.decode(a.value,{stream:!0});let l=s.split(`
|
|
3
|
+
`);s=l.pop()||"";for(let d of l){let c=d.trim();if(!c.startsWith("data:"))continue;let u=c.slice(5).trim();if(u){if(u==="[DONE]")return;yield JSON.parse(u)}}}}finally{try{n.releaseLock()}catch{}}}r(E,"parseOpenAISSE");async function*R(e){let n=`${g(e.apiBaseUrl)}/chat/completions`,o=await fetch(n,{method:"POST",headers:h(e.token,"text/event-stream",e.requestId),body:JSON.stringify(b(e,!0)),signal:e.signal});if(!o.ok||!o.body)throw new Error(`Hosted chat stream failed: ${o.status} ${await f(o)}`);for await(let s of E(o.body,e.signal)){let i=s;if(i.error)throw new Error(i.error.message||"Hosted chat stream error");i.usage&&(yield{type:"usage",usage:i.usage,raw:s});let a=i.choices?.[0];if(!a)continue;let l=a.delta?.content;l&&(yield{type:"text_delta",text:l,raw:s});let d=a.delta?.reasoning_content;d&&(yield{type:"reasoning_delta",text:d,raw:s});let c=a.delta?.tool_calls;Array.isArray(c)&&c.length>0&&(yield{type:"tool_call_delta",toolCalls:c,raw:s}),a.finish_reason!==void 0&&a.finish_reason!==null&&(yield{type:"finish",finishReason:a.finish_reason,raw:s})}}r(R,"streamHostedChatTurn");var q="openpond-chat",I="deepseek-v4-flash",D="not-a-real-opchat-model";async function Z(e){let t=e.defaultModel||q,n=e.compatibilityModel||I,o=e.invalidModel||D,s=e.log||(()=>{});s(`opchat base: ${e.apiBaseUrl}`);let a=(await _({apiBaseUrl:e.apiBaseUrl,token:e.token})).data.map(T=>T.id);v(a,t),v(a,n),s(`models: ${a.join(", ")}`);let l=await C({apiBaseUrl:e.apiBaseUrl,token:e.token,model:t}),d=await C({apiBaseUrl:e.apiBaseUrl,token:e.token,model:n}),c=await N({apiBaseUrl:e.apiBaseUrl,token:e.token,model:o});s(`invalid model error: ${c}`);let u=H(t,await k({apiBaseUrl:e.apiBaseUrl,token:e.token,model:t,messages:[{role:"user",content:"Reply with a short plain sentence confirming OpChat works."}],metadata:{source:"openpond-code-opchat-smoke",mode:"non_stream"}}));x(u,`${t} non-streaming response`),s(`${t} non-stream: id=${u.id??"unknown"} usage=${U(u.usage)}`);let m=e.skipStream?void 0:await j({apiBaseUrl:e.apiBaseUrl,token:e.token,model:t});m&&s(`${t} stream: chunks=${m.textDeltaCount} finish=${m.finishReason??"none"} usage=${U(m.usage)}`);let w=H(n,await k({apiBaseUrl:e.apiBaseUrl,token:e.token,model:n,messages:[{role:"user",content:"Reply with one short sentence confirming compatibility."}],metadata:{source:"openpond-code-opchat-smoke",mode:"compatibility_non_stream"}}));x(w,`${n} non-streaming response`),s(`${n} non-stream: id=${w.id??"unknown"} usage=${U(w.usage)}`);let y=e.skipTool?void 0:await L({apiBaseUrl:e.apiBaseUrl,token:e.token,model:t});return y&&s(`${t} tool: calls=${y.toolCallCount} names=${y.toolNames.join(",")}`),{apiBaseUrl:e.apiBaseUrl,listedModels:a,defaultModel:t,compatibilityModel:n,modelLookups:[l.id,d.id],invalidModelError:c,nonStreaming:u,compatibilityNonStreaming:w,...m?{streaming:m}:{},...y?{toolCalling:y}:{}}}r(Z,"runOpChatSmoke");async function N(e){try{await C(e)}catch(t){return t instanceof Error?t.message:String(t)}throw new Error(`expected invalid model ${e.model} to fail`)}r(N,"expectInvalidModel");async function j(e){let t=Date.now(),n=null,o="",s=0,i=null,a=null;for await(let l of R({apiBaseUrl:e.apiBaseUrl,token:e.token,model:e.model,messages:[{role:"user",content:"Reply with a short streamed sentence."}],metadata:{source:"openpond-code-opchat-smoke",mode:"stream"}}))l.type==="text_delta"?(n??=Date.now(),o+=l.text,s+=1):l.type==="finish"?i=l.finishReason:l.type==="usage"&&(a=l.usage);if(s===0||!o.trim())throw new Error("streaming response did not emit text deltas");if(!i)throw new Error("streaming response did not emit a terminal finish marker");return{model:e.model,textDeltaCount:s,textPreview:S(o),firstTextMs:n===null?null:n-t,totalMs:Date.now()-t,finishReason:i,usage:a}}r(j,"runStreamSmoke");async function L(e){let t=[{type:"function",function:{name:"get_current_weather",description:"Get the current weather for a city.",parameters:{type:"object",properties:{location:{type:"string",description:"City and region, for example Boston, MA."}},required:["location"]}}}],n=[{role:"user",content:"Use the get_current_weather tool for Boston, then wait for the result."}],s=(await k({apiBaseUrl:e.apiBaseUrl,token:e.token,model:e.model,messages:n,tools:t,toolChoice:"auto",metadata:{source:"openpond-code-opchat-smoke",mode:"tool_call"}})).choices?.[0],i=s?.message?.tool_calls??[];if(i.length===0)throw new Error("tool smoke did not receive an assistant tool call");let a=G(i),l=H(e.model,await k({apiBaseUrl:e.apiBaseUrl,token:e.token,model:e.model,messages:[...n,{role:"assistant",content:s?.message?.content??null,tool_calls:i},...a],metadata:{source:"openpond-code-opchat-smoke",mode:"tool_result"}}));return x(l,"tool follow-up response"),{model:e.model,toolCallCount:i.length,toolNames:i.map(d=>d.function?.name).filter(d=>!!d),finishReason:s?.finish_reason??null,followUp:l}}r(L,"runToolSmoke");function G(e){return e.map((t,n)=>{if(!t.id)throw new Error(`tool call ${n} is missing an id`);return{role:"tool",tool_call_id:t.id,content:JSON.stringify({location:"Boston, MA",temperature:"58 F",conditions:"clear"})}})}r(G,"buildToolResultMessages");function H(e,t){let n=t.choices?.[0];return{model:e,id:t.id??null,finishReason:n?.finish_reason??null,textPreview:S(n?.message?.content??""),usage:t.usage??null}}r(H,"summarizeCompletion");function v(e,t){if(!e.includes(t))throw new Error(`model list did not include ${t}`)}r(v,"requireModel");function x(e,t){if(!e.textPreview.trim())throw new Error(`${t} did not include assistant text`)}r(x,"requireText");function S(e,t=120){let n=e.replace(/\s+/g," ").trim();return n.length<=t?n:`${n.slice(0,t-1)}...`}r(S,"previewText");function U(e){return e?String(e.total_tokens??e.input_tokens??e.output_tokens??"unknown"):"none"}r(U,"formatUsage");export{M as a,W as b,_ as c,C as d,F as e,A as f,Y as g,V as h,k as i,R as j,Z as k};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
-
import{f as S}from"./chunk-3M53YXEI.js";import{a as o}from"./chunk-FTQLQJQV.js";import{readFileSync as j}from"node:fs";import k from"node:path";function P(){let t=["../../../package.json","../../package.json","../package.json","./package.json","../../../../package.json"];for(let n of t)try{let s=new URL(n,import.meta.url),i=j(s,"utf-8"),r=JSON.parse(i);if(typeof r.version=="string")return r.version}catch{}try{let n=j(k.join(k.dirname(process.execPath),"package.json"),"utf-8"),s=JSON.parse(n);if(typeof s.version=="string")return s.version}catch{}return"unknown"}o(P,"getInstalledCliVersion");function I(t){let n=/^v?(\d+)\.(\d+)\.(\d+)(?:[-+].*)?$/.exec(t.trim());if(!n)return null;let s=Number.parseInt(n[1],10),i=Number.parseInt(n[2],10),r=Number.parseInt(n[3],10);return!Number.isFinite(s)||!Number.isFinite(i)||!Number.isFinite(r)?null:[s,i,r]}o(I,"parseSemver");function X(t,n){let s=I(t),i=I(n);if(!s||!i)return null;for(let r=0;r<3;r+=1){if(s[r]<i[r])return-1;if(s[r]>i[r])return 1}return 0}o(X,"compareSemver");async function Y(t){let n=new AbortController,s=setTimeout(()=>n.abort(),7e3);try{let i=await fetch(`https://registry.npmjs.org/${encodeURIComponent(t)}/latest`,{signal:n.signal});if(!i.ok){let d=await i.text().catch(()=>"");throw new Error(`npm registry request failed: ${i.status} ${d}`.trim())}let r=await i.json().catch(()=>({}));if(typeof r.version!="string"||r.version.trim().length===0)throw new Error("npm registry payload missing version");return r.version.trim()}finally{clearTimeout(s)}}o(Y,"fetchLatestNpmVersion");var a="boolean",m="integer",l="json",g="number",e="string",O={agent:e,approvalPolicy:e,cwd:e,json:a,maxOutputBytes:m,message:e,messageFile:e,model:e,noServerStart:a,nonInteractive:a,project:e,provider:e,resume:e,sandbox:e,server:e,stdin:a,timeoutSec:m,yes:a},x={access:e,agentId:e,all:a,artifactPaths:e,async:a,authHeader:e,authHeaderValue:e,authToken:e,autoStart:a,baseRef:e,branch:e,budget:g,budgetUsd:g,cleanup:a,cols:m,command:e,content:e,contentBase64:e,contents:e,contentsBase64:e,cpu:g,create:a,description:e,diskGb:g,dockerBuildArgs:l,dockerRegistrySecretRefs:e,dockerfile:e,dockerfileContext:e,dockerfileTarget:e,domain:e,env:e,environment:e,envLiteral:e,envName:e,envRef:e,expectedMppMode:e,expectedVersion:m,failOnUnpreservedChanges:a,ffOnly:a,forceWithLease:a,fork:a,fromPath:e,idempotencyKey:e,idleTimeoutSeconds:m,image:e,imageDigest:e,input:e,inputBase64:e,integrationCapabilities:e,integrationConnection:e,integrationScopes:e,intervalMs:m,json:a,keep:a,label:e,leaseId:e,lifecycleHint:l,manifestPath:e,maxDurationSeconds:m,maxEntries:g,maxResults:g,memoryGb:g,message:e,name:e,noPreview:a,overwrite:a,params:l,path:e,paths:e,payload:l,port:m,preview:a,projectId:e,publish:a,q:e,query:e,rebase:a,recursive:a,registrySecretRef:e,remote:e,replayState:e,repo:e,respondAsync:a,rows:m,runtimeAgentId:e,runtimeBaseBranch:e,runtimeBaseSha:e,runtimeId:e,runtimeProfileId:e,runtimeProjectId:e,runtimePromotionPolicy:e,runtimeWorkspaceRoot:e,sandboxId:e,scope:e,since:m,snapshot:a,snapshotId:e,sourceProjectId:e,sourceRepoUrl:e,sourceSandboxId:e,startPoint:e,status:e,stdin:a,summary:a,tag:e,tags:e,targetId:e,targetType:e,teamId:e,templateName:e,templateVersion:e,templateVisibility:e,timeoutSeconds:m,toPath:e,type:e,useCase:e,validationCommand:e,value:e,version:e,volumeDeleteOnSandboxDelete:a,volumeMountPath:e,volumeName:e,volumeStorageGb:g,workflowMode:e},A={action:e,agentId:e,budget:g,budgetUsd:g,build:e,branch:e,commit:a,commitMessage:e,description:e,dir:e,disableSchedule:e,disableSchedules:e,enableSchedule:e,enableSchedules:e,entrypoint:e,env:l,envRef:e,file:e,force:a,idleTimeoutSeconds:m,inherit:a,input:l,inputFile:e,inputFiles:e,inputJson:l,inputs:l,json:a,keepTokenRemote:a,manifest:e,maxDurationSeconds:m,name:e,noPush:a,noWrite:a,out:e,outDir:e,output:e,outputDir:e,params:l,path:e,plan:e,projectId:e,repo:e,runtimeAgentId:e,runtimeBaseBranch:e,runtimeBaseSha:e,runtimeId:e,runtimeProjectId:e,runtimePromotionPolicy:e,scheduleMode:e,scheduleOverride:l,scheduleOverrides:l,schedules:e,service:e,setRemoteToken:a,setupTimeoutSeconds:m,target:e,teamId:e,timeoutSeconds:m,token:e,workflowMode:e,yes:a},T={branch:e,commitMessage:e,defaultBranch:e,description:e,gitOwner:e,gitRepo:e,internalRepoPath:e,json:a,name:e,path:e,projectId:e,repo:e,sourceCheckDispatch:e,sourceType:e,teamId:e,templateRepoUrl:e},E={agentId:e,agentEdit:l,allowLatestSource:a,allowedActions:e,attachmentsJson:l,baseSha:e,chatMode:e,checkKind:e,conversationId:e,cwd:e,dispatch:e,entrypointName:e,entrypointScope:e,expectedManifestHash:e,evalStatus:e,expectedSourceCommitSha:e,idempotencyKey:e,input:l,inputFile:e,json:a,limit:m,message:e,metadata:l,name:e,path:e,payload:l,projectId:e,prompt:e,provider:e,publishedSnapshotId:e,ref:e,requirePublishedSnapshot:a,requiredEnv:e,requiredIntegrations:e,runtimePromotionPolicy:e,runtimeSourceMode:e,sourceCheckDispatch:e,sourceMode:e,sourceRef:e,status:e,targetProjectId:e,teamId:e,triggerType:e,workflowMode:e};var b={account:"string",apiBaseUrl:"string",apiBaseurl:"string",baseUrl:"string",baseurl:"string",chatApiBaseUrl:"string",chatApiBaseurl:"string",checkUpdate:"boolean",cwd:"string",help:"boolean",home:"string",json:"boolean",profile:"string",sandboxApiUrl:"string",sandboxApiurl:"string",tui:"boolean",version:"boolean"},ae={C:"cwd",f:"force",h:"help",j:"json",v:"version",y:"yes"},B={cwd:"string",input:"json",inputFile:"string",json:"boolean",path:"string"},C=[{name:"home",usage:"openpond home [--home <directory>]",optionSchema:{},handler:o(async()=>console.log((await import("./dist-5C6RYTQQ.js")).resolveOpenPondHome()),"handler")},{name:"config",usage:"openpond config <get|set|unset|path|validate|schema|doctor|migrate|recover|restart-migration|revisions|replace|effective|trust|untrust|export|backup|restore|collect-orphans|clear-cache> [key] [value] [--home <directory>] [--json]",optionSchema:{keyPath:"json",value:"string",file:"string",project:"boolean",revision:"string",expectedRevision:"string",sourceAppHome:"string",sourceConfig:"string",sourceBrowserState:"string",dryRun:"boolean"},handler:o(async({options:t,rest:n})=>(await import("./configuration-command-VGYAJAKN.js")).runConfigurationCommand(t,n),"handler")},{name:"help",usage:"openpond help",optionSchema:{},handler:o(async()=>(await import("./help-DZBHIKVE.js")).printHelp(),"handler")},{name:"version",usage:"openpond version",optionSchema:{},handler:o(()=>console.log(P()),"handler")},{name:"check-update",usage:"openpond check-update",optionSchema:{},handler:o(async()=>(await import("./core-commands-QQNCA4WQ.js")).runCheckUpdate(),"handler")},{name:"login",usage:"openpond login [--base-url <url>]",optionSchema:b,handler:o(async({options:t})=>(await import("./core-commands-QQNCA4WQ.js")).runLogin(t),"handler")},{name:"init",usage:"openpond init [--path <dir>] [--profile <name>] [--template <name>] [--force] [--json]",optionSchema:{...b,force:"boolean",path:"string",template:"string"},handler:o(async({options:t})=>(await import("./profile-ESJFHPYC.js")).runOpenPondInitCommand(t),"handler")},{name:"profile",usage:"openpond profile <current|init|load|check|push|commit|diff|catalog>",optionSchema:{checkKind:"string",conversationId:"string",ensureHosted:"boolean",expectedManifestHash:"string",force:"boolean",hostedCheckKind:"string",hostedRunAgentId:"string",hostedRunConversationId:"string",hostedRunIdempotencyKey:"string",hostedRunInput:"json",hostedRunRetry:"boolean",hostedRunTargetProjectId:"string",hostedSourceDispatch:"string",hostedSourceAgentId:"string",hostedSourceChecks:"boolean",hostedSourceProjectId:"string",json:"boolean",kind:"string",path:"string",publishHostedSource:"boolean",teamId:"string"},handler:o(async({options:t,rest:n})=>(await import("./profile-ESJFHPYC.js")).runOpenPondProfileCommand(t,n),"handler")},{name:"agents",usage:"openpond agents [--json]",optionSchema:{json:"boolean"},handler:o(async({options:t,rest:n})=>(await import("./profile-ESJFHPYC.js")).runOpenPondAgentsCommand(t,n),"handler")},{name:"actions",usage:"openpond actions <check|build|run|dev|publish> [action-id] [--cwd DIR] [--input JSON|--input-file PATH]",optionSchema:{apiKey:"string",baseUrl:"string",cwd:"string",input:"string",inputFile:"string",json:"boolean",outputDirectory:"string",sourceDirectory:"string",sourceCommitSha:"string",sourceRef:"string",projectId:"string",teamId:"string",timeoutMs:"integer"},handler:o(async({options:t,rest:n})=>(await import("./actions-command-NOCBOF5S.js")).runProjectActionsCommand(t,n),"handler")},...K(),{name:"extension",usage:"openpond extension <add|preview|list|inspect|update|remove> [owner/repo]",usages:["openpond extension add <owner/repo> [--ref <branch|tag|sha>] [--json]","openpond extension update <owner/repo> [--ref <branch|tag|sha>] [--json]","openpond extension update --all [--json]","openpond extension remove <owner/repo> [--json]"],optionSchema:{all:"boolean",json:"boolean",ref:"string"},handler:o(async({options:t,rest:n})=>(await import("./extension-IQW2KDT6.js")).runOpenPondExtensionCommand(t,n),"handler")},{name:"profiles",usage:"openpond profiles [args]",optionSchema:{json:"boolean"},handler:o(async({options:t,rest:n})=>(await import("./core-commands-QQNCA4WQ.js")).runProfiles(t,n),"handler")},{name:"account",usage:"openpond account",optionSchema:{json:"boolean"},handler:o(async()=>(await import("./core-commands-QQNCA4WQ.js")).runAccount(),"handler")},{name:"health",usage:"openpond health",optionSchema:{json:"boolean"},handler:o(async({options:t})=>(await import("./core-commands-QQNCA4WQ.js")).runHealth(t),"handler")},{name:"app-server",usage:"openpond app-server [--home DIR]",optionSchema:{home:"string"},handler:o(async({options:t,rest:n})=>(await import("./app-layer-GLXYIT4B.js")).runOpenPondServerCommand("app-server",t,n),"handler")},{name:"serve",usage:"openpond serve [args]",optionSchema:{host:"string",hostname:"string",listen:"string",port:"integer"},handler:o(async({options:t,rest:n})=>(await import("./app-layer-GLXYIT4B.js")).runOpenPondServerCommand("serve",t,n),"handler")},{name:"ui",usage:"openpond ui [--no-open] [--hostname HOST] [--port PORT]",optionSchema:{host:"string",hostname:"string",listen:"string",noOpen:"boolean",port:"integer",webRoot:"string"},handler:o(async({options:t,rest:n})=>(await import("./app-layer-GLXYIT4B.js")).runOpenPondServerCommand("web",t,n),"handler")},{name:"tui",aliases:["interactive"],usage:"openpond tui [--provider <id>] [--model <id>] [--project <id>]",optionSchema:{cwd:"string",model:"string",noServerStart:"boolean",project:"string",provider:"string",server:"string"},handler:o(async({options:t,rest:n})=>(await import("./app-layer-GLXYIT4B.js")).runOpenPondTerminalCommand(t,n),"handler")},{name:"chat",usage:"openpond chat (--message-file <path>|--message <text>|--stdin) --non-interactive [--provider <id>] [--model <id>] [--agent <id>] [--project <id>] [--resume <session-id>] [--yes] [--approval-policy <policy>] [--json] [--timeout-sec <n>] [--max-output-bytes <n>] [--sandbox <mode>]",optionSchema:O,handler:o(async({options:t,rest:n})=>(await import("./app-layer-GLXYIT4B.js")).runOpenPondTerminalCommand(t,n),"handler")},{name:"tool",usage:"openpond tool <list|run> <handle>/<repo> [args]",optionSchema:{body:"json",json:"boolean"},handler:F},{name:"backtest",usage:"openpond backtest <run|events|get> <handle>/<repo> [args]",optionSchema:{body:"json",branch:"string",deploymentId:"string",limit:"integer",runId:"string"},handler:$},{name:"deploy",usage:"openpond deploy watch <handle>/<repo> [--branch <branch>]",optionSchema:{branch:"string"},handler:G},{name:"template",usage:"openpond template <status|branches|update> <handle>/<repo> [--env preview|production]",optionSchema:{env:"string"},handler:J},{name:"sandbox-template",usage:"openpond sandbox-template <command> [args]",optionSchema:A,handler:o(async({options:t,rest:n})=>(await import("./sandbox-template-SM62NUMJ.js")).runSandboxTemplateCommand(t,n),"handler")},{name:"repo",usage:"openpond repo <create|push> [--name <name>] [--path <dir>] [--branch <branch>]",optionSchema:{branch:"string",name:"string",path:"string"},handler:V},{name:"organizations",aliases:["organization"],usage:"openpond organizations <login|list|use|logout|whoami> [args]",optionSchema:{accessToken:"string",arguments:"json",callbackPort:"integer",clientId:"string",customDomain:"string",displayName:"string",email:"string",env:"string",environment:"string",json:"boolean",name:"string",open:"boolean",origin:"string",primaryContactEmail:"string",printToken:"boolean",resourceUrl:"string",role:"string",scope:"string",scopes:"string",slug:"string",status:"string",timeout:"integer",timeoutSeconds:"integer",tool:"string",toolName:"string",toolset:"string",url:"string"},handler:o(async({options:t,rest:n})=>(await import("./organizations-LAUKUPDF.js")).runOrganizationsCommand(t,n),"handler")},{name:"project",usage:"openpond project <list|create|upsert|get|update|sync|source-upload|archive> [args]",optionSchema:T,handler:o(async({options:t,rest:n})=>(await import("./project-agent-CPQP4ZY6.js")).runProjectCommand(t,n),"handler")},{name:"agent",usage:"openpond agent <inspect|build|validate|eval|traces|list|create|upsert|get|update|run|run-test|bind-source|source|archive> [args]",usages:["openpond agent run <action> [--cwd <project>] [--input <json>]","openpond agent run <agentId> --team-id <id> [--conversation-id <id>] [--target-project-id <projectId>] [--input <json>]","openpond agent source checks <agentId> --team-id <id> [--check-kind <kind>]","openpond agent source publish <agentId> --team-id <id> [--expected-manifest-hash <hash>]"],optionSchema:E,handler:o(async({options:t,rest:n})=>(await import("./project-agent-CPQP4ZY6.js")).runAgentCommand(t,n),"handler")},{name:"desktop-test",usage:"openpond desktop-test <run|attach> <scenario...> [--isolated|--attach|--packaged|--none] [--app <path>] [--artifacts-dir <path>] [--json <path>]",optionSchema:{artifactsDir:"string",attach:"boolean",cwd:"string",devtoolsPort:"integer",grep:"string",isolated:"boolean",json:"string",jsonPath:"string",keepHome:"boolean",none:"boolean",server:"string",timeoutMs:"integer",token:"string",tokenFile:"string"},handler:o(async({options:t,rest:n})=>(await import("./desktop-test-BMDAEN6Z.js")).runDesktopTestCommand(t,n),"handler")},{name:"sandbox",usage:"openpond sandbox <command> [args]",optionSchema:x,handler:o(async({options:t,rest:n})=>(await import("./sandbox-command-W6NWHFAR.js")).runSandboxCommand(t,n),"handler")},{name:"continual",usage:"openpond continual <init|validate|run|report> [manifest-or-series-id]",usages:["openpond continual init --from <tasks.jsonl> [--output <continual-support.yaml>] [--non-interactive]","openpond continual validate <continual-support.yaml> [--json]","openpond continual run <continual-support.yaml> [--api-base-url <url>] [--json]","openpond continual report <comparison-series-id> [--output <report.json>] [--json]"],optionSchema:{apiBaseUrl:"string",commit:"string",correctionCasesPerFamily:"integer",correctionSelection:"string",description:"string",from:"string",grader:"string",id:"string",json:"boolean",license:"string",name:"string",nonInteractive:"boolean",output:"string",repository:"string",seed:"string",semanticSimilarityThreshold:"number"},handler:o(async({options:t,rest:n})=>(await import("./continual-6EW2SLGL.js")).runContinualCommand(t,n),"handler")},{name:"training",usage:"openpond training <create-project|start|status|watch|logs|cancel|resume|artifacts|benchmark> <taskset-id|model-run-id|run-id|model-id>",usages:["openpond training create-project <taskset-id> --recipe <path> [--project-id <id>] [--profile <id>] [--name <name>] [--objective <text>] [--destination <id>] [--rollout-placement <local|remote>] [--gpu-placement-objective <fast|balanced|economical>] [--run-preset <preset>] [--max-spend <usd>] [--retention-days <days>] [--json]","openpond training start <model-project-id> [--comparison-series-entry <entry-id>] [--manifest <path>] [--yes] [--export-approved] [--max-spend <usd>] [--retention-days <days>] [--detach] [--json]","openpond training status <run-id> [--json]","openpond training watch <run-id> [--interval-ms <ms>] [--json]","openpond training logs <run-id> [--json]","openpond training cancel <run-id> [--json]","openpond training resume <model-run-id> [--json]","openpond training artifacts <run-id> [--json]","openpond training benchmark <model-id> [--provider <id>] [--model <id>] [--reasoning-effort <level>] [--max-spend <usd>] [--json]"],optionSchema:{apiBaseUrl:"string",comparisonSeriesEntry:"string",detach:"boolean",destination:"string",exportApproved:"boolean",gpuPlacementObjective:"string",intervalMs:"integer",json:"boolean",manifest:"string",maxSpend:"number",model:"string",name:"string",objective:"string",profile:"string",projectId:"string",provider:"string",recipe:"string",reasoningEffort:"string",retentionDays:"integer",rolloutPlacement:"string",runPreset:"string",yes:"boolean"},handler:o(async({options:t,rest:n})=>(await import("./training-7PST5HZU.js")).runTrainingCommand(t,n),"handler")},{name:"taskset",usage:"openpond taskset <import|publish|readiness|delete-draft> <package-path|draft-id|taskset-id> [--profile <id>] [--model <id>] [--json]",usages:["openpond taskset import <package-directory|taskset.json> [--profile <id>] [--json]","openpond taskset publish <draft-id> [--model <id>] [--json]","openpond taskset readiness <taskset-id> [--json]","openpond taskset delete-draft <draft-id> [--json]"],optionSchema:{apiBaseUrl:"string",json:"boolean",model:"string",profile:"string"},handler:o(async({options:t,rest:n})=>(await import("./taskset-YPKY3HUM.js")).runTasksetCommand(t,n),"handler")},{name:"opchat",usage:"openpond opchat <command> [args]",optionSchema:{compatModel:"string",compatibilityModel:"string",env:"string",environment:"string",json:"boolean",message:"string",model:"string",opchatApiBaseUrl:"string",opchatApiUrl:"string",prompt:"string",skipStream:"boolean",skipTool:"boolean",stream:"boolean"},handler:o(async({options:t,rest:n})=>(await import("./opchat-BSTDLB7O.js")).runOpChatCommand(t,n),"handler")},{name:"teams-bot",usage:"openpond teams-bot <command> [args]",optionSchema:{json:"boolean",teamId:"string"},handler:o(async({options:t,rest:n})=>(await import("./teams-bot-6LEMA4OH.js")).runTeamsBotCommand(t,n),"handler")},{name:"apps",usage:"openpond apps <list|code-visibility|tools|deploy|env get|env set|performance|summary|assistant|agent create> [args]",optionSchema:{appId:"string",body:"json",env:"json",json:"boolean",limit:"integer",refresh:"boolean",teamId:"string",watch:"boolean"},handler:q},{name:"opentool",usage:"openpond opentool <init|validate|build> [args]",optionSchema:{},handler:o(async({rest:t})=>(await import("./core-commands-QQNCA4WQ.js")).runOpentool(t),"handler")}],y=new Map;for(let t of C){y.set(t.name,t);for(let n of t.aliases??[])y.set(n,t)}function re(){return C}o(re,"listCliCommandDefinitions");function w(t){return y.get(t)??null}o(w,"getCliCommandDefinition");function ie(t,n){return w(t||"ui")?.optionSchema[n]??b[n]}o(ie,"getCliOptionKind");function se(t){let n=b[t];if(n)return n;for(let s of C){let i=s.optionSchema[t];if(i)return i}}o(se,"getAnyCliOptionKind");async function pe(t){let n=w(t.command);return n?S(t.options.help)?(L(n),!0):(await n.handler(t),!0):!1}o(pe,"runCliCommand");function H(t){let n=["Usage:",` ${t.usage}`,...(t.usages??[]).map(i=>` ${i}`)];t.aliases?.length&&n.push("","Aliases:",` ${t.aliases.join(", ")}`);let s=Object.entries(t.optionSchema).sort(([i],[r])=>i.localeCompare(r));if(s.length>0){n.push("","Options:");for(let[i,r]of s){let d=U(i);n.push(r==="boolean"?` --${d}`:` --${d} <${r}>`)}}return n.join(`
|
|
3
|
-
`)}o(H,"formatCliCommandUsage");function L(t){console.log(H(t))}o(L,"printCliCommandUsage");function U(t){return t.replace(/[A-Z]/g,n=>`-${n.toLowerCase()}`)}o(U,"cliOptionName");function K(){return["inspect","build","validate","eval","run"].map(n=>({name:n,usage:`openpond ${n} [args]`,optionSchema:B,handler:o(async({options:s,rest:i})=>(await import("./profile-
|
|
2
|
+
import{f as S}from"./chunk-3M53YXEI.js";import{a as o}from"./chunk-FTQLQJQV.js";import{readFileSync as j}from"node:fs";import k from"node:path";function P(){let t=["../../../package.json","../../package.json","../package.json","./package.json","../../../../package.json"];for(let n of t)try{let s=new URL(n,import.meta.url),i=j(s,"utf-8"),r=JSON.parse(i);if(typeof r.version=="string")return r.version}catch{}try{let n=j(k.join(k.dirname(process.execPath),"package.json"),"utf-8"),s=JSON.parse(n);if(typeof s.version=="string")return s.version}catch{}return"unknown"}o(P,"getInstalledCliVersion");function I(t){let n=/^v?(\d+)\.(\d+)\.(\d+)(?:[-+].*)?$/.exec(t.trim());if(!n)return null;let s=Number.parseInt(n[1],10),i=Number.parseInt(n[2],10),r=Number.parseInt(n[3],10);return!Number.isFinite(s)||!Number.isFinite(i)||!Number.isFinite(r)?null:[s,i,r]}o(I,"parseSemver");function X(t,n){let s=I(t),i=I(n);if(!s||!i)return null;for(let r=0;r<3;r+=1){if(s[r]<i[r])return-1;if(s[r]>i[r])return 1}return 0}o(X,"compareSemver");async function Y(t){let n=new AbortController,s=setTimeout(()=>n.abort(),7e3);try{let i=await fetch(`https://registry.npmjs.org/${encodeURIComponent(t)}/latest`,{signal:n.signal});if(!i.ok){let d=await i.text().catch(()=>"");throw new Error(`npm registry request failed: ${i.status} ${d}`.trim())}let r=await i.json().catch(()=>({}));if(typeof r.version!="string"||r.version.trim().length===0)throw new Error("npm registry payload missing version");return r.version.trim()}finally{clearTimeout(s)}}o(Y,"fetchLatestNpmVersion");var a="boolean",m="integer",l="json",g="number",e="string",O={agent:e,approvalPolicy:e,cwd:e,json:a,maxOutputBytes:m,message:e,messageFile:e,model:e,noServerStart:a,nonInteractive:a,project:e,provider:e,resume:e,sandbox:e,server:e,stdin:a,timeoutSec:m,yes:a},x={access:e,agentId:e,all:a,artifactPaths:e,async:a,authHeader:e,authHeaderValue:e,authToken:e,autoStart:a,baseRef:e,branch:e,budget:g,budgetUsd:g,cleanup:a,cols:m,command:e,content:e,contentBase64:e,contents:e,contentsBase64:e,cpu:g,create:a,description:e,diskGb:g,dockerBuildArgs:l,dockerRegistrySecretRefs:e,dockerfile:e,dockerfileContext:e,dockerfileTarget:e,domain:e,env:e,environment:e,envLiteral:e,envName:e,envRef:e,expectedMppMode:e,expectedVersion:m,failOnUnpreservedChanges:a,ffOnly:a,forceWithLease:a,fork:a,fromPath:e,idempotencyKey:e,idleTimeoutSeconds:m,image:e,imageDigest:e,input:e,inputBase64:e,integrationCapabilities:e,integrationConnection:e,integrationScopes:e,intervalMs:m,json:a,keep:a,label:e,leaseId:e,lifecycleHint:l,manifestPath:e,maxDurationSeconds:m,maxEntries:g,maxResults:g,memoryGb:g,message:e,name:e,noPreview:a,overwrite:a,params:l,path:e,paths:e,payload:l,port:m,preview:a,projectId:e,publish:a,q:e,query:e,rebase:a,recursive:a,registrySecretRef:e,remote:e,replayState:e,repo:e,respondAsync:a,rows:m,runtimeAgentId:e,runtimeBaseBranch:e,runtimeBaseSha:e,runtimeId:e,runtimeProfileId:e,runtimeProjectId:e,runtimePromotionPolicy:e,runtimeWorkspaceRoot:e,sandboxId:e,scope:e,since:m,snapshot:a,snapshotId:e,sourceProjectId:e,sourceRepoUrl:e,sourceSandboxId:e,startPoint:e,status:e,stdin:a,summary:a,tag:e,tags:e,targetId:e,targetType:e,teamId:e,templateName:e,templateVersion:e,templateVisibility:e,timeoutSeconds:m,toPath:e,type:e,useCase:e,validationCommand:e,value:e,version:e,volumeDeleteOnSandboxDelete:a,volumeMountPath:e,volumeName:e,volumeStorageGb:g,workflowMode:e},A={action:e,agentId:e,budget:g,budgetUsd:g,build:e,branch:e,commit:a,commitMessage:e,description:e,dir:e,disableSchedule:e,disableSchedules:e,enableSchedule:e,enableSchedules:e,entrypoint:e,env:l,envRef:e,file:e,force:a,idleTimeoutSeconds:m,inherit:a,input:l,inputFile:e,inputFiles:e,inputJson:l,inputs:l,json:a,keepTokenRemote:a,manifest:e,maxDurationSeconds:m,name:e,noPush:a,noWrite:a,out:e,outDir:e,output:e,outputDir:e,params:l,path:e,plan:e,projectId:e,repo:e,runtimeAgentId:e,runtimeBaseBranch:e,runtimeBaseSha:e,runtimeId:e,runtimeProjectId:e,runtimePromotionPolicy:e,scheduleMode:e,scheduleOverride:l,scheduleOverrides:l,schedules:e,service:e,setRemoteToken:a,setupTimeoutSeconds:m,target:e,teamId:e,timeoutSeconds:m,token:e,workflowMode:e,yes:a},T={branch:e,commitMessage:e,defaultBranch:e,description:e,gitOwner:e,gitRepo:e,internalRepoPath:e,json:a,name:e,path:e,projectId:e,repo:e,sourceCheckDispatch:e,sourceType:e,teamId:e,templateRepoUrl:e},E={agentId:e,agentEdit:l,allowLatestSource:a,allowedActions:e,attachmentsJson:l,baseSha:e,chatMode:e,checkKind:e,conversationId:e,cwd:e,dispatch:e,entrypointName:e,entrypointScope:e,expectedManifestHash:e,evalStatus:e,expectedSourceCommitSha:e,idempotencyKey:e,input:l,inputFile:e,json:a,limit:m,message:e,metadata:l,name:e,path:e,payload:l,projectId:e,prompt:e,provider:e,publishedSnapshotId:e,ref:e,requirePublishedSnapshot:a,requiredEnv:e,requiredIntegrations:e,runtimePromotionPolicy:e,runtimeSourceMode:e,sourceCheckDispatch:e,sourceMode:e,sourceRef:e,status:e,targetProjectId:e,teamId:e,triggerType:e,workflowMode:e};var b={account:"string",apiBaseUrl:"string",apiBaseurl:"string",baseUrl:"string",baseurl:"string",chatApiBaseUrl:"string",chatApiBaseurl:"string",checkUpdate:"boolean",cwd:"string",help:"boolean",home:"string",json:"boolean",profile:"string",sandboxApiUrl:"string",sandboxApiurl:"string",tui:"boolean",version:"boolean"},ae={C:"cwd",f:"force",h:"help",j:"json",v:"version",y:"yes"},B={cwd:"string",input:"json",inputFile:"string",json:"boolean",path:"string"},C=[{name:"home",usage:"openpond home [--home <directory>]",optionSchema:{},handler:o(async()=>console.log((await import("./dist-XCT2G25K.js")).resolveOpenPondHome()),"handler")},{name:"config",usage:"openpond config <get|set|unset|path|validate|schema|doctor|migrate|recover|restart-migration|revisions|replace|effective|trust|untrust|export|backup|restore|collect-orphans|clear-cache> [key] [value] [--home <directory>] [--json]",optionSchema:{keyPath:"json",value:"string",file:"string",project:"boolean",revision:"string",expectedRevision:"string",sourceAppHome:"string",sourceConfig:"string",sourceBrowserState:"string",dryRun:"boolean"},handler:o(async({options:t,rest:n})=>(await import("./configuration-command-IHUB6BBM.js")).runConfigurationCommand(t,n),"handler")},{name:"help",usage:"openpond help",optionSchema:{},handler:o(async()=>(await import("./help-5MKQV36D.js")).printHelp(),"handler")},{name:"version",usage:"openpond version",optionSchema:{},handler:o(()=>console.log(P()),"handler")},{name:"check-update",usage:"openpond check-update",optionSchema:{},handler:o(async()=>(await import("./core-commands-F2HIN7V4.js")).runCheckUpdate(),"handler")},{name:"login",usage:"openpond login [--base-url <url>]",optionSchema:b,handler:o(async({options:t})=>(await import("./core-commands-F2HIN7V4.js")).runLogin(t),"handler")},{name:"init",usage:"openpond init [--path <dir>] [--profile <name>] [--template <name>] [--force] [--json]",optionSchema:{...b,force:"boolean",path:"string",template:"string"},handler:o(async({options:t})=>(await import("./profile-EMVJ5DJQ.js")).runOpenPondInitCommand(t),"handler")},{name:"profile",usage:"openpond profile <current|init|load|check|push|commit|diff|catalog>",optionSchema:{checkKind:"string",conversationId:"string",ensureHosted:"boolean",expectedManifestHash:"string",force:"boolean",hostedCheckKind:"string",hostedRunAgentId:"string",hostedRunConversationId:"string",hostedRunIdempotencyKey:"string",hostedRunInput:"json",hostedRunRetry:"boolean",hostedRunTargetProjectId:"string",hostedSourceDispatch:"string",hostedSourceAgentId:"string",hostedSourceChecks:"boolean",hostedSourceProjectId:"string",json:"boolean",kind:"string",path:"string",publishHostedSource:"boolean",teamId:"string"},handler:o(async({options:t,rest:n})=>(await import("./profile-EMVJ5DJQ.js")).runOpenPondProfileCommand(t,n),"handler")},{name:"agents",usage:"openpond agents [--json]",optionSchema:{json:"boolean"},handler:o(async({options:t,rest:n})=>(await import("./profile-EMVJ5DJQ.js")).runOpenPondAgentsCommand(t,n),"handler")},{name:"actions",usage:"openpond actions <check|build|run|dev|publish> [action-id] [--cwd DIR] [--input JSON|--input-file PATH]",optionSchema:{apiKey:"string",baseUrl:"string",cwd:"string",input:"string",inputFile:"string",json:"boolean",outputDirectory:"string",sourceDirectory:"string",sourceCommitSha:"string",sourceRef:"string",projectId:"string",teamId:"string",timeoutMs:"integer"},handler:o(async({options:t,rest:n})=>(await import("./actions-command-6LFZFTLA.js")).runProjectActionsCommand(t,n),"handler")},...K(),{name:"extension",usage:"openpond extension <add|preview|list|inspect|update|remove> [owner/repo]",usages:["openpond extension add <owner/repo> [--ref <branch|tag|sha>] [--json]","openpond extension update <owner/repo> [--ref <branch|tag|sha>] [--json]","openpond extension update --all [--json]","openpond extension remove <owner/repo> [--json]"],optionSchema:{all:"boolean",json:"boolean",ref:"string"},handler:o(async({options:t,rest:n})=>(await import("./extension-D7IYZW7H.js")).runOpenPondExtensionCommand(t,n),"handler")},{name:"profiles",usage:"openpond profiles [args]",optionSchema:{json:"boolean"},handler:o(async({options:t,rest:n})=>(await import("./core-commands-F2HIN7V4.js")).runProfiles(t,n),"handler")},{name:"account",usage:"openpond account",optionSchema:{json:"boolean"},handler:o(async()=>(await import("./core-commands-F2HIN7V4.js")).runAccount(),"handler")},{name:"health",usage:"openpond health",optionSchema:{json:"boolean"},handler:o(async({options:t})=>(await import("./core-commands-F2HIN7V4.js")).runHealth(t),"handler")},{name:"app-server",usage:"openpond app-server [--home DIR]",optionSchema:{home:"string"},handler:o(async({options:t,rest:n})=>(await import("./app-layer-ZZHTHTJU.js")).runOpenPondServerCommand("app-server",t,n),"handler")},{name:"serve",usage:"openpond serve [args]",optionSchema:{host:"string",hostname:"string",listen:"string",port:"integer"},handler:o(async({options:t,rest:n})=>(await import("./app-layer-ZZHTHTJU.js")).runOpenPondServerCommand("serve",t,n),"handler")},{name:"ui",usage:"openpond ui [--no-open] [--hostname HOST] [--port PORT]",optionSchema:{host:"string",hostname:"string",listen:"string",noOpen:"boolean",port:"integer",webRoot:"string"},handler:o(async({options:t,rest:n})=>(await import("./app-layer-ZZHTHTJU.js")).runOpenPondServerCommand("web",t,n),"handler")},{name:"tui",aliases:["interactive"],usage:"openpond tui [--provider <id>] [--model <id>] [--project <id>]",optionSchema:{cwd:"string",model:"string",noServerStart:"boolean",project:"string",provider:"string",server:"string"},handler:o(async({options:t,rest:n})=>(await import("./app-layer-ZZHTHTJU.js")).runOpenPondTerminalCommand(t,n),"handler")},{name:"chat",usage:"openpond chat (--message-file <path>|--message <text>|--stdin) --non-interactive [--provider <id>] [--model <id>] [--agent <id>] [--project <id>] [--resume <session-id>] [--yes] [--approval-policy <policy>] [--json] [--timeout-sec <n>] [--max-output-bytes <n>] [--sandbox <mode>]",optionSchema:O,handler:o(async({options:t,rest:n})=>(await import("./app-layer-ZZHTHTJU.js")).runOpenPondTerminalCommand(t,n),"handler")},{name:"tool",usage:"openpond tool <list|run> <handle>/<repo> [args]",optionSchema:{body:"json",json:"boolean"},handler:F},{name:"backtest",usage:"openpond backtest <run|events|get> <handle>/<repo> [args]",optionSchema:{body:"json",branch:"string",deploymentId:"string",limit:"integer",runId:"string"},handler:$},{name:"deploy",usage:"openpond deploy watch <handle>/<repo> [--branch <branch>]",optionSchema:{branch:"string"},handler:G},{name:"template",usage:"openpond template <status|branches|update> <handle>/<repo> [--env preview|production]",optionSchema:{env:"string"},handler:J},{name:"sandbox-template",usage:"openpond sandbox-template <command> [args]",optionSchema:A,handler:o(async({options:t,rest:n})=>(await import("./sandbox-template-RYKWTBW7.js")).runSandboxTemplateCommand(t,n),"handler")},{name:"repo",usage:"openpond repo <create|push> [--name <name>] [--path <dir>] [--branch <branch>]",optionSchema:{branch:"string",name:"string",path:"string"},handler:V},{name:"organizations",aliases:["organization"],usage:"openpond organizations <login|list|use|logout|whoami> [args]",optionSchema:{accessToken:"string",arguments:"json",callbackPort:"integer",clientId:"string",customDomain:"string",displayName:"string",email:"string",env:"string",environment:"string",json:"boolean",name:"string",open:"boolean",origin:"string",primaryContactEmail:"string",printToken:"boolean",resourceUrl:"string",role:"string",scope:"string",scopes:"string",slug:"string",status:"string",timeout:"integer",timeoutSeconds:"integer",tool:"string",toolName:"string",toolset:"string",url:"string"},handler:o(async({options:t,rest:n})=>(await import("./organizations-DIRGTVK5.js")).runOrganizationsCommand(t,n),"handler")},{name:"project",usage:"openpond project <list|create|upsert|get|update|sync|source-upload|archive> [args]",optionSchema:T,handler:o(async({options:t,rest:n})=>(await import("./project-agent-4QC7N3MB.js")).runProjectCommand(t,n),"handler")},{name:"agent",usage:"openpond agent <inspect|build|validate|eval|traces|list|create|upsert|get|update|run|run-test|bind-source|source|archive> [args]",usages:["openpond agent run <action> [--cwd <project>] [--input <json>]","openpond agent run <agentId> --team-id <id> [--conversation-id <id>] [--target-project-id <projectId>] [--input <json>]","openpond agent source checks <agentId> --team-id <id> [--check-kind <kind>]","openpond agent source publish <agentId> --team-id <id> [--expected-manifest-hash <hash>]"],optionSchema:E,handler:o(async({options:t,rest:n})=>(await import("./project-agent-4QC7N3MB.js")).runAgentCommand(t,n),"handler")},{name:"desktop-test",usage:"openpond desktop-test <run|attach> <scenario...> [--isolated|--attach|--packaged|--none] [--app <path>] [--artifacts-dir <path>] [--json <path>]",optionSchema:{artifactsDir:"string",attach:"boolean",cwd:"string",devtoolsPort:"integer",grep:"string",isolated:"boolean",json:"string",jsonPath:"string",keepHome:"boolean",none:"boolean",server:"string",timeoutMs:"integer",token:"string",tokenFile:"string"},handler:o(async({options:t,rest:n})=>(await import("./desktop-test-BFFUGVRS.js")).runDesktopTestCommand(t,n),"handler")},{name:"sandbox",usage:"openpond sandbox <command> [args]",optionSchema:x,handler:o(async({options:t,rest:n})=>(await import("./sandbox-command-L263BBOL.js")).runSandboxCommand(t,n),"handler")},{name:"continual",usage:"openpond continual <init|validate|run|report> [manifest-or-series-id]",usages:["openpond continual init --from <tasks.jsonl> [--output <continual-support.yaml>] [--non-interactive]","openpond continual validate <continual-support.yaml> [--json]","openpond continual run <continual-support.yaml> [--api-base-url <url>] [--json]","openpond continual report <comparison-series-id> [--output <report.json>] [--json]"],optionSchema:{apiBaseUrl:"string",commit:"string",correctionCasesPerFamily:"integer",correctionSelection:"string",description:"string",from:"string",grader:"string",id:"string",json:"boolean",license:"string",name:"string",nonInteractive:"boolean",output:"string",repository:"string",seed:"string",semanticSimilarityThreshold:"number"},handler:o(async({options:t,rest:n})=>(await import("./continual-6EW2SLGL.js")).runContinualCommand(t,n),"handler")},{name:"training",usage:"openpond training <create-project|start|status|watch|logs|cancel|resume|artifacts|benchmark> <taskset-id|model-run-id|run-id|model-id>",usages:["openpond training create-project <taskset-id> --recipe <path> [--project-id <id>] [--profile <id>] [--name <name>] [--objective <text>] [--destination <id>] [--rollout-placement <local|remote>] [--gpu-placement-objective <fast|balanced|economical>] [--run-preset <preset>] [--max-spend <usd>] [--retention-days <days>] [--json]","openpond training start <model-project-id> [--comparison-series-entry <entry-id>] [--manifest <path>] [--yes] [--export-approved] [--max-spend <usd>] [--retention-days <days>] [--detach] [--json]","openpond training status <run-id> [--json]","openpond training watch <run-id> [--interval-ms <ms>] [--json]","openpond training logs <run-id> [--json]","openpond training cancel <run-id> [--json]","openpond training resume <model-run-id> [--json]","openpond training artifacts <run-id> [--json]","openpond training benchmark <model-id> [--provider <id>] [--model <id>] [--reasoning-effort <level>] [--max-spend <usd>] [--json]"],optionSchema:{apiBaseUrl:"string",comparisonSeriesEntry:"string",detach:"boolean",destination:"string",exportApproved:"boolean",gpuPlacementObjective:"string",intervalMs:"integer",json:"boolean",manifest:"string",maxSpend:"number",model:"string",name:"string",objective:"string",profile:"string",projectId:"string",provider:"string",recipe:"string",reasoningEffort:"string",retentionDays:"integer",rolloutPlacement:"string",runPreset:"string",yes:"boolean"},handler:o(async({options:t,rest:n})=>(await import("./training-7PST5HZU.js")).runTrainingCommand(t,n),"handler")},{name:"taskset",usage:"openpond taskset <import|publish|readiness|delete-draft> <package-path|draft-id|taskset-id> [--profile <id>] [--model <id>] [--json]",usages:["openpond taskset import <package-directory|taskset.json> [--profile <id>] [--json]","openpond taskset publish <draft-id> [--model <id>] [--json]","openpond taskset readiness <taskset-id> [--json]","openpond taskset delete-draft <draft-id> [--json]"],optionSchema:{apiBaseUrl:"string",json:"boolean",model:"string",profile:"string"},handler:o(async({options:t,rest:n})=>(await import("./taskset-YPKY3HUM.js")).runTasksetCommand(t,n),"handler")},{name:"opchat",usage:"openpond opchat <command> [args]",optionSchema:{compatModel:"string",compatibilityModel:"string",env:"string",environment:"string",effort:"string",json:"boolean",message:"string",model:"string",opchatApiBaseUrl:"string",opchatApiUrl:"string",prompt:"string",skipStream:"boolean",skipTool:"boolean",stream:"boolean"},handler:o(async({options:t,rest:n})=>(await import("./opchat-XO7EDHY7.js")).runOpChatCommand(t,n),"handler")},{name:"teams-bot",usage:"openpond teams-bot <command> [args]",optionSchema:{json:"boolean",teamId:"string"},handler:o(async({options:t,rest:n})=>(await import("./teams-bot-NIZB6DOY.js")).runTeamsBotCommand(t,n),"handler")},{name:"apps",usage:"openpond apps <list|code-visibility|tools|deploy|env get|env set|performance|summary|assistant|agent create> [args]",optionSchema:{appId:"string",body:"json",env:"json",json:"boolean",limit:"integer",refresh:"boolean",teamId:"string",watch:"boolean"},handler:q},{name:"opentool",usage:"openpond opentool <init|validate|build> [args]",optionSchema:{},handler:o(async({rest:t})=>(await import("./core-commands-F2HIN7V4.js")).runOpentool(t),"handler")}],y=new Map;for(let t of C){y.set(t.name,t);for(let n of t.aliases??[])y.set(n,t)}function re(){return C}o(re,"listCliCommandDefinitions");function w(t){return y.get(t)??null}o(w,"getCliCommandDefinition");function ie(t,n){return w(t||"ui")?.optionSchema[n]??b[n]}o(ie,"getCliOptionKind");function se(t){let n=b[t];if(n)return n;for(let s of C){let i=s.optionSchema[t];if(i)return i}}o(se,"getAnyCliOptionKind");async function pe(t){let n=w(t.command);return n?S(t.options.help)?(L(n),!0):(await n.handler(t),!0):!1}o(pe,"runCliCommand");function H(t){let n=["Usage:",` ${t.usage}`,...(t.usages??[]).map(i=>` ${i}`)];t.aliases?.length&&n.push("","Aliases:",` ${t.aliases.join(", ")}`);let s=Object.entries(t.optionSchema).sort(([i],[r])=>i.localeCompare(r));if(s.length>0){n.push("","Options:");for(let[i,r]of s){let d=U(i);n.push(r==="boolean"?` --${d}`:` --${d} <${r}>`)}}return n.join(`
|
|
3
|
+
`)}o(H,"formatCliCommandUsage");function L(t){console.log(H(t))}o(L,"printCliCommandUsage");function U(t){return t.replace(/[A-Z]/g,n=>`-${n.toLowerCase()}`)}o(U,"cliOptionName");function K(){return["inspect","build","validate","eval","run"].map(n=>({name:n,usage:`openpond ${n} [args]`,optionSchema:B,handler:o(async({options:s,rest:i})=>(await import("./profile-EMVJ5DJQ.js")).runOpenPondProfileSdkAlias(n,s,i),"handler")}))}o(K,"profileSdkAliasDefinitions");async function F({options:t,rest:n}){let{runToolList:s,runToolRun:i}=await import("./core-commands-F2HIN7V4.js"),r=n[0];if(r==="list"){let d=n[1];if(!d)throw new Error("usage: tool list <handle>/<repo>");await s(t,d);return}if(r==="run"){let d=n[1],c=n[2];if(!d||!c)throw new Error("usage: tool run <handle>/<repo> <tool> [--body <json>]");await i(t,d,c);return}throw new Error("usage: tool <list|run> <handle>/<repo> [args]")}o(F,"runToolCommand");async function $({options:t,rest:n}){let{runBacktestRun:s}=await import("./core-commands-F2HIN7V4.js"),{runBacktestEvents:i,runBacktestGet:r}=await import("./apps-C2BMJ7DO.js"),d=n[0]||"run";if(d==="run"){let c=n[1],f=n[2];if(!c||!f)throw new Error("usage: backtest run <handle>/<repo> <tool> [--body <json>] [--branch <branch>] [--deployment-id <id>]");await s(t,c,f);return}if(d==="events"){let c=n[1];if(!c)throw new Error("usage: backtest events <handle>/<repo> [--run-id <id>] [--limit <n>]");await i(t,c);return}if(d==="get"){let c=n[1];if(!c)throw new Error("usage: backtest get <handle>/<repo> --run-id <id>");await r(t,c);return}throw new Error("usage: backtest <run|events|get> <handle>/<repo> [args]")}o($,"runBacktestCommand");async function G({options:t,rest:n}){let{runDeployWatch:s}=await import("./core-commands-F2HIN7V4.js");if((n[0]||"watch")!=="watch")throw new Error("usage: deploy watch <handle>/<repo> [--branch <branch>]");let r=n[1];if(!r)throw new Error("usage: deploy watch <handle>/<repo> [--branch <branch>]");await s(t,r)}o(G,"runDeployCommand");async function J({options:t,rest:n}){let{runTemplateBranches:s,runTemplateStatus:i,runTemplateUpdate:r}=await import("./core-commands-F2HIN7V4.js"),d=n[0]||"status",c=n[1];if(!c)throw new Error("usage: template <status|branches|update> <handle>/<repo> [--env preview|production]");if(d==="status"){await i(t,c);return}if(d==="branches"){await s(t,c);return}if(d==="update"){await r(t,c);return}throw new Error("usage: template <status|branches|update> <handle>/<repo> [--env preview|production]")}o(J,"runTemplateCommand");async function V({options:t,rest:n}){let{runRepoCreate:s,runRepoPush:i}=await import("./core-commands-F2HIN7V4.js"),r=n[0]||"create";if(r==="create"){await s(t,n.slice(1));return}if(r==="push"){await i(t);return}throw new Error("usage: repo <create|push> [--name <name>] [--path <dir>] [--branch <branch>]")}o(V,"runRepoCommand");async function q({options:t,rest:n}){let{runAppsAgentCreate:s,runAppsAssistant:i,runAppsCodeVisibility:r,runAppsDeploy:d,runAppsEnvGet:c,runAppsEnvSet:f,runAppsList:R,runAppsPerformance:N,runAppsSummary:M,runAppsTools:_,runAppsToolsExecute:D}=await import("./apps-C2BMJ7DO.js"),u=n[0];if(u==="list"){await R(t);return}if(u==="code-visibility"){let p=n[1];if(!p)throw new Error("usage: apps code-visibility <handle>/<repo> --visibility public|private");await r(t,p);return}if(u==="tools"){if(n[1]==="execute"){let p=n[2],h=n[3],v=n[4];if(!p||!h||!v)throw new Error("usage: apps tools execute <appId> <deploymentId> <tool> [--body <json>]");await D(t,p,h,v);return}await _();return}if(u==="deploy"){let p=n[1];if(!p)throw new Error("usage: apps deploy <handle>/<repo> [--env preview|production] [--watch]");await d(t,p);return}if(u==="env"&&n[1]==="get"){let p=n[2];if(!p)throw new Error("usage: apps env get <handle>/<repo>");await c(t,p);return}if(u==="env"&&n[1]==="set"){let p=n[2];if(!p)throw new Error("usage: apps env set <handle>/<repo> --env <json>");await f(t,p);return}if(u==="performance"){await N(t);return}if(u==="summary"){let p=n[1];if(!p)throw new Error("usage: apps summary <handle>/<repo>");await M(t,p);return}if(u==="assistant"){let p=n[1],h=n[2];if(p!=="plan"&&p!=="performance"||!h)throw new Error("usage: apps assistant <plan|performance> <handle>/<repo> --prompt <text>");await i(t,p,h,n.slice(3));return}if(u==="agent"&&n[1]==="create"){await s(t,n.slice(2));return}throw new Error("usage: apps <list|code-visibility|tools|deploy|env get|env set|performance|summary|assistant|agent create> [args]")}o(q,"runAppsCommand");export{P as a,X as b,Y as c,b as d,ae as e,re as f,w as g,ie as h,se as i,pe as j,H as k};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
+
import{Y as Pe,a as pe,b as fe,d as me,e as q,f as L,g as he,h as ye,i as Ae,j as ge}from"./chunk-MVAJMRCW.js";import{d as N,e as B}from"./chunk-MJC26GOX.js";import{$ as oe,H as te,z as de}from"./chunk-IFP6W4OW.js";import{a}from"./chunk-FTQLQJQV.js";import{randomUUID as qe}from"node:crypto";var Re=new URL(B).hostname,we=new URL(N).hostname,Ne=`${B}/opchat/v1`;function l(e){if(!e)return null;let n=e.trim();return n?n.replace(/\/+$/,""):null}a(l,"normalizeBaseUrl");function V(e){let n=l(e);if(!n)return null;try{let o=new URL(n).hostname.toLowerCase();if(o===Re)return B;if(o===we||o===`www.${we}`||o==="openpond.live"||o==="www.openpond.live")return B;if(o.startsWith("api."))return n}catch{return null}return null}a(V,"mapUiBaseToApiBase");function G(e,n){let t=l(process.env.OPENPOND_API_URL);if(t)return t;let o=l(e?.apiBaseUrl);if(o)return o;let r=l(n.apiBaseUrl);if(r)return r;let s=V(process.env.OPENPOND_BASE_URL);return s||(V(e?.baseUrl||n.baseUrl)??B)}a(G,"resolvePublicApiBaseUrl");function J(e,n,t){return Le(e,n,t)}a(J,"resolveHostedChatApiBaseUrl");function Le(e,n,t){let o=typeof process<"u"?process.env:{};return W(o.OPENPOND_OPCHAT_API_URL)??W(e?.chatApiBaseUrl??n.chatApiBaseUrl)??W(o.OPENPOND_CHAT_API_URL)??De(t)}a(Le,"resolveOpChatApiBaseUrl");function W(e){let n=l(e);if(!n)return null;try{let t=new URL(n),o=t.pathname.split("/").filter(Boolean),r=o.findIndex(i=>i.toLowerCase()==="opchat");return r>=0?(t.pathname=`/${[...o.slice(0,r+1),"v1"].join("/")}`,t.search="",t.hash="",l(t.toString())??null):o.findIndex(i=>i.toLowerCase()==="v1")>=0?(t.pathname="/opchat/v1",t.search="",t.hash="",l(t.toString())??null):(t.pathname=`${t.pathname.replace(/\/+$/,"")}/opchat/v1`.replace(/\/{2,}/g,"/"),t.search="",t.hash="",l(t.toString())??null)}catch{return null}}a(W,"normalizeOpChatApiBaseUrl");function De(e){return W(e)??Ne}a(De,"opChatBaseFromPublicApiBase");function D(e){return e?.trim()?e.trim():"production"}a(D,"deriveEnvironment");function Y(e,n=process.env){let t=[e?.apiKey,e?.session?.token,e?.token,n.OPENPOND_API_KEY];for(let o of t){let r=typeof o=="string"?o.trim():"";if(r)return r}return null}a(Y,"accountToken");function P(e,n){return!!(e&&n&&e.toLowerCase()===n.toLowerCase())}a(P,"handleEquals");function b(e,n){return l(e)===l(n)}a(b,"baseUrlEquals");function F(e,n){return`${e?.trim().toLowerCase()||""}|${l(n)??"default"}`}a(F,"profileKey");function Q(e){return l(e?.baseUrl)}a(Q,"selectorBaseUrl");function _(e){let n=l(e.baseUrl);return n?{handle:e.handle,baseUrl:n}:{handle:e.handle}}a(_,"selectorFromAccount");function A(e){let n=typeof e?.handle=="string"?e.handle.trim():"";if(!n)return null;let t=l(e?.baseUrl);return t?{handle:n,baseUrl:t}:{handle:n}}a(A,"normalizeActiveProfile");function U(e,n){if(!P(e.handle,n.handle))return!1;let t=Q(n);return t?b(e.baseUrl,t):!l(e.baseUrl)}a(U,"accountMatchesSelector");function re(e,n){if(!P(e.handle,n.handle))return!1;let t=Q(n);return t?b(e.baseUrl,t):!l(e.baseUrl)}a(re,"profileMatchesSelector");function Oe(e,n,t){let o=Array.isArray(e.accounts)?e.accounts:[],r=n||process.env.OPENPOND_ACCOUNT?A({handle:n||process.env.OPENPOND_ACCOUNT||"",baseUrl:t??process.env.OPENPOND_BASE_URL??null}):A(e.activeProfile);if(r){let s=o.find(c=>U(c,r));if(s)return s;let i=o.filter(c=>P(c.handle,r.handle));return i.length===1?i[0]??null:null}return o[0]?o[0]:null}a(Oe,"findActiveAccount");function xe(e){let n=Array.isArray(e.accounts)?e.accounts:[],t=A(e.activeProfile)??(n[0]?_(n[0]):null);return ae(n.map(o=>({handle:o.handle,baseUrl:l(o.baseUrl),apiBaseUrl:l(o.apiBaseUrl),chatApiBaseUrl:l(o.chatApiBaseUrl),environment:D(o.environment),isActive:t?U(o,t):!1,hasApiKey:!!o.apiKey?.trim(),hasSessionToken:!!(o.session?.token?.trim()||o.token?.trim()),sessionAppId:o.session?.appId??null,sessionConversationId:o.session?.conversationId??null})))}a(xe,"fallbackProfilesFromConfig");function ae(e){let n=new Map;for(let t of e){let o=l(t.baseUrl),r=`${t.handle.toLowerCase()}|${o??"default"}`,s={...t,baseUrl:o,apiBaseUrl:l(t.apiBaseUrl),chatApiBaseUrl:l(t.chatApiBaseUrl),environment:D(t.environment),isActive:t.isActive},i=n.get(r);(!i||s.isActive&&!i.isActive||s.hasApiKey&&!i.hasApiKey)&&n.set(r,s)}return Array.from(n.values())}a(ae,"normalizeProfiles");function be(e){return e.hasApiKey||e.hasSessionToken?"signed_in":"signed_out"}a(be,"profileAuthHealth");function $e(e,n){return e?{reachable:e.reachable,authenticated:e.authenticated,apiBase:e.apiBase||n,latencyMs:e.latencyMs,status:e.status,service:e.service,checkedAt:e.checkedAt,error:e.error??null}:null}a($e,"normalizeHealth");function Ue(e){let n=e?.account;return n?{id:n.id??null,email:n.email??null,name:n.name??null,handle:n.handle??null,image:n.image??null,timezone:n.timezone??null,isAdmin:n.isAdmin??null,isVerified:n.isVerified??null,dailyAgentAppId:n.dailyAgentAppId??null,dailyAgentDeploymentId:n.dailyAgentDeploymentId??null,credits:n.credits??null}:null}a(Ue,"normalizeProfile");function He(e){return(e??[]).map(n=>({...n,id:n.id||n.userProductId||n.openPondProductId||n.name,name:n.name,type:n.type,status:n.status,isActive:n.isActive??null,price:n.price??null,currency:n.currency??null,credits:n.credits??null}))}a(He,"normalizeProducts");function Me(e){return e.handle.trim().toLowerCase()==="default"&&!l(e.baseUrl)&&!e.hasApiKey&&!e.hasSessionToken}a(Me,"isEmptyDefaultProfile");function ze(e){let n=e?.trim();return n?n.length>=12?`\u2022\u2022\u2022\u2022\u2022\u2022${n.slice(-6)}`:"\u2022\u2022\u2022\u2022\u2022\u2022":null}a(ze,"apiKeyHint");function Fe(e){return e?.auth?.authType!=="openpond-api-key"||!e.auth.keyAccess?null:{ownerType:e.auth.keyAccess.ownerType,teamId:e.auth.keyAccess.teamId,scopes:e.auth.scopes}}a(Fe,"apiKeyAccess");function X(e){let{config:n,profiles:t,account:o,token:r,apiBaseUrl:s,accountResponse:i,accountProfiles:c,health:m,authFailed:g,error:f}=e,w=J(o,n,s),h=Ue(i??null),C=A(n.activeProfile),v=(o?_(o):null)??C,O=h?.handle||o?.handle||v?.handle||null,I=(v?t.find(d=>re(d,v)):null)??t.find(d=>d.isActive)??null,y=g?"auth_error":r?"signed_in":"signed_out",u=h?.name||h?.handle||h?.email||O||"Signed out",T=l(I?.baseUrl||o?.baseUrl||N),k=D(I?.environment||o?.environment),x=A(v)??(O?A({handle:O,baseUrl:I?.baseUrl??o?.baseUrl}):null),M=(t.length>0?t:O?[{handle:O,baseUrl:Q(x)??l(o?.baseUrl),apiBaseUrl:s,chatApiBaseUrl:w,environment:k,isActive:!0,hasApiKey:!!r,hasSessionToken:!1,sessionAppId:null,sessionConversationId:null}]:[]).filter(d=>!Me(d));return{state:y,activeProfile:x,label:u,email:h?.email??null,avatarUrl:h?.image??null,environment:k,baseUrl:T,apiBaseUrl:s,chatApiBaseUrl:w,creditsLabel:h?.credits??null,profile:h,products:He(i?.products),apiHealth:$e(m??null,s),accounts:M.map(d=>{let R=l(d.baseUrl),Te=n.accounts?.find(ue=>P(ue.handle,d.handle)&&b(ue.baseUrl,R)),ne=c?.[F(d.handle,R)]??null,z=Ue(ne?.response??null);return{handle:d.handle,baseUrl:R,apiBaseUrl:l(d.apiBaseUrl),chatApiBaseUrl:l(d.chatApiBaseUrl),environment:D(d.environment),isActive:x?re(d,x):!1,authHealth:ne?.authFailed?"auth_error":be(d),displayLabel:z?.name||z?.handle||z?.email||d.handle,email:z?.email??null,avatarUrl:z?.image??null,apiKeyHint:ze(Te?.apiKey),apiKeyAccess:Fe(ne?.response??null)}}),error:f??m?.error??null}}a(X,"toAccountState");async function je(e){try{return ae(await ye())}catch{return xe(e)}}a(je,"loadProfiles");async function p(e,n){let t=await he(),o=await je(t),r=Oe(t,e,n),s=Y(r),i=G(r,t),c=J(r,t,i);return{config:t,profiles:o,account:r,token:s,apiBaseUrl:i,chatApiBaseUrl:c,accountState:X({config:t,profiles:o,account:r,token:s,apiBaseUrl:i})}}a(p,"loadOpenPondAccountContext");async function Ke(e){let n=l(e.baseUrl);return await Ae(e.handle,{baseUrl:n}),p(e.handle,n)}a(Ke,"switchOpenPondAccount");function $(e){return e instanceof Error?e.message:String(e)}a($,"errorMessage");var We=15e3;function Ve(e){return e===oe?"OpenPond Chat":e==="deepseek-v4-flash"?"DeepSeek V4 Flash":e.replace(/[-_/]+/g," ")}a(Ve,"displayNameForHostedModel");function Ge(e){let n=typeof e.id=="string"?e.id:null;return n?{id:n,displayName:Ve(n),ownedBy:typeof e.owned_by=="string"?e.owned_by:null,streaming:!0,raw:e}:null}a(Ge,"normalizeHostedModel");async function Je(){let e=await p();if(!e.token)return{models:[],error:"No OpenPond API key or session token is configured."};try{return{models:(await Xe({apiBaseUrl:e.chatApiBaseUrl,token:e.token})).data.map(o=>Ge(o)).filter(o=>!!o),error:null}}catch(n){return{models:[],error:$(n)}}}a(Je,"loadOpenPondHostedModels");async function Ye(){let e=await p();if(!e.token)return{catalog:null,error:"No OpenPond API key or session token is configured."};let n=new AbortController,t=setTimeout(()=>{n.abort(new Error("OpenPond provider catalog request timed out."))},We);try{return{catalog:await Ee({apiBaseUrl:e.chatApiBaseUrl,token:e.token,signal:n.signal}),error:null}}catch(o){return{catalog:null,error:$(o)}}finally{clearTimeout(t)}}a(Ye,"loadOpenPondProviderCatalog");async function*Qe(e){let n=await p();if(!n.token)throw new Error("OpenPond is signed out. Add an account in Settings before using OpenPond Chat.");yield*ve({apiBaseUrl:n.chatApiBaseUrl,token:n.token,model:e.model||oe,messages:e.messages,tools:e.tools,toolChoice:e.toolChoice,requestId:e.requestId,reasoningEffort:e.reasoningEffort,maxTokens:e.maxTokens,temperature:e.temperature,topP:e.topP,signal:e.signal})}a(Qe,"streamOpenPondHostedChatTurn");async function Xe(e){let n=se(e.apiBaseUrl,"models"),t=await fetch(n,{method:"GET",headers:ie(e.token,"application/json"),signal:e.signal});if(!t.ok)throw new Error(`OpenPond OpChat model list failed: ${t.status} ${await le(t)}`);return await t.json()}a(Xe,"listOpChatModels");async function Ee(e){let n=se(e.apiBaseUrl,"provider-catalog"),t=await fetch(n,{method:"GET",headers:ie(e.token,"application/json"),signal:e.signal});if(!t.ok)throw new Error(`OpenPond OpChat provider catalog failed: ${t.status} ${await le(t)}`);let o=await t.json();return!o||typeof o!="object"||!Array.isArray(o.providers)?te.parse(o):te.parse({...o,providers:o.providers.filter(r=>r!==null&&typeof r=="object"&&de.safeParse(r.id).success)})}a(Ee,"listOpChatProviderCatalog");async function*ve(e){let n=se(e.apiBaseUrl,"chat/completions"),t=await fetch(n,{method:"POST",headers:ie(e.token,"text/event-stream",e.requestId),body:JSON.stringify(rn(e,!0)),signal:e.signal});if(!t.ok)throw new Error(`OpenPond OpChat request failed: ${t.status} ${await le(t)}`);if(!t.body)throw new Error("OpenPond OpChat request failed: streaming response body is missing.");let o=new Map,r=!1,s=null,i={},c="",m=null,g=Ze(t.headers),f=t.body.getReader(),w=new TextDecoder,h="",C=[],ee=a(()=>{if(C.length===0)return[];let y=C.join(`
|
|
3
|
+
`);if(C=[],y==="[DONE]")return r=!0,[];let u;try{u=JSON.parse(y)}catch{throw new Error("OpenPond OpChat request failed: malformed streaming event.")}if(u&&typeof u=="object"&&"error"in u)throw new Error(`OpenPond OpChat request failed: ${_e(u)}`);i=u;let T=u&&typeof u=="object"?u:{},k=Array.isArray(T.choices)?T.choices:[],x=k[0]&&typeof k[0]=="object"?k[0]:{},K=x.delta&&typeof x.delta=="object"?x.delta:{},M=[],d=Be(K.reasoning_content);d&&(c+=d,M.push({type:"reasoning_delta",text:d,raw:u}));let R=Be(K.content);return R&&M.push({type:"text_delta",text:R,raw:u}),tn(o,K.tool_calls),s=H(x.finish_reason)??s,m=ln(u)??m,M},"consumeEvent"),v=a(y=>{let u=y.endsWith("\r")?y.slice(0,-1):y;return u?u.startsWith(":")?[]:(u.startsWith("data:")&&C.push(u.slice(5).trimStart()),[]):ee()},"consumeLine");try{for(;;){let y=await f.read();if(y.done)break;h+=w.decode(y.value,{stream:!0});let u=h.split(`
|
|
4
|
+
`);h=u.pop()??"";for(let T of u)for(let k of v(T))yield k}if(h+=w.decode(),h)for(let y of v(h))yield y;for(let y of ee())yield y}finally{f.releaseLock()}if(!r)throw new Error("OpenPond OpChat request failed: stream ended before [DONE].");let O=on(o);O.length>0&&(yield{type:"tool_call_delta",toolCalls:O,raw:i}),O.length>0&&c&&(yield{type:"continuation",continuation:{kind:"chat_completions_reasoning",reasoningContent:c},raw:i});let I=en(m,g);I&&(yield{type:"usage",usage:I,raw:i}),yield{type:"finish",finishReason:s,raw:i}}a(ve,"streamOpChatChatCompletion");function Ze(e){let n=ke(e,["fireworks-prompt-tokens","prompt-tokens"]),t=ke(e,["fireworks-cached-prompt-tokens","cached-prompt-tokens"]);return t===null?null:{...n===null?{}:{prompt_tokens:n},cached_input_tokens:t,cache_telemetry_source:"provider_response_headers"}}a(Ze,"cacheUsageFromResponseHeaders");function ke(e,n){for(let t of n){let o=e.get(t);if(o===null||!/^\d+$/.test(o.trim()))continue;let r=Number(o);if(Number.isSafeInteger(r)&&r>=0)return r}return null}a(ke,"firstHeaderTokenCount");function en(e,n){if(!n||nn(e))return e;let t={...e??{},cached_input_tokens:n.cached_input_tokens,cache_telemetry_source:"provider_response_headers"};return E(e?.prompt_tokens)===null&&n.prompt_tokens!==void 0&&(t.prompt_tokens=n.prompt_tokens),t}a(en,"usageWithResponseHeaderCache");function nn(e){return e?E(e.cached_input_tokens)!==null||E(e.cache_read_input_tokens)!==null||E(e.cache_creation_input_tokens)!==null||E(e.prompt_cache_hit_tokens)!==null||E(e.prompt_cache_miss_tokens)!==null?!0:E(e.prompt_tokens_details?.cached_tokens)!==null||E(e.input_tokens_details?.cached_tokens)!==null:!1}a(nn,"usageHasCacheTelemetry");function E(e){if(typeof e=="number"&&Number.isSafeInteger(e)&&e>=0)return e;if(typeof e!="string"||!/^\d+$/.test(e.trim()))return null;let n=Number(e);return Number.isSafeInteger(n)?n:null}a(E,"usageTokenCount");function tn(e,n){Array.isArray(n)&&n.forEach((t,o)=>{if(!t||typeof t!="object")return;let r=t,s=typeof r.index=="number"&&Number.isInteger(r.index)?r.index:o,i=e.get(s)??{arguments:""};typeof r.id=="string"&&(i.id=r.id);let c=r.function&&typeof r.function=="object"?r.function:{};typeof c.name=="string"&&(i.name=`${i.name??""}${c.name}`),typeof c.arguments=="string"&&(i.arguments+=c.arguments),e.set(s,i)})}a(tn,"mergeOpChatToolCallDeltas");function on(e){return[...e.entries()].sort(([n],[t])=>n-t).flatMap(([,n])=>n.id&&n.name?[{id:n.id,type:"function",function:{name:n.name,arguments:n.arguments}}]:[])}a(on,"completedOpChatToolCalls");function rn(e,n){let t={model:e.model,messages:e.messages.map(sn),stream:n};return e.tools&&(t.tools=e.tools),e.toolChoice!==void 0&&(t.tool_choice=e.toolChoice),typeof e.maxTokens=="number"&&(t.max_tokens=e.maxTokens),typeof e.temperature=="number"&&(t.temperature=e.temperature),typeof e.topP=="number"&&(t.top_p=e.topP),Object.assign(t,an(e.reasoningEffort)),t}a(rn,"buildOpChatBody");function an(e){return e?e==="off"?{thinking:{type:"disabled"}}:{thinking:{type:"enabled"},reasoning_effort:e}:{}}a(an,"opChatReasoningFields");function sn(e){let{continuation:n,images:t,...o}=e,r=t?.length?[...typeof e.content=="string"&&e.content.trim()?[{type:"text",text:e.content}]:[],...t.map(s=>({type:"image_url",image_url:{url:s.url,...s.detail?{detail:s.detail}:{}}}))]:e.content;return e.role==="assistant"&&n?.kind==="chat_completions_reasoning"?{...o,...r!==void 0?{content:r}:{},reasoning_content:n.reasoningContent}:{...o,...r!==void 0?{content:r}:{}}}a(sn,"opChatMessage");function se(e,n){let t=e.trim().replace(/\/+$/,"");if(!t)throw new Error("OpenPond OpChat API base URL is required.");return`${t}/${n}`}a(se,"opChatEndpointUrl");function ie(e,n,t){let o=e.trim();if(!o)throw new Error("OpenPond API key is required for OpChat.");let r=new Headers;return r.set("Authorization",`Bearer ${o}`),r.set("Content-Type","application/json"),r.set("Accept",n),r.set("x-openpond-client","openpond-app"),r.set("x-openpond-request-id",t||qe()),r}a(ie,"opChatHeaders");async function le(e){let n=await e.text().catch(()=>"");if(!n)return e.statusText||`HTTP ${e.status}`;try{return _e(JSON.parse(n))}catch{return n}}a(le,"readOpChatError");function _e(e){if(!e||typeof e!="object")return String(e||"unknown_error");let n=e,t=n.error;if(t&&typeof t=="object"){let o=t;return[H(o.code),H(o.type),H(o.message)].filter(Boolean).join(": ")}return[H(n.error),H(n.message)].filter(Boolean).join(": ")||JSON.stringify(e)}a(_e,"errorMessageFromPayload");function ln(e){if(!e||typeof e!="object")return null;let n=e.usage;return!n||typeof n!="object"?null:n}a(ln,"parseUsage");function H(e){return typeof e=="string"&&e.trim()?e:null}a(H,"stringValue");function Be(e){return typeof e=="string"&&e.length>0?e:null}a(Be,"streamTextValue");import{readFileSync as cn}from"node:fs";var j;function un(){if(j!==void 0)return j??"openpond-code bundled";try{let e=new URL("../package.json",import.meta.resolve("openpond")),n=JSON.parse(cn(e,"utf8"));j=typeof n.version=="string"?`openpond-code@${n.version}`:null}catch{j=null}return j??"openpond-code bundled"}a(un,"getBundledRuntimeVersion");import{spawn as dn}from"node:child_process";function Se(e,n=process.platform){return n==="darwin"?{command:"open",args:[e]}:n==="win32"?{command:"rundll32.exe",args:["url.dll,FileProtocolHandler",e]}:{command:"xdg-open",args:[e]}}a(Se,"resolveSystemBrowserCommand");async function pn(e,n={}){let t=n.command??Se(e),o=n.handoffTimeoutMs??1500;return new Promise(r=>{let s=!1,i=null,c=a(g=>{s||(s=!0,i&&clearTimeout(i),r(g))},"finish"),m=dn(t.command,t.args,{detached:!1,shell:!1,stdio:"ignore",windowsHide:!0});m.once("error",g=>{let f=g.code;c({opened:!1,error:f?`browser launcher ${t.command} failed (${f})`:`browser launcher ${t.command} failed`})}),m.once("close",(g,f)=>{if(g===0){c({opened:!0});return}let w=f?`signal ${f}`:`code ${g??"unknown"}`;c({opened:!1,error:`browser launcher ${t.command} exited with ${w}`})}),i=setTimeout(()=>{m.unref(),c({opened:!0})},o),i.unref()})}a(pn,"openUrlWithSystemBrowser");function fn(e){if(!e||typeof e!="object")return null;let n=e,t=typeof n.id=="string"?n.id:null,o=typeof n.name=="string"?n.name:t;if(!t||!o)return null;let r=n.latestDeployment&&typeof n.latestDeployment=="object"?n.latestDeployment:null,s=Pe.safeParse(n.sandboxActionRegistry);return{id:t,name:o,description:typeof n.description=="string"?n.description:null,visibility:typeof n.visibility=="string"?n.visibility:null,gitOwner:typeof n.gitOwner=="string"?n.gitOwner:null,gitRepo:typeof n.gitRepo=="string"?n.gitRepo:null,gitHost:typeof n.gitHost=="string"?n.gitHost:null,defaultBranch:typeof n.defaultBranch=="string"?n.defaultBranch:null,sandbox:n.sandbox===!0,sandboxActionRegistry:s.success?s.data:null,sandboxManifestHash:typeof n.sandboxManifestHash=="string"?n.sandboxManifestHash:null,sandboxManifestPath:typeof n.sandboxManifestPath=="string"?n.sandboxManifestPath:null,sandboxManifestSyncedAt:typeof n.sandboxManifestSyncedAt=="string"?n.sandboxManifestSyncedAt:n.sandboxManifestSyncedAt instanceof Date?n.sandboxManifestSyncedAt.toISOString():null,sandboxManifestError:typeof n.sandboxManifestError=="string"?n.sandboxManifestError:null,updatedAt:typeof n.updatedAt=="string"?n.updatedAt:null,latestDeployment:r?{id:typeof r.id=="string"?r.id:void 0,status:typeof r.status=="string"?r.status:void 0,deploymentDomain:typeof r.deploymentDomain=="string"?r.deploymentDomain:null,createdAt:typeof r.createdAt=="string"?r.createdAt:void 0,isProduction:typeof r.isProduction=="boolean"?r.isProduction:null,gitBranch:typeof r.gitBranch=="string"?r.gitBranch:null}:null,scheduleSummary:hn(n.scheduleSummary)}}a(fn,"normalizeApp");function S(e){return typeof e=="string"?e:e instanceof Date?e.toISOString():null}a(S,"normalizeDateString");function mn(e){if(!e||typeof e!="object")return null;let n=e,t=typeof n.id=="string"?n.id:null,o=typeof n.name=="string"?n.name:t,r=typeof n.deploymentId=="string"?n.deploymentId:null;return!t||!o||!r?null:{id:t,name:o,description:typeof n.description=="string"?n.description:null,scheduleType:typeof n.scheduleType=="string"?n.scheduleType:"cron",scheduleExpression:typeof n.scheduleExpression=="string"?n.scheduleExpression:"",enabled:!!n.enabled,rawEnabled:typeof n.rawEnabled=="boolean"?n.rawEnabled:void 0,syncStatus:typeof n.syncStatus=="string"?n.syncStatus:null,syncError:typeof n.syncError=="string"?n.syncError:null,startAt:S(n.startAt),endAt:S(n.endAt),maxRuns:typeof n.maxRuns=="number"?n.maxRuns:null,executionCount:typeof n.executionCount=="number"?n.executionCount:null,lifecycleStatus:typeof n.lifecycleStatus=="string"?n.lifecycleStatus:null,lifecycleReason:typeof n.lifecycleReason=="string"?n.lifecycleReason:null,lastExecutionAt:S(n.lastExecutionAt),lastExecutionStatus:typeof n.lastExecutionStatus=="string"?n.lastExecutionStatus:null,lastRunNowAt:S(n.lastRunNowAt),lastRunNowStatus:typeof n.lastRunNowStatus=="string"?n.lastRunNowStatus:null,updatedAt:S(n.updatedAt)??new Date().toISOString(),deploymentId:r,isProduction:typeof n.isProduction=="boolean"?n.isProduction:void 0,payload:n.payload}}a(mn,"normalizeSchedule");function hn(e){if(!e||typeof e!="object")return null;let n=e,t=Array.isArray(n.schedules)?n.schedules.map(mn).filter(i=>!!i):[],o=typeof n.total=="number"?n.total:t.length,r=typeof n.active=="number"?n.active:t.filter(i=>i.enabled).length,s=typeof n.paused=="number"?n.paused:Math.max(0,o-r);return{total:o,active:r,paused:s,enabled:typeof n.enabled=="number"?n.enabled:r,disabled:typeof n.disabled=="number"?n.disabled:s,nextRunAt:S(n.nextRunAt),lastRunAt:S(n.lastRunAt),schedules:t,truncated:typeof n.truncated=="boolean"?n.truncated:void 0}}a(hn,"normalizeScheduleSummary");async function yn(e){let n=Array.isArray(e.config.accounts)?e.config.accounts:[],t=await Promise.all(n.map(async o=>{let r=F(o.handle,o.baseUrl),s=Y(o);if(!s)return[r,{response:null,authFailed:!1,error:null}];try{return[r,{response:await q(G(o,e.config),s),authFailed:!1,error:null}]}catch(i){return[r,{response:null,authFailed:!0,error:$(i)}]}}));return Object.fromEntries(t)}a(yn,"loadAccountProfileLookups");async function Ce(e){let n=await yn(e),t=e.account?n[F(e.account.handle,e.account.baseUrl)]??null:null,o=t?.response??null,r=e.token&&t?.authFailed?t.error||"OpenPond account authentication failed.":null;return{account:X({...e,accountResponse:o,accountProfiles:n,authFailed:!!r,error:r})}}a(Ce,"loadOpenPondAccountStateForContext");async function An(){return Ce(await p())}a(An,"loadOpenPondAccountState");async function Ie(e={}){let n=await p(),t=Ce(n);if(!n.token)return{...await t,apps:[],error:"No OpenPond API key or session token is configured."};let[o,r]=await Promise.allSettled([t,pe(n.apiBaseUrl,n.token,{handle:n.account?.handle,limit:e.limit??20,offset:e.offset??0,includeScheduled:e.includeScheduled??!0})]);if(o.status==="rejected")throw o.reason;return{account:o.value.account,apps:r.status==="fulfilled"?r.value.map(fn).filter(s=>!!s):[],error:r.status==="rejected"?$(r.reason):null}}a(Ie,"loadOpenPondApps");async function gn(e){let n=await p();if(!n.token)throw new Error("No OpenPond API key or session token is configured.");return{account:n,response:await fe(n.apiBaseUrl,n.token,e)}}a(gn,"createOpenPondRepoApp");import{createHash as Pn}from"node:crypto";function wn(e){return`account-${Pn("sha256").update(e).digest("hex").slice(0,8)}`}a(wn,"fallbackHandleForApiKey");function Z(e){let n=e?.trim();return n?n.replace(/^@/,""):null}a(Z,"normalizeDerivedHandle");async function On(e,n){let t=Z(e.handle);if(t)return t;try{let r=(await q(n,e.apiKey)).account,s=Z(r.handle)??Z(r.email?.split("@")[0])??Z(r.id);if(s)return s}catch{}return wn(e.apiKey)}a(On,"deriveHandleForApiKey");async function xn(e){let n=e.baseUrl??N,t=l(e.apiBaseUrl)??V(n)??B,o=l(e.chatApiBaseUrl),r=await On(e,t);return await ge({handle:r,apiKey:e.apiKey,baseUrl:n,apiBaseUrl:t,chatApiBaseUrl:o,environment:e.environment??"production",setActive:e.setActive}),p(r,n)}a(xn,"saveOpenPondAccount");function bn(e,n,t){let o=l(t),r=e.findIndex(i=>P(i.handle,n)&&b(i.baseUrl,o));if(r!==-1)return r;let s=e.map((i,c)=>({account:i,index:c})).filter(({account:i})=>P(i.handle,n));if(s.length===1)return s[0].index;if(s.length>1)throw new Error(`Multiple OpenPond accounts match ${n}; select one with its base URL.`);return-1}a(bn,"findAccountIndex");async function Un(e){let n=e.handle.trim();if(!n)throw new Error("OpenPond account handle is required.");return await L(t=>{let o=(t.accounts??[]).map(m=>({...m})),r=bn(o,n,e.baseUrl);if(r===-1)throw new Error(`OpenPond account not found: ${n}`);let s=o[r],i=A(t.activeProfile),c=!!(i&&U(s,i));o.splice(r,1),t.accounts=o,(c||!i||!o.some(m=>U(m,i)))&&(o[0]?t.activeProfile=_(o[0]):delete t.activeProfile)}),p()}a(Un,"removeOpenPondAccount");async function kn(){let e;return await L(n=>{let t=A(n.activeProfile),o=(n.accounts??[]).map(s=>({...s})),r=t?o.findIndex(s=>U(s,t)):0;if(r<0||!o[r])throw new Error("No active OpenPond account to log out.");e={...o[r]},delete e.apiKey,delete e.session,o[r]=e,n.accounts=o}),p(e.handle,e.baseUrl)}a(kn,"signOutOpenPondAccount");function Bn(e,n,t){let o=l(t),r=e.findIndex(i=>P(i.handle,n)&&b(i.baseUrl,o));if(r!==-1)return r;let s=e.map((i,c)=>({account:i,index:c})).filter(({account:i})=>P(i.handle,n));if(s.length===1)return s[0].index;if(s.length>1)throw new Error(`Multiple OpenPond accounts match ${n}; select one with its current base URL.`);return-1}a(Bn,"findAccountIndex");function ce(e,n,t){if(t===void 0)return;let o=l(t);if(o){e[n]=o;return}(t===null||t.trim()==="")&&delete e[n]}a(ce,"applyOptionalUrl");async function En(e){let n=e.handle.trim();if(!n)throw new Error("OpenPond account handle is required.");let t;return await L(o=>{let r=(o.accounts??[]).map(f=>({...f})),s=Bn(r,n,e.currentBaseUrl);if(s===-1)throw new Error(`OpenPond account not found: ${n}`);let i=r[s];if(t={...i},e.apiKey!==void 0){let f=e.apiKey.trim();if(!f)throw new Error("OpenPond API key cannot be empty.");t.apiKey=f,delete t.session,delete t.token}if(ce(t,"baseUrl",e.baseUrl),ce(t,"apiBaseUrl",e.apiBaseUrl),ce(t,"chatApiBaseUrl",e.chatApiBaseUrl),e.environment===null?delete t.environment:typeof e.environment=="string"&&e.environment.trim()&&(t.environment=e.environment.trim()),r.findIndex((f,w)=>w!==s&&P(f.handle,t.handle)&&b(f.baseUrl,t.baseUrl))!==-1)throw new Error("Another OpenPond account already uses that handle and base URL.");let m=A(o.activeProfile),g=!!(m&&U(i,m));r[s]=t,o.accounts=r,o.activeProfile=e.setActive||g?_(t):o.activeProfile}),p(t.handle,t.baseUrl)}a(En,"updateOpenPondAccountConfig");async function vn(e){let n=await p();if(!n.token)throw new Error("OpenPond is signed out. Add an account before reading app config.");return me(n.apiBaseUrl,n.token,e.appId)}a(vn,"getOpenPondAppEnvironment");function _n(e,n){let t="",o=a(r=>{r.startsWith(e)&&n(JSON.parse(r.slice(e.length)))},"processLine");return{push(r){for(t+=r;;){let s=Sn(t);if(s<0)return;let i=t.slice(0,s).replace(/\r$/,""),c=t[s]==="\r"&&t[s+1]===`
|
|
5
|
+
`?2:1;t=t.slice(s+c),o(i)}},flush(){let r=t.trimEnd();t="",r&&o(r)}}}a(_n,"createReadyLineParser");function Sn(e){let n=e.indexOf(`
|
|
6
|
+
`),t=e.indexOf("\r");return n<0?t:t<0?n:Math.min(n,t)}a(Sn,"nextLineEnd");export{p as a,Ke as b,An as c,Ie as d,gn as e,Je as f,Ye as g,Qe as h,ve as i,xn as j,Un as k,kn as l,En as m,vn as n,un as o,_n as p,pn as q};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
-
import{a as be,b as Ae,c as Ie,d as ve}from"./chunk-
|
|
2
|
+
import{a as be,b as Ae,c as Ie,d as ve}from"./chunk-DR3XPQRZ.js";import{c as O,i as L}from"./chunk-QPZNN5Q3.js";import{a as Re}from"./chunk-6FA3GG5B.js";import{f as Oe}from"./chunk-H7IWJN7L.js";import{a as s}from"./chunk-FTQLQJQV.js";var J=class extends Error{static{s(this,"OpenPondProfileSetupRequiredError")}code="agent_source_setup_required";details;constructor(t,n){let o=n.blockingRequirements.map(r=>r.label);super(["agent_source_setup_required",`Profile action ${t} has unresolved required setup.`,o.length?`Missing setup: ${o.join(", ")}`:""].filter(Boolean).join(`
|
|
3
3
|
`)),this.name="OpenPondProfileSetupRequiredError",this.details={error:"agent_source_setup_required",actionId:t,setupGate:n,missing:o,blockingSetupRequirements:n.blockingRequirements,setupRequirements:n.requirements}}};function W(e){let t=new Map;for(let a of e.sourceSetupRequirements??[]){let l=bt(a);if(e.actionId&&l&&l!==e.actionId&&h(a.actionName)!==e.actionId&&h(a.sourceActionId)!==e.actionId)continue;let c=Ee({record:a,source:"source_upload_metadata",actionId:l});c&&t.set(c.ref,c)}for(let a of e.actionCatalog)if(!(e.actionId&&a.id!==e.actionId&&a.name!==e.actionId))for(let l of a.setupRequirements??[]){let c=Ee({record:l,source:"action_catalog",actionId:a.id});c&&t.set(c.ref,c)}let n=Array.from(t.values()),o=n.filter(a=>a.blocking),r=n.filter(a=>!a.required&&!ne(a.status)).length,i=n.filter(a=>ne(a.status)).length;return{status:It(o),requirementCount:n.length,blockingCount:o.length,optionalMissingCount:r,readyCount:i,requirements:n,blockingRequirements:o}}s(W,"buildOpenPondProfileSetupGate");function oe(e,t){if(t.blockingRequirements.length>0)throw new J(e,t)}s(oe,"assertOpenPondProfileActionReady");function Rt(e){let t=e.actionId?`${e.actionId}: `:"",n=e.required?"required":"optional";return`${t}${e.label} (${n}, ${e.status})`}s(Rt,"formatOpenPondProfileSetupRequirement");function Ee(e){let t=e.source==="action_catalog"&&h(e.record.source)==="source_upload_metadata"?"source_upload_metadata":e.source,n=h(e.record.kind)??h(e.record.type),o=h(e.record.label)??h(e.record.name)??h(e.record.key)??h(e.record.provider)??h(e.record.tool)??h(e.record.command)??h(e.record.packageName)??h(e.record.path)??h(e.record.repo)??h(e.record.url)??h(e.record.id)??n??"setup requirement",r=e.record.required!==!1,i=At(e.record);return{ref:[t,e.actionId??"source",n??"requirement",o].join(":"),source:t,actionId:e.actionId,kind:n,label:o,status:i,required:r,blocking:r&&!ne(i)}}s(Ee,"setupRequirementFromRecord");function bt(e){return h(e.actionId)??h(e.sourceActionId)??h(e.actionName)}s(bt,"setupRequirementActionId");function At(e){let t=h(e.status)??h(e.state);return t?t==="satisfied"||t==="connected"||t==="provided"?"ready":t:typeof e.satisfied=="boolean"?e.satisfied?"ready":"setup_required":typeof e.ready=="boolean"&&e.ready?"ready":"setup_required"}s(At,"setupStatus");function It(e){return e.length===0?"ready":e.some(t=>["blocked","unsupported","unsupported_dependency","stale"].includes(t.status))?"blocked":"setup_required"}s(It,"gateStatus");function ne(e){return e==="ready"||e==="disabled"}s(ne,"isReadyStatus");function h(e){return typeof e=="string"&&e.trim()?e.trim():null}s(h,"text");import{stat as qt}from"node:fs/promises";import se from"node:path";import{spawn as vt}from"node:child_process";import{existsSync as re}from"node:fs";import{readFile as Et,rm as Kn,writeFile as _e}from"node:fs/promises";import ie from"node:path";var Le=["**/node_modules/","**/.bun/","**/.env","**/.env.*","**/.openpond/traces/","**/.openpond/vendor/","**/.openpond/eval-results.json","**/.openpond/artifact-index.json","**/.openpond/source-upload-cache.json",""].join(`
|
|
4
4
|
`);async function Me(e){if(!re(ie.join(e,".git"))){let i=await R(e,["init","-b","main"]);if(i.code!==0)throw new Error(H("git init",i))}let t=ie.join(e,".gitignore");if(re(t)?await xt(t):await _e(t,Le,"utf8"),await _t(e))return;let n=await N(e);if(!n.dirty&&n.files.length===0)return;let o=await R(e,["add","-A"]);if(o.code!==0)throw new Error(H("git add",o));let r=await R(e,["commit","-m","Initialize OpenPond profile"],{env:{...process.env,GIT_AUTHOR_NAME:process.env.GIT_AUTHOR_NAME||"OpenPond",GIT_AUTHOR_EMAIL:process.env.GIT_AUTHOR_EMAIL||"openpond@example.invalid",GIT_COMMITTER_NAME:process.env.GIT_COMMITTER_NAME||"OpenPond",GIT_COMMITTER_EMAIL:process.env.GIT_COMMITTER_EMAIL||"openpond@example.invalid"}});if(r.code!==0&&!/nothing to commit/i.test(r.stdout+r.stderr))throw new Error(H("git commit",r))}s(Me,"ensureProfileGitRepo");async function xt(e){let t=await Et(e,"utf8").catch(()=>""),n=Le.split(/\r?\n/).map(r=>r.trim()).filter(Boolean).filter(r=>!t.split(/\r?\n/).some(i=>i.trim()===r));if(n.length===0)return;let o=t.endsWith(`
|
|
5
5
|
`)||t.length===0?"":`
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
+
import{Bb as Q,c as D,e as C,f as W,g as G,i as K}from"./chunk-IFP6W4OW.js";import{b as e}from"./chunk-ES2ISFJC.js";import{a as A,c as B,f as L,h as g}from"./chunk-H7IWJN7L.js";import{a as o}from"./chunk-FTQLQJQV.js";import R from"node:path";import{AsyncLocalStorage as je}from"node:async_hooks";import{promises as Y}from"node:fs";var X=new je;function Ge(t,r=!1){let a=X.getStore();a&&(r&&(a.length=0),a.push(t))}o(Ge,"onStartupFailure");async function Ke(t,r){await Q(t);let a;try{a=await G(R.join(g(t).runtime,"server-owner"),100)}catch(i){if(i instanceof B&&i.issue.code==="STORAGE_BUSY"){let l=await K(R.join(g(t).runtime,"endpoint.json"),()=>null);throw new B({code:"RUNTIME_ALREADY_RUNNING",path:t,message:"An OpenPond runtime already owns this home.",action:l?.url?`Connect to the existing runtime at ${l.url}, or stop it before starting another.`:"Stop the existing runtime before starting another with this home."})}throw i}let n=[];try{let i=await A(t,()=>X.run(n,r)),l=i.close.bind(i);n.length=0;let d;return{...i,close:o(()=>d??=(async()=>{try{await A(t,l)}finally{await Y.rm(R.join(g(t).runtime,"endpoint.json"),{force:!0}),await a()}})(),"close")}}catch(i){try{for(let l of n.reverse())await Promise.resolve().then(()=>A(t,l)).catch(()=>{});await Y.rm(R.join(g(t).runtime,"endpoint.json"),{force:!0})}finally{await a()}throw i}}o(Ke,"ownHomeRuntime");async function Qe(t,r,a){await C(R.join(g(t).runtime,"endpoint.json"),JSON.stringify({schemaVersion:"openpond.runtimeEndpoint.v1",pid:process.pid,url:r,serverId:a}))}o(Qe,"publishRuntimeEndpoint");function Ze(t){if(!t.maxContextTokens||!t.usableContextTokens)return{shouldCompact:!1,projectedTokens:t.projectedTokens,thresholdTokens:Number.MAX_SAFE_INTEGER,usableContextTokens:0,maxContextTokens:0,tokenSource:"heuristic"};let r=Math.max(.01,Math.min(1,(t.triggerPercent??85)/100)),a=Math.max(1,Math.floor(t.usableContextTokens*r));return{shouldCompact:t.projectedTokens>=a,projectedTokens:t.projectedTokens,thresholdTokens:a,usableContextTokens:t.usableContextTokens,maxContextTokens:t.maxContextTokens,tokenSource:"heuristic"}}o(Ze,"agentCompactionDecision");async function et(t){await t.started();try{return await t.compact()}catch(r){throw await t.failed(r),r}}o(et,"runAgentCompaction");async function tt(t){let r=t.host.projectEvents(t.events),a=t.host.selectEvents(r,t.maxContextTokens),{summaryEvents:n,preservedEvents:i,preservedEventIds:l}=a;if(n.length===0)throw new Error("There is not enough prior context to compact.");let d=t.host.normalizeRecords(n),p=t.host.normalizeRecords(i),f=t.host.buildFileLedger(t.host.normalizeRecords(r)),h=t.host.serializeRecords(d,t.host.inputCharBudget(t.maxContextTokens));if(!h.text.trim())throw new Error("There is not enough prior context to compact.");let q=t.host.buildSummaryMessages({serializedHistory:h.text,fileLedger:f}),S=Date.now(),j=(await t.host.streamSummary({model:t.model,messages:q,signal:t.signal})).trim(),N=Date.now()-S;if(!j)throw new Error("Compaction summary was empty.");let m=t.host.estimateProjection({events:r,preservedEvents:i,summary:j}),b=t.host.createMetrics({sourceEvents:r.length,summarizedEvents:n.length,preservedEvents:i.length,sourceRecords:h.sourceRecordCount,includedRecords:h.includedRecordCount,omittedRecords:h.omittedRecordCount,preservedRecords:p.length,truncatedRecords:h.truncatedRecordCount,summaryInputTruncated:h.inputTruncated,sourceSelectionStrategy:h.selectionStrategy,summaryInputChars:h.inputChars,retainedTailTokens:a.retainedTailTokens,retainedTailBudgetTokens:a.retainedTailBudgetTokens,finalProviderContextTokens:m.inputTokensAfter,durationMs:N,fileLedgerEntries:f.length,splitTurnId:a.splitTurnId});return{summary:j,model:t.model,compactedThroughEventId:r[r.length-1]?.id??null,compactedThroughTurnId:t.host.lastTurnId(r),preservedFromEventId:i[0]?.id??null,preservedEventIds:l,preservedResourceRefs:t.host.durableResourceRefs(t.events),sourceEventCount:n.length,preservedEventCount:i.length,fileLedger:f,inputTokensBefore:m.inputTokensBefore,inputTokensAfter:m.inputTokensAfter,maxContextTokens:t.maxContextTokens,tokenSource:"heuristic",metrics:b}}o(tt,"runAgentCompactionProgram");var _="2026-09-20",it=["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","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"],ee=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(),te=e.object({jsonrpc:e.literal("2.0"),method:e.string().trim().min(1),params:e.unknown().optional()}).strict(),M=e.object({jsonrpc:e.literal("2.0"),id:e.union([e.string(),e.number()]),result:e.unknown()}).strict(),U=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(),st=e.union([ee,te,M,U]),ye=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(),H=class{static{o(this,"AgentJsonRpcDispatcher")}#e;#t=null;#r=!1;constructor(r){this.#e=r}get initialized(){return this.#r}async handle(r){let a=te.safeParse(r);if(a.success&&!("id"in r)){if(a.data.method==="initialized"){if(!this.#t)throw new x(-32002,"initialize must be called first");this.#r=!0}return null}let n=ee.safeParse(r);if(!n.success)return Z(null,-32600,"Invalid Request",n.error.flatten());let i=n.data;try{let l=await this.#n(i.method,i.params);return{jsonrpc:"2.0",id:i.id,result:l}}catch(l){let d=l instanceof x?l:new x(-32603,l instanceof Error?l.message:String(l));return Z(i.id,d.code,d.message,d.data)}}async#n(r,a){if(r==="initialize"){let n=ye.parse(a);if(n.protocolVersion!==_)throw new x(-32001,"Incompatible agent protocol version",{requested:n.protocolVersion,supported:_});return this.#t=n,{protocolVersion:_,server:{name:"openpond-app-server",version:"1"},capabilities:await this.#e.capabilities()}}if(!this.#r)throw new x(-32002,"initialized notification is required");switch(r){case"runtime/capabilities":return this.#e.capabilities(a);case"thread/start":return this.#e.threadStart(a);case"thread/resume":return this.#e.threadResume(a);case"thread/read":return this.#e.threadRead(a);case"turn/start":return this.#e.turnStart(a);case"turn/steer":return this.#e.turnSteer(a);case"task/inbox":return this.#e.taskInbox(a);case"task/queue":return this.#e.taskQueue(a);case"task/inputUpdate":return this.#e.taskInputUpdate(a);case"turn/interrupt":return this.#e.turnInterrupt(a);case"approval/resolve":return this.#e.approvalResolve(a);case"userInput/resolve":return this.#e.userInputResolve(a);case"profile/workflows":return this.#e.profileWorkflows(a);case"profile/evaluations":return this.#e.profileEvaluations(a);case"profile/trainingSource":return this.#e.profileTrainingSource(a);case"profile/evaluations/prepare":return this.#e.profileEvaluationPrepare(a);case"profile/evaluations/run":return this.#e.profileEvaluationRun(a);case"profile/evaluations/runSuite":return this.#e.profileEvaluationRunSuite(a);case"profile/evaluations/executeCase":return this.#e.profileEvaluationExecuteCase(a);case"profile/evaluations/executeRun":return this.#e.profileEvaluationExecuteRun(a);case"profile/evaluations/compare":return this.#e.profileEvaluationCompare(a);case"profile/evaluations/report":return this.#e.profileEvaluationReport(a);case"harness/inspect":return this.#e.harnessInspect(a);case"harness/proposalReview":return this.#e.harnessProposalReview(a);case"harness/review":return this.#e.harnessReview(a);case"harness/acceptEvaluationReview":return this.#e.harnessAcceptEvaluationReview(a);case"harness/materializeEvaluationTaskset":return this.#e.harnessMaterializeEvaluationTaskset(a);case"harness/runEvaluationBaseline":return this.#e.harnessRunEvaluationBaseline(a);case"harness/validate":return this.#e.harnessValidate(a);case"harness/backgroundReview":return this.#e.harnessBackgroundReview(a);case"harness/diff":return this.#e.harnessDiff(a);case"harness/rollback":return this.#e.harnessRollback(a);case"refiner/inspect":return this.#e.refinerInspect(a);case"refiner/update":return this.#e.refinerUpdate(a);case"refiner/activate":return this.#e.refinerActivate(a);case"refiner/rollback":return this.#e.refinerRollback(a);default:throw new x(-32601,`Method not found: ${r}`)}}},x=class extends Error{static{o(this,"JsonRpcDispatchError")}code;data;constructor(r,a,n){super(a),this.code=r,this.data=n}};function Z(t,r,a,n){return{jsonrpc:"2.0",id:t,error:{code:r,message:a,...n===void 0?{}:{data:n}}}}o(Z,"jsonRpcError");var c=e.string().trim().min(1).max(200),z=e.string().trim().min(1).max(32e3),T=e.number().int().nonnegative(),re=e.object({id:c,sessionId:c,senderSessionId:c.nullable(),senderKind:e.enum(["user","task","runtime"]),kind:e.enum(["steer","message","followup","queued","result"]),body:z,payload:e.record(e.string(),e.unknown()),idempotencyKey:c,replyTo:c.nullable(),expectedTurnId:c.nullable()}).strict(),Se=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:z}).strict(),e.object({action:e.literal("steer"),expectedRevision:e.number().int().positive(),expectedTurnId:c}).strict()]),ne=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(),ae=e.record(e.string(),e.unknown()),Re=e.enum(["queued","running","completed","failed","cancelled","needs_resume"]),Te=e.object({parentSessionId:c.nullable().optional(),childSessionId:c.nullable().optional(),status:e.array(Re).nullable().optional(),afterId:e.string().max(200),limit:e.number().int().min(1).max(10)}).strict(),ie=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(z).max(100)}).strict(),e.object({action:e.literal("taskWorkAreas"),sessionId:c}).strict(),e.object({action:e.literal("admitTaskInput"),input:re}).strict(),e.object({action:e.literal("admitTaskInputs"),inputs:e.array(re).max(50)}).strict(),e.object({action:e.literal("rejectTaskInput"),id:c,error:z}).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:Se}).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:ne}).strict(),e.object({action:e.literal("settleTaskWait"),id:c,state:ne.shape.state}).strict(),e.object({action:e.literal("taskWaitsForSession"),sessionId:c,afterId:e.string().max(200)}).strict(),e.object({action:e.literal("commitSubagentCompletion"),value:ae,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:ae}).strict(),e.object({action:e.literal("getSubagentRun"),id:c}).strict(),e.object({action:e.literal("listSubagentRuns"),query:Te}).strict()]);var V=e.string().trim().min(1).max(191),se=e.object({createdAt:e.string().min(1),id:V}).strict(),oe=e.enum(["trigger_decision","route_decision","refiner_outcome","proposal","targeted_validation","apply_receipt"]),ce=e.discriminatedUnion("action",[e.object({action:e.literal("put_artifact"),workspaceId:V,kind:oe,artifact:e.record(e.string(),e.unknown())}).strict(),e.object({action:e.literal("artifact_page"),workspaceId:V,kind:oe,before:se.nullable(),limit:e.number().int().min(1).max(200)}).strict(),e.object({action:e.literal("pending_trigger_page"),workspaceId:V,before:se.nullable(),limit:e.number().int().min(1).max(200)}).strict()]);var v=e.string().trim().min(1).max(200),le=e.string().regex(/^[a-f0-9]{64}$/),Ee=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()}),ue=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:le,validation:e.array(Ee).max(32)}).strict(),de=e.object({sessionId:v,turnId:v,output:ue}).strict(),pe=e.object({uploadId:v,index:e.number().int().min(0).max(1024),offset:e.number().int().min(0).max(1e7),sha256:le,contentsBase64:e.string().min(1).max(131072)}).strict(),me=e.object({uploadId:v}).strict(),Pe=ue.pick({id:!0,title:!0,sourceTaskId:!0,sourceTurnId:!0,revision:!0,createdAt:!0,validation:!0}),he=e.object({sessionId:v,turnId:v,output:Pe,sandboxPath:e.string().trim().min(1).max(4096)}).strict();var E=e.string().trim().min(1).max(200),qe=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:E.optional(),payload:e.unknown().optional(),processId:E.optional(),failOnUnpreservedChanges:e.boolean().optional()}).strict().superRefine((t,r)=>{t.type!=="create"&&!t.sandboxId&&r.addIssue({code:"custom",message:"Sandbox identity is required."}),t.type==="process_get"&&!t.processId&&r.addIssue({code:"custom",message:"Process identity is required."})}),fe=e.object({action:qe}).strict(),be=e.object({sessionId:E,turnId:E,name:E}).strict();var u=1,s=e.string().trim().min(1).max(191),I=e.number().int().min(1).max(200),kt=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(),ge=e.discriminatedUnion("operation",[e.object({contractVersion:e.literal(u),requestId:s,operation:e.literal("sandbox/request"),params:fe}).strict(),e.object({contractVersion:e.literal(u),requestId:s,operation:e.literal("embedding/authorize"),params:be}).strict(),e.object({contractVersion:e.literal(u),requestId:s,operation:e.literal("output/begin"),params:de}).strict(),e.object({contractVersion:e.literal(u),requestId:s,operation:e.literal("output/chunk"),params:pe}).strict(),e.object({contractVersion:e.literal(u),requestId:s,operation:e.literal("output/complete"),params:me}).strict(),e.object({contractVersion:e.literal(u),requestId:s,operation:e.literal("output/saveSandboxFile"),params:he}).strict(),e.object({contractVersion:e.literal(u),requestId:s,operation:e.literal("settings/get"),params:e.object({}).strict()}).strict(),e.object({contractVersion:e.literal(u),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(u),requestId:s,operation:e.literal("harness/overlay/get"),params:e.object({runId:s}).strict()}).strict(),e.object({contractVersion:e.literal(u),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(u),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(u),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(u),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:I}).strict()}).strict(),e.object({contractVersion:e.literal(u),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(u),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(u),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(u),requestId:s,operation:e.literal("task-inbox/execute"),params:ie}).strict(),e.object({contractVersion:e.literal(u),requestId:s,operation:e.literal("refiner/execute"),params:e.object({action:ce}).strict()}).strict(),e.object({contractVersion:e.literal(u),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:I}).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(u),requestId:s,operation:e.literal("approval/get"),params:e.object({approvalId:s}).strict()}).strict(),e.object({contractVersion:e.literal(u),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(u),requestId:s,operation:e.literal("usage/getByRequestId"),params:e.object({requestId:s}).strict()}).strict(),e.object({contractVersion:e.literal(u),requestId:s,operation:e.literal("usage/upsert"),params:e.object({record:e.record(e.string(),e.unknown())}).strict()}).strict(),e.object({contractVersion:e.literal(u),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:I}).strict()}).strict(),e.object({contractVersion:e.literal(u),requestId:s,operation:e.literal("capabilities"),params:e.object({}).strict()}).strict(),e.object({contractVersion:e.literal(u),requestId:s,operation:e.literal("session/count"),params:e.object({}).strict()}).strict(),e.object({contractVersion:e.literal(u),requestId:s,operation:e.literal("session/get"),params:e.object({sessionId:s}).strict()}).strict(),e.object({contractVersion:e.literal(u),requestId:s,operation:e.literal("session/page"),params:e.object({afterId:s.nullable(),limit:I}).strict()}).strict(),e.object({contractVersion:e.literal(u),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(u),requestId:s,operation:e.literal("turn/count"),params:e.object({sessionId:s}).strict()}).strict(),e.object({contractVersion:e.literal(u),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(u),requestId:s,operation:e.literal("turn/get"),params:e.object({turnId:s}).strict()}).strict(),e.object({contractVersion:e.literal(u),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(u),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(u),requestId:s,operation:e.literal("turn/page"),params:e.object({sessionId:s,beforeSortIndex:e.number().int().min(0).nullable().optional(),limit:I}).strict()}).strict(),e.object({contractVersion:e.literal(u),requestId:s,operation:e.literal("thread/turnPage"),params:e.object({sessionId:s,beforeSortIndex:e.number().int().min(0).nullable().optional(),limit:I}).strict()}).strict(),e.object({contractVersion:e.literal(u),requestId:s,operation:e.literal("event/append"),params:e.object({event:e.record(e.string(),e.unknown())}).strict()}).strict(),e.object({contractVersion:e.literal(u),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:I}).strict()}).strict(),e.object({contractVersion:e.literal(u),requestId:s,operation:e.literal("events/latestAssistantText"),params:e.object({sessionId:s}).strict()}).strict()]),jt=e.object({contractVersion:e.literal(u),operations:e.array(e.enum(["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/write","harness/state/read","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(40),allowedTools:e.array(s).max(128),maxPageSize:I,maxRequestBytes:e.number().int().min(1).max(1e6),maxInFlight:e.number().int().min(1).max(64)}).strict();var ve=class{static{o(this,"AgentHostStorageClient")}#e=new Map;#t=null;#r=1;bind(r){if(this.#t)throw new Error("Host storage client is already bound.");this.#t=r}async request(r,a=15e3){let n=ge.parse(r);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 i=`host-storage:${this.#r++}`,l={jsonrpc:"2.0",id:i,method:"host/storage",params:n};if(Buffer.byteLength(JSON.stringify(l))>256e3)throw new Error("Host storage request is too large.");let d=new Promise((p,f)=>{let h=setTimeout(()=>{this.#e.delete(i),f(new Error("Host storage request timed out."))},Math.max(1,Math.min(6e4,a)));this.#e.set(i,{resolve:p,reject:f,timer:h})});try{await this.#t(l)}catch(p){let f=this.#e.get(i);f&&(clearTimeout(f.timer),this.#e.delete(i),f.reject(p instanceof Error?p:new Error(String(p))))}return d}accept(r){let a=M.safeParse(r),n=a.success?null:U.safeParse(r),i=a.success?a.data:n?.success?n.data:null;if(!i||typeof i.id!="string"||!i.id.startsWith("host-storage:"))return!1;let l=this.#e.get(i.id);return l?(clearTimeout(l.timer),this.#e.delete(i.id),Buffer.byteLength(JSON.stringify(i))>1e6?(l.reject(new Error("Host storage response is too large.")),!0):("error"in i?l.reject(new Error(`Host storage request failed: ${i.error.message}`)):l.resolve(i.result),!0)):!0}close(){this.#t=null;for(let r of this.#e.values())clearTimeout(r.timer),r.reject(new Error("Host storage transport closed."));this.#e.clear()}};import{createHash as Ae}from"node:crypto";function $(t){if(t===null||typeof t=="boolean"||typeof t=="string")return t;if(typeof t=="number"){if(!Number.isFinite(t))throw new Error("Canonical JSON cannot encode a non-finite number.");return t}if(Array.isArray(t))return t.map($);if(typeof t=="object"){let r={};for(let a of Object.keys(t).sort()){let n=t[a];n!==void 0&&(r[a]=$(n))}return r}throw new Error(`Canonical JSON cannot encode ${typeof t}.`)}o($,"canonicalJson");function y(t){return Ae("sha256").update(JSON.stringify($(t)),"utf8").digest("hex")}o(y,"canonicalHash");var Ce=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"]),_e=e.object({sequence:e.number().int().nonnegative(),name:Ce,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 Ht(t){return y(_e.parse(t))}o(Ht,"canonicalEventHash");import{once as He}from"node:events";import{createInterface as ze}from"node:readline";async function we(t){let r=null,a=Promise.resolve(),n=[],i=o(m=>(a=a.then(async()=>{t.writable.write(`${JSON.stringify(m)}
|
|
3
|
+
`)||await He(t.writable,"drain")}),a),"write");t.hostStorageClient?.bind(m=>i(m));let l=o(()=>{if(!(!r?.initialized||n.length===0))for(let m of n.splice(0))i(m)},"flushPendingNotifications"),d,p=new Set,f=ze({input:t.readable,crlfDelay:1/0}),h=[],q=!1,S=null,j=o(async m=>{let b=r;if(!b)throw new Error("Agent runtime dispatcher is unavailable.");let w=(async()=>{let J=await b.handle(m);J&&await i(J),l()})(),F=m&&typeof m=="object"&&"method"in m?m.method:null;if(F==="initialize"||F==="initialized"){await w;return}p.add(w),w.finally(()=>p.delete(w))},"dispatch"),N=(async()=>{let m=typeof t.host=="function"?await t.host():t.host;for(r=new H(m),d=m.subscribe?.(b=>{if(!r?.initialized){n.push(b);return}i(b)});h.length>0;)await j(h.shift());q=!0})().catch(m=>{S=m,f.close()});try{for await(let m of f){if(!m.trim())continue;if(Buffer.byteLength(m,"utf8")>1e6){await i({jsonrpc:"2.0",id:null,error:{code:-32600,message:"Request exceeds the JSONL size limit"}});continue}let b;try{b=JSON.parse(m)}catch{await i({jsonrpc:"2.0",id:null,error:{code:-32700,message:"Parse error"}});continue}if(!t.hostStorageClient?.accept(b))if(q)await j(b);else if(h.length>=64){let w=b&&typeof b=="object"&&"id"in b?b.id:null;(typeof w=="string"||typeof w=="number")&&await i({jsonrpc:"2.0",id:w,error:{code:-32e3,message:"Runtime startup request limit exceeded"}})}else h.push(b)}if(await N,S)throw S;await Promise.all(p),await a}finally{t.hostStorageClient?.close(),d?.()}}o(we,"runAgentJsonlServer");var O=e.object({threadId:e.string().trim().min(1)}).passthrough(),Ve=e.object({session:e.unknown()}).strict(),P=O.extend({input:e.unknown()}),Oe=P.extend({idempotencyKey:e.string().trim().min(1).max(200)}),Ne=P.extend({inputId:e.string().trim().min(1)}),Be=O.extend({reason:e.string().trim().min(1).optional()}),Me=e.object({approvalId:e.string().trim().min(1),input:e.unknown()}).strict();function xe(t){let r=o(async(n,i,l)=>{let d=performance.now();t.telemetry?.({method:n,phase:"started",threadId:i,durationMs:null,errorClass:null});try{let p=await l();return t.telemetry?.({method:n,phase:"completed",threadId:i,durationMs:performance.now()-d,errorClass:null}),p}catch(p){throw t.telemetry?.({method:n,phase:"failed",threadId:i,durationMs:performance.now()-d,errorClass:p instanceof Error?p.name:"UnknownError"}),p}},"run"),a=o(async(n,i="thread/read")=>{let{threadId:l}=O.parse(n);return r(i,l,async()=>{let[d,p,f]=await Promise.all([t.readThread(l),t.listTurns(l),t.listEvents(l)]);return{thread:d,turns:p,events:f}})},"threadRead");return{capabilities:o(n=>r("runtime/capabilities",null,()=>t.capabilities(n)),"capabilities"),threadStart:o(async n=>r("thread/start",null,async()=>({thread:await t.createThread(Ve.parse(n).session)})),"threadStart"),threadResume:o(n=>a(n,"thread/resume"),"threadResume"),threadRead:a,turnStart:o(async n=>{let i=P.parse(n);return r("turn/start",i.threadId,async()=>({turn:await t.startTurn(i.threadId,i.input)}))},"turnStart"),turnSteer:o(async n=>{let i=P.parse(n);return r("turn/steer",i.threadId,async()=>({receipt:await t.steerTurn(i.threadId,i.input)}))},"turnSteer"),taskInbox:o(async n=>{let{threadId:i}=O.parse(n);return r("task/inbox",i,()=>t.readTaskInbox(i))},"taskInbox"),taskQueue:o(async n=>{let i=Oe.parse(n);return r("task/queue",i.threadId,()=>t.queueTaskInput(i.threadId,i.input,i.idempotencyKey))},"taskQueue"),taskInputUpdate:o(async n=>{let i=Ne.parse(n);return r("task/inputUpdate",i.threadId,()=>t.updateTaskInput(i.threadId,i.inputId,i.input))},"taskInputUpdate"),turnInterrupt:o(async n=>{let i=Be.parse(n);return r("turn/interrupt",i.threadId,async()=>({turn:await t.interruptTurn(i.threadId,i.reason)}))},"turnInterrupt"),approvalResolve:o(async n=>{let i=Me.parse(n);return r("approval/resolve",null,async()=>({approval:await t.resolveApproval(i.approvalId,i.input)}))},"approvalResolve"),userInputResolve:o(async n=>{let i=P.parse(n);return r("userInput/resolve",i.threadId,async()=>(t.isTurnActive(i.threadId)&&await t.waitForTurnSettlement(i.threadId),{turn:await t.startTurn(i.threadId,i.input)}))},"userInputResolve"),profileWorkflows:o(()=>r("profile/workflows",null,()=>t.listProfileWorkflows()),"profileWorkflows"),profileEvaluations:o(n=>r("profile/evaluations",null,()=>t.listProfileEvaluations(n)),"profileEvaluations"),profileTrainingSource:o(()=>r("profile/trainingSource",null,()=>t.loadProfileTrainingSource()),"profileTrainingSource"),profileEvaluationPrepare:o(n=>r("profile/evaluations/prepare",null,()=>t.prepareProfileEvaluationRun(n)),"profileEvaluationPrepare"),profileEvaluationRun:o(n=>r("profile/evaluations/run",null,()=>t.runPreparedProfileEvaluation(n)),"profileEvaluationRun"),profileEvaluationRunSuite:o(n=>r("profile/evaluations/runSuite",null,()=>t.runProfileEvaluationSuite(n)),"profileEvaluationRunSuite"),profileEvaluationExecuteCase:o(n=>r("profile/evaluations/executeCase",null,()=>t.executeProfileEvaluationCase(n)),"profileEvaluationExecuteCase"),profileEvaluationExecuteRun:o(n=>r("profile/evaluations/executeRun",null,()=>t.executeProfileEvaluationRun(n)),"profileEvaluationExecuteRun"),profileEvaluationCompare:o(n=>r("profile/evaluations/compare",null,()=>t.compareProfileEvaluationRuns(n)),"profileEvaluationCompare"),profileEvaluationReport:o(n=>r("profile/evaluations/report",null,()=>t.buildProfileEvaluationReport(n)),"profileEvaluationReport"),harnessInspect:o(()=>r("harness/inspect",null,()=>t.inspectHarness()),"harnessInspect"),harnessProposalReview:o(n=>r("harness/proposalReview",null,()=>t.reviewHarnessProposal(n)),"harnessProposalReview"),harnessReview:o(n=>r("harness/review",null,()=>t.reviewHarness(n)),"harnessReview"),harnessAcceptEvaluationReview:o(n=>r("harness/acceptEvaluationReview",null,()=>t.acceptHarnessEvaluationReview(n)),"harnessAcceptEvaluationReview"),harnessMaterializeEvaluationTaskset:o(n=>r("harness/materializeEvaluationTaskset",null,()=>t.materializeHarnessEvaluationTaskset(n)),"harnessMaterializeEvaluationTaskset"),harnessRunEvaluationBaseline:o(n=>r("harness/runEvaluationBaseline",null,()=>t.runHarnessEvaluationBaseline(n)),"harnessRunEvaluationBaseline"),harnessValidate:o(()=>r("harness/validate",null,()=>t.validateHarness()),"harnessValidate"),harnessBackgroundReview:o(n=>r("harness/backgroundReview",null,()=>t.updateHarnessBackgroundReview(n)),"harnessBackgroundReview"),harnessDiff:o(n=>r("harness/diff",null,()=>t.diffHarness(n)),"harnessDiff"),harnessRollback:o(n=>r("harness/rollback",null,()=>t.rollbackHarness(n)),"harnessRollback"),refinerInspect:o(()=>r("refiner/inspect",null,()=>t.inspectRefiner()),"refinerInspect"),refinerUpdate:o(n=>r("refiner/update",null,()=>t.updateRefiner(n)),"refinerUpdate"),refinerActivate:o(n=>r("refiner/activate",null,()=>t.activateRefiner(n)),"refinerActivate"),refinerRollback:o(n=>r("refiner/rollback",null,()=>t.rollbackRefiner(n)),"refinerRollback"),subscribe:t.subscribeEvents&&t.eventNotification?n=>t.subscribeEvents(i=>n(t.eventNotification(i))):void 0}}o(xe,"createAgentRuntimeService");var k=e.string().regex(/^[a-f0-9]{64}$/),tr=e.object({harnessReleaseHash:k,instructionsHash:k,skillHashes:e.record(e.string(),k),agentAssetHashes:e.record(e.string(),k),toolCatalogHash:k,memoryRevision:e.number().int().nonnegative().nullable()}).strict(),Ue=e.object({protocolVersion:e.string().trim().min(1),threadId:e.string().trim().min(1),turnId:e.string().trim().min(1),harnessReleaseHash:k,toolCatalogHash:k,context:e.record(e.string(),e.unknown()),pendingInteraction:e.record(e.string(),e.unknown()).nullable(),usage:e.record(e.string(),e.unknown())}).strict();function rr(t){return y(Ue.parse(t))}o(rr,"checkpointHash");function nr(t){return[t.system,...t.harnessInstructions,...t.skillInstructions,...t.hostInstructions??[]].map(r=>r.trim()).filter(Boolean).join(`
|
|
4
|
+
|
|
5
|
+
`)}o(nr,"materializeAgentPrompt");function or(t){let r=new Set,a=[...t].map(l=>{let d=l.name.trim();if(!d)throw new Error("Agent tool names cannot be empty.");if(r.has(d))throw new Error(`Duplicate agent tool: ${d}.`);if(r.add(d),!l.unavailableReason&&!l.executorAvailable)throw new Error(`Agent tool ${d} is declared as available without an executor.`);return{...l,name:d}}).sort((l,d)=>l.name.localeCompare(d.name)),n=a.filter(l=>!l.unavailableReason).map(l=>({name:l.name,description:l.description,inputSchema:l.inputSchema})),i=a.map(l=>({name:l.name,displayLabel:l.displayLabel??l.name,placement:l.placement,available:!l.unavailableReason,unavailableReason:l.unavailableReason??null}));return{byName:new Map(a.map(l=>[l.name,l])),tools:a,modelTools:n,capabilities:i,hash:y({modelTools:n,capabilities:i})}}o(or,"createAgentToolCatalogProjection");async function cr(t,r){let a=t.byName.get(r.name);if(!a)throw new Error(`Unknown agent tool: ${r.name}.`);if(a.unavailableReason)throw new Error(`Agent tool ${r.name} is unavailable: ${a.unavailableReason}`);if(!a.execute)throw new Error(`Agent tool ${r.name} has no executor.`);let n=a.validateArguments?a.validateArguments(r.arguments):r.arguments;return a.execute(n,r.context)}o(cr,"executeProjectedAgentTool");var Ie=class{static{o(this,"TaskSignals")}#e=new Map;notify(r){for(let a of[...this.#e.get(r)??[]])a()}subscribe(r,a){let n=this.#e.get(r);return n||this.#e.set(r,n=new Set),n.add(a),()=>{n.delete(a),n.size===0&&this.#e.delete(r)}}async wait(r){let a=o(()=>{},"wake"),n=0,i=o(()=>{n+=1,a()},"changed"),l=[...new Set(r.taskIds)].map(p=>this.subscribe(p,i)),d=setTimeout(i,Math.max(0,r.deadline-Date.now()));r.signal.addEventListener("abort",i);try{for(;;){r.signal.throwIfAborted();let p=n,f=await r.read();if(f!==null)return f;if(Date.now()>=r.deadline)return null;n===p&&await new Promise(h=>{a=h,(n!==p||r.signal.aborted)&&h()})}}finally{clearTimeout(d),r.signal.removeEventListener("abort",i);for(let p of l)p()}}},ke=class{static{o(this,"TaskSerialExecutor")}#e=new Map;async run(r,a){let i=(this.#e.get(r)??Promise.resolve()).then(a),l=i.then(()=>{},()=>{});this.#e.set(r,l);try{return await i}finally{this.#e.get(r)===l&&this.#e.delete(r)}}};function Cr(t){return $e({runtime:xe(t.ports),close:t.close})}o(Cr,"createAppServer");function $e(t){let r=!1;return{runtime:t.runtime,close:o(async()=>{r||(r=!0,await t.close?.())},"close")}}o($e,"attachAppServer");async function _r(t){let r=typeof t.appServer=="function"?null:t.appServer;try{await we({host:r?.runtime??(async()=>(r=await t.appServer(),r.runtime)),readable:t.readable,writable:t.writable,hostStorageClient:t.hostStorageClient})}finally{await r?.close()}}o(_r,"runAppServerJsonl");import{randomBytes as Fe}from"node:crypto";function Nr(){return L()}o(Nr,"appDataDir");function Br(t){return g(t).config}o(Br,"providersConfigPath");function Mr(t){return g(t).credentials}o(Mr,"providerSecretsConfigPath");function Ur(t){return g(t).key}o(Ur,"providerSecretsKeyPath");async function $r(t){let r=g(t).token;return W(r,async()=>{let a=(await D(r))?.trim(),n=process.env.OPENPOND_APP_TOKEN||a||Fe(32).toString("base64url");return n!==a&&await C(r,n),{token:n,tokenFile:r}})}o($r,"ensureCapabilityToken");export{Ge as a,Ke as b,Qe as c,y as d,Ze as e,et as f,tt as g,_e as h,Ht as i,_ as j,it as k,qe as l,u as m,jt as n,ve as o,Ue as p,rr as q,nr as r,or as s,cr as t,Ie as u,ke as v,Cr as w,_r as x,Nr as y,Br as z,Mr as A,Ur as B,$r as C};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
-
import{$b as Ne,Aa as _e,Cb as Le,Da as Be,Eb as Fe,Ha as De,Jb as Ve,Lb as $e,Mb as he,Pa as $,Pb as qe,Qb as J,Rb as X,Sa as te,Sb as ve,Ta as Ae,Tb as Oe,Ub as ze,Va as Ce,Wa as W,Wb as se,Xa as ue,Xb as L,Yb as ae,_b as Ge,ba as fe,bc as Ke,cc as We,da as K,dc as ge,ea as p,ec as Je,mc as ne,nc as Xe,p as Ee,r as Me,sc as re,wb as je}from"./chunk-ETH4SZO6.js";import{n as le,o as pe,p as Pe}from"./chunk-JPCPNW6T.js";import{$a as Y,Ab as N,Cb as U,Eb as Ie,Lb as v,Mb as j,Nb as P,Ob as He,Qb as Z,Sb as ee,a as D,bc as z,fb as be,ib as Te,jb as Se,kb as xe,lb as ye,sb as O,tb as G,vb as V,xb as Q}from"./chunk-2LSP2AAN.js";import{b as k}from"./chunk-ES2ISFJC.js";import{a as S}from"./chunk-FTQLQJQV.js";var oe=G.shape.id,Ye=k.object({schemaVersion:k.literal("openpond.modelBatchReviewInspection.v1"),packageHash:k.string().regex(/^[a-f0-9]{64}$/),definition:V,binding:be,evidence:k.array(N).min(1).max(1e4),decisions:k.array(Ie).min(1).max(1e4)}).strict(),ke=k.object({schemaVersion:k.literal("openpond.modelBatchReviewRequest.v1"),operationId:oe,modelId:oe,expectedModelRevision:k.number().int().positive(),tasksetRef:G,rewardBindingRef:G.nullable(),definition:k.object({name:k.string().trim().min(1).max(500).optional(),instructions:k.string().trim().min(1).max(2e4).optional(),inputSchema:O.optional(),outputSchema:O.optional(),requiredOutputs:V.shape.requiredOutputs}).strict(),examples:k.array(k.object({evidence:G,input:O.optional(),expected:O.nullable().optional(),evaluatorContext:O.nullable().optional(),proposedTarget:O.nullable().optional()}).strict()).max(1e4)}).strict(),Qe=k.object({schemaVersion:k.literal("openpond.modelBatchReviewReceipt.v1"),operationId:oe,modelId:oe,source:Q,evidence:k.array(N).min(1).max(1e4),proposals:k.array(U).max(1e4)}).strict();function ss(s){let e=L(s.source);if(e.modelResources||e.learningResources)throw new Error("Binding an ordinary Reward requires an ordinary source package.");let t=se(e);if(!t.trim())throw new Error("Add collection instructions before selecting a saved Reward.");let a=new Map,i=X(e);for(let h of i?.assets??[])a.set(h.id,h);let m=new Set([...e.taskset.tasks.flatMap(h=>h.privilegedContextRef?[h.privilegedContextRef]:[]),...[e.environment.actionSchemaRef,e.environment.observationSchemaRef,e.environment.stateSchemaRef].flatMap(h=>h?[h.id]:[])]);for(let h of m){if(a.has(h))continue;let y=e.files.find(F=>F.asset.id===h);if(!y)throw new Error(`Source Taskset context is missing: ${h}.`);let A=new TextDecoder("utf-8",{fatal:!0}).decode(J(y));a.set(h,Z.parse(P({schemaVersion:"openpond.learningTextAsset.v1",id:h,revision:1,asset:y.asset,text:A})))}for(let h of s.assets){let y=e.files.find(A=>A.asset.id===h.id);if(y&&P({asset:y.asset}).contentHash!==P({asset:h.asset}).contentHash)throw new Error(`Selected Reward conflicts with a source asset: ${h.id}.`);a.set(h.id,h)}let{policy:u,environment:g,environmentRelease:x,tools:R,capabilities:r,verifierSetRelease:w}=e.taskset,c=V.parse(P({schemaVersion:"openpond.taskDefinition.v1",id:`${e.taskset.id}-definition`,revision:1,name:e.taskset.id,description:"",instructions:t,category:"custom",familyNamespace:e.taskset.id,inputSchema:{type:"object"},outputSchema:{type:"object"},rewardBinding:v(s.rewardBinding),harness:null,execution:{policy:u,environment:g,environmentRelease:x,tools:R,capabilities:r,verifierSetRelease:w}})),l=he({...s,assets:[...a.values()],source:{taskset:e.taskset,taskDefinition:c,instructionMode:"per_task",executionResources:{environment:e.environment,verifierSet:e.verifierSet},...i?{execution:i.execution}:{}}}),d=new Map(e.files.map(h=>[h.asset.id,h]));for(let h of l.assets){let y="";for(let A of new TextEncoder().encode(h.text))y+=String.fromCharCode(A);d.set(h.id,{asset:h.asset,base64:btoa(y)})}let{taskset:H,executionResources:E,...M}=l;return ae({schemaVersion:"openpond.tasksetPackage.v1",taskset:H,...E,modelResources:M,files:[...d.values()]})}S(ss,"bindOrdinaryModelTasksetReward");function at(s){let{request:e,package:t}=s,a=t.learningResources;if(!a)throw new D("model_review_batch_required",422);let i=z(t.taskset),m=`model-review-${p([s.scope,e.modelId,e.operationId])}`,u=new Map(e.examples.map(o=>[p(o.evidence),o])),g=new Set(a.evidence.map(o=>p(v(o)))),x=new Map(a.decisions.map(o=>[p(o.evidence),o]));if(u.size!==e.examples.length||e.examples.some(o=>!g.has(p(o.evidence))))throw new D("model_review_evidence_mismatch",409);for(let o of[s.binding,...s.rewards,...s.assets])He(o);xe(s.binding,s.rewards);let R=new Map;for(let o of s.binding.sources){let I=s.rewards.find(ie=>j(v(ie),o.reward)),{contentHash:B,...q}=I;R.set(I.contentHash,Te({...q,id:`${m}-reward-${I.contentHash}`,revision:1}))}let r=[...R.values()],{contentHash:w,recipeRef:c,...l}=s.binding,d=Se({...l,id:`${m}-binding`,revision:1,sources:s.binding.sources.map(o=>({...o,reward:v(R.get(o.reward.contentHash))}))},r),H=r.flatMap(o=>[...o.assets,..."verifierRef"in o.implementation?[o.implementation.verifierRef]:[],..."rubricRef"in o.implementation?[o.implementation.rubricRef]:[],..."inputContract"in o.implementation?[o.implementation.inputContract]:[]]),E=[...new Map(H.map(o=>{let I=s.assets.find(B=>B.id===o.id);if(!I)throw new D("model_review_reward_asset_missing",422);if(ee(I,o),o.visibility==="policy")throw new D("reward_asset_visibility_invalid",422);return[I.id,I]})).values()],{environmentRelease:M,verifierSetRelease:h,...y}=i.definition.execution,{contentHash:A,...F}=i.definition,n=V.parse(P({...F,...e.definition,id:`${m}-definition`,revision:1,rewardBinding:v(d),execution:{...y,policy:{...y.policy,hiddenGraderRefs:ye(d,r).filter(o=>o.privileged).map(o=>o.id)}}})),f=Q.parse(P({schemaVersion:"openpond.learningSource.v1",id:m,revision:1,name:`${n.name} review`,kind:"direct",taskDefinition:v(n),enabled:!0,allowedSplits:[...new Set(a.evidence.map(o=>o.submission.split))],mapping:null,adapterVersion:null,reviewOrigin:{modelId:e.modelId,packageHash:t.contentHash,taskset:v(t.taskset),batch:v(a.batch),rewardBinding:v(s.binding)}})),b=a.evidence.map(o=>{let I=u.get(p(v(o))),B=`review-${o.contentHash}`,q=p({instructions:n.instructions,inputSchema:n.inputSchema,outputSchema:n.outputSchema,requiredOutputs:n.requiredOutputs??[],input:I?.input??o.submission.input})!==p({instructions:i.definition.instructions,inputSchema:i.definition.inputSchema,outputSchema:i.definition.outputSchema,requiredOutputs:i.definition.requiredOutputs??[],input:o.submission.input});return N.parse(P({schemaVersion:"openpond.taskEvidence.v1",id:Pe(f.id,o.submission.exampleId,B),revision:1,source:v(f),submission:{...o.submission,sourceId:f.id,taskDefinition:v(n),attemptId:B,observedOutput:q?null:o.submission.observedOutput,idempotencyKey:`${m}-${o.contentHash}`,...I?.input===void 0?{}:{input:I.input},...I?.expected===void 0?{}:{expected:I.expected},...I?.evaluatorContext===void 0?{}:{evaluatorContext:I.evaluatorContext}},supersedes:v(o),correctionFeedbackId:null,receivedAt:s.now}))}),_=b.flatMap(o=>{let I=u.get(p(o.supersedes)),B=x.get(p(o.supersedes)),q=I?.proposedTarget===void 0?B.approvedTarget:I.proposedTarget;return q===null?[]:[U.parse({schemaVersion:"openpond.taskFeedbackRecord.v1",id:`feedback-${p([m,o.id])}`,revision:1,submission:{schemaVersion:"openpond.taskFeedback.v1",sourceId:f.id,idempotencyKey:`${m}-${o.id}`,exampleId:o.submission.exampleId,attemptId:o.submission.attemptId,expectedEvidenceHash:o.contentHash,occurredAt:s.now,kind:"target_correction",value:q,note:"Proposed target for the revised task. Grade and review before admission."},status:"pending_review",evidence:v(o),createdAt:s.now,review:null})]});return{source:f,definition:n,binding:d,rewards:r,assets:E,evidence:b,proposals:_}}S(at,"prepareModelBatchReview");var Ue=S(s=>`model-batch-review-${p([s.modelId,s.operationId])}`,"operation");function is(s){let e=L(s);if(!e.learningResources)throw new D("model_review_batch_required",422);let t=z(e.taskset);return Ye.parse({schemaVersion:"openpond.modelBatchReviewInspection.v1",packageHash:e.contentHash,definition:t.definition,binding:t.binding,evidence:e.learningResources.evidence,decisions:e.learningResources.decisions})}S(is,"inspectModelBatchPackage");async function nt(s,e){let t=ke.parse(e),a=await s.operation(Ue(t));if(!a)return null;if(a.requestHash!==p(t))throw new D("learning_idempotency_conflict",409);return Ze(s,t,a.resources)}S(nt,"findModelBatchReview");async function cs(s,e){let t=ke.parse(e.request),a=await nt(s,t);if(a)return a;let i=L(e.package);if(!i.learningResources)throw new D("model_review_batch_required",422);let m=z(i.taskset),u=t.rewardBindingRef,g=!u||j(u,v(m.binding)),x=g?m.binding:await pe(s,"binding",u),R=g?m.rewards:await Promise.all(x.sources.map(d=>pe(s,"reward",d.reward))),r=new Set(R.flatMap(d=>[...d.assets,..."verifierRef"in d.implementation?[d.implementation.verifierRef]:[],..."rubricRef"in d.implementation?[d.implementation.rubricRef]:[],..."inputContract"in d.implementation?[d.implementation.inputContract]:[]]).map(d=>d.id)),w=g?i.learningResources.assets:await Promise.all([...r].map(d=>le(s,"asset",d,1))),c=at({...e,request:t,package:i,binding:x,rewards:R,assets:w}),l=[];for(let d of c.assets){let H=await s.get("asset",d.id,1);if(H&&H.contentHash!==d.contentHash)throw new D("model_review_asset_conflict",409);H||await s.put("asset",d,0)}for(let d of c.rewards)await s.put("reward",d,0);await s.put("binding",c.binding,0),await s.put("definition",c.definition,0),await s.put("source",c.source,0,{parentId:t.modelId}),l.push({kind:"source",id:c.source.id,revision:1});for(let d of c.evidence)await s.put("evidence",d,0,{parentId:c.source.id}),l.push({kind:"evidence",id:d.id,revision:1});for(let d of c.proposals)await s.put("feedback",d,0,{parentId:d.evidence.id,status:d.status}),l.push({kind:"feedback",id:d.id,revision:1});return await s.saveOperation(Ue(t),{requestHash:p(t),resources:l}),Ze(s,t,l)}S(cs,"beginModelBatchReview");async function Ze(s,e,t){let a=await Promise.all(t.map(i=>le(s,i.kind,i.id,i.revision)));return Qe.parse({schemaVersion:"openpond.modelBatchReviewReceipt.v1",operationId:e.operationId,modelId:e.modelId,source:a.find(i=>i.schemaVersion==="openpond.learningSource.v1"),evidence:a.filter(i=>i.schemaVersion==="openpond.taskEvidence.v1"),proposals:a.filter(i=>i.schemaVersion==="openpond.taskFeedbackRecord.v1")})}S(Ze,"readReceipt");function rt(s){let e=L(s.source),t=L(s.edited),a=s.preparation;if(a.authoringGraph!=="bound"||!e.modelResources||e.learningResources||t.modelResources||t.learningResources)throw new Error("Bound task editing requires its source Reward and an ordinary edited workspace.");if(e.contentHash!==a.sourcePackageHash||!j(v(e.taskset),a.sourceTasksetRef))throw new Error("Bound draft differs from its retained source package.");let i=S(T=>T.taskset.graders.map(C=>C.kind==="custom_verifier"?{...C,exportName:C.exportName??"verify"}:C),"normalizedGraders");if(p(i(e))!==p(i(t)))throw new Error("Edit the saved Reward in Rewards before changing this Taskset's graders.");let m=e.modelResources,u=new Map(m.assets.map(T=>[T.id,T])),g=X(t),x=X(e),R=S(T=>{let{id:C,revision:ce,contentHash:de,metadata:me,...st}=T,{javascriptEnvironment:lt,...Re}=me;return{...st,metadata:{...Re,resources:Re.resources??[]}}},"environmentContent"),r=S(T=>{if(!T)return null;let{id:C,revision:ce,contentHash:de,...me}=T.execution.javascript;return me},"javascriptContent"),w=p(R(e.environment))===p(R(t.environment))&&p(r(x))===p(r(g)),c=w?e.environment:t.environment,l=w?x:g,d=new Set([...m.assets.map(T=>T.id),...t.taskset.tasks.flatMap(T=>T.privilegedContextRef?[T.privilegedContextRef]:[]),...[t.environment.actionSchemaRef,t.environment.observationSchemaRef,t.environment.stateSchemaRef].flatMap(T=>T?[T.id]:[]),...g?.assets.map(T=>T.id)??[]]);for(let T of d){let C=t.files.find(de=>de.asset.id===T);if(!C)throw new Error(`Bound Taskset asset is missing: ${T}.`);let ce=new TextDecoder("utf-8",{fatal:!0}).decode(J(C));u.set(T,Z.parse(P({schemaVersion:"openpond.learningTextAsset.v1",id:T,revision:1,asset:C.asset,text:ce})))}let H=se(t),{contentHash:E,...M}=m.taskDefinition,{policy:h,environment:y,environmentRelease:A,tools:F,capabilities:n,verifierSetRelease:f}=t.taskset,b=V.parse(P({...M,instructions:H,execution:{policy:h,environment:y,environmentRelease:A,tools:F,capabilities:n,verifierSetRelease:f}})),{contentHash:_,...o}=t.taskset,I=Y.parse(P({...o,tasks:t.taskset.tasks.map(T=>m.instructionMode==="per_task"?T:{...T,policyVisibleContext:{...T.policyVisibleContext,instructions:H}})})),B=he({owner:a.lineage.owner,source:{...m,taskset:e.taskset,executionResources:{environment:e.environment,verifierSet:e.verifierSet}},rewardBinding:m.rewardBinding,rewards:m.rewards,assets:[...u.values()],edits:{taskset:I,taskDefinition:b,executionResources:{environment:c,verifierSet:t.verifierSet},...l?{execution:l.execution}:{}}}),q=Ve.parse(B.taskset.metadata.modelTasksetDerivation);if(B.taskset.id!==a.tasksetId||B.taskset.revision!==a.tasksetRevision||p({...q,schemaVersion:a.lineage.schemaVersion})!==p(a.lineage))throw new Error("Bound draft differs from its retained ownership lineage.");let{taskset:ie,executionResources:et,...tt}=B;return ae({schemaVersion:"openpond.tasksetPackage.v1",taskset:ie,...et,modelResources:tt,files:t.files})}S(rt,"publishBoundModelTasksetDraftPackage");function us(s){let e=Ce.parse(s.request),t=Ae.parse(s.owner),a=L(s.source);if(a.learningResources)throw new Error("Reviewed Tasksets require their reviewed authoring workflow.");if(a.contentHash!==e.sourcePackageHash)throw new Error("Taskset draft source package changed.");if(a.modelResources){let x=$e({owner:t,source:{...a.modelResources,taskset:a.taskset,executionResources:{environment:a.environment,verifierSet:a.verifierSet}},rewardBinding:a.modelResources.rewardBinding,rewards:a.modelResources.rewards,assets:a.modelResources.assets}),R=x.taskset.metadata.modelTasksetDerivation;return W.parse({schemaVersion:"openpond.modelTasksetDraftPreparation.v1",draftId:`model-taskset-draft-${p({owner:t,operationId:e.operationId})}`,requestHash:p(e),sourcePackageHash:a.contentHash,sourceTasksetRef:v(a.taskset),tasksetId:x.taskset.id,tasksetRevision:x.taskset.revision,lineage:{...R,schemaVersion:"openpond.modelTasksetAuthoring.v1"},authoringGraph:"bound"})}let i=ze(a.taskset),m=i&&p(i.owner)===p(t),u=m?i.root:v(a.taskset),g={schemaVersion:"openpond.modelTasksetAuthoring.v1",owner:t,root:u,parent:v(a.taskset)};return W.parse({schemaVersion:"openpond.modelTasksetDraftPreparation.v1",draftId:`model-taskset-draft-${p({owner:t,operationId:e.operationId})}`,requestHash:p(e),sourcePackageHash:a.contentHash,sourceTasksetRef:v(a.taskset),tasksetId:Oe(g),tasksetRevision:m?a.taskset.revision+1:1,lineage:g})}S(us,"prepareModelTasksetDraft");function hs(s){let e=W.parse(s.preparation);if(!j(e.sourceTasksetRef,e.lineage.parent))throw new Error("Taskset draft preparation differs from its source lineage.");if(e.authoringGraph==="bound"){if(!s.source)throw new Error("Bound Taskset authoring requires its retained source package.");return rt({preparation:e,source:s.source,edited:s.edited})}let t=ot(s.edited),{contentHash:a,...i}=t.verifierSet,m=Me({...i,id:`${e.tasksetId}-verifiers`,revision:e.tasksetRevision,calibrationReceiptRefs:[],metadata:{sourceVerifierSet:v(t.verifierSet)}}),{contentHash:u,...g}=t.taskset,x=Y.parse(P({...g,id:e.tasksetId,revision:e.tasksetRevision,verifierSetRelease:{id:m.id,contentHash:m.contentHash},metadata:{modelTasksetAuthoring:e.lineage,...t.taskset.metadata.environmentResources===void 0?{}:{environmentResources:t.taskset.metadata.environmentResources},...t.taskset.metadata.ordinaryAuthoring===void 0?{}:{ordinaryAuthoring:t.taskset.metadata.ordinaryAuthoring}}})),R=X(t),r=R?[...t.files.filter(w=>w.asset.id!==Fe(t.taskset)),ve({...R.execution,verifierSet:m})]:t.files;return ae({schemaVersion:"openpond.tasksetPackage.v1",taskset:x,environment:t.environment,verifierSet:m,files:r})}S(hs,"publishModelTasksetDraftPackage");function ot(s){let e=L(s);if(e.modelResources||e.learningResources)throw new Error("This Taskset requires its bound or reviewed authoring workflow.");return e}S(ot,"requireOrdinaryPackage");function gs(s){let e=L(s.package),t=e.taskset,a=e.modelResources,i=e.learningResources?z(t):void 0,m=_e.parse({schemaVersion:"openpond.uploadedFileDatasetSource.v1",kind:"uploaded_file",id:`package-source-${p({profileId:s.profileId,packageHash:e.contentHash})}`,profileId:s.profileId,title:s.name,sourceHash:e.contentHash,occurredAt:s.createdAt,licensingStatus:"pending",secretScanStatus:"pending",piiScanStatus:"pending",originalFileNames:["taskset-package.json"],mediaTypes:["application/json"],sourceFileHashes:[e.contentHash],totalBytes:new TextEncoder().encode(JSON.stringify(e)).byteLength,parserVersion:"openpond.tasksetPackage.v1",metadata:{}}),u=Xe({profileId:s.profileId,id:`${t.id}-import`,name:s.name,now:s.createdAt}),g=[];for(let c of t.graders)if(c.kind==="custom_verifier"){let l=a?.assets.find(E=>E.id===c.verifierRef.id),d=e.files.find(E=>E.asset.id===c.verifierRef.id);if(!d)throw new Error(`Imported verifier source is missing: ${c.id}.`);let H=Je(c.verifierRef.contentHash);g.some(E=>E.path===H)||g.push({path:H,role:"verifier",content:l?ee(l,c.verifierRef):new TextDecoder("utf-8",{fatal:!0}).decode(J(d))})}let x=t.metadata.ordinaryAuthoring??t.metadata.starterAuthoring,R=De.array().max(1e5).parse(x?.graderFixtures??[]),r=t.environment.kind==="text"?"chat":t.environment.kind==="custom_program"?"program":t.environment.kind,w=$.parse({schemaVersion:"openpond.taskset.v1",id:t.id,revision:t.revision,profileId:s.profileId,profileRelease:null,createImproveRunId:null,name:s.name,objective:se(e),status:"needs_review",sourceRefs:[m],datasetArtifact:null,policy:t.policy,environment:{...u.environment,kind:r,entrypoint:t.environment.entrypoint,resources:Be.array().max(1e4).parse(t.metadata.environmentResources??[]),stateful:t.environment.stateful,deterministicSeeds:t.environment.deterministicSeeds,toolNames:t.tools.map(c=>c.name),defaultTimeoutMs:t.environment.defaultTimeoutMs,networkPolicy:t.environment.networkPolicy,metadata:{runtimeSourceTasksetId:it(s.profileId,e.contentHash),portableEnvironment:t.environment,portableTools:t.tools,portableExecutionResources:{environment:e.environment,verifierSet:e.verifierSet}}},capabilities:{...u.capabilities,taskKind:r==="chat"?"chat":r==="program"?"custom_program":"single_agent",compatibleMethods:["none"],requiresTools:t.tools.length>0,requiresState:t.environment.stateful,rewardKinds:[...new Set(t.graders.map(c=>c.kind==="human"?"human":c.kind==="model_judge"?"model_judge":"deterministic"))]},tasks:t.tasks.map(c=>({...c,schemaVersion:"openpond.taskData.v1",sourceRefs:[m.id],assets:c.artifactRefs.map(l=>({id:l.id,sourceRefId:m.id,artifactRef:l.path,fileName:l.path.split("/").at(-1),mediaType:l.mediaType,sha256:l.contentHash,sizeBytes:l.sizeBytes,split:c.split,metadata:{portableAsset:l}})),...c.requiredOutputs?{requiredOutputs:c.requiredOutputs.map(l=>({...l,schemaRef:l.schemaRef?.id??null,maxBytes:l.maxBytes??void 0}))}:{},metadata:{portableTaskRecord:c,exampleOrigin:"imported"}})),graders:a?ge(a.rewardBinding,a.rewards,a.assets):i?ge(i.binding,i.rewards,e.learningResources.assets):We(e),graderFixtures:R,learningSignals:u.learningSignals,...t.metrics?{metrics:t.metrics}:{},authoringProvenance:{schemaVersion:"openpond.taskAuthoringProvenance.v1",model:null,modelConfig:{},skillHash:p("openpond-package-import-v1"),promptTemplateVersion:"package-import-v1",buildIntent:"discovery",buildSpecification:null,evidenceHashes:[e.contentHash],tasksetSdkVersion:"package-import-v1",sourceCommit:null,repairHistory:[],createdAt:s.createdAt},readiness:null,contentHash:"00000000",createdAt:s.createdAt,updatedAt:s.createdAt,metadata:{importedPackageHash:e.contentHash,...i?{learning:i}:{},portableFileInventory:e.files.map(c=>({asset:c.asset,sourcePath:c.asset.path})),...a?{taskDefinition:v(a.taskDefinition),rewardBinding:v(a.rewardBinding),rewardExecution:{binding:a.rewardBinding,rewards:a.rewards}}:{},portableCapabilities:t.capabilities,derivedPortableMetadata:t.metadata,...t.metadata.modelTasksetDerivation?{modelTasksetDerivation:t.metadata.modelTasksetDerivation}:{}}});return{package:e,taskset:$.parse({...w,contentHash:te(w)}),generatedFiles:g}}S(gs,"prepareImportedTasksetPackage");function it(s,e){return`package-${p({profileId:s,packageHash:e})}`}S(it,"tasksetPackageSourceId");function ct(s,e,t,a){if(s.environment.entrypoint!=="openpond.javascript-environment.v1")return{taskset:s,inventory:t,generatedFiles:[]};let i="environment/execution.json",m=e.get(i);if(!m||m.length>524288)throw new Error("Authored tool environment requires its bounded private execution declaration.");let u=Le.parse(JSON.parse(new TextDecoder("utf-8",{fatal:!0}).decode(m))),g=S(M=>{if(!M)return null;let h=t.find(y=>y.asset.id===M.id&&y.asset.path===M.path);if(!h)throw new Error(`Authored environment dependency is missing: ${M.id}.`);return h.asset},"repin"),{contentHash:x,...R}=u.javascript,r=je.parse(P({...R,id:`javascript-${s.id}`,revision:s.revision,module:g(u.javascript.module)}));if(p(r.tools)!==p(s.environment.metadata.portableTools)||p(r.tools.map(M=>M.name))!==p(s.environment.toolNames))throw new Error("Authored environment tools differ from the Taskset's declared tools.");let w=Ee({schemaVersion:"openpond.environmentRelease.v1",id:`environment-${s.id}`,revision:s.revision,contract:Ne(s),actionSchemaRef:g(u.environment.actionSchemaRef),observationSchemaRef:g(u.environment.observationSchemaRef),stateSchemaRef:g(u.environment.stateSchemaRef),artifactCollection:u.environment.artifactCollection,adapterConformanceHashes:{},metadata:{javascriptEnvironment:v(r),resources:s.environment.resources??[]}}),c=$.parse({...s,environment:{...s.environment,metadata:{...s.environment.metadata,portableExecutionResources:{environment:w}}}}),l=Ge({taskset:c,adapterId:a}),d=ve({javascript:r,environment:w,verifierSet:l.verifierSetRelease}),H=[...t.filter(M=>M.sourcePath!==i),{asset:d.asset,sourcePath:i}],E=$.parse({...c,metadata:{...c.metadata,portableFileInventory:H}});return{taskset:$.parse({...E,contentHash:te(E)}),inventory:H,generatedFiles:[{path:i,role:"environment",content:new TextDecoder().decode(J(d))}]}}S(ct,"prepareAuthoredToolEnvironment");var we=k.array(k.object({asset:fe,sourcePath:k.string().min(1)}).strict()).max(1e4),dt=new Set(["taskset.json","capabilities.json","data/tasks.jsonl","graders/graders.json","fixtures/grader-fixtures.json","environment/taskset.ts"]);function Ts(s){return dt.has(s)}S(Ts,"isGeneratedTasksetPublicationFilePath");function Ss(s,e,t){let a=$.parse(s);if(a.metadata.taskDefinition!==void 0||a.metadata.rewardBinding!==void 0)return{taskset:a,generatedFiles:[]};let i=new Map,m=0;for(let[n,f]of e){if(ue.parse(n),m+=f.byteLength,i.size>=1e4||m>qe*3/4)throw new Error("Taskset source exceeds the package byte limit.");i.set(n,f.slice())}let u=a.metrics?.customAggregator,g=u?i.get(u.module):void 0;if(u&&!g)throw new Error("Declared Taskset metric module is missing.");let x=u&&g?{...a.metrics,customAggregator:{...u,contentHash:K(g)}}:a.metrics,R=new Map,r=new Set,w=[],c=S((n,f,b,_)=>{let o=i.get(f);if(!o)throw new Error(`Declared Taskset file is missing: ${f}.`);return{id:n,path:f,contentHash:K(o),sizeBytes:o.byteLength,mediaType:b,visibility:_}},"ref"),l=S((n,f=n.path)=>{let b=R.get(n.id);if(b&&p(b)!==p({asset:n,sourcePath:f}))throw new Error(`Conflicting Taskset file identity: ${n.id}.`);let _=i.get(f);if(!_||_.length!==n.sizeBytes||K(_)!==n.contentHash)throw new Error(`Taskset file differs from its declared bytes: ${n.id}.`);R.set(n.id,{asset:n,sourcePath:f}),r.add(f)},"add");for(let n of a.tasks){let f=Ke(n);for(let b of f.artifactRefs)l(b,n.assets?.find(_=>_.id===b.id)?.artifactRef??b.path);for(let b of f.requiredOutputs??[])b.schemaRef&&l(b.schemaRef)}for(let n of a.environment.resources??[])l(c(n.id,n.path,n.mediaType??"application/octet-stream",n.visibility==="policy_visible"?"policy":"host_private"));let d=a.graders.map(n=>{if(n.kind==="custom_verifier"){let f=c(`verifier-${n.id}`,n.module,"application/javascript","host_private"),b=fe.safeParse(n.metadata.portableVerifierRef);return b.success&&b.data.contentHash===f.contentHash&&b.data.sizeBytes===f.sizeBytes&&(f=b.data),l(f,n.module),{...n,metadata:{...n.metadata,portableVerifierRef:f}}}if(n.kind==="human"||n.kind==="model_judge"){let f=new TextEncoder().encode(n.rubric),b=`graders/rubric-${K(f)}.md`;i.set(b,f);let _=c(`rubric-${n.id}`,b,"text/markdown","verifier");return l(_),w.push({path:b,role:"verifier",content:n.rubric}),{...n,metadata:{...n.metadata,portableRubricRef:_}}}return n});u&&![...R.values()].some(n=>n.asset.path===u.module&&n.sourcePath===u.module&&n.asset.visibility!=="policy")&&l(c(`metric-${p(u.module)}`,u.module,"application/javascript","host_private"));let H=we.parse(a.metadata.portableFileInventory??[]);for(let n of[...i.keys()].sort())if(!r.has(n)){let f=H.find(b=>b.sourcePath===n&&!R.has(b.asset.id));l(f?{...c(f.asset.id,n,f.asset.mediaType,f.asset.visibility),path:f.asset.path}:c(`taskset-file-${p(n)}`,n,"application/octet-stream","host_private"),n)}let{importedPackageHash:E,derivedPortableMetadata:M,...h}=a.metadata,y={...a.environment.metadata};if(y.portableExecutionResources!==void 0){let n=k.object({environment:k.unknown(),verifierSet:k.unknown().optional()}).parse(y.portableExecutionResources);y.portableExecutionResources={environment:n.environment}}let A=$.parse({...a,graders:d,metrics:x,environment:{...a.environment,metadata:y},metadata:{...h,...E===void 0?{}:{sourceImportedPackageHash:E},portableFileInventory:we.parse([...R.values()].sort((n,f)=>n.asset.id.localeCompare(f.asset.id)))}}),F=ct(A,i,[...R.values()],t);return{taskset:$.parse({...F.taskset,contentHash:te(F.taskset)}),generatedFiles:[...w,...F.generatedFiles]}}S(Ss,"prepareAuthoredTasksetSource");var mt=k.object({draft:ne,filePaths:k.array(k.object({assetId:k.string().min(1),paths:k.array(ue).min(1).max(1e4)}).strict()).max(1e4)}).strict();function Is(s){let e=L(s.source),t=ne.parse(s.sourceDraft),a=W.parse(s.preparation);if(e.contentHash!==a.sourcePackageHash||!j(v(e.taskset),a.sourceTasksetRef))throw new Error("Taskset draft preparation differs from its source package.");if(e.learningResources)throw new Error("Reviewed Tasksets require their reviewed authoring workflow.");if(!!e.modelResources!=(a.authoringGraph==="bound"))throw new Error("Taskset draft authoring graph differs from its source.");let i=we.parse(t.metadata.portableFileInventory??[]),m=S(r=>re(r)?`source-artifacts/${e.contentHash}/${p(r)}/${r.split("/").at(-1)}`:r,"sourcePath");if([...t.tasks.flatMap(r=>(r.assets??[]).map(w=>w.artifactRef)),...(t.environment.resources??[]).map(r=>r.path),...e.taskset.tasks.flatMap(r=>(r.requiredOutputs??[]).flatMap(w=>w.schemaRef?[w.schemaRef.path]:[])),...t.metrics.customAggregator?[t.metrics.customAggregator.module]:[],...t.graders.flatMap(r=>r.kind==="custom_verifier"?[r.module]:[])].some(re))throw new Error("A referenced source asset occupies a reserved Taskset authoring path.");let g=e.files.map(r=>{let w=new Set([r.asset.path]);for(let c of i)c.asset.id===r.asset.id&&w.add(c.sourcePath);for(let c of t.tasks)for(let l of c.assets??[])l.id===r.asset.id&&w.add(l.artifactRef);for(let c of e.taskset.graders)if(c.kind==="custom_verifier"&&c.verifierRef.id===r.asset.id){let l=t.graders.find(d=>d.id===c.id);l?.kind==="custom_verifier"&&w.add(l.module)}return{assetId:r.asset.id,paths:[...w].map(m)}}),x={...t.metadata};if(e.modelResources)for(let r of["taskDefinition","rewardBinding","rewardExecution","derivedPortableMetadata","modelTasksetDerivation","importedPackageHash"])delete x[r];let R=ne.parse({...t,id:a.draftId,revision:1,status:"draft",graders:t.graders.map(r=>({...r,metadata:{...r.metadata,portableGrader:e.taskset.graders.find(w=>w.id===r.id)}})),environment:{...t.environment,metadata:{...t.environment.metadata,portableExecutionResources:{environment:e.environment}}},modelScope:{modelId:a.lineage.owner.modelId,expectedModelRevision:s.expectedModelRevision,source:a},publishedTasksetRef:a.tasksetRevision>1?a.sourceTasksetRef:null,metadata:{...x,modelTasksetAuthoring:a.lineage,portableFileInventory:i.map(r=>({...r,sourcePath:m(r.sourcePath),asset:{...r.asset,id:re(r.sourcePath)?`source-artifact-${p({packageHash:e.contentHash,assetId:r.asset.id})}`:r.asset.id,path:m(r.asset.path)}}))}});return mt.parse({draft:R,filePaths:g})}S(Is,"prepareTasksetDraftSource");export{ke as a,ss as b,is as c,nt as d,cs as e,us as f,hs as g,gs as h,it as i,we as j,Ts as k,Ss as l,mt as m,Is as n};
|
|
2
|
+
import{$b as Ne,Aa as _e,Cb as Le,Da as Be,Eb as Fe,Ha as De,Jb as Ve,Lb as $e,Mb as he,Pa as $,Pb as qe,Qb as J,Rb as X,Sa as te,Sb as ve,Ta as Ae,Tb as Oe,Ub as ze,Va as Ce,Wa as W,Wb as se,Xa as ue,Xb as L,Yb as ae,_b as Ge,ba as fe,bc as Ke,cc as We,da as K,dc as ge,ea as p,ec as Je,mc as ne,nc as Xe,p as Ee,r as Me,sc as re,wb as je}from"./chunk-QTEYV4TW.js";import{n as le,o as pe,p as Pe}from"./chunk-B5LKUQGM.js";import{$a as Y,Ab as N,Cb as U,Eb as Ie,Lb as v,Mb as j,Nb as P,Ob as He,Qb as Z,Sb as ee,a as D,bc as z,fb as be,ib as Te,jb as Se,kb as xe,lb as ye,sb as O,tb as G,vb as V,xb as Q}from"./chunk-5BFWDFPX.js";import{b as k}from"./chunk-ES2ISFJC.js";import{a as S}from"./chunk-FTQLQJQV.js";var oe=G.shape.id,Ye=k.object({schemaVersion:k.literal("openpond.modelBatchReviewInspection.v1"),packageHash:k.string().regex(/^[a-f0-9]{64}$/),definition:V,binding:be,evidence:k.array(N).min(1).max(1e4),decisions:k.array(Ie).min(1).max(1e4)}).strict(),ke=k.object({schemaVersion:k.literal("openpond.modelBatchReviewRequest.v1"),operationId:oe,modelId:oe,expectedModelRevision:k.number().int().positive(),tasksetRef:G,rewardBindingRef:G.nullable(),definition:k.object({name:k.string().trim().min(1).max(500).optional(),instructions:k.string().trim().min(1).max(2e4).optional(),inputSchema:O.optional(),outputSchema:O.optional(),requiredOutputs:V.shape.requiredOutputs}).strict(),examples:k.array(k.object({evidence:G,input:O.optional(),expected:O.nullable().optional(),evaluatorContext:O.nullable().optional(),proposedTarget:O.nullable().optional()}).strict()).max(1e4)}).strict(),Qe=k.object({schemaVersion:k.literal("openpond.modelBatchReviewReceipt.v1"),operationId:oe,modelId:oe,source:Q,evidence:k.array(N).min(1).max(1e4),proposals:k.array(U).max(1e4)}).strict();function ss(s){let e=L(s.source);if(e.modelResources||e.learningResources)throw new Error("Binding an ordinary Reward requires an ordinary source package.");let t=se(e);if(!t.trim())throw new Error("Add collection instructions before selecting a saved Reward.");let a=new Map,i=X(e);for(let h of i?.assets??[])a.set(h.id,h);let m=new Set([...e.taskset.tasks.flatMap(h=>h.privilegedContextRef?[h.privilegedContextRef]:[]),...[e.environment.actionSchemaRef,e.environment.observationSchemaRef,e.environment.stateSchemaRef].flatMap(h=>h?[h.id]:[])]);for(let h of m){if(a.has(h))continue;let y=e.files.find(F=>F.asset.id===h);if(!y)throw new Error(`Source Taskset context is missing: ${h}.`);let A=new TextDecoder("utf-8",{fatal:!0}).decode(J(y));a.set(h,Z.parse(P({schemaVersion:"openpond.learningTextAsset.v1",id:h,revision:1,asset:y.asset,text:A})))}for(let h of s.assets){let y=e.files.find(A=>A.asset.id===h.id);if(y&&P({asset:y.asset}).contentHash!==P({asset:h.asset}).contentHash)throw new Error(`Selected Reward conflicts with a source asset: ${h.id}.`);a.set(h.id,h)}let{policy:u,environment:g,environmentRelease:x,tools:R,capabilities:r,verifierSetRelease:w}=e.taskset,c=V.parse(P({schemaVersion:"openpond.taskDefinition.v1",id:`${e.taskset.id}-definition`,revision:1,name:e.taskset.id,description:"",instructions:t,category:"custom",familyNamespace:e.taskset.id,inputSchema:{type:"object"},outputSchema:{type:"object"},rewardBinding:v(s.rewardBinding),harness:null,execution:{policy:u,environment:g,environmentRelease:x,tools:R,capabilities:r,verifierSetRelease:w}})),l=he({...s,assets:[...a.values()],source:{taskset:e.taskset,taskDefinition:c,instructionMode:"per_task",executionResources:{environment:e.environment,verifierSet:e.verifierSet},...i?{execution:i.execution}:{}}}),d=new Map(e.files.map(h=>[h.asset.id,h]));for(let h of l.assets){let y="";for(let A of new TextEncoder().encode(h.text))y+=String.fromCharCode(A);d.set(h.id,{asset:h.asset,base64:btoa(y)})}let{taskset:H,executionResources:E,...M}=l;return ae({schemaVersion:"openpond.tasksetPackage.v1",taskset:H,...E,modelResources:M,files:[...d.values()]})}S(ss,"bindOrdinaryModelTasksetReward");function at(s){let{request:e,package:t}=s,a=t.learningResources;if(!a)throw new D("model_review_batch_required",422);let i=z(t.taskset),m=`model-review-${p([s.scope,e.modelId,e.operationId])}`,u=new Map(e.examples.map(o=>[p(o.evidence),o])),g=new Set(a.evidence.map(o=>p(v(o)))),x=new Map(a.decisions.map(o=>[p(o.evidence),o]));if(u.size!==e.examples.length||e.examples.some(o=>!g.has(p(o.evidence))))throw new D("model_review_evidence_mismatch",409);for(let o of[s.binding,...s.rewards,...s.assets])He(o);xe(s.binding,s.rewards);let R=new Map;for(let o of s.binding.sources){let I=s.rewards.find(ie=>j(v(ie),o.reward)),{contentHash:B,...q}=I;R.set(I.contentHash,Te({...q,id:`${m}-reward-${I.contentHash}`,revision:1}))}let r=[...R.values()],{contentHash:w,recipeRef:c,...l}=s.binding,d=Se({...l,id:`${m}-binding`,revision:1,sources:s.binding.sources.map(o=>({...o,reward:v(R.get(o.reward.contentHash))}))},r),H=r.flatMap(o=>[...o.assets,..."verifierRef"in o.implementation?[o.implementation.verifierRef]:[],..."rubricRef"in o.implementation?[o.implementation.rubricRef]:[],..."inputContract"in o.implementation?[o.implementation.inputContract]:[]]),E=[...new Map(H.map(o=>{let I=s.assets.find(B=>B.id===o.id);if(!I)throw new D("model_review_reward_asset_missing",422);if(ee(I,o),o.visibility==="policy")throw new D("reward_asset_visibility_invalid",422);return[I.id,I]})).values()],{environmentRelease:M,verifierSetRelease:h,...y}=i.definition.execution,{contentHash:A,...F}=i.definition,n=V.parse(P({...F,...e.definition,id:`${m}-definition`,revision:1,rewardBinding:v(d),execution:{...y,policy:{...y.policy,hiddenGraderRefs:ye(d,r).filter(o=>o.privileged).map(o=>o.id)}}})),f=Q.parse(P({schemaVersion:"openpond.learningSource.v1",id:m,revision:1,name:`${n.name} review`,kind:"direct",taskDefinition:v(n),enabled:!0,allowedSplits:[...new Set(a.evidence.map(o=>o.submission.split))],mapping:null,adapterVersion:null,reviewOrigin:{modelId:e.modelId,packageHash:t.contentHash,taskset:v(t.taskset),batch:v(a.batch),rewardBinding:v(s.binding)}})),b=a.evidence.map(o=>{let I=u.get(p(v(o))),B=`review-${o.contentHash}`,q=p({instructions:n.instructions,inputSchema:n.inputSchema,outputSchema:n.outputSchema,requiredOutputs:n.requiredOutputs??[],input:I?.input??o.submission.input})!==p({instructions:i.definition.instructions,inputSchema:i.definition.inputSchema,outputSchema:i.definition.outputSchema,requiredOutputs:i.definition.requiredOutputs??[],input:o.submission.input});return N.parse(P({schemaVersion:"openpond.taskEvidence.v1",id:Pe(f.id,o.submission.exampleId,B),revision:1,source:v(f),submission:{...o.submission,sourceId:f.id,taskDefinition:v(n),attemptId:B,observedOutput:q?null:o.submission.observedOutput,idempotencyKey:`${m}-${o.contentHash}`,...I?.input===void 0?{}:{input:I.input},...I?.expected===void 0?{}:{expected:I.expected},...I?.evaluatorContext===void 0?{}:{evaluatorContext:I.evaluatorContext}},supersedes:v(o),correctionFeedbackId:null,receivedAt:s.now}))}),_=b.flatMap(o=>{let I=u.get(p(o.supersedes)),B=x.get(p(o.supersedes)),q=I?.proposedTarget===void 0?B.approvedTarget:I.proposedTarget;return q===null?[]:[U.parse({schemaVersion:"openpond.taskFeedbackRecord.v1",id:`feedback-${p([m,o.id])}`,revision:1,submission:{schemaVersion:"openpond.taskFeedback.v1",sourceId:f.id,idempotencyKey:`${m}-${o.id}`,exampleId:o.submission.exampleId,attemptId:o.submission.attemptId,expectedEvidenceHash:o.contentHash,occurredAt:s.now,kind:"target_correction",value:q,note:"Proposed target for the revised task. Grade and review before admission."},status:"pending_review",evidence:v(o),createdAt:s.now,review:null})]});return{source:f,definition:n,binding:d,rewards:r,assets:E,evidence:b,proposals:_}}S(at,"prepareModelBatchReview");var Ue=S(s=>`model-batch-review-${p([s.modelId,s.operationId])}`,"operation");function is(s){let e=L(s);if(!e.learningResources)throw new D("model_review_batch_required",422);let t=z(e.taskset);return Ye.parse({schemaVersion:"openpond.modelBatchReviewInspection.v1",packageHash:e.contentHash,definition:t.definition,binding:t.binding,evidence:e.learningResources.evidence,decisions:e.learningResources.decisions})}S(is,"inspectModelBatchPackage");async function nt(s,e){let t=ke.parse(e),a=await s.operation(Ue(t));if(!a)return null;if(a.requestHash!==p(t))throw new D("learning_idempotency_conflict",409);return Ze(s,t,a.resources)}S(nt,"findModelBatchReview");async function cs(s,e){let t=ke.parse(e.request),a=await nt(s,t);if(a)return a;let i=L(e.package);if(!i.learningResources)throw new D("model_review_batch_required",422);let m=z(i.taskset),u=t.rewardBindingRef,g=!u||j(u,v(m.binding)),x=g?m.binding:await pe(s,"binding",u),R=g?m.rewards:await Promise.all(x.sources.map(d=>pe(s,"reward",d.reward))),r=new Set(R.flatMap(d=>[...d.assets,..."verifierRef"in d.implementation?[d.implementation.verifierRef]:[],..."rubricRef"in d.implementation?[d.implementation.rubricRef]:[],..."inputContract"in d.implementation?[d.implementation.inputContract]:[]]).map(d=>d.id)),w=g?i.learningResources.assets:await Promise.all([...r].map(d=>le(s,"asset",d,1))),c=at({...e,request:t,package:i,binding:x,rewards:R,assets:w}),l=[];for(let d of c.assets){let H=await s.get("asset",d.id,1);if(H&&H.contentHash!==d.contentHash)throw new D("model_review_asset_conflict",409);H||await s.put("asset",d,0)}for(let d of c.rewards)await s.put("reward",d,0);await s.put("binding",c.binding,0),await s.put("definition",c.definition,0),await s.put("source",c.source,0,{parentId:t.modelId}),l.push({kind:"source",id:c.source.id,revision:1});for(let d of c.evidence)await s.put("evidence",d,0,{parentId:c.source.id}),l.push({kind:"evidence",id:d.id,revision:1});for(let d of c.proposals)await s.put("feedback",d,0,{parentId:d.evidence.id,status:d.status}),l.push({kind:"feedback",id:d.id,revision:1});return await s.saveOperation(Ue(t),{requestHash:p(t),resources:l}),Ze(s,t,l)}S(cs,"beginModelBatchReview");async function Ze(s,e,t){let a=await Promise.all(t.map(i=>le(s,i.kind,i.id,i.revision)));return Qe.parse({schemaVersion:"openpond.modelBatchReviewReceipt.v1",operationId:e.operationId,modelId:e.modelId,source:a.find(i=>i.schemaVersion==="openpond.learningSource.v1"),evidence:a.filter(i=>i.schemaVersion==="openpond.taskEvidence.v1"),proposals:a.filter(i=>i.schemaVersion==="openpond.taskFeedbackRecord.v1")})}S(Ze,"readReceipt");function rt(s){let e=L(s.source),t=L(s.edited),a=s.preparation;if(a.authoringGraph!=="bound"||!e.modelResources||e.learningResources||t.modelResources||t.learningResources)throw new Error("Bound task editing requires its source Reward and an ordinary edited workspace.");if(e.contentHash!==a.sourcePackageHash||!j(v(e.taskset),a.sourceTasksetRef))throw new Error("Bound draft differs from its retained source package.");let i=S(T=>T.taskset.graders.map(C=>C.kind==="custom_verifier"?{...C,exportName:C.exportName??"verify"}:C),"normalizedGraders");if(p(i(e))!==p(i(t)))throw new Error("Edit the saved Reward in Rewards before changing this Taskset's graders.");let m=e.modelResources,u=new Map(m.assets.map(T=>[T.id,T])),g=X(t),x=X(e),R=S(T=>{let{id:C,revision:ce,contentHash:de,metadata:me,...st}=T,{javascriptEnvironment:lt,...Re}=me;return{...st,metadata:{...Re,resources:Re.resources??[]}}},"environmentContent"),r=S(T=>{if(!T)return null;let{id:C,revision:ce,contentHash:de,...me}=T.execution.javascript;return me},"javascriptContent"),w=p(R(e.environment))===p(R(t.environment))&&p(r(x))===p(r(g)),c=w?e.environment:t.environment,l=w?x:g,d=new Set([...m.assets.map(T=>T.id),...t.taskset.tasks.flatMap(T=>T.privilegedContextRef?[T.privilegedContextRef]:[]),...[t.environment.actionSchemaRef,t.environment.observationSchemaRef,t.environment.stateSchemaRef].flatMap(T=>T?[T.id]:[]),...g?.assets.map(T=>T.id)??[]]);for(let T of d){let C=t.files.find(de=>de.asset.id===T);if(!C)throw new Error(`Bound Taskset asset is missing: ${T}.`);let ce=new TextDecoder("utf-8",{fatal:!0}).decode(J(C));u.set(T,Z.parse(P({schemaVersion:"openpond.learningTextAsset.v1",id:T,revision:1,asset:C.asset,text:ce})))}let H=se(t),{contentHash:E,...M}=m.taskDefinition,{policy:h,environment:y,environmentRelease:A,tools:F,capabilities:n,verifierSetRelease:f}=t.taskset,b=V.parse(P({...M,instructions:H,execution:{policy:h,environment:y,environmentRelease:A,tools:F,capabilities:n,verifierSetRelease:f}})),{contentHash:_,...o}=t.taskset,I=Y.parse(P({...o,tasks:t.taskset.tasks.map(T=>m.instructionMode==="per_task"?T:{...T,policyVisibleContext:{...T.policyVisibleContext,instructions:H}})})),B=he({owner:a.lineage.owner,source:{...m,taskset:e.taskset,executionResources:{environment:e.environment,verifierSet:e.verifierSet}},rewardBinding:m.rewardBinding,rewards:m.rewards,assets:[...u.values()],edits:{taskset:I,taskDefinition:b,executionResources:{environment:c,verifierSet:t.verifierSet},...l?{execution:l.execution}:{}}}),q=Ve.parse(B.taskset.metadata.modelTasksetDerivation);if(B.taskset.id!==a.tasksetId||B.taskset.revision!==a.tasksetRevision||p({...q,schemaVersion:a.lineage.schemaVersion})!==p(a.lineage))throw new Error("Bound draft differs from its retained ownership lineage.");let{taskset:ie,executionResources:et,...tt}=B;return ae({schemaVersion:"openpond.tasksetPackage.v1",taskset:ie,...et,modelResources:tt,files:t.files})}S(rt,"publishBoundModelTasksetDraftPackage");function us(s){let e=Ce.parse(s.request),t=Ae.parse(s.owner),a=L(s.source);if(a.learningResources)throw new Error("Reviewed Tasksets require their reviewed authoring workflow.");if(a.contentHash!==e.sourcePackageHash)throw new Error("Taskset draft source package changed.");if(a.modelResources){let x=$e({owner:t,source:{...a.modelResources,taskset:a.taskset,executionResources:{environment:a.environment,verifierSet:a.verifierSet}},rewardBinding:a.modelResources.rewardBinding,rewards:a.modelResources.rewards,assets:a.modelResources.assets}),R=x.taskset.metadata.modelTasksetDerivation;return W.parse({schemaVersion:"openpond.modelTasksetDraftPreparation.v1",draftId:`model-taskset-draft-${p({owner:t,operationId:e.operationId})}`,requestHash:p(e),sourcePackageHash:a.contentHash,sourceTasksetRef:v(a.taskset),tasksetId:x.taskset.id,tasksetRevision:x.taskset.revision,lineage:{...R,schemaVersion:"openpond.modelTasksetAuthoring.v1"},authoringGraph:"bound"})}let i=ze(a.taskset),m=i&&p(i.owner)===p(t),u=m?i.root:v(a.taskset),g={schemaVersion:"openpond.modelTasksetAuthoring.v1",owner:t,root:u,parent:v(a.taskset)};return W.parse({schemaVersion:"openpond.modelTasksetDraftPreparation.v1",draftId:`model-taskset-draft-${p({owner:t,operationId:e.operationId})}`,requestHash:p(e),sourcePackageHash:a.contentHash,sourceTasksetRef:v(a.taskset),tasksetId:Oe(g),tasksetRevision:m?a.taskset.revision+1:1,lineage:g})}S(us,"prepareModelTasksetDraft");function hs(s){let e=W.parse(s.preparation);if(!j(e.sourceTasksetRef,e.lineage.parent))throw new Error("Taskset draft preparation differs from its source lineage.");if(e.authoringGraph==="bound"){if(!s.source)throw new Error("Bound Taskset authoring requires its retained source package.");return rt({preparation:e,source:s.source,edited:s.edited})}let t=ot(s.edited),{contentHash:a,...i}=t.verifierSet,m=Me({...i,id:`${e.tasksetId}-verifiers`,revision:e.tasksetRevision,calibrationReceiptRefs:[],metadata:{sourceVerifierSet:v(t.verifierSet)}}),{contentHash:u,...g}=t.taskset,x=Y.parse(P({...g,id:e.tasksetId,revision:e.tasksetRevision,verifierSetRelease:{id:m.id,contentHash:m.contentHash},metadata:{modelTasksetAuthoring:e.lineage,...t.taskset.metadata.environmentResources===void 0?{}:{environmentResources:t.taskset.metadata.environmentResources},...t.taskset.metadata.ordinaryAuthoring===void 0?{}:{ordinaryAuthoring:t.taskset.metadata.ordinaryAuthoring}}})),R=X(t),r=R?[...t.files.filter(w=>w.asset.id!==Fe(t.taskset)),ve({...R.execution,verifierSet:m})]:t.files;return ae({schemaVersion:"openpond.tasksetPackage.v1",taskset:x,environment:t.environment,verifierSet:m,files:r})}S(hs,"publishModelTasksetDraftPackage");function ot(s){let e=L(s);if(e.modelResources||e.learningResources)throw new Error("This Taskset requires its bound or reviewed authoring workflow.");return e}S(ot,"requireOrdinaryPackage");function gs(s){let e=L(s.package),t=e.taskset,a=e.modelResources,i=e.learningResources?z(t):void 0,m=_e.parse({schemaVersion:"openpond.uploadedFileDatasetSource.v1",kind:"uploaded_file",id:`package-source-${p({profileId:s.profileId,packageHash:e.contentHash})}`,profileId:s.profileId,title:s.name,sourceHash:e.contentHash,occurredAt:s.createdAt,licensingStatus:"pending",secretScanStatus:"pending",piiScanStatus:"pending",originalFileNames:["taskset-package.json"],mediaTypes:["application/json"],sourceFileHashes:[e.contentHash],totalBytes:new TextEncoder().encode(JSON.stringify(e)).byteLength,parserVersion:"openpond.tasksetPackage.v1",metadata:{}}),u=Xe({profileId:s.profileId,id:`${t.id}-import`,name:s.name,now:s.createdAt}),g=[];for(let c of t.graders)if(c.kind==="custom_verifier"){let l=a?.assets.find(E=>E.id===c.verifierRef.id),d=e.files.find(E=>E.asset.id===c.verifierRef.id);if(!d)throw new Error(`Imported verifier source is missing: ${c.id}.`);let H=Je(c.verifierRef.contentHash);g.some(E=>E.path===H)||g.push({path:H,role:"verifier",content:l?ee(l,c.verifierRef):new TextDecoder("utf-8",{fatal:!0}).decode(J(d))})}let x=t.metadata.ordinaryAuthoring??t.metadata.starterAuthoring,R=De.array().max(1e5).parse(x?.graderFixtures??[]),r=t.environment.kind==="text"?"chat":t.environment.kind==="custom_program"?"program":t.environment.kind,w=$.parse({schemaVersion:"openpond.taskset.v1",id:t.id,revision:t.revision,profileId:s.profileId,profileRelease:null,createImproveRunId:null,name:s.name,objective:se(e),status:"needs_review",sourceRefs:[m],datasetArtifact:null,policy:t.policy,environment:{...u.environment,kind:r,entrypoint:t.environment.entrypoint,resources:Be.array().max(1e4).parse(t.metadata.environmentResources??[]),stateful:t.environment.stateful,deterministicSeeds:t.environment.deterministicSeeds,toolNames:t.tools.map(c=>c.name),defaultTimeoutMs:t.environment.defaultTimeoutMs,networkPolicy:t.environment.networkPolicy,metadata:{runtimeSourceTasksetId:it(s.profileId,e.contentHash),portableEnvironment:t.environment,portableTools:t.tools,portableExecutionResources:{environment:e.environment,verifierSet:e.verifierSet}}},capabilities:{...u.capabilities,taskKind:r==="chat"?"chat":r==="program"?"custom_program":"single_agent",compatibleMethods:["none"],requiresTools:t.tools.length>0,requiresState:t.environment.stateful,rewardKinds:[...new Set(t.graders.map(c=>c.kind==="human"?"human":c.kind==="model_judge"?"model_judge":"deterministic"))]},tasks:t.tasks.map(c=>({...c,schemaVersion:"openpond.taskData.v1",sourceRefs:[m.id],assets:c.artifactRefs.map(l=>({id:l.id,sourceRefId:m.id,artifactRef:l.path,fileName:l.path.split("/").at(-1),mediaType:l.mediaType,sha256:l.contentHash,sizeBytes:l.sizeBytes,split:c.split,metadata:{portableAsset:l}})),...c.requiredOutputs?{requiredOutputs:c.requiredOutputs.map(l=>({...l,schemaRef:l.schemaRef?.id??null,maxBytes:l.maxBytes??void 0}))}:{},metadata:{portableTaskRecord:c,exampleOrigin:"imported"}})),graders:a?ge(a.rewardBinding,a.rewards,a.assets):i?ge(i.binding,i.rewards,e.learningResources.assets):We(e),graderFixtures:R,learningSignals:u.learningSignals,...t.metrics?{metrics:t.metrics}:{},authoringProvenance:{schemaVersion:"openpond.taskAuthoringProvenance.v1",model:null,modelConfig:{},skillHash:p("openpond-package-import-v1"),promptTemplateVersion:"package-import-v1",buildIntent:"discovery",buildSpecification:null,evidenceHashes:[e.contentHash],tasksetSdkVersion:"package-import-v1",sourceCommit:null,repairHistory:[],createdAt:s.createdAt},readiness:null,contentHash:"00000000",createdAt:s.createdAt,updatedAt:s.createdAt,metadata:{importedPackageHash:e.contentHash,...i?{learning:i}:{},portableFileInventory:e.files.map(c=>({asset:c.asset,sourcePath:c.asset.path})),...a?{taskDefinition:v(a.taskDefinition),rewardBinding:v(a.rewardBinding),rewardExecution:{binding:a.rewardBinding,rewards:a.rewards}}:{},portableCapabilities:t.capabilities,derivedPortableMetadata:t.metadata,...t.metadata.modelTasksetDerivation?{modelTasksetDerivation:t.metadata.modelTasksetDerivation}:{}}});return{package:e,taskset:$.parse({...w,contentHash:te(w)}),generatedFiles:g}}S(gs,"prepareImportedTasksetPackage");function it(s,e){return`package-${p({profileId:s,packageHash:e})}`}S(it,"tasksetPackageSourceId");function ct(s,e,t,a){if(s.environment.entrypoint!=="openpond.javascript-environment.v1")return{taskset:s,inventory:t,generatedFiles:[]};let i="environment/execution.json",m=e.get(i);if(!m||m.length>524288)throw new Error("Authored tool environment requires its bounded private execution declaration.");let u=Le.parse(JSON.parse(new TextDecoder("utf-8",{fatal:!0}).decode(m))),g=S(M=>{if(!M)return null;let h=t.find(y=>y.asset.id===M.id&&y.asset.path===M.path);if(!h)throw new Error(`Authored environment dependency is missing: ${M.id}.`);return h.asset},"repin"),{contentHash:x,...R}=u.javascript,r=je.parse(P({...R,id:`javascript-${s.id}`,revision:s.revision,module:g(u.javascript.module)}));if(p(r.tools)!==p(s.environment.metadata.portableTools)||p(r.tools.map(M=>M.name))!==p(s.environment.toolNames))throw new Error("Authored environment tools differ from the Taskset's declared tools.");let w=Ee({schemaVersion:"openpond.environmentRelease.v1",id:`environment-${s.id}`,revision:s.revision,contract:Ne(s),actionSchemaRef:g(u.environment.actionSchemaRef),observationSchemaRef:g(u.environment.observationSchemaRef),stateSchemaRef:g(u.environment.stateSchemaRef),artifactCollection:u.environment.artifactCollection,adapterConformanceHashes:{},metadata:{javascriptEnvironment:v(r),resources:s.environment.resources??[]}}),c=$.parse({...s,environment:{...s.environment,metadata:{...s.environment.metadata,portableExecutionResources:{environment:w}}}}),l=Ge({taskset:c,adapterId:a}),d=ve({javascript:r,environment:w,verifierSet:l.verifierSetRelease}),H=[...t.filter(M=>M.sourcePath!==i),{asset:d.asset,sourcePath:i}],E=$.parse({...c,metadata:{...c.metadata,portableFileInventory:H}});return{taskset:$.parse({...E,contentHash:te(E)}),inventory:H,generatedFiles:[{path:i,role:"environment",content:new TextDecoder().decode(J(d))}]}}S(ct,"prepareAuthoredToolEnvironment");var we=k.array(k.object({asset:fe,sourcePath:k.string().min(1)}).strict()).max(1e4),dt=new Set(["taskset.json","capabilities.json","data/tasks.jsonl","graders/graders.json","fixtures/grader-fixtures.json","environment/taskset.ts"]);function Ts(s){return dt.has(s)}S(Ts,"isGeneratedTasksetPublicationFilePath");function Ss(s,e,t){let a=$.parse(s);if(a.metadata.taskDefinition!==void 0||a.metadata.rewardBinding!==void 0)return{taskset:a,generatedFiles:[]};let i=new Map,m=0;for(let[n,f]of e){if(ue.parse(n),m+=f.byteLength,i.size>=1e4||m>qe*3/4)throw new Error("Taskset source exceeds the package byte limit.");i.set(n,f.slice())}let u=a.metrics?.customAggregator,g=u?i.get(u.module):void 0;if(u&&!g)throw new Error("Declared Taskset metric module is missing.");let x=u&&g?{...a.metrics,customAggregator:{...u,contentHash:K(g)}}:a.metrics,R=new Map,r=new Set,w=[],c=S((n,f,b,_)=>{let o=i.get(f);if(!o)throw new Error(`Declared Taskset file is missing: ${f}.`);return{id:n,path:f,contentHash:K(o),sizeBytes:o.byteLength,mediaType:b,visibility:_}},"ref"),l=S((n,f=n.path)=>{let b=R.get(n.id);if(b&&p(b)!==p({asset:n,sourcePath:f}))throw new Error(`Conflicting Taskset file identity: ${n.id}.`);let _=i.get(f);if(!_||_.length!==n.sizeBytes||K(_)!==n.contentHash)throw new Error(`Taskset file differs from its declared bytes: ${n.id}.`);R.set(n.id,{asset:n,sourcePath:f}),r.add(f)},"add");for(let n of a.tasks){let f=Ke(n);for(let b of f.artifactRefs)l(b,n.assets?.find(_=>_.id===b.id)?.artifactRef??b.path);for(let b of f.requiredOutputs??[])b.schemaRef&&l(b.schemaRef)}for(let n of a.environment.resources??[])l(c(n.id,n.path,n.mediaType??"application/octet-stream",n.visibility==="policy_visible"?"policy":"host_private"));let d=a.graders.map(n=>{if(n.kind==="custom_verifier"){let f=c(`verifier-${n.id}`,n.module,"application/javascript","host_private"),b=fe.safeParse(n.metadata.portableVerifierRef);return b.success&&b.data.contentHash===f.contentHash&&b.data.sizeBytes===f.sizeBytes&&(f=b.data),l(f,n.module),{...n,metadata:{...n.metadata,portableVerifierRef:f}}}if(n.kind==="human"||n.kind==="model_judge"){let f=new TextEncoder().encode(n.rubric),b=`graders/rubric-${K(f)}.md`;i.set(b,f);let _=c(`rubric-${n.id}`,b,"text/markdown","verifier");return l(_),w.push({path:b,role:"verifier",content:n.rubric}),{...n,metadata:{...n.metadata,portableRubricRef:_}}}return n});u&&![...R.values()].some(n=>n.asset.path===u.module&&n.sourcePath===u.module&&n.asset.visibility!=="policy")&&l(c(`metric-${p(u.module)}`,u.module,"application/javascript","host_private"));let H=we.parse(a.metadata.portableFileInventory??[]);for(let n of[...i.keys()].sort())if(!r.has(n)){let f=H.find(b=>b.sourcePath===n&&!R.has(b.asset.id));l(f?{...c(f.asset.id,n,f.asset.mediaType,f.asset.visibility),path:f.asset.path}:c(`taskset-file-${p(n)}`,n,"application/octet-stream","host_private"),n)}let{importedPackageHash:E,derivedPortableMetadata:M,...h}=a.metadata,y={...a.environment.metadata};if(y.portableExecutionResources!==void 0){let n=k.object({environment:k.unknown(),verifierSet:k.unknown().optional()}).parse(y.portableExecutionResources);y.portableExecutionResources={environment:n.environment}}let A=$.parse({...a,graders:d,metrics:x,environment:{...a.environment,metadata:y},metadata:{...h,...E===void 0?{}:{sourceImportedPackageHash:E},portableFileInventory:we.parse([...R.values()].sort((n,f)=>n.asset.id.localeCompare(f.asset.id)))}}),F=ct(A,i,[...R.values()],t);return{taskset:$.parse({...F.taskset,contentHash:te(F.taskset)}),generatedFiles:[...w,...F.generatedFiles]}}S(Ss,"prepareAuthoredTasksetSource");var mt=k.object({draft:ne,filePaths:k.array(k.object({assetId:k.string().min(1),paths:k.array(ue).min(1).max(1e4)}).strict()).max(1e4)}).strict();function Is(s){let e=L(s.source),t=ne.parse(s.sourceDraft),a=W.parse(s.preparation);if(e.contentHash!==a.sourcePackageHash||!j(v(e.taskset),a.sourceTasksetRef))throw new Error("Taskset draft preparation differs from its source package.");if(e.learningResources)throw new Error("Reviewed Tasksets require their reviewed authoring workflow.");if(!!e.modelResources!=(a.authoringGraph==="bound"))throw new Error("Taskset draft authoring graph differs from its source.");let i=we.parse(t.metadata.portableFileInventory??[]),m=S(r=>re(r)?`source-artifacts/${e.contentHash}/${p(r)}/${r.split("/").at(-1)}`:r,"sourcePath");if([...t.tasks.flatMap(r=>(r.assets??[]).map(w=>w.artifactRef)),...(t.environment.resources??[]).map(r=>r.path),...e.taskset.tasks.flatMap(r=>(r.requiredOutputs??[]).flatMap(w=>w.schemaRef?[w.schemaRef.path]:[])),...t.metrics.customAggregator?[t.metrics.customAggregator.module]:[],...t.graders.flatMap(r=>r.kind==="custom_verifier"?[r.module]:[])].some(re))throw new Error("A referenced source asset occupies a reserved Taskset authoring path.");let g=e.files.map(r=>{let w=new Set([r.asset.path]);for(let c of i)c.asset.id===r.asset.id&&w.add(c.sourcePath);for(let c of t.tasks)for(let l of c.assets??[])l.id===r.asset.id&&w.add(l.artifactRef);for(let c of e.taskset.graders)if(c.kind==="custom_verifier"&&c.verifierRef.id===r.asset.id){let l=t.graders.find(d=>d.id===c.id);l?.kind==="custom_verifier"&&w.add(l.module)}return{assetId:r.asset.id,paths:[...w].map(m)}}),x={...t.metadata};if(e.modelResources)for(let r of["taskDefinition","rewardBinding","rewardExecution","derivedPortableMetadata","modelTasksetDerivation","importedPackageHash"])delete x[r];let R=ne.parse({...t,id:a.draftId,revision:1,status:"draft",graders:t.graders.map(r=>({...r,metadata:{...r.metadata,portableGrader:e.taskset.graders.find(w=>w.id===r.id)}})),environment:{...t.environment,metadata:{...t.environment.metadata,portableExecutionResources:{environment:e.environment}}},modelScope:{modelId:a.lineage.owner.modelId,expectedModelRevision:s.expectedModelRevision,source:a},publishedTasksetRef:a.tasksetRevision>1?a.sourceTasksetRef:null,metadata:{...x,modelTasksetAuthoring:a.lineage,portableFileInventory:i.map(r=>({...r,sourcePath:m(r.sourcePath),asset:{...r.asset,id:re(r.sourcePath)?`source-artifact-${p({packageHash:e.contentHash,assetId:r.asset.id})}`:r.asset.id,path:m(r.asset.path)}}))}});return mt.parse({draft:R,filePaths:g})}S(Is,"prepareTasksetDraftSource");export{ke as a,ss as b,is as c,nt as d,cs as e,us as f,hs as g,gs as h,it as i,we as j,Ts as k,Ss as l,mt as m,Is as n};
|