openpond 0.0.69 → 0.1.0

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 (188) 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-Y6MW4XCG.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-NPNIL6SQ.js → chunk-AN2EYCN3.js} +1 -1
  7. package/dist/chunks/{chunk-F36ZVO6U.js → chunk-CNTM26OW.js} +1 -1
  8. package/dist/chunks/{chunk-FEOLMLYU.js → chunk-EFET7LB7.js} +21 -2
  9. package/dist/chunks/{training-5CPTZRVC.js → chunk-J7PYGDRY.js} +251 -16
  10. package/dist/chunks/{chunk-Y57RTLVV.js → chunk-N3TGCM7J.js} +93 -35
  11. package/dist/chunks/{chunk-BLFIIAWZ.js → chunk-NTK22KJD.js} +68 -21
  12. package/dist/chunks/{chunk-QTN6HXOR.js → chunk-P6JLLWMI.js} +2 -2
  13. package/dist/chunks/chunk-R3C3MNSI.js +140 -0
  14. package/dist/chunks/{chunk-7C4OIFOC.js → chunk-TGM5IPYO.js} +31 -3
  15. package/dist/chunks/{chunk-OOM2PHBE.js → chunk-TZWAUV2L.js} +1130 -226
  16. package/dist/chunks/{cli-HIXVXM72.js → cli-L5VPOV6I.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-IXYDKOBI.js → src-A6O6ZGIL.js} +15899 -8010
  29. package/dist/chunks/{src-LKJBD5AM.js → src-BKBZ7WLO.js} +4 -3
  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-XM5BY3MO.js} +4 -2
  34. package/dist/cli.js +13 -13
  35. package/dist/web/assets/App-DfiCmBv6.js +173 -0
  36. package/dist/web/assets/{AppDialog-DX-xs3KA.js → AppDialog-CSXu5wRu.js} +1 -1
  37. package/dist/web/assets/{AppTerminalPanel-CYVj_ITT.js → AppTerminalPanel-y2bVL2RV.js} +2 -2
  38. package/dist/web/assets/{AppsView-ByjyGog7.js → AppsView-Bs9pwD2H.js} +1 -1
  39. package/dist/web/assets/{BrowserSidebar-BDwtMAZl.js → BrowserSidebar-CUgT5V1m.js} +1 -1
  40. package/dist/web/assets/{CartesianChart-Dv6jJfPR.js → CartesianChart-DA85hfrP.js} +1 -1
  41. package/dist/web/assets/{CollaborationTabs-CC5AIhMh.js → CollaborationTabs-B8mlPhM3.js} +1 -1
  42. package/dist/web/assets/{CommandMenu-Ct0Sx7yP.js → CommandMenu-EwUGCeC_.js} +1 -1
  43. package/dist/web/assets/{CommunityView-C_zVE0jg.js → CommunityView-IHNq-YJz.js} +1 -1
  44. package/dist/web/assets/{ComposerCreateImproveStrip-CNn4OywM.js → ComposerCreateImproveStrip-qOL2zA26.js} +1 -1
  45. package/dist/web/assets/{GetStartedView-DRFpHDLd.js → GetStartedView-C2ypO0v7.js} +1 -1
  46. package/dist/web/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
  47. package/dist/web/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
  48. package/dist/web/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
  49. package/dist/web/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
  50. package/dist/web/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
  51. package/dist/web/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
  52. package/dist/web/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
  53. package/dist/web/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
  54. package/dist/web/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
  55. package/dist/web/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
  56. package/dist/web/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
  57. package/dist/web/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
  58. package/dist/web/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
  59. package/dist/web/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
  60. package/dist/web/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
  61. package/dist/web/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
  62. package/dist/web/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
  63. package/dist/web/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
  64. package/dist/web/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
  65. package/dist/web/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
  66. package/dist/web/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
  67. package/dist/web/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
  68. package/dist/web/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
  69. package/dist/web/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
  70. package/dist/web/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
  71. package/dist/web/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
  72. package/dist/web/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
  73. package/dist/web/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
  74. package/dist/web/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
  75. package/dist/web/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
  76. package/dist/web/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
  77. package/dist/web/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
  78. package/dist/web/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
  79. package/dist/web/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
  80. package/dist/web/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
  81. package/dist/web/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
  82. package/dist/web/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
  83. package/dist/web/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
  84. package/dist/web/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
  85. package/dist/web/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
  86. package/dist/web/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
  87. package/dist/web/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
  88. package/dist/web/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
  89. package/dist/web/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
  90. package/dist/web/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
  91. package/dist/web/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
  92. package/dist/web/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
  93. package/dist/web/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
  94. package/dist/web/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
  95. package/dist/web/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
  96. package/dist/web/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
  97. package/dist/web/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
  98. package/dist/web/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
  99. package/dist/web/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
  100. package/dist/web/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
  101. package/dist/web/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
  102. package/dist/web/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
  103. package/dist/web/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
  104. package/dist/web/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
  105. package/dist/web/assets/LabModelVersionDetailPage-BK0eoUlW.js +1 -0
  106. package/dist/web/assets/{LabSkillSidebar-B9jY4AgE.js → LabSkillSidebar-CRPb4qBn.js} +1 -1
  107. package/dist/web/assets/LabsRoute-Bw-HD6QC.js +2 -0
  108. package/dist/web/assets/LabsRoute-CGFgymTX.css +1 -0
  109. package/dist/web/assets/MainChatThread-Cu6_UnNE.js +2 -0
  110. package/dist/web/assets/MainPane-k1iII9e9.js +8 -0
  111. package/dist/web/assets/MarkdownText-N60tvLug.js +268 -0
  112. package/dist/web/assets/Messages-CYQFLElK.js +10 -0
  113. package/dist/web/assets/{NativeSkillSidebar-DjebFRoi.js → NativeSkillSidebar-zbx7WmOk.js} +1 -1
  114. package/dist/web/assets/{NewExperienceSwitcher-C-bJxHxY.js → NewExperienceSwitcher-B0zev5Sx.js} +1 -1
  115. package/dist/web/assets/{NewProjectDialog-Cx8QcZm7.js → NewProjectDialog-lZlzrp-R.js} +1 -1
  116. package/dist/web/assets/{OutputsPage-Y9HM-SHX.js → OutputsPage-B4zYYUT5.js} +1 -1
  117. package/dist/web/assets/{ProjectsPage-BBr58yKT.js → ProjectsPage-97wgc84s.js} +1 -1
  118. package/dist/web/assets/RightChatPanelStack-I2znDCc7.js +1 -0
  119. package/dist/web/assets/{RightSidebarHomePanel-Dx-1elSI.js → RightSidebarHomePanel-BUcWVJi-.js} +1 -1
  120. package/dist/web/assets/ScheduledWorkPage-Bp-t0eVj.js +1 -0
  121. package/dist/web/assets/SettingsView-C1xyn1Y4.js +6 -0
  122. package/dist/web/assets/{TeamChatView-Bkyhu40R.js → TeamChatView-Fj5_yjVE.js} +2 -2
  123. package/dist/web/assets/{TerminalOverlay-CaCkZDzO.js → TerminalOverlay-D2WBeJvp.js} +1 -1
  124. package/dist/web/assets/{TrainingCreationPanel-Vvi41WNT.js → TrainingCreationPanel-dYW_dh3M.js} +1 -1
  125. package/dist/web/assets/{TrainingDraftPanel-C2C3hffI.js → TrainingDraftPanel-zeJWmmW6.js} +1 -1
  126. package/dist/web/assets/{UsageSettingsSection-DpPBd-ra.js → UsageSettingsSection-B6SBqYuB.js} +2 -2
  127. package/dist/web/assets/WorkSidebarPanel-BwbWKpOZ.js +1 -0
  128. package/dist/web/assets/{WorkspaceDiffPanel-D_zKOW4K.js → WorkspaceDiffPanel-D9Kp0vFw.js} +6 -6
  129. package/dist/web/assets/WorkspaceEnvironmentMenu-D-3YGp06.js +32 -0
  130. package/dist/web/assets/WorkspaceGitDialogs-BUbzUN4m.js +1 -0
  131. package/dist/web/assets/{WorkspaceMonacoEditor--GOVrHFp.js → WorkspaceMonacoEditor-CXPY7bBI.js} +3 -3
  132. package/dist/web/assets/{arrow-up-right-BRZWXpqJ.js → arrow-up-right-C7VWgGQP.js} +1 -1
  133. package/dist/web/assets/{chat-file-links-CgFHK89C.js → chat-file-links-CqfMdhHQ.js} +1 -1
  134. package/dist/web/assets/chevron-up-DD9Tei-Q.js +1 -0
  135. package/dist/web/assets/{clipboard-dPd_3lpG.js → clipboard-B-8k7mlT.js} +1 -1
  136. package/dist/web/assets/{cloud-upload-DOwvN4hp.js → cloud-upload-CUVFzURz.js} +1 -1
  137. package/dist/web/assets/{cssMode-BM4j9M0D.js → cssMode-DYvfmqoL.js} +1 -1
  138. package/dist/web/assets/{folder-open-DavjPCw4.js → folder-open-CnbcQIy8.js} +1 -1
  139. package/dist/web/assets/{folder-plus-Dyqast6G.js → folder-plus-BOaLAKy4.js} +1 -1
  140. package/dist/web/assets/{git-commit-horizontal-s3X0cQlz.js → git-commit-horizontal-DQeHsooT.js} +1 -1
  141. package/dist/web/assets/{htmlMode-Nlx7ckXa.js → htmlMode-BXEI-BVY.js} +1 -1
  142. package/dist/web/assets/index-CGMb_VXm.css +1 -0
  143. package/dist/web/assets/{index-5-B6FIuE.js → index-D-VK8mST.js} +1 -1
  144. package/dist/web/assets/index-D-WCyNdJ.js +1 -0
  145. package/dist/web/assets/{info-CVvrNOHr.js → info-DtzDuGLn.js} +1 -1
  146. package/dist/web/assets/{jsonMode-B7monA6g.js → jsonMode-Dosjh_hK.js} +1 -1
  147. package/dist/web/assets/{lspLanguageFeatures-CcJ9GDtK.js → lspLanguageFeatures-BNe-6FJA.js} +1 -1
  148. package/dist/web/assets/{minimize-2-O1DnznGK.js → minimize-2-DnxKN5oK.js} +1 -1
  149. package/dist/web/assets/{monaco.contribution-QOOCizYq.js → monaco.contribution-CfF-ajhi.js} +2 -2
  150. package/dist/web/assets/{monaco.contribution-2PozfA9g.js → monaco.contribution-CnkROzNv.js} +2 -2
  151. package/dist/web/assets/{monaco.contribution-BSJ2jQTi.js → monaco.contribution-Dyns81H2.js} +2 -2
  152. package/dist/web/assets/{monaco.contribution-BMAF2bmO.js → monaco.contribution-ytyanGyj.js} +2 -2
  153. package/dist/web/assets/{play-BpCc5ZbR.js → play-B3o6IAQd.js} +1 -1
  154. package/dist/web/assets/{python-BK41iew-.js → python-B7zZ_9Z_.js} +1 -1
  155. package/dist/web/assets/{refresh-cw-Csoy1ev1.js → refresh-cw-DSJZXa8S.js} +1 -1
  156. package/dist/web/assets/{save-Dbztj0W7.js → save-iC-AXHN6.js} +1 -1
  157. package/dist/web/assets/square-B2roZTxf.js +1 -0
  158. package/dist/web/assets/{toggleHighContrast-DrmwDpyz.js → toggleHighContrast-CjlV4YHK.js} +1 -1
  159. package/dist/web/assets/{training-daZlCtKV.css → training-eg6uFi3M.css} +1 -1
  160. package/dist/web/assets/{tsMode-CFgCMr7d.js → tsMode-XmKmSq0B.js} +1 -1
  161. package/dist/web/assets/{upload-C5nhiSMq.js → upload-BgHXNjfJ.js} +1 -1
  162. package/dist/web/assets/{useLocalAgentSchedules-LAsobERb.js → useLocalAgentSchedules-CVJz0AMr.js} +1 -1
  163. package/dist/web/assets/{wifi-off-BHxh2UbA.js → wifi-off-CneL8bDZ.js} +1 -1
  164. package/dist/web/assets/{workers-FKb-NyBI.js → workers-CT7VYBR5.js} +1 -1
  165. package/dist/web/assets/{yaml-C5DbF9S6.js → yaml-CF8jchCz.js} +1 -1
  166. package/dist/web/index.html +2 -2
  167. package/docs/command-reference.md +58 -2
  168. package/package.json +3 -1
  169. package/dist/web/assets/App-BF9L0JUv.js +0 -171
  170. package/dist/web/assets/LabModelVersionDetailPage-BzF-IVXQ.js +0 -1
  171. package/dist/web/assets/LabsRoute-CS_orT9s.css +0 -1
  172. package/dist/web/assets/LabsRoute-Di1Zs4gZ.js +0 -2
  173. package/dist/web/assets/MainChatThread-8VzlD8Hi.js +0 -2
  174. package/dist/web/assets/MainPane-StAOFINE.js +0 -6
  175. package/dist/web/assets/MarkdownText-B8D_ftSJ.js +0 -9
  176. package/dist/web/assets/Messages-TY62tiDp.js +0 -10
  177. package/dist/web/assets/RightChatPanelStack-DzUbDKwp.js +0 -1
  178. package/dist/web/assets/ScheduledWorkPage-BuXw_W8b.js +0 -1
  179. package/dist/web/assets/SettingsView-DB_zPHYY.js +0 -6
  180. package/dist/web/assets/WorkSidebarPanel-CeWGboTh.js +0 -1
  181. package/dist/web/assets/WorkspaceEnvironmentMenu-BTz9FISP.js +0 -32
  182. package/dist/web/assets/WorkspaceGitDialogs-BnBRUYpS.js +0 -1
  183. package/dist/web/assets/activity-DA5DNQwD.js +0 -1
  184. package/dist/web/assets/chevron-up-DSv2auz_.js +0 -1
  185. package/dist/web/assets/git-branch-zKnZdQiX.js +0 -1
  186. package/dist/web/assets/index-CQ3CPVHZ.css +0 -1
  187. package/dist/web/assets/index-CuoGlf-W.js +0 -1
  188. package/dist/web/assets/square-ju7fWa0W.js +0 -1
@@ -0,0 +1,140 @@
1
+ import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
+ import {
3
+ external_exports
4
+ } from "./chunk-FQS2QL5F.js";
5
+
6
+ // ../../packages/continual-support/dist/schema.js
7
+ var Id = external_exports.string().trim().min(1).max(240);
8
+ var Hash = external_exports.string().regex(/^[a-f0-9]{64}$/);
9
+ var Timestamp = external_exports.string().datetime({ offset: true });
10
+ var ImmutableRef = external_exports.object({ id: Id, contentHash: Hash }).strict();
11
+ var VersionedRef = ImmutableRef.extend({ revision: external_exports.number().int().positive() }).strict();
12
+ var ChatModelRef = external_exports.object({ providerId: Id, modelId: external_exports.string().trim().min(1).max(300) }).strict();
13
+ var ContinualBenchPanelRoleSchema = external_exports.enum(["correction", "sibling_verification", "cumulative_known", "development", "retained", "frozen_final", "training_eligible"]);
14
+ var ContinualBenchIssueCaseSchema = external_exports.object({
15
+ taskId: Id,
16
+ taskContentHash: Hash,
17
+ panelRole: ContinualBenchPanelRoleSchema,
18
+ passLabel: Id.nullable(),
19
+ optimizerEligible: external_exports.boolean(),
20
+ criticalInvariantIds: external_exports.array(Id).max(100).default([])
21
+ }).strict().superRefine((entry, context) => {
22
+ if (entry.optimizerEligible !== (entry.panelRole === "correction"))
23
+ context.addIssue({ code: "custom", path: ["optimizerEligible"], message: "Only correction cases may be optimizer eligible." });
24
+ });
25
+ var ContinualBenchIssuePacketSchema = external_exports.object({
26
+ schemaVersion: external_exports.literal("openpond.continualBenchIssuePacket.v1"),
27
+ id: Id,
28
+ revision: external_exports.number().int().positive(),
29
+ contentHash: Hash,
30
+ familyId: Id,
31
+ familyLabel: external_exports.string().trim().min(1).max(500),
32
+ severity: external_exports.enum(["low", "medium", "high", "critical"]),
33
+ cases: external_exports.array(ContinualBenchIssueCaseSchema).min(2).max(1e4),
34
+ duplicateEvidence: ImmutableRef,
35
+ leakageEvidence: ImmutableRef,
36
+ priorExposureEvidence: ImmutableRef,
37
+ observedAt: Timestamp,
38
+ reviewedAt: Timestamp,
39
+ queuedAt: Timestamp.nullable(),
40
+ runAt: Timestamp.nullable(),
41
+ createdBy: Id,
42
+ createdAt: Timestamp
43
+ }).strict().superRefine((packet, context) => {
44
+ if (!packet.cases.some((entry) => entry.panelRole === "correction"))
45
+ context.addIssue({ code: "custom", path: ["cases"], message: "An issue packet requires a correction case." });
46
+ if (!packet.cases.some((entry) => entry.panelRole === "sibling_verification"))
47
+ context.addIssue({ code: "custom", path: ["cases"], message: "An issue packet requires a sibling-verification case." });
48
+ if (new Set(packet.cases.map((entry) => entry.taskId)).size !== packet.cases.length)
49
+ context.addIssue({ code: "custom", path: ["cases"], message: "Issue-packet task ids must be unique." });
50
+ });
51
+ var ContinualBenchPanelReleaseSchema = external_exports.object({
52
+ id: Id,
53
+ role: ContinualBenchPanelRoleSchema,
54
+ passLabel: Id.nullable(),
55
+ taskset: VersionedRef,
56
+ familyIds: external_exports.array(Id).min(1).max(1e5),
57
+ taskCount: external_exports.number().int().positive().max(1e6),
58
+ sealedAt: Timestamp
59
+ }).strict().superRefine((panel, context) => {
60
+ const requiresPass = panel.role === "correction" || panel.role === "sibling_verification" || panel.role === "cumulative_known";
61
+ if (requiresPass !== (panel.passLabel !== null))
62
+ context.addIssue({ code: "custom", path: ["passLabel"], message: requiresPass ? "This panel role requires a pass label." : "This panel role is series-wide and cannot carry a pass label." });
63
+ });
64
+ var ContinualBenchPolicyIdentitySchema = external_exports.discriminatedUnion("kind", [
65
+ external_exports.object({ kind: external_exports.literal("base_model"), id: Id, revision: external_exports.string().trim().min(1).max(500), contentHash: Hash }).strict(),
66
+ external_exports.object({ kind: external_exports.literal("model_version"), id: Id, contentHash: Hash }).strict(),
67
+ external_exports.object({ kind: external_exports.literal("external_reference"), id: Id, model: ChatModelRef, providerRevision: external_exports.string().trim().min(1).max(500), contentHash: Hash }).strict()
68
+ ]);
69
+ var ContinualBenchScheduleEntrySchema = external_exports.object({
70
+ scheduleEntryId: Id,
71
+ ordinal: external_exports.number().int().nonnegative(),
72
+ label: Id,
73
+ role: external_exports.enum(["seed", "daily_residual", "rank_candidate", "weekly_rollup", "full_refresh"]),
74
+ parentRule: external_exports.enum(["base_model", "previous_release", "seed_release", "accepted_daily_head", "accepted_seed"]),
75
+ trainableRank: external_exports.number().int().positive().max(1024),
76
+ correctionPanelIds: external_exports.array(Id).min(1).max(1e3),
77
+ optimizerGroupsPerTask: external_exports.number().int().positive().max(1e3),
78
+ trajectoriesPerGroup: external_exports.number().int().min(4).max(1e3)
79
+ }).strict();
80
+ var ContinualBenchCurrencyThresholdsSchema = external_exports.object({
81
+ revision: external_exports.number().int().positive(),
82
+ requireAllAttemptsTerminal: external_exports.literal(true),
83
+ criticalCorrectionPassRate: external_exports.number().min(0).max(1),
84
+ siblingPassRate: external_exports.number().min(0).max(1),
85
+ behavioralRetentionRate: external_exports.number().min(0).max(1),
86
+ maximumRetainedRegressionPoints: external_exports.number().min(0).max(100),
87
+ blockCriticalPriorRegression: external_exports.boolean(),
88
+ authorizedClaims: external_exports.array(external_exports.enum(["systems_complete", "correction_absorbed", "issue_generalized", "continually_current", "frontier_pareto_result"])).min(1).max(5)
89
+ }).strict();
90
+ var ContinualBenchmarkProtocolReleaseSchema = external_exports.object({
91
+ schemaVersion: external_exports.literal("openpond.continualBenchmarkProtocol.v1"),
92
+ id: Id,
93
+ revision: external_exports.number().int().positive(),
94
+ contentHash: Hash,
95
+ ownerId: Id,
96
+ createdAt: Timestamp,
97
+ sealedAt: Timestamp,
98
+ creationReceipt: ImmutableRef,
99
+ predecessorSeries: external_exports.object({ id: Id, revision: external_exports.number().int().positive(), contentHash: Hash }).strict().nullable(),
100
+ scenarioPack: ImmutableRef,
101
+ issueFamilyLedger: ImmutableRef,
102
+ issuePacketRelease: ImmutableRef,
103
+ panels: external_exports.array(ContinualBenchPanelReleaseSchema).min(6).max(1e4),
104
+ grader: ImmutableRef,
105
+ judge: external_exports.object({ release: ImmutableRef, rubricRelease: ImmutableRef, calibrationRelease: ImmutableRef, model: ChatModelRef }).strict().nullable(),
106
+ policies: external_exports.object({ base: ContinualBenchPolicyIdentitySchema, master: ContinualBenchPolicyIdentitySchema.nullable(), externalReferences: external_exports.array(ContinualBenchPolicyIdentitySchema).min(1).max(20) }).strict(),
107
+ invariants: external_exports.object({
108
+ systemPromptHash: Hash,
109
+ toolSchema: ImmutableRef,
110
+ application: ImmutableRef,
111
+ harness: ImmutableRef,
112
+ runtime: ImmutableRef,
113
+ workerImage: ImmutableRef,
114
+ autoRefiner: external_exports.object({ enabled: external_exports.boolean(), release: ImmutableRef.nullable() }).strict()
115
+ }).strict(),
116
+ schedule: external_exports.array(ContinualBenchScheduleEntrySchema).min(1).max(1e3),
117
+ evaluation: external_exports.object({ seeds: external_exports.array(external_exports.number().int()).min(3).max(100), repetitions: external_exports.number().int().min(3).max(20), powerRule: ImmutableRef, pairedBootstrapSamples: external_exports.number().int().min(1e3).max(1e6), confidenceLevel: external_exports.literal(0.95) }).strict(),
118
+ resources: external_exports.object({ maximumTrainingGpuSeconds: external_exports.number().int().positive(), maximumEvaluationGpuSeconds: external_exports.number().int().positive(), maximumProviderSpendUsd: external_exports.number().positive(), maximumTotalSpendUsd: external_exports.number().positive(), maximumConcurrentGroups: external_exports.number().int().positive().max(1e3) }).strict(),
119
+ currencyThresholds: ContinualBenchCurrencyThresholdsSchema
120
+ }).strict().superRefine((protocol, context) => {
121
+ const panelIds = protocol.panels.map((panel) => panel.id);
122
+ if (new Set(panelIds).size !== panelIds.length)
123
+ context.addIssue({ code: "custom", path: ["panels"], message: "Protocol panel ids must be unique." });
124
+ for (const role of ["development", "retained", "frozen_final", "training_eligible"]) {
125
+ if (protocol.panels.filter((panel) => panel.role === role).length !== 1)
126
+ context.addIssue({ code: "custom", path: ["panels"], message: `A protocol requires exactly one ${role} panel.` });
127
+ }
128
+ const ordered = [...protocol.schedule].sort((left, right) => left.ordinal - right.ordinal);
129
+ if (ordered.some((entry, index) => entry.ordinal !== index))
130
+ context.addIssue({ code: "custom", path: ["schedule"], message: "Protocol schedule ordinals must be contiguous from zero." });
131
+ const known = new Set(panelIds);
132
+ if (protocol.schedule.some((entry) => entry.correctionPanelIds.some((id) => !known.has(id))))
133
+ context.addIssue({ code: "custom", path: ["schedule"], message: "Every scheduled correction panel must belong to the protocol." });
134
+ });
135
+
136
+ export {
137
+ ContinualBenchPanelRoleSchema,
138
+ ContinualBenchIssuePacketSchema,
139
+ ContinualBenchmarkProtocolReleaseSchema
140
+ };
@@ -1,7 +1,7 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
2
  import {
3
3
  now
4
- } from "./chunk-NPNIL6SQ.js";
4
+ } from "./chunk-AN2EYCN3.js";
5
5
 
6
6
  // ../server/src/workspace/workspace-command.ts
7
7
  import { spawn, spawnSync } from "node:child_process";
@@ -131,6 +131,7 @@ var MAX_PATCH_CHARS = 24e3;
131
131
  var MAX_FILE_CHARS = 8e4;
132
132
  var MAX_READABLE_FILE_BYTES = 512 * 1024;
133
133
  var MAX_WORKSPACE_IMAGE_BYTES = 15 * 1024 * 1024;
134
+ var MAX_WORKSPACE_DOCUMENT_BYTES = 20 * 1024 * 1024;
134
135
  var GENERATED_WORKSPACE_DIRS = /* @__PURE__ */ new Set([
135
136
  ".cache",
136
137
  ".eggs",
@@ -167,6 +168,8 @@ var BINARY_WORKSPACE_EXTENSIONS = /* @__PURE__ */ new Set([
167
168
  ".7z",
168
169
  ".avif",
169
170
  ".db",
171
+ ".doc",
172
+ ".docx",
170
173
  ".gif",
171
174
  ".gz",
172
175
  ".ico",
@@ -198,6 +201,7 @@ var LOCAL_VIDEO_CONTENT_TYPES = /* @__PURE__ */ new Map([
198
201
  [".mp4", "video/mp4"],
199
202
  [".webm", "video/webm"]
200
203
  ]);
204
+ var WORKSPACE_DOCUMENT_EXTENSIONS = /* @__PURE__ */ new Set([".doc", ".docx", ".pdf"]);
201
205
  function safeAppSegment(appId) {
202
206
  return appId.replace(/[^a-zA-Z0-9._-]/g, "-").slice(0, 120) || "app";
203
207
  }
@@ -253,6 +257,22 @@ async function readWorkspaceFile(repoPath, filePath) {
253
257
  return null;
254
258
  }
255
259
  }
260
+ async function readWorkspaceDocumentPreview(repoPath, filePath) {
261
+ const normalizedPath = normalizeWorkspaceFilePath(filePath);
262
+ if (!normalizedPath || !WORKSPACE_DOCUMENT_EXTENSIONS.has(path2.extname(normalizedPath).toLowerCase())) {
263
+ return null;
264
+ }
265
+ const target = path2.resolve(repoPath, normalizedPath);
266
+ const root = path2.resolve(repoPath);
267
+ if (target !== root && !target.startsWith(`${root}${path2.sep}`)) return null;
268
+ try {
269
+ const stat = await fs2.lstat(target);
270
+ if (!stat.isFile() || stat.size > MAX_WORKSPACE_DOCUMENT_BYTES) return null;
271
+ return (await fs2.readFile(target)).toString("base64");
272
+ } catch {
273
+ return null;
274
+ }
275
+ }
256
276
  function workspaceImageContentType(filePath) {
257
277
  return WORKSPACE_IMAGE_CONTENT_TYPES.get(path2.extname(filePath).toLowerCase()) ?? null;
258
278
  }
@@ -1102,10 +1122,17 @@ async function loadWorkspaceFileAtPath(repoPath, filePath) {
1102
1122
  if (isGeneratedWorkspacePath(normalizedPath)) throw new Error("File not found");
1103
1123
  if (initialized) {
1104
1124
  const detail = await loadGitWorkspaceFileAtPath(repoPath, normalizedPath);
1105
- if (detail) return detail;
1125
+ if (detail) {
1126
+ if (detail.content !== null || detail.status === "deleted") return detail;
1127
+ const documentContent = await readWorkspaceDocumentPreview(
1128
+ repoPath,
1129
+ normalizedPath
1130
+ );
1131
+ return documentContent === null ? detail : { ...detail, content: documentContent };
1132
+ }
1106
1133
  }
1107
1134
  let resolvedPath = normalizedPath;
1108
- let content = await readWorkspaceFile(repoPath, resolvedPath);
1135
+ let content = await readWorkspaceFile(repoPath, resolvedPath) ?? await readWorkspaceDocumentPreview(repoPath, resolvedPath);
1109
1136
  if (content === null) {
1110
1137
  const basenameMatch = await resolveExplicitMarkdownBasenamePath(repoPath, normalizedPath);
1111
1138
  if (basenameMatch) {
@@ -1210,6 +1237,7 @@ export {
1210
1237
  isGitRepo,
1211
1238
  truncatePatch,
1212
1239
  readWorkspaceFile,
1240
+ readWorkspaceDocumentPreview,
1213
1241
  workspaceImageContentType,
1214
1242
  localVideoContentType,
1215
1243
  readWorkspaceImageFile,