decocms 4.170.0 → 4.170.1

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 (223) hide show
  1. package/dist/client/assets/{AlertCircle-BYHJV2GV.js → AlertCircle-CDqm3BkI.js} +1 -1
  2. package/dist/client/assets/{AreaChart-B2o7rUw7.js → AreaChart-IwoeGQMt.js} +1 -1
  3. package/dist/client/assets/{ArrowUp-MX4iWYYn.js → ArrowUp-CWNpel29.js} +1 -1
  4. package/dist/client/assets/{ArrowUpRight-6YZER-oU.js → ArrowUpRight-DJBH8eqK.js} +1 -1
  5. package/dist/client/assets/{Check-BrkGfLcR.js → Check-BVFRFKGW.js} +1 -1
  6. package/dist/client/assets/{CheckCircle-CmGYC05_.js → CheckCircle-Cj6GsKMI.js} +1 -1
  7. package/dist/client/assets/{ChevronDown-Cg5y4i7a.js → ChevronDown-DpY066wf.js} +1 -1
  8. package/dist/client/assets/{ChevronRight-CW6xxWnj.js → ChevronRight-BEYUeheA.js} +1 -1
  9. package/dist/client/assets/{ChevronUp-vrjxPJAs.js → ChevronUp-BBMyuq9Y.js} +1 -1
  10. package/dist/client/assets/{Copy01-DqRJDTwu.js → Copy01-DZlvdvRQ.js} +1 -1
  11. package/dist/client/assets/{CpuChip01-DcaVUCTy.js → CpuChip01-B9ypyZc7.js} +1 -1
  12. package/dist/client/assets/{DotsVertical-IlNcwotl.js → DotsVertical-BhNq3eth.js} +1 -1
  13. package/dist/client/assets/{Eye-B41L3FgW.js → Eye-Diq4SDiD.js} +1 -1
  14. package/dist/client/assets/{FilterLines-B-l52E0g.js → FilterLines-BVigldfU.js} +1 -1
  15. package/dist/client/assets/{HardDrive-D0B85GBW.js → HardDrive-COMq7Lly.js} +1 -1
  16. package/dist/client/assets/{Key01-BjIPfxyL.js → Key01-BuTgkaVQ.js} +1 -1
  17. package/dist/client/assets/{LayoutLeft-B26SsbEL.js → LayoutLeft-tGXhbV2_.js} +1 -1
  18. package/dist/client/assets/{LinkExternal01-bJAvaskC.js → LinkExternal01-C58m1ZUC.js} +1 -1
  19. package/dist/client/assets/{LogOut01-CiAF6cDS.js → LogOut01-DdfD6ngb.js} +1 -1
  20. package/dist/client/assets/{Monitor01-DmmsVkRP.js → Monitor01-DQdBfp79.js} +1 -1
  21. package/dist/client/assets/{Palette-B3DXvWwR.js → Palette-BR3ZHx5Y.js} +1 -1
  22. package/dist/client/assets/{Play-D0fVsuc1.js → Play-BIu81WKO.js} +1 -1
  23. package/dist/client/assets/{Plus-BwGN2zdU.js → Plus-Drwq00jj.js} +1 -1
  24. package/dist/client/assets/{SearchLg-0IPX1BNy.js → SearchLg-CHTQRQCv.js} +1 -1
  25. package/dist/client/assets/{SearchMd-Dp7qjY7b.js → SearchMd-BgWQzmCc.js} +1 -1
  26. package/dist/client/assets/{Settings02-DMOaaPkn.js → Settings02-CsiOpdyg.js} +1 -1
  27. package/dist/client/assets/{Shield01-B_5yQoix.js → Shield01-Bo63VvCj.js} +1 -1
  28. package/dist/client/assets/{Star01-CyxV6aKl.js → Star01-DuRTi96S.js} +1 -1
  29. package/dist/client/assets/{Stars01-D7q-Avrg.js → Stars01-BuAqCIoS.js} +1 -1
  30. package/dist/client/assets/{Stars02-DAWWYHpt.js → Stars02-ayCNzEo7.js} +1 -1
  31. package/dist/client/assets/{Sun-CDsqoxsx.js → Sun-Bj8OQXhO.js} +1 -1
  32. package/dist/client/assets/{SwitchHorizontal01-Cb-eA4pA.js → SwitchHorizontal01-B1QH3pri.js} +1 -1
  33. package/dist/client/assets/{Tool01-CphPk7Yz.js → Tool01-Dhilizli.js} +1 -1
  34. package/dist/client/assets/{Tool02-BvDCQRR4.js → Tool02-CMHGfTGK.js} +1 -1
  35. package/dist/client/assets/{Trash01-Sloq9J0V.js → Trash01-C2eiT94f.js} +1 -1
  36. package/dist/client/assets/{TrendUp01-CkquVjI6.js → TrendUp01-CsOYx201.js} +1 -1
  37. package/dist/client/assets/{Upload01-CVz4XujD.js → Upload01-CZoclz4_.js} +1 -1
  38. package/dist/client/assets/{User01-HIWW9kOr.js → User01-Dmy4OXe5.js} +1 -1
  39. package/dist/client/assets/{Users01-BNK7FXHA.js → Users01-9Fw6RkhQ.js} +1 -1
  40. package/dist/client/assets/{Users03-BSfDHL0v.js → Users03-DA0fSXT9.js} +1 -1
  41. package/dist/client/assets/{X-CGYRx_28.js → X-rjk00JCm.js} +1 -1
  42. package/dist/client/assets/{XCircle-Edej3Zll.js → XCircle-C5Urwmgg.js} +1 -1
  43. package/dist/client/assets/{XClose-CcN7CLAF.js → XClose-Cc5zaSrf.js} +1 -1
  44. package/dist/client/assets/{Zap-DaHTr7kO.js → Zap-Dx6gJG-7.js} +1 -1
  45. package/dist/client/assets/{ZapSquare-6rsOc9GS.js → ZapSquare-BX9CVwuY.js} +1 -1
  46. package/dist/client/assets/{access-gate-BdPe32Mu.js → access-gate-LLqLjJqi.js} +1 -1
  47. package/dist/client/assets/{add-section-modal-BPYtFKJB.js → add-section-modal-BlOwU79I.js} +1 -1
  48. package/dist/client/assets/{agent-icon-D2F-Kjip.js → agent-icon-CMXbHiQd.js} +1 -1
  49. package/dist/client/assets/{agents-list-DyiHSXML.js → agents-list-CvIWP3Ux.js} +1 -1
  50. package/dist/client/assets/{ai-providers-ZHKXZnkd.js → ai-providers-Fv2eRIRK.js} +1 -1
  51. package/dist/client/assets/{alert-DV53gjz1.js → alert-AXmQKAFL.js} +1 -1
  52. package/dist/client/assets/{alert-dialog-3hOgioGE.js → alert-dialog-C3-s341g.js} +1 -1
  53. package/dist/client/assets/{app-editor-CPKcS-gL.js → app-editor-CMGBcA8j.js} +1 -1
  54. package/dist/client/assets/{auth-BMGpgYgd.js → auth-CqNzilic.js} +1 -1
  55. package/dist/client/assets/{auth-catchall-iyDIAUK2.js → auth-catchall-BeLEbeBc.js} +1 -1
  56. package/dist/client/assets/{auth-entry-D0sVnwRC.js → auth-entry-DsMvEkd2.js} +1 -1
  57. package/dist/client/assets/{auth-split-layout-DiNJs6ER.js → auth-split-layout-DjUYRih1.js} +1 -1
  58. package/dist/client/assets/{authenticate-and-persist-oauth-BJ9Id0Zn.js → authenticate-and-persist-oauth-DTeTCtcu.js} +1 -1
  59. package/dist/client/assets/{automation-list-row-D7gAsd0J.js → automation-list-row-CtBXrCXy.js} +1 -1
  60. package/dist/client/assets/{automation-runs-C5_HzWR2.js → automation-runs-ZE3sZFU-.js} +1 -1
  61. package/dist/client/assets/{automations-r1D1_utQ.js → automations-DywuBtbl.js} +1 -1
  62. package/dist/client/assets/{avatar-kwzEFZkt.js → avatar-nvx57e-B.js} +1 -1
  63. package/dist/client/assets/{badge-CIHen4Uf.js → badge-B4cG_-au.js} +1 -1
  64. package/dist/client/assets/{block-document-Iy9IFn2B.js → block-document-Djl746bf.js} +1 -1
  65. package/dist/client/assets/{brand-context-DvJMzn25.js → brand-context-C3EfEOQW.js} +1 -1
  66. package/dist/client/assets/{buckets-dMAhC4YN.js → buckets-BR1ncNMV.js} +1 -1
  67. package/dist/client/assets/{bulk-category-panel-C6CMph6x.js → bulk-category-panel-BCHS8yf4.js} +1 -1
  68. package/dist/client/assets/{calendar-C8abdXhM.js → calendar-B5HuSET3.js} +1 -1
  69. package/dist/client/assets/{capability-load-error-CXTQv9Dg.js → capability-load-error-BPEfNjwz.js} +1 -1
  70. package/dist/client/assets/{card-Clkyds1x.js → card-pQqTZwi8.js} +1 -1
  71. package/dist/client/assets/{category-editor-BiwlW5Va.js → category-editor-B9hUfcMJ.js} +1 -1
  72. package/dist/client/assets/{chat-context-DCplmn6Y.js → chat-context-D7wSke11.js} +1 -1
  73. package/dist/client/assets/{checkbox-Bd4_D2hH.js → checkbox-3f5dJs46.js} +1 -1
  74. package/dist/client/assets/{cli-auth-success-CpW90dwY.js → cli-auth-success-BUTJH4x3.js} +1 -1
  75. package/dist/client/assets/{collection-detail-CSOyQlyn.js → collection-detail-B_su1ZX-.js} +1 -1
  76. package/dist/client/assets/{collection-display-button-D1CIwG-J.js → collection-display-button-CjqJ-tqS.js} +1 -1
  77. package/dist/client/assets/{collection-search-Buv13VcZ.js → collection-search-D8EOIDwN.js} +1 -1
  78. package/dist/client/assets/{collection-table-wrapper-DnCovBwD.js → collection-table-wrapper--XXzfBGf.js} +1 -1
  79. package/dist/client/assets/{collection-tabs-BmB25Ehl.js → collection-tabs-nRZ9fYfu.js} +1 -1
  80. package/dist/client/assets/{command-C0WA2sON.js → command-CYB7frps.js} +1 -1
  81. package/dist/client/assets/{commerce-onboarding-Debt58Ft.js → commerce-onboarding-CeyHrVZs.js} +1 -1
  82. package/dist/client/assets/{companions-core-VU8gGOg5.js → companions-core-m2LaPACN.js} +1 -1
  83. package/dist/client/assets/{connect-CyCXKZ6s.js → connect-DyxQqtiK.js} +1 -1
  84. package/dist/client/assets/{connection-DCMeHLjd.js → connection-Csd7wxxM.js} +1 -1
  85. package/dist/client/assets/{connection-card-D0JrNfZ1.js → connection-card-DjgkpE4H.js} +1 -1
  86. package/dist/client/assets/{connection-detail-v3Dsw5Ur.js → connection-detail-YF1TRub_.js} +1 -1
  87. package/dist/client/assets/{connection-form-helpers-CQNVYqGO.js → connection-form-helpers-R4TXyOh_.js} +1 -1
  88. package/dist/client/assets/{connections-CPtuIhpH.js → connections-mrc7gr62.js} +1 -1
  89. package/dist/client/assets/{decopilot-sse-pool-B0paEDc_.js → decopilot-sse-pool-B_-zAk0R.js} +1 -1
  90. package/dist/client/assets/{dialog-D6uO7ot8.js → dialog-7MTA_b4C.js} +1 -1
  91. package/dist/client/assets/{domain-settings-Bq-MJcwj.js → domain-settings-B9SLbz5w.js} +1 -1
  92. package/dist/client/assets/{drawer-UjrfpvUn.js → drawer-Cwc1DcBo.js} +1 -1
  93. package/dist/client/assets/{dropdown-menu-D7vqvkYm.js → dropdown-menu-BuE1_v9y.js} +1 -1
  94. package/dist/client/assets/{empty-state-Bdp-mpQ8.js → empty-state-BOAyivN6.js} +1 -1
  95. package/dist/client/assets/{extract-connection-data-Dtp6Ehpu.js → extract-connection-data-BeBDGhqP.js} +1 -1
  96. package/dist/client/assets/{file-explorer--CbgS_cp.js → file-explorer-BcjEzKA-.js} +1 -1
  97. package/dist/client/assets/{form-BCICVvG7.js → form-DM7HRYDj.js} +1 -1
  98. package/dist/client/assets/general-DVrcQuIO.js +1 -0
  99. package/dist/client/assets/{github-repo-picker-gNYKe9zc.js → github-repo-picker-OcNOhtcN.js} +1 -1
  100. package/dist/client/assets/{hooks-5-RXv9Wf.js → hooks-BncxQB2K.js} +1 -1
  101. package/dist/client/assets/{index-BGZ0M4S4.js → index-B29mxiS-.js} +3 -3
  102. package/dist/client/assets/{index-DSLoXAfJ.js → index-BQXh6HAV.js} +1 -1
  103. package/dist/client/assets/{index-CiEaoay8.js → index-CRl7Pf4H.js} +1 -1
  104. package/dist/client/assets/{index-CxtffGc9.js → index-CTQC81fZ.js} +1 -1
  105. package/dist/client/assets/{index-CJD2bFa_.js → index-C_bDYfNO.js} +1 -1
  106. package/dist/client/assets/{index-BwXjHv9U.js → index-Ci5aWJdL.js} +1 -1
  107. package/dist/client/assets/{index-BivGvjP-.js → index-CqL1rBBB.js} +4 -4
  108. package/dist/client/assets/{index-hGQ2mnT0.js → index-Cs__7M40.js} +34 -34
  109. package/dist/client/assets/index-Cw0lZSdB.css +1 -0
  110. package/dist/client/assets/{index-CTFbcP__.js → index-DUDyiV46.js} +1 -1
  111. package/dist/client/assets/{index-DObkDSge.js → index-Vw320eZp.js} +1 -1
  112. package/dist/client/assets/{index-redirect-DW5GkRS6.js → index-redirect-VJ483q6V.js} +1 -1
  113. package/dist/client/assets/{index-BuqpOFji.js → index-v4uwuOj3.js} +1 -1
  114. package/dist/client/assets/{input-Coobsayw.js → input-CCCTwjFF.js} +1 -1
  115. package/dist/client/assets/{integration-icon-B9vXzEZt.js → integration-icon-BmocLuhr.js} +1 -1
  116. package/dist/client/assets/{invite-member-dialog-D5E_9szJ.js → invite-member-dialog-CpegRbLc.js} +1 -1
  117. package/dist/client/assets/{label-C1IeHNJc.js → label-BcuNjzWD.js} +1 -1
  118. package/dist/client/assets/{layout-DJCFmK0p.js → layout-CvV5k8cC.js} +1 -1
  119. package/dist/client/assets/{login-By2RJx9C.js → login-BfBmmgQO.js} +1 -1
  120. package/dist/client/assets/{mcp-oauth-DZPtnDd0.js → mcp-oauth-Ccg_U67s.js} +1 -1
  121. package/dist/client/assets/{members-CuQhbsjc.js → members-yuzngH1a.js} +1 -1
  122. package/dist/client/assets/{monaco-editor-B1BrsITQ.js → monaco-editor-CjD0vqNM.js} +1 -1
  123. package/dist/client/assets/{monitoring-stats-row-_kR6LNnQ.js → monitoring-stats-row-KJF6nQdN.js} +1 -1
  124. package/dist/client/assets/{multi-select-CleE7UeZ.js → multi-select-CZMwBVTA.js} +1 -1
  125. package/dist/client/assets/{oauth-callback-DLExYXvG.js → oauth-callback-ZVwDXXuL.js} +1 -1
  126. package/dist/client/assets/{oauth-callback-ai-provider-BjdcLJcU.js → oauth-callback-ai-provider-8pwx9inT.js} +1 -1
  127. package/dist/client/assets/{onboarding-CvB28dLt.js → onboarding-FWi3mF_K.js} +1 -1
  128. package/dist/client/assets/{org-layout-CEUB8-A5.js → org-layout-BCYNu922.js} +1 -1
  129. package/dist/client/assets/{organization-choice-BGHsi8Kr.js → organization-choice-B7xv6zlU.js} +1 -1
  130. package/dist/client/assets/{orgs-Ueou16eM.js → orgs-BorQphaA.js} +1 -1
  131. package/dist/client/assets/{page-seo-form-epWky0S8.js → page-seo-form-CSRPhE43.js} +1 -1
  132. package/dist/client/assets/{popover-CU70IQGF.js → popover-DOe4iREO.js} +1 -1
  133. package/dist/client/assets/{post-editor-DJYtPLa2.js → post-editor-2UlGkOx3.js} +1 -1
  134. package/dist/client/assets/{primitives-Dhuengoa.js → primitives-DLv3BKMq.js} +1 -1
  135. package/dist/client/assets/{profile-yg4NoqWi.js → profile-URrgbisJ.js} +1 -1
  136. package/dist/client/assets/project-app-view-ChJkcHn0.js +1 -0
  137. package/dist/client/assets/record-editor-C9JBt-1Y.js +1 -0
  138. package/dist/client/assets/{redirect-editor-g8dnLt05.js → redirect-editor-CZmU1uwp.js} +1 -1
  139. package/dist/client/assets/registry-B70GXui5.js +2 -0
  140. package/dist/client/assets/{registry-layout-Bdr1is_y.js → registry-layout-C1Ksq4mY.js} +1 -1
  141. package/dist/client/assets/{reports-DWudyTdM.js → reports-Dpom_Jtq.js} +1 -1
  142. package/dist/client/assets/{require-capability-CYsr8Uv8.js → require-capability-CKWTPoFA.js} +1 -1
  143. package/dist/client/assets/{required-auth-layout-CA9F_SWp.js → required-auth-layout-DQbDWdLC.js} +1 -1
  144. package/dist/client/assets/{reset-password-USPUEodQ.js → reset-password-Cj2xn6zs.js} +1 -1
  145. package/dist/client/assets/{roles-CzUd7OcT.js → roles-Dc-VAdFj.js} +1 -1
  146. package/dist/client/assets/{search-input-CvJ-Awnm.js → search-input-fKv3QIWf.js} +1 -1
  147. package/dist/client/assets/{secrets-DttlllK_.js → secrets-BPlWK46k.js} +1 -1
  148. package/dist/client/assets/{sections-editor-BCxdzyB0.js → sections-editor-C8sRo8y6.js} +1 -1
  149. package/dist/client/assets/{select-BCfageZp.js → select-DFKVfjlW.js} +1 -1
  150. package/dist/client/assets/{select-model-yBXR_-Sd.js → select-model-CqDqC0jE.js} +1 -1
  151. package/dist/client/assets/{self-tool-result-lMLrjaeq.js → self-tool-result-M58qCXHE.js} +1 -1
  152. package/dist/client/assets/{seo-editor-CVJP8ORM.js → seo-editor-CXQ6iNgC.js} +1 -1
  153. package/dist/client/assets/{settings-layout-C5_yXtQG.js → settings-layout-pbNmQd02.js} +1 -1
  154. package/dist/client/assets/{settings-section-BC78F1iW.js → settings-section-CrRai56k.js} +1 -1
  155. package/dist/client/assets/{shell-controls-9iXLhKxR.js → shell-controls-CwJaFUGs.js} +1 -1
  156. package/dist/client/assets/{shell-layout-BHK1M3T7.js → shell-layout-MOzejAzs.js} +1 -1
  157. package/dist/client/assets/{sidebar-DA3ricbL.js → sidebar-CUQ4JZAf.js} +1 -1
  158. package/dist/client/assets/{skeleton-DnyWBGsC.js → skeleton-CKkik4LS.js} +1 -1
  159. package/dist/client/assets/{spinner-DRNGdBCM.js → spinner-B8Ju2pT-.js} +1 -1
  160. package/dist/client/assets/{sso-DzG4EOv-.js → sso-D9DFzGYU.js} +1 -1
  161. package/dist/client/assets/{store-CdUO14qi.js → store-Cl8i58XU.js} +1 -1
  162. package/dist/client/assets/store-registry-C4AyvtVW.js +2 -0
  163. package/dist/client/assets/{studio-tools-Bd4Up0-C.js → studio-tools-CFTrglMl.js} +1 -1
  164. package/dist/client/assets/{switch-CVlsoYND.js → switch-DLH-VS9R.js} +1 -1
  165. package/dist/client/assets/{tab-id-FdiVjuVJ.js → tab-id-B7feias9.js} +1 -1
  166. package/dist/client/assets/{table-DPrNwMu9.js → table-CiNvpArP.js} +1 -1
  167. package/dist/client/assets/{tabs-2pJ4rMxv.js → tabs-CYzoTEfI.js} +1 -1
  168. package/dist/client/assets/{textarea-vv5cwGAn.js → textarea-CMPPErTK.js} +1 -1
  169. package/dist/client/assets/{toggle-group-C0PNw2Kq.js → toggle-group-BUXnwW8h.js} +1 -1
  170. package/dist/client/assets/{toolbar-Df46087V.js → toolbar-Du2Pcngk.js} +1 -1
  171. package/dist/client/assets/{tooltip-Bl7r7v8C.js → tooltip-BADScVWm.js} +1 -1
  172. package/dist/client/assets/{use-ai-providers-DmVCAkKp.js → use-ai-providers-DvG3jagd.js} +1 -1
  173. package/dist/client/assets/{use-automations-kgDgnzQ9.js → use-automations-Dqs65Xtc.js} +1 -1
  174. package/dist/client/assets/{use-autosave-DBgcFl9j.js → use-autosave-DhHt0ll1.js} +1 -1
  175. package/dist/client/assets/{use-capability-BJSHiGxC.js → use-capability-2hd4Ogvf.js} +1 -1
  176. package/dist/client/assets/{use-clock-tick-BpuHAF3-.js → use-clock-tick-YTMDTn0-.js} +1 -1
  177. package/dist/client/assets/{use-connection-sd54qNBS.js → use-connection-RmkjihlS.js} +1 -1
  178. package/dist/client/assets/{use-copy-D4vDlaDj.js → use-copy-DSJ046GP.js} +1 -1
  179. package/dist/client/assets/{use-create-virtual-mcp-31bpvssy.js → use-create-virtual-mcp-BfVMAYle.js} +1 -1
  180. package/dist/client/assets/{use-debounced-autosave-B3IoPDZI.js → use-debounced-autosave-BgbB4RmT.js} +1 -1
  181. package/dist/client/assets/{use-debounced-value-B3GuqXcd.js → use-debounced-value-gP8_9L0j.js} +1 -1
  182. package/dist/client/assets/{use-deco-credits-BSYu3Fl5.js → use-deco-credits-C2rxrw0Q.js} +1 -1
  183. package/dist/client/assets/{use-decopilot-events-CHuMH_qH.js → use-decopilot-events-DtpQ8cH5.js} +1 -1
  184. package/dist/client/assets/{use-delete-connection-XnLrrBCG.js → use-delete-connection-Bx8ZPbS9.js} +1 -1
  185. package/dist/client/assets/{use-deployment-admin-XVaF6uCz.js → use-deployment-admin-B4gDjtfL.js} +1 -1
  186. package/dist/client/assets/{use-file-configs-DtjZNr9r.js → use-file-configs-D-sPMdB6.js} +1 -1
  187. package/dist/client/assets/{use-infinite-scroll-drSHjOZB.js → use-infinite-scroll-DlhmKnJa.js} +1 -1
  188. package/dist/client/assets/{use-join-requests-Af3zO_gf.js → use-join-requests-l8GNRpiI.js} +1 -1
  189. package/dist/client/assets/{use-mcp-auth-status-CehPYeOs.js → use-mcp-auth-status-D0rEPz5R.js} +1 -1
  190. package/dist/client/assets/{use-mcp-client-3Ty5G5W_.js → use-mcp-client-BDJmM3qR.js} +1 -1
  191. package/dist/client/assets/{use-mcp-tools-BTCVUfnA.js → use-mcp-tools-DieEsULL.js} +1 -1
  192. package/dist/client/assets/{use-members-C8Y7Dr-g.js → use-members-hFToNUVS.js} +1 -1
  193. package/dist/client/assets/{use-mobile-CLp-jqyF.js → use-mobile-pc-tnHny.js} +1 -1
  194. package/dist/client/assets/{use-navigate-to-agent-DmmNua7o.js → use-navigate-to-agent-DtnhN_GJ.js} +1 -1
  195. package/dist/client/assets/{use-org-auth-client-kpwHtnik.js → use-org-auth-client-CqAZnf-w.js} +1 -1
  196. package/dist/client/assets/{use-org-sso-D02n6Tcy.js → use-org-sso-BZ-DK4nQ.js} +1 -1
  197. package/dist/client/assets/{use-organization-roles-CEVrE1Dx.js → use-organization-roles-B_tn0WKz.js} +1 -1
  198. package/dist/client/assets/{use-organization-settings-CcPvgBkt.js → use-organization-settings-BXVAuCWj.js} +1 -1
  199. package/dist/client/assets/{use-registry-connections-O8wLie-b.js → use-registry-connections-yUpiQW-t.js} +1 -1
  200. package/dist/client/assets/{use-secrets-DR9GckcM.js → use-secrets-C9txCY5R.js} +1 -1
  201. package/dist/client/assets/{use-status-sounds-CXFDHEre.js → use-status-sounds-DVt8v5Rz.js} +1 -1
  202. package/dist/client/assets/{use-tags-Bhs8rJHt.js → use-tags-CZ06PK1w.js} +1 -1
  203. package/dist/client/assets/{use-view-mode-Di1mTpL-.js → use-view-mode-BvslrTfX.js} +1 -1
  204. package/dist/client/assets/{use-virtual-mcp-h_TKmrCY.js → use-virtual-mcp-BNm_L6pc.js} +1 -1
  205. package/dist/client/assets/useInfiniteQuery-DsiIWQ_i.js +1 -0
  206. package/dist/client/assets/{useQueries-BT7vIZIc.js → useQueries-CgYx8hSA.js} +1 -1
  207. package/dist/client/assets/{useRouterState-D8lv76o4.js → useRouterState-BVSqLcRD.js} +1 -1
  208. package/dist/client/assets/useSuspenseInfiniteQuery-BqG6jap9.js +1 -0
  209. package/dist/client/assets/{users-fK7yHX41.js → users-X1mUOoo7.js} +1 -1
  210. package/dist/client/assets/{variant-calendar-BgTzjadG.js → variant-calendar-sA73oHbp.js} +1 -1
  211. package/dist/client/assets/{view-mode-toggle-Pyei0Set.js → view-mode-toggle-DvDTi911.js} +1 -1
  212. package/dist/client/index.html +2 -2
  213. package/dist/server/cli.js +3 -3
  214. package/dist/server/server.js +3 -3
  215. package/package.json +1 -1
  216. package/dist/client/assets/general-DkuUkEkT.js +0 -1
  217. package/dist/client/assets/index-GilS3VqV.css +0 -1
  218. package/dist/client/assets/project-app-view-OybgjTzS.js +0 -1
  219. package/dist/client/assets/record-editor-JSE7RbaE.js +0 -1
  220. package/dist/client/assets/registry-COARHJda.js +0 -2
  221. package/dist/client/assets/store-registry-BS-Jupw1.js +0 -2
  222. package/dist/client/assets/useInfiniteQuery-CVgYg0La.js +0 -1
  223. package/dist/client/assets/useSuspenseInfiniteQuery-CAmy4fGh.js +0 -1
@@ -1256,7 +1256,7 @@ Usage: deco services <up|down|status>`),process.exit(1)}}var Rh1=O(()=>{ex()});f
1256
1256
  `.execute($);if(Number(W.rows[0]?.cnt)===0){console.warn(`Failed to migrate ${J}/${K}, keeping in old table`);continue}}await qf`
1257
1257
  DELETE FROM kysely_migration WHERE name = ${X}
1258
1258
  `.execute($)}}async function qd1($){await Ky6($),await Wy6($);let Z=new Id1({db:$,provider:{getMigrations:()=>Promise.resolve(Rc0)}}),{error:X,results:Q}=await Z.migrateToLatest(),Y=0;if(Q?.forEach((G)=>{if(G.status==="Success")Y++;else if(G.status==="Error")console.error(`Failed to execute migration "${G.migrationName}"`)}),X)throw console.error("Failed to migrate"),console.error(X),X;return Y}async function Hy6($){let{keepOpen:Z=!1,database:X,skipBetterAuth:Q=!1}=$??{},Y="skipped";if(!Q&&!X)Y=await Ug0();let G=X??D6(),J=async()=>{if(!Z&&!X)await yF(G).catch((K)=>{console.warn("Warning: Error closing database:",K)})};try{let K=await qd1(G.db);return await J(),{betterAuth:Y,kysely:K}}catch(K){throw await J(),K}}async function Ny6(){let $=D6(),Z=new Id1({db:$.db,provider:{getMigrations:()=>Promise.resolve(Rc0)}}),{error:X,results:Q}=await Z.migrateDown();if(Q?.forEach((Y)=>{if(Y.status==="Success")console.log(`\u2705 Migration "${Y.migrationName}" rolled back successfully`);else if(Y.status==="Error")console.error(`\u274C Failed to rollback migration "${Y.migrationName}"`)}),X)throw console.error("Failed to rollback migration"),console.error(X),X}var kd1=O(()=>{Td1();Fg0();d7()});async function W50($){let Z={...process.env},X=Y00($,Z);console.log(GN1(X.settings.encryptionKey));let{ensureServices:Q}=await Promise.resolve().then(() => (P$0(),j$0)),{outputs:Y,services:G}=await Q({home:X.settings.dataDir,externalDatabaseUrl:X.externalDatabaseUrl,externalNatsUrl:X.externalNatsUrl});if(!X.skipMigrations){let{migrateBetterAuth:K}=await Promise.resolve().then(() => (Fg0(),Xc1));await K(Y.databaseUrl);let{createDatabase:W}=await Promise.resolve().then(() => (d7(),ju1)),{migrateToLatest:H}=await Promise.resolve().then(() => (kd1(),Md1)),N=W(Y.databaseUrl);await H({keepOpen:!0,database:N,skipBetterAuth:!0})}let J={...X.settings,databaseUrl:Y.databaseUrl,natsUrls:Y.natsUrls,...Y.s3?{s3Endpoint:Y.s3.endpoint,s3Bucket:Y.s3.bucket,s3AccessKeyId:Y.s3.accessKeyId,s3SecretAccessKey:Y.s3.secretAccessKey,s3ForcePathStyle:Y.s3.forcePathStyle}:{},...Y.natsTunnel?{natsPublicUrl:Y.natsTunnel.publicUrl,natsAccountJwt:Y.natsTunnel.accountJwt,natsAccountSigningKey:Y.natsTunnel.accountSigningKey,natsOperatorJwt:Y.natsTunnel.operatorJwt,natsTunnelPublicEnabled:!0,natsCredsPath:Y.natsTunnel.credsPath}:{}};return qh1(J),{settings:J,services:G.map((K)=>({name:K.name==="PostgreSQL"?"Postgres":K.name,port:K.port})),managedServiceNames:G.filter((K)=>K.owner==="managed").map((K)=>K.name)}}var qc0=O(()=>{ex();c8()});var Cd1={};z0(Cd1,{updateService:()=>OD,subscribeCliState:()=>Sc0,setTuiConsoleIntercepted:()=>H50,setServerUrl:()=>od,setMigrationsDone:()=>td,setDevMode:()=>wy6,resetCliStateForTests:()=>Uy6,isTuiConsoleIntercepted:()=>N50,getCliState:()=>kc0,addLogEntry:()=>lF});function Sd1(){return{services:[{name:"Postgres",status:"pending",port:0},{name:"NATS",status:"pending",port:0}],migrationsStatus:"pending",serverUrl:null,logs:[]}}function Uy6(){TQ=Sd1()}function Fy6(){return[{name:"Postgres",status:"pending",port:0},{name:"NATS",status:"pending",port:0}]}function pd(){for(let $ of Mc0)$()}function kc0(){return TQ}function Sc0($){return Mc0.add($),()=>Mc0.delete($)}function OD($){TQ={...TQ,services:TQ.services.map((Z)=>Z.name===$.name?$:Z)},pd()}function td(){TQ={...TQ,migrationsStatus:"done"},pd()}function od($){TQ={...TQ,serverUrl:$},pd()}function lF($){let Z=[...TQ.logs,$];TQ={...TQ,logs:Z.length>500?Z.slice(-500):Z},pd()}function wy6(){TQ={...TQ,services:[...Fy6(),{name:"API",status:"pending",port:0},{name:"Vite",status:"pending",port:0}]},pd()}function H50($){Vd1=$}function N50(){return Vd1}var TQ,Mc0,Vd1=!1;var LD=O(()=>{TQ=Sd1();Mc0=new Set});import{createServer as _d1}from"net";function By6($){return new Promise((Z)=>{let X=_d1();X.once("error",()=>Z(!1)),X.listen($,"0.0.0.0",()=>{X.close(()=>Z(!0))})})}async function rd($){if(await By6($))return $;let Z=await new Promise((X,Q)=>{let Y=_d1();Y.once("error",Q),Y.listen(0,"0.0.0.0",()=>{let G=Y.address(),J=typeof G==="object"&&G?G.port:0;Y.close(()=>X(J))})});return console.warn(`Port ${$} is in use, using port ${Z} instead.`),Z}var Vc0=()=>{};function ad($){return $.replace(/\x1b\[[0-9;]*m/g,"")}var Cc0={};z0(Cc0,{startDevServer:()=>Ly6});import{join as Oy6}from"path";function xd1($){let Z=$.getReader(),X=new TextDecoder,Q="";function Y(){let G=Q.split(`
1259
- `);Q=G.pop()??"";for(let J of G){let K=ad(J).replace(/^\[\d+\]\s*/,"").trim();if(!K)continue;lF({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:K})}}(async()=>{for(;;){let{done:G,value:J}=await Z.read();if(G)break;Q+=X.decode(J,{stream:!0}),Y()}if(Q.trim()){let G=ad(Q).replace(/^\[\d+\]\s*/,"").trim();if(G)lF({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:G})}})()}async function Ly6($){let{baseUrl:Z,noTui:X}=$,Q=process.env.HOST==="0.0.0.0"&&Boolean(process.env.PORT),Y=Q?process.env.PORT:$.vitePort,G=Z||`http://localhost:${Y}`,J=Q?await rd(Number(Y)+1):await rd(Number($.port)),{settings:K,services:W,managedServiceNames:H}=await W50({port:String(J),home:$.home,baseUrl:$.baseUrl,localMode:$.localMode,skipMigrations:$.skipMigrations,noTui:$.noTui,vitePort:$.vitePort});for(let L of W)OD({name:L.name,status:"ready",port:L.port});td();let N=Oy6(import.meta.dir,"..","..","..","..",".."),U=X===!0,F=Bun.spawn(["bun","run","dev:servers"],{cwd:N,env:{...process.env,PORT:String(K.port),VITE_PORT:String(Y),DATABASE_URL:K.databaseUrl,NATS_URL:K.natsUrls.join(","),NODE_ENV:K.nodeEnv,BASE_URL:G,DECOCMS_LOCAL_MODE:String(K.localMode),DECOCMS_HOME:K.dataDir,DATA_DIR:K.dataDir,DECO_CLI:"1",...K.s3Endpoint?{S3_ENDPOINT:K.s3Endpoint,S3_BUCKET:K.s3Bucket??"",S3_ACCESS_KEY_ID:K.s3AccessKeyId??"",S3_SECRET_ACCESS_KEY:K.s3SecretAccessKey??"",S3_FORCE_PATH_STYLE:String(K.s3ForcePathStyle)}:{},...K.natsPublicUrl&&K.natsAccountJwt&&K.natsAccountSigningKey?{NATS_PUBLIC_URL:K.natsPublicUrl,NATS_ACCOUNT_JWT:K.natsAccountJwt,NATS_ACCOUNT_SIGNING_KEY:K.natsAccountSigningKey,NATS_OPERATOR_JWT:K.natsOperatorJwt??"",NATS_TUNNEL_PUBLIC_ENABLED:"true",...K.natsCredsPath?{NATS_CREDS:K.natsCredsPath}:{}}:{}},stdio:["inherit",U?"inherit":"pipe",U?"inherit":"pipe"]});if(!U)xd1(F.stdout),xd1(F.stderr);od(G),OD({name:"Vite",status:"ready",port:Number(Y)}),OD({name:"API",status:"ready",port:Number(K.port)});let B=async(L)=>{if(F.kill(L),await F.exited,H.length>0){let{stopServices:D}=await Promise.resolve().then(() => (P$0(),j$0));await D(K.dataDir)}};return process.on("SIGINT",()=>B("SIGINT")),process.on("SIGTERM",()=>B("SIGTERM")),{port:Number(Y),process:F}}var _c0=O(()=>{qc0();LD();Vc0()});var U50;var xc0=O(()=>{U50={name:"decocms",version:"4.170.0",description:"Deco CMS \u2014 Self-hostable MCP Gateway for managing AI connections and tools",author:"Deco team",repository:{type:"git",url:"git+https://github.com/decocms/studio.git",directory:"apps/api"},bugs:{url:"https://github.com/decocms/studio/issues"},type:"module",bin:{deco:"./dist/server/cli.js"},files:["dist/**/*"],scripts:{dev:"bun run migrate && bun run dev:server","dev:server":"bun run --cwd=../../packages/sandbox build && NODE_ENV=development bun --env-file=.env --hot run src/index.ts",build:"bun run build:server","build:server":"bun run scripts/bundle-server-script.ts --dist ./dist/server","generate:tool-contracts":"bun run scripts/generate-tool-contracts.ts","db:migrate":"bun run ./dist/server/migrate.js",check:"tsc --noEmit",start:"bun run ./dist/server/server.js",migrate:"bun run src/database/migrate.ts",test:"bun test src","better-auth:migrate":"bunx --bun @better-auth/cli migrate -y --config src/auth/index.ts",prepublishOnly:"bun run --cwd=../.. build:studio"},optionalDependencies:{"@duckdb/node-api":"^1.5.0-r.1"},dependencies:{"@ai-sdk/anthropic":"^3.0.85","@ai-sdk/google":"^3.0.83","@ai-sdk/openai":"^3.0.73","@anthropic-ai/sdk":"^0.105.0","@aws-sdk/client-s3":"^3.1013.0","@aws-sdk/client-sts":"^3.1013.0","@aws-sdk/lib-storage":"^3.1013.0","@aws-sdk/s3-request-presigner":"^3.1013.0","@clickhouse/client":"^1.8.1","@dbos-inc/dbos-sdk":"^4.21.6","@inkjs/ui":"^2.0.0","@nats-io/jetstream":"3.4.0","@nats-io/kv":"3.4.0","@nats-io/nats-core":"3.4.0","@nats-io/transport-node":"3.4.0","@openrouter/ai-sdk-provider":"^2.9.1","@opentelemetry/core":"^2.6.0","embedded-postgres":"^18.3.0-beta.16",ink:"^6.8.0",kysely:"^0.28.12","posthog-node":"^5.0.0",react:"^19.2.6","react-dom":"^19.2.6"},devDependencies:{"@ai-sdk/provider":"^3.0.10","@better-auth/sso":"1.4.1","@decocms/better-auth":"1.5.17","@decocms/bindings":"workspace:*","@decocms/mcp-utils":"workspace:*","@decocms/runtime":"workspace:*","@decocms/sandbox":"workspace:*","@decocms/shared":"workspace:*","@jitl/quickjs-wasmfile-release-sync":"0.31.0","@modelcontextprotocol/sdk":"1.29.0","@nats-io/jwt":"0.0.10-5","@opentelemetry/api":"^1.9.0","@opentelemetry/api-logs":"^0.211.0","@opentelemetry/exporter-logs-otlp-proto":"^0.211.0","@opentelemetry/exporter-prometheus":"^0.208.0","@opentelemetry/exporter-trace-otlp-proto":"^0.207.0","@opentelemetry/instrumentation-runtime-node":"^0.24.0","@opentelemetry/resources":"^2.6.0","@opentelemetry/sdk-logs":"^0.211.0","@opentelemetry/sdk-metrics":"^2.2.0","@opentelemetry/sdk-node":"^0.207.0","@opentelemetry/sdk-trace-base":"^2.5.0","@types/bun":"^1.3.1","@types/google.maps":"^3.65.2","@types/pg":"^8.15.6","@types/react-syntax-highlighter":"^15.5.13","@vercel/nft":"^1.1.1",ai:"^6.0.208","better-auth":"1.4.22",croner:"^9.1.0",degit:"^2.8.4",hono:"^4.10.7",jose:"^6.0.11",nanoid:"^5.1.6",pg:"^8.16.3",typescript:"^7.0.2",typescript5:"npm:typescript@^5.9.3",zod:"4.3.6"},homepage:"https://github.com/decocms/studio",keywords:["mcp","model-context-protocol","ai","gateway","self-hosted","tools"],license:"MIT",publishConfig:{access:"public"}}});import{Box as Ey6,Text as vd1}from"ink";import{jsx as zy6,jsxs as fd1}from"react/jsx-runtime";function bd1({version:$}){return fd1(Ey6,{flexDirection:"column",marginTop:1,children:[l$0.map((Z,X)=>zy6(vd1,{color:d$0[X],children:Z},X)),fd1(vd1,{dimColor:!0,children:[" v",$]})]})}var yd1=O(()=>{bd()});import{Box as DD,Text as dF}from"ink";import{Spinner as jy6}from"@inkjs/ui";import{jsx as SY,jsxs as Mf}from"react/jsx-runtime";function gd1({status:$}){if($==="pending")return SY(jy6,{label:""});return SY(dF,{color:"green",children:"\u2713"})}function Py6($){return`${$.name}: ${$.port||"...."}`}function hd1({services:$,migrationsStatus:Z,home:X,serverUrl:Q}){return Mf(DD,{flexDirection:"column",paddingBottom:1,children:[SY(bd1,{version:U50.version}),SY(DD,{marginBottom:1,children:SY(dF,{dimColor:!0,children:"\u2500".repeat(80)})}),SY(DD,{children:Mf(dF,{dimColor:!0,children:["Home: ",X]})}),Mf(DD,{gap:2,children:[$.map((Y)=>Mf(DD,{gap:1,children:[SY(dF,{children:Py6(Y)}),SY(gd1,{status:Y.status})]},Y.name)),Mf(DD,{gap:1,children:[SY(dF,{children:"Migrations"}),SY(gd1,{status:Z})]})]}),SY(DD,{children:Q?Mf(dF,{children:["Open in browser: ",SY(dF,{color:"cyan",children:Q})]}):SY(dF,{dimColor:!0,children:"Starting..."})})]})}var ud1=O(()=>{xc0();yd1()});import{Box as Ay6,Text as sd}from"ink";import{jsx as vc0,jsxs as fc0}from"react/jsx-runtime";function Ty6($){if($>=500)return"red";if($>=400)return"yellow";if($>=300)return"cyan";return"green"}function cd1({logs:$}){return vc0(Ay6,{flexDirection:"column",children:$.map((Z,X)=>{if(Z.rawLine)return vc0(sd,{dimColor:!0,children:Z.rawLine},X);let Q=Z.duration<1000?`${Z.duration}ms`:`${(Z.duration/1000).toFixed(1)}s`;return fc0(sd,{children:[fc0(sd,{dimColor:!0,children:[Z.method.padEnd(6)," ",Z.path.padEnd(30)," "]}),vc0(sd,{color:Ty6(Z.status),children:Z.status}),fc0(sd,{dimColor:!0,children:[" ",Q.padStart(8)]})]},X)})})}var ld1=()=>{};var bc0={};z0(bc0,{App:()=>qy6});import{Box as Iy6}from"ink";import{useSyncExternalStore as Ry6}from"react";import{jsx as dd1,jsxs as My6}from"react/jsx-runtime";function qy6({home:$}){let Z=Ry6(Sc0,kc0);return My6(Iy6,{flexDirection:"column",children:[dd1(hd1,{services:Z.services,migrationsStatus:Z.migrationsStatus,home:$,serverUrl:Z.serverUrl}),dd1(cd1,{logs:Z.logs})]})}var yc0=O(()=>{ud1();ld1();LD()});var e3="thread-gate",GN="decopilot-hosted-harness",hG="automations",mF="background-tools";var md1="7";function id1($){return{name:"decocms",systemDatabaseUrl:$.systemDatabaseUrl,systemDatabaseSchemaName:"dbos",systemDatabasePoolSize:$.poolSize,runAdminServer:!1,executorID:$.executorID,applicationVersion:md1,...$.listenQueues!==void 0?{listenQueues:$.listenQueues}:{}}}var nd1=()=>{};function ky6(){let $=(process.env.BUN_OPTIONS??"").split(/\s+/).filter(Boolean);return[...process.argv.slice(1),...$]}function gc0($,Z){for(let X=0;X<$.length;X++){let Q=$[X];if(Q===void 0)continue;if(Q===Z)return $[X+1];if(Q.startsWith(`${Z}=`))return Q.slice(Z.length+1)}return}function pd1(){let $=ky6();if($.includes("--cpu-prof")){console.log(JSON.stringify({msg:"cpu-profiling-active",dir:gc0($,"--cpu-prof-dir")??process.cwd(),name:gc0($,"--cpu-prof-name"),markdown:$.includes("--cpu-prof-md"),intervalUs:Number(gc0($,"--cpu-prof-interval")??1000),note:"profile is written on process exit"}));return}if(process.env.CPU_PROFILE)console.warn(JSON.stringify({msg:"cpu-profiling-requested-but-inactive",hint:'CPU profiling is a Bun launch flag. Set BUN_OPTIONS="--cpu-prof --cpu-prof-md --cpu-prof-dir=/tmp" before starting the process.'}))}function td1(){if(process.env.HEAP_WATCH!=="1")return()=>{};let $=Number(process.env.HEAP_WATCH_INTERVAL_MS??60000),Z=async()=>{let X=UD();if(!X)return;let Q={};try{let{heapStats:Y}=await import("bun:jsc"),G=Y(),J=Object.entries(G.objectTypeCounts).sort((K,W)=>W[1]-K[1]).slice(0,20);Q={objectCount:G.objectCount,heapSize:G.heapSize,top:Object.fromEntries(J)}}catch{}console.log(JSON.stringify({msg:"heap-watch",ts:new Date().toISOString(),uptimeS:Math.round(process.uptime()),rss:X.rss,heapUsed:X.heapUsed,heapTotal:X.heapTotal,external:X.external,arrayBuffers:X.arrayBuffers,...Q}))};return Z().catch(()=>{}),F50=setInterval(()=>void Z().catch(()=>{}),$),F50.unref?.(),process.on("SIGUSR2",()=>{try{let X=Bun.generateHeapSnapshot("v8"),Q=typeof X==="string"?X:JSON.stringify(X),Y=`/tmp/heap-${process.pid}-${Date.now()}.heapsnapshot`;Bun.write(Y,Q),console.log(JSON.stringify({msg:"heap-snapshot-written",path:Y}))}catch(X){console.error("[heap-watch] snapshot failed:",X)}}),()=>{if(F50)clearInterval(F50)}}var F50;var od1=()=>{};import*as Sy6 from"bun:jsc";function rd1(){if(process.env.STALL_WATCHDOG!=="1")return()=>{};let $=Number(process.env.STALL_WATCHDOG_MS??100),Z=Number(process.env.STALL_WATCHDOG_TICK_MS??50);try{Vy6()}catch(G){return console.error("[stall-watchdog] failed to start sampling profiler:",G),()=>{}}let X,Q=performance.now()+Z,Y=()=>{let G=performance.now(),J=G-Q;Q=G+Z;let K=[];try{K=Cy6()?.traces??[]}catch{}if(J>$&&K.length>0){let W=new Map;for(let N of K){let U=N.frames.find((B)=>B.sourceURL&&!/Unknown Executable/.test(B.category??""))??N.frames[0];if(!U)continue;let F=(U.sourceURL??"?").replace(/^.*\/node_modules\//,"node_modules/"),w=`${U.name??"?"} @ ${F}:${U.line??"?"}`;W.set(w,(W.get(w)??0)+1)}let H=[...W.entries()].sort((N,U)=>U[1]-N[1]).slice(0,8).map(([N,U])=>({frame:N,count:U}));console.warn(JSON.stringify({msg:"stall-stack",ts:new Date().toISOString(),lagMs:Math.round(J),samplesInWindow:K.length,top:H}))}X=setTimeout(Y,Z),X.unref?.()};return X=setTimeout(Y,Z),X.unref?.(),()=>{if(X)clearTimeout(X)}}var Vy6,Cy6;var ad1=O(()=>{({startSamplingProfiler:Vy6,samplingProfilerStackTraces:Cy6}=Sy6)});function sd1(){pd1();let $=[td1(),Fu1(),rd1()];return()=>{for(let Z of $)Z()}}var ed1=O(()=>{Zg0();od1();ad1()});var ED=_(($m1)=>{Object.defineProperty($m1,"__esModule",{value:!0});$m1.RepublishHeaders=$m1.DirectMsgHeaders=$m1.JsHeaders=$m1.AdvisoryKind=void 0;$m1.isOrderedPushConsumerOptions=_y6;$m1.isPullConsumer=xy6;$m1.isPushConsumer=vy6;$m1.isBoundPushConsumerOptions=fy6;function _y6($){if($&&typeof $==="object")return"name_prefix"in $||"deliver_subject_prefix"in $||"filter_subjects"in $||"filter_subject"in $||"deliver_policy"in $||"opt_start_seq"in $||"opt_start_time"in $||"replay_policy"in $||"inactive_threshold"in $||"headers_only"in $||"deliver_prefix"in $;return!1}function xy6($){return $.isPullConsumer()}function vy6($){return $.isPushConsumer()}function fy6($){if($&&typeof $==="object")return"deliver_subject"in $||"deliver_group"in $||"idle_heartbeat"in $;return!1}$m1.AdvisoryKind={API:"api_audit",StreamAction:"stream_action",ConsumerAction:"consumer_action",SnapshotCreate:"snapshot_create",SnapshotComplete:"snapshot_complete",RestoreCreate:"restore_create",RestoreComplete:"restore_complete",MaxDeliver:"max_deliver",Terminated:"terminated",Ack:"consumer_ack",StreamLeaderElected:"stream_leader_elected",StreamQuorumLost:"stream_quorum_lost",ConsumerLeaderElected:"consumer_leader_elected",ConsumerQuorumLost:"consumer_quorum_lost"};$m1.JsHeaders={StreamSourceHdr:"Nats-Stream-Source",LastConsumerSeqHdr:"Nats-Last-Consumer",LastStreamSeqHdr:"Nats-Last-Stream",ConsumerStalledHdr:"Nats-Consumer-Stalled",MessageSizeHdr:"Nats-Msg-Size",RollupHdr:"Nats-Rollup",RollupValueSubject:"sub",RollupValueAll:"all",PendingMessagesHdr:"Nats-Pending-Messages",PendingBytesHdr:"Nats-Pending-Bytes",RequiredApiLevel:"Nats-Required-Api-Level"};$m1.DirectMsgHeaders={Stream:"Nats-Stream",Sequence:"Nats-Sequence",TimeStamp:"Nats-Time-Stamp",Subject:"Nats-Subject",LastSequence:"Nats-Last-Sequence",NumPending:"Nats-Num-Pending"};$m1.RepublishHeaders={Stream:"Nats-Stream",Subject:"Nats-Subject",Sequence:"Nats-Sequence",LastSequence:"Nats-Last-Sequence",Size:"Nats-Msg-Size"}});var VY=_((Xm1)=>{Object.defineProperty(Xm1,"__esModule",{value:!0});Xm1.TD=Xm1.TE=Xm1.Empty=void 0;Xm1.encode=my6;Xm1.decode=iy6;Xm1.Empty=new Uint8Array(0);Xm1.TE=new TextEncoder;Xm1.TD=new TextDecoder;function dy6(...$){let Z=0;for(let Y=0;Y<$.length;Y++)Z+=$[Y].length;let X=new Uint8Array(Z),Q=0;for(let Y=0;Y<$.length;Y++)X.set($[Y],Q),Q+=$[Y].length;return X}function my6(...$){let Z=[];for(let X=0;X<$.length;X++)Z.push(Xm1.TE.encode($[X]));if(Z.length===0)return Xm1.Empty;if(Z.length===1)return Z[0];return dy6(...Z)}function iy6($){if(!$||$.length===0)return"";return Xm1.TD.decode($)}});var CY=_((Gm1)=>{Object.defineProperty(Gm1,"__esModule",{value:!0});Gm1.errors=Gm1.PermissionViolationError=Gm1.NoRespondersError=Gm1.TimeoutError=Gm1.RequestError=Gm1.ProtocolError=Gm1.ConnectionError=Gm1.DrainingConnectionError=Gm1.ClosedConnectionError=Gm1.AuthorizationError=Gm1.UserAuthenticationExpiredError=Gm1.InvalidOperationError=Gm1.InvalidArgumentError=Gm1.InvalidSubjectError=void 0;class uc0 extends Error{constructor($,Z){super(`illegal subject: '${$}'`,Z);this.name="InvalidSubjectError"}}Gm1.InvalidSubjectError=uc0;class w50 extends Error{constructor($,Z){super($,Z);this.name="InvalidArgumentError"}static format($,Z,X){if(Array.isArray(Z)&&Z.length>1)Z=Z[0];if(Array.isArray($))$=$.map((Q)=>`'${Q}'`),$=$.join(",");else $=`'${$}'`;return new w50(`${$} ${Z}`,X)}}Gm1.InvalidArgumentError=w50;class cc0 extends Error{constructor($,Z){super($,Z);this.name="InvalidOperationError"}}Gm1.InvalidOperationError=cc0;class B50 extends Error{constructor($,Z){super($,Z);this.name="UserAuthenticationExpiredError"}static parse($){if($.toLowerCase().indexOf("user authentication expired")!==-1)return new B50($);return null}}Gm1.UserAuthenticationExpiredError=B50;class O50 extends Error{constructor($,Z){super($,Z);this.name="AuthorizationError"}static parse($){let Z=["authorization violation","account authentication expired","authentication timeout"],X=$.toLowerCase();for(let Q=0;Q<Z.length;Q++)if(X.indexOf(Z[Q])!==-1)return new O50($);return null}}Gm1.AuthorizationError=O50;class lc0 extends Error{constructor(){super("closed connection");this.name="ClosedConnectionError"}}Gm1.ClosedConnectionError=lc0;class dc0 extends Error{constructor(){super("connection draining");this.name="DrainingConnectionError"}}Gm1.DrainingConnectionError=dc0;class mc0 extends Error{constructor($,Z){super($,Z);this.name="ConnectionError"}}Gm1.ConnectionError=mc0;class ic0 extends Error{constructor($,Z){super($,Z);this.name="ProtocolError"}}Gm1.ProtocolError=ic0;class nc0 extends Error{constructor($="",Z){super($,Z);this.name="RequestError"}isNoResponders(){return this.cause instanceof L50}}Gm1.RequestError=nc0;class pc0 extends Error{constructor($){super("timeout",$);this.name="TimeoutError"}}Gm1.TimeoutError=pc0;class L50 extends Error{subject;constructor($,Z){super(`no responders: '${$}'`,Z);this.subject=$,this.name="NoResponders"}}Gm1.NoRespondersError=L50;class D50 extends Error{operation;subject;queue;constructor($,Z,X,Q,Y){super($,Y);this.name="PermissionViolationError",this.operation=Z,this.subject=X,this.queue=Q}static parse($){if(($?$.toLowerCase():"").indexOf("permissions violation")===-1)return null;let X="publish",Q="",Y=void 0,G=$.match(/(Publish|Subscription) to "(\S+)"/);if(G){if(X=G[1].toLowerCase(),Q=G[2],X==="subscription"){let J=$.match(/using queue "(\S+)"/);if(J)Y=J[1]}}return new D50($,X,Q,Y)}}Gm1.PermissionViolationError=D50;Gm1.errors={AuthorizationError:O50,ClosedConnectionError:lc0,ConnectionError:mc0,DrainingConnectionError:dc0,InvalidArgumentError:w50,InvalidOperationError:cc0,InvalidSubjectError:uc0,NoRespondersError:L50,PermissionViolationError:D50,ProtocolError:ic0,RequestError:nc0,TimeoutError:pc0,UserAuthenticationExpiredError:B50}});var $J=_((Nm1)=>{Object.defineProperty(Nm1,"__esModule",{value:!0});Nm1.SimpleMutex=Nm1.Perf=void 0;Nm1.extend=Wg6;Nm1.render=Hg6;Nm1.timeout=Ng6;Nm1.delay=Ug6;Nm1.deadline=Fg6;Nm1.deferred=oc0;Nm1.debugDeferred=wg6;Nm1.shuffle=Bg6;Nm1.collect=Og6;Nm1.jitter=Hm1;Nm1.backoff=Lg6;Nm1.nanos=Dg6;Nm1.millis=Eg6;Nm1.randomToken=Pg6;var Kg6=VY(),tc0=CY();function Wg6($,...Z){for(let X=0;X<Z.length;X++){let Q=Z[X];Object.keys(Q).forEach(function(Y){$[Y]=Q[Y]})}return $}function Hg6($){return Kg6.TD.decode($).replace(/\n/g,"\u240A").replace(/\r/g,"\u240D")}function Ng6($,Z=!0){let X=Z?new tc0.TimeoutError:null,Q,Y,G=new Promise((J,K)=>{Q={cancel:()=>{if(Y)clearTimeout(Y)}},Y=setTimeout(()=>{if(X===null)K(new tc0.TimeoutError);else K(X)},$)});return Object.assign(G,Q)}function Ug6($=0){let Z,X=new Promise((Q)=>{let Y=setTimeout(()=>{Q()},$);Z={cancel:()=>{if(Y)clearTimeout(Y),Q()}}});return Object.assign(X,Z)}async function Fg6($,Z=1000){let X=oc0(),Q=setTimeout(()=>{X.reject(new tc0.TimeoutError)},Z);try{return await Promise.race([$,X])}finally{clearTimeout(Q)}}function oc0(){let $={},Z=new Promise((X,Q)=>{$={resolve:X,reject:Q}});return Object.assign(Z,$)}function wg6(){let $={},Z=new Promise((X,Q)=>{$={resolve:(Y)=>{console.trace("resolve",Y),X(Y)},reject:(Y)=>{console.trace("reject"),Q(Y)}}});return Object.assign(Z,$)}function Bg6($){for(let Z=$.length-1;Z>0;Z--){let X=Math.floor(Math.random()*(Z+1));[$[Z],$[X]]=[$[X],$[Z]]}return $}async function Og6($){let Z=[];for await(let X of $)Z.push(X);return Z}class Km1{timers;measures;constructor(){this.timers=new Map,this.measures=new Map}mark($){this.timers.set($,performance.now())}measure($,Z,X){let Q=this.timers.get(Z);if(Q===void 0)throw Error(`${Z} is not defined`);let Y=this.timers.get(X);if(Y===void 0)throw Error(`${X} is not defined`);this.measures.set($,Y-Q)}getEntries(){let $=[];return this.measures.forEach((Z,X)=>{$.push({name:X,duration:Z})}),$}}Nm1.Perf=Km1;class Wm1{max;current;waiting;constructor($=1){this.max=$,this.current=0,this.waiting=[]}lock(){if(this.current++,this.current<=this.max)return Promise.resolve();let $=oc0();return this.waiting.push($),$}unlock(){this.current--,this.waiting.pop()?.resolve()}}Nm1.SimpleMutex=Wm1;function Hm1($){if($===0)return 0;return Math.floor($/2+Math.random()*$)}function Lg6($=[0,250,250,500,500,3000,5000]){if(!Array.isArray($))$=[0,250,250,500,500,3000,5000];let Z=$.length-1;return{backoff(X){return Hm1(X>Z?$[Z]:$[X])}}}function Dg6($){return $*1e6}function Eg6($){return Math.floor($/1e6)}var zg6="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",JN=new Uint8Array(62);for(let $=0;$<62;$++)JN[$]=zg6.charCodeAt($);var jg6=218340105584896;function Pg6(){let $=Math.floor(Math.random()*jg6),Z=$%62,X=JN[Z];$=($-Z)/62,Z=$%62;let Q=JN[Z];$=($-Z)/62,Z=$%62;let Y=JN[Z];$=($-Z)/62,Z=$%62;let G=JN[Z];$=($-Z)/62,Z=$%62;let J=JN[Z];$=($-Z)/62,Z=$%62;let K=JN[Z];$=($-Z)/62,Z=$%62;let W=JN[Z];$=($-Z)/62;let H=JN[$];return String.fromCharCode(X,Q,Y,G,J,K,W,H)}});var Em1=_((Lm1)=>{Object.defineProperty(Lm1,"__esModule",{value:!0});Lm1.nuid=Lm1.NuidImpl=void 0;var yg6="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",iF=62,z50=12,Bm1=10,Fm1=33,gg6=333,wm1=z50+Bm1,ac0=new Uint8Array(iF);for(let $=0;$<iF;$++)ac0[$]=yg6.charCodeAt($);var E50=4294967296,Om1=BigInt(iF)**BigInt(Bm1),ed=Number(Om1/(1n<<32n)),rc0=Number(Om1%(1n<<32n));function hg6($){for(let Z=0;Z<$.length;Z++)$[Z]=Math.floor(Math.random()*256)}function ug6($){if(globalThis?.crypto?.getRandomValues)globalThis.crypto.getRandomValues($);else hg6($)}class sc0{buf;cbuf;seqHi;seqLo;inc;inited;constructor(){this.buf=new Uint8Array(wm1),this.cbuf=new Uint8Array(z50),this.inited=!1}init(){this.inited=!0,this.setPre(),this.initSeqAndInc(),this.fillSeq()}initSeqAndInc(){let $=0;do this.seqHi=Math.floor(Math.random()*(ed+1)),this.seqLo=Math.floor(Math.random()*E50);while($++<8&&this.seqHi===ed&&this.seqLo>=rc0);if(this.seqHi===ed&&this.seqLo>=rc0)this.seqLo=0;this.inc=Math.random()*(gg6-Fm1)+Fm1|0}setPre(){ug6(this.cbuf);for(let $=0;$<z50;$++)this.buf[$]=ac0[this.cbuf[$]%iF]}fillSeq(){let $=this.seqHi,Z=this.seqLo;for(let X=wm1-1;X>=z50;X--){let Q=Math.floor($/iF),G=($-Q*iF)*E50+Z,J=Math.floor(G/iF),K=G-J*iF;this.buf[X]=ac0[K],$=Q,Z=J}}next(){if(!this.inited)this.init();if(this.seqLo+=this.inc,this.seqLo>=E50)this.seqLo-=E50,this.seqHi+=1;if(this.seqHi>ed||this.seqHi===ed&&this.seqLo>=rc0)this.setPre(),this.initSeqAndInc();this.fillSeq();let $=this.buf;return String.fromCharCode($[0],$[1],$[2],$[3],$[4],$[5],$[6],$[7],$[8],$[9],$[10],$[11],$[12],$[13],$[14],$[15],$[16],$[17],$[18],$[19],$[20],$[21])}reset(){this.init()}}Lm1.NuidImpl=sc0;Lm1.nuid=new sc0});var Am1=_((jm1)=>{Object.defineProperty(jm1,"__esModule",{value:!0});jm1.nuid=jm1.Nuid=void 0;var zm1=Em1();jm1.Nuid=zm1.NuidImpl;jm1.nuid=zm1.nuid});var P50=_((j50)=>{Object.defineProperty(j50,"__esModule",{value:!0});j50.nuid=j50.Nuid=void 0;var Tm1=Am1();Object.defineProperty(j50,"Nuid",{enumerable:!0,get:function(){return Tm1.Nuid}});Object.defineProperty(j50,"nuid",{enumerable:!0,get:function(){return Tm1.nuid}})});var nF=_((Im1)=>{Object.defineProperty(Im1,"__esModule",{value:!0});Im1.DEFAULT_HOST=Im1.DEFAULT_PORT=Im1.Match=void 0;Im1.syncIterator=ng6;Im1.createInbox=pg6;var mg6=P50(),ig6=CY();Im1.Match={Exact:"exact",CanonicalMIME:"canonical",IgnoreCase:"insensitive"};function ng6($){let Z=$[Symbol.asyncIterator]();return{async next(){let X=await Z.next();if(X.done)return Promise.resolve(null);return Promise.resolve(X.value)}}}function pg6($=""){if($=$||"_INBOX",typeof $!=="string")throw TypeError("prefix must be a string");return $.split(".").forEach((Z)=>{if(Z==="*"||Z===">")throw ig6.InvalidArgumentError.format("prefix",`cannot have wildcards ('${$}')`)}),`${$}.${mg6.nuid.next()}`}Im1.DEFAULT_PORT=4222;Im1.DEFAULT_HOST="127.0.0.1"});var $m=_((km1)=>{Object.defineProperty(km1,"__esModule",{value:!0});km1.DataBuffer=void 0;var qm1=VY();class Mm1{buffers;byteLength;constructor(){this.buffers=[],this.byteLength=0}static concat(...$){let Z=0;for(let Y=0;Y<$.length;Y++)Z+=$[Y].length;let X=new Uint8Array(Z),Q=0;for(let Y=0;Y<$.length;Y++)X.set($[Y],Q),Q+=$[Y].length;return X}static fromAscii($){if(!$)$="";return qm1.TE.encode($)}static toAscii($){return qm1.TD.decode($)}reset(){this.buffers.length=0,this.byteLength=0}pack(){if(this.buffers.length>1){let $=new Uint8Array(this.byteLength),Z=0;for(let X=0;X<this.buffers.length;X++)$.set(this.buffers[X],Z),Z+=this.buffers[X].length;this.buffers.length=0,this.buffers.push($)}}shift(){if(this.buffers.length){let $=this.buffers.shift();if($)return this.byteLength-=$.length,$}return new Uint8Array(0)}drain($){if(this.buffers.length){this.pack();let Z=this.buffers.pop();if(Z){let X=this.byteLength;if($===void 0||$>X)$=X;let Q=Z.subarray(0,$);if(X>$)this.buffers.push(Z.subarray($));return this.byteLength=X-$,Q}}return new Uint8Array(0)}fill($,...Z){if($)this.buffers.push($),this.byteLength+=$.length;for(let X=0;X<Z.length;X++)if(Z[X]&&Z[X].length)this.buffers.push(Z[X]),this.byteLength+=Z[X].length}peek(){if(this.buffers.length)return this.pack(),this.buffers[0];return new Uint8Array(0)}size(){return this.byteLength}length(){return this.buffers.length}}km1.DataBuffer=Mm1});var zD=_((Cm1)=>{Object.defineProperty(Cm1,"__esModule",{value:!0});Cm1.LF=Cm1.CR=Cm1.CRLF=Cm1.CR_LF_LEN=Cm1.CR_LF=void 0;Cm1.setTransportFactory=Zh6;Cm1.defaultPort=Xh6;Cm1.getUrlParseFn=Qh6;Cm1.newTransport=Yh6;Cm1.getResolveFn=Gh6;Cm1.protoLen=Vm1;Cm1.extractProtocolMessage=Jh6;var sg6=VY(),eg6=nF(),$h6=$m(),_Y;function Zh6($){_Y=$}function Xh6(){return _Y!==void 0&&_Y.defaultPort!==void 0?_Y.defaultPort:eg6.DEFAULT_PORT}function Qh6(){return _Y!==void 0&&_Y.urlParseFn?_Y.urlParseFn:void 0}function Yh6(){if(!_Y||typeof _Y.factory!=="function")throw Error("transport fn is not set");return _Y.factory()}function Gh6(){return _Y!==void 0&&_Y.dnsResolveFn?_Y.dnsResolveFn:void 0}Cm1.CR_LF=`\r
1259
+ `);Q=G.pop()??"";for(let J of G){let K=ad(J).replace(/^\[\d+\]\s*/,"").trim();if(!K)continue;lF({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:K})}}(async()=>{for(;;){let{done:G,value:J}=await Z.read();if(G)break;Q+=X.decode(J,{stream:!0}),Y()}if(Q.trim()){let G=ad(Q).replace(/^\[\d+\]\s*/,"").trim();if(G)lF({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:G})}})()}async function Ly6($){let{baseUrl:Z,noTui:X}=$,Q=process.env.HOST==="0.0.0.0"&&Boolean(process.env.PORT),Y=Q?process.env.PORT:$.vitePort,G=Z||`http://localhost:${Y}`,J=Q?await rd(Number(Y)+1):await rd(Number($.port)),{settings:K,services:W,managedServiceNames:H}=await W50({port:String(J),home:$.home,baseUrl:$.baseUrl,localMode:$.localMode,skipMigrations:$.skipMigrations,noTui:$.noTui,vitePort:$.vitePort});for(let L of W)OD({name:L.name,status:"ready",port:L.port});td();let N=Oy6(import.meta.dir,"..","..","..","..",".."),U=X===!0,F=Bun.spawn(["bun","run","dev:servers"],{cwd:N,env:{...process.env,PORT:String(K.port),VITE_PORT:String(Y),DATABASE_URL:K.databaseUrl,NATS_URL:K.natsUrls.join(","),NODE_ENV:K.nodeEnv,BASE_URL:G,DECOCMS_LOCAL_MODE:String(K.localMode),DECOCMS_HOME:K.dataDir,DATA_DIR:K.dataDir,DECO_CLI:"1",...K.s3Endpoint?{S3_ENDPOINT:K.s3Endpoint,S3_BUCKET:K.s3Bucket??"",S3_ACCESS_KEY_ID:K.s3AccessKeyId??"",S3_SECRET_ACCESS_KEY:K.s3SecretAccessKey??"",S3_FORCE_PATH_STYLE:String(K.s3ForcePathStyle)}:{},...K.natsPublicUrl&&K.natsAccountJwt&&K.natsAccountSigningKey?{NATS_PUBLIC_URL:K.natsPublicUrl,NATS_ACCOUNT_JWT:K.natsAccountJwt,NATS_ACCOUNT_SIGNING_KEY:K.natsAccountSigningKey,NATS_OPERATOR_JWT:K.natsOperatorJwt??"",NATS_TUNNEL_PUBLIC_ENABLED:"true",...K.natsCredsPath?{NATS_CREDS:K.natsCredsPath}:{}}:{}},stdio:["inherit",U?"inherit":"pipe",U?"inherit":"pipe"]});if(!U)xd1(F.stdout),xd1(F.stderr);od(G),OD({name:"Vite",status:"ready",port:Number(Y)}),OD({name:"API",status:"ready",port:Number(K.port)});let B=async(L)=>{if(F.kill(L),await F.exited,H.length>0){let{stopServices:D}=await Promise.resolve().then(() => (P$0(),j$0));await D(K.dataDir)}};return process.on("SIGINT",()=>B("SIGINT")),process.on("SIGTERM",()=>B("SIGTERM")),{port:Number(Y),process:F}}var _c0=O(()=>{qc0();LD();Vc0()});var U50;var xc0=O(()=>{U50={name:"decocms",version:"4.170.1",description:"Deco CMS \u2014 Self-hostable MCP Gateway for managing AI connections and tools",author:"Deco team",repository:{type:"git",url:"git+https://github.com/decocms/studio.git",directory:"apps/api"},bugs:{url:"https://github.com/decocms/studio/issues"},type:"module",bin:{deco:"./dist/server/cli.js"},files:["dist/**/*"],scripts:{dev:"bun run migrate && bun run dev:server","dev:server":"bun run --cwd=../../packages/sandbox build && NODE_ENV=development bun --env-file=.env --hot run src/index.ts",build:"bun run build:server","build:server":"bun run scripts/bundle-server-script.ts --dist ./dist/server","generate:tool-contracts":"bun run scripts/generate-tool-contracts.ts","db:migrate":"bun run ./dist/server/migrate.js",check:"tsc --noEmit",start:"bun run ./dist/server/server.js",migrate:"bun run src/database/migrate.ts",test:"bun test src","better-auth:migrate":"bunx --bun @better-auth/cli migrate -y --config src/auth/index.ts",prepublishOnly:"bun run --cwd=../.. build:studio"},optionalDependencies:{"@duckdb/node-api":"^1.5.0-r.1"},dependencies:{"@ai-sdk/anthropic":"^3.0.85","@ai-sdk/google":"^3.0.83","@ai-sdk/openai":"^3.0.73","@anthropic-ai/sdk":"^0.105.0","@aws-sdk/client-s3":"^3.1013.0","@aws-sdk/client-sts":"^3.1013.0","@aws-sdk/lib-storage":"^3.1013.0","@aws-sdk/s3-request-presigner":"^3.1013.0","@clickhouse/client":"^1.8.1","@dbos-inc/dbos-sdk":"^4.21.6","@inkjs/ui":"^2.0.0","@nats-io/jetstream":"3.4.0","@nats-io/kv":"3.4.0","@nats-io/nats-core":"3.4.0","@nats-io/transport-node":"3.4.0","@openrouter/ai-sdk-provider":"^2.9.1","@opentelemetry/core":"^2.6.0","embedded-postgres":"^18.3.0-beta.16",ink:"^6.8.0",kysely:"^0.28.12","posthog-node":"^5.0.0",react:"^19.2.6","react-dom":"^19.2.6"},devDependencies:{"@ai-sdk/provider":"^3.0.10","@better-auth/sso":"1.4.1","@decocms/better-auth":"1.5.17","@decocms/bindings":"workspace:*","@decocms/mcp-utils":"workspace:*","@decocms/runtime":"workspace:*","@decocms/sandbox":"workspace:*","@decocms/shared":"workspace:*","@jitl/quickjs-wasmfile-release-sync":"0.31.0","@modelcontextprotocol/sdk":"1.29.0","@nats-io/jwt":"0.0.10-5","@opentelemetry/api":"^1.9.0","@opentelemetry/api-logs":"^0.211.0","@opentelemetry/exporter-logs-otlp-proto":"^0.211.0","@opentelemetry/exporter-prometheus":"^0.208.0","@opentelemetry/exporter-trace-otlp-proto":"^0.207.0","@opentelemetry/instrumentation-runtime-node":"^0.24.0","@opentelemetry/resources":"^2.6.0","@opentelemetry/sdk-logs":"^0.211.0","@opentelemetry/sdk-metrics":"^2.2.0","@opentelemetry/sdk-node":"^0.207.0","@opentelemetry/sdk-trace-base":"^2.5.0","@types/bun":"^1.3.1","@types/google.maps":"^3.65.2","@types/pg":"^8.15.6","@types/react-syntax-highlighter":"^15.5.13","@vercel/nft":"^1.1.1",ai:"^6.0.208","better-auth":"1.4.22",croner:"^9.1.0",degit:"^2.8.4",hono:"^4.10.7",jose:"^6.0.11",nanoid:"^5.1.6",pg:"^8.16.3",typescript:"^7.0.2",typescript5:"npm:typescript@^5.9.3",zod:"4.3.6"},homepage:"https://github.com/decocms/studio",keywords:["mcp","model-context-protocol","ai","gateway","self-hosted","tools"],license:"MIT",publishConfig:{access:"public"}}});import{Box as Ey6,Text as vd1}from"ink";import{jsx as zy6,jsxs as fd1}from"react/jsx-runtime";function bd1({version:$}){return fd1(Ey6,{flexDirection:"column",marginTop:1,children:[l$0.map((Z,X)=>zy6(vd1,{color:d$0[X],children:Z},X)),fd1(vd1,{dimColor:!0,children:[" v",$]})]})}var yd1=O(()=>{bd()});import{Box as DD,Text as dF}from"ink";import{Spinner as jy6}from"@inkjs/ui";import{jsx as SY,jsxs as Mf}from"react/jsx-runtime";function gd1({status:$}){if($==="pending")return SY(jy6,{label:""});return SY(dF,{color:"green",children:"\u2713"})}function Py6($){return`${$.name}: ${$.port||"...."}`}function hd1({services:$,migrationsStatus:Z,home:X,serverUrl:Q}){return Mf(DD,{flexDirection:"column",paddingBottom:1,children:[SY(bd1,{version:U50.version}),SY(DD,{marginBottom:1,children:SY(dF,{dimColor:!0,children:"\u2500".repeat(80)})}),SY(DD,{children:Mf(dF,{dimColor:!0,children:["Home: ",X]})}),Mf(DD,{gap:2,children:[$.map((Y)=>Mf(DD,{gap:1,children:[SY(dF,{children:Py6(Y)}),SY(gd1,{status:Y.status})]},Y.name)),Mf(DD,{gap:1,children:[SY(dF,{children:"Migrations"}),SY(gd1,{status:Z})]})]}),SY(DD,{children:Q?Mf(dF,{children:["Open in browser: ",SY(dF,{color:"cyan",children:Q})]}):SY(dF,{dimColor:!0,children:"Starting..."})})]})}var ud1=O(()=>{xc0();yd1()});import{Box as Ay6,Text as sd}from"ink";import{jsx as vc0,jsxs as fc0}from"react/jsx-runtime";function Ty6($){if($>=500)return"red";if($>=400)return"yellow";if($>=300)return"cyan";return"green"}function cd1({logs:$}){return vc0(Ay6,{flexDirection:"column",children:$.map((Z,X)=>{if(Z.rawLine)return vc0(sd,{dimColor:!0,children:Z.rawLine},X);let Q=Z.duration<1000?`${Z.duration}ms`:`${(Z.duration/1000).toFixed(1)}s`;return fc0(sd,{children:[fc0(sd,{dimColor:!0,children:[Z.method.padEnd(6)," ",Z.path.padEnd(30)," "]}),vc0(sd,{color:Ty6(Z.status),children:Z.status}),fc0(sd,{dimColor:!0,children:[" ",Q.padStart(8)]})]},X)})})}var ld1=()=>{};var bc0={};z0(bc0,{App:()=>qy6});import{Box as Iy6}from"ink";import{useSyncExternalStore as Ry6}from"react";import{jsx as dd1,jsxs as My6}from"react/jsx-runtime";function qy6({home:$}){let Z=Ry6(Sc0,kc0);return My6(Iy6,{flexDirection:"column",children:[dd1(hd1,{services:Z.services,migrationsStatus:Z.migrationsStatus,home:$,serverUrl:Z.serverUrl}),dd1(cd1,{logs:Z.logs})]})}var yc0=O(()=>{ud1();ld1();LD()});var e3="thread-gate",GN="decopilot-hosted-harness",hG="automations",mF="background-tools";var md1="7";function id1($){return{name:"decocms",systemDatabaseUrl:$.systemDatabaseUrl,systemDatabaseSchemaName:"dbos",systemDatabasePoolSize:$.poolSize,runAdminServer:!1,executorID:$.executorID,applicationVersion:md1,...$.listenQueues!==void 0?{listenQueues:$.listenQueues}:{}}}var nd1=()=>{};function ky6(){let $=(process.env.BUN_OPTIONS??"").split(/\s+/).filter(Boolean);return[...process.argv.slice(1),...$]}function gc0($,Z){for(let X=0;X<$.length;X++){let Q=$[X];if(Q===void 0)continue;if(Q===Z)return $[X+1];if(Q.startsWith(`${Z}=`))return Q.slice(Z.length+1)}return}function pd1(){let $=ky6();if($.includes("--cpu-prof")){console.log(JSON.stringify({msg:"cpu-profiling-active",dir:gc0($,"--cpu-prof-dir")??process.cwd(),name:gc0($,"--cpu-prof-name"),markdown:$.includes("--cpu-prof-md"),intervalUs:Number(gc0($,"--cpu-prof-interval")??1000),note:"profile is written on process exit"}));return}if(process.env.CPU_PROFILE)console.warn(JSON.stringify({msg:"cpu-profiling-requested-but-inactive",hint:'CPU profiling is a Bun launch flag. Set BUN_OPTIONS="--cpu-prof --cpu-prof-md --cpu-prof-dir=/tmp" before starting the process.'}))}function td1(){if(process.env.HEAP_WATCH!=="1")return()=>{};let $=Number(process.env.HEAP_WATCH_INTERVAL_MS??60000),Z=async()=>{let X=UD();if(!X)return;let Q={};try{let{heapStats:Y}=await import("bun:jsc"),G=Y(),J=Object.entries(G.objectTypeCounts).sort((K,W)=>W[1]-K[1]).slice(0,20);Q={objectCount:G.objectCount,heapSize:G.heapSize,top:Object.fromEntries(J)}}catch{}console.log(JSON.stringify({msg:"heap-watch",ts:new Date().toISOString(),uptimeS:Math.round(process.uptime()),rss:X.rss,heapUsed:X.heapUsed,heapTotal:X.heapTotal,external:X.external,arrayBuffers:X.arrayBuffers,...Q}))};return Z().catch(()=>{}),F50=setInterval(()=>void Z().catch(()=>{}),$),F50.unref?.(),process.on("SIGUSR2",()=>{try{let X=Bun.generateHeapSnapshot("v8"),Q=typeof X==="string"?X:JSON.stringify(X),Y=`/tmp/heap-${process.pid}-${Date.now()}.heapsnapshot`;Bun.write(Y,Q),console.log(JSON.stringify({msg:"heap-snapshot-written",path:Y}))}catch(X){console.error("[heap-watch] snapshot failed:",X)}}),()=>{if(F50)clearInterval(F50)}}var F50;var od1=()=>{};import*as Sy6 from"bun:jsc";function rd1(){if(process.env.STALL_WATCHDOG!=="1")return()=>{};let $=Number(process.env.STALL_WATCHDOG_MS??100),Z=Number(process.env.STALL_WATCHDOG_TICK_MS??50);try{Vy6()}catch(G){return console.error("[stall-watchdog] failed to start sampling profiler:",G),()=>{}}let X,Q=performance.now()+Z,Y=()=>{let G=performance.now(),J=G-Q;Q=G+Z;let K=[];try{K=Cy6()?.traces??[]}catch{}if(J>$&&K.length>0){let W=new Map;for(let N of K){let U=N.frames.find((B)=>B.sourceURL&&!/Unknown Executable/.test(B.category??""))??N.frames[0];if(!U)continue;let F=(U.sourceURL??"?").replace(/^.*\/node_modules\//,"node_modules/"),w=`${U.name??"?"} @ ${F}:${U.line??"?"}`;W.set(w,(W.get(w)??0)+1)}let H=[...W.entries()].sort((N,U)=>U[1]-N[1]).slice(0,8).map(([N,U])=>({frame:N,count:U}));console.warn(JSON.stringify({msg:"stall-stack",ts:new Date().toISOString(),lagMs:Math.round(J),samplesInWindow:K.length,top:H}))}X=setTimeout(Y,Z),X.unref?.()};return X=setTimeout(Y,Z),X.unref?.(),()=>{if(X)clearTimeout(X)}}var Vy6,Cy6;var ad1=O(()=>{({startSamplingProfiler:Vy6,samplingProfilerStackTraces:Cy6}=Sy6)});function sd1(){pd1();let $=[td1(),Fu1(),rd1()];return()=>{for(let Z of $)Z()}}var ed1=O(()=>{Zg0();od1();ad1()});var ED=_(($m1)=>{Object.defineProperty($m1,"__esModule",{value:!0});$m1.RepublishHeaders=$m1.DirectMsgHeaders=$m1.JsHeaders=$m1.AdvisoryKind=void 0;$m1.isOrderedPushConsumerOptions=_y6;$m1.isPullConsumer=xy6;$m1.isPushConsumer=vy6;$m1.isBoundPushConsumerOptions=fy6;function _y6($){if($&&typeof $==="object")return"name_prefix"in $||"deliver_subject_prefix"in $||"filter_subjects"in $||"filter_subject"in $||"deliver_policy"in $||"opt_start_seq"in $||"opt_start_time"in $||"replay_policy"in $||"inactive_threshold"in $||"headers_only"in $||"deliver_prefix"in $;return!1}function xy6($){return $.isPullConsumer()}function vy6($){return $.isPushConsumer()}function fy6($){if($&&typeof $==="object")return"deliver_subject"in $||"deliver_group"in $||"idle_heartbeat"in $;return!1}$m1.AdvisoryKind={API:"api_audit",StreamAction:"stream_action",ConsumerAction:"consumer_action",SnapshotCreate:"snapshot_create",SnapshotComplete:"snapshot_complete",RestoreCreate:"restore_create",RestoreComplete:"restore_complete",MaxDeliver:"max_deliver",Terminated:"terminated",Ack:"consumer_ack",StreamLeaderElected:"stream_leader_elected",StreamQuorumLost:"stream_quorum_lost",ConsumerLeaderElected:"consumer_leader_elected",ConsumerQuorumLost:"consumer_quorum_lost"};$m1.JsHeaders={StreamSourceHdr:"Nats-Stream-Source",LastConsumerSeqHdr:"Nats-Last-Consumer",LastStreamSeqHdr:"Nats-Last-Stream",ConsumerStalledHdr:"Nats-Consumer-Stalled",MessageSizeHdr:"Nats-Msg-Size",RollupHdr:"Nats-Rollup",RollupValueSubject:"sub",RollupValueAll:"all",PendingMessagesHdr:"Nats-Pending-Messages",PendingBytesHdr:"Nats-Pending-Bytes",RequiredApiLevel:"Nats-Required-Api-Level"};$m1.DirectMsgHeaders={Stream:"Nats-Stream",Sequence:"Nats-Sequence",TimeStamp:"Nats-Time-Stamp",Subject:"Nats-Subject",LastSequence:"Nats-Last-Sequence",NumPending:"Nats-Num-Pending"};$m1.RepublishHeaders={Stream:"Nats-Stream",Subject:"Nats-Subject",Sequence:"Nats-Sequence",LastSequence:"Nats-Last-Sequence",Size:"Nats-Msg-Size"}});var VY=_((Xm1)=>{Object.defineProperty(Xm1,"__esModule",{value:!0});Xm1.TD=Xm1.TE=Xm1.Empty=void 0;Xm1.encode=my6;Xm1.decode=iy6;Xm1.Empty=new Uint8Array(0);Xm1.TE=new TextEncoder;Xm1.TD=new TextDecoder;function dy6(...$){let Z=0;for(let Y=0;Y<$.length;Y++)Z+=$[Y].length;let X=new Uint8Array(Z),Q=0;for(let Y=0;Y<$.length;Y++)X.set($[Y],Q),Q+=$[Y].length;return X}function my6(...$){let Z=[];for(let X=0;X<$.length;X++)Z.push(Xm1.TE.encode($[X]));if(Z.length===0)return Xm1.Empty;if(Z.length===1)return Z[0];return dy6(...Z)}function iy6($){if(!$||$.length===0)return"";return Xm1.TD.decode($)}});var CY=_((Gm1)=>{Object.defineProperty(Gm1,"__esModule",{value:!0});Gm1.errors=Gm1.PermissionViolationError=Gm1.NoRespondersError=Gm1.TimeoutError=Gm1.RequestError=Gm1.ProtocolError=Gm1.ConnectionError=Gm1.DrainingConnectionError=Gm1.ClosedConnectionError=Gm1.AuthorizationError=Gm1.UserAuthenticationExpiredError=Gm1.InvalidOperationError=Gm1.InvalidArgumentError=Gm1.InvalidSubjectError=void 0;class uc0 extends Error{constructor($,Z){super(`illegal subject: '${$}'`,Z);this.name="InvalidSubjectError"}}Gm1.InvalidSubjectError=uc0;class w50 extends Error{constructor($,Z){super($,Z);this.name="InvalidArgumentError"}static format($,Z,X){if(Array.isArray(Z)&&Z.length>1)Z=Z[0];if(Array.isArray($))$=$.map((Q)=>`'${Q}'`),$=$.join(",");else $=`'${$}'`;return new w50(`${$} ${Z}`,X)}}Gm1.InvalidArgumentError=w50;class cc0 extends Error{constructor($,Z){super($,Z);this.name="InvalidOperationError"}}Gm1.InvalidOperationError=cc0;class B50 extends Error{constructor($,Z){super($,Z);this.name="UserAuthenticationExpiredError"}static parse($){if($.toLowerCase().indexOf("user authentication expired")!==-1)return new B50($);return null}}Gm1.UserAuthenticationExpiredError=B50;class O50 extends Error{constructor($,Z){super($,Z);this.name="AuthorizationError"}static parse($){let Z=["authorization violation","account authentication expired","authentication timeout"],X=$.toLowerCase();for(let Q=0;Q<Z.length;Q++)if(X.indexOf(Z[Q])!==-1)return new O50($);return null}}Gm1.AuthorizationError=O50;class lc0 extends Error{constructor(){super("closed connection");this.name="ClosedConnectionError"}}Gm1.ClosedConnectionError=lc0;class dc0 extends Error{constructor(){super("connection draining");this.name="DrainingConnectionError"}}Gm1.DrainingConnectionError=dc0;class mc0 extends Error{constructor($,Z){super($,Z);this.name="ConnectionError"}}Gm1.ConnectionError=mc0;class ic0 extends Error{constructor($,Z){super($,Z);this.name="ProtocolError"}}Gm1.ProtocolError=ic0;class nc0 extends Error{constructor($="",Z){super($,Z);this.name="RequestError"}isNoResponders(){return this.cause instanceof L50}}Gm1.RequestError=nc0;class pc0 extends Error{constructor($){super("timeout",$);this.name="TimeoutError"}}Gm1.TimeoutError=pc0;class L50 extends Error{subject;constructor($,Z){super(`no responders: '${$}'`,Z);this.subject=$,this.name="NoResponders"}}Gm1.NoRespondersError=L50;class D50 extends Error{operation;subject;queue;constructor($,Z,X,Q,Y){super($,Y);this.name="PermissionViolationError",this.operation=Z,this.subject=X,this.queue=Q}static parse($){if(($?$.toLowerCase():"").indexOf("permissions violation")===-1)return null;let X="publish",Q="",Y=void 0,G=$.match(/(Publish|Subscription) to "(\S+)"/);if(G){if(X=G[1].toLowerCase(),Q=G[2],X==="subscription"){let J=$.match(/using queue "(\S+)"/);if(J)Y=J[1]}}return new D50($,X,Q,Y)}}Gm1.PermissionViolationError=D50;Gm1.errors={AuthorizationError:O50,ClosedConnectionError:lc0,ConnectionError:mc0,DrainingConnectionError:dc0,InvalidArgumentError:w50,InvalidOperationError:cc0,InvalidSubjectError:uc0,NoRespondersError:L50,PermissionViolationError:D50,ProtocolError:ic0,RequestError:nc0,TimeoutError:pc0,UserAuthenticationExpiredError:B50}});var $J=_((Nm1)=>{Object.defineProperty(Nm1,"__esModule",{value:!0});Nm1.SimpleMutex=Nm1.Perf=void 0;Nm1.extend=Wg6;Nm1.render=Hg6;Nm1.timeout=Ng6;Nm1.delay=Ug6;Nm1.deadline=Fg6;Nm1.deferred=oc0;Nm1.debugDeferred=wg6;Nm1.shuffle=Bg6;Nm1.collect=Og6;Nm1.jitter=Hm1;Nm1.backoff=Lg6;Nm1.nanos=Dg6;Nm1.millis=Eg6;Nm1.randomToken=Pg6;var Kg6=VY(),tc0=CY();function Wg6($,...Z){for(let X=0;X<Z.length;X++){let Q=Z[X];Object.keys(Q).forEach(function(Y){$[Y]=Q[Y]})}return $}function Hg6($){return Kg6.TD.decode($).replace(/\n/g,"\u240A").replace(/\r/g,"\u240D")}function Ng6($,Z=!0){let X=Z?new tc0.TimeoutError:null,Q,Y,G=new Promise((J,K)=>{Q={cancel:()=>{if(Y)clearTimeout(Y)}},Y=setTimeout(()=>{if(X===null)K(new tc0.TimeoutError);else K(X)},$)});return Object.assign(G,Q)}function Ug6($=0){let Z,X=new Promise((Q)=>{let Y=setTimeout(()=>{Q()},$);Z={cancel:()=>{if(Y)clearTimeout(Y),Q()}}});return Object.assign(X,Z)}async function Fg6($,Z=1000){let X=oc0(),Q=setTimeout(()=>{X.reject(new tc0.TimeoutError)},Z);try{return await Promise.race([$,X])}finally{clearTimeout(Q)}}function oc0(){let $={},Z=new Promise((X,Q)=>{$={resolve:X,reject:Q}});return Object.assign(Z,$)}function wg6(){let $={},Z=new Promise((X,Q)=>{$={resolve:(Y)=>{console.trace("resolve",Y),X(Y)},reject:(Y)=>{console.trace("reject"),Q(Y)}}});return Object.assign(Z,$)}function Bg6($){for(let Z=$.length-1;Z>0;Z--){let X=Math.floor(Math.random()*(Z+1));[$[Z],$[X]]=[$[X],$[Z]]}return $}async function Og6($){let Z=[];for await(let X of $)Z.push(X);return Z}class Km1{timers;measures;constructor(){this.timers=new Map,this.measures=new Map}mark($){this.timers.set($,performance.now())}measure($,Z,X){let Q=this.timers.get(Z);if(Q===void 0)throw Error(`${Z} is not defined`);let Y=this.timers.get(X);if(Y===void 0)throw Error(`${X} is not defined`);this.measures.set($,Y-Q)}getEntries(){let $=[];return this.measures.forEach((Z,X)=>{$.push({name:X,duration:Z})}),$}}Nm1.Perf=Km1;class Wm1{max;current;waiting;constructor($=1){this.max=$,this.current=0,this.waiting=[]}lock(){if(this.current++,this.current<=this.max)return Promise.resolve();let $=oc0();return this.waiting.push($),$}unlock(){this.current--,this.waiting.pop()?.resolve()}}Nm1.SimpleMutex=Wm1;function Hm1($){if($===0)return 0;return Math.floor($/2+Math.random()*$)}function Lg6($=[0,250,250,500,500,3000,5000]){if(!Array.isArray($))$=[0,250,250,500,500,3000,5000];let Z=$.length-1;return{backoff(X){return Hm1(X>Z?$[Z]:$[X])}}}function Dg6($){return $*1e6}function Eg6($){return Math.floor($/1e6)}var zg6="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",JN=new Uint8Array(62);for(let $=0;$<62;$++)JN[$]=zg6.charCodeAt($);var jg6=218340105584896;function Pg6(){let $=Math.floor(Math.random()*jg6),Z=$%62,X=JN[Z];$=($-Z)/62,Z=$%62;let Q=JN[Z];$=($-Z)/62,Z=$%62;let Y=JN[Z];$=($-Z)/62,Z=$%62;let G=JN[Z];$=($-Z)/62,Z=$%62;let J=JN[Z];$=($-Z)/62,Z=$%62;let K=JN[Z];$=($-Z)/62,Z=$%62;let W=JN[Z];$=($-Z)/62;let H=JN[$];return String.fromCharCode(X,Q,Y,G,J,K,W,H)}});var Em1=_((Lm1)=>{Object.defineProperty(Lm1,"__esModule",{value:!0});Lm1.nuid=Lm1.NuidImpl=void 0;var yg6="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",iF=62,z50=12,Bm1=10,Fm1=33,gg6=333,wm1=z50+Bm1,ac0=new Uint8Array(iF);for(let $=0;$<iF;$++)ac0[$]=yg6.charCodeAt($);var E50=4294967296,Om1=BigInt(iF)**BigInt(Bm1),ed=Number(Om1/(1n<<32n)),rc0=Number(Om1%(1n<<32n));function hg6($){for(let Z=0;Z<$.length;Z++)$[Z]=Math.floor(Math.random()*256)}function ug6($){if(globalThis?.crypto?.getRandomValues)globalThis.crypto.getRandomValues($);else hg6($)}class sc0{buf;cbuf;seqHi;seqLo;inc;inited;constructor(){this.buf=new Uint8Array(wm1),this.cbuf=new Uint8Array(z50),this.inited=!1}init(){this.inited=!0,this.setPre(),this.initSeqAndInc(),this.fillSeq()}initSeqAndInc(){let $=0;do this.seqHi=Math.floor(Math.random()*(ed+1)),this.seqLo=Math.floor(Math.random()*E50);while($++<8&&this.seqHi===ed&&this.seqLo>=rc0);if(this.seqHi===ed&&this.seqLo>=rc0)this.seqLo=0;this.inc=Math.random()*(gg6-Fm1)+Fm1|0}setPre(){ug6(this.cbuf);for(let $=0;$<z50;$++)this.buf[$]=ac0[this.cbuf[$]%iF]}fillSeq(){let $=this.seqHi,Z=this.seqLo;for(let X=wm1-1;X>=z50;X--){let Q=Math.floor($/iF),G=($-Q*iF)*E50+Z,J=Math.floor(G/iF),K=G-J*iF;this.buf[X]=ac0[K],$=Q,Z=J}}next(){if(!this.inited)this.init();if(this.seqLo+=this.inc,this.seqLo>=E50)this.seqLo-=E50,this.seqHi+=1;if(this.seqHi>ed||this.seqHi===ed&&this.seqLo>=rc0)this.setPre(),this.initSeqAndInc();this.fillSeq();let $=this.buf;return String.fromCharCode($[0],$[1],$[2],$[3],$[4],$[5],$[6],$[7],$[8],$[9],$[10],$[11],$[12],$[13],$[14],$[15],$[16],$[17],$[18],$[19],$[20],$[21])}reset(){this.init()}}Lm1.NuidImpl=sc0;Lm1.nuid=new sc0});var Am1=_((jm1)=>{Object.defineProperty(jm1,"__esModule",{value:!0});jm1.nuid=jm1.Nuid=void 0;var zm1=Em1();jm1.Nuid=zm1.NuidImpl;jm1.nuid=zm1.nuid});var P50=_((j50)=>{Object.defineProperty(j50,"__esModule",{value:!0});j50.nuid=j50.Nuid=void 0;var Tm1=Am1();Object.defineProperty(j50,"Nuid",{enumerable:!0,get:function(){return Tm1.Nuid}});Object.defineProperty(j50,"nuid",{enumerable:!0,get:function(){return Tm1.nuid}})});var nF=_((Im1)=>{Object.defineProperty(Im1,"__esModule",{value:!0});Im1.DEFAULT_HOST=Im1.DEFAULT_PORT=Im1.Match=void 0;Im1.syncIterator=ng6;Im1.createInbox=pg6;var mg6=P50(),ig6=CY();Im1.Match={Exact:"exact",CanonicalMIME:"canonical",IgnoreCase:"insensitive"};function ng6($){let Z=$[Symbol.asyncIterator]();return{async next(){let X=await Z.next();if(X.done)return Promise.resolve(null);return Promise.resolve(X.value)}}}function pg6($=""){if($=$||"_INBOX",typeof $!=="string")throw TypeError("prefix must be a string");return $.split(".").forEach((Z)=>{if(Z==="*"||Z===">")throw ig6.InvalidArgumentError.format("prefix",`cannot have wildcards ('${$}')`)}),`${$}.${mg6.nuid.next()}`}Im1.DEFAULT_PORT=4222;Im1.DEFAULT_HOST="127.0.0.1"});var $m=_((km1)=>{Object.defineProperty(km1,"__esModule",{value:!0});km1.DataBuffer=void 0;var qm1=VY();class Mm1{buffers;byteLength;constructor(){this.buffers=[],this.byteLength=0}static concat(...$){let Z=0;for(let Y=0;Y<$.length;Y++)Z+=$[Y].length;let X=new Uint8Array(Z),Q=0;for(let Y=0;Y<$.length;Y++)X.set($[Y],Q),Q+=$[Y].length;return X}static fromAscii($){if(!$)$="";return qm1.TE.encode($)}static toAscii($){return qm1.TD.decode($)}reset(){this.buffers.length=0,this.byteLength=0}pack(){if(this.buffers.length>1){let $=new Uint8Array(this.byteLength),Z=0;for(let X=0;X<this.buffers.length;X++)$.set(this.buffers[X],Z),Z+=this.buffers[X].length;this.buffers.length=0,this.buffers.push($)}}shift(){if(this.buffers.length){let $=this.buffers.shift();if($)return this.byteLength-=$.length,$}return new Uint8Array(0)}drain($){if(this.buffers.length){this.pack();let Z=this.buffers.pop();if(Z){let X=this.byteLength;if($===void 0||$>X)$=X;let Q=Z.subarray(0,$);if(X>$)this.buffers.push(Z.subarray($));return this.byteLength=X-$,Q}}return new Uint8Array(0)}fill($,...Z){if($)this.buffers.push($),this.byteLength+=$.length;for(let X=0;X<Z.length;X++)if(Z[X]&&Z[X].length)this.buffers.push(Z[X]),this.byteLength+=Z[X].length}peek(){if(this.buffers.length)return this.pack(),this.buffers[0];return new Uint8Array(0)}size(){return this.byteLength}length(){return this.buffers.length}}km1.DataBuffer=Mm1});var zD=_((Cm1)=>{Object.defineProperty(Cm1,"__esModule",{value:!0});Cm1.LF=Cm1.CR=Cm1.CRLF=Cm1.CR_LF_LEN=Cm1.CR_LF=void 0;Cm1.setTransportFactory=Zh6;Cm1.defaultPort=Xh6;Cm1.getUrlParseFn=Qh6;Cm1.newTransport=Yh6;Cm1.getResolveFn=Gh6;Cm1.protoLen=Vm1;Cm1.extractProtocolMessage=Jh6;var sg6=VY(),eg6=nF(),$h6=$m(),_Y;function Zh6($){_Y=$}function Xh6(){return _Y!==void 0&&_Y.defaultPort!==void 0?_Y.defaultPort:eg6.DEFAULT_PORT}function Qh6(){return _Y!==void 0&&_Y.urlParseFn?_Y.urlParseFn:void 0}function Yh6(){if(!_Y||typeof _Y.factory!=="function")throw Error("transport fn is not set");return _Y.factory()}function Gh6(){return _Y!==void 0&&_Y.dnsResolveFn?_Y.dnsResolveFn:void 0}Cm1.CR_LF=`\r
1260
1260
  `;Cm1.CR_LF_LEN=Cm1.CR_LF.length;Cm1.CRLF=$h6.DataBuffer.fromAscii(Cm1.CR_LF);Cm1.CR=new Uint8Array(Cm1.CRLF)[0];Cm1.LF=new Uint8Array(Cm1.CRLF)[1];function Vm1($){for(let Z=0;Z<$.length;Z++){let X=Z+1;if($.byteLength>X&&$[Z]===Cm1.CR&&$[X]===Cm1.LF)return X+1}return 0}function Jh6($){let Z=Vm1($);if(Z>0){let Q=new Uint8Array($).slice(0,Z);return sg6.TD.decode(Q)}return""}});var Ql0=_((hm1)=>{Object.defineProperty(hm1,"__esModule",{value:!0});hm1.ipV4=bm1;hm1.isIP=Dh6;hm1.parseIP=ym1;var Zm=4,jD=16,A50=48,fm1=57,xm1=65,Oh6=70,vm1=97,Lh6=102,Xl0=16777215;function bm1($,Z,X,Q){let Y=new Uint8Array(jD);return[0,0,0,0,0,0,0,0,0,0,255,255].forEach((J,K)=>{Y[K]=J}),Y[12]=$,Y[13]=Z,Y[14]=X,Y[15]=Q,Y}function Dh6($){return ym1($)!==void 0}function ym1($){for(let Z=0;Z<$.length;Z++)switch($[Z]){case".":return gm1($);case":":return Eh6($)}return}function gm1($){let Z=new Uint8Array(Zm);for(let X=0;X<Zm;X++){if($.length===0)return;if(X>0){if($[0]!==".")return;$=$.substring(1)}let{n:Q,c:Y,ok:G}=zh6($);if(!G||Q>255)return;$=$.substring(Y),Z[X]=Q}return bm1(Z[0],Z[1],Z[2],Z[3])}function Eh6($){let Z=new Uint8Array(jD),X=-1;if($.length>=2&&$[0]===":"&&$[1]===":"){if(X=0,$=$.substring(2),$.length===0)return Z}let Q=0;while(Q<jD){let{n:Y,c:G,ok:J}=jh6($);if(!J||Y>65535)return;if(G<$.length&&$[G]==="."){if(X<0&&Q!=jD-Zm)return;if(Q+Zm>jD)return;let K=gm1($);if(K===void 0)return;Z[Q]=K[12],Z[Q+1]=K[13],Z[Q+2]=K[14],Z[Q+3]=K[15],$="",Q+=Zm;break}if(Z[Q]=Y>>8,Z[Q+1]=Y,Q+=2,$=$.substring(G),$.length===0)break;if($[0]!==":"||$.length==1)return;if($=$.substring(1),$[0]===":"){if(X>=0)return;if(X=Q,$=$.substring(1),$.length===0)break}}if($.length!==0)return;if(Q<jD){if(X<0)return;let Y=jD-Q;for(let G=Q-1;G>=X;G--)Z[G+Y]=Z[G];for(let G=X+Y-1;G>=X;G--)Z[G]=0}else if(X>=0)return;return Z}function zh6($){let Z=0,X=0;for(Z=0;Z<$.length&&A50<=$.charCodeAt(Z)&&$.charCodeAt(Z)<=fm1;Z++)if(X=X*10+($.charCodeAt(Z)-A50),X>=Xl0)return{n:Xl0,c:Z,ok:!1};if(Z===0)return{n:0,c:0,ok:!1};return{n:X,c:Z,ok:!0}}function jh6($){let Z=0,X=0;for(X=0;X<$.length;X++){if(A50<=$.charCodeAt(X)&&$.charCodeAt(X)<=fm1)Z*=16,Z+=$.charCodeAt(X)-A50;else if(vm1<=$.charCodeAt(X)&&$.charCodeAt(X)<=Lh6)Z*=16,Z+=$.charCodeAt(X)-vm1+10;else if(xm1<=$.charCodeAt(X)&&$.charCodeAt(X)<=Oh6)Z*=16,Z+=$.charCodeAt(X)-xm1+10;else break;if(Z>=Xl0)return{n:0,c:X,ok:!1}}if(X===0)return{n:0,c:X,ok:!1};return{n:Z,c:X,ok:!0}}});var Hl0=_((cm1)=>{Object.defineProperty(cm1,"__esModule",{value:!0});cm1.Servers=cm1.ServerImpl=void 0;cm1.isIPV4OrHostname=um1;cm1.hostPort=Wl0;var Yl0=zD(),Gl0=$J(),Jl0=Ql0(),Ih6=nF(),Rh6=CY();function um1($){if($.indexOf("[")!==-1||$.indexOf("::")!==-1)return!1;if($.indexOf(".")!==-1)return!0;if($.split(":").length<=2)return!0;return!1}function Kl0($){return!um1($)}function qh6($){let X=$.toUpperCase().indexOf("::FFFF:");if(X!==-1&&$.indexOf(".")!==-1){let Q=$.substring(X+7);return Q=Q.replace("[",""),Q.replace("]","")}return $}function Wl0($){if($=$.trim(),$.match(/^(.*:\/\/)(.*)/m))$=$.replace(/^(.*:\/\/)(.*)/gm,"$2");if($=qh6($),Kl0($)&&$.indexOf("[")===-1)$=`[${$}]`;let Z=Kl0($)?$.match(/(]:)(\d+)/):$.match(/(:)(\d+)/),X=Z&&Z.length===3&&Z[1]&&Z[2]?parseInt(Z[2]):Ih6.DEFAULT_PORT,Y=new URL(`${X===80?"https":"http"}://${$}`);Y.port=`${X}`;let G=Y.hostname;if(G.charAt(0)==="[")G=G.substring(1,G.length-1);return{listen:Y.host,hostname:G,port:X}}class kf{src;listen;hostname;port;didConnect;reconnects;lastConnect;gossiped;tlsName;resolves;constructor($,Z=!1){this.src=$,this.tlsName="";let X=Wl0($);this.listen=X.listen,this.hostname=X.hostname,this.port=X.port,this.didConnect=!1,this.reconnects=0,this.lastConnect=0,this.gossiped=Z}toString(){return this.listen}async resolve($){if(!$.fn||$.resolve===!1)return[this];let Z=[];if((0,Jl0.isIP)(this.hostname))return[this];else{let X=await $.fn(this.hostname);if($.debug)console.log(`resolve ${this.hostname} = ${X.join(",")}`);for(let Q of X){let Y=this.port===80?"https":"http",G=new URL(`${Y}://${Kl0(Q)?"["+Q+"]":Q}`);G.port=`${this.port}`;let J=new kf(G.host,!1);J.tlsName=this.hostname,Z.push(J)}}if($.randomize)(0,Gl0.shuffle)(Z);return this.resolves=Z,Z}}cm1.ServerImpl=kf;class T50{firstSelect;servers;currentServer;tlsName;randomize;constructor($={}){this.firstSelect=!0,this.servers=[],this.tlsName="",this.randomize=$.randomize||!1}setServers($){if(!Array.isArray($)||$.length===0)throw Rh6.InvalidArgumentError.format("servers","cannot be empty");let Z=(0,Yl0.getUrlParseFn)(),X=new Map;for(let Y of this.servers)X.set(Y.listen,Y);let Q=[];for(let Y of $){Y=Z?Z(Y):Y;let{listen:G}=Wl0(Y),J=X.get(G);if(J)J.gossiped=!1,Q.push(J);else Q.push(new kf(Y))}if(this.randomize)(0,Gl0.shuffle)(Q);if(this.servers=Q,this.currentServer===void 0||!Q.includes(this.currentServer))this.currentServer=Q[0],this.firstSelect=!0}clear(){this.servers.length=0}updateTLSName(){let $=this.getCurrentServer();if(!(0,Jl0.isIP)($.hostname))this.tlsName=$.hostname,this.servers.forEach((Z)=>{if(Z.gossiped)Z.tlsName=this.tlsName})}getCurrentServer(){return this.currentServer}addServer($,Z=!1){let X=(0,Yl0.getUrlParseFn)();$=X?X($):$;let Q=new kf($,Z);if((0,Jl0.isIP)(Q.hostname))Q.tlsName=this.tlsName;this.servers.push(Q)}selectServer(){if(this.firstSelect)return this.firstSelect=!1,this.currentServer;let $=this.servers.shift();if($)this.servers.push($),this.currentServer=$;return $}removeCurrentServer(){this.removeServer(this.currentServer)}removeServer($){if($){let Z=this.servers.indexOf($);this.servers.splice(Z,1)}}snapshot(){return T50.freezeAll(this.servers)}snapshotForHandler(){let $=this.currentServer;if(!$)return this.snapshot();let Z=this.servers.indexOf($);if(Z<=0)return this.snapshot();return T50.freezeAll([$,...this.servers.slice(0,Z),...this.servers.slice(Z+1)])}static freezeAll($){return $.map((Z)=>Object.freeze({hostname:Z.hostname,port:Z.port,listen:Z.listen,src:Z.src,tlsName:Z.tlsName,reconnects:Z.reconnects,lastConnect:Z.lastConnect,gossiped:Z.gossiped,didConnect:Z.didConnect}))}find($){return this.servers.find((Z)=>Z.listen===$.listen)}setCurrent($){this.currentServer=$}length(){return this.servers.length}next(){return this.servers.length?this.servers[0]:void 0}getServers(){return this.servers}update($,Z){let X=[],Q=[],Y=(0,Yl0.getUrlParseFn)(),G=new Map;if($.connect_urls&&$.connect_urls.length>0)$.connect_urls.forEach((K)=>{K=Y?Y(K,Z):K;let W=new kf(K,!0);G.set(K,W)});let J=[];if(this.servers.forEach((K,W)=>{let H=K.listen;if(K.gossiped&&this.currentServer.listen!==H&&G.get(H)===void 0)J.push(W);G.delete(H)}),J.reverse(),J.forEach((K)=>{let W=this.servers.splice(K,1);Q=Q.concat(W[0].listen)}),G.forEach((K,W)=>{this.servers.push(K),X.push(W)}),this.randomize&&X.length>0){let K=this.currentServer,W=this.servers.filter((H)=>H!==K);(0,Gl0.shuffle)(W),this.servers=K?[K,...W]:W}return{added:X,deleted:Q}}}cm1.Servers=T50});var I50=_((im1)=>{Object.defineProperty(im1,"__esModule",{value:!0});im1.QueuedIteratorImpl=void 0;var Nl0=$J(),dm1=CY();class mm1{inflight;processed;received;noIterator;iterClosed;done;signal;yields;filtered;pendingFiltered;ctx;_data;err;time;profile;yielding;didBreak;constructor(){this.inflight=0,this.filtered=0,this.pendingFiltered=0,this.processed=0,this.received=0,this.noIterator=!1,this.done=!1,this.signal=(0,Nl0.deferred)(),this.yields=[],this.iterClosed=(0,Nl0.deferred)(),this.time=0,this.yielding=!1,this.didBreak=!1,this.profile=!1}[Symbol.asyncIterator](){return this.iterate()}push($){if(this.done)return;if(this.didBreak){if(typeof $==="function"){let Z=$;try{Z()}catch(X){}}return}if(typeof $==="function")this.pendingFiltered++;this.yields.push($),this.signal.resolve()}async*iterate(){if(this.noIterator)throw new dm1.InvalidOperationError("iterator cannot be used when a callback is registered");if(this.yielding)throw new dm1.InvalidOperationError("iterator is already yielding");this.yielding=!0;try{while(!0){if(this.yields.length===0)await this.signal;if(this.err)throw this.err;let $=this.yields;this.inflight=$.length,this.yields=[];for(let Z=0;Z<$.length;Z++){if(typeof $[Z]==="function"){this.pendingFiltered--;let Q=$[Z];try{Q()}catch(Y){throw Y}if(this.err)throw this.err;continue}this.processed++,this.inflight--;let X=this.profile?Date.now():0;yield $[Z],this.time=this.profile?Date.now()-X:0}if(this.done)break;else if(this.yields.length===0)$.length=0,this.yields=$,this.signal=(0,Nl0.deferred)()}}finally{this.didBreak=!0,this.stop()}}stop($){if(this.done)return;this.err=$,this.done=!0,this.signal.resolve(),this.iterClosed.resolve($)}getProcessed(){return this.noIterator?this.received:this.processed}getPending(){return this.yields.length+this.inflight-this.pendingFiltered}getReceived(){return this.received-this.filtered}}im1.QueuedIteratorImpl=mm1});var Ul0=_((om1)=>{Object.defineProperty(om1,"__esModule",{value:!0});om1.MuxSubscription=void 0;var Vh6=nF(),pm1=CY();class tm1{baseInbox;reqs;constructor(){this.reqs=new Map}size(){return this.reqs.size}init($){return this.baseInbox=`${(0,Vh6.createInbox)($)}.`,this.baseInbox}add($){if(!isNaN($.received))$.received=0;this.reqs.set($.token,$)}get($){return this.reqs.get($)}cancel($){this.reqs.delete($.token)}getToken($){let Z=$.subject||"";if(Z.indexOf(this.baseInbox)===0)return Z.substring(this.baseInbox.length);return null}all(){return Array.from(this.reqs.values())}handleError($,Z){if($)return this.all().forEach((X)=>{X.resolver(Z,{})}),!0;if(Z.operation==="publish"){let X=this.all().find((Q)=>{return Q.requestSubject===Z.subject});if(X)return X.resolver(Z,{}),!0}return!1}dispatcher(){return($,Z)=>{let X=this.getToken(Z);if(X){let Q=this.get(X);if(Q){if($===null)$=Z?.data?.length===0&&Z.headers?.code===503?new pm1.NoRespondersError(Q.requestSubject):null;Q.resolver($,Z)}}}}close(){let $=new pm1.RequestError("connection closed");this.reqs.forEach((Z)=>{Z.resolver($,{})})}}om1.MuxSubscription=tm1});var Fl0=_((sm1)=>{Object.defineProperty(sm1,"__esModule",{value:!0});sm1.Heartbeat=void 0;var Ch6=$J();class am1{ph;interval;maxOut;timer;pendings;constructor($,Z,X){this.ph=$,this.interval=Z,this.maxOut=X,this.pendings=[]}start(){this.cancel(),this._schedule()}cancel($){if(this.timer)clearTimeout(this.timer),this.timer=void 0;if(this._reset(),$)this.ph.disconnect()}_schedule(){this.timer=setTimeout(()=>{if(this.ph.dispatchStatus({type:"ping",pendingPings:this.pendings.length+1}),this.pendings.length===this.maxOut){this.cancel(!0);return}let $=(0,Ch6.deferred)();this.ph.flush($).then(()=>{this._reset()}).catch(()=>{this.cancel()}),this.pendings.push($),this._schedule()},this.interval)}_reset(){this.pendings=this.pendings.filter(($)=>{return $.resolve(),!1})}}sm1.Heartbeat=am1});var Ol0=_((Qi1)=>{Object.defineProperty(Qi1,"__esModule",{value:!0});Qi1.DenoBuffer=Qi1.MAX_SIZE=Qi1.AssertionError=void 0;Qi1.assert=Zi1;Qi1.concat=Xi1;Qi1.append=xh6;Qi1.readAll=vh6;Qi1.writeAll=fh6;var _h6=VY();class wl0 extends Error{constructor($){super($);this.name="AssertionError"}}Qi1.AssertionError=wl0;function Zi1($,Z="Assertion failed."){if(!$)throw new wl0(Z)}var $i1=32768;Qi1.MAX_SIZE=4294967294;function R50($,Z,X=0){let Q=Z.byteLength-X;if($.byteLength>Q)$=$.subarray(0,Q);return Z.set($,X),$.byteLength}function Xi1($,Z){if($===void 0&&Z===void 0)return new Uint8Array(0);if($===void 0)return Z;if(Z===void 0)return $;let X=new Uint8Array($.length+Z.length);return X.set($,0),X.set(Z,$.length),X}function xh6($,Z){return Xi1($,Uint8Array.of(Z))}class Bl0{_buf;_off;constructor($){if(this._off=0,$==null){this._buf=new Uint8Array(0);return}this._buf=new Uint8Array($)}bytes($={copy:!0}){if($.copy===!1)return this._buf.subarray(this._off);return this._buf.slice(this._off)}empty(){return this._buf.byteLength<=this._off}get length(){return this._buf.byteLength-this._off}get capacity(){return this._buf.buffer.byteLength}truncate($){if($===0){this.reset();return}if($<0||$>this.length)throw Error("bytes.Buffer: truncation out of range");this._reslice(this._off+$)}reset(){this._reslice(0),this._off=0}_tryGrowByReslice($){let Z=this._buf.byteLength;if($<=this.capacity-Z)return this._reslice(Z+$),Z;return-1}_reslice($){Zi1($<=this._buf.buffer.byteLength),this._buf=new Uint8Array(this._buf.buffer,0,$)}readByte(){let $=new Uint8Array(1);if(this.read($))return $[0];return null}read($){if(this.empty()){if(this.reset(),$.byteLength===0)return 0;return null}let Z=R50(this._buf.subarray(this._off),$);return this._off+=Z,Z}writeByte($){return this.write(Uint8Array.of($))}writeString($){return this.write(_h6.TE.encode($))}write($){let Z=this._grow($.byteLength);return R50($,this._buf,Z)}_grow($){let Z=this.length;if(Z===0&&this._off!==0)this.reset();let X=this._tryGrowByReslice($);if(X>=0)return X;let Q=this.capacity;if($<=Math.floor(Q/2)-Z)R50(this._buf.subarray(this._off),this._buf);else if(Q+$>Qi1.MAX_SIZE)throw Error("The buffer cannot be grown beyond the maximum size.");else{let Y=new Uint8Array(Math.min(2*Q+$,Qi1.MAX_SIZE));R50(this._buf.subarray(this._off),Y),this._buf=Y}return this._off=0,this._reslice(Math.min(Z+$,Qi1.MAX_SIZE)),Z}grow($){if($<0)throw Error("Buffer._grow: negative count");let Z=this._grow($);this._reslice(Z)}readFrom($){let Z=0,X=new Uint8Array($i1);while(!0){let Q=this.capacity-this.length<$i1,Y=Q?X:new Uint8Array(this._buf.buffer,this.length),G=$.read(Y);if(G===null)return Z;if(Q)this.write(Y.subarray(0,G));else this._reslice(this.length+G);Z+=G}}}Qi1.DenoBuffer=Bl0;function vh6($){let Z=new Bl0;return Z.readFrom($),Z.bytes()}function fh6($,Z){let X=0;while(X<Z.length)X+=$.write(Z.subarray(X))}});var El0=_((Wi1)=>{Object.defineProperty(Wi1,"__esModule",{value:!0});Wi1.cc=Wi1.State=Wi1.Parser=Wi1.Kind=void 0;Wi1.describe=lh6;var Ll0=Ol0(),Dl0=VY();Wi1.Kind={OK:0,ERR:1,MSG:2,INFO:3,PING:4,PONG:5};function lh6($){let Z,X="";switch($.kind){case Wi1.Kind.MSG:Z="MSG";break;case Wi1.Kind.OK:Z="OK";break;case Wi1.Kind.ERR:Z="ERR",X=Dl0.TD.decode($.data);break;case Wi1.Kind.PING:Z="PING";break;case Wi1.Kind.PONG:Z="PONG";break;case Wi1.Kind.INFO:Z="INFO",X=Dl0.TD.decode($.data)}return`${Z}: ${X}`}function Gi1(){let $={};return $.sid=-1,$.hdr=-1,$.size=-1,$}var Ji1=48,dh6=57,Sf=67108864;class Ki1{dispatcher;state;as;drop;hdr;ma;argBuf;msgBuf;constructor($){this.dispatcher=$,this.state=Wi1.State.OP_START,this.as=0,this.drop=0,this.hdr=0}parse($){let Z;for(Z=0;Z<$.length;Z++){let X=$[Z];switch(this.state){case Wi1.State.OP_START:switch(X){case Wi1.cc.M:case Wi1.cc.m:this.state=Wi1.State.OP_M,this.hdr=-1,this.ma=Gi1();break;case Wi1.cc.H:case Wi1.cc.h:this.state=Wi1.State.OP_H,this.hdr=0,this.ma=Gi1();break;case Wi1.cc.P:case Wi1.cc.p:this.state=Wi1.State.OP_P;break;case Wi1.cc.PLUS:this.state=Wi1.State.OP_PLUS;break;case Wi1.cc.MINUS:this.state=Wi1.State.OP_MINUS;break;case Wi1.cc.I:case Wi1.cc.i:this.state=Wi1.State.OP_I;break;default:throw this.fail($.subarray(Z))}break;case Wi1.State.OP_H:switch(X){case Wi1.cc.M:case Wi1.cc.m:this.state=Wi1.State.OP_M;break;default:throw this.fail($.subarray(Z))}break;case Wi1.State.OP_M:switch(X){case Wi1.cc.S:case Wi1.cc.s:this.state=Wi1.State.OP_MS;break;default:throw this.fail($.subarray(Z))}break;case Wi1.State.OP_MS:switch(X){case Wi1.cc.G:case Wi1.cc.g:this.state=Wi1.State.OP_MSG;break;default:throw this.fail($.subarray(Z))}break;case Wi1.State.OP_MSG:switch(X){case Wi1.cc.SPACE:case Wi1.cc.TAB:this.state=Wi1.State.OP_MSG_SPC;break;default:throw this.fail($.subarray(Z))}break;case Wi1.State.OP_MSG_SPC:switch(X){case Wi1.cc.SPACE:case Wi1.cc.TAB:continue;default:this.state=Wi1.State.MSG_ARG,this.as=Z}break;case Wi1.State.MSG_ARG:switch(X){case Wi1.cc.CR:this.drop=1;break;case Wi1.cc.NL:{let Q=this.argBuf?this.argBuf.bytes():$.subarray(this.as,Z-this.drop);this.processMsgArgs(Q),this.drop=0,this.as=Z+1,this.state=Wi1.State.MSG_PAYLOAD,Z=this.as+this.ma.size-1;break}default:if(this.argBuf)this.argBuf.writeByte(X)}break;case Wi1.State.MSG_PAYLOAD:if(this.msgBuf)if(this.msgBuf.length>=this.ma.size){let Q=this.msgBuf.bytes({copy:!1});this.dispatcher.push({kind:Wi1.Kind.MSG,msg:this.ma,data:Q}),this.argBuf=void 0,this.msgBuf=void 0,this.state=Wi1.State.MSG_END}else{let Q=this.ma.size-this.msgBuf.length,Y=$.length-Z;if(Y<Q)Q=Y;if(Q>0)this.msgBuf.write($.subarray(Z,Z+Q)),Z=Z+Q-1;else this.msgBuf.writeByte(X)}else if(Z-this.as>=this.ma.size)this.dispatcher.push({kind:Wi1.Kind.MSG,msg:this.ma,data:$.subarray(this.as,Z)}),this.argBuf=void 0,this.msgBuf=void 0,this.state=Wi1.State.MSG_END;break;case Wi1.State.MSG_END:switch(X){case Wi1.cc.NL:this.drop=0,this.as=Z+1,this.state=Wi1.State.OP_START;break;default:continue}break;case Wi1.State.OP_PLUS:switch(X){case Wi1.cc.O:case Wi1.cc.o:this.state=Wi1.State.OP_PLUS_O;break;default:throw this.fail($.subarray(Z))}break;case Wi1.State.OP_PLUS_O:switch(X){case Wi1.cc.K:case Wi1.cc.k:this.state=Wi1.State.OP_PLUS_OK;break;default:throw this.fail($.subarray(Z))}break;case Wi1.State.OP_PLUS_OK:switch(X){case Wi1.cc.NL:this.dispatcher.push({kind:Wi1.Kind.OK}),this.drop=0,this.state=Wi1.State.OP_START;break}break;case Wi1.State.OP_MINUS:switch(X){case Wi1.cc.E:case Wi1.cc.e:this.state=Wi1.State.OP_MINUS_E;break;default:throw this.fail($.subarray(Z))}break;case Wi1.State.OP_MINUS_E:switch(X){case Wi1.cc.R:case Wi1.cc.r:this.state=Wi1.State.OP_MINUS_ER;break;default:throw this.fail($.subarray(Z))}break;case Wi1.State.OP_MINUS_ER:switch(X){case Wi1.cc.R:case Wi1.cc.r:this.state=Wi1.State.OP_MINUS_ERR;break;default:throw this.fail($.subarray(Z))}break;case Wi1.State.OP_MINUS_ERR:switch(X){case Wi1.cc.SPACE:case Wi1.cc.TAB:this.state=Wi1.State.OP_MINUS_ERR_SPC;break;default:throw this.fail($.subarray(Z))}break;case Wi1.State.OP_MINUS_ERR_SPC:switch(X){case Wi1.cc.SPACE:case Wi1.cc.TAB:continue;default:this.state=Wi1.State.MINUS_ERR_ARG,this.as=Z}break;case Wi1.State.MINUS_ERR_ARG:switch(X){case Wi1.cc.CR:this.drop=1;break;case Wi1.cc.NL:{let Q;if(this.argBuf)Q=this.argBuf.bytes(),this.argBuf=void 0;else Q=$.subarray(this.as,Z-this.drop);this.dispatcher.push({kind:Wi1.Kind.ERR,data:Q}),this.drop=0,this.as=Z+1,this.state=Wi1.State.OP_START;break}default:if(this.argBuf)this.argBuf.write(Uint8Array.of(X))}break;case Wi1.State.OP_P:switch(X){case Wi1.cc.I:case Wi1.cc.i:this.state=Wi1.State.OP_PI;break;case Wi1.cc.O:case Wi1.cc.o:this.state=Wi1.State.OP_PO;break;default:throw this.fail($.subarray(Z))}break;case Wi1.State.OP_PO:switch(X){case Wi1.cc.N:case Wi1.cc.n:this.state=Wi1.State.OP_PON;break;default:throw this.fail($.subarray(Z))}break;case Wi1.State.OP_PON:switch(X){case Wi1.cc.G:case Wi1.cc.g:this.state=Wi1.State.OP_PONG;break;default:throw this.fail($.subarray(Z))}break;case Wi1.State.OP_PONG:switch(X){case Wi1.cc.NL:this.dispatcher.push({kind:Wi1.Kind.PONG}),this.drop=0,this.state=Wi1.State.OP_START;break}break;case Wi1.State.OP_PI:switch(X){case Wi1.cc.N:case Wi1.cc.n:this.state=Wi1.State.OP_PIN;break;default:throw this.fail($.subarray(Z))}break;case Wi1.State.OP_PIN:switch(X){case Wi1.cc.G:case Wi1.cc.g:this.state=Wi1.State.OP_PING;break;default:throw this.fail($.subarray(Z))}break;case Wi1.State.OP_PING:switch(X){case Wi1.cc.NL:this.dispatcher.push({kind:Wi1.Kind.PING}),this.drop=0,this.state=Wi1.State.OP_START;break}break;case Wi1.State.OP_I:switch(X){case Wi1.cc.N:case Wi1.cc.n:this.state=Wi1.State.OP_IN;break;default:throw this.fail($.subarray(Z))}break;case Wi1.State.OP_IN:switch(X){case Wi1.cc.F:case Wi1.cc.f:this.state=Wi1.State.OP_INF;break;default:throw this.fail($.subarray(Z))}break;case Wi1.State.OP_INF:switch(X){case Wi1.cc.O:case Wi1.cc.o:this.state=Wi1.State.OP_INFO;break;default:throw this.fail($.subarray(Z))}break;case Wi1.State.OP_INFO:switch(X){case Wi1.cc.SPACE:case Wi1.cc.TAB:this.state=Wi1.State.OP_INFO_SPC;break;default:throw this.fail($.subarray(Z))}break;case Wi1.State.OP_INFO_SPC:switch(X){case Wi1.cc.SPACE:case Wi1.cc.TAB:continue;default:this.state=Wi1.State.INFO_ARG,this.as=Z}break;case Wi1.State.INFO_ARG:switch(X){case Wi1.cc.CR:this.drop=1;break;case Wi1.cc.NL:{let Q;if(this.argBuf)Q=this.argBuf.bytes(),this.argBuf=void 0;else Q=$.subarray(this.as,Z-this.drop);this.dispatcher.push({kind:Wi1.Kind.INFO,data:Q}),this.drop=0,this.as=Z+1,this.state=Wi1.State.OP_START;break}default:if(this.argBuf)this.argBuf.writeByte(X)}break;default:throw this.fail($.subarray(Z))}}if((this.state===Wi1.State.MSG_ARG||this.state===Wi1.State.MINUS_ERR_ARG||this.state===Wi1.State.INFO_ARG)&&!this.argBuf)this.argBuf=new Ll0.DenoBuffer($.subarray(this.as,Z-this.drop));if(this.state===Wi1.State.MSG_PAYLOAD&&!this.msgBuf){if(!this.argBuf)this.cloneMsgArg();this.msgBuf=new Ll0.DenoBuffer($.subarray(this.as))}}cloneMsgArg(){let $=this.ma.subject.length,Z=this.ma.reply?this.ma.reply.length:0,X=new Uint8Array($+Z);if(X.set(this.ma.subject),this.ma.reply)X.set(this.ma.reply,$);if(this.argBuf=new Ll0.DenoBuffer(X),this.ma.subject=X.subarray(0,$),this.ma.reply)this.ma.reply=X.subarray($)}processMsgArgs($){if(this.hdr>=0)return this.processHeaderMsgArgs($);let Z=[],X=-1;for(let Q=0;Q<$.length;Q++)switch($[Q]){case Wi1.cc.SPACE:case Wi1.cc.TAB:case Wi1.cc.CR:case Wi1.cc.NL:if(X>=0)Z.push($.subarray(X,Q)),X=-1;break;default:if(X<0)X=Q}if(X>=0)Z.push($.subarray(X));switch(Z.length){case 3:this.ma.subject=Z[0],this.ma.sid=this.protoParseInt(Z[1]),this.ma.reply=void 0,this.ma.size=this.protoParseInt(Z[2],Sf);break;case 4:this.ma.subject=Z[0],this.ma.sid=this.protoParseInt(Z[1]),this.ma.reply=Z[2],this.ma.size=this.protoParseInt(Z[3],Sf);break;default:throw this.fail($,"processMsgArgs Parse Error")}if(this.ma.sid<0)throw this.fail($,"processMsgArgs Bad or Missing Sid Error");if(this.ma.size<0)throw this.fail($,"processMsgArgs Bad or Missing Size Error")}fail($,Z=""){if(!Z)Z=`parse error [${this.state}]`;else Z=`${Z} [${this.state}]`;return Error(`${Z}: ${Dl0.TD.decode($)}`)}processHeaderMsgArgs($){let Z=[],X=-1;for(let Q=0;Q<$.length;Q++)switch($[Q]){case Wi1.cc.SPACE:case Wi1.cc.TAB:case Wi1.cc.CR:case Wi1.cc.NL:if(X>=0)Z.push($.subarray(X,Q)),X=-1;break;default:if(X<0)X=Q}if(X>=0)Z.push($.subarray(X));switch(Z.length){case 4:this.ma.subject=Z[0],this.ma.sid=this.protoParseInt(Z[1]),this.ma.reply=void 0,this.ma.hdr=this.protoParseInt(Z[2],Sf),this.ma.size=this.protoParseInt(Z[3],Sf);break;case 5:this.ma.subject=Z[0],this.ma.sid=this.protoParseInt(Z[1]),this.ma.reply=Z[2],this.ma.hdr=this.protoParseInt(Z[3],Sf),this.ma.size=this.protoParseInt(Z[4],Sf);break;default:throw this.fail($,"processHeaderMsgArgs Parse Error")}if(this.ma.sid<0)throw this.fail($,"processHeaderMsgArgs Bad or Missing Sid Error");if(this.ma.hdr<0||this.ma.hdr>this.ma.size)throw this.fail($,"processHeaderMsgArgs Bad or Missing Header Size Error");if(this.ma.size<0)throw this.fail($,"processHeaderMsgArgs Bad or Missing Size Error")}protoParseInt($,Z){if($.length===0||$.length>15)return-1;let X=0;for(let Q=0;Q<$.length;Q++){if($[Q]<Ji1||$[Q]>dh6)return-1;X=X*10+($[Q]-Ji1)}return Z!==void 0&&X>Z?-1:X}}Wi1.Parser=Ki1;Wi1.State={OP_START:0,OP_PLUS:1,OP_PLUS_O:2,OP_PLUS_OK:3,OP_MINUS:4,OP_MINUS_E:5,OP_MINUS_ER:6,OP_MINUS_ERR:7,OP_MINUS_ERR_SPC:8,MINUS_ERR_ARG:9,OP_M:10,OP_MS:11,OP_MSG:12,OP_MSG_SPC:13,MSG_ARG:14,MSG_PAYLOAD:15,MSG_END:16,OP_H:17,OP_P:18,OP_PI:19,OP_PIN:20,OP_PING:21,OP_PO:22,OP_PON:23,OP_PONG:24,OP_I:25,OP_IN:26,OP_INF:27,OP_INFO:28,OP_INFO_SPC:29,INFO_ARG:30};Wi1.cc={CR:13,E:69,e:101,F:70,f:102,G:71,g:103,H:72,h:104,I:73,i:105,K:75,k:107,M:77,m:109,MINUS:45,N:78,n:110,NL:10,O:79,o:111,P:80,p:112,PLUS:43,R:82,r:114,S:83,s:115,SPACE:32,TAB:9}});var k50=_((Ni1)=>{Object.defineProperty(Ni1,"__esModule",{value:!0});Ni1.MsgHdrsImpl=void 0;Ni1.canonicalMIMEHeaderKey=jl0;Ni1.headers=nh6;var Hi1=VY(),ZJ=nF(),M50=CY();function jl0($){let N=!0,U=Array($.length);for(let F=0;F<$.length;F++){let w=$.charCodeAt(F);if(w===58||w<33||w>126)throw M50.InvalidArgumentError.format("header",`'${$[F]}' is not a valid character in a header name`);if(N&&97<=w&&w<=122)w-=32;else if(!N&&65<=w&&w<=90)w+=32;U[F]=w,N=w==45}return String.fromCharCode(...U)}function nh6($=0,Z=""){if($===0&&Z!=="")throw M50.InvalidArgumentError.format("code","is required");else if($>0&&Z==="")throw M50.InvalidArgumentError.format("description","is required");return new Vf($,Z)}var zl0="NATS/1.0";class Vf{_code;headers;_description;constructor($=0,Z=""){this._code=$,this._description=Z,this.headers=new Map}[Symbol.iterator](){return this.headers.entries()}size(){return this.headers.size}equals($){if($&&this.headers.size===$.headers.size&&this._code===$._code){for(let[Z,X]of this.headers){let Q=$.values(Z);if(X.length!==Q.length)return!1;let Y=[...X].sort(),G=[...Q].sort();for(let J=0;J<Y.length;J++)if(Y[J]!==G[J])return!1}return!0}return!1}static decode($){let Z=new Vf,Q=Hi1.TD.decode($).split(`\r
1261
1261
  `),Y=Q[0];if(Y!==zl0){let G=Y.replace(zl0,"").trim();if(G.length>0){if(Z._code=parseInt(G,10),isNaN(Z._code))Z._code=0;let J=Z._code.toString();G=G.replace(J,""),Z._description=G.trim()}}if(Q.length>=1)Q.slice(1).map((G)=>{if(G){let J=G.indexOf(":");if(J>-1){let K=G.slice(0,J),W=G.slice(J+1).trim();Z.append(K,W)}}});return Z}toString(){if(this.headers.size===0&&this._code===0)return"";let $=zl0;if(this._code>0&&this._description!=="")$+=` ${this._code} ${this._description}`;for(let[Z,X]of this.headers)for(let Q=0;Q<X.length;Q++)$=`${$}\r
1262
1262
  ${Z}: ${X[Q]}`;return`${$}\r
@@ -2240,7 +2240,7 @@ Keep both indexes concise \u2014 a curated list of durable facts and one-line po
2240
2240
  - \`org/public/<set>/\` \u2014 curated read-only skill sets, mounted here. Your skills are listed in the <available-skills> catalog; load one with the \`skill\` tool before applying it.
2241
2241
  - \`org/upload/\` \u2014 files the user attached to this conversation are already here; read them directly (no copy step needed).
2242
2242
  - \`org/output/\` \u2014 write final deliverables here; they are shared back to the organization under this run's folder.
2243
- </organization-filesystem>`}var UB=O(()=>{hE();Ua0()});function Fa0($){let Z=new Map;for(let Q of $){let Y=Z.get(Q.message_id);if(Y)Y.push(Q);else Z.set(Q.message_id,[Q])}let X=[];for(let[Q,Y]of Z){let G=[...Y].sort((K,W)=>K.seq-W.seq),J=G[0];X.push({id:Q,role:J.role,parts:G.filter((K)=>K.kind!=="finish").map((K)=>K.payload&&typeof K.payload==="object"&&!Array.isArray(K.payload)?{...K.payload,created_at:K.created_at}:K.payload),created_at:J.created_at,status:G.some((K)=>K.kind==="finish")?"complete":"in_progress",metadata:G.find((K)=>K.kind==="finish")?.metadata??null})}return X.sort((Q,Y)=>Q.created_at<Y.created_at?-1:Q.created_at>Y.created_at?1:0),X}function pW4($,Z){let X=0,Q=0,Y=[$];while(Y.length>0){if(X>Z||++Q>iW4)return 1/0;let G=Y.pop();if(typeof G==="string")X+=G.length;else if(Array.isArray(G))for(let J of G)Y.push(J);else if(G!==null&&typeof G==="object")for(let J of Object.values(G))Y.push(J)}return X}function rW4($){return $.replace(tW4,"").replace(oW4,"\uFFFD")}function z38($){if(pW4($,E38)>E38)return JSON.stringify({truncated:!0,reason:"payload exceeds max stored size"});return JSON.stringify($,(Z,X)=>typeof X==="string"?rW4(X):X)}class wa0{db;constructor($){this.db=$}async serializeParts($){let Z=new Set,X=[],Q=new Map;for(let Y=0;Y<$.length;Y++){let G=$[Y];if(Z.has(G.id))continue;if(Z.add(G.id),Q.set(G.id,G),X.push({id:G.id,seq:G.seq,org_id:G.org_id,thread_id:G.thread_id,run_id:G.run_id,message_id:G.message_id,role:G.role,kind:G.kind,payload:z38(G.payload),payload_ref:G.payload_ref??null,metadata:G.metadata!=null?z38(G.metadata):null,created_at:G.created_at}),(Y+1)%nW4===0)await m8(0)}return{rows:X,partsById:Q}}async appendParts($){if($.length===0)return[];let{rows:Z,partsById:X}=await this.serializeParts($);return(await this.db.insertInto("thread_message_parts").values(Z).onConflict((Y)=>Y.column("id").doNothing()).returning("id").execute()).map((Y)=>X.get(Y.id)).filter((Y)=>Y!==void 0)}async replaceMessageParts($,Z,X){let{rows:Q}=await this.serializeParts(X);return await this.db.transaction().execute(async(Y)=>{let G=await Y.selectFrom("thread_message_parts").select((W)=>W.fn.min("created_at").as("created_at")).where("thread_id","=",$).where("message_id","=",Z).executeTakeFirst(),J=G?.created_at!=null?new Date(G.created_at).getTime():null,K=J!=null&&Number.isFinite(J)?Q.map((W)=>({...W,created_at:new Date(J+W.seq).toISOString()})):Q;if(await Y.deleteFrom("thread_message_parts").where("thread_id","=",$).where("message_id","=",Z).execute(),K.length>0)await Y.insertInto("thread_message_parts").values(K).onConflict((W)=>W.column("id").doUpdateSet((H)=>({seq:H.ref("excluded.seq"),role:H.ref("excluded.role"),kind:H.ref("excluded.kind"),payload:H.ref("excluded.payload"),payload_ref:H.ref("excluded.payload_ref"),metadata:H.ref("excluded.metadata"),created_at:H.ref("excluded.created_at")}))).execute()}),X}async deleteMessageParts($,Z){await this.db.deleteFrom("thread_message_parts").where("thread_id","=",$).where("message_id","=",Z).execute()}async maxCreatedAtMsForRun($){let Z=await this.db.selectFrom("thread_message_parts").select((Q)=>Q.fn.max("created_at").as("max")).where("run_id","=",$).executeTakeFirst();if(!Z?.max)return null;let X=new Date(Z.max).getTime();return Number.isFinite(X)?X:null}async maxCreatedAtMsForMessage($,Z){let X=await this.db.selectFrom("thread_message_parts").select((Y)=>Y.fn.max("created_at").as("max")).where("run_id","=",$).where("message_id","=",Z).executeTakeFirst();if(!X?.max)return null;let Q=new Date(X.max).getTime();return Number.isFinite(Q)?Q:null}async loadWindow($,Z){let X=await this.db.selectFrom("thread_message_parts").select(["message_id"]).where("thread_id","=",$).where("kind","=","finish").orderBy("created_at","desc").orderBy("id","desc").limit(Z.limit).offset(Z.offset??0).execute(),Q=await this.db.selectFrom("thread_message_parts").select((W)=>W.fn.count("id").as("count")).where("thread_id","=",$).where("kind","=","finish").executeTakeFirst(),Y=Number(Q?.count??0),G=Z.includeInFlight&&(Z.offset??0)===0?await this.db.selectFrom("thread_message_parts as p").select("p.message_id").distinct().where("p.thread_id","=",$).where((W)=>W.not(W.exists(W.selectFrom("thread_message_parts as f").select("f.id").whereRef("f.message_id","=","p.message_id").where("f.thread_id","=",$).where("f.kind","=","finish")))).execute():[],J=[...X.map((W)=>W.message_id),...G.map((W)=>W.message_id)];if(J.length===0)return{messages:[],total:Y};let K=await this.db.selectFrom("thread_message_parts").selectAll().where("thread_id","=",$).where("message_id","in",J).orderBy("seq","asc").execute();return{messages:Fa0(K),total:Y}}async backfillFromMessages($,Z){let X=[],Q=0;for(let Y of $)X.push({id:`${Z.runId}:${Y.id}:content`,seq:Q++,org_id:Z.orgId,thread_id:Z.threadId,run_id:Z.runId,message_id:Y.id,role:Y.role,kind:"text",payload:Y.parts,payload_ref:null,metadata:Y.metadata??null,created_at:Y.created_at}),X.push({id:`${Z.runId}:${Y.id}:finish`,seq:Q++,org_id:Z.orgId,thread_id:Z.threadId,run_id:Z.runId,message_id:Y.id,role:Y.role,kind:"finish",payload:{},payload_ref:null,metadata:null,created_at:Y.created_at});await this.appendParts(X)}}var E38=50000000,iW4=1e5,nW4=25,tW4,oW4;var j38=O(()=>{W5();tW4=/\u0000/g,oW4=/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g});import{sql as Xg}from"kysely";function uE($){return typeof $==="string"?$:$.toISOString()}function P38($){return $.replace(/[\\%_]/g,"\\$&")}class Ba0{inner;organizationId;constructor($,Z){this.inner=$;this.organizationId=Z}requireOrg(){if(!this.organizationId)throw Error("OrgScopedThreadStorage: thread operations require an authenticated organization");return this.organizationId}setOrganizationId($){this.organizationId=$}getOrganizationId(){return this.organizationId}create($){let Z=this.requireOrg();return this.inner.create({...$,organization_id:Z})}get($){return this.inner.get($,this.requireOrg())}update($,Z){return this.inner.update($,this.requireOrg(),Z)}pinRuntimeIfUnset($,Z){return this.inner.pinRuntimeIfUnset($,this.requireOrg(),Z)}completeRunIfNotCompleted($){return this.inner.completeRunIfNotCompleted($,this.requireOrg())}markRunFailed($,Z,X){return this.inner.markRunFailed($,this.requireOrg(),Z,X)}requiresActionIfInProgress($){return this.inner.requiresActionIfInProgress($,this.requireOrg())}forceFailIfInProgress($,Z){return this.inner.forceFailIfInProgress($,this.requireOrg(),Z)}delete($){return this.inner.delete($,this.requireOrg())}list($,Z){return this.inner.list(this.requireOrg(),$,Z)}listByTriggerIds($,Z){return this.inner.listByTriggerIds(this.requireOrg(),$,Z)}findLastUsedByVirtualMcpIds($){return this.inner.findLastUsedByVirtualMcpIds(this.requireOrg(),$)}bumpProgress($){return this.inner.bumpProgress($,this.requireOrg())}getProgress($){return this.inner.getProgress($,this.requireOrg())}listMessages($,Z){return this.inner.listMessages($,this.requireOrg(),Z)}listWithLastMessage($){return this.inner.listWithLastMessage(this.requireOrg(),$)}messageParts(){return this.inner.messageParts()}getRunFence($){return this.inner.getRunFence($)}setRunFence($,Z){return this.inner.setRunFence($,Z)}setCancelRequested($,Z){return this.inner.setCancelRequested($,Z)}getCancelRequestedAt($){return this.inner.getCancelRequestedAt($)}clearCancelRequested($){return this.inner.clearCancelRequested($)}bumpAckedSeq($,Z,X){return this.inner.bumpAckedSeq($,this.requireOrg(),Z,X)}getAckedSeq($){return this.inner.getAckedSeq($,this.requireOrg())}}class Qg{db;constructor($){this.db=$}messageParts(){return new wa0(this.db)}async create($){let Z=$.id??J4("thrd"),X=new Date().toISOString();if(!$.organization_id)throw Error("organization_id is required");if(!$.created_by)throw Error("created_by is required");if(!$.title)$.title=NB;let Q={id:Z,organization_id:$.organization_id,title:$.title,description:$.description??null,status:$.status??"completed",trigger_id:$.trigger_id??null,virtual_mcp_id:$.virtual_mcp_id??"",branch:$.branch??null,sandbox_provider_kind:$.sandbox_provider_kind??null,harness_id:$.harness_id??null,created_at:X,updated_at:X,created_by:$.created_by,updated_by:$.updated_by??null,...$.message_storage_version!==void 0?{message_storage_version:$.message_storage_version}:{},...$.metadata!==void 0?{metadata:JSON.stringify($.metadata)}:{}},Y=await this.db.insertInto("threads").values(Q).onConflict((J)=>J.column("id").doNothing()).returningAll().executeTakeFirst();if(Y)return{...this.threadFromDbRow(Y),isNew:!0};let G=await this.db.selectFrom("threads").selectAll().where("id","=",Z).where("organization_id","=",$.organization_id).executeTakeFirstOrThrow();return{...this.threadFromDbRow(G),isNew:!1}}async get($,Z){let X=await this.db.selectFrom("threads").selectAll().where("id","=",$).where("organization_id","=",Z).executeTakeFirst();return X?this.threadFromDbRow(X):null}async update($,Z,X){let Y={updated_at:new Date().toISOString()};if(X.title!==void 0)Y.title=X.title;if(X.description!==void 0)Y.description=X.description;if(X.updated_by!==void 0)Y.updated_by=X.updated_by;if(X.hidden!==void 0)Y.hidden=X.hidden;if(X.status!==void 0)Y.status=X.status;if(X.context_start_message_id!==void 0)Y.context_start_message_id=X.context_start_message_id;if(X.run_owner_pod!==void 0)Y.run_owner_pod=X.run_owner_pod;if(X.run_config!==void 0)Y.run_config=X.run_config?JSON.stringify(X.run_config):null;if(X.run_started_at!==void 0)Y.run_started_at=X.run_started_at;if(X.last_progress_at!==void 0)Y.last_progress_at=X.last_progress_at;if(X.failure_reason!==void 0)Y.failure_reason=X.failure_reason;if(X.failure_kind!==void 0)Y.failure_kind=X.failure_kind;if(X.metadata!==void 0)Y.metadata=JSON.stringify(X.metadata);if(X.branch!==void 0)Y.branch=X.branch;if(X.virtual_mcp_id!==void 0)Y.virtual_mcp_id=X.virtual_mcp_id;if(X.sandbox_provider_kind!==void 0)Y.sandbox_provider_kind=X.sandbox_provider_kind;if(X.harness_id!==void 0)Y.harness_id=X.harness_id;if(X.message_storage_version!==void 0)Y.message_storage_version=X.message_storage_version;await this.db.updateTable("threads").set(Y).where("id","=",$).where("organization_id","=",Z).execute();let G=await this.get($,Z);if(!G)throw Error("Thread not found after update");return G}async pinRuntimeIfUnset($,Z,X){let Q=await this.db.updateTable("threads").set({harness_id:X.harnessId,sandbox_provider_kind:Xg`coalesce(${Xg.ref("sandbox_provider_kind")}, ${X.sandboxProviderKind})`,branch:Xg`coalesce(${Xg.ref("branch")}, ${X.branch})`,updated_at:new Date().toISOString(),...X.messageStorageVersion!==void 0?{message_storage_version:X.messageStorageVersion}:{}}).where("id","=",$).where("organization_id","=",Z).where("harness_id","is",null).where((Y)=>X.sandboxProviderKind===null?Y("sandbox_provider_kind","is",null):Y.or([Y("sandbox_provider_kind","is",null),Y("sandbox_provider_kind","=",X.sandboxProviderKind)])).returningAll().executeTakeFirst();if(Q)return{thread:this.threadFromDbRow(Q),claimed:!0};return{thread:await this.get($,Z),claimed:!1}}async completeRunIfNotCompleted($,Z){let Q=(await this.db.updateTable("threads").set({status:"completed",run_owner_pod:null,run_config:null,run_started_at:null,updated_at:new Date().toISOString()}).where("id","=",$).where("organization_id","=",Z).where("status","=","in_progress").returningAll().execute())[0];return Q?this.threadFromDbRow(Q):null}async markRunFailed($,Z,X,Q){let G=(await this.db.updateTable("threads").set({status:"failed",failure_reason:X,failure_kind:Q,run_owner_pod:null,run_config:null,run_started_at:null,updated_at:new Date().toISOString()}).where("id","=",$).where("organization_id","=",Z).where("status","=","in_progress").returningAll().execute())[0];return G?this.threadFromDbRow(G):null}async requiresActionIfInProgress($,Z){let Q=(await this.db.updateTable("threads").set({status:"requires_action",run_config:null,run_started_at:null,updated_at:new Date().toISOString()}).where("id","=",$).where("organization_id","=",Z).where("status","=","in_progress").returningAll().execute())[0];return Q?this.threadFromDbRow(Q):null}async forceFailIfInProgress($,Z,X){let Q=new Date().toISOString(),Y=this.db.updateTable("threads").set({status:"failed",updated_at:Q}).where("id","=",$).where("organization_id","=",Z).where("status","=","in_progress");if(X!=null)Y=Y.where("run_fence_token","=",X);return((await Y.executeTakeFirst()).numUpdatedRows??BigInt(0))>BigInt(0)}async delete($,Z){await this.db.deleteFrom("threads").where("id","=",$).where("organization_id","=",Z).execute()}async list($,Z,X){let Q=X?.includeArchived===!0,Y=this.db.selectFrom("threads").selectAll().where("organization_id","=",$).where("hidden","=",Q).orderBy("updated_at","desc");if(Z)Y=Y.where("created_by","=",Z);let G=X?.virtualMcpId??X?.agentId;if(G)Y=Y.where("virtual_mcp_id","=",G);if(X?.hasTrigger===!0)Y=Y.where("trigger_id","is not",null);else if(X?.hasTrigger===!1)Y=Y.where("trigger_id","is",null);if(X?.startDate)Y=Y.where("updated_at",">=",X.startDate);if(X?.endDate)Y=Y.where("updated_at","<=",X.endDate);if(X?.search)Y=Y.where("title","ilike",`%${P38(X.search)}%`);if(X?.status)Y=Y.where("status","=",X.status);let J=this.db.selectFrom("threads").select((H)=>H.fn.count("id").as("count")).where("organization_id","=",$).where("hidden","=",Q);if(Z)J=J.where("created_by","=",Z);if(G)J=J.where("virtual_mcp_id","=",G);if(X?.hasTrigger===!0)J=J.where("trigger_id","is not",null);else if(X?.hasTrigger===!1)J=J.where("trigger_id","is",null);if(X?.startDate)J=J.where("updated_at",">=",X.startDate);if(X?.endDate)J=J.where("updated_at","<=",X.endDate);if(X?.search)J=J.where("title","ilike",`%${P38(X.search)}%`);if(X?.status)J=J.where("status","=",X.status);if(X?.limit)Y=Y.limit(X.limit);if(X?.offset)Y=Y.offset(X.offset);let[K,W]=await Promise.all([Y.execute(),J.executeTakeFirst()]);return{threads:K.map((H)=>this.threadFromDbRow(H)),total:Number(W?.count||0)}}async listByTriggerIds($,Z,X){if(Z.length===0)return{threads:[],total:0};let Q=this.db.selectFrom("threads").selectAll().where("organization_id","=",$).where("hidden","=",!1).where("trigger_id","in",Z).orderBy("updated_at","desc"),Y=this.db.selectFrom("threads").select((K)=>K.fn.count("id").as("count")).where("organization_id","=",$).where("hidden","=",!1).where("trigger_id","in",Z);if(X?.limit)Q=Q.limit(X.limit);if(X?.offset)Q=Q.offset(X.offset);let[G,J]=await Promise.all([Q.execute(),Y.executeTakeFirst()]);return{threads:G.map((K)=>this.threadFromDbRow(K)),total:Number(J?.count||0)}}async findLastUsedByVirtualMcpIds($,Z){let X=new Map;if(Z.length===0)return X;let Q=await this.db.selectFrom("threads").distinctOn("virtual_mcp_id").select(["virtual_mcp_id","created_by","created_at"]).where("organization_id","=",$).where("virtual_mcp_id","in",Z).orderBy("virtual_mcp_id").orderBy("created_at","desc").execute();for(let Y of Q)X.set(Y.virtual_mcp_id,{last_used_at:uE(Y.created_at),last_used_by:Y.created_by});return X}async listWithLastMessage($,Z){let X=this.db.selectFrom("threads as t").innerJoinLateral((Y)=>Y.selectFrom("thread_messages as m").selectAll().whereRef("m.thread_id","=","t.id").orderBy("m.created_at","desc").orderBy("m.id","desc").limit(1).as("lm"),(Y)=>Y.onTrue()).selectAll("t").select(["lm.id as lm_id","lm.thread_id as lm_thread_id","lm.metadata as lm_metadata","lm.parts as lm_parts","lm.role as lm_role","lm.created_at as lm_created_at","lm.updated_at as lm_updated_at"]).where("t.organization_id","=",$).where("t.hidden","=",!1).where("lm.role","=",Z.lastMessageRole).orderBy("lm.created_at","desc").limit(Z.limit);if(Z.createdBy)X=X.where("t.created_by","=",Z.createdBy);return(await X.execute()).map((Y)=>({thread:this.threadFromDbRow(Y),lastMessage:this.messageFromDbRow({id:Y.lm_id,thread_id:Y.lm_thread_id,metadata:Y.lm_metadata,parts:Y.lm_parts,role:Y.lm_role,created_at:Y.lm_created_at,updated_at:Y.lm_updated_at})}))}async listMessages($,Z,X){if(!await this.get($,Z))return{messages:[],total:0};let Y=X?.sort??"asc",G=this.db.selectFrom("thread_messages").selectAll().where("thread_id","=",$).orderBy("created_at",Y).orderBy("id",Y),J=this.db.selectFrom("thread_messages").select((H)=>H.fn.count("id").as("count")).where("thread_id","=",$);if(X?.limit)G=G.limit(X.limit);if(X?.offset)G=G.offset(X.offset);let[K,W]=await Promise.all([G.execute(),J.executeTakeFirst()]);return{messages:K.map((H)=>this.messageFromDbRow(H)),total:Number(W?.count||0)}}async bumpProgress($,Z){await this.db.updateTable("threads").set({last_progress_at:Xg`now()`}).where("id","=",$).where("organization_id","=",Z).execute()}async getProgress($,Z){let X=await this.db.selectFrom("threads").select(["last_progress_at","run_started_at"]).where("id","=",$).where("organization_id","=",Z).executeTakeFirst();if(!X)return null;let Q=(Y)=>{if(Y==null)return null;let G=(Y instanceof Date?Y:new Date(Y)).getTime();return Number.isNaN(G)?null:G};return{lastProgressAt:Q(X.last_progress_at),runStartedAt:Q(X.run_started_at)}}async getRunFence($){return(await this.db.selectFrom("threads").select("run_fence_token").where("id","=",$).executeTakeFirst())?.run_fence_token??null}async setRunFence($,Z){await this.db.updateTable("threads").set(Z===null?{run_fence_token:null,run_acked_seq:null}:{run_fence_token:Z,run_acked_seq:null,status:"in_progress"}).where("id","=",$).execute()}async setCancelRequested($,Z){await this.db.updateTable("threads").set({cancel_requested_at:Xg`now()`}).where("id","=",$).where("organization_id","=",Z).execute()}async getCancelRequestedAt($){let X=(await this.db.selectFrom("threads").select("cancel_requested_at").where("id","=",$).executeTakeFirst())?.cancel_requested_at;if(X==null)return null;return X instanceof Date?X:new Date(X)}async clearCancelRequested($){await this.db.updateTable("threads").set({cancel_requested_at:null}).where("id","=",$).execute()}async bumpAckedSeq($,Z,X,Q){await this.db.updateTable("threads").set({run_acked_seq:Q}).where("id","=",$).where("organization_id","=",Z).where((Y)=>Y.or([Y("run_acked_seq","is",null),Y("run_acked_seq","<",Q)])).execute()}async getAckedSeq($,Z){return(await this.db.selectFrom("threads").select("run_acked_seq").where("id","=",$).where("organization_id","=",Z).executeTakeFirst())?.run_acked_seq??0}threadFromDbRow($){let Z={};if($.metadata!=null)if(typeof $.metadata==="string")try{Z=JSON.parse($.metadata)}catch(X){console.error(`Failed to parse metadata for thread ${$.id}:`,$.metadata,X)}else Z=$.metadata;return{id:$.id,organization_id:$.organization_id,title:$.title,description:$.description,status:$.status,trigger_id:$.trigger_id??null,context_start_message_id:$.context_start_message_id??null,run_owner_pod:$.run_owner_pod??null,run_config:$.run_config??null,run_started_at:$.run_started_at?uE($.run_started_at):null,last_progress_at:$.last_progress_at?uE($.last_progress_at):null,virtual_mcp_id:$.virtual_mcp_id??"",branch:$.branch??null,sandbox_provider_kind:$.sandbox_provider_kind??null,harness_id:$.harness_id??null,metadata:Z,created_at:uE($.created_at),updated_at:uE($.updated_at),created_by:$.created_by,updated_by:$.updated_by??void 0,hidden:!!$.hidden,message_storage_version:$.message_storage_version??1,link_transport:$.link_transport??null}}messageFromDbRow($){let Z,X;try{Z=$.metadata?JSON.parse($.metadata):void 0}catch(Q){console.error(`Failed to parse metadata for message ${$.id}:`,$.metadata,Q),Z=void 0}try{X=typeof $.parts==="string"?JSON.parse($.parts):$.parts}catch(Q){console.error(`Failed to parse parts for message ${$.id}:`,$.parts,Q),X=[]}return{id:$.id,thread_id:$.thread_id,metadata:Z,parts:X,role:$.role,created_at:uE($.created_at),updated_at:uE($.updated_at)}}}var Oa0=O(()=>{lX();UB();j38()});import{sql as La0}from"kysely";function hQ0($){if($==null)return null;return typeof $==="string"?$:$.toISOString()}function uQ0($){return`msg_async_stub_${$}`}async function Da0($,Z){await $.deleteFrom("thread_messages").where("id","=",uQ0(Z)).execute(),await $.deleteFrom("thread_message_parts").where("message_id","=",uQ0(Z)).execute()}function aW4($){if($==null)return null;if(typeof $!=="string")return $;try{return JSON.parse($)}catch{return null}}function Ea0($){return{id:$.id,interactionId:$.interaction_id??null,toolCallId:$.tool_call_id,organizationId:$.organization_id,threadId:$.thread_id,messageId:$.message_id??null,provider:$.provider,modelId:$.model_id,query:$.query,status:$.status,attempts:$.attempts??0,lastPolledAt:hQ0($.last_polled_at),lastError:$.last_error??null,inputTokens:$.input_tokens??null,outputTokens:$.output_tokens??null,citations:aW4($.citations),resultUri:$.result_uri??null,resultPreview:$.result_preview??null,resultContent:$.result_content??null,createdAt:hQ0($.created_at)??"",updatedAt:hQ0($.updated_at)??"",completedAt:hQ0($.completed_at)}}class za0{inner;organizationId;constructor($,Z){this.inner=$;this.organizationId=Z}requireOrg(){if(!this.organizationId)throw Error("OrgScopedAsyncResearchJobStorage: requires an authenticated organization");return this.organizationId}setOrganizationId($){this.organizationId=$}upsertPending($){return this.inner.upsertPending({organizationId:this.requireOrg(),...$})}findByToolCall($){return this.inner.findByToolCall(this.requireOrg(),$)}markPolling($,Z,X){return this.inner.markPolling(this.requireOrg(),$,Z,X)}recordPoll($,Z){return this.inner.recordPoll(this.requireOrg(),$,Z)}markCompleted($,Z){return this.inner.markCompleted(this.requireOrg(),$,Z)}markFailed($,Z){return this.inner.markFailed(this.requireOrg(),$,Z)}markCancelled($,Z){return this.inner.markCancelled(this.requireOrg(),$,Z)}}class xp{db;constructor($){this.db=$}async upsertPending($){let Z=new Date().toISOString(),X=await this.db.insertInto("async_research_jobs").values({organization_id:$.organizationId,thread_id:$.threadId,tool_call_id:$.toolCallId,message_id:$.messageId??null,provider:$.provider,model_id:$.modelId,query:$.query,status:"pending",attempts:0,updated_at:Z}).onConflict((Y)=>Y.columns(["organization_id","tool_call_id"]).doNothing()).returningAll().executeTakeFirst();if(X)return Ea0(X);let Q=await this.db.selectFrom("async_research_jobs").selectAll().where("organization_id","=",$.organizationId).where("tool_call_id","=",$.toolCallId).executeTakeFirstOrThrow();return Ea0(Q)}async findByToolCall($,Z){let X=await this.db.selectFrom("async_research_jobs").selectAll().where("organization_id","=",$).where("tool_call_id","=",Z).executeTakeFirst();return X?Ea0(X):null}async markPolling($,Z,X,Q){let Y=new Date().toISOString();await this.db.transaction().execute(async(G)=>{if(await G.updateTable("async_research_jobs").set({status:"polling",interaction_id:X,last_polled_at:Y,updated_at:Y}).where("organization_id","=",$).where("tool_call_id","=",Z).execute(),(await G.selectFrom("threads").select("message_storage_version").where("id","=",Q.threadId).where("organization_id","=",$).executeTakeFirst())?.message_storage_version!==2)return;let K=uQ0(Z);await G.insertInto("thread_message_parts").values([{id:`${Q.threadId}:${K}:0`,seq:0,org_id:$,thread_id:Q.threadId,run_id:Q.threadId,message_id:K,role:"assistant",kind:"tool_call",payload:JSON.stringify({type:`tool-${Q.toolName}`,toolCallId:Z,state:"input-available",input:{query:Q.query}}),payload_ref:null,metadata:null,created_at:Y},{id:`${Q.threadId}:${K}:finish`,seq:1,org_id:$,thread_id:Q.threadId,run_id:Q.threadId,message_id:K,role:"assistant",kind:"finish",payload:JSON.stringify({}),payload_ref:null,metadata:null,created_at:Y}]).onConflict((W)=>W.column("id").doNothing()).execute()})}async recordPoll($,Z,X){let Q=new Date().toISOString();await this.db.updateTable("async_research_jobs").set({attempts:La0`attempts + 1`,last_polled_at:Q,...X!==void 0?{last_error:X}:{},updated_at:Q}).where("organization_id","=",$).where("tool_call_id","=",Z).execute()}async markCompleted($,Z,X){let Q=new Date().toISOString();await this.db.transaction().execute(async(Y)=>{await Y.updateTable("async_research_jobs").set({status:"completed",input_tokens:X.inputTokens,output_tokens:X.outputTokens,citations:JSON.stringify(X.citations),result_uri:X.resultUri,result_preview:X.resultPreview,result_content:X.resultContent,completed_at:Q,updated_at:Q}).where("organization_id","=",$).where("tool_call_id","=",Z).execute(),await Da0(Y,Z)})}async markFailed($,Z,X){let Q=new Date().toISOString();await this.db.transaction().execute(async(Y)=>{await Y.updateTable("async_research_jobs").set({status:"failed",last_error:X,completed_at:Q,updated_at:Q}).where("organization_id","=",$).where("tool_call_id","=",Z).execute(),await Da0(Y,Z)})}async markCancelled($,Z,X){let Q=new Date().toISOString();await this.db.transaction().execute(async(Y)=>{await Y.updateTable("async_research_jobs").set({status:"cancelled",last_error:X??null,completed_at:Q,updated_at:Q}).where("organization_id","=",$).where("tool_call_id","=",Z).execute(),await Da0(Y,Z)})}async sweepAbandoned($){let Z=new Date(Date.now()-$).toISOString(),X=new Date().toISOString();return await this.db.transaction().execute(async(Q)=>{let Y=await Q.updateTable("async_research_jobs").set({status:"abandoned",completed_at:X,updated_at:X,last_error:La0`COALESCE(last_error, '') || ' [abandoned by sweeper]'`}).where("status","in",["pending","polling"]).where(La0`COALESCE(last_polled_at, created_at) < ${Z}::timestamptz`).returning(["tool_call_id"]).execute();if(Y.length===0)return 0;let G=Y.map((J)=>uQ0(J.tool_call_id));return await Q.deleteFrom("thread_messages").where("id","in",G).execute(),await Q.deleteFrom("thread_message_parts").where("message_id","in",G).execute(),Y.length})}}var ja0=()=>{};function cQ0(){let $=new Map;function Z(Q,Y){let G=$.get(Y);if(G)return G;let J=new y9({name:`outbound-client-${Y}`,version:"1.0.0"},{capabilities:{tasks:{list:{},cancel:{},requests:{tool:{call:{}}}}},jsonSchemaValidator:T5});J.onclose=()=>{$.delete(Y)};let K=J.connect(Q).then(()=>J).catch((W)=>{throw $.delete(Y),W});return $.set(Y,K),K}return Object.assign(Z,{[Symbol.asyncDispose]:async()=>{let Q=[];for(let[Y,G]of $)Q.push(G.then((J)=>J.close()).catch(()=>{}));await Promise.all(Q),$.clear()}})}var Pa0=O(()=>{KW();pX()});import{sql as sW4}from"kysely";function A38($){return $ instanceof Date?$.toISOString():String($)}class Aa0{db;vault;constructor($,Z){this.db=$;this.vault=Z}rowToInfo($){return{id:$.id,organizationId:$.organization_id,scope:$.scope,userId:$.user_id,name:$.name,description:$.description,createdBy:$.created_by,createdAt:A38($.created_at),updatedBy:$.updated_by,updatedAt:A38($.updated_at)}}assertVisible($,Z){if($.scope==="user"&&$.user_id!==Z)throw new FB($.id)}async create($){let Z=J4("sec"),X=await this.vault.encrypt($.value),Q=new Date,Y=await this.db.insertInto("secrets").values({id:Z,organization_id:$.organizationId,scope:$.scope.kind,user_id:$.scope.kind==="user"?$.scope.userId:null,name:$.name,encrypted_value:X,description:$.description??null,created_by:$.createdBy,created_at:Q,updated_by:$.createdBy,updated_at:Q}).returning(lQ0).executeTakeFirstOrThrow();return this.rowToInfo(Y)}async update($){let Z=await this.db.selectFrom("secrets").where("id","=",$.id).where("organization_id","=",$.organizationId).select(["id","scope","user_id"]).executeTakeFirst();if(!Z)throw new X3($.id);this.assertVisible(Z,$.callerUserId);let X={updated_by:$.updatedBy,updated_at:new Date};if($.value!==void 0)X.encrypted_value=await this.vault.encrypt($.value);if($.description!==void 0)X.description=$.description;let Q=await this.db.updateTable("secrets").set(X).where("id","=",$.id).where("organization_id","=",$.organizationId).returning(lQ0).executeTakeFirstOrThrow();return this.rowToInfo(Q)}async delete($,Z,X){let Q=await this.db.selectFrom("secrets").where("id","=",$).where("organization_id","=",Z).select(["id","scope","user_id"]).executeTakeFirst();if(!Q)throw new X3($);this.assertVisible(Q,X),await this.db.deleteFrom("secrets").where("id","=",$).where("organization_id","=",Z).execute()}async list($){let Z=this.db.selectFrom("secrets").where("organization_id","=",$.organizationId).select(lQ0);if($.scope?.kind==="user")Z=Z.where("scope","=","user").where("user_id","=",$.scope.userId);else if($.scope?.kind==="organization")Z=Z.where("scope","=","organization");else Z=Z.where((Q)=>Q.or([Q("scope","=","organization"),Q.and([Q("scope","=","user"),Q("user_id","=",$.callerUserId)])]));return(await Z.orderBy("created_at","desc").execute()).map((Q)=>this.rowToInfo(Q))}async findById($,Z,X){let Q=await this.db.selectFrom("secrets").where("id","=",$).where("organization_id","=",Z).select(lQ0).executeTakeFirst();if(!Q)throw new X3($);return this.assertVisible(Q,X),this.rowToInfo(Q)}async resolveById($,Z,X){let Q=await this.db.selectFrom("secrets").where("id","=",$).where("organization_id","=",Z).selectAll().executeTakeFirst();if(!Q)throw new X3($);this.assertVisible(Q,X);let Y=await this.vault.decrypt(Q.encrypted_value);return{info:this.rowToInfo(Q),value:Y}}async resolveByName($){let Z=this.db.selectFrom("secrets").where("organization_id","=",$.organizationId).where("scope","=",$.scope.kind).where(sW4`lower(name) = lower(${$.name})`).selectAll();if($.scope.kind==="user")Z=Z.where("user_id","=",$.scope.userId);let X=await Z.executeTakeFirst();if(!X)throw new X3(`${$.scope.kind}:${$.name}`);let Q=await this.vault.decrypt(X.encrypted_value);return{info:this.rowToInfo(X),value:Q}}}var lQ0,X3,FB;var vp=O(()=>{lX();lQ0=["id","organization_id","scope","user_id","name","description","created_by","created_at","updated_by","updated_at"];X3=class X3 extends Error{constructor($){super(`Secret ${$} not found`);this.name="SecretNotFoundError"}};FB=class FB extends Error{constructor($){super(`Access denied for secret ${$}`);this.name="SecretAccessDeniedError"}}});import{sql as eW4}from"kysely";function T38($){return $ instanceof Date?$.toISOString():String($)}class Ta0{db;vault;constructor($,Z){this.db=$;this.vault=Z}rowToInfo($){return{id:$.id,organizationId:$.organization_id,name:$.name,description:$.description,bucket:$.bucket,region:$.region,endpoint:$.endpoint,forcePathStyle:$.force_path_style,prefix:$.prefix,publicUrlBase:$.public_url_base,credentialType:$.credential_type??"static",refreshUrl:$.refresh_url,siteSlug:$.site_slug,createdBy:$.created_by,createdAt:T38($.created_at),updatedBy:$.updated_by,updatedAt:T38($.updated_at)}}async create($){let Z=J4("fcfg"),X=await this.vault.encrypt(JSON.stringify($.credentials)),Q=new Date,Y=await this.db.insertInto("org_file_configs").values({id:Z,organization_id:$.organizationId,name:$.name,description:$.description??null,bucket:$.bucket,region:$.region,endpoint:$.endpoint??null,force_path_style:$.forcePathStyle??!1,prefix:$.prefix??null,public_url_base:$.publicUrlBase??null,credential_type:$.credentials.type,refresh_url:$.refreshUrl??null,site_slug:$.siteSlug??null,encrypted_credentials:X,created_by:$.createdBy,created_at:Q,updated_by:$.createdBy,updated_at:Q}).returning(dQ0).executeTakeFirstOrThrow();return this.rowToInfo(Y)}async update($){if(!await this.db.selectFrom("org_file_configs").where("id","=",$.id).where("organization_id","=",$.organizationId).select(["id"]).executeTakeFirst())throw new Yg($.id);let X={updated_by:$.updatedBy,updated_at:new Date};if($.name!==void 0)X.name=$.name;if($.description!==void 0)X.description=$.description;if($.bucket!==void 0)X.bucket=$.bucket;if($.region!==void 0)X.region=$.region;if($.endpoint!==void 0)X.endpoint=$.endpoint;if($.forcePathStyle!==void 0)X.force_path_style=$.forcePathStyle;if($.prefix!==void 0)X.prefix=$.prefix;if($.publicUrlBase!==void 0)X.public_url_base=$.publicUrlBase;if($.refreshUrl!==void 0)X.refresh_url=$.refreshUrl;if($.siteSlug!==void 0)X.site_slug=$.siteSlug;if($.credentials!==void 0)X.credential_type=$.credentials.type,X.encrypted_credentials=await this.vault.encrypt(JSON.stringify($.credentials));let Q=await this.db.updateTable("org_file_configs").set(X).where("id","=",$.id).where("organization_id","=",$.organizationId).returning(dQ0).executeTakeFirstOrThrow();return this.rowToInfo(Q)}async delete($,Z){if(!await this.db.selectFrom("org_file_configs").where("id","=",$).where("organization_id","=",Z).select(["id"]).executeTakeFirst())throw new Yg($);await this.db.deleteFrom("org_file_configs").where("id","=",$).where("organization_id","=",Z).execute()}async list($){return(await this.db.selectFrom("org_file_configs").where("organization_id","=",$).select(dQ0).orderBy("created_at","desc").execute()).map((X)=>this.rowToInfo(X))}async findById($,Z){let X=await this.db.selectFrom("org_file_configs").where("id","=",$).where("organization_id","=",Z).select(dQ0).executeTakeFirst();if(!X)throw new Yg($);return this.rowToInfo(X)}async resolveById($,Z){let X=await this.db.selectFrom("org_file_configs").where("id","=",$).where("organization_id","=",Z).selectAll().executeTakeFirst();if(!X)throw new Yg($);return{info:this.rowToInfo(X),credentials:await this.decodeCredentials(X)}}async resolveByName($){let Z=await this.db.selectFrom("org_file_configs").where("organization_id","=",$.organizationId).where(eW4`lower(name) = lower(${$.name})`).selectAll().executeTakeFirst();if(!Z)throw new Yg($.name);return{info:this.rowToInfo(Z),credentials:await this.decodeCredentials(Z)}}async decodeCredentials($){if($.credential_type==="managed")return{type:"managed"};let Z=await this.vault.decrypt($.encrypted_credentials),X=JSON.parse(Z);if(($.credential_type??"static")==="sts-session")return{type:"sts-session",apiKey:String(X.apiKey)};return{type:"static",accessKeyId:String(X.accessKeyId),secretAccessKey:String(X.secretAccessKey)}}}var dQ0,Yg;var I38=O(()=>{lX();dQ0=["id","organization_id","name","description","bucket","region","endpoint","force_path_style","prefix","public_url_base","credential_type","refresh_url","site_slug","created_by","created_at","updated_by","updated_at"];Yg=class Yg extends Error{constructor($){super(`File config ${$} not found`);this.name="OrgFileConfigNotFoundError"}}});function mQ0($){return Ia0.test($)}var Ia0;var iQ0=O(()=>{Ia0=/^[a-z0-9][a-z0-9-]{0,59}$/});function R38($){return $ instanceof Date?$.toISOString():String($)}function Ra0($){return{slug:$.slug,organizationId:$.organization_id,source:$.source,createdBy:$.created_by,createdAt:R38($.created_at),updatedBy:$.updated_by,updatedAt:R38($.updated_at)}}class Ma0{db;constructor($){this.db=$}async claimSite($){if(!mQ0($.slug))throw Error(`Invalid site slug "${$.slug}" \u2014 must be 1-60 chars of lowercase letters, digits, or hyphens, starting with a letter or digit`);let Z=new Date,X=await this.db.insertInto("org_sites").values({slug:$.slug,organization_id:$.organizationId,source:$.source??"deco-import",created_by:$.by,created_at:Z,updated_by:$.by,updated_at:Z}).onConflict((G)=>G.column("slug").doNothing()).returningAll().executeTakeFirst();if(X)return Ra0(X);let Q=await this.getBySlug($.slug);if(!Q)throw new qa0($.slug,"unknown");if(Q.organizationId!==$.organizationId)throw new qa0($.slug,Q.organizationId);let Y=await this.db.updateTable("org_sites").set({source:$.source??Q.source,updated_by:$.by,updated_at:Z}).where("slug","=",$.slug).where("organization_id","=",$.organizationId).returningAll().executeTakeFirstOrThrow();return Ra0(Y)}async getBySlug($){let Z=await this.db.selectFrom("org_sites").selectAll().where("slug","=",$).executeTakeFirst();return Z?Ra0(Z):null}async isOwnedBy($,Z){return!!await this.db.selectFrom("org_sites").select("slug").where("slug","=",$).where("organization_id","=",Z).executeTakeFirst()}}var qa0;var q38=O(()=>{iQ0();qa0=class qa0 extends Error{slug;ownerOrganizationId;constructor($,Z){super(`Site slug "${$}" is already owned by another organization`);this.slug=$;this.ownerOrganizationId=Z;this.name="OrgSiteConflictError"}}});function M38($,Z){return $?.startsWith(`${fp[Z]}:`)??!1}function ka0($){let Z=0;for(let X of $){if(X.action!=="status_changed")continue;if(X.data?.to!=="in_review")continue;Z=Math.max(Z,new Date(X.occurredAt).getTime())}return Z}function $H4($,Z){let X=ka0($),Q=new Map;for(let Y of $){if(Y.action!=="review_approved"&&Y.action!=="review_changes_requested")continue;if(new Date(Y.occurredAt).getTime()<X)continue;let G=Y.data??{};if(G.reviewer!=="qa"&&G.reviewer!=="code_review")continue;if(Y.action==="review_approved"){if(Z?.verifiedOnly&&G.verified!==!0)continue;Q.set(G.reviewer,"approved")}else Q.set(G.reviewer,"changes_requested")}return Q}function Gg($,Z,X){if(Z.length===0)return!1;let Q=$H4($,X);return Z.every((Y)=>Q.get(Y)==="approved")}var Y9="super-agent",wB,fp,BB,k38="task-board.item.updated",S38="task-board.item.deleted";var xJ=O(()=>{wB=["qa","code_review"],fp={qa:"QA Agent",code_review:"Code Reviewer"},BB={qa:"qa_agent_enabled",code_review:"code_reviewer_enabled"}});function ZH4($){if($&&typeof $==="object"&&!Array.isArray($)){let Z=$.text;if(typeof Z==="string"&&Z.trim())return Z.trim()}return null}function Sa0($){if($.status!=="in_progress")return!1;let Z=$.threads.filter((X)=>X.hasMessages);if(Z.length===0)return!1;return Z.every((X)=>X.status!==null&&XH4.has(X.status))}function QH4($){let Z=typeof $==="string"?(()=>{try{return JSON.parse($)}catch{return null}})():$;if(!Z||typeof Z!=="object")return!1;let X=Z.githubRepo?.url;return typeof X==="string"&&X.length>0}class cE{db;constructor($){this.db=$}inTransaction($){return this.db.isTransaction?$(this.db):this.db.transaction().execute($)}async list($){let X=(await this.db.selectFrom("task_board_items").selectAll().where("organization_id","=",$).orderBy("sort_order","asc").execute()).map((Q)=>this.itemFromDbRow(Q));return await this.attachRefs(X,$),X}async getById($,Z){let X=await this.db.selectFrom("task_board_items").selectAll().where("id","=",$).where("organization_id","=",Z).executeTakeFirst();if(!X)return null;let Q=this.itemFromDbRow(X);return await this.attachRefs([Q],Z),Q}async create($){let Z=J4("board"),X=new Date().toISOString(),Q=$.status??"triage",{minOrder:Y}=await this.db.selectFrom("task_board_items").select((J)=>J.fn.min("sort_order").as("minOrder")).where("organization_id","=",$.organizationId).where("status","=",Q).executeTakeFirstOrThrow(),G=await this.db.insertInto("task_board_items").values({id:Z,organization_id:$.organizationId,title:$.title,description:$.description??null,status:Q,priority:$.priority??"medium",assignee_id:$.assigneeId??null,assigned_by:$.assignedBy??null,due_date:$.dueDate??null,external_key:$.externalKey??null,sort_order:(Y??0)-1,created_by:$.by,created_at:X,updated_by:$.by,updated_at:X}).returningAll().executeTakeFirstOrThrow();return this.itemFromDbRow(G)}async update($,Z,X,Q){let Y=await this.db.updateTable("task_board_items").set({...X.title!==void 0?{title:X.title}:{},...X.description!==void 0?{description:X.description}:{},...X.status!==void 0?{status:X.status}:{},...X.priority!==void 0?{priority:X.priority}:{},...X.assigneeId!==void 0?{assignee_id:X.assigneeId}:{},...X.assignedBy!==void 0?{assigned_by:X.assignedBy}:{},...X.dueDate!==void 0?{due_date:X.dueDate}:{},...X.sortOrder!==void 0?{sort_order:X.sortOrder}:{},updated_by:Q,updated_at:new Date().toISOString()}).where("id","=",$).where("organization_id","=",Z).returningAll().executeTakeFirstOrThrow(),G=this.itemFromDbRow(Y);return await this.attachRefs([G],Z),G}async delete($,Z){await this.inTransaction(async(X)=>{await X.deleteFrom("task_board_item_threads").where("task_board_item_id","=",$).where("organization_id","=",Z).execute(),await X.deleteFrom("task_board_item_prs").where("task_board_item_id","=",$).where("organization_id","=",Z).execute(),await X.deleteFrom("task_board_items").where("id","=",$).where("organization_id","=",Z).execute()})}async setItemTags($,Z,X){await this.inTransaction(async(Q)=>{if(await Q.deleteFrom("task_board_item_tags").where("task_board_item_id","=",$).$if(Z.length>0,(Y)=>Y.where("id","not in",Z)).execute(),Z.length>0)await Q.insertInto("task_board_item_tags").values(Z.map((Y)=>({task_board_item_id:$,id:Y,created_by:X,created_at:new Date().toISOString()}))).onConflict((Y)=>Y.doNothing()).execute()})}async linkThread($,Z,X){await this.db.insertInto("task_board_item_threads").values({task_board_item_id:$,thread_id:Z,organization_id:X}).onConflict((Q)=>Q.columns(["task_board_item_id","thread_id"]).doNothing()).execute()}async linkedTaskIds($,Z){return(await this.db.selectFrom("task_board_item_threads").select("task_board_item_id as taskId").where("thread_id","=",$).where("organization_id","=",Z).execute()).map((Q)=>Q.taskId)}async linkPr($){await this.db.insertInto("task_board_item_prs").values({task_board_item_id:$.taskBoardItemId,organization_id:$.organizationId,url:$.url,pr_number:$.prNumber,repo_owner:$.repoOwner,repo_name:$.repoName,connection_id:$.connectionId??null}).onConflict((Z)=>Z.columns(["task_board_item_id","url"]).doNothing()).execute()}async listPrs($,Z){return(await this.db.selectFrom("task_board_item_prs").select(["url","pr_number as prNumber","repo_owner as repoOwner","repo_name as repoName","connection_id as connectionId","created_at as createdAt"]).where("task_board_item_id","=",$).where("organization_id","=",Z).orderBy("created_at","desc").execute()).map((Q)=>({url:Q.url,number:Q.prNumber,repoOwner:Q.repoOwner,repoName:Q.repoName,connectionId:Q.connectionId??null,createdAt:Q.createdAt instanceof Date?Q.createdAt.toISOString():Q.createdAt}))}async advanceLinkedTasksToReviewOnThreadFinish($,Z){let X=[];for(let Q of await this.linkedTaskIds($,Z)){let Y=await this.getById(Q,Z);if(!Y||!Sa0(Y))continue;X.push(await this.update(Q,Z,{status:"in_review"},Y.updatedBy)),await this.recordActivity({taskBoardItemId:Q,action:"status_changed",actorId:null,data:{from:Y.status,to:"in_review"}}).catch((G)=>console.error("[task-board] in_review activity write failed",G))}return X}async reopenLinkedTasksOnThreadRun($,Z){let X=[];for(let Q of await this.linkedTaskIds($,Z)){let Y=await this.getById(Q,Z);if(!Y||Y.status!=="in_review")continue;X.push(await this.update(Q,Z,{status:"in_progress"},Y.updatedBy))}return X}async claimConflictResolution($,Z,X){let Q=await this.db.updateTable("task_board_items").set({status:"in_progress",updated_by:X,updated_at:new Date().toISOString()}).where("id","=",$).where("organization_id","=",Z).where("status","=","in_review").where("assignee_id","=",Y9).returningAll().executeTakeFirst();if(!Q)return null;let Y=this.itemFromDbRow(Q);return await this.attachRefs([Y],Z),Y}async attachRefs($,Z){if($.length===0)return;await this.inTransaction(async(X)=>{await this.attachThreads(X,$,Z),await this.attachTags(X,$)})}async attachThreads($,Z,X){let Q=Z.map((J)=>J.id),Y=await $.selectFrom("task_board_item_threads as link").innerJoin("threads as t","t.id","link.thread_id").leftJoinLateral((J)=>J.selectFrom("thread_message_parts as p").select("p.payload as payload").whereRef("p.thread_id","=","link.thread_id").where("p.role","=","assistant").where("p.kind","=","text").orderBy("p.created_at","desc").limit(1).as("lastmsg"),(J)=>J.onTrue()).select((J)=>["link.task_board_item_id as taskId","link.thread_id as threadId","link.created_at as createdAt","t.status as status","t.title as title","t.virtual_mcp_id as virtualMcpId","t.metadata as metadata","lastmsg.payload as lastMessagePayload",J.or([J.exists(J.selectFrom("thread_message_parts as mp").select("mp.id").whereRef("mp.thread_id","=","link.thread_id")),J.exists(J.selectFrom("thread_messages as tm").select("tm.id").whereRef("tm.thread_id","=","link.thread_id"))]).as("hasMessages")]).where("link.organization_id","=",X).where("link.task_board_item_id","in",Q).orderBy("link.created_at","desc").execute(),G=new Map;for(let J of Y){let K={threadId:J.threadId,virtualMcpId:J.virtualMcpId??null,status:J.status??null,title:J.title??null,lastMessage:ZH4(J.lastMessagePayload),hasPreview:QH4(J.metadata),hasMessages:!!J.hasMessages,createdAt:J.createdAt instanceof Date?J.createdAt.toISOString():J.createdAt},W=G.get(J.taskId);if(W)W.push(K);else G.set(J.taskId,[K])}for(let J of Z)J.threads=G.get(J.id)??[]}async attachTags($,Z){let X=Z.map((G)=>G.id),Q=await $.selectFrom("task_board_item_tags as link").innerJoin("organization_tags as tag","tag.id","link.id").select(["link.task_board_item_id as taskId","link.created_by as createdBy","link.created_at as createdAt","tag.id as id","tag.name as name","tag.color as color"]).where("link.task_board_item_id","in",X).orderBy("tag.name","asc").execute(),Y=new Map;for(let G of Q){let J={id:G.id,name:G.name,color:G.color??null,createdBy:G.createdBy,createdAt:G.createdAt instanceof Date?G.createdAt.toISOString():G.createdAt},K=Y.get(G.taskId);if(K)K.push(J);else Y.set(G.taskId,[J])}for(let G of Z)G.tags=Y.get(G.id)??[]}async recordActivity($){await this.db.insertInto("task_board_activity").values({id:J4("act"),task_board_item_id:$.taskBoardItemId,action:$.action,actor_id:$.actorId,data:$.data?JSON.stringify($.data):null,occurred_at:new Date().toISOString()}).execute()}async claimReviewer($,Z,X){let Q=`rtok_${crypto.randomUUID()}`,Y=await this.db.insertInto("task_board_review_claims").values({task_board_item_id:$,reviewer:Z,cycle_at:X,token:Q}).onConflict((J)=>J.columns(["task_board_item_id","reviewer","cycle_at"]).doNothing()).returning("token").executeTakeFirst();if(Y)return{claimed:!0,token:Y.token};return{claimed:!1,token:(await this.db.selectFrom("task_board_review_claims").select("token").where("task_board_item_id","=",$).where("reviewer","=",Z).where("cycle_at","=",X).executeTakeFirst())?.token??Q}}async resolveReviewClaimByToken($,Z){let X=await this.db.selectFrom("task_board_review_claims").select(["reviewer","cycle_at"]).where("task_board_item_id","=",$).where("token","=",Z).executeTakeFirst();return X?{reviewer:X.reviewer,cycleAt:X.cycle_at}:null}async recordActivities($){if($.length===0)return;let Z=new Date().toISOString();await this.db.insertInto("task_board_activity").values($.map((X)=>({id:J4("act"),task_board_item_id:X.taskBoardItemId,action:X.action,actor_id:X.actorId,data:X.data?JSON.stringify(X.data):null,occurred_at:Z}))).execute()}async listActivity($,Z){return(await this.db.selectFrom("task_board_activity as a").innerJoin("task_board_items as item","item.id","a.task_board_item_id").selectAll("a").where("item.organization_id","=",Z).where("a.task_board_item_id","=",$).orderBy("a.occurred_at","asc").execute()).map((Q)=>({id:Q.id,taskBoardItemId:Q.task_board_item_id,action:Q.action,actorId:Q.actor_id,data:typeof Q.data==="string"?JSON.parse(Q.data):Q.data??{},occurredAt:Q.occurred_at instanceof Date?Q.occurred_at.toISOString():Q.occurred_at}))}itemFromDbRow($){return{id:$.id,organizationId:$.organization_id,title:$.title,description:$.description,status:$.status,priority:$.priority,assigneeId:$.assignee_id,assignedBy:$.assigned_by,dueDate:$.due_date instanceof Date?$.due_date.toISOString():$.due_date,sortOrder:$.sort_order,threads:[],tags:[],createdBy:$.created_by,createdAt:$.created_at instanceof Date?$.created_at.toISOString():$.created_at,updatedBy:$.updated_by,updatedAt:$.updated_at instanceof Date?$.updated_at.toISOString():$.updated_at}}}var XH4;var bp=O(()=>{lX();xJ();XH4=new Set(["completed","failed","expired"])});class Va0{db;constructor($){this.db=$}async create($,Z,X){let Q=crypto.randomUUID(),Y=new Date(Date.now()+600000);return await this.db.insertInto("oauth_pkce_states").values({id:Q,organization_id:Z,user_id:X,code_verifier:$,expires_at:Y,created_at:new Date}).execute(),Q}async consume($,Z,X){let Q=await this.db.deleteFrom("oauth_pkce_states").where("id","=",$).where("organization_id","=",Z).where("user_id","=",X).returningAll().executeTakeFirst();if(!Q)throw Error("Invalid or expired OAuth state token");if((Q.expires_at instanceof Date?Q.expires_at:new Date(Q.expires_at))<new Date)throw Error("OAuth state token has expired");return Q.code_verifier}}function zW($){if($==null)return"unknown error";if(typeof $==="string")return $;if($ instanceof Error)return $.message;return JSON.stringify($)}function nQ0($){if($===null||typeof $==="string"||typeof $==="number"||typeof $==="boolean")return!0;if(Array.isArray($))return $.every(nQ0);if(typeof $==="object")return Object.entries($).every(([Z,X])=>typeof Z==="string"&&(X===void 0||nQ0(X)));return!1}function Ca0($){return Array.isArray($)&&$.every(nQ0)}function yp($){return $!=null&&typeof $==="object"&&Object.entries($).every(([Z,X])=>typeof Z==="string"&&(X===void 0||nQ0(X)))}var YJ8="vercel.ai.error",YH4,V38,C38,D1,GJ8="AI_APICallError",JJ8,GH4,_38,x38,N4,KJ8="AI_EmptyResponseBodyError",WJ8,JH4,v38,f38,pQ0,HJ8="AI_InvalidArgumentError",NJ8,KH4,b38,y38,OB,UJ8="AI_InvalidPromptError",FJ8,WH4,g38,h38,Q3,wJ8="AI_InvalidResponseDataError",BJ8,HH4,u38,c38,Jg,OJ8="AI_JSONParseError",LJ8,NH4,l38,d38,hN,DJ8="AI_LoadAPIKeyError",EJ8,UH4,m38,i38,lE,zJ8="AI_LoadSettingError",jJ8,FH4,n38,p38,PJ8,AJ8="AI_NoContentGeneratedError",TJ8,wH4,t38,o38,IJ8,RJ8="AI_NoSuchModelError",qJ8,BH4,r38,a38,y5,MJ8="AI_TooManyEmbeddingValuesForCallError",kJ8,OH4,s38,e38,Kg,SJ8="AI_TypeValidationError",VJ8,LH4,$J8,ZJ8,F5,CJ8="AI_UnsupportedFunctionalityError",_J8,DH4,XJ8,QJ8,v4;var X8=O(()=>{YH4=Symbol.for(YJ8),D1=class $ extends(C38=Error,V38=YH4,C38){constructor({name:Z,message:X,cause:Q}){super(X);this[V38]=!0,this.name=Z,this.cause=Q}static isInstance(Z){return $.hasMarker(Z,YJ8)}static hasMarker(Z,X){let Q=Symbol.for(X);return Z!=null&&typeof Z==="object"&&Q in Z&&typeof Z[Q]==="boolean"&&Z[Q]===!0}},JJ8=`vercel.ai.error.${GJ8}`,GH4=Symbol.for(JJ8),N4=class extends(x38=D1,_38=GH4,x38){constructor({message:$,url:Z,requestBodyValues:X,statusCode:Q,responseHeaders:Y,responseBody:G,cause:J,isRetryable:K=Q!=null&&(Q===408||Q===409||Q===429||Q>=500),data:W}){super({name:GJ8,message:$,cause:J});this[_38]=!0,this.url=Z,this.requestBodyValues=X,this.statusCode=Q,this.responseHeaders=Y,this.responseBody=G,this.isRetryable=K,this.data=W}static isInstance($){return D1.hasMarker($,JJ8)}},WJ8=`vercel.ai.error.${KJ8}`,JH4=Symbol.for(WJ8),pQ0=class extends(f38=D1,v38=JH4,f38){constructor({message:$="Empty response body"}={}){super({name:KJ8,message:$});this[v38]=!0}static isInstance($){return D1.hasMarker($,WJ8)}};NJ8=`vercel.ai.error.${HJ8}`,KH4=Symbol.for(NJ8),OB=class extends(y38=D1,b38=KH4,y38){constructor({message:$,cause:Z,argument:X}){super({name:HJ8,message:$,cause:Z});this[b38]=!0,this.argument=X}static isInstance($){return D1.hasMarker($,NJ8)}},FJ8=`vercel.ai.error.${UJ8}`,WH4=Symbol.for(FJ8),Q3=class extends(h38=D1,g38=WH4,h38){constructor({prompt:$,message:Z,cause:X}){super({name:UJ8,message:`Invalid prompt: ${Z}`,cause:X});this[g38]=!0,this.prompt=$}static isInstance($){return D1.hasMarker($,FJ8)}},BJ8=`vercel.ai.error.${wJ8}`,HH4=Symbol.for(BJ8),Jg=class extends(c38=D1,u38=HH4,c38){constructor({data:$,message:Z=`Invalid response data: ${JSON.stringify($)}.`}){super({name:wJ8,message:Z});this[u38]=!0,this.data=$}static isInstance($){return D1.hasMarker($,BJ8)}},LJ8=`vercel.ai.error.${OJ8}`,NH4=Symbol.for(LJ8),hN=class extends(d38=D1,l38=NH4,d38){constructor({text:$,cause:Z}){super({name:OJ8,message:`JSON parsing failed: Text: ${$}.
2243
+ </organization-filesystem>`}var UB=O(()=>{hE();Ua0()});function Fa0($){let Z=new Map;for(let Q of $){let Y=Z.get(Q.message_id);if(Y)Y.push(Q);else Z.set(Q.message_id,[Q])}let X=[];for(let[Q,Y]of Z){let G=[...Y].sort((K,W)=>K.seq-W.seq),J=G[0];X.push({id:Q,role:J.role,parts:G.filter((K)=>K.kind!=="finish").map((K)=>K.payload&&typeof K.payload==="object"&&!Array.isArray(K.payload)?{...K.payload,created_at:K.created_at}:K.payload),created_at:J.created_at,status:G.some((K)=>K.kind==="finish")?"complete":"in_progress",metadata:G.find((K)=>K.kind==="finish")?.metadata??null})}return X.sort((Q,Y)=>Q.created_at<Y.created_at?-1:Q.created_at>Y.created_at?1:0),X}function pW4($,Z){let X=0,Q=0,Y=[$];while(Y.length>0){if(X>Z||++Q>iW4)return 1/0;let G=Y.pop();if(typeof G==="string")X+=G.length;else if(Array.isArray(G))for(let J of G)Y.push(J);else if(G!==null&&typeof G==="object")for(let J of Object.values(G))Y.push(J)}return X}function rW4($){return $.replace(tW4,"").replace(oW4,"\uFFFD")}function z38($){if(pW4($,E38)>E38)return JSON.stringify({truncated:!0,reason:"payload exceeds max stored size"});return JSON.stringify($,(Z,X)=>typeof X==="string"?rW4(X):X)}class wa0{db;constructor($){this.db=$}async serializeParts($){let Z=new Set,X=[],Q=new Map;for(let Y=0;Y<$.length;Y++){let G=$[Y];if(Z.has(G.id))continue;if(Z.add(G.id),Q.set(G.id,G),X.push({id:G.id,seq:G.seq,org_id:G.org_id,thread_id:G.thread_id,run_id:G.run_id,message_id:G.message_id,role:G.role,kind:G.kind,payload:z38(G.payload),payload_ref:G.payload_ref??null,metadata:G.metadata!=null?z38(G.metadata):null,created_at:G.created_at}),(Y+1)%nW4===0)await m8(0)}return{rows:X,partsById:Q}}async appendParts($){if($.length===0)return[];let{rows:Z,partsById:X}=await this.serializeParts($);return(await this.db.insertInto("thread_message_parts").values(Z).onConflict((Y)=>Y.column("id").doNothing()).returning("id").execute()).map((Y)=>X.get(Y.id)).filter((Y)=>Y!==void 0)}async replaceMessageParts($,Z,X){let{rows:Q}=await this.serializeParts(X);return await this.db.transaction().execute(async(Y)=>{let G=await Y.selectFrom("thread_message_parts").select((W)=>W.fn.min("created_at").as("created_at")).where("thread_id","=",$).where("message_id","=",Z).executeTakeFirst(),J=G?.created_at!=null?new Date(G.created_at).getTime():null,K=J!=null&&Number.isFinite(J)?Q.map((W)=>({...W,created_at:new Date(J+W.seq).toISOString()})):Q;if(await Y.deleteFrom("thread_message_parts").where("thread_id","=",$).where("message_id","=",Z).execute(),K.length>0)await Y.insertInto("thread_message_parts").values(K).onConflict((W)=>W.column("id").doUpdateSet((H)=>({seq:H.ref("excluded.seq"),role:H.ref("excluded.role"),kind:H.ref("excluded.kind"),payload:H.ref("excluded.payload"),payload_ref:H.ref("excluded.payload_ref"),metadata:H.ref("excluded.metadata"),created_at:H.ref("excluded.created_at")}))).execute()}),X}async deleteMessageParts($,Z){await this.db.deleteFrom("thread_message_parts").where("thread_id","=",$).where("message_id","=",Z).execute()}async maxCreatedAtMsForRun($){let Z=await this.db.selectFrom("thread_message_parts").select((Q)=>Q.fn.max("created_at").as("max")).where("run_id","=",$).executeTakeFirst();if(!Z?.max)return null;let X=new Date(Z.max).getTime();return Number.isFinite(X)?X:null}async maxCreatedAtMsForMessage($,Z){let X=await this.db.selectFrom("thread_message_parts").select((Y)=>Y.fn.max("created_at").as("max")).where("run_id","=",$).where("message_id","=",Z).executeTakeFirst();if(!X?.max)return null;let Q=new Date(X.max).getTime();return Number.isFinite(Q)?Q:null}async loadWindow($,Z){let X=await this.db.selectFrom("thread_message_parts").select(["message_id"]).where("thread_id","=",$).where("kind","=","finish").orderBy("created_at","desc").orderBy("id","desc").limit(Z.limit).offset(Z.offset??0).execute(),Q=await this.db.selectFrom("thread_message_parts").select((W)=>W.fn.count("id").as("count")).where("thread_id","=",$).where("kind","=","finish").executeTakeFirst(),Y=Number(Q?.count??0),G=Z.includeInFlight&&(Z.offset??0)===0?await this.db.selectFrom("thread_message_parts as p").select("p.message_id").distinct().where("p.thread_id","=",$).where((W)=>W.not(W.exists(W.selectFrom("thread_message_parts as f").select("f.id").whereRef("f.message_id","=","p.message_id").where("f.thread_id","=",$).where("f.kind","=","finish")))).execute():[],J=[...X.map((W)=>W.message_id),...G.map((W)=>W.message_id)];if(J.length===0)return{messages:[],total:Y};let K=await this.db.selectFrom("thread_message_parts").selectAll().where("thread_id","=",$).where("message_id","in",J).orderBy("seq","asc").execute();return{messages:Fa0(K),total:Y}}async backfillFromMessages($,Z){let X=[],Q=0;for(let Y of $)X.push({id:`${Z.runId}:${Y.id}:content`,seq:Q++,org_id:Z.orgId,thread_id:Z.threadId,run_id:Z.runId,message_id:Y.id,role:Y.role,kind:"text",payload:Y.parts,payload_ref:null,metadata:Y.metadata??null,created_at:Y.created_at}),X.push({id:`${Z.runId}:${Y.id}:finish`,seq:Q++,org_id:Z.orgId,thread_id:Z.threadId,run_id:Z.runId,message_id:Y.id,role:Y.role,kind:"finish",payload:{},payload_ref:null,metadata:null,created_at:Y.created_at});await this.appendParts(X)}}var E38=50000000,iW4=1e5,nW4=25,tW4,oW4;var j38=O(()=>{W5();tW4=/\u0000/g,oW4=/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g});import{sql as Xg}from"kysely";function uE($){return typeof $==="string"?$:$.toISOString()}function P38($){return $.replace(/[\\%_]/g,"\\$&")}class Ba0{inner;organizationId;constructor($,Z){this.inner=$;this.organizationId=Z}requireOrg(){if(!this.organizationId)throw Error("OrgScopedThreadStorage: thread operations require an authenticated organization");return this.organizationId}setOrganizationId($){this.organizationId=$}getOrganizationId(){return this.organizationId}create($){let Z=this.requireOrg();return this.inner.create({...$,organization_id:Z})}get($){return this.inner.get($,this.requireOrg())}update($,Z){return this.inner.update($,this.requireOrg(),Z)}pinRuntimeIfUnset($,Z){return this.inner.pinRuntimeIfUnset($,this.requireOrg(),Z)}completeRunIfNotCompleted($){return this.inner.completeRunIfNotCompleted($,this.requireOrg())}markRunFailed($,Z,X){return this.inner.markRunFailed($,this.requireOrg(),Z,X)}requiresActionIfInProgress($){return this.inner.requiresActionIfInProgress($,this.requireOrg())}forceFailIfInProgress($,Z){return this.inner.forceFailIfInProgress($,this.requireOrg(),Z)}delete($){return this.inner.delete($,this.requireOrg())}list($,Z){return this.inner.list(this.requireOrg(),$,Z)}listByTriggerIds($,Z){return this.inner.listByTriggerIds(this.requireOrg(),$,Z)}findLastUsedByVirtualMcpIds($){return this.inner.findLastUsedByVirtualMcpIds(this.requireOrg(),$)}bumpProgress($){return this.inner.bumpProgress($,this.requireOrg())}getProgress($){return this.inner.getProgress($,this.requireOrg())}listMessages($,Z){return this.inner.listMessages($,this.requireOrg(),Z)}listWithLastMessage($){return this.inner.listWithLastMessage(this.requireOrg(),$)}messageParts(){return this.inner.messageParts()}getRunFence($){return this.inner.getRunFence($)}setRunFence($,Z){return this.inner.setRunFence($,Z)}setCancelRequested($,Z){return this.inner.setCancelRequested($,Z)}getCancelRequestedAt($){return this.inner.getCancelRequestedAt($)}clearCancelRequested($){return this.inner.clearCancelRequested($)}bumpAckedSeq($,Z,X){return this.inner.bumpAckedSeq($,this.requireOrg(),Z,X)}getAckedSeq($){return this.inner.getAckedSeq($,this.requireOrg())}}class Qg{db;constructor($){this.db=$}messageParts(){return new wa0(this.db)}async create($){let Z=$.id??J4("thrd"),X=new Date().toISOString();if(!$.organization_id)throw Error("organization_id is required");if(!$.created_by)throw Error("created_by is required");if(!$.title)$.title=NB;let Q={id:Z,organization_id:$.organization_id,title:$.title,description:$.description??null,status:$.status??"completed",trigger_id:$.trigger_id??null,virtual_mcp_id:$.virtual_mcp_id??"",branch:$.branch??null,sandbox_provider_kind:$.sandbox_provider_kind??null,harness_id:$.harness_id??null,created_at:X,updated_at:X,created_by:$.created_by,updated_by:$.updated_by??null,...$.message_storage_version!==void 0?{message_storage_version:$.message_storage_version}:{},...$.metadata!==void 0?{metadata:JSON.stringify($.metadata)}:{}},Y=await this.db.insertInto("threads").values(Q).onConflict((J)=>J.column("id").doNothing()).returningAll().executeTakeFirst();if(Y)return{...this.threadFromDbRow(Y),isNew:!0};let G=await this.db.selectFrom("threads").selectAll().where("id","=",Z).where("organization_id","=",$.organization_id).executeTakeFirstOrThrow();return{...this.threadFromDbRow(G),isNew:!1}}async get($,Z){let X=await this.db.selectFrom("threads").selectAll().where("id","=",$).where("organization_id","=",Z).executeTakeFirst();return X?this.threadFromDbRow(X):null}async update($,Z,X){let Y={updated_at:new Date().toISOString()};if(X.title!==void 0)Y.title=X.title;if(X.description!==void 0)Y.description=X.description;if(X.updated_by!==void 0)Y.updated_by=X.updated_by;if(X.hidden!==void 0)Y.hidden=X.hidden;if(X.status!==void 0)Y.status=X.status;if(X.context_start_message_id!==void 0)Y.context_start_message_id=X.context_start_message_id;if(X.run_owner_pod!==void 0)Y.run_owner_pod=X.run_owner_pod;if(X.run_config!==void 0)Y.run_config=X.run_config?JSON.stringify(X.run_config):null;if(X.run_started_at!==void 0)Y.run_started_at=X.run_started_at;if(X.last_progress_at!==void 0)Y.last_progress_at=X.last_progress_at;if(X.failure_reason!==void 0)Y.failure_reason=X.failure_reason;if(X.failure_kind!==void 0)Y.failure_kind=X.failure_kind;if(X.metadata!==void 0)Y.metadata=JSON.stringify(X.metadata);if(X.branch!==void 0)Y.branch=X.branch;if(X.virtual_mcp_id!==void 0)Y.virtual_mcp_id=X.virtual_mcp_id;if(X.sandbox_provider_kind!==void 0)Y.sandbox_provider_kind=X.sandbox_provider_kind;if(X.harness_id!==void 0)Y.harness_id=X.harness_id;if(X.message_storage_version!==void 0)Y.message_storage_version=X.message_storage_version;await this.db.updateTable("threads").set(Y).where("id","=",$).where("organization_id","=",Z).execute();let G=await this.get($,Z);if(!G)throw Error("Thread not found after update");return G}async pinRuntimeIfUnset($,Z,X){let Q=await this.db.updateTable("threads").set({harness_id:X.harnessId,sandbox_provider_kind:Xg`coalesce(${Xg.ref("sandbox_provider_kind")}, ${X.sandboxProviderKind})`,branch:Xg`coalesce(${Xg.ref("branch")}, ${X.branch})`,updated_at:new Date().toISOString(),...X.messageStorageVersion!==void 0?{message_storage_version:X.messageStorageVersion}:{}}).where("id","=",$).where("organization_id","=",Z).where("harness_id","is",null).where((Y)=>X.sandboxProviderKind===null?Y("sandbox_provider_kind","is",null):Y.or([Y("sandbox_provider_kind","is",null),Y("sandbox_provider_kind","=",X.sandboxProviderKind)])).returningAll().executeTakeFirst();if(Q)return{thread:this.threadFromDbRow(Q),claimed:!0};return{thread:await this.get($,Z),claimed:!1}}async completeRunIfNotCompleted($,Z){let Q=(await this.db.updateTable("threads").set({status:"completed",run_owner_pod:null,run_config:null,run_started_at:null,updated_at:new Date().toISOString()}).where("id","=",$).where("organization_id","=",Z).where("status","=","in_progress").returningAll().execute())[0];return Q?this.threadFromDbRow(Q):null}async markRunFailed($,Z,X,Q){let G=(await this.db.updateTable("threads").set({status:"failed",failure_reason:X,failure_kind:Q,run_owner_pod:null,run_config:null,run_started_at:null,updated_at:new Date().toISOString()}).where("id","=",$).where("organization_id","=",Z).where("status","=","in_progress").returningAll().execute())[0];return G?this.threadFromDbRow(G):null}async requiresActionIfInProgress($,Z){let Q=(await this.db.updateTable("threads").set({status:"requires_action",run_config:null,run_started_at:null,updated_at:new Date().toISOString()}).where("id","=",$).where("organization_id","=",Z).where("status","=","in_progress").returningAll().execute())[0];return Q?this.threadFromDbRow(Q):null}async forceFailIfInProgress($,Z,X){let Q=new Date().toISOString(),Y=this.db.updateTable("threads").set({status:"failed",updated_at:Q}).where("id","=",$).where("organization_id","=",Z).where("status","=","in_progress");if(X!=null)Y=Y.where("run_fence_token","=",X);return((await Y.executeTakeFirst()).numUpdatedRows??BigInt(0))>BigInt(0)}async delete($,Z){await this.db.deleteFrom("threads").where("id","=",$).where("organization_id","=",Z).execute()}async list($,Z,X){let Q=X?.includeArchived===!0,Y=this.db.selectFrom("threads").selectAll().where("organization_id","=",$).where("hidden","=",Q).orderBy("updated_at","desc");if(Z)Y=Y.where("created_by","=",Z);let G=X?.virtualMcpId??X?.agentId;if(G)Y=Y.where("virtual_mcp_id","=",G);if(X?.hasTrigger===!0)Y=Y.where("trigger_id","is not",null);else if(X?.hasTrigger===!1)Y=Y.where("trigger_id","is",null);if(X?.startDate)Y=Y.where("updated_at",">=",X.startDate);if(X?.endDate)Y=Y.where("updated_at","<=",X.endDate);if(X?.search)Y=Y.where("title","ilike",`%${P38(X.search)}%`);if(X?.status)Y=Y.where("status","=",X.status);let J=this.db.selectFrom("threads").select((H)=>H.fn.count("id").as("count")).where("organization_id","=",$).where("hidden","=",Q);if(Z)J=J.where("created_by","=",Z);if(G)J=J.where("virtual_mcp_id","=",G);if(X?.hasTrigger===!0)J=J.where("trigger_id","is not",null);else if(X?.hasTrigger===!1)J=J.where("trigger_id","is",null);if(X?.startDate)J=J.where("updated_at",">=",X.startDate);if(X?.endDate)J=J.where("updated_at","<=",X.endDate);if(X?.search)J=J.where("title","ilike",`%${P38(X.search)}%`);if(X?.status)J=J.where("status","=",X.status);if(X?.limit)Y=Y.limit(X.limit);if(X?.offset)Y=Y.offset(X.offset);let[K,W]=await Promise.all([Y.execute(),J.executeTakeFirst()]);return{threads:K.map((H)=>this.threadFromDbRow(H)),total:Number(W?.count||0)}}async listByTriggerIds($,Z,X){if(Z.length===0)return{threads:[],total:0};let Q=this.db.selectFrom("threads").selectAll().where("organization_id","=",$).where("hidden","=",!1).where("trigger_id","in",Z).orderBy("updated_at","desc"),Y=this.db.selectFrom("threads").select((K)=>K.fn.count("id").as("count")).where("organization_id","=",$).where("hidden","=",!1).where("trigger_id","in",Z);if(X?.limit)Q=Q.limit(X.limit);if(X?.offset)Q=Q.offset(X.offset);let[G,J]=await Promise.all([Q.execute(),Y.executeTakeFirst()]);return{threads:G.map((K)=>this.threadFromDbRow(K)),total:Number(J?.count||0)}}async findLastUsedByVirtualMcpIds($,Z){let X=new Map;if(Z.length===0)return X;let Q=await this.db.selectFrom("threads").distinctOn("virtual_mcp_id").select(["virtual_mcp_id","created_by","created_at"]).where("organization_id","=",$).where("virtual_mcp_id","in",Z).orderBy("virtual_mcp_id").orderBy("created_at","desc").execute();for(let Y of Q)X.set(Y.virtual_mcp_id,{last_used_at:uE(Y.created_at),last_used_by:Y.created_by});return X}async listWithLastMessage($,Z){let X=this.db.selectFrom("threads as t").innerJoinLateral((Y)=>Y.selectFrom("thread_messages as m").selectAll().whereRef("m.thread_id","=","t.id").orderBy("m.created_at","desc").orderBy("m.id","desc").limit(1).as("lm"),(Y)=>Y.onTrue()).selectAll("t").select(["lm.id as lm_id","lm.thread_id as lm_thread_id","lm.metadata as lm_metadata","lm.parts as lm_parts","lm.role as lm_role","lm.created_at as lm_created_at","lm.updated_at as lm_updated_at"]).where("t.organization_id","=",$).where("t.hidden","=",!1).where("lm.role","=",Z.lastMessageRole).orderBy("lm.created_at","desc").limit(Z.limit);if(Z.createdBy)X=X.where("t.created_by","=",Z.createdBy);return(await X.execute()).map((Y)=>({thread:this.threadFromDbRow(Y),lastMessage:this.messageFromDbRow({id:Y.lm_id,thread_id:Y.lm_thread_id,metadata:Y.lm_metadata,parts:Y.lm_parts,role:Y.lm_role,created_at:Y.lm_created_at,updated_at:Y.lm_updated_at})}))}async listMessages($,Z,X){if(!await this.get($,Z))return{messages:[],total:0};let Y=X?.sort??"asc",G=this.db.selectFrom("thread_messages").selectAll().where("thread_id","=",$).orderBy("created_at",Y).orderBy("id",Y),J=this.db.selectFrom("thread_messages").select((H)=>H.fn.count("id").as("count")).where("thread_id","=",$);if(X?.limit)G=G.limit(X.limit);if(X?.offset)G=G.offset(X.offset);let[K,W]=await Promise.all([G.execute(),J.executeTakeFirst()]);return{messages:K.map((H)=>this.messageFromDbRow(H)),total:Number(W?.count||0)}}async bumpProgress($,Z){await this.db.updateTable("threads").set({last_progress_at:Xg`now()`}).where("id","=",$).where("organization_id","=",Z).execute()}async getProgress($,Z){let X=await this.db.selectFrom("threads").select(["last_progress_at","run_started_at"]).where("id","=",$).where("organization_id","=",Z).executeTakeFirst();if(!X)return null;let Q=(Y)=>{if(Y==null)return null;let G=(Y instanceof Date?Y:new Date(Y)).getTime();return Number.isNaN(G)?null:G};return{lastProgressAt:Q(X.last_progress_at),runStartedAt:Q(X.run_started_at)}}async getRunFence($){return(await this.db.selectFrom("threads").select("run_fence_token").where("id","=",$).executeTakeFirst())?.run_fence_token??null}async setRunFence($,Z){await this.db.updateTable("threads").set(Z===null?{run_fence_token:null,run_acked_seq:null}:{run_fence_token:Z,run_acked_seq:null,status:"in_progress"}).where("id","=",$).execute()}async setCancelRequested($,Z){await this.db.updateTable("threads").set({cancel_requested_at:Xg`now()`}).where("id","=",$).where("organization_id","=",Z).execute()}async getCancelRequestedAt($){let X=(await this.db.selectFrom("threads").select("cancel_requested_at").where("id","=",$).executeTakeFirst())?.cancel_requested_at;if(X==null)return null;return X instanceof Date?X:new Date(X)}async clearCancelRequested($){await this.db.updateTable("threads").set({cancel_requested_at:null}).where("id","=",$).execute()}async bumpAckedSeq($,Z,X,Q){await this.db.updateTable("threads").set({run_acked_seq:Q}).where("id","=",$).where("organization_id","=",Z).where((Y)=>Y.or([Y("run_acked_seq","is",null),Y("run_acked_seq","<",Q)])).execute()}async getAckedSeq($,Z){return(await this.db.selectFrom("threads").select("run_acked_seq").where("id","=",$).where("organization_id","=",Z).executeTakeFirst())?.run_acked_seq??0}threadFromDbRow($){let Z={};if($.metadata!=null)if(typeof $.metadata==="string")try{Z=JSON.parse($.metadata)}catch(X){console.error(`Failed to parse metadata for thread ${$.id}:`,$.metadata,X)}else Z=$.metadata;return{id:$.id,organization_id:$.organization_id,title:$.title,description:$.description,status:$.status,trigger_id:$.trigger_id??null,context_start_message_id:$.context_start_message_id??null,run_owner_pod:$.run_owner_pod??null,run_config:$.run_config??null,run_started_at:$.run_started_at?uE($.run_started_at):null,last_progress_at:$.last_progress_at?uE($.last_progress_at):null,virtual_mcp_id:$.virtual_mcp_id??"",branch:$.branch??null,sandbox_provider_kind:$.sandbox_provider_kind??null,harness_id:$.harness_id??null,metadata:Z,created_at:uE($.created_at),updated_at:uE($.updated_at),created_by:$.created_by,updated_by:$.updated_by??void 0,hidden:!!$.hidden,message_storage_version:$.message_storage_version??1,link_transport:$.link_transport??null}}messageFromDbRow($){let Z,X;try{Z=$.metadata?JSON.parse($.metadata):void 0}catch(Q){console.error(`Failed to parse metadata for message ${$.id}:`,$.metadata,Q),Z=void 0}try{X=typeof $.parts==="string"?JSON.parse($.parts):$.parts}catch(Q){console.error(`Failed to parse parts for message ${$.id}:`,$.parts,Q),X=[]}return{id:$.id,thread_id:$.thread_id,metadata:Z,parts:X,role:$.role,created_at:uE($.created_at),updated_at:uE($.updated_at)}}}var Oa0=O(()=>{lX();UB();j38()});import{sql as La0}from"kysely";function hQ0($){if($==null)return null;return typeof $==="string"?$:$.toISOString()}function uQ0($){return`msg_async_stub_${$}`}async function Da0($,Z){await $.deleteFrom("thread_messages").where("id","=",uQ0(Z)).execute(),await $.deleteFrom("thread_message_parts").where("message_id","=",uQ0(Z)).execute()}function aW4($){if($==null)return null;if(typeof $!=="string")return $;try{return JSON.parse($)}catch{return null}}function Ea0($){return{id:$.id,interactionId:$.interaction_id??null,toolCallId:$.tool_call_id,organizationId:$.organization_id,threadId:$.thread_id,messageId:$.message_id??null,provider:$.provider,modelId:$.model_id,query:$.query,status:$.status,attempts:$.attempts??0,lastPolledAt:hQ0($.last_polled_at),lastError:$.last_error??null,inputTokens:$.input_tokens??null,outputTokens:$.output_tokens??null,citations:aW4($.citations),resultUri:$.result_uri??null,resultPreview:$.result_preview??null,resultContent:$.result_content??null,createdAt:hQ0($.created_at)??"",updatedAt:hQ0($.updated_at)??"",completedAt:hQ0($.completed_at)}}class za0{inner;organizationId;constructor($,Z){this.inner=$;this.organizationId=Z}requireOrg(){if(!this.organizationId)throw Error("OrgScopedAsyncResearchJobStorage: requires an authenticated organization");return this.organizationId}setOrganizationId($){this.organizationId=$}upsertPending($){return this.inner.upsertPending({organizationId:this.requireOrg(),...$})}findByToolCall($){return this.inner.findByToolCall(this.requireOrg(),$)}markPolling($,Z,X){return this.inner.markPolling(this.requireOrg(),$,Z,X)}recordPoll($,Z){return this.inner.recordPoll(this.requireOrg(),$,Z)}markCompleted($,Z){return this.inner.markCompleted(this.requireOrg(),$,Z)}markFailed($,Z){return this.inner.markFailed(this.requireOrg(),$,Z)}markCancelled($,Z){return this.inner.markCancelled(this.requireOrg(),$,Z)}}class xp{db;constructor($){this.db=$}async upsertPending($){let Z=new Date().toISOString(),X=await this.db.insertInto("async_research_jobs").values({organization_id:$.organizationId,thread_id:$.threadId,tool_call_id:$.toolCallId,message_id:$.messageId??null,provider:$.provider,model_id:$.modelId,query:$.query,status:"pending",attempts:0,updated_at:Z}).onConflict((Y)=>Y.columns(["organization_id","tool_call_id"]).doNothing()).returningAll().executeTakeFirst();if(X)return Ea0(X);let Q=await this.db.selectFrom("async_research_jobs").selectAll().where("organization_id","=",$.organizationId).where("tool_call_id","=",$.toolCallId).executeTakeFirstOrThrow();return Ea0(Q)}async findByToolCall($,Z){let X=await this.db.selectFrom("async_research_jobs").selectAll().where("organization_id","=",$).where("tool_call_id","=",Z).executeTakeFirst();return X?Ea0(X):null}async markPolling($,Z,X,Q){let Y=new Date().toISOString();await this.db.transaction().execute(async(G)=>{if(await G.updateTable("async_research_jobs").set({status:"polling",interaction_id:X,last_polled_at:Y,updated_at:Y}).where("organization_id","=",$).where("tool_call_id","=",Z).execute(),(await G.selectFrom("threads").select("message_storage_version").where("id","=",Q.threadId).where("organization_id","=",$).executeTakeFirst())?.message_storage_version!==2)return;let K=uQ0(Z);await G.insertInto("thread_message_parts").values([{id:`${Q.threadId}:${K}:0`,seq:0,org_id:$,thread_id:Q.threadId,run_id:Q.threadId,message_id:K,role:"assistant",kind:"tool_call",payload:JSON.stringify({type:`tool-${Q.toolName}`,toolCallId:Z,state:"input-available",input:{query:Q.query}}),payload_ref:null,metadata:null,created_at:Y},{id:`${Q.threadId}:${K}:finish`,seq:1,org_id:$,thread_id:Q.threadId,run_id:Q.threadId,message_id:K,role:"assistant",kind:"finish",payload:JSON.stringify({}),payload_ref:null,metadata:null,created_at:Y}]).onConflict((W)=>W.column("id").doNothing()).execute()})}async recordPoll($,Z,X){let Q=new Date().toISOString();await this.db.updateTable("async_research_jobs").set({attempts:La0`attempts + 1`,last_polled_at:Q,...X!==void 0?{last_error:X}:{},updated_at:Q}).where("organization_id","=",$).where("tool_call_id","=",Z).execute()}async markCompleted($,Z,X){let Q=new Date().toISOString();await this.db.transaction().execute(async(Y)=>{await Y.updateTable("async_research_jobs").set({status:"completed",input_tokens:X.inputTokens,output_tokens:X.outputTokens,citations:JSON.stringify(X.citations),result_uri:X.resultUri,result_preview:X.resultPreview,result_content:X.resultContent,completed_at:Q,updated_at:Q}).where("organization_id","=",$).where("tool_call_id","=",Z).execute(),await Da0(Y,Z)})}async markFailed($,Z,X){let Q=new Date().toISOString();await this.db.transaction().execute(async(Y)=>{await Y.updateTable("async_research_jobs").set({status:"failed",last_error:X,completed_at:Q,updated_at:Q}).where("organization_id","=",$).where("tool_call_id","=",Z).execute(),await Da0(Y,Z)})}async markCancelled($,Z,X){let Q=new Date().toISOString();await this.db.transaction().execute(async(Y)=>{await Y.updateTable("async_research_jobs").set({status:"cancelled",last_error:X??null,completed_at:Q,updated_at:Q}).where("organization_id","=",$).where("tool_call_id","=",Z).execute(),await Da0(Y,Z)})}async sweepAbandoned($){let Z=new Date(Date.now()-$).toISOString(),X=new Date().toISOString();return await this.db.transaction().execute(async(Q)=>{let Y=await Q.updateTable("async_research_jobs").set({status:"abandoned",completed_at:X,updated_at:X,last_error:La0`COALESCE(last_error, '') || ' [abandoned by sweeper]'`}).where("status","in",["pending","polling"]).where(La0`COALESCE(last_polled_at, created_at) < ${Z}::timestamptz`).returning(["tool_call_id"]).execute();if(Y.length===0)return 0;let G=Y.map((J)=>uQ0(J.tool_call_id));return await Q.deleteFrom("thread_messages").where("id","in",G).execute(),await Q.deleteFrom("thread_message_parts").where("message_id","in",G).execute(),Y.length})}}var ja0=()=>{};function cQ0(){let $=new Map;function Z(Q,Y){let G=$.get(Y);if(G)return G;let J=new y9({name:`outbound-client-${Y}`,version:"1.0.0"},{capabilities:{tasks:{list:{},cancel:{},requests:{tool:{call:{}}}}},jsonSchemaValidator:T5});J.onclose=()=>{$.delete(Y)};let K=J.connect(Q).then(()=>J).catch((W)=>{throw $.delete(Y),W});return $.set(Y,K),K}return Object.assign(Z,{[Symbol.asyncDispose]:async()=>{let Q=[];for(let[Y,G]of $)Q.push(G.then((J)=>J.close()).catch(()=>{}));await Promise.all(Q),$.clear()}})}var Pa0=O(()=>{KW();pX()});import{sql as sW4}from"kysely";function A38($){return $ instanceof Date?$.toISOString():String($)}class Aa0{db;vault;constructor($,Z){this.db=$;this.vault=Z}rowToInfo($){return{id:$.id,organizationId:$.organization_id,scope:$.scope,userId:$.user_id,name:$.name,description:$.description,createdBy:$.created_by,createdAt:A38($.created_at),updatedBy:$.updated_by,updatedAt:A38($.updated_at)}}assertVisible($,Z){if($.scope==="user"&&$.user_id!==Z)throw new FB($.id)}async create($){let Z=J4("sec"),X=await this.vault.encrypt($.value),Q=new Date,Y=await this.db.insertInto("secrets").values({id:Z,organization_id:$.organizationId,scope:$.scope.kind,user_id:$.scope.kind==="user"?$.scope.userId:null,name:$.name,encrypted_value:X,description:$.description??null,created_by:$.createdBy,created_at:Q,updated_by:$.createdBy,updated_at:Q}).returning(lQ0).executeTakeFirstOrThrow();return this.rowToInfo(Y)}async update($){let Z=await this.db.selectFrom("secrets").where("id","=",$.id).where("organization_id","=",$.organizationId).select(["id","scope","user_id"]).executeTakeFirst();if(!Z)throw new X3($.id);this.assertVisible(Z,$.callerUserId);let X={updated_by:$.updatedBy,updated_at:new Date};if($.value!==void 0)X.encrypted_value=await this.vault.encrypt($.value);if($.description!==void 0)X.description=$.description;let Q=await this.db.updateTable("secrets").set(X).where("id","=",$.id).where("organization_id","=",$.organizationId).returning(lQ0).executeTakeFirstOrThrow();return this.rowToInfo(Q)}async delete($,Z,X){let Q=await this.db.selectFrom("secrets").where("id","=",$).where("organization_id","=",Z).select(["id","scope","user_id"]).executeTakeFirst();if(!Q)throw new X3($);this.assertVisible(Q,X),await this.db.deleteFrom("secrets").where("id","=",$).where("organization_id","=",Z).execute()}async list($){let Z=this.db.selectFrom("secrets").where("organization_id","=",$.organizationId).select(lQ0);if($.scope?.kind==="user")Z=Z.where("scope","=","user").where("user_id","=",$.scope.userId);else if($.scope?.kind==="organization")Z=Z.where("scope","=","organization");else Z=Z.where((Q)=>Q.or([Q("scope","=","organization"),Q.and([Q("scope","=","user"),Q("user_id","=",$.callerUserId)])]));return(await Z.orderBy("created_at","desc").execute()).map((Q)=>this.rowToInfo(Q))}async findById($,Z,X){let Q=await this.db.selectFrom("secrets").where("id","=",$).where("organization_id","=",Z).select(lQ0).executeTakeFirst();if(!Q)throw new X3($);return this.assertVisible(Q,X),this.rowToInfo(Q)}async resolveById($,Z,X){let Q=await this.db.selectFrom("secrets").where("id","=",$).where("organization_id","=",Z).selectAll().executeTakeFirst();if(!Q)throw new X3($);this.assertVisible(Q,X);let Y=await this.vault.decrypt(Q.encrypted_value);return{info:this.rowToInfo(Q),value:Y}}async resolveByName($){let Z=this.db.selectFrom("secrets").where("organization_id","=",$.organizationId).where("scope","=",$.scope.kind).where(sW4`lower(name) = lower(${$.name})`).selectAll();if($.scope.kind==="user")Z=Z.where("user_id","=",$.scope.userId);let X=await Z.executeTakeFirst();if(!X)throw new X3(`${$.scope.kind}:${$.name}`);let Q=await this.vault.decrypt(X.encrypted_value);return{info:this.rowToInfo(X),value:Q}}}var lQ0,X3,FB;var vp=O(()=>{lX();lQ0=["id","organization_id","scope","user_id","name","description","created_by","created_at","updated_by","updated_at"];X3=class X3 extends Error{constructor($){super(`Secret ${$} not found`);this.name="SecretNotFoundError"}};FB=class FB extends Error{constructor($){super(`Access denied for secret ${$}`);this.name="SecretAccessDeniedError"}}});import{sql as eW4}from"kysely";function T38($){return $ instanceof Date?$.toISOString():String($)}class Ta0{db;vault;constructor($,Z){this.db=$;this.vault=Z}rowToInfo($){return{id:$.id,organizationId:$.organization_id,name:$.name,description:$.description,bucket:$.bucket,region:$.region,endpoint:$.endpoint,forcePathStyle:$.force_path_style,prefix:$.prefix,publicUrlBase:$.public_url_base,credentialType:$.credential_type??"static",refreshUrl:$.refresh_url,siteSlug:$.site_slug,createdBy:$.created_by,createdAt:T38($.created_at),updatedBy:$.updated_by,updatedAt:T38($.updated_at)}}async create($){let Z=J4("fcfg"),X=await this.vault.encrypt(JSON.stringify($.credentials)),Q=new Date,Y=await this.db.insertInto("org_file_configs").values({id:Z,organization_id:$.organizationId,name:$.name,description:$.description??null,bucket:$.bucket,region:$.region,endpoint:$.endpoint??null,force_path_style:$.forcePathStyle??!1,prefix:$.prefix??null,public_url_base:$.publicUrlBase??null,credential_type:$.credentials.type,refresh_url:$.refreshUrl??null,site_slug:$.siteSlug??null,encrypted_credentials:X,created_by:$.createdBy,created_at:Q,updated_by:$.createdBy,updated_at:Q}).returning(dQ0).executeTakeFirstOrThrow();return this.rowToInfo(Y)}async update($){if(!await this.db.selectFrom("org_file_configs").where("id","=",$.id).where("organization_id","=",$.organizationId).select(["id"]).executeTakeFirst())throw new Yg($.id);let X={updated_by:$.updatedBy,updated_at:new Date};if($.name!==void 0)X.name=$.name;if($.description!==void 0)X.description=$.description;if($.bucket!==void 0)X.bucket=$.bucket;if($.region!==void 0)X.region=$.region;if($.endpoint!==void 0)X.endpoint=$.endpoint;if($.forcePathStyle!==void 0)X.force_path_style=$.forcePathStyle;if($.prefix!==void 0)X.prefix=$.prefix;if($.publicUrlBase!==void 0)X.public_url_base=$.publicUrlBase;if($.refreshUrl!==void 0)X.refresh_url=$.refreshUrl;if($.siteSlug!==void 0)X.site_slug=$.siteSlug;if($.credentials!==void 0)X.credential_type=$.credentials.type,X.encrypted_credentials=await this.vault.encrypt(JSON.stringify($.credentials));let Q=await this.db.updateTable("org_file_configs").set(X).where("id","=",$.id).where("organization_id","=",$.organizationId).returning(dQ0).executeTakeFirstOrThrow();return this.rowToInfo(Q)}async delete($,Z){if(!await this.db.selectFrom("org_file_configs").where("id","=",$).where("organization_id","=",Z).select(["id"]).executeTakeFirst())throw new Yg($);await this.db.deleteFrom("org_file_configs").where("id","=",$).where("organization_id","=",Z).execute()}async list($){return(await this.db.selectFrom("org_file_configs").where("organization_id","=",$).select(dQ0).orderBy("created_at","desc").execute()).map((X)=>this.rowToInfo(X))}async findById($,Z){let X=await this.db.selectFrom("org_file_configs").where("id","=",$).where("organization_id","=",Z).select(dQ0).executeTakeFirst();if(!X)throw new Yg($);return this.rowToInfo(X)}async resolveById($,Z){let X=await this.db.selectFrom("org_file_configs").where("id","=",$).where("organization_id","=",Z).selectAll().executeTakeFirst();if(!X)throw new Yg($);return{info:this.rowToInfo(X),credentials:await this.decodeCredentials(X)}}async resolveByName($){let Z=await this.db.selectFrom("org_file_configs").where("organization_id","=",$.organizationId).where(eW4`lower(name) = lower(${$.name})`).selectAll().executeTakeFirst();if(!Z)throw new Yg($.name);return{info:this.rowToInfo(Z),credentials:await this.decodeCredentials(Z)}}async decodeCredentials($){if($.credential_type==="managed")return{type:"managed"};let Z=await this.vault.decrypt($.encrypted_credentials),X=JSON.parse(Z);if(($.credential_type??"static")==="sts-session")return{type:"sts-session",apiKey:String(X.apiKey)};return{type:"static",accessKeyId:String(X.accessKeyId),secretAccessKey:String(X.secretAccessKey)}}}var dQ0,Yg;var I38=O(()=>{lX();dQ0=["id","organization_id","name","description","bucket","region","endpoint","force_path_style","prefix","public_url_base","credential_type","refresh_url","site_slug","created_by","created_at","updated_by","updated_at"];Yg=class Yg extends Error{constructor($){super(`File config ${$} not found`);this.name="OrgFileConfigNotFoundError"}}});function mQ0($){return Ia0.test($)}var Ia0;var iQ0=O(()=>{Ia0=/^[a-z0-9][a-z0-9-]{0,59}$/});function R38($){return $ instanceof Date?$.toISOString():String($)}function Ra0($){return{slug:$.slug,organizationId:$.organization_id,source:$.source,createdBy:$.created_by,createdAt:R38($.created_at),updatedBy:$.updated_by,updatedAt:R38($.updated_at)}}class Ma0{db;constructor($){this.db=$}async claimSite($){if(!mQ0($.slug))throw Error(`Invalid site slug "${$.slug}" \u2014 must be 1-60 chars of lowercase letters, digits, or hyphens, starting with a letter or digit`);let Z=new Date,X=await this.db.insertInto("org_sites").values({slug:$.slug,organization_id:$.organizationId,source:$.source??"deco-import",created_by:$.by,created_at:Z,updated_by:$.by,updated_at:Z}).onConflict((G)=>G.column("slug").doNothing()).returningAll().executeTakeFirst();if(X)return Ra0(X);let Q=await this.getBySlug($.slug);if(!Q)throw new qa0($.slug,"unknown");if(Q.organizationId!==$.organizationId)throw new qa0($.slug,Q.organizationId);let Y=await this.db.updateTable("org_sites").set({source:$.source??Q.source,updated_by:$.by,updated_at:Z}).where("slug","=",$.slug).where("organization_id","=",$.organizationId).returningAll().executeTakeFirstOrThrow();return Ra0(Y)}async getBySlug($){let Z=await this.db.selectFrom("org_sites").selectAll().where("slug","=",$).executeTakeFirst();return Z?Ra0(Z):null}async isOwnedBy($,Z){return!!await this.db.selectFrom("org_sites").select("slug").where("slug","=",$).where("organization_id","=",Z).executeTakeFirst()}}var qa0;var q38=O(()=>{iQ0();qa0=class qa0 extends Error{slug;ownerOrganizationId;constructor($,Z){super(`Site slug "${$}" is already owned by another organization`);this.slug=$;this.ownerOrganizationId=Z;this.name="OrgSiteConflictError"}}});function M38($,Z){return $?.startsWith(`${fp[Z]}:`)??!1}function ka0($){let Z=0;for(let X of $){if(X.action!=="status_changed")continue;if(X.data?.to!=="in_review")continue;Z=Math.max(Z,new Date(X.occurredAt).getTime())}return Z}function $H4($,Z){let X=ka0($),Q=new Map;for(let Y of $){if(Y.action!=="review_approved"&&Y.action!=="review_changes_requested")continue;if(new Date(Y.occurredAt).getTime()<X)continue;let G=Y.data??{};if(G.reviewer!=="qa"&&G.reviewer!=="code_review")continue;if(Y.action==="review_approved"){if(Z?.verifiedOnly&&G.verified!==!0)continue;Q.set(G.reviewer,"approved")}else Q.set(G.reviewer,"changes_requested")}return Q}function Gg($,Z,X){if(Z.length===0)return!1;let Q=$H4($,X);return Z.every((Y)=>Q.get(Y)==="approved")}var Y9="super-agent",wB,fp,BB,k38="task-board.item.updated",S38="task-board.item.deleted";var xJ=O(()=>{wB=["qa","code_review"],fp={qa:"QA Agent",code_review:"Code Reviewer"},BB={qa:"qa_agent_enabled",code_review:"code_reviewer_enabled"}});function ZH4($){if($&&typeof $==="object"&&!Array.isArray($)){let Z=$.text;if(typeof Z==="string"&&Z.trim())return Z.trim()}return null}function Sa0($){if($.status!=="in_progress")return!1;let Z=$.threads.filter((X)=>X.hasMessages);if(Z.length===0)return!1;return Z.every((X)=>X.status!==null&&XH4.has(X.status))}function QH4($){let Z=typeof $==="string"?(()=>{try{return JSON.parse($)}catch{return null}})():$;if(!Z||typeof Z!=="object")return!1;let X=Z.githubRepo?.url;return typeof X==="string"&&X.length>0}class cE{db;constructor($){this.db=$}inTransaction($){return this.db.isTransaction?$(this.db):this.db.transaction().execute($)}async list($){let X=(await this.db.selectFrom("task_board_items").selectAll().where("organization_id","=",$).orderBy("sort_order","asc").execute()).map((Q)=>this.itemFromDbRow(Q));return await this.attachRefs(X,$),X}async getById($,Z){let X=await this.db.selectFrom("task_board_items").selectAll().where("id","=",$).where("organization_id","=",Z).executeTakeFirst();if(!X)return null;let Q=this.itemFromDbRow(X);return await this.attachRefs([Q],Z),Q}async create($){let Z=J4("board"),X=new Date().toISOString(),Q=$.status??"triage",{minOrder:Y}=await this.db.selectFrom("task_board_items").select((J)=>J.fn.min("sort_order").as("minOrder")).where("organization_id","=",$.organizationId).where("status","=",Q).executeTakeFirstOrThrow(),G=await this.db.insertInto("task_board_items").values({id:Z,organization_id:$.organizationId,title:$.title,description:$.description??null,status:Q,priority:$.priority??"medium",assignee_id:$.assigneeId??null,assigned_by:$.assignedBy??null,due_date:$.dueDate??null,external_key:$.externalKey??null,sort_order:(Y??0)-1,created_by:$.by,created_at:X,updated_by:$.by,updated_at:X}).returningAll().executeTakeFirstOrThrow();return this.itemFromDbRow(G)}async update($,Z,X,Q){let Y=await this.db.updateTable("task_board_items").set({...X.title!==void 0?{title:X.title}:{},...X.description!==void 0?{description:X.description}:{},...X.status!==void 0?{status:X.status}:{},...X.priority!==void 0?{priority:X.priority}:{},...X.assigneeId!==void 0?{assignee_id:X.assigneeId}:{},...X.assignedBy!==void 0?{assigned_by:X.assignedBy}:{},...X.dueDate!==void 0?{due_date:X.dueDate}:{},...X.sortOrder!==void 0?{sort_order:X.sortOrder}:{},updated_by:Q,updated_at:new Date().toISOString()}).where("id","=",$).where("organization_id","=",Z).returningAll().executeTakeFirstOrThrow(),G=this.itemFromDbRow(Y);return await this.attachRefs([G],Z),G}async delete($,Z){await this.inTransaction(async(X)=>{await X.deleteFrom("task_board_item_threads").where("task_board_item_id","=",$).where("organization_id","=",Z).execute(),await X.deleteFrom("task_board_item_prs").where("task_board_item_id","=",$).where("organization_id","=",Z).execute(),await X.deleteFrom("task_board_items").where("id","=",$).where("organization_id","=",Z).execute()})}async setItemTags($,Z,X){await this.inTransaction(async(Q)=>{if(await Q.deleteFrom("task_board_item_tags").where("task_board_item_id","=",$).$if(Z.length>0,(Y)=>Y.where("id","not in",Z)).execute(),Z.length>0)await Q.insertInto("task_board_item_tags").values(Z.map((Y)=>({task_board_item_id:$,id:Y,created_by:X,created_at:new Date().toISOString()}))).onConflict((Y)=>Y.doNothing()).execute()})}async linkThread($,Z,X){await this.db.insertInto("task_board_item_threads").values({task_board_item_id:$,thread_id:Z,organization_id:X}).onConflict((Q)=>Q.columns(["task_board_item_id","thread_id"]).doNothing()).execute()}async linkedTaskIds($,Z){return(await this.db.selectFrom("task_board_item_threads").select("task_board_item_id as taskId").where("thread_id","=",$).where("organization_id","=",Z).execute()).map((Q)=>Q.taskId)}async linkPr($){await this.db.insertInto("task_board_item_prs").values({task_board_item_id:$.taskBoardItemId,organization_id:$.organizationId,url:$.url,pr_number:$.prNumber,repo_owner:$.repoOwner,repo_name:$.repoName,connection_id:$.connectionId??null}).onConflict((Z)=>Z.columns(["task_board_item_id","url"]).doNothing()).execute()}async listPrs($,Z){return(await this.db.selectFrom("task_board_item_prs").select(["url","pr_number as prNumber","repo_owner as repoOwner","repo_name as repoName","connection_id as connectionId","created_at as createdAt"]).where("task_board_item_id","=",$).where("organization_id","=",Z).orderBy("created_at","desc").execute()).map((Q)=>({url:Q.url,number:Q.prNumber,repoOwner:Q.repoOwner,repoName:Q.repoName,connectionId:Q.connectionId??null,createdAt:Q.createdAt instanceof Date?Q.createdAt.toISOString():Q.createdAt}))}async advanceLinkedTasksToReviewOnThreadFinish($,Z){let X=[];for(let Q of await this.linkedTaskIds($,Z)){let Y=await this.getById(Q,Z);if(!Y||!Sa0(Y))continue;X.push(await this.update(Q,Z,{status:"in_review"},Y.updatedBy)),await this.recordActivity({taskBoardItemId:Q,action:"status_changed",actorId:null,data:{from:Y.status,to:"in_review"}}).catch((G)=>console.error("[task-board] in_review activity write failed",G))}return X}async reopenLinkedTasksOnThreadRun($,Z){let X=[];for(let Q of await this.linkedTaskIds($,Z)){let Y=await this.getById(Q,Z);if(!Y||Y.status!=="in_review")continue;X.push(await this.update(Q,Z,{status:"in_progress"},Y.updatedBy))}return X}async claimConflictResolution($,Z,X){let Q=await this.db.updateTable("task_board_items").set({status:"in_progress",updated_by:X,updated_at:new Date().toISOString()}).where("id","=",$).where("organization_id","=",Z).where("status","=","in_review").where("assignee_id","=",Y9).returningAll().executeTakeFirst();if(!Q)return null;let Y=this.itemFromDbRow(Q);return await this.attachRefs([Y],Z),Y}async claimReviewChangesBounce($,Z,X){let Q=await this.db.updateTable("task_board_items").set({status:"in_progress",updated_by:X,updated_at:new Date().toISOString()}).where("id","=",$).where("organization_id","=",Z).where("status","=","in_review").returningAll().executeTakeFirst();if(!Q)return null;let Y=this.itemFromDbRow(Q);return await this.attachRefs([Y],Z),Y}async attachRefs($,Z){if($.length===0)return;await this.inTransaction(async(X)=>{await this.attachThreads(X,$,Z),await this.attachTags(X,$)})}async attachThreads($,Z,X){let Q=Z.map((J)=>J.id),Y=await $.selectFrom("task_board_item_threads as link").innerJoin("threads as t","t.id","link.thread_id").leftJoinLateral((J)=>J.selectFrom("thread_message_parts as p").select("p.payload as payload").whereRef("p.thread_id","=","link.thread_id").where("p.role","=","assistant").where("p.kind","=","text").orderBy("p.created_at","desc").limit(1).as("lastmsg"),(J)=>J.onTrue()).select((J)=>["link.task_board_item_id as taskId","link.thread_id as threadId","link.created_at as createdAt","t.status as status","t.title as title","t.virtual_mcp_id as virtualMcpId","t.metadata as metadata","lastmsg.payload as lastMessagePayload",J.or([J.exists(J.selectFrom("thread_message_parts as mp").select("mp.id").whereRef("mp.thread_id","=","link.thread_id")),J.exists(J.selectFrom("thread_messages as tm").select("tm.id").whereRef("tm.thread_id","=","link.thread_id"))]).as("hasMessages")]).where("link.organization_id","=",X).where("link.task_board_item_id","in",Q).orderBy("link.created_at","desc").execute(),G=new Map;for(let J of Y){let K={threadId:J.threadId,virtualMcpId:J.virtualMcpId??null,status:J.status??null,title:J.title??null,lastMessage:ZH4(J.lastMessagePayload),hasPreview:QH4(J.metadata),hasMessages:!!J.hasMessages,createdAt:J.createdAt instanceof Date?J.createdAt.toISOString():J.createdAt},W=G.get(J.taskId);if(W)W.push(K);else G.set(J.taskId,[K])}for(let J of Z)J.threads=G.get(J.id)??[]}async attachTags($,Z){let X=Z.map((G)=>G.id),Q=await $.selectFrom("task_board_item_tags as link").innerJoin("organization_tags as tag","tag.id","link.id").select(["link.task_board_item_id as taskId","link.created_by as createdBy","link.created_at as createdAt","tag.id as id","tag.name as name","tag.color as color"]).where("link.task_board_item_id","in",X).orderBy("tag.name","asc").execute(),Y=new Map;for(let G of Q){let J={id:G.id,name:G.name,color:G.color??null,createdBy:G.createdBy,createdAt:G.createdAt instanceof Date?G.createdAt.toISOString():G.createdAt},K=Y.get(G.taskId);if(K)K.push(J);else Y.set(G.taskId,[J])}for(let G of Z)G.tags=Y.get(G.id)??[]}async recordActivity($){await this.db.insertInto("task_board_activity").values({id:J4("act"),task_board_item_id:$.taskBoardItemId,action:$.action,actor_id:$.actorId,data:$.data?JSON.stringify($.data):null,occurred_at:new Date().toISOString()}).execute()}async claimReviewer($,Z,X){let Q=`rtok_${crypto.randomUUID()}`,Y=await this.db.insertInto("task_board_review_claims").values({task_board_item_id:$,reviewer:Z,cycle_at:X,token:Q}).onConflict((J)=>J.columns(["task_board_item_id","reviewer","cycle_at"]).doNothing()).returning("token").executeTakeFirst();if(Y)return{claimed:!0,token:Y.token};return{claimed:!1,token:(await this.db.selectFrom("task_board_review_claims").select("token").where("task_board_item_id","=",$).where("reviewer","=",Z).where("cycle_at","=",X).executeTakeFirst())?.token??Q}}async resolveReviewClaimByToken($,Z){let X=await this.db.selectFrom("task_board_review_claims").select(["reviewer","cycle_at"]).where("task_board_item_id","=",$).where("token","=",Z).executeTakeFirst();return X?{reviewer:X.reviewer,cycleAt:X.cycle_at}:null}async recordActivities($){if($.length===0)return;let Z=new Date().toISOString();await this.db.insertInto("task_board_activity").values($.map((X)=>({id:J4("act"),task_board_item_id:X.taskBoardItemId,action:X.action,actor_id:X.actorId,data:X.data?JSON.stringify(X.data):null,occurred_at:Z}))).execute()}async listActivity($,Z){return(await this.db.selectFrom("task_board_activity as a").innerJoin("task_board_items as item","item.id","a.task_board_item_id").selectAll("a").where("item.organization_id","=",Z).where("a.task_board_item_id","=",$).orderBy("a.occurred_at","asc").execute()).map((Q)=>({id:Q.id,taskBoardItemId:Q.task_board_item_id,action:Q.action,actorId:Q.actor_id,data:typeof Q.data==="string"?JSON.parse(Q.data):Q.data??{},occurredAt:Q.occurred_at instanceof Date?Q.occurred_at.toISOString():Q.occurred_at}))}itemFromDbRow($){return{id:$.id,organizationId:$.organization_id,title:$.title,description:$.description,status:$.status,priority:$.priority,assigneeId:$.assignee_id,assignedBy:$.assigned_by,dueDate:$.due_date instanceof Date?$.due_date.toISOString():$.due_date,sortOrder:$.sort_order,threads:[],tags:[],createdBy:$.created_by,createdAt:$.created_at instanceof Date?$.created_at.toISOString():$.created_at,updatedBy:$.updated_by,updatedAt:$.updated_at instanceof Date?$.updated_at.toISOString():$.updated_at}}}var XH4;var bp=O(()=>{lX();xJ();XH4=new Set(["completed","failed","expired"])});class Va0{db;constructor($){this.db=$}async create($,Z,X){let Q=crypto.randomUUID(),Y=new Date(Date.now()+600000);return await this.db.insertInto("oauth_pkce_states").values({id:Q,organization_id:Z,user_id:X,code_verifier:$,expires_at:Y,created_at:new Date}).execute(),Q}async consume($,Z,X){let Q=await this.db.deleteFrom("oauth_pkce_states").where("id","=",$).where("organization_id","=",Z).where("user_id","=",X).returningAll().executeTakeFirst();if(!Q)throw Error("Invalid or expired OAuth state token");if((Q.expires_at instanceof Date?Q.expires_at:new Date(Q.expires_at))<new Date)throw Error("OAuth state token has expired");return Q.code_verifier}}function zW($){if($==null)return"unknown error";if(typeof $==="string")return $;if($ instanceof Error)return $.message;return JSON.stringify($)}function nQ0($){if($===null||typeof $==="string"||typeof $==="number"||typeof $==="boolean")return!0;if(Array.isArray($))return $.every(nQ0);if(typeof $==="object")return Object.entries($).every(([Z,X])=>typeof Z==="string"&&(X===void 0||nQ0(X)));return!1}function Ca0($){return Array.isArray($)&&$.every(nQ0)}function yp($){return $!=null&&typeof $==="object"&&Object.entries($).every(([Z,X])=>typeof Z==="string"&&(X===void 0||nQ0(X)))}var YJ8="vercel.ai.error",YH4,V38,C38,D1,GJ8="AI_APICallError",JJ8,GH4,_38,x38,N4,KJ8="AI_EmptyResponseBodyError",WJ8,JH4,v38,f38,pQ0,HJ8="AI_InvalidArgumentError",NJ8,KH4,b38,y38,OB,UJ8="AI_InvalidPromptError",FJ8,WH4,g38,h38,Q3,wJ8="AI_InvalidResponseDataError",BJ8,HH4,u38,c38,Jg,OJ8="AI_JSONParseError",LJ8,NH4,l38,d38,hN,DJ8="AI_LoadAPIKeyError",EJ8,UH4,m38,i38,lE,zJ8="AI_LoadSettingError",jJ8,FH4,n38,p38,PJ8,AJ8="AI_NoContentGeneratedError",TJ8,wH4,t38,o38,IJ8,RJ8="AI_NoSuchModelError",qJ8,BH4,r38,a38,y5,MJ8="AI_TooManyEmbeddingValuesForCallError",kJ8,OH4,s38,e38,Kg,SJ8="AI_TypeValidationError",VJ8,LH4,$J8,ZJ8,F5,CJ8="AI_UnsupportedFunctionalityError",_J8,DH4,XJ8,QJ8,v4;var X8=O(()=>{YH4=Symbol.for(YJ8),D1=class $ extends(C38=Error,V38=YH4,C38){constructor({name:Z,message:X,cause:Q}){super(X);this[V38]=!0,this.name=Z,this.cause=Q}static isInstance(Z){return $.hasMarker(Z,YJ8)}static hasMarker(Z,X){let Q=Symbol.for(X);return Z!=null&&typeof Z==="object"&&Q in Z&&typeof Z[Q]==="boolean"&&Z[Q]===!0}},JJ8=`vercel.ai.error.${GJ8}`,GH4=Symbol.for(JJ8),N4=class extends(x38=D1,_38=GH4,x38){constructor({message:$,url:Z,requestBodyValues:X,statusCode:Q,responseHeaders:Y,responseBody:G,cause:J,isRetryable:K=Q!=null&&(Q===408||Q===409||Q===429||Q>=500),data:W}){super({name:GJ8,message:$,cause:J});this[_38]=!0,this.url=Z,this.requestBodyValues=X,this.statusCode=Q,this.responseHeaders=Y,this.responseBody=G,this.isRetryable=K,this.data=W}static isInstance($){return D1.hasMarker($,JJ8)}},WJ8=`vercel.ai.error.${KJ8}`,JH4=Symbol.for(WJ8),pQ0=class extends(f38=D1,v38=JH4,f38){constructor({message:$="Empty response body"}={}){super({name:KJ8,message:$});this[v38]=!0}static isInstance($){return D1.hasMarker($,WJ8)}};NJ8=`vercel.ai.error.${HJ8}`,KH4=Symbol.for(NJ8),OB=class extends(y38=D1,b38=KH4,y38){constructor({message:$,cause:Z,argument:X}){super({name:HJ8,message:$,cause:Z});this[b38]=!0,this.argument=X}static isInstance($){return D1.hasMarker($,NJ8)}},FJ8=`vercel.ai.error.${UJ8}`,WH4=Symbol.for(FJ8),Q3=class extends(h38=D1,g38=WH4,h38){constructor({prompt:$,message:Z,cause:X}){super({name:UJ8,message:`Invalid prompt: ${Z}`,cause:X});this[g38]=!0,this.prompt=$}static isInstance($){return D1.hasMarker($,FJ8)}},BJ8=`vercel.ai.error.${wJ8}`,HH4=Symbol.for(BJ8),Jg=class extends(c38=D1,u38=HH4,c38){constructor({data:$,message:Z=`Invalid response data: ${JSON.stringify($)}.`}){super({name:wJ8,message:Z});this[u38]=!0,this.data=$}static isInstance($){return D1.hasMarker($,BJ8)}},LJ8=`vercel.ai.error.${OJ8}`,NH4=Symbol.for(LJ8),hN=class extends(d38=D1,l38=NH4,d38){constructor({text:$,cause:Z}){super({name:OJ8,message:`JSON parsing failed: Text: ${$}.
2244
2244
  Error message: ${zW(Z)}`,cause:Z});this[l38]=!0,this.text=$}static isInstance($){return D1.hasMarker($,LJ8)}},EJ8=`vercel.ai.error.${DJ8}`,UH4=Symbol.for(EJ8),lE=class extends(i38=D1,m38=UH4,i38){constructor({message:$}){super({name:DJ8,message:$});this[m38]=!0}static isInstance($){return D1.hasMarker($,EJ8)}},jJ8=`vercel.ai.error.${zJ8}`,FH4=Symbol.for(jJ8),PJ8=class extends(p38=D1,n38=FH4,p38){constructor({message:$}){super({name:zJ8,message:$});this[n38]=!0}static isInstance($){return D1.hasMarker($,jJ8)}},TJ8=`vercel.ai.error.${AJ8}`,wH4=Symbol.for(TJ8),IJ8=class extends(o38=D1,t38=wH4,o38){constructor({message:$="No content generated."}={}){super({name:AJ8,message:$});this[t38]=!0}static isInstance($){return D1.hasMarker($,TJ8)}},qJ8=`vercel.ai.error.${RJ8}`,BH4=Symbol.for(qJ8),y5=class extends(a38=D1,r38=BH4,a38){constructor({errorName:$=RJ8,modelId:Z,modelType:X,message:Q=`No such ${X}: ${Z}`}){super({name:$,message:Q});this[r38]=!0,this.modelId=Z,this.modelType=X}static isInstance($){return D1.hasMarker($,qJ8)}},kJ8=`vercel.ai.error.${MJ8}`,OH4=Symbol.for(kJ8),Kg=class extends(e38=D1,s38=OH4,e38){constructor($){super({name:MJ8,message:`Too many values for a single embedding call. The ${$.provider} model "${$.modelId}" can only embed up to ${$.maxEmbeddingsPerCall} values per call, but ${$.values.length} values were provided.`});this[s38]=!0,this.provider=$.provider,this.modelId=$.modelId,this.maxEmbeddingsPerCall=$.maxEmbeddingsPerCall,this.values=$.values}static isInstance($){return D1.hasMarker($,kJ8)}},VJ8=`vercel.ai.error.${SJ8}`,LH4=Symbol.for(VJ8),F5=class $ extends(ZJ8=D1,$J8=LH4,ZJ8){constructor({value:Z,cause:X,context:Q}){let Y="Type validation failed";if(Q==null?void 0:Q.field)Y+=` for ${Q.field}`;if((Q==null?void 0:Q.entityName)||(Q==null?void 0:Q.entityId)){Y+=" (";let G=[];if(Q.entityName)G.push(Q.entityName);if(Q.entityId)G.push(`id: "${Q.entityId}"`);Y+=G.join(", "),Y+=")"}super({name:SJ8,message:`${Y}: Value: ${JSON.stringify(Z)}.
2245
2245
  Error message: ${zW(X)}`,cause:X});this[$J8]=!0,this.value=Z,this.context=Q}static isInstance(Z){return D1.hasMarker(Z,VJ8)}static wrap({value:Z,cause:X,context:Q}){var Y,G,J;if($.isInstance(X)&&X.value===Z&&((Y=X.context)==null?void 0:Y.field)===(Q==null?void 0:Q.field)&&((G=X.context)==null?void 0:G.entityName)===(Q==null?void 0:Q.entityName)&&((J=X.context)==null?void 0:J.entityId)===(Q==null?void 0:Q.entityId))return X;return new $({value:Z,cause:X,context:Q})}},_J8=`vercel.ai.error.${CJ8}`,DH4=Symbol.for(_J8),v4=class extends(QJ8=D1,XJ8=DH4,QJ8){constructor({functionality:$,message:Z=`'${$}' functionality not supported.`}){super({name:CJ8,message:Z});this[XJ8]=!0,this.functionality=$}static isInstance($){return D1.hasMarker($,_J8)}}});import*as aQ0 from"zod/v4";import{ZodFirstPartyTypeKind as E4}from"zod/v3";import{ZodFirstPartyTypeKind as fH4}from"zod/v3";import{ZodFirstPartyTypeKind as tQ0}from"zod/v3";function s8(...$){return $.reduce((Z,X)=>({...Z,...X!=null?X:{}}),{})}function oQ0({tools:$=[],providerToolNames:Z,resolveProviderToolName:X}){var Q;let Y={},G={};for(let J of $)if(J.type==="provider"){let K=(Q=X==null?void 0:X(J))!=null?Q:(J.id in Z)?Z[J.id]:void 0;if(K==null)continue;Y[J.name]=K,G[K]=J.name}return{toProviderToolName:(J)=>{var K;return(K=Y[J])!=null?K:J},toCustomToolName:(J)=>{var K;return(K=G[J])!=null?K:J}}}async function gQ($,Z){if($==null)return Promise.resolve();let X=Z==null?void 0:Z.abortSignal;return new Promise((Q,Y)=>{if(X==null?void 0:X.aborted){Y(xJ8());return}let G=setTimeout(()=>{J(),Q()},$),J=()=>{clearTimeout(G),X==null||X.removeEventListener("abort",K)},K=()=>{J(),Y(xJ8())};X==null||X.addEventListener("abort",K)})}function xJ8(){return new DOMException("Delay was aborted","AbortError")}function Wg($){return Object.fromEntries([...$.headers])}function A9($){let Z=$.replace(/-/g,"+").replace(/_/g,"/"),X=zH4(Z);return Uint8Array.from(X,(Q)=>Q.codePointAt(0))}function uQ($){let Z="";for(let X=0;X<$.length;X++)Z+=String.fromCodePoint($[X]);return EH4(Z)}function NZ($){return $ instanceof Uint8Array?uQ($):$}function hJ8($,Z={}){let{useArrayBrackets:X=!0}=Z,Q=new FormData;for(let[Y,G]of Object.entries($)){if(G==null)continue;if(Array.isArray(G)){if(G.length===1){Q.append(Y,G[0]);continue}let J=X?`${Y}[]`:Y;for(let K of G)Q.append(J,K);continue}Q.append(Y,G)}return Q}async function gp($){var Z;try{await((Z=$.body)==null?void 0:Z.cancel())}catch(X){}}function PH4($=globalThis){return $.window!=null}function AH4($){let Z;try{Z=new URL($)}catch(Q){throw new HZ({url:$,message:`Invalid URL: ${$}`})}if(Z.protocol==="data:")return;if(Z.protocol!=="http:"&&Z.protocol!=="https:")throw new HZ({url:$,message:`URL scheme must be http, https, or data, got ${Z.protocol}`});let X=Z.hostname.toLowerCase().replace(/\.+$/,"");if(!X)throw new HZ({url:$,message:"URL must have a hostname"});if(X==="localhost"||X.endsWith(".local")||X.endsWith(".localhost"))throw new HZ({url:$,message:`URL with hostname ${X} is not allowed`});if(X.startsWith("[")&&X.endsWith("]")){let Q=X.slice(1,-1);if(IH4(Q))throw new HZ({url:$,message:`URL with IPv6 address ${X} is not allowed`});return}if(lJ8(X)){if(dJ8(X))throw new HZ({url:$,message:`URL with IP address ${X} is not allowed`});return}}function lJ8($){let Z=$.split(".");if(Z.length!==4)return!1;return Z.every((X)=>{let Q=Number(X);return Number.isInteger(Q)&&Q>=0&&Q<=255&&String(Q)===X})}function dJ8($){let Z=$.split(".").map(Number),[X,Q,Y]=Z;if(X===0)return!0;if(X===10)return!0;if(X===100&&Q>=64&&Q<=127)return!0;if(X===127)return!0;if(X===169&&Q===254)return!0;if(X===172&&Q>=16&&Q<=31)return!0;if(X===192&&Q===0&&Y===0)return!0;if(X===192&&Q===168)return!0;if(X===198&&(Q===18||Q===19))return!0;if(X>=240)return!0;return!1}function TH4($){let Z=$.toLowerCase(),X=Z.indexOf("%");if(X!==-1)Z=Z.slice(0,X);let Q=Z.split("::");if(Q.length>2)return null;let Y=(J)=>{if(J==="")return[];let K=[],W=J.split(":");for(let H=0;H<W.length;H++){let N=W[H];if(N.includes(".")){if(H!==W.length-1||!lJ8(N))return null;let[U,F,w,B]=N.split(".").map(Number);K.push(U<<8|F,w<<8|B);continue}if(!/^[0-9a-f]{1,4}$/.test(N))return null;K.push(parseInt(N,16))}return K},G=Y(Q[0]);if(G===null)return null;if(Q.length===2){let J=Y(Q[1]);if(J===null)return null;let K=8-G.length-J.length;if(K<0)return null;return[...G,...Array(K).fill(0),...J]}return G.length===8?G:null}function IH4($){let Z=TH4($);if(Z===null)return!0;let X=(Y)=>Z.slice(0,Y).every((G)=>G===0);if(X(7)&&(Z[7]===0||Z[7]===1))return!0;if((Z[0]&65024)===64512)return!0;if((Z[0]&65472)===65152)return!0;if((Z[0]&65472)===65216)return!0;if((Z[0]&65280)===65280)return!0;if(X(6)||X(5)&&Z[5]===65535||X(4)&&Z[4]===65535&&Z[5]===0||Z[0]===100&&Z[1]===65435&&Z[2]===0&&Z[3]===0&&Z[4]===0&&Z[5]===0||Z[0]===100&&Z[1]===65435&&Z[2]===1){let Y=Z[6]>>8&255,G=Z[6]&255,J=Z[7]>>8&255,K=Z[7]&255;return dJ8(`${Y}.${G}.${J}.${K}`)}return!1}async function ba0({url:$,headers:Z,abortSignal:X,maxRedirects:Q=RH4}){let Y={signal:X};if(Z!==void 0)Y.headers=Z;let G=$;for(let J=0;J<=Q;J++){AH4(G);let K=await fetch(G,{...Y,redirect:"manual"});if(K.type==="opaqueredirect"){if(!PH4())throw new HZ({url:$,message:`Redirect from ${G} could not be validated and was blocked`});return await fetch(G,{...Y,redirect:"follow"})}let W=K.headers.get("location");if(K.status>=300&&K.status<400&&W){await gp(K),G=new URL(W,G).toString();continue}return K}throw new HZ({url:$,message:`Too many redirects (max ${Q})`})}async function ya0({response:$,url:Z,maxBytes:X=rQ0}){let Q=$.headers.get("content-length");if(Q!=null){let N=parseInt(Q,10);if(!isNaN(N)&&N>X)throw await gp($),new HZ({url:Z,message:`Download of ${Z} exceeded maximum size of ${X} bytes (Content-Length: ${N}).`})}let Y=$.body;if(Y==null)return new Uint8Array(0);let G=Y.getReader(),J=[],K=0;try{while(!0){let{done:N,value:U}=await G.read();if(N)break;if(K+=U.length,K>X)throw new HZ({url:Z,message:`Download of ${Z} exceeded maximum size of ${X} bytes.`});J.push(U)}}finally{try{await G.cancel()}finally{G.releaseLock()}}let W=new Uint8Array(K),H=0;for(let N of J)W.set(N,H),H+=N.length;return W}async function ga0($,Z){var X,Q;try{let Y=await ba0({url:$,abortSignal:Z==null?void 0:Z.abortSignal});if(!Y.ok)throw await gp(Y),new HZ({url:$,statusCode:Y.status,statusText:Y.statusText});let G=await ya0({response:Y,url:$,maxBytes:(X=Z==null?void 0:Z.maxBytes)!=null?X:rQ0}),J=(Q=Y.headers.get("content-type"))!=null?Q:void 0;return new Blob([G],J?{type:J}:void 0)}catch(Y){if(HZ.isInstance(Y))throw Y;throw new HZ({url:$,cause:Y})}}function Hg($){if($==null)return"unknown error";if(typeof $==="string")return $;if($ instanceof Error)return $.message;return JSON.stringify($)}function yQ($){return($ instanceof Error||$ instanceof DOMException)&&($.name==="AbortError"||$.name==="ResponseAborted"||$.name==="TimeoutError")}function kH4($){if(!($ instanceof Error))return!1;let Z=$.code;if(typeof Z==="string"&&MH4.includes(Z))return!0;return!1}function mJ8({error:$,url:Z,requestBodyValues:X}){if(yQ($))return $;if($ instanceof TypeError&&qH4.includes($.message.toLowerCase())){let Q=$.cause;if(Q!=null)return new N4({message:`Cannot connect to API: ${Q.message}`,cause:Q,url:Z,requestBodyValues:X,isRetryable:!0})}if(kH4($))return new N4({message:`Cannot connect to API: ${$.message}`,cause:$,url:Z,requestBodyValues:X,isRetryable:!0});return $}function LB($=globalThis){var Z,X,Q;if($.window)return"runtime/browser";if((Z=$.navigator)==null?void 0:Z.userAgent)return`runtime/${$.navigator.userAgent.toLowerCase()}`;if((Q=(X=$.process)==null?void 0:X.versions)==null?void 0:Q.node)return`runtime/node.js/${$.process.version.substring(0)}`;if($.EdgeRuntime)return"runtime/vercel-edge";return"runtime/unknown"}function DB($){if($==null)return{};let Z={};if($ instanceof Headers)$.forEach((X,Q)=>{Z[Q.toLowerCase()]=X});else{if(!Array.isArray($))$=Object.entries($);for(let[X,Q]of $)if(Q!=null)Z[X.toLowerCase()]=Q}return Z}function a4($,...Z){let X=new Headers(DB($)),Q=X.get("user-agent")||"";return X.set("user-agent",[Q,...Z].filter(Boolean).join(" ")),Object.fromEntries(X.entries())}function mE($){return $!=null}function nJ8($,Z){try{return new URL($).origin===new URL(Z).origin}catch(X){return!1}}function pJ8({mediaType:$,url:Z,supportedUrls:X}){return Z=Z.toLowerCase(),$=$.toLowerCase(),Object.entries(X).map(([Q,Y])=>{let G=Q.toLowerCase();return G==="*"||G==="*/*"?{mediaTypePrefix:"",regexes:Y}:{mediaTypePrefix:G.replace(/\*/,""),regexes:Y}}).filter(({mediaTypePrefix:Q})=>$.startsWith(Q)).flatMap(({regexes:Q})=>Q).some((Q)=>Q.test(Z))}function Ng({apiKey:$,environmentVariableName:Z,apiKeyParameterName:X="apiKey",description:Q}){if(typeof $==="string")return $;if($!=null)throw new lE({message:`${Q} API key must be a string.`});if(typeof process>"u")throw new lE({message:`${Q} API key is missing. Pass it using the '${X}' parameter. Environment variables are not supported in this environment.`});if($=process.env[Z],$==null)throw new lE({message:`${Q} API key is missing. Pass it using the '${X}' parameter or the ${Z} environment variable.`});if(typeof $!=="string")throw new lE({message:`${Q} API key must be a string. The value of the ${Z} environment variable is not a string.`});return $}function jW({settingValue:$,environmentVariableName:Z}){if(typeof $==="string")return $;if($!=null||typeof process>"u")return;if($=process.env[Z],$==null||typeof $!=="string")return;return $}function tJ8($){var Z;let[X,Q=""]=$.toLowerCase().split("/");return(Z={mpeg:"mp3","x-wav":"wav",opus:"ogg",mp4:"m4a","x-m4a":"m4a"}[Q])!=null?Z:Q}function bJ8($){let Z=JSON.parse($);if(Z===null||typeof Z!=="object")return Z;if(VH4.test($)===!1&&CH4.test($)===!1)return Z;return _H4(Z)}function _H4($){let Z=[$];while(Z.length){let X=Z;Z=[];for(let Q of X){if(Object.prototype.hasOwnProperty.call(Q,"__proto__"))throw SyntaxError("Object contains forbidden prototype property");if(Object.prototype.hasOwnProperty.call(Q,"constructor")&&Q.constructor!==null&&typeof Q.constructor==="object"&&Object.prototype.hasOwnProperty.call(Q.constructor,"prototype"))throw SyntaxError("Object contains forbidden prototype property");for(let Y in Q){let G=Q[Y];if(G&&typeof G==="object")Z.push(G)}}}return $}function ha0($){let{stackTraceLimit:Z}=Error;try{Error.stackTraceLimit=0}catch(X){return bJ8($)}try{return bJ8($)}finally{Error.stackTraceLimit=Z}}function ua0($){if($.type==="object"||Array.isArray($.type)&&$.type.includes("object")){$.additionalProperties=!1;let{properties:X}=$;if(X!=null)for(let Q of Object.keys(X))X[Q]=dE(X[Q])}if($.items!=null)$.items=Array.isArray($.items)?$.items.map(dE):dE($.items);if($.anyOf!=null)$.anyOf=$.anyOf.map(dE);if($.allOf!=null)$.allOf=$.allOf.map(dE);if($.oneOf!=null)$.oneOf=$.oneOf.map(dE);let{definitions:Z}=$;if(Z!=null)for(let X of Object.keys(Z))Z[X]=dE(Z[X]);return $}function dE($){if(typeof $==="boolean")return $;return ua0($)}function iY(){return{}}function bH4($,Z){var X,Q,Y;let G={type:"array"};if(((X=$.type)==null?void 0:X._def)&&((Y=(Q=$.type)==null?void 0:Q._def)==null?void 0:Y.typeName)!==fH4.ZodAny)G.items=E$($.type._def,{...Z,currentPath:[...Z.currentPath,"items"]});if($.minLength)G.minItems=$.minLength.value;if($.maxLength)G.maxItems=$.maxLength.value;if($.exactLength)G.minItems=$.exactLength.value,G.maxItems=$.exactLength.value;return G}function yH4($){let Z={type:"integer",format:"int64"};if(!$.checks)return Z;for(let X of $.checks)switch(X.kind){case"min":if(X.inclusive)Z.minimum=X.value;else Z.exclusiveMinimum=X.value;break;case"max":if(X.inclusive)Z.maximum=X.value;else Z.exclusiveMaximum=X.value;break;case"multipleOf":Z.multipleOf=X.value;break}return Z}function gH4(){return{type:"boolean"}}function oJ8($,Z){return E$($.type._def,Z)}function rJ8($,Z,X){let Q=X!=null?X:Z.dateStrategy;if(Array.isArray(Q))return{anyOf:Q.map((Y,G)=>rJ8($,Z,Y))};switch(Q){case"string":case"format:date-time":return{type:"string",format:"date-time"};case"format:date":return{type:"string",format:"date"};case"integer":return uH4($)}}function cH4($,Z){return{...E$($.innerType._def,Z),default:$.defaultValue()}}function lH4($,Z){return Z.effectStrategy==="input"?E$($.schema._def,Z):iY()}function dH4($){return{type:"string",enum:Array.from($.values)}}function iH4($,Z){let X=[E$($.left._def,{...Z,currentPath:[...Z.currentPath,"allOf","0"]}),E$($.right._def,{...Z,currentPath:[...Z.currentPath,"allOf","1"]})].filter((Y)=>!!Y),Q=[];return X.forEach((Y)=>{if(mH4(Y))Q.push(...Y.allOf);else{let G=Y;if("additionalProperties"in Y&&Y.additionalProperties===!1){let{additionalProperties:J,...K}=Y;G=K}Q.push(G)}}),Q.length?{allOf:Q}:void 0}function nH4($){let Z=typeof $.value;if(Z!=="bigint"&&Z!=="number"&&Z!=="boolean"&&Z!=="string")return{type:Array.isArray($.value)?"array":"object"};return{type:Z==="bigint"?"integer":Z,const:$.value}}function aJ8($,Z){let X={type:"string"};if($.checks)for(let Q of $.checks)switch(Q.kind){case"min":X.minLength=typeof X.minLength==="number"?Math.max(X.minLength,Q.value):Q.value;break;case"max":X.maxLength=typeof X.maxLength==="number"?Math.min(X.maxLength,Q.value):Q.value;break;case"email":switch(Z.emailStrategy){case"format:email":fJ(X,"email",Q.message,Z);break;case"format:idn-email":fJ(X,"idn-email",Q.message,Z);break;case"pattern:zod":aX(X,vJ.email,Q.message,Z);break}break;case"url":fJ(X,"uri",Q.message,Z);break;case"uuid":fJ(X,"uuid",Q.message,Z);break;case"regex":aX(X,Q.regex,Q.message,Z);break;case"cuid":aX(X,vJ.cuid,Q.message,Z);break;case"cuid2":aX(X,vJ.cuid2,Q.message,Z);break;case"startsWith":aX(X,RegExp(`^${xa0(Q.value,Z)}`),Q.message,Z);break;case"endsWith":aX(X,RegExp(`${xa0(Q.value,Z)}$`),Q.message,Z);break;case"datetime":fJ(X,"date-time",Q.message,Z);break;case"date":fJ(X,"date",Q.message,Z);break;case"time":fJ(X,"time",Q.message,Z);break;case"duration":fJ(X,"duration",Q.message,Z);break;case"length":X.minLength=typeof X.minLength==="number"?Math.max(X.minLength,Q.value):Q.value,X.maxLength=typeof X.maxLength==="number"?Math.min(X.maxLength,Q.value):Q.value;break;case"includes":{aX(X,RegExp(xa0(Q.value,Z)),Q.message,Z);break}case"ip":{if(Q.version!=="v6")fJ(X,"ipv4",Q.message,Z);if(Q.version!=="v4")fJ(X,"ipv6",Q.message,Z);break}case"base64url":aX(X,vJ.base64url,Q.message,Z);break;case"jwt":aX(X,vJ.jwt,Q.message,Z);break;case"cidr":{if(Q.version!=="v6")aX(X,vJ.ipv4Cidr,Q.message,Z);if(Q.version!=="v4")aX(X,vJ.ipv6Cidr,Q.message,Z);break}case"emoji":aX(X,vJ.emoji(),Q.message,Z);break;case"ulid":{aX(X,vJ.ulid,Q.message,Z);break}case"base64":{switch(Z.base64Strategy){case"format:binary":{fJ(X,"binary",Q.message,Z);break}case"contentEncoding:base64":{X.contentEncoding="base64";break}case"pattern:zod":{aX(X,vJ.base64,Q.message,Z);break}}break}case"nanoid":aX(X,vJ.nanoid,Q.message,Z);case"toLowerCase":case"toUpperCase":case"trim":break;default:}return X}function xa0($,Z){return Z.patternStrategy==="escape"?tH4($):$}function tH4($){let Z="";for(let X=0;X<$.length;X++){if(!pH4.has($[X]))Z+="\\";Z+=$[X]}return Z}function fJ($,Z,X,Q){var Y;if($.format||((Y=$.anyOf)==null?void 0:Y.some((G)=>G.format))){if(!$.anyOf)$.anyOf=[];if($.format)$.anyOf.push({format:$.format}),delete $.format;$.anyOf.push({format:Z,...X&&Q.errorMessages&&{errorMessage:{format:X}}})}else $.format=Z}function aX($,Z,X,Q){var Y;if($.pattern||((Y=$.allOf)==null?void 0:Y.some((G)=>G.pattern))){if(!$.allOf)$.allOf=[];if($.pattern)$.allOf.push({pattern:$.pattern}),delete $.pattern;$.allOf.push({pattern:gJ8(Z,Q),...X&&Q.errorMessages&&{errorMessage:{pattern:X}}})}else $.pattern=gJ8(Z,Q)}function gJ8($,Z){var X;if(!Z.applyRegexFlags||!$.flags)return $.source;let Q={i:$.flags.includes("i"),m:$.flags.includes("m"),s:$.flags.includes("s")},Y=Q.i?$.source.toLowerCase():$.source,G="",J=!1,K=!1,W=!1;for(let H=0;H<Y.length;H++){if(J){G+=Y[H],J=!1;continue}if(Q.i){if(K){if(Y[H].match(/[a-z]/)){if(W)G+=Y[H],G+=`${Y[H-2]}-${Y[H]}`.toUpperCase(),W=!1;else if(Y[H+1]==="-"&&((X=Y[H+2])==null?void 0:X.match(/[a-z]/)))G+=Y[H],W=!0;else G+=`${Y[H]}${Y[H].toUpperCase()}`;continue}}else if(Y[H].match(/[a-z]/)){G+=`[${Y[H]}${Y[H].toUpperCase()}]`;continue}}if(Q.m){if(Y[H]==="^"){G+=`(^|(?<=[\r
2246
2246
  ]))`;continue}else if(Y[H]==="$"){G+=`($|(?=[\r
@@ -2756,7 +2756,7 @@ ${$.description}
2756
2756
  Task description:
2757
2757
  ${Z.description}
2758
2758
  `:"","How to work:","- Call `TASK_BOARD_ITEM_PRS_GET` with the task id below to find the pull request under review, then load its repository to inspect / exercise the change.","- Do NOT push commits or change the code yourself. You are reviewing, not implementing.",`- End the run by calling \`TASK_BOARD_REVIEW_DECISION\` exactly once with the task id, reviewer "${X}", the reviewToken below, and your decision:`," - `approve` when it's good to ship. Include a short summary of what you verified."," - `request_changes` when something is wrong or missing. Include specific, actionable notes \u2014 the task goes back to the Super Agent with your notes.","- The reviewToken proves you are this reviewer \u2014 pass it through EXACTLY as given. Without it your approval won't count toward an automatic merge.","",`(task id: ${Z.id})`,`(reviewToken: ${Q})`].join(`
2759
- `);await er($,Z,{title:`${fp[X]}: ${Z.title}`,prompt:G,temperature:0.3}),await A3($,{taskBoardItemId:Z.id,action:"review_requested",actorId:null,data:{reviewer:X}});let J=await $.storage.taskBoard.getById(Z.id,Y);if(J)F9(Y,J)}var zu4,ju4;var z91=O(()=>{xJ();TO();KQ();N91();zu4=new Set(["completed","failed","expired"]),ju4={qa:"You are the QA Agent. Your job is to confirm the task ACTUALLY SOLVED THE "+"PROBLEM \u2014 not to review code style. Exercise the feature/behavior the task "+"describes (use the PR's preview / dev server when available), check the acceptance criteria implied by the title and description, and look for regressions in the affected flow. Judge outcomes, not the diff.",code_review:"You are the Code Reviewer. Review the code changes for correctness, security, and quality. FIRST look for a review skill/command appropriate to this repository's stack (e.g. a `/review`, `code-review`, or `security-review` skill, or the repo's CONTRIBUTING/review guidelines) and use it. Read the diff critically and flag concrete issues with file/line references."}});function Iu4($){return $.filter((X)=>X.action==="merge_conflict_resolution").length>=hV8}async function WP0($,Z,X,Q){if(X.status!=="in_review")return!1;if(X.assigneeId!==Y9)return!1;if(Q.conflict!==!0)return!1;let G=(await $.storage.organizationSettings.get(Z))?.flags??{};if(G.auto_merge!==!0)return!1;let J=wB.filter((N)=>G[BB[N]]===!0),K=await $.storage.taskBoard.listActivity(X.id,Z);if(!Gg(K,J,{verifiedOnly:!0}))return!1;if(Iu4(K))return console.warn(`[task-board] conflict auto-resolve cap (${hV8}) reached on task ${X.id} \u2014 leaving the PR for a human`),!1;let W=Q.pr,H=await $.storage.taskBoard.claimConflictResolution(X.id,Z,X.updatedBy);if(!H)return!1;return await A3($,{taskBoardItemId:X.id,action:"merge_conflict_resolution",actorId:null,data:{prNumber:W.number}}),F9(Z,H),await $a($,H,{pr:{number:W.number,url:W.url},resolveConflict:!0}),!0}var hV8=3;var j91=O(()=>{xJ();TO();KQ();dh()});import{z as HP0}from"zod";async function Xa($,Z,X,Q){if(X){let J=await $.storage.connections.findById(X,Z);if(J&&J.status==="active")return J}let{items:Y}=await $.storage.connections.list(Z,{slug:"mcp-github"}),G=Y.filter((J)=>J.status==="active");if(Q){let J=G.find((K)=>{let W=eX(K);return W?.owner===Q.owner&&W?.repo===Q.name});if(J)return J}return G.find((J)=>eX(J)===null)??G[0]??null}function Qa($){if(!$||typeof $!=="object")return null;let Z=$;if(Z.isError)return null;if(Z.structuredContent&&typeof Z.structuredContent==="object"&&Object.keys(Z.structuredContent).length>0)return Z.structuredContent;let X=Z.content?.find((Q)=>Q.type==="text")?.text;if(!X)return null;try{return JSON.parse(X)}catch{return null}}function A91($){let Z;try{Z=new URL($).hostname.toLowerCase()}catch{return!1}return Z==="deco.site"||Z.endsWith(".decocdn.com")||Z.endsWith(".deco-cx.workers.dev")||Z.endsWith(".deco.site")}function Ru4($){if(!$||!Array.isArray($.statuses))return null;let Z=$.statuses.map((X)=>X&&typeof X==="object"?X:null).filter((X)=>!!X&&typeof X.target_url==="string"&&A91(X.target_url));if(Z.length===0)return null;return Z.find((X)=>X.state==="success")?.target_url??Z[0].target_url}function qu4($){let Z=Array.isArray($)?$:Array.isArray($?.comments)?$.comments:Array.isArray($?.items)?$.items:[];for(let X of Z){let Q=X&&typeof X.body==="string"?X.body:"";if(!Q)continue;let Y=Q.match(/href=['"]([^'"]+)['"][^>]*>\s*Branch Preview/i);if(Y?.[1]&&A91(Y[1]))return Y[1];let G=(Q.match(/https?:\/\/[^\s"'<>)\]]+/g)??[]).find((J)=>A91(J));if(G)return G}return null}function uV8($){if(!$)return null;if((typeof $.total_count==="number"?$.total_count:null)===0)return null;switch($.state){case"success":return"passing";case"failure":case"error":return"failing";case"pending":return"pending";default:return null}}function lV8($){let Z=Array.isArray($)?$:Array.isArray($?.check_runs)?$.check_runs:[];if(Z.length===0)return null;let X=!1,Q=!1;for(let Y of Z){if(!Y||typeof Y!=="object")continue;let{status:G,conclusion:J}=Y;if(G!=="completed")Q=!0;else if(typeof J==="string"&&cV8.has(J))X=!0}if(X)return"failing";if(Q)return"pending";return"passing"}function dV8($,Z){if($==="failing"||Z==="failing")return"failing";if($==="pending"||Z==="pending")return"pending";if($==="passing"||Z==="passing")return"passing";return null}function Mu4($){let Z=Array.isArray($)?$:Array.isArray($?.check_runs)?$.check_runs:[],X=[];for(let Q of Z){if(!Q||typeof Q!=="object")continue;let Y=Q;X.push({id:typeof Y.id==="number"?Y.id:null,name:typeof Y.name==="string"?Y.name:"",status:typeof Y.status==="string"?Y.status:"completed",conclusion:typeof Y.conclusion==="string"?Y.conclusion:null,detailsUrl:typeof Y.html_url==="string"?Y.html_url:typeof Y.details_url==="string"?Y.details_url:null})}return X}function ku4($){return $.status==="completed"&&$.conclusion!=null&&cV8.has($.conclusion)}async function Su4($,Z,X){try{let Y=Qa(await $.callTool({name:"GET_CHECK_RUN",arguments:{owner:Z.repoOwner,repo:Z.repoName,checkRunId:X}},void 0,{timeout:Za}))?.output,G=typeof Y?.summary==="string"?Y.summary:null,J=typeof Y?.text==="string"?Y.text:null;return G??J??null}catch{return null}}async function mV8($,Z,X){let Q=await Xa($,Z,X.connectionId,{owner:X.repoOwner,name:X.repoName});if(!Q)return null;let Y=await b5(Q,$,!0),G=async(J)=>Qa(await Y.callTool({name:"pull_request_read",arguments:{method:J,owner:X.repoOwner,repo:X.repoName,pullNumber:X.number}},void 0,{timeout:Za}));try{let J=null;try{J=uV8(await G("get_status"))}catch{}try{J=dV8(J,lV8(await G("get_check_runs")))}catch{}return J}finally{await Y.close().catch(()=>{})}}function iV8($){if(!$)return null;if($.state!=="open")return!1;return typeof $.mergeable==="boolean"?!$.mergeable:null}async function nV8($,Z,X){let Q=await Xa($,Z,X.connectionId,{owner:X.repoOwner,name:X.repoName});if(!Q)return null;let Y=await b5(Q,$,!0);try{return iV8(Qa(await Y.callTool({name:"pull_request_read",arguments:{method:"get",owner:X.repoOwner,repo:X.repoName,pullNumber:X.number}},void 0,{timeout:Za})))}catch{return null}finally{await Y.close().catch(()=>{})}}async function Vu4($,Z){let X=async(H)=>{try{return Qa(await $.callTool({name:"pull_request_read",arguments:{method:H,owner:Z.repoOwner,repo:Z.repoName,pullNumber:Z.number}},void 0,{timeout:Za}))}catch{return null}},[Q,Y,G]=await Promise.all([X("get_status"),X("get_check_runs"),X("get_comments")]),J=dV8(uV8(Q),lV8(Y)),K=Ru4(Q)??qu4(G),W=await Promise.all(Mu4(Y).map(async(H)=>({name:H.name,status:H.status,conclusion:H.conclusion,detailsUrl:H.detailsUrl,summary:ku4(H)&&H.id!=null?await Su4($,Z,H.id):null})));return{checksStatus:J,checks:W,previewUrl:K}}async function Cu4($,Z,X){let Q=await Xa($,Z,X.connectionId,{owner:X.repoOwner,name:X.repoName});if(!Q)return P91;let Y=await b5(Q,$,!0);try{let[G,J]=await Promise.all([Y.callTool({name:"pull_request_read",arguments:{method:"get",owner:X.repoOwner,repo:X.repoName,pullNumber:X.number}},void 0,{timeout:Za}),Vu4(Y,X)]),K=Qa(G);if(!K)return P91;let W=K.state,H=W==="open";return{title:typeof K.title==="string"?K.title:null,body:typeof K.body==="string"?K.body:null,state:W==="closed"?"closed":H?"open":null,draft:typeof K.draft==="boolean"?K.draft:null,merged:typeof K.merged==="boolean"?K.merged:null,mergeable:H&&typeof K.mergeable==="boolean"?K.mergeable:null,checksStatus:H?J.checksStatus:null,checks:H?J.checks:[],previewUrl:H?J.previewUrl:null}}catch{return P91}finally{await Y.close().catch(()=>{})}}var Za=8000,P91,cV8,T91;var NP0=O(()=>{s0();eN();rN();xJ();bW();KQ();z91();j91();G51();P91={title:null,body:null,state:null,draft:null,merged:null,mergeable:null,checksStatus:null,checks:[],previewUrl:null};cV8=new Set(["failure","cancelled","timed_out","action_required","startup_failure","stale"]);T91=a({name:"TASK_BOARD_ITEM_PRS_GET",description:"Get the GitHub pull requests linked to a task board item, each enriched with live state (title, open/closed, draft, merged) fetched from GitHub.",annotations:{title:"Get Task Board Item Pull Requests",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!0,openWorldHint:!0},inputSchema:HP0.object({taskBoardItemId:HP0.string()}),outputSchema:HP0.object({prs:HP0.array(vB8)}),handler:async({taskBoardItemId:$},Z)=>{E0(Z),await Z.access.check();let X=Z.organization?.id;if(!X)throw Error("Organization ID required (no active organization in context)");let Q=await Z.storage.taskBoard.getById($,X);for(let H of Q?.threads??[]){let N=H.lastMessage?zj0(H.lastMessage):null;if(!N)continue;try{await Z.storage.taskBoard.linkPr({taskBoardItemId:$,organizationId:X,url:N.url,prNumber:N.number,repoOwner:N.owner,repoName:N.repo,connectionId:null})}catch(U){console.error("[task-board] PR recovery from thread text failed",U)}}let Y=await Z.storage.taskBoard.listPrs($,X),G=await Promise.all(Y.map(async(H)=>{let N=await Cu4(Z,X,H);return{url:H.url,number:H.number,repoOwner:H.repoOwner,repoName:H.repoName,createdAt:H.createdAt,...N}})),J=G.find((H)=>H.state==="open"&&!H.merged),K=J!=null&&J.checksStatus!=="pending"&&J.checksStatus!=="failing";if(Q&&Q.status==="in_review"&&Q.assigneeId===Y9&&K)await E91(Z,Q).catch((H)=>{console.error("[task-board] reviewer auto-handoff failed",H)});let W=J?iV8({state:J.state,mergeable:J.mergeable}):null;if(Q&&Q.status==="in_review"&&Q.assigneeId===Y9&&J&&W===!0)await WP0(Z,X,Q,{pr:{number:J.number,url:J.url},conflict:!0}).catch((H)=>{console.error("[task-board] conflict auto-resolve failed",H)});if(G.some((H)=>H.merged))try{if(Q&&Q.status!=="done"){let H=await Z.storage.taskBoard.update($,X,{status:"done"},Q.updatedBy);F9(X,H)}}catch(H){console.error("[task-board] merge\u2192done reconcile failed",H)}return{prs:G}}})});async function UP0($,Z,X){let Y=(await $.storage.taskBoard.listPrs(X,Z))[0];if(!Y)return!1;let G=await mV8($,Z,Y);if(G==="failing"||G==="pending")return console.warn(`[task-board] merge blocked \u2014 checks ${G} on PR #${Y.number}`),!1;let J=await Xa($,Z,Y.connectionId,{owner:Y.repoOwner,name:Y.repoName});if(!J)return!1;let K=await b5(J,$,!0);try{return!(await K.callTool({name:"merge_pull_request",arguments:{owner:Y.repoOwner,repo:Y.repoName,pullNumber:Y.number}},void 0,{timeout:_u4}))?.isError}catch(W){return console.error("[task-board] merge PR failed",W),!1}finally{await K.close().catch(()=>{})}}var _u4=15000;var I91=O(()=>{eN();NP0()});import{z as RO}from"zod";async function xu4($,Z,X){let Y=(await $.storage.organizationSettings.get(Z))?.flags??{},G=wB.filter((K)=>Y[BB[K]]===!0),J=await $.storage.taskBoard.listActivity(X,Z);return Gg(J,G,{verifiedOnly:!0})}var R91;var pV8=O(()=>{s0();xJ();bW();TO();KQ();dh();I91();NP0();j91();R91=a({name:"TASK_BOARD_REVIEW_DECISION",description:"Record a reviewer's decision for a task under review. `approve` marks the pull request approved by that reviewer (and, once EVERY enabled reviewer has approved, merges it when the org enabled auto-merge, advancing the task to Done); `request_changes` hands the task back to the Super Agent with your notes so it can fix the PR.",annotations:{title:"Review Decision",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!1,openWorldHint:!0},inputSchema:RO.object({taskBoardItemId:RO.string(),reviewer:RO.enum(["qa","code_review"]).describe("Which reviewer you are: `qa` (QA Agent) or `code_review` (Code Reviewer)."),reviewToken:RO.string().optional().describe("The reviewToken from your prompt \u2014 proves you are this reviewer. "+"Pass it through exactly; an approval without a valid token is recorded but does NOT count toward an automatic merge."),decision:RO.enum(["approve","request_changes"]),notes:RO.string().min(1).describe("For approve: a short summary of what you verified. For request_changes: specific, actionable feedback the Super Agent must address.")}),outputSchema:RO.object({status:GU,merged:RO.boolean().describe("True when this approval completed the review and merged the PR.")}),handler:async({taskBoardItemId:$,reviewer:Z,reviewToken:X,decision:Q,notes:Y},G)=>{E0(G),await G.access.check();let J=G.organization?.id;if(!J)throw Error("Organization ID required (no active organization in context)");let K=await G.storage.taskBoard.getById($,J);if(!K)throw Error(`Task board item not found: ${$}`);let H=(X?await G.storage.taskBoard.resolveReviewClaimByToken($,X):null)?.reviewer===Z;if(Q==="request_changes"){let L=await G.storage.taskBoard.update($,J,{status:"in_progress"},K.updatedBy);await A3(G,{taskBoardItemId:$,action:"review_changes_requested",actorId:null,data:{reviewer:Z,notes:Y,verified:H}}),F9(J,L);let E=(await G.storage.taskBoard.listPrs($,J))[0];return await $a(G,L,{feedback:`${fp[Z]}: ${Y}`,pr:E?{number:E.number,url:E.url}:void 0}).catch((z)=>{console.error("[task-board] request_changes re-enqueue failed",z)}),{status:L.status,merged:!1}}if(await A3(G,{taskBoardItemId:$,action:"review_approved",actorId:null,data:{reviewer:Z,notes:Y,verified:H}}),!await xu4(G,J,$)){let L=await G.storage.taskBoard.getById($,J)??K;return F9(J,L),{status:L.status,merged:!1}}let F=(await G.storage.organizationSettings.get(J))?.flags?.auto_merge===!0;if(F?await UP0(G,J,$):!1){let L=await G.storage.taskBoard.update($,J,{status:"done"},K.updatedBy);return await A3(G,{taskBoardItemId:$,action:"status_changed",actorId:null,data:{from:K.status,to:"done"}}),F9(J,L),{status:L.status,merged:!0}}let B=await G.storage.taskBoard.getById($,J)??K;if(F){let D=(await G.storage.taskBoard.listPrs($,J))[0];if(D?await WP0(G,J,B,{pr:{number:D.number,url:D.url},conflict:await nV8(G,J,D)}).catch((z)=>{return console.error("[task-board] conflict auto-resolve failed",z),!1}):!1)return{status:(await G.storage.taskBoard.getById($,J)??B).status,merged:!1}}return F9(J,B),{status:B.status,merged:!1}}})});import{z as FP0}from"zod";function vu4($,Z,X){if($!=="in_review")return!1;return X.length===0||Gg(Z,X)}var q91;var tV8=O(()=>{s0();xJ();bW();TO();KQ();I91();q91=a({name:"TASK_BOARD_PROMOTE_TO_PRODUCTION",description:"Ship a reviewed task: merge its open pull request and move the task to Done. Used by the board's 'Ship to production' button after the enabled reviewers approved, when auto-merge is off (a human does the final merge).",annotations:{title:"Ship to Production",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!1,openWorldHint:!0},inputSchema:FP0.object({taskBoardItemId:FP0.string()}),outputSchema:FP0.object({status:GU,merged:FP0.boolean().describe("True when the PR was merged.")}),handler:async({taskBoardItemId:$},Z)=>{E0(Z),await Z.access.check();let X=Z.organization?.id;if(!X)throw Error("Organization ID required (no active organization in context)");let Q=await Z.storage.taskBoard.getById($,X);if(!Q)throw Error(`Task board item not found: ${$}`);let G=(await Z.storage.organizationSettings.get(X))?.flags??{},J=wB.filter((N)=>G[BB[N]]===!0),K=await Z.storage.taskBoard.listActivity($,X);if(!vu4(Q.status,K,J))throw Error("Task is not ready to ship: it must be In Review with every enabled reviewer approved");if(!await UP0(Z,X,$))return{status:Q.status,merged:!1};let H=await Z.storage.taskBoard.update($,X,{status:"done"},Q.updatedBy);if(Q.status!=="done")await A3(Z,{taskBoardItemId:$,action:"status_changed",actorId:null,data:{from:Q.status,to:"done"}});return F9(X,H),{status:H.status,merged:!0}}})});var oV8=O(()=>{xV8();bV8();yV8();gV8();NP0();pV8();tV8();TO()});import{z as jU}from"zod";var M91;var rV8=O(()=>{s0();M91=a({name:"TAGS_LIST",description:"List all tags available in the organization.",annotations:{title:"List Tags",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:jU.object({}),outputSchema:jU.object({tags:jU.array(jU.object({id:jU.string(),organizationId:jU.string(),name:jU.string(),color:jU.string().nullable(),createdAt:jU.string().describe("ISO 8601 timestamp")}))}),handler:async($,Z)=>{E0(Z),await Z.access.check();let X=H0(Z);return{tags:(await Z.storage.tags.listOrgTags(X.id)).map((Y)=>({...Y,createdAt:Y.createdAt instanceof Date?Y.createdAt.toISOString():String(Y.createdAt)}))}}})});import{z as sW}from"zod";var k91;var aV8=O(()=>{s0();k91=a({name:"TAGS_CREATE",description:"Create a new tag, usable on organization members and task board items.",annotations:{title:"Create Tag",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!1,openWorldHint:!1},inputSchema:sW.object({name:sW.string().min(1).max(50).describe("Tag name"),color:sW.string().regex(/^#[0-9a-fA-F]{6}$/).nullable().optional().describe('Hex color the tag renders its dot with, e.g. "#3b82f6"')}),outputSchema:sW.object({tag:sW.object({id:sW.string(),organizationId:sW.string(),name:sW.string(),color:sW.string().nullable(),createdAt:sW.string().describe("ISO 8601 timestamp")})}),handler:async($,Z)=>{E0(Z),await Z.access.check();let X=H0(Z),Q=await Z.storage.tags.createTag(X.id,$.name,$.color);return{tag:{...Q,createdAt:Q.createdAt instanceof Date?Q.createdAt.toISOString():String(Q.createdAt)}}}})});import{z as wP0}from"zod";var S91;var sV8=O(()=>{s0();S91=a({name:"TAGS_DELETE",description:"Delete a tag and automatically remove it from all assigned members.",annotations:{title:"Delete Tag",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:wP0.object({tagId:wP0.string().describe("Tag ID to delete")}),outputSchema:wP0.object({success:wP0.boolean()}),handler:async($,Z)=>{E0(Z),await Z.access.check();let X=H0(Z),Q=await Z.storage.tags.getTag($.tagId);if(!Q)throw Error("Tag not found");if(Q.organizationId!==X.id)throw Error("Tag does not belong to this organization");return await Z.storage.tags.deleteTag($.tagId),{success:!0}}})});import{z as eW}from"zod";var V91;var eV8=O(()=>{s0();V91=a({name:"MEMBER_TAGS_GET",description:"Get all tags currently assigned to a specific member.",annotations:{title:"Get Member Tags",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:eW.object({memberId:eW.string().describe("Member ID")}),outputSchema:eW.object({tags:eW.array(eW.object({id:eW.string(),organizationId:eW.string(),name:eW.string(),color:eW.string().nullable(),createdAt:eW.string().describe("ISO 8601 timestamp")}))}),handler:async($,Z)=>{E0(Z),await Z.access.check();let X=H0(Z);if(!await Z.storage.tags.verifyMemberOrg($.memberId,X.id))throw Error(`Member not found in this organization: ${$.memberId}`);return{tags:(await Z.storage.tags.getMemberTags($.memberId)).map((G)=>({...G,createdAt:G.createdAt instanceof Date?G.createdAt.toISOString():String(G.createdAt)}))}}})});import{z as T3}from"zod";var C91;var $C8=O(()=>{s0();C91=a({name:"MEMBER_TAGS_SET",description:"Replace all tags on a member with the given set. Pass empty array to clear.",annotations:{title:"Set Member Tags",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:T3.object({memberId:T3.string().describe("Member ID"),tagIds:T3.array(T3.string()).describe("Array of tag IDs to assign")}),outputSchema:T3.object({success:T3.boolean(),tags:T3.array(T3.object({id:T3.string(),organizationId:T3.string(),name:T3.string(),createdAt:T3.string().describe("ISO 8601 timestamp")}))}),handler:async($,Z)=>{E0(Z),await Z.access.check();let X=H0(Z);if(!await Z.storage.tags.verifyMemberOrg($.memberId,X.id))throw Error(`Member not found in this organization: ${$.memberId}`);for(let G of $.tagIds){let J=await Z.storage.tags.getTag(G);if(!J)throw Error(`Tag not found: ${G}`);if(J.organizationId!==X.id)throw Error(`Tag does not belong to this organization: ${G}`)}return await Z.storage.tags.setMemberTags($.memberId,$.tagIds),{success:!0,tags:(await Z.storage.tags.getMemberTags($.memberId)).map((G)=>({...G,createdAt:G.createdAt instanceof Date?G.createdAt.toISOString():String(G.createdAt)}))}}})});var ZC8=O(()=>{rV8();aV8();sV8();eV8();$C8()});import{z as XC8}from"zod";function hu4($,Z){let X=$?.[Z];if(!X)return;return Object.entries(X).sort(([,Y],[,G])=>{let J=Math.max(0,...Object.values(Y).map((W)=>W.createdAt??0));return Math.max(0,...Object.values(G).map((W)=>W.createdAt??0))-J})[0]?.[0]}var yu4,gu4,_91;var QC8=O(()=>{S$();s0();A_();lX();yu4=XC8.object({data:ck8.describe("Data for the new thread (id is auto-generated if not provided)")}),gu4=XC8.object({item:aW.describe("The created thread entity")});_91=a({name:"COLLECTION_THREADS_CREATE",description:"Create a new thread for organizing messages and conversations.",annotations:{title:"Create Thread",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:yu4,outputSchema:gu4,handler:async($,Z)=>{E0(Z);let X=H0(Z);await Z.access.check();let Q=_1(Z);if(!Q)throw Error("User ID required to create thread");let{data:Y}=$,G=Y.id??J4("thrd"),J=await Z.storage.virtualMcps.findById(Y.virtual_mcp_id,X.id);if(!J||J.organization_id!==X.id)throw Error(`Virtual MCP not found: ${Y.virtual_mcp_id}`);let K=J.metadata,W=K?.githubRepo,H=null;if(W)H=Y.branch??hu4(K?.sandboxMap,Q)??Gj0(Yj0(Z.auth.user));let N=await Z.storage.threads.create({id:G,organization_id:X.id,title:Y.title,description:Y.description,virtual_mcp_id:Y.virtual_mcp_id,branch:H,created_by:Q});if(N.isNew)i1.capture({distinctId:Q,event:"chat_started",groups:{organization:X.id},properties:{organization_id:X.id,thread_id:G,has_title:!!$.data.title,created_via:"tool"}});return{item:P3(N)}}})});import{z as x91}from"zod";var uu4,cu4,v91;var YC8=O(()=>{S$();s0();A_();uu4=x91.object({id:x91.string().describe("ID of the thread to update"),data:lk8.describe("Partial thread data to update")}),cu4=x91.object({item:aW.describe("The updated thread entity")}),v91=a({name:"COLLECTION_THREADS_UPDATE",description:"Update a thread's title, description, or visibility.",annotations:{title:"Update Thread",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:uu4,outputSchema:cu4,handler:async($,Z)=>{E0(Z);let X=H0(Z);await Z.access.check();let Q=_1(Z);if(!Q)throw Error("User ID required to update thread");let{id:Y,data:G}=$,J=await Z.storage.threads.get(Y);if(!J)throw Error("Thread not found in organization");if(G.virtual_mcp_id!==void 0){let H=await Z.storage.virtualMcps.findById(G.virtual_mcp_id,X.id);if(!H||H.organization_id!==X.id)throw Error(`Virtual MCP not found: ${G.virtual_mcp_id}`)}if(G.branch===null&&J.virtual_mcp_id){if((await Z.storage.virtualMcps.findById(J.virtual_mcp_id,X.id))?.metadata?.githubRepo)throw Error("Cannot set branch=null on a github-linked thread (vMCP has githubRepo)")}let K={title:G.title,description:G.description,hidden:G.hidden,updated_by:Q};if(G.status)K.status=G.status;if(G.metadata!==void 0)K.metadata=G.metadata;if(G.branch!==void 0)K.branch=G.branch;if(G.virtual_mcp_id!==void 0)K.virtual_mcp_id=G.virtual_mcp_id;let W=await Z.storage.threads.update(Y,K);if(G.hidden!==void 0&&G.hidden!==J.hidden)i1.capture({distinctId:Q,event:G.hidden?"chat_archived":"chat_unarchived",groups:{organization:X.id},properties:{organization_id:X.id,thread_id:Y}});return{item:P3(W)}}})});var f91;var GC8=O(()=>{B3();A_();S$();s0();f91=a({name:"COLLECTION_THREADS_DELETE",description:"Permanently delete a thread and all its messages.",annotations:{title:"Delete Thread",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:Ro,outputSchema:qo(aW),handler:async($,Z)=>{E0(Z);let X=H0(Z);await Z.access.check();let Q=await Z.storage.threads.get($.id);if(!Q)throw Error(`Thread not found: ${$.id}`);await Z.storage.threads.delete($.id);let Y=_1(Z);if(Y)i1.capture({distinctId:Y,event:"chat_deleted",groups:{organization:X.id},properties:{organization_id:X.id,thread_id:$.id}});return{item:P3(Q)}}})});var JC8=O(()=>{QC8();I51();R51();YC8();GC8();q51()});function du4($){return{type:"doc",content:[{type:"paragraph",content:[{type:"text",text:$}]}]}}function mu4($){return $.map((Z)=>{let X=Z.metadata;if(X?.tiptapDoc)return Z;let Q=Z.parts.find((Y)=>Y.type==="text"&&typeof Y.text==="string");if(!Q?.text||typeof Q.text!=="string")return Z;return{...Z,metadata:{...X,tiptapDoc:du4(Q.text)}}})}function BP0($){let Z;if(typeof $==="string")try{let X=JSON.parse($);if(Array.isArray(X)&&X.length>0&&X[0]?.role&&Array.isArray(X[0]?.parts))Z=X;else Z=[{role:"user",parts:[{type:"text",text:$}]}]}catch{Z=[{role:"user",parts:[{type:"text",text:$}]}]}else Z=$;return mu4(Z)}import{z as n$}from"zod";var b91;var KC8=O(()=>{S$();s0();L3();b91=a({name:"AUTOMATION_CREATE",description:"Create an automation that runs an agent thread on trigger fire. Requires virtual_mcp_id + messages.",annotations:{title:"Create Automation",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1,openWorldHint:!1},inputSchema:n$.object({name:n$.string().min(1).max(255),virtual_mcp_id:n$.string(),messages:n$.union([n$.string(),n$.array(n$.looseObject({id:n$.string().optional(),role:n$.enum(["user","assistant","system"]),parts:n$.array(n$.record(n$.string(),n$.unknown())),metadata:n$.unknown().optional()}))]),models:n$.object({tier:gB,modelId:n$.string().optional(),credentialId:n$.string().optional()}).loose().default({tier:"smart"}),tools:n$.array(n$.string()).nullable().optional(),maxAgentSteps:n$.number().int().min(1).max(100).nullable().optional(),temperature:n$.number().default(0.5),active:n$.boolean().default(!0)}),outputSchema:n$.object({id:n$.string(),name:n$.string(),active:n$.boolean(),created_at:n$.string()}),handler:async($,Z)=>{E0(Z);let X=H0(Z);await Z.access.check();let Q=_1(Z);if(!Q)throw Error("Unable to determine user identity");let Y=BP0($.messages),G=await Z.storage.automations.create({organization_id:X.id,created_by:Q,name:$.name,messages:JSON.stringify(Y),models:JSON.stringify($.models),tools:$.tools===void 0||$.tools===null?null:JSON.stringify($.tools),max_agent_steps:$.maxAgentSteps??null,temperature:$.temperature,active:$.active,virtual_mcp_id:$.virtual_mcp_id});return i1.capture({distinctId:Q,event:"automation_created",groups:{organization:X.id},properties:{organization_id:X.id,automation_id:G.id,virtual_mcp_id:$.virtual_mcp_id,active:G.active,tier:$.models.tier}}),{id:G.id,name:G.name,active:G.active,created_at:G.created_at}}})});import{z as b$}from"zod";var y91;var WC8=O(()=>{s0();y91=a({name:"AUTOMATION_GET",description:"Get an automation's full configuration and triggers by ID.",annotations:{title:"Get Automation",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:b$.object({id:b$.string()}),outputSchema:b$.object({automation:b$.object({id:b$.string(),name:b$.string(),active:b$.boolean(),created_by:b$.string(),created_at:b$.string(),updated_at:b$.string(),virtual_mcp_id:b$.string(),messages:b$.unknown(),models:b$.unknown(),tools:b$.array(b$.string()).nullable(),maxAgentSteps:b$.number().nullable(),temperature:b$.number(),triggers:b$.array(b$.object({id:b$.string(),type:b$.enum(["cron","event","webhook"]),cron_expression:b$.string().nullable(),connection_id:b$.string().nullable(),event_type:b$.string().nullable(),params:b$.unknown().nullable(),last_run_at:b$.string().nullable(),api_key_id:b$.string().nullable(),created_at:b$.string()}))}).nullable()}),handler:async($,Z)=>{E0(Z);let X=H0(Z);await Z.access.check();let Q=await Z.storage.automations.findById($.id,X.id);if(!Q)return{automation:null};let Y=await Z.storage.automations.listTriggers(Q.id);return{automation:{id:Q.id,name:Q.name,active:Q.active,created_by:Q.created_by,created_at:Q.created_at,updated_at:Q.updated_at,virtual_mcp_id:Q.virtual_mcp_id,messages:JSON.parse(Q.messages),models:JSON.parse(Q.models),tools:Q.tools?JSON.parse(Q.tools):null,maxAgentSteps:Q.max_agent_steps,temperature:Q.temperature,triggers:Y.map((G)=>({id:G.id,type:G.type,cron_expression:G.cron_expression,connection_id:G.connection_id,event_type:G.event_type,params:G.params?JSON.parse(G.params):null,last_run_at:G.last_run_at,api_key_id:G.api_key_id,created_at:G.created_at}))}}}})});import{z as HG}from"zod";var g91;var HC8=O(()=>{s0();g91=a({name:"AUTOMATION_LIST",description:"List automations with their status, triggers, and configuration.",annotations:{title:"List Automations",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:HG.object({virtual_mcp_id:HG.string().optional().nullable()}),outputSchema:HG.object({automations:HG.array(HG.object({id:HG.string(),name:HG.string(),active:HG.boolean(),created_by:HG.string(),created_at:HG.string(),trigger_count:HG.number(),nearest_next_run_at:HG.string().nullable(),virtual_mcp_id:HG.string()}))}),handler:async($,Z)=>{E0(Z);let X=H0(Z);return await Z.access.check(),{automations:(await Z.storage.automations.listWithTriggerCounts(X.id,$.virtual_mcp_id)).map((G)=>({id:G.id,name:G.name,active:G.active,created_by:G.created_by,created_at:G.created_at,trigger_count:G.trigger_count,nearest_next_run_at:G.nearest_next_run_at,virtual_mcp_id:G.virtual_mcp_id}))}}})});function iu4($){if(!$)return null;try{let Z=JSON.parse($);if(Array.isArray(Z)&&Z.every((X)=>typeof X==="string"))return Z.length>0?Z:null}catch{}return null}function NC8($){return`${$}:context`}function UC8($,Z,X,Q,Y){return{messages:JSON.parse($.messages).map((W,H)=>({...W,id:`${X}:${H}`})),models:{credentialId:Q.credentialId,thinking:Q.thinking,...Q.image?{image:Q.image}:{},...Q.webSearch?{webSearch:Q.webSearch}:{},...Q.deepResearch?{deepResearch:Q.deepResearch}:{}},agent:{id:$.virtual_mcp_id},toolAllowlist:iu4($.tools),maxAgentSteps:$.max_agent_steps??void 0,temperature:$.temperature??0.5,toolApprovalLevel:"auto",mode:"default",organizationId:$.organization_id,userId:$.created_by,harnessId:"decopilot",sandboxProviderKind:"agent-sandbox",triggerId:Z??void 0,...Y?{runMetadata:Y}:{},taskId:X}}function jX($,Z,X,Q,Y,G,J,K){return jX.fromTZ(jX.tp($,Z,X,Q,Y,G,J),K)}function h91($,Z=new Date){let X=Z.toLocaleString("en-US",{timeZone:$,timeZoneName:"shortOffset"}).split(" ").slice(-1)[0],Q=Z.toLocaleString("en-US").replace(/[\u202f]/," ");return Date.parse(`${Q} GMT`)-Date.parse(`${Q} ${X}`)}function nu4($,Z){let X=new Date(Date.parse($));if(isNaN(X))throw Error("minitz: Invalid ISO8601 passed to parser.");let Q=$.substring(9);return $.includes("Z")||Q.includes("-")||Q.includes("+")?jX.tp(X.getUTCFullYear(),X.getUTCMonth()+1,X.getUTCDate(),X.getUTCHours(),X.getUTCMinutes(),X.getUTCSeconds(),"Etc/UTC"):jX.tp(X.getFullYear(),X.getMonth()+1,X.getDate(),X.getHours(),X.getMinutes(),X.getSeconds(),Z)}function pu4($){if($===void 0&&($={}),delete $.name,$.legacyMode=$.legacyMode===void 0?!0:$.legacyMode,$.paused=$.paused===void 0?!1:$.paused,$.maxRuns=$.maxRuns===void 0?1/0:$.maxRuns,$.catch=$.catch===void 0?!1:$.catch,$.interval=$.interval===void 0?0:parseInt($.interval.toString(),10),$.utcOffset=$.utcOffset===void 0?void 0:parseInt($.utcOffset.toString(),10),$.unref=$.unref===void 0?!1:$.unref,$.startAt&&($.startAt=new I3($.startAt,$.timezone)),$.stopAt&&($.stopAt=new I3($.stopAt,$.timezone)),$.interval!==null){if(isNaN($.interval))throw Error("CronOptions: Supplied value for interval is not a number");if($.interval<0)throw Error("CronOptions: Supplied value for interval can not be negative")}if($.utcOffset!==void 0){if(isNaN($.utcOffset))throw Error("CronOptions: Invalid value passed for utcOffset, should be number representing minutes offset from UTC.");if($.utcOffset<-870||$.utcOffset>870)throw Error("CronOptions: utcOffset out of bounds.");if($.utcOffset!==void 0&&$.timezone)throw Error("CronOptions: Combining 'utcOffset' with 'timezone' is not allowed.")}if($.unref!==!0&&$.unref!==!1)throw Error("CronOptions: Unref should be either true, false or undefined(false).");return $}function Ya($){return Object.prototype.toString.call($)==="[object Function]"||typeof $=="function"||$ instanceof Function}function tu4($){return Ya($)}function ou4($){typeof Deno<"u"&&typeof Deno.unrefTimer<"u"?Deno.unrefTimer($):$&&typeof $.unref<"u"&&$.unref()}var u91=32,Ga,OC8,FC8=class{pattern;timezone;second;minute;hour;day;month;dayOfWeek;lastDayOfMonth;starDOM;starDOW;constructor($,Z){this.pattern=$,this.timezone=Z,this.second=Array(60).fill(0),this.minute=Array(60).fill(0),this.hour=Array(24).fill(0),this.day=Array(31).fill(0),this.month=Array(12).fill(0),this.dayOfWeek=Array(7).fill(0),this.lastDayOfMonth=!1,this.starDOM=!1,this.starDOW=!1,this.parse()}parse(){if(!(typeof this.pattern=="string"||this.pattern instanceof String))throw TypeError("CronPattern: Pattern has to be of type string.");this.pattern.indexOf("@")>=0&&(this.pattern=this.handleNicknames(this.pattern).trim());let $=this.pattern.replace(/\s+/g," ").split(" ");if($.length<5||$.length>6)throw TypeError("CronPattern: invalid configuration format ('"+this.pattern+"'), exactly five or six space separated parts are required.");if($.length===5&&$.unshift("0"),$[3].indexOf("L")>=0&&($[3]=$[3].replace("L",""),this.lastDayOfMonth=!0),$[3]=="*"&&(this.starDOM=!0),$[4].length>=3&&($[4]=this.replaceAlphaMonths($[4])),$[5].length>=3&&($[5]=this.replaceAlphaDays($[5])),$[5]=="*"&&(this.starDOW=!0),this.pattern.indexOf("?")>=0){let Z=new I3(new Date,this.timezone).getDate(!0);$[0]=$[0].replace("?",Z.getSeconds().toString()),$[1]=$[1].replace("?",Z.getMinutes().toString()),$[2]=$[2].replace("?",Z.getHours().toString()),this.starDOM||($[3]=$[3].replace("?",Z.getDate().toString())),$[4]=$[4].replace("?",(Z.getMonth()+1).toString()),this.starDOW||($[5]=$[5].replace("?",Z.getDay().toString()))}this.throwAtIllegalCharacters($),this.partToArray("second",$[0],0,1),this.partToArray("minute",$[1],0,1),this.partToArray("hour",$[2],0,1),this.partToArray("day",$[3],-1,1),this.partToArray("month",$[4],-1,1),this.partToArray("dayOfWeek",$[5],0,Ga),this.dayOfWeek[7]&&(this.dayOfWeek[0]=this.dayOfWeek[7])}partToArray($,Z,X,Q){let Y=this[$],G=$==="day"&&this.lastDayOfMonth;if(Z===""&&!G)throw TypeError("CronPattern: configuration entry "+$+" ("+Z+") is empty, check for trailing spaces.");if(Z==="*")return Y.fill(Q);let J=Z.split(",");if(J.length>1)for(let K=0;K<J.length;K++)this.partToArray($,J[K],X,Q);else Z.indexOf("-")!==-1&&Z.indexOf("/")!==-1?this.handleRangeWithStepping(Z,$,X,Q):Z.indexOf("-")!==-1?this.handleRange(Z,$,X,Q):Z.indexOf("/")!==-1?this.handleStepping(Z,$,X,Q):Z!==""&&this.handleNumber(Z,$,X,Q)}throwAtIllegalCharacters($){for(let Z=0;Z<$.length;Z++)if((Z===5?/[^/*0-9,\-#L]+/:/[^/*0-9,-]+/).test($[Z]))throw TypeError("CronPattern: configuration entry "+Z+" ("+$[Z]+") contains illegal characters.")}handleNumber($,Z,X,Q){let Y=this.extractNth($,Z),G=parseInt(Y[0],10)+X;if(isNaN(G))throw TypeError("CronPattern: "+Z+" is not a number: '"+$+"'");this.setPart(Z,G,Y[1]||Q)}setPart($,Z,X){if(!Object.prototype.hasOwnProperty.call(this,$))throw TypeError("CronPattern: Invalid part specified: "+$);if($==="dayOfWeek"){if(Z===7&&(Z=0),Z<0||Z>6)throw RangeError("CronPattern: Invalid value for dayOfWeek: "+Z);this.setNthWeekdayOfMonth(Z,X);return}if($==="second"||$==="minute"){if(Z<0||Z>=60)throw RangeError("CronPattern: Invalid value for "+$+": "+Z)}else if($==="hour"){if(Z<0||Z>=24)throw RangeError("CronPattern: Invalid value for "+$+": "+Z)}else if($==="day"){if(Z<0||Z>=31)throw RangeError("CronPattern: Invalid value for "+$+": "+Z)}else if($==="month"&&(Z<0||Z>=12))throw RangeError("CronPattern: Invalid value for "+$+": "+Z);this[$][Z]=X}handleRangeWithStepping($,Z,X,Q){let Y=this.extractNth($,Z),G=Y[0].match(/^(\d+)-(\d+)\/(\d+)$/);if(G===null)throw TypeError("CronPattern: Syntax error, illegal range with stepping: '"+$+"'");let[,J,K,W]=G,H=parseInt(J,10)+X,N=parseInt(K,10)+X,U=parseInt(W,10);if(isNaN(H))throw TypeError("CronPattern: Syntax error, illegal lower range (NaN)");if(isNaN(N))throw TypeError("CronPattern: Syntax error, illegal upper range (NaN)");if(isNaN(U))throw TypeError("CronPattern: Syntax error, illegal stepping: (NaN)");if(U===0)throw TypeError("CronPattern: Syntax error, illegal stepping: 0");if(U>this[Z].length)throw TypeError("CronPattern: Syntax error, steps cannot be greater than maximum value of part ("+this[Z].length+")");if(H>N)throw TypeError("CronPattern: From value is larger than to value: '"+$+"'");for(let F=H;F<=N;F+=U)this.setPart(Z,F,Y[1]||Q)}extractNth($,Z){let X=$,Q;if(X.includes("#")){if(Z!=="dayOfWeek")throw Error("CronPattern: nth (#) only allowed in day-of-week field");Q=X.split("#")[1],X=X.split("#")[0]}return[X,Q]}handleRange($,Z,X,Q){let Y=this.extractNth($,Z),G=Y[0].split("-");if(G.length!==2)throw TypeError("CronPattern: Syntax error, illegal range: '"+$+"'");let J=parseInt(G[0],10)+X,K=parseInt(G[1],10)+X;if(isNaN(J))throw TypeError("CronPattern: Syntax error, illegal lower range (NaN)");if(isNaN(K))throw TypeError("CronPattern: Syntax error, illegal upper range (NaN)");if(J>K)throw TypeError("CronPattern: From value is larger than to value: '"+$+"'");for(let W=J;W<=K;W++)this.setPart(Z,W,Y[1]||Q)}handleStepping($,Z,X,Q){let Y=this.extractNth($,Z),G=Y[0].split("/");if(G.length!==2)throw TypeError("CronPattern: Syntax error, illegal stepping: '"+$+"'");G[0]===""&&(G[0]="*");let J=0;G[0]!=="*"&&(J=parseInt(G[0],10)+X);let K=parseInt(G[1],10);if(isNaN(K))throw TypeError("CronPattern: Syntax error, illegal stepping: (NaN)");if(K===0)throw TypeError("CronPattern: Syntax error, illegal stepping: 0");if(K>this[Z].length)throw TypeError("CronPattern: Syntax error, max steps for part is ("+this[Z].length+")");for(let W=J;W<this[Z].length;W+=K)this.setPart(Z,W,Y[1]||Q)}replaceAlphaDays($){return $.replace(/-sun/gi,"-7").replace(/sun/gi,"0").replace(/mon/gi,"1").replace(/tue/gi,"2").replace(/wed/gi,"3").replace(/thu/gi,"4").replace(/fri/gi,"5").replace(/sat/gi,"6")}replaceAlphaMonths($){return $.replace(/jan/gi,"1").replace(/feb/gi,"2").replace(/mar/gi,"3").replace(/apr/gi,"4").replace(/may/gi,"5").replace(/jun/gi,"6").replace(/jul/gi,"7").replace(/aug/gi,"8").replace(/sep/gi,"9").replace(/oct/gi,"10").replace(/nov/gi,"11").replace(/dec/gi,"12")}handleNicknames($){let Z=$.trim().toLowerCase();return Z==="@yearly"||Z==="@annually"?"0 0 1 1 *":Z==="@monthly"?"0 0 1 * *":Z==="@weekly"?"0 0 * * 0":Z==="@daily"?"0 0 * * *":Z==="@hourly"?"0 * * * *":$}setNthWeekdayOfMonth($,Z){if(typeof Z!="number"&&Z==="L")this.dayOfWeek[$]=this.dayOfWeek[$]|u91;else if(Z===Ga)this.dayOfWeek[$]=Ga;else if(Z<6&&Z>0)this.dayOfWeek[$]=this.dayOfWeek[$]|OC8[Z-1];else throw TypeError(`CronPattern: nth weekday out of range, should be 1-5 or L. Value: ${Z}, Type: ${typeof Z}`)}},wC8,PU,I3=class ${tz;ms;second;minute;hour;day;month;year;constructor(Z,X){if(this.tz=X,Z&&Z instanceof Date)if(!isNaN(Z))this.fromDate(Z);else throw TypeError("CronDate: Invalid date passed to CronDate constructor");else if(Z===void 0)this.fromDate(new Date);else if(Z&&typeof Z=="string")this.fromString(Z);else if(Z instanceof $)this.fromCronDate(Z);else throw TypeError("CronDate: Invalid type ("+typeof Z+") passed to CronDate constructor")}isNthWeekdayOfMonth(Z,X,Q,Y){let G=new Date(Date.UTC(Z,X,Q)).getUTCDay(),J=0;for(let K=1;K<=Q;K++)new Date(Date.UTC(Z,X,K)).getUTCDay()===G&&J++;if(Y&Ga&&OC8[J-1]&Y)return!0;if(Y&u91){let K=new Date(Date.UTC(Z,X+1,0)).getUTCDate();for(let W=Q+1;W<=K;W++)if(new Date(Date.UTC(Z,X,W)).getUTCDay()===G)return!1;return!0}return!1}fromDate(Z){if(this.tz!==void 0)if(typeof this.tz=="number")this.ms=Z.getUTCMilliseconds(),this.second=Z.getUTCSeconds(),this.minute=Z.getUTCMinutes()+this.tz,this.hour=Z.getUTCHours(),this.day=Z.getUTCDate(),this.month=Z.getUTCMonth(),this.year=Z.getUTCFullYear(),this.apply();else{let X=jX.toTZ(Z,this.tz);this.ms=Z.getMilliseconds(),this.second=X.s,this.minute=X.i,this.hour=X.h,this.day=X.d,this.month=X.m-1,this.year=X.y}else this.ms=Z.getMilliseconds(),this.second=Z.getSeconds(),this.minute=Z.getMinutes(),this.hour=Z.getHours(),this.day=Z.getDate(),this.month=Z.getMonth(),this.year=Z.getFullYear()}fromCronDate(Z){this.tz=Z.tz,this.year=Z.year,this.month=Z.month,this.day=Z.day,this.hour=Z.hour,this.minute=Z.minute,this.second=Z.second,this.ms=Z.ms}apply(){if(this.month>11||this.day>wC8[this.month]||this.hour>59||this.minute>59||this.second>59||this.hour<0||this.minute<0||this.second<0){let Z=new Date(Date.UTC(this.year,this.month,this.day,this.hour,this.minute,this.second,this.ms));return this.ms=Z.getUTCMilliseconds(),this.second=Z.getUTCSeconds(),this.minute=Z.getUTCMinutes(),this.hour=Z.getUTCHours(),this.day=Z.getUTCDate(),this.month=Z.getUTCMonth(),this.year=Z.getUTCFullYear(),!0}else return!1}fromString(Z){if(typeof this.tz=="number"){let X=jX.fromTZISO(Z);this.ms=X.getUTCMilliseconds(),this.second=X.getUTCSeconds(),this.minute=X.getUTCMinutes(),this.hour=X.getUTCHours(),this.day=X.getUTCDate(),this.month=X.getUTCMonth(),this.year=X.getUTCFullYear(),this.apply()}else return this.fromDate(jX.fromTZISO(Z,this.tz))}findNext(Z,X,Q,Y){let G=this[X],J;Q.lastDayOfMonth&&(this.month!==1?J=wC8[this.month]:J=new Date(Date.UTC(this.year,this.month+1,0,0,0,0,0)).getUTCDate());let K=!Q.starDOW&&X=="day"?new Date(Date.UTC(this.year,this.month,1,0,0,0,0)).getUTCDay():void 0;for(let W=this[X]+Y;W<Q[X].length;W++){let H=Q[X][W];if(X==="day"&&Q.lastDayOfMonth&&W-Y==J&&(H=1),X==="day"&&!Q.starDOW){let N=Q.dayOfWeek[(K+(W-Y-1))%7];if(N&&N&Ga)N=this.isNthWeekdayOfMonth(this.year,this.month,W-Y,N)?1:0;else if(N)throw Error(`CronDate: Invalid value for dayOfWeek encountered. ${N}`);Z.legacyMode&&!Q.starDOM?H=H||N:H=H&&N}if(H)return this[X]=W-Y,G!==this[X]?2:1}return 3}recurse(Z,X,Q){let Y=this.findNext(X,PU[Q][0],Z,PU[Q][2]);if(Y>1){let G=Q+1;for(;G<PU.length;)this[PU[G][0]]=-PU[G][2],G++;if(Y===3)return this[PU[Q][1]]++,this[PU[Q][0]]=-PU[Q][2],this.apply(),this.recurse(Z,X,0);if(this.apply())return this.recurse(Z,X,Q-1)}return Q+=1,Q>=PU.length?this:this.year>=3000?null:this.recurse(Z,X,Q)}increment(Z,X,Q){return this.second+=X.interval!==void 0&&X.interval>1&&Q?X.interval:1,this.ms=0,this.apply(),this.recurse(Z,X,0)}getDate(Z){return Z||this.tz===void 0?new Date(this.year,this.month,this.day,this.hour,this.minute,this.second,this.ms):typeof this.tz=="number"?new Date(Date.UTC(this.year,this.month,this.day,this.hour,this.minute-this.tz,this.second,this.ms)):jX.fromTZ(jX.tp(this.year,this.month+1,this.day,this.hour,this.minute,this.second,this.tz),!1)}getTime(){return this.getDate(!1).getTime()}},BC8=30000,OP0,LP0=class{name;options;_states;fn;constructor($,Z,X){let Q,Y;if(Ya(Z))Y=Z;else if(typeof Z=="object")Q=Z;else if(Z!==void 0)throw Error("Cron: Invalid argument passed for optionsIn. Should be one of function, or object (options).");if(Ya(X))Y=X;else if(typeof X=="object")Q=X;else if(X!==void 0)throw Error("Cron: Invalid argument passed for funcIn. Should be one of function, or object (options).");if(this.name=Q?.name,this.options=pu4(Q),this._states={kill:!1,blocking:!1,previousRun:void 0,currentRun:void 0,once:void 0,currentTimeout:void 0,maxRuns:Q?Q.maxRuns:void 0,paused:Q?Q.paused:!1,pattern:new FC8("* * * * *")},$&&($ instanceof Date||typeof $=="string"&&$.indexOf(":")>0)?this._states.once=new I3($,this.options.timezone||this.options.utcOffset):this._states.pattern=new FC8($,this.options.timezone),this.name){if(OP0.find((G)=>G.name===this.name))throw Error("Cron: Tried to initialize new named job '"+this.name+"', but name already taken.");OP0.push(this)}return Y!==void 0&&tu4(Y)&&(this.fn=Y,this.schedule()),this}nextRun($){let Z=this._next($);return Z?Z.getDate(!1):null}nextRuns($,Z){this._states.maxRuns!==void 0&&$>this._states.maxRuns&&($=this._states.maxRuns);let X=[],Q=Z||this._states.currentRun||void 0;for(;$--&&(Q=this.nextRun(Q));)X.push(Q);return X}getPattern(){return this._states.pattern?this._states.pattern.pattern:void 0}isRunning(){let $=this.nextRun(this._states.currentRun),Z=!this._states.paused,X=this.fn!==void 0,Q=!this._states.kill;return Z&&X&&Q&&$!==null}isStopped(){return this._states.kill}isBusy(){return this._states.blocking}currentRun(){return this._states.currentRun?this._states.currentRun.getDate():null}previousRun(){return this._states.previousRun?this._states.previousRun.getDate():null}msToNext($){let Z=this._next($);return Z?$ instanceof I3||$ instanceof Date?Z.getTime()-$.getTime():Z.getTime()-new I3($).getTime():null}stop(){this._states.kill=!0,this._states.currentTimeout&&clearTimeout(this._states.currentTimeout);let $=OP0.indexOf(this);$>=0&&OP0.splice($,1)}pause(){return this._states.paused=!0,!this._states.kill}resume(){return this._states.paused=!1,!this._states.kill}schedule($){if($&&this.fn)throw Error("Cron: It is not allowed to schedule two functions using the same Croner instance.");$&&(this.fn=$);let Z=this.msToNext(),X=this.nextRun(this._states.currentRun);return Z==null||isNaN(Z)||X===null?this:(Z>BC8&&(Z=BC8),this._states.currentTimeout=setTimeout(()=>this._checkTrigger(X),Z),this._states.currentTimeout&&this.options.unref&&ou4(this._states.currentTimeout),this)}async _trigger($){if(this._states.blocking=!0,this._states.currentRun=new I3(void 0,this.options.timezone||this.options.utcOffset),this.options.catch)try{this.fn!==void 0&&await this.fn(this,this.options.context)}catch(Z){Ya(this.options.catch)&&this.options.catch(Z,this)}else this.fn!==void 0&&await this.fn(this,this.options.context);this._states.previousRun=new I3($,this.options.timezone||this.options.utcOffset),this._states.blocking=!1}async trigger(){await this._trigger()}runsLeft(){return this._states.maxRuns}_checkTrigger($){let Z=new Date,X=!this._states.paused&&Z.getTime()>=$.getTime(),Q=this._states.blocking&&this.options.protect;X&&!Q?(this._states.maxRuns!==void 0&&this._states.maxRuns--,this._trigger()):X&&Q&&Ya(this.options.protect)&&setTimeout(()=>this.options.protect(this),0),this.schedule()}_next($){let Z=!!($||this._states.currentRun),X=!1;!$&&this.options.startAt&&this.options.interval&&([$,Z]=this._calculatePreviousRun($,Z),X=!$),$=new I3($,this.options.timezone||this.options.utcOffset),this.options.startAt&&$&&$.getTime()<this.options.startAt.getTime()&&($=this.options.startAt);let Q=this._states.once||new I3($,this.options.timezone||this.options.utcOffset);return!X&&Q!==this._states.once&&(Q=Q.increment(this._states.pattern,this.options,Z)),this._states.once&&this._states.once.getTime()<=$.getTime()||Q===null||this._states.maxRuns!==void 0&&this._states.maxRuns<=0||this._states.kill||this.options.stopAt&&Q.getTime()>=this.options.stopAt.getTime()?null:Q}_calculatePreviousRun($,Z){let X=new I3(void 0,this.options.timezone||this.options.utcOffset),Q=$;if(this.options.startAt.getTime()<=X.getTime()){Q=this.options.startAt;let Y=Q.getTime()+this.options.interval*1000;for(;Y<=X.getTime();)Q=new I3(Q,this.options.timezone||this.options.utcOffset).increment(this._states.pattern,this.options,!0),Y=Q.getTime()+this.options.interval*1000;Z=!0}return Q===null&&(Q=void 0),[Q,Z]}};var c91=O(()=>{jX.fromTZISO=($,Z,X)=>jX.fromTZ(nu4($,Z),X);jX.fromTZ=function($,Z){let X=new Date(Date.UTC($.y,$.m-1,$.d,$.h,$.i,$.s)),Q=h91($.tz,X),Y=new Date(X.getTime()-Q),G=h91($.tz,Y);if(G-Q===0)return Y;{let J=new Date(X.getTime()-G),K=h91($.tz,J);if(K-G===0)return J;if(!Z&&K-G>0)return J;if(Z)throw Error("Invalid date passed to fromTZ()");return Y}};jX.toTZ=function($,Z){let X=$.toLocaleString("en-US",{timeZone:Z}).replace(/[\u202f]/," "),Q=new Date(X);return{y:Q.getFullYear(),m:Q.getMonth()+1,d:Q.getDate(),h:Q.getHours(),i:Q.getMinutes(),s:Q.getSeconds(),tz:Z}};jX.tp=($,Z,X,Q,Y,G,J)=>({y:$,m:Z,d:X,h:Q,i:Y,s:G,tz:J});jX.minitz=jX;Ga=31|u91,OC8=[1,2,4,8,16],wC8=[31,28,31,30,31,30,31,31,30,31,30,31],PU=[["month","year",0],["day","month",-1],["hour","day",0],["minute","hour",0],["second","minute",0]];OP0=[]});function DP0($,Z){try{return new LP0($,{timezone:"UTC"}).nextRun(Z)??null}catch{return null}}var l91=O(()=>{c91()});import{DBOS as P7,SchedulerMode as ru4}from"@dbos-inc/dbos-sdk";async function p91($){try{let{rows:Z}=await $.query(`SELECT q.name FROM dbos.queues q
2759
+ `);await er($,Z,{title:`${fp[X]}: ${Z.title}`,prompt:G,temperature:0.3}),await A3($,{taskBoardItemId:Z.id,action:"review_requested",actorId:null,data:{reviewer:X}});let J=await $.storage.taskBoard.getById(Z.id,Y);if(J)F9(Y,J)}var zu4,ju4;var z91=O(()=>{xJ();TO();KQ();N91();zu4=new Set(["completed","failed","expired"]),ju4={qa:"You are the QA Agent. Your job is to confirm the task ACTUALLY SOLVED THE "+"PROBLEM \u2014 not to review code style. Exercise the feature/behavior the task "+"describes (use the PR's preview / dev server when available), check the acceptance criteria implied by the title and description, and look for regressions in the affected flow. Judge outcomes, not the diff.",code_review:"You are the Code Reviewer. Review the code changes for correctness, security, and quality. FIRST look for a review skill/command appropriate to this repository's stack (e.g. a `/review`, `code-review`, or `security-review` skill, or the repo's CONTRIBUTING/review guidelines) and use it. Read the diff critically and flag concrete issues with file/line references."}});function Iu4($){return $.filter((X)=>X.action==="merge_conflict_resolution").length>=hV8}async function WP0($,Z,X,Q){if(X.status!=="in_review")return!1;if(X.assigneeId!==Y9)return!1;if(Q.conflict!==!0)return!1;let G=(await $.storage.organizationSettings.get(Z))?.flags??{};if(G.auto_merge!==!0)return!1;let J=wB.filter((N)=>G[BB[N]]===!0),K=await $.storage.taskBoard.listActivity(X.id,Z);if(!Gg(K,J,{verifiedOnly:!0}))return!1;if(Iu4(K))return console.warn(`[task-board] conflict auto-resolve cap (${hV8}) reached on task ${X.id} \u2014 leaving the PR for a human`),!1;let W=Q.pr,H=await $.storage.taskBoard.claimConflictResolution(X.id,Z,X.updatedBy);if(!H)return!1;return await A3($,{taskBoardItemId:X.id,action:"merge_conflict_resolution",actorId:null,data:{prNumber:W.number}}),F9(Z,H),await $a($,H,{pr:{number:W.number,url:W.url},resolveConflict:!0}),!0}var hV8=3;var j91=O(()=>{xJ();TO();KQ();dh()});import{z as HP0}from"zod";async function Xa($,Z,X,Q){if(X){let J=await $.storage.connections.findById(X,Z);if(J&&J.status==="active")return J}let{items:Y}=await $.storage.connections.list(Z,{slug:"mcp-github"}),G=Y.filter((J)=>J.status==="active");if(Q){let J=G.find((K)=>{let W=eX(K);return W?.owner===Q.owner&&W?.repo===Q.name});if(J)return J}return G.find((J)=>eX(J)===null)??G[0]??null}function Qa($){if(!$||typeof $!=="object")return null;let Z=$;if(Z.isError)return null;if(Z.structuredContent&&typeof Z.structuredContent==="object"&&Object.keys(Z.structuredContent).length>0)return Z.structuredContent;let X=Z.content?.find((Q)=>Q.type==="text")?.text;if(!X)return null;try{return JSON.parse(X)}catch{return null}}function A91($){let Z;try{Z=new URL($).hostname.toLowerCase()}catch{return!1}return Z==="deco.site"||Z.endsWith(".decocdn.com")||Z.endsWith(".deco-cx.workers.dev")||Z.endsWith(".deco.site")}function Ru4($){if(!$||!Array.isArray($.statuses))return null;let Z=$.statuses.map((X)=>X&&typeof X==="object"?X:null).filter((X)=>!!X&&typeof X.target_url==="string"&&A91(X.target_url));if(Z.length===0)return null;return Z.find((X)=>X.state==="success")?.target_url??Z[0].target_url}function qu4($){let Z=Array.isArray($)?$:Array.isArray($?.comments)?$.comments:Array.isArray($?.items)?$.items:[];for(let X of Z){let Q=X&&typeof X.body==="string"?X.body:"";if(!Q)continue;let Y=Q.match(/href=['"]([^'"]+)['"][^>]*>\s*Branch Preview/i);if(Y?.[1]&&A91(Y[1]))return Y[1];let G=(Q.match(/https?:\/\/[^\s"'<>)\]]+/g)??[]).find((J)=>A91(J));if(G)return G}return null}function uV8($){if(!$)return null;if((typeof $.total_count==="number"?$.total_count:null)===0)return null;switch($.state){case"success":return"passing";case"failure":case"error":return"failing";case"pending":return"pending";default:return null}}function lV8($){let Z=Array.isArray($)?$:Array.isArray($?.check_runs)?$.check_runs:[];if(Z.length===0)return null;let X=!1,Q=!1;for(let Y of Z){if(!Y||typeof Y!=="object")continue;let{status:G,conclusion:J}=Y;if(G!=="completed")Q=!0;else if(typeof J==="string"&&cV8.has(J))X=!0}if(X)return"failing";if(Q)return"pending";return"passing"}function dV8($,Z){if($==="failing"||Z==="failing")return"failing";if($==="pending"||Z==="pending")return"pending";if($==="passing"||Z==="passing")return"passing";return null}function Mu4($){let Z=Array.isArray($)?$:Array.isArray($?.check_runs)?$.check_runs:[],X=[];for(let Q of Z){if(!Q||typeof Q!=="object")continue;let Y=Q;X.push({id:typeof Y.id==="number"?Y.id:null,name:typeof Y.name==="string"?Y.name:"",status:typeof Y.status==="string"?Y.status:"completed",conclusion:typeof Y.conclusion==="string"?Y.conclusion:null,detailsUrl:typeof Y.html_url==="string"?Y.html_url:typeof Y.details_url==="string"?Y.details_url:null})}return X}function ku4($){return $.status==="completed"&&$.conclusion!=null&&cV8.has($.conclusion)}async function Su4($,Z,X){try{let Y=Qa(await $.callTool({name:"GET_CHECK_RUN",arguments:{owner:Z.repoOwner,repo:Z.repoName,checkRunId:X}},void 0,{timeout:Za}))?.output,G=typeof Y?.summary==="string"?Y.summary:null,J=typeof Y?.text==="string"?Y.text:null;return G??J??null}catch{return null}}async function mV8($,Z,X){let Q=await Xa($,Z,X.connectionId,{owner:X.repoOwner,name:X.repoName});if(!Q)return null;let Y=await b5(Q,$,!0),G=async(J)=>Qa(await Y.callTool({name:"pull_request_read",arguments:{method:J,owner:X.repoOwner,repo:X.repoName,pullNumber:X.number}},void 0,{timeout:Za}));try{let J=null;try{J=uV8(await G("get_status"))}catch{}try{J=dV8(J,lV8(await G("get_check_runs")))}catch{}return J}finally{await Y.close().catch(()=>{})}}function iV8($){if(!$)return null;if($.state!=="open")return!1;return typeof $.mergeable==="boolean"?!$.mergeable:null}async function nV8($,Z,X){let Q=await Xa($,Z,X.connectionId,{owner:X.repoOwner,name:X.repoName});if(!Q)return null;let Y=await b5(Q,$,!0);try{return iV8(Qa(await Y.callTool({name:"pull_request_read",arguments:{method:"get",owner:X.repoOwner,repo:X.repoName,pullNumber:X.number}},void 0,{timeout:Za})))}catch{return null}finally{await Y.close().catch(()=>{})}}async function Vu4($,Z){let X=async(H)=>{try{return Qa(await $.callTool({name:"pull_request_read",arguments:{method:H,owner:Z.repoOwner,repo:Z.repoName,pullNumber:Z.number}},void 0,{timeout:Za}))}catch{return null}},[Q,Y,G]=await Promise.all([X("get_status"),X("get_check_runs"),X("get_comments")]),J=dV8(uV8(Q),lV8(Y)),K=Ru4(Q)??qu4(G),W=await Promise.all(Mu4(Y).map(async(H)=>({name:H.name,status:H.status,conclusion:H.conclusion,detailsUrl:H.detailsUrl,summary:ku4(H)&&H.id!=null?await Su4($,Z,H.id):null})));return{checksStatus:J,checks:W,previewUrl:K}}async function Cu4($,Z,X){let Q=await Xa($,Z,X.connectionId,{owner:X.repoOwner,name:X.repoName});if(!Q)return P91;let Y=await b5(Q,$,!0);try{let[G,J]=await Promise.all([Y.callTool({name:"pull_request_read",arguments:{method:"get",owner:X.repoOwner,repo:X.repoName,pullNumber:X.number}},void 0,{timeout:Za}),Vu4(Y,X)]),K=Qa(G);if(!K)return P91;let W=K.state,H=W==="open";return{title:typeof K.title==="string"?K.title:null,body:typeof K.body==="string"?K.body:null,state:W==="closed"?"closed":H?"open":null,draft:typeof K.draft==="boolean"?K.draft:null,merged:typeof K.merged==="boolean"?K.merged:null,mergeable:H&&typeof K.mergeable==="boolean"?K.mergeable:null,checksStatus:H?J.checksStatus:null,checks:H?J.checks:[],previewUrl:H?J.previewUrl:null}}catch{return P91}finally{await Y.close().catch(()=>{})}}var Za=8000,P91,cV8,T91;var NP0=O(()=>{s0();eN();rN();xJ();bW();KQ();z91();j91();G51();P91={title:null,body:null,state:null,draft:null,merged:null,mergeable:null,checksStatus:null,checks:[],previewUrl:null};cV8=new Set(["failure","cancelled","timed_out","action_required","startup_failure","stale"]);T91=a({name:"TASK_BOARD_ITEM_PRS_GET",description:"Get the GitHub pull requests linked to a task board item, each enriched with live state (title, open/closed, draft, merged) fetched from GitHub.",annotations:{title:"Get Task Board Item Pull Requests",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!0,openWorldHint:!0},inputSchema:HP0.object({taskBoardItemId:HP0.string()}),outputSchema:HP0.object({prs:HP0.array(vB8)}),handler:async({taskBoardItemId:$},Z)=>{E0(Z),await Z.access.check();let X=Z.organization?.id;if(!X)throw Error("Organization ID required (no active organization in context)");let Q=await Z.storage.taskBoard.getById($,X);for(let H of Q?.threads??[]){let N=H.lastMessage?zj0(H.lastMessage):null;if(!N)continue;try{await Z.storage.taskBoard.linkPr({taskBoardItemId:$,organizationId:X,url:N.url,prNumber:N.number,repoOwner:N.owner,repoName:N.repo,connectionId:null})}catch(U){console.error("[task-board] PR recovery from thread text failed",U)}}let Y=await Z.storage.taskBoard.listPrs($,X),G=await Promise.all(Y.map(async(H)=>{let N=await Cu4(Z,X,H);return{url:H.url,number:H.number,repoOwner:H.repoOwner,repoName:H.repoName,createdAt:H.createdAt,...N}})),J=G.find((H)=>H.state==="open"&&!H.merged),K=J!=null&&J.checksStatus!=="pending"&&J.checksStatus!=="failing";if(Q&&Q.status==="in_review"&&Q.assigneeId===Y9&&K)await E91(Z,Q).catch((H)=>{console.error("[task-board] reviewer auto-handoff failed",H)});let W=J?iV8({state:J.state,mergeable:J.mergeable}):null;if(Q&&Q.status==="in_review"&&Q.assigneeId===Y9&&J&&W===!0)await WP0(Z,X,Q,{pr:{number:J.number,url:J.url},conflict:!0}).catch((H)=>{console.error("[task-board] conflict auto-resolve failed",H)});if(G.some((H)=>H.merged))try{if(Q&&Q.status!=="done"){let H=await Z.storage.taskBoard.update($,X,{status:"done"},Q.updatedBy);F9(X,H)}}catch(H){console.error("[task-board] merge\u2192done reconcile failed",H)}return{prs:G}}})});async function UP0($,Z,X){let Y=(await $.storage.taskBoard.listPrs(X,Z))[0];if(!Y)return!1;let G=await mV8($,Z,Y);if(G==="failing"||G==="pending")return console.warn(`[task-board] merge blocked \u2014 checks ${G} on PR #${Y.number}`),!1;let J=await Xa($,Z,Y.connectionId,{owner:Y.repoOwner,name:Y.repoName});if(!J)return!1;let K=await b5(J,$,!0);try{return!(await K.callTool({name:"merge_pull_request",arguments:{owner:Y.repoOwner,repo:Y.repoName,pullNumber:Y.number}},void 0,{timeout:_u4}))?.isError}catch(W){return console.error("[task-board] merge PR failed",W),!1}finally{await K.close().catch(()=>{})}}var _u4=15000;var I91=O(()=>{eN();NP0()});import{z as RO}from"zod";async function xu4($,Z,X){let Y=(await $.storage.organizationSettings.get(Z))?.flags??{},G=wB.filter((K)=>Y[BB[K]]===!0),J=await $.storage.taskBoard.listActivity(X,Z);return Gg(J,G,{verifiedOnly:!0})}var R91;var pV8=O(()=>{s0();xJ();bW();TO();KQ();dh();I91();NP0();j91();R91=a({name:"TASK_BOARD_REVIEW_DECISION",description:"Record a reviewer's decision for a task under review. `approve` marks the pull request approved by that reviewer (and, once EVERY enabled reviewer has approved, merges it when the org enabled auto-merge, advancing the task to Done); `request_changes` hands the task back to the Super Agent with your notes so it can fix the PR.",annotations:{title:"Review Decision",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!1,openWorldHint:!0},inputSchema:RO.object({taskBoardItemId:RO.string(),reviewer:RO.enum(["qa","code_review"]).describe("Which reviewer you are: `qa` (QA Agent) or `code_review` (Code Reviewer)."),reviewToken:RO.string().optional().describe("The reviewToken from your prompt \u2014 proves you are this reviewer. "+"Pass it through exactly; an approval without a valid token is recorded but does NOT count toward an automatic merge."),decision:RO.enum(["approve","request_changes"]),notes:RO.string().min(1).describe("For approve: a short summary of what you verified. For request_changes: specific, actionable feedback the Super Agent must address.")}),outputSchema:RO.object({status:GU,merged:RO.boolean().describe("True when this approval completed the review and merged the PR.")}),handler:async({taskBoardItemId:$,reviewer:Z,reviewToken:X,decision:Q,notes:Y},G)=>{E0(G),await G.access.check();let J=G.organization?.id;if(!J)throw Error("Organization ID required (no active organization in context)");let K=await G.storage.taskBoard.getById($,J);if(!K)throw Error(`Task board item not found: ${$}`);let H=(X?await G.storage.taskBoard.resolveReviewClaimByToken($,X):null)?.reviewer===Z;if(Q==="request_changes"){let L=await G.storage.taskBoard.claimReviewChangesBounce($,J,K.updatedBy);if(await A3(G,{taskBoardItemId:$,action:"review_changes_requested",actorId:null,data:{reviewer:Z,notes:Y,verified:H}}),!L)return{status:(await G.storage.taskBoard.getById($,J)??K).status,merged:!1};F9(J,L);let E=(await G.storage.taskBoard.listPrs($,J))[0];return await $a(G,L,{feedback:`${fp[Z]}: ${Y}`,pr:E?{number:E.number,url:E.url}:void 0}).catch((z)=>{console.error("[task-board] request_changes re-enqueue failed",z)}),{status:L.status,merged:!1}}if(await A3(G,{taskBoardItemId:$,action:"review_approved",actorId:null,data:{reviewer:Z,notes:Y,verified:H}}),!await xu4(G,J,$)){let L=await G.storage.taskBoard.getById($,J)??K;return F9(J,L),{status:L.status,merged:!1}}let F=(await G.storage.organizationSettings.get(J))?.flags?.auto_merge===!0;if(F?await UP0(G,J,$):!1){let L=await G.storage.taskBoard.update($,J,{status:"done"},K.updatedBy);return await A3(G,{taskBoardItemId:$,action:"status_changed",actorId:null,data:{from:K.status,to:"done"}}),F9(J,L),{status:L.status,merged:!0}}let B=await G.storage.taskBoard.getById($,J)??K;if(F){let D=(await G.storage.taskBoard.listPrs($,J))[0];if(D?await WP0(G,J,B,{pr:{number:D.number,url:D.url},conflict:await nV8(G,J,D)}).catch((z)=>{return console.error("[task-board] conflict auto-resolve failed",z),!1}):!1)return{status:(await G.storage.taskBoard.getById($,J)??B).status,merged:!1}}return F9(J,B),{status:B.status,merged:!1}}})});import{z as FP0}from"zod";function vu4($,Z,X){if($!=="in_review")return!1;return X.length===0||Gg(Z,X)}var q91;var tV8=O(()=>{s0();xJ();bW();TO();KQ();I91();q91=a({name:"TASK_BOARD_PROMOTE_TO_PRODUCTION",description:"Ship a reviewed task: merge its open pull request and move the task to Done. Used by the board's 'Ship to production' button after the enabled reviewers approved, when auto-merge is off (a human does the final merge).",annotations:{title:"Ship to Production",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!1,openWorldHint:!0},inputSchema:FP0.object({taskBoardItemId:FP0.string()}),outputSchema:FP0.object({status:GU,merged:FP0.boolean().describe("True when the PR was merged.")}),handler:async({taskBoardItemId:$},Z)=>{E0(Z),await Z.access.check();let X=Z.organization?.id;if(!X)throw Error("Organization ID required (no active organization in context)");let Q=await Z.storage.taskBoard.getById($,X);if(!Q)throw Error(`Task board item not found: ${$}`);let G=(await Z.storage.organizationSettings.get(X))?.flags??{},J=wB.filter((N)=>G[BB[N]]===!0),K=await Z.storage.taskBoard.listActivity($,X);if(!vu4(Q.status,K,J))throw Error("Task is not ready to ship: it must be In Review with every enabled reviewer approved");if(!await UP0(Z,X,$))return{status:Q.status,merged:!1};let H=await Z.storage.taskBoard.update($,X,{status:"done"},Q.updatedBy);if(Q.status!=="done")await A3(Z,{taskBoardItemId:$,action:"status_changed",actorId:null,data:{from:Q.status,to:"done"}});return F9(X,H),{status:H.status,merged:!0}}})});var oV8=O(()=>{xV8();bV8();yV8();gV8();NP0();pV8();tV8();TO()});import{z as jU}from"zod";var M91;var rV8=O(()=>{s0();M91=a({name:"TAGS_LIST",description:"List all tags available in the organization.",annotations:{title:"List Tags",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:jU.object({}),outputSchema:jU.object({tags:jU.array(jU.object({id:jU.string(),organizationId:jU.string(),name:jU.string(),color:jU.string().nullable(),createdAt:jU.string().describe("ISO 8601 timestamp")}))}),handler:async($,Z)=>{E0(Z),await Z.access.check();let X=H0(Z);return{tags:(await Z.storage.tags.listOrgTags(X.id)).map((Y)=>({...Y,createdAt:Y.createdAt instanceof Date?Y.createdAt.toISOString():String(Y.createdAt)}))}}})});import{z as sW}from"zod";var k91;var aV8=O(()=>{s0();k91=a({name:"TAGS_CREATE",description:"Create a new tag, usable on organization members and task board items.",annotations:{title:"Create Tag",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!1,openWorldHint:!1},inputSchema:sW.object({name:sW.string().min(1).max(50).describe("Tag name"),color:sW.string().regex(/^#[0-9a-fA-F]{6}$/).nullable().optional().describe('Hex color the tag renders its dot with, e.g. "#3b82f6"')}),outputSchema:sW.object({tag:sW.object({id:sW.string(),organizationId:sW.string(),name:sW.string(),color:sW.string().nullable(),createdAt:sW.string().describe("ISO 8601 timestamp")})}),handler:async($,Z)=>{E0(Z),await Z.access.check();let X=H0(Z),Q=await Z.storage.tags.createTag(X.id,$.name,$.color);return{tag:{...Q,createdAt:Q.createdAt instanceof Date?Q.createdAt.toISOString():String(Q.createdAt)}}}})});import{z as wP0}from"zod";var S91;var sV8=O(()=>{s0();S91=a({name:"TAGS_DELETE",description:"Delete a tag and automatically remove it from all assigned members.",annotations:{title:"Delete Tag",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:wP0.object({tagId:wP0.string().describe("Tag ID to delete")}),outputSchema:wP0.object({success:wP0.boolean()}),handler:async($,Z)=>{E0(Z),await Z.access.check();let X=H0(Z),Q=await Z.storage.tags.getTag($.tagId);if(!Q)throw Error("Tag not found");if(Q.organizationId!==X.id)throw Error("Tag does not belong to this organization");return await Z.storage.tags.deleteTag($.tagId),{success:!0}}})});import{z as eW}from"zod";var V91;var eV8=O(()=>{s0();V91=a({name:"MEMBER_TAGS_GET",description:"Get all tags currently assigned to a specific member.",annotations:{title:"Get Member Tags",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:eW.object({memberId:eW.string().describe("Member ID")}),outputSchema:eW.object({tags:eW.array(eW.object({id:eW.string(),organizationId:eW.string(),name:eW.string(),color:eW.string().nullable(),createdAt:eW.string().describe("ISO 8601 timestamp")}))}),handler:async($,Z)=>{E0(Z),await Z.access.check();let X=H0(Z);if(!await Z.storage.tags.verifyMemberOrg($.memberId,X.id))throw Error(`Member not found in this organization: ${$.memberId}`);return{tags:(await Z.storage.tags.getMemberTags($.memberId)).map((G)=>({...G,createdAt:G.createdAt instanceof Date?G.createdAt.toISOString():String(G.createdAt)}))}}})});import{z as T3}from"zod";var C91;var $C8=O(()=>{s0();C91=a({name:"MEMBER_TAGS_SET",description:"Replace all tags on a member with the given set. Pass empty array to clear.",annotations:{title:"Set Member Tags",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:T3.object({memberId:T3.string().describe("Member ID"),tagIds:T3.array(T3.string()).describe("Array of tag IDs to assign")}),outputSchema:T3.object({success:T3.boolean(),tags:T3.array(T3.object({id:T3.string(),organizationId:T3.string(),name:T3.string(),createdAt:T3.string().describe("ISO 8601 timestamp")}))}),handler:async($,Z)=>{E0(Z),await Z.access.check();let X=H0(Z);if(!await Z.storage.tags.verifyMemberOrg($.memberId,X.id))throw Error(`Member not found in this organization: ${$.memberId}`);for(let G of $.tagIds){let J=await Z.storage.tags.getTag(G);if(!J)throw Error(`Tag not found: ${G}`);if(J.organizationId!==X.id)throw Error(`Tag does not belong to this organization: ${G}`)}return await Z.storage.tags.setMemberTags($.memberId,$.tagIds),{success:!0,tags:(await Z.storage.tags.getMemberTags($.memberId)).map((G)=>({...G,createdAt:G.createdAt instanceof Date?G.createdAt.toISOString():String(G.createdAt)}))}}})});var ZC8=O(()=>{rV8();aV8();sV8();eV8();$C8()});import{z as XC8}from"zod";function hu4($,Z){let X=$?.[Z];if(!X)return;return Object.entries(X).sort(([,Y],[,G])=>{let J=Math.max(0,...Object.values(Y).map((W)=>W.createdAt??0));return Math.max(0,...Object.values(G).map((W)=>W.createdAt??0))-J})[0]?.[0]}var yu4,gu4,_91;var QC8=O(()=>{S$();s0();A_();lX();yu4=XC8.object({data:ck8.describe("Data for the new thread (id is auto-generated if not provided)")}),gu4=XC8.object({item:aW.describe("The created thread entity")});_91=a({name:"COLLECTION_THREADS_CREATE",description:"Create a new thread for organizing messages and conversations.",annotations:{title:"Create Thread",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:yu4,outputSchema:gu4,handler:async($,Z)=>{E0(Z);let X=H0(Z);await Z.access.check();let Q=_1(Z);if(!Q)throw Error("User ID required to create thread");let{data:Y}=$,G=Y.id??J4("thrd"),J=await Z.storage.virtualMcps.findById(Y.virtual_mcp_id,X.id);if(!J||J.organization_id!==X.id)throw Error(`Virtual MCP not found: ${Y.virtual_mcp_id}`);let K=J.metadata,W=K?.githubRepo,H=null;if(W)H=Y.branch??hu4(K?.sandboxMap,Q)??Gj0(Yj0(Z.auth.user));let N=await Z.storage.threads.create({id:G,organization_id:X.id,title:Y.title,description:Y.description,virtual_mcp_id:Y.virtual_mcp_id,branch:H,created_by:Q});if(N.isNew)i1.capture({distinctId:Q,event:"chat_started",groups:{organization:X.id},properties:{organization_id:X.id,thread_id:G,has_title:!!$.data.title,created_via:"tool"}});return{item:P3(N)}}})});import{z as x91}from"zod";var uu4,cu4,v91;var YC8=O(()=>{S$();s0();A_();uu4=x91.object({id:x91.string().describe("ID of the thread to update"),data:lk8.describe("Partial thread data to update")}),cu4=x91.object({item:aW.describe("The updated thread entity")}),v91=a({name:"COLLECTION_THREADS_UPDATE",description:"Update a thread's title, description, or visibility.",annotations:{title:"Update Thread",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:uu4,outputSchema:cu4,handler:async($,Z)=>{E0(Z);let X=H0(Z);await Z.access.check();let Q=_1(Z);if(!Q)throw Error("User ID required to update thread");let{id:Y,data:G}=$,J=await Z.storage.threads.get(Y);if(!J)throw Error("Thread not found in organization");if(G.virtual_mcp_id!==void 0){let H=await Z.storage.virtualMcps.findById(G.virtual_mcp_id,X.id);if(!H||H.organization_id!==X.id)throw Error(`Virtual MCP not found: ${G.virtual_mcp_id}`)}if(G.branch===null&&J.virtual_mcp_id){if((await Z.storage.virtualMcps.findById(J.virtual_mcp_id,X.id))?.metadata?.githubRepo)throw Error("Cannot set branch=null on a github-linked thread (vMCP has githubRepo)")}let K={title:G.title,description:G.description,hidden:G.hidden,updated_by:Q};if(G.status)K.status=G.status;if(G.metadata!==void 0)K.metadata=G.metadata;if(G.branch!==void 0)K.branch=G.branch;if(G.virtual_mcp_id!==void 0)K.virtual_mcp_id=G.virtual_mcp_id;let W=await Z.storage.threads.update(Y,K);if(G.hidden!==void 0&&G.hidden!==J.hidden)i1.capture({distinctId:Q,event:G.hidden?"chat_archived":"chat_unarchived",groups:{organization:X.id},properties:{organization_id:X.id,thread_id:Y}});return{item:P3(W)}}})});var f91;var GC8=O(()=>{B3();A_();S$();s0();f91=a({name:"COLLECTION_THREADS_DELETE",description:"Permanently delete a thread and all its messages.",annotations:{title:"Delete Thread",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:Ro,outputSchema:qo(aW),handler:async($,Z)=>{E0(Z);let X=H0(Z);await Z.access.check();let Q=await Z.storage.threads.get($.id);if(!Q)throw Error(`Thread not found: ${$.id}`);await Z.storage.threads.delete($.id);let Y=_1(Z);if(Y)i1.capture({distinctId:Y,event:"chat_deleted",groups:{organization:X.id},properties:{organization_id:X.id,thread_id:$.id}});return{item:P3(Q)}}})});var JC8=O(()=>{QC8();I51();R51();YC8();GC8();q51()});function du4($){return{type:"doc",content:[{type:"paragraph",content:[{type:"text",text:$}]}]}}function mu4($){return $.map((Z)=>{let X=Z.metadata;if(X?.tiptapDoc)return Z;let Q=Z.parts.find((Y)=>Y.type==="text"&&typeof Y.text==="string");if(!Q?.text||typeof Q.text!=="string")return Z;return{...Z,metadata:{...X,tiptapDoc:du4(Q.text)}}})}function BP0($){let Z;if(typeof $==="string")try{let X=JSON.parse($);if(Array.isArray(X)&&X.length>0&&X[0]?.role&&Array.isArray(X[0]?.parts))Z=X;else Z=[{role:"user",parts:[{type:"text",text:$}]}]}catch{Z=[{role:"user",parts:[{type:"text",text:$}]}]}else Z=$;return mu4(Z)}import{z as n$}from"zod";var b91;var KC8=O(()=>{S$();s0();L3();b91=a({name:"AUTOMATION_CREATE",description:"Create an automation that runs an agent thread on trigger fire. Requires virtual_mcp_id + messages.",annotations:{title:"Create Automation",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1,openWorldHint:!1},inputSchema:n$.object({name:n$.string().min(1).max(255),virtual_mcp_id:n$.string(),messages:n$.union([n$.string(),n$.array(n$.looseObject({id:n$.string().optional(),role:n$.enum(["user","assistant","system"]),parts:n$.array(n$.record(n$.string(),n$.unknown())),metadata:n$.unknown().optional()}))]),models:n$.object({tier:gB,modelId:n$.string().optional(),credentialId:n$.string().optional()}).loose().default({tier:"smart"}),tools:n$.array(n$.string()).nullable().optional(),maxAgentSteps:n$.number().int().min(1).max(100).nullable().optional(),temperature:n$.number().default(0.5),active:n$.boolean().default(!0)}),outputSchema:n$.object({id:n$.string(),name:n$.string(),active:n$.boolean(),created_at:n$.string()}),handler:async($,Z)=>{E0(Z);let X=H0(Z);await Z.access.check();let Q=_1(Z);if(!Q)throw Error("Unable to determine user identity");let Y=BP0($.messages),G=await Z.storage.automations.create({organization_id:X.id,created_by:Q,name:$.name,messages:JSON.stringify(Y),models:JSON.stringify($.models),tools:$.tools===void 0||$.tools===null?null:JSON.stringify($.tools),max_agent_steps:$.maxAgentSteps??null,temperature:$.temperature,active:$.active,virtual_mcp_id:$.virtual_mcp_id});return i1.capture({distinctId:Q,event:"automation_created",groups:{organization:X.id},properties:{organization_id:X.id,automation_id:G.id,virtual_mcp_id:$.virtual_mcp_id,active:G.active,tier:$.models.tier}}),{id:G.id,name:G.name,active:G.active,created_at:G.created_at}}})});import{z as b$}from"zod";var y91;var WC8=O(()=>{s0();y91=a({name:"AUTOMATION_GET",description:"Get an automation's full configuration and triggers by ID.",annotations:{title:"Get Automation",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:b$.object({id:b$.string()}),outputSchema:b$.object({automation:b$.object({id:b$.string(),name:b$.string(),active:b$.boolean(),created_by:b$.string(),created_at:b$.string(),updated_at:b$.string(),virtual_mcp_id:b$.string(),messages:b$.unknown(),models:b$.unknown(),tools:b$.array(b$.string()).nullable(),maxAgentSteps:b$.number().nullable(),temperature:b$.number(),triggers:b$.array(b$.object({id:b$.string(),type:b$.enum(["cron","event","webhook"]),cron_expression:b$.string().nullable(),connection_id:b$.string().nullable(),event_type:b$.string().nullable(),params:b$.unknown().nullable(),last_run_at:b$.string().nullable(),api_key_id:b$.string().nullable(),created_at:b$.string()}))}).nullable()}),handler:async($,Z)=>{E0(Z);let X=H0(Z);await Z.access.check();let Q=await Z.storage.automations.findById($.id,X.id);if(!Q)return{automation:null};let Y=await Z.storage.automations.listTriggers(Q.id);return{automation:{id:Q.id,name:Q.name,active:Q.active,created_by:Q.created_by,created_at:Q.created_at,updated_at:Q.updated_at,virtual_mcp_id:Q.virtual_mcp_id,messages:JSON.parse(Q.messages),models:JSON.parse(Q.models),tools:Q.tools?JSON.parse(Q.tools):null,maxAgentSteps:Q.max_agent_steps,temperature:Q.temperature,triggers:Y.map((G)=>({id:G.id,type:G.type,cron_expression:G.cron_expression,connection_id:G.connection_id,event_type:G.event_type,params:G.params?JSON.parse(G.params):null,last_run_at:G.last_run_at,api_key_id:G.api_key_id,created_at:G.created_at}))}}}})});import{z as HG}from"zod";var g91;var HC8=O(()=>{s0();g91=a({name:"AUTOMATION_LIST",description:"List automations with their status, triggers, and configuration.",annotations:{title:"List Automations",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:HG.object({virtual_mcp_id:HG.string().optional().nullable()}),outputSchema:HG.object({automations:HG.array(HG.object({id:HG.string(),name:HG.string(),active:HG.boolean(),created_by:HG.string(),created_at:HG.string(),trigger_count:HG.number(),nearest_next_run_at:HG.string().nullable(),virtual_mcp_id:HG.string()}))}),handler:async($,Z)=>{E0(Z);let X=H0(Z);return await Z.access.check(),{automations:(await Z.storage.automations.listWithTriggerCounts(X.id,$.virtual_mcp_id)).map((G)=>({id:G.id,name:G.name,active:G.active,created_by:G.created_by,created_at:G.created_at,trigger_count:G.trigger_count,nearest_next_run_at:G.nearest_next_run_at,virtual_mcp_id:G.virtual_mcp_id}))}}})});function iu4($){if(!$)return null;try{let Z=JSON.parse($);if(Array.isArray(Z)&&Z.every((X)=>typeof X==="string"))return Z.length>0?Z:null}catch{}return null}function NC8($){return`${$}:context`}function UC8($,Z,X,Q,Y){return{messages:JSON.parse($.messages).map((W,H)=>({...W,id:`${X}:${H}`})),models:{credentialId:Q.credentialId,thinking:Q.thinking,...Q.image?{image:Q.image}:{},...Q.webSearch?{webSearch:Q.webSearch}:{},...Q.deepResearch?{deepResearch:Q.deepResearch}:{}},agent:{id:$.virtual_mcp_id},toolAllowlist:iu4($.tools),maxAgentSteps:$.max_agent_steps??void 0,temperature:$.temperature??0.5,toolApprovalLevel:"auto",mode:"default",organizationId:$.organization_id,userId:$.created_by,harnessId:"decopilot",sandboxProviderKind:"agent-sandbox",triggerId:Z??void 0,...Y?{runMetadata:Y}:{},taskId:X}}function jX($,Z,X,Q,Y,G,J,K){return jX.fromTZ(jX.tp($,Z,X,Q,Y,G,J),K)}function h91($,Z=new Date){let X=Z.toLocaleString("en-US",{timeZone:$,timeZoneName:"shortOffset"}).split(" ").slice(-1)[0],Q=Z.toLocaleString("en-US").replace(/[\u202f]/," ");return Date.parse(`${Q} GMT`)-Date.parse(`${Q} ${X}`)}function nu4($,Z){let X=new Date(Date.parse($));if(isNaN(X))throw Error("minitz: Invalid ISO8601 passed to parser.");let Q=$.substring(9);return $.includes("Z")||Q.includes("-")||Q.includes("+")?jX.tp(X.getUTCFullYear(),X.getUTCMonth()+1,X.getUTCDate(),X.getUTCHours(),X.getUTCMinutes(),X.getUTCSeconds(),"Etc/UTC"):jX.tp(X.getFullYear(),X.getMonth()+1,X.getDate(),X.getHours(),X.getMinutes(),X.getSeconds(),Z)}function pu4($){if($===void 0&&($={}),delete $.name,$.legacyMode=$.legacyMode===void 0?!0:$.legacyMode,$.paused=$.paused===void 0?!1:$.paused,$.maxRuns=$.maxRuns===void 0?1/0:$.maxRuns,$.catch=$.catch===void 0?!1:$.catch,$.interval=$.interval===void 0?0:parseInt($.interval.toString(),10),$.utcOffset=$.utcOffset===void 0?void 0:parseInt($.utcOffset.toString(),10),$.unref=$.unref===void 0?!1:$.unref,$.startAt&&($.startAt=new I3($.startAt,$.timezone)),$.stopAt&&($.stopAt=new I3($.stopAt,$.timezone)),$.interval!==null){if(isNaN($.interval))throw Error("CronOptions: Supplied value for interval is not a number");if($.interval<0)throw Error("CronOptions: Supplied value for interval can not be negative")}if($.utcOffset!==void 0){if(isNaN($.utcOffset))throw Error("CronOptions: Invalid value passed for utcOffset, should be number representing minutes offset from UTC.");if($.utcOffset<-870||$.utcOffset>870)throw Error("CronOptions: utcOffset out of bounds.");if($.utcOffset!==void 0&&$.timezone)throw Error("CronOptions: Combining 'utcOffset' with 'timezone' is not allowed.")}if($.unref!==!0&&$.unref!==!1)throw Error("CronOptions: Unref should be either true, false or undefined(false).");return $}function Ya($){return Object.prototype.toString.call($)==="[object Function]"||typeof $=="function"||$ instanceof Function}function tu4($){return Ya($)}function ou4($){typeof Deno<"u"&&typeof Deno.unrefTimer<"u"?Deno.unrefTimer($):$&&typeof $.unref<"u"&&$.unref()}var u91=32,Ga,OC8,FC8=class{pattern;timezone;second;minute;hour;day;month;dayOfWeek;lastDayOfMonth;starDOM;starDOW;constructor($,Z){this.pattern=$,this.timezone=Z,this.second=Array(60).fill(0),this.minute=Array(60).fill(0),this.hour=Array(24).fill(0),this.day=Array(31).fill(0),this.month=Array(12).fill(0),this.dayOfWeek=Array(7).fill(0),this.lastDayOfMonth=!1,this.starDOM=!1,this.starDOW=!1,this.parse()}parse(){if(!(typeof this.pattern=="string"||this.pattern instanceof String))throw TypeError("CronPattern: Pattern has to be of type string.");this.pattern.indexOf("@")>=0&&(this.pattern=this.handleNicknames(this.pattern).trim());let $=this.pattern.replace(/\s+/g," ").split(" ");if($.length<5||$.length>6)throw TypeError("CronPattern: invalid configuration format ('"+this.pattern+"'), exactly five or six space separated parts are required.");if($.length===5&&$.unshift("0"),$[3].indexOf("L")>=0&&($[3]=$[3].replace("L",""),this.lastDayOfMonth=!0),$[3]=="*"&&(this.starDOM=!0),$[4].length>=3&&($[4]=this.replaceAlphaMonths($[4])),$[5].length>=3&&($[5]=this.replaceAlphaDays($[5])),$[5]=="*"&&(this.starDOW=!0),this.pattern.indexOf("?")>=0){let Z=new I3(new Date,this.timezone).getDate(!0);$[0]=$[0].replace("?",Z.getSeconds().toString()),$[1]=$[1].replace("?",Z.getMinutes().toString()),$[2]=$[2].replace("?",Z.getHours().toString()),this.starDOM||($[3]=$[3].replace("?",Z.getDate().toString())),$[4]=$[4].replace("?",(Z.getMonth()+1).toString()),this.starDOW||($[5]=$[5].replace("?",Z.getDay().toString()))}this.throwAtIllegalCharacters($),this.partToArray("second",$[0],0,1),this.partToArray("minute",$[1],0,1),this.partToArray("hour",$[2],0,1),this.partToArray("day",$[3],-1,1),this.partToArray("month",$[4],-1,1),this.partToArray("dayOfWeek",$[5],0,Ga),this.dayOfWeek[7]&&(this.dayOfWeek[0]=this.dayOfWeek[7])}partToArray($,Z,X,Q){let Y=this[$],G=$==="day"&&this.lastDayOfMonth;if(Z===""&&!G)throw TypeError("CronPattern: configuration entry "+$+" ("+Z+") is empty, check for trailing spaces.");if(Z==="*")return Y.fill(Q);let J=Z.split(",");if(J.length>1)for(let K=0;K<J.length;K++)this.partToArray($,J[K],X,Q);else Z.indexOf("-")!==-1&&Z.indexOf("/")!==-1?this.handleRangeWithStepping(Z,$,X,Q):Z.indexOf("-")!==-1?this.handleRange(Z,$,X,Q):Z.indexOf("/")!==-1?this.handleStepping(Z,$,X,Q):Z!==""&&this.handleNumber(Z,$,X,Q)}throwAtIllegalCharacters($){for(let Z=0;Z<$.length;Z++)if((Z===5?/[^/*0-9,\-#L]+/:/[^/*0-9,-]+/).test($[Z]))throw TypeError("CronPattern: configuration entry "+Z+" ("+$[Z]+") contains illegal characters.")}handleNumber($,Z,X,Q){let Y=this.extractNth($,Z),G=parseInt(Y[0],10)+X;if(isNaN(G))throw TypeError("CronPattern: "+Z+" is not a number: '"+$+"'");this.setPart(Z,G,Y[1]||Q)}setPart($,Z,X){if(!Object.prototype.hasOwnProperty.call(this,$))throw TypeError("CronPattern: Invalid part specified: "+$);if($==="dayOfWeek"){if(Z===7&&(Z=0),Z<0||Z>6)throw RangeError("CronPattern: Invalid value for dayOfWeek: "+Z);this.setNthWeekdayOfMonth(Z,X);return}if($==="second"||$==="minute"){if(Z<0||Z>=60)throw RangeError("CronPattern: Invalid value for "+$+": "+Z)}else if($==="hour"){if(Z<0||Z>=24)throw RangeError("CronPattern: Invalid value for "+$+": "+Z)}else if($==="day"){if(Z<0||Z>=31)throw RangeError("CronPattern: Invalid value for "+$+": "+Z)}else if($==="month"&&(Z<0||Z>=12))throw RangeError("CronPattern: Invalid value for "+$+": "+Z);this[$][Z]=X}handleRangeWithStepping($,Z,X,Q){let Y=this.extractNth($,Z),G=Y[0].match(/^(\d+)-(\d+)\/(\d+)$/);if(G===null)throw TypeError("CronPattern: Syntax error, illegal range with stepping: '"+$+"'");let[,J,K,W]=G,H=parseInt(J,10)+X,N=parseInt(K,10)+X,U=parseInt(W,10);if(isNaN(H))throw TypeError("CronPattern: Syntax error, illegal lower range (NaN)");if(isNaN(N))throw TypeError("CronPattern: Syntax error, illegal upper range (NaN)");if(isNaN(U))throw TypeError("CronPattern: Syntax error, illegal stepping: (NaN)");if(U===0)throw TypeError("CronPattern: Syntax error, illegal stepping: 0");if(U>this[Z].length)throw TypeError("CronPattern: Syntax error, steps cannot be greater than maximum value of part ("+this[Z].length+")");if(H>N)throw TypeError("CronPattern: From value is larger than to value: '"+$+"'");for(let F=H;F<=N;F+=U)this.setPart(Z,F,Y[1]||Q)}extractNth($,Z){let X=$,Q;if(X.includes("#")){if(Z!=="dayOfWeek")throw Error("CronPattern: nth (#) only allowed in day-of-week field");Q=X.split("#")[1],X=X.split("#")[0]}return[X,Q]}handleRange($,Z,X,Q){let Y=this.extractNth($,Z),G=Y[0].split("-");if(G.length!==2)throw TypeError("CronPattern: Syntax error, illegal range: '"+$+"'");let J=parseInt(G[0],10)+X,K=parseInt(G[1],10)+X;if(isNaN(J))throw TypeError("CronPattern: Syntax error, illegal lower range (NaN)");if(isNaN(K))throw TypeError("CronPattern: Syntax error, illegal upper range (NaN)");if(J>K)throw TypeError("CronPattern: From value is larger than to value: '"+$+"'");for(let W=J;W<=K;W++)this.setPart(Z,W,Y[1]||Q)}handleStepping($,Z,X,Q){let Y=this.extractNth($,Z),G=Y[0].split("/");if(G.length!==2)throw TypeError("CronPattern: Syntax error, illegal stepping: '"+$+"'");G[0]===""&&(G[0]="*");let J=0;G[0]!=="*"&&(J=parseInt(G[0],10)+X);let K=parseInt(G[1],10);if(isNaN(K))throw TypeError("CronPattern: Syntax error, illegal stepping: (NaN)");if(K===0)throw TypeError("CronPattern: Syntax error, illegal stepping: 0");if(K>this[Z].length)throw TypeError("CronPattern: Syntax error, max steps for part is ("+this[Z].length+")");for(let W=J;W<this[Z].length;W+=K)this.setPart(Z,W,Y[1]||Q)}replaceAlphaDays($){return $.replace(/-sun/gi,"-7").replace(/sun/gi,"0").replace(/mon/gi,"1").replace(/tue/gi,"2").replace(/wed/gi,"3").replace(/thu/gi,"4").replace(/fri/gi,"5").replace(/sat/gi,"6")}replaceAlphaMonths($){return $.replace(/jan/gi,"1").replace(/feb/gi,"2").replace(/mar/gi,"3").replace(/apr/gi,"4").replace(/may/gi,"5").replace(/jun/gi,"6").replace(/jul/gi,"7").replace(/aug/gi,"8").replace(/sep/gi,"9").replace(/oct/gi,"10").replace(/nov/gi,"11").replace(/dec/gi,"12")}handleNicknames($){let Z=$.trim().toLowerCase();return Z==="@yearly"||Z==="@annually"?"0 0 1 1 *":Z==="@monthly"?"0 0 1 * *":Z==="@weekly"?"0 0 * * 0":Z==="@daily"?"0 0 * * *":Z==="@hourly"?"0 * * * *":$}setNthWeekdayOfMonth($,Z){if(typeof Z!="number"&&Z==="L")this.dayOfWeek[$]=this.dayOfWeek[$]|u91;else if(Z===Ga)this.dayOfWeek[$]=Ga;else if(Z<6&&Z>0)this.dayOfWeek[$]=this.dayOfWeek[$]|OC8[Z-1];else throw TypeError(`CronPattern: nth weekday out of range, should be 1-5 or L. Value: ${Z}, Type: ${typeof Z}`)}},wC8,PU,I3=class ${tz;ms;second;minute;hour;day;month;year;constructor(Z,X){if(this.tz=X,Z&&Z instanceof Date)if(!isNaN(Z))this.fromDate(Z);else throw TypeError("CronDate: Invalid date passed to CronDate constructor");else if(Z===void 0)this.fromDate(new Date);else if(Z&&typeof Z=="string")this.fromString(Z);else if(Z instanceof $)this.fromCronDate(Z);else throw TypeError("CronDate: Invalid type ("+typeof Z+") passed to CronDate constructor")}isNthWeekdayOfMonth(Z,X,Q,Y){let G=new Date(Date.UTC(Z,X,Q)).getUTCDay(),J=0;for(let K=1;K<=Q;K++)new Date(Date.UTC(Z,X,K)).getUTCDay()===G&&J++;if(Y&Ga&&OC8[J-1]&Y)return!0;if(Y&u91){let K=new Date(Date.UTC(Z,X+1,0)).getUTCDate();for(let W=Q+1;W<=K;W++)if(new Date(Date.UTC(Z,X,W)).getUTCDay()===G)return!1;return!0}return!1}fromDate(Z){if(this.tz!==void 0)if(typeof this.tz=="number")this.ms=Z.getUTCMilliseconds(),this.second=Z.getUTCSeconds(),this.minute=Z.getUTCMinutes()+this.tz,this.hour=Z.getUTCHours(),this.day=Z.getUTCDate(),this.month=Z.getUTCMonth(),this.year=Z.getUTCFullYear(),this.apply();else{let X=jX.toTZ(Z,this.tz);this.ms=Z.getMilliseconds(),this.second=X.s,this.minute=X.i,this.hour=X.h,this.day=X.d,this.month=X.m-1,this.year=X.y}else this.ms=Z.getMilliseconds(),this.second=Z.getSeconds(),this.minute=Z.getMinutes(),this.hour=Z.getHours(),this.day=Z.getDate(),this.month=Z.getMonth(),this.year=Z.getFullYear()}fromCronDate(Z){this.tz=Z.tz,this.year=Z.year,this.month=Z.month,this.day=Z.day,this.hour=Z.hour,this.minute=Z.minute,this.second=Z.second,this.ms=Z.ms}apply(){if(this.month>11||this.day>wC8[this.month]||this.hour>59||this.minute>59||this.second>59||this.hour<0||this.minute<0||this.second<0){let Z=new Date(Date.UTC(this.year,this.month,this.day,this.hour,this.minute,this.second,this.ms));return this.ms=Z.getUTCMilliseconds(),this.second=Z.getUTCSeconds(),this.minute=Z.getUTCMinutes(),this.hour=Z.getUTCHours(),this.day=Z.getUTCDate(),this.month=Z.getUTCMonth(),this.year=Z.getUTCFullYear(),!0}else return!1}fromString(Z){if(typeof this.tz=="number"){let X=jX.fromTZISO(Z);this.ms=X.getUTCMilliseconds(),this.second=X.getUTCSeconds(),this.minute=X.getUTCMinutes(),this.hour=X.getUTCHours(),this.day=X.getUTCDate(),this.month=X.getUTCMonth(),this.year=X.getUTCFullYear(),this.apply()}else return this.fromDate(jX.fromTZISO(Z,this.tz))}findNext(Z,X,Q,Y){let G=this[X],J;Q.lastDayOfMonth&&(this.month!==1?J=wC8[this.month]:J=new Date(Date.UTC(this.year,this.month+1,0,0,0,0,0)).getUTCDate());let K=!Q.starDOW&&X=="day"?new Date(Date.UTC(this.year,this.month,1,0,0,0,0)).getUTCDay():void 0;for(let W=this[X]+Y;W<Q[X].length;W++){let H=Q[X][W];if(X==="day"&&Q.lastDayOfMonth&&W-Y==J&&(H=1),X==="day"&&!Q.starDOW){let N=Q.dayOfWeek[(K+(W-Y-1))%7];if(N&&N&Ga)N=this.isNthWeekdayOfMonth(this.year,this.month,W-Y,N)?1:0;else if(N)throw Error(`CronDate: Invalid value for dayOfWeek encountered. ${N}`);Z.legacyMode&&!Q.starDOM?H=H||N:H=H&&N}if(H)return this[X]=W-Y,G!==this[X]?2:1}return 3}recurse(Z,X,Q){let Y=this.findNext(X,PU[Q][0],Z,PU[Q][2]);if(Y>1){let G=Q+1;for(;G<PU.length;)this[PU[G][0]]=-PU[G][2],G++;if(Y===3)return this[PU[Q][1]]++,this[PU[Q][0]]=-PU[Q][2],this.apply(),this.recurse(Z,X,0);if(this.apply())return this.recurse(Z,X,Q-1)}return Q+=1,Q>=PU.length?this:this.year>=3000?null:this.recurse(Z,X,Q)}increment(Z,X,Q){return this.second+=X.interval!==void 0&&X.interval>1&&Q?X.interval:1,this.ms=0,this.apply(),this.recurse(Z,X,0)}getDate(Z){return Z||this.tz===void 0?new Date(this.year,this.month,this.day,this.hour,this.minute,this.second,this.ms):typeof this.tz=="number"?new Date(Date.UTC(this.year,this.month,this.day,this.hour,this.minute-this.tz,this.second,this.ms)):jX.fromTZ(jX.tp(this.year,this.month+1,this.day,this.hour,this.minute,this.second,this.tz),!1)}getTime(){return this.getDate(!1).getTime()}},BC8=30000,OP0,LP0=class{name;options;_states;fn;constructor($,Z,X){let Q,Y;if(Ya(Z))Y=Z;else if(typeof Z=="object")Q=Z;else if(Z!==void 0)throw Error("Cron: Invalid argument passed for optionsIn. Should be one of function, or object (options).");if(Ya(X))Y=X;else if(typeof X=="object")Q=X;else if(X!==void 0)throw Error("Cron: Invalid argument passed for funcIn. Should be one of function, or object (options).");if(this.name=Q?.name,this.options=pu4(Q),this._states={kill:!1,blocking:!1,previousRun:void 0,currentRun:void 0,once:void 0,currentTimeout:void 0,maxRuns:Q?Q.maxRuns:void 0,paused:Q?Q.paused:!1,pattern:new FC8("* * * * *")},$&&($ instanceof Date||typeof $=="string"&&$.indexOf(":")>0)?this._states.once=new I3($,this.options.timezone||this.options.utcOffset):this._states.pattern=new FC8($,this.options.timezone),this.name){if(OP0.find((G)=>G.name===this.name))throw Error("Cron: Tried to initialize new named job '"+this.name+"', but name already taken.");OP0.push(this)}return Y!==void 0&&tu4(Y)&&(this.fn=Y,this.schedule()),this}nextRun($){let Z=this._next($);return Z?Z.getDate(!1):null}nextRuns($,Z){this._states.maxRuns!==void 0&&$>this._states.maxRuns&&($=this._states.maxRuns);let X=[],Q=Z||this._states.currentRun||void 0;for(;$--&&(Q=this.nextRun(Q));)X.push(Q);return X}getPattern(){return this._states.pattern?this._states.pattern.pattern:void 0}isRunning(){let $=this.nextRun(this._states.currentRun),Z=!this._states.paused,X=this.fn!==void 0,Q=!this._states.kill;return Z&&X&&Q&&$!==null}isStopped(){return this._states.kill}isBusy(){return this._states.blocking}currentRun(){return this._states.currentRun?this._states.currentRun.getDate():null}previousRun(){return this._states.previousRun?this._states.previousRun.getDate():null}msToNext($){let Z=this._next($);return Z?$ instanceof I3||$ instanceof Date?Z.getTime()-$.getTime():Z.getTime()-new I3($).getTime():null}stop(){this._states.kill=!0,this._states.currentTimeout&&clearTimeout(this._states.currentTimeout);let $=OP0.indexOf(this);$>=0&&OP0.splice($,1)}pause(){return this._states.paused=!0,!this._states.kill}resume(){return this._states.paused=!1,!this._states.kill}schedule($){if($&&this.fn)throw Error("Cron: It is not allowed to schedule two functions using the same Croner instance.");$&&(this.fn=$);let Z=this.msToNext(),X=this.nextRun(this._states.currentRun);return Z==null||isNaN(Z)||X===null?this:(Z>BC8&&(Z=BC8),this._states.currentTimeout=setTimeout(()=>this._checkTrigger(X),Z),this._states.currentTimeout&&this.options.unref&&ou4(this._states.currentTimeout),this)}async _trigger($){if(this._states.blocking=!0,this._states.currentRun=new I3(void 0,this.options.timezone||this.options.utcOffset),this.options.catch)try{this.fn!==void 0&&await this.fn(this,this.options.context)}catch(Z){Ya(this.options.catch)&&this.options.catch(Z,this)}else this.fn!==void 0&&await this.fn(this,this.options.context);this._states.previousRun=new I3($,this.options.timezone||this.options.utcOffset),this._states.blocking=!1}async trigger(){await this._trigger()}runsLeft(){return this._states.maxRuns}_checkTrigger($){let Z=new Date,X=!this._states.paused&&Z.getTime()>=$.getTime(),Q=this._states.blocking&&this.options.protect;X&&!Q?(this._states.maxRuns!==void 0&&this._states.maxRuns--,this._trigger()):X&&Q&&Ya(this.options.protect)&&setTimeout(()=>this.options.protect(this),0),this.schedule()}_next($){let Z=!!($||this._states.currentRun),X=!1;!$&&this.options.startAt&&this.options.interval&&([$,Z]=this._calculatePreviousRun($,Z),X=!$),$=new I3($,this.options.timezone||this.options.utcOffset),this.options.startAt&&$&&$.getTime()<this.options.startAt.getTime()&&($=this.options.startAt);let Q=this._states.once||new I3($,this.options.timezone||this.options.utcOffset);return!X&&Q!==this._states.once&&(Q=Q.increment(this._states.pattern,this.options,Z)),this._states.once&&this._states.once.getTime()<=$.getTime()||Q===null||this._states.maxRuns!==void 0&&this._states.maxRuns<=0||this._states.kill||this.options.stopAt&&Q.getTime()>=this.options.stopAt.getTime()?null:Q}_calculatePreviousRun($,Z){let X=new I3(void 0,this.options.timezone||this.options.utcOffset),Q=$;if(this.options.startAt.getTime()<=X.getTime()){Q=this.options.startAt;let Y=Q.getTime()+this.options.interval*1000;for(;Y<=X.getTime();)Q=new I3(Q,this.options.timezone||this.options.utcOffset).increment(this._states.pattern,this.options,!0),Y=Q.getTime()+this.options.interval*1000;Z=!0}return Q===null&&(Q=void 0),[Q,Z]}};var c91=O(()=>{jX.fromTZISO=($,Z,X)=>jX.fromTZ(nu4($,Z),X);jX.fromTZ=function($,Z){let X=new Date(Date.UTC($.y,$.m-1,$.d,$.h,$.i,$.s)),Q=h91($.tz,X),Y=new Date(X.getTime()-Q),G=h91($.tz,Y);if(G-Q===0)return Y;{let J=new Date(X.getTime()-G),K=h91($.tz,J);if(K-G===0)return J;if(!Z&&K-G>0)return J;if(Z)throw Error("Invalid date passed to fromTZ()");return Y}};jX.toTZ=function($,Z){let X=$.toLocaleString("en-US",{timeZone:Z}).replace(/[\u202f]/," "),Q=new Date(X);return{y:Q.getFullYear(),m:Q.getMonth()+1,d:Q.getDate(),h:Q.getHours(),i:Q.getMinutes(),s:Q.getSeconds(),tz:Z}};jX.tp=($,Z,X,Q,Y,G,J)=>({y:$,m:Z,d:X,h:Q,i:Y,s:G,tz:J});jX.minitz=jX;Ga=31|u91,OC8=[1,2,4,8,16],wC8=[31,28,31,30,31,30,31,31,30,31,30,31],PU=[["month","year",0],["day","month",-1],["hour","day",0],["minute","hour",0],["second","minute",0]];OP0=[]});function DP0($,Z){try{return new LP0($,{timezone:"UTC"}).nextRun(Z)??null}catch{return null}}var l91=O(()=>{c91()});import{DBOS as P7,SchedulerMode as ru4}from"@dbos-inc/dbos-sdk";async function p91($){try{let{rows:Z}=await $.query(`SELECT q.name FROM dbos.queues q
2760
2760
  WHERE q.name LIKE $1
2761
2761
  AND NOT EXISTS (
2762
2762
  SELECT 1 FROM dbos.workflow_status w