openpond 0.0.38 → 0.0.40

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 (212) hide show
  1. package/README.md +3 -4
  2. package/dist/api/core.d.ts +6 -0
  3. package/dist/api/vercel-protection.d.ts +1 -0
  4. package/dist/chunks/{app-layer-DPUJRNO2.js → app-layer-UPNMLDO5.js} +37 -11
  5. package/dist/chunks/app-server-runtime-2WTZXXOF.js +18 -0
  6. package/dist/chunks/{apps-AKBI6AS7.js → apps-XLPSFCW4.js} +6 -4
  7. package/dist/chunks/{chunk-LZZM3IHS.js → chunk-2SF6HLT7.js} +5899 -5939
  8. package/dist/chunks/chunk-34U5C7ZD.js +37172 -0
  9. package/dist/chunks/{chunk-JWF37O5E.js → chunk-3HW6OSHP.js} +1 -3
  10. package/dist/chunks/{chunk-43YI36NA.js → chunk-3KLQ52B2.js} +228 -5
  11. package/dist/chunks/{chunk-YTJL6XPU.js → chunk-75ZLFVFZ.js} +56 -11
  12. package/dist/chunks/{chunk-HS2AGRDV.js → chunk-CZG4XKVF.js} +1 -1
  13. package/dist/chunks/chunk-DBHSOTYZ.js +1552 -0
  14. package/dist/chunks/{chunk-275WCETC.js → chunk-FCVVOMIP.js} +145 -5
  15. package/dist/chunks/{chunk-AHNFNWUN.js → chunk-HHALVXPK.js} +1 -1
  16. package/dist/chunks/{chunk-GB6VUZUA.js → chunk-JIEUB6OS.js} +1 -1
  17. package/dist/chunks/chunk-KHNHUA2H.js +1737 -0
  18. package/dist/chunks/{chunk-GDZYDLEL.js → chunk-KSOI7GFA.js} +1 -110
  19. package/dist/chunks/chunk-M2NXTLH2.js +4054 -0
  20. package/dist/chunks/{chunk-AHPQTEIJ.js → chunk-MCBAI5M5.js} +4 -4
  21. package/dist/chunks/{chunk-SLMP353Q.js → chunk-MIZHCABO.js} +2 -195
  22. package/dist/chunks/{chunk-XCATKTK3.js → chunk-QHUJ2XVJ.js} +108 -66
  23. package/dist/chunks/chunk-SMNFI2FU.js +113 -0
  24. package/dist/chunks/chunk-VCVQLECH.js +675 -0
  25. package/dist/chunks/{chunk-V35STJF4.js → chunk-ZJBJQCQZ.js} +179 -52
  26. package/dist/chunks/{chunk-QRM7XMAO.js → chunk-ZTE6A2VE.js} +155 -163
  27. package/dist/chunks/{cli-7BKDWFNU.js → cli-ZIY4LAYZ.js} +9 -5
  28. package/dist/chunks/{core-commands-YN4RMWA3.js → core-commands-D66KZEHU.js} +7 -5
  29. package/dist/chunks/{harness-BHQRMXJR.js → desktop-test-FDA6MV77.js} +15 -14
  30. package/dist/chunks/{chunk-XERQHYBO.js → extension-GDRW22N3.js} +5868 -3580
  31. package/dist/chunks/{help-VREQNA4I.js → help-7QG4UITV.js} +1 -1
  32. package/dist/chunks/{opchat-D63YTNSX.js → opchat-I2WGEFGU.js} +9 -10
  33. package/dist/chunks/{organizations-I46KG7TC.js → organizations-MADRLI2I.js} +11 -9
  34. package/dist/chunks/{profile-WKZJHEPG.js → profile-B4A3GT3U.js} +12 -38
  35. package/dist/chunks/{project-agent-ZUC3YMCT.js → project-agent-PCO42FZJ.js} +9 -411
  36. package/dist/chunks/{sandbox-command-AAOPFTI5.js → sandbox-command-LBKSIR7P.js} +7 -5
  37. package/dist/chunks/{sandbox-template-GKNVR4C5.js → sandbox-template-YJXGG4H3.js} +8 -6
  38. package/dist/chunks/src-23HDSVNH.js +63517 -0
  39. package/dist/chunks/{src-RPW5TOPI.js → src-35JYS27L.js} +32 -30
  40. package/dist/chunks/{teams-bot-PSL3ZO6Z.js → teams-bot-L4SR2SWM.js} +6 -4
  41. package/dist/chunks/training-BR5A7SPU.js +320 -0
  42. package/dist/chunks/{workspaces-BPXC2DHT.js → workspaces-NGDIBOKQ.js} +2 -2
  43. package/dist/cli.js +24 -12
  44. package/dist/config.d.ts +9 -3
  45. package/dist/index.js +1300 -1045
  46. package/dist/profile/local-profile-types.d.ts +16 -0
  47. package/dist/profile/local-profile.d.ts +50 -4
  48. package/dist/sandbox/client-handles.d.ts +33 -46
  49. package/dist/sandbox/client.d.ts +4 -26
  50. package/dist/sandbox/sandbox-instance-client.d.ts +5 -5
  51. package/dist/sandbox/types/client.d.ts +1 -2
  52. package/dist/sandbox/types/core.d.ts +0 -1
  53. package/dist/sandbox/types/org-project-agent.d.ts +3 -89
  54. package/dist/sandbox/types/record.d.ts +1 -2
  55. package/dist/sandbox/types/runtime-profiles.d.ts +2 -2
  56. package/dist/sandbox-template/manifest.d.ts +1 -1
  57. package/dist/skills/openpond-agent-authoring/SKILL.md +40 -0
  58. package/dist/skills/openpond-agent-authoring/references/action-and-chat-design.md +13 -0
  59. package/dist/skills/openpond-agent-authoring/references/integrations-and-setup.md +13 -0
  60. package/dist/skills/openpond-agent-authoring/references/profile-layout.md +29 -0
  61. package/dist/skills/openpond-agent-authoring/references/validation-and-repair.md +14 -0
  62. package/dist/skills/openpond-desktop-harness/SKILL.md +1 -1
  63. package/dist/skills/openpond-skill-authoring/SKILL.md +44 -0
  64. package/dist/skills/openpond-skill-authoring/references/copying-and-adaptation.md +16 -0
  65. package/dist/skills/openpond-skill-authoring/references/skill-package-layout.md +38 -0
  66. package/dist/skills/openpond-skill-authoring/references/validation-and-repair.md +24 -0
  67. package/dist/skills/openpond-skill-authoring/scripts/validate-skill.mjs +102 -0
  68. package/dist/skills/openpond-taskset-authoring/SKILL.md +64 -22
  69. package/dist/skills/openpond-taskset-authoring/artifact.json +39 -0
  70. package/dist/skills/openpond-taskset-authoring/references/graders-and-rewards.md +3 -0
  71. package/dist/skills/openpond-taskset-authoring/references/method-selection.md +1 -1
  72. package/dist/skills/openpond-taskset-authoring/references/privacy-and-provenance.md +2 -0
  73. package/dist/skills/openpond-taskset-authoring/references/task-design.md +32 -0
  74. package/dist/web/assets/{AppDialog-DrwJb_wG.js → AppDialog-Bua3f-6v.js} +1 -1
  75. package/dist/web/assets/{AppsView-DPagLMsc.js → AppsView-DrJkHeSO.js} +1 -1
  76. package/dist/web/assets/BrowserSidebar-Bf-4Vozm.js +1 -0
  77. package/dist/web/assets/CommandMenu-DDZlGQiB.js +1 -0
  78. package/dist/web/assets/CommunityView-BtcCrba7.js +1 -0
  79. package/dist/web/assets/ComposerCreateImproveStrip-DOe5Otg6.js +1 -0
  80. package/dist/web/assets/GetStartedView-CG4z0Dtw.js +1 -0
  81. package/dist/web/assets/GetStartedView-yVmnGZPw.css +1 -0
  82. package/dist/web/assets/LabModelVersionDetailPage-BEkmSKuv.js +1 -0
  83. package/dist/web/assets/LabSkillSidebar-BIotN_RB.js +1 -0
  84. package/dist/web/assets/LabsRoute-CfOe0Zt5.js +3 -0
  85. package/dist/web/assets/LabsRoute-CoSPO4HR.css +1 -0
  86. package/dist/web/assets/MainChatThread-C0-l1mHt.js +2 -0
  87. package/dist/web/assets/MainPane-Bky_Rqcx.css +1 -0
  88. package/dist/web/assets/MainPane-aOVlVyRK.js +6 -0
  89. package/dist/web/assets/MarkdownText-D7DT1k1k.js +9 -0
  90. package/dist/web/assets/Messages-CBIXruA9.js +9 -0
  91. package/dist/web/assets/NativeSkillSidebar-C4t69Y7B.js +1 -0
  92. package/dist/web/assets/NewProjectDialog-Bat65tYD.js +1 -0
  93. package/dist/web/assets/OutputsPage-C58n39Db.js +1 -0
  94. package/dist/web/assets/RightChatPanelStack-Bp7nZxQ0.js +1 -0
  95. package/dist/web/assets/ScheduledWorkPage-BXP0j_c_.js +1 -0
  96. package/dist/web/assets/SettingsView-CtWK_aQ0.css +1 -0
  97. package/dist/web/assets/SettingsView-DOOfhO9a.js +6 -0
  98. package/dist/web/assets/TeamChatView-Cgxm-pKA.css +1 -0
  99. package/dist/web/assets/TeamChatView-De2wdqyY.js +3 -0
  100. package/dist/web/assets/{TerminalOverlay-BKl0p8pa.js → TerminalOverlay-BsuCH3NX.js} +1 -1
  101. package/dist/web/assets/TrainingCreationPanel-D2OFWyQ-.js +1 -0
  102. package/dist/web/assets/TrainingDraftPanel-DBpulXTz.js +1 -0
  103. package/dist/web/assets/{UsageSettingsSection-zDAwzTGl.js → UsageSettingsSection-DzMLUXAO.js} +37 -37
  104. package/dist/web/assets/WorkspaceDiffPanel-B7yIhjNF.js +14 -0
  105. package/dist/web/assets/WorkspaceEnvironmentMenu-B6jXM9xG.js +32 -0
  106. package/dist/web/assets/WorkspaceGitDialogs-CQ0fl9Qk.js +1 -0
  107. package/dist/web/assets/{WorkspaceMonacoEditor-DPGcG8fy.js → WorkspaceMonacoEditor-C2ctzITz.js} +3 -3
  108. package/dist/web/assets/arrow-up-right-ecwcx3xt.js +1 -0
  109. package/dist/web/assets/chevron-up-DP8PPfWd.js +1 -0
  110. package/dist/web/assets/circle-alert-envg1D6O.js +1 -0
  111. package/dist/web/assets/cloud-upload-5MGPLnaA.js +1 -0
  112. package/dist/web/assets/{cssMode-CKN9CcfG.js → cssMode-CFifcEfw.js} +1 -1
  113. package/dist/web/assets/folder-open-Dq3ZjeEP.js +1 -0
  114. package/dist/web/assets/folder-plus-EiZ5wbv_.js +1 -0
  115. package/dist/web/assets/git-branch-w29jmQ-X.js +1 -0
  116. package/dist/web/assets/{git-commit-horizontal-Bxi8YPep.js → git-commit-horizontal-CGZM0PZo.js} +1 -1
  117. package/dist/web/assets/{htmlMode-CeUcNhBZ.js → htmlMode-Ct1P-_lf.js} +1 -1
  118. package/dist/web/assets/index-ByIQyiUl.js +178 -0
  119. package/dist/web/assets/index-D4uCeiep.js +1 -0
  120. package/dist/web/assets/index-D9jTe16Q.css +1 -0
  121. package/dist/web/assets/info-Cd2HkIeb.js +1 -0
  122. package/dist/web/assets/{jsonMode-97z0Yz9u.js → jsonMode-BAUNCNAX.js} +1 -1
  123. package/dist/web/assets/{lspLanguageFeatures-D4Tp-JmI.js → lspLanguageFeatures-fucFYI1A.js} +1 -1
  124. package/dist/web/assets/monaco.contribution-Ce4v5kei.js +2 -0
  125. package/dist/web/assets/monaco.contribution-DLLMi4cB.js +2 -0
  126. package/dist/web/assets/monaco.contribution-g9QiIm1d.js +2 -0
  127. package/dist/web/assets/monaco.contribution-nG-5Cyjz.js +2 -0
  128. package/dist/web/assets/monitor-DgHCnCKl.js +1 -0
  129. package/dist/web/assets/{play-C-37dnR1.js → play-Be0XDHBu.js} +1 -1
  130. package/dist/web/assets/{python-CGpDXY7_.js → python-CEhEiPo7.js} +1 -1
  131. package/dist/web/assets/{refresh-cw-BAaaPCXl.js → refresh-cw-DH0KLbdD.js} +1 -1
  132. package/dist/web/assets/reply-D1TK2yV8.js +1 -0
  133. package/dist/web/assets/{save-Cvxs3XyC.js → save-C1MSeBnQ.js} +1 -1
  134. package/dist/web/assets/square-CemI-0g5.js +1 -0
  135. package/dist/web/assets/square-pen-CqfsvR_n.js +1 -0
  136. package/dist/web/assets/{toggleHighContrast-CD42jH4g.js → toggleHighContrast-DrdQN3Rl.js} +1 -1
  137. package/dist/web/assets/training-BQVNUTZA.css +1 -0
  138. package/dist/web/assets/training-model-data-B7-1Bxil.js +1 -0
  139. package/dist/web/assets/{tsMode-ZROIxEjv.js → tsMode-CKB5oOUU.js} +1 -1
  140. package/dist/web/assets/{upload-DvCSGERK.js → upload-t751LLqP.js} +1 -1
  141. package/dist/web/assets/useLocalAgentSchedules-CzC3wfIP.js +1 -0
  142. package/dist/web/assets/{wifi-off-BIb94PkS.js → wifi-off-CxTHH3JU.js} +1 -1
  143. package/dist/web/assets/{workers-oYqbrVYG.js → workers-CqYddzCd.js} +1 -1
  144. package/dist/web/assets/{yaml-WqBjNgOO.js → yaml-e5wBkc-C.js} +1 -1
  145. package/dist/web/index.html +2 -2
  146. package/docs/command-reference.md +75 -40
  147. package/package.json +3 -1
  148. package/dist/chunks/chunk-FWLOFUPU.js +0 -864
  149. package/dist/chunks/chunk-HLCTINEP.js +0 -224
  150. package/dist/chunks/chunk-MPGSHXGF.js +0 -3896
  151. package/dist/chunks/chunk-T4QXKU5Y.js +0 -1
  152. package/dist/chunks/chunk-XEJ7XXUQ.js +0 -1301
  153. package/dist/chunks/chunk-ZI4GDAUB.js +0 -3522
  154. package/dist/chunks/cli-2KBVNDRY.js +0 -23
  155. package/dist/chunks/extend-REGNTBK3.js +0 -89
  156. package/dist/chunks/extension-7K77DAVL.js +0 -121
  157. package/dist/chunks/fileFromPath-DHCRY3BD.js +0 -2151
  158. package/dist/chunks/src-MWDIK56B.js +0 -105881
  159. package/dist/web/assets/BrowserSidebar-DMn2V8RV.js +0 -1
  160. package/dist/web/assets/CloudWorkView-Cl_7mM3c.js +0 -1
  161. package/dist/web/assets/CloudWorkView-DNoPIlMj.css +0 -1
  162. package/dist/web/assets/CommandMenu-CHMQLez_.js +0 -1
  163. package/dist/web/assets/CommunityView-DcHVDUk0.js +0 -1
  164. package/dist/web/assets/ComposerCreateImproveStrip-BZ3Dgzmo.js +0 -1
  165. package/dist/web/assets/GetStartedView-DBLdduwr.css +0 -1
  166. package/dist/web/assets/GetStartedView-DTRotFqz.js +0 -1
  167. package/dist/web/assets/LabSkillSidebar-D-PqFe1T.js +0 -1
  168. package/dist/web/assets/LabsRoute-BrJkBNig.css +0 -1
  169. package/dist/web/assets/LabsRoute-Dew1BwK5.js +0 -3
  170. package/dist/web/assets/MainChatThread-BaPxxzrw.js +0 -2
  171. package/dist/web/assets/MakeAgentTutorialLearningPanel-CBsfnONQ.js +0 -2
  172. package/dist/web/assets/MarkdownText-DGLfAM_Z.js +0 -7
  173. package/dist/web/assets/Messages-CIX9uTjX.js +0 -10
  174. package/dist/web/assets/NativeSkillSidebar-AP_uHn6g.js +0 -1
  175. package/dist/web/assets/NewProjectDialog-C6lHkafU.js +0 -1
  176. package/dist/web/assets/PostTrainingLearningPanel-CZEgPc8O.js +0 -2
  177. package/dist/web/assets/PostTrainingStatusPill-CeEpwUDB.js +0 -1
  178. package/dist/web/assets/ProfileSettingsSection-Cg4tKO-C.css +0 -1
  179. package/dist/web/assets/ProfileSettingsSection-EumMLlEp.js +0 -1
  180. package/dist/web/assets/RightChatPanelStack-MXBcx3zO.js +0 -1
  181. package/dist/web/assets/SettingsView-Caljbns2.css +0 -1
  182. package/dist/web/assets/SettingsView-DyURG_Uh.js +0 -6
  183. package/dist/web/assets/TeamChatView-Bx44q3WV.css +0 -1
  184. package/dist/web/assets/TeamChatView-D3v6aqJ3.js +0 -3
  185. package/dist/web/assets/TrainingCreationPanel-CfZQTuT5.js +0 -1
  186. package/dist/web/assets/TrainingDraftPanel-DslRPSDW.js +0 -1
  187. package/dist/web/assets/WorkspaceDiffPanel-C_MZPPlL.js +0 -14
  188. package/dist/web/assets/WorkspaceEnvironmentMenu-BUAnn80j.js +0 -32
  189. package/dist/web/assets/WorkspaceGitDialogs-Drbf4ujA.js +0 -1
  190. package/dist/web/assets/activity-Dnr3jqb3.js +0 -1
  191. package/dist/web/assets/boxes-BinC8UPn.js +0 -1
  192. package/dist/web/assets/chevron-up-Bjp_-_Cb.js +0 -1
  193. package/dist/web/assets/circle-x-ubnvEYuE.js +0 -1
  194. package/dist/web/assets/copy-B_ZCCUMz.js +0 -1
  195. package/dist/web/assets/create-pipeline-request-D6uLUxe9.js +0 -4
  196. package/dist/web/assets/file-8HAMlTmQ.js +0 -1
  197. package/dist/web/assets/git-branch-l2Zih3Bv.js +0 -1
  198. package/dist/web/assets/index-BMFyOFRU.css +0 -1
  199. package/dist/web/assets/index-BzwcDzbT.js +0 -1
  200. package/dist/web/assets/index-KoQSSt_f.js +0 -177
  201. package/dist/web/assets/info-JTbDQxHx.js +0 -1
  202. package/dist/web/assets/make-agent-tutorial-D6nBCgv-.js +0 -2
  203. package/dist/web/assets/monaco.contribution-B3j6oown.js +0 -2
  204. package/dist/web/assets/monaco.contribution-BXHxPPWL.js +0 -2
  205. package/dist/web/assets/monaco.contribution-C2P5zIzh.js +0 -2
  206. package/dist/web/assets/monaco.contribution-C8c6OtGi.js +0 -2
  207. package/dist/web/assets/monitor-kzHtxHnA.js +0 -1
  208. package/dist/web/assets/reply-9rehU13k.js +0 -1
  209. package/dist/web/assets/rotate-cw-C1Z_Xs23.js +0 -1
  210. package/dist/web/assets/training-BN8CALIc.css +0 -1
  211. package/dist/web/assets/training-model-data-BXUCzS0p.js +0 -1
  212. package/docs/agent-edit-check-status-json.md +0 -132
@@ -1,24 +1,27 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
+ import {
3
+ createOpenPondSandboxClient
4
+ } from "./chunk-KHNHUA2H.js";
2
5
  import {
3
6
  mapUiBaseToApiBase,
4
7
  resolveBaseUrl,
5
8
  resolveSandboxApiUrlOption
6
- } from "./chunk-GDZYDLEL.js";
9
+ } from "./chunk-SMNFI2FU.js";
7
10
  import {
8
11
  DEFAULT_CACHE_TTL_MS,
9
12
  SANDBOX_RUNTIME_PROFILE_IDS,
10
- createOpenPondSandboxClient,
11
13
  getCachedApps,
12
14
  getCachedTools,
13
15
  getDeploymentLogs,
14
16
  getDeploymentStatus,
15
17
  listApps,
18
+ listConfiguredProfiles,
16
19
  listUserTools,
17
20
  loadConfig,
18
21
  saveGlobalConfig,
19
22
  setCachedApps,
20
23
  setCachedTools
21
- } from "./chunk-ZI4GDAUB.js";
24
+ } from "./chunk-DBHSOTYZ.js";
22
25
  import {
23
26
  DEFAULT_OPENPOND_API_BASE_URL,
24
27
  DEFAULT_OPENPOND_WEB_BASE_URL
@@ -288,6 +291,99 @@ async function promptForPath(defaultPath) {
288
291
  }
289
292
  }
290
293
 
294
+ // ../../packages/sdk/src/work.ts
295
+ var MAX_WORK_INPUT_BYTES = 100 * 1024 * 1024;
296
+ var WORK_OUTPUT_MIME_TYPES = Object.freeze({
297
+ ".avif": "image/avif",
298
+ ".csv": "text/csv",
299
+ ".docx": "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
300
+ ".gif": "image/gif",
301
+ ".html": "text/html",
302
+ ".jpeg": "image/jpeg",
303
+ ".jpg": "image/jpeg",
304
+ ".json": "application/json",
305
+ ".m4a": "audio/mp4",
306
+ ".md": "text/markdown",
307
+ ".mov": "video/quicktime",
308
+ ".mp3": "audio/mpeg",
309
+ ".mp4": "video/mp4",
310
+ ".pdf": "application/pdf",
311
+ ".png": "image/png",
312
+ ".pptx": "application/vnd.openxmlformats-officedocument.presentationml.presentation",
313
+ ".svg": "image/svg+xml",
314
+ ".tsv": "text/tab-separated-values",
315
+ ".txt": "text/plain",
316
+ ".wav": "audio/wav",
317
+ ".webm": "video/webm",
318
+ ".webp": "image/webp",
319
+ ".xlsx": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
320
+ });
321
+
322
+ // src/cli/common/vercel-protection.ts
323
+ import { spawnSync } from "node:child_process";
324
+ import path from "node:path";
325
+ function ensureStagingVercelProtectionBypass(requestUrl, options = {}) {
326
+ const env = options.env ?? process.env;
327
+ if (env.VERCEL_AUTOMATION_BYPASS_SECRET?.trim()) return true;
328
+ if (!isOpenPondStagingUrl(requestUrl)) return false;
329
+ const cwd = path.resolve(options.cwd ?? process.cwd());
330
+ const projectDirectories = candidateProjectDirectories(cwd, env);
331
+ const run = options.run ?? runProtectionCommand;
332
+ const command = process.platform === "win32" ? "vercel.cmd" : "vercel";
333
+ for (const projectDirectory of projectDirectories) {
334
+ const result = run({
335
+ command,
336
+ args: ["project", "protection", "--format", "json"],
337
+ cwd: projectDirectory,
338
+ env
339
+ });
340
+ if (result.status !== 0 || !result.stdout.trim()) continue;
341
+ const secret = vercelProtectionBypassSecret(result.stdout);
342
+ if (!secret) continue;
343
+ env.VERCEL_AUTOMATION_BYPASS_SECRET = secret;
344
+ return true;
345
+ }
346
+ return false;
347
+ }
348
+ function vercelProtectionBypassSecret(rawProtectionJson) {
349
+ try {
350
+ const payload = JSON.parse(rawProtectionJson);
351
+ const entries = Object.entries(payload.protectionBypass ?? {});
352
+ const selected = entries.find(([, metadata]) => metadata?.isEnvVar === true) ?? entries[0];
353
+ return selected?.[0]?.trim() || null;
354
+ } catch {
355
+ return null;
356
+ }
357
+ }
358
+ function isOpenPondStagingUrl(requestUrl) {
359
+ try {
360
+ const hostname = new URL(requestUrl).hostname.toLowerCase();
361
+ return hostname === "staging.openpond.ai" || hostname === "staging-api.openpond.ai" || hostname.endsWith(".staging-api.openpond.ai");
362
+ } catch {
363
+ return false;
364
+ }
365
+ }
366
+ function candidateProjectDirectories(cwd, env) {
367
+ const configured = env.OPENPOND_VERCEL_PROJECT_DIR?.trim();
368
+ return [.../* @__PURE__ */ new Set([
369
+ ...configured ? [path.resolve(cwd, configured)] : [],
370
+ path.resolve(cwd, "../sandbox"),
371
+ cwd
372
+ ])];
373
+ }
374
+ function runProtectionCommand(input3) {
375
+ const result = spawnSync(input3.command, input3.args, {
376
+ cwd: input3.cwd,
377
+ env: input3.env,
378
+ encoding: "utf8",
379
+ stdio: ["ignore", "pipe", "ignore"]
380
+ });
381
+ return {
382
+ status: result.status,
383
+ stdout: typeof result.stdout === "string" ? result.stdout : ""
384
+ };
385
+ }
386
+
291
387
  // src/cli/common/sandbox-options.ts
292
388
  var SANDBOX_WORKFLOW_MODES = [
293
389
  "readonly",
@@ -317,13 +413,57 @@ function resolveSandboxBaseUrl(config, options) {
317
413
  return base.replace(/\/$/, "");
318
414
  }
319
415
  async function resolveSandboxClient(options) {
320
- const config = await loadConfig();
416
+ const config = await loadSandboxConfig(options);
321
417
  const uiBase = resolveBaseUrl(config);
322
418
  const apiKey = await ensureApiKey(config, uiBase);
323
419
  const sandboxApiUrl = resolveSandboxApiUrlOption(options) || process.env.OPENPOND_SANDBOX_API_URL?.trim() || null;
420
+ const baseUrl = resolveSandboxBaseUrl(config, options);
421
+ ensureStagingVercelProtectionBypass(sandboxApiUrl ?? baseUrl);
324
422
  return createOpenPondSandboxClient(
325
- sandboxApiUrl ? { apiKey, sandboxApiUrl } : { apiKey, baseUrl: resolveSandboxBaseUrl(config, options) }
423
+ sandboxApiUrl ? { apiKey, sandboxApiUrl } : { apiKey, baseUrl }
424
+ );
425
+ }
426
+ async function loadSandboxConfig(options) {
427
+ const environment = sandboxEnvironmentOption(options);
428
+ if (!environment) return loadConfig();
429
+ const profiles = await listConfiguredProfiles();
430
+ const requestedAccount = typeof options.account === "string" ? options.account.trim().toLowerCase() : typeof options.profile === "string" ? options.profile.trim().toLowerCase() : "";
431
+ const matches = profiles.filter(
432
+ (profile) => profileMatchesEnvironment(profile, environment) && (!requestedAccount || profile.handle.toLowerCase() === requestedAccount)
433
+ );
434
+ const selected = matches.find((profile) => profile.isActive) ?? (matches.length === 1 ? matches[0] : null);
435
+ if (!selected) {
436
+ throw new Error(
437
+ matches.length === 0 ? `no saved ${environment} OpenPond account found; run openpond login for that environment first` : `multiple saved ${environment} OpenPond accounts found; pass --account and --base-url to select one`
438
+ );
439
+ }
440
+ return loadConfig({
441
+ account: selected.handle,
442
+ ...selected.baseUrl ? { baseUrl: selected.baseUrl } : {}
443
+ });
444
+ }
445
+ function sandboxEnvironmentOption(options) {
446
+ const value = typeof options.env === "string" ? options.env.trim().toLowerCase() : typeof options.environment === "string" ? options.environment.trim().toLowerCase() : "";
447
+ if (!value) return null;
448
+ if (value !== "production" && value !== "staging") {
449
+ throw new Error("sandbox env must be staging or production");
450
+ }
451
+ return value;
452
+ }
453
+ function profileMatchesEnvironment(profile, environment) {
454
+ const hosts = [profile.baseUrl, profile.apiBaseUrl].flatMap((value) => {
455
+ if (!value) return [];
456
+ try {
457
+ return [new URL(value).hostname.toLowerCase()];
458
+ } catch {
459
+ return [];
460
+ }
461
+ });
462
+ const isStaging = hosts.some(
463
+ (hostname) => hostname === "staging.openpond.ai" || hostname === "staging-api.openpond.ai" || hostname.endsWith(".staging-api.openpond.ai")
326
464
  );
465
+ if (environment === "staging") return isStaging;
466
+ return !isStaging && profile.environment?.toLowerCase() === "production";
327
467
  }
328
468
  function parseSandboxWorkflowModeOption(value) {
329
469
  if (value === void 0) return void 0;
@@ -1,7 +1,7 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
2
  import {
3
3
  now
4
- } from "./chunk-HS2AGRDV.js";
4
+ } from "./chunk-CZG4XKVF.js";
5
5
 
6
6
  // ../server/src/workspace/workspace-command.ts
7
7
  import { spawn, spawnSync } from "node:child_process";
@@ -1,7 +1,7 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
2
  import {
3
3
  writePrivateJsonFile
4
- } from "./chunk-ZI4GDAUB.js";
4
+ } from "./chunk-DBHSOTYZ.js";
5
5
 
6
6
  // ../../packages/cloud/src/profile/source-upload-cache.ts
7
7
  import { createHash } from "node:crypto";