openpond 0.2.55 → 0.2.57

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 (399) hide show
  1. package/dist/app-server.d.ts +10545 -10254
  2. package/dist/app-server.js +1 -1
  3. package/dist/chunks/actions-command-QU4H53OG.js +2 -0
  4. package/dist/chunks/{app-layer-Y2UERCPY.js → app-layer-NSTE5HIT.js} +1 -1
  5. package/dist/chunks/app-server-connected-apps-JHGWLBXT.js +2 -0
  6. package/dist/chunks/app-server-evaluations-GJPFWIDA.js +2 -0
  7. package/dist/chunks/app-server-harness-services-IH4G6POY.js +2 -0
  8. package/dist/chunks/app-server-runtime-VCRNCNX2.js +2 -0
  9. package/dist/chunks/apps-BKTOR4F7.js +2 -0
  10. package/dist/chunks/chunk-25MBPJVY.js +2 -0
  11. package/dist/chunks/chunk-2D4Y3HNW.js +2 -0
  12. package/dist/chunks/chunk-2IHO4GDJ.js +2 -0
  13. package/dist/chunks/chunk-2QUCCP6Z.js +2 -0
  14. package/dist/chunks/chunk-3K4VVB7S.js +6 -0
  15. package/dist/chunks/chunk-3QIB5FXI.js +10 -0
  16. package/dist/chunks/chunk-3RCRSMWZ.js +17 -0
  17. package/dist/chunks/chunk-3VUATFZD.js +2 -0
  18. package/dist/chunks/chunk-3Z47M3YY.js +2 -0
  19. package/dist/chunks/{chunk-UA5DA5I2.js → chunk-4D7HWVWD.js} +1 -1
  20. package/dist/chunks/chunk-4EPSHPZL.js +2 -0
  21. package/dist/chunks/chunk-4NESNOK5.js +2 -0
  22. package/dist/chunks/chunk-523TE4BI.js +2 -0
  23. package/dist/chunks/{chunk-B7QDZPNX.js → chunk-5MCNZCVQ.js} +1 -1
  24. package/dist/chunks/chunk-6FDWRG55.js +2 -0
  25. package/dist/chunks/{chunk-DLVPSCTB.js → chunk-6QSSIT62.js} +1 -1
  26. package/dist/chunks/chunk-6ZFPQYHG.js +2 -0
  27. package/dist/chunks/chunk-74IIXVAE.js +2 -0
  28. package/dist/chunks/chunk-74ZXXBGN.js +6 -0
  29. package/dist/chunks/chunk-773TH7FN.js +2 -0
  30. package/dist/chunks/chunk-7E6T7GP5.js +2 -0
  31. package/dist/chunks/chunk-7ED24PP6.js +2 -0
  32. package/dist/chunks/chunk-7HPDGZOR.js +86 -0
  33. package/dist/chunks/chunk-7KWD2I6W.js +2 -0
  34. package/dist/chunks/chunk-7PXZ4X4P.js +2 -0
  35. package/dist/chunks/chunk-A6USMRWK.js +2 -0
  36. package/dist/chunks/chunk-ABD5M2D2.js +2 -0
  37. package/dist/chunks/chunk-ACYFMLWG.js +10 -0
  38. package/dist/chunks/chunk-AN525SPP.js +6 -0
  39. package/dist/chunks/chunk-APB2STJK.js +2 -0
  40. package/dist/chunks/chunk-AY64VY4E.js +2 -0
  41. package/dist/chunks/{chunk-G6JMQGX7.js → chunk-B7RFL4N2.js} +1 -1
  42. package/dist/chunks/chunk-BLXEAZCQ.js +12 -0
  43. package/dist/chunks/chunk-D74JEERO.js +5 -0
  44. package/dist/chunks/{chunk-U2YMBCX7.js → chunk-DARVPBZ4.js} +1 -1
  45. package/dist/chunks/chunk-DBK66CJP.js +8 -0
  46. package/dist/chunks/chunk-DDMZSZFL.js +1 -0
  47. package/dist/chunks/chunk-DIO5CB6U.js +2 -0
  48. package/dist/chunks/chunk-DMFUEUAZ.js +5 -0
  49. package/dist/chunks/chunk-DMVD2RFZ.js +2 -0
  50. package/dist/chunks/chunk-DUURYZOI.js +2 -0
  51. package/dist/chunks/chunk-DZUAT3TP.js +1 -0
  52. package/dist/chunks/chunk-EIEZHFIW.js +6 -0
  53. package/dist/chunks/chunk-EIRYMSEG.js +19 -0
  54. package/dist/chunks/{chunk-R27YGT77.js → chunk-EKM2D7JU.js} +1 -1
  55. package/dist/chunks/chunk-EQFGBL3O.js +2 -0
  56. package/dist/chunks/chunk-EYPCBBMS.js +2 -0
  57. package/dist/chunks/chunk-F4KOGISR.js +10 -0
  58. package/dist/chunks/chunk-F74GBN6K.js +2 -0
  59. package/dist/chunks/chunk-FEAKTSRS.js +2 -0
  60. package/dist/chunks/chunk-FFRFSDBM.js +2 -0
  61. package/dist/chunks/chunk-FTEOCCPB.js +23 -0
  62. package/dist/chunks/chunk-FUOEIDMA.js +8 -0
  63. package/dist/chunks/{chunk-BQAF5P7K.js → chunk-FV2R5RUN.js} +2 -2
  64. package/dist/chunks/chunk-FWIPHEVA.js +12 -0
  65. package/dist/chunks/chunk-FY5KHLMW.js +2 -0
  66. package/dist/chunks/chunk-G3RXYI2L.js +6 -0
  67. package/dist/chunks/chunk-GJ2ZJFDD.js +2 -0
  68. package/dist/chunks/chunk-GLDYJM7O.js +1 -0
  69. package/dist/chunks/chunk-GPVCOEUH.js +2 -0
  70. package/dist/chunks/chunk-GW766ZSO.js +5 -0
  71. package/dist/chunks/chunk-GWCHDF2C.js +4 -0
  72. package/dist/chunks/chunk-GZ7M5XBP.js +2 -0
  73. package/dist/chunks/chunk-H6IW2R22.js +140 -0
  74. package/dist/chunks/chunk-HCYX6RHP.js +2 -0
  75. package/dist/chunks/chunk-HDL5YSAA.js +2 -0
  76. package/dist/chunks/chunk-HIOKCIL7.js +2 -0
  77. package/dist/chunks/{chunk-IODUCRBA.js → chunk-HY3GOBFJ.js} +1 -1
  78. package/dist/chunks/chunk-HZEIRHEB.js +2 -0
  79. package/dist/chunks/chunk-I2NXNMRZ.js +2 -0
  80. package/dist/chunks/chunk-I7AQMAQI.js +33 -0
  81. package/dist/chunks/chunk-IZ6DLEVY.js +2 -0
  82. package/dist/chunks/chunk-J2TWKFML.js +1871 -0
  83. package/dist/chunks/chunk-JDEEWOD7.js +2 -0
  84. package/dist/chunks/chunk-JFXWI3EN.js +6 -0
  85. package/dist/chunks/chunk-JYKRR7E5.js +5 -0
  86. package/dist/chunks/chunk-KCJVFLBB.js +2 -0
  87. package/dist/chunks/{chunk-5CMKGD43.js → chunk-KG325WTN.js} +1 -1
  88. package/dist/chunks/chunk-KUERKVEU.js +3 -0
  89. package/dist/chunks/chunk-KVTBX2UP.js +2 -0
  90. package/dist/chunks/chunk-L3KS6MOV.js +2 -0
  91. package/dist/chunks/chunk-L6K7ERG5.js +2 -0
  92. package/dist/chunks/{chunk-MH3LHSGX.js → chunk-LQQNBVEB.js} +1 -1
  93. package/dist/chunks/{chunk-BTI4N7YO.js → chunk-M4JWQSV7.js} +1 -1
  94. package/dist/chunks/chunk-MQULU465.js +2 -0
  95. package/dist/chunks/chunk-MULXCKG7.js +10 -0
  96. package/dist/chunks/chunk-N4FFQPLR.js +2 -0
  97. package/dist/chunks/chunk-N73MU2C3.js +2 -0
  98. package/dist/chunks/chunk-NHQ36THU.js +3 -0
  99. package/dist/chunks/chunk-O6ULLQJ6.js +2 -0
  100. package/dist/chunks/chunk-O72BSKSO.js +2 -0
  101. package/dist/chunks/chunk-OGDADQGH.js +143 -0
  102. package/dist/chunks/chunk-OIUTWU6K.js +2 -0
  103. package/dist/chunks/chunk-OLLLZVHF.js +2 -0
  104. package/dist/chunks/chunk-OPNRWESL.js +3 -0
  105. package/dist/chunks/chunk-OQKJGTTO.js +4 -0
  106. package/dist/chunks/chunk-OQPJ7FJF.js +9 -0
  107. package/dist/chunks/{chunk-TERVLCRG.js → chunk-OS3LO5J3.js} +1 -1
  108. package/dist/chunks/chunk-OUVIWDL2.js +2 -0
  109. package/dist/chunks/chunk-PCSIOUHF.js +7 -0
  110. package/dist/chunks/chunk-PF5R6CMP.js +21 -0
  111. package/dist/chunks/chunk-PPAPVGJP.js +3 -0
  112. package/dist/chunks/chunk-PRGBLQVH.js +2 -0
  113. package/dist/chunks/chunk-PSGGOZFM.js +2 -0
  114. package/dist/chunks/chunk-PUZQU66L.js +2 -0
  115. package/dist/chunks/{chunk-NOTXPD2T.js → chunk-Q2QL6UWN.js} +1 -1
  116. package/dist/chunks/chunk-Q4TBTRIG.js +2 -0
  117. package/dist/chunks/chunk-Q5LEXXJG.js +16 -0
  118. package/dist/chunks/chunk-QDC4OW3S.js +2 -0
  119. package/dist/chunks/chunk-QEFHOJFE.js +7 -0
  120. package/dist/chunks/chunk-QHWGQ3A4.js +5 -0
  121. package/dist/chunks/chunk-QIKWJ2AA.js +11 -0
  122. package/dist/chunks/chunk-QNG27G3T.js +6 -0
  123. package/dist/chunks/chunk-QOGJAQDO.js +3 -0
  124. package/dist/chunks/chunk-QOTVNQDI.js +4 -0
  125. package/dist/chunks/{chunk-NNIRIUSY.js → chunk-RAXOSUSW.js} +1 -1
  126. package/dist/chunks/chunk-RNIAFXMB.js +50 -0
  127. package/dist/chunks/{chunk-SHQOIROR.js → chunk-S5ESN275.js} +3 -3
  128. package/dist/chunks/chunk-SDAUS5PY.js +2 -0
  129. package/dist/chunks/chunk-SDXFLO7J.js +5 -0
  130. package/dist/chunks/chunk-SH5CBAFC.js +2 -0
  131. package/dist/chunks/chunk-SWUEFLOH.js +2 -0
  132. package/dist/chunks/chunk-SYUKES6H.js +3 -0
  133. package/dist/chunks/chunk-T5AACNJI.js +2 -0
  134. package/dist/chunks/chunk-TRQQNFMO.js +4 -0
  135. package/dist/chunks/chunk-TVQAPBLZ.js +2 -0
  136. package/dist/chunks/chunk-UCPGRPWY.js +2 -0
  137. package/dist/chunks/chunk-UGL7WF3W.js +2 -0
  138. package/dist/chunks/{chunk-C6D4WAYN.js → chunk-UKMA4R6X.js} +2 -2
  139. package/dist/chunks/{chunk-4WEUCGJ3.js → chunk-VRIEKBBH.js} +1 -1
  140. package/dist/chunks/chunk-VYLGI3IH.js +13 -0
  141. package/dist/chunks/chunk-W45RKGM6.js +1 -0
  142. package/dist/chunks/chunk-WJ43MJ3F.js +2 -0
  143. package/dist/chunks/chunk-WMKYHXVM.js +3 -0
  144. package/dist/chunks/chunk-WN3V6KDN.js +3 -0
  145. package/dist/chunks/chunk-X4OSOOSU.js +3 -0
  146. package/dist/chunks/chunk-XDQMGUWL.js +2 -0
  147. package/dist/chunks/chunk-XTFPDQMH.js +3 -0
  148. package/dist/chunks/chunk-XVDFJ3ZF.js +2 -0
  149. package/dist/chunks/chunk-XW6HGSIT.js +8 -0
  150. package/dist/chunks/chunk-XXYGGNVM.js +2 -0
  151. package/dist/chunks/chunk-Y4OWBBDD.js +184 -0
  152. package/dist/chunks/chunk-YBT2NB32.js +2 -0
  153. package/dist/chunks/{chunk-QRAKXZOC.js → chunk-YOBN7KTF.js} +6 -6
  154. package/dist/chunks/chunk-YOQRYNLP.js +2 -0
  155. package/dist/chunks/chunk-YY7LEQGP.js +2 -0
  156. package/dist/chunks/chunk-Z4Z5UOZM.js +22 -0
  157. package/dist/chunks/chunk-Z54O534A.js +3 -0
  158. package/dist/chunks/chunk-ZCHXGRRU.js +2 -0
  159. package/dist/chunks/chunk-ZFSHBFG5.js +40 -0
  160. package/dist/chunks/chunk-ZGTOK7ZK.js +12 -0
  161. package/dist/chunks/{chunk-Q7AXHFZV.js → chunk-ZRDGQDZL.js} +1 -1
  162. package/dist/chunks/chunk-ZUJ3XUCP.js +2 -0
  163. package/dist/chunks/chunk-ZZWAQBA2.js +2 -0
  164. package/dist/chunks/cli-X25RSO2X.js +2 -0
  165. package/dist/chunks/configuration-command-6C5UO7GE.js +2 -0
  166. package/dist/chunks/connected-app-executor-IVLGQP65.js +2 -0
  167. package/dist/chunks/connected-evidence-GH2ATNEX.js +2 -0
  168. package/dist/chunks/connection-HTF6CC7M.js +2 -0
  169. package/dist/chunks/{continual-TTGJ6YTR.js → continual-6CQAMTTR.js} +3 -3
  170. package/dist/chunks/core-commands-A2DGGIPS.js +2 -0
  171. package/dist/chunks/datasets-7BNMVJOY.js +2 -0
  172. package/dist/chunks/desktop-test-3CUHVLXV.js +3 -0
  173. package/dist/chunks/dist-OMGUJYPD.js +2 -0
  174. package/dist/chunks/dist-VYC5VMQB.js +2 -0
  175. package/dist/chunks/{dist-FAJX2UBW.js → dist-ZVJPJLXR.js} +1 -1
  176. package/dist/chunks/enclave-QS4BUNDU.js +2 -0
  177. package/dist/chunks/evaluation-coordination-XEF5L7KZ.js +2 -0
  178. package/dist/chunks/experiment-improvements-KRX2DP27.js +2 -0
  179. package/dist/chunks/experiments-DFGQYA4O.js +2 -0
  180. package/dist/chunks/experiments-VFQGE4HC.js +2 -0
  181. package/dist/chunks/{extension-DWMY6D2R.js → extension-XKXXOP5N.js} +1 -1
  182. package/dist/chunks/{help-A72QDRNG.js → help-S7THC6IE.js} +1 -1
  183. package/dist/chunks/host-profile-evaluation-tools-NRLXL2S5.js +2 -0
  184. package/dist/chunks/host-profile-external-dataset-K3ICDHIP.js +2 -0
  185. package/dist/chunks/hosted-app-server-composition-HPL3CRXN.js +2 -0
  186. package/dist/chunks/hosted-experiment-improvement-NFSVS5TU.js +3 -0
  187. package/dist/chunks/hosted-harness-runtime-723S5ZSH.js +2 -0
  188. package/dist/chunks/hosted-profile-candidate-2S5LFUWD.js +3 -0
  189. package/dist/chunks/hosted-profile-compiler-2DQIFSXW.js +2 -0
  190. package/dist/chunks/hosted-profile-evaluation-control-76BTRTYD.js +2 -0
  191. package/dist/chunks/hosted-profile-evaluation-inspection-V6Z3A5XJ.js +3 -0
  192. package/dist/chunks/hosted-profile-evaluation-preparation-IDJYREW3.js +3 -0
  193. package/dist/chunks/hosted-tasksets-ANAE2PIW.js +2 -0
  194. package/dist/chunks/human-review-WR777ODH.js +2 -0
  195. package/dist/chunks/import-MLZUHITH.js +4 -0
  196. package/dist/chunks/learning-ACEVFL5M.js +2 -0
  197. package/dist/chunks/local-harness-improvement-runtime-JIQ6ZVDW.js +2 -0
  198. package/dist/chunks/local-harness-taskset-review-XVYTGAGK.js +2 -0
  199. package/dist/chunks/local-scope-HVF2GZ5W.js +2 -0
  200. package/dist/chunks/model-projects-QPO22JPA.js +2 -0
  201. package/dist/chunks/opchat-T4QTNEIY.js +3 -0
  202. package/dist/chunks/organizations-75L5DZDV.js +2 -0
  203. package/dist/chunks/{profile-NOZ6TVXL.js → profile-TFZMUEDR.js} +1 -1
  204. package/dist/chunks/profile-training-source-6GOT7AHM.js +2 -0
  205. package/dist/chunks/project-action-payload-7VGL7OER.js +2 -0
  206. package/dist/chunks/project-agent-6RRO233B.js +2 -0
  207. package/dist/chunks/published-experiment-source-DZFENAQA.js +2 -0
  208. package/dist/chunks/refiner-profile-service-UUIWFJVT.js +2 -0
  209. package/dist/chunks/runtime-A7OZXM43.js +6 -0
  210. package/dist/chunks/sandbox-command-IU5XFTJP.js +2 -0
  211. package/dist/chunks/{sandbox-template-LKGBDVJ4.js → sandbox-template-C4V6T36U.js} +1 -1
  212. package/dist/chunks/saved-work-6BMBFP43.js +2 -0
  213. package/dist/chunks/send-turn-XTAIS2JN.js +2 -0
  214. package/dist/chunks/src-INHPJ63Z.js +326 -0
  215. package/dist/chunks/{src-ZWJ5IO7A.js → src-LMC3K6LH.js} +1 -1
  216. package/dist/chunks/standalone-experiment-turn-owner-JCY5LL5R.js +2 -0
  217. package/dist/chunks/store-chat-workflows-S72HZXQR.js +18 -0
  218. package/dist/chunks/store-continual-support-reviews-HHA6NX7K.js +7 -0
  219. package/dist/chunks/store-conversation-serving-KPC62UEY.js +2 -0
  220. package/dist/chunks/store-create-improve-QV54XIZW.js +40 -0
  221. package/dist/chunks/store-datasets-RXJ33SUN.js +86 -0
  222. package/dist/chunks/store-evaluation-results-3F3P527G.js +7 -0
  223. package/dist/chunks/store-harness-evaluation-review-settings-I2R3HPO3.js +29 -0
  224. package/dist/chunks/store-harness-memory-VINCZ4GK.js +17 -0
  225. package/dist/chunks/store-harness-refinement-candidates-EA5KFQPH.js +21 -0
  226. package/dist/chunks/store-harness-workspaces-XUM4Z66X.js +2 -0
  227. package/dist/chunks/store-human-review-RAH7WMIP.js +7 -0
  228. package/dist/chunks/store-learned-preference-migration-validation-4CI2IRUF.js +2 -0
  229. package/dist/chunks/store-learning-WLG6KFIO.js +2 -0
  230. package/dist/chunks/store-learning-credentials-WZQJ4HPJ.js +2 -0
  231. package/dist/chunks/store-local-experiments-5LUJR7GI.js +97 -0
  232. package/dist/chunks/store-model-batch-review-YEGX327M.js +2 -0
  233. package/dist/chunks/store-model-configuration-5ZURQATB.js +3 -0
  234. package/dist/chunks/store-preference-comparison-LV32MHVL.js +6 -0
  235. package/dist/chunks/store-schedules-VGTEQVKH.js +53 -0
  236. package/dist/chunks/store-sidebar-file-bookmarks-VB5GTLFY.js +18 -0
  237. package/dist/chunks/store-sidebar-preferences-GWIOG2NH.js +16 -0
  238. package/dist/chunks/store-subagents-T7R2Z6TB.js +67 -0
  239. package/dist/chunks/store-task-inbox-JJTBW76C.js +33 -0
  240. package/dist/chunks/store-task-inventory-OB3F2APC.js +10 -0
  241. package/dist/chunks/store-taskset-drafts-EKQWWFYQ.js +9 -0
  242. package/dist/chunks/store-training-G6YLFSIR.js +70 -0
  243. package/dist/chunks/store-training-jobs-RC46YBF6.js +19 -0
  244. package/dist/chunks/store-training-models-6BA43IPP.js +49 -0
  245. package/dist/chunks/store-usage-IE2U2FD3.js +63 -0
  246. package/dist/chunks/store-work-evidence-QQDKM5AQ.js +8 -0
  247. package/dist/chunks/taskset-EQRFQBYM.js +2 -0
  248. package/dist/chunks/taskset-packages-XC6HEE3K.js +2 -0
  249. package/dist/chunks/{teams-bot-H7XT23XB.js → teams-bot-EAPGPTHZ.js} +1 -1
  250. package/dist/chunks/training-UF6RPI4T.js +2 -0
  251. package/dist/chunks/web-search-CZ3NCLPY.js +2 -0
  252. package/dist/chunks/workspaces-EKKE5NAC.js +2 -0
  253. package/dist/cli.js +1 -1
  254. package/dist/index.js +1 -1
  255. package/dist/web/assets/{App-CTlAPuCY.css → App-CaRMZoxo.css} +1 -1
  256. package/dist/web/assets/App-s-CJswyt.js +154 -0
  257. package/dist/web/assets/{AppDialog-CPHTPqrx.js → AppDialog-t2Fx5tK3.js} +1 -1
  258. package/dist/web/assets/{AppTerminalPanel-BVj5Tj93.js → AppTerminalPanel-Dj1Y32oI.js} +2 -2
  259. package/dist/web/assets/{AppsView-O69zEBY3.js → AppsView-BYE5EBDJ.js} +1 -1
  260. package/dist/web/assets/{BrowserSidebar-Pr_Kpe8p.js → BrowserSidebar-jhWi4rVm.js} +1 -1
  261. package/dist/web/assets/{CartesianChart-JPqo6YOf.js → CartesianChart-C1DIx0Ia.js} +1 -1
  262. package/dist/web/assets/{CollaborationTabs-CAJcQFn2.js → CollaborationTabs-Bdr-HmOL.js} +1 -1
  263. package/dist/web/assets/{CommandMenu-B-w53n9A.js → CommandMenu-Ux2yOHAc.js} +1 -1
  264. package/dist/web/assets/{CommunityView-DbZKK8_P.js → CommunityView-DPEeVKFn.js} +1 -1
  265. package/dist/web/assets/{ComposerCreateImproveStrip-3_083PF4.js → ComposerCreateImproveStrip-CEgh4OtN.js} +1 -1
  266. package/dist/web/assets/{GetStartedView-D7JGm_6c.js → GetStartedView-CFHP0AaI.js} +1 -1
  267. package/dist/web/assets/{HostedModelLearningReview-DwgMfZ7_.js → HostedModelLearningReview-D8BGTPVN.js} +1 -1
  268. package/dist/web/assets/{HostedModelLearningSettings-JRfQadRl.js → HostedModelLearningSettings-JS1S7vNO.js} +1 -1
  269. package/dist/web/assets/{LabModelVersionDetailPage-BUYflJY_.js → LabModelVersionDetailPage-Dx5Q3xV2.js} +1 -1
  270. package/dist/web/assets/{LabSkillSidebar-BBiqk7Rf.js → LabSkillSidebar-BxffN-pN.js} +1 -1
  271. package/dist/web/assets/{LabsRoute-Ci6vUnSd.js → LabsRoute-CyYF8-dw.js} +4 -4
  272. package/dist/web/assets/{MainChatThread-BQK3oI2N.js → MainChatThread-DZpcFRFl.js} +2 -2
  273. package/dist/web/assets/MainPane-5DTtwVCk.js +65 -0
  274. package/dist/web/assets/MainPane-BIM_UJ3q.css +1 -0
  275. package/dist/web/assets/{MarkdownText-DOdOVFXL.js → MarkdownText-BR4V6lNO.js} +21 -21
  276. package/dist/web/assets/{NativeSkillSidebar-CRI_ri8z.js → NativeSkillSidebar-DU9IEgIO.js} +1 -1
  277. package/dist/web/assets/{NewExperienceSwitcher-DhYtfE68.js → NewExperienceSwitcher-mIy6FzCj.js} +1 -1
  278. package/dist/web/assets/{NewProjectDialog-D8sy1gOz.js → NewProjectDialog-RfTZTHxl.js} +1 -1
  279. package/dist/web/assets/{OutputsPage-CbWgrhXA.js → OutputsPage-Cr1Spf7S.js} +1 -1
  280. package/dist/web/assets/{ProjectsPage-DLB67lyA.js → ProjectsPage-CE6QUB-b.js} +1 -1
  281. package/dist/web/assets/{RightChatPanelStack-ozSKnDyX.js → RightChatPanelStack-T6VRWuHo.js} +1 -1
  282. package/dist/web/assets/RightSidebarHomePanel-CK0rP3WT.js +1 -0
  283. package/dist/web/assets/{ScheduledWorkPage-Cafv_QnR.js → ScheduledWorkPage-vOrYv8pp.js} +1 -1
  284. package/dist/web/assets/SettingsView-DCKVrfjj.js +5 -0
  285. package/dist/web/assets/SettingsView-Dulr_xlq.css +1 -0
  286. package/dist/web/assets/{TeamChatView-vIrmXOY_.js → TeamChatView-Bwrjr-vk.js} +2 -2
  287. package/dist/web/assets/{TerminalOverlay-CAmF__Dq.js → TerminalOverlay-DhPoKZAq.js} +1 -1
  288. package/dist/web/assets/TrainingCreationPanel-BXHfohNm.js +1 -0
  289. package/dist/web/assets/{TrainingDraftPanel-D7XZePAk.js → TrainingDraftPanel-C9cRX5qf.js} +1 -1
  290. package/dist/web/assets/{UsageSettingsSection-CYTmp7PG.js → UsageSettingsSection-CrdcSGeW.js} +1 -1
  291. package/dist/web/assets/WorkSidebarPanel-DSSikNFQ.js +1 -0
  292. package/dist/web/assets/{WorkspaceDiffPanel-DQGoIjH9.js → WorkspaceDiffPanel-BAFo0CPN.js} +6 -6
  293. package/dist/web/assets/{WorkspaceEnvironmentMenu-c1pHDskn.js → WorkspaceEnvironmentMenu-BVHAhwnJ.js} +1 -1
  294. package/dist/web/assets/WorkspaceGitDialogs-CwVoiDQ2.js +1 -0
  295. package/dist/web/assets/{WorkspaceMonacoEditor-BCKzvSj2.js → WorkspaceMonacoEditor-TxLyhzNp.js} +3 -3
  296. package/dist/web/assets/{arrow-up-right-CP4hZdrJ.js → arrow-up-right-C9aE8Mfz.js} +1 -1
  297. package/dist/web/assets/{chunk-NOJECMB7-Bhcms-w5.js → chunk-P3BRSSRD-DUGfuKA8.js} +1 -1
  298. package/dist/web/assets/{clipboard-BgrXorn-.js → clipboard-Dk158Qp4.js} +1 -1
  299. package/dist/web/assets/{cloud-upload-B_zYztb6.js → cloud-upload-k9eqBsHr.js} +1 -1
  300. package/dist/web/assets/{cssMode-DanjGgA8.js → cssMode-CO35ARZp.js} +1 -1
  301. package/dist/web/assets/{folder-open-CdVKbtGq.js → folder-open-sYgceW_f.js} +1 -1
  302. package/dist/web/assets/{folder-plus-Cc5KElB6.js → folder-plus-CS0R49m9.js} +1 -1
  303. package/dist/web/assets/{git-commit-horizontal-CjGIIgRi.js → git-commit-horizontal-DrGxH2h4.js} +1 -1
  304. package/dist/web/assets/{htmlMode-DRGDF_UL.js → htmlMode-REMmzdfq.js} +1 -1
  305. package/dist/web/assets/index-3iPNbbER.css +1 -0
  306. package/dist/web/assets/{index-BE-wXZ5R.js → index-C8aCGagb.js} +2 -2
  307. package/dist/web/assets/{info-BLj0RvhA.js → info-DLdbiUrh.js} +1 -1
  308. package/dist/web/assets/{jsonMode-CCu0j2GD.js → jsonMode-KEdMfkIf.js} +1 -1
  309. package/dist/web/assets/{lspLanguageFeatures-s_Lhm7P6.js → lspLanguageFeatures-5KZwEoxW.js} +1 -1
  310. package/dist/web/assets/{minimize-2-Cyg_zD9z.js → minimize-2-CqcI4zcM.js} +1 -1
  311. package/dist/web/assets/{monaco.contribution-CY7mRgOB.js → monaco.contribution-BJGj65F9.js} +2 -2
  312. package/dist/web/assets/{monaco.contribution-CAzXvYkn.js → monaco.contribution-Cly9Wt7L.js} +2 -2
  313. package/dist/web/assets/{monaco.contribution-mUPNK9ra.js → monaco.contribution-DO10L0zW.js} +2 -2
  314. package/dist/web/assets/{monaco.contribution-aUeLcBEg.js → monaco.contribution-omszXBEj.js} +2 -2
  315. package/dist/web/assets/{monitor-DZvOs_wC.js → monitor-BFVCcbxp.js} +1 -1
  316. package/dist/web/assets/{play-BJPzemuY.js → play-C469pVZq.js} +1 -1
  317. package/dist/web/assets/{python-B_qnnVaG.js → python-Dw0YcVy9.js} +1 -1
  318. package/dist/web/assets/{save-BDy9tA3E.js → save-CtSjPydi.js} +1 -1
  319. package/dist/web/assets/{square-Cb2c5td4.js → square-BuImvLhT.js} +1 -1
  320. package/dist/web/assets/{toggleHighContrast-MhO1JLyR.js → toggleHighContrast-DjCO9lIP.js} +1 -1
  321. package/dist/web/assets/{tsMode-DfBXJb9V.js → tsMode-BAOnxKd6.js} +1 -1
  322. package/dist/web/assets/{upload-D56kThRh.js → upload-2JkFZo3h.js} +1 -1
  323. package/dist/web/assets/{useLocalAgentSchedules-DMnGfswi.js → useLocalAgentSchedules-BNqAisfS.js} +1 -1
  324. package/dist/web/assets/useProviderSettings-C4L4wDoh.js +5 -0
  325. package/dist/web/assets/{useProviderSettings-Bw-csWbH.css → useProviderSettings-CmL_BaxP.css} +1 -1
  326. package/dist/web/assets/{useSessionTurnCache-ClAY8gze.js → useSessionTurnCache-BHU2-Jmz.js} +1 -1
  327. package/dist/web/assets/{wifi-off-C9lWJmVm.js → wifi-off-CpOAH62M.js} +1 -1
  328. package/dist/web/assets/{workers-BYzrH8by.js → workers-0QvlA2T5.js} +1 -1
  329. package/dist/web/assets/{yaml-D3T8UkT3.js → yaml-BK3qxo7D.js} +1 -1
  330. package/dist/web/index.html +2 -2
  331. package/package.json +1 -1
  332. package/dist/chunks/actions-command-WTFZA7LF.js +0 -2
  333. package/dist/chunks/app-server-runtime-2RM3N4I6.js +0 -2
  334. package/dist/chunks/apps-KDNWYO3G.js +0 -2
  335. package/dist/chunks/chunk-2DFR7PJ4.js +0 -2460
  336. package/dist/chunks/chunk-4CRM2ADK.js +0 -2
  337. package/dist/chunks/chunk-55G6B54U.js +0 -6
  338. package/dist/chunks/chunk-73G5UYBB.js +0 -12
  339. package/dist/chunks/chunk-ARQEJOEK.js +0 -33
  340. package/dist/chunks/chunk-CGBI2VYJ.js +0 -2
  341. package/dist/chunks/chunk-GGIG3XU7.js +0 -3
  342. package/dist/chunks/chunk-JIMU3KDA.js +0 -24
  343. package/dist/chunks/chunk-JUJSA7KI.js +0 -22
  344. package/dist/chunks/chunk-K5SBVO3B.js +0 -195
  345. package/dist/chunks/chunk-KD3QVRIJ.js +0 -21
  346. package/dist/chunks/chunk-L4235TRQ.js +0 -140
  347. package/dist/chunks/chunk-MVF3F5QS.js +0 -2
  348. package/dist/chunks/chunk-OULAKUIN.js +0 -2
  349. package/dist/chunks/chunk-OWNLDB2O.js +0 -2
  350. package/dist/chunks/chunk-QDHMP5FS.js +0 -2
  351. package/dist/chunks/chunk-QKD5OMDI.js +0 -2
  352. package/dist/chunks/chunk-R2BSIRYL.js +0 -3
  353. package/dist/chunks/chunk-STDMBJOQ.js +0 -9
  354. package/dist/chunks/chunk-T4QGDQHP.js +0 -4
  355. package/dist/chunks/chunk-USMZT5FZ.js +0 -18
  356. package/dist/chunks/chunk-VJEZPDBS.js +0 -5
  357. package/dist/chunks/chunk-WDFLCNRC.js +0 -8
  358. package/dist/chunks/chunk-WZYRAR7X.js +0 -16
  359. package/dist/chunks/chunk-YDT7L3VZ.js +0 -24
  360. package/dist/chunks/chunk-YUPBAWBJ.js +0 -554
  361. package/dist/chunks/cli-465VC2WP.js +0 -2
  362. package/dist/chunks/configuration-command-LAAP2EXT.js +0 -2
  363. package/dist/chunks/connected-evidence-XM626247.js +0 -2
  364. package/dist/chunks/core-commands-W7EK552V.js +0 -2
  365. package/dist/chunks/datasets-QJWYTTQL.js +0 -2
  366. package/dist/chunks/desktop-test-3B2D34NF.js +0 -3
  367. package/dist/chunks/dist-HUAE2KFZ.js +0 -2
  368. package/dist/chunks/evaluation-coordination-2MONR4AX.js +0 -2
  369. package/dist/chunks/experiment-improvements-WVQ5FK46.js +0 -2
  370. package/dist/chunks/experiments-S5UQ32QB.js +0 -2
  371. package/dist/chunks/hosted-experiment-improvement-2OWOQLHC.js +0 -3
  372. package/dist/chunks/hosted-harness-runtime-TGFMAV7W.js +0 -2
  373. package/dist/chunks/hosted-profile-candidate-WQSI6HZO.js +0 -3
  374. package/dist/chunks/hosted-profile-compiler-Z2A4TEA6.js +0 -2
  375. package/dist/chunks/hosted-profile-evaluation-control-FKGARUEE.js +0 -2
  376. package/dist/chunks/hosted-profile-evaluation-inspection-QOY2JKV4.js +0 -3
  377. package/dist/chunks/hosted-profile-evaluation-preparation-WVP6CALP.js +0 -3
  378. package/dist/chunks/human-review-TGHQKXFZ.js +0 -2
  379. package/dist/chunks/import-4UE5XNSG.js +0 -4
  380. package/dist/chunks/learning-R2XBMMEM.js +0 -2
  381. package/dist/chunks/opchat-WULL6CUP.js +0 -3
  382. package/dist/chunks/organizations-I37HISVX.js +0 -2
  383. package/dist/chunks/project-agent-T6XKC54C.js +0 -2
  384. package/dist/chunks/sandbox-command-STB47FRY.js +0 -2
  385. package/dist/chunks/src-T3KWWCAH.js +0 -322
  386. package/dist/chunks/taskset-RNYDR4GS.js +0 -2
  387. package/dist/chunks/training-M6FAPRSJ.js +0 -2
  388. package/dist/chunks/workspaces-MFZ3OO6O.js +0 -2
  389. package/dist/web/assets/App-CLFfy_Av.js +0 -154
  390. package/dist/web/assets/MainPane-D3ojiN-p.js +0 -18
  391. package/dist/web/assets/MainPane-DOWsSew1.css +0 -1
  392. package/dist/web/assets/RightSidebarHomePanel-CKs3OwhD.js +0 -1
  393. package/dist/web/assets/SettingsView-BnANbPLS.css +0 -1
  394. package/dist/web/assets/SettingsView-T1vYDPjh.js +0 -5
  395. package/dist/web/assets/TrainingCreationPanel-D75K0yk5.js +0 -1
  396. package/dist/web/assets/WorkSidebarPanel-CODMjVHY.js +0 -1
  397. package/dist/web/assets/WorkspaceGitDialogs-DrVtapQQ.js +0 -1
  398. package/dist/web/assets/index-B5re-RJy.css +0 -1
  399. package/dist/web/assets/useProviderSettings-Bv5B9eNk.js +0 -5
@@ -0,0 +1,2 @@
1
+ import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
+ import{pa as t}from"./chunk-QOGJAQDO.js";import{b as e}from"./chunk-ES2ISFJC.js";var n=e.string().trim().min(1).max(240),a=e.object({id:n,revision:e.number().int().positive(),ownerInstanceId:n,teamId:n,profileId:n,projectId:n,hostedModelId:n,role:t,roleTargetId:n,expectedBindingId:n,policyId:n.nullable(),authorizedConfigurationHash:e.string().length(64).nullable(),enabled:e.boolean(),updatedAt:e.string().datetime()}).strict(),o=e.object({id:n,grantId:n,revision:e.number().int().positive(),jobId:n,artifactHash:e.string().length(64),priorBindingId:n,bindingId:n.nullable(),restoredBindingId:n.nullable(),status:e.enum(["prepared","binding","canary","active","superseded","rolling_back","rolled_back","failed"]),leaseId:n,canarySeconds:e.number().int().min(30).max(600),activatedAt:e.string().datetime().nullable(),failure:e.string().max(2e3).nullable(),createdAt:e.string().datetime(),updatedAt:e.string().datetime()}).strict();export{a,o as b};
@@ -0,0 +1,2 @@
1
+ import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
+ import{e as k}from"./chunk-3RCRSMWZ.js";import{a as h,c as v}from"./chunk-PSGGOZFM.js";import{Da as g,G as _,b as w,sb as j,ya as p}from"./chunk-QOTVNQDI.js";import{v as y}from"./chunk-WJ43MJ3F.js";import{m as S}from"./chunk-3QIB5FXI.js";import{b as s}from"./chunk-ES2ISFJC.js";import{q as P}from"./chunk-H7IWJN7L.js";import{a}from"./chunk-FTQLQJQV.js";function M(e){if(e.kind==="command"||e.kind==="file_change")return!0;if(e.kind!=="permissions")return!1;try{let t=JSON.parse(e.detail);return!t.questions&&Array.isArray(t.options)&&t.options.some(r=>r.kind==="allow_once")&&t.options.some(r=>r.kind==="reject_once")}catch{return!1}}a(M,"remoteApprovalSupported");import{createHash as D}from"node:crypto";import{realpath as x,stat as O}from"node:fs/promises";var E=a(e=>D("sha256").update(w("POST","/local/ponder-project",e)).digest("hex"),"hash"),f=s.object({projectId:s.string().min(1).max(200),name:s.string().min(1).max(300),cwd:s.string().min(1).max(8192),sourceFolders:s.array(s.object({path:s.string().min(1).max(8192),realpath:s.string().min(1).max(8192)}).strict()).min(1).max(1e3),configurationHash:s.string().regex(/^[a-f0-9]{64}$/),revision:s.string().regex(/^[a-f0-9]{64}$/)}).strict();function G(e){let t=Object.values(P(e,"saved_local_projects"));if(t.length>p)throw new Error("ponder_desktop_project_sharing_limit_exceeded");return t.map(r=>S.parse(r.value))}a(G,"readPonderLocalProjects");async function U(e){if(e.hiddenFromDefaultSidebar)throw new Error("ponder_desktop_project_unavailable");let t=[...new Set([...e.sourceFolders??[e.path],e.path,...e.repoPath?[e.repoPath]:[]])];if(!t.length||t.length>1e3)throw new Error("ponder_desktop_project_folder_limit_exceeded");let r=await x(e.workspacePath);if(!(await O(r)).isDirectory())throw new Error("ponder_desktop_project_unavailable");let o=[];for(let c of t){let i=await x(c);if(!(await O(i)).isDirectory())throw new Error("ponder_desktop_project_unavailable");o.push({path:c,realpath:i})}let n={projectId:e.id,name:e.name,cwd:r,sourceFolders:o,configurationHash:E({id:e.id,name:e.name,path:e.path,workspacePath:e.workspacePath,repoPath:e.repoPath,sourceFolders:e.sourceFolders??null,hiddenFromDefaultSidebar:e.hiddenFromDefaultSidebar??!1})};return f.parse({...n,revision:E(n)})}a(U,"capturePonderProjectSnapshot");import{createHash as C}from"node:crypto";var R=j,m=s.object({revision:s.number().int().positive(),owner:h,authority:R,project:f,shared:s.boolean(),updatedAt:s.string().datetime()}).strict(),b=m.omit({revision:!0}),u=a(e=>C("sha256").update(JSON.stringify(h.parse(e))).digest("hex"),"ownerKey");function N(e,t,r){let o=h.parse(t),n=R.parse(r),c=e.get("SELECT payload FROM ponder_desktop_authority WHERE id = 1"),i=c?g.parse(JSON.parse(c.payload)):null;if(!i||i.state!=="attached"||Date.parse(i.leaseExpiresAt)<=Date.now()||i.authorizationRevision!==n.authorizationRevision||!Object.entries(n.scope).every(([d,l])=>i.scope[d]===l)||i.scope.installationId!==o.installationId||i.scope.profileId!==o.profileId||i.scope.ownerUserId!==o.ownerUserId||i.scope.teamId!==o.teamId)throw new Error("ponder_desktop_project_authority_changed")}a(N,"assertAuthority");function re(e,t){let r=b.parse(t);N(e,r.owner,r.authority);let o=u(r.owner),n=e.get("SELECT payload FROM ponder_project_sharing WHERE owner_key = ? AND project_id = ?",[o,r.project.projectId]);if(!n&&(e.get("SELECT count(*) AS count FROM ponder_project_sharing WHERE owner_key = ?",[o])?.count??0)>=p)throw new Error("ponder_desktop_project_sharing_limit_exceeded");let c=n?m.parse(JSON.parse(n.payload)):null,i=c&&c.shared===r.shared&&c.project.revision===r.project.revision&&c.authority.authorizationRevision===r.authority.authorizationRevision&&Object.entries(r.authority.scope).every(([l,L])=>c.authority.scope[l]===L),d=m.parse({...r,revision:c?c.revision+(i?0:1):1});return e.run("INSERT INTO ponder_project_sharing (owner_key, project_id, payload) VALUES (?, ?, ?) ON CONFLICT(owner_key, project_id) DO UPDATE SET payload = excluded.payload",[o,r.project.projectId,JSON.stringify(d)]),d}a(re,"setPonderProjectSharing");function te(e,t){let r=e.all("SELECT payload FROM ponder_project_sharing WHERE owner_key = ? ORDER BY project_id LIMIT ?",[u(t),p+1]);if(r.length>p)throw new Error("ponder_desktop_project_sharing_limit_exceeded");return r.map(o=>{let n=m.parse(JSON.parse(o.payload));if(u(n.owner)!==u(t))throw new Error("ponder_desktop_project_owner_changed");return n})}a(te,"readPonderProjectSharing");function ne(e,t){return e.shared&&e.authority.authorizationRevision===t.authorizationRevision&&Object.entries(t.scope).every(([r,o])=>e.authority.scope[r]===o)}a(ne,"projectSharingMatchesAuthority");import{createHash as T}from"node:crypto";function I(e){return y.parse({provider:e.provider,cwd:e.cwd,localProjectId:e.localProjectId,workspaceId:e.workspaceId,workspaceKind:e.workspaceKind,workspaceName:e.workspaceName,...e.modelRef?{modelRef:e.modelRef}:{},currentProfile:e.currentProfile,experience:e.experience,profileWorkflowBinding:e.profileWorkflowBinding,profileComponentBinding:e.profileComponentBinding,openPondCommandAccessMode:e.openPondCommandAccessMode})}a(I,"remoteStarterPayload");function F(e){return Number.parseInt(T("sha256").update(_({payload:I(e),owner:e.metadata?.ponderLocalOwner})).digest("hex").slice(0,13),16)}a(F,"remoteStarterRevision");function z(e,t){let r=new Map;for(let o of e){if(!v(o,t)||!o.localProjectId||!o.cwd||o.archived||o.status==="closed"||o.systemKind||o.hiddenFromDefaultSidebar||o.metadata?.nativeHistoryProjection||!k(o.provider)||["sandbox","sandbox_template","sandbox_app"].includes(o.workspaceKind??""))continue;try{I(o)}catch{continue}let n=`starter:${o.id}`;r.set(n,{source:o,target:{id:n,projectId:o.localProjectId,projectLabel:o.workspaceName??"Local project",title:`New ${o.provider} task in ${o.workspaceName??"local project"}`,revision:F(o)}})}return r}a(z,"captureRemoteStarters");function le(e){return async t=>{let r=await e.current();if(!r)throw new Error("remote_account_unavailable");let o=[];for(let c of await e.store.sessionShells()){let i=await e.store.getSession(c.id);i&&o.push(i)}let n=z(o,r.owner).get(t.localStarterId);if(!n||n.target.revision!==t.expectedRevision||n.target.projectId!==t.payload.projectId||n.target.revision!==t.payload.starterRevision)throw new Error("remote_starter_changed");return n.source}}a(le,"createRemoteStarterResolver");var A=class extends Error{constructor(r,o=409){super(r);this.status=o;this.name="LocalManagedMessageError"}status;static{a(this,"LocalManagedMessageError")}};export{I as a,F as b,z as c,le as d,M as e,A as f,G as g,U as h,re as i,te as j,ne as k};
@@ -0,0 +1,22 @@
1
+ import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
+ import{d as n,f as l}from"./chunk-FFRFSDBM.js";import{b as e}from"./chunk-ES2ISFJC.js";import{a as c}from"./chunk-FTQLQJQV.js";var u=e.enum(["active","preview","planned","deprecated"]),y=e.enum(["openpond-account","openpond-managed","codex-login","native-agent-login","chatgpt-subscription","local-byok","hosted-byok","custom"]),D=e.enum(["none","local_secret","env","openpond_account","codex_login","native_agent_login","chatgpt_subscription","hosted"]),v=e.object({connected:e.boolean().default(!1),source:D.default("none"),redacted:e.string().nullable().default(null),lastValidatedAt:e.string().nullable().default(null),lastError:e.string().nullable().default(null)}),m=e.object({hostedOpChat:e.boolean().default(!1),localRuntime:e.boolean().default(!0),localByok:e.boolean().default(!1),hostedByok:e.boolean().default(!1)}),L=e.enum(["hosted","provider","manual","none"]),p=e.object({chatCompletions:e.boolean().default(!0),streaming:e.boolean().default(!0),modelDiscovery:L.default("none"),toolCalling:e.boolean().default(!1),reasoning:e.boolean().default(!1),imageInput:e.boolean().default(!1),structuredOutput:e.boolean().default(!1)}),O=e.enum(["hosted","provider","curated","manual","cache"]),f=e.object({streaming:e.boolean().default(!0),toolCalling:e.boolean().default(!1),reasoning:e.boolean().default(!1),reasoningEfforts:e.array(e.enum(["off","low","medium","high","xhigh","max"])).default([]),vision:e.boolean().default(!1),structuredOutput:e.boolean().default(!1)}),N=e.object({id:e.string().trim().min(1).max(300),providerId:n,displayName:e.string().trim().min(1).max(300),contextWindow:e.number().int().positive().nullable().default(null),outputLimit:e.number().int().positive().nullable().default(null),lifecycleStatus:u.default("active"),source:O,capabilities:f.default(()=>f.parse({})),raw:e.record(e.string(),e.unknown()).optional()}),U=e.object({providerId:n,models:e.array(N).default([]),fetchedAt:e.string().nullable().default(null),lastError:e.string().nullable().default(null),source:e.enum(["none","hosted","provider","curated","manual"]).default("none")}),P=e.object({displayName:e.string().trim().min(1).max(160),command:e.string().trim().min(1).max(4096),args:e.array(e.string().max(4096)).max(100).default([]),env:e.record(e.string().regex(/^[A-Za-z_][A-Za-z0-9_]*$/),e.string().max(2e4)).default({}),registryId:e.string().max(160).nullable().default(null),version:e.string().max(200).nullable().default(null),installUrl:e.string().url().nullable().default(null),authMethodId:e.string().max(200).nullable().default(null)}),z=e.object({acp:P.nullable().default(null),nativeMode:e.string().max(200).nullable().default(null),nativeOptions:e.record(e.string().max(200),e.string().max(300)).default({}),binaryPath:e.string().trim().min(1).max(4096).nullable().default(null),sourceHome:e.string().trim().min(1).max(4096).nullable().default(null),enabled:e.boolean().default(!1),baseUrl:e.string().trim().min(1).max(2048).nullable().default(null),defaultModel:e.string().trim().min(1).max(300).nullable().default(null),modelOverrides:e.array(e.string().trim().min(1).max(300)).max(500).default([]),updatedAt:e.string().nullable().default(null)}),F=e.object({acp:P.nullable().optional(),nativeMode:e.string().max(200).nullable().optional(),nativeOptions:e.record(e.string().max(200),e.string().max(300)).optional(),binaryPath:e.string().trim().min(1).max(4096).nullable().optional(),sourceHome:e.string().trim().min(1).max(4096).nullable().optional(),enabled:e.boolean().optional(),baseUrl:e.string().trim().min(1).max(2048).nullable().optional(),defaultModel:e.string().trim().min(1).max(300).nullable().optional(),modelOverrides:e.array(e.string().trim().min(1).max(300)).max(500).optional()}),W=e.object({id:e.string().trim().min(1).max(300),displayName:e.string().trim().min(1).max(300),contextWindow:e.number().int().positive().nullable().optional(),outputLimit:e.number().int().positive().nullable().optional(),lifecycleStatus:u.optional(),capabilities:f.partial().optional()}),B=e.object({id:n,displayName:e.string().trim().min(1).max(160),lifecycleStatus:u.default("active"),credentialModes:e.array(y).default([]),routing:m,capabilities:p,defaultEnabled:e.boolean().optional(),defaultBaseUrl:e.string().trim().min(1).max(2048).nullable().optional(),defaultModel:e.string().trim().min(1).max(300).nullable().optional(),modelCacheSource:e.enum(["none","hosted","provider","curated","manual"]),models:e.array(W).default([])}),ke=e.object({version:e.literal(1).default(1),generatedAt:e.string().datetime(),providers:e.array(B)}),q=e.object({id:n,displayName:e.string().trim().min(1).max(160),lifecycleStatus:u.default("active"),credentialModes:e.array(y).default([]),routing:m.default(()=>m.parse({})),capabilities:p.default(()=>p.parse({})),credential:v.default(()=>v.parse({})),enabled:e.boolean().default(!1),available:e.boolean().default(!1),defaultModel:e.string().trim().min(1).max(300).nullable().default(null),modelIds:e.array(e.string().trim().min(1).max(300)).max(1e3).default([]),lastError:e.string().nullable().default(null)}),V=e.object({version:e.literal(1).default(1),providers:e.record(e.string(),z).default({}),statuses:e.record(e.string(),q).default({}),modelCaches:e.record(e.string(),U).default({}),updatedAt:e.string().nullable().default(null)}),Ee=e.object({providers:e.record(e.string(),F).optional()}),Me=e.object({source:e.enum(["local_secret","env"]).default("local_secret"),value:e.string().min(1).max(2e4).optional(),envVar:e.string().trim().min(1).max(160).optional()}).superRefine((t,r)=>{t.source==="env"&&!t.envVar&&r.addIssue({code:"custom",path:["envVar"],message:"envVar is required when provider credential source is env."}),t.source==="local_secret"&&!t.value&&r.addIssue({code:"custom",path:["value"],message:"value is required when provider credential source is local_secret."})}),je=e.object({source:e.enum(["local_secret","env","chatgpt_subscription"]).optional()}),we=e.object({modelId:e.string().trim().min(1).max(300).optional(),baseUrl:e.string().trim().min(1).max(2048).optional()}),Te=e.object({query:e.string().trim().max(200).optional(),refresh:e.boolean().default(!1),limit:e.number().int().positive().max(500).default(100)}),De=e.object({query:e.string().trim().max(200).optional(),force:e.boolean().default(!1)});var H=["coding","research","review","test","docs","planner","summarizer"],ze=e.enum(H),g=e.string().trim().min(1).max(80).regex(/^[a-z][a-z0-9_-]*$/),_=e.enum(["none","worktree","copy_on_write"]),R=e.enum(["read_only","workspace_write","full_tools"]),A=e.enum(["disabled","parent_scoped"]),G=e.enum(["manual","balanced","proactive"]),Y=e.enum(["queued","running","completed","failed","cancelled","needs_resume"]),Z=["subagent.started","subagent.reported","subagent.completed","subagent.progress","subagent.failed","subagent.cancelled","subagent.cleanup","subagent.workspace_retained","subagent.workspace_retention_expiring","subagent.archived","subagent.message"],Fe=e.enum(Z),X=[{id:"coding",label:"Coding",description:"Make scoped code changes and return patch, diff, and test evidence.",defaultToolPolicy:"full_tools"},{id:"research",label:"Research",description:"Inspect docs, code, web or repo context and return cited findings.",defaultToolPolicy:"full_tools"},{id:"review",label:"Review",description:"Inspect diffs or implementation plans and return ranked findings.",defaultToolPolicy:"full_tools"},{id:"test",label:"Test",description:"Run or design validation in isolation and return command evidence.",defaultToolPolicy:"full_tools"},{id:"docs",label:"Docs",description:"Update or draft project documentation in an isolated target.",defaultToolPolicy:"full_tools"},{id:"planner",label:"Planner",description:"Decompose a goal into child assignments and context packs.",defaultToolPolicy:"full_tools"},{id:"summarizer",label:"Summarizer",description:"Compact transcripts, child results, and goal state for parent context.",defaultToolPolicy:"full_tools"}],b=e.object({id:g,enabled:e.boolean().default(!0),modelRef:l.nullable().default(null),isolationMode:_.default("none"),maxConcurrentRuns:e.number().int().min(1).max(16).default(1),toolPolicy:R.default("read_only"),background:e.boolean().default(!0),peerMessages:A.default("parent_scoped")}),x=e.object({enabled:e.boolean().default(!0),workspaceDefaultsVersion:e.literal(1).default(1),toolDefaultsVersion:e.literal(1).default(1),delegationMode:G.default("manual"),defaultModelRef:l.nullable().default(null),roles:e.array(b).max(64).default(()=>I()),maxConcurrentRuns:e.number().int().min(1).max(32).default(4),maxConcurrentRunsPerProvider:e.number().int().min(1).max(32).nullable().default(2),maxConcurrentRunsPerWorkspaceTarget:e.number().int().min(1).max(32).nullable().default(1)}).transform(t=>({...t,roles:oe(t.roles)})),i=e.object({kind:e.enum(["session","turn","file","diff","artifact"]),id:e.string().trim().min(1).max(500),label:e.string().trim().min(1).max(500)}),K=e.object({kind:e.enum(["retain_with_parent"]).default("retain_with_parent"),messageRetentionDays:e.number().int().min(1).max(3650).nullable().default(null),artifactRetentionDays:e.number().int().min(1).max(3650).nullable().default(null),cleanupAfterExpiry:e.boolean().default(!1)}).default(()=>({kind:"retain_with_parent",messageRetentionDays:null,artifactRetentionDays:null,cleanupAfterExpiry:!1})),$=e.enum(["orient","edit","validate","report"]),Q=e.object({command:e.string().trim().min(1).max(2e3),status:e.enum(["passed","failed","unknown"]).default("unknown"),exitCode:e.number().int().nullable().default(null),outputSummary:e.string().trim().max(5e3).nullable().default(null),startedAt:e.string().nullable().default(null),completedAt:e.string().nullable().default(null)}),J=e.object({phase:$.default("orient"),inspectedFiles:e.array(e.string().trim().min(1).max(1e3)).max(500).default([]),inspectedResources:e.array(e.string().trim().min(1).max(1e3)).max(500).default([]),repeatedSearches:e.array(e.string().trim().min(1).max(1e3)).max(200).default([]),repeatedReads:e.array(e.string().trim().min(1).max(1e3)).max(200).default([]),repeatedCommands:e.array(e.string().trim().min(1).max(1e3)).max(200).default([]),changedFiles:e.array(e.string().trim().min(1).max(1e3)).max(500).default([]),patchRefs:e.array(i).max(100).default([]),validationAttempts:e.array(Q).max(100).default([]),latestMeaningfulActivity:e.string().trim().max(5e3).nullable().default(null),currentBlocker:e.string().trim().max(5e3).nullable().default(null),updatedAt:e.string().nullable().default(null)}).default(()=>({phase:"orient",inspectedFiles:[],inspectedResources:[],repeatedSearches:[],repeatedReads:[],repeatedCommands:[],changedFiles:[],patchRefs:[],validationAttempts:[],latestMeaningfulActivity:null,currentBlocker:null,updatedAt:null})),ee=e.object({summary:e.string().trim().max(2e4).default(""),findings:e.array(e.string().trim().min(1).max(5e3)).max(200).default([]),artifacts:e.array(i).max(200).default([]),patchRef:i.nullable().default(null),diffRef:i.nullable().default(null),testsRun:e.array(e.string().trim().min(1).max(2e3)).max(100).default([]),blockers:e.array(e.string().trim().min(1).max(5e3)).max(100).default([]),confidence:e.enum(["low","medium","high"]).nullable().default(null),followUpNeeded:e.boolean().default(!1)}),te=e.object({id:e.string().trim().min(1).max(200),parentSessionId:e.string().trim().min(1).max(200),parentTurnId:e.string().trim().min(1).max(200).nullable().default(null),childSessionId:e.string().trim().min(1).max(200).nullable().default(null),roleId:g,objective:e.string().trim().min(1).max(5e4),modelRef:l.nullable().default(null),isolationMode:_.default("none"),toolPolicy:R.default("read_only"),background:e.boolean().default(!0),peerMessages:A.default("parent_scoped"),status:Y.default("queued"),progress:J,evidenceRetention:K,createdAt:e.string(),startedAt:e.string().nullable().default(null),completedAt:e.string().nullable().default(null),updatedAt:e.string().nullable().default(null),error:e.string().nullable().default(null),report:ee.nullable().default(null),metadata:e.record(e.string(),e.unknown()).optional().default({})}),C=e.enum(["cleanup","archive","cleanup_and_archive"]),We=e.object({action:C,reason:e.string().trim().min(1).max(2e3).nullable().default(null)}),Be=e.object({action:C,run:te,workspaceCleanup:e.record(e.string(),e.unknown()).nullable().default(null),sessionArchive:e.record(e.string(),e.unknown()).nullable().default(null),nextStep:e.string()}),ae=e.enum(["question","answer","handoff","artifact","status","blocker"]),ne=e.enum(["normal","interrupt"]),le=e.object({inputIds:e.array(e.string()).default([]),status:e.enum(["pending","delivered","undelivered"]).default("pending"),deliveredRunIds:e.array(e.string().trim().min(1).max(200)).max(200).default([]),acknowledgedRunIds:e.array(e.string().trim().min(1).max(200)).max(200).default([]),deliveredParentSessionId:e.string().trim().min(1).max(200).nullable().default(null),acknowledgedParentSessionId:e.string().trim().min(1).max(200).nullable().default(null),wakeRequestedParentSessionId:e.string().trim().min(1).max(200).nullable().default(null),wakeQueuedParentSessionId:e.string().trim().min(1).max(200).nullable().default(null),wakeDeferredParentSessionId:e.string().trim().min(1).max(200).nullable().default(null),wakeParentReason:e.string().trim().min(1).max(1e3).nullable().default(null),wakeRequestedRunIds:e.array(e.string().trim().min(1).max(200)).max(200).default([]),wakeInterruptedRunIds:e.array(e.string().trim().min(1).max(200)).max(200).default([]),wakeDeferredRunIds:e.array(e.string().trim().min(1).max(200)).max(200).default([]),reason:e.string().trim().min(1).max(1e3).nullable().default(null)}),qe=e.object({id:e.string().trim().min(1).max(200),fromRunId:e.string().trim().min(1).max(200),toRunId:e.string().trim().min(1).max(200).nullable().default(null),toRole:g.nullable().default(null),kind:ae,priority:ne.optional(),body:e.string().trim().min(1).max(5e4),refs:e.array(i).max(100).default([]),delivery:le.optional(),createdAt:e.string()});function I(){return X.map(t=>b.parse({id:t.id,toolPolicy:t.defaultToolPolicy}))}c(I,"defaultSubagentRoleSettings");function oe(t){let r=I(),d=new Map(r.map(o=>[o.id,o])),S=[];for(let o of t??[]){let s=b.parse(o);d.has(s.id)?d.set(s.id,s):S.push(s)}return[...r.map(o=>d.get(o.id)??o),...S]}c(oe,"normalizeSubagentRoleSettings");var Xe="gpt-5.6-sol",re="openpond-chat",Ke="accounts/fireworks/models/deepseek-v4-flash",ie="openpond",se=re,ue="default",de="high",ce="ask",j=n,me=e.enum(["default","auto-review","full-access"]),pe=e.enum(["ask","full-access","disabled"]),fe=e.enum(["off","low","medium","high","xhigh","max"]),$e=e.enum(["sandbox_app","local_project","sandbox","sandbox_template"]),Qe=e.enum(["openpond"]),ge=e.enum(["provider_usage","provider_tokenizer","model_family","heuristic"]),Je=e.object({provider:j,model:e.string().min(1),usedTokens:e.number().int().nonnegative(),maxContextTokens:e.number().int().positive(),usableContextTokens:e.number().int().positive(),percentFull:e.number().min(0).max(100),source:ge,updatedAtEventId:e.string().nullable()}),k=e.object({pinned:e.boolean().default(!1),projects:e.boolean().default(!1),cloudProjects:e.boolean().default(!1),chats:e.boolean().default(!1),savedForLater:e.boolean().default(!0)}),be=e.enum(["auto","off"]),xe=e.enum(["typescript","python","rust"]),w=e.enum(["auto","disabled","custom"]),a=e.object({mode:w.default("auto"),customCommand:e.string().trim().max(4096).default("")}),h=e.object({languageServers:be.default("auto"),diagnosticsWhileEditing:e.boolean().default(!0),checkOnSave:e.boolean().default(!0),languages:e.object({typescript:a.optional().default(()=>a.parse({})),python:a.optional().default(()=>a.parse({})),rust:a.optional().default(()=>a.parse({}))}).optional().default(()=>({typescript:a.parse({}),python:a.parse({}),rust:a.parse({})}))}),he=e.object({language:xe,label:e.string(),mode:w,status:e.enum(["found","missing","disabled","error"]),command:e.string().nullable(),message:e.string().nullable()}),et=e.object({settings:h,languages:e.array(he),updatedAt:e.string()}),Se=e.object({id:e.string(),root:e.string(),status:e.enum(["starting","connected","unavailable","error"]),message:e.string().nullable().optional().default(null),openedDocuments:e.number().int().nonnegative(),pendingRequests:e.number().int().nonnegative(),lastUsedAt:e.string(),stderrTail:e.string()}),tt=e.object({clients:e.array(Se),maxClients:e.number().int().positive(),idleTimeoutMs:e.number().int().positive(),updatedAt:e.string()}),E=e.object({autoEnabled:e.boolean().default(!0),triggerPercent:e.number().int().min(50).max(95).default(85),summaryModel:e.enum(["same_model"]).default("same_model")}),M=e.object({defaultModelRef:l.nullable().default(null),creationMode:e.enum(["defaults","customize"]).default("customize"),autoApproveEvidence:e.boolean().default(!1)}),at=e.object({defaultChatProvider:j.default(ie),defaultChatModel:e.string().min(1).default(se),defaultChatModelRef:l.nullable().optional(),subagents:x.optional().default(()=>x.parse({})),codexPermissionMode:me.default(ue),codexReasoningEffort:fe.default(de),openPondCommandAccessMode:pe.default(ce),defaultBranchPrefix:e.string().trim().max(48).default("feat/"),defaultNewProjectDirectory:e.string().trim().max(4096).default(""),defaultTeamId:e.string().trim().max(191).nullable().default(null),advancedWorkspaceControls:e.boolean().default(!1),steerActiveResponses:e.boolean().default(!0),contextCompaction:E.optional().default(()=>E.parse({})),training:M.optional().default(()=>M.parse({})),sidebarWidth:e.number().int().min(244).max(560).default(332),diffPanelWidth:e.number().int().min(320).max(2400).default(560),sidebarSectionsCollapsed:k.optional().default(()=>k.parse({})),editor:h.optional().default(()=>h.parse({}))});var ve="default",ye=[{id:"default",name:"Balanced",source:"built_in",description:"Clear, useful, and concise.",content:`You are OpenPond Chat, a clear and useful AI assistant.
3
+ Be concise, accurate, and direct.
4
+ Do not use emojis.
5
+ Ask only when missing information would materially change the answer.
6
+ Prioritize practical next steps.`},{id:"pragmatic",name:"Pragmatic",source:"built_in",description:"Direct, practical, and engineering-minded.",content:`You are a pragmatic AI assistant with strong engineering judgment.
7
+ Be direct, concrete, and outcome-focused.
8
+ Do not use emojis.
9
+ Prefer simple working solutions over clever abstractions.
10
+ Call out weak assumptions plainly.`},{id:"friendly",name:"Friendly",source:"built_in",description:"Warm, conversational, and approachable.",content:`You are a friendly AI assistant.
11
+ Use a warm, conversational tone without filler.
12
+ Do not use emojis.
13
+ Explain decisions clearly and keep the user moving.
14
+ Be patient when clarifying tradeoffs.`},{id:"formal",name:"Formal",source:"built_in",description:"Polished, careful, and professional.",content:`You are a formal AI assistant.
15
+ Use precise, professional language.
16
+ Do not use emojis.
17
+ Structure answers clearly and avoid casual phrasing.
18
+ State uncertainty and assumptions explicitly.`},{id:"technical",name:"Technical",source:"built_in",description:"Precise, detailed, and implementation-focused.",content:`You are a technical AI assistant.
19
+ Prioritize correctness, implementation detail, and edge cases.
20
+ Do not use emojis.
21
+ Use concise explanations, but include necessary specifics.
22
+ Surface risks, constraints, and verification steps.`}],T=e.string().trim().min(1).max(120),Pe=e.object({id:T,name:e.string(),source:e.enum(["built_in","custom"]).default("custom"),description:e.string(),content:e.string()}),nt=e.object({activeTemplateId:T.default(ve),customized:e.boolean().default(!1),soul:e.string(),soulPath:e.string().nullable(),updatedAt:e.string().nullable(),templates:e.array(Pe).default(()=>[...ye])}),lt=e.object({id:e.string(),host:e.string(),port:e.number(),startedAt:e.string(),storePath:e.string(),version:e.string(),runtimeVersion:e.string()});export{v as a,p as b,N as c,U as d,P as e,z as f,B as g,ke as h,q as i,V as j,Ee as k,Me as l,je as m,we as n,Te as o,De as p,g as q,_ as r,R as s,A as t,G as u,Z as v,X as w,x,J as y,te as z,We as A,le as B,qe as C,Xe as D,re as E,Ke as F,ie as G,de as H,ce as I,j as J,me as K,pe as L,fe as M,$e as N,Je as O,k as P,h as Q,et as R,tt as S,E as T,M as U,at as V,ve as W,ye as X,T as Y,nt as Z,lt as _};
@@ -0,0 +1,3 @@
1
+ import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
+ import{a as F,b as H,d as _}from"./chunk-XEOEKFG6.js";import{t as j}from"./chunk-BLXEAZCQ.js";import{a as R}from"./chunk-UKMA4R6X.js";import{b as P,s as C,t as N,z as x}from"./chunk-XW6HGSIT.js";import{g as U}from"./chunk-KG325WTN.js";import{r as D}from"./chunk-WJ43MJ3F.js";import{b as I,c as T}from"./chunk-YR5ID2SS.js";import{a as n}from"./chunk-FTQLQJQV.js";import{randomUUID as Pt}from"node:crypto";var ot="https://api.openpond.ai";async function K(t){let e=await R(),o=e.token?.trim();if(!o)throw new Error("OpenPond account API key is required to manage organizations.");let r=rt(e);if(t.type==="list")return m(r,o,"/v1/organizations");if(t.type==="invitations_list")return m(r,o,"/v1/teams/invitations");if(t.type==="invitation_accept"||t.type==="invitation_decline"){let i=t.type==="invitation_accept"?"accept":"decline";return m(r,o,`/v1/teams/invitations/${i}`,{method:"POST",body:JSON.stringify(t.payload??{})})}if(t.type==="create")return m(r,o,"/v1/organizations",{method:"POST",body:JSON.stringify(t.payload??{})});if(t.type==="get")return m(r,o,`/v1/organizations/${encodeURIComponent(t.slug)}`);if(t.type==="update")return m(r,o,`/v1/organizations/${encodeURIComponent(t.slug)}`,{method:"PATCH",body:JSON.stringify(t.payload??{})});if(t.type==="members")return m(r,o,`/v1/organizations/${encodeURIComponent(t.slug)}/members`);if(t.type==="member_upsert")return m(r,o,`/v1/organizations/${encodeURIComponent(t.slug)}/members`,{method:"POST",body:JSON.stringify(t.payload??{})});if(t.type==="mcp_get")return m(r,o,`/v1/organizations/${encodeURIComponent(t.slug)}/mcp-server`);if(t.type==="mcp_generate")return m(r,o,`/v1/organizations/${encodeURIComponent(t.slug)}/mcp-server`,{method:"POST",body:JSON.stringify(t.payload??{})});if(t.type==="mcp_rotate")return m(r,o,`/v1/organizations/${encodeURIComponent(t.slug)}/mcp-server/rotate`,{method:"POST"});if(t.type==="mcp_disable")return m(r,o,`/v1/organizations/${encodeURIComponent(t.slug)}/mcp-server/disable`,{method:"POST"});if(t.type==="mcp_enable")return m(r,o,`/v1/organizations/${encodeURIComponent(t.slug)}/mcp-server/enable`,{method:"POST"});throw new Error(`Unsupported organization action: ${t.type}`)}n(K,"organizationRequestPayload");async function m(t,e,o,r={}){let i=await I(t,e,o,r),a=await i.json().catch(()=>({}));if(!i.ok){let l=typeof a.message=="string"?a.message:typeof a.error=="string"?a.error:i.statusText;throw new Error(l)}return a}n(m,"openPondApiRequest");function rt(t){return S(process.env.OPENPOND_API_URL)??S(t.apiBaseUrl)??S(t.account?.apiBaseUrl)??S(t.config.apiBaseUrl)??M(t.account?.baseUrl)??M(t.config.baseUrl)??ot}n(rt,"resolveApiBaseUrl");function M(t){let e=S(t);if(!e)return null;try{let o=new URL(e);if(o.hostname==="openpond.ai")return"https://api.openpond.ai";if(!o.hostname.startsWith("api.")&&o.hostname.endsWith(".openpond.ai"))return o.hostname=`api.${o.hostname}`,o.origin}catch{return e}return e}n(M,"normalizeOpenPondWebBaseAsApi");function S(t){let e=t?.trim();return e?e.replace(/\/$/,""):null}n(S,"normalizeOptionalUrl");import{promises as y}from"node:fs";import nt from"node:os";import g from"node:path";var at=5e3,it=32*1024*1024,st=250*1024*1024;async function J(t){let e=await O(t),o=await z(e.rootPath),r=[];for(let i of e.files)r.push({path:i.path,type:"file",contentsBase64:(await y.readFile(i.absolutePath)).toString("base64")});return{rootPath:e.rootPath,headCommit:o,entries:r,totalBytes:e.totalBytes,skipped:e.skipped}}n(J,"collectLocalProjectSourceUploadBundle");async function Ft(t){let e=await O(t),o=await z(e.rootPath);return{rootPath:e.rootPath,headCommit:o,fileCount:e.files.length,byteCount:e.totalBytes,skippedCount:e.skipped.length,initializedEmptyProject:e.files.length===0,skipped:e.skipped}}n(Ft,"previewLocalProjectSourceUpload");async function W(t,e){let o=pt(e.branch),r=await O(t),i=await z(r.rootPath);if(t.repoPath&&r.files.length>0&&await ut(r.rootPath))try{return await G({cwd:r.rootPath,repoUrl:e.repoUrl,apiKey:e.apiKey,branch:o}),{rootPath:r.rootPath,branch:o,headCommit:i,fileCount:r.files.length,byteCount:r.totalBytes,skipped:r.skipped,initializedEmptyProject:!1,transport:"git_head"}}catch(c){if(!yt(c))throw c}let a=await y.mkdtemp(g.join(nt.tmpdir(),"openpond-cloud-source-")),l=r.files.length===0;try{return l?await y.writeFile(g.join(a,"README.md"),e.fallbackReadme,"utf8"):await mt(r,a),await gt({cwd:a,branch:o,commitMessage:e.commitMessage,repoUrl:e.repoUrl,apiKey:e.apiKey}),await G({cwd:a,repoUrl:e.repoUrl,apiKey:e.apiKey,branch:o}),{rootPath:r.rootPath,branch:o,headCommit:i,fileCount:l?1:r.files.length,byteCount:l?Buffer.byteLength(e.fallbackReadme,"utf8"):r.totalBytes,skipped:r.skipped,initializedEmptyProject:l,transport:"snapshot"}}finally{await y.rm(a,{recursive:!0,force:!0})}}n(W,"pushLocalProjectSourceToGit");async function O(t){let e=t.repoPath??t.workspacePath,o=t.repoPath?await dt(e):await ct(e),r=[],i=[],a=0;for(let l of o){if(r.length>=at){i.push({path:l,reason:"total_limit"});continue}let c=C(l);if(!c){i.push({path:l,reason:"invalid_path"});continue}if(N(c)&&!q(c)){i.push({path:c,reason:"generated"});continue}let d=g.resolve(e,c),u=g.resolve(e);if(d!==u&&!d.startsWith(`${u}${g.sep}`)){i.push({path:c,reason:"invalid_path"});continue}try{let f=await y.lstat(d);if(!f.isFile()){i.push({path:c,reason:"not_file"});continue}if(f.size>it){i.push({path:c,reason:"too_large",sizeBytes:f.size});continue}if(a+f.size>st){i.push({path:c,reason:"total_limit",sizeBytes:f.size});continue}r.push({path:c,absolutePath:d,sizeBytes:f.size}),a+=f.size}catch{i.push({path:c,reason:"read_error"})}}return{rootPath:e,files:r,totalBytes:a,skipped:i}}n(O,"selectLocalProjectSourceFiles");async function ct(t){let e=await x(t),o=await lt(t);return Array.from(new Set([...e,...o])).sort((r,i)=>r.localeCompare(i))}n(ct,"listLocalProjectSourceUploadFiles");async function lt(t){let e=[],o=g.join(t,".openpond","skills");async function r(i){let a=g.join(t,i),l;try{l=await y.readdir(a,{withFileTypes:!0})}catch{return}l.sort((c,d)=>c.name.localeCompare(d.name));for(let c of l){let d=g.join(i,c.name).replace(/\\/g,"/"),u=C(d);if(u){if(c.isDirectory()){await r(u);continue}c.isFile()&&q(u)&&e.push(u)}}}return n(r,"visit"),await r(g.relative(t,o).replace(/\\/g,"/")),e}n(lt,"listGeneratedSkillSourceUploadFiles");function q(t){let e=C(t);if(!e)return!1;let o=e.split("/"),r=o.indexOf(".openpond");return r>=0&&o[r+1]==="skills"&&o.length>r+3}n(q,"isAllowedGeneratedSourceUploadPath");async function dt(t){let e=await P("git",["ls-files","-z","--cached","--others","--exclude-standard"],t);return e.code!==0?x(t):Array.from(new Set(e.stdout.split("\0").map(o=>o.trim()).filter(Boolean))).sort((o,r)=>o.localeCompare(r))}n(dt,"gitVisibleProjectFiles");function pt(t){let e=t.trim()||"main";if(e.length>120||e.startsWith("/")||e.endsWith("/")||e.includes("..")||!/^[A-Za-z0-9._/-]+$/.test(e))throw new Error("Cloud source branch contains unsupported characters.");return e}n(pt,"normalizeGitBranchName");async function ut(t){if((await P("git",["rev-parse","--verify","HEAD"],t)).code!==0)return!1;let o=await P("git",["status","--porcelain=v1"],t);return o.code===0&&o.stdout.trim().length===0}n(ut,"gitRepoHasCleanHead");async function z(t){let e=await P("git",["rev-parse","--verify","HEAD"],t);return e.code===0&&e.stdout.trim()||null}n(z,"readGitHeadCommit");async function mt(t,e){for(let o of t.files){let r=g.resolve(e,o.path),i=g.resolve(e);r!==i&&!r.startsWith(`${i}${g.sep}`)||(await y.mkdir(g.dirname(r),{recursive:!0}),await y.copyFile(o.absolutePath,r))}}n(mt,"copySelectedFilesToSnapshot");async function gt(t){await w(t.cwd,["init"],"Initialize Cloud source snapshot"),await w(t.cwd,["checkout","-B",t.branch],"Create Cloud source branch"),await w(t.cwd,["config","user.name","OpenPond Desktop"],"Configure Git user"),await w(t.cwd,["config","user.email","desktop@openpond.ai"],"Configure Git email"),await ft({cwd:t.cwd,repoUrl:t.repoUrl,apiKey:t.apiKey,branch:t.branch}),await w(t.cwd,["add","-A"],"Stage Cloud source snapshot"),await w(t.cwd,["commit","-m",t.commitMessage],"Commit Cloud source snapshot")}n(gt,"createSnapshotCommit");async function ft(t){let e=`refs/remotes/openpond/${t.branch}`,o=await V(t.cwd,["fetch","--depth=1",t.repoUrl,`refs/heads/${t.branch}:${e}`],t.apiKey);if(o.code!==0){let r=`${o.stderr}
3
+ ${o.stdout}`;if(ht(r))return;throw new Error(`Fetch Cloud source parent failed: ${E(o)}`)}await w(t.cwd,["reset","--mixed",e],"Attach Cloud source snapshot to remote branch")}n(ft,"applyRemoteBranchParent");async function G(t){let e=await V(t.cwd,["push",t.repoUrl,`HEAD:${t.branch}`],t.apiKey);if(e.code!==0)throw new Error(`Push Cloud source to OpenPond Git failed: ${E(e)}`)}n(G,"pushGitHead");async function V(t,e,o){let r=Buffer.from(`openpond:${o}`,"utf8").toString("base64");return P("git",["-c",`http.extraHeader=Authorization: Basic ${r}`,...e],t)}n(V,"runGitWithAuth");function yt(t){let e=t instanceof Error?t.message:String(t);return e.includes("non-fast-forward")||e.includes("fetch first")||e.includes("remote contains work that you do not")}n(yt,"isNonFastForwardPushError");function ht(t){return t.includes("couldn't find remote ref")||t.includes("could not find remote ref")||t.includes("Remote branch")&&t.includes("not found")}n(ht,"isMissingRemoteRefOutput");function E(t){return(t.stderr||t.stdout||"Git command failed").trim().replace(/\s+/g," ").slice(0,500)}n(E,"formatGitError");async function w(t,e,o){let r=await P("git",e,t);if(r.code!==0)throw new Error(`${o} failed: ${E(r)}`)}n(w,"runGitOrThrow");var wt=new Set(["github_repo","internal_repo","template","manual"]);function Jt(t,e){return e&&t.status!=="active"?{...t,status:"active"}:t}n(Jt,"codexHistorySessionWithLiveStatus");async function Wt(){try{let t=p(await K({type:"list"})),e=L(t.organizations),o=(e.length>0?e:L(t.teams)).map(bt).filter(a=>!!a?.teamId),r=await Promise.all(o.map(async a=>{try{let l=p(await j({type:"project_list",payload:{teamId:a.teamId}}));return L(l.projects).map(c=>X(c,a)).filter(c=>!!c)}catch{return[]}})),i=new Map;for(let a of r.flat())i.set(`${a.teamId}:${a.id}`,a);return Array.from(i.values()).sort((a,l)=>{let c=Date.parse(a.updatedAt??"")||0,d=Date.parse(l.updatedAt??"")||0;return c!==d?d-c:a.name.localeCompare(l.name)})}catch{return[]}}n(Wt,"fetchCloudProjects");function bt(t){let e=s(t.teamId)??s(t.id);return e?{teamId:e,slug:s(t.slug),displayName:s(t.displayName)??s(t.name)}:null}n(bt,"normalizeOpenPondOrganization");function X(t,e){let o=s(t.id),r=s(t.teamId)??e.teamId;if(!o||!r||s(t.status)==="archived"||s(t.archivedAt))return null;let a=s(t.name)??s(t.slug)??o,l=$(t.sourceType);return{id:o,teamId:r,name:a,slug:s(t.slug),sourceType:l,sourceLabel:Y(t,l),defaultBranch:s(t.defaultBranch)??s(t.gitBranch),internalRepoPath:s(t.internalRepoPath),manifestPath:s(t.sandboxManifestPath),manifestHash:s(t.sandboxManifestHash),syncedAt:s(t.sandboxManifestSyncedAt),organizationName:e.displayName,organizationSlug:e.slug,createdAt:s(t.createdAt),updatedAt:s(t.updatedAt)}}n(X,"normalizeCloudProject");function $(t){return typeof t=="string"&&wt.has(t)?t:"manual"}n($,"normalizeCloudProjectSourceType");function Y(t,e){if(e==="github_repo"){let o=s(t.gitOwner),r=s(t.gitRepo);if(o&&r)return`${o}/${r}`}return e==="internal_repo"?s(t.internalRepoPath)??"Internal repo":e==="template"?s(t.templateRepoUrl)??s(t.templateSourceProjectId)??"Template":s(t.normalizedSourceIdentity)}n(Y,"cloudProjectSourceLabel");function qt(t){return typeof t=="boolean"?t:null}n(qt,"booleanValue");function p(t){return t&&typeof t=="object"&&!Array.isArray(t)?t:{}}n(p,"asRecord");function Vt(t){let e=p(t);return Object.keys(e).length>0?e:null}n(Vt,"nonEmptyRecord");function L(t){return Array.isArray(t)?t.map(p).filter(e=>Object.keys(e).length>0):[]}n(L,"asRecordArray");function s(t){return typeof t=="string"&&t.trim()?t.trim():null}n(s,"stringValue");function Xt(t){if(!t)return null;if(t==="request_only"||t==="coding_core")return t;throw new Error("hostedSourceDispatch must be one of request_only, coding_core.")}n(Xt,"parseHostedSourceDispatch");function jt(t){return Array.isArray(t)?t.filter(e=>typeof e=="string"&&e.trim().length>0).map(e=>e.trim()):[]}n(jt,"stringArrayValue");function Yt(t){let e=t.code===0||t.code===null?"completed":"failed",o=t.stdout.trim()||t.stderr.trim()||`Ran profile action ${t.action}.`,r=[],i=[];try{let a=JSON.parse(t.stdout),l=p(a),c=p(l.result),d=s(c.text)??s(c.summary)??s(c.message);d&&(o=d),r=jt(c.artifactRefs);let u=s(l.traceArtifactRef);i=u?[u]:[]}catch{}return{artifactRefs:r,output:o,responseSummary:{status:e==="completed"?"available":"failed",text:o},status:e,traceArtifactRefs:i}}n(Yt,"profileActionRunSummary");function Zt(t){let e=At(t.name),o=t.id.replace(/^local_/,"").replace(/[^a-z0-9]/gi,"").slice(0,16);return`desktop-${e}-${o||"project"}`}n(Zt,"internalRepoPathForLocalProject");function At(t){return t.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,48)||"project"}n(At,"slugifyInternalRepoSegment");async function Qt(t){try{let e=await W(t.localProject,{repoUrl:t.repoUrl,apiKey:t.apiKey,branch:t.branch,commitMessage:t.commitMessage,fallbackReadme:t.fallbackReadme}),o=p(await j({type:"project_sync",projectId:t.targetProjectId,payload:{teamId:t.teamId}}).catch(()=>({})));return{rootPath:e.rootPath,branch:e.branch,headCommit:e.headCommit,fileCount:e.fileCount,byteCount:e.byteCount,skippedCount:e.skipped.length,initializedEmptyProject:e.initializedEmptyProject,transport:e.transport,syncPayload:o}}catch{let e=await J(t.localProject),o=e.entries.length===0,r=o?[{path:"README.md",type:"file",contentsBase64:Buffer.from(t.fallbackReadme,"utf8").toString("base64")}]:e.entries,i=o?Buffer.byteLength(t.fallbackReadme,"utf8"):e.totalBytes,a=p(await j({type:"project_source_upload",projectId:t.targetProjectId,payload:{teamId:t.teamId,entries:r,branch:t.branch,commitMessage:t.commitMessage,metadata:{source:"openpond-app-local-project-cloud-setup",transport:"api_source_upload"}}}));return{rootPath:e.rootPath,branch:t.branch,headCommit:e.headCommit,fileCount:r.length,byteCount:i,skippedCount:e.skipped.length,initializedEmptyProject:o,transport:"api_source_upload",syncPayload:a}}}n(Qt,"uploadLocalProjectCloudSource");async function te(t){try{let e=p(await j({type:"project_get",projectId:t.projectId,payload:{teamId:t.teamId}})),o=p(e.project);return Object.keys(o).length>0?o:t.fallback}catch{return t.fallback}}n(te,"sandboxProjectRecordOrFallback");async function ee(t){let e=p(await j({type:"project_upsert",payload:{teamId:t.teamId,name:t.projectName,sourceType:"internal_repo",normalizedSourceIdentity:t.internalRepoPath,defaultBranch:t.branch,sourceConfig:{sourceType:"internal_repo",sourceValue:t.internalRepoPath},metadata:{source:"openpond-app-local-project-cloud-setup",localProjectId:t.localProjectId}}})),o=p(e.project);if(Object.keys(o).length===0)throw new Error("OpenPond Cloud Project response did not include a project.");return o}n(ee,"upsertInternalSandboxProject");function oe(t,e,o,r){let i=X({...t,teamId:e},{teamId:e,slug:null,displayName:null});if(i)return i;let a=s(t.id);if(!a)throw new Error("OpenPond Cloud Project response did not include a project id.");return{id:a,teamId:e,name:s(t.name)??o,slug:s(t.slug),sourceType:$(t.sourceType),sourceLabel:Y(t,$(t.sourceType)),defaultBranch:s(t.defaultBranch)??s(t.gitBranch)??r,internalRepoPath:s(t.internalRepoPath),manifestPath:s(t.sandboxManifestPath),manifestHash:s(t.sandboxManifestHash),syncedAt:s(t.sandboxManifestSyncedAt),organizationName:null,organizationSlug:null,createdAt:s(t.createdAt),updatedAt:s(t.updatedAt)}}n(oe,"cloudProjectFromSandboxRecord");function re(t){if(!t)return{};let e=St(t.searchParams.get("limit"));return{...e?{maxEvents:e}:{},tail:t.searchParams.get("tail")==="1"}}n(re,"codexHistoryThreadReadOptions");function ne(t){return`${t}_turn_attachment_${Pt()}`}n(ne,"nextCodexHistoryTurnId");function St(t){if(!t)return;let e=Number.parseInt(t,10);if(!(!Number.isFinite(e)||e<=0))return Math.min(5e4,e)}n(St,"positiveIntegerParam");var It={"tools.web_search":!0,"tools.view_image":!0,"features.web_search_request":!0};function ae(t){return{...It,approvals_reviewer:t==="auto-review"?"auto_review":"user"}}n(ae,"codexHistorySessionConfig");import Z from"node:path";import{promises as Rt}from"node:fs";async function ue(t){let e=await Ct(t.workspacePath);return(await Rt.stat(e).catch(()=>null))?.isDirectory()?(await _({projectRoot:t.workspacePath,build:"always"}).catalog()).actions.map(a=>D.parse({...a,sourcePath:t.workspacePath,implementation:{...a.implementation,projectId:t.id,projectRoot:Z.resolve(t.workspacePath)}})):[]}n(ue,"localProjectActionCatalog");async function Q(t){return _({projectRoot:t.projectRoot,build:"always"}).run({actionId:t.actionId,input:t.value,runId:t.runId,idempotencyKey:t.idempotencyKey,signal:t.signal})}n(Q,"runLocalProjectAction");async function Ct(t){try{let e=await H(t);return Z.resolve(t,e.sourceDirectory??"openpond/actions")}catch(e){throw new Error(`Cannot load ${F}: ${e instanceof Error?e.message:String(e)}`)}}n(Ct,"projectActionSourceDirectory");var kt="https://api.openpond.ai";async function B(t={}){let e=await(t.loadAccountContext??R)(),o=e.token?.trim();if(!o)throw new Error("OpenPond account API key is required.");return{apiBaseUrl:_t(e),token:o}}n(B,"resolveHostedApiAccess");async function ye(t={}){return{...await B(t),teamId:Ut(t.teamId)}}n(ye,"resolveManagedAdapterUserAccess");function he(t){let e=new Headers;return t.startsWith("opk_")?(e.set("Authorization",`ApiKey ${t}`),e.set("openpond-api-key",t)):e.set("Authorization",`Bearer ${t}`),e}n(he,"hostedApiAuthHeaders");function _t(t){return k(t.apiBaseUrl)??k(t.account?.apiBaseUrl)??k(t.config.apiBaseUrl)??tt(t.account?.baseUrl)??tt(t.config.baseUrl)??kt}n(_t,"resolveApiBaseUrl");function Ut(t){let e=t?.trim();if(!e||!/^[A-Za-z0-9_-]{3,191}$/.test(e))throw new Error("Select an OpenPond workspace before using OpenPond Managed RL.");return e}n(Ut,"managedAdapterTeamId");function tt(t){let e=k(t);if(!e)return null;try{let o=new URL(e);if(o.hostname==="openpond.ai")return"https://api.openpond.ai";if(!o.hostname.startsWith("api.")&&o.hostname.endsWith(".openpond.ai"))return o.hostname=`api.${o.hostname}`,o.origin}catch{return e}return e}n(tt,"normalizeOpenPondWebBaseAsApi");function k(t){let e=t?.trim();return e?e.replace(/\/$/,""):null}n(k,"normalizeOptionalUrl");async function et(t,e={}){let o=await(e.resolveAccess??B)(),r=await(e.fetch??I)(o.apiBaseUrl,o.token,`/v1/project-actions/${encodeURIComponent(t.projectId)}/actions/${encodeURIComponent(t.actionId)}?teamId=${encodeURIComponent(t.teamId)}`,{method:"POST",body:JSON.stringify({input:t.value,releaseId:t.releaseId,idempotencyKey:t.idempotencyKey,callerType:"work",callerId:t.callerId}),signal:t.signal,timeoutMs:900*1e3}),i=await T(r,"Run hosted Project Action");if(i.invocation.status==="failed")throw new Error(i.invocation.failureMessage||i.invocation.failureCode||"Hosted Project Action failed.");return i.invocation}n(et,"runHostedProjectAction");function _e(t){return n(async function(o){let r=p(o),i=s(r.action)??s(r.actionName);if(!i)throw new Error("Project Action name is required.");let a=p(r.metadata);if(s(a.execution)==="hosted"){let b=await et({projectId:A(a,"projectId"),teamId:A(a,"teamId"),releaseId:A(a,"releaseId"),actionId:i,value:r.input??{},idempotencyKey:s(a.toolCallId)?`${A(a,"turnId")}:${A(a,"toolCallId")}`:void 0,callerId:s(a.turnId)??void 0}),v=s(a.sessionId);return v&&await t.appendRuntimeEvent(U({name:"workspace_action_result",sessionId:v,turnId:A(a,"turnId"),source:"chat_action",action:"project_action_run",appId:null,status:"completed",output:JSON.stringify(b.resultJson),data:{openPondHostedProjectActionRun:!0,action:{name:i,label:s(a.selectedActionLabel)??i},releaseId:b.releaseId,invocationId:b.id,traces:b.traceJson,outputs:b.outputJson}})),b}let l=s(a.projectId);if(!l)throw new Error("Project Action Project id is required.");let c=await t.resolveProjectRoot(l);if(!c)throw new Error("Project Action Project is not registered locally.");let d=s(a.sessionId),u=s(a.turnId)??`openpond_project_action_${Date.now()}`,f=s(a.toolCallId),h=await Q({projectRoot:c,actionId:i,value:r.input??{},runId:f??void 0,idempotencyKey:f?`${u}:${f}`:null});return d&&await t.appendRuntimeEvent(U({name:"workspace_action_result",sessionId:d,turnId:u,source:"chat_action",action:"project_action_run",appId:null,status:"completed",output:JSON.stringify(h.output),data:{openPondProjectActionRun:!0,action:{name:i,label:s(a.selectedActionLabel)??i},runId:h.runId,traces:h.traces,outputs:h.outputs,outputDirectory:h.outputDirectory,durationMs:h.durationMs}})),h},"projectActionRunPayload")}n(_e,"createProjectActionRunPayload");function A(t,e){let o=s(t[e]);if(!o)throw new Error(`Hosted Project Action ${e} is required.`);return o}n(A,"requiredMetadata");export{K as a,Ft as b,Jt as c,Wt as d,qt as e,p as f,Vt as g,s as h,Xt as i,Yt as j,Zt as k,Qt as l,te as m,ee as n,oe as o,re as p,ne as q,ae as r,ue as s,B as t,ye as u,he as v,_e as w};
@@ -0,0 +1,2 @@
1
+ import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
+ import{k as i}from"./chunk-VYLGI3IH.js";import{b as e}from"./chunk-ES2ISFJC.js";var t=i.extend({mode:e.enum(["nightly","approved_count"]),minimumTasks:e.number().int().min(1).max(1e4),maximumSpendUsd:e.number().positive().max(1e5),maximumDailySpendUsd:e.number().positive().max(1e6)}).strict().superRefine((m,a)=>{m.maximumDailySpendUsd<m.maximumSpendUsd&&a.addIssue({code:"custom",path:["maximumDailySpendUsd"],message:"The daily budget must cover one update."})});export{t as a};
@@ -0,0 +1,40 @@
1
+ import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
+ import{a as pt}from"./chunk-SYUKES6H.js";import{a as A,b as L}from"./chunk-KVTBX2UP.js";import{a as dt}from"./chunk-IZ6DLEVY.js";import{b as re,m as mt,s as ft,t as oe,y as gt,z as se}from"./chunk-XW6HGSIT.js";import{d as ut,g as Te}from"./chunk-KG325WTN.js";import{O as ct,r as at,z as Ie}from"./chunk-QOTVNQDI.js";import{e as st}from"./chunk-OQPJ7FJF.js";import{K as it}from"./chunk-WJ43MJ3F.js";import{J as ne,L as lt}from"./chunk-QOGJAQDO.js";import{I as _e}from"./chunk-Z4Z5UOZM.js";import{a as i,c as Re,e as Pn}from"./chunk-FTQLQJQV.js";var kt=Re((is,yt)=>{"use strict";var Cn=["||","&&",";;","|&","<(","<<<",">>",">&","<&","&",";","(",")","|","<",">"],ht=/[\n\r\u2028\u2029]/,En=/[\s#!"$&'():;<=>@\\^`|]/g;yt.exports=i(function(t){return t.map(function(n){if(n==="")return"''";if(n&&typeof n=="object"){if("op"in n&&n.op==="glob"){if(typeof n.pattern!="string")throw new TypeError("glob token requires a string `pattern`");if(ht.test(n.pattern))throw new TypeError("glob `pattern` must not contain line terminators");return n.pattern.replace(En,"\\$&")}if("op"in n&&typeof n.op=="string"){if(Cn.indexOf(n.op)<0)throw new TypeError("invalid `op` value: "+JSON.stringify(n.op));return n.op.replace(/[\s\S]/g,"\\$&")}if("comment"in n&&typeof n.comment=="string"){if(ht.test(n.comment))throw new TypeError("`comment` must not contain line terminators");return"#"+n.comment}throw new TypeError("unrecognized object token shape")}return/["\s\\]/.test(n)&&!/'/.test(n)?"'"+n.replace(/(['])/g,"\\$1")+"'":/["'\s]/.test(n)?'"'+n.replace(/(["\\$`!])/g,"\\$1")+'"':String(n).replace(/([A-Za-z]:)?([#!"$&'()*,:;<=>?@[\\\]^`{|}~])/g,"$1\\$2")}).join(" ")},"quote")});var Tt=Re((cs,It)=>{"use strict";var _t="(?:"+["\\|\\|","\\&\\&",";;","\\|\\&","\\<\\(","\\<\\<\\<",">>",">\\&","<\\&","[&;()|<>]"].join("|")+")",wt=new RegExp("^"+_t+"$"),bt="|&;()<> \\t",Mn="'([^']*?)'",Wn='"((\\\\"|[^"])*?)"',On=/^#$/,xt="'",Rt='"',ie="$",D="",qn=4294967296;for(ve=0;ve<4;ve++)D+=(qn*Math.random()).toString(16);var ve,jn=new RegExp("^"+D);function Bn(e,t){for(var n=t.lastIndex,r=[],o;o=t.exec(e);)r[r.length]=o,t.lastIndex===o.index&&(t.lastIndex+=1);return t.lastIndex=n,r}i(Bn,"matchAll");function $n(e,t,n){var r=typeof e=="function"?e(n):e[n];return typeof r>"u"&&n!=""?r="":typeof r>"u"&&(r="$"),typeof r=="object"?t+D+JSON.stringify(r)+D:t+r}i($n,"getVar");function Nn(e,t,n){n||(n={});var r=n.escape||"\\",o=n.splitUnquoted===!0?`
3
+ `:typeof n.splitUnquoted=="string"?n.splitUnquoted:"",s="(\\"+r+`['"`+bt+`]|[^\\s'"`+bt+"])+",a=new RegExp(["("+_t+")","("+s+"|"+Wn+"|"+Mn+")+"].join("|"),"g"),d=Bn(e,a);if(d.length===0)return[];t||(t={});var c=!1;return d.map(function(l){var u=l[0];if(!u||c)return;if(wt.test(u))return{op:u};var p=!1,f=!1,m="",h=[],W=!1,x=null,ye=!1,b;function tt(){b+=1;var I,V,be=u.charAt(b);if(be==="{"){if(b+=1,u.charAt(b)==="}")throw new Error("Bad substitution: "+u.slice(b-2,b+1));var te=1;for(I=b;te>0&&I<u.length;)u.charAt(I)==="{"&&u.charAt(I-1)==="$"?te+=1:u.charAt(I)==="}"&&(te-=1),I+=1;if(te!==0)throw new Error("Bad substitution: "+u.slice(b));I-=1,V=u.slice(b,I),b=I}else if(/[*@#?$!_-]/.test(be))V=be,b+=1;else{var xe=u.slice(b);I=xe.match(/[^\w\d_]/),I?(V=xe.slice(0,I.index),b+=I.index-1):(V=xe,b=u.length)}return $n(t,"",V)}i(tt,"parseEnvVar");function nt(){if(x!==null){if(x===0)m!==""&&(h[h.length]=m,m="");else{h[h.length]=m,m="";for(var I=1;I<x;I+=1)h[h.length]=""}x=null}}for(i(nt,"flushRun"),b=0;b<u.length;b++){var k=u.charAt(b);if(o&&k!==ie&&nt(),ye=ye||!p&&(k==="*"||k==="?"),f)m+=k,f=!1;else if(p)k===p?p=!1:p==xt?m+=k:k===r?(b+=1,k=u.charAt(b),k===Rt||k===r||k===ie?m+=k:m+=r+k):k===ie?m+=tt():m+=k;else if(k===Rt||k===xt)p=k,W=!0;else{if(wt.test(k))return{op:u};if(On.test(k)){c=!0;var rt={comment:e.slice(l.index+b+1)};return m.length?[m,rt]:[rt]}else if(k===r)f=!0;else if(k===ie){var ke=tt();if(!o)m+=ke;else for(var we=0;we<ke.length;we+=1){var O=ke.charAt(we);o.indexOf(O)<0?(nt(),m+=O):x===null?x=O===" "||O===" "||O===`
4
+ `?0:1:O!==" "&&O!==" "&&O!==`
5
+ `&&(x+=1)}}else m+=k}}if(ye)return{op:"glob",pattern:m};if(o){if(x!==null&&x>0){h[h.length]=m,m="";for(var ot=1;ot<x;ot+=1)h[h.length]=""}return(m!==""||W&&h.length===0)&&(h[h.length]=m),h}return m}).reduce(function(l,u){return typeof u>"u"||[].concat(u).forEach(function(p){l[l.length]=p}),l},[])}i(Nn,"parseInternal");It.exports=i(function(t,n,r){var o=Nn(t,n,r);return typeof n!="function"?o:o.reduce(function(s,a){if(typeof a=="object")return s[s.length]=a,s;var d=a.split(RegExp("("+D+".*?"+D+")","g"));return d.length===1?(s[s.length]=d[0],s):(d.filter(Boolean).forEach(function(c){s[s.length]=jn.test(c)?JSON.parse(c.split(D)[1]):c}),s)},[])},"parse")});var vt=Re(Se=>{"use strict";Se.quote=kt();Se.parse=Tt()});var Mt=Pn(vt(),1);import{spawn as Ln}from"node:child_process";import{randomUUID as Dn}from"node:crypto";import le from"node:path";var Fn=120,Un=3600,de=6e4,St=2e4,zn="Select a project to use this.";function bs(e){let{upsertApproval:t,appendRuntimeEvent:n}=e,r=new Map,o=new Set;async function s(c){let l=c.command.trim();if(!l)return ce(l,null,"Command is empty.",Pt(c.timeoutSeconds));let u=Pt(c.timeoutSeconds),p=A({session:c.session}),f=Xn({requestedCwd:c.cwd,session:c.session}),m=!!(c.cwd?.trim()&&le.isAbsolute(c.cwd.trim()));if(p.target==="sandbox"||!f||p.target!=="local"&&!m)return ce(l,f,zn,u);let h=c.session.openPondCommandAccessMode??_e;if(h==="disabled")return ce(l,f,"Command access is disabled for this chat.",u);let W=Hn(l);if(h==="ask"&&!o.has(At(c.session.id,W))){let x=await d({command:l,cwd:f,family:W,input:c,timeoutSeconds:u});if(x==="acceptForSession"&&o.add(At(c.session.id,W)),x!=="accept"&&x!=="acceptForSession")return ce(l,f,x==="cancel"?"Command was cancelled.":"Command was not approved.",u)}return Yn({command:l,cwd:f,timeoutSeconds:u,signal:c.signal})}i(s,"executeCommand");async function a(c,l){let u=r.get(c);if(!u)return null;let p=it.parse(l);r.delete(c);let f=Qn(p.decision),m={...u.approval,status:f};return await t(m),await n(Te({sessionId:m.sessionId,turnId:m.turnId??void 0,name:"approval.resolved",source:"server",action:"command",status:f==="accepted"||f==="accepted_for_session"?"completed":"failed",output:m.title,data:{approvalId:c,status:f,decision:p.decision,family:u.family}})),u.resolve(p.decision),m}i(a,"resolveApproval");async function d(c){let l={id:`approval_${Dn()}`,sessionId:c.input.session.id,turnId:c.input.turnId??null,providerRequestId:c.input.providerRequestId??c.input.turnId??c.input.session.id,kind:"command",title:c.command,detail:JSON.stringify({command:c.command,cwd:c.cwd,timeoutSeconds:c.timeoutSeconds,source:c.input.source,mode:c.input.session.openPondCommandAccessMode??_e,risk:Vn(c.command),sessionApprovalFamily:{key:c.family.key,label:c.family.label,broad:c.family.broad,reason:c.family.reason}},null,2),status:"pending",createdAt:ut()},u,p=new Promise(f=>{u=f});r.set(l.id,{approval:l,family:c.family,resolve:u});try{await t(l),await n(Te({sessionId:c.input.session.id,turnId:c.input.turnId??void 0,name:"approval.requested",source:"server",action:"command",appId:c.input.session.appId,status:"pending",output:l.title,data:l}))}catch(f){throw r.delete(l.id),f}return p}return i(d,"requestCommandApproval"),{executeCommand:s,resolveApproval:a}}i(bs,"createOpenPondCommandAccessService");function Wt(e){return JSON.stringify({ok:e.ok,action:"exec_command",output:Zn(e),data:{command:e.command,cwd:e.cwd,exitCode:e.exitCode,stdout:Et(e.stdout),stderr:Et(e.stderr),timedOut:e.timedOut,timeoutSeconds:e.timeoutSeconds,truncated:e.truncated,blockedReason:e.blockedReason}},null,2)}i(Wt,"commandResultForModel");function Hn(e){let t=Jn(e);if(!t)return ae(e,"Could not safely parse shell command.");let n=Kn(t);if(n===-1)return ae(e,"Could not find command executable.");if(Gn(t))return ae(e,"Shell operators require exact-command session approval.");let r=t[n],o=t[n+1]??null;return r==="pwd"?X("pwd","pwd","Allowlisted read-only command."):r==="ls"?X("ls","ls","Allowlisted directory listing command."):r==="git"&&o==="status"?X("git status","git status","Allowlisted git status family."):r==="docker"&&o==="system"?X("docker system","docker system","Allowlisted Docker system inspection family."):r==="bun"&&o==="run"?X("bun run","bun run","Allowlisted Bun script execution family."):ae(e,"Command is not in the broad session-approval allowlist.")}i(Hn,"classifyCommandFamily");function Jn(e){try{let t=(0,Mt.parse)(e),n=[];for(let r of t){if(typeof r=="string"){n.push(r);continue}if(!r||typeof r!="object")return null;let o=r.op;if(typeof o=="string"){n.push(o);continue}return null}return n}catch{return null}}i(Jn,"safeShellTokens");function Kn(e){for(let t=0;t<e.length;t+=1){let n=e[t];if(!/^[A-Za-z_][A-Za-z0-9_]*=.*/.test(n))return t}return-1}i(Kn,"firstCommandTokenIndex");function Gn(e){return e.some(t=>/^(?:\||&&|\|\||;|&|<|>|\(|\)|\{|\})$/.test(t))}i(Gn,"hasUnsafeShellSyntax");function X(e,t,n){return{key:e,label:t,broad:!0,reason:n}}i(X,"broadFamily");function ae(e,t){return{key:`exact:${e}`,label:e,broad:!1,reason:t}}i(ae,"exactCommandFamily");function At(e,t){return`${e}:${t.key}`}i(At,"sessionFamilyKey");function Vn(e){let t=e.toLowerCase();return/\b(?:sudo|rm\s+-rf|mkfs|dd\s+if=|docker\s+(?:volume\s+rm|system\s+prune|container\s+rm)|kill(?:all)?)\b/.test(t)?"danger":/\b(?:npm|pnpm|yarn|bun)\s+(?:install|add|remove)|\bgit\s+(?:commit|push|reset|checkout|merge|rebase)|[>|]|\b(?:mv|cp|rm|touch|mkdir|docker\s+(?:run|build|compose))\b/.test(t)?"write":"read"}i(Vn,"commandRiskLabel");function Xn(e){let t=e.requestedCwd?.trim();return t?le.isAbsolute(t)?le.resolve(t):e.session.cwd?le.resolve(e.session.cwd,t):null:e.session.cwd?.trim()||null}i(Xn,"resolveCommandCwd");function Pt(e){return Number.isFinite(e??NaN)?Math.max(1,Math.min(Math.floor(e),Un)):Fn}i(Pt,"normalizedTimeout");function ce(e,t,n,r){return{ok:!1,command:e,cwd:t,exitCode:null,stdout:"",stderr:n,timedOut:!1,timeoutSeconds:r,truncated:!1,blockedReason:n}}i(ce,"blockedCommandResult");function Yn(e){return new Promise(t=>{let n=!1,r=!1,o="",s="",a=!1,d=null,c=pt(e.command),l=Ln(c.command,{cwd:e.cwd,shell:c.shell,env:{...process.env,PATH:dt()},stdio:["ignore","pipe","pipe"],detached:process.platform!=="win32"}),u=i(h=>{n||(n=!0,clearTimeout(m),d&&clearTimeout(d),e.signal?.removeEventListener("abort",f),t(h))},"finish"),p=i((h,W)=>{let x=W.toString("utf8");h==="stdout"?o=Ae(o,x):s=Ae(s,x),o.length+s.length>=de&&(a=!0)},"appendOutput"),f=i(()=>{Pe(l,"SIGTERM"),u({ok:!1,command:e.command,cwd:e.cwd,exitCode:null,stdout:o,stderr:s||"Command was interrupted.",timedOut:!1,timeoutSeconds:e.timeoutSeconds,truncated:a,blockedReason:"Command was interrupted."}),Ct(l)},"abort"),m=setTimeout(()=>{r=!0,Pe(l,"SIGTERM"),d=Ct(l)},e.timeoutSeconds*1e3);e.signal?.addEventListener("abort",f,{once:!0}),l.stdout?.on("data",h=>p("stdout",h)),l.stderr?.on("data",h=>p("stderr",h)),l.on("error",h=>{u({ok:!1,command:e.command,cwd:e.cwd,exitCode:null,stdout:o,stderr:h.message,timedOut:r,timeoutSeconds:e.timeoutSeconds,truncated:a,blockedReason:null})}),l.on("close",h=>{u({ok:!r&&(h??1)===0,command:e.command,cwd:e.cwd,exitCode:r?null:h??1,stdout:o,stderr:r?Ae(s,`
6
+ Command timed out after ${e.timeoutSeconds}s.`):s,timedOut:r,timeoutSeconds:e.timeoutSeconds,truncated:a,blockedReason:null})})})}i(Yn,"runShellCommand");function Pe(e,t){if(e.pid&&process.platform!=="win32")try{process.kill(-e.pid,t);return}catch{}e.kill(t)}i(Pe,"terminateShellProcessTree");function Ct(e){let t=setTimeout(()=>Pe(e,"SIGKILL"),1e3);return t.unref(),t}i(Ct,"scheduleShellProcessTreeKill");function Ae(e,t){if(e.length>=de)return e;let n=`${e}${t}`;return n.length<=de?n:`${n.slice(0,de)}
7
+ [command output truncated]`}i(Ae,"appendLimited");function Et(e){return e.length<=St?e:`${e.slice(0,St)}
8
+ [command output truncated for model]`}i(Et,"trimForModel");function Zn(e){if(e.blockedReason)return e.blockedReason;if(e.timedOut)return`Command timed out after ${e.timeoutSeconds}s.`;let t=e.exitCode??1;return t===0?"Command completed successfully.":`Command exited with code ${t}.`}i(Zn,"commandResultSummary");function Qn(e){return e==="accept"?"accepted":e==="acceptForSession"?"accepted_for_session":e==="cancel"?"cancelled":"declined"}i(Qn,"approvalStatusForDecision");import{createHash as ho}from"node:crypto";function Ce(e){return`tool-output:${encodeURIComponent(e)}`}i(Ce,"toolOutputResourceRef");function Ee(e){let t=Math.max(512,Math.floor(e.maxChars??8e3));if(e.output.length<=t)return{output:e.output,spill:null};let n=Math.ceil(t/2),r=Math.max(1,t-n),o=Ce(e.callId),s=n+r;return{output:[e.output.slice(0,n),`[tool output spilled: ${e.output.length-s} characters omitted; read ${o} with offsetBytes to page the durable output]`,e.output.slice(-r)].join(`
9
+
10
+ `),spill:{resourceRef:o,originalChars:e.output.length,returnedChars:s,omittedChars:e.output.length-s}}}i(Ee,"toolOutputSpillForModel");function _s(e){let t=Ee({output:e.output,callId:e.resourceRef.replace(/^tool-output:/,""),maxChars:e.maxChars??4e3});return t.spill?t.output.replace(t.spill.resourceRef,e.resourceRef):e.output}i(_s,"toolOutputPreviewForCompaction");var Ot=2e4,er=new Set(["remoteUrl","repoPath","workspacePath","expectedRemoteUrl"]),qt={resource_read:[{key:"ref",type:"nonEmptyString",description:"resource ref such as workspace:file:package.json"}],resource_search:[{key:"scope",type:"nonEmptyString",description:"resource scope such as workspace"},{key:"query",type:"nonEmptyString",description:"search text or path fragment"}],read_files:[{key:"paths",type:"stringArray",description:"one or more workspace-relative file paths"}],search_files:[{key:"query",type:"nonEmptyString",description:"search text or regex"}],preview_write_file:[{key:"path",type:"nonEmptyString",description:"workspace-relative file path"},{key:"content",type:"string",description:"complete file contents"}],write_file:[{key:"path",type:"nonEmptyString",description:"workspace-relative file path"},{key:"content",type:"string",description:"complete file contents"}],preview_write_files:[{key:"files",type:"stringRecord",description:"object mapping workspace-relative paths to complete file contents"}],write_files:[{key:"files",type:"stringRecord",description:"object mapping workspace-relative paths to complete file contents"}],preview_edit_file:[{key:"path",type:"nonEmptyString",description:"workspace-relative file path"},{key:"oldText",type:"nonEmptyString",description:"exact text currently in the file"},{key:"newText",type:"string",description:"replacement text; use an empty string only for deletion"}],edit_file:[{key:"path",type:"nonEmptyString",description:"workspace-relative file path"},{key:"oldText",type:"nonEmptyString",description:"exact text currently in the file"},{key:"newText",type:"string",description:"replacement text; use an empty string only for deletion"}],preview_delete_file:[{key:"path",type:"nonEmptyString",description:"workspace-relative file path"}],delete_file:[{key:"path",type:"nonEmptyString",description:"workspace-relative file path"}],git_commit:[{key:"message",type:"nonEmptyString",description:"commit message"}],sandbox_read_file:[{key:"path",type:"nonEmptyString",description:"sandbox file path"}],sandbox_search_files:[{key:"query",type:"nonEmptyString",description:"search text or regex"}],sandbox_write_file:[{key:"path",type:"nonEmptyString",description:"sandbox file path"},{key:"content",type:"string",description:"complete file contents"}],sandbox_edit_file:[{key:"path",type:"nonEmptyString",description:"sandbox file path"},{key:"oldText",type:"nonEmptyString",description:"exact text currently in the sandbox file"},{key:"newText",type:"string",description:"replacement text; use an empty string only for deletion"}],sandbox_delete_file:[{key:"path",type:"nonEmptyString",description:"sandbox file path"}],sandbox_mkdir:[{key:"path",type:"nonEmptyString",description:"sandbox directory path"}],sandbox_move_file:[{key:"fromPath",type:"nonEmptyString",description:"sandbox source path"},{key:"toPath",type:"nonEmptyString",description:"sandbox target path"}],sandbox_exec:[{key:"command",type:"nonEmptyString",description:"bounded shell command to run in the sandbox"}],sandbox_git_branch:[{key:"branch",type:"nonEmptyString",description:"sandbox git branch name"}],sandbox_git_commit:[{key:"message",type:"nonEmptyString",description:"sandbox git commit message"}],sandbox_run_action:[{key:"actionName",type:"nonEmptyString",description:"YAML action name from the project or agent registry"}],sandbox_snapshot_create:[{key:"name",type:"nonEmptyString",description:"snapshot name"}],sandbox_snapshot_update:[{key:"snapshotId",type:"nonEmptyString",description:"snapshot id"}],sandbox_snapshot_validate:[{key:"snapshotId",type:"nonEmptyString",description:"snapshot id"}],sandbox_snapshot_publish:[{key:"snapshotId",type:"nonEmptyString",description:"snapshot id"}],sandbox_replay_start:[{key:"snapshotId",type:"nonEmptyString",description:"published replayable snapshot id"}],sandbox_replay_get:[{key:"replayId",type:"nonEmptyString",description:"sandbox replay run id"}],sandbox_replay_logs:[{key:"replayId",type:"nonEmptyString",description:"sandbox replay run id"}],sandbox_replay_artifacts:[{key:"replayId",type:"nonEmptyString",description:"sandbox replay run id"}],sandbox_replay_cancel:[{key:"replayId",type:"nonEmptyString",description:"sandbox replay run id"}]},tr=["Workspace tools are available through a strict text protocol.","When you need to inspect or change the app workspace, respond with exactly one fenced block labelled openpond_tool and no other prose.",'The block must contain JSON: {"action":"read_files","args":{"paths":["package.json"]}}.',"Available actions: create_sandbox_template_scaffold, resource_search, resource_read, workspace_status, list_files, read_files, search_files, preview_write_files, preview_write_file, preview_edit_file, preview_delete_file, write_files, write_file, edit_file, delete_file, validate_sandbox_template, build_sandbox_template, run_sandbox_template, git_init, git_status, git_diff, git_fetch, git_commit, git_push, publish_openpond_repo, sandbox_create, sandbox_templates, sandbox_template_launch, sandbox_status, sandbox_list_files, sandbox_read_file, sandbox_search_files, sandbox_upload_file, sandbox_write_file, sandbox_edit_file, sandbox_delete_file, sandbox_mkdir, sandbox_move_file, sandbox_exec, sandbox_git_status, sandbox_git_diff, sandbox_git_export_patch, sandbox_git_apply_patch_local, sandbox_git_branch, sandbox_git_commit, sandbox_git_pull, sandbox_git_push, sandbox_preserve_source, sandbox_promote_source, sandbox_run_action, sandbox_open_port, sandbox_snapshot_catalog, sandbox_snapshot_create, sandbox_snapshot_update, sandbox_snapshot_validate, sandbox_snapshot_publish, sandbox_replays, sandbox_replay_start, sandbox_replay_get, sandbox_replay_logs, sandbox_replay_artifacts, sandbox_replay_cancel, sandbox_logs, sandbox_receipts, sandbox_stop.","Required args: resource_search {scope, query}; resource_read {ref}; read_files {paths}; search_files {query}; write_file/preview_write_file {path, content}; write_files/preview_write_files {files}; edit_file/preview_edit_file {path, oldText, newText}; delete_file/preview_delete_file {path}; git_commit {message}; run_sandbox_template {optional mode/target/params/uploads/sandboxId}; sandbox_create {optional repo/teamId/projectId/agentId/command/visibility/resources/budget/quotas/metadata/runtime/workflowMode/runtimeProfileId/runtimeBaseBranch/runtimePromotionPolicy/attachToSession}; sandbox_templates {optional teamId/projectId/q/name/version/tag/useCase}; sandbox_template_launch {snapshotId or templateName or useCase, optional teamId/projectId/version/visibility/resources/budget/quotas/metadata/attachToSession}; sandbox_read_file {path, optional sandboxId}; sandbox_search_files {query, optional sandboxId}; sandbox_upload_file {path, contentsBase64, optional sandboxId}; sandbox_write_file {path, content, optional sandboxId}; sandbox_edit_file {path, oldText, newText, optional sandboxId}; sandbox_delete_file {path, optional recursive/sandboxId}; sandbox_mkdir {path, optional recursive/sandboxId}; sandbox_move_file {fromPath, toPath, optional overwrite/sandboxId}; sandbox_exec {command, optional sandboxId}; sandbox_git_export_patch {optional baseRef/sandboxId}; sandbox_git_apply_patch_local {optional baseRef/sandboxId/localProjectId}; sandbox_git_branch {branch, optional create/startPoint/sandboxId}; sandbox_git_commit {message, optional all/paths/sandboxId}; sandbox_preserve_source {optional message/runtimeId/sandboxId}; sandbox_promote_source {optional expectedTargetSha/runtimeId/sandboxId}; sandbox_run_action {actionName, optional sandboxId/projectId/agentId/input}; sandbox_open_port {port, optional sandboxId}; sandbox_snapshot_create {name, optional sandboxId/template/replay}; sandbox_snapshot_update/validate/publish {snapshotId, optional sandboxId}; sandbox_replay_start {snapshotId, optional teamId/projectId/entrypoint/params/budget/artifactPaths}; sandbox_replay_get/logs/artifacts/cancel {replayId}.",'Prefer resource_search with scope workspace to find candidate files, then resource_read on returned refs to inspect stable, metadata-rich resources with explicit truncation. Use targeted path or identifier queries with limit 5-10; avoid repeated broad one-word searches unless the word is an exact component/function/file identifier. Workspace resource_search defaults to exact literal path/text search; pass filters.mode="path" for file/path lookup and filters.mode="ranked" for broad multi-term retrieval. Use read_files only when you already know exact paths and need raw file contents.',"For edit_file and sandbox_edit_file, oldText must exactly match existing file text. For targeted edits, include enough surrounding context for oldText to match exactly once; multi-match edits fail unless args.replaceAll is true. If you are not certain, call read_files or sandbox_read_file first.","Use write_files for multi-file edits so validation/build runs once after the batch.","Local write, edit, and delete actions return a pre-write diff preview plus validation/build results. Sandbox file actions return sandbox API read/write/delete results.","If a tool result has ok:false, inspect its output/data and repair the specific issue before trying to commit, push, or deploy.","Use sandbox_create to create or resume a sandbox runtime-backed remote sandbox from chat. When projectId or agentId is provided, sandbox_create reuses that project's or agent's default sandbox runtime unless args.runtime.runtimeId selects a specific runtime. Use sandbox_templates to find published project templates, and sandbox_template_launch to start from a published template. Use sandbox_edit_file for exact text edits after reading the sandbox file. Use sandbox_git_export_patch to export a portable patch without mutating local files, sandbox_git_apply_patch_local only after explicit user confirmation to apply the sandbox patch to the linked local checkout, sandbox_preserve_source to commit active changes back to the runtime source ref, and sandbox_promote_source only when the user asks to apply the preserved source ref to the Project branch. Use sandbox_run_action to execute a named action from openpond.yaml; when projectId or agentId is provided and args.sandboxId is omitted, sandbox_run_action starts a detached sandbox for that project or agent and then runs the action. By default, sandbox_create or sandbox_template_launch binds the chat session to that sandbox workspace; set args.attachToSession false for one-off tool-style execution that should leave the current chat scope unchanged.","Use sandbox_snapshot_create, sandbox_snapshot_validate, and sandbox_snapshot_publish when the user asks to preserve a sandbox as a replayable or launchable template. Use sandbox_replay_start and replay read/log/artifact tools for durable runs that should survive sandbox cleanup.","When the active workspace is a sandbox, use only sandbox_* actions for workspace inspection, file changes, commands, previews, logs, receipts, and stopping compute.","When you finish after workspace actions, answer in a concise Codex-style markdown format: brief outcome first, then Changed Files when files changed, then Verification when checks ran.","Do not use emojis in responses, generated prompts, templates, profile text, comments, or sample output unless the user explicitly asks for them.","Do not mention raw tool JSON, internal repo paths, or origin/remote URLs unless the user explicitly asks for those details or they are necessary to explain a git/deploy failure.","After a tool result is returned, either request the next tool the same way or answer the user normally."].join(`
11
+ `),nr=["Workspace resource tools are available through a narrow text fallback protocol.","Prefer native function tools when they are available. Use this fallback only if native tool calling fails or is unavailable in the current model turn.","When you need to inspect the app workspace through the fallback, respond with exactly one fenced block labelled openpond_tool and no other prose.",'The block must contain JSON such as {"action":"resource_search","args":{"scope":"workspace","query":"package.json"}}.',"Available fallback actions: resource_search, resource_read.","Required args: resource_search {scope, query}; resource_read {ref}.",'Use resource_search first to find stable refs, then resource_read on returned refs. Use targeted path or identifier queries with limit 5-10; avoid repeated broad one-word searches unless the word is an exact component/function/file identifier. Workspace resource_search defaults to exact literal path/text search; pass filters.mode="path" for file/path lookup and filters.mode="ranked" for broad multi-term retrieval. Do not use broad legacy actions such as list_files, read_files, search_files, sandbox_read_file, or sandbox_search_files in this fallback mode.',"After a resource result is returned, either request another resource_search/resource_read fallback call or answer the user normally."].join(`
12
+ `);function As(e){return e==="none"?null:e==="resource_text_fallback"?nr:tr}i(As,"hostedToolProtocolForInstructionMode");function rr(e){return e.length<=Ot?e:`${e.slice(0,Ot)}
13
+
14
+ [tool result truncated]`}i(rr,"truncate");function or(e){let t;try{t=JSON.parse(e.trim())}catch{return[]}let n=at.safeParse(t);return n.success?[n.data]:[]}i(or,"parseToolPayload");function Ps(e){let t=[],n=new Set,r=i(o=>{for(let s of o){let a=JSON.stringify(s);n.has(a)||(n.add(a),t.push(s))}},"add");for(let o of e.matchAll(/```openpond_tool\s*([\s\S]*?)```/gi))r(or(o[1]??""));return t}i(Ps,"extractWorkspaceToolRequests");function sr(e){let t;try{t=JSON.parse(e.trim())}catch{return[]}let n=[];if(!t||typeof t!="object"||Array.isArray(t))return n;let r=t.name;return typeof r=="string"&&r.trim()&&n.push({name:r.trim()}),n}i(sr,"parseProfileSkillReadPayload");function Cs(e){let t=[],n=new Set,r=i(o=>{for(let s of o)n.has(s.name)||(n.add(s.name),t.push(s))},"add");for(let o of e.matchAll(/```openpond_skill\s*([\s\S]*?)```/gi))r(sr(o[1]??""));return t}i(Cs,"extractProfileSkillReadRequests");function jt(e){return e.type==="nonEmptyString"?`${e.key}: non-empty string (${e.description})`:e.type==="string"?`${e.key}: string (${e.description})`:e.type==="stringArray"?`${e.key}: non-empty array of strings (${e.description})`:e.type==="stringRecord"?`${e.key}: non-empty object of string values (${e.description})`:`${e.key}: non-empty object (${e.description})`}i(jt,"expectedText");function J(e,t){return{path:`args.${e.key}`,message:t,expected:jt(e)}}i(J,"issueFor");function ir(e,t){let n=e[t.key];if(t.type==="nonEmptyString")return typeof n!="string"||!n.trim()?J(t,`${t.key} is required`):null;if(t.type==="string")return typeof n!="string"?J(t,`${t.key} must be a string`):null;if(t.type==="stringArray")return!Array.isArray(n)||n.length===0||n.some(o=>typeof o!="string"||!o.trim())?J(t,`${t.key} must be a non-empty array of strings`):null;if(!n||typeof n!="object"||Array.isArray(n))return J(t,t.type==="record"?`${t.key} must be an object`:`${t.key} must be an object of file paths to content strings`);if(t.type==="record")return Object.keys(n).length>0?null:J(t,`${t.key} must not be empty`);let r=Object.entries(n);return r.length===0||r.some(([o,s])=>!o.trim()||typeof s!="string")?J(t,`${t.key} must map one or more file paths to string content`):null}i(ir,"validateArg");function ar(e){return(qt[e]??[]).map(jt)}i(ar,"requiredArgsForWorkspaceTool");function Es(e){let t=qt[e.action]??[],n=[];for(let r of t){let o=ir(e.args,r);o&&n.push(o)}return n}i(Es,"validateWorkspaceToolRequest");function Ms(e,t){let n={ok:!1,action:e.action,output:[`Invalid ${e.action} tool request.`,t.map(r=>`${r.path}: ${r.message}; expected ${r.expected}`).join(" "),"Retry with the required args. If you need exact file text for an edit, call read_files first."].join(" "),data:{validationError:!0,issues:t,requiredArgs:ar(e.action),receivedArgs:e.args}};return We(n)}i(Ms,"formatWorkspaceToolValidationErrorForModel");function Me(e){if(Array.isArray(e))return e.map(Me);if(!e||typeof e!="object")return e;let t={};for(let[n,r]of Object.entries(e))er.has(n)||(t[n]=Me(r));return t}i(Me,"dataForModel");function We(e,t={}){let n=t.outputResourceRef?Ee({output:e.output,callId:t.outputResourceRef.replace(/^tool-output:/,"")}):{output:e.output,spill:null};return rr(JSON.stringify({ok:e.ok,action:e.action,appId:e.appId??null,output:n.output,...n.spill?{outputSpill:n.spill}:{},data:Me(e.data??null)},null,2))}i(We,"formatWorkspaceToolResultForModel");function C(e,t,n){let r=Ce(e),o=n.data&&typeof n.data=="object"&&!Array.isArray(n.data)?n.data:{result:n.data??null};return{toolCallId:e,name:t,ok:n.ok,contentText:We(n,{outputResourceRef:r}),data:{...o,outputResourceRef:r}}}i(C,"workspaceToolResultToModelToolResult");import{promises as $}from"node:fs";import M from"node:path";import{promises as qe}from"node:fs";import j from"node:path";import{promises as R}from"node:fs";import v from"node:path";function Oe(e){let t=e.replace(/\\/g,"/").replace(/^\.\/+/,"");if(!t.trim())throw new Error("Path is required");if(t.startsWith("/"))throw new Error("Absolute paths are not allowed");let n=t.split("/").filter(Boolean);if(n.length===0)throw new Error("Path is required");if(n.some(r=>r===".."||r===".git"))throw new Error("Path escapes are not allowed");return n.join("/")}i(Oe,"normalizeWorkspacePath");function q(e,t){let n=v.resolve(e),r=v.resolve(t);if(r!==n&&!r.startsWith(`${n}${v.sep}`))throw new Error("Path escapes the workspace root")}i(q,"assertInside");async function Y(e,t){let n=Oe(t),r=v.resolve(e,n);q(e,r);let o=await R.realpath(e),s=await R.realpath(r);return q(o,s),{relativePath:n,targetPath:s}}i(Y,"resolveForRead");async function cr(e,t){let n=Oe(t),r=v.resolve(e,n);q(e,r);try{let o=await R.realpath(e),s=await R.realpath(r);q(o,s)}catch(o){if(o.code!=="ENOENT")throw o;let s=v.dirname(r);await R.mkdir(s,{recursive:!0});let a=await R.realpath(e),d=await R.realpath(s);q(a,d)}return{relativePath:n,targetPath:r}}i(cr,"resolveForWrite");async function lr(e,t){let n=v.dirname(e),r=v.resolve(t);for(;n!==v.dirname(n);){if(n===r||n.startsWith(`${r}${v.sep}`))try{if((await R.lstat(n)).isDirectory())return n}catch(o){if(o.code!=="ENOENT")throw o}if(n===r)break;n=v.dirname(n)}return r}i(lr,"nearestExistingParent");async function Us(e,t){let n=Oe(t),r=v.resolve(e,n);q(e,r);let o=await R.realpath(e);try{let s=await R.realpath(r);q(o,s)}catch(s){if(s.code!=="ENOENT")throw s;let a=await lr(r,e),d=await R.realpath(a);q(o,d)}return{relativePath:n,targetPath:r}}i(Us,"resolveForPreview");async function $t(e){let t=await re("git",["ls-files","--cached","--others","--exclude-standard"],e);return t.code===0?gt(t.stdout.split(`
15
+ `).map(n=>n.trim()).filter(Boolean).filter(n=>!oe(n))):se(e)}i($t,"visibleFiles");async function Nt(e){return $t(e)}i(Nt,"listWorkspaceFiles");async function dr(e,t){let n=[];for(let r of t){let{relativePath:o,targetPath:s}=await Y(e,r);if(!(await R.lstat(s)).isFile())throw new Error(`Not a file: ${o}`);let d=await R.readFile(s,"utf8");n.push({path:o,content:d.length>12e4?`${d.slice(0,12e4)}
16
+
17
+ [file truncated]`:d})}return n}i(dr,"readWorkspaceFiles");async function zs(e,t){let n=t.trim();if(!n)throw new Error("Search query is required");let r=[];for(let o of await $t(e)){let s;try{s=(await dr(e,[o]))[0]?.content??""}catch{continue}let a=s.split(/\r?\n/);for(let[d,c]of a.entries())if(c.includes(n)&&(r.push({path:o,line:d+1,text:c.slice(0,500)}),r.length>=100))return r}return r}i(zs,"searchWorkspaceFiles");async function Hs(e,t,n){let{relativePath:r,targetPath:o}=await cr(e,t);return await R.writeFile(o,n,"utf8"),{path:r}}i(Hs,"writeWorkspaceFile");async function Js(e,t,n,r,o={}){let{relativePath:s,targetPath:a}=await Y(e,t),d=await R.readFile(a,"utf8");if(!n)throw new Error("oldText is required");let c=d.split(n).length-1;if(c===0)throw new Error(`Text not found in ${s}`);if(c>1&&!o.replaceAll)throw new Error(`Text matched ${c} times in ${s}; provide a longer oldText that matches only the intended location, or set replaceAll true.`);return await R.writeFile(a,d.split(n).join(r),"utf8"),{path:s,replacements:c}}i(Js,"editWorkspaceFile");async function Ks(e,t){let{relativePath:n,targetPath:r}=await Y(e,t);if(!(await R.lstat(r)).isFile())throw new Error(`Not a file: ${n}`);return await R.unlink(r),{path:n}}i(Ks,"deleteWorkspaceFile");var ur=20,pr=100,Q=12e4,Ft=4,Lt=1.2,Dt=.75,mr=new Set([".7z",".avif",".db",".gif",".gz",".ico",".jpeg",".jpg",".mov",".mp4",".pdf",".png",".sqlite",".tar",".webp",".xls",".xlsm",".xlsx",".zip"]);async function fr(e){if(e.request.scope!=="workspace")throw new Error(`Unsupported resource search scope: ${e.request.scope}`);let t=e.request.query.trim();if(!t)throw new Error("Resource search query is required");let n=qr(e.request.limit,ur,pr),r=Cr(e.request.filters),o=await Er(e.repoPath),s=Pr(e.repoPath,t),a=await gr(e.repoPath,o,t,s,r,n);return{query:t,scope:e.request.scope,items:a.items,truncated:a.truncated}}i(fr,"searchLocalWorkspaceResources");async function gr(e,t,n,r,o,s){return o==="path"?wr(t,r,s):o==="ranked"?xr(e,t,r,s):hr(e,t,n,r,s)}i(gr,"searchWorkspaceResourcesByMode");async function hr(e,t,n,r,o){let s=new Map,a=n.toLowerCase(),d=r.toLowerCase();for(let l of t)if(l.toLowerCase().includes(d)&&$e(s,{ref:ee(l),title:l,snippet:"Path match",score:1,metadata:{source:"workspace",matchKind:"path",searchMode:"exact",path:l}}),s.size>o)return Z([...s.values()],o);if(s.size>o)return Z([...s.values()],o);let c=await yr(e,t,n,o,s);if(c)return c;for(let l of t){let u=await Ut(e,l);if(!u)continue;let p=Tr(u.text,a);if(p&&($e(s,{ref:ee(l),title:l,snippet:`${p.line}: ${p.text}`,score:.9,metadata:{source:"workspace",matchKind:"text",searchMode:"exact",path:l,line:p.line,truncated:u.truncated}}),s.size>o))return Z([...s.values()],o)}return Z([...s.values()],o)}i(hr,"exactSearchItems");async function yr(e,t,n,r,o){if(n.includes(`
18
+ `)||n.includes("\r"))return null;let s=await re("rg",["--json","--fixed-strings","--ignore-case","--max-count","1","--max-filesize",String(Q),"--",n],e);if(s.code!==0)return null;let a=new Set(t),d=new Map(o);for(let c of kr(s.stdout))a.has(c.filePath)&&$e(d,{ref:ee(c.filePath),title:c.filePath,snippet:`${c.line}: ${c.text}`,score:.9,metadata:{source:"workspace",matchKind:"text",searchMode:"exact",searchBackend:"rg",path:c.filePath,line:c.line}});return{items:[...d.values()].sort(zt).slice(0,r),truncated:d.size>r}}i(yr,"exactRipgrepItems");function kr(e){let t=[];for(let n of e.split(/\r?\n/)){if(!n.trim())continue;let r;try{r=JSON.parse(n)}catch{continue}if(!r||typeof r!="object")continue;let o=r;if(o.type!=="match")continue;let s=typeof o.data?.path?.text=="string"?o.data.path.text:null,a=typeof o.data?.line_number=="number"?o.data.line_number:null,d=typeof o.data?.lines?.text=="string"?o.data.lines.text:null;!s||a===null||d===null||t.push({filePath:s,line:a,text:d.replace(/\r?\n$/,"").slice(0,500)})}return t}i(kr,"parseRipgrepMatches");function wr(e,t,n){let r=[];for(let o of e){let s=Sr(o,t);s&&r.push({ref:ee(o),title:o,snippet:br(s),score:s.score,metadata:{source:"workspace",matchKind:"path",searchMode:"path",path:o,matchedTerms:s.matchedTerms}})}return Z(r,n)}i(wr,"pathSearchItems");function br(e){return e.exact?"Path match":e.matchedTerms.length>0?`Path terms: ${e.matchedTerms.join(", ")}`:"Fuzzy path match"}i(br,"pathSearchSnippet");async function xr(e,t,n,r){let o=je(F(n));if(o.length===0)return{items:[],truncated:!1};let s=(await Or(t,16,async u=>Rr(e,u,o))).filter(u=>!!u);if(s.length===0)return{items:[],truncated:!1};let a=new Map;for(let u of o)a.set(u,s.filter(p=>p.termCounts.has(u)||p.pathTermCounts.has(u)).length);let d=s.reduce((u,p)=>u+p.length,0)/s.length,c=[];for(let u of s){let p=_r(u,o,a,s.length,d);p&&c.push(p)}return{items:c.sort((u,p)=>p.score-u.score||u.document.filePath.localeCompare(p.document.filePath)).slice(0,r).map(u=>Ir(u,o,n)),truncated:c.length>r}}i(xr,"rankedSearchItems");async function Rr(e,t,n){let r=await Ut(e,t),o=F(t),s=r?F(r.text):[],a=Be(s,n),d=Be(o,n);return a.size===0&&d.size===0?null:{content:r?.text??"",filePath:t,length:Math.max(1,s.length+o.length*Ft),pathTermCounts:d,termCounts:a}}i(Rr,"rankedDocument");function _r(e,t,n,r,o){let s=0,a=[];for(let d of t){let c=e.termCounts.get(d)??0,l=e.pathTermCounts.get(d)??0,u=c+l*Ft;if(u<=0)continue;a.push(d);let p=n.get(d)??0,f=Math.log(1+(r-p+.5)/(p+.5)),m=u+Lt*(1-Dt+Dt*(e.length/o));s+=f*(u*(Lt+1)/m)}return s<=0?null:(s+=Wr(e,t),{document:e,matchedTerms:a,score:s})}i(_r,"rankedCandidate");function Ir(e,t,n){let r=vr(e.document.content,t,n);return{ref:ee(e.document.filePath),title:e.document.filePath,snippet:r?`${r.line}: ${r.text}`:`Matched terms: ${e.matchedTerms.join(", ")}`,score:Ht(e.score),metadata:{source:"workspace",matchKind:"ranked",searchMode:"ranked",path:e.document.filePath,matchedTerms:e.matchedTerms,...r?{line:r.line}:{}}}}i(Ir,"rankedSearchItem");function Tr(e,t){let n=e.split(/\r?\n/);for(let[r,o]of n.entries())if(o.toLowerCase().includes(t))return{line:r+1,text:o.slice(0,500)};return null}i(Tr,"exactTextMatch");function vr(e,t,n){if(!e)return null;let r=n.toLowerCase(),o=null;for(let[s,a]of e.split(/\r?\n/).entries()){let c=a.toLowerCase().includes(r)?10:0,l=F(a),u=Be(l,t),p=c+[...u.values()].reduce((f,m)=>f+m,0);p<=0||(!o||p>o.score)&&(o={line:s+1,score:p,text:a.slice(0,500)})}return o}i(vr,"bestRankedLine");function Sr(e,t){let n=e.toLowerCase(),r=t.toLowerCase();if(n.includes(r))return{exact:!0,matchedTerms:je(F(t)),score:1};let o=je(F(t)),s=new Set(F(e)),a=o.filter(u=>n.includes(u)||s.has(u)),d=o.length>0?a.length/o.length:0,c=Ar(n,r),l=Math.max(d*.92,c*.82);return l<.35?null:{exact:!1,matchedTerms:a,score:Ht(l)}}i(Sr,"pathSearchScore");function Ar(e,t){let n=t.replace(/[^a-z0-9]/g,"");if(!n)return 0;let r=-1,o=-1,s=-1,a=0;for(let u of n){let p=e.indexOf(u,r+1);if(p<0)return 0;o<0&&(o=p),s=p,(p===0||/[^a-z0-9]/.test(e[p-1]??""))&&(a+=1),r=p}let d=Math.max(1,s-o+1),c=n.length/d,l=a/n.length;return Math.min(1,c*.7+l*.3)}i(Ar,"orderedCharacterScore");function Pr(e,t){if(!j.isAbsolute(t))return t;let n=j.relative(j.resolve(e),j.resolve(t));return!n||n===".."||n.startsWith(`..${j.sep}`)||j.isAbsolute(n)?t:n.split(j.sep).join("/")}i(Pr,"workspaceRelativePathQuery");function Cr(e){let t=e?.matchMode??e?.mode;if(t===void 0||t==="exact"||t==="grep"||t==="literal")return"exact";if(t==="path"||t==="file"||t==="file-path"||t==="fuzzy"||t==="fuzzy-path")return"path";if(t==="ranked"||t==="bm25"||t==="terms")return"ranked";throw new Error("filters.mode must be exact, path, or ranked")}i(Cr,"workspaceSearchMode");async function Er(e){try{return await Nt(e)}catch{return se(e)}}i(Er,"visibleWorkspaceFiles");async function Ut(e,t){if(mr.has(j.extname(t).toLowerCase()))return null;try{let{targetPath:n}=await Y(e,t),r=await qe.lstat(n);if(!r.isFile())return null;let o=await Mr(n,r.size);return o.includes("\0")?null:{text:o,truncated:r.size>Q}}catch{return null}}i(Ut,"readWorkspaceSearchText");async function Mr(e,t){if(t<=Q)return qe.readFile(e,"utf8");let n=Math.max(1,Math.floor(Q/2)),r=Math.max(1,Q-n),o=await qe.open(e,"r");try{let s=Buffer.alloc(n),a=Buffer.alloc(r),d=await o.read(s,0,s.length,0),c=Math.max(0,t-r),l=await o.read(a,0,a.length,c);return[s.subarray(0,d.bytesRead).toString("utf8"),`
19
+
20
+ [resource search truncated: middle omitted]
21
+
22
+ `,a.subarray(0,l.bytesRead).toString("utf8")].join("")}finally{await o.close()}}i(Mr,"readTextSample");function F(e){let t=[];for(let n of e.match(/[A-Za-z0-9]+/g)??[]){let r=n.toLowerCase();r.length>=2&&t.push(r);let o=n.replace(/([A-Z]+)([A-Z][a-z])/g,"$1 $2").replace(/([a-z0-9])([A-Z])/g,"$1 $2");for(let s of o.match(/[A-Za-z0-9]+/g)??[]){let a=s.toLowerCase();a.length>=2&&a!==r&&t.push(a)}}return t}i(F,"tokenizeSearchText");function je(e){return[...new Set(e)]}i(je,"uniqueTerms");function Be(e,t){let n=new Set(t),r=new Map;for(let o of e)n.has(o)&&r.set(o,(r.get(o)??0)+1);return r}i(Be,"countsForTerms");function Wr(e,t){return t.length===0?0:t.filter(r=>e.pathTermCounts.has(r)).length/t.length*.5}i(Wr,"pathCoverageBoost");function $e(e,t){let n=e.get(t.ref);(!n||(t.score??0)>(n.score??0))&&e.set(t.ref,t)}i($e,"addSearchItem");function zt(e,t){let n=(t.score??0)-(e.score??0);return n!==0?n:e.title.localeCompare(t.title)}i(zt,"compareSearchItems");function Z(e,t){return{items:e.sort(zt).slice(0,t),truncated:e.length>t}}i(Z,"finalizeSearchItems");async function Or(e,t,n){let r=new Array(e.length),o=0,s=Array.from({length:Math.min(t,e.length)},async()=>{for(;o<e.length;){let a=o;o+=1,r[a]=await n(e[a])}});return await Promise.all(s),r}i(Or,"mapWithConcurrency");function qr(e,t,n){return typeof e!="number"||!Number.isFinite(e)||e<=0?t:Math.min(Math.floor(e),n)}i(qr,"normalizeLimit");function ee(e){return`workspace:file:${e}`}i(ee,"workspaceFileRef");function Ht(e){return Math.round(e*1e3)/1e3}i(Ht,"roundScore");var jr=6e4,Br=24e4,$r=20,Nr=100,Lr=4096,Kt=new Set([".7z",".avif",".db",".gif",".gz",".ico",".jpeg",".jpg",".mov",".mp4",".pdf",".png",".sqlite",".tar",".webp",".xls",".xlsm",".xlsx",".zip"]);async function si(e){let t=Xt(e.request.ref);if(t.scope!=="workspace")throw new Error(`Unsupported resource scope: ${t.scope}`);return t.kind==="dir"?Fr(e.repoPath,t.identifier,e.request):Dr(e.repoPath,t.identifier,e.request)}i(si,"readLocalWorkspaceResource");function Gt(e){let t=Xt(e.request.ref);if(t.scope==="tool-outputs"){let n=Vr(e.events,e.sessionId,t.identifier);if(!n)throw new Error(`Tool output resource not found: ${t.identifier}`);let r=co(n.output,E(e.request.maxBytes),zr(e.request.offsetBytes));return{ref:en(t.identifier),kind:"session.tool-output",title:n.title,contentType:"text/plain",...e.request.mode==="metadata"?{}:{contentText:r.text},metadata:{eventId:n.event.id,sessionId:n.event.sessionId??null,turnId:n.event.turnId??null,toolCallId:t.identifier,action:n.event.action??null,offsetBytes:r.offsetBytes,nextOffsetBytes:r.nextOffsetBytes},relatedRefs:[B(n.event.id)],truncation:e.request.mode==="metadata"?{truncated:!1,originalBytes:r.truncation.originalBytes,returnedBytes:0}:r.truncation}}if(t.scope==="events"){if(t.kind==="check-result"){let o=P(e.events,e.sessionId).find(c=>c.id===t.identifier);if(!o)throw new Error(`Check result event not found: ${t.identifier}`);let s=on(o)[t.index];if(!s)throw new Error(`Check result not found: ${t.identifier}:${t.index}`);let a=no(s),d=z(a,E(e.request.maxBytes));return{ref:Qt(o.id,t.index),kind:"event.check-result",title:s.command?`Check ${s.command}`:`Check ${t.index+1}`,contentType:"text/plain",...e.request.mode==="metadata"?{}:{contentText:d.text},metadata:{eventId:o.id,sessionId:o.sessionId??null,turnId:o.turnId??null,checkIndex:t.index,command:s.command??null,ok:s.ok??null,code:s.code??null},relatedRefs:[B(o.id)],truncation:e.request.mode==="metadata"?{truncated:!1,originalBytes:d.truncation.originalBytes,returnedBytes:0}:d.truncation}}let n=P(e.events,e.sessionId).find(o=>o.id===t.identifier);if(!n)throw new Error(`Event resource not found: ${t.identifier}`);let r=z(JSON.stringify(n,null,2),E(e.request.maxBytes));return{ref:B(n.id),kind:"session.event",title:`${n.name}${n.action?` ${n.action}`:""}`,contentType:"application/json",...e.request.mode==="metadata"?{}:{contentText:r.text},metadata:{eventId:n.id,sessionId:n.sessionId??null,turnId:n.turnId??null,name:n.name,action:n.action??null,status:n.status??null,timestamp:n.timestamp},relatedRefs:n.turnId?Kr(e.events,e.sessionId,n.turnId):[],truncation:e.request.mode==="metadata"?{truncated:!1,originalBytes:r.truncation.originalBytes,returnedBytes:0}:r.truncation}}if(t.scope==="messages"){let n=Jr(e.events,e.sessionId,t.identifier);if(!n)throw new Error(`Message resource not found: ${t.identifier}`);let r=z(n.content,E(e.request.maxBytes));return{ref:Fe(n.event.id),kind:`session.message.${n.role}`,title:n.title,contentType:"text/plain",...e.request.mode==="metadata"?{}:{contentText:r.text},metadata:{eventId:n.event.id,sessionId:n.event.sessionId??null,turnId:n.event.turnId??null,role:n.role,timestamp:n.event.timestamp},relatedRefs:n.event.turnId?Gr(e.events,e.sessionId,n.event.turnId):[],truncation:e.request.mode==="metadata"?{truncated:!1,originalBytes:r.truncation.originalBytes,returnedBytes:0}:r.truncation}}if(t.scope==="artifacts"){let n=P(e.events,e.sessionId).find(c=>c.id===t.identifier);if(!n)throw new Error(`Artifact event not found: ${t.identifier}`);let r=rn(n).find(c=>c.artifactRef===t.artifactRef);if(!r)throw new Error(`Artifact resource not found: ${t.artifactRef}`);let o=cn(r.artifactRef)??"application/octet-stream",s=r.contentText??null,a=s?z(s,E(e.request.maxBytes)):null,d=r.binary??(!s&&so(r.artifactRef));return{ref:tn(n.id,r.artifactRef),kind:"event.artifact",title:r.title??r.artifactRef,contentType:o,...e.request.mode==="metadata"||!a?{}:{contentText:a.text},metadata:{eventId:n.id,sessionId:n.sessionId??null,turnId:n.turnId??null,artifactRef:r.artifactRef,sourceKey:r.sourceKey,binary:d},relatedRefs:[B(n.id)],truncation:a&&e.request.mode!=="metadata"?a.truncation:{truncated:!1,originalBytes:a?a.truncation.originalBytes:0,returnedBytes:0,reason:d?"binary-or-external-artifact":"metadata-only"}}}if(t.scope==="goal-context"){let n=P(e.events,e.sessionId).find(s=>s.id===t.identifier),r=n?sn(n):null;if(!r){let s=Zr(e.events,e.sessionId,t.identifier);if(!s)throw new Error(`Goal context resource not found: ${t.identifier}`);let a=s.contentText?z(s.contentText,E(e.request.maxBytes)):null;return{ref:ue(s.id),kind:"goal-context.document",title:s.title,contentType:s.contentType,...e.request.mode==="metadata"||!a?{}:{contentText:a.text},metadata:{eventId:s.event.id,sessionId:s.event.sessionId??null,turnId:s.event.turnId??null,documentId:s.id,revisionId:s.revisionId,title:s.title,role:s.role,bindingMode:s.bindingMode,required:s.required,source:s.source,contentHash:s.contentHash},relatedRefs:[B(s.event.id)],truncation:a&&e.request.mode!=="metadata"?a.truncation:{truncated:!1,originalBytes:a?a.truncation.originalBytes:0,returnedBytes:0,reason:"metadata-only"}}}if(!n)throw new Error(`Goal context resource not found: ${t.identifier}`);let o=z(r.contentText,E(e.request.maxBytes));return{ref:ue(n.id),kind:"goal-context.runtime",title:r.title,contentType:r.contentType,...e.request.mode==="metadata"?{}:{contentText:o.text},metadata:{eventId:n.id,sessionId:n.sessionId??null,turnId:n.turnId??null,sourceKind:r.sourceKind,goalId:r.goalId,status:r.status},relatedRefs:[B(n.id)],truncation:e.request.mode==="metadata"?{truncated:!1,originalBytes:o.truncation.originalBytes,returnedBytes:0}:o.truncation}}throw new Error(`Unsupported session resource ref: ${e.request.ref}`)}i(Gt,"readSessionResource");function Vt(e){if(e.request.scope!=="events"&&e.request.scope!=="messages"&&e.request.scope!=="artifacts"&&e.request.scope!=="goal-context"&&e.request.scope!=="tool-outputs")throw new Error(`Unsupported session resource search scope: ${e.request.scope}`);let t=e.request.query.trim();if(!t)throw new Error("Resource search query is required");let n=Hr(e.request.limit,$r,Nr),r=t.toLowerCase(),o=[];if(e.request.scope==="events")for(let s of P(e.events,e.sessionId)){let a=Xr(s);if(a.includes(r)&&(o.push({ref:B(s.id),title:`${s.name}${s.action?` ${s.action}`:""}`,snippet:U(a,r),score:.7,metadata:{source:"session.events",eventId:s.id,turnId:s.turnId??null,name:s.name,action:s.action??null,timestamp:s.timestamp}}),o.length>=n))break}else if(e.request.scope==="messages"){for(let s of Ue(e.events,e.sessionId))if(s.content.toLowerCase().includes(r)&&(o.push({ref:Fe(s.event.id),title:s.title,snippet:U(s.content,r),score:.8,metadata:{source:"session.messages",eventId:s.event.id,turnId:s.event.turnId??null,role:s.role,timestamp:s.event.timestamp}}),o.length>=n))break}else if(e.request.scope==="artifacts")for(let s of P(e.events,e.sessionId)){for(let a of rn(s)){let d=eo(s,a);if(d.includes(r)&&(o.push({ref:tn(s.id,a.artifactRef),title:a.title??a.artifactRef,snippet:U(d,r),score:.75,metadata:{source:"session.artifacts",eventId:s.id,turnId:s.turnId??null,artifactRef:a.artifactRef,sourceKey:a.sourceKey}}),o.length>=n))break}if(o.length>=n)break;for(let[a,d]of on(s).entries()){let c=to(d);if(c.includes(r)&&(o.push({ref:Qt(s.id,a),title:d.command?`Check ${d.command}`:`Check ${a+1}`,snippet:U(c,r),score:.72,metadata:{source:"session.checks",eventId:s.id,turnId:s.turnId??null,checkIndex:a,command:d.command??null,ok:d.ok??null,code:d.code??null}}),o.length>=n))break}if(o.length>=n)break}else if(e.request.scope==="tool-outputs")for(let s of P(e.events,e.sessionId)){let a=nn(s),d=s.output?.trim();if(!(!a||!d||!d.toLowerCase().includes(r))&&(o.push({ref:en(a),title:s.action?`Tool output: ${s.action}`:"Tool output",snippet:U(d,r),score:.76,metadata:{source:"session.tool-outputs",eventId:s.id,turnId:s.turnId??null,toolCallId:a,action:s.action??null,timestamp:s.timestamp}}),o.length>=n))break}else{let s=g(e.request.filters?.role),a=new Set;for(let d of P(e.events,e.sessionId)){let c=sn(d);if(c&&!s&&c.searchText.includes(r)){let u=ue(d.id);if(a.add(u),o.push({ref:u,title:c.title,snippet:U(c.contentText,r),score:.78,metadata:{source:"session.goal-context",eventId:d.id,turnId:d.turnId??null,sourceKind:c.sourceKind,goalId:c.goalId,status:c.status,timestamp:d.timestamp}}),o.length>=n)break}for(let l of an(d)){if(s&&l.role!==s||!l.searchText.includes(r))continue;let p=ue(l.id);if(!a.has(p)&&(a.add(p),o.push({ref:p,title:l.title,snippet:U(l.contentText??l.searchText,r),score:l.role==="primary_context"?.86:.8,metadata:{source:"session.goal-context.documents",eventId:d.id,turnId:d.turnId??null,documentId:l.id,revisionId:l.revisionId,title:l.title,role:l.role,bindingMode:l.bindingMode,required:l.required,sourceRef:g(l.source?.sourceRef),commitSha:g(l.source?.commitSha),path:g(l.source?.path)}}),o.length>=n))break}if(o.length>=n)break}}return{query:t,scope:e.request.scope,items:o,truncated:o.length>=n}}i(Vt,"searchSessionResources");function Xt(e){let t=e.trim();if(t.startsWith("workspace:file:"))return{scope:"workspace",kind:"file",identifier:t.slice(15)};if(t.startsWith("workspace:dir:"))return{scope:"workspace",kind:"dir",identifier:t.slice(14)};if(t.startsWith("event:check-result:")){let n=t.slice(19),r=n.lastIndexOf(":"),o=r>=0?n.slice(0,r):"",s=r>=0?n.slice(r+1):"",a=Number.parseInt(s,10);if(!o||!Number.isInteger(a)||a<0)throw new Error("Unsupported check result ref. Use event:check-result:<eventId>:<index>.");return{scope:"events",kind:"check-result",identifier:o,index:a}}if(t.startsWith("tool-output:")){let n=decodeURIComponent(t.slice(12));if(!n)throw new Error("Unsupported tool output ref. Use tool-output:<toolCallId>.");return{scope:"tool-outputs",kind:"tool-output",identifier:n}}if(t.startsWith("event:"))return{scope:"events",kind:"event",identifier:t.slice(6)};if(t.startsWith("message:"))return{scope:"messages",kind:"message",identifier:t.slice(8)};if(t.startsWith("artifact:")){let n=t.slice(9),r=n.indexOf(":"),o=r>=0?n.slice(0,r):"",s=r>=0?n.slice(r+1):"";if(!o||!s)throw new Error("Unsupported artifact ref. Use artifact:<eventId>:<encodedRef>.");return{scope:"artifacts",kind:"artifact",identifier:o,artifactRef:decodeURIComponent(s)}}if(t.startsWith("goal-context:"))return{scope:"goal-context",kind:"goal-context",identifier:t.slice(13)};throw new Error("Unsupported resource ref. Use workspace:file:<path>, workspace:dir:<path>, event:<eventId>, event:check-result:<eventId>:<index>, tool-output:<toolCallId>, message:<eventId>, artifact:<eventId>:<encodedRef>, or goal-context:<eventId>.")}i(Xt,"parseResourceRef");async function Dr(e,t,n){let r=Zt(t),o=await Yt(e,r),s=await $.lstat(o);if(!s.isFile())throw new Error(`Not a file resource: ${r}`);let a=cn(r),d=E(n.maxBytes),c=await io(o,r),l={path:r,sizeBytes:s.size,modifiedAt:s.mtime.toISOString(),binary:c};if(n.mode==="metadata"||c)return{ref:Ne(r),kind:"workspace.file",title:r,contentType:a,metadata:l,relatedRefs:[],truncation:{truncated:!1,originalBytes:s.size,returnedBytes:0,reason:c?"binary":void 0}};let u=await ao(o,s.size,d);return{ref:Ne(r),kind:"workspace.file",title:r,contentType:a,contentText:u.text,metadata:{...l,lineCount:lo(u.text)},relatedRefs:[Le(M.dirname(r)==="."?"":M.dirname(r))],truncation:u.truncation}}i(Dr,"readWorkspaceFileResource");async function Fr(e,t,n){let r=Ur(t),o=await Yt(e,r),s=await $.lstat(o);if(!s.isDirectory())throw new Error(`Not a directory resource: ${r||"."}`);let d=(await $.readdir(o,{withFileTypes:!0})).map(p=>{let f=r?`${r}/${p.name}`:p.name;return oe(f)?null:{name:p.name,path:f,kind:p.isDirectory()?"directory":p.isFile()?"file":"other",ref:p.isDirectory()?Le(f):Ne(f)}}).filter(p=>!!p).sort((p,f)=>p.path.localeCompare(f.path)),c=E(n.maxBytes),l=d.map(p=>`${p.kind==="directory"?"dir":"file"} ${p.path}`).join(`
23
+ `),u=z(l,c);return{ref:Le(r),kind:"workspace.dir",title:r||".",contentType:"inode/directory",...n.mode==="metadata"?{}:{contentText:u.text},metadata:{path:r,entryCount:d.length,entries:d,modifiedAt:s.mtime.toISOString()},relatedRefs:d.slice(0,50).map(p=>p.ref),truncation:u.truncation}}i(Fr,"readWorkspaceDirectoryResource");async function Yt(e,t){let n=await $.realpath(e),r=M.resolve(n,t||".");Jt(n,r);let o=await $.realpath(r);return Jt(n,o),o}i(Yt,"resolveWorkspacePath");function Jt(e,t){let n=M.resolve(e),r=M.resolve(t);if(r!==n&&!r.startsWith(`${n}${M.sep}`))throw new Error("Resource path escapes the workspace root")}i(Jt,"assertInside");function Zt(e){let t=ft(e);if(!t)throw new Error("Resource path is required");return t}i(Zt,"normalizeRequiredWorkspacePath");function Ur(e){let t=e.trim();return!t||t==="."?"":Zt(t)}i(Ur,"normalizeOptionalWorkspacePath");function E(e){return typeof e!="number"||!Number.isFinite(e)||e<=0?jr:Math.min(Math.floor(e),Br)}i(E,"normalizeMaxBytes");function zr(e){return typeof e!="number"||!Number.isFinite(e)||e<=0?0:Math.min(1e8,Math.floor(e))}i(zr,"normalizeOffsetBytes");function Hr(e,t,n){return typeof e!="number"||!Number.isFinite(e)||e<=0?t:Math.min(Math.floor(e),n)}i(Hr,"normalizeLimit");function Ne(e){return`workspace:file:${e}`}i(Ne,"workspaceFileRef");function Le(e){return`workspace:dir:${e||"."}`}i(Le,"workspaceDirRef");function B(e){return`event:${e}`}i(B,"eventRef");function Qt(e,t){return`event:check-result:${e}:${t}`}i(Qt,"checkResultRef");function en(e){return`tool-output:${encodeURIComponent(e)}`}i(en,"toolOutputRef");function Fe(e){return`message:${e}`}i(Fe,"messageRef");function tn(e,t){return`artifact:${e}:${encodeURIComponent(t)}`}i(tn,"artifactResourceRef");function ue(e){return`goal-context:${encodeURIComponent(e)}`}i(ue,"goalContextRef");function P(e,t){return e.filter(n=>n.sessionId===t)}i(P,"scopedEvents");function Ue(e,t){let n=[];for(let r of P(e,t))if(r.name==="turn.started"){let o=typeof r.args?.prompt=="string"?r.args.prompt:"";o.trim()&&n.push({event:r,role:"user",title:"User message",content:o})}else r.name==="assistant.delta"&&r.output?.trim()&&n.push({event:r,role:"assistant",title:"Assistant message",content:r.output});return n}i(Ue,"messageResources");function Jr(e,t,n){return Ue(e,t).find(r=>r.event.id===n)??null}i(Jr,"messageResourceForEvent");function Kr(e,t,n){return Ue(e,t).filter(r=>r.event.turnId===n).map(r=>Fe(r.event.id))}i(Kr,"messageRefsForTurn");function Gr(e,t,n){return P(e,t).filter(r=>r.turnId===n).map(r=>B(r.id))}i(Gr,"eventRefsForTurn");function Vr(e,t,n){for(let r=e.length-1;r>=0;r-=1){let o=e[r];if(!(o.sessionId!==t||nn(o)!==n&&o.id!==n)&&o.output?.trim())return{event:o,output:o.output,title:o.action?`Tool output: ${o.action}`:"Tool output"}}return null}i(Vr,"toolOutputResourceForCall");function nn(e){let t=e.data&&typeof e.data=="object"&&!Array.isArray(e.data)?e.data:null;return typeof t?.toolCallId=="string"&&t.toolCallId.trim()?t.toolCallId:typeof t?.callId=="string"&&t.callId.trim()?t.callId:null}i(nn,"toolCallIdFromEvent");function Xr(e){return[e.name,e.action,e.status,e.output,e.error,e.args?JSON.stringify(e.args):"",e.data?JSON.stringify(e.data):""].filter(Boolean).join(" ").toLowerCase()}i(Xr,"eventSearchText");var Yr=new Set(["artifactRef","artifactRefs","traceArtifactRef","traceArtifactRefs","evalArtifactRef","evalArtifactRefs","evalResultArtifactRefs","validatorArtifactRefs"]);function rn(e){let t=new Map,n=i(r=>{if(!r.artifactRef.trim())return;let o=t.get(r.artifactRef);t.set(r.artifactRef,{artifactRef:r.artifactRef,sourceKey:r.sourceKey||o?.sourceKey||"data",title:r.title??o?.title,contentText:r.contentText??o?.contentText,binary:r.binary??o?.binary})},"add");return pe(e.data,"data",n),pe(e.args,"args",n),[...t.values()]}i(rn,"artifactResourcesFromEvent");function pe(e,t,n){if(!e)return;if(Array.isArray(e)){for(let[o,s]of e.entries())pe(s,`${t}[${o}]`,n);return}if(typeof e!="object")return;let r=e;for(let[o,s]of Object.entries(r)){if(Yr.has(o))for(let a of ro(s))n({artifactRef:a,sourceKey:`${t}.${o}`});if(o==="artifacts"&&Array.isArray(s))for(let[a,d]of s.entries()){let c=d&&typeof d=="object"?d:null,l=g(c?.ref)??g(c?.path)??g(c?.artifactRef);l&&n({artifactRef:l,sourceKey:`${t}.artifacts[${a}]`,title:g(c?.title)??g(c?.name),contentText:g(c?.contentText)??g(c?.content)??g(c?.text),binary:c?.binary===!0})}pe(s,`${t}.${o}`,n)}}i(pe,"collectArtifactResources");function on(e){let t=[];return De(e.data,t),t}i(on,"checkResultsFromEvent");function sn(e){let t=e.data&&typeof e.data=="object"&&!Array.isArray(e.data)?e.data:null,n=g(t?.kind);if(n==="thread_goal"){let r=t?.goal&&typeof t.goal=="object"&&!Array.isArray(t.goal)?t.goal:null;if(!r)return null;let o=JSON.stringify(r,null,2),s=g(r.objective);return{title:s?`Goal: ${s}`:"Thread goal",contentType:"application/json",contentText:o,searchText:[e.name,e.output,o].filter(Boolean).join(" ").toLowerCase(),sourceKind:n,goalId:g(r.id),status:g(r.status)}}if(n==="goal_context"){let r=e.output?.trim()||JSON.stringify(t,null,2);return{title:"Goal context",contentType:e.output?.trim()?"text/plain":"application/json",contentText:r,searchText:[e.name,e.output,t?JSON.stringify(t):""].filter(Boolean).join(" ").toLowerCase(),sourceKind:n,goalId:null,status:null}}return null}i(sn,"goalContextFromEvent");function Zr(e,t,n){let r=oo(n);for(let o of P(e,t))for(let s of an(o))if(s.id===n||s.id===r)return s;return null}i(Zr,"goalContextDocumentForRef");function an(e){let t=[],n=i(r=>{let o=K(r);if(!o||!Qr(o))return;let s=K(o.source),a=g(o.id)??g(o.documentId)??g(s?.path)??g(o.title);if(!a)return;let d=g(o.title)??g(o.name)??g(s?.path)??a,c=g(o.role)??g(o.contextRole)??"supporting_context",l=g(o.bindingMode)??g(o.binding)??null,u=g(o.contentHash)??g(o.hash),p=g(o.revisionId)??g(o.revision)??g(s?.commitSha)??g(s?.sourceRef)??u,f=g(o.contentText)??g(o.markdown)??g(o.body)??g(o.content)??null,m=g(o.contentType)??(f?"text/markdown":"application/json");t.push({event:e,id:a,title:d,role:c,bindingMode:l,revisionId:p,required:typeof o.required=="boolean"?o.required:null,source:s,contentHash:u,contentType:m,contentText:f,searchText:[a,d,c,l,p,u,s?JSON.stringify(s):"",f].filter(Boolean).join(" ").toLowerCase()})},"add");return me(e.data,n),me(e.args,n),t}i(an,"goalContextDocumentsFromEvent");function me(e,t){let n=K(e);if(!n){if(Array.isArray(e))for(let s of e)me(s,t);return}for(let s of["contextItems","goalContextItems","contextDocuments","goalContextDocuments"]){let a=n[s];if(Array.isArray(a))for(let d of a)t(d)}let r=K(n.context);if(Array.isArray(r?.items))for(let s of r.items)t(s);let o=K(n.goal);o&&o!==n&&me(o,t)}i(me,"collectGoalContextDocumentCandidates");function Qr(e){let t=g(e.kind),n=g(K(e.source)?.kind),r=g(e.role);return t==="document"||n==="profile_goal_doc"||r==="primary_context"||r==="supporting_context"||r==="handoff"||r==="test_plan"}i(Qr,"looksLikeGoalContextDocument");function De(e,t){if(!e)return;if(Array.isArray(e)){for(let r of e)De(r,t);return}if(typeof e!="object")return;let n=e;if(Array.isArray(n.checks))for(let r of n.checks){if(!r||typeof r!="object")continue;let o=r;t.push({ok:typeof o.ok=="boolean"?o.ok:null,command:g(o.command),code:typeof o.code=="number"?o.code:null,stdout:g(o.stdout),stderr:g(o.stderr)})}for(let r of Object.values(n))r!==n.checks&&De(r,t)}i(De,"collectCheckResults");function eo(e,t){return[t.artifactRef,t.title,t.sourceKey,e.name,e.action,e.output,t.contentText].filter(Boolean).join(" ").toLowerCase()}i(eo,"artifactSearchText");function to(e){return[e.command,e.code,e.ok,e.stdout,e.stderr].filter(t=>t!=null).join(" ").toLowerCase()}i(to,"checkSearchText");function no(e){return[e.command?`$ ${e.command}`:null,typeof e.code=="number"?`exit code: ${e.code}`:null,e.stdout?`stdout:
24
+ ${e.stdout}`:null,e.stderr?`stderr:
25
+ ${e.stderr}`:null].filter(Boolean).join(`
26
+
27
+ `)||JSON.stringify(e,null,2)}i(no,"checkOutputText");function ro(e){return typeof e=="string"&&e.trim()?[e.trim()]:Array.isArray(e)?e.filter(t=>typeof t=="string"&&t.trim().length>0).map(t=>t.trim()):[]}i(ro,"stringValues");function g(e){return typeof e=="string"&&e.trim()?e.trim():null}i(g,"stringValue");function K(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:null}i(K,"asRecord");function oo(e){try{return decodeURIComponent(e)}catch{return e}}i(oo,"safeDecodeURIComponent");function so(e){return Kt.has(M.extname(e).toLowerCase())}i(so,"isLikelyBinaryArtifactRef");function U(e,t){let r=e.toLowerCase().indexOf(t);if(r<0)return e.slice(0,200);let o=Math.max(0,r-80),s=Math.min(e.length,r+t.length+120);return e.slice(o,s)}i(U,"snippetFromText");function cn(e){let t=mt(e);if(t)return t;let n=M.extname(e).toLowerCase();return n===".json"?"application/json":n===".md"||n===".mdx"?"text/markdown":[".css",".csv",".html",".js",".jsx",".ts",".tsx",".txt",".yaml",".yml"].includes(n)?"text/plain":null}i(cn,"contentTypeForPath");async function io(e,t){if(Kt.has(M.extname(t).toLowerCase()))return!0;let n=await $.open(e,"r");try{let r=Buffer.alloc(Lr),{bytesRead:o}=await n.read(r,0,r.length,0);return r.subarray(0,o).includes(0)}finally{await n.close()}}i(io,"isBinaryFile");async function ao(e,t,n){if(t<=n){let a=await $.readFile(e);return{text:a.toString("utf8"),truncation:{truncated:!1,originalBytes:t,returnedBytes:a.length}}}let r=Math.max(1,Math.floor(n/2)),o=Math.max(1,n-r),s=await $.open(e,"r");try{let a=Buffer.alloc(r),d=Buffer.alloc(o),c=await s.read(a,0,a.length,0),l=Math.max(0,t-o),u=await s.read(d,0,d.length,l);return{text:[a.subarray(0,c.bytesRead).toString("utf8"),`
28
+
29
+ [resource truncated: middle omitted]
30
+
31
+ `,d.subarray(0,u.bytesRead).toString("utf8")].join(""),truncation:{truncated:!0,originalBytes:t,returnedBytes:c.bytesRead+u.bytesRead,reason:"maxBytes"}}}finally{await s.close()}}i(ao,"readTextWithLimit");function z(e,t){let n=Buffer.from(e,"utf8");return n.length<=t?{text:e,truncation:{truncated:!1,originalBytes:n.length,returnedBytes:n.length}}:{text:`${n.subarray(0,t).toString("utf8")}
32
+
33
+ [resource truncated]`,truncation:{truncated:!0,originalBytes:n.length,returnedBytes:t,reason:"maxBytes"}}}i(z,"trimUtf8Text");function co(e,t,n){let r=Buffer.from(e,"utf8"),o=Math.min(n,r.length),s=Math.min(r.length,o+t),a=r.subarray(o,s),d=o>0||s<r.length;return{text:a.toString("utf8"),offsetBytes:o,nextOffsetBytes:s<r.length?s:null,truncation:{truncated:d,originalBytes:r.length,returnedBytes:a.length,reason:d?"paged":void 0}}}i(co,"trimUtf8TextPage");function lo(e){return e?e.split(/\r?\n/).length:0}i(lo,"countLines");import{promises as uo}from"node:fs";import G from"node:path";var He=new Map([[".avif","image/avif"],[".csv","text/csv"],[".docx","application/vnd.openxmlformats-officedocument.wordprocessingml.document"],[".gif","image/gif"],[".jpeg","image/jpeg"],[".jpg","image/jpeg"],[".json","application/json"],[".m4a","audio/mp4"],[".md","text/markdown"],[".mov","video/quicktime"],[".mp3","audio/mpeg"],[".mp4","video/mp4"],[".pdf","application/pdf"],[".png","image/png"],[".pptx","application/vnd.openxmlformats-officedocument.presentationml.presentation"],[".tsv","text/tab-separated-values"],[".wav","audio/wav"],[".webm","video/webm"],[".webp","image/webp"],[".xlsx","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"],[".zip","application/zip"]]),ln=[...He.keys()].map(e=>e.slice(1)).join("|"),po=new RegExp(`((?:/|[A-Za-z]:[\\\\/])[^\\n\\r"'<>|]*?\\.(?:${ln}))(?=$|[\\s"',;})\\]])`,"gi"),mo=new RegExp(`(?:^|[\\s"'=:])((?:\\.{0,2}[\\\\/])?[A-Za-z0-9_.-][^\\n\\r"'<>|]*?\\.(?:${ln}))(?=$|[\\s"',;})\\]])`,"gi");async function dn(e,t=12){let n=new Set;go(e.stdout,n),fo(e.stdout,n);let r=[],o=new Set;for(let s of n){let a=G.isAbsolute(s)?G.resolve(s):e.cwd?G.resolve(e.cwd,s):null;if(!a||o.has(a))continue;let d=He.get(G.extname(a).toLowerCase());if(d)try{let c=await uo.stat(a);if(!c.isFile())continue;if(o.add(a),r.push({artifactRef:a,path:a,title:G.basename(a),contentType:d,sizeBytes:c.size,binary:!0}),r.length>=t)break}catch{}}return r}i(dn,"discoverCommandArtifacts");function fo(e,t){for(let n of[po,mo]){n.lastIndex=0;for(let r of e.matchAll(n)){let o=r[1]?.trim().replace(/[.,:]+$/,"");o&&t.add(o)}}}i(fo,"collectTextPaths");function go(e,t){let n=[e.trim(),...e.split(/\r?\n/).map(r=>r.trim())];for(let r of n)if(!(!r||!r.startsWith("{")&&!r.startsWith("[")))try{ze(JSON.parse(r),t)}catch{}}i(go,"collectJsonPaths");function ze(e,t,n=0){if(!(n>8||e==null)){if(typeof e=="string"){let r=G.extname(e).toLowerCase();He.has(r)&&t.add(e);return}if(Array.isArray(e)){for(let r of e)ze(r,t,n+1);return}if(typeof e=="object")for(let r of Object.values(e))ze(r,t,n+1)}}i(ze,"collectJsonStrings");async function un(e){let{action:t,context:n,implementation:r,resultToolName:o}=e;if(!e.executeProjectAction)return Je(n.callId,o,`Action ${t.id} is a hosted Project Action, but hosted action execution is not configured.`);let s=fe(r.projectId),a=fe(r.teamId),d=fe(r.releaseId),c=fe(r.actionId)??t.id;if(!s||!a||!d)return Je(n.callId,o,`Action ${t.id} is missing its hosted Project Action release binding.`);if(e.requestedProjectId&&e.requestedProjectId!==s)return Je(n.callId,o,`Project ${e.requestedProjectId} is not authorized for action ${t.id}.`);let l=await e.executeProjectAction({action:c,input:e.actionInput,metadata:{source:"openpond_hosted_project_action",execution:"hosted",projectId:s,teamId:a,releaseId:d,selectedActionId:c,selectedActionLabel:t.label??t.name??c,selectedBy:"native_model_tool",displayPrompt:n.userPrompt,sessionId:n.session.id,turnId:n.turnId,toolCallId:n.callId}});return{toolCallId:n.callId,name:o,ok:!0,contentText:JSON.stringify({ok:!0,action:o,output:`Ran hosted Project Action ${c}.`,data:{result:l}},null,2),data:{result:l}}}i(un,"executeHostedProjectActionModelTool");function Je(e,t,n){return{toolCallId:e,name:t,ok:!1,contentText:JSON.stringify({ok:!1,action:t,error:n},null,2),data:{error:n}}}i(Je,"failedResult");function fe(e){return typeof e=="string"&&e.trim()?e.trim():null}i(fe,"stringValue");function Ii(e,t){return e.filter(n=>n.enabled?.(t)??!0)}i(Ii,"enabledModelToolDefinitions");function Ti(e){return{type:"function",function:{name:e.name,description:e.description,parameters:e.parameters}}}i(Ti,"modelToolDefinitionToHostedTool");function vi(e){let t=i(r=>A({session:r.session}).target!=="none"||r.session.workspaceKind==="sandbox_template"||!!e.runtimeEvents?.length,"resourceEnabled"),n=i(r=>L(A({session:r.session}))&&!!r.session.workspaceId,"activeSandboxEnabled");return[{name:"resource_search",description:'Search resources and return stable refs with snippets. Prefer targeted path or identifier queries with limit 5-10, then read likely refs. Avoid repeated broad one-word searches unless the word is an exact component/function/file identifier. Workspace search defaults to exact literal path/text matching; use filters.mode="path" for file/path lookup and filters.mode="ranked" for broad multi-term retrieval.',parameters:{type:"object",additionalProperties:!1,properties:{scope:{type:"string",enum:["workspace","events","messages","artifacts","goal-context","tool-outputs","sandbox","git"],description:"Resource scope to search. Use workspace for files, sandbox for active sandbox files, git for git status/diff refs, events for runtime events, messages for chat messages, artifacts for artifact refs and check outputs, goal-context for current goal runtime context events, and tool-outputs for durable large tool output."},query:{type:"string",minLength:1,description:"Path, identifier, or specific multi-term text query to search for. Avoid generic one-word terms for broad exploration."},limit:{type:"integer",minimum:1,maximum:100,description:"Maximum number of resource refs to return. Use 5-10 for normal code navigation; only use higher limits when the user explicitly asks for exhaustive search."},filters:{type:"object",additionalProperties:!0,properties:{mode:{type:"string",enum:["exact","path","ranked"],description:"Workspace search mode. exact preserves the query as a literal path/text phrase. path searches file paths. ranked uses BM25-style term retrieval for loose natural-language queries."},matchMode:{type:"string",enum:["exact","path","ranked"],description:"Alias for mode."},path:{type:"string",description:"Optional sandbox search path filter when scope is sandbox."}},description:"Optional scope-specific filters. For workspace searches, set mode to ranked for loose model-style queries or path for filename/path lookup; omit it for exact literal search."}},required:["scope","query"]},enabled:t,execute:i(async r=>{let o=r.args.scope;if((o==="events"||o==="messages"||o==="artifacts"||o==="goal-context"||o==="tool-outputs")&&e.runtimeEvents){let d=Vt({events:e.runtimeEvents,sessionId:r.session.id,request:{scope:o,query:T(r.args,"query"),...typeof r.args.limit=="number"?{limit:r.args.limit}:{},...w(r.args.filters)?{filters:w(r.args.filters)}:{}}});return Ge(r.callId,d)}let s=A({session:r.session});if(o==="sandbox"||o==="workspace"&&L(s)){let d=await e.executeWorkspaceTool(r.session.id,{action:"sandbox_search_files",args:{query:T(r.args,"query"),...typeof r.args.limit=="number"?{maxResults:r.args.limit}:{},...typeof w(r.args.filters)?.path=="string"?{path:w(r.args.filters)?.path}:{}},source:"chat_action"},{turnId:r.turnId,workspaceDiffBaseline:r.workspaceDiffBaseline});if(!d.ok)throw new Error(d.output||"Sandbox resource search failed.");return Ge(r.callId,Po(d,T(r.args,"query")))}if(o==="git")return Ge(r.callId,Eo(T(r.args,"query")));let a=await e.executeWorkspaceTool(r.session.id,{action:"resource_search",args:r.args,source:"chat_action"},{turnId:r.turnId,workspaceDiffBaseline:r.workspaceDiffBaseline});return C(r.callId,"resource_search",a)},"execute")},{name:"resource_read",description:"Read a resource by ref and return content, metadata, related refs, and truncation information.",parameters:{type:"object",additionalProperties:!1,properties:{ref:{type:"string",minLength:1,description:"Resource ref such as workspace:file:package.json, workspace:dir:src, sandbox:file:/workspace/app/src/index.ts, sandbox:dir:/workspace/app/src, git:status:working-tree, git:diff:working-tree, git:diff:staged, event:<id>, tool-output:<toolCallId>, message:<id>, artifact:<eventId>:<encodedRef>, goal-context:<eventId>, or event:check-result:<eventId>:<index>."},maxBytes:{type:"integer",minimum:1,maximum:24e4,description:"Maximum UTF-8 bytes of content to return."},offsetBytes:{type:"integer",minimum:0,maximum:1e8,description:"Byte offset for paging a durable tool-output resource. Start at 0, then use nextOffsetBytes from metadata."},mode:{type:"string",enum:["content","summary","metadata"],description:"Read mode. Use metadata for binary or large resources when content is not needed."}},required:["ref"]},enabled:t,execute:i(async r=>{let o=T(r.args,"ref");if((o.startsWith("event:")||o.startsWith("tool-output:")||o.startsWith("message:")||o.startsWith("artifact:")||o.startsWith("goal-context:"))&&e.runtimeEvents){let c=Gt({events:e.runtimeEvents,sessionId:r.session.id,request:{ref:o,...typeof r.args.maxBytes=="number"?{maxBytes:r.args.maxBytes}:{},...typeof r.args.offsetBytes=="number"?{offsetBytes:r.args.offsetBytes}:{},...r.args.mode==="content"||r.args.mode==="summary"||r.args.mode==="metadata"?{mode:r.args.mode}:{}}});return Ve(r.callId,c)}let s=A({session:r.session}),a=Oo(o,s);if(a){let c=await Co({ref:a,executeWorkspaceTool:e.executeWorkspaceTool,session:r.session,turnId:r.turnId,workspaceDiffBaseline:r.workspaceDiffBaseline});return Ve(r.callId,c)}if(o.startsWith("git:")){let c=await Mo({ref:o,executeWorkspaceTool:e.executeWorkspaceTool,session:r.session,turnId:r.turnId,workspaceDiffBaseline:r.workspaceDiffBaseline});return Ve(r.callId,c)}let d=await e.executeWorkspaceTool(r.session.id,{action:"resource_read",args:r.args,source:"chat_action"},{turnId:r.turnId,workspaceDiffBaseline:r.workspaceDiffBaseline});return C(r.callId,"resource_read",d)},"execute")},{name:"sandbox_write_file",description:"Write or replace a UTF-8 text file in the active sandbox workspace. Read the file first when preserving existing content matters.",parameters:{type:"object",additionalProperties:!1,properties:{path:{type:"string",minLength:1,description:"Sandbox workspace file path, for example README.md or src/index.ts."},content:{type:"string",description:"Complete UTF-8 text content to write to the file."}},required:["path","content"]},enabled:n,execute:i(async r=>{let o=Xe(r.args,"content",{allowEmpty:!0}),s=await e.executeWorkspaceTool(r.session.id,{action:"sandbox_write_file",args:{path:T(r.args,"path"),content:o},source:"chat_action"},{turnId:r.turnId,workspaceDiffBaseline:r.workspaceDiffBaseline});return C(r.callId,"sandbox_write_file",s)},"execute")},{name:"sandbox_edit_file",description:"Edit a UTF-8 text file in the active sandbox workspace by exact string replacement. Use after reading the file so oldText matches exactly.",parameters:{type:"object",additionalProperties:!1,properties:{path:{type:"string",minLength:1,description:"Sandbox workspace file path, for example README.md or src/index.ts."},oldText:{type:"string",minLength:1,description:"Exact text to replace. Include enough surrounding context to match only the intended location."},newText:{type:"string",description:"Replacement text. Use an empty string to delete the oldText block."},replaceAll:{type:"boolean",description:"Set true only when every occurrence of oldText should be replaced."}},required:["path","oldText","newText"]},enabled:n,execute:i(async r=>{let o=Xe(r.args,"newText",{allowEmpty:!0}),s=await e.executeWorkspaceTool(r.session.id,{action:"sandbox_edit_file",args:{path:T(r.args,"path"),oldText:Xe(r.args,"oldText"),newText:o,...typeof r.args.replaceAll=="boolean"?{replaceAll:r.args.replaceAll}:{}},source:"chat_action"},{turnId:r.turnId,workspaceDiffBaseline:r.workspaceDiffBaseline});return C(r.callId,"sandbox_edit_file",s)},"execute")},{name:"sandbox_status",description:"Read the active sandbox lifecycle status, runtime metadata, and readiness details before running commands or diagnosing sandbox startup.",parameters:{type:"object",additionalProperties:!1,properties:{}},enabled:n,execute:i(async r=>{let o=await e.executeWorkspaceTool(r.session.id,{action:"sandbox_status",args:{},source:"chat_action"},{turnId:r.turnId,workspaceDiffBaseline:r.workspaceDiffBaseline});return C(r.callId,"sandbox_status",o)},"execute")},{name:"sandbox_exec",description:"Run a bounded shell command inside the active sandbox workspace. Use this for Hybrid validation commands such as pnpm typecheck; do not run workspace commands in the local checkout while Working in Hybrid.",parameters:{type:"object",additionalProperties:!1,properties:{command:{type:"string",minLength:1,description:"Shell command to run in the sandbox workspace, for example pnpm typecheck."},timeoutSeconds:{type:"integer",minimum:1,maximum:3600,description:"Optional command timeout in seconds. Defaults to the sandbox workspace tool timeout."}},required:["command"]},enabled:n,execute:i(async r=>{let o=await e.executeWorkspaceTool(r.session.id,{action:"sandbox_exec",args:{command:T(r.args,"command"),...typeof r.args.timeoutSeconds=="number"?{timeoutSeconds:Math.max(1,Math.min(Math.floor(r.args.timeoutSeconds),3600))}:{}},source:"chat_action"},{turnId:r.turnId,workspaceDiffBaseline:r.workspaceDiffBaseline});return C(r.callId,"sandbox_exec",o)},"execute")},{name:"sandbox_git_status",description:"Read git status for the active sandbox workspace. Use this after sandbox edits or commands to report changed files without reading the user's local checkout.",parameters:{type:"object",additionalProperties:!1,properties:{}},enabled:n,execute:i(async r=>{let o=await e.executeWorkspaceTool(r.session.id,{action:"sandbox_git_status",args:{},source:"chat_action"},{turnId:r.turnId,workspaceDiffBaseline:r.workspaceDiffBaseline});return C(r.callId,"sandbox_git_status",o)},"execute")},{name:"sandbox_git_diff",description:"Read the active sandbox workspace git diff. Use this to summarize sandbox-only changes or verify that a command/edit changed only expected files.",parameters:{type:"object",additionalProperties:!1,properties:{baseRef:{type:"string",description:"Optional base ref for the diff. Omit for the default working-tree diff."}}},enabled:n,execute:i(async r=>{let o=await e.executeWorkspaceTool(r.session.id,{action:"sandbox_git_diff",args:{...typeof r.args.baseRef=="string"&&r.args.baseRef.trim()?{baseRef:r.args.baseRef.trim()}:{}},source:"chat_action"},{turnId:r.turnId,workspaceDiffBaseline:r.workspaceDiffBaseline});return C(r.callId,"sandbox_git_diff",o)},"execute")}]}i(vi,"createResourceModelToolDefinitions");function Si(e){return{name:"exec_command",description:"Run a bounded local shell command in the selected local project, or in an explicit absolute cwd supplied by a loaded skill or attachment workflow. Requires OpenPond command access and may pause for user approval.",parameters:{type:"object",additionalProperties:!1,properties:{command:{type:"string",minLength:1,description:"Shell command to run in the selected local project, for example ls or pnpm typecheck."},cwd:{type:"string",description:"Optional working directory. Omit to use the selected project root."},timeoutSeconds:{type:"integer",minimum:1,maximum:3600,description:"Optional command timeout in seconds. Defaults to 120."}},required:["command"]},enabled:i(t=>t.provider==="codex"||t.session.provider==="codex"||t.session.openPondCommandAccessMode==="disabled"?!1:A({session:t.session}).target!=="sandbox","enabled"),execute:i(async t=>{let n={session:t.session,turnId:t.turnId,providerRequestId:t.callId,command:T(t.args,"command"),cwd:typeof t.args.cwd=="string"?t.args.cwd:null,timeoutSeconds:typeof t.args.timeoutSeconds=="number"?t.args.timeoutSeconds:null,source:"model_tool",signal:t.signal},r=t.turnMetadata?.source==="experiment-improvement"||t.turnMetadata?.refinementCandidate!==void 0||t.session.metadata?.source==="experiment-improvement"||t.session.metadata?.refinementCandidate!==void 0;if(r&&!e.executeCandidateCommand)throw new Error("Candidate commands require an admitted filesystem-confined executor.");let o=r?await e.executeCandidateCommand(t,n):await e.executeCommand(n),s=o.ok&&!r?await dn(o):[];return{toolCallId:t.callId,name:"exec_command",ok:o.ok,contentText:Wt(o),data:{command:o.command,cwd:o.cwd,exitCode:o.exitCode,stdout:o.stdout,stderr:o.stderr,timedOut:o.timedOut,timeoutSeconds:o.timeoutSeconds,truncated:o.truncated,blockedReason:o.blockedReason,...s.length>0?{artifacts:s}:{}}}},"execute")}}i(Si,"createCommandModelToolDefinition");var yo=2e4,yn=1e5;function Ai(e={}){let t=e.fetchImpl??fetch;return{name:"web_fetch",description:"Fetch and extract readable text from a known HTTP(S) URL. Use this when the user provides a URL or a search result has an exact page to inspect; use web_search when discovering unknown pages by query.",parameters:{type:"object",additionalProperties:!1,properties:{url:{type:"string",minLength:1,description:"HTTP or HTTPS URL to fetch."},maxBytes:{type:"integer",minimum:1,maximum:yn,description:"Maximum UTF-8 bytes of extracted text to return. Defaults to 20000."}},required:["url"]},execute:i(async n=>{let r=ko(T(n.args,"url")),o=wo(n.args.maxBytes),s=await t(r,{method:"GET",headers:{Accept:"text/html,application/xhtml+xml,application/json,text/plain;q=0.9,*/*;q=0.8","User-Agent":"OpenPond-WebFetch/1.0"},redirect:"follow",signal:n.signal}),a=s.url||r,d=s.headers.get("content-type")??"",c=await s.text(),l=bo(c,d),u=xo(l.text,o),p={url:a,status:s.status,ok:s.ok,contentType:d,title:l.title,text:u.text,truncated:u.truncated,fetchedAt:new Date().toISOString()};return{toolCallId:n.callId,name:"web_fetch",ok:s.ok,contentText:JSON.stringify({ok:s.ok,action:"web_fetch",output:s.ok?`Fetched ${a}${u.truncated?" (truncated)":""}.`:`Fetch failed with HTTP ${s.status} for ${a}.`,data:{result:p}},null,2),data:{result:p}}},"execute")}}i(Ai,"createWebFetchModelToolDefinition");function Pi(e){return{name:"web_search",description:"Search the web for current or external information. The app renders clickable source pills automatically. Cite by source title or source name in prose by default; when the user explicitly requests URLs or linked evidence, use the result URLs in clickable Markdown links.",parameters:{type:"object",additionalProperties:!1,properties:{query:{type:"string",minLength:1,description:"Search query."},limit:{type:"integer",minimum:1,maximum:10,description:"Maximum number of results to return."},recencyDays:{type:"integer",minimum:0,description:"Only return results from this many recent days when supported."},domains:{type:"array",maxItems:10,items:{type:"string"},description:"Optional domain filters."}},required:["query"]},execute:i(async t=>{let n=await e.executeWebSearch({query:T(t.args,"query"),...typeof t.args.limit=="number"?{limit:t.args.limit}:{},...typeof t.args.recencyDays=="number"?{recencyDays:t.args.recencyDays}:{},...Array.isArray(t.args.domains)?{domains:t.args.domains.filter(r=>typeof r=="string")}:{}},{signal:t.signal});return{toolCallId:t.callId,name:"web_search",ok:!0,contentText:JSON.stringify({ok:!0,action:"web_search",output:`Found ${n.results.length} web result${n.results.length===1?"":"s"}. Source pills are automatic. Cite source titles or names by default; when the user requests URLs or linked evidence, use the result URLs in clickable Markdown links.`,data:{result:Ro(n)}},null,2),data:{result:n}}},"execute")}}i(Pi,"createWebSearchModelToolDefinition");function ko(e){let t=new URL(e);if(t.protocol!=="http:"&&t.protocol!=="https:")throw new Error("web_fetch url must use http or https");return t.hash="",t.toString()}i(ko,"normalizeWebFetchUrl");function wo(e){return typeof e!="number"||!Number.isFinite(e)||e<=0?yo:Math.min(Math.floor(e),yn)}i(wo,"normalizeWebFetchMaxBytes");function bo(e,t){if(/\bjson\b/i.test(t))return{title:null,text:e.trim()};if(!/html|xml/i.test(t))return{title:null,text:e.replace(/\s+/g," ").trim()};let n=pn(e.match(/<title[^>]*>([\s\S]*?)<\/title>/i)?.[1]?.replace(/\s+/g," ").trim()??"")||null,r=e.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi," ").replace(/<style\b[^>]*>[\s\S]*?<\/style>/gi," ").replace(/<noscript\b[^>]*>[\s\S]*?<\/noscript>/gi," ").replace(/<!--[\s\S]*?-->/g," ").replace(/<\/(p|div|section|article|header|footer|main|li|h[1-6]|blockquote|pre|tr)>/gi,`
34
+ `).replace(/<br\s*\/?\s*>/gi,`
35
+ `).replace(/<[^>]+>/g," "),o=pn(r).replace(/[ \t\f\v]+/g," ").replace(/\n\s+/g,`
36
+ `).replace(/\n{3,}/g,`
37
+
38
+ `).trim();return{title:n,text:o}}i(bo,"extractReadableWebFetchText");function xo(e,t){if(Buffer.byteLength(e,"utf8")<=t)return{text:e,truncated:!1};let r=Math.min(e.length,t);for(;r>0&&Buffer.byteLength(e.slice(0,r),"utf8")>t;)r-=1;return{text:e.slice(0,r).trimEnd(),truncated:!0}}i(xo,"limitUtf8Text");function pn(e){return e.replace(/&nbsp;/gi," ").replace(/&amp;/gi,"&").replace(/&lt;/gi,"<").replace(/&gt;/gi,">").replace(/&quot;/gi,'"').replace(/&#39;|&apos;/gi,"'").replace(/&#(\d+);/g,(t,n)=>String.fromCodePoint(Number(n))).replace(/&#x([0-9a-f]+);/gi,(t,n)=>String.fromCodePoint(Number.parseInt(n,16)))}i(pn,"decodeHtmlEntities");function Ro(e){return{query:e.query,provider:e.provider,searchedAt:e.searchedAt,truncated:e.truncated,results:e.results.map((t,n)=>({id:t.id,citation:`[${n+1}]`,title:t.title,url:t.url,snippet:t.snippet,sourceName:t.sourceName,domain:_o(t.url),publishedAt:t.publishedAt,updatedAt:t.updatedAt}))}}i(Ro,"webSearchResultForModel");function _o(e){try{return new URL(e).hostname.replace(/^www\./i,"")}catch{return null}}i(_o,"hostnameFromUrl");function Ci(e){let t=e.skills.filter(r=>r.enabled&&r.validationStatus==="valid").sort((r,o)=>r.name.localeCompare(o.name));if(t.length===0)return[];let n=new Map(t.map(r=>[r.name,r]));return[{name:"profile_skill_read",description:"Read one enabled OpenPond profile skill package by name before following its workflow. The result includes its instructions, package path, and bundled resource files. Loading a skill does not grant permissions or create tools.",parameters:{type:"object",additionalProperties:!1,properties:{name:{type:"string",minLength:1,...t.length<=100?{enum:t.map(r=>r.name)}:{},description:"Profile skill name from the Available profile skills list."}},required:["name"]},execute:i(async r=>{let o=T(r.args,"name");if(!n.get(o))return S(r.callId,"profile_skill_read",`Profile skill ${o} is not in the active enabled skill catalog.`);let a=await e.readProfileSkill(o);return{toolCallId:r.callId,name:"profile_skill_read",ok:!0,contentText:JSON.stringify({ok:!0,action:"profile_skill_read",output:`Loaded profile skill ${a.name}.`,data:{skill:a}},null,2),data:{skill:a}}},"execute")}]}i(Ci,"createOpenPondProfileSkillModelToolDefinitions");function Ei(e){let t=Array.from(new Map(e.connectedApps.map(r=>[r.provider,r])).values()).sort((r,o)=>r.label.localeCompare(o.label));if(t.length===0)return[];let n=t.map(r=>r.provider);return[{name:"connected_app_skill_read",description:"Read product-owned operating instructions for one server-validated connected app provider before using that provider's workflow.",parameters:{type:"object",additionalProperties:!1,properties:{provider:{type:"string",enum:n,description:"Connected app provider id from the Connected apps available in this turn list."}},required:["provider"]},execute:i(async r=>{let o=T(r.args,"provider");if(!n.includes(o))return S(r.callId,"connected_app_skill_read",`Connected app provider ${o} is not available in this turn.`);let s=st(o);return s?{toolCallId:r.callId,name:"connected_app_skill_read",ok:!0,contentText:JSON.stringify({ok:!0,action:"connected_app_skill_read",output:`Loaded connected app instructions for ${s.provider}.`,data:{skill:s}},null,2),data:{skill:s}}:S(r.callId,"connected_app_skill_read",`Connected app instructions are not available for ${o}.`)},"execute")}]}i(Ei,"createConnectedAppSkillModelToolDefinitions");function Mi(e){if(e.actionCatalog.length===0)return[];let t=new Map(e.actionCatalog.map(c=>[c.id,c])),n=i(()=>t.size>0,"enabled");if(e.trainingHarness)return e.trainingHarness.actionBindings.map(c=>{let l=t.get(c.actionId);if(!l)throw new Error(`Taskset Harness action ${c.actionId} is not available in the active Profile.`);return{name:c.modelToolName,description:c.description,parameters:structuredClone(c.inputSchema),enabled:n,execute:i(u=>Ke({action:l,context:u,deps:e,resultToolName:c.modelToolName,compactProfileResultForModel:!0,input:Ao({binding:c,arguments:u.args,taskId:e.trainingHarness.taskId})}),"execute")}});let r=new Map(e.actionCatalog.flatMap(c=>{let l=c.sourceActionId??c.name??c.id;return ne.includes(l)?[[l,c]]:[]})),o=e.executeCrossSystemTool&&ne.every(c=>r.has(c))?lt.map(c=>({name:c.name,description:c.description,parameters:structuredClone(c.parameters),enabled:n,execute:i(l=>e.executeCrossSystemTool({modelId:l.model,localProjectId:l.session.localProjectId??(l.session.workspaceKind==="local_project"?l.session.workspaceId??null:null),turnId:l.turnId,callId:l.callId,name:c.name,args:l.args,userPrompt:l.userPrompt,taskId:So(l.turnMetadata),signal:l.signal}),"execute")})):[],s=e.actionCatalog.filter(c=>{let l=w(c.implementation),u=c.sourceActionId??c.name??c.id;return!ne.includes(u)&&(!!c.agentId||l?.type==="openpond-profile-action")}),a=new Map;for(let c of s){let l=mn(c);l&&a.set(l,(a.get(l)??0)+1)}let d=s.flatMap(c=>{let l=i(f=>({name:f,description:[c.description??`Run the ${c.label??c.name??c.id} Profile Agent action.`,`This tool is scoped to action ${c.id}; pass the action input directly.`].join(" "),parameters:To(c),enabled:n,execute:i(m=>Ke({action:c,context:m,deps:e,resultToolName:f,compactProfileResultForModel:!0,input:m.args}),"execute")}),"definition"),u=Io(c),p=mn(c);return p&&p!==u&&a.get(p)===1?[l(p)]:[l(u)]});return[...o,...d,{name:"openpond_action_search",description:"Search the selected or mentioned OpenPond action catalog. Returns scoped action ids that may be runnable.",parameters:{type:"object",additionalProperties:!1,properties:{query:{type:"string",minLength:1},limit:{type:"integer",minimum:1,maximum:20}},required:["query"]},enabled:n,execute:i(async c=>{let l=T(c.args,"query").toLowerCase(),u=typeof c.args.limit=="number"?Math.min(Math.max(Math.floor(c.args.limit),1),20):10,p=e.actionCatalog.filter(f=>Lo(f).includes(l)).slice(0,u).map(Do);return{toolCallId:c.callId,name:"openpond_action_search",ok:!0,contentText:JSON.stringify({ok:!0,action:"openpond_action_search",output:`Found ${p.length} action${p.length===1?"":"s"}.`,data:{actions:p}},null,2),data:{actions:p}}},"execute")},{name:"openpond_action_run",description:"Run one allowed OpenPond action from the scoped action catalog by stable actionId.",parameters:{type:"object",additionalProperties:!1,properties:{actionId:{type:"string",minLength:1},input:{type:"object",additionalProperties:!0},projectId:{type:"string",minLength:1},agentId:{type:"string",minLength:1}},required:["actionId"]},enabled:n,execute:i(async c=>{let l=T(c.args,"actionId"),u=t.get(l);return u?Ke({action:u,context:c,deps:e,resultToolName:"openpond_action_run",compactProfileResultForModel:!0,input:w(c.args.input)??{},requestedProjectId:y(c.args.projectId)??void 0,requestedAgentId:y(c.args.agentId)??void 0}):S(c.callId,"openpond_action_run",`Action ${l} is not in the scoped allowed action catalog.`)},"execute")}]}i(Mi,"createOpenPondActionModelToolDefinitions");function Io(e){let n=(e.sourceActionId??e.name??e.label??e.id).toLowerCase().replace(/[^a-z0-9_]+/g,"_").replace(/^_+|_+$/g,"").slice(0,44)||"action",r=ho("sha256").update(e.id).digest("hex").slice(0,8);return`agent_${n}_${r}`}i(Io,"directOpenPondActionToolName");function mn(e){let t=y(w(e.implementation)?.actionId)??e.sourceActionId??e.name??e.id;return/^[A-Za-z0-9_-]{1,64}$/.test(t)?t:null}i(mn,"directOpenPondActionAliasName");function To(e){let t=w(e.inputSchema);return t?.type==="object"?structuredClone(t):{type:"object",additionalProperties:!0,description:typeof e.inputSchema=="string"?`Input must satisfy the Profile schema ${e.inputSchema}.`:"Input accepted by this Profile Agent action."}}i(To,"actionInputSchema");async function Ke(e){let{action:t,context:n,deps:r,resultToolName:o}=e,s=w(t.implementation);if(s?.type==="openpond-profile-action"){let u=A({session:n.session});if(L(u))return S(n.callId,o,`Action ${t.id} is a local profile action and cannot run while Working in Hybrid or sandbox. Use a sandbox action for hosted workspace work, or switch Working in to Local before running this profile action.`);if(!r.executeProfileAction)return S(n.callId,o,`Action ${t.id} is a profile action, but profile action execution is not configured.`);let p=y(s.actionId)??t.id,f=y(e.input.prompt)??y(e.input.message)??n.userPrompt,m=await r.executeProfileAction({action:p,input:{...e.input,prompt:f,message:f,source:"openpond_app"},metadata:{source:"openpond_app",selectedActionId:p,selectedActionLabel:t.label??t.name??p,selectedBy:"native_model_tool",displayPrompt:n.userPrompt,sessionId:n.session.id}}),h=e.compactProfileResultForModel?vo(m):m;return{toolCallId:n.callId,name:o,ok:!0,contentText:JSON.stringify({ok:!0,action:o,output:`Ran profile action ${p}.`,data:{result:h}},null,2),data:{result:m}}}if(s?.type==="openpond-project-action"){let u=A({session:n.session});if(L(u))return S(n.callId,o,`Action ${t.id} is a local Project Action and cannot run while Working in Hybrid or sandbox. Switch Working in to Local.`);if(!r.executeProjectAction)return S(n.callId,o,`Action ${t.id} is a local Project Action, but local action execution is not configured.`);let p=y(s.projectRoot)??t.sourcePath,f=y(s.projectId),m=y(s.actionId)??t.id;if(!p)return S(n.callId,o,`Action ${t.id} is missing its local Project root.`);if(!f||f!==n.session.localProjectId)return S(n.callId,o,`Action ${t.id} is not authorized for the selected local Project.`);let h=await r.executeProjectAction({action:m,input:e.input,metadata:{source:"openpond_project_action",projectRoot:p,projectId:f,selectedActionId:m,selectedActionLabel:t.label??t.name??m,selectedBy:"native_model_tool",displayPrompt:n.userPrompt,sessionId:n.session.id,turnId:n.turnId,toolCallId:n.callId}});return{toolCallId:n.callId,name:o,ok:!0,contentText:JSON.stringify({ok:!0,action:o,output:`Ran Project Action ${m}.`,data:{result:h}},null,2),data:{result:h}}}if(s?.type==="openpond-hosted-project-action")return un({action:t,context:n,implementation:s,actionInput:e.input,requestedProjectId:e.requestedProjectId,resultToolName:o,executeProjectAction:r.executeProjectAction});let a={actionName:t.sourceActionId??t.name??t.id,input:e.input},d=y(s?.projectId);if(e.requestedProjectId){if(!d||e.requestedProjectId!==d)return S(n.callId,o,`Project ${e.requestedProjectId} is not authorized for action ${t.id}.`);a.projectId=e.requestedProjectId}else d&&(a.projectId=d);let c=t.agentId??y(s?.agentId);if(e.requestedAgentId){if(!c||e.requestedAgentId!==c)return S(n.callId,o,`Agent ${e.requestedAgentId} is not authorized for action ${t.id}.`);a.agentId=e.requestedAgentId}else c&&(a.agentId=c);let l=await r.executeWorkspaceTool(n.session.id,{action:"sandbox_run_action",args:a,source:"chat_action"},{turnId:n.turnId,workspaceDiffBaseline:n.workspaceDiffBaseline});return C(n.callId,o,l)}i(Ke,"executeScopedOpenPondAction");function vo(e){let t=w(e),n=y(t?.stdout);if(!n)return e;let r;try{r=JSON.parse(n)}catch{return e}let o=w(r)?.result??r,s=w(o),a=w(s?.metadata);for(let c of["snapshot","decision","submission","receipt"])if(a&&Object.hasOwn(a,c))return a[c];let d=y(s?.text);if(d)try{return JSON.parse(d)}catch{return d}return o}i(vo,"compactProfileActionResult");function So(e){let t=e?.crossSystemTaskId;return typeof t=="string"&&t.trim()?t.trim().slice(0,240):void 0}i(So,"crossSystemTaskIdFromTurnMetadata");function Ao(e){let t=structuredClone(e.arguments);for(let n of e.binding.episodeArgumentBindings){if(Object.hasOwn(t,n.argument))throw new Error(`Harness action ${e.binding.actionId} cannot accept caller-supplied episode argument ${n.argument}.`);t[n.argument]=e.taskId}return t}i(Ao,"bindHarnessEpisodeArguments");function Po(e,t){let n=[],r=new Set;for(let o of kn(e.data)){let s=`sandbox:file:${o.path}`;r.has(s)||(r.add(s),n.push({ref:s,title:o.path,snippet:o.snippet??"Sandbox file match",score:.8,metadata:{source:"sandbox",path:o.path,line:o.line??null}}))}return{query:t,scope:"sandbox",items:n,truncated:!1}}i(Po,"sandboxWorkspaceToolSearchResult");async function Co(e){let t=e.ref.startsWith("sandbox:dir:"),n=e.ref.slice(t?12:13),r=await e.executeWorkspaceTool(e.session.id,{action:t?"sandbox_list_files":"sandbox_read_file",args:{path:n||"."},source:"chat_action"},{turnId:e.turnId,workspaceDiffBaseline:e.workspaceDiffBaseline});if(!r.ok)throw new Error(r.output||`Sandbox resource read failed: ${n||"."}`);if(t){let d=kn(r.data),c=d.map(l=>`${l.kind??"file"} ${l.path}`).join(`
39
+ `);return{ref:`sandbox:dir:${n||"."}`,kind:"sandbox.dir",title:n||".",contentType:"inode/directory",contentText:c,metadata:{path:n||".",entryCount:d.length,entries:d,ok:r.ok},relatedRefs:d.slice(0,50).map(l=>l.kind==="directory"?`sandbox:dir:${l.path}`:`sandbox:file:${l.path}`),truncation:{truncated:!1,originalBytes:Buffer.byteLength(c,"utf8"),returnedBytes:Buffer.byteLength(c,"utf8")}}}let o=xn(r.data,n);if(o.binary)return{ref:`sandbox:file:${n}`,kind:"sandbox.file",title:n,contentType:o.contentType,metadata:{path:n,ok:r.ok,binary:!0,sizeBytes:o.sizeBytes},relatedRefs:[`sandbox:dir:${gn(n)}`],truncation:{truncated:!1,originalBytes:o.sizeBytes??0,returnedBytes:0,reason:"binary"}};let s=jo(r.data)??r.output,a=Buffer.byteLength(s,"utf8");return{ref:`sandbox:file:${n}`,kind:"sandbox.file",title:n,contentType:o.contentType,contentText:s,metadata:{path:n,ok:r.ok,binary:!1,sizeBytes:o.sizeBytes},relatedRefs:[`sandbox:dir:${gn(n)}`],truncation:{truncated:!1,originalBytes:a,returnedBytes:a}}}i(Co,"readSandboxResourceViaWorkspaceTool");function Eo(e){let t=e.toLowerCase(),r=[{ref:"git:status:working-tree",title:"Git status",snippet:"Current branch, upstream, ahead/behind state, and changed files.",score:.9,metadata:{source:"git",kind:"status"},haystack:"git status working tree changed files branch upstream dirty"},{ref:"git:diff:working-tree",title:"Git working tree diff",snippet:"Unstaged working tree diff.",score:.85,metadata:{source:"git",kind:"diff",staged:!1},haystack:"git diff working tree unstaged patch changes"},{ref:"git:diff:staged",title:"Git staged diff",snippet:"Staged git diff.",score:.84,metadata:{source:"git",kind:"diff",staged:!0},haystack:"git diff staged cached patch index changes"}].filter(o=>o.haystack.includes(t)||o.ref.includes(t)).map(({haystack:o,...s})=>s);return{query:e,scope:"git",items:r,truncated:!1}}i(Eo,"gitResourceSearchResult");async function Mo(e){let t=A({session:e.session}),n=L(t),r=Wo(e.ref,n),o=await e.executeWorkspaceTool(e.session.id,{action:r.name,args:r.args,source:"chat_action"},{turnId:e.turnId,workspaceDiffBaseline:e.workspaceDiffBaseline});if(e.ref==="git:status:working-tree"){let a=JSON.stringify(o.data??{output:o.output},null,2);return{ref:e.ref,kind:"git.status",title:"Git status",contentType:"application/json",contentText:a,metadata:{action:r.name,ok:o.ok,changedFileRefs:fn(o.data,n)},relatedRefs:fn(o.data,n),truncation:{truncated:!1,originalBytes:Buffer.byteLength(a,"utf8"),returnedBytes:Buffer.byteLength(a,"utf8")}}}let s=qo(o.data)??o.output;return{ref:e.ref,kind:"git.diff",title:e.ref==="git:diff:staged"?"Git staged diff":"Git working tree diff",contentType:"text/x-diff",contentText:s,metadata:{action:r.name,ok:o.ok,staged:e.ref==="git:diff:staged"},relatedRefs:[],truncation:{truncated:!1,originalBytes:Buffer.byteLength(s,"utf8"),returnedBytes:Buffer.byteLength(s,"utf8")}}}i(Mo,"readGitResourceViaWorkspaceTool");function Wo(e,t){if(e==="git:status:working-tree")return{name:t?"sandbox_git_status":"git_status",args:{}};if(e==="git:diff:working-tree")return{name:t?"sandbox_git_diff":"git_diff",args:{}};if(e==="git:diff:staged")return{name:t?"sandbox_git_diff":"git_diff",args:{staged:!0}};throw new Error(`Unsupported git resource ref: ${e}`)}i(Wo,"gitResourceWorkspaceAction");function Oo(e,t){return e.startsWith("sandbox:file:")||e.startsWith("sandbox:dir:")?e:L(t)?e.startsWith("workspace:file:")?`sandbox:file:${e.slice(15)}`:e.startsWith("workspace:dir:")?`sandbox:dir:${e.slice(14)}`:null:null}i(Oo,"sandboxResourceRefForExecutionTarget");function fn(e,t=!1){let n=w(e),r=w(n?.status);return(Array.isArray(n?.files)?n.files:Array.isArray(r?.files)?r.files:[]).filter(s=>!!s&&typeof s=="object"&&!Array.isArray(s)).map(s=>y(s.path)).filter(s=>!!s).map(s=>`${t?"sandbox":"workspace"}:file:${s}`)}i(fn,"gitChangedFileRefs");function qo(e){let t=w(e);return y(t?.diff)??y(w(t?.result)?.diff)}i(qo,"gitDiffText");function kn(e){let t=wn(e,["matches","files","entries"]),n=[];for(let r of t){let o=y(r.path)??y(r.name);o&&n.push({path:o,snippet:y(r.text)??y(r.snippet)??y(r.content)??void 0,line:typeof r.line=="number"?r.line:null,kind:y(r.kind)??y(r.type)})}return n}i(kn,"sandboxPathItems");function wn(e,t){if(!e||typeof e!="object")return[];let n=e,r=[];for(let o of t){let s=n[o];Array.isArray(s)&&r.push(...s.filter(a=>!!a&&typeof a=="object"&&!Array.isArray(a)))}for(let o of Object.values(n))o&&typeof o=="object"&&!Array.isArray(o)&&r.push(...wn(o,t));return r}i(wn,"nestedArraysForKeys");function jo(e){let t=w(e),n=bn(e),r=y(n?.contentsBase64)??y(t?.contentsBase64);if(r&&!xn(e,y(n?.path)??"").binary)try{return Buffer.from(r,"base64").toString("utf8")}catch{return null}return y(t?.content)??y(t?.text)??y(t?.contents)??y(n?.content)??y(n?.text)}i(jo,"sandboxFileContent");function Bo(e){let t=e.toLowerCase();return t.endsWith(".json")?"application/json":t.endsWith(".md")||t.endsWith(".mdx")?"text/markdown":/\.(css|csv|html|js|jsx|ts|tsx|txt|yaml|yml)$/.test(t)?"text/plain":null}i(Bo,"contentTypeForResourcePath");function bn(e){let t=w(e);return w(t?.file)??w(w(t?.result)?.file)}i(bn,"sandboxFileRecord");function xn(e,t){let n=bn(e),r=y(n?.contentType)??y(n?.mimeType)??Bo(t),o=hn(n?.sizeBytes)??hn(n?.size);return{binary:n?.binary===!0||n?.isBinary===!0||(r?$o(r):No(t)),contentType:r,...o!==null?{sizeBytes:o}:{}}}i(xn,"sandboxFileMetadata");function $o(e){return e.startsWith("image/")||e.startsWith("video/")||e.startsWith("audio/")||e==="application/pdf"||e==="application/octet-stream"||e.includes("zip")||e.includes("sqlite")}i($o,"isBinaryContentType");function No(e){return/\.(7z|avif|db|gif|gz|ico|jpe?g|mov|mp4|pdf|png|sqlite|tar|webp|xlsm?|xlsx|zip)$/i.test(e)}i(No,"isLikelyBinaryResourcePath");function gn(e){let t=e.replace(/\/+$/,""),n=t.lastIndexOf("/");return n<=0?".":t.slice(0,n)}i(gn,"parentResourcePath");function Ge(e,t){return{toolCallId:e,name:"resource_search",ok:!0,contentText:JSON.stringify({ok:!0,action:"resource_search",output:`Found ${t.items.length} resource${t.items.length===1?"":"s"}.`,data:{result:t}},null,2),data:{result:t}}}i(Ge,"resourceSearchResultToModelToolResult");function Ve(e,t){return{toolCallId:e,name:"resource_read",ok:!0,contentText:JSON.stringify({ok:!0,action:"resource_read",output:`Read resource ${t.ref}.`,data:{resource:t}},null,2),data:{resource:t}}}i(Ve,"resourceReadResultToModelToolResult");function T(e,t){let n=e[t];if(typeof n!="string"||!n.trim())throw new Error(`${t} is required`);return n.trim()}i(T,"stringArg");function Xe(e,t,n={}){let r=e[t];if(typeof r!="string"||!n.allowEmpty&&r.length===0)throw new Error(`${t} is required`);return r}i(Xe,"exactTextArg");function Lo(e){return[e.id,e.name,e.label,e.description,e.sourceActionId,e.agentId].filter(t=>typeof t=="string"&&t.trim().length>0).join(" ").toLowerCase()}i(Lo,"actionCatalogText");function Do(e){let t=w(e.implementation),n=t?.type!=="openpond-profile-action";return{actionId:e.id,name:e.name??e.id,label:e.label??e.name??e.id,description:e.description??null,directRunAllowed:n,inputSchema:e.inputSchema??null,outputSchema:e.outputSchema??null,agentId:e.agentId??y(t?.agentId),projectId:y(t?.projectId),sourceActionId:e.sourceActionId??null}}i(Do,"actionCatalogItemForModel");function S(e,t,n){return{toolCallId:e,name:t,ok:!1,contentText:JSON.stringify({ok:!1,action:t,output:n},null,2)}}i(S,"failedActionToolResult");function w(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:null}i(w,"asRecord");function y(e){return typeof e=="string"&&e.trim()?e.trim():null}i(y,"stringValue");function hn(e){return typeof e=="number"&&Number.isFinite(e)?e:null}i(hn,"numberValue");var Rn=class{static{i(this,"NativeToolCallAccumulator")}calls=new Map;append(t){t.forEach((n,r)=>{let o=n,s=typeof o.index=="number"&&Number.isInteger(o.index)?o.index:null,a=Ye(n.id),d=s!==null?`index:${s}`:a?`id:${a}`:`ordinal:${r}`,c=this.calls.get(d)??{key:d,index:s,id:null,type:"function",name:"",argumentsJson:""};a&&(c.id=a);let l=Ye(n.type);l&&(c.type=l);let u=n.function&&typeof n.function=="object"?n.function:{},p=Ye(u.name);p&&(c.name+=p),typeof u.arguments=="string"&&(c.argumentsJson+=u.arguments),this.calls.set(d,c)})}completed(t={}){if(t.strict&&[...this.calls.values()].some(n=>!n.id||!n.name||n.type!=="function"||!n.argumentsJson.trim()))throw new Error("Model returned an incomplete function call.");return[...this.calls.values()].sort((n,r)=>(n.index??Number.MAX_SAFE_INTEGER)-(r.index??Number.MAX_SAFE_INTEGER)).map((n,r)=>Fo(n,r)).filter(n=>!!n)}};function qi(e,t,n={}){let r=n.continuation;return{role:"assistant",content:e.trim()||(r?"":null),...r?{continuation:r}:{},tool_calls:t.map(o=>({id:o.id,type:o.hostedToolCall.type||"function",function:{name:o.name,arguments:Uo(o.argumentsJson,n.maxArgumentCharacters)}}))}}i(qi,"assistantMessageForNativeToolCalls");function ji(e,t={}){return{role:"tool",tool_call_id:e.toolCallId,content:_n(e.contentText,t.maxContentCharacters)}}i(ji,"toolResultMessage");function Bi(e){let t=e.argumentsJson.trim();if(!t)return{};let n=JSON.parse(t);if(!n||typeof n!="object"||Array.isArray(n))throw new Error("Tool arguments must be a JSON object.");return n}i(Bi,"parseNativeToolArguments");function $i(e,t){return{toolCallId:e.id,name:e.name,ok:!1,contentText:JSON.stringify({ok:!1,action:e.name,output:`Invalid ${e.name} tool arguments: ${t}`,repairHint:"Retry the tool call with arguments as one valid JSON object."},null,2),data:{validationError:!0,argumentsJson:e.argumentsJson}}}i($i,"invalidNativeToolArgumentsResult");function Ni(e){return{toolCallId:e.id,name:e.name,ok:!1,contentText:JSON.stringify({ok:!1,action:e.name,output:`Unknown tool: ${e.name}`,repairHint:"Call one of the tools that was provided in this request."},null,2)}}i(Ni,"unknownNativeToolResult");function Fo(e,t){let n=e.name.trim();if(!n)return null;let r=e.id??`call_${t+1}`,o={id:r,type:e.type||"function",function:{name:n,arguments:e.argumentsJson}};return e.index!==null&&(o.index=e.index),{id:r,name:n,argumentsJson:e.argumentsJson,hostedToolCall:o}}i(Fo,"completedToolCall");function Ye(e){return typeof e=="string"&&e.trim()?e:null}i(Ye,"stringValue");function Uo(e,t){let n=e.trim();if(!n)return"{}";try{let r=JSON.parse(n);return r&&typeof r=="object"&&!Array.isArray(r)?_n(e,t):"{}"}catch{return"{}"}}i(Uo,"replayableNativeToolArguments");function _n(e,t){if(typeof t!="number"||!Number.isInteger(t)||t<500||e.length<=t)return e;try{let n=JSON.parse(e),r=Ze(n,Math.max(200,Math.floor(t/2))),o=JSON.stringify(r);if(o.length<=t)return o}catch{}return JSON.stringify({truncated:!0,originalCharacters:e.length,preview:e.slice(0,Math.max(100,t-120))})}i(_n,"boundedJsonText");function Ze(e,t){return typeof e=="string"?e.length<=t?e:`${e.slice(0,t)}
40
+ [truncated after execution; ${e.length} characters total]`:Array.isArray(e)?e.slice(0,100).map(n=>Ze(n,t)):e&&typeof e=="object"?Object.fromEntries(Object.entries(e).slice(0,100).map(([n,r])=>[n,Ze(r,t)])):e}i(Ze,"boundLongStrings");function Li(e){return{content:[{type:"text",text:e.contentText},...(e.images??[]).map(t=>({type:"image",mimeType:t.mimeType,data:t.data}))],...e.ok?{}:{isError:!0}}}i(Li,"nativeToolMcpResult");import{createHash as zo}from"node:crypto";import{promises as Ho}from"node:fs";import Jo from"node:path";var ge="openpond-work-v1",Ko="mkdir -p inputs work outputs",Go="find /workspace/inputs /workspace/work /workspace/outputs -mindepth 1 -maxdepth 1 -exec rm -rf -- {} +",Vo=18e4,Xo=1e3,Yo=15e3,Zo=250,In=["cd /workspace/work &&",'printf "architecture="; uname -m;','printf "kernel="; uname -sr;','printf "cpu_count="; getconf _NPROCESSORS_ONLN 2>/dev/null || true;',`printf "memory_kb="; awk '/MemTotal/ {print $2}' /proc/meminfo 2>/dev/null || true;`,`printf "workspace_bytes="; df -Pk .. 2>/dev/null | awk 'NR==2 {print $4 * 1024}' || true;`,'printf "tools=";','for tool in python3 pip node npm npx pnpm java gcc g++ make git ffmpeg convert magick pandoc pdftotext pdfinfo pdftoppm curl wget jq rg; do command -v "$tool" >/dev/null 2>&1 && printf "%s " "$tool"; done;',"printf '\\n'"].join(" "),Qo=new Set(["archived","deleted","error"]);function Tn(e){let t=new Map,n=new Set;async function r(c,l,u){return e.executeWorkspaceTool(c.session.id,{action:l,args:u,source:"chat_action"},{turnId:c.turnId,workspaceDiffBaseline:c.workspaceDiffBaseline})}i(r,"execute");async function o(c){if(n.has(c.session.id))return;let l=t.get(c.session.id);if(l)return l;let u=(async()=>{let p=c.session.workspaceKind==="sandbox"&&!!c.session.workspaceId,f=p;try{if(p){let m=await r(c,"sandbox_status",{});if(!m.ok)throw new Error(m.output);if(Sn(m.data)==="stopped"){let h=await r(c,"sandbox_start",{});if(!h.ok)throw new Error(h.output)}}else{let m=await r(c,"sandbox_create",{attachToSession:!0,command:Ko,visibility:"private",networkPolicy:{internetEgress:"block",allowedHosts:[]},reuseDefaultRuntime:!1,markDefaultRuntime:!1,runtime:{runtimeProfileId:ge,workflowMode:"attempt",promotionPolicy:"none",metadata:{source:"openpond-work",experience:"work"}},metadata:{source:"openpond-work",experience:"work"}});if(!m.ok)throw new Error(m.output);f=!0}await vn(()=>r(c,"sandbox_status",{})),await a(c),n.add(c.session.id)}catch(m){throw n.delete(c.session.id),f&&await r(c,"sandbox_stop",{}).catch(()=>{}),m}})();t.set(c.session.id,u);try{await u}finally{t.get(c.session.id)===u&&t.delete(c.session.id)}}i(o,"ensureReady");async function s(c){await o(c);let l=await r(c,"sandbox_exec",{command:Go,timeoutSeconds:60,autoPreserveSource:!1});if(!l.ok)throw new Error(l.output);await a(c)}i(s,"reset");async function a(c){for(let l of e.inputs??[]){if(!l.storageName)continue;let u=await es(l),p=await r(c,"sandbox_upload_file",{path:N("inputs",l.storageName,["inputs"]),contentsBase64:u.toString("base64")});if(!p.ok)throw new Error(p.output)}}i(a,"stageInputs");async function d(c){if(!n.has(c.session.id)&&(c.session.workspaceKind!=="sandbox"||!c.session.workspaceId))return{ok:!0,action:"sandbox_stop",output:"No Work compute is attached to this task.",data:{stopped:!1,reason:"not_attached"}};let l=await r(c,"sandbox_stop",{});return l.ok&&n.delete(c.session.id),l}return i(d,"stop"),{ensureReady:o,execute:r,reset:s,stop:d}}i(Tn,"createWorkRuntimeService");async function es(e){let t=e.storageName??"unnamed";if(!e.localPath&&e.bytes===void 0)throw new Error(`Work input ${t} has no readable content.`);let n=e.bytes===void 0?await Ho.readFile(e.localPath):Buffer.from(e.bytes);if(e.sizeBytes!==void 0&&n.byteLength!==e.sizeBytes)throw new Error(`Work input ${e.storageName} size does not match its manifest.`);if(e.sha256!==void 0&&zo("sha256").update(n).digest("hex")!==e.sha256)throw new Error(`Work input ${e.storageName} hash does not match its manifest.`);return n}i(es,"workInputBytes");function N(e,t,n=["inputs","work","outputs"]){let r=ts(e);if(!n.includes(r))throw new Error(`Unknown Work area: ${r}`);let o=t.trim().replaceAll("\\","/");if(!o||o===".")return r;if(o.startsWith("/"))throw new Error("Work paths must be relative to their selected area.");let s=Jo.posix.normalize(o);if(s===".."||s.startsWith("../")||s.includes("/../"))throw new Error("Work path escaped its selected area.");return`${r}/${s}`}i(N,"workPath");async function vn(e,t={}){let n=t.timeoutMs??Vo,r=t.pollMs??Xo,o=t.now??Date.now,s=t.sleep??(c=>new Promise(l=>setTimeout(l,c))),a=o(),d="";for(;o()-a<=n;){let c=await e();if(!c.ok)throw new Error(c.output);if(d=Sn(c.data),d==="running")return c;if(Qo.has(d))throw new Error(`Work sandbox entered ${d} during startup.`);await s(r)}throw new Error(`Work sandbox did not become ready within ${n}ms${d?` (last state: ${d})`:""}.`)}i(vn,"waitForWorkSandboxReady");async function Ji(e,t={}){let n=t.timeoutMs??Yo,r=t.pollMs??Zo,o=t.now??Date.now,s=t.sleep??(c=>new Promise(l=>setTimeout(l,c))),a=o(),d=null;for(;o()-a<=n;){if(d=await e(),!d.ok||ns(d.data))return d;await s(r)}return d??e()}i(Ji,"waitForWorkReceiptSettlement");function ts(e){if(typeof e!="string"||!e.trim())throw new Error("A required string argument is missing.");return e.trim()}i(ts,"requiredString");function Sn(e){if(!e||typeof e!="object"||Array.isArray(e))return"";let t=e.sandbox;if(!t||typeof t!="object"||Array.isArray(t))return"";let n=t.state;return typeof n=="string"?n:""}i(Sn,"sandboxState");function ns(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let t=e,n=t.sandbox&&typeof t.sandbox=="object"&&!Array.isArray(t.sandbox)?t.sandbox:{};return(Array.isArray(t.receipts)?t.receipts:Array.isArray(n.receipts)?n.receipts:[]).some(o=>o&&typeof o=="object"&&!Array.isArray(o)&&o.status==="captured")}i(ns,"receiptSettlementComplete");import{randomUUID as rs}from"node:crypto";function he(e){if(!e||typeof e!="object"||Array.isArray(e))return e;let t=e,n=t.sandbox;if(!n||typeof n!="object"||Array.isArray(n))return t;let r=n;return{...t,sandbox:{id:r.id,name:r.name,state:r.state,resources:r.resources,createdAt:r.createdAt,updatedAt:r.updatedAt}}}i(he,"workModelData");function na(e){let t=Tn(e);async function n(a,d,c,l){let u=await t.execute(a,d,c);return Qe(a.callId,l,u)}i(n,"execute");async function r(a){await t.ensureReady(a)}i(r,"ensureSandbox");let o=i((a,d,c)=>async l=>{let u=c(l);return await r(l),await n(l,d,u,a)},"withSandbox"),s=[...e.createScheduledWork?[{name:"schedule_work",description:"Create a durable recurring workflow attached to the current chat when the user directly asks to schedule the current or another task and provides an exact cadence, local date/time, and timezone. Every scheduled run is sent through the attached chat so its output appears in that conversation. Use the conversation context to preserve the task prompt and ask only for genuinely unavailable required scheduling details. The scheduled prompt must describe only the work to perform when the schedule fires, not the scheduling request itself.",parameters:os(),execute:i(async a=>{let d=ct.parse({...a.args,clientRequestId:`${a.turnId}:${a.callId}`,sourceTurnId:a.turnId,targetSessionId:a.session.id,modelId:a.provider==="openpond"?a.model:"openpond-chat"}),c=await e.createScheduledWork(d);return{toolCallId:a.callId,name:"schedule_work",ok:!0,contentText:JSON.stringify({ok:!0,action:"schedule_work",output:`Created scheduled Work: ${d.name}.`,data:c}),data:c}},"execute")}]:[],{name:"work_capabilities",description:"Return the truthful Work output, preview, validation, and destination matrix without starting sandbox compute.",parameters:et(),execute:i(async a=>({toolCallId:a.callId,name:"work_capabilities",ok:!0,contentText:JSON.stringify({ok:!0,action:"work_capabilities",output:"Returned the supported Work formats and durable destinations. Sandbox compute was not started.",data:{compute:"lazy",formats:Ie,destinations:["managed_local_file","approved_connected_resource","deployment_url"],constraints:{maxLocalOutputBytes:1e7,repositoryChangesRequireDevelopment:!0,browserAndLocalAppControl:{location:"host",requiresTurnPermission:!0,guestCredentials:!1}}}},null,2),data:{compute:"lazy",formats:Ie,destinations:["managed_local_file","approved_connected_resource","deployment_url"]}}),"execute")},{name:"work_environment",description:"Start Work compute only when it is needed, then return live sandbox status and the stable /workspace/inputs, /workspace/work, and /workspace/outputs layout.",parameters:et(),execute:i(async a=>{await r(a);let d=await t.execute(a,"sandbox_status",{});if(!d.ok)return Qe(a.callId,"work_environment",d);let l=await t.execute(a,"sandbox_exec",{command:In,timeoutSeconds:30,autoPreserveSource:!1});return{toolCallId:a.callId,name:"work_environment",ok:d.ok&&l.ok,contentText:JSON.stringify({ok:d.ok&&l.ok,action:"work_environment",output:l.ok?"Work compute is ready. Environment facts were measured live.":l.output,data:{runtimeProfileId:ge,workspaceRoot:"/workspace",cwd:"/workspace/work",layout:{inputs:"/workspace/inputs",work:"/workspace/work",outputs:"/workspace/outputs"},status:he(d.data)??null,probe:he(l.data)??{output:l.output},executionBacked:l.ok}},null,2),data:{runtimeProfileId:ge,workspaceRoot:"/workspace",cwd:"/workspace/work",status:d.data??null,probe:l.data??null,executionBacked:l.ok}}},"execute")},{name:"work_list_files",description:"List files in the Work scratch, input, or completed-output area. This lazily starts Work compute.",parameters:{type:"object",additionalProperties:!1,properties:{area:An(),path:{type:"string",description:"Optional relative path inside the selected area."},recursive:{type:"boolean"}},required:["area"]},execute:o("work_list_files","sandbox_list_files",a=>({path:N(a.args.area,H(a.args.path)),recursive:typeof a.args.recursive=="boolean"?a.args.recursive:!1}))},{name:"work_read_file",description:"Read a bounded file from Work inputs, scratch space, or completed-output candidates.",parameters:{type:"object",additionalProperties:!1,properties:{area:An(),path:{type:"string",minLength:1},maxBytes:{type:"integer",minimum:1,maximum:1e6}},required:["area","path"]},execute:o("work_read_file","sandbox_read_file",a=>({path:N(a.args.area,_(a.args.path)),maxBytes:typeof a.args.maxBytes=="number"?Math.min(Math.max(Math.floor(a.args.maxBytes),1),1e6):512e3}))},{name:"work_write_file",description:"Write a UTF-8 Work scratch file or completed-output candidate. Use area=outputs only for a finished result that is ready to validate and save.",parameters:{type:"object",additionalProperties:!1,properties:{area:{type:"string",enum:["work","outputs"]},path:{type:"string",minLength:1},content:{type:"string"}},required:["area","path","content"]},execute:o("work_write_file","sandbox_write_file",a=>({path:N(a.args.area,_(a.args.path),["work","outputs"]),content:_(a.args.content,!0),autoPreserveSource:!1}))},{name:"work_edit_file",description:"Edit a Work scratch file or output candidate by exact text replacement after reading it.",parameters:{type:"object",additionalProperties:!1,properties:{area:{type:"string",enum:["work","outputs"]},path:{type:"string",minLength:1},oldText:{type:"string",minLength:1},newText:{type:"string"},replaceAll:{type:"boolean"}},required:["area","path","oldText","newText"]},execute:o("work_edit_file","sandbox_edit_file",a=>({path:N(a.args.area,_(a.args.path),["work","outputs"]),oldText:_(a.args.oldText),newText:_(a.args.newText,!0),replaceAll:a.args.replaceAll===!0,autoPreserveSource:!1}))},{name:"work_delete_file",description:"Delete a Work scratch file or an output candidate. Saved outputs outside the sandbox are unaffected.",parameters:{type:"object",additionalProperties:!1,properties:{area:{type:"string",enum:["work","outputs"]},path:{type:"string",minLength:1},recursive:{type:"boolean"}},required:["area","path"]},execute:o("work_delete_file","sandbox_delete_file",a=>({path:N(a.args.area,_(a.args.path),["work","outputs"]),recursive:a.args.recursive===!0,autoPreserveSource:!1}))},{name:"work_exec",description:"Run a bounded shell command from /workspace/work. Write finished deliverables to ../outputs and inspect them; the runtime preserves output files automatically when the turn ends.",parameters:{type:"object",additionalProperties:!1,properties:{command:{type:"string",minLength:1},timeoutSeconds:{type:"integer",minimum:1,maximum:3600}},required:["command"]},execute:o("work_exec","sandbox_exec",a=>({command:`cd /workspace/work && ${_(a.args.command)}`,timeoutSeconds:typeof a.args.timeoutSeconds=="number"?Math.min(Math.max(Math.floor(a.args.timeoutSeconds),1),3600):120,autoPreserveSource:!1}))},{name:"work_open_port",description:"Open a bounded Work sandbox port for a temporary preview. This is not a production deployment.",parameters:{type:"object",additionalProperties:!1,properties:{port:{type:"integer",minimum:1,maximum:65535},label:{type:"string"}},required:["port"]},execute:o("work_open_port","sandbox_open_port",a=>({port:a.args.port,label:H(a.args.label)||"Work preview",access:"private",autoStart:!0}))},{name:"work_checkpoint",description:"Create a resumable checkpoint of the current Work sandbox before a substantial revision.",parameters:{type:"object",additionalProperties:!1,properties:{name:{type:"string",minLength:1,maxLength:120}},required:["name"]},execute:o("work_checkpoint","sandbox_snapshot_create",a=>({name:_(a.args.name)}))},{name:"work_prepare_agent",description:"Create a validated OpenPond Agent SDK project in Work scratch space. Use this when the requested deliverable is a new reusable Agent, not for ordinary documents, code snippets, or one-off scripts.",parameters:{type:"object",additionalProperties:!1,properties:{directory:{type:"string",minLength:1,maxLength:180,description:"Relative directory inside Work scratch space for the Agent source."},template:{type:"string",enum:["blank-agent","customer-reply-agent","integration-heavy-agent"]}},required:["directory","template"]},execute:o("work_prepare_agent","sandbox_prepare_agent",a=>({directory:_(a.args.directory),template:_(a.args.template)}))},{name:"work_save_agent_package",description:"Run the OpenPond Agent SDK build, validation, and eval publish gate in the Work sandbox, then save the complete source as an immutable content-addressed Agent-package output. Use this only after finishing and reviewing the Agent source.",parameters:{type:"object",additionalProperties:!1,properties:{directory:{type:"string",minLength:1,maxLength:180,description:"Relative Agent project directory inside Work scratch space."},agentId:{type:"string",minLength:1,maxLength:191},title:{type:"string",minLength:1,maxLength:240}},required:["directory"]},execute:o("work_save_agent_package","sandbox_save_agent_package",a=>({directory:_(a.args.directory),agentId:H(a.args.agentId)||void 0,title:H(a.args.title)||void 0}))},{name:"work_save_output",description:"Explicitly copy one completed file from /workspace/outputs to durable OpenPond output storage before turn completion. Normal Work turns preserve output files automatically.",parameters:{type:"object",additionalProperties:!1,properties:{path:{type:"string",minLength:1,description:"Path relative to /workspace/outputs, for example report.md."},suggestedName:{type:"string",minLength:1,maxLength:180},validation:{type:"array",maxItems:32,items:{type:"object",additionalProperties:!1,properties:{kind:{type:"string",enum:["structural","visual","test","user_review"]},status:{type:"string",enum:["passed","failed","not_run"]},label:{type:"string",minLength:1,maxLength:240},detail:{type:"string",maxLength:4e3},ref:{type:"string",maxLength:4096}},required:["kind","status","label"]}}},required:["path"]},execute:o("work_save_output","sandbox_save_output",a=>({path:N("outputs",_(a.args.path),["outputs"]),suggestedName:H(a.args.suggestedName)||void 0,validation:Array.isArray(a.args.validation)?a.args.validation:[]}))},{name:"work_register_external_output",description:"Register a completed result that already lives in an approved connected service or at a production deployment URL. Use only after the provider write or deployment succeeded and returned a stable resource id or URL.",parameters:{type:"object",additionalProperties:!1,properties:{kind:{type:"string",enum:["external_file","deployment"]},title:{type:"string",minLength:1,maxLength:240},provider:{type:"string",minLength:1,maxLength:120},resourceId:{type:"string",minLength:1,maxLength:500},url:{type:"string",minLength:1,maxLength:4096},contentType:{type:"string",minLength:1,maxLength:200},validation:{type:"array",maxItems:32,items:{type:"object",additionalProperties:!1,properties:{kind:{type:"string",enum:["structural","visual","test","user_review"]},status:{type:"string",enum:["passed","failed","not_run"]},label:{type:"string",minLength:1,maxLength:240},detail:{type:"string",maxLength:4e3},ref:{type:"string",maxLength:4096}},required:["kind","status","label"]}}},required:["kind","title","resourceId","url"]},execute:i(async a=>{let d=_(a.args.kind),c=_(a.args.title),l=_(a.args.resourceId),u=ss(a.args.url),p=Array.isArray(a.args.validation)?a.args.validation:[],f={id:rs(),title:c,sourceTaskId:a.session.id,sourceTurnId:a.turnId,revision:1,createdAt:new Date().toISOString(),validation:p},m=d==="deployment"?{...f,kind:"deployment",deploymentId:l,url:u}:{...f,kind:"external_resource",provider:H(a.args.provider)||"external",resourceId:l,url:u,contentType:H(a.args.contentType)||null};return{toolCallId:a.callId,name:"work_register_external_output",ok:!0,contentText:JSON.stringify({ok:!0,action:"work_register_external_output",output:`Registered ${c} as a Work output.`,data:{outputRef:m}},null,2),data:{outputRef:m}}},"execute")},{name:"work_stop",description:"Stop Work compute after durable outputs have been saved. Saved OutputRefs remain available.",parameters:et(),execute:i(async a=>Qe(a.callId,"work_stop",await t.stop(a)),"execute")}];return e.automaticLifecycle?s.filter(a=>a.name!=="work_save_output"&&a.name!=="work_stop"):s}i(na,"createWorkModelToolDefinitions");function os(){return{type:"object",additionalProperties:!1,properties:{name:{type:"string",minLength:1,maxLength:180},prompt:{type:"string",minLength:1,maxLength:2e4},recurrence:{type:"object",additionalProperties:!1,properties:{version:{type:"integer",enum:[1]},kind:{type:"string",enum:["once","daily","weekdays","weekly","monthly"]},timeZone:{type:"string",minLength:1,maxLength:100},startDate:{type:"string",pattern:"^\\d{4}-\\d{2}-\\d{2}$"},localTime:{type:"string",pattern:"^\\d{2}:\\d{2}$"},weekdays:{type:"array",minItems:1,maxItems:7,items:{type:"string",enum:["sunday","monday","tuesday","wednesday","thursday","friday","saturday"]}},dayOfMonth:{type:"integer",minimum:1,maximum:31},end:{type:"object",additionalProperties:!1,properties:{kind:{type:"string",enum:["never","on_date","after_occurrences"]},date:{type:"string",pattern:"^\\d{4}-\\d{2}-\\d{2}$"},occurrences:{type:"integer",minimum:1,maximum:1e5}},required:["kind"]}},required:["version","kind","timeZone","startDate","localTime","end"]}},required:["name","prompt","recurrence"]}}i(os,"savedWorkScheduleParameters");function Qe(e,t,n){return{toolCallId:e,name:t,ok:n.ok,contentText:JSON.stringify({...n,data:he(n.data)},null,2),data:n.data}}i(Qe,"workspaceToolResult");function et(){return{type:"object",additionalProperties:!1,properties:{}}}i(et,"emptyObjectParameters");function An(){return{type:"string",enum:["inputs","work","outputs"]}}i(An,"workAreaProperty");function _(e,t=!1){if(typeof e!="string"||!t&&!e.trim())throw new Error("A required string argument is missing.");return t?e:e.trim()}i(_,"requiredString");function H(e){return typeof e=="string"?e.trim():""}i(H,"optionalString");function ss(e){let t=_(e),n=new URL(t);if(n.protocol!=="http:"&&n.protocol!=="https:")throw new Error("Work output URLs must use HTTP or HTTPS.");return n.toString()}i(ss,"validHttpUrl");export{Rn as a,qi as b,ji as c,Bi as d,$i as e,Ni as f,Li as g,zn as h,bs as i,Wt as j,Ce as k,_s as l,As as m,Ps as n,Cs as o,Es as p,Ms as q,We as r,C as s,Y as t,Us as u,Nt as v,dr as w,zs as x,Hs as y,Js as z,Ks as A,fr as B,si as C,Ii as D,Ti as E,vi as F,Si as G,Ai as H,Pi as I,Ci as J,Ei as K,Mi as L,Ji as M,na as N};