openpond 0.0.49 → 0.0.51

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 (133) hide show
  1. package/dist/chunks/{app-layer-E2JWCA6D.js → app-layer-DCUTQ4TM.js} +2 -2
  2. package/dist/chunks/{app-server-runtime-OWEIHFEU.js → app-server-runtime-Q3IGU5YB.js} +6 -6
  3. package/dist/chunks/{apps-VQDIVGST.js → apps-JDRCDAPE.js} +2 -2
  4. package/dist/chunks/{chunk-7G472COA.js → chunk-35OYRVVH.js} +1491 -4
  5. package/dist/chunks/{chunk-3BR4ACFF.js → chunk-3PYU3XCS.js} +484 -201
  6. package/dist/chunks/{chunk-NR2N6JAC.js → chunk-CSN3DLWJ.js} +1 -1
  7. package/dist/chunks/{chunk-ZJBJQCQZ.js → chunk-EJURKADM.js} +4 -2
  8. package/dist/chunks/{chunk-NRLI3S72.js → chunk-IGSEFSMA.js} +187 -21
  9. package/dist/chunks/{chunk-UJV3UYLP.js → chunk-J4LLKY6E.js} +1 -1
  10. package/dist/chunks/{chunk-64LWPRGN.js → chunk-LYEXNSCO.js} +2 -2
  11. package/dist/chunks/{chunk-LRLDBKTI.js → chunk-PFNX5XOT.js} +1 -1
  12. package/dist/chunks/{chunk-QD4FR3O4.js → chunk-R4PRXXTC.js} +40 -35
  13. package/dist/chunks/{chunk-CNIMJPM5.js → chunk-UDTHREHB.js} +2231 -2125
  14. package/dist/chunks/{chunk-7M4HGT5X.js → chunk-V3HADQL5.js} +1 -1
  15. package/dist/chunks/{cli-T6TTMVSU.js → cli-2FTM4SXH.js} +5 -5
  16. package/dist/chunks/{core-commands-UW4XTGXK.js → core-commands-5BRR7TU4.js} +3 -3
  17. package/dist/chunks/{desktop-test-JTBPE7CH.js → desktop-test-EQ2BGZOM.js} +2 -2
  18. package/dist/chunks/{extension-VP7LMA32.js → extension-V3NZ7MU7.js} +305 -170
  19. package/dist/chunks/{help-OZNCHHO3.js → help-WJBMX37U.js} +1 -1
  20. package/dist/chunks/{opchat-RY3QU5UJ.js → opchat-W7DSKNNB.js} +2 -2
  21. package/dist/chunks/{organizations-GLKSXK3Q.js → organizations-RHOF5H4Z.js} +4 -4
  22. package/dist/chunks/{profile-JWUYJF23.js → profile-B62ZWPTQ.js} +3 -3
  23. package/dist/chunks/{project-agent-L4EB7QFO.js → project-agent-QA25HHDV.js} +2 -2
  24. package/dist/chunks/{sandbox-command-26255MSV.js → sandbox-command-JFEVPU4X.js} +2 -2
  25. package/dist/chunks/{sandbox-template-6UDA3AEY.js → sandbox-template-GEWTAWAR.js} +3 -3
  26. package/dist/chunks/{src-7S66FU4P.js → src-JOTV67WO.js} +4944 -3831
  27. package/dist/chunks/{src-GCZ2GMG3.js → src-P2BL3KCV.js} +3 -4
  28. package/dist/chunks/{teams-bot-PO3GOLWU.js → teams-bot-ODSMRNE4.js} +2 -2
  29. package/dist/chunks/{training-BR5A7SPU.js → training-5CPTZRVC.js} +81 -2
  30. package/dist/chunks/{workspaces-26IF6TQV.js → workspaces-7YHBJG5P.js} +2 -2
  31. package/dist/cli.js +13 -13
  32. package/dist/index.js +7 -5
  33. package/dist/profile/profile-git.d.ts +22 -0
  34. package/dist/skills/openpond-taskset-authoring/SKILL.md +9 -1
  35. package/dist/skills/openpond-taskset-authoring/artifact.json +10 -5
  36. package/dist/skills/openpond-taskset-authoring/references/benchmarking.md +26 -0
  37. package/dist/web/assets/{AppDialog-BTOxCNC5.js → AppDialog-DylZeiI-.js} +1 -1
  38. package/dist/web/assets/{AppsView-Cm5x09IS.js → AppsView-Bz6C0a1u.js} +1 -1
  39. package/dist/web/assets/{BrowserSidebar-CIPh5JIn.js → BrowserSidebar-xXFxZP2-.js} +1 -1
  40. package/dist/web/assets/CommandMenu-C9k5VdaR.js +1 -0
  41. package/dist/web/assets/CommunityView-DaIS0cHw.css +1 -0
  42. package/dist/web/assets/CommunityView-DcJlUNgd.js +1 -0
  43. package/dist/web/assets/{ComposerCreateImproveStrip-CW2QuI7r.js → ComposerCreateImproveStrip-Yt3irJVo.js} +1 -1
  44. package/dist/web/assets/{GetStartedView--CbCnzFQ.js → GetStartedView-BhD0Ij7c.js} +1 -1
  45. package/dist/web/assets/LabModelVersionDetailPage-B-OoSJYT.js +1 -0
  46. package/dist/web/assets/LabSkillSidebar-dqdSTmHG.js +1 -0
  47. package/dist/web/assets/LabsRoute-BMPI4vB8.js +3 -0
  48. package/dist/web/assets/LabsRoute-DDTgtCul.css +1 -0
  49. package/dist/web/assets/MainChatThread-B0ajKiNL.js +2 -0
  50. package/dist/web/assets/{MainPane-Bky_Rqcx.css → MainPane-BfVDe9f7.css} +1 -1
  51. package/dist/web/assets/MainPane-COs4xUGo.js +6 -0
  52. package/dist/web/assets/{MarkdownText-DTBS9xe7.js → MarkdownText-CzZ60aWs.js} +4 -4
  53. package/dist/web/assets/Messages-DGrK4iIj.js +9 -0
  54. package/dist/web/assets/{NativeSkillSidebar-DSoPD42b.js → NativeSkillSidebar-BkpgGLSO.js} +1 -1
  55. package/dist/web/assets/{NewProjectDialog-CmXg2GK7.js → NewProjectDialog-BOdCdNcG.js} +1 -1
  56. package/dist/web/assets/OutputsPage-CSBWIFdi.js +1 -0
  57. package/dist/web/assets/RightChatPanelStack-PZR6NYJj.js +1 -0
  58. package/dist/web/assets/ScheduledWorkPage-WXLnwju_.js +1 -0
  59. package/dist/web/assets/{SettingsView-CrXwXjZ1.css → SettingsView-C39BqlSI.css} +1 -1
  60. package/dist/web/assets/SettingsView-CQJoEx-y.js +6 -0
  61. package/dist/web/assets/{TeamChatView-CB_0oRid.js → TeamChatView-BRnuD-lV.js} +2 -2
  62. package/dist/web/assets/TeamChatView-Br3VdxhD.css +1 -0
  63. package/dist/web/assets/{TerminalOverlay-XhABQsCB.js → TerminalOverlay-B5m8j4_C.js} +1 -1
  64. package/dist/web/assets/{TrainingCreationPanel-ChsDr2GP.js → TrainingCreationPanel-CA1rt7XZ.js} +1 -1
  65. package/dist/web/assets/{TrainingDraftPanel-CDlpnno6.js → TrainingDraftPanel-C0p3GP1n.js} +1 -1
  66. package/dist/web/assets/{UsageSettingsSection-NbX7_3Uz.js → UsageSettingsSection-CpIKj4p-.js} +1 -1
  67. package/dist/web/assets/WorkspaceDiffPanel-BXk8mdZB.js +14 -0
  68. package/dist/web/assets/WorkspaceEnvironmentMenu-BO60uNVj.js +32 -0
  69. package/dist/web/assets/{WorkspaceGitDialogs-C0PMpVfj.js → WorkspaceGitDialogs-hWBfhgaP.js} +1 -1
  70. package/dist/web/assets/{WorkspaceMonacoEditor-6QNGzQUi.js → WorkspaceMonacoEditor-ULPyacH8.js} +3 -3
  71. package/dist/web/assets/{arrow-up-right-Cx2xjktp.js → arrow-up-right-CkfCgokz.js} +1 -1
  72. package/dist/web/assets/{chevron-up-UF_r7JHT.js → chevron-up-B5URpgIH.js} +1 -1
  73. package/dist/web/assets/{circle-alert-BUHAQ7Du.js → circle-alert-CAvjRdlQ.js} +1 -1
  74. package/dist/web/assets/{cloud-upload-Cc_ZQEAm.js → cloud-upload-DeQEwz1o.js} +1 -1
  75. package/dist/web/assets/{cssMode-CrigFsxI.js → cssMode-B4V5a3OX.js} +1 -1
  76. package/dist/web/assets/folder-DgS_U9Lq.js +1 -0
  77. package/dist/web/assets/folder-git-2-BTtbxKWf.js +1 -0
  78. package/dist/web/assets/{folder-open-D7a4t258.js → folder-open-CqjIkaDK.js} +1 -1
  79. package/dist/web/assets/{folder-plus-CmeHTj5W.js → folder-plus-CsS0KPW5.js} +1 -1
  80. package/dist/web/assets/{git-branch-CaVUghsI.js → git-branch-BN2ijBYt.js} +1 -1
  81. package/dist/web/assets/{git-commit-horizontal-oiDAVV_Y.js → git-commit-horizontal-CVsl4u1O.js} +1 -1
  82. package/dist/web/assets/{htmlMode-CLzM5GNi.js → htmlMode-DRksGWJA.js} +1 -1
  83. package/dist/web/assets/index-CE2hroF6.css +1 -0
  84. package/dist/web/assets/index-Cxq5q-6B.js +174 -0
  85. package/dist/web/assets/index-SKvMOpII.js +1 -0
  86. package/dist/web/assets/{info-dTkimobU.js → info-DwVXRQli.js} +1 -1
  87. package/dist/web/assets/{jsonMode-BBF67cOE.js → jsonMode-eJvgtAy-.js} +1 -1
  88. package/dist/web/assets/{lspLanguageFeatures-DHtN2nxz.js → lspLanguageFeatures-DCk7zUI-.js} +1 -1
  89. package/dist/web/assets/{monaco.contribution-DtM9AdPi.js → monaco.contribution-B02C5mDa.js} +2 -2
  90. package/dist/web/assets/{monaco.contribution-BClTZJd2.js → monaco.contribution-CPnN-lZN.js} +2 -2
  91. package/dist/web/assets/{monaco.contribution-riAIDf7J.js → monaco.contribution-DWVguH46.js} +2 -2
  92. package/dist/web/assets/{monaco.contribution-C_GWU01R.js → monaco.contribution-WGT1eYvk.js} +2 -2
  93. package/dist/web/assets/{play-CjWTsI9z.js → play-DGCzapdE.js} +1 -1
  94. package/dist/web/assets/{python-CvZQM_g2.js → python-DRPzruv8.js} +1 -1
  95. package/dist/web/assets/{refresh-cw-CeHT_tXT.js → refresh-cw-BKF4NhDI.js} +1 -1
  96. package/dist/web/assets/{save-CmJ92Odx.js → save-DQXtfx_4.js} +1 -1
  97. package/dist/web/assets/{square-B00f_944.js → square-Dp5eGICS.js} +1 -1
  98. package/dist/web/assets/square-pen-j-mZ_UkO.js +1 -0
  99. package/dist/web/assets/{toggleHighContrast-C6N52VOS.js → toggleHighContrast-wDmA5YPb.js} +1 -1
  100. package/dist/web/assets/{training-model-data-B7-1Bxil.js → training-model-data-V8276E5q.js} +1 -1
  101. package/dist/web/assets/{tsMode-CDIfvnHn.js → tsMode-DELTv39m.js} +1 -1
  102. package/dist/web/assets/{upload-DK0-5jXz.js → upload-_rNli8wK.js} +1 -1
  103. package/dist/web/assets/{useLocalAgentSchedules-BUkZjV9E.js → useLocalAgentSchedules-DRVUfTbv.js} +1 -1
  104. package/dist/web/assets/wifi-off-uKPwd8A7.js +1 -0
  105. package/dist/web/assets/{workers-BfcjsZ3C.js → workers-CXbluSB3.js} +1 -1
  106. package/dist/web/assets/{yaml-CNqgAihH.js → yaml-BMqi-3ui.js} +1 -1
  107. package/dist/web/index.html +2 -2
  108. package/docs/command-reference.md +6 -1
  109. package/package.json +1 -1
  110. package/dist/web/assets/CommandMenu-DdR82TLd.js +0 -1
  111. package/dist/web/assets/CommunityView-DSik4sd2.css +0 -1
  112. package/dist/web/assets/CommunityView-Dqu4cos1.js +0 -1
  113. package/dist/web/assets/LabModelVersionDetailPage-BPUvR5XP.js +0 -1
  114. package/dist/web/assets/LabSkillSidebar-CnuyFZ1G.js +0 -1
  115. package/dist/web/assets/LabsRoute-CYk2dzQp.js +0 -3
  116. package/dist/web/assets/LabsRoute-CoSPO4HR.css +0 -1
  117. package/dist/web/assets/MainChatThread-0Tc95p0t.js +0 -2
  118. package/dist/web/assets/MainPane-Bke4JEHC.js +0 -6
  119. package/dist/web/assets/Messages-Bae_sFx5.js +0 -9
  120. package/dist/web/assets/OutputsPage-XmIreC0M.js +0 -1
  121. package/dist/web/assets/RightChatPanelStack-BMOtbjus.js +0 -1
  122. package/dist/web/assets/ScheduledWorkPage-Cn5a9VLV.js +0 -1
  123. package/dist/web/assets/SettingsView-DXF8z3P2.js +0 -6
  124. package/dist/web/assets/TeamChatView-Cgxm-pKA.css +0 -1
  125. package/dist/web/assets/WorkspaceDiffPanel-jaJU08NH.js +0 -14
  126. package/dist/web/assets/WorkspaceEnvironmentMenu-D0nvQmmj.js +0 -32
  127. package/dist/web/assets/index-De6p2npi.js +0 -1
  128. package/dist/web/assets/index-UUM3pwfd.css +0 -1
  129. package/dist/web/assets/index-Ure41UF0.js +0 -178
  130. package/dist/web/assets/monitor-POfnZCWw.js +0 -1
  131. package/dist/web/assets/reply-BkH8nKWG.js +0 -1
  132. package/dist/web/assets/square-pen-LHr8bFfZ.js +0 -1
  133. package/dist/web/assets/wifi-off-BQGq-son.js +0 -1
@@ -14,7 +14,7 @@ import {
14
14
  ToolDeclarationSchema,
15
15
  createHarnessAdvanceReceipt,
16
16
  validateConnectedAppToolCallRequest
17
- } from "./chunk-7G472COA.js";
17
+ } from "./chunk-35OYRVVH.js";
18
18
  import {
19
19
  external_exports,
20
20
  yaml
@@ -243,10 +243,10 @@ function sha256Hex(contents) {
243
243
 
244
244
  // ../../packages/cloud/dist/profile/local-profile.js
245
245
  import { createRequire } from "node:module";
246
- import { createHash as createHash3, randomUUID as randomUUID2 } from "node:crypto";
246
+ import { createHash as createHash3, randomUUID as randomUUID3 } from "node:crypto";
247
247
  import { spawn as spawn2 } from "node:child_process";
248
248
  import { existsSync as existsSync4 } from "node:fs";
249
- import { cp, mkdir, readFile as readFile5, readdir as readdir2, rename, rm, symlink, writeFile as writeFile2 } from "node:fs/promises";
249
+ import { cp, mkdir, readFile as readFile5, readdir as readdir2, rename, rm as rm2, symlink, writeFile as writeFile2 } from "node:fs/promises";
250
250
  import path8 from "node:path";
251
251
 
252
252
  // ../../packages/cloud/dist/config.js
@@ -1488,8 +1488,9 @@ function text3(value) {
1488
1488
 
1489
1489
  // ../../packages/cloud/dist/profile/profile-git.js
1490
1490
  import { spawn } from "node:child_process";
1491
+ import { randomUUID as randomUUID2 } from "node:crypto";
1491
1492
  import { existsSync as existsSync3 } from "node:fs";
1492
- import { readFile as readFile3, writeFile } from "node:fs/promises";
1493
+ import { readFile as readFile3, rm, writeFile } from "node:fs/promises";
1493
1494
  import path5 from "node:path";
1494
1495
  var PROFILE_REPO_GITIGNORE = [
1495
1496
  "**/node_modules/",
@@ -1634,6 +1635,80 @@ async function commitProfileChanges(repoPath, message) {
1634
1635
  async function profileGitHead(repoPath) {
1635
1636
  return gitText(repoPath, ["rev-parse", "HEAD"]);
1636
1637
  }
1638
+ async function commitProfileBenchmarkRef(input) {
1639
+ const state = await loadProfileGitState(input.repoPath);
1640
+ if (!state.isRepo) {
1641
+ throw new Error(state.error ?? "Active OpenPond profile source is not a Git repo.");
1642
+ }
1643
+ const baseCommit = input.baseCommit ?? state.head;
1644
+ if (!baseCommit)
1645
+ throw new Error("A Profile benchmark requires an admitted Git commit.");
1646
+ const runSegment = safeGitSegment(input.runId);
1647
+ const ref = `refs/openpond/benchmarks/${runSegment}`;
1648
+ const existing = await gitText(input.repoPath, ["rev-parse", "--verify", ref]);
1649
+ if (existing) {
1650
+ return {
1651
+ ref,
1652
+ commit: existing,
1653
+ baseCommit,
1654
+ paths: input.files.map((file) => safeGitPath(file.path)).sort()
1655
+ };
1656
+ }
1657
+ const files = input.files.map((file) => ({ ...file, path: safeGitPath(file.path) })).sort((left, right) => left.path.localeCompare(right.path));
1658
+ if (!files.length)
1659
+ throw new Error("A Profile benchmark commit requires at least one file.");
1660
+ if (new Set(files.map((file) => file.path)).size !== files.length) {
1661
+ throw new Error("A Profile benchmark commit cannot contain duplicate paths.");
1662
+ }
1663
+ const indexPath = path5.join(input.repoPath, ".git", `openpond-benchmark-index-${randomUUID2()}`);
1664
+ const env = {
1665
+ ...process.env,
1666
+ GIT_INDEX_FILE: indexPath,
1667
+ GIT_AUTHOR_NAME: process.env.GIT_AUTHOR_NAME || "OpenPond",
1668
+ GIT_AUTHOR_EMAIL: process.env.GIT_AUTHOR_EMAIL || "openpond@example.invalid",
1669
+ GIT_COMMITTER_NAME: process.env.GIT_COMMITTER_NAME || "OpenPond",
1670
+ GIT_COMMITTER_EMAIL: process.env.GIT_COMMITTER_EMAIL || "openpond@example.invalid"
1671
+ };
1672
+ try {
1673
+ await requireGitSuccess(input.repoPath, ["read-tree", baseCommit], "git read-tree", { env });
1674
+ for (const file of files) {
1675
+ const blob = await requireGitSuccess(input.repoPath, ["hash-object", "-w", "--stdin"], `git hash-object ${file.path}`, { env, input: file.contents });
1676
+ await requireGitSuccess(input.repoPath, ["update-index", "--add", "--cacheinfo", `100644,${blob.stdout.trim()},${file.path}`], `git update-index ${file.path}`, { env });
1677
+ }
1678
+ const tree = await requireGitSuccess(input.repoPath, ["write-tree"], "git write-tree", { env });
1679
+ const commit = await requireGitSuccess(input.repoPath, [
1680
+ "commit-tree",
1681
+ tree.stdout.trim(),
1682
+ "-p",
1683
+ baseCommit,
1684
+ "-m",
1685
+ input.message ?? `Preserve OpenPond benchmark ${input.runId}`
1686
+ ], "git commit-tree", { env });
1687
+ await requireGitSuccess(input.repoPath, ["update-ref", ref, commit.stdout.trim()], "git update-ref", { env });
1688
+ return {
1689
+ ref,
1690
+ commit: commit.stdout.trim(),
1691
+ baseCommit,
1692
+ paths: files.map((file) => file.path)
1693
+ };
1694
+ } finally {
1695
+ await rm(indexPath, { force: true }).catch(() => void 0);
1696
+ }
1697
+ }
1698
+ function safeGitSegment(value) {
1699
+ const segment = value.trim().replace(/[^A-Za-z0-9._-]+/g, "-");
1700
+ if (!segment || segment === "." || segment === "..") {
1701
+ throw new Error("Benchmark run id cannot form a safe Git ref.");
1702
+ }
1703
+ return segment;
1704
+ }
1705
+ function safeGitPath(value) {
1706
+ const normalized = value.trim().replaceAll("\\", "/");
1707
+ if (!normalized || normalized.startsWith("/") || normalized.split("/").some((segment) => !segment || segment === "." || segment === "..") || normalized.includes("\0")) {
1708
+ throw new Error(`Unsafe benchmark Git path: ${value}`);
1709
+ }
1710
+ return normalized;
1711
+ }
1637
1712
  async function hasGitHead(repoPath) {
1638
1713
  const result = await runGitCommand(repoPath, ["rev-parse", "--verify", "HEAD"]);
1639
1714
  return result.code === 0;
@@ -1724,8 +1799,18 @@ async function runGitCommand(repoPath, args, options = {}) {
1724
1799
  proc.on("close", (code) => {
1725
1800
  resolve({ code, stdout, stderr });
1726
1801
  });
1802
+ if (options.input !== void 0)
1803
+ proc.stdin?.end(options.input);
1804
+ else
1805
+ proc.stdin?.end();
1727
1806
  });
1728
1807
  }
1808
+ async function requireGitSuccess(repoPath, args, label, options = {}) {
1809
+ const result = await runGitCommand(repoPath, args, options);
1810
+ if (result.code !== 0)
1811
+ throw new Error(gitFailureMessage(label, result));
1812
+ return result;
1813
+ }
1729
1814
 
1730
1815
  // ../../packages/cloud/dist/profile/profile-source-upload.js
1731
1816
  import { stat as stat3 } from "node:fs/promises";
@@ -2239,8 +2324,8 @@ async function installAgentPackageIntoActiveProfile(input) {
2239
2324
  if (targetExists && input.overwrite !== true) {
2240
2325
  throw new Error(`Agent "${agentPackage.agentId}" already exists. Confirm replacement to install this version.`);
2241
2326
  }
2242
- const temporary = path8.join(agentsRoot, `.${agentPackage.agentId}.${randomUUID2()}.installing`);
2243
- const backup = path8.join(agentsRoot, `.${agentPackage.agentId}.${randomUUID2()}.backup`);
2327
+ const temporary = path8.join(agentsRoot, `.${agentPackage.agentId}.${randomUUID3()}.installing`);
2328
+ const backup = path8.join(agentsRoot, `.${agentPackage.agentId}.${randomUUID3()}.backup`);
2244
2329
  const manifest = await readProfileManifest(active.config.repoPath);
2245
2330
  const originalManifest = JSON.stringify(manifest);
2246
2331
  let movedExisting = false;
@@ -2269,11 +2354,11 @@ async function installAgentPackageIntoActiveProfile(input) {
2269
2354
  };
2270
2355
  await writeProfileManifest(active.config.repoPath, manifest);
2271
2356
  if (movedExisting)
2272
- await rm(backup, { recursive: true, force: true });
2357
+ await rm2(backup, { recursive: true, force: true });
2273
2358
  } catch (error) {
2274
- await rm(temporary, { recursive: true, force: true });
2359
+ await rm2(temporary, { recursive: true, force: true });
2275
2360
  if (installed)
2276
- await rm(target, { recursive: true, force: true });
2361
+ await rm2(target, { recursive: true, force: true });
2277
2362
  if (movedExisting && existsSync4(backup))
2278
2363
  await rename(backup, target);
2279
2364
  if (JSON.stringify(manifest) !== originalManifest) {
@@ -3708,9 +3793,9 @@ function invalidSource(source) {
3708
3793
  }
3709
3794
 
3710
3795
  // ../../packages/cloud/dist/extensions/extension-manager.js
3711
- import { createHash as createHash5, randomUUID as randomUUID3 } from "node:crypto";
3796
+ import { createHash as createHash5, randomUUID as randomUUID4 } from "node:crypto";
3712
3797
  import { existsSync as existsSync5 } from "node:fs";
3713
- import { mkdir as mkdir2, readFile as readFile6, rename as rename2, rm as rm2, stat as stat4, writeFile as writeFile3 } from "node:fs/promises";
3798
+ import { mkdir as mkdir2, readFile as readFile6, rename as rename2, rm as rm3, stat as stat4, writeFile as writeFile3 } from "node:fs/promises";
3714
3799
  import path10 from "node:path";
3715
3800
  var REGISTRY_SCHEMA_VERSION = 1;
3716
3801
  var OPERATION_LOCK_STALE_MS = 2 * 60 * 1e3;
@@ -3853,7 +3938,7 @@ function createGithubExtensionManager(options = {}) {
3853
3938
  const registry = await readRegistry(registryPath);
3854
3939
  const existing = requireInstalled(registry, identity.id);
3855
3940
  const target = extensionDirectory(rootPath, identity.owner, identity.repo);
3856
- const trash = `${target}.${randomUUID3()}.remove`;
3941
+ const trash = `${target}.${randomUUID4()}.remove`;
3857
3942
  if (existsSync5(target))
3858
3943
  await rename2(target, trash);
3859
3944
  try {
@@ -3861,7 +3946,7 @@ function createGithubExtensionManager(options = {}) {
3861
3946
  ...current,
3862
3947
  extensions: current.extensions.filter((extension) => extension.id !== existing.id)
3863
3948
  }));
3864
- await rm2(trash, { recursive: true, force: true });
3949
+ await rm3(trash, { recursive: true, force: true });
3865
3950
  return existing;
3866
3951
  } catch (error) {
3867
3952
  if (existsSync5(trash) && !existsSync5(target))
@@ -3927,11 +4012,11 @@ function createGithubExtensionManager(options = {}) {
3927
4012
  async function materializeExtension(input) {
3928
4013
  const preview = input.resolution.preview;
3929
4014
  const target = extensionDirectory(input.rootPath, preview.owner, preview.repo);
3930
- const temporary = `${target}.${randomUUID3()}.install`;
4015
+ const temporary = `${target}.${randomUUID4()}.install`;
3931
4016
  const backup = backupDirectory(input.rootPath, preview.id);
3932
4017
  const current = path10.join(temporary, "current");
3933
- await rm2(temporary, { recursive: true, force: true });
3934
- await rm2(backup, { recursive: true, force: true });
4018
+ await rm3(temporary, { recursive: true, force: true });
4019
+ await rm3(backup, { recursive: true, force: true });
3935
4020
  await mkdir2(current, { recursive: true, mode: 448 });
3936
4021
  try {
3937
4022
  await input.github.download(input.resolution, async (relativePath, bytes, executable) => {
@@ -3948,7 +4033,7 @@ async function materializeExtension(input) {
3948
4033
  await rename2(temporary, target);
3949
4034
  return extension;
3950
4035
  } catch (error) {
3951
- await rm2(temporary, { recursive: true, force: true });
4036
+ await rm3(temporary, { recursive: true, force: true });
3952
4037
  if (existsSync5(backup) && !existsSync5(target))
3953
4038
  await rename2(backup, target);
3954
4039
  throw error;
@@ -3969,13 +4054,13 @@ function installedExtension(preview, target, installedAt, updatedAt) {
3969
4054
  };
3970
4055
  }
3971
4056
  async function finalizeMaterialization(rootPath, id) {
3972
- await rm2(backupDirectory(rootPath, id), { recursive: true, force: true });
4057
+ await rm3(backupDirectory(rootPath, id), { recursive: true, force: true });
3973
4058
  }
3974
4059
  async function rollbackMaterialization(rootPath, id) {
3975
4060
  const identity = parseGithubExtensionSource(id.replace(/^github:/, ""));
3976
4061
  const target = extensionDirectory(rootPath, identity.owner, identity.repo);
3977
4062
  const backup = backupDirectory(rootPath, id);
3978
- await rm2(target, { recursive: true, force: true });
4063
+ await rm3(target, { recursive: true, force: true });
3979
4064
  if (existsSync5(backup))
3980
4065
  await rename2(backup, target);
3981
4066
  }
@@ -4139,7 +4224,7 @@ async function withExtensionLock(rootPath, id, operation) {
4139
4224
  throw error;
4140
4225
  const lockStat = await stat4(lockPath).catch(() => null);
4141
4226
  if (lockStat && Date.now() - lockStat.mtimeMs > OPERATION_LOCK_STALE_MS) {
4142
- await rm2(lockPath, { recursive: true, force: true });
4227
+ await rm3(lockPath, { recursive: true, force: true });
4143
4228
  continue;
4144
4229
  }
4145
4230
  if (Date.now() >= deadline) {
@@ -4154,7 +4239,7 @@ async function withExtensionLock(rootPath, id, operation) {
4154
4239
  try {
4155
4240
  return await operation();
4156
4241
  } finally {
4157
- await rm2(lockPath, { recursive: true, force: true });
4242
+ await rm3(lockPath, { recursive: true, force: true });
4158
4243
  }
4159
4244
  }
4160
4245
  function extensionSort(left, right) {
@@ -4162,7 +4247,7 @@ function extensionSort(left, right) {
4162
4247
  }
4163
4248
 
4164
4249
  // ../../packages/cloud/dist/profile/hosted-run-idempotency.js
4165
- import { createHash as createHash6, randomUUID as randomUUID4 } from "node:crypto";
4250
+ import { createHash as createHash6, randomUUID as randomUUID5 } from "node:crypto";
4166
4251
  function buildHostedRunIdempotencyKey(input) {
4167
4252
  const explicit = input.explicitKey?.trim();
4168
4253
  if (explicit)
@@ -4173,7 +4258,7 @@ function buildHostedRunIdempotencyKey(input) {
4173
4258
  const base = `profile-push-run:${input.localHead}:${sourceHead}:${input.runtimeAgentId}:${targetProjectId}:${inputHash}`;
4174
4259
  if (!input.retry)
4175
4260
  return base;
4176
- return `${base}:retry:${(input.randomId ?? randomUUID4)()}`;
4261
+ return `${base}:retry:${(input.randomId ?? randomUUID5)()}`;
4177
4262
  }
4178
4263
  function hashStableJson(value) {
4179
4264
  return createHash6("sha256").update(stableJsonStringify(value)).digest("hex");
@@ -4426,7 +4511,6 @@ function sidebarFileBookmarkId(input) {
4426
4511
  var PROVIDER_IDS = [
4427
4512
  "openpond",
4428
4513
  "codex",
4429
- "local-adapter",
4430
4514
  "anthropic",
4431
4515
  "openai",
4432
4516
  "xai",
@@ -8594,6 +8678,31 @@ var DatasetRowPageSchema = external_exports.object({
8594
8678
  totalRows: external_exports.number().int().nonnegative(),
8595
8679
  returnedRows: external_exports.number().int().nonnegative()
8596
8680
  });
8681
+ var DatasetStorageSettingsSchema = external_exports.object({
8682
+ schemaVersion: external_exports.literal("openpond.datasetStorageSettings.v1"),
8683
+ datasetStorePath: external_exports.string().trim().min(1).max(4e3),
8684
+ updatedAt: TimestampSchema2
8685
+ });
8686
+ var DatasetStorageRootSchema = external_exports.object({
8687
+ id: IdSchema2,
8688
+ label: external_exports.string().trim().min(1).max(500),
8689
+ path: external_exports.string().trim().min(1).max(4e3),
8690
+ datasetStorePath: external_exports.string().trim().min(1).max(4e3),
8691
+ kind: external_exports.enum(["local", "network", "removable", "cache"]),
8692
+ configured: external_exports.boolean(),
8693
+ mounted: external_exports.boolean(),
8694
+ writable: external_exports.boolean(),
8695
+ totalBytes: external_exports.number().int().nonnegative().nullable(),
8696
+ freeBytes: external_exports.number().int().nonnegative().nullable()
8697
+ });
8698
+ var DatasetStorageStateSchema = external_exports.object({
8699
+ schemaVersion: external_exports.literal("openpond.datasetStorageState.v1"),
8700
+ settings: DatasetStorageSettingsSchema,
8701
+ storageRoots: external_exports.array(DatasetStorageRootSchema)
8702
+ });
8703
+ var UpdateDatasetStorageSettingsRequestSchema = external_exports.object({
8704
+ datasetStorePath: external_exports.string().trim().min(1).max(4e3)
8705
+ });
8597
8706
 
8598
8707
  // ../../packages/contracts/dist/dataset-sources.js
8599
8708
  var IdSchema3 = external_exports.string().trim().min(1).max(240);
@@ -8751,6 +8860,25 @@ var TasksetStatusSchema = external_exports.enum([
8751
8860
  "failed",
8752
8861
  "archived"
8753
8862
  ]);
8863
+ var TasksetPurposeSchema = external_exports.enum(["general", "benchmark"]);
8864
+ var TasksetBenchmarkBindingSchema = external_exports.object({
8865
+ schemaVersion: external_exports.literal("openpond.tasksetBenchmark.v1"),
8866
+ definitionId: IdSchema4,
8867
+ releaseId: IdSchema4,
8868
+ releaseHash: Sha256Schema,
8869
+ managedReleasePath: external_exports.string().trim().min(1).max(1e3).refine(safeRelativeFilePath, "Benchmark release paths must remain relative."),
8870
+ adaptationSplit: TasksetSplitSchema,
8871
+ evaluationSplit: TasksetSplitSchema,
8872
+ primaryMetric: external_exports.enum([
8873
+ "foreground_tokens",
8874
+ "success_rate",
8875
+ "latency_ms",
8876
+ "cost_usd"
8877
+ ]),
8878
+ qualityGate: external_exports.enum(["none", "non_regression", "all_pass"]),
8879
+ source: external_exports.enum(["builtin", "imported"]),
8880
+ metadata: MetadataSchema6
8881
+ });
8754
8882
  var TaskCreationSurfaceSchema = external_exports.enum([
8755
8883
  "slash_train",
8756
8884
  "session_menu",
@@ -9214,7 +9342,7 @@ var TasksetReadinessReportSchema = external_exports.object({
9214
9342
  recommendedMethod: external_exports.enum(["none", "retrieval", "sft", "dpo", "grpo", "ppo", "sdft", "opd", "opsd", "sdpo"]),
9215
9343
  trainingPath: TrainingPathRecommendationSchema.nullable().default(null),
9216
9344
  methodReadiness: external_exports.array(TrainingMethodReadinessSchema).default([]),
9217
- compatibleDestinationClasses: external_exports.array(external_exports.enum(["export", "local_cpu_fixture", "custom", "hosted_managed"])),
9345
+ compatibleDestinationClasses: external_exports.array(external_exports.enum(["export", "custom", "hosted_managed"])),
9218
9346
  blockers: external_exports.array(external_exports.object({ code: IdSchema4, message: external_exports.string().trim().min(1).max(5e3), path: external_exports.string().trim().max(2e3).nullable() })).default([]),
9219
9347
  warnings: external_exports.array(external_exports.string().trim().min(1).max(5e3)).default([]),
9220
9348
  generatedAt: TimestampSchema4
@@ -9265,6 +9393,8 @@ var TasksetSchema = external_exports.object({
9265
9393
  createImproveRunId: NullableIdSchema.default(null),
9266
9394
  name: external_exports.string().trim().min(1).max(500),
9267
9395
  objective: external_exports.string().trim().min(1).max(2e4),
9396
+ purpose: TasksetPurposeSchema.default("general"),
9397
+ benchmark: TasksetBenchmarkBindingSchema.nullable().default(null),
9268
9398
  status: TasksetStatusSchema,
9269
9399
  sourceRefs: external_exports.array(TasksetSourceRefSchema).min(1).max(1e5),
9270
9400
  datasetArtifact: DatasetArtifactManifestSchema.nullable().optional(),
@@ -9282,6 +9412,20 @@ var TasksetSchema = external_exports.object({
9282
9412
  updatedAt: TimestampSchema4,
9283
9413
  metadata: MetadataSchema6
9284
9414
  }).superRefine((taskset, context) => {
9415
+ if (taskset.purpose === "benchmark" && !taskset.benchmark) {
9416
+ context.addIssue({
9417
+ code: "custom",
9418
+ message: "Benchmark Tasksets require an immutable benchmark binding.",
9419
+ path: ["benchmark"]
9420
+ });
9421
+ }
9422
+ if (taskset.purpose !== "benchmark" && taskset.benchmark) {
9423
+ context.addIssue({
9424
+ code: "custom",
9425
+ message: "Only benchmark Tasksets may carry a benchmark binding.",
9426
+ path: ["benchmark"]
9427
+ });
9428
+ }
9285
9429
  if (taskset.datasetArtifact && taskset.tasks.length > 0) {
9286
9430
  context.addIssue({
9287
9431
  code: "custom",
@@ -9693,6 +9837,204 @@ var ModelRunReceiptSchema = external_exports.object({
9693
9837
  telemetry: CorrelatedTelemetryReceiptSchema.nullable().default(null),
9694
9838
  contentHash: ReleaseHashSchema
9695
9839
  }).strict();
9840
+ var EvaluationUsageCategorySchema = external_exports.object({
9841
+ inputTokens: external_exports.number().int().nonnegative(),
9842
+ outputTokens: external_exports.number().int().nonnegative(),
9843
+ totalTokens: external_exports.number().int().nonnegative(),
9844
+ costUsd: external_exports.number().nonnegative().nullable()
9845
+ }).strict();
9846
+ var GitObjectIdSchema = external_exports.string().regex(/^(?:[a-f0-9]{40}|[a-f0-9]{64})$/);
9847
+ var ModelEvaluationAttemptSchema = external_exports.object({
9848
+ phase: external_exports.enum([
9849
+ "baseline",
9850
+ "adaptation",
9851
+ "candidate_adaptation",
9852
+ "candidate"
9853
+ ]),
9854
+ taskId: ReleaseIdSchema,
9855
+ attemptId: ReleaseIdSchema,
9856
+ sessionId: ReleaseIdSchema.nullable(),
9857
+ turnId: ReleaseIdSchema.nullable(),
9858
+ passed: external_exports.boolean(),
9859
+ score: external_exports.number().min(0).max(1).nullable(),
9860
+ failureClass: TaskFailureClassSchema.nullable(),
9861
+ inputTokens: external_exports.number().int().nonnegative(),
9862
+ outputTokens: external_exports.number().int().nonnegative(),
9863
+ totalTokens: external_exports.number().int().nonnegative(),
9864
+ latencyMs: external_exports.number().int().nonnegative(),
9865
+ costUsd: external_exports.number().nonnegative().nullable(),
9866
+ startedAt: ReleaseTimestampSchema
9867
+ }).strict();
9868
+ var ModelEvaluationTaskEfficiencyCohortSchema = external_exports.object({
9869
+ targetTaskCount: external_exports.number().int().nonnegative(),
9870
+ comparedTaskCount: external_exports.number().int().nonnegative(),
9871
+ passedTaskCount: external_exports.number().int().nonnegative(),
9872
+ failedTaskCount: external_exports.number().int().nonnegative(),
9873
+ lowerTaskCount: external_exports.number().int().nonnegative(),
9874
+ higherTaskCount: external_exports.number().int().nonnegative(),
9875
+ unchangedTaskCount: external_exports.number().int().nonnegative()
9876
+ }).strict();
9877
+ var ModelEvaluationTaskEfficiencySchema = external_exports.object({
9878
+ target: external_exports.literal("all_tasks_lower"),
9879
+ targetTaskCount: external_exports.number().int().nonnegative(),
9880
+ comparedTaskCount: external_exports.number().int().nonnegative(),
9881
+ passedTaskCount: external_exports.number().int().nonnegative(),
9882
+ failedTaskCount: external_exports.number().int().nonnegative(),
9883
+ lowerTaskCount: external_exports.number().int().nonnegative(),
9884
+ higherTaskCount: external_exports.number().int().nonnegative(),
9885
+ unchangedTaskCount: external_exports.number().int().nonnegative(),
9886
+ baselineTokens: external_exports.number().int().nonnegative(),
9887
+ refinedTokens: external_exports.number().int().nonnegative(),
9888
+ tokenDelta: external_exports.number().int(),
9889
+ tokenDeltaPercent: external_exports.number().finite().nullable(),
9890
+ complete: external_exports.boolean(),
9891
+ passed: external_exports.boolean(),
9892
+ cohorts: external_exports.object({
9893
+ adaptation: ModelEvaluationTaskEfficiencyCohortSchema,
9894
+ heldOut: ModelEvaluationTaskEfficiencyCohortSchema
9895
+ }).strict()
9896
+ }).strict();
9897
+ var ModelEvaluationUsageSchema = external_exports.object({
9898
+ baseline: EvaluationUsageCategorySchema,
9899
+ adaptation: EvaluationUsageCategorySchema,
9900
+ candidateAdaptation: EvaluationUsageCategorySchema,
9901
+ candidate: EvaluationUsageCategorySchema,
9902
+ refiner: EvaluationUsageCategorySchema,
9903
+ grader: EvaluationUsageCategorySchema
9904
+ }).strict();
9905
+ var ModelEvaluationAccountingSchema = external_exports.object({
9906
+ usage: ModelEvaluationUsageSchema,
9907
+ observedSpendUsd: external_exports.number().nonnegative(),
9908
+ attempts: external_exports.array(ModelEvaluationAttemptSchema).max(1e4)
9909
+ }).strict();
9910
+ var ModelEvaluationEvidenceSnapshotSchema = external_exports.object({
9911
+ id: ReleaseIdSchema,
9912
+ contentHash: ReleaseHashSchema,
9913
+ artifactPath: external_exports.string().trim().min(1).max(2e3)
9914
+ }).strict();
9915
+ var ModelEvaluationReceiptSchema = external_exports.object({
9916
+ schemaVersion: external_exports.literal("openpond.modelEvaluationReceipt.v1"),
9917
+ benchmarkId: ReleaseIdSchema,
9918
+ resultManifest: external_exports.object({
9919
+ id: ReleaseIdSchema,
9920
+ contentHash: ReleaseHashSchema,
9921
+ artifactPath: external_exports.string().trim().min(1).max(2e3)
9922
+ }).strict(),
9923
+ stages: external_exports.object({
9924
+ baseline: ImmutableReleaseRefSchema,
9925
+ adaptation: ImmutableReleaseRefSchema,
9926
+ refiner: ImmutableReleaseRefSchema,
9927
+ candidateAdaptation: ImmutableReleaseRefSchema,
9928
+ candidate: ImmutableReleaseRefSchema,
9929
+ comparison: ImmutableReleaseRefSchema
9930
+ }).strict(),
9931
+ usage: ModelEvaluationUsageSchema,
9932
+ quality: external_exports.object({
9933
+ baselinePassRate: external_exports.number().min(0).max(1),
9934
+ candidatePassRate: external_exports.number().min(0).max(1),
9935
+ adaptationBaselinePassRate: external_exports.number().min(0).max(1),
9936
+ adaptationCandidatePassRate: external_exports.number().min(0).max(1),
9937
+ adaptationCandidatePassed: external_exports.boolean(),
9938
+ heldOutCandidatePassed: external_exports.boolean(),
9939
+ passed: external_exports.boolean()
9940
+ }).strict(),
9941
+ foregroundTokenDelta: external_exports.number().int(),
9942
+ foregroundTokenDeltaPercent: external_exports.number().finite().nullable(),
9943
+ taskEfficiency: ModelEvaluationTaskEfficiencySchema.optional(),
9944
+ efficiency: external_exports.object({
9945
+ grossForegroundTokenSavings: external_exports.number().int(),
9946
+ overheadTokens: external_exports.number().int().nonnegative(),
9947
+ firstPassNetTokenSavings: external_exports.number().int(),
9948
+ breakEvenReuseCount: external_exports.number().int().nonnegative().nullable(),
9949
+ amortizedTokenSavings: external_exports.number().int(),
9950
+ amortizedReuseCount: external_exports.number().int().positive()
9951
+ }).strict(),
9952
+ budget: external_exports.object({
9953
+ maximumSpendUsd: external_exports.number().nonnegative(),
9954
+ observedSpendUsd: external_exports.number().nonnegative(),
9955
+ enforced: external_exports.boolean()
9956
+ }).strict(),
9957
+ evidenceSnapshot: ImmutableReleaseRefSchema,
9958
+ lineage: external_exports.object({
9959
+ adaptationEvidenceHash: ReleaseHashSchema,
9960
+ refinerInputHash: ReleaseHashSchema,
9961
+ refinerOutcomeHash: ReleaseHashSchema,
9962
+ validationHash: ReleaseHashSchema,
9963
+ applyReceiptHash: ReleaseHashSchema,
9964
+ candidateRelease: ImmutableReleaseRefSchema,
9965
+ valid: external_exports.boolean()
9966
+ }).strict(),
9967
+ invalidReasons: external_exports.array(external_exports.string().trim().min(1).max(2e3)).max(100),
9968
+ attempts: external_exports.array(ModelEvaluationAttemptSchema).max(1e4).default([]),
9969
+ terminalClassification: external_exports.enum([
9970
+ "improved",
9971
+ "no_improvement",
9972
+ "regressed",
9973
+ "inconclusive",
9974
+ "cancelled",
9975
+ "infrastructure_failure"
9976
+ ]),
9977
+ profileGit: external_exports.object({
9978
+ ref: external_exports.string().trim().min(1).max(2e3),
9979
+ commit: GitObjectIdSchema,
9980
+ baseCommit: GitObjectIdSchema
9981
+ }).strict().nullable(),
9982
+ contentHash: ReleaseHashSchema
9983
+ }).strict();
9984
+ var ModelEvaluationStopReceiptSchema = external_exports.object({
9985
+ schemaVersion: external_exports.literal("openpond.modelEvaluationStopReceipt.v1"),
9986
+ benchmarkId: ReleaseIdSchema,
9987
+ terminalClassification: external_exports.literal("inconclusive"),
9988
+ stopReason: external_exports.enum([
9989
+ "candidate_harness_unchanged",
9990
+ "candidate_lineage_invalid"
9991
+ ]),
9992
+ reason: external_exports.string().trim().min(1).max(5e3),
9993
+ stoppedAfter: external_exports.literal("refiner"),
9994
+ baselineHarness: ImmutableReleaseRefSchema,
9995
+ candidateHarness: ImmutableReleaseRefSchema,
9996
+ refiner: external_exports.object({
9997
+ id: ReleaseIdSchema,
9998
+ contentHash: ReleaseHashSchema,
9999
+ outcomeCount: external_exports.number().int().nonnegative()
10000
+ }).strict(),
10001
+ usage: ModelEvaluationUsageSchema,
10002
+ budget: external_exports.object({
10003
+ maximumSpendUsd: external_exports.number().nonnegative(),
10004
+ observedSpendUsd: external_exports.number().nonnegative(),
10005
+ enforced: external_exports.boolean()
10006
+ }).strict(),
10007
+ evidenceSnapshot: ImmutableReleaseRefSchema,
10008
+ attempts: external_exports.array(ModelEvaluationAttemptSchema).max(1e4),
10009
+ contentHash: ReleaseHashSchema
10010
+ }).strict();
10011
+ var ModelEvaluationConfigurationSchema = external_exports.object({
10012
+ benchmarkId: ReleaseIdSchema,
10013
+ model: ChatModelRefSchema,
10014
+ upstreamModel: external_exports.object({
10015
+ providerId: ReleaseIdSchema,
10016
+ modelId: external_exports.string().trim().min(1).max(300),
10017
+ revision: external_exports.string().trim().min(1).max(300),
10018
+ pricing: external_exports.object({
10019
+ version: external_exports.string().trim().min(1).max(300),
10020
+ source: external_exports.string().trim().min(1).max(300),
10021
+ effectiveAt: ReleaseTimestampSchema,
10022
+ inputUsdPerMillionTokens: external_exports.number().nonnegative(),
10023
+ cachedInputUsdPerMillionTokens: external_exports.number().nonnegative(),
10024
+ outputUsdPerMillionTokens: external_exports.number().nonnegative()
10025
+ }).strict().optional()
10026
+ }).strict(),
10027
+ reasoningEffort: external_exports.string().trim().min(1).max(100).nullable(),
10028
+ seeds: external_exports.array(external_exports.number().int()).min(1).max(100),
10029
+ repetitions: external_exports.number().int().positive().max(20),
10030
+ maximumSpendUsd: external_exports.number().nonnegative(),
10031
+ attemptPlan: external_exports.array(external_exports.object({
10032
+ stage: external_exports.enum(["baseline", "adaptation", "candidate_adaptation", "candidate"]),
10033
+ split: external_exports.string().trim().min(1).max(100),
10034
+ taskIds: external_exports.array(ReleaseIdSchema).min(1).max(1e5),
10035
+ attemptCount: external_exports.number().int().positive()
10036
+ }).strict()).length(4)
10037
+ }).strict();
9696
10038
  var ModelRunSchema = external_exports.object({
9697
10039
  schemaVersion: external_exports.literal("openpond.modelRun.v1"),
9698
10040
  id: ReleaseIdSchema,
@@ -9716,19 +10058,38 @@ var ModelRunSchema = external_exports.object({
9716
10058
  "opd",
9717
10059
  "opsd",
9718
10060
  "sdpo"
9719
- ]),
9720
- destinationId: ReleaseIdSchema,
10061
+ ]).nullable(),
10062
+ destinationId: ReleaseIdSchema.nullable(),
9721
10063
  taskset: VersionedReleaseRefSchema,
9722
10064
  harnessRelease: ImmutableReleaseRefSchema.nullable().optional(),
9723
10065
  quote: external_exports.object({
9724
10066
  maximumSpendUsd: external_exports.number().nonnegative(),
9725
10067
  hourlyCostUsd: external_exports.number().nonnegative().nullable()
9726
- }).strict(),
10068
+ }).strict().nullable(),
10069
+ evaluation: ModelEvaluationConfigurationSchema.nullable().default(null),
10070
+ evaluationProgress: external_exports.object({
10071
+ stage: external_exports.enum([
10072
+ "baseline",
10073
+ "adaptation",
10074
+ "refiner",
10075
+ "candidate_adaptation",
10076
+ "candidate",
10077
+ "comparison"
10078
+ ]),
10079
+ completedAttempts: external_exports.number().int().nonnegative(),
10080
+ totalAttempts: external_exports.number().int().positive(),
10081
+ accounting: ModelEvaluationAccountingSchema.nullable().default(null),
10082
+ evidenceSnapshot: ModelEvaluationEvidenceSnapshotSchema.nullable().default(null)
10083
+ }).strict().nullable().default(null),
9727
10084
  reward: external_exports.object({
9728
10085
  raw: external_exports.number(),
9729
10086
  components: external_exports.record(external_exports.string(), external_exports.number())
9730
10087
  }).strict().nullable(),
9731
- receipt: ModelRunReceiptSchema.nullable(),
10088
+ receipt: external_exports.union([
10089
+ ModelRunReceiptSchema,
10090
+ ModelEvaluationReceiptSchema,
10091
+ ModelEvaluationStopReceiptSchema
10092
+ ]).nullable(),
9732
10093
  adapterArtifactLineageId: ReleaseIdSchema.nullable(),
9733
10094
  failure: external_exports.string().trim().min(1).max(5e3).nullable(),
9734
10095
  startedAt: ReleaseTimestampSchema,
@@ -9741,6 +10102,24 @@ var ModelRunSchema = external_exports.object({
9741
10102
  message: "A successful Model Run requires a canonical receipt."
9742
10103
  });
9743
10104
  }
10105
+ if (run.kind === "evaluation" && (run.method !== null || run.destinationId !== null || !run.evaluation || run.adapterArtifactLineageId !== null)) {
10106
+ context.addIssue({
10107
+ code: "custom",
10108
+ message: "An evaluation Model Run requires evaluation configuration and cannot claim training method, destination, or adapter lineage."
10109
+ });
10110
+ }
10111
+ if (run.kind === "evaluation" && run.receipt && run.receipt.schemaVersion !== "openpond.modelEvaluationReceipt.v1" && run.receipt.schemaVersion !== "openpond.modelEvaluationStopReceipt.v1") {
10112
+ context.addIssue({
10113
+ code: "custom",
10114
+ message: "An evaluation Model Run requires an evaluation receipt."
10115
+ });
10116
+ }
10117
+ if (run.kind !== "evaluation" && (run.method === null || run.destinationId === null || run.quote === null)) {
10118
+ context.addIssue({
10119
+ code: "custom",
10120
+ message: "A training or rollout Model Run requires method, destination, and quote."
10121
+ });
10122
+ }
9744
10123
  if (run.kind === "rollout_smoke" && run.adapterArtifactLineageId !== null) {
9745
10124
  context.addIssue({
9746
10125
  code: "custom",
@@ -9748,6 +10127,71 @@ var ModelRunSchema = external_exports.object({
9748
10127
  });
9749
10128
  }
9750
10129
  });
10130
+ function summarizeModelEvaluationTaskEfficiency(input) {
10131
+ const selected = /* @__PURE__ */ new Map();
10132
+ for (const attempt of input.attempts) {
10133
+ const key = `${attempt.phase}\0${attempt.taskId}`;
10134
+ const current = selected.get(key);
10135
+ if (!current || attempt.startedAt > current.startedAt || attempt.startedAt === current.startedAt && attempt.attemptId > current.attemptId) {
10136
+ selected.set(key, attempt);
10137
+ }
10138
+ }
10139
+ const attempts = [...selected.values()];
10140
+ const pairs = [
10141
+ ["adaptation", "adaptation", "candidate_adaptation"],
10142
+ ["held_out", "baseline", "candidate"]
10143
+ ].flatMap(([cohort, baselinePhase, refinedPhase]) => {
10144
+ const refinedByTask = new Map(attempts.filter((attempt) => attempt.phase === refinedPhase).map((attempt) => [attempt.taskId, attempt]));
10145
+ return attempts.filter((attempt) => attempt.phase === baselinePhase).flatMap((baseline) => {
10146
+ const refined = refinedByTask.get(baseline.taskId);
10147
+ return refined ? [{
10148
+ cohort,
10149
+ taskId: baseline.taskId,
10150
+ baseline,
10151
+ refined,
10152
+ tokenDelta: refined.totalTokens - baseline.totalTokens
10153
+ }] : [];
10154
+ });
10155
+ });
10156
+ const defaultTargetTaskCount = new Set(attempts.filter((attempt) => attempt.phase === "baseline" || attempt.phase === "adaptation").map((attempt) => attempt.taskId)).size;
10157
+ const targetTaskCount = input.targetTaskCount ?? defaultTargetTaskCount;
10158
+ if (!Number.isInteger(targetTaskCount) || targetTaskCount < 0) {
10159
+ throw new Error("Benchmark task-efficiency target must be a non-negative integer.");
10160
+ }
10161
+ const cohortTargetTaskCount = {
10162
+ adaptation: new Set(attempts.filter((attempt) => attempt.phase === "adaptation").map((attempt) => attempt.taskId)).size,
10163
+ held_out: new Set(attempts.filter((attempt) => attempt.phase === "baseline").map((attempt) => attempt.taskId)).size
10164
+ };
10165
+ const summarizePairs = (items, cohortTarget) => ({
10166
+ targetTaskCount: cohortTarget,
10167
+ comparedTaskCount: items.length,
10168
+ passedTaskCount: items.filter((pair) => pair.tokenDelta < 0).length,
10169
+ failedTaskCount: items.filter((pair) => pair.tokenDelta >= 0).length,
10170
+ lowerTaskCount: items.filter((pair) => pair.tokenDelta < 0).length,
10171
+ higherTaskCount: items.filter((pair) => pair.tokenDelta > 0).length,
10172
+ unchangedTaskCount: items.filter((pair) => pair.tokenDelta === 0).length
10173
+ });
10174
+ const counts = summarizePairs(pairs, targetTaskCount);
10175
+ const baselineTokens = pairs.reduce((sum, pair) => sum + pair.baseline.totalTokens, 0);
10176
+ const refinedTokens = pairs.reduce((sum, pair) => sum + pair.refined.totalTokens, 0);
10177
+ const tokenDelta = refinedTokens - baselineTokens;
10178
+ const complete = pairs.length === targetTaskCount;
10179
+ const summary = ModelEvaluationTaskEfficiencySchema.parse({
10180
+ target: "all_tasks_lower",
10181
+ ...counts,
10182
+ baselineTokens,
10183
+ refinedTokens,
10184
+ tokenDelta,
10185
+ tokenDeltaPercent: baselineTokens > 0 ? tokenDelta / baselineTokens * 100 : null,
10186
+ complete,
10187
+ passed: complete && counts.passedTaskCount === targetTaskCount,
10188
+ cohorts: {
10189
+ adaptation: summarizePairs(pairs.filter((pair) => pair.cohort === "adaptation"), cohortTargetTaskCount.adaptation),
10190
+ heldOut: summarizePairs(pairs.filter((pair) => pair.cohort === "held_out"), cohortTargetTaskCount.held_out)
10191
+ }
10192
+ });
10193
+ return { summary, pairs };
10194
+ }
9751
10195
 
9752
10196
  // ../../packages/contracts/dist/training-policy-optimization.js
9753
10197
  var IdSchema6 = external_exports.string().trim().min(1).max(240);
@@ -9853,7 +10297,7 @@ var DEFAULT_LOCAL_MODEL_CHAT_CONFIGURATION = LocalModelChatConfigurationSchema.p
9853
10297
  var ManagedAdapterServingProjectionSchema = external_exports.object({
9854
10298
  schemaVersion: external_exports.literal("openpond.managedAdapterServingProjection.v1"),
9855
10299
  teamId: TrainingIdSchema.nullable().default(null),
9856
- source: external_exports.enum(["openpond_training", "sandbox_managed_rl"]),
10300
+ source: external_exports.literal("sandbox_managed_rl"),
9857
10301
  sourceRef: TrainingIdSchema,
9858
10302
  canonicalArtifactId: TrainingIdSchema.nullable(),
9859
10303
  canonicalArtifactState: external_exports.enum(["imported_unvalidated", "evaluating", "promotable", "rejected", "deleted"]).nullable(),
@@ -10432,7 +10876,6 @@ var TrainingMethodSchema = external_exports.enum([
10432
10876
  ]);
10433
10877
  var TrainingParameterizationSchema = external_exports.enum(["lora", "full"]);
10434
10878
  var TrainingDestinationIdSchema = external_exports.enum([
10435
- "local_cpu_fixture",
10436
10879
  "openpond_managed"
10437
10880
  ]);
10438
10881
  var SftRecipeSchema = external_exports.object({
@@ -11123,6 +11566,8 @@ var TrainingStateResponseSchema = external_exports.object({
11123
11566
  sources: external_exports.array(TrainingSourceRefSchema),
11124
11567
  creations: external_exports.array(TaskCreationSnapshotSchema),
11125
11568
  tasksets: external_exports.array(TasksetSchema),
11569
+ benchmarkRuns: external_exports.array(external_exports.custom()).default([]),
11570
+ benchmarkComparisons: external_exports.array(external_exports.custom()).default([]),
11126
11571
  datasetImports: external_exports.array(DatasetImportJobSchema).default([]),
11127
11572
  datasetArtifacts: external_exports.array(DatasetArtifactSummarySchema).default([]),
11128
11573
  graderAuditReports: external_exports.array(GraderAuditReportSchema),
@@ -11261,166 +11706,6 @@ function isRecord(value) {
11261
11706
  return Boolean(value && typeof value === "object" && !Array.isArray(value));
11262
11707
  }
11263
11708
 
11264
- // ../../packages/contracts/dist/compute.js
11265
- var IdSchema7 = external_exports.string().trim().min(1).max(240);
11266
- var TimestampSchema6 = external_exports.string().trim().datetime({ offset: true });
11267
- var ByteCountSchema = external_exports.number().int().nonnegative();
11268
- var OptionalByteCountSchema = ByteCountSchema.nullable();
11269
- var ComputePlatformSchema = external_exports.enum(["darwin", "linux", "win32", "other"]);
11270
- var ComputeDeviceKindSchema = external_exports.enum(["cpu", "gpu", "accelerator"]);
11271
- var ComputeVendorSchema = external_exports.enum(["apple", "nvidia", "amd", "intel", "other"]);
11272
- var ComputeProbeStateSchema = external_exports.enum(["available", "unavailable", "error"]);
11273
- var ComputeRuntimeKindSchema = external_exports.enum([
11274
- "python",
11275
- "trl_peft",
11276
- "mlx",
11277
- "cuda",
11278
- "rocm",
11279
- "ollama",
11280
- "docker",
11281
- "podman"
11282
- ]);
11283
- var ComputeDeviceSchema = external_exports.object({
11284
- id: IdSchema7,
11285
- kind: ComputeDeviceKindSchema,
11286
- vendor: ComputeVendorSchema,
11287
- index: external_exports.number().int().nonnegative().nullable(),
11288
- name: external_exports.string().trim().min(1).max(500),
11289
- totalMemoryBytes: OptionalByteCountSchema,
11290
- freeMemoryBytes: OptionalByteCountSchema,
11291
- physicalCoreCount: external_exports.number().int().positive().nullable(),
11292
- logicalCoreCount: external_exports.number().int().positive().nullable(),
11293
- driverVersion: external_exports.string().trim().min(1).max(200).nullable(),
11294
- runtimeVersion: external_exports.string().trim().min(1).max(200).nullable(),
11295
- computeCapability: external_exports.string().trim().min(1).max(100).nullable(),
11296
- supportedPrecisions: external_exports.array(external_exports.enum(["fp32", "fp16", "bf16", "tf32", "int8", "int4"])),
11297
- available: external_exports.boolean(),
11298
- unavailableReason: external_exports.string().trim().min(1).max(2e3).nullable()
11299
- });
11300
- var ComputeRuntimeSchema = external_exports.object({
11301
- id: IdSchema7,
11302
- kind: ComputeRuntimeKindSchema,
11303
- state: ComputeProbeStateSchema,
11304
- version: external_exports.string().trim().min(1).max(200).nullable(),
11305
- executable: external_exports.string().trim().min(1).max(4e3).nullable(),
11306
- detail: external_exports.string().trim().min(1).max(2e3).nullable()
11307
- });
11308
- var ComputeStorageRootSchema = external_exports.object({
11309
- id: IdSchema7,
11310
- label: external_exports.string().trim().min(1).max(500),
11311
- path: external_exports.string().trim().min(1).max(4e3),
11312
- modelStorePath: external_exports.string().trim().min(1).max(4e3),
11313
- datasetStorePath: external_exports.string().trim().min(1).max(4e3),
11314
- kind: external_exports.enum(["local", "network", "removable", "cache"]),
11315
- configured: external_exports.boolean(),
11316
- mounted: external_exports.boolean(),
11317
- writable: external_exports.boolean(),
11318
- totalBytes: OptionalByteCountSchema,
11319
- freeBytes: OptionalByteCountSchema
11320
- });
11321
- var ComputeConnectionRefSchema = external_exports.object({
11322
- id: IdSchema7,
11323
- kind: external_exports.enum(["local", "ssh", "managed", "custom"]),
11324
- label: external_exports.string().trim().min(1).max(500),
11325
- configured: external_exports.boolean(),
11326
- available: external_exports.boolean(),
11327
- lastCheckedAt: TimestampSchema6.nullable(),
11328
- unavailableReason: external_exports.string().trim().min(1).max(2e3).nullable()
11329
- });
11330
- var ModelAssetSourceSchema = external_exports.enum(["huggingface", "mlx", "ollama", "local"]);
11331
- var ModelAssetSchema = external_exports.object({
11332
- id: IdSchema7,
11333
- name: external_exports.string().trim().min(1).max(500),
11334
- source: ModelAssetSourceSchema,
11335
- path: external_exports.string().trim().min(1).max(4e3).nullable(),
11336
- modelId: external_exports.string().trim().min(1).max(500).nullable(),
11337
- revision: external_exports.string().trim().min(1).max(256).nullable(),
11338
- tokenizerRevision: external_exports.string().trim().min(1).max(256).nullable(),
11339
- chatTemplateHash: external_exports.string().trim().regex(/^[a-f0-9]{64}$/).nullable(),
11340
- digest: external_exports.string().trim().min(8).max(256).nullable(),
11341
- family: external_exports.string().trim().min(1).max(200).nullable(),
11342
- parameterCount: external_exports.number().int().positive().nullable(),
11343
- format: external_exports.enum(["safetensors", "pytorch", "mlx", "gguf", "unknown"]),
11344
- quantization: external_exports.string().trim().min(1).max(100).nullable(),
11345
- sizeBytes: OptionalByteCountSchema,
11346
- inferenceCompatible: external_exports.boolean(),
11347
- trainingCompatible: external_exports.boolean(),
11348
- compatibilityReason: external_exports.string().trim().min(1).max(2e3).nullable(),
11349
- discoveredAt: TimestampSchema6
11350
- });
11351
- var ModelDownloadStatusSchema = external_exports.enum(["queued", "downloading", "verifying", "succeeded", "cancelling", "cancelled", "failed"]);
11352
- var ModelDownloadJobSchema = external_exports.object({
11353
- schemaVersion: external_exports.literal("openpond.modelDownload.v1"),
11354
- id: IdSchema7,
11355
- modelId: IdSchema7,
11356
- revision: external_exports.string().trim().min(8).max(256),
11357
- license: external_exports.string().trim().min(1).max(200),
11358
- destinationPath: external_exports.string().trim().min(1).max(4e3),
11359
- expectedBytes: ByteCountSchema,
11360
- downloadedBytes: ByteCountSchema,
11361
- status: ModelDownloadStatusSchema,
11362
- error: external_exports.string().trim().min(1).max(2e4).nullable(),
11363
- startedAt: TimestampSchema6.nullable(),
11364
- completedAt: TimestampSchema6.nullable(),
11365
- createdAt: TimestampSchema6,
11366
- updatedAt: TimestampSchema6
11367
- });
11368
- var ComputeHostProfileSchema = external_exports.object({
11369
- platform: ComputePlatformSchema,
11370
- architecture: external_exports.string().trim().min(1).max(100),
11371
- operatingSystem: external_exports.string().trim().min(1).max(500),
11372
- hostname: external_exports.string().trim().min(1).max(500),
11373
- totalMemoryBytes: OptionalByteCountSchema
11374
- });
11375
- var ComputeSettingsSchema = external_exports.object({
11376
- schemaVersion: external_exports.literal("openpond.computeSettings.v1"),
11377
- modelStorePath: external_exports.string().trim().min(1).max(4e3).nullable(),
11378
- datasetStorePath: external_exports.string().trim().min(1).max(4e3).nullable().default(null),
11379
- defaultDeviceIds: external_exports.array(IdSchema7).max(64),
11380
- additionalModelPaths: external_exports.array(external_exports.string().trim().min(1).max(4e3)).max(32),
11381
- updatedAt: TimestampSchema6
11382
- });
11383
- var ComputeInventorySchema = external_exports.object({
11384
- schemaVersion: external_exports.literal("openpond.computeInventory.v1"),
11385
- host: ComputeHostProfileSchema,
11386
- devices: external_exports.array(ComputeDeviceSchema),
11387
- runtimes: external_exports.array(ComputeRuntimeSchema),
11388
- storageRoots: external_exports.array(ComputeStorageRootSchema),
11389
- connections: external_exports.array(ComputeConnectionRefSchema),
11390
- models: external_exports.array(ModelAssetSchema),
11391
- downloads: external_exports.array(ModelDownloadJobSchema),
11392
- warnings: external_exports.array(external_exports.string().trim().min(1).max(2e3)).max(100),
11393
- scannedAt: TimestampSchema6
11394
- });
11395
- var ComputeCompatibilityIssueSchema = external_exports.object({
11396
- code: IdSchema7,
11397
- severity: external_exports.enum(["warning", "error"]),
11398
- message: external_exports.string().trim().min(1).max(2e3)
11399
- });
11400
- var ComputeCompatibilityReportSchema = external_exports.object({
11401
- schemaVersion: external_exports.literal("openpond.computeCompatibility.v1"),
11402
- compatible: external_exports.boolean(),
11403
- deviceIds: external_exports.array(IdSchema7),
11404
- modelAssetId: IdSchema7.nullable(),
11405
- runtimeIds: external_exports.array(IdSchema7),
11406
- estimatedMemoryBytes: OptionalByteCountSchema,
11407
- estimatedStorageBytes: OptionalByteCountSchema,
11408
- issues: external_exports.array(ComputeCompatibilityIssueSchema),
11409
- checkedAt: TimestampSchema6
11410
- });
11411
- var ComputeStateResponseSchema = external_exports.object({
11412
- schemaVersion: external_exports.literal("openpond.computeState.v1"),
11413
- settings: ComputeSettingsSchema,
11414
- inventory: ComputeInventorySchema.nullable(),
11415
- scanning: external_exports.boolean()
11416
- });
11417
- var UpdateComputeSettingsRequestSchema = external_exports.object({
11418
- modelStorePath: external_exports.string().trim().min(1).max(4e3).nullable().optional(),
11419
- datasetStorePath: external_exports.string().trim().min(1).max(4e3).nullable().optional(),
11420
- defaultDeviceIds: external_exports.array(IdSchema7).max(64).optional(),
11421
- additionalModelPaths: external_exports.array(external_exports.string().trim().min(1).max(4e3)).max(32).optional()
11422
- });
11423
-
11424
11709
  // ../../packages/contracts/dist/learning-signals.js
11425
11710
  var LearningSignalKindSchema = external_exports.enum([
11426
11711
  "trajectory",
@@ -12447,6 +12732,7 @@ export {
12447
12732
  buildHostedRunIdempotencyKey,
12448
12733
  buildOpenPondProfileSetupGate,
12449
12734
  formatOpenPondProfileSetupRequirement,
12735
+ commitProfileBenchmarkRef,
12450
12736
  readSourceUploadCache,
12451
12737
  materializeSourceUploadFile,
12452
12738
  writeSourceUploadCache,
@@ -12549,6 +12835,7 @@ export {
12549
12835
  nextCreateImproveRunRevision,
12550
12836
  OpenPondProfileRefSchema,
12551
12837
  SessionSchema,
12838
+ TurnSchema,
12552
12839
  ApprovalSchema,
12553
12840
  createPlaceholderPanes,
12554
12841
  SHIPPED_OPENPOND_SKILL_NAMES,
@@ -12643,6 +12930,9 @@ export {
12643
12930
  DatasetArtifactRegistryEntrySchema,
12644
12931
  DatasetRowPageRequestSchema,
12645
12932
  DatasetRowPageSchema,
12933
+ DatasetStorageSettingsSchema,
12934
+ DatasetStorageStateSchema,
12935
+ UpdateDatasetStorageSettingsRequestSchema,
12646
12936
  HuggingFaceDatasetSourceRefSchema,
12647
12937
  ExternalDatasetSourceRefSchema,
12648
12938
  ImmutableReleaseRefSchema,
@@ -12674,7 +12964,10 @@ export {
12674
12964
  CreateHuggingFaceDatasetImportRequestSchema,
12675
12965
  ApproveDatasetImportMappingRequestSchema,
12676
12966
  ModelVersionSchema,
12967
+ ModelEvaluationReceiptSchema,
12968
+ ModelEvaluationStopReceiptSchema,
12677
12969
  ModelRunSchema,
12970
+ summarizeModelEvaluationTaskEfficiency,
12678
12971
  LocalModelChatConfigurationSchema,
12679
12972
  managedAdapterProjectionReady,
12680
12973
  resolveModelBindingPromotionGate,
@@ -12685,8 +12978,6 @@ export {
12685
12978
  CrossSystemWorldSpecSchema,
12686
12979
  CROSS_SYSTEM_TOOL_DEFINITIONS,
12687
12980
  CROSS_SYSTEM_TOOL_CONTRACT_HASH,
12688
- CROSS_SYSTEM_LOCAL_TOOL_MAX_TURNS,
12689
- crossSystemLocalToolSystemPrompt,
12690
12981
  CROSS_SYSTEM_LOCAL_TOOL_SYSTEM_PROMPT,
12691
12982
  CrossSystemTrajectorySchema,
12692
12983
  CrossSystemVerifierResultSchema,
@@ -12694,7 +12985,6 @@ export {
12694
12985
  CrossSystemBootstrapRecordSchema,
12695
12986
  CrossSystemExpertBootstrapApprovalSchema,
12696
12987
  CrossSystemExpertBootstrapPreviewSchema,
12697
- PpoTrajectorySchema,
12698
12988
  RolloutTrajectoryReceiptSchema,
12699
12989
  TrainingDestinationIdSchema,
12700
12990
  TrainingRecipeSchema,
@@ -12720,13 +13010,6 @@ export {
12720
13010
  ModelBindingRoleSchema,
12721
13011
  ModelBindingSchema,
12722
13012
  estimateTrainingTaskSizing,
12723
- ModelAssetSchema,
12724
- ModelDownloadJobSchema,
12725
- ComputeSettingsSchema,
12726
- ComputeInventorySchema,
12727
- ComputeStateResponseSchema,
12728
- UpdateComputeSettingsRequestSchema,
12729
- LearningSignalBatchSchema,
12730
13013
  HarnessRunManifestContentSchema,
12731
13014
  HarnessRunManifestSchema,
12732
13015
  ResolvedTrainingBundleContentSchema,