openpond 0.0.68 → 0.0.69

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 (128) hide show
  1. package/dist/chunks/{actions-command-DLOKFA34.js → actions-command-6N5XWMR6.js} +4 -4
  2. package/dist/chunks/{app-layer-K7NAOLDL.js → app-layer-EXXOWJ5H.js} +7 -7
  3. package/dist/chunks/{app-server-runtime-OFZZIWAB.js → app-server-runtime-7FBQBE3C.js} +10 -10
  4. package/dist/chunks/{apps-5VSVJLM7.js → apps-RZSDOFAG.js} +7 -7
  5. package/dist/chunks/{chunk-N6FKRVAT.js → chunk-47EIAYI7.js} +2 -2
  6. package/dist/chunks/{chunk-7FW2CVYN.js → chunk-4L3ZJS2T.js} +426 -1
  7. package/dist/chunks/{chunk-OOJP442J.js → chunk-5TKZBMQM.js} +1 -1
  8. package/dist/chunks/{chunk-WEB37YVJ.js → chunk-7C4OIFOC.js} +1 -1
  9. package/dist/chunks/{chunk-MUS7KPXK.js → chunk-BLFIIAWZ.js} +1931 -19
  10. package/dist/chunks/{chunk-3KLQ52B2.js → chunk-BVY5JYM6.js} +4 -9
  11. package/dist/chunks/{chunk-DBHSOTYZ.js → chunk-D7BO5Y5J.js} +3 -24
  12. package/dist/chunks/chunk-DLQQIWN2.js +648 -0
  13. package/dist/chunks/{chunk-T55IL3GI.js → chunk-DNXBJZAU.js} +1 -1
  14. package/dist/chunks/{chunk-KLD7NT5J.js → chunk-F36ZVO6U.js} +3 -3
  15. package/dist/chunks/{chunk-TSDVA7QP.js → chunk-FEOLMLYU.js} +8 -12
  16. package/dist/chunks/{chunk-QETF6ILG.js → chunk-FQS2QL5F.js} +359 -841
  17. package/dist/chunks/{chunk-J2REM7LE.js → chunk-HFPUR4CQ.js} +5 -116
  18. package/dist/chunks/{chunk-JIEUB6OS.js → chunk-J3YDKJFD.js} +1 -1
  19. package/dist/chunks/{chunk-JGOP4GCK.js → chunk-JTHL5XJ2.js} +5 -25
  20. package/dist/chunks/{chunk-OQLYO7TA.js → chunk-MMRJNSWY.js} +34 -81
  21. package/dist/chunks/{chunk-HFQHD35D.js → chunk-NPNIL6SQ.js} +1 -1
  22. package/dist/chunks/{chunk-IG72OKNB.js → chunk-OOM2PHBE.js} +2080 -16400
  23. package/dist/chunks/{chunk-PSGEH4FC.js → chunk-QTN6HXOR.js} +3 -3
  24. package/dist/chunks/{chunk-HNY7OSDY.js → chunk-SFMNGWNO.js} +1 -1
  25. package/dist/chunks/{chunk-TBEBLKCQ.js → chunk-WBAZFKC7.js} +3 -3
  26. package/dist/chunks/{chunk-NA4L2HQM.js → chunk-Y57RTLVV.js} +33 -33
  27. package/dist/chunks/{chunk-Z2ZWHU7O.js → chunk-YVCYVDNP.js} +1 -1
  28. package/dist/chunks/{cli-6WFY2ULA.js → cli-HIXVXM72.js} +8 -8
  29. package/dist/chunks/{core-commands-HQ3HL34W.js → core-commands-34SVH6ZQ.js} +8 -8
  30. package/dist/chunks/{desktop-test-RU6SRARQ.js → desktop-test-66DPBNJX.js} +7 -7
  31. package/dist/chunks/{extension-4KFKWMC4.js → extension-ZMRHCDO3.js} +36 -87
  32. package/dist/chunks/{help-ZUCPOR22.js → help-COHCZEP2.js} +1 -1
  33. package/dist/chunks/{opchat-AZX7SYM7.js → opchat-2PGW2GNN.js} +10 -18
  34. package/dist/chunks/{organizations-GV6Z7G4J.js → organizations-NZ4OY56V.js} +9 -9
  35. package/dist/chunks/{profile-TSLGZPUI.js → profile-GEMTRPUG.js} +11 -11
  36. package/dist/chunks/{project-agent-SHIQZWPY.js → project-agent-NX6YBGWC.js} +10 -10
  37. package/dist/chunks/{sandbox-command-TRS66NUT.js → sandbox-command-UEY53OJO.js} +8 -8
  38. package/dist/chunks/{sandbox-template-RVWXD5O3.js → sandbox-template-YKYRB645.js} +10 -10
  39. package/dist/chunks/{src-VUJ6EBOU.js → src-IXYDKOBI.js} +799 -965
  40. package/dist/chunks/{src-Q3BOITLJ.js → src-LKJBD5AM.js} +5 -5
  41. package/dist/chunks/{teams-bot-CLCMGBW5.js → teams-bot-K6KZHZJV.js} +7 -7
  42. package/dist/chunks/{workspaces-IIPITOCV.js → workspaces-WXM72UZF.js} +2 -2
  43. package/dist/cli.js +13 -13
  44. package/dist/index.js +15 -56
  45. package/dist/web/assets/App-BF9L0JUv.js +171 -0
  46. package/dist/web/assets/{AppDialog-sLTPiFGX.js → AppDialog-DX-xs3KA.js} +1 -1
  47. package/dist/web/assets/{AppTerminalPanel-B0NCyY4L.js → AppTerminalPanel-CYVj_ITT.js} +2 -2
  48. package/dist/web/assets/{AppsView-DyDyktK2.js → AppsView-ByjyGog7.js} +1 -1
  49. package/dist/web/assets/{BrowserSidebar-C-PQxmQa.js → BrowserSidebar-BDwtMAZl.js} +1 -1
  50. package/dist/web/assets/{CartesianChart-CnerMhTr.js → CartesianChart-Dv6jJfPR.js} +1 -1
  51. package/dist/web/assets/{CollaborationTabs-DJEp6dux.js → CollaborationTabs-CC5AIhMh.js} +1 -1
  52. package/dist/web/assets/{CommandMenu-B5lGz8rG.js → CommandMenu-Ct0Sx7yP.js} +1 -1
  53. package/dist/web/assets/{CommunityView-DQJaHBa5.js → CommunityView-C_zVE0jg.js} +1 -1
  54. package/dist/web/assets/{ComposerCreateImproveStrip-7hBR2bdV.js → ComposerCreateImproveStrip-CNn4OywM.js} +1 -1
  55. package/dist/web/assets/{GetStartedView-l1Cz1e7g.js → GetStartedView-DRFpHDLd.js} +1 -1
  56. package/dist/web/assets/LabModelVersionDetailPage-BzF-IVXQ.js +1 -0
  57. package/dist/web/assets/{LabSkillSidebar-jlX5I_D5.js → LabSkillSidebar-B9jY4AgE.js} +1 -1
  58. package/dist/web/assets/{LabsRoute-D3w6nPSa.css → LabsRoute-CS_orT9s.css} +1 -1
  59. package/dist/web/assets/LabsRoute-Di1Zs4gZ.js +2 -0
  60. package/dist/web/assets/{MainChatThread-B1nXTMAf.js → MainChatThread-8VzlD8Hi.js} +2 -2
  61. package/dist/web/assets/{MainPane-DxVcMBFo.js → MainPane-StAOFINE.js} +3 -3
  62. package/dist/web/assets/{MarkdownText-B3njGyZS.js → MarkdownText-B8D_ftSJ.js} +1 -1
  63. package/dist/web/assets/{Messages-yBS4UHWl.js → Messages-TY62tiDp.js} +1 -1
  64. package/dist/web/assets/{NativeSkillSidebar-DaD52aW1.js → NativeSkillSidebar-DjebFRoi.js} +1 -1
  65. package/dist/web/assets/{NewExperienceSwitcher-C7X_K5Xl.js → NewExperienceSwitcher-C-bJxHxY.js} +1 -1
  66. package/dist/web/assets/{NewProjectDialog-NuPVF2Y7.js → NewProjectDialog-Cx8QcZm7.js} +1 -1
  67. package/dist/web/assets/{OutputsPage-Bmof4Tdv.js → OutputsPage-Y9HM-SHX.js} +1 -1
  68. package/dist/web/assets/{ProjectsPage-D7opg6ff.js → ProjectsPage-BBr58yKT.js} +1 -1
  69. package/dist/web/assets/{RightChatPanelStack-BzsNeSwx.js → RightChatPanelStack-DzUbDKwp.js} +1 -1
  70. package/dist/web/assets/{RightSidebarHomePanel-D8dAMHcp.js → RightSidebarHomePanel-Dx-1elSI.js} +1 -1
  71. package/dist/web/assets/{ScheduledWorkPage-Dkjhof6t.js → ScheduledWorkPage-BuXw_W8b.js} +1 -1
  72. package/dist/web/assets/SettingsView-DB_zPHYY.js +6 -0
  73. package/dist/web/assets/{TeamChatView-DIxvrgai.js → TeamChatView-Bkyhu40R.js} +1 -1
  74. package/dist/web/assets/{TerminalOverlay-Cd0Sp9LD.js → TerminalOverlay-CaCkZDzO.js} +1 -1
  75. package/dist/web/assets/{TrainingCreationPanel-DACYaOny.js → TrainingCreationPanel-Vvi41WNT.js} +1 -1
  76. package/dist/web/assets/{TrainingDraftPanel-DBWJW8ZD.js → TrainingDraftPanel-C2C3hffI.js} +1 -1
  77. package/dist/web/assets/{UsageSettingsSection-B3sbqaUV.js → UsageSettingsSection-DpPBd-ra.js} +1 -1
  78. package/dist/web/assets/{WorkSidebarPanel-D4yXQ64j.js → WorkSidebarPanel-CeWGboTh.js} +1 -1
  79. package/dist/web/assets/{WorkspaceDiffPanel-CBgPVF1P.js → WorkspaceDiffPanel-D_zKOW4K.js} +3 -3
  80. package/dist/web/assets/{WorkspaceEnvironmentMenu-Bp-9V7Jq.js → WorkspaceEnvironmentMenu-BTz9FISP.js} +3 -3
  81. package/dist/web/assets/{WorkspaceGitDialogs-BxU5Uhpz.js → WorkspaceGitDialogs-BnBRUYpS.js} +1 -1
  82. package/dist/web/assets/{WorkspaceMonacoEditor-Db_sWYFt.js → WorkspaceMonacoEditor--GOVrHFp.js} +3 -3
  83. package/dist/web/assets/{activity-BzKyRXbd.js → activity-DA5DNQwD.js} +1 -1
  84. package/dist/web/assets/{arrow-up-right-DaIxkG4K.js → arrow-up-right-BRZWXpqJ.js} +1 -1
  85. package/dist/web/assets/{chat-file-links-wORSEipQ.js → chat-file-links-CgFHK89C.js} +1 -1
  86. package/dist/web/assets/chevron-up-DSv2auz_.js +1 -0
  87. package/dist/web/assets/{clipboard-BTRsPPaK.js → clipboard-dPd_3lpG.js} +1 -1
  88. package/dist/web/assets/{cloud-upload-BYXHJoKd.js → cloud-upload-DOwvN4hp.js} +1 -1
  89. package/dist/web/assets/{cssMode-Be446Wgi.js → cssMode-BM4j9M0D.js} +1 -1
  90. package/dist/web/assets/{folder-open-KtKTXn4w.js → folder-open-DavjPCw4.js} +1 -1
  91. package/dist/web/assets/{folder-plus-9-Xcli22.js → folder-plus-Dyqast6G.js} +1 -1
  92. package/dist/web/assets/{git-branch-CLGxzDjJ.js → git-branch-zKnZdQiX.js} +1 -1
  93. package/dist/web/assets/{git-commit-horizontal-CmVYsUnh.js → git-commit-horizontal-s3X0cQlz.js} +1 -1
  94. package/dist/web/assets/{htmlMode-DTjTyBB_.js → htmlMode-Nlx7ckXa.js} +1 -1
  95. package/dist/web/assets/{index-DqWw2ymf.js → index-5-B6FIuE.js} +1 -1
  96. package/dist/web/assets/index-CQ3CPVHZ.css +1 -0
  97. package/dist/web/assets/index-CuoGlf-W.js +1 -0
  98. package/dist/web/assets/{info-BLmP4K0e.js → info-CVvrNOHr.js} +1 -1
  99. package/dist/web/assets/{jsonMode-Z-2iim-u.js → jsonMode-B7monA6g.js} +1 -1
  100. package/dist/web/assets/{lspLanguageFeatures-Cr2iCfG2.js → lspLanguageFeatures-CcJ9GDtK.js} +1 -1
  101. package/dist/web/assets/{minimize-2-CWA6iO3r.js → minimize-2-O1DnznGK.js} +1 -1
  102. package/dist/web/assets/{monaco.contribution-YhqlKmCp.js → monaco.contribution-2PozfA9g.js} +2 -2
  103. package/dist/web/assets/{monaco.contribution-BtMcDmCM.js → monaco.contribution-BMAF2bmO.js} +2 -2
  104. package/dist/web/assets/{monaco.contribution-Cac9eBUk.js → monaco.contribution-BSJ2jQTi.js} +2 -2
  105. package/dist/web/assets/{monaco.contribution-NtjNqMdv.js → monaco.contribution-QOOCizYq.js} +2 -2
  106. package/dist/web/assets/{play-DYSQH2rx.js → play-BpCc5ZbR.js} +1 -1
  107. package/dist/web/assets/{python-CNqOWXNv.js → python-BK41iew-.js} +1 -1
  108. package/dist/web/assets/{refresh-cw-DMysDKOA.js → refresh-cw-Csoy1ev1.js} +1 -1
  109. package/dist/web/assets/{save-HPZ4ZiDi.js → save-Dbztj0W7.js} +1 -1
  110. package/dist/web/assets/{square-D-mpY1a-.js → square-ju7fWa0W.js} +1 -1
  111. package/dist/web/assets/{toggleHighContrast-Bccdn3Qi.js → toggleHighContrast-DrmwDpyz.js} +1 -1
  112. package/dist/web/assets/{tsMode-BhcKJxhG.js → tsMode-CFgCMr7d.js} +1 -1
  113. package/dist/web/assets/{upload-DE7xaWVj.js → upload-C5nhiSMq.js} +1 -1
  114. package/dist/web/assets/{useLocalAgentSchedules-C0J--_MD.js → useLocalAgentSchedules-LAsobERb.js} +1 -1
  115. package/dist/web/assets/{wifi-off-CrCfhll9.js → wifi-off-BHxh2UbA.js} +1 -1
  116. package/dist/web/assets/{workers-DCaGzukk.js → workers-FKb-NyBI.js} +1 -1
  117. package/dist/web/assets/{yaml-CCfH63KB.js → yaml-C5DbF9S6.js} +1 -1
  118. package/dist/web/index.html +2 -2
  119. package/package.json +1 -1
  120. package/dist/api/vercel-protection.d.ts +0 -1
  121. package/dist/chunks/chunk-MLWNI3WG.js +0 -15395
  122. package/dist/web/assets/App-D7vhbyMO.js +0 -171
  123. package/dist/web/assets/LabModelVersionDetailPage-D2PfI3-r.js +0 -1
  124. package/dist/web/assets/LabsRoute-VOgPrf94.js +0 -2
  125. package/dist/web/assets/SettingsView-CWTAUy2b.js +0 -6
  126. package/dist/web/assets/chevron-up-C8-qSzck.js +0 -1
  127. package/dist/web/assets/index-AzqEDIEY.css +0 -1
  128. package/dist/web/assets/index-C5uP_Gug.js +0 -1
@@ -6,7 +6,7 @@ import {
6
6
  } from "./chunk-SMNFI2FU.js";
7
7
  import {
8
8
  createOpenPondSandboxClient
9
- } from "./chunk-JGOP4GCK.js";
9
+ } from "./chunk-JTHL5XJ2.js";
10
10
  import {
11
11
  DEFAULT_CACHE_TTL_MS,
12
12
  SANDBOX_RUNTIME_PROFILE_IDS,
@@ -15,13 +15,12 @@ import {
15
15
  getDeploymentLogs,
16
16
  getDeploymentStatus,
17
17
  listApps,
18
- listConfiguredProfiles,
19
18
  listUserTools,
20
19
  loadConfig,
21
20
  saveGlobalConfig,
22
21
  setCachedApps,
23
22
  setCachedTools
24
- } from "./chunk-DBHSOTYZ.js";
23
+ } from "./chunk-D7BO5Y5J.js";
25
24
  import {
26
25
  DEFAULT_OPENPOND_API_BASE_URL,
27
26
  DEFAULT_OPENPOND_WEB_BASE_URL
@@ -291,71 +290,6 @@ async function promptForPath(defaultPath) {
291
290
  }
292
291
  }
293
292
 
294
- // src/cli/common/vercel-protection.ts
295
- import { spawnSync } from "node:child_process";
296
- import path from "node:path";
297
- function ensureStagingVercelProtectionBypass(requestUrl, options = {}) {
298
- const env = options.env ?? process.env;
299
- if (env.VERCEL_AUTOMATION_BYPASS_SECRET?.trim()) return true;
300
- if (!isOpenPondStagingUrl(requestUrl)) return false;
301
- const cwd = path.resolve(options.cwd ?? process.cwd());
302
- const projectDirectories = candidateProjectDirectories(cwd, env);
303
- const run = options.run ?? runProtectionCommand;
304
- const command = process.platform === "win32" ? "vercel.cmd" : "vercel";
305
- for (const projectDirectory of projectDirectories) {
306
- const result = run({
307
- command,
308
- args: ["project", "protection", "--format", "json"],
309
- cwd: projectDirectory,
310
- env
311
- });
312
- if (result.status !== 0 || !result.stdout.trim()) continue;
313
- const secret = vercelProtectionBypassSecret(result.stdout);
314
- if (!secret) continue;
315
- env.VERCEL_AUTOMATION_BYPASS_SECRET = secret;
316
- return true;
317
- }
318
- return false;
319
- }
320
- function vercelProtectionBypassSecret(rawProtectionJson) {
321
- try {
322
- const payload = JSON.parse(rawProtectionJson);
323
- const entries = Object.entries(payload.protectionBypass ?? {});
324
- const selected = entries.find(([, metadata]) => metadata?.isEnvVar === true) ?? entries[0];
325
- return selected?.[0]?.trim() || null;
326
- } catch {
327
- return null;
328
- }
329
- }
330
- function isOpenPondStagingUrl(requestUrl) {
331
- try {
332
- const hostname = new URL(requestUrl).hostname.toLowerCase();
333
- return hostname === "staging.openpond.ai" || hostname === "staging-api.openpond.ai" || hostname.endsWith(".staging-api.openpond.ai");
334
- } catch {
335
- return false;
336
- }
337
- }
338
- function candidateProjectDirectories(cwd, env) {
339
- const configured = env.OPENPOND_VERCEL_PROJECT_DIR?.trim();
340
- return [.../* @__PURE__ */ new Set([
341
- ...configured ? [path.resolve(cwd, configured)] : [],
342
- path.resolve(cwd, "../sandbox"),
343
- cwd
344
- ])];
345
- }
346
- function runProtectionCommand(input3) {
347
- const result = spawnSync(input3.command, input3.args, {
348
- cwd: input3.cwd,
349
- env: input3.env,
350
- encoding: "utf8",
351
- stdio: ["ignore", "pipe", "ignore"]
352
- });
353
- return {
354
- status: result.status,
355
- stdout: typeof result.stdout === "string" ? result.stdout : ""
356
- };
357
- }
358
-
359
293
  // src/cli/common/sandbox-options.ts
360
294
  var SANDBOX_WORKFLOW_MODES = [
361
295
  "readonly",
@@ -374,13 +308,7 @@ var SANDBOX_RUNTIME_PROFILES = [
374
308
  ...SANDBOX_RUNTIME_PROFILE_IDS
375
309
  ];
376
310
  function resolveSandboxBaseUrl(config, options) {
377
- const envName = typeof options.env === "string" ? options.env.trim().toLowerCase() : typeof options.environment === "string" ? options.environment.trim().toLowerCase() : "";
378
- if (envName === "staging") {
379
- return "https://api-new.staging-api.openpond.ai";
380
- }
381
- if (envName && envName !== "production") {
382
- throw new Error("sandbox env must be staging or production");
383
- }
311
+ void options;
384
312
  const base = process.env.OPENPOND_SANDBOX_BASE_URL || process.env.OPENPOND_API_URL || config.apiBaseUrl || mapUiBaseToApiBase(process.env.OPENPOND_BASE_URL || config.baseUrl) || DEFAULT_OPENPOND_API_BASE_URL;
385
313
  return base.replace(/\/$/, "");
386
314
  }
@@ -390,52 +318,13 @@ async function resolveSandboxClient(options) {
390
318
  const apiKey = await ensureApiKey(config, uiBase);
391
319
  const sandboxApiUrl = resolveSandboxApiUrlOption(options) || process.env.OPENPOND_SANDBOX_API_URL?.trim() || null;
392
320
  const baseUrl = resolveSandboxBaseUrl(config, options);
393
- ensureStagingVercelProtectionBypass(sandboxApiUrl ?? baseUrl);
394
321
  return createOpenPondSandboxClient(
395
322
  sandboxApiUrl ? { apiKey, sandboxApiUrl } : { apiKey, baseUrl }
396
323
  );
397
324
  }
398
325
  async function loadSandboxConfig(options) {
399
- const environment = sandboxEnvironmentOption(options);
400
- if (!environment) return loadConfig();
401
- const profiles = await listConfiguredProfiles();
402
- const requestedAccount = typeof options.account === "string" ? options.account.trim().toLowerCase() : typeof options.profile === "string" ? options.profile.trim().toLowerCase() : "";
403
- const matches = profiles.filter(
404
- (profile) => profileMatchesEnvironment(profile, environment) && (!requestedAccount || profile.handle.toLowerCase() === requestedAccount)
405
- );
406
- const selected = matches.find((profile) => profile.isActive) ?? (matches.length === 1 ? matches[0] : null);
407
- if (!selected) {
408
- throw new Error(
409
- 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`
410
- );
411
- }
412
- return loadConfig({
413
- account: selected.handle,
414
- ...selected.baseUrl ? { baseUrl: selected.baseUrl } : {}
415
- });
416
- }
417
- function sandboxEnvironmentOption(options) {
418
- const value = typeof options.env === "string" ? options.env.trim().toLowerCase() : typeof options.environment === "string" ? options.environment.trim().toLowerCase() : "";
419
- if (!value) return null;
420
- if (value !== "production" && value !== "staging") {
421
- throw new Error("sandbox env must be staging or production");
422
- }
423
- return value;
424
- }
425
- function profileMatchesEnvironment(profile, environment) {
426
- const hosts = [profile.baseUrl, profile.apiBaseUrl].flatMap((value) => {
427
- if (!value) return [];
428
- try {
429
- return [new URL(value).hostname.toLowerCase()];
430
- } catch {
431
- return [];
432
- }
433
- });
434
- const isStaging = hosts.some(
435
- (hostname) => hostname === "staging.openpond.ai" || hostname === "staging-api.openpond.ai" || hostname.endsWith(".staging-api.openpond.ai")
436
- );
437
- if (environment === "staging") return isStaging;
438
- return !isStaging && profile.environment?.toLowerCase() === "production";
326
+ void options;
327
+ return loadConfig();
439
328
  }
440
329
  function parseSandboxWorkflowModeOption(value) {
441
330
  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
  writePrivateJsonFile
4
- } from "./chunk-DBHSOTYZ.js";
4
+ } from "./chunk-D7BO5Y5J.js";
5
5
 
6
6
  // ../../packages/cloud/src/profile/source-upload-cache.ts
7
7
  import { createHash } from "node:crypto";
@@ -1,24 +1,5 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
2
 
3
- // ../../packages/cloud/dist/api/vercel-protection.js
4
- var VERCEL_PROTECTION_BYPASS_HEADER = "x-vercel-protection-bypass";
5
- function withVercelProtectionBypass(requestUrl, inputHeaders, env = typeof process === "undefined" ? {} : process.env) {
6
- const headers = new Headers(inputHeaders);
7
- const secret = env.VERCEL_AUTOMATION_BYPASS_SECRET?.trim();
8
- if (!secret || !isOpenPondStagingUrl(requestUrl))
9
- return headers;
10
- headers.set(VERCEL_PROTECTION_BYPASS_HEADER, secret);
11
- return headers;
12
- }
13
- function isOpenPondStagingUrl(requestUrl) {
14
- try {
15
- const hostname = new URL(requestUrl).hostname.toLowerCase();
16
- return hostname === "staging.openpond.ai" || hostname === "staging-api.openpond.ai" || hostname.endsWith(".staging-api.openpond.ai");
17
- } catch {
18
- return false;
19
- }
20
- }
21
-
22
3
  // ../../packages/cloud/dist/api/core.js
23
4
  var DEFAULT_API_TIMEOUT_MS = 3e4;
24
5
  var DEFAULT_API_RESPONSE_BYTES = 8 * 1024 * 1024;
@@ -61,7 +42,7 @@ var OpenPondApiError = class extends Error {
61
42
  async function apiFetch(baseUrl, token, requestPath, options = {}) {
62
43
  const { timeoutMs = DEFAULT_API_TIMEOUT_MS, maxResponseBytes = DEFAULT_API_RESPONSE_BYTES, ...init } = options;
63
44
  const requestUrl = `${baseUrl}${requestPath}`;
64
- const headers = withVercelProtectionBypass(requestUrl, init.headers);
45
+ const headers = new Headers(init.headers);
65
46
  headers.set("Content-Type", "application/json");
66
47
  const apiKey = process.env.OPENPOND_API_KEY;
67
48
  const trimmedToken = token?.trim() || "";
@@ -203,7 +184,7 @@ function apiRootUrlFromSandboxApiUrl(sandboxApiUrl) {
203
184
  return sandboxApiUrl.slice(0, -suffix.length);
204
185
  }
205
186
  function isOpenPondHostedApiHost(hostname) {
206
- return hostname === "api.openpond.ai" || hostname === "staging-api.openpond.ai" || hostname.startsWith("api") && hostname.endsWith(".openpond.ai");
187
+ return hostname === "api.openpond.ai" || hostname.startsWith("api") && hostname.endsWith(".openpond.ai");
207
188
  }
208
189
 
209
190
  // ../../packages/cloud/dist/sandbox/client-handles.js
@@ -1781,14 +1762,14 @@ function requireToken(value) {
1781
1762
  throw new Error("OpenPond API key is required");
1782
1763
  return trimmed;
1783
1764
  }
1784
- function hostedHeaders(requestUrl, token, accept, requestId) {
1765
+ function hostedHeaders(token, accept, requestId) {
1785
1766
  const headers = new Headers();
1786
1767
  headers.set("Authorization", `Bearer ${requireToken(token)}`);
1787
1768
  headers.set("Content-Type", "application/json");
1788
1769
  headers.set("Accept", accept);
1789
1770
  headers.set("x-openpond-client", "openpond-code");
1790
1771
  headers.set("x-openpond-request-id", requestId || randomUUID());
1791
- return withVercelProtectionBypass(requestUrl, headers);
1772
+ return headers;
1792
1773
  }
1793
1774
  async function readError(response) {
1794
1775
  const text = await response.text().catch(() => "");
@@ -1834,7 +1815,7 @@ async function sendHostedChatTurn(options) {
1834
1815
  const requestUrl = `${apiBaseUrl}/chat/completions`;
1835
1816
  const response = await fetch(requestUrl, {
1836
1817
  method: "POST",
1837
- headers: hostedHeaders(requestUrl, options.token, "application/json", options.requestId),
1818
+ headers: hostedHeaders(options.token, "application/json", options.requestId),
1838
1819
  body: JSON.stringify(buildHostedChatBody(options, false)),
1839
1820
  signal: options.signal
1840
1821
  });
@@ -1845,7 +1826,6 @@ async function sendHostedChatTurn(options) {
1845
1826
  }
1846
1827
 
1847
1828
  export {
1848
- withVercelProtectionBypass,
1849
1829
  OpenPondApiError,
1850
1830
  apiFetch,
1851
1831
  readApiJson,
@@ -8,14 +8,20 @@ import {
8
8
  HarnessTargetedValidationReceiptSchema,
9
9
  HarnessTurnSnapshotSchema,
10
10
  HarnessWorkspaceSchema,
11
+ ImmutableReleaseRefSchema,
11
12
  LifecycleContractSchema,
13
+ ModelProjectSchema,
12
14
  OptimizerTrainingSampleSchema,
15
+ RefinerBindingSchema,
16
+ RefinerReleaseSchema,
17
+ RefinerReviewProfileSchema,
18
+ RefinerTransitionReceiptSchema,
13
19
  SandboxTemplateManifestSchema,
14
20
  SandboxTemplateValidationDiagnosticSchema,
15
21
  ToolDeclarationSchema,
16
22
  createHarnessAdvanceReceipt,
17
23
  validateConnectedAppToolCallRequest
18
- } from "./chunk-MUS7KPXK.js";
24
+ } from "./chunk-BLFIIAWZ.js";
19
25
  import {
20
26
  yaml
21
27
  } from "./chunk-X7ZG4TSW.js";
@@ -23,15 +29,10 @@ import {
23
29
  DEFAULT_OPENPOND_API_BASE_URL,
24
30
  DEFAULT_OPENPOND_WEB_BASE_URL,
25
31
  apiFetch
26
- } from "./chunk-JGOP4GCK.js";
32
+ } from "./chunk-JTHL5XJ2.js";
27
33
  import {
28
- ImmutableReleaseRefSchema,
29
- RefinerBindingSchema,
30
- RefinerReleaseSchema,
31
- RefinerReviewProfileSchema,
32
- RefinerTransitionReceiptSchema,
33
34
  external_exports
34
- } from "./chunk-MLWNI3WG.js";
35
+ } from "./chunk-FQS2QL5F.js";
35
36
 
36
37
  // ../../packages/cloud/dist/profile/profile-skills.js
37
38
  import { createHash } from "node:crypto";
@@ -10189,6 +10190,7 @@ var RewardModelRunReceiptSchema = external_exports.object({
10189
10190
  bucketHead: ImmutableReleaseRefSchema2.nullable(),
10190
10191
  processorRelease: ImmutableReleaseRefSchema2,
10191
10192
  optimizerEvidence: ImmutableReleaseRefSchema2,
10193
+ managedExecutionReceipt: ImmutableReleaseRefSchema2.nullable().default(null),
10192
10194
  parameterDeltaHash: ReleaseHashSchema,
10193
10195
  cleanup: external_exports.object({
10194
10196
  computeReleased: external_exports.boolean(),
@@ -10691,7 +10693,7 @@ var LearnedPreferenceRewardBindingSchema = external_exports.object({
10691
10693
  runtime: RewardModelRuntimeSchema,
10692
10694
  processorRelease: external_exports.object({ id: IdSchema7, contentHash: HashSchema6 }).strict(),
10693
10695
  rewardComposerRelease: external_exports.object({ id: IdSchema7, contentHash: HashSchema6 }).strict(),
10694
- qualificationKind: external_exports.enum(["synthetic_smoke", "human_heldout"])
10696
+ executionReceipt: external_exports.object({ id: IdSchema7, contentHash: HashSchema6 }).strict()
10695
10697
  }).strict();
10696
10698
  var PolicyOptimizationContractSchema = external_exports.object({
10697
10699
  schemaVersion: external_exports.literal("openpond.policyOptimization.v1"),
@@ -11677,74 +11679,7 @@ var ModelRunPresetSchema = external_exports.enum([
11677
11679
  "custom",
11678
11680
  "small_experiment"
11679
11681
  ]);
11680
- var ModelProjectSchema = external_exports.object({
11681
- schemaVersion: external_exports.literal("openpond.modelProject.v1"),
11682
- id: TrainingIdSchema,
11683
- profileId: TrainingIdSchema,
11684
- revision: external_exports.number().int().positive().default(1),
11685
- name: external_exports.string().trim().min(1).max(200),
11686
- objective: external_exports.string().trim().max(5e3).nullable(),
11687
- defaultBaseModel: BaseModelPreferenceSchema.nullable(),
11688
- defaultDestinationId: TrainingDestinationIdSchema.nullable(),
11689
- hosted: external_exports.object({
11690
- schemaVersion: external_exports.literal("openpond.hostedModelProjectLink.v1"),
11691
- teamId: TrainingIdSchema,
11692
- projectId: TrainingIdSchema,
11693
- portableProjectId: TrainingIdSchema,
11694
- revision: external_exports.number().int().positive(),
11695
- etag: TrainingHashSchema,
11696
- syncedSourceRevision: external_exports.number().int().positive(),
11697
- syncedAt: TrainingTimestampSchema,
11698
- tasksets: external_exports.array(external_exports.object({
11699
- localTasksetId: TrainingIdSchema,
11700
- releaseId: TrainingIdSchema,
11701
- releaseRevision: external_exports.number().int().positive(),
11702
- releaseHash: TrainingHashSchema,
11703
- hostedTasksetId: TrainingIdSchema,
11704
- syncedAt: TrainingTimestampSchema
11705
- }).strict()).max(1e4).default([])
11706
- }).strict().nullable().default(null),
11707
- tasksetSyncs: external_exports.array(external_exports.object({
11708
- localTasksetId: TrainingIdSchema,
11709
- releaseId: TrainingIdSchema,
11710
- releaseRevision: external_exports.number().int().positive(),
11711
- releaseHash: TrainingHashSchema,
11712
- state: external_exports.enum(["syncing", "synced", "sync_failed"]),
11713
- hostedTasksetId: TrainingIdSchema.nullable().default(null),
11714
- lastAttemptAt: TrainingTimestampSchema,
11715
- syncedAt: TrainingTimestampSchema.nullable().default(null),
11716
- lastError: external_exports.string().trim().min(1).max(5e3).nullable().default(null)
11717
- }).strict()).max(1e4).default([]),
11718
- createdAt: TrainingTimestampSchema,
11719
- updatedAt: TrainingTimestampSchema
11720
- });
11721
- var ModelRunDraftSchema = external_exports.object({
11722
- schemaVersion: external_exports.literal("openpond.modelRunDraft.v1"),
11723
- id: TrainingIdSchema,
11724
- profileId: TrainingIdSchema,
11725
- modelId: TrainingIdSchema,
11726
- status: external_exports.enum(["draft", "ready_to_run", "launched", "cancelled"]),
11727
- title: external_exports.string().trim().min(1).max(200),
11728
- datasetMode: external_exports.enum(["existing", "build"]).nullable(),
11729
- tasksetRef: external_exports.object({
11730
- id: TrainingIdSchema,
11731
- revision: external_exports.number().int().positive(),
11732
- contentHash: TrainingHashSchema
11733
- }).nullable(),
11734
- harnessRelease: ImmutableReleaseRefSchema2.nullable().optional(),
11735
- tasksetRelease: ImmutableReleaseRefSchema2.nullable().optional(),
11736
- datasetCreationId: TrainingIdSchema.nullable(),
11737
- buildIntent: DatasetBuildIntentSchema.nullable(),
11738
- buildSpecification: DatasetBuildSpecificationSchema.nullable(),
11739
- baseModel: BaseModelPreferenceSchema.nullable(),
11740
- method: TrainingMethodSchema.nullable(),
11741
- destinationId: TrainingDestinationIdSchema.nullable(),
11742
- managedRolloutPlacement: external_exports.enum(["local", "remote"]).optional(),
11743
- runPreset: ModelRunPresetSchema.nullable(),
11744
- recipe: TrainingRecipeSchema.nullable(),
11745
- createdAt: TrainingTimestampSchema,
11746
- updatedAt: TrainingTimestampSchema
11747
- });
11682
+ var ModelProjectSchema2 = ModelProjectSchema;
11748
11683
  var TrainingPlanSchema = external_exports.object({
11749
11684
  schemaVersion: external_exports.literal("openpond.trainingPlan.v1"),
11750
11685
  id: TrainingIdSchema,
@@ -11838,6 +11773,21 @@ var TrainingApprovalSchema = external_exports.object({
11838
11773
  approvedBy: TrainingIdSchema,
11839
11774
  approvedAt: TrainingTimestampSchema
11840
11775
  });
11776
+ var TrainingJobSourceSnapshotSchema = external_exports.object({
11777
+ schemaVersion: external_exports.literal("openpond.trainingJobSourceSnapshot.v1"),
11778
+ modelProjectId: TrainingIdSchema,
11779
+ sourceProjectRevision: external_exports.number().int().positive(),
11780
+ profileId: TrainingIdSchema,
11781
+ taskset: external_exports.object({
11782
+ id: TrainingIdSchema,
11783
+ revision: external_exports.number().int().positive(),
11784
+ contentHash: TrainingHashSchema
11785
+ }).strict(),
11786
+ tasksetRelease: ImmutableReleaseRefSchema2,
11787
+ harnessRelease: ImmutableReleaseRefSchema2,
11788
+ baseModel: BaseModelPreferenceSchema,
11789
+ method: TrainingMethodSchema
11790
+ }).strict();
11841
11791
  var TrainingJobStatusSchema = external_exports.enum([
11842
11792
  "queued",
11843
11793
  "starting",
@@ -11916,6 +11866,7 @@ var PolicyOptimizationMetricSchema = external_exports.object({
11916
11866
  learningRate: external_exports.number().nonnegative().nullable().default(null),
11917
11867
  policyLoss: external_exports.number().nullable(),
11918
11868
  valueLoss: external_exports.number().nullable(),
11869
+ gradientNorm: external_exports.number().nonnegative().nullable().default(null),
11919
11870
  meanReward: external_exports.number().nullable(),
11920
11871
  meanReturn: external_exports.number().nullable(),
11921
11872
  kl: external_exports.number().nullable(),
@@ -11927,6 +11878,7 @@ var PolicyOptimizationMetricSchema = external_exports.object({
11927
11878
  inputTokens: external_exports.number().int().nonnegative(),
11928
11879
  outputTokens: external_exports.number().int().nonnegative(),
11929
11880
  environmentExecutions: external_exports.number().int().nonnegative(),
11881
+ trajectoryCount: external_exports.number().int().nonnegative().nullable().default(null),
11930
11882
  costUsd: external_exports.number().nonnegative().nullable()
11931
11883
  });
11932
11884
  var ManagedTrainingRunEvidenceSchema = external_exports.object({
@@ -12138,8 +12090,7 @@ var TrainingStateResponseSchema = external_exports.object({
12138
12090
  candidates: external_exports.array(TaskCandidateSchema),
12139
12091
  minerConfig: TaskMinerConfigSchema,
12140
12092
  minerRuns: external_exports.array(TaskMinerRunSchema).default([]),
12141
- modelProjects: external_exports.array(ModelProjectSchema).default([]),
12142
- modelRunDrafts: external_exports.array(ModelRunDraftSchema).default([]),
12093
+ modelProjects: external_exports.array(ModelProjectSchema2).default([]),
12143
12094
  modelVersions: external_exports.array(ModelVersionSchema).default([]),
12144
12095
  modelRuns: external_exports.array(ModelRunSchema).default([]),
12145
12096
  rewardModelVersions: external_exports.array(RewardModelVersionSchema).default([]),
@@ -13088,6 +13039,8 @@ var AdapterValidationReceiptSchema = external_exports.object({
13088
13039
  var TrainingExecutionRefSchema = external_exports.object({
13089
13040
  runId: ReleaseIdSchema,
13090
13041
  adapterId: ReleaseIdSchema,
13042
+ protocolVersion: external_exports.enum(["openpond.training.v2", "adapter.native.v1"]).default("adapter.native.v1"),
13043
+ routeFamily: external_exports.enum(["training_v2", "adapter_native"]).default("adapter_native"),
13091
13044
  routeId: ReleaseIdSchema.optional(),
13092
13045
  providerJobId: external_exports.string().trim().min(1).max(1e3).nullable(),
13093
13046
  tenantId: ReleaseIdSchema.optional(),
@@ -13538,13 +13491,13 @@ export {
13538
13491
  TrainingDestinationCapabilitiesSchema,
13539
13492
  BaseModelCandidateSchema,
13540
13493
  TrainingCompatibilityReportSchema,
13541
- ModelProjectSchema,
13542
- ModelRunDraftSchema,
13494
+ ModelProjectSchema2 as ModelProjectSchema,
13543
13495
  TrainingPlanSchema,
13544
13496
  TrainingBundleManifestSchema,
13545
13497
  TrainingBundleExportSchema,
13546
13498
  TrainingPreparedStartSchema,
13547
13499
  TrainingApprovalSchema,
13500
+ TrainingJobSourceSnapshotSchema,
13548
13501
  TrainingJobSchema,
13549
13502
  TrainingJobEventSchema,
13550
13503
  SftStepMetricSchema,
@@ -3,7 +3,7 @@ import { createRequire as __openpondCreateRequire } from "node:module"; var requ
3
3
  // ../server/src/constants.ts
4
4
  var DEFAULT_HOST = "127.0.0.1";
5
5
  var DEFAULT_PORT = 17874;
6
- var VERSION = "0.0.68";
6
+ var VERSION = "0.0.69";
7
7
  var HOSTED_CHAT_SYSTEM_PROMPT = "You are OpenPond Chat. Respond in the user's language. If the user's latest message is language-neutral, ambiguous, or only a short test, respond in English. Be concise and directly answer the latest request. Do not use emojis. Use Markdown when it improves scanability. If you emit reasoning or thinking content, keep it sparse and user-readable: at most one short sentence for major progress, decisions, or blockers. Omit reasoning for routine searches, reads, tool calls, and obvious next steps. Do not restate the user request, narrate every action, or include code blocks, code excerpts, diffs, raw tool payloads, or markdown examples in reasoning. Put necessary code or exact snippets only in the final assistant answer. When the user asks to show or preview an image that is available as a workspace path or signed image URL, use Markdown image syntax like ![description](path-or-url) instead of a bare path or raw HTML. For workspace-backed answers, use a Codex-style shape: brief outcome first, then Changed Files if files changed, then Verification if checks ran. End with a concise final answer that summarizes the result and verification when relevant. Do not mention raw tool JSON, internal repo paths, or origin/remote URLs unless the user explicitly asks for them or they are necessary to explain a git/deploy failure.";
8
8
  var APP_PREFERENCES_CACHE_TYPE = "app_preferences";
9
9
  var APP_PREFERENCES_CACHE_KEY = "global";