openpond 0.2.46 → 0.2.47

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (204) hide show
  1. package/dist/app-server.d.ts +96 -1
  2. package/dist/app-server.js +1 -1
  3. package/dist/chunks/{actions-command-I3NI75P2.js → actions-command-DSO6YOEE.js} +1 -1
  4. package/dist/chunks/{app-layer-B3SMVO4B.js → app-layer-RRFI27N4.js} +1 -1
  5. package/dist/chunks/app-server-runtime-3KFJJUJH.js +2 -0
  6. package/dist/chunks/{apps-OA2VX34V.js → apps-NELJL377.js} +1 -1
  7. package/dist/chunks/{chunk-4UTIEH5H.js → chunk-2SPZYBDN.js} +1 -1
  8. package/dist/chunks/{chunk-JBHAU7PH.js → chunk-36YNUUZL.js} +137 -137
  9. package/dist/chunks/chunk-3HBCQNRN.js +2 -0
  10. package/dist/chunks/chunk-4UTBLHFC.js +2 -0
  11. package/dist/chunks/{chunk-FOEUDMME.js → chunk-526PVA3V.js} +86 -86
  12. package/dist/chunks/{chunk-5OGRWWEH.js → chunk-6MH55NGW.js} +1 -1
  13. package/dist/chunks/{chunk-YSYXIJ46.js → chunk-7QEE4PBI.js} +1 -1
  14. package/dist/chunks/{chunk-F2AG46CV.js → chunk-7YR6CBNU.js} +1 -1
  15. package/dist/chunks/{chunk-HO5L2FUU.js → chunk-A2GVVXFV.js} +1 -1
  16. package/dist/chunks/{chunk-W4IL6TWB.js → chunk-BM7TU6NX.js} +115 -111
  17. package/dist/chunks/{chunk-HP2D3W2B.js → chunk-CNTGL5IX.js} +1 -1
  18. package/dist/chunks/{chunk-WWABOVRW.js → chunk-D7DA5G2U.js} +2 -2
  19. package/dist/chunks/{chunk-UWO34HP6.js → chunk-DALJMSJG.js} +2 -2
  20. package/dist/chunks/{chunk-33AO3P6X.js → chunk-DLZP22WV.js} +1 -1
  21. package/dist/chunks/{chunk-BKMGBIBT.js → chunk-EMKZVP7Z.js} +1 -1
  22. package/dist/chunks/chunk-F7RCOLZD.js +2 -0
  23. package/dist/chunks/{chunk-ZJY2L43W.js → chunk-HA7EFTPF.js} +1 -1
  24. package/dist/chunks/{chunk-HK3WGUKK.js → chunk-IKWDL3RB.js} +1 -1
  25. package/dist/chunks/{chunk-ZC57DX6D.js → chunk-JDLAHVAJ.js} +1 -1
  26. package/dist/chunks/{chunk-D6MQTNJ3.js → chunk-K6S4TY5W.js} +6 -6
  27. package/dist/chunks/{chunk-IV7F74JJ.js → chunk-MASJQWA2.js} +1 -1
  28. package/dist/chunks/{chunk-XLDW5NN3.js → chunk-N3DEA6PG.js} +1 -1
  29. package/dist/chunks/{chunk-F5DUN73H.js → chunk-N5QNXMIS.js} +1 -1
  30. package/dist/chunks/{chunk-MCRA6ZGJ.js → chunk-NAZ26IZL.js} +1 -1
  31. package/dist/chunks/chunk-NNF6KCHD.js +3 -0
  32. package/dist/chunks/{chunk-USWZ3KUC.js → chunk-PA7XP42P.js} +1 -1
  33. package/dist/chunks/{chunk-BQNK2NMB.js → chunk-PJM2G7SG.js} +1 -1
  34. package/dist/chunks/chunk-PYABBF53.js +53 -0
  35. package/dist/chunks/{chunk-TYWBEJOA.js → chunk-Q4H3NUVW.js} +2 -2
  36. package/dist/chunks/chunk-QRWPEW3Z.js +24 -0
  37. package/dist/chunks/{chunk-LZSY5IM3.js → chunk-QXVIIM4T.js} +1 -1
  38. package/dist/chunks/{chunk-6SJZXZNA.js → chunk-R3XFY7VL.js} +1 -1
  39. package/dist/chunks/{chunk-EWS7MXTM.js → chunk-RLZPX4YP.js} +1 -1
  40. package/dist/chunks/{chunk-VW7D3DRM.js → chunk-SDEDAHV6.js} +72 -67
  41. package/dist/chunks/{chunk-BUFQKDAW.js → chunk-T5LE6R5S.js} +1 -1
  42. package/dist/chunks/{chunk-L4BYPZ4U.js → chunk-TGIB24K4.js} +1 -1
  43. package/dist/chunks/{chunk-KUKOZJIR.js → chunk-TT46OISU.js} +1 -1
  44. package/dist/chunks/{chunk-6WLJWRMF.js → chunk-UJ5EFSEC.js} +1 -1
  45. package/dist/chunks/{chunk-KE5RH6JA.js → chunk-WITSXYEW.js} +1 -1
  46. package/dist/chunks/chunk-WV2APYWG.js +2 -0
  47. package/dist/chunks/chunk-XBCIBAXD.js +4 -0
  48. package/dist/chunks/chunk-XDMUD4FW.js +5 -0
  49. package/dist/chunks/{chunk-DNXKIIV7.js → chunk-XM26DGML.js} +1 -1
  50. package/dist/chunks/{chunk-4VKNBADF.js → chunk-XON44M6V.js} +1 -1
  51. package/dist/chunks/{chunk-D6E7JBBQ.js → chunk-YBVIFIXN.js} +1 -1
  52. package/dist/chunks/{chunk-OGXSE57Z.js → chunk-YIB3J4RC.js} +1 -1
  53. package/dist/chunks/{chunk-H6W55CQG.js → chunk-YL6VFJ4P.js} +1 -1
  54. package/dist/chunks/cli-WPAYXAJX.js +2 -0
  55. package/dist/chunks/{configuration-command-MVZS625X.js → configuration-command-SA56RV5B.js} +1 -1
  56. package/dist/chunks/{connected-evidence-7LHUZ2UI.js → connected-evidence-IVSQZYIB.js} +1 -1
  57. package/dist/chunks/{continual-K5JNHNQH.js → continual-PKK2BOTB.js} +1 -1
  58. package/dist/chunks/core-commands-W5IGIITV.js +2 -0
  59. package/dist/chunks/{datasets-KDN2EXHE.js → datasets-KSO2UG6R.js} +1 -1
  60. package/dist/chunks/{desktop-test-WIOEKMPR.js → desktop-test-6HXFM7PO.js} +1 -1
  61. package/dist/chunks/{dist-JBE7DPFZ.js → dist-4HV2W6V4.js} +1 -1
  62. package/dist/chunks/{dist-3MTJ7VM6.js → dist-VDVI7KIO.js} +1 -1
  63. package/dist/chunks/{evaluation-coordination-NGYHL7HG.js → evaluation-coordination-MOFBXRXN.js} +1 -1
  64. package/dist/chunks/{experiment-improvements-2M7GRGWS.js → experiment-improvements-TDHM6NEA.js} +1 -1
  65. package/dist/chunks/{experiments-B6CRZ3GI.js → experiments-HFPDFD4I.js} +1 -1
  66. package/dist/chunks/{extension-RZTMK3ON.js → extension-R373LYIB.js} +1 -1
  67. package/dist/chunks/{help-EISFHH2F.js → help-PEFQDDTA.js} +1 -1
  68. package/dist/chunks/{hosted-experiment-improvement-6CHH65DX.js → hosted-experiment-improvement-T6Q7ASMI.js} +1 -1
  69. package/dist/chunks/hosted-harness-runtime-2R5QRZCG.js +2 -0
  70. package/dist/chunks/{hosted-profile-candidate-HYEISIAC.js → hosted-profile-candidate-TKOY3M4S.js} +1 -1
  71. package/dist/chunks/hosted-profile-compiler-VLBFIEWK.js +2 -0
  72. package/dist/chunks/{hosted-profile-evaluation-control-LV6YXOG7.js → hosted-profile-evaluation-control-7B3RAZU2.js} +1 -1
  73. package/dist/chunks/{hosted-profile-evaluation-inspection-A62UYFEP.js → hosted-profile-evaluation-inspection-3MB6MWO6.js} +1 -1
  74. package/dist/chunks/{hosted-profile-evaluation-preparation-OR4OLYEX.js → hosted-profile-evaluation-preparation-C7WEABZ5.js} +1 -1
  75. package/dist/chunks/{human-review-J6JGNRBR.js → human-review-HRGGACEM.js} +1 -1
  76. package/dist/chunks/import-RSAQ44GG.js +4 -0
  77. package/dist/chunks/{learning-REL6GGNA.js → learning-FNBEIAY6.js} +1 -1
  78. package/dist/chunks/{opchat-CUZUU2WM.js → opchat-I7ZWJ5XK.js} +1 -1
  79. package/dist/chunks/{organizations-VT27V4B2.js → organizations-LFCZIH7E.js} +1 -1
  80. package/dist/chunks/{profile-N2E5ASHQ.js → profile-EPIX5QVK.js} +1 -1
  81. package/dist/chunks/{project-agent-XMXOBJSC.js → project-agent-DGOPMECP.js} +1 -1
  82. package/dist/chunks/{sandbox-command-NC665ZZ5.js → sandbox-command-Q5F6VUOS.js} +1 -1
  83. package/dist/chunks/{sandbox-template-OTP6S3RU.js → sandbox-template-7GICPIKJ.js} +1 -1
  84. package/dist/chunks/{src-WM35IF4W.js → src-DH5AQ4Z7.js} +1 -1
  85. package/dist/chunks/src-R4TSYNTK.js +329 -0
  86. package/dist/chunks/{taskset-COAPMTT3.js → taskset-LUG3ZU6J.js} +1 -1
  87. package/dist/chunks/{teams-bot-ACWJ7PJP.js → teams-bot-Z6RJGHME.js} +1 -1
  88. package/dist/chunks/{training-4JUK7YQV.js → training-XHE6FVII.js} +1 -1
  89. package/dist/cli.js +1 -1
  90. package/dist/index.js +1 -1
  91. package/dist/web/agent-sources/SOURCES.md +11 -0
  92. package/dist/web/agent-sources/claude-code.svg +1 -0
  93. package/dist/web/agent-sources/codex.svg +1 -0
  94. package/dist/web/agent-sources/grok-build.svg +3 -0
  95. package/dist/web/agent-sources/hermes.png +0 -0
  96. package/dist/web/agent-sources/oh-my-pi.svg +11 -0
  97. package/dist/web/agent-sources/openclaw.svg +54 -0
  98. package/dist/web/agent-sources/opencode.svg +4 -0
  99. package/dist/web/agent-sources/pi.svg +6 -0
  100. package/dist/web/assets/App-BI-uOpnP.js +234 -0
  101. package/dist/web/assets/App-DkH8CeoI.css +1 -0
  102. package/dist/web/assets/{AppDialog-CaxeNfsu.js → AppDialog-1iGodoot.js} +1 -1
  103. package/dist/web/assets/{AppTerminalPanel-dtK0ZPer.js → AppTerminalPanel-udtBdWFn.js} +2 -2
  104. package/dist/web/assets/AppsView-BonAGiS8.css +1 -0
  105. package/dist/web/assets/AppsView-DhKsU4yi.js +1 -0
  106. package/dist/web/assets/BrowserSidebar-BnOyqIQT.js +1 -0
  107. package/dist/web/assets/{CartesianChart-Drfk6jTn.js → CartesianChart-C24DAywn.js} +1 -1
  108. package/dist/web/assets/{CollaborationTabs-Czh2noeb.js → CollaborationTabs-DgmOF5Fe.js} +1 -1
  109. package/dist/web/assets/{CommandMenu-D-M-xomh.js → CommandMenu-CUNGtHwS.js} +1 -1
  110. package/dist/web/assets/{CommunityView-BrdxUI5Z.js → CommunityView-CE7qeJnr.js} +1 -1
  111. package/dist/web/assets/{ComposerCreateImproveStrip-CJ8nkYJf.js → ComposerCreateImproveStrip-BixNsg2a.js} +1 -1
  112. package/dist/web/assets/{GetStartedView-u7Jw7YA1.js → GetStartedView-B8gCwmBX.js} +1 -1
  113. package/dist/web/assets/{HostedModelLearningReview-D0a2nwse.js → HostedModelLearningReview-CitgUNfC.js} +1 -1
  114. package/dist/web/assets/{HostedModelLearningSettings-CQQGyjxi.js → HostedModelLearningSettings-WUaqzNsa.js} +1 -1
  115. package/dist/web/assets/{LabModelVersionDetailPage-Cxlc4sSC.js → LabModelVersionDetailPage-Cx0kL69J.js} +1 -1
  116. package/dist/web/assets/{LabSkillSidebar-BnJkDb0c.js → LabSkillSidebar-DRggqZ1j.js} +1 -1
  117. package/dist/web/assets/LabsRoute-BujTZhqC.js +99 -0
  118. package/dist/web/assets/{MainChatThread-r_TYiTnW.js → MainChatThread-CyA_644R.js} +2 -2
  119. package/dist/web/assets/MainPane-LaEtxydD.js +19 -0
  120. package/dist/web/assets/{MarkdownText-BxPHz4je.js → MarkdownText-DJI5LwT0.js} +19 -19
  121. package/dist/web/assets/{NativeSkillSidebar-CCHK6kMG.js → NativeSkillSidebar-CkFpWxjd.js} +1 -1
  122. package/dist/web/assets/{NewExperienceSwitcher-CuKWTDZj.js → NewExperienceSwitcher-DXcRHHsu.js} +1 -1
  123. package/dist/web/assets/{NewProjectDialog-CS6sw2oD.js → NewProjectDialog-gDzX_ZIJ.js} +1 -1
  124. package/dist/web/assets/{OutputsPage-JDM5bfLJ.js → OutputsPage-J_k-_N82.js} +1 -1
  125. package/dist/web/assets/{ProjectsPage-B3zTBHOA.js → ProjectsPage-BsyZmvlg.js} +1 -1
  126. package/dist/web/assets/{RightChatPanelStack-L8S3yj1u.js → RightChatPanelStack-Bz8puMUB.js} +1 -1
  127. package/dist/web/assets/{RightSidebarHomePanel-BWJQKFUp.js → RightSidebarHomePanel-DmorYb6p.js} +1 -1
  128. package/dist/web/assets/ScheduledWorkPage-BFDzQUyL.js +1 -0
  129. package/dist/web/assets/SettingsView-BB7wCdbr.js +5 -0
  130. package/dist/web/assets/SettingsView-BnANbPLS.css +1 -0
  131. package/dist/web/assets/{TeamChatView-DakXCNQE.js → TeamChatView-CZ3b7rq2.js} +2 -2
  132. package/dist/web/assets/{TerminalOverlay-DaonK5C0.js → TerminalOverlay-Ck43Qri3.js} +1 -1
  133. package/dist/web/assets/{TrainingCreationPanel-CUvSsSwp.js → TrainingCreationPanel-ejqPZm3g.js} +1 -1
  134. package/dist/web/assets/{TrainingDraftPanel-DNivtVwd.js → TrainingDraftPanel-Cy2AQxxL.js} +1 -1
  135. package/dist/web/assets/{UsageSettingsSection-rbmuoPoE.js → UsageSettingsSection-B7nyMItm.js} +1 -1
  136. package/dist/web/assets/{WorkSidebarPanel-DrYt9xzv.js → WorkSidebarPanel-BfjAc097.js} +1 -1
  137. package/dist/web/assets/{WorkspaceDiffPanel-CThoTqe4.js → WorkspaceDiffPanel-D9hAV8l7.js} +5 -5
  138. package/dist/web/assets/{WorkspaceEnvironmentMenu-DeODKxvW.js → WorkspaceEnvironmentMenu-B-K9XgFB.js} +3 -3
  139. package/dist/web/assets/{WorkspaceGitDialogs-CBarJYF-.js → WorkspaceGitDialogs-BJVFx_L3.js} +1 -1
  140. package/dist/web/assets/{WorkspaceMonacoEditor-Hmu5m_sO.js → WorkspaceMonacoEditor-p-FWMXoZ.js} +3 -3
  141. package/dist/web/assets/{arrow-up-right-BV2IHfb9.js → arrow-up-right-CFGI2YSt.js} +1 -1
  142. package/dist/web/assets/{chunk-YTGRET2L-PKzEfYnf.js → chunk-UHVJOMWN-BAlur2vw.js} +1 -1
  143. package/dist/web/assets/{clipboard-DDIvAWKp.js → clipboard-DIIxBort.js} +1 -1
  144. package/dist/web/assets/{cloud-upload-Dv6kFnfC.js → cloud-upload-BaQFNCTp.js} +1 -1
  145. package/dist/web/assets/{cssMode-BK0jFqWW.js → cssMode-6LOkSggB.js} +1 -1
  146. package/dist/web/assets/{folder-open-B9ixJQJX.js → folder-open-DZSxfPtr.js} +1 -1
  147. package/dist/web/assets/{folder-plus-DqSKvtNB.js → folder-plus-21v4D_Vx.js} +1 -1
  148. package/dist/web/assets/{git-commit-horizontal-C1lQvfxe.js → git-commit-horizontal-CgGixL64.js} +1 -1
  149. package/dist/web/assets/{htmlMode-CCV301b6.js → htmlMode-B5uRraNd.js} +1 -1
  150. package/dist/web/assets/index-DJcUXSsN.css +1 -0
  151. package/dist/web/assets/{index-DIaKfM8a.js → index-DOMrqhcz.js} +2 -2
  152. package/dist/web/assets/{info-BEvaynAD.js → info-BGTcmow7.js} +1 -1
  153. package/dist/web/assets/{jsonMode-Co4pyN4F.js → jsonMode-D3m8N4Gi.js} +1 -1
  154. package/dist/web/assets/{lspLanguageFeatures-CSU0G5da.js → lspLanguageFeatures-DoyipLsB.js} +1 -1
  155. package/dist/web/assets/{minimize-2-DT8t8wwP.js → minimize-2-B01qSko4.js} +1 -1
  156. package/dist/web/assets/{monaco.contribution-Cr0AaHCD.js → monaco.contribution--U8v3jpa.js} +2 -2
  157. package/dist/web/assets/{monaco.contribution-DSBAb_PC.js → monaco.contribution-BJyfaGX2.js} +2 -2
  158. package/dist/web/assets/{monaco.contribution-CBwGIQY1.js → monaco.contribution-Bc22foTx.js} +2 -2
  159. package/dist/web/assets/{monaco.contribution-DUZrs1D-.js → monaco.contribution-DuRhJ6zU.js} +2 -2
  160. package/dist/web/assets/{monitor-DGqnfsK9.js → monitor-eZP8ZTHe.js} +1 -1
  161. package/dist/web/assets/{play-C1XWyKh6.js → play-CGsWFR_B.js} +1 -1
  162. package/dist/web/assets/{python-Z1foxLdf.js → python-BNrLZWud.js} +1 -1
  163. package/dist/web/assets/{save-CX2kF74j.js → save-BLgjrccP.js} +1 -1
  164. package/dist/web/assets/{square-DMkXeYeV.js → square-CI1qNtvE.js} +1 -1
  165. package/dist/web/assets/{toggleHighContrast-CRMVp779.js → toggleHighContrast-B_GcTCnw.js} +1 -1
  166. package/dist/web/assets/{tsMode-Czu8YAqh.js → tsMode-CmruH_ys.js} +1 -1
  167. package/dist/web/assets/{upload-giKOPnl1.js → upload-DnlgGS2x.js} +1 -1
  168. package/dist/web/assets/useLocalAgentSchedules-BBhGUfK-.js +1 -0
  169. package/dist/web/assets/useProviderSettings-Bw-csWbH.css +1 -0
  170. package/dist/web/assets/useProviderSettings-DfhdkKdC.js +5 -0
  171. package/dist/web/assets/{useSessionTurnCache-CUYFsu_W.js → useSessionTurnCache-BwscKl5i.js} +1 -1
  172. package/dist/web/assets/{wifi-off-DbDXaV1N.js → wifi-off-Dz-4EDCc.js} +1 -1
  173. package/dist/web/assets/{workers-Cno4XklJ.js → workers-Bi9u46cp.js} +1 -1
  174. package/dist/web/assets/{yaml-C28t_C6h.js → yaml-DVTkiRnh.js} +1 -1
  175. package/dist/web/index.html +2 -2
  176. package/package.json +1 -1
  177. package/dist/chunks/app-server-runtime-FL2CHQU2.js +0 -2
  178. package/dist/chunks/chunk-5ZZM3TUN.js +0 -24
  179. package/dist/chunks/chunk-6JBWHR6T.js +0 -5
  180. package/dist/chunks/chunk-FKCWOASO.js +0 -49
  181. package/dist/chunks/chunk-ICZEOMPO.js +0 -2
  182. package/dist/chunks/chunk-JO7GRBOG.js +0 -2
  183. package/dist/chunks/chunk-M7PBDRKC.js +0 -2
  184. package/dist/chunks/chunk-P653BXMY.js +0 -3
  185. package/dist/chunks/chunk-PMZH2TKS.js +0 -4
  186. package/dist/chunks/chunk-WVNN3RB2.js +0 -2
  187. package/dist/chunks/cli-5QR7QNQJ.js +0 -2
  188. package/dist/chunks/core-commands-J2SJM5I5.js +0 -2
  189. package/dist/chunks/hosted-harness-runtime-PAYMAXH7.js +0 -2
  190. package/dist/chunks/hosted-profile-compiler-KQREWJA5.js +0 -2
  191. package/dist/chunks/import-YHSX6SBZ.js +0 -4
  192. package/dist/chunks/src-TNWF3IC5.js +0 -329
  193. package/dist/web/assets/App-CdDQ-lXE.css +0 -1
  194. package/dist/web/assets/App-D2f8_mGk.js +0 -235
  195. package/dist/web/assets/AppsView-CzbB5pXp.css +0 -1
  196. package/dist/web/assets/AppsView-DwK1UBJP.js +0 -1
  197. package/dist/web/assets/BrowserSidebar-Cj9VnkgU.js +0 -1
  198. package/dist/web/assets/LabsRoute-hHwZNbqN.js +0 -99
  199. package/dist/web/assets/MainPane-DJcd4tPk.js +0 -19
  200. package/dist/web/assets/ScheduledWorkPage-qX12p4B0.js +0 -1
  201. package/dist/web/assets/SettingsView-0KMs-r2I.js +0 -9
  202. package/dist/web/assets/SettingsView-CVsuQeCZ.css +0 -1
  203. package/dist/web/assets/index-1cMIFBxZ.css +0 -1
  204. package/dist/web/assets/useLocalAgentSchedules-BHxWmOeC.js +0 -1
@@ -1,5 +1,5 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{a as Et,b as Se}from"./chunk-L3KS6MOV.js";import{w as vt}from"./chunk-HK3WGUKK.js";import{b as j,d as we,e as Pe}from"./chunk-Z3D4C7BG.js";import{E as Ne,F as je,P as It,Q as Ct,_ as De,f as ye}from"./chunk-UWO34HP6.js";import{f as L,h as ge,p as Le,r as bt}from"./chunk-H7IWJN7L.js";import{a}from"./chunk-FTQLQJQV.js";import{createRequire as Po}from"node:module";import{createHash as po,randomUUID as ho}from"node:crypto";import{spawn as Pr}from"node:child_process";import{existsSync as U}from"node:fs";import{cp as Sr,mkdir as F,readFile as So,readdir as Ao,rename as at,rm as it,symlink as Ar,writeFile as ie}from"node:fs/promises";import d from"node:path";import Sn from"node:path";var Ae="default",Rt=["apiKey","baseUrl","apiBaseUrl","chatApiBaseUrl","token","appId","conversationId"];function W(e,t){return Object.prototype.hasOwnProperty.call(e,t)}a(W,"hasOwn");function z(e){if(typeof e!="string")return null;let t=e.trim();return t.length>0?t:null}a(z,"normalizeHandle");function _(e){if(typeof e!="string")return null;let t=e.trim();return t?t.replace(/\/$/,""):null}a(_,"normalizeBaseUrl");function Bt(e){let t=z(e);if(!t)throw new Error("profile handle must be non-empty");return t}a(Bt,"requireHandle");function An(e){if(typeof e!="string")throw new Error("apiKey must be a non-empty string");let t=e.trim();if(!t)throw new Error("apiKey must be a non-empty string");return t}a(An,"requireApiKey");function de(e,t){let o=z(e),n=z(t);return!!(o&&n&&o.toLowerCase()===n.toLowerCase())}a(de,"handleEquals");function qe(e,t,o){let n=_(o);return e.findIndex(r=>de(r.handle,t)?n?_(r.baseUrl)===n:!0:!1)}a(qe,"findAccountIndex");function ne(e){let t=z(e.handle)??Ae,o=_(e.baseUrl);return o?{handle:t,baseUrl:o}:{handle:t}}a(ne,"selectorFromAccount");function oe(e){if(!e||typeof e!="object"||Array.isArray(e))return null;let t=e,o=z(typeof t.handle=="string"?t.handle:void 0);if(!o)return null;let n=_(typeof t.baseUrl=="string"?t.baseUrl:void 0);return n?{handle:o,baseUrl:n}:{handle:o}}a(oe,"sanitizeActiveProfile");function Fe(e){if(!e||typeof e!="object"||Array.isArray(e))return;let t=e,o=typeof t.repoPath=="string"?t.repoPath.trim():"",n=typeof t.profile=="string"&&t.profile.trim()?t.profile.trim():"default";if(!o)return;let r={repoPath:o,profile:n,mode:"local"};if(t.lastCheck&&typeof t.lastCheck=="object"&&!Array.isArray(t.lastCheck)){let s=t.lastCheck,i=s.command,c=s.status,l=s.checkedAt;(i==="inspect"||i==="build"||i==="validate"||i==="eval"||i==="run")&&(c==="passed"||c==="failed")&&typeof l=="string"&&(r.lastCheck={command:i,status:c,checkedAt:l,...typeof s.exitCode=="number"||s.exitCode===null?{exitCode:s.exitCode}:{},...typeof s.sourceHead=="string"||s.sourceHead===null?{sourceHead:s.sourceHead}:{}})}if(t.lastPush&&typeof t.lastPush=="object"&&!Array.isArray(t.lastPush)){let s=t.lastPush,i=s.status,c=s.pushedAt;(i==="pushed"||i==="failed")&&typeof c=="string"&&(r.lastPush={status:i,pushedAt:c,...typeof s.teamId=="string"||s.teamId===null?{teamId:s.teamId}:{},...typeof s.projectId=="string"||s.projectId===null?{projectId:s.projectId}:{},...typeof s.localHead=="string"||s.localHead===null?{localHead:s.localHead}:{},...typeof s.hostedHead=="string"||s.hostedHead===null?{hostedHead:s.hostedHead}:{},...typeof s.sourceRef=="string"||s.sourceRef===null?{sourceRef:s.sourceRef}:{},...s.promotionStatus==="uploaded"||s.promotionStatus==="hosted_source_materialized"||s.promotionStatus==="hosted_source_materialize_failed"||s.promotionStatus==="hosted_source_check_pending"||s.promotionStatus==="hosted_source_check_failed"||s.promotionStatus==="hosted_source_published"||s.promotionStatus==="hosted_source_publish_failed"||s.promotionStatus==="hosted_run_pending"||s.promotionStatus==="hosted_run_passed"||s.promotionStatus==="hosted_run_failed"||s.promotionStatus===null?{promotionStatus:s.promotionStatus}:{},...s.hostedRunStatus==="not_started"||s.hostedRunStatus==="running"||s.hostedRunStatus==="passed"||s.hostedRunStatus==="failed"||s.hostedRunStatus===null?{hostedRunStatus:s.hostedRunStatus}:{},...typeof s.hostedRunAgentId=="string"||s.hostedRunAgentId===null?{hostedRunAgentId:s.hostedRunAgentId}:{},...typeof s.hostedRunId=="string"||s.hostedRunId===null?{hostedRunId:s.hostedRunId}:{},...typeof s.hostedRunAt=="string"||s.hostedRunAt===null?{hostedRunAt:s.hostedRunAt}:{},..._t(s.hostedSourceMaterialization)?{hostedSourceMaterialization:_t(s.hostedSourceMaterialization)}:{},...$t(s.hostedSourceCheck)?{hostedSourceCheck:$t(s.hostedSourceCheck)}:{},...Ot(s.hostedPublish)?{hostedPublish:Ot(s.hostedPublish)}:{},...Tt(s.hostedRun)?{hostedRun:Tt(s.hostedRun)}:{},...typeof s.error=="string"||s.error===null?{error:s.error}:{}})}if(Array.isArray(t.profiles)){let s=t.profiles.flatMap(i=>{let c=Fe(i);if(!c)return[];let l=i,u=l.source==="github"||l.source==="openpond_git"?l.source:"local",p=typeof l.repositoryId=="string"&&l.repositoryId.trim()?l.repositoryId.trim():Sn.resolve(c.repoPath);return[{source:u,repositoryId:p,repoPath:c.repoPath,profile:c.profile,...c.lastCheck?{lastCheck:c.lastCheck}:{},...c.lastPush?{lastPush:c.lastPush}:{}}]});s.length>0&&(r.profiles=s)}return r}a(Fe,"sanitizeLocalOpenPondProfile");function _t(e){if(!e||typeof e!="object"||Array.isArray(e))return null;let t=e,o=xe(t.status);return o?{status:o,...m(t,"agentId"),...m(t,"runtimeAgentId"),...m(t,"projectId"),...m(t,"sourceRoot"),...m(t,"sourceRef"),...m(t,"sourceCommitSha"),...m(t,"manifestHash"),...m(t,"manifestPath"),...m(t,"manifestSyncedAt"),...Ut(t,"fileCount"),...Ut(t,"totalBytes"),...m(t,"generatedManifestPath"),...He(t,"synthesizedOpenPondYaml"),...m(t,"uploadMetadataPath"),...O(t,"setupCommands"),...O(t,"validationCommands"),...m(t,"materializedAt"),...m(t,"error")}:null}a(_t,"sanitizeHostedMaterializationStatus");function $t(e){if(!e||typeof e!="object"||Array.isArray(e))return null;let t=e,o=xe(t.status);return o?{status:o,...m(t,"agentId"),...m(t,"deployPlanStatus"),...He(t,"canRun"),...He(t,"canDeploy"),...m(t,"sourceRef"),...m(t,"sourceCommitSha"),...m(t,"manifestHash"),...m(t,"manifestPath"),...O(t,"setupCommands"),...O(t,"validationCommands"),...O(t,"requiredChecks"),...O(t,"evalNames"),...O(t,"blockedReasons"),...O(t,"staleReasons"),...m(t,"runtimeId"),...m(t,"sandboxId"),...O(t,"traceArtifactRefs"),...O(t,"evalResultArtifactRefs"),...O(t,"validatorArtifactRefs"),...m(t,"checkedAt"),...m(t,"error")}:null}a($t,"sanitizeHostedSourceCheckStatus");function Ot(e){if(!e||typeof e!="object"||Array.isArray(e))return null;let t=e,o=xe(t.status);return o?{status:o,...m(t,"agentId"),...m(t,"snapshotId"),...m(t,"sourceRef"),...m(t,"sourceCommitSha"),...m(t,"manifestHash"),...m(t,"manifestPath"),...m(t,"buildStatus"),...m(t,"validationStatus"),...m(t,"evalStatus"),...m(t,"publishedAt"),...m(t,"error")}:null}a(Ot,"sanitizeHostedPublishStatus");function Tt(e){if(!e||typeof e!="object"||Array.isArray(e))return null;let t=e,o=xe(t.status);return o?{status:o,...m(t,"agentId"),...m(t,"runId"),...m(t,"runtimeId"),...m(t,"sandboxId"),...m(t,"sourceRef"),...m(t,"sourceCommitSha"),...m(t,"manifestHash"),...m(t,"setupGateStatus"),...O(t,"setupRequirementRefs"),...O(t,"artifactRefs"),...O(t,"traceArtifactRefs"),...O(t,"evalArtifactRefs"),...m(t,"startedAt"),...m(t,"completedAt"),...m(t,"error")}:null}a(Tt,"sanitizeHostedRunSummary");function m(e,t){let o=e[t];return typeof o=="string"||o===null?{[t]:o}:{}}a(m,"nullableStringProp");function He(e,t){let o=e[t];return typeof o=="boolean"||o===null?{[t]:o}:{}}a(He,"nullableBooleanProp");function Ut(e,t){let o=e[t];return typeof o=="number"||o===null?{[t]:o}:{}}a(Ut,"nullableNumberProp");function O(e,t){let o=e[t];if(!Array.isArray(o))return{};let n=o.filter(r=>typeof r=="string");return{[t]:n}}a(O,"stringArrayProp");function xe(e){return typeof e=="string"&&e.trim()?e.trim():null}a(xe,"stringField");function Lt(e,t){if(!de(e.handle,t.handle))return!1;let o=_(t.baseUrl);return o?_(e.baseUrl)===o:!_(e.baseUrl)}a(Lt,"accountMatchesSelector");function Ge(e,t,o={}){let n=_(t.baseUrl);if(n)return qe(e,t.handle,n);let r=e.findIndex(i=>Lt(i,t));if(r!==-1)return r;let s=e.map((i,c)=>({account:i,index:c})).filter(({account:i})=>de(i.handle,t.handle));if(s.length>1&&o.requireUnambiguous)throw new Error(`multiple profiles found for ${t.handle}; pass --base-url to select one`);return s[0]?.index??-1}a(Ge,"findAccountIndexForSelector");function xn(e){if(!e||typeof e!="object"||Array.isArray(e))return;let t=e,o={};return typeof t.token=="string"&&(o.token=t.token),(typeof t.appId=="string"||t.appId===null)&&(o.appId=t.appId),(typeof t.conversationId=="string"||t.conversationId===null)&&(o.conversationId=t.conversationId),Object.keys(o).length>0?o:void 0}a(xn,"sanitizeSession");function kn(e){if(!e||typeof e!="object"||Array.isArray(e))return null;let t=e,o=z(typeof t.handle=="string"?t.handle:void 0);if(!o)return null;let n={handle:o};typeof t.apiKey=="string"&&(n.apiKey=t.apiKey),typeof t.baseUrl=="string"&&(n.baseUrl=t.baseUrl),typeof t.apiBaseUrl=="string"&&(n.apiBaseUrl=t.apiBaseUrl),typeof t.chatApiBaseUrl=="string"&&(n.chatApiBaseUrl=t.chatApiBaseUrl),typeof t.environment=="string"&&(n.environment=t.environment);let r=xn(t.session);return r&&(n.session=r),n}a(kn,"sanitizeAccount");function bn(e){let t={};return typeof e.token=="string"&&(t.token=e.token),(typeof e.appId=="string"||e.appId===null)&&(t.appId=e.appId),(typeof e.conversationId=="string"||e.conversationId===null)&&(t.conversationId=e.conversationId),Object.keys(t).length>0?t:void 0}a(bn,"extractLegacySession");function In(e,t){let o={handle:t};typeof e.apiKey=="string"&&(o.apiKey=e.apiKey),typeof e.baseUrl=="string"&&(o.baseUrl=e.baseUrl),typeof e.apiBaseUrl=="string"&&(o.apiBaseUrl=e.apiBaseUrl),typeof e.chatApiBaseUrl=="string"&&(o.chatApiBaseUrl=e.chatApiBaseUrl);let n=bn(e);return n&&(o.session=n),o}a(In,"extractLegacyAccount");function Nt(e){let t={};typeof e.lspEnabled=="boolean"&&(t.lspEnabled=e.lspEnabled),(e.executionMode==="local"||e.executionMode==="hosted")&&(t.executionMode=e.executionMode),(e.mode==="general"||e.mode==="builder")&&(t.mode=e.mode);let o=Fe(e.openpondProfile);o&&(t.openpondProfile=o);let n=[],r=Array.isArray(e.accounts)?e.accounts:[];for(let l of r){let u=kn(l);u&&qe(n,u.handle,u.baseUrl)===-1&&n.push(u)}if(n.length===0){let l=oe(e.activeProfile)?.handle||Ae;n.push(In(e,l))}let s=oe(e.activeProfile),i=s?Ge(n,s):-1,c=n[i===-1?0:i];return t.accounts=n,t.activeProfile=ne(c),t}a(Nt,"normalizeGlobalConfig");function Cn(e,t,o){let n=e.accounts??[],r=_(o??process.env.OPENPOND_BASE_URL),s=z(t);if(s)return r?{handle:s,baseUrl:r}:{handle:s};let i=z(process.env.OPENPOND_ACCOUNT);if(i)return r?{handle:i,baseUrl:r}:{handle:i};let c=oe(e.activeProfile);return c?r?{handle:c.handle,baseUrl:r}:c:n[0]?ne(n[0]):{handle:Ae}}a(Cn,"resolveRequestedProfile");function jt(e,t,o){let n=_(o);if(n){let s=qe(e,t,n);if(s!==-1)return e[s]}else{let s=e.filter(i=>de(i.handle,t));if(s.length>1)throw new Error(`multiple profiles found for ${t}; pass --base-url to select one`);if(s.length===1)return s[0]}let r={handle:t};return n&&(r.baseUrl=n),e.push(r),r}a(jt,"ensureAccount");function Mt(e){e.session&&Object.keys(e.session).length===0&&delete e.session}a(Mt,"cleanupAccount");function vn(e,t,o,n){let r=o===null||o===void 0&&n.undefinedDeletes;switch(t){case"apiKey":{if(r){delete e.apiKey;return}typeof o=="string"&&(e.apiKey=o);return}case"baseUrl":{if(r){delete e.baseUrl;return}typeof o=="string"&&(e.baseUrl=o);return}case"apiBaseUrl":{if(r){delete e.apiBaseUrl;return}typeof o=="string"&&(e.apiBaseUrl=o);return}case"chatApiBaseUrl":{if(r){delete e.chatApiBaseUrl;return}typeof o=="string"&&(e.chatApiBaseUrl=o);return}case"token":case"appId":case"conversationId":{if(e.session||(e.session={}),r){delete e.session[t],Mt(e);return}(typeof o=="string"||o===null)&&(e.session[t]=o),Mt(e);return}}}a(vn,"applyScopedKey");function En(e,t,o){if(!Rt.some(l=>W(t,l)))return!1;let r=e.accounts??[],s=oe(t.activeProfile)??Cn(e),i=_(W(t,"baseUrl")?t.baseUrl??null:s.baseUrl??process.env.OPENPOND_BASE_URL),c=jt(r,s.handle,i);for(let l of Rt)W(t,l)&&vn(c,l,t[l],o);return e.accounts=r,e.activeProfile=ne(c),!0}a(En,"applyAccountPatch");function Rn(e,t){if(W(t,"lspEnabled")&&(typeof t.lspEnabled=="boolean"?e.lspEnabled=t.lspEnabled:t.lspEnabled===null&&delete e.lspEnabled),W(t,"executionMode")&&(t.executionMode==="local"||t.executionMode==="hosted"?e.executionMode=t.executionMode:t.executionMode===null&&delete e.executionMode),W(t,"mode")&&(t.mode==="general"||t.mode==="builder"?e.mode=t.mode:t.mode===null&&delete e.mode),W(t,"activeProfile")){let o=oe(t.activeProfile);if(o){let n=Ge(e.accounts??[],o);e.activeProfile=n===-1?o:ne((e.accounts??[])[n])}else t.activeProfile===null&&delete e.activeProfile}if(W(t,"openpondProfile")){let o=Fe(t.openpondProfile);o?e.openpondProfile=o:t.openpondProfile===null&&delete e.openpondProfile}}a(Rn,"applyTopLevelPatch");async function ke(e){let t=L();return await De(t),await Ct(t,o=>{let n=Nt(o);return e(n),n})}a(ke,"updateGlobalConfig");async function T(){let e=L();return await De(e),Nt(await It(e))}a(T,"loadGlobalConfig");async function ze(){let e=await T(),t=oe(e.activeProfile);return(e.accounts??[]).map(o=>{let n=z(o.handle)??Ae;return{handle:n,baseUrl:_(o.baseUrl),apiBaseUrl:_(o.apiBaseUrl),chatApiBaseUrl:_(o.chatApiBaseUrl),environment:o.environment?.trim()||null,isActive:!!(t&&Lt({...o,handle:n},t)),hasApiKey:!!o.apiKey?.trim(),hasSessionToken:!!o.session?.token?.trim(),sessionAppId:o.session?.appId??null,sessionConversationId:o.session?.conversationId??null}})}a(ze,"listConfiguredProfiles");async function _n(e,t={}){let o=Bt(e),n=_(t.baseUrl),r=-1;await ke(i=>{let c=i.accounts??[];if(r=Ge(c,n?{handle:o,baseUrl:n}:{handle:o},{requireUnambiguous:!0}),r===-1)throw new Error(`profile not found: ${o}`);i.activeProfile=ne(c[r])});let s=await ze();return s.find(i=>i.isActive)??s[r]}a(_n,"setActiveProfile");async function $n(e){let t=Bt(e.handle),o=An(e.apiKey),n=_(e.baseUrl),r=_(e.apiBaseUrl),s=_(e.chatApiBaseUrl),i={handle:t};await ke(u=>{let p=u.accounts??[],h=jt(p,t,n);h.apiKey=o,n&&(h.baseUrl=n),r?h.apiBaseUrl=r:e.apiBaseUrl===null&&delete h.apiBaseUrl,s?h.chatApiBaseUrl=s:e.chatApiBaseUrl===null&&delete h.chatApiBaseUrl,e.environment===null?delete h.environment:typeof e.environment=="string"&&e.environment.trim()&&(h.environment=e.environment.trim()),u.accounts=p,i=ne(h),e.setActive!==!1&&(u.activeProfile=i)});let l=(await ze()).find(u=>de(u.handle,i.handle)?n?_(u.baseUrl)===n:!0:!1);if(!l)throw new Error(`failed to save profile: ${t}`);return l}a($n,"saveProfileApiKey");async function H(e){await ke(t=>{Rn(t,e),En(t,e,{undefinedDeletes:!1})})}a(H,"saveGlobalConfig");function Je(e=null){return{actionCount:0,generatedAt:null,manifestPath:null,registryPath:null,stale:!0,error:e}}a(Je,"emptyProfileCatalogState");function Ke(e=null){return{skillCount:0,generatedAt:null,stale:!0,error:e}}a(Ke,"emptyProfileSkillCatalogState");function We(){return{status:"ready",requirementCount:0,blockingCount:0,optionalMissingCount:0,readyCount:0,requirements:[],blockingRequirements:[]}}a(We,"emptyProfileSetupGate");function be(){return{changedAgents:[],newAgents:[],deletedAgents:[],changedSkills:[],changedActions:[],changedExtensions:[],setupChanges:[],envRequirementChanges:[],files:[]}}a(be,"emptyProfileDiffSummary");function Ve(e=null){return{state:e?"error":"none",message:e??"No active OpenPond profile.",agentCount:0,actionCount:0,defaultAction:null,checkFresh:!1,checkStaleReason:e??"No active profile.",localHead:null,hostedHead:null}}a(Ve,"emptyProfileSummary");import{existsSync as re}from"node:fs";import{readFile as On,stat as Tn}from"node:fs/promises";import Ie from"node:path";var Dt=".openpond/agent-manifest.json",Ht=".openpond/action-registry.json",Un=".openpond/source-upload-metadata.json",Mn=".openpond/agent-package-origin.json";async function Gt(e){return Jt({agentId:"default",sourcePath:e,preferred:!0})}a(Gt,"loadProfileActionCatalog");async function zt(e){if(e.length===0)return{catalog:{actionCount:0,generatedAt:null,manifestPath:null,registryPath:null,stale:!1,error:null},actionCatalog:[],sourceSetupRequirements:[]};let t=[...e.filter(c=>c.preferred),...e.filter(c=>!c.preferred)],o=await Promise.all(t.map(Jt)),n=new Map,r=[];for(let c of o)for(let l of c.actionCatalog){let u=n.has(l.id)?`${l.agentId??"agent"}.${l.sourceActionId??l.id}`:l.id,p=u===l.id?l:{...l,id:u};n.set(u,p),r.push(p)}let s=Ln(o.map(c=>c.catalog.generatedAt)),i=o.map(c=>c.catalog.error).filter(Boolean);return{catalog:{actionCount:r.length,generatedAt:s,manifestPath:o.find(c=>c.catalog.manifestPath)?.catalog.manifestPath??null,registryPath:o.find(c=>c.catalog.registryPath)?.catalog.registryPath??null,stale:o.some(c=>c.catalog.stale),error:i.length>0?i.join("; "):null},actionCatalog:r,sourceSetupRequirements:o.flatMap(c=>c.sourceSetupRequirements)}}a(zt,"loadProfileActionCatalogForSources");async function Jt(e){let t=e.sourcePath,o=Ie.join(t,Dt),n=Ie.join(t,Ht),r=Ie.join(t,Un),s=Ie.join(t,Mn);try{let i=await Ce(o),c=await Ce(n),l=await Ce(r),u=$(await Ce(s)),p=$($(i)?.inputSchemas),h=Ft($(l)?.setupRequirements)??[],k=Nn(h),C=new Map;for(let f of[...Ye($(i)?.actionCatalog),...Ye($(c)?.actions),...Ye($(i)?.actions)]){let y=b(f.id)??b(f.name);if(!y)continue;let x=C.get(y),v=jn({sourceRequirementsByAction:k,actionId:y,actionName:b(f.name)}),B=Dn(Ft(f.setupRequirements)??x?.setupRequirements??[],v),K={id:y,agentId:e.agentId,sourcePath:t,sourceActionId:y,name:b(f.name)??x?.name??y,label:b(f.label)??x?.label??zn(y),description:b(f.description)??x?.description??null,visibility:b(f.visibility)??x?.visibility??"default",inputSchema:Gn(f.inputSchema,p)??x?.inputSchema??null,outputSchema:Kt(f.outputSchema)??x?.outputSchema??null,approvalPolicy:$(f.approvalPolicy)??x?.approvalPolicy??null,artifactPolicy:$(f.artifactPolicy)??x?.artifactPolicy??null,setupRequirements:B,mcp:$(f.mcp)??x?.mcp??null,schedulePolicy:$(f.schedulePolicy)??x?.schedulePolicy??null,trace:Bn($(f.trace)??x?.trace??null,u),implementation:$(f.implementation)??x?.implementation??null,invokesModel:typeof f.invokesModel=="boolean"?f.invokesModel:x?.invokesModel};C.set(y,K)}let P=Array.from(C.values()).filter(f=>f.visibility!=="internal"&&f.visibility!=="debug"),g=[...i?[]:[Dt],...c?[]:[Ht]],S=await Fn([o,n]);return{catalog:{actionCount:P.length,generatedAt:S,manifestPath:re(o)?o:null,registryPath:re(n)?n:null,stale:g.length>0,error:g.length>0?qn(e,g):null},actionCatalog:P,sourceSetupRequirements:h}}catch(i){return{catalog:{actionCount:0,generatedAt:null,manifestPath:re(o)?o:null,registryPath:re(n)?n:null,stale:!0,error:i instanceof Error?i.message:String(i)},actionCatalog:[],sourceSetupRequirements:[]}}}a(Jt,"loadProfileActionCatalogSource");function Bn(e,t){if(!t)return e;let o=b(t.versionId),n=b(t.digest);return!o||!n?e:{...e??{},agentVersionId:o,agentPackageDigest:n,validationReceiptIds:qt(t.validationReceiptIds),evalReceiptIds:qt(t.evalReceiptIds)}}a(Bn,"mergeAgentPackageTrace");function qt(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"&&t.trim().length>0):[]}a(qt,"stringArray");function Ln(e){let t=0;for(let o of e){if(!o)continue;let n=Date.parse(o);Number.isFinite(n)&&(t=Math.max(t,n))}return t>0?new Date(t).toISOString():null}a(Ln,"latestIso");function Nn(e){let t=new Map;for(let o of e){let n=[b(o.actionId),b(o.sourceActionId),b(o.actionName)].filter(r=>!!r);for(let r of n){let s=t.get(r)??[];s.push(o),t.set(r,s)}}return t}a(Nn,"sourceSetupRequirementsByAction");function jn(e){return[...e.sourceRequirementsByAction.get(e.actionId)??[],...e.actionName&&e.actionName!==e.actionId?e.sourceRequirementsByAction.get(e.actionName)??[]:[]].map(o=>({...o,source:"source_upload_metadata"}))}a(jn,"setupRequirementsForActionSource");function Dn(e,t){if(t.length===0)return e;let o=[],n=new Set;for(let r of[...e,...t]){let s=Hn(r);n.has(s)||(n.add(s),o.push(r))}return o}a(Dn,"mergeSetupRequirements");function Hn(e){return[b(e.actionId)??b(e.sourceActionId)??b(e.actionName)??"",b(e.kind)??b(e.type)??"",b(e.name)??b(e.key)??b(e.provider)??b(e.tool)??b(e.command)??b(e.packageName)??b(e.path)??b(e.repo)??b(e.url)??b(e.id)??""].join(":")}a(Hn,"setupRequirementIdentity");function qn(e,t){return[`Profile agent ${e.agentId} at ${e.sourcePath} is missing SDK catalog artifact(s): ${t.join(", ")}.`,"Run `openpond profile check --kind all` after source materialization so each enabled profile agent has inspect/build artifacts."].join(" ")}a(qn,"missingSourceArtifactsMessage");async function Ce(e){return re(e)?JSON.parse(await On(e,"utf8")):null}a(Ce,"readJsonIfExists");async function Fn(e){let t=0;for(let o of e){if(!re(o))continue;let n=await Tn(o);t=Math.max(t,n.mtimeMs)}return t>0?new Date(t).toISOString():null}a(Fn,"latestMtime");function $(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:null}a($,"asRecord");function Ye(e){return Array.isArray(e)?e.filter(t=>!!$(t)):[]}a(Ye,"records");function Ft(e){return Array.isArray(e)?e.filter(t=>!!$(t)):null}a(Ft,"recordArray");function b(e){return typeof e=="string"&&e.trim()?e.trim():null}a(b,"text");function Kt(e){return b(e)??$(e)}a(Kt,"schemaValue");function Gn(e,t){let o=Kt(e);return typeof o!="string"?o:$(t?.[o])??o}a(Gn,"resolvedSchemaValue");function zn(e){let t=e.replace(/[._-]+/g," ").trim();return t?t.replace(/\b\w/g,o=>o.toUpperCase()):e}a(zn,"titleFromActionId");var ve=class extends Error{static{a(this,"OpenPondProfileSetupRequiredError")}code="agent_source_setup_required";details;constructor(t,o){let n=o.blockingRequirements.map(r=>r.label);super(["agent_source_setup_required",`Profile action ${t} has unresolved required setup.`,n.length?`Missing setup: ${n.join(", ")}`:""].filter(Boolean).join(`
2
+ import{a as Et,b as Se}from"./chunk-L3KS6MOV.js";import{w as vt}from"./chunk-IKWDL3RB.js";import{b as j,d as we,e as Pe}from"./chunk-Z3D4C7BG.js";import{E as Ne,F as je,P as It,Q as Ct,_ as De,f as ye}from"./chunk-DALJMSJG.js";import{f as L,h as ge,p as Le,r as bt}from"./chunk-H7IWJN7L.js";import{a}from"./chunk-FTQLQJQV.js";import{createRequire as Po}from"node:module";import{createHash as po,randomUUID as ho}from"node:crypto";import{spawn as Pr}from"node:child_process";import{existsSync as U}from"node:fs";import{cp as Sr,mkdir as F,readFile as So,readdir as Ao,rename as at,rm as it,symlink as Ar,writeFile as ie}from"node:fs/promises";import d from"node:path";import Sn from"node:path";var Ae="default",Rt=["apiKey","baseUrl","apiBaseUrl","chatApiBaseUrl","token","appId","conversationId"];function W(e,t){return Object.prototype.hasOwnProperty.call(e,t)}a(W,"hasOwn");function z(e){if(typeof e!="string")return null;let t=e.trim();return t.length>0?t:null}a(z,"normalizeHandle");function _(e){if(typeof e!="string")return null;let t=e.trim();return t?t.replace(/\/$/,""):null}a(_,"normalizeBaseUrl");function Bt(e){let t=z(e);if(!t)throw new Error("profile handle must be non-empty");return t}a(Bt,"requireHandle");function An(e){if(typeof e!="string")throw new Error("apiKey must be a non-empty string");let t=e.trim();if(!t)throw new Error("apiKey must be a non-empty string");return t}a(An,"requireApiKey");function de(e,t){let o=z(e),n=z(t);return!!(o&&n&&o.toLowerCase()===n.toLowerCase())}a(de,"handleEquals");function qe(e,t,o){let n=_(o);return e.findIndex(r=>de(r.handle,t)?n?_(r.baseUrl)===n:!0:!1)}a(qe,"findAccountIndex");function ne(e){let t=z(e.handle)??Ae,o=_(e.baseUrl);return o?{handle:t,baseUrl:o}:{handle:t}}a(ne,"selectorFromAccount");function oe(e){if(!e||typeof e!="object"||Array.isArray(e))return null;let t=e,o=z(typeof t.handle=="string"?t.handle:void 0);if(!o)return null;let n=_(typeof t.baseUrl=="string"?t.baseUrl:void 0);return n?{handle:o,baseUrl:n}:{handle:o}}a(oe,"sanitizeActiveProfile");function Fe(e){if(!e||typeof e!="object"||Array.isArray(e))return;let t=e,o=typeof t.repoPath=="string"?t.repoPath.trim():"",n=typeof t.profile=="string"&&t.profile.trim()?t.profile.trim():"default";if(!o)return;let r={repoPath:o,profile:n,mode:"local"};if(t.lastCheck&&typeof t.lastCheck=="object"&&!Array.isArray(t.lastCheck)){let s=t.lastCheck,i=s.command,c=s.status,l=s.checkedAt;(i==="inspect"||i==="build"||i==="validate"||i==="eval"||i==="run")&&(c==="passed"||c==="failed")&&typeof l=="string"&&(r.lastCheck={command:i,status:c,checkedAt:l,...typeof s.exitCode=="number"||s.exitCode===null?{exitCode:s.exitCode}:{},...typeof s.sourceHead=="string"||s.sourceHead===null?{sourceHead:s.sourceHead}:{}})}if(t.lastPush&&typeof t.lastPush=="object"&&!Array.isArray(t.lastPush)){let s=t.lastPush,i=s.status,c=s.pushedAt;(i==="pushed"||i==="failed")&&typeof c=="string"&&(r.lastPush={status:i,pushedAt:c,...typeof s.teamId=="string"||s.teamId===null?{teamId:s.teamId}:{},...typeof s.projectId=="string"||s.projectId===null?{projectId:s.projectId}:{},...typeof s.localHead=="string"||s.localHead===null?{localHead:s.localHead}:{},...typeof s.hostedHead=="string"||s.hostedHead===null?{hostedHead:s.hostedHead}:{},...typeof s.sourceRef=="string"||s.sourceRef===null?{sourceRef:s.sourceRef}:{},...s.promotionStatus==="uploaded"||s.promotionStatus==="hosted_source_materialized"||s.promotionStatus==="hosted_source_materialize_failed"||s.promotionStatus==="hosted_source_check_pending"||s.promotionStatus==="hosted_source_check_failed"||s.promotionStatus==="hosted_source_published"||s.promotionStatus==="hosted_source_publish_failed"||s.promotionStatus==="hosted_run_pending"||s.promotionStatus==="hosted_run_passed"||s.promotionStatus==="hosted_run_failed"||s.promotionStatus===null?{promotionStatus:s.promotionStatus}:{},...s.hostedRunStatus==="not_started"||s.hostedRunStatus==="running"||s.hostedRunStatus==="passed"||s.hostedRunStatus==="failed"||s.hostedRunStatus===null?{hostedRunStatus:s.hostedRunStatus}:{},...typeof s.hostedRunAgentId=="string"||s.hostedRunAgentId===null?{hostedRunAgentId:s.hostedRunAgentId}:{},...typeof s.hostedRunId=="string"||s.hostedRunId===null?{hostedRunId:s.hostedRunId}:{},...typeof s.hostedRunAt=="string"||s.hostedRunAt===null?{hostedRunAt:s.hostedRunAt}:{},..._t(s.hostedSourceMaterialization)?{hostedSourceMaterialization:_t(s.hostedSourceMaterialization)}:{},...$t(s.hostedSourceCheck)?{hostedSourceCheck:$t(s.hostedSourceCheck)}:{},...Ot(s.hostedPublish)?{hostedPublish:Ot(s.hostedPublish)}:{},...Tt(s.hostedRun)?{hostedRun:Tt(s.hostedRun)}:{},...typeof s.error=="string"||s.error===null?{error:s.error}:{}})}if(Array.isArray(t.profiles)){let s=t.profiles.flatMap(i=>{let c=Fe(i);if(!c)return[];let l=i,u=l.source==="github"||l.source==="openpond_git"?l.source:"local",p=typeof l.repositoryId=="string"&&l.repositoryId.trim()?l.repositoryId.trim():Sn.resolve(c.repoPath);return[{source:u,repositoryId:p,repoPath:c.repoPath,profile:c.profile,...c.lastCheck?{lastCheck:c.lastCheck}:{},...c.lastPush?{lastPush:c.lastPush}:{}}]});s.length>0&&(r.profiles=s)}return r}a(Fe,"sanitizeLocalOpenPondProfile");function _t(e){if(!e||typeof e!="object"||Array.isArray(e))return null;let t=e,o=xe(t.status);return o?{status:o,...m(t,"agentId"),...m(t,"runtimeAgentId"),...m(t,"projectId"),...m(t,"sourceRoot"),...m(t,"sourceRef"),...m(t,"sourceCommitSha"),...m(t,"manifestHash"),...m(t,"manifestPath"),...m(t,"manifestSyncedAt"),...Ut(t,"fileCount"),...Ut(t,"totalBytes"),...m(t,"generatedManifestPath"),...He(t,"synthesizedOpenPondYaml"),...m(t,"uploadMetadataPath"),...O(t,"setupCommands"),...O(t,"validationCommands"),...m(t,"materializedAt"),...m(t,"error")}:null}a(_t,"sanitizeHostedMaterializationStatus");function $t(e){if(!e||typeof e!="object"||Array.isArray(e))return null;let t=e,o=xe(t.status);return o?{status:o,...m(t,"agentId"),...m(t,"deployPlanStatus"),...He(t,"canRun"),...He(t,"canDeploy"),...m(t,"sourceRef"),...m(t,"sourceCommitSha"),...m(t,"manifestHash"),...m(t,"manifestPath"),...O(t,"setupCommands"),...O(t,"validationCommands"),...O(t,"requiredChecks"),...O(t,"evalNames"),...O(t,"blockedReasons"),...O(t,"staleReasons"),...m(t,"runtimeId"),...m(t,"sandboxId"),...O(t,"traceArtifactRefs"),...O(t,"evalResultArtifactRefs"),...O(t,"validatorArtifactRefs"),...m(t,"checkedAt"),...m(t,"error")}:null}a($t,"sanitizeHostedSourceCheckStatus");function Ot(e){if(!e||typeof e!="object"||Array.isArray(e))return null;let t=e,o=xe(t.status);return o?{status:o,...m(t,"agentId"),...m(t,"snapshotId"),...m(t,"sourceRef"),...m(t,"sourceCommitSha"),...m(t,"manifestHash"),...m(t,"manifestPath"),...m(t,"buildStatus"),...m(t,"validationStatus"),...m(t,"evalStatus"),...m(t,"publishedAt"),...m(t,"error")}:null}a(Ot,"sanitizeHostedPublishStatus");function Tt(e){if(!e||typeof e!="object"||Array.isArray(e))return null;let t=e,o=xe(t.status);return o?{status:o,...m(t,"agentId"),...m(t,"runId"),...m(t,"runtimeId"),...m(t,"sandboxId"),...m(t,"sourceRef"),...m(t,"sourceCommitSha"),...m(t,"manifestHash"),...m(t,"setupGateStatus"),...O(t,"setupRequirementRefs"),...O(t,"artifactRefs"),...O(t,"traceArtifactRefs"),...O(t,"evalArtifactRefs"),...m(t,"startedAt"),...m(t,"completedAt"),...m(t,"error")}:null}a(Tt,"sanitizeHostedRunSummary");function m(e,t){let o=e[t];return typeof o=="string"||o===null?{[t]:o}:{}}a(m,"nullableStringProp");function He(e,t){let o=e[t];return typeof o=="boolean"||o===null?{[t]:o}:{}}a(He,"nullableBooleanProp");function Ut(e,t){let o=e[t];return typeof o=="number"||o===null?{[t]:o}:{}}a(Ut,"nullableNumberProp");function O(e,t){let o=e[t];if(!Array.isArray(o))return{};let n=o.filter(r=>typeof r=="string");return{[t]:n}}a(O,"stringArrayProp");function xe(e){return typeof e=="string"&&e.trim()?e.trim():null}a(xe,"stringField");function Lt(e,t){if(!de(e.handle,t.handle))return!1;let o=_(t.baseUrl);return o?_(e.baseUrl)===o:!_(e.baseUrl)}a(Lt,"accountMatchesSelector");function Ge(e,t,o={}){let n=_(t.baseUrl);if(n)return qe(e,t.handle,n);let r=e.findIndex(i=>Lt(i,t));if(r!==-1)return r;let s=e.map((i,c)=>({account:i,index:c})).filter(({account:i})=>de(i.handle,t.handle));if(s.length>1&&o.requireUnambiguous)throw new Error(`multiple profiles found for ${t.handle}; pass --base-url to select one`);return s[0]?.index??-1}a(Ge,"findAccountIndexForSelector");function xn(e){if(!e||typeof e!="object"||Array.isArray(e))return;let t=e,o={};return typeof t.token=="string"&&(o.token=t.token),(typeof t.appId=="string"||t.appId===null)&&(o.appId=t.appId),(typeof t.conversationId=="string"||t.conversationId===null)&&(o.conversationId=t.conversationId),Object.keys(o).length>0?o:void 0}a(xn,"sanitizeSession");function kn(e){if(!e||typeof e!="object"||Array.isArray(e))return null;let t=e,o=z(typeof t.handle=="string"?t.handle:void 0);if(!o)return null;let n={handle:o};typeof t.apiKey=="string"&&(n.apiKey=t.apiKey),typeof t.baseUrl=="string"&&(n.baseUrl=t.baseUrl),typeof t.apiBaseUrl=="string"&&(n.apiBaseUrl=t.apiBaseUrl),typeof t.chatApiBaseUrl=="string"&&(n.chatApiBaseUrl=t.chatApiBaseUrl),typeof t.environment=="string"&&(n.environment=t.environment);let r=xn(t.session);return r&&(n.session=r),n}a(kn,"sanitizeAccount");function bn(e){let t={};return typeof e.token=="string"&&(t.token=e.token),(typeof e.appId=="string"||e.appId===null)&&(t.appId=e.appId),(typeof e.conversationId=="string"||e.conversationId===null)&&(t.conversationId=e.conversationId),Object.keys(t).length>0?t:void 0}a(bn,"extractLegacySession");function In(e,t){let o={handle:t};typeof e.apiKey=="string"&&(o.apiKey=e.apiKey),typeof e.baseUrl=="string"&&(o.baseUrl=e.baseUrl),typeof e.apiBaseUrl=="string"&&(o.apiBaseUrl=e.apiBaseUrl),typeof e.chatApiBaseUrl=="string"&&(o.chatApiBaseUrl=e.chatApiBaseUrl);let n=bn(e);return n&&(o.session=n),o}a(In,"extractLegacyAccount");function Nt(e){let t={};typeof e.lspEnabled=="boolean"&&(t.lspEnabled=e.lspEnabled),(e.executionMode==="local"||e.executionMode==="hosted")&&(t.executionMode=e.executionMode),(e.mode==="general"||e.mode==="builder")&&(t.mode=e.mode);let o=Fe(e.openpondProfile);o&&(t.openpondProfile=o);let n=[],r=Array.isArray(e.accounts)?e.accounts:[];for(let l of r){let u=kn(l);u&&qe(n,u.handle,u.baseUrl)===-1&&n.push(u)}if(n.length===0){let l=oe(e.activeProfile)?.handle||Ae;n.push(In(e,l))}let s=oe(e.activeProfile),i=s?Ge(n,s):-1,c=n[i===-1?0:i];return t.accounts=n,t.activeProfile=ne(c),t}a(Nt,"normalizeGlobalConfig");function Cn(e,t,o){let n=e.accounts??[],r=_(o??process.env.OPENPOND_BASE_URL),s=z(t);if(s)return r?{handle:s,baseUrl:r}:{handle:s};let i=z(process.env.OPENPOND_ACCOUNT);if(i)return r?{handle:i,baseUrl:r}:{handle:i};let c=oe(e.activeProfile);return c?r?{handle:c.handle,baseUrl:r}:c:n[0]?ne(n[0]):{handle:Ae}}a(Cn,"resolveRequestedProfile");function jt(e,t,o){let n=_(o);if(n){let s=qe(e,t,n);if(s!==-1)return e[s]}else{let s=e.filter(i=>de(i.handle,t));if(s.length>1)throw new Error(`multiple profiles found for ${t}; pass --base-url to select one`);if(s.length===1)return s[0]}let r={handle:t};return n&&(r.baseUrl=n),e.push(r),r}a(jt,"ensureAccount");function Mt(e){e.session&&Object.keys(e.session).length===0&&delete e.session}a(Mt,"cleanupAccount");function vn(e,t,o,n){let r=o===null||o===void 0&&n.undefinedDeletes;switch(t){case"apiKey":{if(r){delete e.apiKey;return}typeof o=="string"&&(e.apiKey=o);return}case"baseUrl":{if(r){delete e.baseUrl;return}typeof o=="string"&&(e.baseUrl=o);return}case"apiBaseUrl":{if(r){delete e.apiBaseUrl;return}typeof o=="string"&&(e.apiBaseUrl=o);return}case"chatApiBaseUrl":{if(r){delete e.chatApiBaseUrl;return}typeof o=="string"&&(e.chatApiBaseUrl=o);return}case"token":case"appId":case"conversationId":{if(e.session||(e.session={}),r){delete e.session[t],Mt(e);return}(typeof o=="string"||o===null)&&(e.session[t]=o),Mt(e);return}}}a(vn,"applyScopedKey");function En(e,t,o){if(!Rt.some(l=>W(t,l)))return!1;let r=e.accounts??[],s=oe(t.activeProfile)??Cn(e),i=_(W(t,"baseUrl")?t.baseUrl??null:s.baseUrl??process.env.OPENPOND_BASE_URL),c=jt(r,s.handle,i);for(let l of Rt)W(t,l)&&vn(c,l,t[l],o);return e.accounts=r,e.activeProfile=ne(c),!0}a(En,"applyAccountPatch");function Rn(e,t){if(W(t,"lspEnabled")&&(typeof t.lspEnabled=="boolean"?e.lspEnabled=t.lspEnabled:t.lspEnabled===null&&delete e.lspEnabled),W(t,"executionMode")&&(t.executionMode==="local"||t.executionMode==="hosted"?e.executionMode=t.executionMode:t.executionMode===null&&delete e.executionMode),W(t,"mode")&&(t.mode==="general"||t.mode==="builder"?e.mode=t.mode:t.mode===null&&delete e.mode),W(t,"activeProfile")){let o=oe(t.activeProfile);if(o){let n=Ge(e.accounts??[],o);e.activeProfile=n===-1?o:ne((e.accounts??[])[n])}else t.activeProfile===null&&delete e.activeProfile}if(W(t,"openpondProfile")){let o=Fe(t.openpondProfile);o?e.openpondProfile=o:t.openpondProfile===null&&delete e.openpondProfile}}a(Rn,"applyTopLevelPatch");async function ke(e){let t=L();return await De(t),await Ct(t,o=>{let n=Nt(o);return e(n),n})}a(ke,"updateGlobalConfig");async function T(){let e=L();return await De(e),Nt(await It(e))}a(T,"loadGlobalConfig");async function ze(){let e=await T(),t=oe(e.activeProfile);return(e.accounts??[]).map(o=>{let n=z(o.handle)??Ae;return{handle:n,baseUrl:_(o.baseUrl),apiBaseUrl:_(o.apiBaseUrl),chatApiBaseUrl:_(o.chatApiBaseUrl),environment:o.environment?.trim()||null,isActive:!!(t&&Lt({...o,handle:n},t)),hasApiKey:!!o.apiKey?.trim(),hasSessionToken:!!o.session?.token?.trim(),sessionAppId:o.session?.appId??null,sessionConversationId:o.session?.conversationId??null}})}a(ze,"listConfiguredProfiles");async function _n(e,t={}){let o=Bt(e),n=_(t.baseUrl),r=-1;await ke(i=>{let c=i.accounts??[];if(r=Ge(c,n?{handle:o,baseUrl:n}:{handle:o},{requireUnambiguous:!0}),r===-1)throw new Error(`profile not found: ${o}`);i.activeProfile=ne(c[r])});let s=await ze();return s.find(i=>i.isActive)??s[r]}a(_n,"setActiveProfile");async function $n(e){let t=Bt(e.handle),o=An(e.apiKey),n=_(e.baseUrl),r=_(e.apiBaseUrl),s=_(e.chatApiBaseUrl),i={handle:t};await ke(u=>{let p=u.accounts??[],h=jt(p,t,n);h.apiKey=o,n&&(h.baseUrl=n),r?h.apiBaseUrl=r:e.apiBaseUrl===null&&delete h.apiBaseUrl,s?h.chatApiBaseUrl=s:e.chatApiBaseUrl===null&&delete h.chatApiBaseUrl,e.environment===null?delete h.environment:typeof e.environment=="string"&&e.environment.trim()&&(h.environment=e.environment.trim()),u.accounts=p,i=ne(h),e.setActive!==!1&&(u.activeProfile=i)});let l=(await ze()).find(u=>de(u.handle,i.handle)?n?_(u.baseUrl)===n:!0:!1);if(!l)throw new Error(`failed to save profile: ${t}`);return l}a($n,"saveProfileApiKey");async function H(e){await ke(t=>{Rn(t,e),En(t,e,{undefinedDeletes:!1})})}a(H,"saveGlobalConfig");function Je(e=null){return{actionCount:0,generatedAt:null,manifestPath:null,registryPath:null,stale:!0,error:e}}a(Je,"emptyProfileCatalogState");function Ke(e=null){return{skillCount:0,generatedAt:null,stale:!0,error:e}}a(Ke,"emptyProfileSkillCatalogState");function We(){return{status:"ready",requirementCount:0,blockingCount:0,optionalMissingCount:0,readyCount:0,requirements:[],blockingRequirements:[]}}a(We,"emptyProfileSetupGate");function be(){return{changedAgents:[],newAgents:[],deletedAgents:[],changedSkills:[],changedActions:[],changedExtensions:[],setupChanges:[],envRequirementChanges:[],files:[]}}a(be,"emptyProfileDiffSummary");function Ve(e=null){return{state:e?"error":"none",message:e??"No active OpenPond profile.",agentCount:0,actionCount:0,defaultAction:null,checkFresh:!1,checkStaleReason:e??"No active profile.",localHead:null,hostedHead:null}}a(Ve,"emptyProfileSummary");import{existsSync as re}from"node:fs";import{readFile as On,stat as Tn}from"node:fs/promises";import Ie from"node:path";var Dt=".openpond/agent-manifest.json",Ht=".openpond/action-registry.json",Un=".openpond/source-upload-metadata.json",Mn=".openpond/agent-package-origin.json";async function Gt(e){return Jt({agentId:"default",sourcePath:e,preferred:!0})}a(Gt,"loadProfileActionCatalog");async function zt(e){if(e.length===0)return{catalog:{actionCount:0,generatedAt:null,manifestPath:null,registryPath:null,stale:!1,error:null},actionCatalog:[],sourceSetupRequirements:[]};let t=[...e.filter(c=>c.preferred),...e.filter(c=>!c.preferred)],o=await Promise.all(t.map(Jt)),n=new Map,r=[];for(let c of o)for(let l of c.actionCatalog){let u=n.has(l.id)?`${l.agentId??"agent"}.${l.sourceActionId??l.id}`:l.id,p=u===l.id?l:{...l,id:u};n.set(u,p),r.push(p)}let s=Ln(o.map(c=>c.catalog.generatedAt)),i=o.map(c=>c.catalog.error).filter(Boolean);return{catalog:{actionCount:r.length,generatedAt:s,manifestPath:o.find(c=>c.catalog.manifestPath)?.catalog.manifestPath??null,registryPath:o.find(c=>c.catalog.registryPath)?.catalog.registryPath??null,stale:o.some(c=>c.catalog.stale),error:i.length>0?i.join("; "):null},actionCatalog:r,sourceSetupRequirements:o.flatMap(c=>c.sourceSetupRequirements)}}a(zt,"loadProfileActionCatalogForSources");async function Jt(e){let t=e.sourcePath,o=Ie.join(t,Dt),n=Ie.join(t,Ht),r=Ie.join(t,Un),s=Ie.join(t,Mn);try{let i=await Ce(o),c=await Ce(n),l=await Ce(r),u=$(await Ce(s)),p=$($(i)?.inputSchemas),h=Ft($(l)?.setupRequirements)??[],k=Nn(h),C=new Map;for(let f of[...Ye($(i)?.actionCatalog),...Ye($(c)?.actions),...Ye($(i)?.actions)]){let y=b(f.id)??b(f.name);if(!y)continue;let x=C.get(y),v=jn({sourceRequirementsByAction:k,actionId:y,actionName:b(f.name)}),B=Dn(Ft(f.setupRequirements)??x?.setupRequirements??[],v),K={id:y,agentId:e.agentId,sourcePath:t,sourceActionId:y,name:b(f.name)??x?.name??y,label:b(f.label)??x?.label??zn(y),description:b(f.description)??x?.description??null,visibility:b(f.visibility)??x?.visibility??"default",inputSchema:Gn(f.inputSchema,p)??x?.inputSchema??null,outputSchema:Kt(f.outputSchema)??x?.outputSchema??null,approvalPolicy:$(f.approvalPolicy)??x?.approvalPolicy??null,artifactPolicy:$(f.artifactPolicy)??x?.artifactPolicy??null,setupRequirements:B,mcp:$(f.mcp)??x?.mcp??null,schedulePolicy:$(f.schedulePolicy)??x?.schedulePolicy??null,trace:Bn($(f.trace)??x?.trace??null,u),implementation:$(f.implementation)??x?.implementation??null,invokesModel:typeof f.invokesModel=="boolean"?f.invokesModel:x?.invokesModel};C.set(y,K)}let P=Array.from(C.values()).filter(f=>f.visibility!=="internal"&&f.visibility!=="debug"),g=[...i?[]:[Dt],...c?[]:[Ht]],S=await Fn([o,n]);return{catalog:{actionCount:P.length,generatedAt:S,manifestPath:re(o)?o:null,registryPath:re(n)?n:null,stale:g.length>0,error:g.length>0?qn(e,g):null},actionCatalog:P,sourceSetupRequirements:h}}catch(i){return{catalog:{actionCount:0,generatedAt:null,manifestPath:re(o)?o:null,registryPath:re(n)?n:null,stale:!0,error:i instanceof Error?i.message:String(i)},actionCatalog:[],sourceSetupRequirements:[]}}}a(Jt,"loadProfileActionCatalogSource");function Bn(e,t){if(!t)return e;let o=b(t.versionId),n=b(t.digest);return!o||!n?e:{...e??{},agentVersionId:o,agentPackageDigest:n,validationReceiptIds:qt(t.validationReceiptIds),evalReceiptIds:qt(t.evalReceiptIds)}}a(Bn,"mergeAgentPackageTrace");function qt(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"&&t.trim().length>0):[]}a(qt,"stringArray");function Ln(e){let t=0;for(let o of e){if(!o)continue;let n=Date.parse(o);Number.isFinite(n)&&(t=Math.max(t,n))}return t>0?new Date(t).toISOString():null}a(Ln,"latestIso");function Nn(e){let t=new Map;for(let o of e){let n=[b(o.actionId),b(o.sourceActionId),b(o.actionName)].filter(r=>!!r);for(let r of n){let s=t.get(r)??[];s.push(o),t.set(r,s)}}return t}a(Nn,"sourceSetupRequirementsByAction");function jn(e){return[...e.sourceRequirementsByAction.get(e.actionId)??[],...e.actionName&&e.actionName!==e.actionId?e.sourceRequirementsByAction.get(e.actionName)??[]:[]].map(o=>({...o,source:"source_upload_metadata"}))}a(jn,"setupRequirementsForActionSource");function Dn(e,t){if(t.length===0)return e;let o=[],n=new Set;for(let r of[...e,...t]){let s=Hn(r);n.has(s)||(n.add(s),o.push(r))}return o}a(Dn,"mergeSetupRequirements");function Hn(e){return[b(e.actionId)??b(e.sourceActionId)??b(e.actionName)??"",b(e.kind)??b(e.type)??"",b(e.name)??b(e.key)??b(e.provider)??b(e.tool)??b(e.command)??b(e.packageName)??b(e.path)??b(e.repo)??b(e.url)??b(e.id)??""].join(":")}a(Hn,"setupRequirementIdentity");function qn(e,t){return[`Profile agent ${e.agentId} at ${e.sourcePath} is missing SDK catalog artifact(s): ${t.join(", ")}.`,"Run `openpond profile check --kind all` after source materialization so each enabled profile agent has inspect/build artifacts."].join(" ")}a(qn,"missingSourceArtifactsMessage");async function Ce(e){return re(e)?JSON.parse(await On(e,"utf8")):null}a(Ce,"readJsonIfExists");async function Fn(e){let t=0;for(let o of e){if(!re(o))continue;let n=await Tn(o);t=Math.max(t,n.mtimeMs)}return t>0?new Date(t).toISOString():null}a(Fn,"latestMtime");function $(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:null}a($,"asRecord");function Ye(e){return Array.isArray(e)?e.filter(t=>!!$(t)):[]}a(Ye,"records");function Ft(e){return Array.isArray(e)?e.filter(t=>!!$(t)):null}a(Ft,"recordArray");function b(e){return typeof e=="string"&&e.trim()?e.trim():null}a(b,"text");function Kt(e){return b(e)??$(e)}a(Kt,"schemaValue");function Gn(e,t){let o=Kt(e);return typeof o!="string"?o:$(t?.[o])??o}a(Gn,"resolvedSchemaValue");function zn(e){let t=e.replace(/[._-]+/g," ").trim();return t?t.replace(/\b\w/g,o=>o.toUpperCase()):e}a(zn,"titleFromActionId");var ve=class extends Error{static{a(this,"OpenPondProfileSetupRequiredError")}code="agent_source_setup_required";details;constructor(t,o){let n=o.blockingRequirements.map(r=>r.label);super(["agent_source_setup_required",`Profile action ${t} has unresolved required setup.`,n.length?`Missing setup: ${n.join(", ")}`:""].filter(Boolean).join(`
3
3
  `)),this.name="OpenPondProfileSetupRequiredError",this.details={error:"agent_source_setup_required",actionId:t,setupGate:o,missing:n,blockingSetupRequirements:o.blockingRequirements,setupRequirements:o.requirements}}};function Ee(e){let t=new Map;for(let i of e.sourceSetupRequirements??[]){let c=Kn(i);if(e.actionId&&c&&c!==e.actionId&&E(i.actionName)!==e.actionId&&E(i.sourceActionId)!==e.actionId)continue;let l=Wt({record:i,source:"source_upload_metadata",actionId:c});l&&t.set(l.ref,l)}for(let i of e.actionCatalog)if(!(e.actionId&&i.id!==e.actionId&&i.name!==e.actionId))for(let c of i.setupRequirements??[]){let l=Wt({record:c,source:"action_catalog",actionId:i.id});l&&t.set(l.ref,l)}let o=Array.from(t.values()),n=o.filter(i=>i.blocking),r=o.filter(i=>!i.required&&!Xe(i.status)).length,s=o.filter(i=>Xe(i.status)).length;return{status:Vn(n),requirementCount:o.length,blockingCount:n.length,optionalMissingCount:r,readyCount:s,requirements:o,blockingRequirements:n}}a(Ee,"buildOpenPondProfileSetupGate");function Ze(e,t){if(t.blockingRequirements.length>0)throw new ve(e,t)}a(Ze,"assertOpenPondProfileActionReady");function Jn(e){let t=e.actionId?`${e.actionId}: `:"",o=e.required?"required":"optional";return`${t}${e.label} (${o}, ${e.status})`}a(Jn,"formatOpenPondProfileSetupRequirement");function Wt(e){let t=e.source==="action_catalog"&&E(e.record.source)==="source_upload_metadata"?"source_upload_metadata":e.source,o=E(e.record.kind)??E(e.record.type),n=E(e.record.label)??E(e.record.name)??E(e.record.key)??E(e.record.provider)??E(e.record.tool)??E(e.record.command)??E(e.record.packageName)??E(e.record.path)??E(e.record.repo)??E(e.record.url)??E(e.record.id)??o??"setup requirement",r=e.record.required!==!1,s=Wn(e.record);return{ref:[t,e.actionId??"source",o??"requirement",n].join(":"),source:t,actionId:e.actionId,kind:o,label:n,status:s,required:r,blocking:r&&!Xe(s)}}a(Wt,"setupRequirementFromRecord");function Kn(e){return E(e.actionId)??E(e.sourceActionId)??E(e.actionName)}a(Kn,"setupRequirementActionId");function Wn(e){let t=E(e.status)??E(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"}a(Wn,"setupStatus");function Vn(e){return e.length===0?"ready":e.some(t=>["blocked","unsupported","unsupported_dependency","stale"].includes(t.status))?"blocked":"setup_required"}a(Vn,"gateStatus");function Xe(e){return e==="ready"||e==="disabled"}a(Xe,"isReadyStatus");function E(e){return typeof e=="string"&&e.trim()?e.trim():null}a(E,"text");import{spawn as Yn}from"node:child_process";import{randomUUID as Xn}from"node:crypto";import{existsSync as Qe}from"node:fs";import{readFile as Zn,rm as Qn,writeFile as Xt}from"node:fs/promises";import Re from"node:path";var Zt=["**/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 Qt(e){if(!Qe(Re.join(e,".git"))){let s=await M(e,["init","-b","main"]);if(s.code!==0)throw new Error(Y("git init",s))}let t=Re.join(e,".gitignore");if(Qe(t)?await er(t):await Xt(t,Zt,"utf8"),await or(e))return;let o=await X(e);if(!o.dirty&&o.files.length===0)return;let n=await M(e,["add","-A"]);if(n.code!==0)throw new Error(Y("git add",n));let r=await M(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(Y("git commit",r))}a(Qt,"ensureProfileGitRepo");async function er(e){let t=await Zn(e,"utf8").catch(()=>""),o=Zt.split(/\r?\n/).map(r=>r.trim()).filter(Boolean).filter(r=>!t.split(/\r?\n/).some(s=>s.trim()===r));if(o.length===0)return;let n=t.endsWith(`
5
5
  `)||t.length===0?"":`
@@ -1,5 +1,5 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{$b as Ue,A as M,B as O,C as we,Ca as Bt,Cb as le,D as u,E as ye,F as X,Fb as ze,G as l,Gb as $e,Hb as Le,I as Dt,Ib as Be,J as Ot,Jb as Ne,K as Mt,M as qt,N as zt,O as $t,Qa as Re,Ta as ke,Ua as Nt,Va as G,Zb as Ie,_ as qe,_b as Ee,ac as Ge,bc as Ve,cc as Fe,dc as Ke,ec as We,f as Ht,g as jt,mc as Wt,nc as Jt,oc as Xt,sb as Ut,tb as Gt,wa as Lt,wb as Vt,xb as Ft,zb as de}from"./chunk-5ZZM3TUN.js";import{a as Kt}from"./chunk-6FA3GG5B.js";import{B as Rt,C as Me,E as kt,F as It,G as Et,H as Tt,N as Pt,ja as Ct,k as bt,la as At,o as St,oa as _t,r as xt}from"./chunk-JO7GRBOG.js";import{Ia as ne,Ja as se,Kb as wt,Lb as yt,Ma as $,Na as be,Oa as Oe,Q as pt,Ya as Se,aa as ut,ga as ft,l as mt,la as ae,na as re,oa as J,ra as ht,sa as gt,vb as xe,ya as vt}from"./chunk-BQNK2NMB.js";import{a as lt}from"./chunk-VW7D3DRM.js";import{a as K,b as U,c as W,d as ce,e as E,h as De,l as ge,n as ve}from"./chunk-P653BXMY.js";import{b as t}from"./chunk-ES2ISFJC.js";import{a as c}from"./chunk-FTQLQJQV.js";var Fa=t.string().trim().min(1).max(1e5),Ka=t.enum(["no_training","sft","preference","rl"]),Wa=t.object({kind:t.enum(["none","demonstrations","chosen_rejected","scalar_reward"]),strength:t.enum(["absent","weak","usable"]),calibrated:t.boolean(),confounded:t.boolean(),variance:t.number().finite().nonnegative().nullable(),evidenceRefs:t.array(E).max(1e5)}).strict(),Yt=t.object({schemaVersion:t.literal("openpond.modelImprovementQualificationReceipt.v1"),id:K,review:E,harnessRelease:E,tasksetRelease:E.nullable(),baselineEvaluation:E.nullable(),model:ve,environmentHash:U.nullable(),toolContractHash:U.nullable(),permissionContractHash:U.nullable(),policyHash:U.nullable(),verifierRef:E.nullable(),sourcePolicies:t.array(lt).max(1e4),trainingEvidenceRefs:t.array(E).max(1e5),frozenEvaluationEvidenceRefs:t.array(E).max(1e5),privacyApproval:E.nullable(),budgetApproval:E.nullable(),maximumCostUsd:t.number().finite().nonnegative(),signal:Wa,decision:Ka,reasons:t.array(Fa).min(1).max(100),createdAt:W,metadata:ce}).strict().superRefine((e,a)=>{let r=new Set(e.trainingEvidenceRefs.map(Zt));if(e.frozenEvaluationEvidenceRefs.some(n=>r.has(Zt(n)))&&a.addIssue({code:"custom",message:"frozen Evaluation evidence cannot be used as training evidence",path:["frozenEvaluationEvidenceRefs"]}),e.decision==="no_training")return;(!e.tasksetRelease||!e.baselineEvaluation||!e.environmentHash||!e.toolContractHash||!e.permissionContractHash||!e.policyHash||!e.verifierRef||!e.privacyApproval||!e.budgetApproval||e.sourcePolicies.length===0||e.sourcePolicies.some(n=>n.state!=="authorized")||e.trainingEvidenceRefs.length===0||e.signal.strength!=="usable"||!e.signal.calibrated||e.signal.confounded)&&a.addIssue({code:"custom",message:"qualified model improvement requires frozen lineage, authorized signal, privacy, and budget gates"}),e.decision==="sft"&&e.signal.kind!=="demonstrations"&&a.addIssue({code:"custom",message:"SFT qualification requires demonstration signal",path:["signal","kind"]}),e.decision==="preference"&&e.signal.kind!=="chosen_rejected"&&a.addIssue({code:"custom",message:"preference qualification requires chosen/rejected signal",path:["signal","kind"]}),e.decision==="rl"&&(e.signal.kind!=="scalar_reward"||e.signal.variance===null||e.signal.variance<=0)&&a.addIssue({code:"custom",message:"RL qualification requires a usable scalar reward with variance",path:["signal"]})}),Ja=Yt.extend({contentHash:U}).strict();function Cn(e){let a=Yt.parse(e);return Ja.parse({...a,contentHash:ge(a)})}c(Cn,"createModelImprovementQualificationReceipt");function Zt(e){return`${e.id}:${e.contentHash}`}c(Zt,"refKey");var Xa=t.object({schemaVersion:t.literal("openpond.optimizerTrainingSample.v1"),tokenIds:t.array(t.number().int().nonnegative()).min(2).max(32768),mask:t.array(t.boolean()).min(2).max(32768),logprobs:t.array(t.number().finite()).min(2).max(32768),temperatures:t.array(t.number().positive().finite()).min(2).max(32768),envName:t.string().trim().min(1).max(200),modelRequestId:t.string().trim().min(1).max(1e3),promptTokenCount:t.number().int().positive(),completionTokenCount:t.number().int().positive(),servedPolicyVersion:t.number().int().nonnegative()}).strict().superRefine((e,a)=>{let r=e.tokenIds.length;for(let[s,n]of[["mask",e.mask],["logprobs",e.logprobs],["temperatures",e.temperatures]])n.length!==r&&a.addIssue({code:"custom",path:[s],message:`${s} must align with tokenIds`});e.promptTokenCount+e.completionTokenCount!==r&&a.addIssue({code:"custom",path:["completionTokenCount"],message:"prompt and completion token counts must span tokenIds"}),e.mask.filter(s=>!s).length!==e.promptTokenCount&&a.addIssue({code:"custom",path:["mask"],message:"promptTokenCount must equal the non-trainable mask count"}),e.mask.filter(Boolean).length!==e.completionTokenCount&&a.addIssue({code:"custom",path:["mask"],message:"completionTokenCount must equal the trainable mask count"})}),Za=t.object({id:K,environmentRelease:E,status:t.enum(["completed","failed","timed_out","cancelled"]),startedAt:W,completedAt:W,traceRefs:t.array(De).max(1e4),metadata:ce}).strict(),Ya=t.object({receiptRef:E,status:It,value:t.number().min(0).max(1).nullable(),learningEligible:t.boolean(),passed:t.boolean(),outcomeClass:Tt,failureOwner:Et.nullable(),components:t.record(K,t.number().min(0).max(1).nullable())}).strict(),Qt=t.object({schemaVersion:t.literal("openpond.canonicalRolloutRecord.v1"),id:K,attemptRef:E,artifactManifestRef:E,tasksetRelease:E,environmentRelease:E,verifierSetRelease:E,harnessRelease:E,taskId:K,split:pt,model:ve,seed:t.string().trim().min(1).max(500),reward:Ya,traceRef:De,optimizerSample:Xa.nullable(),environmentExecutions:t.array(Za).min(1).max(1e5),startedAt:W,completedAt:W,metadata:ce}).strict();function ea(e,a){e.reward.status==="scored"&&(e.reward.value===null||!e.reward.learningEligible)&&a.addIssue({code:"custom",path:["reward","status"],message:"A scored rollout requires a numeric, learning-eligible reward."}),e.reward.status==="unscorable"&&(e.reward.value!==null||e.reward.learningEligible)&&a.addIssue({code:"custom",path:["reward","status"],message:"An unscorable rollout has no reward and cannot be learning-eligible."})}c(ea,"validateCanonicalRolloutRecord");var Qa=Qt.superRefine(ea),er=t.object({...Qt.shape,contentHash:U}).strict().superRefine(ea);function qn(e){let a=bt.parse(e.attemptReceipt);if(!St(a))throw new Error("Rollout Attempt Receipt failed content-hash verification.");let r=Pt.parse(e.rewardReceipt);if(r.attemptRef.id!==a.id||r.attemptRef.contentHash!==a.contentHash)throw new Error("Rollout Attempt Receipt does not match its Reward Receipt.");if(r.artifactManifestRef.id!==e.artifactManifestRef.id||r.artifactManifestRef.contentHash!==e.artifactManifestRef.contentHash)throw new Error("Rollout Artifact Manifest does not match its Reward Receipt.");if(e.environmentExecutions.some(n=>n.environmentRelease.id!==e.environmentRelease.id||n.environmentRelease.contentHash!==e.environmentRelease.contentHash))throw new Error("Rollout Environment execution does not match its admitted Environment Release.");let s=Qa.parse({schemaVersion:"openpond.canonicalRolloutRecord.v1",id:e.id,attemptRef:r.attemptRef,artifactManifestRef:e.artifactManifestRef,tasksetRelease:e.tasksetRelease,environmentRelease:e.environmentRelease,verifierSetRelease:r.verifierSetRef,harnessRelease:e.harnessRelease,taskId:e.taskId,split:e.split,model:e.model,seed:e.seed,reward:{receiptRef:{id:r.id,contentHash:r.contentHash},status:r.status,value:r.reward,learningEligible:r.learningEligible,passed:r.passed,outcomeClass:r.outcomeClass,failureOwner:r.failureOwner,components:Object.fromEntries(r.components.map(n=>[n.verifierId,n.rewardContribution]))},traceRef:e.traceRef,optimizerSample:e.optimizerSample,environmentExecutions:e.environmentExecutions,startedAt:e.startedAt,completedAt:e.completedAt,metadata:e.metadata??{}});return er.parse({...s,contentHash:ge(s)})}c(qn,"createCanonicalRolloutRecord");var me=t.string().trim().min(1).max(200),Z=t.object({operationId:me,execution:u,executionKind:t.literal("recorded_evidence").optional(),graders:t.array(ut).min(1).max(100),maximumCostUsd:t.number().finite().min(1e-6).max(1e4),mappings:t.array(t.object({graderId:me,fields:de}).strict()).max(100).optional()}).strict().superRefine((e,a)=>{new Set(e.graders.map(r=>r.id)).size!==e.graders.length&&a.addIssue({code:"custom",path:["graders"],message:"Select each grader once."}),e.mappings&&(new Set(e.mappings.map(r=>r.graderId)).size!==e.mappings.length||e.mappings.some(r=>!e.graders.some(s=>s.id===r.graderId)))&&a.addIssue({code:"custom",path:["mappings"],message:"Map each selected grader at most once."})}),tr=t.object({schemaVersion:t.literal("openpond.experimentScoringPass.v1"),id:me,teamId:me,revision:t.number().int().positive(),request:Z,graders:t.array(le).min(1).max(100),status:t.enum(["queued","running","cancelling","completed","failed","cancelled"]),totalCount:t.number().int().min(1).max(1e4),counts:t.object({pending:t.number().int().nonnegative(),running:t.number().int().nonnegative(),scored:t.number().int().nonnegative(),unavailable:t.number().int().nonnegative(),failed:t.number().int().nonnegative(),cancelled:t.number().int().nonnegative()}).strict(),resultAvailable:t.boolean(),createdAt:t.iso.datetime(),startedAt:t.iso.datetime().nullable(),completedAt:t.iso.datetime().nullable(),error:t.object({code:me,message:t.string().max(2e3)}).strict().nullable()}).strict(),ta=tr.extend({contentHash:t.string().regex(/^[a-f0-9]{64}$/)});function Te(e){let a=ta.parse(e),{contentHash:r,...s}=a;if(l(s)!==r||Object.values(a.counts).reduce((o,i)=>o+i,0)!==a.totalCount)throw new Error("Scoring pass integrity or population accounting failed.");let n=["completed","failed","cancelled"].includes(a.status);if(n&&(!a.completedAt||a.counts.pending||a.counts.running)||!n&&(a.completedAt!==null||a.resultAvailable)||a.status==="completed"&&!a.resultAvailable)throw new Error("Scoring pass lifecycle differs from its retained result.");if(a.graders.length!==a.request.graders.length||new Set(a.graders.map(o=>o.feedbackKey)).size!==a.graders.length||a.graders.some((o,i)=>l(o.release)!==l(a.request.graders[i])||l(o.mappings??[])!==l(a.request.mappings?.find(d=>d.graderId===o.release?.id)?.fields??[])))throw new Error("Scoring pass graders differ from their exact admission.");return a}c(Te,"verifyExperimentScoringPass");var aa=8388608;async function Je(e,a,r,s){let n=new AbortController,o=r.signal,i=c(()=>n.abort(o?.reason),"forward");o?.aborted?i():o?.addEventListener("abort",i,{once:!0});let d=setTimeout(()=>n.abort(new Error("Connected evidence request timed out.")),6e4),m,f=c(()=>{m&&m.cancel(n.signal.reason).catch(()=>{})},"abortReader");n.signal.addEventListener("abort",f,{once:!0});let h=new Promise((p,g)=>{let x=c(()=>g(n.signal.reason??new DOMException("Request aborted","AbortError")),"abort");n.signal.aborted?x():n.signal.addEventListener("abort",x,{once:!0})});try{let p=e(a,{...r,signal:n.signal}).then(I=>{if(n.signal.aborted)throw I.body?.cancel(n.signal.reason).catch(()=>{}),n.signal.reason;return I}),g=await Promise.race([p,h]),x=g.headers.get("content-length");if(m=g.body?.getReader(),n.signal.aborted)throw await m?.cancel(n.signal.reason),n.signal.reason;if(x&&Number(x)>aa)throw await m?.cancel(),s(502,"connected_response_too_large","Connected evidence response exceeds 8 MiB.");let k=[],T=0;if(m)for(;;){let I=await Promise.race([m.read(),h]);if(I.done)break;if(T+=I.value.byteLength,T>aa)throw await m.cancel(),s(502,"connected_response_too_large","Connected evidence response exceeds 8 MiB.");k.push(I.value)}let H=new Uint8Array(T),j=0;for(let I of k)H.set(I,j),j+=I.byteLength;let C;try{C=JSON.parse(new TextDecoder("utf-8",{fatal:!0}).decode(H))}catch{throw s(502,"connected_response_invalid","Connected evidence response is not valid JSON.")}return{response:g,value:C}}finally{clearTimeout(d),o?.removeEventListener("abort",i),n.signal.removeEventListener("abort",f),m?.releaseLock()}}c(Je,"fetchConnectedJson");var ra=t.string().regex(/^[a-f0-9]{64}$/),na=t.object({request:Ut,maximumCostUsd:t.number().finite().positive().max(1e4),graders:t.array(le).min(1).max(100),admissionRequestHash:ra.optional(),sourceExperimentId:t.string().trim().min(1).max(200).optional()}).strict(),sa=na.extend({configurationHash:ra}).strict(),oa=Gt.extend({configuration:sa}).strict();function oe(e){return e.policy.kind==="hosted_harness"?{...e,population:e.population.map(({receiptId:a,...r})=>r)}:e}c(oe,"experimentConfigurationRequest");function ia(e){let a=na.parse(e);return l({...a,request:oe(a.request)})}c(ia,"experimentRunConfigurationHash");async function ca(e){let a=oa.parse(e),{configuration:r,...s}=a,n=await Ft(s),{configurationHash:o,...i}=r;if(o!==ia(i)||l(oe(r.request))!==l(oe(n.request))||r.maximumCostUsd!==n.manifest.limits.maximumSpendUsd)throw new Error("Experiment configuration differs from its retained run.");if(n.manifest.metadata.experimentDefinition===null){let d=$e.parse({definition:null,configurationHash:r.configurationHash,maximumCostUsd:r.maximumCostUsd,graders:r.graders,...r.admissionRequestHash?{admissionRequestHash:r.admissionRequestHash}:{},...r.sourceExperimentId?{sourceExperimentId:r.sourceExperimentId}:{}});if(n.manifest.metadata.experimentConfigurationHash!==l(d))throw new Error("Experiment configuration differs from its admitted manifest.")}return{...n,configuration:r}}c(ca,"verifyExperimentRunDetails");var da=t.object({teamId:t.string().trim().min(1).max(240),items:t.array(t.object({name:t.string().trim().min(1).max(500),source:vt,ready:t.boolean(),reason:t.string().min(1).max(2e3).nullable()}).strict()).max(8),nextCursor:t.string().min(1).max(8192).nullable()}).strict(),_=t.string().trim().min(1).max(200),la=class extends Error{static{c(this,"OpenPondExperimentError")}constructor(e,a,r){super(r),this.status=e,this.code=a,this.name="OpenPondExperimentError"}status;code},ar=class{static{c(this,"OpenPondExperimentsClient")}constructor(e){this.options=e;let a=new URL(e.baseUrl);if(!["http:","https:"].includes(a.protocol)||a.username||a.password||a.search||a.hash||!e.apiKey.trim()||!e.teamId.trim())throw new Error("A clean API origin and workspace credentials are required.");this.baseUrl=a.toString().replace(/\/+$/,"")}options;baseUrl;async harnessSources(e={}){let a=e.cursor===void 0?void 0:t.string().min(1).max(8192).parse(e.cursor),r=new URLSearchParams(a?{cursor:a}:{}),s=da.parse(await this.request(`/harness-sources?${r}`,"GET",void 0,e.signal));if(s.teamId!==this.options.teamId||new Set(s.items.map(n=>l(n.source))).size!==s.items.length||s.nextCursor!==null&&s.nextCursor===a||s.items.some(n=>n.ready!==(n.reason===null)))throw new Error("Harness catalog differs from its workspace, readiness or continuation.");return s}async prepareHarness(e,a){let r=Le.parse(e),s=Be.parse(await this.request("/harness-setup","POST",r,a));Vt(s.request,s.manifest);let n=s.request.policy;if(s.request.teamId!==this.options.teamId||s.request.operationId!==r.operationId||n.kind!=="hosted_harness"||n.profileRepositoryId!==r.profileRepositoryId||n.source.definitionId!==r.definitionId||n.modelId!==r.modelId||n.reasoningEffort!==r.reasoningEffort||s.maximumCostUsd!==r.maximumCostUsd||s.manifest.limits.maximumSpendUsd!==r.maximumCostUsd)throw new Error("Harness preparation differs from its requested scope or configuration.");return s}async run(e,a){let r=Ne.parse(e);if(r.request.teamId!==this.options.teamId)throw new Error("Experiment workspace mismatch.");let s=await this.details(await this.request("","POST",r,a));if(l(oe(s.request))!==l(oe(r.request))||s.configuration.maximumCostUsd!==r.maximumCostUsd||s.configuration.sourceExperimentId!==r.sourceExperimentId||s.configuration.admissionRequestHash!==l(r))throw new Error("Experiment admission differs from its submitted configuration.");if(r.graders&&l(r.graders)!==l(s.configuration.graders.map(n=>({id:n.id,version:n.version,contentHash:n.contentHash,mappings:n.mappings??[]}))))throw new Error("Experiment admission differs from its selected graders or mappings.");return s}async get(e,a={}){return this.details(await this.request(`/${encodeURIComponent(_.parse(e))}`,"GET",void 0,a.signal),e)}async list(e={},a){let r=ze.parse(e),s=new URLSearchParams(Object.entries(r).filter(([,i])=>i!==void 0).map(([i,d])=>[i,String(d)])),n=t.object({items:t.array(t.unknown()).max(100),nextCursor:_.nullable()}).strict().parse(await this.request(`?${s}`,"GET",void 0,a)),o=await Promise.all(n.items.map(i=>this.details(i)));if(o.length>r.limit||new Set(o.map(i=>i.summary.id)).size!==o.length||n.nextCursor!==null&&n.nextCursor!==o.at(-1)?.summary.id||o.some(i=>r.projectId&&i.request.project?.id!==r.projectId||r.datasetHash&&i.request.taskset.contentHash!==r.datasetHash||r.status&&i.summary.status!==r.status))throw new Error("Experiment page differs from its selected scope.");return{items:o,nextCursor:n.nextCursor}}async result(e,a){let r=t.object({executionId:_,passId:_.nullable(),manifest:t.unknown(),result:t.unknown()}).strict().parse(await this.request(`/${encodeURIComponent(_.parse(e))}/result`,"GET",void 0,a)),s=$(r);if(r.executionId!==e||s.manifest.teamId!==this.options.teamId||s.manifest.lineage?.execution.id!==e||s.manifest.lineage.scoringPassId!==r.passId)throw new Error("Experiment result identity mismatch.");return{...s,executionId:e,passId:r.passId}}async cancel(e,a){return this.details(await this.request(`/${encodeURIComponent(_.parse(e))}/cancel`,"POST",{},a),e)}async duplicate(e,a,r){let s=await this.details(await this.request(`/${encodeURIComponent(_.parse(e))}/duplicate`,"POST",{operationId:_.parse(a)},r));if(s.request.operationId!==a||s.configuration.sourceExperimentId!==e||s.summary.id===e)throw new Error("Duplicate Experiment admission differs from its source or operation.");return s}async score(e,a){let r=Z.parse(e),s=this.pass(await this.request(`/${encodeURIComponent(r.execution.id)}/scoring-passes`,"POST",r,a));if(l(s.request)!==l(r))throw new Error("Scoring admission differs from its submitted inputs.");return s}async scoringPass(e,a){return this.pass(await this.request(`/scoring-passes/${encodeURIComponent(_.parse(e))}`,"GET",void 0,a),e)}async scoringPasses(e,a={}){let r=new URLSearchParams(a.afterId?{afterId:_.parse(a.afterId)}:{});a.executionKind&&r.set("executionKind",t.literal("recorded_evidence").parse(a.executionKind));let s=t.object({items:t.array(t.unknown()).max(30),nextCursor:_.nullable()}).strict().parse(await this.request(`/${encodeURIComponent(_.parse(e))}/scoring-passes?${r}`,"GET",void 0,a.signal)),n=s.items.map(o=>this.pass(o));if(n.some(o=>o.request.execution.id!==e||o.request.executionKind!==a.executionKind)||new Set(n.map(o=>o.id)).size!==n.length)throw new Error("Scoring pass page differs from its execution ownership.");return{items:n,nextCursor:s.nextCursor}}async cancelScoringPass(e,a){return this.pass(await this.request(`/scoring-passes/${encodeURIComponent(_.parse(e))}/cancel`,"POST",{},a),e)}async scoringResult(e,a){let r=t.object({executionId:_,passId:_,manifest:t.unknown(),result:t.unknown()}).strict().parse(await this.request(`/scoring-passes/${encodeURIComponent(_.parse(e))}/result`,"GET",void 0,a)),s=$(r);if(r.passId!==e||s.manifest.teamId!==this.options.teamId||s.manifest.id!==e||s.manifest.lineage?.execution.id!==r.executionId||s.manifest.lineage.scoringPassId!==e)throw new Error("Scoring result identity mismatch.");return{...s,executionId:r.executionId,passId:e}}async compare(e,a,r){let s=c(i=>i.startsWith("score_")?this.scoringResult(i,r):this.result(i,r),"read"),[n,o]=await Promise.all([s(e),s(a)]);return{baseline:n,candidate:o,comparison:be(n,o)}}async details(e,a){let r=await ca(e);if(r.summary.teamId!==this.options.teamId||a&&r.summary.id!==a)throw new Error("Experiment identity mismatch.");return r}pass(e,a){let r=Te(e);if(r.teamId!==this.options.teamId||a&&r.id!==a)throw new Error("Scoring pass identity mismatch.");return r}async request(e,a,r,s){let n=await(this.options.fetch??fetch)(`${this.baseUrl}/v1/experiments${e}`,{method:a,signal:s,redirect:"error",headers:{Authorization:`Bearer ${this.options.apiKey}`,"X-OpenPond-Team-Id":this.options.teamId,"Content-Type":"application/json",Accept:"application/json"},...r===void 0?{}:{body:JSON.stringify(r)}}),o=await n.json();if(!n.ok){let i=t.object({code:t.string(),message:t.string()}).safeParse(o);throw new la(n.status,i.success?i.data.code:"experiment_request_failed",i.success?i.data.message:"Experiment request failed.")}return o}},V=t.string().trim().min(1).max(500),ma=t.string().regex(/^[a-f0-9]{64}$/),rr=t.object({schemaVersion:t.literal("openpond.experimentCaseInspection.v1"),teamId:V,executionId:V,manifestHash:ma,receiptId:V,taskId:V,seed:t.string().min(1),input:t.record(t.string(),t.unknown()).nullable(),output:t.unknown().nullable(),error:t.string().nullable(),events:t.array(t.record(t.string(),t.unknown())).max(25),nextEventCursor:V.nullable(),eventCount:t.number().int().nonnegative()}).strict(),pa=rr.extend({contentHash:ma}).strict(),nr=class{static{c(this,"OpenPondExperimentInspectionClient")}constructor(e){this.options=e;let a=new URL(e.baseUrl);if(!["http:","https:"].includes(a.protocol)||a.username||a.password||a.search||a.hash||!e.apiKey.trim()||!e.teamId.trim())throw new Error("A clean API origin and workspace credentials are required.");this.baseUrl=a.toString().replace(/\/+$/,"")}options;baseUrl;async case(e,a,r={}){let s=new URLSearchParams(r.afterId?{afterId:V.parse(r.afterId)}:{}),n=await(this.options.fetch??fetch)(`${this.baseUrl}/v1/experiments/${encodeURIComponent(V.parse(e))}/cases/${encodeURIComponent(V.parse(a))}?${s}`,{signal:r.signal,redirect:"error",headers:{Authorization:`Bearer ${this.options.apiKey}`,"X-OpenPond-Team-Id":this.options.teamId,Accept:"application/json"}}),o=await n.json();if(!n.ok)throw new Error(t.object({message:t.string()}).parse(o).message);let i=pa.parse(o),{contentHash:d,...m}=i;if(l(m)!==d||i.teamId!==this.options.teamId||i.executionId!==e||i.receiptId!==a||r.manifestHash&&i.manifestHash!==r.manifestHash||i.events.length>i.eventCount)throw new Error("Case inspection differs from its requested workspace, execution or retained content.");return i}};function ua(e){return JSON.stringify(e.release?["reward",e.release.id,e.release.revision,e.release.contentHash,e.feedbackKey]:["dataset",e.id,e.version,e.contentHash,e.feedbackKey])}c(ua,"datasetGraderIdentity");function fa(e){let a=new Map;for(let r of e){let s=ua(r),n=a.get(s);n?n.aliases.push(r):a.set(s,{key:s,grader:r,aliases:[r]})}return[...a.values()]}c(fa,"groupDatasetGraders");function sr(e){let a=fa(e),r=new Map;for(let s of a){let n=r.get(s.grader.feedbackKey);if(n&&n!==s.key)throw new Error(`Different selected grader releases use feedback key "${s.grader.feedbackKey}". Select one, or publish graders with distinct feedback keys.`);r.set(s.grader.feedbackKey,s.key);let o=JSON.stringify(s.grader.mappings??[]);if(s.aliases.some(i=>JSON.stringify(i.mappings??[])!==o))throw new Error(`Aliases of grader "${s.grader.feedbackKey}" have different field mappings. Select one alias and review its mappings.`)}return a.map(s=>s.grader)}c(sr,"canonicalDatasetGraderSelection");function or(e){let a=J(e.binding),r=Bt(e.packageValue),s=r.taskset;if(s.id!==a.dataset.id||s.revision!==a.dataset.revision||s.contentHash!==a.dataset.contentHash||r.contentHash!==a.packageHash||l(s.environment)!==a.environmentHash||l(r.files.filter(n=>n.asset.visibility!=="policy").map(n=>n.asset))!==a.privateDatasetClosureHash)throw new Error("The selected Dataset package, environment or protected closure changed.");if(a.population.length>500)throw new Error("Select at most 500 exact Dataset cases before starting this bounded Profile evaluation.");for(let n of a.population){let o=s.tasks.find(i=>i.id===n.taskId);if(!o||o.split!==a.split)throw new Error("The selected ordered population is outside its exact Dataset split.");if(n.fixtureId!==null)throw new Error("This recorded cutoff needs an admitted replay fixture before executing the Profile target.")}if(a.gradingSource){if(!e.actualGrading)throw new Error("The actual selected scoring owner is required for this recipe.");let n=Te(e.actualGrading.pass),o=$(t.object({manifest:t.unknown(),result:t.unknown()}).strict().parse(e.actualGrading.evidence));if(n.status!=="completed"||n.id!==a.gradingSource.pass.id||n.contentHash!==a.gradingSource.pass.contentHash||o.manifest.id!==a.gradingSource.evidence.id||o.result.contentHash!==a.gradingSource.evidence.contentHash||o.manifest.lineage?.scoringPassId!==n.id||l(o.manifest.dataset)!==l(a.dataset)||l(o.manifest.evaluators)!==l(a.evaluators)||l(a.fieldMappings)!==l(n.graders.map(m=>({graderId:m.id,fields:m.mappings??[]}))))throw new Error("The selected scoring owner changed its exact Dataset, measurements or mappings.");let i=o.manifest.population,d=a.recordedOrigin?a.recordedOrigin.members.map(m=>({caseId:m.caseId,seed:m.seed,fixtureId:m.fixtureId})):a.population.map(m=>({caseId:m.taskId,seed:m.seed,fixtureId:m.fixtureId}));if(i.length!==d.length||i.some((m,f)=>l(m)!==l(d[f])))throw new Error("The selected scoring population differs from the exact ordered original cases and cutoffs.")}else{if(a.fieldMappings.some(i=>!s.graders.some(d=>d.id===i.graderId)))throw new Error("The field mappings name a grader outside the selected release.");for(let i of a.fieldMappings)de.parse(i.fields);let n=a.evaluators.map(i=>{let d=e.graders.find(m=>m.feedbackKey===i.feedbackKey&&l(m.release??{id:m.id,revision:m.version,contentHash:m.contentHash})===l(i.release));if(!d)throw new Error("Select an exact released Dataset grader for this external recipe.");return d});if(a.fieldMappings.some(i=>!n.some(d=>d.id===i.graderId)))throw new Error("Field mappings refer to an unselected grader.");let o=n.map(i=>({release:i.release??{id:i.id,revision:i.version,contentHash:i.contentHash},feedbackKey:i.feedbackKey,configurationHash:l({graderHash:i.contentHash,mappings:a.fieldMappings.find(d=>d.graderId===i.id)?.fields??[]}),output:"score",categories:[]}));if(l(o)!==l(a.evaluators))throw new Error("The external recipe's graders or mappings differ from the current exact released grading settings.");for(let i of e.graders)if(!s.graders.some(d=>d.id===i.id&&d.version===i.version&&l(d)===i.contentHash))throw new Error("External grader pins differ from the actual Dataset implementation.")}for(let n of e.graders)if(!s.graders.some(o=>o.id===n.id&&o.version===n.version&&l(o)===n.contentHash))throw new Error("Dataset-native grader pins differ from their actual implementation.");return r}c(or,"verifyExternalDatasetPackage");var Y=t.string().trim().min(1).max(240),ha=t.object({profileRef:t.object({source:t.enum(["local","github","openpond_git"]),repositoryId:Y,profileId:Y}).strict(),sourceRevision:t.string().min(1).max(500),harnessRelease:u,catalogHash:t.string().regex(/^[a-f0-9]{64}$/).nullable(),definitions:t.array(ht).max(1e3),suites:t.array(gt).max(100),runs:t.array(t.object({profileRef:t.object({source:t.enum(["local","github","openpond_git"]),repositoryId:Y,profileId:Y}).strict(),manifest:xt,metric:mt,gradeRefs:t.array(u),receiptRefs:t.array(u),passRate:t.number().min(0).max(1),passed:t.boolean(),completedAt:t.iso.datetime(),contentHash:t.string().regex(/^[a-f0-9]{64}$/)}).strict()).max(1e3),comparisons:t.array(Ct).max(1e3),suiteRuns:t.array(_t).max(1e3),reports:t.array(At).max(1e3)}).strict(),ga=t.object({teamId:Y,profileRepositoryId:Y,trainingProjectId:Y.optional()}).strict(),ir=class{static{c(this,"OpenPondProfileEvaluationDiscoveryClient")}constructor(e){this.options=e;let a=new URL(e.baseUrl);if(!["http:","https:"].includes(a.protocol)||a.username||a.password||a.search||a.hash||!e.apiKey.trim()||!e.teamId.trim())throw new Error("Profile discovery requires a scoped HTTP endpoint and owner credential.")}options;async read(e,a){let r=ga.parse({...e,teamId:this.options.teamId}),{response:s,value:n}=await Je(this.options.fetch??fetch,`${this.options.baseUrl.replace(/\/$/,"")}/v1/profile-evaluation-discovery`,{method:"POST",redirect:"error",headers:{Authorization:`Bearer ${this.options.apiKey}`,"X-OpenPond-Team-Id":this.options.teamId,"Content-Type":"application/json"},body:JSON.stringify(r),signal:a},(i,d,m)=>new Error(m));if(!s.ok)throw new Error("The released Profile evaluation owner is unavailable to this account and workspace.");let o=ha.parse(n);if(o.profileRef.repositoryId!==r.profileRepositoryId)throw new Error("Profile discovery returned another source owner.");return o}};var L=G.shape.id,z=t.number().int().positive(),Q=t.string().regex(/^[a-f0-9]{64}$/),ee={teamId:L,modelId:L},pc=t.object({schemaVersion:t.literal("openpond.tasksetDraftCreate.v1"),operationId:L,modelId:L,expectedModelRevision:z,name:G.shape.name}).strict(),uc=t.object({schemaVersion:t.literal("openpond.tasksetDraftSourceDescriptor.v1"),...ee,expectedModelRevision:z,sourcePackageHash:Q}).strict(),fc=t.object({schemaVersion:t.literal("openpond.tasksetDraftReadback.v1"),...ee,draft:G,workspaceHash:Q,projectEtag:Q}).strict().refine(e=>e.draft.profileId===e.teamId&&e.draft.modelScope?.modelId===e.modelId,"The hosted draft must belong to its declared workspace and Model."),cr=t.object({id:L,revision:z,name:G.shape.name,status:Nt,updatedAt:G.shape.updatedAt,sourceTasksetRef:Se.nullable()}).strict(),hc=t.object({schemaVersion:t.literal("openpond.tasksetDraftList.v1"),...ee,drafts:t.array(cr).max(100),nextCursor:t.string().min(1).max(2e3).nullable()}).strict(),gc=t.object({expectedDraftRevision:z,draft:G}).strict(),vc=t.object({expectedDraftRevision:z,expectedModelRevision:z}).strict(),dr=t.object({expectedDraftRevision:z,expectedWorkspaceHash:Q}).strict(),bc=t.object({schemaVersion:t.literal("openpond.tasksetDraftValidation.v1"),...ee,draftId:L,draftRevision:z,workspaceHash:Q,valid:t.boolean(),issues:t.array(t.object({code:t.string().min(1),severity:t.enum(["warning","error"]),message:t.string(),path:t.string().nullable()}).strict()),packageHash:Q.nullable(),tasksetRef:Se.nullable()}).strict().refine(e=>e.valid?e.packageHash!==null&&e.tasksetRef!==null&&e.issues.every(a=>a.severity!=="error"):e.packageHash===null&&e.tasksetRef===null&&e.issues.some(a=>a.severity==="error"),"Validation must retain either a compiled package or publication errors."),Sc=dr.extend({operationId:L,expectedPackageHash:Q,expectedTasksetRef:Se}).strict(),xc=t.object({schemaVersion:t.literal("openpond.tasksetDraftFileList.v1"),...ee,draftId:L,draftRevision:z,files:t.array(Ht).max(10020)}).strict(),wc=t.object({schemaVersion:t.literal("openpond.tasksetDraftFileReadback.v1"),...ee,draftId:L,draftRevision:z,file:jt}).strict(),yc=t.object({schemaVersion:t.literal("openpond.tasksetDraftDeletion.v1"),...ee,draftId:L,revision:z,deleted:t.literal(!0)}).strict(),kc=G.shape.id,Ic=t.number().int().positive();var N=t.string().trim().min(1).max(500),Tc=t.object({projectId:N.optional(),tasksetId:N.optional(),draftId:N.optional(),taskId:N.optional(),query:t.string().trim().max(1e3).default(""),split:t.enum(["train","validation","test","frozen_eval"]).optional(),after:t.string().min(1).max(2e3).optional(),limit:t.number().int().min(1).max(100).default(30)}).strict(),lr=t.object({id:N,method:t.enum(["code","judge","human"]),required:t.boolean()}),mr=t.object({tasksetId:N,tasksetName:t.string(),tasksetRevision:t.number().int().positive(),tasksetHash:t.string(),taskId:N,ordinal:t.number().int().nonnegative(),title:t.string(),description:t.string(),split:t.string(),scoring:t.array(lr),configuration:t.enum(["configured","needs_reward","needs_checks"]),draftId:N.nullable().default(null),modelId:N.nullable().default(null)}),Pc=t.object({items:t.array(mr).max(100),nextCursor:t.string().nullable()});function Cc(e,a){let r=[e.instruction,e.prompt,e.request,e.question,e.message].find(o=>typeof o=="string"&&o.trim().length>0),s=typeof e.title=="string"?e.title.trim():"",n=r?.trim()??"";return{title:(s||n||a).slice(0,180),description:n.slice(0,2e3)}}c(Cc,"describeTaskInput");function Ac(e){return e.map(a=>({id:a.id,method:a.kind==="model_judge"?"judge":a.kind==="human"?"human":"code",required:a.hardGate}))}c(Ac,"summarizeTaskScoring");function _c(e){return e.some(a=>a.kind!=="human")?e.some(a=>a.kind==="model_judge"&&a.calibrationStatus!=="passed")?"needs_checks":"configured":"needs_reward"}c(_c,"taskConfiguration");var Qe=3e3,et=9999,Pe="openpond.yaml",Mc="openpond-template-plan.json",pr="openpond.sandboxTemplate.buildPlan.v1",ur=["google","github","x"],tt=new Set([22,2222,2375,2376,3108,5900,5901,6080,7818]),va=t.array(t.string().trim().min(1).max(1e3)).max(50),pe=t.string().trim().min(1).max(4096).refine(Ra,{message:"path must be a relative workspace path"}),fr=t.string().trim().min(1).max(500).refine(e=>!e.includes("\0")&&!/\s/.test(e),"image ref must be a single OCI reference"),hr=t.string().trim().regex(/^sha256:[0-9a-f]{64}$/i),Sa=t.string().trim().min(1).max(500).refine(e=>e.startsWith("/")&&!e.includes("\0"),"workspaceRoot must be an absolute guest path"),gr=t.object({ref:fr,digest:hr.optional(),registrySecretRef:t.string().trim().min(1).max(500).optional(),platform:t.literal("linux/amd64").optional(),workspaceRoot:Sa.optional()}).strict(),vr=t.object({context:pe.default("."),path:pe.default("Dockerfile"),target:t.string().trim().min(1).max(191).optional(),buildArgs:t.record(t.string().max(191),t.string().max(500)).optional(),registrySecretRefs:t.array(t.string().trim().min(1).max(500)).max(10).optional(),platform:t.literal("linux/amd64").optional(),workspaceRoot:Sa.optional()}).strict(),br=t.object({base:t.string().trim().min(1).max(120).optional(),snapshot:t.string().trim().min(1).max(191).optional(),image:gr.optional(),dockerfile:vr.optional()}).strict().superRefine((e,a)=>{[e.base,e.snapshot,e.image,e.dockerfile].filter(Boolean).length!==1&&a.addIssue({code:t.ZodIssueCode.custom,message:"runtime must declare exactly one of base, snapshot, image, or dockerfile"})}),xa=t.object({cpu:t.number().positive().max(8).optional(),memoryGb:t.number().positive().max(32).optional(),diskGb:t.number().positive().max(100).optional()}).strict(),Sr=t.object({provider:t.enum(ur),scopes:t.array(t.string().trim().min(1).max(200)).max(100).default([]),capabilities:t.array(t.string().trim().min(1).max(200)).max(100).default([])}).strict(),xr=t.object({models:t.array(t.string().trim().min(1).max(200)).max(100).default([]),scopes:t.array(t.string().trim().min(1).max(200)).max(100).default([])}).strict(),wr=t.object({opchat:xr.optional()}).catchall(t.record(t.string(),t.unknown())).default({}),yr=t.object({name:t.string().trim().regex(/^[A-Za-z_][A-Za-z0-9_-]*$/).max(63).optional(),mountPath:t.string().trim().min(1).max(256).optional(),storageGb:t.number().int().positive().max(100).optional(),deleteOnSandboxDelete:t.boolean().optional()}).strict(),Rr=t.object({port:t.number().int().min(Qe).max(et).refine(e=>!tt.has(e),{message:"preview port is reserved"}),protocol:t.literal("http").default("http"),label:t.string().trim().min(1).max(80).optional(),access:t.enum(["private","public"]).default("private"),path:t.string().trim().min(1).max(512).refine(e=>e.startsWith("/"),{message:"preview path must start with /"}).default("/")}).strict(),wa=t.object({command:t.string().trim().min(1).max(1e3),cwd:pe.optional(),timeoutSeconds:t.number().int().positive().max(86400).optional(),requiresStart:t.boolean().default(!1),ports:t.array(Rr).max(20).default([]),artifactPaths:t.array(pe).max(100).default([])}).strict(),ba=wa.extend({name:t.string().trim().min(1).max(80)}).strict(),kr=t.object({name:t.string().trim().min(1).max(80).optional(),service:t.string().trim().min(1).max(80).optional(),port:t.number().int().min(Qe).max(et).refine(e=>!tt.has(e),{message:"app MCP port is reserved"}),path:t.string().trim().min(1).max(512).refine(e=>e.startsWith("/"),{message:"app MCP path must start with /"}).default("/mcp")}).strict(),Ir=t.object({name:t.string().trim().min(1).max(80).optional(),port:t.number().int().min(Qe).max(et).refine(e=>!tt.has(e),{message:"validation probe port is reserved"}),path:t.string().trim().min(1).max(512).refine(e=>e.startsWith("/"),{message:"validation probe path must start with /"}).default("/"),expectedStatus:t.number().int().min(100).max(599).default(200)}).strict(),Er=t.record(t.string(),t.unknown()).refine(e=>e.type==="object","input schema must be a JSON schema object"),Tr=t.object({name:t.string().trim().regex(/^[A-Za-z_][A-Za-z0-9_]*$/).max(191),required:t.boolean().default(!1),secret:t.boolean().default(!0),description:t.string().trim().max(500).optional()}).strict(),Xe=t.string().trim().min(1).max(120),Pr=t.object({name:t.string().trim().min(1).max(120),description:t.string().trim().max(500).optional(),cron:t.string().trim().min(1).max(500).optional(),rate:t.string().trim().min(1).max(500).optional(),once:Xe.optional(),scheduleType:t.enum(["rate","cron","once"]).optional(),scheduleExpression:t.string().trim().min(1).max(500).optional(),timezone:t.string().trim().min(1).max(100).optional(),enabled:t.boolean().default(!0),startAt:Xe.optional(),endAt:Xe.optional(),maxRuns:t.number().int().positive().nullable().optional(),runtimePolicy:t.enum(["run_and_stop","run_and_archive","run_and_delete","use_existing_running"]).default("run_and_stop"),action:t.string().trim().min(1).max(120).optional(),actionName:t.string().trim().min(1).max(120).optional(),command:t.string().trim().min(1).max(2e3).optional(),target:t.object({kind:t.enum(["start","action","service","command"]).optional(),name:t.string().trim().min(1).max(120).optional(),actionName:t.string().trim().min(1).max(120).optional(),command:t.string().trim().min(1).max(2e3).optional(),requiresStart:t.boolean().optional()}).strict().optional(),requiresStart:t.boolean().optional(),budget:t.object({maxUsd:t.string().trim().min(1).max(40).optional()}).strict().optional(),resources:xa.optional(),quotas:t.record(t.string(),t.unknown()).optional(),lifecycle:t.record(t.string(),t.unknown()).optional(),retentionPolicy:t.record(t.string(),t.unknown()).optional(),env:t.array(t.object({name:t.string().trim().regex(/^[A-Za-z_][A-Za-z0-9_]*$/).max(191),value:t.string().optional(),secretRef:t.string().optional()}).strict()).max(100).optional(),integrationLeases:t.array(t.record(t.string(),t.unknown())).max(20).optional(),metadata:t.record(t.string(),t.unknown()).optional()}).strict().superRefine((e,a)=>{[e.cron,e.rate,e.once,e.scheduleExpression].filter(d=>typeof d=="string"&&d.trim()).length!==1&&a.addIssue({code:t.ZodIssueCode.custom,path:["scheduleExpression"],message:"schedule must declare exactly one of cron, rate, once, or scheduleExpression"}),e.scheduleExpression&&!e.scheduleType&&a.addIssue({code:t.ZodIssueCode.custom,path:["scheduleType"],message:"scheduleType is required with scheduleExpression"});let s=e.command??e.target?.command??null,n=e.target?.name??null,o=e.actionName??e.action??e.target?.actionName??(e.target?.kind==="action"?n:null),i=e.target?.kind??(s?"command":"action");i==="action"&&!o&&a.addIssue({code:t.ZodIssueCode.custom,path:["action"],message:"schedule action target is required"}),i==="service"&&!n&&a.addIssue({code:t.ZodIssueCode.custom,path:["target","name"],message:"schedule service target name is required"}),i==="command"&&!s&&a.addIssue({code:t.ZodIssueCode.custom,path:["command"],message:"schedule command target is required"})}),Cr=t.object({schemaVersion:t.literal(1),name:t.string().trim().min(1).max(80).regex(/^[a-z0-9][a-z0-9-]*[a-z0-9]$/),version:t.string().trim().min(1).max(40),useCase:t.string().trim().min(1).max(80),description:t.string().trim().min(1).max(500),runtime:br,resources:xa.optional(),setup:t.object({commands:va.default([])}).strict().default({commands:[]}),validation:t.object({commands:va.min(1),probes:t.array(Ir).max(20).default([])}).strict(),start:wa,actions:t.array(ba).max(20).default([]),services:t.array(ba).max(20).default([]),schedules:t.array(Pr).max(20).default([]),mcp:t.object({endpoints:t.array(kr).max(10).default([])}).strict().default({endpoints:[]}),volumes:t.array(yr).max(5).default([]),integrations:t.object({requiredLeases:t.array(Sr).max(20).default([])}).strict().default({requiredLeases:[]}),permissions:wr,inputs:t.object({schema:Er.default({type:"object"}),env:t.array(Tr).max(100).default([])}).strict().default({schema:{type:"object"},env:[]}),artifacts:t.object({paths:t.array(pe).max(100).default([])}).strict().default({paths:[]}),network:t.object({egress:t.enum(["restricted","allow","block"]).default("restricted")}).strict().default({egress:"restricted"})}).strict().superRefine((e,a)=>{jr(e,a),at(a,e.volumes.flatMap(r=>r.name?[r.name]:[]),"volume names must be unique","volumes"),Dr(e,a),Or(e,a),Mr(e,a),qr(e,a)}),qc=t.object({path:t.string(),message:t.string(),code:t.string()});function zc(e){let a;try{a=Kt.load(e)}catch(r){return{ok:!1,manifest:null,diagnostics:[{path:"$",code:"invalid_yaml",message:r instanceof Error?r.message:"Invalid YAML"}]}}return Ar(a)}c(zc,"validateSandboxTemplateYaml");function Ar(e){if(!e||typeof e!="object"||Array.isArray(e))return{ok:!1,manifest:null,diagnostics:[{path:"$",code:"invalid_type",message:`${Pe} must be an object`}]};if(Object.prototype.hasOwnProperty.call(e,"databases"))return{ok:!1,manifest:null,diagnostics:[{path:"$.databases",code:"database_resources_removed",message:"managed database requests are unsupported for Firecracker sandbox templates; use a durable volume with SQLite or files instead"}]};let a=Cr.safeParse(e);return a.success?{ok:!0,manifest:a.data,diagnostics:[]}:{ok:!1,manifest:null,diagnostics:a.error.issues.map(r=>({path:Hr(r.path),code:r.code,message:r.message}))}}c(Ar,"validateSandboxTemplateManifest");function $c(e){return e.map(a=>`${a.path}: ${a.message}`).join(`
2
+ import{$b as Ue,A as M,B as O,C as we,Ca as Bt,Cb as le,D as u,E as ye,F as X,Fb as ze,G as l,Gb as $e,Hb as Le,I as Dt,Ib as Be,J as Ot,Jb as Ne,K as Mt,M as qt,N as zt,O as $t,Qa as Re,Ta as ke,Ua as Nt,Va as G,Zb as Ie,_ as qe,_b as Ee,ac as Ge,bc as Ve,cc as Fe,dc as Ke,ec as We,f as Ht,g as jt,mc as Wt,nc as Jt,oc as Xt,sb as Ut,tb as Gt,wa as Lt,wb as Vt,xb as Ft,zb as de}from"./chunk-QRWPEW3Z.js";import{a as Kt}from"./chunk-6FA3GG5B.js";import{B as Rt,C as Me,E as kt,F as It,G as Et,H as Tt,N as Pt,ja as Ct,k as bt,la as At,o as St,oa as _t,r as xt}from"./chunk-WV2APYWG.js";import{Ia as ne,Ja as se,Kb as wt,Lb as yt,Ma as $,Na as be,Oa as Oe,Q as pt,Ya as Se,aa as ut,ga as ft,l as mt,la as ae,na as re,oa as J,ra as ht,sa as gt,vb as xe,ya as vt}from"./chunk-PJM2G7SG.js";import{b as lt}from"./chunk-SDEDAHV6.js";import{b as K,c as U,d as W,e as ce,f as E,i as De,m as ge,o as ve}from"./chunk-NNF6KCHD.js";import{b as t}from"./chunk-ES2ISFJC.js";import{a as c}from"./chunk-FTQLQJQV.js";var Fa=t.string().trim().min(1).max(1e5),Ka=t.enum(["no_training","sft","preference","rl"]),Wa=t.object({kind:t.enum(["none","demonstrations","chosen_rejected","scalar_reward"]),strength:t.enum(["absent","weak","usable"]),calibrated:t.boolean(),confounded:t.boolean(),variance:t.number().finite().nonnegative().nullable(),evidenceRefs:t.array(E).max(1e5)}).strict(),Yt=t.object({schemaVersion:t.literal("openpond.modelImprovementQualificationReceipt.v1"),id:K,review:E,harnessRelease:E,tasksetRelease:E.nullable(),baselineEvaluation:E.nullable(),model:ve,environmentHash:U.nullable(),toolContractHash:U.nullable(),permissionContractHash:U.nullable(),policyHash:U.nullable(),verifierRef:E.nullable(),sourcePolicies:t.array(lt).max(1e4),trainingEvidenceRefs:t.array(E).max(1e5),frozenEvaluationEvidenceRefs:t.array(E).max(1e5),privacyApproval:E.nullable(),budgetApproval:E.nullable(),maximumCostUsd:t.number().finite().nonnegative(),signal:Wa,decision:Ka,reasons:t.array(Fa).min(1).max(100),createdAt:W,metadata:ce}).strict().superRefine((e,a)=>{let r=new Set(e.trainingEvidenceRefs.map(Zt));if(e.frozenEvaluationEvidenceRefs.some(n=>r.has(Zt(n)))&&a.addIssue({code:"custom",message:"frozen Evaluation evidence cannot be used as training evidence",path:["frozenEvaluationEvidenceRefs"]}),e.decision==="no_training")return;(!e.tasksetRelease||!e.baselineEvaluation||!e.environmentHash||!e.toolContractHash||!e.permissionContractHash||!e.policyHash||!e.verifierRef||!e.privacyApproval||!e.budgetApproval||e.sourcePolicies.length===0||e.sourcePolicies.some(n=>n.state!=="authorized")||e.trainingEvidenceRefs.length===0||e.signal.strength!=="usable"||!e.signal.calibrated||e.signal.confounded)&&a.addIssue({code:"custom",message:"qualified model improvement requires frozen lineage, authorized signal, privacy, and budget gates"}),e.decision==="sft"&&e.signal.kind!=="demonstrations"&&a.addIssue({code:"custom",message:"SFT qualification requires demonstration signal",path:["signal","kind"]}),e.decision==="preference"&&e.signal.kind!=="chosen_rejected"&&a.addIssue({code:"custom",message:"preference qualification requires chosen/rejected signal",path:["signal","kind"]}),e.decision==="rl"&&(e.signal.kind!=="scalar_reward"||e.signal.variance===null||e.signal.variance<=0)&&a.addIssue({code:"custom",message:"RL qualification requires a usable scalar reward with variance",path:["signal"]})}),Ja=Yt.extend({contentHash:U}).strict();function Cn(e){let a=Yt.parse(e);return Ja.parse({...a,contentHash:ge(a)})}c(Cn,"createModelImprovementQualificationReceipt");function Zt(e){return`${e.id}:${e.contentHash}`}c(Zt,"refKey");var Xa=t.object({schemaVersion:t.literal("openpond.optimizerTrainingSample.v1"),tokenIds:t.array(t.number().int().nonnegative()).min(2).max(32768),mask:t.array(t.boolean()).min(2).max(32768),logprobs:t.array(t.number().finite()).min(2).max(32768),temperatures:t.array(t.number().positive().finite()).min(2).max(32768),envName:t.string().trim().min(1).max(200),modelRequestId:t.string().trim().min(1).max(1e3),promptTokenCount:t.number().int().positive(),completionTokenCount:t.number().int().positive(),servedPolicyVersion:t.number().int().nonnegative()}).strict().superRefine((e,a)=>{let r=e.tokenIds.length;for(let[s,n]of[["mask",e.mask],["logprobs",e.logprobs],["temperatures",e.temperatures]])n.length!==r&&a.addIssue({code:"custom",path:[s],message:`${s} must align with tokenIds`});e.promptTokenCount+e.completionTokenCount!==r&&a.addIssue({code:"custom",path:["completionTokenCount"],message:"prompt and completion token counts must span tokenIds"}),e.mask.filter(s=>!s).length!==e.promptTokenCount&&a.addIssue({code:"custom",path:["mask"],message:"promptTokenCount must equal the non-trainable mask count"}),e.mask.filter(Boolean).length!==e.completionTokenCount&&a.addIssue({code:"custom",path:["mask"],message:"completionTokenCount must equal the trainable mask count"})}),Za=t.object({id:K,environmentRelease:E,status:t.enum(["completed","failed","timed_out","cancelled"]),startedAt:W,completedAt:W,traceRefs:t.array(De).max(1e4),metadata:ce}).strict(),Ya=t.object({receiptRef:E,status:It,value:t.number().min(0).max(1).nullable(),learningEligible:t.boolean(),passed:t.boolean(),outcomeClass:Tt,failureOwner:Et.nullable(),components:t.record(K,t.number().min(0).max(1).nullable())}).strict(),Qt=t.object({schemaVersion:t.literal("openpond.canonicalRolloutRecord.v1"),id:K,attemptRef:E,artifactManifestRef:E,tasksetRelease:E,environmentRelease:E,verifierSetRelease:E,harnessRelease:E,taskId:K,split:pt,model:ve,seed:t.string().trim().min(1).max(500),reward:Ya,traceRef:De,optimizerSample:Xa.nullable(),environmentExecutions:t.array(Za).min(1).max(1e5),startedAt:W,completedAt:W,metadata:ce}).strict();function ea(e,a){e.reward.status==="scored"&&(e.reward.value===null||!e.reward.learningEligible)&&a.addIssue({code:"custom",path:["reward","status"],message:"A scored rollout requires a numeric, learning-eligible reward."}),e.reward.status==="unscorable"&&(e.reward.value!==null||e.reward.learningEligible)&&a.addIssue({code:"custom",path:["reward","status"],message:"An unscorable rollout has no reward and cannot be learning-eligible."})}c(ea,"validateCanonicalRolloutRecord");var Qa=Qt.superRefine(ea),er=t.object({...Qt.shape,contentHash:U}).strict().superRefine(ea);function qn(e){let a=bt.parse(e.attemptReceipt);if(!St(a))throw new Error("Rollout Attempt Receipt failed content-hash verification.");let r=Pt.parse(e.rewardReceipt);if(r.attemptRef.id!==a.id||r.attemptRef.contentHash!==a.contentHash)throw new Error("Rollout Attempt Receipt does not match its Reward Receipt.");if(r.artifactManifestRef.id!==e.artifactManifestRef.id||r.artifactManifestRef.contentHash!==e.artifactManifestRef.contentHash)throw new Error("Rollout Artifact Manifest does not match its Reward Receipt.");if(e.environmentExecutions.some(n=>n.environmentRelease.id!==e.environmentRelease.id||n.environmentRelease.contentHash!==e.environmentRelease.contentHash))throw new Error("Rollout Environment execution does not match its admitted Environment Release.");let s=Qa.parse({schemaVersion:"openpond.canonicalRolloutRecord.v1",id:e.id,attemptRef:r.attemptRef,artifactManifestRef:e.artifactManifestRef,tasksetRelease:e.tasksetRelease,environmentRelease:e.environmentRelease,verifierSetRelease:r.verifierSetRef,harnessRelease:e.harnessRelease,taskId:e.taskId,split:e.split,model:e.model,seed:e.seed,reward:{receiptRef:{id:r.id,contentHash:r.contentHash},status:r.status,value:r.reward,learningEligible:r.learningEligible,passed:r.passed,outcomeClass:r.outcomeClass,failureOwner:r.failureOwner,components:Object.fromEntries(r.components.map(n=>[n.verifierId,n.rewardContribution]))},traceRef:e.traceRef,optimizerSample:e.optimizerSample,environmentExecutions:e.environmentExecutions,startedAt:e.startedAt,completedAt:e.completedAt,metadata:e.metadata??{}});return er.parse({...s,contentHash:ge(s)})}c(qn,"createCanonicalRolloutRecord");var me=t.string().trim().min(1).max(200),Z=t.object({operationId:me,execution:u,executionKind:t.literal("recorded_evidence").optional(),graders:t.array(ut).min(1).max(100),maximumCostUsd:t.number().finite().min(1e-6).max(1e4),mappings:t.array(t.object({graderId:me,fields:de}).strict()).max(100).optional()}).strict().superRefine((e,a)=>{new Set(e.graders.map(r=>r.id)).size!==e.graders.length&&a.addIssue({code:"custom",path:["graders"],message:"Select each grader once."}),e.mappings&&(new Set(e.mappings.map(r=>r.graderId)).size!==e.mappings.length||e.mappings.some(r=>!e.graders.some(s=>s.id===r.graderId)))&&a.addIssue({code:"custom",path:["mappings"],message:"Map each selected grader at most once."})}),tr=t.object({schemaVersion:t.literal("openpond.experimentScoringPass.v1"),id:me,teamId:me,revision:t.number().int().positive(),request:Z,graders:t.array(le).min(1).max(100),status:t.enum(["queued","running","cancelling","completed","failed","cancelled"]),totalCount:t.number().int().min(1).max(1e4),counts:t.object({pending:t.number().int().nonnegative(),running:t.number().int().nonnegative(),scored:t.number().int().nonnegative(),unavailable:t.number().int().nonnegative(),failed:t.number().int().nonnegative(),cancelled:t.number().int().nonnegative()}).strict(),resultAvailable:t.boolean(),createdAt:t.iso.datetime(),startedAt:t.iso.datetime().nullable(),completedAt:t.iso.datetime().nullable(),error:t.object({code:me,message:t.string().max(2e3)}).strict().nullable()}).strict(),ta=tr.extend({contentHash:t.string().regex(/^[a-f0-9]{64}$/)});function Te(e){let a=ta.parse(e),{contentHash:r,...s}=a;if(l(s)!==r||Object.values(a.counts).reduce((o,i)=>o+i,0)!==a.totalCount)throw new Error("Scoring pass integrity or population accounting failed.");let n=["completed","failed","cancelled"].includes(a.status);if(n&&(!a.completedAt||a.counts.pending||a.counts.running)||!n&&(a.completedAt!==null||a.resultAvailable)||a.status==="completed"&&!a.resultAvailable)throw new Error("Scoring pass lifecycle differs from its retained result.");if(a.graders.length!==a.request.graders.length||new Set(a.graders.map(o=>o.feedbackKey)).size!==a.graders.length||a.graders.some((o,i)=>l(o.release)!==l(a.request.graders[i])||l(o.mappings??[])!==l(a.request.mappings?.find(d=>d.graderId===o.release?.id)?.fields??[])))throw new Error("Scoring pass graders differ from their exact admission.");return a}c(Te,"verifyExperimentScoringPass");var aa=8388608;async function Je(e,a,r,s){let n=new AbortController,o=r.signal,i=c(()=>n.abort(o?.reason),"forward");o?.aborted?i():o?.addEventListener("abort",i,{once:!0});let d=setTimeout(()=>n.abort(new Error("Connected evidence request timed out.")),6e4),m,f=c(()=>{m&&m.cancel(n.signal.reason).catch(()=>{})},"abortReader");n.signal.addEventListener("abort",f,{once:!0});let h=new Promise((p,g)=>{let x=c(()=>g(n.signal.reason??new DOMException("Request aborted","AbortError")),"abort");n.signal.aborted?x():n.signal.addEventListener("abort",x,{once:!0})});try{let p=e(a,{...r,signal:n.signal}).then(I=>{if(n.signal.aborted)throw I.body?.cancel(n.signal.reason).catch(()=>{}),n.signal.reason;return I}),g=await Promise.race([p,h]),x=g.headers.get("content-length");if(m=g.body?.getReader(),n.signal.aborted)throw await m?.cancel(n.signal.reason),n.signal.reason;if(x&&Number(x)>aa)throw await m?.cancel(),s(502,"connected_response_too_large","Connected evidence response exceeds 8 MiB.");let k=[],T=0;if(m)for(;;){let I=await Promise.race([m.read(),h]);if(I.done)break;if(T+=I.value.byteLength,T>aa)throw await m.cancel(),s(502,"connected_response_too_large","Connected evidence response exceeds 8 MiB.");k.push(I.value)}let H=new Uint8Array(T),j=0;for(let I of k)H.set(I,j),j+=I.byteLength;let C;try{C=JSON.parse(new TextDecoder("utf-8",{fatal:!0}).decode(H))}catch{throw s(502,"connected_response_invalid","Connected evidence response is not valid JSON.")}return{response:g,value:C}}finally{clearTimeout(d),o?.removeEventListener("abort",i),n.signal.removeEventListener("abort",f),m?.releaseLock()}}c(Je,"fetchConnectedJson");var ra=t.string().regex(/^[a-f0-9]{64}$/),na=t.object({request:Ut,maximumCostUsd:t.number().finite().positive().max(1e4),graders:t.array(le).min(1).max(100),admissionRequestHash:ra.optional(),sourceExperimentId:t.string().trim().min(1).max(200).optional()}).strict(),sa=na.extend({configurationHash:ra}).strict(),oa=Gt.extend({configuration:sa}).strict();function oe(e){return e.policy.kind==="hosted_harness"?{...e,population:e.population.map(({receiptId:a,...r})=>r)}:e}c(oe,"experimentConfigurationRequest");function ia(e){let a=na.parse(e);return l({...a,request:oe(a.request)})}c(ia,"experimentRunConfigurationHash");async function ca(e){let a=oa.parse(e),{configuration:r,...s}=a,n=await Ft(s),{configurationHash:o,...i}=r;if(o!==ia(i)||l(oe(r.request))!==l(oe(n.request))||r.maximumCostUsd!==n.manifest.limits.maximumSpendUsd)throw new Error("Experiment configuration differs from its retained run.");if(n.manifest.metadata.experimentDefinition===null){let d=$e.parse({definition:null,configurationHash:r.configurationHash,maximumCostUsd:r.maximumCostUsd,graders:r.graders,...r.admissionRequestHash?{admissionRequestHash:r.admissionRequestHash}:{},...r.sourceExperimentId?{sourceExperimentId:r.sourceExperimentId}:{}});if(n.manifest.metadata.experimentConfigurationHash!==l(d))throw new Error("Experiment configuration differs from its admitted manifest.")}return{...n,configuration:r}}c(ca,"verifyExperimentRunDetails");var da=t.object({teamId:t.string().trim().min(1).max(240),items:t.array(t.object({name:t.string().trim().min(1).max(500),source:vt,ready:t.boolean(),reason:t.string().min(1).max(2e3).nullable()}).strict()).max(8),nextCursor:t.string().min(1).max(8192).nullable()}).strict(),_=t.string().trim().min(1).max(200),la=class extends Error{static{c(this,"OpenPondExperimentError")}constructor(e,a,r){super(r),this.status=e,this.code=a,this.name="OpenPondExperimentError"}status;code},ar=class{static{c(this,"OpenPondExperimentsClient")}constructor(e){this.options=e;let a=new URL(e.baseUrl);if(!["http:","https:"].includes(a.protocol)||a.username||a.password||a.search||a.hash||!e.apiKey.trim()||!e.teamId.trim())throw new Error("A clean API origin and workspace credentials are required.");this.baseUrl=a.toString().replace(/\/+$/,"")}options;baseUrl;async harnessSources(e={}){let a=e.cursor===void 0?void 0:t.string().min(1).max(8192).parse(e.cursor),r=new URLSearchParams(a?{cursor:a}:{}),s=da.parse(await this.request(`/harness-sources?${r}`,"GET",void 0,e.signal));if(s.teamId!==this.options.teamId||new Set(s.items.map(n=>l(n.source))).size!==s.items.length||s.nextCursor!==null&&s.nextCursor===a||s.items.some(n=>n.ready!==(n.reason===null)))throw new Error("Harness catalog differs from its workspace, readiness or continuation.");return s}async prepareHarness(e,a){let r=Le.parse(e),s=Be.parse(await this.request("/harness-setup","POST",r,a));Vt(s.request,s.manifest);let n=s.request.policy;if(s.request.teamId!==this.options.teamId||s.request.operationId!==r.operationId||n.kind!=="hosted_harness"||n.profileRepositoryId!==r.profileRepositoryId||n.source.definitionId!==r.definitionId||n.modelId!==r.modelId||n.reasoningEffort!==r.reasoningEffort||s.maximumCostUsd!==r.maximumCostUsd||s.manifest.limits.maximumSpendUsd!==r.maximumCostUsd)throw new Error("Harness preparation differs from its requested scope or configuration.");return s}async run(e,a){let r=Ne.parse(e);if(r.request.teamId!==this.options.teamId)throw new Error("Experiment workspace mismatch.");let s=await this.details(await this.request("","POST",r,a));if(l(oe(s.request))!==l(oe(r.request))||s.configuration.maximumCostUsd!==r.maximumCostUsd||s.configuration.sourceExperimentId!==r.sourceExperimentId||s.configuration.admissionRequestHash!==l(r))throw new Error("Experiment admission differs from its submitted configuration.");if(r.graders&&l(r.graders)!==l(s.configuration.graders.map(n=>({id:n.id,version:n.version,contentHash:n.contentHash,mappings:n.mappings??[]}))))throw new Error("Experiment admission differs from its selected graders or mappings.");return s}async get(e,a={}){return this.details(await this.request(`/${encodeURIComponent(_.parse(e))}`,"GET",void 0,a.signal),e)}async list(e={},a){let r=ze.parse(e),s=new URLSearchParams(Object.entries(r).filter(([,i])=>i!==void 0).map(([i,d])=>[i,String(d)])),n=t.object({items:t.array(t.unknown()).max(100),nextCursor:_.nullable()}).strict().parse(await this.request(`?${s}`,"GET",void 0,a)),o=await Promise.all(n.items.map(i=>this.details(i)));if(o.length>r.limit||new Set(o.map(i=>i.summary.id)).size!==o.length||n.nextCursor!==null&&n.nextCursor!==o.at(-1)?.summary.id||o.some(i=>r.projectId&&i.request.project?.id!==r.projectId||r.datasetHash&&i.request.taskset.contentHash!==r.datasetHash||r.status&&i.summary.status!==r.status))throw new Error("Experiment page differs from its selected scope.");return{items:o,nextCursor:n.nextCursor}}async result(e,a){let r=t.object({executionId:_,passId:_.nullable(),manifest:t.unknown(),result:t.unknown()}).strict().parse(await this.request(`/${encodeURIComponent(_.parse(e))}/result`,"GET",void 0,a)),s=$(r);if(r.executionId!==e||s.manifest.teamId!==this.options.teamId||s.manifest.lineage?.execution.id!==e||s.manifest.lineage.scoringPassId!==r.passId)throw new Error("Experiment result identity mismatch.");return{...s,executionId:e,passId:r.passId}}async cancel(e,a){return this.details(await this.request(`/${encodeURIComponent(_.parse(e))}/cancel`,"POST",{},a),e)}async duplicate(e,a,r){let s=await this.details(await this.request(`/${encodeURIComponent(_.parse(e))}/duplicate`,"POST",{operationId:_.parse(a)},r));if(s.request.operationId!==a||s.configuration.sourceExperimentId!==e||s.summary.id===e)throw new Error("Duplicate Experiment admission differs from its source or operation.");return s}async score(e,a){let r=Z.parse(e),s=this.pass(await this.request(`/${encodeURIComponent(r.execution.id)}/scoring-passes`,"POST",r,a));if(l(s.request)!==l(r))throw new Error("Scoring admission differs from its submitted inputs.");return s}async scoringPass(e,a){return this.pass(await this.request(`/scoring-passes/${encodeURIComponent(_.parse(e))}`,"GET",void 0,a),e)}async scoringPasses(e,a={}){let r=new URLSearchParams(a.afterId?{afterId:_.parse(a.afterId)}:{});a.executionKind&&r.set("executionKind",t.literal("recorded_evidence").parse(a.executionKind));let s=t.object({items:t.array(t.unknown()).max(30),nextCursor:_.nullable()}).strict().parse(await this.request(`/${encodeURIComponent(_.parse(e))}/scoring-passes?${r}`,"GET",void 0,a.signal)),n=s.items.map(o=>this.pass(o));if(n.some(o=>o.request.execution.id!==e||o.request.executionKind!==a.executionKind)||new Set(n.map(o=>o.id)).size!==n.length)throw new Error("Scoring pass page differs from its execution ownership.");return{items:n,nextCursor:s.nextCursor}}async cancelScoringPass(e,a){return this.pass(await this.request(`/scoring-passes/${encodeURIComponent(_.parse(e))}/cancel`,"POST",{},a),e)}async scoringResult(e,a){let r=t.object({executionId:_,passId:_,manifest:t.unknown(),result:t.unknown()}).strict().parse(await this.request(`/scoring-passes/${encodeURIComponent(_.parse(e))}/result`,"GET",void 0,a)),s=$(r);if(r.passId!==e||s.manifest.teamId!==this.options.teamId||s.manifest.id!==e||s.manifest.lineage?.execution.id!==r.executionId||s.manifest.lineage.scoringPassId!==e)throw new Error("Scoring result identity mismatch.");return{...s,executionId:r.executionId,passId:e}}async compare(e,a,r){let s=c(i=>i.startsWith("score_")?this.scoringResult(i,r):this.result(i,r),"read"),[n,o]=await Promise.all([s(e),s(a)]);return{baseline:n,candidate:o,comparison:be(n,o)}}async details(e,a){let r=await ca(e);if(r.summary.teamId!==this.options.teamId||a&&r.summary.id!==a)throw new Error("Experiment identity mismatch.");return r}pass(e,a){let r=Te(e);if(r.teamId!==this.options.teamId||a&&r.id!==a)throw new Error("Scoring pass identity mismatch.");return r}async request(e,a,r,s){let n=await(this.options.fetch??fetch)(`${this.baseUrl}/v1/experiments${e}`,{method:a,signal:s,redirect:"error",headers:{Authorization:`Bearer ${this.options.apiKey}`,"X-OpenPond-Team-Id":this.options.teamId,"Content-Type":"application/json",Accept:"application/json"},...r===void 0?{}:{body:JSON.stringify(r)}}),o=await n.json();if(!n.ok){let i=t.object({code:t.string(),message:t.string()}).safeParse(o);throw new la(n.status,i.success?i.data.code:"experiment_request_failed",i.success?i.data.message:"Experiment request failed.")}return o}},V=t.string().trim().min(1).max(500),ma=t.string().regex(/^[a-f0-9]{64}$/),rr=t.object({schemaVersion:t.literal("openpond.experimentCaseInspection.v1"),teamId:V,executionId:V,manifestHash:ma,receiptId:V,taskId:V,seed:t.string().min(1),input:t.record(t.string(),t.unknown()).nullable(),output:t.unknown().nullable(),error:t.string().nullable(),events:t.array(t.record(t.string(),t.unknown())).max(25),nextEventCursor:V.nullable(),eventCount:t.number().int().nonnegative()}).strict(),pa=rr.extend({contentHash:ma}).strict(),nr=class{static{c(this,"OpenPondExperimentInspectionClient")}constructor(e){this.options=e;let a=new URL(e.baseUrl);if(!["http:","https:"].includes(a.protocol)||a.username||a.password||a.search||a.hash||!e.apiKey.trim()||!e.teamId.trim())throw new Error("A clean API origin and workspace credentials are required.");this.baseUrl=a.toString().replace(/\/+$/,"")}options;baseUrl;async case(e,a,r={}){let s=new URLSearchParams(r.afterId?{afterId:V.parse(r.afterId)}:{}),n=await(this.options.fetch??fetch)(`${this.baseUrl}/v1/experiments/${encodeURIComponent(V.parse(e))}/cases/${encodeURIComponent(V.parse(a))}?${s}`,{signal:r.signal,redirect:"error",headers:{Authorization:`Bearer ${this.options.apiKey}`,"X-OpenPond-Team-Id":this.options.teamId,Accept:"application/json"}}),o=await n.json();if(!n.ok)throw new Error(t.object({message:t.string()}).parse(o).message);let i=pa.parse(o),{contentHash:d,...m}=i;if(l(m)!==d||i.teamId!==this.options.teamId||i.executionId!==e||i.receiptId!==a||r.manifestHash&&i.manifestHash!==r.manifestHash||i.events.length>i.eventCount)throw new Error("Case inspection differs from its requested workspace, execution or retained content.");return i}};function ua(e){return JSON.stringify(e.release?["reward",e.release.id,e.release.revision,e.release.contentHash,e.feedbackKey]:["dataset",e.id,e.version,e.contentHash,e.feedbackKey])}c(ua,"datasetGraderIdentity");function fa(e){let a=new Map;for(let r of e){let s=ua(r),n=a.get(s);n?n.aliases.push(r):a.set(s,{key:s,grader:r,aliases:[r]})}return[...a.values()]}c(fa,"groupDatasetGraders");function sr(e){let a=fa(e),r=new Map;for(let s of a){let n=r.get(s.grader.feedbackKey);if(n&&n!==s.key)throw new Error(`Different selected grader releases use feedback key "${s.grader.feedbackKey}". Select one, or publish graders with distinct feedback keys.`);r.set(s.grader.feedbackKey,s.key);let o=JSON.stringify(s.grader.mappings??[]);if(s.aliases.some(i=>JSON.stringify(i.mappings??[])!==o))throw new Error(`Aliases of grader "${s.grader.feedbackKey}" have different field mappings. Select one alias and review its mappings.`)}return a.map(s=>s.grader)}c(sr,"canonicalDatasetGraderSelection");function or(e){let a=J(e.binding),r=Bt(e.packageValue),s=r.taskset;if(s.id!==a.dataset.id||s.revision!==a.dataset.revision||s.contentHash!==a.dataset.contentHash||r.contentHash!==a.packageHash||l(s.environment)!==a.environmentHash||l(r.files.filter(n=>n.asset.visibility!=="policy").map(n=>n.asset))!==a.privateDatasetClosureHash)throw new Error("The selected Dataset package, environment or protected closure changed.");if(a.population.length>500)throw new Error("Select at most 500 exact Dataset cases before starting this bounded Profile evaluation.");for(let n of a.population){let o=s.tasks.find(i=>i.id===n.taskId);if(!o||o.split!==a.split)throw new Error("The selected ordered population is outside its exact Dataset split.");if(n.fixtureId!==null)throw new Error("This recorded cutoff needs an admitted replay fixture before executing the Profile target.")}if(a.gradingSource){if(!e.actualGrading)throw new Error("The actual selected scoring owner is required for this recipe.");let n=Te(e.actualGrading.pass),o=$(t.object({manifest:t.unknown(),result:t.unknown()}).strict().parse(e.actualGrading.evidence));if(n.status!=="completed"||n.id!==a.gradingSource.pass.id||n.contentHash!==a.gradingSource.pass.contentHash||o.manifest.id!==a.gradingSource.evidence.id||o.result.contentHash!==a.gradingSource.evidence.contentHash||o.manifest.lineage?.scoringPassId!==n.id||l(o.manifest.dataset)!==l(a.dataset)||l(o.manifest.evaluators)!==l(a.evaluators)||l(a.fieldMappings)!==l(n.graders.map(m=>({graderId:m.id,fields:m.mappings??[]}))))throw new Error("The selected scoring owner changed its exact Dataset, measurements or mappings.");let i=o.manifest.population,d=a.recordedOrigin?a.recordedOrigin.members.map(m=>({caseId:m.caseId,seed:m.seed,fixtureId:m.fixtureId})):a.population.map(m=>({caseId:m.taskId,seed:m.seed,fixtureId:m.fixtureId}));if(i.length!==d.length||i.some((m,f)=>l(m)!==l(d[f])))throw new Error("The selected scoring population differs from the exact ordered original cases and cutoffs.")}else{if(a.fieldMappings.some(i=>!s.graders.some(d=>d.id===i.graderId)))throw new Error("The field mappings name a grader outside the selected release.");for(let i of a.fieldMappings)de.parse(i.fields);let n=a.evaluators.map(i=>{let d=e.graders.find(m=>m.feedbackKey===i.feedbackKey&&l(m.release??{id:m.id,revision:m.version,contentHash:m.contentHash})===l(i.release));if(!d)throw new Error("Select an exact released Dataset grader for this external recipe.");return d});if(a.fieldMappings.some(i=>!n.some(d=>d.id===i.graderId)))throw new Error("Field mappings refer to an unselected grader.");let o=n.map(i=>({release:i.release??{id:i.id,revision:i.version,contentHash:i.contentHash},feedbackKey:i.feedbackKey,configurationHash:l({graderHash:i.contentHash,mappings:a.fieldMappings.find(d=>d.graderId===i.id)?.fields??[]}),output:"score",categories:[]}));if(l(o)!==l(a.evaluators))throw new Error("The external recipe's graders or mappings differ from the current exact released grading settings.");for(let i of e.graders)if(!s.graders.some(d=>d.id===i.id&&d.version===i.version&&l(d)===i.contentHash))throw new Error("External grader pins differ from the actual Dataset implementation.")}for(let n of e.graders)if(!s.graders.some(o=>o.id===n.id&&o.version===n.version&&l(o)===n.contentHash))throw new Error("Dataset-native grader pins differ from their actual implementation.");return r}c(or,"verifyExternalDatasetPackage");var Y=t.string().trim().min(1).max(240),ha=t.object({profileRef:t.object({source:t.enum(["local","github","openpond_git"]),repositoryId:Y,profileId:Y}).strict(),sourceRevision:t.string().min(1).max(500),harnessRelease:u,catalogHash:t.string().regex(/^[a-f0-9]{64}$/).nullable(),definitions:t.array(ht).max(1e3),suites:t.array(gt).max(100),runs:t.array(t.object({profileRef:t.object({source:t.enum(["local","github","openpond_git"]),repositoryId:Y,profileId:Y}).strict(),manifest:xt,metric:mt,gradeRefs:t.array(u),receiptRefs:t.array(u),passRate:t.number().min(0).max(1),passed:t.boolean(),completedAt:t.iso.datetime(),contentHash:t.string().regex(/^[a-f0-9]{64}$/)}).strict()).max(1e3),comparisons:t.array(Ct).max(1e3),suiteRuns:t.array(_t).max(1e3),reports:t.array(At).max(1e3)}).strict(),ga=t.object({teamId:Y,profileRepositoryId:Y,trainingProjectId:Y.optional()}).strict(),ir=class{static{c(this,"OpenPondProfileEvaluationDiscoveryClient")}constructor(e){this.options=e;let a=new URL(e.baseUrl);if(!["http:","https:"].includes(a.protocol)||a.username||a.password||a.search||a.hash||!e.apiKey.trim()||!e.teamId.trim())throw new Error("Profile discovery requires a scoped HTTP endpoint and owner credential.")}options;async read(e,a){let r=ga.parse({...e,teamId:this.options.teamId}),{response:s,value:n}=await Je(this.options.fetch??fetch,`${this.options.baseUrl.replace(/\/$/,"")}/v1/profile-evaluation-discovery`,{method:"POST",redirect:"error",headers:{Authorization:`Bearer ${this.options.apiKey}`,"X-OpenPond-Team-Id":this.options.teamId,"Content-Type":"application/json"},body:JSON.stringify(r),signal:a},(i,d,m)=>new Error(m));if(!s.ok)throw new Error("The released Profile evaluation owner is unavailable to this account and workspace.");let o=ha.parse(n);if(o.profileRef.repositoryId!==r.profileRepositoryId)throw new Error("Profile discovery returned another source owner.");return o}};var L=G.shape.id,z=t.number().int().positive(),Q=t.string().regex(/^[a-f0-9]{64}$/),ee={teamId:L,modelId:L},pc=t.object({schemaVersion:t.literal("openpond.tasksetDraftCreate.v1"),operationId:L,modelId:L,expectedModelRevision:z,name:G.shape.name}).strict(),uc=t.object({schemaVersion:t.literal("openpond.tasksetDraftSourceDescriptor.v1"),...ee,expectedModelRevision:z,sourcePackageHash:Q}).strict(),fc=t.object({schemaVersion:t.literal("openpond.tasksetDraftReadback.v1"),...ee,draft:G,workspaceHash:Q,projectEtag:Q}).strict().refine(e=>e.draft.profileId===e.teamId&&e.draft.modelScope?.modelId===e.modelId,"The hosted draft must belong to its declared workspace and Model."),cr=t.object({id:L,revision:z,name:G.shape.name,status:Nt,updatedAt:G.shape.updatedAt,sourceTasksetRef:Se.nullable()}).strict(),hc=t.object({schemaVersion:t.literal("openpond.tasksetDraftList.v1"),...ee,drafts:t.array(cr).max(100),nextCursor:t.string().min(1).max(2e3).nullable()}).strict(),gc=t.object({expectedDraftRevision:z,draft:G}).strict(),vc=t.object({expectedDraftRevision:z,expectedModelRevision:z}).strict(),dr=t.object({expectedDraftRevision:z,expectedWorkspaceHash:Q}).strict(),bc=t.object({schemaVersion:t.literal("openpond.tasksetDraftValidation.v1"),...ee,draftId:L,draftRevision:z,workspaceHash:Q,valid:t.boolean(),issues:t.array(t.object({code:t.string().min(1),severity:t.enum(["warning","error"]),message:t.string(),path:t.string().nullable()}).strict()),packageHash:Q.nullable(),tasksetRef:Se.nullable()}).strict().refine(e=>e.valid?e.packageHash!==null&&e.tasksetRef!==null&&e.issues.every(a=>a.severity!=="error"):e.packageHash===null&&e.tasksetRef===null&&e.issues.some(a=>a.severity==="error"),"Validation must retain either a compiled package or publication errors."),Sc=dr.extend({operationId:L,expectedPackageHash:Q,expectedTasksetRef:Se}).strict(),xc=t.object({schemaVersion:t.literal("openpond.tasksetDraftFileList.v1"),...ee,draftId:L,draftRevision:z,files:t.array(Ht).max(10020)}).strict(),wc=t.object({schemaVersion:t.literal("openpond.tasksetDraftFileReadback.v1"),...ee,draftId:L,draftRevision:z,file:jt}).strict(),yc=t.object({schemaVersion:t.literal("openpond.tasksetDraftDeletion.v1"),...ee,draftId:L,revision:z,deleted:t.literal(!0)}).strict(),kc=G.shape.id,Ic=t.number().int().positive();var N=t.string().trim().min(1).max(500),Tc=t.object({projectId:N.optional(),tasksetId:N.optional(),draftId:N.optional(),taskId:N.optional(),query:t.string().trim().max(1e3).default(""),split:t.enum(["train","validation","test","frozen_eval"]).optional(),after:t.string().min(1).max(2e3).optional(),limit:t.number().int().min(1).max(100).default(30)}).strict(),lr=t.object({id:N,method:t.enum(["code","judge","human"]),required:t.boolean()}),mr=t.object({tasksetId:N,tasksetName:t.string(),tasksetRevision:t.number().int().positive(),tasksetHash:t.string(),taskId:N,ordinal:t.number().int().nonnegative(),title:t.string(),description:t.string(),split:t.string(),scoring:t.array(lr),configuration:t.enum(["configured","needs_reward","needs_checks"]),draftId:N.nullable().default(null),modelId:N.nullable().default(null)}),Pc=t.object({items:t.array(mr).max(100),nextCursor:t.string().nullable()});function Cc(e,a){let r=[e.instruction,e.prompt,e.request,e.question,e.message].find(o=>typeof o=="string"&&o.trim().length>0),s=typeof e.title=="string"?e.title.trim():"",n=r?.trim()??"";return{title:(s||n||a).slice(0,180),description:n.slice(0,2e3)}}c(Cc,"describeTaskInput");function Ac(e){return e.map(a=>({id:a.id,method:a.kind==="model_judge"?"judge":a.kind==="human"?"human":"code",required:a.hardGate}))}c(Ac,"summarizeTaskScoring");function _c(e){return e.some(a=>a.kind!=="human")?e.some(a=>a.kind==="model_judge"&&a.calibrationStatus!=="passed")?"needs_checks":"configured":"needs_reward"}c(_c,"taskConfiguration");var Qe=3e3,et=9999,Pe="openpond.yaml",Mc="openpond-template-plan.json",pr="openpond.sandboxTemplate.buildPlan.v1",ur=["google","github","x"],tt=new Set([22,2222,2375,2376,3108,5900,5901,6080,7818]),va=t.array(t.string().trim().min(1).max(1e3)).max(50),pe=t.string().trim().min(1).max(4096).refine(Ra,{message:"path must be a relative workspace path"}),fr=t.string().trim().min(1).max(500).refine(e=>!e.includes("\0")&&!/\s/.test(e),"image ref must be a single OCI reference"),hr=t.string().trim().regex(/^sha256:[0-9a-f]{64}$/i),Sa=t.string().trim().min(1).max(500).refine(e=>e.startsWith("/")&&!e.includes("\0"),"workspaceRoot must be an absolute guest path"),gr=t.object({ref:fr,digest:hr.optional(),registrySecretRef:t.string().trim().min(1).max(500).optional(),platform:t.literal("linux/amd64").optional(),workspaceRoot:Sa.optional()}).strict(),vr=t.object({context:pe.default("."),path:pe.default("Dockerfile"),target:t.string().trim().min(1).max(191).optional(),buildArgs:t.record(t.string().max(191),t.string().max(500)).optional(),registrySecretRefs:t.array(t.string().trim().min(1).max(500)).max(10).optional(),platform:t.literal("linux/amd64").optional(),workspaceRoot:Sa.optional()}).strict(),br=t.object({base:t.string().trim().min(1).max(120).optional(),snapshot:t.string().trim().min(1).max(191).optional(),image:gr.optional(),dockerfile:vr.optional()}).strict().superRefine((e,a)=>{[e.base,e.snapshot,e.image,e.dockerfile].filter(Boolean).length!==1&&a.addIssue({code:t.ZodIssueCode.custom,message:"runtime must declare exactly one of base, snapshot, image, or dockerfile"})}),xa=t.object({cpu:t.number().positive().max(8).optional(),memoryGb:t.number().positive().max(32).optional(),diskGb:t.number().positive().max(100).optional()}).strict(),Sr=t.object({provider:t.enum(ur),scopes:t.array(t.string().trim().min(1).max(200)).max(100).default([]),capabilities:t.array(t.string().trim().min(1).max(200)).max(100).default([])}).strict(),xr=t.object({models:t.array(t.string().trim().min(1).max(200)).max(100).default([]),scopes:t.array(t.string().trim().min(1).max(200)).max(100).default([])}).strict(),wr=t.object({opchat:xr.optional()}).catchall(t.record(t.string(),t.unknown())).default({}),yr=t.object({name:t.string().trim().regex(/^[A-Za-z_][A-Za-z0-9_-]*$/).max(63).optional(),mountPath:t.string().trim().min(1).max(256).optional(),storageGb:t.number().int().positive().max(100).optional(),deleteOnSandboxDelete:t.boolean().optional()}).strict(),Rr=t.object({port:t.number().int().min(Qe).max(et).refine(e=>!tt.has(e),{message:"preview port is reserved"}),protocol:t.literal("http").default("http"),label:t.string().trim().min(1).max(80).optional(),access:t.enum(["private","public"]).default("private"),path:t.string().trim().min(1).max(512).refine(e=>e.startsWith("/"),{message:"preview path must start with /"}).default("/")}).strict(),wa=t.object({command:t.string().trim().min(1).max(1e3),cwd:pe.optional(),timeoutSeconds:t.number().int().positive().max(86400).optional(),requiresStart:t.boolean().default(!1),ports:t.array(Rr).max(20).default([]),artifactPaths:t.array(pe).max(100).default([])}).strict(),ba=wa.extend({name:t.string().trim().min(1).max(80)}).strict(),kr=t.object({name:t.string().trim().min(1).max(80).optional(),service:t.string().trim().min(1).max(80).optional(),port:t.number().int().min(Qe).max(et).refine(e=>!tt.has(e),{message:"app MCP port is reserved"}),path:t.string().trim().min(1).max(512).refine(e=>e.startsWith("/"),{message:"app MCP path must start with /"}).default("/mcp")}).strict(),Ir=t.object({name:t.string().trim().min(1).max(80).optional(),port:t.number().int().min(Qe).max(et).refine(e=>!tt.has(e),{message:"validation probe port is reserved"}),path:t.string().trim().min(1).max(512).refine(e=>e.startsWith("/"),{message:"validation probe path must start with /"}).default("/"),expectedStatus:t.number().int().min(100).max(599).default(200)}).strict(),Er=t.record(t.string(),t.unknown()).refine(e=>e.type==="object","input schema must be a JSON schema object"),Tr=t.object({name:t.string().trim().regex(/^[A-Za-z_][A-Za-z0-9_]*$/).max(191),required:t.boolean().default(!1),secret:t.boolean().default(!0),description:t.string().trim().max(500).optional()}).strict(),Xe=t.string().trim().min(1).max(120),Pr=t.object({name:t.string().trim().min(1).max(120),description:t.string().trim().max(500).optional(),cron:t.string().trim().min(1).max(500).optional(),rate:t.string().trim().min(1).max(500).optional(),once:Xe.optional(),scheduleType:t.enum(["rate","cron","once"]).optional(),scheduleExpression:t.string().trim().min(1).max(500).optional(),timezone:t.string().trim().min(1).max(100).optional(),enabled:t.boolean().default(!0),startAt:Xe.optional(),endAt:Xe.optional(),maxRuns:t.number().int().positive().nullable().optional(),runtimePolicy:t.enum(["run_and_stop","run_and_archive","run_and_delete","use_existing_running"]).default("run_and_stop"),action:t.string().trim().min(1).max(120).optional(),actionName:t.string().trim().min(1).max(120).optional(),command:t.string().trim().min(1).max(2e3).optional(),target:t.object({kind:t.enum(["start","action","service","command"]).optional(),name:t.string().trim().min(1).max(120).optional(),actionName:t.string().trim().min(1).max(120).optional(),command:t.string().trim().min(1).max(2e3).optional(),requiresStart:t.boolean().optional()}).strict().optional(),requiresStart:t.boolean().optional(),budget:t.object({maxUsd:t.string().trim().min(1).max(40).optional()}).strict().optional(),resources:xa.optional(),quotas:t.record(t.string(),t.unknown()).optional(),lifecycle:t.record(t.string(),t.unknown()).optional(),retentionPolicy:t.record(t.string(),t.unknown()).optional(),env:t.array(t.object({name:t.string().trim().regex(/^[A-Za-z_][A-Za-z0-9_]*$/).max(191),value:t.string().optional(),secretRef:t.string().optional()}).strict()).max(100).optional(),integrationLeases:t.array(t.record(t.string(),t.unknown())).max(20).optional(),metadata:t.record(t.string(),t.unknown()).optional()}).strict().superRefine((e,a)=>{[e.cron,e.rate,e.once,e.scheduleExpression].filter(d=>typeof d=="string"&&d.trim()).length!==1&&a.addIssue({code:t.ZodIssueCode.custom,path:["scheduleExpression"],message:"schedule must declare exactly one of cron, rate, once, or scheduleExpression"}),e.scheduleExpression&&!e.scheduleType&&a.addIssue({code:t.ZodIssueCode.custom,path:["scheduleType"],message:"scheduleType is required with scheduleExpression"});let s=e.command??e.target?.command??null,n=e.target?.name??null,o=e.actionName??e.action??e.target?.actionName??(e.target?.kind==="action"?n:null),i=e.target?.kind??(s?"command":"action");i==="action"&&!o&&a.addIssue({code:t.ZodIssueCode.custom,path:["action"],message:"schedule action target is required"}),i==="service"&&!n&&a.addIssue({code:t.ZodIssueCode.custom,path:["target","name"],message:"schedule service target name is required"}),i==="command"&&!s&&a.addIssue({code:t.ZodIssueCode.custom,path:["command"],message:"schedule command target is required"})}),Cr=t.object({schemaVersion:t.literal(1),name:t.string().trim().min(1).max(80).regex(/^[a-z0-9][a-z0-9-]*[a-z0-9]$/),version:t.string().trim().min(1).max(40),useCase:t.string().trim().min(1).max(80),description:t.string().trim().min(1).max(500),runtime:br,resources:xa.optional(),setup:t.object({commands:va.default([])}).strict().default({commands:[]}),validation:t.object({commands:va.min(1),probes:t.array(Ir).max(20).default([])}).strict(),start:wa,actions:t.array(ba).max(20).default([]),services:t.array(ba).max(20).default([]),schedules:t.array(Pr).max(20).default([]),mcp:t.object({endpoints:t.array(kr).max(10).default([])}).strict().default({endpoints:[]}),volumes:t.array(yr).max(5).default([]),integrations:t.object({requiredLeases:t.array(Sr).max(20).default([])}).strict().default({requiredLeases:[]}),permissions:wr,inputs:t.object({schema:Er.default({type:"object"}),env:t.array(Tr).max(100).default([])}).strict().default({schema:{type:"object"},env:[]}),artifacts:t.object({paths:t.array(pe).max(100).default([])}).strict().default({paths:[]}),network:t.object({egress:t.enum(["restricted","allow","block"]).default("restricted")}).strict().default({egress:"restricted"})}).strict().superRefine((e,a)=>{jr(e,a),at(a,e.volumes.flatMap(r=>r.name?[r.name]:[]),"volume names must be unique","volumes"),Dr(e,a),Or(e,a),Mr(e,a),qr(e,a)}),qc=t.object({path:t.string(),message:t.string(),code:t.string()});function zc(e){let a;try{a=Kt.load(e)}catch(r){return{ok:!1,manifest:null,diagnostics:[{path:"$",code:"invalid_yaml",message:r instanceof Error?r.message:"Invalid YAML"}]}}return Ar(a)}c(zc,"validateSandboxTemplateYaml");function Ar(e){if(!e||typeof e!="object"||Array.isArray(e))return{ok:!1,manifest:null,diagnostics:[{path:"$",code:"invalid_type",message:`${Pe} must be an object`}]};if(Object.prototype.hasOwnProperty.call(e,"databases"))return{ok:!1,manifest:null,diagnostics:[{path:"$.databases",code:"database_resources_removed",message:"managed database requests are unsupported for Firecracker sandbox templates; use a durable volume with SQLite or files instead"}]};let a=Cr.safeParse(e);return a.success?{ok:!0,manifest:a.data,diagnostics:[]}:{ok:!1,manifest:null,diagnostics:a.error.issues.map(r=>({path:Hr(r.path),code:r.code,message:r.message}))}}c(Ar,"validateSandboxTemplateManifest");function $c(e){return e.map(a=>`${a.path}: ${a.message}`).join(`
3
3
  `)}c($c,"formatSandboxTemplateDiagnostics");function ya(e){return[{kind:"start",name:"start",...e.start,artifactPaths:Ye(e.start,e)},...e.actions.map(a=>({kind:"action",name:a.name,command:a.command,cwd:a.cwd,timeoutSeconds:a.timeoutSeconds,requiresStart:a.requiresStart,ports:a.ports,artifactPaths:Ye(a,e)})),...e.services.map(a=>({kind:"service",name:a.name,command:a.command,cwd:a.cwd,timeoutSeconds:a.timeoutSeconds,requiresStart:a.requiresStart,ports:a.ports,artifactPaths:Ye(a,e)}))]}c(ya,"sandboxTemplateExecutableEntries");function _r(e){let a=ya(e);return{template:{name:e.name,version:e.version,useCase:e.useCase,runtime:e.runtime},resources:e.resources??null,volumes:e.volumes,executables:a.map(r=>({kind:r.kind,name:r.name,command:r.command,cwd:r.cwd??null,timeoutSeconds:r.timeoutSeconds??null,requiresStart:r.requiresStart,ports:r.ports.map(s=>s.port),artifactPaths:r.artifactPaths})),ports:a.flatMap(r=>r.ports.map(s=>({executable:r.name,kind:r.kind,port:s.port,access:s.access,label:s.label??null}))),appMcpEndpoints:e.mcp.endpoints.map(r=>({name:r.name??null,service:r.service??null,port:r.port,path:r.path})),validation:{commands:e.validation.commands,probes:e.validation.probes},schedules:e.schedules}}c(_r,"sandboxTemplateBuildMetadata");function Lc(e){return{kind:pr,schemaVersion:1,manifestFile:e.manifestFile,projectRoot:e.projectRoot,manifest:e.manifest,metadata:_r(e.manifest),executables:ya(e.manifest)}}c(Lc,"sandboxTemplateBuildPlan");function Bc(e){let a=e.name.trim()||"Sandbox Template",r=zr(a),s=e.description?.trim()||`Local scaffold for ${a}.`;return{".gitignore":["node_modules","artifacts",".DS_Store",""].join(`
4
4
  `),"README.md":[`# ${a}`,"","Local sandbox template scaffold.","","## Commands","","- `pnpm dev` starts the preview service on port 3000.","- `pnpm process` writes a sample artifact.",`- \`pnpm validate\` validates ${Pe}.`,""].join(`
5
5
  `),"package.json":`${JSON.stringify({private:!0,type:"module",scripts:{dev:"node src/server.ts",process:"node scripts/process.ts",validate:`openpond sandbox-template validate --file ${Pe}`}},null,2)}
@@ -1,2 +1,2 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{E as u,F as h}from"./chunk-UWO34HP6.js";import{f as c}from"./chunk-H7IWJN7L.js";import{a as s}from"./chunk-FTQLQJQV.js";import{createHash as i}from"node:crypto";import{readFile as m}from"node:fs/promises";import y from"node:path";var U=".openpond/source-upload-cache.json",d="openpond.source-upload-cache.v1";async function E(e){try{let a=(await u(c(),"source-upload.v1",l(e)))?.payload;if(!a)return new Map;if(a.schema!==d||!a.entries)return new Map;let t=new Map;for(let[o,n]of Object.entries(a.entries))!f(n)||o!==p(n)||t.set(o,n);return t}catch{return new Map}}s(E,"readSourceUploadCache");async function b(e,r){let a=await m(e.absolutePath),t=i("sha256").update(a).digest("hex"),o=p({...e,sha256:t}),n=r.get(o);return n&&n.sha256===t&&i("sha256").update(Buffer.from(n.contentsBase64,"base64")).digest("hex")===t?{file:e,entry:{path:e.path,type:"file",contentsBase64:n.contentsBase64},sha256:n.sha256}:{file:e,entry:{path:e.path,type:"file",contentsBase64:a.toString("base64")},sha256:t}}s(b,"materializeSourceUploadFile");async function A(e,r){let a={};for(let t of r){let o={path:t.file.path,size:t.file.size,mtimeMs:t.file.mtimeMs,ctimeMs:t.file.ctimeMs,sha256:t.sha256,contentsBase64:t.entry.contentsBase64};a[p(o)]=o}await h(c(),"source-upload.v1",l(e),{schema:d,generatedAt:new Date().toISOString(),entries:a})}s(A,"writeSourceUploadCache");function p(e){return`${e.path}\0${e.sha256}`}s(p,"cacheKeyForFile");function f(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let r=e;return typeof r.path=="string"&&typeof r.size=="number"&&typeof r.mtimeMs=="number"&&typeof r.ctimeMs=="number"&&typeof r.sha256=="string"&&typeof r.contentsBase64=="string"}s(f,"isCacheEntry");function l(e){return i("sha256").update(y.resolve(e)).digest("hex")}s(l,"sourceScope");export{U as a,E as b,b as c,A as d};
2
+ import{E as u,F as h}from"./chunk-DALJMSJG.js";import{f as c}from"./chunk-H7IWJN7L.js";import{a as s}from"./chunk-FTQLQJQV.js";import{createHash as i}from"node:crypto";import{readFile as m}from"node:fs/promises";import y from"node:path";var U=".openpond/source-upload-cache.json",d="openpond.source-upload-cache.v1";async function E(e){try{let a=(await u(c(),"source-upload.v1",l(e)))?.payload;if(!a)return new Map;if(a.schema!==d||!a.entries)return new Map;let t=new Map;for(let[o,n]of Object.entries(a.entries))!f(n)||o!==p(n)||t.set(o,n);return t}catch{return new Map}}s(E,"readSourceUploadCache");async function b(e,r){let a=await m(e.absolutePath),t=i("sha256").update(a).digest("hex"),o=p({...e,sha256:t}),n=r.get(o);return n&&n.sha256===t&&i("sha256").update(Buffer.from(n.contentsBase64,"base64")).digest("hex")===t?{file:e,entry:{path:e.path,type:"file",contentsBase64:n.contentsBase64},sha256:n.sha256}:{file:e,entry:{path:e.path,type:"file",contentsBase64:a.toString("base64")},sha256:t}}s(b,"materializeSourceUploadFile");async function A(e,r){let a={};for(let t of r){let o={path:t.file.path,size:t.file.size,mtimeMs:t.file.mtimeMs,ctimeMs:t.file.ctimeMs,sha256:t.sha256,contentsBase64:t.entry.contentsBase64};a[p(o)]=o}await h(c(),"source-upload.v1",l(e),{schema:d,generatedAt:new Date().toISOString(),entries:a})}s(A,"writeSourceUploadCache");function p(e){return`${e.path}\0${e.sha256}`}s(p,"cacheKeyForFile");function f(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let r=e;return typeof r.path=="string"&&typeof r.size=="number"&&typeof r.mtimeMs=="number"&&typeof r.ctimeMs=="number"&&typeof r.sha256=="string"&&typeof r.contentsBase64=="string"}s(f,"isCacheEntry");function l(e){return i("sha256").update(y.resolve(e)).digest("hex")}s(l,"sourceScope");export{U as a,E as b,b as c,A as d};