openpond 0.0.69 → 0.1.1

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 (191) hide show
  1. package/dist/chunks/{app-layer-EXXOWJ5H.js → app-layer-XEYHFJHI.js} +2 -2
  2. package/dist/chunks/{app-server-runtime-7FBQBE3C.js → app-server-runtime-FJM2EQPH.js} +7 -6
  3. package/dist/chunks/{apps-RZSDOFAG.js → apps-GSXUDK6V.js} +2 -2
  4. package/dist/chunks/{chunk-SFMNGWNO.js → chunk-2JABRRNR.js} +1 -1
  5. package/dist/chunks/{chunk-MMRJNSWY.js → chunk-6G6MDZLM.js} +1096 -120
  6. package/dist/chunks/{chunk-7C4OIFOC.js → chunk-C5TKGE5Y.js} +31 -3
  7. package/dist/chunks/{chunk-F36ZVO6U.js → chunk-CNTM26OW.js} +1 -1
  8. package/dist/chunks/{chunk-NPNIL6SQ.js → chunk-DJL4TJYG.js} +1 -1
  9. package/dist/chunks/{chunk-FEOLMLYU.js → chunk-EFET7LB7.js} +21 -2
  10. package/dist/chunks/{training-5CPTZRVC.js → chunk-J7PYGDRY.js} +251 -16
  11. package/dist/chunks/{chunk-QTN6HXOR.js → chunk-KWDOAJJI.js} +2 -2
  12. package/dist/chunks/{chunk-Y57RTLVV.js → chunk-N3TGCM7J.js} +93 -35
  13. package/dist/chunks/{chunk-BLFIIAWZ.js → chunk-NTK22KJD.js} +68 -21
  14. package/dist/chunks/{chunk-OOM2PHBE.js → chunk-O6B6YCMI.js} +1130 -226
  15. package/dist/chunks/chunk-R3C3MNSI.js +140 -0
  16. package/dist/chunks/{cli-HIXVXM72.js → cli-6PFRZ2WV.js} +6 -5
  17. package/dist/chunks/continual-FYDKLCO7.js +803 -0
  18. package/dist/chunks/{core-commands-34SVH6ZQ.js → core-commands-MAN3CSJQ.js} +3 -3
  19. package/dist/chunks/{desktop-test-66DPBNJX.js → desktop-test-OE5SST2W.js} +2 -2
  20. package/dist/chunks/{extension-ZMRHCDO3.js → extension-J3CIEDP4.js} +968 -19
  21. package/dist/chunks/{help-COHCZEP2.js → help-JNGJJFU5.js} +1 -1
  22. package/dist/chunks/{opchat-2PGW2GNN.js → opchat-6HEQJFLL.js} +2 -2
  23. package/dist/chunks/{organizations-NZ4OY56V.js → organizations-MWAPNOCK.js} +5 -4
  24. package/dist/chunks/{profile-GEMTRPUG.js → profile-P7HMONTZ.js} +2 -2
  25. package/dist/chunks/{project-agent-NX6YBGWC.js → project-agent-2RAK7GAZ.js} +2 -2
  26. package/dist/chunks/{sandbox-command-UEY53OJO.js → sandbox-command-G22CPFNK.js} +2 -2
  27. package/dist/chunks/{sandbox-template-YKYRB645.js → sandbox-template-S4WRUWJ6.js} +3 -3
  28. package/dist/chunks/{src-LKJBD5AM.js → src-BKBZ7WLO.js} +4 -3
  29. package/dist/chunks/{src-IXYDKOBI.js → src-RTGN2O4H.js} +15917 -8039
  30. package/dist/chunks/taskset-BMI7KOWP.js +66 -0
  31. package/dist/chunks/{teams-bot-K6KZHZJV.js → teams-bot-5VBYEN7M.js} +2 -2
  32. package/dist/chunks/training-UPVSGDTB.js +17 -0
  33. package/dist/chunks/{workspaces-WXM72UZF.js → workspaces-IJQPWX3H.js} +4 -2
  34. package/dist/cli.js +13 -13
  35. package/dist/skills/openpond-desktop-harness/SKILL.md +1 -1
  36. package/dist/web/assets/App-BOkhmdHu.js +173 -0
  37. package/dist/web/assets/{AppDialog-DX-xs3KA.js → AppDialog-BCjKFUBn.js} +1 -1
  38. package/dist/web/assets/{AppTerminalPanel-CYVj_ITT.js → AppTerminalPanel-DRU8GIfy.js} +2 -2
  39. package/dist/web/assets/{AppsView-ByjyGog7.js → AppsView-Ck_OzQWf.js} +1 -1
  40. package/dist/web/assets/{BrowserSidebar-BDwtMAZl.js → BrowserSidebar-CqciX8aL.js} +1 -1
  41. package/dist/web/assets/{CartesianChart-Dv6jJfPR.js → CartesianChart-Y0lsL4vC.js} +1 -1
  42. package/dist/web/assets/{CollaborationTabs-CC5AIhMh.js → CollaborationTabs-BOb9PjvS.js} +1 -1
  43. package/dist/web/assets/{CommandMenu-Ct0Sx7yP.js → CommandMenu-Co6JnmTu.js} +1 -1
  44. package/dist/web/assets/{CommunityView-C_zVE0jg.js → CommunityView-BbTSeL7h.js} +1 -1
  45. package/dist/web/assets/{ComposerCreateImproveStrip-CNn4OywM.js → ComposerCreateImproveStrip-BGzCWVFp.js} +1 -1
  46. package/dist/web/assets/{GetStartedView-DRFpHDLd.js → GetStartedView-jEogFjxP.js} +1 -1
  47. package/dist/web/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
  48. package/dist/web/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
  49. package/dist/web/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
  50. package/dist/web/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
  51. package/dist/web/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
  52. package/dist/web/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
  53. package/dist/web/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
  54. package/dist/web/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
  55. package/dist/web/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
  56. package/dist/web/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
  57. package/dist/web/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
  58. package/dist/web/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
  59. package/dist/web/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
  60. package/dist/web/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
  61. package/dist/web/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
  62. package/dist/web/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
  63. package/dist/web/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
  64. package/dist/web/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
  65. package/dist/web/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
  66. package/dist/web/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
  67. package/dist/web/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
  68. package/dist/web/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
  69. package/dist/web/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
  70. package/dist/web/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
  71. package/dist/web/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
  72. package/dist/web/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
  73. package/dist/web/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
  74. package/dist/web/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
  75. package/dist/web/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
  76. package/dist/web/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
  77. package/dist/web/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
  78. package/dist/web/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
  79. package/dist/web/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
  80. package/dist/web/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
  81. package/dist/web/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
  82. package/dist/web/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
  83. package/dist/web/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
  84. package/dist/web/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
  85. package/dist/web/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
  86. package/dist/web/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
  87. package/dist/web/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
  88. package/dist/web/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
  89. package/dist/web/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
  90. package/dist/web/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
  91. package/dist/web/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
  92. package/dist/web/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
  93. package/dist/web/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
  94. package/dist/web/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
  95. package/dist/web/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
  96. package/dist/web/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
  97. package/dist/web/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
  98. package/dist/web/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
  99. package/dist/web/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
  100. package/dist/web/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
  101. package/dist/web/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
  102. package/dist/web/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
  103. package/dist/web/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
  104. package/dist/web/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
  105. package/dist/web/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
  106. package/dist/web/assets/LabModelVersionDetailPage-CrudId_1.js +1 -0
  107. package/dist/web/assets/{LabSkillSidebar-B9jY4AgE.js → LabSkillSidebar-C5oS6UmH.js} +1 -1
  108. package/dist/web/assets/LabsRoute-9v8qwEBc.js +2 -0
  109. package/dist/web/assets/LabsRoute-CGFgymTX.css +1 -0
  110. package/dist/web/assets/MainChatThread-VtMpAxlP.js +2 -0
  111. package/dist/web/assets/MainPane-BbknUzp3.js +8 -0
  112. package/dist/web/assets/MarkdownText-DqJarmTh.js +268 -0
  113. package/dist/web/assets/Messages-BaT7HOzB.js +10 -0
  114. package/dist/web/assets/{NativeSkillSidebar-DjebFRoi.js → NativeSkillSidebar-DXp8snN5.js} +1 -1
  115. package/dist/web/assets/{NewExperienceSwitcher-C-bJxHxY.js → NewExperienceSwitcher-CLHuGUN5.js} +1 -1
  116. package/dist/web/assets/{NewProjectDialog-Cx8QcZm7.js → NewProjectDialog-CzpHCAaC.js} +1 -1
  117. package/dist/web/assets/{OutputsPage-Y9HM-SHX.js → OutputsPage-DIzx-Ge6.js} +1 -1
  118. package/dist/web/assets/{ProjectsPage-BBr58yKT.js → ProjectsPage-DojwrhOy.js} +1 -1
  119. package/dist/web/assets/RightChatPanelStack-CIE5bgmO.js +1 -0
  120. package/dist/web/assets/{RightSidebarHomePanel-Dx-1elSI.js → RightSidebarHomePanel-DTzfuEX3.js} +1 -1
  121. package/dist/web/assets/ScheduledWorkPage-DdbcQGSv.js +1 -0
  122. package/dist/web/assets/SettingsView-CC5GXaE1.css +1 -0
  123. package/dist/web/assets/SettingsView-QT_OLmDh.js +6 -0
  124. package/dist/web/assets/{TeamChatView-Bkyhu40R.js → TeamChatView-C4-nG1tC.js} +2 -2
  125. package/dist/web/assets/{TerminalOverlay-CaCkZDzO.js → TerminalOverlay-DnNVrCtu.js} +1 -1
  126. package/dist/web/assets/{TrainingCreationPanel-Vvi41WNT.js → TrainingCreationPanel-CDwwyucO.js} +1 -1
  127. package/dist/web/assets/{TrainingDraftPanel-C2C3hffI.js → TrainingDraftPanel-BijDnV_0.js} +1 -1
  128. package/dist/web/assets/{UsageSettingsSection-DpPBd-ra.js → UsageSettingsSection-Y5BFAu1p.js} +2 -2
  129. package/dist/web/assets/WorkSidebarPanel-CkJlvZKm.js +1 -0
  130. package/dist/web/assets/{WorkspaceDiffPanel-D_zKOW4K.js → WorkspaceDiffPanel-CBgzmBk8.js} +6 -6
  131. package/dist/web/assets/WorkspaceEnvironmentMenu-D8knAy1q.js +32 -0
  132. package/dist/web/assets/WorkspaceGitDialogs-_LHTrvh6.js +1 -0
  133. package/dist/web/assets/{WorkspaceMonacoEditor--GOVrHFp.js → WorkspaceMonacoEditor-B2B7OM_L.js} +3 -3
  134. package/dist/web/assets/{arrow-up-right-BRZWXpqJ.js → arrow-up-right-4nAzMtjW.js} +1 -1
  135. package/dist/web/assets/{chat-file-links-CgFHK89C.js → chat-file-links-Bned0MT7.js} +1 -1
  136. package/dist/web/assets/chevron-up-DK7ejCfk.js +1 -0
  137. package/dist/web/assets/{clipboard-dPd_3lpG.js → clipboard-BzjUoZFo.js} +1 -1
  138. package/dist/web/assets/{cloud-upload-DOwvN4hp.js → cloud-upload-CsrrwS-b.js} +1 -1
  139. package/dist/web/assets/{cssMode-BM4j9M0D.js → cssMode-CIbSSHKJ.js} +1 -1
  140. package/dist/web/assets/{folder-open-DavjPCw4.js → folder-open-vRTuLzpS.js} +1 -1
  141. package/dist/web/assets/{folder-plus-Dyqast6G.js → folder-plus-hyqwgUnx.js} +1 -1
  142. package/dist/web/assets/{git-commit-horizontal-s3X0cQlz.js → git-commit-horizontal-CaxKfeYa.js} +1 -1
  143. package/dist/web/assets/{htmlMode-Nlx7ckXa.js → htmlMode-C3MGQGam.js} +1 -1
  144. package/dist/web/assets/index-66-ohHD5.js +1 -0
  145. package/dist/web/assets/index-ByQIHpc9.css +1 -0
  146. package/dist/web/assets/{index-5-B6FIuE.js → index-Dvq7bpBG.js} +1 -1
  147. package/dist/web/assets/{info-CVvrNOHr.js → info-aYWeE1Iw.js} +1 -1
  148. package/dist/web/assets/{jsonMode-B7monA6g.js → jsonMode-CpD6UkT7.js} +1 -1
  149. package/dist/web/assets/{lspLanguageFeatures-CcJ9GDtK.js → lspLanguageFeatures-DpcK8ZI6.js} +1 -1
  150. package/dist/web/assets/{minimize-2-O1DnznGK.js → minimize-2-DeYg7XqB.js} +1 -1
  151. package/dist/web/assets/{monaco.contribution-2PozfA9g.js → monaco.contribution-BDTM0ZJq.js} +2 -2
  152. package/dist/web/assets/{monaco.contribution-QOOCizYq.js → monaco.contribution-C-_ekTxy.js} +2 -2
  153. package/dist/web/assets/{monaco.contribution-BMAF2bmO.js → monaco.contribution-CrrdDQgP.js} +2 -2
  154. package/dist/web/assets/{monaco.contribution-BSJ2jQTi.js → monaco.contribution-JWFq0HzV.js} +2 -2
  155. package/dist/web/assets/{play-BpCc5ZbR.js → play-BqgRTddV.js} +1 -1
  156. package/dist/web/assets/{python-BK41iew-.js → python-B67wope9.js} +1 -1
  157. package/dist/web/assets/{refresh-cw-Csoy1ev1.js → refresh-cw-DwMA_2On.js} +1 -1
  158. package/dist/web/assets/{save-Dbztj0W7.js → save-B0BKh5oQ.js} +1 -1
  159. package/dist/web/assets/square-LY3oz82L.js +1 -0
  160. package/dist/web/assets/{toggleHighContrast-DrmwDpyz.js → toggleHighContrast-B2jka5B1.js} +1 -1
  161. package/dist/web/assets/{training-daZlCtKV.css → training-eg6uFi3M.css} +1 -1
  162. package/dist/web/assets/{tsMode-CFgCMr7d.js → tsMode-1MUwluYD.js} +1 -1
  163. package/dist/web/assets/{upload-C5nhiSMq.js → upload-bSKSkFVa.js} +1 -1
  164. package/dist/web/assets/{useLocalAgentSchedules-LAsobERb.js → useLocalAgentSchedules--jnnM4Fz.js} +1 -1
  165. package/dist/web/assets/{wifi-off-BHxh2UbA.js → wifi-off-DA34iPmr.js} +1 -1
  166. package/dist/web/assets/{workers-FKb-NyBI.js → workers-CczIcRcl.js} +1 -1
  167. package/dist/web/assets/{yaml-C5DbF9S6.js → yaml-DwEGoHA9.js} +1 -1
  168. package/dist/web/index.html +2 -2
  169. package/docs/command-reference.md +58 -2
  170. package/package.json +3 -1
  171. package/dist/web/assets/App-BF9L0JUv.js +0 -171
  172. package/dist/web/assets/LabModelVersionDetailPage-BzF-IVXQ.js +0 -1
  173. package/dist/web/assets/LabsRoute-CS_orT9s.css +0 -1
  174. package/dist/web/assets/LabsRoute-Di1Zs4gZ.js +0 -2
  175. package/dist/web/assets/MainChatThread-8VzlD8Hi.js +0 -2
  176. package/dist/web/assets/MainPane-StAOFINE.js +0 -6
  177. package/dist/web/assets/MarkdownText-B8D_ftSJ.js +0 -9
  178. package/dist/web/assets/Messages-TY62tiDp.js +0 -10
  179. package/dist/web/assets/RightChatPanelStack-DzUbDKwp.js +0 -1
  180. package/dist/web/assets/ScheduledWorkPage-BuXw_W8b.js +0 -1
  181. package/dist/web/assets/SettingsView-BRPrJuP5.css +0 -1
  182. package/dist/web/assets/SettingsView-DB_zPHYY.js +0 -6
  183. package/dist/web/assets/WorkSidebarPanel-CeWGboTh.js +0 -1
  184. package/dist/web/assets/WorkspaceEnvironmentMenu-BTz9FISP.js +0 -32
  185. package/dist/web/assets/WorkspaceGitDialogs-BnBRUYpS.js +0 -1
  186. package/dist/web/assets/activity-DA5DNQwD.js +0 -1
  187. package/dist/web/assets/chevron-up-DSv2auz_.js +0 -1
  188. package/dist/web/assets/git-branch-zKnZdQiX.js +0 -1
  189. package/dist/web/assets/index-CQ3CPVHZ.css +0 -1
  190. package/dist/web/assets/index-CuoGlf-W.js +0 -1
  191. package/dist/web/assets/square-ju7fWa0W.js +0 -1
@@ -1,4 +1,5 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
+ import "./chunk-W5GKHH77.js";
2
3
  import {
3
4
  CONNECTED_APP_PROVIDER_TOOL_NAMES,
4
5
  CapabilityRequirementSchema,
@@ -16,9 +17,13 @@ import {
16
17
  SandboxTemplateValidationDiagnosticSchema,
17
18
  ToolDeclarationSchema,
18
19
  validateConnectedAppToolCallRequest
19
- } from "./chunk-BLFIIAWZ.js";
20
+ } from "./chunk-NTK22KJD.js";
21
+ import {
22
+ ContinualBenchIssuePacketSchema,
23
+ ContinualBenchPanelRoleSchema,
24
+ ContinualBenchmarkProtocolReleaseSchema
25
+ } from "./chunk-R3C3MNSI.js";
20
26
  import "./chunk-BVY5JYM6.js";
21
- import "./chunk-W5GKHH77.js";
22
27
  import {
23
28
  loadOpenPondProfileState,
24
29
  parseProfileSkillMarkdown
@@ -2060,6 +2065,7 @@ var AppPreferencesSchema = external_exports.object({
2060
2065
  defaultNewProjectDirectory: external_exports.string().trim().max(4096).default(""),
2061
2066
  defaultTeamId: external_exports.string().trim().max(191).nullable().default(null),
2062
2067
  advancedWorkspaceControls: external_exports.boolean().default(false),
2068
+ steerActiveResponses: external_exports.boolean().default(true),
2063
2069
  contextCompaction: ContextCompactionPreferencesSchema.optional().default(
2064
2070
  () => ContextCompactionPreferencesSchema.parse({})
2065
2071
  ),
@@ -3438,6 +3444,9 @@ var UsageRecordsQuerySchema = UsageSummaryQuerySchema.extend({
3438
3444
  turnId: external_exports.string().trim().min(1).optional(),
3439
3445
  limit: external_exports.number().int().positive().max(500).default(100)
3440
3446
  });
3447
+ var UsageTurnCacheQuerySchema = external_exports.object({
3448
+ sessionId: external_exports.string().trim().min(1)
3449
+ });
3441
3450
  var UsageBreakdownBaseSchema = external_exports.object({
3442
3451
  requests: external_exports.number().int().nonnegative(),
3443
3452
  promptTokens: external_exports.number().int().nonnegative().nullable(),
@@ -3560,6 +3569,22 @@ var UsageRecordsResponseSchema = external_exports.object({
3560
3569
  hasMore: external_exports.boolean(),
3561
3570
  records: external_exports.array(ModelUsageRecordSchema)
3562
3571
  });
3572
+ var UsageTurnCacheSummarySchema = external_exports.object({
3573
+ turnId: external_exports.string().trim().min(1),
3574
+ requests: external_exports.number().int().nonnegative(),
3575
+ cacheTelemetryRequests: external_exports.number().int().nonnegative(),
3576
+ cachedPromptTokens: external_exports.number().int().nonnegative().nullable(),
3577
+ uncachedPromptTokens: external_exports.number().int().nonnegative().nullable(),
3578
+ cacheWritePromptTokens: external_exports.number().int().nonnegative().nullable(),
3579
+ cacheHitRate: external_exports.number().min(0).max(1).nullable(),
3580
+ cacheTelemetryCoverage: external_exports.number().min(0).max(1),
3581
+ providers: external_exports.array(UsageProviderSchema)
3582
+ });
3583
+ var UsageTurnCacheResponseSchema = external_exports.object({
3584
+ generatedAt: external_exports.string().trim().min(1),
3585
+ sessionId: external_exports.string().trim().min(1),
3586
+ turns: external_exports.array(UsageTurnCacheSummarySchema)
3587
+ });
3563
3588
  var UsageSignalTypeSchema = external_exports.enum([
3564
3589
  "usage_spike",
3565
3590
  "model_usage_spike",
@@ -3757,6 +3782,7 @@ var UpdateAppPreferencesRequestSchema = external_exports.object({
3757
3782
  defaultNewProjectDirectory: external_exports.string().trim().max(4096).optional(),
3758
3783
  defaultTeamId: external_exports.string().trim().max(191).nullable().optional(),
3759
3784
  advancedWorkspaceControls: external_exports.boolean().optional(),
3785
+ steerActiveResponses: external_exports.boolean().optional(),
3760
3786
  contextCompaction: ContextCompactionPreferencesSchema.optional(),
3761
3787
  training: TrainingPreferencesSchema.optional(),
3762
3788
  sidebarWidth: external_exports.number().int().min(244).max(560).optional(),
@@ -4399,6 +4425,7 @@ var HostedSavedWorkResponseSchema = external_exports.object({
4399
4425
  var CreateHostedSavedWorkRequestSchema = external_exports.object({
4400
4426
  clientRequestId: external_exports.string().trim().min(1).max(191),
4401
4427
  sourceTurnId: external_exports.string().trim().min(1).max(191).nullable().optional(),
4428
+ targetSessionId: external_exports.string().trim().min(1).max(191).nullable().optional(),
4402
4429
  name: external_exports.string().trim().min(1).max(180),
4403
4430
  prompt: external_exports.string().trim().min(1).max(2e4),
4404
4431
  recurrence: SavedWorkRecurrenceSchema,
@@ -4412,6 +4439,64 @@ var UpdateHostedSavedWorkRequestSchema = external_exports.union([
4412
4439
  recurrence: SavedWorkRecurrenceSchema
4413
4440
  })
4414
4441
  ]);
4442
+ var ChatWorkflowRunStatusSchema = external_exports.enum([
4443
+ "queued",
4444
+ "running",
4445
+ "succeeded",
4446
+ "failed"
4447
+ ]);
4448
+ var ChatWorkflowSchema = external_exports.object({
4449
+ id: external_exports.string(),
4450
+ sessionId: external_exports.string(),
4451
+ sessionTitle: external_exports.string(),
4452
+ sourceTurnId: external_exports.string().nullable(),
4453
+ name: external_exports.string(),
4454
+ prompt: external_exports.string(),
4455
+ recurrence: SavedWorkRecurrenceSchema,
4456
+ enabled: external_exports.boolean(),
4457
+ nextRunAt: external_exports.string().nullable(),
4458
+ lastRunAt: external_exports.string().nullable(),
4459
+ lastRunStatus: ChatWorkflowRunStatusSchema.nullable(),
4460
+ lastRunId: external_exports.string().nullable(),
4461
+ lastError: external_exports.string().nullable(),
4462
+ scheduledRunCount: external_exports.number().int().nonnegative(),
4463
+ createdAt: external_exports.string(),
4464
+ updatedAt: external_exports.string()
4465
+ });
4466
+ var ChatWorkflowRunSchema = external_exports.object({
4467
+ id: external_exports.string(),
4468
+ workflowId: external_exports.string(),
4469
+ sessionId: external_exports.string(),
4470
+ scheduledFor: external_exports.string(),
4471
+ trigger: external_exports.enum(["schedule", "manual"]),
4472
+ status: ChatWorkflowRunStatusSchema,
4473
+ turnId: external_exports.string().nullable(),
4474
+ error: external_exports.string().nullable(),
4475
+ createdAt: external_exports.string(),
4476
+ startedAt: external_exports.string().nullable(),
4477
+ completedAt: external_exports.string().nullable(),
4478
+ updatedAt: external_exports.string()
4479
+ });
4480
+ var CreateChatWorkflowRequestSchema = external_exports.object({
4481
+ sessionId: external_exports.string().trim().min(1).max(191),
4482
+ sourceTurnId: external_exports.string().trim().min(1).max(191).nullable().optional(),
4483
+ name: external_exports.string().trim().min(1).max(180),
4484
+ prompt: external_exports.string().trim().min(1).max(2e4),
4485
+ recurrence: SavedWorkRecurrenceSchema
4486
+ });
4487
+ var UpdateChatWorkflowRequestSchema = external_exports.union([
4488
+ external_exports.object({ enabled: external_exports.boolean() }),
4489
+ external_exports.object({
4490
+ name: external_exports.string().trim().min(1).max(180),
4491
+ prompt: external_exports.string().trim().min(1).max(2e4),
4492
+ recurrence: SavedWorkRecurrenceSchema
4493
+ })
4494
+ ]);
4495
+ var ChatWorkflowsResponseSchema = external_exports.object({
4496
+ workflows: external_exports.array(ChatWorkflowSchema),
4497
+ runs: external_exports.array(ChatWorkflowRunSchema),
4498
+ asOf: external_exports.string()
4499
+ });
4415
4500
 
4416
4501
  // ../../packages/contracts/src/team-chat.ts
4417
4502
  var MetadataSchema2 = external_exports.record(external_exports.string(), external_exports.unknown());
@@ -5631,6 +5716,32 @@ var GraderSpecSchema = external_exports.union([
5631
5716
  HumanGraderSpecSchema,
5632
5717
  CustomVerifierGraderSpecSchema
5633
5718
  ]);
5719
+ var TasksetGraderSourceSchema = external_exports.object({
5720
+ graderId: IdSchema4.nullable(),
5721
+ path: external_exports.string().trim().min(1).max(1e3),
5722
+ language: external_exports.enum(["javascript", "typescript", "python", "json", "text"]),
5723
+ content: external_exports.string().max(2e6),
5724
+ sha256: HashSchema3,
5725
+ declaredSha256: HashSchema3.nullable(),
5726
+ integrity: external_exports.enum(["verified", "unverified", "mismatch"])
5727
+ });
5728
+ var TasksetGraderRuntimeSchema = external_exports.object({
5729
+ protocolVersion: external_exports.string().trim().min(1).max(200),
5730
+ module: external_exports.string().trim().min(1).max(1e3),
5731
+ moduleSha256: HashSchema3,
5732
+ command: external_exports.array(external_exports.string().max(2e3)).max(100),
5733
+ cwd: external_exports.string().trim().min(1).max(4e3),
5734
+ maxTurns: external_exports.number().int().positive().max(100)
5735
+ });
5736
+ var TasksetGraderDetailsResponseSchema = external_exports.object({
5737
+ schemaVersion: external_exports.literal("openpond.tasksetGraderDetails.v1"),
5738
+ taskset: VersionedReleaseRefSchema,
5739
+ sourceTasksetId: IdSchema4,
5740
+ graders: external_exports.array(GraderSpecSchema).max(1e3),
5741
+ runtime: TasksetGraderRuntimeSchema.nullable(),
5742
+ sources: external_exports.array(TasksetGraderSourceSchema).max(1e3),
5743
+ unavailableReason: external_exports.string().max(2e3).nullable()
5744
+ });
5634
5745
  var GraderFixtureLabelSchema = external_exports.enum([
5635
5746
  "positive",
5636
5747
  "negative",
@@ -5774,6 +5885,11 @@ var TrainingMethodReadinessSchema = external_exports.object({
5774
5885
  reasonCodes: external_exports.array(TrainingMethodReadinessReasonCodeSchema).default([]),
5775
5886
  reasons: external_exports.array(external_exports.string().trim().min(1).max(5e3)).default([])
5776
5887
  });
5888
+ var TasksetReadinessFindingSchema = external_exports.object({
5889
+ code: IdSchema4,
5890
+ message: external_exports.string().trim().min(1).max(5e3),
5891
+ path: external_exports.string().trim().max(2e3).nullable()
5892
+ });
5777
5893
  var TasksetReadinessReportSchema = external_exports.object({
5778
5894
  schemaVersion: external_exports.literal("openpond.tasksetReadiness.v1"),
5779
5895
  tasksetId: IdSchema4,
@@ -5785,7 +5901,8 @@ var TasksetReadinessReportSchema = external_exports.object({
5785
5901
  compatibleDestinationClasses: external_exports.array(
5786
5902
  external_exports.enum(["export", "custom", "hosted_managed"])
5787
5903
  ),
5788
- 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([]),
5904
+ blockers: external_exports.array(TasksetReadinessFindingSchema).default([]),
5905
+ advisories: external_exports.array(TasksetReadinessFindingSchema).default([]),
5789
5906
  warnings: external_exports.array(external_exports.string().trim().min(1).max(5e3)).default([]),
5790
5907
  generatedAt: TimestampSchema4
5791
5908
  });
@@ -6344,6 +6461,287 @@ var CorrelatedTelemetryReceiptSchema = external_exports.object({
6344
6461
  contentHash: ReleaseHashSchema
6345
6462
  }).strict();
6346
6463
 
6464
+ // ../../packages/contracts/src/model-comparisons.ts
6465
+ var ModelComparisonSeriesStatusSchema = external_exports.enum(["draft", "active", "completed", "archived"]);
6466
+ var ModelComparisonEntryStatusSchema = external_exports.enum([
6467
+ "draft",
6468
+ "ready",
6469
+ "queued",
6470
+ "running",
6471
+ "candidate",
6472
+ "accepted",
6473
+ "rejected",
6474
+ "no_signal",
6475
+ "failed",
6476
+ "cancelled"
6477
+ ]);
6478
+ var ModelComparisonEntryRoleSchema = external_exports.enum([
6479
+ "seed",
6480
+ "daily_residual",
6481
+ "rank_candidate",
6482
+ "weekly_rollup",
6483
+ "full_refresh"
6484
+ ]);
6485
+ var ModelComparisonParentRuleSchema = external_exports.enum([
6486
+ "base_model",
6487
+ "previous_release",
6488
+ "seed_release",
6489
+ "accepted_daily_head",
6490
+ "accepted_seed"
6491
+ ]);
6492
+ var ModelComparisonTaskSourceSchema = external_exports.enum([
6493
+ "seed_taskset",
6494
+ "nightly_selection",
6495
+ "daily_cohort_union",
6496
+ "eligible_task_pool"
6497
+ ]);
6498
+ var ModelComparisonEvidenceSourceSchema = external_exports.enum([
6499
+ "live_client",
6500
+ "evaluation_attempt",
6501
+ "replay_evidence",
6502
+ "manual"
6503
+ ]);
6504
+ var ModelComparisonScheduleEntrySchema = external_exports.object({
6505
+ id: ReleaseIdSchema,
6506
+ ordinal: external_exports.number().int().nonnegative(),
6507
+ label: external_exports.string().trim().min(1).max(100),
6508
+ role: ModelComparisonEntryRoleSchema,
6509
+ parentRule: ModelComparisonParentRuleSchema,
6510
+ taskSource: ModelComparisonTaskSourceSchema,
6511
+ trainableRank: external_exports.number().int().positive().max(1024),
6512
+ minimumTasks: external_exports.number().int().nonnegative().max(1e5),
6513
+ maximumTasks: external_exports.number().int().positive().max(1e5)
6514
+ }).strict().superRefine((entry, context) => {
6515
+ if (entry.minimumTasks > entry.maximumTasks) {
6516
+ context.addIssue({ code: "custom", path: ["minimumTasks"], message: "The minimum task count cannot exceed the maximum task count." });
6517
+ }
6518
+ const expected = {
6519
+ seed: { parentRules: ["base_model"], taskSource: "seed_taskset" },
6520
+ daily_residual: { parentRules: ["previous_release", "accepted_daily_head"], taskSource: "nightly_selection" },
6521
+ rank_candidate: { parentRules: ["seed_release"], taskSource: "eligible_task_pool" },
6522
+ weekly_rollup: { parentRules: ["seed_release", "accepted_seed"], taskSource: "daily_cohort_union" },
6523
+ full_refresh: { parentRules: ["base_model"], taskSource: "eligible_task_pool" }
6524
+ };
6525
+ const { parentRules, taskSource } = expected[entry.role];
6526
+ if (!parentRules.includes(entry.parentRule)) {
6527
+ context.addIssue({ code: "custom", path: ["parentRule"], message: `${entry.role} requires parent rule ${parentRules.join(" or ")}.` });
6528
+ }
6529
+ if (entry.taskSource !== taskSource) {
6530
+ context.addIssue({ code: "custom", path: ["taskSource"], message: `${entry.role} requires task source ${taskSource}.` });
6531
+ }
6532
+ if (entry.ordinal === 0 && entry.role !== "seed") {
6533
+ context.addIssue({ code: "custom", path: ["role"], message: "The first series entry must be the seed." });
6534
+ }
6535
+ });
6536
+ var ModelComparisonAdvancementPolicySchema = external_exports.object({
6537
+ id: ReleaseIdSchema,
6538
+ version: external_exports.number().int().positive(),
6539
+ requireCheckpoint: external_exports.boolean(),
6540
+ requireAppliedOptimizerUpdate: external_exports.boolean(),
6541
+ minimumCurrentCohortMeanImprovement: external_exports.number().finite(),
6542
+ maximumRetainedMeanRegression: external_exports.number().finite().nonnegative(),
6543
+ blockCriticalInvariantRegression: external_exports.boolean(),
6544
+ automaticDailyAdvancement: external_exports.boolean()
6545
+ }).strict();
6546
+ var ModelComparisonSeriesSchema = external_exports.object({
6547
+ schemaVersion: external_exports.literal("openpond.modelComparisonSeries.v1"),
6548
+ id: ReleaseIdSchema,
6549
+ profileId: ReleaseIdSchema,
6550
+ modelProjectId: ReleaseIdSchema,
6551
+ name: external_exports.string().trim().min(1).max(500),
6552
+ objective: external_exports.string().trim().min(1).max(2e4),
6553
+ status: ModelComparisonSeriesStatusSchema,
6554
+ revision: external_exports.number().int().positive(),
6555
+ productionBinding: external_exports.object({ role: external_exports.literal("chat_manual"), roleTargetId: ReleaseIdSchema }).strict(),
6556
+ baseModel: external_exports.object({ id: ReleaseIdSchema, revision: external_exports.string().trim().min(1).max(256) }).strict(),
6557
+ seedTaskset: VersionedReleaseRefSchema,
6558
+ eligibleTaskPool: VersionedReleaseRefSchema,
6559
+ evaluationTasksets: external_exports.object({
6560
+ development: VersionedReleaseRefSchema,
6561
+ retained: VersionedReleaseRefSchema,
6562
+ frozenFinal: VersionedReleaseRefSchema
6563
+ }).strict(),
6564
+ grader: ImmutableReleaseRefSchema2,
6565
+ benchmarkProtocol: ContinualBenchmarkProtocolReleaseSchema.nullable().default(null),
6566
+ automaticEvaluation: external_exports.object({ enabled: external_exports.boolean() }).strict().default({ enabled: false }),
6567
+ residualProfile: external_exports.object({
6568
+ profileId: ReleaseIdSchema,
6569
+ serializedEnvelopeRank: external_exports.number().int().positive().max(1024),
6570
+ maximumEnabledRank: external_exports.number().int().positive().max(1024),
6571
+ topology: external_exports.literal("uniform_block_masked")
6572
+ }).strict(),
6573
+ schedule: external_exports.array(ModelComparisonScheduleEntrySchema).min(1).max(1e3),
6574
+ scheduleSealedAt: ReleaseTimestampSchema.nullable(),
6575
+ advancementPolicy: ModelComparisonAdvancementPolicySchema,
6576
+ executionPolicy: external_exports.object({ startWhenReady: external_exports.literal(false) }).strict(),
6577
+ acceptedSeedEntryId: ReleaseIdSchema.nullable(),
6578
+ acceptedDailyHeadEntryId: ReleaseIdSchema.nullable(),
6579
+ promotedBindingId: ReleaseIdSchema.nullable(),
6580
+ createdBy: ReleaseIdSchema,
6581
+ createdAt: ReleaseTimestampSchema,
6582
+ updatedAt: ReleaseTimestampSchema
6583
+ }).strict().superRefine((series, context) => {
6584
+ const ordered = [...series.schedule].sort((left, right) => left.ordinal - right.ordinal);
6585
+ if (ordered.some((entry, index) => entry.ordinal !== index)) {
6586
+ context.addIssue({ code: "custom", path: ["schedule"], message: "Schedule ordinals must be unique and contiguous from zero." });
6587
+ }
6588
+ if (new Set(series.schedule.map((entry) => entry.id)).size !== series.schedule.length || new Set(series.schedule.map((entry) => entry.label)).size !== series.schedule.length) {
6589
+ context.addIssue({ code: "custom", path: ["schedule"], message: "Schedule ids and labels must be unique." });
6590
+ }
6591
+ if (series.residualProfile.maximumEnabledRank > series.residualProfile.serializedEnvelopeRank) {
6592
+ context.addIssue({ code: "custom", path: ["residualProfile"], message: "Maximum enabled rank cannot exceed the serialized envelope." });
6593
+ }
6594
+ const evaluationCohorts = Object.values(series.evaluationTasksets);
6595
+ if (new Set(evaluationCohorts.map((reference) => `${reference.id}:${reference.revision}:${reference.contentHash}`)).size !== evaluationCohorts.length) {
6596
+ context.addIssue({ code: "custom", path: ["evaluationTasksets"], message: "Development, retained, and frozen-final cohorts require distinct immutable Taskset releases." });
6597
+ }
6598
+ const seed = series.schedule.find((entry) => entry.role === "seed");
6599
+ if (!seed || series.schedule.filter((entry) => entry.role === "seed").length !== 1) {
6600
+ context.addIssue({ code: "custom", path: ["schedule"], message: "A series requires exactly one seed entry." });
6601
+ return;
6602
+ }
6603
+ const rankCandidates = series.schedule.filter((entry) => entry.role === "rank_candidate");
6604
+ if (rankCandidates.length === 1) {
6605
+ context.addIssue({ code: "custom", path: ["schedule"], message: "A causal rank comparison requires at least two rank candidates." });
6606
+ }
6607
+ if (new Set(rankCandidates.map((entry) => entry.trainableRank)).size !== rankCandidates.length) {
6608
+ context.addIssue({ code: "custom", path: ["schedule"], message: "Causal rank candidates must use distinct trainable ranks." });
6609
+ }
6610
+ const dailyRank = seed.trainableRank + series.schedule.filter((entry) => entry.role === "daily_residual").reduce((sum, entry) => sum + entry.trainableRank, 0);
6611
+ const branchRanks = [
6612
+ dailyRank,
6613
+ ...series.schedule.filter((entry) => entry.role === "weekly_rollup").map((entry) => seed.trainableRank + entry.trainableRank),
6614
+ ...series.schedule.filter((entry) => entry.role === "rank_candidate").map((entry) => seed.trainableRank + entry.trainableRank),
6615
+ ...series.schedule.filter((entry) => entry.role === "full_refresh").map((entry) => entry.trainableRank)
6616
+ ];
6617
+ if (branchRanks.some((rank) => rank > series.residualProfile.maximumEnabledRank)) {
6618
+ context.addIssue({ code: "custom", path: ["schedule"], message: "A declared branch exceeds the maximum enabled rank." });
6619
+ }
6620
+ });
6621
+ var ModelComparisonTaskSelectionInputSchema = external_exports.object({
6622
+ source: ModelComparisonEvidenceSourceSchema,
6623
+ taskIds: external_exports.array(ReleaseIdSchema).min(1).max(1e5),
6624
+ observedFrom: ReleaseTimestampSchema,
6625
+ observedTo: ReleaseTimestampSchema,
6626
+ reviewedAt: ReleaseTimestampSchema,
6627
+ reviewedBy: ReleaseIdSchema,
6628
+ sourceTaskset: VersionedReleaseRefSchema
6629
+ }).strict();
6630
+ var ModelComparisonTaskSelectionSchema = ModelComparisonTaskSelectionInputSchema.extend({
6631
+ derivedFamilyKeys: external_exports.array(ReleaseIdSchema).min(1).max(1e5),
6632
+ familyDerivation: external_exports.object({ algorithm: ReleaseIdSchema, sourceTasksetHash: ReleaseHashSchema }).strict(),
6633
+ selectionHash: ReleaseHashSchema
6634
+ }).strict();
6635
+ var ModelComparisonParentSchema = external_exports.discriminatedUnion("kind", [
6636
+ external_exports.object({ kind: external_exports.literal("base_model"), id: ReleaseIdSchema, revision: external_exports.string().trim().min(1).max(256) }).strict(),
6637
+ external_exports.object({ kind: external_exports.literal("model_version"), id: ReleaseIdSchema, contentHash: ReleaseHashSchema }).strict()
6638
+ ]);
6639
+ var ModelComparisonResidualBlockSchema = external_exports.object({
6640
+ id: ReleaseIdSchema,
6641
+ branchOrdinal: external_exports.number().int().nonnegative(),
6642
+ rank: external_exports.number().int().positive().max(1024),
6643
+ offsetStart: external_exports.number().int().nonnegative(),
6644
+ offsetEnd: external_exports.number().int().positive(),
6645
+ optimizationRole: external_exports.enum(["frozen", "trainable"]),
6646
+ artifactLineageId: ReleaseIdSchema.nullable()
6647
+ }).strict().superRefine((block, context) => {
6648
+ if (block.offsetEnd - block.offsetStart !== block.rank) {
6649
+ context.addIssue({ code: "custom", path: ["offsetEnd"], message: "Block offsets must span exactly the declared rank." });
6650
+ }
6651
+ });
6652
+ var ModelComparisonDecisionSchema = external_exports.object({
6653
+ disposition: external_exports.enum(["advance", "hold", "no_signal"]),
6654
+ policy: external_exports.object({ id: ReleaseIdSchema, version: external_exports.number().int().positive() }).strict(),
6655
+ reasonCodes: external_exports.array(ReleaseIdSchema).min(1).max(100),
6656
+ summary: external_exports.string().trim().min(1).max(5e3),
6657
+ decidedBy: ReleaseIdSchema,
6658
+ decidedAt: ReleaseTimestampSchema
6659
+ }).strict();
6660
+ var ModelComparisonEvaluationLinkSchema = external_exports.object({
6661
+ evaluationRunId: ReleaseIdSchema,
6662
+ modelVersionId: ReleaseIdSchema,
6663
+ taskset: VersionedReleaseRefSchema,
6664
+ grader: ImmutableReleaseRefSchema2,
6665
+ cohortRole: external_exports.enum(["current", "correction", "sibling_verification", "cumulative_known", "development", "retained", "prior_disclosed", "frozen_final"]),
6666
+ panelId: ReleaseIdSchema.nullable().default(null),
6667
+ protocol: external_exports.object({ id: ReleaseIdSchema, revision: external_exports.number().int().positive(), contentHash: ReleaseHashSchema }).strict().nullable().default(null)
6668
+ }).strict();
6669
+ var ModelComparisonRunAttemptSchema = external_exports.object({
6670
+ attemptOrdinal: external_exports.number().int().positive(),
6671
+ trainingPlanId: ReleaseIdSchema.nullable(),
6672
+ modelRunId: ReleaseIdSchema.nullable(),
6673
+ terminalStatus: external_exports.enum(["failed", "cancelled"]),
6674
+ queuedAt: ReleaseTimestampSchema.nullable(),
6675
+ startedAt: ReleaseTimestampSchema.nullable(),
6676
+ completedAt: ReleaseTimestampSchema
6677
+ }).strict();
6678
+ var ModelComparisonEntryRefSchema = external_exports.object({
6679
+ seriesId: ReleaseIdSchema,
6680
+ entryId: ReleaseIdSchema,
6681
+ scheduleEntryId: ReleaseIdSchema,
6682
+ ordinal: external_exports.number().int().nonnegative(),
6683
+ releaseHash: ReleaseHashSchema
6684
+ }).strict();
6685
+ var ModelComparisonSeriesEntrySchema = external_exports.object({
6686
+ schemaVersion: external_exports.literal("openpond.modelComparisonSeriesEntry.v1"),
6687
+ id: ReleaseIdSchema,
6688
+ seriesId: ReleaseIdSchema,
6689
+ profileId: ReleaseIdSchema,
6690
+ modelProjectId: ReleaseIdSchema,
6691
+ scheduleEntryId: ReleaseIdSchema,
6692
+ releaseHash: ReleaseHashSchema,
6693
+ ordinal: external_exports.number().int().nonnegative(),
6694
+ label: external_exports.string().trim().min(1).max(100),
6695
+ role: ModelComparisonEntryRoleSchema,
6696
+ branch: external_exports.enum(["daily", "rank_candidate", "weekly_rollup", "full_refresh"]),
6697
+ status: ModelComparisonEntryStatusSchema,
6698
+ parent: ModelComparisonParentSchema,
6699
+ taskset: VersionedReleaseRefSchema,
6700
+ sourceTasksets: external_exports.array(VersionedReleaseRefSchema).min(1).max(1e3),
6701
+ taskSelection: ModelComparisonTaskSelectionSchema.nullable(),
6702
+ trainableRank: external_exports.number().int().positive().max(1024),
6703
+ serializedEnvelopeRank: external_exports.number().int().positive().max(1024),
6704
+ enabledCumulativeRank: external_exports.number().int().positive().max(1024),
6705
+ trainableBlockId: ReleaseIdSchema,
6706
+ residualBlocks: external_exports.array(ModelComparisonResidualBlockSchema).min(1).max(1024),
6707
+ attemptOrdinal: external_exports.number().int().positive().default(1),
6708
+ priorRunAttempts: external_exports.array(ModelComparisonRunAttemptSchema).max(100).default([]),
6709
+ trainingPlanId: ReleaseIdSchema.nullable(),
6710
+ modelRunId: ReleaseIdSchema.nullable(),
6711
+ modelVersionId: ReleaseIdSchema.nullable(),
6712
+ evaluations: external_exports.array(ModelComparisonEvaluationLinkSchema).max(1e5),
6713
+ decision: ModelComparisonDecisionSchema.nullable(),
6714
+ promotionBindingId: ReleaseIdSchema.nullable(),
6715
+ queuedAt: ReleaseTimestampSchema.nullable(),
6716
+ startedAt: ReleaseTimestampSchema.nullable(),
6717
+ completedAt: ReleaseTimestampSchema.nullable(),
6718
+ createdAt: ReleaseTimestampSchema,
6719
+ updatedAt: ReleaseTimestampSchema
6720
+ }).strict().superRefine((entry, context) => {
6721
+ const ordered = [...entry.residualBlocks].sort((left, right) => left.offsetStart - right.offsetStart);
6722
+ if (ordered.some((block, index) => block.offsetStart !== (index === 0 ? 0 : ordered[index - 1].offsetEnd))) {
6723
+ context.addIssue({ code: "custom", path: ["residualBlocks"], message: "Residual block offsets must be contiguous from zero." });
6724
+ }
6725
+ const enabled = ordered.at(-1)?.offsetEnd ?? 0;
6726
+ if (enabled !== entry.enabledCumulativeRank || enabled > entry.serializedEnvelopeRank) {
6727
+ context.addIssue({ code: "custom", path: ["enabledCumulativeRank"], message: "Enabled rank must match the block inventory and fit the envelope." });
6728
+ }
6729
+ const trainable = entry.residualBlocks.filter((block) => block.optimizationRole === "trainable");
6730
+ if (trainable.length !== 1 || trainable[0]?.id !== entry.trainableBlockId || trainable[0]?.rank !== entry.trainableRank) {
6731
+ context.addIssue({ code: "custom", path: ["trainableBlockId"], message: "Exactly one block must be trainable during the Run and match trainableRank." });
6732
+ }
6733
+ const attemptOrdinals = entry.priorRunAttempts.map((attempt) => attempt.attemptOrdinal);
6734
+ if (entry.priorRunAttempts.length !== entry.attemptOrdinal - 1 || attemptOrdinals.some((ordinal, index) => ordinal !== index + 1)) {
6735
+ context.addIssue({ code: "custom", path: ["priorRunAttempts"], message: "Prior Run attempts must be a contiguous history before the active attempt." });
6736
+ }
6737
+ });
6738
+ var ModelComparisonQueueReleaseRequestSchema = external_exports.object({
6739
+ seriesId: ReleaseIdSchema,
6740
+ scheduleEntryId: ReleaseIdSchema,
6741
+ taskSelection: ModelComparisonTaskSelectionInputSchema.nullable(),
6742
+ expectedSeriesRevision: external_exports.number().int().positive()
6743
+ }).strict();
6744
+
6347
6745
  // ../../packages/contracts/src/model-lifecycle.ts
6348
6746
  var ModelVersionKindSchema = external_exports.enum([
6349
6747
  "base_reference",
@@ -6383,6 +6781,7 @@ var ModelVersionSchema = external_exports.object({
6383
6781
  status: external_exports.enum(["available", "failed"]),
6384
6782
  baseModel: BaseModelPreferenceSchema,
6385
6783
  taskset: VersionedReleaseRefSchema,
6784
+ comparisonSeriesEntry: ModelComparisonEntryRefSchema.nullable().optional(),
6386
6785
  releaseGraph: external_exports.object({
6387
6786
  resolvedBundleHash: ReleaseHashSchema,
6388
6787
  profileRelease: VersionedReleaseRefSchema,
@@ -6524,10 +6923,10 @@ var RewardModelRunSchema = external_exports.preprocess((value) => {
6524
6923
  completedAt: ReleaseTimestampSchema.nullable(),
6525
6924
  updatedAt: ReleaseTimestampSchema
6526
6925
  }).strict()).superRefine((run, context) => {
6527
- if (run.status === "succeeded" && (!run.receipt || !run.qualificationReport)) {
6926
+ if (run.status === "succeeded" && !run.receipt) {
6528
6927
  context.addIssue({
6529
6928
  code: "custom",
6530
- message: "A successful Reward Model Run requires a canonical receipt and qualification report."
6929
+ message: "A successful Reward Model Run requires a canonical receipt."
6531
6930
  });
6532
6931
  }
6533
6932
  if (run.status !== "succeeded" && run.rewardModelVersionId !== null) {
@@ -6725,8 +7124,121 @@ var ModelEvaluationStopReceiptSchema = external_exports.object({
6725
7124
  attempts: external_exports.array(ModelEvaluationAttemptSchema).max(1e4),
6726
7125
  contentHash: ReleaseHashSchema
6727
7126
  }).strict();
6728
- var ModelEvaluationConfigurationSchema = external_exports.object({
6729
- benchmarkId: ReleaseIdSchema,
7127
+ var ConfidenceIntervalSchema = external_exports.object({
7128
+ level: external_exports.literal(0.95),
7129
+ lower: external_exports.number().finite(),
7130
+ upper: external_exports.number().finite()
7131
+ }).strict().superRefine((interval, context) => {
7132
+ if (interval.lower > interval.upper) {
7133
+ context.addIssue({ code: "custom", message: "A confidence interval's lower bound cannot exceed its upper bound." });
7134
+ }
7135
+ });
7136
+ var ModelComparisonBenchmarkReceiptSchema = external_exports.object({
7137
+ schemaVersion: external_exports.literal("openpond.modelComparisonBenchmarkReceipt.v1"),
7138
+ benchmarkId: external_exports.literal("model-comparison"),
7139
+ target: external_exports.object({
7140
+ kind: external_exports.enum(["base_model", "model_version", "external_reference"]),
7141
+ label: external_exports.string().trim().min(1).max(300),
7142
+ modelVersionId: ReleaseIdSchema.nullable(),
7143
+ model: ChatModelRefSchema.nullable()
7144
+ }).strict(),
7145
+ taskset: VersionedReleaseRefSchema,
7146
+ grader: ImmutableReleaseRefSchema2,
7147
+ sampling: external_exports.object({
7148
+ seeds: external_exports.array(external_exports.number().int()).min(1).max(100),
7149
+ repetitions: external_exports.number().int().positive().max(20)
7150
+ }).strict(),
7151
+ deterministic: external_exports.object({
7152
+ attemptedTaskCount: external_exports.number().int().nonnegative(),
7153
+ completedTaskCount: external_exports.number().int().nonnegative(),
7154
+ passedTaskCount: external_exports.number().int().nonnegative(),
7155
+ failedTaskCount: external_exports.number().int().nonnegative(),
7156
+ meanScore: external_exports.number().finite().nullable(),
7157
+ passRate: external_exports.number().min(0).max(1).nullable(),
7158
+ passRateCi95: ConfidenceIntervalSchema.nullable()
7159
+ }).strict(),
7160
+ judge: external_exports.object({
7161
+ judgeModel: ChatModelRefSchema,
7162
+ judgeRelease: ImmutableReleaseRefSchema2,
7163
+ rubricRelease: ImmutableReleaseRefSchema2,
7164
+ calibrationRelease: ImmutableReleaseRefSchema2,
7165
+ score: external_exports.number().min(0).max(100),
7166
+ scoreCi95: ConfidenceIntervalSchema,
7167
+ comparisonCount: external_exports.number().int().positive(),
7168
+ wins: external_exports.number().int().nonnegative(),
7169
+ ties: external_exports.number().int().nonnegative(),
7170
+ losses: external_exports.number().int().nonnegative(),
7171
+ referenceLabel: external_exports.string().trim().min(1).max(300)
7172
+ }).strict().superRefine((judge, context) => {
7173
+ if (judge.wins + judge.ties + judge.losses !== judge.comparisonCount) {
7174
+ context.addIssue({ code: "custom", message: "Judge win, tie, and loss counts must equal comparisonCount." });
7175
+ }
7176
+ }).nullable(),
7177
+ attempts: external_exports.array(external_exports.object({
7178
+ attemptId: ReleaseIdSchema.nullable().default(null),
7179
+ taskId: ReleaseIdSchema,
7180
+ seed: external_exports.number().int(),
7181
+ repetition: external_exports.number().int().nonnegative(),
7182
+ status: external_exports.enum(["succeeded", "failed"]),
7183
+ deterministicScore: external_exports.number().finite().nullable(),
7184
+ passed: external_exports.boolean().nullable(),
7185
+ judgeScore: external_exports.number().min(0).max(100).nullable(),
7186
+ judgePreference: external_exports.enum(["win", "tie", "loss"]).nullable(),
7187
+ transcriptHash: ReleaseHashSchema.nullable(),
7188
+ traceHash: ReleaseHashSchema.nullable(),
7189
+ transcriptArtifact: external_exports.object({
7190
+ artifactPath: external_exports.string().trim().min(1).max(2e3),
7191
+ jsonPointer: external_exports.string().trim().min(1).max(1e3)
7192
+ }).strict().nullable().default(null),
7193
+ traceArtifact: external_exports.object({
7194
+ artifactPath: external_exports.string().trim().min(1).max(2e3),
7195
+ jsonPointer: external_exports.string().trim().min(1).max(1e3)
7196
+ }).strict().nullable().default(null),
7197
+ latencyMs: external_exports.number().int().nonnegative().nullable().default(null),
7198
+ failureClass: TaskFailureClassSchema.nullable()
7199
+ }).strict()).max(1e5),
7200
+ usage: external_exports.object({
7201
+ policy: EvaluationUsageCategorySchema.nullable(),
7202
+ judge: EvaluationUsageCategorySchema.nullable(),
7203
+ observedSpendUsd: external_exports.number().nonnegative().nullable(),
7204
+ evaluationGpuSeconds: external_exports.number().nonnegative().nullable().default(null)
7205
+ }).strict(),
7206
+ managedServing: external_exports.object({
7207
+ jobId: ReleaseIdSchema,
7208
+ terminalState: external_exports.enum(["completed", "cancelled", "failed", "budget_exhausted"]),
7209
+ sourcePolicyVersion: external_exports.number().int().nonnegative(),
7210
+ sourceAdapterSha256: ReleaseHashSchema.nullable(),
7211
+ servedPolicyVersion: external_exports.number().int().nonnegative().nullable(),
7212
+ servedAdapterSha256: ReleaseHashSchema.nullable(),
7213
+ accruedSpendUsd: external_exports.number().nonnegative(),
7214
+ cleanupAttestationHash: ReleaseHashSchema,
7215
+ resourceCount: external_exports.number().int().nonnegative(),
7216
+ activeResourceCount: external_exports.literal(0)
7217
+ }).strict().nullable().default(null),
7218
+ evidenceSnapshot: external_exports.object({
7219
+ id: ReleaseIdSchema,
7220
+ contentHash: ReleaseHashSchema,
7221
+ artifactPath: external_exports.string().trim().min(1).max(2e3)
7222
+ }).strict(),
7223
+ completedAt: ReleaseTimestampSchema,
7224
+ contentHash: ReleaseHashSchema
7225
+ }).strict().superRefine((receipt, context) => {
7226
+ const deterministic = receipt.deterministic;
7227
+ if (deterministic.completedTaskCount > deterministic.attemptedTaskCount) {
7228
+ context.addIssue({ code: "custom", message: "Completed task count cannot exceed attempted task count." });
7229
+ }
7230
+ if (deterministic.passedTaskCount + deterministic.failedTaskCount !== deterministic.completedTaskCount) {
7231
+ context.addIssue({ code: "custom", message: "Passed and failed task counts must equal completed task count." });
7232
+ }
7233
+ if (deterministic.completedTaskCount === 0 !== (deterministic.meanScore === null)) {
7234
+ context.addIssue({ code: "custom", message: "Deterministic mean score is available exactly when tasks completed." });
7235
+ }
7236
+ if (deterministic.completedTaskCount === 0 !== (deterministic.passRate === null)) {
7237
+ context.addIssue({ code: "custom", message: "Deterministic pass rate is available exactly when tasks completed." });
7238
+ }
7239
+ });
7240
+ var HarnessRefinerEvaluationConfigurationSchema = external_exports.object({
7241
+ benchmarkId: external_exports.literal("harness-refiner"),
6730
7242
  model: ChatModelRefSchema,
6731
7243
  upstreamModel: external_exports.object({
6732
7244
  providerId: ReleaseIdSchema,
@@ -6752,11 +7264,55 @@ var ModelEvaluationConfigurationSchema = external_exports.object({
6752
7264
  attemptCount: external_exports.number().int().positive()
6753
7265
  }).strict()).length(4)
6754
7266
  }).strict();
7267
+ var ModelComparisonEvaluationConfigurationSchema = external_exports.object({
7268
+ benchmarkId: external_exports.literal("model-comparison"),
7269
+ target: external_exports.object({
7270
+ kind: external_exports.enum(["base_model", "model_version", "external_reference"]),
7271
+ label: external_exports.string().trim().min(1).max(300),
7272
+ modelVersionId: ReleaseIdSchema.nullable(),
7273
+ model: ChatModelRefSchema.nullable()
7274
+ }).strict(),
7275
+ grader: ImmutableReleaseRefSchema2,
7276
+ judge: external_exports.object({
7277
+ model: ChatModelRefSchema,
7278
+ release: ImmutableReleaseRefSchema2,
7279
+ rubricRelease: ImmutableReleaseRefSchema2,
7280
+ calibrationRelease: ImmutableReleaseRefSchema2,
7281
+ referenceLabel: external_exports.string().trim().min(1).max(300)
7282
+ }).strict().nullable(),
7283
+ seeds: external_exports.array(external_exports.number().int()).min(1).max(100),
7284
+ repetitions: external_exports.number().int().positive().max(20),
7285
+ maximumSpendUsd: external_exports.number().nonnegative(),
7286
+ series: external_exports.object({
7287
+ id: ReleaseIdSchema,
7288
+ protocol: external_exports.object({ id: ReleaseIdSchema, revision: external_exports.number().int().positive(), contentHash: ReleaseHashSchema }).strict()
7289
+ }).strict().nullable().default(null),
7290
+ panel: external_exports.object({
7291
+ id: ReleaseIdSchema,
7292
+ role: external_exports.enum(["correction", "sibling_verification", "cumulative_known", "development", "retained", "frozen_final"]),
7293
+ passLabel: ReleaseIdSchema.nullable()
7294
+ }).strict().nullable().default(null),
7295
+ comparisonPair: external_exports.object({
7296
+ entryId: ReleaseIdSchema,
7297
+ parent: ModelComparisonParentSchema,
7298
+ candidateModelVersionId: ReleaseIdSchema
7299
+ }).strict().nullable().default(null),
7300
+ attemptPlan: external_exports.array(external_exports.object({
7301
+ stage: external_exports.literal("comparison"),
7302
+ split: external_exports.string().trim().min(1).max(100),
7303
+ taskIds: external_exports.array(ReleaseIdSchema).min(1).max(1e5),
7304
+ attemptCount: external_exports.number().int().positive()
7305
+ }).strict()).length(1)
7306
+ }).strict();
7307
+ var ModelEvaluationConfigurationSchema = external_exports.union([
7308
+ HarnessRefinerEvaluationConfigurationSchema,
7309
+ ModelComparisonEvaluationConfigurationSchema
7310
+ ]);
6755
7311
  var ModelRunSchema = external_exports.object({
6756
7312
  schemaVersion: external_exports.literal("openpond.modelRun.v1"),
6757
7313
  id: ReleaseIdSchema,
6758
7314
  modelId: ReleaseIdSchema,
6759
- modelVersionId: ReleaseIdSchema,
7315
+ modelVersionId: ReleaseIdSchema.nullable(),
6760
7316
  profileId: ReleaseIdSchema,
6761
7317
  kind: external_exports.enum(["rollout_smoke", "training", "evaluation"]),
6762
7318
  status: external_exports.enum([
@@ -6778,6 +7334,7 @@ var ModelRunSchema = external_exports.object({
6778
7334
  ]).nullable(),
6779
7335
  destinationId: ReleaseIdSchema.nullable(),
6780
7336
  taskset: VersionedReleaseRefSchema,
7337
+ comparisonSeriesEntry: ModelComparisonEntryRefSchema.nullable().optional(),
6781
7338
  harnessRelease: ImmutableReleaseRefSchema2.nullable().optional(),
6782
7339
  quote: external_exports.object({
6783
7340
  maximumSpendUsd: external_exports.number().nonnegative(),
@@ -6805,7 +7362,8 @@ var ModelRunSchema = external_exports.object({
6805
7362
  receipt: external_exports.union([
6806
7363
  ModelRunReceiptSchema,
6807
7364
  ModelEvaluationReceiptSchema,
6808
- ModelEvaluationStopReceiptSchema
7365
+ ModelEvaluationStopReceiptSchema,
7366
+ ModelComparisonBenchmarkReceiptSchema
6809
7367
  ]).nullable(),
6810
7368
  adapterArtifactLineageId: ReleaseIdSchema.nullable(),
6811
7369
  failure: external_exports.string().trim().min(1).max(5e3).nullable(),
@@ -6825,7 +7383,7 @@ var ModelRunSchema = external_exports.object({
6825
7383
  message: "An evaluation Model Run requires evaluation configuration and cannot claim training method, destination, or adapter lineage."
6826
7384
  });
6827
7385
  }
6828
- if (run.kind === "evaluation" && run.receipt && run.receipt.schemaVersion !== "openpond.modelEvaluationReceipt.v1" && run.receipt.schemaVersion !== "openpond.modelEvaluationStopReceipt.v1") {
7386
+ if (run.kind === "evaluation" && run.receipt && run.receipt.schemaVersion !== "openpond.modelEvaluationReceipt.v1" && run.receipt.schemaVersion !== "openpond.modelEvaluationStopReceipt.v1" && run.receipt.schemaVersion !== "openpond.modelComparisonBenchmarkReceipt.v1") {
6829
7387
  context.addIssue({
6830
7388
  code: "custom",
6831
7389
  message: "An evaluation Model Run requires an evaluation receipt."
@@ -6845,10 +7403,347 @@ var ModelRunSchema = external_exports.object({
6845
7403
  }
6846
7404
  });
6847
7405
 
7406
+ // ../../packages/contracts/src/model-currency.ts
7407
+ var ModelCurrencyEvidenceStateSchema = external_exports.enum(["measuring", "up_to_date", "needs_attention"]);
7408
+ var ModelCurrencyTaskClassificationSchema = external_exports.enum(["fixed", "retained", "regressed", "unresolved", "unavailable"]);
7409
+ var ModelCurrencyAttemptEvidenceRefSchema = external_exports.object({
7410
+ evaluationRunId: ReleaseIdSchema,
7411
+ attemptKey: ReleaseIdSchema,
7412
+ artifactPath: external_exports.string().trim().min(1).max(2e3),
7413
+ jsonPointer: external_exports.string().trim().min(1).max(1e3),
7414
+ transcriptHash: ReleaseHashSchema.nullable(),
7415
+ traceHash: ReleaseHashSchema.nullable()
7416
+ }).strict();
7417
+ var Interval = external_exports.object({ level: external_exports.literal(0.95), lower: external_exports.number().finite(), upper: external_exports.number().finite() }).strict();
7418
+ var ModelCurrencyPanelMetricSchema = external_exports.object({
7419
+ panelId: ReleaseIdSchema,
7420
+ panelRole: ContinualBenchPanelRoleSchema,
7421
+ passLabel: ReleaseIdSchema.nullable(),
7422
+ taskset: VersionedReleaseRefSchema,
7423
+ attempted: external_exports.number().int().nonnegative(),
7424
+ available: external_exports.number().int().nonnegative(),
7425
+ passed: external_exports.number().int().nonnegative(),
7426
+ strictSuccess: external_exports.number().min(0).max(1).nullable(),
7427
+ strictSuccessCi95: Interval.nullable(),
7428
+ judgeScore: external_exports.number().min(0).max(100).nullable(),
7429
+ judgeScoreCi95: Interval.nullable()
7430
+ }).strict();
7431
+ var ModelCurrencySnapshotSchema = external_exports.object({
7432
+ schemaVersion: external_exports.literal("openpond.modelCurrencySnapshot.v1"),
7433
+ id: ReleaseIdSchema,
7434
+ contentHash: ReleaseHashSchema,
7435
+ seriesId: ReleaseIdSchema,
7436
+ protocol: external_exports.object({ id: ReleaseIdSchema, revision: external_exports.number().int().positive(), contentHash: ReleaseHashSchema }).strict(),
7437
+ entryId: ReleaseIdSchema,
7438
+ passLabel: ReleaseIdSchema,
7439
+ parent: external_exports.discriminatedUnion("kind", [
7440
+ external_exports.object({ kind: external_exports.literal("base_model"), id: ReleaseIdSchema, revision: external_exports.string().trim().min(1).max(500) }).strict(),
7441
+ external_exports.object({ kind: external_exports.literal("model_version"), id: ReleaseIdSchema, contentHash: ReleaseHashSchema }).strict()
7442
+ ]),
7443
+ candidate: external_exports.object({ kind: external_exports.literal("model_version"), id: ReleaseIdSchema, contentHash: ReleaseHashSchema }).strict(),
7444
+ sources: external_exports.object({
7445
+ evaluationRunIds: external_exports.array(ReleaseIdSchema).max(1e5),
7446
+ attemptIds: external_exports.array(ReleaseIdSchema).max(1e6),
7447
+ tasksets: external_exports.array(VersionedReleaseRefSchema).max(1e4),
7448
+ grader: ImmutableReleaseRefSchema2,
7449
+ judge: ImmutableReleaseRefSchema2.nullable(),
7450
+ calibration: ImmutableReleaseRefSchema2.nullable()
7451
+ }).strict(),
7452
+ matches: external_exports.array(external_exports.object({
7453
+ key: ReleaseIdSchema,
7454
+ panelId: ReleaseIdSchema,
7455
+ panelRole: ContinualBenchPanelRoleSchema,
7456
+ taskId: ReleaseIdSchema,
7457
+ issueFamilyId: ReleaseIdSchema,
7458
+ seed: external_exports.number().int(),
7459
+ repetition: external_exports.number().int().nonnegative(),
7460
+ classification: ModelCurrencyTaskClassificationSchema,
7461
+ parentPassed: external_exports.boolean().nullable(),
7462
+ candidatePassed: external_exports.boolean().nullable(),
7463
+ parentAttempt: ModelCurrencyAttemptEvidenceRefSchema.nullable(),
7464
+ candidateAttempt: ModelCurrencyAttemptEvidenceRefSchema.nullable()
7465
+ }).strict()).max(1e6),
7466
+ taskIds: external_exports.object({
7467
+ fixed: external_exports.array(ReleaseIdSchema).max(1e6),
7468
+ retained: external_exports.array(ReleaseIdSchema).max(1e6),
7469
+ regressed: external_exports.array(ReleaseIdSchema).max(1e6),
7470
+ unresolved: external_exports.array(ReleaseIdSchema).max(1e6),
7471
+ unavailable: external_exports.array(ReleaseIdSchema).max(1e6)
7472
+ }).strict(),
7473
+ panels: external_exports.array(ModelCurrencyPanelMetricSchema).max(1e4),
7474
+ metrics: external_exports.object({
7475
+ knownIssueCoverage: external_exports.number().min(0).max(1).nullable(),
7476
+ issueFamilyGeneralization: external_exports.number().min(0).max(1).nullable(),
7477
+ behavioralRetention: external_exports.number().min(0).max(1).nullable(),
7478
+ currentAcquisitionDelta: external_exports.number().finite().nullable(),
7479
+ retainedDeltaPoints: external_exports.number().finite().nullable(),
7480
+ frontierStrictDelta: external_exports.number().finite().nullable(),
7481
+ pairedPValue: external_exports.number().min(0).max(1).nullable(),
7482
+ wins: external_exports.number().int().nonnegative(),
7483
+ ties: external_exports.number().int().nonnegative(),
7484
+ losses: external_exports.number().int().nonnegative()
7485
+ }).strict(),
7486
+ statistics: external_exports.object({
7487
+ matchedAttemptCount: external_exports.number().int().nonnegative(),
7488
+ strictDelta: external_exports.number().finite().nullable(),
7489
+ strictDeltaCi95: Interval.nullable(),
7490
+ exactPairedBinaryPValue: external_exports.number().min(0).max(1).nullable(),
7491
+ pairedBootstrapSamples: external_exports.number().int().positive()
7492
+ }).strict(),
7493
+ criteria: external_exports.object({
7494
+ allRequiredAttemptsTerminal: external_exports.boolean(),
7495
+ criticalCorrectionPassRate: external_exports.number().min(0).max(1).nullable(),
7496
+ siblingPassRate: external_exports.number().min(0).max(1).nullable(),
7497
+ behavioralRetentionRate: external_exports.number().min(0).max(1).nullable(),
7498
+ retainedRegressionPoints: external_exports.number().finite().nullable(),
7499
+ criticalPriorRegressionCount: external_exports.number().int().nonnegative(),
7500
+ thresholdRelease: ImmutableReleaseRefSchema2
7501
+ }).strict(),
7502
+ efficiency: external_exports.object({
7503
+ inputTokens: external_exports.number().int().nonnegative(),
7504
+ outputTokens: external_exports.number().int().nonnegative(),
7505
+ totalTokens: external_exports.number().int().nonnegative(),
7506
+ costUsd: external_exports.number().nonnegative().nullable(),
7507
+ latencyMs: external_exports.number().int().nonnegative(),
7508
+ tokensPerSuccess: external_exports.number().nonnegative().nullable(),
7509
+ throughputPerHour: external_exports.number().nonnegative().nullable(),
7510
+ gpuSeconds: external_exports.number().nonnegative().nullable()
7511
+ }).strict(),
7512
+ invariants: external_exports.object({
7513
+ systemPromptHash: ReleaseHashSchema,
7514
+ toolSchema: ImmutableReleaseRefSchema2,
7515
+ application: ImmutableReleaseRefSchema2,
7516
+ harness: ImmutableReleaseRefSchema2,
7517
+ runtime: ImmutableReleaseRefSchema2,
7518
+ grader: ImmutableReleaseRefSchema2,
7519
+ autoRefinerEnabled: external_exports.boolean()
7520
+ }).strict(),
7521
+ evidenceState: ModelCurrencyEvidenceStateSchema,
7522
+ evidenceReasons: external_exports.array(ReleaseIdSchema).max(100),
7523
+ projectedAt: ReleaseTimestampSchema
7524
+ }).strict();
7525
+
7526
+ // ../../packages/contracts/src/continual-support-review.ts
7527
+ var ContinualLearningResponseTargetSchema = external_exports.discriminatedUnion("kind", [
7528
+ external_exports.object({
7529
+ kind: external_exports.literal("base_model"),
7530
+ id: ReleaseIdSchema,
7531
+ revision: external_exports.string().trim().min(1).max(500),
7532
+ label: external_exports.string().trim().min(1).max(300)
7533
+ }).strict(),
7534
+ external_exports.object({
7535
+ kind: external_exports.literal("model_version"),
7536
+ id: ReleaseIdSchema,
7537
+ label: external_exports.string().trim().min(1).max(300)
7538
+ }).strict(),
7539
+ external_exports.object({
7540
+ kind: external_exports.literal("captured_model"),
7541
+ id: ReleaseIdSchema,
7542
+ label: external_exports.string().trim().min(1).max(300)
7543
+ }).strict()
7544
+ ]);
7545
+ var ContinualLearningCapturedAttemptSchema = external_exports.union([
7546
+ external_exports.object({
7547
+ source: external_exports.literal("evaluation_run").default("evaluation_run"),
7548
+ evaluationRunId: ReleaseIdSchema,
7549
+ attemptId: ReleaseIdSchema,
7550
+ modelLabel: external_exports.string().trim().min(1).max(300).nullable().default(null),
7551
+ modelVersionId: ReleaseIdSchema.nullable().default(null),
7552
+ reward: external_exports.number().finite().nullable(),
7553
+ components: external_exports.record(external_exports.string(), external_exports.number().finite()).default({})
7554
+ }).strict(),
7555
+ external_exports.object({
7556
+ source: external_exports.literal("imported_response"),
7557
+ modelLabel: external_exports.string().trim().min(1).max(300),
7558
+ modelVersionId: ReleaseIdSchema.nullable().default(null),
7559
+ response: external_exports.unknown().refine((value) => value !== void 0, "An imported model response is required."),
7560
+ reward: external_exports.number().finite().nullable().default(null),
7561
+ components: external_exports.record(external_exports.string(), external_exports.number().finite()).default({})
7562
+ }).strict()
7563
+ ]);
7564
+ var ContinualLearningObservedAttemptSchema = external_exports.union([
7565
+ external_exports.object({
7566
+ taskId: ReleaseIdSchema,
7567
+ target: ContinualLearningResponseTargetSchema,
7568
+ attempt: ContinualLearningCapturedAttemptSchema
7569
+ }).strict(),
7570
+ external_exports.object({
7571
+ taskId: ReleaseIdSchema,
7572
+ target: external_exports.enum(["base", "current"]).default("current"),
7573
+ attempt: ContinualLearningCapturedAttemptSchema
7574
+ }).strict(),
7575
+ external_exports.object({
7576
+ taskId: ReleaseIdSchema,
7577
+ target: external_exports.enum(["base", "current"]).default("current"),
7578
+ evaluationRunId: ReleaseIdSchema,
7579
+ attemptId: ReleaseIdSchema,
7580
+ reward: external_exports.number().finite().nullable(),
7581
+ components: external_exports.record(external_exports.string(), external_exports.number().finite()).default({})
7582
+ }).strict().transform(({ taskId, target, ...attempt }) => ({
7583
+ taskId,
7584
+ target,
7585
+ attempt: { source: "evaluation_run", modelLabel: null, modelVersionId: null, ...attempt }
7586
+ }))
7587
+ ]);
7588
+ var ContinualLearningDailyBatchManifestSchema = external_exports.object({
7589
+ schemaVersion: external_exports.literal("openpond.continualLearningDailyBatchManifest.v1"),
7590
+ id: ReleaseIdSchema,
7591
+ seriesId: ReleaseIdSchema,
7592
+ scheduleEntryId: ReleaseIdSchema,
7593
+ dayOrdinal: external_exports.number().int().positive().max(1e4),
7594
+ sourceTaskset: VersionedReleaseRefSchema,
7595
+ taskIds: external_exports.array(ReleaseIdSchema).min(1).max(1e3),
7596
+ observedAttempts: external_exports.array(ContinualLearningObservedAttemptSchema).max(1e3).default([]),
7597
+ sourceFileName: external_exports.string().trim().min(1).max(500).nullable().default(null),
7598
+ availableAt: ReleaseTimestampSchema
7599
+ }).strict().superRefine((batch, context) => {
7600
+ if (new Set(batch.taskIds).size !== batch.taskIds.length) {
7601
+ context.addIssue({ code: "custom", path: ["taskIds"], message: "A daily batch cannot repeat a task." });
7602
+ }
7603
+ if (new Set(batch.observedAttempts.map((attempt) => `${attempt.taskId}:${observedTargetKey(attempt.target)}`)).size !== batch.observedAttempts.length) {
7604
+ context.addIssue({ code: "custom", path: ["observedAttempts"], message: "An intake batch cannot repeat a task and Policy target pair." });
7605
+ }
7606
+ const taskIds = new Set(batch.taskIds);
7607
+ if (batch.observedAttempts.some((attempt) => !taskIds.has(attempt.taskId))) {
7608
+ context.addIssue({ code: "custom", path: ["observedAttempts"], message: "Observed attempts must belong to tasks in the daily batch." });
7609
+ }
7610
+ });
7611
+ var ContinualLearningDailyBatchSchema = external_exports.object({
7612
+ schemaVersion: external_exports.literal("openpond.continualLearningDailyBatch.v1"),
7613
+ id: ReleaseIdSchema,
7614
+ seriesId: ReleaseIdSchema,
7615
+ scheduleEntryId: ReleaseIdSchema,
7616
+ dayOrdinal: external_exports.number().int().positive().max(1e4),
7617
+ label: external_exports.string().trim().min(1).max(100),
7618
+ runMode: external_exports.enum(["automatic", "manual"]).optional(),
7619
+ source: external_exports.enum(["json_upload", "sealed_fixture"]),
7620
+ sourceFileName: external_exports.string().trim().min(1).max(500).nullable(),
7621
+ sourceTaskset: VersionedReleaseRefSchema,
7622
+ tasks: external_exports.array(external_exports.object({
7623
+ taskId: ReleaseIdSchema,
7624
+ taskContentHash: ReleaseHashSchema,
7625
+ familyKey: ReleaseIdSchema,
7626
+ disposition: external_exports.enum(["include", "defer", "exclude"]).nullable(),
7627
+ oracleReview: external_exports.enum(["pending", "confirmed", "needs_correction"]),
7628
+ note: external_exports.string().trim().max(2e3),
7629
+ observedAttempt: ContinualLearningCapturedAttemptSchema.nullable(),
7630
+ baselineAttempt: ContinualLearningCapturedAttemptSchema.nullable().default(null),
7631
+ responses: external_exports.array(external_exports.object({
7632
+ target: ContinualLearningResponseTargetSchema,
7633
+ attempt: ContinualLearningCapturedAttemptSchema
7634
+ }).strict()).max(100).default([]),
7635
+ stagedAt: ReleaseTimestampSchema.nullable().default(null),
7636
+ queuedEntry: ModelComparisonEntryRefSchema.nullable().default(null)
7637
+ }).strict()).min(1).max(1e3),
7638
+ intakeEvaluation: external_exports.object({
7639
+ status: external_exports.enum(["awaiting", "running", "ready", "failed"]),
7640
+ requestedTargets: external_exports.array(external_exports.enum(["base", "current"])).max(2).default(["base", "current"]),
7641
+ requestedPolicies: external_exports.array(ContinualLearningResponseTargetSchema).max(100).default([]),
7642
+ runs: external_exports.array(external_exports.object({
7643
+ target: ContinualLearningResponseTargetSchema,
7644
+ runId: ReleaseIdSchema
7645
+ }).strict()).max(100).default([]),
7646
+ baselineRunId: ReleaseIdSchema.nullable(),
7647
+ currentRunId: ReleaseIdSchema.nullable(),
7648
+ currentPolicy: external_exports.discriminatedUnion("kind", [
7649
+ external_exports.object({ kind: external_exports.literal("base_model"), id: ReleaseIdSchema }).strict(),
7650
+ external_exports.object({ kind: external_exports.literal("model_version"), id: ReleaseIdSchema }).strict()
7651
+ ]).nullable(),
7652
+ failure: external_exports.string().trim().min(1).max(2e3).nullable()
7653
+ }).strict().default({
7654
+ status: "awaiting",
7655
+ requestedTargets: ["base", "current"],
7656
+ requestedPolicies: [],
7657
+ runs: [],
7658
+ baselineRunId: null,
7659
+ currentRunId: null,
7660
+ currentPolicy: null,
7661
+ failure: null
7662
+ }),
7663
+ status: external_exports.enum(["pending", "reviewed", "queued"]),
7664
+ queuedEntry: ModelComparisonEntryRefSchema.nullable(),
7665
+ reviewedBy: ReleaseIdSchema.nullable(),
7666
+ reviewedAt: ReleaseTimestampSchema.nullable(),
7667
+ availableAt: ReleaseTimestampSchema,
7668
+ revision: external_exports.number().int().positive(),
7669
+ createdAt: ReleaseTimestampSchema,
7670
+ updatedAt: ReleaseTimestampSchema
7671
+ }).strict().superRefine((batch, context) => {
7672
+ if (new Set(batch.tasks.map((task) => task.taskId)).size !== batch.tasks.length) {
7673
+ context.addIssue({ code: "custom", path: ["tasks"], message: "A daily batch cannot repeat a task." });
7674
+ }
7675
+ for (const [taskIndex, task] of batch.tasks.entries()) {
7676
+ const keys = task.responses.map((response) => responseTargetKey(response.target));
7677
+ if (new Set(keys).size !== keys.length) {
7678
+ context.addIssue({ code: "custom", path: ["tasks", taskIndex, "responses"], message: "A task cannot repeat a model response target." });
7679
+ }
7680
+ }
7681
+ const complete = batch.tasks.every((task) => task.disposition !== null && task.oracleReview !== "pending" && (task.oracleReview !== "needs_correction" || task.note.length > 0));
7682
+ if (batch.status !== "pending" && !complete) {
7683
+ context.addIssue({ code: "custom", path: ["tasks"], message: "Every task requires a decision and oracle review before the day completes." });
7684
+ }
7685
+ if (batch.status === "queued" !== (batch.queuedEntry !== null)) {
7686
+ context.addIssue({ code: "custom", path: ["queuedEntry"], message: "Only a queued day carries an exact series-entry reference." });
7687
+ }
7688
+ if (batch.status === "pending" && (batch.reviewedAt !== null || batch.reviewedBy !== null)) {
7689
+ context.addIssue({ code: "custom", path: ["reviewedAt"], message: "A pending day cannot carry reviewer completion identity." });
7690
+ }
7691
+ if (batch.status !== "pending" && (batch.reviewedAt === null || batch.reviewedBy === null)) {
7692
+ context.addIssue({ code: "custom", path: ["reviewedAt"], message: "Reviewed identity is required after a day review completes." });
7693
+ }
7694
+ });
7695
+ var ContinualBenchIssueReviewSchema = external_exports.object({
7696
+ schemaVersion: external_exports.literal("openpond.continualBenchIssueReview.v1"),
7697
+ id: ReleaseIdSchema,
7698
+ seriesId: ReleaseIdSchema,
7699
+ scheduleEntryId: ReleaseIdSchema,
7700
+ passLabel: ReleaseIdSchema,
7701
+ packet: ContinualBenchIssuePacketSchema,
7702
+ splitManifest: external_exports.object({ id: ReleaseIdSchema, contentHash: ReleaseHashSchema }).strict(),
7703
+ decisions: external_exports.array(external_exports.object({
7704
+ taskId: ReleaseIdSchema,
7705
+ disposition: external_exports.enum(["include", "defer", "exclude"]).nullable(),
7706
+ note: external_exports.string().trim().max(2e3)
7707
+ }).strict()).min(2).max(1e4),
7708
+ status: external_exports.enum(["pending", "reviewed", "queued"]),
7709
+ queuedEntry: ModelComparisonEntryRefSchema.nullable(),
7710
+ reviewedBy: ReleaseIdSchema.nullable(),
7711
+ reviewedAt: ReleaseTimestampSchema.nullable(),
7712
+ revision: external_exports.number().int().positive(),
7713
+ createdAt: ReleaseTimestampSchema,
7714
+ updatedAt: ReleaseTimestampSchema
7715
+ }).strict().superRefine((review, context) => {
7716
+ const caseIds = [...review.packet.cases.map((item) => item.taskId)].sort();
7717
+ const decisionIds = [...review.decisions.map((item) => item.taskId)].sort();
7718
+ if (JSON.stringify(caseIds) !== JSON.stringify(decisionIds)) context.addIssue({ code: "custom", path: ["decisions"], message: "Review decisions must cover the exact issue-packet cases." });
7719
+ const complete = review.decisions.every((item) => item.disposition !== null && item.note.length > 0);
7720
+ if (review.status !== "pending" && !complete) context.addIssue({ code: "custom", path: ["decisions"], message: "Every case requires a disposition and note before review completes." });
7721
+ if (review.status === "queued" !== (review.queuedEntry !== null)) context.addIssue({ code: "custom", path: ["queuedEntry"], message: "Only a queued review carries an exact series-entry reference." });
7722
+ }).readonly();
7723
+ function responseTargetKey(target) {
7724
+ return `${target.kind}:${target.id}`;
7725
+ }
7726
+ function observedTargetKey(target) {
7727
+ return typeof target === "string" ? target : responseTargetKey(target);
7728
+ }
7729
+
6848
7730
  // ../../packages/contracts/src/training-policy-optimization.ts
6849
7731
  var IdSchema7 = external_exports.string().trim().min(1).max(240);
6850
7732
  var HashSchema6 = external_exports.string().trim().min(8).max(256);
6851
7733
  var RftLossMethodSchema = external_exports.enum(["grpo", "dapo", "gspo-token"]);
7734
+ var AdamwOptimizerConfigSchema = external_exports.object({
7735
+ name: external_exports.literal("adamw").default("adamw"),
7736
+ weightDecay: external_exports.number().nonnegative().max(1).default(0),
7737
+ beta1: external_exports.number().positive().lt(1).default(0.9),
7738
+ beta2: external_exports.number().positive().lt(1).default(0.999),
7739
+ epsilon: external_exports.number().positive().max(0.01).default(1e-8)
7740
+ }).strict().default({
7741
+ name: "adamw",
7742
+ weightDecay: 0,
7743
+ beta1: 0.9,
7744
+ beta2: 0.999,
7745
+ epsilon: 1e-8
7746
+ });
6852
7747
  var TrainingModelRefSchema = external_exports.object({
6853
7748
  id: IdSchema7,
6854
7749
  revision: external_exports.string().trim().min(1).max(256),
@@ -6868,7 +7763,13 @@ var GrpoOptimizerSchema = external_exports.object({
6868
7763
  method: external_exports.literal("grpo"),
6869
7764
  groupSize: external_exports.number().int().min(2).max(128),
6870
7765
  normalization: external_exports.literal("group_standardized"),
6871
- loss: RftLossMethodSchema
7766
+ advantageEpsilon: external_exports.number().positive().max(0.01).default(1e-8),
7767
+ loss: RftLossMethodSchema,
7768
+ clipRange: external_exports.number().positive().max(1).default(0.2),
7769
+ iterations: external_exports.number().int().min(2).max(16).default(2),
7770
+ microbatchSize: external_exports.number().int().positive().max(128).default(1),
7771
+ gradientAccumulationSteps: external_exports.number().int().positive().max(128).default(1),
7772
+ adamw: AdamwOptimizerConfigSchema
6872
7773
  });
6873
7774
  var PpoOptimizerSchema = external_exports.object({
6874
7775
  method: external_exports.literal("ppo"),
@@ -6887,7 +7788,8 @@ var PolicyOptimizerSchema = external_exports.discriminatedUnion("method", [
6887
7788
  ]);
6888
7789
  var LearnedPreferenceRewardBindingSchema = external_exports.object({
6889
7790
  rewardModelVersion: external_exports.object({ id: IdSchema7, contentHash: HashSchema6 }).strict(),
6890
- qualificationReport: external_exports.object({ id: IdSchema7, contentHash: HashSchema6 }).strict(),
7791
+ qualificationReport: external_exports.object({ id: IdSchema7, contentHash: HashSchema6 }).strict().nullable().default(null),
7792
+ evaluationReferences: external_exports.array(external_exports.object({ id: IdSchema7, contentHash: HashSchema6 }).strict()).max(1e3).default([]),
6891
7793
  checkpoint: external_exports.object({
6892
7794
  id: IdSchema7,
6893
7795
  contentHash: HashSchema6,
@@ -7597,7 +8499,10 @@ var RewardModelRecipeSchema = external_exports.object({
7597
8499
  processorRelease: ImmutableReleaseRefSchema2,
7598
8500
  input: external_exports.object({
7599
8501
  kind: external_exports.literal("structured_text"),
7600
- serialization: external_exports.literal("scenario_input_and_candidate_json_v1"),
8502
+ serialization: external_exports.enum([
8503
+ "scenario_input_and_candidate_json_v1",
8504
+ "visible_agent_trajectory_v1"
8505
+ ]),
7601
8506
  maxCharacters: external_exports.number().int().positive().max(5e5)
7602
8507
  }).strict().default({
7603
8508
  kind: "structured_text",
@@ -7675,7 +8580,13 @@ var RftRecipeSchema = external_exports.object({
7675
8580
  }),
7676
8581
  optimizer: external_exports.object({
7677
8582
  learningRate: external_exports.number().positive(),
7678
- maxSteps: external_exports.number().int().positive().max(1e5)
8583
+ maxSteps: external_exports.number().int().positive().max(1e5),
8584
+ clipRange: external_exports.number().positive().max(1).default(0.2),
8585
+ iterations: external_exports.number().int().min(2).max(16).default(2),
8586
+ microbatchSize: external_exports.number().int().positive().max(64).default(1),
8587
+ gradientAccumulationSteps: external_exports.number().int().positive().max(64).default(1),
8588
+ advantageEpsilon: external_exports.number().positive().max(0.01).default(1e-8),
8589
+ adamw: AdamwOptimizerConfigSchema
7679
8590
  }),
7680
8591
  loss: external_exports.object({
7681
8592
  method: RftLossMethodSchema.default("grpo"),
@@ -7691,10 +8602,22 @@ var RftRecipeSchema = external_exports.object({
7691
8602
  }),
7692
8603
  resourceLimits: external_exports.object({
7693
8604
  wallTimeMs: external_exports.number().int().positive().max(24 * 60 * 60 * 1e3),
8605
+ maxGpuSeconds: external_exports.number().int().positive().max(10800).optional(),
7694
8606
  maxRollouts: external_exports.number().int().positive().max(1e5),
7695
8607
  maxPayloadBytes: external_exports.number().int().positive().max(10 * 1024 * 1024)
7696
8608
  }),
7697
- policyOptimization: PolicyOptimizationContractSchema.nullable().default(null)
8609
+ policyOptimization: PolicyOptimizationContractSchema.nullable().default(null),
8610
+ continuation: external_exports.object({
8611
+ schemaVersion: external_exports.literal("openpond.crossJobContinuationRequest.v1"),
8612
+ parentArtifact: ImmutableReleaseRefSchema2,
8613
+ sourceArtifact: external_exports.object({
8614
+ jobId: TrainingIdSchema,
8615
+ artifactId: TrainingIdSchema,
8616
+ checkpointId: TrainingIdSchema,
8617
+ contentHash: TrainingHashSchema
8618
+ }).strict(),
8619
+ optimizerMode: external_exports.enum(["continue", "reset"])
8620
+ }).strict().optional()
7698
8621
  });
7699
8622
  var DpoRecipeSchema = external_exports.object({
7700
8623
  schemaVersion: external_exports.literal("openpond.dpoRecipe.v1"),
@@ -7872,6 +8795,7 @@ var TrainingPlanSchema = external_exports.object({
7872
8795
  modelId: TrainingIdSchema,
7873
8796
  tasksetId: TrainingIdSchema,
7874
8797
  tasksetHash: TrainingHashSchema,
8798
+ comparisonSeriesEntry: ModelComparisonEntryRefSchema.nullable().optional(),
7875
8799
  harnessRelease: ImmutableReleaseRefSchema2.nullable().optional(),
7876
8800
  modelImprovementQualification: ImmutableReleaseRefSchema2.nullable().optional(),
7877
8801
  destinationId: TrainingDestinationIdSchema,
@@ -8058,8 +8982,10 @@ var PolicyOptimizationMetricSchema = external_exports.object({
8058
8982
  meanReward: external_exports.number().nullable(),
8059
8983
  meanReturn: external_exports.number().nullable(),
8060
8984
  kl: external_exports.number().nullable(),
8985
+ behaviorPolicyKlPreUpdate: external_exports.number().nonnegative().nullable().default(null),
8061
8986
  entropy: external_exports.number().nullable(),
8062
8987
  policyClipFraction: external_exports.number().min(0).max(1).nullable(),
8988
+ behaviorPolicyClipFractionPreUpdate: external_exports.number().min(0).max(1).nullable().default(null),
8063
8989
  valueClipFraction: external_exports.number().min(0).max(1).nullable(),
8064
8990
  explainedVariance: external_exports.number().nullable(),
8065
8991
  rolloutLearnerLag: external_exports.number().int().nonnegative().nullable(),
@@ -8070,16 +8996,22 @@ var PolicyOptimizationMetricSchema = external_exports.object({
8070
8996
  costUsd: external_exports.number().nonnegative().nullable()
8071
8997
  });
8072
8998
  var ManagedTrainingRunEvidenceSchema = external_exports.object({
8073
- schemaVersion: external_exports.literal("openpond.managedTrainingRunEvidence.v1"),
8999
+ schemaVersion: external_exports.literal("openpond.managedTrainingRunEvidence.v2"),
8074
9000
  provider: TrainingIdSchema,
8075
9001
  providerRunId: TrainingIdSchema,
8076
9002
  state: TrainingIdSchema,
8077
9003
  progress: external_exports.object({
8078
9004
  targetOptimizerSteps: external_exports.number().int().nonnegative(),
8079
- committedOptimizerSteps: external_exports.number().int().nonnegative()
9005
+ committedOptimizerSteps: external_exports.number().int().nonnegative(),
9006
+ skippedOptimizerSteps: external_exports.number().int().nonnegative()
8080
9007
  }),
8081
9008
  reward: external_exports.object({
8082
9009
  finalMean: external_exports.number().nullable(),
9010
+ variance: external_exports.number().nonnegative().nullable(),
9011
+ minimum: external_exports.number().nullable(),
9012
+ maximum: external_exports.number().nullable(),
9013
+ distinctValueCount: external_exports.number().int().nonnegative(),
9014
+ noSignalGroupCount: external_exports.number().int().nonnegative(),
8083
9015
  trajectoryCount: external_exports.number().int().nonnegative(),
8084
9016
  eligibleTrajectoryCount: external_exports.number().int().nonnegative()
8085
9017
  }),
@@ -8092,7 +9024,9 @@ var ManagedTrainingRunEvidenceSchema = external_exports.object({
8092
9024
  provider: TrainingIdSchema,
8093
9025
  gpuType: external_exports.string().trim().min(1).max(300).nullable(),
8094
9026
  gpuCount: external_exports.number().int().nonnegative().nullable(),
8095
- hourlyCostUsd: external_exports.number().nonnegative().nullable()
9027
+ hourlyCostUsd: external_exports.number().nonnegative().nullable(),
9028
+ durationSeconds: external_exports.number().nonnegative().nullable(),
9029
+ gpuSeconds: external_exports.number().nonnegative().nullable()
8096
9030
  }),
8097
9031
  cost: external_exports.object({
8098
9032
  totalUsd: external_exports.number().nonnegative().nullable()
@@ -8103,6 +9037,9 @@ var ManagedTrainingRunEvidenceSchema = external_exports.object({
8103
9037
  sha256: TrainingHashSchema.nullable(),
8104
9038
  sizeBytes: external_exports.number().int().nonnegative().nullable()
8105
9039
  }).nullable(),
9040
+ movement: external_exports.object({
9041
+ adapterDeltaNorm: external_exports.number().nonnegative().nullable()
9042
+ }),
8106
9043
  evaluations: external_exports.array(
8107
9044
  external_exports.object({
8108
9045
  kind: external_exports.enum(["baseline", "candidate"]),
@@ -8287,6 +9224,11 @@ var TrainingStateResponseSchema = external_exports.object({
8287
9224
  modelProjects: external_exports.array(ModelProjectSchema2).default([]),
8288
9225
  modelVersions: external_exports.array(ModelVersionSchema).default([]),
8289
9226
  modelRuns: external_exports.array(ModelRunSchema).default([]),
9227
+ comparisonSeries: external_exports.array(ModelComparisonSeriesSchema).default([]),
9228
+ comparisonSeriesEntries: external_exports.array(ModelComparisonSeriesEntrySchema).default([]),
9229
+ modelCurrencySnapshots: external_exports.array(ModelCurrencySnapshotSchema).default([]),
9230
+ continualBenchIssueReviews: external_exports.array(ContinualBenchIssueReviewSchema).default([]),
9231
+ continualLearningDailyBatches: external_exports.array(ContinualLearningDailyBatchSchema).default([]),
8290
9232
  rewardModelVersions: external_exports.array(RewardModelVersionSchema).default([]),
8291
9233
  rewardModelRuns: external_exports.array(RewardModelRunSchema).default([]),
8292
9234
  modelTasksets: external_exports.array(TasksetSchema).default([]),
@@ -8842,6 +9784,12 @@ var TrainingExecutionStatusSchema = external_exports.object({
8842
9784
  ]),
8843
9785
  phase: external_exports.string().trim().min(1).max(200),
8844
9786
  progress: external_exports.number().min(0).max(1).nullable(),
9787
+ rolloutProgress: external_exports.object({
9788
+ groupsCompleted: external_exports.number().int().nonnegative(),
9789
+ groupsTarget: external_exports.number().int().nonnegative(),
9790
+ optimizerUpdatesApplied: external_exports.number().int().nonnegative(),
9791
+ optimizerUpdatesSkipped: external_exports.number().int().nonnegative()
9792
+ }).strict().optional(),
8845
9793
  updatedAt: ReleaseTimestampSchema,
8846
9794
  errorCode: ReleaseIdSchema.nullable()
8847
9795
  }).strict();
@@ -8860,7 +9808,8 @@ var TrainingArtifactsSchema = external_exports.object({
8860
9808
  ]),
8861
9809
  objectRef: external_exports.string().trim().min(1).max(2e3),
8862
9810
  sha256: ReleaseHashSchema,
8863
- sizeBytes: external_exports.number().int().nonnegative()
9811
+ sizeBytes: external_exports.number().int().nonnegative(),
9812
+ metadata: external_exports.record(external_exports.string(), external_exports.unknown()).optional()
8864
9813
  }).strict()
8865
9814
  ),
8866
9815
  contentHash: ReleaseHashSchema