openpond 0.2.57 → 0.2.59

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 (291) hide show
  1. package/dist/app-server.d.ts +2 -1
  2. package/dist/app-server.js +1 -1
  3. package/dist/chunks/{actions-command-QU4H53OG.js → actions-command-JJ3CU7J6.js} +1 -1
  4. package/dist/chunks/{app-layer-NSTE5HIT.js → app-layer-KAUZAHGE.js} +1 -1
  5. package/dist/chunks/{app-server-connected-apps-JHGWLBXT.js → app-server-connected-apps-SXGZOUJJ.js} +1 -1
  6. package/dist/chunks/{app-server-evaluations-GJPFWIDA.js → app-server-evaluations-N4OMTPCI.js} +1 -1
  7. package/dist/chunks/{app-server-harness-services-IH4G6POY.js → app-server-harness-services-DDFUMNYC.js} +1 -1
  8. package/dist/chunks/app-server-runtime-SVB6L26M.js +2 -0
  9. package/dist/chunks/{apps-BKTOR4F7.js → apps-EZB56RHV.js} +1 -1
  10. package/dist/chunks/{chunk-SDXFLO7J.js → chunk-22VMH6JV.js} +1 -1
  11. package/dist/chunks/{chunk-FTEOCCPB.js → chunk-25JDHAZ5.js} +1 -1
  12. package/dist/chunks/{chunk-PPAPVGJP.js → chunk-2G4BEISF.js} +1 -1
  13. package/dist/chunks/{chunk-O72BSKSO.js → chunk-2L5XWJJ5.js} +1 -1
  14. package/dist/chunks/{chunk-QOTVNQDI.js → chunk-2RNQQNB7.js} +2 -2
  15. package/dist/chunks/{chunk-O6ULLQJ6.js → chunk-2WKUBGIF.js} +1 -1
  16. package/dist/chunks/{chunk-F4KOGISR.js → chunk-37MWETFU.js} +1 -1
  17. package/dist/chunks/{chunk-D74JEERO.js → chunk-3CDEBKSU.js} +1 -1
  18. package/dist/chunks/{chunk-L6K7ERG5.js → chunk-4EDIRCD3.js} +1 -1
  19. package/dist/chunks/{chunk-JYKRR7E5.js → chunk-4GPXTISD.js} +1 -1
  20. package/dist/chunks/chunk-57TRXBLT.js +3 -0
  21. package/dist/chunks/{chunk-LQQNBVEB.js → chunk-76M2MEHV.js} +1 -1
  22. package/dist/chunks/{chunk-HCYX6RHP.js → chunk-776WNDV2.js} +1 -1
  23. package/dist/chunks/{chunk-HDL5YSAA.js → chunk-7AVNZF36.js} +1 -1
  24. package/dist/chunks/{chunk-3K4VVB7S.js → chunk-7K7O3CKY.js} +1 -1
  25. package/dist/chunks/chunk-7UH4YDA7.js +3 -0
  26. package/dist/chunks/{chunk-KUERKVEU.js → chunk-ABZ2ZOLU.js} +1 -1
  27. package/dist/chunks/{chunk-ZRDGQDZL.js → chunk-ANFDRKUU.js} +1 -1
  28. package/dist/chunks/{chunk-GWCHDF2C.js → chunk-AQD7K4Z5.js} +1 -1
  29. package/dist/chunks/{chunk-4D7HWVWD.js → chunk-ARLOVWQ3.js} +1 -1
  30. package/dist/chunks/{chunk-2QUCCP6Z.js → chunk-ATAOHSFR.js} +1 -1
  31. package/dist/chunks/{chunk-3RCRSMWZ.js → chunk-BE6SS65L.js} +2 -2
  32. package/dist/chunks/{chunk-Z54O534A.js → chunk-BGJYITVI.js} +1 -1
  33. package/dist/chunks/{chunk-BLXEAZCQ.js → chunk-BL3YH2QU.js} +1 -1
  34. package/dist/chunks/{chunk-2D4Y3HNW.js → chunk-BO5JZYWG.js} +1 -1
  35. package/dist/chunks/{chunk-ZGTOK7ZK.js → chunk-BQS7Z4AP.js} +1 -1
  36. package/dist/chunks/{chunk-7HPDGZOR.js → chunk-BRORSFJX.js} +3 -3
  37. package/dist/chunks/{chunk-XXYGGNVM.js → chunk-BVQWVIGK.js} +1 -1
  38. package/dist/chunks/{chunk-SWUEFLOH.js → chunk-C37PUHA6.js} +1 -1
  39. package/dist/chunks/{chunk-3VUATFZD.js → chunk-CGWA54LE.js} +1 -1
  40. package/dist/chunks/{chunk-EQFGBL3O.js → chunk-CKMSBAI2.js} +1 -1
  41. package/dist/chunks/{chunk-YOBN7KTF.js → chunk-COHMDT7A.js} +7 -7
  42. package/dist/chunks/{chunk-JDEEWOD7.js → chunk-DPHAN6N3.js} +1 -1
  43. package/dist/chunks/{chunk-YOQRYNLP.js → chunk-DZUN5YWB.js} +1 -1
  44. package/dist/chunks/{chunk-6FDWRG55.js → chunk-E72UU4VX.js} +1 -1
  45. package/dist/chunks/{chunk-ABD5M2D2.js → chunk-EOBHQ3JT.js} +1 -1
  46. package/dist/chunks/chunk-EQOV34UH.js +2 -0
  47. package/dist/chunks/chunk-EUMXMT3S.js +2 -0
  48. package/dist/chunks/{chunk-773TH7FN.js → chunk-EWOSLZDX.js} +1 -1
  49. package/dist/chunks/{chunk-HIOKCIL7.js → chunk-FAYASU7Z.js} +1 -1
  50. package/dist/chunks/{chunk-EIRYMSEG.js → chunk-FKJHEZCW.js} +1 -1
  51. package/dist/chunks/{chunk-Q2QL6UWN.js → chunk-GL3NX3F3.js} +1 -1
  52. package/dist/chunks/{chunk-UKMA4R6X.js → chunk-GOPFFQZU.js} +1 -1
  53. package/dist/chunks/{chunk-RAXOSUSW.js → chunk-GUOLMLZN.js} +1 -1
  54. package/dist/chunks/{chunk-GZ7M5XBP.js → chunk-GVZLGS2U.js} +1 -1
  55. package/dist/chunks/chunk-GYJQKCEO.js +5 -0
  56. package/dist/chunks/{chunk-XDQMGUWL.js → chunk-H7ATCPPB.js} +1 -1
  57. package/dist/chunks/{chunk-J2TWKFML.js → chunk-IFDALGZE.js} +4 -4
  58. package/dist/chunks/{chunk-S5ESN275.js → chunk-IRV6GWGG.js} +3 -3
  59. package/dist/chunks/chunk-JFXINDOQ.js +3 -0
  60. package/dist/chunks/{chunk-PRGBLQVH.js → chunk-JMBQYBPI.js} +1 -1
  61. package/dist/chunks/{chunk-DBK66CJP.js → chunk-JQKSXCAJ.js} +1 -1
  62. package/dist/chunks/{chunk-DARVPBZ4.js → chunk-JUQMSHNR.js} +1 -1
  63. package/dist/chunks/{chunk-3Z47M3YY.js → chunk-K44RHALX.js} +1 -1
  64. package/dist/chunks/{chunk-4EPSHPZL.js → chunk-KO3HNMLJ.js} +1 -1
  65. package/dist/chunks/{chunk-4NESNOK5.js → chunk-LNCHFVHT.js} +1 -1
  66. package/dist/chunks/{chunk-7E6T7GP5.js → chunk-LPWBIGKW.js} +1 -1
  67. package/dist/chunks/{chunk-OIUTWU6K.js → chunk-MFMYWZK2.js} +1 -1
  68. package/dist/chunks/{chunk-A6USMRWK.js → chunk-MMQRHR3V.js} +1 -1
  69. package/dist/chunks/{chunk-I7AQMAQI.js → chunk-MNC4YUDI.js} +6 -6
  70. package/dist/chunks/{chunk-ZFSHBFG5.js → chunk-N6ENLEMY.js} +2 -2
  71. package/dist/chunks/{chunk-SH5CBAFC.js → chunk-NTB2O4RP.js} +1 -1
  72. package/dist/chunks/{chunk-OQKJGTTO.js → chunk-O3RF72BT.js} +1 -1
  73. package/dist/chunks/{chunk-QEFHOJFE.js → chunk-O4VIXU7A.js} +1 -1
  74. package/dist/chunks/{chunk-5MCNZCVQ.js → chunk-OLDK2LKJ.js} +1 -1
  75. package/dist/chunks/{chunk-WMKYHXVM.js → chunk-OX3XZKGK.js} +2 -2
  76. package/dist/chunks/{chunk-SDAUS5PY.js → chunk-P2RSBSCT.js} +1 -1
  77. package/dist/chunks/{chunk-EKM2D7JU.js → chunk-PFSMXKTI.js} +1 -1
  78. package/dist/chunks/{chunk-FUOEIDMA.js → chunk-PH6IORGZ.js} +1 -1
  79. package/dist/chunks/{chunk-PUZQU66L.js → chunk-PQJTYOR2.js} +1 -1
  80. package/dist/chunks/{chunk-OLLLZVHF.js → chunk-PY6K2JRH.js} +1 -1
  81. package/dist/chunks/{chunk-EYPCBBMS.js → chunk-RBZH6A6M.js} +1 -1
  82. package/dist/chunks/{chunk-6QSSIT62.js → chunk-RZUEVS64.js} +1 -1
  83. package/dist/chunks/{chunk-Q5LEXXJG.js → chunk-SF5HJ7PL.js} +4 -4
  84. package/dist/chunks/{chunk-NHQ36THU.js → chunk-TG7P7BSV.js} +1 -1
  85. package/dist/chunks/{chunk-G3RXYI2L.js → chunk-TIHXUKFD.js} +1 -1
  86. package/dist/chunks/{chunk-QOGJAQDO.js → chunk-TKLBP3MM.js} +1 -1
  87. package/dist/chunks/{chunk-M4JWQSV7.js → chunk-U2MAPON2.js} +1 -1
  88. package/dist/chunks/chunk-U5FKRYJO.js +86 -0
  89. package/dist/chunks/{chunk-QNG27G3T.js → chunk-V34H7Y2T.js} +2 -2
  90. package/dist/chunks/chunk-VGRMAGOK.js +9 -0
  91. package/dist/chunks/chunk-VRODAXFS.js +145 -0
  92. package/dist/chunks/{chunk-EIEZHFIW.js → chunk-WC42WOLG.js} +1 -1
  93. package/dist/chunks/{chunk-OS3LO5J3.js → chunk-WRI4XKSK.js} +1 -1
  94. package/dist/chunks/{chunk-XTFPDQMH.js → chunk-XJZSIXEO.js} +2 -2
  95. package/dist/chunks/{chunk-25MBPJVY.js → chunk-XMKCCLGB.js} +1 -1
  96. package/dist/chunks/{chunk-HZEIRHEB.js → chunk-XMWXH7TS.js} +1 -1
  97. package/dist/chunks/chunk-YCQSVHCD.js +9 -0
  98. package/dist/chunks/{chunk-B7RFL4N2.js → chunk-YHHF4Q7Y.js} +1 -1
  99. package/dist/chunks/{chunk-DMVD2RFZ.js → chunk-ZAN4DYLH.js} +1 -1
  100. package/dist/chunks/chunk-ZH3K7LKQ.js +2 -0
  101. package/dist/chunks/cli-5DFVQL5Y.js +2 -0
  102. package/dist/chunks/{configuration-command-6C5UO7GE.js → configuration-command-JS6U3RMC.js} +1 -1
  103. package/dist/chunks/connected-app-executor-UBMGMV76.js +2 -0
  104. package/dist/chunks/{connected-evidence-GH2ATNEX.js → connected-evidence-NLAIEVQ3.js} +1 -1
  105. package/dist/chunks/connection-NZSD3U5O.js +2 -0
  106. package/dist/chunks/{continual-6CQAMTTR.js → continual-WFPIDWPH.js} +1 -1
  107. package/dist/chunks/core-commands-U4IBRRY5.js +2 -0
  108. package/dist/chunks/{datasets-7BNMVJOY.js → datasets-UX47DTTB.js} +1 -1
  109. package/dist/chunks/{desktop-test-3CUHVLXV.js → desktop-test-UUU7PD4P.js} +1 -1
  110. package/dist/chunks/{dist-VYC5VMQB.js → dist-OGLX76LL.js} +1 -1
  111. package/dist/chunks/{dist-ZVJPJLXR.js → dist-W5MJYSPF.js} +1 -1
  112. package/dist/chunks/{evaluation-coordination-XEF5L7KZ.js → evaluation-coordination-3YQN5JQW.js} +1 -1
  113. package/dist/chunks/{experiment-improvements-KRX2DP27.js → experiment-improvements-ZRVD2AGY.js} +1 -1
  114. package/dist/chunks/{experiments-DFGQYA4O.js → experiments-JEB5A2N5.js} +1 -1
  115. package/dist/chunks/{extension-XKXXOP5N.js → extension-JCUA3RWV.js} +1 -1
  116. package/dist/chunks/{help-S7THC6IE.js → help-KA4OINP5.js} +1 -1
  117. package/dist/chunks/host-profile-evaluation-tools-2URLU5SG.js +2 -0
  118. package/dist/chunks/host-profile-external-dataset-B2AQNSDR.js +2 -0
  119. package/dist/chunks/{hosted-app-server-composition-HPL3CRXN.js → hosted-app-server-composition-VJQ3FM4I.js} +1 -1
  120. package/dist/chunks/{hosted-experiment-improvement-NFSVS5TU.js → hosted-experiment-improvement-42YWXB3P.js} +1 -1
  121. package/dist/chunks/hosted-harness-runtime-BM4WONJN.js +2 -0
  122. package/dist/chunks/{hosted-profile-candidate-2S5LFUWD.js → hosted-profile-candidate-HVVC43XQ.js} +1 -1
  123. package/dist/chunks/hosted-profile-compiler-RKDWHYK3.js +2 -0
  124. package/dist/chunks/{hosted-profile-evaluation-control-76BTRTYD.js → hosted-profile-evaluation-control-57V24UGU.js} +1 -1
  125. package/dist/chunks/{hosted-profile-evaluation-inspection-V6Z3A5XJ.js → hosted-profile-evaluation-inspection-BUWLCKCD.js} +1 -1
  126. package/dist/chunks/{hosted-profile-evaluation-preparation-IDJYREW3.js → hosted-profile-evaluation-preparation-3XLRR6UH.js} +1 -1
  127. package/dist/chunks/{hosted-tasksets-ANAE2PIW.js → hosted-tasksets-THKM5QY5.js} +1 -1
  128. package/dist/chunks/{human-review-WR777ODH.js → human-review-CSYAW4PC.js} +1 -1
  129. package/dist/chunks/import-CBDJ4DME.js +3 -0
  130. package/dist/chunks/local-harness-improvement-runtime-3T6E7I5Q.js +2 -0
  131. package/dist/chunks/local-harness-taskset-review-LQPQBALH.js +2 -0
  132. package/dist/chunks/{opchat-T4QTNEIY.js → opchat-6ADSONAD.js} +1 -1
  133. package/dist/chunks/{organizations-75L5DZDV.js → organizations-GT24ZTCN.js} +1 -1
  134. package/dist/chunks/{profile-TFZMUEDR.js → profile-Y2MCSOUK.js} +1 -1
  135. package/dist/chunks/project-action-payload-GHSLE7K3.js +2 -0
  136. package/dist/chunks/{project-agent-6RRO233B.js → project-agent-YYSQIHVE.js} +1 -1
  137. package/dist/chunks/{published-experiment-source-DZFENAQA.js → published-experiment-source-5TMGLKDM.js} +1 -1
  138. package/dist/chunks/refiner-profile-service-ZK7KAFP5.js +2 -0
  139. package/dist/chunks/{runtime-A7OZXM43.js → runtime-QFXCXSVB.js} +2 -2
  140. package/dist/chunks/{sandbox-command-IU5XFTJP.js → sandbox-command-U6346TVJ.js} +1 -1
  141. package/dist/chunks/{sandbox-template-C4V6T36U.js → sandbox-template-XWWPWWNR.js} +1 -1
  142. package/dist/chunks/saved-work-SWHZ4OLO.js +2 -0
  143. package/dist/chunks/{send-turn-XTAIS2JN.js → send-turn-SIXOZUVJ.js} +1 -1
  144. package/dist/chunks/{src-LMC3K6LH.js → src-6SHCCYEN.js} +1 -1
  145. package/dist/chunks/{src-INHPJ63Z.js → src-EZAKCCUV.js} +56 -56
  146. package/dist/chunks/standalone-experiment-turn-owner-LIAQWTGI.js +2 -0
  147. package/dist/chunks/{store-continual-support-reviews-HHA6NX7K.js → store-continual-support-reviews-GDX6CSUU.js} +1 -1
  148. package/dist/chunks/{store-conversation-serving-KPC62UEY.js → store-conversation-serving-W55XMDH4.js} +1 -1
  149. package/dist/chunks/{store-create-improve-QV54XIZW.js → store-create-improve-A7E7CUPZ.js} +1 -1
  150. package/dist/chunks/{store-datasets-RXJ33SUN.js → store-datasets-HKF3EO7B.js} +1 -1
  151. package/dist/chunks/{store-evaluation-results-3F3P527G.js → store-evaluation-results-645RFBGR.js} +1 -1
  152. package/dist/chunks/{store-human-review-RAH7WMIP.js → store-human-review-F5KESW52.js} +1 -1
  153. package/dist/chunks/{store-learned-preference-migration-validation-4CI2IRUF.js → store-learned-preference-migration-validation-V27XD4I7.js} +1 -1
  154. package/dist/chunks/{store-local-experiments-5LUJR7GI.js → store-local-experiments-HWQWNTIU.js} +1 -1
  155. package/dist/chunks/{store-model-batch-review-YEGX327M.js → store-model-batch-review-TOCSDVAP.js} +1 -1
  156. package/dist/chunks/{store-model-configuration-5ZURQATB.js → store-model-configuration-6543ASY2.js} +1 -1
  157. package/dist/chunks/{store-sidebar-file-bookmarks-VB5GTLFY.js → store-sidebar-file-bookmarks-53B7QIGS.js} +1 -1
  158. package/dist/chunks/{store-sidebar-preferences-GWIOG2NH.js → store-sidebar-preferences-YXGEJVUO.js} +1 -1
  159. package/dist/chunks/{store-subagents-T7R2Z6TB.js → store-subagents-HRCAK7VZ.js} +1 -1
  160. package/dist/chunks/{store-task-inbox-JJTBW76C.js → store-task-inbox-WF74W4U2.js} +11 -11
  161. package/dist/chunks/{store-task-inventory-OB3F2APC.js → store-task-inventory-KHCTEZVK.js} +1 -1
  162. package/dist/chunks/{store-taskset-drafts-EKQWWFYQ.js → store-taskset-drafts-3ACG5AVX.js} +1 -1
  163. package/dist/chunks/{store-training-G6YLFSIR.js → store-training-R46WOGXB.js} +1 -1
  164. package/dist/chunks/{store-training-jobs-RC46YBF6.js → store-training-jobs-D4LECE7O.js} +1 -1
  165. package/dist/chunks/{store-training-models-6BA43IPP.js → store-training-models-EQVNXOVB.js} +1 -1
  166. package/dist/chunks/{taskset-EQRFQBYM.js → taskset-NR2X2UOK.js} +1 -1
  167. package/dist/chunks/{taskset-packages-XC6HEE3K.js → taskset-packages-ONULEIVI.js} +1 -1
  168. package/dist/chunks/{teams-bot-EAPGPTHZ.js → teams-bot-CHUYMD6K.js} +1 -1
  169. package/dist/chunks/{training-UF6RPI4T.js → training-IDSGYGU2.js} +1 -1
  170. package/dist/chunks/{web-search-CZ3NCLPY.js → web-search-BPON7H5N.js} +1 -1
  171. package/dist/chunks/{workspaces-EKKE5NAC.js → workspaces-2TJRDM5K.js} +1 -1
  172. package/dist/cli.js +1 -1
  173. package/dist/index.js +1 -1
  174. package/dist/web/assets/App-pcwmC4IR.js +154 -0
  175. package/dist/web/assets/{AppDialog-t2Fx5tK3.js → AppDialog-CdHad7GT.js} +1 -1
  176. package/dist/web/assets/{AppTerminalPanel-Dj1Y32oI.js → AppTerminalPanel-CrmoOgd4.js} +2 -2
  177. package/dist/web/assets/AppsView-0P6cBsD4.js +1 -0
  178. package/dist/web/assets/{BrowserSidebar-jhWi4rVm.js → BrowserSidebar-Cb6edJw6.js} +1 -1
  179. package/dist/web/assets/{CartesianChart-C1DIx0Ia.js → CartesianChart-B2Sxi0lv.js} +1 -1
  180. package/dist/web/assets/{CollaborationTabs-Bdr-HmOL.js → CollaborationTabs-PP0AIXhb.js} +1 -1
  181. package/dist/web/assets/{CommandMenu-Ux2yOHAc.js → CommandMenu-GfQIMe6W.js} +1 -1
  182. package/dist/web/assets/{CommunityView-DPEeVKFn.js → CommunityView-V6KmMl5n.js} +1 -1
  183. package/dist/web/assets/ComposerCreateImproveStrip-oeVeyhPX.js +1 -0
  184. package/dist/web/assets/ConversationImportsSettings-CuQcvVgE.js +1 -0
  185. package/dist/web/assets/ConversationImportsSettings-PfUa8V7X.css +1 -0
  186. package/dist/web/assets/{GetStartedView-CFHP0AaI.js → GetStartedView-2oZ068h_.js} +1 -1
  187. package/dist/web/assets/{HostedModelLearningReview-D8BGTPVN.js → HostedModelLearningReview-DLzak_Vf.js} +1 -1
  188. package/dist/web/assets/{HostedModelLearningSettings-JS1S7vNO.js → HostedModelLearningSettings-Eca6Pd9R.js} +1 -1
  189. package/dist/web/assets/{LabModelVersionDetailPage-Dx5Q3xV2.js → LabModelVersionDetailPage-DsBblnMp.js} +1 -1
  190. package/dist/web/assets/LabSkillSidebar-DDknttrB.js +1 -0
  191. package/dist/web/assets/{LabsRoute-CyYF8-dw.js → LabsRoute-CgNiUHsy.js} +4 -4
  192. package/dist/web/assets/MainChatThread-yCVg99LU.js +2 -0
  193. package/dist/web/assets/MainPane-C86le7UF.js +65 -0
  194. package/dist/web/assets/{MarkdownText-BR4V6lNO.js → MarkdownText-BBVriBCj.js} +1 -1
  195. package/dist/web/assets/{NativeSkillSidebar-DU9IEgIO.js → NativeSkillSidebar-D2uVZkqh.js} +1 -1
  196. package/dist/web/assets/{NewExperienceSwitcher-mIy6FzCj.js → NewExperienceSwitcher-DuD6GScJ.js} +1 -1
  197. package/dist/web/assets/{NewProjectDialog-RfTZTHxl.js → NewProjectDialog-B6XZkJrU.js} +1 -1
  198. package/dist/web/assets/OutputsPage-PUlmcWjv.js +1 -0
  199. package/dist/web/assets/{ProjectsPage-CE6QUB-b.js → ProjectsPage-DWBRmej6.js} +1 -1
  200. package/dist/web/assets/RightChatPanelStack-HaCVep4t.js +1 -0
  201. package/dist/web/assets/{RightSidebarHomePanel-CK0rP3WT.js → RightSidebarHomePanel-BUtdPb2L.js} +1 -1
  202. package/dist/web/assets/{ScheduledWorkPage-vOrYv8pp.js → ScheduledWorkPage-Dg9GkGrT.js} +1 -1
  203. package/dist/web/assets/SettingsView-DjjnCnlb.css +1 -0
  204. package/dist/web/assets/{SettingsView-DCKVrfjj.js → SettingsView-DtldfnV-.js} +4 -4
  205. package/dist/web/assets/{TeamChatView-Bwrjr-vk.js → TeamChatView-C71JX4je.js} +2 -2
  206. package/dist/web/assets/{TerminalOverlay-DhPoKZAq.js → TerminalOverlay-B4F6Q36s.js} +1 -1
  207. package/dist/web/assets/TrainingCreationPanel-B9MxFzQx.js +1 -0
  208. package/dist/web/assets/{TrainingDraftPanel-C9cRX5qf.js → TrainingDraftPanel-7C48sHfC.js} +1 -1
  209. package/dist/web/assets/{UsageSettingsSection-CrdcSGeW.js → UsageSettingsSection-CC57FcUB.js} +1 -1
  210. package/dist/web/assets/{WorkSidebarPanel-DSSikNFQ.js → WorkSidebarPanel-Cto1usLM.js} +1 -1
  211. package/dist/web/assets/{WorkspaceDiffPanel-BAFo0CPN.js → WorkspaceDiffPanel-CL7wi3kp.js} +3 -3
  212. package/dist/web/assets/{WorkspaceEnvironmentMenu-BVHAhwnJ.js → WorkspaceEnvironmentMenu-zdzSDofs.js} +18 -18
  213. package/dist/web/assets/{WorkspaceGitDialogs-CwVoiDQ2.js → WorkspaceGitDialogs-CZSmjnrc.js} +1 -1
  214. package/dist/web/assets/{WorkspaceMonacoEditor-TxLyhzNp.js → WorkspaceMonacoEditor-TrUDJMKb.js} +3 -3
  215. package/dist/web/assets/agent-connections-4Dza2mDg.js +1 -0
  216. package/dist/web/assets/{arrow-up-right-C9aE8Mfz.js → arrow-up-right-xKb5kWQJ.js} +1 -1
  217. package/dist/web/assets/{chunk-P3BRSSRD-DUGfuKA8.js → chunk-P3BRSSRD-BsGTkgyC.js} +1 -1
  218. package/dist/web/assets/{clipboard-Dk158Qp4.js → clipboard-BgjV3aCx.js} +1 -1
  219. package/dist/web/assets/{cloud-upload-k9eqBsHr.js → cloud-upload-Bw9XUsKQ.js} +1 -1
  220. package/dist/web/assets/{cssMode-CO35ARZp.js → cssMode-DxsFJGb-.js} +1 -1
  221. package/dist/web/assets/{folder-open-sYgceW_f.js → folder-open-CbmUjIYS.js} +1 -1
  222. package/dist/web/assets/{folder-plus-CS0R49m9.js → folder-plus-slsst7Ct.js} +1 -1
  223. package/dist/web/assets/{git-commit-horizontal-DrGxH2h4.js → git-commit-horizontal-BIS-8MuS.js} +1 -1
  224. package/dist/web/assets/{htmlMode-REMmzdfq.js → htmlMode-BE4VOrZo.js} +1 -1
  225. package/dist/web/assets/{index-C8aCGagb.js → index-DEg0S7Qk.js} +2 -2
  226. package/dist/web/assets/index-erq7hUne.css +1 -0
  227. package/dist/web/assets/{info-DLdbiUrh.js → info-5bL9xSSf.js} +1 -1
  228. package/dist/web/assets/{jsonMode-KEdMfkIf.js → jsonMode-CYimnBhD.js} +1 -1
  229. package/dist/web/assets/{lspLanguageFeatures-5KZwEoxW.js → lspLanguageFeatures-CiFuk-P7.js} +1 -1
  230. package/dist/web/assets/{minimize-2-CqcI4zcM.js → minimize-2-BGVWKvTg.js} +1 -1
  231. package/dist/web/assets/{monaco.contribution-omszXBEj.js → monaco.contribution-BTY4dJ0f.js} +2 -2
  232. package/dist/web/assets/{monaco.contribution-BJGj65F9.js → monaco.contribution-C7sMrcos.js} +2 -2
  233. package/dist/web/assets/{monaco.contribution-DO10L0zW.js → monaco.contribution-DUE3CQph.js} +2 -2
  234. package/dist/web/assets/{monaco.contribution-Cly9Wt7L.js → monaco.contribution-DkLVGT8N.js} +2 -2
  235. package/dist/web/assets/{monitor-BFVCcbxp.js → monitor-B5hx_tzp.js} +1 -1
  236. package/dist/web/assets/{play-C469pVZq.js → play-pmSO95Qg.js} +1 -1
  237. package/dist/web/assets/{python-Dw0YcVy9.js → python-CiZvL3LX.js} +1 -1
  238. package/dist/web/assets/{save-CtSjPydi.js → save-CvYL4DUg.js} +1 -1
  239. package/dist/web/assets/{square-BuImvLhT.js → square-DT_uFOml.js} +1 -1
  240. package/dist/web/assets/{toggleHighContrast-DjCO9lIP.js → toggleHighContrast-CrE1_HY0.js} +1 -1
  241. package/dist/web/assets/{tsMode-BAOnxKd6.js → tsMode-CI_PdZmj.js} +1 -1
  242. package/dist/web/assets/{upload-2JkFZo3h.js → upload-PVi8vC3T.js} +1 -1
  243. package/dist/web/assets/{useLocalAgentSchedules-BNqAisfS.js → useLocalAgentSchedules-BHJNVf42.js} +1 -1
  244. package/dist/web/assets/useProviderSettings-CU3zXyie.js +5 -0
  245. package/dist/web/assets/{useProviderSettings-CmL_BaxP.css → useProviderSettings-Cktvzinz.css} +1 -1
  246. package/dist/web/assets/{useSessionTurnCache-BHU2-Jmz.js → useSessionTurnCache-BE7cipLX.js} +1 -1
  247. package/dist/web/assets/{wifi-off-CpOAH62M.js → wifi-off-7WiFuOhD.js} +1 -1
  248. package/dist/web/assets/{workers-0QvlA2T5.js → workers-Cv8r4CvM.js} +1 -1
  249. package/dist/web/assets/{yaml-BK3qxo7D.js → yaml-Bj7mdkV2.js} +1 -1
  250. package/dist/web/index.html +2 -2
  251. package/docs/command-reference.md +10 -3
  252. package/docs/conversation-imports.md +57 -0
  253. package/package.json +1 -1
  254. package/dist/chunks/app-server-runtime-VCRNCNX2.js +0 -2
  255. package/dist/chunks/chunk-FV2R5RUN.js +0 -3
  256. package/dist/chunks/chunk-FY5KHLMW.js +0 -2
  257. package/dist/chunks/chunk-HY3GOBFJ.js +0 -58
  258. package/dist/chunks/chunk-KG325WTN.js +0 -2
  259. package/dist/chunks/chunk-MULXCKG7.js +0 -10
  260. package/dist/chunks/chunk-OGDADQGH.js +0 -143
  261. package/dist/chunks/chunk-QHWGQ3A4.js +0 -5
  262. package/dist/chunks/chunk-VRIEKBBH.js +0 -9
  263. package/dist/chunks/chunk-WJ43MJ3F.js +0 -2
  264. package/dist/chunks/chunk-YY7LEQGP.js +0 -2
  265. package/dist/chunks/cli-X25RSO2X.js +0 -2
  266. package/dist/chunks/connected-app-executor-IVLGQP65.js +0 -2
  267. package/dist/chunks/connection-HTF6CC7M.js +0 -2
  268. package/dist/chunks/core-commands-A2DGGIPS.js +0 -2
  269. package/dist/chunks/host-profile-evaluation-tools-NRLXL2S5.js +0 -2
  270. package/dist/chunks/host-profile-external-dataset-K3ICDHIP.js +0 -2
  271. package/dist/chunks/hosted-harness-runtime-723S5ZSH.js +0 -2
  272. package/dist/chunks/hosted-profile-compiler-2DQIFSXW.js +0 -2
  273. package/dist/chunks/import-MLZUHITH.js +0 -4
  274. package/dist/chunks/local-harness-improvement-runtime-JIQ6ZVDW.js +0 -2
  275. package/dist/chunks/local-harness-taskset-review-XVYTGAGK.js +0 -2
  276. package/dist/chunks/project-action-payload-7VGL7OER.js +0 -2
  277. package/dist/chunks/refiner-profile-service-UUIWFJVT.js +0 -2
  278. package/dist/chunks/saved-work-6BMBFP43.js +0 -2
  279. package/dist/chunks/standalone-experiment-turn-owner-JCY5LL5R.js +0 -2
  280. package/dist/web/assets/App-s-CJswyt.js +0 -154
  281. package/dist/web/assets/AppsView-BYE5EBDJ.js +0 -1
  282. package/dist/web/assets/ComposerCreateImproveStrip-CEgh4OtN.js +0 -1
  283. package/dist/web/assets/LabSkillSidebar-BxffN-pN.js +0 -1
  284. package/dist/web/assets/MainChatThread-DZpcFRFl.js +0 -2
  285. package/dist/web/assets/MainPane-5DTtwVCk.js +0 -65
  286. package/dist/web/assets/OutputsPage-Cr1Spf7S.js +0 -1
  287. package/dist/web/assets/RightChatPanelStack-T6VRWuHo.js +0 -1
  288. package/dist/web/assets/SettingsView-Dulr_xlq.css +0 -1
  289. package/dist/web/assets/TrainingCreationPanel-BXHfohNm.js +0 -1
  290. package/dist/web/assets/index-3iPNbbER.css +0 -1
  291. package/dist/web/assets/useProviderSettings-C4L4wDoh.js +0 -5
@@ -1,5 +1,5 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{a as vt,c as rt}from"./chunk-PSGGOZFM.js";import{Da as Jt,Ea as Yt,b as V,p as ot,xa as At,ya as Pt,za as qt}from"./chunk-QOTVNQDI.js";import{s as Vt}from"./chunk-WJ43MJ3F.js";import{S as Kt,U as St,e as Xt}from"./chunk-I7AQMAQI.js";import{I as Wt}from"./chunk-Z4Z5UOZM.js";import{e as Ut}from"./chunk-FFRFSDBM.js";import{b as nt}from"./chunk-ES2ISFJC.js";import{a as r}from"./chunk-FTQLQJQV.js";import{createReadStream as pe,existsSync as fe,mkdirSync as xn,promises as ge,readFileSync as yn,statSync as Dt,writeFileSync as In}from"node:fs";import ht from"node:os";import w from"node:path";import{createInterface as he}from"node:readline";import{promises as ut}from"node:fs";import H from"node:path";var Ue=12e4,Xe=15*1024*1024,st=2*1024*1024,Zt=new Map([[".gif","image/gif"],[".jpeg","image/jpeg"],[".jpg","image/jpeg"],[".png","image/png"],[".webp","image/webp"]]),We=new Set(Zt.values()),Ke=new Set(["application/javascript","application/json","application/ld+json","application/sql","application/toml","application/typescript","application/x-httpd-php","application/x-javascript","application/x-sh","application/x-yaml","application/xml","application/yaml"]),Ve=new Set([".c",".cc",".cpp",".css",".csv",".go",".h",".html",".java",".js",".json",".jsx",".log",".md",".mdx",".php",".py",".rb",".rs",".sh",".sql",".toml",".ts",".tsx",".txt",".xml",".yaml",".yml"]);async function ko(t){let e=t.attachments??[];if(e.length===0)return[];let n=H.join(t.attachmentRootDir,v(t.sessionId),v(t.turnId)),o=new Set,s=[];for(let[a,i]of e.entries()){let c={...Qt(i),...i.text?{text:i.text}:{}};if(i.contentsBase64){await ut.mkdir(n,{recursive:!0});let m=Ze(i.relativePath||i.name,o,a+1),u=H.join(n,m);await ut.mkdir(H.dirname(u),{recursive:!0});let h=Buffer.from(i.contentsBase64,"base64"),p=await Kt(t.storageHome,{owner:{domain:"chat_attachment",id:JSON.stringify([t.sessionId,t.turnId,m])},displayName:i.name,mediaType:i.mediaType,bytes:h});await Xt(u,h),c.localPath=p.path,c.storageName=m}s.push(c)}return s}r(ko,"materializeChatAttachments");function Eo(t,e){let n=new Map(e?.materialized.map(o=>[o.id,o])??[]);return(t??[]).map(o=>{let s=Qt(o),a=n.get(o.id),i=U(o.mediaType,a?.storageName??o.name);return e&&s.kind==="image"&&a?.localPath&&a.storageName&&i?{...s,imagePreview:{sessionId:e.sessionId,turnId:e.turnId,attachmentId:o.id,storageName:a.storageName,contentType:i}}:e&&a?.localPath&&a.storageName&&o.sizeBytes<=st&&at(o.mediaType,a.storageName)?{...s,filePreview:{sessionId:e.sessionId,turnId:e.turnId,attachmentId:o.id,storageName:a.storageName,contentType:o.mediaType}}:s})}r(Eo,"chatAttachmentSummaries");function Mo(t){if(!t||t.length===0)return"";let e=["<attachments>",`The user attached ${t.length} file${t.length===1?"":"s"} with this message.`],n=Ue;for(let[o,s]of t.entries()){let a=s.localPath?` Saved locally at: ${s.localPath}`:"";e.push(`${o+1}. ${s.name} (${s.mediaType}, ${Qe(s.sizeBytes)}, ${s.kind}).${a}`);let i=s.text?.trim();if(i&&n>0){let d=i.length>n?`${i.slice(0,Math.max(0,n-34))}
2
+ import{a as vt,c as rt}from"./chunk-PSGGOZFM.js";import{Da as Jt,Ea as Yt,b as V,p as ot,xa as At,ya as Pt,za as qt}from"./chunk-2RNQQNB7.js";import{s as Vt}from"./chunk-EUMXMT3S.js";import{S as Kt,U as St,e as Ut}from"./chunk-MNC4YUDI.js";import{I as Wt}from"./chunk-Z4Z5UOZM.js";import{e as Xt}from"./chunk-FFRFSDBM.js";import{b as nt}from"./chunk-ES2ISFJC.js";import{a as r}from"./chunk-FTQLQJQV.js";import{createReadStream as pe,existsSync as fe,mkdirSync as xn,promises as ge,readFileSync as yn,statSync as Dt,writeFileSync as In}from"node:fs";import ht from"node:os";import w from"node:path";import{createInterface as he}from"node:readline";import{promises as ut}from"node:fs";import H from"node:path";var Ue=12e4,Xe=15*1024*1024,st=2*1024*1024,Zt=new Map([[".gif","image/gif"],[".jpeg","image/jpeg"],[".jpg","image/jpeg"],[".png","image/png"],[".webp","image/webp"]]),We=new Set(Zt.values()),Ke=new Set(["application/javascript","application/json","application/ld+json","application/sql","application/toml","application/typescript","application/x-httpd-php","application/x-javascript","application/x-sh","application/x-yaml","application/xml","application/yaml"]),Ve=new Set([".c",".cc",".cpp",".css",".csv",".go",".h",".html",".java",".js",".json",".jsx",".log",".md",".mdx",".php",".py",".rb",".rs",".sh",".sql",".toml",".ts",".tsx",".txt",".xml",".yaml",".yml"]);async function ko(t){let e=t.attachments??[];if(e.length===0)return[];let n=H.join(t.attachmentRootDir,v(t.sessionId),v(t.turnId)),o=new Set,s=[];for(let[a,i]of e.entries()){let c={...Qt(i),...i.text?{text:i.text}:{}};if(i.contentsBase64){await ut.mkdir(n,{recursive:!0});let m=Ze(i.relativePath||i.name,o,a+1),u=H.join(n,m);await ut.mkdir(H.dirname(u),{recursive:!0});let h=Buffer.from(i.contentsBase64,"base64"),p=await Kt(t.storageHome,{owner:{domain:"chat_attachment",id:JSON.stringify([t.sessionId,t.turnId,m])},displayName:i.name,mediaType:i.mediaType,bytes:h});await Ut(u,h),c.localPath=p.path,c.storageName=m}s.push(c)}return s}r(ko,"materializeChatAttachments");function Eo(t,e){let n=new Map(e?.materialized.map(o=>[o.id,o])??[]);return(t??[]).map(o=>{let s=Qt(o),a=n.get(o.id),i=U(o.mediaType,a?.storageName??o.name);return e&&s.kind==="image"&&a?.localPath&&a.storageName&&i?{...s,imagePreview:{sessionId:e.sessionId,turnId:e.turnId,attachmentId:o.id,storageName:a.storageName,contentType:i}}:e&&a?.localPath&&a.storageName&&o.sizeBytes<=st&&at(o.mediaType,a.storageName)?{...s,filePreview:{sessionId:e.sessionId,turnId:e.turnId,attachmentId:o.id,storageName:a.storageName,contentType:o.mediaType}}:s})}r(Eo,"chatAttachmentSummaries");function Mo(t){if(!t||t.length===0)return"";let e=["<attachments>",`The user attached ${t.length} file${t.length===1?"":"s"} with this message.`],n=Ue;for(let[o,s]of t.entries()){let a=s.localPath?` Saved locally at: ${s.localPath}`:"";e.push(`${o+1}. ${s.name} (${s.mediaType}, ${Qe(s.sizeBytes)}, ${s.kind}).${a}`);let i=s.text?.trim();if(i&&n>0){let d=i.length>n?`${i.slice(0,Math.max(0,n-34))}
3
3
  [attachment text truncated]`:i;e.push("Text content:"),e.push("~~~text"),e.push(d),e.push("~~~"),n-=d.length}}return e.push("</attachments>"),e.join(`
4
4
  `)}r(Mo,"chatAttachmentContext");function No(t,e){let n=t.trim()||"Please review the attached files.",o=e.trim();return o?`${n}
5
5
 
@@ -14,4 +14,4 @@ ${o}`:n}r(No,"formatPromptWithAttachmentContext");function Qt(t){let e=t.lineCou
14
14
  `)).replace(be,`
15
15
  `).replace(Jn,`
16
16
  `).trim());return o.push(...oe({attachmentRootDir:e.attachmentRootDir,mentions:a,offset:o.length,sessionId:e.sessionId,turnId:e.turnId})),o.push(...ao(n.inputImages,i,e,o.length)),n.inputImages.length===0&&o.push(...io(i,e,o.length)),{prompt:d||(o.length>0?"Please review the attached files.":n.text.trim()),attachments:o}}r(eo,"visibleCodexUserContent");function no(t){let e=Yn.exec(t);if(!e)return t;let n=t.slice(e.index+e[0].length),o=Zn.exec(n);return o?n.slice(o.index+o[0].length).trim():t}r(no,"visibleCodexPromptText");function Ee(t){if(typeof t=="string")return{text:t.trim(),inputImages:[]};if(!Array.isArray(t))return{text:"",inputImages:[]};let e=[],n=[];for(let o of t){if(typeof o=="string"){e.push(o);continue}let s=C(o),a=l(s?.text);a&&e.push(a);let i=l(s?.image_url);i&&l(s?.type)==="input_image"&&n.push(i)}return{text:e.filter(Boolean).join(`
17
- `).trim(),inputImages:n}}r(Ee,"codexUserContentParts");function oo(t){return Ee(t).inputImages.length>0}r(oo,"codexContentHasInputImage");function ro(t){return Array.from(t.matchAll(be)).map(e=>({label:e[1]??e[2]??e[3]??e[4]??null,localPath:e[5]??null}))}r(ro,"codexImageReferences");function so(t,e,n){let o=[];for(let s of t.split(/\r?\n/)){let a=qn.exec(s);if(!a)continue;let i=a[1]?.trim(),d=a[2]?.trim(),c=po(a[3],a[4]),m=fo(a[5]);if(!i||!d||c===null||!m)continue;let u=`${e.turnId}_attachment_${n+1}_${o.length+1}`,h=a[6]?.trim()||uo(i),p=co({attachmentId:u,context:e,kind:m,localPath:h,mediaType:d}),f=re({attachmentId:u,attachmentRootDir:e.attachmentRootDir,localPath:h,mediaType:d,name:i,sessionId:e.sessionId,sizeBytes:c});o.push({id:u,name:i,mediaType:d,sizeBytes:c,kind:m,...p?{imagePreview:p}:{},...f})}return o}r(so,"parseCodexAttachmentContext");function ao(t,e,n,o){let s=[];for(let[a,i]of t.entries()){let d=lo(i);if(!d)continue;let c=e[a],m=Ne(c,d.contentType,a),u=`${n.turnId}_input_image_${a+1+o}`,h=Bt({bytes:d.bytes,attachmentId:u,contentType:d.contentType,context:n,name:m});s.push({id:u,name:m,mediaType:d.contentType,sizeBytes:d.bytes.byteLength,kind:"image",...h?{imagePreview:h}:{}})}return s}r(ao,"codexInputImageAttachments");function io(t,e,n){let o=[];for(let[s,a]of t.entries()){let i=a.localPath??null;if(!i)continue;let d=U("",i),c=Me(i);if(!d||!c)continue;let m=Ne(a,d,s),u=`${e.turnId}_image_reference_${s+1+n}`,h=Bt({bytes:c,attachmentId:u,contentType:d,context:e,name:m});o.push({id:u,name:m,mediaType:d,sizeBytes:c.byteLength,kind:"image",...h?{imagePreview:h}:{}})}return o}r(io,"codexImageReferenceAttachments");function co(t){if(t.kind!=="image"||!t.localPath||!t.context.attachmentRootDir)return;let e=w.basename(t.localPath),n=U(t.mediaType,e);if(!n)return;let o=w.resolve(t.localPath),s=w.resolve(t.context.attachmentRootDir,v(t.context.sessionId),v(t.context.turnId));if(o===s||!o.startsWith(`${s}${w.sep}`)){let a=Me(t.localPath);return a?Bt({attachmentId:t.attachmentId,bytes:a,contentType:n,context:t.context,name:e}):void 0}return{sessionId:t.context.sessionId,turnId:t.context.turnId,attachmentId:t.attachmentId,storageName:e,contentType:n}}r(co,"codexHistoryImagePreview");function Bt(t){if(!t.context.attachmentRootDir||t.bytes.byteLength>yt)return;let e=mo(t.attachmentId,t.name,t.contentType),n=w.join(t.context.attachmentRootDir,v(t.context.sessionId),v(t.context.turnId)),o=w.join(n,e);try{xn(n,{recursive:!0}),fe(o)||In(o,t.bytes,{mode:384})}catch{return}return{sessionId:t.context.sessionId,turnId:t.context.turnId,attachmentId:t.attachmentId,storageName:e,contentType:t.contentType}}r(Bt,"materializedCodexHistoryImagePreview");function lo(t){let e=to.exec(t.trim());if(!e)return null;let n=U(e[1],"");if(!n)return null;let o=Buffer.from(e[2].replace(/\s+/g,""),"base64");return o.byteLength===0||o.byteLength>yt?null:{bytes:o,contentType:n}}r(lo,"parseDataImageUrl");function Me(t){try{let e=Dt(t);return!e.isFile()||e.size<=0||e.size>yt?null:yn(t)}catch{return null}}r(Me,"readCodexHistoryImageBytes");function uo(t){return[w.join(ht.homedir(),"Pictures","Screenshots",t),w.join(ht.homedir(),"Pictures",t),w.join(ht.homedir(),"Downloads",t),w.join(ht.homedir(),"Desktop",t)].find(n=>{if(!U("",n))return!1;try{let s=Dt(n);return s.isFile()&&s.size>0&&s.size<=yt}catch{return!1}})}r(uo,"localImagePathByName");function Ne(t,e,n){let o=t?.localPath?w.basename(t.localPath):"";if(o)return o;let s=t?.label?.trim();return s?`${s}${$t(e)}`:`image-${n+1}${$t(e)}`}r(Ne,"imageAttachmentName");function mo(t,e,n){let o=w.extname(e)||$t(n),s=w.basename(e,w.extname(e)).replace(/[^a-zA-Z0-9._ -]+/g,"-").trim()||"image";return`${R(t)}-${s}${o}`}r(mo,"uniqueCodexHistoryImageStorageName");function $t(t){return t==="image/jpeg"?".jpg":t==="image/gif"?".gif":t==="image/webp"?".webp":".png"}r($t,"imageExtension");function po(t,e){if(!t||!e)return null;let n=Number.parseFloat(t);if(!Number.isFinite(n)||n<0)return null;let o=e.toUpperCase(),a={B:1,KB:1024,MB:1024**2,GB:1024**3,TB:1024**4}[o];return a?Math.round(n*a):null}r(po,"parseAttachmentByteSize");function fo(t){return t==="image"||t==="text"||t==="file"?t:null}r(fo,"attachmentKind");function go(){return jt("OPENPOND_CODEX_HISTORY_LIMIT",_n)}r(go,"metadataLimit");function ho(){return jt("OPENPOND_CODEX_HISTORY_EVENT_LIMIT",xe)}r(ho,"eventLimit");function xo(){return jt("OPENPOND_CODEX_HISTORY_THREAD_TAIL_BYTES",wn)}r(xo,"threadTailBytes");function jt(t,e){let n=process.env[t],o=n?Number.parseInt(n,10):NaN;return Number.isFinite(o)&&o>0?o:e}r(jt,"positiveIntegerEnv");import{createHash as $e}from"node:crypto";import{createHash as yo}from"node:crypto";function Tt(t){return t.provider==="openpond"?t.id:t.provider==="codex"?t.codexThreadId:t.nativeAgent?.sessionId??null}r(Tt,"localManagedSessionId");function gr(t){return Ut(t)||["openpond","codex","claude-code","opencode","grok-build"].includes(t)}r(gr,"localManagedProviderSupported");function He(t,e){return yo("sha256").update(JSON.stringify({id:t.id,provider:t.provider,managedSessionId:Tt(t),nativeAgent:t.nativeAgent??null,cwd:t.cwd,nativeHistoryProjection:t.metadata?.nativeHistoryProjection===!0,nativeResumeAvailable:t.metadata?.nativeResumeAvailable===!0,nativeBranch:t.metadata?.nativeBranch??null,workspaceKind:t.workspaceKind??null,workspaceId:t.workspaceId??null,localProjectId:t.localProjectId??null,latestTurnId:e})).digest("hex")}r(He,"localManagedTargetRevision");function De(t){return $e("sha256").update(V("POST","/ponder/desktop/catalog",t)).digest("hex")}r(De,"localSessionIdentityHash");function Ct(t,e){return De({managedRevision:He(t,e),modelRef:t.modelRef??null,profile:t.currentProfile??null,profileWorkflowBinding:t.profileWorkflowBinding??null,profileComponentBinding:t.profileComponentBinding??null,experience:t.experience,owner:t.metadata?.ponderLocalOwner??null,projectRevision:t.metadata?.ponderWorkspaceRevision??null,commandAccessMode:t.openPondCommandAccessMode})}r(Ct,"localSessionOwnershipRevision");function zt(t){return De({provider:t.provider,modelRef:t.modelRef??null,experience:t.experience,profile:t.currentProfile??null,workflow:t.profileWorkflowBinding??null,component:t.profileComponentBinding??null,cwd:t.cwd,workspaceKind:t.workspaceKind??null,workspaceId:t.workspaceId??null,localProjectId:t.localProjectId??null,cloudProjectId:t.cloudProjectId??null,owner:t.metadata?.ponderLocalOwner??null,projectRevision:t.metadata?.ponderWorkspaceRevision??null,commandAccessMode:t.openPondCommandAccessMode})}r(zt,"localSessionConfigurationRevision");function vr(t){return t.metadata?.ponderLocalOwner===void 0&&!t.archived&&!t.systemKind&&!t.hiddenFromDefaultSidebar&&t.status!=="closed"&&!t.metadata?.nativeHistoryProjection&&!Ie(t.id)&&!["sandbox","sandbox_template","sandbox_app"].includes(t.workspaceKind??"")}r(vr,"localSessionMayResolveOwnership");function Io(t){return $e("sha256").update(JSON.stringify({provider:t.provider,modelRef:t.modelRef,profile:t.currentProfile,workflow:t.profileWorkflowBinding,component:t.profileComponentBinding,cwd:t.cwd,workspaceKind:t.workspaceKind,workspaceId:t.workspaceId,localProjectId:t.localProjectId,owner:t.metadata?.ponderLocalOwner,commandAccessMode:t.openPondCommandAccessMode})).digest("hex")}r(Io,"remoteExecutionRevision");function _o(t){return{revision:Io(t),managedSessionId:Tt(t)}}r(_o,"remoteExecutionSnapshot");function Rr(t,e){if(!t.payload.remoteDevice)return;let n=t.payload.remoteDeviceExecution,o=_o(e);if(!n||n.revision!==o.revision||n.managedSessionId&&n.managedSessionId!==o.managedSessionId)throw new Error("The local task's provider, Profile, workspace or original agent changed before the remote instruction could run.")}r(Rr,"assertRemoteExecution");import{createHash as To}from"node:crypto";function Nr(t){return{ponderDesktopReservation:t}}r(Nr,"localSessionReservationMetadata");function Fe(t){let e=t.metadata?.ponderDesktopReservation;if(!e||typeof e!="object"||Array.isArray(e))return null;let n=e;return typeof n.operationId!="string"||typeof n.payloadHash!="string"||typeof n.creationHash!="string"?null:n}r(Fe,"readLocalSessionReservation");function Hr(t){return To("sha256").update(V("POST","/local/session",t)).digest("hex")}r(Hr,"localSessionCreationHash");import{createHash as Co}from"node:crypto";function Oe(t){return Co("sha256").update(V("POST","/ponder/desktop/catalog",t)).digest("hex")}r(Oe,"hash");function wo(t){return t?Oe(t):null}r(wo,"ponderDesktopProfileSelectionId");async function Wr(t){let e=[];for(let n of t.sessions){if(!rt(n,t.owner)||n.archived||n.systemKind||n.experience==="development"||n.hiddenFromDefaultSidebar||n.status==="closed"||["sandbox","sandbox_template","sandbox_app"].includes(n.workspaceKind??""))continue;let o=await t.inspect(n.id),s=n.localProjectId??n.workspaceId??n.cwd;if(!s)continue;let a=wo(n.currentProfile);if(e.length>=Pt)throw new Error("ponder_desktop_catalog_resource_limit_exceeded");e.push(At.parse({id:n.id,kind:"session",title:n.title||"Local task",providerId:n.provider,modelId:n.modelRef?.modelId??null,experience:n.experience,workspaceId:s,workspaceLabel:n.workspaceName??n.cwd??s,profileSelectionId:a,revision:Ct(n,o.latestTurnId),available:o.canSendFollowup,unavailableReason:o.unavailableReason,canMessage:o.canSendFollowup,canSteer:o.canSteer,canStop:o.activeTurnId!==null&&o.managedSessionId!==null,activeTurnId:o.activeTurnId}))}for(let n of t.starters){let o=At.parse(n);if(o.kind!=="starter")throw new Error("ponder_desktop_starter_kind_invalid");if(e.length>=Pt)throw new Error("ponder_desktop_catalog_resource_limit_exceeded");e.push(o)}if(e.sort((n,o)=>n.id.localeCompare(o.id)),new Set(e.map(n=>n.id)).size!==e.length)throw new Error("ponder_desktop_catalog_duplicate_target");return qt.parse({targets:e,capturedAt:new Date().toISOString(),revision:Oe(e)})}r(Wr,"capturePonderDesktopCatalog");import{createHash as Gt}from"node:crypto";function Le(t,e){return Gt("sha256").update(V("POST",t,e)).digest("hex")}r(Le,"payloadHash");function Be(t){let e=`ponder-desktop-op:${Gt("sha256").update(JSON.stringify([t.origin.scope.bindingId,t.origin.originChatTurnId,Le("/ponder/desktop/intent",t.intent),...t.origin.humanControlId?[t.origin.humanControlId]:[]])).digest("hex")}`;if(t.id!==e||t.payloadHash!==Le("/ponder/desktop/operation",{origin:t.origin,intent:t.intent,target:t.target}))throw new Error("ponder_desktop_operation_identity_invalid")}r(Be,"assertPonderDesktopOperationIdentity");function je(t){return`ponder-desktop-${Gt("sha256").update(t).digest("hex")}`}r(je,"ponderDesktopReservedSessionId");var ze=nt.object({operation:Yt,sessionRevision:nt.string().regex(/^[a-f0-9]{64}$/),executionRevision:nt.string().regex(/^[a-f0-9]{64}$/),managedSessionId:nt.string().min(1).nullable()}).strict();function So(t,e){if(t.senderKind!=="ponder")return;let n=ze.parse(t.payload.ponderDesktop),o=e.provider==="codex"?e.codexThreadId:e.nativeAgent?.sessionId??null;if(n.executionRevision!==zt(e)||n.managedSessionId!==null&&n.managedSessionId!==o)throw new Error("The local task's model, Profile, workspace or original agent changed before the queued instruction could run.")}r(So,"assertPonderDesktopExecution");function Ao(t,e,n,o,s){Be(e);let a=e.intent,i=t.get("SELECT payload FROM ponder_desktop_authority WHERE id = 1"),d=i?Jt.parse(JSON.parse(i.payload)):null;if(!d||d.state!=="attached"||Date.parse(d.leaseExpiresAt)<=Date.now()||d.epoch!==e.claimedEpoch||d.authorizationRevision!==e.origin.authorizationRevision||!Object.entries(e.origin.scope).every(([u,h])=>d.scope[u]===h))throw new Error("ponder_desktop_local_authority_changed");if(e.state!=="dispatching"||!e.claimId)throw new Error("ponder_desktop_input_identity_invalid");let c=vt.parse(n.metadata?.ponderLocalOwner),m=e.origin.scope;if(!rt(n,{...c,installationId:m.installationId,profileId:m.profileId,ownerUserId:m.ownerUserId,teamId:m.teamId}))throw new Error("ponder_desktop_input_owner_changed");if(a.action!=="create"&&a.targetId!==n.id)throw new Error("ponder_desktop_input_target_changed");if(s!==Ct(n,o)||a.action!=="create"&&s!==a.targetRevision)throw new Error("ponder_desktop_input_target_changed");if(a.action==="create"){if(n.id!==je(e.id))throw new Error("ponder_desktop_input_reservation_invalid");let u=Fe(n);if(!u||typeof u!="object"||u.operationId!==e.id||u.payloadHash!==e.payloadHash)throw new Error("ponder_desktop_input_reservation_invalid")}}r(Ao,"assertPonderDesktopRecipient");function as(t,e,n,o){if(e.senderKind!=="ponder"&&e.payload.ponderDesktop===void 0)return;if(e.senderKind!=="ponder"||e.senderSessionId!==null)throw new Error("ponder_desktop_input_authority_invalid");let{operation:s,sessionRevision:a}=ze.parse(e.payload.ponderDesktop),i=s.intent;if(i.action==="stop"||i.action==="observe"||i.action==="inspect"||e.id!==`ponder-input:${s.id}`||e.idempotencyKey!==s.id||e.body!==i.prompt||e.replyTo!==null||e.kind!==(i.action==="steer"?"steer":"queued")||e.expectedTurnId!==(i.action==="steer"?i.expectedTurnId:null))throw new Error("ponder_desktop_input_identity_invalid");Ao(t,s,n,o,a),So(e,n)}r(as,"assertPonderDesktopInput");export{Nr as a,Fe as b,Hr as c,Tt as d,gr as e,He as f,ko as g,Eo as h,Mo as i,No as j,Ho as k,$o as l,vn as m,Ie as n,ir as o,dr as p,cr as q,lr as r,ur as s,Ct as t,zt as u,vr as v,_o as w,Rr as x,wo as y,Wr as z,Be as A,je as B,ze as C,So as D,Ao as E,as as F};
17
+ `).trim(),inputImages:n}}r(Ee,"codexUserContentParts");function oo(t){return Ee(t).inputImages.length>0}r(oo,"codexContentHasInputImage");function ro(t){return Array.from(t.matchAll(be)).map(e=>({label:e[1]??e[2]??e[3]??e[4]??null,localPath:e[5]??null}))}r(ro,"codexImageReferences");function so(t,e,n){let o=[];for(let s of t.split(/\r?\n/)){let a=qn.exec(s);if(!a)continue;let i=a[1]?.trim(),d=a[2]?.trim(),c=po(a[3],a[4]),m=fo(a[5]);if(!i||!d||c===null||!m)continue;let u=`${e.turnId}_attachment_${n+1}_${o.length+1}`,h=a[6]?.trim()||uo(i),p=co({attachmentId:u,context:e,kind:m,localPath:h,mediaType:d}),f=re({attachmentId:u,attachmentRootDir:e.attachmentRootDir,localPath:h,mediaType:d,name:i,sessionId:e.sessionId,sizeBytes:c});o.push({id:u,name:i,mediaType:d,sizeBytes:c,kind:m,...p?{imagePreview:p}:{},...f})}return o}r(so,"parseCodexAttachmentContext");function ao(t,e,n,o){let s=[];for(let[a,i]of t.entries()){let d=lo(i);if(!d)continue;let c=e[a],m=Ne(c,d.contentType,a),u=`${n.turnId}_input_image_${a+1+o}`,h=Bt({bytes:d.bytes,attachmentId:u,contentType:d.contentType,context:n,name:m});s.push({id:u,name:m,mediaType:d.contentType,sizeBytes:d.bytes.byteLength,kind:"image",...h?{imagePreview:h}:{}})}return s}r(ao,"codexInputImageAttachments");function io(t,e,n){let o=[];for(let[s,a]of t.entries()){let i=a.localPath??null;if(!i)continue;let d=U("",i),c=Me(i);if(!d||!c)continue;let m=Ne(a,d,s),u=`${e.turnId}_image_reference_${s+1+n}`,h=Bt({bytes:c,attachmentId:u,contentType:d,context:e,name:m});o.push({id:u,name:m,mediaType:d,sizeBytes:c.byteLength,kind:"image",...h?{imagePreview:h}:{}})}return o}r(io,"codexImageReferenceAttachments");function co(t){if(t.kind!=="image"||!t.localPath||!t.context.attachmentRootDir)return;let e=w.basename(t.localPath),n=U(t.mediaType,e);if(!n)return;let o=w.resolve(t.localPath),s=w.resolve(t.context.attachmentRootDir,v(t.context.sessionId),v(t.context.turnId));if(o===s||!o.startsWith(`${s}${w.sep}`)){let a=Me(t.localPath);return a?Bt({attachmentId:t.attachmentId,bytes:a,contentType:n,context:t.context,name:e}):void 0}return{sessionId:t.context.sessionId,turnId:t.context.turnId,attachmentId:t.attachmentId,storageName:e,contentType:n}}r(co,"codexHistoryImagePreview");function Bt(t){if(!t.context.attachmentRootDir||t.bytes.byteLength>yt)return;let e=mo(t.attachmentId,t.name,t.contentType),n=w.join(t.context.attachmentRootDir,v(t.context.sessionId),v(t.context.turnId)),o=w.join(n,e);try{xn(n,{recursive:!0}),fe(o)||In(o,t.bytes,{mode:384})}catch{return}return{sessionId:t.context.sessionId,turnId:t.context.turnId,attachmentId:t.attachmentId,storageName:e,contentType:t.contentType}}r(Bt,"materializedCodexHistoryImagePreview");function lo(t){let e=to.exec(t.trim());if(!e)return null;let n=U(e[1],"");if(!n)return null;let o=Buffer.from(e[2].replace(/\s+/g,""),"base64");return o.byteLength===0||o.byteLength>yt?null:{bytes:o,contentType:n}}r(lo,"parseDataImageUrl");function Me(t){try{let e=Dt(t);return!e.isFile()||e.size<=0||e.size>yt?null:yn(t)}catch{return null}}r(Me,"readCodexHistoryImageBytes");function uo(t){return[w.join(ht.homedir(),"Pictures","Screenshots",t),w.join(ht.homedir(),"Pictures",t),w.join(ht.homedir(),"Downloads",t),w.join(ht.homedir(),"Desktop",t)].find(n=>{if(!U("",n))return!1;try{let s=Dt(n);return s.isFile()&&s.size>0&&s.size<=yt}catch{return!1}})}r(uo,"localImagePathByName");function Ne(t,e,n){let o=t?.localPath?w.basename(t.localPath):"";if(o)return o;let s=t?.label?.trim();return s?`${s}${$t(e)}`:`image-${n+1}${$t(e)}`}r(Ne,"imageAttachmentName");function mo(t,e,n){let o=w.extname(e)||$t(n),s=w.basename(e,w.extname(e)).replace(/[^a-zA-Z0-9._ -]+/g,"-").trim()||"image";return`${R(t)}-${s}${o}`}r(mo,"uniqueCodexHistoryImageStorageName");function $t(t){return t==="image/jpeg"?".jpg":t==="image/gif"?".gif":t==="image/webp"?".webp":".png"}r($t,"imageExtension");function po(t,e){if(!t||!e)return null;let n=Number.parseFloat(t);if(!Number.isFinite(n)||n<0)return null;let o=e.toUpperCase(),a={B:1,KB:1024,MB:1024**2,GB:1024**3,TB:1024**4}[o];return a?Math.round(n*a):null}r(po,"parseAttachmentByteSize");function fo(t){return t==="image"||t==="text"||t==="file"?t:null}r(fo,"attachmentKind");function go(){return jt("OPENPOND_CODEX_HISTORY_LIMIT",_n)}r(go,"metadataLimit");function ho(){return jt("OPENPOND_CODEX_HISTORY_EVENT_LIMIT",xe)}r(ho,"eventLimit");function xo(){return jt("OPENPOND_CODEX_HISTORY_THREAD_TAIL_BYTES",wn)}r(xo,"threadTailBytes");function jt(t,e){let n=process.env[t],o=n?Number.parseInt(n,10):NaN;return Number.isFinite(o)&&o>0?o:e}r(jt,"positiveIntegerEnv");import{createHash as $e}from"node:crypto";import{createHash as yo}from"node:crypto";function Tt(t){return t.provider==="openpond"?t.id:t.provider==="codex"?t.codexThreadId:t.nativeAgent?.sessionId??null}r(Tt,"localManagedSessionId");function gr(t){return Xt(t)||["openpond","codex","claude-code","opencode","grok-build"].includes(t)}r(gr,"localManagedProviderSupported");function He(t,e){return yo("sha256").update(JSON.stringify({id:t.id,provider:t.provider,managedSessionId:Tt(t),nativeAgent:t.nativeAgent??null,cwd:t.cwd,nativeHistoryProjection:t.metadata?.nativeHistoryProjection===!0,nativeResumeAvailable:t.metadata?.nativeResumeAvailable===!0,nativeBranch:t.metadata?.nativeBranch??null,workspaceKind:t.workspaceKind??null,workspaceId:t.workspaceId??null,localProjectId:t.localProjectId??null,latestTurnId:e})).digest("hex")}r(He,"localManagedTargetRevision");function De(t){return $e("sha256").update(V("POST","/ponder/desktop/catalog",t)).digest("hex")}r(De,"localSessionIdentityHash");function Ct(t,e){return De({managedRevision:He(t,e),modelRef:t.modelRef??null,profile:t.currentProfile??null,profileWorkflowBinding:t.profileWorkflowBinding??null,profileComponentBinding:t.profileComponentBinding??null,experience:t.experience,owner:t.metadata?.ponderLocalOwner??null,projectRevision:t.metadata?.ponderWorkspaceRevision??null,commandAccessMode:t.openPondCommandAccessMode})}r(Ct,"localSessionOwnershipRevision");function zt(t){return De({provider:t.provider,modelRef:t.modelRef??null,experience:t.experience,profile:t.currentProfile??null,workflow:t.profileWorkflowBinding??null,component:t.profileComponentBinding??null,cwd:t.cwd,workspaceKind:t.workspaceKind??null,workspaceId:t.workspaceId??null,localProjectId:t.localProjectId??null,cloudProjectId:t.cloudProjectId??null,owner:t.metadata?.ponderLocalOwner??null,projectRevision:t.metadata?.ponderWorkspaceRevision??null,commandAccessMode:t.openPondCommandAccessMode})}r(zt,"localSessionConfigurationRevision");function vr(t){return t.metadata?.ponderLocalOwner===void 0&&!t.archived&&!t.systemKind&&!t.hiddenFromDefaultSidebar&&t.status!=="closed"&&!t.metadata?.nativeHistoryProjection&&!Ie(t.id)&&!["sandbox","sandbox_template","sandbox_app"].includes(t.workspaceKind??"")}r(vr,"localSessionMayResolveOwnership");function Io(t){return $e("sha256").update(JSON.stringify({provider:t.provider,modelRef:t.modelRef,profile:t.currentProfile,workflow:t.profileWorkflowBinding,component:t.profileComponentBinding,cwd:t.cwd,workspaceKind:t.workspaceKind,workspaceId:t.workspaceId,localProjectId:t.localProjectId,owner:t.metadata?.ponderLocalOwner,commandAccessMode:t.openPondCommandAccessMode})).digest("hex")}r(Io,"remoteExecutionRevision");function _o(t){return{revision:Io(t),managedSessionId:Tt(t)}}r(_o,"remoteExecutionSnapshot");function Rr(t,e){if(!t.payload.remoteDevice)return;let n=t.payload.remoteDeviceExecution,o=_o(e);if(!n||n.revision!==o.revision||n.managedSessionId&&n.managedSessionId!==o.managedSessionId)throw new Error("The local task's provider, Profile, workspace or original agent changed before the remote instruction could run.")}r(Rr,"assertRemoteExecution");import{createHash as To}from"node:crypto";function Nr(t){return{ponderDesktopReservation:t}}r(Nr,"localSessionReservationMetadata");function Fe(t){let e=t.metadata?.ponderDesktopReservation;if(!e||typeof e!="object"||Array.isArray(e))return null;let n=e;return typeof n.operationId!="string"||typeof n.payloadHash!="string"||typeof n.creationHash!="string"?null:n}r(Fe,"readLocalSessionReservation");function Hr(t){return To("sha256").update(V("POST","/local/session",t)).digest("hex")}r(Hr,"localSessionCreationHash");import{createHash as Co}from"node:crypto";function Oe(t){return Co("sha256").update(V("POST","/ponder/desktop/catalog",t)).digest("hex")}r(Oe,"hash");function wo(t){return t?Oe(t):null}r(wo,"ponderDesktopProfileSelectionId");async function Wr(t){let e=[];for(let n of t.sessions){if(!rt(n,t.owner)||n.archived||n.systemKind||n.experience==="development"||n.hiddenFromDefaultSidebar||n.status==="closed"||["sandbox","sandbox_template","sandbox_app"].includes(n.workspaceKind??""))continue;let o=await t.inspect(n.id),s=n.localProjectId??n.workspaceId??n.cwd;if(!s)continue;let a=wo(n.currentProfile);if(e.length>=Pt)throw new Error("ponder_desktop_catalog_resource_limit_exceeded");e.push(At.parse({id:n.id,kind:"session",title:n.title||"Local task",providerId:n.provider,modelId:n.modelRef?.modelId??null,experience:n.experience,workspaceId:s,workspaceLabel:n.workspaceName??n.cwd??s,profileSelectionId:a,revision:Ct(n,o.latestTurnId),available:o.canSendFollowup,unavailableReason:o.unavailableReason,canMessage:o.canSendFollowup,canSteer:o.canSteer,canStop:o.activeTurnId!==null&&o.managedSessionId!==null,activeTurnId:o.activeTurnId}))}for(let n of t.starters){let o=At.parse(n);if(o.kind!=="starter")throw new Error("ponder_desktop_starter_kind_invalid");if(e.length>=Pt)throw new Error("ponder_desktop_catalog_resource_limit_exceeded");e.push(o)}if(e.sort((n,o)=>n.id.localeCompare(o.id)),new Set(e.map(n=>n.id)).size!==e.length)throw new Error("ponder_desktop_catalog_duplicate_target");return qt.parse({targets:e,capturedAt:new Date().toISOString(),revision:Oe(e)})}r(Wr,"capturePonderDesktopCatalog");import{createHash as Gt}from"node:crypto";function Le(t,e){return Gt("sha256").update(V("POST",t,e)).digest("hex")}r(Le,"payloadHash");function Be(t){let e=`ponder-desktop-op:${Gt("sha256").update(JSON.stringify([t.origin.scope.bindingId,t.origin.originChatTurnId,Le("/ponder/desktop/intent",t.intent),...t.origin.humanControlId?[t.origin.humanControlId]:[]])).digest("hex")}`;if(t.id!==e||t.payloadHash!==Le("/ponder/desktop/operation",{origin:t.origin,intent:t.intent,target:t.target}))throw new Error("ponder_desktop_operation_identity_invalid")}r(Be,"assertPonderDesktopOperationIdentity");function je(t){return`ponder-desktop-${Gt("sha256").update(t).digest("hex")}`}r(je,"ponderDesktopReservedSessionId");var ze=nt.object({operation:Yt,sessionRevision:nt.string().regex(/^[a-f0-9]{64}$/),executionRevision:nt.string().regex(/^[a-f0-9]{64}$/),managedSessionId:nt.string().min(1).nullable()}).strict();function So(t,e){if(t.senderKind!=="ponder")return;let n=ze.parse(t.payload.ponderDesktop),o=e.provider==="codex"?e.codexThreadId:e.nativeAgent?.sessionId??null;if(n.executionRevision!==zt(e)||n.managedSessionId!==null&&n.managedSessionId!==o)throw new Error("The local task's model, Profile, workspace or original agent changed before the queued instruction could run.")}r(So,"assertPonderDesktopExecution");function Ao(t,e,n,o,s){Be(e);let a=e.intent,i=t.get("SELECT payload FROM ponder_desktop_authority WHERE id = 1"),d=i?Jt.parse(JSON.parse(i.payload)):null;if(!d||d.state!=="attached"||Date.parse(d.leaseExpiresAt)<=Date.now()||d.epoch!==e.claimedEpoch||d.authorizationRevision!==e.origin.authorizationRevision||!Object.entries(e.origin.scope).every(([u,h])=>d.scope[u]===h))throw new Error("ponder_desktop_local_authority_changed");if(e.state!=="dispatching"||!e.claimId)throw new Error("ponder_desktop_input_identity_invalid");let c=vt.parse(n.metadata?.ponderLocalOwner),m=e.origin.scope;if(!rt(n,{...c,installationId:m.installationId,profileId:m.profileId,ownerUserId:m.ownerUserId,teamId:m.teamId}))throw new Error("ponder_desktop_input_owner_changed");if(a.action!=="create"&&a.targetId!==n.id)throw new Error("ponder_desktop_input_target_changed");if(s!==Ct(n,o)||a.action!=="create"&&s!==a.targetRevision)throw new Error("ponder_desktop_input_target_changed");if(a.action==="create"){if(n.id!==je(e.id))throw new Error("ponder_desktop_input_reservation_invalid");let u=Fe(n);if(!u||typeof u!="object"||u.operationId!==e.id||u.payloadHash!==e.payloadHash)throw new Error("ponder_desktop_input_reservation_invalid")}}r(Ao,"assertPonderDesktopRecipient");function as(t,e,n,o){if(e.senderKind!=="ponder"&&e.payload.ponderDesktop===void 0)return;if(e.senderKind!=="ponder"||e.senderSessionId!==null)throw new Error("ponder_desktop_input_authority_invalid");let{operation:s,sessionRevision:a}=ze.parse(e.payload.ponderDesktop),i=s.intent;if(i.action==="stop"||i.action==="observe"||i.action==="inspect"||e.id!==`ponder-input:${s.id}`||e.idempotencyKey!==s.id||e.body!==i.prompt||e.replyTo!==null||e.kind!==(i.action==="steer"?"steer":"queued")||e.expectedTurnId!==(i.action==="steer"?i.expectedTurnId:null))throw new Error("ponder_desktop_input_identity_invalid");Ao(t,s,n,o,a),So(e,n)}r(as,"assertPonderDesktopInput");export{Nr as a,Fe as b,Hr as c,Tt as d,gr as e,He as f,ko as g,Eo as h,Mo as i,No as j,Ho as k,$o as l,vn as m,Ie as n,ir as o,dr as p,cr as q,lr as r,ur as s,Ct as t,zt as u,vr as v,_o as w,Rr as x,wo as y,Wr as z,Be as A,je as B,ze as C,So as D,Ao as E,as as F};
@@ -1,3 +1,3 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{a as F,b as H,d as _}from"./chunk-XEOEKFG6.js";import{t as j}from"./chunk-BLXEAZCQ.js";import{a as R}from"./chunk-UKMA4R6X.js";import{b as P,s as C,t as N,z as x}from"./chunk-XW6HGSIT.js";import{g as U}from"./chunk-KG325WTN.js";import{r as D}from"./chunk-WJ43MJ3F.js";import{b as I,c as T}from"./chunk-YR5ID2SS.js";import{a as n}from"./chunk-FTQLQJQV.js";import{randomUUID as Pt}from"node:crypto";var ot="https://api.openpond.ai";async function K(t){let e=await R(),o=e.token?.trim();if(!o)throw new Error("OpenPond account API key is required to manage organizations.");let r=rt(e);if(t.type==="list")return m(r,o,"/v1/organizations");if(t.type==="invitations_list")return m(r,o,"/v1/teams/invitations");if(t.type==="invitation_accept"||t.type==="invitation_decline"){let i=t.type==="invitation_accept"?"accept":"decline";return m(r,o,`/v1/teams/invitations/${i}`,{method:"POST",body:JSON.stringify(t.payload??{})})}if(t.type==="create")return m(r,o,"/v1/organizations",{method:"POST",body:JSON.stringify(t.payload??{})});if(t.type==="get")return m(r,o,`/v1/organizations/${encodeURIComponent(t.slug)}`);if(t.type==="update")return m(r,o,`/v1/organizations/${encodeURIComponent(t.slug)}`,{method:"PATCH",body:JSON.stringify(t.payload??{})});if(t.type==="members")return m(r,o,`/v1/organizations/${encodeURIComponent(t.slug)}/members`);if(t.type==="member_upsert")return m(r,o,`/v1/organizations/${encodeURIComponent(t.slug)}/members`,{method:"POST",body:JSON.stringify(t.payload??{})});if(t.type==="mcp_get")return m(r,o,`/v1/organizations/${encodeURIComponent(t.slug)}/mcp-server`);if(t.type==="mcp_generate")return m(r,o,`/v1/organizations/${encodeURIComponent(t.slug)}/mcp-server`,{method:"POST",body:JSON.stringify(t.payload??{})});if(t.type==="mcp_rotate")return m(r,o,`/v1/organizations/${encodeURIComponent(t.slug)}/mcp-server/rotate`,{method:"POST"});if(t.type==="mcp_disable")return m(r,o,`/v1/organizations/${encodeURIComponent(t.slug)}/mcp-server/disable`,{method:"POST"});if(t.type==="mcp_enable")return m(r,o,`/v1/organizations/${encodeURIComponent(t.slug)}/mcp-server/enable`,{method:"POST"});throw new Error(`Unsupported organization action: ${t.type}`)}n(K,"organizationRequestPayload");async function m(t,e,o,r={}){let i=await I(t,e,o,r),a=await i.json().catch(()=>({}));if(!i.ok){let l=typeof a.message=="string"?a.message:typeof a.error=="string"?a.error:i.statusText;throw new Error(l)}return a}n(m,"openPondApiRequest");function rt(t){return S(process.env.OPENPOND_API_URL)??S(t.apiBaseUrl)??S(t.account?.apiBaseUrl)??S(t.config.apiBaseUrl)??M(t.account?.baseUrl)??M(t.config.baseUrl)??ot}n(rt,"resolveApiBaseUrl");function M(t){let e=S(t);if(!e)return null;try{let o=new URL(e);if(o.hostname==="openpond.ai")return"https://api.openpond.ai";if(!o.hostname.startsWith("api.")&&o.hostname.endsWith(".openpond.ai"))return o.hostname=`api.${o.hostname}`,o.origin}catch{return e}return e}n(M,"normalizeOpenPondWebBaseAsApi");function S(t){let e=t?.trim();return e?e.replace(/\/$/,""):null}n(S,"normalizeOptionalUrl");import{promises as y}from"node:fs";import nt from"node:os";import g from"node:path";var at=5e3,it=32*1024*1024,st=250*1024*1024;async function J(t){let e=await O(t),o=await z(e.rootPath),r=[];for(let i of e.files)r.push({path:i.path,type:"file",contentsBase64:(await y.readFile(i.absolutePath)).toString("base64")});return{rootPath:e.rootPath,headCommit:o,entries:r,totalBytes:e.totalBytes,skipped:e.skipped}}n(J,"collectLocalProjectSourceUploadBundle");async function Ft(t){let e=await O(t),o=await z(e.rootPath);return{rootPath:e.rootPath,headCommit:o,fileCount:e.files.length,byteCount:e.totalBytes,skippedCount:e.skipped.length,initializedEmptyProject:e.files.length===0,skipped:e.skipped}}n(Ft,"previewLocalProjectSourceUpload");async function W(t,e){let o=pt(e.branch),r=await O(t),i=await z(r.rootPath);if(t.repoPath&&r.files.length>0&&await ut(r.rootPath))try{return await G({cwd:r.rootPath,repoUrl:e.repoUrl,apiKey:e.apiKey,branch:o}),{rootPath:r.rootPath,branch:o,headCommit:i,fileCount:r.files.length,byteCount:r.totalBytes,skipped:r.skipped,initializedEmptyProject:!1,transport:"git_head"}}catch(c){if(!yt(c))throw c}let a=await y.mkdtemp(g.join(nt.tmpdir(),"openpond-cloud-source-")),l=r.files.length===0;try{return l?await y.writeFile(g.join(a,"README.md"),e.fallbackReadme,"utf8"):await mt(r,a),await gt({cwd:a,branch:o,commitMessage:e.commitMessage,repoUrl:e.repoUrl,apiKey:e.apiKey}),await G({cwd:a,repoUrl:e.repoUrl,apiKey:e.apiKey,branch:o}),{rootPath:r.rootPath,branch:o,headCommit:i,fileCount:l?1:r.files.length,byteCount:l?Buffer.byteLength(e.fallbackReadme,"utf8"):r.totalBytes,skipped:r.skipped,initializedEmptyProject:l,transport:"snapshot"}}finally{await y.rm(a,{recursive:!0,force:!0})}}n(W,"pushLocalProjectSourceToGit");async function O(t){let e=t.repoPath??t.workspacePath,o=t.repoPath?await dt(e):await ct(e),r=[],i=[],a=0;for(let l of o){if(r.length>=at){i.push({path:l,reason:"total_limit"});continue}let c=C(l);if(!c){i.push({path:l,reason:"invalid_path"});continue}if(N(c)&&!q(c)){i.push({path:c,reason:"generated"});continue}let d=g.resolve(e,c),u=g.resolve(e);if(d!==u&&!d.startsWith(`${u}${g.sep}`)){i.push({path:c,reason:"invalid_path"});continue}try{let f=await y.lstat(d);if(!f.isFile()){i.push({path:c,reason:"not_file"});continue}if(f.size>it){i.push({path:c,reason:"too_large",sizeBytes:f.size});continue}if(a+f.size>st){i.push({path:c,reason:"total_limit",sizeBytes:f.size});continue}r.push({path:c,absolutePath:d,sizeBytes:f.size}),a+=f.size}catch{i.push({path:c,reason:"read_error"})}}return{rootPath:e,files:r,totalBytes:a,skipped:i}}n(O,"selectLocalProjectSourceFiles");async function ct(t){let e=await x(t),o=await lt(t);return Array.from(new Set([...e,...o])).sort((r,i)=>r.localeCompare(i))}n(ct,"listLocalProjectSourceUploadFiles");async function lt(t){let e=[],o=g.join(t,".openpond","skills");async function r(i){let a=g.join(t,i),l;try{l=await y.readdir(a,{withFileTypes:!0})}catch{return}l.sort((c,d)=>c.name.localeCompare(d.name));for(let c of l){let d=g.join(i,c.name).replace(/\\/g,"/"),u=C(d);if(u){if(c.isDirectory()){await r(u);continue}c.isFile()&&q(u)&&e.push(u)}}}return n(r,"visit"),await r(g.relative(t,o).replace(/\\/g,"/")),e}n(lt,"listGeneratedSkillSourceUploadFiles");function q(t){let e=C(t);if(!e)return!1;let o=e.split("/"),r=o.indexOf(".openpond");return r>=0&&o[r+1]==="skills"&&o.length>r+3}n(q,"isAllowedGeneratedSourceUploadPath");async function dt(t){let e=await P("git",["ls-files","-z","--cached","--others","--exclude-standard"],t);return e.code!==0?x(t):Array.from(new Set(e.stdout.split("\0").map(o=>o.trim()).filter(Boolean))).sort((o,r)=>o.localeCompare(r))}n(dt,"gitVisibleProjectFiles");function pt(t){let e=t.trim()||"main";if(e.length>120||e.startsWith("/")||e.endsWith("/")||e.includes("..")||!/^[A-Za-z0-9._/-]+$/.test(e))throw new Error("Cloud source branch contains unsupported characters.");return e}n(pt,"normalizeGitBranchName");async function ut(t){if((await P("git",["rev-parse","--verify","HEAD"],t)).code!==0)return!1;let o=await P("git",["status","--porcelain=v1"],t);return o.code===0&&o.stdout.trim().length===0}n(ut,"gitRepoHasCleanHead");async function z(t){let e=await P("git",["rev-parse","--verify","HEAD"],t);return e.code===0&&e.stdout.trim()||null}n(z,"readGitHeadCommit");async function mt(t,e){for(let o of t.files){let r=g.resolve(e,o.path),i=g.resolve(e);r!==i&&!r.startsWith(`${i}${g.sep}`)||(await y.mkdir(g.dirname(r),{recursive:!0}),await y.copyFile(o.absolutePath,r))}}n(mt,"copySelectedFilesToSnapshot");async function gt(t){await w(t.cwd,["init"],"Initialize Cloud source snapshot"),await w(t.cwd,["checkout","-B",t.branch],"Create Cloud source branch"),await w(t.cwd,["config","user.name","OpenPond Desktop"],"Configure Git user"),await w(t.cwd,["config","user.email","desktop@openpond.ai"],"Configure Git email"),await ft({cwd:t.cwd,repoUrl:t.repoUrl,apiKey:t.apiKey,branch:t.branch}),await w(t.cwd,["add","-A"],"Stage Cloud source snapshot"),await w(t.cwd,["commit","-m",t.commitMessage],"Commit Cloud source snapshot")}n(gt,"createSnapshotCommit");async function ft(t){let e=`refs/remotes/openpond/${t.branch}`,o=await V(t.cwd,["fetch","--depth=1",t.repoUrl,`refs/heads/${t.branch}:${e}`],t.apiKey);if(o.code!==0){let r=`${o.stderr}
2
+ import{a as F,b as H,d as _}from"./chunk-XEOEKFG6.js";import{t as j}from"./chunk-BL3YH2QU.js";import{a as R}from"./chunk-GOPFFQZU.js";import{b as P,s as C,t as N,z as x}from"./chunk-XW6HGSIT.js";import{g as U}from"./chunk-57TRXBLT.js";import{r as D}from"./chunk-EUMXMT3S.js";import{b as I,c as T}from"./chunk-YR5ID2SS.js";import{a as n}from"./chunk-FTQLQJQV.js";import{randomUUID as Pt}from"node:crypto";var ot="https://api.openpond.ai";async function K(t){let e=await R(),o=e.token?.trim();if(!o)throw new Error("OpenPond account API key is required to manage organizations.");let r=rt(e);if(t.type==="list")return m(r,o,"/v1/organizations");if(t.type==="invitations_list")return m(r,o,"/v1/teams/invitations");if(t.type==="invitation_accept"||t.type==="invitation_decline"){let i=t.type==="invitation_accept"?"accept":"decline";return m(r,o,`/v1/teams/invitations/${i}`,{method:"POST",body:JSON.stringify(t.payload??{})})}if(t.type==="create")return m(r,o,"/v1/organizations",{method:"POST",body:JSON.stringify(t.payload??{})});if(t.type==="get")return m(r,o,`/v1/organizations/${encodeURIComponent(t.slug)}`);if(t.type==="update")return m(r,o,`/v1/organizations/${encodeURIComponent(t.slug)}`,{method:"PATCH",body:JSON.stringify(t.payload??{})});if(t.type==="members")return m(r,o,`/v1/organizations/${encodeURIComponent(t.slug)}/members`);if(t.type==="member_upsert")return m(r,o,`/v1/organizations/${encodeURIComponent(t.slug)}/members`,{method:"POST",body:JSON.stringify(t.payload??{})});if(t.type==="mcp_get")return m(r,o,`/v1/organizations/${encodeURIComponent(t.slug)}/mcp-server`);if(t.type==="mcp_generate")return m(r,o,`/v1/organizations/${encodeURIComponent(t.slug)}/mcp-server`,{method:"POST",body:JSON.stringify(t.payload??{})});if(t.type==="mcp_rotate")return m(r,o,`/v1/organizations/${encodeURIComponent(t.slug)}/mcp-server/rotate`,{method:"POST"});if(t.type==="mcp_disable")return m(r,o,`/v1/organizations/${encodeURIComponent(t.slug)}/mcp-server/disable`,{method:"POST"});if(t.type==="mcp_enable")return m(r,o,`/v1/organizations/${encodeURIComponent(t.slug)}/mcp-server/enable`,{method:"POST"});throw new Error(`Unsupported organization action: ${t.type}`)}n(K,"organizationRequestPayload");async function m(t,e,o,r={}){let i=await I(t,e,o,r),a=await i.json().catch(()=>({}));if(!i.ok){let l=typeof a.message=="string"?a.message:typeof a.error=="string"?a.error:i.statusText;throw new Error(l)}return a}n(m,"openPondApiRequest");function rt(t){return S(process.env.OPENPOND_API_URL)??S(t.apiBaseUrl)??S(t.account?.apiBaseUrl)??S(t.config.apiBaseUrl)??M(t.account?.baseUrl)??M(t.config.baseUrl)??ot}n(rt,"resolveApiBaseUrl");function M(t){let e=S(t);if(!e)return null;try{let o=new URL(e);if(o.hostname==="openpond.ai")return"https://api.openpond.ai";if(!o.hostname.startsWith("api.")&&o.hostname.endsWith(".openpond.ai"))return o.hostname=`api.${o.hostname}`,o.origin}catch{return e}return e}n(M,"normalizeOpenPondWebBaseAsApi");function S(t){let e=t?.trim();return e?e.replace(/\/$/,""):null}n(S,"normalizeOptionalUrl");import{promises as y}from"node:fs";import nt from"node:os";import g from"node:path";var at=5e3,it=32*1024*1024,st=250*1024*1024;async function J(t){let e=await O(t),o=await z(e.rootPath),r=[];for(let i of e.files)r.push({path:i.path,type:"file",contentsBase64:(await y.readFile(i.absolutePath)).toString("base64")});return{rootPath:e.rootPath,headCommit:o,entries:r,totalBytes:e.totalBytes,skipped:e.skipped}}n(J,"collectLocalProjectSourceUploadBundle");async function Ft(t){let e=await O(t),o=await z(e.rootPath);return{rootPath:e.rootPath,headCommit:o,fileCount:e.files.length,byteCount:e.totalBytes,skippedCount:e.skipped.length,initializedEmptyProject:e.files.length===0,skipped:e.skipped}}n(Ft,"previewLocalProjectSourceUpload");async function W(t,e){let o=pt(e.branch),r=await O(t),i=await z(r.rootPath);if(t.repoPath&&r.files.length>0&&await ut(r.rootPath))try{return await G({cwd:r.rootPath,repoUrl:e.repoUrl,apiKey:e.apiKey,branch:o}),{rootPath:r.rootPath,branch:o,headCommit:i,fileCount:r.files.length,byteCount:r.totalBytes,skipped:r.skipped,initializedEmptyProject:!1,transport:"git_head"}}catch(c){if(!yt(c))throw c}let a=await y.mkdtemp(g.join(nt.tmpdir(),"openpond-cloud-source-")),l=r.files.length===0;try{return l?await y.writeFile(g.join(a,"README.md"),e.fallbackReadme,"utf8"):await mt(r,a),await gt({cwd:a,branch:o,commitMessage:e.commitMessage,repoUrl:e.repoUrl,apiKey:e.apiKey}),await G({cwd:a,repoUrl:e.repoUrl,apiKey:e.apiKey,branch:o}),{rootPath:r.rootPath,branch:o,headCommit:i,fileCount:l?1:r.files.length,byteCount:l?Buffer.byteLength(e.fallbackReadme,"utf8"):r.totalBytes,skipped:r.skipped,initializedEmptyProject:l,transport:"snapshot"}}finally{await y.rm(a,{recursive:!0,force:!0})}}n(W,"pushLocalProjectSourceToGit");async function O(t){let e=t.repoPath??t.workspacePath,o=t.repoPath?await dt(e):await ct(e),r=[],i=[],a=0;for(let l of o){if(r.length>=at){i.push({path:l,reason:"total_limit"});continue}let c=C(l);if(!c){i.push({path:l,reason:"invalid_path"});continue}if(N(c)&&!q(c)){i.push({path:c,reason:"generated"});continue}let d=g.resolve(e,c),u=g.resolve(e);if(d!==u&&!d.startsWith(`${u}${g.sep}`)){i.push({path:c,reason:"invalid_path"});continue}try{let f=await y.lstat(d);if(!f.isFile()){i.push({path:c,reason:"not_file"});continue}if(f.size>it){i.push({path:c,reason:"too_large",sizeBytes:f.size});continue}if(a+f.size>st){i.push({path:c,reason:"total_limit",sizeBytes:f.size});continue}r.push({path:c,absolutePath:d,sizeBytes:f.size}),a+=f.size}catch{i.push({path:c,reason:"read_error"})}}return{rootPath:e,files:r,totalBytes:a,skipped:i}}n(O,"selectLocalProjectSourceFiles");async function ct(t){let e=await x(t),o=await lt(t);return Array.from(new Set([...e,...o])).sort((r,i)=>r.localeCompare(i))}n(ct,"listLocalProjectSourceUploadFiles");async function lt(t){let e=[],o=g.join(t,".openpond","skills");async function r(i){let a=g.join(t,i),l;try{l=await y.readdir(a,{withFileTypes:!0})}catch{return}l.sort((c,d)=>c.name.localeCompare(d.name));for(let c of l){let d=g.join(i,c.name).replace(/\\/g,"/"),u=C(d);if(u){if(c.isDirectory()){await r(u);continue}c.isFile()&&q(u)&&e.push(u)}}}return n(r,"visit"),await r(g.relative(t,o).replace(/\\/g,"/")),e}n(lt,"listGeneratedSkillSourceUploadFiles");function q(t){let e=C(t);if(!e)return!1;let o=e.split("/"),r=o.indexOf(".openpond");return r>=0&&o[r+1]==="skills"&&o.length>r+3}n(q,"isAllowedGeneratedSourceUploadPath");async function dt(t){let e=await P("git",["ls-files","-z","--cached","--others","--exclude-standard"],t);return e.code!==0?x(t):Array.from(new Set(e.stdout.split("\0").map(o=>o.trim()).filter(Boolean))).sort((o,r)=>o.localeCompare(r))}n(dt,"gitVisibleProjectFiles");function pt(t){let e=t.trim()||"main";if(e.length>120||e.startsWith("/")||e.endsWith("/")||e.includes("..")||!/^[A-Za-z0-9._/-]+$/.test(e))throw new Error("Cloud source branch contains unsupported characters.");return e}n(pt,"normalizeGitBranchName");async function ut(t){if((await P("git",["rev-parse","--verify","HEAD"],t)).code!==0)return!1;let o=await P("git",["status","--porcelain=v1"],t);return o.code===0&&o.stdout.trim().length===0}n(ut,"gitRepoHasCleanHead");async function z(t){let e=await P("git",["rev-parse","--verify","HEAD"],t);return e.code===0&&e.stdout.trim()||null}n(z,"readGitHeadCommit");async function mt(t,e){for(let o of t.files){let r=g.resolve(e,o.path),i=g.resolve(e);r!==i&&!r.startsWith(`${i}${g.sep}`)||(await y.mkdir(g.dirname(r),{recursive:!0}),await y.copyFile(o.absolutePath,r))}}n(mt,"copySelectedFilesToSnapshot");async function gt(t){await w(t.cwd,["init"],"Initialize Cloud source snapshot"),await w(t.cwd,["checkout","-B",t.branch],"Create Cloud source branch"),await w(t.cwd,["config","user.name","OpenPond Desktop"],"Configure Git user"),await w(t.cwd,["config","user.email","desktop@openpond.ai"],"Configure Git email"),await ft({cwd:t.cwd,repoUrl:t.repoUrl,apiKey:t.apiKey,branch:t.branch}),await w(t.cwd,["add","-A"],"Stage Cloud source snapshot"),await w(t.cwd,["commit","-m",t.commitMessage],"Commit Cloud source snapshot")}n(gt,"createSnapshotCommit");async function ft(t){let e=`refs/remotes/openpond/${t.branch}`,o=await V(t.cwd,["fetch","--depth=1",t.repoUrl,`refs/heads/${t.branch}:${e}`],t.apiKey);if(o.code!==0){let r=`${o.stderr}
3
3
  ${o.stdout}`;if(ht(r))return;throw new Error(`Fetch Cloud source parent failed: ${E(o)}`)}await w(t.cwd,["reset","--mixed",e],"Attach Cloud source snapshot to remote branch")}n(ft,"applyRemoteBranchParent");async function G(t){let e=await V(t.cwd,["push",t.repoUrl,`HEAD:${t.branch}`],t.apiKey);if(e.code!==0)throw new Error(`Push Cloud source to OpenPond Git failed: ${E(e)}`)}n(G,"pushGitHead");async function V(t,e,o){let r=Buffer.from(`openpond:${o}`,"utf8").toString("base64");return P("git",["-c",`http.extraHeader=Authorization: Basic ${r}`,...e],t)}n(V,"runGitWithAuth");function yt(t){let e=t instanceof Error?t.message:String(t);return e.includes("non-fast-forward")||e.includes("fetch first")||e.includes("remote contains work that you do not")}n(yt,"isNonFastForwardPushError");function ht(t){return t.includes("couldn't find remote ref")||t.includes("could not find remote ref")||t.includes("Remote branch")&&t.includes("not found")}n(ht,"isMissingRemoteRefOutput");function E(t){return(t.stderr||t.stdout||"Git command failed").trim().replace(/\s+/g," ").slice(0,500)}n(E,"formatGitError");async function w(t,e,o){let r=await P("git",e,t);if(r.code!==0)throw new Error(`${o} failed: ${E(r)}`)}n(w,"runGitOrThrow");var wt=new Set(["github_repo","internal_repo","template","manual"]);function Jt(t,e){return e&&t.status!=="active"?{...t,status:"active"}:t}n(Jt,"codexHistorySessionWithLiveStatus");async function Wt(){try{let t=p(await K({type:"list"})),e=L(t.organizations),o=(e.length>0?e:L(t.teams)).map(bt).filter(a=>!!a?.teamId),r=await Promise.all(o.map(async a=>{try{let l=p(await j({type:"project_list",payload:{teamId:a.teamId}}));return L(l.projects).map(c=>X(c,a)).filter(c=>!!c)}catch{return[]}})),i=new Map;for(let a of r.flat())i.set(`${a.teamId}:${a.id}`,a);return Array.from(i.values()).sort((a,l)=>{let c=Date.parse(a.updatedAt??"")||0,d=Date.parse(l.updatedAt??"")||0;return c!==d?d-c:a.name.localeCompare(l.name)})}catch{return[]}}n(Wt,"fetchCloudProjects");function bt(t){let e=s(t.teamId)??s(t.id);return e?{teamId:e,slug:s(t.slug),displayName:s(t.displayName)??s(t.name)}:null}n(bt,"normalizeOpenPondOrganization");function X(t,e){let o=s(t.id),r=s(t.teamId)??e.teamId;if(!o||!r||s(t.status)==="archived"||s(t.archivedAt))return null;let a=s(t.name)??s(t.slug)??o,l=$(t.sourceType);return{id:o,teamId:r,name:a,slug:s(t.slug),sourceType:l,sourceLabel:Y(t,l),defaultBranch:s(t.defaultBranch)??s(t.gitBranch),internalRepoPath:s(t.internalRepoPath),manifestPath:s(t.sandboxManifestPath),manifestHash:s(t.sandboxManifestHash),syncedAt:s(t.sandboxManifestSyncedAt),organizationName:e.displayName,organizationSlug:e.slug,createdAt:s(t.createdAt),updatedAt:s(t.updatedAt)}}n(X,"normalizeCloudProject");function $(t){return typeof t=="string"&&wt.has(t)?t:"manual"}n($,"normalizeCloudProjectSourceType");function Y(t,e){if(e==="github_repo"){let o=s(t.gitOwner),r=s(t.gitRepo);if(o&&r)return`${o}/${r}`}return e==="internal_repo"?s(t.internalRepoPath)??"Internal repo":e==="template"?s(t.templateRepoUrl)??s(t.templateSourceProjectId)??"Template":s(t.normalizedSourceIdentity)}n(Y,"cloudProjectSourceLabel");function qt(t){return typeof t=="boolean"?t:null}n(qt,"booleanValue");function p(t){return t&&typeof t=="object"&&!Array.isArray(t)?t:{}}n(p,"asRecord");function Vt(t){let e=p(t);return Object.keys(e).length>0?e:null}n(Vt,"nonEmptyRecord");function L(t){return Array.isArray(t)?t.map(p).filter(e=>Object.keys(e).length>0):[]}n(L,"asRecordArray");function s(t){return typeof t=="string"&&t.trim()?t.trim():null}n(s,"stringValue");function Xt(t){if(!t)return null;if(t==="request_only"||t==="coding_core")return t;throw new Error("hostedSourceDispatch must be one of request_only, coding_core.")}n(Xt,"parseHostedSourceDispatch");function jt(t){return Array.isArray(t)?t.filter(e=>typeof e=="string"&&e.trim().length>0).map(e=>e.trim()):[]}n(jt,"stringArrayValue");function Yt(t){let e=t.code===0||t.code===null?"completed":"failed",o=t.stdout.trim()||t.stderr.trim()||`Ran profile action ${t.action}.`,r=[],i=[];try{let a=JSON.parse(t.stdout),l=p(a),c=p(l.result),d=s(c.text)??s(c.summary)??s(c.message);d&&(o=d),r=jt(c.artifactRefs);let u=s(l.traceArtifactRef);i=u?[u]:[]}catch{}return{artifactRefs:r,output:o,responseSummary:{status:e==="completed"?"available":"failed",text:o},status:e,traceArtifactRefs:i}}n(Yt,"profileActionRunSummary");function Zt(t){let e=At(t.name),o=t.id.replace(/^local_/,"").replace(/[^a-z0-9]/gi,"").slice(0,16);return`desktop-${e}-${o||"project"}`}n(Zt,"internalRepoPathForLocalProject");function At(t){return t.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,48)||"project"}n(At,"slugifyInternalRepoSegment");async function Qt(t){try{let e=await W(t.localProject,{repoUrl:t.repoUrl,apiKey:t.apiKey,branch:t.branch,commitMessage:t.commitMessage,fallbackReadme:t.fallbackReadme}),o=p(await j({type:"project_sync",projectId:t.targetProjectId,payload:{teamId:t.teamId}}).catch(()=>({})));return{rootPath:e.rootPath,branch:e.branch,headCommit:e.headCommit,fileCount:e.fileCount,byteCount:e.byteCount,skippedCount:e.skipped.length,initializedEmptyProject:e.initializedEmptyProject,transport:e.transport,syncPayload:o}}catch{let e=await J(t.localProject),o=e.entries.length===0,r=o?[{path:"README.md",type:"file",contentsBase64:Buffer.from(t.fallbackReadme,"utf8").toString("base64")}]:e.entries,i=o?Buffer.byteLength(t.fallbackReadme,"utf8"):e.totalBytes,a=p(await j({type:"project_source_upload",projectId:t.targetProjectId,payload:{teamId:t.teamId,entries:r,branch:t.branch,commitMessage:t.commitMessage,metadata:{source:"openpond-app-local-project-cloud-setup",transport:"api_source_upload"}}}));return{rootPath:e.rootPath,branch:t.branch,headCommit:e.headCommit,fileCount:r.length,byteCount:i,skippedCount:e.skipped.length,initializedEmptyProject:o,transport:"api_source_upload",syncPayload:a}}}n(Qt,"uploadLocalProjectCloudSource");async function te(t){try{let e=p(await j({type:"project_get",projectId:t.projectId,payload:{teamId:t.teamId}})),o=p(e.project);return Object.keys(o).length>0?o:t.fallback}catch{return t.fallback}}n(te,"sandboxProjectRecordOrFallback");async function ee(t){let e=p(await j({type:"project_upsert",payload:{teamId:t.teamId,name:t.projectName,sourceType:"internal_repo",normalizedSourceIdentity:t.internalRepoPath,defaultBranch:t.branch,sourceConfig:{sourceType:"internal_repo",sourceValue:t.internalRepoPath},metadata:{source:"openpond-app-local-project-cloud-setup",localProjectId:t.localProjectId}}})),o=p(e.project);if(Object.keys(o).length===0)throw new Error("OpenPond Cloud Project response did not include a project.");return o}n(ee,"upsertInternalSandboxProject");function oe(t,e,o,r){let i=X({...t,teamId:e},{teamId:e,slug:null,displayName:null});if(i)return i;let a=s(t.id);if(!a)throw new Error("OpenPond Cloud Project response did not include a project id.");return{id:a,teamId:e,name:s(t.name)??o,slug:s(t.slug),sourceType:$(t.sourceType),sourceLabel:Y(t,$(t.sourceType)),defaultBranch:s(t.defaultBranch)??s(t.gitBranch)??r,internalRepoPath:s(t.internalRepoPath),manifestPath:s(t.sandboxManifestPath),manifestHash:s(t.sandboxManifestHash),syncedAt:s(t.sandboxManifestSyncedAt),organizationName:null,organizationSlug:null,createdAt:s(t.createdAt),updatedAt:s(t.updatedAt)}}n(oe,"cloudProjectFromSandboxRecord");function re(t){if(!t)return{};let e=St(t.searchParams.get("limit"));return{...e?{maxEvents:e}:{},tail:t.searchParams.get("tail")==="1"}}n(re,"codexHistoryThreadReadOptions");function ne(t){return`${t}_turn_attachment_${Pt()}`}n(ne,"nextCodexHistoryTurnId");function St(t){if(!t)return;let e=Number.parseInt(t,10);if(!(!Number.isFinite(e)||e<=0))return Math.min(5e4,e)}n(St,"positiveIntegerParam");var It={"tools.web_search":!0,"tools.view_image":!0,"features.web_search_request":!0};function ae(t){return{...It,approvals_reviewer:t==="auto-review"?"auto_review":"user"}}n(ae,"codexHistorySessionConfig");import Z from"node:path";import{promises as Rt}from"node:fs";async function ue(t){let e=await Ct(t.workspacePath);return(await Rt.stat(e).catch(()=>null))?.isDirectory()?(await _({projectRoot:t.workspacePath,build:"always"}).catalog()).actions.map(a=>D.parse({...a,sourcePath:t.workspacePath,implementation:{...a.implementation,projectId:t.id,projectRoot:Z.resolve(t.workspacePath)}})):[]}n(ue,"localProjectActionCatalog");async function Q(t){return _({projectRoot:t.projectRoot,build:"always"}).run({actionId:t.actionId,input:t.value,runId:t.runId,idempotencyKey:t.idempotencyKey,signal:t.signal})}n(Q,"runLocalProjectAction");async function Ct(t){try{let e=await H(t);return Z.resolve(t,e.sourceDirectory??"openpond/actions")}catch(e){throw new Error(`Cannot load ${F}: ${e instanceof Error?e.message:String(e)}`)}}n(Ct,"projectActionSourceDirectory");var kt="https://api.openpond.ai";async function B(t={}){let e=await(t.loadAccountContext??R)(),o=e.token?.trim();if(!o)throw new Error("OpenPond account API key is required.");return{apiBaseUrl:_t(e),token:o}}n(B,"resolveHostedApiAccess");async function ye(t={}){return{...await B(t),teamId:Ut(t.teamId)}}n(ye,"resolveManagedAdapterUserAccess");function he(t){let e=new Headers;return t.startsWith("opk_")?(e.set("Authorization",`ApiKey ${t}`),e.set("openpond-api-key",t)):e.set("Authorization",`Bearer ${t}`),e}n(he,"hostedApiAuthHeaders");function _t(t){return k(t.apiBaseUrl)??k(t.account?.apiBaseUrl)??k(t.config.apiBaseUrl)??tt(t.account?.baseUrl)??tt(t.config.baseUrl)??kt}n(_t,"resolveApiBaseUrl");function Ut(t){let e=t?.trim();if(!e||!/^[A-Za-z0-9_-]{3,191}$/.test(e))throw new Error("Select an OpenPond workspace before using OpenPond Managed RL.");return e}n(Ut,"managedAdapterTeamId");function tt(t){let e=k(t);if(!e)return null;try{let o=new URL(e);if(o.hostname==="openpond.ai")return"https://api.openpond.ai";if(!o.hostname.startsWith("api.")&&o.hostname.endsWith(".openpond.ai"))return o.hostname=`api.${o.hostname}`,o.origin}catch{return e}return e}n(tt,"normalizeOpenPondWebBaseAsApi");function k(t){let e=t?.trim();return e?e.replace(/\/$/,""):null}n(k,"normalizeOptionalUrl");async function et(t,e={}){let o=await(e.resolveAccess??B)(),r=await(e.fetch??I)(o.apiBaseUrl,o.token,`/v1/project-actions/${encodeURIComponent(t.projectId)}/actions/${encodeURIComponent(t.actionId)}?teamId=${encodeURIComponent(t.teamId)}`,{method:"POST",body:JSON.stringify({input:t.value,releaseId:t.releaseId,idempotencyKey:t.idempotencyKey,callerType:"work",callerId:t.callerId}),signal:t.signal,timeoutMs:900*1e3}),i=await T(r,"Run hosted Project Action");if(i.invocation.status==="failed")throw new Error(i.invocation.failureMessage||i.invocation.failureCode||"Hosted Project Action failed.");return i.invocation}n(et,"runHostedProjectAction");function _e(t){return n(async function(o){let r=p(o),i=s(r.action)??s(r.actionName);if(!i)throw new Error("Project Action name is required.");let a=p(r.metadata);if(s(a.execution)==="hosted"){let b=await et({projectId:A(a,"projectId"),teamId:A(a,"teamId"),releaseId:A(a,"releaseId"),actionId:i,value:r.input??{},idempotencyKey:s(a.toolCallId)?`${A(a,"turnId")}:${A(a,"toolCallId")}`:void 0,callerId:s(a.turnId)??void 0}),v=s(a.sessionId);return v&&await t.appendRuntimeEvent(U({name:"workspace_action_result",sessionId:v,turnId:A(a,"turnId"),source:"chat_action",action:"project_action_run",appId:null,status:"completed",output:JSON.stringify(b.resultJson),data:{openPondHostedProjectActionRun:!0,action:{name:i,label:s(a.selectedActionLabel)??i},releaseId:b.releaseId,invocationId:b.id,traces:b.traceJson,outputs:b.outputJson}})),b}let l=s(a.projectId);if(!l)throw new Error("Project Action Project id is required.");let c=await t.resolveProjectRoot(l);if(!c)throw new Error("Project Action Project is not registered locally.");let d=s(a.sessionId),u=s(a.turnId)??`openpond_project_action_${Date.now()}`,f=s(a.toolCallId),h=await Q({projectRoot:c,actionId:i,value:r.input??{},runId:f??void 0,idempotencyKey:f?`${u}:${f}`:null});return d&&await t.appendRuntimeEvent(U({name:"workspace_action_result",sessionId:d,turnId:u,source:"chat_action",action:"project_action_run",appId:null,status:"completed",output:JSON.stringify(h.output),data:{openPondProjectActionRun:!0,action:{name:i,label:s(a.selectedActionLabel)??i},runId:h.runId,traces:h.traces,outputs:h.outputs,outputDirectory:h.outputDirectory,durationMs:h.durationMs}})),h},"projectActionRunPayload")}n(_e,"createProjectActionRunPayload");function A(t,e){let o=s(t[e]);if(!o)throw new Error(`Hosted Project Action ${e} is required.`);return o}n(A,"requiredMetadata");export{K as a,Ft as b,Jt as c,Wt as d,qt as e,p as f,Vt as g,s as h,Xt as i,Yt as j,Zt as k,Qt as l,te as m,ee as n,oe as o,re as p,ne as q,ae as r,ue as s,B as t,ye as u,he as v,_e as w};
@@ -1,5 +1,5 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{b as Be}from"./chunk-SYUKES6H.js";import{a as ye}from"./chunk-UKMA4R6X.js";import{k as he,m as fe,n as Le}from"./chunk-OQPJ7FJF.js";import{a as me,b as le}from"./chunk-3QIB5FXI.js";import{c as Ne}from"./chunk-4EPSHPZL.js";import{a as ue,t as pe}from"./chunk-FTEOCCPB.js";import{Va as H}from"./chunk-25MBPJVY.js";import{e as ee,l as f,m as ze}from"./chunk-WN3V6KDN.js";import{a as Z}from"./chunk-QDC4OW3S.js";import{a as Te}from"./chunk-ZZWAQBA2.js";import{b as B}from"./chunk-YR5ID2SS.js";import{c as V,d as qe,e as Y,f as Q}from"./chunk-APB2STJK.js";import{k as _e}from"./chunk-VYLGI3IH.js";import{Aa as je,oa as Oe,ub as $e}from"./chunk-ACYFMLWG.js";import{b as o}from"./chunk-ES2ISFJC.js";import{a as d}from"./chunk-FTQLQJQV.js";var zt=3e4,Lt=8*1024*1024,Kn={timeoutMs:900*1e3,maxResponseBytes:64*1024*1024},He=class extends Error{static{d(this,"ApiTimeoutError")}timeoutMs;requestUrl;code="OPENPOND_API_TIMEOUT";constructor(t,e){super(`API request timed out after ${t}ms: ${e}`),this.timeoutMs=t,this.requestUrl=e,this.name="ApiTimeoutError"}},ge=class extends Error{static{d(this,"ApiResponseTooLargeError")}maximumBytes;requestUrl;code="OPENPOND_API_RESPONSE_TOO_LARGE";constructor(t,e){super(`API response exceeded ${t} bytes: ${e}`),this.maximumBytes=t,this.requestUrl=e,this.name="ApiResponseTooLargeError"}},Fe=class extends Error{static{d(this,"OpenPondApiError")}status;apiMessage;code;constructor(t,e,n,r=null){let a=r||e;super(`${n} failed: ${t}${a?` ${a}`:""}`),this.status=t,this.apiMessage=r,this.name="OpenPondApiError",this.code=e||"OPENPOND_API_ERROR"}};async function te(t,e,n,r={}){let{timeoutMs:a=zt,maxResponseBytes:s=Lt,explicitBearerAuth:i=!1,...u}=r,c=`${t}${n}`,p=new Headers(u.headers);p.set("Content-Type","application/json");let b=i?void 0:process.env.OPENPOND_API_KEY,l=e?.trim()||"",g=!i&&l.startsWith("opk_"),E=b||(g?l:null);E&&!p.has("openpond-api-key")&&p.set("openpond-api-key",E),e?p.set("Authorization",g?`ApiKey ${l}`:`Bearer ${e}`):b&&!p.has("Authorization")&&p.set("Authorization",`ApiKey ${b}`);let N=new AbortController,O=new He(a,c),T=a>0?setTimeout(()=>N.abort(O),a):null;T?.unref?.();let ce=Bt(u.signal,N.signal,a),X=d(()=>{T&&clearTimeout(T)},"cleanup");try{let C=await fetch(c,{...u,headers:p,signal:ce});return Nt(C,{cleanup:X,maximumBytes:s,requestUrl:c,timeoutController:N,timeoutError:O})}catch(C){throw X(),N.signal.aborted?O:C}}d(te,"apiFetch");async function be(t,e){let n;try{let r=await t.text();n=r?JSON.parse(r):{}}catch(r){if(r instanceof He||r instanceof ge)throw r;n={}}if(!t.ok){let r=typeof n.error=="string"?n.error:null,a=typeof n.message=="string"?n.message:null;throw new Fe(t.status,r,e,a)}return n}d(be,"readApiJson");function Nt(t,e){if(!t.body)return e.cleanup(),t;let n=Number(t.headers.get("content-length"));if(e.maximumBytes>0&&Number.isFinite(n)&&n>e.maximumBytes)throw e.cleanup(),t.body.cancel(),new ge(e.maximumBytes,e.requestUrl);let r=t.body.getReader(),a=0,s=new ReadableStream({async pull(i){try{let u=await r.read();if(u.done){e.cleanup(),i.close();return}if(a+=u.value.byteLength,e.maximumBytes>0&&a>e.maximumBytes){e.cleanup(),await r.cancel(),i.error(new ge(e.maximumBytes,e.requestUrl));return}i.enqueue(u.value)}catch(u){e.cleanup(),i.error(e.timeoutController.signal.aborted?e.timeoutError:u)}},async cancel(i){e.cleanup(),await r.cancel(i)}});return new Response(s,{headers:t.headers,status:t.status,statusText:t.statusText})}d(Nt,"boundedResponse");function Bt(t,e,n){return n<=0?t??void 0:t?AbortSignal.any([t,e]):e}d(Bt,"composedSignal");var R=o.string().trim().min(1).max(240),F=o.string().regex(/^[a-f0-9]{64}$/),tr=o.object({cursor:o.string().trim().min(1).max(2e3).optional(),projectId:R.optional(),search:o.string().trim().max(100).optional(),sort:o.enum(["id","name","updated"]).default("id"),limit:o.number().int().min(1).max(100).default(100)}).strict(),nr=o.object({operationId:R,expectedRevision:o.number().int().nonnegative(),originProjectId:R.optional(),workspace:pe,ownerScope:o.enum(["workspace","personal"]).optional()}).strict().superRefine((t,e)=>{t.workspace.draft.modelScope!==null&&e.addIssue({code:"custom",message:"Independent datasets cannot carry Model-owned draft preparation."}),t.workspace.draft.status!=="draft"&&e.addIssue({code:"custom",message:"Only draft workspaces can be saved."})}),M=o.object({schemaVersion:o.literal("openpond.datasetWorkspaceReceipt.v1"),teamId:R,datasetId:R,revision:o.number().int().positive(),originProjectId:R.optional(),workspace:pe,ownerScope:o.enum(["workspace","personal"]).optional(),publication:o.object({tasksetId:R,release:ue,packageHash:F}).strict().nullable()}).strict().superRefine((t,e)=>{(t.workspace.draft.id!==t.datasetId||t.workspace.draft.profileId!==t.teamId||t.workspace.draft.revision!==t.revision||t.workspace.draft.modelScope!==null)&&e.addIssue({code:"custom",message:"Dataset workspace scope/revision mismatch."})}),rr=o.object({operationId:R,expectedRevision:o.number().int().positive(),workspaceHash:F,packageHash:F}).strict(),or=o.object({operationId:R,expectedRevision:o.number().int().positive()}).strict(),ar=o.object({teamId:R,datasetId:R,items:o.array(o.object({workspaceRevision:o.number().int().positive(),publication:M.shape.publication.unwrap(),publishedAt:o.iso.datetime()}).strict()).max(25),nextBeforeRevision:o.number().int().positive().nullable()}).strict(),sr=o.object({teamId:R,datasets:o.array(o.object({id:R,revision:o.number().int().positive(),originProjectId:R.optional(),name:o.string(),status:o.enum(["draft","published"]),ownerScope:o.enum(["workspace","personal"]).optional(),taskCount:o.number().int().nonnegative().optional(),publication:M.shape.publication,updatedAt:o.string().datetime()}).strict()).max(100),nextCursor:o.string().trim().min(1).max(2e3).nullable()}).strict(),ir=o.object({teamId:R,datasetId:R,revision:o.number().int().positive(),workspaceHash:F,packageHash:F,release:ue}).strict();var S=o.string().trim().min(1).max(500),L=o.string().regex(/^[a-f0-9]{64}$/),hr=o.object({teamId:S,ownerUserId:S}).strict(),ne=o.object({id:S,snapshotHash:L,boundaryId:S,boundaryRevisionHash:L}).strict(),Ie=o.object({sourceId:S,source:qe,sessionId:S,snapshotHash:L,title:o.string().max(500),projectId:S.nullable(),capturedAt:o.string().datetime(),boundaries:o.array(Q.omit({start:!0,end:!0})).max(V.boundaries)}).strict(),Ht=o.object({operationId:S,conversationId:S.optional(),cursor:S.optional(),limit:o.number().int().min(1).max(50).default(20)}).strict(),We=o.object({hash:L,parts:o.number().int().min(1).max(1500)}).strict(),Ft=We.extend({index:o.number().int().nonnegative().max(1499),base64:o.string().max(35e4)}).strict(),fr=o.object({path:o.string().min(1).max(500),encoding:o.enum(["utf8","zstd"]),base64:o.string()}).strict(),j=o.object({upload:We,source:o.enum(["codex","claude_code","hermes","openclaw","opencode","grok_build","pi","oh_my_pi"]),branchLeafId:S.optional(),acquisition:o.object({machineId:S,sourceInstanceId:S}).strict().optional(),destination:o.discriminatedUnion("kind",[o.object({kind:o.literal("existing"),projectId:S}).strict(),o.object({kind:o.literal("new"),name:o.string().trim().min(1).max(200)}).strict()])}).strict(),Ge=j.extend({operationId:S,previewHash:L,selection:o.array(o.object({sessionHash:L,boundaryIds:o.array(S).min(1).max(V.boundaries)}).strict()).min(1).max(V.sessions)}).strict(),Mt=o.object({from:o.string().datetime(),to:o.string().datetime(),projectId:S.optional()}).strict(),yr=o.object({teamId:S,range:Mt,activity:o.object({conversations:o.number().int().nonnegative(),turns:o.number().int().nonnegative(),chatTurns:o.number().int().nonnegative(),workTurns:o.number().int().nonnegative()}).strict(),accounting:o.object({contextSnapshots:o.number().int().nonnegative()}).strict(),usage:Z}).strict(),k=o.string().min(1).max(200),z=o.string().regex(/^[a-f0-9]{64}$/),Se=o.object({operationId:k,name:o.string().trim().min(1).max(500),projectId:k,dataset:ee.extend({revision:o.number().int().positive()}).strict(),caseIds:o.array(k).min(1).max(1e4)}).strict().superRefine((t,e)=>{new Set(t.caseIds).size!==t.caseIds.length&&e.addIssue({code:"custom",message:"Select each case once."})}),Dt=ne.extend({inputHash:z,outputHash:z.nullable(),task:Oe,taskHash:z}).strict(),Jt=o.object({schemaVersion:o.literal("openpond.connectedRecordedExecution.v1"),id:k,teamId:k,ownerUserId:k,request:Se,manifest:$e,sources:o.array(Dt).min(1).max(1e4),contentHash:z}).strict();function Me(t){let e=Jt.parse(t),{contentHash:n,...r}=e,{contentHash:a,...s}=e.manifest;if(f(r)!==n||f(s)!==a||e.manifest.teamId!==e.teamId||e.manifest.id!==e.id||e.manifest.operationId!==e.request.operationId||f(e.manifest.dataset)!==f(e.request.dataset)||e.sources.length!==e.request.caseIds.length||e.sources.length!==e.manifest.population.length||e.sources.some((i,u)=>i.taskHash!==f(i.task)||i.task.id!==e.request.caseIds[u]||i.boundaryId!==i.task.id||e.manifest.population[u]?.caseId!==i.boundaryId))throw new Error("Recorded execution identity or population integrity failed.");return e}d(Me,"verifyConnectedRecordedExecution");var Kt=o.object({projectId:k.optional(),cursor:k.optional(),limit:o.number().int().min(1).max(50).default(20)}).strict(),Wt=o.object({id:k,teamId:k,ownerUserId:k,projectId:k,name:o.string().min(1).max(500),dataset:Se.shape.dataset,manifestHash:z,contentHash:z,caseCount:o.number().int().min(1).max(1e4),createdAt:o.string().datetime()}).strict(),Gt=o.object({teamId:k,items:o.array(Wt).max(50),nextCursor:k.nullable()}).strict(),Xt=o.object({datasetId:o.string().trim().min(1).max(240),expectedRevision:o.number().int().positive(),operationId:o.string().trim().min(1).max(240),graders:o.array(je).min(1).max(100).optional()}).strict().superRefine((t,e)=>{t.graders&&new Set(t.graders.map(n=>n.id)).size!==t.graders.length&&e.addIssue({code:"custom",path:["graders"],message:"Choose one exact revision of each grader."})}),D=o.string().min(1).max(500),q=o.number().int().nonnegative(),Vt=o.object({teamId:D,ownerUserId:D,projectId:D.nullable(),status:o.enum(["active","paused","archived"]),revision:q,state:o.enum(["collecting","pending","attention","paused","archived"]),lastReconciledAt:o.string().datetime().nullable(),lastCapturedAt:o.string().datetime().nullable(),historyDays:o.number().int().positive(),sources:q,tasks:q,datasets:o.array(o.object({datasetId:D,projection:o.enum(["turn","conversation"]),revision:q}).strict()).max(2),latestBatch:o.object({operationId:D,updatedAt:o.string().datetime(),scanned:q,captured:q,unchanged:q,pending:q,failed:q,excluded:q,paused:q,hasMore:o.boolean()}).strict().nullable()}).strict(),h=o.string().min(1).max(500),A=o.string().regex(/^[a-f0-9]{64}$/),De=o.object({teamId:h,projectId:h.nullable(),status:o.enum(["active","paused","archived"]),revision:o.number().int().nonnegative()}).strict(),Yt=o.object({teamId:h,operationId:h,projectId:h.nullable(),outcomes:o.array(o.object({conversationId:h,state:o.enum(["captured","unchanged","pending","paused","excluded","failed"]),sourceId:h.optional(),snapshotHash:A.optional(),reason:o.string().optional()}).strict()).max(50),nextCursor:h.nullable()}).strict(),Qt=o.object({teamId:h,ref:ne,origin:Ie.shape.source,sessionId:h,projectId:h,capturedAt:o.string().datetime(),unmappedEvidence:o.object({count:o.number().int().nonnegative().max(1e5),contentHash:A}).strict(),evidence:o.object({input:o.array(Y),observed:o.array(Y),answer:o.json(),boundary:Q}).strict()}).strict(),Zt=o.object({teamId:h,sourceId:h,snapshotHash:A,contentHash:A,count:o.number().int().nonnegative(),offset:o.number().int().nonnegative(),events:o.array(Y).max(50),nextOffset:o.number().int().nonnegative().nullable()}).strict(),en=o.object({teamId:h,source:j.shape.source,sourceHash:A,previewHash:A,destination:j.shape.destination,issues:o.array(o.object({file:o.string(),message:o.string()}).strict()).max(100),sessions:o.array(o.object({sessionHash:A,sessionId:h,origin:Ie.shape.source,exporterVersion:o.string().nullable(),eventCount:o.number().int().nonnegative(),boundaries:o.array(o.object({id:h,projection:o.enum(["turn","conversation"]),answer:o.boolean(),process:o.enum(["retained","partial","absent"]),terminal:o.enum(["completed","failed","cancelled","unknown"])}).strict()).max(5001),warnings:o.array(o.string()).max(100),sample:o.array(o.object({role:o.enum(["user","assistant","system","tool"]).nullable(),text:o.string().max(4e3)}).strict()).max(3)}).strict()).max(1e3)}).strict(),Je=o.object({teamId:h,operationId:h,requestHash:A,previewHash:A,projectId:h.optional(),state:o.enum(["admitting","publishing","completed","failed"]),outcomes:o.array(o.object({sessionHash:A,sourceId:h,status:o.enum(["imported","already_present"]),datasets:o.array(o.object({datasetId:h,revision:o.number().int().positive(),changed:o.boolean()}).strict()).max(2)}).strict()).max(1e3),error:o.string().optional()}).strict(),Ke=class extends Error{static{d(this,"ConnectedEvidenceError")}constructor(t,e,n){super(n),this.status=t,this.code=e,this.name="ConnectedEvidenceError"}status;code},Pr=class{static{d(this,"ConnectedEvidenceClient")}constructor(t){this.options=t;let e=new URL(t.baseUrl);if(!["http:","https:"].includes(e.protocol)||e.username||e.password||e.search||e.hash||!t.apiKey.trim()||!t.teamId.trim())throw new Error("A clean API origin and workspace credentials are required.");this.baseUrl=e.toString().replace(/\/+$/,"")}options;baseUrl;async capture(t,e){let n=Ht.parse(t),r=Yt.parse(await this.request("/capture","POST",n,e));if(this.scope(r.teamId),r.operationId!==n.operationId||r.outcomes.length>n.limit||n.conversationId&&r.outcomes.some(a=>a.conversationId!==n.conversationId))throw new Error("Capture receipt differs from its requested source or operation.");return r}async list(t={},e){let n=o.object({projectId:h.optional(),cursor:h.optional(),limit:o.number().int().min(1).max(50).default(20)}).strict().parse(t),r=new URLSearchParams(Object.entries(n).filter(([,s])=>s!==void 0).map(([s,i])=>[s,String(i)])),a=o.object({teamId:h,items:o.array(Ie).max(50),nextCursor:h.nullable()}).strict().parse(await this.request(`?${r}`,"GET",void 0,e));if(this.scope(a.teamId),a.items.length>n.limit||new Set(a.items.map(s=>s.sourceId)).size!==a.items.length||a.nextCursor!==null&&a.nextCursor===n.cursor||n.projectId&&a.items.some(s=>s.projectId!==n.projectId))throw new Error("Connected source page differs from its requested scope.");return a}async read(t,e){let n=ne.parse(t),r=Qt.parse(await this.request(`/${encodeURIComponent(n.id)}/cases/${encodeURIComponent(n.boundaryId)}?snapshotHash=${n.snapshotHash}&revisionHash=${n.boundaryRevisionHash}`,"GET",void 0,e));if(this.scope(r.teamId),f(r.ref)!==f(n)||r.evidence.boundary.id!==n.boundaryId||r.evidence.boundary.revisionHash!==n.boundaryRevisionHash||f(r.evidence.input)!==r.evidence.boundary.inputHash||f(r.evidence.observed)!==n.boundaryRevisionHash||r.evidence.boundary.outputHash!==null&&f(r.evidence.answer)!==r.evidence.boundary.outputHash)throw new Error("Connected case readback differs from its exact snapshot or cutoff.");return r}async setCollection(t,e){let n=De.parse(await this.request("/collection","PUT",o.object({paused:o.boolean()}).strict().parse({paused:t}),e));return this.scope(n.teamId),n}async collection(t){let e=De.parse(await this.request("/collection","GET",void 0,t));return this.scope(e.teamId),e}async collectionStatus(t){let e=Vt.parse(await this.request("/collection/status","GET",void 0,t));return this.scope(e.teamId),e}async unmappedEvents(t,e){let n=o.object({id:h,snapshotHash:A,contentHash:A,offset:o.number().int().nonnegative().default(0),limit:o.number().int().min(1).max(50).default(20)}).strict().parse(t),r=Zt.parse(await this.request(`/${encodeURIComponent(n.id)}/unmapped-events?snapshotHash=${n.snapshotHash}&offset=${n.offset}&limit=${n.limit}`,"GET",void 0,e));if(this.scope(r.teamId),r.sourceId!==n.id||r.snapshotHash!==n.snapshotHash||r.contentHash!==n.contentHash||r.offset!==n.offset||r.events.length>n.limit||r.events.some((a,s)=>a.sequence!==n.offset+s)||r.nextOffset!==null&&r.nextOffset!==n.offset+r.events.length)throw new Error("Unmapped source event page differs from its pinned snapshot.");return r}async homeSummary(t,e){let n=o.object({from:o.string().datetime(),to:o.string().datetime(),projectId:h.optional()}).strict(),r=n.parse(t),a=new URLSearchParams(Object.entries(r)),s=o.object({teamId:h,range:n,activity:o.object({conversations:o.number().int().nonnegative(),turns:o.number().int().nonnegative(),chatTurns:o.number().int().nonnegative(),workTurns:o.number().int().nonnegative()}).strict(),accounting:o.object({contextSnapshots:o.number().int().nonnegative()}).strict(),usage:Z}).strict().parse(await this.request(`/summary?${a}`,"GET",void 0,e));if(this.scope(s.teamId),f(s.range)!==f(r)||s.activity.chatTurns+s.activity.workTurns!==s.activity.turns)throw new Error("Activity summary differs from its requested range.");for(let i of[s.usage.days,s.usage.modes,s.usage.models]){if(new Set(i.map(u=>u.key)).size!==i.length)throw new Error("Duplicate usage summary group.");for(let u of Object.keys(s.usage.total))if(i.reduce((c,p)=>c+p[u],0)!==s.usage.total[u])throw new Error("Usage totals differ from their displayed groups.")}return s}async uploadPart(t,e){let n=Ft.parse(t),r=o.object({teamId:h,hash:A,parts:o.number().int(),index:o.number().int()}).strict().parse(await this.request("/imports/upload","POST",n,e));if(this.scope(r.teamId),r.hash!==n.hash||r.parts!==n.parts||r.index!==n.index)throw new Error("Upload receipt differs from its part identity.");return r}async preview(t,e){let n=j.parse(t),r=en.parse(await this.request("/imports/preview","POST",n,e));if(this.scope(r.teamId),r.source!==n.source||f(r.destination)!==f(n.destination)||r.sessions.some(a=>a.origin!==n.source)||new Set(r.sessions.map(a=>a.sessionHash)).size!==r.sessions.length)throw new Error("Import preview differs from its source or destination.");return r}async commit(t,e){let n=Ge.parse(t),r=Je.parse(await this.request("/imports/commit","POST",n,e));if(this.scope(r.teamId),r.operationId!==n.operationId||r.previewHash!==n.previewHash||r.requestHash!==f(n)||r.outcomes.some(a=>!n.selection.some(s=>s.sessionHash===a.sessionHash))||r.state==="completed"&&r.outcomes.length!==n.selection.length)throw new Error("Import receipt differs from its exact selection or operation.");return r}async readImport(t,e){let n=h.parse(t),r=Je.parse(await this.request(`/imports/${encodeURIComponent(n)}`,"GET",void 0,e));if(this.scope(r.teamId),r.operationId!==n)throw new Error("Import identity mismatch.");return r}async prepareRecorded(t,e){let n=Se.parse(t),r=Me(await this.request("/recorded-executions","POST",n,e));if(this.scope(r.teamId),f(r.request)!==f(n))throw new Error("Recorded admission differs from its selected Dataset/cases.");return r}async listRecordedExecutions(t={},e){let n=Kt.parse(t),r=new URLSearchParams(Object.entries(n).filter(([,s])=>s!==void 0).map(([s,i])=>[s,String(i)])),a=Gt.parse(await this.request(`/recorded-executions?${r}`,"GET",void 0,e));if(this.scope(a.teamId),a.items.length>n.limit||a.items.some((s,i)=>s.teamId!==a.teamId||n.projectId&&s.projectId!==n.projectId||n.cursor&&s.id<=n.cursor||i>0&&s.id<=a.items[i-1].id)||a.items.some(s=>s.ownerUserId!==a.items[0]?.ownerUserId)||a.nextCursor!==null&&(n.cursor!==void 0&&a.nextCursor<=n.cursor||a.items.length>0&&a.nextCursor<a.items.at(-1).id))throw new Error("Recorded execution page differs from its requested scope or cursor.");return a}async recordedExecution(t,e){let n=Me(await this.request(`/recorded-executions/${encodeURIComponent(h.parse(t))}`,"GET",void 0,e));if(this.scope(n.teamId),n.id!==t)throw new Error("Recorded execution identity mismatch.");return n}async publishDataset(t,e){let n=Xt.parse(t),r=M.parse(await this.request("/datasets/publish","POST",n,e));this.scope(r.teamId);let a=r.workspace.draft.metadata.connectedPublication;if(r.datasetId!==n.datasetId||!r.publication||!a||typeof a!="object"||!("requestHash"in a)||a.requestHash!==f(n))throw new Error("Published Dataset identity or original selection mismatch.");return r}async createSelection(t,e){let n=o.object({operationId:h.max(240),projectId:h.max(240),name:o.string().trim().min(1).max(200),cases:o.array(ne).min(1).max(500)}).strict().parse(t),r=M.parse(await this.request("/datasets/selection","POST",n,e));if(this.scope(r.teamId),r.originProjectId!==n.projectId||r.workspace.draft.tasks.length!==n.cases.length||r.workspace.draft.tasks.some((a,s)=>f(a.input&&typeof a.input=="object"&&!Array.isArray(a.input)?a.input.connectedEvidenceRef:null)!==f(n.cases[s])))throw new Error("Selected Dataset differs from its exact source population.");return r}scope(t){if(t!==this.options.teamId)throw new Error("Connected evidence workspace mismatch.")}async request(t,e,n,r){let{response:a,value:s}=await Ne(this.options.fetch??fetch,`${this.baseUrl}/v1/connected-evidence${t}`,{method:e,signal:r,redirect:"error",headers:{Authorization:`Bearer ${this.options.apiKey}`,"X-OpenPond-Team-Id":this.options.teamId,"Content-Type":"application/json",Accept:"application/json"},...n===void 0?{}:{body:JSON.stringify(n)}},(i,u,c)=>new Ke(i,u,c));if(!a.ok){let i=o.object({code:o.string(),message:o.string()}).safeParse(s);throw new Ke(a.status,i.success?i.data.code:"connected_request_failed",i.success?i.data.message:"Connected evidence request failed.")}return s}},P=o.string().trim().min(1).max(240),kr=o.object({id:P,source:j.shape.source,machineId:P,sourceInstanceId:P,sourceLabel:o.string().trim().min(1).max(200),sourceRoot:o.string().min(1).max(2e3),destination:j.shape.destination,since:o.string().datetime().nullable(),keepSyncing:o.boolean(),expectedRevision:o.number().int().nonnegative()}).strict(),Er=o.object({id:P,expectedRevision:o.number().int().positive(),action:o.enum(["pause","resume","disconnect"])}).strict(),Ar=o.object({id:P,operationId:P,expectedRevision:o.number().int().positive()}).strict(),Ur=o.object({id:P,expectedRevision:o.number().int().positive(),pendingOperations:o.number().int().min(0).max(1e4),error:o.string().max(500).nullable(),completedSyncRevision:o.number().int().nonnegative().default(0)}).strict(),qr=o.object({teamId:P,id:P,revision:o.number().int().positive(),source:j.shape.source,sourceLabel:o.string(),sourceRoot:o.string(),taskDatasetId:P.nullable(),conversationDatasetId:P.nullable(),machineId:P,sourceInstanceId:P,projectId:P,datasetIds:o.array(P).max(2),since:o.string().datetime().nullable(),keepSyncing:o.boolean(),state:o.enum(["active","paused","disconnected"]),health:o.enum(["online","offline"]),lastHeartbeatAt:o.string().datetime().nullable(),lastAdmissionAt:o.string().datetime().nullable(),pendingOperations:o.number().int().nonnegative(),admittedTasks:o.number().int().nonnegative(),error:o.string().nullable(),requestedSyncRevision:o.number().int().nonnegative().default(0),completedSyncRevision:o.number().int().nonnegative().default(0),syncRequestedAt:o.string().datetime().nullable().default(null),syncCompletedAt:o.string().datetime().nullable().default(null)}).strict().refine(t=>t.completedSyncRevision<=t.requestedSyncRevision&&t.requestedSyncRevision<=t.revision,"Invalid sync acknowledgement generation."),Or=o.object({connectionId:P,expectedRevision:o.number().int().positive(),request:Ge}).strict();function Br(t){let e=d(r=>`/v1/training/candidate-evaluations/${encodeURIComponent(r)}`,"path");function n(r,a,s){let i=rn.parse(r);if(i.teamId!==a||s&&i.id!==s)throw new Error("The preparation belongs to another workspace or candidate operation.");return i}return d(n,"read"),{async options(r,a={}){let s=new URLSearchParams({teamId:r,...a}),i=nn.parse(await t(`/v1/training/candidates?${s}`));if(i.teamId!==r)throw new Error("The candidate catalog belongs to another workspace.");return i},async save(r){let a=Ve.parse(r),s=n(await t(`/v1/training/candidate-evaluations?teamId=${encodeURIComponent(a.teamId)}`,{method:"POST",body:JSON.stringify(a)}),a.teamId);if(s.requestHash!==f(a))throw new Error("The saved preparation differs from the selected candidate or frozen evaluation.");return s},async get(r,a){return n(await t(`${e(a)}?teamId=${encodeURIComponent(r)}`),r,a)},async control(r,a,s,i){let u=on.parse(i),c=n(await t(`${e(a)}/${s}?teamId=${encodeURIComponent(r)}`,{method:"POST",body:JSON.stringify(u)}),r,a);if(c.requestHash!==u.requestHash)throw new Error("The command returned a different frozen evaluation.");return c}}}d(Br,"createCandidateEvaluationClient");var I=o.string().trim().min(1).max(200),we=o.string().regex(/^[a-f0-9]{64}$/),Xe=o.object({id:I,contentHash:we}).strict(),tn=o.object({artifact:Xe,trainingJobId:I,configurationId:I,baseProfileId:I,ready:o.boolean(),reason:o.string().max(1e3).nullable()}).strict(),nn=o.object({teamId:I,ownerUserId:I,items:o.array(tn).max(100),nextCursor:I.nullable()}).strict(),Ve=o.object({teamId:I,operationId:I,artifact:Xe,configuration:H}).strict().superRefine((t,e)=>{(t.configuration.request.teamId!==t.teamId||t.configuration.request.policy.kind==="fixture"||t.configuration.request.policy.candidate)&&e.addIssue({code:"custom",message:"Choose one exact model-backed evaluation before preparing the trained version."})}),rn=o.object({schemaVersion:o.literal("openpond.candidateEvaluationPreparation.v1"),teamId:I,ownerUserId:I,id:I,revision:o.number().int().positive(),requestHash:we,request:Ve,trainingJobId:I,dispatchId:I,lastOperationId:I.nullable(),runtime:o.object({poolId:I,endpointId:I.nullable(),baseProfileId:I,workerImageDigest:o.string().regex(/^sha256:[a-f0-9]{64}$/),modelId:I.nullable()}).strict().nullable(),state:o.enum(["configured","preparing","ready","dispatching","submitted","cleaning","completed","failed","cancelled"]),experimentId:I.nullable(),authorizedAt:o.iso.datetime().nullable(),cancelledAt:o.iso.datetime().nullable(),reason:o.string().max(1e3).nullable(),createdAt:o.iso.datetime(),updatedAt:o.iso.datetime()}).strict().superRefine((t,e)=>{(t.requestHash!==f(t.request)||!t.runtime&&["ready","dispatching","submitted","completed"].includes(t.state))&&e.addIssue({code:"custom",message:"The exact candidate preparation request or runtime changed."})}),on=o.object({operationId:I,expectedRevision:o.number().int().positive(),requestHash:we}).strict();var x=o.string().trim().min(1).max(200),J=o.string().regex(/^[a-f0-9]{64}$/),K=o.string().datetime(),Ye=o.object({operationId:x,id:x.optional(),expectedRevision:o.number().int().nonnegative(),teamId:x,projectId:x.nullable(),enabled:o.boolean(),configuration:H,cadence:o.discriminatedUnion("kind",[o.object({kind:o.literal("interval"),seconds:o.number().int().min(60).max(31536e3)}).strict(),o.object({kind:o.literal("nightly"),calendar:_e}).strict()]),maximumTotalSpendUsd:o.number().finite().positive().max(1e4),maximumAttempts:o.number().int().min(1).max(20)}).strict().superRefine((t,e)=>{(t.configuration.request.teamId!==t.teamId||(t.configuration.request.project?.id??null)!==t.projectId)&&e.addIssue({code:"custom",message:"The scheduled Experiment must retain its actual workspace and Project."}),t.configuration.maximumCostUsd>t.maximumTotalSpendUsd&&e.addIssue({code:"custom",message:"The run ceiling exceeds the approved cumulative schedule ceiling."})}),an=o.object({id:x,scheduledAt:K,coalescedThroughAt:K,coalescedCount:o.number().int().nonnegative(),configurationHash:J,operationId:x,state:o.enum(["reserved","dispatching","running","cleaning","completed","failed","cancelled","uncertain"]),executionId:x.nullable(),attempt:o.number().int().positive(),maximumCostUsd:o.number().finite().positive(),actualSpendUsd:o.number().finite().nonnegative().nullable(),cleanupComplete:o.boolean(),error:o.string().max(4e3).nullable()}).strict(),sn=o.object({schemaVersion:o.literal("openpond.experimentEvaluationSchedule.v1"),id:x,revision:o.number().int().positive(),actorId:x,teamId:x,projectId:x.nullable(),operationId:x,requestHash:J,configuration:H,configurationHash:J,cadence:Ye.shape.cadence,state:o.enum(["scheduled","disabled","blocked"]),nextRunAt:K.nullable(),maximumTotalSpendUsd:o.number().finite().positive(),maximumAttempts:o.number().int().positive(),lastEvaluatedConfigurationHash:J.nullable(),newerUnevaluatedRelease:ee.nullable(),fires:o.array(an).max(1e4),reason:o.string().max(4e3).nullable(),createdAt:K,updatedAt:K,contentHash:J}).strict();function dn(t){let{operationId:e,request:n,...r}=t,{operationId:a,...s}=n;return f({...r,request:s})}d(dn,"scheduledExperimentHash");function cn(t){let e=sn.parse(t);if(ze(e,"Scheduled Experiment"),e.configurationHash!==dn(e.configuration)||e.configuration.request.teamId!==e.teamId||(e.configuration.request.project?.id??null)!==e.projectId)throw new Error("Scheduled Experiment immutable authority differs from its recipe.");return e}d(cn,"verifyExperimentEvaluationSchedule");function Wr(t){return cn({...t,contentHash:f(t)})}d(Wr,"sealExperimentEvaluationSchedule");var un=o.object({teamId:x,id:x,operationId:x,expectedRevision:o.number().int().positive(),action:o.enum(["cancel_active","retry_active","pause"])}).strict(),Gr=o.discriminatedUnion("operation",[o.object({operation:o.literal("publish"),request:Ye}).strict(),o.object({operation:o.literal("control"),request:un}).strict(),o.object({operation:o.literal("read"),id:x}).strict(),o.object({operation:o.literal("list"),cursor:x.optional(),limit:o.number().int().min(1).max(100).default(50)}).strict()]);function pn(t){return{list:d((e={})=>t.listSandboxRuntimes(e),"list"),create:d(e=>t.createSandboxRuntime(e),"create"),handle:d((e,n=null)=>t.sandboxRuntime(e,n),"handle"),get:d(e=>t.getSandboxRuntime(e),"get"),createSandbox:d((e,n={},r={})=>t.createSandboxRuntimeSandbox(e,n,r),"createSandbox"),updateStatus:d((e,n)=>t.updateSandboxRuntimeStatus(e,n),"updateStatus"),events:d(e=>t.listSandboxRuntimeEvents(e),"events"),event:d((e,n)=>t.emitSandboxRuntimeEvent(e,n),"event"),checkpoint:d((e,n={})=>t.checkpointSandboxRuntime(e,n),"checkpoint"),promote:d((e,n,r={})=>t.promoteSandboxRuntime(e,n,r),"promote"),preserveSource:d((e,n={},r={})=>t.preserveSandboxRuntimeSource(e,n,r),"preserveSource")}}d(pn,"createSandboxRuntimeNamespace");function mn(t){return{list:d((e={})=>t.list(e),"list"),create:d(e=>t.create(e),"create"),get:d(e=>t.get(e),"get"),pricing:d(()=>t.pricing(),"pricing"),costs:d((e={})=>t.costs(e),"costs")}}d(mn,"createSandboxNamespace");function ln(t){return{list:d(e=>t.listProjects(e),"list"),upsert:d(e=>t.upsertProject(e),"upsert"),upsertGitRemote:d(e=>t.upsertProjectGitRemote(e),"upsertGitRemote"),get:d((e,n)=>t.getProject(e,n),"get"),update:d((e,n)=>t.updateProject(e,n),"update"),sync:d((e,n)=>t.syncProject(e,n),"sync"),ensureGitRemote:d((e,n)=>t.ensureProjectGitRemote(e,n),"ensureGitRemote"),getGitRemote:d((e,n)=>t.ensureProjectGitRemote(e,n),"getGitRemote"),git:d((e,n)=>t.ensureProjectGitRemote(e,n),"git"),uploadSource:d((e,n)=>t.uploadProjectSource(e,n),"uploadSource"),archive:d((e,n)=>t.archiveProject(e,n),"archive")}}d(ln,"createSandboxProjectNamespace");function hn(t){return{get:d(e=>t.getHostedProfile(e),"get"),status:d(e=>t.getHostedProfile(e),"status"),ensureHosted:d(e=>t.ensureHostedProfile(e),"ensureHosted"),push:d(e=>t.pushHostedProfile(e),"push")}}d(hn,"createSandboxProfileNamespace");function fn(t){return{list:d(e=>t.listAgents(e),"list"),upsert:d(e=>t.upsertAgent(e),"upsert"),get:d((e,n)=>t.getAgent(e,n),"get"),update:d((e,n)=>t.updateAgent(e,n),"update"),archive:d((e,n)=>t.archiveAgent(e,n),"archive"),run:d((e,n)=>t.runAgent(e,n),"run"),sourceDeployPlan:d((e,n)=>t.getAgentSourceDeployPlan(e,n),"sourceDeployPlan"),manifestSnapshots:d((e,n)=>t.listAgentManifestSnapshots(e,n),"manifestSnapshots"),requestSourceChecks:d((e,n)=>t.requestAgentSourceChecks(e,n),"requestSourceChecks"),configureSourceSetup:d((e,n)=>t.configureAgentSourceSetup(e,n),"configureSourceSetup"),publishSource:d((e,n)=>t.publishAgentSource(e,n),"publishSource")}}d(fn,"createSandboxAgentNamespace");function yn(t,e,n=null){let r=d(async(c={},p={})=>{let b=await t.getSandboxRuntime(e);return b.sandboxId?t.get(b.sandboxId):t.createSandboxRuntimeSandbox(e,c,p).then(l=>l.sandbox)},"currentSandbox"),a=d(async(c={},p={})=>{let b=await t.getSandboxRuntime(e);if(!b.sandboxId)return t.createSandboxRuntimeSandbox(e,c,p).then(g=>g.sandbox);let l=await t.get(b.sandboxId);return l.state==="stopped"?t.start(l.id,p).then(g=>g.sandbox):l.state==="archived"?t.restore(l.id).then(g=>g.sandbox):l.state==="deleted"||l.state==="error"?t.createSandboxRuntimeSandbox(e,c,p).then(g=>g.sandbox):l},"resume");return{id:e,initial:n,get:d(()=>t.getSandboxRuntime(e),"get"),sandbox:r,resume:a,createSandbox:d((c={},p={})=>t.createSandboxRuntimeSandbox(e,c,p),"createSandbox"),status:d(async c=>{if(typeof c!="string")return t.updateSandboxRuntimeStatus(e,c);let p=await t.getSandboxRuntime(e);return t.updateSandboxRuntimeStatus(e,{status:c,expectedVersion:p.version})},"status"),events:d(()=>t.listSandboxRuntimeEvents(e),"events"),event:d(c=>t.emitSandboxRuntimeEvent(e,c),"event"),recordCommit:d((c,p={})=>t.emitSandboxRuntimeEvent(e,{...p,type:p.type??"git.commit",commitSha:c}),"recordCommit"),checkpointHint:d((c={})=>t.emitSandboxRuntimeEvent(e,{type:"workflow.checkpoint_hint",summary:c.summary??c.reason??"Workflow checkpoint hint",payload:{...c.payload,reason:c.reason??null},artifactRefs:c.artifactRefs,lifecycleHint:{kind:"checkpoint",reason:c.reason??null}}),"checkpointHint"),waitForUser:d(async(c={})=>{await t.emitSandboxRuntimeEvent(e,{type:"workflow.waiting_for_user",summary:c.summary??c.reason??"Waiting for user",payload:{...c.payload,reason:c.reason??null},lifecycleHint:{kind:"waiting_for_user",reason:c.reason??null}});let p=await t.getSandboxRuntime(e);return p.status==="waiting_for_user"?p:t.updateSandboxRuntimeStatus(e,{status:"waiting_for_user",expectedVersion:p.version,summary:c.summary??c.reason,metadata:{workflowWaitForUserReason:c.reason??null}})},"waitForUser"),keepAlive:d((c={})=>{let p=gn(c);return t.emitSandboxRuntimeEvent(e,{type:"workflow.keepalive",summary:c.summary??c.reason??"Workflow keepalive",payload:{...c.payload,reason:c.reason??null,keepaliveUntil:p},lifecycleHint:{kind:"keepalive",reason:c.reason??null,keepaliveUntil:p}})},"keepAlive"),checkpoint:d(c=>t.checkpointSandboxRuntime(e,c),"checkpoint"),files:{write:d(async(c,p)=>t.uploadFile((await a()).id,c,p),"write"),read:d(async c=>t.downloadFile((await a()).id,c),"read"),readResponse:d(async c=>t.downloadFileResponse((await a()).id,c),"readResponse"),list:d(async(c={})=>t.listFiles((await a()).id,c),"list"),delete:d(async(c,p={})=>t.deleteFile((await a()).id,c,p),"delete"),search:d(async c=>t.searchFiles((await a()).id,c),"search"),stat:d(async c=>t.statFile((await a()).id,c),"stat"),mkdir:d(async c=>t.mkdir((await a()).id,c),"mkdir"),move:d(async c=>t.moveFile((await a()).id,c),"move")},commands:{run:d(async c=>t.exec((await a()).id,typeof c=="string"?{command:c}:c),"run")},ports:{expose:d(async c=>t.openPort((await a()).id,typeof c=="number"?{port:c}:c),"expose")},promote:d((c,p={})=>t.promoteSandboxRuntime(e,c,p),"promote"),preserveSource:d((c={},p={})=>t.preserveSandboxRuntimeSource(e,c,p),"preserveSource"),archive:d(async c=>{let p=c??(await t.getSandboxRuntime(e)).version;return t.updateSandboxRuntimeStatus(e,{status:"archived",expectedVersion:p})},"archive")}}d(yn,"createSandboxRuntimeHandle");function gn(t){if(t?.until instanceof Date)return t.until.toISOString();if(typeof t?.until=="string"&&t.until.trim())return new Date(t.until).toISOString();let e=typeof t?.seconds=="number"&&Number.isFinite(t.seconds)?Math.max(1,Math.trunc(t.seconds)):60;return new Date(Date.now()+e*1e3).toISOString()}d(gn,"runtimeKeepaliveUntilIso");async function bn(t,e={}){let n=`openpond-code-smoke-${Date.now()}`,r=`openpond-code-exec-ok:${n}`,a=`openpond-code-preview-ok:${n}`,s=`openpond-code-file-ok:${n}`,i=4173,u=null,c=null,p=!1,b=!1;try{let l=await Ze(t,await t.create({repo:e.repo??"https://github.com/octocat/Hello-World",resources:{cpu:e.cpu??1,memoryGb:e.memoryGb??1,diskGb:e.diskGb??8},budget:{maxUsd:e.budgetUsd??"0.05"},quotas:{maxSpendUsd:e.budgetUsd??"0.05",maxDurationSeconds:600,idleTimeoutSeconds:600,maxOpenPorts:2},metadata:{runId:n,source:"openpond-code-sandbox-smoke"}},{async:!0}));u=l.id;let g=e.expectedMppMode;if(g&&l.reservation.mpp?.mode!==g)throw new Error(`expected ${g} reservation, got ${l.reservation.mpp?.mode??"none"}`);if(!g&&!l.reservation.mpp?.mode)throw new Error("expected sandbox reservation MPP metadata");let E=await t.exec(l.id,{command:[`printf '${r}\\n'`,"test -f README && printf 'repo-clone-ok\\n'","cat > server.cjs <<'EOF'","const { createServer } = require('node:http');",`createServer((_request, response) => response.end('${a}')).listen(${i}, '0.0.0.0');`,"EOF","nohup node server.cjs > server.log 2>&1 & sleep 1"].join(`
2
+ import{b as Be}from"./chunk-SYUKES6H.js";import{a as ye}from"./chunk-GOPFFQZU.js";import{k as he,m as fe,n as Le}from"./chunk-OQPJ7FJF.js";import{a as me,b as le}from"./chunk-3QIB5FXI.js";import{c as Ne}from"./chunk-KO3HNMLJ.js";import{a as ue,t as pe}from"./chunk-25JDHAZ5.js";import{Va as H}from"./chunk-XMKCCLGB.js";import{e as ee,l as f,m as ze}from"./chunk-WN3V6KDN.js";import{a as Z}from"./chunk-QDC4OW3S.js";import{a as Te}from"./chunk-ZZWAQBA2.js";import{b as B}from"./chunk-YR5ID2SS.js";import{c as V,d as qe,e as Y,f as Q}from"./chunk-APB2STJK.js";import{k as _e}from"./chunk-VYLGI3IH.js";import{Aa as je,oa as Oe,ub as $e}from"./chunk-ACYFMLWG.js";import{b as o}from"./chunk-ES2ISFJC.js";import{a as d}from"./chunk-FTQLQJQV.js";var zt=3e4,Lt=8*1024*1024,Kn={timeoutMs:900*1e3,maxResponseBytes:64*1024*1024},He=class extends Error{static{d(this,"ApiTimeoutError")}timeoutMs;requestUrl;code="OPENPOND_API_TIMEOUT";constructor(t,e){super(`API request timed out after ${t}ms: ${e}`),this.timeoutMs=t,this.requestUrl=e,this.name="ApiTimeoutError"}},ge=class extends Error{static{d(this,"ApiResponseTooLargeError")}maximumBytes;requestUrl;code="OPENPOND_API_RESPONSE_TOO_LARGE";constructor(t,e){super(`API response exceeded ${t} bytes: ${e}`),this.maximumBytes=t,this.requestUrl=e,this.name="ApiResponseTooLargeError"}},Fe=class extends Error{static{d(this,"OpenPondApiError")}status;apiMessage;code;constructor(t,e,n,r=null){let a=r||e;super(`${n} failed: ${t}${a?` ${a}`:""}`),this.status=t,this.apiMessage=r,this.name="OpenPondApiError",this.code=e||"OPENPOND_API_ERROR"}};async function te(t,e,n,r={}){let{timeoutMs:a=zt,maxResponseBytes:s=Lt,explicitBearerAuth:i=!1,...u}=r,c=`${t}${n}`,p=new Headers(u.headers);p.set("Content-Type","application/json");let b=i?void 0:process.env.OPENPOND_API_KEY,l=e?.trim()||"",g=!i&&l.startsWith("opk_"),E=b||(g?l:null);E&&!p.has("openpond-api-key")&&p.set("openpond-api-key",E),e?p.set("Authorization",g?`ApiKey ${l}`:`Bearer ${e}`):b&&!p.has("Authorization")&&p.set("Authorization",`ApiKey ${b}`);let N=new AbortController,O=new He(a,c),T=a>0?setTimeout(()=>N.abort(O),a):null;T?.unref?.();let ce=Bt(u.signal,N.signal,a),X=d(()=>{T&&clearTimeout(T)},"cleanup");try{let C=await fetch(c,{...u,headers:p,signal:ce});return Nt(C,{cleanup:X,maximumBytes:s,requestUrl:c,timeoutController:N,timeoutError:O})}catch(C){throw X(),N.signal.aborted?O:C}}d(te,"apiFetch");async function be(t,e){let n;try{let r=await t.text();n=r?JSON.parse(r):{}}catch(r){if(r instanceof He||r instanceof ge)throw r;n={}}if(!t.ok){let r=typeof n.error=="string"?n.error:null,a=typeof n.message=="string"?n.message:null;throw new Fe(t.status,r,e,a)}return n}d(be,"readApiJson");function Nt(t,e){if(!t.body)return e.cleanup(),t;let n=Number(t.headers.get("content-length"));if(e.maximumBytes>0&&Number.isFinite(n)&&n>e.maximumBytes)throw e.cleanup(),t.body.cancel(),new ge(e.maximumBytes,e.requestUrl);let r=t.body.getReader(),a=0,s=new ReadableStream({async pull(i){try{let u=await r.read();if(u.done){e.cleanup(),i.close();return}if(a+=u.value.byteLength,e.maximumBytes>0&&a>e.maximumBytes){e.cleanup(),await r.cancel(),i.error(new ge(e.maximumBytes,e.requestUrl));return}i.enqueue(u.value)}catch(u){e.cleanup(),i.error(e.timeoutController.signal.aborted?e.timeoutError:u)}},async cancel(i){e.cleanup(),await r.cancel(i)}});return new Response(s,{headers:t.headers,status:t.status,statusText:t.statusText})}d(Nt,"boundedResponse");function Bt(t,e,n){return n<=0?t??void 0:t?AbortSignal.any([t,e]):e}d(Bt,"composedSignal");var R=o.string().trim().min(1).max(240),F=o.string().regex(/^[a-f0-9]{64}$/),tr=o.object({cursor:o.string().trim().min(1).max(2e3).optional(),projectId:R.optional(),search:o.string().trim().max(100).optional(),sort:o.enum(["id","name","updated"]).default("id"),limit:o.number().int().min(1).max(100).default(100)}).strict(),nr=o.object({operationId:R,expectedRevision:o.number().int().nonnegative(),originProjectId:R.optional(),workspace:pe,ownerScope:o.enum(["workspace","personal"]).optional()}).strict().superRefine((t,e)=>{t.workspace.draft.modelScope!==null&&e.addIssue({code:"custom",message:"Independent datasets cannot carry Model-owned draft preparation."}),t.workspace.draft.status!=="draft"&&e.addIssue({code:"custom",message:"Only draft workspaces can be saved."})}),M=o.object({schemaVersion:o.literal("openpond.datasetWorkspaceReceipt.v1"),teamId:R,datasetId:R,revision:o.number().int().positive(),originProjectId:R.optional(),workspace:pe,ownerScope:o.enum(["workspace","personal"]).optional(),publication:o.object({tasksetId:R,release:ue,packageHash:F}).strict().nullable()}).strict().superRefine((t,e)=>{(t.workspace.draft.id!==t.datasetId||t.workspace.draft.profileId!==t.teamId||t.workspace.draft.revision!==t.revision||t.workspace.draft.modelScope!==null)&&e.addIssue({code:"custom",message:"Dataset workspace scope/revision mismatch."})}),rr=o.object({operationId:R,expectedRevision:o.number().int().positive(),workspaceHash:F,packageHash:F}).strict(),or=o.object({operationId:R,expectedRevision:o.number().int().positive()}).strict(),ar=o.object({teamId:R,datasetId:R,items:o.array(o.object({workspaceRevision:o.number().int().positive(),publication:M.shape.publication.unwrap(),publishedAt:o.iso.datetime()}).strict()).max(25),nextBeforeRevision:o.number().int().positive().nullable()}).strict(),sr=o.object({teamId:R,datasets:o.array(o.object({id:R,revision:o.number().int().positive(),originProjectId:R.optional(),name:o.string(),status:o.enum(["draft","published"]),ownerScope:o.enum(["workspace","personal"]).optional(),taskCount:o.number().int().nonnegative().optional(),publication:M.shape.publication,updatedAt:o.string().datetime()}).strict()).max(100),nextCursor:o.string().trim().min(1).max(2e3).nullable()}).strict(),ir=o.object({teamId:R,datasetId:R,revision:o.number().int().positive(),workspaceHash:F,packageHash:F,release:ue}).strict();var S=o.string().trim().min(1).max(500),L=o.string().regex(/^[a-f0-9]{64}$/),hr=o.object({teamId:S,ownerUserId:S}).strict(),ne=o.object({id:S,snapshotHash:L,boundaryId:S,boundaryRevisionHash:L}).strict(),Ie=o.object({sourceId:S,source:qe,sessionId:S,snapshotHash:L,title:o.string().max(500),projectId:S.nullable(),capturedAt:o.string().datetime(),boundaries:o.array(Q.omit({start:!0,end:!0})).max(V.boundaries)}).strict(),Ht=o.object({operationId:S,conversationId:S.optional(),cursor:S.optional(),limit:o.number().int().min(1).max(50).default(20)}).strict(),We=o.object({hash:L,parts:o.number().int().min(1).max(1500)}).strict(),Ft=We.extend({index:o.number().int().nonnegative().max(1499),base64:o.string().max(35e4)}).strict(),fr=o.object({path:o.string().min(1).max(500),encoding:o.enum(["utf8","zstd"]),base64:o.string()}).strict(),j=o.object({upload:We,source:o.enum(["codex","claude_code","hermes","openclaw","opencode","grok_build","pi","oh_my_pi"]),branchLeafId:S.optional(),acquisition:o.object({machineId:S,sourceInstanceId:S}).strict().optional(),destination:o.discriminatedUnion("kind",[o.object({kind:o.literal("existing"),projectId:S}).strict(),o.object({kind:o.literal("new"),name:o.string().trim().min(1).max(200)}).strict()])}).strict(),Ge=j.extend({operationId:S,previewHash:L,selection:o.array(o.object({sessionHash:L,boundaryIds:o.array(S).min(1).max(V.boundaries)}).strict()).min(1).max(V.sessions)}).strict(),Mt=o.object({from:o.string().datetime(),to:o.string().datetime(),projectId:S.optional()}).strict(),yr=o.object({teamId:S,range:Mt,activity:o.object({conversations:o.number().int().nonnegative(),turns:o.number().int().nonnegative(),chatTurns:o.number().int().nonnegative(),workTurns:o.number().int().nonnegative()}).strict(),accounting:o.object({contextSnapshots:o.number().int().nonnegative()}).strict(),usage:Z}).strict(),k=o.string().min(1).max(200),z=o.string().regex(/^[a-f0-9]{64}$/),Se=o.object({operationId:k,name:o.string().trim().min(1).max(500),projectId:k,dataset:ee.extend({revision:o.number().int().positive()}).strict(),caseIds:o.array(k).min(1).max(1e4)}).strict().superRefine((t,e)=>{new Set(t.caseIds).size!==t.caseIds.length&&e.addIssue({code:"custom",message:"Select each case once."})}),Dt=ne.extend({inputHash:z,outputHash:z.nullable(),task:Oe,taskHash:z}).strict(),Jt=o.object({schemaVersion:o.literal("openpond.connectedRecordedExecution.v1"),id:k,teamId:k,ownerUserId:k,request:Se,manifest:$e,sources:o.array(Dt).min(1).max(1e4),contentHash:z}).strict();function Me(t){let e=Jt.parse(t),{contentHash:n,...r}=e,{contentHash:a,...s}=e.manifest;if(f(r)!==n||f(s)!==a||e.manifest.teamId!==e.teamId||e.manifest.id!==e.id||e.manifest.operationId!==e.request.operationId||f(e.manifest.dataset)!==f(e.request.dataset)||e.sources.length!==e.request.caseIds.length||e.sources.length!==e.manifest.population.length||e.sources.some((i,u)=>i.taskHash!==f(i.task)||i.task.id!==e.request.caseIds[u]||i.boundaryId!==i.task.id||e.manifest.population[u]?.caseId!==i.boundaryId))throw new Error("Recorded execution identity or population integrity failed.");return e}d(Me,"verifyConnectedRecordedExecution");var Kt=o.object({projectId:k.optional(),cursor:k.optional(),limit:o.number().int().min(1).max(50).default(20)}).strict(),Wt=o.object({id:k,teamId:k,ownerUserId:k,projectId:k,name:o.string().min(1).max(500),dataset:Se.shape.dataset,manifestHash:z,contentHash:z,caseCount:o.number().int().min(1).max(1e4),createdAt:o.string().datetime()}).strict(),Gt=o.object({teamId:k,items:o.array(Wt).max(50),nextCursor:k.nullable()}).strict(),Xt=o.object({datasetId:o.string().trim().min(1).max(240),expectedRevision:o.number().int().positive(),operationId:o.string().trim().min(1).max(240),graders:o.array(je).min(1).max(100).optional()}).strict().superRefine((t,e)=>{t.graders&&new Set(t.graders.map(n=>n.id)).size!==t.graders.length&&e.addIssue({code:"custom",path:["graders"],message:"Choose one exact revision of each grader."})}),D=o.string().min(1).max(500),q=o.number().int().nonnegative(),Vt=o.object({teamId:D,ownerUserId:D,projectId:D.nullable(),status:o.enum(["active","paused","archived"]),revision:q,state:o.enum(["collecting","pending","attention","paused","archived"]),lastReconciledAt:o.string().datetime().nullable(),lastCapturedAt:o.string().datetime().nullable(),historyDays:o.number().int().positive(),sources:q,tasks:q,datasets:o.array(o.object({datasetId:D,projection:o.enum(["turn","conversation"]),revision:q}).strict()).max(2),latestBatch:o.object({operationId:D,updatedAt:o.string().datetime(),scanned:q,captured:q,unchanged:q,pending:q,failed:q,excluded:q,paused:q,hasMore:o.boolean()}).strict().nullable()}).strict(),h=o.string().min(1).max(500),A=o.string().regex(/^[a-f0-9]{64}$/),De=o.object({teamId:h,projectId:h.nullable(),status:o.enum(["active","paused","archived"]),revision:o.number().int().nonnegative()}).strict(),Yt=o.object({teamId:h,operationId:h,projectId:h.nullable(),outcomes:o.array(o.object({conversationId:h,state:o.enum(["captured","unchanged","pending","paused","excluded","failed"]),sourceId:h.optional(),snapshotHash:A.optional(),reason:o.string().optional()}).strict()).max(50),nextCursor:h.nullable()}).strict(),Qt=o.object({teamId:h,ref:ne,origin:Ie.shape.source,sessionId:h,projectId:h,capturedAt:o.string().datetime(),unmappedEvidence:o.object({count:o.number().int().nonnegative().max(1e5),contentHash:A}).strict(),evidence:o.object({input:o.array(Y),observed:o.array(Y),answer:o.json(),boundary:Q}).strict()}).strict(),Zt=o.object({teamId:h,sourceId:h,snapshotHash:A,contentHash:A,count:o.number().int().nonnegative(),offset:o.number().int().nonnegative(),events:o.array(Y).max(50),nextOffset:o.number().int().nonnegative().nullable()}).strict(),en=o.object({teamId:h,source:j.shape.source,sourceHash:A,previewHash:A,destination:j.shape.destination,issues:o.array(o.object({file:o.string(),message:o.string()}).strict()).max(100),sessions:o.array(o.object({sessionHash:A,sessionId:h,origin:Ie.shape.source,exporterVersion:o.string().nullable(),eventCount:o.number().int().nonnegative(),boundaries:o.array(o.object({id:h,projection:o.enum(["turn","conversation"]),answer:o.boolean(),process:o.enum(["retained","partial","absent"]),terminal:o.enum(["completed","failed","cancelled","unknown"])}).strict()).max(5001),warnings:o.array(o.string()).max(100),sample:o.array(o.object({role:o.enum(["user","assistant","system","tool"]).nullable(),text:o.string().max(4e3)}).strict()).max(3)}).strict()).max(1e3)}).strict(),Je=o.object({teamId:h,operationId:h,requestHash:A,previewHash:A,projectId:h.optional(),state:o.enum(["admitting","publishing","completed","failed"]),outcomes:o.array(o.object({sessionHash:A,sourceId:h,status:o.enum(["imported","already_present"]),datasets:o.array(o.object({datasetId:h,revision:o.number().int().positive(),changed:o.boolean()}).strict()).max(2)}).strict()).max(1e3),error:o.string().optional()}).strict(),Ke=class extends Error{static{d(this,"ConnectedEvidenceError")}constructor(t,e,n){super(n),this.status=t,this.code=e,this.name="ConnectedEvidenceError"}status;code},Pr=class{static{d(this,"ConnectedEvidenceClient")}constructor(t){this.options=t;let e=new URL(t.baseUrl);if(!["http:","https:"].includes(e.protocol)||e.username||e.password||e.search||e.hash||!t.apiKey.trim()||!t.teamId.trim())throw new Error("A clean API origin and workspace credentials are required.");this.baseUrl=e.toString().replace(/\/+$/,"")}options;baseUrl;async capture(t,e){let n=Ht.parse(t),r=Yt.parse(await this.request("/capture","POST",n,e));if(this.scope(r.teamId),r.operationId!==n.operationId||r.outcomes.length>n.limit||n.conversationId&&r.outcomes.some(a=>a.conversationId!==n.conversationId))throw new Error("Capture receipt differs from its requested source or operation.");return r}async list(t={},e){let n=o.object({projectId:h.optional(),cursor:h.optional(),limit:o.number().int().min(1).max(50).default(20)}).strict().parse(t),r=new URLSearchParams(Object.entries(n).filter(([,s])=>s!==void 0).map(([s,i])=>[s,String(i)])),a=o.object({teamId:h,items:o.array(Ie).max(50),nextCursor:h.nullable()}).strict().parse(await this.request(`?${r}`,"GET",void 0,e));if(this.scope(a.teamId),a.items.length>n.limit||new Set(a.items.map(s=>s.sourceId)).size!==a.items.length||a.nextCursor!==null&&a.nextCursor===n.cursor||n.projectId&&a.items.some(s=>s.projectId!==n.projectId))throw new Error("Connected source page differs from its requested scope.");return a}async read(t,e){let n=ne.parse(t),r=Qt.parse(await this.request(`/${encodeURIComponent(n.id)}/cases/${encodeURIComponent(n.boundaryId)}?snapshotHash=${n.snapshotHash}&revisionHash=${n.boundaryRevisionHash}`,"GET",void 0,e));if(this.scope(r.teamId),f(r.ref)!==f(n)||r.evidence.boundary.id!==n.boundaryId||r.evidence.boundary.revisionHash!==n.boundaryRevisionHash||f(r.evidence.input)!==r.evidence.boundary.inputHash||f(r.evidence.observed)!==n.boundaryRevisionHash||r.evidence.boundary.outputHash!==null&&f(r.evidence.answer)!==r.evidence.boundary.outputHash)throw new Error("Connected case readback differs from its exact snapshot or cutoff.");return r}async setCollection(t,e){let n=De.parse(await this.request("/collection","PUT",o.object({paused:o.boolean()}).strict().parse({paused:t}),e));return this.scope(n.teamId),n}async collection(t){let e=De.parse(await this.request("/collection","GET",void 0,t));return this.scope(e.teamId),e}async collectionStatus(t){let e=Vt.parse(await this.request("/collection/status","GET",void 0,t));return this.scope(e.teamId),e}async unmappedEvents(t,e){let n=o.object({id:h,snapshotHash:A,contentHash:A,offset:o.number().int().nonnegative().default(0),limit:o.number().int().min(1).max(50).default(20)}).strict().parse(t),r=Zt.parse(await this.request(`/${encodeURIComponent(n.id)}/unmapped-events?snapshotHash=${n.snapshotHash}&offset=${n.offset}&limit=${n.limit}`,"GET",void 0,e));if(this.scope(r.teamId),r.sourceId!==n.id||r.snapshotHash!==n.snapshotHash||r.contentHash!==n.contentHash||r.offset!==n.offset||r.events.length>n.limit||r.events.some((a,s)=>a.sequence!==n.offset+s)||r.nextOffset!==null&&r.nextOffset!==n.offset+r.events.length)throw new Error("Unmapped source event page differs from its pinned snapshot.");return r}async homeSummary(t,e){let n=o.object({from:o.string().datetime(),to:o.string().datetime(),projectId:h.optional()}).strict(),r=n.parse(t),a=new URLSearchParams(Object.entries(r)),s=o.object({teamId:h,range:n,activity:o.object({conversations:o.number().int().nonnegative(),turns:o.number().int().nonnegative(),chatTurns:o.number().int().nonnegative(),workTurns:o.number().int().nonnegative()}).strict(),accounting:o.object({contextSnapshots:o.number().int().nonnegative()}).strict(),usage:Z}).strict().parse(await this.request(`/summary?${a}`,"GET",void 0,e));if(this.scope(s.teamId),f(s.range)!==f(r)||s.activity.chatTurns+s.activity.workTurns!==s.activity.turns)throw new Error("Activity summary differs from its requested range.");for(let i of[s.usage.days,s.usage.modes,s.usage.models]){if(new Set(i.map(u=>u.key)).size!==i.length)throw new Error("Duplicate usage summary group.");for(let u of Object.keys(s.usage.total))if(i.reduce((c,p)=>c+p[u],0)!==s.usage.total[u])throw new Error("Usage totals differ from their displayed groups.")}return s}async uploadPart(t,e){let n=Ft.parse(t),r=o.object({teamId:h,hash:A,parts:o.number().int(),index:o.number().int()}).strict().parse(await this.request("/imports/upload","POST",n,e));if(this.scope(r.teamId),r.hash!==n.hash||r.parts!==n.parts||r.index!==n.index)throw new Error("Upload receipt differs from its part identity.");return r}async preview(t,e){let n=j.parse(t),r=en.parse(await this.request("/imports/preview","POST",n,e));if(this.scope(r.teamId),r.source!==n.source||f(r.destination)!==f(n.destination)||r.sessions.some(a=>a.origin!==n.source)||new Set(r.sessions.map(a=>a.sessionHash)).size!==r.sessions.length)throw new Error("Import preview differs from its source or destination.");return r}async commit(t,e){let n=Ge.parse(t),r=Je.parse(await this.request("/imports/commit","POST",n,e));if(this.scope(r.teamId),r.operationId!==n.operationId||r.previewHash!==n.previewHash||r.requestHash!==f(n)||r.outcomes.some(a=>!n.selection.some(s=>s.sessionHash===a.sessionHash))||r.state==="completed"&&r.outcomes.length!==n.selection.length)throw new Error("Import receipt differs from its exact selection or operation.");return r}async readImport(t,e){let n=h.parse(t),r=Je.parse(await this.request(`/imports/${encodeURIComponent(n)}`,"GET",void 0,e));if(this.scope(r.teamId),r.operationId!==n)throw new Error("Import identity mismatch.");return r}async prepareRecorded(t,e){let n=Se.parse(t),r=Me(await this.request("/recorded-executions","POST",n,e));if(this.scope(r.teamId),f(r.request)!==f(n))throw new Error("Recorded admission differs from its selected Dataset/cases.");return r}async listRecordedExecutions(t={},e){let n=Kt.parse(t),r=new URLSearchParams(Object.entries(n).filter(([,s])=>s!==void 0).map(([s,i])=>[s,String(i)])),a=Gt.parse(await this.request(`/recorded-executions?${r}`,"GET",void 0,e));if(this.scope(a.teamId),a.items.length>n.limit||a.items.some((s,i)=>s.teamId!==a.teamId||n.projectId&&s.projectId!==n.projectId||n.cursor&&s.id<=n.cursor||i>0&&s.id<=a.items[i-1].id)||a.items.some(s=>s.ownerUserId!==a.items[0]?.ownerUserId)||a.nextCursor!==null&&(n.cursor!==void 0&&a.nextCursor<=n.cursor||a.items.length>0&&a.nextCursor<a.items.at(-1).id))throw new Error("Recorded execution page differs from its requested scope or cursor.");return a}async recordedExecution(t,e){let n=Me(await this.request(`/recorded-executions/${encodeURIComponent(h.parse(t))}`,"GET",void 0,e));if(this.scope(n.teamId),n.id!==t)throw new Error("Recorded execution identity mismatch.");return n}async publishDataset(t,e){let n=Xt.parse(t),r=M.parse(await this.request("/datasets/publish","POST",n,e));this.scope(r.teamId);let a=r.workspace.draft.metadata.connectedPublication;if(r.datasetId!==n.datasetId||!r.publication||!a||typeof a!="object"||!("requestHash"in a)||a.requestHash!==f(n))throw new Error("Published Dataset identity or original selection mismatch.");return r}async createSelection(t,e){let n=o.object({operationId:h.max(240),projectId:h.max(240),name:o.string().trim().min(1).max(200),cases:o.array(ne).min(1).max(500)}).strict().parse(t),r=M.parse(await this.request("/datasets/selection","POST",n,e));if(this.scope(r.teamId),r.originProjectId!==n.projectId||r.workspace.draft.tasks.length!==n.cases.length||r.workspace.draft.tasks.some((a,s)=>f(a.input&&typeof a.input=="object"&&!Array.isArray(a.input)?a.input.connectedEvidenceRef:null)!==f(n.cases[s])))throw new Error("Selected Dataset differs from its exact source population.");return r}scope(t){if(t!==this.options.teamId)throw new Error("Connected evidence workspace mismatch.")}async request(t,e,n,r){let{response:a,value:s}=await Ne(this.options.fetch??fetch,`${this.baseUrl}/v1/connected-evidence${t}`,{method:e,signal:r,redirect:"error",headers:{Authorization:`Bearer ${this.options.apiKey}`,"X-OpenPond-Team-Id":this.options.teamId,"Content-Type":"application/json",Accept:"application/json"},...n===void 0?{}:{body:JSON.stringify(n)}},(i,u,c)=>new Ke(i,u,c));if(!a.ok){let i=o.object({code:o.string(),message:o.string()}).safeParse(s);throw new Ke(a.status,i.success?i.data.code:"connected_request_failed",i.success?i.data.message:"Connected evidence request failed.")}return s}},P=o.string().trim().min(1).max(240),kr=o.object({id:P,source:j.shape.source,machineId:P,sourceInstanceId:P,sourceLabel:o.string().trim().min(1).max(200),sourceRoot:o.string().min(1).max(2e3),destination:j.shape.destination,since:o.string().datetime().nullable(),keepSyncing:o.boolean(),expectedRevision:o.number().int().nonnegative()}).strict(),Er=o.object({id:P,expectedRevision:o.number().int().positive(),action:o.enum(["pause","resume","disconnect"])}).strict(),Ar=o.object({id:P,operationId:P,expectedRevision:o.number().int().positive()}).strict(),Ur=o.object({id:P,expectedRevision:o.number().int().positive(),pendingOperations:o.number().int().min(0).max(1e4),error:o.string().max(500).nullable(),completedSyncRevision:o.number().int().nonnegative().default(0)}).strict(),qr=o.object({teamId:P,id:P,revision:o.number().int().positive(),source:j.shape.source,sourceLabel:o.string(),sourceRoot:o.string(),taskDatasetId:P.nullable(),conversationDatasetId:P.nullable(),machineId:P,sourceInstanceId:P,projectId:P,datasetIds:o.array(P).max(2),since:o.string().datetime().nullable(),keepSyncing:o.boolean(),state:o.enum(["active","paused","disconnected"]),health:o.enum(["online","offline"]),lastHeartbeatAt:o.string().datetime().nullable(),lastAdmissionAt:o.string().datetime().nullable(),pendingOperations:o.number().int().nonnegative(),admittedTasks:o.number().int().nonnegative(),error:o.string().nullable(),requestedSyncRevision:o.number().int().nonnegative().default(0),completedSyncRevision:o.number().int().nonnegative().default(0),syncRequestedAt:o.string().datetime().nullable().default(null),syncCompletedAt:o.string().datetime().nullable().default(null)}).strict().refine(t=>t.completedSyncRevision<=t.requestedSyncRevision&&t.requestedSyncRevision<=t.revision,"Invalid sync acknowledgement generation."),Or=o.object({connectionId:P,expectedRevision:o.number().int().positive(),request:Ge}).strict();function Br(t){let e=d(r=>`/v1/training/candidate-evaluations/${encodeURIComponent(r)}`,"path");function n(r,a,s){let i=rn.parse(r);if(i.teamId!==a||s&&i.id!==s)throw new Error("The preparation belongs to another workspace or candidate operation.");return i}return d(n,"read"),{async options(r,a={}){let s=new URLSearchParams({teamId:r,...a}),i=nn.parse(await t(`/v1/training/candidates?${s}`));if(i.teamId!==r)throw new Error("The candidate catalog belongs to another workspace.");return i},async save(r){let a=Ve.parse(r),s=n(await t(`/v1/training/candidate-evaluations?teamId=${encodeURIComponent(a.teamId)}`,{method:"POST",body:JSON.stringify(a)}),a.teamId);if(s.requestHash!==f(a))throw new Error("The saved preparation differs from the selected candidate or frozen evaluation.");return s},async get(r,a){return n(await t(`${e(a)}?teamId=${encodeURIComponent(r)}`),r,a)},async control(r,a,s,i){let u=on.parse(i),c=n(await t(`${e(a)}/${s}?teamId=${encodeURIComponent(r)}`,{method:"POST",body:JSON.stringify(u)}),r,a);if(c.requestHash!==u.requestHash)throw new Error("The command returned a different frozen evaluation.");return c}}}d(Br,"createCandidateEvaluationClient");var I=o.string().trim().min(1).max(200),we=o.string().regex(/^[a-f0-9]{64}$/),Xe=o.object({id:I,contentHash:we}).strict(),tn=o.object({artifact:Xe,trainingJobId:I,configurationId:I,baseProfileId:I,ready:o.boolean(),reason:o.string().max(1e3).nullable()}).strict(),nn=o.object({teamId:I,ownerUserId:I,items:o.array(tn).max(100),nextCursor:I.nullable()}).strict(),Ve=o.object({teamId:I,operationId:I,artifact:Xe,configuration:H}).strict().superRefine((t,e)=>{(t.configuration.request.teamId!==t.teamId||t.configuration.request.policy.kind==="fixture"||t.configuration.request.policy.candidate)&&e.addIssue({code:"custom",message:"Choose one exact model-backed evaluation before preparing the trained version."})}),rn=o.object({schemaVersion:o.literal("openpond.candidateEvaluationPreparation.v1"),teamId:I,ownerUserId:I,id:I,revision:o.number().int().positive(),requestHash:we,request:Ve,trainingJobId:I,dispatchId:I,lastOperationId:I.nullable(),runtime:o.object({poolId:I,endpointId:I.nullable(),baseProfileId:I,workerImageDigest:o.string().regex(/^sha256:[a-f0-9]{64}$/),modelId:I.nullable()}).strict().nullable(),state:o.enum(["configured","preparing","ready","dispatching","submitted","cleaning","completed","failed","cancelled"]),experimentId:I.nullable(),authorizedAt:o.iso.datetime().nullable(),cancelledAt:o.iso.datetime().nullable(),reason:o.string().max(1e3).nullable(),createdAt:o.iso.datetime(),updatedAt:o.iso.datetime()}).strict().superRefine((t,e)=>{(t.requestHash!==f(t.request)||!t.runtime&&["ready","dispatching","submitted","completed"].includes(t.state))&&e.addIssue({code:"custom",message:"The exact candidate preparation request or runtime changed."})}),on=o.object({operationId:I,expectedRevision:o.number().int().positive(),requestHash:we}).strict();var x=o.string().trim().min(1).max(200),J=o.string().regex(/^[a-f0-9]{64}$/),K=o.string().datetime(),Ye=o.object({operationId:x,id:x.optional(),expectedRevision:o.number().int().nonnegative(),teamId:x,projectId:x.nullable(),enabled:o.boolean(),configuration:H,cadence:o.discriminatedUnion("kind",[o.object({kind:o.literal("interval"),seconds:o.number().int().min(60).max(31536e3)}).strict(),o.object({kind:o.literal("nightly"),calendar:_e}).strict()]),maximumTotalSpendUsd:o.number().finite().positive().max(1e4),maximumAttempts:o.number().int().min(1).max(20)}).strict().superRefine((t,e)=>{(t.configuration.request.teamId!==t.teamId||(t.configuration.request.project?.id??null)!==t.projectId)&&e.addIssue({code:"custom",message:"The scheduled Experiment must retain its actual workspace and Project."}),t.configuration.maximumCostUsd>t.maximumTotalSpendUsd&&e.addIssue({code:"custom",message:"The run ceiling exceeds the approved cumulative schedule ceiling."})}),an=o.object({id:x,scheduledAt:K,coalescedThroughAt:K,coalescedCount:o.number().int().nonnegative(),configurationHash:J,operationId:x,state:o.enum(["reserved","dispatching","running","cleaning","completed","failed","cancelled","uncertain"]),executionId:x.nullable(),attempt:o.number().int().positive(),maximumCostUsd:o.number().finite().positive(),actualSpendUsd:o.number().finite().nonnegative().nullable(),cleanupComplete:o.boolean(),error:o.string().max(4e3).nullable()}).strict(),sn=o.object({schemaVersion:o.literal("openpond.experimentEvaluationSchedule.v1"),id:x,revision:o.number().int().positive(),actorId:x,teamId:x,projectId:x.nullable(),operationId:x,requestHash:J,configuration:H,configurationHash:J,cadence:Ye.shape.cadence,state:o.enum(["scheduled","disabled","blocked"]),nextRunAt:K.nullable(),maximumTotalSpendUsd:o.number().finite().positive(),maximumAttempts:o.number().int().positive(),lastEvaluatedConfigurationHash:J.nullable(),newerUnevaluatedRelease:ee.nullable(),fires:o.array(an).max(1e4),reason:o.string().max(4e3).nullable(),createdAt:K,updatedAt:K,contentHash:J}).strict();function dn(t){let{operationId:e,request:n,...r}=t,{operationId:a,...s}=n;return f({...r,request:s})}d(dn,"scheduledExperimentHash");function cn(t){let e=sn.parse(t);if(ze(e,"Scheduled Experiment"),e.configurationHash!==dn(e.configuration)||e.configuration.request.teamId!==e.teamId||(e.configuration.request.project?.id??null)!==e.projectId)throw new Error("Scheduled Experiment immutable authority differs from its recipe.");return e}d(cn,"verifyExperimentEvaluationSchedule");function Wr(t){return cn({...t,contentHash:f(t)})}d(Wr,"sealExperimentEvaluationSchedule");var un=o.object({teamId:x,id:x,operationId:x,expectedRevision:o.number().int().positive(),action:o.enum(["cancel_active","retry_active","pause"])}).strict(),Gr=o.discriminatedUnion("operation",[o.object({operation:o.literal("publish"),request:Ye}).strict(),o.object({operation:o.literal("control"),request:un}).strict(),o.object({operation:o.literal("read"),id:x}).strict(),o.object({operation:o.literal("list"),cursor:x.optional(),limit:o.number().int().min(1).max(100).default(50)}).strict()]);function pn(t){return{list:d((e={})=>t.listSandboxRuntimes(e),"list"),create:d(e=>t.createSandboxRuntime(e),"create"),handle:d((e,n=null)=>t.sandboxRuntime(e,n),"handle"),get:d(e=>t.getSandboxRuntime(e),"get"),createSandbox:d((e,n={},r={})=>t.createSandboxRuntimeSandbox(e,n,r),"createSandbox"),updateStatus:d((e,n)=>t.updateSandboxRuntimeStatus(e,n),"updateStatus"),events:d(e=>t.listSandboxRuntimeEvents(e),"events"),event:d((e,n)=>t.emitSandboxRuntimeEvent(e,n),"event"),checkpoint:d((e,n={})=>t.checkpointSandboxRuntime(e,n),"checkpoint"),promote:d((e,n,r={})=>t.promoteSandboxRuntime(e,n,r),"promote"),preserveSource:d((e,n={},r={})=>t.preserveSandboxRuntimeSource(e,n,r),"preserveSource")}}d(pn,"createSandboxRuntimeNamespace");function mn(t){return{list:d((e={})=>t.list(e),"list"),create:d(e=>t.create(e),"create"),get:d(e=>t.get(e),"get"),pricing:d(()=>t.pricing(),"pricing"),costs:d((e={})=>t.costs(e),"costs")}}d(mn,"createSandboxNamespace");function ln(t){return{list:d(e=>t.listProjects(e),"list"),upsert:d(e=>t.upsertProject(e),"upsert"),upsertGitRemote:d(e=>t.upsertProjectGitRemote(e),"upsertGitRemote"),get:d((e,n)=>t.getProject(e,n),"get"),update:d((e,n)=>t.updateProject(e,n),"update"),sync:d((e,n)=>t.syncProject(e,n),"sync"),ensureGitRemote:d((e,n)=>t.ensureProjectGitRemote(e,n),"ensureGitRemote"),getGitRemote:d((e,n)=>t.ensureProjectGitRemote(e,n),"getGitRemote"),git:d((e,n)=>t.ensureProjectGitRemote(e,n),"git"),uploadSource:d((e,n)=>t.uploadProjectSource(e,n),"uploadSource"),archive:d((e,n)=>t.archiveProject(e,n),"archive")}}d(ln,"createSandboxProjectNamespace");function hn(t){return{get:d(e=>t.getHostedProfile(e),"get"),status:d(e=>t.getHostedProfile(e),"status"),ensureHosted:d(e=>t.ensureHostedProfile(e),"ensureHosted"),push:d(e=>t.pushHostedProfile(e),"push")}}d(hn,"createSandboxProfileNamespace");function fn(t){return{list:d(e=>t.listAgents(e),"list"),upsert:d(e=>t.upsertAgent(e),"upsert"),get:d((e,n)=>t.getAgent(e,n),"get"),update:d((e,n)=>t.updateAgent(e,n),"update"),archive:d((e,n)=>t.archiveAgent(e,n),"archive"),run:d((e,n)=>t.runAgent(e,n),"run"),sourceDeployPlan:d((e,n)=>t.getAgentSourceDeployPlan(e,n),"sourceDeployPlan"),manifestSnapshots:d((e,n)=>t.listAgentManifestSnapshots(e,n),"manifestSnapshots"),requestSourceChecks:d((e,n)=>t.requestAgentSourceChecks(e,n),"requestSourceChecks"),configureSourceSetup:d((e,n)=>t.configureAgentSourceSetup(e,n),"configureSourceSetup"),publishSource:d((e,n)=>t.publishAgentSource(e,n),"publishSource")}}d(fn,"createSandboxAgentNamespace");function yn(t,e,n=null){let r=d(async(c={},p={})=>{let b=await t.getSandboxRuntime(e);return b.sandboxId?t.get(b.sandboxId):t.createSandboxRuntimeSandbox(e,c,p).then(l=>l.sandbox)},"currentSandbox"),a=d(async(c={},p={})=>{let b=await t.getSandboxRuntime(e);if(!b.sandboxId)return t.createSandboxRuntimeSandbox(e,c,p).then(g=>g.sandbox);let l=await t.get(b.sandboxId);return l.state==="stopped"?t.start(l.id,p).then(g=>g.sandbox):l.state==="archived"?t.restore(l.id).then(g=>g.sandbox):l.state==="deleted"||l.state==="error"?t.createSandboxRuntimeSandbox(e,c,p).then(g=>g.sandbox):l},"resume");return{id:e,initial:n,get:d(()=>t.getSandboxRuntime(e),"get"),sandbox:r,resume:a,createSandbox:d((c={},p={})=>t.createSandboxRuntimeSandbox(e,c,p),"createSandbox"),status:d(async c=>{if(typeof c!="string")return t.updateSandboxRuntimeStatus(e,c);let p=await t.getSandboxRuntime(e);return t.updateSandboxRuntimeStatus(e,{status:c,expectedVersion:p.version})},"status"),events:d(()=>t.listSandboxRuntimeEvents(e),"events"),event:d(c=>t.emitSandboxRuntimeEvent(e,c),"event"),recordCommit:d((c,p={})=>t.emitSandboxRuntimeEvent(e,{...p,type:p.type??"git.commit",commitSha:c}),"recordCommit"),checkpointHint:d((c={})=>t.emitSandboxRuntimeEvent(e,{type:"workflow.checkpoint_hint",summary:c.summary??c.reason??"Workflow checkpoint hint",payload:{...c.payload,reason:c.reason??null},artifactRefs:c.artifactRefs,lifecycleHint:{kind:"checkpoint",reason:c.reason??null}}),"checkpointHint"),waitForUser:d(async(c={})=>{await t.emitSandboxRuntimeEvent(e,{type:"workflow.waiting_for_user",summary:c.summary??c.reason??"Waiting for user",payload:{...c.payload,reason:c.reason??null},lifecycleHint:{kind:"waiting_for_user",reason:c.reason??null}});let p=await t.getSandboxRuntime(e);return p.status==="waiting_for_user"?p:t.updateSandboxRuntimeStatus(e,{status:"waiting_for_user",expectedVersion:p.version,summary:c.summary??c.reason,metadata:{workflowWaitForUserReason:c.reason??null}})},"waitForUser"),keepAlive:d((c={})=>{let p=gn(c);return t.emitSandboxRuntimeEvent(e,{type:"workflow.keepalive",summary:c.summary??c.reason??"Workflow keepalive",payload:{...c.payload,reason:c.reason??null,keepaliveUntil:p},lifecycleHint:{kind:"keepalive",reason:c.reason??null,keepaliveUntil:p}})},"keepAlive"),checkpoint:d(c=>t.checkpointSandboxRuntime(e,c),"checkpoint"),files:{write:d(async(c,p)=>t.uploadFile((await a()).id,c,p),"write"),read:d(async c=>t.downloadFile((await a()).id,c),"read"),readResponse:d(async c=>t.downloadFileResponse((await a()).id,c),"readResponse"),list:d(async(c={})=>t.listFiles((await a()).id,c),"list"),delete:d(async(c,p={})=>t.deleteFile((await a()).id,c,p),"delete"),search:d(async c=>t.searchFiles((await a()).id,c),"search"),stat:d(async c=>t.statFile((await a()).id,c),"stat"),mkdir:d(async c=>t.mkdir((await a()).id,c),"mkdir"),move:d(async c=>t.moveFile((await a()).id,c),"move")},commands:{run:d(async c=>t.exec((await a()).id,typeof c=="string"?{command:c}:c),"run")},ports:{expose:d(async c=>t.openPort((await a()).id,typeof c=="number"?{port:c}:c),"expose")},promote:d((c,p={})=>t.promoteSandboxRuntime(e,c,p),"promote"),preserveSource:d((c={},p={})=>t.preserveSandboxRuntimeSource(e,c,p),"preserveSource"),archive:d(async c=>{let p=c??(await t.getSandboxRuntime(e)).version;return t.updateSandboxRuntimeStatus(e,{status:"archived",expectedVersion:p})},"archive")}}d(yn,"createSandboxRuntimeHandle");function gn(t){if(t?.until instanceof Date)return t.until.toISOString();if(typeof t?.until=="string"&&t.until.trim())return new Date(t.until).toISOString();let e=typeof t?.seconds=="number"&&Number.isFinite(t.seconds)?Math.max(1,Math.trunc(t.seconds)):60;return new Date(Date.now()+e*1e3).toISOString()}d(gn,"runtimeKeepaliveUntilIso");async function bn(t,e={}){let n=`openpond-code-smoke-${Date.now()}`,r=`openpond-code-exec-ok:${n}`,a=`openpond-code-preview-ok:${n}`,s=`openpond-code-file-ok:${n}`,i=4173,u=null,c=null,p=!1,b=!1;try{let l=await Ze(t,await t.create({repo:e.repo??"https://github.com/octocat/Hello-World",resources:{cpu:e.cpu??1,memoryGb:e.memoryGb??1,diskGb:e.diskGb??8},budget:{maxUsd:e.budgetUsd??"0.05"},quotas:{maxSpendUsd:e.budgetUsd??"0.05",maxDurationSeconds:600,idleTimeoutSeconds:600,maxOpenPorts:2},metadata:{runId:n,source:"openpond-code-sandbox-smoke"}},{async:!0}));u=l.id;let g=e.expectedMppMode;if(g&&l.reservation.mpp?.mode!==g)throw new Error(`expected ${g} reservation, got ${l.reservation.mpp?.mode??"none"}`);if(!g&&!l.reservation.mpp?.mode)throw new Error("expected sandbox reservation MPP metadata");let E=await t.exec(l.id,{command:[`printf '${r}\\n'`,"test -f README && printf 'repo-clone-ok\\n'","cat > server.cjs <<'EOF'","const { createServer } = require('node:http');",`createServer((_request, response) => response.end('${a}')).listen(${i}, '0.0.0.0');`,"EOF","nohup node server.cjs > server.log 2>&1 & sleep 1"].join(`
3
3
  `),timeoutSeconds:120});if(E.command.status!=="succeeded")throw new Error(`expected command success, got ${E.command.status}`);if(!E.command.output.includes(r))throw new Error("expected exec marker");if(await t.uploadFile(l.id,"openpond-code-smoke.txt",s),await t.downloadFile(l.id,"openpond-code-smoke.txt")!==s)throw new Error("expected file roundtrip marker");let O=null;if(e.snapshot||e.fork){let C=await t.createSnapshot(l.id,{async:!0,name:`openpond-code-smoke-${n}`,replay:{entrypoints:[{command:"cat openpond-code-smoke.txt",name:"default"}],retention:{class:"pinned"},safety:{cleanup:"delete",idleTimeoutSeconds:600,internetEgress:"block",maxDurationSeconds:600,maxSpendUsd:e.budgetUsd??"0.05",publicPreview:!1},validation:{commands:[{command:"test -f openpond-code-smoke.txt"}]}}}),U=C.snapshot??(await wn(t,l.id,C.snapshotJob?.snapshotId)).snapshot;if(O=U.id,U.state!=="ready")throw new Error(`expected ready snapshot, got ${U.state}`)}if(e.fork){if(!O)throw new Error("expected snapshot id before fork");let C=await Ze(t,(await t.forkSnapshot(O,{budget:{maxUsd:e.budgetUsd??"0.05"},metadata:{source:"openpond-code-sandbox-smoke-fork",templateSnapshotId:O}},{async:!0})).sandbox);c=C.id;let U=await t.exec(C.id,{command:"cat openpond-code-smoke.txt",timeoutSeconds:120});if(U.command.status!=="succeeded")throw new Error(`expected fork command success, got ${U.command.status}`);if(!U.command.output.includes(s))throw new Error("expected fork snapshot marker");e.keep||(await xe(t,C.id),b=!0)}let T=null;if(e.preview!==!1){let C=await t.openPort(l.id,{label:"openpond-code-smoke",port:i}),U=await fetch(C.preview.url);T=U.status;let Tt=await U.text();if(U.status!==200)throw new Error(`expected preview HTTP 200, got ${U.status}`);if(!Tt.includes(a))throw new Error("expected preview marker")}let{sandbox:ce,receipts:X}=await In(t,l.id);return e.keep||(await xe(t,l.id),p=!0),{deleted:p,execOutput:E.command.output.trim(),fileRoundtrip:!0,forkSandboxId:c,previewStatus:T,receiptRefs:X.map(C=>C.mpp.receiptRef??null),reservationRef:l.reservation.mpp?.reservationRef??null,runId:n,sandboxId:l.id,snapshotId:O,state:ce.state}}finally{c&&!e.keep&&!b&&await Qe(t,c),u&&!e.keep&&!p&&await Qe(t,u)}}d(bn,"runSandboxSmoke");async function In(t,e){try{await t.stop(e)}catch{await t.stop(e,{async:!0})}let n=await tt(t,e,new Set(["stopped","deleted"]),"stop"),r=await Sn(t,e);if(r.length===0)throw new Error("expected receipt readback");return{sandbox:n,receipts:r}}d(In,"stopSandboxForSmoke");async function xe(t,e){try{let n=await t.delete(e);if(n.state==="deleted")return n;await t.delete(e,{async:!0})}catch{await t.delete(e,{async:!0})}return tt(t,e,new Set(["deleted"]),"delete")}d(xe,"deleteSandboxForSmoke");async function Qe(t,e){try{await xe(t,e)}catch{await t.delete(e,{async:!0}).catch(()=>{})}}d(Qe,"cleanupSandboxBestEffort");async function tt(t,e,n,r){let i=Date.now()+3e5,u=await t.get(e);for(;Date.now()<i;){if(n.has(u.state))return u;if(u.state==="error")throw new Error(`sandbox ${r} failed: ${e}`);await re(3e3),u=await t.get(e)}throw new Error(`sandbox ${r} did not reach ${[...n].join("/")} before timeout: ${e} (${u.state})`)}d(tt,"waitForSandboxState");async function Sn(t,e){let a=Date.now()+12e4,s=await t.receipts(e);for(;Date.now()<a;){if(s.length>0)return s;await re(3e3),s=await t.receipts(e)}return s}d(Sn,"waitForReceipts");async function Ze(t,e){if(e.state==="running"||e.state==="stopped")return e;if(e.state==="error")throw new Error(`sandbox create failed: ${e.id}
4
4
  ${e.logs.join(`
5
5
  `)}`);let n=12*6e4,r=3e3,a=Date.now()+n,s=e;for(;Date.now()<a;){if(await re(r),s=await t.get(e.id),s.state==="running"||s.state==="stopped")return s;if(s.state==="error")throw new Error(`sandbox create failed: ${s.id}
@@ -1,2 +1,2 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{a as T,b as M,c as U}from"./chunk-DUURYZOI.js";import{I as S,J as x,K as k,L as P}from"./chunk-I7AQMAQI.js";import{b as a}from"./chunk-ES2ISFJC.js";import{a as c}from"./chunk-FTQLQJQV.js";import{randomUUID as N}from"node:crypto";var r=class extends Error{constructor(i,n){super(n);this.status=i}status;static{c(this,"EnclaveError")}};function b(e){let t;try{t=new URL(e)}catch{throw new r(400,"Enter a valid model endpoint URL.")}let i=["localhost","127.0.0.1","[::1]"].includes(t.hostname);if(t.protocol!=="https:"&&!(t.protocol==="http:"&&i)||t.username||t.password||t.search||t.hash)throw new r(400,"Use HTTPS, or HTTP for a local model, without credentials, a query, or fragment in the URL.");return t.toString().replace(/\/+$/,"").replace(/\/chat\/completions$/,"")}c(b,"normalizeModelEndpoint");async function w(e){let t=new AbortController,i=c(()=>t.abort(),"abort");e.signal?.addEventListener("abort",i,{once:!0}),e.signal?.aborted&&t.abort();let n=setTimeout(i,e.timeoutMs??15e3);try{let o=await(e.fetch??fetch)(`${b(e.endpoint)}/${e.path}`,{method:e.body===void 0?"GET":"POST",redirect:"error",signal:t.signal,headers:{...e.token?{Authorization:`Bearer ${e.token}`}:{},"Content-Type":"application/json","User-Agent":"OpenPond-Model-Connection/1.0"},...e.body===void 0?{}:{body:JSON.stringify(e.body)}});if(e.expectedStatus&&o.status===e.expectedStatus)return await o.body?.cancel(),null;if(!o.ok)throw await o.body?.cancel(),new r(o.status===401||o.status===403?401:o.status===503?503:502,o.status===401||o.status===403?"The endpoint rejected the API key. Check its credentials.":o.status===503?"The endpoint is starting or busy. Try again shortly.":"The endpoint did not return a compatible response.");if(!o.body)throw new r(502,"The endpoint returned an empty response.");let s=o.body.getReader(),d=[],l=0;try{for(;;){let p=await s.read();if(p.done)break;if(l+=p.value.byteLength,l>1024*1024)throw new r(502,"The endpoint response exceeded its size limit.");d.push(p.value)}}finally{await s.cancel().catch(()=>{}),s.releaseLock()}return JSON.parse(Buffer.concat(d).toString("utf8"))}catch(o){throw o instanceof r?o:t.signal.aborted?new r(408,e.signal?.aborted?"Request cancelled.":"The endpoint request timed out."):new r(502,"Could not reach a compatible model endpoint. Check the URL and service health.")}finally{clearTimeout(n),e.signal?.removeEventListener("abort",i)}}c(w,"remoteJson");var g="url-model:",f=a.object({providerName:a.string().trim().min(1).max(100).default("Models from URL"),name:a.string().trim().min(1).max(100),endpoint:a.string(),model:a.string().trim().min(1).max(300),protocol:a.enum(["openai","tvc"]),token:a.string().max(4096).regex(/^[\x21-\x7e]*$/)}),E=a.object({endpoint:a.string(),token:f.shape.token.default("")}).strict(),A=E.extend({name:f.shape.name,providerName:f.shape.providerName,model:f.shape.model}),L=a.object({id:a.string().regex(/^url:[a-f0-9-]{36}$/)}).strict(),y=c(e=>`${g}${e.slice(4)}`,"storageId"),$=c((e,t)=>({id:e,name:t.name,providerName:t.providerName,endpoint:t.endpoint,model:t.model,protocol:t.protocol,hasToken:!!t.token}),"publicModel");async function v(e){return Object.entries(await x(e,g)).map(([t,i])=>$(`url:${t.slice(g.length)}`,f.parse(i.value)))}c(v,"listUrlModels");async function j(e,t){if(!L.safeParse({id:t}).success)throw new r(400,"Select a saved URL model.");let i=await S(e,y(t));if(!i)throw new r(409,"This model connection was removed. Add it again in Providers.");return f.parse(i.value)}c(j,"resolveUrlModel");function D(e){let t=new Map;async function i(n,o){let s=b(n.endpoint),d=await w({...n,endpoint:s,path:"health",signal:o,fetch:e.fetch}).catch(h=>{if(o?.aborted)throw h;return null}),l=T.safeParse(d);if(l.success)return await w({...n,endpoint:s,path:"chat",body:{prompt:""},expectedStatus:400,signal:o,fetch:e.fetch}),{protocol:"tvc",models:[l.data.model],contextTokens:l.data.contextTokens};let p=await w({...n,endpoint:s,path:"models",signal:o,fetch:e.fetch}),m=a.object({data:a.array(a.object({id:a.string().min(1).max(300)})).max(5e3)}).safeParse(p);if(!m.success||!m.data.data.length)throw new r(502,"No models were returned. Use the API base URL, such as https://host/v1.");return{protocol:"openai",models:[...new Set(m.data.data.map(h=>h.id))]}}return c(i,"inspect"),async(n,o,s)=>{if(s?.throwIfAborted(),n==="list")return{models:await v(e.home)};if(n==="inspect"||n==="save"){let m=(n==="save"?A:E).safeParse(o);if(!m.success)throw new r(400,"Provide a valid endpoint, API key, model, and display name.");let h=await i(m.data,s);if(n==="inspect")return h;let u=A.parse(m.data);if(!h.models.includes(u.model))throw new r(400,"The selected model is no longer offered by this endpoint. Fetch models again.");s?.throwIfAborted();let C=(await v(e.home)).find(R=>R.providerName.toLocaleLowerCase()===u.providerName.toLocaleLowerCase())?.providerName??u.providerName,I=`url:${N()}`;return await k(e.home,y(I),{...u,providerName:C,endpoint:b(u.endpoint),protocol:h.protocol},null),{models:await v(e.home)}}let d=L.safeParse(n==="chat"&&o&&typeof o=="object"?{id:o.id}:o);if(!d.success)throw new r(400,"Select a saved model connection.");if(n==="remove")return t.get(d.data.id)?.abort(),await P(e.home,y(d.data.id)),{models:await v(e.home)};if(t.has(d.data.id))throw new r(409,"This model is busy. Cancel its current turn or wait for it to finish.");let l=new AbortController;t.set(d.data.id,l);let p=c(()=>l.abort(),"abort");s?.addEventListener("abort",p,{once:!0}),s?.aborted&&l.abort();try{let m=await j(e.home,d.data.id);if(m.protocol!=="tvc")throw new r(400,"This model uses the OpenAI-compatible chat API.");let h=U.safeParse({prompt:o.prompt});if(!h.success)throw new r(400,"Enter a text message of at most 1,024 UTF-8 bytes.");return M.parse(await w({...m,path:"chat",body:h.data,signal:l.signal,timeoutMs:31e4,fetch:e.fetch}))}finally{s?.removeEventListener("abort",p),t.delete(d.data.id)}}}c(D,"createEnclaveConnection");export{r as a,v as b,j as c,D as d};
2
+ import{a as T,b as M,c as U}from"./chunk-DUURYZOI.js";import{I as S,J as x,K as k,L as P}from"./chunk-MNC4YUDI.js";import{b as a}from"./chunk-ES2ISFJC.js";import{a as c}from"./chunk-FTQLQJQV.js";import{randomUUID as N}from"node:crypto";var r=class extends Error{constructor(i,n){super(n);this.status=i}status;static{c(this,"EnclaveError")}};function b(e){let t;try{t=new URL(e)}catch{throw new r(400,"Enter a valid model endpoint URL.")}let i=["localhost","127.0.0.1","[::1]"].includes(t.hostname);if(t.protocol!=="https:"&&!(t.protocol==="http:"&&i)||t.username||t.password||t.search||t.hash)throw new r(400,"Use HTTPS, or HTTP for a local model, without credentials, a query, or fragment in the URL.");return t.toString().replace(/\/+$/,"").replace(/\/chat\/completions$/,"")}c(b,"normalizeModelEndpoint");async function w(e){let t=new AbortController,i=c(()=>t.abort(),"abort");e.signal?.addEventListener("abort",i,{once:!0}),e.signal?.aborted&&t.abort();let n=setTimeout(i,e.timeoutMs??15e3);try{let o=await(e.fetch??fetch)(`${b(e.endpoint)}/${e.path}`,{method:e.body===void 0?"GET":"POST",redirect:"error",signal:t.signal,headers:{...e.token?{Authorization:`Bearer ${e.token}`}:{},"Content-Type":"application/json","User-Agent":"OpenPond-Model-Connection/1.0"},...e.body===void 0?{}:{body:JSON.stringify(e.body)}});if(e.expectedStatus&&o.status===e.expectedStatus)return await o.body?.cancel(),null;if(!o.ok)throw await o.body?.cancel(),new r(o.status===401||o.status===403?401:o.status===503?503:502,o.status===401||o.status===403?"The endpoint rejected the API key. Check its credentials.":o.status===503?"The endpoint is starting or busy. Try again shortly.":"The endpoint did not return a compatible response.");if(!o.body)throw new r(502,"The endpoint returned an empty response.");let s=o.body.getReader(),d=[],l=0;try{for(;;){let p=await s.read();if(p.done)break;if(l+=p.value.byteLength,l>1024*1024)throw new r(502,"The endpoint response exceeded its size limit.");d.push(p.value)}}finally{await s.cancel().catch(()=>{}),s.releaseLock()}return JSON.parse(Buffer.concat(d).toString("utf8"))}catch(o){throw o instanceof r?o:t.signal.aborted?new r(408,e.signal?.aborted?"Request cancelled.":"The endpoint request timed out."):new r(502,"Could not reach a compatible model endpoint. Check the URL and service health.")}finally{clearTimeout(n),e.signal?.removeEventListener("abort",i)}}c(w,"remoteJson");var g="url-model:",f=a.object({providerName:a.string().trim().min(1).max(100).default("Models from URL"),name:a.string().trim().min(1).max(100),endpoint:a.string(),model:a.string().trim().min(1).max(300),protocol:a.enum(["openai","tvc"]),token:a.string().max(4096).regex(/^[\x21-\x7e]*$/)}),E=a.object({endpoint:a.string(),token:f.shape.token.default("")}).strict(),A=E.extend({name:f.shape.name,providerName:f.shape.providerName,model:f.shape.model}),L=a.object({id:a.string().regex(/^url:[a-f0-9-]{36}$/)}).strict(),y=c(e=>`${g}${e.slice(4)}`,"storageId"),$=c((e,t)=>({id:e,name:t.name,providerName:t.providerName,endpoint:t.endpoint,model:t.model,protocol:t.protocol,hasToken:!!t.token}),"publicModel");async function v(e){return Object.entries(await x(e,g)).map(([t,i])=>$(`url:${t.slice(g.length)}`,f.parse(i.value)))}c(v,"listUrlModels");async function j(e,t){if(!L.safeParse({id:t}).success)throw new r(400,"Select a saved URL model.");let i=await S(e,y(t));if(!i)throw new r(409,"This model connection was removed. Add it again in Providers.");return f.parse(i.value)}c(j,"resolveUrlModel");function D(e){let t=new Map;async function i(n,o){let s=b(n.endpoint),d=await w({...n,endpoint:s,path:"health",signal:o,fetch:e.fetch}).catch(h=>{if(o?.aborted)throw h;return null}),l=T.safeParse(d);if(l.success)return await w({...n,endpoint:s,path:"chat",body:{prompt:""},expectedStatus:400,signal:o,fetch:e.fetch}),{protocol:"tvc",models:[l.data.model],contextTokens:l.data.contextTokens};let p=await w({...n,endpoint:s,path:"models",signal:o,fetch:e.fetch}),m=a.object({data:a.array(a.object({id:a.string().min(1).max(300)})).max(5e3)}).safeParse(p);if(!m.success||!m.data.data.length)throw new r(502,"No models were returned. Use the API base URL, such as https://host/v1.");return{protocol:"openai",models:[...new Set(m.data.data.map(h=>h.id))]}}return c(i,"inspect"),async(n,o,s)=>{if(s?.throwIfAborted(),n==="list")return{models:await v(e.home)};if(n==="inspect"||n==="save"){let m=(n==="save"?A:E).safeParse(o);if(!m.success)throw new r(400,"Provide a valid endpoint, API key, model, and display name.");let h=await i(m.data,s);if(n==="inspect")return h;let u=A.parse(m.data);if(!h.models.includes(u.model))throw new r(400,"The selected model is no longer offered by this endpoint. Fetch models again.");s?.throwIfAborted();let C=(await v(e.home)).find(R=>R.providerName.toLocaleLowerCase()===u.providerName.toLocaleLowerCase())?.providerName??u.providerName,I=`url:${N()}`;return await k(e.home,y(I),{...u,providerName:C,endpoint:b(u.endpoint),protocol:h.protocol},null),{models:await v(e.home)}}let d=L.safeParse(n==="chat"&&o&&typeof o=="object"?{id:o.id}:o);if(!d.success)throw new r(400,"Select a saved model connection.");if(n==="remove")return t.get(d.data.id)?.abort(),await P(e.home,y(d.data.id)),{models:await v(e.home)};if(t.has(d.data.id))throw new r(409,"This model is busy. Cancel its current turn or wait for it to finish.");let l=new AbortController;t.set(d.data.id,l);let p=c(()=>l.abort(),"abort");s?.addEventListener("abort",p,{once:!0}),s?.aborted&&l.abort();try{let m=await j(e.home,d.data.id);if(m.protocol!=="tvc")throw new r(400,"This model uses the OpenAI-compatible chat API.");let h=U.safeParse({prompt:o.prompt});if(!h.success)throw new r(400,"Enter a text message of at most 1,024 UTF-8 bytes.");return M.parse(await w({...m,path:"chat",body:h.data,signal:l.signal,timeoutMs:31e4,fetch:e.fetch}))}finally{s?.removeEventListener("abort",p),t.delete(d.data.id)}}}c(D,"createEnclaveConnection");export{r as a,v as b,j as c,D as d};
@@ -1,5 +1,5 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{A as it,B as K,C as A,D as rt,E as at,b as u,f as I,g as Y,h as $,i as L,j as N,k as G,l as T,o as Q,r as Z,s as k,t as x,u as tt,v as M,w as et,x as z,y as q,z as nt}from"./chunk-XW6HGSIT.js";import{d as b}from"./chunk-KG325WTN.js";import{a as l}from"./chunk-FTQLQJQV.js";import{promises as mt}from"node:fs";async function $t(t,e,n={}){return O(A(t,e.id),e,n)}l($t,"loadWorkspaceState");async function O(t,e,n={}){let{workspacePath:i,repoPath:r}=t,a=it(e,n.gitBaseUrl);await mt.mkdir(i,{recursive:!0});let o=await L(r),s=null;if(!o&&n.clone&&a)try{await rt(r,i,a,n.token),o=!0}catch(m){s=m instanceof Error?m.message:String(m)}if(!o)return n.allowPlainFolder&&await $(r)?{appId:e.id,source:"local_folder",workspacePath:i,repoPath:r,initialized:!0,remoteUrl:null,expectedRemoteUrl:a,currentBranch:null,headCommit:null,upstreamBranch:null,ahead:0,behind:0,diverged:!1,linkedSourceHeadCommit:n.linkedSourceHeadCommit?.trim()||null,aheadOfLinkedSource:0,behindLinkedSource:0,divergedFromLinkedSource:!1,linkedSourceComparisonError:null,lastFetchAt:null,defaultBranch:e.defaultBranch??null,branches:[],dirty:!1,changedFilesCount:0,untrackedFilesCount:0,error:s,updatedAt:b()}:{appId:e.id,source:I(a),workspacePath:i,repoPath:r,initialized:o,remoteUrl:null,expectedRemoteUrl:a,currentBranch:null,headCommit:null,upstreamBranch:null,ahead:0,behind:0,diverged:!1,linkedSourceHeadCommit:n.linkedSourceHeadCommit?.trim()||null,aheadOfLinkedSource:0,behindLinkedSource:0,divergedFromLinkedSource:!1,linkedSourceComparisonError:null,lastFetchAt:null,defaultBranch:e.defaultBranch??null,branches:[],dirty:!1,changedFilesCount:0,untrackedFilesCount:0,error:s,updatedAt:b()};let[p,d,h,P,y]=await Promise.all([u("git",["branch","--show-current"],r),u("git",["branch","--format=%(refname:short)"],r),u("git",["status","--porcelain=v1","-b"],r),u("git",["config","--get","remote.origin.url"],r),u("git",["rev-parse","--verify","HEAD"],r)]),E=P.code===0&&Y(P.stdout.trim())||null,W=h.code===0?h.stdout.split(`
2
+ import{A as it,B as K,C as A,D as rt,E as at,b as u,f as I,g as Y,h as $,i as L,j as N,k as G,l as T,o as Q,r as Z,s as k,t as x,u as tt,v as M,w as et,x as z,y as q,z as nt}from"./chunk-XW6HGSIT.js";import{d as b}from"./chunk-57TRXBLT.js";import{a as l}from"./chunk-FTQLQJQV.js";import{promises as mt}from"node:fs";async function $t(t,e,n={}){return O(A(t,e.id),e,n)}l($t,"loadWorkspaceState");async function O(t,e,n={}){let{workspacePath:i,repoPath:r}=t,a=it(e,n.gitBaseUrl);await mt.mkdir(i,{recursive:!0});let o=await L(r),s=null;if(!o&&n.clone&&a)try{await rt(r,i,a,n.token),o=!0}catch(m){s=m instanceof Error?m.message:String(m)}if(!o)return n.allowPlainFolder&&await $(r)?{appId:e.id,source:"local_folder",workspacePath:i,repoPath:r,initialized:!0,remoteUrl:null,expectedRemoteUrl:a,currentBranch:null,headCommit:null,upstreamBranch:null,ahead:0,behind:0,diverged:!1,linkedSourceHeadCommit:n.linkedSourceHeadCommit?.trim()||null,aheadOfLinkedSource:0,behindLinkedSource:0,divergedFromLinkedSource:!1,linkedSourceComparisonError:null,lastFetchAt:null,defaultBranch:e.defaultBranch??null,branches:[],dirty:!1,changedFilesCount:0,untrackedFilesCount:0,error:s,updatedAt:b()}:{appId:e.id,source:I(a),workspacePath:i,repoPath:r,initialized:o,remoteUrl:null,expectedRemoteUrl:a,currentBranch:null,headCommit:null,upstreamBranch:null,ahead:0,behind:0,diverged:!1,linkedSourceHeadCommit:n.linkedSourceHeadCommit?.trim()||null,aheadOfLinkedSource:0,behindLinkedSource:0,divergedFromLinkedSource:!1,linkedSourceComparisonError:null,lastFetchAt:null,defaultBranch:e.defaultBranch??null,branches:[],dirty:!1,changedFilesCount:0,untrackedFilesCount:0,error:s,updatedAt:b()};let[p,d,h,P,y]=await Promise.all([u("git",["branch","--show-current"],r),u("git",["branch","--format=%(refname:short)"],r),u("git",["status","--porcelain=v1","-b"],r),u("git",["config","--get","remote.origin.url"],r),u("git",["rev-parse","--verify","HEAD"],r)]),E=P.code===0&&Y(P.stdout.trim())||null,W=h.code===0?h.stdout.split(`
3
3
  `).filter(m=>m.trim()):[],S=et(W.find(m=>m.startsWith("## "))??""),f=W.filter(m=>{if(m.startsWith("## "))return!1;let B=M(m),V=B?k(B.path):null;return!!(V&&!x(V))}),C=f.filter(m=>m.startsWith("??")).length,F=p.code===0&&p.stdout.trim()?p.stdout.trim():null,v=y.code===0&&y.stdout.trim()||null,U=d.code===0?d.stdout.split(`
4
4
  `).map(m=>m.trim()).filter(Boolean):[],c=I(E)==="unknown"&&a?a:E??a,g=await ht(r,n.linkedSourceHeadCommit,v);return{appId:e.id,source:c?I(c):"local_git",workspacePath:i,repoPath:r,initialized:o,remoteUrl:E,expectedRemoteUrl:a,currentBranch:F,headCommit:v,upstreamBranch:S.upstreamBranch,ahead:S.ahead,behind:S.behind,diverged:S.ahead>0&&S.behind>0,linkedSourceHeadCommit:g.linkedSourceHeadCommit,aheadOfLinkedSource:g.aheadOfLinkedSource,behindLinkedSource:g.behindLinkedSource,divergedFromLinkedSource:g.divergedFromLinkedSource,linkedSourceComparisonError:g.error,lastFetchAt:await at(r),defaultBranch:e.defaultBranch??null,branches:U,dirty:f.length>0,changedFilesCount:f.length,untrackedFilesCount:C,error:s,updatedAt:b()}}l(O,"loadWorkspaceStateAtPath");async function ht(t,e,n){let i=e?.trim()||null,r={linkedSourceHeadCommit:i,aheadOfLinkedSource:0,behindLinkedSource:0,divergedFromLinkedSource:!1,error:null};if(!i||!n||i===n)return r;let a=await u("git",["rev-list","--left-right","--count",`${i}...${n}`],t);if(a.code!==0)return{...r,error:a.stderr.trim()||a.stdout.trim()||"Unable to compare linked source commit."};let[o,s]=a.stdout.trim().split(/\s+/,2),p=Number(o)||0,d=Number(s)||0;return{linkedSourceHeadCommit:i,aheadOfLinkedSource:d,behindLinkedSource:p,divergedFromLinkedSource:d>0&&p>0,error:null}}l(ht,"compareLinkedSourceCommit");async function zt(t,e,n){return gt(A(t,e.id),e,n)}l(zt,"createAndCheckoutBranch");async function gt(t,e,n,i={}){K(n);let r=await O(t,e,{...i,clone:!1});if(!r.initialized)throw new Error(r.error||"Workspace is not initialized");let a=await u("git",["checkout","-b",n.trim()],r.repoPath);if(a.code!==0)throw new Error(a.stderr.trim()||a.stdout.trim()||"Unable to create branch");return O(t,e,{...i,clone:!1})}l(gt,"createAndCheckoutBranchAtPath");async function Ht(t,e,n){return kt(A(t,e.id),e,n)}l(Ht,"checkoutBranch");async function kt(t,e,n,i={}){K(n);let r=await O(t,e,{...i,clone:!1});if(!r.initialized)throw new Error(r.error||"Workspace is not initialized");if(r.dirty&&r.currentBranch!==n.trim())throw new Error("Commit or discard local changes before switching branches");let a=await u("git",["checkout",n.trim()],r.repoPath);if(a.code!==0)throw new Error(a.stderr.trim()||a.stdout.trim()||"Unable to switch branch");return O(t,e,{...i,clone:!1})}l(kt,"checkoutBranchAtPath");import w from"node:path";import{promises as ct}from"node:fs";var wt=6,Wt=60,st=1e4,D=new Map;async function H(t,e,n=wt){let i=Math.max(1,Math.floor(n)),r=new Array(t.length),a=0;async function o(){for(;a<t.length;){let s=a;a+=1,r[s]=await e(t[s],s)}}return l(o,"worker"),await Promise.all(Array.from({length:Math.min(i,t.length)},()=>o())),r}l(H,"mapWorkspaceDiffEntriesWithConcurrency");function Xt(){D.clear()}l(Xt,"clearWorkspaceDiffCacheForTests");async function Jt(t,e,n={}){let{repoPath:i}=A(t,e.id);return Pt(i,e.id,n)}l(Jt,"loadWorkspaceDiff");async function Pt(t,e,n={}){let i=await L(t);if(!i){let c=await nt(t);return{appId:e,repoPath:t,initialized:c.length>0||await $(t),dirty:!1,filesChanged:0,additions:0,deletions:0,repoFiles:c,files:[],error:null,updatedAt:b()}}let r=await X(t),a=r.pathPrefix||".",[o,s]=await Promise.all([u("git",["rev-parse","HEAD"],r.commandCwd),u("git",["status","--porcelain=v1","-uall","--",a],r.commandCwd)]);if(s.code!==0)return{appId:e,repoPath:t,initialized:i,dirty:!1,filesChanged:0,additions:0,deletions:0,repoFiles:[],files:[],error:s.stderr.trim()||s.stdout.trim()||"Unable to read workspace diff",updatedAt:b()};let p=s.stdout.split(`
5
5
  `).map(M).filter(c=>!!c).map(c=>{let g=R(c.path,r.pathPrefix);if(!g)return null;let m=k(g);return m?{...c,path:m}:null}).filter(c=>c?!x(c.path):!1),d=await Ct(t,p),h=Ft({repoPath:t,workspaceId:e,includeFileDetails:!!n.includeFileDetails,head:o.code===0?o.stdout.trim():"unborn",pathPrefix:r.pathPrefix,status:s.stdout,worktreeSignature:d}),P=D.get(h);if(P)return j(P);let y=(await H(p,async c=>c.status==="deleted"||!await Z(t,c.path)?c:null)).filter(c=>!!c),E=await u("git",["ls-files","--",a],r.commandCwd),W=q([...E.code===0?E.stdout.split(`