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,11 +1,11 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{b as J,e as Ee,f as ge,i as he,j as ye}from"./chunk-YY7LEQGP.js";import{A as m,B as ue,D as ce,E as k,F as le,b as W,f as oe,t as H,u as ae,w as de,x as pe}from"./chunk-3RCRSMWZ.js";import{c as _e}from"./chunk-UGL7WF3W.js";import"./chunk-DMFUEUAZ.js";import{a as se,c as x}from"./chunk-PSGGOZFM.js";import{Da as C,Ea as g,Fa as F,G as q,H as ee,Sa as ne,Ta as ie,Ua as L,Wa as re,Xa as O,b as A,rb as U,sa as te}from"./chunk-QOTVNQDI.js";import"./chunk-OQPJ7FJF.js";import{p as E,q as Z}from"./chunk-WJ43MJ3F.js";import"./chunk-Q4TBTRIG.js";import"./chunk-T5AACNJI.js";import"./chunk-QOGJAQDO.js";import"./chunk-EYPCBBMS.js";import"./chunk-DIO5CB6U.js";import"./chunk-7ED24PP6.js";import{a as G}from"./chunk-KCJVFLBB.js";import"./chunk-N4FFQPLR.js";import"./chunk-AY64VY4E.js";import"./chunk-GJ2ZJFDD.js";import"./chunk-3QIB5FXI.js";import"./chunk-6MI4KKWF.js";import"./chunk-DDMZSZFL.js";import"./chunk-W45RKGM6.js";import"./chunk-3VUATFZD.js";import"./chunk-4EPSHPZL.js";import"./chunk-MQULU465.js";import"./chunk-PRGBLQVH.js";import"./chunk-7E6T7GP5.js";import"./chunk-DZUAT3TP.js";import"./chunk-XDQMGUWL.js";import"./chunk-FTEOCCPB.js";import"./chunk-25MBPJVY.js";import"./chunk-WN3V6KDN.js";import"./chunk-523TE4BI.js";import"./chunk-ZCHXGRRU.js";import"./chunk-YBT2NB32.js";import"./chunk-74ZXXBGN.js";import"./chunk-APB2STJK.js";import"./chunk-I7AQMAQI.js";import{z as b}from"./chunk-Z4Z5UOZM.js";import"./chunk-6FA3GG5B.js";import"./chunk-Y4OWBBDD.js";import"./chunk-6ZFPQYHG.js";import"./chunk-JFXWI3EN.js";import"./chunk-FFRFSDBM.js";import"./chunk-VYLGI3IH.js";import"./chunk-ACYFMLWG.js";import"./chunk-TVQAPBLZ.js";import"./chunk-KGNCKIFP.js";import{b as D}from"./chunk-ES2ISFJC.js";import"./chunk-H7IWJN7L.js";import{a as u}from"./chunk-FTQLQJQV.js";import{createPublicKey as Ae,verify as Ce}from"node:crypto";var me=`CREATE TABLE IF NOT EXISTS remote_device_authority (id INTEGER PRIMARY KEY CHECK(id=1), payload TEXT NOT NULL);
2
+ import{a as Ee,b as ge,c as he,e as U,h as ye,i as me,l as Se,m as Te}from"./chunk-ZH3K7LKQ.js";import{A as m,B as ue,D as ce,E as f,F as le,b as W,f as se,t as oe,u as ae,w as de,x as pe}from"./chunk-BE6SS65L.js";import{c as _e}from"./chunk-UGL7WF3W.js";import"./chunk-DMFUEUAZ.js";import{a as re,c as N}from"./chunk-PSGGOZFM.js";import{Da as A,Ea as g,Fa as b,G as q,H as Z,Sa as te,Ta as ne,Ua as L,Wa as ie,Xa as O,b as C,rb as F,sa as ee}from"./chunk-2RNQQNB7.js";import"./chunk-OQPJ7FJF.js";import{p as E,q as G}from"./chunk-EUMXMT3S.js";import"./chunk-Q4TBTRIG.js";import"./chunk-T5AACNJI.js";import"./chunk-TKLBP3MM.js";import"./chunk-RBZH6A6M.js";import"./chunk-DIO5CB6U.js";import"./chunk-7ED24PP6.js";import{a as z}from"./chunk-KCJVFLBB.js";import"./chunk-N4FFQPLR.js";import"./chunk-AY64VY4E.js";import"./chunk-GJ2ZJFDD.js";import"./chunk-3QIB5FXI.js";import"./chunk-6MI4KKWF.js";import"./chunk-DDMZSZFL.js";import"./chunk-W45RKGM6.js";import"./chunk-CGWA54LE.js";import"./chunk-KO3HNMLJ.js";import"./chunk-MQULU465.js";import"./chunk-JMBQYBPI.js";import"./chunk-LPWBIGKW.js";import"./chunk-DZUAT3TP.js";import"./chunk-H7ATCPPB.js";import"./chunk-25JDHAZ5.js";import"./chunk-XMKCCLGB.js";import"./chunk-WN3V6KDN.js";import"./chunk-523TE4BI.js";import"./chunk-ZCHXGRRU.js";import"./chunk-YBT2NB32.js";import"./chunk-74ZXXBGN.js";import"./chunk-APB2STJK.js";import"./chunk-Y4OWBBDD.js";import"./chunk-6ZFPQYHG.js";import"./chunk-JFXWI3EN.js";import"./chunk-6FA3GG5B.js";import"./chunk-MNC4YUDI.js";import{z as M}from"./chunk-Z4Z5UOZM.js";import"./chunk-FFRFSDBM.js";import"./chunk-H7IWJN7L.js";import"./chunk-VYLGI3IH.js";import"./chunk-ACYFMLWG.js";import"./chunk-TVQAPBLZ.js";import"./chunk-KGNCKIFP.js";import{b as D}from"./chunk-ES2ISFJC.js";import{a as u}from"./chunk-FTQLQJQV.js";import{createPublicKey as We,verify as He}from"node:crypto";var Re=`CREATE TABLE IF NOT EXISTS remote_device_authority (id INTEGER PRIMARY KEY CHECK(id=1), payload TEXT NOT NULL);
3
3
  CREATE TABLE IF NOT EXISTS remote_device_receipts (id TEXT PRIMARY KEY, payload_hash TEXT NOT NULL, command TEXT NOT NULL, receipt TEXT NOT NULL);
4
4
  CREATE TABLE IF NOT EXISTS remote_device_approval_claims (approval_id TEXT PRIMARY KEY, command_id TEXT NOT NULL UNIQUE);
5
- CREATE TABLE IF NOT EXISTS remote_device_cancellations (id TEXT PRIMARY KEY,payload_hash TEXT NOT NULL,device_id TEXT NOT NULL);`;function P(s,e,t){let n=s.get("SELECT payload_hash FROM remote_device_cancellations WHERE id=?",[e.id]);if(n)throw new Error(n.payload_hash===e.payloadHash?"remote_command_cancelled":"remote_command_identity_changed");let i=s.get("SELECT payload FROM remote_device_authority WHERE id=1");if(!i)throw new Error("remote_authority_unavailable");let r=JSON.parse(i.payload),o=Date.now();if(e.actor!=="remote-human"||r.deviceId!==e.deviceId||r.fence!==e.fence||r.grantRevision!==e.grantRevision||!(Date.parse(r.leaseExpiresAt)>o)||!(Date.parse(e.deadline)>o)||!(Date.parse(e.permit.expiresAt)>o))throw new Error("remote_authority_expired_or_changed");let a=se.parse(r.owner);if(q(e.scope)!==q({installationId:a.installationId,profileId:a.profileId,ownerUserId:a.ownerUserId,teamId:a.teamId})||!x(t,a))throw new Error("remote_task_not_owned");let d=r.publicKeys.find(I=>I.keyId===e.permit.keyId),{permit:p,...c}=e;if(!d||!Ce(null,Buffer.from(ee(c,p.expiresAt,p.keyId)),Ae(d.publicKey),Buffer.from(p.signature,"base64")))throw new Error("remote_permit_invalid");if(e.action==="start"){let I=t.metadata?.remoteStarterSourceSessionId,T=typeof I=="string"?s.get("SELECT payload FROM sessions WHERE id=?",[I]):null,l=T?JSON.parse(T.payload):null,N=W(t);if(!l||!x(l,a)||l.archived||l.status==="closed"||e.payload.projectId!==l.localProjectId||e.payload.starterRevision!==J(l)||e.expectedRevision!==J(l)||N?.operationId!==e.id||N.payloadHash!==e.payloadHash)throw new Error("remote_starter_changed");return}let _=s.get("SELECT id FROM turns WHERE session_id=? ORDER BY sort_index DESC LIMIT 1",[t.id]),w=Number.parseInt(H(t,_?.id??null).slice(0,13),16);if(e.localSessionId!==t.id||w!==e.expectedRevision)throw new Error("remote_target_changed")}u(P,"assertRemoteAdmission");import{isDeepStrictEqual as Le}from"node:util";function S(s){return L.parse({...JSON.parse(s.payload),sequence:s.sequence})}u(S,"inputFromRow");function R(s,e){let t=s.get("SELECT sequence, payload FROM task_inputs WHERE id = ?",[e]);return t?S(t):null}u(R,"readTaskInput");function h(s,e){let t=L.parse(e);return s.run("UPDATE task_inputs SET kind = ?, state = ?, turn_id = ?, payload = ? WHERE id = ?",[t.kind,t.state,t.turnId,JSON.stringify(t),t.id]),t}u(h,"writeTaskInput");function y(s,e){return s.get("SELECT * FROM task_inbox_turns WHERE session_id = ?",[e])}u(y,"readInboxOwner");function f(s,e,t,n){let i=y(s,e);if(!i||i.turn_id!==t||i.owner_id!==n||i.lease_until<=Date.now())throw new Error("Task execution ownership was lost. Stop before dispatching more work.");return i}u(f,"requireInboxOwner");function j(s,e,t){let n=y(s,e),i=t?s.get("SELECT status FROM turns WHERE id = ? AND session_id = ?",[t,e]):null;if(!t||!n||n.turn_id!==t||!n.accepting||n.paused||n.lease_until<=Date.now()||i?.status!=="in_progress")throw new Error("The expected turn is no longer accepting input. Your text was not sent to a different turn; send it as a follow-up instead.")}u(j,"assertSteerTarget");function B(s,e){let t=`${e.senderKind}:${e.senderSessionId??"user"}`,n=s.get("SELECT sequence, payload, admission FROM task_inputs WHERE session_id = ? AND sender_key = ? AND idempotency_key = ?",[e.sessionId,t,e.idempotencyKey]);if(n){let _=S(n),w=JSON.parse(n.admission);if(["kind","body","payload","replyTo","expectedTurnId"].some(T=>!Le(w[T],e[T])))throw new Error("This input identity was already used with different content.");return _}let i=s.get("SELECT payload FROM sessions WHERE id = ?",[e.sessionId]),r=i?JSON.parse(i.payload):null;if(!r||r.status==="closed"||r.archived)throw new Error("The recipient task is unavailable.");if(e.payload.remoteDevice!==void 0){if(e.senderKind!=="user"||e.senderSessionId!==null)throw new Error("remote_human_input_required");P(s,e.payload.remoteDevice,r)}if(e.senderKind==="ponder"||e.payload.ponderDesktop!==void 0){let _=s.get("SELECT id FROM turns WHERE session_id = ? ORDER BY sort_index DESC LIMIT 1",[e.sessionId]);le(s,e,r,_?.id??null)}let o=e.payload.localManagedMessage;if(o&&typeof o=="object"){let _=o.targetRevision,w=s.get("SELECT id FROM turns WHERE session_id = ? ORDER BY sort_index DESC LIMIT 1",[e.sessionId]);if(typeof _!="string"||_!==oe(r,w?.id??null))throw new ge("The managed target changed before message admission. Refresh and review the message before sending.")}let a=y(s,e.sessionId);if(e.kind==="steer"&&j(s,e.sessionId,e.expectedTurnId),e.kind==="steer"&&K(s,e.expectedTurnId,e.body),s.get("SELECT count(*) AS count FROM task_inputs WHERE session_id = ? AND state = 'pending'",[e.sessionId]).count>=ne)throw new Error("The task inbox is full. Wait for delivery before sending more input.");let p=new Date().toISOString(),c=L.parse({...e,sequence:0,revision:1,state:"pending",requestIds:[],error:null,payload:{...e.payload,...e.payload.remoteDevice?{remoteDeviceExecution:de(r)}:{}},turnId:e.kind!=="queued"&&e.kind!=="followup"&&a?.accepting&&!a.paused&&a.lease_until>Date.now()?a.turn_id:null,createdAt:p,updatedAt:p});return s.run("INSERT INTO task_inputs (id, session_id, sender_key, idempotency_key, kind, state, turn_id, payload, admission) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)",[c.id,c.sessionId,t,c.idempotencyKey,c.kind,c.state,c.turnId,JSON.stringify(c),JSON.stringify(e)]),R(s,c.id)}u(B,"admitTaskInput");function v(s,e,t){return s.all(`SELECT sequence, payload FROM task_inputs WHERE session_id = ? AND state = 'pending'
5
+ CREATE TABLE IF NOT EXISTS remote_device_cancellations (id TEXT PRIMARY KEY,payload_hash TEXT NOT NULL,device_id TEXT NOT NULL);`;function P(s,e,t){if(e.payload.resume===!0&&e.action!=="follow_up")throw new Error("remote_resume_action_invalid");let n=s.get("SELECT payload_hash FROM remote_device_cancellations WHERE id=?",[e.id]);if(n)throw new Error(n.payload_hash===e.payloadHash?"remote_command_cancelled":"remote_command_identity_changed");let i=s.get("SELECT payload FROM remote_device_authority WHERE id=1");if(!i)throw new Error("remote_authority_unavailable");let r=JSON.parse(i.payload),o=Date.now();if(e.actor!=="remote-human"||r.deviceId!==e.deviceId||r.fence!==e.fence||r.grantRevision!==e.grantRevision||!(Date.parse(r.leaseExpiresAt)>o)||!(Date.parse(e.deadline)>o)||!(Date.parse(e.permit.expiresAt)>o))throw new Error("remote_authority_expired_or_changed");let a=re.parse(r.owner);if(q(e.scope)!==q({installationId:a.installationId,profileId:a.profileId,ownerUserId:a.ownerUserId,teamId:a.teamId})||!N(t,a))throw new Error("remote_task_not_owned");let d=r.publicKeys.find(I=>I.keyId===e.permit.keyId),{permit:p,...c}=e;if(!d||!He(null,Buffer.from(Z(c,p.expiresAt,p.keyId)),We(d.publicKey),Buffer.from(p.signature,"base64")))throw new Error("remote_permit_invalid");if(e.action==="start"){let I=t.metadata?.remoteStarterSourceSessionId,T=typeof I=="string"?s.get("SELECT payload FROM sessions WHERE id=?",[I]):null,_=T?JSON.parse(T.payload):null,x=W(t);if(!_||!N(_,a)||_.archived||_.status==="closed"||e.payload.projectId!==_.localProjectId||e.payload.starterRevision!==U(_)||e.expectedRevision!==U(_)||x?.operationId!==e.id||x.payloadHash!==e.payloadHash)throw new Error("remote_starter_changed");return}let l=s.get("SELECT id FROM turns WHERE session_id=? ORDER BY sort_index DESC LIMIT 1",[t.id]),w=Ee(t,l?.id??null,ge(s,t.id));if(e.localSessionId!==t.id||w!==e.expectedRevision)throw new Error("remote_target_changed")}u(P,"assertRemoteAdmission");import{isDeepStrictEqual as Me}from"node:util";function S(s){return L.parse({...JSON.parse(s.payload),sequence:s.sequence})}u(S,"inputFromRow");function R(s,e){let t=s.get("SELECT sequence, payload FROM task_inputs WHERE id = ?",[e]);return t?S(t):null}u(R,"readTaskInput");function h(s,e){let t=L.parse(e);return s.run("UPDATE task_inputs SET kind = ?, state = ?, turn_id = ?, payload = ? WHERE id = ?",[t.kind,t.state,t.turnId,JSON.stringify(t),t.id]),t}u(h,"writeTaskInput");function y(s,e){return s.get("SELECT * FROM task_inbox_turns WHERE session_id = ?",[e])}u(y,"readInboxOwner");function k(s,e,t,n){let i=y(s,e);if(!i||i.turn_id!==t||i.owner_id!==n||i.lease_until<=Date.now())throw new Error("Task execution ownership was lost. Stop before dispatching more work.");return i}u(k,"requireInboxOwner");function J(s,e,t){let n=y(s,e),i=t?s.get("SELECT status FROM turns WHERE id = ? AND session_id = ?",[t,e]):null;if(!t||!n||n.turn_id!==t||!n.accepting||n.paused||n.lease_until<=Date.now()||i?.status!=="in_progress")throw new Error("The expected turn is no longer accepting input. Your text was not sent to a different turn; send it as a follow-up instead.")}u(J,"assertSteerTarget");function j(s,e){let t=`${e.senderKind}:${e.senderSessionId??"user"}`,n=s.get("SELECT sequence, payload, admission FROM task_inputs WHERE session_id = ? AND sender_key = ? AND idempotency_key = ?",[e.sessionId,t,e.idempotencyKey]);if(n){let l=S(n),w=JSON.parse(n.admission);if(["kind","body","payload","replyTo","expectedTurnId"].some(T=>!Me(w[T],e[T])))throw new Error("This input identity was already used with different content.");return l}let i=s.get("SELECT payload FROM sessions WHERE id = ?",[e.sessionId]),r=i?JSON.parse(i.payload):null;if(!r||r.status==="closed"||r.archived)throw new Error("The recipient task is unavailable.");if(e.payload.remoteDevice!==void 0){if(e.senderKind!=="user"||e.senderSessionId!==null)throw new Error("remote_human_input_required");P(s,e.payload.remoteDevice,r)}if(e.senderKind==="ponder"||e.payload.ponderDesktop!==void 0){let l=s.get("SELECT id FROM turns WHERE session_id = ? ORDER BY sort_index DESC LIMIT 1",[e.sessionId]);le(s,e,r,l?.id??null)}let o=e.payload.localManagedMessage;if(o&&typeof o=="object"){let l=o.targetRevision,w=s.get("SELECT id FROM turns WHERE session_id = ? ORDER BY sort_index DESC LIMIT 1",[e.sessionId]);if(typeof l!="string"||l!==se(r,w?.id??null))throw new me("The managed target changed before message admission. Refresh and review the message before sending.")}let a=y(s,e.sessionId);if(e.kind==="steer"&&J(s,e.sessionId,e.expectedTurnId),e.kind==="steer"&&B(s,e.expectedTurnId,e.body),s.get("SELECT count(*) AS count FROM task_inputs WHERE session_id = ? AND state = 'pending'",[e.sessionId]).count>=te)throw new Error("The task inbox is full. Wait for delivery before sending more input.");let p=new Date().toISOString(),c=L.parse({...e,sequence:0,revision:1,state:"pending",requestIds:[],error:null,payload:{...e.payload,...e.payload.remoteDevice?{remoteDeviceExecution:de(r)}:{}},turnId:e.kind!=="queued"&&e.kind!=="followup"&&a?.accepting&&!a.paused&&a.lease_until>Date.now()?a.turn_id:null,createdAt:p,updatedAt:p});if(e.payload.remoteDevice!==void 0){let l=e.payload.remoteDevice;if(l.payload.resume===!0&&(e.kind!=="queued"||e.expectedTurnId!==l.expectedTurnId))throw new Error("remote_resume_input_invalid");he(s,l)}return s.run("INSERT INTO task_inputs (id, session_id, sender_key, idempotency_key, kind, state, turn_id, payload, admission) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)",[c.id,c.sessionId,t,c.idempotencyKey,c.kind,c.state,c.turnId,JSON.stringify(c),JSON.stringify(e)]),R(s,c.id)}u(j,"admitTaskInput");function v(s,e,t){return s.all(`SELECT sequence, payload FROM task_inputs WHERE session_id = ? AND state = 'pending'
6
6
  AND ((turn_id = ?) OR (turn_id IS NULL AND kind NOT IN ('queued', 'followup', 'steer')))
7
- ORDER BY sequence`,[e,t]).map(S)}u(v,"pendingTaskInputs");function K(s,e,t){if(s.get(`SELECT COALESCE(SUM(length(json_extract(payload, '$.body'))), 0) AS size
8
- FROM task_inputs WHERE turn_id = ? AND kind = 'steer' AND state NOT IN ('rejected', 'cancelled')`,[e]).size+t.length>64e3)throw new Error("This turn's correction history is full. Finish it or send the additional instructions in a new turn.")}u(K,"assertCorrectionBudget");function Se(s,e){let t=s.all("SELECT session_id, turn_id FROM task_inbox_turns WHERE owner_id <> ? AND lease_until > 0",[e]),n=new Date().toISOString();for(let i of t){let r=s.get("SELECT status FROM turns WHERE id = ?",[i.turn_id]);s.run("UPDATE task_inbox_turns SET accepting = 0, paused = ?, lease_until = 0 WHERE session_id = ?",[r?1:0,i.session_id]);let o=s.all("SELECT sequence, payload FROM task_inputs WHERE turn_id = ? AND state IN ('pending', 'included')",[i.turn_id]);for(let a of o){let d=S(a);h(s,{...d,updatedAt:n,...d.state==="included"?{error:"Execution owner stopped after inclusion. The provider outcome is uncertain; review before retrying."}:d.kind==="steer"?{state:"rejected",error:"The interrupted execution did not include this correction. Send it as a follow-up."}:{turnId:null}})}s.run("UPDATE task_input_requests SET state = 'failed' WHERE turn_id = ? AND state = 'included'",[i.turn_id]);for(let a of s.all("SELECT id, payload FROM task_waits WHERE turn_id = ? AND state = 'waiting'",[i.turn_id])){let d=O.parse(JSON.parse(a.payload));s.run("UPDATE task_waits SET state = 'unavailable', payload = ? WHERE id = ?",[JSON.stringify({...d,state:"unavailable",updatedAt:n}),a.id])}}return t.map(i=>({sessionId:i.session_id,turnId:i.turn_id}))}u(Se,"recoverTaskInboxOwners");function Te(s,e,t){if(m(e),e.intent.action!=="create"||!e.claimId||e.receipt||!["dispatching","attention"].includes(e.state))return null;let n=ue(e.id),i=s.get("SELECT payload FROM sessions WHERE id = ?",[n]);if(!i||s.get("SELECT id FROM task_inputs WHERE session_id = ? LIMIT 1",[n])||s.get("SELECT id FROM turns WHERE session_id = ? LIMIT 1",[n]))return null;let r=E.parse(JSON.parse(i.payload)),o=W(r),a=s.get("SELECT payload FROM ponder_desktop_authority WHERE id = 1");if(!a||!o||!x(r,t)||r.archived||r.status!=="idle")return null;let d=C.parse(JSON.parse(a.payload));return d.state!=="attached"||Date.parse(d.leaseExpiresAt)<=Date.now()||d.authorizationRevision!==e.origin.authorizationRevision||!Object.entries(e.origin.scope).every(([p,c])=>d.scope[p]===c)||o.operationId!==e.id||o.payloadHash!==e.payloadHash||o.sessionRevision!==H(r,null)||o.executionRevision!==ae(r)?null:te.parse({sessionId:n,creationHash:o.creationHash,sessionRevision:o.sessionRevision,executionRevision:o.executionRevision})}u(Te,"readPonderDesktopReservationResume");var Re=D.object({operation:g,receipt:g.shape.receipt.unwrap()}).strict();function M(s,e){let t=s.get("SELECT payload FROM ponder_desktop_stops WHERE operation_id = ?",[e]);return t?Re.parse(JSON.parse(t.payload)):null}u(M,"readPonderDesktopStop");function Ie(s,e){if(e=g.parse(e),m(e),e.intent.action!=="stop")throw new Error("ponder_desktop_stop_intent_invalid");let t=M(s,e.id);if(t){if(t.operation.payloadHash!==e.payloadHash)throw new Error("ponder_desktop_stop_identity_reused");return t}let n=s.get("SELECT payload FROM sessions WHERE id = ?",[e.intent.targetId]);if(!n)throw new Error("ponder_desktop_stop_target_unavailable");let i=E.parse(JSON.parse(n.payload)),r=s.get("SELECT id FROM turns WHERE session_id = ? ORDER BY sort_index DESC LIMIT 1",[i.id]);k(s,e,i,r?.id??null,e.intent.targetRevision);let o=y(s,i.id),a=s.get("SELECT status FROM turns WHERE id = ? AND session_id = ?",[e.intent.expectedTurnId,i.id]);if(!o||o.turn_id!==e.intent.expectedTurnId||o.lease_until<=Date.now()||a?.status!=="in_progress")throw new Error("ponder_desktop_stop_target_changed");let d=Re.parse({operation:e,receipt:{sessionId:i.id,sessionTitle:i.title,inputId:null,turnId:e.intent.expectedTurnId,state:"stop_requested"}});return s.run("INSERT INTO ponder_desktop_stops (operation_id, payload_hash, payload) VALUES (?, ?, ?)",[e.id,e.payloadHash,JSON.stringify(d)]),d}u(Ie,"admitPonderDesktopStop");function we(s,e,t){let n=M(s,e);if(!n)throw new Error("ponder_desktop_stop_not_found");if(n.receipt.state!=="stop_requested")return n;let i={...n,receipt:{...n.receipt,state:t}};return s.run("UPDATE ponder_desktop_stops SET payload = ? WHERE operation_id = ?",[JSON.stringify(i),e]),i}u(we,"settlePonderDesktopStop");import{createHash as We}from"node:crypto";function Oe(s){return We("sha256").update(A("POST","/ponder/desktop/result",s)).digest("hex")}u(Oe,"hash");function Y(s,e,t){let n=s.get("SELECT payload, payload_hash FROM ponder_desktop_results WHERE operation_id = ? AND turn_id = ?",[e,t]);if(!n)return null;let i=F.parse(JSON.parse(n.payload));if(i.operationId!==e||i.turnId!==t||Oe(i)!==n.payload_hash)throw new Error("ponder_desktop_committed_result_invalid");return i}u(Y,"readPonderDesktopResult");function ke(s,e){let t=F.parse(e),n=Y(s,t.operationId,t.turnId);return n||(s.run("INSERT INTO ponder_desktop_results (operation_id, turn_id, payload_hash, payload) VALUES (?, ?, ?, ?)",[t.operationId,t.turnId,Oe(t),JSON.stringify(t)]),t)}u(ke,"commitPonderDesktopResult");var fe=D.object({operation:g,receipt:g.shape.receipt.unwrap()}).strict();function Q(s,e){let t=s.get("SELECT payload, payload_hash FROM ponder_desktop_observations WHERE operation_id = ?",[e]);if(!t)return null;let n=fe.parse(JSON.parse(t.payload));if(m(n.operation),n.operation.id!==e||n.operation.payloadHash!==t.payload_hash||n.operation.intent.action!=="observe"||n.receipt.turnId!==n.operation.intent.expectedTurnId||n.receipt.sessionId!==n.operation.intent.targetId||n.receipt.inputId!==null)throw new Error("ponder_desktop_observation_record_invalid");return n}u(Q,"readPonderDesktopObservation");function De(s,e){let t=g.parse(e);if(m(t),t.intent.action!=="observe")throw new Error("ponder_desktop_observation_intent_invalid");let n=Q(s,t.id);if(n){if(n.operation.payloadHash!==t.payloadHash)throw new Error("ponder_desktop_observation_identity_reused");return n}let i=s.get("SELECT payload FROM sessions WHERE id = ?",[t.intent.targetId]);if(!i)throw new Error("ponder_desktop_observation_target_unavailable");let r=E.parse(JSON.parse(i.payload)),o=s.get("SELECT id FROM turns WHERE session_id = ? ORDER BY sort_index DESC LIMIT 1",[r.id]);k(s,t,r,o?.id??null,t.intent.targetRevision);let a=s.get("SELECT id FROM turns WHERE id = ? AND session_id = ?",[t.intent.expectedTurnId,r.id]);if(!a||o?.id!==a.id)throw new Error("ponder_desktop_observation_target_changed");let d=fe.parse({operation:t,receipt:{sessionId:r.id,sessionTitle:r.title,inputId:null,turnId:a.id,state:"observing"}});return s.run("INSERT INTO ponder_desktop_observations (operation_id, payload_hash, payload) VALUES (?, ?, ?)",[t.id,t.payloadHash,JSON.stringify(d)]),d}u(De,"admitPonderDesktopObservation");import{createHash as He}from"node:crypto";var ve=D.object({operation:g,receipt:g.shape.receipt.unwrap(),inspection:U}).strict();function Ne(s){return He("sha256").update(A("POST","/ponder/desktop/inspection",s)).digest("hex")}u(Ne,"snapshotHash");function V(s,e){let t=s.get("SELECT payload, payload_hash, snapshot_hash FROM ponder_desktop_inspections WHERE operation_id = ?",[e]);if(!t)return null;let n=ve.parse(JSON.parse(t.payload));m(n.operation);let{operation:i,receipt:r,inspection:o}=n;if(i.intent.action!=="inspect"||i.id!==e||i.payloadHash!==t.payload_hash||Ne(n)!==t.snapshot_hash||o.operationId!==e||o.payloadHash!==i.payloadHash||o.sessionId!==i.intent.targetId||o.turnId!==i.intent.expectedTurnId||r.sessionId!==o.sessionId||r.turnId!==o.turnId||r.inputId!==null||r.state!=="inspected")throw new Error("ponder_desktop_inspection_record_invalid");return n}u(V,"readPonderDesktopInspection");function xe(s,e){let t=g.parse(e);if(m(t),t.intent.action!=="inspect")throw new Error("ponder_desktop_inspection_intent_invalid");let n=V(s,t.id);if(n){if(n.operation.payloadHash!==t.payloadHash)throw new Error("ponder_desktop_inspection_identity_reused");return n}let i=s.get("SELECT payload FROM sessions WHERE id = ?",[t.intent.targetId]);if(!i)throw new Error("ponder_desktop_inspection_target_unavailable");let r=E.parse(JSON.parse(i.payload)),o=r.localProjectId??r.workspaceId??r.cwd;if(r.archived||r.systemKind||r.hiddenFromDefaultSidebar||r.status==="closed"||r.experience==="development"||["sandbox","sandbox_template","sandbox_app"].includes(r.workspaceKind??"")||t.target.kind!=="session"||t.target.id!==r.id||t.target.revision!==t.intent.targetRevision||t.target.workspaceId!==o||t.target.providerId!==r.provider||t.target.modelId!==(r.modelRef?.modelId??null))throw new Error("ponder_desktop_inspection_target_changed");let a=s.get("SELECT id, payload FROM turns WHERE session_id = ? ORDER BY sort_index DESC LIMIT 1",[r.id]);if(k(s,t,r,a?.id??null,t.intent.targetRevision),!a||a.id!==t.intent.expectedTurnId)throw new Error("ponder_desktop_inspection_target_changed");let d=Z.parse(JSON.parse(a.payload));if(d.sessionId!==r.id||d.id!==a.id)throw new Error("ponder_desktop_inspection_turn_invalid");let p=s.all(`
7
+ ORDER BY sequence`,[e,t]).map(S)}u(v,"pendingTaskInputs");function B(s,e,t){if(s.get(`SELECT COALESCE(SUM(length(json_extract(payload, '$.body'))), 0) AS size
8
+ FROM task_inputs WHERE turn_id = ? AND kind = 'steer' AND state NOT IN ('rejected', 'cancelled')`,[e]).size+t.length>64e3)throw new Error("This turn's correction history is full. Finish it or send the additional instructions in a new turn.")}u(B,"assertCorrectionBudget");function Ie(s,e){let t=s.all("SELECT session_id, turn_id FROM task_inbox_turns WHERE owner_id <> ? AND lease_until > 0",[e]),n=new Date().toISOString();for(let i of t){let r=s.get("SELECT status FROM turns WHERE id = ?",[i.turn_id]);s.run("UPDATE task_inbox_turns SET accepting = 0, paused = ?, lease_until = 0 WHERE session_id = ?",[r?1:0,i.session_id]);let o=s.all("SELECT sequence, payload FROM task_inputs WHERE turn_id = ? AND state IN ('pending', 'included')",[i.turn_id]);for(let a of o){let d=S(a);h(s,{...d,updatedAt:n,...d.state==="included"?{error:"Execution owner stopped after inclusion. The provider outcome is uncertain; review before retrying."}:d.kind==="steer"?{state:"rejected",error:"The interrupted execution did not include this correction. Send it as a follow-up."}:{turnId:null}})}s.run("UPDATE task_input_requests SET state = 'failed' WHERE turn_id = ? AND state = 'included'",[i.turn_id]);for(let a of s.all("SELECT id, payload FROM task_waits WHERE turn_id = ? AND state = 'waiting'",[i.turn_id])){let d=O.parse(JSON.parse(a.payload));s.run("UPDATE task_waits SET state = 'unavailable', payload = ? WHERE id = ?",[JSON.stringify({...d,state:"unavailable",updatedAt:n}),a.id])}}return t.map(i=>({sessionId:i.session_id,turnId:i.turn_id}))}u(Ie,"recoverTaskInboxOwners");function we(s,e,t){if(m(e),e.intent.action!=="create"||!e.claimId||e.receipt||!["dispatching","attention"].includes(e.state))return null;let n=ue(e.id),i=s.get("SELECT payload FROM sessions WHERE id = ?",[n]);if(!i||s.get("SELECT id FROM task_inputs WHERE session_id = ? LIMIT 1",[n])||s.get("SELECT id FROM turns WHERE session_id = ? LIMIT 1",[n]))return null;let r=E.parse(JSON.parse(i.payload)),o=W(r),a=s.get("SELECT payload FROM ponder_desktop_authority WHERE id = 1");if(!a||!o||!N(r,t)||r.archived||r.status!=="idle")return null;let d=A.parse(JSON.parse(a.payload));return d.state!=="attached"||Date.parse(d.leaseExpiresAt)<=Date.now()||d.authorizationRevision!==e.origin.authorizationRevision||!Object.entries(e.origin.scope).every(([p,c])=>d.scope[p]===c)||o.operationId!==e.id||o.payloadHash!==e.payloadHash||o.sessionRevision!==oe(r,null)||o.executionRevision!==ae(r)?null:ee.parse({sessionId:n,creationHash:o.creationHash,sessionRevision:o.sessionRevision,executionRevision:o.executionRevision})}u(we,"readPonderDesktopReservationResume");var Oe=D.object({operation:g,receipt:g.shape.receipt.unwrap()}).strict();function H(s,e){let t=s.get("SELECT payload FROM ponder_desktop_stops WHERE operation_id = ?",[e]);return t?Oe.parse(JSON.parse(t.payload)):null}u(H,"readPonderDesktopStop");function fe(s,e){if(e=g.parse(e),m(e),e.intent.action!=="stop")throw new Error("ponder_desktop_stop_intent_invalid");let t=H(s,e.id);if(t){if(t.operation.payloadHash!==e.payloadHash)throw new Error("ponder_desktop_stop_identity_reused");return t}let n=s.get("SELECT payload FROM sessions WHERE id = ?",[e.intent.targetId]);if(!n)throw new Error("ponder_desktop_stop_target_unavailable");let i=E.parse(JSON.parse(n.payload)),r=s.get("SELECT id FROM turns WHERE session_id = ? ORDER BY sort_index DESC LIMIT 1",[i.id]);f(s,e,i,r?.id??null,e.intent.targetRevision);let o=y(s,i.id),a=s.get("SELECT status FROM turns WHERE id = ? AND session_id = ?",[e.intent.expectedTurnId,i.id]);if(!o||o.turn_id!==e.intent.expectedTurnId||o.lease_until<=Date.now()||a?.status!=="in_progress")throw new Error("ponder_desktop_stop_target_changed");let d=Oe.parse({operation:e,receipt:{sessionId:i.id,sessionTitle:i.title,inputId:null,turnId:e.intent.expectedTurnId,state:"stop_requested"}});return s.run("INSERT INTO ponder_desktop_stops (operation_id, payload_hash, payload) VALUES (?, ?, ?)",[e.id,e.payloadHash,JSON.stringify(d)]),d}u(fe,"admitPonderDesktopStop");function ke(s,e,t){let n=H(s,e);if(!n)throw new Error("ponder_desktop_stop_not_found");if(n.receipt.state!=="stop_requested")return n;let i={...n,receipt:{...n.receipt,state:t}};return s.run("UPDATE ponder_desktop_stops SET payload = ? WHERE operation_id = ?",[JSON.stringify(i),e]),i}u(ke,"settlePonderDesktopStop");import{createHash as qe}from"node:crypto";function De(s){return qe("sha256").update(C("POST","/ponder/desktop/result",s)).digest("hex")}u(De,"hash");function K(s,e,t){let n=s.get("SELECT payload, payload_hash FROM ponder_desktop_results WHERE operation_id = ? AND turn_id = ?",[e,t]);if(!n)return null;let i=b.parse(JSON.parse(n.payload));if(i.operationId!==e||i.turnId!==t||De(i)!==n.payload_hash)throw new Error("ponder_desktop_committed_result_invalid");return i}u(K,"readPonderDesktopResult");function ve(s,e){let t=b.parse(e),n=K(s,t.operationId,t.turnId);return n||(s.run("INSERT INTO ponder_desktop_results (operation_id, turn_id, payload_hash, payload) VALUES (?, ?, ?, ?)",[t.operationId,t.turnId,De(t),JSON.stringify(t)]),t)}u(ve,"commitPonderDesktopResult");var xe=D.object({operation:g,receipt:g.shape.receipt.unwrap()}).strict();function Y(s,e){let t=s.get("SELECT payload, payload_hash FROM ponder_desktop_observations WHERE operation_id = ?",[e]);if(!t)return null;let n=xe.parse(JSON.parse(t.payload));if(m(n.operation),n.operation.id!==e||n.operation.payloadHash!==t.payload_hash||n.operation.intent.action!=="observe"||n.receipt.turnId!==n.operation.intent.expectedTurnId||n.receipt.sessionId!==n.operation.intent.targetId||n.receipt.inputId!==null)throw new Error("ponder_desktop_observation_record_invalid");return n}u(Y,"readPonderDesktopObservation");function Ne(s,e){let t=g.parse(e);if(m(t),t.intent.action!=="observe")throw new Error("ponder_desktop_observation_intent_invalid");let n=Y(s,t.id);if(n){if(n.operation.payloadHash!==t.payloadHash)throw new Error("ponder_desktop_observation_identity_reused");return n}let i=s.get("SELECT payload FROM sessions WHERE id = ?",[t.intent.targetId]);if(!i)throw new Error("ponder_desktop_observation_target_unavailable");let r=E.parse(JSON.parse(i.payload)),o=s.get("SELECT id FROM turns WHERE session_id = ? ORDER BY sort_index DESC LIMIT 1",[r.id]);f(s,t,r,o?.id??null,t.intent.targetRevision);let a=s.get("SELECT id FROM turns WHERE id = ? AND session_id = ?",[t.intent.expectedTurnId,r.id]);if(!a||o?.id!==a.id)throw new Error("ponder_desktop_observation_target_changed");let d=xe.parse({operation:t,receipt:{sessionId:r.id,sessionTitle:r.title,inputId:null,turnId:a.id,state:"observing"}});return s.run("INSERT INTO ponder_desktop_observations (operation_id, payload_hash, payload) VALUES (?, ?, ?)",[t.id,t.payloadHash,JSON.stringify(d)]),d}u(Ne,"admitPonderDesktopObservation");import{createHash as be}from"node:crypto";var Pe=D.object({operation:g,receipt:g.shape.receipt.unwrap(),inspection:F}).strict();function Ce(s){return be("sha256").update(C("POST","/ponder/desktop/inspection",s)).digest("hex")}u(Ce,"snapshotHash");function Q(s,e){let t=s.get("SELECT payload, payload_hash, snapshot_hash FROM ponder_desktop_inspections WHERE operation_id = ?",[e]);if(!t)return null;let n=Pe.parse(JSON.parse(t.payload));m(n.operation);let{operation:i,receipt:r,inspection:o}=n;if(i.intent.action!=="inspect"||i.id!==e||i.payloadHash!==t.payload_hash||Ce(n)!==t.snapshot_hash||o.operationId!==e||o.payloadHash!==i.payloadHash||o.sessionId!==i.intent.targetId||o.turnId!==i.intent.expectedTurnId||r.sessionId!==o.sessionId||r.turnId!==o.turnId||r.inputId!==null||r.state!=="inspected")throw new Error("ponder_desktop_inspection_record_invalid");return n}u(Q,"readPonderDesktopInspection");function Ae(s,e){let t=g.parse(e);if(m(t),t.intent.action!=="inspect")throw new Error("ponder_desktop_inspection_intent_invalid");let n=Q(s,t.id);if(n){if(n.operation.payloadHash!==t.payloadHash)throw new Error("ponder_desktop_inspection_identity_reused");return n}let i=s.get("SELECT payload FROM sessions WHERE id = ?",[t.intent.targetId]);if(!i)throw new Error("ponder_desktop_inspection_target_unavailable");let r=E.parse(JSON.parse(i.payload)),o=r.localProjectId??r.workspaceId??r.cwd;if(r.archived||r.systemKind||r.hiddenFromDefaultSidebar||r.status==="closed"||r.experience==="development"||["sandbox","sandbox_template","sandbox_app"].includes(r.workspaceKind??"")||t.target.kind!=="session"||t.target.id!==r.id||t.target.revision!==t.intent.targetRevision||t.target.workspaceId!==o||t.target.providerId!==r.provider||t.target.modelId!==(r.modelRef?.modelId??null))throw new Error("ponder_desktop_inspection_target_changed");let a=s.get("SELECT id, payload FROM turns WHERE session_id = ? ORDER BY sort_index DESC LIMIT 1",[r.id]);if(f(s,t,r,a?.id??null,t.intent.targetRevision),!a||a.id!==t.intent.expectedTurnId)throw new Error("ponder_desktop_inspection_target_changed");let d=G.parse(JSON.parse(a.payload));if(d.sessionId!==r.id||d.id!==a.id)throw new Error("ponder_desktop_inspection_turn_invalid");let p=s.all(`
9
9
  SELECT sequence, substr(json_extract(payload, '$.id'), 1, 201) AS id,
10
10
  substr(json_extract(payload, '$.timestamp'), 1, 101) AS timestamp, name AS kind,
11
11
  substr(json_extract(payload, '$.output'), 1, 4001) AS text,
@@ -17,17 +17,17 @@ import{b as J,e as Ee,f as ge,i as he,j as ye}from"./chunk-YY7LEQGP.js";import{A
17
17
  AND name IN ('assistant.delta', 'tool.started', 'tool.completed')
18
18
  AND coalesce(json_extract(payload, '$.data.retainedHistory'), 0) <> 1
19
19
  AND coalesce(json_extract(payload, '$.data.phase'), '') NOT IN ('reasoning', 'analysis')
20
- ORDER BY sequence DESC LIMIT 101`,[d.id,r.id]),c=16e3,_=!1,w=p.slice(0,100).map(l=>{let N=l.text??"",$=Math.min(4e3,c),z=N.slice(0,$);return c-=z.length,_||=N.length>$,{id:l.id,sequence:l.sequence,timestamp:l.timestamp,kind:l.kind,text:z,action:l.action,status:l.status,messageId:l.message_id,messageSnapshot:l.message_snapshot===1}}).reverse(),I=U.parse({operationId:t.id,payloadHash:t.payloadHash,sessionId:r.id,sessionTitle:r.title.slice(0,300),turnId:d.id,workspaceId:o,providerId:d.modelRef?.providerId??t.target.providerId,modelId:d.modelRef?.modelId??t.target.modelId,capturedAt:new Date().toISOString(),taskStatus:d.status,taskCompletedAt:d.completedAt?new Date(d.completedAt).toISOString():null,error:d.error?.slice(0,2e3)??null,events:w,coverage:{olderEventsOmitted:p.length>100,textTruncated:_,textLimit:16e3,eventLimit:100}}),T=ve.parse({operation:t,inspection:I,receipt:{sessionId:r.id,sessionTitle:I.sessionTitle,inputId:null,turnId:d.id,state:"inspected"}});return k(s,t,r,a.id,t.intent.targetRevision),s.run("INSERT INTO ponder_desktop_inspections (operation_id, payload_hash, snapshot_hash, payload) VALUES (?, ?, ?, ?)",[t.id,t.payloadHash,Ne(T),JSON.stringify(T)]),T}u(xe,"admitPonderDesktopInspection");var X=9e4,Pe=class extends G{static{u(this,"SqliteTaskInboxStore")}async initializeRemoteDeviceStore(){return this.inboxWrite(e=>{e.exec(me),e.run("DELETE FROM remote_device_authority")})}async setRemoteDeviceAuthority(e){return this.inboxWrite(t=>{e?t.run("INSERT INTO remote_device_authority(id,payload) VALUES(1,?) ON CONFLICT(id) DO UPDATE SET payload=excluded.payload",[JSON.stringify(e)]):t.run("DELETE FROM remote_device_authority")})}async getRemoteDeviceReceipt(e){await this.ready,await this.writeQueue;let t=this.database.get("SELECT receipt FROM remote_device_receipts WHERE id=?",[e]);return t?JSON.parse(t.receipt):null}async getRemoteDeviceCancellation(e){return await this.ready,await this.writeQueue,this.database.get("SELECT payload_hash,device_id FROM remote_device_cancellations WHERE id=?",[e])}async cancelRemoteDeviceCommand(e,t){return this.inboxWrite(n=>{let i=n.get("SELECT payload_hash,receipt FROM remote_device_receipts WHERE id=?",[e]);if(i){if(i.payload_hash!==t)throw new Error("remote_command_identity_changed");return{receipt:JSON.parse(i.receipt),cancelled:!1}}let r=R(n,`remote-input:${e}`);if(r){let p=r.payload.remoteDevice;if(p.payloadHash!==t)throw new Error("remote_command_identity_changed");return{receipt:{id:e,deviceId:p.deviceId,payloadHash:t,action:p.action,targetId:p.targetId,localSessionId:r.sessionId,inputId:r.id,state:"admitted",revision:2,createdAt:r.createdAt,expiresAt:p.deadline},cancelled:!1}}let o=n.get("SELECT payload FROM remote_device_authority WHERE id=1");if(!o)throw new Error("remote_authority_unavailable");let a=JSON.parse(o.payload);if(!(Date.parse(a.leaseExpiresAt)>Date.now()))throw new Error("remote_authority_unavailable");let d=n.get("SELECT payload_hash FROM remote_device_cancellations WHERE id=?",[e]);if(d&&d.payload_hash!==t)throw new Error("remote_command_identity_changed");return n.run("INSERT INTO remote_device_cancellations(id,payload_hash,device_id) VALUES(?,?,?) ON CONFLICT(id) DO NOTHING",[e,t,a.deviceId]),{receipt:null,cancelled:!0}})}async saveRemoteDeviceReceipt(e,t){return this.inboxWrite(n=>{let i=n.get("SELECT payload_hash FROM remote_device_receipts WHERE id=?",[e.id]);if(i&&i.payload_hash!==e.payloadHash)throw new Error("remote_command_identity_changed");n.run("INSERT INTO remote_device_receipts(id,payload_hash,command,receipt) VALUES(?,?,?,?) ON CONFLICT(id) DO UPDATE SET receipt=excluded.receipt",[e.id,e.payloadHash,JSON.stringify(e),JSON.stringify(t)])})}async admitRemoteDeviceStop(e){return this.inboxWrite(t=>{let n=t.get("SELECT payload_hash,receipt FROM remote_device_receipts WHERE id=?",[e.id]);if(n){if(n.payload_hash!==e.payloadHash)throw new Error("remote_command_identity_changed");return JSON.parse(n.receipt)}let i=t.get("SELECT payload FROM sessions WHERE id=?",[e.localSessionId]);if(!i)throw new Error("remote_task_unavailable");let r=E.parse(JSON.parse(i.payload));P(t,e,r);let o=t.get("SELECT id,status FROM turns WHERE session_id=? ORDER BY sort_index DESC LIMIT 1",[e.localSessionId]);if(!e.expectedTurnId||o?.id!==e.expectedTurnId||o.status!=="in_progress")throw new Error("remote_turn_changed");let a={id:e.id,deviceId:e.deviceId,payloadHash:e.payloadHash,action:e.action,targetId:e.targetId,localSessionId:r.id,turnId:o.id,state:"admitted",revision:2,createdAt:new Date().toISOString(),expiresAt:e.deadline};return t.run("INSERT INTO remote_device_receipts(id,payload_hash,command,receipt) VALUES(?,?,?,?)",[e.id,e.payloadHash,JSON.stringify(e),JSON.stringify(a)]),a})}async admitRemoteDeviceApproval(e){return this.inboxWrite(t=>{let n=t.get("SELECT payload_hash,receipt FROM remote_device_receipts WHERE id=?",[e.id]);if(n){if(n.payload_hash!==e.payloadHash)throw new Error("remote_command_identity_changed");return JSON.parse(n.receipt)}let i=t.get("SELECT payload FROM sessions WHERE id=?",[e.localSessionId]);if(!i)throw new Error("remote_task_unavailable");let r=E.parse(JSON.parse(i.payload));P(t,e,r);let o=t.get("SELECT id,payload FROM turns WHERE session_id=? ORDER BY sort_index DESC LIMIT 1",[r.id]),a=o?JSON.parse(o.payload):null;if(!a||a.id!==e.expectedTurnId||a.status!=="in_progress")throw new Error("remote_turn_changed");let d=t.get("SELECT payload FROM approvals WHERE id=?",[e.expectedApprovalId]),p=d?JSON.parse(d.payload):null;if(!p||p.status!=="pending"||p.sessionId!==r.id||!p.turnId||p.turnId!==a.id&&p.turnId!==a.providerTurnId||!Ee(p))throw new Error("remote_approval_changed_or_unsupported");if(t.get("SELECT command_id FROM remote_device_approval_claims WHERE approval_id=?",[p.id]))throw new Error("remote_approval_already_claimed");t.run("INSERT INTO remote_device_approval_claims(approval_id,command_id) VALUES(?,?)",[p.id,e.id]);let _={id:e.id,deviceId:e.deviceId,payloadHash:e.payloadHash,action:e.action,targetId:e.targetId,localSessionId:r.id,approvalId:p.id,turnId:a.id,state:"admitted",revision:2,createdAt:new Date().toISOString(),expiresAt:e.deadline};return t.run("INSERT INTO remote_device_receipts(id,payload_hash,command,receipt) VALUES(?,?,?,?)",[e.id,e.payloadHash,JSON.stringify(e),JSON.stringify(_)]),_})}async admitPonderDesktopInspection(e){return this.inboxWrite(t=>xe(t,e))}async getPonderDesktopInspection(e){return await this.ready,await this.writeQueue,V(this.database,e)}async setPonderProjectSharing(e){return this.inboxWrite(t=>he(t,e))}async readPonderProjectSharing(e){return await this.ready,await this.writeQueue,ye(this.database,e)}async getPonderDesktopReservationResume(e,t){return this.inboxWrite(n=>Te(n,e,t))}async admitPonderDesktopObservation(e){return this.inboxWrite(t=>De(t,e))}async getPonderDesktopObservation(e){return await this.ready,await this.writeQueue,Q(this.database,e)}async getPonderDesktopResult(e,t){return await this.ready,await this.writeQueue,Y(this.database,e,t)}async commitPonderDesktopResult(e){return this.inboxWrite(t=>ke(t,e))}async inboxWrite(e){await this.ready;let t=this.writeQueue.then(()=>{let n=this.database;n.exec("BEGIN IMMEDIATE");try{let i=e(n);return n.exec("COMMIT"),i}catch(i){throw n.exec("ROLLBACK"),i}});return this.writeQueue=t.then(()=>{},()=>{}),t}async setPonderDesktopAuthority(e){let t=C.parse(e);if(t.state!=="attached"||Date.parse(t.leaseExpiresAt)<=Date.now())throw new Error("ponder_desktop_local_authority_invalid");return this.inboxWrite(n=>{n.run("INSERT INTO ponder_desktop_authority (id, runtime_id, payload) VALUES (1, ?, ?) ON CONFLICT(id) DO UPDATE SET runtime_id = excluded.runtime_id, payload = excluded.payload",[t.runtimeId,JSON.stringify(t)])})}async clearPonderDesktopAuthority(e){return this.inboxWrite(t=>{e?t.run("DELETE FROM ponder_desktop_authority WHERE runtime_id = ?",[e]):t.run("DELETE FROM ponder_desktop_authority")})}async admitPonderDesktopStop(e){return this.inboxWrite(t=>Ie(t,e))}async getPonderDesktopStop(e){return await this.ready,await this.writeQueue,M(this.database,e)}async settlePonderDesktopStop(e,t){return this.inboxWrite(n=>we(n,e,t))}async recoverTaskInboxOwners(e){return this.inboxWrite(t=>Se(t,e))}async hasTaskCompletion(e){return await this.ready,await this.writeQueue,!!this.database.get("SELECT turn_id FROM task_completion_outbox WHERE turn_id = ?",[e])}async taskInboxSnapshot(e){await this.ready,await this.writeQueue;let t=y(this.database,e),n=t&&t.lease_until>Date.now()&&this.database.get("SELECT status FROM turns WHERE id = ?",[t.turn_id])?.status==="in_progress",i=this.database.all(`SELECT sequence, payload FROM task_inputs WHERE session_id = ? AND (state IN ('pending', 'included')
21
- OR sequence IN (SELECT sequence FROM task_inputs WHERE session_id = ? ORDER BY sequence DESC LIMIT 30)) ORDER BY sequence`,[e,e]);return{sessionId:e,activeTurnId:n?t.turn_id:null,acceptingInput:!!(n&&t.accepting&&!t.paused),paused:!!t?.paused,inputs:i.map(S),waits:await this.taskWaitsForSession(e)}}async declareTaskWork(e,t,n,i){return this.inboxWrite(r=>{f(r,e,t,n),r.run("INSERT INTO task_work_claims (session_id, turn_id, work_areas) VALUES (?, ?, ?) ON CONFLICT(session_id) DO UPDATE SET turn_id = excluded.turn_id, work_areas = excluded.work_areas",[e,t,JSON.stringify(i)])})}async taskWorkAreas(e){await this.ready,await this.writeQueue;let t=this.database.get("SELECT c.work_areas FROM task_work_claims c JOIN task_inbox_turns t ON c.session_id = t.session_id AND c.turn_id = t.turn_id WHERE c.session_id = ? AND t.lease_until > ?",[e,Date.now()]);return t?JSON.parse(t.work_areas):[]}async admitTaskInput(e){return this.inboxWrite(t=>B(t,e))}async admitTaskInputs(e){return this.inboxWrite(t=>e.map(n=>B(t,n)))}async rejectTaskInput(e,t,n){return this.inboxWrite(i=>{let r=R(i,e);if(r?.state==="pending"){let o=n&&r.senderKind==="ponder"?i.get("SELECT id FROM turns WHERE id = ? AND session_id = ? AND json_extract(payload, '$.metadata.taskInputId') = ?",[n,r.sessionId,r.id]):null;h(i,{...r,state:"rejected",error:t,...o?{turnId:o.id}:{},updatedAt:new Date().toISOString()})}})}async getTaskInput(e){return await this.ready,await this.writeQueue,R(this.database,e)}async taskInputsForSession(e,t={}){return await this.ready,await this.writeQueue,this.database.all(`SELECT sequence, payload FROM task_inputs WHERE session_id = ? AND sequence > ?
22
- ${t.pendingOnly?"AND state = 'pending'":""} ORDER BY sequence LIMIT ?`,[e,t.afterSequence??0,Math.max(1,Math.min(500,t.limit??128))]).map(S)}async mutateTaskInput(e,t,n){let i=re.parse(n);return this.inboxWrite(r=>{let o=R(r,t);if(!o||o.sessionId!==e||o.senderKind!=="user")throw new Error("Queued user input not found.");if(o.state!=="pending"||o.revision!==i.expectedRevision||o.turnId)throw new Error("This input changed or has already been admitted. Refresh the queue before editing it.");if(i.action==="resume"){if(o.kind!=="queued")throw new Error("Only the user queue can be resumed here.");let a=y(r,e);if(a&&a.lease_until>Date.now())throw new Error("This task is already running.");r.run("UPDATE task_inbox_turns SET paused = 0 WHERE session_id = ?",[e])}return i.action==="steer"&&(j(r,e,i.expectedTurnId),K(r,i.expectedTurnId,o.body)),h(r,{...o,revision:o.revision+1,updatedAt:new Date().toISOString(),...i.action==="cancel"?{state:"cancelled"}:{},...i.action==="edit"?{body:i.body,payload:{...o.payload,prompt:i.body}}:{},...i.action==="steer"?{kind:"steer",expectedTurnId:i.expectedTurnId,turnId:i.expectedTurnId}:{}})})}async openTaskInboxTurn(e,t,n){return this.inboxWrite(i=>{let r=y(i,e);if(r&&r.lease_until>Date.now()&&(r.turn_id!==t||r.owner_id!==n))throw new Error("A turn is already running for this task.");i.run(`INSERT INTO task_inbox_turns (session_id, turn_id, owner_id, generation, accepting, paused, lease_until)
20
+ ORDER BY sequence DESC LIMIT 101`,[d.id,r.id]),c=16e3,l=!1,w=p.slice(0,100).map(_=>{let x=_.text??"",X=Math.min(4e3,c),$=x.slice(0,X);return c-=$.length,l||=x.length>X,{id:_.id,sequence:_.sequence,timestamp:_.timestamp,kind:_.kind,text:$,action:_.action,status:_.status,messageId:_.message_id,messageSnapshot:_.message_snapshot===1}}).reverse(),I=F.parse({operationId:t.id,payloadHash:t.payloadHash,sessionId:r.id,sessionTitle:r.title.slice(0,300),turnId:d.id,workspaceId:o,providerId:d.modelRef?.providerId??t.target.providerId,modelId:d.modelRef?.modelId??t.target.modelId,capturedAt:new Date().toISOString(),taskStatus:d.status,taskCompletedAt:d.completedAt?new Date(d.completedAt).toISOString():null,error:d.error?.slice(0,2e3)??null,events:w,coverage:{olderEventsOmitted:p.length>100,textTruncated:l,textLimit:16e3,eventLimit:100}}),T=Pe.parse({operation:t,inspection:I,receipt:{sessionId:r.id,sessionTitle:I.sessionTitle,inputId:null,turnId:d.id,state:"inspected"}});return f(s,t,r,a.id,t.intent.targetRevision),s.run("INSERT INTO ponder_desktop_inspections (operation_id, payload_hash, snapshot_hash, payload) VALUES (?, ?, ?, ?)",[t.id,t.payloadHash,Ce(T),JSON.stringify(T)]),T}u(Ae,"admitPonderDesktopInspection");var V=9e4,Le=class extends z{static{u(this,"SqliteTaskInboxStore")}async initializeRemoteDeviceStore(){return this.inboxWrite(e=>{e.exec(Re),e.run("DELETE FROM remote_device_authority")})}async setRemoteDeviceAuthority(e){return this.inboxWrite(t=>{e?t.run("INSERT INTO remote_device_authority(id,payload) VALUES(1,?) ON CONFLICT(id) DO UPDATE SET payload=excluded.payload",[JSON.stringify(e)]):t.run("DELETE FROM remote_device_authority")})}async getRemoteDeviceReceipt(e){await this.ready,await this.writeQueue;let t=this.database.get("SELECT receipt FROM remote_device_receipts WHERE id=?",[e]);return t?JSON.parse(t.receipt):null}async getRemoteDeviceCancellation(e){return await this.ready,await this.writeQueue,this.database.get("SELECT payload_hash,device_id FROM remote_device_cancellations WHERE id=?",[e])}async cancelRemoteDeviceCommand(e,t){return this.inboxWrite(n=>{let i=n.get("SELECT payload_hash,receipt FROM remote_device_receipts WHERE id=?",[e]);if(i){if(i.payload_hash!==t)throw new Error("remote_command_identity_changed");return{receipt:JSON.parse(i.receipt),cancelled:!1}}let r=R(n,`remote-input:${e}`);if(r){let p=r.payload.remoteDevice;if(p.payloadHash!==t)throw new Error("remote_command_identity_changed");return{receipt:{id:e,deviceId:p.deviceId,payloadHash:t,action:p.action,targetId:p.targetId,localSessionId:r.sessionId,inputId:r.id,state:"admitted",revision:2,createdAt:r.createdAt,expiresAt:p.deadline},cancelled:!1}}let o=n.get("SELECT payload FROM remote_device_authority WHERE id=1");if(!o)throw new Error("remote_authority_unavailable");let a=JSON.parse(o.payload);if(!(Date.parse(a.leaseExpiresAt)>Date.now()))throw new Error("remote_authority_unavailable");let d=n.get("SELECT payload_hash FROM remote_device_cancellations WHERE id=?",[e]);if(d&&d.payload_hash!==t)throw new Error("remote_command_identity_changed");return n.run("INSERT INTO remote_device_cancellations(id,payload_hash,device_id) VALUES(?,?,?) ON CONFLICT(id) DO NOTHING",[e,t,a.deviceId]),{receipt:null,cancelled:!0}})}async saveRemoteDeviceReceipt(e,t){return this.inboxWrite(n=>{let i=n.get("SELECT payload_hash FROM remote_device_receipts WHERE id=?",[e.id]);if(i&&i.payload_hash!==e.payloadHash)throw new Error("remote_command_identity_changed");n.run("INSERT INTO remote_device_receipts(id,payload_hash,command,receipt) VALUES(?,?,?,?) ON CONFLICT(id) DO UPDATE SET receipt=excluded.receipt",[e.id,e.payloadHash,JSON.stringify(e),JSON.stringify(t)])})}async admitRemoteDeviceStop(e){return this.inboxWrite(t=>{let n=t.get("SELECT payload_hash,receipt FROM remote_device_receipts WHERE id=?",[e.id]);if(n){if(n.payload_hash!==e.payloadHash)throw new Error("remote_command_identity_changed");return JSON.parse(n.receipt)}let i=t.get("SELECT payload FROM sessions WHERE id=?",[e.localSessionId]);if(!i)throw new Error("remote_task_unavailable");let r=E.parse(JSON.parse(i.payload));P(t,e,r);let o=t.get("SELECT id,status FROM turns WHERE session_id=? ORDER BY sort_index DESC LIMIT 1",[e.localSessionId]);if(!e.expectedTurnId||o?.id!==e.expectedTurnId||o.status!=="in_progress")throw new Error("remote_turn_changed");let a={id:e.id,deviceId:e.deviceId,payloadHash:e.payloadHash,action:e.action,targetId:e.targetId,localSessionId:r.id,turnId:o.id,state:"admitted",revision:2,createdAt:new Date().toISOString(),expiresAt:e.deadline};return t.run("INSERT INTO remote_device_receipts(id,payload_hash,command,receipt) VALUES(?,?,?,?)",[e.id,e.payloadHash,JSON.stringify(e),JSON.stringify(a)]),a})}async admitRemoteDeviceApproval(e){return this.inboxWrite(t=>{let n=t.get("SELECT payload_hash,receipt FROM remote_device_receipts WHERE id=?",[e.id]);if(n){if(n.payload_hash!==e.payloadHash)throw new Error("remote_command_identity_changed");return JSON.parse(n.receipt)}let i=t.get("SELECT payload FROM sessions WHERE id=?",[e.localSessionId]);if(!i)throw new Error("remote_task_unavailable");let r=E.parse(JSON.parse(i.payload));P(t,e,r);let o=t.get("SELECT id,payload FROM turns WHERE session_id=? ORDER BY sort_index DESC LIMIT 1",[r.id]),a=o?JSON.parse(o.payload):null;if(!a||a.id!==e.expectedTurnId||a.status!=="in_progress")throw new Error("remote_turn_changed");let d=t.get("SELECT payload FROM approvals WHERE id=?",[e.expectedApprovalId]),p=d?JSON.parse(d.payload):null;if(!p||p.status!=="pending"||p.sessionId!==r.id||!p.turnId||p.turnId!==a.id&&p.turnId!==a.providerTurnId||!ye(p))throw new Error("remote_approval_changed_or_unsupported");if(t.get("SELECT command_id FROM remote_device_approval_claims WHERE approval_id=?",[p.id]))throw new Error("remote_approval_already_claimed");t.run("INSERT INTO remote_device_approval_claims(approval_id,command_id) VALUES(?,?)",[p.id,e.id]);let l={id:e.id,deviceId:e.deviceId,payloadHash:e.payloadHash,action:e.action,targetId:e.targetId,localSessionId:r.id,approvalId:p.id,turnId:a.id,state:"admitted",revision:2,createdAt:new Date().toISOString(),expiresAt:e.deadline};return t.run("INSERT INTO remote_device_receipts(id,payload_hash,command,receipt) VALUES(?,?,?,?)",[e.id,e.payloadHash,JSON.stringify(e),JSON.stringify(l)]),l})}async admitPonderDesktopInspection(e){return this.inboxWrite(t=>Ae(t,e))}async getPonderDesktopInspection(e){return await this.ready,await this.writeQueue,Q(this.database,e)}async setPonderProjectSharing(e){return this.inboxWrite(t=>Se(t,e))}async readPonderProjectSharing(e){return await this.ready,await this.writeQueue,Te(this.database,e)}async getPonderDesktopReservationResume(e,t){return this.inboxWrite(n=>we(n,e,t))}async admitPonderDesktopObservation(e){return this.inboxWrite(t=>Ne(t,e))}async getPonderDesktopObservation(e){return await this.ready,await this.writeQueue,Y(this.database,e)}async getPonderDesktopResult(e,t){return await this.ready,await this.writeQueue,K(this.database,e,t)}async commitPonderDesktopResult(e){return this.inboxWrite(t=>ve(t,e))}async inboxWrite(e){await this.ready;let t=this.writeQueue.then(()=>{let n=this.database;n.exec("BEGIN IMMEDIATE");try{let i=e(n);return n.exec("COMMIT"),i}catch(i){throw n.exec("ROLLBACK"),i}});return this.writeQueue=t.then(()=>{},()=>{}),t}async setPonderDesktopAuthority(e){let t=A.parse(e);if(t.state!=="attached"||Date.parse(t.leaseExpiresAt)<=Date.now())throw new Error("ponder_desktop_local_authority_invalid");return this.inboxWrite(n=>{n.run("INSERT INTO ponder_desktop_authority (id, runtime_id, payload) VALUES (1, ?, ?) ON CONFLICT(id) DO UPDATE SET runtime_id = excluded.runtime_id, payload = excluded.payload",[t.runtimeId,JSON.stringify(t)])})}async clearPonderDesktopAuthority(e){return this.inboxWrite(t=>{e?t.run("DELETE FROM ponder_desktop_authority WHERE runtime_id = ?",[e]):t.run("DELETE FROM ponder_desktop_authority")})}async admitPonderDesktopStop(e){return this.inboxWrite(t=>fe(t,e))}async getPonderDesktopStop(e){return await this.ready,await this.writeQueue,H(this.database,e)}async settlePonderDesktopStop(e,t){return this.inboxWrite(n=>ke(n,e,t))}async recoverTaskInboxOwners(e){return this.inboxWrite(t=>Ie(t,e))}async hasTaskCompletion(e){return await this.ready,await this.writeQueue,!!this.database.get("SELECT turn_id FROM task_completion_outbox WHERE turn_id = ?",[e])}async taskInboxSnapshot(e){await this.ready,await this.writeQueue;let t=y(this.database,e),n=t&&t.lease_until>Date.now()&&this.database.get("SELECT status FROM turns WHERE id = ?",[t.turn_id])?.status==="in_progress",i=this.database.all(`SELECT sequence, payload FROM task_inputs WHERE session_id = ? AND (state IN ('pending', 'included')
21
+ OR sequence IN (SELECT sequence FROM task_inputs WHERE session_id = ? ORDER BY sequence DESC LIMIT 30)) ORDER BY sequence`,[e,e]);return{sessionId:e,activeTurnId:n?t.turn_id:null,acceptingInput:!!(n&&t.accepting&&!t.paused),paused:!!t?.paused,inputs:i.map(S),waits:await this.taskWaitsForSession(e)}}async declareTaskWork(e,t,n,i){return this.inboxWrite(r=>{k(r,e,t,n),r.run("INSERT INTO task_work_claims (session_id, turn_id, work_areas) VALUES (?, ?, ?) ON CONFLICT(session_id) DO UPDATE SET turn_id = excluded.turn_id, work_areas = excluded.work_areas",[e,t,JSON.stringify(i)])})}async taskWorkAreas(e){await this.ready,await this.writeQueue;let t=this.database.get("SELECT c.work_areas FROM task_work_claims c JOIN task_inbox_turns t ON c.session_id = t.session_id AND c.turn_id = t.turn_id WHERE c.session_id = ? AND t.lease_until > ?",[e,Date.now()]);return t?JSON.parse(t.work_areas):[]}async admitTaskInput(e){return this.inboxWrite(t=>j(t,e))}async admitTaskInputs(e){return this.inboxWrite(t=>e.map(n=>j(t,n)))}async rejectTaskInput(e,t,n){return this.inboxWrite(i=>{let r=R(i,e);if(r?.state==="pending"){let o=n&&r.senderKind==="ponder"?i.get("SELECT id FROM turns WHERE id = ? AND session_id = ? AND json_extract(payload, '$.metadata.taskInputId') = ?",[n,r.sessionId,r.id]):null;h(i,{...r,state:"rejected",error:t,...o?{turnId:o.id}:{},updatedAt:new Date().toISOString()})}})}async getTaskInput(e){return await this.ready,await this.writeQueue,R(this.database,e)}async taskInputsForSession(e,t={}){return await this.ready,await this.writeQueue,this.database.all(`SELECT sequence, payload FROM task_inputs WHERE session_id = ? AND sequence > ?
22
+ ${t.pendingOnly?"AND state = 'pending'":""} ORDER BY sequence LIMIT ?`,[e,t.afterSequence??0,Math.max(1,Math.min(500,t.limit??128))]).map(S)}async mutateTaskInput(e,t,n){let i=ie.parse(n);return this.inboxWrite(r=>{let o=R(r,t);if(!o||o.sessionId!==e||o.senderKind!=="user")throw new Error("Queued user input not found.");if(o.state!=="pending"||o.revision!==i.expectedRevision||o.turnId)throw new Error("This input changed or has already been admitted. Refresh the queue before editing it.");if(i.action==="resume"){if(o.kind!=="queued")throw new Error("Only the user queue can be resumed here.");let a=y(r,e);if(a&&a.lease_until>Date.now())throw new Error("This task is already running.");r.run("UPDATE task_inbox_turns SET paused = 0 WHERE session_id = ?",[e])}return i.action==="steer"&&(J(r,e,i.expectedTurnId),B(r,i.expectedTurnId,o.body)),h(r,{...o,revision:o.revision+1,updatedAt:new Date().toISOString(),...i.action==="cancel"?{state:"cancelled"}:{},...i.action==="edit"?{body:i.body,payload:{...o.payload,prompt:i.body}}:{},...i.action==="steer"?{kind:"steer",expectedTurnId:i.expectedTurnId,turnId:i.expectedTurnId}:{}})})}async openTaskInboxTurn(e,t,n){return this.inboxWrite(i=>{let r=y(i,e);if(r&&r.lease_until>Date.now()&&(r.turn_id!==t||r.owner_id!==n))throw new Error("A turn is already running for this task.");i.run(`INSERT INTO task_inbox_turns (session_id, turn_id, owner_id, generation, accepting, paused, lease_until)
23
23
  VALUES (?, ?, ?, ?, 1, 0, ?) ON CONFLICT(session_id) DO UPDATE SET turn_id = excluded.turn_id,
24
- owner_id = excluded.owner_id, generation = excluded.generation, accepting = 1, paused = 0, lease_until = excluded.lease_until`,[e,t,n,(r?.generation??0)+1,Date.now()+X])})}async renewTaskInboxTurn(e,t,n){return this.inboxWrite(i=>{f(i,e,t,n),i.run("UPDATE task_inbox_turns SET lease_until = ? WHERE session_id = ?",[Date.now()+X,e])})}async pendingTaskInputs(e,t){return await this.ready,await this.writeQueue,v(this.database,e,t)}async taskAssignmentInputs(e){return await this.ready,await this.writeQueue,this.database.all("SELECT sequence, payload FROM task_inputs WHERE turn_id = ? AND kind = 'steer' AND state IN ('included', 'resolved') ORDER BY sequence",[e]).map(S)}async pauseTaskInboxTurn(e,t,n){return this.inboxWrite(i=>{f(i,e,t,n),i.run("UPDATE task_inbox_turns SET accepting = 0, paused = 1 WHERE session_id = ?",[e])})}async includeTaskInputs(e,t,n,i){return this.inboxWrite(r=>{f(r,e,t,n);let o=r.get("SELECT input_ids FROM task_input_requests WHERE request_id = ?",[i]);if(o)return JSON.parse(o.input_ids).map(p=>R(r,p));let a=ie,d=[];for(let p of v(r,e,t)){if(p.body.length>a||d.length>=32)break;a-=p.body.length,d.push(h(r,{...p,state:"included",turnId:t,requestIds:[...p.requestIds,i],updatedAt:new Date().toISOString()}))}return r.run("INSERT INTO task_input_requests (request_id, session_id, turn_id, input_ids, state, created_at) VALUES (?, ?, ?, ?, 'included', ?)",[i,e,t,JSON.stringify(d.map(p=>p.id)),new Date().toISOString()]),d})}async settleTaskInputRequest(e,t){return this.inboxWrite(n=>{let i=n.get("SELECT input_ids FROM task_input_requests WHERE request_id = ?",[e]);if(i){n.run("UPDATE task_input_requests SET state = ? WHERE request_id = ?",[t,e]);for(let r of JSON.parse(i.input_ids)){let o=R(n,r);!o||o.state!=="included"||h(n,{...o,state:t==="resolved"?"resolved":t==="replaced"?"pending":"included",error:t==="failed"?"Provider request failed after input inclusion; receipt is not evidence of a reply.":null,updatedAt:new Date().toISOString()})}}})}async sealTaskInboxTurn(e,t,n){return this.inboxWrite(i=>(f(i,e,t,n),v(i,e,t).length?!1:(i.run("UPDATE task_inbox_turns SET accepting = 0 WHERE session_id = ?",[e]),!0)))}async sealNativeTaskInboxTurn(e,t,n){return this.inboxWrite(i=>(f(i,e,t,n),i.run("UPDATE task_inbox_turns SET accepting = 0 WHERE session_id = ?",[e]),v(i,e,t).map(r=>h(i,{...r,updatedAt:new Date().toISOString(),...r.kind==="steer"?{state:"rejected",error:"The agent finished before this correction could be dispatched. Send it as a follow-up."}:{turnId:null}}))))}async closeTaskInboxTurn(e,t,n,i){return this.inboxWrite(r=>{let o=y(r,e);if(!(!o||o.turn_id!==t||o.owner_id!==n)){r.run("UPDATE task_inbox_turns SET accepting = 0, paused = CASE WHEN ? = 1 THEN 1 ELSE paused END, lease_until = 0 WHERE session_id = ?",[i==="completed"?0:1,e]);for(let a of v(r,e,t))a.kind==="steer"?h(r,{...a,state:"rejected",error:`Turn ${i} before this correction was included. Send it as a follow-up.`,updatedAt:new Date().toISOString()}):a.turnId===t&&h(r,{...a,turnId:null,updatedAt:new Date().toISOString()})}})}async taskInboxPaused(e){return await this.ready,await this.writeQueue,!!y(this.database,e)?.paused}async reserveTaskFollowup(e,t,n){return this.inboxWrite(i=>{let r=y(i,e);if(r?.paused||r&&r.lease_until>Date.now())return null;let o=i.all("SELECT sequence, payload FROM task_inputs WHERE session_id = ? AND state = 'pending' AND turn_id IS NULL AND kind IN ('queued', 'followup') ORDER BY sequence",[e]),a=null;for(let d of o){let p=S(d);if(p.senderKind==="ponder"||p.payload.remoteDevice!==void 0){let c=i.get("SELECT payload FROM sessions WHERE id = ?",[e]);try{if(!c)throw new Error("The original local task no longer exists.");ce(p,E.parse(JSON.parse(c.payload))),pe(p,E.parse(JSON.parse(c.payload)))}catch(_){return h(i,{...p,state:"rejected",error:String(_),updatedAt:new Date().toISOString()})}}a=p;break}return a?(i.run(`INSERT INTO task_inbox_turns (session_id, turn_id, owner_id, generation, accepting, paused, lease_until)
24
+ owner_id = excluded.owner_id, generation = excluded.generation, accepting = 1, paused = 0, lease_until = excluded.lease_until`,[e,t,n,(r?.generation??0)+1,Date.now()+V])})}async renewTaskInboxTurn(e,t,n){return this.inboxWrite(i=>{k(i,e,t,n),i.run("UPDATE task_inbox_turns SET lease_until = ? WHERE session_id = ?",[Date.now()+V,e])})}async pendingTaskInputs(e,t){return await this.ready,await this.writeQueue,v(this.database,e,t)}async taskAssignmentInputs(e){return await this.ready,await this.writeQueue,this.database.all("SELECT sequence, payload FROM task_inputs WHERE turn_id = ? AND kind = 'steer' AND state IN ('included', 'resolved') ORDER BY sequence",[e]).map(S)}async pauseTaskInboxTurn(e,t,n){return this.inboxWrite(i=>{k(i,e,t,n),i.run("UPDATE task_inbox_turns SET accepting = 0, paused = 1 WHERE session_id = ?",[e])})}async includeTaskInputs(e,t,n,i){return this.inboxWrite(r=>{k(r,e,t,n);let o=r.get("SELECT input_ids FROM task_input_requests WHERE request_id = ?",[i]);if(o)return JSON.parse(o.input_ids).map(p=>R(r,p));let a=ne,d=[];for(let p of v(r,e,t)){if(p.body.length>a||d.length>=32)break;a-=p.body.length,d.push(h(r,{...p,state:"included",turnId:t,requestIds:[...p.requestIds,i],updatedAt:new Date().toISOString()}))}return r.run("INSERT INTO task_input_requests (request_id, session_id, turn_id, input_ids, state, created_at) VALUES (?, ?, ?, ?, 'included', ?)",[i,e,t,JSON.stringify(d.map(p=>p.id)),new Date().toISOString()]),d})}async settleTaskInputRequest(e,t){return this.inboxWrite(n=>{let i=n.get("SELECT input_ids FROM task_input_requests WHERE request_id = ?",[e]);if(i){n.run("UPDATE task_input_requests SET state = ? WHERE request_id = ?",[t,e]);for(let r of JSON.parse(i.input_ids)){let o=R(n,r);!o||o.state!=="included"||h(n,{...o,state:t==="resolved"?"resolved":t==="replaced"?"pending":"included",error:t==="failed"?"Provider request failed after input inclusion; receipt is not evidence of a reply.":null,updatedAt:new Date().toISOString()})}}})}async sealTaskInboxTurn(e,t,n){return this.inboxWrite(i=>(k(i,e,t,n),v(i,e,t).length?!1:(i.run("UPDATE task_inbox_turns SET accepting = 0 WHERE session_id = ?",[e]),!0)))}async sealNativeTaskInboxTurn(e,t,n){return this.inboxWrite(i=>(k(i,e,t,n),i.run("UPDATE task_inbox_turns SET accepting = 0 WHERE session_id = ?",[e]),v(i,e,t).map(r=>h(i,{...r,updatedAt:new Date().toISOString(),...r.kind==="steer"?{state:"rejected",error:"The agent finished before this correction could be dispatched. Send it as a follow-up."}:{turnId:null}}))))}async closeTaskInboxTurn(e,t,n,i){return this.inboxWrite(r=>{let o=y(r,e);if(!(!o||o.turn_id!==t||o.owner_id!==n)){r.run("UPDATE task_inbox_turns SET accepting = 0, paused = CASE WHEN ? = 1 THEN 1 ELSE paused END, lease_until = 0 WHERE session_id = ?",[i==="completed"?0:1,e]);for(let a of v(r,e,t))a.kind==="steer"?h(r,{...a,state:"rejected",error:`Turn ${i} before this correction was included. Send it as a follow-up.`,updatedAt:new Date().toISOString()}):a.turnId===t&&h(r,{...a,turnId:null,updatedAt:new Date().toISOString()})}})}async taskInboxPaused(e){return await this.ready,await this.writeQueue,!!y(this.database,e)?.paused}async reserveTaskFollowup(e,t,n){return this.inboxWrite(i=>{let r=y(i,e);if(r?.paused||r&&r.lease_until>Date.now())return null;let o=i.all("SELECT sequence, payload FROM task_inputs WHERE session_id = ? AND state = 'pending' AND turn_id IS NULL AND kind IN ('queued', 'followup') ORDER BY sequence",[e]),a=null;for(let d of o){let p=S(d);if(p.senderKind==="ponder"||p.payload.remoteDevice!==void 0){let c=i.get("SELECT payload FROM sessions WHERE id = ?",[e]);try{if(!c)throw new Error("The original local task no longer exists.");ce(p,E.parse(JSON.parse(c.payload))),pe(p,E.parse(JSON.parse(c.payload)))}catch(l){return h(i,{...p,state:"rejected",error:String(l),updatedAt:new Date().toISOString()})}}a=p;break}return a?(i.run(`INSERT INTO task_inbox_turns (session_id, turn_id, owner_id, generation, accepting, paused, lease_until)
25
25
  VALUES (?, ?, ?, ?, 1, 0, ?) ON CONFLICT(session_id) DO UPDATE SET turn_id = excluded.turn_id,
26
- owner_id = excluded.owner_id, generation = excluded.generation, accepting = 1, paused = 0, lease_until = excluded.lease_until`,[e,t,n,(r?.generation??0)+1,Date.now()+X]),h(i,{...a,turnId:t,updatedAt:new Date().toISOString()})):null})}async taskInboxWakeTargets(){return await this.ready,await this.writeQueue,this.database.all(`SELECT DISTINCT i.session_id FROM task_inputs i LEFT JOIN task_inbox_turns t ON t.session_id = i.session_id
26
+ owner_id = excluded.owner_id, generation = excluded.generation, accepting = 1, paused = 0, lease_until = excluded.lease_until`,[e,t,n,(r?.generation??0)+1,Date.now()+V]),h(i,{...a,turnId:t,updatedAt:new Date().toISOString()})):null})}async taskInboxWakeTargets(){return await this.ready,await this.writeQueue,this.database.all(`SELECT DISTINCT i.session_id FROM task_inputs i LEFT JOIN task_inbox_turns t ON t.session_id = i.session_id
27
27
  WHERE i.state = 'pending' AND i.turn_id IS NULL AND i.kind IN ('queued', 'followup')
28
28
  AND COALESCE(t.paused, 0) = 0 AND COALESCE(t.lease_until, 0) <= ?`,[Date.now()]).map(e=>e.session_id)}async createTaskWait(e){let t=O.parse(e);return this.inboxWrite(n=>{let i=n.get("SELECT payload FROM task_waits WHERE id = ?",[t.id]);if(i)return O.parse(JSON.parse(i.payload));if(t.targetSessionId===t.sessionId)throw new Error("A task cannot wait for itself.");if(t.targetSessionId&&n.get(`WITH RECURSIVE dependencies(session_id) AS (
29
29
  SELECT target_session_id FROM task_waits WHERE session_id = ? AND state = 'waiting'
30
30
  UNION SELECT w.target_session_id FROM task_waits w JOIN dependencies d ON w.session_id = d.session_id WHERE w.state = 'waiting'
31
- ) SELECT session_id FROM dependencies WHERE session_id = ? LIMIT 1`,[t.targetSessionId,t.sessionId]))throw new Error("This dependency would create a task wait cycle. Coordinate a different order.");return n.run("INSERT INTO task_waits (id, session_id, turn_id, target_session_id, target_turn_id, state, deadline, payload) VALUES (?, ?, ?, ?, ?, ?, ?, ?)",[t.id,t.sessionId,t.turnId,t.targetSessionId,t.targetTurnId,t.state,t.deadline,JSON.stringify(t)]),t})}async settleTaskWait(e,t){return this.inboxWrite(n=>{let i=n.get("SELECT payload FROM task_waits WHERE id = ?",[e]);if(!i)throw new Error("Task wait not found.");let r=O.parse(JSON.parse(i.payload));if(r.state!=="waiting")return r;let o={...r,state:t,updatedAt:new Date().toISOString()};return n.run("UPDATE task_waits SET state = ?, payload = ? WHERE id = ?",[t,JSON.stringify(o),e]),o})}async taskWaitsForSession(e){return await this.ready,await this.writeQueue,this.database.all("SELECT payload FROM task_waits WHERE session_id = ? AND state = 'waiting'",[e]).map(t=>O.parse(JSON.parse(t.payload)))}async commitSubagentCompletion(e,t){let n=b.parse(e);return this.inboxWrite(i=>{let r=new Date().toISOString();i.run(`INSERT INTO subagent_runs (id, parent_session_id, parent_turn_id, child_session_id, role_id, status, payload, created_at, updated_at)
31
+ ) SELECT session_id FROM dependencies WHERE session_id = ? LIMIT 1`,[t.targetSessionId,t.sessionId]))throw new Error("This dependency would create a task wait cycle. Coordinate a different order.");return n.run("INSERT INTO task_waits (id, session_id, turn_id, target_session_id, target_turn_id, state, deadline, payload) VALUES (?, ?, ?, ?, ?, ?, ?, ?)",[t.id,t.sessionId,t.turnId,t.targetSessionId,t.targetTurnId,t.state,t.deadline,JSON.stringify(t)]),t})}async settleTaskWait(e,t){return this.inboxWrite(n=>{let i=n.get("SELECT payload FROM task_waits WHERE id = ?",[e]);if(!i)throw new Error("Task wait not found.");let r=O.parse(JSON.parse(i.payload));if(r.state!=="waiting")return r;let o={...r,state:t,updatedAt:new Date().toISOString()};return n.run("UPDATE task_waits SET state = ?, payload = ? WHERE id = ?",[t,JSON.stringify(o),e]),o})}async taskWaitsForSession(e){return await this.ready,await this.writeQueue,this.database.all("SELECT payload FROM task_waits WHERE session_id = ? AND state = 'waiting'",[e]).map(t=>O.parse(JSON.parse(t.payload)))}async commitSubagentCompletion(e,t){let n=M.parse(e);return this.inboxWrite(i=>{let r=new Date().toISOString();i.run(`INSERT INTO subagent_runs (id, parent_session_id, parent_turn_id, child_session_id, role_id, status, payload, created_at, updated_at)
32
32
  VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?) ON CONFLICT(id) DO UPDATE SET status = excluded.status,
33
- payload = excluded.payload, updated_at = excluded.updated_at`,_e(n,r)),i.run("INSERT INTO task_completion_outbox (turn_id, run_id, payload, created_at) VALUES (?, ?, ?, ?) ON CONFLICT(turn_id) DO NOTHING",[t,n.id,JSON.stringify(n),r])})}async pendingTaskCompletions(e=""){return await this.ready,await this.writeQueue,this.database.all("SELECT turn_id, payload FROM task_completion_outbox WHERE input_id IS NULL AND turn_id > ? ORDER BY turn_id LIMIT 100",[e]).map(t=>({turnId:t.turn_id,run:b.parse(JSON.parse(t.payload))}))}async settleTaskCompletion(e,t){return this.inboxWrite(n=>{if(!R(n,t))throw new Error("Completion delivery has no durable input receipt.");n.run("UPDATE task_completion_outbox SET input_id = ? WHERE turn_id = ? AND input_id IS NULL",[t,e])})}};export{Pe as SqliteTaskInboxStore};
33
+ payload = excluded.payload, updated_at = excluded.updated_at`,_e(n,r)),i.run("INSERT INTO task_completion_outbox (turn_id, run_id, payload, created_at) VALUES (?, ?, ?, ?) ON CONFLICT(turn_id) DO NOTHING",[t,n.id,JSON.stringify(n),r])})}async pendingTaskCompletions(e=""){return await this.ready,await this.writeQueue,this.database.all("SELECT turn_id, payload FROM task_completion_outbox WHERE input_id IS NULL AND turn_id > ? ORDER BY turn_id LIMIT 100",[e]).map(t=>({turnId:t.turn_id,run:M.parse(JSON.parse(t.payload))}))}async settleTaskCompletion(e,t){return this.inboxWrite(n=>{if(!R(n,t))throw new Error("Completion delivery has no durable input receipt.");n.run("UPDATE task_completion_outbox SET input_id = ? WHERE turn_id = ? AND input_id IS NULL",[t,e])})}};export{Le as SqliteTaskInboxStore};
@@ -1,5 +1,5 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import"./chunk-QOTVNQDI.js";import"./chunk-OQPJ7FJF.js";import"./chunk-WJ43MJ3F.js";import"./chunk-Q4TBTRIG.js";import"./chunk-T5AACNJI.js";import{$ as m}from"./chunk-QOGJAQDO.js";import"./chunk-EYPCBBMS.js";import"./chunk-DIO5CB6U.js";import"./chunk-7ED24PP6.js";import{a as O}from"./chunk-KCJVFLBB.js";import"./chunk-N4FFQPLR.js";import"./chunk-AY64VY4E.js";import"./chunk-GJ2ZJFDD.js";import"./chunk-3QIB5FXI.js";import"./chunk-6MI4KKWF.js";import"./chunk-DDMZSZFL.js";import"./chunk-W45RKGM6.js";import"./chunk-3VUATFZD.js";import"./chunk-4EPSHPZL.js";import"./chunk-MQULU465.js";import{a as R,b as S,c as k,d as L}from"./chunk-PRGBLQVH.js";import"./chunk-7E6T7GP5.js";import"./chunk-DZUAT3TP.js";import"./chunk-XDQMGUWL.js";import"./chunk-FTEOCCPB.js";import{E as I}from"./chunk-25MBPJVY.js";import"./chunk-WN3V6KDN.js";import"./chunk-523TE4BI.js";import"./chunk-ZCHXGRRU.js";import"./chunk-YBT2NB32.js";import"./chunk-74ZXXBGN.js";import"./chunk-APB2STJK.js";import"./chunk-Z4Z5UOZM.js";import"./chunk-6FA3GG5B.js";import"./chunk-Y4OWBBDD.js";import"./chunk-6ZFPQYHG.js";import"./chunk-JFXWI3EN.js";import"./chunk-FFRFSDBM.js";import"./chunk-VYLGI3IH.js";import"./chunk-ACYFMLWG.js";import"./chunk-TVQAPBLZ.js";import{m as f}from"./chunk-KGNCKIFP.js";import{b as h}from"./chunk-ES2ISFJC.js";import{a as y}from"./chunk-FTQLQJQV.js";var A=h.object({scope:h.string(),key:h.string(),ordinal:h.number().int().nonnegative()}).strict(),g=`
2
+ import"./chunk-2RNQQNB7.js";import"./chunk-OQPJ7FJF.js";import"./chunk-EUMXMT3S.js";import"./chunk-Q4TBTRIG.js";import"./chunk-T5AACNJI.js";import{$ as m}from"./chunk-TKLBP3MM.js";import"./chunk-RBZH6A6M.js";import"./chunk-DIO5CB6U.js";import"./chunk-7ED24PP6.js";import{a as O}from"./chunk-KCJVFLBB.js";import"./chunk-N4FFQPLR.js";import"./chunk-AY64VY4E.js";import"./chunk-GJ2ZJFDD.js";import"./chunk-3QIB5FXI.js";import"./chunk-6MI4KKWF.js";import"./chunk-DDMZSZFL.js";import"./chunk-W45RKGM6.js";import"./chunk-CGWA54LE.js";import"./chunk-KO3HNMLJ.js";import"./chunk-MQULU465.js";import{a as R,b as S,c as k,d as L}from"./chunk-JMBQYBPI.js";import"./chunk-LPWBIGKW.js";import"./chunk-DZUAT3TP.js";import"./chunk-H7ATCPPB.js";import"./chunk-25JDHAZ5.js";import{E as I}from"./chunk-XMKCCLGB.js";import"./chunk-WN3V6KDN.js";import"./chunk-523TE4BI.js";import"./chunk-ZCHXGRRU.js";import"./chunk-YBT2NB32.js";import"./chunk-74ZXXBGN.js";import"./chunk-APB2STJK.js";import"./chunk-Y4OWBBDD.js";import"./chunk-6ZFPQYHG.js";import"./chunk-JFXWI3EN.js";import"./chunk-6FA3GG5B.js";import"./chunk-Z4Z5UOZM.js";import"./chunk-FFRFSDBM.js";import"./chunk-VYLGI3IH.js";import"./chunk-ACYFMLWG.js";import"./chunk-TVQAPBLZ.js";import{m as f}from"./chunk-KGNCKIFP.js";import{b as h}from"./chunk-ES2ISFJC.js";import{a as y}from"./chunk-FTQLQJQV.js";var A=h.object({scope:h.string(),key:h.string(),ordinal:h.number().int().nonnegative()}).strict(),g=`
3
3
  CREATE TABLE IF NOT EXISTS task_inventory_sources (source_key TEXT NOT NULL, profile_id TEXT NOT NULL, source_hash TEXT NOT NULL, metadata TEXT NOT NULL, PRIMARY KEY(profile_id, source_key));
4
4
  CREATE TABLE IF NOT EXISTS task_inventory_rows (profile_id TEXT NOT NULL, source_key TEXT NOT NULL, source_hash TEXT NOT NULL, task_id TEXT NOT NULL, ordinal INTEGER NOT NULL, title TEXT NOT NULL, description TEXT NOT NULL, split TEXT NOT NULL, payload TEXT NOT NULL, PRIMARY KEY(profile_id, source_key, source_hash, ordinal));
5
5
  CREATE UNIQUE INDEX IF NOT EXISTS task_inventory_task_identity ON task_inventory_rows(profile_id, source_key, source_hash, task_id);
@@ -1,5 +1,5 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import"./chunk-W45RKGM6.js";import{a as we}from"./chunk-EIEZHFIW.js";import{e as Te,f as ge}from"./chunk-SDXFLO7J.js";import"./chunk-GLDYJM7O.js";import{h as x,j as L}from"./chunk-HCYX6RHP.js";import{d as F,f as me,g as ke,i as N,j as D,k as ue}from"./chunk-O72BSKSO.js";import{a as H,b as g,c as $}from"./chunk-DBK66CJP.js";import"./chunk-QOTVNQDI.js";import"./chunk-OQPJ7FJF.js";import"./chunk-WJ43MJ3F.js";import"./chunk-Q4TBTRIG.js";import"./chunk-T5AACNJI.js";import"./chunk-QOGJAQDO.js";import"./chunk-EYPCBBMS.js";import"./chunk-DIO5CB6U.js";import"./chunk-7ED24PP6.js";import{a as he}from"./chunk-KCJVFLBB.js";import"./chunk-N4FFQPLR.js";import"./chunk-AY64VY4E.js";import"./chunk-GJ2ZJFDD.js";import"./chunk-3QIB5FXI.js";import"./chunk-6MI4KKWF.js";import"./chunk-DDMZSZFL.js";import"./chunk-W45RKGM6.js";import"./chunk-3VUATFZD.js";import"./chunk-4EPSHPZL.js";import"./chunk-MQULU465.js";import"./chunk-PRGBLQVH.js";import"./chunk-7E6T7GP5.js";import"./chunk-DZUAT3TP.js";import{d as de,e as ce,f as q,n as fe,p as le,q as pe}from"./chunk-XDQMGUWL.js";import{C as ne,k as y,l as se,m as re,o as ie,p as oe}from"./chunk-FTEOCCPB.js";import{Ib as A,U as ae,b as Y,c as X,ca as O,e as B,i as Z,ua as T,xa as _}from"./chunk-25MBPJVY.js";import"./chunk-WN3V6KDN.js";import{n as ee,x as S,y as te}from"./chunk-523TE4BI.js";import"./chunk-ZCHXGRRU.js";import"./chunk-YBT2NB32.js";import"./chunk-74ZXXBGN.js";import"./chunk-APB2STJK.js";import{e as J,f as K}from"./chunk-I7AQMAQI.js";import"./chunk-Z4Z5UOZM.js";import"./chunk-6FA3GG5B.js";import"./chunk-Y4OWBBDD.js";import"./chunk-6ZFPQYHG.js";import"./chunk-JFXWI3EN.js";import"./chunk-FFRFSDBM.js";import{N as j,O as M}from"./chunk-VYLGI3IH.js";import"./chunk-ACYFMLWG.js";import"./chunk-TVQAPBLZ.js";import{m}from"./chunk-KGNCKIFP.js";import{b as u}from"./chunk-ES2ISFJC.js";import"./chunk-H7IWJN7L.js";import{a as h}from"./chunk-FTQLQJQV.js";import{randomUUID as Ze}from"node:crypto";import{cp as et,mkdir as tt,readdir as at,rename as Q,rm as Ae,stat as st}from"node:fs/promises";import I from"node:path";function Ee(o,t,e,a){let s=t.modelScope;if(!s)return;let i=o.get("SELECT payload FROM model_projects WHERE id = ? AND profile_id = ?",[s.modelId,t.profileId]);if(!i)throw new Error("Taskset draft Model was not found in this Profile.");let r=S.parse(JSON.parse(i.payload)),n={id:e.id,revision:e.revision,contentHash:e.contentHash};return Te(o,{schemaVersion:"openpond.modelProjectSave.v1",operationId:`draft-publication:${m({draftId:t.id,revision:t.revision,scope:s,tasksetRef:n})}`,expectedRevision:s.expectedModelRevision,project:te.strip().parse({...r,trainingSetup:{...r.trainingSetup,tasksetRef:n,rewardBindingRef:e.metadata.rewardBinding===void 0?null:ee.parse(e.metadata.rewardBinding),tasksetRelease:null,recipe:null,...r.trainingSetup.evaluationTasksetRef&&r.trainingSetup.tasksetRef&&M(r.trainingSetup.evaluationTasksetRef,r.trainingSetup.tasksetRef)?{evaluationTasksetRef:n}:{}}})},null,a?.modelResources?{...a.modelResources,taskset:a.taskset,executionResources:{environment:a.environment,verifierSet:a.verifierSet}}:a??void 0)}h(Ee,"selectTasksetDraftModel");import{createHash as We,randomUUID as je}from"node:crypto";import{lstat as ve,mkdir as ye,readdir as Je,readFile as Be,rename as $e,rm as qe,writeFile as Ue}from"node:fs/promises";import R from"node:path";var b=le.extend({workspaceHash:u.string().regex(/^[a-f0-9]{64}$/).nullable()}).strict();async function Pe(o){let{db:t,profileId:e}=o,a=X.parse(o.request),s=h(()=>{let w=t.get("SELECT payload FROM model_projects WHERE id = ? AND profile_id = ?",[a.modelId,e]);if(!w)throw new Error("Taskset draft Model was not found in this Profile.");return S.parse(JSON.parse(w.payload))},"requireModel"),i=s(),r=m(a),n=t.get("SELECT request_hash, state, payload FROM model_taskset_draft_operations WHERE profile_id = ? AND operation_id = ?",[e,a.operationId]);if(n){if(n.request_hash!==r)throw new Error("Taskset draft operation was reused with different input.");if(n.state==="deleted")throw new Error("This Taskset draft was deleted.");return b.parse(JSON.parse(n.payload))}if(!o.source)return null;if(i.revision!==a.expectedModelRevision)throw new Error("Model changed before draft initialization. Refresh before editing.");let f=i.trainingSetup.tasksetRef,p=f?t.get("SELECT payload FROM taskset_revisions WHERE taskset_id = ? AND revision = ? AND profile_id = ?",[f.id,f.revision,e]):null,d=p?T.parse(JSON.parse(p.payload)):null;if(!d||!f||d.contentHash!==f.contentHash)throw new Error("The selected source Taskset is unavailable.");let l=o.source,c=i.hosted?.apiOrigin?i.hosted.tasksets.find(w=>w.localTasksetId===d.id&&w.localTasksetHash===d.contentHash&&w.packageHash===l.contentHash&&w.releaseId===l.taskset.id&&w.releaseRevision===l.taskset.revision&&w.releaseHash===l.taskset.contentHash):null,k=typeof d.metadata.importedPackageHash=="string"?d.metadata.importedPackageHash:c?.packageHash;if(k?k!==l.contentHash:!M(j(A({taskset:d,adapterId:F(d)}).tasksetRelease),j(l.taskset)))throw new Error("Taskset draft package differs from its selected source.");let v=l.modelResources?ae.safeParse(l.taskset.metadata.modelTasksetDerivation):Y.safeParse(l.taskset.metadata.modelTasksetAuthoring),xe=c&&v.success&&v.data.owner.modelId===i.id?v.data.owner:{scopeId:e,modelId:i.id},Le=de({request:a,owner:xe,source:l}),Ce=pe({sourceDraft:ne(d),source:l,preparation:Le,expectedModelRevision:a.expectedModelRevision});await N(o.home,l);let G=b.parse({...Ce,workspaceHash:null}),ze=G.draft;t.exec("BEGIN IMMEDIATE");try{let w=t.get("SELECT request_hash FROM model_taskset_draft_operations WHERE profile_id = ? AND operation_id = ?",[e,a.operationId]);if(w&&w.request_hash!==r)throw new Error("Taskset draft operation was reused with different input.");if(!w&&s().revision!==a.expectedModelRevision)throw new Error("Model changed during draft initialization. Refresh before editing.");t.run("INSERT INTO model_taskset_draft_operations (profile_id, operation_id, request_hash, draft_id, state, payload) VALUES (?, ?, ?, ?, 'prepared', ?) ON CONFLICT(profile_id, operation_id) DO NOTHING",[e,a.operationId,r,ze.id,JSON.stringify(G)]),t.exec("COMMIT")}catch(w){throw t.exec("ROLLBACK"),w}let W=t.get("SELECT request_hash, payload FROM model_taskset_draft_operations WHERE profile_id = ? AND operation_id = ?",[e,a.operationId]);if(!W||W.request_hash!==r)throw new Error("Taskset draft operation was reused with different input.");return b.parse(JSON.parse(W.payload))}h(Pe,"prepareDraftInitialization");async function Se(o){let{initialized:t,workspacePath:e}=o;if(o.completed())return;if(t.workspaceHash)try{if(await ve(e),o.completed())return;if(await U(e),await g(e)!==t.workspaceHash)throw new Error("Prepared Taskset draft files changed before initialization completed.");return}catch(s){if(s.code!=="ENOENT")throw s}let a=`${e}.initializing-${je()}`;await ye(R.dirname(e),{recursive:!0});try{let s=t.draft.modelScope?.source;if(!s)throw new Error("Taskset draft lost its source preparation.");let i=await D(o.home,s.sourcePackageHash),r=new Map;for(let f of t.filePaths){let p=i.files.find(d=>d.asset.id===f.assetId);if(!p)throw new Error("Taskset draft source asset is missing.");for(let d of f.paths){if(d.includes("\\")||R.posix.isAbsolute(d)||d.split("/").some(k=>!k||k==="."||k===".."||k.startsWith(".env")))throw new Error("Taskset draft source path is invalid.");let l=r.get(d);if(l&&l!==p.asset.contentHash)throw new Error("Taskset draft source paths conflict.");if(l)continue;let c=R.join(a,d);await ye(R.dirname(c),{recursive:!0}),await Ue(c,O(p),{flag:"wx"}),r.set(d,p.asset.contentHash)}}await H(t.draft,a);for(let[f,p]of r)if(We("sha256").update(await Be(R.join(a,f))).digest("hex")!==p)throw new Error(`Taskset draft source asset conflicts with authoring file ${f}.`);let n=await g(a);if(o.retainHash({...t,workspaceHash:n}),o.completed())return;try{await $e(a,e)}catch(f){if(!["EEXIST","ENOTEMPTY"].includes(f.code??""))throw f;if(o.completed())return;if(await U(e),await g(e)!==n)throw new Error("Prepared Taskset draft files changed before initialization completed.")}}finally{await qe(a,{recursive:!0,force:!0})}}h(Se,"materializeDraftInitialization");async function U(o){let t=await ve(o);if(!t.isDirectory()||t.isSymbolicLink())throw new Error("Taskset draft source must be a regular directory.");for(let e of await Je(o,{withFileTypes:!0})){if(e.name.startsWith(".env")||e.isSymbolicLink())throw new Error("Taskset draft source contains a prohibited file.");if(e.isDirectory())await U(R.join(o,e.name));else if(!e.isFile())throw new Error("Taskset draft source must contain regular files.")}}h(U,"assertRegularTree");import Ve from"node:path";async function De(o){let t=A({taskset:o.taskset,adapterId:F(o.taskset)}),e=await me({root:o.directory,content:{schemaVersion:"openpond.tasksetPackage.v1",taskset:t.tasksetRelease,environment:t.environmentRelease,verifierSet:t.verifierSetRelease},sources:q.parse(o.taskset.metadata.portableFileInventory??[])}),a=o.preparation.authoringGraph==="bound"?await D(o.home,o.preparation.sourcePackageHash):void 0,s=ce({preparation:o.preparation,edited:e,source:a});if(s.modelResources){let c=fe({package:s,profileId:o.taskset.profileId,name:o.taskset.name,createdAt:o.taskset.createdAt}),k=T.parse({...c.taskset,authoringProvenance:o.taskset.authoringProvenance,metadata:{...c.taskset.metadata,sourcePackageHash:o.taskset.metadata.sourcePackageHash}}),v=T.parse({...k,contentHash:_(k)});return await ue({home:o.home,...c,taskset:v}),{taskset:v,directory:Ve.join(o.home,"training","tasksets",String(v.environment.metadata.runtimeSourceTasksetId))}}let i=q.parse(o.taskset.metadata.portableFileInventory??[]),r=s.files.map(c=>({asset:c.asset,sourcePath:i.find(k=>k.asset.id===c.asset.id)?.sourcePath??c.asset.path})),n=s.taskset.environment.entrypoint==="openpond.javascript-environment.v1"?s.files.find(c=>c.asset.path==="environment/execution.json"):void 0,f=`model-draft-${m({packageHash:s.contentHash,taskset:o.taskset})}`,p=T.parse({...o.taskset,id:s.taskset.id,revision:s.taskset.revision,metadata:{...o.taskset.metadata,portableFileInventory:r,importedPackageHash:s.contentHash,derivedPortableMetadata:s.taskset.metadata},environment:{...o.taskset.environment,metadata:{...o.taskset.environment.metadata,runtimeSourceTasksetId:f,portableExecutionResources:{environment:s.environment,verifierSet:s.verifierSet}}}}),d=T.parse({...p,contentHash:_(p)}),l=await x(o.home,{taskset:d,generatedFiles:n?[{path:n.asset.path,role:"environment",content:new TextDecoder("utf-8",{fatal:!0}).decode(O(n))}]:[]},f,{source:{directory:o.directory,packageHash:await g(o.directory)},verify:h(c=>L(c,d),"verify")});return await N(o.home,s),{directory:l,taskset:d}}h(De,"materializeModelTasksetDraftPublication");import{constants as V}from"node:fs";import{createHash as Qe}from"node:crypto";import{lstat as be,mkdir as Ge,open as Ke,readdir as Ye,rm as Re}from"node:fs/promises";import C from"node:path";var P=h((o,t)=>K(C.join(o,"state","taskset-draft-writes"),t),"withTasksetDraftLock"),_e=re,Xe=h(o=>Qe("sha256").update(o).digest("hex"),"digest");async function z(o,t,e=!1){B.parse(t);let a=o;for(let s of["",...t.split("/").slice(0,-1)]){s&&(a=C.join(a,s)),e&&await Ge(a,{recursive:!1}).catch(r=>{if(r.code!=="EEXIST")throw r});let i=await be(a);if(!i.isDirectory()||i.isSymbolicLink())throw new Error("Taskset draft paths must use regular directories.")}return C.join(o,t)}h(z,"regularPath");async function He(o,t){let e=await z(o,t),a=await Ke(e,V.O_RDONLY|V.O_NOFOLLOW|V.O_NONBLOCK);try{let s=await a.stat();if(!s.isFile()||s.size>se)throw new Error("Taskset draft file must be a regular file within the 6 MB editing limit.");let i=Buffer.alloc(s.size),r=0;for(;r<i.length;){let n=await a.read(i,r,i.length-r,r);if(!n.bytesRead)throw new Error("Taskset draft file changed during reading.");r+=n.bytesRead}if((await a.read(Buffer.alloc(1),0,1,r)).bytesRead)throw new Error("Taskset draft file changed during reading.");return i}finally{await a.close()}}h(He,"readBytes");async function Ie(o,t){let e=await He(o,t);return ie(t,e)}h(Ie,"readTasksetDraftFile");async function Me(o){let t=[];async function e(a=""){for(let s of await Ye(C.join(o,a),{withFileTypes:!0})){let i=a?`${a}/${s.name}`:s.name;if(B.parse(i),s.isSymbolicLink())throw new Error("Taskset draft files cannot contain symbolic links.");if(s.isDirectory()){await e(i);continue}if(!s.isFile())throw new Error("Taskset draft files must be regular files.");if(t.length>=1e4)throw new Error("Taskset draft file inventory exceeds its limit.");let r=await be(await z(o,i));if(!r.isFile()||r.isSymbolicLink())throw new Error("Taskset draft files must be regular files.");t.push({path:i,sizeBytes:r.size,writable:_e(i)})}}return h(e,"visit"),await z(o,"taskset.json"),await e(),t.sort((a,s)=>a.path.localeCompare(s.path))}h(Me,"listTasksetDraftFiles");async function Oe(o,t,e){if(!_e(t.path))throw new Error("This file is managed by the Taskset forms or retained source history.");let a=null;try{a=await He(o,t.path)}catch(r){if(r.code!=="ENOENT")throw r}if((a?Xe(a):null)!==t.expectedFileHash)throw new Error("Taskset draft file changed. Reload it before saving.");if(!a&&t.content===null)throw new Error("Taskset draft file does not exist.");let s=t.content?oe(t.content):null,i=await z(o,t.path,!0);s?await J(i,s):await Re(i);try{return await e()}catch(r){throw a?await J(i,a):await Re(i,{force:!0}),r}}h(Oe,"mutateTasksetDraftFile");var E=u.object({schemaVersion:u.literal("openpond.tasksetDraftPointer.v1"),id:u.string().trim().min(1),profileId:u.string().trim().min(1),modelScope:y.shape.modelScope,status:u.enum(["draft","validating","needs_review","published"]),revision:u.number().int().positive(),workspacePath:u.string().trim().min(1),packageHash:u.string().regex(/^[a-f0-9]{64}$/),publishedTasksetRef:u.object({id:u.string().trim().min(1),revision:u.number().int().positive(),contentHash:u.string().trim().min(8)}).nullable(),createdAt:u.string().trim().min(1),updatedAt:u.string().trim().min(1)}),Fe=class extends he{static{h(this,"SqliteTasksetDraftStore")}async initializeModelTasksetDraft(t,e,a){await this.ready;let s=this.writeQueue.then(()=>P(this.home,async()=>{let i=this.database,r=await Pe({db:i,home:this.home,profileId:t,request:e,source:a});if(!r)return null;let n=h(()=>{let d=i.get("SELECT state FROM model_taskset_draft_operations WHERE profile_id = ? AND operation_id = ?",[t,e.operationId]);if(d?.state==="deleted")throw new Error("This Taskset draft was deleted.");let l=i.get("SELECT payload FROM taskset_drafts WHERE id = ?",[r.draft.id]);if(!l){if(d?.state==="ready")throw new Error("The initialized Taskset draft is unavailable.");return!1}let c=E.parse(JSON.parse(l.payload));if(c.profileId!==t||c.modelScope?.source?.requestHash!==r.draft.modelScope?.source?.requestHash)throw new Error("Taskset draft identity conflicts with its initialization.");return!0},"completed"),f=this.workspacePath(r.draft.id);await Se({home:this.home,initialized:r,workspacePath:f,completed:n,retainHash:h(d=>{let l=i.get("SELECT payload FROM model_taskset_draft_operations WHERE profile_id = ? AND operation_id = ?",[t,e.operationId]),c=b.parse(JSON.parse(l.payload));if(c.workspaceHash&&c.workspaceHash!==d.workspaceHash)throw new Error("Taskset draft initialization produced different files on retry.");i.run("UPDATE model_taskset_draft_operations SET payload = ? WHERE profile_id = ? AND operation_id = ? AND state = 'prepared'",[JSON.stringify(d),t,e.operationId])},"retainHash")}),i.exec("BEGIN IMMEDIATE");try{if(!n()){let d=i.get("SELECT payload FROM model_taskset_draft_operations WHERE profile_id = ? AND operation_id = ?",[t,e.operationId]),l=b.parse(JSON.parse(d.payload)),c=l.draft,k=E.parse({schemaVersion:"openpond.tasksetDraftPointer.v1",id:c.id,profileId:t,modelScope:c.modelScope,status:c.status,revision:c.revision,workspacePath:f,packageHash:l.workspaceHash,publishedTasksetRef:c.publishedTasksetRef,createdAt:c.createdAt,updatedAt:c.updatedAt});i.run("INSERT INTO taskset_drafts (id, profile_id, status, revision, payload, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?, ?)",[c.id,t,c.status,c.revision,JSON.stringify(k),c.createdAt,c.updatedAt]),i.run("UPDATE model_taskset_draft_operations SET state = 'ready' WHERE profile_id = ? AND operation_id = ?",[t,e.operationId])}i.exec("COMMIT")}catch(d){throw i.exec("ROLLBACK"),d}let p=i.get("SELECT payload FROM taskset_drafts WHERE id = ?",[r.draft.id]);return this.draftFromStoredPayload(JSON.parse(p.payload))}));return this.writeQueue=s.then(()=>{},()=>{}),s}async saveTasksetDraft(t,e,a={}){let s=y.parse(t);await this.ready;let i=this.writeQueue.then(()=>P(this.home,async()=>{let r=this.database.get("SELECT payload FROM taskset_drafts WHERE id = ?",[s.id]),n=r?E.safeParse(JSON.parse(r.payload)):null;if(n?.success){if(n.data.profileId!==s.profileId)throw new Error("Taskset draft profile cannot change.");if(m(n.data.modelScope?{...n.data.modelScope,expectedModelRevision:0}:null)!==m(s.modelScope?{...s.modelScope,expectedModelRevision:0}:null)||!a.refreshModelRevision&&m(n.data.modelScope)!==m(s.modelScope))throw new Error("Taskset draft Model ownership cannot change.");if(n.data.status==="published")throw new Error("Published Taskset drafts are immutable. Initialize a new draft to revise the Taskset.");if(s.revision<n.data.revision||e!==void 0&&n.data.revision!==e)throw new Error("Taskset draft changed before saving. Refresh before saving.")}else if(e!==void 0)throw new Error("Taskset draft is unavailable for saving.");if((!n?.success||a.refreshModelRevision)&&s.modelScope){let c=this.database.get("SELECT payload FROM model_projects WHERE id = ? AND profile_id = ?",[s.modelScope.modelId,s.profileId]);if(!c)throw new Error("Taskset draft Model was not found in this Profile.");if(S.parse(JSON.parse(c.payload)).revision!==s.modelScope.expectedModelRevision)throw new Error("Taskset draft Model changed. Refresh before editing.")}let f=this.workspacePath(s.id),d=(await H(s,f)).draft,l=E.parse({schemaVersion:"openpond.tasksetDraftPointer.v1",id:d.id,profileId:d.profileId,modelScope:d.modelScope,status:d.status,revision:d.revision,workspacePath:f,packageHash:await g(f),publishedTasksetRef:d.publishedTasksetRef,createdAt:d.createdAt,updatedAt:d.updatedAt});return await this.savePointer(l,!0),d}));return this.writeQueue=i.then(()=>{},()=>{}),i}async importTasksetDraftPackage(t){let e=I.resolve(t.packagePath),s=(await st(e)).isDirectory()?e:I.dirname(e);await Ne(s);let i=await g(s),r=await $(s),n=await this.getTasksetDraft(r.id);if(n){let c=n.metadata.importedTasksetPackage;if(c&&typeof c=="object"&&!Array.isArray(c)&&c.packageHash===i&&n.profileId===t.profileId)return n;throw new Error(`Taskset draft ${r.id} already exists. Import a package with a distinct Taskset id.`)}let f=y.parse({...r,profileId:t.profileId,modelScope:null,status:"draft",revision:1,publishedTasksetRef:null,metadata:{...r.metadata,importedTasksetPackage:{packageHash:i,importedAt:new Date().toISOString()}},updatedAt:new Date().toISOString()}),p=this.workspacePath(f.id),d=`${p}.import-${process.pid}-${Date.now()}`;await tt(I.dirname(p),{recursive:!0});try{await et(s,d,{recursive:!0,errorOnExist:!0,force:!1,preserveTimestamps:!0}),await H(f,d),await Q(d,p)}catch(c){throw await Ae(d,{recursive:!0,force:!0}),c}let l=E.parse({schemaVersion:"openpond.tasksetDraftPointer.v1",id:f.id,profileId:f.profileId,status:f.status,revision:f.revision,workspacePath:p,packageHash:await g(p),publishedTasksetRef:f.publishedTasksetRef,createdAt:f.createdAt,updatedAt:f.updatedAt});return await this.savePointer(l),this.draftFromStoredPayload(l)}async materializePublishedTasksetPackage(t){let e=await this.getTasksetDraftWorkspace(t.draftId);if(!e)throw new Error(`Taskset draft ${t.draftId} workspace was not found.`);if(t.taskset.metadata.sourcePackageHash!==void 0&&t.taskset.metadata.sourcePackageHash!==e.packageHash)throw new Error("Taskset draft files changed before publication. Refresh before publishing.");let a=`draft-${m({taskset:t.taskset,packageHash:e.packageHash})}`,s=await ke(t.taskset,e.workspacePath),i=T.parse({...s.taskset,metadata:{...s.taskset.metadata,sourcePackageHash:e.packageHash},environment:{...s.taskset.environment,metadata:{...s.taskset.environment.metadata,runtimeSourceTasksetId:a}}}),r=T.parse({...i,contentHash:_(i)}),n=await x(this.home,{taskset:r,generatedFiles:s.generatedFiles},a,{source:{directory:e.workspacePath,packageHash:e.packageHash},verify:h(p=>L(p,r),"verify")}),f=await this.getTasksetDraft(t.draftId);return f?.modelScope?.source?De({home:this.home,directory:n,taskset:r,preparation:f.modelScope.source}):{directory:n,taskset:r}}async finalizeTasksetDraftPublication(t){await this.ready;let e=y.parse(t.draft),a=T.parse(t.taskset),s=e.modelScope?.source?.authoringGraph==="bound"&&typeof a.metadata.importedPackageHash=="string"?await D(this.home,a.metadata.importedPackageHash):null,i=this.writeQueue.then(()=>P(this.home,async()=>{let r=this.database.get("SELECT payload FROM taskset_drafts WHERE id = ?",[e.id]);if(!r)throw new Error("Taskset draft was deleted before publication.");let n=E.parse(JSON.parse(r.payload));if(n.profileId!==e.profileId||a.profileId!==e.profileId)throw new Error("Taskset publication belongs to another Profile.");if(m(n.modelScope)!==m(e.modelScope))throw new Error("Taskset draft Model ownership cannot change.");if(n.status==="published"&&n.publishedTasksetRef){let c=n.publishedTasksetRef,k=this.database.get("SELECT payload FROM taskset_revisions WHERE taskset_id = ? AND revision = ? AND content_hash = ?",[c.id,c.revision,c.contentHash]);if(!k)throw new Error("Published draft lost its immutable Taskset revision.");return{draft:y.parse({...e,status:n.status,revision:n.revision,publishedTasksetRef:c,updatedAt:n.updatedAt}),taskset:T.parse(JSON.parse(k.payload))}}if(n.revision!==e.revision||a.metadata.sourcePackageHash!==t.packageHash)throw new Error("Taskset draft changed before publication. Refresh before publishing.");let f=n.modelScope?.source,p=f?.authoringGraph==="bound"&&a.metadata.modelTasksetDerivation&&typeof a.metadata.modelTasksetDerivation=="object"?{...a.metadata.modelTasksetDerivation,schemaVersion:f.lineage.schemaVersion}:a.metadata.modelTasksetAuthoring;if(f&&(a.id!==f.tasksetId||a.revision!==f.tasksetRevision||m(p)!==m(f.lineage)))throw new Error("Taskset publication differs from its retained source preparation.");let d=y.parse({...e,status:"published",revision:e.revision+1,publishedTasksetRef:{id:a.id,revision:a.revision,contentHash:a.contentHash},updatedAt:new Date().toISOString()}),l=E.parse({...n,status:d.status,revision:d.revision,publishedTasksetRef:d.publishedTasksetRef,updatedAt:d.updatedAt});return we(this.database,a,()=>{if(s&&ge(this.database,{package:s,taskset:a,generatedFiles:[]}),Ee(this.database,e,a,s),this.database.get("SELECT revision FROM taskset_drafts WHERE id = ?",[e.id])?.revision!==e.revision)throw new Error("Taskset draft changed during publication.");this.database.run("UPDATE taskset_drafts SET status = ?, revision = ?, payload = ?, updated_at = ? WHERE id = ?",[l.status,l.revision,JSON.stringify(l),l.updatedAt,e.id])}),{draft:d,taskset:a}}));return this.writeQueue=i.then(()=>{},()=>{}),i}async getTasksetDraft(t){let e=await this.getParsedPayload("SELECT payload FROM taskset_drafts WHERE id = ?",[t],a=>a);return e===null?null:this.draftFromStoredPayload(e)}async listTasksetDrafts(t){await this.ready,await this.writeQueue;let e=await this.all(t?"SELECT payload FROM taskset_drafts WHERE profile_id = ? ORDER BY updated_at DESC":"SELECT payload FROM taskset_drafts ORDER BY updated_at DESC",t?[t]:[]);return Promise.all(e.map(a=>this.draftFromStoredPayload(JSON.parse(a.payload))))}async readHumanPublishedTasksetDraft(t,e){let a=(await this.listTasksetDrafts(t)).filter(r=>r.status==="published"&&r.modelScope===null&&m(r.publishedTasksetRef)===m(e));if(a.length!==1)return null;let s=a[0],i=await this.getTasksetDraftWorkspace(s.id);return i?{draft:s,workspace:i}:null}async getTasksetDraftWorkspace(t){let e=await this.getParsedPayload("SELECT payload FROM taskset_drafts WHERE id = ?",[t],s=>s);if(e===null)return null;let a=await this.pointerFromStoredPayload(e);return{draftId:a.id,workspacePath:a.workspacePath,packageHash:await g(a.workspacePath)}}async deleteTasksetDraft(t){await this.ready;let e=this.writeQueue.then(()=>P(this.home,async()=>{let a=this.workspacePath(t),s=`${a}.delete-${Ze()}`,i=!1;try{await Q(a,s),i=!0}catch(r){if(r.code!=="ENOENT")throw r}try{this.database.exec("BEGIN IMMEDIATE");try{this.database.run("DELETE FROM taskset_drafts WHERE id = ?",[t]),this.database.run("UPDATE model_taskset_draft_operations SET state = 'deleted' WHERE draft_id = ?",[t]),this.database.exec("COMMIT")}catch(r){throw this.database.exec("ROLLBACK"),r}}catch(r){throw i&&await Q(s,a).catch(()=>{}),r}i&&await Ae(s,{recursive:!0,force:!0})}));this.writeQueue=e.catch(()=>{}),await e}async tasksetDraftFiles(t,e,a){return await this.ready,P(this.home,async()=>{let s=this.database.get("SELECT payload FROM taskset_drafts WHERE id = ? AND profile_id = ?",[e,t]);if(!s)throw new Error("Taskset draft was not found in this Profile.");let i=E.parse(JSON.parse(s.payload));if(a!==void 0){let n=await Ie(i.workspacePath,a);return{draftRevision:i.revision,file:{...n,writable:n.writable&&i.status!=="published"}}}let r=await Me(i.workspacePath);return{draftRevision:i.revision,files:r.map(n=>({...n,writable:n.writable&&i.status!=="published"}))}})}async saveTasksetDraftFile(t,e){let a=Z.parse(e);await this.ready;let s=this.writeQueue.then(()=>P(this.home,async()=>{let i=this.database.get("SELECT payload FROM taskset_drafts WHERE id = ? AND profile_id = ?",[a.draftId,t]);if(!i)throw new Error("Taskset draft was not found in this Profile.");let r=E.parse(JSON.parse(i.payload));if(r.status==="published")throw new Error("Published Taskset drafts are immutable.");if(r.revision!==a.expectedDraftRevision)throw new Error("Taskset draft changed. Reload before saving a file.");return Oe(r.workspacePath,a,async()=>{let n=E.parse({...r,revision:r.revision+1,packageHash:await g(r.workspacePath),updatedAt:new Date().toISOString()}),f=await this.draftFromStoredPayload(n);this.database.exec("BEGIN IMMEDIATE");try{if(this.database.get("SELECT revision FROM taskset_drafts WHERE id = ? AND profile_id = ?",[a.draftId,t])?.revision!==r.revision)throw new Error("Taskset draft changed during file saving.");this.database.run("UPDATE taskset_drafts SET revision = ?, payload = ?, updated_at = ? WHERE id = ?",[n.revision,JSON.stringify(n),n.updatedAt,n.id]),this.database.exec("COMMIT")}catch(p){throw this.database.exec("ROLLBACK"),p}return f})}));return this.writeQueue=s.then(()=>{},()=>{}),s}workspacePath(t){let e=m(t).slice(0,24);return I.join(this.home,"workspaces","tasksets",`taskset-${e}`)}async draftFromStoredPayload(t){let e=await this.pointerFromStoredPayload(t),a=await $(e.workspacePath);return y.parse({...a,id:e.id,profileId:e.profileId,modelScope:e.modelScope,status:e.status,revision:e.revision,publishedTasksetRef:e.publishedTasksetRef,createdAt:e.createdAt,updatedAt:e.updatedAt})}async pointerFromStoredPayload(t){let e=E.safeParse(t);if(e.success)return e.data;let a=y.parse(t);await this.saveTasksetDraft(a);let s=await this.getParsedPayload("SELECT payload FROM taskset_drafts WHERE id = ?",[a.id],E.parse);if(!s)throw new Error(`Taskset draft ${a.id} migration failed.`);return s}async savePointer(t,e=!1){await(e?this.run.bind(this):this.upsertPayload.bind(this))(`INSERT INTO taskset_drafts (id, profile_id, status, revision, payload, created_at, updated_at)
2
+ import"./chunk-W45RKGM6.js";import{a as we}from"./chunk-WC42WOLG.js";import{e as Te,f as ge}from"./chunk-22VMH6JV.js";import"./chunk-GLDYJM7O.js";import{h as x,j as L}from"./chunk-776WNDV2.js";import{d as F,f as me,g as ke,i as N,j as D,k as ue}from"./chunk-2L5XWJJ5.js";import{a as H,b as g,c as $}from"./chunk-JQKSXCAJ.js";import"./chunk-2RNQQNB7.js";import"./chunk-OQPJ7FJF.js";import"./chunk-EUMXMT3S.js";import"./chunk-Q4TBTRIG.js";import"./chunk-T5AACNJI.js";import"./chunk-TKLBP3MM.js";import"./chunk-RBZH6A6M.js";import"./chunk-DIO5CB6U.js";import"./chunk-7ED24PP6.js";import{a as he}from"./chunk-KCJVFLBB.js";import"./chunk-N4FFQPLR.js";import"./chunk-AY64VY4E.js";import"./chunk-GJ2ZJFDD.js";import"./chunk-3QIB5FXI.js";import"./chunk-6MI4KKWF.js";import"./chunk-DDMZSZFL.js";import"./chunk-W45RKGM6.js";import"./chunk-CGWA54LE.js";import"./chunk-KO3HNMLJ.js";import"./chunk-MQULU465.js";import"./chunk-JMBQYBPI.js";import"./chunk-LPWBIGKW.js";import"./chunk-DZUAT3TP.js";import{d as de,e as ce,f as q,n as fe,p as le,q as pe}from"./chunk-H7ATCPPB.js";import{C as ne,k as y,l as se,m as re,o as ie,p as oe}from"./chunk-25JDHAZ5.js";import{Ib as A,U as ae,b as Y,c as X,ca as O,e as B,i as Z,ua as T,xa as _}from"./chunk-XMKCCLGB.js";import"./chunk-WN3V6KDN.js";import{n as ee,x as S,y as te}from"./chunk-523TE4BI.js";import"./chunk-ZCHXGRRU.js";import"./chunk-YBT2NB32.js";import"./chunk-74ZXXBGN.js";import"./chunk-APB2STJK.js";import"./chunk-Y4OWBBDD.js";import"./chunk-6ZFPQYHG.js";import"./chunk-JFXWI3EN.js";import"./chunk-6FA3GG5B.js";import{e as j,f as K}from"./chunk-MNC4YUDI.js";import"./chunk-Z4Z5UOZM.js";import"./chunk-FFRFSDBM.js";import"./chunk-H7IWJN7L.js";import{N as J,O as M}from"./chunk-VYLGI3IH.js";import"./chunk-ACYFMLWG.js";import"./chunk-TVQAPBLZ.js";import{m}from"./chunk-KGNCKIFP.js";import{b as u}from"./chunk-ES2ISFJC.js";import{a as h}from"./chunk-FTQLQJQV.js";import{randomUUID as Ze}from"node:crypto";import{cp as et,mkdir as tt,readdir as at,rename as Q,rm as Ae,stat as st}from"node:fs/promises";import I from"node:path";function Ee(o,t,e,a){let s=t.modelScope;if(!s)return;let i=o.get("SELECT payload FROM model_projects WHERE id = ? AND profile_id = ?",[s.modelId,t.profileId]);if(!i)throw new Error("Taskset draft Model was not found in this Profile.");let r=S.parse(JSON.parse(i.payload)),n={id:e.id,revision:e.revision,contentHash:e.contentHash};return Te(o,{schemaVersion:"openpond.modelProjectSave.v1",operationId:`draft-publication:${m({draftId:t.id,revision:t.revision,scope:s,tasksetRef:n})}`,expectedRevision:s.expectedModelRevision,project:te.strip().parse({...r,trainingSetup:{...r.trainingSetup,tasksetRef:n,rewardBindingRef:e.metadata.rewardBinding===void 0?null:ee.parse(e.metadata.rewardBinding),tasksetRelease:null,recipe:null,...r.trainingSetup.evaluationTasksetRef&&r.trainingSetup.tasksetRef&&M(r.trainingSetup.evaluationTasksetRef,r.trainingSetup.tasksetRef)?{evaluationTasksetRef:n}:{}}})},null,a?.modelResources?{...a.modelResources,taskset:a.taskset,executionResources:{environment:a.environment,verifierSet:a.verifierSet}}:a??void 0)}h(Ee,"selectTasksetDraftModel");import{createHash as We,randomUUID as je}from"node:crypto";import{lstat as ve,mkdir as ye,readdir as Je,readFile as Be,rename as $e,rm as qe,writeFile as Ue}from"node:fs/promises";import R from"node:path";var b=le.extend({workspaceHash:u.string().regex(/^[a-f0-9]{64}$/).nullable()}).strict();async function Pe(o){let{db:t,profileId:e}=o,a=X.parse(o.request),s=h(()=>{let w=t.get("SELECT payload FROM model_projects WHERE id = ? AND profile_id = ?",[a.modelId,e]);if(!w)throw new Error("Taskset draft Model was not found in this Profile.");return S.parse(JSON.parse(w.payload))},"requireModel"),i=s(),r=m(a),n=t.get("SELECT request_hash, state, payload FROM model_taskset_draft_operations WHERE profile_id = ? AND operation_id = ?",[e,a.operationId]);if(n){if(n.request_hash!==r)throw new Error("Taskset draft operation was reused with different input.");if(n.state==="deleted")throw new Error("This Taskset draft was deleted.");return b.parse(JSON.parse(n.payload))}if(!o.source)return null;if(i.revision!==a.expectedModelRevision)throw new Error("Model changed before draft initialization. Refresh before editing.");let f=i.trainingSetup.tasksetRef,p=f?t.get("SELECT payload FROM taskset_revisions WHERE taskset_id = ? AND revision = ? AND profile_id = ?",[f.id,f.revision,e]):null,d=p?T.parse(JSON.parse(p.payload)):null;if(!d||!f||d.contentHash!==f.contentHash)throw new Error("The selected source Taskset is unavailable.");let l=o.source,c=i.hosted?.apiOrigin?i.hosted.tasksets.find(w=>w.localTasksetId===d.id&&w.localTasksetHash===d.contentHash&&w.packageHash===l.contentHash&&w.releaseId===l.taskset.id&&w.releaseRevision===l.taskset.revision&&w.releaseHash===l.taskset.contentHash):null,k=typeof d.metadata.importedPackageHash=="string"?d.metadata.importedPackageHash:c?.packageHash;if(k?k!==l.contentHash:!M(J(A({taskset:d,adapterId:F(d)}).tasksetRelease),J(l.taskset)))throw new Error("Taskset draft package differs from its selected source.");let v=l.modelResources?ae.safeParse(l.taskset.metadata.modelTasksetDerivation):Y.safeParse(l.taskset.metadata.modelTasksetAuthoring),xe=c&&v.success&&v.data.owner.modelId===i.id?v.data.owner:{scopeId:e,modelId:i.id},Le=de({request:a,owner:xe,source:l}),Ce=pe({sourceDraft:ne(d),source:l,preparation:Le,expectedModelRevision:a.expectedModelRevision});await N(o.home,l);let G=b.parse({...Ce,workspaceHash:null}),ze=G.draft;t.exec("BEGIN IMMEDIATE");try{let w=t.get("SELECT request_hash FROM model_taskset_draft_operations WHERE profile_id = ? AND operation_id = ?",[e,a.operationId]);if(w&&w.request_hash!==r)throw new Error("Taskset draft operation was reused with different input.");if(!w&&s().revision!==a.expectedModelRevision)throw new Error("Model changed during draft initialization. Refresh before editing.");t.run("INSERT INTO model_taskset_draft_operations (profile_id, operation_id, request_hash, draft_id, state, payload) VALUES (?, ?, ?, ?, 'prepared', ?) ON CONFLICT(profile_id, operation_id) DO NOTHING",[e,a.operationId,r,ze.id,JSON.stringify(G)]),t.exec("COMMIT")}catch(w){throw t.exec("ROLLBACK"),w}let W=t.get("SELECT request_hash, payload FROM model_taskset_draft_operations WHERE profile_id = ? AND operation_id = ?",[e,a.operationId]);if(!W||W.request_hash!==r)throw new Error("Taskset draft operation was reused with different input.");return b.parse(JSON.parse(W.payload))}h(Pe,"prepareDraftInitialization");async function Se(o){let{initialized:t,workspacePath:e}=o;if(o.completed())return;if(t.workspaceHash)try{if(await ve(e),o.completed())return;if(await U(e),await g(e)!==t.workspaceHash)throw new Error("Prepared Taskset draft files changed before initialization completed.");return}catch(s){if(s.code!=="ENOENT")throw s}let a=`${e}.initializing-${je()}`;await ye(R.dirname(e),{recursive:!0});try{let s=t.draft.modelScope?.source;if(!s)throw new Error("Taskset draft lost its source preparation.");let i=await D(o.home,s.sourcePackageHash),r=new Map;for(let f of t.filePaths){let p=i.files.find(d=>d.asset.id===f.assetId);if(!p)throw new Error("Taskset draft source asset is missing.");for(let d of f.paths){if(d.includes("\\")||R.posix.isAbsolute(d)||d.split("/").some(k=>!k||k==="."||k===".."||k.startsWith(".env")))throw new Error("Taskset draft source path is invalid.");let l=r.get(d);if(l&&l!==p.asset.contentHash)throw new Error("Taskset draft source paths conflict.");if(l)continue;let c=R.join(a,d);await ye(R.dirname(c),{recursive:!0}),await Ue(c,O(p),{flag:"wx"}),r.set(d,p.asset.contentHash)}}await H(t.draft,a);for(let[f,p]of r)if(We("sha256").update(await Be(R.join(a,f))).digest("hex")!==p)throw new Error(`Taskset draft source asset conflicts with authoring file ${f}.`);let n=await g(a);if(o.retainHash({...t,workspaceHash:n}),o.completed())return;try{await $e(a,e)}catch(f){if(!["EEXIST","ENOTEMPTY"].includes(f.code??""))throw f;if(o.completed())return;if(await U(e),await g(e)!==n)throw new Error("Prepared Taskset draft files changed before initialization completed.")}}finally{await qe(a,{recursive:!0,force:!0})}}h(Se,"materializeDraftInitialization");async function U(o){let t=await ve(o);if(!t.isDirectory()||t.isSymbolicLink())throw new Error("Taskset draft source must be a regular directory.");for(let e of await Je(o,{withFileTypes:!0})){if(e.name.startsWith(".env")||e.isSymbolicLink())throw new Error("Taskset draft source contains a prohibited file.");if(e.isDirectory())await U(R.join(o,e.name));else if(!e.isFile())throw new Error("Taskset draft source must contain regular files.")}}h(U,"assertRegularTree");import Ve from"node:path";async function De(o){let t=A({taskset:o.taskset,adapterId:F(o.taskset)}),e=await me({root:o.directory,content:{schemaVersion:"openpond.tasksetPackage.v1",taskset:t.tasksetRelease,environment:t.environmentRelease,verifierSet:t.verifierSetRelease},sources:q.parse(o.taskset.metadata.portableFileInventory??[])}),a=o.preparation.authoringGraph==="bound"?await D(o.home,o.preparation.sourcePackageHash):void 0,s=ce({preparation:o.preparation,edited:e,source:a});if(s.modelResources){let c=fe({package:s,profileId:o.taskset.profileId,name:o.taskset.name,createdAt:o.taskset.createdAt}),k=T.parse({...c.taskset,authoringProvenance:o.taskset.authoringProvenance,metadata:{...c.taskset.metadata,sourcePackageHash:o.taskset.metadata.sourcePackageHash}}),v=T.parse({...k,contentHash:_(k)});return await ue({home:o.home,...c,taskset:v}),{taskset:v,directory:Ve.join(o.home,"training","tasksets",String(v.environment.metadata.runtimeSourceTasksetId))}}let i=q.parse(o.taskset.metadata.portableFileInventory??[]),r=s.files.map(c=>({asset:c.asset,sourcePath:i.find(k=>k.asset.id===c.asset.id)?.sourcePath??c.asset.path})),n=s.taskset.environment.entrypoint==="openpond.javascript-environment.v1"?s.files.find(c=>c.asset.path==="environment/execution.json"):void 0,f=`model-draft-${m({packageHash:s.contentHash,taskset:o.taskset})}`,p=T.parse({...o.taskset,id:s.taskset.id,revision:s.taskset.revision,metadata:{...o.taskset.metadata,portableFileInventory:r,importedPackageHash:s.contentHash,derivedPortableMetadata:s.taskset.metadata},environment:{...o.taskset.environment,metadata:{...o.taskset.environment.metadata,runtimeSourceTasksetId:f,portableExecutionResources:{environment:s.environment,verifierSet:s.verifierSet}}}}),d=T.parse({...p,contentHash:_(p)}),l=await x(o.home,{taskset:d,generatedFiles:n?[{path:n.asset.path,role:"environment",content:new TextDecoder("utf-8",{fatal:!0}).decode(O(n))}]:[]},f,{source:{directory:o.directory,packageHash:await g(o.directory)},verify:h(c=>L(c,d),"verify")});return await N(o.home,s),{directory:l,taskset:d}}h(De,"materializeModelTasksetDraftPublication");import{constants as V}from"node:fs";import{createHash as Qe}from"node:crypto";import{lstat as be,mkdir as Ge,open as Ke,readdir as Ye,rm as Re}from"node:fs/promises";import C from"node:path";var P=h((o,t)=>K(C.join(o,"state","taskset-draft-writes"),t),"withTasksetDraftLock"),_e=re,Xe=h(o=>Qe("sha256").update(o).digest("hex"),"digest");async function z(o,t,e=!1){B.parse(t);let a=o;for(let s of["",...t.split("/").slice(0,-1)]){s&&(a=C.join(a,s)),e&&await Ge(a,{recursive:!1}).catch(r=>{if(r.code!=="EEXIST")throw r});let i=await be(a);if(!i.isDirectory()||i.isSymbolicLink())throw new Error("Taskset draft paths must use regular directories.")}return C.join(o,t)}h(z,"regularPath");async function He(o,t){let e=await z(o,t),a=await Ke(e,V.O_RDONLY|V.O_NOFOLLOW|V.O_NONBLOCK);try{let s=await a.stat();if(!s.isFile()||s.size>se)throw new Error("Taskset draft file must be a regular file within the 6 MB editing limit.");let i=Buffer.alloc(s.size),r=0;for(;r<i.length;){let n=await a.read(i,r,i.length-r,r);if(!n.bytesRead)throw new Error("Taskset draft file changed during reading.");r+=n.bytesRead}if((await a.read(Buffer.alloc(1),0,1,r)).bytesRead)throw new Error("Taskset draft file changed during reading.");return i}finally{await a.close()}}h(He,"readBytes");async function Ie(o,t){let e=await He(o,t);return ie(t,e)}h(Ie,"readTasksetDraftFile");async function Me(o){let t=[];async function e(a=""){for(let s of await Ye(C.join(o,a),{withFileTypes:!0})){let i=a?`${a}/${s.name}`:s.name;if(B.parse(i),s.isSymbolicLink())throw new Error("Taskset draft files cannot contain symbolic links.");if(s.isDirectory()){await e(i);continue}if(!s.isFile())throw new Error("Taskset draft files must be regular files.");if(t.length>=1e4)throw new Error("Taskset draft file inventory exceeds its limit.");let r=await be(await z(o,i));if(!r.isFile()||r.isSymbolicLink())throw new Error("Taskset draft files must be regular files.");t.push({path:i,sizeBytes:r.size,writable:_e(i)})}}return h(e,"visit"),await z(o,"taskset.json"),await e(),t.sort((a,s)=>a.path.localeCompare(s.path))}h(Me,"listTasksetDraftFiles");async function Oe(o,t,e){if(!_e(t.path))throw new Error("This file is managed by the Taskset forms or retained source history.");let a=null;try{a=await He(o,t.path)}catch(r){if(r.code!=="ENOENT")throw r}if((a?Xe(a):null)!==t.expectedFileHash)throw new Error("Taskset draft file changed. Reload it before saving.");if(!a&&t.content===null)throw new Error("Taskset draft file does not exist.");let s=t.content?oe(t.content):null,i=await z(o,t.path,!0);s?await j(i,s):await Re(i);try{return await e()}catch(r){throw a?await j(i,a):await Re(i,{force:!0}),r}}h(Oe,"mutateTasksetDraftFile");var E=u.object({schemaVersion:u.literal("openpond.tasksetDraftPointer.v1"),id:u.string().trim().min(1),profileId:u.string().trim().min(1),modelScope:y.shape.modelScope,status:u.enum(["draft","validating","needs_review","published"]),revision:u.number().int().positive(),workspacePath:u.string().trim().min(1),packageHash:u.string().regex(/^[a-f0-9]{64}$/),publishedTasksetRef:u.object({id:u.string().trim().min(1),revision:u.number().int().positive(),contentHash:u.string().trim().min(8)}).nullable(),createdAt:u.string().trim().min(1),updatedAt:u.string().trim().min(1)}),Fe=class extends he{static{h(this,"SqliteTasksetDraftStore")}async initializeModelTasksetDraft(t,e,a){await this.ready;let s=this.writeQueue.then(()=>P(this.home,async()=>{let i=this.database,r=await Pe({db:i,home:this.home,profileId:t,request:e,source:a});if(!r)return null;let n=h(()=>{let d=i.get("SELECT state FROM model_taskset_draft_operations WHERE profile_id = ? AND operation_id = ?",[t,e.operationId]);if(d?.state==="deleted")throw new Error("This Taskset draft was deleted.");let l=i.get("SELECT payload FROM taskset_drafts WHERE id = ?",[r.draft.id]);if(!l){if(d?.state==="ready")throw new Error("The initialized Taskset draft is unavailable.");return!1}let c=E.parse(JSON.parse(l.payload));if(c.profileId!==t||c.modelScope?.source?.requestHash!==r.draft.modelScope?.source?.requestHash)throw new Error("Taskset draft identity conflicts with its initialization.");return!0},"completed"),f=this.workspacePath(r.draft.id);await Se({home:this.home,initialized:r,workspacePath:f,completed:n,retainHash:h(d=>{let l=i.get("SELECT payload FROM model_taskset_draft_operations WHERE profile_id = ? AND operation_id = ?",[t,e.operationId]),c=b.parse(JSON.parse(l.payload));if(c.workspaceHash&&c.workspaceHash!==d.workspaceHash)throw new Error("Taskset draft initialization produced different files on retry.");i.run("UPDATE model_taskset_draft_operations SET payload = ? WHERE profile_id = ? AND operation_id = ? AND state = 'prepared'",[JSON.stringify(d),t,e.operationId])},"retainHash")}),i.exec("BEGIN IMMEDIATE");try{if(!n()){let d=i.get("SELECT payload FROM model_taskset_draft_operations WHERE profile_id = ? AND operation_id = ?",[t,e.operationId]),l=b.parse(JSON.parse(d.payload)),c=l.draft,k=E.parse({schemaVersion:"openpond.tasksetDraftPointer.v1",id:c.id,profileId:t,modelScope:c.modelScope,status:c.status,revision:c.revision,workspacePath:f,packageHash:l.workspaceHash,publishedTasksetRef:c.publishedTasksetRef,createdAt:c.createdAt,updatedAt:c.updatedAt});i.run("INSERT INTO taskset_drafts (id, profile_id, status, revision, payload, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?, ?)",[c.id,t,c.status,c.revision,JSON.stringify(k),c.createdAt,c.updatedAt]),i.run("UPDATE model_taskset_draft_operations SET state = 'ready' WHERE profile_id = ? AND operation_id = ?",[t,e.operationId])}i.exec("COMMIT")}catch(d){throw i.exec("ROLLBACK"),d}let p=i.get("SELECT payload FROM taskset_drafts WHERE id = ?",[r.draft.id]);return this.draftFromStoredPayload(JSON.parse(p.payload))}));return this.writeQueue=s.then(()=>{},()=>{}),s}async saveTasksetDraft(t,e,a={}){let s=y.parse(t);await this.ready;let i=this.writeQueue.then(()=>P(this.home,async()=>{let r=this.database.get("SELECT payload FROM taskset_drafts WHERE id = ?",[s.id]),n=r?E.safeParse(JSON.parse(r.payload)):null;if(n?.success){if(n.data.profileId!==s.profileId)throw new Error("Taskset draft profile cannot change.");if(m(n.data.modelScope?{...n.data.modelScope,expectedModelRevision:0}:null)!==m(s.modelScope?{...s.modelScope,expectedModelRevision:0}:null)||!a.refreshModelRevision&&m(n.data.modelScope)!==m(s.modelScope))throw new Error("Taskset draft Model ownership cannot change.");if(n.data.status==="published")throw new Error("Published Taskset drafts are immutable. Initialize a new draft to revise the Taskset.");if(s.revision<n.data.revision||e!==void 0&&n.data.revision!==e)throw new Error("Taskset draft changed before saving. Refresh before saving.")}else if(e!==void 0)throw new Error("Taskset draft is unavailable for saving.");if((!n?.success||a.refreshModelRevision)&&s.modelScope){let c=this.database.get("SELECT payload FROM model_projects WHERE id = ? AND profile_id = ?",[s.modelScope.modelId,s.profileId]);if(!c)throw new Error("Taskset draft Model was not found in this Profile.");if(S.parse(JSON.parse(c.payload)).revision!==s.modelScope.expectedModelRevision)throw new Error("Taskset draft Model changed. Refresh before editing.")}let f=this.workspacePath(s.id),d=(await H(s,f)).draft,l=E.parse({schemaVersion:"openpond.tasksetDraftPointer.v1",id:d.id,profileId:d.profileId,modelScope:d.modelScope,status:d.status,revision:d.revision,workspacePath:f,packageHash:await g(f),publishedTasksetRef:d.publishedTasksetRef,createdAt:d.createdAt,updatedAt:d.updatedAt});return await this.savePointer(l,!0),d}));return this.writeQueue=i.then(()=>{},()=>{}),i}async importTasksetDraftPackage(t){let e=I.resolve(t.packagePath),s=(await st(e)).isDirectory()?e:I.dirname(e);await Ne(s);let i=await g(s),r=await $(s),n=await this.getTasksetDraft(r.id);if(n){let c=n.metadata.importedTasksetPackage;if(c&&typeof c=="object"&&!Array.isArray(c)&&c.packageHash===i&&n.profileId===t.profileId)return n;throw new Error(`Taskset draft ${r.id} already exists. Import a package with a distinct Taskset id.`)}let f=y.parse({...r,profileId:t.profileId,modelScope:null,status:"draft",revision:1,publishedTasksetRef:null,metadata:{...r.metadata,importedTasksetPackage:{packageHash:i,importedAt:new Date().toISOString()}},updatedAt:new Date().toISOString()}),p=this.workspacePath(f.id),d=`${p}.import-${process.pid}-${Date.now()}`;await tt(I.dirname(p),{recursive:!0});try{await et(s,d,{recursive:!0,errorOnExist:!0,force:!1,preserveTimestamps:!0}),await H(f,d),await Q(d,p)}catch(c){throw await Ae(d,{recursive:!0,force:!0}),c}let l=E.parse({schemaVersion:"openpond.tasksetDraftPointer.v1",id:f.id,profileId:f.profileId,status:f.status,revision:f.revision,workspacePath:p,packageHash:await g(p),publishedTasksetRef:f.publishedTasksetRef,createdAt:f.createdAt,updatedAt:f.updatedAt});return await this.savePointer(l),this.draftFromStoredPayload(l)}async materializePublishedTasksetPackage(t){let e=await this.getTasksetDraftWorkspace(t.draftId);if(!e)throw new Error(`Taskset draft ${t.draftId} workspace was not found.`);if(t.taskset.metadata.sourcePackageHash!==void 0&&t.taskset.metadata.sourcePackageHash!==e.packageHash)throw new Error("Taskset draft files changed before publication. Refresh before publishing.");let a=`draft-${m({taskset:t.taskset,packageHash:e.packageHash})}`,s=await ke(t.taskset,e.workspacePath),i=T.parse({...s.taskset,metadata:{...s.taskset.metadata,sourcePackageHash:e.packageHash},environment:{...s.taskset.environment,metadata:{...s.taskset.environment.metadata,runtimeSourceTasksetId:a}}}),r=T.parse({...i,contentHash:_(i)}),n=await x(this.home,{taskset:r,generatedFiles:s.generatedFiles},a,{source:{directory:e.workspacePath,packageHash:e.packageHash},verify:h(p=>L(p,r),"verify")}),f=await this.getTasksetDraft(t.draftId);return f?.modelScope?.source?De({home:this.home,directory:n,taskset:r,preparation:f.modelScope.source}):{directory:n,taskset:r}}async finalizeTasksetDraftPublication(t){await this.ready;let e=y.parse(t.draft),a=T.parse(t.taskset),s=e.modelScope?.source?.authoringGraph==="bound"&&typeof a.metadata.importedPackageHash=="string"?await D(this.home,a.metadata.importedPackageHash):null,i=this.writeQueue.then(()=>P(this.home,async()=>{let r=this.database.get("SELECT payload FROM taskset_drafts WHERE id = ?",[e.id]);if(!r)throw new Error("Taskset draft was deleted before publication.");let n=E.parse(JSON.parse(r.payload));if(n.profileId!==e.profileId||a.profileId!==e.profileId)throw new Error("Taskset publication belongs to another Profile.");if(m(n.modelScope)!==m(e.modelScope))throw new Error("Taskset draft Model ownership cannot change.");if(n.status==="published"&&n.publishedTasksetRef){let c=n.publishedTasksetRef,k=this.database.get("SELECT payload FROM taskset_revisions WHERE taskset_id = ? AND revision = ? AND content_hash = ?",[c.id,c.revision,c.contentHash]);if(!k)throw new Error("Published draft lost its immutable Taskset revision.");return{draft:y.parse({...e,status:n.status,revision:n.revision,publishedTasksetRef:c,updatedAt:n.updatedAt}),taskset:T.parse(JSON.parse(k.payload))}}if(n.revision!==e.revision||a.metadata.sourcePackageHash!==t.packageHash)throw new Error("Taskset draft changed before publication. Refresh before publishing.");let f=n.modelScope?.source,p=f?.authoringGraph==="bound"&&a.metadata.modelTasksetDerivation&&typeof a.metadata.modelTasksetDerivation=="object"?{...a.metadata.modelTasksetDerivation,schemaVersion:f.lineage.schemaVersion}:a.metadata.modelTasksetAuthoring;if(f&&(a.id!==f.tasksetId||a.revision!==f.tasksetRevision||m(p)!==m(f.lineage)))throw new Error("Taskset publication differs from its retained source preparation.");let d=y.parse({...e,status:"published",revision:e.revision+1,publishedTasksetRef:{id:a.id,revision:a.revision,contentHash:a.contentHash},updatedAt:new Date().toISOString()}),l=E.parse({...n,status:d.status,revision:d.revision,publishedTasksetRef:d.publishedTasksetRef,updatedAt:d.updatedAt});return we(this.database,a,()=>{if(s&&ge(this.database,{package:s,taskset:a,generatedFiles:[]}),Ee(this.database,e,a,s),this.database.get("SELECT revision FROM taskset_drafts WHERE id = ?",[e.id])?.revision!==e.revision)throw new Error("Taskset draft changed during publication.");this.database.run("UPDATE taskset_drafts SET status = ?, revision = ?, payload = ?, updated_at = ? WHERE id = ?",[l.status,l.revision,JSON.stringify(l),l.updatedAt,e.id])}),{draft:d,taskset:a}}));return this.writeQueue=i.then(()=>{},()=>{}),i}async getTasksetDraft(t){let e=await this.getParsedPayload("SELECT payload FROM taskset_drafts WHERE id = ?",[t],a=>a);return e===null?null:this.draftFromStoredPayload(e)}async listTasksetDrafts(t){await this.ready,await this.writeQueue;let e=await this.all(t?"SELECT payload FROM taskset_drafts WHERE profile_id = ? ORDER BY updated_at DESC":"SELECT payload FROM taskset_drafts ORDER BY updated_at DESC",t?[t]:[]);return Promise.all(e.map(a=>this.draftFromStoredPayload(JSON.parse(a.payload))))}async readHumanPublishedTasksetDraft(t,e){let a=(await this.listTasksetDrafts(t)).filter(r=>r.status==="published"&&r.modelScope===null&&m(r.publishedTasksetRef)===m(e));if(a.length!==1)return null;let s=a[0],i=await this.getTasksetDraftWorkspace(s.id);return i?{draft:s,workspace:i}:null}async getTasksetDraftWorkspace(t){let e=await this.getParsedPayload("SELECT payload FROM taskset_drafts WHERE id = ?",[t],s=>s);if(e===null)return null;let a=await this.pointerFromStoredPayload(e);return{draftId:a.id,workspacePath:a.workspacePath,packageHash:await g(a.workspacePath)}}async deleteTasksetDraft(t){await this.ready;let e=this.writeQueue.then(()=>P(this.home,async()=>{let a=this.workspacePath(t),s=`${a}.delete-${Ze()}`,i=!1;try{await Q(a,s),i=!0}catch(r){if(r.code!=="ENOENT")throw r}try{this.database.exec("BEGIN IMMEDIATE");try{this.database.run("DELETE FROM taskset_drafts WHERE id = ?",[t]),this.database.run("UPDATE model_taskset_draft_operations SET state = 'deleted' WHERE draft_id = ?",[t]),this.database.exec("COMMIT")}catch(r){throw this.database.exec("ROLLBACK"),r}}catch(r){throw i&&await Q(s,a).catch(()=>{}),r}i&&await Ae(s,{recursive:!0,force:!0})}));this.writeQueue=e.catch(()=>{}),await e}async tasksetDraftFiles(t,e,a){return await this.ready,P(this.home,async()=>{let s=this.database.get("SELECT payload FROM taskset_drafts WHERE id = ? AND profile_id = ?",[e,t]);if(!s)throw new Error("Taskset draft was not found in this Profile.");let i=E.parse(JSON.parse(s.payload));if(a!==void 0){let n=await Ie(i.workspacePath,a);return{draftRevision:i.revision,file:{...n,writable:n.writable&&i.status!=="published"}}}let r=await Me(i.workspacePath);return{draftRevision:i.revision,files:r.map(n=>({...n,writable:n.writable&&i.status!=="published"}))}})}async saveTasksetDraftFile(t,e){let a=Z.parse(e);await this.ready;let s=this.writeQueue.then(()=>P(this.home,async()=>{let i=this.database.get("SELECT payload FROM taskset_drafts WHERE id = ? AND profile_id = ?",[a.draftId,t]);if(!i)throw new Error("Taskset draft was not found in this Profile.");let r=E.parse(JSON.parse(i.payload));if(r.status==="published")throw new Error("Published Taskset drafts are immutable.");if(r.revision!==a.expectedDraftRevision)throw new Error("Taskset draft changed. Reload before saving a file.");return Oe(r.workspacePath,a,async()=>{let n=E.parse({...r,revision:r.revision+1,packageHash:await g(r.workspacePath),updatedAt:new Date().toISOString()}),f=await this.draftFromStoredPayload(n);this.database.exec("BEGIN IMMEDIATE");try{if(this.database.get("SELECT revision FROM taskset_drafts WHERE id = ? AND profile_id = ?",[a.draftId,t])?.revision!==r.revision)throw new Error("Taskset draft changed during file saving.");this.database.run("UPDATE taskset_drafts SET revision = ?, payload = ?, updated_at = ? WHERE id = ?",[n.revision,JSON.stringify(n),n.updatedAt,n.id]),this.database.exec("COMMIT")}catch(p){throw this.database.exec("ROLLBACK"),p}return f})}));return this.writeQueue=s.then(()=>{},()=>{}),s}workspacePath(t){let e=m(t).slice(0,24);return I.join(this.home,"workspaces","tasksets",`taskset-${e}`)}async draftFromStoredPayload(t){let e=await this.pointerFromStoredPayload(t),a=await $(e.workspacePath);return y.parse({...a,id:e.id,profileId:e.profileId,modelScope:e.modelScope,status:e.status,revision:e.revision,publishedTasksetRef:e.publishedTasksetRef,createdAt:e.createdAt,updatedAt:e.updatedAt})}async pointerFromStoredPayload(t){let e=E.safeParse(t);if(e.success)return e.data;let a=y.parse(t);await this.saveTasksetDraft(a);let s=await this.getParsedPayload("SELECT payload FROM taskset_drafts WHERE id = ?",[a.id],E.parse);if(!s)throw new Error(`Taskset draft ${a.id} migration failed.`);return s}async savePointer(t,e=!1){await(e?this.run.bind(this):this.upsertPayload.bind(this))(`INSERT INTO taskset_drafts (id, profile_id, status, revision, payload, created_at, updated_at)
3
3
  VALUES (?, ?, ?, ?, ?, ?, ?)
4
4
  ON CONFLICT(id) DO UPDATE SET
5
5
  profile_id = excluded.profile_id,
@@ -1,5 +1,5 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{a as A}from"./chunk-EIEZHFIW.js";import{a as M}from"./chunk-OLLLZVHF.js";import{d as N}from"./chunk-KG325WTN.js";import"./chunk-DMFUEUAZ.js";import"./chunk-QOTVNQDI.js";import"./chunk-OQPJ7FJF.js";import"./chunk-WJ43MJ3F.js";import"./chunk-Q4TBTRIG.js";import"./chunk-T5AACNJI.js";import"./chunk-QOGJAQDO.js";import"./chunk-EYPCBBMS.js";import"./chunk-DIO5CB6U.js";import"./chunk-7ED24PP6.js";import{a as L}from"./chunk-KCJVFLBB.js";import"./chunk-N4FFQPLR.js";import"./chunk-AY64VY4E.js";import"./chunk-GJ2ZJFDD.js";import"./chunk-3QIB5FXI.js";import"./chunk-6MI4KKWF.js";import"./chunk-DDMZSZFL.js";import"./chunk-W45RKGM6.js";import"./chunk-3VUATFZD.js";import"./chunk-4EPSHPZL.js";import"./chunk-MQULU465.js";import{A as g,B as C,h as l,i as k,l as _,r as O,s as T,t as w,u as f,v as I}from"./chunk-PRGBLQVH.js";import"./chunk-7E6T7GP5.js";import"./chunk-DZUAT3TP.js";import"./chunk-XDQMGUWL.js";import"./chunk-FTEOCCPB.js";import{B as p,sa as S,ua as m}from"./chunk-25MBPJVY.js";import"./chunk-WN3V6KDN.js";import"./chunk-523TE4BI.js";import"./chunk-ZCHXGRRU.js";import"./chunk-YBT2NB32.js";import"./chunk-74ZXXBGN.js";import"./chunk-APB2STJK.js";import"./chunk-Z4Z5UOZM.js";import"./chunk-6FA3GG5B.js";import"./chunk-Y4OWBBDD.js";import"./chunk-6ZFPQYHG.js";import"./chunk-JFXWI3EN.js";import"./chunk-FFRFSDBM.js";import"./chunk-VYLGI3IH.js";import"./chunk-ACYFMLWG.js";import"./chunk-TVQAPBLZ.js";import"./chunk-KGNCKIFP.js";import"./chunk-ES2ISFJC.js";import{a as o}from"./chunk-FTQLQJQV.js";function h(s,t,a,e,n,r,d){return{schemaVersion:"openpond.trainingChatSearchResult.v1",query:s,offset:t,limit:a,total:e,hasMore:t+n.length<e,indexedChats:r,totalChats:d,indexing:r<d,entries:n.map(i=>({sessionId:i.session_id,title:i.title,updatedAt:i.updated_at,snippet:i.snippet?.trim()||null}))}}o(h,"trainingChatSearchResult");function P(s){let t=s.normalize("NFKC").match(/[\p{L}\p{N}_]+/gu)?.slice(0,24)??[];return t.length?t.map(a=>`"${a.replaceAll('"','""')}"*`).join(" AND "):null}o(P,"trainingChatFtsQuery");function D(s,t,a){let e=s.get(t)??[];e.push(a),s.set(t,e)}o(D,"appendTrainingChatSearchText");var F=class extends L{static{o(this,"SqliteTrainingStore")}async trainingChatSearchSignatures(t){await this.ready,await this.writeQueue;let a=await this.all("SELECT session_id, signature FROM training_chat_search_documents WHERE source = ?",[t]);return new Map(a.map(e=>[e.session_id,e.signature]))}async openPondTrainingChatSearchEvidence(t){await this.ready,await this.writeQueue;let a=[...new Set(t)].slice(0,500);if(!a.length)return[];let e=a.map(()=>"?").join(", "),[n,r,d]=await Promise.all([this.all(`SELECT payload FROM projection_session_shells WHERE id IN (${e})`,a),this.all(`SELECT session_id, payload FROM turns WHERE session_id IN (${e}) ORDER BY sort_index ASC`,a),this.all(`SELECT session_id, payload FROM events
2
+ import{a as A}from"./chunk-WC42WOLG.js";import{a as M}from"./chunk-PY6K2JRH.js";import{d as N}from"./chunk-57TRXBLT.js";import"./chunk-DMFUEUAZ.js";import"./chunk-2RNQQNB7.js";import"./chunk-OQPJ7FJF.js";import"./chunk-EUMXMT3S.js";import"./chunk-Q4TBTRIG.js";import"./chunk-T5AACNJI.js";import"./chunk-TKLBP3MM.js";import"./chunk-RBZH6A6M.js";import"./chunk-DIO5CB6U.js";import"./chunk-7ED24PP6.js";import{a as L}from"./chunk-KCJVFLBB.js";import"./chunk-N4FFQPLR.js";import"./chunk-AY64VY4E.js";import"./chunk-GJ2ZJFDD.js";import"./chunk-3QIB5FXI.js";import"./chunk-6MI4KKWF.js";import"./chunk-DDMZSZFL.js";import"./chunk-W45RKGM6.js";import"./chunk-CGWA54LE.js";import"./chunk-KO3HNMLJ.js";import"./chunk-MQULU465.js";import{A as g,B as C,h as l,i as k,l as _,r as O,s as T,t as w,u as f,v as I}from"./chunk-JMBQYBPI.js";import"./chunk-LPWBIGKW.js";import"./chunk-DZUAT3TP.js";import"./chunk-H7ATCPPB.js";import"./chunk-25JDHAZ5.js";import{B as p,sa as S,ua as m}from"./chunk-XMKCCLGB.js";import"./chunk-WN3V6KDN.js";import"./chunk-523TE4BI.js";import"./chunk-ZCHXGRRU.js";import"./chunk-YBT2NB32.js";import"./chunk-74ZXXBGN.js";import"./chunk-APB2STJK.js";import"./chunk-Y4OWBBDD.js";import"./chunk-6ZFPQYHG.js";import"./chunk-JFXWI3EN.js";import"./chunk-6FA3GG5B.js";import"./chunk-Z4Z5UOZM.js";import"./chunk-FFRFSDBM.js";import"./chunk-VYLGI3IH.js";import"./chunk-ACYFMLWG.js";import"./chunk-TVQAPBLZ.js";import"./chunk-KGNCKIFP.js";import"./chunk-ES2ISFJC.js";import{a as o}from"./chunk-FTQLQJQV.js";function h(s,t,a,e,n,r,d){return{schemaVersion:"openpond.trainingChatSearchResult.v1",query:s,offset:t,limit:a,total:e,hasMore:t+n.length<e,indexedChats:r,totalChats:d,indexing:r<d,entries:n.map(i=>({sessionId:i.session_id,title:i.title,updatedAt:i.updated_at,snippet:i.snippet?.trim()||null}))}}o(h,"trainingChatSearchResult");function P(s){let t=s.normalize("NFKC").match(/[\p{L}\p{N}_]+/gu)?.slice(0,24)??[];return t.length?t.map(a=>`"${a.replaceAll('"','""')}"*`).join(" AND "):null}o(P,"trainingChatFtsQuery");function D(s,t,a){let e=s.get(t)??[];e.push(a),s.set(t,e)}o(D,"appendTrainingChatSearchText");var F=class extends L{static{o(this,"SqliteTrainingStore")}async trainingChatSearchSignatures(t){await this.ready,await this.writeQueue;let a=await this.all("SELECT session_id, signature FROM training_chat_search_documents WHERE source = ?",[t]);return new Map(a.map(e=>[e.session_id,e.signature]))}async openPondTrainingChatSearchEvidence(t){await this.ready,await this.writeQueue;let a=[...new Set(t)].slice(0,500);if(!a.length)return[];let e=a.map(()=>"?").join(", "),[n,r,d]=await Promise.all([this.all(`SELECT payload FROM projection_session_shells WHERE id IN (${e})`,a),this.all(`SELECT session_id, payload FROM turns WHERE session_id IN (${e}) ORDER BY sort_index ASC`,a),this.all(`SELECT session_id, payload FROM events
3
3
  WHERE name = 'assistant.delta' AND session_id IN (${e})
4
4
  ORDER BY sequence ASC`,a)]),i=new Map;for(let u of r){let c=JSON.parse(u.payload);c.prompt.trim()&&D(i,u.session_id,c.prompt)}for(let u of d){let c=JSON.parse(u.payload);c.output?.trim()&&D(i,u.session_id,c.output)}return n.map(u=>{let c=M(JSON.parse(u.payload));return{session:c,body:i.get(c.id)?.join(`
5
5
  `)??""}})}async syncTrainingChatSearchDocuments(t,a){await this.ready;let e=this.writeQueue.then(async()=>{let n=await this.all("SELECT session_id, signature FROM training_chat_search_documents WHERE source = ?",[t]),r=new Map(n.map(i=>[i.session_id,i.signature])),d=new Set(a.map(i=>i.sessionId));await this.exec("BEGIN IMMEDIATE");try{for(let i of r.keys())d.has(i)||(await this.run("DELETE FROM training_chat_search_fts WHERE session_id = ?",[i]),await this.run("DELETE FROM training_chat_search_documents WHERE session_id = ?",[i]));for(let i of a)r.get(i.sessionId)!==i.signature&&(await this.run("DELETE FROM training_chat_search_fts WHERE session_id = ?",[i.sessionId]),await this.run(`INSERT INTO training_chat_search_documents (session_id, source, signature, title, updated_at, eligible, body_indexed)
@@ -1,5 +1,5 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{a as u}from"./chunk-OUVIWDL2.js";import"./chunk-QOTVNQDI.js";import"./chunk-OQPJ7FJF.js";import"./chunk-WJ43MJ3F.js";import"./chunk-Q4TBTRIG.js";import"./chunk-T5AACNJI.js";import{$ as E,D as S,aa as c,ba as o,ea as _,ga as s,ha as T,na as p,oa as g}from"./chunk-QOGJAQDO.js";import"./chunk-EYPCBBMS.js";import"./chunk-DIO5CB6U.js";import"./chunk-7ED24PP6.js";import{a as f}from"./chunk-KCJVFLBB.js";import"./chunk-N4FFQPLR.js";import"./chunk-AY64VY4E.js";import"./chunk-GJ2ZJFDD.js";import"./chunk-3QIB5FXI.js";import"./chunk-6MI4KKWF.js";import"./chunk-DDMZSZFL.js";import"./chunk-W45RKGM6.js";import"./chunk-3VUATFZD.js";import"./chunk-4EPSHPZL.js";import"./chunk-MQULU465.js";import"./chunk-PRGBLQVH.js";import"./chunk-7E6T7GP5.js";import"./chunk-DZUAT3TP.js";import"./chunk-XDQMGUWL.js";import"./chunk-FTEOCCPB.js";import"./chunk-25MBPJVY.js";import"./chunk-WN3V6KDN.js";import"./chunk-523TE4BI.js";import"./chunk-ZCHXGRRU.js";import"./chunk-YBT2NB32.js";import"./chunk-74ZXXBGN.js";import"./chunk-APB2STJK.js";import"./chunk-Z4Z5UOZM.js";import"./chunk-6FA3GG5B.js";import"./chunk-Y4OWBBDD.js";import"./chunk-6ZFPQYHG.js";import"./chunk-JFXWI3EN.js";import"./chunk-FFRFSDBM.js";import"./chunk-VYLGI3IH.js";import"./chunk-ACYFMLWG.js";import"./chunk-TVQAPBLZ.js";import"./chunk-KGNCKIFP.js";import"./chunk-ES2ISFJC.js";import{a as d}from"./chunk-FTQLQJQV.js";var l="('openpond_managed')",P=class extends f{static{d(this,"SqliteTrainingJobsStore")}async saveModelProject(t){let a=E.parse(t);return await this.upsertPayload(`INSERT INTO model_projects (id, profile_id, payload, created_at, updated_at) VALUES (?, ?, ?, ?, ?)
2
+ import{a as u}from"./chunk-OUVIWDL2.js";import"./chunk-2RNQQNB7.js";import"./chunk-OQPJ7FJF.js";import"./chunk-EUMXMT3S.js";import"./chunk-Q4TBTRIG.js";import"./chunk-T5AACNJI.js";import{$ as E,D as S,aa as c,ba as o,ea as _,ga as s,ha as T,na as p,oa as g}from"./chunk-TKLBP3MM.js";import"./chunk-RBZH6A6M.js";import"./chunk-DIO5CB6U.js";import"./chunk-7ED24PP6.js";import{a as f}from"./chunk-KCJVFLBB.js";import"./chunk-N4FFQPLR.js";import"./chunk-AY64VY4E.js";import"./chunk-GJ2ZJFDD.js";import"./chunk-3QIB5FXI.js";import"./chunk-6MI4KKWF.js";import"./chunk-DDMZSZFL.js";import"./chunk-W45RKGM6.js";import"./chunk-CGWA54LE.js";import"./chunk-KO3HNMLJ.js";import"./chunk-MQULU465.js";import"./chunk-JMBQYBPI.js";import"./chunk-LPWBIGKW.js";import"./chunk-DZUAT3TP.js";import"./chunk-H7ATCPPB.js";import"./chunk-25JDHAZ5.js";import"./chunk-XMKCCLGB.js";import"./chunk-WN3V6KDN.js";import"./chunk-523TE4BI.js";import"./chunk-ZCHXGRRU.js";import"./chunk-YBT2NB32.js";import"./chunk-74ZXXBGN.js";import"./chunk-APB2STJK.js";import"./chunk-Y4OWBBDD.js";import"./chunk-6ZFPQYHG.js";import"./chunk-JFXWI3EN.js";import"./chunk-6FA3GG5B.js";import"./chunk-Z4Z5UOZM.js";import"./chunk-FFRFSDBM.js";import"./chunk-VYLGI3IH.js";import"./chunk-ACYFMLWG.js";import"./chunk-TVQAPBLZ.js";import"./chunk-KGNCKIFP.js";import"./chunk-ES2ISFJC.js";import{a as d}from"./chunk-FTQLQJQV.js";var l="('openpond_managed')",P=class extends f{static{d(this,"SqliteTrainingJobsStore")}async saveModelProject(t){let a=E.parse(t);return await this.upsertPayload(`INSERT INTO model_projects (id, profile_id, payload, created_at, updated_at) VALUES (?, ?, ?, ?, ?)
3
3
  ON CONFLICT(id) DO UPDATE SET profile_id = excluded.profile_id, payload = excluded.payload, updated_at = excluded.updated_at`,[a.id,a.profileId,JSON.stringify(a),a.createdAt,a.updatedAt]),a}async getModelProject(t){return this.getParsedPayload("SELECT payload FROM model_projects WHERE id = ?",[t],h)}async listModelProjects(t){return this.listParsedPayloads(t?"SELECT payload FROM model_projects WHERE profile_id = ? ORDER BY updated_at DESC":"SELECT payload FROM model_projects ORDER BY updated_at DESC",t?[t]:[],h)}async saveTrainingPlan(t){let a=c.parse(t),e=await this.getTrainingPlan(a.id);if(e&&e.contentHash!==a.contentHash)throw new Error(`Training Plan ${a.id} is immutable and already has different content.`);return await this.upsertPayload(`INSERT INTO training_plans (id, taskset_id, destination_id, payload, created_at) VALUES (?, ?, ?, ?, ?)
4
4
  ON CONFLICT(id) DO UPDATE SET taskset_id = excluded.taskset_id, destination_id = excluded.destination_id, payload = excluded.payload`,[a.id,a.tasksetId,a.destinationId,JSON.stringify(a),a.createdAt]),a}async listTrainingPlans(t){return this.listParsedPayloads(t?`SELECT payload FROM training_plans WHERE taskset_id = ? AND destination_id IN ${l} ORDER BY created_at DESC`:`SELECT payload FROM training_plans WHERE destination_id IN ${l} ORDER BY created_at DESC`,t?[t]:[],c.parse)}async getTrainingPlan(t){return this.getParsedPayload(`SELECT payload FROM training_plans WHERE id = ? AND destination_id IN ${l}`,[t],c.parse)}async saveTrainingBundle(t){let a=o.parse(t);return await this.upsertPayload(`INSERT INTO training_bundles (id, plan_id, content_hash, payload, created_at) VALUES (?, ?, ?, ?, ?)
5
5
  ON CONFLICT(id) DO UPDATE SET plan_id = excluded.plan_id, content_hash = excluded.content_hash, payload = excluded.payload`,[a.id,a.planId,a.contentHash,JSON.stringify(a),a.createdAt]),a}async getTrainingBundle(t){return this.getParsedPayload("SELECT payload FROM training_bundles WHERE id = ?",[t],o.parse)}async listTrainingBundles(t){return this.listParsedPayloads(t?"SELECT payload FROM training_bundles WHERE plan_id = ? ORDER BY created_at DESC":"SELECT payload FROM training_bundles ORDER BY created_at DESC",t?[t]:[],o.parse)}async findTrainingBundleByPlanAndHash(t,a){return this.getParsedPayload("SELECT payload FROM training_bundles WHERE plan_id = ? AND content_hash = ?",[t,a],o.parse)}async saveTrainingJob(t){let a=s.parse(t),e=await this.getTrainingJob(a.id),n=e?.metadata.activityAuthority,r=a.metadata.activityAuthority;if(n!==void 0){let A=u.parse(n);if(r!==void 0&&JSON.stringify(u.parse(r))!==JSON.stringify(A))throw new Error("Training activity ownership cannot change during reconciliation.");a={...a,metadata:{...a.metadata,activityAuthority:A}}}else if(r!==void 0){if(e)throw new Error("Historical training activity cannot be assigned a guessed owner.");a={...a,metadata:{...a.metadata,activityAuthority:u.parse(r)}}}await this.upsertPayload(`INSERT INTO training_jobs (id, plan_id, destination_id, status, payload, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?, ?)
@@ -1,5 +1,5 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{a as O}from"./chunk-YOQRYNLP.js";import{Na as P}from"./chunk-QOTVNQDI.js";import"./chunk-OQPJ7FJF.js";import"./chunk-WJ43MJ3F.js";import"./chunk-Q4TBTRIG.js";import"./chunk-T5AACNJI.js";import{U as S,ga as C,h as c,m as p,o as E,p as y,qa as u,r as R,u as m,w as _}from"./chunk-QOGJAQDO.js";import"./chunk-EYPCBBMS.js";import"./chunk-DIO5CB6U.js";import"./chunk-7ED24PP6.js";import{a as M}from"./chunk-KCJVFLBB.js";import"./chunk-N4FFQPLR.js";import"./chunk-AY64VY4E.js";import"./chunk-GJ2ZJFDD.js";import"./chunk-3QIB5FXI.js";import"./chunk-6MI4KKWF.js";import"./chunk-DDMZSZFL.js";import"./chunk-W45RKGM6.js";import"./chunk-3VUATFZD.js";import"./chunk-4EPSHPZL.js";import"./chunk-MQULU465.js";import"./chunk-PRGBLQVH.js";import"./chunk-7E6T7GP5.js";import"./chunk-DZUAT3TP.js";import"./chunk-XDQMGUWL.js";import"./chunk-FTEOCCPB.js";import"./chunk-25MBPJVY.js";import"./chunk-WN3V6KDN.js";import"./chunk-523TE4BI.js";import"./chunk-ZCHXGRRU.js";import"./chunk-YBT2NB32.js";import"./chunk-74ZXXBGN.js";import"./chunk-APB2STJK.js";import"./chunk-Z4Z5UOZM.js";import"./chunk-6FA3GG5B.js";import"./chunk-Y4OWBBDD.js";import"./chunk-6ZFPQYHG.js";import"./chunk-JFXWI3EN.js";import"./chunk-FFRFSDBM.js";import"./chunk-VYLGI3IH.js";import"./chunk-ACYFMLWG.js";import"./chunk-TVQAPBLZ.js";import"./chunk-KGNCKIFP.js";import"./chunk-ES2ISFJC.js";import{a as l}from"./chunk-FTQLQJQV.js";function w(r,t,e){let a=P.safeParse(e.metadata.portableExecutionRef);return r.kind!=="training"||r.status!=="failed"||r.receipt!==null||t.status!=="succeeded"||t.receipt?.schemaVersion!=="openpond.modelRunReceipt.v1"||t.failure!==null||e.status!=="failed"||e.metadata.phase!=="artifact_collection_failed"||e.metadata.modelRunId!==r.id||!a.success||t.receipt.providerRunId!==(a.data.providerJobId??a.data.runId)||t.receipt.assignmentHash!==e.metadata.harnessRunManifestHash?!1:JSON.stringify({...r,status:t.status,receipt:t.receipt,adapterArtifactLineageId:t.adapterArtifactLineageId,failure:null,completedAt:t.completedAt,updatedAt:t.updatedAt})===JSON.stringify(t)}l(w,"isArtifactCollectionRecoveryTransition");function g(r,t){if(r.kind!=="evaluation"||!["failed","cancelled"].includes(r.status)||t.status!=="running"||t.receipt!==null||t.failure!==null||t.completedAt!==null||!r.evaluation)return!1;let e=r.evaluation.attemptPlan.filter(d=>d.stage==="baseline"||d.stage==="adaptation").reduce((d,n)=>d+n.attemptCount,0),a=r.evaluation.attemptPlan.reduce((d,n)=>d+n.attemptCount,0),i=r.evaluation.attemptPlan.find(d=>d.stage==="candidate_adaptation"),o=e+(i?.attemptCount??0);return!(r.evaluationProgress?.stage==="refiner"&&r.evaluationProgress.completedAttempts===e||r.evaluationProgress?.stage==="candidate_adaptation"&&r.evaluationProgress.completedAttempts>=e&&r.evaluationProgress.completedAttempts<=o||["candidate_adaptation","candidate","comparison"].includes(r.evaluationProgress?.stage??"")&&r.evaluationProgress?.completedAttempts===a)||!r.evaluationProgress?.accounting?!1:JSON.stringify({...r,status:"running",receipt:null,failure:null,completedAt:null,updatedAt:t.updatedAt})===JSON.stringify(t)}l(g,"isCheckpointResumeTransition");var T=class extends M{static{l(this,"SqliteTrainingModelStore")}async saveModelCurrencySnapshot(t){let e=_.parse(t),a=await this.getModelCurrencySnapshot(e.id);if(a){if(a.contentHash===e.contentHash&&JSON.stringify(a)===JSON.stringify(e))return a;throw new Error("An immutable Model Currency Snapshot cannot be replaced.")}return await this.upsertPayload(`INSERT INTO model_currency_snapshots
2
+ import{a as O}from"./chunk-DZUN5YWB.js";import{Na as P}from"./chunk-2RNQQNB7.js";import"./chunk-OQPJ7FJF.js";import"./chunk-EUMXMT3S.js";import"./chunk-Q4TBTRIG.js";import"./chunk-T5AACNJI.js";import{U as S,ga as C,h as c,m as p,o as E,p as y,qa as u,r as R,u as m,w as _}from"./chunk-TKLBP3MM.js";import"./chunk-RBZH6A6M.js";import"./chunk-DIO5CB6U.js";import"./chunk-7ED24PP6.js";import{a as M}from"./chunk-KCJVFLBB.js";import"./chunk-N4FFQPLR.js";import"./chunk-AY64VY4E.js";import"./chunk-GJ2ZJFDD.js";import"./chunk-3QIB5FXI.js";import"./chunk-6MI4KKWF.js";import"./chunk-DDMZSZFL.js";import"./chunk-W45RKGM6.js";import"./chunk-CGWA54LE.js";import"./chunk-KO3HNMLJ.js";import"./chunk-MQULU465.js";import"./chunk-JMBQYBPI.js";import"./chunk-LPWBIGKW.js";import"./chunk-DZUAT3TP.js";import"./chunk-H7ATCPPB.js";import"./chunk-25JDHAZ5.js";import"./chunk-XMKCCLGB.js";import"./chunk-WN3V6KDN.js";import"./chunk-523TE4BI.js";import"./chunk-ZCHXGRRU.js";import"./chunk-YBT2NB32.js";import"./chunk-74ZXXBGN.js";import"./chunk-APB2STJK.js";import"./chunk-Y4OWBBDD.js";import"./chunk-6ZFPQYHG.js";import"./chunk-JFXWI3EN.js";import"./chunk-6FA3GG5B.js";import"./chunk-Z4Z5UOZM.js";import"./chunk-FFRFSDBM.js";import"./chunk-VYLGI3IH.js";import"./chunk-ACYFMLWG.js";import"./chunk-TVQAPBLZ.js";import"./chunk-KGNCKIFP.js";import"./chunk-ES2ISFJC.js";import{a as l}from"./chunk-FTQLQJQV.js";function w(r,t,e){let a=P.safeParse(e.metadata.portableExecutionRef);return r.kind!=="training"||r.status!=="failed"||r.receipt!==null||t.status!=="succeeded"||t.receipt?.schemaVersion!=="openpond.modelRunReceipt.v1"||t.failure!==null||e.status!=="failed"||e.metadata.phase!=="artifact_collection_failed"||e.metadata.modelRunId!==r.id||!a.success||t.receipt.providerRunId!==(a.data.providerJobId??a.data.runId)||t.receipt.assignmentHash!==e.metadata.harnessRunManifestHash?!1:JSON.stringify({...r,status:t.status,receipt:t.receipt,adapterArtifactLineageId:t.adapterArtifactLineageId,failure:null,completedAt:t.completedAt,updatedAt:t.updatedAt})===JSON.stringify(t)}l(w,"isArtifactCollectionRecoveryTransition");function g(r,t){if(r.kind!=="evaluation"||!["failed","cancelled"].includes(r.status)||t.status!=="running"||t.receipt!==null||t.failure!==null||t.completedAt!==null||!r.evaluation)return!1;let e=r.evaluation.attemptPlan.filter(d=>d.stage==="baseline"||d.stage==="adaptation").reduce((d,n)=>d+n.attemptCount,0),a=r.evaluation.attemptPlan.reduce((d,n)=>d+n.attemptCount,0),i=r.evaluation.attemptPlan.find(d=>d.stage==="candidate_adaptation"),o=e+(i?.attemptCount??0);return!(r.evaluationProgress?.stage==="refiner"&&r.evaluationProgress.completedAttempts===e||r.evaluationProgress?.stage==="candidate_adaptation"&&r.evaluationProgress.completedAttempts>=e&&r.evaluationProgress.completedAttempts<=o||["candidate_adaptation","candidate","comparison"].includes(r.evaluationProgress?.stage??"")&&r.evaluationProgress?.completedAttempts===a)||!r.evaluationProgress?.accounting?!1:JSON.stringify({...r,status:"running",receipt:null,failure:null,completedAt:null,updatedAt:t.updatedAt})===JSON.stringify(t)}l(g,"isCheckpointResumeTransition");var T=class extends M{static{l(this,"SqliteTrainingModelStore")}async saveModelCurrencySnapshot(t){let e=_.parse(t),a=await this.getModelCurrencySnapshot(e.id);if(a){if(a.contentHash===e.contentHash&&JSON.stringify(a)===JSON.stringify(e))return a;throw new Error("An immutable Model Currency Snapshot cannot be replaced.")}return await this.upsertPayload(`INSERT INTO model_currency_snapshots
3
3
  (id, series_id, entry_id, evidence_state, content_hash, payload, created_at)
4
4
  VALUES (?, ?, ?, ?, ?, ?, ?)`,[e.id,e.seriesId,e.entryId,e.evidenceState,e.contentHash,JSON.stringify(e),e.projectedAt]),e}async getModelCurrencySnapshot(t){return this.getParsedPayload("SELECT payload FROM model_currency_snapshots WHERE id = ?",[t],_.parse)}async listModelCurrencySnapshots(t={}){return t.entryId?this.listParsedPayloads("SELECT payload FROM model_currency_snapshots WHERE entry_id = ? ORDER BY created_at DESC",[t.entryId],_.parse):t.seriesId?this.listParsedPayloads("SELECT payload FROM model_currency_snapshots WHERE series_id = ? ORDER BY created_at DESC",[t.seriesId],_.parse):this.listParsedPayloads("SELECT payload FROM model_currency_snapshots ORDER BY created_at DESC",[],_.parse)}async saveModelComparisonSeries(t){let e=c.parse(t),a=await this.getModelComparisonSeries(e.id);if(a&&(a.profileId!==e.profileId||a.modelProjectId!==e.modelProjectId||a.createdAt!==e.createdAt))throw new Error("A Model Comparison Series cannot change its immutable ownership.");if(a&&e.revision!==a.revision+1){if(JSON.stringify(a)===JSON.stringify(e))return a;throw new Error("A Model Comparison Series update requires the next revision.")}if(a?.scheduleSealedAt&&!v(a,e))throw new Error("A sealed Model Comparison Series definition is immutable.");return await this.upsertPayload(`INSERT INTO model_comparison_series
5
5
  (id, profile_id, model_project_id, status, payload, created_at, updated_at)
@@ -1,2 +1,2 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{a as g,c as h,d as m}from"./chunk-NPOHW5OU.js";import{c as f}from"./chunk-BSHAIAXY.js";import"./chunk-XWPC3AN4.js";import{c as n,f as u}from"./chunk-3M53YXEI.js";import"./chunk-GLUWATL5.js";import"./chunk-I7AQMAQI.js";import"./chunk-Z4Z5UOZM.js";import"./chunk-FFRFSDBM.js";import"./chunk-KGNCKIFP.js";import"./chunk-ES2ISFJC.js";import"./chunk-H7IWJN7L.js";import{a as c}from"./chunk-FTQLQJQV.js";import w from"node:path";async function A(r,l,k={}){let[t,e]=l;if(!t||!e||l.length!==2||!["import","publish","readiness","delete-draft"].includes(t))throw new Error("usage: taskset <import|publish|readiness|delete-draft> <package-path|draft-id|taskset-id> [--profile <id>] [--model <id>] [--json]");let i=f(r)??process.env.OPENPOND_LOCAL_API_URL?.replace(/\/$/,"")??g,d=new URL(i);if(d.protocol!=="http:"||!["127.0.0.1","localhost","::1"].includes(d.hostname))throw new Error("Taskset package import is available only through the local OpenPond app API.");let a=new m({baseUrl:i,request:k.request??await h(i)}),s=t==="import"?await a.importTasksetDraftPackage({packagePath:w.resolve(e),profileId:n(r,"profile")||"default"}):t==="publish"?await a.publishTasksetDraft(e,n(r,"model")||null):t==="readiness"?await a.tasksetReadiness(e):await a.deleteTasksetDraft(e);if(u(r.json)){console.log(JSON.stringify(s,null,2));return}let o=s&&typeof s=="object"?s:{};if(t==="import"){console.log(`Imported Taskset draft ${String(o.name??o.id??e)}.`),console.log("Open it in Models \u2192 Tasksets to review it, or publish it with the OpenPond CLI.");return}if(t==="publish"){let p=o.taskset&&typeof o.taskset=="object"?o.taskset:{};console.log(`Published Taskset ${String(p.name??p.id??e)}.`);return}if(t==="readiness"){console.log(`Checked Taskset ${e} readiness.`),console.log(JSON.stringify(s,null,2));return}console.log(`Deleted unpublished Taskset draft ${e}.`)}c(A,"runTasksetCommand");export{A as runTasksetCommand};
2
+ import{a as g,c as h,d as m}from"./chunk-NPOHW5OU.js";import{c as f}from"./chunk-BSHAIAXY.js";import"./chunk-XWPC3AN4.js";import{c as n,f as u}from"./chunk-3M53YXEI.js";import"./chunk-GLUWATL5.js";import"./chunk-MNC4YUDI.js";import"./chunk-Z4Z5UOZM.js";import"./chunk-FFRFSDBM.js";import"./chunk-H7IWJN7L.js";import"./chunk-KGNCKIFP.js";import"./chunk-ES2ISFJC.js";import{a as c}from"./chunk-FTQLQJQV.js";import w from"node:path";async function A(r,l,k={}){let[t,e]=l;if(!t||!e||l.length!==2||!["import","publish","readiness","delete-draft"].includes(t))throw new Error("usage: taskset <import|publish|readiness|delete-draft> <package-path|draft-id|taskset-id> [--profile <id>] [--model <id>] [--json]");let i=f(r)??process.env.OPENPOND_LOCAL_API_URL?.replace(/\/$/,"")??g,d=new URL(i);if(d.protocol!=="http:"||!["127.0.0.1","localhost","::1"].includes(d.hostname))throw new Error("Taskset package import is available only through the local OpenPond app API.");let a=new m({baseUrl:i,request:k.request??await h(i)}),s=t==="import"?await a.importTasksetDraftPackage({packagePath:w.resolve(e),profileId:n(r,"profile")||"default"}):t==="publish"?await a.publishTasksetDraft(e,n(r,"model")||null):t==="readiness"?await a.tasksetReadiness(e):await a.deleteTasksetDraft(e);if(u(r.json)){console.log(JSON.stringify(s,null,2));return}let o=s&&typeof s=="object"?s:{};if(t==="import"){console.log(`Imported Taskset draft ${String(o.name??o.id??e)}.`),console.log("Open it in Models \u2192 Tasksets to review it, or publish it with the OpenPond CLI.");return}if(t==="publish"){let p=o.taskset&&typeof o.taskset=="object"?o.taskset:{};console.log(`Published Taskset ${String(p.name??p.id??e)}.`);return}if(t==="readiness"){console.log(`Checked Taskset ${e} readiness.`),console.log(JSON.stringify(s,null,2));return}console.log(`Deleted unpublished Taskset draft ${e}.`)}c(A,"runTasksetCommand");export{A as runTasksetCommand};
@@ -1,2 +1,2 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import"./chunk-DZUAT3TP.js";import{a as F,b as G,c as H,d as Q,e as R,f as S,g as T,h as U,i as V,j as W,k as X,l as Y,m as Z,n as _,o as $,p as aa,q as ba,r as ca}from"./chunk-XDQMGUWL.js";import{c as y,d as z,e as A,f as B,g as C,h as D,i as E}from"./chunk-FTEOCCPB.js";import{$ as m,Fb as I,Gb as J,Hb as K,Ib as L,Jb as M,Kb as N,Lb as O,Mb as P,Z as k,_ as l,a as b,aa as n,b as c,ba as o,c as d,ca as p,d as e,da as q,e as f,ea as r,f as g,g as h,h as i,ha as s,i as j,ia as t,ja as u,ka as v,la as w,ma as x}from"./chunk-25MBPJVY.js";import"./chunk-WN3V6KDN.js";import"./chunk-523TE4BI.js";import"./chunk-ZCHXGRRU.js";import"./chunk-APB2STJK.js";import"./chunk-Y4OWBBDD.js";import"./chunk-6ZFPQYHG.js";import"./chunk-JFXWI3EN.js";import"./chunk-FFRFSDBM.js";import"./chunk-VYLGI3IH.js";import{h as a}from"./chunk-ACYFMLWG.js";import"./chunk-TVQAPBLZ.js";import"./chunk-KGNCKIFP.js";import"./chunk-ES2ISFJC.js";import"./chunk-FTQLQJQV.js";export{S as AuthoredTasksetFileInventorySchema,n as MAX_TASKSET_PACKAGE_BYTES,a as ModelBatchReviewError,F as ModelBatchReviewInspectionSchema,H as ModelBatchReviewReceiptSchema,G as ModelBatchReviewRequestSchema,b as ModelTasksetAuthoringOwnerSchema,c as ModelTasksetAuthoringSchema,e as ModelTasksetDraftPreparationSchema,d as ModelTasksetDraftRequestSchema,E as OpenPondTasksetPackageClient,D as OpenPondTasksetPackageError,h as TasksetDraftFileContentSchema,g as TasksetDraftFileInfoSchema,j as TasksetDraftFileMutationSchema,f as TasksetDraftFilePathSchema,i as TasksetDraftFileSchema,aa as TasksetDraftSourceInitializationSchema,s as TasksetPackageContentSchema,o as TasksetPackageFileSchema,k as TasksetPackageLearningResourcesSchema,y as TasksetPackageModelConfigurationSchema,z as TasksetPackagePublicationSchema,B as TasksetPackageReadbackSchema,A as TasksetPackageReceiptSchema,t as TasksetPackageSchema,C as TasksetReleasePackageReadbackSchema,Z as beginModelBatchReview,W as bindOrdinaryModelTasksetReward,V as compileModelTasksetDraftWorkspace,x as createTasksetPackage,r as createTasksetPackageExecutionFile,p as decodeTasksetPackageFile,Y as findModelBatchReview,X as inspectModelBatchPackage,T as isGeneratedTasksetPublicationFilePath,l as learningPackageContextFiles,J as learningVerifierModule,L as materializePortableTasksetRelease,ca as materializeTasksetDraftWorkspace,N as portableTasksetEnvironment,O as portableTasksetTools,U as prepareAuthoredTasksetSource,_ as prepareImportedTasksetPackage,Q as prepareModelTasksetDraft,ba as prepareTasksetDraftSource,I as projectLearningBatchGraders,P as projectPortableTaskRecord,M as projectPreferenceComparisonRelease,R as publishModelTasksetDraftPackage,K as resolvePortableTasksetRewardExecution,q as resolveTasksetPackageExecution,v as resolveTasksetPackageInstructions,u as tasksetPackageRewardBinding,$ as tasksetPackageSourceId,m as validateTasksetLearningResources,w as validateTasksetPackage};
2
+ import"./chunk-DZUAT3TP.js";import{a as F,b as G,c as H,d as Q,e as R,f as S,g as T,h as U,i as V,j as W,k as X,l as Y,m as Z,n as _,o as $,p as aa,q as ba,r as ca}from"./chunk-H7ATCPPB.js";import{c as y,d as z,e as A,f as B,g as C,h as D,i as E}from"./chunk-25JDHAZ5.js";import{$ as m,Fb as I,Gb as J,Hb as K,Ib as L,Jb as M,Kb as N,Lb as O,Mb as P,Z as k,_ as l,a as b,aa as n,b as c,ba as o,c as d,ca as p,d as e,da as q,e as f,ea as r,f as g,g as h,h as i,ha as s,i as j,ia as t,ja as u,ka as v,la as w,ma as x}from"./chunk-XMKCCLGB.js";import"./chunk-WN3V6KDN.js";import"./chunk-523TE4BI.js";import"./chunk-ZCHXGRRU.js";import"./chunk-APB2STJK.js";import"./chunk-Y4OWBBDD.js";import"./chunk-6ZFPQYHG.js";import"./chunk-JFXWI3EN.js";import"./chunk-FFRFSDBM.js";import"./chunk-VYLGI3IH.js";import{h as a}from"./chunk-ACYFMLWG.js";import"./chunk-TVQAPBLZ.js";import"./chunk-KGNCKIFP.js";import"./chunk-ES2ISFJC.js";import"./chunk-FTQLQJQV.js";export{S as AuthoredTasksetFileInventorySchema,n as MAX_TASKSET_PACKAGE_BYTES,a as ModelBatchReviewError,F as ModelBatchReviewInspectionSchema,H as ModelBatchReviewReceiptSchema,G as ModelBatchReviewRequestSchema,b as ModelTasksetAuthoringOwnerSchema,c as ModelTasksetAuthoringSchema,e as ModelTasksetDraftPreparationSchema,d as ModelTasksetDraftRequestSchema,E as OpenPondTasksetPackageClient,D as OpenPondTasksetPackageError,h as TasksetDraftFileContentSchema,g as TasksetDraftFileInfoSchema,j as TasksetDraftFileMutationSchema,f as TasksetDraftFilePathSchema,i as TasksetDraftFileSchema,aa as TasksetDraftSourceInitializationSchema,s as TasksetPackageContentSchema,o as TasksetPackageFileSchema,k as TasksetPackageLearningResourcesSchema,y as TasksetPackageModelConfigurationSchema,z as TasksetPackagePublicationSchema,B as TasksetPackageReadbackSchema,A as TasksetPackageReceiptSchema,t as TasksetPackageSchema,C as TasksetReleasePackageReadbackSchema,Z as beginModelBatchReview,W as bindOrdinaryModelTasksetReward,V as compileModelTasksetDraftWorkspace,x as createTasksetPackage,r as createTasksetPackageExecutionFile,p as decodeTasksetPackageFile,Y as findModelBatchReview,X as inspectModelBatchPackage,T as isGeneratedTasksetPublicationFilePath,l as learningPackageContextFiles,J as learningVerifierModule,L as materializePortableTasksetRelease,ca as materializeTasksetDraftWorkspace,N as portableTasksetEnvironment,O as portableTasksetTools,U as prepareAuthoredTasksetSource,_ as prepareImportedTasksetPackage,Q as prepareModelTasksetDraft,ba as prepareTasksetDraftSource,I as projectLearningBatchGraders,P as projectPortableTaskRecord,M as projectPreferenceComparisonRelease,R as publishModelTasksetDraftPackage,K as resolvePortableTasksetRewardExecution,q as resolveTasksetPackageExecution,v as resolveTasksetPackageInstructions,u as tasksetPackageRewardBinding,$ as tasksetPackageSourceId,m as validateTasksetLearningResources,w as validateTasksetPackage};
@@ -1,3 +1,3 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{m as f}from"./chunk-RAXOSUSW.js";import"./chunk-DARVPBZ4.js";import"./chunk-M4JWQSV7.js";import"./chunk-FV2R5RUN.js";import"./chunk-BSHAIAXY.js";import"./chunk-XWPC3AN4.js";import{a as g,c as a,d}from"./chunk-3M53YXEI.js";import"./chunk-5MCNZCVQ.js";import"./chunk-BT5YNE5U.js";import"./chunk-Q5LEXXJG.js";import"./chunk-FWIPHEVA.js";import"./chunk-OS3LO5J3.js";import"./chunk-GLUWATL5.js";import"./chunk-QDC4OW3S.js";import"./chunk-ZZWAQBA2.js";import"./chunk-YR5ID2SS.js";import"./chunk-YBT2NB32.js";import"./chunk-74ZXXBGN.js";import"./chunk-APB2STJK.js";import"./chunk-I7AQMAQI.js";import"./chunk-Z4Z5UOZM.js";import"./chunk-Y4OWBBDD.js";import"./chunk-6ZFPQYHG.js";import"./chunk-JFXWI3EN.js";import"./chunk-FFRFSDBM.js";import"./chunk-VYLGI3IH.js";import"./chunk-ACYFMLWG.js";import"./chunk-TVQAPBLZ.js";import"./chunk-KGNCKIFP.js";import"./chunk-ES2ISFJC.js";import"./chunk-H7IWJN7L.js";import{a as s}from"./chunk-FTQLQJQV.js";function c(){return["usage: teams-bot <overview|bind|rebind|diagnostics|diagnostic-run>"," teams-bot overview --team-id <id>"," teams-bot bind --team-id <id> --token <token> [--project-id <id>] [--agent-id <id>] [--microsoft-connection-id <id>]"," teams-bot rebind <bindingId> --team-id <id> [--project-id <id>] [--agent-id <id>] [--microsoft-connection-id <id>]"," teams-bot diagnostics <bindingId> --team-id <id>"," teams-bot diagnostic-run <bindingId> --team-id <id> --prompt <text> [--attachments-json <json-array>] [--action-input-json <json-object>]"].join(`
2
+ import{m as f}from"./chunk-GUOLMLZN.js";import"./chunk-JUQMSHNR.js";import"./chunk-U2MAPON2.js";import"./chunk-7UH4YDA7.js";import"./chunk-BSHAIAXY.js";import"./chunk-XWPC3AN4.js";import{a as g,c as a,d}from"./chunk-3M53YXEI.js";import"./chunk-OLDK2LKJ.js";import"./chunk-BT5YNE5U.js";import"./chunk-SF5HJ7PL.js";import"./chunk-FWIPHEVA.js";import"./chunk-WRI4XKSK.js";import"./chunk-GLUWATL5.js";import"./chunk-QDC4OW3S.js";import"./chunk-ZZWAQBA2.js";import"./chunk-YR5ID2SS.js";import"./chunk-YBT2NB32.js";import"./chunk-74ZXXBGN.js";import"./chunk-APB2STJK.js";import"./chunk-Y4OWBBDD.js";import"./chunk-6ZFPQYHG.js";import"./chunk-JFXWI3EN.js";import"./chunk-MNC4YUDI.js";import"./chunk-Z4Z5UOZM.js";import"./chunk-FFRFSDBM.js";import"./chunk-H7IWJN7L.js";import"./chunk-VYLGI3IH.js";import"./chunk-ACYFMLWG.js";import"./chunk-TVQAPBLZ.js";import"./chunk-KGNCKIFP.js";import"./chunk-ES2ISFJC.js";import{a as s}from"./chunk-FTQLQJQV.js";function c(){return["usage: teams-bot <overview|bind|rebind|diagnostics|diagnostic-run>"," teams-bot overview --team-id <id>"," teams-bot bind --team-id <id> --token <token> [--project-id <id>] [--agent-id <id>] [--microsoft-connection-id <id>]"," teams-bot rebind <bindingId> --team-id <id> [--project-id <id>] [--agent-id <id>] [--microsoft-connection-id <id>]"," teams-bot diagnostics <bindingId> --team-id <id>"," teams-bot diagnostic-run <bindingId> --team-id <id> --prompt <text> [--attachments-json <json-array>] [--action-input-json <json-object>]"].join(`
3
3
  `)}s(c,"usage");function u(n,o){if(!(o in n))return;let t=a(n,o);return!t||t==="null"||t==="none"?null:t}s(u,"nullableOption");function b(n){let o=d(n,"usage: teams-bot rebind <bindingId>"),t=u(n,"sandboxId"),r=u(n,"projectId"),i=u(n,"agentId"),e=u(n,"microsoftConnectionId");return{teamId:o,...t!==void 0?{sandboxId:t}:{},...r!==void 0?{projectId:r}:{},...i!==void 0?{agentId:i}:{},...e!==void 0?{microsoftConnectionId:e}:{}}}s(b,"bindingTargetInput");function l(n){let o=a(n,"attachmentsJson");if(!o)return;let t=g(o,"attachments-json");if(!Array.isArray(t))throw new Error("attachments-json must be a JSON array");for(let r of t)if(!r||typeof r!="object"||Array.isArray(r))throw new Error("attachments-json entries must be JSON objects");return t}s(l,"attachmentsInput");function w(n){let o=a(n,"actionInputJson");if(!o)return;let t=g(o,"action-input-json");if(!t||typeof t!="object"||Array.isArray(t))throw new Error("action-input-json must be a JSON object");return t}s(w,"actionInput");async function j(n,o){let t=o[0]||"overview",r=await f(n);if(t==="overview"){let i=d(n,"usage: teams-bot overview");console.log(JSON.stringify(await r.getMicrosoftTeamsBotOverview({teamId:i}),null,2));return}if(t==="bind"){let i=a(n,"token");if(!i)throw new Error(c());let e=await r.bindMicrosoftTeamsBotConversation({...b(n),token:i});console.log(JSON.stringify(e,null,2));return}if(t==="rebind"){let i=o[1]?.trim();if(!i)throw new Error(c());let e=await r.rebindMicrosoftTeamsBotConversation(i,b(n));console.log(JSON.stringify(e,null,2));return}if(t==="diagnostics"){let i=o[1]?.trim(),e=d(n,"usage: teams-bot diagnostics <bindingId>");if(!i)throw new Error(c());console.log(JSON.stringify(await r.sendMicrosoftTeamsBotDiagnostic({teamId:e,bindingId:i}),null,2));return}if(t==="diagnostic-run"){let i=o[1]?.trim(),e=d(n,"usage: teams-bot diagnostic-run <bindingId>"),m=a(n,"prompt");if(!i||!m)throw new Error(c());console.log(JSON.stringify(await r.sendMicrosoftTeamsBotDiagnosticRun({teamId:e,bindingId:i,prompt:m,attachments:l(n),actionInput:w(n)}),null,2));return}throw new Error(c())}s(j,"runTeamsBotCommand");export{j as runTeamsBotCommand};
@@ -1,2 +1,2 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{a,b,c,d}from"./chunk-NPOHW5OU.js";import"./chunk-BSHAIAXY.js";import"./chunk-XWPC3AN4.js";import"./chunk-3M53YXEI.js";import"./chunk-GLUWATL5.js";import"./chunk-I7AQMAQI.js";import"./chunk-Z4Z5UOZM.js";import"./chunk-FFRFSDBM.js";import"./chunk-KGNCKIFP.js";import"./chunk-ES2ISFJC.js";import"./chunk-H7IWJN7L.js";import"./chunk-FTQLQJQV.js";export{a as DEFAULT_LOCAL_TRAINING_API_URL,d as TrainingApiClient,c as createLocalAuthenticatedRequest,b as runTrainingCommand};
2
+ import{a,b,c,d}from"./chunk-NPOHW5OU.js";import"./chunk-BSHAIAXY.js";import"./chunk-XWPC3AN4.js";import"./chunk-3M53YXEI.js";import"./chunk-GLUWATL5.js";import"./chunk-MNC4YUDI.js";import"./chunk-Z4Z5UOZM.js";import"./chunk-FFRFSDBM.js";import"./chunk-H7IWJN7L.js";import"./chunk-KGNCKIFP.js";import"./chunk-ES2ISFJC.js";import"./chunk-FTQLQJQV.js";export{a as DEFAULT_LOCAL_TRAINING_API_URL,d as TrainingApiClient,c as createLocalAuthenticatedRequest,b as runTrainingCommand};
@@ -1,2 +1,2 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{a,b,c,d,e}from"./chunk-SWUEFLOH.js";import"./chunk-UKMA4R6X.js";import"./chunk-BFKYRQMA.js";import"./chunk-6QSSIT62.js";import"./chunk-3QIB5FXI.js";import"./chunk-YR5ID2SS.js";import"./chunk-I7AQMAQI.js";import"./chunk-Z4Z5UOZM.js";import"./chunk-6FA3GG5B.js";import"./chunk-FFRFSDBM.js";import"./chunk-KGNCKIFP.js";import"./chunk-ES2ISFJC.js";import"./chunk-H7IWJN7L.js";import"./chunk-FTQLQJQV.js";export{a as createHostedWebSearchExecutor,b as createWebSearchExecutorFromEnv,d as normalizeSearchApiUrl,e as normalizeWebSearchRequest,c as resolveWebSearchEndpoint};
2
+ import{a,b,c,d,e}from"./chunk-C37PUHA6.js";import"./chunk-GOPFFQZU.js";import"./chunk-BFKYRQMA.js";import"./chunk-RZUEVS64.js";import"./chunk-3QIB5FXI.js";import"./chunk-YR5ID2SS.js";import"./chunk-6FA3GG5B.js";import"./chunk-MNC4YUDI.js";import"./chunk-Z4Z5UOZM.js";import"./chunk-FFRFSDBM.js";import"./chunk-H7IWJN7L.js";import"./chunk-KGNCKIFP.js";import"./chunk-ES2ISFJC.js";import"./chunk-FTQLQJQV.js";export{a as createHostedWebSearchExecutor,b as createWebSearchExecutorFromEnv,d as normalizeSearchApiUrl,e as normalizeWebSearchRequest,c as resolveWebSearchEndpoint};
@@ -1,2 +1,2 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import{a as F,b as G,c as H,d as I,e as J,f as K,g as L,h as M,i as N,j as O,k as P,l as Q,m as R,n as S,o as T}from"./chunk-ZGTOK7ZK.js";import{A,B,C,D,E,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z}from"./chunk-XW6HGSIT.js";import"./chunk-KG325WTN.js";import"./chunk-FTQLQJQV.js";export{a as MACOS_GIT_MISSING_DEVELOPER_TOOLS_ERROR,C as appWorkspacePaths,B as assertSafeBranchName,d as checkWorkspaceGitAvailability,J as checkoutBranch,K as checkoutBranchAtPath,M as clearWorkspaceDiffCacheForTests,D as cloneWorkspace,H as createAndCheckoutBranch,I as createAndCheckoutBranchAtPath,A as expectedRemoteUrl,t as isGeneratedWorkspacePath,i as isGitRepo,c as isMacOSGitDeveloperToolsMissing,u as isVisibleGitWorkspaceFile,r as isWorkspaceDirectory,E as lastFetchAt,z as listPlainWorkspaceFiles,P as loadGitCommitDiffAtPath,N as loadWorkspaceDiff,O as loadWorkspaceDiffAtPath,Q as loadWorkspaceFile,T as loadWorkspaceFileAtPath,R as loadWorkspaceImageFile,S as loadWorkspaceImageFileAtPath,F as loadWorkspaceState,G as loadWorkspaceStateAtPath,n as localVideoContentType,L as mapWorkspaceDiffEntriesWithConcurrency,s as normalizeWorkspaceFilePath,w as parseBranchStatusLine,x as parseNumstat,v as parseStatusLine,h as pathExists,p as readLocalImageFile,q as readLocalVideoFile,l as readWorkspaceDocumentPreview,k as readWorkspaceFile,o as readWorkspaceImageFile,g as redactRemoteUrl,b as runWorkspaceCommand,f as sourceFromRemote,e as startMacOSCommandLineToolsInstall,j as truncatePatch,y as uniqueSortedPaths,m as workspaceImageContentType};
2
+ import{a as F,b as G,c as H,d as I,e as J,f as K,g as L,h as M,i as N,j as O,k as P,l as Q,m as R,n as S,o as T}from"./chunk-BQS7Z4AP.js";import{A,B,C,D,E,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z}from"./chunk-XW6HGSIT.js";import"./chunk-57TRXBLT.js";import"./chunk-FTQLQJQV.js";export{a as MACOS_GIT_MISSING_DEVELOPER_TOOLS_ERROR,C as appWorkspacePaths,B as assertSafeBranchName,d as checkWorkspaceGitAvailability,J as checkoutBranch,K as checkoutBranchAtPath,M as clearWorkspaceDiffCacheForTests,D as cloneWorkspace,H as createAndCheckoutBranch,I as createAndCheckoutBranchAtPath,A as expectedRemoteUrl,t as isGeneratedWorkspacePath,i as isGitRepo,c as isMacOSGitDeveloperToolsMissing,u as isVisibleGitWorkspaceFile,r as isWorkspaceDirectory,E as lastFetchAt,z as listPlainWorkspaceFiles,P as loadGitCommitDiffAtPath,N as loadWorkspaceDiff,O as loadWorkspaceDiffAtPath,Q as loadWorkspaceFile,T as loadWorkspaceFileAtPath,R as loadWorkspaceImageFile,S as loadWorkspaceImageFileAtPath,F as loadWorkspaceState,G as loadWorkspaceStateAtPath,n as localVideoContentType,L as mapWorkspaceDiffEntriesWithConcurrency,s as normalizeWorkspaceFilePath,w as parseBranchStatusLine,x as parseNumstat,v as parseStatusLine,h as pathExists,p as readLocalImageFile,q as readLocalVideoFile,l as readWorkspaceDocumentPreview,k as readWorkspaceFile,o as readWorkspaceImageFile,g as redactRemoteUrl,b as runWorkspaceCommand,f as sourceFromRemote,e as startMacOSCommandLineToolsInstall,j as truncatePatch,y as uniqueSortedPaths,m as workspaceImageContentType};