openpond 0.2.72 → 0.2.73

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 (276) hide show
  1. package/dist/app-server.js +1 -1
  2. package/dist/chunks/{acp-7A2UPCG5.js → acp-35QBGOMJ.js} +1 -1
  3. package/dist/chunks/{acp-agent-AGALGR6V.js → acp-agent-4PKMX52I.js} +1 -1
  4. package/dist/chunks/{app-layer-DUCNCJ2X.js → app-layer-42ZKHTPN.js} +1 -1
  5. package/dist/chunks/{app-server-evaluations-SNWXULKD.js → app-server-evaluations-5JVNCET7.js} +1 -1
  6. package/dist/chunks/{app-server-harness-services-YNMGMKPK.js → app-server-harness-services-4E236TXE.js} +1 -1
  7. package/dist/chunks/{app-server-runtime-BKJ7L6JZ.js → app-server-runtime-CI2NTKX7.js} +1 -1
  8. package/dist/chunks/{apps-2OWE23BH.js → apps-EGFRTFAJ.js} +1 -1
  9. package/dist/chunks/chunk-2IECLXB2.js +2 -0
  10. package/dist/chunks/{chunk-V4VM2R6D.js → chunk-2IIVBBF5.js} +1 -1
  11. package/dist/chunks/{chunk-ENY24ZBB.js → chunk-3BIB6KKL.js} +1 -1
  12. package/dist/chunks/{chunk-DFSQ5HZ7.js → chunk-3V2XAYYA.js} +1 -1
  13. package/dist/chunks/{chunk-CHRED2FK.js → chunk-3XNUG4FO.js} +1 -1
  14. package/dist/chunks/{chunk-BUMCJHQP.js → chunk-4KG7GJ5O.js} +1 -1
  15. package/dist/chunks/chunk-5AV2EWFX.js +2 -0
  16. package/dist/chunks/{chunk-MLLMLXKG.js → chunk-5VQK3CCJ.js} +1 -1
  17. package/dist/chunks/{chunk-4JKWCLTQ.js → chunk-645T6LH7.js} +1 -1
  18. package/dist/chunks/{chunk-X7ZMUWJO.js → chunk-6IKIGVJF.js} +1 -1
  19. package/dist/chunks/{chunk-X2MJFTLS.js → chunk-6KKWSUEW.js} +1 -1
  20. package/dist/chunks/{chunk-MQMMJKOZ.js → chunk-A4HLKWQD.js} +1 -1
  21. package/dist/chunks/{chunk-ZSWATWK2.js → chunk-AWUSAHXG.js} +1 -1
  22. package/dist/chunks/{chunk-T6ML5SCD.js → chunk-E5HDJCKK.js} +1 -1
  23. package/dist/chunks/{chunk-WMJEQK4G.js → chunk-E7SQBMYW.js} +1 -1
  24. package/dist/chunks/{chunk-VXFGSFIE.js → chunk-EAW5FHU4.js} +2 -2
  25. package/dist/chunks/{chunk-GPGXBKXU.js → chunk-EZ435RGA.js} +1 -1
  26. package/dist/chunks/{chunk-AITV76GO.js → chunk-F64TR23C.js} +1 -1
  27. package/dist/chunks/{chunk-FOAM3YZQ.js → chunk-FA3GXQYA.js} +1 -1
  28. package/dist/chunks/{chunk-2THZ6GZY.js → chunk-FCC24XUI.js} +1 -1
  29. package/dist/chunks/{chunk-L5L3H6CI.js → chunk-FDYWGE2Y.js} +1 -1
  30. package/dist/chunks/{chunk-CAYKEJJY.js → chunk-FRQYH4QD.js} +1 -1
  31. package/dist/chunks/{chunk-TR5UC5AF.js → chunk-G2P2PYEO.js} +1 -1
  32. package/dist/chunks/{chunk-MPXOPL7R.js → chunk-H2YQ4AA2.js} +1 -1
  33. package/dist/chunks/{chunk-KRJZ5CW3.js → chunk-H5EHSILL.js} +1 -1
  34. package/dist/chunks/{chunk-N5FT6PTI.js → chunk-HIPKU57Y.js} +1 -1
  35. package/dist/chunks/{chunk-JSDGOQ5U.js → chunk-IXMY4EKS.js} +1 -1
  36. package/dist/chunks/{chunk-ATI52WMB.js → chunk-JAIFVT3D.js} +1 -1
  37. package/dist/chunks/{chunk-HBGTHOOB.js → chunk-JG6JA7YT.js} +1 -1
  38. package/dist/chunks/{chunk-F3IEAU7O.js → chunk-KE5PYRJ6.js} +1 -1
  39. package/dist/chunks/{chunk-UZE3C2SF.js → chunk-KH42V27F.js} +1 -1
  40. package/dist/chunks/{chunk-VMBWCIGG.js → chunk-KOLVSUOS.js} +1 -1
  41. package/dist/chunks/{chunk-5TPJ5ECJ.js → chunk-KQ7RFPG5.js} +1 -1
  42. package/dist/chunks/{chunk-EHMA5XS7.js → chunk-LWF5MQJ4.js} +1 -1
  43. package/dist/chunks/{chunk-CQRA5TXF.js → chunk-MHSSPMLB.js} +1 -1
  44. package/dist/chunks/{chunk-TD5YYA5Z.js → chunk-MXDSB2C5.js} +1 -1
  45. package/dist/chunks/{chunk-W4JBPYGW.js → chunk-O6L4NO3M.js} +1 -1
  46. package/dist/chunks/{chunk-QKBMXL4D.js → chunk-OBMMO5NC.js} +3 -3
  47. package/dist/chunks/{chunk-MWPMYCYB.js → chunk-ODH5XGE6.js} +1 -1
  48. package/dist/chunks/{chunk-KTQWWCP2.js → chunk-OFC5N6R3.js} +6 -6
  49. package/dist/chunks/{chunk-CX4U32VO.js → chunk-ONR2AKRI.js} +4 -4
  50. package/dist/chunks/{chunk-RWBP2H4M.js → chunk-OUOOKEU3.js} +1 -1
  51. package/dist/chunks/{chunk-6OD2FKUS.js → chunk-OVEQAEKR.js} +1 -1
  52. package/dist/chunks/{chunk-RIFWD5XM.js → chunk-OXUS4QOT.js} +1 -1
  53. package/dist/chunks/{chunk-KUEVP7WM.js → chunk-P7RLDDPN.js} +1 -1
  54. package/dist/chunks/{chunk-LHTRQAPZ.js → chunk-SUILNZQJ.js} +1 -1
  55. package/dist/chunks/{chunk-SRK4WX7D.js → chunk-TP222CV2.js} +1 -1
  56. package/dist/chunks/{chunk-5WFKBZCU.js → chunk-TRXOE7TT.js} +1 -1
  57. package/dist/chunks/{chunk-5TTQCT3G.js → chunk-U73T66FP.js} +1 -1
  58. package/dist/chunks/{chunk-IA6CTX7A.js → chunk-WAWVFSIQ.js} +1 -1
  59. package/dist/chunks/{chunk-KOIXRLZZ.js → chunk-WBV6A6NS.js} +1 -1
  60. package/dist/chunks/{chunk-UCPD526R.js → chunk-WOYBWRRV.js} +1 -1
  61. package/dist/chunks/{chunk-S5ACNR5Y.js → chunk-X4CN3FIN.js} +1 -1
  62. package/dist/chunks/{chunk-PYPXP5R3.js → chunk-XN5BXPAT.js} +1 -1
  63. package/dist/chunks/{chunk-JALL5NPH.js → chunk-XSDWRRZP.js} +1 -1
  64. package/dist/chunks/{chunk-HA762QYM.js → chunk-YIZE3M5S.js} +1 -1
  65. package/dist/chunks/{cli-KXU5DNVV.js → cli-NHRYN2G3.js} +1 -1
  66. package/dist/chunks/{command-X35I53H3.js → command-54MMVWS2.js} +3 -3
  67. package/dist/chunks/{configuration-command-VJUK34UQ.js → configuration-command-XMXTU2FQ.js} +1 -1
  68. package/dist/chunks/{connected-app-executor-JBFJF2H5.js → connected-app-executor-WJEDXUA4.js} +1 -1
  69. package/dist/chunks/{connected-evidence-CQ533AML.js → connected-evidence-NFQPO5E3.js} +1 -1
  70. package/dist/chunks/{connected-starting-assets-RL5X6LZ7.js → connected-starting-assets-M54PSOEP.js} +1 -1
  71. package/dist/chunks/{continual-PHGIZFF6.js → continual-C2YWPEJZ.js} +1 -1
  72. package/dist/chunks/{core-commands-5DYMDWXY.js → core-commands-SY4I5FHE.js} +1 -1
  73. package/dist/chunks/{dataset-preparation-authoring-UDSX33YK.js → dataset-preparation-authoring-CH6Z4NE6.js} +1 -1
  74. package/dist/chunks/{datasets-BW4JFUUU.js → datasets-2OQDMF7E.js} +1 -1
  75. package/dist/chunks/{desktop-test-RIG4CB2Z.js → desktop-test-VNMR5H4I.js} +1 -1
  76. package/dist/chunks/{evaluation-coordination-6QJ6XTUX.js → evaluation-coordination-GULGPATI.js} +1 -1
  77. package/dist/chunks/{experiment-improvements-2XF63AQ4.js → experiment-improvements-XNXTU6ZA.js} +1 -1
  78. package/dist/chunks/{experiments-3S2BVNK6.js → experiments-DZX6ZU6F.js} +1 -1
  79. package/dist/chunks/{experiments-signal-IRBHGGW5.js → experiments-signal-QDVPO3M5.js} +1 -1
  80. package/dist/chunks/{help-Q2VMJVTR.js → help-UCN67FN7.js} +1 -1
  81. package/dist/chunks/{host-profile-evaluation-tools-5LZQHA32.js → host-profile-evaluation-tools-XMGGHVH3.js} +1 -1
  82. package/dist/chunks/{hosted-app-server-composition-AYZM2HY6.js → hosted-app-server-composition-U7WGMN5B.js} +1 -1
  83. package/dist/chunks/{hosted-experiment-improvement-SMZJYRJ7.js → hosted-experiment-improvement-VQN6PJKR.js} +1 -1
  84. package/dist/chunks/{hosted-harness-runtime-QWIFAITG.js → hosted-harness-runtime-O6E5LCGN.js} +1 -1
  85. package/dist/chunks/{hosted-profile-candidate-WOMWAE5N.js → hosted-profile-candidate-HQ544PNP.js} +1 -1
  86. package/dist/chunks/{hosted-profile-compiler-NZ2BXN32.js → hosted-profile-compiler-K4OACT7S.js} +1 -1
  87. package/dist/chunks/{hosted-profile-evaluation-control-3ECFFM7E.js → hosted-profile-evaluation-control-TKYM73YY.js} +1 -1
  88. package/dist/chunks/{hosted-profile-evaluation-inspection-TM7RKONG.js → hosted-profile-evaluation-inspection-HFCFUYQ4.js} +1 -1
  89. package/dist/chunks/{hosted-profile-evaluation-preparation-2MZIRT75.js → hosted-profile-evaluation-preparation-OJ6AR5P5.js} +1 -1
  90. package/dist/chunks/{human-review-PG4WWVWV.js → human-review-DNVIVJRK.js} +1 -1
  91. package/dist/chunks/{import-FAZAVZBF.js → import-QT5AKEA3.js} +1 -1
  92. package/dist/chunks/{local-harness-improvement-runtime-OYLTKMJU.js → local-harness-improvement-runtime-BWZBMOGL.js} +1 -1
  93. package/dist/chunks/{local-harness-taskset-review-I7YU4RZI.js → local-harness-taskset-review-JL2XNXML.js} +1 -1
  94. package/dist/chunks/{opchat-TCZA6373.js → opchat-7PWUXQSY.js} +1 -1
  95. package/dist/chunks/{opchat-bounded-chat-GMYDXLWB.js → opchat-bounded-chat-B3GOCGWY.js} +1 -1
  96. package/dist/chunks/{organizations-PYKGA2P2.js → organizations-TWBMN7KF.js} +1 -1
  97. package/dist/chunks/{profile-GYYI555I.js → profile-RVARQYG4.js} +1 -1
  98. package/dist/chunks/{project-action-payload-FE6M2OXJ.js → project-action-payload-65MTQMQW.js} +1 -1
  99. package/dist/chunks/{project-agent-4ISJFMJD.js → project-agent-ZC33YRZE.js} +1 -1
  100. package/dist/chunks/{published-experiment-source-E2YAJCLM.js → published-experiment-source-L7BER6AE.js} +1 -1
  101. package/dist/chunks/{refiner-profile-service-LKGXD5WJ.js → refiner-profile-service-56776J7B.js} +1 -1
  102. package/dist/chunks/{runtime-UDLOZD4Y.js → runtime-GN2H2R7L.js} +2 -2
  103. package/dist/chunks/{sandbox-command-4J6DAY7T.js → sandbox-command-HWIAH6JA.js} +1 -1
  104. package/dist/chunks/{sandbox-template-TSXWJMWG.js → sandbox-template-MNZ6OXQQ.js} +1 -1
  105. package/dist/chunks/{saved-work-QTEBKVUB.js → saved-work-OMBDT3ZR.js} +1 -1
  106. package/dist/chunks/{send-turn-4MH4WMLW.js → send-turn-VQRLIHOE.js} +1 -1
  107. package/dist/chunks/{setup-IVT2FQSE.js → setup-C6673TJK.js} +1 -1
  108. package/dist/chunks/{src-TOSQX36I.js → src-HHFJIPL5.js} +1 -1
  109. package/dist/chunks/{src-DC7N2H7A.js → src-UHNSXT34.js} +2 -2
  110. package/dist/chunks/{store-chat-resources-QLXKKYYC.js → store-chat-resources-TYR7D2UP.js} +1 -1
  111. package/dist/chunks/{store-continual-support-reviews-4F2BOG3H.js → store-continual-support-reviews-63YCKG3P.js} +1 -1
  112. package/dist/chunks/{store-conversation-serving-EUD47W6X.js → store-conversation-serving-PDSBGL3E.js} +1 -1
  113. package/dist/chunks/{store-create-improve-QUOTNNIM.js → store-create-improve-RYASTT56.js} +1 -1
  114. package/dist/chunks/{store-datasets-ZUC7CNVO.js → store-datasets-PELTRO4A.js} +1 -1
  115. package/dist/chunks/{store-evaluation-results-LHHPHESK.js → store-evaluation-results-OUTNEMAY.js} +1 -1
  116. package/dist/chunks/{store-human-review-7WZWRJ6X.js → store-human-review-GIMAXCJQ.js} +1 -1
  117. package/dist/chunks/{store-learned-preference-migration-validation-MVNKBR4X.js → store-learned-preference-migration-validation-DHOSHA6C.js} +1 -1
  118. package/dist/chunks/{store-local-experiments-HB53QFLL.js → store-local-experiments-AH4Z6RWX.js} +1 -1
  119. package/dist/chunks/{store-model-batch-review-O3I6GIAA.js → store-model-batch-review-UUW6ZLDH.js} +1 -1
  120. package/dist/chunks/{store-model-configuration-CDIGNU6Q.js → store-model-configuration-4U5A6DU7.js} +1 -1
  121. package/dist/chunks/{store-model-project-preparation-QMQ2HMJV.js → store-model-project-preparation-MYHO43VH.js} +1 -1
  122. package/dist/chunks/{store-modification-recordings-W4VEZKKQ.js → store-modification-recordings-OZBLFYCT.js} +1 -1
  123. package/dist/chunks/{store-sidebar-file-bookmarks-KAEDHVVF.js → store-sidebar-file-bookmarks-NQ3ZLTGZ.js} +1 -1
  124. package/dist/chunks/{store-sidebar-preferences-QPBLTHY6.js → store-sidebar-preferences-L6J7J5WC.js} +1 -1
  125. package/dist/chunks/{store-subagents-ZELQP3MX.js → store-subagents-6FHGHQ6V.js} +1 -1
  126. package/dist/chunks/{store-task-inbox-4ZDQR2E7.js → store-task-inbox-M7YZNCRF.js} +1 -1
  127. package/dist/chunks/{store-task-inventory-CTIJDLYE.js → store-task-inventory-TTJQAM3T.js} +1 -1
  128. package/dist/chunks/{store-taskset-drafts-FRPBYLTW.js → store-taskset-drafts-4GVHDLJJ.js} +1 -1
  129. package/dist/chunks/{store-training-WQAYUT7B.js → store-training-MGGTGTV2.js} +1 -1
  130. package/dist/chunks/{store-training-jobs-O5EHGTH7.js → store-training-jobs-XKDUX4SV.js} +1 -1
  131. package/dist/chunks/{store-training-models-YSZMC66T.js → store-training-models-4S4ZT3BL.js} +1 -1
  132. package/dist/chunks/{taskset-OVYM4QMS.js → taskset-SLQSCYJI.js} +1 -1
  133. package/dist/chunks/{teams-bot-U2M3ORWR.js → teams-bot-7U6JOV6T.js} +1 -1
  134. package/dist/chunks/{tool-learning-NXVR4YPA.js → tool-learning-25Z2JOBS.js} +1 -1
  135. package/dist/chunks/{training-EQ7G5FDY.js → training-2LUQ2IZM.js} +1 -1
  136. package/dist/chunks/{training-LQUAL4Y4.js → training-JA5ZQABE.js} +1 -1
  137. package/dist/chunks/{training-PEZYJ2SN.js → training-NL5GYZKU.js} +1 -1
  138. package/dist/chunks/training-hosted-NLXMISNL.js +2 -0
  139. package/dist/chunks/{training-hosted-alphaedit-VCOEYLKK.js → training-hosted-alphaedit-WGMJ3L2D.js} +1 -1
  140. package/dist/chunks/{training-hosted-decision-IKWWXA56.js → training-hosted-decision-66EUMUIW.js} +1 -1
  141. package/dist/chunks/{training-hosted-engram-3TOPPVSW.js → training-hosted-engram-QDXSJ77I.js} +1 -1
  142. package/dist/chunks/{training-hosted-modification-comparison-C6S4JFHW.js → training-hosted-modification-comparison-2MH5FZMZ.js} +1 -1
  143. package/dist/chunks/{training-hosted-neuron-training-EP2U4PHG.js → training-hosted-neuron-training-3QXKIEKT.js} +1 -1
  144. package/dist/chunks/{training-hosted-serving-report-KJMRZJLQ.js → training-hosted-serving-report-ZG75ACZK.js} +1 -1
  145. package/dist/chunks/{training-hosted-steering-I27DV6A2.js → training-hosted-steering-KFMTKCTX.js} +1 -1
  146. package/dist/chunks/{training-model-start-NWXNGRDC.js → training-model-start-NMQ55UHZ.js} +1 -1
  147. package/dist/chunks/{workspaces-FVQYJPOS.js → workspaces-ROFG76XK.js} +1 -1
  148. package/dist/cli.js +1 -1
  149. package/dist/skills/manifest.json +1 -1
  150. package/dist/web/assets/{App-QM6Y2Eod.js → App-CV1p0_Zy.js} +4 -4
  151. package/dist/web/assets/{AppDialog-C8um481a.js → AppDialog-DdGt7aU1.js} +1 -1
  152. package/dist/web/assets/{AppTerminalPanel-OwNr-bp6.js → AppTerminalPanel-B2p_tYh5.js} +2 -2
  153. package/dist/web/assets/{AppToastContext-BQ4iRFif.js → AppToastContext-D7z0w1PS.js} +1 -1
  154. package/dist/web/assets/{AppsView-mk8m_Cra.js → AppsView-B-Ts-M_V.js} +1 -1
  155. package/dist/web/assets/{AttachmentTypeIcon-SITPqTtF.js → AttachmentTypeIcon-BJ5i12im.js} +1 -1
  156. package/dist/web/assets/{BrowserSidebar-BghdIKTB.js → BrowserSidebar-BVHthjXU.js} +1 -1
  157. package/dist/web/assets/{CartesianChart-BdRx7q_O.js → CartesianChart-BuJ1wFS7.js} +1 -1
  158. package/dist/web/assets/{ChatTimelineEntry-BBOnAzJB.js → ChatTimelineEntry-CfiiTrK4.js} +1 -1
  159. package/dist/web/assets/{CollaborationTabs-Beja-9s5.js → CollaborationTabs-1t9zAhDC.js} +1 -1
  160. package/dist/web/assets/{CommandMenu-CQtrSUpu.js → CommandMenu-DTB6xjGG.js} +1 -1
  161. package/dist/web/assets/{CommunityView-LPTAakS-.js → CommunityView-BjeZ56id.js} +1 -1
  162. package/dist/web/assets/{ComposerAttachments-DI-Gr7Zw.js → ComposerAttachments-C_K_05H9.js} +1 -1
  163. package/dist/web/assets/{ComposerCreateImproveStrip-CY5Uw1yc.js → ComposerCreateImproveStrip-A38jnNGd.js} +1 -1
  164. package/dist/web/assets/{ConversationImportsSettings-DFwhKERw.js → ConversationImportsSettings-jwaoKQZt.js} +1 -1
  165. package/dist/web/assets/{DatasetReviewImport-C9xraQk7.js → DatasetReviewImport-DZA1s3XG.js} +1 -1
  166. package/dist/web/assets/{ExperimentTrainingDataWorkspace-Cx58S6R_.js → ExperimentTrainingDataWorkspace-DowPuAXk.js} +2 -2
  167. package/dist/web/assets/{FilePagePreview-dlbmR8s8.js → FilePagePreview-11ZNRtdT.js} +2 -2
  168. package/dist/web/assets/{GetStartedView-BkTV_shK.js → GetStartedView-bLVKmjqg.js} +1 -1
  169. package/dist/web/assets/{GettingStartedDialog-DulDLYnr.js → GettingStartedDialog-BeimFLZh.js} +1 -1
  170. package/dist/web/assets/{HostedModelLearningReview--fXJEOfI.js → HostedModelLearningReview-DiFVb3WK.js} +1 -1
  171. package/dist/web/assets/{HostedModelLearningSettings-BEb7B_PC.js → HostedModelLearningSettings-DtUF5ejq.js} +1 -1
  172. package/dist/web/assets/{HtmlVisual-BS61T2qR.js → HtmlVisual-CgVTWr64.js} +1 -1
  173. package/dist/web/assets/{LabModelVersionDetailPage-CmzUIDbR.js → LabModelVersionDetailPage-BvinwnBN.js} +1 -1
  174. package/dist/web/assets/{LabModelWorkspace-DoAnQKWk.js → LabModelWorkspace-Q5DG2mLP.js} +1 -1
  175. package/dist/web/assets/{LabSkillSidebar-DJTm7ZQs.js → LabSkillSidebar-cmhZzr4f.js} +1 -1
  176. package/dist/web/assets/{LabsRoute-DNtBot4a.js → LabsRoute-DS_mlprv.js} +4 -4
  177. package/dist/web/assets/{LearningBatchesPage-C_oQjciE.js → LearningBatchesPage-Cm-btgWc.js} +1 -1
  178. package/dist/web/assets/{MainChatThread-D9e-to8e.js → MainChatThread-DbTn4Bag.js} +2 -2
  179. package/dist/web/assets/{MainPane-mWeD0M-f.js → MainPane-BtzUF6O_.js} +6 -6
  180. package/dist/web/assets/{ModelProjectPageHeader-BecKU_2p.js → ModelProjectPageHeader-C4mgVJGx.js} +1 -1
  181. package/dist/web/assets/{NativeSetupTerminal-DO0DN4fH.js → NativeSetupTerminal-bJpDkKk1.js} +2 -2
  182. package/dist/web/assets/{NativeSkillSidebar-jnxgQASC.js → NativeSkillSidebar-BuToZvK-.js} +1 -1
  183. package/dist/web/assets/{NewProjectDialog-ByHR4vMf.js → NewProjectDialog-F0BPQy0S.js} +1 -1
  184. package/dist/web/assets/{OutputsPage-DZY4BUCy.js → OutputsPage-DC4g59_8.js} +1 -1
  185. package/dist/web/assets/{PageChrome-DjPuwWsn.js → PageChrome-ufq2jePD.js} +1 -1
  186. package/dist/web/assets/{ProjectsPage-DKbwhIM4.js → ProjectsPage-7mbOvMfO.js} +1 -1
  187. package/dist/web/assets/{RightChatPanelStack-BARH0XuL.js → RightChatPanelStack-sR9xN3RP.js} +1 -1
  188. package/dist/web/assets/RightSidebarHomePanel-joZavyR9.js +1 -0
  189. package/dist/web/assets/{ScheduledWorkPage-CElrmRz9.js → ScheduledWorkPage-s9CN6nR_.js} +1 -1
  190. package/dist/web/assets/{SettingsView-CsFSjE9s.js → SettingsView-CZNWYK-D.js} +3 -3
  191. package/dist/web/assets/{TasksetDraftEditorPrimitives-DJoYkvWq.js → TasksetDraftEditorPrimitives-BnMqzE-T.js} +1 -1
  192. package/dist/web/assets/{TeamChatView-D9Y4e98Y.js → TeamChatView-XthM6n4S.js} +1 -1
  193. package/dist/web/assets/{TerminalOverlay-CUO8yZjy.js → TerminalOverlay--HCFZaQW.js} +1 -1
  194. package/dist/web/assets/{TrainingCreationPanel-_mnLQ1HA.js → TrainingCreationPanel-D2F6kPg_.js} +1 -1
  195. package/dist/web/assets/{TrainingDraftPanel-CCqQTHo5.js → TrainingDraftPanel-BurWPp9F.js} +1 -1
  196. package/dist/web/assets/{UsageSettingsSection-CdWq5oYC.js → UsageSettingsSection-D7jdscDm.js} +1 -1
  197. package/dist/web/assets/WorkSidebarPanel-CmdXCmrZ.js +1 -0
  198. package/dist/web/assets/{WorkspaceDiffPanel-CdHr8bX6.js → WorkspaceDiffPanel-CPaCC1_p.js} +3 -3
  199. package/dist/web/assets/{WorkspaceEnvironmentMenu-BnUh4dg9.js → WorkspaceEnvironmentMenu-BZxu6mUS.js} +1 -1
  200. package/dist/web/assets/{WorkspaceFileLocation-VzrSq_Ki.js → WorkspaceFileLocation-C4K_D_yh.js} +1 -1
  201. package/dist/web/assets/{WorkspaceGitDialogs-nwvQOm9r.js → WorkspaceGitDialogs-C0Yf29V0.js} +1 -1
  202. package/dist/web/assets/{WorkspaceMonacoEditor-m3bCIpZe.js → WorkspaceMonacoEditor-BRPLaFZS.js} +3 -3
  203. package/dist/web/assets/{WorkspacePdfPreview-u6Iv0qr0.js → WorkspacePdfPreview-9wypyV6H.js} +2 -2
  204. package/dist/web/assets/{WorkspacePresentationPreview-CjvTjhUO.js → WorkspacePresentationPreview-C-Cn-9pj.js} +1 -1
  205. package/dist/web/assets/{bot-DiDSZBLn.js → bot-BuaAVlz6.js} +1 -1
  206. package/dist/web/assets/{chat-resources-CmBtWC5V.js → chat-resources-DMPHClhQ.js} +1 -1
  207. package/dist/web/assets/chevron-down-CkifKd_O.js +1 -0
  208. package/dist/web/assets/chevron-right-LsMXJ5SB.js +1 -0
  209. package/dist/web/assets/chevron-up-Dt5T2Sf5.js +1 -0
  210. package/dist/web/assets/{chunk-C3TS766N-DSA4vs-Y.js → chunk-C3TS766N-BXUEjt7d.js} +1 -1
  211. package/dist/web/assets/{client-_uDCFdg5.js → client-C-ZuakZR.js} +1 -1
  212. package/dist/web/assets/{client-choice-storage-CRKZpilL.js → client-choice-storage-DWIA0Vou.js} +1 -1
  213. package/dist/web/assets/{cloud-upload-CWamjPts.js → cloud-upload-B5LqiNCG.js} +1 -1
  214. package/dist/web/assets/{copy-B56YjDkW.js → copy-BYIypHbq.js} +1 -1
  215. package/dist/web/assets/{cssMode-BuC9qQvo.js → cssMode-ByypIqUN.js} +1 -1
  216. package/dist/web/assets/{external-link-BSn21e-y.js → external-link-Cv7TDVPT.js} +1 -1
  217. package/dist/web/assets/{folder-open-CaJGWSr2.js → folder-open-DlIP3g5o.js} +1 -1
  218. package/dist/web/assets/{folder-plus-eTUep-az.js → folder-plus-CXwFJqcY.js} +1 -1
  219. package/dist/web/assets/{git-commit-horizontal-Buk_hy6T.js → git-commit-horizontal-DMh_-WxU.js} +1 -1
  220. package/dist/web/assets/{htmlMode-D7kF2kDL.js → htmlMode-CQGeb-h5.js} +1 -1
  221. package/dist/web/assets/{icons-B4B5eUyR.js → icons-CYvTltSH.js} +1 -1
  222. package/dist/web/assets/{image--4h1aK2l.js → image-Ci1JxTQX.js} +1 -1
  223. package/dist/web/assets/{index-CCaTs7xt.js → index-CDtTBysF.js} +2 -2
  224. package/dist/web/assets/{info-DjMTH4sJ.js → info-EjyMkVzV.js} +1 -1
  225. package/dist/web/assets/{jsonMode-BVX_7KjE.js → jsonMode-Dm6YK6Dw.js} +1 -1
  226. package/dist/web/assets/loader-circle-AjP2mDJA.js +1 -0
  227. package/dist/web/assets/{lspLanguageFeatures-RBOb-3wX.js → lspLanguageFeatures-BjtOz-Ln.js} +1 -1
  228. package/dist/web/assets/{maximize-2-Cjg-f1xT.js → maximize-2-CvvoALtI.js} +1 -1
  229. package/dist/web/assets/{message-square-oIMQDMc3.js → message-square-CPtIPRtf.js} +1 -1
  230. package/dist/web/assets/{monaco.contribution-CIwt2mTE.js → monaco.contribution-ClH8Tmjq.js} +2 -2
  231. package/dist/web/assets/{monaco.contribution-CIbGU5-C.js → monaco.contribution-VSFFgrfZ.js} +2 -2
  232. package/dist/web/assets/{monaco.contribution-KRLNg324.js → monaco.contribution-e5DNaEix.js} +2 -2
  233. package/dist/web/assets/{monaco.contribution-Dd1cPdSS.js → monaco.contribution-wpC0-Kxw.js} +2 -2
  234. package/dist/web/assets/{monitor-BWaitd6I.js → monitor-BroZpIvk.js} +1 -1
  235. package/dist/web/assets/{paperclip-FYK6OySO.js → paperclip-DYZEL_Gi.js} +1 -1
  236. package/dist/web/assets/{pdf-DbwlsqZP.js → pdf-DkU37Bi0.js} +1 -1
  237. package/dist/web/assets/play-BrvX67t1.js +1 -0
  238. package/dist/web/assets/plus-DFjCZeRE.js +1 -0
  239. package/dist/web/assets/{presentation-B6MaAPC7.js → presentation-CddfsTzp.js} +1 -1
  240. package/dist/web/assets/{python-DRYJxjiM.js → python-CMdyfF2B.js} +1 -1
  241. package/dist/web/assets/{refresh-cw-DOVpqCfJ.js → refresh-cw-Cx_7Zlbl.js} +1 -1
  242. package/dist/web/assets/{save-BuyyyR4Q.js → save-BaeHeBBw.js} +1 -1
  243. package/dist/web/assets/{settings-lists-BeAdxSjx.js → settings-lists-CVg9h-5z.js} +1 -1
  244. package/dist/web/assets/square-Di5JBnVr.js +1 -0
  245. package/dist/web/assets/{square-terminal-DTOIZy6_.js → square-terminal-CBlQtWQw.js} +1 -1
  246. package/dist/web/assets/{submit-issue-command-V--K9lVQ.js → submit-issue-command-L5--gt9i.js} +1 -1
  247. package/dist/web/assets/{toggleHighContrast-nNzCoE0h.js → toggleHighContrast-hftC_Rxs.js} +1 -1
  248. package/dist/web/assets/{training-DZgfVcI-.js → training-CGYukv2L.js} +1 -1
  249. package/dist/web/assets/{training-model-data-CWoTokkb.js → training-model-data-vvvphDlO.js} +1 -1
  250. package/dist/web/assets/{tsMode-BfVi5_FZ.js → tsMode-B0sZU1HD.js} +1 -1
  251. package/dist/web/assets/{upload-C2MnlWjj.js → upload-Bzt1ooBz.js} +1 -1
  252. package/dist/web/assets/{useAccountSettings-QwRbZIKu.js → useAccountSettings-BnxwetkP.js} +1 -1
  253. package/dist/web/assets/{useAgentInventory-B7xEgMCA.js → useAgentInventory-D_qS4ols.js} +1 -1
  254. package/dist/web/assets/{useChatContextSelection-O6wo4EqD.js → useChatContextSelection-D8aSVtCm.js} +1 -1
  255. package/dist/web/assets/{useLocalAgentSchedules-DpHnOGoV.js → useLocalAgentSchedules-CUQ1MW4l.js} +1 -1
  256. package/dist/web/assets/{useQuery-CvZ8bzdW.js → useQuery-9SCnxwmR.js} +1 -1
  257. package/dist/web/assets/{wifi-off-B8d12Alh.js → wifi-off-DWtVm7W7.js} +1 -1
  258. package/dist/web/assets/{workers-sIVKxb8c.js → workers-B3jA6AOv.js} +1 -1
  259. package/dist/web/assets/x-EG07vYCF.js +1 -0
  260. package/dist/web/assets/{yaml-8-aLM3zj.js → yaml-BEUL30-5.js} +1 -1
  261. package/dist/web/index.html +1 -1
  262. package/docs/command-reference.md +3 -1
  263. package/package.json +1 -1
  264. package/dist/chunks/chunk-2Q2AWPP2.js +0 -2
  265. package/dist/chunks/chunk-AWD72O3G.js +0 -2
  266. package/dist/chunks/training-hosted-XKSUTMLQ.js +0 -2
  267. package/dist/web/assets/RightSidebarHomePanel-qKL8dZrN.js +0 -1
  268. package/dist/web/assets/WorkSidebarPanel-DRXaK-E6.js +0 -1
  269. package/dist/web/assets/chevron-down-CqxKXYPf.js +0 -1
  270. package/dist/web/assets/chevron-right-ClP6ukIq.js +0 -1
  271. package/dist/web/assets/chevron-up-DY7wpdJ1.js +0 -1
  272. package/dist/web/assets/loader-circle-DNHvEoaP.js +0 -1
  273. package/dist/web/assets/play-DieChKfF.js +0 -1
  274. package/dist/web/assets/plus-DkfcQyma.js +0 -1
  275. package/dist/web/assets/square-D0YnIVh6.js +0 -1
  276. package/dist/web/assets/x-BvVvVB-j.js +0 -1
@@ -1,4 +1,4 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{a as w,b}from"./chunk-MPEK4ZNY.js";import{a as m}from"./chunk-ENY24ZBB.js";import"./chunk-2THZ6GZY.js";import"./chunk-OQPJ7FJF.js";import"./chunk-BL3CZWWD.js";import"./chunk-FYWQWKVS.js";import"./chunk-GD3RCUDH.js";import"./chunk-OXRN2257.js";import"./chunk-UTIELP6F.js";import"./chunk-TOWY6Y23.js";import"./chunk-4V73I4OL.js";import"./chunk-LE75SVEL.js";import"./chunk-6ESBAHWK.js";import"./chunk-7J2NMUTK.js";import"./chunk-2Q2AWPP2.js";import"./chunk-W45RKGM6.js";import"./chunk-73COPJ32.js";import"./chunk-UGDBMRCT.js";import"./chunk-EDYCSW22.js";import"./chunk-Z6HWSTEP.js";import"./chunk-XGY4OQLC.js";import{c as h}from"./chunk-2PVW2XFF.js";import"./chunk-64EDQ7UV.js";import"./chunk-DLOJG7LP.js";import"./chunk-ULTV6INR.js";import"./chunk-XKDOPNQ5.js";import"./chunk-JXLDEYRW.js";import"./chunk-GR4MJJCE.js";import"./chunk-GG6PM7TB.js";import"./chunk-2GEZ3ZY7.js";import"./chunk-BYVE4TMU.js";import"./chunk-LVXL7T5O.js";import"./chunk-HIQPGYVH.js";import"./chunk-3VT2PPKW.js";import"./chunk-5ZBDHIIE.js";import"./chunk-MTP3B2SU.js";import"./chunk-LK77GI6M.js";import"./chunk-HVM2GUM3.js";import"./chunk-I6VMRQF4.js";import"./chunk-D6L6UNUQ.js";import"./chunk-AJXWJLZA.js";import"./chunk-OKKNDQJF.js";import"./chunk-ZEOYNUHL.js";import"./chunk-ZY32SZ2P.js";import"./chunk-OTDDXEQ6.js";import"./chunk-ECOH24MC.js";import"./chunk-KUE46HTH.js";import"./chunk-6FA3GG5B.js";import"./chunk-2MEOUS24.js";import"./chunk-HNQPEOJD.js";import"./chunk-RCT3O3HQ.js";import"./chunk-ZFJWA4JK.js";import"./chunk-X2J2P5ZT.js";import{a as f}from"./chunk-FTQLQJQV.js";import{constants as g}from"node:fs";import{open as y,realpath as D}from"node:fs/promises";import k from"node:path";async function x(i){if(i.length!==1||!k.isAbsolute(i[0]))throw new Error("Dataset preparation requires one absolute private request-file path.");let o=i[0];if(await D(o)!==o)throw new Error("Dataset preparation request path must not contain symbolic links.");let s=await y(o,g.O_RDONLY|g.O_NOFOLLOW),n=4*1024*1024,l;try{let r=await s.stat();if(!r.isFile()||r.size>n||(r.mode&63)!==0||process.getuid&&r.uid!==process.getuid())throw new Error("Dataset preparation request is not a bounded private file.");let a=Buffer.alloc(n+1),e=0;for(;e<a.length;){let d=await s.read(a,e,a.length-e,e);if(d.bytesRead===0)break;e+=d.bytesRead}if(e>n)throw new Error("Dataset preparation request changed beyond its byte limit.");l=a.subarray(0,e)}finally{await s.close()}let t=h.parse(JSON.parse(new TextDecoder("utf8",{fatal:!0}).decode(l))),c=await m(),p;try{p=t.action==="messages"?{messages:w({id:t.id,evidence:t.evidence,skillText:c.bundle,buildIntent:"verifiable_reward",buildSpecification:t.buildSpecification,methodHint:"grpo",instruction:t.instruction,currentProposal:t.currentProposal}),skillHash:c.contentHash}:{proposal:b(t.content,t.evidence),skillHash:c.contentHash}}catch(r){if(t.action!=="validate")throw r;process.stdout.write(`${JSON.stringify({error:{code:"dataset_preparation_authoring_proposal_invalid"}})}
2
+ import{a as w,b}from"./chunk-MPEK4ZNY.js";import{a as m}from"./chunk-3BIB6KKL.js";import"./chunk-FCC24XUI.js";import"./chunk-OQPJ7FJF.js";import"./chunk-BL3CZWWD.js";import"./chunk-FYWQWKVS.js";import"./chunk-GD3RCUDH.js";import"./chunk-OXRN2257.js";import"./chunk-UTIELP6F.js";import"./chunk-TOWY6Y23.js";import"./chunk-4V73I4OL.js";import"./chunk-LE75SVEL.js";import"./chunk-6ESBAHWK.js";import"./chunk-7J2NMUTK.js";import"./chunk-2IECLXB2.js";import"./chunk-W45RKGM6.js";import"./chunk-73COPJ32.js";import"./chunk-UGDBMRCT.js";import"./chunk-EDYCSW22.js";import"./chunk-Z6HWSTEP.js";import"./chunk-XGY4OQLC.js";import{c as h}from"./chunk-2PVW2XFF.js";import"./chunk-64EDQ7UV.js";import"./chunk-DLOJG7LP.js";import"./chunk-ULTV6INR.js";import"./chunk-XKDOPNQ5.js";import"./chunk-JXLDEYRW.js";import"./chunk-GR4MJJCE.js";import"./chunk-GG6PM7TB.js";import"./chunk-2GEZ3ZY7.js";import"./chunk-BYVE4TMU.js";import"./chunk-LVXL7T5O.js";import"./chunk-HIQPGYVH.js";import"./chunk-3VT2PPKW.js";import"./chunk-5ZBDHIIE.js";import"./chunk-MTP3B2SU.js";import"./chunk-LK77GI6M.js";import"./chunk-HVM2GUM3.js";import"./chunk-I6VMRQF4.js";import"./chunk-D6L6UNUQ.js";import"./chunk-AJXWJLZA.js";import"./chunk-OKKNDQJF.js";import"./chunk-ZEOYNUHL.js";import"./chunk-ZY32SZ2P.js";import"./chunk-OTDDXEQ6.js";import"./chunk-ECOH24MC.js";import"./chunk-KUE46HTH.js";import"./chunk-6FA3GG5B.js";import"./chunk-2MEOUS24.js";import"./chunk-HNQPEOJD.js";import"./chunk-RCT3O3HQ.js";import"./chunk-ZFJWA4JK.js";import"./chunk-X2J2P5ZT.js";import{a as f}from"./chunk-FTQLQJQV.js";import{constants as g}from"node:fs";import{open as y,realpath as D}from"node:fs/promises";import k from"node:path";async function x(i){if(i.length!==1||!k.isAbsolute(i[0]))throw new Error("Dataset preparation requires one absolute private request-file path.");let o=i[0];if(await D(o)!==o)throw new Error("Dataset preparation request path must not contain symbolic links.");let s=await y(o,g.O_RDONLY|g.O_NOFOLLOW),n=4*1024*1024,l;try{let r=await s.stat();if(!r.isFile()||r.size>n||(r.mode&63)!==0||process.getuid&&r.uid!==process.getuid())throw new Error("Dataset preparation request is not a bounded private file.");let a=Buffer.alloc(n+1),e=0;for(;e<a.length;){let d=await s.read(a,e,a.length-e,e);if(d.bytesRead===0)break;e+=d.bytesRead}if(e>n)throw new Error("Dataset preparation request changed beyond its byte limit.");l=a.subarray(0,e)}finally{await s.close()}let t=h.parse(JSON.parse(new TextDecoder("utf8",{fatal:!0}).decode(l))),c=await m(),p;try{p=t.action==="messages"?{messages:w({id:t.id,evidence:t.evidence,skillText:c.bundle,buildIntent:"verifiable_reward",buildSpecification:t.buildSpecification,methodHint:"grpo",instruction:t.instruction,currentProposal:t.currentProposal}),skillHash:c.contentHash}:{proposal:b(t.content,t.evidence),skillHash:c.contentHash}}catch(r){if(t.action!=="validate")throw r;process.stdout.write(`${JSON.stringify({error:{code:"dataset_preparation_authoring_proposal_invalid"}})}
3
3
  `),process.exitCode=2;return}let u=JSON.stringify(p);if(Buffer.byteLength(u)>4*1024*1024)throw new Error("Dataset preparation authoring response exceeds its byte limit.");process.stdout.write(`${u}
4
4
  `)}f(x,"runDatasetPreparationAuthoringCli");export{x as runDatasetPreparationAuthoringCli};
@@ -1,2 +1,2 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{d as ne}from"./chunk-VMW23TIZ.js";import"./chunk-HYUTDZ3N.js";import{c as G}from"./chunk-RFQD6B44.js";import{a as B,d as Q}from"./chunk-X7ZMUWJO.js";import"./chunk-KUEVP7WM.js";import"./chunk-KTQWWCP2.js";import"./chunk-XRKFTPHD.js";import"./chunk-EDYCSW22.js";import"./chunk-Z6HWSTEP.js";import"./chunk-XGY4OQLC.js";import"./chunk-2PVW2XFF.js";import"./chunk-64EDQ7UV.js";import"./chunk-DLOJG7LP.js";import"./chunk-ULTV6INR.js";import"./chunk-XKDOPNQ5.js";import"./chunk-JXLDEYRW.js";import"./chunk-GR4MJJCE.js";import"./chunk-GG6PM7TB.js";import"./chunk-2GEZ3ZY7.js";import"./chunk-BYVE4TMU.js";import"./chunk-LVXL7T5O.js";import"./chunk-HIQPGYVH.js";import"./chunk-3VT2PPKW.js";import"./chunk-5ZBDHIIE.js";import"./chunk-MTP3B2SU.js";import"./chunk-KHDCMVEJ.js";import{a as X,b as Y,c as Z,d as q,e as ee,f as te,g as ae,h as re,i as se}from"./chunk-K3WM4NEC.js";import"./chunk-BLNEHU62.js";import"./chunk-BT5YNE5U.js";import{d as N}from"./chunk-RPM4FDRX.js";import"./chunk-DFZTRMTL.js";import"./chunk-2QHB5P2K.js";import"./chunk-BZS2PA4O.js";import{k as H,m as F}from"./chunk-VSQPWLAG.js";import"./chunk-6LAGMWJE.js";import"./chunk-IV2HEX3I.js";import"./chunk-C7NQPICU.js";import{a as $}from"./chunk-J256AEEE.js";import"./chunk-J7X72QUY.js";import"./chunk-UN2LKLGV.js";import"./chunk-HLJJAOI2.js";import"./chunk-AMC4Z7G4.js";import"./chunk-LK77GI6M.js";import"./chunk-HVM2GUM3.js";import"./chunk-I6VMRQF4.js";import"./chunk-D6L6UNUQ.js";import"./chunk-AJXWJLZA.js";import"./chunk-OKKNDQJF.js";import"./chunk-ZEOYNUHL.js";import"./chunk-ZY32SZ2P.js";import"./chunk-OTDDXEQ6.js";import"./chunk-ECOH24MC.js";import{a as j}from"./chunk-JF7WWLNW.js";import{c as V,f as O}from"./chunk-BSHAIAXY.js";import"./chunk-XWPC3AN4.js";import{c as l,f as R}from"./chunk-3M53YXEI.js";import"./chunk-GLUWATL5.js";import"./chunk-MZKCW6CB.js";import"./chunk-SV7ZBEK2.js";import"./chunk-2MEOUS24.js";import"./chunk-HNQPEOJD.js";import{n as J}from"./chunk-RCT3O3HQ.js";import"./chunk-UGOK7VTC.js";import"./chunk-TBODQT4W.js";import"./chunk-5HPZGLOL.js";import"./chunk-ZFJWA4JK.js";import{A as t}from"./chunk-X2J2P5ZT.js";import{a as S}from"./chunk-FTQLQJQV.js";var L=t.enum(["create","save","publish","begin_version"]),ie=t.object({operationId:t.string().trim().min(1).max(240),kind:L,requestHash:t.string().regex(/^[a-f0-9]{64}$/),receipt:q,base:q.nullable()}).strict().superRefine((a,r)=>{let{receipt:e,base:s,kind:n}=a;(s&&(s.teamId!==e.teamId||s.datasetId!==e.datasetId||s.revision+1!==e.revision)||!s&&e.revision!==1)&&r.addIssue({code:"custom",message:"Operation recovery history identity/revision mismatch."}),s&&((s.ownerScope??"workspace")!==(e.ownerScope??"workspace")||s.originProjectId!==e.originProjectId||s.workspace.draft.createdAt!==e.workspace.draft.createdAt)&&r.addIssue({code:"custom",message:"Operation recovery cannot change Dataset ownership or origin."});let i=s?e.workspace.draft.status==="published"?"publish":s.workspace.draft.status==="published"?"begin_version":"save":"create";n!==i&&r.addIssue({code:"custom",message:"Operation recovery kind differs from its retained lifecycle."})});var c=t.string().trim().min(1).max(240),I=t.string().regex(/^[a-f0-9]{64}$/),k=t.iso.datetime(),p=t.number().int().nonnegative(),x=t.number().int().nonnegative().max(Number.MAX_SAFE_INTEGER),E=t.object({id:c,projectId:c,maximumMicroUsd:x.positive(),maximumSandboxSeconds:p.max(10800)}).strict(),oe=t.object({schemaVersion:t.literal("openpond.datasetPreparationGrant.v1"),id:c,teamId:c,ownerUserId:c,projectId:c,maximumMicroUsd:x,maximumSandboxSeconds:p,settledMicroUsd:x,heldMicroUsd:x,sandboxSeconds:p,heldSandboxSeconds:p,unresolvedCalls:p,cleanupPending:p,createdAt:k,updatedAt:k}).strict(),z=t.enum(["coding_change","debugging","code_explanation","structured_text","artifact_work"]),ce=t.enum(["inventory","preview","reconstruction","grader_authoring","qualification","release"]),fe=t.enum(["draft","running","pausing","paused","needs_attention","preview_ready","ready","releasing","completed","insufficient_data","budget_exhausted","cancelling","cancelled","failed"]),he=t.object({projectId:c,from:k,to:k,importCutoff:k,connections:t.array(c).min(1).max(50),excludedSessions:t.array(t.object({connectionId:c,sourceKeyHash:I,nativeRevisionHash:I,reason:t.enum(["source_read_failed","native_session_not_ready"]),explanation:t.string().trim().min(1).max(2e3)}).strict()).max(1e4).default([])}).strict().superRefine((a,r)=>{Date.parse(a.from)>=Date.parse(a.to)&&r.addIssue({code:"custom",message:"Source event-time window must be nonempty."}),new Set(a.connections).size!==a.connections.length&&r.addIssue({code:"custom",message:"Source connections must be unique."}),a.excludedSessions.some(e=>!a.connections.includes(e.connectionId))&&r.addIssue({code:"custom",message:"Excluded sessions must belong to selected source connections."}),new Set(a.excludedSessions.map(e=>JSON.stringify([e.connectionId,e.sourceKeyHash]))).size!==a.excludedSessions.length&&r.addIssue({code:"custom",message:"Source session exclusions must be unique."})}),de=t.object({source:he,taskClasses:t.array(z).min(1).max(5),limits:t.object({maximumConversations:t.number().int().min(1).max(1e4),maximumCandidates:t.number().int().min(1).max(1e4),acceptedTarget:t.number().int().min(1).max(1e4),maximumRepairsPerCandidate:t.number().int().min(0).max(5),maximumEvidenceBytesPerConversation:t.number().int().min(1024).max(2e6)}).strict(),researcher:t.object({modelId:c,maximumOutputTokens:t.number().int().min(1).max(32768)}).strict(),adjudicator:t.object({modelId:c,maximumOutputTokens:t.number().int().min(1).max(32768)}).strict(),grading:t.discriminatedUnion("mode",[t.object({mode:t.literal("auto")}).strict(),t.object({mode:t.literal("existing_only")}).strict(),t.object({mode:t.literal("manual"),releases:t.array($).min(1).max(100)}).strict()]),budget:t.object({grantId:c,maximumMicroUsd:x.positive(),previewMaximumMicroUsd:x,qualificationMaximumMicroUsdPerCandidate:x,maximumSandboxSeconds:p.max(10800)}).strict(),finish:t.enum(["stop_ready","create_private_version"]),execution:t.enum(["preview_only","prepare"]),allowPartialVersion:t.boolean(),population:t.literal("development")}).strict().superRefine((a,r)=>{a.limits.acceptedTarget>a.limits.maximumCandidates&&r.addIssue({code:"custom",message:"Accepted target exceeds candidate scan limit."}),a.budget.previewMaximumMicroUsd>a.budget.maximumMicroUsd&&r.addIssue({code:"custom",message:"Preview allowance exceeds the shared preparation ceiling."}),new Set(a.taskClasses).size!==a.taskClasses.length&&r.addIssue({code:"custom",message:"Task classes must be unique."})}),_=t.object({operationId:c,expectedDatasetRevision:t.number().int().positive(),policy:de}).strict(),C=t.discriminatedUnion("action",[t.object({action:t.enum(["start","pause","resume","cancel","release"]),operationId:c,expectedRevision:t.number().int().positive()}).strict(),t.object({action:t.literal("resolve"),operationId:c,expectedRevision:t.number().int().positive(),candidateId:c,decision:t.enum(["retry","exclude"]),reason:t.string().trim().min(1).max(5e3)}).strict()]),ge=t.object({conversations:p,importedTurns:p,selectedTurns:p,queuedSnapshots:p.nullable(),failedSessions:p.nullable(),skippedSessions:p.nullable(),lastAdmissionAt:k.nullable(),complete:t.boolean(),sourceComplete:t.boolean().default(!1),excludedSessions:p.default(0),reasons:t.array(t.object({code:c,message:t.string().trim().min(1).max(2e3)}).strict()).max(100),sourceInventoryHash:I}).strict(),we=t.object({maximumMicroUsd:x,settledMicroUsd:x,heldMicroUsd:x,unresolvedCalls:p,sandboxSeconds:p,cleanupPending:p,complete:t.boolean()}).strict(),be=t.object({sampleConversations:p,sampleTurns:p,candidateCount:p,modelId:c,modelConfigurationHash:I,callReceiptIds:t.array(c).max(2e3),inputTokens:p.nullable(),outputTokens:p.nullable(),classes:t.array(t.object({taskClass:z,candidates:p,assessment:t.enum(["executable","calibrated_judge","unsupported"]),requirements:t.array(t.string().trim().min(1).max(5e3)).max(20)}).strict()).max(5),exclusions:t.array(t.object({code:c,count:p,reason:t.string().trim().min(1).max(5e3)}).strict()).max(100),estimates:t.array(t.object({stage:ce,minimumMicroUsd:x,maximumMicroUsd:x,assumptions:t.array(t.string().trim().min(1).max(2e3)).min(1).max(20)}).strict().refine(a=>a.minimumMicroUsd<=a.maximumMicroUsd,"Estimate range is reversed.")).max(6),createdAt:k}).strict(),A=t.object({schemaVersion:t.literal("openpond.datasetPreparationRun.v1"),id:c,operationId:c,teamId:c,ownerUserId:c,datasetId:c,datasetRevision:t.number().int().positive(),revision:t.number().int().positive(),requestHash:I,policy:de,status:fe,stage:ce,coverage:ge.nullable(),preview:be.nullable(),counts:t.object({scannedConversations:p,scannedTurns:p,candidates:p,reconstructed:p,qualifying:p,qualified:p,excluded:p,needsAttention:p}).strict(),accounting:we,publication:t.object({datasetId:c,workspaceRevision:t.number().int().positive(),release:$}).strict().nullable(),error:t.object({code:c,message:t.string().trim().min(1).max(5e3)}).strict().nullable(),createdAt:k,updatedAt:k}).strict().superRefine((a,r)=>{a.accounting.maximumMicroUsd!==a.policy.budget.maximumMicroUsd&&r.addIssue({code:"custom",message:"Accounting authority differs from the saved preparation policy."}),a.counts.qualified+a.counts.excluded+a.counts.needsAttention>a.counts.candidates&&r.addIssue({code:"custom",message:"Preparation outcomes exceed the candidate population."}),a.status==="preview_ready"&&(a.policy.execution!=="preview_only"||a.stage!=="preview"||!a.preview||!a.coverage?.complete||!a.accounting.complete)&&r.addIssue({code:"custom",message:"Preview readiness requires a preview-only policy, reconciled source coverage and settled preview calls."}),["ready","releasing","completed"].includes(a.status)&&(a.counts.qualified===0||!a.policy.allowPartialVersion&&a.counts.qualified<a.policy.limits.acceptedTarget)&&r.addIssue({code:"custom",message:"Preparation cannot report readiness below its accepted target."}),["ready","releasing","completed"].includes(a.status)&&(a.policy.execution!=="prepare"||!a.preview||!a.coverage?.complete||!a.accounting.complete)&&r.addIssue({code:"custom",message:"Dataset readiness requires full preparation authority, reconciled source coverage, preview and final accounting."}),a.status==="completed"&&(!a.publication||!a.accounting.complete)&&r.addIssue({code:"custom",message:"Completed preparation requires publication and reconciled accounting."}),a.status==="cancelled"&&(!a.accounting.complete||a.accounting.cleanupPending>0)&&r.addIssue({code:"custom",message:"Cancellation requires settled resource obligations."})}),pe=t.object({teamId:c,datasetId:c,runs:t.array(A).max(50),nextCursor:c.nullable()}).strict(),ye=t.object({source:X,startSequence:p,endSequence:p,role:t.enum(["requirement","initial_context","outcome","correction","verification"])}).strict().superRefine((a,r)=>{a.endSequence<a.startSequence&&r.addIssue({code:"custom",message:"Evidence span must be ordered."})}),Ie=t.object({schemaVersion:t.literal("openpond.preparedTaskProvenance.v1"),candidateId:c,preparationId:c,familyKey:c,sourceSpans:t.array(ye).min(1).max(200),firstAvailableAt:k,initialInputHash:I,initialEnvironmentHash:I,initialAssetsHash:I.nullable(),sourceScopeHash:I}).strict().superRefine((a,r)=>{a.sourceSpans.some(s=>s.role==="requirement")||r.addIssue({code:"custom",message:"A reconstructed task needs a source requirement."});let e=new Set;for(let s of a.sourceSpans){a.sourceSpans.some(i=>i!==s&&i.source.id===s.source.id&&i.source.snapshotHash===s.source.snapshotHash&&i.role!==s.role&&s.startSequence<=i.endSequence&&i.startSequence<=s.endSequence)&&r.addIssue({code:"custom",message:"Evidence offsets cannot have conflicting roles."});let n=JSON.stringify([s.source,s.startSequence,s.endSequence]);e.has(n)&&r.addIssue({code:"custom",message:"Evidence span is duplicated or crosses public/private roles."}),e.add(n)}}),ve=t.object({schemaVersion:t.literal("openpond.preparedTaskQualification.v1"),id:c,candidateId:c,preparationId:c,taskHash:I,environmentHash:I,packageHash:I,graderBindings:t.array(t.object({id:c,version:c,contentHash:I,origin:t.enum(["reused","adapted","authored"])}).strict()).min(1).max(100),checks:t.array(t.object({id:c,label:t.enum(["positive","incorrect","incomplete","adversarial","clean_reset"]),executionReceiptId:c,expectedPassed:t.boolean(),observedPassed:t.boolean().nullable(),infrastructureError:c.nullable()}).strict()).min(5).max(500),independentEvidenceRefs:t.array(c).min(1).max(100),judgeCalibration:t.enum(["not_applicable","passed","failed","pending"]),cleanup:t.enum(["completed","pending"]),passed:t.boolean(),createdAt:k}).strict().superRefine((a,r)=>{if(!a.passed)return;let e=new Set(a.checks.map(s=>s.label));["positive","incorrect","incomplete","adversarial","clean_reset"].some(s=>!e.has(s))&&r.addIssue({code:"custom",message:"Qualified tasks require positive, negative, adversarial and clean-reset evidence."}),(a.cleanup!=="completed"||["pending","failed"].includes(a.judgeCalibration)||a.checks.some(s=>s.infrastructureError!==null||s.observedPassed!==s.expectedPassed))&&r.addIssue({code:"custom",message:"Failed, uncalibrated or uncleared checks cannot qualify a task."}),a.checks.some(s=>s.expectedPassed!==["positive","clean_reset"].includes(s.label))&&r.addIssue({code:"custom",message:"Qualification witnesses must pass positives/resets and reject incorrect, incomplete and adversarial outputs."})}),ue=t.object({id:c,runId:c,revision:t.number().int().positive(),taskClass:z,status:t.enum(["discovered","reconstructing","authoring","qualifying","qualified","excluded","needs_attention"]),objective:t.string().trim().min(1).max(2e4),provenance:Ie.nullable(),qualification:ve.nullable(),reason:t.object({code:c,message:t.string().trim().min(1).max(5e3)}).strict().nullable(),attempts:p.max(6)}).strict().superRefine((a,r)=>{a.status==="qualified"&&(!a.provenance||!a.qualification?.passed)&&r.addIssue({code:"custom",message:"Candidate admission requires reconstruction and qualification receipts."}),a.provenance&&(a.provenance.candidateId!==a.id||a.provenance.preparationId!==a.runId)&&r.addIssue({code:"custom",message:"Candidate provenance identity mismatch."}),a.qualification&&(a.qualification.candidateId!==a.id||a.qualification.preparationId!==a.runId)&&r.addIssue({code:"custom",message:"Candidate qualification identity mismatch."})});var v=t.string().trim().min(1).max(240),Se=t.object({teamId:v,datasetId:v,runId:v,candidates:t.array(ue).max(50),nextCursor:v.nullable()}).strict(),T=class extends Error{constructor(e,s,n){super(n);this.status=e;this.code=s;this.name="DatasetPreparationRequestError"}status;code;static{S(this,"DatasetPreparationRequestError")}},U=class{constructor(r){this.options=r;let e=new URL(r.baseUrl);if(!["http:","https:"].includes(e.protocol)||e.username||e.password||e.search||e.hash||!r.apiKey.trim()||!r.teamId.trim())throw new Error("A clean API origin and workspace credentials are required.");this.baseUrl=e.toString().replace(/\/+$/,"")}options;static{S(this,"OpenPondDatasetPreparationClient")}baseUrl;async create(r,e,s){let n=_.parse(e),i=this.readRun(await this.request(r,"","POST",n,s),r);if(i.operationId!==n.operationId||i.requestHash!==J(n)||i.datasetRevision!==n.expectedDatasetRevision)throw new Error("Preparation creation receipt differs from the saved intent.");return i}async createGrant(r,e,s){let n=E.parse(e),i=this.readGrant(await this.request(r,"/grants","POST",n,s));if(i.id!==n.id||i.projectId!==n.projectId||i.maximumMicroUsd!==n.maximumMicroUsd||i.maximumSandboxSeconds!==n.maximumSandboxSeconds)throw new Error("Preparation grant receipt differs from the saved limits.");return i}async getGrant(r,e,s){let n=this.readGrant(await this.request(r,`/grants/${encodeURIComponent(v.parse(e))}`,"GET",void 0,s));if(n.id!==e)throw new Error("Preparation grant identity mismatch.");return n}readGrant(r){let e=oe.parse(r);if(e.teamId!==this.options.teamId)throw new Error("Preparation grant workspace mismatch.");return e}async get(r,e,s){return this.readRun(await this.request(r,`/${encodeURIComponent(v.parse(e))}`,"GET",void 0,s),r,e)}async list(r,e={}){let s=new URLSearchParams(e.cursor?{cursor:v.parse(e.cursor)}:{}),n=pe.parse(await this.request(r,`?${s}`,"GET",void 0,e.signal));if(n.teamId!==this.options.teamId||n.datasetId!==r||n.runs.some(i=>i.teamId!==n.teamId||i.datasetId!==r)||new Set(n.runs.map(i=>i.id)).size!==n.runs.length)throw new Error("Preparation list scope/identity mismatch.");return n}async command(r,e,s,n){let i=C.parse(s),o=this.readRun(await this.request(r,`/${encodeURIComponent(v.parse(e))}/commands`,"POST",i,n),r,e);if(o.revision<i.expectedRevision+1)throw new Error("Preparation command did not advance the expected revision.");return o}async operationResult(r,e,s){let n=await this.request(r,`/operations/${encodeURIComponent(v.parse(e))}`,"GET",void 0,s);if(n===null)return null;let i=t.object({operationId:v,requestHash:t.string().regex(/^[a-f0-9]{64}$/),run:A}).strict().parse(n);if(i.operationId!==e)throw new Error("Preparation operation recovery identity mismatch.");return this.readRun(i.run,r),i}async candidates(r,e,s={}){let n=new URLSearchParams(s.cursor?{cursor:v.parse(s.cursor)}:{}),i=Se.parse(await this.request(r,`/${encodeURIComponent(v.parse(e))}/candidates?${n}`,"GET",void 0,s.signal));if(i.teamId!==this.options.teamId||i.datasetId!==r||i.runId!==e||i.candidates.some(o=>o.runId!==e)||new Set(i.candidates.map(o=>o.id)).size!==i.candidates.length)throw new Error("Preparation candidate page scope/identity mismatch.");return i}readRun(r,e,s){let n=A.parse(r);if(n.teamId!==this.options.teamId||n.datasetId!==e||s&&n.id!==s)throw new Error("Preparation run scope/identity mismatch.");return n}async request(r,e,s,n,i){let o=await(this.options.fetch??fetch)(`${this.baseUrl}/v1/dataset-workspaces/${encodeURIComponent(v.parse(r))}/preparations${e}`,{method:s,signal:i,redirect:"error",headers:{Authorization:`Bearer ${this.options.apiKey}`,"X-OpenPond-Team-Id":this.options.teamId,"Content-Type":"application/json"},...n===void 0?{}:{body:JSON.stringify(n)}});if(!o.body)throw o.ok?new Error("Preparation response is empty."):new T(o.status,"dataset_preparation_request_failed",`Dataset preparation request failed (${o.status}).`);let d=o.body.getReader(),m=[],w=0;try{for(;;){let y=await d.read();if(y.done)break;if(w+=y.value.byteLength,w>(o.ok?8*1024*1024:64*1024))throw new Error("Preparation response exceeds its bounded page.");m.push(y.value)}}finally{await d.cancel()}let h=new Uint8Array(w),b=0;for(let y of m)h.set(y,b),b+=y.length;let g=new TextDecoder("utf-8",{fatal:!0}).decode(h);if(!o.ok){let y=null;try{y=JSON.parse(g)}catch{}let f=t.object({code:t.string().max(240),message:t.string().max(5e3)}).safeParse(y);throw new T(o.status,f.success?f.data.code:"dataset_preparation_request_failed",f.success?f.data.message:`Dataset preparation request failed (${o.status}).`)}return JSON.parse(g)}};var P=class{constructor(r){this.options=r;let e=new URL(r.baseUrl);if(!["http:","https:"].includes(e.protocol)||e.username||e.password||e.search||e.hash||!r.apiKey.trim()||!r.teamId.trim())throw new Error("A clean API origin and workspace credentials are required.");this.baseUrl=e.toString().replace(/\/+$/,""),this.preparations=new U(r)}options;static{S(this,"OpenPondDatasetWorkspaceClient")}baseUrl;preparations;async list(r={}){let{signal:e,...s}=r,n=Y.parse(s),i=new URLSearchParams(Object.entries(n).filter(([,d])=>d!==void 0).map(([d,m])=>[d,String(m)])),o=re.parse(await this.request(`?${i}`,"GET",void 0,e));if(o.teamId!==this.options.teamId||o.datasets.length>n.limit||new Set(o.datasets.map(d=>d.id)).size!==o.datasets.length)throw new Error("Dataset list workspace/page mismatch.");return o}async get(r,e){return this.readback(await this.request(`/${encodeURIComponent(r)}`,"GET",void 0,e),r)}async operationResult(r,e){let s=L.parse(e.kind),n=new URLSearchParams({kind:s,...e.datasetId?{datasetId:e.datasetId}:{}}),i=await this.request(`/operations/${encodeURIComponent(r)}?${n}`,"GET",void 0,e.signal,132*1024*1024);if(i===null)return null;let o=ie.parse(i);if(this.readback(o.receipt,o.receipt.datasetId),o.base&&this.readback(o.base,o.receipt.datasetId),o.operationId!==r||o.kind!==s||e.datasetId&&o.receipt.datasetId!==e.datasetId||e.requestHash&&o.requestHash!==e.requestHash)throw new Error("Dataset operation recovery identity/request mismatch.");return o}async beginVersion(r,e,s){let n=te.parse(e),i=this.readback(await this.request(`/${encodeURIComponent(r)}/begin-version`,"POST",n,s),r);if(i.revision!==n.expectedRevision+1||i.workspace.draft.status!=="draft"||!i.publication||!i.workspace.draft.publishedTasksetRef)throw new Error("Editable version receipt mismatch.");return i}async versions(r,e={}){let s=new URLSearchParams(e.beforeRevision===void 0?{}:{beforeRevision:String(e.beforeRevision)}),n=ae.parse(await this.request(`/${encodeURIComponent(r)}/versions?${s}`,"GET",void 0,e.signal));if(n.teamId!==this.options.teamId||n.datasetId!==r||n.items.some((i,o)=>o>0&&i.workspaceRevision>=n.items[o-1].workspaceRevision||e.beforeRevision!==void 0&&i.workspaceRevision>=e.beforeRevision))throw new Error("Dataset version history scope/order mismatch.");return n}async version(r,e,s){let n=this.readback(await this.request(`/${encodeURIComponent(r)}/versions/${e}`,"GET",void 0,s),r);if(n.revision!==e||n.workspace.draft.status!=="published")throw new Error("Dataset immutable version mismatch.");return n}async save(r,e){let s=Z.parse(r),n=H(s.workspace);if(n.draft.profileId!==this.options.teamId||n.draft.revision!==s.expectedRevision+1)throw new Error("Dataset write scope or revision mismatch.");let i=this.readback(await this.request(`/${encodeURIComponent(n.draft.id)}`,"PUT",s,e),n.draft.id);if(s.originProjectId&&i.originProjectId!==s.originProjectId)throw new Error("Dataset origin Project mismatch.");if(s.ownerScope&&i.ownerScope!==s.ownerScope)throw new Error("Dataset owner scope mismatch.");if(i.workspace.contentHash!==n.contentHash)throw new Error("Dataset write receipt differs from the saved bytes.");return i}async validate(r,e,s){let n=se.parse(await this.request(`/${encodeURIComponent(r)}/validate`,"POST",{expectedRevision:e},s));if(n.teamId!==this.options.teamId||n.datasetId!==r||n.revision!==e)throw new Error("Dataset validation receipt mismatch.");return n}async publish(r,e,s){let n=ee.parse(e),i=this.readback(await this.request(`/${encodeURIComponent(r)}/publish`,"POST",n,s),r);if(i.revision!==n.expectedRevision+1||i.workspace.draft.status!=="published"||i.publication?.packageHash!==n.packageHash)throw new Error("Dataset publication receipt mismatch.");return i}readback(r,e){let s=q.parse(r);if(H(s.workspace),s.datasetId!==e||s.teamId!==this.options.teamId)throw new Error("Dataset identity mismatch.");return s}async request(r,e,s,n,i){let o=await(this.options.fetch??fetch)(`${this.baseUrl}/v1/dataset-workspaces${r}`,{method:e,signal:n,redirect:"error",headers:{Authorization:`Bearer ${this.options.apiKey}`,"X-OpenPond-Team-Id":this.options.teamId,"Content-Type":"application/json"},...s===void 0?{}:{body:JSON.stringify(s)}});if(!o.ok)throw new Error(`Dataset request failed (${o.status}).`);if(i!==void 0){if(!o.body)throw new Error("Dataset response is empty.");let d=o.body.getReader(),m=[],w=0;try{for(;;){let g=await d.read();if(g.done)break;if(w+=g.value.byteLength,w>i)throw new Error("Dataset recovery exceeds its bounded response.");m.push(g.value)}}finally{await d.cancel()}let h=new Uint8Array(w),b=0;for(let g of m)h.set(g,b),b+=g.length;return JSON.parse(new TextDecoder("utf-8",{fatal:!0}).decode(h))}return o.json()}};import{readFile as xe,stat as ke}from"node:fs/promises";var W="datasets preparation <grant-create|grant-read|create|read|list|candidates|operation|start|pause|resume|cancel|resolve|release> <dataset-id> [run-or-grant-id] --team <id> --api-base-url <origin> [--input-file <path>] [--operation-id <id>] [--expected-revision <n>] [--cursor <id>]";async function me(a,r,e){let[s,n,i]=e;if(!n||!s||e.length>3)throw new Error(`usage: ${W}`);let o=l(r,"cursor")||void 0,d;if(s==="grant-create"){if(i)throw new Error("Grant creation takes its identity from the input file.");d=await a.createGrant(n,E.parse(await M(r)))}else if(s==="grant-read"){if(!i)throw new Error("Grant read requires the retained grant ID.");d=await a.getGrant(n,i)}else if(s==="create"){if(i)throw new Error("Create derives its run identity from the saved operation ID.");d=await a.create(n,_.parse(await M(r)))}else if(s==="list"){if(i)throw new Error("List accepts a Dataset ID only.");d=await a.list(n,{cursor:o})}else if(s==="operation"){let m=l(r,"operationId");if(i||!m)throw new Error("Operation recovery requires --operation-id and no run ID.");d=await a.operationResult(n,m)}else{if(!i)throw new Error(`${s} requires the retained preparation run ID.`);if(s==="read")d=await a.get(n,i);else if(s==="candidates")d=await a.candidates(n,i,{cursor:o});else{let m=s==="resolve"?C.parse(await M(r)):C.parse({action:s,operationId:l(r,"operationId"),expectedRevision:Number(l(r,"expectedRevision"))});if(m.action!==s)throw new Error("Input-file action differs from the selected preparation command.");d=await a.command(n,i,m)}}console.log(JSON.stringify(d,null,2))}S(me,"runDatasetPreparationCommand");async function M(a){let r=l(a,"inputFile");if(!r||(await ke(r)).size>1048576)throw new Error("Preparation requires a bounded --input-file containing its saved policy or resolution command.");let e=await xe(r);if(e.byteLength>1048576)throw new Error("Preparation input exceeds one MiB.");return JSON.parse(new TextDecoder("utf-8",{fatal:!0}).decode(e))}S(M,"readPreparationInput");import{readFile as Pe,stat as De}from"node:fs/promises";async function le(a,r){let[e,s]=r;if(!e||r.length>2)throw new Error("Usage: datasets <context|select|select-model|select-destination|new-experiment|select-experiment|rename-experiment|schema|list|read|create|save|file|validate|check-graders|check-sources|package|import|inspect-source|import-source|list-graders|read-grader|save-grader|test-grader|upload|publish|sync|pause-sync|disconnect-sync|related-chats> [id] --local [--input-file <path>] [--operation-id <id>] [--expected-revision <n>] [--json]");let n=new URL(l(a,"serverUrl")||process.env.OPENPOND_LOCAL_API_URL||B);if(n.protocol!=="http:"||!["localhost","127.0.0.1","[::1]"].includes(n.hostname)||n.username||n.password||n.search||n.hash||n.pathname!=="/")throw new Error("Local Datasets require an HTTP loopback server origin.");let i=await Q(n.origin,{maximumResponseBytes:Number.POSITIVE_INFINITY,timeoutMs:12e5}),o=l(a,"inputFile"),d={};if(o){let u=await De(o);if(!u.isFile()||u.size>64*1024*1024)throw new Error("Provide a bounded regular input file.");d=JSON.parse(await Pe(o,"utf8"))}let m=l(a,"expectedRevision"),w=["read-grader","save-grader","test-grader"].includes(e),h=w?l(a,"datasetId"):void 0,b=w?l(a,"graderId")||(h?s:void 0):void 0;w&&(d={...d,...b?{graderId:b}:{},...e==="read-grader"?{view:"inspection",...a.limit!==void 0?{limit:Number(a.limit)}:{},...a.offset!==void 0?{offset:Number(a.offset)}:{}}:{}});let g=e==="context"?{action:"context",payload:d}:e==="select-destination"?{action:"set_destination",payload:{executionLocation:s==="hosted"?"cloud":s}}:e==="select-model"?{action:"set_model",payload:{evaluationModel:s}}:e==="new-experiment"?{action:"create_scope",payload:{operationId:l(a,"operationId")}}:e==="select"?{action:"set_focus",payload:{kind:"dataset",id:s??null,...m?{revision:Number(m)}:{}}}:e==="select-experiment"?{action:"select_scope",payload:{scopeId:s}}:e==="rename-experiment"?{action:"rename_scope",payload:{scopeId:s,...d}}:null;if(g&&!process.env.OPENPOND_CHAT_INVOCATION)throw new Error("Chat selection commands require the app's scoped command executor.");let y=await i(new URL("/v1/local-datasets",n),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...g??{action:e.replaceAll("-","_"),...h||s?{id:h||s}:{},...a.operationId?{operationId:l(a,"operationId")}:{},...m?{expectedRevision:Number(m)}:{},payload:d},...process.env.OPENPOND_CHAT_INVOCATION?{invocationToken:process.env.OPENPOND_CHAT_INVOCATION}:{}})}),f=await y.json();if(!y.ok)throw new Error(typeof f.error=="string"?f.error:`Local Dataset request failed (${y.status}).`);if(R(a.json)){console.log(JSON.stringify(f,null,2));return}let D=Array.isArray(f)?f:[...f.summary?[f.summary]:[],...Array.isArray(f.summaries)?f.summaries:[]];if(!D.length){console.log(JSON.stringify(f,null,2));return}for(let u of D){if(u.kind==="grader"){console.log(`${u.name} \xB7 version ${u.revision} \xB7 ${u.state} \xB7 ${u.checkState}`),console.log(`${u.id} \xB7 Dataset ${u.datasetId} \xB7 Grader ${u.graderId}`);continue}console.log(`${u.name} \xB7 version ${u.revision} \xB7 ${u.state} \xB7 ${u.syncState}`),console.log(`${u.id} \xB7 ${u.taskCount} tasks \xB7 ${u.graderCount} graders \xB7 ${u.checkState}`),console.log(`Inspect: openpond datasets read ${u.id} --local --expected-revision ${u.revision} --json`),console.log(`Check graders: openpond datasets check-graders ${u.id} --local --expected-revision ${u.revision}`)}}S(le,"runLocalDatasetsCommand");import{readFile as Re}from"node:fs/promises";async function vt(a,r){if(R(a.local))return le(a,r);let[e,s]=r,n=l(a,"team"),i=V(a);if(e==="preparation"){if(!n||!i)throw new Error(`usage: ${W}`);let h=await N(),b=new P({teamId:n,baseUrl:i,fetch:j,apiKey:await G(h,O(h))});return me(b.preparations,a,r.slice(1))}if(!n||!i||!e||r.length>2||!["upload","save","read","list","validate","publish"].includes(e))throw new Error("usage: datasets <upload|save|read|list|validate|publish> [folder|id] --team <id> --api-base-url <origin> [--input-file <path>] [--operation-id <id>] [--expected-revision <n>] [--publish] [--project <id>]");let o=await N(),d=new P({teamId:n,baseUrl:i,fetch:j,apiKey:await G(o,O(o))}),m=l(a,"operationId"),w;if(e==="save"){let h=l(a,"inputFile");if(s||!h)throw new Error("Save requires --input-file containing the complete Dataset workspace write request, including its operationId and expectedRevision.");w=await d.save(JSON.parse(await Re(h,"utf8")))}else if(e==="list"){if(s)throw new Error("List does not accept a dataset id.");w=await d.list({cursor:l(a,"cursor")||void 0})}else{if(!s)throw new Error(`${e} requires a ${e==="upload"?"folder":"dataset id"}.`);if(e==="read")w=await d.get(s);else if(e==="upload"){if(!m||m.length>220)throw new Error("Upload requires a stable --operation-id of at most 220 characters. Reuse it after an uncertain response.");let h=l(a,"expectedRevision"),b=h?Number(h):0;if(!Number.isSafeInteger(b)||b<0)throw new Error("Expected revision must be a nonnegative integer.");let g=await ne({directory:s,teamId:n,expectedRevision:b,datasetId:l(a,"datasetId")||void 0}),y=F({workspace:g.workspace,preparation:null,adapterId:"openpond-hosted-taskset-authoring-v1",now:g.workspace.draft.updatedAt}),f=await d.save({operationId:`${m}:save`,expectedRevision:b,workspace:g.workspace,...l(a,"project")?{originProjectId:l(a,"project")}:{}}),D=await d.get(f.datasetId);if(D.workspace.draft.status==="draft"){let K=await d.validate(f.datasetId,f.revision);if(K.workspaceHash!==g.workspace.contentHash||K.packageHash!==y.contentHash)throw new Error("Hosted validation differs from the captured folder bytes.")}else if(D.publication?.packageHash!==y.contentHash)throw new Error("This dataset was changed after the upload receipt. Read the current version before continuing.");let u=R(a.publish)?await d.publish(f.datasetId,{operationId:`${m}:publish`,expectedRevision:f.revision,workspaceHash:f.workspace.contentHash,packageHash:y.contentHash}):f;w={teamId:n,datasetId:u.datasetId,revision:u.revision,status:u.workspace.draft.status,operationId:m,capturedBytes:g.capturedBytes,sourceHash:g.sourceHash,sourceFiles:g.sourceFiles,workspaceHash:f.workspace.contentHash,packageHash:y.contentHash,publication:u.publication}}else{let h=Number(l(a,"expectedRevision"));if(!Number.isSafeInteger(h)||h<=0)throw new Error(`${e} requires --expected-revision with the retained dataset revision.`);if(e==="validate")w=await d.validate(s,h);else{if(!m)throw new Error("Publish requires a stable --operation-id.");let b=l(a,"workspaceHash"),g=l(a,"packageHash");if(!b||!g)throw new Error("Publish requires --workspace-hash and --package-hash from the retained validation receipt. Keep these pins and the operation id unchanged on retry.");w=await d.publish(s,{operationId:m,expectedRevision:h,workspaceHash:b,packageHash:g})}}}console.log(JSON.stringify(w,null,2))}S(vt,"runDatasetsCommand");export{vt as runDatasetsCommand};
2
+ import{d as ne}from"./chunk-VMW23TIZ.js";import"./chunk-HYUTDZ3N.js";import{c as G}from"./chunk-RFQD6B44.js";import{a as B,d as Q}from"./chunk-6IKIGVJF.js";import"./chunk-P7RLDDPN.js";import"./chunk-OFC5N6R3.js";import"./chunk-XRKFTPHD.js";import"./chunk-EDYCSW22.js";import"./chunk-Z6HWSTEP.js";import"./chunk-XGY4OQLC.js";import"./chunk-2PVW2XFF.js";import"./chunk-64EDQ7UV.js";import"./chunk-DLOJG7LP.js";import"./chunk-ULTV6INR.js";import"./chunk-XKDOPNQ5.js";import"./chunk-JXLDEYRW.js";import"./chunk-GR4MJJCE.js";import"./chunk-GG6PM7TB.js";import"./chunk-2GEZ3ZY7.js";import"./chunk-BYVE4TMU.js";import"./chunk-LVXL7T5O.js";import"./chunk-HIQPGYVH.js";import"./chunk-3VT2PPKW.js";import"./chunk-5ZBDHIIE.js";import"./chunk-MTP3B2SU.js";import"./chunk-KHDCMVEJ.js";import{a as X,b as Y,c as Z,d as q,e as ee,f as te,g as ae,h as re,i as se}from"./chunk-K3WM4NEC.js";import"./chunk-BLNEHU62.js";import"./chunk-BT5YNE5U.js";import{d as N}from"./chunk-RPM4FDRX.js";import"./chunk-DFZTRMTL.js";import"./chunk-2QHB5P2K.js";import"./chunk-BZS2PA4O.js";import{k as H,m as F}from"./chunk-VSQPWLAG.js";import"./chunk-6LAGMWJE.js";import"./chunk-IV2HEX3I.js";import"./chunk-C7NQPICU.js";import{a as $}from"./chunk-J256AEEE.js";import"./chunk-J7X72QUY.js";import"./chunk-UN2LKLGV.js";import"./chunk-HLJJAOI2.js";import"./chunk-AMC4Z7G4.js";import"./chunk-LK77GI6M.js";import"./chunk-HVM2GUM3.js";import"./chunk-I6VMRQF4.js";import"./chunk-D6L6UNUQ.js";import"./chunk-AJXWJLZA.js";import"./chunk-OKKNDQJF.js";import"./chunk-ZEOYNUHL.js";import"./chunk-ZY32SZ2P.js";import"./chunk-OTDDXEQ6.js";import"./chunk-ECOH24MC.js";import{a as j}from"./chunk-JF7WWLNW.js";import{c as V,f as O}from"./chunk-BSHAIAXY.js";import"./chunk-XWPC3AN4.js";import{c as l,f as R}from"./chunk-3M53YXEI.js";import"./chunk-GLUWATL5.js";import"./chunk-MZKCW6CB.js";import"./chunk-SV7ZBEK2.js";import"./chunk-2MEOUS24.js";import"./chunk-HNQPEOJD.js";import{n as J}from"./chunk-RCT3O3HQ.js";import"./chunk-UGOK7VTC.js";import"./chunk-TBODQT4W.js";import"./chunk-5HPZGLOL.js";import"./chunk-ZFJWA4JK.js";import{A as t}from"./chunk-X2J2P5ZT.js";import{a as S}from"./chunk-FTQLQJQV.js";var L=t.enum(["create","save","publish","begin_version"]),ie=t.object({operationId:t.string().trim().min(1).max(240),kind:L,requestHash:t.string().regex(/^[a-f0-9]{64}$/),receipt:q,base:q.nullable()}).strict().superRefine((a,r)=>{let{receipt:e,base:s,kind:n}=a;(s&&(s.teamId!==e.teamId||s.datasetId!==e.datasetId||s.revision+1!==e.revision)||!s&&e.revision!==1)&&r.addIssue({code:"custom",message:"Operation recovery history identity/revision mismatch."}),s&&((s.ownerScope??"workspace")!==(e.ownerScope??"workspace")||s.originProjectId!==e.originProjectId||s.workspace.draft.createdAt!==e.workspace.draft.createdAt)&&r.addIssue({code:"custom",message:"Operation recovery cannot change Dataset ownership or origin."});let i=s?e.workspace.draft.status==="published"?"publish":s.workspace.draft.status==="published"?"begin_version":"save":"create";n!==i&&r.addIssue({code:"custom",message:"Operation recovery kind differs from its retained lifecycle."})});var c=t.string().trim().min(1).max(240),I=t.string().regex(/^[a-f0-9]{64}$/),k=t.iso.datetime(),p=t.number().int().nonnegative(),x=t.number().int().nonnegative().max(Number.MAX_SAFE_INTEGER),E=t.object({id:c,projectId:c,maximumMicroUsd:x.positive(),maximumSandboxSeconds:p.max(10800)}).strict(),oe=t.object({schemaVersion:t.literal("openpond.datasetPreparationGrant.v1"),id:c,teamId:c,ownerUserId:c,projectId:c,maximumMicroUsd:x,maximumSandboxSeconds:p,settledMicroUsd:x,heldMicroUsd:x,sandboxSeconds:p,heldSandboxSeconds:p,unresolvedCalls:p,cleanupPending:p,createdAt:k,updatedAt:k}).strict(),z=t.enum(["coding_change","debugging","code_explanation","structured_text","artifact_work"]),ce=t.enum(["inventory","preview","reconstruction","grader_authoring","qualification","release"]),fe=t.enum(["draft","running","pausing","paused","needs_attention","preview_ready","ready","releasing","completed","insufficient_data","budget_exhausted","cancelling","cancelled","failed"]),he=t.object({projectId:c,from:k,to:k,importCutoff:k,connections:t.array(c).min(1).max(50),excludedSessions:t.array(t.object({connectionId:c,sourceKeyHash:I,nativeRevisionHash:I,reason:t.enum(["source_read_failed","native_session_not_ready"]),explanation:t.string().trim().min(1).max(2e3)}).strict()).max(1e4).default([])}).strict().superRefine((a,r)=>{Date.parse(a.from)>=Date.parse(a.to)&&r.addIssue({code:"custom",message:"Source event-time window must be nonempty."}),new Set(a.connections).size!==a.connections.length&&r.addIssue({code:"custom",message:"Source connections must be unique."}),a.excludedSessions.some(e=>!a.connections.includes(e.connectionId))&&r.addIssue({code:"custom",message:"Excluded sessions must belong to selected source connections."}),new Set(a.excludedSessions.map(e=>JSON.stringify([e.connectionId,e.sourceKeyHash]))).size!==a.excludedSessions.length&&r.addIssue({code:"custom",message:"Source session exclusions must be unique."})}),de=t.object({source:he,taskClasses:t.array(z).min(1).max(5),limits:t.object({maximumConversations:t.number().int().min(1).max(1e4),maximumCandidates:t.number().int().min(1).max(1e4),acceptedTarget:t.number().int().min(1).max(1e4),maximumRepairsPerCandidate:t.number().int().min(0).max(5),maximumEvidenceBytesPerConversation:t.number().int().min(1024).max(2e6)}).strict(),researcher:t.object({modelId:c,maximumOutputTokens:t.number().int().min(1).max(32768)}).strict(),adjudicator:t.object({modelId:c,maximumOutputTokens:t.number().int().min(1).max(32768)}).strict(),grading:t.discriminatedUnion("mode",[t.object({mode:t.literal("auto")}).strict(),t.object({mode:t.literal("existing_only")}).strict(),t.object({mode:t.literal("manual"),releases:t.array($).min(1).max(100)}).strict()]),budget:t.object({grantId:c,maximumMicroUsd:x.positive(),previewMaximumMicroUsd:x,qualificationMaximumMicroUsdPerCandidate:x,maximumSandboxSeconds:p.max(10800)}).strict(),finish:t.enum(["stop_ready","create_private_version"]),execution:t.enum(["preview_only","prepare"]),allowPartialVersion:t.boolean(),population:t.literal("development")}).strict().superRefine((a,r)=>{a.limits.acceptedTarget>a.limits.maximumCandidates&&r.addIssue({code:"custom",message:"Accepted target exceeds candidate scan limit."}),a.budget.previewMaximumMicroUsd>a.budget.maximumMicroUsd&&r.addIssue({code:"custom",message:"Preview allowance exceeds the shared preparation ceiling."}),new Set(a.taskClasses).size!==a.taskClasses.length&&r.addIssue({code:"custom",message:"Task classes must be unique."})}),_=t.object({operationId:c,expectedDatasetRevision:t.number().int().positive(),policy:de}).strict(),C=t.discriminatedUnion("action",[t.object({action:t.enum(["start","pause","resume","cancel","release"]),operationId:c,expectedRevision:t.number().int().positive()}).strict(),t.object({action:t.literal("resolve"),operationId:c,expectedRevision:t.number().int().positive(),candidateId:c,decision:t.enum(["retry","exclude"]),reason:t.string().trim().min(1).max(5e3)}).strict()]),ge=t.object({conversations:p,importedTurns:p,selectedTurns:p,queuedSnapshots:p.nullable(),failedSessions:p.nullable(),skippedSessions:p.nullable(),lastAdmissionAt:k.nullable(),complete:t.boolean(),sourceComplete:t.boolean().default(!1),excludedSessions:p.default(0),reasons:t.array(t.object({code:c,message:t.string().trim().min(1).max(2e3)}).strict()).max(100),sourceInventoryHash:I}).strict(),we=t.object({maximumMicroUsd:x,settledMicroUsd:x,heldMicroUsd:x,unresolvedCalls:p,sandboxSeconds:p,cleanupPending:p,complete:t.boolean()}).strict(),be=t.object({sampleConversations:p,sampleTurns:p,candidateCount:p,modelId:c,modelConfigurationHash:I,callReceiptIds:t.array(c).max(2e3),inputTokens:p.nullable(),outputTokens:p.nullable(),classes:t.array(t.object({taskClass:z,candidates:p,assessment:t.enum(["executable","calibrated_judge","unsupported"]),requirements:t.array(t.string().trim().min(1).max(5e3)).max(20)}).strict()).max(5),exclusions:t.array(t.object({code:c,count:p,reason:t.string().trim().min(1).max(5e3)}).strict()).max(100),estimates:t.array(t.object({stage:ce,minimumMicroUsd:x,maximumMicroUsd:x,assumptions:t.array(t.string().trim().min(1).max(2e3)).min(1).max(20)}).strict().refine(a=>a.minimumMicroUsd<=a.maximumMicroUsd,"Estimate range is reversed.")).max(6),createdAt:k}).strict(),A=t.object({schemaVersion:t.literal("openpond.datasetPreparationRun.v1"),id:c,operationId:c,teamId:c,ownerUserId:c,datasetId:c,datasetRevision:t.number().int().positive(),revision:t.number().int().positive(),requestHash:I,policy:de,status:fe,stage:ce,coverage:ge.nullable(),preview:be.nullable(),counts:t.object({scannedConversations:p,scannedTurns:p,candidates:p,reconstructed:p,qualifying:p,qualified:p,excluded:p,needsAttention:p}).strict(),accounting:we,publication:t.object({datasetId:c,workspaceRevision:t.number().int().positive(),release:$}).strict().nullable(),error:t.object({code:c,message:t.string().trim().min(1).max(5e3)}).strict().nullable(),createdAt:k,updatedAt:k}).strict().superRefine((a,r)=>{a.accounting.maximumMicroUsd!==a.policy.budget.maximumMicroUsd&&r.addIssue({code:"custom",message:"Accounting authority differs from the saved preparation policy."}),a.counts.qualified+a.counts.excluded+a.counts.needsAttention>a.counts.candidates&&r.addIssue({code:"custom",message:"Preparation outcomes exceed the candidate population."}),a.status==="preview_ready"&&(a.policy.execution!=="preview_only"||a.stage!=="preview"||!a.preview||!a.coverage?.complete||!a.accounting.complete)&&r.addIssue({code:"custom",message:"Preview readiness requires a preview-only policy, reconciled source coverage and settled preview calls."}),["ready","releasing","completed"].includes(a.status)&&(a.counts.qualified===0||!a.policy.allowPartialVersion&&a.counts.qualified<a.policy.limits.acceptedTarget)&&r.addIssue({code:"custom",message:"Preparation cannot report readiness below its accepted target."}),["ready","releasing","completed"].includes(a.status)&&(a.policy.execution!=="prepare"||!a.preview||!a.coverage?.complete||!a.accounting.complete)&&r.addIssue({code:"custom",message:"Dataset readiness requires full preparation authority, reconciled source coverage, preview and final accounting."}),a.status==="completed"&&(!a.publication||!a.accounting.complete)&&r.addIssue({code:"custom",message:"Completed preparation requires publication and reconciled accounting."}),a.status==="cancelled"&&(!a.accounting.complete||a.accounting.cleanupPending>0)&&r.addIssue({code:"custom",message:"Cancellation requires settled resource obligations."})}),pe=t.object({teamId:c,datasetId:c,runs:t.array(A).max(50),nextCursor:c.nullable()}).strict(),ye=t.object({source:X,startSequence:p,endSequence:p,role:t.enum(["requirement","initial_context","outcome","correction","verification"])}).strict().superRefine((a,r)=>{a.endSequence<a.startSequence&&r.addIssue({code:"custom",message:"Evidence span must be ordered."})}),Ie=t.object({schemaVersion:t.literal("openpond.preparedTaskProvenance.v1"),candidateId:c,preparationId:c,familyKey:c,sourceSpans:t.array(ye).min(1).max(200),firstAvailableAt:k,initialInputHash:I,initialEnvironmentHash:I,initialAssetsHash:I.nullable(),sourceScopeHash:I}).strict().superRefine((a,r)=>{a.sourceSpans.some(s=>s.role==="requirement")||r.addIssue({code:"custom",message:"A reconstructed task needs a source requirement."});let e=new Set;for(let s of a.sourceSpans){a.sourceSpans.some(i=>i!==s&&i.source.id===s.source.id&&i.source.snapshotHash===s.source.snapshotHash&&i.role!==s.role&&s.startSequence<=i.endSequence&&i.startSequence<=s.endSequence)&&r.addIssue({code:"custom",message:"Evidence offsets cannot have conflicting roles."});let n=JSON.stringify([s.source,s.startSequence,s.endSequence]);e.has(n)&&r.addIssue({code:"custom",message:"Evidence span is duplicated or crosses public/private roles."}),e.add(n)}}),ve=t.object({schemaVersion:t.literal("openpond.preparedTaskQualification.v1"),id:c,candidateId:c,preparationId:c,taskHash:I,environmentHash:I,packageHash:I,graderBindings:t.array(t.object({id:c,version:c,contentHash:I,origin:t.enum(["reused","adapted","authored"])}).strict()).min(1).max(100),checks:t.array(t.object({id:c,label:t.enum(["positive","incorrect","incomplete","adversarial","clean_reset"]),executionReceiptId:c,expectedPassed:t.boolean(),observedPassed:t.boolean().nullable(),infrastructureError:c.nullable()}).strict()).min(5).max(500),independentEvidenceRefs:t.array(c).min(1).max(100),judgeCalibration:t.enum(["not_applicable","passed","failed","pending"]),cleanup:t.enum(["completed","pending"]),passed:t.boolean(),createdAt:k}).strict().superRefine((a,r)=>{if(!a.passed)return;let e=new Set(a.checks.map(s=>s.label));["positive","incorrect","incomplete","adversarial","clean_reset"].some(s=>!e.has(s))&&r.addIssue({code:"custom",message:"Qualified tasks require positive, negative, adversarial and clean-reset evidence."}),(a.cleanup!=="completed"||["pending","failed"].includes(a.judgeCalibration)||a.checks.some(s=>s.infrastructureError!==null||s.observedPassed!==s.expectedPassed))&&r.addIssue({code:"custom",message:"Failed, uncalibrated or uncleared checks cannot qualify a task."}),a.checks.some(s=>s.expectedPassed!==["positive","clean_reset"].includes(s.label))&&r.addIssue({code:"custom",message:"Qualification witnesses must pass positives/resets and reject incorrect, incomplete and adversarial outputs."})}),ue=t.object({id:c,runId:c,revision:t.number().int().positive(),taskClass:z,status:t.enum(["discovered","reconstructing","authoring","qualifying","qualified","excluded","needs_attention"]),objective:t.string().trim().min(1).max(2e4),provenance:Ie.nullable(),qualification:ve.nullable(),reason:t.object({code:c,message:t.string().trim().min(1).max(5e3)}).strict().nullable(),attempts:p.max(6)}).strict().superRefine((a,r)=>{a.status==="qualified"&&(!a.provenance||!a.qualification?.passed)&&r.addIssue({code:"custom",message:"Candidate admission requires reconstruction and qualification receipts."}),a.provenance&&(a.provenance.candidateId!==a.id||a.provenance.preparationId!==a.runId)&&r.addIssue({code:"custom",message:"Candidate provenance identity mismatch."}),a.qualification&&(a.qualification.candidateId!==a.id||a.qualification.preparationId!==a.runId)&&r.addIssue({code:"custom",message:"Candidate qualification identity mismatch."})});var v=t.string().trim().min(1).max(240),Se=t.object({teamId:v,datasetId:v,runId:v,candidates:t.array(ue).max(50),nextCursor:v.nullable()}).strict(),T=class extends Error{constructor(e,s,n){super(n);this.status=e;this.code=s;this.name="DatasetPreparationRequestError"}status;code;static{S(this,"DatasetPreparationRequestError")}},U=class{constructor(r){this.options=r;let e=new URL(r.baseUrl);if(!["http:","https:"].includes(e.protocol)||e.username||e.password||e.search||e.hash||!r.apiKey.trim()||!r.teamId.trim())throw new Error("A clean API origin and workspace credentials are required.");this.baseUrl=e.toString().replace(/\/+$/,"")}options;static{S(this,"OpenPondDatasetPreparationClient")}baseUrl;async create(r,e,s){let n=_.parse(e),i=this.readRun(await this.request(r,"","POST",n,s),r);if(i.operationId!==n.operationId||i.requestHash!==J(n)||i.datasetRevision!==n.expectedDatasetRevision)throw new Error("Preparation creation receipt differs from the saved intent.");return i}async createGrant(r,e,s){let n=E.parse(e),i=this.readGrant(await this.request(r,"/grants","POST",n,s));if(i.id!==n.id||i.projectId!==n.projectId||i.maximumMicroUsd!==n.maximumMicroUsd||i.maximumSandboxSeconds!==n.maximumSandboxSeconds)throw new Error("Preparation grant receipt differs from the saved limits.");return i}async getGrant(r,e,s){let n=this.readGrant(await this.request(r,`/grants/${encodeURIComponent(v.parse(e))}`,"GET",void 0,s));if(n.id!==e)throw new Error("Preparation grant identity mismatch.");return n}readGrant(r){let e=oe.parse(r);if(e.teamId!==this.options.teamId)throw new Error("Preparation grant workspace mismatch.");return e}async get(r,e,s){return this.readRun(await this.request(r,`/${encodeURIComponent(v.parse(e))}`,"GET",void 0,s),r,e)}async list(r,e={}){let s=new URLSearchParams(e.cursor?{cursor:v.parse(e.cursor)}:{}),n=pe.parse(await this.request(r,`?${s}`,"GET",void 0,e.signal));if(n.teamId!==this.options.teamId||n.datasetId!==r||n.runs.some(i=>i.teamId!==n.teamId||i.datasetId!==r)||new Set(n.runs.map(i=>i.id)).size!==n.runs.length)throw new Error("Preparation list scope/identity mismatch.");return n}async command(r,e,s,n){let i=C.parse(s),o=this.readRun(await this.request(r,`/${encodeURIComponent(v.parse(e))}/commands`,"POST",i,n),r,e);if(o.revision<i.expectedRevision+1)throw new Error("Preparation command did not advance the expected revision.");return o}async operationResult(r,e,s){let n=await this.request(r,`/operations/${encodeURIComponent(v.parse(e))}`,"GET",void 0,s);if(n===null)return null;let i=t.object({operationId:v,requestHash:t.string().regex(/^[a-f0-9]{64}$/),run:A}).strict().parse(n);if(i.operationId!==e)throw new Error("Preparation operation recovery identity mismatch.");return this.readRun(i.run,r),i}async candidates(r,e,s={}){let n=new URLSearchParams(s.cursor?{cursor:v.parse(s.cursor)}:{}),i=Se.parse(await this.request(r,`/${encodeURIComponent(v.parse(e))}/candidates?${n}`,"GET",void 0,s.signal));if(i.teamId!==this.options.teamId||i.datasetId!==r||i.runId!==e||i.candidates.some(o=>o.runId!==e)||new Set(i.candidates.map(o=>o.id)).size!==i.candidates.length)throw new Error("Preparation candidate page scope/identity mismatch.");return i}readRun(r,e,s){let n=A.parse(r);if(n.teamId!==this.options.teamId||n.datasetId!==e||s&&n.id!==s)throw new Error("Preparation run scope/identity mismatch.");return n}async request(r,e,s,n,i){let o=await(this.options.fetch??fetch)(`${this.baseUrl}/v1/dataset-workspaces/${encodeURIComponent(v.parse(r))}/preparations${e}`,{method:s,signal:i,redirect:"error",headers:{Authorization:`Bearer ${this.options.apiKey}`,"X-OpenPond-Team-Id":this.options.teamId,"Content-Type":"application/json"},...n===void 0?{}:{body:JSON.stringify(n)}});if(!o.body)throw o.ok?new Error("Preparation response is empty."):new T(o.status,"dataset_preparation_request_failed",`Dataset preparation request failed (${o.status}).`);let d=o.body.getReader(),m=[],w=0;try{for(;;){let y=await d.read();if(y.done)break;if(w+=y.value.byteLength,w>(o.ok?8*1024*1024:64*1024))throw new Error("Preparation response exceeds its bounded page.");m.push(y.value)}}finally{await d.cancel()}let h=new Uint8Array(w),b=0;for(let y of m)h.set(y,b),b+=y.length;let g=new TextDecoder("utf-8",{fatal:!0}).decode(h);if(!o.ok){let y=null;try{y=JSON.parse(g)}catch{}let f=t.object({code:t.string().max(240),message:t.string().max(5e3)}).safeParse(y);throw new T(o.status,f.success?f.data.code:"dataset_preparation_request_failed",f.success?f.data.message:`Dataset preparation request failed (${o.status}).`)}return JSON.parse(g)}};var P=class{constructor(r){this.options=r;let e=new URL(r.baseUrl);if(!["http:","https:"].includes(e.protocol)||e.username||e.password||e.search||e.hash||!r.apiKey.trim()||!r.teamId.trim())throw new Error("A clean API origin and workspace credentials are required.");this.baseUrl=e.toString().replace(/\/+$/,""),this.preparations=new U(r)}options;static{S(this,"OpenPondDatasetWorkspaceClient")}baseUrl;preparations;async list(r={}){let{signal:e,...s}=r,n=Y.parse(s),i=new URLSearchParams(Object.entries(n).filter(([,d])=>d!==void 0).map(([d,m])=>[d,String(m)])),o=re.parse(await this.request(`?${i}`,"GET",void 0,e));if(o.teamId!==this.options.teamId||o.datasets.length>n.limit||new Set(o.datasets.map(d=>d.id)).size!==o.datasets.length)throw new Error("Dataset list workspace/page mismatch.");return o}async get(r,e){return this.readback(await this.request(`/${encodeURIComponent(r)}`,"GET",void 0,e),r)}async operationResult(r,e){let s=L.parse(e.kind),n=new URLSearchParams({kind:s,...e.datasetId?{datasetId:e.datasetId}:{}}),i=await this.request(`/operations/${encodeURIComponent(r)}?${n}`,"GET",void 0,e.signal,132*1024*1024);if(i===null)return null;let o=ie.parse(i);if(this.readback(o.receipt,o.receipt.datasetId),o.base&&this.readback(o.base,o.receipt.datasetId),o.operationId!==r||o.kind!==s||e.datasetId&&o.receipt.datasetId!==e.datasetId||e.requestHash&&o.requestHash!==e.requestHash)throw new Error("Dataset operation recovery identity/request mismatch.");return o}async beginVersion(r,e,s){let n=te.parse(e),i=this.readback(await this.request(`/${encodeURIComponent(r)}/begin-version`,"POST",n,s),r);if(i.revision!==n.expectedRevision+1||i.workspace.draft.status!=="draft"||!i.publication||!i.workspace.draft.publishedTasksetRef)throw new Error("Editable version receipt mismatch.");return i}async versions(r,e={}){let s=new URLSearchParams(e.beforeRevision===void 0?{}:{beforeRevision:String(e.beforeRevision)}),n=ae.parse(await this.request(`/${encodeURIComponent(r)}/versions?${s}`,"GET",void 0,e.signal));if(n.teamId!==this.options.teamId||n.datasetId!==r||n.items.some((i,o)=>o>0&&i.workspaceRevision>=n.items[o-1].workspaceRevision||e.beforeRevision!==void 0&&i.workspaceRevision>=e.beforeRevision))throw new Error("Dataset version history scope/order mismatch.");return n}async version(r,e,s){let n=this.readback(await this.request(`/${encodeURIComponent(r)}/versions/${e}`,"GET",void 0,s),r);if(n.revision!==e||n.workspace.draft.status!=="published")throw new Error("Dataset immutable version mismatch.");return n}async save(r,e){let s=Z.parse(r),n=H(s.workspace);if(n.draft.profileId!==this.options.teamId||n.draft.revision!==s.expectedRevision+1)throw new Error("Dataset write scope or revision mismatch.");let i=this.readback(await this.request(`/${encodeURIComponent(n.draft.id)}`,"PUT",s,e),n.draft.id);if(s.originProjectId&&i.originProjectId!==s.originProjectId)throw new Error("Dataset origin Project mismatch.");if(s.ownerScope&&i.ownerScope!==s.ownerScope)throw new Error("Dataset owner scope mismatch.");if(i.workspace.contentHash!==n.contentHash)throw new Error("Dataset write receipt differs from the saved bytes.");return i}async validate(r,e,s){let n=se.parse(await this.request(`/${encodeURIComponent(r)}/validate`,"POST",{expectedRevision:e},s));if(n.teamId!==this.options.teamId||n.datasetId!==r||n.revision!==e)throw new Error("Dataset validation receipt mismatch.");return n}async publish(r,e,s){let n=ee.parse(e),i=this.readback(await this.request(`/${encodeURIComponent(r)}/publish`,"POST",n,s),r);if(i.revision!==n.expectedRevision+1||i.workspace.draft.status!=="published"||i.publication?.packageHash!==n.packageHash)throw new Error("Dataset publication receipt mismatch.");return i}readback(r,e){let s=q.parse(r);if(H(s.workspace),s.datasetId!==e||s.teamId!==this.options.teamId)throw new Error("Dataset identity mismatch.");return s}async request(r,e,s,n,i){let o=await(this.options.fetch??fetch)(`${this.baseUrl}/v1/dataset-workspaces${r}`,{method:e,signal:n,redirect:"error",headers:{Authorization:`Bearer ${this.options.apiKey}`,"X-OpenPond-Team-Id":this.options.teamId,"Content-Type":"application/json"},...s===void 0?{}:{body:JSON.stringify(s)}});if(!o.ok)throw new Error(`Dataset request failed (${o.status}).`);if(i!==void 0){if(!o.body)throw new Error("Dataset response is empty.");let d=o.body.getReader(),m=[],w=0;try{for(;;){let g=await d.read();if(g.done)break;if(w+=g.value.byteLength,w>i)throw new Error("Dataset recovery exceeds its bounded response.");m.push(g.value)}}finally{await d.cancel()}let h=new Uint8Array(w),b=0;for(let g of m)h.set(g,b),b+=g.length;return JSON.parse(new TextDecoder("utf-8",{fatal:!0}).decode(h))}return o.json()}};import{readFile as xe,stat as ke}from"node:fs/promises";var W="datasets preparation <grant-create|grant-read|create|read|list|candidates|operation|start|pause|resume|cancel|resolve|release> <dataset-id> [run-or-grant-id] --team <id> --api-base-url <origin> [--input-file <path>] [--operation-id <id>] [--expected-revision <n>] [--cursor <id>]";async function me(a,r,e){let[s,n,i]=e;if(!n||!s||e.length>3)throw new Error(`usage: ${W}`);let o=l(r,"cursor")||void 0,d;if(s==="grant-create"){if(i)throw new Error("Grant creation takes its identity from the input file.");d=await a.createGrant(n,E.parse(await M(r)))}else if(s==="grant-read"){if(!i)throw new Error("Grant read requires the retained grant ID.");d=await a.getGrant(n,i)}else if(s==="create"){if(i)throw new Error("Create derives its run identity from the saved operation ID.");d=await a.create(n,_.parse(await M(r)))}else if(s==="list"){if(i)throw new Error("List accepts a Dataset ID only.");d=await a.list(n,{cursor:o})}else if(s==="operation"){let m=l(r,"operationId");if(i||!m)throw new Error("Operation recovery requires --operation-id and no run ID.");d=await a.operationResult(n,m)}else{if(!i)throw new Error(`${s} requires the retained preparation run ID.`);if(s==="read")d=await a.get(n,i);else if(s==="candidates")d=await a.candidates(n,i,{cursor:o});else{let m=s==="resolve"?C.parse(await M(r)):C.parse({action:s,operationId:l(r,"operationId"),expectedRevision:Number(l(r,"expectedRevision"))});if(m.action!==s)throw new Error("Input-file action differs from the selected preparation command.");d=await a.command(n,i,m)}}console.log(JSON.stringify(d,null,2))}S(me,"runDatasetPreparationCommand");async function M(a){let r=l(a,"inputFile");if(!r||(await ke(r)).size>1048576)throw new Error("Preparation requires a bounded --input-file containing its saved policy or resolution command.");let e=await xe(r);if(e.byteLength>1048576)throw new Error("Preparation input exceeds one MiB.");return JSON.parse(new TextDecoder("utf-8",{fatal:!0}).decode(e))}S(M,"readPreparationInput");import{readFile as Pe,stat as De}from"node:fs/promises";async function le(a,r){let[e,s]=r;if(!e||r.length>2)throw new Error("Usage: datasets <context|select|select-model|select-destination|new-experiment|select-experiment|rename-experiment|schema|list|read|create|save|file|validate|check-graders|check-sources|package|import|inspect-source|import-source|list-graders|read-grader|save-grader|test-grader|upload|publish|sync|pause-sync|disconnect-sync|related-chats> [id] --local [--input-file <path>] [--operation-id <id>] [--expected-revision <n>] [--json]");let n=new URL(l(a,"serverUrl")||process.env.OPENPOND_LOCAL_API_URL||B);if(n.protocol!=="http:"||!["localhost","127.0.0.1","[::1]"].includes(n.hostname)||n.username||n.password||n.search||n.hash||n.pathname!=="/")throw new Error("Local Datasets require an HTTP loopback server origin.");let i=await Q(n.origin,{maximumResponseBytes:Number.POSITIVE_INFINITY,timeoutMs:12e5}),o=l(a,"inputFile"),d={};if(o){let u=await De(o);if(!u.isFile()||u.size>64*1024*1024)throw new Error("Provide a bounded regular input file.");d=JSON.parse(await Pe(o,"utf8"))}let m=l(a,"expectedRevision"),w=["read-grader","save-grader","test-grader"].includes(e),h=w?l(a,"datasetId"):void 0,b=w?l(a,"graderId")||(h?s:void 0):void 0;w&&(d={...d,...b?{graderId:b}:{},...e==="read-grader"?{view:"inspection",...a.limit!==void 0?{limit:Number(a.limit)}:{},...a.offset!==void 0?{offset:Number(a.offset)}:{}}:{}});let g=e==="context"?{action:"context",payload:d}:e==="select-destination"?{action:"set_destination",payload:{executionLocation:s==="hosted"?"cloud":s}}:e==="select-model"?{action:"set_model",payload:{evaluationModel:s}}:e==="new-experiment"?{action:"create_scope",payload:{operationId:l(a,"operationId")}}:e==="select"?{action:"set_focus",payload:{kind:"dataset",id:s??null,...m?{revision:Number(m)}:{}}}:e==="select-experiment"?{action:"select_scope",payload:{scopeId:s}}:e==="rename-experiment"?{action:"rename_scope",payload:{scopeId:s,...d}}:null;if(g&&!process.env.OPENPOND_CHAT_INVOCATION)throw new Error("Chat selection commands require the app's scoped command executor.");let y=await i(new URL("/v1/local-datasets",n),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...g??{action:e.replaceAll("-","_"),...h||s?{id:h||s}:{},...a.operationId?{operationId:l(a,"operationId")}:{},...m?{expectedRevision:Number(m)}:{},payload:d},...process.env.OPENPOND_CHAT_INVOCATION?{invocationToken:process.env.OPENPOND_CHAT_INVOCATION}:{}})}),f=await y.json();if(!y.ok)throw new Error(typeof f.error=="string"?f.error:`Local Dataset request failed (${y.status}).`);if(R(a.json)){console.log(JSON.stringify(f,null,2));return}let D=Array.isArray(f)?f:[...f.summary?[f.summary]:[],...Array.isArray(f.summaries)?f.summaries:[]];if(!D.length){console.log(JSON.stringify(f,null,2));return}for(let u of D){if(u.kind==="grader"){console.log(`${u.name} \xB7 version ${u.revision} \xB7 ${u.state} \xB7 ${u.checkState}`),console.log(`${u.id} \xB7 Dataset ${u.datasetId} \xB7 Grader ${u.graderId}`);continue}console.log(`${u.name} \xB7 version ${u.revision} \xB7 ${u.state} \xB7 ${u.syncState}`),console.log(`${u.id} \xB7 ${u.taskCount} tasks \xB7 ${u.graderCount} graders \xB7 ${u.checkState}`),console.log(`Inspect: openpond datasets read ${u.id} --local --expected-revision ${u.revision} --json`),console.log(`Check graders: openpond datasets check-graders ${u.id} --local --expected-revision ${u.revision}`)}}S(le,"runLocalDatasetsCommand");import{readFile as Re}from"node:fs/promises";async function vt(a,r){if(R(a.local))return le(a,r);let[e,s]=r,n=l(a,"team"),i=V(a);if(e==="preparation"){if(!n||!i)throw new Error(`usage: ${W}`);let h=await N(),b=new P({teamId:n,baseUrl:i,fetch:j,apiKey:await G(h,O(h))});return me(b.preparations,a,r.slice(1))}if(!n||!i||!e||r.length>2||!["upload","save","read","list","validate","publish"].includes(e))throw new Error("usage: datasets <upload|save|read|list|validate|publish> [folder|id] --team <id> --api-base-url <origin> [--input-file <path>] [--operation-id <id>] [--expected-revision <n>] [--publish] [--project <id>]");let o=await N(),d=new P({teamId:n,baseUrl:i,fetch:j,apiKey:await G(o,O(o))}),m=l(a,"operationId"),w;if(e==="save"){let h=l(a,"inputFile");if(s||!h)throw new Error("Save requires --input-file containing the complete Dataset workspace write request, including its operationId and expectedRevision.");w=await d.save(JSON.parse(await Re(h,"utf8")))}else if(e==="list"){if(s)throw new Error("List does not accept a dataset id.");w=await d.list({cursor:l(a,"cursor")||void 0})}else{if(!s)throw new Error(`${e} requires a ${e==="upload"?"folder":"dataset id"}.`);if(e==="read")w=await d.get(s);else if(e==="upload"){if(!m||m.length>220)throw new Error("Upload requires a stable --operation-id of at most 220 characters. Reuse it after an uncertain response.");let h=l(a,"expectedRevision"),b=h?Number(h):0;if(!Number.isSafeInteger(b)||b<0)throw new Error("Expected revision must be a nonnegative integer.");let g=await ne({directory:s,teamId:n,expectedRevision:b,datasetId:l(a,"datasetId")||void 0}),y=F({workspace:g.workspace,preparation:null,adapterId:"openpond-hosted-taskset-authoring-v1",now:g.workspace.draft.updatedAt}),f=await d.save({operationId:`${m}:save`,expectedRevision:b,workspace:g.workspace,...l(a,"project")?{originProjectId:l(a,"project")}:{}}),D=await d.get(f.datasetId);if(D.workspace.draft.status==="draft"){let K=await d.validate(f.datasetId,f.revision);if(K.workspaceHash!==g.workspace.contentHash||K.packageHash!==y.contentHash)throw new Error("Hosted validation differs from the captured folder bytes.")}else if(D.publication?.packageHash!==y.contentHash)throw new Error("This dataset was changed after the upload receipt. Read the current version before continuing.");let u=R(a.publish)?await d.publish(f.datasetId,{operationId:`${m}:publish`,expectedRevision:f.revision,workspaceHash:f.workspace.contentHash,packageHash:y.contentHash}):f;w={teamId:n,datasetId:u.datasetId,revision:u.revision,status:u.workspace.draft.status,operationId:m,capturedBytes:g.capturedBytes,sourceHash:g.sourceHash,sourceFiles:g.sourceFiles,workspaceHash:f.workspace.contentHash,packageHash:y.contentHash,publication:u.publication}}else{let h=Number(l(a,"expectedRevision"));if(!Number.isSafeInteger(h)||h<=0)throw new Error(`${e} requires --expected-revision with the retained dataset revision.`);if(e==="validate")w=await d.validate(s,h);else{if(!m)throw new Error("Publish requires a stable --operation-id.");let b=l(a,"workspaceHash"),g=l(a,"packageHash");if(!b||!g)throw new Error("Publish requires --workspace-hash and --package-hash from the retained validation receipt. Keep these pins and the operation id unchanged on retry.");w=await d.publish(s,{operationId:m,expectedRevision:h,workspaceHash:b,packageHash:g})}}}console.log(JSON.stringify(w,null,2))}S(vt,"runDatasetsCommand");export{vt as runDatasetsCommand};
@@ -1,3 +1,3 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{u as f}from"./chunk-HYUTDZ3N.js";import"./chunk-RFQD6B44.js";import{a as c}from"./chunk-KUEVP7WM.js";import"./chunk-KTQWWCP2.js";import"./chunk-XRKFTPHD.js";import"./chunk-KHDCMVEJ.js";import"./chunk-K3WM4NEC.js";import"./chunk-BLNEHU62.js";import"./chunk-BT5YNE5U.js";import"./chunk-RPM4FDRX.js";import"./chunk-DFZTRMTL.js";import"./chunk-2QHB5P2K.js";import"./chunk-BZS2PA4O.js";import"./chunk-VSQPWLAG.js";import"./chunk-6LAGMWJE.js";import"./chunk-IV2HEX3I.js";import"./chunk-C7NQPICU.js";import"./chunk-J256AEEE.js";import"./chunk-J7X72QUY.js";import"./chunk-UN2LKLGV.js";import"./chunk-HLJJAOI2.js";import"./chunk-AMC4Z7G4.js";import"./chunk-LK77GI6M.js";import"./chunk-HVM2GUM3.js";import"./chunk-I6VMRQF4.js";import"./chunk-D6L6UNUQ.js";import"./chunk-AJXWJLZA.js";import"./chunk-OKKNDQJF.js";import"./chunk-ZEOYNUHL.js";import"./chunk-ZY32SZ2P.js";import"./chunk-OTDDXEQ6.js";import"./chunk-ECOH24MC.js";import"./chunk-BSHAIAXY.js";import"./chunk-XWPC3AN4.js";import{c as p,f as u}from"./chunk-3M53YXEI.js";import"./chunk-GLUWATL5.js";import"./chunk-MZKCW6CB.js";import"./chunk-SV7ZBEK2.js";import"./chunk-2MEOUS24.js";import"./chunk-HNQPEOJD.js";import"./chunk-RCT3O3HQ.js";import"./chunk-UGOK7VTC.js";import"./chunk-TBODQT4W.js";import"./chunk-5HPZGLOL.js";import"./chunk-ZFJWA4JK.js";import"./chunk-X2J2P5ZT.js";import{a as r}from"./chunk-FTQLQJQV.js";import d from"node:path";import{access as v}from"node:fs/promises";import{constants as C}from"node:fs";import{createRequire as P}from"node:module";var l=d.join("scripts","desktop-harness.ts");async function $(n,t){let o=await j({options:n,rest:t}),e=await f(o.command,o.args,{cwd:o.cwd,inherit:!0,timeoutMs:0});if(e.code!==0)throw new m(e.code)}r($,"runDesktopTestCommand");async function j(n){let t=n.options,o=n.rest,e=o[0];if(e!=="run"&&e!=="attach")throw new c(D());let a=o.slice(1);if(a.length===0)throw new c("usage: openpond desktop-test run <scenario...> [options]");let g=p(t,"cwd")||n.cwd||process.cwd(),w=await O(g),k=(n.env??process.env).OPENPOND_NODE_BINARY?.trim()||process.execPath,s=[P(import.meta.url).resolve("tsx/cli"),l,"run",...a],h=x(t,e);return h&&s.push(`--${h}`),i(s,"--app",t,"app"),i(s,"--server",t,"server"),i(s,"--token",t,"token"),i(s,"--token-file",t,"tokenFile"),i(s,"--devtools-port",t,"devtoolsPort"),i(s,"--artifacts-dir",t,"artifactsDir"),H(s,t),i(s,"--grep",t,"grep"),i(s,"--timeout-ms",t,"timeoutMs"),u(t.keepHome)&&s.push("--keep-home"),{command:k,args:s,cwd:w}}r(j,"buildDesktopHarnessInvocation");async function O(n){let t=d.resolve(n);for(;;){let o=d.join(t,l);if(await R(o))return t;let e=d.dirname(t);if(e===t)throw new c(`Could not find ${l}. Run this command from the OpenPond source checkout or pass --cwd <repo>.`);t=e}}r(O,"resolveDesktopHarnessRepoRoot");function x(n,t){let o=t==="attach"?"attach":null;for(let e of["isolated","attach","packaged","none"])if(u(n[e])){if(o&&o!==e)throw new c("Choose only one desktop harness launch mode: --isolated, --attach, --packaged, or --none.");o=e}return o}r(x,"resolveLaunchMode");function i(n,t,o,e){let a=p(o,e);a&&n.push(t,a)}r(i,"appendStringFlag");function H(n,t){let o=p(t,"json"),e=p(t,"jsonPath");if(o&&y(o))throw new c("harness --json requires a report path. Use --json <path> or --json-path <path>.");if(o&&e&&o!==e)throw new c("Use only one JSON report path: --json <path> or --json-path <path>.");let a=o||e;a&&n.push("--json",a)}r(H,"appendJsonFlag");function y(n){return/^(true|false|1|0|yes|no)$/i.test(n)}r(y,"isBooleanLiteral");async function R(n){try{return await v(n,C.R_OK),!0}catch{return!1}}r(R,"fileExists");function D(){return["usage: openpond desktop-test run <scenario...> [options]"," openpond desktop-test attach <scenario...> [options]","","Options include --isolated, --attach, --packaged, --none, --app <path>,","--server <url>, --token <token>, --token-file <path>, --devtools-port <port>, --artifacts-dir <path>,","--json <path>, --json-path <path>, --grep <pattern>, --timeout-ms <ms>,","--keep-home, and --cwd <repo>."].join(`
2
+ import{u as f}from"./chunk-HYUTDZ3N.js";import"./chunk-RFQD6B44.js";import{a as c}from"./chunk-P7RLDDPN.js";import"./chunk-OFC5N6R3.js";import"./chunk-XRKFTPHD.js";import"./chunk-KHDCMVEJ.js";import"./chunk-K3WM4NEC.js";import"./chunk-BLNEHU62.js";import"./chunk-BT5YNE5U.js";import"./chunk-RPM4FDRX.js";import"./chunk-DFZTRMTL.js";import"./chunk-2QHB5P2K.js";import"./chunk-BZS2PA4O.js";import"./chunk-VSQPWLAG.js";import"./chunk-6LAGMWJE.js";import"./chunk-IV2HEX3I.js";import"./chunk-C7NQPICU.js";import"./chunk-J256AEEE.js";import"./chunk-J7X72QUY.js";import"./chunk-UN2LKLGV.js";import"./chunk-HLJJAOI2.js";import"./chunk-AMC4Z7G4.js";import"./chunk-LK77GI6M.js";import"./chunk-HVM2GUM3.js";import"./chunk-I6VMRQF4.js";import"./chunk-D6L6UNUQ.js";import"./chunk-AJXWJLZA.js";import"./chunk-OKKNDQJF.js";import"./chunk-ZEOYNUHL.js";import"./chunk-ZY32SZ2P.js";import"./chunk-OTDDXEQ6.js";import"./chunk-ECOH24MC.js";import"./chunk-BSHAIAXY.js";import"./chunk-XWPC3AN4.js";import{c as p,f as u}from"./chunk-3M53YXEI.js";import"./chunk-GLUWATL5.js";import"./chunk-MZKCW6CB.js";import"./chunk-SV7ZBEK2.js";import"./chunk-2MEOUS24.js";import"./chunk-HNQPEOJD.js";import"./chunk-RCT3O3HQ.js";import"./chunk-UGOK7VTC.js";import"./chunk-TBODQT4W.js";import"./chunk-5HPZGLOL.js";import"./chunk-ZFJWA4JK.js";import"./chunk-X2J2P5ZT.js";import{a as r}from"./chunk-FTQLQJQV.js";import d from"node:path";import{access as v}from"node:fs/promises";import{constants as C}from"node:fs";import{createRequire as P}from"node:module";var l=d.join("scripts","desktop-harness.ts");async function $(n,t){let o=await j({options:n,rest:t}),e=await f(o.command,o.args,{cwd:o.cwd,inherit:!0,timeoutMs:0});if(e.code!==0)throw new m(e.code)}r($,"runDesktopTestCommand");async function j(n){let t=n.options,o=n.rest,e=o[0];if(e!=="run"&&e!=="attach")throw new c(D());let a=o.slice(1);if(a.length===0)throw new c("usage: openpond desktop-test run <scenario...> [options]");let g=p(t,"cwd")||n.cwd||process.cwd(),w=await O(g),k=(n.env??process.env).OPENPOND_NODE_BINARY?.trim()||process.execPath,s=[P(import.meta.url).resolve("tsx/cli"),l,"run",...a],h=x(t,e);return h&&s.push(`--${h}`),i(s,"--app",t,"app"),i(s,"--server",t,"server"),i(s,"--token",t,"token"),i(s,"--token-file",t,"tokenFile"),i(s,"--devtools-port",t,"devtoolsPort"),i(s,"--artifacts-dir",t,"artifactsDir"),H(s,t),i(s,"--grep",t,"grep"),i(s,"--timeout-ms",t,"timeoutMs"),u(t.keepHome)&&s.push("--keep-home"),{command:k,args:s,cwd:w}}r(j,"buildDesktopHarnessInvocation");async function O(n){let t=d.resolve(n);for(;;){let o=d.join(t,l);if(await R(o))return t;let e=d.dirname(t);if(e===t)throw new c(`Could not find ${l}. Run this command from the OpenPond source checkout or pass --cwd <repo>.`);t=e}}r(O,"resolveDesktopHarnessRepoRoot");function x(n,t){let o=t==="attach"?"attach":null;for(let e of["isolated","attach","packaged","none"])if(u(n[e])){if(o&&o!==e)throw new c("Choose only one desktop harness launch mode: --isolated, --attach, --packaged, or --none.");o=e}return o}r(x,"resolveLaunchMode");function i(n,t,o,e){let a=p(o,e);a&&n.push(t,a)}r(i,"appendStringFlag");function H(n,t){let o=p(t,"json"),e=p(t,"jsonPath");if(o&&y(o))throw new c("harness --json requires a report path. Use --json <path> or --json-path <path>.");if(o&&e&&o!==e)throw new c("Use only one JSON report path: --json <path> or --json-path <path>.");let a=o||e;a&&n.push("--json",a)}r(H,"appendJsonFlag");function y(n){return/^(true|false|1|0|yes|no)$/i.test(n)}r(y,"isBooleanLiteral");async function R(n){try{return await v(n,C.R_OK),!0}catch{return!1}}r(R,"fileExists");function D(){return["usage: openpond desktop-test run <scenario...> [options]"," openpond desktop-test attach <scenario...> [options]","","Options include --isolated, --attach, --packaged, --none, --app <path>,","--server <url>, --token <token>, --token-file <path>, --devtools-port <port>, --artifacts-dir <path>,","--json <path>, --json-path <path>, --grep <pattern>, --timeout-ms <ms>,","--keep-home, and --cwd <repo>."].join(`
3
3
  `)}r(D,"desktopHarnessCliUsage");var m=class extends Error{static{r(this,"HarnessCommandFailedError")}exitCode;constructor(t){let o=typeof t=="number"&&t>0?t:1;super(`desktop harness failed with exit code ${o}`),this.name="HarnessCommandFailedError",this.exitCode=o}};export{j as buildDesktopHarnessInvocation,O as resolveDesktopHarnessRepoRoot,$ as runDesktopTestCommand};
@@ -1,2 +1,2 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{a as p,b as v}from"./chunk-WMJEQK4G.js";import"./chunk-HYUTDZ3N.js";import"./chunk-RFQD6B44.js";import"./chunk-X7ZMUWJO.js";import"./chunk-KUEVP7WM.js";import"./chunk-KTQWWCP2.js";import"./chunk-XRKFTPHD.js";import"./chunk-KHDCMVEJ.js";import{s as d,t as s,u as h,v as w}from"./chunk-K3WM4NEC.js";import"./chunk-BLNEHU62.js";import"./chunk-BT5YNE5U.js";import"./chunk-RPM4FDRX.js";import"./chunk-DFZTRMTL.js";import"./chunk-2QHB5P2K.js";import"./chunk-BZS2PA4O.js";import"./chunk-VSQPWLAG.js";import"./chunk-6LAGMWJE.js";import"./chunk-IV2HEX3I.js";import"./chunk-C7NQPICU.js";import"./chunk-J256AEEE.js";import"./chunk-J7X72QUY.js";import"./chunk-UN2LKLGV.js";import"./chunk-HLJJAOI2.js";import"./chunk-AMC4Z7G4.js";import"./chunk-LK77GI6M.js";import"./chunk-HVM2GUM3.js";import"./chunk-I6VMRQF4.js";import"./chunk-D6L6UNUQ.js";import"./chunk-AJXWJLZA.js";import"./chunk-OKKNDQJF.js";import"./chunk-ZEOYNUHL.js";import"./chunk-ZY32SZ2P.js";import"./chunk-OTDDXEQ6.js";import"./chunk-ECOH24MC.js";import"./chunk-BSHAIAXY.js";import"./chunk-XWPC3AN4.js";import{c as r}from"./chunk-3M53YXEI.js";import"./chunk-GLUWATL5.js";import"./chunk-MZKCW6CB.js";import"./chunk-SV7ZBEK2.js";import"./chunk-2MEOUS24.js";import"./chunk-HNQPEOJD.js";import"./chunk-RCT3O3HQ.js";import"./chunk-UGOK7VTC.js";import"./chunk-TBODQT4W.js";import"./chunk-5HPZGLOL.js";import"./chunk-ZFJWA4JK.js";import"./chunk-X2J2P5ZT.js";import{a as m}from"./chunk-FTQLQJQV.js";async function b(t,e,n){let[a,o]=n,i=r(e,"actor");if(!i||!a||n.length>2)throw new Error("Select --actor, --team and an evaluation command.");if(e.local!==!0&&e.local!=="true")throw new Error("These evaluation owners currently run through the authenticated native bridge. Select --local --server-url with its loopback origin.");let c={...await v(e),actorId:i,projectId:r(e,"project")||null},l=a==="request"?await p(e):a==="list"?t==="schedule"?{operation:a,...r(e,"cursor")?{cursor:r(e,"cursor")}:{},limit:Number(r(e,"limit")||50)}:{operation:a}:{operation:a,id:o};if((a==="request"||a==="list")&&o)throw new Error("This operation does not accept an additional resource id.");let u=AbortSignal.timeout(6e4),f=t==="schedule"?await new s(c).command(d.parse(l),u):await new w(c).command(h.parse(l),u);console.log(JSON.stringify(f,null,2))}m(b,"runEvaluationCoordinationCommand");export{b as runEvaluationCoordinationCommand};
2
+ import{a as p,b as v}from"./chunk-E7SQBMYW.js";import"./chunk-HYUTDZ3N.js";import"./chunk-RFQD6B44.js";import"./chunk-6IKIGVJF.js";import"./chunk-P7RLDDPN.js";import"./chunk-OFC5N6R3.js";import"./chunk-XRKFTPHD.js";import"./chunk-KHDCMVEJ.js";import{s as d,t as s,u as h,v as w}from"./chunk-K3WM4NEC.js";import"./chunk-BLNEHU62.js";import"./chunk-BT5YNE5U.js";import"./chunk-RPM4FDRX.js";import"./chunk-DFZTRMTL.js";import"./chunk-2QHB5P2K.js";import"./chunk-BZS2PA4O.js";import"./chunk-VSQPWLAG.js";import"./chunk-6LAGMWJE.js";import"./chunk-IV2HEX3I.js";import"./chunk-C7NQPICU.js";import"./chunk-J256AEEE.js";import"./chunk-J7X72QUY.js";import"./chunk-UN2LKLGV.js";import"./chunk-HLJJAOI2.js";import"./chunk-AMC4Z7G4.js";import"./chunk-LK77GI6M.js";import"./chunk-HVM2GUM3.js";import"./chunk-I6VMRQF4.js";import"./chunk-D6L6UNUQ.js";import"./chunk-AJXWJLZA.js";import"./chunk-OKKNDQJF.js";import"./chunk-ZEOYNUHL.js";import"./chunk-ZY32SZ2P.js";import"./chunk-OTDDXEQ6.js";import"./chunk-ECOH24MC.js";import"./chunk-BSHAIAXY.js";import"./chunk-XWPC3AN4.js";import{c as r}from"./chunk-3M53YXEI.js";import"./chunk-GLUWATL5.js";import"./chunk-MZKCW6CB.js";import"./chunk-SV7ZBEK2.js";import"./chunk-2MEOUS24.js";import"./chunk-HNQPEOJD.js";import"./chunk-RCT3O3HQ.js";import"./chunk-UGOK7VTC.js";import"./chunk-TBODQT4W.js";import"./chunk-5HPZGLOL.js";import"./chunk-ZFJWA4JK.js";import"./chunk-X2J2P5ZT.js";import{a as m}from"./chunk-FTQLQJQV.js";async function b(t,e,n){let[a,o]=n,i=r(e,"actor");if(!i||!a||n.length>2)throw new Error("Select --actor, --team and an evaluation command.");if(e.local!==!0&&e.local!=="true")throw new Error("These evaluation owners currently run through the authenticated native bridge. Select --local --server-url with its loopback origin.");let c={...await v(e),actorId:i,projectId:r(e,"project")||null},l=a==="request"?await p(e):a==="list"?t==="schedule"?{operation:a,...r(e,"cursor")?{cursor:r(e,"cursor")}:{},limit:Number(r(e,"limit")||50)}:{operation:a}:{operation:a,id:o};if((a==="request"||a==="list")&&o)throw new Error("This operation does not accept an additional resource id.");let u=AbortSignal.timeout(6e4),f=t==="schedule"?await new s(c).command(d.parse(l),u):await new w(c).command(h.parse(l),u);console.log(JSON.stringify(f,null,2))}m(b,"runEvaluationCoordinationCommand");export{b as runEvaluationCoordinationCommand};
@@ -1,2 +1,2 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{a as s,b as l}from"./chunk-WMJEQK4G.js";import"./chunk-HYUTDZ3N.js";import"./chunk-RFQD6B44.js";import"./chunk-X7ZMUWJO.js";import"./chunk-KUEVP7WM.js";import"./chunk-KTQWWCP2.js";import"./chunk-XRKFTPHD.js";import"./chunk-KHDCMVEJ.js";import{q as m,r as c}from"./chunk-K3WM4NEC.js";import"./chunk-BLNEHU62.js";import"./chunk-BT5YNE5U.js";import"./chunk-RPM4FDRX.js";import"./chunk-DFZTRMTL.js";import"./chunk-2QHB5P2K.js";import"./chunk-BZS2PA4O.js";import"./chunk-VSQPWLAG.js";import"./chunk-6LAGMWJE.js";import"./chunk-IV2HEX3I.js";import"./chunk-C7NQPICU.js";import"./chunk-J256AEEE.js";import"./chunk-J7X72QUY.js";import"./chunk-UN2LKLGV.js";import"./chunk-HLJJAOI2.js";import"./chunk-AMC4Z7G4.js";import"./chunk-LK77GI6M.js";import"./chunk-HVM2GUM3.js";import"./chunk-I6VMRQF4.js";import"./chunk-D6L6UNUQ.js";import"./chunk-AJXWJLZA.js";import"./chunk-OKKNDQJF.js";import"./chunk-ZEOYNUHL.js";import"./chunk-ZY32SZ2P.js";import"./chunk-OTDDXEQ6.js";import"./chunk-ECOH24MC.js";import"./chunk-BSHAIAXY.js";import"./chunk-XWPC3AN4.js";import{c as e}from"./chunk-3M53YXEI.js";import"./chunk-GLUWATL5.js";import"./chunk-MZKCW6CB.js";import"./chunk-SV7ZBEK2.js";import"./chunk-2MEOUS24.js";import"./chunk-HNQPEOJD.js";import"./chunk-RCT3O3HQ.js";import"./chunk-UGOK7VTC.js";import"./chunk-TBODQT4W.js";import"./chunk-5HPZGLOL.js";import"./chunk-ZFJWA4JK.js";import"./chunk-X2J2P5ZT.js";import{a}from"./chunk-FTQLQJQV.js";async function f(t,i){let[r,o]=i,n=e(t,"actor");if(!n||!r||i.length>2)throw new Error("usage: improve <list|read|instructions|request> [id] --team <id> --actor <owner-id> [--input-file <path>] [--local --server-url <loopback-origin>]");let u=m.parse(r==="request"?await s(t):r==="list"?{operation:r,limit:Number(e(t,"limit")||30),...e(t,"cursor")?{cursor:e(t,"cursor")}:{}}:{operation:r,id:o});if(r==="request"&&o||r==="list"&&o)throw new Error("This operation does not accept a candidate id.");let d=new c({...await l(t),actorId:n});console.log(JSON.stringify(await d.command(u,AbortSignal.timeout(6e4)),null,2))}a(f,"runExperimentImprovementsCommand");export{f as runExperimentImprovementsCommand};
2
+ import{a as s,b as l}from"./chunk-E7SQBMYW.js";import"./chunk-HYUTDZ3N.js";import"./chunk-RFQD6B44.js";import"./chunk-6IKIGVJF.js";import"./chunk-P7RLDDPN.js";import"./chunk-OFC5N6R3.js";import"./chunk-XRKFTPHD.js";import"./chunk-KHDCMVEJ.js";import{q as m,r as c}from"./chunk-K3WM4NEC.js";import"./chunk-BLNEHU62.js";import"./chunk-BT5YNE5U.js";import"./chunk-RPM4FDRX.js";import"./chunk-DFZTRMTL.js";import"./chunk-2QHB5P2K.js";import"./chunk-BZS2PA4O.js";import"./chunk-VSQPWLAG.js";import"./chunk-6LAGMWJE.js";import"./chunk-IV2HEX3I.js";import"./chunk-C7NQPICU.js";import"./chunk-J256AEEE.js";import"./chunk-J7X72QUY.js";import"./chunk-UN2LKLGV.js";import"./chunk-HLJJAOI2.js";import"./chunk-AMC4Z7G4.js";import"./chunk-LK77GI6M.js";import"./chunk-HVM2GUM3.js";import"./chunk-I6VMRQF4.js";import"./chunk-D6L6UNUQ.js";import"./chunk-AJXWJLZA.js";import"./chunk-OKKNDQJF.js";import"./chunk-ZEOYNUHL.js";import"./chunk-ZY32SZ2P.js";import"./chunk-OTDDXEQ6.js";import"./chunk-ECOH24MC.js";import"./chunk-BSHAIAXY.js";import"./chunk-XWPC3AN4.js";import{c as e}from"./chunk-3M53YXEI.js";import"./chunk-GLUWATL5.js";import"./chunk-MZKCW6CB.js";import"./chunk-SV7ZBEK2.js";import"./chunk-2MEOUS24.js";import"./chunk-HNQPEOJD.js";import"./chunk-RCT3O3HQ.js";import"./chunk-UGOK7VTC.js";import"./chunk-TBODQT4W.js";import"./chunk-5HPZGLOL.js";import"./chunk-ZFJWA4JK.js";import"./chunk-X2J2P5ZT.js";import{a}from"./chunk-FTQLQJQV.js";async function f(t,i){let[r,o]=i,n=e(t,"actor");if(!n||!r||i.length>2)throw new Error("usage: improve <list|read|instructions|request> [id] --team <id> --actor <owner-id> [--input-file <path>] [--local --server-url <loopback-origin>]");let u=m.parse(r==="request"?await s(t):r==="list"?{operation:r,limit:Number(e(t,"limit")||30),...e(t,"cursor")?{cursor:e(t,"cursor")}:{}}:{operation:r,id:o});if(r==="request"&&o||r==="list"&&o)throw new Error("This operation does not accept a candidate id.");let d=new c({...await l(t),actorId:n});console.log(JSON.stringify(await d.command(u,AbortSignal.timeout(6e4)),null,2))}a(f,"runExperimentImprovementsCommand");export{f as runExperimentImprovementsCommand};
@@ -1,2 +1,2 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{a as Z,b as v,d as re}from"./chunk-GMA365GI.js";import"./chunk-HYUTDZ3N.js";import{c as Q}from"./chunk-RFQD6B44.js";import{a as A,d as k}from"./chunk-X7ZMUWJO.js";import{Ol as V,Pl as B,sm as K}from"./chunk-AWD72O3G.js";import"./chunk-2EAZB2MW.js";import"./chunk-ZMRP2A7K.js";import"./chunk-KUEVP7WM.js";import"./chunk-KTQWWCP2.js";import"./chunk-XRKFTPHD.js";import{Bd as ee,df as te,gf as ae}from"./chunk-2Q2AWPP2.js";import"./chunk-W45RKGM6.js";import"./chunk-73COPJ32.js";import"./chunk-UGDBMRCT.js";import"./chunk-2PVW2XFF.js";import"./chunk-64EDQ7UV.js";import{J as G}from"./chunk-DLOJG7LP.js";import"./chunk-ULTV6INR.js";import"./chunk-XKDOPNQ5.js";import"./chunk-JXLDEYRW.js";import"./chunk-GR4MJJCE.js";import{q as N}from"./chunk-GG6PM7TB.js";import"./chunk-2GEZ3ZY7.js";import"./chunk-BYVE4TMU.js";import"./chunk-LVXL7T5O.js";import"./chunk-HIQPGYVH.js";import"./chunk-3VT2PPKW.js";import"./chunk-5ZBDHIIE.js";import"./chunk-MTP3B2SU.js";import"./chunk-KHDCMVEJ.js";import{n as X,o as Y}from"./chunk-K3WM4NEC.js";import"./chunk-BLNEHU62.js";import"./chunk-BT5YNE5U.js";import{d as W}from"./chunk-RPM4FDRX.js";import"./chunk-DFZTRMTL.js";import"./chunk-2QHB5P2K.js";import"./chunk-BZS2PA4O.js";import"./chunk-VSQPWLAG.js";import"./chunk-6LAGMWJE.js";import{m as z,q as J}from"./chunk-IV2HEX3I.js";import"./chunk-C7NQPICU.js";import"./chunk-J256AEEE.js";import"./chunk-J7X72QUY.js";import"./chunk-UN2LKLGV.js";import"./chunk-HLJJAOI2.js";import"./chunk-AMC4Z7G4.js";import"./chunk-LK77GI6M.js";import"./chunk-HVM2GUM3.js";import"./chunk-I6VMRQF4.js";import"./chunk-D6L6UNUQ.js";import"./chunk-AJXWJLZA.js";import"./chunk-OKKNDQJF.js";import"./chunk-ZEOYNUHL.js";import{Fb as M}from"./chunk-ZY32SZ2P.js";import"./chunk-OTDDXEQ6.js";import"./chunk-ECOH24MC.js";import{a as H}from"./chunk-JF7WWLNW.js";import"./chunk-RRWL5BHZ.js";import{c as F,f as $}from"./chunk-BSHAIAXY.js";import"./chunk-XWPC3AN4.js";import{c as n,f as T}from"./chunk-3M53YXEI.js";import{b as U}from"./chunk-GLUWATL5.js";import"./chunk-MZKCW6CB.js";import"./chunk-SV7ZBEK2.js";import"./chunk-2MEOUS24.js";import"./chunk-HNQPEOJD.js";import{h as _,n as D}from"./chunk-RCT3O3HQ.js";import"./chunk-UGOK7VTC.js";import"./chunk-NXN7GJOH.js";import"./chunk-TBODQT4W.js";import"./chunk-5HPZGLOL.js";import"./chunk-ZFJWA4JK.js";import{A as e}from"./chunk-X2J2P5ZT.js";import{a as g}from"./chunk-FTQLQJQV.js";import{readFile as O,stat as j}from"node:fs/promises";var y=e.string().trim().min(1).max(500),ne=e.string().regex(/^[a-f0-9]{64}$/),me=e.object({schemaVersion:e.literal("openpond.experimentCaseInspection.v1"),teamId:y,executionId:y,manifestHash:ne,receiptId:y,taskId:y,seed:e.string().min(1),input:e.record(e.string(),e.unknown()).nullable(),output:e.unknown().nullable(),error:e.string().nullable(),events:e.array(e.record(e.string(),e.unknown())).max(25),nextEventCursor:y.nullable(),eventCount:e.number().int().nonnegative()}).strict(),pe=me.extend({contentHash:ne}).strict(),L=class{constructor(s){this.options=s;let a=new URL(s.baseUrl);if(!["http:","https:"].includes(a.protocol)||a.username||a.password||a.search||a.hash||!s.apiKey.trim()||!s.teamId.trim())throw new Error("A clean API origin and workspace credentials are required.");this.baseUrl=a.toString().replace(/\/+$/,"")}options;static{g(this,"OpenPondExperimentInspectionClient")}baseUrl;async case(s,a,t={}){let l=new URLSearchParams(t.afterId?{afterId:y.parse(t.afterId)}:{}),p=await(this.options.fetch??fetch)(`${this.baseUrl}/v1/experiments/${encodeURIComponent(y.parse(s))}/cases/${encodeURIComponent(y.parse(a))}?${l}`,{signal:t.signal,redirect:"error",headers:{Authorization:`Bearer ${this.options.apiKey}`,"X-OpenPond-Team-Id":this.options.teamId,Accept:"application/json"}}),w=await p.json();if(!p.ok)throw new Error(e.object({message:e.string()}).parse(w).message);let d=pe.parse(w),{contentHash:o,...i}=d;if(D(i)!==o||d.teamId!==this.options.teamId||d.executionId!==s||d.receiptId!==a||t.manifestHash&&d.manifestHash!==t.manifestHash||d.events.length>d.eventCount)throw new Error("Case inspection differs from its requested workspace, execution or retained content.");return d}};import{readFile as ye,stat as de}from"node:fs/promises";var R=e.string().trim().min(1).max(240),fe=e.object({location:e.literal("local").default("local"),jobId:R,modelRunId:R,modelId:R,modelVersionId:R.nullable(),adapterArtifactLineageId:R.nullable(),owner:e.object({teamId:R,actorId:R}).strict(),taskset:_,state:e.enum(["prepared","running","succeeded","failed","cancelled"]),executionState:e.enum(["queued","starting","running","cancelling","cancelled","succeeded","failed","reconciling"]),updatedAt:e.iso.datetime()}).strict(),he=e.object({location:e.literal("cloud"),jobId:R,owner:e.object({teamId:R,actorId:R}).strict(),apiOrigin:e.url(),job:G,updatedAt:e.iso.datetime()}).strict().refine(r=>r.jobId===r.job.id&&r.owner.teamId===r.job.teamId&&r.updatedAt===r.job.updatedAt,"Hosted training attachment must match its canonical job."),ie=e.union([fe,he]);var u=e.string().trim().min(1).max(240),I=e.string().regex(/^[a-f0-9]{64}$/),ge=e.object({kind:e.enum(["structure","graders"]),revision:e.number().int().positive(),workspaceHash:I,status:e.enum(["passed","failed","unavailable"]),checkedAt:e.iso.datetime(),checked:e.number().int().nonnegative(),total:e.number().int().nonnegative(),issues:e.array(e.object({code:e.string(),message:e.string(),taskId:u.optional(),graderId:u.optional()})).max(1e4),scopes:e.array(e.object({graderId:u,checked:e.number().int().nonnegative(),total:e.number().int().nonnegative(),status:e.enum(["passed","failed","unavailable"])}).strict()).max(1e3).optional()}).strict(),we=e.object({apiOrigin:e.url(),actorId:u,teamId:u,datasetId:u,remoteRevision:e.number().int().nonnegative(),acknowledgedHash:I.nullable(),remoteHash:I.nullable(),pendingLocalHash:I.nullable(),paused:e.boolean(),status:e.enum(["pending","syncing","synced","retry","conflict","paused"]),error:e.string().nullable(),operationId:u.nullable(),pendingWorkspace:N.nullable(),beginVersionOperationId:u.nullable().optional(),publicationIntent:e.object({operationId:u,expectedRevision:e.number().int().positive(),workspaceHash:I,packageHash:I,localHash:I}).strict().nullable().optional()}).strict(),Je=e.object({schemaVersion:e.literal("openpond.localDataset.v1"),ownerId:u,projectId:u.nullable(),workspace:N,checks:e.array(ge).max(2),packageHash:I.nullable(),sync:we.nullable()}).strict(),E=e.object({kind:e.enum(["dataset","grader","experiment"]),id:u,revision:e.number().int().positive(),name:e.string().max(500),state:e.string().max(100),datasetId:u.optional(),datasetRevision:e.number().int().positive().optional(),taskCount:e.number().int().nonnegative().optional(),graderCount:e.number().int().nonnegative().optional(),checkState:e.string().optional(),syncState:e.string().optional(),model:e.string().optional(),evaluationHash:I.optional(),graderId:u.optional(),graderType:e.string().optional(),description:e.string().optional(),location:e.enum(["local","cloud"]).optional(),scoreLabel:e.string().optional(),owner:e.object({teamId:u,actorId:u}).strict().optional(),contentHash:I.optional(),profileRef:Z.optional(),score:e.number().nullable().optional(),costUsd:e.number().nonnegative().nullable().optional(),evaluatedCount:e.number().int().nonnegative().optional(),failedCount:e.number().int().nonnegative().optional(),qualityFailureCount:e.number().int().nonnegative().optional(),executionFailureCount:e.number().int().nonnegative().optional(),ungradedCount:e.number().int().nonnegative().optional(),rows:e.array(e.object({id:u,label:e.string(),detail:e.string(),score:e.number().nullable().optional()})).max(10)}).strict(),oe=e.object({id:u,ordinal:e.number().int().positive(),name:e.string().trim().min(1).max(500),draft:te.optional(),storedDraft:ae.optional(),draftRevision:e.number().int().positive().optional(),creationHash:I.optional(),dataset:E.nullable(),evaluationModel:e.string().min(1).max(500).optional(),executionLocation:e.enum(["local","cloud"]).optional(),graders:e.array(E),selectedGraderId:u.nullable(),runs:e.array(E),selectedRunId:u.nullable(),training:e.array(ie).optional(),selectedTrainingKey:e.string().max(4e3).nullable().optional(),selectedTrainingJobId:u.nullable().optional(),results:e.array(ee).max(16).optional(),turnIds:e.array(u),operationId:u,createdAt:e.iso.datetime(),updatedAt:e.iso.datetime()}).strict(),be=oe.extend({ordinal:e.null()}),Ve=e.object({datasetFocus:be.optional(),scopes:e.array(oe),activeScopeId:u.nullable(),selectionVersion:e.number().int().nonnegative(),selectedAt:e.iso.datetime().nullable(),selectionOperations:e.record(e.string(),e.object({hash:I,version:e.number().int().nonnegative(),visualPublicationId:e.string().optional(),resource:E.optional()}).strict()).default({})}).strict();var Be=e.object({action:e.enum(["schema","list","read","create","save","file","validate","check_graders","check_sources","package","import","inspect_source","import_source","upload","sync","pause_sync","disconnect_sync","related_chats","list_graders","read_grader","save_grader","test_grader","publish"]),id:u.optional(),operationId:u.optional(),expectedRevision:e.number().int().nonnegative().optional(),payload:e.record(e.string(),e.unknown()).default({})}).strict(),Ke=e.object({contentHash:I,scope:e.string(),graders:e.unknown(),cases:e.array(e.object({id:u,taskId:u,seed:e.string(),status:e.string(),output:e.string().nullable(),error:e.string().nullable(),score:e.number().nullable()}).strict()).max(1e4)}).strict();function se(r){let s=r&&typeof r=="object"?r:{},a=[s.summary,...Array.isArray(s.summaries)?s.summaries:[]].flatMap(t=>{let l=E.safeParse(t);return l.success?[l.data]:[]});if(a.length){for(let t of a)console.log(`${t.name} \xB7 ${t.state}`),console.log(`${t.id} \xB7 ${t.location??"local"} \xB7 Dataset ${t.datasetId} version ${t.datasetRevision} \xB7 ${t.model}`),console.log(`${t.scoreLabel??"Mean task score"}: ${t.score==null?"Unavailable":(t.score*100).toFixed(1)+"%"} \xB7 Graded: ${t.evaluatedCount??0}/${t.taskCount??0} \xB7 Cost: ${t.costUsd==null?"Unavailable":"$"+t.costUsd.toFixed(4)}`),console.log(`Quality failures: ${t.qualityFailureCount??0} \xB7 Execution failures: ${t.executionFailureCount??0} \xB7 Ungraded: ${t.ungradedCount??t.taskCount??0}`),t.rows.length&&console.table(t.rows.map(l=>({Task:l.label,Outcome:l.detail,Score:l.score==null?"Unavailable":(l.score*100).toFixed(1)+"%"}))),console.log(`Results: openpond experiments result ${t.id} --local`);Array.isArray(s.items)&&console.table(s.items.flatMap(t=>{let l=v.safeParse(t);return l.success?[{ID:l.data.id,Name:l.data.configuration.request.name,Model:l.data.model.modelId,Status:l.data.status}]:[]}));for(let t of Array.isArray(s.errors)?s.errors:[])console.log(`Admission failed: ${t.modelId} \xB7 ${t.message}`);return}if(Array.isArray(s.models)){console.table(s.models);return}if(Array.isArray(s.items)){console.table(s.items.flatMap(t=>{let l=v.safeParse(t);return l.success?[{ID:l.data.id,Name:l.data.configuration.request.name,Model:l.data.model.modelId,Status:l.data.status}]:[]}));return}console.log(JSON.stringify(r,null,2))}g(se,"printLocalExperimentResult");import{readFile as xe,stat as Ie}from"node:fs/promises";var q={"profile-catalog":"/v1/profile/evaluations","prepare-profile":"/v1/profile/evaluations/prepare","run-profile":"/v1/profile/evaluations/run","inspect-profile":"/v1/profile/evaluations/discover"};async function ce(r,s){let a=s[0];if(!a||!Object.hasOwn(q,a))return!1;if(s.length!==1||r.team||r.revision||r.contentHash)throw new Error("Profile experiments accept one action and exact selection in --input-file; ownership is resolved by the running installation.");let t=new URL(n(r,"serverUrl")||process.env.OPENPOND_LOCAL_API_URL||A);if(t.protocol!=="http:"||!["localhost","127.0.0.1"].includes(t.hostname)||t.username||t.password||t.search||t.hash||t.pathname!=="/")throw new Error("Local Profile experiments require an HTTP loopback server origin.");let l=n(r,"inputFile"),p;if(l){let c=await Ie(l);if(!c.isFile()||c.size>1048576)throw new Error("Profile selection input must be a file within one MiB.");let b=JSON.parse(await xe(l,"utf8"));if(!b||typeof b!="object"||Array.isArray(b))throw new Error("Profile selection input must be an object.");p=b}else if(a!=="profile-catalog")throw new Error(`${a} requires --input-file with the exact Profile or run selection.`);let w=a==="profile-catalog"&&p?q["inspect-profile"]:q[a],o=await(await k(t.origin,{maximumResponseBytes:32*1024*1024,timeoutMs:a==="run-profile"||a==="prepare-profile"?12e5:6e4}))(new URL(w,t),{method:p?"POST":"GET",...p?{headers:{"content-type":"application/json"},body:JSON.stringify({...p,...["prepare-profile","run-profile","inspect-profile"].includes(a)&&process.env.OPENPOND_CHAT_INVOCATION?{invocationToken:process.env.OPENPOND_CHAT_INVOCATION}:{}})}:{}}),i=await o.json();if(!o.ok){let c=i&&typeof i=="object"&&"error"in i?i.error:void 0;throw new Error(typeof c=="string"?c:`Local Profile experiment request failed (${o.status}).`)}return console.log(JSON.stringify(i,null,2)),!0}g(ce,"runLocalProfileExperimentCommand");import{readFile as Se,stat as Re}from"node:fs/promises";async function le(r,s,a,t,l){let[p,w]=s;if(!["record-modification","modification","modifications"].includes(p??""))return!1;if(!l)throw new Error("Local observation operations require --team <workspace-id>.");let d=K({baseUrl:a,fetch:t}),o;if(p==="record-modification"&&s.length===1){let i=n(r,"inputFile"),c=i?await Re(i):null;if(!i||!c?.isFile()||c.size>V)throw new Error("Provide --input-file <command.json> containing a recording request of at most 8 MiB.");let b=B.parse(JSON.parse(await Se(i,"utf8")));if(b.teamId!==l)throw new Error("The recording request belongs to another workspace.");o=await d.recordModificationObservation(b)}else if(p==="modification"&&w&&s.length===2)o=await d.modificationRecording(w,{teamId:l});else if(p==="modifications"&&s.length===1){let i=n(r,"project"),c=n(r,"search"),b=n(r,"cursor"),m=n(r,"limit");o=await d.modificationRecordings({teamId:l,...i?{projectId:i}:{},...c?{search:c}:{},...b?{cursor:b}:{},...m?{limit:Number(m)}:{}})}else throw new Error("Use experiments record-modification --input-file <command.json>, modification <id>, or modifications, with --local --team <id>.");return console.log(JSON.stringify(o,null,2)),!0}g(le,"runLocalModificationRecordingCommand");async function ue(r,s){if(await ce(r,s))return;let[a,t,l]=s,p=n(r,"team"),w=n(r,"receiptId");if(a==="case"&&(!t||s.length!==2||!w))throw new Error("Usage: experiments case <run-id> --local --receipt-id <retained-receipt-id> [--after-sequence <n>] [--limit <1..500>] --json. A task id is not a receipt id; find receiptId in experiments result <run-id> --local --json (independent runs: evidence.cases[].receiptId).");if(r.revision!==void 0)throw new Error("A local Experiment is one immutable run; read it by id rather than a saved configuration revision.");if(a!=="read"&&r.contentHash!==void 0)throw new Error("An exact configuration hash requires the local read action.");if(!a||s.length>(a==="compare"?3:2))throw new Error("Local Experiments require an action; use --server-url for an existing local server.");let d=n(r,"serverUrl")||process.env.OPENPOND_LOCAL_API_URL||A,o=new URL(d);if(o.protocol!=="http:"||!["localhost","127.0.0.1"].includes(o.hostname)||o.username||o.password||o.search||o.hash||o.pathname!=="/")throw new Error("Local Experiments require an HTTP loopback server origin.");let i=await k(o.origin,{timeoutMs:["prepare-harness","run"].includes(a)?12e5:6e4});if(await le(r,s,o.origin,i,p))return;async function c(h,x){let f=await i(new URL(p?"/v1/local-experiments":"/v1/chat-experiments",o),{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({...p?{teamId:p}:{},...process.env.OPENPOND_CHAT_INVOCATION?{invocationToken:process.env.OPENPOND_CHAT_INVOCATION}:{},action:h,payload:x})}),S=await f.json();if(!f.ok)throw new Error(typeof S.error=="string"?S.error:`Local Experiment request failed (${f.status}).`);return S}g(c,"command");async function b(){let h=n(r,"inputFile");if(!h||!(await de(h)).isFile()||(await de(h)).size>67108864)throw new Error("Provide a bounded --input-file with exact local configuration and retained package bytes.");return JSON.parse(await ye(h,"utf8"))}g(b,"input");let m;if(!p){if(a==="models")m=await c("models",{});else if(a==="run"||a==="run-cloud")m=await c(a.replaceAll("-","_"),await b());else if(a==="list"){let h=n(r,"afterId"),x=n(r,"limit");m=await c("list",{...h?{afterId:h}:{},...x?{limit:Number(x)}:{}})}else if(a==="compare"&&t&&l)m=await c("compare",{baselineId:t,candidateId:l});else if(a==="case"&&t&&w){let h=n(r,"afterSequence"),x=n(r,"limit");m=await c("case",{id:t,receiptId:w,...h?{afterSequence:Number(h)}:{},...x?{limit:Number(x)}:{}})}else if(t&&["read","status","cancel","result"].includes(a))m=await c(a,{id:t});else throw new Error("Independent local Experiments support models/run/list/read/status/cancel/result/compare/case. Workspace operations require --team.");T(r.json)?console.log(JSON.stringify(m,null,2)):se(m);return}if(a==="prepare-harness"){if(t)throw new Error("Local Profile preparation accepts --input-file rather than an id.");m=await c("prepareHarness",await b())}else if(a==="run"){if(t)throw new Error("Local Run accepts reviewed configuration through --input-file rather than an id.");let h=await b();m=await c(h.package?"run":"runFromRelease",h)}else if(a==="list"){if(t)throw new Error("Local List does not accept an id.");let h=n(r,"status"),x=n(r,"limit"),f=n(r,"project"),S=n(r,"afterId"),C=n(r,"datasetHash"),P=n(r,"search");m=await c("list",{...h?{status:h}:{},...f?{projectId:f}:{},...C?{datasetHash:C}:{},...P?{search:P}:{},...S?{afterId:S}:{},...x?{limit:Number(x)}:{}})}else{if(!t)throw new Error(`${a} requires a local Experiment or scoring pass id.`);let h=n(r,"afterId"),x=n(r,"limit");if(a==="duplicate"){let f=n(r,"operationId");if(!f)throw new Error("Duplicate requires --operation-id for safe replay.");let S=v.parse(await c("read",{id:t})),C=J.parse({...S.configuration,operationId:f,request:{...S.configuration.request,operationId:f},sourceExperimentId:S.id});m=await c("runFromRelease",{configuration:C,expectedPackageHash:S.packageHash})}else if(a==="passes")m=await c("passes",{executionId:t,...h?{afterId:h}:{},...x?{limit:Number(x)}:{}});else if(a==="case"){let f=n(r,"afterSequence");m=await c("case",{id:t,receiptId:w,...f?{afterSequence:Number(f)}:{},...x?{limit:Number(x)}:{}})}else if(a==="score"){let f=await b();if(f.execution?.id!==t)throw new Error("Local scoring input belongs to a different retained execution.");m=await c("score",f)}else if(a==="compare"){if(!l)throw new Error("Local Compare requires baseline and candidate execution ids.");let f=re.parse(await c("compare",{baselineId:t,candidateId:l}));m={...f,comparison:M(f.baseline,f.candidate)}}else if(a==="read"){let f=n(r,"contentHash");m=await c("read",{id:t,...f?{configurationHash:f}:{}})}else if(["status","cancel","result","pass"].includes(a))m=await c(a,{id:t});else if(a==="cancel-pass")m=await c("cancel",{id:t});else if(a==="pass-result")m=await c("result",{id:t});else throw new Error(`Local Experiment action is unavailable: ${a}`)}console.log(JSON.stringify(m,null,2))}g(ue,"runLocalExperimentsCommand");async function At(r,s){if(s[0]==="signal-plan"||s[0]==="signal-report")return(await import("./experiments-signal-IRBHGGW5.js")).runExperimentsSignalCommand(r,s);if(r.local===!0||r.local==="true")return ue(r,s);if(r.revision!==void 0||r.contentHash!==void 0)throw new Error("Experiments retain their immutable configuration on the run; definition revisions are not selectable.");let[a,t]=s,l=n(r,"team");if(!l||!a||s.length>(a==="compare"?3:2))throw new Error("usage: experiments <defaults|create-comparison|comparison-budget|prepare-harness|run|read|list|status|diagnostics|cancel|duplicate|score|passes|pass|cancel-pass|pass-result|result|compare|case> [id] [candidate-id] --team <id> [--input-file <path>] [--operation-id <id>]");let p=await W(),w={teamId:l,fetch:H,apiKey:await Q(p,$(p)),baseUrl:F(r)??p.apiBaseUrl??U},d=new Y(w),o;if(a==="defaults"){if(t)throw new Error("Defaults does not accept an id.");o=await d.defaults()}else if(a==="create-comparison"){let i=n(r,"inputFile");if(!i||t||(await j(i)).size>1048576)throw new Error("Create comparison requires a bounded input file with an id, fresh operationIds and optional maximumSpendUsd.");o=await d.createComparisonBudget(JSON.parse(await O(i,"utf8")))}else if(a==="comparison-budget"){if(!t)throw new Error("Comparison budget requires an id.");o=await d.comparisonBudget(t)}else if(a==="prepare-harness"){let i=n(r,"inputFile");if(!i||t||(await j(i)).size>1048576)throw new Error("Harness preparation requires a bounded --input-file with its released target, model and optional ceiling.");o=await d.prepareHarness(JSON.parse(await O(i,"utf8")))}else if(a==="run"){let i=n(r,"inputFile");if(!i||t)throw new Error("Run requires --input-file with the reviewed configuration and stable operationId.");if((await j(i)).size>1048576)throw new Error("Experiment input exceeds one MiB.");o=await d.run(JSON.parse(await O(i,"utf8")))}else if(a==="list"){if(t)throw new Error("List does not accept an Experiment id.");let i=n(r,"limit");o=await d.list(z.parse({projectId:n(r,"project")||void 0,datasetHash:n(r,"datasetHash")||void 0,search:n(r,"search")||void 0,status:n(r,"status")||void 0,afterId:n(r,"afterId")||void 0,...i?{limit:Number(i)}:{}}))}else{if(!t)throw new Error(`${a} requires an id.`);if(a==="read")o=await d.get(t);else if(a==="status")o=await d.get(t);else if(a==="diagnostics"){let i=await d.get(t),c=n(r,"afterSequence");o=await d.diagnostics(t,{manifestHash:i.manifest.contentHash,...c?{afterSequence:Number(c)}:{},afterCallId:n(r,"afterCallId")||void 0})}else if(a==="cancel")o=await d.cancel(t);else if(a==="duplicate"){let i=n(r,"operationId");if(!i)throw new Error("Duplicate requires a stable --operation-id for the new Experiment.");o=await d.duplicate(t,i)}else if(a==="score"){let i=n(r,"inputFile");if(!i||(await j(i)).size>1048576)throw new Error("Score requires --input-file containing an exact execution reference, grader releases and explicit ceiling, within one MiB.");let c=X.parse(JSON.parse(await O(i,"utf8")));if(c.execution.id!==t)throw new Error("Scoring input belongs to a different execution.");o=await d.score(c)}else if(a==="passes")o=await d.scoringPasses(t,{afterId:n(r,"afterId")||void 0});else if(a==="pass")o=await d.scoringPass(t);else if(a==="cancel-pass")o=await d.cancelScoringPass(t);else if(a==="pass-result")o=await d.scoringResult(t);else if(a==="result")o=await d.result(t);else if(a==="case"){let i=n(r,"receiptId");if(!i)throw new Error("Case inspection requires --receipt-id from the retained Experiment.");let c=await d.get(t);o=await new L(w).case(t,i,{manifestHash:c.manifest.contentHash,afterId:n(r,"afterId")||void 0})}else if(a==="compare"){if(!s[2])throw new Error("Compare requires a baseline and candidate execution id.");o=await d.compare(t,s[2])}else throw new Error(`Unknown Experiment action: ${a}`)}console.log(JSON.stringify(o,null,2))}g(At,"runExperimentsCommand");export{At as runExperimentsCommand};
2
+ import{a as Z,b as v,d as re}from"./chunk-GMA365GI.js";import"./chunk-HYUTDZ3N.js";import{c as Q}from"./chunk-RFQD6B44.js";import{a as A,d as k}from"./chunk-6IKIGVJF.js";import{Ol as V,Pl as B,sm as K}from"./chunk-5AV2EWFX.js";import"./chunk-2EAZB2MW.js";import"./chunk-ZMRP2A7K.js";import"./chunk-P7RLDDPN.js";import"./chunk-OFC5N6R3.js";import"./chunk-XRKFTPHD.js";import{Bd as ee,df as te,gf as ae}from"./chunk-2IECLXB2.js";import"./chunk-W45RKGM6.js";import"./chunk-73COPJ32.js";import"./chunk-UGDBMRCT.js";import"./chunk-2PVW2XFF.js";import"./chunk-64EDQ7UV.js";import{J as G}from"./chunk-DLOJG7LP.js";import"./chunk-ULTV6INR.js";import"./chunk-XKDOPNQ5.js";import"./chunk-JXLDEYRW.js";import"./chunk-GR4MJJCE.js";import{q as N}from"./chunk-GG6PM7TB.js";import"./chunk-2GEZ3ZY7.js";import"./chunk-BYVE4TMU.js";import"./chunk-LVXL7T5O.js";import"./chunk-HIQPGYVH.js";import"./chunk-3VT2PPKW.js";import"./chunk-5ZBDHIIE.js";import"./chunk-MTP3B2SU.js";import"./chunk-KHDCMVEJ.js";import{n as X,o as Y}from"./chunk-K3WM4NEC.js";import"./chunk-BLNEHU62.js";import"./chunk-BT5YNE5U.js";import{d as W}from"./chunk-RPM4FDRX.js";import"./chunk-DFZTRMTL.js";import"./chunk-2QHB5P2K.js";import"./chunk-BZS2PA4O.js";import"./chunk-VSQPWLAG.js";import"./chunk-6LAGMWJE.js";import{m as z,q as J}from"./chunk-IV2HEX3I.js";import"./chunk-C7NQPICU.js";import"./chunk-J256AEEE.js";import"./chunk-J7X72QUY.js";import"./chunk-UN2LKLGV.js";import"./chunk-HLJJAOI2.js";import"./chunk-AMC4Z7G4.js";import"./chunk-LK77GI6M.js";import"./chunk-HVM2GUM3.js";import"./chunk-I6VMRQF4.js";import"./chunk-D6L6UNUQ.js";import"./chunk-AJXWJLZA.js";import"./chunk-OKKNDQJF.js";import"./chunk-ZEOYNUHL.js";import{Fb as M}from"./chunk-ZY32SZ2P.js";import"./chunk-OTDDXEQ6.js";import"./chunk-ECOH24MC.js";import{a as H}from"./chunk-JF7WWLNW.js";import"./chunk-RRWL5BHZ.js";import{c as F,f as $}from"./chunk-BSHAIAXY.js";import"./chunk-XWPC3AN4.js";import{c as n,f as T}from"./chunk-3M53YXEI.js";import{b as U}from"./chunk-GLUWATL5.js";import"./chunk-MZKCW6CB.js";import"./chunk-SV7ZBEK2.js";import"./chunk-2MEOUS24.js";import"./chunk-HNQPEOJD.js";import{h as _,n as D}from"./chunk-RCT3O3HQ.js";import"./chunk-UGOK7VTC.js";import"./chunk-NXN7GJOH.js";import"./chunk-TBODQT4W.js";import"./chunk-5HPZGLOL.js";import"./chunk-ZFJWA4JK.js";import{A as e}from"./chunk-X2J2P5ZT.js";import{a as g}from"./chunk-FTQLQJQV.js";import{readFile as O,stat as j}from"node:fs/promises";var y=e.string().trim().min(1).max(500),ne=e.string().regex(/^[a-f0-9]{64}$/),me=e.object({schemaVersion:e.literal("openpond.experimentCaseInspection.v1"),teamId:y,executionId:y,manifestHash:ne,receiptId:y,taskId:y,seed:e.string().min(1),input:e.record(e.string(),e.unknown()).nullable(),output:e.unknown().nullable(),error:e.string().nullable(),events:e.array(e.record(e.string(),e.unknown())).max(25),nextEventCursor:y.nullable(),eventCount:e.number().int().nonnegative()}).strict(),pe=me.extend({contentHash:ne}).strict(),L=class{constructor(s){this.options=s;let a=new URL(s.baseUrl);if(!["http:","https:"].includes(a.protocol)||a.username||a.password||a.search||a.hash||!s.apiKey.trim()||!s.teamId.trim())throw new Error("A clean API origin and workspace credentials are required.");this.baseUrl=a.toString().replace(/\/+$/,"")}options;static{g(this,"OpenPondExperimentInspectionClient")}baseUrl;async case(s,a,t={}){let l=new URLSearchParams(t.afterId?{afterId:y.parse(t.afterId)}:{}),p=await(this.options.fetch??fetch)(`${this.baseUrl}/v1/experiments/${encodeURIComponent(y.parse(s))}/cases/${encodeURIComponent(y.parse(a))}?${l}`,{signal:t.signal,redirect:"error",headers:{Authorization:`Bearer ${this.options.apiKey}`,"X-OpenPond-Team-Id":this.options.teamId,Accept:"application/json"}}),w=await p.json();if(!p.ok)throw new Error(e.object({message:e.string()}).parse(w).message);let d=pe.parse(w),{contentHash:o,...i}=d;if(D(i)!==o||d.teamId!==this.options.teamId||d.executionId!==s||d.receiptId!==a||t.manifestHash&&d.manifestHash!==t.manifestHash||d.events.length>d.eventCount)throw new Error("Case inspection differs from its requested workspace, execution or retained content.");return d}};import{readFile as ye,stat as de}from"node:fs/promises";var R=e.string().trim().min(1).max(240),fe=e.object({location:e.literal("local").default("local"),jobId:R,modelRunId:R,modelId:R,modelVersionId:R.nullable(),adapterArtifactLineageId:R.nullable(),owner:e.object({teamId:R,actorId:R}).strict(),taskset:_,state:e.enum(["prepared","running","succeeded","failed","cancelled"]),executionState:e.enum(["queued","starting","running","cancelling","cancelled","succeeded","failed","reconciling"]),updatedAt:e.iso.datetime()}).strict(),he=e.object({location:e.literal("cloud"),jobId:R,owner:e.object({teamId:R,actorId:R}).strict(),apiOrigin:e.url(),job:G,updatedAt:e.iso.datetime()}).strict().refine(r=>r.jobId===r.job.id&&r.owner.teamId===r.job.teamId&&r.updatedAt===r.job.updatedAt,"Hosted training attachment must match its canonical job."),ie=e.union([fe,he]);var u=e.string().trim().min(1).max(240),I=e.string().regex(/^[a-f0-9]{64}$/),ge=e.object({kind:e.enum(["structure","graders"]),revision:e.number().int().positive(),workspaceHash:I,status:e.enum(["passed","failed","unavailable"]),checkedAt:e.iso.datetime(),checked:e.number().int().nonnegative(),total:e.number().int().nonnegative(),issues:e.array(e.object({code:e.string(),message:e.string(),taskId:u.optional(),graderId:u.optional()})).max(1e4),scopes:e.array(e.object({graderId:u,checked:e.number().int().nonnegative(),total:e.number().int().nonnegative(),status:e.enum(["passed","failed","unavailable"])}).strict()).max(1e3).optional()}).strict(),we=e.object({apiOrigin:e.url(),actorId:u,teamId:u,datasetId:u,remoteRevision:e.number().int().nonnegative(),acknowledgedHash:I.nullable(),remoteHash:I.nullable(),pendingLocalHash:I.nullable(),paused:e.boolean(),status:e.enum(["pending","syncing","synced","retry","conflict","paused"]),error:e.string().nullable(),operationId:u.nullable(),pendingWorkspace:N.nullable(),beginVersionOperationId:u.nullable().optional(),publicationIntent:e.object({operationId:u,expectedRevision:e.number().int().positive(),workspaceHash:I,packageHash:I,localHash:I}).strict().nullable().optional()}).strict(),Je=e.object({schemaVersion:e.literal("openpond.localDataset.v1"),ownerId:u,projectId:u.nullable(),workspace:N,checks:e.array(ge).max(2),packageHash:I.nullable(),sync:we.nullable()}).strict(),E=e.object({kind:e.enum(["dataset","grader","experiment"]),id:u,revision:e.number().int().positive(),name:e.string().max(500),state:e.string().max(100),datasetId:u.optional(),datasetRevision:e.number().int().positive().optional(),taskCount:e.number().int().nonnegative().optional(),graderCount:e.number().int().nonnegative().optional(),checkState:e.string().optional(),syncState:e.string().optional(),model:e.string().optional(),evaluationHash:I.optional(),graderId:u.optional(),graderType:e.string().optional(),description:e.string().optional(),location:e.enum(["local","cloud"]).optional(),scoreLabel:e.string().optional(),owner:e.object({teamId:u,actorId:u}).strict().optional(),contentHash:I.optional(),profileRef:Z.optional(),score:e.number().nullable().optional(),costUsd:e.number().nonnegative().nullable().optional(),evaluatedCount:e.number().int().nonnegative().optional(),failedCount:e.number().int().nonnegative().optional(),qualityFailureCount:e.number().int().nonnegative().optional(),executionFailureCount:e.number().int().nonnegative().optional(),ungradedCount:e.number().int().nonnegative().optional(),rows:e.array(e.object({id:u,label:e.string(),detail:e.string(),score:e.number().nullable().optional()})).max(10)}).strict(),oe=e.object({id:u,ordinal:e.number().int().positive(),name:e.string().trim().min(1).max(500),draft:te.optional(),storedDraft:ae.optional(),draftRevision:e.number().int().positive().optional(),creationHash:I.optional(),dataset:E.nullable(),evaluationModel:e.string().min(1).max(500).optional(),executionLocation:e.enum(["local","cloud"]).optional(),graders:e.array(E),selectedGraderId:u.nullable(),runs:e.array(E),selectedRunId:u.nullable(),training:e.array(ie).optional(),selectedTrainingKey:e.string().max(4e3).nullable().optional(),selectedTrainingJobId:u.nullable().optional(),results:e.array(ee).max(16).optional(),turnIds:e.array(u),operationId:u,createdAt:e.iso.datetime(),updatedAt:e.iso.datetime()}).strict(),be=oe.extend({ordinal:e.null()}),Ve=e.object({datasetFocus:be.optional(),scopes:e.array(oe),activeScopeId:u.nullable(),selectionVersion:e.number().int().nonnegative(),selectedAt:e.iso.datetime().nullable(),selectionOperations:e.record(e.string(),e.object({hash:I,version:e.number().int().nonnegative(),visualPublicationId:e.string().optional(),resource:E.optional()}).strict()).default({})}).strict();var Be=e.object({action:e.enum(["schema","list","read","create","save","file","validate","check_graders","check_sources","package","import","inspect_source","import_source","upload","sync","pause_sync","disconnect_sync","related_chats","list_graders","read_grader","save_grader","test_grader","publish"]),id:u.optional(),operationId:u.optional(),expectedRevision:e.number().int().nonnegative().optional(),payload:e.record(e.string(),e.unknown()).default({})}).strict(),Ke=e.object({contentHash:I,scope:e.string(),graders:e.unknown(),cases:e.array(e.object({id:u,taskId:u,seed:e.string(),status:e.string(),output:e.string().nullable(),error:e.string().nullable(),score:e.number().nullable()}).strict()).max(1e4)}).strict();function se(r){let s=r&&typeof r=="object"?r:{},a=[s.summary,...Array.isArray(s.summaries)?s.summaries:[]].flatMap(t=>{let l=E.safeParse(t);return l.success?[l.data]:[]});if(a.length){for(let t of a)console.log(`${t.name} \xB7 ${t.state}`),console.log(`${t.id} \xB7 ${t.location??"local"} \xB7 Dataset ${t.datasetId} version ${t.datasetRevision} \xB7 ${t.model}`),console.log(`${t.scoreLabel??"Mean task score"}: ${t.score==null?"Unavailable":(t.score*100).toFixed(1)+"%"} \xB7 Graded: ${t.evaluatedCount??0}/${t.taskCount??0} \xB7 Cost: ${t.costUsd==null?"Unavailable":"$"+t.costUsd.toFixed(4)}`),console.log(`Quality failures: ${t.qualityFailureCount??0} \xB7 Execution failures: ${t.executionFailureCount??0} \xB7 Ungraded: ${t.ungradedCount??t.taskCount??0}`),t.rows.length&&console.table(t.rows.map(l=>({Task:l.label,Outcome:l.detail,Score:l.score==null?"Unavailable":(l.score*100).toFixed(1)+"%"}))),console.log(`Results: openpond experiments result ${t.id} --local`);Array.isArray(s.items)&&console.table(s.items.flatMap(t=>{let l=v.safeParse(t);return l.success?[{ID:l.data.id,Name:l.data.configuration.request.name,Model:l.data.model.modelId,Status:l.data.status}]:[]}));for(let t of Array.isArray(s.errors)?s.errors:[])console.log(`Admission failed: ${t.modelId} \xB7 ${t.message}`);return}if(Array.isArray(s.models)){console.table(s.models);return}if(Array.isArray(s.items)){console.table(s.items.flatMap(t=>{let l=v.safeParse(t);return l.success?[{ID:l.data.id,Name:l.data.configuration.request.name,Model:l.data.model.modelId,Status:l.data.status}]:[]}));return}console.log(JSON.stringify(r,null,2))}g(se,"printLocalExperimentResult");import{readFile as xe,stat as Ie}from"node:fs/promises";var q={"profile-catalog":"/v1/profile/evaluations","prepare-profile":"/v1/profile/evaluations/prepare","run-profile":"/v1/profile/evaluations/run","inspect-profile":"/v1/profile/evaluations/discover"};async function ce(r,s){let a=s[0];if(!a||!Object.hasOwn(q,a))return!1;if(s.length!==1||r.team||r.revision||r.contentHash)throw new Error("Profile experiments accept one action and exact selection in --input-file; ownership is resolved by the running installation.");let t=new URL(n(r,"serverUrl")||process.env.OPENPOND_LOCAL_API_URL||A);if(t.protocol!=="http:"||!["localhost","127.0.0.1"].includes(t.hostname)||t.username||t.password||t.search||t.hash||t.pathname!=="/")throw new Error("Local Profile experiments require an HTTP loopback server origin.");let l=n(r,"inputFile"),p;if(l){let c=await Ie(l);if(!c.isFile()||c.size>1048576)throw new Error("Profile selection input must be a file within one MiB.");let b=JSON.parse(await xe(l,"utf8"));if(!b||typeof b!="object"||Array.isArray(b))throw new Error("Profile selection input must be an object.");p=b}else if(a!=="profile-catalog")throw new Error(`${a} requires --input-file with the exact Profile or run selection.`);let w=a==="profile-catalog"&&p?q["inspect-profile"]:q[a],o=await(await k(t.origin,{maximumResponseBytes:32*1024*1024,timeoutMs:a==="run-profile"||a==="prepare-profile"?12e5:6e4}))(new URL(w,t),{method:p?"POST":"GET",...p?{headers:{"content-type":"application/json"},body:JSON.stringify({...p,...["prepare-profile","run-profile","inspect-profile"].includes(a)&&process.env.OPENPOND_CHAT_INVOCATION?{invocationToken:process.env.OPENPOND_CHAT_INVOCATION}:{}})}:{}}),i=await o.json();if(!o.ok){let c=i&&typeof i=="object"&&"error"in i?i.error:void 0;throw new Error(typeof c=="string"?c:`Local Profile experiment request failed (${o.status}).`)}return console.log(JSON.stringify(i,null,2)),!0}g(ce,"runLocalProfileExperimentCommand");import{readFile as Se,stat as Re}from"node:fs/promises";async function le(r,s,a,t,l){let[p,w]=s;if(!["record-modification","modification","modifications"].includes(p??""))return!1;if(!l)throw new Error("Local observation operations require --team <workspace-id>.");let d=K({baseUrl:a,fetch:t}),o;if(p==="record-modification"&&s.length===1){let i=n(r,"inputFile"),c=i?await Re(i):null;if(!i||!c?.isFile()||c.size>V)throw new Error("Provide --input-file <command.json> containing a recording request of at most 8 MiB.");let b=B.parse(JSON.parse(await Se(i,"utf8")));if(b.teamId!==l)throw new Error("The recording request belongs to another workspace.");o=await d.recordModificationObservation(b)}else if(p==="modification"&&w&&s.length===2)o=await d.modificationRecording(w,{teamId:l});else if(p==="modifications"&&s.length===1){let i=n(r,"project"),c=n(r,"search"),b=n(r,"cursor"),m=n(r,"limit");o=await d.modificationRecordings({teamId:l,...i?{projectId:i}:{},...c?{search:c}:{},...b?{cursor:b}:{},...m?{limit:Number(m)}:{}})}else throw new Error("Use experiments record-modification --input-file <command.json>, modification <id>, or modifications, with --local --team <id>.");return console.log(JSON.stringify(o,null,2)),!0}g(le,"runLocalModificationRecordingCommand");async function ue(r,s){if(await ce(r,s))return;let[a,t,l]=s,p=n(r,"team"),w=n(r,"receiptId");if(a==="case"&&(!t||s.length!==2||!w))throw new Error("Usage: experiments case <run-id> --local --receipt-id <retained-receipt-id> [--after-sequence <n>] [--limit <1..500>] --json. A task id is not a receipt id; find receiptId in experiments result <run-id> --local --json (independent runs: evidence.cases[].receiptId).");if(r.revision!==void 0)throw new Error("A local Experiment is one immutable run; read it by id rather than a saved configuration revision.");if(a!=="read"&&r.contentHash!==void 0)throw new Error("An exact configuration hash requires the local read action.");if(!a||s.length>(a==="compare"?3:2))throw new Error("Local Experiments require an action; use --server-url for an existing local server.");let d=n(r,"serverUrl")||process.env.OPENPOND_LOCAL_API_URL||A,o=new URL(d);if(o.protocol!=="http:"||!["localhost","127.0.0.1"].includes(o.hostname)||o.username||o.password||o.search||o.hash||o.pathname!=="/")throw new Error("Local Experiments require an HTTP loopback server origin.");let i=await k(o.origin,{timeoutMs:["prepare-harness","run"].includes(a)?12e5:6e4});if(await le(r,s,o.origin,i,p))return;async function c(h,x){let f=await i(new URL(p?"/v1/local-experiments":"/v1/chat-experiments",o),{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({...p?{teamId:p}:{},...process.env.OPENPOND_CHAT_INVOCATION?{invocationToken:process.env.OPENPOND_CHAT_INVOCATION}:{},action:h,payload:x})}),S=await f.json();if(!f.ok)throw new Error(typeof S.error=="string"?S.error:`Local Experiment request failed (${f.status}).`);return S}g(c,"command");async function b(){let h=n(r,"inputFile");if(!h||!(await de(h)).isFile()||(await de(h)).size>67108864)throw new Error("Provide a bounded --input-file with exact local configuration and retained package bytes.");return JSON.parse(await ye(h,"utf8"))}g(b,"input");let m;if(!p){if(a==="models")m=await c("models",{});else if(a==="run"||a==="run-cloud")m=await c(a.replaceAll("-","_"),await b());else if(a==="list"){let h=n(r,"afterId"),x=n(r,"limit");m=await c("list",{...h?{afterId:h}:{},...x?{limit:Number(x)}:{}})}else if(a==="compare"&&t&&l)m=await c("compare",{baselineId:t,candidateId:l});else if(a==="case"&&t&&w){let h=n(r,"afterSequence"),x=n(r,"limit");m=await c("case",{id:t,receiptId:w,...h?{afterSequence:Number(h)}:{},...x?{limit:Number(x)}:{}})}else if(t&&["read","status","cancel","result"].includes(a))m=await c(a,{id:t});else throw new Error("Independent local Experiments support models/run/list/read/status/cancel/result/compare/case. Workspace operations require --team.");T(r.json)?console.log(JSON.stringify(m,null,2)):se(m);return}if(a==="prepare-harness"){if(t)throw new Error("Local Profile preparation accepts --input-file rather than an id.");m=await c("prepareHarness",await b())}else if(a==="run"){if(t)throw new Error("Local Run accepts reviewed configuration through --input-file rather than an id.");let h=await b();m=await c(h.package?"run":"runFromRelease",h)}else if(a==="list"){if(t)throw new Error("Local List does not accept an id.");let h=n(r,"status"),x=n(r,"limit"),f=n(r,"project"),S=n(r,"afterId"),C=n(r,"datasetHash"),P=n(r,"search");m=await c("list",{...h?{status:h}:{},...f?{projectId:f}:{},...C?{datasetHash:C}:{},...P?{search:P}:{},...S?{afterId:S}:{},...x?{limit:Number(x)}:{}})}else{if(!t)throw new Error(`${a} requires a local Experiment or scoring pass id.`);let h=n(r,"afterId"),x=n(r,"limit");if(a==="duplicate"){let f=n(r,"operationId");if(!f)throw new Error("Duplicate requires --operation-id for safe replay.");let S=v.parse(await c("read",{id:t})),C=J.parse({...S.configuration,operationId:f,request:{...S.configuration.request,operationId:f},sourceExperimentId:S.id});m=await c("runFromRelease",{configuration:C,expectedPackageHash:S.packageHash})}else if(a==="passes")m=await c("passes",{executionId:t,...h?{afterId:h}:{},...x?{limit:Number(x)}:{}});else if(a==="case"){let f=n(r,"afterSequence");m=await c("case",{id:t,receiptId:w,...f?{afterSequence:Number(f)}:{},...x?{limit:Number(x)}:{}})}else if(a==="score"){let f=await b();if(f.execution?.id!==t)throw new Error("Local scoring input belongs to a different retained execution.");m=await c("score",f)}else if(a==="compare"){if(!l)throw new Error("Local Compare requires baseline and candidate execution ids.");let f=re.parse(await c("compare",{baselineId:t,candidateId:l}));m={...f,comparison:M(f.baseline,f.candidate)}}else if(a==="read"){let f=n(r,"contentHash");m=await c("read",{id:t,...f?{configurationHash:f}:{}})}else if(["status","cancel","result","pass"].includes(a))m=await c(a,{id:t});else if(a==="cancel-pass")m=await c("cancel",{id:t});else if(a==="pass-result")m=await c("result",{id:t});else throw new Error(`Local Experiment action is unavailable: ${a}`)}console.log(JSON.stringify(m,null,2))}g(ue,"runLocalExperimentsCommand");async function At(r,s){if(s[0]==="signal-plan"||s[0]==="signal-report")return(await import("./experiments-signal-QDVPO3M5.js")).runExperimentsSignalCommand(r,s);if(r.local===!0||r.local==="true")return ue(r,s);if(r.revision!==void 0||r.contentHash!==void 0)throw new Error("Experiments retain their immutable configuration on the run; definition revisions are not selectable.");let[a,t]=s,l=n(r,"team");if(!l||!a||s.length>(a==="compare"?3:2))throw new Error("usage: experiments <defaults|create-comparison|comparison-budget|prepare-harness|run|read|list|status|diagnostics|cancel|duplicate|score|passes|pass|cancel-pass|pass-result|result|compare|case> [id] [candidate-id] --team <id> [--input-file <path>] [--operation-id <id>]");let p=await W(),w={teamId:l,fetch:H,apiKey:await Q(p,$(p)),baseUrl:F(r)??p.apiBaseUrl??U},d=new Y(w),o;if(a==="defaults"){if(t)throw new Error("Defaults does not accept an id.");o=await d.defaults()}else if(a==="create-comparison"){let i=n(r,"inputFile");if(!i||t||(await j(i)).size>1048576)throw new Error("Create comparison requires a bounded input file with an id, fresh operationIds and optional maximumSpendUsd.");o=await d.createComparisonBudget(JSON.parse(await O(i,"utf8")))}else if(a==="comparison-budget"){if(!t)throw new Error("Comparison budget requires an id.");o=await d.comparisonBudget(t)}else if(a==="prepare-harness"){let i=n(r,"inputFile");if(!i||t||(await j(i)).size>1048576)throw new Error("Harness preparation requires a bounded --input-file with its released target, model and optional ceiling.");o=await d.prepareHarness(JSON.parse(await O(i,"utf8")))}else if(a==="run"){let i=n(r,"inputFile");if(!i||t)throw new Error("Run requires --input-file with the reviewed configuration and stable operationId.");if((await j(i)).size>1048576)throw new Error("Experiment input exceeds one MiB.");o=await d.run(JSON.parse(await O(i,"utf8")))}else if(a==="list"){if(t)throw new Error("List does not accept an Experiment id.");let i=n(r,"limit");o=await d.list(z.parse({projectId:n(r,"project")||void 0,datasetHash:n(r,"datasetHash")||void 0,search:n(r,"search")||void 0,status:n(r,"status")||void 0,afterId:n(r,"afterId")||void 0,...i?{limit:Number(i)}:{}}))}else{if(!t)throw new Error(`${a} requires an id.`);if(a==="read")o=await d.get(t);else if(a==="status")o=await d.get(t);else if(a==="diagnostics"){let i=await d.get(t),c=n(r,"afterSequence");o=await d.diagnostics(t,{manifestHash:i.manifest.contentHash,...c?{afterSequence:Number(c)}:{},afterCallId:n(r,"afterCallId")||void 0})}else if(a==="cancel")o=await d.cancel(t);else if(a==="duplicate"){let i=n(r,"operationId");if(!i)throw new Error("Duplicate requires a stable --operation-id for the new Experiment.");o=await d.duplicate(t,i)}else if(a==="score"){let i=n(r,"inputFile");if(!i||(await j(i)).size>1048576)throw new Error("Score requires --input-file containing an exact execution reference, grader releases and explicit ceiling, within one MiB.");let c=X.parse(JSON.parse(await O(i,"utf8")));if(c.execution.id!==t)throw new Error("Scoring input belongs to a different execution.");o=await d.score(c)}else if(a==="passes")o=await d.scoringPasses(t,{afterId:n(r,"afterId")||void 0});else if(a==="pass")o=await d.scoringPass(t);else if(a==="cancel-pass")o=await d.cancelScoringPass(t);else if(a==="pass-result")o=await d.scoringResult(t);else if(a==="result")o=await d.result(t);else if(a==="case"){let i=n(r,"receiptId");if(!i)throw new Error("Case inspection requires --receipt-id from the retained Experiment.");let c=await d.get(t);o=await new L(w).case(t,i,{manifestHash:c.manifest.contentHash,afterId:n(r,"afterId")||void 0})}else if(a==="compare"){if(!s[2])throw new Error("Compare requires a baseline and candidate execution id.");o=await d.compare(t,s[2])}else throw new Error(`Unknown Experiment action: ${a}`)}console.log(JSON.stringify(o,null,2))}g(At,"runExperimentsCommand");export{At as runExperimentsCommand};
@@ -1,2 +1,2 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{b as N,c as A}from"./chunk-GMA365GI.js";import"./chunk-HYUTDZ3N.js";import"./chunk-RFQD6B44.js";import"./chunk-FVMTQSVW.js";import"./chunk-ZMRP2A7K.js";import"./chunk-KUEVP7WM.js";import"./chunk-KTQWWCP2.js";import"./chunk-XRKFTPHD.js";import"./chunk-W45RKGM6.js";import"./chunk-73COPJ32.js";import"./chunk-UGDBMRCT.js";import"./chunk-XKDOPNQ5.js";import"./chunk-JXLDEYRW.js";import"./chunk-GR4MJJCE.js";import"./chunk-GG6PM7TB.js";import"./chunk-2GEZ3ZY7.js";import"./chunk-BYVE4TMU.js";import"./chunk-LVXL7T5O.js";import"./chunk-HIQPGYVH.js";import"./chunk-3VT2PPKW.js";import"./chunk-5ZBDHIIE.js";import"./chunk-MTP3B2SU.js";import"./chunk-KHDCMVEJ.js";import"./chunk-K3WM4NEC.js";import"./chunk-BLNEHU62.js";import"./chunk-BT5YNE5U.js";import"./chunk-RPM4FDRX.js";import"./chunk-DFZTRMTL.js";import"./chunk-2QHB5P2K.js";import"./chunk-BZS2PA4O.js";import"./chunk-VSQPWLAG.js";import{O}from"./chunk-6LAGMWJE.js";import{p as F}from"./chunk-IV2HEX3I.js";import"./chunk-C7NQPICU.js";import"./chunk-J256AEEE.js";import"./chunk-J7X72QUY.js";import"./chunk-UN2LKLGV.js";import"./chunk-HLJJAOI2.js";import"./chunk-AMC4Z7G4.js";import"./chunk-LK77GI6M.js";import"./chunk-HVM2GUM3.js";import"./chunk-I6VMRQF4.js";import"./chunk-D6L6UNUQ.js";import"./chunk-AJXWJLZA.js";import"./chunk-OKKNDQJF.js";import"./chunk-ZEOYNUHL.js";import{Ja as z,da as M}from"./chunk-ZY32SZ2P.js";import"./chunk-OTDDXEQ6.js";import"./chunk-ECOH24MC.js";import"./chunk-BSHAIAXY.js";import"./chunk-XWPC3AN4.js";import{c as C}from"./chunk-3M53YXEI.js";import"./chunk-GLUWATL5.js";import"./chunk-MZKCW6CB.js";import"./chunk-SV7ZBEK2.js";import"./chunk-2MEOUS24.js";import"./chunk-HNQPEOJD.js";import{n as i,o as _}from"./chunk-RCT3O3HQ.js";import"./chunk-UGOK7VTC.js";import"./chunk-TBODQT4W.js";import"./chunk-5HPZGLOL.js";import"./chunk-ZFJWA4JK.js";import{A as c}from"./chunk-X2J2P5ZT.js";import{a as x}from"./chunk-FTQLQJQV.js";import{readFile as $,stat as G}from"node:fs/promises";import{dirname as L,resolve as b}from"node:path";var H=c.string().regex(/^[a-f0-9]{64}$/),P=c.object({groupSize:c.number().int().min(2).max(100),minimumFamilies:c.number().int().min(2).max(1e3),minimumInformativeFamilies:c.number().int().min(2).max(1e3),minimumSpread:c.number().positive().max(1),minimumScoredFraction:c.number().positive().max(1)}).strict().refine(s=>s.minimumInformativeFamilies<=s.minimumFamilies,"Informative family requirement cannot exceed the minimum family population."),D=c.object({schemaVersion:c.literal("openpond.experimentSignalPlan.v1"),createdAt:c.iso.datetime(),preparation:F,packageHash:H,graders:c.array(M).min(1).max(100),tasks:c.array(c.object({id:c.string(),family:c.string(),taskHash:H,inputHash:H,contextHash:H}).strict()).min(1).max(1e4),thresholds:P}).strict(),j=D.extend({contentHash:H}).strict();function R(s){let n=j.parse(s),{contentHash:a,...p}=n;if(i(p)!==a)throw new Error("Signal plan content changed.");let{request:t,manifest:r,graders:m}=n.preparation;_(r,"Signal preparation manifest");let o=t.policy;if(o.kind!=="hosted_harness"||r.execution.kind!=="harness"||r.policy.kind!=="model"||r.runtimeTarget.placement!=="local"||r.gradingRole!=="evaluation"||i(r.profileEvaluation??null)!==i(o.source)||i(r.execution.harnessRelease)!==i(o.source.harnessRelease)||r.packageHash!==o.packageHash||r.policy.configurationHash!==o.modelConfigurationHash||r.policy.model.provider!=="openpond"||r.policy.model.model!==o.modelId||r.policy.model.revision!==null||r.policy.model.artifactHash!==(o.candidate?.contentHash??null)||r.policy.model.tokenizerRevision!==null||r.policy.model.chatTemplateHash!==null||r.tasksetRelease.id!==t.taskset.id||r.tasksetRelease.contentHash!==t.taskset.contentHash||i(r.population)!==i(t.population)||r.limits.maximumSpendUsd!==n.preparation.maximumCostUsd||r.metadata.profileRepositoryId!==void 0&&r.metadata.profileRepositoryId!==o.profileRepositoryId)throw new Error("Signal preparation differs from its native local source, package, model, budget or population.");for(let d of r.population){let g=o.source.externalDatasetBinding?[r.id,d.taskId,d.seed,d.fixtureId]:[r.id,d.taskId,d.seed];if(d.receiptId!==`evaluation-${i(g).slice(0,32)}`)throw new Error("Signal preparation receipt identity changed.")}if(t.policy.kind!=="hosted_harness"||t.policy.localRuntime||t.policy.packageHash!==n.packageHash)throw new Error("Signal plan requires the exact hosted-chat Harness package.");if(new Set(n.tasks.map(d=>d.id)).size!==n.tasks.length||new Set(m.map(d=>d.id)).size!==m.length||n.graders.length!==m.length)throw new Error("Signal plan contains duplicate or missing tasks/graders.");for(let[d,g]of n.graders.entries()){let f=m[d];if(f.id!==g.id||f.version!==g.version||f.contentHash!==i(g)||g.hardGate||!g.rewardEligible||g.weight<=0||g.taskIds||f.mappings?.length)throw new Error("Signal requires exact positive-weight reward graders, no hard gates, field mappings or task-specific grader subsets.")}let S=new Map;for(let d of t.population)S.set(d.taskId,(S.get(d.taskId)??0)+1);if(S.size!==n.tasks.length||n.tasks.some(d=>S.get(d.id)!==n.thresholds.groupSize))throw new Error("Every planned prompt must have exactly groupSize distinct seeded attempts.");if(new Set(n.tasks.map(d=>d.family)).size<n.thresholds.minimumFamilies)throw new Error("Signal population has too few independent source families.");return n}x(R,"verifySignalPlan");function T(s){let n=O(s.package),a=F.parse(s.preparation),p=new Set(a.request.population.map(o=>o.taskId)),t=n.taskset.tasks.filter(o=>p.has(o.id));if(t.length!==p.size||t.some(o=>o.split!=="train"))throw new Error("Signal probes require existing training tasks; validation/test/frozen holdouts cannot be reused.");if(a.request.taskset.id!==n.taskset.id||a.request.taskset.contentHash!==n.taskset.contentHash)throw new Error("Prepared taskset differs from the supplied package.");let r=a.graders.map(o=>{let S=n.taskset.graders.find(d=>d.id===o.id&&i(d)===o.contentHash);if(!S)throw new Error(`Selected grader is absent from the exact package: ${o.id}`);return S}),m=D.parse({schemaVersion:"openpond.experimentSignalPlan.v1",createdAt:s.createdAt??new Date().toISOString(),preparation:a,packageHash:n.contentHash,graders:r,tasks:t.map(o=>({id:o.id,family:o.clusterKey,taskHash:i(o),inputHash:i(o.input),contextHash:i(o.policyVisibleContext)})),thresholds:s.thresholds});return R({...m,contentHash:i(m)})}x(T,"createSignalPlan");function U(s){if(!s.length)return{count:0,min:null,max:null,mean:null,standardDeviation:null,spread:null};let n=s.reduce((a,p)=>a+p,0)/s.length;return{count:s.length,min:Math.min(...s),max:Math.max(...s),mean:n,standardDeviation:Math.sqrt(s.reduce((a,p)=>a+(p-n)**2,0)/s.length),spread:Math.max(...s)-Math.min(...s)}}x(U,"scoreDistribution");function V(s,n){let a=R(s),p=A.parse(n),t=N.parse(p.execution);if(i({execution:p.execution,cases:p.cases})!==p.contentHash)throw new Error("Signal result content changed.");if(t.packageHash!==a.packageHash||i(t.configuration.request)!==i(a.preparation.request)||i(t.graders)!==i(a.preparation.graders)||t.maximumCostUsd!==a.preparation.maximumCostUsd)throw new Error("Signal result differs from the frozen request, package, graders or budget.");if(Date.parse(t.createdAt)<Date.parse(a.createdAt))throw new Error("Signal plan must precede the execution.");let r=a.preparation.request.policy;if(r.kind!=="hosted_harness"||t.model.providerId!=="openpond"||t.model.modelId!==r.modelId||t.model.maxOutputTokens!==(r.maxOutputTokens??4096)||t.model.temperature!==(r.temperature??0)||t.model.topP!==(r.topP??1))throw new Error("Signal execution model or sampling differs from the frozen policy.");for(let e of["pending","running","completed","failed","cancelled","unknown"])if(t.counts[e]!==p.cases.filter(w=>w.status===e).length)throw new Error("Signal execution counts differ from its cases.");let m=new Map(a.preparation.request.population.map(e=>[e.receiptId,e]));if(p.cases.length!==m.size||new Set(p.cases.map(e=>e.receiptId)).size!==m.size)throw new Error("Signal result omits or duplicates planned attempts.");let o=new Map(a.tasks.map(e=>[e.id,e])),S=i(a.preparation.graders);for(let e of p.cases){let w=m.get(e.receiptId),k=o.get(e.taskId);if(!w||!k||w.taskId!==e.taskId||w.seed!==e.seed||i(e.input)!==k.inputHash||i(e.policyVisibleContext)!==k.contextHash)throw new Error("Signal case differs from its frozen prompt, context or seed.");if(e.status==="completed"&&(!e.profileNative||e.output===null||e.profileNative.modelConfigurationHash!==t.model.configurationHash||i(e.profileNative.source)!==i(r.source)||e.profileNative.outputHash!==i(e.output)))throw new Error("Signal case lacks matching native source, model or output evidence.");if(!e.grade)continue;if(e.grade.selectionHash!==S)throw new Error("Signal grade uses different selected graders.");if(e.grade.grades.some(u=>u.taskHash!==k.taskHash)||new Set(e.grade.grades.map(u=>u.evidenceHash)).size!==1)throw new Error("Signal criterion belongs to another prompt or inconsistent attempt evidence.");let y=e.grade.grades.flatMap(u=>u.components),E=z({graders:a.graders,components:y});for(let u of["score","passed","rewardEligible","gradingStatus","failureClass"])if(e.grade[u]!==E[u])throw new Error("Signal score differs from retained components and frozen weights.");for(let u of e.grade.grades){let l=a.graders.find(h=>h.id===u.components[0]?.graderId);if(u.graderSetHash!==i([l]))throw new Error("Signal criterion specification changed.");let I=z({graders:[l],components:u.components});for(let h of["score","passed","rewardEligible","gradingStatus","failureClass"])if(u[h]!==I[h])throw new Error("Signal criterion summary differs from its evidence.")}}let d=a.tasks.map(e=>{let w=p.cases.filter(l=>l.taskId===e.id),k=w.filter(l=>l.status==="completed"&&l.grade?.gradingStatus==="scored"&&l.grade.rewardEligible&&l.grade.score!==null),y=U(k.map(l=>l.grade.score)),E=k.length/w.length,u=a.graders.map(l=>({id:l.id,weight:l.weight,distribution:U(k.flatMap(I=>I.grade.grades.flatMap(h=>h.components).filter(h=>h.graderId===l.id&&h.rewardEligible&&h.score!==null).map(h=>h.score)))}));return{taskId:e.id,family:e.family,attempts:w.length,eligible:k.length,scoredFraction:E,combined:y,components:u,constant:y.spread!==null&&y.spread<=Number.EPSILON,uniqueOutputs:new Set(w.filter(l=>l.output!==null).map(l=>i(l.output))).size,informative:E>=a.thresholds.minimumScoredFraction&&(y.spread??0)>=a.thresholds.minimumSpread,outcomes:w.map(l=>({receiptId:l.receiptId,seed:l.seed,status:l.status,gradingStatus:l.grade?.gradingStatus??null,failureClass:l.grade?.failureClass??null,rewardEligible:l.grade?.rewardEligible??!1,score:l.grade?.score??null}))}}),g=[...new Set(d.filter(e=>e.informative).map(e=>e.family))],f=[];(t.status!=="completed"||!t.cleanupComplete)&&f.push("execution_or_local_cleanup_incomplete"),(t.usage.uncertainRequests||t.usage.costUsd===null||t.usage.heldUsd)&&f.push("cost_or_reservations_unsettled"),d.some(e=>e.scoredFraction<a.thresholds.minimumScoredFraction)&&f.push("insufficient_scored_coverage"),g.length<a.thresholds.minimumInformativeFamilies&&f.push("insufficient_within_prompt_signal");let q={schemaVersion:"openpond.experimentSignalReport.v1",planHash:a.contentHash,resultHash:p.contentHash,executionId:t.id,model:t.model,thresholds:a.thresholds,groups:d,informativeFamilies:g,usage:t.usage,cleanupComplete:t.cleanupComplete,blockers:f,signalObserved:f.length===0,trainingAuthorized:!1,runtimeParityVerified:!1,limitations:["Offline hashes bind supplied evidence; they do not authenticate it or prove source-family independence. Full grade evidence hashes require the retained trace/artifacts to independently reconstruct.","Local signal does not prove learner identity, GPU runtime/tokenizer parity, no-update behavior or provider deletion.","Review rates, private gold, fixture calibration, family exposure and the unchanged-parent noise control before training."]};return{...q,contentHash:i(q)}}x(V,"createSignalReport");async function v(s,n=64*1024*1024){if((await G(s)).size>n)throw new Error(`Signal input exceeds ${n} bytes: ${s}`);return JSON.parse(await $(s,"utf8"))}x(v,"readJson");async function pe(s,n){let a=C(s,"inputFile");if(!a||n.length!==1)throw new Error("usage: experiments <signal-plan|signal-report> --input-file <path>");let p=await v(a,1048576),t=L(b(a)),r;if(n[0]==="signal-plan"){let m=c.object({packageFile:c.string().min(1),preparationFile:c.string().min(1),thresholds:P}).strict().parse(p);r=T({package:await v(b(t,m.packageFile)),preparation:await v(b(t,m.preparationFile)),thresholds:m.thresholds})}else{let m=c.object({planFile:c.string().min(1),resultFile:c.string().min(1)}).strict().parse(p);r=V(await v(b(t,m.planFile)),await v(b(t,m.resultFile)))}console.log(JSON.stringify(r,null,2))}x(pe,"runExperimentsSignalCommand");export{pe as runExperimentsSignalCommand};
2
+ import{b as N,c as A}from"./chunk-GMA365GI.js";import"./chunk-HYUTDZ3N.js";import"./chunk-RFQD6B44.js";import"./chunk-FVMTQSVW.js";import"./chunk-ZMRP2A7K.js";import"./chunk-P7RLDDPN.js";import"./chunk-OFC5N6R3.js";import"./chunk-XRKFTPHD.js";import"./chunk-W45RKGM6.js";import"./chunk-73COPJ32.js";import"./chunk-UGDBMRCT.js";import"./chunk-XKDOPNQ5.js";import"./chunk-JXLDEYRW.js";import"./chunk-GR4MJJCE.js";import"./chunk-GG6PM7TB.js";import"./chunk-2GEZ3ZY7.js";import"./chunk-BYVE4TMU.js";import"./chunk-LVXL7T5O.js";import"./chunk-HIQPGYVH.js";import"./chunk-3VT2PPKW.js";import"./chunk-5ZBDHIIE.js";import"./chunk-MTP3B2SU.js";import"./chunk-KHDCMVEJ.js";import"./chunk-K3WM4NEC.js";import"./chunk-BLNEHU62.js";import"./chunk-BT5YNE5U.js";import"./chunk-RPM4FDRX.js";import"./chunk-DFZTRMTL.js";import"./chunk-2QHB5P2K.js";import"./chunk-BZS2PA4O.js";import"./chunk-VSQPWLAG.js";import{O}from"./chunk-6LAGMWJE.js";import{p as F}from"./chunk-IV2HEX3I.js";import"./chunk-C7NQPICU.js";import"./chunk-J256AEEE.js";import"./chunk-J7X72QUY.js";import"./chunk-UN2LKLGV.js";import"./chunk-HLJJAOI2.js";import"./chunk-AMC4Z7G4.js";import"./chunk-LK77GI6M.js";import"./chunk-HVM2GUM3.js";import"./chunk-I6VMRQF4.js";import"./chunk-D6L6UNUQ.js";import"./chunk-AJXWJLZA.js";import"./chunk-OKKNDQJF.js";import"./chunk-ZEOYNUHL.js";import{Ja as z,da as M}from"./chunk-ZY32SZ2P.js";import"./chunk-OTDDXEQ6.js";import"./chunk-ECOH24MC.js";import"./chunk-BSHAIAXY.js";import"./chunk-XWPC3AN4.js";import{c as C}from"./chunk-3M53YXEI.js";import"./chunk-GLUWATL5.js";import"./chunk-MZKCW6CB.js";import"./chunk-SV7ZBEK2.js";import"./chunk-2MEOUS24.js";import"./chunk-HNQPEOJD.js";import{n as i,o as _}from"./chunk-RCT3O3HQ.js";import"./chunk-UGOK7VTC.js";import"./chunk-TBODQT4W.js";import"./chunk-5HPZGLOL.js";import"./chunk-ZFJWA4JK.js";import{A as c}from"./chunk-X2J2P5ZT.js";import{a as x}from"./chunk-FTQLQJQV.js";import{readFile as $,stat as G}from"node:fs/promises";import{dirname as L,resolve as b}from"node:path";var H=c.string().regex(/^[a-f0-9]{64}$/),P=c.object({groupSize:c.number().int().min(2).max(100),minimumFamilies:c.number().int().min(2).max(1e3),minimumInformativeFamilies:c.number().int().min(2).max(1e3),minimumSpread:c.number().positive().max(1),minimumScoredFraction:c.number().positive().max(1)}).strict().refine(s=>s.minimumInformativeFamilies<=s.minimumFamilies,"Informative family requirement cannot exceed the minimum family population."),D=c.object({schemaVersion:c.literal("openpond.experimentSignalPlan.v1"),createdAt:c.iso.datetime(),preparation:F,packageHash:H,graders:c.array(M).min(1).max(100),tasks:c.array(c.object({id:c.string(),family:c.string(),taskHash:H,inputHash:H,contextHash:H}).strict()).min(1).max(1e4),thresholds:P}).strict(),j=D.extend({contentHash:H}).strict();function R(s){let n=j.parse(s),{contentHash:a,...p}=n;if(i(p)!==a)throw new Error("Signal plan content changed.");let{request:t,manifest:r,graders:m}=n.preparation;_(r,"Signal preparation manifest");let o=t.policy;if(o.kind!=="hosted_harness"||r.execution.kind!=="harness"||r.policy.kind!=="model"||r.runtimeTarget.placement!=="local"||r.gradingRole!=="evaluation"||i(r.profileEvaluation??null)!==i(o.source)||i(r.execution.harnessRelease)!==i(o.source.harnessRelease)||r.packageHash!==o.packageHash||r.policy.configurationHash!==o.modelConfigurationHash||r.policy.model.provider!=="openpond"||r.policy.model.model!==o.modelId||r.policy.model.revision!==null||r.policy.model.artifactHash!==(o.candidate?.contentHash??null)||r.policy.model.tokenizerRevision!==null||r.policy.model.chatTemplateHash!==null||r.tasksetRelease.id!==t.taskset.id||r.tasksetRelease.contentHash!==t.taskset.contentHash||i(r.population)!==i(t.population)||r.limits.maximumSpendUsd!==n.preparation.maximumCostUsd||r.metadata.profileRepositoryId!==void 0&&r.metadata.profileRepositoryId!==o.profileRepositoryId)throw new Error("Signal preparation differs from its native local source, package, model, budget or population.");for(let d of r.population){let g=o.source.externalDatasetBinding?[r.id,d.taskId,d.seed,d.fixtureId]:[r.id,d.taskId,d.seed];if(d.receiptId!==`evaluation-${i(g).slice(0,32)}`)throw new Error("Signal preparation receipt identity changed.")}if(t.policy.kind!=="hosted_harness"||t.policy.localRuntime||t.policy.packageHash!==n.packageHash)throw new Error("Signal plan requires the exact hosted-chat Harness package.");if(new Set(n.tasks.map(d=>d.id)).size!==n.tasks.length||new Set(m.map(d=>d.id)).size!==m.length||n.graders.length!==m.length)throw new Error("Signal plan contains duplicate or missing tasks/graders.");for(let[d,g]of n.graders.entries()){let f=m[d];if(f.id!==g.id||f.version!==g.version||f.contentHash!==i(g)||g.hardGate||!g.rewardEligible||g.weight<=0||g.taskIds||f.mappings?.length)throw new Error("Signal requires exact positive-weight reward graders, no hard gates, field mappings or task-specific grader subsets.")}let S=new Map;for(let d of t.population)S.set(d.taskId,(S.get(d.taskId)??0)+1);if(S.size!==n.tasks.length||n.tasks.some(d=>S.get(d.id)!==n.thresholds.groupSize))throw new Error("Every planned prompt must have exactly groupSize distinct seeded attempts.");if(new Set(n.tasks.map(d=>d.family)).size<n.thresholds.minimumFamilies)throw new Error("Signal population has too few independent source families.");return n}x(R,"verifySignalPlan");function T(s){let n=O(s.package),a=F.parse(s.preparation),p=new Set(a.request.population.map(o=>o.taskId)),t=n.taskset.tasks.filter(o=>p.has(o.id));if(t.length!==p.size||t.some(o=>o.split!=="train"))throw new Error("Signal probes require existing training tasks; validation/test/frozen holdouts cannot be reused.");if(a.request.taskset.id!==n.taskset.id||a.request.taskset.contentHash!==n.taskset.contentHash)throw new Error("Prepared taskset differs from the supplied package.");let r=a.graders.map(o=>{let S=n.taskset.graders.find(d=>d.id===o.id&&i(d)===o.contentHash);if(!S)throw new Error(`Selected grader is absent from the exact package: ${o.id}`);return S}),m=D.parse({schemaVersion:"openpond.experimentSignalPlan.v1",createdAt:s.createdAt??new Date().toISOString(),preparation:a,packageHash:n.contentHash,graders:r,tasks:t.map(o=>({id:o.id,family:o.clusterKey,taskHash:i(o),inputHash:i(o.input),contextHash:i(o.policyVisibleContext)})),thresholds:s.thresholds});return R({...m,contentHash:i(m)})}x(T,"createSignalPlan");function U(s){if(!s.length)return{count:0,min:null,max:null,mean:null,standardDeviation:null,spread:null};let n=s.reduce((a,p)=>a+p,0)/s.length;return{count:s.length,min:Math.min(...s),max:Math.max(...s),mean:n,standardDeviation:Math.sqrt(s.reduce((a,p)=>a+(p-n)**2,0)/s.length),spread:Math.max(...s)-Math.min(...s)}}x(U,"scoreDistribution");function V(s,n){let a=R(s),p=A.parse(n),t=N.parse(p.execution);if(i({execution:p.execution,cases:p.cases})!==p.contentHash)throw new Error("Signal result content changed.");if(t.packageHash!==a.packageHash||i(t.configuration.request)!==i(a.preparation.request)||i(t.graders)!==i(a.preparation.graders)||t.maximumCostUsd!==a.preparation.maximumCostUsd)throw new Error("Signal result differs from the frozen request, package, graders or budget.");if(Date.parse(t.createdAt)<Date.parse(a.createdAt))throw new Error("Signal plan must precede the execution.");let r=a.preparation.request.policy;if(r.kind!=="hosted_harness"||t.model.providerId!=="openpond"||t.model.modelId!==r.modelId||t.model.maxOutputTokens!==(r.maxOutputTokens??4096)||t.model.temperature!==(r.temperature??0)||t.model.topP!==(r.topP??1))throw new Error("Signal execution model or sampling differs from the frozen policy.");for(let e of["pending","running","completed","failed","cancelled","unknown"])if(t.counts[e]!==p.cases.filter(w=>w.status===e).length)throw new Error("Signal execution counts differ from its cases.");let m=new Map(a.preparation.request.population.map(e=>[e.receiptId,e]));if(p.cases.length!==m.size||new Set(p.cases.map(e=>e.receiptId)).size!==m.size)throw new Error("Signal result omits or duplicates planned attempts.");let o=new Map(a.tasks.map(e=>[e.id,e])),S=i(a.preparation.graders);for(let e of p.cases){let w=m.get(e.receiptId),k=o.get(e.taskId);if(!w||!k||w.taskId!==e.taskId||w.seed!==e.seed||i(e.input)!==k.inputHash||i(e.policyVisibleContext)!==k.contextHash)throw new Error("Signal case differs from its frozen prompt, context or seed.");if(e.status==="completed"&&(!e.profileNative||e.output===null||e.profileNative.modelConfigurationHash!==t.model.configurationHash||i(e.profileNative.source)!==i(r.source)||e.profileNative.outputHash!==i(e.output)))throw new Error("Signal case lacks matching native source, model or output evidence.");if(!e.grade)continue;if(e.grade.selectionHash!==S)throw new Error("Signal grade uses different selected graders.");if(e.grade.grades.some(u=>u.taskHash!==k.taskHash)||new Set(e.grade.grades.map(u=>u.evidenceHash)).size!==1)throw new Error("Signal criterion belongs to another prompt or inconsistent attempt evidence.");let y=e.grade.grades.flatMap(u=>u.components),E=z({graders:a.graders,components:y});for(let u of["score","passed","rewardEligible","gradingStatus","failureClass"])if(e.grade[u]!==E[u])throw new Error("Signal score differs from retained components and frozen weights.");for(let u of e.grade.grades){let l=a.graders.find(h=>h.id===u.components[0]?.graderId);if(u.graderSetHash!==i([l]))throw new Error("Signal criterion specification changed.");let I=z({graders:[l],components:u.components});for(let h of["score","passed","rewardEligible","gradingStatus","failureClass"])if(u[h]!==I[h])throw new Error("Signal criterion summary differs from its evidence.")}}let d=a.tasks.map(e=>{let w=p.cases.filter(l=>l.taskId===e.id),k=w.filter(l=>l.status==="completed"&&l.grade?.gradingStatus==="scored"&&l.grade.rewardEligible&&l.grade.score!==null),y=U(k.map(l=>l.grade.score)),E=k.length/w.length,u=a.graders.map(l=>({id:l.id,weight:l.weight,distribution:U(k.flatMap(I=>I.grade.grades.flatMap(h=>h.components).filter(h=>h.graderId===l.id&&h.rewardEligible&&h.score!==null).map(h=>h.score)))}));return{taskId:e.id,family:e.family,attempts:w.length,eligible:k.length,scoredFraction:E,combined:y,components:u,constant:y.spread!==null&&y.spread<=Number.EPSILON,uniqueOutputs:new Set(w.filter(l=>l.output!==null).map(l=>i(l.output))).size,informative:E>=a.thresholds.minimumScoredFraction&&(y.spread??0)>=a.thresholds.minimumSpread,outcomes:w.map(l=>({receiptId:l.receiptId,seed:l.seed,status:l.status,gradingStatus:l.grade?.gradingStatus??null,failureClass:l.grade?.failureClass??null,rewardEligible:l.grade?.rewardEligible??!1,score:l.grade?.score??null}))}}),g=[...new Set(d.filter(e=>e.informative).map(e=>e.family))],f=[];(t.status!=="completed"||!t.cleanupComplete)&&f.push("execution_or_local_cleanup_incomplete"),(t.usage.uncertainRequests||t.usage.costUsd===null||t.usage.heldUsd)&&f.push("cost_or_reservations_unsettled"),d.some(e=>e.scoredFraction<a.thresholds.minimumScoredFraction)&&f.push("insufficient_scored_coverage"),g.length<a.thresholds.minimumInformativeFamilies&&f.push("insufficient_within_prompt_signal");let q={schemaVersion:"openpond.experimentSignalReport.v1",planHash:a.contentHash,resultHash:p.contentHash,executionId:t.id,model:t.model,thresholds:a.thresholds,groups:d,informativeFamilies:g,usage:t.usage,cleanupComplete:t.cleanupComplete,blockers:f,signalObserved:f.length===0,trainingAuthorized:!1,runtimeParityVerified:!1,limitations:["Offline hashes bind supplied evidence; they do not authenticate it or prove source-family independence. Full grade evidence hashes require the retained trace/artifacts to independently reconstruct.","Local signal does not prove learner identity, GPU runtime/tokenizer parity, no-update behavior or provider deletion.","Review rates, private gold, fixture calibration, family exposure and the unchanged-parent noise control before training."]};return{...q,contentHash:i(q)}}x(V,"createSignalReport");async function v(s,n=64*1024*1024){if((await G(s)).size>n)throw new Error(`Signal input exceeds ${n} bytes: ${s}`);return JSON.parse(await $(s,"utf8"))}x(v,"readJson");async function pe(s,n){let a=C(s,"inputFile");if(!a||n.length!==1)throw new Error("usage: experiments <signal-plan|signal-report> --input-file <path>");let p=await v(a,1048576),t=L(b(a)),r;if(n[0]==="signal-plan"){let m=c.object({packageFile:c.string().min(1),preparationFile:c.string().min(1),thresholds:P}).strict().parse(p);r=T({package:await v(b(t,m.packageFile)),preparation:await v(b(t,m.preparationFile)),thresholds:m.thresholds})}else{let m=c.object({planFile:c.string().min(1),resultFile:c.string().min(1)}).strict().parse(p);r=V(await v(b(t,m.planFile)),await v(b(t,m.resultFile)))}console.log(JSON.stringify(r,null,2))}x(pe,"runExperimentsSignalCommand");export{pe as runExperimentsSignalCommand};
@@ -1,5 +1,5 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{a as r,c as i,h as p}from"./chunk-KTQWWCP2.js";import"./chunk-XRKFTPHD.js";import"./chunk-3M53YXEI.js";import{a as t}from"./chunk-FTQLQJQV.js";function d(){console.log(m())}t(d,"printHelp");function m(){let n=["OpenPond CLI","","Usage:"," openpond [--no-open] [--hostname HOST] [--port PORT]"," openpond <command> [options] [-- passthrough...]"," openpond --version","","Commands:"];for(let o of i()){let s=o.aliases?.length?` (aliases: ${o.aliases.join(", ")})`:"";n.push(` ${o.usage}${s}`);for(let e of o.usages??[])n.push(` ${e}`)}n.push("","Global options:");for(let[o,s]of Object.entries(r).sort(([e],[a])=>e.localeCompare(a))){let e=o.replace(/[A-Z]/g,a=>`-${a.toLowerCase()}`);n.push(s==="boolean"?` --${e}`:` --${e} <${s}>`)}return n.push("","Run `openpond <command> --help` for the selected command schema.","Arguments after `--` are passed through without option parsing."),n.join(`
2
+ import{a as r,c as i,h as p}from"./chunk-OFC5N6R3.js";import"./chunk-XRKFTPHD.js";import"./chunk-3M53YXEI.js";import{a as t}from"./chunk-FTQLQJQV.js";function d(){console.log(m())}t(d,"printHelp");function m(){let n=["OpenPond CLI","","Usage:"," openpond [--no-open] [--hostname HOST] [--port PORT]"," openpond <command> [options] [-- passthrough...]"," openpond --version","","Commands:"];for(let o of i()){let s=o.aliases?.length?` (aliases: ${o.aliases.join(", ")})`:"";n.push(` ${o.usage}${s}`);for(let e of o.usages??[])n.push(` ${e}`)}n.push("","Global options:");for(let[o,s]of Object.entries(r).sort(([e],[a])=>e.localeCompare(a))){let e=o.replace(/[A-Z]/g,a=>`-${a.toLowerCase()}`);n.push(s==="boolean"?` --${e}`:` --${e} <${s}>`)}return n.push("","Run `openpond <command> --help` for the selected command schema.","Arguments after `--` are passed through without option parsing."),n.join(`
3
3
  `)}t(m,"formatCliHelp");function l(){return["# OpenPond CLI command reference","","<!-- Generated by `pnpm --dir apps/cli docs:commands`; do not edit by hand. -->","","Parsing, aliases, command help, and this reference use the same authoritative registry.","",...i().map(o=>`## ${o.name}
4
4
 
5
5
  \`\`\`text
@@ -1,2 +1,2 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{b as a}from"./chunk-FOAM3YZQ.js";import"./chunk-Q3WXB465.js";import"./chunk-UCPD526R.js";import"./chunk-FEAKTSRS.js";import"./chunk-2THZ6GZY.js";import"./chunk-OQPJ7FJF.js";import"./chunk-BL3CZWWD.js";import"./chunk-FYWQWKVS.js";import"./chunk-GD3RCUDH.js";import"./chunk-OXRN2257.js";import"./chunk-UTIELP6F.js";import"./chunk-TOWY6Y23.js";import"./chunk-4V73I4OL.js";import"./chunk-LE75SVEL.js";import"./chunk-6ESBAHWK.js";import"./chunk-L3KS6MOV.js";import"./chunk-7J2NMUTK.js";import"./chunk-2Q2AWPP2.js";import"./chunk-W45RKGM6.js";import"./chunk-73COPJ32.js";import"./chunk-UGDBMRCT.js";import"./chunk-EDYCSW22.js";import"./chunk-Z6HWSTEP.js";import"./chunk-XGY4OQLC.js";import"./chunk-2PVW2XFF.js";import"./chunk-64EDQ7UV.js";import"./chunk-DLOJG7LP.js";import"./chunk-ULTV6INR.js";import"./chunk-XKDOPNQ5.js";import"./chunk-JXLDEYRW.js";import"./chunk-GR4MJJCE.js";import"./chunk-GG6PM7TB.js";import"./chunk-2GEZ3ZY7.js";import"./chunk-BYVE4TMU.js";import"./chunk-LVXL7T5O.js";import"./chunk-HIQPGYVH.js";import"./chunk-3VT2PPKW.js";import"./chunk-5ZBDHIIE.js";import"./chunk-MTP3B2SU.js";import"./chunk-LK77GI6M.js";import"./chunk-HVM2GUM3.js";import"./chunk-I6VMRQF4.js";import"./chunk-D6L6UNUQ.js";import"./chunk-AJXWJLZA.js";import"./chunk-OKKNDQJF.js";import"./chunk-ZEOYNUHL.js";import"./chunk-ZY32SZ2P.js";import"./chunk-OTDDXEQ6.js";import"./chunk-ECOH24MC.js";import"./chunk-KUE46HTH.js";import"./chunk-6FA3GG5B.js";import"./chunk-2MEOUS24.js";import"./chunk-HNQPEOJD.js";import"./chunk-RCT3O3HQ.js";import"./chunk-ZFJWA4JK.js";import"./chunk-X2J2P5ZT.js";import"./chunk-FTQLQJQV.js";export{a as createHostProfileEvaluationTools};
2
+ import{b as a}from"./chunk-FA3GXQYA.js";import"./chunk-Q3WXB465.js";import"./chunk-WOYBWRRV.js";import"./chunk-FEAKTSRS.js";import"./chunk-FCC24XUI.js";import"./chunk-OQPJ7FJF.js";import"./chunk-BL3CZWWD.js";import"./chunk-FYWQWKVS.js";import"./chunk-GD3RCUDH.js";import"./chunk-OXRN2257.js";import"./chunk-UTIELP6F.js";import"./chunk-TOWY6Y23.js";import"./chunk-4V73I4OL.js";import"./chunk-LE75SVEL.js";import"./chunk-6ESBAHWK.js";import"./chunk-L3KS6MOV.js";import"./chunk-7J2NMUTK.js";import"./chunk-2IECLXB2.js";import"./chunk-W45RKGM6.js";import"./chunk-73COPJ32.js";import"./chunk-UGDBMRCT.js";import"./chunk-EDYCSW22.js";import"./chunk-Z6HWSTEP.js";import"./chunk-XGY4OQLC.js";import"./chunk-2PVW2XFF.js";import"./chunk-64EDQ7UV.js";import"./chunk-DLOJG7LP.js";import"./chunk-ULTV6INR.js";import"./chunk-XKDOPNQ5.js";import"./chunk-JXLDEYRW.js";import"./chunk-GR4MJJCE.js";import"./chunk-GG6PM7TB.js";import"./chunk-2GEZ3ZY7.js";import"./chunk-BYVE4TMU.js";import"./chunk-LVXL7T5O.js";import"./chunk-HIQPGYVH.js";import"./chunk-3VT2PPKW.js";import"./chunk-5ZBDHIIE.js";import"./chunk-MTP3B2SU.js";import"./chunk-LK77GI6M.js";import"./chunk-HVM2GUM3.js";import"./chunk-I6VMRQF4.js";import"./chunk-D6L6UNUQ.js";import"./chunk-AJXWJLZA.js";import"./chunk-OKKNDQJF.js";import"./chunk-ZEOYNUHL.js";import"./chunk-ZY32SZ2P.js";import"./chunk-OTDDXEQ6.js";import"./chunk-ECOH24MC.js";import"./chunk-KUE46HTH.js";import"./chunk-6FA3GG5B.js";import"./chunk-2MEOUS24.js";import"./chunk-HNQPEOJD.js";import"./chunk-RCT3O3HQ.js";import"./chunk-ZFJWA4JK.js";import"./chunk-X2J2P5ZT.js";import"./chunk-FTQLQJQV.js";export{a as createHostProfileEvaluationTools};