decocms 4.246.0 → 4.246.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 (236) hide show
  1. package/dist/client/assets/{AlertCircle-CVPo0qEm.js → AlertCircle-C4Y6h3Qq.js} +1 -1
  2. package/dist/client/assets/{AreaChart-ChVNju8m.js → AreaChart-VnUOy3So.js} +1 -1
  3. package/dist/client/assets/{ArrowLeft-CUw2oDuz.js → ArrowLeft-LawRzhC8.js} +1 -1
  4. package/dist/client/assets/{ArrowUp-Tf9X-9eZ.js → ArrowUp-BMscfA9S.js} +1 -1
  5. package/dist/client/assets/{ArrowUpRight-CWFkobB4.js → ArrowUpRight-BqhxNlZH.js} +1 -1
  6. package/dist/client/assets/{Check-D_7f8Wel.js → Check-DfLlptMb.js} +1 -1
  7. package/dist/client/assets/{CheckCircle-CEGfcpsW.js → CheckCircle-ChNNW2hd.js} +1 -1
  8. package/dist/client/assets/{ChevronDown-Bg-1Juk5.js → ChevronDown-DaRUeaRt.js} +1 -1
  9. package/dist/client/assets/{ChevronRight-CLyRbaUU.js → ChevronRight-Dp5ZQCNv.js} +1 -1
  10. package/dist/client/assets/{ChevronSelectorVertical-Dz9WarkK.js → ChevronSelectorVertical-Cp6FoHjg.js} +1 -1
  11. package/dist/client/assets/{ChevronUp-BqRX9ZFE.js → ChevronUp-7blVlLro.js} +1 -1
  12. package/dist/client/assets/{Copy01-Bwkkomxj.js → Copy01-C5bJZrkG.js} +1 -1
  13. package/dist/client/assets/{CreditCard01-ygPw-EKC.js → CreditCard01-N98QSdx0.js} +1 -1
  14. package/dist/client/assets/{DotsVertical-CHA2avQZ.js → DotsVertical-CNgYQL1N.js} +1 -1
  15. package/dist/client/assets/{Download01-CmXY93tt.js → Download01-CIfOdd8N.js} +1 -1
  16. package/dist/client/assets/{Eye-CEo3fQQh.js → Eye-Ej9rv6b6.js} +1 -1
  17. package/dist/client/assets/{FilterLines-BbuCX0gh.js → FilterLines-BE1jNNsi.js} +1 -1
  18. package/dist/client/assets/{Globe01-DDOmP6mo.js → Globe01-DICaB8IQ.js} +1 -1
  19. package/dist/client/assets/{Globe04-Cfd8Rd9g.js → Globe04-B5aqNdfM.js} +1 -1
  20. package/dist/client/assets/{HardDrive-DfEb0Y6k.js → HardDrive-Btdx0UWX.js} +1 -1
  21. package/dist/client/assets/{Key01-BW9ldI4y.js → Key01-Cs3z3d80.js} +1 -1
  22. package/dist/client/assets/{LayoutLeft-BmDj8huh.js → LayoutLeft-D5v86PfT.js} +1 -1
  23. package/dist/client/assets/{LinkExternal01-i7PYdGoV.js → LinkExternal01-CKa7CSJX.js} +1 -1
  24. package/dist/client/assets/{LockUnlocked01-BVZ6q8T0.js → LockUnlocked01-Bev72S31.js} +1 -1
  25. package/dist/client/assets/{LogOut01-C7qNJNUJ.js → LogOut01-BhlEkXGv.js} +1 -1
  26. package/dist/client/assets/{Monitor01-CoRTt5aG.js → Monitor01-BRATBhd2.js} +1 -1
  27. package/dist/client/assets/{Palette-DfKiT9du.js → Palette-BGQlsAM_.js} +1 -1
  28. package/dist/client/assets/{Play-DdLA8Y7E.js → Play-RaUYNU0h.js} +1 -1
  29. package/dist/client/assets/{Plus-C_NskSm6.js → Plus-GG1zqkJQ.js} +1 -1
  30. package/dist/client/assets/{SearchLg-mKc3T504.js → SearchLg-Br8NTR9w.js} +1 -1
  31. package/dist/client/assets/{SearchMd-CGhMwkV3.js → SearchMd-Du1QVkcb.js} +1 -1
  32. package/dist/client/assets/{Settings02-BSpuV9Fn.js → Settings02-BD8bxZlF.js} +1 -1
  33. package/dist/client/assets/{Share07-TZt-qDi6.js → Share07-D0dtVymP.js} +1 -1
  34. package/dist/client/assets/{Shield01-D5T84I2m.js → Shield01-BL3SbuXr.js} +1 -1
  35. package/dist/client/assets/{Stars01-BPtc2LR_.js → Stars01-DeFsJVOw.js} +1 -1
  36. package/dist/client/assets/{Stars02-C1dUyp2n.js → Stars02-DemrWGqV.js} +1 -1
  37. package/dist/client/assets/{Sun-F2AiKbgs.js → Sun-BtTGOVQr.js} +1 -1
  38. package/dist/client/assets/{SwitchHorizontal01-o0AhqUK3.js → SwitchHorizontal01-DaxYg3wx.js} +1 -1
  39. package/dist/client/assets/{Tool01-C7JK84AW.js → Tool01-ec0ZNfPh.js} +1 -1
  40. package/dist/client/assets/{Tool02-BD0oj0Z6.js → Tool02-DpNRkEEO.js} +1 -1
  41. package/dist/client/assets/{Trash01-BDJfIYOv.js → Trash01-CJodksr4.js} +1 -1
  42. package/dist/client/assets/{TrendUp01-DE-6F3ol.js → TrendUp01-D7o9AThh.js} +1 -1
  43. package/dist/client/assets/{Upload01-FJqJWa79.js → Upload01-DvEHZQ1D.js} +1 -1
  44. package/dist/client/assets/{User01-CuvMZdbR.js → User01-Booa4icY.js} +1 -1
  45. package/dist/client/assets/{Users01-By8YR5pB.js → Users01-DNf5oT8x.js} +1 -1
  46. package/dist/client/assets/{Users03-nzSyOTiI.js → Users03-D7dhNs3l.js} +1 -1
  47. package/dist/client/assets/{X-Bjbq04_M.js → X-dDE43hpT.js} +1 -1
  48. package/dist/client/assets/{XCircle-C74a-_sm.js → XCircle-BCGNfatf.js} +1 -1
  49. package/dist/client/assets/{XClose-eOvoOXbJ.js → XClose-Dr2YoueI.js} +1 -1
  50. package/dist/client/assets/{YAxis-BzEpT0hC.js → YAxis-5iOA06t4.js} +1 -1
  51. package/dist/client/assets/{Zap-CLxSKLFj.js → Zap-CQTWxgmj.js} +1 -1
  52. package/dist/client/assets/{ZapSquare-BO2oEmgN.js → ZapSquare-C_qCdzXC.js} +1 -1
  53. package/dist/client/assets/{access-gate-BN2QeuZr.js → access-gate-CvlO8VmU.js} +1 -1
  54. package/dist/client/assets/{agent-icon-BZ_a04S0.js → agent-icon-6emyea5b.js} +1 -1
  55. package/dist/client/assets/{agents-list-Cl403wj6.js → agents-list-BPp4aFgA.js} +1 -1
  56. package/dist/client/assets/{ai-providers-CzC61PdA.js → ai-providers-DlzYwur7.js} +1 -1
  57. package/dist/client/assets/{alert-dialog-NtCURUS6.js → alert-dialog-Bx1r_XY8.js} +1 -1
  58. package/dist/client/assets/{alert-BWXJ6k1b.js → alert-eBX_JLkt.js} +1 -1
  59. package/dist/client/assets/{api-keys-DNmBaalA.js → api-keys-BrchQQuF.js} +1 -1
  60. package/dist/client/assets/{app-editor-D73mAE8x.js → app-editor-ClvsmkMr.js} +1 -1
  61. package/dist/client/assets/{auth-Rsm-TwXB.js → auth-CiKrDBaC.js} +1 -1
  62. package/dist/client/assets/{auth-catchall-3pQg0Ts9.js → auth-catchall-CHJ-efnH.js} +1 -1
  63. package/dist/client/assets/{auth-entry-Bl0QmoRA.js → auth-entry-D093uTJ3.js} +1 -1
  64. package/dist/client/assets/{auth-split-layout-DZehLX5A.js → auth-split-layout-6pH9gphD.js} +1 -1
  65. package/dist/client/assets/{authenticate-and-persist-oauth-tLzP2M0J.js → authenticate-and-persist-oauth-DpbS8oMl.js} +1 -1
  66. package/dist/client/assets/{automation-list-row-Bi3fiD0Q.js → automation-list-row-Cw5unIpB.js} +1 -1
  67. package/dist/client/assets/{automation-runs-JBQJQge0.js → automation-runs-BHrHNn8W.js} +1 -1
  68. package/dist/client/assets/{automations-BAck69ny.js → automations-CZIR175R.js} +1 -1
  69. package/dist/client/assets/{avatar-CBzKZbE1.js → avatar-BrCdNrvP.js} +1 -1
  70. package/dist/client/assets/{badge-eekEIbP8.js → badge-BHVJ_u97.js} +1 -1
  71. package/dist/client/assets/{billing-DZFzNlnB.js → billing-D3uBzpOQ.js} +1 -1
  72. package/dist/client/assets/{block-document-BFXGao31.js → block-document-2I0EyU_3.js} +1 -1
  73. package/dist/client/assets/{buckets-D_qEvbgt.js → buckets-BS7QaGmD.js} +1 -1
  74. package/dist/client/assets/{bulk-category-panel-DjEaSMSL.js → bulk-category-panel-iF_sGXj5.js} +1 -1
  75. package/dist/client/assets/{capability-load-error-c_fIc3KM.js → capability-load-error-CYAekGsB.js} +1 -1
  76. package/dist/client/assets/{card-DQyD1SfG.js → card-DZgjKrLh.js} +1 -1
  77. package/dist/client/assets/{cards-DAc3Shxa.js → cards-DVG4iejT.js} +1 -1
  78. package/dist/client/assets/{category-editor-BMDR50Xz.js → category-editor-Cw71UiUh.js} +1 -1
  79. package/dist/client/assets/{chart-P7oWZYVe.js → chart-B37iOPBw.js} +1 -1
  80. package/dist/client/assets/{chat-context-BkjqmU0S.js → chat-context-CpVRHzVq.js} +1 -1
  81. package/dist/client/assets/{checkbox-4PZ-TCkO.js → checkbox-KYswJ4RA.js} +1 -1
  82. package/dist/client/assets/{choose-editor-C5SnqFDh.js → choose-editor-BdiBPvPi.js} +1 -1
  83. package/dist/client/assets/{cli-auth-success-DEurxdbo.js → cli-auth-success-BPvCaeNK.js} +1 -1
  84. package/dist/client/assets/{collection-detail-HSvlsHZw.js → collection-detail-BWuiyrNG.js} +1 -1
  85. package/dist/client/assets/{collection-display-button-B0B_nbOq.js → collection-display-button-DHXXiPsu.js} +1 -1
  86. package/dist/client/assets/{collection-search-C5P6fLDH.js → collection-search-CVI6idU3.js} +1 -1
  87. package/dist/client/assets/{collection-table-wrapper-CGXTAvhx.js → collection-table-wrapper-FPaoAkhy.js} +1 -1
  88. package/dist/client/assets/{collection-tabs-CRuLBCvv.js → collection-tabs-CDtFFFAH.js} +1 -1
  89. package/dist/client/assets/{command-CDNa6JaM.js → command-DQLZI3gg.js} +1 -1
  90. package/dist/client/assets/{commerce-onboarding-C4N9O1Dv.js → commerce-onboarding-ZPSMF4pL.js} +1 -1
  91. package/dist/client/assets/{connect-MM-qRvgP.js → connect-B2NZvMIZ.js} +1 -1
  92. package/dist/client/assets/{connection-CFsgz5YS.js → connection-CHWoIsT7.js} +1 -1
  93. package/dist/client/assets/{connection-card-DK5N_2iN.js → connection-card-DB7omq5w.js} +1 -1
  94. package/dist/client/assets/{connection-detail-BrpJJsqW.js → connection-detail-BalxlNDW.js} +1 -1
  95. package/dist/client/assets/{connection-form-helpers-DEnfprhg.js → connection-form-helpers-yHtICJHT.js} +1 -1
  96. package/dist/client/assets/{connections-BmXTX8FM.js → connections-BsnTF65-.js} +1 -1
  97. package/dist/client/assets/{decopilot-sse-pool-CKRo9fBY.js → decopilot-sse-pool-DZtv41g3.js} +1 -1
  98. package/dist/client/assets/{dialog-BpQAmXF3.js → dialog-CExPfykM.js} +1 -1
  99. package/dist/client/assets/{domain-settings-COum_2MT.js → domain-settings-BWaQm2s7.js} +1 -1
  100. package/dist/client/assets/{drawer-lxnvjOeP.js → drawer-D4BXJ2dd.js} +1 -1
  101. package/dist/client/assets/{dropdown-menu-4KPedagu.js → dropdown-menu-CO73nQi7.js} +1 -1
  102. package/dist/client/assets/{empty-state-Bl06p-6p.js → empty-state-DVU-N9Qa.js} +1 -1
  103. package/dist/client/assets/{extract-connection-data-CpKok1ru.js → extract-connection-data-X_6yLFl9.js} +1 -1
  104. package/dist/client/assets/{file-explorer-xfr61aqG.js → file-explorer-eA8KaDyq.js} +1 -1
  105. package/dist/client/assets/{file-type-icon-BvMUNvfi.js → file-type-icon-BJYdk02y.js} +1 -1
  106. package/dist/client/assets/{form-BqKQOwQZ.js → form-D0rUkPKI.js} +1 -1
  107. package/dist/client/assets/{general-De86W_WJ.js → general-BqEqfG9z.js} +1 -1
  108. package/dist/client/assets/{github-repo-picker-DAXFK2-S.js → github-repo-picker-BezwVYIm.js} +1 -1
  109. package/dist/client/assets/{hooks-CDsDpsP1.js → hooks-BNLcJsrH.js} +1 -1
  110. package/dist/client/assets/{index-C76wd4Bx.js → index--glVNqW5.js} +1 -1
  111. package/dist/client/assets/{index-TsnmB6QP.js → index-26OMZOLY.js} +3 -3
  112. package/dist/client/assets/{index-DUrRTWP1.js → index-72YtmQYG.js} +1 -1
  113. package/dist/client/assets/{index-CGAtXWmG.js → index-8zOvR091.js} +1 -1
  114. package/dist/client/assets/{index-DAcR43oY.js → index-BG89BVrK.js} +1 -1
  115. package/dist/client/assets/{index-CQDQvza4.js → index-Blmk08NO.js} +1 -1
  116. package/dist/client/assets/{index-Cq_SuyL5.js → index-C5G7s-LS.js} +1 -1
  117. package/dist/client/assets/{index-MlSj0cB6.js → index-DzkCTDn5.js} +1 -1
  118. package/dist/client/assets/{index-DpoaDjw6.js → index-gkmp3Kd5.js} +1 -1
  119. package/dist/client/assets/{index-Df2M2pRd.js → index-qsLJfHcG.js} +5 -5
  120. package/dist/client/assets/{index-redirect-QXFoC_U-.js → index-redirect-Um69BpMx.js} +1 -1
  121. package/dist/client/assets/{infra-billing-ks0f65VN.js → infra-billing-XU42W5oC.js} +1 -1
  122. package/dist/client/assets/{input-C54c2ZL2.js → input-BjSm2pP1.js} +1 -1
  123. package/dist/client/assets/{integration-icon-CV_tk3iI.js → integration-icon-CD17Vbqw.js} +1 -1
  124. package/dist/client/assets/{invite-member-dialog-DA6uSSMg.js → invite-member-dialog-CF-gjBW7.js} +1 -1
  125. package/dist/client/assets/{label-BMmJV9YF.js → label-Dg6oJ1JW.js} +1 -1
  126. package/dist/client/assets/{layout-C4ziMUb6.js → layout-CQgT53HU.js} +1 -1
  127. package/dist/client/assets/{login-C9kBUsUO.js → login-CwKH0M0O.js} +1 -1
  128. package/dist/client/assets/{mcp-oauth-DpfKHKRB.js → mcp-oauth-D223QM0m.js} +1 -1
  129. package/dist/client/assets/{members-CrVzYxuh.js → members-DNpxE-yM.js} +1 -1
  130. package/dist/client/assets/{monaco-editor-Bu_igJzL.js → monaco-editor-l_xgcNhg.js} +1 -1
  131. package/dist/client/assets/{monitoring-stats-row-DU8Tf4TH.js → monitoring-stats-row-Dvgp8aqf.js} +1 -1
  132. package/dist/client/assets/{multi-select-BGDWGV9V.js → multi-select-B3XnloZZ.js} +1 -1
  133. package/dist/client/assets/{oauth-callback-DMfy0ENp.js → oauth-callback-BC-bHoZO.js} +1 -1
  134. package/dist/client/assets/{oauth-callback-ai-provider-Bkv1oNjP.js → oauth-callback-ai-provider-D_NOmbup.js} +1 -1
  135. package/dist/client/assets/{onboarding-CTV9hAv7.js → onboarding-B68r1es4.js} +1 -1
  136. package/dist/client/assets/{org-layout-C4728LTk.js → org-layout-BOBOG86F.js} +1 -1
  137. package/dist/client/assets/{organization-choice-DuIoQUnJ.js → organization-choice-AwfVs8CT.js} +1 -1
  138. package/dist/client/assets/{orgs-CHJxetYQ.js → orgs-CQn-ih76.js} +1 -1
  139. package/dist/client/assets/{page-seo-form-DT_QZW5v.js → page-seo-form-Dpy1xVbH.js} +1 -1
  140. package/dist/client/assets/{popover-B_jNHg8G.js → popover-DiX0EkJ4.js} +1 -1
  141. package/dist/client/assets/{post-editor-ipgEXPLv.js → post-editor-CFTW1s1v.js} +1 -1
  142. package/dist/client/assets/{primitives-CLriX7Ai.js → primitives-DQbvHj6R.js} +1 -1
  143. package/dist/client/assets/{profile-CRLJkePJ.js → profile-D6IBulif.js} +1 -1
  144. package/dist/client/assets/{project-app-view-Cr5j5DRz.js → project-app-view-BKS1g3Ud.js} +1 -1
  145. package/dist/client/assets/record-editor-DPwKzGsO.js +1 -0
  146. package/dist/client/assets/{redirect-editor-DSxkgPfs.js → redirect-editor-vmgde0sE.js} +1 -1
  147. package/dist/client/assets/registry-D39ffZQk.js +2 -0
  148. package/dist/client/assets/{registry-layout-B76GyWey.js → registry-layout-DwxZwlXj.js} +1 -1
  149. package/dist/client/assets/{reports-DINCKaIu.js → reports-p7XfsysQ.js} +1 -1
  150. package/dist/client/assets/{require-capability-BVRUhwyU.js → require-capability-Bzzi4i6D.js} +1 -1
  151. package/dist/client/assets/{required-auth-layout-Bg8Z1JJx.js → required-auth-layout-BUaH1X_k.js} +1 -1
  152. package/dist/client/assets/{reset-password-Bv4DFTBB.js → reset-password-0BMRb0TQ.js} +1 -1
  153. package/dist/client/assets/{roles-Bj77hcwQ.js → roles-BaG_KykE.js} +1 -1
  154. package/dist/client/assets/{search-input-C1rZ446-.js → search-input-CQUmZZBi.js} +1 -1
  155. package/dist/client/assets/{secrets-Bl1XQ6Tj.js → secrets-DAnENgn6.js} +1 -1
  156. package/dist/client/assets/{sections-editor-ByP5gmbj.js → sections-editor-CIAArOSc.js} +1 -1
  157. package/dist/client/assets/{select-C9bBNjME.js → select-CMwB6eM0.js} +1 -1
  158. package/dist/client/assets/{select-model-Cgyob8ID.js → select-model-C8tz63pj.js} +1 -1
  159. package/dist/client/assets/{self-tool-result-CY73_W-2.js → self-tool-result-CWHjTEuo.js} +1 -1
  160. package/dist/client/assets/{seo-editor-CSppFx9X.js → seo-editor-BP0QVvx2.js} +1 -1
  161. package/dist/client/assets/{settings-layout-VQ7lzoYv.js → settings-layout-B2A8b-nH.js} +1 -1
  162. package/dist/client/assets/{settings-section-ClwVHkEb.js → settings-section-DNqmwEw6.js} +1 -1
  163. package/dist/client/assets/{settings-subnav-CJOMrTUM.js → settings-subnav-Dig7tX4q.js} +1 -1
  164. package/dist/client/assets/{shell-controls-CSuxo5Hc.js → shell-controls-BCVzUmWa.js} +1 -1
  165. package/dist/client/assets/{shell-layout-DXGwRXd8.js → shell-layout-CVtGraX-.js} +1 -1
  166. package/dist/client/assets/{sidebar-BwZSToHx.js → sidebar-D6CB3Q56.js} +1 -1
  167. package/dist/client/assets/{skeleton-CeDoEV9h.js → skeleton-JTpgPTiR.js} +1 -1
  168. package/dist/client/assets/{spinner-CagEqDnj.js → spinner-YoDkrjpZ.js} +1 -1
  169. package/dist/client/assets/{sso-Ul0tg10v.js → sso-ukDfH-1M.js} +1 -1
  170. package/dist/client/assets/{store-BV0_Dtcj.js → store-DVFvKTVi.js} +1 -1
  171. package/dist/client/assets/store-registry-CWeK60U-.js +2 -0
  172. package/dist/client/assets/{studio-tools-Cdfl8h-A.js → studio-tools-ABPru0RH.js} +1 -1
  173. package/dist/client/assets/{switch-CjB67xr2.js → switch-DRhxfM6o.js} +1 -1
  174. package/dist/client/assets/{synced-repos-CaiCjg-x.js → synced-repos-D_zj1j8V.js} +1 -1
  175. package/dist/client/assets/{tab-id-Bf34pZkO.js → tab-id-h32X17Gc.js} +1 -1
  176. package/dist/client/assets/{table-BrovHZb-.js → table-BhjWf8yD.js} +1 -1
  177. package/dist/client/assets/{tabs-CpDhoI6V.js → tabs-CSqeo-7N.js} +1 -1
  178. package/dist/client/assets/{tasks-C1d-xg2J.js → tasks-BTzD8V93.js} +1 -1
  179. package/dist/client/assets/{textarea-xw3d2lSr.js → textarea-DPgQ4gK4.js} +1 -1
  180. package/dist/client/assets/{toggle-group-C4dTrrkI.js → toggle-group-_SM0hYIK.js} +1 -1
  181. package/dist/client/assets/{toolbar-Bl4ZCxj-.js → toolbar-WxUgnYAt.js} +1 -1
  182. package/dist/client/assets/{tooltip-Dui8uwfb.js → tooltip-Dlg16ASS.js} +1 -1
  183. package/dist/client/assets/{track-HMYqIDwl.js → track-DMnWN0I4.js} +1 -1
  184. package/dist/client/assets/{types-CDL_M1sd.js → types-PdxOU0fy.js} +1 -1
  185. package/dist/client/assets/{use-ai-providers-Cn9Wfner.js → use-ai-providers-DD5-kvGY.js} +1 -1
  186. package/dist/client/assets/{use-api-keys-Nv9isq14.js → use-api-keys-Cd0i26UE.js} +1 -1
  187. package/dist/client/assets/{use-automations-DUlBexKL.js → use-automations-Df2YPu0R.js} +1 -1
  188. package/dist/client/assets/{use-autosave-BCy6OHmc.js → use-autosave-C-9w6qkk.js} +1 -1
  189. package/dist/client/assets/{use-capability-C8KDRmGN.js → use-capability-f-W2pg8c.js} +1 -1
  190. package/dist/client/assets/{use-clock-tick-TYNg8WMH.js → use-clock-tick-CDnBfz5K.js} +1 -1
  191. package/dist/client/assets/{use-commerce-diagnostic-A6-yljOP.js → use-commerce-diagnostic-sNsRsT99.js} +1 -1
  192. package/dist/client/assets/{use-connection-CVbtwrXg.js → use-connection-C2wHmZJr.js} +1 -1
  193. package/dist/client/assets/{use-copy-BgkKwLZy.js → use-copy-BBc9aeq4.js} +1 -1
  194. package/dist/client/assets/{use-create-virtual-mcp-Cxnf2a52.js → use-create-virtual-mcp-IKQXWMVJ.js} +1 -1
  195. package/dist/client/assets/{use-debounced-autosave-B3UdpOcR.js → use-debounced-autosave-C1MbKw3L.js} +1 -1
  196. package/dist/client/assets/{use-debounced-value-CbFpjEHk.js → use-debounced-value-BDG440jZ.js} +1 -1
  197. package/dist/client/assets/{use-decopilot-events-DAdI8zSd.js → use-decopilot-events-S8ywJtwM.js} +1 -1
  198. package/dist/client/assets/{use-delete-connection-CC5hxfgA.js → use-delete-connection-CaiaBJwd.js} +1 -1
  199. package/dist/client/assets/{use-deployment-admin-DVrnI08o.js → use-deployment-admin-hsMPfYcq.js} +1 -1
  200. package/dist/client/assets/{use-file-configs-Igsyli8Z.js → use-file-configs-BQVYh9S0.js} +1 -1
  201. package/dist/client/assets/{use-infinite-scroll-Be_rrlkh.js → use-infinite-scroll-BYxIBvjn.js} +1 -1
  202. package/dist/client/assets/{use-join-requests-DGwfr_VS.js → use-join-requests-66I32lou.js} +1 -1
  203. package/dist/client/assets/{use-mcp-client-DrV_gANw.js → use-mcp-client-07-d-boJ.js} +1 -1
  204. package/dist/client/assets/{use-mcp-tools-D7FZY8v9.js → use-mcp-tools-CjdDVC-o.js} +1 -1
  205. package/dist/client/assets/{use-members-DZrJpdEV.js → use-members-B3mqVogZ.js} +1 -1
  206. package/dist/client/assets/{use-mobile-Dj4teMZ8.js → use-mobile-Dlcp896j.js} +1 -1
  207. package/dist/client/assets/{use-navigate-to-agent-DG8b56CY.js → use-navigate-to-agent-BXXUXCWi.js} +1 -1
  208. package/dist/client/assets/{use-open-billing-url-QPGbYmh4.js → use-open-billing-url-CozRfjU9.js} +1 -1
  209. package/dist/client/assets/{use-org-auth-client-BlI-piJ2.js → use-org-auth-client-MNqgafFR.js} +1 -1
  210. package/dist/client/assets/{use-org-repo-syncs-bPt48aZ_.js → use-org-repo-syncs-GHg7ZaCQ.js} +1 -1
  211. package/dist/client/assets/{use-org-sso-B_R0AVqH.js → use-org-sso-OQokZ_IF.js} +1 -1
  212. package/dist/client/assets/{use-organization-roles-wqxD4fog.js → use-organization-roles-BqG7S6tw.js} +1 -1
  213. package/dist/client/assets/{use-organization-settings-DeTNeW2s.js → use-organization-settings-CPKVI-qP.js} +1 -1
  214. package/dist/client/assets/{use-registry-connections-C2_YX7H9.js → use-registry-connections-BzL52Yg8.js} +1 -1
  215. package/dist/client/assets/{use-secrets-BpWEKdQc.js → use-secrets-CDTQcDZ1.js} +1 -1
  216. package/dist/client/assets/{use-section-preview-base-CPVX9_IU.js → use-section-preview-base-_-KemxuP.js} +1 -1
  217. package/dist/client/assets/{use-settings-tabs-BTawDEOX.js → use-settings-tabs-DhfvD3UE.js} +1 -1
  218. package/dist/client/assets/{use-status-sounds-BDTLgkqj.js → use-status-sounds-C7ZfwBxF.js} +1 -1
  219. package/dist/client/assets/{use-tags-U9E57C54.js → use-tags-zVvsHYqx.js} +1 -1
  220. package/dist/client/assets/{use-view-mode-C1C1HBxK.js → use-view-mode-DE1IjFdB.js} +1 -1
  221. package/dist/client/assets/{use-virtual-mcp-CGjEzqre.js → use-virtual-mcp-D5CkXGKA.js} +1 -1
  222. package/dist/client/assets/useInfiniteQuery-DqQDEhYN.js +1 -0
  223. package/dist/client/assets/{useRouterState-B3vV-q96.js → useRouterState-kxePlddP.js} +1 -1
  224. package/dist/client/assets/useSuspenseInfiniteQuery-CAYLB2d9.js +1 -0
  225. package/dist/client/assets/{users-CpL0wgr2.js → users-BaLonu3C.js} +1 -1
  226. package/dist/client/assets/{variant-calendar-DwD-5jZh.js → variant-calendar-CRYHIGkt.js} +1 -1
  227. package/dist/client/assets/{view-mode-toggle-DFIslB1O.js → view-mode-toggle-CwhZE51Z.js} +1 -1
  228. package/dist/client/index.html +1 -1
  229. package/dist/server/cli.js +2 -2
  230. package/dist/server/server.js +2 -2
  231. package/package.json +1 -1
  232. package/dist/client/assets/record-editor-Bc0ue2LZ.js +0 -1
  233. package/dist/client/assets/registry-WToWOiBH.js +0 -2
  234. package/dist/client/assets/store-registry-COCK-STr.js +0 -2
  235. package/dist/client/assets/useInfiniteQuery-PYUi9uU7.js +0 -1
  236. package/dist/client/assets/useSuspenseInfiniteQuery-EaQ6A3_m.js +0 -1
@@ -1371,7 +1371,7 @@ Usage: deco services <up|down|status>`),process.exit(1)}}var Hi1=w(()=>{Lf()});f
1371
1371
  `.execute($);if(Number(W.rows[0]?.cnt)===0){console.warn(`Failed to migrate ${J}/${K}, keeping in old table`);continue}}await mb`
1372
1372
  DELETE FROM kysely_migration WHERE name = ${X}
1373
1373
  `.execute($)}}async function Mo1($){await Mp6($),await Vp6($);let Z=new Io1({db:$,provider:{getMigrations:()=>Promise.resolve(Ri0)}}),{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 kp6($){let{keepOpen:Z=!1,database:X,skipBetterAuth:Q=!1}=$??{},Y="skipped";if(!Q&&!X)Y=await pc0();let G=X??U6(),J=async()=>{if(!Z&&!X)await hB(G).catch((K)=>{console.warn("Warning: Error closing database:",K)})};try{let K=await Mo1(G.db);return await J(),{betterAuth:Y,kysely:K}}catch(K){throw await J(),K}}async function Sp6(){let $=U6(),Z=new Io1({db:$.db,provider:{getMigrations:()=>Promise.resolve(Ri0)}}),{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 ko1=w(()=>{Ro1();tc0();QX()});async function qZ0($){let Z={...process.env},X=D80($,Z);console.log(dw1(X.settings.encryptionKey));let Q=X.settings.betterAuthSecret||(X.settings.localMode?hn1(X.settings.dataDir):""),{ensureServices:Y}=await Promise.resolve().then(() => (x90(),v90)),{outputs:G,services:J}=await Y({home:X.settings.dataDir,externalDatabaseUrl:X.externalDatabaseUrl,externalNatsUrl:X.externalNatsUrl});if(!X.skipMigrations){let{migrateBetterAuth:W}=await Promise.resolve().then(() => (tc0(),cn1));await W(G.databaseUrl);let{createDatabase:H}=await Promise.resolve().then(() => (QX(),Yn1)),{migrateToLatest:N}=await Promise.resolve().then(() => (ko1(),Vo1)),F=H(G.databaseUrl);await N({keepOpen:!0,database:F,skipBetterAuth:!0})}let K={...X.settings,betterAuthSecret:Q,databaseUrl:G.databaseUrl,natsUrls:G.natsUrls,...G.s3?{s3Endpoint:G.s3.endpoint,s3Bucket:G.s3.bucket,s3AccessKeyId:G.s3.accessKeyId,s3SecretAccessKey:G.s3.secretAccessKey,s3ForcePathStyle:G.s3.forcePathStyle}:{},...G.natsTunnel?{natsPublicUrl:G.natsTunnel.publicUrl,natsAccountJwt:G.natsTunnel.accountJwt,natsAccountSigningKey:G.natsTunnel.accountSigningKey,natsOperatorJwt:G.natsTunnel.operatorJwt,natsTunnelPublicEnabled:!0,natsCredsPath:G.natsTunnel.credsPath}:{}};return Ni1(K),{settings:K,services:J.map((W)=>({name:W.name==="PostgreSQL"?"Postgres":W.name,port:W.port})),managedServiceNames:J.filter((W)=>W.owner==="managed").map((W)=>W.name)}}var Ii0=w(()=>{Lf();un1();C8()});var _o1={};U0(_o1,{updateService:()=>EE,subscribeCliState:()=>Vi0,setTuiConsoleIntercepted:()=>MZ0,setServerUrl:()=>vi,setMigrationsDone:()=>_i,setDevMode:()=>vp6,resetCliStateForTests:()=>Cp6,isTuiConsoleIntercepted:()=>VZ0,getCliState:()=>Mi0,addLogEntry:()=>mB});function So1(){return{services:[{name:"Postgres",status:"pending",port:0},{name:"NATS",status:"pending",port:0}],migrationsStatus:"pending",serverUrl:null,logs:[]}}function Cp6(){lQ=So1()}function _p6(){return[{name:"Postgres",status:"pending",port:0},{name:"NATS",status:"pending",port:0}]}function Ci(){for(let $ of qi0)$()}function Mi0(){return lQ}function Vi0($){return qi0.add($),()=>qi0.delete($)}function EE($){lQ={...lQ,services:lQ.services.map((Z)=>Z.name===$.name?$:Z)},Ci()}function _i(){lQ={...lQ,migrationsStatus:"done"},Ci()}function vi($){lQ={...lQ,serverUrl:$},Ci()}function mB($){let Z=[...lQ.logs,$];lQ={...lQ,logs:Z.length>500?Z.slice(-500):Z},Ci()}function vp6(){lQ={...lQ,services:[..._p6(),{name:"API",status:"pending",port:0},{name:"Vite",status:"pending",port:0}]},Ci()}function MZ0($){Co1=$}function VZ0(){return Co1}var lQ,qi0,Co1=!1;var jE=w(()=>{lQ=So1();qi0=new Set});import{createServer as vo1}from"net";function xp6($){return new Promise((Z)=>{let X=vo1();X.once("error",()=>Z(!1)),X.listen($,"0.0.0.0",()=>{X.close(()=>Z(!0))})})}async function xi($){if(await xp6($))return $;let Z=await new Promise((X,Q)=>{let Y=vo1();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 ki0=()=>{};function fi($){return $.replace(/\x1b\[[0-9;]*m/g,"")}var Si0={};U0(Si0,{startDevServer:()=>bp6});import{join as fp6}from"path";function xo1($){let Z=$.getReader(),X=new TextDecoder,Q="";function Y(){let G=Q.split(`
1374
- `);Q=G.pop()??"";for(let J of G){let K=fi(J).replace(/^\[\d+\]\s*/,"").trim();if(!K)continue;mB({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=fi(Q).replace(/^\[\d+\]\s*/,"").trim();if(G)mB({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:G})}})()}async function bp6($){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 xi(Number(Y)+1):await xi(Number($.port)),{settings:K,services:W,managedServiceNames:H}=await qZ0({port:String(J),home:$.home,baseUrl:$.baseUrl,localMode:$.localMode,skipMigrations:$.skipMigrations,noTui:$.noTui,vitePort:$.vitePort});for(let L of W)EE({name:L.name,status:"ready",port:L.port});_i();let N=fp6(import.meta.dir,"..","..","..","..",".."),F=X===!0,U=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.betterAuthSecret?{BETTER_AUTH_SECRET:K.betterAuthSecret}:{},...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",F?"inherit":"pipe",F?"inherit":"pipe"]});if(!F)xo1(U.stdout),xo1(U.stderr);vi(G),EE({name:"Vite",status:"ready",port:Number(Y)}),EE({name:"API",status:"ready",port:Number(K.port)});let O=async(L)=>{if(U.kill(L),await U.exited,H.length>0){let{stopServices:D}=await Promise.resolve().then(() => (x90(),v90));await D(K.dataDir)}};return process.on("SIGINT",()=>O("SIGINT")),process.on("SIGTERM",()=>O("SIGTERM")),{port:Number(Y),process:U}}var Ci0=w(()=>{Ii0();jE();ki0()});var kZ0;var _i0=w(()=>{kZ0={name:"decocms",version:"4.246.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","db:migrate:dbos":"bun run ./dist/server/migrate-dbos.js",check:"tsc --noEmit",start:"bun run ./dist/server/server.js",migrate:"bun run src/database/migrate.ts","migrate:dbos":"bun run src/database/migrate-dbos.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 gp6,Text as fo1}from"ink";import{jsx as hp6,jsxs as bo1}from"react/jsx-runtime";function yo1({version:$}){return bo1(gp6,{flexDirection:"column",marginTop:1,children:[QZ0.map((Z,X)=>hp6(fo1,{color:YZ0[X],children:Z},X)),bo1(fo1,{dimColor:!0,children:[" v",$]})]})}var go1=w(()=>{zi()});import{Box as zE,Text as iB}from"ink";import{Spinner as up6}from"@inkjs/ui";import{jsx as aY,jsxs as ib}from"react/jsx-runtime";function ho1({status:$}){if($==="pending")return aY(up6,{label:""});return aY(iB,{color:"green",children:"\u2713"})}function cp6($){return`${$.name}: ${$.port||"...."}`}function uo1({services:$,migrationsStatus:Z,home:X,serverUrl:Q}){return ib(zE,{flexDirection:"column",paddingBottom:1,children:[aY(yo1,{version:kZ0.version}),aY(zE,{marginBottom:1,children:aY(iB,{dimColor:!0,children:"\u2500".repeat(80)})}),aY(zE,{children:ib(iB,{dimColor:!0,children:["Home: ",X]})}),ib(zE,{gap:2,children:[$.map((Y)=>ib(zE,{gap:1,children:[aY(iB,{children:cp6(Y)}),aY(ho1,{status:Y.status})]},Y.name)),ib(zE,{gap:1,children:[aY(iB,{children:"Migrations"}),aY(ho1,{status:Z})]})]}),aY(zE,{children:Q?ib(iB,{children:["Open in browser: ",aY(iB,{color:"cyan",children:Q})]}):aY(iB,{dimColor:!0,children:"Starting..."})})]})}var co1=w(()=>{_i0();go1()});import{Box as lp6,Text as bi}from"ink";import{jsx as vi0,jsxs as xi0}from"react/jsx-runtime";function dp6($){if($>=500)return"red";if($>=400)return"yellow";if($>=300)return"cyan";return"green"}function lo1({logs:$}){return vi0(lp6,{flexDirection:"column",children:$.map((Z,X)=>{if(Z.rawLine)return vi0(bi,{dimColor:!0,children:Z.rawLine},X);let Q=Z.duration<1000?`${Z.duration}ms`:`${(Z.duration/1000).toFixed(1)}s`;return xi0(bi,{children:[xi0(bi,{dimColor:!0,children:[Z.method.padEnd(6)," ",Z.path.padEnd(30)," "]}),vi0(bi,{color:dp6(Z.status),children:Z.status}),xi0(bi,{dimColor:!0,children:[" ",Q.padStart(8)]})]},X)})})}var do1=()=>{};var fi0={};U0(fi0,{App:()=>np6});import{Box as mp6}from"ink";import{useSyncExternalStore as ip6}from"react";import{jsx as mo1,jsxs as pp6}from"react/jsx-runtime";function np6({home:$}){let Z=ip6(Vi0,Mi0);return pp6(mp6,{flexDirection:"column",children:[mo1(uo1,{services:Z.services,migrationsStatus:Z.migrationsStatus,home:$,serverUrl:Z.serverUrl}),mo1(lo1,{logs:Z.logs})]})}var bi0=w(()=>{co1();do1();jE()});var fJ="thread-gate",sN="decopilot-hosted-harness",eN="decopilot-hosted-harness-sandboxed",N3="automations",nB="background-tools",PE="task-board-github-reads",AE="jira-push";var io1="7";function no1($){return{name:"decocms",systemDatabaseUrl:$.systemDatabaseUrl,systemDatabaseSchemaName:"dbos",systemDatabasePoolSize:$.poolSize,runAdminServer:!1,executorID:$.executorID,applicationVersion:io1,...$.listenQueues!==void 0?{listenQueues:$.listenQueues}:{}}}var po1=()=>{};function tp6(){let $=(process.env.BUN_OPTIONS??"").split(/\s+/).filter(Boolean);return[...process.argv.slice(1),...$]}function yi0($,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 to1(){let $=tp6();if($.includes("--cpu-prof")){console.log(JSON.stringify({msg:"cpu-profiling-active",dir:yi0($,"--cpu-prof-dir")??process.cwd(),name:yi0($,"--cpu-prof-name"),markdown:$.includes("--cpu-prof-md"),intervalUs:Number(yi0($,"--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 oo1(){if(process.env.HEAP_WATCH!=="1")return()=>{};let $=Number(process.env.HEAP_WATCH_INTERVAL_MS??60000),Z=async()=>{let X=OE();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(()=>{}),SZ0=setInterval(()=>void Z().catch(()=>{}),$),SZ0.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(SZ0)clearInterval(SZ0)}}var SZ0;var ro1=()=>{};import*as op6 from"bun:jsc";function ao1(){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{rp6()}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=ap6()?.traces??[]}catch{}if(J>$&&K.length>0){let W=new Map;for(let N of K){let F=N.frames.find((O)=>O.sourceURL&&!/Unknown Executable/.test(O.category??""))??N.frames[0];if(!F)continue;let U=(F.sourceURL??"?").replace(/^.*\/node_modules\//,"node_modules/"),B=`${F.name??"?"} @ ${U}:${F.line??"?"}`;W.set(B,(W.get(B)??0)+1)}let H=[...W.entries()].sort((N,F)=>F[1]-N[1]).slice(0,8).map(([N,F])=>({frame:N,count:F}));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 rp6,ap6;var so1=w(()=>{({startSamplingProfiler:rp6,samplingProfilerStackTraces:ap6}=op6)});function eo1(){to1();let $=[oo1(),ri1(),ao1()];return()=>{for(let Z of $)Z()}}var $r1=w(()=>{yc0();ro1();so1()});var TE=v((Zr1)=>{Object.defineProperty(Zr1,"__esModule",{value:!0});Zr1.RepublishHeaders=Zr1.DirectMsgHeaders=Zr1.JsHeaders=Zr1.AdvisoryKind=void 0;Zr1.isOrderedPushConsumerOptions=sp6;Zr1.isPullConsumer=ep6;Zr1.isPushConsumer=$t6;Zr1.isBoundPushConsumerOptions=Zt6;function sp6($){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 ep6($){return $.isPullConsumer()}function $t6($){return $.isPushConsumer()}function Zt6($){if($&&typeof $==="object")return"deliver_subject"in $||"deliver_group"in $||"idle_heartbeat"in $;return!1}Zr1.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"};Zr1.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"};Zr1.DirectMsgHeaders={Stream:"Nats-Stream",Sequence:"Nats-Sequence",TimeStamp:"Nats-Time-Stamp",Subject:"Nats-Subject",LastSequence:"Nats-Last-Sequence",NumPending:"Nats-Num-Pending"};Zr1.RepublishHeaders={Stream:"Nats-Stream",Subject:"Nats-Subject",Sequence:"Nats-Sequence",LastSequence:"Nats-Last-Sequence",Size:"Nats-Msg-Size"}});var sY=v((Qr1)=>{Object.defineProperty(Qr1,"__esModule",{value:!0});Qr1.TD=Qr1.TE=Qr1.Empty=void 0;Qr1.encode=Nt6;Qr1.decode=Ft6;Qr1.Empty=new Uint8Array(0);Qr1.TE=new TextEncoder;Qr1.TD=new TextDecoder;function Ht6(...$){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 Nt6(...$){let Z=[];for(let X=0;X<$.length;X++)Z.push(Qr1.TE.encode($[X]));if(Z.length===0)return Qr1.Empty;if(Z.length===1)return Z[0];return Ht6(...Z)}function Ft6($){if(!$||$.length===0)return"";return Qr1.TD.decode($)}});var eY=v((Jr1)=>{Object.defineProperty(Jr1,"__esModule",{value:!0});Jr1.errors=Jr1.PermissionViolationError=Jr1.NoRespondersError=Jr1.TimeoutError=Jr1.RequestError=Jr1.ProtocolError=Jr1.ConnectionError=Jr1.DrainingConnectionError=Jr1.ClosedConnectionError=Jr1.AuthorizationError=Jr1.UserAuthenticationExpiredError=Jr1.InvalidOperationError=Jr1.InvalidArgumentError=Jr1.InvalidSubjectError=void 0;class hi0 extends Error{constructor($,Z){super(`illegal subject: '${$}'`,Z);this.name="InvalidSubjectError"}}Jr1.InvalidSubjectError=hi0;class CZ0 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 CZ0(`${$} ${Z}`,X)}}Jr1.InvalidArgumentError=CZ0;class ui0 extends Error{constructor($,Z){super($,Z);this.name="InvalidOperationError"}}Jr1.InvalidOperationError=ui0;class _Z0 extends Error{constructor($,Z){super($,Z);this.name="UserAuthenticationExpiredError"}static parse($){if($.toLowerCase().indexOf("user authentication expired")!==-1)return new _Z0($);return null}}Jr1.UserAuthenticationExpiredError=_Z0;class vZ0 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 vZ0($);return null}}Jr1.AuthorizationError=vZ0;class ci0 extends Error{constructor(){super("closed connection");this.name="ClosedConnectionError"}}Jr1.ClosedConnectionError=ci0;class li0 extends Error{constructor(){super("connection draining");this.name="DrainingConnectionError"}}Jr1.DrainingConnectionError=li0;class di0 extends Error{constructor($,Z){super($,Z);this.name="ConnectionError"}}Jr1.ConnectionError=di0;class mi0 extends Error{constructor($,Z){super($,Z);this.name="ProtocolError"}}Jr1.ProtocolError=mi0;class ii0 extends Error{constructor($="",Z){super($,Z);this.name="RequestError"}isNoResponders(){return this.cause instanceof xZ0}}Jr1.RequestError=ii0;class ni0 extends Error{constructor($){super("timeout",$);this.name="TimeoutError"}}Jr1.TimeoutError=ni0;class xZ0 extends Error{subject;constructor($,Z){super(`no responders: '${$}'`,Z);this.subject=$,this.name="NoResponders"}}Jr1.NoRespondersError=xZ0;class fZ0 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 fZ0($,X,Q,Y)}}Jr1.PermissionViolationError=fZ0;Jr1.errors={AuthorizationError:vZ0,ClosedConnectionError:ci0,ConnectionError:di0,DrainingConnectionError:li0,InvalidArgumentError:CZ0,InvalidOperationError:ui0,InvalidSubjectError:hi0,NoRespondersError:xZ0,PermissionViolationError:fZ0,ProtocolError:mi0,RequestError:ii0,TimeoutError:ni0,UserAuthenticationExpiredError:_Z0}});var bJ=v((Fr1)=>{Object.defineProperty(Fr1,"__esModule",{value:!0});Fr1.SimpleMutex=Fr1.Perf=void 0;Fr1.extend=Vt6;Fr1.render=kt6;Fr1.timeout=St6;Fr1.delay=Ct6;Fr1.deadline=_t6;Fr1.deferred=ti0;Fr1.debugDeferred=vt6;Fr1.shuffle=xt6;Fr1.collect=ft6;Fr1.jitter=Nr1;Fr1.backoff=bt6;Fr1.nanos=yt6;Fr1.millis=gt6;Fr1.randomToken=ct6;var Mt6=sY(),pi0=eY();function Vt6($,...Z){for(let X=0;X<Z.length;X++){let Q=Z[X];Object.keys(Q).forEach(function(Y){$[Y]=Q[Y]})}return $}function kt6($){return Mt6.TD.decode($).replace(/\n/g,"\u240A").replace(/\r/g,"\u240D")}function St6($,Z=!0){let X=Z?new pi0.TimeoutError:null,Q,Y,G=new Promise((J,K)=>{Q={cancel:()=>{if(Y)clearTimeout(Y)}},Y=setTimeout(()=>{if(X===null)K(new pi0.TimeoutError);else K(X)},$)});return Object.assign(G,Q)}function Ct6($=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 _t6($,Z=1000){let X=ti0(),Q=setTimeout(()=>{X.reject(new pi0.TimeoutError)},Z);try{return await Promise.race([$,X])}finally{clearTimeout(Q)}}function ti0(){let $={},Z=new Promise((X,Q)=>{$={resolve:X,reject:Q}});return Object.assign(Z,$)}function vt6(){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 xt6($){for(let Z=$.length-1;Z>0;Z--){let X=Math.floor(Math.random()*(Z+1));[$[Z],$[X]]=[$[X],$[Z]]}return $}async function ft6($){let Z=[];for await(let X of $)Z.push(X);return Z}class Wr1{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})}),$}}Fr1.Perf=Wr1;class Hr1{max;current;waiting;constructor($=1){this.max=$,this.current=0,this.waiting=[]}lock(){if(this.current++,this.current<=this.max)return Promise.resolve();let $=ti0();return this.waiting.push($),$}unlock(){this.current--,this.waiting.pop()?.resolve()}}Fr1.SimpleMutex=Hr1;function Nr1($){if($===0)return 0;return Math.floor($/2+Math.random()*$)}function bt6($=[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 Nr1(X>Z?$[Z]:$[X])}}}function yt6($){return $*1e6}function gt6($){return Math.floor($/1e6)}var ht6="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",$F=new Uint8Array(62);for(let $=0;$<62;$++)$F[$]=ht6.charCodeAt($);var ut6=218340105584896;function ct6(){let $=Math.floor(Math.random()*ut6),Z=$%62,X=$F[Z];$=($-Z)/62,Z=$%62;let Q=$F[Z];$=($-Z)/62,Z=$%62;let Y=$F[Z];$=($-Z)/62,Z=$%62;let G=$F[Z];$=($-Z)/62,Z=$%62;let J=$F[Z];$=($-Z)/62,Z=$%62;let K=$F[Z];$=($-Z)/62,Z=$%62;let W=$F[Z];$=($-Z)/62;let H=$F[$];return String.fromCharCode(X,Q,Y,G,J,K,W,H)}});var jr1=v((Dr1)=>{Object.defineProperty(Dr1,"__esModule",{value:!0});Dr1.nuid=Dr1.NuidImpl=void 0;var Qo6="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",pB=62,yZ0=12,wr1=10,Br1=33,Yo6=333,Or1=yZ0+wr1,ri0=new Uint8Array(pB);for(let $=0;$<pB;$++)ri0[$]=Qo6.charCodeAt($);var bZ0=4294967296,Lr1=BigInt(pB)**BigInt(wr1),yi=Number(Lr1/(1n<<32n)),oi0=Number(Lr1%(1n<<32n));function Go6($){for(let Z=0;Z<$.length;Z++)$[Z]=Math.floor(Math.random()*256)}function Jo6($){if(globalThis?.crypto?.getRandomValues)globalThis.crypto.getRandomValues($);else Go6($)}class ai0{buf;cbuf;seqHi;seqLo;inc;inited;constructor(){this.buf=new Uint8Array(Or1),this.cbuf=new Uint8Array(yZ0),this.inited=!1}init(){this.inited=!0,this.setPre(),this.initSeqAndInc(),this.fillSeq()}initSeqAndInc(){let $=0;do this.seqHi=Math.floor(Math.random()*(yi+1)),this.seqLo=Math.floor(Math.random()*bZ0);while($++<8&&this.seqHi===yi&&this.seqLo>=oi0);if(this.seqHi===yi&&this.seqLo>=oi0)this.seqLo=0;this.inc=Math.random()*(Yo6-Br1)+Br1|0}setPre(){Jo6(this.cbuf);for(let $=0;$<yZ0;$++)this.buf[$]=ri0[this.cbuf[$]%pB]}fillSeq(){let $=this.seqHi,Z=this.seqLo;for(let X=Or1-1;X>=yZ0;X--){let Q=Math.floor($/pB),G=($-Q*pB)*bZ0+Z,J=Math.floor(G/pB),K=G-J*pB;this.buf[X]=ri0[K],$=Q,Z=J}}next(){if(!this.inited)this.init();if(this.seqLo+=this.inc,this.seqLo>=bZ0)this.seqLo-=bZ0,this.seqHi+=1;if(this.seqHi>yi||this.seqHi===yi&&this.seqLo>=oi0)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()}}Dr1.NuidImpl=ai0;Dr1.nuid=new ai0});var Tr1=v((Pr1)=>{Object.defineProperty(Pr1,"__esModule",{value:!0});Pr1.nuid=Pr1.Nuid=void 0;var zr1=jr1();Pr1.Nuid=zr1.NuidImpl;Pr1.nuid=zr1.nuid});var hZ0=v((gZ0)=>{Object.defineProperty(gZ0,"__esModule",{value:!0});gZ0.nuid=gZ0.Nuid=void 0;var Rr1=Tr1();Object.defineProperty(gZ0,"Nuid",{enumerable:!0,get:function(){return Rr1.Nuid}});Object.defineProperty(gZ0,"nuid",{enumerable:!0,get:function(){return Rr1.nuid}})});var tB=v((Ir1)=>{Object.defineProperty(Ir1,"__esModule",{value:!0});Ir1.DEFAULT_HOST=Ir1.DEFAULT_PORT=Ir1.Match=void 0;Ir1.syncIterator=Uo6;Ir1.createInbox=Bo6;var No6=hZ0(),Fo6=eY();Ir1.Match={Exact:"exact",CanonicalMIME:"canonical",IgnoreCase:"insensitive"};function Uo6($){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 Bo6($=""){if($=$||"_INBOX",typeof $!=="string")throw TypeError("prefix must be a string");return $.split(".").forEach((Z)=>{if(Z==="*"||Z===">")throw Fo6.InvalidArgumentError.format("prefix",`cannot have wildcards ('${$}')`)}),`${$}.${No6.nuid.next()}`}Ir1.DEFAULT_PORT=4222;Ir1.DEFAULT_HOST="127.0.0.1"});var gi=v((kr1)=>{Object.defineProperty(kr1,"__esModule",{value:!0});kr1.DataBuffer=void 0;var Mr1=sY();class Vr1{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 Mr1.TE.encode($)}static toAscii($){return Mr1.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}}kr1.DataBuffer=Vr1});var RE=v((_r1)=>{Object.defineProperty(_r1,"__esModule",{value:!0});_r1.LF=_r1.CR=_r1.CRLF=_r1.CR_LF_LEN=_r1.CR_LF=void 0;_r1.setTransportFactory=Po6;_r1.defaultPort=Ao6;_r1.getUrlParseFn=To6;_r1.newTransport=Ro6;_r1.getResolveFn=Io6;_r1.protoLen=Cr1;_r1.extractProtocolMessage=qo6;var Eo6=sY(),jo6=tB(),zo6=gi(),$G;function Po6($){$G=$}function Ao6(){return $G!==void 0&&$G.defaultPort!==void 0?$G.defaultPort:jo6.DEFAULT_PORT}function To6(){return $G!==void 0&&$G.urlParseFn?$G.urlParseFn:void 0}function Ro6(){if(!$G||typeof $G.factory!=="function")throw Error("transport fn is not set");return $G.factory()}function Io6(){return $G!==void 0&&$G.dnsResolveFn?$G.dnsResolveFn:void 0}_r1.CR_LF=`\r
1374
+ `);Q=G.pop()??"";for(let J of G){let K=fi(J).replace(/^\[\d+\]\s*/,"").trim();if(!K)continue;mB({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=fi(Q).replace(/^\[\d+\]\s*/,"").trim();if(G)mB({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:G})}})()}async function bp6($){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 xi(Number(Y)+1):await xi(Number($.port)),{settings:K,services:W,managedServiceNames:H}=await qZ0({port:String(J),home:$.home,baseUrl:$.baseUrl,localMode:$.localMode,skipMigrations:$.skipMigrations,noTui:$.noTui,vitePort:$.vitePort});for(let L of W)EE({name:L.name,status:"ready",port:L.port});_i();let N=fp6(import.meta.dir,"..","..","..","..",".."),F=X===!0,U=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.betterAuthSecret?{BETTER_AUTH_SECRET:K.betterAuthSecret}:{},...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",F?"inherit":"pipe",F?"inherit":"pipe"]});if(!F)xo1(U.stdout),xo1(U.stderr);vi(G),EE({name:"Vite",status:"ready",port:Number(Y)}),EE({name:"API",status:"ready",port:Number(K.port)});let O=async(L)=>{if(U.kill(L),await U.exited,H.length>0){let{stopServices:D}=await Promise.resolve().then(() => (x90(),v90));await D(K.dataDir)}};return process.on("SIGINT",()=>O("SIGINT")),process.on("SIGTERM",()=>O("SIGTERM")),{port:Number(Y),process:U}}var Ci0=w(()=>{Ii0();jE();ki0()});var kZ0;var _i0=w(()=>{kZ0={name:"decocms",version:"4.246.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","db:migrate:dbos":"bun run ./dist/server/migrate-dbos.js",check:"tsc --noEmit",start:"bun run ./dist/server/server.js",migrate:"bun run src/database/migrate.ts","migrate:dbos":"bun run src/database/migrate-dbos.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 gp6,Text as fo1}from"ink";import{jsx as hp6,jsxs as bo1}from"react/jsx-runtime";function yo1({version:$}){return bo1(gp6,{flexDirection:"column",marginTop:1,children:[QZ0.map((Z,X)=>hp6(fo1,{color:YZ0[X],children:Z},X)),bo1(fo1,{dimColor:!0,children:[" v",$]})]})}var go1=w(()=>{zi()});import{Box as zE,Text as iB}from"ink";import{Spinner as up6}from"@inkjs/ui";import{jsx as aY,jsxs as ib}from"react/jsx-runtime";function ho1({status:$}){if($==="pending")return aY(up6,{label:""});return aY(iB,{color:"green",children:"\u2713"})}function cp6($){return`${$.name}: ${$.port||"...."}`}function uo1({services:$,migrationsStatus:Z,home:X,serverUrl:Q}){return ib(zE,{flexDirection:"column",paddingBottom:1,children:[aY(yo1,{version:kZ0.version}),aY(zE,{marginBottom:1,children:aY(iB,{dimColor:!0,children:"\u2500".repeat(80)})}),aY(zE,{children:ib(iB,{dimColor:!0,children:["Home: ",X]})}),ib(zE,{gap:2,children:[$.map((Y)=>ib(zE,{gap:1,children:[aY(iB,{children:cp6(Y)}),aY(ho1,{status:Y.status})]},Y.name)),ib(zE,{gap:1,children:[aY(iB,{children:"Migrations"}),aY(ho1,{status:Z})]})]}),aY(zE,{children:Q?ib(iB,{children:["Open in browser: ",aY(iB,{color:"cyan",children:Q})]}):aY(iB,{dimColor:!0,children:"Starting..."})})]})}var co1=w(()=>{_i0();go1()});import{Box as lp6,Text as bi}from"ink";import{jsx as vi0,jsxs as xi0}from"react/jsx-runtime";function dp6($){if($>=500)return"red";if($>=400)return"yellow";if($>=300)return"cyan";return"green"}function lo1({logs:$}){return vi0(lp6,{flexDirection:"column",children:$.map((Z,X)=>{if(Z.rawLine)return vi0(bi,{dimColor:!0,children:Z.rawLine},X);let Q=Z.duration<1000?`${Z.duration}ms`:`${(Z.duration/1000).toFixed(1)}s`;return xi0(bi,{children:[xi0(bi,{dimColor:!0,children:[Z.method.padEnd(6)," ",Z.path.padEnd(30)," "]}),vi0(bi,{color:dp6(Z.status),children:Z.status}),xi0(bi,{dimColor:!0,children:[" ",Q.padStart(8)]})]},X)})})}var do1=()=>{};var fi0={};U0(fi0,{App:()=>np6});import{Box as mp6}from"ink";import{useSyncExternalStore as ip6}from"react";import{jsx as mo1,jsxs as pp6}from"react/jsx-runtime";function np6({home:$}){let Z=ip6(Vi0,Mi0);return pp6(mp6,{flexDirection:"column",children:[mo1(uo1,{services:Z.services,migrationsStatus:Z.migrationsStatus,home:$,serverUrl:Z.serverUrl}),mo1(lo1,{logs:Z.logs})]})}var bi0=w(()=>{co1();do1();jE()});var fJ="thread-gate",sN="decopilot-hosted-harness",eN="decopilot-hosted-harness-sandboxed",N3="automations",nB="background-tools",PE="task-board-github-reads",AE="jira-push";var io1="7";function no1($){return{name:"decocms",systemDatabaseUrl:$.systemDatabaseUrl,systemDatabaseSchemaName:"dbos",systemDatabasePoolSize:$.poolSize,runAdminServer:!1,executorID:$.executorID,applicationVersion:io1,...$.listenQueues!==void 0?{listenQueues:$.listenQueues}:{}}}var po1=()=>{};function tp6(){let $=(process.env.BUN_OPTIONS??"").split(/\s+/).filter(Boolean);return[...process.argv.slice(1),...$]}function yi0($,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 to1(){let $=tp6();if($.includes("--cpu-prof")){console.log(JSON.stringify({msg:"cpu-profiling-active",dir:yi0($,"--cpu-prof-dir")??process.cwd(),name:yi0($,"--cpu-prof-name"),markdown:$.includes("--cpu-prof-md"),intervalUs:Number(yi0($,"--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 oo1(){if(process.env.HEAP_WATCH!=="1")return()=>{};let $=Number(process.env.HEAP_WATCH_INTERVAL_MS??60000),Z=async()=>{let X=OE();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(()=>{}),SZ0=setInterval(()=>void Z().catch(()=>{}),$),SZ0.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(SZ0)clearInterval(SZ0)}}var SZ0;var ro1=()=>{};import*as op6 from"bun:jsc";function ao1(){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{rp6()}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=ap6()?.traces??[]}catch{}if(J>$&&K.length>0){let W=new Map;for(let N of K){let F=N.frames.find((O)=>O.sourceURL&&!/Unknown Executable/.test(O.category??""))??N.frames[0];if(!F)continue;let U=(F.sourceURL??"?").replace(/^.*\/node_modules\//,"node_modules/"),B=`${F.name??"?"} @ ${U}:${F.line??"?"}`;W.set(B,(W.get(B)??0)+1)}let H=[...W.entries()].sort((N,F)=>F[1]-N[1]).slice(0,8).map(([N,F])=>({frame:N,count:F}));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 rp6,ap6;var so1=w(()=>{({startSamplingProfiler:rp6,samplingProfilerStackTraces:ap6}=op6)});function eo1(){to1();let $=[oo1(),ri1(),ao1()];return()=>{for(let Z of $)Z()}}var $r1=w(()=>{yc0();ro1();so1()});var TE=v((Zr1)=>{Object.defineProperty(Zr1,"__esModule",{value:!0});Zr1.RepublishHeaders=Zr1.DirectMsgHeaders=Zr1.JsHeaders=Zr1.AdvisoryKind=void 0;Zr1.isOrderedPushConsumerOptions=sp6;Zr1.isPullConsumer=ep6;Zr1.isPushConsumer=$t6;Zr1.isBoundPushConsumerOptions=Zt6;function sp6($){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 ep6($){return $.isPullConsumer()}function $t6($){return $.isPushConsumer()}function Zt6($){if($&&typeof $==="object")return"deliver_subject"in $||"deliver_group"in $||"idle_heartbeat"in $;return!1}Zr1.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"};Zr1.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"};Zr1.DirectMsgHeaders={Stream:"Nats-Stream",Sequence:"Nats-Sequence",TimeStamp:"Nats-Time-Stamp",Subject:"Nats-Subject",LastSequence:"Nats-Last-Sequence",NumPending:"Nats-Num-Pending"};Zr1.RepublishHeaders={Stream:"Nats-Stream",Subject:"Nats-Subject",Sequence:"Nats-Sequence",LastSequence:"Nats-Last-Sequence",Size:"Nats-Msg-Size"}});var sY=v((Qr1)=>{Object.defineProperty(Qr1,"__esModule",{value:!0});Qr1.TD=Qr1.TE=Qr1.Empty=void 0;Qr1.encode=Nt6;Qr1.decode=Ft6;Qr1.Empty=new Uint8Array(0);Qr1.TE=new TextEncoder;Qr1.TD=new TextDecoder;function Ht6(...$){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 Nt6(...$){let Z=[];for(let X=0;X<$.length;X++)Z.push(Qr1.TE.encode($[X]));if(Z.length===0)return Qr1.Empty;if(Z.length===1)return Z[0];return Ht6(...Z)}function Ft6($){if(!$||$.length===0)return"";return Qr1.TD.decode($)}});var eY=v((Jr1)=>{Object.defineProperty(Jr1,"__esModule",{value:!0});Jr1.errors=Jr1.PermissionViolationError=Jr1.NoRespondersError=Jr1.TimeoutError=Jr1.RequestError=Jr1.ProtocolError=Jr1.ConnectionError=Jr1.DrainingConnectionError=Jr1.ClosedConnectionError=Jr1.AuthorizationError=Jr1.UserAuthenticationExpiredError=Jr1.InvalidOperationError=Jr1.InvalidArgumentError=Jr1.InvalidSubjectError=void 0;class hi0 extends Error{constructor($,Z){super(`illegal subject: '${$}'`,Z);this.name="InvalidSubjectError"}}Jr1.InvalidSubjectError=hi0;class CZ0 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 CZ0(`${$} ${Z}`,X)}}Jr1.InvalidArgumentError=CZ0;class ui0 extends Error{constructor($,Z){super($,Z);this.name="InvalidOperationError"}}Jr1.InvalidOperationError=ui0;class _Z0 extends Error{constructor($,Z){super($,Z);this.name="UserAuthenticationExpiredError"}static parse($){if($.toLowerCase().indexOf("user authentication expired")!==-1)return new _Z0($);return null}}Jr1.UserAuthenticationExpiredError=_Z0;class vZ0 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 vZ0($);return null}}Jr1.AuthorizationError=vZ0;class ci0 extends Error{constructor(){super("closed connection");this.name="ClosedConnectionError"}}Jr1.ClosedConnectionError=ci0;class li0 extends Error{constructor(){super("connection draining");this.name="DrainingConnectionError"}}Jr1.DrainingConnectionError=li0;class di0 extends Error{constructor($,Z){super($,Z);this.name="ConnectionError"}}Jr1.ConnectionError=di0;class mi0 extends Error{constructor($,Z){super($,Z);this.name="ProtocolError"}}Jr1.ProtocolError=mi0;class ii0 extends Error{constructor($="",Z){super($,Z);this.name="RequestError"}isNoResponders(){return this.cause instanceof xZ0}}Jr1.RequestError=ii0;class ni0 extends Error{constructor($){super("timeout",$);this.name="TimeoutError"}}Jr1.TimeoutError=ni0;class xZ0 extends Error{subject;constructor($,Z){super(`no responders: '${$}'`,Z);this.subject=$,this.name="NoResponders"}}Jr1.NoRespondersError=xZ0;class fZ0 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 fZ0($,X,Q,Y)}}Jr1.PermissionViolationError=fZ0;Jr1.errors={AuthorizationError:vZ0,ClosedConnectionError:ci0,ConnectionError:di0,DrainingConnectionError:li0,InvalidArgumentError:CZ0,InvalidOperationError:ui0,InvalidSubjectError:hi0,NoRespondersError:xZ0,PermissionViolationError:fZ0,ProtocolError:mi0,RequestError:ii0,TimeoutError:ni0,UserAuthenticationExpiredError:_Z0}});var bJ=v((Fr1)=>{Object.defineProperty(Fr1,"__esModule",{value:!0});Fr1.SimpleMutex=Fr1.Perf=void 0;Fr1.extend=Vt6;Fr1.render=kt6;Fr1.timeout=St6;Fr1.delay=Ct6;Fr1.deadline=_t6;Fr1.deferred=ti0;Fr1.debugDeferred=vt6;Fr1.shuffle=xt6;Fr1.collect=ft6;Fr1.jitter=Nr1;Fr1.backoff=bt6;Fr1.nanos=yt6;Fr1.millis=gt6;Fr1.randomToken=ct6;var Mt6=sY(),pi0=eY();function Vt6($,...Z){for(let X=0;X<Z.length;X++){let Q=Z[X];Object.keys(Q).forEach(function(Y){$[Y]=Q[Y]})}return $}function kt6($){return Mt6.TD.decode($).replace(/\n/g,"\u240A").replace(/\r/g,"\u240D")}function St6($,Z=!0){let X=Z?new pi0.TimeoutError:null,Q,Y,G=new Promise((J,K)=>{Q={cancel:()=>{if(Y)clearTimeout(Y)}},Y=setTimeout(()=>{if(X===null)K(new pi0.TimeoutError);else K(X)},$)});return Object.assign(G,Q)}function Ct6($=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 _t6($,Z=1000){let X=ti0(),Q=setTimeout(()=>{X.reject(new pi0.TimeoutError)},Z);try{return await Promise.race([$,X])}finally{clearTimeout(Q)}}function ti0(){let $={},Z=new Promise((X,Q)=>{$={resolve:X,reject:Q}});return Object.assign(Z,$)}function vt6(){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 xt6($){for(let Z=$.length-1;Z>0;Z--){let X=Math.floor(Math.random()*(Z+1));[$[Z],$[X]]=[$[X],$[Z]]}return $}async function ft6($){let Z=[];for await(let X of $)Z.push(X);return Z}class Wr1{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})}),$}}Fr1.Perf=Wr1;class Hr1{max;current;waiting;constructor($=1){this.max=$,this.current=0,this.waiting=[]}lock(){if(this.current++,this.current<=this.max)return Promise.resolve();let $=ti0();return this.waiting.push($),$}unlock(){this.current--,this.waiting.pop()?.resolve()}}Fr1.SimpleMutex=Hr1;function Nr1($){if($===0)return 0;return Math.floor($/2+Math.random()*$)}function bt6($=[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 Nr1(X>Z?$[Z]:$[X])}}}function yt6($){return $*1e6}function gt6($){return Math.floor($/1e6)}var ht6="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",$F=new Uint8Array(62);for(let $=0;$<62;$++)$F[$]=ht6.charCodeAt($);var ut6=218340105584896;function ct6(){let $=Math.floor(Math.random()*ut6),Z=$%62,X=$F[Z];$=($-Z)/62,Z=$%62;let Q=$F[Z];$=($-Z)/62,Z=$%62;let Y=$F[Z];$=($-Z)/62,Z=$%62;let G=$F[Z];$=($-Z)/62,Z=$%62;let J=$F[Z];$=($-Z)/62,Z=$%62;let K=$F[Z];$=($-Z)/62,Z=$%62;let W=$F[Z];$=($-Z)/62;let H=$F[$];return String.fromCharCode(X,Q,Y,G,J,K,W,H)}});var jr1=v((Dr1)=>{Object.defineProperty(Dr1,"__esModule",{value:!0});Dr1.nuid=Dr1.NuidImpl=void 0;var Qo6="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",pB=62,yZ0=12,wr1=10,Br1=33,Yo6=333,Or1=yZ0+wr1,ri0=new Uint8Array(pB);for(let $=0;$<pB;$++)ri0[$]=Qo6.charCodeAt($);var bZ0=4294967296,Lr1=BigInt(pB)**BigInt(wr1),yi=Number(Lr1/(1n<<32n)),oi0=Number(Lr1%(1n<<32n));function Go6($){for(let Z=0;Z<$.length;Z++)$[Z]=Math.floor(Math.random()*256)}function Jo6($){if(globalThis?.crypto?.getRandomValues)globalThis.crypto.getRandomValues($);else Go6($)}class ai0{buf;cbuf;seqHi;seqLo;inc;inited;constructor(){this.buf=new Uint8Array(Or1),this.cbuf=new Uint8Array(yZ0),this.inited=!1}init(){this.inited=!0,this.setPre(),this.initSeqAndInc(),this.fillSeq()}initSeqAndInc(){let $=0;do this.seqHi=Math.floor(Math.random()*(yi+1)),this.seqLo=Math.floor(Math.random()*bZ0);while($++<8&&this.seqHi===yi&&this.seqLo>=oi0);if(this.seqHi===yi&&this.seqLo>=oi0)this.seqLo=0;this.inc=Math.random()*(Yo6-Br1)+Br1|0}setPre(){Jo6(this.cbuf);for(let $=0;$<yZ0;$++)this.buf[$]=ri0[this.cbuf[$]%pB]}fillSeq(){let $=this.seqHi,Z=this.seqLo;for(let X=Or1-1;X>=yZ0;X--){let Q=Math.floor($/pB),G=($-Q*pB)*bZ0+Z,J=Math.floor(G/pB),K=G-J*pB;this.buf[X]=ri0[K],$=Q,Z=J}}next(){if(!this.inited)this.init();if(this.seqLo+=this.inc,this.seqLo>=bZ0)this.seqLo-=bZ0,this.seqHi+=1;if(this.seqHi>yi||this.seqHi===yi&&this.seqLo>=oi0)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()}}Dr1.NuidImpl=ai0;Dr1.nuid=new ai0});var Tr1=v((Pr1)=>{Object.defineProperty(Pr1,"__esModule",{value:!0});Pr1.nuid=Pr1.Nuid=void 0;var zr1=jr1();Pr1.Nuid=zr1.NuidImpl;Pr1.nuid=zr1.nuid});var hZ0=v((gZ0)=>{Object.defineProperty(gZ0,"__esModule",{value:!0});gZ0.nuid=gZ0.Nuid=void 0;var Rr1=Tr1();Object.defineProperty(gZ0,"Nuid",{enumerable:!0,get:function(){return Rr1.Nuid}});Object.defineProperty(gZ0,"nuid",{enumerable:!0,get:function(){return Rr1.nuid}})});var tB=v((Ir1)=>{Object.defineProperty(Ir1,"__esModule",{value:!0});Ir1.DEFAULT_HOST=Ir1.DEFAULT_PORT=Ir1.Match=void 0;Ir1.syncIterator=Uo6;Ir1.createInbox=Bo6;var No6=hZ0(),Fo6=eY();Ir1.Match={Exact:"exact",CanonicalMIME:"canonical",IgnoreCase:"insensitive"};function Uo6($){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 Bo6($=""){if($=$||"_INBOX",typeof $!=="string")throw TypeError("prefix must be a string");return $.split(".").forEach((Z)=>{if(Z==="*"||Z===">")throw Fo6.InvalidArgumentError.format("prefix",`cannot have wildcards ('${$}')`)}),`${$}.${No6.nuid.next()}`}Ir1.DEFAULT_PORT=4222;Ir1.DEFAULT_HOST="127.0.0.1"});var gi=v((kr1)=>{Object.defineProperty(kr1,"__esModule",{value:!0});kr1.DataBuffer=void 0;var Mr1=sY();class Vr1{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 Mr1.TE.encode($)}static toAscii($){return Mr1.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}}kr1.DataBuffer=Vr1});var RE=v((_r1)=>{Object.defineProperty(_r1,"__esModule",{value:!0});_r1.LF=_r1.CR=_r1.CRLF=_r1.CR_LF_LEN=_r1.CR_LF=void 0;_r1.setTransportFactory=Po6;_r1.defaultPort=Ao6;_r1.getUrlParseFn=To6;_r1.newTransport=Ro6;_r1.getResolveFn=Io6;_r1.protoLen=Cr1;_r1.extractProtocolMessage=qo6;var Eo6=sY(),jo6=tB(),zo6=gi(),$G;function Po6($){$G=$}function Ao6(){return $G!==void 0&&$G.defaultPort!==void 0?$G.defaultPort:jo6.DEFAULT_PORT}function To6(){return $G!==void 0&&$G.urlParseFn?$G.urlParseFn:void 0}function Ro6(){if(!$G||typeof $G.factory!=="function")throw Error("transport fn is not set");return $G.factory()}function Io6(){return $G!==void 0&&$G.dnsResolveFn?$G.dnsResolveFn:void 0}_r1.CR_LF=`\r
1375
1375
  `;_r1.CR_LF_LEN=_r1.CR_LF.length;_r1.CRLF=zo6.DataBuffer.fromAscii(_r1.CR_LF);_r1.CR=new Uint8Array(_r1.CRLF)[0];_r1.LF=new Uint8Array(_r1.CRLF)[1];function Cr1($){for(let Z=0;Z<$.length;Z++){let X=Z+1;if($.byteLength>X&&$[Z]===_r1.CR&&$[X]===_r1.LF)return X+1}return 0}function qo6($){let Z=Cr1($);if(Z>0){let Q=new Uint8Array($).slice(0,Z);return Eo6.TD.decode(Q)}return""}});var Xn0=v((ur1)=>{Object.defineProperty(ur1,"__esModule",{value:!0});ur1.ipV4=yr1;ur1.isIP=yo6;ur1.parseIP=gr1;var hi=4,IE=16,uZ0=48,br1=57,xr1=65,fo6=70,fr1=97,bo6=102,Zn0=16777215;function yr1($,Z,X,Q){let Y=new Uint8Array(IE);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 yo6($){return gr1($)!==void 0}function gr1($){for(let Z=0;Z<$.length;Z++)switch($[Z]){case".":return hr1($);case":":return go6($)}return}function hr1($){let Z=new Uint8Array(hi);for(let X=0;X<hi;X++){if($.length===0)return;if(X>0){if($[0]!==".")return;$=$.substring(1)}let{n:Q,c:Y,ok:G}=ho6($);if(!G||Q>255)return;$=$.substring(Y),Z[X]=Q}return yr1(Z[0],Z[1],Z[2],Z[3])}function go6($){let Z=new Uint8Array(IE),X=-1;if($.length>=2&&$[0]===":"&&$[1]===":"){if(X=0,$=$.substring(2),$.length===0)return Z}let Q=0;while(Q<IE){let{n:Y,c:G,ok:J}=uo6($);if(!J||Y>65535)return;if(G<$.length&&$[G]==="."){if(X<0&&Q!=IE-hi)return;if(Q+hi>IE)return;let K=hr1($);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+=hi;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<IE){if(X<0)return;let Y=IE-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 ho6($){let Z=0,X=0;for(Z=0;Z<$.length&&uZ0<=$.charCodeAt(Z)&&$.charCodeAt(Z)<=br1;Z++)if(X=X*10+($.charCodeAt(Z)-uZ0),X>=Zn0)return{n:Zn0,c:Z,ok:!1};if(Z===0)return{n:0,c:0,ok:!1};return{n:X,c:Z,ok:!0}}function uo6($){let Z=0,X=0;for(X=0;X<$.length;X++){if(uZ0<=$.charCodeAt(X)&&$.charCodeAt(X)<=br1)Z*=16,Z+=$.charCodeAt(X)-uZ0;else if(fr1<=$.charCodeAt(X)&&$.charCodeAt(X)<=bo6)Z*=16,Z+=$.charCodeAt(X)-fr1+10;else if(xr1<=$.charCodeAt(X)&&$.charCodeAt(X)<=fo6)Z*=16,Z+=$.charCodeAt(X)-xr1+10;else break;if(Z>=Zn0)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 Wn0=v((lr1)=>{Object.defineProperty(lr1,"__esModule",{value:!0});lr1.Servers=lr1.ServerImpl=void 0;lr1.isIPV4OrHostname=cr1;lr1.hostPort=Kn0;var Qn0=RE(),Yn0=bJ(),Gn0=Xn0(),mo6=tB(),io6=eY();function cr1($){if($.indexOf("[")!==-1||$.indexOf("::")!==-1)return!1;if($.indexOf(".")!==-1)return!0;if($.split(":").length<=2)return!0;return!1}function Jn0($){return!cr1($)}function no6($){let X=$.toUpperCase().indexOf("::FFFF:");if(X!==-1&&$.indexOf(".")!==-1){let Q=$.substring(X+7);return Q=Q.replace("[",""),Q.replace("]","")}return $}function Kn0($){if($=$.trim(),$.match(/^(.*:\/\/)(.*)/m))$=$.replace(/^(.*:\/\/)(.*)/gm,"$2");if($=no6($),Jn0($)&&$.indexOf("[")===-1)$=`[${$}]`;let Z=Jn0($)?$.match(/(]:)(\d+)/):$.match(/(:)(\d+)/),X=Z&&Z.length===3&&Z[1]&&Z[2]?parseInt(Z[2]):mo6.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 nb{src;listen;hostname;port;didConnect;reconnects;lastConnect;gossiped;tlsName;resolves;constructor($,Z=!1){this.src=$,this.tlsName="";let X=Kn0($);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,Gn0.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}://${Jn0(Q)?"["+Q+"]":Q}`);G.port=`${this.port}`;let J=new nb(G.host,!1);J.tlsName=this.hostname,Z.push(J)}}if($.randomize)(0,Yn0.shuffle)(Z);return this.resolves=Z,Z}}lr1.ServerImpl=nb;class cZ0{firstSelect;servers;currentServer;tlsName;randomize;constructor($={}){this.firstSelect=!0,this.servers=[],this.tlsName="",this.randomize=$.randomize||!1}setServers($){if(!Array.isArray($)||$.length===0)throw io6.InvalidArgumentError.format("servers","cannot be empty");let Z=(0,Qn0.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}=Kn0(Y),J=X.get(G);if(J)J.gossiped=!1,Q.push(J);else Q.push(new nb(Y))}if(this.randomize)(0,Yn0.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,Gn0.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,Qn0.getUrlParseFn)();$=X?X($):$;let Q=new nb($,Z);if((0,Gn0.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 cZ0.freezeAll(this.servers)}snapshotForHandler(){let $=this.currentServer;if(!$)return this.snapshot();let Z=this.servers.indexOf($);if(Z<=0)return this.snapshot();return cZ0.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,Qn0.getUrlParseFn)(),G=new Map;if($.connect_urls&&$.connect_urls.length>0)$.connect_urls.forEach((K)=>{K=Y?Y(K,Z):K;let W=new nb(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,Yn0.shuffle)(W),this.servers=K?[K,...W]:W}return{added:X,deleted:Q}}}lr1.Servers=cZ0});var lZ0=v((nr1)=>{Object.defineProperty(nr1,"__esModule",{value:!0});nr1.QueuedIteratorImpl=void 0;var Hn0=bJ(),mr1=eY();class ir1{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,Hn0.deferred)(),this.yields=[],this.iterClosed=(0,Hn0.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 mr1.InvalidOperationError("iterator cannot be used when a callback is registered");if(this.yielding)throw new mr1.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,Hn0.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}}nr1.QueuedIteratorImpl=ir1});var Nn0=v((rr1)=>{Object.defineProperty(rr1,"__esModule",{value:!0});rr1.MuxSubscription=void 0;var ro6=tB(),tr1=eY();class or1{baseInbox;reqs;constructor(){this.reqs=new Map}size(){return this.reqs.size}init($){return this.baseInbox=`${(0,ro6.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 tr1.NoRespondersError(Q.requestSubject):null;Q.resolver($,Z)}}}}close(){let $=new tr1.RequestError("connection closed");this.reqs.forEach((Z)=>{Z.resolver($,{})})}}rr1.MuxSubscription=or1});var Fn0=v((er1)=>{Object.defineProperty(er1,"__esModule",{value:!0});er1.Heartbeat=void 0;var ao6=bJ();class sr1{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,ao6.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})}}er1.Heartbeat=sr1});var On0=v((Ya1)=>{Object.defineProperty(Ya1,"__esModule",{value:!0});Ya1.DenoBuffer=Ya1.MAX_SIZE=Ya1.AssertionError=void 0;Ya1.assert=Xa1;Ya1.concat=Qa1;Ya1.append=eo6;Ya1.readAll=$r6;Ya1.writeAll=Zr6;var so6=sY();class Un0 extends Error{constructor($){super($);this.name="AssertionError"}}Ya1.AssertionError=Un0;function Xa1($,Z="Assertion failed."){if(!$)throw new Un0(Z)}var Za1=32768;Ya1.MAX_SIZE=4294967294;function dZ0($,Z,X=0){let Q=Z.byteLength-X;if($.byteLength>Q)$=$.subarray(0,Q);return Z.set($,X),$.byteLength}function Qa1($,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 eo6($,Z){return Qa1($,Uint8Array.of(Z))}class Bn0{_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($){Xa1($<=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=dZ0(this._buf.subarray(this._off),$);return this._off+=Z,Z}writeByte($){return this.write(Uint8Array.of($))}writeString($){return this.write(so6.TE.encode($))}write($){let Z=this._grow($.byteLength);return dZ0($,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)dZ0(this._buf.subarray(this._off),this._buf);else if(Q+$>Ya1.MAX_SIZE)throw Error("The buffer cannot be grown beyond the maximum size.");else{let Y=new Uint8Array(Math.min(2*Q+$,Ya1.MAX_SIZE));dZ0(this._buf.subarray(this._off),Y),this._buf=Y}return this._off=0,this._reslice(Math.min(Z+$,Ya1.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(Za1);while(!0){let Q=this.capacity-this.length<Za1,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}}}Ya1.DenoBuffer=Bn0;function $r6($){let Z=new Bn0;return Z.readFrom($),Z.bytes()}function Zr6($,Z){let X=0;while(X<Z.length)X+=$.write(Z.subarray(X))}});var Dn0=v((Ha1)=>{Object.defineProperty(Ha1,"__esModule",{value:!0});Ha1.cc=Ha1.State=Ha1.Parser=Ha1.Kind=void 0;Ha1.describe=Wr6;var wn0=On0(),Ln0=sY();Ha1.Kind={OK:0,ERR:1,MSG:2,INFO:3,PING:4,PONG:5};function Wr6($){let Z,X="";switch($.kind){case Ha1.Kind.MSG:Z="MSG";break;case Ha1.Kind.OK:Z="OK";break;case Ha1.Kind.ERR:Z="ERR",X=Ln0.TD.decode($.data);break;case Ha1.Kind.PING:Z="PING";break;case Ha1.Kind.PONG:Z="PONG";break;case Ha1.Kind.INFO:Z="INFO",X=Ln0.TD.decode($.data)}return`${Z}: ${X}`}function Ja1(){let $={};return $.sid=-1,$.hdr=-1,$.size=-1,$}var Ka1=48,Hr6=57,pb=67108864;class Wa1{dispatcher;state;as;drop;hdr;ma;argBuf;msgBuf;constructor($){this.dispatcher=$,this.state=Ha1.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 Ha1.State.OP_START:switch(X){case Ha1.cc.M:case Ha1.cc.m:this.state=Ha1.State.OP_M,this.hdr=-1,this.ma=Ja1();break;case Ha1.cc.H:case Ha1.cc.h:this.state=Ha1.State.OP_H,this.hdr=0,this.ma=Ja1();break;case Ha1.cc.P:case Ha1.cc.p:this.state=Ha1.State.OP_P;break;case Ha1.cc.PLUS:this.state=Ha1.State.OP_PLUS;break;case Ha1.cc.MINUS:this.state=Ha1.State.OP_MINUS;break;case Ha1.cc.I:case Ha1.cc.i:this.state=Ha1.State.OP_I;break;default:throw this.fail($.subarray(Z))}break;case Ha1.State.OP_H:switch(X){case Ha1.cc.M:case Ha1.cc.m:this.state=Ha1.State.OP_M;break;default:throw this.fail($.subarray(Z))}break;case Ha1.State.OP_M:switch(X){case Ha1.cc.S:case Ha1.cc.s:this.state=Ha1.State.OP_MS;break;default:throw this.fail($.subarray(Z))}break;case Ha1.State.OP_MS:switch(X){case Ha1.cc.G:case Ha1.cc.g:this.state=Ha1.State.OP_MSG;break;default:throw this.fail($.subarray(Z))}break;case Ha1.State.OP_MSG:switch(X){case Ha1.cc.SPACE:case Ha1.cc.TAB:this.state=Ha1.State.OP_MSG_SPC;break;default:throw this.fail($.subarray(Z))}break;case Ha1.State.OP_MSG_SPC:switch(X){case Ha1.cc.SPACE:case Ha1.cc.TAB:continue;default:this.state=Ha1.State.MSG_ARG,this.as=Z}break;case Ha1.State.MSG_ARG:switch(X){case Ha1.cc.CR:this.drop=1;break;case Ha1.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=Ha1.State.MSG_PAYLOAD,Z=this.as+this.ma.size-1;break}default:if(this.argBuf)this.argBuf.writeByte(X)}break;case Ha1.State.MSG_PAYLOAD:if(this.msgBuf)if(this.msgBuf.length>=this.ma.size){let Q=this.msgBuf.bytes({copy:!1});this.dispatcher.push({kind:Ha1.Kind.MSG,msg:this.ma,data:Q}),this.argBuf=void 0,this.msgBuf=void 0,this.state=Ha1.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:Ha1.Kind.MSG,msg:this.ma,data:$.subarray(this.as,Z)}),this.argBuf=void 0,this.msgBuf=void 0,this.state=Ha1.State.MSG_END;break;case Ha1.State.MSG_END:switch(X){case Ha1.cc.NL:this.drop=0,this.as=Z+1,this.state=Ha1.State.OP_START;break;default:continue}break;case Ha1.State.OP_PLUS:switch(X){case Ha1.cc.O:case Ha1.cc.o:this.state=Ha1.State.OP_PLUS_O;break;default:throw this.fail($.subarray(Z))}break;case Ha1.State.OP_PLUS_O:switch(X){case Ha1.cc.K:case Ha1.cc.k:this.state=Ha1.State.OP_PLUS_OK;break;default:throw this.fail($.subarray(Z))}break;case Ha1.State.OP_PLUS_OK:switch(X){case Ha1.cc.NL:this.dispatcher.push({kind:Ha1.Kind.OK}),this.drop=0,this.state=Ha1.State.OP_START;break}break;case Ha1.State.OP_MINUS:switch(X){case Ha1.cc.E:case Ha1.cc.e:this.state=Ha1.State.OP_MINUS_E;break;default:throw this.fail($.subarray(Z))}break;case Ha1.State.OP_MINUS_E:switch(X){case Ha1.cc.R:case Ha1.cc.r:this.state=Ha1.State.OP_MINUS_ER;break;default:throw this.fail($.subarray(Z))}break;case Ha1.State.OP_MINUS_ER:switch(X){case Ha1.cc.R:case Ha1.cc.r:this.state=Ha1.State.OP_MINUS_ERR;break;default:throw this.fail($.subarray(Z))}break;case Ha1.State.OP_MINUS_ERR:switch(X){case Ha1.cc.SPACE:case Ha1.cc.TAB:this.state=Ha1.State.OP_MINUS_ERR_SPC;break;default:throw this.fail($.subarray(Z))}break;case Ha1.State.OP_MINUS_ERR_SPC:switch(X){case Ha1.cc.SPACE:case Ha1.cc.TAB:continue;default:this.state=Ha1.State.MINUS_ERR_ARG,this.as=Z}break;case Ha1.State.MINUS_ERR_ARG:switch(X){case Ha1.cc.CR:this.drop=1;break;case Ha1.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:Ha1.Kind.ERR,data:Q}),this.drop=0,this.as=Z+1,this.state=Ha1.State.OP_START;break}default:if(this.argBuf)this.argBuf.write(Uint8Array.of(X))}break;case Ha1.State.OP_P:switch(X){case Ha1.cc.I:case Ha1.cc.i:this.state=Ha1.State.OP_PI;break;case Ha1.cc.O:case Ha1.cc.o:this.state=Ha1.State.OP_PO;break;default:throw this.fail($.subarray(Z))}break;case Ha1.State.OP_PO:switch(X){case Ha1.cc.N:case Ha1.cc.n:this.state=Ha1.State.OP_PON;break;default:throw this.fail($.subarray(Z))}break;case Ha1.State.OP_PON:switch(X){case Ha1.cc.G:case Ha1.cc.g:this.state=Ha1.State.OP_PONG;break;default:throw this.fail($.subarray(Z))}break;case Ha1.State.OP_PONG:switch(X){case Ha1.cc.NL:this.dispatcher.push({kind:Ha1.Kind.PONG}),this.drop=0,this.state=Ha1.State.OP_START;break}break;case Ha1.State.OP_PI:switch(X){case Ha1.cc.N:case Ha1.cc.n:this.state=Ha1.State.OP_PIN;break;default:throw this.fail($.subarray(Z))}break;case Ha1.State.OP_PIN:switch(X){case Ha1.cc.G:case Ha1.cc.g:this.state=Ha1.State.OP_PING;break;default:throw this.fail($.subarray(Z))}break;case Ha1.State.OP_PING:switch(X){case Ha1.cc.NL:this.dispatcher.push({kind:Ha1.Kind.PING}),this.drop=0,this.state=Ha1.State.OP_START;break}break;case Ha1.State.OP_I:switch(X){case Ha1.cc.N:case Ha1.cc.n:this.state=Ha1.State.OP_IN;break;default:throw this.fail($.subarray(Z))}break;case Ha1.State.OP_IN:switch(X){case Ha1.cc.F:case Ha1.cc.f:this.state=Ha1.State.OP_INF;break;default:throw this.fail($.subarray(Z))}break;case Ha1.State.OP_INF:switch(X){case Ha1.cc.O:case Ha1.cc.o:this.state=Ha1.State.OP_INFO;break;default:throw this.fail($.subarray(Z))}break;case Ha1.State.OP_INFO:switch(X){case Ha1.cc.SPACE:case Ha1.cc.TAB:this.state=Ha1.State.OP_INFO_SPC;break;default:throw this.fail($.subarray(Z))}break;case Ha1.State.OP_INFO_SPC:switch(X){case Ha1.cc.SPACE:case Ha1.cc.TAB:continue;default:this.state=Ha1.State.INFO_ARG,this.as=Z}break;case Ha1.State.INFO_ARG:switch(X){case Ha1.cc.CR:this.drop=1;break;case Ha1.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:Ha1.Kind.INFO,data:Q}),this.drop=0,this.as=Z+1,this.state=Ha1.State.OP_START;break}default:if(this.argBuf)this.argBuf.writeByte(X)}break;default:throw this.fail($.subarray(Z))}}if((this.state===Ha1.State.MSG_ARG||this.state===Ha1.State.MINUS_ERR_ARG||this.state===Ha1.State.INFO_ARG)&&!this.argBuf)this.argBuf=new wn0.DenoBuffer($.subarray(this.as,Z-this.drop));if(this.state===Ha1.State.MSG_PAYLOAD&&!this.msgBuf){if(!this.argBuf)this.cloneMsgArg();this.msgBuf=new wn0.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 wn0.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 Ha1.cc.SPACE:case Ha1.cc.TAB:case Ha1.cc.CR:case Ha1.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],pb);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],pb);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}: ${Ln0.TD.decode($)}`)}processHeaderMsgArgs($){let Z=[],X=-1;for(let Q=0;Q<$.length;Q++)switch($[Q]){case Ha1.cc.SPACE:case Ha1.cc.TAB:case Ha1.cc.CR:case Ha1.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],pb),this.ma.size=this.protoParseInt(Z[3],pb);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],pb),this.ma.size=this.protoParseInt(Z[4],pb);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]<Ka1||$[Q]>Hr6)return-1;X=X*10+($[Q]-Ka1)}return Z!==void 0&&X>Z?-1:X}}Ha1.Parser=Wa1;Ha1.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};Ha1.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 nZ0=v((Fa1)=>{Object.defineProperty(Fa1,"__esModule",{value:!0});Fa1.MsgHdrsImpl=void 0;Fa1.canonicalMIMEHeaderKey=jn0;Fa1.headers=Ur6;var Na1=sY(),yJ=tB(),iZ0=eY();function jn0($){let N=!0,F=Array($.length);for(let U=0;U<$.length;U++){let B=$.charCodeAt(U);if(B===58||B<33||B>126)throw iZ0.InvalidArgumentError.format("header",`'${$[U]}' is not a valid character in a header name`);if(N&&97<=B&&B<=122)B-=32;else if(!N&&65<=B&&B<=90)B+=32;F[U]=B,N=B==45}return String.fromCharCode(...F)}function Ur6($=0,Z=""){if($===0&&Z!=="")throw iZ0.InvalidArgumentError.format("code","is required");else if($>0&&Z==="")throw iZ0.InvalidArgumentError.format("description","is required");return new tb($,Z)}var En0="NATS/1.0";class tb{_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 tb,Q=Na1.TD.decode($).split(`\r
1376
1376
  `),Y=Q[0];if(Y!==En0){let G=Y.replace(En0,"").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 $=En0;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
1377
1377
  ${Z}: ${X[Q]}`;return`${$}\r
@@ -2267,7 +2267,7 @@ You are the Usage Manager. You analyze how this workspace is actually used \u201
2267
2267
  d. Report the failing tool/connection, error pattern, and suggest the fix or owner.
2268
2268
  </workflows>`,rH8={id:"studio-usage-manager",title:"Usage Manager",icon:"icon://BarChart10?color=blue",description:"Analyze usage, costs, and clean up idle agents and connections",selectedTools:["MONITORING_STATS","MONITORING_LOGS_LIST","MONITORING_LOG_GET","MONITORING_THREAD_USAGE","COLLECTION_VIRTUAL_MCP_LIST","COLLECTION_VIRTUAL_MCP_GET","COLLECTION_VIRTUAL_MCP_DELETE","VIRTUAL_MCP_LAST_USED_LIST","COLLECTION_CONNECTIONS_LIST","COLLECTION_CONNECTIONS_GET","COLLECTION_CONNECTIONS_DELETE","ORGANIZATION_MEMBER_LIST"],selectedConnections:null,selectedPrompts:[],instructions:oD4,getId:HX.USAGE_MANAGER}});function _01($){return cj.find((Z)=>$.startsWith(`${Z.id}_`))??null}async function rD4($,Z){if("resolveRuntime"in $)return $.resolveRuntime(Z);return{instructions:$.instructions,selectedTools:$.selectedTools}}async function uG0({virtualMcp:$,agentId:Z=$.id,organizationId:X,ctx:Q}){let Y=_01(Z);if(!Y)return $;let G=await rD4(Y,{orgId:X,ctx:Q}),J=G.selectedTools?[...G.selectedTools]:null;return{...$,metadata:{...$.metadata??{},instructions:G.instructions},connections:$.connections.map((K)=>({...K,selected_tools:J}))}}async function cG0($,Z){if(!("checklist"in $))return[];return Promise.all($.checklist.map(async(X)=>({label:X.label,activeForm:X.activeForm,action:X.action,completed:await X.isCompleted(Z),alwaysSuggest:X.alwaysSuggest})))}async function sH8($,Z,X){let Q={self:$$.SELF($),registry:$$.REGISTRY($),"community-registry":$$.COMMUNITY_REGISTRY($)};await Promise.all(cj.map(async(Y)=>{let G=Y.getId($),J=await X.findById(G,$),W=(Y.selectedConnections??["self"]).map((H)=>Q[H]);if(J){await X.update(G,Z,{metadata:{...J.metadata??{},instructions:Y.instructions},connections:W.map((H)=>{let N=J.connections.find((F)=>F.connection_id===H);return{connection_id:H,selected_tools:Y.selectedTools?[...Y.selectedTools]:null,selected_resources:N?.selected_resources??null,selected_prompts:N?.selected_prompts??null}})});return}await X.create($,Z,{title:Y.title,description:Y.description,icon:Y.icon,status:"active",pinned:!1,metadata:{instructions:Y.instructions},connections:W.map((H)=>({connection_id:H,selected_tools:Y.selectedTools?[...Y.selectedTools]:null,selected_resources:null,selected_prompts:Y.selectedPrompts?[...Y.selectedPrompts]:null}))},{id:G})}))}var cj;var Fh=w(()=>{T6();xH8();bH8();gH8();dH8();iH8();pH8();oH8();aH8();cj=[lH8,vH8,yH8,mH8,fH8,nH8,tH8,rH8]});import{DBOS as lG0}from"@dbos-inc/dbos-sdk";async function aD4($){let Z=U6(),X=new ty(Z.db);await sH8($.orgId,$.createdBy,X)}async function sD4($){let Z=U6(),X=new ty(Z.db);for(let Q of cj){let Y=Q.getId($.orgId),G=await X.findById(Y,$.orgId);if(!G)continue;let J=Q.selectedPrompts?[...Q.selectedPrompts]:null;if(G.connections.every((W)=>{let H=W.selected_prompts;if(J===null)return H===null;if(H===null)return!1;if(H.length!==J.length)return!1;return H.every((N,F)=>N===J[F])}))continue;await X.update(Y,$.createdBy,{connections:G.connections.map((W)=>({connection_id:W.connection_id,selected_tools:W.selected_tools,selected_resources:W.selected_resources,selected_prompts:J}))})}}async function eD4($){await lG0.runStep(()=>aD4($),{name:"installStudioPack"}),await lG0.runStep(()=>sD4($),{name:"backfillSelectedPrompts"})}async function v01($){await lG0.startWorkflow($E4,{workflowID:`install-studio-pack:${ZE4}:${$.orgId}`})($)}async function eH8(){let Z=await U6().db.selectFrom("member").select(["organizationId","userId"]).orderBy("createdAt","asc").execute(),X=new Map;for(let Q of Z)if(!X.has(Q.organizationId))X.set(Q.organizationId,Q.userId);await Promise.all(Array.from(X).map(async([Q,Y])=>{try{await v01({orgId:Q,createdBy:Y})}catch(G){console.error("[studio-pack-backfill] enqueue failed",{orgId:Q},G)}}))}var $E4,ZE4="v5";var dG0=w(()=>{QX();nr0();Fh();$E4=lG0.registerWorkflow(eD4,{name:"installStudioPackWorkflow"})});class Qo{constructor(){this._messageQueue=[]}static createLinkedPair(){let $=new Qo,Z=new Qo;return $._otherTransport=Z,Z._otherTransport=$,[$,Z]}async start(){while(this._messageQueue.length>0){let $=this._messageQueue.shift();this.onmessage?.($.message,$.extra)}}async close(){let $=this._otherTransport;this._otherTransport=void 0,await $?.close(),this.onclose?.()}async send($,Z){if(!this._otherTransport)throw Error("Not connected");if(this._otherTransport.onmessage)this._otherTransport.onmessage($,{authInfo:Z?.authInfo});else this._otherTransport._messageQueue.push({message:$,extra:{authInfo:Z?.authInfo}})}}import{z as B4}from"zod";var mG0,$N8,ZN8,XN8,QN8,YN8,GN8,JN8,KN8,WN8;var Uh=w(()=>{mG0=B4.record(B4.string(),B4.array(B4.string())),$N8=B4.object({id:B4.string().describe("Unique identifier for the API key"),name:B4.string().describe("Human-readable name for the API key"),userId:B4.string().describe("ID of the user who owns this API key"),permissions:mG0.describe('Permissions granted to this API key. Format: { resource: [actions] } where resource is "self" for management tools or "conn_<UUID>" for connection-specific tools. Example: { "self": ["API_KEY_CREATE"], "conn_abc123": ["SEND_MESSAGE"] }'),expiresAt:B4.string().datetime().nullable().optional().describe("Expiration date of the API key (ISO 8601)"),createdAt:B4.string().datetime().describe("When the API key was created (ISO 8601)")}),ZN8=B4.object({name:B4.string().min(1).max(64).describe("Human-readable name for the API key"),permissions:mG0.describe(`Permissions to grant (REQUIRED \u2014 there is no implicit default). Format: { resource: [actions] }. Resource is "self" for management tools or "conn_<UUID>" for connection-specific tools. Actions are tool names (e.g., ["ORGANIZATION_GET"]) or ["*"] for all. Example: { "self": ["ORGANIZATION_GET", "COLLECTION_CONNECTIONS_LIST"] }. The key is authorized solely by this allowlist; the creator's role does not widen it.`),expiresIn:B4.number().positive().optional().describe("Expiration time in seconds. If not provided, key never expires."),metadata:B4.record(B4.string(),B4.unknown()).optional().describe("Additional metadata to store with the API key")}),XN8=B4.object({id:B4.string().describe("Unique identifier for the API key"),name:B4.string().describe("Human-readable name for the API key"),key:B4.string().describe("The actual API key value. STORE THIS SECURELY - it will not be shown again!"),permissions:mG0.describe('Permissions granted to this API key. Format: { resource: [actions] } where resource is "self" for management tools or "conn_<UUID>" for connection-specific tools'),expiresAt:B4.string().datetime().nullable().optional().describe("Expiration date of the API key (ISO 8601)"),createdAt:B4.string().datetime().describe("When the API key was created (ISO 8601)")}),QN8=B4.object({}),YN8=B4.object({items:B4.array($N8).describe("List of API keys (without key values)")}),GN8=B4.object({keyId:B4.string().describe("ID of the API key to update"),name:B4.string().min(1).max(64).optional().describe("New name for the API key"),permissions:mG0.optional().describe('New permissions. Format: { resource: [actions] } where resource is "self" for management tools or "conn_<UUID>" for connection-specific tools. Actions are tool names or "*" for all. Example: { "self": ["API_KEY_CREATE"] }. Replaces existing permissions.'),metadata:B4.record(B4.string(),B4.unknown()).optional().describe("New metadata. Replaces existing metadata.")}),JN8=B4.object({item:$N8.describe("The updated API key (without key value)")}),KN8=B4.object({keyId:B4.string().describe("ID of the API key to delete")}),WN8=B4.object({success:B4.boolean().describe("Whether the deletion was successful"),keyId:B4.string().describe("ID of the deleted API key")})});var x01;var HN8=w(()=>{h4();n0();Uh();x01=m({name:"API_KEY_CREATE",description:"Create an API key with scoped permissions. The key value is returned only once \u2014 store it immediately.",annotations:{title:"Create API Key",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!1,openWorldHint:!1},inputSchema:ZN8,outputSchema:XN8,handler:async($,Z)=>{G0(Z),await Z.access.check();let X=await Z.boundAuth.apiKey.create({name:$.name,permissions:$.permissions,expiresIn:$.expiresIn,metadata:{...$.metadata,organization:Z.organization}}),Q=X.expiresAt?X.expiresAt instanceof Date?X.expiresAt.toISOString():X.expiresAt:null,Y=X.createdAt instanceof Date?X.createdAt.toISOString():X.createdAt,G=D1(Z);if(G)n1.capture({distinctId:G,event:"api_key_created",...Z.organization?.id?{groups:{organization:Z.organization.id}}:{},properties:{key_id:X.id,key_name:X.name??$.name,organization_id:Z.organization?.id,has_expiry:!!Q}});return{id:X.id,name:X.name??$.name,key:X.key,permissions:X.permissions??{},expiresAt:Q,createdAt:Y}}})});var f01;var NN8=w(()=>{h4();n0();Uh();f01=m({name:"API_KEY_DELETE",description:"Delete and instantly revoke an API key. Cannot be undone.",annotations:{title:"Delete API Key",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:KN8,outputSchema:WN8,handler:async($,Z)=>{G0(Z),await Z.access.check();let X=D1(Z);if(!X)throw Error("User ID required to delete API key");let Y=(await Z.boundAuth.apiKey.list())?.find((W)=>W.id===$.keyId);if(!Y)throw Error("API key not found");let J=Y.metadata?.organization?.id,K=Z.organization?.id;if(J!==K)throw Error("Cannot delete API key from another organization");if(await Z.boundAuth.apiKey.delete($.keyId),K)n1.capture({distinctId:X,event:"api_key_deleted",groups:{organization:K},properties:{key_id:$.keyId,organization_id:K}});return{success:!0,keyId:$.keyId}}})});var b01;var FN8=w(()=>{n0();Uh();b01=m({name:"API_KEY_LIST",description:"List API keys for the current user in the current organization. Returns metadata only \u2014 key values are never shown after creation.",annotations:{title:"List API Keys",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:QN8,outputSchema:YN8,handler:async($,Z)=>{G0(Z),await Z.access.check();let X=await Z.boundAuth.apiKey.list(),Q=Z.organization?.id;return{items:(X??[]).filter((G)=>{return G.metadata?.organization?.id===Q}).map((G)=>({id:G.id,name:G.name??"Unnamed Key",userId:G.userId,permissions:G.permissions??{},expiresAt:G.expiresAt?G.expiresAt instanceof Date?G.expiresAt.toISOString():G.expiresAt:null,createdAt:G.createdAt instanceof Date?G.createdAt.toISOString():G.createdAt}))}}})});var y01;var UN8=w(()=>{n0();Uh();y01=m({name:"API_KEY_UPDATE",description:"Update an API key's name, permissions, or metadata. The key value cannot be changed or retrieved.",annotations:{title:"Update API Key",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:GN8,outputSchema:JN8,handler:async($,Z)=>{if(G0(Z),await Z.access.check(),!D1(Z))throw Error("User ID required to update API key");let Y=(await Z.boundAuth.apiKey.list())?.find((H)=>H.id===$.keyId);if(!Y)throw Error(`API key not found: ${$.keyId}`);let J=Y.metadata?.organization?.id,K=Z.organization?.id;if(J!==K)throw Error("Cannot update API key from another organization");let W=await Z.boundAuth.apiKey.update({keyId:$.keyId,name:$.name,permissions:$.permissions,metadata:{...$.metadata,organization:Z.organization}});if(!W)throw Error(`Failed to update API key: ${$.keyId}`);return{item:{id:W.id,name:W.name??$.name??"Unnamed Key",userId:W.userId,permissions:W.permissions??{},expiresAt:W.expiresAt?W.expiresAt instanceof Date?W.expiresAt.toISOString():W.expiresAt:null,createdAt:W.createdAt instanceof Date?W.createdAt.toISOString():W.createdAt}}}})});var BN8=w(()=>{HN8();NN8();FN8();UN8();Uh()});function Kw($){let Z=$.trim();if(!Z)return{ok:!1,error:"Enter a website URL."};let X=QE4.test(Z),Q=YE4.test(Z),Y=GE4.test(Z);if(X&&!Q&&!Y)return{ok:!1,error:"Use an HTTP or HTTPS website URL."};let G=Q?Z:`https://${Z}`,J;try{J=new URL(G)}catch{return{ok:!1,error:"Enter a valid website URL."}}if(J.protocol!=="http:"&&J.protocol!=="https:")return{ok:!1,error:"Use an HTTP or HTTPS website URL."};let K=J.hostname.split(".");if(K.length<2||K.some((W)=>!W||!JE4.test(W)))return{ok:!1,error:"Enter a valid website URL."};return J.protocol="https:",{ok:!0,value:J.origin}}var QE4,YE4,GE4,JE4;var Yo=w(()=>{QE4=/^[a-zA-Z][a-zA-Z\d+.-]*:/,YE4=/^[a-zA-Z][a-zA-Z\d+.-]*:\/\//,GE4=/^[^\s/:?#]+\.[^\s/:?#]+:\d+(?:[/?#]|$)/,JE4=/^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$/i});import{z as FQ}from"zod";function YH($){if($.baseUrl)return $.baseUrl.replace(/\/+$/,"");return(($.settings??o0()).reportsInternalApiUrl??KE4).replace(/\/+$/,"")}function wN8($={}){return`${YH($)}/api/v2/mcp`}function lj($){let Z=$.apiKey??($.settings??o0()).reportsInternalApiKey;if(!Z)throw Error("REPORTS_INTERNAL_API_KEY (or the legacy COMMERCE_DISCOVERY_INTERNAL_API_KEY) is required to set up reports.");return Z}function nG0($){return new URL($).hostname}function HE4($){return $==="ownership_unverified"||$==="already_claimed_by_other_org"}function NE4($,Z={}){switch($){case"ownership_unverified":{let X=Z.email?`O e-mail ${Z.email}`:"Este e-mail",Q=Z.domain?` ${Z.domain}`:" este site";return`${X} n\xE3o tem permiss\xE3o para reivindicar${Q}. Use um e-mail do dom\xEDnio do site ou pe\xE7a ao suporte para autorizar seu dom\xEDnio.`}case"already_claimed_by_other_org":return"Este site j\xE1 pertence a outra organiza\xE7\xE3o. Fale com o suporte para transferir o acesso.";case"unknown":return"N\xE3o foi poss\xEDvel configurar o Commerce Discovery. Tente novamente ou fale com o suporte.";default:return $}}async function FE4($){let Z=await $.text().catch(()=>"");if(!Z)return"unknown";try{let X=JSON.parse(Z);return HE4(X.error)?X.error:"unknown"}catch{return"unknown"}}async function iG0($){let Z=await $.text().catch(()=>"");if(!Z)return;try{return JSON.parse(Z)}catch{return}}async function g01($){let Z=`Commerce Discovery auth failed with status ${$.status}.`,X=await $.text().catch(()=>"");if(!X)return Z;try{let Q=JSON.parse(X),Y=typeof Q.error==="string"?Q.error:typeof Q.message==="string"?Q.message:null;return Y?`Commerce Discovery auth failed: ${Y}.`:Z}catch{return Z}}async function DN8($,Z={}){let X=YH(Z),Q=lj(Z),Y=Z.fetchImpl??fetch,G=nG0($.siteUrl),J=`${X}/api/v2/internal/diagnostics/${encodeURIComponent(G)}/upgrade`,K=await Y(J,{method:"POST",headers:{Authorization:`Bearer ${Q}`,"Content-Type":"application/json"},body:JSON.stringify({org_id:$.orgId,...$.orgName?{name:$.orgName}:{},...$.email?{email:$.email}:{},...$.reportUrl?{report_url:$.reportUrl}:{}})});if(!K.ok){let H=await FE4(K);throw new LN8(H,{email:$.email,domain:G})}let W=WE4.safeParse(await iG0(K));if(!W.success)throw Error("Commerce Discovery auth response did not include a token.");return{authorizationToken:W.data.token}}async function EN8($,Z={}){let X=YH(Z),Q=lj(Z),Y=Z.fetchImpl??fetch,G=nG0($.siteUrl),J=`${X}/api/v2/internal/diagnostics/${encodeURIComponent(G)}/bindings`,K=await Y(J,{method:"POST",headers:{Authorization:`Bearer ${Q}`,"Content-Type":"application/json"},body:JSON.stringify({org_id:$.orgId,provider:$.provider,resource_id:$.resourceId})});if(K.status===409)return{ok:!1,reason:"resource_already_bound",detail:"Este recurso j\xE1 est\xE1 vinculado a outra loja. Se ele \xE9 seu, fale com o suporte para revis\xE3o manual."};if(K.status===422){let H=ON8.safeParse(await iG0(K));return{ok:!1,reason:H.success?H.data.reason??"verification_failed":"verification_failed",detail:(H.success?H.data.detail:void 0)??"N\xE3o foi poss\xEDvel verificar o acesso a este recurso."}}if(!K.ok)throw Error(await g01(K));let W=ON8.safeParse(await iG0(K));if(!W.success||!W.data.binding)throw Error("Commerce Discovery bind response did not include a binding.");return{ok:!0,resourceId:W.data.binding.resource_id,evidence:W.data.binding.evidence}}async function jN8($,Z={}){let X=YH(Z),Q=lj(Z),Y=Z.fetchImpl??fetch,G=nG0($.siteUrl),J=`${X}/api/v2/internal/diagnostics/${encodeURIComponent(G)}/run`,K=await Y(J,{method:"POST",headers:{Authorization:`Bearer ${Q}`,"Content-Type":"application/json"},body:JSON.stringify({org_id:$.orgId,...$.githubRepo?{github_repo:$.githubRepo}:{}})});if(K.status===409)return{triggered:!1,reason:"not_upgraded"};if(!K.ok)throw Error(await g01(K));return{triggered:!0}}async function zN8($,Z={}){let X=YH(Z),Q=lj(Z),Y=Z.fetchImpl??fetch,G=nG0($.siteUrl),J=`${X}/api/v2/internal/diagnostics/${encodeURIComponent(G)}/connections/status?org_id=${encodeURIComponent($.orgId)}`,K=await Y(J,{method:"GET",headers:{Authorization:`Bearer ${Q}`}});if(K.status===404||K.status===409)return{providers:{},claimed:!1};if(!K.ok)throw Error(await g01(K));let W=UE4.safeParse(await iG0(K));return{providers:W.success?W.data.providers:{},claimed:!0}}var KE4,WE4,ON8,LN8,UE4;var dj=w(()=>{T6();C8();KE4=new URL(J98).origin,WE4=FQ.object({token:FQ.string().min(1)}),ON8=FQ.object({binding:FQ.object({resource_id:FQ.string(),evidence:FQ.string()}).optional(),reason:FQ.string().optional(),detail:FQ.string().optional()});LN8=class LN8 extends Error{code;constructor($,Z={}){super(NE4($,Z));this.name="CommerceDiscoveryClaimError",this.code=$}};UE4=FQ.object({providers:FQ.record(FQ.string(),FQ.object({connected:FQ.boolean(),via:FQ.enum(["oauth","sa"]).nullable(),resource:FQ.string().nullable()}))})});import{z as BG}from"zod";var BE4,OE4,h01;var PN8=w(()=>{Yo();n0();dj();BE4=BG.object({siteUrl:BG.string().min(1).describe("Website URL of the store being bound."),provider:BG.enum(["ga4","gsc"]).describe("Which Google source to bind: ga4 (Analytics) or gsc (Search Console)."),resourceId:BG.string().min(1).describe("The resource id the client typed: GA4 numeric property id, or GSC site (sc-domain:example.com or https://example.com/).")}),OE4=BG.discriminatedUnion("ok",[BG.object({ok:BG.literal(!0),resourceId:BG.string(),evidence:BG.string()}),BG.object({ok:BG.literal(!1),reason:BG.string(),detail:BG.string()})]),h01=m({name:"COMMERCE_DISCOVERY_BIND",description:"Bind a GA4 property or GSC site to the org's store via the shared service account (consent-free lane). The client grants deco-reader@\u2026 access to the resource and provides its id; Commerce Discovery verifies the resource belongs to this domain before persisting. Returns ok:false with an actionable pt-BR detail when verification fails or the resource is already bound elsewhere.",annotations:{title:"Bind Commerce Discovery Data Source",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!0,openWorldHint:!0},inputSchema:BE4,outputSchema:OE4,handler:async($,Z)=>{G0(Z);let X=X0(Z);await Z.access.check();let Q=Kw($.siteUrl);if(!Q.ok)throw Error(Q.error);return EN8({siteUrl:Q.value,orgId:X.id,provider:$.provider,resourceId:$.resourceId.trim()})}})});import{z as GH}from"zod";var wE4,LE4,u01;var AN8=w(()=>{Yo();n0();dj();wE4=GH.object({siteUrl:GH.string().min(1).describe("Website URL of the store to inspect.")}),LE4=GH.object({providers:GH.record(GH.string(),GH.object({connected:GH.boolean(),via:GH.enum(["oauth","sa"]).nullable(),resource:GH.string().nullable()})),claimed:GH.boolean().describe("False when the site isn't claimed/upgraded for this org \u2014 providers is then empty because the status is unreadable, NOT because nothing is connected. The UI must warn instead of rendering existing bindings as disconnected.")}),u01=m({name:"COMMERCE_DISCOVERY_CONNECTION_STATUS",description:"Read per-provider connection status (ga4/gsc/vtex) for the org's store \u2014 { connected, via: oauth|sa, resource }. The single source of truth for whether a data source is connected, unifying the OAuth (Studio vault) and shared-SA binding lanes. Read-only.",annotations:{title:"Commerce Discovery Connection Status",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!0},inputSchema:wE4,outputSchema:LE4,handler:async($,Z)=>{G0(Z);let X=X0(Z);await Z.access.check();let Q=Kw($.siteUrl);if(!Q.ok)throw Error(Q.error);return zN8({siteUrl:Q.value,orgId:X.id})}})});import{z as Go}from"zod";var DE4,EE4,c01;var TN8=w(()=>{T6();Yo();n0();dj();DE4=Go.object({siteUrl:Go.string().min(1).describe("Website URL to run the diagnostic for.")}),EE4=Go.object({triggered:Go.boolean(),reason:Go.string().optional()}),c01=m({name:"COMMERCE_DISCOVERY_RUN",description:"Trigger the Commerce Discovery diagnostic run for the current organization's store. Call once the data sources (GA4/GSC/VTEX) are connected \u2014 this run resolves credentials and produces the enriched report.",annotations:{title:"Run Commerce Discovery",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!0,openWorldHint:!0},inputSchema:DE4,outputSchema:EE4,handler:async($,Z)=>{G0(Z);let X=X0(Z);await Z.access.check();let Q=Kw($.siteUrl);if(!Q.ok)throw Error(Q.error);let Y=$$.COMMERCE_DISCOVERY(X.id),J=(await Z.storage.connections.findById(Y,X.id))?.configuration_state,K=J&&typeof J==="object"&&typeof J.github_repo==="string"&&J.github_repo.length>0?J.github_repo:void 0;return jN8({siteUrl:Q.value,orgId:X.id,githubRepo:K})}})});var Ww=w(()=>{a70()});import{z as JH}from"zod";async function AE4($,Z,X,Q){let Y=await $.storage.connections.findById(Z,X);if(Y)return Y;throw Q}async function TE4($,Z,X,Q){let Y=await $.storage.virtualMcps.findById(Z,X);if(Y)return Y;throw Q}var l01,jE4=3600000,zE4,PE4,d01;var RN8=w(()=>{T6();Yo();n0();gW();Ww();dj();l01=LQ0,zE4=JH.object({siteUrl:JH.string().min(1).describe("Website URL to configure.")}),PE4=JH.object({connection:GX,virtualMcp:JX,reportApp:JH.object({connectionId:JH.string(),virtualMcpId:JH.string(),toolName:JH.literal(l01)}),created:JH.object({connection:JH.boolean(),virtualMcp:JH.boolean()})});d01=m({name:"COMMERCE_DISCOVERY_SETUP",description:"Create or return the Commerce Discovery connection and virtual MCP for the current organization.",annotations:{title:"Set Up Commerce Discovery",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:zE4,outputSchema:PE4,handler:async($,Z)=>{G0(Z);let X=X0(Z);await Z.access.check("COLLECTION_CONNECTIONS_CREATE");let Q=D1(Z);if(!Q)throw Error("User ID required to set up Commerce Discovery");let Y=Kw($.siteUrl);if(!Y.ok)throw Error(Y.error);let G=$$.COMMERCE_DISCOVERY(X.id),J=EQ0(X.id),K=new URLSearchParams({virtualmcpid:J,main:`app:${G}:${l01}`}),W={email:Z.auth.user?.email,reportUrl:`${Z.baseUrl}/${encodeURIComponent(X.slug??X.id)}/${crypto.randomUUID()}?${K.toString()}`},H=await Z.storage.connections.findById(G,X.id),N={connection:!1,virtualMcp:!1},F=await DN8({siteUrl:Y.value,orgId:X.id,orgName:X.name,...W}),U=wN8();if(H)console.log("[commerce-discovery] syncing connection to claimed site",{orgId:X.id,siteUrl:Y.value,connectionId:G}),H=await Z.storage.connections.update(H.id,{connection_url:U,connection_token:F.authorizationToken,metadata:{...H.metadata??{},siteUrl:Y.value}});else{console.log("[commerce-discovery] creating connection",{orgId:X.id,siteUrl:Y.value,connectionId:G});try{let D=j98(X.id,F.authorizationToken,U);H=await Z.storage.connections.create({...D,metadata:{...D.metadata??{},siteUrl:Y.value},organization_id:X.id,created_by:Q}),N.connection=!0}catch(D){H=await AE4(Z,G,X.id,D)}}let B=await Z.storage.virtualMcps.findById(J,X.id);if(!B){console.log("[commerce-discovery] creating virtual MCP",{orgId:X.id,siteUrl:Y.value,connectionId:H.id,virtualMcpId:J});try{B=await Z.storage.virtualMcps.create(X.id,Q,z98(X.id,H.id),{id:J}),N.virtualMcp=!0}catch(D){B=await TE4(Z,J,X.id,D)}}if(!B.pinned)B=await Z.storage.virtualMcps.update(B.id,Q,{pinned:!0});let O=await Z.db.selectFrom("organization").select(["createdAt"]).where("id","=",X.id).executeTakeFirst();if((O?Date.now()-new Date(O.createdAt).getTime():Number.POSITIVE_INFINITY)<jE4){let E=(await Z.storage.organizationSettings.get(X.id))?.flags,j={};if(E?.reports_only==null)j.reports_only=!0;if(Object.keys(j).length>0)await Z.storage.organizationSettings.upsert(X.id,{flags:j})}return{connection:H,virtualMcp:B,reportApp:{connectionId:H.id,virtualMcpId:B.id,toolName:l01},created:N}}})});var IN8=w(()=>{PN8();AN8();TN8();RN8()});var m01=v((qN8)=>{Object.defineProperty(qN8,"__esModule",{value:!0});qN8.kvPrefix=qN8.KvWatchInclude=void 0;qN8.KvWatchInclude={LastValue:"",AllHistory:"history",UpdatesOnly:"updates"};qN8.kvPrefix="KV_"});var gN8=v((bN8)=>{Object.defineProperty(bN8,"__esModule",{value:!0});bN8.KvStatusImpl=bN8.Bucket=bN8.Kvm=bN8.kvOperationHdr=void 0;bN8.Base64KeyCodec=qE4;bN8.NoopKvCodecs=i01;bN8.defaultBucketOpts=kN8;bN8.validateKey=SN8;bN8.validateSearchKey=CN8;bN8.hasWildcards=_N8;bN8.validateBucket=pG0;var o5=ZG(),B5=j70(),t5=m01();function qE4(){let $=(Z,X)=>{let Q=[];for(let Y of Z.split("."))switch(Y){case">":case"*":Q.push(Y);break;default:Q.push(X(Y));break}return Q.join(".")};return{encode(Z){return $(Z,btoa)},decode(Z){return $(Z,atob)}}}function i01(){return{key:{encode($){return $},decode($){return $}},value:{encode($){return typeof $==="string"?new TextEncoder().encode($):$},decode($){return $}}}}function kN8(){return{replicas:1,history:1,timeout:2000,max_bytes:-1,maxValueSize:-1,codec:i01(),storage:B5.StorageType.File}}bN8.kvOperationHdr="KV-Operation";var VN8="$KV",ME4=/^[-/=.\w]+$/,VE4=/^[-/=.>*\w]+$/,kE4=/^[-\w]+$/;function SN8($){if($.startsWith(".")||$.endsWith(".")||!ME4.test($))throw Error(`invalid key: ${$}`)}function CN8($){if($.startsWith(".")||$.endsWith(".")||$.includes("..")||!VE4.test($))throw Error(`invalid key: ${$}`)}function _N8($){if($.startsWith(".")||$.endsWith("."))throw Error(`invalid key: ${$}`);let Z=$.split("."),X=!1;for(let Q=0;Q<Z.length;Q++)switch(Z[Q]){case"*":X=!0;break;case">":if(Q!==Z.length-1)throw Error(`invalid key: ${$}`);X=!0;break;default:}return X}function pG0($){if(!kE4.test($))throw Error(`invalid bucket name: ${$}`)}class vN8{js;constructor($){this.js=(0,B5.toJetStreamClient)($)}create($,Z={}){return this.#$($,Z)}open($,Z={}){return Z.bindOnly=!0,this.#$($,Z)}#$($,Z={}){let{ok:X,min:Q}=this.js.nc.features.get(o5.Feature.JS_KV);if(!X)return Promise.reject(Error(`kv is only supported on servers ${Q} or better`));if(Z.bindOnly)return Bh.bind(this.js,$,Z);return Bh.create(this.js,$,Z)}list(){let $=(X)=>{let Y=X.streams.filter((J)=>{return J.config.name.startsWith(t5.kvPrefix)});Y.forEach((J)=>{J.config.sealed=J.config.sealed||!1,J.config.deny_delete=J.config.deny_delete||!1,J.config.deny_purge=J.config.deny_purge||!1,J.config.allow_rollup_hdrs=J.config.allow_rollup_hdrs||!1});let G="";if(Y.length)G=this.js.nc.info?.cluster??"";return Y.map((J)=>{return new tG0(J,G)})},Z=`${this.js.prefix}.STREAM.LIST`;return new B5.ListerImpl(Z,$,this.js)}}bN8.Kvm=vN8;class Bh{js;jsm;stream;bucket;direct;codec;prefix;editPrefix;useJsPrefix;_prefixLen;constructor($,Z,X){pG0($),this.js=Z,this.jsm=X,this.bucket=$,this.prefix=VN8,this.editPrefix="",this.useJsPrefix=!1,this._prefixLen=0}static async create($,Z,X={}){pG0(Z);let Q=await $.jetstreamManager(),Y=new Bh(Z,$,Q);return await Y.init(X),Y}static async bind($,Z,X={}){let Q=$.getOptions()?.checkAPI||X.bindOnly===!1,Y=await $.jetstreamManager(Q),G={config:{allow_direct:X.allow_direct}};pG0(Z);let J=new Bh(Z,$,Y);return G.config.name=X.streamName??J.bucketName(),Object.assign(J,G),J.stream=G.config.name,J.codec=X.codec||i01(),J.direct=G.config.allow_direct??!1,J.initializePrefixes(G),J}async init($={}){let Z=Object.assign(kN8(),$);this.codec=Z.codec;let X={};if(this.stream=X.name=$.streamName??this.bucketName(),X.retention=B5.RetentionPolicy.Limits,X.max_msgs_per_subject=Z.history,Z.max_bytes)X.max_bytes=Z.max_bytes;if(X.max_msg_size=Z.maxValueSize,X.storage=Z.storage,$.placement)X.placement=$.placement;if($.republish)X.republish=$.republish;if($.description)X.description=$.description;if($.markerTTL)X.allow_msg_ttl=!0,X.subject_delete_marker_ttl=(0,o5.nanos)(Z.markerTTL);if($.mirror){let H=Object.assign({},$.mirror);if(!H.name.startsWith(t5.kvPrefix))H.name=`${t5.kvPrefix}${H.name}`;X.mirror=H,X.mirror_direct=!0}else if($.sources){let H=$.sources.map((N)=>{let F=Object.assign({},N),U=F.name.startsWith(t5.kvPrefix)?F.name.substring(t5.kvPrefix.length):F.name;if(!F.name.startsWith(t5.kvPrefix))F.name=`${t5.kvPrefix}${F.name}`;if(!N.external&&U!==this.bucket)F.subject_transforms=[{src:`$KV.${U}.>`,dest:`$KV.${this.bucket}.>`}];return F});X.sources=H,X.subjects=[this.subjectForBucket()]}else X.subjects=[this.subjectForBucket()];if($.metadata)X.metadata=$.metadata;if(typeof $.compression==="boolean")X.compression=$.compression?B5.StoreCompression.S2:B5.StoreCompression.None;let Q=this.js.nc,Y=Q.getServerVersion(),G=Y?(0,o5.compare)(Y,(0,o5.parseSemVer)("2.7.2"))>=0:!1;X.discard=G?B5.DiscardPolicy.New:B5.DiscardPolicy.Old;let{ok:J,min:K}=Q.features.get(o5.Feature.JS_ALLOW_DIRECT);if(!J&&$.allow_direct===!0){let H=Y?`${Y.major}.${Y.minor}.${Y.micro}`:"unknown";return Promise.reject(Error(`allow_direct is not available on server version ${H} - requires ${K}`))}if($.allow_direct=typeof $.allow_direct==="boolean"?$.allow_direct:J,X.allow_direct=$.allow_direct,this.direct=X.allow_direct,X.num_replicas=Z.replicas,Z.ttl)X.max_age=(0,o5.nanos)(Z.ttl);X.allow_rollup_hdrs=!0;let W;try{if(W=await this.jsm.streams.info(X.name),!W.config.allow_direct&&this.direct===!0)this.direct=!1}catch(H){if(H.message==="stream not found")W=await this.jsm.streams.add(X);else throw H}this.initializePrefixes(W)}initializePrefixes($){this._prefixLen=0,this.prefix=`$KV.${this.bucket}`,this.useJsPrefix=this.js.apiPrefix!=="$JS.API";let{mirror:Z}=$.config;if(Z){let X=Z.name;if(X.startsWith(t5.kvPrefix))X=X.substring(t5.kvPrefix.length);if(Z.external&&Z.external.api!==""){let Q=Z.name.substring(t5.kvPrefix.length);this.useJsPrefix=!1,this.prefix=`$KV.${Q}`,this.editPrefix=`${Z.external.api}.$KV.${X}`}else this.editPrefix=this.prefix}}bucketName(){return this.stream??`${t5.kvPrefix}${this.bucket}`}subjectForBucket(){return`${this.prefix}.${this.bucket}.>`}subjectForKey($,Z=!1){let X=[];if(Z){if(this.useJsPrefix)X.push(this.js.apiPrefix);if(this.editPrefix!=="")X.push(this.editPrefix);else X.push(this.prefix)}else if(this.prefix)X.push(this.prefix);return X.push($),X.join(".")}fullKeyName($){if(this.prefix!=="")return`${this.prefix}.${$}`;return`${VN8}.${this.bucket}.${$}`}get prefixLen(){if(this._prefixLen===0)this._prefixLen=this.prefix.length+1;return this._prefixLen}encodeKey($){let Z=[];for(let X of $.split("."))switch(X){case">":case"*":Z.push(X);break;default:Z.push(this.codec.key.encode(X));break}return Z.join(".")}decodeKey($){let Z=[];for(let X of $.split("."))switch(X){case">":case"*":Z.push(X);break;default:Z.push(this.codec.key.decode(X));break}return Z.join(".")}validateKey=SN8;validateSearchKey=CN8;hasWildcards=_N8;close(){return Promise.resolve()}dataLen($,Z){let X=Z?Z.get(B5.JsHeaders.MessageSizeHdr)||"":"";if(X!=="")return parseInt(X,10);return $.length}smToEntry($){return new xN8(this.bucket,this.prefixLen,$,this.codec)}jmToWatchEntry($,Z){return new fN8(this.bucket,this.prefixLen,$,Z,this.codec)}async create($,Z,X){let Q;try{let G={previousSeq:0},J=await this._put($,Z,G,X);return Promise.resolve(J)}catch(G){if(Q=G,G instanceof B5.JetStreamApiError){let J=G;if(J.code!==B5.JetStreamApiCodes.StreamWrongLastSequence&&J.code!==B5.JetStreamApiCodes.StreamWrongLastSequenceUnknown)return Promise.reject(G)}}let Y=0;try{let G=await this.get($);if(G?.operation==="DEL"||G?.operation==="PURGE")return Y=G!==null?G.revision:0,this._put($,Z,{previousSeq:Y},X);else return Promise.reject(Q)}catch(G){return Promise.reject(G)}}update($,Z,X,Q){if(X<=0)throw Error("version must be greater than 0");return this.put($,Z,{previousSeq:X,timeout:Q})}async _put($,Z,X={},Q){let Y=this.encodeKey($);this.validateKey(Y),Z=this.codec.value.encode(Z);let G={timeout:X?.timeout};if(X.previousSeq!==void 0){let J=(0,o5.headers)();G.headers=J,J.set(B5.PubHeaders.ExpectedLastSubjectSequenceHdr,`${X.previousSeq}`)}if(Q)(G.headers||(0,o5.headers)()).set(B5.PubHeaders.MessageTTL,Q);try{return(await this.js.publish(this.subjectForKey(Y,!0),Z,G)).seq}catch(J){return Promise.reject(J)}}put($,Z,X={}){return this._put($,Z,X)}async get($,Z){let X=this.encodeKey($);this.validateKey(X);let Q={last_by_subj:this.subjectForKey(X)};if(Z&&Z.revision>0)Q={seq:Z.revision};let Y=null;try{if(this.direct)Y=await this.jsm.direct.getMessage(this.bucketName(),Q);else Y=await this.jsm.streams.getMessage(this.bucketName(),Q);if(Y===null)return null;let G=this.smToEntry(Y);if(G.rawKey!==X)return null;return G}catch(G){throw G}}purge($,Z){return this._deleteOrPurge($,"PURGE",Z)}delete($,Z){return this._deleteOrPurge($,"DEL",Z)}async purgeDeletes($=1800000){let Z=[],X=await this.history({key:">"});await(async()=>{for await(let J of X)if(J.operation==="DEL"||J.operation==="PURGE")Z.push(J)})().then(),X.stop();let Q=Date.now()-$,Y=Z.map((J)=>{let K=this.subjectForKey(J.key);if(J.created.getTime()>=Q)return this.jsm.streams.purge(this.stream,{filter:K,keep:1});else return this.jsm.streams.purge(this.stream,{filter:K,keep:0})}),G=await Promise.all(Y);return G.unshift({success:!0,purged:0}),G.reduce((J,K)=>{return J.purged+=K.purged,J})}async _deleteOrPurge($,Z,X){if(!this.hasWildcards($))return this._doDeleteOrPurge($,Z,X);let Q=await this.keys($),Y=[];for await(let G of Q)if(Y.push(this._doDeleteOrPurge(G,Z)),Y.length===100)await Promise.all(Y),Y.length=0;if(Y.length>0)await Promise.all(Y)}async _doDeleteOrPurge($,Z,X){let Q=this.encodeKey($);this.validateKey(Q);let Y=(0,o5.headers)();if(Y.set(bN8.kvOperationHdr,Z),Z==="PURGE"){let G=X;if(Y.set(B5.JsHeaders.RollupHdr,B5.JsHeaders.RollupValueSubject),typeof G?.ttl==="string"&&G.ttl!=="")Y.set(B5.PubHeaders.MessageTTL,`${G.ttl}`)}if(X?.previousSeq)Y.set(B5.PubHeaders.ExpectedLastSubjectSequenceHdr,`${X.previousSeq}`);await this.js.publish(this.subjectForKey(Q,!0),o5.Empty,{headers:Y})}_buildCC($,Z,X={}){let Y=(!Array.isArray($)?[$]:$).map((K)=>{let W=this.encodeKey(K);return this.validateSearchKey(K),this.fullKeyName(W)}),G=B5.DeliverPolicy.LastPerSubject;if(Z===t5.KvWatchInclude.AllHistory)G=B5.DeliverPolicy.All;if(Z===t5.KvWatchInclude.UpdatesOnly)G=B5.DeliverPolicy.New;let J=void 0;if(Y.length===1)J=Y[0],Y=void 0;return Object.assign({deliver_policy:G,ack_policy:B5.AckPolicy.None,filter_subjects:Y,filter_subject:J,flow_control:!0,idle_heartbeat:(0,o5.nanos)(5000)},X)}remove($){return this.purge($)}async history($={}){let Z=$.key??">",X={};X.headers_only=$.headers_only||!1;let Q=new o5.QueuedIteratorImpl,Y=()=>{Q.stop()},G=this._buildCC(Z,t5.KvWatchInclude.AllHistory,X),J=await this.js.consumers.getPushConsumer(this.stream,G);if(Q._data=J,(await J.info(!0)).num_pending===0)return Q.push(Y),Q;let W=await J.consume({callback:(H)=>{let N=this.jmToWatchEntry(H,!1);if(Q.push(N),Q.received++,H.info.pending===0)Q.push(Y)}});return W.closed().then(()=>{Q.push(Y)}),(async()=>{for await(let H of W.status())switch(H.type){case"heartbeat":Q.push(()=>{Q.stop()});break}})().then(),Q.iterClosed.then(()=>{W.stop()}),Q}canSetWatcherName(){let $=this.js.nc,{ok:Z}=$.features.get(o5.Feature.JS_NEW_CONSUMER_CREATE_API);return Z}async watch($={}){let Z=$.key??">",X=new o5.QueuedIteratorImpl,Q={};Q.headers_only=$.headers_only||!1;let Y=t5.KvWatchInclude.LastValue;if($.include===t5.KvWatchInclude.AllHistory)Y=t5.KvWatchInclude.AllHistory;else if($.include===t5.KvWatchInclude.UpdatesOnly)Y=t5.KvWatchInclude.UpdatesOnly;let G=$.ignoreDeletes===!0,J=this._buildCC(Z,Y,Q);if(J.name=`KV_WATCHER_${o5.nuid.next()}`,$.resumeFromRevision&&$.resumeFromRevision>0)J.deliver_policy=B5.DeliverPolicy.StartSequence,J.opt_start_seq=$.resumeFromRevision;let K=await this.js.consumers.getPushConsumer(this.stream,J),H=(await K.info(!0)).num_pending,N=Y===t5.KvWatchInclude.UpdatesOnly||H===0;X._data=K;let F=0,U=await K.consume({callback:(B)=>{if(!N)F++,N=F>=H;let O=this.jmToWatchEntry(B,N);if(G&&O.operation==="DEL")return;X.push(O),X.received++}});return X.iterClosed.then(()=>{U.stop()}),U.closed().then(()=>{X.push(()=>{X.stop()})}),X}async keys($=">"){let Z=new o5.QueuedIteratorImpl,X=this._buildCC($,t5.KvWatchInclude.LastValue,{headers_only:!0}),Q=await this.js.consumers.getPushConsumer(this.stream,X);if((await Q.info()).num_pending===0)return Z.stop(),Z;Z._data=Q;let G=await Q.consume({callback:(J)=>{let K=J.headers?.get(bN8.kvOperationHdr);if(K!=="DEL"&&K!=="PURGE"){let W=this.decodeKey(J.subject.substring(this.prefixLen));Z.push(W)}if(J.info.pending===0)G.stop()}});return(async()=>{for await(let J of G.status())switch(J.type){case"heartbeat":Z.push(()=>{Z.stop()});break}})().then(),G.closed().then(()=>{Z.push(()=>{Z.stop()})}),Z.iterClosed.then(()=>{G.stop()}),Z}purgeBucket($){return this.jsm.streams.purge(this.bucketName(),$)}destroy(){return this.jsm.streams.delete(this.bucketName())}async status(){let Z=this.js.nc.info?.cluster??"",X=this.bucketName(),Q=await this.jsm.streams.info(X);return new tG0(Q,Z)}}bN8.Bucket=Bh;class tG0{si;cluster;constructor($,Z=""){this.si=$,this.cluster=Z}get bucket(){return this.si.config.name.startsWith(t5.kvPrefix)?this.si.config.name.substring(t5.kvPrefix.length):this.si.config.name}get values(){return this.si.state.messages}get history(){return this.si.config.max_msgs_per_subject}get ttl(){return(0,o5.millis)(this.si.config.max_age)}get markerTTL(){if(typeof this.si.config.subject_delete_marker_ttl==="number")return(0,o5.millis)(this.si.config.subject_delete_marker_ttl);return 0}get bucket_location(){return this.cluster}get backingStore(){return this.si.config.storage}get storage(){return this.si.config.storage}get replicas(){return this.si.config.num_replicas}get description(){return this.si.config.description??""}get maxBucketSize(){return this.si.config.max_bytes}get maxValueSize(){return this.si.config.max_msg_size}get max_bytes(){return this.si.config.max_bytes}get placement(){return this.si.config.placement||{cluster:"",tags:[]}}get placementCluster(){return this.si.config.placement?.cluster??""}get republish(){return this.si.config.republish??{src:"",dest:""}}get streamInfo(){return this.si}get size(){return this.si.state.bytes}get metadata(){return this.si.config.metadata??{}}get compression(){if(this.si.config.compression)return this.si.config.compression!==B5.StoreCompression.None;return!1}}bN8.KvStatusImpl=tG0;class xN8{bucket;sm;prefixLen;codec;constructor($,Z,X,Q){this.bucket=$,this.prefixLen=Z,this.sm=X,this.codec=Q}get rawKey(){return this.sm.subject.substring(this.prefixLen)}get key(){return this.codec.key.decode(this.rawKey)}get value(){return this.codec.value.decode(this.sm.data)}get delta(){return 0}get created(){return this.sm.time}get revision(){return this.sm.seq}get operation(){if(this.sm.header?.has("Nats-Marker-Reason")){if(this.sm.header?.get("Nats-Marker-Reason")==="MaxAge")return"PURGE"}return this.sm.header?.get(bN8.kvOperationHdr)||"PUT"}get length(){let $=this.sm.header.get(B5.JsHeaders.MessageSizeHdr)||"";if($!=="")return parseInt($,10);return this.sm.data.length}json($){return JSON.parse(o5.TD.decode(this.value),$)}string(){return o5.TD.decode(this.value)}}class fN8{bucket;sm;prefixLen;update;codec;constructor($,Z,X,Q,Y){this.bucket=$,this.prefixLen=Z,this.sm=X,this.update=Q,this.codec=Y}get rawKey(){return this.sm.subject.substring(this.prefixLen)}get key(){return this.codec.key.decode(this.rawKey)}get value(){return this.codec.value.decode(this.sm.data)}get created(){return new Date((0,o5.millis)(this.sm.info.timestampNanos))}get revision(){return this.sm.seq}get operation(){if(this.sm.headers?.has("Nats-Marker-Reason")){if(this.sm.headers?.get("Nats-Marker-Reason")==="MaxAge")return"PURGE"}return this.sm.headers?.get(bN8.kvOperationHdr)||"PUT"}get delta(){return this.sm.info.pending}get length(){let $=this.sm.headers?.get(B5.JsHeaders.MessageSizeHdr)||"";if($!=="")return parseInt($,10);return this.sm.data.length}get isUpdate(){return this.update}json($){return JSON.parse(o5.TD.decode(this.value),$)}string(){return o5.TD.decode(this.value)}}});var n01=v((NK)=>{Object.defineProperty(NK,"__esModule",{value:!0});NK.validateKey=NK.validateBucket=NK.NoopKvCodecs=NK.Kvm=NK.defaultBucketOpts=NK.Bucket=NK.Base64KeyCodec=NK.KvWatchInclude=NK.kvPrefix=void 0;var hN8=m01();Object.defineProperty(NK,"kvPrefix",{enumerable:!0,get:function(){return hN8.kvPrefix}});Object.defineProperty(NK,"KvWatchInclude",{enumerable:!0,get:function(){return hN8.KvWatchInclude}});var mj=gN8();Object.defineProperty(NK,"Base64KeyCodec",{enumerable:!0,get:function(){return mj.Base64KeyCodec}});Object.defineProperty(NK,"Bucket",{enumerable:!0,get:function(){return mj.Bucket}});Object.defineProperty(NK,"defaultBucketOpts",{enumerable:!0,get:function(){return mj.defaultBucketOpts}});Object.defineProperty(NK,"Kvm",{enumerable:!0,get:function(){return mj.Kvm}});Object.defineProperty(NK,"NoopKvCodecs",{enumerable:!0,get:function(){return mj.NoopKvCodecs}});Object.defineProperty(NK,"validateBucket",{enumerable:!0,get:function(){return mj.validateBucket}});Object.defineProperty(NK,"validateKey",{enumerable:!0,get:function(){return mj.validateKey}})});var p01=v((Hw)=>{Object.defineProperty(Hw,"__esModule",{value:!0});Hw.NoopKvCodecs=Hw.Kvm=Hw.defaultBucketOpts=Hw.Bucket=Hw.Base64KeyCodec=Hw.KvWatchInclude=void 0;var uE4=n01();Object.defineProperty(Hw,"KvWatchInclude",{enumerable:!0,get:function(){return uE4.KvWatchInclude}});var Ko=n01();Object.defineProperty(Hw,"Base64KeyCodec",{enumerable:!0,get:function(){return Ko.Base64KeyCodec}});Object.defineProperty(Hw,"Bucket",{enumerable:!0,get:function(){return Ko.Bucket}});Object.defineProperty(Hw,"defaultBucketOpts",{enumerable:!0,get:function(){return Ko.defaultBucketOpts}});Object.defineProperty(Hw,"Kvm",{enumerable:!0,get:function(){return Ko.Kvm}});Object.defineProperty(Hw,"NoopKvCodecs",{enumerable:!0,get:function(){return Ko.NoopKvCodecs}})});function oG0(){let $=new TextEncoder,Z=new TextDecoder;return{encode:(X)=>$.encode(JSON.stringify(X)),decode:(X)=>JSON.parse(Z.decode(X))}}class o01{options;kv=null;codec=oG0();constructor($){this.options=$}async init(){let $=this.options.getJetStream();if(!$)return;this.kv=await new cN8.Kvm($).create(lE4,{storage:uN8.StorageType.Memory})}async get($,Z){if(!this.kv)return null;try{let X=await this.kv.get(`${$}.${Z}`);if(!X?.value?.length)return null;if(X.operation==="DEL"||X.operation==="PURGE")return null;return this.codec.decode(X.value)}catch{return null}}async set($,Z,X){if(!this.kv)return;try{await this.kv.put(`${$}.${Z}`,this.codec.encode(X))}catch{}}async invalidate($){if(!this.kv)return;await Promise.all(["tools","resources","prompts"].map(async(X)=>{try{await this.kv.delete(`${X}.${$}`)}catch{}}))}teardown(){this.kv=null}}function dE4($,Z,X){if(X<=0)return!0;if($===void 0)return!0;return Z-$>=X}function rG0($){return $ instanceof C1&&$.code===y1.MethodNotFound}function mE4($){return $ instanceof C1&&$.code===-32000&&/connection closed/i.test($.message)}async function Fw($,Z,X,Q,Y,G=0){if(!Q)try{return await X()}catch(H){if(rG0(H))return[];return Wo.add(1,{type:$,outcome:"error",stage:"no_cache"}),null}let J=`${$}:${Z}`,K=await Q.get($,Z);if(K===null)try{let H=await X();return Q.set($,Z,H).catch(()=>{}),t01.set(J,Date.now()),Wo.add(1,{type:$,outcome:"miss",stage:"miss"}),H}catch(H){if(rG0(H))return Q.set($,Z,[]).catch(()=>{}),[];return Wo.add(1,{type:$,outcome:"error",stage:"miss"}),null}if(Wo.add(1,{type:$,outcome:"hit",stage:"hit"}),dE4(t01.get(J),Date.now(),G)&&!aG0.has(J)){aG0.add(J),t01.set(J,Date.now());let H=X().then((N)=>Q.set($,Z,N)).catch((N)=>{if(rG0(N)||mE4(N)){if(rG0(N))Q.set($,Z,[]).catch(()=>{});return}Wo.add(1,{type:$,outcome:"error",stage:"revalidation"})}).finally(()=>aG0.delete(J));Y?.(H)}return K}function r01($){lN8=$}function E9(){return lN8}var uN8,cN8,Wo,lE4="DECOCMS_MCP_LISTS",aG0,t01,Nw=30000,lN8=null;var OG=w(()=>{L9();r$();uN8=k(xE(),1),cN8=k(p01(),1),Wo=g8.createCounter("mcp_list_cache.fetches",{description:"MCP list cache fetch outcomes (hit, miss, error)",unit:"{fetches}"});aG0=new Set;g8.createObservableGauge("mcp_list_cache.pending_revalidations",{description:"In-flight background MCP list revalidations on this pod",unit:"{revalidations}"}).addCallback(($)=>$.observe(aG0.size));t01=new Map});async function a01($,Z,X){let Q=new AbortController,Y,G=new Promise((K,W)=>{Y=setTimeout(()=>{Q.abort(),W(new dN8($.id,X))},X)}),J=(async()=>{let K=await I5($,Z,!0);try{return(await K.listTools(void 0,{timeout:X,signal:Q.signal})).tools}finally{await K.close().catch(()=>{})}})();J.catch(()=>{});try{return await Promise.race([J,G])}finally{if(Y)clearTimeout(Y)}}var dN8;var mN8=w(()=>{Ho();dN8=class dN8 extends Error{constructor($,Z){super(`listTools timed out after ${Z}ms for connection ${$}`);this.name="ListToolsTimeoutError"}}});function sG0($){return(Z)=>{if(Z instanceof C1&&Z.code===y1.MethodNotFound)return $;throw Z}}var iN8=w(()=>{L9()});function eG0($,Z,X){let Q=Uw($,Z,X,E9()??void 0),Y=oE(Q,{name:"studio-mcp-server",version:"1.0.0"},{capabilities:iE4,toolCallTimeoutMs:ny});Y.server.setRequestHandler(JO,async()=>{return await Q.listResources().catch(sG0({resources:[]}))}),Y.server.setRequestHandler(KO,async()=>{return await Q.listResourceTemplates().catch(sG0({resourceTemplates:[]}))}),Y.server.setRequestHandler(WO,async()=>{return await Q.listPrompts().catch(sG0({prompts:[]}))});let G=Y.close.bind(Y);return Y.close=async()=>{await G(),await Q.close().catch(()=>{})},Y}var iE4;var nN8=w(()=>{YQ();L9();No();OG();iN8();iE4={tools:{},resources:{},prompts:{}}});var VF=w(()=>{Ho();mN8();nN8()});function Fo($,Z,X){if(Z.some((Q)=>Q!=="*"&&Q.startsWith("SELF::"))&&$.SELF===void 0)$.SELF={value:`${X}_self`}}function Uo($,Z){let X=new Map;for(let Q of Z){if(Q==="*")continue;let[Y,G]=iY0(Q);if(!nE4.has(G))continue;let J=kt(Y,$);if(typeof J!=="object"||J===null||!("value"in J))continue;let K=J.value;if(typeof K!=="string")continue;X.set(`${K}:${G}`,{targetConnectionId:K,scope:G})}return[...X.values()]}async function Bo($,Z,X,Q){for(let G of Z){if(G==="*")continue;let[J]=iY0(G),K=kt(J,$);if(K===void 0||K===null)throw Error(`Scope references key "${J}" but it's not present in state`)}let Y=XG8($,Z);for(let G of Y){if(G.endsWith("_self"))continue;let J=await Q.storage.connections.findById(G);if(!J||J.organization_id!==X)throw Error(`Referenced connection not found: ${G}`);try{await Q.access.check(G)}catch(K){throw Error(`Access denied to referenced connection: ${G}. ${K.message}`)}}}var nE4;var s01=w(()=>{$e0();qQ0();nE4=new Set([RQ0,IQ0])});import{z as pN8}from"zod";var pE4,tE4,e01;var tN8=w(()=>{h4();n0();C8();OG();VF();s01();Xo();gW();pE4=pN8.object({data:d70.describe("Data for the new connection (id is auto-generated if not provided)")}),tE4=pN8.object({item:GX.describe("The created connection entity")}),e01=m({name:"COLLECTION_CONNECTIONS_CREATE",description:"Create a new MCP connection. Auto-fetches and caches the server's tool list.",annotations:{title:"Create Connection",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!1,openWorldHint:!1},inputSchema:pE4,outputSchema:tE4,handler:async($,Z)=>{G0(Z);let X=X0(Z);await Z.access.check();let Q=D1(Z);if(!Q)throw Error("User ID required to create connection");let Y={...$.data,organization_id:X.id,created_by:Q};if(Y.id){if((await Z.storage.connections.findById(Y.id))?.organization_id===X.id)throw Error("Connection already exists in organization")}if(Y.connection_type==="VIRTUAL"){let F=Uy(Y.connection_url);if(!F)throw Error("VIRTUAL connection requires connection_url in format: virtual://$virtual_mcp_id");let U=await Z.storage.virtualMcps.findById(F);if(!U)throw Error(`Virtual MCP not found: ${F}`);if(U.organization_id!==X.id)throw Error("Virtual MCP does not belong to the current organization");Y.connection_url=By(F)}if(Y.connection_type==="STDIO"&&!o0().localMode)throw Error("STDIO connections are only available in local mode (--local-mode).");let G=await Jw({id:`pending-${Date.now()}`,title:Y.title,connection_type:Y.connection_type,connection_url:Y.connection_url,connection_token:Y.connection_token,connection_headers:Y.connection_headers}).catch(()=>null),J=G?.tools?.length?G.tools:null,K=G?.scopes?.length?G.scopes:Y.configuration_scopes??null,W=Y.configuration_state??null;if(W&&K?.length)Fo(W,K,X.id),await Bo(W,K,X.id,Z);let H=await Z.storage.connections.createNew({...Y,tools:null,configuration_state:W,configuration_scopes:K}),N=W&&K?.length?Uo(W,K):[];if(N.length>0){let F;try{await Z.storage.connectionCredentialVault.replaceGrantsForSubject({organizationId:X.id,subjectConnectionId:H.id,createdBy:Q,grants:N});let{plaintextToken:U,record:B}=await Z.storage.connectionCredentialVault.createOrRotateWorkloadToken({organizationId:X.id,subjectConnectionId:H.id});F=B.id,await(await I5(H,Z,!1)).callTool({name:"ON_MCP_CONFIGURATION",arguments:{state:W,scopes:K,firstRun:!0,vault:{baseUrl:Z.baseUrl,org:X.slug??X.id,subjectConnectionId:H.id,token:U}}})}catch(U){if(F)await Z.storage.connectionCredentialVault.revokeWorkloadToken({organizationId:X.id,subjectConnectionId:H.id,tokenId:F});throw await Z.storage.connections.delete(H.id),U}}if(J)E9()?.set("tools",H.id,J).catch(()=>{});return n1.capture({distinctId:Q,event:"connection_created",groups:{organization:X.id},properties:{connection_id:H.id,connection_type:H.connection_type,app_name:H.app_name??null,organization_id:X.id,tools_count:J?.length??0}}),{item:H}}})});import{z as M3}from"zod/v4";import{z as oN8}from"zod/v4";import{z as $30}from"zod/v4";import{z as KH}from"zod/v4";import{z as sE4}from"zod/v4";import{z as ij}from"zod/v4";import{z as WH}from"zod/v4";import{z as sZ}from"zod/v4";import{z as rN8}from"zod/v4";import{z as Q30}from"zod/v4";import{z as Pj4}from"zod/v4";import{z as aN8}from"zod/v4";import{z as Z30}from"zod/v4";import{z as Sj4}from"zod/v4";function Oo($,Z){if($===Z)return!0;if($==null||Z==null)return $===Z;if(typeof $!==typeof Z)return!1;if(Array.isArray($)&&Array.isArray(Z)){if($.length!==Z.length)return!1;return $.every((X,Q)=>Oo(X,Z[Q]))}if(typeof $==="object"&&typeof Z==="object"){let X=Object.keys($),Q=Object.keys(Z);if(X.length!==Q.length)return!1;return X.every((Y)=>Q.includes(Y)&&Oo($[Y],Z[Y]))}return!1}function Ej4(){return($)=>{if(!Array.isArray($))return!0;let Z=[];return $.every((X)=>{if(Z.some((Y)=>Oo(X,Y)))return!1;return Z.push(X),!0})}}function X30($,Z){return $.safeParse(Z).success}function V7($){if(typeof $==="boolean")return $?M3.any():M3.never();let Z={};for(let Y of xj4)Y.apply(Z,$);let X=[];if(Z.string!==!1)X.push(Z.string||M3.string());if(Z.number!==!1)X.push(Z.number||M3.number());if(Z.boolean!==!1)X.push(Z.boolean||M3.boolean());if(Z.null!==!1)X.push(Z.null||M3.null());if(Z.array!==!1)X.push(Z.array||M3.array(M3.any()));if(Z.tuple!==!1&&Z.tuple!==void 0)X.push(Z.tuple);if(Z.object!==!1)if(Z.object)X.push(Z.object);else{let Y=M3.custom((G)=>{return typeof G==="object"&&G!==null&&!Array.isArray(G)},"Must be an object, not an array");X.push(Y)}if(Z.file!==!1&&Z.file!==void 0)X.push(Z.file);let Q;if(X.length===0)Q=M3.never();else if(X.length===1)Q=X[0];else if(!Object.keys($).some((G)=>G!=="$schema"&&G!=="title"&&G!=="description"))Q=M3.any();else Q=M3.union(X);for(let Y of fj4)Q=Y.apply(Q,$);return Q}var oE4=class{apply($,Z){if(!Z.type)return;let X=Array.isArray(Z.type)?Z.type:[Z.type],Q=new Set(X);if(!Q.has("string"))$.string=!1;if(!Q.has("number")&&!Q.has("integer"))$.number=!1;if(!Q.has("boolean"))$.boolean=!1;if(!Q.has("null"))$.null=!1;if(!Q.has("array"))$.array=!1;if(!Q.has("object"))$.object=!1;if(Q.has("integer")&&$.number!==!1){let Y=$.number||oN8.number();if(Y instanceof oN8.ZodNumber)$.number=Y.int()}}},rE4=class{apply($,Z){if(Z.const===void 0)return;let X=Z.const;if($.string=!1,$.number=!1,$.boolean=!1,$.null=!1,$.array=!1,$.object=!1,typeof X==="string")$.string=$30.literal(X);else if(typeof X==="number")$.number=$30.literal(X);else if(typeof X==="boolean")$.boolean=$30.literal(X);else if(X===null)$.null=$30.null();else if(Array.isArray(X))$.array=void 0;else if(typeof X==="object")$.object=void 0}},aE4=class{apply($,Z){if(!Z.enum)return;if(Z.enum.length===0){if(!Z.type)$.string=!1,$.number=!1,$.boolean=!1,$.null=!1,$.array=!1,$.object=!1;return}let X={string:Z.enum.filter((Q)=>typeof Q==="string"),number:Z.enum.filter((Q)=>typeof Q==="number"),boolean:Z.enum.filter((Q)=>typeof Q==="boolean"),null:Z.enum.filter((Q)=>Q===null),array:Z.enum.filter((Q)=>Array.isArray(Q)),object:Z.enum.filter((Q)=>typeof Q==="object"&&Q!==null&&!Array.isArray(Q))};$.string=this.createTypeSchema(X.string,"string"),$.number=this.createTypeSchema(X.number,"number"),$.boolean=this.createTypeSchema(X.boolean,"boolean"),$.null=X.null.length>0?KH.null():!1,$.array=X.array.length>0?void 0:!1,$.object=X.object.length>0?void 0:!1}createTypeSchema($,Z){if($.length===0)return!1;if($.length===1)return KH.literal($[0]);if(Z==="string")return KH.enum($);if(Z==="number"){let[X,Q,...Y]=$;return KH.union([KH.literal(X),KH.literal(Q),...Y.map((G)=>KH.literal(G))])}if(Z==="boolean")return KH.union([KH.literal(!0),KH.literal(!1)]);return!1}},eE4=class{apply($,Z){let X=Z;if(X.type==="string"&&X.format==="binary"&&X.contentEncoding==="binary"){let Q=sE4.file();if(X.minLength!==void 0)Q=Q.min(X.minLength);if(X.maxLength!==void 0)Q=Q.max(X.maxLength);if(X.contentMediaType!==void 0)Q=Q.mime(X.contentMediaType);$.file=Q,$.string=!1}}},$j4=class{apply($,Z){let X=Z;if(Z.type===void 0&&(X.minLength!==void 0||X.maxLength!==void 0||X.pattern!==void 0)){if($.string===void 0)$.string=ij.string()}}},Zj4=class{apply($,Z){let X=Z;if(X.minLength===void 0)return;if($.string!==!1){let Q=$.string||ij.string();if(Q instanceof ij.ZodString)$.string=Q.refine((Y)=>{return Array.from(Y).length>=X.minLength},{message:`String must be at least ${X.minLength} characters long`})}}},Xj4=class{apply($,Z){let X=Z;if(X.maxLength===void 0)return;if($.string!==!1){let Q=$.string||ij.string();if(Q instanceof ij.ZodString)$.string=Q.refine((Y)=>{return Array.from(Y).length<=X.maxLength},{message:`String must be at most ${X.maxLength} characters long`})}}},Qj4=class{apply($,Z){let X=Z;if(!X.pattern)return;if($.string!==!1){let Q=$.string||ij.string();if(Q instanceof ij.ZodString){let Y=new RegExp(X.pattern);$.string=Q.regex(Y)}}}},Yj4=class{apply($,Z){let X=Z;if(X.minimum===void 0)return;if($.number!==!1){let Q=$.number||WH.number();if(Q instanceof WH.ZodNumber)$.number=Q.min(X.minimum)}}},Gj4=class{apply($,Z){let X=Z;if(X.maximum===void 0)return;if($.number!==!1){let Q=$.number||WH.number();if(Q instanceof WH.ZodNumber)$.number=Q.max(X.maximum)}}},Jj4=class{apply($,Z){let X=Z;if(X.exclusiveMinimum===void 0)return;if($.number!==!1){let Q=$.number||WH.number();if(Q instanceof WH.ZodNumber)if(typeof X.exclusiveMinimum==="number")$.number=Q.gt(X.exclusiveMinimum);else $.number=!1}}},Kj4=class{apply($,Z){let X=Z;if(X.exclusiveMaximum===void 0)return;if($.number!==!1){let Q=$.number||WH.number();if(Q instanceof WH.ZodNumber)if(typeof X.exclusiveMaximum==="number")$.number=Q.lt(X.exclusiveMaximum);else $.number=!1}}},Wj4=class{apply($,Z){let X=Z;if(X.multipleOf===void 0)return;if($.number!==!1){let Q=$.number||WH.number();if(Q instanceof WH.ZodNumber)$.number=Q.refine((Y)=>{if(X.multipleOf===0)return!1;let G=Y/X.multipleOf,J=Math.round(G),K=Math.min(Math.abs(Y)*Number.EPSILON*10,Math.abs(X.multipleOf)*Number.EPSILON*10);return Math.abs(G-J)<=K/Math.abs(X.multipleOf)},{message:`Must be a multiple of ${X.multipleOf}`})}}},Hj4=class{apply($,Z){let X=Z;if(Z.type===void 0&&(X.minItems!==void 0||X.maxItems!==void 0||X.items!==void 0||X.prefixItems!==void 0)){if($.array===void 0)$.array=sZ.array(sZ.any())}}},Nj4=class{apply($,Z){let X=Z;if(X.minItems===void 0)return;if($.array!==!1)$.array=($.array||sZ.array(sZ.any())).min(X.minItems)}},Fj4=class{apply($,Z){let X=Z;if(X.maxItems===void 0)return;if($.array!==!1)$.array=($.array||sZ.array(sZ.any())).max(X.maxItems)}},Uj4=class{apply($,Z){let X=Z;if($.array===!1)return;if(Array.isArray(X.items))$.array=$.array||sZ.array(sZ.any());else if(X.items&&typeof X.items!=="boolean"&&!X.prefixItems){let Q=V7(X.items),Y=sZ.array(Q);if($.array&&$.array instanceof sZ.ZodArray){let G=$.array._def;if(G.checks)G.checks.forEach((J)=>{if(J._zod&&J._zod.def){let K=J._zod.def;if(K.check==="min_length"&&K.minimum!==void 0)Y=Y.min(K.minimum);else if(K.check==="max_length"&&K.maximum!==void 0)Y=Y.max(K.maximum)}})}$.array=Y}else if(typeof X.items==="boolean"&&X.items===!1)if(!X.prefixItems)$.array=sZ.array(sZ.any()).max(0);else $.array=$.array||sZ.array(sZ.any());else if(typeof X.items==="boolean"&&X.items===!0)$.array=$.array||sZ.array(sZ.any());else if(X.prefixItems)$.array=$.array||sZ.array(sZ.any())}},Bj4=class{apply($,Z){if(Z.type!=="array")return;let X=Z;if(!Array.isArray(X.items))return;if($.array===!1)return;let Q=X.items.map((G)=>V7(G)),Y;if(Q.length===0)Y=rN8.tuple([]);else Y=rN8.tuple(Q);if(X.minItems!==void 0&&X.minItems>Q.length)Y=!1;if(X.maxItems!==void 0&&X.maxItems<Q.length)Y=!1;$.tuple=Y,$.array=!1}},Oj4=class{apply($,Z){let X=Z;if($.object===!1)return;if(X.properties||X.required||X.additionalProperties!==void 0)$.object=$.object||Q30.object({}).passthrough()}},wj4=class{apply($,Z){let X=Z;if(Z.type===void 0&&(X.maxProperties!==void 0||X.minProperties!==void 0)){if($.object===void 0)$.object=Q30.object({}).passthrough()}}},Lj4=class{apply($,Z){let X=Z;if(X.maxProperties===void 0)return;if($.object!==!1){let Q=$.object||Q30.object({}).passthrough();$.object=Q.refine((Y)=>Object.keys(Y).length<=X.maxProperties,{message:`Object must have at most ${X.maxProperties} properties`})}}},Dj4=class{apply($,Z){let X=Z;if(X.minProperties===void 0)return;if($.object!==!1){let Q=$.object||Q30.object({}).passthrough();$.object=Q.refine((Y)=>Object.keys(Y).length>=X.minProperties,{message:`Object must have at least ${X.minProperties} properties`})}}},jj4=class{apply($,Z){if(!Z.not)return $;let X=V7(Z.not);return $.refine((Q)=>!X30(X,Q),{message:"Value must not match the 'not' schema"})}},zj4=class{apply($,Z){if(Z.uniqueItems!==!0)return $;return $.refine(Ej4(),{message:"Array items must be unique"})}},Aj4=class{apply($,Z){if(!Z.allOf||Z.allOf.length===0)return $;return Z.allOf.map((Q)=>V7(Q)).reduce((Q,Y)=>Pj4.intersection(Q,Y),$)}},Tj4=class{apply($,Z){if(!Z.anyOf||Z.anyOf.length===0)return $;let X=Z.anyOf.length===1?V7(Z.anyOf[0]):aN8.union([V7(Z.anyOf[0]),V7(Z.anyOf[1]),...Z.anyOf.slice(2).map((Q)=>V7(Q))]);return aN8.intersection($,X)}},Rj4=class{apply($,Z){if(!Z.oneOf||Z.oneOf.length===0)return $;let X=Z.oneOf.map((Q)=>V7(Q));return $.refine((Q)=>{let Y=0;for(let G of X)if(G.safeParse(Q).success){if(Y++,Y>1)return!1}return Y===1},{message:"Value must match exactly one of the oneOf schemas"})}},Ij4=class{apply($,Z){let X=Z;if(X.prefixItems&&Array.isArray(X.prefixItems)){let Y=X.prefixItems.map((G)=>V7(G));return $.refine((G)=>{if(!Array.isArray(G))return!0;for(let J=0;J<Math.min(G.length,Y.length);J++)if(!X30(Y[J],G[J]))return!1;if(G.length>Y.length){if(typeof X.items==="boolean"&&X.items===!1)return!1;else if(X.items&&typeof X.items==="object"&&!Array.isArray(X.items)){let J=V7(X.items);for(let K=Y.length;K<G.length;K++)if(!X30(J,G[K]))return!1}}return!0},{message:"Array does not match prefixItems schema"})}return $}},qj4=class{apply($,Z){let X=Z;if(!X.properties&&!X.required&&X.additionalProperties!==!1)return $;if($ instanceof Z30.ZodObject||$ instanceof Z30.ZodRecord){let Q={};if(X.properties){for(let[Y,G]of Object.entries(X.properties))if(G!==void 0)Q[Y]=V7(G)}if(X.required&&Array.isArray(X.required)){let Y=new Set(X.required);for(let G of Object.keys(Q))if(!Y.has(G))Q[G]=Q[G].optional()}else for(let Y of Object.keys(Q))Q[Y]=Q[Y].optional();if(X.additionalProperties===!1)return Z30.object(Q);else return Z30.object(Q).passthrough()}return $.refine((Q)=>{if(typeof Q!=="object"||Q===null||Array.isArray(Q))return!0;if(X.properties){for(let[Y,G]of Object.entries(X.properties))if(G!==void 0){if(Object.getOwnPropertyDescriptor(Q,Y)!==void 0){if(!V7(G).safeParse(Q[Y]).success)return!1}}}if(X.required&&Array.isArray(X.required)){for(let Y of X.required)if(Object.getOwnPropertyDescriptor(Q,Y)===void 0)return!1}if(X.additionalProperties===!1&&X.properties){let Y=new Set(Object.keys(X.properties));for(let G in Q)if(!Y.has(G))return!1}return!0},{message:"Object constraints validation failed"})}},Mj4=class{apply($,Z){if(!Z.enum||Z.enum.length===0)return $;let X=Z.enum.filter((Q)=>Array.isArray(Q)||typeof Q==="object"&&Q!==null);if(X.length===0)return $;return $.refine((Q)=>{if(typeof Q!=="object"||Q===null)return!0;return X.some((Y)=>Oo(Q,Y))},{message:"Value must match one of the enum values"})}},Vj4=class{apply($,Z){if(Z.const===void 0)return $;let X=Z.const;if(typeof X!=="object"||X===null)return $;return $.refine((Q)=>Oo(Q,X),{message:"Value must equal the const value"})}},kj4=class{apply($,Z){if(Z.description)$=$.describe(Z.description);return $}},Cj4=class{apply($,Z){var X;let Q=Z;if(!((X=Q.required)==null?void 0:X.includes("__proto__"))||Z.type!==void 0)return $;return Sj4.any().refine((Y)=>this.validateRequired(Y,Q.required),{message:"Missing required properties"})}validateRequired($,Z){if(typeof $!=="object"||$===null||Array.isArray($))return!0;return Z.every((X)=>Object.prototype.hasOwnProperty.call($,X))}},_j4=class{apply($,Z){var X;let Q=Z;if(Q.contains===void 0)return $;let Y=V7(Q.contains),G=(X=Q.minContains)!=null?X:1,J=Q.maxContains;return $.refine((K)=>{if(!Array.isArray(K))return!0;let W=0;for(let H of K)if(X30(Y,H))W++;if(W<G)return!1;if(J!==void 0&&W>J)return!1;return!0},{message:"Array must contain required items matching the schema"})}},vj4=class{apply($,Z){let{default:X}=Z;if(X===void 0)return $;if(!$.safeParse(X).success)return $;return $.default(X)}},xj4,fj4;var sN8=w(()=>{xj4=[new rE4,new aE4,new oE4,new eE4,new $j4,new Hj4,new wj4,new Zj4,new Xj4,new Qj4,new Yj4,new Gj4,new Jj4,new Kj4,new Wj4,new Bj4,new Nj4,new Fj4,new Uj4,new Lj4,new Dj4,new Oj4],fj4=[new Cj4,new Mj4,new Vj4,new Aj4,new Tj4,new Rj4,new Ij4,new qj4,new _j4,new jj4,new zj4,new vj4,new kj4]});class $11{constructor($){this._url=$}start(){if(this._socket)throw Error("WebSocketClientTransport already started! If using Client class, note that connect() calls start() automatically.");return new Promise(($,Z)=>{this._socket=new WebSocket(this._url,bj4),this._socket.onerror=(X)=>{let Q="error"in X?X.error:Error(`WebSocket error: ${JSON.stringify(X)}`);Z(Q),this.onerror?.(Q)},this._socket.onopen=()=>{$()},this._socket.onclose=()=>{this.onclose?.()},this._socket.onmessage=(X)=>{let Q;try{Q=GG.parse(JSON.parse(X.data))}catch(Y){this.onerror?.(Y);return}this.onmessage?.(Q)}})}async close(){this._socket?.close()}send($){return new Promise((Z,X)=>{if(!this._socket){X(Error("Not connected"));return}this._socket?.send(JSON.stringify($)),Z()})}}var bj4="mcp";var eN8=w(()=>{L9()});function yj4($){let Z=$;if(!Z||typeof Z!=="object"||!("method"in Z))return null;switch(Z.method){case"initialize":{let X=Z?.params?.protocolVersion;if(!X)return null;return{type:"emit",message:{result:{protocolVersion:X,capabilities:{tools:{}},serverInfo:{name:"deco-chat-server",version:"1.0.0"}},jsonrpc:Z.jsonrpc??"2.0",id:Z.id}}}case"notifications/roots/list_changed":case"notifications/initialized":case"notifications/cancelled":case"notifications/progress":return{type:"suppress"};default:return null}}var Y30;var Z11=w(()=>{by();Y30=class Y30 extends iW{constructor($,Z){super($,Z)}send($,Z){let X=yj4($);if(X?.type==="emit")return this.onmessage?.(X.message),Promise.resolve();if(X?.type==="suppress")return Promise.resolve();return super.send($,Z)}}});var $F8,ZF8=async($,Z,X)=>{let Q=gj4($.connection,Z,X);if(!Q)throw Error("Unknown MCP connection type");let Y=new $F8({name:$?.name??"MCP Client",version:"1.0.0"});return await Y.connect(Q),{client:Y}},gj4=($,Z,X)=>{if($.type==="Websocket")return new $11(new URL($.url));if($.type!=="SSE"&&$.type!=="HTTP")return null;let Y={...$.token?{authorization:`Bearer ${$.token}`}:{},...X??{},..."headers"in $?$.headers||{}:{}};if($.type==="SSE"){let G={requestInit:{headers:Y,signal:Z}};if($.token)G.eventSourceInit={fetch:(J,K)=>{return fetch(J,{...K,headers:{...Y,Accept:"text/event-stream"},signal:Z})}};return new LF(new URL($.url),G)}return new Y30(new URL($.url),{requestInit:{headers:Y,signal:Z,credentials:"include"}})};var XF8=w(()=>{dW();Jp();eN8();L9();YQ();Z11();$F8=class $F8 extends e9{constructor($,Z){super($,{jsonSchemaValidator:R5,...Z})}async listTools($,Z){return await this.request({method:"tools/list",params:$},zn,Z)}}});function uj4($,Z){if(nj.set($,Z),nj.size>hj4){let X=nj.keys().next().value;if(X!==void 0)nj.delete(X)}}function GF8($){let Z=(X)=>{if("connection"in $)return ZF8({connection:$.connection},void 0,X);return $.client};return new Proxy({},{get(X,Q){if(Q==="toJSON")return null;if(typeof Q!=="string")throw Error("Name must be a string");if(Q==="listTools")return K;async function Y(W,H=Q){let N=$?.debugId?.(),F=N?{"x-trace-debug-id":N}:void 0,{client:U}=await Z(F),{structuredContent:B,isError:O,content:L}=await U.callTool({name:String(H),arguments:W});if(O){let E=L?.[0]?.text,j=typeof E==="string"?QF8(E):null,z=j?.code&&typeof $?.getErrorByStatusCode==="function"?$.getErrorByStatusCode(j.code,j.message,j.traceId):null;if(z)throw z;throw Error(`Tool ${String(H)} returned an error: ${JSON.stringify(B??L)}`)}if(B!==void 0)return B;let D=L?.[0]?.text;return typeof D==="string"?QF8(D):void 0}async function G(){let{client:W}=await Z(),{tools:H}=await W.listTools();return H}async function J(){if(!("connection"in $))return G();let W=$.connection,H=JSON.stringify(W);try{if(!nj.has(H))uj4(H,G());return await nj.get(H)}catch(N){console.error("Failed to list tools",N),nj.delete(H);return}}async function K(){return(await J()??[]).map((H)=>YF8(H,Y))}return Y.asTool=async()=>{let H=(await J()??[]).find((N)=>N.name===Q);if(!H)throw Error(`Tool ${Q} not found`);return YF8(H,Y)},Y}})}var QF8=($)=>{try{return JSON.parse($)}catch{return $}},hj4=500,nj,YF8=($,Z)=>{return{...$,id:$.name,inputSchema:$.inputSchema?V7($.inputSchema):void 0,outputSchema:$.outputSchema?V7($.outputSchema):void 0,execute:(X)=>{return Z(X.context,$.name)}}};var JF8=w(()=>{sN8();XF8();nj=new Map});function Bw($){return GF8($)}var Oh;var X11=w(()=>{JF8();Oh=new Proxy({},{get($,Z){if(Z==="toJSON")return null;if(Z==="forConnection")return(X)=>Bw({connection:X});if(Z==="forClient")return(X)=>Bw({client:X});return globalThis[Z]}})});function G30($){return{isImplementedBy:(Z)=>{for(let X of $){let Q=typeof X.name==="string"?new RegExp(`^${X.name}$`):X.name,Y=Z.find((G)=>Q.test(G.name));if(!Y&&X.opt)continue;if(!Y)return!1}return!0}}}var HH=($)=>{return{...G30($),forClient:(Z)=>{return Bw({client:Z})},forConnection:(Z)=>{return Bw({connection:Z})}}};var pj=w(()=>{X11()});import{z as r5}from"zod";var KF8,J30,WF8,K30,HF8,cj4;var NF8=w(()=>{pj();KF8=r5.object({specversion:r5.literal("1.0").describe("CloudEvents specification version"),id:r5.string().describe("Unique identifier for this event (UUID recommended)"),source:r5.string().describe("Connection ID of the event publisher"),type:r5.string().describe("Event type (e.g., 'order.created', 'user.signup')"),time:r5.string().datetime().optional().describe("Timestamp of when the event occurred (ISO 8601)"),subject:r5.string().optional().describe("Subject/resource identifier (e.g., order ID, user ID)"),datacontenttype:r5.string().optional().default("application/json").describe("Content type of the data attribute"),dataschema:r5.string().url().optional().describe("URI to the schema for the data attribute"),data:r5.unknown().optional().describe("Event payload (any JSON value)")}),J30=r5.object({events:r5.array(KF8).min(1).describe("Batch of CloudEvents to process")}),WF8=r5.object({success:r5.boolean().optional().describe("Whether this event was processed successfully"),error:r5.string().optional().describe("Error message for this event"),retryAfter:r5.number().int().positive().optional().describe("Re-deliver this event after this many ms")}),K30=r5.object({success:r5.boolean().optional().describe("Batch success - applies to events not in results"),error:r5.string().optional().describe("Batch error message - applies to events not in results"),processedCount:r5.number().int().min(0).optional().describe("Number of events successfully processed"),retryAfter:r5.number().int().positive().optional().describe("Batch retryAfter - applies to events not in results"),results:r5.record(r5.string(),WF8).optional().describe("Per-event results keyed by event ID")}),HF8=[{name:"ON_EVENTS",inputSchema:J30,outputSchema:K30}],cj4=HH(HF8)});import{z as a5}from"zod";var FF8,UF8,BF8,OF8,wF8,LF8,W30,Q11;var Y11=w(()=>{pj();FF8=a5.object({type:a5.literal("string"),enum:a5.array(a5.string()).optional(),description:a5.string().optional()}),UF8=a5.object({type:a5.string(),description:a5.string(),paramsSchema:a5.record(a5.string(),FF8)}),BF8=a5.object({}),OF8=a5.object({triggers:a5.array(UF8)}),wF8=a5.object({type:a5.string(),params:a5.record(a5.string(),a5.string()),enabled:a5.boolean(),callbackUrl:a5.url().optional(),callbackToken:a5.string().min(1).optional()}),LF8=a5.object({success:a5.boolean()}),W30=[{name:"TRIGGER_LIST",inputSchema:BF8,outputSchema:OF8},{name:"TRIGGER_CONFIGURE",inputSchema:wF8,outputSchema:LF8}],Q11=HH(W30)});import{z as v8}from"zod";var lj4,dj4,mj4,ij4,nj4,pj4,tj4,oj4,rj4,aj4,sj4,ej4,tj;var wo=w(()=>{lj4=v8.object({prefix:v8.string().optional().describe("Filter objects by prefix (e.g., 'folder/' for folder contents)"),maxKeys:v8.number().optional().default(1000).describe("Maximum number of keys to return (default: 1000)"),continuationToken:v8.string().optional().describe("Token for pagination from previous response"),delimiter:v8.string().optional().describe("Delimiter for grouping keys (typically '/'). When set, commonPrefixes returns folder paths.")}),dj4=v8.object({objects:v8.array(v8.object({key:v8.string().describe("Object key/path"),size:v8.number().describe("Object size in bytes"),lastModified:v8.string().describe("Last modified timestamp"),etag:v8.string().describe("Entity tag for the object")})),nextContinuationToken:v8.string().optional().describe("Token for fetching next page of results"),isTruncated:v8.boolean().describe("Whether there are more results available"),commonPrefixes:v8.array(v8.string()).optional().describe("Folder paths when delimiter is used (e.g., ['photos/2024/', 'photos/2025/'])")}),mj4=v8.object({key:v8.string().describe("Object key/path to get metadata for")}),ij4=v8.object({contentType:v8.string().optional().describe("MIME type of the object"),contentLength:v8.number().describe("Size of the object in bytes"),lastModified:v8.string().describe("Last modified timestamp"),etag:v8.string().describe("Entity tag for the object"),metadata:v8.record(v8.string(),v8.string()).optional().describe("Custom metadata key-value pairs")}),nj4=v8.object({key:v8.string().describe("Object key/path to generate URL for"),expiresIn:v8.number().optional().describe("URL expiration time in seconds (default: from state config or 3600)")}),pj4=v8.object({url:v8.string().describe("Presigned URL for downloading the object"),expiresIn:v8.number().describe("Expiration time in seconds that was used")}),tj4=v8.object({key:v8.string().describe("Object key/path for the upload"),expiresIn:v8.number().optional().describe("URL expiration time in seconds (default: from state config or 3600)"),contentType:v8.string().optional().describe("MIME type for the object being uploaded")}),oj4=v8.object({url:v8.string().describe("Presigned URL for uploading the object"),expiresIn:v8.number().describe("Expiration time in seconds that was used")}),rj4=v8.object({key:v8.string().describe("Object key/path to delete")}),aj4=v8.object({success:v8.boolean().describe("Whether the deletion was successful"),key:v8.string().describe("The key that was deleted")}),sj4=v8.object({keys:v8.array(v8.string()).max(1000).describe("Array of object keys/paths to delete (max 1000)")}),ej4=v8.object({deleted:v8.array(v8.string()).describe("Array of successfully deleted keys"),errors:v8.array(v8.object({key:v8.string(),message:v8.string()})).describe("Array of errors for failed deletions")}),tj=[{name:"LIST_OBJECTS",inputSchema:lj4,outputSchema:dj4},{name:"GET_OBJECT_METADATA",inputSchema:mj4,outputSchema:ij4},{name:"GET_PRESIGNED_URL",inputSchema:nj4,outputSchema:pj4},{name:"PUT_PRESIGNED_URL",inputSchema:tj4,outputSchema:oj4},{name:"DELETE_OBJECT",inputSchema:rj4,outputSchema:aj4},{name:"DELETE_OBJECTS",inputSchema:sj4,outputSchema:ej4}]});import{z as M$}from"zod";var DF8,EF8,jF8,Lo,H30,N30,F30,U30,$z4;var G11=w(()=>{pj();DF8=M$.object({primary:M$.string().optional().describe("Primary brand color (hex)"),secondary:M$.string().optional().describe("Secondary brand color (hex)"),accent:M$.string().optional().describe("Accent / highlight color (hex)"),background:M$.string().optional().describe("Background color (hex)"),foreground:M$.string().optional().describe("Foreground / text color (hex)")}),EF8=M$.object({heading:M$.string().optional().describe("Font family for headings"),body:M$.string().optional().describe("Font family for body text"),code:M$.string().optional().describe("Font family for code / monospace")}),jF8=M$.object({logo:M$.string().optional().describe("Logo URL"),favicon:M$.string().optional().describe("Favicon URL"),ogImage:M$.string().optional().describe("Open Graph image URL")}),Lo=M$.object({id:M$.string(),name:M$.string().describe("Brand / company name"),domain:M$.string().optional().describe("Company domain (e.g. example.com)"),colors:DF8.optional().describe("Semantic color palette"),fonts:EF8.optional().describe("Font families by role"),assets:jF8.optional().describe("Visual identity assets"),overview:M$.string().optional().describe("Company overview / description"),tagline:M$.string().optional().describe("Brand tagline"),tone:M$.string().optional().describe("Tone of voice description"),metadata:M$.record(M$.string(),M$.unknown()).optional().describe("Extra design tokens and metadata")}),H30=M$.object({id:M$.string().optional().describe("Brand ID. Omit to get the default brand.")}),N30=M$.object({}),F30=M$.object({items:M$.array(Lo)}),U30=[{name:"BRAND_GET",inputSchema:H30,outputSchema:Lo},{name:"BRAND_LIST",inputSchema:N30,outputSchema:F30,opt:!0}],$z4=HH(U30)});var J11=w(()=>{pj();NF8();Y11();wo();G11()});import{z as M6}from"zod";function kF($){return M6.object({items:M6.array($).describe("Array of collection items"),totalCount:M6.number().int().min(0).optional().describe("Total number of matching items (if available)"),hasMore:M6.boolean().optional().describe("Whether there are more items available")})}function Eo($){return M6.object({item:$.nullable().describe("The retrieved item, or null if not found")})}function Qz4($){return M6.object({data:$.partial().describe("Data for the new entity (id may be auto-generated)")})}function Yz4($){return M6.object({item:$.describe("The created entity with generated id")})}function Gz4($){return M6.object({id:M6.string().describe("ID of the entity to update"),data:$.partial().describe("Partial entity data to update")})}function Jz4($){return M6.object({item:$.describe("The updated entity")})}function zo($){return M6.object({item:$.describe("The deleted entity")})}function O30($,Z,X){let Q=$.toUpperCase(),Y=X?.readOnly??!1,G=[{name:`COLLECTION_${Q}_LIST`,inputSchema:FK,outputSchema:kF(Z)},{name:`COLLECTION_${Q}_GET`,inputSchema:Do,outputSchema:Eo(Z)}];if(!Y)G.push({name:`COLLECTION_${Q}_CREATE`,inputSchema:Qz4(Z),outputSchema:Yz4(Z),opt:!0},{name:`COLLECTION_${Q}_UPDATE`,inputSchema:Gz4(Z),outputSchema:Jz4(Z),opt:!0},{name:`COLLECTION_${Q}_DELETE`,inputSchema:jo,outputSchema:zo(Z),opt:!0});return G}var B30,Zz4,zF8,Xz4,FK,Do,jo;var V3=w(()=>{B30=M6.object({id:M6.string().describe("Unique identifier for the entity"),title:M6.string().describe("Human-readable title for the entity"),description:M6.string().nullish().describe("Description of the entity"),created_at:M6.string().datetime(),updated_at:M6.string().datetime(),created_by:M6.string().optional(),updated_by:M6.string().optional()}),Zz4=M6.object({field:M6.array(M6.string()),operator:M6.enum(["eq","gt","gte","lt","lte","in","like","contains"]),value:M6.unknown()}),zF8=M6.lazy(()=>M6.union([Zz4,M6.object({operator:M6.enum(["and","or","not"]),conditions:M6.array(zF8)})])),Xz4=M6.object({field:M6.array(M6.string()),direction:M6.enum(["asc","desc"]),nulls:M6.enum(["first","last"]).optional()}),FK=M6.object({where:zF8.optional().describe("Filter expression"),orderBy:M6.array(Xz4).optional().describe("Sort expressions"),limit:M6.number().int().min(1).max(1000).optional().describe("Maximum number of items to return"),offset:M6.number().int().min(0).optional().describe("Number of items to skip")});Do=M6.object({id:M6.string().describe("ID of the entity to retrieve")});jo=M6.object({id:M6.string().describe("ID of the entity to delete")})});import{z as wh}from"zod";var Kz4,Wz4,PF8;var AF8=w(()=>{V3();Kz4=B30.extend({avatar:wh.string().describe("URL or data URI to the assistant's avatar image"),system_prompt:wh.string().describe("System prompt that defines the assistant's behavior"),virtual_mcp_id:wh.string().describe("Virtual MCP ID to use for this assistant"),model:wh.object({id:wh.string().describe("Model ID"),connectionId:wh.string().describe("Connection ID that provides the model")}).describe("Selected model reference for this assistant")}),Wz4=O30("assistant",Kz4),PF8=[...Wz4]});import{z as T0}from"zod";var Po,SF,RF8,Hz4,Nz4,IF8,Fz4,Uz4,Bz4,Oz4,wz4,Lz4,qF8,Dz4,Ez4,jz4,zz4,Pz4,Az4,Tz4,Rz4,Iz4,qz4,m_5,Mz4,i_5,TF8,Vz4,kz4,w30,n_5;var MF8=w(()=>{pj();V3();Po=T0.lazy(()=>T0.union([T0.null(),T0.string(),T0.number(),T0.boolean(),T0.record(T0.string(),Po),T0.array(Po)])),SF=T0.record(T0.string(),T0.record(T0.string(),Po)).optional().describe("Additional provider-specific options. Outer record keyed by provider name, inner by option key"),RF8=T0.object({type:T0.literal("text"),text:T0.string().describe("The text content"),providerOptions:SF}),Hz4=T0.object({type:T0.literal("text"),text:T0.string().describe("The text content"),providerMetadata:T0.any().optional().describe("Additional provider-specific metadata")}),Nz4=T0.string().describe("File data as URL string"),IF8=T0.object({type:T0.literal("file"),filename:T0.string().optional().describe("Optional filename of the file"),data:Nz4,mediaType:T0.string().describe("IANA media type of the file (e.g., image/png, audio/mp3)"),providerOptions:SF}),Fz4=T0.object({type:T0.literal("file"),mediaType:T0.string().describe("IANA media type of the file (e.g., image/png, audio/mp3)"),data:T0.string().describe("Generated file data as base64 encoded string")}),Uz4=T0.object({type:T0.literal("reasoning"),text:T0.string().describe("The reasoning text"),providerOptions:SF}),Bz4=T0.object({type:T0.literal("reasoning"),text:T0.string().describe("The reasoning text"),providerMetadata:T0.any().optional().describe("Additional provider-specific metadata")}),Oz4=T0.object({type:T0.literal("tool-call"),toolCallId:T0.string().describe("ID of the tool call, used to match with tool result"),toolName:T0.string().describe("Name of the tool being called"),input:T0.string().describe("Arguments of the tool call (JSON-serializable object matching tool input schema)"),providerExecuted:T0.boolean().optional().describe("Whether the tool call will be executed by the provider"),providerOptions:SF}),wz4=T0.object({type:T0.literal("tool-call"),toolCallId:T0.string().describe("ID of the tool call"),toolName:T0.string().describe("Name of the tool being called"),input:T0.string().describe("Stringified JSON object with the tool call arguments"),providerExecuted:T0.boolean().optional().describe("Whether the tool call will be executed by the provider"),providerMetadata:T0.any().optional().describe("Additional provider-specific metadata")}),Lz4=T0.union([T0.object({type:T0.literal("text"),value:T0.string()}),T0.object({type:T0.literal("json"),value:Po}),T0.object({type:T0.literal("error-text"),value:T0.string()}),T0.object({type:T0.literal("error-json"),value:Po}),T0.object({type:T0.literal("content"),value:T0.array(T0.union([T0.object({type:T0.literal("text"),text:T0.string().describe("Text content")}),T0.object({type:T0.literal("media"),data:T0.string().describe("Base-64 encoded media data"),mediaType:T0.string().describe("IANA media type")})]))}),T0.object({type:T0.literal("execution-denied"),reason:T0.string().optional()}),T0.string().describe("Raw or JSON-serialized output (e.g. from AI SDK mapToolResultOutput)")]),qF8=T0.object({type:T0.literal("tool-result"),toolCallId:T0.string().describe("ID of the tool call that this result is associated with"),toolName:T0.string().describe("Name of the tool that generated this result"),output:Lz4.describe("Result of the tool call"),result:T0.unknown().describe("Unknown result of the tool call"),providerOptions:SF}),Dz4=T0.object({type:T0.literal("tool-result"),toolCallId:T0.string().describe("ID of the tool call that this result is associated with"),toolName:T0.string().describe("Name of the tool that generated this result"),result:T0.any().describe("Result of the tool call (JSON-serializable)"),isError:T0.boolean().optional().describe("Whether the result is an error or error message"),providerExecuted:T0.boolean().optional().describe("Whether the tool result was generated by the provider"),providerMetadata:T0.any().optional().describe("Additional provider-specific metadata")}),Ez4=T0.union([T0.object({type:T0.literal("source"),sourceType:T0.literal("url"),id:T0.string().describe("The ID of the source"),url:T0.string().describe("The URL of the source"),title:T0.string().optional().describe("The title of the source"),providerMetadata:T0.any().optional().describe("Additional provider-specific metadata")}),T0.object({type:T0.literal("source"),sourceType:T0.literal("document"),id:T0.string().describe("The ID of the source"),mediaType:T0.string().describe("IANA media type of the document (e.g., application/pdf)"),title:T0.string().describe("The title of the document"),filename:T0.string().optional().describe("Optional filename of the document"),providerMetadata:T0.any().optional().describe("Additional provider-specific metadata")})]),jz4=T0.object({role:T0.literal("system"),content:T0.string().describe("System message content"),providerOptions:SF}),zz4=T0.object({role:T0.literal("user"),content:T0.array(T0.union([RF8,IF8])).describe("User message content parts (text or file)"),providerOptions:SF}),Pz4=T0.object({role:T0.literal("assistant"),content:T0.array(T0.union([RF8,IF8,Uz4,Oz4,qF8])).describe("Assistant message content parts (text, file, reasoning, tool-call, or tool-result)"),providerOptions:SF}),Az4=T0.object({role:T0.literal("tool"),content:T0.array(qF8).describe("Tool message content (tool results)"),providerOptions:SF}),Tz4=T0.union([jz4,zz4,Pz4,Az4]),Rz4=T0.array(Tz4).describe("A list of messages forming the prompt"),Iz4=T0.object({prompt:Rz4.describe("A language model prompt is a standardized prompt type (array of messages with roles: system, user, assistant, tool)"),maxOutputTokens:T0.number().optional().describe("Maximum number of tokens to generate"),temperature:T0.number().optional().describe("Temperature setting. The range depends on the provider and model"),topP:T0.number().optional().describe("Nucleus sampling parameter"),topK:T0.number().optional().describe("Only sample from the top K options for each subsequent token. Used to remove long tail low probability responses"),presencePenalty:T0.number().optional().describe("Presence penalty setting. It affects the likelihood of the model to repeat information that is already in the prompt"),frequencyPenalty:T0.number().optional().describe("Frequency penalty setting. It affects the likelihood of the model to repeatedly use the same words or phrases"),seed:T0.number().optional().describe("The seed (integer) to use for random sampling. If set and supported by the model, calls will generate deterministic results"),stopSequences:T0.array(T0.string()).optional().describe("Stop sequences. If set, the model will stop generating text when one of the stop sequences is generated"),responseFormat:T0.union([T0.object({type:T0.literal("text")}),T0.object({type:T0.literal("json"),schema:T0.any().optional().describe("JSON schema that the generated output should conform to"),name:T0.string().optional().describe("Name of output that should be generated"),description:T0.string().optional().describe("Description of the output that should be generated")})]).optional().describe("Response format. The output can either be text or JSON. Default is text"),tools:T0.array(T0.any()).optional().describe("The tools that are available for the model"),toolChoice:T0.any().optional().describe("Specifies how the tool should be selected. Defaults to 'auto'"),includeRawChunks:T0.boolean().optional().describe("Include raw chunks in the stream. Only applicable for streaming calls"),abortSignal:T0.any().optional().describe("Abort signal for cancelling the operation"),providerOptions:T0.any().optional().describe("Additional provider-specific options")}),qz4=T0.object({content:T0.array(T0.union([Hz4,Fz4,Bz4,wz4,Dz4,Ez4])).describe("Ordered content that the model has generated (text, tool-calls, reasoning, files, sources)"),finishReason:T0.enum(["stop","length","content-filter","tool-calls","error","other","unknown"]).describe("Reason why generation stopped"),usage:T0.looseObject({inputTokens:T0.number().optional(),outputTokens:T0.number().optional(),totalTokens:T0.number().optional(),reasoningTokens:T0.number().optional()}).describe("Usage information for the language model call"),providerMetadata:T0.any().optional().describe("Additional provider-specific metadata"),request:T0.object({body:T0.any().optional().describe("Request HTTP body sent to the provider API")}).optional().describe("Optional request information for telemetry and debugging"),response:T0.object({id:T0.string().optional().describe("ID for the generated response"),timestamp:T0.iso.datetime().optional().describe("Timestamp for the start of the generated response"),modelId:T0.string().optional().describe("The ID of the response model that was used"),headers:T0.record(T0.string(),T0.string()).optional().describe("Response headers"),body:T0.any().optional().describe("Response HTTP body")}).optional().describe("Optional response information for telemetry and debugging"),warnings:T0.array(T0.any()).describe("Warnings for the call, e.g. unsupported settings")}),m_5=T0.object({stream:T0.any().describe("ReadableStream of LanguageModelV2StreamPart"),request:T0.object({body:T0.any().optional().describe("Request HTTP body sent to the provider API")}).optional().describe("Optional request information for telemetry and debugging"),response:T0.object({headers:T0.record(T0.string(),T0.string()).optional().describe("Response headers")}).optional().describe("Optional response data")}),Mz4=T0.object({supportedUrls:T0.record(T0.string(),T0.array(T0.string())).describe("Supported URL patterns by media type for the provider")}),i_5=T0.object({modelId:T0.string().describe("The ID of the model"),logo:T0.string().nullable(),description:T0.string().nullable(),capabilities:T0.array(T0.string()),limits:T0.object({contextWindow:T0.number(),maxOutputTokens:T0.number()}).nullable(),costs:T0.object({input:T0.number(),output:T0.number()}).nullable(),provider:T0.enum(["openai","anthropic","google","x-ai","deepseek","openai-compatible","openrouter"]).nullable()}),TF8=T0.object({modelId:T0.string().describe("The ID of the model"),callOptions:Iz4}),Vz4=B30.extend({logo:T0.string().nullable(),description:T0.string().nullable(),capabilities:T0.array(T0.string()),limits:T0.object({contextWindow:T0.number(),maxOutputTokens:T0.number()}).nullable(),costs:T0.object({input:T0.number(),output:T0.number()}).nullable(),provider:T0.enum(["openai","anthropic","google","xai","deepseek","openai-compatible","openrouter"]).nullable()}),kz4=O30("llm",Vz4,{readOnly:!0}),w30=[{name:"LLM_METADATA",inputSchema:T0.object({modelId:T0.string().describe("The ID of the model")}),outputSchema:Mz4},{name:"LLM_DO_STREAM",inputSchema:TF8},{name:"LLM_DO_GENERATE",inputSchema:TF8,outputSchema:qz4},...kz4],n_5=HH(w30)});import{z as oj}from"zod";var Sz4,VF8;var kF8=w(()=>{Sz4=oj.object({scopes:oj.array(oj.string()).describe("List of scopes available"),stateSchema:oj.record(oj.string(),oj.unknown()).describe("JSON Schema (draft-07) defining the state structure")}),VF8=[{name:"MCP_CONFIGURATION",inputSchema:oj.object({}),outputSchema:Sz4}]});import{z as s5}from"zod";var Cz4,_z4,SF8;var CF8=w(()=>{Cz4=s5.object({}).strict(),_z4=s5.object({billing:s5.object({mode:s5.enum(["prepaid","postpaid"]),limitPeriod:s5.enum(["daily","weekly","monthly"]).nullable()}),limit:s5.object({total:s5.number().nullable(),remaining:s5.number().nullable(),reset:s5.string().nullable()}),usage:s5.object({total:s5.number(),daily:s5.number(),weekly:s5.number(),monthly:s5.number()}),alert:s5.object({enabled:s5.boolean(),threshold_usd:s5.number(),email:s5.string().nullable()}),connectionId:s5.string()}),SF8=[{name:"GATEWAY_USAGE",inputSchema:Cz4,outputSchema:_z4},{name:"GATEWAY_SET_LIMIT",inputSchema:s5.object({}),outputSchema:s5.object({}),opt:!0},{name:"GATEWAY_SET_ALERT",inputSchema:s5.object({}),outputSchema:s5.object({}),opt:!0}]});import{z as _F8}from"zod";function UK(){return rX()===null}function L30($,Z){return $===$$.DEV_ASSETS(Z)}function Lh($,Z){let X=N98(Z,$),Q=new Date().toISOString();return{id:X.id??$$.DEV_ASSETS($),title:X.title,description:X.description??null,icon:X.icon??null,app_name:X.app_name??null,app_id:X.app_id??null,organization_id:$,created_by:"system",created_at:Q,updated_at:Q,connection_type:X.connection_type,connection_url:X.connection_url??null,connection_token:null,connection_headers:null,oauth_config:null,configuration_state:null,configuration_scopes:null,metadata:X.metadata??null,tools:vz4,bindings:["OBJECT_STORAGE"],status:"active"}}var vz4;var Dh=w(()=>{cB();wo();T6();vz4=tj.map(($)=>({name:$.name,description:`${$.name} operation for local file storage`,inputSchema:_F8.toJSONSchema($.inputSchema),outputSchema:_F8.toJSONSchema($.outputSchema)}))});function vF8($,Z){return $||Z===0}function xF8($,Z,X,Q,Y){let G=Z?Y+1:Y,J=Z?$.slice(0,X):$,K=Q+X<G;return{items:J,totalCount:G,hasMore:K}}function xz4($,Z){if(Z.length===0)return;let[X,...Q]=Z,Y=X==="slug"?AO($):$[X];for(let G of Q){if(Y===null||typeof Y!=="object")return;Y=Y[G]}return Y}function fz4($){let X=$.replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/%/g,".*").replace(/_/g,".");return new RegExp(`^${X}$`,"i")}function bz4($,Z,X){if($===void 0)return!0;switch(Z){case"eq":return X===null?$===null:$===X;case"gt":return $>X;case"gte":return $>=X;case"lt":return $<X;case"lte":return $<=X;case"in":return Array.isArray(X)&&X.includes($);case"like":return typeof $==="string"&&fz4(String(X)).test($);case"contains":return String($).toLowerCase().includes(String(X).toLowerCase());default:return!0}}function Ao($,Z){if(!Z)return!0;if("conditions"in Z){let{operator:Q,conditions:Y}=Z;if(Y.length===0)return!0;switch(Q){case"and":return Y.every((G)=>Ao($,G));case"or":return Y.some((G)=>Ao($,G));case"not":return!Y.every((G)=>Ao($,G));default:return!0}}let X=xz4($,Z.field);return bz4(X,Z.operator,Z.value)}var fF8=w(()=>{PQ0()});async function bF8($,Z,X){if($.length===0)return;let Q=0;async function Y(){while(Q<$.length){let G=Q++;await X($[G])}}await Promise.all(Array.from({length:Math.min(Z,$.length)},()=>Y()))}import{z as Ow}from"zod";var yz4=8,gz4,hz4,uz4,cz4,K11;var yF8=w(()=>{J11();AF8();V3();MF8();kF8();wo();CF8();T6();n0();_9();OG();VF();Dh();gW();PQ0();fF8();gz4=[{name:/^(COLLECTION_REGISTRY_APP_LIST|REGISTRY_ITEM_LIST)$/,inputSchema:Ow.object({})}],hz4={LLM:w30,LLMS:w30,ASSISTANTS:PF8,MCP:VF8,OBJECT_STORAGE:tj,AI_GATEWAY_BILLING:SF8,TRIGGER:W30,REGISTRY:gz4,BRAND:U30},uz4=FK.extend({binding:Ow.union([Ow.array(Ow.object({}).passthrough()),Ow.object({}).passthrough(),Ow.string()]).optional(),include_virtual:Ow.boolean().optional().describe("Whether to include VIRTUAL connections in the results. Defaults to false."),slug:Ow.string().optional().describe("Filter by connection slug. Matches against app_name, or a slug derived from connection_url or title.")}),cz4=kF(GX),K11=m({name:"COLLECTION_CONNECTIONS_LIST",description:"List all connections in the organization with filtering, sorting, and pagination",annotations:{title:"List Connections",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:uz4,outputSchema:cz4,handler:async($,Z)=>{await Z.access.check();let X=X0(Z),Q=$.binding?typeof $.binding==="string"?(()=>{let F=hz4[$.binding.toUpperCase()];if(!F)throw Error(`Unknown binding: ${$.binding}`);return F})():$.binding:void 0,Y=Q?G30(Q):void 0,G=!!Y,J=$.limit??100,K=$.offset??0,{items:W,totalCount:H}=await Z.storage.connections.list(X.id,{includeVirtual:$.include_virtual??!1,slug:$.slug,where:$.where,orderBy:$.orderBy,limit:G?void 0:J,offset:G?void 0:K});if(Y){let F=E9(),U=$$.SELF(X.id);await bF8(W,yz4,async(B)=>{if(B.tools!==null)return;let O=B.id===U?async()=>{let{listManagementTools:D}=await Promise.resolve().then(() => (ww(),D30));return D(Z)}:()=>a01(B,Z,AQ0),L=await Fw("tools",B.id,O,F,(D)=>Z.pendingRevalidations.push(D),Nw);if(L!==null)B.tools=L})}let N=!1;if(UK()&&vF8(G,K)){let F=B9(),U=$$.DEV_ASSETS(X.id);if(!W.some((B)=>B.id===U)){let B=Lh(X.id,F),O=!$.slug||AO(B)===$.slug,L=Ao(B,$.where);if(O&&L)W.unshift(B),N=!0}}if(G){let F=(await Promise.all(W.map(async(L)=>{if(!L.tools||L.tools.length===0)return null;return Y.isImplementedBy(L.tools.map((E)=>({name:E.name,inputSchema:E.inputSchema,outputSchema:E.outputSchema})))?L:null}))).filter((L)=>L!==null),U=F.length,B=F.slice(K,K+J),O=K+J<U;return{items:B,totalCount:U,hasMore:O}}return xF8(W,N,J,K,H)}})});var lz4,W11;var gF8=w(()=>{V3();T6();n0();_9();OG();VF();Dh();gW();lz4=Eo(GX),W11=m({name:"COLLECTION_CONNECTIONS_GET",description:"Get a connection's configuration, tools list, and status by ID.",annotations:{title:"Get Connection",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},_meta:{ui:{visibility:["app"]}},inputSchema:Do,outputSchema:lz4,handler:async($,Z)=>{let X=X0(Z);if(await Z.access.check(),UK()&&L30($.id,X.id))return{item:Lh(X.id,B9())};let Q=await Z.storage.connections.findById($.id);if(!Q||Q.organization_id!==X.id)return{item:null};if(Q.tools===null){let Y=$$.SELF(X.id),G=Q.id===Y?async()=>{let{listManagementTools:K}=await Promise.resolve().then(() => (ww(),D30));return K(Z)}:async()=>{let K=await I5(Q,Z,!0);try{return(await K.listTools()).tools}finally{await K.close().catch(()=>{})}},J=await Fw("tools",Q.id,G,E9(),(K)=>Z.pendingRevalidations.push(K),Nw);if(J!==null)Q.tools=J}return{item:Q}}})});class $5{db;vault;constructor($,Z){this.db=$;this.vault=Z}async get($){let Z=await this.db.selectFrom("downstream_tokens").selectAll().where("connectionId","=",$).executeTakeFirst();if(!Z)return null;return this.decryptToken(Z)}async upsert($){let Z=new Date().toISOString(),X=await this.vault.encrypt($.accessToken),Q=$.refreshToken?await this.vault.encrypt($.refreshToken):null,Y=$.clientSecret?await this.vault.encrypt($.clientSecret):null,G=$.expiresAt?.toISOString()??null,J=await this.db.insertInto("downstream_tokens").values({id:Q4("dtok"),connectionId:$.connectionId,accessToken:X,refreshToken:Q,scope:$.scope,expiresAt:G,clientId:$.clientId,clientSecret:Y,tokenEndpoint:$.tokenEndpoint,createdAt:Z,updatedAt:Z}).onConflict((K)=>K.column("connectionId").doUpdateSet({accessToken:X,refreshToken:Q,scope:$.scope,expiresAt:G,clientId:$.clientId,clientSecret:Y,tokenEndpoint:$.tokenEndpoint,updatedAt:Z})).returning(["id","createdAt"]).executeTakeFirstOrThrow();return{id:J.id,connectionId:$.connectionId,accessToken:$.accessToken,refreshToken:$.refreshToken,scope:$.scope,expiresAt:$.expiresAt,createdAt:J.createdAt,updatedAt:Z,clientId:$.clientId,clientSecret:$.clientSecret,tokenEndpoint:$.tokenEndpoint}}async delete($){await this.db.deleteFrom("downstream_tokens").where("connectionId","=",$).execute()}isExpired($,Z=0){if(!$.expiresAt)return!1;let Q=($.expiresAt instanceof Date?$.expiresAt:new Date($.expiresAt)).getTime();if(Number.isNaN(Q))return!0;return Q-Z<Date.now()}async decryptToken($){let Z=await this.vault.decrypt($.accessToken),X=$.refreshToken?await this.vault.decrypt($.refreshToken):null,Q=$.clientSecret?await this.vault.decrypt($.clientSecret):null;return{id:$.id,connectionId:$.connectionId,accessToken:Z,refreshToken:X,scope:$.scope,expiresAt:$.expiresAt,createdAt:$.createdAt,updatedAt:$.updatedAt,clientId:$.clientId,clientSecret:Q,tokenEndpoint:$.tokenEndpoint}}}var k3=w(()=>{GQ()});function Eh(...$){if(nz4)console.log("[mcp-read-cache]",...$)}function pz4($){return $.kind==="org"?"org":`u:${$.userId}`}function H11($){if($===null||typeof $!=="object")return JSON.stringify($)??"null";if(Array.isArray($))return`[${$.map(H11).join(",")}]`;return`{${Object.keys($).sort().map((X)=>`${JSON.stringify(X)}:${H11($[X])}`).join(",")}}`}class z30{config;maxEntries;now;maxTotalBytes;store=new Map;revalidating=new Set;totalBytes=0;constructor($=dz4,Z=mz4,X=()=>Date.now(),Q=iz4){this.config=$;this.maxEntries=Z;this.now=X;this.maxTotalBytes=Q}stats(){return{entries:this.store.size,bytes:this.totalBytes}}deleteKey($){let Z=this.store.get($);if(Z)this.store.delete($),this.totalBytes-=Z.bytes}key($,Z,X,Q){return`${Z}:${pz4(X)}:${$}:${H11(Q)}`}storeSet($,Z,X,Q){let Y;try{Y=JSON.stringify(Z).length}catch{Eh("SKIP non-serializable",$);return}if(Y>Q){Eh("SKIP oversize",$,`${Y}b > cap ${Q}b`);return}this.deleteKey($);while(this.store.size>0&&(this.store.size>=this.maxEntries||this.totalBytes+Y>this.maxTotalBytes)){let G=this.store.keys().next().value;if(G===void 0)break;this.deleteKey(G)}this.store.set($,{value:Z,storedAt:X,bytes:Y}),this.totalBytes+=Y}async fetch($){let{type:Z,connectionId:X,scope:Q,params:Y,fetchLive:G,shouldCache:J,onRevalidation:K}=$,W=this.config[Z],H=this.key(Z,X,Q,Y),N=this.now(),F=this.store.get(H),U=F?N-F.storedAt:1/0;if(!F||U>W.maxStaleMs){E30.add(1,{type:Z,outcome:"miss"}),Eh(F?"EXPIRED":"MISS",H);let B=await G();if(J?.(B)??!0)this.storeSet(H,B,this.now(),W.maxValueBytes);else Eh("NOT-CACHED (shouldCache=false)",H);return B}if(this.store.delete(H),this.store.set(H,F),U>W.revalidateAfterMs&&!this.revalidating.has(H)){E30.add(1,{type:Z,outcome:"stale"}),Eh("STALE \u2192 serve + revalidate",H,`age=${U}ms`),this.revalidating.add(H);let B=G().then((O)=>{if(J?.(O)??!0)this.storeSet(H,O,this.now(),W.maxValueBytes)}).catch(()=>{E30.add(1,{type:Z,outcome:"error"})}).finally(()=>this.revalidating.delete(H));K?.(B)}else E30.add(1,{type:Z,outcome:"hit"}),Eh("HIT",H,`age=${U}ms`);return F.value}invalidate($){let Z=`${$}:`;for(let X of[...this.store.keys()])if(X.startsWith(Z))this.deleteKey(X)}}function F11(){return o0().mcpCacheEnabled}function P30(){return F11()?N11:null}var E30,j30=1024,hF8,dz4,mz4=2000,iz4,nz4,N11;var To=w(()=>{r$();C8();E30=g8.createCounter("mcp_read_cache.fetches",{description:"MCP read cache outcomes (hit, stale, miss, error)",unit:"{fetches}"}),hF8=j30*j30,dz4={"tools/call":{revalidateAfterMs:30000,maxStaleMs:300000,maxValueBytes:512*j30},"resources/read":{revalidateAfterMs:60000,maxStaleMs:300000,maxValueBytes:4*hF8},"prompts/get":{revalidateAfterMs:60000,maxStaleMs:300000,maxValueBytes:512*j30}},iz4=256*hF8,nz4=typeof process<"u"&&!!process.env?.MCP_CACHE_DEBUG;N11=new z30;g8.createObservableGauge("mcp_read_cache.entries",{description:"Current entry count in the per-pod MCP read cache",unit:"{entries}"}).addCallback(($)=>$.observe(N11.stats().entries));g8.createObservableGauge("mcp_read_cache.bytes",{description:"Approximate total bytes held in the per-pod MCP read cache",unit:"By"}).addCallback(($)=>$.observe(N11.stats().bytes))});function lF8($){P30()?.invalidate($)}function jh($){lF8($);let Z=U11?.();if(!Z)return;try{Z.publish(uF8,tz4.encode(JSON.stringify({connectionId:$,originId:cF8})))}catch(X){console.warn("[McpCacheInvalidation] publish failed (non-critical):",X)}}function dF8($){if(U11=$,Ro)return;let Z=$();if(!Z)return;Ro=Z.subscribe(uF8),(async()=>{for await(let X of Ro)try{let Q=JSON.parse(oz4.decode(X.data));if(Q.originId===cF8)continue;lF8(Q.connectionId)}catch{}})().catch(console.error)}function mF8(){Ro?.unsubscribe(),Ro=null,U11=void 0}var uF8="studio.mcp-cache.invalidate",cF8,tz4,oz4,U11,Ro=null;var Io=w(()=>{To();cF8=crypto.randomUUID(),tz4=new TextEncoder,oz4=new TextDecoder});import{z as B11}from"zod";function az4($){let Z={...$};for(let X of rz4)delete Z[X];return Z}function sz4($,Z){return $.connection_url!==void 0?$.connection_url:Z}function ZP4($,Z){return $.length===Z.length&&$.every((X,Q)=>X===Z[Q])}var rz4,ez4,$P4,O11;var iF8=w(()=>{VF();k3();n0();C8();OG();Io();s01();Xo();gW();rz4=["id","organization_id","created_by","created_at"];ez4=B11.object({id:B11.string().describe("ID of the connection to update"),data:m70.describe("Partial connection data to update")}),$P4=B11.object({item:GX.describe("The updated connection entity")});O11=m({name:"COLLECTION_CONNECTIONS_UPDATE",description:"Update a connection's configuration. Re-fetches tools from the server on URL change.",annotations:{title:"Update Connection",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:ez4,outputSchema:$P4,handler:async($,Z)=>{G0(Z);let X=X0(Z);await Z.access.check();let Q=D1(Z);if(!Q)throw Error("User ID required to update connection");let{id:Y}=$,G=az4($.data),J=G.configuration_state!==void 0||G.configuration_scopes!==void 0,K=await Z.storage.connections.findById(Y);if(!K||K.organization_id!==X.id)throw Error("Connection not found in organization");let W=G.connection_type??K.connection_type,H=sz4(G,K.connection_url);if(W==="VIRTUAL"){let f=Uy(H);if(!f)throw Error("VIRTUAL connection requires connection_url in format: virtual://$virtual_mcp_id");let y=await Z.storage.virtualMcps.findById(f);if(!y)throw Error(`Virtual MCP not found: ${f}`);if(y.organization_id!==X.id)throw Error("Virtual MCP does not belong to the current organization");H=By(f)}let N=G.configuration_state??K.configuration_state??{},F=G.configuration_scopes??K.configuration_scopes??[];if(J){if(G.configuration_state!==void 0)N=G.configuration_state??{};else if(N===null||N===void 0)N={};if(G.configuration_scopes!==void 0)F=G.configuration_scopes??[];if(F.length>0){let f=N;Fo(f,F,X.id),await Bo(f,F,X.id,Z)}}if(W==="STDIO"&&!o0().localMode)throw Error("STDIO connections are only available in local mode (--local-mode).");let U=G.connection_token??K.connection_token;if(!U)try{let y=await new $5(Z.db,Z.vault).get(Y);if(y?.accessToken)U=y.accessToken}catch{}let B=await Jw({id:K.id,title:G.title??K.title,connection_type:W,connection_url:H,connection_token:U,connection_headers:G.connection_headers??K.connection_headers}).catch(()=>null),O=B?.tools?.length?B.tools:null,L=!1;if(G.configuration_scopes===void 0&&B?.scopes?.length)L=!ZP4(F,B.scopes),F=B.scopes;if(Fo(N,F,X.id),L&&F.length>0)await Bo(N,F,X.id,Z);let D=J||L,E=D?Uo(N,F):[],j=D?Uo(K.configuration_state??{},K.configuration_scopes??[]):[],z=K.configuration_state,P=z==null||Object.keys(z).length===0,A,I,q=async()=>{try{await Z.storage.connectionCredentialVault.replaceGrantsForSubject({organizationId:X.id,subjectConnectionId:Y,createdBy:Q,grants:j})}catch(f){console.error("Failed to restore credential grants after credential vault mutation failed",f)}},M={...G,connection_url:H,tools:null,configuration_state:N,configuration_scopes:F,updated_by:Q},S={...K,...M};if(D)try{if(await Z.storage.connectionCredentialVault.replaceGrantsForSubject({organizationId:X.id,subjectConnectionId:Y,createdBy:Q,grants:E}),E.length>0){if(!await Z.storage.connectionCredentialVault.findActiveWorkloadToken({organizationId:X.id,subjectConnectionId:Y})){let{plaintextToken:y,record:o}=await Z.storage.connectionCredentialVault.createOrRotateWorkloadToken({organizationId:X.id,subjectConnectionId:Y});I=o.id,A={baseUrl:Z.baseUrl,org:X.slug??X.id,subjectConnectionId:Y,token:y}}}}catch(f){if(I)await Z.storage.connectionCredentialVault.revokeWorkloadToken({organizationId:X.id,subjectConnectionId:Y,tokenId:I});throw await q(),f}if(D&&N&&F)try{await(await I5(S,Z,!1)).callTool({name:"ON_MCP_CONFIGURATION",arguments:{state:N,scopes:F,firstRun:P,...A?{vault:A}:{}}})}catch(f){if(console.error("Failed to invoke ON_MCP_CONFIGURATION callback",f),I)throw await Z.storage.connectionCredentialVault.revokeWorkloadToken({organizationId:X.id,subjectConnectionId:Y,tokenId:I}),await q(),f}let d;try{d=await Z.storage.connections.update(Y,M)}catch(f){if(D){if(I)await Z.storage.connectionCredentialVault.revokeWorkloadToken({organizationId:X.id,subjectConnectionId:Y,tokenId:I});await q()}throw f}if(O)E9()?.set("tools",Y,O).catch(()=>{});return jh(Y),{item:d}}})});import{z as XP4}from"zod";var QP4,w11;var nF8=w(()=>{V3();h4();n0();OG();Io();gW();QP4=jo.extend({force:XP4.boolean().optional().describe("If true, removes this connection from all agents that reference it before deleting")}),w11=m({name:"COLLECTION_CONNECTIONS_DELETE",description:"Permanently delete a connection. Set force=true to auto-remove from referencing Virtual MCPs.",annotations:{title:"Delete Connection",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:QP4,outputSchema:zo(GX),handler:async($,Z)=>{G0(Z);let X=X0(Z);await Z.access.check();let Q=await Z.storage.connections.findById($.id);if(!Q)throw Error(`Connection not found: ${$.id}`);if(Q.organization_id!==X.id)throw Error("Connection not found in organization");if(Q.metadata?.isFixed===!0)throw Error("This connection is a fixed system connection and cannot be deleted");let G=await Z.storage.virtualMcps.listByConnectionId(X.id,$.id);if(G.length>0)if($.force)await Z.storage.virtualMcps.removeConnectionReferences($.id);else throw Error(JSON.stringify({code:"CONNECTION_IN_USE",agentNames:G.map((W)=>W.title)}));await Z.storage.connections.delete($.id);let J=await Z.storage.organizationSettings.get(X.id);if(J?.registry_config){let{registries:W,blockedMcps:H}=J.registry_config;if($.id in W){let{[$.id]:N,...F}=W;await Z.storage.organizationSettings.upsert(X.id,{registry_config:{registries:F,blockedMcps:H}})}}E9()?.invalidate($.id).catch(()=>{}),jh($.id);let K=D1(Z);if(K)n1.capture({distinctId:K,event:"connection_deleted",groups:{organization:X.id},properties:{connection_id:Q.id,connection_type:Q.connection_type,app_name:Q.app_name??null,organization_id:X.id,forced:$.force??!1}});return{item:Q}}})});import{z as zh}from"zod";var L11;var pF8=w(()=>{n0();L11=m({name:"CONNECTION_TEST",description:"Test connection health and latency",annotations:{title:"Test Connection",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!0},inputSchema:zh.object({id:zh.string()}),outputSchema:zh.object({id:zh.string(),healthy:zh.boolean(),latencyMs:zh.number()}),handler:async($,Z)=>{let X=X0(Z);await Z.access.check();let Q=await Z.storage.connections.findById($.id);if(!Q||Q.organization_id!==X.id)throw Error("Connection not found");let Y=await Z.storage.connections.testConnection($.id);return{id:$.id,...Y}}})});var tF8=w(()=>{tN8();yF8();gF8();iF8();nF8();pF8()});import{sql as u4}from"kysely";import{z as NH}from"zod";function oF8($){if($===null||$===void 0)return"NULL";if(typeof $==="number")return String($);if(typeof $==="boolean")return $?"TRUE":"FALSE";if(typeof $==="string")return`'${$.replace(/'/g,"''")}'`;if($ instanceof Date)return`'${$.toISOString()}'`;return`'${JSON.stringify($).replace(/'/g,"''")}'`}function JP4($,Z){let X=$;for(let Y=Z.length;Y>=1;Y--){let G=`$${Y}`;if(X.includes(G))X=X.replaceAll(G,oF8(Z[Y-1]))}let Q=[];for(let Y=0;Y<X.length;Y++)if(X[Y]==="?")Q.push(Y);for(let Y=Math.min(Q.length,Z.length)-1;Y>=0;Y--){let G=Q[Y],J=oF8(Z[Y]);X=X.slice(0,G)+J+X.slice(G+1)}return X}function rF8($){return $.replace(/-/g,"_")}function WP4($){return`app_${rF8($)}`}function HP4($){return`app_role_${rF8($)}`}function NP4($){if($ instanceof Error){let Z=$.message.toLowerCase(),X=$.code;return X==="3F000"||X==="42704"||X==="22023"||Z.includes("schema")&&Z.includes("does not exist")||Z.includes("role")&&Z.includes("does not exist")}return!1}async function FP4($,Z,X){if(await u4`CREATE SCHEMA IF NOT EXISTS ${u4.id(Z)}`.execute($),!(await u4`
2269
2269
  SELECT EXISTS (SELECT 1 FROM pg_roles WHERE rolname = ${X}) as exists
2270
- `.execute($)).rows[0]?.exists)await u4`CREATE ROLE ${u4.id(X)} NOLOGIN`.execute($);await u4`GRANT ${u4.id(X)} TO CURRENT_USER`.execute($),await u4`GRANT USAGE, CREATE ON SCHEMA ${u4.id(Z)} TO ${u4.id(X)}`.execute($),await u4`GRANT ALL ON ALL TABLES IN SCHEMA ${u4.id(Z)} TO ${u4.id(X)}`.execute($),await u4`GRANT ALL ON ALL SEQUENCES IN SCHEMA ${u4.id(Z)} TO ${u4.id(X)}`.execute($),await u4`ALTER DEFAULT PRIVILEGES IN SCHEMA ${u4.id(Z)} GRANT ALL ON TABLES TO ${u4.id(X)}`.execute($),await u4`ALTER DEFAULT PRIVILEGES IN SCHEMA ${u4.id(Z)} GRANT ALL ON SEQUENCES TO ${u4.id(X)}`.execute($),await u4`REVOKE ALL ON SCHEMA public FROM ${u4.id(X)}`.execute($)}async function UP4($,Z,X,Q){try{return await $.transaction().execute(async(Y)=>{return await u4`SET LOCAL ROLE ${u4.id(X)}`.execute(Y),await u4`SET LOCAL search_path TO ${u4.id(Z)}`.execute(Y),await u4.raw(Q).execute(Y)})}catch(Y){if(NP4(Y))return await FP4($,Z,X),await $.transaction().execute(async(G)=>{return await u4`SET LOCAL ROLE ${u4.id(X)}`.execute(G),await u4`SET LOCAL search_path TO ${u4.id(Z)}`.execute(G),await u4.raw(Q).execute(G)});throw Y}}var GP4,KP4,aF8;var sF8=w(()=>{n0();GP4=NH.object({results:NH.array(NH.unknown()).optional(),success:NH.boolean().optional()});KP4=NH.object({sql:NH.string().describe("The SQL query to run"),params:NH.array(NH.any()).describe("The parameters to pass to the SQL query").optional()});aF8=m({name:"DATABASES_RUN_SQL",description:"Run a SQL query in a connection-scoped isolated schema. Supports SELECT, DDL, and DML.",annotations:{title:"Run SQL Query",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!1,openWorldHint:!1},inputSchema:KP4,outputSchema:NH.object({result:NH.array(GP4)}),handler:async($,Z)=>{G0(Z),await Z.access.check();let X=JP4($.sql,$.params||[]);if(!Z.connectionId)throw Error("Connection context required for database access");console.warn("DATABASES_RUN_SQL invoked",{"tool.deprecation_probe":"DATABASES_RUN_SQL","connection.id":Z.connectionId,"organization.id":Z.organization?.id??null,"user.id":Z.auth.user?.id??null});let Q=WP4(Z.connectionId),Y=HP4(Z.connectionId);return{result:[{results:(await UP4(Z.db,Q,Y,X)).rows,success:!0}]}}})});function A30($){let Z=$.access.getRole();if(!A3(Z))throw new AF("Only organization owners and admins can change org-wide pin status")}var D11=w(()=>{T3();qj()});async function T30($,Z,X){let Q=[...new Set(X)],Y=await Promise.all(Q.map((J)=>$.storage.connections.findById(J,Z))),G=Q.filter((J,K)=>!Y[K]);if(G.length>0)throw Error(`Connection not found: ${G.join(", ")}`)}function CF($){return $.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"")}function R30($){let Z=2166136261;for(let X=0;X<$.length;X++)Z=Math.imul(Z^$.charCodeAt(X),16777619);return`a${(Z>>>0).toString(36).padStart(6,"0").slice(-6)}`}function qo($){if($&&typeof $==="object"&&"gatewayClientId"in $&&typeof $.gatewayClientId==="string")return $.gatewayClientId;return}function Mo($,Z){if(!Z)return $;let X=`${R30(Z)}_`;return $.startsWith(X)?$.slice(X.length):$}function OP4($){return $.split(/[-_]/).map((Z)=>Z?Z.charAt(0).toUpperCase()+Z.slice(1):Z).join(" ")}var Ph;var eF8=w(()=>{dW();Ph=class Ph extends e9{static MAX_PAGES_PER_CLIENT=1000;clients;slugToKey=new Map;resolvedClients=new Map;toolsCache=null;resourcesCache=null;resourceTemplatesCache=null;promptsCache=null;resourceRouteMap=new Map;constructor($,Z){super(Z?.clientInfo??{name:"gateway-client",version:"1.0.0"},{capabilities:Z?.capabilities});this.clients=$;for(let X of Object.keys($)){let Q=R30(X);if(this.slugToKey.has(Q))throw Error(`GatewayClient: duplicate namespace code "${Q}" from keys "${this.slugToKey.get(Q)}" and "${X}"`);this.slugToKey.set(Q,X)}}namespace($,Z){return`${R30($)}_${Z}`}async resolveToolTarget($){let Z=$.indexOf("_");if(Z!==-1){let Q=$.slice(0,Z),Y=this.slugToKey.get(Q);if(Y)return[Y,$.slice(Z+1)]}let{tools:X}=await this.listTools();for(let Q of X){let Y=qo(Q._meta);if(!Y)continue;if(Mo(Q.name,Y)===$)return[Y,$]}if(Z===-1)throw Error(`GatewayClient: could not resolve tool "${$}" \u2014 no namespace prefix and not found in any client`);throw Error(`GatewayClient: unknown namespace "${$.slice(0,Z)}" in "${$}" and not found by original name in any client`)}async resolvePromptTarget($){let Z=$.indexOf("_");if(Z!==-1){let Q=$.slice(0,Z),Y=this.slugToKey.get(Q);if(Y)return[Y,$.slice(Z+1)]}let{prompts:X}=await this.listPrompts();for(let Q of X){let Y=qo(Q._meta);if(!Y)continue;if(Mo(Q.name,Y)===$)return[Y,$]}if(Z===-1)throw Error(`GatewayClient: could not resolve prompt "${$}" \u2014 no namespace prefix and not found in any client`);throw Error(`GatewayClient: unknown namespace "${$.slice(0,Z)}" in "${$}" and not found by original name in any client`)}resolveClient($){let Z=this.resolvedClients.get($);if(Z)return Z;let X=this.clients[$];if(!X)return Promise.reject(Error(`GatewayClient: unknown client key "${$}"`));let Q=X.client,Y;try{Y=typeof Q==="function"?Promise.resolve(Q()):Promise.resolve(Q)}catch(J){return Promise.reject(J)}let G=Y.catch((J)=>{throw this.resolvedClients.delete($),J});return this.resolvedClients.set($,G),G}getResolvedClient($){return this.resolveClient($)}async listFromClient($,Z,X){try{let Q=await this.resolveClient($);return await Z(Q)}catch(Q){return console.warn(`GatewayClient: skipping ${X} from client "${$}" \u2014 ${Q?.message??Q}`),[]}}async paginate($,Z,X){let Q=[],Y,G=0;do{let J=await X(Y);Q.push(...J.items),Y=J.nextCursor,G++}while(Y&&G<Ph.MAX_PAGES_PER_CLIENT);if(Y)console.warn(`GatewayClient: client "${$}" exceeded ${Ph.MAX_PAGES_PER_CLIENT} pages listing ${Z} \u2014 truncating`);return Q}fetchAllTools($,Z){return this.paginate(Z,"tools",async(X)=>{let Q=await $.listTools(X?{cursor:X}:void 0);return{items:Q.tools,nextCursor:Q.nextCursor}})}fetchAllResources($,Z){return this.paginate(Z,"resources",async(X)=>{let Q=await $.listResources(X?{cursor:X}:void 0);return{items:Q.resources,nextCursor:Q.nextCursor}})}fetchAllResourceTemplates($,Z){return this.paginate(Z,"resource templates",async(X)=>{let Q=await $.listResourceTemplates(X?{cursor:X}:void 0);return{items:Q.resourceTemplates,nextCursor:Q.nextCursor}})}fetchAllPrompts($,Z){return this.paginate(Z,"prompts",async(X)=>{let Q=await $.listPrompts(X?{cursor:X}:void 0);return{items:Q.prompts,nextCursor:Q.nextCursor}})}listTools($,Z){if(!this.toolsCache)this.toolsCache=this.aggregateTools();return this.toolsCache}async aggregateTools(){let $=[];for(let[Z,X]of Object.entries(this.clients)){let Q=await this.listFromClient(Z,(J)=>this.fetchAllTools(J,Z),"tools"),Y=X.tools,G=Y?new Set(Y):null;for(let J of Q){if(G&&!G.has(J.name))continue;$.push({...J,name:this.namespace(Z,J.name),_meta:{...J._meta??{},gatewayClientId:Z}})}}return{tools:$}}listResources($,Z){if(!this.resourcesCache)this.resourcesCache=this.aggregateResources();return this.resourcesCache}async aggregateResources(){let $=new Set,Z=[],X=new Map;for(let[Q,Y]of Object.entries(this.clients)){let G=await this.listFromClient(Q,(W)=>this.fetchAllResources(W,Q),"resources"),J=Y.resources,K=J?new Set(J):null;for(let W of G){if(K&&!K.has(W.uri)&&!(W.name&&K.has(W.name)))continue;if($.has(W.uri)){console.warn(`GatewayClient: duplicate resource "${W.uri}" from client "${Q}" \u2014 skipping`);continue}$.add(W.uri),X.set(W.uri,Q),Z.push({...W,_meta:{...W._meta??{},gatewayClientId:Q}})}}return this.resourceRouteMap=X,{resources:Z}}listResourceTemplates($,Z){if(!this.resourceTemplatesCache)this.resourceTemplatesCache=this.aggregateResourceTemplates();return this.resourceTemplatesCache}async aggregateResourceTemplates(){let $=new Set,Z=[];for(let[X,Q]of Object.entries(this.clients)){let Y=await this.listFromClient(X,(G)=>this.fetchAllResourceTemplates(G,X),"resource templates");for(let G of Y){if($.has(G.uriTemplate)){console.warn(`GatewayClient: duplicate resource template "${G.uriTemplate}" from client "${X}" \u2014 skipping`);continue}$.add(G.uriTemplate),Z.push({...G,_meta:{...G._meta??{},gatewayClientId:X}})}}return{resourceTemplates:Z}}listPrompts($,Z){if(!this.promptsCache)this.promptsCache=this.aggregatePrompts();return this.promptsCache}async aggregatePrompts(){let $=[];for(let[Z,X]of Object.entries(this.clients)){let Q=await this.listFromClient(Z,(J)=>this.fetchAllPrompts(J,Z),"prompts"),Y=X.prompts,G=Y?new Set(Y):null;for(let J of Q){if(G&&!G.has(J.name))continue;$.push({...J,name:this.namespace(Z,J.name),title:J.title??OP4(J.name),_meta:{...J._meta??{},gatewayClientId:Z}})}}return{prompts:$}}async callTool($,Z,X){let[Q,Y]=await this.resolveToolTarget($.name);return(await this.resolveClient(Q)).callTool({...$,name:Y},Z,X)}async readResource($,Z){let X=await this.resolveResourceRoute($.uri);return(await this.resolveClient(X)).readResource($)}async getPrompt($,Z){let[X,Q]=await this.resolvePromptTarget($.name);return(await this.resolveClient(X)).getPrompt({...$,name:Q})}async resolveResourceRoute($){let Z=this.resourceRouteMap.get($);if(Z)return Z;if(this.resourcesCache=null,await this.listResources(),Z=this.resourceRouteMap.get($),Z)return Z;throw Error(`GatewayClient: resource "${$}" not found in any upstream client`)}getServerCapabilities(){return{tools:{},resources:{},prompts:{}}}getInstructions(){return}refresh(){this.toolsCache=null,this.resourcesCache=null,this.resourceTemplatesCache=null,this.promptsCache=null}async close(){let $=[...this.resolvedClients.values()].map((Z)=>Z.then((X)=>X.close()).catch(()=>{}));await Promise.allSettled($),await super.close()}}});var I30=w(()=>{eF8()});function j11($){return CF($)}function LP4($,Z){let X=CF(Z)||"prompt";return`${String($).padStart(wP4,"0")}-${X}`}async function z11($,Z,X){try{await $.delete(q30,j11(Z),{actor:X})}catch(Q){console.error("[agent-prompts] failed to delete prompts",{agentId:Z,err:Q})}}async function M30($,Z,X,Q){let Y=j11(Z);await z11($,Z,X),await Promise.all(Q.slice(0,E11).map(async(G,J)=>{let K=LP4(J,G.title),W={name:K,title:G.title,description:G.description,text:G.text};try{await $.write(q30,`${Y}/${K}.json`,JSON.stringify(W),{actor:X,contentType:"application/json"})}catch(H){console.error("[agent-prompts] failed to seed prompt",{agentId:Z,name:K,err:H})}}))}async function $U8($,Z){let X=j11(Z),Q;try{Q=await $.listDir(q30,X)}catch{return[]}let Y=Q.filter((J)=>J.kind==="file"&&J.path.endsWith(".json")).slice(0,E11),G=[];for(let J of Y)try{let K=await $.read(q30,J.path),W=JSON.parse(new TextDecoder().decode(K));if(W&&typeof W.name==="string"&&typeof W.title==="string"&&typeof W.text==="string")G.push(W)}catch{}return G}var q30="agent-prompts",E11=20,wP4;var Vo=w(()=>{I30();wP4=String(E11-1).length});import{z as QU8}from"zod";function DP4(){let $=ZU8[Math.floor(Math.random()*ZU8.length)];return`icon://${XU8[Math.floor(Math.random()*XU8.length)]}?color=${$}`}var ZU8,XU8,EP4,jP4,P11;var YU8=w(()=>{n0();Ww();D11();Vo();ZU8=["red","orange","amber","yellow","lime","green","emerald","cyan","sky","blue","indigo","violet","purple","fuchsia","pink","rose"],XU8=["Star01","Zap","Heart","Globe01","Compass03","Lightbulb02","Rocket01","Flag01","BookOpen01","Shield01","Key01","Diamond01","Cube01","Target04","Award01","Briefcase01","Coffee","Feather","Hexagon01","Layers3_01","Map01","Palette","Package","Terminal"];EP4=QU8.object({data:p70.describe("Data for the new virtual MCP")}),jP4=QU8.object({item:JX.describe("The created virtual MCP entity")}),P11=m({name:"COLLECTION_VIRTUAL_MCP_CREATE",description:"Create a Virtual MCP (agent) that aggregates tools from multiple connections into one endpoint. Pass `prompts` to seed the agent with kickstart prompts (conversation starters shown as icebreakers). Author them from the agent's role/instructions and the descriptions of the tools it will have, so the starters are coherent and immediately useful.",annotations:{title:"Create Virtual MCP",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!1,openWorldHint:!1},inputSchema:EP4,outputSchema:jP4,handler:async($,Z)=>{G0(Z);let X=X0(Z);await Z.access.check();let Q=D1(Z);if(!Q)throw Error("User ID required to create virtual MCP");if($.data.pinned===!0)A30(Z);let{prompts:Y,...G}=$.data;if(G.connections.length>0)await T30(Z,X.id,G.connections.map((W)=>W.connection_id));let J={...G,icon:G.icon??DP4()},K=await Z.storage.virtualMcps.create(X.id,Q,J);if(Y?.length&&Z.orgFs&&K.id)await M30(Z.orgFs,K.id,Q,Y);return{item:K}}})});function zP4($){let Z=[],X=0;while(X<$.length){let Q=$[X];if(Q==="%")Z.push(".*");else if(Q==="_")Z.push(".");else if(/[.*+?^${}()|[\]\\]/.test(Q))Z.push("\\"+Q);else Z.push(Q);X++}return Z.join("")}function Lw($){return typeof $==="string"||typeof $==="number"}function A11($,Z){let X=Z.split("."),Q=$;for(let Y of X){if(Q==null||typeof Q!=="object")return;Q=Q[Y]}return Q}function PP4($,Z){return $.connections.some((X)=>X.connection_id===Z)}function V30($,Z){if("conditions"in Z){let{operator:K,conditions:W}=Z;switch(K){case"and":return W.every((H)=>V30($,H));case"or":return W.some((H)=>V30($,H));case"not":return!W.every((H)=>V30($,H));default:return!0}}let{field:X,operator:Q,value:Y}=Z,G=X.join(".");if(G==="connection_id"){if(Q!=="eq"||typeof Y!=="string")return!1;return PP4($,Y)}let J=A11($,G);switch(Q){case"eq":return J===Y;case"gt":return Lw(J)&&Lw(Y)&&J>Y;case"gte":return Lw(J)&&Lw(Y)&&J>=Y;case"lt":return Lw(J)&&Lw(Y)&&J<Y;case"lte":return Lw(J)&&Lw(Y)&&J<=Y;case"in":return Array.isArray(Y)&&Y.includes(J);case"like":if(typeof J!=="string"||typeof Y!=="string")return!1;if(Y.length>100)return!1;let K=zP4(Y);return new RegExp(`^${K}$`,"i").test(J);case"contains":if(typeof J!=="string"||typeof Y!=="string")return!1;return J.toLowerCase().includes(Y.toLowerCase());default:return!0}}function AP4($,Z){return[...$].sort((X,Q)=>{for(let Y of Z){let G=Y.field.join("."),J=A11(X,G),K=A11(Q,G),W=0;if(J==null&&K==null)continue;if(J==null)W=Y.nulls==="first"?-1:1;else if(K==null)W=Y.nulls==="first"?1:-1;else if(typeof J==="string"&&typeof K==="string")W=J.localeCompare(K);else if(typeof J==="number"&&typeof K==="number")W=J-K;else W=String(J).localeCompare(String(K));if(W!==0)return Y.direction==="desc"?-W:W}return 0})}var TP4,RP4,T11;var GU8=w(()=>{V3();n0();Ww();TP4=FK,RP4=kF(JX),T11=m({name:"COLLECTION_VIRTUAL_MCP_LIST",description:"List all MCP virtual MCPs in the organization",annotations:{title:"List Virtual MCPs",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:TP4,outputSchema:RP4,handler:async($,Z)=>{await Z.access.check();let X=X0(Z),Q=$.where&&!("conditions"in $.where)&&$.where.field.join(".")==="connection_id"&&$.where.operator==="eq"&&typeof $.where.value==="string"?$.where.value:void 0,Y=$.where&&!("conditions"in $.where)&&$.where.field.join(".")==="pinned"&&$.where.operator==="eq"&&typeof $.where.value==="boolean"?$.where.value:void 0,J=Q?await Z.storage.virtualMcps.listByConnectionId(X.id,Q):await Z.storage.virtualMcps.list(X.id,Y!==void 0?{pinnedOnly:Y}:void 0);if($.where)J=J.filter((U)=>V30(U,$.where));if($.orderBy&&$.orderBy.length>0)J=AP4(J,$.orderBy);let K=J.length,W=$.offset??0,H=$.limit??100,N=J.slice(W,W+H),F=W+H<K;return{items:N,totalCount:K,hasMore:F}}})});import{z as R11}from"zod";var IP4,qP4,I11;var JU8=w(()=>{n0();Ww();IP4=R11.object({id:R11.string().describe("ID of the virtual MCP to retrieve")}),qP4=R11.object({item:JX.nullable().describe("The retrieved virtual MCP, or null if not found")}),I11=m({name:"COLLECTION_VIRTUAL_MCP_GET",description:"Get a Virtual MCP's configuration, connections, and virtual tools by ID.",annotations:{title:"Get Virtual MCP",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:IP4,outputSchema:qP4,handler:async($,Z)=>{G0(Z);let X=X0(Z);await Z.access.check();let Q=await Z.storage.virtualMcps.findById($.id);if(Q&&Q.organization_id!==X.id)return{item:null};if(!Q)return{item:null};return{item:Q}}})});import{z as q11}from"zod";var MP4,VP4,M11;var KU8=w(()=>{n0();Vo();Ww();D11();MP4=q11.object({id:q11.string().describe("ID of the virtual MCP to update"),data:t70.describe("Partial virtual MCP data to update")}),VP4=q11.object({item:JX.describe("The updated virtual MCP entity")}),M11=m({name:"COLLECTION_VIRTUAL_MCP_UPDATE",description:"Update a Virtual MCP's name, slug, connection list, or kickstart prompts. Pass `prompts` to replace the agent's conversation starters (full set; empty array clears them).",annotations:{title:"Update Virtual MCP",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:MP4,outputSchema:VP4,handler:async($,Z)=>{G0(Z);let X=X0(Z);await Z.access.check();let Q=D1(Z);if(!Q)throw Error("User ID required to update virtual MCP");let Y=await Z.storage.virtualMcps.findById($.id);if(!Y)throw Error(`Virtual MCP not found: ${$.id}`);if(Y.organization_id!==X.id)throw Error(`Virtual MCP not found: ${$.id}`);let{prompts:G,...J}=$.data;if(J.metadata&&Y.metadata)J.metadata={...Y.metadata,...J.metadata};if(J.pinned!==void 0&&J.pinned!==Y.pinned)A30(Z);if(J.connections?.length)await T30(Z,X.id,J.connections.map((W)=>W.connection_id));let K=await Z.storage.virtualMcps.update($.id,Q,J);if(G!==void 0&&Z.orgFs)await M30(Z.orgFs,$.id,Q,G);return{item:K}}})});function kP4($){if(!$)return!1;let Z=k11.join("|");return new RegExp(`permission\\s+"?(?:${Z})"?\\s+is not allowed`,"i").test($)||/permissions exceed what the github app/i.test($)}function HU8($){let Z={...$};for(let X of k11)Z[X]="read";return Z}async function NU8($,Z){let X={...Z};for(;;){let Q=await $(X);if(!Q.isError)return{result:Q,grantedPermissions:X};let Y=Q.content?.find((W)=>W.type==="text")?.text,G=k11.find((W)=>(W in X));if(!G||!kP4(Y))return{result:Q,grantedPermissions:X};let{[G]:J,...K}=X;X=K}}function SP4($){if(!$||typeof $!=="object"||Array.isArray($))return WU8;let Z=$;if(Object.values(Z).some((X)=>typeof X!=="string"))return WU8;return Z}function CP4($){if(typeof $!=="number"||!Number.isFinite($)||!Number.isInteger($)||$<=0)return;return $}function h5($){let Z=$.metadata?.repoScope;if(!Z||typeof Z.installationId!=="number"||!Number.isFinite(Z.installationId)||!Number.isInteger(Z.installationId)||Z.installationId<=0||typeof Z.owner!=="string"||typeof Z.repo!=="string"||Z.owner.length===0||Z.repo.length===0)return null;let X=CP4(Z.repositoryId);return{sourceConnectionId:typeof Z.sourceConnectionId==="string"?Z.sourceConnectionId:void 0,installationId:Z.installationId,repositoryId:X,owner:Z.owner,repo:Z.repo,permissions:SP4(Z.permissions),grantProvider:Z.grantProvider==="github-mcp"?"github-mcp":void 0}}function rj($){return $.metadata?.orgShared===!0}function FU8($){let Z=new Set,X=[];for(let Q of $??[]){if(Q.status!=="active")continue;let Y=h5(Q);if(Y===null)continue;let G=V11(Y.owner,Y.repo);if(Z.has(G))continue;Z.add(G),X.push(`${Y.owner}/${Y.repo}`)}return X}function k30($,Z,X){let Q=V11(Z,X),Y=($??[]).filter((G)=>{if(G.status&&G.status!=="active")return!1;let J=h5(G);return J!==null&&V11(J.owner,J.repo)===Q});return Y.find(rj)??Y[0]??null}var WU8,k11,V11=($,Z)=>`${$}/${Z}`.toLowerCase();var XY=w(()=>{WU8={contents:"write",metadata:"read",pull_requests:"write",issues:"write",checks:"read",deployments:"read"},k11=["deployments","checks"]});function UU8($){return D3($)!==null||DQ0($)!==null}var BU8=w(()=>{T6()});import{z as S11}from"zod";var _P4,vP4,C11;var OU8=w(()=>{XY();k3();n0();Vo();Ww();BU8();_P4=S11.object({id:S11.string().describe("ID of the virtual MCP to delete")}),vP4=S11.object({item:JX.describe("The deleted virtual MCP entity")}),C11=m({name:"COLLECTION_VIRTUAL_MCP_DELETE",description:"Permanently delete a Virtual MCP and its virtual tools.",annotations:{title:"Delete Virtual MCP",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:_P4,outputSchema:vP4,handler:async($,Z)=>{G0(Z);let X=X0(Z);if(await Z.access.check(),UU8($.id))throw Error(`Virtual MCP not found: ${$.id}`);let Q=await Z.storage.virtualMcps.findById($.id);if(!Q)throw Error(`Virtual MCP not found: ${$.id}`);if(Q.organization_id!==X.id)throw Error(`Virtual MCP not found: ${$.id}`);await Z.storage.virtualMcps.delete($.id);try{if((await Z.storage.organizationSettings.get(X.id))?.main_agent_id===$.id)await Z.storage.organizationSettings.upsert(X.id,{main_agent_id:null})}catch(G){console.error("[VIRTUAL_MCP_DELETE] failed to clear main agent pointer",{id:$.id,error:G.message})}if(Z.orgFs)await z11(Z.orgFs,$.id,D1(Z)??"system");let Y=Q.metadata?.githubRepo?.connectionId;if(Y)try{let G=await Z.storage.connections.findById(Y,X.id),J=G&&(rj(G)||(await Z.storage.virtualMcps.listByConnectionId(X.id,Y)).length>0||await Z.storage.connections.isReferencedByThread(Y));if(G&&h5(G)&&!J){let W=await new $5(Z.db,Z.vault).get(Y);if(W?.accessToken)try{await fetch("https://api.github.com/installation/token",{method:"DELETE",headers:{Authorization:`Bearer ${W.accessToken}`,Accept:"application/vnd.github+json","X-GitHub-Api-Version":"2022-11-28"},signal:AbortSignal.timeout(5000)})}catch{}await Z.storage.connections.delete(Y)}}catch(G){console.error("[VIRTUAL_MCP_DELETE] failed to tear down repo-scoped connection",{childConnectionId:Y,error:G.message})}return{item:Q}}})});import{z as QY}from"zod";var xP4,_11;var wU8=w(()=>{n0();xP4=QY.object({id:QY.string(),virtualMcpId:QY.string(),pluginId:QY.string(),connectionId:QY.string().nullable(),settings:QY.record(QY.string(),QY.unknown()).nullable(),createdAt:QY.string(),updatedAt:QY.string()}),_11=m({name:"VIRTUAL_MCP_PLUGIN_CONFIG_GET",description:"Get a plugin's current configuration for a specific virtual MCP.",annotations:{title:"Get Virtual MCP Plugin Config",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:QY.object({virtualMcpId:QY.string().describe("Virtual MCP ID"),pluginId:QY.string().describe("Plugin ID")}),outputSchema:QY.object({config:xP4.nullable()}),handler:async($,Z)=>{G0(Z);let X=X0(Z);await Z.access.check();let{virtualMcpId:Q,pluginId:Y}=$,G=await Z.storage.connections.findById(Q);if(!G||G.organization_id!==X.id)return{config:null};if(G.connection_type!=="VIRTUAL")return{config:null};let J=await Z.storage.virtualMcpPluginConfigs.get(Q,Y);if(!J)return{config:null};return{config:{id:J.id,virtualMcpId:J.virtualMcpId,pluginId:J.pluginId,connectionId:J.connectionId,settings:J.settings,createdAt:J.createdAt instanceof Date?J.createdAt.toISOString():J.createdAt,updatedAt:J.updatedAt instanceof Date?J.updatedAt.toISOString():J.updatedAt}}}})});import{z as eZ}from"zod";var fP4,v11;var LU8=w(()=>{n0();Dh();_9();fP4=eZ.object({id:eZ.string(),virtualMcpId:eZ.string(),pluginId:eZ.string(),connectionId:eZ.string().nullable(),settings:eZ.record(eZ.string(),eZ.unknown()).nullable(),createdAt:eZ.string(),updatedAt:eZ.string()}),v11=m({name:"VIRTUAL_MCP_PLUGIN_CONFIG_UPDATE",description:"Set or update a plugin's configuration for a specific virtual MCP.",annotations:{title:"Update Virtual MCP Plugin Config",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:eZ.object({virtualMcpId:eZ.string().describe("Virtual MCP ID"),pluginId:eZ.string().describe("Plugin ID"),connectionId:eZ.string().nullable().optional().describe("MCP connection to bind"),settings:eZ.record(eZ.string(),eZ.unknown()).nullable().optional().describe("Plugin-specific settings")}),outputSchema:eZ.object({config:fP4}),handler:async($,Z)=>{G0(Z);let X=X0(Z);await Z.access.check();let{virtualMcpId:Q,pluginId:Y,connectionId:G,settings:J}=$,K=D1(Z),W=await Z.storage.connections.findById(Q);if(!W)throw Error(`Connection not found: ${Q}`);if(W.organization_id!==X.id)throw Error(`Connection not found: ${Q}`);if(W.connection_type!=="VIRTUAL")throw Error(`Connection not found: ${Q}`);let H=G?await Z.storage.connections.findById(G):null;if(G&&H&&H.organization_id!==X.id)throw Error(`Connection not found: ${G}`);if(G&&W.organization_id&&!H&&UK()&&L30(G,W.organization_id)){if(!K)throw Error("User ID required to create dev-assets connection");let F=Lh(W.organization_id,B9());await Z.storage.connections.create({...F,organization_id:W.organization_id,created_by:K})}else if(G&&!H)throw Error(`Connection not found: ${G}`);let N=await Z.storage.virtualMcpPluginConfigs.upsert(Q,Y,{connectionId:G,settings:J});return{config:{id:N.id,virtualMcpId:N.virtualMcpId,pluginId:N.pluginId,connectionId:N.connectionId,settings:N.settings,createdAt:N.createdAt instanceof Date?N.createdAt.toISOString():N.createdAt,updatedAt:N.updatedAt instanceof Date?N.updatedAt.toISOString():N.updatedAt}}}})});import{z as UQ}from"zod";var bP4,x11;var DU8=w(()=>{n0();Ww();bP4=UQ.object({connectionId:UQ.string(),toolName:UQ.string(),label:UQ.string(),icon:UQ.string().nullable().optional()}),x11=m({name:"VIRTUAL_MCP_PINNED_VIEWS_UPDATE",description:"Update the pinned sidebar views for a virtual MCP. Replaces all current pins.",annotations:{title:"Update Pinned Views",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:UQ.object({virtualMcpId:UQ.string().describe("Virtual MCP ID"),pinnedViews:UQ.array(bP4).describe("Pinned views to set for the virtual MCP sidebar"),layout:UQ.object({defaultMainView:UQ.object({type:UQ.string(),id:UQ.string().optional(),toolName:UQ.string().optional()}).nullable().optional(),chatDefaultOpen:UQ.boolean().nullable().optional()}).optional()}),outputSchema:UQ.object({item:JX.nullable()}),handler:async($,Z)=>{G0(Z);let X=X0(Z);await Z.access.check();let{virtualMcpId:Q,pinnedViews:Y,layout:G}=$,J=D1(Z),K=await Z.storage.virtualMcps.findById(Q);if(!K)throw Error(`Virtual MCP not found: ${Q}`);if(K.organization_id!==X.id)throw Error(`Virtual MCP not found: ${Q}`);let W=K.metadata?.ui??{},H={...W,pinnedViews:Y.length>0?Y:null,layout:G??W.layout??null};return{item:await Z.storage.virtualMcps.update(Q,J??"system",{metadata:{...K.metadata,ui:H}})}}})});import{z as _F}from"zod";var yP4,gP4,f11;var EU8=w(()=>{n0();yP4=_F.object({ids:_F.array(_F.string()).describe("Virtual MCP ids to look up")}),gP4=_F.object({items:_F.array(_F.object({id:_F.string(),last_used_at:_F.string().optional(),last_used_by:_F.string().optional()}))}),f11=m({name:"VIRTUAL_MCP_LAST_USED_LIST",description:"Get last-used info (timestamp + user) for one or more virtual MCPs, derived from the most recent thread per agent.",annotations:{title:"List Virtual MCP Last Used",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:yP4,outputSchema:gP4,handler:async($,Z)=>{G0(Z),X0(Z),await Z.access.check();let X=await Z.storage.threads.findLastUsedByVirtualMcpIds($.ids);return{items:$.ids.map((Q)=>({id:Q,last_used_at:X.get(Q)?.last_used_at,last_used_by:X.get(Q)?.last_used_by}))}}})});var jU8=w(()=>{YU8();GU8();JU8();KU8();OU8();wU8();LU8();DU8();EU8()});import{z as wX}from"zod";var b11;var zU8=w(()=>{r$();n0();b11=m({name:"MONITORING_HEATMAP",description:"Get tool-call volume broken down by agent and tool name, for spotting heavily-used tools per agent.",annotations:{title:"Get Tool-Call Heatmap",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:wX.object({startDate:wX.string().datetime().optional().describe("Filter by start date (ISO 8601 datetime string)"),endDate:wX.string().datetime().optional().describe("Filter by end date (ISO 8601 datetime string)"),virtualMcpIds:wX.array(wX.string()).max(100).optional().describe("Filter by specific agent (Virtual MCP) IDs"),excludeConnectionIds:wX.array(wX.string()).max(100).optional().describe("Exclude tool calls from these connection IDs"),limit:wX.number().int().min(1).max(1000).optional().describe("Max number of (agent, tool) cells to return")}),outputSchema:wX.object({cells:wX.array(wX.object({virtualMcpId:wX.string().nullable(),toolName:wX.string(),calls:wX.number(),errors:wX.number(),outputSize:wX.number().describe("Sum of tool-output character length \u2014 a proxy for context weight, not LLM token count")}))}),handler:async($,Z)=>{let X=X0(Z);return await Z.access.check(),await cQ(),Z.storage.monitoring.queryToolCallHeatmap({organizationId:X.id,startDate:$.startDate?new Date($.startDate):void 0,endDate:$.endDate?new Date($.endDate):void 0,filters:{virtualMcpIds:$.virtualMcpIds,excludeConnectionIds:$.excludeConnectionIds},limit:$.limit})}})});import{z as q5}from"zod";var y11;var PU8=w(()=>{r$();n0();y11=m({name:"MONITORING_LOG_GET",description:"Get a single monitoring log by ID with full input and output data.",annotations:{title:"Get Monitoring Log",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:q5.object({id:q5.string().describe("Log ID to fetch")}),outputSchema:q5.object({log:q5.object({id:q5.string().optional(),organizationId:q5.string(),connectionId:q5.string(),toolName:q5.string(),input:q5.record(q5.string(),q5.unknown()),output:q5.record(q5.string(),q5.unknown()),isError:q5.boolean(),errorMessage:q5.string().nullish(),durationMs:q5.number(),timestamp:q5.string(),userId:q5.string().nullish(),requestId:q5.string(),userAgent:q5.string().nullish(),virtualMcpId:q5.string().nullish(),properties:q5.record(q5.string(),q5.string()).nullish()}).nullable().describe("The monitoring log, or null if not found")}),handler:async($,Z)=>{await Z.access.check(),await cQ();let X=X0(Z),Q=await Z.storage.monitoring.getById(X.id,$.id);if(!Q)return{log:null};return{log:{...Q,timestamp:Q.timestamp instanceof Date?Q.timestamp.toISOString():Q.timestamp}}}})});import{z as E6}from"zod";var uP4,g11;var AU8=w(()=>{r$();n0();uP4=E6.object({id:E6.string().optional().describe("Unique log identifier"),organizationId:E6.string().describe("Organization ID"),connectionId:E6.string().describe("Connection ID"),toolName:E6.string().describe("Name of the tool that was called"),isError:E6.boolean().describe("Whether the call resulted in an error"),errorMessage:E6.string().nullish().describe("Error message if applicable"),durationMs:E6.number().describe("Call duration in milliseconds"),timestamp:E6.string().describe("ISO 8601 timestamp of the call"),userId:E6.string().nullish().describe("User who triggered the call"),requestId:E6.string().describe("Unique request identifier"),userAgent:E6.string().nullish().describe("Client identifier (x-studio-client header)"),virtualMcpId:E6.string().nullish().describe("Virtual MCP (Agent) ID if routed through an agent"),properties:E6.record(E6.string(),E6.string()).nullish().describe("Custom key-value metadata attached to the log")}),g11=m({name:"MONITORING_LOGS_LIST",description:"List monitoring logs for tool calls with filtering and pagination.",annotations:{title:"List Monitoring Logs",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:E6.object({connectionId:E6.string().optional().describe("Filter by connection ID"),excludeConnectionIds:E6.array(E6.string()).optional().describe("Exclude logs from these connection IDs (e.g. system connections)"),virtualMcpId:E6.string().optional().describe("Filter by Virtual MCP (Agent) ID"),toolName:E6.string().optional().describe("Filter by tool name"),isError:E6.boolean().optional().describe("Filter by error status"),startDate:E6.string().datetime().optional().describe("Filter by start date (ISO 8601 datetime string)"),endDate:E6.string().datetime().optional().describe("Filter by end date (ISO 8601 datetime string)"),limit:E6.number().default(20).describe("Maximum number of results"),offset:E6.number().default(0).describe("Offset for pagination"),properties:E6.record(E6.string(),E6.string()).optional().describe("Filter by exact property key=value matches"),propertyKeys:E6.array(E6.string()).optional().describe("Filter by logs that have these property keys"),propertyPatterns:E6.record(E6.string(),E6.string()).optional().describe("Filter by property value patterns (SQL LIKE, use % as wildcard)"),propertyInValues:E6.record(E6.string(),E6.string()).optional().describe("Filter by exact match within comma-separated values (e.g., user_tags in 'Engineering')")}),outputSchema:E6.object({logs:E6.array(uP4).describe("Array of monitoring logs"),total:E6.number().describe("Total number of logs matching filters"),offset:E6.number().describe("Current offset for pagination"),limit:E6.number().describe("Current limit for pagination")}),handler:async($,Z)=>{await cQ();let X=X0(Z),Y=$.properties||$.propertyKeys||$.propertyPatterns||$.propertyInValues?{properties:$.properties,propertyKeys:$.propertyKeys,propertyPatterns:$.propertyPatterns,propertyInValues:$.propertyInValues}:void 0,G={organizationId:X.id,connectionId:$.connectionId,excludeConnectionIds:$.excludeConnectionIds,virtualMcpId:$.virtualMcpId,toolName:$.toolName,isError:$.isError,startDate:$.startDate?new Date($.startDate):void 0,endDate:$.endDate?new Date($.endDate):void 0,limit:$.limit,offset:$.offset,propertyFilters:Y},J=await Z.storage.monitoring.query(G);return{logs:J.logs.map(({input:K,output:W,...H})=>({...H,timestamp:H.timestamp instanceof Date?H.timestamp.toISOString():H.timestamp})),total:J.total,offset:$.offset,limit:$.limit}}})});import{z as F8}from"zod";var h11;var TU8=w(()=>{r$();n0();h11=m({name:"MONITORING_STATS",description:"Get aggregated statistics (counts, latency, error rates) for tool call monitoring.",annotations:{title:"Get Monitoring Stats",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:F8.object({startDate:F8.string().datetime().optional().describe("Filter by start date (ISO 8601 datetime string)"),endDate:F8.string().datetime().optional().describe("Filter by end date (ISO 8601 datetime string)"),interval:F8.string().regex(/^\d+[mhd]$/).optional().describe("Bucket interval for timeseries data (e.g. 1m, 5m, 2h, 1d). When provided, returns timeseries array."),connectionIds:F8.array(F8.string()).max(100).optional().describe("Filter by specific connection IDs (max 100)"),excludeConnectionIds:F8.array(F8.string()).max(100).optional().describe("Exclude specific connection IDs (max 100)"),toolNames:F8.array(F8.string()).max(100).optional().describe("Filter by specific tool names (max 100)"),status:F8.enum(["success","error"]).optional().describe("Filter metrics by execution status"),topN:F8.number().int().min(1).max(20).optional().describe("When provided with interval, also return top tools and their timeseries"),userIds:F8.array(F8.string()).max(100).optional().describe("Filter LLM usage by user IDs (only applied when llmUsage is true)"),llmUsage:F8.boolean().optional().describe("Aggregate LLM-call usage (tokens + USD cost) from raw log rows for the given connection. Returns token/cost totals and timeseries. Requires interval.")}),outputSchema:F8.object({totalCalls:F8.number().describe("Total number of tool calls"),errorRate:F8.number().optional().describe("Error rate as a decimal (0 to 1)"),avgDurationMs:F8.number().describe("Average call duration in milliseconds"),errorRatePercent:F8.string().optional().describe("Error rate as a percentage string"),totalErrors:F8.number().optional().describe("Total number of errors"),p50DurationMs:F8.number().optional().describe("50th percentile duration in milliseconds"),p95DurationMs:F8.number().optional().describe("95th percentile duration in milliseconds"),connectionBreakdown:F8.array(F8.object({connectionId:F8.string(),calls:F8.number(),errors:F8.number(),errorRate:F8.number(),avgDurationMs:F8.number()})).optional().describe("Per-connection metric breakdown"),totalInputTokens:F8.number().optional().describe("Total input tokens (LLM usage mode)"),totalOutputTokens:F8.number().optional().describe("Total output tokens (LLM usage mode)"),totalTokens:F8.number().optional().describe("Total tokens (LLM usage mode)"),totalCostUsd:F8.number().optional().describe("Total USD cost (LLM usage mode; only non-zero for providers that report cost)"),topTools:F8.array(F8.object({toolName:F8.string(),connectionId:F8.string().nullable(),calls:F8.number(),inputTokens:F8.number().optional(),outputTokens:F8.number().optional(),costUsd:F8.number().optional()})).optional().describe("Top tools ranked by calls"),topToolsTimeseries:F8.array(F8.object({timestamp:F8.string(),toolName:F8.string(),calls:F8.number(),errors:F8.number(),avg:F8.number(),p95:F8.number()})).optional().describe("Per-tool metric timeseries for the top tools"),timeseries:F8.array(F8.object({timestamp:F8.string(),calls:F8.number(),errors:F8.number(),errorRate:F8.number(),avg:F8.number(),p50:F8.number(),p95:F8.number(),inputTokens:F8.number().optional(),outputTokens:F8.number().optional(),totalTokens:F8.number().optional(),costUsd:F8.number().optional()})).optional().describe("Timeseries data points bucketed by interval")}),handler:async($,Z)=>{let X=X0(Z);if(await Z.access.check(),await cQ(),$.interval&&$.llmUsage)return Z.storage.monitoring.queryLlmUsageStats({organizationId:X.id,interval:$.interval,connectionId:$.connectionIds?.[0]??"decopilot",startDate:$.startDate?new Date($.startDate):void 0,endDate:$.endDate?new Date($.endDate):void 0,userIds:$.userIds,topN:$.topN});if($.interval){let Y=await Z.storage.monitoring.queryMetricTimeseries({organizationId:X.id,interval:$.interval,startDate:$.startDate?new Date($.startDate):void 0,endDate:$.endDate?new Date($.endDate):void 0,filters:{connectionIds:$.connectionIds,excludeConnectionIds:$.excludeConnectionIds,toolNames:$.toolNames,status:$.status}});if(!$.topN)return Y;let G=await Z.storage.monitoring.queryMetricTopToolsTimeseries({organizationId:X.id,interval:$.interval,startDate:$.startDate?new Date($.startDate):void 0,endDate:$.endDate?new Date($.endDate):void 0,topN:$.topN,filters:{connectionIds:$.connectionIds,excludeConnectionIds:$.excludeConnectionIds,toolNames:$.toolNames,status:$.status}});return{...Y,topTools:G.topTools,topToolsTimeseries:G.timeseries}}let Q=await Z.storage.monitoring.getStats({organizationId:X.id,startDate:$.startDate?new Date($.startDate):void 0,endDate:$.endDate?new Date($.endDate):void 0});return{...Q,errorRatePercent:(Q.errorRate*100).toFixed(2)}}})});import{z as BQ}from"zod";var u11;var RU8=w(()=>{r$();n0();u11=m({name:"MONITORING_THREAD_USAGE",description:"Aggregate LLM token usage and USD cost per thread for the given thread IDs.",annotations:{title:"Get Thread Usage",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:BQ.object({threadIds:BQ.array(BQ.string()).min(1).max(500).describe("Thread IDs to aggregate usage for (max 500)"),connectionId:BQ.string().optional().describe("LLM connection ID (defaults to 'decopilot')"),startDate:BQ.string().datetime().optional().describe("Filter by start date (ISO 8601 datetime string)"),endDate:BQ.string().datetime().optional().describe("Filter by end date (ISO 8601 datetime string)")}),outputSchema:BQ.object({items:BQ.array(BQ.object({threadId:BQ.string(),calls:BQ.number(),inputTokens:BQ.number(),outputTokens:BQ.number(),totalTokens:BQ.number(),costUsd:BQ.number()}))}),handler:async($,Z)=>{let X=X0(Z);return await Z.access.check(),await cQ(),{items:await Z.storage.monitoring.queryThreadUsage({organizationId:X.id,connectionId:$.connectionId??"decopilot",threadIds:$.threadIds,startDate:$.startDate?new Date($.startDate):void 0,endDate:$.endDate?new Date($.endDate):void 0})}}})});var IU8=w(()=>{zU8();PU8();AU8();TU8();RU8()});function S30($){return typeof $==="string"&&lP4.has($.trim().toLowerCase())}var lP4;var c11=w(()=>{lP4=new Set([".well-known","_admin","api","auth","cli","commerce-onboarding","dbos-queue-depth","health","hosted-run-pending","login","mcp","metrics","oauth","oauth-proxy","onboarding","org","report","reset-password"])});import{z as wG}from"zod";var l11;var qU8=w(()=>{n0();c11();l11=m({name:"ORGANIZATION_CREATE",description:"Create a new organization. The caller becomes the owner automatically.",annotations:{title:"Create Organization",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!1,openWorldHint:!1},inputSchema:wG.object({slug:wG.string().min(1).max(50).regex(/^[a-z0-9-]+$/,"Slug must be lowercase alphanumeric with hyphens").refine(($)=>!S30($),"Slug is reserved by Studio"),name:wG.string().min(1).max(255),description:wG.string().optional()}),outputSchema:wG.object({id:wG.string(),name:wG.string(),slug:wG.string(),logo:wG.string().nullable().optional(),metadata:wG.any().optional(),createdAt:wG.string().datetime().describe("ISO 8601 timestamp"),members:wG.array(wG.any()).optional()}),handler:async($,Z)=>{G0(Z),await Z.access.check();let X=D1(Z);if(!X)throw Error("User ID required to create organization");let Q=await Z.boundAuth.organization.create({name:$.name,slug:$.slug,metadata:$.description?{description:$.description}:void 0,userId:X});if(!Q)throw Error("Failed to create organization");return{...Q,createdAt:Q.createdAt instanceof Date?Q.createdAt.toISOString():Q.createdAt}}})});import{z as BK}from"zod";var d11;var MU8=w(()=>{n0();d11=m({name:"ORGANIZATION_LIST",description:"List organizations the current user belongs to.",annotations:{title:"List Organizations",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},_meta:{ui:{visibility:"app"}},inputSchema:BK.object({userId:BK.string().optional()}),outputSchema:BK.object({organizations:BK.array(BK.object({id:BK.string(),name:BK.string(),slug:BK.string(),logo:BK.string().nullable().optional(),metadata:BK.any().optional(),createdAt:BK.string().datetime().describe("ISO 8601 timestamp")}))}),handler:async($,Z)=>{G0(Z),await Z.access.check();let X=D1(Z),Q=$.userId||X;if(!Q)throw Error("User ID required to list organizations");return{organizations:(await Z.boundAuth.organization.list(Q)).map((G)=>({...G,createdAt:G.createdAt instanceof Date?G.createdAt.toISOString():G.createdAt}))}}})});import{z as S3}from"zod";var m11;var VU8=w(()=>{n0();m11=m({name:"ORGANIZATION_GET",description:"Get an organization's details, members, and settings by slug or ID.",annotations:{title:"Get Organization",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:S3.object({}),outputSchema:S3.object({id:S3.string(),name:S3.string(),slug:S3.string(),logo:S3.string().nullable().optional(),metadata:S3.any().optional(),createdAt:S3.string().datetime().describe("ISO 8601 timestamp"),members:S3.array(S3.any()).optional(),invitations:S3.array(S3.any()).optional()}),handler:async($,Z)=>{G0(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.boundAuth.organization.get(X);if(!Q)throw Error("No active organization found");let Y=new Date,G=Q.invitations?.filter((J)=>new Date(J.expiresAt)>Y);return{...Q,invitations:G,createdAt:Q.createdAt instanceof Date?Q.createdAt.toISOString():Q.createdAt}}})});import{z as OK}from"zod";var i11;var kU8=w(()=>{n0();i11=m({name:"ORGANIZATION_UPDATE",description:"Update an organization's name or description.",annotations:{title:"Update Organization",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:OK.object({id:OK.string(),name:OK.string().min(1).max(255).optional(),description:OK.string().optional()}),outputSchema:OK.object({id:OK.string(),name:OK.string(),slug:OK.string(),logo:OK.string().nullable().optional(),metadata:OK.any().optional(),createdAt:OK.string().datetime().describe("ISO 8601 timestamp")}),handler:async($,Z)=>{G0(Z),await Z.access.check();let X={};if($.name)X.name=$.name;if($.description)X.metadata={description:$.description};let Q=await Z.boundAuth.organization.update({organizationId:$.id,data:X});if(!Q)throw Error("Failed to update organization");return{...Q,createdAt:Q.createdAt instanceof Date?Q.createdAt.toISOString():Q.createdAt}}})});import{z as ko}from"zod";var n11;var SU8=w(()=>{n0();n11=m({name:"ORGANIZATION_DELETE",description:"Archive an organization (soft delete).",annotations:{title:"Delete Organization",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:ko.object({id:ko.string()}),outputSchema:ko.object({success:ko.boolean(),id:ko.string()}),handler:async($,Z)=>{return G0(Z),await Z.access.check(),await Z.boundAuth.organization.update({organizationId:$.id,data:{metadata:{archived:!0,archivedAt:new Date().toISOString()}}}),{success:!0,id:$.id}}})});import{z as w8}from"zod";function C30($,Z){let X=$?.[Z];return dP4.has(Z)?X!==!1:X===!0}var So,Co,vF,CU8,Dw,_o,vo,xo,fo,dP4,Ew;var YY=w(()=>{So=w8.object({title:w8.string(),url:w8.string(),icon:w8.string()}),Co=w8.object({registries:w8.record(w8.string(),w8.object({enabled:w8.boolean()})).describe("Per-registry enabled/disabled state. Key is connection ID. Absent registries are treated as enabled."),blockedMcps:w8.array(w8.string()).describe("List of MCP app_name or app_id values to hide from the store.")}),vF=w8.object({keyId:w8.string(),modelId:w8.string(),title:w8.string().optional()}).nullable(),CU8=w8.enum(["fast","smart","thinking","image","web_search","deep_research"]),Dw=w8.enum(["fast","smart","thinking"]),_o=w8.object({tiers:w8.object({fast:vF,smart:vF,thinking:vF,image:vF,web_search:vF,deep_research:vF})}),vo=w8.object({tiers:w8.object({fast:vF.optional(),smart:vF.optional(),thinking:vF.optional()})}),xo=w8.object({ids:w8.array(w8.string()).describe("Ordered list of custom virtual MCP agent ids to show on the home view.")}),fo=w8.object({demo_mode:w8.boolean().optional().describe("Curated demo org: the commerce connect modal proceeds without a configured required data source."),reports_only:w8.boolean().optional().describe("Curated commerce (reports) look: hides agent navigation, the home Customize button, and the Settings/Automations tabs. Defaulted on for orgs created by commerce onboarding."),nav_v2:w8.boolean().optional().describe("First-class navigation: the sidebar lists destinations (Reports, Library, Tasks) instead of chat threads, and the thread list moves into a menu at the top of the chat panel. Always on for reports_only orgs."),qa_agent_enabled:w8.boolean().optional().describe("Run the QA Agent on a task's pull request once it's In Review \u2014 it verifies the task actually solved the problem (exercises the feature, not just the diff)."),code_reviewer_enabled:w8.boolean().optional().describe("Run the Code Reviewer on a task's pull request once it's In Review \u2014 it reviews the code using the repo's stack-appropriate review skills."),auto_merge:w8.boolean().optional().describe("When every enabled reviewer (QA Agent / Code Reviewer) approves a task's pull request, merge it automatically instead of leaving the merge to a human. If the merge is blocked by a conflict with the base branch, hand the PR back to the Super Agent to resolve the conflict (check out the branch, merge the base, push) so it can then merge."),cheap_reviewer_model:w8.boolean().optional().describe("Run the QA Agent and Code Reviewer on a cheaper model than the Super Agent. A review reads a diff and reaches a verdict; it does not need the model that wrote the code. Off by default \u2014 turning it on trades some review depth for cost."),auto_assign_report_tasks_to_super_agent:w8.boolean().optional().describe("When a report import creates a task board item without an assignee, delegate it to the Super Agent automatically instead of leaving it unassigned.")}),dP4=new Set(["qa_agent_enabled","code_reviewer_enabled"]);Ew=w8.object({id:w8.string().describe("Brand context ID"),name:w8.string().describe("Company name"),domain:w8.string().describe("Company domain (e.g. example.com)"),overview:w8.string().describe("Company overview / description"),logo:w8.string().nullable().optional().describe("Logo URL"),favicon:w8.string().nullable().optional().describe("Favicon URL"),ogImage:w8.string().nullable().optional().describe("OG image URL"),fonts:w8.object({heading:w8.string().optional().describe("Font family for headings"),body:w8.string().optional().describe("Font family for body text"),code:w8.string().optional().describe("Font family for code / monospace")}).nullable().optional().describe("Font families by semantic role"),colors:w8.object({primary:w8.string().optional().describe("Primary brand color (hex)"),secondary:w8.string().optional().describe("Secondary brand color (hex)"),accent:w8.string().optional().describe("Accent / highlight color (hex)"),background:w8.string().optional().describe("Background color (hex)"),foreground:w8.string().optional().describe("Foreground / text color (hex)")}).nullable().optional().describe("Semantic color palette"),images:w8.array(w8.record(w8.string(),w8.unknown())).nullable().optional().describe("Brand images"),metadata:w8.record(w8.string(),w8.unknown()).nullable().optional().describe("Extra design tokens (typography, components, spacing, layout, tone, etc.)"),archivedAt:w8.string().nullable().optional().describe("Archive timestamp (null to unarchive)"),isDefault:w8.boolean().optional().describe("Whether this is the default brand for the organization")})});import{z as xF}from"zod";var p11;var _U8=w(()=>{n0();YY();p11=m({name:"ORGANIZATION_SETTINGS_GET",description:"Get organization-level settings including sidebar configuration, store registry settings, simple model mode, and default home agents.",annotations:{title:"Get Organization Settings",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:xF.object({}),outputSchema:xF.object({organizationId:xF.string(),sidebar_items:xF.array(So).nullable().optional(),enabled_plugins:xF.array(xF.string()).nullable().optional(),registry_config:Co.nullable().optional(),simple_mode:_o.nullable().optional(),default_home_agents:xo.nullable().optional(),flags:fo.nullable().optional(),main_agent_id:xF.string().nullable().optional(),createdAt:xF.string().datetime().optional().describe("ISO 8601 timestamp"),updatedAt:xF.string().datetime().optional().describe("ISO 8601 timestamp")}),handler:async($,Z)=>{G0(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.organizationSettings.get(X);if(!Q)return{organizationId:X};return{...Q,createdAt:Q.createdAt instanceof Date?Q.createdAt.toISOString():Q.createdAt,updatedAt:Q.updatedAt instanceof Date?Q.updatedAt.toISOString():Q.updatedAt}}})});import{z as GY}from"zod";var t11;var vU8=w(()=>{n0();YY();t11=m({name:"ORGANIZATION_SETTINGS_UPDATE",description:"Update organization-level settings such as sidebar configuration, store registry settings, simple model mode, and default home agents.",annotations:{title:"Update Organization Settings",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:GY.object({organizationId:GY.string(),sidebar_items:GY.array(So).optional(),enabled_plugins:GY.array(GY.string()).optional(),registry_config:Co.optional(),simple_mode:_o.optional(),default_home_agents:xo.optional(),flags:fo.strict().optional().describe("Org boolean toggles. Shallow-merged into the stored flags: keys you pass win (explicit false persists), omitted keys keep their value."),main_agent_id:GY.string().nullable().optional().describe("Virtual MCP id the org lands on instead of the Super Agent. Pass null to clear.")}),outputSchema:GY.object({organizationId:GY.string(),sidebar_items:GY.array(So).nullable().optional(),enabled_plugins:GY.array(GY.string()).nullable().optional(),registry_config:Co.nullable().optional(),simple_mode:_o.nullable().optional(),default_home_agents:xo.nullable().optional(),flags:fo.nullable().optional(),main_agent_id:GY.string().nullable().optional(),createdAt:GY.string().datetime().describe("ISO 8601 timestamp"),updatedAt:GY.string().datetime().describe("ISO 8601 timestamp")}),handler:async($,Z)=>{if(G0(Z),await Z.access.check(),X0(Z).id!==$.organizationId)throw Error("Cannot update settings for a different organization");let Q=await Z.storage.organizationSettings.upsert($.organizationId,{sidebar_items:$.sidebar_items,enabled_plugins:$.enabled_plugins,registry_config:$.registry_config,simple_mode:$.simple_mode,default_home_agents:$.default_home_agents,flags:$.flags,main_agent_id:$.main_agent_id});return{...Q,createdAt:Q.createdAt instanceof Date?Q.createdAt.toISOString():Q.createdAt,updatedAt:Q.updatedAt instanceof Date?Q.updatedAt.toISOString():Q.updatedAt}}})});import{z as wK}from"zod";var xU8,o11,r11;var fU8=w(()=>{n0();YY();xU8=Ew.extend({organizationId:wK.string(),archivedAt:wK.string().nullable().optional().describe("ISO 8601 timestamp"),createdAt:wK.string().describe("ISO 8601 timestamp"),updatedAt:wK.string().describe("ISO 8601 timestamp")}),o11=m({name:"BRAND_CONTEXT_LIST",description:"List all brand contexts (company profiles) for the current organization.",annotations:{title:"List Brand Contexts",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:wK.object({includeArchived:wK.boolean().optional().describe("Include archived brands in the list")}),outputSchema:wK.object({items:wK.array(xU8)}),handler:async($,Z)=>{G0(Z),await Z.access.check();let X=Z.organization?.id;if(!X)throw Error("Organization ID required (no active organization in context)");return{items:(await Z.storage.brandContext.list(X,{includeArchived:$.includeArchived})).map((Y)=>({...Y,archivedAt:Y.archivedAt instanceof Date?Y.archivedAt.toISOString():Y.archivedAt,createdAt:Y.createdAt instanceof Date?Y.createdAt.toISOString():Y.createdAt,updatedAt:Y.updatedAt instanceof Date?Y.updatedAt.toISOString():Y.updatedAt}))}}}),r11=m({name:"BRAND_CONTEXT_GET",description:"Get a specific brand context by ID.",annotations:{title:"Get Brand Context",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:wK.object({id:wK.string().describe("Brand context ID")}),outputSchema:xU8.extend({organizationId:wK.string()}),handler:async($,Z)=>{G0(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.brandContext.get($.id,X);if(!Q)throw Error("Brand context not found");return{...Q,archivedAt:Q.archivedAt instanceof Date?Q.archivedAt.toISOString():Q.archivedAt,createdAt:Q.createdAt instanceof Date?Q.createdAt.toISOString():Q.createdAt,updatedAt:Q.updatedAt instanceof Date?Q.updatedAt.toISOString():Q.updatedAt}}})});import{z as aj}from"zod";var bU8,a11,s11,e11;var yU8=w(()=>{n0();YY();bU8=Ew.extend({organizationId:aj.string(),createdAt:aj.string().describe("ISO 8601 timestamp"),updatedAt:aj.string().describe("ISO 8601 timestamp")}),a11=m({name:"BRAND_CONTEXT_CREATE",description:"Create a new brand context (company profile) for the current organization.",annotations:{title:"Create Brand Context",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1,openWorldHint:!1},inputSchema:Ew.omit({id:!0}),outputSchema:bU8,handler:async($,Z)=>{G0(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.brandContext.create(X,{name:$.name,domain:$.domain,overview:$.overview,logo:$.logo??null,favicon:$.favicon??null,ogImage:$.ogImage??null,fonts:$.fonts??null,colors:$.colors??null,images:$.images??null,metadata:$.metadata??null});return{...Q,archivedAt:Q.archivedAt instanceof Date?Q.archivedAt.toISOString():Q.archivedAt,createdAt:Q.createdAt instanceof Date?Q.createdAt.toISOString():Q.createdAt,updatedAt:Q.updatedAt instanceof Date?Q.updatedAt.toISOString():Q.updatedAt}}}),s11=m({name:"BRAND_CONTEXT_UPDATE",description:"Update an existing brand context by ID.",annotations:{title:"Update Brand Context",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:Ew.partial().required({id:!0}),outputSchema:bU8,handler:async($,Z)=>{G0(Z),await Z.access.check();let X=Z.organization?.id;if(!X)throw Error("Organization ID required (no active organization in context)");if(!await Z.storage.brandContext.get($.id,X))throw Error("Brand context not found");let{id:Y,...G}=$;if(G.isDefault===!0)await Z.storage.brandContext.setDefault(Y,X);let J=await Z.storage.brandContext.update(Y,X,{name:G.name,domain:G.domain,overview:G.overview,logo:G.logo!==void 0?G.logo??null:void 0,favicon:G.favicon!==void 0?G.favicon??null:void 0,ogImage:G.ogImage!==void 0?G.ogImage??null:void 0,fonts:G.fonts!==void 0?G.fonts??null:void 0,colors:G.colors!==void 0?G.colors??null:void 0,images:G.images!==void 0?G.images??null:void 0,metadata:G.metadata!==void 0?G.metadata??null:void 0,archivedAt:G.archivedAt!==void 0?G.archivedAt??null:void 0,isDefault:G.isDefault===!1?!1:void 0});return{...J,archivedAt:J.archivedAt instanceof Date?J.archivedAt.toISOString():J.archivedAt,createdAt:J.createdAt instanceof Date?J.createdAt.toISOString():J.createdAt,updatedAt:J.updatedAt instanceof Date?J.updatedAt.toISOString():J.updatedAt}}}),e11=m({name:"BRAND_CONTEXT_DELETE",description:"Archive a brand context by ID (soft delete).",annotations:{title:"Archive Brand Context",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:aj.object({id:aj.string().describe("Brand context ID")}),outputSchema:aj.object({success:aj.boolean()}),handler:async($,Z)=>{G0(Z),await Z.access.check();let X=Z.organization?.id;if(!X)throw Error("Organization ID required (no active organization in context)");if(!await Z.storage.brandContext.get($.id,X))throw Error("Brand context not found");return await Z.storage.brandContext.update($.id,X,{archivedAt:new Date().toISOString(),isDefault:!1}),{success:!0}}})});async function _30($,Z,X){let Q=$.trim();if(!Q.startsWith("http"))Q=`https://${Q}`;let Y=await fetch("https://api.firecrawl.dev/v1/scrape",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${Z}`},body:JSON.stringify({url:Q,formats:["branding"]})});if(!Y.ok){let U=await Y.text().catch(()=>"");throw Error(`Firecrawl API error: ${Y.status} ${U.slice(0,200)}`)}let G=await Y.json();if(!G.success||!G.data?.branding)return null;let J=G.data.branding,K=G.data.metadata??{},W=nP4(J,K);return{name:K.title?.split(/[|\u2013\u2014]|\s+-\s+/).map((U)=>U.trim()).filter(Boolean)?.slice().sort((U,B)=>U.length-B.length)[0]??K.ogSiteName??X??$,domain:$,overview:K.description??"",logo:W.logo,favicon:W.favicon,ogImage:W.ogImage,fonts:W.fonts,colors:W.colors,images:null,metadata:Object.keys(W.metadata).length>0?W.metadata:null}}function nP4($,Z){let X=$.images??{},Q=$.colors??{},Y={};for(let[N,F]of Object.entries(Q))if(typeof F==="string"&&F&&mP4.has(N))Y[N]=F;let G={},K=($.typography??{}).fontFamilies??{};for(let[N,F]of Object.entries(K))if(typeof F==="string"&&F){let U=iP4[N.toLowerCase()];if(U&&!G[U])G[U]=F}let W=$.fonts;if(Array.isArray(W))for(let N of W){let F=N.family;if(typeof F==="string"&&F&&!G.body)G.body=F}let H={};for(let N of["typography","components","spacing","layout","animations","icons","tone","personality","colorScheme"])if($[N]!==void 0)H[N]=$[N];return{logo:X.logo??null,favicon:X.favicon??null,ogImage:X.ogImage??Z.ogImage??null,fonts:Object.keys(G).length>0?G:null,colors:Object.keys(Y).length>0?Y:null,metadata:H}}var mP4,iP4;var $81=w(()=>{mP4=new Set(["primary","secondary","accent","background","foreground"]),iP4={heading:"heading",headings:"heading",head:"heading",title:"heading",body:"body",primary:"body",text:"body",code:"code",monospace:"code",mono:"code"}});import{z as v30}from"zod";var pP4,Z81;var gU8=w(()=>{n0();$81();YY();pP4=Ew.pick({id:!0,name:!0,domain:!0,overview:!0,logo:!0,favicon:!0,ogImage:!0,fonts:!0,colors:!0}).extend({success:v30.boolean()}),Z81=m({name:"BRAND_CONTEXT_EXTRACT",description:"Extract brand context (colors, fonts, logos) from a website URL using Firecrawl.",annotations:{title:"Extract Brand Context",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!0,openWorldHint:!0},inputSchema:v30.object({domain:v30.string().describe("Website domain to extract brand from"),brandId:v30.string().optional().describe("Existing brand context ID to update (creates new if omitted)")}),outputSchema:pP4,modelSummary:($)=>$.success?`Brand saved (id=${$.id}, name=${$.name}, domain=${$.domain}). The UI rendered the logo, colors, fonts, and overview.`:"Brand extraction failed.",handler:async($,Z)=>{G0(Z),await Z.access.check();let X=Z.organization?.id;if(!X)throw Error("Organization ID required (no active organization in context)");let Q=Z.firecrawlApiKey;if(!Q)throw Error("FIRECRAWL_API_KEY is not configured. Set the environment variable to enable brand extraction.");let Y=await _30($.domain,Q,$.domain);if(!Y)throw Error("Firecrawl did not return branding data for this URL");let G={name:Y.name,domain:Y.domain,overview:Y.overview,logo:Y.logo,favicon:Y.favicon,ogImage:Y.ogImage,fonts:Y.fonts,colors:Y.colors,images:Y.images,metadata:Y.metadata},J=$.brandId?await(async()=>{if(!await Z.storage.brandContext.get($.brandId,X))throw Error("Brand context not found");return Z.storage.brandContext.update($.brandId,X,G)})():await Z.storage.brandContext.create(X,G);return{id:J.id,name:J.name,domain:J.domain,overview:J.overview,logo:J.logo,favicon:J.favicon,ogImage:J.ogImage,fonts:J.fonts,colors:J.colors,success:!0}}})});function hU8($){let Z=$.metadata??{};return{id:$.id,name:$.name,domain:$.domain||void 0,colors:$.colors??void 0,fonts:$.fonts??void 0,assets:$.logo||$.favicon||$.ogImage?{logo:$.logo??void 0,favicon:$.favicon??void 0,ogImage:$.ogImage??void 0}:void 0,overview:$.overview||void 0,tagline:typeof Z.tagline==="string"?Z.tagline:void 0,tone:typeof Z.tone==="string"?Z.tone:void 0,metadata:(()=>{let X=Object.fromEntries(Object.entries(Z).filter(([Q])=>Q!=="tagline"&&Q!=="tone"));return Object.keys(X).length>0?X:void 0})()}}var X81,Q81;var uU8=w(()=>{G11();n0();X81=m({name:"BRAND_GET",description:"Get a brand context by ID. Omit the ID to get the default brand for the organization.",annotations:{title:"Get Brand",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:H30,outputSchema:Lo,handler:async($,Z)=>{G0(Z),await Z.access.check();let X=Z.organization?.id;if(!X)throw Error("Organization ID required (no active organization in context)");let Q=$.id?await Z.storage.brandContext.get($.id,X):await Z.storage.brandContext.getDefault(X);if(!Q)throw Error($.id?"Brand not found":"No default brand configured");return hU8(Q)}}),Q81=m({name:"BRAND_LIST",description:"List all active brands for the current organization.",annotations:{title:"List Brands",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:N30,outputSchema:F30,handler:async($,Z)=>{G0(Z),await Z.access.check();let X=Z.organization?.id;if(!X)throw Error("Organization ID required (no active organization in context)");return{items:(await Z.storage.brandContext.list(X)).map(hU8)}}})});import{resolveTxt as tP4}from"dns/promises";function Y81($){return`${oP4}.${$.toLowerCase()}`}function cU8(){return`deco-verify-${crypto.randomUUID().replace(/-/g,"")}`}async function lU8($,Z,X=tP4){if(!Z)return!1;try{return(await X(Y81($))).some((Y)=>Y.join("").trim()===Z)}catch{return!1}}var oP4="_deco-verify";var dU8=()=>{};import{z as u5}from"zod";function jw($){let Z=$.verificationStatus==="pending"&&Boolean($.verificationToken);return{id:$.id,domain:$.domain,joinMode:$.joinMode,verificationStatus:$.verificationStatus,verificationMethod:$.verificationMethod,verifiedAt:$.verifiedAt?new Date($.verifiedAt).toISOString():null,recordName:Z?Y81($.domain):null,recordValue:Z?$.verificationToken:null}}function aP4($){let Z=$.toLowerCase().trim();if(!rP4.test(Z))throw Error(`Invalid domain format: "${Z}". Must be a valid domain like "acme.com"`);if(LK.has(Z))throw Error(`Cannot claim generic email domain "${Z}". Only corporate domains are allowed.`);return Z}var rP4,G81,x30,J81,K81,W81,H81,N81;var mU8=w(()=>{LG();dU8();n0();rP4=/^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)+$/,G81=u5.enum(["off","auto","request"]),x30=u5.object({id:u5.string(),domain:u5.string(),joinMode:G81,verificationStatus:u5.enum(["pending","verified"]),verificationMethod:u5.enum(["email","dns"]).nullable(),verifiedAt:u5.string().nullable(),recordName:u5.string().nullable(),recordValue:u5.string().nullable()});J81=m({name:"ORGANIZATION_DOMAIN_LIST",description:"List the email domains claimed by an organization.",annotations:{title:"List Organization Domains",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:u5.object({}),outputSchema:u5.object({domains:u5.array(x30)}),handler:async($,Z)=>{G0(Z),await Z.access.check();let X=X0(Z);return{domains:(await Z.storage.organizationDomains.listByOrganizationId(X.id)).map(jw)}}}),K81=m({name:"ORGANIZATION_DOMAIN_ADD",description:"Claim an email domain for an organization. If the caller's verified email matches the domain it is trusted immediately; otherwise it requires DNS verification.",annotations:{title:"Add Organization Domain",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:u5.object({domain:u5.string().min(1).max(255).describe("Domain to claim, e.g. acme.com"),joinMode:G81.optional().describe("Initial join mode (only applied when the domain is trusted immediately via email match).")}),outputSchema:x30,handler:async($,Z)=>{G0(Z),await Z.access.check();let X=X0(Z),Q=aP4($.domain),G=Z.auth.user?.email?.split("@")[1]?.toLowerCase(),J=Boolean(Z.auth.user?.emailVerified)&&G===Q,K=await Z.storage.organizationDomains.getByOrgAndDomain(X.id,Q);if(K){if(K.verificationStatus!=="verified"&&J){let H=await Z.storage.organizationDomains.markVerified(K.id,"email");return jw(H)}return jw(K)}let W=J?await Z.storage.organizationDomains.add(X.id,Q,{joinMode:$.joinMode??"off",verificationStatus:"verified",verificationMethod:"email"}):await Z.storage.organizationDomains.add(X.id,Q,{joinMode:"off",verificationStatus:"pending",verificationToken:cU8()});return jw(W)}}),W81=m({name:"ORGANIZATION_DOMAIN_UPDATE",description:"Set the join mode for a claimed domain. Discoverable modes (auto/request) require the domain to be verified.",annotations:{title:"Update Organization Domain",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:u5.object({id:u5.string(),joinMode:G81}),outputSchema:x30,handler:async($,Z)=>{G0(Z),await Z.access.check();let X=X0(Z),Q=await Z.storage.organizationDomains.getById($.id);if(!Q||Q.organizationId!==X.id)throw Error("Domain not found");if($.joinMode!=="off"&&Q.verificationStatus!=="verified")throw Error("Verify the domain before enabling auto-join or requests.");let Y=await Z.storage.organizationDomains.updateJoinMode($.id,$.joinMode);return jw(Y)}}),H81=m({name:"ORGANIZATION_DOMAIN_VERIFY",description:"Check the DNS TXT record for a pending domain and mark it verified if present.",annotations:{title:"Verify Organization Domain",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!0,openWorldHint:!0},inputSchema:u5.object({id:u5.string()}),outputSchema:u5.object({verified:u5.boolean(),domain:x30}),handler:async($,Z)=>{G0(Z),await Z.access.check();let X=X0(Z),Q=await Z.storage.organizationDomains.getById($.id);if(!Q||Q.organizationId!==X.id)throw Error("Domain not found");if(Q.verificationStatus==="verified")return{verified:!0,domain:jw(Q)};if(!Q.verificationToken)throw Error("Domain has no pending DNS verification.");if(!await lU8(Q.domain,Q.verificationToken))return{verified:!1,domain:jw(Q)};let G=await Z.storage.organizationDomains.markVerified($.id,"dns");return{verified:!0,domain:jw(G)}}}),N81=m({name:"ORGANIZATION_DOMAIN_REMOVE",description:"Remove a claimed domain from an organization.",annotations:{title:"Remove Organization Domain",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:u5.object({id:u5.string()}),outputSchema:u5.object({success:u5.boolean()}),handler:async($,Z)=>{G0(Z),await Z.access.check();let X=X0(Z),Q=await Z.storage.organizationDomains.getById($.id);if(!Q||Q.organizationId!==X.id)throw Error("Domain not found");return await Z.storage.organizationDomains.removeById($.id),{success:!0}}})});function zw($){return($ instanceof Error?$.message.toLowerCase():"").includes("already a member")}import{z as y9}from"zod";var sP4,F81,U81,B81;var iU8=w(()=>{n0();h4();sP4=y9.object({id:y9.string(),userId:y9.string(),status:y9.enum(["pending","approved","denied"]),createdAt:y9.string(),user:y9.object({id:y9.string(),name:y9.string(),email:y9.string(),image:y9.string().nullable()}).nullable()}),F81=m({name:"ORGANIZATION_JOIN_REQUEST_LIST",description:"List pending requests to join the organization.",annotations:{title:"List Join Requests",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:y9.object({}),outputSchema:y9.object({requests:y9.array(sP4)}),handler:async($,Z)=>{G0(Z),await Z.access.check();let X=X0(Z);return{requests:(await Z.storage.organizationJoinRequests.listPendingWithUser(X.id)).map((Y)=>({id:Y.id,userId:Y.userId,status:Y.status,createdAt:new Date(Y.createdAt).toISOString(),user:Y.user}))}}}),U81=m({name:"ORGANIZATION_JOIN_REQUEST_APPROVE",description:"Approve a pending join request, adding the user as a member.",annotations:{title:"Approve Join Request",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:y9.object({requestId:y9.string()}),outputSchema:y9.object({success:y9.boolean()}),handler:async($,Z)=>{G0(Z),await Z.access.check();let X=X0(Z),Q=await Z.storage.organizationJoinRequests.getById($.requestId);if(!Q||Q.organizationId!==X.id)throw Error("Join request not found");if(Q.status!=="pending")throw Error("Join request has already been decided");let Y=D1(Z);if(!await Z.storage.organizationJoinRequests.decide(Q.id,"approved",Y??Q.userId))return{success:!0};try{await Z.boundAuth.organization.addMember({organizationId:X.id,userId:Q.userId,role:["user"]})}catch(J){if(!zw(J))throw J}if(Y)n1.capture({distinctId:Y,event:"organization_join_request_approved",groups:{organization:X.id},properties:{organization_id:X.id,user_id:Q.userId}});return{success:!0}}}),B81=m({name:"ORGANIZATION_JOIN_REQUEST_DENY",description:"Deny a pending join request.",annotations:{title:"Deny Join Request",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:y9.object({requestId:y9.string()}),outputSchema:y9.object({success:y9.boolean()}),handler:async($,Z)=>{G0(Z),await Z.access.check();let X=X0(Z),Q=await Z.storage.organizationJoinRequests.getById($.requestId);if(!Q||Q.organizationId!==X.id)throw Error("Join request not found");if(Q.status!=="pending")throw Error("Join request has already been decided");let Y=D1(Z);if(await Z.storage.organizationJoinRequests.decide(Q.id,"denied",Y??Q.userId)&&Y)n1.capture({distinctId:Y,event:"organization_join_request_denied",groups:{organization:X.id},properties:{organization_id:X.id,user_id:Q.userId}});return{success:!0}}})});import{z as JY}from"zod";var O81;var nU8=w(()=>{h4();n0();T3();O81=m({name:"ORGANIZATION_MEMBER_ADD",description:"Invite a member to the organization by email with an assigned role.",annotations:{title:"Add Organization Member",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:JY.object({organizationId:JY.string().optional(),userId:JY.string(),role:JY.array(JY.string())}),outputSchema:JY.object({id:JY.string(),organizationId:JY.string(),userId:JY.string(),role:JY.union([JY.string(),JY.array(JY.string())]),createdAt:JY.string().datetime().describe("ISO 8601 timestamp")}),handler:async($,Z)=>{G0(Z),await Z.access.check();let X=$.organizationId||Z.organization?.id;if(!X)throw Error("Organization ID required (no active organization in context)");if(X!==Z.organization?.id)throw Error("Organization ID does not match authenticated organization");let Q=await Z.db.selectFrom("member").select(["role"]).where("userId","=",D1(Z)??"").where("organizationId","=",X).executeTakeFirst();if(!uY0(Q?.role,$.role))throw Error(`Insufficient privileges to assign role "${$.role.join(",")}"`);let Y=await Z.boundAuth.organization.addMember({organizationId:X,userId:$.userId,role:$.role});if(!Y)throw Error("Failed to add member");let G=D1(Z);if(G)n1.capture({distinctId:G,event:"organization_member_added",groups:{organization:X},properties:{organization_id:X,added_user_id:$.userId,role:$.role}});return{...Y,role:Y.role,createdAt:Y.createdAt instanceof Date?Y.createdAt.toISOString():Y.createdAt}}})});import{z as Ah}from"zod";var w81;var pU8=w(()=>{h4();n0();w81=m({name:"ORGANIZATION_MEMBER_REMOVE",description:"Remove a member from the organization. Revokes all their access immediately.",annotations:{title:"Remove Organization Member",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:Ah.object({organizationId:Ah.string().optional(),memberIdOrEmail:Ah.string()}),outputSchema:Ah.object({success:Ah.boolean(),memberIdOrEmail:Ah.string()}),handler:async($,Z)=>{G0(Z),await Z.access.check();let X=$.organizationId||Z.organization?.id;if(!X)throw Error("Organization ID required (no active organization in context)");if(X!==Z.organization?.id)throw Error("Organization ID does not match authenticated organization");let Q=await Z.boundAuth.organization.removeMember({organizationId:X,memberIdOrEmail:$.memberIdOrEmail});Z.invalidateMemberRole?.(Q.member.userId,X);let Y=D1(Z);if(Y)n1.capture({distinctId:Y,event:"organization_member_removed",groups:{organization:X},properties:{organization_id:X,member_id_or_email:$.memberIdOrEmail}});return{success:!0,memberIdOrEmail:$.memberIdOrEmail}}})});import{z as LX}from"zod";var L81;var tU8=w(()=>{n0();L81=m({name:"ORGANIZATION_MEMBER_LIST",description:"List all members in the organization with their roles.",annotations:{title:"List Organization Members",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:LX.object({limit:LX.number().optional(),offset:LX.number().optional()}),outputSchema:LX.object({members:LX.array(LX.object({id:LX.string(),organizationId:LX.string(),userId:LX.string(),role:LX.string(),createdAt:LX.string().datetime().describe("ISO 8601 timestamp"),user:LX.object({id:LX.string(),name:LX.string(),email:LX.string(),image:LX.string().optional()}).optional()}))}),handler:async($,Z)=>{G0(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.boundAuth.organization.listMembers({organizationId:X,limit:$.limit,offset:$.offset});return{members:(Array.isArray(Q)?Q:[]).map((G)=>({...G,createdAt:G.createdAt instanceof Date?G.createdAt.toISOString():G.createdAt}))}}})});import{z as $7}from"zod";var D81;var oU8=w(()=>{h4();n0();T3();D81=m({name:"ORGANIZATION_MEMBER_UPDATE_ROLE",description:"Change a member's role (e.g., admin, member) within the organization.",annotations:{title:"Update Member Role",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:$7.object({organizationId:$7.string().optional(),memberId:$7.string(),role:$7.array($7.string())}),outputSchema:$7.object({id:$7.string(),organizationId:$7.string(),userId:$7.string(),role:$7.union([$7.string(),$7.array($7.string())]),createdAt:$7.string().datetime().describe("ISO 8601 timestamp"),user:$7.object({email:$7.string(),name:$7.string(),image:$7.string().optional()})}),handler:async($,Z)=>{G0(Z),await Z.access.check();let X=$.organizationId||Z.organization?.id;if(!X)throw Error("Organization ID required (no active organization in context)");let Q=await Z.db.selectFrom("member").select(["role"]).where("userId","=",D1(Z)??"").where("organizationId","=",X).executeTakeFirst();if(!uY0(Q?.role,$.role))throw Error(`Insufficient privileges to assign role "${$.role.join(",")}"`);let Y=await Z.boundAuth.organization.updateMemberRole({organizationId:X,memberId:$.memberId,role:$.role});if(!Y)throw Error("Failed to update member role");Z.invalidateMemberRole?.(Y.userId,X);let G=D1(Z);if(G)n1.capture({distinctId:G,event:"organization_member_role_updated",groups:{organization:X},properties:{organization_id:X,member_id:$.memberId,target_user_id:Y.userId,new_role:Array.isArray($.role)?$.role.join(","):$.role}});return{...Y,createdAt:Y.createdAt instanceof Date?Y.createdAt.toISOString():Y.createdAt}}})});async function rU8(){if(bo&&Date.now()-bo.fetchedAt<600000)return bo.rate;try{let Z=await(await fetch("https://economia.awesomeapi.com.br/json/last/USD-BRL",{signal:AbortSignal.timeout(5000)})).json(),X=parseFloat(Z.USDBRL?.bid??"");if(Number.isNaN(X)||X<=0)throw Error("Invalid rate");return bo={rate:X,fetchedAt:Date.now()},X}catch{return bo?.rate??5.5}}function aU8($,Z,X){if(Z==="brl")return Math.round($/X);return $}var bo=null;function E81($,Z="",X=new URLSearchParams){for(let[Q,Y]of Object.entries($)){if(Y===void 0||Y===null)continue;let G=Z?`${Z}[${Q}]`:Q;if(Array.isArray(Y))Y.forEach((J,K)=>{if(typeof J==="object"&&J!==null)E81(J,`${G}[${K}]`,X);else X.append(`${G}[${K}]`,String(J))});else if(typeof Y==="object")E81(Y,G,X);else X.append(G,String(Y))}return X}async function yo($,Z){let X=o0().stripeSecretKey;if(!X)throw new DG(503,"billing is not configured");let Q=Z?.params?E81(Z.params).toString():void 0,Y=await fetch(`${eP4}${$}`,{method:Z?.method??(Q?"POST":"GET"),headers:{Authorization:`Bearer ${X}`,...Q&&{"Content-Type":"application/x-www-form-urlencoded"}},body:Q,signal:AbortSignal.timeout($A4)}),G=await Y.json().catch(()=>({}));if(!Y.ok){let J=G.error?.message??`HTTP ${Y.status}`;throw new DG(Y.status,J)}return G}function sU8($){return{billing_address_collection:"required",tax_id_collection:{enabled:!0},...$&&{customer_update:{address:"auto",name:"auto"}}}}async function eU8($){let Z=o0().stripeOrgPriceId;if(!Z)throw new DG(503,"billing is not configured");let X=await yo("/checkout/sessions",{params:{mode:"subscription",...sU8(null),line_items:[{price:Z,quantity:1}],success_url:$.successUrl,cancel_url:$.cancelUrl,metadata:{orgId:$.organizationId},subscription_data:{metadata:{orgId:$.organizationId}}}});if(!X.url)throw new DG(500,"checkout session lacks url");return{url:X.url}}function ZA4($,Z){return Math.round($*(1+Z/100))}async function $B8($){let Z=ZA4($.amountCents,$.feePercent),X=aU8($.amountCents,$.currency,await rU8()),Q=o0().stripeTopupProductId,Y={kind:"topup",orgId:$.organizationId,creditCents:X},G=$.currency==="brl"?`Studio AI credits (R$ ${($.amountCents/100).toFixed(2)})`:`Studio AI credits ($${($.amountCents/100).toFixed(2)})`,J=await yo("/checkout/sessions",{params:{mode:"payment",...$.customerId&&{customer:$.customerId},...sU8($.customerId),line_items:[{quantity:1,price_data:{currency:$.currency,unit_amount:Z,...Q?{product:Q}:{product_data:{name:G}}}}],success_url:$.successUrl,cancel_url:$.cancelUrl,metadata:Y,payment_intent_data:{metadata:Y}}});if(!J.url)throw new DG(500,"checkout session lacks url");return{url:J.url}}async function f30($){let Z=await yo("/billing_portal/sessions",{params:{customer:$.customerId,return_url:$.returnUrl}});if(!Z.url)throw new DG(500,"portal session lacks url");return{url:Z.url}}async function b30($){return yo(`/subscriptions/${encodeURIComponent($)}`)}async function ZB8($){await yo(`/subscriptions/${encodeURIComponent($)}`,{method:"DELETE"})}var eP4="https://api.stripe.com/v1",DG,$A4=15000;var sj=w(()=>{C8();DG=class DG extends Error{status;constructor($,Z){super(`Stripe API ${$}: ${Z}`);this.status=$;this.name="StripeApiError"}}});import{z as j81}from"zod";var z81;var XB8=w(()=>{sj();_9();n0();h4();z81=m({name:"ORGANIZATION_BILLING_CHECKOUT_START",description:"Start the organization's subscription: creates a Stripe Checkout session and returns its URL.",annotations:{title:"Start Billing Checkout",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1,openWorldHint:!0},inputSchema:j81.object({}),outputSchema:j81.object({url:j81.string()}),handler:async($,Z)=>{G0(Z),await Z.access.check();let X=Z.organization?.id,Q=Z.organization?.slug;if(!X||!Q)throw Error("Organization context required");let Y=await Z.storage.organizationBilling.getBilling(X);if(Y?.status==="active")throw Error("This organization already has an active subscription.");if(Y?.stripeSubscriptionId)throw Error("This organization still has a subscription on file \u2014 settle or cancel it before starting a new checkout.");let G=`${dZ()}/${encodeURIComponent(Q)}/members`,{url:J}=await eU8({organizationId:X,successUrl:`${G}?checkout=success`,cancelUrl:`${G}?checkout=canceled`});return FG({event:"subscription_checkout_started",organizationId:X,...Z.auth?.user?.id?{userId:Z.auth.user.id}:{}}),{url:J}}})});import{z as P81}from"zod";var A81;var QB8=w(()=>{sj();_9();n0();A81=m({name:"ORGANIZATION_BILLING_PORTAL",description:"Open the organization's Stripe billing portal (manage card, invoices, cancellation). Returns the portal URL.",annotations:{title:"Open Billing Portal",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1,openWorldHint:!0},inputSchema:P81.object({}),outputSchema:P81.object({url:P81.string()}),handler:async($,Z)=>{G0(Z),await Z.access.check();let X=X0(Z);if(!X.slug)throw Error("Organization context required");let Q=await Z.storage.organizationBilling.getBilling(X.id);if(!Q?.stripeCustomerId)throw Error("This organization has no billing account yet \u2014 subscribe first.");try{return await f30({customerId:Q.stripeCustomerId,returnUrl:`${dZ()}/${encodeURIComponent(X.slug)}/members`})}catch(Y){if(Y instanceof DG)throw Error(Y.message);throw Y}}})});function y30($){return T81[$%T81.length]??XA4}function KY($){return $.createdBy==="system"}function fF($){return g30.filter((Z)=>C30($,QA4[Z]))}function Rh($,Z){return $?.startsWith(`${Th[Z]}:`)??!1}function bF($){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 R81($,Z){let X=bF($),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 Pw($,Z,X){if(Z.length===0)return!1;let Q=R81($,X);return Z.every((Y)=>Q.get(Y)==="approved")}function GB8($,Z){return Pw($,Z)&&!Pw($,Z,{verifiedOnly:!0})}function JB8($){let Z=null;for(let X of $){if(X.action!=="review_approved"&&X.action!=="review_changes_requested")continue;let Q=new Date(X.occurredAt).getTime();if(Z&&Q<Z.at)continue;let Y=X.data?.notes;Z={at:Q,notes:X.action==="review_changes_requested"&&typeof Y==="string"?Y:null}}return Z?.notes??null}function YA4($){let Z=0;for(let X of $){if(X.action!=="assignee_changed")continue;if(X.data?.to!==G4)continue;Z=Math.max(Z,new Date(X.occurredAt).getTime())}return Z}function KB8($,Z=I81){let X=YA4($),Q=new Set,Y=0;for(let G of[...$].sort((J,K)=>J.occurredAt.localeCompare(K.occurredAt))){let J=new Date(G.occurredAt).getTime();if(G.action==="status_changed"){if(G.data?.to==="in_review")Y=J;continue}if(G.action==="review_changes_requested"&&J>=X)Q.add(Y)}return Q.size+1>=Z}var G4="super-agent",T81,XA4,go='Your checkout is SHALLOW (`git clone --depth 1`), so it has no merge base and `git diff main...HEAD` (three dots) fails with "fatal: main...HEAD: no merge base". To see a branch diff, either use the two-dot form against the fetched remote ref (`git fetch origin <base> && git diff origin/<base> HEAD`), or deepen first with `git fetch --deepen=100`. Same for `git log main..HEAD` and anything else that needs shared history.',YB8,g30,Th,QA4,I81=5,WB8="task-board.item.updated",HB8="task-board.item.deleted";var g9=w(()=>{YY();T81=["#9ca3af","#ef4444","#f97316","#f59e0b","#22c55e","#3b82f6","#a855f7","#ec4899"],XA4=T81[0];YB8="Read the diff with `gh pr diff <number>`. It comes from the API, so it needs no fetch, no merge base, and is unaffected by the shallow checkout. "+"Read it ONCE \u2014 `gh pr diff <number> --name-only` first if you need to size "+"it, then pull the hunks you need per FILE. Do NOT re-run the diff sliced by directory: each slice re-reads bytes you already have into every remaining turn's context, and it is the largest avoidable cost in a review.",g30=["qa","code_review"],Th={qa:"QA Agent",code_review:"Code Reviewer"},QA4={qa:"qa_agent_enabled",code_review:"code_reviewer_enabled"}});function q81($){return $==="trial"?"trial":"subscription"}function ho($,Z,X,Q={}){FG({event:Z,organizationId:X.organizationId,...$.auth?.user?.id?{userId:$.auth.user.id}:{},properties:{task_id:X.id,...Q}})}function M81($){return $?.status==="active"||$?.status==="past_due"}function h30($,Z){if(M81($))return{periodKey:$?.currentPeriodEnd?`sub:${$.currentPeriodEnd.toISOString()}`:"sub:pending",limit:$?.monthlyTaskExecutions??Z.monthlyTaskExecutions,exhaustedReason:"monthly_exhausted"};return{periodKey:"trial",limit:$?.freeTaskExecutions??Z.freeTaskExecutions,exhaustedReason:"trial_exhausted"}}function uo(){let $=o0();return{enforced:$.taskQuotaEnforced,freeTaskExecutions:$.freeTaskExecutions,monthlyTaskExecutions:$.monthlyTaskExecutions,maxRunsPerTask:$.maxRunsPerTask}}function Ih(){return{...uo(),maxRunsPerTask:Number.POSITIVE_INFINITY}}async function u30($,Z,X=uo()){if(!X.enforced||!KY(Z))return;let Q=await $.storage.organizationBilling.taskClaim(Z.id);if(Q&&Q.runCount>=X.maxRunsPerTask)throw ho($,"task_quota_blocked",Z,{phase:"precheck",reason:"runs_exhausted"}),new DX("runs_exhausted");if(Q&&Q.state!=="released")return;let Y=await $.storage.organizationBilling.getBilling(Z.organizationId),G=h30(Y,X);if(await $.storage.organizationBilling.countTaskClaims(Z.organizationId,G.periodKey)>=G.limit)throw ho($,"task_quota_blocked",Z,{phase:"precheck",reason:G.exhaustedReason,billing_mode:q81(G.periodKey),limit:G.limit}),new DX(G.exhaustedReason)}async function NB8($,Z,X=uo()){if(!X.enforced||!KY(Z))return"skipped";let Q=await $.storage.organizationBilling.getBilling(Z.organizationId),Y=h30(Q,X),G=await $.storage.organizationBilling.claimTaskUnderLimit(Z.organizationId,Z.id,Y.periodKey,Y.limit,X.maxRunsPerTask);if(G==="exhausted")throw ho($,"task_quota_blocked",Z,{phase:"claim",reason:Y.exhaustedReason,billing_mode:q81(Y.periodKey),limit:Y.limit}),new DX(Y.exhaustedReason);if(G==="runs_exhausted")throw ho($,"task_quota_blocked",Z,{phase:"claim",reason:"runs_exhausted"}),new DX("runs_exhausted");if(G==="claimed")ho($,"task_quota_claimed",Z,{billing_mode:q81(Y.periodKey),period_key:Y.periodKey,limit:Y.limit});return G}async function FB8($,Z,X,Q){if(Q==="skipped")return;await $.rollbackTaskClaim(Z,X,{releaseSlot:Q==="claimed"}).catch((Y)=>console.error("[task-quota] rollback failed (stays charged)",Y))}async function UB8($,Z){let X=await $.storage.organizationBilling.taskClaim(Z);return!!X&&X.state!=="released"}async function BB8($,Z,X){if(await $.releaseTaskClaim(Z,X).catch((Y)=>{return console.error("[task-quota] refund failed (stays charged)",Y),!1}))FG({event:"task_quota_refunded",organizationId:Z,properties:{task_id:X}})}var GA4="[SUBSCRIPTION_REQUIRED]",JA4,DX;var DK=w(()=>{g9();h4();C8();JA4={trial_exhausted:"this organization used its free task executions \u2014 subscribe to keep running tasks",monthly_exhausted:"this organization used its monthly task executions \u2014 more become available next billing cycle",runs_exhausted:"this task reached its execution limit \u2014 create a new task to keep going"};DX=class DX extends Error{reason;constructor($){super(`${GA4} ${JA4[$]}`);this.reason=$;this.name="TaskQuotaError"}}});import{z as yF}from"zod";var V81;var OB8=w(()=>{n0();DK();V81=m({name:"ORGANIZATION_TASK_QUOTA_GET",description:"Get the organization's auto-task quota: how many runs are used in the current period, the limit, and the subscription's billing status.",annotations:{title:"Get Task Quota",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:yF.object({}),outputSchema:yF.object({enforced:yF.boolean(),billingStatus:yF.string(),subscribed:yF.boolean(),hasBillingAccount:yF.boolean(),used:yF.number(),limit:yF.number(),currentPeriodEnd:yF.string().datetime().nullable()}),handler:async($,Z)=>{G0(Z),await Z.access.check();let X=X0(Z),Q=uo(),Y=await Z.storage.organizationBilling.getBilling(X.id),G=h30(Y,Q),J=await Z.storage.organizationBilling.countTaskClaims(X.id,G.periodKey);return{enforced:Q.enforced,billingStatus:Y?.status??"none",subscribed:M81(Y),hasBillingAccount:!!Y?.stripeCustomerId,used:J,limit:G.limit,currentPeriodEnd:Y?.currentPeriodEnd?.toISOString()??null}}})});var wB8=w(()=>{qU8();MU8();VU8();kU8();SU8();_U8();vU8();fU8();yU8();gU8();uU8();mU8();iU8();nU8();pU8();tU8();oU8();XB8();QB8();OB8()});function FH($){if($==null)return"unknown error";if(typeof $==="string")return $;if($ instanceof Error)return $.message;return JSON.stringify($)}function c30($){if($===null||typeof $==="string"||typeof $==="number"||typeof $==="boolean")return!0;if(Array.isArray($))return $.every(c30);if(typeof $==="object")return Object.entries($).every(([Z,X])=>typeof Z==="string"&&(X===void 0||c30(X)));return!1}function k81($){return Array.isArray($)&&$.every(c30)}function co($){return $!=null&&typeof $==="object"&&Object.entries($).every(([Z,X])=>typeof Z==="string"&&(X===void 0||c30(X)))}var mB8="vercel.ai.error",WA4,LB8,DB8,E1,iB8="AI_APICallError",nB8,HA4,EB8,jB8,O4,pB8="AI_EmptyResponseBodyError",tB8,NA4,zB8,PB8,l30,oB8="AI_InvalidArgumentError",rB8,FA4,AB8,TB8,Aw,aB8="AI_InvalidPromptError",sB8,UA4,RB8,IB8,C3,eB8="AI_InvalidResponseDataError",$O8,BA4,qB8,MB8,qh,ZO8="AI_JSONParseError",XO8,OA4,VB8,kB8,gF,QO8="AI_LoadAPIKeyError",YO8,wA4,SB8,CB8,ej,GO8="AI_LoadSettingError",JO8,LA4,_B8,vB8,KO8,WO8="AI_NoContentGeneratedError",HO8,DA4,xB8,fB8,NO8,FO8="AI_NoSuchModelError",UO8,EA4,bB8,yB8,e5,BO8="AI_TooManyEmbeddingValuesForCallError",OO8,jA4,gB8,hB8,Mh,wO8="AI_TypeValidationError",LO8,zA4,uB8,cB8,M5,DO8="AI_UnsupportedFunctionalityError",EO8,PA4,lB8,dB8,c4;var Y8=w(()=>{WA4=Symbol.for(mB8),E1=class $ extends(DB8=Error,LB8=WA4,DB8){constructor({name:Z,message:X,cause:Q}){super(X);this[LB8]=!0,this.name=Z,this.cause=Q}static isInstance(Z){return $.hasMarker(Z,mB8)}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}},nB8=`vercel.ai.error.${iB8}`,HA4=Symbol.for(nB8),O4=class extends(jB8=E1,EB8=HA4,jB8){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:iB8,message:$,cause:J});this[EB8]=!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 E1.hasMarker($,nB8)}},tB8=`vercel.ai.error.${pB8}`,NA4=Symbol.for(tB8),l30=class extends(PB8=E1,zB8=NA4,PB8){constructor({message:$="Empty response body"}={}){super({name:pB8,message:$});this[zB8]=!0}static isInstance($){return E1.hasMarker($,tB8)}};rB8=`vercel.ai.error.${oB8}`,FA4=Symbol.for(rB8),Aw=class extends(TB8=E1,AB8=FA4,TB8){constructor({message:$,cause:Z,argument:X}){super({name:oB8,message:$,cause:Z});this[AB8]=!0,this.argument=X}static isInstance($){return E1.hasMarker($,rB8)}},sB8=`vercel.ai.error.${aB8}`,UA4=Symbol.for(sB8),C3=class extends(IB8=E1,RB8=UA4,IB8){constructor({prompt:$,message:Z,cause:X}){super({name:aB8,message:`Invalid prompt: ${Z}`,cause:X});this[RB8]=!0,this.prompt=$}static isInstance($){return E1.hasMarker($,sB8)}},$O8=`vercel.ai.error.${eB8}`,BA4=Symbol.for($O8),qh=class extends(MB8=E1,qB8=BA4,MB8){constructor({data:$,message:Z=`Invalid response data: ${JSON.stringify($)}.`}){super({name:eB8,message:Z});this[qB8]=!0,this.data=$}static isInstance($){return E1.hasMarker($,$O8)}},XO8=`vercel.ai.error.${ZO8}`,OA4=Symbol.for(XO8),gF=class extends(kB8=E1,VB8=OA4,kB8){constructor({text:$,cause:Z}){super({name:ZO8,message:`JSON parsing failed: Text: ${$}.
2270
+ `.execute($)).rows[0]?.exists)await u4`CREATE ROLE ${u4.id(X)} NOLOGIN`.execute($);await u4`GRANT ${u4.id(X)} TO CURRENT_USER`.execute($),await u4`GRANT USAGE, CREATE ON SCHEMA ${u4.id(Z)} TO ${u4.id(X)}`.execute($),await u4`GRANT ALL ON ALL TABLES IN SCHEMA ${u4.id(Z)} TO ${u4.id(X)}`.execute($),await u4`GRANT ALL ON ALL SEQUENCES IN SCHEMA ${u4.id(Z)} TO ${u4.id(X)}`.execute($),await u4`ALTER DEFAULT PRIVILEGES IN SCHEMA ${u4.id(Z)} GRANT ALL ON TABLES TO ${u4.id(X)}`.execute($),await u4`ALTER DEFAULT PRIVILEGES IN SCHEMA ${u4.id(Z)} GRANT ALL ON SEQUENCES TO ${u4.id(X)}`.execute($),await u4`REVOKE ALL ON SCHEMA public FROM ${u4.id(X)}`.execute($)}async function UP4($,Z,X,Q){try{return await $.transaction().execute(async(Y)=>{return await u4`SET LOCAL ROLE ${u4.id(X)}`.execute(Y),await u4`SET LOCAL search_path TO ${u4.id(Z)}`.execute(Y),await u4.raw(Q).execute(Y)})}catch(Y){if(NP4(Y))return await FP4($,Z,X),await $.transaction().execute(async(G)=>{return await u4`SET LOCAL ROLE ${u4.id(X)}`.execute(G),await u4`SET LOCAL search_path TO ${u4.id(Z)}`.execute(G),await u4.raw(Q).execute(G)});throw Y}}var GP4,KP4,aF8;var sF8=w(()=>{n0();GP4=NH.object({results:NH.array(NH.unknown()).optional(),success:NH.boolean().optional()});KP4=NH.object({sql:NH.string().describe("The SQL query to run"),params:NH.array(NH.any()).describe("The parameters to pass to the SQL query").optional()});aF8=m({name:"DATABASES_RUN_SQL",description:"Run a SQL query in a connection-scoped isolated schema. Supports SELECT, DDL, and DML.",annotations:{title:"Run SQL Query",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!1,openWorldHint:!1},inputSchema:KP4,outputSchema:NH.object({result:NH.array(GP4)}),handler:async($,Z)=>{G0(Z),await Z.access.check();let X=JP4($.sql,$.params||[]);if(!Z.connectionId)throw Error("Connection context required for database access");console.warn("DATABASES_RUN_SQL invoked",{"tool.deprecation_probe":"DATABASES_RUN_SQL","connection.id":Z.connectionId,"organization.id":Z.organization?.id??null,"user.id":Z.auth.user?.id??null});let Q=WP4(Z.connectionId),Y=HP4(Z.connectionId);return{result:[{results:(await UP4(Z.db,Q,Y,X)).rows,success:!0}]}}})});function A30($){let Z=$.access.getRole();if(!A3(Z))throw new AF("Only organization owners and admins can change org-wide pin status")}var D11=w(()=>{T3();qj()});async function T30($,Z,X){let Q=[...new Set(X)],Y=await Promise.all(Q.map((J)=>$.storage.connections.findById(J,Z))),G=Q.filter((J,K)=>!Y[K]);if(G.length>0)throw Error(`Connection not found: ${G.join(", ")}`)}function CF($){return $.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"")}function R30($){let Z=2166136261;for(let X=0;X<$.length;X++)Z=Math.imul(Z^$.charCodeAt(X),16777619);return`a${(Z>>>0).toString(36).padStart(6,"0").slice(-6)}`}function qo($){if($&&typeof $==="object"&&"gatewayClientId"in $&&typeof $.gatewayClientId==="string")return $.gatewayClientId;return}function Mo($,Z){if(!Z)return $;let X=`${R30(Z)}_`;return $.startsWith(X)?$.slice(X.length):$}function OP4($){return $.split(/[-_]/).map((Z)=>Z?Z.charAt(0).toUpperCase()+Z.slice(1):Z).join(" ")}var Ph;var eF8=w(()=>{dW();Ph=class Ph extends e9{static MAX_PAGES_PER_CLIENT=1000;clients;slugToKey=new Map;resolvedClients=new Map;toolsCache=null;resourcesCache=null;resourceTemplatesCache=null;promptsCache=null;resourceRouteMap=new Map;constructor($,Z){super(Z?.clientInfo??{name:"gateway-client",version:"1.0.0"},{capabilities:Z?.capabilities});this.clients=$;for(let X of Object.keys($)){let Q=R30(X);if(this.slugToKey.has(Q))throw Error(`GatewayClient: duplicate namespace code "${Q}" from keys "${this.slugToKey.get(Q)}" and "${X}"`);this.slugToKey.set(Q,X)}}namespace($,Z){return`${R30($)}_${Z}`}async resolveToolTarget($){let Z=$.indexOf("_");if(Z!==-1){let Q=$.slice(0,Z),Y=this.slugToKey.get(Q);if(Y)return[Y,$.slice(Z+1)]}let{tools:X}=await this.listTools();for(let Q of X){let Y=qo(Q._meta);if(!Y)continue;if(Mo(Q.name,Y)===$)return[Y,$]}if(Z===-1)throw Error(`GatewayClient: could not resolve tool "${$}" \u2014 no namespace prefix and not found in any client`);throw Error(`GatewayClient: unknown namespace "${$.slice(0,Z)}" in "${$}" and not found by original name in any client`)}async resolvePromptTarget($){let Z=$.indexOf("_");if(Z!==-1){let Q=$.slice(0,Z),Y=this.slugToKey.get(Q);if(Y)return[Y,$.slice(Z+1)]}let{prompts:X}=await this.listPrompts();for(let Q of X){let Y=qo(Q._meta);if(!Y)continue;if(Mo(Q.name,Y)===$)return[Y,$]}if(Z===-1)throw Error(`GatewayClient: could not resolve prompt "${$}" \u2014 no namespace prefix and not found in any client`);throw Error(`GatewayClient: unknown namespace "${$.slice(0,Z)}" in "${$}" and not found by original name in any client`)}resolveClient($){let Z=this.resolvedClients.get($);if(Z)return Z;let X=this.clients[$];if(!X)return Promise.reject(Error(`GatewayClient: unknown client key "${$}"`));let Q=X.client,Y;try{Y=typeof Q==="function"?Promise.resolve(Q()):Promise.resolve(Q)}catch(J){return Promise.reject(J)}let G=Y.catch((J)=>{throw this.resolvedClients.delete($),J});return this.resolvedClients.set($,G),G}getResolvedClient($){return this.resolveClient($)}async listFromClient($,Z,X){try{let Q=await this.resolveClient($);return await Z(Q)}catch(Q){return console.warn(`GatewayClient: skipping ${X} from client "${$}" \u2014 ${Q?.message??Q}`),[]}}async paginate($,Z,X){let Q=[],Y,G=0;do{let J=await X(Y);Q.push(...J.items),Y=J.nextCursor,G++}while(Y&&G<Ph.MAX_PAGES_PER_CLIENT);if(Y)console.warn(`GatewayClient: client "${$}" exceeded ${Ph.MAX_PAGES_PER_CLIENT} pages listing ${Z} \u2014 truncating`);return Q}fetchAllTools($,Z){return this.paginate(Z,"tools",async(X)=>{let Q=await $.listTools(X?{cursor:X}:void 0);return{items:Q.tools,nextCursor:Q.nextCursor}})}fetchAllResources($,Z){return this.paginate(Z,"resources",async(X)=>{let Q=await $.listResources(X?{cursor:X}:void 0);return{items:Q.resources,nextCursor:Q.nextCursor}})}fetchAllResourceTemplates($,Z){return this.paginate(Z,"resource templates",async(X)=>{let Q=await $.listResourceTemplates(X?{cursor:X}:void 0);return{items:Q.resourceTemplates,nextCursor:Q.nextCursor}})}fetchAllPrompts($,Z){return this.paginate(Z,"prompts",async(X)=>{let Q=await $.listPrompts(X?{cursor:X}:void 0);return{items:Q.prompts,nextCursor:Q.nextCursor}})}listTools($,Z){if(!this.toolsCache)this.toolsCache=this.aggregateTools();return this.toolsCache}async aggregateTools(){let $=[];for(let[Z,X]of Object.entries(this.clients)){let Q=await this.listFromClient(Z,(J)=>this.fetchAllTools(J,Z),"tools"),Y=X.tools,G=Y?new Set(Y):null;for(let J of Q){if(G&&!G.has(J.name))continue;$.push({...J,name:this.namespace(Z,J.name),_meta:{...J._meta??{},gatewayClientId:Z}})}}return{tools:$}}listResources($,Z){if(!this.resourcesCache)this.resourcesCache=this.aggregateResources();return this.resourcesCache}async aggregateResources(){let $=new Set,Z=[],X=new Map;for(let[Q,Y]of Object.entries(this.clients)){let G=await this.listFromClient(Q,(W)=>this.fetchAllResources(W,Q),"resources"),J=Y.resources,K=J?new Set(J):null;for(let W of G){if(K&&!K.has(W.uri)&&!(W.name&&K.has(W.name)))continue;if($.has(W.uri)){console.warn(`GatewayClient: duplicate resource "${W.uri}" from client "${Q}" \u2014 skipping`);continue}$.add(W.uri),X.set(W.uri,Q),Z.push({...W,_meta:{...W._meta??{},gatewayClientId:Q}})}}return this.resourceRouteMap=X,{resources:Z}}listResourceTemplates($,Z){if(!this.resourceTemplatesCache)this.resourceTemplatesCache=this.aggregateResourceTemplates();return this.resourceTemplatesCache}async aggregateResourceTemplates(){let $=new Set,Z=[];for(let[X,Q]of Object.entries(this.clients)){let Y=await this.listFromClient(X,(G)=>this.fetchAllResourceTemplates(G,X),"resource templates");for(let G of Y){if($.has(G.uriTemplate)){console.warn(`GatewayClient: duplicate resource template "${G.uriTemplate}" from client "${X}" \u2014 skipping`);continue}$.add(G.uriTemplate),Z.push({...G,_meta:{...G._meta??{},gatewayClientId:X}})}}return{resourceTemplates:Z}}listPrompts($,Z){if(!this.promptsCache)this.promptsCache=this.aggregatePrompts();return this.promptsCache}async aggregatePrompts(){let $=[];for(let[Z,X]of Object.entries(this.clients)){let Q=await this.listFromClient(Z,(J)=>this.fetchAllPrompts(J,Z),"prompts"),Y=X.prompts,G=Y?new Set(Y):null;for(let J of Q){if(G&&!G.has(J.name))continue;$.push({...J,name:this.namespace(Z,J.name),title:J.title??OP4(J.name),_meta:{...J._meta??{},gatewayClientId:Z}})}}return{prompts:$}}async callTool($,Z,X){let[Q,Y]=await this.resolveToolTarget($.name);return(await this.resolveClient(Q)).callTool({...$,name:Y},Z,X)}async readResource($,Z){let X=await this.resolveResourceRoute($.uri);return(await this.resolveClient(X)).readResource($)}async getPrompt($,Z){let[X,Q]=await this.resolvePromptTarget($.name);return(await this.resolveClient(X)).getPrompt({...$,name:Q})}async resolveResourceRoute($){let Z=this.resourceRouteMap.get($);if(Z)return Z;if(this.resourcesCache=null,await this.listResources(),Z=this.resourceRouteMap.get($),Z)return Z;throw Error(`GatewayClient: resource "${$}" not found in any upstream client`)}getServerCapabilities(){return{tools:{},resources:{},prompts:{}}}getInstructions(){return}refresh(){this.toolsCache=null,this.resourcesCache=null,this.resourceTemplatesCache=null,this.promptsCache=null}async close(){let $=[...this.resolvedClients.values()].map((Z)=>Z.then((X)=>X.close()).catch(()=>{}));await Promise.allSettled($),await super.close()}}});var I30=w(()=>{eF8()});function j11($){return CF($)}function LP4($,Z){let X=CF(Z)||"prompt";return`${String($).padStart(wP4,"0")}-${X}`}async function z11($,Z,X){try{await $.delete(q30,j11(Z),{actor:X})}catch(Q){console.error("[agent-prompts] failed to delete prompts",{agentId:Z,err:Q})}}async function M30($,Z,X,Q){let Y=j11(Z);await z11($,Z,X),await Promise.all(Q.slice(0,E11).map(async(G,J)=>{let K=LP4(J,G.title),W={name:K,title:G.title,description:G.description,text:G.text};try{await $.write(q30,`${Y}/${K}.json`,JSON.stringify(W),{actor:X,contentType:"application/json"})}catch(H){console.error("[agent-prompts] failed to seed prompt",{agentId:Z,name:K,err:H})}}))}async function $U8($,Z){let X=j11(Z),Q;try{Q=await $.listDir(q30,X)}catch{return[]}let Y=Q.filter((J)=>J.kind==="file"&&J.path.endsWith(".json")).slice(0,E11),G=[];for(let J of Y)try{let K=await $.read(q30,J.path),W=JSON.parse(new TextDecoder().decode(K));if(W&&typeof W.name==="string"&&typeof W.title==="string"&&typeof W.text==="string")G.push(W)}catch{}return G}var q30="agent-prompts",E11=20,wP4;var Vo=w(()=>{I30();wP4=String(E11-1).length});import{z as QU8}from"zod";function DP4(){let $=ZU8[Math.floor(Math.random()*ZU8.length)];return`icon://${XU8[Math.floor(Math.random()*XU8.length)]}?color=${$}`}var ZU8,XU8,EP4,jP4,P11;var YU8=w(()=>{n0();Ww();D11();Vo();ZU8=["red","orange","amber","yellow","lime","green","emerald","cyan","sky","blue","indigo","violet","purple","fuchsia","pink","rose"],XU8=["Star01","Zap","Heart","Globe01","Compass03","Lightbulb02","Rocket01","Flag01","BookOpen01","Shield01","Key01","Diamond01","Cube01","Target04","Award01","Briefcase01","Coffee","Feather","Hexagon01","Layers3_01","Map01","Palette","Package","Terminal"];EP4=QU8.object({data:p70.describe("Data for the new virtual MCP")}),jP4=QU8.object({item:JX.describe("The created virtual MCP entity")}),P11=m({name:"COLLECTION_VIRTUAL_MCP_CREATE",description:"Create a Virtual MCP (agent) that aggregates tools from multiple connections into one endpoint. Pass `prompts` to seed the agent with kickstart prompts (conversation starters shown as icebreakers). Author them from the agent's role/instructions and the descriptions of the tools it will have, so the starters are coherent and immediately useful.",annotations:{title:"Create Virtual MCP",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!1,openWorldHint:!1},inputSchema:EP4,outputSchema:jP4,handler:async($,Z)=>{G0(Z);let X=X0(Z);await Z.access.check();let Q=D1(Z);if(!Q)throw Error("User ID required to create virtual MCP");if($.data.pinned===!0)A30(Z);let{prompts:Y,...G}=$.data;if(G.connections.length>0)await T30(Z,X.id,G.connections.map((W)=>W.connection_id));let J={...G,icon:G.icon??DP4()},K=await Z.storage.virtualMcps.create(X.id,Q,J);if(Y?.length&&Z.orgFs&&K.id)await M30(Z.orgFs,K.id,Q,Y);return{item:K}}})});function zP4($){let Z=[],X=0;while(X<$.length){let Q=$[X];if(Q==="%")Z.push(".*");else if(Q==="_")Z.push(".");else if(/[.*+?^${}()|[\]\\]/.test(Q))Z.push("\\"+Q);else Z.push(Q);X++}return Z.join("")}function Lw($){return typeof $==="string"||typeof $==="number"}function A11($,Z){let X=Z.split("."),Q=$;for(let Y of X){if(Q==null||typeof Q!=="object")return;Q=Q[Y]}return Q}function PP4($,Z){return $.connections.some((X)=>X.connection_id===Z)}function V30($,Z){if("conditions"in Z){let{operator:K,conditions:W}=Z;switch(K){case"and":return W.every((H)=>V30($,H));case"or":return W.some((H)=>V30($,H));case"not":return!W.every((H)=>V30($,H));default:return!0}}let{field:X,operator:Q,value:Y}=Z,G=X.join(".");if(G==="connection_id"){if(Q!=="eq"||typeof Y!=="string")return!1;return PP4($,Y)}let J=A11($,G);switch(Q){case"eq":return J===Y;case"gt":return Lw(J)&&Lw(Y)&&J>Y;case"gte":return Lw(J)&&Lw(Y)&&J>=Y;case"lt":return Lw(J)&&Lw(Y)&&J<Y;case"lte":return Lw(J)&&Lw(Y)&&J<=Y;case"in":return Array.isArray(Y)&&Y.includes(J);case"like":if(typeof J!=="string"||typeof Y!=="string")return!1;if(Y.length>100)return!1;let K=zP4(Y);return new RegExp(`^${K}$`,"i").test(J);case"contains":if(typeof J!=="string"||typeof Y!=="string")return!1;return J.toLowerCase().includes(Y.toLowerCase());default:return!0}}function AP4($,Z){return[...$].sort((X,Q)=>{for(let Y of Z){let G=Y.field.join("."),J=A11(X,G),K=A11(Q,G),W=0;if(J==null&&K==null)continue;if(J==null)W=Y.nulls==="first"?-1:1;else if(K==null)W=Y.nulls==="first"?1:-1;else if(typeof J==="string"&&typeof K==="string")W=J.localeCompare(K);else if(typeof J==="number"&&typeof K==="number")W=J-K;else W=String(J).localeCompare(String(K));if(W!==0)return Y.direction==="desc"?-W:W}return 0})}var TP4,RP4,T11;var GU8=w(()=>{V3();n0();Ww();TP4=FK,RP4=kF(JX),T11=m({name:"COLLECTION_VIRTUAL_MCP_LIST",description:"List all MCP virtual MCPs in the organization",annotations:{title:"List Virtual MCPs",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:TP4,outputSchema:RP4,handler:async($,Z)=>{await Z.access.check();let X=X0(Z),Q=$.where&&!("conditions"in $.where)&&$.where.field.join(".")==="connection_id"&&$.where.operator==="eq"&&typeof $.where.value==="string"?$.where.value:void 0,Y=$.where&&!("conditions"in $.where)&&$.where.field.join(".")==="pinned"&&$.where.operator==="eq"&&typeof $.where.value==="boolean"?$.where.value:void 0,J=Q?await Z.storage.virtualMcps.listByConnectionId(X.id,Q):await Z.storage.virtualMcps.list(X.id,Y!==void 0?{pinnedOnly:Y}:void 0);if($.where)J=J.filter((U)=>V30(U,$.where));if($.orderBy&&$.orderBy.length>0)J=AP4(J,$.orderBy);let K=J.length,W=$.offset??0,H=$.limit??100,N=J.slice(W,W+H),F=W+H<K;return{items:N,totalCount:K,hasMore:F}}})});import{z as R11}from"zod";var IP4,qP4,I11;var JU8=w(()=>{n0();Ww();IP4=R11.object({id:R11.string().describe("ID of the virtual MCP to retrieve")}),qP4=R11.object({item:JX.nullable().describe("The retrieved virtual MCP, or null if not found")}),I11=m({name:"COLLECTION_VIRTUAL_MCP_GET",description:"Get a Virtual MCP's configuration, connections, and virtual tools by ID.",annotations:{title:"Get Virtual MCP",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:IP4,outputSchema:qP4,handler:async($,Z)=>{G0(Z);let X=X0(Z);await Z.access.check();let Q=await Z.storage.virtualMcps.findById($.id);if(Q&&Q.organization_id!==X.id)return{item:null};if(!Q)return{item:null};return{item:Q}}})});import{z as q11}from"zod";var MP4,VP4,M11;var KU8=w(()=>{n0();Vo();Ww();D11();MP4=q11.object({id:q11.string().describe("ID of the virtual MCP to update"),data:t70.describe("Partial virtual MCP data to update")}),VP4=q11.object({item:JX.describe("The updated virtual MCP entity")}),M11=m({name:"COLLECTION_VIRTUAL_MCP_UPDATE",description:"Update a Virtual MCP's name, slug, connection list, or kickstart prompts. Pass `prompts` to replace the agent's conversation starters (full set; empty array clears them).",annotations:{title:"Update Virtual MCP",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:MP4,outputSchema:VP4,handler:async($,Z)=>{G0(Z);let X=X0(Z);await Z.access.check();let Q=D1(Z);if(!Q)throw Error("User ID required to update virtual MCP");let Y=await Z.storage.virtualMcps.findById($.id);if(!Y)throw Error(`Virtual MCP not found: ${$.id}`);if(Y.organization_id!==X.id)throw Error(`Virtual MCP not found: ${$.id}`);let{prompts:G,...J}=$.data;if(J.metadata&&Y.metadata)J.metadata={...Y.metadata,...J.metadata};if(J.pinned!==void 0&&J.pinned!==Y.pinned)A30(Z);if(J.connections?.length)await T30(Z,X.id,J.connections.map((W)=>W.connection_id));let K=await Z.storage.virtualMcps.update($.id,Q,J);if(G!==void 0&&Z.orgFs)await M30(Z.orgFs,$.id,Q,G);return{item:K}}})});function kP4($){if(!$)return!1;let Z=k11.join("|");return new RegExp(`permission\\s+"?(?:${Z})"?\\s+is not allowed`,"i").test($)||/permissions exceed what the github app/i.test($)}function HU8($){let Z={...$};for(let X of k11)Z[X]="read";return Z}async function NU8($,Z){let X={...Z};for(;;){let Q=await $(X);if(!Q.isError)return{result:Q,grantedPermissions:X};let Y=Q.content?.find((W)=>W.type==="text")?.text,G=k11.find((W)=>(W in X));if(!G||!kP4(Y))return{result:Q,grantedPermissions:X};let{[G]:J,...K}=X;X=K}}function SP4($){if(!$||typeof $!=="object"||Array.isArray($))return WU8;let Z=$;if(Object.values(Z).some((X)=>typeof X!=="string"))return WU8;return Z}function CP4($){if(typeof $!=="number"||!Number.isFinite($)||!Number.isInteger($)||$<=0)return;return $}function h5($){let Z=$.metadata?.repoScope;if(!Z||typeof Z.installationId!=="number"||!Number.isFinite(Z.installationId)||!Number.isInteger(Z.installationId)||Z.installationId<=0||typeof Z.owner!=="string"||typeof Z.repo!=="string"||Z.owner.length===0||Z.repo.length===0)return null;let X=CP4(Z.repositoryId);return{sourceConnectionId:typeof Z.sourceConnectionId==="string"?Z.sourceConnectionId:void 0,installationId:Z.installationId,repositoryId:X,owner:Z.owner,repo:Z.repo,permissions:SP4(Z.permissions),grantProvider:Z.grantProvider==="github-mcp"?"github-mcp":void 0}}function rj($){return $.metadata?.orgShared===!0}function FU8($){let Z=new Set,X=[];for(let Q of $??[]){if(Q.status!=="active")continue;let Y=h5(Q);if(Y===null)continue;let G=V11(Y.owner,Y.repo);if(Z.has(G))continue;Z.add(G),X.push(`${Y.owner}/${Y.repo}`)}return X}function k30($,Z,X){let Q=V11(Z,X),Y=($??[]).filter((G)=>{if(G.status&&G.status!=="active")return!1;let J=h5(G);return J!==null&&V11(J.owner,J.repo)===Q});return Y.find(rj)??Y[0]??null}var WU8,k11,V11=($,Z)=>`${$}/${Z}`.toLowerCase();var XY=w(()=>{WU8={contents:"write",metadata:"read",pull_requests:"write",issues:"write",checks:"read",deployments:"read"},k11=["deployments","checks"]});function UU8($){return D3($)!==null||DQ0($)!==null}var BU8=w(()=>{T6()});import{z as S11}from"zod";var _P4,vP4,C11;var OU8=w(()=>{XY();k3();n0();Vo();Ww();BU8();_P4=S11.object({id:S11.string().describe("ID of the virtual MCP to delete")}),vP4=S11.object({item:JX.describe("The deleted virtual MCP entity")}),C11=m({name:"COLLECTION_VIRTUAL_MCP_DELETE",description:"Permanently delete a Virtual MCP and its virtual tools.",annotations:{title:"Delete Virtual MCP",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:_P4,outputSchema:vP4,handler:async($,Z)=>{G0(Z);let X=X0(Z);if(await Z.access.check(),UU8($.id))throw Error(`Virtual MCP not found: ${$.id}`);let Q=await Z.storage.virtualMcps.findById($.id);if(!Q)throw Error(`Virtual MCP not found: ${$.id}`);if(Q.organization_id!==X.id)throw Error(`Virtual MCP not found: ${$.id}`);await Z.storage.virtualMcps.delete($.id);try{if((await Z.storage.organizationSettings.get(X.id))?.main_agent_id===$.id)await Z.storage.organizationSettings.upsert(X.id,{main_agent_id:null})}catch(G){console.error("[VIRTUAL_MCP_DELETE] failed to clear main agent pointer",{id:$.id,error:G.message})}if(Z.orgFs)await z11(Z.orgFs,$.id,D1(Z)??"system");let Y=Q.metadata?.githubRepo?.connectionId;if(Y)try{let G=await Z.storage.connections.findById(Y,X.id),J=G&&(rj(G)||(await Z.storage.virtualMcps.listByConnectionId(X.id,Y)).length>0||await Z.storage.connections.isReferencedByThread(Y));if(G&&h5(G)&&!J){let W=await new $5(Z.db,Z.vault).get(Y);if(W?.accessToken)try{await fetch("https://api.github.com/installation/token",{method:"DELETE",headers:{Authorization:`Bearer ${W.accessToken}`,Accept:"application/vnd.github+json","X-GitHub-Api-Version":"2022-11-28"},signal:AbortSignal.timeout(5000)})}catch{}await Z.storage.connections.delete(Y)}}catch(G){console.error("[VIRTUAL_MCP_DELETE] failed to tear down repo-scoped connection",{childConnectionId:Y,error:G.message})}return{item:Q}}})});import{z as QY}from"zod";var xP4,_11;var wU8=w(()=>{n0();xP4=QY.object({id:QY.string(),virtualMcpId:QY.string(),pluginId:QY.string(),connectionId:QY.string().nullable(),settings:QY.record(QY.string(),QY.unknown()).nullable(),createdAt:QY.string(),updatedAt:QY.string()}),_11=m({name:"VIRTUAL_MCP_PLUGIN_CONFIG_GET",description:"Get a plugin's current configuration for a specific virtual MCP.",annotations:{title:"Get Virtual MCP Plugin Config",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:QY.object({virtualMcpId:QY.string().describe("Virtual MCP ID"),pluginId:QY.string().describe("Plugin ID")}),outputSchema:QY.object({config:xP4.nullable()}),handler:async($,Z)=>{G0(Z);let X=X0(Z);await Z.access.check();let{virtualMcpId:Q,pluginId:Y}=$,G=await Z.storage.connections.findById(Q);if(!G||G.organization_id!==X.id)return{config:null};if(G.connection_type!=="VIRTUAL")return{config:null};let J=await Z.storage.virtualMcpPluginConfigs.get(Q,Y);if(!J)return{config:null};return{config:{id:J.id,virtualMcpId:J.virtualMcpId,pluginId:J.pluginId,connectionId:J.connectionId,settings:J.settings,createdAt:J.createdAt instanceof Date?J.createdAt.toISOString():J.createdAt,updatedAt:J.updatedAt instanceof Date?J.updatedAt.toISOString():J.updatedAt}}}})});import{z as eZ}from"zod";var fP4,v11;var LU8=w(()=>{n0();Dh();_9();fP4=eZ.object({id:eZ.string(),virtualMcpId:eZ.string(),pluginId:eZ.string(),connectionId:eZ.string().nullable(),settings:eZ.record(eZ.string(),eZ.unknown()).nullable(),createdAt:eZ.string(),updatedAt:eZ.string()}),v11=m({name:"VIRTUAL_MCP_PLUGIN_CONFIG_UPDATE",description:"Set or update a plugin's configuration for a specific virtual MCP.",annotations:{title:"Update Virtual MCP Plugin Config",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:eZ.object({virtualMcpId:eZ.string().describe("Virtual MCP ID"),pluginId:eZ.string().describe("Plugin ID"),connectionId:eZ.string().nullable().optional().describe("MCP connection to bind"),settings:eZ.record(eZ.string(),eZ.unknown()).nullable().optional().describe("Plugin-specific settings")}),outputSchema:eZ.object({config:fP4}),handler:async($,Z)=>{G0(Z);let X=X0(Z);await Z.access.check();let{virtualMcpId:Q,pluginId:Y,connectionId:G,settings:J}=$,K=D1(Z),W=await Z.storage.connections.findById(Q);if(!W)throw Error(`Connection not found: ${Q}`);if(W.organization_id!==X.id)throw Error(`Connection not found: ${Q}`);if(W.connection_type!=="VIRTUAL")throw Error(`Connection not found: ${Q}`);let H=G?await Z.storage.connections.findById(G):null;if(G&&H&&H.organization_id!==X.id)throw Error(`Connection not found: ${G}`);if(G&&W.organization_id&&!H&&UK()&&L30(G,W.organization_id)){if(!K)throw Error("User ID required to create dev-assets connection");let F=Lh(W.organization_id,B9());await Z.storage.connections.create({...F,organization_id:W.organization_id,created_by:K})}else if(G&&!H)throw Error(`Connection not found: ${G}`);let N=await Z.storage.virtualMcpPluginConfigs.upsert(Q,Y,{connectionId:G,settings:J});return{config:{id:N.id,virtualMcpId:N.virtualMcpId,pluginId:N.pluginId,connectionId:N.connectionId,settings:N.settings,createdAt:N.createdAt instanceof Date?N.createdAt.toISOString():N.createdAt,updatedAt:N.updatedAt instanceof Date?N.updatedAt.toISOString():N.updatedAt}}}})});import{z as UQ}from"zod";var bP4,x11;var DU8=w(()=>{n0();Ww();bP4=UQ.object({connectionId:UQ.string(),toolName:UQ.string(),label:UQ.string(),icon:UQ.string().nullable().optional()}),x11=m({name:"VIRTUAL_MCP_PINNED_VIEWS_UPDATE",description:"Update the pinned sidebar views for a virtual MCP. Replaces all current pins.",annotations:{title:"Update Pinned Views",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:UQ.object({virtualMcpId:UQ.string().describe("Virtual MCP ID"),pinnedViews:UQ.array(bP4).describe("Pinned views to set for the virtual MCP sidebar"),layout:UQ.object({defaultMainView:UQ.object({type:UQ.string(),id:UQ.string().optional(),toolName:UQ.string().optional()}).nullable().optional(),chatDefaultOpen:UQ.boolean().nullable().optional()}).optional()}),outputSchema:UQ.object({item:JX.nullable()}),handler:async($,Z)=>{G0(Z);let X=X0(Z);await Z.access.check();let{virtualMcpId:Q,pinnedViews:Y,layout:G}=$,J=D1(Z),K=await Z.storage.virtualMcps.findById(Q);if(!K)throw Error(`Virtual MCP not found: ${Q}`);if(K.organization_id!==X.id)throw Error(`Virtual MCP not found: ${Q}`);let W=K.metadata?.ui??{},H={...W,pinnedViews:Y.length>0?Y:null,layout:G??W.layout??null};return{item:await Z.storage.virtualMcps.update(Q,J??"system",{metadata:{...K.metadata,ui:H}})}}})});import{z as _F}from"zod";var yP4,gP4,f11;var EU8=w(()=>{n0();yP4=_F.object({ids:_F.array(_F.string()).describe("Virtual MCP ids to look up")}),gP4=_F.object({items:_F.array(_F.object({id:_F.string(),last_used_at:_F.string().optional(),last_used_by:_F.string().optional()}))}),f11=m({name:"VIRTUAL_MCP_LAST_USED_LIST",description:"Get last-used info (timestamp + user) for one or more virtual MCPs, derived from the most recent thread per agent.",annotations:{title:"List Virtual MCP Last Used",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:yP4,outputSchema:gP4,handler:async($,Z)=>{G0(Z),X0(Z),await Z.access.check();let X=await Z.storage.threads.findLastUsedByVirtualMcpIds($.ids);return{items:$.ids.map((Q)=>({id:Q,last_used_at:X.get(Q)?.last_used_at,last_used_by:X.get(Q)?.last_used_by}))}}})});var jU8=w(()=>{YU8();GU8();JU8();KU8();OU8();wU8();LU8();DU8();EU8()});import{z as wX}from"zod";var b11;var zU8=w(()=>{r$();n0();b11=m({name:"MONITORING_HEATMAP",description:"Get tool-call volume broken down by agent and tool name, for spotting heavily-used tools per agent.",annotations:{title:"Get Tool-Call Heatmap",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:wX.object({startDate:wX.string().datetime().optional().describe("Filter by start date (ISO 8601 datetime string)"),endDate:wX.string().datetime().optional().describe("Filter by end date (ISO 8601 datetime string)"),virtualMcpIds:wX.array(wX.string()).max(100).optional().describe("Filter by specific agent (Virtual MCP) IDs"),excludeConnectionIds:wX.array(wX.string()).max(100).optional().describe("Exclude tool calls from these connection IDs"),limit:wX.number().int().min(1).max(1000).optional().describe("Max number of (agent, tool) cells to return")}),outputSchema:wX.object({cells:wX.array(wX.object({virtualMcpId:wX.string().nullable(),toolName:wX.string(),calls:wX.number(),errors:wX.number(),outputSize:wX.number().describe("Sum of tool-output character length \u2014 a proxy for context weight, not LLM token count")}))}),handler:async($,Z)=>{let X=X0(Z);return await Z.access.check(),await cQ(),Z.storage.monitoring.queryToolCallHeatmap({organizationId:X.id,startDate:$.startDate?new Date($.startDate):void 0,endDate:$.endDate?new Date($.endDate):void 0,filters:{virtualMcpIds:$.virtualMcpIds,excludeConnectionIds:$.excludeConnectionIds},limit:$.limit})}})});import{z as q5}from"zod";var y11;var PU8=w(()=>{r$();n0();y11=m({name:"MONITORING_LOG_GET",description:"Get a single monitoring log by ID with full input and output data.",annotations:{title:"Get Monitoring Log",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:q5.object({id:q5.string().describe("Log ID to fetch")}),outputSchema:q5.object({log:q5.object({id:q5.string().optional(),organizationId:q5.string(),connectionId:q5.string(),toolName:q5.string(),input:q5.record(q5.string(),q5.unknown()),output:q5.record(q5.string(),q5.unknown()),isError:q5.boolean(),errorMessage:q5.string().nullish(),durationMs:q5.number(),timestamp:q5.string(),userId:q5.string().nullish(),requestId:q5.string(),userAgent:q5.string().nullish(),virtualMcpId:q5.string().nullish(),properties:q5.record(q5.string(),q5.string()).nullish()}).nullable().describe("The monitoring log, or null if not found")}),handler:async($,Z)=>{await Z.access.check(),await cQ();let X=X0(Z),Q=await Z.storage.monitoring.getById(X.id,$.id);if(!Q)return{log:null};return{log:{...Q,timestamp:Q.timestamp instanceof Date?Q.timestamp.toISOString():Q.timestamp}}}})});import{z as E6}from"zod";var uP4,g11;var AU8=w(()=>{r$();n0();uP4=E6.object({id:E6.string().optional().describe("Unique log identifier"),organizationId:E6.string().describe("Organization ID"),connectionId:E6.string().describe("Connection ID"),toolName:E6.string().describe("Name of the tool that was called"),isError:E6.boolean().describe("Whether the call resulted in an error"),errorMessage:E6.string().nullish().describe("Error message if applicable"),durationMs:E6.number().describe("Call duration in milliseconds"),timestamp:E6.string().describe("ISO 8601 timestamp of the call"),userId:E6.string().nullish().describe("User who triggered the call"),requestId:E6.string().describe("Unique request identifier"),userAgent:E6.string().nullish().describe("Client identifier (x-studio-client header)"),virtualMcpId:E6.string().nullish().describe("Virtual MCP (Agent) ID if routed through an agent"),properties:E6.record(E6.string(),E6.string()).nullish().describe("Custom key-value metadata attached to the log")}),g11=m({name:"MONITORING_LOGS_LIST",description:"List monitoring logs for tool calls with filtering and pagination.",annotations:{title:"List Monitoring Logs",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:E6.object({connectionId:E6.string().optional().describe("Filter by connection ID"),excludeConnectionIds:E6.array(E6.string()).optional().describe("Exclude logs from these connection IDs (e.g. system connections)"),virtualMcpId:E6.string().optional().describe("Filter by Virtual MCP (Agent) ID"),toolName:E6.string().optional().describe("Filter by tool name"),isError:E6.boolean().optional().describe("Filter by error status"),startDate:E6.string().datetime().optional().describe("Filter by start date (ISO 8601 datetime string)"),endDate:E6.string().datetime().optional().describe("Filter by end date (ISO 8601 datetime string)"),limit:E6.number().default(20).describe("Maximum number of results"),offset:E6.number().default(0).describe("Offset for pagination"),properties:E6.record(E6.string(),E6.string()).optional().describe("Filter by exact property key=value matches"),propertyKeys:E6.array(E6.string()).optional().describe("Filter by logs that have these property keys"),propertyPatterns:E6.record(E6.string(),E6.string()).optional().describe("Filter by property value patterns (SQL LIKE, use % as wildcard)"),propertyInValues:E6.record(E6.string(),E6.string()).optional().describe("Filter by exact match within comma-separated values (e.g., user_tags in 'Engineering')")}),outputSchema:E6.object({logs:E6.array(uP4).describe("Array of monitoring logs"),total:E6.number().describe("Total number of logs matching filters"),offset:E6.number().describe("Current offset for pagination"),limit:E6.number().describe("Current limit for pagination")}),handler:async($,Z)=>{await Z.access.check(),await cQ();let X=X0(Z),Y=$.properties||$.propertyKeys||$.propertyPatterns||$.propertyInValues?{properties:$.properties,propertyKeys:$.propertyKeys,propertyPatterns:$.propertyPatterns,propertyInValues:$.propertyInValues}:void 0,G={organizationId:X.id,connectionId:$.connectionId,excludeConnectionIds:$.excludeConnectionIds,virtualMcpId:$.virtualMcpId,toolName:$.toolName,isError:$.isError,startDate:$.startDate?new Date($.startDate):void 0,endDate:$.endDate?new Date($.endDate):void 0,limit:$.limit,offset:$.offset,propertyFilters:Y},J=await Z.storage.monitoring.query(G);return{logs:J.logs.map(({input:K,output:W,...H})=>({...H,timestamp:H.timestamp instanceof Date?H.timestamp.toISOString():H.timestamp})),total:J.total,offset:$.offset,limit:$.limit}}})});import{z as F8}from"zod";var h11;var TU8=w(()=>{r$();n0();h11=m({name:"MONITORING_STATS",description:"Get aggregated statistics (counts, latency, error rates) for tool call monitoring.",annotations:{title:"Get Monitoring Stats",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:F8.object({startDate:F8.string().datetime().optional().describe("Filter by start date (ISO 8601 datetime string)"),endDate:F8.string().datetime().optional().describe("Filter by end date (ISO 8601 datetime string)"),interval:F8.string().regex(/^\d+[mhd]$/).optional().describe("Bucket interval for timeseries data (e.g. 1m, 5m, 2h, 1d). When provided, returns timeseries array."),connectionIds:F8.array(F8.string()).max(100).optional().describe("Filter by specific connection IDs (max 100)"),excludeConnectionIds:F8.array(F8.string()).max(100).optional().describe("Exclude specific connection IDs (max 100)"),toolNames:F8.array(F8.string()).max(100).optional().describe("Filter by specific tool names (max 100)"),status:F8.enum(["success","error"]).optional().describe("Filter metrics by execution status"),topN:F8.number().int().min(1).max(20).optional().describe("When provided with interval, also return top tools and their timeseries"),userIds:F8.array(F8.string()).max(100).optional().describe("Filter LLM usage by user IDs (only applied when llmUsage is true)"),llmUsage:F8.boolean().optional().describe("Aggregate LLM-call usage (tokens + USD cost) from raw log rows for the given connection. Returns token/cost totals and timeseries. Requires interval.")}),outputSchema:F8.object({totalCalls:F8.number().describe("Total number of tool calls"),errorRate:F8.number().optional().describe("Error rate as a decimal (0 to 1)"),avgDurationMs:F8.number().describe("Average call duration in milliseconds"),errorRatePercent:F8.string().optional().describe("Error rate as a percentage string"),totalErrors:F8.number().optional().describe("Total number of errors"),p50DurationMs:F8.number().optional().describe("50th percentile duration in milliseconds"),p95DurationMs:F8.number().optional().describe("95th percentile duration in milliseconds"),connectionBreakdown:F8.array(F8.object({connectionId:F8.string(),calls:F8.number(),errors:F8.number(),errorRate:F8.number(),avgDurationMs:F8.number()})).optional().describe("Per-connection metric breakdown"),totalInputTokens:F8.number().optional().describe("Total input tokens (LLM usage mode)"),totalOutputTokens:F8.number().optional().describe("Total output tokens (LLM usage mode)"),totalTokens:F8.number().optional().describe("Total tokens (LLM usage mode)"),totalCostUsd:F8.number().optional().describe("Total USD cost (LLM usage mode; only non-zero for providers that report cost)"),topTools:F8.array(F8.object({toolName:F8.string(),connectionId:F8.string().nullable(),calls:F8.number(),inputTokens:F8.number().optional(),outputTokens:F8.number().optional(),costUsd:F8.number().optional()})).optional().describe("Top tools ranked by calls"),topToolsTimeseries:F8.array(F8.object({timestamp:F8.string(),toolName:F8.string(),calls:F8.number(),errors:F8.number(),avg:F8.number(),p95:F8.number()})).optional().describe("Per-tool metric timeseries for the top tools"),timeseries:F8.array(F8.object({timestamp:F8.string(),calls:F8.number(),errors:F8.number(),errorRate:F8.number(),avg:F8.number(),p50:F8.number(),p95:F8.number(),inputTokens:F8.number().optional(),outputTokens:F8.number().optional(),totalTokens:F8.number().optional(),costUsd:F8.number().optional()})).optional().describe("Timeseries data points bucketed by interval")}),handler:async($,Z)=>{let X=X0(Z);if(await Z.access.check(),await cQ(),$.interval&&$.llmUsage)return Z.storage.monitoring.queryLlmUsageStats({organizationId:X.id,interval:$.interval,connectionId:$.connectionIds?.[0]??"decopilot",startDate:$.startDate?new Date($.startDate):void 0,endDate:$.endDate?new Date($.endDate):void 0,userIds:$.userIds,topN:$.topN});if($.interval){let Y=await Z.storage.monitoring.queryMetricTimeseries({organizationId:X.id,interval:$.interval,startDate:$.startDate?new Date($.startDate):void 0,endDate:$.endDate?new Date($.endDate):void 0,filters:{connectionIds:$.connectionIds,excludeConnectionIds:$.excludeConnectionIds,toolNames:$.toolNames,status:$.status}});if(!$.topN)return Y;let G=await Z.storage.monitoring.queryMetricTopToolsTimeseries({organizationId:X.id,interval:$.interval,startDate:$.startDate?new Date($.startDate):void 0,endDate:$.endDate?new Date($.endDate):void 0,topN:$.topN,filters:{connectionIds:$.connectionIds,excludeConnectionIds:$.excludeConnectionIds,toolNames:$.toolNames,status:$.status}});return{...Y,topTools:G.topTools,topToolsTimeseries:G.timeseries}}let Q=await Z.storage.monitoring.getStats({organizationId:X.id,startDate:$.startDate?new Date($.startDate):void 0,endDate:$.endDate?new Date($.endDate):void 0});return{...Q,errorRatePercent:(Q.errorRate*100).toFixed(2)}}})});import{z as BQ}from"zod";var u11;var RU8=w(()=>{r$();n0();u11=m({name:"MONITORING_THREAD_USAGE",description:"Aggregate LLM token usage and USD cost per thread for the given thread IDs.",annotations:{title:"Get Thread Usage",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:BQ.object({threadIds:BQ.array(BQ.string()).min(1).max(500).describe("Thread IDs to aggregate usage for (max 500)"),connectionId:BQ.string().optional().describe("LLM connection ID (defaults to 'decopilot')"),startDate:BQ.string().datetime().optional().describe("Filter by start date (ISO 8601 datetime string)"),endDate:BQ.string().datetime().optional().describe("Filter by end date (ISO 8601 datetime string)")}),outputSchema:BQ.object({items:BQ.array(BQ.object({threadId:BQ.string(),calls:BQ.number(),inputTokens:BQ.number(),outputTokens:BQ.number(),totalTokens:BQ.number(),costUsd:BQ.number()}))}),handler:async($,Z)=>{let X=X0(Z);return await Z.access.check(),await cQ(),{items:await Z.storage.monitoring.queryThreadUsage({organizationId:X.id,connectionId:$.connectionId??"decopilot",threadIds:$.threadIds,startDate:$.startDate?new Date($.startDate):void 0,endDate:$.endDate?new Date($.endDate):void 0})}}})});var IU8=w(()=>{zU8();PU8();AU8();TU8();RU8()});function S30($){return typeof $==="string"&&lP4.has($.trim().toLowerCase())}var lP4;var c11=w(()=>{lP4=new Set([".well-known","_admin","api","auth","cli","commerce-onboarding","dbos-queue-depth","health","hosted-run-pending","login","mcp","metrics","oauth","oauth-proxy","onboarding","org","report","reset-password"])});import{z as wG}from"zod";var l11;var qU8=w(()=>{n0();c11();l11=m({name:"ORGANIZATION_CREATE",description:"Create a new organization. The caller becomes the owner automatically.",annotations:{title:"Create Organization",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!1,openWorldHint:!1},inputSchema:wG.object({slug:wG.string().min(1).max(50).regex(/^[a-z0-9-]+$/,"Slug must be lowercase alphanumeric with hyphens").refine(($)=>!S30($),"Slug is reserved by Studio"),name:wG.string().min(1).max(255),description:wG.string().optional()}),outputSchema:wG.object({id:wG.string(),name:wG.string(),slug:wG.string(),logo:wG.string().nullable().optional(),metadata:wG.any().optional(),createdAt:wG.string().datetime().describe("ISO 8601 timestamp"),members:wG.array(wG.any()).optional()}),handler:async($,Z)=>{G0(Z),await Z.access.check();let X=D1(Z);if(!X)throw Error("User ID required to create organization");let Q=await Z.boundAuth.organization.create({name:$.name,slug:$.slug,metadata:$.description?{description:$.description}:void 0,userId:X});if(!Q)throw Error("Failed to create organization");return{...Q,createdAt:Q.createdAt instanceof Date?Q.createdAt.toISOString():Q.createdAt}}})});import{z as BK}from"zod";var d11;var MU8=w(()=>{n0();d11=m({name:"ORGANIZATION_LIST",description:"List organizations the current user belongs to.",annotations:{title:"List Organizations",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},_meta:{ui:{visibility:"app"}},inputSchema:BK.object({userId:BK.string().optional()}),outputSchema:BK.object({organizations:BK.array(BK.object({id:BK.string(),name:BK.string(),slug:BK.string(),logo:BK.string().nullable().optional(),metadata:BK.any().optional(),createdAt:BK.string().datetime().describe("ISO 8601 timestamp")}))}),handler:async($,Z)=>{G0(Z),await Z.access.check();let X=D1(Z),Q=$.userId||X;if(!Q)throw Error("User ID required to list organizations");return{organizations:(await Z.boundAuth.organization.list(Q)).map((G)=>({...G,createdAt:G.createdAt instanceof Date?G.createdAt.toISOString():G.createdAt}))}}})});import{z as S3}from"zod";var m11;var VU8=w(()=>{n0();m11=m({name:"ORGANIZATION_GET",description:"Get an organization's details, members, and settings by slug or ID.",annotations:{title:"Get Organization",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:S3.object({}),outputSchema:S3.object({id:S3.string(),name:S3.string(),slug:S3.string(),logo:S3.string().nullable().optional(),metadata:S3.any().optional(),createdAt:S3.string().datetime().describe("ISO 8601 timestamp"),members:S3.array(S3.any()).optional(),invitations:S3.array(S3.any()).optional()}),handler:async($,Z)=>{G0(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.boundAuth.organization.get(X);if(!Q)throw Error("No active organization found");let Y=new Date,G=Q.invitations?.filter((J)=>new Date(J.expiresAt)>Y);return{...Q,invitations:G,createdAt:Q.createdAt instanceof Date?Q.createdAt.toISOString():Q.createdAt}}})});import{z as OK}from"zod";var i11;var kU8=w(()=>{n0();i11=m({name:"ORGANIZATION_UPDATE",description:"Update an organization's name or description.",annotations:{title:"Update Organization",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:OK.object({id:OK.string(),name:OK.string().min(1).max(255).optional(),description:OK.string().optional()}),outputSchema:OK.object({id:OK.string(),name:OK.string(),slug:OK.string(),logo:OK.string().nullable().optional(),metadata:OK.any().optional(),createdAt:OK.string().datetime().describe("ISO 8601 timestamp")}),handler:async($,Z)=>{G0(Z),await Z.access.check();let X={};if($.name)X.name=$.name;if($.description)X.metadata={description:$.description};let Q=await Z.boundAuth.organization.update({organizationId:$.id,data:X});if(!Q)throw Error("Failed to update organization");return{...Q,createdAt:Q.createdAt instanceof Date?Q.createdAt.toISOString():Q.createdAt}}})});import{z as ko}from"zod";var n11;var SU8=w(()=>{n0();n11=m({name:"ORGANIZATION_DELETE",description:"Archive an organization (soft delete).",annotations:{title:"Delete Organization",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:ko.object({id:ko.string()}),outputSchema:ko.object({success:ko.boolean(),id:ko.string()}),handler:async($,Z)=>{return G0(Z),await Z.access.check(),await Z.boundAuth.organization.update({organizationId:$.id,data:{metadata:{archived:!0,archivedAt:new Date().toISOString()}}}),{success:!0,id:$.id}}})});import{z as w8}from"zod";function C30($,Z){let X=$?.[Z];return dP4.has(Z)?X!==!1:X===!0}var So,Co,vF,CU8,Dw,_o,vo,xo,fo,dP4,Ew;var YY=w(()=>{So=w8.object({title:w8.string(),url:w8.string(),icon:w8.string()}),Co=w8.object({registries:w8.record(w8.string(),w8.object({enabled:w8.boolean()})).describe("Per-registry enabled/disabled state. Key is connection ID. Absent registries are treated as enabled."),blockedMcps:w8.array(w8.string()).describe("List of MCP app_name or app_id values to hide from the store.")}),vF=w8.object({keyId:w8.string(),modelId:w8.string(),title:w8.string().optional()}).nullable(),CU8=w8.enum(["fast","smart","thinking","image","web_search","deep_research"]),Dw=w8.enum(["fast","smart","thinking"]),_o=w8.object({tiers:w8.object({fast:vF,smart:vF,thinking:vF,image:vF,web_search:vF,deep_research:vF})}),vo=w8.object({tiers:w8.object({fast:vF.optional(),smart:vF.optional(),thinking:vF.optional()})}),xo=w8.object({ids:w8.array(w8.string()).describe("Ordered list of custom virtual MCP agent ids to show on the home view.")}),fo=w8.object({demo_mode:w8.boolean().optional().describe("Curated demo org: the commerce connect modal proceeds without a configured required data source."),reports_only:w8.boolean().optional().describe("Curated commerce (reports) look: hides agent navigation, the home Customize button, and the Settings/Automations tabs. Defaulted on for orgs created by commerce onboarding."),nav_v2:w8.boolean().optional().describe("First-class navigation: the sidebar lists destinations (Reports, Library, Tasks) instead of chat threads, and the thread list moves into a menu at the top of the chat panel. Always on for reports_only orgs."),qa_agent_enabled:w8.boolean().optional().describe("Run the QA Agent on a task's pull request once it's In Review \u2014 it verifies the task actually solved the problem (exercises the feature, not just the diff)."),code_reviewer_enabled:w8.boolean().optional().describe("Run the Code Reviewer on a task's pull request once it's In Review \u2014 it reviews the code using the repo's stack-appropriate review skills."),auto_merge:w8.boolean().optional().describe("When every enabled reviewer (QA Agent / Code Reviewer) approves a task's pull request, merge it automatically instead of leaving the merge to a human. If the merge is blocked by a conflict with the base branch, hand the PR back to the Super Agent to resolve the conflict (check out the branch, merge the base, push) so it can then merge."),cheap_reviewer_model:w8.boolean().optional().describe("Run the QA Agent and Code Reviewer on a cheaper model than the Super Agent. A review reads a diff and reaches a verdict; it does not need the model that wrote the code. Off by default \u2014 turning it on trades some review depth for cost."),auto_assign_report_tasks_to_super_agent:w8.boolean().optional().describe("When a report import creates a task board item without an assignee, delegate it to the Super Agent automatically instead of leaving it unassigned.")}),dP4=new Set(["qa_agent_enabled","code_reviewer_enabled"]);Ew=w8.object({id:w8.string().describe("Brand context ID"),name:w8.string().describe("Company name"),domain:w8.string().describe("Company domain (e.g. example.com)"),overview:w8.string().describe("Company overview / description"),logo:w8.string().nullable().optional().describe("Logo URL"),favicon:w8.string().nullable().optional().describe("Favicon URL"),ogImage:w8.string().nullable().optional().describe("OG image URL"),fonts:w8.object({heading:w8.string().optional().describe("Font family for headings"),body:w8.string().optional().describe("Font family for body text"),code:w8.string().optional().describe("Font family for code / monospace")}).nullable().optional().describe("Font families by semantic role"),colors:w8.object({primary:w8.string().optional().describe("Primary brand color (hex)"),secondary:w8.string().optional().describe("Secondary brand color (hex)"),accent:w8.string().optional().describe("Accent / highlight color (hex)"),background:w8.string().optional().describe("Background color (hex)"),foreground:w8.string().optional().describe("Foreground / text color (hex)")}).nullable().optional().describe("Semantic color palette"),images:w8.array(w8.record(w8.string(),w8.unknown())).nullable().optional().describe("Brand images"),metadata:w8.record(w8.string(),w8.unknown()).nullable().optional().describe("Extra design tokens (typography, components, spacing, layout, tone, etc.)"),archivedAt:w8.string().nullable().optional().describe("Archive timestamp (null to unarchive)"),isDefault:w8.boolean().optional().describe("Whether this is the default brand for the organization")})});import{z as xF}from"zod";var p11;var _U8=w(()=>{n0();YY();p11=m({name:"ORGANIZATION_SETTINGS_GET",description:"Get organization-level settings including sidebar configuration, store registry settings, simple model mode, and default home agents.",annotations:{title:"Get Organization Settings",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:xF.object({}),outputSchema:xF.object({organizationId:xF.string(),sidebar_items:xF.array(So).nullable().optional(),enabled_plugins:xF.array(xF.string()).nullable().optional(),registry_config:Co.nullable().optional(),simple_mode:_o.nullable().optional(),default_home_agents:xo.nullable().optional(),flags:fo.nullable().optional(),main_agent_id:xF.string().nullable().optional(),createdAt:xF.string().datetime().optional().describe("ISO 8601 timestamp"),updatedAt:xF.string().datetime().optional().describe("ISO 8601 timestamp")}),handler:async($,Z)=>{G0(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.organizationSettings.get(X);if(!Q)return{organizationId:X};return{...Q,createdAt:Q.createdAt instanceof Date?Q.createdAt.toISOString():Q.createdAt,updatedAt:Q.updatedAt instanceof Date?Q.updatedAt.toISOString():Q.updatedAt}}})});import{z as GY}from"zod";var t11;var vU8=w(()=>{n0();YY();t11=m({name:"ORGANIZATION_SETTINGS_UPDATE",description:"Update organization-level settings such as sidebar configuration, store registry settings, simple model mode, and default home agents.",annotations:{title:"Update Organization Settings",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:GY.object({organizationId:GY.string(),sidebar_items:GY.array(So).optional(),enabled_plugins:GY.array(GY.string()).optional(),registry_config:Co.optional(),simple_mode:_o.optional(),default_home_agents:xo.optional(),flags:fo.strict().optional().describe("Org boolean toggles. Shallow-merged into the stored flags: keys you pass win (explicit false persists), omitted keys keep their value."),main_agent_id:GY.string().nullable().optional().describe("Virtual MCP id the org lands on instead of the Super Agent. Pass null to clear.")}),outputSchema:GY.object({organizationId:GY.string(),sidebar_items:GY.array(So).nullable().optional(),enabled_plugins:GY.array(GY.string()).nullable().optional(),registry_config:Co.nullable().optional(),simple_mode:_o.nullable().optional(),default_home_agents:xo.nullable().optional(),flags:fo.nullable().optional(),main_agent_id:GY.string().nullable().optional(),createdAt:GY.string().datetime().describe("ISO 8601 timestamp"),updatedAt:GY.string().datetime().describe("ISO 8601 timestamp")}),handler:async($,Z)=>{if(G0(Z),await Z.access.check(),X0(Z).id!==$.organizationId)throw Error("Cannot update settings for a different organization");let Q=await Z.storage.organizationSettings.upsert($.organizationId,{sidebar_items:$.sidebar_items,enabled_plugins:$.enabled_plugins,registry_config:$.registry_config,simple_mode:$.simple_mode,default_home_agents:$.default_home_agents,flags:$.flags,main_agent_id:$.main_agent_id});return{...Q,createdAt:Q.createdAt instanceof Date?Q.createdAt.toISOString():Q.createdAt,updatedAt:Q.updatedAt instanceof Date?Q.updatedAt.toISOString():Q.updatedAt}}})});import{z as wK}from"zod";var xU8,o11,r11;var fU8=w(()=>{n0();YY();xU8=Ew.extend({organizationId:wK.string(),archivedAt:wK.string().nullable().optional().describe("ISO 8601 timestamp"),createdAt:wK.string().describe("ISO 8601 timestamp"),updatedAt:wK.string().describe("ISO 8601 timestamp")}),o11=m({name:"BRAND_CONTEXT_LIST",description:"List all brand contexts (company profiles) for the current organization.",annotations:{title:"List Brand Contexts",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:wK.object({includeArchived:wK.boolean().optional().describe("Include archived brands in the list")}),outputSchema:wK.object({items:wK.array(xU8)}),handler:async($,Z)=>{G0(Z),await Z.access.check();let X=Z.organization?.id;if(!X)throw Error("Organization ID required (no active organization in context)");return{items:(await Z.storage.brandContext.list(X,{includeArchived:$.includeArchived})).map((Y)=>({...Y,archivedAt:Y.archivedAt instanceof Date?Y.archivedAt.toISOString():Y.archivedAt,createdAt:Y.createdAt instanceof Date?Y.createdAt.toISOString():Y.createdAt,updatedAt:Y.updatedAt instanceof Date?Y.updatedAt.toISOString():Y.updatedAt}))}}}),r11=m({name:"BRAND_CONTEXT_GET",description:"Get a specific brand context by ID.",annotations:{title:"Get Brand Context",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:wK.object({id:wK.string().describe("Brand context ID")}),outputSchema:xU8.extend({organizationId:wK.string()}),handler:async($,Z)=>{G0(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.brandContext.get($.id,X);if(!Q)throw Error("Brand context not found");return{...Q,archivedAt:Q.archivedAt instanceof Date?Q.archivedAt.toISOString():Q.archivedAt,createdAt:Q.createdAt instanceof Date?Q.createdAt.toISOString():Q.createdAt,updatedAt:Q.updatedAt instanceof Date?Q.updatedAt.toISOString():Q.updatedAt}}})});import{z as aj}from"zod";var bU8,a11,s11,e11;var yU8=w(()=>{n0();YY();bU8=Ew.extend({organizationId:aj.string(),createdAt:aj.string().describe("ISO 8601 timestamp"),updatedAt:aj.string().describe("ISO 8601 timestamp")}),a11=m({name:"BRAND_CONTEXT_CREATE",description:"Create a new brand context (company profile) for the current organization.",annotations:{title:"Create Brand Context",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1,openWorldHint:!1},inputSchema:Ew.omit({id:!0}),outputSchema:bU8,handler:async($,Z)=>{G0(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.brandContext.create(X,{name:$.name,domain:$.domain,overview:$.overview,logo:$.logo??null,favicon:$.favicon??null,ogImage:$.ogImage??null,fonts:$.fonts??null,colors:$.colors??null,images:$.images??null,metadata:$.metadata??null});return{...Q,archivedAt:Q.archivedAt instanceof Date?Q.archivedAt.toISOString():Q.archivedAt,createdAt:Q.createdAt instanceof Date?Q.createdAt.toISOString():Q.createdAt,updatedAt:Q.updatedAt instanceof Date?Q.updatedAt.toISOString():Q.updatedAt}}}),s11=m({name:"BRAND_CONTEXT_UPDATE",description:"Update an existing brand context by ID.",annotations:{title:"Update Brand Context",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:Ew.partial().required({id:!0}),outputSchema:bU8,handler:async($,Z)=>{G0(Z),await Z.access.check();let X=Z.organization?.id;if(!X)throw Error("Organization ID required (no active organization in context)");if(!await Z.storage.brandContext.get($.id,X))throw Error("Brand context not found");let{id:Y,...G}=$;if(G.isDefault===!0)await Z.storage.brandContext.setDefault(Y,X);let J=await Z.storage.brandContext.update(Y,X,{name:G.name,domain:G.domain,overview:G.overview,logo:G.logo!==void 0?G.logo??null:void 0,favicon:G.favicon!==void 0?G.favicon??null:void 0,ogImage:G.ogImage!==void 0?G.ogImage??null:void 0,fonts:G.fonts!==void 0?G.fonts??null:void 0,colors:G.colors!==void 0?G.colors??null:void 0,images:G.images!==void 0?G.images??null:void 0,metadata:G.metadata!==void 0?G.metadata??null:void 0,archivedAt:G.archivedAt!==void 0?G.archivedAt??null:void 0,isDefault:G.isDefault===!1?!1:void 0});return{...J,archivedAt:J.archivedAt instanceof Date?J.archivedAt.toISOString():J.archivedAt,createdAt:J.createdAt instanceof Date?J.createdAt.toISOString():J.createdAt,updatedAt:J.updatedAt instanceof Date?J.updatedAt.toISOString():J.updatedAt}}}),e11=m({name:"BRAND_CONTEXT_DELETE",description:"Archive a brand context by ID (soft delete).",annotations:{title:"Archive Brand Context",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:aj.object({id:aj.string().describe("Brand context ID")}),outputSchema:aj.object({success:aj.boolean()}),handler:async($,Z)=>{G0(Z),await Z.access.check();let X=Z.organization?.id;if(!X)throw Error("Organization ID required (no active organization in context)");if(!await Z.storage.brandContext.get($.id,X))throw Error("Brand context not found");return await Z.storage.brandContext.update($.id,X,{archivedAt:new Date().toISOString(),isDefault:!1}),{success:!0}}})});async function _30($,Z,X){let Q=$.trim();if(!Q.startsWith("http"))Q=`https://${Q}`;let Y=await fetch("https://api.firecrawl.dev/v1/scrape",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${Z}`},body:JSON.stringify({url:Q,formats:["branding"]})});if(!Y.ok){let U=await Y.text().catch(()=>"");throw Error(`Firecrawl API error: ${Y.status} ${U.slice(0,200)}`)}let G=await Y.json();if(!G.success||!G.data?.branding)return null;let J=G.data.branding,K=G.data.metadata??{},W=nP4(J,K);return{name:K.title?.split(/[|\u2013\u2014]|\s+-\s+/).map((U)=>U.trim()).filter(Boolean)?.slice().sort((U,B)=>U.length-B.length)[0]??K.ogSiteName??X??$,domain:$,overview:K.description??"",logo:W.logo,favicon:W.favicon,ogImage:W.ogImage,fonts:W.fonts,colors:W.colors,images:null,metadata:Object.keys(W.metadata).length>0?W.metadata:null}}function nP4($,Z){let X=$.images??{},Q=$.colors??{},Y={};for(let[N,F]of Object.entries(Q))if(typeof F==="string"&&F&&mP4.has(N))Y[N]=F;let G={},K=($.typography??{}).fontFamilies??{};for(let[N,F]of Object.entries(K))if(typeof F==="string"&&F){let U=iP4[N.toLowerCase()];if(U&&!G[U])G[U]=F}let W=$.fonts;if(Array.isArray(W))for(let N of W){let F=N.family;if(typeof F==="string"&&F&&!G.body)G.body=F}let H={};for(let N of["typography","components","spacing","layout","animations","icons","tone","personality","colorScheme"])if($[N]!==void 0)H[N]=$[N];return{logo:X.logo??null,favicon:X.favicon??null,ogImage:X.ogImage??Z.ogImage??null,fonts:Object.keys(G).length>0?G:null,colors:Object.keys(Y).length>0?Y:null,metadata:H}}var mP4,iP4;var $81=w(()=>{mP4=new Set(["primary","secondary","accent","background","foreground"]),iP4={heading:"heading",headings:"heading",head:"heading",title:"heading",body:"body",primary:"body",text:"body",code:"code",monospace:"code",mono:"code"}});import{z as v30}from"zod";var pP4,Z81;var gU8=w(()=>{n0();$81();YY();pP4=Ew.pick({id:!0,name:!0,domain:!0,overview:!0,logo:!0,favicon:!0,ogImage:!0,fonts:!0,colors:!0}).extend({success:v30.boolean()}),Z81=m({name:"BRAND_CONTEXT_EXTRACT",description:"Extract brand context (colors, fonts, logos) from a website URL using Firecrawl.",annotations:{title:"Extract Brand Context",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!0,openWorldHint:!0},inputSchema:v30.object({domain:v30.string().describe("Website domain to extract brand from"),brandId:v30.string().optional().describe("Existing brand context ID to update (creates new if omitted)")}),outputSchema:pP4,modelSummary:($)=>$.success?`Brand saved (id=${$.id}, name=${$.name}, domain=${$.domain}). The UI rendered the logo, colors, fonts, and overview.`:"Brand extraction failed.",handler:async($,Z)=>{G0(Z),await Z.access.check();let X=Z.organization?.id;if(!X)throw Error("Organization ID required (no active organization in context)");let Q=Z.firecrawlApiKey;if(!Q)throw Error("FIRECRAWL_API_KEY is not configured. Set the environment variable to enable brand extraction.");let Y=await _30($.domain,Q,$.domain);if(!Y)throw Error("Firecrawl did not return branding data for this URL");let G={name:Y.name,domain:Y.domain,overview:Y.overview,logo:Y.logo,favicon:Y.favicon,ogImage:Y.ogImage,fonts:Y.fonts,colors:Y.colors,images:Y.images,metadata:Y.metadata},J=$.brandId?await(async()=>{if(!await Z.storage.brandContext.get($.brandId,X))throw Error("Brand context not found");return Z.storage.brandContext.update($.brandId,X,G)})():await Z.storage.brandContext.create(X,G);return{id:J.id,name:J.name,domain:J.domain,overview:J.overview,logo:J.logo,favicon:J.favicon,ogImage:J.ogImage,fonts:J.fonts,colors:J.colors,success:!0}}})});function hU8($){let Z=$.metadata??{};return{id:$.id,name:$.name,domain:$.domain||void 0,colors:$.colors??void 0,fonts:$.fonts??void 0,assets:$.logo||$.favicon||$.ogImage?{logo:$.logo??void 0,favicon:$.favicon??void 0,ogImage:$.ogImage??void 0}:void 0,overview:$.overview||void 0,tagline:typeof Z.tagline==="string"?Z.tagline:void 0,tone:typeof Z.tone==="string"?Z.tone:void 0,metadata:(()=>{let X=Object.fromEntries(Object.entries(Z).filter(([Q])=>Q!=="tagline"&&Q!=="tone"));return Object.keys(X).length>0?X:void 0})()}}var X81,Q81;var uU8=w(()=>{G11();n0();X81=m({name:"BRAND_GET",description:"Get a brand context by ID. Omit the ID to get the default brand for the organization.",annotations:{title:"Get Brand",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:H30,outputSchema:Lo,handler:async($,Z)=>{G0(Z),await Z.access.check();let X=Z.organization?.id;if(!X)throw Error("Organization ID required (no active organization in context)");let Q=$.id?await Z.storage.brandContext.get($.id,X):await Z.storage.brandContext.getDefault(X);if(!Q)throw Error($.id?"Brand not found":"No default brand configured");return hU8(Q)}}),Q81=m({name:"BRAND_LIST",description:"List all active brands for the current organization.",annotations:{title:"List Brands",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:N30,outputSchema:F30,handler:async($,Z)=>{G0(Z),await Z.access.check();let X=Z.organization?.id;if(!X)throw Error("Organization ID required (no active organization in context)");return{items:(await Z.storage.brandContext.list(X)).map(hU8)}}})});import{resolveTxt as tP4}from"dns/promises";function Y81($){return`${oP4}.${$.toLowerCase()}`}function cU8(){return`deco-verify-${crypto.randomUUID().replace(/-/g,"")}`}async function lU8($,Z,X=tP4){if(!Z)return!1;try{return(await X(Y81($))).some((Y)=>Y.join("").trim()===Z)}catch{return!1}}var oP4="_deco-verify";var dU8=()=>{};import{z as u5}from"zod";function jw($){let Z=$.verificationStatus==="pending"&&Boolean($.verificationToken);return{id:$.id,domain:$.domain,joinMode:$.joinMode,verificationStatus:$.verificationStatus,verificationMethod:$.verificationMethod,verifiedAt:$.verifiedAt?new Date($.verifiedAt).toISOString():null,recordName:Z?Y81($.domain):null,recordValue:Z?$.verificationToken:null}}function aP4($){let Z=$.toLowerCase().trim();if(!rP4.test(Z))throw Error(`Invalid domain format: "${Z}". Must be a valid domain like "acme.com"`);if(LK.has(Z))throw Error(`Cannot claim generic email domain "${Z}". Only corporate domains are allowed.`);return Z}var rP4,G81,x30,J81,K81,W81,H81,N81;var mU8=w(()=>{LG();dU8();n0();rP4=/^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)+$/,G81=u5.enum(["off","auto","request"]),x30=u5.object({id:u5.string(),domain:u5.string(),joinMode:G81,verificationStatus:u5.enum(["pending","verified"]),verificationMethod:u5.enum(["email","dns"]).nullable(),verifiedAt:u5.string().nullable(),recordName:u5.string().nullable(),recordValue:u5.string().nullable()});J81=m({name:"ORGANIZATION_DOMAIN_LIST",description:"List the email domains claimed by an organization.",annotations:{title:"List Organization Domains",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:u5.object({}),outputSchema:u5.object({domains:u5.array(x30)}),handler:async($,Z)=>{G0(Z),await Z.access.check();let X=X0(Z);return{domains:(await Z.storage.organizationDomains.listByOrganizationId(X.id)).map(jw)}}}),K81=m({name:"ORGANIZATION_DOMAIN_ADD",description:"Claim an email domain for an organization. If the caller's verified email matches the domain it is trusted immediately; otherwise it requires DNS verification.",annotations:{title:"Add Organization Domain",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:u5.object({domain:u5.string().min(1).max(255).describe("Domain to claim, e.g. acme.com"),joinMode:G81.optional().describe("Initial join mode (only applied when the domain is trusted immediately via email match).")}),outputSchema:x30,handler:async($,Z)=>{G0(Z),await Z.access.check();let X=X0(Z),Q=aP4($.domain),G=Z.auth.user?.email?.split("@")[1]?.toLowerCase(),J=Boolean(Z.auth.user?.emailVerified)&&G===Q,K=await Z.storage.organizationDomains.getByOrgAndDomain(X.id,Q);if(K){if(K.verificationStatus!=="verified"&&J){let H=await Z.storage.organizationDomains.markVerified(K.id,"email");return jw(H)}return jw(K)}let W=J?await Z.storage.organizationDomains.add(X.id,Q,{joinMode:$.joinMode??"off",verificationStatus:"verified",verificationMethod:"email"}):await Z.storage.organizationDomains.add(X.id,Q,{joinMode:"off",verificationStatus:"pending",verificationToken:cU8()});return jw(W)}}),W81=m({name:"ORGANIZATION_DOMAIN_UPDATE",description:"Set the join mode for a claimed domain. Discoverable modes (auto/request) require the domain to be verified.",annotations:{title:"Update Organization Domain",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:u5.object({id:u5.string(),joinMode:G81}),outputSchema:x30,handler:async($,Z)=>{G0(Z),await Z.access.check();let X=X0(Z),Q=await Z.storage.organizationDomains.getById($.id);if(!Q||Q.organizationId!==X.id)throw Error("Domain not found");if($.joinMode!=="off"&&Q.verificationStatus!=="verified")throw Error("Verify the domain before enabling auto-join or requests.");let Y=await Z.storage.organizationDomains.updateJoinMode($.id,$.joinMode);return jw(Y)}}),H81=m({name:"ORGANIZATION_DOMAIN_VERIFY",description:"Check the DNS TXT record for a pending domain and mark it verified if present.",annotations:{title:"Verify Organization Domain",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!0,openWorldHint:!0},inputSchema:u5.object({id:u5.string()}),outputSchema:u5.object({verified:u5.boolean(),domain:x30}),handler:async($,Z)=>{G0(Z),await Z.access.check();let X=X0(Z),Q=await Z.storage.organizationDomains.getById($.id);if(!Q||Q.organizationId!==X.id)throw Error("Domain not found");if(Q.verificationStatus==="verified")return{verified:!0,domain:jw(Q)};if(!Q.verificationToken)throw Error("Domain has no pending DNS verification.");if(!await lU8(Q.domain,Q.verificationToken))return{verified:!1,domain:jw(Q)};let G=await Z.storage.organizationDomains.markVerified($.id,"dns");return{verified:!0,domain:jw(G)}}}),N81=m({name:"ORGANIZATION_DOMAIN_REMOVE",description:"Remove a claimed domain from an organization.",annotations:{title:"Remove Organization Domain",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:u5.object({id:u5.string()}),outputSchema:u5.object({success:u5.boolean()}),handler:async($,Z)=>{G0(Z),await Z.access.check();let X=X0(Z),Q=await Z.storage.organizationDomains.getById($.id);if(!Q||Q.organizationId!==X.id)throw Error("Domain not found");return await Z.storage.organizationDomains.removeById($.id),{success:!0}}})});function zw($){return($ instanceof Error?$.message.toLowerCase():"").includes("already a member")}import{z as y9}from"zod";var sP4,F81,U81,B81;var iU8=w(()=>{n0();h4();sP4=y9.object({id:y9.string(),userId:y9.string(),status:y9.enum(["pending","approved","denied"]),createdAt:y9.string(),user:y9.object({id:y9.string(),name:y9.string(),email:y9.string(),image:y9.string().nullable()}).nullable()}),F81=m({name:"ORGANIZATION_JOIN_REQUEST_LIST",description:"List pending requests to join the organization.",annotations:{title:"List Join Requests",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:y9.object({}),outputSchema:y9.object({requests:y9.array(sP4)}),handler:async($,Z)=>{G0(Z),await Z.access.check();let X=X0(Z);return{requests:(await Z.storage.organizationJoinRequests.listPendingWithUser(X.id)).map((Y)=>({id:Y.id,userId:Y.userId,status:Y.status,createdAt:new Date(Y.createdAt).toISOString(),user:Y.user}))}}}),U81=m({name:"ORGANIZATION_JOIN_REQUEST_APPROVE",description:"Approve a pending join request, adding the user as a member.",annotations:{title:"Approve Join Request",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:y9.object({requestId:y9.string()}),outputSchema:y9.object({success:y9.boolean()}),handler:async($,Z)=>{G0(Z),await Z.access.check();let X=X0(Z),Q=await Z.storage.organizationJoinRequests.getById($.requestId);if(!Q||Q.organizationId!==X.id)throw Error("Join request not found");if(Q.status!=="pending")throw Error("Join request has already been decided");let Y=D1(Z);if(!await Z.storage.organizationJoinRequests.decide(Q.id,"approved",Y??Q.userId))return{success:!0};try{await Z.boundAuth.organization.addMember({organizationId:X.id,userId:Q.userId,role:["user"]})}catch(J){if(!zw(J))throw J}if(Y)n1.capture({distinctId:Y,event:"organization_join_request_approved",groups:{organization:X.id},properties:{organization_id:X.id,user_id:Q.userId}});return{success:!0}}}),B81=m({name:"ORGANIZATION_JOIN_REQUEST_DENY",description:"Deny a pending join request.",annotations:{title:"Deny Join Request",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:y9.object({requestId:y9.string()}),outputSchema:y9.object({success:y9.boolean()}),handler:async($,Z)=>{G0(Z),await Z.access.check();let X=X0(Z),Q=await Z.storage.organizationJoinRequests.getById($.requestId);if(!Q||Q.organizationId!==X.id)throw Error("Join request not found");if(Q.status!=="pending")throw Error("Join request has already been decided");let Y=D1(Z);if(await Z.storage.organizationJoinRequests.decide(Q.id,"denied",Y??Q.userId)&&Y)n1.capture({distinctId:Y,event:"organization_join_request_denied",groups:{organization:X.id},properties:{organization_id:X.id,user_id:Q.userId}});return{success:!0}}})});import{z as JY}from"zod";var O81;var nU8=w(()=>{h4();n0();T3();O81=m({name:"ORGANIZATION_MEMBER_ADD",description:"Invite a member to the organization by email with an assigned role.",annotations:{title:"Add Organization Member",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:JY.object({organizationId:JY.string().optional(),userId:JY.string(),role:JY.array(JY.string())}),outputSchema:JY.object({id:JY.string(),organizationId:JY.string(),userId:JY.string(),role:JY.union([JY.string(),JY.array(JY.string())]),createdAt:JY.string().datetime().describe("ISO 8601 timestamp")}),handler:async($,Z)=>{G0(Z),await Z.access.check();let X=$.organizationId||Z.organization?.id;if(!X)throw Error("Organization ID required (no active organization in context)");if(X!==Z.organization?.id)throw Error("Organization ID does not match authenticated organization");let Q=await Z.db.selectFrom("member").select(["role"]).where("userId","=",D1(Z)??"").where("organizationId","=",X).executeTakeFirst();if(!uY0(Q?.role,$.role))throw Error(`Insufficient privileges to assign role "${$.role.join(",")}"`);let Y=await Z.boundAuth.organization.addMember({organizationId:X,userId:$.userId,role:$.role});if(!Y)throw Error("Failed to add member");let G=D1(Z);if(G)n1.capture({distinctId:G,event:"organization_member_added",groups:{organization:X},properties:{organization_id:X,added_user_id:$.userId,role:$.role}});return{...Y,role:Y.role,createdAt:Y.createdAt instanceof Date?Y.createdAt.toISOString():Y.createdAt}}})});import{z as Ah}from"zod";var w81;var pU8=w(()=>{h4();n0();w81=m({name:"ORGANIZATION_MEMBER_REMOVE",description:"Remove a member from the organization. Revokes all their access immediately.",annotations:{title:"Remove Organization Member",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:Ah.object({organizationId:Ah.string().optional(),memberIdOrEmail:Ah.string()}),outputSchema:Ah.object({success:Ah.boolean(),memberIdOrEmail:Ah.string()}),handler:async($,Z)=>{G0(Z),await Z.access.check();let X=$.organizationId||Z.organization?.id;if(!X)throw Error("Organization ID required (no active organization in context)");if(X!==Z.organization?.id)throw Error("Organization ID does not match authenticated organization");let Q=await Z.boundAuth.organization.removeMember({organizationId:X,memberIdOrEmail:$.memberIdOrEmail});Z.invalidateMemberRole?.(Q.member.userId,X);let Y=D1(Z);if(Y)n1.capture({distinctId:Y,event:"organization_member_removed",groups:{organization:X},properties:{organization_id:X,member_id_or_email:$.memberIdOrEmail}});return{success:!0,memberIdOrEmail:$.memberIdOrEmail}}})});import{z as LX}from"zod";var L81;var tU8=w(()=>{n0();L81=m({name:"ORGANIZATION_MEMBER_LIST",description:"List all members in the organization with their roles.",annotations:{title:"List Organization Members",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:LX.object({limit:LX.number().optional(),offset:LX.number().optional()}),outputSchema:LX.object({members:LX.array(LX.object({id:LX.string(),organizationId:LX.string(),userId:LX.string(),role:LX.string(),createdAt:LX.string().datetime().describe("ISO 8601 timestamp"),user:LX.object({id:LX.string(),name:LX.string(),email:LX.string(),image:LX.string().optional()}).optional()}))}),handler:async($,Z)=>{G0(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.boundAuth.organization.listMembers({organizationId:X,limit:$.limit,offset:$.offset});return{members:(Array.isArray(Q)?Q:[]).map((G)=>({...G,createdAt:G.createdAt instanceof Date?G.createdAt.toISOString():G.createdAt}))}}})});import{z as $7}from"zod";var D81;var oU8=w(()=>{h4();n0();T3();D81=m({name:"ORGANIZATION_MEMBER_UPDATE_ROLE",description:"Change a member's role (e.g., admin, member) within the organization.",annotations:{title:"Update Member Role",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:$7.object({organizationId:$7.string().optional(),memberId:$7.string(),role:$7.array($7.string())}),outputSchema:$7.object({id:$7.string(),organizationId:$7.string(),userId:$7.string(),role:$7.union([$7.string(),$7.array($7.string())]),createdAt:$7.string().datetime().describe("ISO 8601 timestamp"),user:$7.object({email:$7.string(),name:$7.string(),image:$7.string().optional()})}),handler:async($,Z)=>{G0(Z),await Z.access.check();let X=$.organizationId||Z.organization?.id;if(!X)throw Error("Organization ID required (no active organization in context)");let Q=await Z.db.selectFrom("member").select(["role"]).where("userId","=",D1(Z)??"").where("organizationId","=",X).executeTakeFirst();if(!uY0(Q?.role,$.role))throw Error(`Insufficient privileges to assign role "${$.role.join(",")}"`);let Y=await Z.boundAuth.organization.updateMemberRole({organizationId:X,memberId:$.memberId,role:$.role});if(!Y)throw Error("Failed to update member role");Z.invalidateMemberRole?.(Y.userId,X);let G=D1(Z);if(G)n1.capture({distinctId:G,event:"organization_member_role_updated",groups:{organization:X},properties:{organization_id:X,member_id:$.memberId,target_user_id:Y.userId,new_role:Array.isArray($.role)?$.role.join(","):$.role}});return{...Y,createdAt:Y.createdAt instanceof Date?Y.createdAt.toISOString():Y.createdAt}}})});async function rU8(){if(bo&&Date.now()-bo.fetchedAt<600000)return bo.rate;try{let Z=await(await fetch("https://economia.awesomeapi.com.br/json/last/USD-BRL",{signal:AbortSignal.timeout(5000)})).json(),X=parseFloat(Z.USDBRL?.bid??"");if(Number.isNaN(X)||X<=0)throw Error("Invalid rate");return bo={rate:X,fetchedAt:Date.now()},X}catch{return bo?.rate??5.5}}function aU8($,Z,X){if(Z==="brl")return Math.round($/X);return $}var bo=null;function E81($,Z="",X=new URLSearchParams){for(let[Q,Y]of Object.entries($)){if(Y===void 0||Y===null)continue;let G=Z?`${Z}[${Q}]`:Q;if(Array.isArray(Y))Y.forEach((J,K)=>{if(typeof J==="object"&&J!==null)E81(J,`${G}[${K}]`,X);else X.append(`${G}[${K}]`,String(J))});else if(typeof Y==="object")E81(Y,G,X);else X.append(G,String(Y))}return X}async function yo($,Z){let X=o0().stripeSecretKey;if(!X)throw new DG(503,"billing is not configured");let Q=Z?.params?E81(Z.params).toString():void 0,Y=await fetch(`${eP4}${$}`,{method:Z?.method??(Q?"POST":"GET"),headers:{Authorization:`Bearer ${X}`,...Q&&{"Content-Type":"application/x-www-form-urlencoded"}},body:Q,signal:AbortSignal.timeout($A4)}),G=await Y.json().catch(()=>({}));if(!Y.ok){let J=G.error?.message??`HTTP ${Y.status}`;throw new DG(Y.status,J)}return G}function sU8($){return{billing_address_collection:"required",tax_id_collection:{enabled:!0},...$&&{customer_update:{address:"auto",name:"auto"}}}}async function eU8($){let Z=o0().stripeOrgPriceId;if(!Z)throw new DG(503,"billing is not configured");let X=await yo("/checkout/sessions",{params:{mode:"subscription",...sU8(null),line_items:[{price:Z,quantity:1}],success_url:$.successUrl,cancel_url:$.cancelUrl,metadata:{orgId:$.organizationId},subscription_data:{metadata:{orgId:$.organizationId}}}});if(!X.url)throw new DG(500,"checkout session lacks url");return{url:X.url}}function ZA4($,Z){return Math.round($*(1+Z/100))}async function $B8($){let Z=ZA4($.amountCents,$.feePercent),X=aU8($.amountCents,$.currency,await rU8()),Q=o0().stripeTopupProductId,Y={kind:"topup",orgId:$.organizationId,creditCents:X},G=$.currency==="brl"?`Studio AI credits (R$ ${($.amountCents/100).toFixed(2)})`:`Studio AI credits ($${($.amountCents/100).toFixed(2)})`,J=await yo("/checkout/sessions",{params:{mode:"payment",...$.customerId&&{customer:$.customerId},...sU8($.customerId),line_items:[{quantity:1,price_data:{currency:$.currency,unit_amount:Z,...Q?{product:Q}:{product_data:{name:G}}}}],success_url:$.successUrl,cancel_url:$.cancelUrl,metadata:Y,payment_intent_data:{metadata:Y}}});if(!J.url)throw new DG(500,"checkout session lacks url");return{url:J.url}}async function f30($){let Z=await yo("/billing_portal/sessions",{params:{customer:$.customerId,return_url:$.returnUrl}});if(!Z.url)throw new DG(500,"portal session lacks url");return{url:Z.url}}async function b30($){return yo(`/subscriptions/${encodeURIComponent($)}`)}async function ZB8($){await yo(`/subscriptions/${encodeURIComponent($)}`,{method:"DELETE"})}var eP4="https://api.stripe.com/v1",DG,$A4=15000;var sj=w(()=>{C8();DG=class DG extends Error{status;constructor($,Z){super(`Stripe API ${$}: ${Z}`);this.status=$;this.name="StripeApiError"}}});import{z as j81}from"zod";var z81;var XB8=w(()=>{sj();_9();n0();h4();z81=m({name:"ORGANIZATION_BILLING_CHECKOUT_START",description:"Start the organization's subscription: creates a Stripe Checkout session and returns its URL.",annotations:{title:"Start Billing Checkout",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1,openWorldHint:!0},inputSchema:j81.object({}),outputSchema:j81.object({url:j81.string()}),handler:async($,Z)=>{G0(Z),await Z.access.check();let X=Z.organization?.id,Q=Z.organization?.slug;if(!X||!Q)throw Error("Organization context required");let Y=await Z.storage.organizationBilling.getBilling(X);if(Y?.status==="active")throw Error("This organization already has an active subscription.");if(Y?.stripeSubscriptionId)throw Error("This organization still has a subscription on file \u2014 settle or cancel it before starting a new checkout.");let G=`${dZ()}/${encodeURIComponent(Q)}/members`,{url:J}=await eU8({organizationId:X,successUrl:`${G}?checkout=success`,cancelUrl:`${G}?checkout=canceled`});return FG({event:"subscription_checkout_started",organizationId:X,...Z.auth?.user?.id?{userId:Z.auth.user.id}:{}}),{url:J}}})});import{z as P81}from"zod";var A81;var QB8=w(()=>{sj();_9();n0();A81=m({name:"ORGANIZATION_BILLING_PORTAL",description:"Open the organization's Stripe billing portal (manage card, invoices, cancellation). Returns the portal URL.",annotations:{title:"Open Billing Portal",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1,openWorldHint:!0},inputSchema:P81.object({}),outputSchema:P81.object({url:P81.string()}),handler:async($,Z)=>{G0(Z),await Z.access.check();let X=X0(Z);if(!X.slug)throw Error("Organization context required");let Q=await Z.storage.organizationBilling.getBilling(X.id);if(!Q?.stripeCustomerId)throw Error("This organization has no billing account yet \u2014 subscribe first.");try{return await f30({customerId:Q.stripeCustomerId,returnUrl:`${dZ()}/${encodeURIComponent(X.slug)}/members`})}catch(Y){if(Y instanceof DG)throw Error(Y.message);throw Y}}})});function y30($){return T81[$%T81.length]??XA4}function KY($){return $.createdBy==="system"}function fF($){return g30.filter((Z)=>C30($,QA4[Z]))}function Rh($,Z){return $?.startsWith(`${Th[Z]}:`)??!1}function bF($){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 R81($,Z){let X=bF($),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 Pw($,Z,X){if(Z.length===0)return!1;let Q=R81($,X);return Z.every((Y)=>Q.get(Y)==="approved")}function GB8($,Z){return Pw($,Z)&&!Pw($,Z,{verifiedOnly:!0})}function JB8($){let Z=null;for(let X of $){if(X.action!=="review_approved"&&X.action!=="review_changes_requested")continue;let Q=new Date(X.occurredAt).getTime();if(Z&&Q<Z.at)continue;let Y=X.data?.notes;Z={at:Q,notes:X.action==="review_changes_requested"&&typeof Y==="string"?Y:null}}return Z?.notes??null}function YA4($){let Z=0;for(let X of $){if(X.action!=="assignee_changed")continue;if(X.data?.to!==G4)continue;Z=Math.max(Z,new Date(X.occurredAt).getTime())}return Z}function KB8($,Z=I81){let X=YA4($),Q=new Set,Y=0;for(let G of[...$].sort((J,K)=>J.occurredAt.localeCompare(K.occurredAt))){let J=new Date(G.occurredAt).getTime();if(G.action==="status_changed"){if(G.data?.to==="in_review")Y=J;continue}if(G.action==="review_changes_requested"&&J>=X)Q.add(Y)}return Q.size+1>=Z}var G4="super-agent",T81,XA4,go='Your checkout is SHALLOW (`git clone --depth 1`), so it has no merge base and `git diff main...HEAD` (three dots) fails with "fatal: main...HEAD: no merge base". To see a branch diff, either use the two-dot form against the fetched remote ref (`git fetch origin <base> && git diff origin/<base> HEAD`), or deepen first with `git fetch --deepen=100`. Same for `git log main..HEAD` and anything else that needs shared history.',YB8,g30,Th,QA4,I81=5,WB8="task-board.item.updated",HB8="task-board.item.deleted";var g9=w(()=>{YY();T81=["#9ca3af","#ef4444","#f97316","#f59e0b","#22c55e","#3b82f6","#a855f7","#ec4899"],XA4=T81[0];YB8="Read the diff with `gh pr diff <number>`. It comes from the API, so it needs no fetch, no merge base, and is unaffected by the shallow checkout. "+"Read it ONCE \u2014 `gh pr diff <number> --name-only` first if you need to size "+"it, then pull the hunks you need per FILE. Do NOT re-run the diff sliced by directory: each slice re-reads bytes you already have into every remaining turn's context, and it is the largest avoidable cost in a review.",g30=["qa","code_review"],Th={qa:"QA Agent",code_review:"Code Reviewer"},QA4={qa:"qa_agent_enabled",code_review:"code_reviewer_enabled"}});function q81($){return $==="trial"?"trial":"subscription"}function ho($,Z,X,Q={}){FG({event:Z,organizationId:X.organizationId,...$.auth?.user?.id?{userId:$.auth.user.id}:{},properties:{task_id:X.id,...Q}})}function M81($){return $?.status==="active"||$?.status==="past_due"}function h30($,Z){if(M81($))return{periodKey:$?.currentPeriodEnd?`sub:${$.currentPeriodEnd.toISOString()}`:"sub:pending",limit:$?.monthlyTaskExecutions??Z.monthlyTaskExecutions,exhaustedReason:"monthly_exhausted"};return{periodKey:"trial",limit:$?.freeTaskExecutions??Z.freeTaskExecutions,exhaustedReason:"trial_exhausted"}}function uo(){let $=o0();return{enforced:$.taskQuotaEnforced,freeTaskExecutions:$.freeTaskExecutions,monthlyTaskExecutions:$.monthlyTaskExecutions,maxRunsPerTask:$.maxRunsPerTask}}function Ih(){return{...uo(),maxRunsPerTask:Number.POSITIVE_INFINITY}}async function u30($,Z,X=uo()){if(!X.enforced||!KY(Z))return;let Q=await $.storage.organizationBilling.taskClaim(Z.id);if(Q&&Q.runCount>=X.maxRunsPerTask)throw ho($,"task_quota_blocked",Z,{phase:"precheck",reason:"runs_exhausted"}),new DX("runs_exhausted");if(Q&&Q.state!=="released")return;let Y=await $.storage.organizationBilling.getBilling(Z.organizationId),G=h30(Y,X);if(await $.storage.organizationBilling.countTaskClaims(Z.organizationId,G.periodKey)>=G.limit)throw ho($,"task_quota_blocked",Z,{phase:"precheck",reason:G.exhaustedReason,billing_mode:q81(G.periodKey),limit:G.limit}),new DX(G.exhaustedReason)}async function NB8($,Z,X=uo()){if(!X.enforced||!KY(Z))return"skipped";let Q=await $.storage.organizationBilling.getBilling(Z.organizationId),Y=h30(Q,X),G=await $.storage.organizationBilling.claimTaskUnderLimit(Z.organizationId,Z.id,Y.periodKey,Y.limit,X.maxRunsPerTask);if(G==="exhausted")throw ho($,"task_quota_blocked",Z,{phase:"claim",reason:Y.exhaustedReason,billing_mode:q81(Y.periodKey),limit:Y.limit}),new DX(Y.exhaustedReason);if(G==="runs_exhausted")throw ho($,"task_quota_blocked",Z,{phase:"claim",reason:"runs_exhausted"}),new DX("runs_exhausted");if(G==="claimed")ho($,"task_quota_claimed",Z,{billing_mode:q81(Y.periodKey),period_key:Y.periodKey,limit:Y.limit});return G}async function FB8($,Z,X,Q){if(Q==="skipped")return;await $.rollbackTaskClaim(Z,X,{releaseSlot:Q==="claimed"}).catch((Y)=>console.error("[task-quota] rollback failed (stays charged)",Y))}async function UB8($,Z){let X=await $.storage.organizationBilling.taskClaim(Z);return!!X&&X.state!=="released"}async function BB8($,Z,X){if(await $.releaseTaskClaim(Z,X).catch((Y)=>{return console.error("[task-quota] refund failed (stays charged)",Y),!1}))FG({event:"task_quota_refunded",organizationId:Z,properties:{task_id:X}})}var GA4="[SUBSCRIPTION_REQUIRED]",JA4,DX;var DK=w(()=>{g9();h4();C8();JA4={trial_exhausted:"this organization used its free task executions \u2014 subscribe to keep running tasks",monthly_exhausted:"this organization used its monthly task executions \u2014 more become available next billing cycle",runs_exhausted:"this task reached its execution limit \u2014 create a new task to keep going"};DX=class DX extends Error{reason;constructor($){super(`${GA4} ${JA4[$]}`);this.reason=$;this.name="TaskQuotaError"}}});import{z as yF}from"zod";var V81;var OB8=w(()=>{n0();DK();V81=m({name:"ORGANIZATION_TASK_QUOTA_GET",description:"Get the organization's auto-task quota: how many runs are used in the current period, the limit, and the subscription's billing status.",annotations:{title:"Get Task Quota",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:yF.object({}),outputSchema:yF.object({enforced:yF.boolean(),billingStatus:yF.string(),subscribed:yF.boolean(),hasBillingAccount:yF.boolean(),used:yF.number(),limit:yF.number(),currentPeriodEnd:yF.string().datetime().nullable()}),handler:async($,Z)=>{G0(Z),await Z.access.check();let X=X0(Z),Q=uo(),Y=await Z.storage.organizationBilling.getBilling(X.id),G=h30(Y,Q),J=await Z.storage.organizationBilling.countTaskClaims(X.id,G.periodKey);return{enforced:Q.enforced,billingStatus:Y?.status??"none",subscribed:M81(Y),hasBillingAccount:!!Y?.stripeCustomerId,used:J,limit:G.limit,currentPeriodEnd:Y?.currentPeriodEnd?.toISOString()??null}}})});var wB8=w(()=>{qU8();MU8();VU8();kU8();SU8();_U8();vU8();fU8();yU8();gU8();uU8();mU8();iU8();nU8();pU8();tU8();oU8();XB8();QB8();OB8()});function FH($){if($==null)return"unknown error";if(typeof $==="string")return $;if($ instanceof Error)return $.message;return JSON.stringify($)}function c30($){if($===null||typeof $==="string"||typeof $==="number"||typeof $==="boolean")return!0;if(Array.isArray($))return $.every(c30);if(typeof $==="object")return Object.entries($).every(([Z,X])=>typeof Z==="string"&&(X===void 0||c30(X)));return!1}function k81($){return Array.isArray($)&&$.every(c30)}function co($){return $!=null&&typeof $==="object"&&Object.entries($).every(([Z,X])=>typeof Z==="string"&&(X===void 0||c30(X)))}var mB8="vercel.ai.error",WA4,LB8,DB8,E1,iB8="AI_APICallError",nB8,HA4,EB8,jB8,O4,pB8="AI_EmptyResponseBodyError",tB8,NA4,zB8,PB8,l30,oB8="AI_InvalidArgumentError",rB8,FA4,AB8,TB8,Aw,aB8="AI_InvalidPromptError",sB8,UA4,RB8,IB8,C3,eB8="AI_InvalidResponseDataError",$O8,BA4,qB8,MB8,qh,ZO8="AI_JSONParseError",XO8,OA4,VB8,kB8,gF,QO8="AI_LoadAPIKeyError",YO8,wA4,SB8,CB8,ej,GO8="AI_LoadSettingError",JO8,LA4,_B8,vB8,KO8,WO8="AI_NoContentGeneratedError",HO8,DA4,xB8,fB8,NO8,FO8="AI_NoSuchModelError",UO8,EA4,bB8,yB8,e5,BO8="AI_TooManyEmbeddingValuesForCallError",OO8,jA4,gB8,hB8,Mh,wO8="AI_TypeValidationError",LO8,zA4,uB8,cB8,M5,DO8="AI_UnsupportedFunctionalityError",EO8,PA4,lB8,dB8,c4;var Y8=w(()=>{WA4=Symbol.for(mB8),E1=class $ extends(DB8=Error,LB8=WA4,DB8){constructor({name:Z,message:X,cause:Q}){super(X);this[LB8]=!0,this.name=Z,this.cause=Q}static isInstance(Z){return $.hasMarker(Z,mB8)}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}},nB8=`vercel.ai.error.${iB8}`,HA4=Symbol.for(nB8),O4=class extends(jB8=E1,EB8=HA4,jB8){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:iB8,message:$,cause:J});this[EB8]=!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 E1.hasMarker($,nB8)}},tB8=`vercel.ai.error.${pB8}`,NA4=Symbol.for(tB8),l30=class extends(PB8=E1,zB8=NA4,PB8){constructor({message:$="Empty response body"}={}){super({name:pB8,message:$});this[zB8]=!0}static isInstance($){return E1.hasMarker($,tB8)}};rB8=`vercel.ai.error.${oB8}`,FA4=Symbol.for(rB8),Aw=class extends(TB8=E1,AB8=FA4,TB8){constructor({message:$,cause:Z,argument:X}){super({name:oB8,message:$,cause:Z});this[AB8]=!0,this.argument=X}static isInstance($){return E1.hasMarker($,rB8)}},sB8=`vercel.ai.error.${aB8}`,UA4=Symbol.for(sB8),C3=class extends(IB8=E1,RB8=UA4,IB8){constructor({prompt:$,message:Z,cause:X}){super({name:aB8,message:`Invalid prompt: ${Z}`,cause:X});this[RB8]=!0,this.prompt=$}static isInstance($){return E1.hasMarker($,sB8)}},$O8=`vercel.ai.error.${eB8}`,BA4=Symbol.for($O8),qh=class extends(MB8=E1,qB8=BA4,MB8){constructor({data:$,message:Z=`Invalid response data: ${JSON.stringify($)}.`}){super({name:eB8,message:Z});this[qB8]=!0,this.data=$}static isInstance($){return E1.hasMarker($,$O8)}},XO8=`vercel.ai.error.${ZO8}`,OA4=Symbol.for(XO8),gF=class extends(kB8=E1,VB8=OA4,kB8){constructor({text:$,cause:Z}){super({name:ZO8,message:`JSON parsing failed: Text: ${$}.
2271
2271
  Error message: ${FH(Z)}`,cause:Z});this[VB8]=!0,this.text=$}static isInstance($){return E1.hasMarker($,XO8)}},YO8=`vercel.ai.error.${QO8}`,wA4=Symbol.for(YO8),ej=class extends(CB8=E1,SB8=wA4,CB8){constructor({message:$}){super({name:QO8,message:$});this[SB8]=!0}static isInstance($){return E1.hasMarker($,YO8)}},JO8=`vercel.ai.error.${GO8}`,LA4=Symbol.for(JO8),KO8=class extends(vB8=E1,_B8=LA4,vB8){constructor({message:$}){super({name:GO8,message:$});this[_B8]=!0}static isInstance($){return E1.hasMarker($,JO8)}},HO8=`vercel.ai.error.${WO8}`,DA4=Symbol.for(HO8),NO8=class extends(fB8=E1,xB8=DA4,fB8){constructor({message:$="No content generated."}={}){super({name:WO8,message:$});this[xB8]=!0}static isInstance($){return E1.hasMarker($,HO8)}},UO8=`vercel.ai.error.${FO8}`,EA4=Symbol.for(UO8),e5=class extends(yB8=E1,bB8=EA4,yB8){constructor({errorName:$=FO8,modelId:Z,modelType:X,message:Q=`No such ${X}: ${Z}`}){super({name:$,message:Q});this[bB8]=!0,this.modelId=Z,this.modelType=X}static isInstance($){return E1.hasMarker($,UO8)}},OO8=`vercel.ai.error.${BO8}`,jA4=Symbol.for(OO8),Mh=class extends(hB8=E1,gB8=jA4,hB8){constructor($){super({name:BO8,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[gB8]=!0,this.provider=$.provider,this.modelId=$.modelId,this.maxEmbeddingsPerCall=$.maxEmbeddingsPerCall,this.values=$.values}static isInstance($){return E1.hasMarker($,OO8)}},LO8=`vercel.ai.error.${wO8}`,zA4=Symbol.for(LO8),M5=class $ extends(cB8=E1,uB8=zA4,cB8){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:wO8,message:`${Y}: Value: ${JSON.stringify(Z)}.
2272
2272
  Error message: ${FH(X)}`,cause:X});this[uB8]=!0,this.value=Z,this.context=Q}static isInstance(Z){return E1.hasMarker(Z,LO8)}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})}},EO8=`vercel.ai.error.${DO8}`,PA4=Symbol.for(EO8),c4=class extends(dB8=E1,lB8=PA4,dB8){constructor({functionality:$,message:Z=`'${$}' functionality not supported.`}){super({name:DO8,message:Z});this[lB8]=!0,this.functionality=$}static isInstance($){return E1.hasMarker($,EO8)}}});import*as n30 from"zod/v4";import{ZodFirstPartyTypeKind as A4}from"zod/v3";import{ZodFirstPartyTypeKind as hA4}from"zod/v3";import{ZodFirstPartyTypeKind as d30}from"zod/v3";function Z6(...$){return $.reduce((Z,X)=>({...Z,...X!=null?X:{}}),{})}function m30({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 HY($,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(jO8());return}let G=setTimeout(()=>{J(),Q()},$),J=()=>{clearTimeout(G),X==null||X.removeEventListener("abort",K)},K=()=>{J(),Y(jO8())};X==null||X.addEventListener("abort",K)})}function jO8(){return new DOMException("Delay was aborted","AbortError")}function Vh($){return Object.fromEntries([...$.headers])}function h9($){let Z=$.replace(/-/g,"+").replace(/_/g,"/"),X=TA4(Z);return Uint8Array.from(X,(Q)=>Q.codePointAt(0))}function FY($){let Z="";for(let X=0;X<$.length;X++)Z+=String.fromCodePoint($[X]);return AA4(Z)}function TZ($){return $ instanceof Uint8Array?FY($):$}function IO8($,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 lo($){var Z;try{await((Z=$.body)==null?void 0:Z.cancel())}catch(X){}}function IA4($=globalThis){return $.window!=null}function qA4($){let Z;try{Z=new URL($)}catch(Q){throw new AZ({url:$,message:`Invalid URL: ${$}`})}if(Z.protocol==="data:")return;if(Z.protocol!=="http:"&&Z.protocol!=="https:")throw new AZ({url:$,message:`URL scheme must be http, https, or data, got ${Z.protocol}`});let X=Z.hostname.toLowerCase().replace(/\.+$/,"");if(!X)throw new AZ({url:$,message:"URL must have a hostname"});if(X==="localhost"||X.endsWith(".local")||X.endsWith(".localhost"))throw new AZ({url:$,message:`URL with hostname ${X} is not allowed`});if(X.startsWith("[")&&X.endsWith("]")){let Q=X.slice(1,-1);if(VA4(Q))throw new AZ({url:$,message:`URL with IPv6 address ${X} is not allowed`});return}if(VO8(X)){if(kO8(X))throw new AZ({url:$,message:`URL with IP address ${X} is not allowed`});return}}function VO8($){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 kO8($){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 MA4($){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||!VO8(N))return null;let[F,U,B,O]=N.split(".").map(Number);K.push(F<<8|U,B<<8|O);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 VA4($){let Z=MA4($);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 kO8(`${Y}.${G}.${J}.${K}`)}return!1}async function x81({url:$,headers:Z,abortSignal:X,maxRedirects:Q=kA4}){let Y={signal:X};if(Z!==void 0)Y.headers=Z;let G=$;for(let J=0;J<=Q;J++){qA4(G);let K=await fetch(G,{...Y,redirect:"manual"});if(K.type==="opaqueredirect"){if(!IA4())throw new AZ({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 lo(K),G=new URL(W,G).toString();continue}return K}throw new AZ({url:$,message:`Too many redirects (max ${Q})`})}async function f81({response:$,url:Z,maxBytes:X=i30}){let Q=$.headers.get("content-length");if(Q!=null){let N=parseInt(Q,10);if(!isNaN(N)&&N>X)throw await lo($),new AZ({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:F}=await G.read();if(N)break;if(K+=F.length,K>X)throw new AZ({url:Z,message:`Download of ${Z} exceeded maximum size of ${X} bytes.`});J.push(F)}}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 b81($,Z){var X,Q;try{let Y=await x81({url:$,abortSignal:Z==null?void 0:Z.abortSignal});if(!Y.ok)throw await lo(Y),new AZ({url:$,statusCode:Y.status,statusText:Y.statusText});let G=await f81({response:Y,url:$,maxBytes:(X=Z==null?void 0:Z.maxBytes)!=null?X:i30}),J=(Q=Y.headers.get("content-type"))!=null?Q:void 0;return new Blob([G],J?{type:J}:void 0)}catch(Y){if(AZ.isInstance(Y))throw Y;throw new AZ({url:$,cause:Y})}}function kh($){if($==null)return"unknown error";if(typeof $==="string")return $;if($ instanceof Error)return $.message;return JSON.stringify($)}function WY($){return($ instanceof Error||$ instanceof DOMException)&&($.name==="AbortError"||$.name==="ResponseAborted"||$.name==="TimeoutError")}function _A4($){if(!($ instanceof Error))return!1;let Z=$.code;if(typeof Z==="string"&&CA4.includes(Z))return!0;return!1}function SO8({error:$,url:Z,requestBodyValues:X}){if(WY($))return $;if($ instanceof TypeError&&SA4.includes($.message.toLowerCase())){let Q=$.cause;if(Q!=null)return new O4({message:`Cannot connect to API: ${Q.message}`,cause:Q,url:Z,requestBodyValues:X,isRetryable:!0})}if(_A4($))return new O4({message:`Cannot connect to API: ${$.message}`,cause:$,url:Z,requestBodyValues:X,isRetryable:!0});return $}function Tw($=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 Rw($){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 Y$($,...Z){let X=new Headers(Rw($)),Q=X.get("user-agent")||"";return X.set("user-agent",[Q,...Z].filter(Boolean).join(" ")),Object.fromEntries(X.entries())}function Zz($){return $!=null}function _O8($,Z){try{return new URL($).origin===new URL(Z).origin}catch(X){return!1}}function vO8({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 Sh({apiKey:$,environmentVariableName:Z,apiKeyParameterName:X="apiKey",description:Q}){if(typeof $==="string")return $;if($!=null)throw new ej({message:`${Q} API key must be a string.`});if(typeof process>"u")throw new ej({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 ej({message:`${Q} API key is missing. Pass it using the '${X}' parameter or the ${Z} environment variable.`});if(typeof $!=="string")throw new ej({message:`${Q} API key must be a string. The value of the ${Z} environment variable is not a string.`});return $}function UH({settingValue:$,environmentVariableName:Z}){if(typeof $==="string")return $;if($!=null||typeof process>"u")return;if($=process.env[Z],$==null||typeof $!=="string")return;return $}function xO8($){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 AO8($){let Z=JSON.parse($);if(Z===null||typeof Z!=="object")return Z;if(xA4.test($)===!1&&fA4.test($)===!1)return Z;return bA4(Z)}function bA4($){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 y81($){let{stackTraceLimit:Z}=Error;try{Error.stackTraceLimit=0}catch(X){return AO8($)}try{return AO8($)}finally{Error.stackTraceLimit=Z}}function g81($){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]=$z(X[Q])}if($.items!=null)$.items=Array.isArray($.items)?$.items.map($z):$z($.items);if($.anyOf!=null)$.anyOf=$.anyOf.map($z);if($.allOf!=null)$.allOf=$.allOf.map($z);if($.oneOf!=null)$.oneOf=$.oneOf.map($z);let{definitions:Z}=$;if(Z!=null)for(let X of Object.keys(Z))Z[X]=$z(Z[X]);return $}function $z($){if(typeof $==="boolean")return $;return g81($)}function EG(){return{}}function uA4($,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)!==hA4.ZodAny)G.items=V$($.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 cA4($){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 lA4(){return{type:"boolean"}}function fO8($,Z){return V$($.type._def,Z)}function bO8($,Z,X){let Q=X!=null?X:Z.dateStrategy;if(Array.isArray(Q))return{anyOf:Q.map((Y,G)=>bO8($,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 mA4($)}}function iA4($,Z){return{...V$($.innerType._def,Z),default:$.defaultValue()}}function nA4($,Z){return Z.effectStrategy==="input"?V$($.schema._def,Z):EG()}function pA4($){return{type:"string",enum:Array.from($.values)}}function oA4($,Z){let X=[V$($.left._def,{...Z,currentPath:[...Z.currentPath,"allOf","0"]}),V$($.right._def,{...Z,currentPath:[...Z.currentPath,"allOf","1"]})].filter((Y)=>!!Y),Q=[];return X.forEach((Y)=>{if(tA4(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 rA4($){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 yO8($,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":jK(X,"email",Q.message,Z);break;case"format:idn-email":jK(X,"idn-email",Q.message,Z);break;case"pattern:zod":OQ(X,EK.email,Q.message,Z);break}break;case"url":jK(X,"uri",Q.message,Z);break;case"uuid":jK(X,"uuid",Q.message,Z);break;case"regex":OQ(X,Q.regex,Q.message,Z);break;case"cuid":OQ(X,EK.cuid,Q.message,Z);break;case"cuid2":OQ(X,EK.cuid2,Q.message,Z);break;case"startsWith":OQ(X,RegExp(`^${C81(Q.value,Z)}`),Q.message,Z);break;case"endsWith":OQ(X,RegExp(`${C81(Q.value,Z)}$`),Q.message,Z);break;case"datetime":jK(X,"date-time",Q.message,Z);break;case"date":jK(X,"date",Q.message,Z);break;case"time":jK(X,"time",Q.message,Z);break;case"duration":jK(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":{OQ(X,RegExp(C81(Q.value,Z)),Q.message,Z);break}case"ip":{if(Q.version!=="v6")jK(X,"ipv4",Q.message,Z);if(Q.version!=="v4")jK(X,"ipv6",Q.message,Z);break}case"base64url":OQ(X,EK.base64url,Q.message,Z);break;case"jwt":OQ(X,EK.jwt,Q.message,Z);break;case"cidr":{if(Q.version!=="v6")OQ(X,EK.ipv4Cidr,Q.message,Z);if(Q.version!=="v4")OQ(X,EK.ipv6Cidr,Q.message,Z);break}case"emoji":OQ(X,EK.emoji(),Q.message,Z);break;case"ulid":{OQ(X,EK.ulid,Q.message,Z);break}case"base64":{switch(Z.base64Strategy){case"format:binary":{jK(X,"binary",Q.message,Z);break}case"contentEncoding:base64":{X.contentEncoding="base64";break}case"pattern:zod":{OQ(X,EK.base64,Q.message,Z);break}}break}case"nanoid":OQ(X,EK.nanoid,Q.message,Z);case"toLowerCase":case"toUpperCase":case"trim":break;default:}return X}function C81($,Z){return Z.patternStrategy==="escape"?sA4($):$}function sA4($){let Z="";for(let X=0;X<$.length;X++){if(!aA4.has($[X]))Z+="\\";Z+=$[X]}return Z}function jK($,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 OQ($,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:RO8(Z,Q),...X&&Q.errorMessages&&{errorMessage:{pattern:X}}})}else $.pattern=RO8(Z,Q)}function RO8($,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
2273
2273
  ]))`;continue}else if(Y[H]==="$"){G+=`($|(?=[\r